7zFM.asm
lawlrenz_crumble/crumble/examples/7zFM.asm

_SCOPETABLE_ENTRY struc	; (sizeof=0xC) ; XREF: ...
EnclosingLevel dd ?
FilterFunc dd ?		; offset
HandlerFunc dd ?	; offset
_SCOPETABLE_ENTRY ends


CPPEH_RECORD struc ; (sizeof=0x18) ; XREF: ...
old_esp	dd ?		; XREF:	...
exc_ptr	dd ?		; XREF:	... ; offset
registration _EH3_EXCEPTION_REGISTRATION ? ; XREF: ...
CPPEH_RECORD ends


_EH3_EXCEPTION_REGISTRATION struc ; (sizeof=0x10, standard type) ; XREF: ...
Next dd	?		; XREF:	... ; offset
ExceptionHandler dd ?	; offset
ScopeTable dd ?		; offset
TryLevel dd ?		; XREF:	...
_EH3_EXCEPTION_REGISTRATION ends


_OSVERSIONINFOA	struc ;	(sizeof=0x94, standard type) ; XREF: ...
dwOSVersionInfoSize dd ?
dwMajorVersion dd ?
dwMinorVersion dd ?
dwBuildNumber dd ?
dwPlatformId dd	?
szCSDVersion db	128 dup(?)
_OSVERSIONINFOA	ends


tagMSG struc ; (sizeof=0x1C, standard type) ; XREF: ...
hwnd dd	?		; offset
message	dd ?
wParam dd ?
lParam dd ?
time dd	?
pt POINT ?
tagMSG ends


POINT struc ; (sizeof=0x8, standard type) ; XREF: ...
x dd ?
y dd ?
POINT ends


tagRECT	struc ;	(sizeof=0x10, standard type) ; XREF: ...
left dd	?
top dd ?
right dd ?
bottom dd ?
tagRECT	ends


WINDOWPLACEMENT	struc ;	(sizeof=0x2C, standard type) ; XREF: ...
length dd ?
flags dd ?
showCmd	dd ?
ptMinPosition POINT ?
ptMaxPosition POINT ?
rcNormalPosition RECT ?
WINDOWPLACEMENT	ends


RECT struc ; (sizeof=0x10, standard type) ; XREF: ...
left dd	?
top dd ?
right dd ?
bottom dd ?
RECT ends


SHFILEINFOA struc ; (sizeof=0x160, standard type) ; XREF: ...
hIcon dd ?		; offset
iIcon dd ?
dwAttributes dd	?
szDisplayName db 260 dup(?)
szTypeName db 80 dup(?)
SHFILEINFOA ends


tagPOINT struc ; (sizeof=0x8, standard type) ; XREF: ...
x dd ?
y dd ?
tagPOINT ends


_RTL_CRITICAL_SECTION struc ; (sizeof=0x18, standard type) ; XREF: ...
DebugInfo dd ?		; offset
LockCount dd ?
RecursionCount dd ?
OwningThread dd	?	; offset
LockSemaphore dd ?	; offset
SpinCount dd ?
_RTL_CRITICAL_SECTION ends


_WIN32_FIND_DATAW struc	; (sizeof=0x250, standard type)	; XREF:	...
dwFileAttributes dd ?
ftCreationTime FILETIME	?
ftLastAccessTime FILETIME ?
ftLastWriteTime	FILETIME ?
nFileSizeHigh dd ?
nFileSizeLow dd	?
dwReserved0 dd ?
dwReserved1 dd ?
cFileName dw 260 dup(?)
cAlternateFileName dw 14 dup(?)
_WIN32_FIND_DATAW ends


FILETIME struc ; (sizeof=0x8, standard type) ; XREF: ...
dwLowDateTime dd ?
dwHighDateTime dd ?
FILETIME ends


_SYSTEMTIME struc ; (sizeof=0x10, standard type) ; XREF: ...
wYear dw ?
wMonth dw ?
wDayOfWeek dw ?
wDay dw	?
wHour dw ?
wMinute	dw ?
wSecond	dw ?
wMilliseconds dw ?
_SYSTEMTIME ends


_STARTUPINFOA struc ; (sizeof=0x44, standard type) ; XREF: ...
cb dd ?
lpReserved dd ?		; offset
lpDesktop dd ?		; offset
lpTitle	dd ?		; offset
dwX dd ?
dwY dd ?
dwXSize	dd ?
dwYSize	dd ?
dwXCountChars dd ?
dwYCountChars dd ?
dwFillAttribute	dd ?
dwFlags	dd ?
wShowWindow dw ?
cbReserved2 dw ?
lpReserved2 dd ?	; offset
hStdInput dd ?		; offset
hStdOutput dd ?		; offset
hStdError dd ?		; offset
_STARTUPINFOA ends


SHELLEXECUTEINFOA struc	; (sizeof=0x3C,	standard type) ; XREF: ...
cbSize dd ?
fMask dd ?
hwnd dd	?		; offset
lpVerb dd ?		; offset
lpFile dd ?		; offset
lpParameters dd	?	; offset
lpDirectory dd ?	; offset
nShow dd ?
hInstApp dd ?		; offset
lpIDList dd ?		; offset
lpClass	dd ?		; offset
hkeyClass dd ?		; offset
dwHotKey dd ?
anonymous_0 _SHELLEXECUTEINFOA::$D915D6B2B775D926C11EEA321E8940B4 ?
hProcess dd ?		; offset
SHELLEXECUTEINFOA ends


_SHELLEXECUTEINFOA::$D915D6B2B775D926C11EEA321E8940B4 union ; (sizeof=0x4, standard type) ; XREF: ...
hIcon dd ?		; offset
hMonitor dd ?		; offset
_SHELLEXECUTEINFOA::$D915D6B2B775D926C11EEA321E8940B4 ends


_SHFILEOPSTRUCTA struc ; (sizeof=0x1E, standard	type) ;	XREF: ...
hwnd dd	?		; offset
wFunc dd ?
pFrom dd ?		; offset
pTo dd ?		; offset
fFlags dw ?
fAnyOperationsAborted dd ?
hNameMappings dd ?	; offset
lpszProgressTitle dd ?	; offset
_SHFILEOPSTRUCTA ends


tagMENUITEMINFOA struc ; (sizeof=0x30, standard	type) ;	XREF: ...
cbSize dd ?
fMask dd ?
fType dd ?
fState dd ?
wID dd ?
hSubMenu dd ?		; offset
hbmpChecked dd ?	; offset
hbmpUnchecked dd ?	; offset
dwItemData dd ?
dwTypeData dd ?		; offset
cch dd ?
hbmpItem dd ?		; offset
tagMENUITEMINFOA ends


MENUITEMINFOA struc ; (sizeof=0x30, standard type) ; XREF: ...
cbSize dd ?
fMask dd ?
fType dd ?
fState dd ?
wID dd ?
hSubMenu dd ?		; offset
hbmpChecked dd ?	; offset
hbmpUnchecked dd ?	; offset
dwItemData dd ?
dwTypeData dd ?		; offset
cch dd ?
hbmpItem dd ?		; offset
MENUITEMINFOA ends


_PROCESS_INFORMATION struc ; (sizeof=0x10, standard type) ; XREF: ...
hProcess dd ?		; offset
hThread	dd ?		; offset
dwProcessId dd ?
dwThreadId dd ?
_PROCESS_INFORMATION ends


_FILETIME struc	; (sizeof=0x8, standard	type) ;	XREF: ...
dwLowDateTime dd ?
dwHighDateTime dd ?
_FILETIME ends


WNDCLASSA struc	; (sizeof=0x28,	standard type) ; XREF: ...
style dd ?
lpfnWndProc dd ?	; offset
cbClsExtra dd ?
cbWndExtra dd ?
hInstance dd ?		; offset
hIcon dd ?		; offset
hCursor	dd ?		; offset
hbrBackground dd ?	; offset
lpszMenuName dd	?	; offset
lpszClassName dd ?	; offset
WNDCLASSA ends


PROPSHEETHEADERA struc ; (sizeof=0x34, standard	type) ;	XREF: ...
dwSize dd ?
dwFlags	dd ?
hwndParent dd ?		; offset
hInstance dd ?		; offset
anonymous_0 _PROPSHEETHEADERA::$E1AF9326B92748E8DAFEF2F13D81386D ?
pszCaption dd ?		; offset
nPages dd ?
anonymous_1 _PROPSHEETHEADERA::$B2BC7FD01B1A93973E79FDE746C43987 ?
anonymous_2 _PROPSHEETHEADERA::$FF46AEFBA3346A074103206F902E6DF5 ?
pfnCallback dd ?	; offset
anonymous_3 _PROPSHEETHEADERA::$5F49E4A18E3DDA5E827B03567227027C ?
hplWatermark dd	?	; offset
anonymous_4 _PROPSHEETHEADERA::$B1482D20F8877C2A38A76E0C7234BF42 ?
PROPSHEETHEADERA ends


_PROPSHEETHEADERA::$E1AF9326B92748E8DAFEF2F13D81386D union ; (sizeof=0x4, standard type) ; XREF: ...
hIcon dd ?		; offset
pszIcon	dd ?		; offset
_PROPSHEETHEADERA::$E1AF9326B92748E8DAFEF2F13D81386D ends


_PROPSHEETHEADERA::$B2BC7FD01B1A93973E79FDE746C43987 union ; (sizeof=0x4, standard type) ; XREF: ...
nStartPage dd ?
pStartPage dd ?		; offset
_PROPSHEETHEADERA::$B2BC7FD01B1A93973E79FDE746C43987 ends


_PROPSHEETHEADERA::$FF46AEFBA3346A074103206F902E6DF5 union ; (sizeof=0x4, standard type) ; XREF: ...
ppsp dd	?		; offset
phpage dd ?		; offset
_PROPSHEETHEADERA::$FF46AEFBA3346A074103206F902E6DF5 ends


_PROPSHEETHEADERA::$5F49E4A18E3DDA5E827B03567227027C union ; (sizeof=0x4, standard type) ; XREF: ...
hbmWatermark dd	?	; offset
pszbmWatermark dd ?	; offset
_PROPSHEETHEADERA::$5F49E4A18E3DDA5E827B03567227027C ends


_PROPSHEETHEADERA::$B1482D20F8877C2A38A76E0C7234BF42 union ; (sizeof=0x4, standard type) ; XREF: ...
hbmHeader dd ?		; offset
pszbmHeader dd ?	; offset
_PROPSHEETHEADERA::$B1482D20F8877C2A38A76E0C7234BF42 ends


PROPSHEETHEADERW struc ; (sizeof=0x34, standard	type) ;	XREF: ...
dwSize dd ?
dwFlags	dd ?
hwndParent dd ?		; offset
hInstance dd ?		; offset
anonymous_0 _PROPSHEETHEADERW::$0FB566F30614F599529D00140F4CD87D ?
pszCaption dd ?		; offset
nPages dd ?
anonymous_1 _PROPSHEETHEADERW::$6475730AE6DAD1B8D6E46E57DCE1E457 ?
anonymous_2 _PROPSHEETHEADERW::$C62D413765EFFC4667F5A15937CA2710 ?
pfnCallback dd ?	; offset
anonymous_3 _PROPSHEETHEADERW::$C635E94935336589E496FC759198B86F ?
hplWatermark dd	?	; offset
anonymous_4 _PROPSHEETHEADERW::$9C028D56AB90D7CB2840D31BA61B8779 ?
PROPSHEETHEADERW ends


_PROPSHEETHEADERW::$0FB566F30614F599529D00140F4CD87D union ; (sizeof=0x4, standard type) ; XREF: ...
hIcon dd ?		; offset
pszIcon	dd ?		; offset
_PROPSHEETHEADERW::$0FB566F30614F599529D00140F4CD87D ends


_PROPSHEETHEADERW::$6475730AE6DAD1B8D6E46E57DCE1E457 union ; (sizeof=0x4, standard type) ; XREF: ...
nStartPage dd ?
pStartPage dd ?		; offset
_PROPSHEETHEADERW::$6475730AE6DAD1B8D6E46E57DCE1E457 ends


_PROPSHEETHEADERW::$C62D413765EFFC4667F5A15937CA2710 union ; (sizeof=0x4, standard type) ; XREF: ...
ppsp dd	?		; offset
phpage dd ?		; offset
_PROPSHEETHEADERW::$C62D413765EFFC4667F5A15937CA2710 ends


_PROPSHEETHEADERW::$C635E94935336589E496FC759198B86F union ; (sizeof=0x4, standard type) ; XREF: ...
hbmWatermark dd	?	; offset
pszbmWatermark dd ?	; offset
_PROPSHEETHEADERW::$C635E94935336589E496FC759198B86F ends


_PROPSHEETHEADERW::$9C028D56AB90D7CB2840D31BA61B8779 union ; (sizeof=0x4, standard type) ; XREF: ...
hbmHeader dd ?		; offset
pszbmHeader dd ?	; offset
_PROPSHEETHEADERW::$9C028D56AB90D7CB2840D31BA61B8779 ends


tagWNDCLASSW struc ; (sizeof=0x28, standard type) ; XREF: ...
style dd ?
lpfnWndProc dd ?	; offset
cbClsExtra dd ?
cbWndExtra dd ?
hInstance dd ?		; offset
hIcon dd ?		; offset
hCursor	dd ?		; offset
hbrBackground dd ?	; offset
lpszMenuName dd	?	; offset
lpszClassName dd ?	; offset
tagWNDCLASSW ends


_NETRESOURCEA struc ; (sizeof=0x20, standard type) ; XREF: ...
dwScope	dd ?
dwType dd ?
dwDisplayType dd ?
dwUsage	dd ?
lpLocalName dd ?	; offset
lpRemoteName dd	?	; offset
lpComment dd ?		; offset
lpProvider dd ?		; offset
_NETRESOURCEA ends


_NETRESOURCEW struc ; (sizeof=0x20, standard type) ; XREF: ...
dwScope	dd ?
dwType dd ?
dwDisplayType dd ?
dwUsage	dd ?
lpLocalName dd ?	; offset
lpRemoteName dd	?	; offset
lpComment dd ?		; offset
lpProvider dd ?		; offset
_NETRESOURCEW ends


tagOFNA	struc ;	(sizeof=0x4C, standard type) ; XREF: ...
lStructSize dd ?
hwndOwner dd ?		; offset
hInstance dd ?		; offset
lpstrFilter dd ?	; offset
lpstrCustomFilter dd ?	; offset
nMaxCustFilter dd ?
nFilterIndex dd	?
lpstrFile dd ?		; offset
nMaxFile dd ?
lpstrFileTitle dd ?	; offset
nMaxFileTitle dd ?
lpstrInitialDir	dd ?	; offset
lpstrTitle dd ?		; offset
Flags dd ?
nFileOffset dw ?
nFileExtension dw ?
lpstrDefExt dd ?	; offset
lCustData dd ?
lpfnHook dd ?		; offset
lpTemplateName dd ?	; offset
tagOFNA	ends


tagOFNW	struc ;	(sizeof=0x4C, standard type) ; XREF: ...
lStructSize dd ?
hwndOwner dd ?		; offset
hInstance dd ?		; offset
lpstrFilter dd ?	; offset
lpstrCustomFilter dd ?	; offset
nMaxCustFilter dd ?
nFilterIndex dd	?
lpstrFile dd ?		; offset
nMaxFile dd ?
lpstrFileTitle dd ?	; offset
nMaxFileTitle dd ?
lpstrInitialDir	dd ?	; offset
lpstrTitle dd ?		; offset
Flags dd ?
nFileOffset dw ?
nFileExtension dw ?
lpstrDefExt dd ?	; offset
lCustData dd ?
lpfnHook dd ?		; offset
lpTemplateName dd ?	; offset
tagOFNW	ends


_WIN32_FIND_DATAA struc	; (sizeof=0x140, standard type)	; XREF:	...
dwFileAttributes dd ?
ftCreationTime FILETIME	?
ftLastAccessTime FILETIME ?
ftLastWriteTime	FILETIME ?
nFileSizeHigh dd ?
nFileSizeLow dd	?
dwReserved0 dd ?
dwReserved1 dd ?
cFileName db 260 dup(?)
cAlternateFileName db 14 dup(?)
_padding db 2 dup(?)
_WIN32_FIND_DATAA ends


STGMEDIUM struc	; (sizeof=0xC, standard	type) ;	XREF: ...
tymed dd ?
anonymous_0 tagSTGMEDIUM::$7B772CC839E5463FC51219F893F364BB ?
pUnkForRelease dd ?	; offset
STGMEDIUM ends


tagSTGMEDIUM::$7B772CC839E5463FC51219F893F364BB	union ;	(sizeof=0x4, standard type) ; XREF: ...
hBitmap	dd ?		; offset
hMetaFilePict dd ?	; offset
hEnhMetaFile dd	?	; offset
hGlobal	dd ?		; offset
lpszFileName dd	?	; offset
pstm dd	?		; offset
pstg dd	?		; offset
tagSTGMEDIUM::$7B772CC839E5463FC51219F893F364BB	ends


INITCOMMONCONTROLSEX struc ; (sizeof=0x8, standard type) ; XREF: ...
dwSize dd ?
dwICC dd ?
INITCOMMONCONTROLSEX ends


TBBUTTON struc ; (sizeof=0x14, standard	type) ;	XREF: ...
iBitmap	dd ?
idCommand dd ?
fsState	db ?
fsStyle	db ?
bReserved db 2 dup(?)
dwData dd ?
iString	dd ?
TBBUTTON ends


VARIANTARG struc ; (sizeof=0x10, standard type)	; XREF:	...
anonymous_0 tagVARIANT::$6474CD83C6657A6DABDF207000DC5FE5 ?
VARIANTARG ends


tagVARIANT::$6474CD83C6657A6DABDF207000DC5FE5 union ; (sizeof=0x10, standard type) ; XREF: ...
anonymous_0 tagVARIANT::$6474CD83C6657A6DABDF207000DC5FE5::$8749951CD3A823784AB28831F11D98F2 ?
decVal DECIMAL ?
tagVARIANT::$6474CD83C6657A6DABDF207000DC5FE5 ends


tagVARIANT::$6474CD83C6657A6DABDF207000DC5FE5::$8749951CD3A823784AB28831F11D98F2 struc ; (sizeof=0x10, standard	type) ;	XREF: ...
vt dw ?
wReserved1 dw ?
wReserved2 dw ?
wReserved3 dw ?
anonymous_0 tagVARIANT::$6474CD83C6657A6DABDF207000DC5FE5::$8749951CD3A823784AB28831F11D98F2::$1752C812EA74BB4956541A744E2B2387	?
tagVARIANT::$6474CD83C6657A6DABDF207000DC5FE5::$8749951CD3A823784AB28831F11D98F2 ends


tagVARIANT::$6474CD83C6657A6DABDF207000DC5FE5::$8749951CD3A823784AB28831F11D98F2::$1752C812EA74BB4956541A744E2B2387 union ; (sizeof=0x8, standard type)	; XREF:	...
lVal dd	?
bVal db	?
iVal dw	?
fltVal dd ?
dblVal dq ?
boolVal	dw ?
scode dd ?
cyVal CY ?
date dq	?
bstrVal	dd ?		; offset
punkVal	dd ?		; offset
pdispVal dd ?		; offset
parray dd ?		; offset
pbVal dd ?		; offset
piVal dd ?		; offset
plVal dd ?		; offset
pfltVal	dd ?		; offset
pdblVal	dd ?		; offset
pboolVal dd ?		; offset
pscode dd ?		; offset
pcyVal dd ?		; offset
pdate dd ?		; offset
pbstrVal dd ?		; offset
ppunkVal dd ?		; offset
ppdispVal dd ?		; offset
pparray	dd ?		; offset
pvarVal	dd ?		; offset
byref dd ?		; offset
cVal db	?
uiVal dw ?
ulVal dd ?
intVal dd ?
uintVal	dd ?
pdecVal	dd ?		; offset
pcVal dd ?		; offset
puiVal dd ?		; offset
pulVal dd ?		; offset
pintVal	dd ?		; offset
puintVal dd ?		; offset
anonymous_0 tagVARIANT::$6474CD83C6657A6DABDF207000DC5FE5::$8749951CD3A823784AB28831F11D98F2::$1752C812EA74BB4956541A744E2B2387::$0FDBD249F1AECD6A49409B6B82281578 ?
tagVARIANT::$6474CD83C6657A6DABDF207000DC5FE5::$8749951CD3A823784AB28831F11D98F2::$1752C812EA74BB4956541A744E2B2387 ends


CY union ; (sizeof=0x8,	standard type) ; XREF: ...
anonymous_0 tagCY::$4ADA6AE34E722E24764E0C4FBCDA3E73 ?
int64 dq ?
CY ends


tagCY::$4ADA6AE34E722E24764E0C4FBCDA3E73 struc ; (sizeof=0x8, standard type) ; XREF: ...
Lo dd ?
Hi dd ?
tagCY::$4ADA6AE34E722E24764E0C4FBCDA3E73 ends


tagVARIANT::$6474CD83C6657A6DABDF207000DC5FE5::$8749951CD3A823784AB28831F11D98F2::$1752C812EA74BB4956541A744E2B2387::$0FDBD249F1AECD6A49409B6B82281578 struc ; (sizeof=0x8, standard type) ; XREF: ...
pvRecord dd ?		; offset
pRecInfo dd ?		; offset
tagVARIANT::$6474CD83C6657A6DABDF207000DC5FE5::$8749951CD3A823784AB28831F11D98F2::$1752C812EA74BB4956541A744E2B2387::$0FDBD249F1AECD6A49409B6B82281578 ends


DECIMAL	struc ;	(sizeof=0x10, standard type) ; XREF: ...
wReserved dw ?
anonymous_0 tagDEC::$00EA3C93EAB4EAE0D94D1E8C5BA4BC26 ?
Hi32 dd	?
anonymous_1 tagDEC::$5450C884C987D55E7B3D2E94E15D6587 ?
DECIMAL	ends


tagDEC::$00EA3C93EAB4EAE0D94D1E8C5BA4BC26 union	; (sizeof=0x2, standard	type) ;	XREF: ...
anonymous_0 tagDEC::$00EA3C93EAB4EAE0D94D1E8C5BA4BC26::$7F8459940C2B08BD5D82B0F27239141B ?
signscale dw ?
tagDEC::$00EA3C93EAB4EAE0D94D1E8C5BA4BC26 ends


tagDEC::$00EA3C93EAB4EAE0D94D1E8C5BA4BC26::$7F8459940C2B08BD5D82B0F27239141B struc ; (sizeof=0x2, standard type) ; XREF: ...
scale db ?
sign db	?
tagDEC::$00EA3C93EAB4EAE0D94D1E8C5BA4BC26::$7F8459940C2B08BD5D82B0F27239141B ends


tagDEC::$5450C884C987D55E7B3D2E94E15D6587 union	; (sizeof=0x8, standard	type) ;	XREF: ...
anonymous_0 tagDEC::$5450C884C987D55E7B3D2E94E15D6587::$674876891A86A76F12C10005982BCA56 ?
Lo64 dq	?
tagDEC::$5450C884C987D55E7B3D2E94E15D6587 ends


tagDEC::$5450C884C987D55E7B3D2E94E15D6587::$674876891A86A76F12C10005982BCA56 struc ; (sizeof=0x8, standard type) ; XREF: ...
Lo32 dd	?
Mid32 dd ?
tagDEC::$5450C884C987D55E7B3D2E94E15D6587::$674876891A86A76F12C10005982BCA56 ends


_msExcInfo struc ; (sizeof=0x8)	; XREF:	...
Id dd ?			; base 10
Proc dd	?		; offset
_msExcInfo ends


_msExcept struc	; (sizeof=0x20,	variable size) ; XREF: ...
Magic dd ?		; base 16
Count dd ?		; base 10
InfoPtr	dd ?		; offset
CountDtr dd ?		; base 10
DtrPtr dd ?		; offset
_unk dd	3 dup(?)
Info _msExcInfo	0 dup(?) ; XREF: ...
_msExcept ends


_msExcExt struc	; (sizeof=0x14)	; XREF:	...
_unk dd	3 dup(?)
Count dd ?		; base 10
RttiBlkPtr dd ?		; offset
_msExcExt ends


_msRttiDscr struc ; (sizeof=0x10) ; XREF: ...
_unk dd	?		; base 16
RttiPtr	dd ?		; offset
spoff dd ?		; base 10
Dtr dd ?		; offset
_msRttiDscr ends


_ms_type_info struc ; (sizeof=0x8, variable size) ; XREF: ...
getInfoPtr dq ?		; offset
Name db	0 dup(?)	; string(C)
_ms_type_info ends


;
; +-------------------------------------------------------------------------+
; |   This file	has been generated by The Interactive Disassembler (IDA)    |
; |	      Copyright	(c) 2013 Hex-Rays, <support@hex-rays.com>	    |
; |			 License info: 48-3215-7394-8A			    |
; |  Universitaet Bonn/	Institut fuer Informatik Abteilung fuer	Informati   |
; +-------------------------------------------------------------------------+
;
; Input	MD5   :	1BCE2C02487972FF0D5E6702D79E7A75
; Input	CRC32 :	5DE7C507

; File Name   :	Y:\binaries\7zFM.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 000490CA ( 299210.)
; Section size in file		: 00049200 ( 299520.)
; Offset to raw	data for section: 00000400
; Flags	60000020: Text Executable Readable
; Alignment	: default
; OS type	  :  MS	Windows
; Application type:  Executable	32bit

include	uni.inc	; see unicode subdir of	ida for	info on	unicode

.686p
.mmx
.model flat


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



sub_401000 proc	near
cmp	dword_45D4C8, 1
push	esi
mov	esi, ecx
jz	short loc_401025
mov	eax, [esi+8]
mov	ecx, [esi+4]
imul	eax, 188h
sub	ecx, eax
add	ecx, 20Ch
call	sub_40E5B8

loc_401025:
mov	ecx, [esi+4]
push	0
call	sub_402FBC
pop	esi
retn
sub_401000 endp




sub_401031 proc	near

arg_0= dword ptr  4

cmp	dword_45D4C8, 1
push	esi
mov	esi, [esp+4+arg_0]
push	edi
mov	edi, ecx
jnz	short loc_401048
mov	esi, dword_45D4CC

loc_401048:
mov	ecx, [edi+4]
push	0
call	sub_402FBC
imul	esi, 188h
mov	eax, [edi+4]
push	dword ptr [eax+esi+0D4h] ; hWnd
call	ds:SetFocus
mov	eax, [edi+4]
push	0		; lParam
push	1		; wParam
push	14Fh		; Msg
push	dword ptr [eax+esi+0D4h] ; hWnd
call	ds:SendMessageA
pop	edi
pop	esi
retn	4
sub_401031 endp




sub_401086 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	dword ptr [ecx+8]
mov	ecx, [ecx+4]
push	[esp+4+arg_4]
push	[esp+8+arg_0]
call	sub_401E65
retn	8
sub_401086 endp




sub_40109C proc	near
push	dword ptr [ecx+8]
mov	ecx, [ecx+4]
call	sub_402D17
retn
sub_40109C endp




sub_4010A8 proc	near
push	dword ptr [ecx+8]
mov	ecx, [ecx+4]
call	sub_402D3F
retn
sub_4010A8 endp




sub_4010B4 proc	near
mov	eax, [ecx+4]
mov	edx, [ecx+8]
push	0
mov	[eax+0Ch], edx
mov	eax, [eax+3A0h]
mov	[eax+48h], edx
push	dword ptr [ecx+8]
mov	ecx, [ecx+4]
call	sub_403064
retn
sub_4010B4 endp




sub_4010D4 proc	near
mov	edx, [ecx+8]
mov	ecx, [ecx+4]
push	1
pop	eax
cmp	[ecx+8], eax
jle	short loc_4010E6
sub	eax, edx
jmp	short loc_4010E8

loc_4010E6:
mov	eax, edx

loc_4010E8:
add	ecx, 3A0h
push	esi
mov	esi, [ecx]
mov	[esi+48h], eax
mov	eax, [ecx]
pop	esi
mov	[eax+44h], edx
retn
sub_4010D4 endp




sub_4010FB proc	near
mov	eax, [ecx+4]
mov	edx, [eax+3A0h]
lea	ecx, [eax+3A0h]
mov	eax, [eax+0Ch]
mov	[edx+48h], eax
mov	eax, [ecx]
or	dword ptr [eax+44h], 0FFFFFFFFh
retn
sub_4010FB endp




sub_401117 proc	near

arg_0= dword ptr  4

push	[esp+arg_0]
push	dword ptr [ecx+8]
mov	ecx, [ecx+4]
call	sub_403064
retn	4
sub_401117 endp




sub_401129 proc	near

var_2= byte ptr	-2
var_1= byte ptr	-1

push	ecx
push	ebx
push	ebp
push	esi
push	edi
mov	esi, ecx
call	sub_41E998
mov	[esp+14h+var_2], al
call	sub_41EA18
push	10h
mov	[esp+18h+var_1], al
pop	edi
call	sub_41EA4C
test	al, al
jz	short loc_401151
push	30h
pop	edi

loc_401151:
call	sub_41EA66
test	al, al
jz	short loc_40115D
or	edi, 1

loc_40115D:
call	sub_41EA80
mov	bl, al
call	sub_41EA9A
test	al, al
jz	short loc_401170
or	edi, 48h

loc_401170:
push	2
add	esi, 110h
pop	ebp

loc_401179:
mov	al, [esp+14h+var_2]
push	0FFFFFFF0h	; nIndex
push	dword ptr [esi-18h] ; hWnd
mov	[esi], al
mov	al, [esp+1Ch+var_1]
mov	[esi+3], bl
mov	[esi+1], al
mov	[esi-4], edi
call	ds:GetWindowLongA
test	bl, bl
jz	short loc_40119F
or	al, 4
jmp	short loc_4011A1

loc_40119F:
and	al, 0FBh

loc_4011A1:		; dwNewLong
push	eax
push	0FFFFFFF0h	; nIndex
push	dword ptr [esi-18h] ; hWnd
call	ds:SetWindowLongA
lea	ecx, [esi-8Ch]
call	sub_4011C7
add	esi, 188h
dec	ebp
jnz	short loc_401179
pop	edi
pop	esi
pop	ebp
pop	ebx
pop	ecx
retn
sub_401129 endp




sub_4011C7 proc	near
mov	eax, [ecx+74h]
test	eax, eax
jz	short locret_4011E2
push	dword ptr [ecx+88h] ; lParam
push	0		; wParam
push	1036h		; Msg
push	eax		; hWnd
call	ds:SendMessageA

locret_4011E2:
retn
sub_4011C7 endp




sub_4011E3 proc	near
push	esi
mov	esi, ecx
call	sub_41EA32
mov	[esi+4], al
pop	esi
retn
sub_4011E3 endp



; Attributes: bp-based frame

sub_4011F0 proc	near

Memory=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_442264
call	__EH_prolog
sub	esp, 0Ch
push	esi
mov	esi, [ebp+arg_0]
push	edi
mov	edi, ecx
cmp	byte ptr [esi+edi+394h], 0
lea	eax, [esi+edi+394h]
mov	[ebp+arg_0], eax
jz	short loc_40121F
xor	eax, eax
jmp	loc_4012BE

loc_40121F:
lea	eax, [esi+esi*2+1Bh]
push	ebx
push	3
lea	ecx, [ebp+Memory]
lea	ebx, [edi+eax*4]
xor	eax, eax
mov	[ebp+Memory], eax
mov	[ebp+var_14], eax
mov	[ebx+4], edi
mov	[ebx+8], esi
mov	[ebp+var_10], eax
call	sub_403396
mov	eax, [ebp+arg_4]
and	[ebp+var_4], 0
cmp	dword ptr [eax+4], 0
jnz	short loc_40126A
lea	edx, [ebp+Memory]
mov	ecx, esi
call	sub_421255
test	al, al
jnz	short loc_401273
mov	eax, [ebp+Memory]
and	[ebp+var_14], 0
and	word ptr [eax],	0
jmp	short loc_401273

loc_40126A:
push	eax
lea	ecx, [ebp+Memory]
call	sub_40312C

loc_401273:		; int
push	[ebp+arg_10]
lea	ecx, [edi+14h]
mov	eax, [edi]
push	[ebp+arg_C]	; int
push	ecx		; int
push	ebx		; int
push	[ebp+arg_8]	; int
lea	ecx, [ebp+Memory]
push	ecx		; int
lea	ecx, [esi+0Ah]
imul	ecx, 64h
imul	esi, 188h
push	ecx		; hMenu
push	eax		; hWndParent
push	eax		; int
lea	ecx, [esi+edi+84h]
call	sub_40DA7C
test	eax, eax
pop	ebx
jz	short loc_4012AB
mov	esi, eax
jmp	short loc_4012B3

loc_4012AB:
mov	eax, [ebp+arg_0]
xor	esi, esi
mov	byte ptr [eax],	1

loc_4012B3:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
mov	eax, esi

loc_4012BE:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	14h
sub_4011F0 endp




sub_4012CE proc	near
push	ebp
push	esi
mov	esi, ecx
push	edi
mov	eax, [esi+398h]
lea	edi, [esi+398h]
test	eax, eax
jz	short loc_4012ED
and	dword ptr [edi], 0
push	eax		; himl
call	ds:ImageList_Destroy

loc_4012ED:
lea	ebp, [esi+39Ch]
mov	ecx, ebp
call	sub_40137C
cmp	byte ptr [esi+11h], 0
jnz	short loc_401306
cmp	byte ptr [esi+10h], 0
jz	short loc_401378

loc_401306:
mov	al, [esi+13h]
mov	ecx, [esi]	; hWndParent
push	ebx
push	eax		; char
push	ebp		; int
mov	edx, edi
call	sub_40139E
cmp	byte ptr [esi+11h], 0
jz	short loc_40133D
mov	ebx, offset unk_45B0B8

loc_401320:
mov	al, [esi+13h]
mov	edx, ebp
push	eax
mov	al, [esi+12h]
push	eax
push	ebx
mov	ecx, edi
call	sub_401423
add	ebx, 14h
cmp	ebx, offset a7ze ; "7zE"
jb	short loc_401320

loc_40133D:
cmp	byte ptr [esi+10h], 0
jz	short loc_401365
mov	ebx, offset unk_45B068

loc_401348:
mov	al, [esi+13h]
mov	edx, ebp
push	eax
mov	al, [esi+12h]
push	eax
push	ebx
mov	ecx, edi
call	sub_401423
add	ebx, 14h
cmp	ebx, offset unk_45B0B8
jb	short loc_401348

loc_401365:		; lParam
push	0
push	0		; wParam
push	421h		; Msg
push	dword ptr [ebp+0] ; hWnd
call	ds:SendMessageA
pop	ebx

loc_401378:
pop	edi
pop	esi
pop	ebp
retn
sub_4012CE endp




sub_40137C proc	near
push	esi
mov	esi, ecx
mov	eax, [esi]
test	eax, eax
jnz	short loc_401389
mov	al, 1
pop	esi
retn

loc_401389:		; hWnd
push	eax
call	ds:DestroyWindow
test	eax, eax
setnz	al
test	al, al
jz	short loc_40139C
and	dword ptr [esi], 0

loc_40139C:
pop	esi
retn
sub_40137C endp



; Attributes: bp-based frame

; int __thiscall sub_40139E(HWND hWndParent, int, char)
sub_40139E proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ebx
push	esi
xor	esi, esi
push	edi
push	esi		; lpParam
mov	[ebp+var_4], edx
push	hInstance	; hInstance
push	esi		; hMenu
push	ecx		; hWndParent
push	esi		; nHeight
push	esi		; nWidth
push	esi		; Y
push	esi		; X
push	50000B00h	; dwStyle
push	esi		; lpWindowName
push	offset ClassName ; "ToolbarWindow32"
push	esi		; dwExStyle
call	ds:CreateWindowExA
mov	ebx, [ebp+arg_0]
mov	edi, ds:SendMessageA
push	esi		; lParam
push	14h		; wParam
push	41Eh		; Msg
push	eax		; hWnd
mov	[ebx], eax
call	edi ; SendMessageA
mov	al, [ebp+arg_4]
mov	cl, al
push	esi		; cGrow
neg	cl
sbb	ecx, ecx
push	esi		; cInitial
and	ecx, 0Ch
push	21h		; flags
add	ecx, 18h
neg	al
sbb	eax, eax
push	ecx		; cy
and	eax, 18h
add	eax, 18h
push	eax		; cx
call	ds:ImageList_Create
cmp	eax, esi
jz	short loc_40140D
mov	ecx, [ebp+var_4]
mov	[ecx], eax

loc_40140D:
mov	eax, [ebp+var_4]
push	dword ptr [eax]	; lParam
push	esi		; wParam
push	430h		; Msg
push	dword ptr [ebx]	; hWnd
call	edi ; SendMessageA
pop	edi
pop	esi
pop	ebx
leave
retn	8
sub_40139E endp



; Attributes: bp-based frame

sub_401423 proc	near

lParam=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	byte ptr -1Ch
var_1B=	byte ptr -1Bh
var_18=	dword ptr -18h
var_14=	dword ptr -14h
Memory=	dword ptr -10h
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= byte ptr	 0Ch
arg_8= byte ptr	 10h

push	ebp
mov	ebp, esp
sub	esp, 24h
push	ebx
push	esi
mov	esi, [ebp+arg_0]
push	edi
mov	edi, ecx
xor	ebx, ebx
mov	eax, [esi]
mov	[ebp+var_4], edx
mov	[ebp+var_20], eax
lea	eax, [ebp+Memory]
push	eax
mov	ecx, esi
mov	[ebp+lParam], ebx
mov	[ebp+var_1C], 4
mov	[ebp+var_1B], bl
mov	[ebp+var_18], ebx
call	sub_4014C9
cmp	[ebp+arg_4], bl
mov	[ebp+var_14], ebx
jz	short loc_401461
mov	eax, [ebp+Memory]
mov	[ebp+var_14], eax

loc_401461:		; himl
push	dword ptr [edi]
call	ds:ImageList_GetImageCount
cmp	[ebp+arg_8], bl
mov	[ebp+lParam], eax
jz	short loc_401477
movzx	eax, word ptr [esi+4]
jmp	short loc_40147B

loc_401477:
movzx	eax, word ptr [esi+8]

loc_40147B:		; lpBitmapName
push	eax
push	hInstance	; hInstance
call	ds:LoadBitmapA
mov	esi, eax
cmp	esi, ebx
jz	short loc_4014A3
push	0FF00FFh	; crMask
push	esi		; hbmImage
push	dword ptr [edi]	; himl
call	ds:ImageList_AddMasked
push	esi		; ho
call	ds:DeleteObject

loc_4014A3:
lea	eax, [ebp+lParam]
push	eax		; lParam
mov	eax, [ebp+var_4]
push	1		; wParam
push	444h		; Msg
push	dword ptr [eax]	; hWnd
call	ds:SendMessageA
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
pop	edi
pop	esi
pop	ebx
leave
retn	0Ch
sub_401423 endp



; Attributes: bp-based frame

sub_4014C9 proc	near

var_4= dword ptr -4
arg_0= dword ptr  8

push	ebp
mov	ebp, esp
push	ecx
push	dword ptr [ecx+10h]
mov	edx, [ecx+0Ch]
mov	ecx, [ebp+arg_0]
and	[ebp+var_4], 0
call	sub_40B168
mov	eax, [ebp+arg_0]
leave
retn	4
sub_4014C9 endp




sub_4014E6 proc	near
push	esi
mov	esi, ecx
call	sub_4014FE
mov	ecx, esi
call	sub_4012CE
mov	ecx, esi
call	sub_4069DB
pop	esi
retn
sub_4014E6 endp




sub_4014FE proc	near

; FUNCTION CHUNK AT 004210A0 SIZE 0000005A BYTES

mov	eax, ecx
xor	edx, edx
xor	ecx, ecx
cmp	[eax+12h], dl
jz	short loc_40150C
push	1
pop	ecx

loc_40150C:
cmp	[eax+13h], dl
jz	short loc_401514
or	ecx, 2

loc_401514:
cmp	[eax+10h], dl
jz	short loc_40151C
or	ecx, 4

loc_40151C:
cmp	[eax+11h], dl
jz	short loc_401524
or	ecx, 8

loc_401524:
jmp	loc_4210A0
sub_4014FE endp



; Attributes: bp-based frame

sub_401529 proc	near

Memory=	dword ptr -2Ch
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_E= byte ptr	-0Eh
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
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

mov	eax, offset loc_442287
call	__EH_prolog
sub	esp, 20h
mov	eax, [ebp+arg_0]
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
push	edi
mov	[ebp+var_14], ebx
mov	[esi], eax
call	sub_40BC70
mov	ecx, esi
call	sub_401761
mov	ecx, esi
call	sub_4012CE
lea	edi, [esi+394h]
xor	eax, eax
stosw
lea	edi, [esi+14h]
mov	ecx, edi
call	sub_4016C9
lea	ecx, [edi+2Ch]
call	sub_40170A
mov	ecx, esi
call	sub_401129
mov	ecx, esi
call	sub_4011E3
cmp	dword ptr [esi+0Ch], 2
jl	short loc_40158B
mov	[esi+0Ch], ebx

loc_40158B:
push	3
lea	ecx, [ebp+var_20]
pop	eax
mov	[ebp+var_1C], eax
mov	[ebp+var_20], eax
call	sub_42137F
mov	eax, [ebp+arg_C]
mov	[ebp+arg_0], ebx
lea	ebx, [ebp+var_20]
mov	[ebp+var_18], eax
lea	edi, [esi+154h]
sub	ebx, eax
jmp	short loc_4015B5

loc_4015B2:
mov	eax, [ebp+var_18]

loc_4015B5:
mov	ecx, [ebx+eax]
mov	[edi-4], ecx
mov	eax, [eax]
mov	ecx, [ebp+arg_0]
mov	[edi], eax
call	sub_41EC14
inc	[ebp+arg_0]
add	[ebp+var_18], 4
mov	[edi+6], al
add	edi, 188h
cmp	[ebp+arg_0], 2
jl	short loc_4015B2
lea	eax, [esi+154h]
xor	edi, edi
mov	[ebp+var_18], eax

loc_4015E8:
mov	eax, [esi+8]
cmp	eax, 1
jg	short loc_40160B
cmp	edi, [esi+0Ch]
jnz	loc_401680
cmp	eax, 1
jnz	short loc_40160B
mov	eax, [ebp+arg_C]
mov	ecx, [eax+4]
add	ecx, [eax]
mov	eax, [ebp+var_18]
mov	[eax], ecx

loc_40160B:
and	[ebp+var_D], 0
and	[ebp+var_E], 0
cmp	edi, [esi+0Ch]
setz	byte ptr [ebp+arg_0+3]
cmp	byte ptr [ebp+arg_0+3],	0
jz	short loc_401625
mov	eax, [ebp+arg_4]
jmp	short loc_40163A

loc_401625:
push	offset word_45D498
lea	ecx, [ebp+Memory]
call	sub_403091
or	[ebp+var_14], 1
and	[ebp+var_4], 0

loc_40163A:
lea	ecx, [ebp+var_E]
push	ecx
lea	ecx, [ebp+var_D]
push	ecx
mov	ecx, esi
push	[ebp+arg_8]
push	eax
push	edi
call	sub_4011F0
or	[ebp+var_4], 0FFFFFFFFh
mov	ebx, eax
test	byte ptr [ebp+var_14], 1
jz	short loc_401667
push	[ebp+Memory]	; Memory
and	[ebp+var_14], 0FFFFFFFEh
call	sub_4284D8
pop	ecx

loc_401667:
test	ebx, ebx
jnz	short loc_4016C5
cmp	byte ptr [ebp+arg_0+3],	bl
jz	short loc_401680
mov	ecx, [ebp+arg_10]
mov	al, [ebp+var_D]
mov	[ecx], al
mov	ecx, [ebp+arg_14]
mov	al, [ebp+var_E]
mov	[ecx], al

loc_401680:
add	[ebp+var_18], 188h
inc	edi
cmp	edi, 2
jl	loc_4015E8
mov	eax, [esi+3A0h]
mov	ecx, [esi+0Ch]
mov	[eax+48h], ecx
mov	eax, [esi+0Ch]
imul	eax, 188h
lea	ecx, [eax+esi+84h]
call	sub_40E5B8
xor	eax, eax

loc_4016B4:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	18h

loc_4016C5:
mov	eax, ebx
jmp	short loc_4016B4
sub_401529 endp



; Attributes: bp-based frame

sub_4016C9 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44229C
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	esi		; lpCriticalSection
mov	[ebp+var_10], esi
call	ds:EnterCriticalSection
and	[ebp+var_4], 0
lea	ecx, [esi+18h]
call	sub_421520
push	esi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_4016C9 endp

; START	OF FUNCTION CHUNK FOR sub_442294

loc_401701:		; lpCriticalSection
push	dword ptr [ecx]
call	ds:LeaveCriticalSection
retn
; END OF FUNCTION CHUNK	FOR sub_442294


; Attributes: bp-based frame

sub_40170A proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4422B0
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	esi		; lpCriticalSection
mov	[ebp+var_10], esi
call	ds:EnterCriticalSection
and	[ebp+var_4], 0
lea	ecx, [esi+18h]
call	sub_421487
mov	ecx, esi
call	sub_401749
push	esi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_40170A endp




sub_401749 proc	near
mov	eax, [ecx+20h]
cmp	eax, 64h
jle	short locret_401760
mov	edx, [ecx+18h]
add	ecx, 18h
add	eax, 0FFFFFF9Ch
push	eax
push	64h
call	dword ptr [edx+4]

locret_401760:
retn
sub_401749 endp




sub_401761 proc	near
push	esi
mov	esi, ecx
call	sub_4210FA
test	eax, 80000000h
jz	short loc_40178B
cmp	byte_45D8B7, 0
mov	byte ptr [esi+11h], 1
mov	byte ptr [esi+10h], 1
setz	al
and	byte ptr [esi+13h], 0
mov	[esi+12h], al
pop	esi
retn

loc_40178B:
mov	cl, al
and	cl, 1
mov	[esi+12h], cl
mov	ecx, eax
shr	ecx, 1
and	cl, 1
mov	[esi+13h], cl
mov	ecx, eax
shr	ecx, 2
shr	eax, 3
and	cl, 1
and	al, 1
mov	[esi+10h], cl
mov	[esi+11h], al
pop	esi
retn
sub_401761 endp



; Attributes: bp-based frame

sub_4017B2 proc	near

var_2C=	dword ptr -2Ch
var_28=	dword ptr -28h
var_24=	dword ptr -24h
Memory=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_E= byte ptr	-0Eh
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4422CC
call	__EH_prolog
sub	esp, 20h
push	esi
mov	esi, ecx
push	edi
mov	eax, [esi+8]
cmp	eax, 1
jnz	loc_401862
xor	edi, edi
push	3
lea	ecx, [ebp+var_2C]
mov	dword ptr [esi+8], 2
mov	[ebp+var_2C], edi
mov	[ebp+var_28], edi
mov	[ebp+var_24], edi
call	sub_403396
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], edi
mov	[ebp+Memory], edi
mov	[ebp+var_1C], edi
mov	[ebp+var_18], edi
call	sub_403396
lea	eax, [ebp+var_D]
mov	ecx, esi
push	eax
lea	eax, [ebp+var_E]
push	eax
lea	eax, [ebp+var_2C]
push	eax
lea	eax, [ebp+Memory]
push	eax
push	1
pop	eax
mov	byte ptr [ebp+var_4], 1
sub	eax, [esi+0Ch]
push	eax
call	sub_4011F0
push	[ebp+Memory]	; Memory
mov	[ebp+var_14], eax
call	sub_4284D8
push	[ebp+var_2C]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
mov	eax, [ebp+var_14]
pop	ecx
cmp	eax, edi
pop	ecx
jnz	short loc_4018A5
mov	eax, [esi+0Ch]
mov	ecx, esi
imul	eax, 188h
sub	ecx, eax
push	1		; bEnable
push	dword ptr [ecx+210h] ; hWnd
call	ds:EnableWindow
push	1
jmp	short loc_401883

loc_401862:
dec	eax
mov	ecx, esi
mov	[esi+8], eax
mov	eax, [esi+0Ch]
imul	eax, 188h
xor	edi, edi
sub	ecx, eax
push	edi		; bEnable
push	dword ptr [ecx+210h] ; hWnd
call	ds:EnableWindow
push	edi		; nCmdShow

loc_401883:
mov	eax, [esi+0Ch]
mov	ecx, esi
imul	eax, 188h
sub	ecx, eax
push	dword ptr [ecx+210h] ; hWnd
call	ds:ShowWindow
mov	ecx, esi
call	sub_4069DB
xor	eax, eax

loc_4018A5:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_4017B2 endp



; Attributes: bp-based frame

sub_4018B3 proc	near

Memory=	dword ptr -30h
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_4= dword ptr -4

mov	eax, offset loc_4422E8
call	__EH_prolog
sub	esp, 24h
push	ebx
push	esi
mov	esi, ecx
push	edi
lea	edi, [esi+14h]
mov	ecx, edi
call	sub_401995
lea	ecx, [edi+2Ch]
call	sub_4019CD
and	[ebp+var_10], 0
push	3
pop	edi
lea	ebx, [ebp+var_18]
mov	[ebp+var_14], edi
mov	[ebp+var_18], edi
add	esi, 15Ch

loc_4018ED:
xor	eax, eax
push	edi
lea	ecx, [ebp+var_24]
mov	[ebp+var_24], eax
mov	[ebp+var_20], eax
mov	[ebp+var_1C], eax
call	sub_403396
and	[ebp+var_4], 0
cmp	dword ptr [esi+14h], 0
jnz	short loc_401916
push	esi
lea	ecx, [ebp+var_24]
call	sub_40312C
jmp	short loc_401940

loc_401916:
mov	eax, [esi+18h]
lea	ecx, [ebp+Memory]
mov	eax, [eax]
mov	edx, [eax+6Ch]
call	sub_413191
push	eax
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 1
call	sub_40312C
push	[ebp+Memory]	; Memory
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
pop	ecx

loc_401940:
mov	ecx, [ebp+var_10]
lea	edx, [ebp+var_24]
call	sub_42116B
mov	eax, [esi-0Ch]
mov	dl, [esi-2]
mov	ecx, [ebp+var_10]
mov	[ebx], eax
call	sub_41EB80
push	[ebp+var_24]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
inc	[ebp+var_10]
add	esi, 188h
add	ebx, 4
cmp	[ebp+var_10], 2
pop	ecx
jl	loc_4018ED
lea	ecx, [ebp+var_18]
call	sub_421306
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_4018B3 endp



; Attributes: bp-based frame

sub_401995 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4422FC
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	esi		; lpCriticalSection
mov	[ebp+var_10], esi
call	ds:EnterCriticalSection
and	[ebp+var_4], 0
lea	ecx, [esi+18h]
call	sub_421513
push	esi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_401995 endp



; Attributes: bp-based frame

sub_4019CD proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442310
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	esi		; lpCriticalSection
mov	[ebp+var_10], esi
call	ds:EnterCriticalSection
and	[ebp+var_4], 0
lea	ecx, [esi+18h]
call	sub_421401
push	esi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_4019CD endp




sub_401A05 proc	near
push	esi
push	edi
push	2
lea	esi, [ecx+84h]
pop	edi

loc_401A10:
mov	ecx, esi
call	sub_40D88C
add	esi, 188h
dec	edi
jnz	short loc_401A10
pop	edi
pop	esi
retn
sub_401A05 endp



; Attributes: bp-based frame

sub_401A23 proc	near

var_2C=	dword ptr -2Ch
var_24=	dword ptr -24h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_442334
call	__EH_prolog
sub	esp, 18h
mov	eax, edx
mov	edx, [ebp+arg_0]
or	edx, [ebp+arg_4]
jz	loc_401AF8
push	esi
mov	edx, ecx
push	eax
lea	ecx, [ebp+Memory]
call	sub_40B168
mov	esi, [ebp+arg_10]
and	[ebp+var_4], 0
push	eax
mov	ecx, esi
call	sub_4031F2
or	[ebp+var_4], 0FFFFFFFFh
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	ecx, esi
mov	[esp+2Ch+var_2C], offset asc_45B128 ; "	"
call	sub_403195
lea	ecx, [ebp+Memory]
push	[ebp+arg_4]
push	[ebp+arg_0]
call	sub_418270
push	eax
mov	ecx, esi
mov	[ebp+var_4], 1
call	sub_4031F2
or	[ebp+var_4], 0FFFFFFFFh
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+arg_8]
pop	ecx
and	eax, [ebp+arg_C]
cmp	eax, 0FFFFFFFFh
jz	short loc_401AEB
push	offset asc_45B118 ; "	 ( "
mov	ecx, esi
call	sub_403195
lea	ecx, [ebp+var_24]
push	[ebp+arg_C]
push	[ebp+arg_8]
call	sub_401B06
push	eax
mov	ecx, esi
mov	[ebp+var_4], 2
call	sub_4031F2
or	[ebp+var_4], 0FFFFFFFFh
push	[ebp+var_24]	; Memory
call	sub_4284D8
mov	ecx, esi
mov	[esp+2Ch+var_2C], offset asc_45B110 ; "	)"
call	sub_403195

loc_401AEB:		; "\n"
push	offset asc_45B10C
mov	ecx, esi
call	sub_403195
pop	esi

loc_401AF8:
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn	14h
sub_401A23 endp



; Attributes: bp-based frame

sub_401B06 proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_442348
call	__EH_prolog
sub	esp, 10h
and	[ebp+var_10], 0
push	esi
push	[ebp+arg_4]
mov	esi, ecx
lea	ecx, [ebp+Memory]
push	[ebp+arg_0]
call	sub_418270
and	[ebp+var_4], 0
push	eax
push	2000982h
mov	edx, 259h
mov	ecx, esi
call	sub_40744B
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_401B06 endp



; Attributes: bp-based frame

sub_401B58 proc	near

var_40=	dword ptr -40h
var_3C=	dword ptr -3Ch
var_38=	dword ptr -38h
Memory=	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_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_442364
call	__EH_prolog
sub	esp, 34h
push	ebx
push	esi
push	edi
mov	edi, ecx
xor	ebx, ebx
push	3
lea	ecx, [ebp+var_40]
mov	[ebp+var_10], ebx
mov	[ebp+var_40], ebx
mov	[ebp+var_3C], ebx
mov	[ebp+var_38], ebx
call	sub_403396
mov	esi, [ebp+arg_4]
mov	[ebp+var_4], ebx
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
mov	eax, [esi+8]
mov	[ebp+var_18], ebx
cmp	eax, ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_30], ebx
mov	[ebp+var_2C], ebx
mov	[ebp+var_28], ebx
mov	[ebp+var_24], ebx
mov	[ebp+var_10], ebx
jle	short loc_401BFF

loc_401BAA:
mov	eax, [esi+0Ch]
mov	ecx, [ebp+var_10]
mov	eax, [eax+ecx*4]
mov	ecx, edi
push	eax
mov	[ebp+arg_4], eax
call	sub_41756F
mov	ecx, [edi+0FCh]
test	al, al
jz	short loc_401BDF
mov	edx, [ebp+arg_4]
lea	eax, [ebp+var_20]
push	eax
push	7
call	sub_401DEA
add	[ebp+var_28], 1
adc	[ebp+var_24], ebx
jmp	short loc_401BF4

loc_401BDF:
mov	edx, [ebp+arg_4]
lea	eax, [ebp+var_18]
push	eax
push	7
call	sub_401DEA
add	[ebp+var_30], 1
adc	[ebp+var_2C], ebx

loc_401BF4:
inc	[ebp+var_10]
mov	eax, [ebp+var_10]
cmp	eax, [esi+8]
jl	short loc_401BAA

loc_401BFF:
lea	eax, [ebp+var_40]
mov	edx, 2000321h
push	eax
mov	ecx, 8E3h
push	[ebp+var_1C]
push	[ebp+var_20]
push	[ebp+var_24]
push	[ebp+var_28]
call	sub_401A23
lea	eax, [ebp+var_40]
mov	edx, 2000320h
push	eax
mov	ecx, 8E2h
push	[ebp+var_14]
push	[ebp+var_18]
push	[ebp+var_2C]
push	[ebp+var_30]
call	sub_401A23
mov	eax, [ebp+var_20]
mov	ecx, eax
and	ecx, [ebp+var_1C]
cmp	ecx, 0FFFFFFFFh
jz	short loc_401C56
mov	ecx, eax
or	ecx, [ebp+var_1C]
jz	short loc_401C56
push	1
pop	edx
jmp	short loc_401C58

loc_401C56:
xor	edx, edx

loc_401C58:
mov	ecx, [ebp+var_18]
and	ecx, [ebp+var_14]
cmp	ecx, 0FFFFFFFFh
jz	short loc_401C70
mov	ecx, [ebp+var_18]
or	ecx, [ebp+var_14]
jz	short loc_401C70
push	1
pop	ecx
jmp	short loc_401C72

loc_401C70:
xor	ecx, ecx

loc_401C72:
add	edx, ecx
cmp	edx, 2
jnz	short loc_401C97
add	eax, [ebp+var_18]
lea	ecx, [ebp+var_40]
push	ecx
mov	ecx, [ebp+var_1C]
adc	ecx, [ebp+var_14]
mov	edx, 2000322h
push	ecx
push	eax
mov	ecx, 8E4h
call	sub_401D60

loc_401C97:		; "\n"
push	offset asc_45B10C
lea	ecx, [ebp+var_40]
call	sub_403195
lea	eax, [edi+0D8h]
lea	ecx, [ebp+var_40]
push	eax
call	sub_4031F2
cmp	[esi+8], ebx
mov	[ebp+var_10], ebx
jle	short loc_401D22

loc_401CBB:
cmp	[ebp+var_10], 5
jge	short loc_401D22
push	offset asc_45B13C ; "\n	 "
lea	ecx, [ebp+var_40]
call	sub_403195
mov	eax, [esi+0Ch]
mov	ecx, [ebp+var_10]
mov	eax, [eax+ecx*4]
mov	ecx, edi
mov	[ebp+arg_4], eax
push	eax
lea	eax, [ebp+Memory]
push	eax
call	sub_4174B8
push	eax
lea	ecx, [ebp+var_40]
mov	byte ptr [ebp+var_4], 1
call	sub_4031F2
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx
push	[ebp+arg_4]
mov	ecx, edi
call	sub_41756F
test	al, al
jz	short loc_401D17
push	5Ch
lea	ecx, [ebp+var_40]
call	sub_40316A

loc_401D17:
inc	[ebp+var_10]
mov	eax, [ebp+var_10]
cmp	eax, [esi+8]
jl	short loc_401CBB

loc_401D22:
mov	eax, [ebp+var_10]
pop	edi
cmp	eax, [esi+8]
pop	esi
pop	ebx
jz	short loc_401D3A
push	offset a____0	; "\n  ..."
lea	ecx, [ebp+var_40]
call	sub_403195

loc_401D3A:
mov	ecx, [ebp+arg_0]
lea	eax, [ebp+var_40]
push	eax
call	sub_4030F2
push	[ebp+var_40]	; Memory
call	sub_4284D8
mov	eax, [ebp+arg_0]
pop	ecx
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn	8
sub_401B58 endp



; Attributes: bp-based frame

sub_401D60 proc	near

var_2C=	dword ptr -2Ch
var_24=	dword ptr -24h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_442380
call	__EH_prolog
sub	esp, 18h
mov	eax, edx
push	esi
mov	edx, ecx
push	eax
lea	ecx, [ebp+Memory]
call	sub_40B168
mov	esi, [ebp+arg_8]
and	[ebp+var_4], 0
push	eax
mov	ecx, esi
call	sub_4031F2
or	[ebp+var_4], 0FFFFFFFFh
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	ecx, esi
mov	[esp+2Ch+var_2C], offset asc_45B128 ; "	"
call	sub_403195
lea	ecx, [ebp+var_24]
push	[ebp+arg_4]
push	[ebp+arg_0]
call	sub_401B06
push	eax
mov	ecx, esi
mov	[ebp+var_4], 1
call	sub_4031F2
or	[ebp+var_4], 0FFFFFFFFh
push	[ebp+var_24]	; Memory
call	sub_4284D8
mov	ecx, esi
mov	[esp+2Ch+var_2C], offset asc_45B10C ; "\n"
call	sub_403195
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	0Ch
sub_401D60 endp



; Attributes: bp-based frame

sub_401DEA proc	near

pvarg= VARIANTARG ptr -1Ch
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_442394
call	__EH_prolog
sub	esp, 10h
push	esi
mov	esi, [ebp+arg_4]
mov	eax, [esi]
and	eax, [esi+4]
cmp	eax, 0FFFFFFFFh
jz	short loc_401E51
xor	eax, eax
push	ebx
mov	word ptr [ebp+pvarg.anonymous_0], ax
mov	word ptr [ebp+pvarg.anonymous_0+2], ax
lea	ebx, [ebp+pvarg]
mov	[ebp+var_4], eax
mov	eax, [ecx]
push	ebx
push	[ebp+arg_0]
push	edx
push	ecx
call	dword ptr [eax+14h]
movzx	eax, word ptr [ebp+pvarg.anonymous_0]
sub	eax, 13h
pop	ebx
jz	short loc_401E38
dec	eax
dec	eax
jz	short loc_401E38
or	dword ptr [esi], 0FFFFFFFFh
or	dword ptr [esi+4], 0FFFFFFFFh
jmp	short loc_401E45

loc_401E38:
lea	ecx, [ebp+pvarg]
call	sub_42D2C6
add	[esi], eax
adc	[esi+4], edx

loc_401E45:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1

loc_401E51:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_401DEA endp



; Attributes: thunk

; int __fastcall sub_401E60(VARIANTARG *pvarg)
sub_401E60 proc	near
jmp	sub_42CDE1
sub_401E60 endp



; Attributes: bp-based frame

sub_401E65 proc	near

var_158= dword ptr -158h
var_14C= byte ptr -14Ch
var_148= dword ptr -148h
var_138= byte ptr -138h
var_124= byte ptr -124h
var_120= dword ptr -120h
var_110= byte ptr -110h
var_FC=	byte ptr -0FCh
var_F0=	byte ptr -0F0h
var_E4=	byte ptr -0E4h
var_D8=	byte ptr -0D8h
var_CC=	byte ptr -0CCh
var_C0=	byte ptr -0C0h
var_AC=	dword ptr -0ACh
var_98=	byte ptr -98h
var_94=	dword ptr -94h
var_88=	dword ptr -88h
var_84=	dword ptr -84h
var_80=	dword ptr -80h
var_7C=	dword ptr -7Ch
var_78=	dword ptr -78h
var_74=	dword ptr -74h
var_70=	dword ptr -70h
var_6C=	dword ptr -6Ch
var_64=	dword ptr -64h
var_60=	dword ptr -60h
var_58=	dword ptr -58h
var_50=	dword ptr -50h
Memory=	dword ptr -44h
var_38=	dword ptr -38h
var_34=	byte ptr -34h
var_33=	byte ptr -33h
var_30=	dword ptr -30h
var_29=	byte ptr -29h
var_28=	dword ptr -28h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	byte ptr -1Ch
var_1B=	byte ptr -1Bh
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= byte ptr	 0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_4424FA
call	__EH_prolog
sub	esp, 14Ch
push	ebx
push	esi
push	edi
push	1
mov	esi, ecx
pop	eax
mov	ecx, [ebp+arg_8]
xor	ebx, ebx
cmp	[esi+8], eax
mov	[ebp+var_88], esi
mov	[ebp+var_14], ebx
jg	short loc_401E94
mov	eax, ecx
jmp	short loc_401E96

loc_401E94:
sub	eax, ecx

loc_401E96:
imul	ecx, 188h
imul	eax, 188h
lea	edi, [ecx+esi+84h]
lea	eax, [eax+esi+84h]
lea	ecx, [ebp+var_34]
mov	[ebp+var_38], eax
mov	[ebp+var_30], eax
call	sub_4028C8
lea	ecx, [ebp+var_1C]
mov	[ebp+var_4], ebx
mov	[ebp+var_18], edi
call	sub_4028C8
mov	ecx, edi
mov	byte ptr [ebp+var_4], 1
call	sub_40E872
test	al, al
jnz	short loc_401EF1
push	3020208h
push	8A0h
mov	ecx, edi
call	sub_40E58A
jmp	loc_40276C

loc_401EF1:
push	4
lea	ecx, [ebp+var_6C]
call	sub_402794
mov	[ebp+var_6C], offset off_44B518
push	3
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 2
mov	[ebp+var_28], ebx
mov	[ebp+var_24], ebx
mov	[ebp+var_20], ebx
call	sub_403396
cmp	[ebp+arg_4], bl
mov	byte ptr [ebp+var_4], 3
mov	byte ptr [ebp+arg_8+3],	bl
jz	short loc_401F7D
push	1		; __int16
push	0FFFFFFFFh	; wParam
lea	ecx, [edi+74h]
call	sub_402821
cmp	eax, ebx
jl	loc_402757
push	eax
mov	ecx, edi
call	sub_402875
mov	esi, eax
cmp	esi, 0FFFFFFFFh
jz	loc_402757
push	esi
lea	ecx, [ebp+var_6C]
call	sub_429907
lea	eax, [ebp+Memory]
push	esi
push	eax
mov	ecx, edi
call	sub_41733B
push	eax
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 4
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx
jmp	short loc_401FB0

loc_401F7D:
lea	eax, [ebp+var_6C]
mov	ecx, edi
push	eax
call	sub_41717C
cmp	[ebp+var_64], ebx
jz	loc_402757
mov	eax, [ebp+var_38]
lea	ecx, [ebp+var_28]
add	eax, 0D8h
push	eax
call	sub_40312C
cmp	dword ptr [esi+8], 1
jnz	short loc_401FB0
lea	ecx, [ebp+var_28]
call	sub_4029EB

loc_401FB0:
lea	ecx, [ebp+var_FC]
call	sub_402BA4
lea	ecx, [ebp+var_58]
mov	byte ptr [ebp+var_4], 5
call	sub_40337B
mov	esi, offset off_44B510
mov	[ebp+var_58], esi
lea	ecx, [ebp+var_58]
mov	byte ptr [ebp+var_4], 6
call	sub_42153A
lea	ecx, [ebp+var_C0]
call	sub_428327
lea	eax, [ebp+var_58]
lea	ecx, [ebp+var_C0]
push	eax
call	sub_403531
lea	eax, [ebp+var_28]
lea	ecx, [ebp+var_D8]
push	eax
call	sub_40312C
cmp	byte ptr [ebp+arg_0], bl
jz	short loc_402028
push	3020202h
mov	edx, 89Ah
lea	ecx, [ebp+var_78]
call	sub_40B168
mov	[ebp+var_14], 1
mov	byte ptr [ebp+var_4], 7
jmp	short loc_402048

loc_402028:
push	3020201h
mov	edx, 899h
lea	ecx, [ebp+Memory]
call	sub_40B168
mov	[ebp+var_14], 2
mov	[ebp+var_4], 8

loc_402048:
push	eax
lea	ecx, [ebp+var_F0]
call	sub_40312C
test	byte ptr [ebp+var_14], 2
jz	short loc_402067
push	[ebp+Memory]	; Memory
and	[ebp+var_14], 0FFFFFFFDh
call	sub_4284D8
pop	ecx

loc_402067:
test	byte ptr [ebp+var_14], 1
mov	[ebp+var_4], 6
jz	short loc_402081
push	[ebp+var_78]	; Memory
and	[ebp+var_14], 0FFFFFFFEh
call	sub_4284D8
pop	ecx

loc_402081:
cmp	byte ptr [ebp+arg_0], bl
jz	short loc_4020A2
push	3020204h
mov	edx, 89Ch
lea	ecx, [ebp+var_78]
call	sub_40B168
or	[ebp+var_14], 4
mov	byte ptr [ebp+var_4], 9
jmp	short loc_4020BF

loc_4020A2:
push	3020203h
mov	edx, 89Bh
lea	ecx, [ebp+Memory]
call	sub_40B168
or	[ebp+var_14], 8
mov	[ebp+var_4], 0Ah

loc_4020BF:
push	eax
lea	ecx, [ebp+var_E4]
call	sub_40312C
test	byte ptr [ebp+var_14], 8
jz	short loc_4020DE
push	[ebp+Memory]	; Memory
and	[ebp+var_14], 0FFFFFFF7h
call	sub_4284D8
pop	ecx

loc_4020DE:
test	byte ptr [ebp+var_14], 4
mov	[ebp+var_4], 6
jz	short loc_4020F4
push	[ebp+var_78]	; Memory
call	sub_4284D8
pop	ecx

loc_4020F4:
lea	eax, [ebp+var_6C]
mov	ecx, edi
push	eax
lea	eax, [ebp+Memory]
push	eax
call	sub_401B58
push	eax
lea	ecx, [ebp+var_CC]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 6
call	sub_4284D8
pop	ecx
mov	ecx, edi
call	sub_40DA67
push	eax		; hWndParent
push	1FAh		; lpTemplateName
lea	ecx, [ebp+var_FC]
call	sub_42FCF7
cmp	eax, 2
jnz	short loc_402149
mov	[ebp+var_58], esi
mov	byte ptr [ebp+var_4], 0Ch
jmp	loc_402351

loc_402149:
lea	eax, [ebp+var_D8]
lea	ecx, [ebp+var_28]
push	eax
call	sub_40312C
cmp	[ebp+var_24], ebx
jnz	short loc_40217A
push	3020208h
push	8A0h
mov	ecx, edi
call	sub_40E58A
mov	[ebp+var_58], esi
mov	byte ptr [ebp+var_4], 0Dh
jmp	loc_402351

loc_40217A:
lea	ecx, [ebp+var_28]
call	sub_402B79
test	al, al
jnz	short loc_4021DA
mov	ecx, edi
call	sub_40E6A6
test	al, al
jnz	short loc_4021AE
push	3020208h
push	8A0h
mov	ecx, edi
call	sub_40E58A
mov	[ebp+var_58], esi
mov	byte ptr [ebp+var_4], 0Eh
jmp	loc_402351

loc_4021AE:
lea	eax, [ebp+var_28]
lea	edx, [edi+0D8h]
push	eax
lea	ecx, [ebp+Memory]
call	sub_40356A
push	eax
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 0Fh
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 6
call	sub_4284D8
pop	ecx

loc_4021DA:
mov	eax, [ebp+var_24]
mov	ecx, [ebp+var_28]
cmp	eax, ebx
jle	short loc_402213
cmp	word ptr [ecx],	5Ch
jnz	short loc_402213
cmp	eax, 1
jz	short loc_4021F6
cmp	word ptr [ecx+2], 5Ch
jz	short loc_402213

loc_4021F6:
push	3020208h
push	8A0h
mov	ecx, edi
call	sub_40E58A
mov	[ebp+var_58], esi
mov	byte ptr [ebp+var_4], 10h
jmp	loc_402351

loc_402213:
cmp	[ebp+var_64], 1
jg	loc_4022ED
cmp	eax, ebx
jz	short loc_40222D
cmp	word ptr [ecx+eax*2-2],	5Ch
jz	loc_4022ED

loc_40222D:
call	sub_42B630
test	al, al
jnz	loc_4022EA
mov	ecx, edi
call	sub_40E6BC
test	al, al
jnz	loc_4022EA
mov	eax, [ebp+var_24]
cmp	eax, ebx
jz	short loc_4022CB
mov	ecx, [ebp+var_28]
lea	eax, [ecx+eax*2-2]

loc_402257:
cmp	word ptr [eax],	5Ch
jz	short loc_402265
cmp	eax, ecx
jz	short loc_40226B
dec	eax
dec	eax
jmp	short loc_402257

loc_402265:
sub	eax, ecx
sar	eax, 1
jmp	short loc_40226E

loc_40226B:
or	eax, 0FFFFFFFFh

loc_40226E:
cmp	eax, ebx
jl	short loc_4022CB
inc	eax
lea	ecx, [ebp+var_28]
push	eax
lea	eax, [ebp+Memory]
push	eax
call	sub_403228
mov	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 12h
call	sub_42A264
lea	ecx, [ebp+Memory]
call	sub_402B2D
test	al, al
jnz	short loc_4022BE
push	3020208h
push	8A0h
mov	ecx, edi
call	sub_40E58A
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	[ebp+var_58], esi
mov	byte ptr [ebp+var_4], 13h
jmp	loc_402351

loc_4022BE:		; Memory
push	[ebp+Memory]
mov	byte ptr [ebp+var_4], 6
call	sub_4284D8
pop	ecx

loc_4022CB:
lea	edx, [ebp+var_28]
lea	ecx, [ebp+var_58]
call	sub_421547

loc_4022D6:
cmp	[ebp+var_50], 14h
jle	loc_402379
lea	ecx, [ebp+var_58]
call	sub_42832F
jmp	short loc_4022D6

loc_4022EA:
mov	ecx, [ebp+var_28]

loc_4022ED:
call	sub_42A264
lea	ecx, [ebp+var_28]
call	sub_42C33B
lea	ecx, [ebp+var_28]
call	sub_402B2D
test	al, al
jnz	short loc_4022CB
mov	eax, [ebp+var_88]
cmp	dword ptr [eax+8], 2
jl	short loc_402339
mov	eax, [ebp+var_38]
mov	ecx, [ebp+var_28]
mov	edx, [eax+0D8h]
call	sub_42828A
cmp	eax, ebx
jnz	short loc_402339
mov	ecx, [ebp+var_38]
call	sub_40E872
test	al, al
jz	short loc_402339
mov	byte ptr [ebp+arg_8+3],	1
jmp	short loc_4022CB

loc_402339:
push	3020208h
push	8A0h
mov	ecx, edi
call	sub_40E58A
mov	[ebp+var_58], esi
mov	byte ptr [ebp+var_4], 11h

loc_402351:
lea	ecx, [ebp+var_58]
call	sub_428327
lea	ecx, [ebp+var_58]
mov	byte ptr [ebp+var_4], 5
call	sub_4282FE
lea	ecx, [ebp+var_FC]
mov	byte ptr [ebp+var_4], 3
call	sub_402C6D
jmp	loc_402757

loc_402379:
lea	ecx, [ebp+var_58]
call	sub_42152D
mov	[ebp+var_58], esi
lea	ecx, [ebp+var_58]
mov	byte ptr [ebp+var_4], 14h
call	sub_428327
lea	ecx, [ebp+var_58]
mov	byte ptr [ebp+var_4], 5
call	sub_4282FE
lea	ecx, [ebp+var_FC]
mov	byte ptr [ebp+var_4], 3
call	sub_402C6D
cmp	byte ptr [ebp+arg_8+3],	bl
jz	short loc_4023CC
mov	ecx, edi
call	sub_4028A8
test	al, al
jz	short loc_4023CC
mov	ecx, [ebp+var_38]
call	sub_40E6A6
test	al, al
jnz	short loc_4023CC
mov	[ebp+var_29], bl
jmp	short loc_4023D9

loc_4023CC:
cmp	byte ptr [ebp+arg_8+3],	bl
mov	[ebp+var_29], 1
mov	[ebp+var_D], 1
jnz	short loc_4023DC

loc_4023D9:
mov	[ebp+var_D], bl

loc_4023DC:
lea	ecx, [ebp+var_94]
mov	[ebp+var_98], bl
call	sub_403079
push	3
lea	ecx, [ebp+var_84]
mov	byte ptr [ebp+var_4], 15h
mov	[ebp+var_84], ebx
mov	[ebp+var_80], ebx
mov	[ebp+var_7C], ebx
call	sub_403396
cmp	[ebp+var_D], bl
mov	byte ptr [ebp+var_4], 16h
jz	short loc_402441
push	off_45B060
lea	ecx, [ebp+var_98]
call	sub_42AF90
lea	eax, [ebp+var_94]
lea	ecx, [ebp+var_84]
push	eax
call	sub_40312C
lea	ecx, [ebp+var_84]
call	sub_42C33B

loc_402441:
lea	ecx, [ebp+var_14C]
call	sub_40283B
lea	ecx, [ebp+var_124]
mov	byte ptr [ebp+var_4], 17h
call	sub_40283B
lea	eax, [ebp+var_14C]
mov	ecx, edi
push	eax
mov	byte ptr [ebp+var_4], 18h
call	sub_4167F4
mov	ecx, [ebp+var_38]
lea	eax, [ebp+var_124]
push	eax
call	sub_4167F4
cmp	[ebp+var_29], bl
jz	loc_40258F
cmp	[ebp+var_D], bl
lea	eax, [ebp+var_84]
jnz	short loc_402493
lea	eax, [ebp+var_28]

loc_402493:
push	eax
lea	ecx, [ebp+Memory]
call	sub_4030F2
push	ebx
push	1
push	[ebp+arg_0]
lea	eax, [ebp+Memory]
mov	ecx, edi
mov	byte ptr [ebp+var_4], 19h
push	eax
lea	eax, [ebp+var_6C]
push	eax
call	sub_40290A
cmp	eax, ebx
mov	[ebp+var_14], eax
jz	loc_402582
mov	ecx, [ebp+var_30]
mov	al, [ebp+var_34]
mov	[ecx+184h], al
mov	eax, [ebp+var_30]
mov	cl, [ebp+var_33]
mov	[eax+185h], cl
mov	ecx, [ebp+var_18]
mov	al, [ebp+var_1C]
mov	[ecx+184h], al
mov	eax, [ebp+var_18]
mov	cl, [ebp+var_1B]
mov	[eax+185h], cl
mov	ecx, edi
call	sub_40E5B8
cmp	[ebp+var_14], 80004004h
jz	short loc_40250F
push	offset aError_0	; "Error"
mov	ecx, edi
push	[ebp+var_14]	; int
call	sub_40E54B

loc_40250F:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
lea	ecx, [ebp+var_110]
mov	byte ptr [ebp+var_4], 1Ah
call	sub_40327C
push	[ebp+var_120]	; Memory
call	sub_4284D8
pop	ecx
lea	ecx, [ebp+var_138]
mov	byte ptr [ebp+var_4], 1Bh
call	sub_40327C
push	[ebp+var_148]	; Memory
call	sub_4284D8
push	[ebp+var_84]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx
lea	ecx, [ebp+var_98]
mov	byte ptr [ebp+var_4], 1Ch
call	sub_4027FD
push	[ebp+var_94]	; Memory
call	sub_4284D8
push	[ebp+var_28]	; Memory
call	sub_4284D8
pop	ecx
jmp	loc_40275F

loc_402582:		; Memory
push	[ebp+Memory]
mov	byte ptr [ebp+var_4], 18h
call	sub_4284D8
pop	ecx

loc_40258F:
cmp	byte ptr [ebp+arg_8+3],	bl
jz	loc_4026C7
lea	ecx, [ebp+var_AC]
call	sub_40337B
mov	[ebp+var_AC], esi
push	3
lea	ecx, [ebp+var_78]
mov	byte ptr [ebp+var_4], 1Dh
mov	[ebp+var_78], ebx
mov	[ebp+var_74], ebx
mov	[ebp+var_70], ebx
call	sub_403396
cmp	[ebp+var_D], bl
mov	byte ptr [ebp+var_4], 1Eh
lea	eax, [ebp+var_84]
jnz	short loc_4025D5
lea	eax, [edi+0D8h]

loc_4025D5:
push	eax
lea	ecx, [ebp+var_78]
call	sub_40312C
push	[ebp+var_64]
lea	ecx, [ebp+var_AC]
call	sub_428378
xor	esi, esi
cmp	[ebp+var_64], ebx
jle	short loc_40262D

loc_4025F3:
mov	eax, [ebp+var_60]
mov	ecx, edi
push	dword ptr [eax+esi*4]
lea	eax, [ebp+var_158]
push	eax
call	sub_4174B8
push	eax
lea	ecx, [ebp+var_AC]
mov	byte ptr [ebp+var_4], 1Fh
call	sub_4032B4
push	[ebp+var_158]	; Memory
mov	byte ptr [ebp+var_4], 1Eh
call	sub_4284D8
inc	esi
pop	ecx
cmp	esi, [ebp+var_64]
jl	short loc_4025F3

loc_40262D:
mov	ecx, [ebp+var_38]
push	ebx
lea	eax, [ebp+var_AC]
push	1
push	eax
lea	eax, [ebp+var_78]
push	eax
call	sub_40F8A2
mov	esi, eax
cmp	esi, ebx
jz	short loc_4026AF
mov	ecx, [ebp+var_30]
mov	al, [ebp+var_34]
mov	[ecx+184h], al
mov	eax, [ebp+var_30]
mov	cl, [ebp+var_33]
mov	[eax+185h], cl
mov	ecx, [ebp+var_18]
mov	al, [ebp+var_1C]
mov	[ecx+184h], al
mov	eax, [ebp+var_18]
mov	cl, [ebp+var_1B]
mov	[eax+185h], cl
mov	ecx, edi
call	sub_40E5B8
cmp	esi, 80004004h
jz	short loc_402695
push	offset aError_0	; "Error"
push	esi		; int
mov	ecx, edi
call	sub_40E54B

loc_402695:		; Memory
push	[ebp+var_78]
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 18h
lea	ecx, [ebp+var_AC]
call	sub_40327C
jmp	short loc_40271E

loc_4026AF:		; Memory
push	[ebp+var_78]
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 18h
lea	ecx, [ebp+var_AC]
call	sub_40327C

loc_4026C7:
mov	ecx, [ebp+var_88]
push	1
call	sub_402FBC
cmp	[ebp+arg_4], bl
jnz	short loc_4026DE
cmp	byte ptr [ebp+arg_0], bl
jz	short loc_4026F1

loc_4026DE:
lea	eax, [ebp+var_14C]
mov	ecx, edi
push	eax
call	sub_41687D
cmp	[ebp+arg_4], bl
jnz	short loc_402707

loc_4026F1:
mov	ecx, [ebp+var_38]
lea	eax, [ebp+var_124]
push	eax
call	sub_41687D
mov	ecx, edi
call	sub_41BACC

loc_402707:
lea	ecx, [ebp+var_34]
call	sub_4028F2
lea	ecx, [ebp+var_1C]
call	sub_4028F2
mov	ecx, edi
call	sub_40E5B8

loc_40271E:
lea	ecx, [ebp+var_124]
mov	byte ptr [ebp+var_4], 17h
call	sub_40299B
lea	ecx, [ebp+var_14C]
mov	byte ptr [ebp+var_4], 16h
call	sub_40299B
push	[ebp+var_84]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 3
lea	ecx, [ebp+var_98]
call	sub_4027CD

loc_402757:		; Memory
push	[ebp+var_28]
call	sub_4284D8

loc_40275F:
pop	ecx
mov	byte ptr [ebp+var_4], 1
lea	ecx, [ebp+var_6C]
call	sub_4282FE

loc_40276C:
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], bl
call	sub_4028F2
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_34]
call	sub_4028F2
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_401E65 endp




sub_402794 proc	near

arg_0= dword ptr  4

mov	eax, ecx
xor	ecx, ecx
mov	[eax+4], ecx
mov	[eax+8], ecx
mov	[eax+0Ch], ecx
mov	ecx, [esp+arg_0]
mov	[eax+10h], ecx
mov	dword ptr [eax], offset	off_44B520
retn	4
sub_402794 endp




; int __thiscall sub_4027B1(void *Memory, char)
sub_4027B1 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_4282FE
test	[esp+4+arg_0], 1
jz	short loc_4027C7
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_4027C7:
mov	eax, esi
pop	esi
retn	4
sub_4027B1 endp



; Attributes: bp-based frame

sub_4027CD proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset unknown_libname_7 ;	Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
call	sub_4027FD
push	dword ptr [esi+4] ; Memory
call	sub_4284D8
pop	ecx
pop	esi
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn
sub_4027CD endp




sub_4027FD proc	near
push	esi
mov	esi, ecx
cmp	byte ptr [esi],	0
jnz	short loc_402809
mov	al, 1
pop	esi
retn

loc_402809:
lea	ecx, [esi+4]
call	sub_42A548
neg	al
sbb	al, al
push	0
inc	al
mov	[esi], al
pop	eax
setz	al
pop	esi
retn
sub_4027FD endp




; int __stdcall	sub_402821(WPARAM wParam, __int16)
sub_402821 proc	near

wParam=	dword ptr  4
arg_4= word ptr	 8

movzx	eax, [esp+arg_4]
push	eax		; lParam
push	[esp+4+wParam]	; wParam
push	100Ch		; Msg
push	dword ptr [ecx]	; hWnd
call	ds:SendMessageA
retn	8
sub_402821 endp




sub_40283B proc	near
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
push	3
or	dword ptr [esi], 0FFFFFFFFh
lea	ecx, [esi+4]
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
mov	[esi+10h], bl
mov	[esi+18h], ebx
mov	[esi+1Ch], ebx
mov	[esi+20h], ebx
mov	dword ptr [esi+24h], 4
mov	dword ptr [esi+14h], offset off_44B510
mov	eax, esi
pop	esi
pop	ebx
retn
sub_40283B endp



; Attributes: bp-based frame

sub_402875 proc	near

var_4= dword ptr -4
arg_0= dword ptr  8

push	ebp
mov	ebp, esp
push	ecx
lea	eax, [ebp+var_4]
add	ecx, 74h
push	eax
push	[ebp+arg_0]
call	sub_42FDFD
test	al, al
jnz	short loc_4028A1
lea	eax, [ebp+arg_0]
push	offset unk_44D120
push	eax
mov	[ebp+arg_0], 1
call	_CxxThrowException

loc_4028A1:
mov	eax, [ebp+var_4]
leave
retn	4
sub_402875 endp




sub_4028A8 proc	near
push	esi
mov	esi, ecx
call	sub_40E6A6
test	al, al
jnz	short loc_4028C3
mov	ecx, esi
call	sub_40E6B1
test	al, al
jnz	short loc_4028C3
xor	eax, eax
pop	esi
retn

loc_4028C3:
push	1
pop	eax
pop	esi
retn
sub_4028A8 endp




sub_4028C8 proc	near
mov	eax, [ecx+4]
push	esi
mov	dl, [eax+184h]
lea	esi, [eax+184h]
mov	[ecx], dl
mov	al, [eax+185h]
mov	[ecx+1], al
and	byte ptr [esi],	0
mov	eax, [ecx+4]
pop	esi
and	byte ptr [eax+185h], 0
retn
sub_4028C8 endp




sub_4028F2 proc	near
mov	eax, [ecx+4]
mov	dl, [ecx]
mov	[eax+184h], dl
mov	eax, [ecx+4]
mov	cl, [ecx+1]
mov	[eax+185h], cl
retn
sub_4028F2 endp



; Attributes: bp-based frame

sub_40290A proc	near

Memory=	dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
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

mov	eax, offset loc_442524
call	__EH_prolog
sub	esp, 10h
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+var_D], bl
mov	[ebp+Memory], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_403396
cmp	[esi+0ECh], ebx
mov	[ebp+var_4], ebx
jle	short loc_402960
mov	eax, [esi+0ECh]
mov	ecx, [esi+0F0h]
mov	eax, [ecx+eax*4-4]
mov	cl, [eax+70h]
add	eax, 74h
mov	[ebp+var_D], cl
push	eax
lea	ecx, [ebp+Memory]
call	sub_40312C

loc_402960:
lea	eax, [ebp+Memory]
mov	ecx, esi
push	eax
lea	eax, [ebp+var_D]
push	eax
push	[ebp+arg_10]
push	[ebp+arg_C]
push	[ebp+arg_8]
push	[ebp+arg_4]
push	[ebp+arg_0]
call	sub_40F4C6
push	[ebp+Memory]	; Memory
mov	esi, eax
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	14h
sub_40290A endp



; Attributes: bp-based frame

sub_40299B proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442543
call	__EH_prolog
push	ecx
push	ecx
push	esi
push	edi
mov	edi, ecx
mov	[ebp+var_10], edi
and	[ebp+var_4], 0
lea	esi, [edi+14h]
mov	[ebp+var_14], esi
mov	dword ptr [esi], offset	off_44B510
mov	ecx, esi
mov	byte ptr [ebp+var_4], 1
call	sub_428327
and	byte ptr [ebp+var_4], 0
mov	ecx, esi
call	sub_4282FE
push	dword ptr [edi+4] ; Memory
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_40299B endp



; Attributes: bp-based frame

sub_4029EB proc	near

var_24=	dword ptr -24h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442560
call	__EH_prolog
sub	esp, 18h
push	ebx
push	esi
mov	esi, ecx
push	edi
cmp	dword ptr [esi+4], 0
jz	loc_402B1E
push	5Ch
pop	ebx

loc_402A0A:
mov	ecx, [esi]
call	sub_42B630
test	al, al
jnz	loc_402B17
mov	eax, [esi+4]
test	eax, eax
jz	short loc_402A42
mov	ecx, [esi]
lea	eax, [ecx+eax*2-2]

loc_402A26:
cmp	[eax], bx
jz	short loc_402A33
cmp	eax, ecx
jz	short loc_402A3B
dec	eax
dec	eax
jmp	short loc_402A26

loc_402A33:
sub	eax, ecx
sar	eax, 1
mov	edi, eax
jmp	short loc_402A3E

loc_402A3B:
or	edi, 0FFFFFFFFh

loc_402A3E:
test	edi, edi
jge	short loc_402A51

loc_402A42:
mov	eax, [esi]
and	dword ptr [esi+4], 0
and	word ptr [eax],	0
jmp	loc_402B0B

loc_402A51:
lea	eax, [edi+1]
mov	ecx, esi
push	eax
lea	eax, [ebp+Memory]
push	eax
call	sub_403228
and	[ebp+var_4], 0
push	eax
mov	ecx, esi
call	sub_40312C
or	[ebp+var_4], 0FFFFFFFFh
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [esi+4]
pop	ecx
cmp	eax, 3
jnz	short loc_402A8E
mov	ecx, [esi]
cmp	word ptr [ecx+2], 3Ah
jz	loc_402B1E

loc_402A8E:
cmp	eax, 2
jle	short loc_402AE3
mov	ecx, [esi]
cmp	[ecx], bx
jnz	short loc_402AE3
cmp	[ecx+2], bx
jnz	short loc_402AE3
lea	eax, [ecx+4]

loc_402AA3:
mov	dx, [eax]
cmp	dx, bx
jz	short loc_402AB4
test	dx, dx
jz	short loc_402ABA
inc	eax
inc	eax
jmp	short loc_402AA3

loc_402AB4:
sub	eax, ecx
sar	eax, 1
jmp	short loc_402ABD

loc_402ABA:
or	eax, 0FFFFFFFFh

loc_402ABD:
test	eax, eax
jle	short loc_402AE3
lea	eax, [ecx+eax*2+2]

loc_402AC5:
mov	dx, [eax]
cmp	dx, bx
jz	short loc_402AD6
test	dx, dx
jz	short loc_402ADC
inc	eax
inc	eax
jmp	short loc_402AC5

loc_402AD6:
sub	eax, ecx
sar	eax, 1
jmp	short loc_402ADF

loc_402ADC:
or	eax, 0FFFFFFFFh

loc_402ADF:
cmp	eax, edi
jz	short loc_402B1E

loc_402AE3:
lea	eax, [ebp+var_24]
push	edi
push	eax
mov	ecx, esi
call	sub_403228
push	eax
mov	ecx, esi
mov	[ebp+var_4], 1
call	sub_40312C
or	[ebp+var_4], 0FFFFFFFFh
push	[ebp+var_24]	; Memory
call	sub_4284D8
pop	ecx

loc_402B0B:
cmp	dword ptr [esi+4], 0
jnz	loc_402A0A
jmp	short loc_402B1E

loc_402B17:
mov	ecx, esi
call	sub_42C33B

loc_402B1E:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_4029EB endp



; Attributes: bp-based frame

sub_402B2D proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442574
call	__EH_prolog
sub	esp, 0Ch
push	esi
mov	esi, ecx
push	esi
lea	ecx, [ebp+Memory]
call	sub_4030F2
and	[ebp+var_4], 0
lea	ecx, [ebp+Memory]
call	sub_4029EB
mov	edx, [esi]
mov	ecx, [ebp+Memory]
call	sub_42828A
mov	esi, eax
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	ecx, [ebp+var_C]
test	esi, esi
setz	al
pop	esi
mov	large fs:0, ecx
leave
retn
sub_402B2D endp




sub_402B79 proc	near
mov	eax, [ecx+4]
cmp	eax, 1
jl	short loc_402B89
mov	edx, [ecx]
cmp	word ptr [edx],	5Ch
jz	short loc_402B9E

loc_402B89:
cmp	eax, 3
jl	short loc_402BA1
mov	ecx, [ecx]
cmp	word ptr [ecx+2], 3Ah
jnz	short loc_402BA1
cmp	word ptr [ecx+4], 5Ch
jnz	short loc_402BA1

loc_402B9E:
mov	al, 1
retn

loc_402BA1:
xor	al, al
retn
sub_402B79 endp



; Attributes: bp-based frame

sub_402BA4 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4425A9
call	__EH_prolog
push	ecx
push	esi
push	edi
mov	esi, ecx
xor	edi, edi
mov	[ebp+var_10], esi
mov	[esi+4], edi
mov	dword ptr [esi], offset	off_44B558
lea	ecx, [esi+0Ch]
mov	[esi+8], edi
push	3
mov	[ebp+var_4], edi
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
lea	ecx, [esi+18h]
push	3
mov	byte ptr [ebp+var_4], 1
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
lea	ecx, [esi+24h]
push	3
mov	byte ptr [ebp+var_4], 2
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
lea	ecx, [esi+30h]
push	3
mov	byte ptr [ebp+var_4], 3
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
mov	ecx, [ebp+var_C]
mov	[esi+40h], edi
mov	[esi+44h], edi
mov	[esi+48h], edi
mov	dword ptr [esi+4Ch], 4
mov	dword ptr [esi+3Ch], offset off_44B510
mov	dword ptr [esi], offset	off_44B528
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_402BA4 endp




sub_402C48 proc	near
mov	al, 1
retn
sub_402C48 endp




sub_402C4B proc	near
xor	al, al
retn	0Ch
sub_402C4B endp




sub_402C50 proc	near
xor	al, al
retn	8
sub_402C50 endp




sub_402C55 proc	near
push	1		; nResult
push	dword ptr [ecx+4] ; hDlg
call	ds:EndDialog
retn
sub_402C55 endp




sub_402C61 proc	near
push	2		; nResult
push	dword ptr [ecx+4] ; hDlg
call	ds:EndDialog
retn
sub_402C61 endp



; Attributes: bp-based frame

sub_402C6D proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4425F0
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
lea	edi, [esi+3Ch]
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44B510
mov	ecx, edi
mov	byte ptr [ebp+var_4], 5
call	sub_428327
mov	ecx, edi
mov	byte ptr [ebp+var_4], 4
call	sub_4282FE
push	dword ptr [esi+30h] ; Memory
call	sub_4284D8
push	dword ptr [esi+24h] ; Memory
call	sub_4284D8
push	dword ptr [esi+18h] ; Memory
call	sub_4284D8
push	dword ptr [esi+0Ch] ; Memory
call	sub_4284D8
mov	ecx, [ebp+var_C]
add	esp, 10h
mov	dword ptr [esi], offset	off_44B588
mov	large fs:0, ecx
pop	edi
pop	esi
leave
retn
sub_402C6D endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_4. PRESS KEYPAD CTRL-"+" TO EXPAND]
; [0000001D BYTES: COLLAPSED FUNCTION unknown_libname_1. PRESS KEYPAD CTRL-"+" TO EXPAND]



; int __thiscall sub_402CFB(void *Memory, char)
sub_402CFB proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_402C6D
test	[esp+4+arg_0], 1
jz	short loc_402D11
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_402D11:
mov	eax, esi
pop	esi
retn	4
sub_402CFB endp




sub_402D17 proc	near

arg_0= dword ptr  4

cmp	dword ptr [ecx+8], 1
jle	short locret_402D3C
mov	eax, [esp+arg_0]
imul	eax, 188h
lea	edx, [eax+ecx+15Ch]
sub	ecx, eax
push	edx
add	ecx, 20Ch
call	sub_412FAA

locret_402D3C:
retn	4
sub_402D17 endp



; Attributes: bp-based frame

sub_402D3F proc	near

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

mov	eax, offset loc_442604
call	__EH_prolog
cmp	dword ptr [ecx+8], 1
push	ebx
push	esi
push	edi
jle	loc_402DE7
mov	eax, [ebp+arg_0]
imul	eax, 188h
lea	esi, [eax+ecx+84h]
sub	ecx, eax
add	ecx, 20Ch
mov	edi, ecx
lea	ecx, [esi+74h]
call	sub_402DF8
test	eax, eax
jl	short loc_402DE7
push	eax
mov	ecx, esi
call	sub_402875
mov	ebx, eax
mov	ecx, esi
push	ebx
call	sub_41756F
test	al, al
jz	short loc_402DE7
and	[ebp+arg_0], 0
mov	esi, [esi+0FCh]
and	[ebp+var_4], 0
lea	ecx, [ebp+arg_0]
cmp	ebx, 0FFFFFFFFh
mov	eax, [esi]
push	ecx
jnz	short loc_402DB1
push	esi
call	dword ptr [eax+20h]
jmp	short loc_402DB6

loc_402DB1:
push	ebx
push	esi
call	dword ptr [eax+1Ch]

loc_402DB6:
test	eax, eax
jnz	short loc_402DD6
mov	ecx, edi
call	sub_413EF8
push	[ebp+arg_0]
lea	ecx, [edi+0FCh]
call	sub_43D0DB
mov	ecx, edi
call	sub_4166B3

loc_402DD6:
mov	eax, [ebp+arg_0]
or	[ebp+var_4], 0FFFFFFFFh
test	eax, eax
jz	short loc_402DE7
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_402DE7:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_402D3F endp




sub_402DF8 proc	near
push	1		; lParam
push	0FFFFFFFFh	; wParam
push	100Ch		; Msg
push	dword ptr [ecx]	; hWnd
call	ds:SendMessageA
retn
sub_402DF8 endp

call	sub_402E14
jmp	loc_402E32



sub_402E14 proc	near
xor	eax, eax
push	3
mov	ecx, offset dword_45D4B0
mov	dword_45D4B0, eax
mov	dword_45D4B4, eax
mov	dword_45D4B8, eax
call	sub_403396
retn
sub_402E14 endp


loc_402E32:
push	offset loc_402E3E
call	_atexit
pop	ecx
retn

loc_402E3E:
push	dword_45D4B0
call	sub_4284D8
pop	ecx
retn
call	sub_402E55
jmp	loc_402E73



sub_402E55 proc	near
xor	eax, eax
push	3
mov	ecx, offset dword_45D4A0
mov	dword_45D4A0, eax
mov	dword_45D4A4, eax
mov	dword_45D4A8, eax
call	sub_4034E3
retn
sub_402E55 endp


loc_402E73:
push	offset loc_402E7F
call	_atexit
pop	ecx
retn

loc_402E7F:
push	dword_45D4A0
call	sub_4284D8
pop	ecx
retn


; Attributes: bp-based frame

sub_402E8C proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_4= dword ptr  0Ch

mov	eax, offset loc_442618
call	__EH_prolog
sub	esp, 0Ch
push	ebx
push	esi
mov	esi, [ebp+arg_4]
mov	eax, [esi+8]
cmp	eax, 0FFFFFDF8h
jnz	short loc_402EF7
xor	ebx, ebx
push	edi
mov	[esi+60h], ebx
mov	eax, dword_45D4B0
mov	dword_45D4B4, ebx
mov	edi, offset dword_45D4B0
mov	[eax], bx
mov	ecx, [esi+4]
mov	edx, edi
call	sub_402F39
mov	edx, edi
lea	ecx, [ebp+Memory]
call	sub_43A785
push	eax
mov	ecx, offset dword_45D4A0
mov	[ebp+var_4], ebx
call	sub_403244
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, dword_45D4A0
pop	ecx
mov	[esi+0Ch], eax
pop	edi
jmp	short loc_402F29

loc_402EF7:
cmp	eax, 0FFFFFDEEh
jnz	short loc_402F29
xor	ebx, ebx
mov	edx, offset dword_45D4B0
mov	[esi+0B0h], ebx
mov	eax, dword_45D4B0
mov	dword_45D4B4, ebx
mov	[eax], bx
mov	ecx, [esi+4]
call	sub_402F39
mov	eax, dword_45D4B0
mov	[esi+0Ch], eax

loc_402F29:
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_402E8C endp




sub_402F39 proc	near
push	esi
mov	esi, edx
push	edi
push	esi
mov	edi, ecx
push	4
mov	edx, offset unk_45B068
call	sub_402F62
test	al, al
jnz	short loc_402F5F
push	esi
push	3
mov	edx, offset unk_45B0B8
mov	ecx, edi
call	sub_402F62

loc_402F5F:
pop	edi
pop	esi
retn
sub_402F39 endp



; Attributes: bp-based frame

sub_402F62 proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_44262C
call	__EH_prolog
sub	esp, 0Ch
push	esi
xor	esi, esi
cmp	[ebp+arg_0], esi
mov	eax, edx
jle	short loc_402F86

loc_402F79:
cmp	[eax], ecx
jz	short loc_402F97
inc	esi
add	eax, 14h
cmp	esi, [ebp+arg_0]
jl	short loc_402F79

loc_402F86:
xor	al, al

loc_402F88:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	8

loc_402F97:
lea	ecx, [ebp+Memory]
push	ecx
mov	ecx, eax
call	sub_4014C9
mov	ecx, [ebp+arg_4]
and	[ebp+var_4], 0
push	eax
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	al, 1
jmp	short loc_402F88
sub_402F62 endp



; Attributes: bp-based frame

sub_402FBC proc	near

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

mov	eax, offset loc_442648
call	__EH_prolog
sub	esp, 18h
push	esi
mov	esi, ecx
lea	ecx, [ebp+var_18]
mov	eax, [esi+0Ch]
imul	eax, 188h
lea	eax, [eax+esi+15Ch]
push	eax
call	sub_4030F2
and	[ebp+var_4], 0
cmp	[ebp+var_14], 0
jnz	short loc_40301B
push	3000000h
mov	edx, 898h
lea	ecx, [ebp+Memory]
call	sub_40B168
push	eax
lea	ecx, [ebp+var_18]
mov	byte ptr [ebp+var_4], 1
call	sub_4031F2
push	[ebp+Memory]	; Memory
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
pop	ecx

loc_40301B:
cmp	[ebp+arg_0], 0
jnz	short loc_403033
mov	edx, [esi+3A8h]
mov	ecx, [ebp+var_18]
call	sub_42828A
test	eax, eax
jz	short loc_40304C

loc_403033:
lea	eax, [ebp+var_18]
lea	ecx, [esi+3A8h]
push	eax
call	sub_40312C
mov	edx, [ebp+var_18]
mov	ecx, [esi]
call	sub_42E6BD

loc_40304C:		; Memory
push	[ebp+var_18]
call	sub_4284D8
pop	ecx
pop	esi
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn	4
sub_402FBC endp




sub_403064 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [esp+arg_0]
cmp	eax, [ecx+0Ch]
jnz	short locret_403076
push	[esp+arg_4]
call	sub_402FBC

locret_403076:
retn	8
sub_403064 endp




sub_403079 proc	near
push	esi
mov	esi, ecx
xor	eax, eax
push	3
mov	[esi], eax
mov	[esi+4], eax
mov	[esi+8], eax
call	sub_403396
mov	eax, esi
pop	esi
retn
sub_403079 endp



; Attributes: bp-based frame

sub_403091 proc	near

var_4= dword ptr -4
arg_0= dword ptr  8

push	ebp
mov	ebp, esp
push	ecx
push	ebx
push	esi
push	edi
mov	edi, [ebp+arg_0]
mov	esi, ecx
xor	ebx, ebx
mov	[ebp+var_4], ebx
mov	[esi], ebx
mov	[esi+4], ebx
mov	[esi+8], ebx
cmp	[edi], bx
jz	short loc_4030BB
mov	eax, edi

loc_4030B1:
inc	[ebp+var_4]
inc	eax
inc	eax
cmp	[eax], bx
jnz	short loc_4030B1

loc_4030BB:
push	[ebp+var_4]
mov	ecx, esi
call	sub_403396
mov	eax, [esi]
mov	cx, [edi]
lea	edx, [edi+2]
mov	[eax], cx
inc	eax
inc	eax

loc_4030D2:
cmp	cx, bx
jz	short loc_4030E3
mov	cx, [edx]
mov	[eax], cx
inc	eax
inc	eax
inc	edx
inc	edx
jmp	short loc_4030D2

loc_4030E3:
mov	eax, [ebp+var_4]
pop	edi
mov	[esi+4], eax
mov	eax, esi
pop	esi
pop	ebx
leave
retn	4
sub_403091 endp




sub_4030F2 proc	near

arg_0= dword ptr  4

push	esi
push	edi
mov	edi, [esp+8+arg_0]
mov	esi, ecx
xor	eax, eax
mov	[esi], eax
mov	[esi+4], eax
mov	[esi+8], eax
push	dword ptr [edi+4]
call	sub_403396
mov	ecx, [edi]
mov	eax, [esi]

loc_403110:
mov	dx, [ecx]
mov	[eax], dx
inc	eax
inc	eax
inc	ecx
inc	ecx
test	dx, dx
jnz	short loc_403110
mov	eax, [edi+4]
pop	edi
mov	[esi+4], eax
mov	eax, esi
pop	esi
retn	4
sub_4030F2 endp




sub_40312C proc	near

arg_0= dword ptr  4

push	esi
push	edi
mov	edi, [esp+8+arg_0]
mov	esi, ecx
cmp	edi, esi
jz	short loc_403163
mov	eax, [esi]
and	dword ptr [esi+4], 0
and	word ptr [eax],	0
push	dword ptr [edi+4]
call	sub_403396
mov	ecx, [edi]
mov	eax, [esi]

loc_40314E:
mov	dx, [ecx]
mov	[eax], dx
inc	eax
inc	eax
inc	ecx
inc	ecx
test	dx, dx
jnz	short loc_40314E
mov	eax, [edi+4]
mov	[esi+4], eax

loc_403163:
mov	eax, esi
pop	edi
pop	esi
retn	4
sub_40312C endp




sub_40316A proc	near

arg_0= word ptr	 4

push	esi
mov	esi, ecx
push	1
call	sub_4033EA
mov	eax, [esi+4]
mov	ecx, [esi]
mov	dx, [esp+4+arg_0]
mov	[ecx+eax*2], dx
inc	dword ptr [esi+4]
mov	eax, [esi+4]
mov	ecx, [esi]
and	word ptr [ecx+eax*2], 0
mov	eax, esi
pop	esi
retn	4
sub_40316A endp



; Attributes: bp-based frame

sub_403195 proc	near

var_4= dword ptr -4
arg_0= dword ptr  8

push	ebp
mov	ebp, esp
push	ecx
push	esi
push	edi
mov	edi, [ebp+arg_0]
mov	esi, ecx
xor	ecx, ecx
cmp	[edi], cx
mov	[ebp+var_4], ecx
jz	short loc_4031B6
mov	eax, edi

loc_4031AC:
inc	[ebp+var_4]
inc	eax
inc	eax
cmp	[eax], cx
jnz	short loc_4031AC

loc_4031B6:
push	[ebp+var_4]
mov	ecx, esi
call	sub_4033EA
mov	eax, [esi+4]
mov	ecx, [esi]
lea	edx, [edi+2]
lea	eax, [ecx+eax*2]
mov	cx, [edi]
mov	[eax], cx
inc	eax
inc	eax

loc_4031D3:
test	cx, cx
jz	short loc_4031E4
mov	cx, [edx]
mov	[eax], cx
inc	eax
inc	eax
inc	edx
inc	edx
jmp	short loc_4031D3

loc_4031E4:
mov	eax, [ebp+var_4]
pop	edi
add	[esi+4], eax
mov	eax, esi
pop	esi
leave
retn	4
sub_403195 endp




sub_4031F2 proc	near

arg_0= dword ptr  4

push	esi
push	edi
mov	edi, [esp+8+arg_0]
mov	esi, ecx
push	dword ptr [edi+4]
call	sub_4033EA
mov	eax, [esi+4]
mov	edx, [esi]
mov	ecx, [edi]
lea	eax, [edx+eax*2]

loc_40320C:
mov	dx, [ecx]
mov	[eax], dx
inc	eax
inc	eax
inc	ecx
inc	ecx
test	dx, dx
jnz	short loc_40320C
mov	eax, [edi+4]
pop	edi
add	[esi+4], eax
mov	eax, esi
pop	esi
retn	4
sub_4031F2 endp



; Attributes: bp-based frame

sub_403228 proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	[ebp+arg_4]
and	[ebp+var_4], 0
push	0
push	[ebp+arg_0]
call	sub_403434
mov	eax, [ebp+arg_0]
leave
retn	8
sub_403228 endp




sub_403244 proc	near

arg_0= dword ptr  4

push	esi
push	edi
mov	edi, [esp+8+arg_0]
mov	esi, ecx
cmp	edi, esi
jz	short loc_403275
mov	eax, [esi]
and	dword ptr [esi+4], 0
and	byte ptr [eax],	0
push	dword ptr [edi+4]
call	sub_4034E3
mov	ecx, [edi]
mov	eax, [esi]

loc_403265:
mov	dl, [ecx]
mov	[eax], dl
inc	eax
inc	ecx
test	dl, dl
jnz	short loc_403265
mov	eax, [edi+4]
mov	[esi+4], eax

loc_403275:
mov	eax, esi
pop	edi
pop	esi
retn	4
sub_403244 endp



; Attributes: bp-based frame

sub_40327C proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44265C
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44B510
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_40327C endp



; Attributes: bp-based frame

sub_4032B4 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset unknown_libname_8 ;	Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	0Ch		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_10], ecx
xor	eax, eax
cmp	ecx, eax
mov	[ebp+var_4], eax
jz	short loc_4032E0
push	[ebp+arg_0]
call	sub_4030F2

loc_4032E0:
or	[ebp+var_4], 0FFFFFFFFh
push	eax
mov	ecx, esi
call	sub_429907
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_4032B4 endp



; Attributes: bp-based frame

sub_4032FB proc	near

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

push	ebp
mov	ebp, esp
push	ecx
mov	eax, [ecx+8]
push	edi
mov	edi, [ebp+arg_0]
mov	[ebp+var_4], ecx
mov	ecx, [ebp+arg_4]
add	ecx, edi
cmp	ecx, eax
jle	short loc_403317
sub	eax, edi
mov	[ebp+arg_4], eax

loc_403317:
mov	eax, [ebp+arg_4]
test	eax, eax
jle	short loc_40334E
push	ebx
push	esi
mov	esi, edi
mov	[ebp+arg_0], eax
shl	esi, 2

loc_403328:
mov	eax, [ebp+var_4]
mov	eax, [eax+0Ch]
mov	ebx, [eax+esi]
test	ebx, ebx
jz	short loc_403344
push	dword ptr [ebx]	; Memory
call	sub_4284D8
push	ebx		; Memory
call	sub_4284D8
pop	ecx
pop	ecx

loc_403344:
add	esi, 4
dec	[ebp+arg_0]
jnz	short loc_403328
pop	esi
pop	ebx

loc_40334E:
push	[ebp+arg_4]
mov	ecx, [ebp+var_4]
push	edi
call	sub_42847F
pop	edi
leave
retn	8
sub_4032FB endp




; int __thiscall sub_40335F(void *Memory, char)
sub_40335F proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_40327C
test	[esp+4+arg_0], 1
jz	short loc_403375
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_403375:
mov	eax, esi
pop	esi
retn	4
sub_40335F endp




sub_40337B proc	near
mov	eax, ecx
xor	ecx, ecx
mov	[eax+4], ecx
mov	[eax+8], ecx
mov	[eax+0Ch], ecx
mov	dword ptr [eax+10h], 4
mov	dword ptr [eax], offset	off_44B5B8
retn
sub_40337B endp




sub_403396 proc	near

arg_0= dword ptr  4

mov	eax, [esp+arg_0]
push	ebx
push	esi
mov	esi, ecx
lea	ebx, [eax+1]
cmp	ebx, [esi+8]
jz	short loc_4033E5
lea	eax, [ebx+ebx]
push	edi
push	eax		; Size
call	sub_4284B1
mov	edi, eax
xor	eax, eax
cmp	[esi+8], eax
pop	ecx
jle	short loc_4033D7
cmp	[esi+4], eax
jle	short loc_4033CF

loc_4033BF:
mov	ecx, [esi]
mov	cx, [ecx+eax*2]
mov	[edi+eax*2], cx
inc	eax
cmp	eax, [esi+4]
jl	short loc_4033BF

loc_4033CF:		; Memory
push	dword ptr [esi]
call	sub_4284D8
pop	ecx

loc_4033D7:
mov	eax, [esi+4]
mov	[esi], edi
and	word ptr [edi+eax*2], 0
mov	[esi+8], ebx
pop	edi

loc_4033E5:
pop	esi
pop	ebx
retn	4
sub_403396 endp




sub_4033EA proc	near

arg_0= dword ptr  4

push	ebx
push	esi
push	edi
mov	edi, [ecx+8]
mov	ebx, [esp+0Ch+arg_0]
mov	esi, edi
sub	esi, [ecx+4]
dec	esi
cmp	ebx, esi
jle	short loc_40342E
cmp	edi, 40h
jle	short loc_40340C
mov	eax, edi
cdq
sub	eax, edx
sar	eax, 1
jmp	short loc_40341B

loc_40340C:
xor	eax, eax
cmp	edi, 8
setle	al
dec	eax
and	eax, 0Ch
add	eax, 4

loc_40341B:
lea	edx, [eax+esi]
cmp	edx, ebx
jge	short loc_403426
sub	ebx, esi
mov	eax, ebx

loc_403426:
add	edi, eax
push	edi
call	sub_403396

loc_40342E:
pop	edi
pop	esi
pop	ebx
retn	4
sub_4033EA endp



; Attributes: bp-based frame

sub_403434 proc	near

Memory=	dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_442684
call	__EH_prolog
sub	esp, 10h
push	ebx
mov	ebx, [ebp+arg_4]
push	esi
mov	esi, [ebp+arg_8]
push	edi
mov	edi, ecx
lea	edx, [ebx+esi]
xor	ecx, ecx
mov	eax, [edi+4]
mov	[ebp+var_10], ecx
cmp	edx, eax
jle	short loc_40345F
mov	esi, eax
sub	esi, ebx

loc_40345F:
cmp	ebx, ecx
jnz	short loc_403472
cmp	esi, eax
jnz	short loc_403472
mov	ecx, [ebp+arg_0]
push	edi
call	sub_4030F2
jmp	short loc_4034CF

loc_403472:
mov	[ebp+Memory], ecx
mov	[ebp+var_18], ecx
mov	[ebp+var_14], ecx
push	3
lea	ecx, [ebp+Memory]
call	sub_403396
and	[ebp+var_4], 0
push	esi
lea	ecx, [ebp+Memory]
call	sub_403396
xor	ecx, ecx
test	esi, esi
jle	short loc_4034AF
lea	eax, [ebx+ebx]

loc_40349B:
mov	edx, [edi]
mov	ebx, [ebp+Memory]
mov	dx, [eax+edx]
mov	[ebx+ecx*2], dx
inc	ecx
inc	eax
inc	eax
cmp	ecx, esi
jl	short loc_40349B

loc_4034AF:
mov	eax, [ebp+Memory]
mov	ecx, [ebp+arg_0]
and	word ptr [eax+esi*2], 0
lea	eax, [ebp+Memory]
push	eax
mov	[ebp+var_18], esi
call	sub_4030F2
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_4034CF:
mov	ecx, [ebp+var_C]
mov	eax, [ebp+arg_0]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_403434 endp




sub_4034E3 proc	near

arg_0= dword ptr  4

mov	eax, [esp+arg_0]
push	ebx
push	esi
mov	esi, ecx
lea	ebx, [eax+1]
cmp	ebx, [esi+8]
jz	short loc_40352C
push	edi
push	ebx		; Size
call	sub_4284B1
mov	edi, eax
xor	eax, eax
cmp	[esi+8], eax
pop	ecx
jle	short loc_40351F
cmp	[esi+4], eax
jle	short loc_403517

loc_403509:
mov	ecx, [esi]
mov	cl, [ecx+eax]
mov	[eax+edi], cl
inc	eax
cmp	eax, [esi+4]
jl	short loc_403509

loc_403517:		; Memory
push	dword ptr [esi]
call	sub_4284D8
pop	ecx

loc_40351F:
mov	eax, [esi+4]
mov	[esi], edi
and	byte ptr [eax+edi], 0
mov	[esi+8], ebx
pop	edi

loc_40352C:
pop	esi
pop	ebx
retn	4
sub_4034E3 endp




sub_403531 proc	near

arg_0= dword ptr  4

push	ebx
push	ebp
mov	ebp, [esp+8+arg_0]
push	esi
mov	esi, ecx
push	edi
mov	edi, [ebp+8]
mov	eax, [esi+8]
add	eax, edi
push	eax
call	sub_428378
xor	ebx, ebx
test	edi, edi
jle	short loc_403561

loc_40354F:
mov	eax, [ebp+0Ch]
mov	ecx, esi
push	dword ptr [eax+ebx*4]
call	sub_4032B4
inc	ebx
cmp	ebx, edi
jl	short loc_40354F

loc_403561:
mov	eax, esi
pop	edi
pop	esi
pop	ebp
pop	ebx
retn	4
sub_403531 endp



; Attributes: bp-based frame

sub_40356A proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_442698
call	__EH_prolog
sub	esp, 10h
and	[ebp+var_10], 0
push	esi
mov	esi, ecx
push	edx
lea	ecx, [ebp+Memory]
call	sub_4030F2
push	[ebp+arg_0]
and	[ebp+var_4], 0
lea	ecx, [ebp+Memory]
call	sub_4031F2
lea	eax, [ebp+Memory]
mov	ecx, esi
push	eax
call	sub_4030F2
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_40356A endp




sub_4035BB proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	ebx
push	esi
push	edi
mov	edi, [esp+0Ch+arg_4]
mov	esi, ecx
xor	ebx, ebx
lea	eax, [edi+edi*4]
shl	eax, 2
mov	[esi+4], ebx
push	eax		; Size
mov	dword ptr [esi], offset	off_44B800
mov	dword ptr [esi+8], 1
mov	[esi+14h], ebx
mov	[esi+0Ch], ebx
call	sub_4284B1
cmp	eax, ebx
pop	ecx
mov	[esi+10h], eax
jz	short loc_40360E
cmp	edi, ebx
mov	[esi+0Ch], edi
jbe	short loc_40360E

loc_4035F7:
mov	eax, [esp+0Ch+arg_0]
mov	ecx, [esi+10h]
add	ecx, ebx
lea	edx, [ebx+eax]
call	sub_40368F
add	ebx, 14h
dec	edi
jnz	short loc_4035F7

loc_40360E:
mov	eax, esi
pop	edi
pop	esi
pop	ebx
retn	8
sub_4035BB endp



; Attributes: bp-based frame

; int __stdcall	sub_403616(int,	void *Buf1, int)
sub_403616 proc	near

arg_0= dword ptr  8
Buf1= dword ptr	 0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
push	10h		; Size
push	offset unk_44CCB8 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jz	short loc_403645
push	10h		; Size
push	offset unk_44CCA8 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_403657

loc_403645:
mov	ecx, [ebp+arg_8]
mov	eax, [ebp+arg_0]
push	eax
mov	[ecx], eax
mov	ecx, [eax]
call	dword ptr [ecx+4]
xor	eax, eax
jmp	short loc_40365C

loc_403657:
mov	eax, 80004002h

loc_40365C:
pop	ebp
retn	0Ch
sub_403616 endp




; int __stdcall	sub_403660(void	*Memory)
sub_403660 proc	near

Memory=	dword ptr  4

push	esi
push	edi
mov	edi, [esp+8+Memory]
lea	esi, [edi+4]
push	esi		; lpAddend
call	ds:InterlockedDecrement
mov	eax, [esi]
test	eax, eax
jnz	short loc_40368A
test	edi, edi
jz	short loc_403688
mov	ecx, edi
call	sub_4036BF
push	edi		; Memory
call	sub_4284D8
pop	ecx

loc_403688:
xor	eax, eax

loc_40368A:
pop	edi
pop	esi
retn	4
sub_403660 endp




sub_40368F proc	near
push	ebx
push	ebp
push	esi
push	edi
mov	ebx, edx
mov	ebp, ecx
push	5
mov	esi, ebx
pop	ecx
mov	edi, ebp
rep movsd
cmp	dword ptr [ebx+4], 0
jz	short loc_4036BA
push	10h		; cb
call	ds:CoTaskMemAlloc
mov	[ebp+4], eax
mov	esi, [ebx+4]
mov	edi, eax
movsd
movsd
movsd
movsd

loc_4036BA:
pop	edi
pop	esi
pop	ebp
pop	ebx
retn
sub_40368F endp




sub_4036BF proc	near
push	esi
mov	esi, ecx
cmp	dword ptr [esi+10h], 0
mov	dword ptr [esi], offset	off_44B800
jz	short loc_4036FF
push	ebx
xor	ebx, ebx
cmp	[esi+0Ch], ebx
jbe	short loc_4036F5
push	edi
xor	edi, edi

loc_4036D9:
mov	eax, [esi+10h]
mov	eax, [eax+edi+4]
test	eax, eax
jz	short loc_4036EB
push	eax		; pv
call	ds:CoTaskMemFree

loc_4036EB:
inc	ebx
add	edi, 14h
cmp	ebx, [esi+0Ch]
jb	short loc_4036D9
pop	edi

loc_4036F5:		; Memory
push	dword ptr [esi+10h]
call	sub_4284D8
pop	ecx
pop	ebx

loc_4036FF:
pop	esi
retn
sub_4036BF endp



; Attributes: bp-based frame

sub_403701 proc	near

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	ebx
push	edi
xor	edi, edi
cmp	[ebp+arg_4], edi
jz	short loc_403752
mov	ebx, [ebp+arg_8]
cmp	ebx, edi
jz	short loc_403752
push	esi
mov	esi, [ebp+arg_0]

loc_403718:
mov	eax, [esi+14h]
cmp	eax, [esi+0Ch]
jnb	short loc_40373E
cmp	edi, [ebp+arg_4]
jnb	short loc_40373E
mov	ecx, [esi+10h]
lea	eax, [eax+eax*4]
lea	edx, [ecx+eax*4]
mov	ecx, ebx
call	sub_40368F
inc	edi
add	ebx, 14h
inc	dword ptr [esi+14h]
jmp	short loc_403718

loc_40373E:
mov	eax, [ebp+arg_C]
pop	esi
test	eax, eax
jz	short loc_403748
mov	[eax], edi

loc_403748:
xor	eax, eax
cmp	edi, [ebp+arg_4]
setnz	al
jmp	short loc_403757

loc_403752:
mov	eax, 80070057h

loc_403757:
pop	edi
pop	ebx
pop	ebp
retn	10h
sub_403701 endp




sub_40375D proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [esp+arg_0]
mov	ecx, [esp+arg_4]
add	[eax+14h], ecx
mov	ecx, [eax+14h]
cmp	[eax+0Ch], ecx
sbb	eax, eax
neg	eax
retn	8
sub_40375D endp




sub_403775 proc	near

arg_0= dword ptr  4

mov	eax, [esp+arg_0]
and	dword ptr [eax+14h], 0
xor	eax, eax
retn	4
sub_403775 endp




sub_403782 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	esi
mov	esi, [esp+4+arg_0]
push	edi
mov	edi, [esp+8+arg_4]
mov	edx, [esi+10h]
mov	ecx, [esi+0Ch]
push	edi
call	sub_4037A9
test	eax, eax
jnz	short loc_4037A4
mov	ecx, [edi]
mov	edx, [esi+14h]
mov	[ecx+14h], edx

loc_4037A4:
pop	edi
pop	esi
retn	8
sub_403782 endp



; Attributes: bp-based frame

sub_4037A9 proc	near

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

mov	eax, offset unknown_libname_9 ;	Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ebx
push	esi
push	edi
mov	edi, ecx
test	edi, edi
mov	esi, edx
jz	short loc_4037F8
test	esi, esi
jz	short loc_4037F8
mov	ebx, [ebp+arg_0]
test	ebx, ebx
jz	short loc_4037F8
push	18h		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+arg_0], ecx
xor	eax, eax
cmp	ecx, eax
mov	[ebp+var_4], eax
jz	short loc_4037E6
push	edi
push	esi
call	sub_4035BB

loc_4037E6:
mov	[ebx], eax
neg	eax
sbb	eax, eax
and	eax, 7FF8FFF2h
add	eax, 8007000Eh
jmp	short loc_4037FD

loc_4037F8:
mov	eax, 80070057h

loc_4037FD:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_4037A9 endp




sub_40380E proc	near
push	esi
mov	esi, ecx
push	dword ptr [esi+64h] ; Memory
mov	dword ptr [esi], offset	off_44B87C
mov	dword ptr [esi+4], offset off_44B860
mov	dword ptr [esi+8], offset off_44B83C
mov	dword ptr [esi+0Ch], offset off_44B82C
mov	dword ptr [esi+10h], offset off_44B81C
call	sub_4284D8
push	dword ptr [esi+28h] ; Memory
call	sub_4284D8
push	dword ptr [esi+18h] ; Memory
call	sub_4284D8
add	esp, 0Ch
pop	esi
retn
sub_40380E endp



; Attributes: bp-based frame

; int __stdcall	sub_403850(int,	void *Buf1, int)
sub_403850 proc	near

arg_0= dword ptr  8
Buf1= dword ptr	 0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
push	esi
mov	esi, [ebp+Buf1]
push	10h		; Size
push	offset unk_44CCB8 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_403875

loc_40386B:
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+8]
jmp	short loc_4038E1

loc_403875:		; Size
push	10h
push	offset unk_44B6B0 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jz	short loc_40386B
push	10h		; Size
push	offset unk_44B610 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_4038A7
mov	ecx, [ebp+arg_8]
mov	eax, [ebp+arg_0]
mov	[ecx], eax
jmp	short loc_4038EC

loc_4038A7:		; Size
push	10h
push	offset unk_44B700 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_4038C5
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+0Ch]
jmp	short loc_4038E1

loc_4038C5:		; Size
push	10h
push	offset unk_44B720 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_4038F6
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+10h]

loc_4038E1:
neg	ecx
sbb	ecx, ecx
and	ecx, edx
mov	edx, [ebp+arg_8]
mov	[edx], ecx

loc_4038EC:
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+4]
xor	eax, eax
jmp	short loc_4038FB

loc_4038F6:
mov	eax, 80004002h

loc_4038FB:
pop	esi
pop	ebp
retn	0Ch
sub_403850 endp




sub_403900 proc	near

arg_0= dword ptr  4

mov	eax, [esp+arg_0]
inc	dword ptr [eax+14h]
mov	eax, [eax+14h]
retn	4
sub_403900 endp




; int __stdcall	sub_40390D(void	*Memory)
sub_40390D proc	near

Memory=	dword ptr  4

push	esi
mov	esi, [esp+4+Memory]
dec	dword ptr [esi+14h]
mov	eax, [esi+14h]
jnz	short loc_40392E
test	esi, esi
jz	short loc_40392C
mov	ecx, esi
call	sub_40380E
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_40392C:
xor	eax, eax

loc_40392E:
pop	esi
retn	4
sub_40390D endp




sub_403932 proc	near
xor	eax, eax
mov	[ecx+48h], eax
mov	[ecx+40h], eax
mov	[ecx+54h], eax
mov	[ecx+58h], al
mov	[ecx+4Ch], eax
mov	[ecx+44h], eax
mov	[ecx+50h], al
retn
sub_403932 endp




sub_40394A proc	near

arg_0= dword ptr  4

push	[esp+arg_0]
mov	byte ptr [ecx+58h], 1
mov	ecx, [ecx+38h]
add	ecx, 0F0h
call	sub_403963
retn	4
sub_40394A endp



; Attributes: bp-based frame

sub_403963 proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4426C8
call	__EH_prolog
sub	esp, 10h
push	esi
mov	esi, ecx
push	edi
lea	edi, [esi+94h]
push	edi		; lpCriticalSection
mov	[ebp+var_10], edi
call	ds:EnterCriticalSection
push	[ebp+arg_0]
and	[ebp+var_4], 0
lea	ecx, [ebp+Memory]
call	sub_403091
lea	eax, [ebp+Memory]
lea	ecx, [esi+50h]
push	eax
mov	byte ptr [ebp+var_4], 1
call	sub_4032B4
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
push	edi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_403963 endp




sub_4039C3 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8
arg_8= dword ptr  0Ch

mov	eax, [esp+arg_0]
push	[esp+arg_8]
mov	ecx, [eax+30h]
push	[esp+4+arg_4]
add	ecx, 0F0h
call	sub_4039E2
xor	eax, eax
retn	0Ch
sub_4039C3 endp




sub_4039E2 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	esi
mov	esi, ecx
push	edi
lea	edi, [esi+94h]
push	edi		; lpCriticalSection
call	ds:EnterCriticalSection
mov	eax, [esp+8+arg_0]
push	edi		; lpCriticalSection
mov	[esi+18h], eax
mov	eax, [esp+0Ch+arg_4]
mov	[esi+1Ch], eax
call	ds:LeaveCriticalSection
pop	edi
pop	esi
retn	8
sub_4039E2 endp




sub_403A0D proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8
arg_8= dword ptr  0Ch

mov	eax, [esp+arg_0]
push	0
push	0
push	[esp+8+arg_8]
mov	ecx, [eax+38h]
add	ecx, 0F0h
push	[esp+0Ch+arg_4]
call	sub_403A30
xor	eax, eax
retn	0Ch
sub_403A0D endp




sub_403A30 proc	near

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

push	esi
mov	esi, ecx
push	edi
lea	edi, [esi+94h]
push	edi		; lpCriticalSection
call	ds:EnterCriticalSection
mov	eax, [esp+8+arg_0]
push	edi		; lpCriticalSection
mov	[esi+8], eax
mov	eax, [esp+0Ch+arg_4]
mov	[esi+0Ch], eax
mov	eax, [esp+0Ch+arg_8]
mov	[esi+10h], eax
mov	eax, [esp+0Ch+arg_C]
mov	[esi+14h], eax
call	ds:LeaveCriticalSection
pop	edi
pop	esi
retn	10h
sub_403A30 endp




sub_403A69 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	esi
push	edi
mov	edi, [esp+8+arg_0]
mov	esi, 0F0h
mov	ecx, [edi+38h]
add	ecx, esi
call	sub_422D48
test	eax, eax
jnz	short loc_403A9B
mov	eax, [esp+8+arg_4]
test	eax, eax
jz	short loc_403A99
push	dword ptr [eax+4]
mov	ecx, [edi+38h]
add	ecx, esi
push	dword ptr [eax]
call	sub_403AA0

loc_403A99:
xor	eax, eax

loc_403A9B:
pop	edi
pop	esi
retn	8
sub_403A69 endp




sub_403AA0 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	esi
mov	esi, ecx
push	edi
lea	edi, [esi+94h]
push	edi		; lpCriticalSection
call	ds:EnterCriticalSection
mov	eax, [esp+8+arg_0]
push	edi		; lpCriticalSection
mov	[esi+10h], eax
mov	eax, [esp+0Ch+arg_4]
mov	[esi+14h], eax
call	ds:LeaveCriticalSection
pop	edi
pop	esi
retn	8
sub_403AA0 endp




sub_403ACB proc	near
mov	ecx, [ecx+34h]
add	ecx, 0F0h
jmp	sub_422D48
sub_403ACB endp




sub_403AD9 proc	near
xor	eax, eax
retn	8
sub_403AD9 endp




sub_403ADE proc	near
mov	ecx, [ecx+34h]
add	ecx, 0F0h
call	sub_422D48
retn	8
sub_403ADE endp




sub_403AEF proc	near

arg_0= dword ptr  4

push	[esp+arg_0]
lea	eax, [ecx+0Ch]
mov	ecx, [ecx+0Ch]
push	eax
call	dword ptr [ecx+0Ch]
retn	4
sub_403AEF endp




sub_403B00 proc	near

arg_0= dword ptr  4

cmp	byte ptr [ecx+5Ch], 0
jz	short ?_Get_deleter@_Ref_count_base@std@@UBEPAXABVtype_info@@@Z_0 ; std::_Ref_count_base::_Get_deleter(type_info const &)
add	ecx, 60h
push	ecx
mov	ecx, [esp+4+arg_0]
call	sub_40312C
sub_403B00 endp	; sp-analysis failed

; [00000005 BYTES: COLLAPSED FUNCTION std::_Ref_count_base::_Get_deleter(type_info const &). PRESS KEYPAD CTRL-"+" TO EXPAND]



sub_403B18 proc	near
mov	al, [ecx+5Dh]
retn
sub_403B18 endp




sub_403B1C proc	near
and	byte ptr [ecx+5Dh], 0
retn
sub_403B1C endp




sub_403B21 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8
arg_8= dword ptr  0Ch

mov	eax, [esp+arg_0]
push	[esp+arg_8]
mov	ecx, [eax+2Ch]
push	[esp+4+arg_4]
add	ecx, 0F0h
call	sub_403B40
xor	eax, eax
retn	0Ch
sub_403B21 endp




sub_403B40 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	esi
mov	esi, ecx
push	edi
lea	edi, [esi+94h]
push	edi		; lpCriticalSection
call	ds:EnterCriticalSection
mov	eax, [esp+8+arg_0]
test	eax, eax
jz	short loc_403B64
mov	ecx, [eax]
mov	[esi+28h], ecx
mov	eax, [eax+4]
mov	[esi+2Ch], eax

loc_403B64:
mov	eax, [esp+8+arg_4]
test	eax, eax
jz	short loc_403B77
mov	ecx, [eax]
mov	[esi+30h], ecx
mov	eax, [eax+4]
mov	[esi+34h], eax

loc_403B77:		; lpCriticalSection
push	edi
call	ds:LeaveCriticalSection
pop	edi
pop	esi
retn	8
sub_403B40 endp



; Attributes: bp-based frame

sub_403B83 proc	near

var_6C=	byte ptr -6Ch
var_64=	byte ptr -64h
var_5C=	byte ptr -5Ch
var_5B=	byte ptr -5Bh
var_54=	dword ptr -54h
var_50=	dword ptr -50h
var_4C=	dword ptr -4Ch
var_48=	dword ptr -48h
var_44=	byte ptr -44h
var_34=	byte ptr -34h
var_33=	byte ptr -33h
var_2C=	dword ptr -2Ch
var_28=	dword ptr -28h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	byte ptr -1Ch
var_C= dword ptr -0Ch
var_4= dword ptr -4
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

mov	eax, offset loc_4426DC
call	__EH_prolog
sub	esp, 60h
push	ebx
push	esi
lea	ecx, [ebp+var_6C]
call	sub_403CDF
mov	eax, [ebp+arg_8]
xor	ebx, ebx
cmp	eax, ebx
mov	[ebp+var_4], ebx
jnz	short loc_403BAB
mov	[ebp+var_5B], bl
jmp	short loc_403BBA

loc_403BAB:
mov	ecx, [eax]
mov	eax, [eax+4]
mov	[ebp+var_5B], 1
mov	[ebp+var_4C], ecx
mov	[ebp+var_48], eax

loc_403BBA:
mov	eax, [ebp+arg_C]
cmp	eax, ebx
jnz	short loc_403BC6
mov	[ebp+var_5C], bl
jmp	short loc_403BD5

loc_403BC6:
mov	ecx, [eax]
mov	eax, [eax+4]
mov	[ebp+var_5C], 1
mov	[ebp+var_54], ecx
mov	[ebp+var_50], eax

loc_403BD5:
push	[ebp+arg_4]
lea	ecx, [ebp+var_44]
call	sub_404722
mov	eax, [ebp+arg_14]
cmp	eax, ebx
jnz	short loc_403BEC
mov	[ebp+var_33], bl
jmp	short loc_403BFB

loc_403BEC:
mov	ecx, [eax]
mov	eax, [eax+4]
mov	[ebp+var_33], 1
mov	[ebp+var_24], ecx
mov	[ebp+var_20], eax

loc_403BFB:
mov	eax, [ebp+arg_18]
cmp	eax, ebx
jnz	short loc_403C07
mov	[ebp+var_34], bl
jmp	short loc_403C16

loc_403C07:
mov	ecx, [eax]
mov	eax, [eax+4]
mov	[ebp+var_34], 1
mov	[ebp+var_2C], ecx
mov	[ebp+var_28], eax

loc_403C16:
push	edi
lea	ecx, [ebp+var_1C]
push	[ebp+arg_10]
call	sub_404722
mov	edi, [ebp+arg_0]
mov	esi, [edi+38h]
lea	ecx, [esi+0E4h]
call	sub_4418F0
mov	ecx, [esi+0E8h]	; hHandle
call	sub_441880
mov	edi, [edi+38h]
cmp	edi, ebx
jz	short loc_403C4A
lea	eax, [edi+4]
jmp	short loc_403C4C

loc_403C4A:
xor	eax, eax

loc_403C4C:
mov	eax, [eax]
lea	ecx, [ebp+var_6C]
push	eax		; hWndParent
push	1F6h		; lpTemplateName
mov	[ebp+var_64], 1
call	sub_42FCF7
push	2
pop	ecx
pop	edi
sub	eax, ecx
jz	short loc_403CB3
push	4
pop	edx
sub	eax, edx
jz	short loc_403CAA
dec	eax
jz	short loc_403CA3
sub	eax, 3EBh
jz	short loc_403C98
dec	eax
jz	short loc_403C8D
dec	eax
jz	short loc_403C86
mov	esi, 80004005h
jmp	short loc_403CC1

loc_403C86:
mov	eax, [ebp+arg_1C]
mov	[eax], edx
jmp	short loc_403CAF

loc_403C8D:
mov	eax, [ebp+arg_1C]
mov	dword ptr [eax], 3
jmp	short loc_403CAF

loc_403C98:
mov	eax, [ebp+arg_1C]
mov	dword ptr [eax], 1
jmp	short loc_403CAF

loc_403CA3:
mov	eax, [ebp+arg_1C]
mov	[eax], ecx
jmp	short loc_403CAF

loc_403CAA:
mov	eax, [ebp+arg_1C]
mov	[eax], ebx

loc_403CAF:
xor	esi, esi
jmp	short loc_403CC1

loc_403CB3:
mov	eax, [ebp+arg_1C]
mov	esi, 80004004h
mov	dword ptr [eax], 5

loc_403CC1:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_6C]
call	sub_403D27
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	20h
sub_403B83 endp



; Attributes: bp-based frame

sub_403CDF proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4426FB
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
and	dword ptr [esi+4], 0
mov	dword ptr [esi], offset	off_44B558
and	[ebp+var_4], 0
lea	ecx, [esi+10h]
call	sub_403D60
lea	ecx, [esi+38h]
mov	byte ptr [ebp+var_4], 1
call	sub_403D60
mov	ecx, [ebp+var_C]
mov	dword ptr [esi], offset	off_44B8B4
mov	eax, esi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_403CDF endp




sub_403D27 proc	near
push	esi
mov	esi, ecx
push	dword ptr [esi+50h] ; Memory
call	sub_4284D8
push	dword ptr [esi+28h] ; Memory
call	sub_4284D8
pop	ecx
mov	dword ptr [esi], offset	off_44B588
pop	ecx
pop	esi
retn
sub_403D27 endp




; int __thiscall sub_403D44(void *Memory, char)
sub_403D44 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_403D27
test	[esp+4+arg_0], 1
jz	short loc_403D5A
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_403D5A:
mov	eax, esi
pop	esi
retn	4
sub_403D44 endp




sub_403D60 proc	near
push	esi
mov	esi, ecx
xor	eax, eax
push	3
lea	ecx, [esi+18h]
mov	[ecx], eax
mov	[ecx+4], eax
mov	[ecx+8], eax
call	sub_403396
mov	eax, esi
pop	esi
retn
sub_403D60 endp

; START	OF FUNCTION CHUNK FOR sub_4426F0

loc_403D7B:		; Memory
push	dword ptr [ecx+18h]
call	sub_4284D8
pop	ecx
retn
; END OF FUNCTION CHUNK	FOR sub_4426F0



sub_403D85 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8
arg_8= byte ptr	 0Ch

mov	ecx, [esp+arg_0]
mov	al, [esp+arg_8]
push	[esp+arg_4]
mov	[ecx+34h], al
call	sub_403F90
retn	14h
sub_403D85 endp




sub_403D9C proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	[esp+arg_4]
mov	ecx, [esp+4+arg_0]
call	sub_40394A
xor	eax, eax
retn	8
sub_403D9C endp




sub_403DAE proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [esp+arg_0]
push	[esp+arg_4]
lea	ecx, [eax-8]
call	sub_40394A
xor	eax, eax
retn	8
sub_403DAE endp



; Attributes: bp-based frame

sub_403DC3 proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= byte ptr	 10h

mov	eax, offset loc_442710
call	__EH_prolog
sub	esp, 0Ch
mov	eax, [ebp+arg_4]
push	ebx
push	esi
mov	esi, [ebp+arg_0]
test	eax, eax
push	edi
jz	loc_403E87
dec	eax
jz	short loc_403E3A
dec	eax
jz	short loc_403E18
dec	eax
jz	short loc_403DF4
mov	eax, 80004005h
jmp	loc_403EB5

loc_403DF4:
mov	al, [ebp+arg_8]
mov	cl, al
neg	cl
sbb	ecx, ecx
and	ecx, 3
add	ecx, 0CAh
neg	al
sbb	eax, eax
mov	edi, ecx
and	eax, 2
add	eax, 2000A93h

loc_403E14:
mov	ebx, eax
jmp	short loc_403E44

loc_403E18:
mov	al, [ebp+arg_8]
mov	cl, al
neg	cl
sbb	ecx, ecx
and	ecx, 3
add	ecx, 0CBh
neg	al
sbb	eax, eax
mov	edi, ecx
and	eax, 2
add	eax, 2000A92h
jmp	short loc_403E14

loc_403E3A:
mov	edi, 0CCh
mov	ebx, 2000A91h

loc_403E44:
cmp	byte ptr [esi+24h], 0
jz	short loc_403E5E
cmp	dword ptr [esi+1Ch], 0
jz	short loc_403E5A
push	dword ptr [esi+18h]
mov	ecx, esi
call	sub_40394A

loc_403E5A:
and	byte ptr [esi+24h], 0

loc_403E5E:
lea	eax, [esi+28h]
mov	edx, edi
push	eax
push	ebx
lea	ecx, [ebp+Memory]
call	sub_40744B
push	dword ptr [eax]
and	[ebp+var_4], 0
mov	ecx, esi
call	sub_40394A
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx

loc_403E87:
cmp	byte ptr [esi+34h], 0
jz	short loc_403E97
add	dword ptr [esi+40h], 1
adc	dword ptr [esi+44h], 0
jmp	short loc_403E9F

loc_403E97:
add	dword ptr [esi+48h], 1
adc	dword ptr [esi+4Ch], 0

loc_403E9F:
push	dword ptr [esi+4Ch]
mov	ecx, [esi+38h]
add	ecx, 0F0h
push	dword ptr [esi+48h]
call	sub_403EC6
xor	eax, eax

loc_403EB5:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_403DC3 endp




sub_403EC6 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	esi
mov	esi, ecx
push	edi
lea	edi, [esi+94h]
push	edi		; lpCriticalSection
call	ds:EnterCriticalSection
mov	eax, [esp+8+arg_0]
push	edi		; lpCriticalSection
mov	[esi+20h], eax
mov	eax, [esp+0Ch+arg_4]
mov	[esi+24h], eax
call	ds:LeaveCriticalSection
pop	edi
pop	esi
retn	8
sub_403EC6 endp



; Attributes: bp-based frame

sub_403EF1 proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_442724
call	__EH_prolog
sub	esp, 0Ch
push	esi
mov	esi, ecx
push	[ebp+arg_0]
lea	ecx, [ebp+Memory]
call	sub_403091
mov	ecx, [esi+38h]
and	[ebp+var_4], 0
lea	eax, [ebp+Memory]
add	ecx, 0F0h
push	eax
call	sub_403F4B
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx
push	[ebp+arg_0]
lea	ecx, [esi+18h]
call	sub_404722
mov	ecx, [ebp+var_C]
xor	eax, eax
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_403EF1 endp



; Attributes: bp-based frame

sub_403F4B proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_442738
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	edi
lea	edi, [esi+94h]
push	edi		; lpCriticalSection
mov	[ebp+var_10], edi
call	ds:EnterCriticalSection
push	[ebp+arg_0]
and	[ebp+var_4], 0
lea	ecx, [esi+38h]
call	sub_40312C
push	edi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_403F4B endp



; Attributes: bp-based frame

sub_403F90 proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_44274C
call	__EH_prolog
sub	esp, 0Ch
push	esi
mov	esi, ecx
push	[ebp+arg_0]
lea	ecx, [esi+28h]
call	sub_404722
push	[ebp+arg_0]
lea	ecx, [ebp+Memory]
call	sub_403091
mov	ecx, [esi+38h]
and	[ebp+var_4], 0
lea	eax, [ebp+Memory]
add	ecx, 0F0h
push	eax
call	sub_403FE6
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
xor	eax, eax
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_403F90 endp



; Attributes: bp-based frame

sub_403FE6 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_442760
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	edi
lea	edi, [esi+94h]
push	edi		; lpCriticalSection
mov	[ebp+var_10], edi
call	ds:EnterCriticalSection
push	[ebp+arg_0]
and	[ebp+var_4], 0
lea	ecx, [esi+44h]
call	sub_40312C
push	edi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_403FE6 endp




sub_40402B proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	esi
mov	esi, [esp+4+arg_0]
cmp	byte ptr [esi+48h], 0
jz	short loc_40403E
add	dword ptr [esi+40h], 1
adc	dword ptr [esi+44h], 0

loc_40403E:
mov	byte ptr [esi+48h], 1
push	dword ptr [esi+44h]
mov	ecx, [esi+30h]
push	dword ptr [esi+40h]
add	ecx, 0F0h
call	sub_403EC6
lea	ecx, [esi-8]
push	[esp+4+arg_4]
call	sub_403F90
pop	esi
retn	8
sub_40402B endp



; Attributes: bp-based frame

sub_404066 proc	near

Memory=	dword ptr -30h
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_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= byte ptr	 10h

mov	eax, offset loc_442794
call	__EH_prolog
sub	esp, 24h
push	ebx
push	esi
push	edi
mov	edi, [ebp+arg_4]
xor	ebx, ebx
mov	esi, ecx
cmp	edi, ebx
jz	loc_404195
push	3
lea	ecx, [ebp+var_18]
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_403396
push	[ebp+arg_0]
cmp	edi, 1
mov	[ebp+var_4], ebx
jnz	short loc_4040FA
lea	ecx, [ebp+var_24]
call	sub_403091
lea	eax, [ebp+var_24]
lea	ecx, [ebp+Memory]
push	eax
xor	eax, eax
cmp	[ebp+arg_8], bl
mov	byte ptr [ebp+var_4], 1
setnz	al
add	eax, 2000609h
xor	edx, edx
cmp	[ebp+arg_8], bl
push	eax
setnz	dl
add	edx, 67h
call	sub_40744B
push	eax
lea	ecx, [ebp+var_18]
mov	byte ptr [ebp+var_4], 2
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_24]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx
jmp	loc_40417B

loc_4040FA:
lea	ecx, [ebp+var_18]
call	sub_404722
push	offset asc_45B15C ; ": "
lea	ecx, [ebp+var_18]
call	sub_403195
push	3
lea	ecx, [ebp+var_24]
mov	[ebp+var_24], ebx
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
call	sub_403396
cmp	edi, 8007000Eh
mov	byte ptr [ebp+var_4], 3
jnz	short loc_40415A
push	200060Bh
push	69h
pop	edx
lea	ecx, [ebp+Memory]
call	sub_40B168
push	eax
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 4
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx
jmp	short loc_404164

loc_40415A:
lea	edx, [ebp+var_24]
mov	ecx, edi
call	sub_429BE4

loc_404164:
lea	eax, [ebp+var_24]
lea	ecx, [ebp+var_18]
push	eax
call	sub_4031F2
push	[ebp+var_24]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8

loc_40417B:
mov	eax, [esi]
pop	ecx
push	[ebp+var_18]
push	esi
call	dword ptr [eax+1Ch]
push	[ebp+var_18]	; Memory
inc	dword ptr [esi+54h]
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx

loc_404195:
push	[ebp+arg_0]
lea	ecx, [esi+18h]
call	sub_404722
mov	ecx, [ebp+var_C]
mov	byte ptr [esi+24h], 1
pop	edi
pop	esi
xor	eax, eax
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_404066 endp



; Attributes: bp-based frame

sub_4041B7 proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4427A8
call	__EH_prolog
sub	esp, 0Ch
push	esi
push	edi
mov	edi, [ebp+arg_0]
mov	esi, ecx
test	edi, edi
jz	short loc_404208
inc	dword ptr [esi+54h]
cmp	edi, 80004004h
jz	short loc_40420C
cmp	edi, 70h
jz	short loc_40420C
mov	eax, [esi+28h]
mov	ecx, [esi]
push	eax
push	esi
call	dword ptr [ecx+1Ch]
mov	edx, edi
lea	ecx, [ebp+Memory]
call	sub_40421E
push	dword ptr [eax]
mov	ecx, [esi]
and	[ebp+var_4], 0
push	esi
call	dword ptr [ecx+1Ch]
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_404208:
xor	eax, eax
jmp	short loc_40420E

loc_40420C:
mov	eax, edi

loc_40420E:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_4041B7 endp



; Attributes: bp-based frame

sub_40421E proc	near

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

mov	eax, offset loc_4427BC
call	__EH_prolog
sub	esp, 10h
push	ebx
push	esi
push	edi
mov	edi, ecx
xor	esi, esi
mov	ebx, edx
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+var_10], esi
mov	[ebp+Memory], esi
mov	[ebp+var_18], esi
mov	[ebp+var_14], esi
call	sub_403396
lea	edx, [ebp+Memory]
mov	ecx, ebx
mov	[ebp+var_4], esi
call	sub_429BE4
lea	eax, [ebp+Memory]
mov	ecx, edi
push	eax
call	sub_4030F2
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, edi
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_40421E endp




sub_40427C proc	near

arg_0= dword ptr  4

push	[esp+arg_0]
mov	byte ptr [ecx+60h], 1
add	ecx, 64h
call	sub_40312C
xor	eax, eax
retn	4
sub_40427C endp



; Attributes: bp-based frame

sub_404291 proc	near

var_24=	byte ptr -24h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_4427D0
call	__EH_prolog
sub	esp, 18h
push	esi
mov	esi, [ebp+arg_0]
mov	byte ptr [esi+51h], 1
cmp	byte ptr [esi+50h], 0
jnz	short loc_40431E
push	edi
lea	ecx, [ebp+var_24]
call	sub_404349
mov	edi, [esi+28h]
and	[ebp+var_4], 0
lea	ecx, [edi+0E4h]
call	sub_4418F0
mov	ecx, [edi+0E8h]	; hHandle
call	sub_441880
mov	eax, [esi+28h]
pop	edi
test	eax, eax
jz	short loc_4042DF
add	eax, 4
jmp	short loc_4042E1

loc_4042DF:
xor	eax, eax

loc_4042E1:		; hWndParent
push	dword ptr [eax]
lea	ecx, [ebp+var_24]
push	1F5h		; lpTemplateName
call	sub_42FCF7
cmp	eax, 2
jnz	short loc_404305
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, 80004004h
jmp	short loc_40433A

loc_404305:
lea	eax, [ebp+Memory]
lea	ecx, [esi+54h]
push	eax
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [esi+50h], 1
call	sub_4284D8
pop	ecx

loc_40431E:		; psz
push	dword ptr [esi+54h]
call	ds:SysAllocString
mov	ecx, [ebp+arg_4]
mov	[ecx], eax
neg	eax
sbb	eax, eax
and	eax, 7FF8FFF2h
add	eax, 8007000Eh

loc_40433A:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_404291 endp



; Attributes: bp-based frame

sub_404349 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4427E4
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
xor	eax, eax
mov	[ebp+var_10], esi
mov	[esi+4], eax
mov	dword ptr [esi], offset	off_44B558
lea	ecx, [esi+0Ch]
mov	[esi+8], eax
push	3
mov	[ebp+var_4], eax
mov	[ecx], eax
mov	[ecx+4], eax
mov	[ecx+8], eax
call	sub_403396
mov	ecx, [ebp+var_C]
mov	dword ptr [esi], offset	off_44B8E4
mov	eax, esi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_404349 endp




; int __thiscall sub_404392(void *Memory, char)
sub_404392 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_40D710
test	[esp+4+arg_0], 1
jz	short loc_4043A8
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_4043A8:
mov	eax, esi
pop	esi
retn	4
sub_404392 endp



; Attributes: bp-based frame

sub_4043AE proc	near

var_98=	byte ptr -98h
var_80=	byte ptr -80h
var_78=	dword ptr -78h
var_70=	dword ptr -70h
var_60=	dword ptr -60h
Memory=	dword ptr -54h
var_48=	dword ptr -48h
psz= dword ptr -3Ch
var_30=	dword ptr -30h
var_24=	dword ptr -24h
lpFileName= dword ptr -18h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_442873
call	__EH_prolog
sub	esp, 8Ch
push	ebx
push	esi
push	edi
lea	ecx, [ebp+psz]
push	[ebp+arg_14]
call	sub_403091
mov	eax, [ebp+arg_18]
mov	edi, [ebp+arg_1C]
push	[ebp+arg_14]
xor	ebx, ebx
mov	[eax], ebx
lea	ecx, [ebp+var_30]
mov	[ebp+var_4], ebx
mov	[edi], ebx
call	sub_403091
lea	eax, [ebp+var_30]
lea	ecx, [ebp+lpFileName]
push	eax
mov	byte ptr [ebp+var_4], 1
call	sub_4030F2
cmp	[ebp+arg_8], ebx
lea	ecx, [ebp+var_70]
mov	byte ptr [ebp+var_4], 2
setnz	byte ptr [ebp+arg_14+3]
call	sub_403079
push	[ebp+lpFileName] ; lpFileName
lea	ecx, [ebp+var_98]
mov	byte ptr [ebp+var_4], 3
call	sub_42B49E
test	al, al
jz	loc_404647
cmp	byte ptr [ebp+arg_14+3], bl
mov	eax, [ebp+var_78]
jz	loc_4044C3
shr	eax, 4
test	al, 1
jnz	loc_4044BC
push	offset aWithFolderWith ; "' with folder with same name"
lea	ecx, [ebp+var_48]
call	sub_403091
mov	esi, eax
push	offset aCanNotReplaceF ; "can not replace file '"
lea	ecx, [ebp+var_60]
mov	byte ptr [ebp+var_4], 4
call	sub_403091
lea	ecx, [ebp+var_30]
mov	edx, eax
push	ecx
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 5
call	sub_40356A
push	esi
mov	edx, eax
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 6
call	sub_40356A
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_60]	; Memory
call	sub_4284D8
push	[ebp+var_48]	; Memory
mov	byte ptr [ebp+var_4], 8
call	sub_4284D8
mov	eax, [ebp+arg_0]
add	esp, 0Ch
add	eax, 0FFFFFFF8h
push	[ebp+var_24]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+1Ch]
cmp	eax, ebx
mov	esi, eax
jnz	short loc_4044B4
mov	esi, 80004004h

loc_4044B4:
push	[ebp+var_24]
jmp	loc_4046F3

loc_4044BC:
mov	[edi], ebx
jmp	loc_40466B

loc_4044C3:
shr	eax, 4
test	al, 1
jz	loc_404550
push	offset aWithFileWithSa ; "' with file with same name"
lea	ecx, [ebp+Memory]
call	sub_403091
mov	esi, eax
push	offset aCanNotReplac_0 ; "can not replace folder '"
lea	ecx, [ebp+var_60]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_403091
lea	ecx, [ebp+var_30]
mov	edx, eax
push	ecx
lea	ecx, [ebp+var_48]
mov	byte ptr [ebp+var_4], 0Ch
call	sub_40356A
push	esi
mov	edx, eax
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 0Dh
call	sub_40356A
push	[ebp+var_48]	; Memory
call	sub_4284D8
push	[ebp+var_60]	; Memory
call	sub_4284D8
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 0Fh
call	sub_4284D8
mov	eax, [ebp+arg_0]
add	esp, 0Ch
add	eax, 0FFFFFFF8h
push	[ebp+var_24]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+1Ch]
cmp	eax, ebx
mov	esi, eax
jnz	short loc_404548
mov	esi, 80004005h

loc_404548:
push	[ebp+var_24]
jmp	loc_4046F3

loc_404550:
mov	esi, [ebp+arg_0]
mov	eax, [esi+54h]
sub	eax, ebx
jz	short loc_404563
dec	eax
dec	eax
jnz	short loc_4045DA
jmp	loc_40466B

loc_404563:
lea	edx, [ebp+arg_0]
mov	ecx, [esi-8]
push	edx
lea	edx, [ebp+var_98]
push	[ebp+arg_10]
lea	eax, [esi-8]
push	[ebp+arg_C]
push	[ebp+arg_4]
push	edx
lea	edx, [ebp+var_80]
push	edx
push	[ebp+var_30]
push	eax
call	dword ptr [ecx+14h]
cmp	eax, ebx
jnz	loc_404669
mov	eax, [ebp+arg_0]
sub	eax, ebx
jz	short loc_4045DA
dec	eax
jz	short loc_4045D3
dec	eax
jz	loc_40466B
dec	eax
jz	short loc_4045C7
dec	eax
jz	short loc_4045BE
dec	eax
jz	short loc_4045B4
mov	ebx, 80004005h
jmp	loc_40466B

loc_4045B4:
mov	ebx, 80004004h
jmp	loc_40466B

loc_4045BE:
mov	dword ptr [esi+54h], 3
jmp	short loc_4045DA

loc_4045C7:
mov	dword ptr [esi+54h], 2
jmp	loc_40466B

loc_4045D3:
mov	dword ptr [esi+54h], 1

loc_4045DA:
cmp	dword ptr [esi+54h], 3
jnz	loc_4046A1
lea	ecx, [ebp+lpFileName]
call	sub_4305D0
test	al, al
jnz	short loc_40463B
push	offset aCanNotCreateNa ; "can not create name of file "
lea	ecx, [ebp+var_48]
call	sub_403091
lea	ecx, [ebp+lpFileName]
mov	edx, eax
push	ecx
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 12h
call	sub_40356A
push	[ebp+var_48]	; Memory
mov	byte ptr [ebp+var_4], 14h
call	sub_4284D8
pop	ecx
lea	eax, [esi-8]
push	[ebp+var_24]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+1Ch]
cmp	eax, ebx
mov	esi, eax
jnz	short loc_404633
mov	esi, 80004004h

loc_404633:
push	[ebp+var_24]
jmp	loc_4046F3

loc_40463B:
lea	eax, [ebp+lpFileName]
lea	ecx, [ebp+psz]
push	eax
call	sub_40312C

loc_404647:		; psz
push	[ebp+psz]
mov	dword ptr [edi], 1
call	ds:SysAllocString
mov	ecx, [ebp+arg_18]
mov	[ecx], eax
neg	eax
sbb	eax, eax
and	eax, 7FF8FFF2h
add	eax, 8007000Eh

loc_404669:
mov	ebx, eax

loc_40466B:		; Memory
push	[ebp+var_70]
call	sub_4284D8
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_30]	; Memory
call	sub_4284D8
push	[ebp+psz]	; Memory
call	sub_4284D8
add	esp, 10h
mov	eax, ebx

loc_404690:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	20h

loc_4046A1:
mov	ecx, [ebp+lpFileName]
call	sub_42A481
test	al, al
jnz	short loc_404647
push	offset aCanNotDeleteOu ; "can not delete output	file "
lea	ecx, [ebp+var_48]
call	sub_403091
lea	ecx, [ebp+lpFileName]
mov	edx, eax
push	ecx
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 15h
call	sub_40356A
push	[ebp+var_48]	; Memory
mov	byte ptr [ebp+var_4], 17h
call	sub_4284D8
pop	ecx
lea	eax, [esi-8]
push	[ebp+var_24]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+1Ch]
cmp	eax, ebx
mov	esi, eax
jnz	short loc_4046F0
mov	esi, 80004004h

loc_4046F0:		; Memory
push	[ebp+var_24]

loc_4046F3:
call	sub_4284D8
push	[ebp+var_70]	; Memory
call	sub_4284D8
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_30]	; Memory
call	sub_4284D8
push	[ebp+psz]	; Memory
call	sub_4284D8
add	esp, 14h
mov	eax, esi
jmp	loc_404690
sub_4043AE endp



; Attributes: bp-based frame

sub_404722 proc	near

var_4= dword ptr -4
arg_0= dword ptr  8

push	ebp
mov	ebp, esp
push	ecx
push	esi
mov	esi, ecx
push	edi
mov	edi, [ebp+arg_0]
mov	eax, [esi]
xor	ecx, ecx
mov	[esi+4], ecx
mov	[ebp+var_4], ecx
mov	[eax], cx
cmp	[edi], cx
jz	short loc_40474B
mov	eax, edi

loc_404741:
inc	[ebp+var_4]
inc	eax
inc	eax
cmp	[eax], cx
jnz	short loc_404741

loc_40474B:
push	[ebp+var_4]
mov	ecx, esi
call	sub_403396
mov	eax, [esi]
mov	cx, [edi]
lea	edx, [edi+2]
mov	[eax], cx
inc	eax
inc	eax

loc_404762:
test	cx, cx
jz	short loc_404773
mov	cx, [edx]
mov	[eax], cx
inc	eax
inc	eax
inc	edx
inc	edx
jmp	short loc_404762

loc_404773:
mov	eax, [ebp+var_4]
pop	edi
mov	[esi+4], eax
mov	eax, esi
pop	esi
leave
retn	4
sub_404722 endp




sub_404781 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 8
jmp	sub_403850
sub_404781 endp




sub_40478B proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 8
jmp	sub_40390D
sub_40478B endp




sub_404795 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8
arg_8= dword ptr  0Ch

sub	[esp+arg_0], 8
jmp	sub_403A0D
sub_404795 endp




sub_40479F proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

sub	[esp+arg_0], 8
jmp	sub_403A69
sub_40479F endp




sub_4047A9 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 0Ch
jmp	sub_403850
sub_4047A9 endp




sub_4047B3 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 0Ch
jmp	sub_40390D
sub_4047B3 endp




sub_4047BD proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 10h
jmp	sub_403850
sub_4047BD endp




sub_4047C7 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 10h
jmp	sub_40390D
sub_4047C7 endp



; Attributes: bp-based frame

sub_4047D1 proc	near

var_E8=	dword ptr -0E8h
var_D8=	dword ptr -0D8h
var_CC=	dword ptr -0CCh
var_C0=	dword ptr -0C0h
var_B4=	dword ptr -0B4h
var_AC=	dword ptr -0ACh
var_A8=	dword ptr -0A8h
var_A0=	dword ptr -0A0h
var_9C=	byte ptr -9Ch
var_90=	byte ptr -90h
var_84=	byte ptr -84h
var_80=	byte ptr -80h
var_7C=	byte ptr -7Ch
var_78=	dword ptr -78h
var_74=	dword ptr -74h
var_70=	dword ptr -70h
var_6C=	dword ptr -6Ch
var_68=	dword ptr -68h
var_64=	dword ptr -64h
var_60=	dword ptr -60h
var_5C=	dword ptr -5Ch
var_58=	dword ptr -58h
var_54=	dword ptr -54h
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
Memory=	dword ptr -28h
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_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

mov	eax, offset loc_442919
call	__EH_prolog
sub	esp, 0CCh
push	ebx
push	esi
push	edi
mov	[ebp+var_3C], ecx
mov	edi, edx
lea	ecx, [ebp+var_B4]
mov	[ebp+var_A0], edi
call	sub_40337B
mov	[ebp+var_B4], offset off_44B92C
xor	ebx, ebx
lea	ecx, [ebp+var_B4]
mov	[ebp+var_4], ebx
call	sub_41E687
lea	ecx, [ebp+var_60]
mov	[ebp+var_60], ebx
push	3
mov	[ebp+var_5C], ebx
pop	esi
mov	[ebp+var_58], ebx
push	esi
call	sub_403396
push	esi
lea	ecx, [ebp+var_6C]
mov	byte ptr [ebp+var_4], 1
mov	[ebp+var_6C], ebx
mov	[ebp+var_68], ebx
mov	[ebp+var_64], ebx
call	sub_403396
push	esi
lea	ecx, [ebp+var_48]
mov	byte ptr [ebp+var_4], 2
mov	[ebp+var_48], ebx
mov	[ebp+var_44], ebx
mov	[ebp+var_40], ebx
call	sub_403396
push	esi
lea	ecx, [ebp+var_54]
mov	byte ptr [ebp+var_4], 3
mov	[ebp+var_54], ebx
mov	[ebp+var_50], ebx
mov	[ebp+var_4C], ebx
call	sub_403396
mov	eax, [edi+4]
mov	byte ptr [ebp+var_4], 4
cmp	eax, ebx
jz	short loc_404892
mov	ecx, [edi]
lea	eax, [ecx+eax*2-2]

loc_40487C:
cmp	word ptr [eax],	5Ch
jz	short loc_40488A
cmp	eax, ecx
jz	short loc_404892
dec	eax
dec	eax
jmp	short loc_40487C

loc_40488A:
sub	eax, ecx
sar	eax, 1
mov	esi, eax
jmp	short loc_404895

loc_404892:
or	esi, 0FFFFFFFFh

loc_404895:
push	3
lea	ecx, [ebp+var_38]
mov	[ebp+var_38], ebx
mov	[ebp+var_34], ebx
mov	[ebp+var_30], ebx
call	sub_403396
push	3
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 5
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_403396
cmp	esi, ebx
mov	byte ptr [ebp+var_4], 6
jl	short loc_404916
inc	esi
lea	eax, [ebp+Memory]
push	esi
push	eax
mov	ecx, edi
call	sub_403228
push	eax
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 7
call	sub_40312C
mov	byte ptr [ebp+var_4], 6
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
lea	eax, [ebp+Memory]
push	esi
push	eax
mov	ecx, edi
call	sub_405246
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 8
call	sub_40312C
mov	byte ptr [ebp+var_4], 6
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
jmp	short loc_40491F

loc_404916:
push	edi
lea	ecx, [ebp+var_1C]
call	sub_40312C

loc_40491F:
lea	eax, [ebp+var_60]
lea	edx, [ebp+var_48]
push	eax
lea	eax, [ebp+var_54]
push	eax
lea	ecx, [ebp+var_1C]
call	sub_42C35E
xor	eax, eax
cmp	[ebp+var_AC], ebx
mov	[ebp+var_2C], eax
jle	loc_404BCB
mov	edi, [ebp+arg_C]

loc_404946:
mov	ecx, [ebp+var_A8]
mov	esi, [ecx+eax*4]
cmp	[esi+3Ch], bl
jz	loc_404BB8
mov	[ebp+arg_C], ebx
lea	ecx, [ebp+var_9C]
mov	byte ptr [ebp+var_4], 9
call	sub_40517C
cmp	[esi+4], ebx
mov	byte ptr [ebp+var_4], 0Ah
jnz	short loc_40499D
push	10h		; Size
call	sub_4284B1
cmp	eax, ebx
pop	ecx
jz	short loc_404990
mov	[eax+4], ebx
mov	[eax+8], ebx
mov	[eax+0Ch], ebx
mov	dword ptr [eax], offset	off_44B914
jmp	short loc_404992

loc_404990:
xor	eax, eax

loc_404992:
push	eax
lea	ecx, [ebp+var_80]
call	sub_43D0DB
jmp	short loc_4049CB

loc_40499D:		; lpLibFileName
push	dword ptr [esi]
lea	ecx, [ebp+arg_C]
call	sub_429A47
test	al, al
jnz	short loc_4049B3
call	ds:GetLastError
jmp	short loc_4049C3

loc_4049B3:
lea	eax, [ebp+var_80]
add	esi, 1Ch
push	eax
push	esi
lea	ecx, [ebp+arg_C]
call	sub_4050C9

loc_4049C3:
cmp	eax, ebx
jnz	loc_404B9D

loc_4049CB:		; Size
push	268h
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_10], ecx
cmp	ecx, ebx
mov	byte ptr [ebp+var_4], 0Bh
jz	short loc_4049EA
call	sub_404DBF
jmp	short loc_4049EC

loc_4049EA:
xor	eax, eax

loc_4049EC:
mov	[ebp+var_78], eax
mov	ecx, eax
add	eax, 0Ch
mov	byte ptr [ebp+var_4], 0Ah
neg	ecx
sbb	ecx, ecx
and	ecx, eax
push	ecx
lea	ecx, [ebp+var_7C]
call	sub_43D0DB
mov	eax, [ebp+arg_10]
mov	ecx, [ebp+var_78]
push	[ebp+arg_14]
mov	al, [eax]
mov	[ecx+88h], al
mov	eax, [ebp+var_78]
lea	ecx, [eax+8Ch]
call	sub_40312C
mov	eax, [ebp+var_78]
cmp	[ebp+var_3C], ebx
mov	[eax+98h], edi
jz	short loc_404A45
mov	eax, [ebp+var_78]
push	[ebp+var_1C]
add	eax, 8
push	eax
mov	ecx, [eax]
call	dword ptr [ecx+0Ch]
jmp	short loc_404A55

loc_404A45:
mov	ecx, [ebp+var_78]
lea	eax, [ebp+var_1C]
push	eax
lea	eax, [ebp+var_38]
push	eax
call	sub_404FD3

loc_404A55:
push	[ebp+var_3C]
lea	ecx, [ebp+var_84]
call	sub_43D0DB
lea	ecx, [ebp+var_9C]
push	[ebp+var_A0]
call	sub_40312C
lea	ecx, [ebp+var_90]
push	[ebp+arg_0]
call	sub_40312C
mov	edx, 8EBh
lea	ecx, [ebp+Memory]
push	3020283h
call	sub_40B168
mov	eax, [ebp+var_78]
push	3000000h
mov	edx, 898h
lea	ecx, [ebp+var_C0]
mov	byte ptr [ebp+var_4], 0Ch
mov	[eax+248h], edi
call	sub_40B168
push	eax
mov	eax, [ebp+var_78]
mov	byte ptr [ebp+var_4], 0Dh
lea	ecx, [eax+24Ch]
call	sub_40312C
mov	byte ptr [ebp+var_4], 0Ch
push	[ebp+var_C0]	; Memory
call	sub_4284D8
lea	ecx, [ebp+var_D8]
mov	[esp+0E8h+var_E8], offset asc_45B128 ; " "
call	sub_403091
push	eax
lea	edx, [ebp+Memory]
lea	ecx, [ebp+var_CC]
mov	byte ptr [ebp+var_4], 0Eh
call	sub_40356A
push	eax
mov	eax, [ebp+var_78]
mov	byte ptr [ebp+var_4], 0Fh
lea	ecx, [eax+258h]
call	sub_40312C
push	[ebp+var_CC]	; Memory
call	sub_4284D8
push	[ebp+var_D8]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_78]
pop	ecx
pop	ecx
mov	[ebp+var_10], ebx
mov	byte ptr [eax+241h], 1
lea	eax, [ebp+var_9C]
mov	edx, offset sub_4050F4
push	eax
lea	ecx, [ebp+var_10]
mov	byte ptr [ebp+var_4], 10h
call	sub_441890
mov	esi, eax
cmp	esi, ebx
jnz	loc_404C21
mov	ecx, [ebp+var_78]
lea	eax, [ebp+var_10]
push	eax
lea	eax, [ebp+Memory]
push	eax
call	sub_40504C
lea	ecx, [ebp+var_10]
mov	byte ptr [ebp+var_4], 0Ch
call	sub_441850
mov	ecx, [ebp+var_70]
mov	eax, 80004004h
cmp	ecx, eax
jz	loc_404C96
cmp	ecx, ebx
jz	loc_404C9A
cmp	ecx, 1
jnz	loc_404CCE
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_404B9D:
lea	ecx, [ebp+var_9C]
mov	byte ptr [ebp+var_4], 9
call	sub_4051D0
lea	ecx, [ebp+arg_C]
mov	byte ptr [ebp+var_4], 6
call	sub_429929

loc_404BB8:
mov	eax, [ebp+var_2C]
inc	eax
cmp	eax, [ebp+var_AC]
mov	[ebp+var_2C], eax
jl	loc_404946

loc_404BCB:		; Memory
push	[ebp+var_1C]
call	sub_4284D8
push	[ebp+var_38]	; Memory
call	sub_4284D8
push	[ebp+var_54]	; Memory
call	sub_4284D8
push	[ebp+var_48]	; Memory
call	sub_4284D8
push	[ebp+var_6C]	; Memory
call	sub_4284D8
push	[ebp+var_60]	; Memory
call	sub_4284D8
or	[ebp+var_4], 0FFFFFFFFh
add	esp, 18h
lea	ecx, [ebp+var_B4]
call	sub_405267
push	1
pop	eax

loc_404C10:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	18h

loc_404C21:
lea	ecx, [ebp+var_10]
call	sub_441850
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 9
lea	ecx, [ebp+var_9C]
call	sub_4051D0
lea	ecx, [ebp+arg_C]
mov	byte ptr [ebp+var_4], 6
call	sub_429929
push	[ebp+var_1C]	; Memory
call	sub_4284D8
push	[ebp+var_38]	; Memory
call	sub_4284D8
push	[ebp+var_54]	; Memory
call	sub_4284D8
push	[ebp+var_48]	; Memory
call	sub_4284D8
push	[ebp+var_6C]	; Memory
call	sub_4284D8
push	[ebp+var_60]	; Memory
call	sub_4284D8
or	[ebp+var_4], 0FFFFFFFFh
add	esp, 18h
lea	ecx, [ebp+var_B4]
call	sub_405267
mov	eax, esi
jmp	loc_404C10

loc_404C96:
mov	ebx, eax
jmp	short loc_404CD0

loc_404C9A:
mov	eax, [ebp+var_78]
mov	edx, [ebp+arg_10]
mov	cl, [eax+88h]
add	eax, 8Ch
mov	[edx], cl
mov	ecx, [ebp+arg_14]
push	eax
call	sub_40312C
mov	ecx, [ebp+arg_4]
mov	eax, [ebp+arg_C]
mov	[ebp+arg_C], ebx
mov	[ecx], eax
mov	ecx, [ebp+arg_8]
mov	eax, [ebp+var_74]
mov	[ebp+var_74], ebx
mov	[ecx], eax
jmp	short loc_404CD0

loc_404CCE:
mov	ebx, ecx

loc_404CD0:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 9
lea	ecx, [ebp+var_9C]
call	sub_4051D0
lea	ecx, [ebp+arg_C]
mov	byte ptr [ebp+var_4], 6
call	sub_429929
push	[ebp+var_1C]	; Memory
call	sub_4284D8
push	[ebp+var_38]	; Memory
call	sub_4284D8
push	[ebp+var_54]	; Memory
call	sub_4284D8
push	[ebp+var_48]	; Memory
call	sub_4284D8
push	[ebp+var_6C]	; Memory
call	sub_4284D8
push	[ebp+var_60]	; Memory
call	sub_4284D8
or	[ebp+var_4], 0FFFFFFFFh
add	esp, 18h
lea	ecx, [ebp+var_B4]
call	sub_405267
mov	eax, ebx
jmp	loc_404C10
sub_4047D1 endp



; Attributes: thunk

sub_404D3D proc	near
jmp	sub_441850
sub_404D3D endp



; Attributes: bp-based frame

; int __stdcall	sub_404D42(int,	void *Buf1, int)
sub_404D42 proc	near

arg_0= dword ptr  8
Buf1= dword ptr	 0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
push	10h		; Size
push	offset unk_44CCB8 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jz	short loc_404D71
push	10h		; Size
push	offset unk_44B620 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_404D83

loc_404D71:
mov	ecx, [ebp+arg_8]
mov	eax, [ebp+arg_0]
push	eax
mov	[ecx], eax
mov	ecx, [eax]
call	dword ptr [ecx+4]
xor	eax, eax
jmp	short loc_404D88

loc_404D83:
mov	eax, 80004002h

loc_404D88:
pop	ebp
retn	0Ch
sub_404D42 endp




; int __stdcall	sub_404D8C(void	*Memory)
sub_404D8C proc	near

Memory=	dword ptr  4

push	esi
mov	esi, [esp+4+Memory]
dec	dword ptr [esi+4]
mov	eax, [esi+4]
jnz	short loc_404DAD
test	esi, esi
jz	short loc_404DAB
mov	ecx, esi
call	sub_404DB1
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_404DAB:
xor	eax, eax

loc_404DAD:
pop	esi
retn	4
sub_404D8C endp




sub_404DB1 proc	near
mov	eax, [ecx+0Ch]
test	eax, eax
jz	short locret_404DBE
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

locret_404DBE:
retn
sub_404DB1 endp



; Attributes: bp-based frame

sub_404DBF proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44295E
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
push	3
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44B9D8
mov	dword ptr [esi+4], offset off_44B9C4
mov	dword ptr [esi+8], offset off_44B9B4
mov	dword ptr [esi+0Ch], offset off_44B9A0
lea	ecx, [esi+18h]
mov	dword ptr [esi+10h], offset off_44B990
mov	[esi+14h], ebx
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+28h]
mov	[ebp+var_4], ebx
call	sub_404EA2
lea	ecx, [esi+60h]	; lpCriticalSection
call	sub_441910
lea	ecx, [esi+7Ch]
push	3
mov	byte ptr [ebp+var_4], 2
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+8Ch]
push	3
mov	byte ptr [ebp+var_4], 3
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+0A0h]
mov	byte ptr [ebp+var_4], 4
mov	[esi+98h], ebx
call	sub_422DDA
mov	ecx, [ebp+var_C]
mov	dword ptr [esi], offset	off_44B97C
mov	dword ptr [esi+4], offset off_44B968
mov	dword ptr [esi+8], offset off_44B958
mov	dword ptr [esi+0Ch], offset off_44B944
mov	dword ptr [esi+10h], offset off_44B934
mov	[esi+78h], bl
mov	[esi+88h], bl
mov	[esi+89h], bl
mov	eax, esi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_404DBF endp




sub_404EA2 proc	near
push	esi
mov	esi, ecx
xor	eax, eax
push	3
lea	ecx, [esi+28h]
mov	[ecx], eax
mov	[ecx+4], eax
mov	[ecx+8], eax
call	sub_403396
mov	eax, esi
pop	esi
retn
sub_404EA2 endp

; START	OF FUNCTION CHUNK FOR sub_44293A

loc_404EBD:		; lpCriticalSection
push	ecx
call	ds:DeleteCriticalSection
retn
; END OF FUNCTION CHUNK	FOR sub_44293A


; Attributes: bp-based frame

; int __stdcall	sub_404EC5(int,	void *Buf1, int)
sub_404EC5 proc	near

arg_0= dword ptr  8
Buf1= dword ptr	 0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
push	esi
mov	esi, [ebp+Buf1]
push	edi
push	10h
pop	edi
push	edi		; Size
push	offset unk_44CCB8 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_404EF0

loc_404EE3:
mov	ecx, [ebp+arg_8]
mov	eax, [ebp+arg_0]
mov	[ecx], eax
jmp	loc_404F80

loc_404EF0:		; Size
push	edi
push	offset unk_44B7B0 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jz	short loc_404EE3
push	edi		; Size
push	offset unk_44B7A0 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_404F20
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+4]
jmp	short loc_404F75

loc_404F20:		; Size
push	edi
push	offset unk_44B780 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_404F3D
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+8]
jmp	short loc_404F75

loc_404F3D:		; Size
push	edi
push	offset unk_44B7F0 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_404F5A
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+0Ch]
jmp	short loc_404F75

loc_404F5A:		; Size
push	edi
push	offset unk_44B720 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_404F8A
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+10h]

loc_404F75:
neg	ecx
sbb	ecx, ecx
and	ecx, edx
mov	edx, [ebp+arg_8]
mov	[edx], ecx

loc_404F80:
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+4]
xor	eax, eax
jmp	short loc_404F8F

loc_404F8A:
mov	eax, 80004002h

loc_404F8F:
pop	edi
pop	esi
pop	ebp
retn	0Ch
sub_404EC5 endp




; int __stdcall	sub_404F95(void	*Memory)
sub_404F95 proc	near

Memory=	dword ptr  4

push	esi
mov	esi, [esp+4+Memory]
dec	dword ptr [esi+14h]
mov	eax, [esi+14h]
jnz	short loc_404FB6
test	esi, esi
jz	short loc_404FB4
mov	ecx, esi
call	sub_405068
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_404FB4:
xor	eax, eax

loc_404FB6:
pop	esi
retn	4
sub_404F95 endp




sub_404FBA proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [esp+arg_0]
push	[esp+arg_4]
lea	ecx, [eax+74h]
mov	byte ptr [eax+70h], 1
call	sub_404722
xor	eax, eax
retn	8
sub_404FBA endp



; Attributes: bp-based frame

sub_404FD3 proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_442970
call	__EH_prolog
sub	esp, 0Ch
push	ebx
push	esi
mov	esi, ecx
push	edi
push	[ebp+arg_0]
lea	edi, [esi+18h]
mov	ecx, edi
call	sub_40312C
push	[ebp+arg_4]
mov	edx, edi
lea	ecx, [ebp+Memory]
call	sub_40356A
push	dword ptr [eax]	; lpFileName
and	[ebp+var_4], 0
lea	ecx, [esi+28h]
call	sub_42B49E
push	[ebp+Memory]	; Memory
mov	bl, al
neg	bl
sbb	bl, bl
or	[ebp+var_4], 0FFFFFFFFh
inc	bl
call	sub_4284D8
pop	ecx
pop	edi
pop	esi
test	bl, bl
pop	ebx
jz	short loc_40503E
lea	eax, [ebp+arg_0]
push	offset unk_44D120
push	eax
mov	[ebp+arg_0], 1
call	_CxxThrowException

loc_40503E:
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn	8
sub_404FD3 endp




sub_40504C proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	dword ptr [ecx+98h] ; hWndParent
add	ecx, 0A0h
push	[esp+4+arg_4]	; int
push	[esp+8+arg_0]	; int
call	sub_424624
retn	8
sub_40504C endp



; Attributes: bp-based frame

sub_405068 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4429B6
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
lea	ecx, [esi+0A0h]
mov	[ebp+var_4], 4
call	sub_423175
push	dword ptr [esi+8Ch] ; Memory
call	sub_4284D8
push	dword ptr [esi+7Ch] ; Memory
call	sub_4284D8
pop	ecx
lea	eax, [esi+60h]
pop	ecx
push	eax		; lpCriticalSection
call	ds:DeleteCriticalSection
push	dword ptr [esi+50h] ; Memory
call	sub_4284D8
push	dword ptr [esi+18h] ; Memory
call	sub_4284D8
pop	ecx
pop	ecx
pop	esi
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn
sub_405068 endp




sub_4050C9 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	offset ProcName	; "CreateObject"
push	dword ptr [ecx]	; hModule
call	ds:GetProcAddress
test	eax, eax
jnz	short loc_4050E2
call	ds:GetLastError
jmp	short locret_4050F1

loc_4050E2:
push	[esp+arg_4]
push	offset unk_44B620
push	[esp+8+arg_0]
call	eax

locret_4050F1:
retn	8
sub_4050C9 endp




sub_4050F4 proc	near

arg_0= dword ptr  4

mov	ecx, [esp+arg_0]
call	sub_405102
xor	eax, eax
retn	4
sub_4050F4 endp



; Attributes: bp-based frame

sub_405102 proc	near

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

mov	eax, offset loc_4429C8
call	__EH_prolog
sub	esp, 0Ch
push	ebx
push	esi
and	[ebp+var_4], 0
mov	esi, ecx
push	edi
mov	[ebp+var_14], esi
mov	edi, [esi+24h]
mov	[ebp+var_10], esp
add	edi, 0A0h
mov	[ebp+var_18], edi
mov	ecx, [esi+20h]
mov	edx, [esi+0Ch]
mov	eax, [esi+1Ch]
push	ecx
lea	ecx, [esi+28h]
mov	byte ptr [ebp+var_4], 1
mov	ebx, [eax]
push	ecx
push	edx
push	dword ptr [esi]
push	dword ptr [esi+18h]
push	eax
call	dword ptr [ebx+0Ch]
and	byte ptr [ebp+var_4], 0
mov	ecx, edi
mov	[esi+2Ch], eax
call	sub_424FA1

loc_405156:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn
sub_405102 endp




sub_405165 proc	near
mov	eax, [ebp-14h]
mov	dword ptr [eax+2Ch], 80004005h
mov	eax, offset loc_405156
retn
sub_405165 endp

; START	OF FUNCTION CHUNK FOR sub_4429C0

loc_405175:
mov	ecx, [ecx]
jmp	sub_424FA1
; END OF FUNCTION CHUNK	FOR sub_4429C0


; Attributes: bp-based frame

sub_40517C proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4429DC
call	__EH_prolog
push	ecx
push	esi
push	edi
mov	esi, ecx
xor	edi, edi
push	3
mov	[ebp+var_10], esi
mov	[esi], edi
mov	[esi+4], edi
mov	[esi+8], edi
call	sub_403396
lea	ecx, [esi+0Ch]
push	3
mov	[ebp+var_4], edi
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
mov	ecx, [ebp+var_C]
mov	[esi+18h], edi
mov	[esi+1Ch], edi
mov	[esi+20h], edi
mov	[esi+28h], edi
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_40517C endp



; Attributes: bp-based frame

sub_4051D0 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442A1C
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	eax, [esi+28h]
mov	[ebp+var_4], 4
test	eax, eax
jz	short loc_4051F5
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_4051F5:
mov	eax, [esi+20h]
mov	byte ptr [ebp+var_4], 3
test	eax, eax
jz	short loc_405206
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_405206:
mov	eax, [esi+1Ch]
mov	byte ptr [ebp+var_4], 2
test	eax, eax
jz	short loc_405217
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_405217:
mov	eax, [esi+18h]
mov	byte ptr [ebp+var_4], 1
test	eax, eax
jz	short loc_405228
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_405228:		; Memory
push	dword ptr [esi+0Ch]
call	sub_4284D8
push	dword ptr [esi]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx
pop	esi
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn
sub_4051D0 endp



; Attributes: bp-based frame

sub_405246 proc	near

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

push	ebp
mov	ebp, esp
push	ecx
mov	eax, [ecx+4]
and	[ebp+var_4], 0
sub	eax, [ebp+arg_4]
push	eax
push	[ebp+arg_4]
push	[ebp+arg_0]
call	sub_403434
mov	eax, [ebp+arg_0]
leave
retn	8
sub_405246 endp



; Attributes: bp-based frame

sub_405267 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442A30
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44B92C
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_405267 endp




; int __thiscall sub_40529F(void *Memory, char)
sub_40529F proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_405267
test	[esp+4+arg_0], 1
jz	short loc_4052B5
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_4052B5:
mov	eax, esi
pop	esi
retn	4
sub_40529F endp




sub_4052BB proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_404EC5
sub_4052BB endp




sub_4052C5 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_404F95
sub_4052C5 endp




sub_4052CF proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 8
jmp	sub_404EC5
sub_4052CF endp




sub_4052D9 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 8
jmp	sub_404F95
sub_4052D9 endp




sub_4052E3 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 0Ch
jmp	sub_404EC5
sub_4052E3 endp




sub_4052ED proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 0Ch
jmp	sub_404F95
sub_4052ED endp




sub_4052F7 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 10h
jmp	sub_404EC5
sub_4052F7 endp




sub_405301 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 10h
jmp	sub_404F95
sub_405301 endp




sub_40530B proc	near

arg_0= dword ptr  4

push	esi
push	edi
mov	esi, ecx
xor	edi, edi
cmp	[esi+8], edi
jle	short loc_405333

loc_405316:
mov	eax, [esi+0Ch]
mov	ecx, [esp+8+arg_0]
mov	eax, [eax+edi*4]
mov	edx, [ecx]
mov	ecx, [eax]
call	sub_4282B1
test	eax, eax
jz	short loc_40533B
inc	edi
cmp	edi, [esi+8]
jl	short loc_405316

loc_405333:
or	eax, 0FFFFFFFFh

loc_405336:
pop	edi
pop	esi
retn	4

loc_40533B:
mov	eax, edi
jmp	short loc_405336
sub_40530B endp



; Attributes: bp-based frame

sub_40533F proc	near

Memory=	dword ptr -78h
var_6C=	byte ptr -6Ch
var_68=	byte ptr -68h
var_54=	dword ptr -54h
var_4C=	dword ptr -4Ch
var_48=	dword ptr -48h
var_40=	dword ptr -40h
var_30=	dword ptr -30h
var_28=	dword ptr -28h
bstrString= 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_4= dword ptr -4

mov	eax, offset loc_442A84
call	__EH_prolog
sub	esp, 6Ch
push	ebx
push	esi
push	edi
mov	edi, ecx
lea	ecx, [edi+14h]
call	sub_41E687
xor	ebx, ebx
cmp	[edi+1Ch], ebx
mov	[ebp+var_10], ebx
jle	loc_405577

loc_405367:
mov	eax, [edi+20h]
mov	ecx, [ebp+var_10]
mov	esi, [eax+ecx*4]
mov	[ebp+var_18], ebx
mov	[ebp+var_4], ebx
mov	[ebp+var_14], ebx
cmp	[esi+4], ebx
mov	byte ptr [ebp+var_4], 1
jnz	short loc_4053AC
push	10h		; Size
call	sub_4284B1
cmp	eax, ebx
pop	ecx
jz	short loc_40539F
mov	[eax+4], ebx
mov	[eax+8], ebx
mov	[eax+0Ch], ebx
mov	dword ptr [eax], offset	off_44B914
jmp	short loc_4053A1

loc_40539F:
xor	eax, eax

loc_4053A1:
push	eax
lea	ecx, [ebp+var_14]
call	sub_43D0DB
jmp	short loc_4053DA

loc_4053AC:		; lpLibFileName
push	dword ptr [esi]
lea	ecx, [ebp+var_18]
call	sub_429A47
test	al, al
jnz	short loc_4053C2
call	ds:GetLastError
jmp	short loc_4053D2

loc_4053C2:
lea	eax, [ebp+var_14]
add	esi, 1Ch
push	eax
push	esi
lea	ecx, [ebp+var_18]
call	sub_4050C9

loc_4053D2:
cmp	eax, ebx
jnz	loc_405520

loc_4053DA:
mov	[ebp+bstrString], ebx
mov	eax, [ebp+var_14]
lea	edx, [ebp+bstrString]
push	edx
push	eax
mov	ecx, [eax]
mov	byte ptr [ebp+var_4], 2
call	dword ptr [ecx+10h]
push	[ebp+bstrString]
test	eax, eax
jnz	loc_405555
lea	ecx, [ebp+var_40]
call	sub_403091
lea	ecx, [ebp+var_54]
mov	byte ptr [ebp+var_4], 3
call	sub_40337B
mov	[ebp+var_54], offset off_44B510
lea	edx, [ebp+var_54]
lea	ecx, [ebp+var_40]
mov	byte ptr [ebp+var_4], 4
call	sub_41F8A7
cmp	[ebp+var_4C], ebx
mov	[ebp+var_20], ebx
jle	loc_4054EF

loc_40542F:
mov	eax, [ebp+var_48]
mov	ecx, [ebp+var_20]
mov	esi, [eax+ecx*4]
mov	ecx, edi
push	esi
call	sub_40530B
cmp	eax, ebx
jge	short loc_40549F
lea	ecx, [ebp+Memory]
call	sub_403079
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 5
call	sub_4055C1
mov	byte ptr [ebp+var_28], bl
push	[ebp+var_28]
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 6
push	[ebp+var_10]
call	sub_43D102
push	esi
lea	ecx, [ebp+Memory]
mov	[ebp+var_6C], bl
call	sub_40312C
lea	eax, [ebp+Memory]
mov	ecx, edi
push	eax
call	sub_4055DC
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 7
call	sub_4282FE
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 4
call	sub_4284D8
pop	ecx
jmp	short loc_4054E0

loc_40549F:
mov	ecx, [edi+0Ch]
mov	[ebp+var_1C], ebx
mov	eax, [ecx+eax*4]
mov	ecx, [eax+18h]
cmp	ecx, ebx
jle	short loc_4054C8
mov	edx, [eax+1Ch]

loc_4054B2:
mov	esi, [edx]
cmp	esi, [ebp+var_10]
jz	loc_40554D
inc	[ebp+var_1C]
add	edx, 8
cmp	[ebp+var_1C], ecx
jl	short loc_4054B2

loc_4054C8:
or	ecx, 0FFFFFFFFh

loc_4054CB:
cmp	ecx, ebx
jge	short loc_4054E0
mov	byte ptr [ebp+var_30], bl
push	[ebp+var_30]
lea	ecx, [eax+10h]
push	[ebp+var_10]
call	sub_43D102

loc_4054E0:
inc	[ebp+var_20]
mov	eax, [ebp+var_20]
cmp	eax, [ebp+var_4C]
jl	loc_40542F

loc_4054EF:
mov	[ebp+var_54], offset off_44B510
lea	ecx, [ebp+var_54]
mov	byte ptr [ebp+var_4], 8
call	sub_428327
lea	ecx, [ebp+var_54]
mov	byte ptr [ebp+var_4], 3
call	sub_4282FE
push	[ebp+var_40]	; Memory
call	sub_4284D8
pop	ecx
push	[ebp+bstrString] ; bstrString
call	ds:SysFreeString

loc_405520:
mov	eax, [ebp+var_14]
mov	byte ptr [ebp+var_4], bl
cmp	eax, ebx
jz	short loc_405530
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_405530:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_18]
call	sub_429929
inc	[ebp+var_10]
mov	eax, [ebp+var_10]
cmp	eax, [edi+1Ch]
jl	loc_405367
jmp	short loc_405577

loc_40554D:
mov	ecx, [ebp+var_1C]
jmp	loc_4054CB

loc_405555:
call	ds:SysFreeString
mov	eax, [ebp+var_14]
mov	byte ptr [ebp+var_4], bl
cmp	eax, ebx
jz	short loc_40556B
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_40556B:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_18]
call	sub_429929

loc_405577:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_40533F endp

; START	OF FUNCTION CHUNK FOR sub_442A4C

loc_405586:		; bstrString
push	dword ptr [ecx]
call	ds:SysFreeString
retn
; END OF FUNCTION CHUNK	FOR sub_442A4C


; Attributes: bp-based frame

sub_40558F proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442A98
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
lea	ecx, [esi+10h]
call	sub_4282FE
push	dword ptr [esi]	; Memory
call	sub_4284D8
pop	ecx
pop	esi
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn
sub_40558F endp




sub_4055C1 proc	near
mov	eax, ecx
xor	ecx, ecx
mov	[eax+4], ecx
mov	[eax+8], ecx
mov	[eax+0Ch], ecx
mov	dword ptr [eax+10h], 8
mov	dword ptr [eax], offset	off_44B9EC
retn
sub_4055C1 endp



; Attributes: bp-based frame

sub_4055DC proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset unknown_libname_11 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	24h		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_10], ecx
xor	eax, eax
cmp	ecx, eax
mov	[ebp+var_4], eax
jz	short loc_405608
push	[ebp+arg_0]
call	sub_405623

loc_405608:
or	[ebp+var_4], 0FFFFFFFFh
push	eax
mov	ecx, esi
call	sub_429907
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_4055DC endp



; Attributes: bp-based frame

sub_405623 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_442AC0
call	__EH_prolog
push	ecx
push	esi
push	edi
mov	edi, [ebp+arg_0]
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
call	sub_4030F2
mov	al, [edi+0Ch]
and	[ebp+var_4], 0
add	edi, 10h
lea	ecx, [esi+10h]
push	edi
mov	[esi+0Ch], al
call	sub_405666
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_405623 endp



; Attributes: bp-based frame

sub_405666 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_442AD4
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
xor	eax, eax
mov	[ebp+var_10], esi
mov	[esi+4], eax
mov	[esi+8], eax
mov	[esi+0Ch], eax
mov	dword ptr [esi+10h], 8
mov	[ebp+var_4], eax
mov	dword ptr [esi], offset	off_44B9EC
call	sub_428327
push	[ebp+arg_0]
mov	ecx, esi
call	sub_41D70E
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_405666 endp

call	sub_4056BC
jmp	loc_4056DA



sub_4056BC proc	near
xor	eax, eax
push	3
mov	ecx, offset dword_45D8A0
mov	dword_45D8A0, eax
mov	dword_45D8A4, eax
mov	dword_45D8A8, eax
call	sub_403396
retn
sub_4056BC endp


loc_4056DA:
push	offset loc_4056E6
call	_atexit
pop	ecx
retn

loc_4056E6:
push	dword_45D8A0
call	sub_4284D8
pop	ecx
retn
call	sub_4056FD
jmp	loc_40571B



sub_4056FD proc	near
xor	eax, eax
push	3
mov	ecx, offset dword_45D890
mov	dword_45D890, eax
mov	dword_45D894, eax
mov	dword_45D898, eax
call	sub_403396
retn
sub_4056FD endp


loc_40571B:
push	offset loc_405727
call	_atexit
pop	ecx
retn

loc_405727:
push	dword_45D890
call	sub_4284D8
pop	ecx
retn
call	sub_40573E
jmp	loc_405C27



sub_40573E proc	near
mov	ecx, offset dword_45D4C0
jmp	$+5

loc_405748:
mov	eax, offset loc_442B22
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	edi
xor	edi, edi
lea	ecx, [esi+14h]
mov	[ebp-10h], esi
mov	[esi], edi
mov	dword ptr [esi+8], 2
mov	[esi+0Ch], edi
call	sub_405B00
push	2
mov	[ebp-4], edi
lea	eax, [esi+6Ch]
pop	ecx

loc_405779:
mov	dword ptr [eax], offset	off_44B9F4
add	eax, 0Ch
dec	ecx
jnz	short loc_405779
push	offset sub_40D8CA ; void (__thiscall *)(void *)
push	offset loc_4057EE ; int
push	2		; int
lea	eax, [esi+84h]
push	188h		; unsigned int
push	eax		; void *
call	??_L@YGXPAXIHP6EX0@Z1@Z	; `eh vector constructor iterator'(void *,uint,int,void (*)(void *),void (*)(void *))
mov	[esi+398h], edi
mov	[esi+39Ch], edi
mov	[esi+3A4h], edi
lea	ecx, [esi+3A8h]
push	3
mov	byte ptr [ebp-4], 3
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
mov	ecx, [ebp-0Ch]
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_40573E endp

; START	OF FUNCTION CHUNK FOR sub_442B06

loc_4057DD:
mov	eax, [ecx]
test	eax, eax
jz	short locret_4057ED
and	dword ptr [ecx], 0
push	eax		; himl
call	ds:ImageList_Destroy

locret_4057ED:
retn
; END OF FUNCTION CHUNK	FOR sub_442B06

loc_4057EE:
mov	eax, offset loc_442BDE
call	__EH_prolog
push	ecx
push	ecx
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
push	edi
mov	[ebp-10h], esi
mov	[esi+4], ebx
mov	dword ptr [esi], offset	off_44BA5C
lea	edi, [esi+8]
mov	[ebp-4], ebx
mov	ecx, edi
mov	[ebp-14h], edi
call	sub_406ADC
lea	ecx, [edi+14h]
mov	byte ptr [ebp-4], 1
call	sub_406B90
mov	[esi+48h], ebx
mov	[esi+4Ch], ebx
lea	ecx, [esi+54h]
push	4
mov	byte ptr [ebp-4], 2
mov	[esi+50h], ebx
call	sub_402794
mov	edi, offset off_44B510
mov	[esi+54h], edi
mov	[esi+68h], ebx
mov	[esi+74h], ebx
lea	eax, [esi+90h]
mov	[esi+80h], ebx
mov	[esi+88h], ebx
mov	[esi+8Ch], bl
mov	[esi+8Dh], bl
mov	byte ptr [esi+8Eh], 1
mov	[esi+8Fh], bl
mov	[eax+4], ebx
mov	[eax+8], ebx
mov	[eax+0Ch], ebx
mov	dword ptr [eax+10h], 1
mov	dword ptr [eax], offset	off_44BA54
lea	ecx, [esi+0A4h]
mov	byte ptr [ebp-4], 4
call	sub_40283B
push	3
lea	ecx, [esi+0D8h]
pop	eax
mov	dword ptr [esi+0D0h], 12Ch
mov	[esi+0CCh], eax
mov	[esi+0D4h], bl
mov	[esi+0D5h], bl
mov	[esi+0D6h], bl
mov	[esi+0D7h], bl
push	eax
mov	byte ptr [ebp-4], 5
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+0E4h]
push	4
mov	byte ptr [ebp-4], 6
call	sub_402794
mov	dword ptr [esi+0E4h], offset off_44BA4C
mov	[esi+0F8h], ebx
mov	[esi+0FCh], ebx
lea	ecx, [esi+100h]
push	4
mov	byte ptr [ebp-4], 9
call	sub_402794
mov	[esi+100h], edi
mov	byte ptr [ebp-4], 0Ah
lea	ecx, [esi+118h]
mov	[esi+114h], bl
push	3
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	edi, [esi+124h]
mov	byte ptr [ebp-4], 0Bh
mov	ecx, edi
call	sub_40337B
mov	dword ptr [edi], offset	off_44BA44
lea	ecx, [esi+140h]
mov	byte ptr [ebp-4], 0Ch
call	sub_40337B
mov	edi, offset off_44BA3C
mov	[esi+140h], edi
lea	ecx, [esi+154h]
mov	byte ptr [ebp-4], 0Dh
call	sub_40337B
mov	ecx, [ebp-0Ch]
mov	[esi+154h], edi
mov	[esi+170h], ebx
mov	[esi+174h], ebx
mov	[esi+178h], ebx
mov	[esi+17Ch], bl
mov	dword ptr [esi], offset	off_44BA18
mov	eax, esi
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn


; Attributes: thunk

sub_4059B3 proc	near
jmp	sub_429929
sub_4059B3 endp

; START	OF FUNCTION CHUNK FOR sub_442B2C

loc_4059B8:
mov	dword ptr [ecx], offset	off_44BA5C
retn
; END OF FUNCTION CHUNK	FOR sub_442B2C
; [00000005 BYTES: COLLAPSED FUNCTION Concurrency::details::_ContextCallback::operator==(Concurrency::details::_ContextCallback	const &). PRESS	KEYPAD CTRL-"+"	TO EXPAND]



sub_4059C4 proc	near
push	0		; nExitCode
call	ds:PostQuitMessage
retn
sub_4059C4 endp




sub_4059CD proc	near
add	ecx, 4
jmp	sub_40137C
sub_4059CD endp

; [0000001D BYTES: COLLAPSED FUNCTION unknown_libname_2. PRESS KEYPAD CTRL-"+" TO EXPAND]



; int __thiscall sub_4059F2(void *Memory, char)
sub_4059F2 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_40D8CA
test	[esp+4+arg_0], 1
jz	short loc_405A08
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_405A08:
mov	eax, esi
pop	esi
retn	4
sub_4059F2 endp



; Attributes: bp-based frame

sub_405A0E proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442C00
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
lea	edi, [esi+14h]
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44BA88
mov	ecx, edi
mov	byte ptr [ebp+var_4], 1
call	sub_428327
and	byte ptr [ebp+var_4], 0
mov	ecx, edi
call	sub_4282FE
mov	dword ptr [esi], offset	off_44BA80
mov	ecx, esi
mov	[ebp+var_4], 2
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_405A0E endp

; START	OF FUNCTION CHUNK FOR sub_442BC2

loc_405A74:
mov	eax, offset loc_442C14
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp-10h], esi
mov	dword ptr [esi], offset	off_44BA44
and	dword ptr [ebp-4], 0
call	sub_428327
or	dword ptr [ebp-4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp-0Ch]
pop	esi
mov	large fs:0, ecx
leave
retn
; END OF FUNCTION CHUNK	FOR sub_442BC2


; Attributes: bp-based frame

sub_405AAC proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442C28
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44BA90
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_405AAC endp




; int __thiscall sub_405AE4(void *Memory, char)
sub_405AE4 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_405AAC
test	[esp+4+arg_0], 1
jz	short loc_405AFA
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_405AFA:
mov	eax, esi
pop	esi
retn	4
sub_405AE4 endp



; Attributes: bp-based frame

sub_405B00 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442C3C
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
call	sub_405BB4
and	[ebp+var_4], 0
lea	ecx, [esi+2Ch]
call	sub_405BB4
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_405B00 endp

; START	OF FUNCTION CHUNK FOR sub_442AE0

loc_405B31:
mov	eax, offset loc_442C50
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp-10h], esi
and	dword ptr [ebp-4], 0
lea	ecx, [esi+2Ch]
call	sub_405BD9
or	dword ptr [ebp-4], 0FFFFFFFFh
mov	ecx, esi
call	sub_405B66
mov	ecx, [ebp-0Ch]
pop	esi
mov	large fs:0, ecx
leave
retn
; END OF FUNCTION CHUNK	FOR sub_442AE0


; Attributes: bp-based frame

sub_405B66 proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442C6C
call	__EH_prolog
push	ecx
push	ecx
push	esi
push	edi
mov	edi, ecx
mov	[ebp+var_10], edi
and	[ebp+var_4], 0
lea	esi, [edi+18h]
mov	[ebp+var_14], esi
mov	dword ptr [esi], offset	off_44B510
mov	ecx, esi
mov	byte ptr [ebp+var_4], 1
call	sub_428327
and	byte ptr [ebp+var_4], 0
mov	ecx, esi
call	sub_4282FE
push	edi		; lpCriticalSection
call	ds:DeleteCriticalSection
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_405B66 endp




sub_405BB4 proc	near
push	esi
mov	esi, ecx
call	sub_441910
xor	eax, eax
mov	dword ptr [esi+28h], 4
mov	[esi+1Ch], eax
mov	[esi+20h], eax
mov	[esi+24h], eax
mov	dword ptr [esi+18h], offset off_44B510
mov	eax, esi
pop	esi
retn
sub_405BB4 endp



; Attributes: bp-based frame

sub_405BD9 proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442C88
call	__EH_prolog
push	ecx
push	ecx
push	esi
push	edi
mov	edi, ecx
mov	[ebp+var_10], edi
and	[ebp+var_4], 0
lea	esi, [edi+18h]
mov	[ebp+var_14], esi
mov	dword ptr [esi], offset	off_44B510
mov	ecx, esi
mov	byte ptr [ebp+var_4], 1
call	sub_428327
and	byte ptr [ebp+var_4], 0
mov	ecx, esi
call	sub_4282FE
push	edi		; lpCriticalSection
call	ds:DeleteCriticalSection
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_405BD9 endp


loc_405C27:
push	offset loc_405C33
call	_atexit
pop	ecx
retn

loc_405C33:
mov	ecx, offset dword_45D4C0
jmp	$+5

loc_405C3D:
mov	eax, offset loc_442CD0
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp-10h], esi
push	dword ptr [esi+3A8h]
mov	dword ptr [ebp-4], 2
call	sub_4284D8
mov	eax, [esi+3A4h]
pop	ecx
test	eax, eax
jz	short loc_405C71
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_405C71:
mov	ecx, [esi+398h]
lea	eax, [esi+398h]
test	ecx, ecx
jz	short loc_405C8B
and	dword ptr [eax], 0
push	ecx
call	ds:ImageList_Destroy

loc_405C8B:
and	byte ptr [ebp-4], 0
push	offset sub_40D8CA
push	2
lea	eax, [esi+84h]
push	188h
push	eax
call	??_M@YGXPAXIHP6EX0@Z@Z ; `eh vector destructor iterator'(void *,uint,int,void (*)(void *))
add	esi, 14h
mov	[ebp-10h], esi
lea	ecx, [esi+2Ch]
mov	dword ptr [ebp-4], 3
call	sub_405BD9
or	dword ptr [ebp-4], 0FFFFFFFFh
mov	ecx, esi
call	sub_405B66
mov	ecx, [ebp-0Ch]
pop	esi
mov	large fs:0, ecx
leave
retn


; Attributes: bp-based frame

sub_405CD4 proc	near

wndpl= WINDOWPLACEMENT ptr -9Ch
lpWindowName= dword ptr	-70h
var_64=	dword ptr -64h
var_60=	dword ptr -60h
var_5C=	dword ptr -5Ch
var_58=	dword ptr -58h
var_54=	dword ptr -54h
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
nHeight= dword ptr -2Ch
nWidth=	dword ptr -28h
var_24=	dword ptr -24h
hWnd= dword ptr	-20h
var_1C=	dword ptr -1Ch
var_15=	byte ptr -15h
nCmdShow= dword	ptr -14h
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442CE4
call	__EH_prolog
sub	esp, 90h
push	ebx
push	esi
push	edi
mov	edi, ecx
xor	ebx, ebx
mov	[ebp+nCmdShow],	edx
mov	[ebp+hWnd], ebx
mov	hInstance, edi
call	sub_40B56E
mov	edx, 898h
lea	ecx, [ebp+lpWindowName]
push	3000000h
call	sub_40B168
push	1		; lpIconName
push	edi		; hInstance
mov	[ebp+var_4], ebx
mov	[ebp+var_64], ebx
mov	[ebp+var_60], offset sub_406218
mov	[ebp+var_5C], ebx
mov	[ebp+var_58], ebx
mov	[ebp+var_54], edi
call	ds:LoadIconA
mov	[ebp+var_50], eax
push	7F84h		; lpCursorName
push	ebx		; hInstance
call	ds:LoadCursorA
mov	[ebp+var_4C], eax
mov	eax, lpClassName
lea	ecx, [ebp+var_64]
mov	[ebp+var_48], 10h
mov	[ebp+var_44], 67h
mov	[ebp+var_40], eax
call	sub_42E31E
mov	esi, 80000000h
lea	edx, [ebp+var_D]
lea	ecx, [ebp+var_3C]
mov	[ebp+var_D], bl
mov	[ebp+nHeight], esi
mov	[ebp+nWidth], esi
call	sub_420D67
cmp	al, bl
mov	[ebp+var_15], al
jz	short loc_405D8F
mov	eax, [ebp+var_34]
sub	eax, [ebp+var_3C]
mov	[ebp+nWidth], eax
mov	eax, [ebp+var_30]
sub	eax, [ebp+var_38]
mov	[ebp+nHeight], eax

loc_405D8F:
push	offset dword_45D8BC
lea	edx, [ebp+var_24]
lea	ecx, [ebp+var_1C]
call	sub_420F9E
cmp	al, bl
mov	byte_45D8C0, al
jz	short loc_405DC1
push	1
pop	eax
cmp	[ebp+var_1C], eax
jb	short loc_405DB6
cmp	[ebp+var_1C], 2
jbe	short loc_405DB9

loc_405DB6:
mov	[ebp+var_1C], eax

loc_405DB9:
cmp	[ebp+var_24], 2
jb	short loc_405DCB
jmp	short loc_405DC8

loc_405DC1:
mov	[ebp+var_1C], 1

loc_405DC8:
mov	[ebp+var_24], ebx

loc_405DCB:		; lpParam
push	ebx
push	edi		; hInstance
push	ebx		; hMenu
push	ebx		; hWndParent
push	[ebp+nHeight]	; nHeight
mov	eax, [ebp+var_1C]
mov	dword_45D4C8, eax
mov	eax, [ebp+var_24]
push	[ebp+nWidth]	; nWidth
lea	ecx, [ebp+hWnd]
mov	dword_45D4CC, eax
push	esi		; Y
push	esi		; X
push	0CF0000h	; dwStyle
push	[ebp+lpWindowName] ; lpWindowName
push	lpClassName	; lpClassName
call	sub_42E468
test	al, al
jz	loc_405E8E
push	1
pop	eax
cmp	[ebp+nCmdShow],	eax
jz	short loc_405E19
cmp	[ebp+nCmdShow],	5
jz	short loc_405E19
cmp	[ebp+nCmdShow],	0Ah
jnz	short loc_405E2A

loc_405E19:
cmp	[ebp+var_D], bl
jz	short loc_405E27
mov	[ebp+nCmdShow],	3
jmp	short loc_405E30

loc_405E27:
mov	[ebp+nCmdShow],	eax

loc_405E2A:
cmp	[ebp+nCmdShow],	3
jnz	short loc_405E37

loc_405E30:
mov	byte_45D8B6, 1

loc_405E37:
lea	eax, [ebp+wndpl]
mov	[ebp+wndpl.length], 2Ch
push	eax		; lpwndpl
push	[ebp+hWnd]	; hWnd
call	ds:GetWindowPlacement
test	eax, eax
jz	short loc_405E7F
cmp	[ebp+var_15], bl
jz	short loc_405E64
lea	esi, [ebp+var_3C]
lea	edi, [ebp+wndpl.rcNormalPosition]
movsd
movsd
movsd
movsd

loc_405E64:
mov	eax, [ebp+nCmdShow]
mov	[ebp+wndpl.showCmd], eax
lea	eax, [ebp+wndpl]
push	eax		; lpwndpl
push	[ebp+hWnd]	; hWnd
call	ds:SetWindowPlacement
jmp	short loc_405E8B

loc_405E7F:		; nCmdShow
push	[ebp+nCmdShow]
push	[ebp+hWnd]	; hWnd
call	ds:ShowWindow

loc_405E8B:
push	1
pop	ebx

loc_405E8E:		; Memory
push	[ebp+lpWindowName]
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
mov	eax, ebx
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_405CD4 endp



; Attributes: bp-based frame

sub_405EA8 proc	near

VersionInformation= _OSVERSIONINFOA ptr	-94h

push	ebp
mov	ebp, esp
sub	esp, 94h
lea	eax, [ebp+VersionInformation]
mov	[ebp+VersionInformation.dwOSVersionInfoSize], 94h
push	eax		; lpVersionInformation
call	ds:GetVersionExA
test	eax, eax
jz	short loc_405EF2
cmp	[ebp+VersionInformation.dwPlatformId], 2
jnz	short loc_405EF2
cmp	[ebp+VersionInformation.dwMajorVersion], 5
jb	short loc_405EF2
jbe	short loc_405EE4
mov	al, 1
leave
retn

loc_405EE4:
cmp	[ebp+VersionInformation.dwMinorVersion], 1
jb	short loc_405EF2
setnbe	al
leave
retn

loc_405EF2:
xor	al, al
leave
retn
sub_405EA8 endp



; Attributes: bp-based frame

; int __stdcall	WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
_WinMain@16 proc near

Msg= tagMSG ptr	-58h
Memory=	dword ptr -3Ch
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
hInstance= dword ptr  8
hPrevInstance= dword ptr  0Ch
lpCmdLine= dword ptr  10h
nShowCmd= dword	ptr  14h

push	ebp
mov	ebp, esp
sub	esp, 58h
push	ebx
push	esi
call	_IsThisWindowsNT
mov	byte_45D8B4, al
call	nullsub_1
call	ds:InitCommonControls
mov	ecx, offset aComctl32_dll_0 ; "comctl32.dll"
call	sub_406193
cmp	eax, 40047h
mov	dword_45D88C, eax
sbb	al, al
mov	ecx, 0C8h
inc	al
mov	edx, ecx
mov	byte_45B2C0, al
call	sub_42FB0B
neg	al
sbb	al, al
xor	ebx, ebx
inc	al
push	ebx		; pvReserved
mov	byte_45D8B7, al
call	ds:OleInitialize
push	3
lea	ecx, [ebp+var_24]
pop	esi
mov	[ebp+var_24], ebx
push	esi
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
call	sub_403396
push	esi
lea	ecx, [ebp+var_30]
mov	[ebp+var_30], ebx
mov	[ebp+var_2C], ebx
mov	[ebp+var_28], ebx
call	sub_403396
call	ds:GetCommandLineW
push	eax
lea	ecx, [ebp+Memory]
call	sub_403091
lea	eax, [ebp+var_24]
lea	edx, [ebp+var_30]
push	eax
lea	ecx, [ebp+Memory]
call	sub_41F806
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
lea	ecx, [ebp+var_24]
call	sub_406F3F
lea	ecx, [ebp+var_24]
call	sub_406F04
push	esi
lea	ecx, [ebp+var_18]
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_403396
push	esi
lea	ecx, [ebp+var_C]
mov	[ebp+var_C], ebx
mov	[ebp+var_8], ebx
mov	[ebp+var_4], ebx
call	sub_403396
lea	eax, [ebp+var_C]
lea	edx, [ebp+var_18]
push	eax
lea	ecx, [ebp+var_24]
call	sub_41F806
lea	ecx, [ebp+var_18]
call	sub_406F3F
lea	ecx, [ebp+var_18]
call	sub_406F04
lea	ecx, [ebp+var_C]
call	sub_406F3F
lea	ecx, [ebp+var_C]
call	sub_406F04
lea	eax, [ebp+Memory]
push	2
push	eax
lea	ecx, [ebp+var_C]
call	sub_403228
mov	ecx, [eax]
mov	edx, offset aT	; "-t"
call	sub_42828A
push	[ebp+Memory]	; Memory
mov	esi, eax
call	sub_4284D8
cmp	esi, ebx
pop	ecx
jnz	short loc_40604C
lea	eax, [ebp+Memory]
push	2
push	eax
lea	ecx, [ebp+var_C]
call	sub_405246
push	eax
mov	ecx, offset dword_45D890
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_40604C:
cmp	[ebp+var_14], ebx
jz	short loc_40605F
lea	eax, [ebp+var_18]
mov	ecx, offset dword_45D8A0
push	eax
call	sub_40312C

loc_40605F:
call	sub_4061F9
mov	edx, [ebp+nShowCmd]
mov	ecx, [ebp+hInstance]
call	sub_405CD4
test	eax, eax
jz	loc_406132
cmp	byte_45D8B4, bl
push	edi
push	0D1h		; lpTableName
push	[ebp+hInstance]	; hInstance
jz	short loc_4060D5
call	ds:LoadAcceleratorsW
mov	esi, ds:GetMessageW
mov	edi, eax
push	ebx		; wMsgFilterMax
push	ebx		; wMsgFilterMin
lea	eax, [ebp+Msg]
push	ebx		; hWnd
push	eax		; lpMsg

loc_40609D:
call	esi ; GetMessageW
test	eax, eax
jz	short loc_406122
lea	eax, [ebp+Msg]
push	eax		; lpMsg
push	edi		; hAccTable
push	hWnd		; hWnd
call	ds:TranslateAcceleratorW
test	eax, eax
jnz	short loc_4060CC
lea	eax, [ebp+Msg]
push	eax		; lpMsg
call	ds:TranslateMessage
lea	eax, [ebp+Msg]
push	eax		; lpMsg
call	ds:DispatchMessageW

loc_4060CC:		; lpTableName
push	ebx
push	ebx		; hInstance
lea	eax, [ebp+Msg]
push	ebx
push	eax
jmp	short loc_40609D

loc_4060D5:
call	ds:LoadAcceleratorsA
mov	esi, ds:GetMessageA
mov	edi, eax
push	ebx		; wMsgFilterMax
push	ebx		; wMsgFilterMin
lea	eax, [ebp+Msg]
push	ebx		; hWnd
push	eax		; lpMsg

loc_4060EA:
call	esi ; GetMessageA
test	eax, eax
jz	short loc_406122
lea	eax, [ebp+Msg]
push	eax		; lpMsg
push	edi		; hAccTable
push	hWnd		; hWnd
call	ds:TranslateAcceleratorA
test	eax, eax
jnz	short loc_406119
lea	eax, [ebp+Msg]
push	eax		; lpMsg
call	ds:TranslateMessage
lea	eax, [ebp+Msg]
push	eax		; lpMsg
call	ds:DispatchMessageA

loc_406119:
push	ebx
push	ebx
lea	eax, [ebp+Msg]
push	ebx
push	eax
jmp	short loc_4060EA

loc_406122:
mov	hWnd, ebx
call	ds:OleUninitialize
mov	ebx, [ebp+Msg.wParam]
pop	edi

loc_406132:		; Memory
push	[ebp+var_C]
call	sub_4284D8
push	[ebp+var_18]	; Memory
call	sub_4284D8
push	[ebp+var_30]	; Memory
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
add	esp, 10h
mov	eax, ebx
pop	esi
pop	ebx
leave
retn	10h
_WinMain@16 endp

; [00000036 BYTES: COLLAPSED FUNCTION _IsThisWindowsNT.	PRESS KEYPAD CTRL-"+" TO EXPAND]


; Attributes: bp-based frame

; int __fastcall sub_406193(LPCSTR lpLibFileName)
sub_406193 proc	near

Dst= dword ptr -18h
var_14=	word ptr -14h
var_10=	word ptr -10h
hLibModule= dword ptr -4

push	ebp
mov	ebp, esp
sub	esp, 18h
push	ebx
push	ecx		; lpLibFileName
xor	ebx, ebx
call	ds:LoadLibraryA
cmp	eax, ebx
mov	[ebp+hLibModule], eax
jz	short loc_4061F4
push	edi
push	offset aDllgetversion ;	"DllGetVersion"
push	eax		; hModule
call	ds:GetProcAddress
mov	edi, eax
cmp	edi, ebx
jz	short loc_4061EA
push	14h		; Size
lea	eax, [ebp+Dst]
push	ebx		; Val
push	eax		; Dst
call	memset
add	esp, 0Ch
lea	eax, [ebp+Dst]
mov	[ebp+Dst], 14h
push	eax
call	edi
test	eax, eax
jl	short loc_4061EA
movzx	ebx, [ebp+var_14]
movzx	eax, [ebp+var_10]
shl	ebx, 10h
or	ebx, eax

loc_4061EA:		; hLibModule
push	[ebp+hLibModule]
call	ds:FreeLibrary
pop	edi

loc_4061F4:
mov	eax, ebx
pop	ebx
leave
retn
sub_406193 endp




sub_4061F9 proc	near
call	sub_405EA8
test	al, al
jz	short locret_406217
call	sub_42F751
call	sub_41EB0D
test	al, al
jz	short locret_406217
mov	cl, 1
jmp	sub_42C4C5

locret_406217:
retn
sub_4061F9 endp



; Attributes: bp-based frame

; int __stdcall	sub_406218(HWND	hWnd, UINT Msg,	WPARAM wParam, LPARAM lParam)
sub_406218 proc	near

Rect= tagRECT ptr -58h
Memory=	dword ptr -48h
var_3C=	dword ptr -3Ch
var_30=	dword ptr -30h
lpText=	dword ptr -24h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_F= byte ptr	-0Fh
var_E= byte ptr	-0Eh
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4
hWnd= dword ptr	 8
Msg= dword ptr	0Ch
wParam=	dword ptr  10h
lParam=	dword ptr  14h

mov	eax, offset loc_442D10
call	__EH_prolog
sub	esp, 4Ch
mov	ecx, [ebp+Msg]
mov	eax, 111h
push	ebx
push	esi
cmp	ecx, eax
push	edi
ja	loc_406535
jz	loc_4064F4
mov	eax, ecx
dec	eax
jz	loc_406335
dec	eax
jz	loc_4062EE
sub	eax, 3
jz	short loc_406291
dec	eax
dec	eax
jz	short loc_406275
sub	eax, 47h
jnz	loc_4065BC
push	[ebp+lParam]
mov	ecx, offset dword_45D4C0
push	[ebp+wParam]
call	sub_402E8C
jmp	loc_4065BC

loc_406275:
mov	ecx, dword_45D4CC
imul	ecx, 188h
add	ecx, offset unk_45D544
call	sub_40E5C2
jmp	loc_4065BC

loc_406291:
cmp	byte_45D8B8, 0
jz	short loc_4062A9
push	[ebp+hWnd]	; hWnd
mov	ecx, offset dword_45D880
call	sub_40685A
jmp	short loc_4062C3

loc_4062A9:		; int
push	dword_45D8BC
mov	ecx, offset dword_45D880
push	[ebp+hWnd]	; hWnd
call	sub_4067B6
mov	byte_45D8B8, 1

loc_4062C3:
cmp	[ebp+wParam], 2
jz	short loc_4062D8
cmp	[ebp+wParam], 3
jz	short loc_4062D8
and	byte_45D8B6, 0
jmp	short loc_4062DF

loc_4062D8:
mov	byte_45D8B6, 1

loc_4062DF:
mov	ecx, offset dword_45D4C0
call	sub_4069DB
jmp	loc_40651A

loc_4062EE:		; hwnd
push	[ebp+hWnd]
call	ds:RevokeDragDrop
mov	eax, pDropTarget
test	eax, eax
jz	short loc_40630D
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
and	pDropTarget, 0

loc_40630D:
mov	esi, offset dword_45D4C0
mov	ecx, esi
call	sub_4018B3
mov	ecx, esi
call	sub_401A05
mov	ecx, [ebp+hWnd]	; hWnd
call	sub_4068AB
push	0		; nExitCode
call	ds:PostQuitMessage
jmp	loc_4065BC

loc_406335:
mov	ebx, [ebp+hWnd]
cmp	byte_45D8C0, 0
mov	hWnd, ebx
jz	short loc_40635A
push	dword_45D8BC	; int
mov	ecx, offset dword_45D880
push	ebx		; hWnd
call	sub_4067B6
jmp	short loc_40637E

loc_40635A:
mov	eax, dword_45B2C4
push	ebx		; hWnd
cdq
sub	eax, edx
mov	ecx, offset dword_45D880
sar	eax, 1
mov	dword_45D880, eax
call	sub_40685A
mov	eax, nWidth
mov	dword_45D8BC, eax

loc_40637E:
lea	eax, [ebp+Rect]
push	eax		; lpRect
push	ebx		; hWnd
call	ds:GetClientRect
mov	eax, nWidth
mov	ecx, [ebp+Rect.right]
sub	ecx, eax
mov	[ebp+var_18], eax
sub	ecx, 4
mov	[ebp+var_14], ecx
jns	short loc_4063A2
and	[ebp+var_14], 0

loc_4063A2:
mov	esi, offset dword_45D4C0
mov	ecx, esi
call	sub_4065F0
and	[ebp+var_D], 0
cmp	dword_45D8A4, 0
jz	short loc_4063CE
mov	ecx, dword_45D8A0
call	sub_42B5DF
test	al, al
jz	short loc_4063CE
mov	[ebp+var_D], 1

loc_4063CE:
lea	eax, [ebp+var_F]
mov	edi, offset dword_45D8A0
push	eax
lea	eax, [ebp+var_E]
push	eax
lea	eax, [ebp+var_18]
push	eax
push	offset dword_45D890
push	edi
push	ebx
mov	ecx, esi
call	sub_401529
mov	ebx, eax
cmp	ebx, 80004004h
jnz	short loc_4063FF

loc_4063F7:
or	eax, 0FFFFFFFFh
jmp	loc_4065DF

loc_4063FF:
cmp	[ebp+var_D], 0
jz	short loc_40640B
cmp	[ebp+var_E], 0
jz	short loc_406413

loc_40640B:
test	ebx, ebx
jz	loc_4064E0

loc_406413:		; "Error"
mov	esi, offset aError_0
lea	ecx, [ebp+lpText]
push	esi
call	sub_403091
and	[ebp+var_4], 0
cmp	ebx, 1
jz	short loc_406471
test	ebx, ebx
jz	short loc_406471
cmp	ebx, 8007000Eh
jnz	short loc_406458
push	200060Bh
push	69h
pop	edx
lea	ecx, [ebp+var_30]
call	sub_40B168
push	eax
lea	ecx, [ebp+lpText]
mov	byte ptr [ebp+var_4], 3
call	sub_40312C
push	[ebp+var_30]
jmp	short loc_4064BA

loc_406458:
lea	edx, [ebp+lpText]
mov	ecx, ebx
call	sub_429BE4
test	al, al
jnz	short loc_4064C0
push	esi
lea	ecx, [ebp+lpText]
call	sub_404722
jmp	short loc_4064C0

loc_406471:
cmp	[ebp+var_F], 0
push	edi
jz	short loc_40649A
push	200060Ah
push	68h
pop	edx
lea	ecx, [ebp+var_3C]
call	sub_40744B
push	eax
lea	ecx, [ebp+lpText]
mov	byte ptr [ebp+var_4], 1
call	sub_40312C
push	[ebp+var_3C]
jmp	short loc_4064BA

loc_40649A:
push	2000609h
push	67h
pop	edx
lea	ecx, [ebp+Memory]
call	sub_40744B
push	eax
lea	ecx, [ebp+lpText]
mov	byte ptr [ebp+var_4], 2
call	sub_40312C
push	[ebp+Memory]	; Memory

loc_4064BA:
call	sub_4284D8
pop	ecx

loc_4064C0:		; uType
push	10h
push	offset Caption	; "7-zip"
push	[ebp+lpText]	; lpText
push	0		; hWnd
call	ds:MessageBoxW
push	[ebp+lpText]	; Memory
call	sub_4284D8
pop	ecx
jmp	loc_4063F7

loc_4064E0:		; pDropTarget
push	pDropTarget
push	[ebp+hWnd]	; hwnd
call	ds:RegisterDragDrop
jmp	loc_4065BC

loc_4064F4:
cmp	[ebp+lParam], 0
movzx	ecx, word ptr [ebp+wParam]
jz	short loc_40650D
mov	eax, [ebp+wParam]
shr	eax, 10h
test	ax, ax
jnz	loc_4065BC

loc_40650D:
cmp	ecx, 7D0h
jl	short loc_406521
call	sub_4068F8

loc_40651A:
xor	eax, eax
jmp	loc_4065DF

loc_406521:
mov	edx, ecx
mov	ecx, [ebp+hWnd]
call	sub_40C806
test	al, al
jz	loc_4065BC
jmp	short loc_40651A

loc_406535:
mov	eax, ecx
sub	eax, 117h
jz	short loc_4065AC
sub	eax, 0E9h
jz	short loc_406571
dec	eax
jz	short loc_406553
dec	eax
jnz	short loc_4065BC
call	ds:ReleaseCapture
jmp	short loc_4065BC

loc_406553:
movzx	eax, word ptr [ebp+lParam]
push	[ebp+hWnd]	; hWnd
mov	dword_45D878, eax
mov	eax, nWidth
mov	dword_45D874, eax
call	ds:SetCapture
jmp	short loc_4065BC

loc_406571:
test	byte ptr [ebp+wParam], 1
jz	short loc_4065BC
call	ds:GetCapture
cmp	eax, [ebp+hWnd]
jnz	short loc_4065BC
movsx	eax, word ptr [ebp+lParam]
sub	eax, dword_45D878
mov	ecx, offset dword_45D880
add	eax, dword_45D874
push	eax		; int
push	[ebp+hWnd]	; hWnd
call	sub_4067B6
mov	ecx, offset dword_45D4C0
call	sub_4069DB
jmp	short loc_4065BC

loc_4065AC:
movzx	eax, word ptr [ebp+lParam]
mov	edx, [ebp+wParam]
mov	ecx, [ebp+hWnd]
push	eax		; nPos
call	sub_40C01C

loc_4065BC:		; lParam
push	[ebp+lParam]
cmp	byte_45D8B4, 0
push	[ebp+wParam]	; wParam
push	[ebp+Msg]	; Msg
push	[ebp+hWnd]	; hWnd
jz	short loc_4065D9
call	ds:DefWindowProcW
jmp	short loc_4065DF

loc_4065D9:
call	ds:DefWindowProcA

loc_4065DF:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	10h
sub_406218 endp



; Attributes: bp-based frame

sub_4065F0 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset unknown_libname_12 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	esi
push	edi
mov	edi, ecx
push	4Ch		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_10], ecx
xor	eax, eax
cmp	ecx, eax
mov	[ebp+var_4], eax
jz	short loc_40661A
call	sub_406645

loc_40661A:
or	[ebp+var_4], 0FFFFFFFFh
lea	esi, [edi+3A0h]
push	eax
lea	ecx, [edi+3A4h]
mov	[esi], eax
call	sub_43D0DB
mov	eax, [esi]
mov	ecx, [ebp+var_C]
mov	[eax+40h], edi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_4065F0 endp



; Attributes: bp-based frame

sub_406645 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442D46
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
mov	[ebp+var_10], esi
mov	[esi+4], ebx
mov	[esi+8], ebx
mov	[ebp+var_4], ebx
mov	[esi+10h], ebx
mov	[esi+14h], ebx
mov	[esi+18h], ebx
mov	dword ptr [esi+1Ch], 4
mov	dword ptr [esi+0Ch], offset off_44B510
or	dword ptr [esi+20h], 0FFFFFFFFh
or	dword ptr [esi+28h], 0FFFFFFFFh
lea	ecx, [esi+2Ch]
mov	[esi+24h], bl
mov	[esi+25h], bl
push	3
mov	byte ptr [ebp+var_4], 1
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
or	dword ptr [esi+44h], 0FFFFFFFFh
or	dword ptr [esi+48h], 0FFFFFFFFh
mov	ecx, [ebp+var_C]
mov	[esi+38h], ebx
mov	[esi+3Ch], bl
mov	[esi+3Dh], bl
mov	[esi+40h], ebx
mov	dword ptr [esi], offset	off_44BA98
mov	eax, esi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_406645 endp



; Attributes: bp-based frame

; int __stdcall	sub_4066C7(int,	void *Buf1, int)
sub_4066C7 proc	near

arg_0= dword ptr  8
Buf1= dword ptr	 0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
push	10h		; Size
push	offset unk_44CCB8 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jz	short loc_4066F6
push	10h		; Size
push	offset unk_44CCC8 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_406708

loc_4066F6:
mov	ecx, [ebp+arg_8]
mov	eax, [ebp+arg_0]
push	eax
mov	[ecx], eax
mov	ecx, [eax]
call	dword ptr [ecx+4]
xor	eax, eax
jmp	short loc_40670D

loc_406708:
mov	eax, 80004002h

loc_40670D:
pop	ebp
retn	0Ch
sub_4066C7 endp




sub_406711 proc	near

arg_0= dword ptr  4

mov	eax, [esp+arg_0]
push	esi
lea	esi, [eax+4]
push	esi		; lpAddend
call	ds:InterlockedIncrement
mov	eax, [esi]
pop	esi
retn	4
sub_406711 endp




; int __stdcall	sub_406726(void	*Memory)
sub_406726 proc	near

Memory=	dword ptr  4

push	esi
push	edi
mov	edi, [esp+8+Memory]
lea	esi, [edi+4]
push	esi		; lpAddend
call	ds:InterlockedDecrement
mov	eax, [esi]
test	eax, eax
jnz	short loc_406750
test	edi, edi
jz	short loc_40674E
mov	ecx, edi
call	sub_406755
push	edi		; Memory
call	sub_4284D8
pop	ecx

loc_40674E:
xor	eax, eax

loc_406750:
pop	edi
pop	esi
retn	4
sub_406726 endp



; Attributes: bp-based frame

sub_406755 proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442D63
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
push	dword ptr [esi+2Ch] ; Memory
and	[ebp+var_4], 0
call	sub_4284D8
lea	edi, [esi+0Ch]
pop	ecx
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44B510
mov	ecx, edi
mov	byte ptr [ebp+var_4], 1
call	sub_428327
and	byte ptr [ebp+var_4], 0
mov	ecx, edi
call	sub_4282FE
mov	esi, [esi+8]
or	[ebp+var_4], 0FFFFFFFFh
test	esi, esi
jz	short loc_4067A8
mov	eax, [esi]
push	esi
call	dword ptr [eax+8]

loc_4067A8:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_406755 endp



; Attributes: bp-based frame

; int __stdcall	sub_4067B6(HWND	hWnd, int)
sub_4067B6 proc	near

Rect= tagRECT ptr -10h
hWnd= dword ptr	 8
arg_4= dword ptr  0Ch

push	ebp
mov	ebp, esp
sub	esp, 10h
push	esi
mov	esi, ds:GetClientRect
lea	eax, [ebp+Rect]
push	edi
push	eax		; lpRect
mov	edi, ecx
push	[ebp+hWnd]	; hWnd
call	esi ; GetClientRect
push	[ebp+arg_4]	; int
mov	eax, [ebp+Rect.right]
mov	ecx, edi
mov	[edi+8], eax
push	[ebp+hWnd]	; hWnd
call	sub_40680D
lea	eax, [ebp+Rect]
push	eax		; lpRect
push	[ebp+hWnd]	; hWnd
call	esi ; GetClientRect
mov	ecx, [ebp+Rect.right]
cmp	ecx, 1
jg	short loc_4067F6
push	1
pop	ecx

loc_4067F6:
mov	eax, [edi+4]
inc	eax
inc	eax
imul	eax, dword_45B2C4
cdq
idiv	ecx
mov	[edi], eax
pop	edi
pop	esi
leave
retn	8
sub_4067B6 endp



; Attributes: bp-based frame

; int __stdcall	sub_40680D(HWND	hWnd, int)
sub_40680D proc	near

Rect= tagRECT ptr -10h
hWnd= dword ptr	 8
arg_4= dword ptr  0Ch

push	ebp
mov	ebp, esp
sub	esp, 10h
lea	eax, [ebp+Rect]
push	esi
push	eax		; lpRect
mov	esi, ecx
push	[ebp+hWnd]	; hWnd
call	ds:GetClientRect
mov	ecx, dword_45B2C8
mov	eax, [ebp+Rect.right]
add	eax, 0FFFFFFFCh
lea	edx, [ecx+ecx]
cmp	eax, edx
jge	short loc_40683D
cdq
sub	eax, edx
sar	eax, 1
jmp	short loc_406852

loc_40683D:
mov	edx, eax
mov	eax, [ebp+arg_4]
sub	edx, ecx
cmp	eax, edx
jle	short loc_40684C
mov	eax, edx
jmp	short loc_406852

loc_40684C:
cmp	eax, ecx
jge	short loc_406852
mov	eax, ecx

loc_406852:
mov	[esi+4], eax
pop	esi
leave
retn	8
sub_40680D endp



; Attributes: bp-based frame

; int __stdcall	sub_40685A(HWND	hWnd)
sub_40685A proc	near

Rect= tagRECT ptr -10h
hWnd= dword ptr	 8

push	ebp
mov	ebp, esp
sub	esp, 10h
push	esi
lea	eax, [ebp+Rect]
push	edi
mov	edi, ds:GetClientRect
push	eax		; lpRect
mov	esi, ecx
push	[ebp+hWnd]	; hWnd
call	edi ; GetClientRect
mov	eax, [ebp+Rect.right]
cmp	[esi+8], eax
jz	short loc_4068A5
test	eax, eax
jz	short loc_4068A5
mov	[esi+8], eax
lea	eax, [ebp+Rect]
push	eax		; lpRect
push	[ebp+hWnd]	; hWnd
call	edi ; GetClientRect
mov	eax, [esi]
mov	ecx, esi
imul	eax, [ebp+Rect.right]
cdq
idiv	dword_45B2C4
dec	eax
dec	eax
push	eax		; int
push	[ebp+hWnd]	; hWnd
call	sub_40680D

loc_4068A5:
pop	edi
pop	esi
leave
retn	4
sub_40685A endp



; Attributes: bp-based frame

; int __fastcall sub_4068AB(HWND hWnd)
sub_4068AB proc	near

wndpl= WINDOWPLACEMENT ptr -2Ch

push	ebp
mov	ebp, esp
sub	esp, 2Ch
push	esi
lea	eax, [ebp+wndpl]
mov	esi, ecx
push	eax		; lpwndpl
push	esi		; hWnd
mov	[ebp+wndpl.length], 2Ch
call	ds:GetWindowPlacement
test	eax, eax
jz	short loc_4068F5
push	esi		; hWnd
call	ds:IsZoomed
test	eax, eax
setnz	dl
lea	ecx, [ebp+wndpl.rcNormalPosition]
call	sub_420C2D
mov	edx, dword_45D4CC
mov	ecx, dword_45D4C8
push	nWidth
call	sub_420E83

loc_4068F5:
pop	esi
leave
retn
sub_4068AB endp



; Attributes: bp-based frame

sub_4068F8 proc	near

var_1C=	byte ptr -1Ch
var_1B=	byte ptr -1Bh
var_18=	dword ptr -18h
var_14=	byte ptr -14h
var_13=	byte ptr -13h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442D80
call	__EH_prolog
sub	esp, 10h
mov	al, byte_45D6C9
push	ebx
mov	bl, byte_45D6C8
mov	[ebp+var_1B], al
xor	eax, eax
push	esi
mov	esi, ecx
mov	[ebp+var_18], offset unk_45D544
mov	[ebp+var_1C], bl
mov	byte_45D6C8, al
mov	byte_45D6C9, al
mov	cl, byte_45D850
mov	[ebp+var_4], eax
mov	[ebp+var_14], cl
mov	cl, byte_45D851
mov	[ebp+var_10], offset unk_45D6CC
mov	[ebp+var_13], cl
mov	byte_45D850, al
mov	byte_45D851, al
mov	eax, esi
mov	byte ptr [ebp+var_4], 1
sub	eax, 7D0h
jz	short loc_406998
dec	eax
jz	short loc_40697F
dec	eax
jnz	short loc_4069AF
mov	ecx, dword_45D4CC
imul	ecx, 188h
add	ecx, offset unk_45D544
call	sub_40EF7C
jmp	short loc_4069AF

loc_40697F:
mov	ecx, dword_45D4CC
imul	ecx, 188h
add	ecx, offset unk_45D544
call	sub_40EBB3
jmp	short loc_4069AF

loc_406998:
mov	ecx, dword_45D4CC
imul	ecx, 188h
add	ecx, offset unk_45D544
call	sub_40E943

loc_4069AF:
mov	al, [ebp+var_14]
mov	ecx, [ebp+var_C]
mov	byte_45D850, al
mov	al, [ebp+var_13]
mov	byte_45D851, al
mov	al, [ebp+var_1B]
mov	byte_45D6C8, bl
pop	esi
mov	byte_45D6C9, al
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_4068F8 endp



; Attributes: bp-based frame

sub_4069DB proc	near

Rect= tagRECT ptr -18h
nHeight= dword ptr -8
Y= dword ptr -4

push	ebp
mov	ebp, esp
sub	esp, 18h
push	ebx
push	esi
mov	esi, ecx
push	edi
mov	eax, [esi]
test	eax, eax
jz	loc_406AA2
lea	ecx, [ebp+Rect]
push	ecx		; lpRect
push	eax		; hWnd
call	ds:GetClientRect
mov	ebx, [ebp+Rect.right]
test	ebx, ebx
jz	loc_406AA2
mov	eax, [esi+39Ch]
and	[ebp+Y], 0
lea	edi, [esi+39Ch]
xor	ecx, ecx
cmp	eax, ecx
jz	short loc_406A36
push	ecx		; lParam
push	ecx		; wParam
push	421h		; Msg
push	eax		; hWnd
call	ds:SendMessageA
mov	ecx, edi
call	sub_406AA7
mov	[ebp+Y], eax
xor	ecx, ecx

loc_406A36:
mov	eax, [ebp+Rect.bottom]
sub	eax, [ebp+Y]
cmp	eax, ecx
mov	[ebp+nHeight], eax
jg	short loc_406A46
mov	[ebp+nHeight], ecx

loc_406A46:
cmp	dword ptr [esi+8], 1
push	1		; bRepaint
push	[ebp+nHeight]	; nHeight
jle	short loc_406A87
push	nWidth		; nWidth
mov	edi, ds:MoveWindow
push	[ebp+Y]		; Y
push	ecx		; X
push	dword ptr [esi+88h] ; hWnd
call	edi ; MoveWindow
mov	eax, nWidth
push	1		; bRepaint
push	[ebp+nHeight]	; nHeight
add	eax, 4
sub	ebx, eax
push	ebx		; nWidth
push	[ebp+Y]		; Y
push	eax		; X
push	dword ptr [esi+210h] ; hWnd
call	edi ; MoveWindow
jmp	short loc_406AA2

loc_406A87:
mov	eax, [esi+0Ch]
push	ebx		; nWidth
push	[ebp+Y]		; Y
imul	eax, 188h
push	ecx		; X
push	dword ptr [eax+esi+88h]	; hWnd
call	ds:MoveWindow

loc_406AA2:
pop	edi
pop	esi
pop	ebx
leave
retn
sub_4069DB endp



; Attributes: bp-based frame

sub_406AA7 proc	near

wndpl= WINDOWPLACEMENT ptr -3Ch
Rect= tagRECT ptr -10h

push	ebp
mov	ebp, esp
sub	esp, 3Ch
push	esi
push	edi
lea	eax, [ebp+Rect]
mov	edi, ecx
push	eax		; lpRect
push	dword ptr [edi]	; hWnd
call	ds:GetWindowRect
mov	esi, [ebp+Rect.bottom]
lea	eax, [ebp+wndpl]
sub	esi, [ebp+Rect.top]
push	eax		; lpwndpl
push	dword ptr [edi]	; hWnd
call	ds:GetWindowPlacement
test	eax, eax
jz	short loc_406AD6
add	esi, [ebp+wndpl.rcNormalPosition.top]

loc_406AD6:
mov	eax, esi
pop	edi
pop	esi
leave
retn
sub_406AA7 endp




sub_406ADC proc	near
mov	eax, ecx
xor	ecx, ecx
mov	[eax+4], ecx
mov	[eax+8], ecx
mov	[eax+0Ch], ecx
mov	dword ptr [eax+10h], 4
mov	dword ptr [eax], offset	off_44BA80
retn
sub_406ADC endp



; Attributes: bp-based frame

sub_406AF7 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442D94
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44BA80
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_406AF7 endp



; Attributes: bp-based frame

sub_406B2F proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ebx
mov	ebx, ecx
mov	ecx, [ebp+arg_4]
push	edi
mov	edi, [ebp+arg_0]
mov	eax, [ebx+8]
add	ecx, edi
cmp	ecx, eax
jle	short loc_406B4B
sub	eax, edi
mov	[ebp+arg_4], eax

loc_406B4B:
mov	eax, [ebp+arg_4]
test	eax, eax
jle	short loc_406B7F
push	esi
mov	esi, edi
shl	esi, 2
mov	[ebp+arg_0], eax

loc_406B5B:
mov	eax, [ebx+0Ch]
mov	ecx, [eax+esi]
test	ecx, ecx
mov	[ebp+Memory], ecx
jz	short loc_406B76
call	sub_406E56
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_406B76:
add	esi, 4
dec	[ebp+arg_0]
jnz	short loc_406B5B
pop	esi

loc_406B7F:
push	[ebp+arg_4]
mov	ecx, ebx
push	edi
call	sub_42847F
pop	edi
pop	ebx
leave
retn	8
sub_406B2F endp




sub_406B90 proc	near
mov	eax, ecx
xor	ecx, ecx
mov	[eax+4], ecx
mov	[eax+8], ecx
mov	[eax+0Ch], ecx
mov	dword ptr [eax+10h], 4
mov	dword ptr [eax], offset	off_44BA88
retn
sub_406B90 endp



; Attributes: bp-based frame

sub_406BAB proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ebx
mov	ebx, ecx
mov	ecx, [ebp+arg_4]
push	edi
mov	edi, [ebp+arg_0]
mov	eax, [ebx+8]
add	ecx, edi
cmp	ecx, eax
jle	short loc_406BC7
sub	eax, edi
mov	[ebp+arg_4], eax

loc_406BC7:
mov	eax, [ebp+arg_4]
test	eax, eax
jle	short loc_406BFB
push	esi
mov	esi, edi
shl	esi, 2
mov	[ebp+arg_0], eax

loc_406BD7:
mov	eax, [ebx+0Ch]
mov	ecx, [eax+esi]
test	ecx, ecx
mov	[ebp+Memory], ecx
jz	short loc_406BF2
call	sub_406E6C
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_406BF2:
add	esi, 4
dec	[ebp+arg_0]
jnz	short loc_406BD7
pop	esi

loc_406BFB:
push	[ebp+arg_4]
mov	ecx, ebx
push	edi
call	sub_42847F
pop	edi
pop	ebx
leave
retn	8
sub_406BAB endp



; Attributes: bp-based frame

sub_406C0C proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ebx
mov	ebx, ecx
mov	ecx, [ebp+arg_4]
push	edi
mov	edi, [ebp+arg_0]
mov	eax, [ebx+8]
add	ecx, edi
cmp	ecx, eax
jle	short loc_406C28
sub	eax, edi
mov	[ebp+arg_4], eax

loc_406C28:
mov	eax, [ebp+arg_4]
test	eax, eax
jle	short loc_406C5C
push	esi
mov	esi, edi
shl	esi, 2
mov	[ebp+arg_0], eax

loc_406C38:
mov	eax, [ebx+0Ch]
mov	ecx, [eax+esi]	; void *
test	ecx, ecx
mov	[ebp+Memory], ecx
jz	short loc_406C53
call	sub_406E76
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_406C53:
add	esi, 4
dec	[ebp+arg_0]
jnz	short loc_406C38
pop	esi

loc_406C5C:
push	[ebp+arg_4]
mov	ecx, ebx
push	edi
call	sub_42847F
pop	edi
pop	ebx
leave
retn	8
sub_406C0C endp



; Attributes: bp-based frame

sub_406C6D proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442DA8
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44BA4C
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_406C6D endp



; Attributes: bp-based frame

sub_406CA5 proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ebx
mov	ebx, ecx
mov	ecx, [ebp+arg_4]
push	edi
mov	edi, [ebp+arg_0]
mov	eax, [ebx+8]
add	ecx, edi
cmp	ecx, eax
jle	short loc_406CC1
sub	eax, edi
mov	[ebp+arg_4], eax

loc_406CC1:
mov	eax, [ebp+arg_4]
test	eax, eax
jle	short loc_406CF5
push	esi
mov	esi, edi
shl	esi, 2
mov	[ebp+arg_0], eax

loc_406CD1:
mov	eax, [ebx+0Ch]
mov	ecx, [eax+esi]
test	ecx, ecx
mov	[ebp+Memory], ecx
jz	short loc_406CEC
call	sub_406E7F
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_406CEC:
add	esi, 4
dec	[ebp+arg_0]
jnz	short loc_406CD1
pop	esi

loc_406CF5:
push	[ebp+arg_4]
mov	ecx, ebx
push	edi
call	sub_42847F
pop	edi
pop	ebx
leave
retn	8
sub_406CA5 endp




; int __thiscall sub_406D06(void *Memory, char)
sub_406D06 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_406D22
test	[esp+4+arg_0], 1
jz	short loc_406D1C
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_406D1C:
mov	eax, esi
pop	esi
retn	4
sub_406D06 endp



; Attributes: bp-based frame

sub_406D22 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442DBC
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44BA44
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_406D22 endp




; int __thiscall sub_406D5A(void *Memory, char)
sub_406D5A proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_406AF7
test	[esp+4+arg_0], 1
jz	short loc_406D70
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_406D70:
mov	eax, esi
pop	esi
retn	4
sub_406D5A endp




; int __thiscall sub_406D76(void *Memory, char)
sub_406D76 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_406D92
test	[esp+4+arg_0], 1
jz	short loc_406D8C
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_406D8C:
mov	eax, esi
pop	esi
retn	4
sub_406D76 endp



; Attributes: bp-based frame

sub_406D92 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442DD0
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44BA88
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_406D92 endp




; int __thiscall sub_406DCA(void *Memory, char)
sub_406DCA proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_406DE6
test	[esp+4+arg_0], 1
jz	short loc_406DE0
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_406DE0:
mov	eax, esi
pop	esi
retn	4
sub_406DCA endp



; Attributes: bp-based frame

sub_406DE6 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442DE4
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44BA90
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_406DE6 endp




; int __thiscall sub_406E1E(void *Memory, char)
sub_406E1E proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_4302FB
test	[esp+4+arg_0], 1
jz	short loc_406E34
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_406E34:
mov	eax, esi
pop	esi
retn	4
sub_406E1E endp




; int __thiscall sub_406E3A(void *Memory, char)
sub_406E3A proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_406C6D
test	[esp+4+arg_0], 1
jz	short loc_406E50
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_406E50:
mov	eax, esi
pop	esi
retn	4
sub_406E3A endp




sub_406E56 proc	near
push	esi
mov	esi, ecx
push	dword ptr [esi+10h] ; Memory
call	sub_4284D8
push	dword ptr [esi]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx
pop	esi
retn
sub_406E56 endp




sub_406E6C proc	near
push	dword ptr [ecx+8] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_406E6C endp




; void __thiscall sub_406E76(void *)
sub_406E76 proc	near
push	dword ptr [ecx]	; Memory
call	sub_4284D8
pop	ecx
retn
sub_406E76 endp



; Attributes: bp-based frame

sub_406E7F proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442E03
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
push	dword ptr [esi+84h] ; Memory
mov	[ebp+var_4], 1
call	sub_4284D8
push	dword ptr [esi+74h] ; Memory
call	sub_4284D8
mov	eax, [esi+6Ch]
pop	ecx
test	eax, eax
pop	ecx
jz	short loc_406EB9
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_406EB9:
and	byte ptr [ebp+var_4], 0
lea	ecx, [esi+68h]
call	sub_429929
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_406EDD
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_406E7F endp




sub_406EDD proc	near
push	esi
mov	esi, ecx
push	dword ptr [esi+50h] ; Memory
call	sub_4284D8
push	dword ptr [esi+18h] ; Memory
call	sub_4284D8
push	dword ptr [esi+0Ch] ; Memory
call	sub_4284D8
push	dword ptr [esi]	; Memory
call	sub_4284D8
add	esp, 10h
pop	esi
retn
sub_406EDD endp



; Attributes: bp-based frame

sub_406F04 proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442E18
call	__EH_prolog
sub	esp, 0Ch
lea	eax, [ebp+Memory]
push	esi
mov	esi, ecx
push	eax
call	sub_406FFD
and	[ebp+var_4], 0
push	eax
mov	ecx, esi
call	sub_406F7A
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
pop	esi
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn
sub_406F04 endp



; Attributes: bp-based frame

sub_406F3F proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442E2C
call	__EH_prolog
sub	esp, 0Ch
lea	eax, [ebp+Memory]
push	esi
mov	esi, ecx
push	eax
call	sub_406FFD
and	[ebp+var_4], 0
push	eax
mov	ecx, esi
call	sub_406FAE
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
pop	esi
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn
sub_406F3F endp




sub_406F7A proc	near

arg_0= dword ptr  4

push	esi
push	edi
mov	edi, ecx
mov	esi, [edi]

loc_406F80:
mov	ax, [esi]
mov	ecx, [esp+8+arg_0]
push	eax
call	sub_40706B
test	eax, eax
jl	short loc_406F9B
cmp	word ptr [esi],	0
jz	short loc_406F9B
inc	esi
inc	esi
jmp	short loc_406F80

loc_406F9B:
sub	esi, [edi]
mov	ecx, edi
sar	esi, 1
push	esi
push	0
call	sub_40708E
pop	edi
pop	esi
retn	4
sub_406F7A endp




sub_406FAE proc	near

arg_0= dword ptr  4

push	ebx
mov	ebx, ecx
push	esi
push	edi
mov	edi, [ebx]
xor	esi, esi
mov	ax, [edi]
test	ax, ax
jz	short loc_406FF7

loc_406FBF:
mov	ecx, [esp+0Ch+arg_0]
push	eax
call	sub_40706B
test	eax, eax
jl	short loc_406FD5
test	esi, esi
jnz	short loc_406FD7
mov	esi, edi
jmp	short loc_406FD7

loc_406FD5:
xor	esi, esi

loc_406FD7:
inc	edi
inc	edi
mov	ax, [edi]
test	ax, ax
jnz	short loc_406FBF
test	esi, esi
jz	short loc_406FF7
sub	esi, [ebx]
mov	eax, [ebx+4]
mov	ecx, ebx
sar	esi, 1
sub	eax, esi
push	eax
push	esi
call	sub_40708E

loc_406FF7:
pop	edi
pop	esi
pop	ebx
retn	4
sub_406FAE endp



; Attributes: bp-based frame

sub_406FFD proc	near

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

mov	eax, offset loc_442E40
call	__EH_prolog
sub	esp, 10h
push	esi
xor	esi, esi
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+var_10], esi
mov	[ebp+Memory], esi
mov	[ebp+var_18], esi
mov	[ebp+var_14], esi
call	sub_403396
push	20h
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], esi
call	sub_40316A
push	0Ah
lea	ecx, [ebp+Memory]
call	sub_40316A
push	9
lea	ecx, [ebp+Memory]
call	sub_40316A
mov	ecx, [ebp+arg_0]
lea	eax, [ebp+Memory]
push	eax
call	sub_4030F2
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+arg_0]
pop	ecx
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_406FFD endp




sub_40706B proc	near

arg_0= word ptr	 4

mov	edx, [ecx]
mov	eax, edx

loc_40706F:
mov	cx, [eax]
cmp	cx, [esp+arg_0]
jz	short loc_407082
test	cx, cx
jz	short loc_407088
inc	eax
inc	eax
jmp	short loc_40706F

loc_407082:
sub	eax, edx
sar	eax, 1
jmp	short locret_40708B

loc_407088:
or	eax, 0FFFFFFFFh

locret_40708B:
retn	4
sub_40706B endp




sub_40708E proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	ebx
push	esi
mov	esi, [esp+8+arg_4]
push	edi
mov	edi, ecx
mov	ecx, [esp+0Ch+arg_0]
mov	ebx, [edi+4]
lea	eax, [ecx+esi]
cmp	eax, ebx
jle	short loc_4070A9
mov	esi, ebx
sub	esi, ecx

loc_4070A9:
test	esi, esi
jle	short loc_4070D6
lea	edx, [ecx+esi]
mov	eax, [edi]
imul	edx, 7FFFFFFFh
add	edx, ebx
lea	edx, [edx+edx+2]
push	edx		; Size
lea	edx, [ecx+esi]
lea	edx, [eax+edx*2]
lea	eax, [eax+ecx*2]
push	edx		; Src
push	eax		; Dst
call	ds:memmove
add	esp, 0Ch
sub	[edi+4], esi

loc_4070D6:
mov	eax, [edi+4]
pop	edi
pop	esi
pop	ebx
retn	8
sub_40708E endp




sub_4070DF proc	near
push	ebx
push	esi
mov	esi, ecx
push	edi
mov	eax, esi
push	5
neg	eax
lea	edi, [esi+4]
mov	edx, offset unk_45B310
sbb	eax, eax
and	eax, edi
mov	ecx, [eax]
call	sub_40B00D
lea	ebx, [esi+8]
mov	ecx, ebx
call	sub_438795
xor	eax, eax
cmp	[esi+18h], al
setnz	al
push	eax		; uCheck
push	3F9h		; nIDButton
push	dword ptr [edi]	; hDlg
call	ds:CheckDlgButton
mov	eax, [ebx]
push	ds:nIDFirstButton[eax*4] ; nIDCheckButton
push	ds:nIDLastButton ; nIDLastButton
push	ds:nIDFirstButton ; nIDFirstButton
push	dword ptr [edi]	; hDlg
call	ds:CheckRadioButton
mov	ebx, ds:GetDlgItem
mov	eax, 3F6h
push	eax		; nIDDlgItem
mov	[esi+20h], eax
push	dword ptr [edi]	; hDlg
call	ebx ; GetDlgItem
mov	[esi+1Ch], eax
mov	eax, 3F7h
push	eax		; nIDDlgItem
mov	[esi+28h], eax
push	dword ptr [edi]	; hDlg
call	ebx ; GetDlgItem
mov	[esi+24h], eax
mov	edx, [esi+0Ch]
mov	ecx, [esi+1Ch]
call	sub_42E6BD
mov	ecx, esi
call	sub_4071BD
pop	edi
pop	esi
mov	al, 1
pop	ebx
retn
sub_4070DF endp



; Attributes: bp-based frame

sub_407178 proc	near

var_4= dword ptr -4

push	ebp
mov	ebp, esp
push	ecx
push	ebx
push	esi
push	edi
mov	edi, ecx
xor	ebx, ebx
mov	esi, offset nIDFirstButton

loc_407188:		; nIDButton
push	dword ptr [esi]
push	dword ptr [edi+4] ; hDlg
call	ds:IsDlgButtonChecked
cmp	eax, 1
jz	short loc_4071B6
add	esi, 4
inc	ebx
cmp	esi, offset off_44BAC0
jl	short loc_407188
and	[ebp+var_4], 0
lea	eax, [ebp+var_4]
push	offset unk_44D120
push	eax
call	_CxxThrowException

loc_4071B6:
pop	edi
mov	eax, ebx
pop	esi
pop	ebx
leave
retn
sub_407178 endp




sub_4071BD proc	near
push	ebx
push	esi
push	edi
mov	esi, ecx
call	sub_407178
cmp	eax, 2
mov	edi, ds:EnableWindow
setz	al
xor	ebx, ebx
test	al, al
setnz	bl
push	ebx		; bEnable
push	dword ptr [esi+1Ch] ; hWnd
call	edi ; EnableWindow
push	ebx		; bEnable
push	dword ptr [esi+24h] ; hWnd
call	edi ; EnableWindow
pop	edi
pop	esi
pop	ebx
retn
sub_4071BD endp




sub_4071EA proc	near

arg_0= dword ptr  4

push	esi
push	edi
mov	edi, [esp+8+arg_0]
mov	esi, ecx
lea	eax, [edi+4]
lea	ecx, [esi+1Ch]
push	eax
call	sub_42E799
push	3F9h		; nIDButton
push	dword ptr [esi+4] ; hDlg
call	ds:IsDlgButtonChecked
dec	eax
mov	ecx, esi
neg	eax
sbb	al, al
inc	al
mov	[edi+10h], al
call	sub_407178
mov	[edi], eax
pop	edi
pop	esi
retn	4
sub_4071EA endp



; Attributes: thunk

sub_407224 proc	near
jmp	$+5
sub_407224 endp




sub_407229 proc	near
lea	eax, [ecx+4]
push	esi
neg	ecx
push	dword ptr [eax]	; hWnd
sbb	ecx, ecx
and	ecx, eax
mov	esi, [ecx]
call	ds:GetParent
push	0		; lParam
push	esi		; wParam
push	468h		; Msg
push	eax		; hWnd
call	ds:SendMessageA
pop	esi
retn
sub_407229 endp




sub_40724E proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	esi
mov	esi, ecx
mov	ecx, [esp+4+arg_0]
mov	eax, offset nIDFirstButton

loc_40725A:
cmp	ecx, [eax]
jz	short loc_407283
add	eax, 4
cmp	eax, offset off_44BAC0
jl	short loc_40725A
mov	eax, ecx
sub	eax, 3F7h
jz	short loc_40728C
dec	eax
dec	eax
jz	short loc_407293
push	[esp+4+arg_4]
push	ecx
mov	ecx, esi
call	sub_42FAE0
jmp	short loc_40729C

loc_407283:
mov	ecx, esi
call	sub_4071BD
jmp	short loc_407293

loc_40728C:
mov	ecx, esi
call	sub_4072D0

loc_407293:
mov	ecx, esi
call	sub_407224
mov	al, 1

loc_40729C:
pop	esi
retn	8
sub_40724E endp



; Attributes: bp-based frame

sub_4072A0 proc	near

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

push	ebp
mov	ebp, esp
cmp	[ebp+arg_0], 300h
jnz	short loc_4072BE
cmp	[ebp+arg_4], 3F6h
jnz	short loc_4072BE
call	sub_407224
mov	al, 1
jmp	short loc_4072CC

loc_4072BE:
push	[ebp+arg_8]
push	[ebp+arg_4]
push	[ebp+arg_0]
call	sub_42FAC5

loc_4072CC:
pop	ebp
retn	0Ch
sub_4072A0 endp



; Attributes: bp-based frame

sub_4072D0 proc	near

var_30=	dword ptr -30h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
Memory=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442E64
call	__EH_prolog
sub	esp, 24h
push	ebx
push	esi
push	edi
mov	esi, ecx
xor	edi, edi
push	3
lea	ecx, [ebp+var_24]
mov	[ebp+var_24], edi
mov	[ebp+var_20], edi
mov	[ebp+var_1C], edi
call	sub_403396
lea	ebx, [esi+1Ch]
lea	eax, [ebp+var_24]
push	eax
mov	ecx, ebx
mov	[ebp+var_4], edi
call	sub_42E799
push	1000281h
mov	edx, 36Dh
lea	ecx, [ebp+var_30]
call	sub_40B168
push	3
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
mov	[ebp+Memory], edi
mov	[ebp+var_14], edi
mov	[ebp+var_10], edi
call	sub_403396
mov	eax, esi
add	esi, 4
neg	eax
sbb	eax, eax
mov	edx, [ebp+var_30]
and	eax, esi
mov	byte ptr [ebp+var_4], 2
mov	ecx, [eax]
lea	eax, [ebp+Memory]
push	eax
push	[ebp+var_24]
call	sub_42E0C7
test	al, al
jz	short loc_40735F
mov	edx, [ebp+Memory]
mov	ecx, [ebx]
call	sub_42E6BD

loc_40735F:		; Memory
push	[ebp+Memory]
call	sub_4284D8
push	[ebp+var_30]	; Memory
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
mov	ecx, [ebp+var_C]
add	esp, 0Ch
mov	large fs:0, ecx
pop	edi
pop	esi
pop	ebx
leave
retn
sub_4072D0 endp




sub_407389 proc	near
push	esi
lea	esi, [ecx+8]
push	esi
call	sub_4071EA
mov	ecx, esi
call	sub_438708
xor	eax, eax
pop	esi
retn
sub_407389 endp




sub_40739E proc	near
mov	edx, off_45B338
xor	ecx, ecx
jmp	sub_40AD1B
sub_40739E endp



; Attributes: bp-based frame

sub_4073AB proc	near

var_44=	byte ptr -44h
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

push	ebp
mov	ebp, esp
sub	esp, 44h
and	[ebp+var_4], 0
push	esi
push	[ebp+arg_4]
mov	esi, ecx
lea	ecx, [ebp+var_44]
push	[ebp+arg_0]
call	sub_427B10
lea	eax, [ebp+var_44]
mov	ecx, esi
push	eax
call	sub_403091
mov	eax, esi
pop	esi
leave
retn	8
sub_4073AB endp



; Attributes: bp-based frame

sub_4073D8 proc	near

Memory=	dword ptr -28h
var_1C=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_442E80
call	__EH_prolog
sub	esp, 1Ch
and	[ebp+var_10], 0
push	esi
mov	esi, ecx
push	edx
lea	ecx, [ebp+var_1C]
call	sub_4030F2
and	[ebp+var_4], 0
push	offset a0	; "{0}"
lea	ecx, [ebp+Memory]
call	sub_403091
push	[ebp+arg_0]
lea	eax, [ebp+Memory]
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 1
push	eax
call	sub_407494
and	byte ptr [ebp+var_4], 0
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_1C]
push	eax
mov	ecx, esi
call	sub_4030F2
push	[ebp+var_1C]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_4073D8 endp



; Attributes: bp-based frame

sub_40744B proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_442E94
call	__EH_prolog
sub	esp, 10h
and	[ebp+var_10], 0
push	esi
push	[ebp+arg_0]
mov	esi, ecx
lea	ecx, [ebp+Memory]
call	sub_40B168
push	[ebp+arg_4]
and	[ebp+var_4], 0
mov	edx, eax
mov	ecx, esi
call	sub_4073D8
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_40744B endp



; Attributes: bp-based frame

sub_407494 proc	near

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	ebx
mov	ebx, [ebp+arg_0]
push	esi
push	edi
cmp	dword ptr [ebx+4], 0
mov	esi, ecx
jz	short loc_4074B7
mov	edi, [ebp+arg_4]
mov	ecx, [ebx]
mov	edx, [edi]
call	sub_42828A
test	eax, eax
jnz	short loc_4074BB

loc_4074B7:
xor	eax, eax
jmp	short loc_407504

loc_4074BB:
mov	eax, [ebx+4]
mov	[ebp+var_4], eax
mov	eax, [edi+4]
xor	edi, edi
mov	[ebp+var_8], eax
cmp	[esi+4], edi
mov	[ebp+arg_0], edi
jle	short loc_407501

loc_4074D1:
push	edi
push	ebx
mov	ecx, esi
call	sub_40750B
mov	edi, eax
test	edi, edi
jl	short loc_407501
push	[ebp+var_4]
mov	ecx, esi
push	edi
call	sub_40708E
push	[ebp+arg_4]
mov	ecx, esi
push	edi
call	sub_407571
add	edi, [ebp+var_8]
inc	[ebp+arg_0]
cmp	edi, [esi+4]
jl	short loc_4074D1

loc_407501:
mov	eax, [ebp+arg_0]

loc_407504:
pop	edi
pop	esi
pop	ebx
leave
retn	8
sub_407494 endp



; Attributes: bp-based frame

sub_40750B proc	near

arg_0= dword ptr  8
arg_4= dword ptr  0Ch

push	ebp
mov	ebp, esp
mov	eax, [ebp+arg_0]
push	ebx
push	esi
push	edi
mov	esi, [eax+4]
test	esi, esi
jnz	short loc_407520
mov	eax, [ebp+arg_4]
jmp	short loc_40756A

loc_407520:
mov	edx, [ecx+4]
mov	eax, [ebp+arg_4]
cmp	eax, edx
jge	short loc_407567

loc_40752A:
xor	edx, edx
test	esi, esi
jle	short loc_407557
lea	esi, [eax+eax]

loc_407533:
lea	edi, [edx+eax]
cmp	edi, [ecx+4]
jge	short loc_407557
mov	edi, [ebp+arg_0]
mov	ebx, [ecx]
mov	edi, [edi]
mov	bx, [esi+ebx]
cmp	bx, [edi+edx*2]
jnz	short loc_407557
mov	edi, [ebp+arg_0]
inc	edx
inc	esi
inc	esi
cmp	edx, [edi+4]
jl	short loc_407533

loc_407557:
mov	esi, [ebp+arg_0]
mov	esi, [esi+4]
cmp	edx, esi
jz	short loc_40756A
inc	eax
cmp	eax, [ecx+4]
jl	short loc_40752A

loc_407567:
or	eax, 0FFFFFFFFh

loc_40756A:
pop	edi
pop	esi
pop	ebx
pop	ebp
retn	8
sub_40750B endp



; Attributes: bp-based frame

sub_407571 proc	near

arg_0= dword ptr  8
arg_4= dword ptr  0Ch

push	ebp
mov	ebp, esp
push	esi
mov	esi, ecx
push	edi
mov	eax, [esi+4]
cmp	[ebp+arg_0], eax
jle	short loc_407583
mov	[ebp+arg_0], eax

loc_407583:
mov	ecx, [ebp+arg_4]
mov	edi, [ecx+4]
test	edi, edi
jz	short loc_4075C0
lea	eax, [ebp+arg_0]
push	edi
push	eax
mov	ecx, esi
call	sub_4075C6
xor	eax, eax
test	edi, edi
jle	short loc_4075BA
push	ebx

loc_4075A0:
mov	ecx, [ebp+arg_4]
mov	edx, [ebp+arg_0]
mov	ebx, [esi]
add	edx, eax
mov	ecx, [ecx]
mov	cx, [ecx+eax*2]
inc	eax
cmp	eax, edi
mov	[ebx+edx*2], cx
jl	short loc_4075A0
pop	ebx

loc_4075BA:
add	[esi+4], edi
mov	eax, [esi+4]

loc_4075C0:
pop	edi
pop	esi
pop	ebp
retn	8
sub_407571 endp




sub_4075C6 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	ebx
push	esi
mov	esi, ecx
push	edi
mov	edi, [esp+0Ch+arg_0]
mov	eax, [esi+4]
cmp	[edi], eax
jle	short loc_4075D8
mov	[edi], eax

loc_4075D8:
mov	ebx, [esp+0Ch+arg_4]
mov	ecx, esi
push	ebx
call	sub_4033EA
mov	eax, [edi]
mov	ecx, [esi]
mov	edx, eax
imul	edx, 7FFFFFFFh
add	edx, [esi+4]
lea	edx, [edx+edx+2]
push	edx		; Size
lea	edx, [ecx+eax*2]
add	eax, ebx
push	edx		; Src
lea	eax, [ecx+eax*2]
push	eax		; Dst
call	ds:memmove
add	esp, 0Ch
pop	edi
pop	esi
pop	ebx
retn	8
sub_4075C6 endp



; Attributes: bp-based frame

sub_407611 proc	near

var_5C=	dword ptr -5Ch
var_34=	dword ptr -34h
var_24=	dword ptr -24h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_442EC0
call	__EH_prolog
sub	esp, 50h
push	esi
push	edi
push	[ebp+arg_4]
mov	esi, ecx
lea	ecx, [esi+0A4h]
call	sub_43D0DB
push	[ebp+arg_0]
lea	edi, [esi+20h]
mov	ecx, edi
call	sub_40312C
mov	eax, [edi]
add	esi, 0C4h
push	1Fh		; dwNotifyFilter
push	0		; bWatchSubtree
push	eax		; lpPathName
mov	ecx, esi
call	sub_42B7CB
mov	eax, [esi]
or	esi, 0FFFFFFFFh
cmp	eax, esi
jz	short loc_407662
test	eax, eax
jnz	loc_4076F7

loc_407662:
push	ebx
call	ds:GetLastError
mov	[ebp+arg_0], eax
mov	[ebp+arg_4], esi
and	[ebp+var_4], 0
lea	ecx, [ebp+var_5C]
call	sub_404EA2
push	offset asc_45B41C ; "*"
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 1
call	sub_403091
push	eax
mov	edx, edi
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 2
call	sub_40356A
mov	eax, [eax]
lea	ecx, [ebp+var_5C]
push	ecx		; int
push	eax		; lpFileName
lea	ecx, [ebp+arg_4]
mov	byte ptr [ebp+var_4], 3
call	sub_42B10B
push	[ebp+Memory]	; Memory
mov	bl, al
neg	bl
sbb	bl, bl
inc	bl
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx
test	bl, bl
pop	ebx
push	[ebp+var_34]	; Memory
jz	short loc_4076E6
call	sub_4284D8
pop	ecx
mov	[ebp+var_4], esi
lea	ecx, [ebp+arg_4]
call	sub_42B047
mov	eax, [ebp+arg_0]
jmp	short loc_4076F9

loc_4076E6:
call	sub_4284D8
pop	ecx
mov	[ebp+var_4], esi
lea	ecx, [ebp+arg_4]
call	sub_42B047

loc_4076F7:
xor	eax, eax

loc_4076F9:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_407611 endp



; Attributes: thunk

sub_407709 proc	near
jmp	sub_42B047
sub_407709 endp



; Attributes: bp-based frame

sub_40770E proc	near

var_AC=	dword ptr -0ACh
var_A8=	dword ptr -0A8h
var_8C=	dword ptr -8Ch
var_84=	dword ptr -84h
var_74=	dword ptr -74h
Memory=	dword ptr -68h
var_5C=	dword ptr -5Ch
var_50=	dword ptr -50h
var_44=	dword ptr -44h
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_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_442F0F
call	__EH_prolog
sub	esp, 0A0h
mov	eax, [ebp+arg_8]
push	ebx
push	esi
mov	[ebp+var_10], ecx
mov	ecx, [eax]
xor	ebx, ebx
push	edi
push	ebx
mov	esi, edx
push	eax
call	dword ptr [ecx+10h]
cmp	eax, ebx
jnz	loc_4078C7
mov	edi, [ebp+arg_4]
push	offset asc_45B420 ; "\\*"
lea	ecx, [ebp+var_44]
mov	[edi], ebx
mov	[edi+4], ebx
mov	[esi], ebx
mov	[esi+4], ebx
mov	ebx, [ebp+arg_0]
and	dword ptr [ebx], 0
and	dword ptr [ebx+4], 0
call	sub_403091
mov	edx, [ebp+var_10]
and	[ebp+var_4], 0
push	eax
lea	ecx, [ebp+Memory]
call	sub_40356A
or	[ebp+var_20], 0FFFFFFFFh
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 2
call	sub_4030F2
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_44]	; Memory
mov	byte ptr [ebp+var_4], 4
call	sub_4284D8
pop	ecx
pop	ecx
lea	ecx, [ebp+var_AC]
call	sub_404EA2
mov	byte ptr [ebp+var_4], 6

loc_4077A4:
lea	eax, [ebp+var_AC]
lea	ecx, [ebp+var_20]
push	eax
call	sub_42B72E
test	al, al
jz	loc_4078A4
mov	eax, [ebp+var_8C]
shr	eax, 4
test	al, 1
jz	loc_407861
push	5Ch
lea	ecx, [ebp+var_50]
call	sub_409516
mov	edx, [ebp+var_10]
push	eax
lea	ecx, [ebp+var_74]
mov	byte ptr [ebp+var_4], 7
call	sub_40356A
lea	ecx, [ebp+var_84]
mov	edx, eax
push	ecx
lea	ecx, [ebp+var_5C]
mov	byte ptr [ebp+var_4], 8
call	sub_40356A
push	[ebp+arg_8]
lea	ecx, [ebp+var_30]
lea	edx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 9
push	ecx
lea	ecx, [ebp+var_28]
push	ecx
mov	ecx, eax
call	sub_40770E
mov	[ebp+arg_4], eax
push	[ebp+var_5C]	; Memory
call	sub_4284D8
push	[ebp+var_74]	; Memory
call	sub_4284D8
push	[ebp+var_50]	; Memory
mov	byte ptr [ebp+var_4], 6
call	sub_4284D8
add	esp, 0Ch
cmp	[ebp+arg_4], 0
jnz	short loc_40787E
mov	eax, [ebp+var_38]
mov	ecx, [ebp+var_34]
add	[esi], eax
mov	eax, [ebp+var_28]
adc	[esi+4], ecx
add	dword ptr [esi], 1
mov	ecx, [ebp+var_24]
adc	dword ptr [esi+4], 0
add	[ebx], eax
mov	eax, [ebp+var_30]
adc	[ebx+4], ecx
mov	ecx, [ebp+var_2C]
jmp	short loc_407874

loc_407861:
add	dword ptr [ebx], 1
mov	eax, [ebp+var_AC]
mov	ecx, [ebp+var_A8]
adc	dword ptr [ebx+4], 0

loc_407874:
add	[edi], eax
adc	[edi+4], ecx
jmp	loc_4077A4

loc_40787E:		; Memory
push	[ebp+var_84]
call	sub_4284D8
push	[ebp+var_1C]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx
pop	ecx
lea	ecx, [ebp+var_20]
call	sub_42B047
mov	eax, [ebp+arg_4]
jmp	short loc_4078C7

loc_4078A4:		; Memory
push	[ebp+var_84]
call	sub_4284D8
push	[ebp+var_1C]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx
pop	ecx
lea	ecx, [ebp+var_20]
call	sub_42B047
xor	eax, eax

loc_4078C7:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_40770E endp




sub_4078D8 proc	near
push	esi
mov	esi, ecx
push	dword ptr [esi+4] ; Memory
call	sub_4284D8
pop	ecx
mov	ecx, esi
call	sub_42B047
pop	esi
retn
sub_4078D8 endp



; Attributes: bp-based frame

sub_4078ED proc	near

var_A4=	dword ptr -0A4h
var_A0=	dword ptr -0A0h
var_84=	dword ptr -84h
var_6C=	byte ptr -6Ch
var_5C=	dword ptr -5Ch
var_58=	byte ptr -58h
var_44=	dword ptr -44h
Memory=	dword ptr -38h
var_2C=	dword ptr -2Ch
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset __ehhandler$?_Iput@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AAVios_base@2@DPADI@Z
call	__EH_prolog
sub	esp, 98h
mov	edx, [ebp+arg_4]
push	ebx
push	esi
mov	esi, ecx
push	edi
push	offset asc_45B41C ; "*"
lea	ecx, [ebp+Memory]
mov	[ebp+var_10], esi
call	sub_409948
or	[ebp+var_20], 0FFFFFFFFh
xor	ebx, ebx
mov	[ebp+var_4], ebx
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 1
call	sub_4030F2
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx
lea	ecx, [ebp+var_A4]
call	sub_404EA2
lea	ecx, [ebp+var_58]
mov	byte ptr [ebp+var_4], 4
mov	[ebp+var_5C], ebx
call	sub_4095AA
lea	eax, [ebp+var_A4]
lea	ecx, [ebp+var_20]
push	eax
mov	byte ptr [ebp+var_4], 5
call	sub_42B72E
mov	edi, [ebp+arg_0]
test	al, al
jz	short loc_4079AA

loc_40796C:
mov	eax, [ebp+var_84]
mov	[ebp+var_6C], bl
shr	eax, 4
test	al, 1
jz	short loc_407988
mov	[ebp+var_A4], ebx
mov	[ebp+var_A0], ebx

loc_407988:
lea	eax, [ebp+var_A4]
lea	ecx, [edi+4Ch]
push	eax
call	sub_4095C5
lea	eax, [ebp+var_A4]
lea	ecx, [ebp+var_20]
push	eax
call	sub_42B72E
test	al, al
jnz	short loc_40796C

loc_4079AA:
lea	ecx, [ebp+var_A4]
mov	byte ptr [ebp+var_4], 3
call	sub_407A54
push	[ebp+var_1C]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx
lea	ecx, [ebp+var_20]
call	sub_42B047
cmp	[esi+0C0h], bl
jz	short loc_407A37
cmp	[edi+54h], ebx
jle	short loc_407A37

loc_4079DB:
mov	eax, [edi+58h]
mov	esi, [eax+ebx*4]
mov	eax, [esi+20h]
shr	eax, 4
test	al, 1
jz	short loc_407A31
mov	edx, [ebp+arg_4]
lea	eax, [esi+28h]
push	eax
lea	ecx, [ebp+var_44]
call	sub_40356A
push	5Ch
mov	edx, eax
lea	ecx, [ebp+var_2C]
mov	[ebp+var_4], 6
call	sub_409999
mov	ecx, [ebp+var_10]
push	eax
push	esi
mov	byte ptr [ebp+var_4], 7
call	sub_4078ED
push	[ebp+var_2C]	; Memory
call	sub_4284D8
push	[ebp+var_44]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx
pop	ecx

loc_407A31:
inc	ebx
cmp	ebx, [edi+54h]
jl	short loc_4079DB

loc_407A37:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
xor	eax, eax
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_4078ED endp

; START	OF FUNCTION CHUNK FOR sub_442808

loc_407A4A:		; Memory
push	dword ptr [ecx+28h]
call	sub_4284D8
pop	ecx
retn
; END OF FUNCTION CHUNK	FOR sub_442808


; Attributes: bp-based frame

sub_407A54 proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442F74
call	__EH_prolog
push	ecx
push	ecx
push	esi
push	edi
mov	edi, ecx
mov	[ebp+var_10], edi
and	[ebp+var_4], 0
lea	esi, [edi+4Ch]
mov	[ebp+var_14], esi
mov	dword ptr [esi], offset	off_44BAC0
mov	ecx, esi
mov	byte ptr [ebp+var_4], 1
call	sub_428327
and	byte ptr [ebp+var_4], 0
mov	ecx, esi
call	sub_4282FE
push	dword ptr [edi+28h] ; Memory
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_407A54 endp



; Attributes: bp-based frame

sub_407AA4 proc	near

var_4= dword ptr -4
arg_0= dword ptr  8

push	ebp
mov	ebp, esp
push	ecx
push	esi
mov	esi, [ebp+arg_0]
push	edi
xor	edi, edi
cmp	[esi+54h], edi
mov	[ebp+var_4], ecx
jle	short loc_407AD6
push	ebx
lea	ebx, [ecx+90h]

loc_407ABE:
mov	eax, [esi+58h]
mov	ecx, ebx
mov	eax, [eax+edi*4]
push	eax
mov	[eax+48h], esi
call	sub_429907
inc	edi
cmp	edi, [esi+54h]
jl	short loc_407ABE
pop	ebx

loc_407AD6:
mov	eax, [ebp+var_4]
cmp	byte ptr [eax+0C0h], 0
jz	short loc_407B09
xor	edi, edi
cmp	[esi+54h], edi
jle	short loc_407B09

loc_407AE9:
mov	eax, [esi+58h]
mov	eax, [eax+edi*4]
mov	ecx, [eax+20h]
shr	ecx, 4
test	cl, 1
jz	short loc_407B03
mov	ecx, [ebp+var_4]
push	eax
call	sub_407AA4

loc_407B03:
inc	edi
cmp	edi, [esi+54h]
jl	short loc_407AE9

loc_407B09:
pop	edi
pop	esi
leave
retn	4
sub_407AA4 endp



; Attributes: bp-based frame

sub_407B0F proc	near

arg_0= dword ptr  8

push	ebp
mov	ebp, esp
push	esi
mov	esi, [ebp+arg_0]
lea	edx, [ebp+arg_0]
push	edi
mov	ecx, [esi+4]
lea	eax, [esi+4]
push	edx
push	eax
call	dword ptr [ecx+0Ch]
mov	ecx, esi
call	sub_407B56
lea	eax, [esi+20h]
lea	edi, [esi+30h]
push	eax
push	edi
mov	ecx, esi
call	sub_4078ED
test	eax, eax
jnz	short loc_407B50
push	edi
mov	ecx, esi
call	sub_407AA4
and	byte ptr [esi+0A8h], 0
xor	eax, eax

loc_407B50:
pop	edi
pop	esi
pop	ebp
retn	4
sub_407B0F endp




sub_407B56 proc	near
push	esi
mov	esi, ecx
lea	ecx, [esi+7Ch]
call	sub_428327
and	dword ptr [esi+78h], 0
lea	ecx, [esi+90h]
call	sub_428327
pop	esi
retn
sub_407B56 endp



; Attributes: bp-based frame

sub_407B72 proc	near

var_50=	dword ptr -50h
Memory=	dword ptr -40h
var_34=	dword ptr -34h
var_30=	dword ptr -30h
var_2C=	dword ptr -2Ch
lpBuffer= dword	ptr -28h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
nNumberOfBytesToRead= dword ptr	-1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442FA0
call	__EH_prolog
sub	esp, 44h
push	esi
mov	esi, ecx
cmp	byte ptr [esi+0A8h], 0
jz	short loc_407B92
mov	al, 1
jmp	loc_407CDE

loc_407B92:
push	ebx
lea	ecx, [esi+0ACh]
push	edi
mov	[ebp+var_14], ecx
call	sub_428327
or	[ebp+var_50], 0FFFFFFFFh
mov	byte ptr [esi+0A8h], 1
push	off_45B3FC
xor	edi, edi
lea	edx, [esi+20h]
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], edi
call	sub_409948
push	dword ptr [eax]	; lpFileName
lea	ecx, [ebp+var_50]
mov	byte ptr [ebp+var_4], 1
call	sub_42C145
push	[ebp+Memory]	; Memory
mov	bl, al
neg	bl
sbb	bl, bl
and	byte ptr [ebp+var_4], 0
inc	bl
call	sub_4284D8
test	bl, bl
pop	ecx
jz	short loc_407BF1

loc_407BEA:
xor	bl, bl
jmp	loc_407CCE

loc_407BF1:
lea	eax, [ebp+nNumberOfBytesToRead]
lea	ecx, [ebp+var_50]
push	eax
call	sub_42BEDB
test	al, al
jz	short loc_407BEA
cmp	[ebp+var_18], edi
ja	short loc_407BEA
cmp	[ebp+nNumberOfBytesToRead], 10000000h
jnb	short loc_407BEA
push	3
lea	ecx, [ebp+lpBuffer]
mov	[ebp+lpBuffer],	edi
mov	[ebp+var_24], edi
mov	[ebp+var_20], edi
call	sub_4034E3
mov	eax, [ebp+nNumberOfBytesToRead]
mov	byte ptr [ebp+var_4], 2
inc	eax
cmp	eax, [ebp+var_20]
jl	short loc_407C38
push	eax
lea	ecx, [ebp+lpBuffer]
call	sub_4034E3

loc_407C38:
mov	esi, [ebp+lpBuffer]
lea	eax, [ebp+var_10]
push	eax		; int
lea	ecx, [ebp+var_50]
push	[ebp+nNumberOfBytesToRead] ; nNumberOfBytesToRead
push	esi		; lpBuffer
call	sub_42C1A2
mov	eax, [ebp+nNumberOfBytesToRead]
and	byte ptr [eax+esi], 0
mov	ecx, [ebp+lpBuffer]
xor	eax, eax
cmp	[ecx], al
jz	short loc_407C62

loc_407C5B:
inc	eax
cmp	byte ptr [eax+ecx], 0
jnz	short loc_407C5B

loc_407C62:
and	byte ptr [eax+ecx], 0
mov	[ebp+var_24], eax
mov	eax, [ebp+var_10]
xor	ecx, ecx
cmp	eax, [ebp+nNumberOfBytesToRead]
jnz	short loc_407C78
cmp	ecx, [ebp+var_18]
jz	short loc_407C7C

loc_407C78:
xor	bl, bl
jmp	short loc_407CC5

loc_407C7C:
lea	ecx, [ebp+var_50]
call	sub_42BEBB
push	3
lea	ecx, [ebp+var_34]
mov	[ebp+var_34], edi
mov	[ebp+var_30], edi
mov	[ebp+var_2C], edi
call	sub_403396
lea	edx, [ebp+var_34]
lea	ecx, [ebp+lpBuffer]
mov	byte ptr [ebp+var_4], 3
call	sub_428A33
test	al, al
jnz	short loc_407CAE
xor	bl, bl
jmp	short loc_407CBC

loc_407CAE:
mov	ecx, [ebp+var_14]
lea	eax, [ebp+var_34]
push	eax
call	sub_42015E
mov	bl, al

loc_407CBC:		; Memory
push	[ebp+var_34]
call	sub_4284D8
pop	ecx

loc_407CC5:		; Memory
push	[ebp+lpBuffer]
call	sub_4284D8
pop	ecx

loc_407CCE:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_50]
call	sub_42BD78
mov	al, bl
pop	edi
pop	ebx

loc_407CDE:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_407B72 endp



; Attributes: bp-based frame

sub_407CEB proc	near

var_4C=	dword ptr -4Ch
Memory=	dword ptr -3Ch
var_30=	dword ptr -30h
var_2C=	dword ptr -2Ch
var_28=	dword ptr -28h
lpBuffer= dword	ptr -24h
nNumberOfBytesToWrite= dword ptr -20h
var_1C=	dword ptr -1Ch
Buffer=	byte ptr -18h
var_17=	byte ptr -17h
var_16=	byte ptr -16h
var_15=	byte ptr -15h
var_14=	byte ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_442FCC
call	__EH_prolog
sub	esp, 40h
or	[ebp+var_4C], 0FFFFFFFFh
push	ebx
push	esi
push	edi
mov	esi, ecx
push	off_45B3FC
xor	edi, edi
lea	edx, [esi+20h]
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], edi
call	sub_409948
mov	eax, [eax]
push	1		; char
push	eax		; lpFileName
lea	ecx, [ebp+var_4C]
mov	byte ptr [ebp+var_4], 1
call	sub_42C21B
push	[ebp+Memory]	; Memory
mov	bl, al
neg	bl
sbb	bl, bl
and	byte ptr [ebp+var_4], 0
inc	bl
call	sub_4284D8
test	bl, bl
pop	ecx
jz	short loc_407D48
xor	bl, bl
jmp	loc_407DEF

loc_407D48:
push	3
lea	ecx, [ebp+var_30]
mov	[ebp+var_30], edi
mov	[ebp+var_2C], edi
mov	[ebp+var_28], edi
call	sub_403396
lea	eax, [ebp+var_30]
lea	ecx, [esi+0ACh]
push	eax
mov	byte ptr [ebp+var_4], 2
call	sub_420446
push	3
lea	ecx, [ebp+lpBuffer]
mov	[ebp+lpBuffer],	edi
mov	[ebp+nNumberOfBytesToWrite], edi
mov	[ebp+var_1C], edi
call	sub_4034E3
lea	edx, [ebp+lpBuffer]
lea	ecx, [ebp+var_30]
mov	byte ptr [ebp+var_4], 3
call	sub_428B8B
lea	ecx, [ebp+var_30]
call	sub_407E0C
test	al, al
jnz	short loc_407DC2
lea	eax, [ebp+var_10]
lea	ecx, [ebp+var_4C]
push	eax		; int
lea	eax, [ebp+Buffer]
push	5		; nNumberOfBytesToWrite
push	eax		; lpBuffer
mov	[ebp+Buffer], 0EFh
mov	[ebp+var_17], 0BBh
mov	[ebp+var_16], 0BFh
mov	[ebp+var_15], 0Dh
mov	[ebp+var_14], 0Ah
call	sub_42C289

loc_407DC2:
lea	eax, [ebp+var_10]
lea	ecx, [ebp+var_4C]
push	eax		; int
push	[ebp+nNumberOfBytesToWrite] ; nNumberOfBytesToWrite
push	[ebp+lpBuffer]	; lpBuffer
call	sub_42C289
push	[ebp+lpBuffer]	; Memory
and	byte ptr [esi+0A8h], 0
call	sub_4284D8
push	[ebp+var_30]	; Memory
call	sub_4284D8
pop	ecx
mov	bl, 1
pop	ecx

loc_407DEF:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_4C]
call	sub_42BD78
mov	ecx, [ebp+var_C]
pop	edi
mov	al, bl
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_407CEB endp




sub_407E0C proc	near
mov	eax, [ecx+4]
xor	edx, edx
test	eax, eax
jle	short loc_407E25
mov	ecx, [ecx]

loc_407E17:
cmp	word ptr [ecx],	80h
jnb	short loc_407E28
inc	edx
inc	ecx
inc	ecx
cmp	edx, eax
jl	short loc_407E17

loc_407E25:
mov	al, 1
retn

loc_407E28:
xor	al, al
retn
sub_407E0C endp



; Attributes: thunk

sub_407E2B proc	near
jmp	sub_42BD78
sub_407E2B endp




sub_407E30 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [esp+arg_0]
mov	ecx, [esp+arg_4]
mov	eax, [eax+98h]
mov	[ecx], eax
xor	eax, eax
retn	8
sub_407E30 endp



; Attributes: bp-based frame

sub_407E45 proc	near

pvarg= VARIANTARG ptr -58h
var_48=	dword ptr -48h
var_3C=	dword ptr -3Ch
var_30=	dword ptr -30h
Memory=	dword ptr -24h
psz= dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_443008
call	__EH_prolog
sub	esp, 4Ch
push	ebx
push	esi
push	edi
xor	edi, edi
mov	word ptr [ebp+pvarg.anonymous_0], di
mov	word ptr [ebp+pvarg.anonymous_0+2], di
mov	ebx, [ebp+arg_0]
mov	eax, [ebp+arg_4]
mov	[ebp+var_4], edi
mov	ecx, [ebx+98h]
cmp	eax, ecx
jb	short loc_407E7C
mov	esi, 80070057h
jmp	loc_408062

loc_407E7C:
mov	ecx, [ebx+9Ch]
mov	esi, [ecx+eax*4]
mov	eax, [ebp+arg_8]
cmp	eax, 0Ah
ja	loc_407F8C
jz	loc_407F84
sub	eax, 4
jz	loc_407F74
dec	eax
dec	eax
jz	loc_407F5E
dec	eax
jz	loc_407F49
dec	eax
jz	short loc_407EC9
dec	eax
jnz	loc_408055
push	dword ptr [esi+20h]
lea	ecx, [ebp+pvarg]
call	sub_42CD72
jmp	loc_408055

loc_407EC9:
cmp	byte ptr [esi+38h], 0
jnz	short loc_407F36
mov	eax, [esi+20h]
mov	byte ptr [esi+38h], 1
shr	eax, 4
test	al, 1
jnz	short loc_407F2B
lea	eax, [ebp+var_30]
push	esi
push	eax
mov	ecx, ebx
call	sub_4085D1
push	eax
lea	edx, [ebx+20h]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_40356A
mov	eax, [eax]
lea	edx, [esi+40h]
mov	ecx, eax
mov	byte ptr [ebp+var_4], 2
call	sub_408081
push	[ebp+Memory]	; Memory
mov	bl, al
neg	bl
sbb	bl, bl
inc	bl
call	sub_4284D8
push	[ebp+var_30]	; Memory
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
pop	ecx
test	bl, bl
pop	ecx
jz	short loc_407F36

loc_407F2B:
mov	eax, [esi]
mov	[esi+40h], eax
mov	eax, [esi+4]
mov	[esi+44h], eax

loc_407F36:
push	dword ptr [esi+44h]
push	dword ptr [esi+40h]

loc_407F3C:
lea	ecx, [ebp+pvarg]
call	sub_42CD92
jmp	loc_408055

loc_407F49:
mov	eax, [esi+20h]
shr	eax, 4
test	al, 1
jnz	loc_408055
push	dword ptr [esi+4]
push	dword ptr [esi]
jmp	short loc_407F3C

loc_407F5E:
mov	eax, [esi+20h]
lea	ecx, [ebp+pvarg]
shr	eax, 4
and	al, 1
push	eax
call	sub_42CD4D
jmp	loc_408055

loc_407F74:		; psz
push	dword ptr [esi+28h]
lea	ecx, [ebp+pvarg]
call	sub_42CC9E
jmp	loc_408055

loc_407F84:
add	esi, 8
jmp	loc_40804C

loc_407F8C:
sub	eax, 0Bh
jz	loc_408049
dec	eax
jz	loc_408044
sub	eax, 10h
jz	short loc_407FDF
dec	eax
dec	eax
jnz	loc_408055
cmp	byte ptr [ebx+0C0h], 0
jz	loc_408055
lea	eax, [ebp+var_3C]
push	esi
push	eax
mov	ecx, ebx
call	sub_408518
push	dword ptr [eax]	; psz
lea	ecx, [ebp+pvarg]
mov	byte ptr [ebp+var_4], 5
call	sub_42CC9E
and	byte ptr [ebp+var_4], 0
push	[ebp+var_3C]	; Memory

loc_407FD7:
call	sub_4284D8
pop	ecx
jmp	short loc_408055

loc_407FDF:
mov	ecx, ebx
call	sub_407B72
push	3
lea	ecx, [ebp+psz]
mov	[ebp+psz], edi
mov	[ebp+var_14], edi
mov	[ebp+var_10], edi
call	sub_403396
lea	eax, [ebp+var_48]
push	esi
push	eax
mov	ecx, ebx
mov	byte ptr [ebp+var_4], 3
call	sub_4085D1
lea	ecx, [ebp+psz]
mov	byte ptr [ebp+var_4], 4
push	ecx
push	eax
lea	ecx, [ebx+0ACh]
call	sub_420123
push	[ebp+var_48]	; Memory
mov	bl, al
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
test	bl, bl
pop	ecx
jz	short loc_40803B
push	[ebp+psz]	; psz
lea	ecx, [ebp+pvarg]
call	sub_42CC9E

loc_40803B:
and	byte ptr [ebp+var_4], 0
push	[ebp+psz]
jmp	short loc_407FD7

loc_408044:
add	esi, 18h
jmp	short loc_40804C

loc_408049:
add	esi, 10h

loc_40804C:
push	esi
lea	ecx, [ebp+pvarg]
call	sub_42CDB9

loc_408055:		; pvarg
push	[ebp+arg_C]
lea	ecx, [ebp+pvarg] ; Src
call	sub_42CE85
xor	esi, esi

loc_408062:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	10h
sub_407E45 endp



; Attributes: bp-based frame

sub_408081 proc	near

Memory=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
FileSizeHigh= dword ptr	-10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44301C
call	__EH_prolog
sub	esp, 14h
push	ebx
push	esi
mov	esi, ds:GetCompressedFileSizeW
lea	eax, [ebp+FileSizeHigh]
push	edi
mov	ebx, ecx
push	eax		; lpFileSizeHigh
mov	[ebp+var_14], edx
push	ebx		; lpFileName
call	esi ; GetCompressedFileSizeW
mov	edi, eax
cmp	edi, 0FFFFFFFFh
jnz	short loc_408102
call	ds:GetLastError
test	eax, eax
jz	short loc_408102
xor	eax, eax
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], eax
mov	[ebp+var_1C], eax
mov	[ebp+var_18], eax
call	sub_403396
and	[ebp+var_4], 0
lea	edx, [ebp+Memory]
mov	ecx, ebx
call	sub_42BD5E
test	al, al
jz	short loc_4080E6
lea	eax, [ebp+FileSizeHigh]
push	eax		; lpFileSizeHigh
push	[ebp+Memory]	; lpFileName
call	esi ; GetCompressedFileSizeW
mov	edi, eax

loc_4080E6:		; Memory
push	[ebp+Memory]
call	sub_4284D8
cmp	edi, 0FFFFFFFFh
pop	ecx
jnz	short loc_408102
call	ds:GetLastError
test	eax, eax
jz	short loc_408102
xor	al, al
jmp	short loc_408117

loc_408102:
mov	edx, [ebp+FileSizeHigh]
xor	ecx, ecx
xor	eax, eax
or	ecx, edi
or	edx, eax
mov	eax, [ebp+var_14]
mov	[eax], ecx
mov	[eax+4], edx
mov	al, 1

loc_408117:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_408081 endp



; Attributes: bp-based frame

sub_408126 proc	near

var_34=	dword ptr -34h
var_28=	dword ptr -28h
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_443052
call	__EH_prolog
sub	esp, 28h
mov	eax, [ebp+arg_4]
push	esi
push	edi
mov	edi, ecx
and	dword ptr [eax], 0
push	0C8h		; Size
call	sub_4284B1
pop	ecx
mov	[ebp+var_10], eax
and	[ebp+var_4], 0
test	eax, eax
jz	short loc_40815E
mov	ecx, eax
call	sub_4081FF
mov	esi, eax
jmp	short loc_408160

loc_40815E:
xor	esi, esi

loc_408160:
or	[ebp+var_4], 0FFFFFFFFh
mov	[ebp+var_10], esi
test	esi, esi
jz	short loc_408171
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]

loc_408171:
push	ebx
push	5Ch
lea	ecx, [ebp+var_34]
mov	[ebp+var_4], 1
call	sub_409516
mov	ebx, eax
push	[ebp+arg_0]
lea	edx, [edi+20h]
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 2
call	sub_409948
push	ebx
mov	edx, eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 3
call	sub_40356A
push	0
push	eax
mov	ecx, esi
mov	byte ptr [ebp+var_4], 4
call	sub_407611
push	[ebp+Memory]	; Memory
mov	edi, eax
call	sub_4284D8
push	[ebp+var_28]	; Memory
call	sub_4284D8
push	[ebp+var_34]	; Memory
call	sub_4284D8
add	esp, 0Ch
test	edi, edi
pop	ebx
jz	short loc_4081E8
or	[ebp+var_4], 0FFFFFFFFh
test	esi, esi
jz	short loc_4081E4
mov	eax, [esi]
push	esi
call	dword ptr [eax+8]

loc_4081E4:
mov	eax, edi
jmp	short loc_4081EF

loc_4081E8:
mov	eax, [ebp+arg_4]
mov	[eax], esi
xor	eax, eax

loc_4081EF:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_408126 endp



; Attributes: bp-based frame

sub_4081FF proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443067
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
push	3
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44BC00
mov	dword ptr [esi+4], offset off_44BBF0
mov	dword ptr [esi+8], offset off_44BBC4
mov	dword ptr [esi+0Ch], offset off_44BBB4
mov	dword ptr [esi+10h], offset off_44BBA4
mov	dword ptr [esi+14h], offset off_44BB94
lea	ecx, [esi+20h]
mov	dword ptr [esi+18h], offset off_44BB84
mov	[esi+1Ch], ebx
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+30h]
mov	[ebp+var_4], ebx
call	sub_4082E9
push	4
lea	eax, [esi+90h]
pop	ecx
mov	[eax+4], ebx
mov	[eax+8], ebx
mov	[eax+0Ch], ebx
mov	[eax+10h], ecx
mov	dword ptr [eax], offset	off_44BB7C
lea	eax, [esi+0ACh]
mov	[esi+0A4h], ebx
mov	[eax+4], ebx
mov	[eax+8], ebx
mov	[eax+0Ch], ebx
mov	[eax+10h], ecx
mov	ecx, [ebp+var_C]
mov	dword ptr [eax], offset	off_44BB74
mov	[esi+0C0h], bl
or	dword ptr [esi+0C4h], 0FFFFFFFFh
mov	dword ptr [esi], offset	off_44BB44
mov	dword ptr [esi+4], offset off_44BB34
mov	dword ptr [esi+8], offset off_44BB08
mov	dword ptr [esi+0Ch], offset off_44BAF8
mov	dword ptr [esi+10h], offset off_44BAE8
mov	dword ptr [esi+14h], offset off_44BAD8
mov	dword ptr [esi+18h], offset off_44BAC8
mov	eax, esi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_4081FF endp




sub_4082E9 proc	near
push	esi
mov	esi, ecx
call	sub_404EA2
xor	eax, eax
mov	[esi+48h], eax
mov	[esi+50h], eax
mov	[esi+54h], eax
mov	[esi+58h], eax
mov	dword ptr [esi+5Ch], 4
mov	dword ptr [esi+4Ch], offset off_44BAC0
mov	eax, esi
pop	esi
retn
sub_4082E9 endp



; Attributes: bp-based frame

; int __stdcall	sub_408311(int,	void *Buf1, int)
sub_408311 proc	near

arg_0= dword ptr  8
Buf1= dword ptr	 0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
push	esi
mov	esi, [ebp+Buf1]
push	edi
push	10h
pop	edi
push	edi		; Size
push	offset unk_44CCB8 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_40833C

loc_40832F:
mov	ecx, [ebp+arg_8]
mov	eax, [ebp+arg_0]
mov	[ecx], eax
jmp	loc_408409

loc_40833C:		; Size
push	edi
push	offset unk_44B6D0 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jz	short loc_40832F
push	edi		; Size
push	offset unk_44B6C0 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_40836F
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+4]
jmp	loc_4083FE

loc_40836F:		; Size
push	edi
push	offset unk_44B6A0 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_40838C
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+8]
jmp	short loc_4083FE

loc_40838C:		; Size
push	edi
push	offset unk_44B680 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_4083A9
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+0Ch]
jmp	short loc_4083FE

loc_4083A9:		; Size
push	edi
push	offset unk_44B670 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_4083C6
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+10h]
jmp	short loc_4083FE

loc_4083C6:		; Size
push	edi
push	offset unk_44B690 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_4083E3
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+14h]
jmp	short loc_4083FE

loc_4083E3:		; Size
push	edi
push	offset unk_44B660 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_408413
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+18h]

loc_4083FE:
neg	ecx
sbb	ecx, ecx
and	ecx, edx
mov	edx, [ebp+arg_8]
mov	[edx], ecx

loc_408409:
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+4]
xor	eax, eax
jmp	short loc_408418

loc_408413:
mov	eax, 80004002h

loc_408418:
pop	edi
pop	esi
pop	ebp
retn	0Ch
sub_408311 endp




sub_40841E proc	near

arg_0= dword ptr  4

mov	eax, [esp+arg_0]
inc	dword ptr [eax+1Ch]
mov	eax, [eax+1Ch]
retn	4
sub_40841E endp




; int __stdcall	sub_40842B(void	*Memory)
sub_40842B proc	near

Memory=	dword ptr  4

push	esi
mov	esi, [esp+4+Memory]
dec	dword ptr [esi+1Ch]
mov	eax, [esi+1Ch]
jnz	short loc_40844C
test	esi, esi
jz	short loc_40844A
mov	ecx, esi
call	sub_408450
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_40844A:
xor	eax, eax

loc_40844C:
pop	esi
retn	4
sub_40842B endp



; Attributes: bp-based frame

sub_408450 proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4430BC
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
lea	ecx, [esi+0C4h]
mov	[ebp+var_4], 4
call	sub_42B786
lea	edi, [esi+0ACh]
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44BB74
mov	ecx, edi
mov	byte ptr [ebp+var_4], 5
call	sub_428327
mov	ecx, edi
mov	byte ptr [ebp+var_4], 3
call	sub_4282FE
mov	eax, [esi+0A4h]
mov	byte ptr [ebp+var_4], 2
test	eax, eax
jz	short loc_4084AE
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_4084AE:
lea	ecx, [esi+90h]
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
and	byte ptr [ebp+var_4], 0
lea	ecx, [esi+30h]
call	sub_407A54
push	dword ptr [esi+20h] ; Memory
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_408450 endp

; START	OF FUNCTION CHUNK FOR sub_4430A6

loc_4084E0:
mov	eax, offset loc_4430D0
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp-10h], esi
mov	dword ptr [esi], offset	off_44BB74
and	dword ptr [ebp-4], 0
call	sub_428327
or	dword ptr [ebp-4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp-0Ch]
pop	esi
mov	large fs:0, ecx
leave
retn
; END OF FUNCTION CHUNK	FOR sub_4430A6


; Attributes: bp-based frame

sub_408518 proc	near

var_40=	dword ptr -40h
var_34=	dword ptr -34h
Memory=	dword ptr -28h
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_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_4430FC
call	__EH_prolog
sub	esp, 34h
push	ebx
push	esi
xor	ebx, ebx
push	3
lea	ecx, [ebp+var_1C]
mov	[ebp+var_10], ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_403396
mov	eax, [ebp+arg_4]
mov	[ebp+var_4], ebx
mov	esi, [eax+48h]

loc_408548:
cmp	[esi+48h], ebx
jz	short loc_4085A9
push	5Ch
lea	ecx, [ebp+var_40]
call	sub_409516
push	eax
lea	edx, [esi+28h]
lea	ecx, [ebp+var_34]
mov	byte ptr [ebp+var_4], 1
call	sub_40356A
lea	ecx, [ebp+var_1C]
mov	edx, eax
push	ecx
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 2
call	sub_40356A
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 3
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_34]	; Memory
call	sub_4284D8
push	[ebp+var_40]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
mov	esi, [esi+48h]
add	esp, 0Ch
jmp	short loc_408548

loc_4085A9:
mov	ecx, [ebp+arg_0]
lea	eax, [ebp+var_1C]
push	eax
call	sub_4030F2
push	[ebp+var_1C]	; Memory
call	sub_4284D8
mov	eax, [ebp+arg_0]
pop	ecx
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_408518 endp



; Attributes: bp-based frame

sub_4085D1 proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_443110
call	__EH_prolog
sub	esp, 10h
and	[ebp+var_10], 0
push	esi
mov	esi, [ebp+arg_4]
lea	eax, [ebp+Memory]
push	esi
push	eax
call	sub_408518
mov	ecx, [ebp+arg_0]
and	[ebp+var_4], 0
add	esi, 28h
mov	edx, eax
push	esi
call	sub_40356A
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+arg_0]
pop	ecx
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_4085D1 endp



; Attributes: bp-based frame

sub_40861D proc	near

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

mov	eax, offset loc_443124
call	__EH_prolog
sub	esp, 0Ch
mov	ecx, [ebp+arg_4]
push	esi
mov	esi, [ebp+arg_0]
push	edi
mov	edi, [ebp+arg_8]
and	dword ptr [edi], 0
mov	eax, [esi+9Ch]
mov	eax, [eax+ecx*4]
mov	ecx, [eax+20h]
shr	ecx, 4
test	cl, 1
jnz	short loc_408653
mov	eax, 80070057h
jmp	short loc_40867B

loc_408653:
push	eax
lea	eax, [ebp+Memory]
push	eax
mov	ecx, esi
call	sub_4085D1
mov	eax, [eax]
and	[ebp+var_4], 0
push	edi
push	eax
mov	ecx, esi
call	sub_408126
push	[ebp+Memory]	; Memory
mov	esi, eax
call	sub_4284D8
pop	ecx
mov	eax, esi

loc_40867B:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	0Ch
sub_40861D endp




sub_40868B proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8
arg_8= dword ptr  0Ch

push	[esp+arg_8]
mov	ecx, [esp+4+arg_0]
push	[esp+4+arg_4]
call	sub_408126
retn	0Ch
sub_40868B endp



; Attributes: bp-based frame

sub_40869F proc	near

Memory=	dword ptr -30h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_443176
call	__EH_prolog
sub	esp, 24h
mov	eax, [ebp+arg_0]
push	ebx
push	esi
push	edi
mov	edi, [ebp+arg_4]
xor	ebx, ebx
mov	[edi], ebx
mov	esi, [eax+0A4h]
cmp	esi, ebx
jz	short loc_4086D2
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]
mov	[edi], esi
xor	eax, eax
jmp	loc_4088C7

loc_4086D2:
mov	esi, [eax+24h]
cmp	esi, ebx
jnz	short loc_4086E3
mov	eax, 80070057h
jmp	loc_4088C7

loc_4086E3:
lea	ecx, [eax+20h]
mov	eax, [eax+24h]
cmp	eax, ebx
jz	loc_4088C2
mov	edx, [ecx]
push	5Ch
pop	edi
lea	eax, [edx+eax*2-2]

loc_4086FA:
cmp	[eax], di
jz	short loc_408707
cmp	eax, edx
jz	short loc_40870D
dec	eax
dec	eax
jmp	short loc_4086FA

loc_408707:
sub	eax, edx
sar	eax, 1
jmp	short loc_408710

loc_40870D:
or	eax, 0FFFFFFFFh

loc_408710:
cmp	eax, ebx
jl	loc_4088C2
dec	esi
cmp	eax, esi
jnz	loc_4088C2
push	eax
lea	eax, [ebp+var_18]
push	eax
call	sub_403228
mov	eax, [ebp+var_14]
mov	[ebp+var_4], ebx
cmp	eax, ebx
jz	short loc_408758
mov	ecx, [ebp+var_18]
lea	eax, [ecx+eax*2-2]

loc_40873C:
cmp	[eax], di
jz	short loc_408749
cmp	eax, ecx
jz	short loc_408751
dec	eax
dec	eax
jmp	short loc_40873C

loc_408749:
sub	eax, ecx
sar	eax, 1
mov	esi, eax
jmp	short loc_408754

loc_408751:
or	esi, 0FFFFFFFFh

loc_408754:
cmp	esi, ebx
jge	short loc_408794

loc_408758:		; Size
push	28h
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+arg_0], ecx
cmp	ecx, ebx
mov	byte ptr [ebp+var_4], 1
jz	short loc_408776
call	sub_408A5B
mov	esi, eax
jmp	short loc_408778

loc_408776:
xor	esi, esi

loc_408778:
cmp	esi, ebx
mov	byte ptr [ebp+var_4], bl
jz	short loc_408785
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]

loc_408785:
mov	eax, [ebp+arg_4]
mov	[esi+24h], bl
mov	[eax], esi
xor	esi, esi
jmp	loc_408859

loc_408794:
lea	eax, [ebp+var_24]
push	esi
push	eax
lea	ecx, [ebp+var_18]
call	sub_403228
inc	esi
lea	eax, [ebp+Memory]
push	esi
push	eax
lea	ecx, [ebp+var_18]
mov	byte ptr [ebp+var_4], 2
call	sub_403228
push	eax
lea	ecx, [ebp+var_18]
mov	byte ptr [ebp+var_4], 3
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 2
call	sub_4284D8
mov	eax, [ebp+var_20]
pop	ecx
cmp	eax, ebx
jz	loc_408866
mov	ecx, [ebp+var_24]
lea	eax, [ecx+eax*2-2]

loc_4087DF:
cmp	[eax], di
jz	short loc_4087EC
cmp	eax, ecx
jz	short loc_4087F2
dec	eax
dec	eax
jmp	short loc_4087DF

loc_4087EC:
sub	eax, ecx
sar	eax, 1
jmp	short loc_4087F5

loc_4087F2:
or	eax, 0FFFFFFFFh

loc_4087F5:
cmp	eax, 1
jnz	short loc_408866
mov	eax, [ebp+var_18]
cmp	[eax], di
jz	short loc_408809
mov	esi, 80004005h
jmp	short loc_408850

loc_408809:		; Size
push	78h
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+arg_0], ecx
cmp	ecx, ebx
mov	byte ptr [ebp+var_4], 4
jz	short loc_408827
call	sub_4088D8
mov	esi, eax
jmp	short loc_408829

loc_408827:
xor	esi, esi

loc_408829:
cmp	esi, ebx
mov	byte ptr [ebp+var_4], 2
mov	[ebp+arg_0], esi
jz	short loc_40883A
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]

loc_40883A:
lea	eax, [ebp+var_18]
mov	ecx, esi
push	eax
mov	byte ptr [ebp+var_4], 5
call	sub_42725A

loc_408849:
mov	eax, [ebp+arg_4]
mov	[eax], esi
xor	esi, esi

loc_408850:		; Memory
push	[ebp+var_24]
call	sub_4284D8
pop	ecx

loc_408859:		; Memory
push	[ebp+var_18]
call	sub_4284D8
pop	ecx
mov	eax, esi
jmp	short loc_4088C7

loc_408866:		; Size
push	0C8h
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+arg_0], ecx
cmp	ecx, ebx
mov	byte ptr [ebp+var_4], 6
jz	short loc_408887
call	sub_4081FF
mov	esi, eax
jmp	short loc_408889

loc_408887:
xor	esi, esi

loc_408889:
cmp	esi, ebx
mov	byte ptr [ebp+var_4], 2
mov	[ebp+arg_0], esi
jz	short loc_40889A
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]

loc_40889A:
lea	eax, [ebp+var_18]
push	ebx
push	eax
mov	ecx, esi
mov	byte ptr [ebp+var_4], 7
call	sub_407611
mov	edi, eax
cmp	edi, ebx
jz	short loc_408849
cmp	esi, ebx
mov	byte ptr [ebp+var_4], 2
jz	short loc_4088BE
mov	eax, [esi]
push	esi
call	dword ptr [eax+8]

loc_4088BE:
mov	esi, edi
jmp	short loc_408850

loc_4088C2:
mov	eax, 80004005h

loc_4088C7:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_40869F endp



; Attributes: bp-based frame

sub_4088D8 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4431A1
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	edi
xor	edi, edi
mov	dword ptr [esi], offset	off_44BC00
mov	dword ptr [esi+4], offset off_44BB94
lea	ecx, [esi+0Ch]
mov	[ebp+var_10], esi
mov	[esi+8], edi
call	sub_40897C
mov	[esi+50h], edi
mov	[ebp+var_4], edi
mov	[esi+58h], edi
mov	[esi+5Ch], edi
mov	[esi+60h], edi
mov	dword ptr [esi+64h], 4
mov	dword ptr [esi+54h], offset off_44BC70
mov	[esi+68h], edi
lea	ecx, [esi+6Ch]
push	3
mov	byte ptr [ebp+var_4], 2
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
mov	ecx, [ebp+var_C]
mov	dword ptr [esi], offset	off_44BC40
mov	dword ptr [esi+4], offset off_44BC30
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_4088D8 endp




; int __stdcall	sub_408957(void	*Memory)
sub_408957 proc	near

Memory=	dword ptr  4

push	esi
mov	esi, [esp+4+Memory]
dec	dword ptr [esi+8]
mov	eax, [esi+8]
jnz	short loc_408978
test	esi, esi
jz	short loc_408976
mov	ecx, esi
call	sub_4089F3
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_408976:
xor	eax, eax

loc_408978:
pop	esi
retn	4
sub_408957 endp



; Attributes: bp-based frame

sub_40897C proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4431CD
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	edi
xor	edi, edi
lea	ecx, [esi+14h]
push	3
mov	[ebp+var_10], esi
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
lea	ecx, [esi+20h]
push	3
mov	[ebp+var_4], edi
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
lea	ecx, [esi+2Ch]
push	3
mov	byte ptr [ebp+var_4], 1
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
lea	ecx, [esi+38h]
push	3
mov	byte ptr [ebp+var_4], 2
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_40897C endp



; Attributes: bp-based frame

sub_4089F3 proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4431F6
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
push	dword ptr [esi+6Ch] ; Memory
mov	[ebp+var_4], 1
call	sub_4284D8
mov	eax, [esi+68h]
pop	ecx
test	eax, eax
jz	short loc_408A23
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_408A23:
lea	edi, [esi+54h]
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44BC70
mov	ecx, edi
mov	byte ptr [ebp+var_4], 2
call	sub_428327
and	byte ptr [ebp+var_4], 0
mov	ecx, edi
call	sub_4282FE
lea	ecx, [esi+0Ch]
call	sub_42EEC8
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_4089F3 endp




sub_408A5B proc	near
mov	eax, ecx
xor	ecx, ecx
mov	dword ptr [eax+4], offset off_44BBC4
mov	dword ptr [eax+8], offset off_44BB94
mov	[eax+0Ch], ecx
mov	[eax+14h], ecx
mov	[eax+18h], ecx
mov	[eax+1Ch], ecx
mov	dword ptr [eax+20h], 4
mov	dword ptr [eax+10h], offset off_44BCE4
mov	dword ptr [eax], offset	off_44BCB4
mov	dword ptr [eax+4], offset off_44BC88
mov	dword ptr [eax+8], offset off_44BC78
retn
sub_408A5B endp



; Attributes: bp-based frame

; int __stdcall	sub_408A9C(int,	void *Buf1, int)
sub_408A9C proc	near

arg_0= dword ptr  8
Buf1= dword ptr	 0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
push	10h		; Size
push	offset unk_44CCB8 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_408ABF

loc_408AB5:
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+8]
jmp	short loc_408AF3

loc_408ABF:		; Size
push	10h
push	offset unk_44B690 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jz	short loc_408AB5
push	10h		; Size
push	offset unk_44B6A0 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_408B08
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+4]

loc_408AF3:
neg	ecx
sbb	ecx, ecx
push	eax
and	ecx, edx
mov	edx, [ebp+arg_8]
mov	[edx], ecx
mov	ecx, [eax]
call	dword ptr [ecx+4]
xor	eax, eax
jmp	short loc_408B0D

loc_408B08:
mov	eax, 80004002h

loc_408B0D:
pop	ebp
retn	0Ch
sub_408A9C endp




sub_408B11 proc	near

arg_0= dword ptr  4

mov	eax, [esp+arg_0]
inc	dword ptr [eax+0Ch]
mov	eax, [eax+0Ch]
retn	4
sub_408B11 endp




; int __stdcall	sub_408B1E(void	*Memory)
sub_408B1E proc	near

Memory=	dword ptr  4

push	esi
mov	esi, [esp+4+Memory]
dec	dword ptr [esi+0Ch]
mov	eax, [esi+0Ch]
jnz	short loc_408B3F
test	esi, esi
jz	short loc_408B3D
mov	ecx, esi
call	sub_408B43
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_408B3D:
xor	eax, eax

loc_408B3F:
pop	esi
retn	4
sub_408B1E endp



; Attributes: bp-based frame

sub_408B43 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443208
call	__EH_prolog
push	ecx
push	esi
lea	esi, [ecx+10h]
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44BCE4
and	[ebp+var_4], 0
mov	ecx, esi
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_408B43 endp




sub_408B7E proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [esp+arg_4]
mov	ecx, [esp+arg_0]
mov	dword ptr [eax], 9
cmp	byte ptr [ecx+0C0h], 0
jnz	short loc_408B9B
mov	dword ptr [eax], 8

loc_408B9B:
xor	eax, eax
retn	8
sub_408B7E endp




sub_408BA0 proc	near

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

mov	eax, [esp+arg_4]
cmp	eax, 9
jb	short loc_408BB0
mov	eax, 80070057h
jmp	short locret_408BDB

loc_408BB0:
mov	edx, [esp+arg_C]
lea	eax, [eax+eax*2]
mov	ecx, dword_45B394[eax*4]
lea	eax, ds:45B390h[eax*4]
mov	[edx], ecx
mov	ecx, [esp+arg_10]
mov	ax, [eax+8]
mov	[ecx], ax
mov	eax, [esp+arg_8]
and	dword ptr [eax], 0
xor	eax, eax

locret_408BDB:
retn	14h
sub_408BA0 endp



; Attributes: bp-based frame

sub_408BDE proc	near

pvarg= VARIANTARG ptr -20h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_44321C
call	__EH_prolog
sub	esp, 14h
push	ebx
push	esi
push	edi
xor	ebx, ebx
mov	[ebp+var_10], esp
mov	[ebp+var_4], ebx
mov	word ptr [ebp+pvarg.anonymous_0], bx
mov	word ptr [ebp+pvarg.anonymous_0+2], bx
cmp	[ebp+arg_4], 3
mov	byte ptr [ebp+var_4], 1
jz	short loc_408C1D
cmp	[ebp+arg_4], 14h
jnz	short loc_408C2B
push	offset aFsfolder ; "FSFolder"
lea	ecx, [ebp+pvarg]
call	sub_42CC8C
jmp	short loc_408C2B

loc_408C1D:
mov	eax, [ebp+arg_0]
lea	ecx, [ebp+pvarg]
push	dword ptr [eax+20h] ; psz
call	sub_42CC9E

loc_408C2B:		; pvarg
push	[ebp+arg_8]
lea	ecx, [ebp+pvarg] ; Src
call	sub_42CE85
lea	ecx, [ebp+pvarg] ; pvarg
mov	byte ptr [ebp+var_4], bl
call	sub_42CDE1
xor	eax, eax
jmp	short loc_408C50

loc_408C45:
mov	eax, offset loc_408C4B
retn

loc_408C4B:
mov	eax, 8007000Eh

loc_408C50:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	0Ch
sub_408BDE endp




sub_408C61 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	ebx
push	esi
mov	esi, [esp+8+arg_0]
xor	bl, bl

loc_408C69:
mov	eax, [esi+0C0h]
cmp	eax, 0FFFFFFFFh
jz	short loc_408C95
test	eax, eax
jz	short loc_408C95
push	0		; dwMilliseconds
push	eax		; hHandle
call	ds:WaitForSingleObject
test	eax, eax
jnz	short loc_408C9E
push	dword ptr [esi+0C0h] ; hChangeHandle
call	ds:FindNextChangeNotification
mov	bl, 1
jmp	short loc_408C69

loc_408C95:
mov	eax, [esp+8+arg_4]
and	dword ptr [eax], 0
jmp	short loc_408CAB

loc_408C9E:
mov	ecx, [esp+8+arg_4]
xor	eax, eax
test	bl, bl
setnz	al
mov	[ecx], eax

loc_408CAB:
pop	esi
xor	eax, eax
pop	ebx
retn	8
sub_408C61 endp



; Attributes: bp-based frame

sub_408CB2 proc	near

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

mov	eax, offset loc_44323A
call	__EH_prolog
push	ecx
push	esi
push	0C8h		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_10], ecx
and	[ebp+var_4], 0
test	ecx, ecx
jz	short loc_408CDF
call	sub_4081FF
mov	esi, eax
jmp	short loc_408CE1

loc_408CDF:
xor	esi, esi

loc_408CE1:
or	[ebp+var_4], 0FFFFFFFFh
mov	[ebp+var_10], esi
test	esi, esi
jz	short loc_408CF2
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]

loc_408CF2:
mov	eax, [ebp+arg_0]
push	0
add	eax, 10h
mov	ecx, esi
push	eax
mov	[ebp+var_4], 1
call	sub_407611
mov	eax, [ebp+arg_4]
mov	ecx, [ebp+var_C]
mov	[eax], esi
xor	eax, eax
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_408CB2 endp



; Attributes: bp-based frame

sub_408D1F proc	near

var_40=	dword ptr -40h
Memory=	dword ptr -34h
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_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

mov	eax, offset loc_443254
call	__EH_prolog
sub	esp, 34h
push	ebx
mov	ebx, [ebp+arg_8]
push	esi
mov	esi, [ebp+arg_10]
xor	edx, edx
push	edi
mov	edi, [ebp+arg_C]
cmp	[ebp+arg_4], edx
mov	[esi], edx
mov	[esi+4], edx
mov	[ebx], edx
mov	[ebx+4], edx
mov	[edi], edx
mov	[ebp+var_10], ecx
mov	[edi+4], edx
mov	[ebp+arg_8], edx
jbe	loc_408E34
mov	eax, [ebp+arg_0]
mov	[ebp+arg_10], eax
jmp	short loc_408D63

loc_408D60:
mov	ecx, [ebp+var_10]

loc_408D63:
mov	eax, [ebp+arg_10]
mov	eax, [eax]
cmp	eax, [ecx+98h]
jge	loc_408E47
mov	ecx, [ecx+9Ch]
mov	eax, [ecx+eax*4]
mov	ecx, [eax+20h]
shr	ecx, 4
test	cl, 1
jz	loc_408E11
mov	ecx, [ebp+var_10]
push	eax
lea	eax, [ebp+var_40]
push	eax
call	sub_4085D1
and	[ebp+var_4], 0
push	eax
mov	eax, [ebp+var_10]
lea	ecx, [ebp+Memory]
lea	edx, [eax+20h]
call	sub_40356A
push	[ebp+arg_14]
lea	ecx, [ebp+var_28]
lea	edx, [ebp+var_18]
mov	byte ptr [ebp+var_4], 1
push	ecx
lea	ecx, [ebp+var_20]
push	ecx
mov	ecx, eax
call	sub_40770E
push	[ebp+Memory]	; Memory
mov	[ebp+arg_C], eax
call	sub_4284D8
push	[ebp+var_40]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
mov	eax, [ebp+arg_C]
pop	ecx
test	eax, eax
pop	ecx
jnz	short loc_408E36
mov	eax, [ebp+var_18]
mov	ecx, [ebp+var_14]
add	[ebx], eax
mov	eax, [ebp+var_20]
adc	[ebx+4], ecx
add	dword ptr [ebx], 1
mov	ecx, [ebp+var_1C]
adc	dword ptr [ebx+4], 0
add	[edi], eax
mov	eax, [ebp+var_28]
adc	[edi+4], ecx
add	[esi], eax
mov	ecx, [ebp+var_24]
adc	[esi+4], ecx
xor	edx, edx
jmp	short loc_408E21

loc_408E11:
add	dword ptr [edi], 1
adc	[edi+4], edx
mov	ecx, [eax]
mov	eax, [eax+4]
add	[esi], ecx
adc	[esi+4], eax

loc_408E21:
inc	[ebp+arg_8]
add	[ebp+arg_10], 4
mov	eax, [ebp+arg_8]
cmp	eax, [ebp+arg_4]
jb	loc_408D60

loc_408E34:
xor	eax, eax

loc_408E36:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	18h

loc_408E47:
mov	eax, 80070057h
jmp	short loc_408E36
sub_408D1F endp



; Attributes: bp-based frame

sub_408E4E proc	near

var_34=	dword ptr -34h
Memory=	dword ptr -28h
var_1C=	byte ptr -1Ch
var_14=	byte ptr -14h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_443270
call	__EH_prolog
sub	esp, 28h
push	esi
mov	esi, ecx
mov	ecx, [ebp+arg_0]
mov	eax, [esi+9Ch]
mov	eax, [eax+ecx*4]
mov	ecx, [eax+20h]
shr	ecx, 4
test	cl, 1
jz	short loc_408EC1
push	eax
lea	eax, [ebp+var_34]
push	eax
mov	ecx, esi
call	sub_4085D1
and	[ebp+var_4], 0
push	eax
lea	edx, [esi+20h]
lea	ecx, [ebp+Memory]
call	sub_40356A
push	[ebp+arg_8]
lea	ecx, [ebp+var_14]
lea	edx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 1
push	[ebp+arg_4]
push	ecx
mov	ecx, eax
call	sub_40770E
push	[ebp+Memory]	; Memory
mov	esi, eax
call	sub_4284D8
push	[ebp+var_34]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
pop	ecx
jmp	short loc_408ED0

loc_408EC1:
mov	ecx, [ebp+arg_4]
mov	edx, [eax]
mov	[ecx], edx
mov	eax, [eax+4]
mov	[ecx+4], eax
xor	eax, eax

loc_408ED0:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	0Ch
sub_408E4E endp



; Attributes: bp-based frame

sub_408EDF proc	near

pvarg= VARIANTARG ptr -24h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_443284
call	__EH_prolog
sub	esp, 18h
xor	ecx, ecx
push	esi
mov	word ptr [ebp+pvarg.anonymous_0], cx
mov	word ptr [ebp+pvarg.anonymous_0+2], cx
mov	eax, [ebp+arg_0]
mov	[ebp+var_4], ecx
mov	edx, [eax+8Ch]
cmp	[ebp+arg_4], edx
jb	short loc_408F0F
mov	esi, 80070057h
jmp	short loc_408F42

loc_408F0F:
push	[ebp+arg_C]
mov	[ebp+var_14], ecx
mov	[ebp+var_10], ecx
lea	ecx, [ebp+var_14]
push	ecx
lea	ecx, [eax-0Ch]
push	[ebp+arg_4]
call	sub_408E4E
push	[ebp+var_10]
lea	ecx, [ebp+pvarg]
mov	esi, eax
push	[ebp+var_14]
call	sub_42CD92
push	[ebp+arg_8]	; pvarg
lea	ecx, [ebp+pvarg] ; Src
call	sub_42CE85

loc_408F42:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	esi
mov	large fs:0, ecx
leave
retn	10h
sub_408EDF endp



; Attributes: bp-based frame

sub_408F5F proc	near

Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_4432A0
call	__EH_prolog
sub	esp, 18h
push	esi
mov	esi, ecx
push	[ebp+arg_0]
lea	ecx, [ebp+var_18]
call	sub_403091
and	[ebp+var_4], 0
lea	eax, [ebp+var_18]
push	eax
lea	edx, [esi+20h]
lea	ecx, [ebp+Memory]
call	sub_40356A
mov	ecx, [ebp+arg_4]
push	eax
mov	byte ptr [ebp+var_4], 1
call	sub_40312C
push	[ebp+Memory]	; Memory
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
mov	eax, [ebp+var_14]
pop	ecx
cmp	eax, 1
pop	esi
jl	short loc_408FC5
mov	ecx, [ebp+var_18]
cmp	word ptr [ecx],	5Ch
jnz	short loc_408FCA
mov	ecx, [ebp+arg_4]
lea	eax, [ebp+var_18]
push	eax
call	sub_40312C

loc_408FC5:
push	[ebp+var_18]
jmp	short loc_408FE6

loc_408FCA:
cmp	eax, 2
jl	short loc_408FE5
cmp	word ptr [ecx+2], 3Ah
jnz	short loc_408FE5
mov	ecx, [ebp+arg_4]
lea	eax, [ebp+var_18]
push	eax
call	sub_40312C
mov	ecx, [ebp+var_18]

loc_408FE5:		; Memory
push	ecx

loc_408FE6:
call	sub_4284D8
pop	ecx
xor	eax, eax
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn	8
sub_408F5F endp



; Attributes: bp-based frame

sub_408FFC proc	near

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

mov	eax, offset loc_4432B4
call	__EH_prolog
sub	esp, 0Ch
and	[ebp+Memory], 0
and	[ebp+var_14], 0
and	[ebp+var_10], 0
push	esi
push	3
lea	ecx, [ebp+Memory]
call	sub_403396
and	[ebp+var_4], 0
lea	eax, [ebp+Memory]
push	eax
mov	eax, [ebp+arg_0]
push	[ebp+arg_4]
lea	ecx, [eax-8]
call	sub_408F5F
test	eax, eax
jz	short loc_40903E

loc_40903A:
mov	esi, eax
jmp	short loc_40906B

loc_40903E:
mov	ecx, [ebp+Memory]
call	sub_42A1B3
test	al, al
jnz	short loc_409069
mov	esi, ds:GetLastError
call	esi ; GetLastError
cmp	eax, 0B7h
jz	short loc_409065
mov	ecx, [ebp+Memory]
call	sub_42A264
test	al, al
jnz	short loc_409069

loc_409065:
call	esi ; GetLastError
jmp	short loc_40903A

loc_409069:
xor	esi, esi

loc_40906B:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	0Ch
sub_408FFC endp



; Attributes: bp-based frame

sub_409085 proc	near

var_28=	dword ptr -28h
lpFileName= dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_4432D0
call	__EH_prolog
sub	esp, 1Ch
push	ebx
push	esi
xor	ebx, ebx
push	3
lea	ecx, [ebp+lpFileName]
mov	[ebp+lpFileName], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_403396
lea	eax, [ebp+lpFileName]
mov	[ebp+var_4], ebx
push	eax
mov	eax, [ebp+arg_0]
push	[ebp+arg_4]
lea	ecx, [eax-8]
call	sub_408F5F
cmp	eax, ebx
jz	short loc_4090C6
mov	esi, eax
jmp	short loc_4090F5

loc_4090C6:
or	[ebp+var_28], 0FFFFFFFFh
push	ebx		; char
lea	ecx, [ebp+var_28]
push	[ebp+lpFileName] ; lpFileName
mov	byte ptr [ebp+var_4], 1
call	sub_42C21B
test	al, al
jnz	short loc_4090E8
call	ds:GetLastError
mov	esi, eax
jmp	short loc_4090EA

loc_4090E8:
xor	esi, esi

loc_4090EA:
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], bl
call	sub_42BD78

loc_4090F5:		; Memory
push	[ebp+lpFileName]
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_409085 endp



; Attributes: bp-based frame

sub_409110 proc	near

var_3C=	dword ptr -3Ch
var_30=	dword ptr -30h
Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_4432FC
call	__EH_prolog
sub	esp, 30h
mov	ecx, [ebp+arg_4]
push	ebx
push	esi
mov	esi, [ebp+arg_0]
push	edi
mov	eax, [esi+94h]
mov	edi, [eax+ecx*4]
lea	eax, [ebp+Memory]
push	edi
push	eax
lea	ecx, [esi-8]
call	sub_408518
and	[ebp+var_4], 0
push	eax
lea	edx, [esi+18h]
lea	ecx, [ebp+var_18]
call	sub_40356A
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 2
call	sub_4284D8
pop	ecx
lea	edx, [ebp+var_18]
push	[ebp+arg_8]
lea	ecx, [ebp+var_3C]
call	sub_409948
mov	esi, [eax]
add	edi, 28h
push	edi
lea	edx, [ebp+var_18]
lea	ecx, [ebp+var_30]
mov	byte ptr [ebp+var_4], 3
call	sub_40356A
mov	eax, [eax]
mov	edx, esi
mov	ecx, eax
mov	byte ptr [ebp+var_4], 4
call	sub_42A0AB
push	[ebp+var_30]	; Memory
mov	bl, al
neg	bl
sbb	bl, bl
inc	bl
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
pop	ecx
test	bl, bl
pop	ecx
jz	short loc_4091B3
call	ds:GetLastError
mov	esi, eax
jmp	short loc_4091B5

loc_4091B3:
xor	esi, esi

loc_4091B5:		; Memory
push	[ebp+var_18]
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	10h
sub_409110 endp



; Attributes: bp-based frame

sub_4091D1 proc	near

Memory=	dword ptr -30h
var_24=	dword ptr -24h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_443318
call	__EH_prolog
sub	esp, 24h
mov	eax, [ebp+arg_C]
push	ebx
push	esi
xor	esi, esi
mov	ecx, [eax]
push	edi
push	esi
push	[ebp+arg_8]
push	eax
call	dword ptr [ecx+0Ch]
cmp	eax, esi
jnz	loc_409299
cmp	[ebp+arg_8], esi
mov	[ebp+var_10], esi
jbe	loc_409297
mov	edi, [ebp+arg_0]
mov	ebx, [ebp+arg_4]

loc_40920A:
mov	eax, [ebx]
mov	ecx, [edi+94h]
mov	esi, [ecx+eax*4]
lea	eax, [ebp+Memory]
push	esi
push	eax
lea	ecx, [edi-8]
call	sub_4085D1
and	[ebp+var_4], 0
push	eax
lea	edx, [edi+18h]
lea	ecx, [ebp+var_24]
call	sub_40356A
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 2
call	sub_4284D8
mov	eax, [esi+20h]
pop	ecx
shr	eax, 4
test	al, 1
jz	short loc_409253
lea	ecx, [ebp+var_24]
call	sub_42A548
jmp	short loc_40925B

loc_409253:
mov	ecx, [ebp+var_24]
call	sub_42A481

loc_40925B:
test	al, al
jz	short loc_4092AA
mov	eax, [ebp+arg_C]
mov	esi, [ebp+var_10]
and	[ebp+var_14], 0
lea	edx, [ebp+var_18]
mov	ecx, [eax]
push	edx
push	eax
mov	[ebp+var_18], esi
call	dword ptr [ecx+10h]
test	eax, eax
jnz	short loc_4092B0
push	[ebp+var_24]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
inc	esi
add	ebx, 4
cmp	esi, [ebp+arg_8]
pop	ecx
mov	[ebp+var_10], esi
jb	loc_40920A

loc_409297:
xor	eax, eax

loc_409299:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	10h

loc_4092AA:
call	ds:GetLastError

loc_4092B0:		; Memory
push	[ebp+var_24]
mov	esi, eax
call	sub_4284D8
pop	ecx
mov	eax, esi
jmp	short loc_409299
sub_4091D1 endp



; Attributes: bp-based frame

sub_4092BF proc	near

var_30=	dword ptr -30h
Memory=	dword ptr -24h
var_20=	dword ptr -20h
var_18=	dword ptr -18h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_443334
call	__EH_prolog
sub	esp, 24h
mov	eax, [ebp+arg_4]
push	ebx
push	esi
mov	esi, [ebp+arg_0]
mov	ecx, [esi+90h]
cmp	eax, ecx
jb	short loc_4092E8
mov	eax, 80070057h
jmp	loc_4093EC

loc_4092E8:
mov	ecx, [esi+94h]
xor	ebx, ebx
mov	eax, [ecx+eax*4]
mov	ecx, [eax+48h]
cmp	[ecx+48h], ebx
jnz	short loc_409301
cmp	[ebp+arg_8], 1Ch
jz	short loc_40930B

loc_409301:
mov	eax, 80004001h
jmp	loc_4093EC

loc_40930B:
add	eax, 28h
push	edi
push	eax
lea	ecx, [ebp+var_18]
call	sub_4030F2
lea	ecx, [ebp+var_18]
mov	[ebp+var_4], ebx
call	sub_406F3F
lea	ecx, [ebp+var_18]
call	sub_406F04
mov	edi, [ebp+arg_C]
mov	ax, [edi]
cmp	ax, bx
jnz	short loc_40934A
lea	eax, [ebp+var_18]
lea	ecx, [esi+0A4h]
push	eax
call	sub_420105
jmp	loc_4093D1

loc_40934A:
cmp	ax, 8
jnz	loc_4093DB
lea	ecx, [ebp+var_30]
call	sub_4093FC
lea	eax, [ebp+var_18]
lea	ecx, [ebp+var_30]
push	eax
mov	byte ptr [ebp+var_4], 1
call	sub_40312C
lea	ecx, [ebp+var_30]
call	sub_406F3F
lea	ecx, [ebp+var_30]
call	sub_406F04
push	dword ptr [edi+8]
lea	ecx, [ebp+Memory]
call	sub_404722
lea	ecx, [ebp+Memory]
call	sub_406F3F
lea	ecx, [ebp+Memory]
call	sub_406F04
cmp	[ebp+var_20], ebx
jnz	short loc_4093AD
lea	eax, [ebp+var_18]
lea	ecx, [esi+0A4h]
push	eax
call	sub_420105
jmp	short loc_4093BC

loc_4093AD:
lea	eax, [ebp+var_30]
lea	ecx, [esi+0A4h]
push	eax
call	sub_4200C0

loc_4093BC:		; Memory
push	[ebp+Memory]
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
push	[ebp+var_30]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx

loc_4093D1:
lea	ecx, [esi-8]
call	sub_407CEB
jmp	short loc_4093E0

loc_4093DB:
mov	ebx, 80070057h

loc_4093E0:		; Memory
push	[ebp+var_18]
call	sub_4284D8
pop	ecx
mov	eax, ebx
pop	edi

loc_4093EC:
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	14h
sub_4092BF endp



; Attributes: bp-based frame

sub_4093FC proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443348
call	__EH_prolog
push	ecx
push	esi
push	edi
mov	esi, ecx
xor	edi, edi
push	3
mov	[ebp+var_10], esi
mov	[esi], edi
mov	[esi+4], edi
mov	[esi+8], edi
call	sub_403396
lea	ecx, [esi+0Ch]
push	3
mov	[ebp+var_4], edi
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_4093FC endp




sub_409444 proc	near
push	esi
mov	esi, ecx
push	dword ptr [esi+0Ch] ; Memory
call	sub_4284D8
push	dword ptr [esi]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx
pop	esi
retn
sub_409444 endp



; Attributes: bp-based frame

sub_40945A proc	near

var_24=	dword ptr -24h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_443364
call	__EH_prolog
sub	esp, 18h
mov	eax, [ebp+arg_4]
push	ebx
push	esi
mov	esi, [ebp+arg_0]
mov	ecx, [esi+84h]
cmp	eax, ecx
jb	short loc_409480
mov	eax, 80070057h
jmp	short loc_4094EF

loc_409480:
mov	ecx, [esi+88h]
mov	ebx, [ebp+arg_8]
push	edi
mov	edi, [ecx+eax*4]
and	dword ptr [ebx], 0
lea	eax, [ebp+var_24]
push	edi
push	eax
lea	ecx, [esi-14h]
call	sub_4085D1
and	[ebp+var_4], 0
push	eax
lea	edx, [esi+0Ch]
lea	ecx, [ebp+Memory]
call	sub_40356A
mov	eax, [eax]
mov	edx, [edi+20h]
lea	ecx, [ebp+arg_4]
mov	byte ptr [ebp+var_4], 1
push	ecx
mov	ecx, eax
call	sub_41FA10
push	[ebp+Memory]	; Memory
test	eax, eax
setnz	byte ptr [ebp+arg_0+3]
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
cmp	byte ptr [ebp+arg_0+3],	0
pop	ecx
pop	ecx
pop	edi
jz	short loc_4094E9
mov	eax, [ebp+arg_4]
mov	[ebx], eax
xor	eax, eax
jmp	short loc_4094EF

loc_4094E9:
call	ds:GetLastError

loc_4094EF:
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_40945A endp




sub_4094FF proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

cmp	[esp+arg_4], 0
mov	ecx, [esp+arg_0]
setnz	al
mov	[ecx+0A8h], al
xor	eax, eax
retn	8
sub_4094FF endp




sub_409516 proc	near

arg_0= word ptr	 4

push	esi
mov	esi, ecx
push	1
and	dword ptr [esi], 0
and	dword ptr [esi+4], 0
and	dword ptr [esi+8], 0
call	sub_403396
mov	eax, [esi]
mov	cx, [esp+4+arg_0]
mov	[eax], cx
mov	eax, [esi]
and	word ptr [eax+2], 0
mov	dword ptr [esi+4], 1
mov	eax, esi
pop	esi
retn	4
sub_409516 endp



; Attributes: bp-based frame

sub_409549 proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ebx
mov	ebx, ecx
mov	ecx, [ebp+arg_4]
push	edi
mov	edi, [ebp+arg_0]
mov	eax, [ebx+8]
add	ecx, edi
cmp	ecx, eax
jle	short loc_409565
sub	eax, edi
mov	[ebp+arg_4], eax

loc_409565:
mov	eax, [ebp+arg_4]
test	eax, eax
jle	short loc_409599
push	esi
mov	esi, edi
shl	esi, 2
mov	[ebp+arg_0], eax

loc_409575:
mov	eax, [ebx+0Ch]
mov	ecx, [eax+esi]
test	ecx, ecx
mov	[ebp+Memory], ecx
jz	short loc_409590
call	sub_409887
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_409590:
add	esi, 4
dec	[ebp+arg_0]
jnz	short loc_409575
pop	esi

loc_409599:
push	[ebp+arg_4]
mov	ecx, ebx
push	edi
call	sub_42847F
pop	edi
pop	ebx
leave
retn	8
sub_409549 endp




sub_4095AA proc	near
mov	eax, ecx
xor	ecx, ecx
mov	[eax+4], ecx
mov	[eax+8], ecx
mov	[eax+0Ch], ecx
mov	dword ptr [eax+10h], 4
mov	dword ptr [eax], offset	off_44BAC0
retn
sub_4095AA endp



; Attributes: bp-based frame

sub_4095C5 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset unknown_libname_14 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	60h		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_10], ecx
xor	eax, eax
cmp	ecx, eax
mov	[ebp+var_4], eax
jz	short loc_4095F1
push	[ebp+arg_0]
call	sub_409802

loc_4095F1:
or	[ebp+var_4], 0FFFFFFFFh
push	eax
mov	ecx, esi
call	sub_429907
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_4095C5 endp



; Attributes: bp-based frame

sub_40960C proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ebx
mov	ebx, ecx
mov	ecx, [ebp+arg_4]
push	edi
mov	edi, [ebp+arg_0]
mov	eax, [ebx+8]
add	ecx, edi
cmp	ecx, eax
jle	short loc_409628
sub	eax, edi
mov	[ebp+arg_4], eax

loc_409628:
mov	eax, [ebp+arg_4]
test	eax, eax
jle	short loc_40965C
push	esi
mov	esi, edi
shl	esi, 2
mov	[ebp+arg_0], eax

loc_409638:
mov	eax, [ebx+0Ch]
mov	ecx, [eax+esi]
test	ecx, ecx
mov	[ebp+Memory], ecx
jz	short loc_409653
call	sub_407A54
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_409653:
add	esi, 4
dec	[ebp+arg_0]
jnz	short loc_409638
pop	esi

loc_40965C:
push	[ebp+arg_4]
mov	ecx, ebx
push	edi
call	sub_42847F
pop	edi
pop	ebx
leave
retn	8
sub_40960C endp



; Attributes: bp-based frame

sub_40966D proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44338C
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44BC70
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_40966D endp



; Attributes: bp-based frame

sub_4096A5 proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ebx
mov	ebx, ecx
mov	ecx, [ebp+arg_4]
push	edi
mov	edi, [ebp+arg_0]
mov	eax, [ebx+8]
add	ecx, edi
cmp	ecx, eax
jle	short loc_4096C1
sub	eax, edi
mov	[ebp+arg_4], eax

loc_4096C1:
mov	eax, [ebp+arg_4]
test	eax, eax
jle	short loc_4096F5
push	esi
mov	esi, edi
shl	esi, 2
mov	[ebp+arg_0], eax

loc_4096D1:
mov	eax, [ebx+0Ch]
mov	ecx, [eax+esi]
test	ecx, ecx
mov	[ebp+Memory], ecx
jz	short loc_4096EC
call	sub_4098AE
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_4096EC:
add	esi, 4
dec	[ebp+arg_0]
jnz	short loc_4096D1
pop	esi

loc_4096F5:
push	[ebp+arg_4]
mov	ecx, ebx
push	edi
call	sub_42847F
pop	edi
pop	ebx
leave
retn	8
sub_4096A5 endp




; int __thiscall sub_409706(void *Memory, char)
sub_409706 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_409722
test	[esp+4+arg_0], 1
jz	short loc_40971C
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_40971C:
mov	eax, esi
pop	esi
retn	4
sub_409706 endp



; Attributes: bp-based frame

sub_409722 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4433A0
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44BCE4
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_409722 endp




; int __thiscall sub_40975A(void *Memory, char)
sub_40975A proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_409776
test	[esp+4+arg_0], 1
jz	short loc_409770
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_409770:
mov	eax, esi
pop	esi
retn	4
sub_40975A endp



; Attributes: bp-based frame

sub_409776 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4433B4
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44BB74
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_409776 endp




; int __thiscall sub_4097AE(void *Memory, char)
sub_4097AE proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_4097CA
test	[esp+4+arg_0], 1
jz	short loc_4097C4
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_4097C4:
mov	eax, esi
pop	esi
retn	4
sub_4097AE endp



; Attributes: bp-based frame

sub_4097CA proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4433C8
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44BAC0
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_4097CA endp



; Attributes: bp-based frame

sub_409802 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4433DC
call	__EH_prolog
push	ecx
mov	eax, [ebp+arg_0]
push	ebx
push	esi
push	edi
mov	ebx, ecx
push	0Ah
pop	ecx
mov	esi, eax
mov	edi, ebx
add	eax, 28h
rep movsd
push	eax
lea	ecx, [ebx+28h]
mov	[ebp+var_10], ebx
call	sub_4030F2
mov	eax, [ebp+arg_0]
mov	cl, [eax+38h]
mov	[ebx+38h], cl
mov	ecx, [eax+40h]
mov	[ebx+40h], ecx
mov	ecx, [eax+44h]
mov	[ebx+44h], ecx
mov	ecx, [eax+48h]
and	[ebp+var_4], 0
add	eax, 4Ch
mov	[ebx+48h], ecx
push	eax
lea	ecx, [ebx+4Ch]
call	sub_4098C3
mov	ecx, [ebp+var_C]
pop	edi
mov	eax, ebx
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_409802 endp




; int __thiscall sub_40986B(void *Memory, char)
sub_40986B proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_40966D
test	[esp+4+arg_0], 1
jz	short loc_409881
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_409881:
mov	eax, esi
pop	esi
retn	4
sub_40986B endp




sub_409887 proc	near
push	esi
mov	esi, ecx
push	dword ptr [esi+44h] ; Memory
call	sub_4284D8
push	dword ptr [esi+38h] ; Memory
call	sub_4284D8
push	dword ptr [esi+0Ch] ; Memory
call	sub_4284D8
push	dword ptr [esi]	; Memory
call	sub_4284D8
add	esp, 10h
pop	esi
retn
sub_409887 endp




sub_4098AE proc	near
push	esi
mov	esi, ecx
push	dword ptr [esi+44h] ; Memory
call	sub_4284D8
pop	ecx
mov	ecx, esi
call	sub_42EEC8
pop	esi
retn
sub_4098AE endp



; Attributes: bp-based frame

sub_4098C3 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4433F0
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
xor	eax, eax
mov	[ebp+var_10], esi
mov	[esi+4], eax
mov	[esi+8], eax
mov	[esi+0Ch], eax
mov	dword ptr [esi+10h], 4
mov	[ebp+var_4], eax
mov	dword ptr [esi], offset	off_44BAC0
call	sub_428327
push	[ebp+arg_0]
mov	ecx, esi
call	sub_40990F
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_4098C3 endp




sub_40990F proc	near

arg_0= dword ptr  4

push	ebx
push	ebp
mov	ebp, [esp+8+arg_0]
push	esi
mov	esi, ecx
push	edi
mov	edi, [ebp+8]
mov	eax, [esi+8]
add	eax, edi
push	eax
call	sub_428378
xor	ebx, ebx
test	edi, edi
jle	short loc_40993F

loc_40992D:
mov	eax, [ebp+0Ch]
mov	ecx, esi
push	dword ptr [eax+ebx*4]
call	sub_4095C5
inc	ebx
cmp	ebx, edi
jl	short loc_40992D

loc_40993F:
mov	eax, esi
pop	edi
pop	esi
pop	ebp
pop	ebx
retn	4
sub_40990F endp



; Attributes: bp-based frame

sub_409948 proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_443404
call	__EH_prolog
sub	esp, 10h
and	[ebp+var_10], 0
push	esi
mov	esi, ecx
push	edx
lea	ecx, [ebp+Memory]
call	sub_4030F2
push	[ebp+arg_0]
and	[ebp+var_4], 0
lea	ecx, [ebp+Memory]
call	sub_403195
lea	eax, [ebp+Memory]
mov	ecx, esi
push	eax
call	sub_4030F2
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_409948 endp



; Attributes: bp-based frame

sub_409999 proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_443418
call	__EH_prolog
sub	esp, 10h
and	[ebp+var_10], 0
push	esi
mov	esi, ecx
push	edx
lea	ecx, [ebp+Memory]
call	sub_4030F2
push	[ebp+arg_0]
and	[ebp+var_4], 0
lea	ecx, [ebp+Memory]
call	sub_40316A
lea	eax, [ebp+Memory]
mov	ecx, esi
push	eax
call	sub_4030F2
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_409999 endp




sub_4099EA proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_408311
sub_4099EA endp




sub_4099F4 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_40841E
sub_4099F4 endp




sub_4099FE proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_40842B
sub_4099FE endp




sub_409A08 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 8
jmp	sub_408311
sub_409A08 endp




sub_409A12 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 8
jmp	sub_40841E
sub_409A12 endp




sub_409A1C proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 8
jmp	sub_40842B
sub_409A1C endp




sub_409A26 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 0Ch
jmp	sub_408311
sub_409A26 endp




sub_409A30 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 0Ch
jmp	sub_40841E
sub_409A30 endp




sub_409A3A proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 0Ch
jmp	sub_40842B
sub_409A3A endp




sub_409A44 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 10h
jmp	sub_408311
sub_409A44 endp




sub_409A4E proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 10h
jmp	sub_40841E
sub_409A4E endp




sub_409A58 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 10h
jmp	sub_40842B
sub_409A58 endp




sub_409A62 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 14h
jmp	sub_408311
sub_409A62 endp




sub_409A6C proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 14h
jmp	sub_40841E
sub_409A6C endp




sub_409A76 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 14h
jmp	sub_40842B
sub_409A76 endp




sub_409A80 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 18h
jmp	sub_408311
sub_409A80 endp




sub_409A8A proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 18h
jmp	sub_40841E
sub_409A8A endp




sub_409A94 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 18h
jmp	sub_40842B
sub_409A94 endp




sub_409A9E proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_408A9C
sub_409A9E endp




sub_409AA8 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_408B11
sub_409AA8 endp




sub_409AB2 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_408B1E
sub_409AB2 endp




sub_409ABC proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 8
jmp	sub_408A9C
sub_409ABC endp




sub_409AC6 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 8
jmp	sub_408B11
sub_409AC6 endp




sub_409AD0 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 8
jmp	sub_408B1E
sub_409AD0 endp




sub_409ADA proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_408957
sub_409ADA endp



; Attributes: bp-based frame

sub_409AE4 proc	near

var_68=	dword ptr -68h
Memory=	dword ptr -5Ch
var_50=	dword ptr -50h
var_44=	dword ptr -44h
var_40=	dword ptr -40h
bstrString= word ptr -38h
var_2C=	byte ptr -2Ch
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_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

mov	eax, offset loc_44344C
call	__EH_prolog
sub	esp, 5Ch
push	ebx
push	esi
mov	esi, [ebp+arg_8]
push	edi
test	esi, esi
jnz	short loc_409B02
xor	eax, eax
jmp	loc_409C88

loc_409B02:
mov	edi, [ebp+arg_10]
lea	eax, [ebp+var_1C]
mov	ebx, [ebp+arg_0]
push	edi
push	eax
lea	eax, [ebp+var_24]
push	eax
lea	eax, [ebp+var_2C]
push	eax
push	esi
push	[ebp+arg_4]
lea	ecx, [ebx-8]
call	sub_408D1F
push	[ebp+var_18]
mov	eax, [edi]
push	[ebp+var_1C]
push	edi
call	dword ptr [eax+0Ch]
test	eax, eax
jnz	loc_409C88
push	[ebp+var_20]
mov	eax, [edi]
push	[ebp+var_24]
push	edi
call	dword ptr [eax+20h]
test	eax, eax
jnz	loc_409C88
push	[ebp+arg_C]
lea	ecx, [ebp+var_44]
call	sub_403091
mov	eax, [ebp+var_40]
xor	ecx, ecx
cmp	eax, ecx
mov	[ebp+var_4], ecx
jnz	short loc_409B6A

loc_409B60:
mov	esi, 80070057h
jmp	loc_409C7D

loc_409B6A:
mov	edx, [ebp+var_44]
cmp	word ptr [edx+eax*2-2],	5Ch
setnz	byte ptr [ebp+arg_0+3]
cmp	byte ptr [ebp+arg_0+3],	0
jz	short loc_409B82
cmp	esi, 1
ja	short loc_409B60

loc_409B82:
mov	eax, [edi]
mov	[ebp+var_14], ecx
mov	[ebp+var_10], ecx
lea	ecx, [ebp+var_14]
push	ecx
push	edi
call	dword ptr [eax+10h]
test	eax, eax
jz	short loc_409B9D
mov	esi, eax
jmp	loc_409C7D

loc_409B9D:
and	[ebp+arg_10], 0
test	esi, esi
jbe	loc_409C7B
mov	eax, [ebp+arg_4]
mov	[ebp+arg_4], eax

loc_409BAF:
mov	eax, [ebp+arg_4]
mov	ecx, [ebx+94h]
mov	eax, [eax]
mov	esi, [ecx+eax*4]
lea	eax, [ebp+var_44]
push	eax
lea	ecx, [ebp+bstrString]
call	sub_4030F2
cmp	byte ptr [ebp+arg_0+3],	0
mov	byte ptr [ebp+var_4], 1
jnz	short loc_409BDF
lea	eax, [esi+28h]
lea	ecx, [ebp+bstrString]
push	eax
call	sub_4031F2

loc_409BDF:
lea	eax, [ebp+var_68]
push	esi
push	eax
lea	ecx, [ebx-8]
call	sub_408518
push	eax
lea	edx, [ebx+18h]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 2
call	sub_40356A
lea	ecx, [esi+28h]
mov	edx, eax
push	ecx
lea	ecx, [ebp+var_50]
mov	byte ptr [ebp+var_4], 3
call	sub_40356A
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_68]	; Memory
mov	byte ptr [ebp+var_4], 5
call	sub_4284D8
mov	eax, [esi+20h]
pop	ecx
shr	eax, 4
test	al, 1
pop	ecx
lea	eax, [ebp+var_14]
push	eax
push	edi
jz	short loc_409C40
lea	edx, [ebp+bstrString]
lea	ecx, [ebp+var_50]
call	sub_40A17F
jmp	short loc_409C4E

loc_409C40:
lea	eax, [ebp+bstrString]
mov	edx, esi
push	eax		; bstrString
lea	ecx, [ebp+var_50]
call	sub_409CB8

loc_409C4E:
test	eax, eax
jnz	short loc_409C99
push	[ebp+var_50]	; Memory
call	sub_4284D8
push	dword ptr [ebp+bstrString] ; Memory
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
inc	[ebp+arg_10]
add	[ebp+arg_4], 4
mov	eax, [ebp+arg_10]
pop	ecx
cmp	eax, [ebp+arg_8]
pop	ecx
jb	loc_409BAF

loc_409C7B:
xor	esi, esi

loc_409C7D:		; Memory
push	[ebp+var_44]
call	sub_4284D8
pop	ecx

loc_409C86:
mov	eax, esi

loc_409C88:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	14h

loc_409C99:		; Memory
push	[ebp+var_50]
mov	esi, eax
call	sub_4284D8
push	dword ptr [ebp+bstrString] ; Memory
call	sub_4284D8
push	[ebp+var_44]	; Memory
call	sub_4284D8
add	esp, 0Ch
jmp	short loc_409C86
sub_409AE4 endp



; Attributes: bp-based frame

; int __stdcall	sub_409CB8(BSTR	bstrString, int, int)
sub_409CB8 proc	near

var_80=	dword ptr -80h
var_74=	dword ptr -74h
var_68=	dword ptr -68h
var_5C=	dword ptr -5Ch
var_50=	dword ptr -50h
var_44=	dword ptr -44h
Memory=	dword ptr -38h
var_2C=	dword ptr -2Ch
var_20=	dword ptr -20h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
bstrString= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_4434C8
call	__EH_prolog
sub	esp, 74h
push	ebx
push	esi
push	edi
mov	edi, ecx
push	[ebp+bstrString]
mov	ebx, edx
lea	ecx, [ebp+var_20]
mov	[ebp+var_14], ebx
call	sub_4030F2
mov	edx, [edi]
mov	ecx, [ebp+var_20]
and	[ebp+var_4], 0
call	sub_4282B1
test	eax, eax
jnz	loc_409D7D
push	offset aOntoItself ; "' onto itself"
lea	ecx, [ebp+var_50]
call	sub_403091
mov	esi, eax
push	offset aCanNotMoveFile ; "can not move file '"
lea	ecx, [ebp+var_44]
mov	byte ptr [ebp+var_4], 1
call	sub_403091
lea	ecx, [ebp+var_20]
mov	edx, eax
push	ecx
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 2
call	sub_40356A
push	esi
mov	edx, eax
lea	ecx, [ebp+var_2C]
mov	byte ptr [ebp+var_4], 3
call	sub_40356A
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_44]	; Memory
call	sub_4284D8
push	[ebp+var_50]	; Memory
mov	byte ptr [ebp+var_4], 5
call	sub_4284D8
mov	eax, [ebp+arg_4]
add	esp, 0Ch
push	[ebp+var_2C]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+18h]
test	eax, eax
mov	esi, eax
jnz	short loc_409D67
mov	esi, 80004004h

loc_409D67:		; Memory
push	[ebp+var_2C]
call	sub_4284D8
push	[ebp+var_20]	; Memory
call	sub_4284D8
pop	ecx
jmp	loc_409F18

loc_409D7D:
and	[ebp+bstrString], 0
lea	edx, [ebp+var_10]
mov	esi, [ebp+arg_4]
push	edx
lea	edx, [ebp+bstrString]
mov	eax, [edi]
push	edx
push	[ebp+var_20]
mov	ecx, [esi]
mov	byte ptr [ebp+var_4], 8
push	ebx
add	ebx, 18h
push	ebx
push	0
push	eax
push	esi
call	dword ptr [ecx+14h]
test	eax, eax
jnz	loc_409F05
cmp	[ebp+var_10], eax
mov	ebx, [ebp+arg_8]
jz	loc_409EF1
push	[ebp+bstrString]
lea	ecx, [ebp+var_2C]
call	sub_403091
mov	eax, [edi]
mov	ecx, [esi]
push	eax
push	esi
mov	byte ptr [ebp+var_4], 9
call	dword ptr [ecx+1Ch]
test	eax, eax
mov	[ebp+arg_4], eax
jz	short loc_409DF9
push	[ebp+var_2C]	; Memory
call	sub_4284D8
pop	ecx
push	[ebp+bstrString] ; bstrString
call	ds:SysFreeString
push	[ebp+var_20]	; Memory
call	sub_4284D8
mov	eax, [ebp+arg_4]
pop	ecx
jmp	loc_409F1B

loc_409DF9:
mov	ecx, [edi]
mov	edx, [ebp+var_2C]
push	ebx
push	esi
call	sub_409F2C
test	al, al
jnz	loc_409EE4
push	offset asc_45B444 ; "'"
lea	ecx, [ebp+var_80]
call	sub_403091
mov	edi, eax
lea	eax, [ebp+var_2C]
lea	ecx, [ebp+var_74]
push	eax
mov	byte ptr [ebp+var_4], 0Ah
call	sub_4030F2
mov	ebx, eax
push	offset asc_45B43C ; " '"
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_403091
mov	[ebp+arg_4], eax
mov	byte ptr [ebp+var_4], 0Ch
call	ds:GetLastError
mov	edx, eax
lea	ecx, [ebp+var_5C]
call	sub_40421E
push	[ebp+arg_4]
mov	edx, eax
lea	ecx, [ebp+var_44]
mov	byte ptr [ebp+var_4], 0Dh
call	sub_40356A
push	ebx
mov	edx, eax
lea	ecx, [ebp+var_50]
mov	byte ptr [ebp+var_4], 0Eh
call	sub_40356A
push	edi
mov	edx, eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 0Fh
call	sub_40356A
push	[ebp+var_50]	; Memory
call	sub_4284D8
push	[ebp+var_44]	; Memory
call	sub_4284D8
push	[ebp+var_5C]	; Memory
call	sub_4284D8
push	[ebp+var_68]	; Memory
call	sub_4284D8
push	[ebp+var_74]	; Memory
call	sub_4284D8
push	[ebp+var_80]	; Memory
mov	byte ptr [ebp+var_4], 11h
call	sub_4284D8
mov	eax, [esi]
add	esp, 18h
push	[ebp+Memory]
push	esi
call	dword ptr [eax+18h]
test	eax, eax
mov	esi, eax
jnz	short loc_409ED0
mov	esi, 80004004h

loc_409ED0:		; Memory
push	[ebp+Memory]
call	sub_4284D8
push	[ebp+var_2C]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx
jmp	short loc_409F07

loc_409EE4:		; Memory
push	[ebp+var_2C]
mov	byte ptr [ebp+var_4], 8
call	sub_4284D8
pop	ecx

loc_409EF1:
mov	eax, [ebp+var_14]
push	ebx
push	esi
mov	ecx, [eax]
mov	eax, [eax+4]
add	[ebx], ecx
adc	[ebx+4], eax
mov	eax, [esi]
call	dword ptr [eax+10h]

loc_409F05:
mov	esi, eax

loc_409F07:		; bstrString
push	[ebp+bstrString]
call	ds:SysFreeString
push	[ebp+var_20]	; Memory
call	sub_4284D8

loc_409F18:
pop	ecx
mov	eax, esi

loc_409F1B:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_409CB8 endp



; Attributes: bp-based frame

sub_409F2C proc	near

var_50=	dword ptr -50h
var_4C=	dword ptr -4Ch
var_48=	dword ptr -48h
var_40=	dword ptr -40h
var_34=	dword ptr -34h
var_28=	dword ptr -28h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
Memory=	dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
lpExistingFileName= dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_4434FC
call	__EH_prolog
sub	esp, 44h
mov	eax, [ebp+arg_0]
mov	[ebp+lpExistingFileName], ecx
mov	[ebp+var_48], eax
mov	eax, [ebp+arg_4]
push	ebx
xor	ebx, ebx
mov	ecx, [eax]
mov	eax, [eax+4]
cmp	byte_45D8B4, bl
push	esi
push	edi
mov	edi, edx
mov	[ebp+var_50], ecx
mov	[ebp+var_4C], eax
mov	[ebp+arg_0], ebx
jz	loc_40A029
push	offset aCopyfileexw ; "CopyFileExW"
push	offset aKernel32_dll_1 ; "kernel32.dll"
call	ds:GetModuleHandleW
push	eax		; hModule
call	ds:GetProcAddress
cmp	eax, ebx
mov	[ebp+arg_4], eax
push	1		; bFailIfExists
jnz	short loc_409F9B
push	edi		; lpNewFileName
push	[ebp+lpExistingFileName] ; lpExistingFileName
call	ds:CopyFileW
neg	eax
sbb	eax, eax
neg	eax
jmp	loc_40A0F1

loc_409F9B:
lea	ecx, [ebp+arg_0]
mov	esi, offset sub_40A102
push	ecx
lea	ecx, [ebp+var_50]
push	ecx
push	esi
push	edi
push	[ebp+lpExistingFileName]
call	eax
test	eax, eax
jz	short loc_409FBA

loc_409FB3:
mov	al, 1
jmp	loc_40A0F1

loc_409FBA:
push	3
lea	ecx, [ebp+var_28]
mov	[ebp+var_28], ebx
mov	[ebp+var_24], ebx
mov	[ebp+var_20], ebx
call	sub_403396
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], ebx
mov	[ebp+Memory], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_403396
mov	ecx, [ebp+lpExistingFileName]
lea	eax, [ebp+Memory]
push	eax
lea	eax, [ebp+var_28]
push	eax
mov	edx, edi
mov	byte ptr [ebp+var_4], 1
call	sub_429EA3
test	al, al
jnz	short loc_40A00D

loc_409FFD:		; Memory
push	[ebp+Memory]
call	sub_4284D8
push	[ebp+var_28]
jmp	loc_40A0E8

loc_40A00D:
lea	eax, [ebp+arg_0]
push	1
push	eax
lea	eax, [ebp+var_50]
push	eax
push	esi
push	[ebp+Memory]
push	[ebp+var_28]
call	[ebp+arg_4]
test	eax, eax
jz	short loc_409FFD
mov	bl, 1
jmp	short loc_409FFD

loc_40A029:		; "CopyFileExA"
push	offset aCopyfileexa
push	offset aKernel32_dll_0 ; "kernel32.dll"
call	ds:GetModuleHandleA
push	eax		; hModule
call	ds:GetProcAddress
cmp	eax, ebx
mov	[ebp+arg_4], eax
jz	short loc_40A0AE
mov	edx, edi
lea	ecx, [ebp+Memory]
call	sub_40A130
mov	edx, [ebp+lpExistingFileName]
mov	esi, [eax]
lea	ecx, [ebp+var_28]
mov	[ebp+var_4], 2
call	sub_40A130
mov	eax, [eax]
lea	ecx, [ebp+arg_0]
push	1
push	ecx
lea	ecx, [ebp+var_50]
mov	byte ptr [ebp+var_4], 3
push	ecx
push	offset sub_40A102
push	esi
push	eax
call	[ebp+arg_4]
mov	esi, eax
push	[ebp+var_28]	; Memory
call	sub_4284D8
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx
cmp	esi, ebx
pop	ecx
jnz	loc_409FB3
call	ds:GetLastError
cmp	eax, 78h
jz	short loc_40A0AE
xor	al, al
jmp	short loc_40A0F1

loc_40A0AE:
mov	edx, edi
lea	ecx, [ebp+var_40]
call	sub_40A130
mov	edx, [ebp+lpExistingFileName]
mov	esi, [eax]
lea	ecx, [ebp+var_34]
mov	[ebp+var_4], 4
call	sub_40A130
mov	eax, [eax]
push	1		; bFailIfExists
push	esi		; lpNewFileName
push	eax		; lpExistingFileName
call	ds:CopyFileA
test	eax, eax
push	[ebp+var_34]	; Memory
setnz	bl
call	sub_4284D8
push	[ebp+var_40]	; Memory

loc_40A0E8:
call	sub_4284D8
pop	ecx
mov	al, bl
pop	ecx

loc_40A0F1:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_409F2C endp



; Attributes: bp-based frame

sub_40A102 proc	near

arg_8= dword ptr  10h
arg_C= dword ptr  14h
arg_30=	dword ptr  38h

push	ebp
mov	ebp, esp
mov	eax, [ebp+arg_30]
mov	ecx, [eax]
mov	edx, [eax+4]
add	ecx, [ebp+arg_8]
mov	eax, [eax+8]
adc	edx, [ebp+arg_C]
mov	[ebp+arg_8], ecx
mov	[ebp+arg_C], edx
mov	ecx, [eax]
lea	edx, [ebp+arg_8]
push	edx
push	eax
call	dword ptr [ecx+10h]
neg	eax
sbb	eax, eax
neg	eax
pop	ebp
retn	34h
sub_40A102 endp



; Attributes: bp-based frame

sub_40A130 proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443510
call	__EH_prolog
sub	esp, 10h
and	[ebp+var_10], 0
push	esi
mov	esi, ecx
push	edx
lea	ecx, [ebp+Memory]
call	sub_403091
and	[ebp+var_4], 0
call	ds:AreFileApisANSI
neg	eax
sbb	eax, eax
lea	edx, [ebp+Memory]
inc	eax
mov	ecx, esi
push	eax
call	sub_428673
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_40A130 endp



; Attributes: bp-based frame

sub_40A17F proc	near

var_A0=	byte ptr -0A0h
var_80=	dword ptr -80h
var_78=	dword ptr -78h
var_58=	dword ptr -58h
var_4C=	dword ptr -4Ch
var_40=	dword ptr -40h
var_3C=	dword ptr -3Ch
bstrString= word ptr -30h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_443597
call	__EH_prolog
sub	esp, 94h
push	ebx
push	esi
mov	esi, [ebp+arg_0]
push	edi
push	[ebp+arg_4]
mov	edi, edx
mov	eax, [esi]
mov	ebx, ecx
push	esi
call	dword ptr [eax+10h]
test	eax, eax
jnz	loc_40A42C
push	edi
lea	ecx, [ebp+var_24]
call	sub_4030F2
mov	edi, [ebx+4]
and	[ebp+var_4], 0
cmp	[ebp+var_20], edi
jl	loc_40A297
lea	eax, [ebp+Memory]
push	edi
push	eax
lea	ecx, [ebp+var_24]
call	sub_403228
mov	edx, [eax]
mov	ecx, [ebx]
mov	byte ptr [ebp+var_4], 1
call	sub_4282B1
test	eax, eax
push	[ebp+Memory]	; Memory
setz	byte ptr [ebp+arg_0+3]
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
cmp	byte ptr [ebp+arg_0+3],	0
pop	ecx
jz	loc_40A297
cmp	[ebp+var_20], edi
jz	short loc_40A20D
mov	eax, [ebp+var_24]
cmp	word ptr [eax+edi*2], 5Ch
jnz	loc_40A297

loc_40A20D:		; "' onto itself"
push	offset aOntoItself
lea	ecx, [ebp+var_4C]
call	sub_403091
mov	edi, eax
push	offset aCanNotCopyFold ; "can not copy folder '"
lea	ecx, [ebp+var_58]
mov	byte ptr [ebp+var_4], 2
call	sub_403091
lea	ecx, [ebp+var_24]
mov	edx, eax
push	ecx
lea	ecx, [ebp+bstrString]
mov	byte ptr [ebp+var_4], 3
call	sub_40356A
push	edi
mov	edx, eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 4
call	sub_40356A
push	dword ptr [ebp+bstrString] ; Memory
call	sub_4284D8
push	[ebp+var_58]	; Memory
call	sub_4284D8
push	[ebp+var_4C]	; Memory
mov	byte ptr [ebp+var_4], 6
call	sub_4284D8
mov	eax, [esi]
add	esp, 0Ch
push	[ebp+Memory]
push	esi
call	dword ptr [eax+18h]
test	eax, eax
mov	esi, eax
jnz	short loc_40A281
mov	esi, 80004004h

loc_40A281:		; Memory
push	[ebp+Memory]

loc_40A284:
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
pop	ecx
jmp	loc_40A3FE

loc_40A297:
mov	ecx, [ebp+var_24]
call	sub_42A264
test	al, al
jnz	short loc_40A2E8
push	offset aCanNotCreateFo ; "can not create folder	"
lea	ecx, [ebp+var_4C]
call	sub_403091
lea	ecx, [ebp+var_24]
mov	edx, eax
push	ecx
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 9
call	sub_40356A
push	[ebp+var_4C]	; Memory
mov	byte ptr [ebp+var_4], 0Bh
call	sub_4284D8
mov	eax, [esi]
pop	ecx
push	[ebp+Memory]
push	esi
call	dword ptr [eax+18h]
test	eax, eax
mov	esi, eax
jnz	short loc_40A2E3
mov	esi, 80004004h

loc_40A2E3:
push	[ebp+Memory]
jmp	short loc_40A284

loc_40A2E8:		; "*"
push	offset asc_45B41C
lea	ecx, [ebp+Memory]
call	sub_403091
lea	eax, [ebp+Memory]
mov	edx, ebx
push	eax
lea	ecx, [ebp+var_4C]
mov	byte ptr [ebp+var_4], 0Ch
call	sub_40A43D
or	[ebp+var_40], 0FFFFFFFFh
push	eax
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 0Eh
call	sub_4030F2
push	[ebp+var_4C]	; Memory
call	sub_4284D8
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 10h
call	sub_4284D8
pop	ecx
pop	ecx
lea	ecx, [ebp+var_A0]
call	sub_404EA2
mov	byte ptr [ebp+var_4], 12h

loc_40A33D:
lea	eax, [ebp+var_A0]
lea	ecx, [ebp+var_40]
push	eax
call	sub_42B72E
test	al, al
jz	loc_40A403
lea	eax, [ebp+var_78]
mov	edx, ebx
push	eax
lea	ecx, [ebp+Memory]
call	sub_40A43D
lea	eax, [ebp+var_78]
lea	edx, [ebp+var_24]
push	eax
lea	ecx, [ebp+bstrString]
mov	byte ptr [ebp+var_4], 13h
call	sub_40A43D
mov	eax, [ebp+var_80]
push	[ebp+arg_4]
shr	eax, 4
test	al, 1
mov	byte ptr [ebp+var_4], 14h
push	esi
jz	short loc_40A394
lea	edx, [ebp+bstrString]
lea	ecx, [ebp+Memory]
call	sub_40A17F
jmp	short loc_40A3A6

loc_40A394:
lea	eax, [ebp+bstrString]
lea	edx, [ebp+var_A0]
push	eax		; bstrString
lea	ecx, [ebp+Memory]
call	sub_409CB8

loc_40A3A6:
test	eax, eax
jnz	short loc_40A3C5
push	dword ptr [ebp+bstrString] ; Memory
call	sub_4284D8
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 12h
call	sub_4284D8
pop	ecx
pop	ecx
jmp	loc_40A33D

loc_40A3C5:		; Memory
push	dword ptr [ebp+bstrString]
mov	esi, eax
call	sub_4284D8
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_78]	; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
add	esp, 10h
lea	ecx, [ebp+var_40]
call	sub_42B047
push	[ebp+var_24]	; Memory
call	sub_4284D8

loc_40A3FE:
pop	ecx
mov	eax, esi
jmp	short loc_40A42C

loc_40A403:		; Memory
push	[ebp+var_78]
call	sub_4284D8
push	[ebp+var_3C]	; Memory
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
pop	ecx
pop	ecx
lea	ecx, [ebp+var_40]
call	sub_42B047
push	[ebp+var_24]	; Memory
call	sub_4284D8
pop	ecx
xor	eax, eax

loc_40A42C:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_40A17F endp



; Attributes: bp-based frame

sub_40A43D proc	near

var_28=	dword ptr -28h
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4435B4
call	__EH_prolog
sub	esp, 1Ch
and	[ebp+var_10], 0
push	esi
mov	esi, ecx
push	edi
mov	edi, edx
push	5Ch
lea	ecx, [ebp+var_28]
call	sub_409516
and	[ebp+var_4], 0
push	eax
mov	edx, edi
lea	ecx, [ebp+Memory]
call	sub_40356A
push	[ebp+arg_0]
mov	edx, eax
mov	ecx, esi
mov	byte ptr [ebp+var_4], 1
call	sub_40356A
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_28]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_40A43D endp



; Attributes: bp-based frame

; int __stdcall	sub_40A4A1(BSTR	bstrString, int, int)
sub_40A4A1 proc	near

var_50=	dword ptr -50h
var_44=	dword ptr -44h
var_38=	dword ptr -38h
Memory=	dword ptr -2Ch
var_20=	dword ptr -20h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
bstrString= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_443608
call	__EH_prolog
sub	esp, 44h
push	ebx
push	esi
push	edi
mov	edi, ecx
push	[ebp+bstrString]
mov	ebx, edx
lea	ecx, [ebp+var_20]
mov	[ebp+var_14], ebx
call	sub_4030F2
mov	edx, [edi]
mov	ecx, [ebp+var_20]
and	[ebp+var_4], 0
call	sub_4282B1
test	eax, eax
jnz	loc_40A566
push	offset aOntoItself ; "' onto itself"
lea	ecx, [ebp+var_50]
call	sub_403091
mov	esi, eax
push	offset aCanNotMoveFile ; "can not move file '"
lea	ecx, [ebp+var_44]
mov	byte ptr [ebp+var_4], 1
call	sub_403091
lea	ecx, [ebp+var_20]
mov	edx, eax
push	ecx
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 2
call	sub_40356A
push	esi
mov	edx, eax
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 3
call	sub_40356A
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_44]	; Memory
call	sub_4284D8
push	[ebp+var_50]	; Memory
mov	byte ptr [ebp+var_4], 5
call	sub_4284D8
mov	eax, [ebp+arg_4]
add	esp, 0Ch
push	[ebp+var_38]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+18h]
test	eax, eax
mov	esi, eax
jnz	short loc_40A550
mov	esi, 80004004h

loc_40A550:		; Memory
push	[ebp+var_38]
call	sub_4284D8
push	[ebp+var_20]	; Memory
call	sub_4284D8
pop	ecx
jmp	loc_40A69B

loc_40A566:
and	[ebp+bstrString], 0
lea	edx, [ebp+var_10]
mov	esi, [ebp+arg_4]
push	edx
lea	edx, [ebp+bstrString]
mov	eax, [edi]
push	edx
push	[ebp+var_20]
mov	ecx, [esi]
mov	byte ptr [ebp+var_4], 8
push	ebx
add	ebx, 18h
push	ebx
push	0
push	eax
push	esi
call	dword ptr [ecx+14h]
test	eax, eax
jz	short loc_40A597

loc_40A590:
mov	esi, eax
jmp	loc_40A68A

loc_40A597:
cmp	[ebp+var_10], 0
mov	ebx, [ebp+arg_8]
jz	loc_40A66C
push	[ebp+bstrString]
lea	ecx, [ebp+Memory]
call	sub_403091
mov	eax, [edi]
mov	ecx, [esi]
push	eax
push	esi
mov	byte ptr [ebp+var_4], 9
call	dword ptr [ecx+1Ch]
test	eax, eax
mov	[ebp+arg_4], eax
jz	short loc_40A5E6
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
push	[ebp+bstrString] ; bstrString
call	ds:SysFreeString
push	[ebp+var_20]	; Memory
call	sub_4284D8
mov	eax, [ebp+arg_4]
pop	ecx
jmp	loc_40A69E

loc_40A5E6:
mov	ecx, [edi]
mov	edx, [ebp+Memory]
push	ebx
push	esi
call	sub_40A6AF
test	al, al
jnz	short loc_40A65F
push	offset aCanNotMoveToFi ; "can not move to file "
lea	ecx, [ebp+var_50]
call	sub_403091
lea	ecx, [ebp+Memory]
mov	edx, eax
push	ecx
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 0Ah
call	sub_40356A
push	[ebp+var_50]	; Memory
mov	byte ptr [ebp+var_4], 0Ch
call	sub_4284D8
mov	eax, [esi]
pop	ecx
push	[ebp+var_38]
push	esi
call	dword ptr [eax+18h]
mov	edi, eax
push	[ebp+var_38]	; Memory
test	edi, edi
jz	short loc_40A659
call	sub_4284D8
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx
push	[ebp+bstrString] ; bstrString
call	ds:SysFreeString
push	[ebp+var_20]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, edi
jmp	short loc_40A69E

loc_40A659:
call	sub_4284D8
pop	ecx

loc_40A65F:		; Memory
push	[ebp+Memory]
mov	byte ptr [ebp+var_4], 8
call	sub_4284D8
pop	ecx

loc_40A66C:
mov	eax, [ebp+var_14]
push	ebx
push	esi
mov	ecx, [eax]
mov	eax, [eax+4]
add	[ebx], ecx
adc	[ebx+4], eax
mov	eax, [esi]
call	dword ptr [eax+10h]
test	eax, eax
jnz	loc_40A590
xor	esi, esi

loc_40A68A:		; bstrString
push	[ebp+bstrString]
call	ds:SysFreeString
push	[ebp+var_20]	; Memory
call	sub_4284D8

loc_40A69B:
pop	ecx
mov	eax, esi

loc_40A69E:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_40A4A1 endp



; Attributes: bp-based frame

sub_40A6AF proc	near

var_3C=	dword ptr -3Ch
var_38=	dword ptr -38h
var_34=	dword ptr -34h
var_2C=	dword ptr -2Ch
var_28=	dword ptr -28h
var_24=	dword ptr -24h
Memory=	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_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_443624
call	__EH_prolog
sub	esp, 30h
mov	eax, [ebp+arg_0]
push	ebx
mov	[ebp+var_34], eax
mov	eax, [ebp+arg_4]
mov	[ebp+var_14], ecx
push	esi
mov	ecx, [eax]
mov	eax, [eax+4]
push	edi
push	offset aMovefilewithpr ; "MoveFileWithProgressW"
mov	[ebp+var_10], edx
push	offset aKernel32_dll_0 ; "kernel32.dll"
mov	[ebp+var_3C], ecx
mov	[ebp+var_38], eax
call	ds:GetModuleHandleA
push	eax		; hModule
call	ds:GetProcAddress
mov	edi, eax
xor	ebx, ebx
cmp	edi, ebx
jz	loc_40A7BC
lea	eax, [ebp+var_3C]
push	2
mov	esi, offset sub_40A102
push	eax
push	esi
push	[ebp+var_10]
push	[ebp+var_14]
call	edi
test	eax, eax
jz	short loc_40A71B
mov	al, 1
jmp	loc_40A7C7

loc_40A71B:
call	ds:GetLastError
cmp	eax, 78h
jz	loc_40A7BC
push	3
lea	ecx, [ebp+var_2C]
mov	[ebp+var_2C], ebx
mov	[ebp+var_28], ebx
mov	[ebp+var_24], ebx
call	sub_403396
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], ebx
mov	[ebp+Memory], ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
call	sub_403396
mov	edx, [ebp+var_10]
mov	ecx, [ebp+var_14]
lea	eax, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
push	eax
lea	eax, [ebp+var_2C]
push	eax
call	sub_429EA3
test	al, al
jz	short loc_40A790
lea	eax, [ebp+var_3C]
push	2
push	eax
push	esi
push	[ebp+Memory]
push	[ebp+var_2C]
call	edi
test	eax, eax
jz	short loc_40A785
mov	bl, 1
jmp	short loc_40A790

loc_40A785:
call	ds:GetLastError
cmp	eax, 78h
jz	short loc_40A7A6

loc_40A790:		; Memory
push	[ebp+Memory]
call	sub_4284D8
push	[ebp+var_2C]	; Memory
call	sub_4284D8
pop	ecx
mov	al, bl
pop	ecx
jmp	short loc_40A7C7

loc_40A7A6:		; Memory
push	[ebp+Memory]
call	sub_4284D8
push	[ebp+var_2C]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx
pop	ecx

loc_40A7BC:
mov	edx, [ebp+var_10]
mov	ecx, [ebp+var_14]
call	sub_42A0AB

loc_40A7C7:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_40A6AF endp



; Attributes: bp-based frame

sub_40A7D8 proc	near

var_94=	byte ptr -94h
var_74=	dword ptr -74h
var_6C=	dword ptr -6Ch
bstrString= word ptr -4Ch
var_40=	dword ptr -40h
var_3C=	dword ptr -3Ch
var_30=	dword ptr -30h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_4436BB
call	__EH_prolog
sub	esp, 88h
push	esi
mov	esi, ecx
push	edi
push	edx
lea	ecx, [ebp+var_24]
call	sub_4030F2
mov	edi, [esi+4]
and	[ebp+var_4], 0
cmp	[ebp+var_20], edi
jl	loc_40A8C9
push	ebx
lea	eax, [ebp+Memory]
push	edi
push	eax
lea	ecx, [ebp+var_24]
call	sub_403228
mov	edx, [eax]
mov	ecx, [esi]
mov	byte ptr [ebp+var_4], 1
call	sub_4282B1
test	eax, eax
push	[ebp+Memory]	; Memory
setz	bl
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
pop	ecx
test	bl, bl
pop	ebx
jz	loc_40A8C9
cmp	[ebp+var_20], edi
jz	short loc_40A84A
mov	eax, [ebp+var_24]
cmp	word ptr [eax+edi*2], 5Ch
jnz	short loc_40A8C9

loc_40A84A:		; "' onto itself"
push	offset aOntoItself
lea	ecx, [ebp+var_30]
call	sub_403091
mov	esi, eax
push	offset aCanNotMoveFold ; "can not move folder '"
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 2
call	sub_403091
lea	ecx, [ebp+var_24]
mov	edx, eax
push	ecx
lea	ecx, [ebp+bstrString]
mov	byte ptr [ebp+var_4], 3
call	sub_40356A
push	esi
mov	edx, eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 4
call	sub_40356A
push	dword ptr [ebp+bstrString] ; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
push	[ebp+var_30]	; Memory
mov	byte ptr [ebp+var_4], 6
call	sub_4284D8
mov	eax, [ebp+arg_0]
add	esp, 0Ch
push	[ebp+Memory]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+18h]
test	eax, eax
mov	esi, eax
jnz	short loc_40A8C1
mov	esi, 80004004h

loc_40A8C1:
push	[ebp+Memory]
jmp	loc_40AAB7

loc_40A8C9:
push	[ebp+arg_4]
mov	edi, [ebp+arg_0]
mov	ecx, [esi]
mov	edx, [ebp+var_24]
push	edi
call	sub_40A6AF
test	al, al
jnz	loc_40AACA
mov	ecx, [ebp+var_24]
call	sub_42A264
test	al, al
jnz	short loc_40A936
push	offset aCanNotCreateFo ; "can not create folder	"
lea	ecx, [ebp+var_30]
call	sub_403091
lea	ecx, [ebp+var_24]
mov	edx, eax
push	ecx
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 9
call	sub_40356A
push	[ebp+var_30]	; Memory
mov	byte ptr [ebp+var_4], 0Bh
call	sub_4284D8
mov	eax, [edi]
pop	ecx
push	[ebp+Memory]
push	edi
call	dword ptr [eax+18h]
test	eax, eax
mov	esi, eax
jnz	short loc_40A92E
mov	esi, 80004004h

loc_40A92E:
push	[ebp+Memory]
jmp	loc_40AAB7

loc_40A936:		; "*"
push	offset asc_45B41C
lea	ecx, [ebp+Memory]
call	sub_403091
lea	eax, [ebp+Memory]
mov	edx, esi
push	eax
lea	ecx, [ebp+var_30]
mov	byte ptr [ebp+var_4], 0Ch
call	sub_40A43D
or	[ebp+var_40], 0FFFFFFFFh
push	eax
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 0Eh
call	sub_4030F2
push	[ebp+var_30]	; Memory
call	sub_4284D8
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 10h
call	sub_4284D8
pop	ecx
pop	ecx
lea	ecx, [ebp+var_94]
call	sub_404EA2
mov	byte ptr [ebp+var_4], 12h

loc_40A98B:
lea	eax, [ebp+var_94]
lea	ecx, [ebp+var_40]
push	eax
call	sub_42B72E
test	al, al
jz	loc_40AA4E
lea	eax, [ebp+var_6C]
mov	edx, esi
push	eax
lea	ecx, [ebp+Memory]
call	sub_40A43D
lea	eax, [ebp+var_6C]
lea	edx, [ebp+var_24]
push	eax
lea	ecx, [ebp+bstrString]
mov	byte ptr [ebp+var_4], 13h
call	sub_40A43D
mov	eax, [ebp+var_74]
push	[ebp+arg_4]
shr	eax, 4
test	al, 1
mov	byte ptr [ebp+var_4], 14h
push	edi
jz	short loc_40A9E2
lea	edx, [ebp+bstrString]
lea	ecx, [ebp+Memory]
call	sub_40A7D8
jmp	short loc_40A9F4

loc_40A9E2:
lea	eax, [ebp+bstrString]
lea	edx, [ebp+var_94]
push	eax		; bstrString
lea	ecx, [ebp+Memory]
call	sub_40A4A1

loc_40A9F4:
test	eax, eax
jnz	short loc_40AA13
push	dword ptr [ebp+bstrString] ; Memory
call	sub_4284D8
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 12h
call	sub_4284D8
pop	ecx
pop	ecx
jmp	loc_40A98B

loc_40AA13:		; Memory
push	dword ptr [ebp+bstrString]
mov	esi, eax
call	sub_4284D8
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_6C]	; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
add	esp, 10h
lea	ecx, [ebp+var_40]
call	sub_42B047
push	[ebp+var_24]	; Memory
call	sub_4284D8
jmp	short loc_40AAC5

loc_40AA4E:		; Memory
push	[ebp+var_6C]
call	sub_4284D8
push	[ebp+var_3C]	; Memory
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
pop	ecx
pop	ecx
lea	ecx, [ebp+var_40]
call	sub_42B047
mov	ecx, [esi]
call	sub_42A00C
test	al, al
jnz	short loc_40AACA
push	offset aCanNotRemoveFo ; "can not remove folder"
lea	ecx, [ebp+var_30]
call	sub_403091
push	esi
mov	edx, eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 15h
call	sub_40356A
push	[ebp+var_30]	; Memory
mov	byte ptr [ebp+var_4], 17h
call	sub_4284D8
mov	eax, [edi]
pop	ecx
push	[ebp+Memory]
push	edi
call	dword ptr [eax+18h]
test	eax, eax
mov	esi, eax
jnz	short loc_40AAB4
mov	esi, 80004004h

loc_40AAB4:		; Memory
push	[ebp+Memory]

loc_40AAB7:
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
pop	ecx

loc_40AAC5:
pop	ecx
mov	eax, esi
jmp	short loc_40AAD5

loc_40AACA:		; Memory
push	[ebp+var_24]
call	sub_4284D8
pop	ecx
xor	eax, eax

loc_40AAD5:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_40A7D8 endp



; Attributes: bp-based frame

sub_40AAE5 proc	near

var_68=	dword ptr -68h
var_5C=	dword ptr -5Ch
Memory=	dword ptr -50h
bstrString= dword ptr -44h
var_38=	dword ptr -38h
var_34=	dword ptr -34h
var_2C=	byte ptr -2Ch
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_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

mov	eax, offset loc_443700
call	__EH_prolog
sub	esp, 5Ch
push	ebx
push	esi
mov	esi, [ebp+arg_8]
push	edi
test	esi, esi
jnz	short loc_40AB03
xor	eax, eax
jmp	loc_40ACEB

loc_40AB03:
mov	eax, [ebp+arg_0]
mov	edi, [ebp+arg_10]
mov	ebx, [ebp+arg_4]
push	edi
lea	ecx, [eax-8]
lea	eax, [ebp+var_1C]
push	eax
lea	eax, [ebp+var_24]
push	eax
lea	eax, [ebp+var_2C]
push	eax
push	esi
push	ebx
call	sub_408D1F
push	[ebp+var_18]
mov	eax, [edi]
push	[ebp+var_1C]
push	edi
call	dword ptr [eax+0Ch]
test	eax, eax
jnz	loc_40ACEB
push	[ebp+var_20]
mov	eax, [edi]
push	[ebp+var_24]
push	edi
call	dword ptr [eax+20h]
test	eax, eax
jnz	loc_40ACEB
push	[ebp+arg_C]
lea	ecx, [ebp+var_38]
call	sub_403091
mov	eax, [ebp+var_34]
and	[ebp+var_4], 0
test	eax, eax
jnz	short loc_40AB6B

loc_40AB61:
mov	esi, 80070057h
jmp	loc_40ACE0

loc_40AB6B:
mov	ecx, [ebp+var_38]
cmp	word ptr [ecx+eax*2-2],	5Ch
setnz	byte ptr [ebp+arg_10+3]
cmp	byte ptr [ebp+arg_10+3], 0
jz	short loc_40AB85
cmp	esi, 1
jbe	short loc_40ABE4
jmp	short loc_40AB61

loc_40AB85:
call	sub_42A264
test	al, al
jnz	short loc_40ABE4
push	offset aCanNotCreateFo ; "can not create folder	"
lea	ecx, [ebp+bstrString]
call	sub_403091
lea	ecx, [ebp+var_38]
mov	edx, eax
push	ecx
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_40356A
push	[ebp+bstrString] ; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
mov	eax, [edi]
pop	ecx
push	[ebp+Memory]
push	edi
call	dword ptr [eax+18h]
test	eax, eax
mov	esi, eax
jnz	short loc_40ABCE
mov	esi, 80004004h

loc_40ABCE:		; Memory
push	[ebp+Memory]
call	sub_4284D8
push	[ebp+var_38]	; Memory
call	sub_4284D8
pop	ecx
jmp	loc_40ACE8

loc_40ABE4:
mov	eax, [edi]
and	[ebp+var_14], 0
and	[ebp+var_10], 0
lea	ecx, [ebp+var_14]
push	ecx
push	edi
call	dword ptr [eax+10h]
test	eax, eax
jz	short loc_40AC01
mov	esi, eax
jmp	loc_40ACE0

loc_40AC01:
and	[ebp+arg_4], 0
test	esi, esi
jbe	loc_40ACDE

loc_40AC0D:
mov	ecx, [ebp+arg_0]
mov	eax, [ebx]
mov	ecx, [ecx+94h]
mov	esi, [ecx+eax*4]
lea	eax, [ebp+var_38]
push	eax
lea	ecx, [ebp+bstrString]
call	sub_4030F2
cmp	byte ptr [ebp+arg_10+3], 0
mov	byte ptr [ebp+var_4], 4
jnz	short loc_40AC3D
lea	eax, [esi+28h]
lea	ecx, [ebp+bstrString]
push	eax
call	sub_4031F2

loc_40AC3D:
lea	eax, [ebp+var_68]
push	esi
push	eax
mov	eax, [ebp+arg_0]
lea	ecx, [eax-8]
call	sub_408518
push	eax
mov	eax, [ebp+arg_0]
lea	ecx, [ebp+var_5C]
mov	byte ptr [ebp+var_4], 5
lea	edx, [eax+18h]
call	sub_40356A
lea	ecx, [esi+28h]
mov	edx, eax
push	ecx
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 6
call	sub_40356A
push	[ebp+var_5C]	; Memory
call	sub_4284D8
push	[ebp+var_68]	; Memory
mov	byte ptr [ebp+var_4], 8
call	sub_4284D8
mov	eax, [esi+20h]
pop	ecx
shr	eax, 4
test	al, 1
pop	ecx
lea	eax, [ebp+var_14]
push	eax
push	edi
jz	short loc_40ACA4
lea	edx, [ebp+bstrString]
lea	ecx, [ebp+Memory]
call	sub_40A7D8
jmp	short loc_40ACB2

loc_40ACA4:
lea	eax, [ebp+bstrString]
mov	edx, esi
push	eax		; bstrString
lea	ecx, [ebp+Memory]
call	sub_40A4A1

loc_40ACB2:
test	eax, eax
jnz	short loc_40ACFC
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+bstrString] ; Memory
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
inc	[ebp+arg_4]
pop	ecx
mov	eax, [ebp+arg_4]
add	ebx, 4
cmp	eax, [ebp+arg_8]
pop	ecx
jb	loc_40AC0D

loc_40ACDE:
xor	esi, esi

loc_40ACE0:		; Memory
push	[ebp+var_38]
call	sub_4284D8

loc_40ACE8:
pop	ecx

loc_40ACE9:
mov	eax, esi

loc_40ACEB:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	14h

loc_40ACFC:		; Memory
push	[ebp+Memory]
mov	esi, eax
call	sub_4284D8
push	[ebp+bstrString] ; Memory
call	sub_4284D8
push	[ebp+var_38]	; Memory
call	sub_4284D8
add	esp, 0Ch
jmp	short loc_40ACE9
sub_40AAE5 endp



; Attributes: bp-based frame

sub_40AD1B proc	near

var_24=	dword ptr -24h
Memory=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443714
call	__EH_prolog
sub	esp, 18h
push	ebx
push	esi
mov	ebx, ecx
push	edi
xor	esi, esi
mov	edi, edx
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], esi
mov	[ebp+var_14], esi
mov	[ebp+var_10], esi
call	sub_403396
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], esi
call	sub_41D79C
test	al, al
jnz	short loc_40AD5D
push	[ebp+Memory]	; Memory
call	sub_4284D8
jmp	short loc_40AD9A

loc_40AD5D:
push	off_45B5C8
lea	ecx, [ebp+Memory]
call	sub_403195
lea	ecx, [ebp+Memory]
push	edi
call	sub_403195
lea	edx, [ebp+Memory]
lea	ecx, [ebp+var_24]
call	sub_43A785
push	esi
push	esi
push	dword ptr [eax]
push	ebx
call	sub_441A9D
push	[ebp+var_24]	; Memory
call	sub_4284D8
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_40AD9A:
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_40AD1B endp

call	sub_40ADB4
jmp	loc_40ADBE



sub_40ADB4 proc	near
mov	ecx, offset unk_45D8F0
jmp	sub_40AE0C
sub_40ADB4 endp


loc_40ADBE:
push	offset loc_40ADCA
call	_atexit
pop	ecx
retn

loc_40ADCA:
mov	ecx, offset unk_45D8F0
jmp	$+5
; START	OF FUNCTION CHUNK FOR sub_4437F7

loc_40ADD4:
mov	eax, offset sub_443728
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp-10h], esi
mov	dword ptr [esi], offset	off_44BCEC
and	dword ptr [ebp-4], 0
call	sub_428327
or	dword ptr [ebp-4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp-0Ch]
pop	esi
mov	large fs:0, ecx
leave
retn
; END OF FUNCTION CHUNK	FOR sub_4437F7



sub_40AE0C proc	near
mov	eax, ecx
xor	ecx, ecx
mov	[eax+4], ecx
mov	[eax+8], ecx
mov	[eax+0Ch], ecx
mov	dword ptr [eax+10h], 4
mov	dword ptr [eax], offset	off_44BCEC
retn
sub_40AE0C endp

call	sub_40AE31
jmp	loc_40AE4F



sub_40AE31 proc	near
xor	eax, eax
push	3
mov	ecx, offset dword_45D8E0
mov	dword_45D8E0, eax
mov	dword_45D8E4, eax
mov	dword_45D8E8, eax
call	sub_403396
retn
sub_40AE31 endp


loc_40AE4F:
push	offset loc_40AE5B
call	_atexit
pop	ecx
retn

loc_40AE5B:
push	dword_45D8E0
call	sub_4284D8
pop	ecx
retn


; Attributes: bp-based frame

sub_40AE68 proc	near

var_48=	dword ptr -48h
var_3C=	dword ptr -3Ch
Memory=	dword ptr -30h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
lpFileName= dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44375C
call	__EH_prolog
sub	esp, 3Ch
push	ebx
push	esi
mov	esi, offset dword_45D8E0
push	edi
mov	ecx, esi	; cbData
call	sub_41E873
mov	edi, offset unk_45D8F0
mov	ecx, edi
call	sub_428327
xor	ebx, ebx
cmp	dword_45D8E4, ebx
jz	loc_40AF8A
mov	ecx, dword_45D8E0
mov	edx, offset asc_45B600 ; "-"
call	sub_42828A
cmp	eax, ebx
jz	loc_40AF8A
push	esi
lea	ecx, [ebp+lpFileName]
call	sub_4030F2
push	ebx
push	5Ch
lea	ecx, [ebp+lpFileName]
mov	[ebp+var_4], ebx
call	sub_40B7E1
test	eax, eax
jge	loc_40AF77
push	ebx
push	2Eh
lea	ecx, [ebp+lpFileName]
call	sub_40B7E1
test	eax, eax
jge	short loc_40AEF1
push	offset a_txt_0	; ".txt"
lea	ecx, [ebp+lpFileName]
call	sub_403195

loc_40AEF1:
push	3
lea	ecx, [ebp+var_24]
mov	[ebp+var_24], ebx
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
call	sub_403396
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 1
call	sub_41D79C
test	al, al
jz	short loc_40AF6B
push	offset aLang	; "Lang\\"
lea	ecx, [ebp+var_48]
call	sub_403091
push	eax
lea	edx, [ebp+var_24]
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 2
call	sub_40356A
lea	ecx, [ebp+lpFileName]
mov	edx, eax
push	ecx
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 3
call	sub_40356A
push	eax
lea	ecx, [ebp+lpFileName]
mov	byte ptr [ebp+var_4], 4
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
push	[ebp+var_48]	; Memory
call	sub_4284D8
add	esp, 0Ch

loc_40AF6B:		; Memory
push	[ebp+var_24]
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx

loc_40AF77:		; lpFileName
push	[ebp+lpFileName]
mov	ecx, edi
call	sub_427BC6
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
pop	ecx

loc_40AF8A:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_40AE68 endp

call	sub_40AFA3
jmp	loc_40AFAD



sub_40AFA3 proc	near
mov	ecx, offset stru_45D8C8	; lpCriticalSection
jmp	sub_441910
sub_40AFA3 endp


loc_40AFAD:
push	offset loc_40AFB9
call	_atexit
pop	ecx
retn

loc_40AFB9:
push	offset stru_45D8C8
call	ds:DeleteCriticalSection
retn


; Attributes: bp-based frame

sub_40AFC5 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443770
call	__EH_prolog
push	ecx
push	esi
mov	esi, offset stru_45D8C8
push	esi		; lpCriticalSection
mov	[ebp+var_10], esi
call	ds:EnterCriticalSection
and	[ebp+var_4], 0
cmp	byte_45D904, 0
jnz	short loc_40AFF9
mov	byte_45D904, 1
call	sub_40AE68

loc_40AFF9:		; lpCriticalSection
push	esi
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_40AFC5 endp



; Attributes: bp-based frame

sub_40B00D proc	near

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

mov	eax, offset loc_443784
call	__EH_prolog
sub	esp, 0Ch
push	ebx
push	edi
mov	edi, [ebp+arg_0]
mov	ebx, ecx
test	edi, edi
jle	short loc_40B07D
push	esi
mov	esi, edx

loc_40B028:
xor	eax, eax
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], eax
mov	[ebp+var_14], eax
mov	[ebp+var_10], eax
call	sub_403396
and	[ebp+var_4], 0
lea	eax, [ebp+Memory]
push	eax
mov	ecx, offset unk_45D8F0
push	dword ptr [esi+4]
call	sub_427F75
test	al, al
jz	short loc_40B069
push	dword ptr [esi]	; nIDDlgItem
push	ebx		; hDlg
call	ds:GetDlgItem
mov	edx, [ebp+Memory]
mov	ecx, eax
call	sub_42E6BD

loc_40B069:		; Memory
push	[ebp+Memory]
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
add	esi, 8
dec	edi
pop	ecx
jnz	short loc_40B028
pop	esi

loc_40B07D:
mov	ecx, [ebp+var_C]
pop	edi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_40B00D endp



; Attributes: bp-based frame

sub_40B08D proc	near

Memory=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443798
call	__EH_prolog
sub	esp, 0Ch
and	[ebp+Memory], 0
and	[ebp+var_14], 0
and	[ebp+var_10], 0
push	ebx
mov	ebx, ecx
push	edi
mov	edi, edx
push	3
lea	ecx, [ebp+Memory]
call	sub_403396
and	[ebp+var_4], 0
lea	eax, [ebp+Memory]
push	eax
push	edi
mov	ecx, offset unk_45D8F0
call	sub_427F75
test	al, al
jz	short loc_40B0D7
mov	edx, [ebp+Memory]
mov	ecx, ebx
call	sub_42E6BD

loc_40B0D7:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_40B08D endp



; Attributes: bp-based frame

sub_40B0EE proc	near

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

mov	eax, offset loc_4437AC
call	__EH_prolog
sub	esp, 10h
push	ebx
push	esi
push	edi
mov	esi, ecx
xor	edi, edi
mov	ebx, edx
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+var_10], edi
mov	[ebp+Memory], edi
mov	[ebp+var_18], edi
mov	[ebp+var_14], edi
call	sub_403396
lea	eax, [ebp+Memory]
mov	ecx, offset unk_45D8F0
push	eax
push	ebx
mov	[ebp+var_4], edi
call	sub_427F75
test	al, al
jz	short loc_40B13D
lea	eax, [ebp+Memory]
mov	ecx, esi
push	eax
call	sub_4030F2
jmp	short loc_40B14E

loc_40B13D:
push	3
mov	ecx, esi
mov	[esi], edi
mov	[esi+4], edi
mov	[esi+8], edi
call	sub_403396

loc_40B14E:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_40B0EE endp



; Attributes: bp-based frame

sub_40B168 proc	near

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

mov	eax, offset loc_4437C0
call	__EH_prolog
sub	esp, 10h
push	ebx
push	esi
push	edi
mov	edi, ecx
xor	esi, esi
mov	ebx, edx
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+var_10], esi
mov	[ebp+Memory], esi
mov	[ebp+var_18], esi
mov	[ebp+var_14], esi
call	sub_403396
lea	eax, [ebp+Memory]
mov	ecx, offset unk_45D8F0
push	eax
mov	[ebp+var_4], esi
push	[ebp+arg_0]
call	sub_427F75
test	al, al
jz	short loc_40B1B9
lea	eax, [ebp+Memory]
mov	ecx, edi
push	eax
call	sub_4030F2
jmp	short loc_40B1C2

loc_40B1B9:
mov	edx, ebx
mov	ecx, edi
call	sub_42DBF9

loc_40B1C2:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
mov	eax, edi
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_40B168 endp



; Attributes: bp-based frame

sub_40B1DE proc	near

var_A4=	byte ptr -0A4h
var_84=	dword ptr -84h
var_7C=	dword ptr -7Ch
var_78=	dword ptr -78h
Memory=	dword ptr -6Ch
var_60=	byte ptr -60h
var_4C=	dword ptr -4Ch
var_40=	dword ptr -40h
var_34=	dword ptr -34h
var_30=	dword ptr -30h
lpFileName= dword ptr -24h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44381F
call	__EH_prolog
sub	esp, 98h
push	ebx
push	esi
mov	esi, ecx
call	sub_428327
xor	ebx, ebx
lea	ecx, [ebp+var_18]
push	3
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_403396
lea	ecx, [ebp+var_18]
mov	[ebp+var_4], ebx
call	sub_41D79C
test	al, al
jz	loc_40B368
push	offset aLang	; "Lang\\"
lea	ecx, [ebp+var_18]
call	sub_403195
lea	edx, [ebp+var_18]
lea	ecx, [ebp+lpFileName]
push	offset a_txt	; "*.txt"
call	sub_409948
or	[ebp+var_34], 0FFFFFFFFh
push	eax
lea	ecx, [ebp+var_30]
mov	byte ptr [ebp+var_4], 2
call	sub_4030F2
push	[ebp+lpFileName] ; Memory
mov	byte ptr [ebp+var_4], 4
call	sub_4284D8
pop	ecx
lea	ecx, [ebp+var_7C]
call	sub_403079
mov	byte ptr [ebp+var_4], 5

loc_40B266:
lea	eax, [ebp+var_A4]
lea	ecx, [ebp+var_34]
push	eax
call	sub_42B72E
test	al, al
jz	loc_40B34B
mov	eax, [ebp+var_84]
shr	eax, 4
test	al, 1
jnz	short loc_40B266
lea	ecx, [ebp+var_60]
call	sub_40AE0C
lea	ecx, [ebp+var_4C]
mov	byte ptr [ebp+var_4], 6
call	sub_403079
lea	eax, [ebp+var_7C]
lea	edx, [ebp+var_18]
push	eax
lea	ecx, [ebp+lpFileName]
mov	byte ptr [ebp+var_4], 7
call	sub_40356A
lea	eax, [ebp+var_40]
push	4
push	eax
lea	ecx, [ebp+var_7C]
mov	byte ptr [ebp+var_4], 8
call	sub_40B5EF
mov	ecx, [ebp+var_40]
mov	edx, offset a_txt_0 ; ".txt"
mov	byte ptr [ebp+var_4], 9
call	sub_4282B1
cmp	eax, ebx
jnz	short loc_40B31F
mov	eax, [ebp+var_78]
lea	ecx, [ebp+var_7C]
add	eax, 0FFFFFFFCh
push	eax
lea	eax, [ebp+Memory]
push	eax
call	sub_403228
push	eax
lea	ecx, [ebp+var_4C]
mov	byte ptr [ebp+var_4], 0Ah
call	sub_40312C
mov	byte ptr [ebp+var_4], 9
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
push	[ebp+lpFileName] ; lpFileName
lea	ecx, [ebp+var_60]
call	sub_427BC6
test	al, al
jz	short loc_40B31F
lea	eax, [ebp+var_60]
mov	ecx, esi
push	eax
call	sub_40B6E7

loc_40B31F:		; Memory
push	[ebp+var_40]
call	sub_4284D8
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_4C]	; Memory
mov	byte ptr [ebp+var_4], 5
call	sub_4284D8
add	esp, 0Ch
lea	ecx, [ebp+var_60]
call	sub_40B616
jmp	loc_40B266

loc_40B34B:		; Memory
push	[ebp+var_7C]
call	sub_4284D8
push	[ebp+var_30]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx
pop	ecx
lea	ecx, [ebp+var_34]
call	sub_42B047

loc_40B368:		; Memory
push	[ebp+var_18]
call	sub_4284D8
pop	ecx
pop	esi
mov	ecx, [ebp+var_C]
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_40B1DE endp



; Attributes: bp-based frame

sub_40B37F proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443834
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
push	dword ptr [esi+14h] ; Memory
call	sub_4284D8
pop	ecx
mov	dword ptr [esi], offset	off_44BCEC
and	[ebp+var_4], 0
mov	ecx, esi
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_40B37F endp



; Attributes: bp-based frame

sub_40B3C2 proc	near

var_4= dword ptr -4
arg_0= dword ptr  8

push	ebp
mov	ebp, esp
push	ecx
push	ecx
push	ebx
mov	ebx, [ebp+arg_0]
push	esi
mov	esi, edx
push	edi
lea	edx, [ebp+arg_0]
and	word ptr [esi],	0
and	word ptr [ebx],	0
mov	edi, [ecx]
mov	ecx, edi
call	sub_428693
mov	ecx, [ebp+arg_0]
mov	[ebp+var_4], edx
cmp	edi, ecx
jz	short loc_40B419
mov	[esi], ax
mov	ax, [ecx]
test	ax, ax
jnz	short loc_40B3FC
mov	al, 1
jmp	short loc_40B428

loc_40B3FC:
cmp	ax, 2Dh
jnz	short loc_40B419
lea	esi, [ecx+2]
lea	edx, [ebp+arg_0]
mov	ecx, esi
call	sub_428693
mov	ecx, [ebp+arg_0]
mov	[ebp+var_4], edx
cmp	esi, ecx
jnz	short loc_40B41D

loc_40B419:
xor	al, al
jmp	short loc_40B428

loc_40B41D:
mov	[ebx], ax
xor	eax, eax
cmp	[ecx], ax
setz	al

loc_40B428:
pop	edi
pop	esi
pop	ebx
leave
retn	4
sub_40B3C2 endp



; Attributes: bp-based frame

sub_40B42F proc	near

var_3C=	dword ptr -3Ch
var_34=	dword ptr -34h
var_30=	dword ptr -30h
Memory=	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=	word ptr -10h
var_E= word ptr	-0Eh
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443860
call	__EH_prolog
sub	esp, 30h
mov	eax, [ecx]
push	ebx
push	esi
push	edi
xor	edi, edi
mov	[ebp+var_18], ecx
mov	[ecx+4], edi
mov	[eax], di
call	ds:GetSystemDefaultLangID
mov	esi, eax
call	ds:GetUserDefaultLangID
cmp	si, ax
jnz	loc_40B53E
mov	esi, eax
push	4
shr	ax, 0Ah
lea	ecx, [ebp+var_3C]
and	esi, 3FFh
mov	[ebp+var_1C], eax
call	sub_402794
mov	ebx, offset off_44BCF4
mov	[ebp+var_3C], ebx
lea	ecx, [ebp+var_3C]
mov	[ebp+var_4], edi
call	sub_40B1DE
cmp	[ebp+var_34], edi
mov	[ebp+var_14], edi
jle	loc_40B520

loc_40B49B:
mov	eax, [ebp+var_30]
mov	ecx, [ebp+var_14]
push	3
mov	edi, [eax+ecx*4]
xor	eax, eax
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], eax
mov	[ebp+var_24], eax
mov	[ebp+var_20], eax
call	sub_403396
lea	eax, [ebp+Memory]
mov	ecx, edi
push	eax
push	2
mov	byte ptr [ebp+var_4], 1
call	sub_427F75
test	al, al
jz	short loc_40B504
lea	eax, [ebp+var_E]
lea	edx, [ebp+var_10]
push	eax
lea	ecx, [ebp+Memory]
call	sub_40B3C2
test	al, al
jz	short loc_40B504
cmp	[ebp+var_10], si
jnz	short loc_40B504
cmp	[ebp+var_E], 0
jnz	short loc_40B4FA
mov	ecx, [ebp+var_18]
lea	eax, [edi+14h]
push	eax
call	sub_40312C

loc_40B4FA:
mov	ax, [ebp+var_E]
cmp	word ptr [ebp+var_1C], ax
jz	short loc_40B54D

loc_40B504:		; Memory
push	[ebp+Memory]
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
inc	[ebp+var_14]
pop	ecx
mov	eax, [ebp+var_14]
cmp	eax, [ebp+var_34]
jl	loc_40B49B

loc_40B520:
mov	[ebp+var_3C], ebx
mov	[ebp+var_4], 3

loc_40B52A:
lea	ecx, [ebp+var_3C]
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_3C]
call	sub_4282FE

loc_40B53E:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn

loc_40B54D:
mov	ecx, [ebp+var_18]
add	edi, 14h
push	edi
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	[ebp+var_3C], ebx
mov	[ebp+var_4], 2
jmp	short loc_40B52A
sub_40B42F endp



; Attributes: bp-based frame

sub_40B56E proc	near

Memory=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443874
call	__EH_prolog
sub	esp, 0Ch
push	ebx
xor	ebx, ebx
cmp	byte_45D8B4, bl
jz	short loc_40B5DD
mov	ecx, offset dword_45D8E0 ; cbData
call	sub_41E873
cmp	dword_45D8E4, ebx
jnz	short loc_40B5DD
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_403396
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], ebx
call	sub_40B42F
cmp	[ebp+var_14], ebx
jnz	short loc_40B5C8
push	offset asc_45B600 ; "-"
lea	ecx, [ebp+Memory]
call	sub_404722

loc_40B5C8:
lea	ecx, [ebp+Memory]
call	sub_41E80B
or	[ebp+var_4], 0FFFFFFFFh
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_40B5DD:
call	sub_40AE68
mov	ecx, [ebp+var_C]
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_40B56E endp



; Attributes: bp-based frame

sub_40B5EF proc	near

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

push	ebp
mov	ebp, esp
push	ecx
mov	eax, [ecx+4]
mov	edx, [ebp+arg_4]
and	[ebp+var_4], 0
cmp	edx, eax
jle	short loc_40B603
mov	edx, eax

loc_40B603:
sub	eax, edx
push	edx
push	eax
push	[ebp+arg_0]
call	sub_403434
mov	eax, [ebp+arg_0]
leave
retn	8
sub_40B5EF endp



; Attributes: bp-based frame

sub_40B616 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443888
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44BCEC
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_40B616 endp



; Attributes: bp-based frame

sub_40B64E proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ebx
mov	ebx, ecx
mov	ecx, [ebp+arg_4]
push	edi
mov	edi, [ebp+arg_0]
mov	eax, [ebx+8]
add	ecx, edi
cmp	ecx, eax
jle	short loc_40B66A
sub	eax, edi
mov	[ebp+arg_4], eax

loc_40B66A:
mov	eax, [ebp+arg_4]
test	eax, eax
jle	short loc_40B69E
push	esi
mov	esi, edi
shl	esi, 2
mov	[ebp+arg_0], eax

loc_40B67A:
mov	eax, [ebx+0Ch]
mov	ecx, [eax+esi]
test	ecx, ecx
mov	[ebp+Memory], ecx
jz	short loc_40B695
call	sub_4408D4
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_40B695:
add	esi, 4
dec	[ebp+arg_0]
jnz	short loc_40B67A
pop	esi

loc_40B69E:
push	[ebp+arg_4]
mov	ecx, ebx
push	edi
call	sub_42847F
pop	edi
pop	ebx
leave
retn	8
sub_40B64E endp



; Attributes: bp-based frame

sub_40B6AF proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44389C
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44BCF4
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_40B6AF endp



; Attributes: bp-based frame

sub_40B6E7 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4438BA
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	ebx, ecx
push	20h		; Size
call	sub_4284B1
mov	esi, eax
pop	ecx
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
test	esi, esi
jz	short loc_40B72A
push	edi
mov	edi, [ebp+arg_0]
push	edi
mov	ecx, esi
call	sub_40B809
add	edi, 14h
lea	ecx, [esi+14h]
push	edi
mov	byte ptr [ebp+var_4], 1
call	sub_4030F2
pop	edi
jmp	short loc_40B72C

loc_40B72A:
xor	esi, esi

loc_40B72C:
or	[ebp+var_4], 0FFFFFFFFh
push	esi
mov	ecx, ebx
call	sub_429907
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_40B6E7 endp



; Attributes: bp-based frame

sub_40B748 proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ebx
mov	ebx, ecx
mov	ecx, [ebp+arg_4]
push	edi
mov	edi, [ebp+arg_0]
mov	eax, [ebx+8]
add	ecx, edi
cmp	ecx, eax
jle	short loc_40B764
sub	eax, edi
mov	[ebp+arg_4], eax

loc_40B764:
mov	eax, [ebp+arg_4]
test	eax, eax
jle	short loc_40B798
push	esi
mov	esi, edi
shl	esi, 2
mov	[ebp+arg_0], eax

loc_40B774:
mov	eax, [ebx+0Ch]
mov	ecx, [eax+esi]
test	ecx, ecx
mov	[ebp+Memory], ecx
jz	short loc_40B78F
call	sub_40B37F
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_40B78F:
add	esi, 4
dec	[ebp+arg_0]
jnz	short loc_40B774
pop	esi

loc_40B798:
push	[ebp+arg_4]
mov	ecx, ebx
push	edi
call	sub_42847F
pop	edi
pop	ebx
leave
retn	8
sub_40B748 endp




; int __thiscall sub_40B7A9(void *Memory, char)
sub_40B7A9 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_40B616
test	[esp+4+arg_0], 1
jz	short loc_40B7BF
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_40B7BF:
mov	eax, esi
pop	esi
retn	4
sub_40B7A9 endp




; int __thiscall sub_40B7C5(void *Memory, char)
sub_40B7C5 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_40B6AF
test	[esp+4+arg_0], 1
jz	short loc_40B7DB
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_40B7DB:
mov	eax, esi
pop	esi
retn	4
sub_40B7C5 endp




sub_40B7E1 proc	near

arg_0= word ptr	 4
arg_4= dword ptr  8

mov	edx, [ecx]
mov	eax, [esp+arg_4]
lea	eax, [edx+eax*2]

loc_40B7EA:
mov	cx, [eax]
cmp	cx, [esp+arg_0]
jz	short loc_40B7FD
test	cx, cx
jz	short loc_40B803
inc	eax
inc	eax
jmp	short loc_40B7EA

loc_40B7FD:
sub	eax, edx
sar	eax, 1
jmp	short locret_40B806

loc_40B803:
or	eax, 0FFFFFFFFh

locret_40B806:
retn	8
sub_40B7E1 endp



; Attributes: bp-based frame

sub_40B809 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4438CC
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
xor	eax, eax
mov	[ebp+var_10], esi
mov	[esi+4], eax
mov	[esi+8], eax
mov	[esi+0Ch], eax
mov	dword ptr [esi+10h], 4
mov	[ebp+var_4], eax
mov	dword ptr [esi], offset	off_44BCEC
call	sub_428327
push	[ebp+arg_0]
mov	ecx, esi
call	sub_40B855
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_40B809 endp




sub_40B855 proc	near

arg_0= dword ptr  4

push	ebx
push	ebp
mov	ebp, [esp+8+arg_0]
push	esi
mov	esi, ecx
push	edi
mov	edi, [ebp+8]
mov	eax, [esi+8]
add	eax, edi
push	eax
call	sub_428378
xor	ebx, ebx
test	edi, edi
jle	short loc_40B885

loc_40B873:
mov	eax, [ebp+0Ch]
mov	ecx, esi
push	dword ptr [eax+ebx*4]
call	sub_40B88E
inc	ebx
cmp	ebx, edi
jl	short loc_40B873

loc_40B885:
mov	eax, esi
pop	edi
pop	esi
pop	ebp
pop	ebx
retn	4
sub_40B855 endp



; Attributes: bp-based frame

sub_40B88E proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset unknown_libname_15 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	esi
push	edi
mov	edi, ecx
push	10h		; Size
call	sub_4284B1
mov	esi, eax
pop	ecx
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
test	esi, esi
jz	short loc_40B8C7
mov	eax, [ebp+arg_0]
mov	ecx, [eax]
add	eax, 4
mov	[esi], ecx
push	eax
lea	ecx, [esi+4]
call	sub_4030F2
jmp	short loc_40B8C9

loc_40B8C7:
xor	esi, esi

loc_40B8C9:
or	[ebp+var_4], 0FFFFFFFFh
push	esi
mov	ecx, edi
call	sub_429907
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_40B88E endp



; Attributes: bp-based frame

sub_40B8E5 proc	near

lParam=	dword ptr -80h
var_74=	dword ptr -74h
var_70=	dword ptr -70h
var_58=	dword ptr -58h
var_4C=	dword ptr -4Ch
Memory=	dword ptr -40h
var_34=	dword ptr -34h
var_28=	dword ptr -28h
var_1C=	byte ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443914
call	__EH_prolog
sub	esp, 74h
push	ebx
push	esi
push	edi
mov	edi, ecx
mov	eax, edi
push	3
neg	eax
lea	esi, [edi+4]
mov	byte ptr [edi+8], 1
sbb	eax, eax
mov	edx, offset unk_45B610
and	eax, esi
mov	ecx, [eax]
call	sub_40B00D
call	sub_43A8E0
xor	ecx, ecx
mov	ebx, ds:CheckDlgButton
test	al, al
setnz	cl
push	ecx		; uCheck
push	3F2h		; nIDButton
push	dword ptr [esi]	; hDlg
call	ebx ; CheckDlgButton
lea	ecx, [ebp+var_1C]
call	sub_4388DF
xor	eax, eax
cmp	[ebp+var_1C], al
setnz	al
push	eax		; uCheck
push	3F3h		; nIDButton
push	dword ptr [esi]	; hDlg
call	ebx ; CheckDlgButton
push	3FEh		; nIDDlgItem
push	dword ptr [esi]	; hDlg
call	ds:GetDlgItem
mov	ebx, ds:SendMessageA
push	24h		; lParam
lea	esi, [edi+0Ch]
push	24h		; wParam
push	1036h		; Msg
push	eax		; hWnd
mov	[esi], eax
call	ebx ; SendMessageA
push	64h		; int
push	offset word_45D498 ; int
push	0		; wParam
mov	ecx, esi
call	sub_42FE38
and	[ebp+var_14], 0
mov	eax, offset unk_45B638
mov	[ebp+var_10], eax
jmp	short loc_40B98F

loc_40B98C:
mov	eax, [ebp+var_10]

loc_40B98F:
push	dword ptr [eax-4]
mov	edx, [eax-8]
lea	ecx, [ebp+var_28]
call	sub_40B168
mov	eax, [ebp+var_10]
and	[ebp+var_4], 0
cmp	dword ptr [eax], 40h
jnz	short loc_40B9B6
push	offset asc_45B71C ; " >"
lea	ecx, [ebp+var_28]
call	sub_403195

loc_40B9B6:
mov	eax, [ebp+var_10]
mov	eax, [eax-8]
sub	eax, 9Ah
jz	loc_40BA4C
dec	eax
dec	eax
jz	short loc_40B9D4
sub	eax, 4
jnz	loc_40BA91

loc_40B9D4:
push	2000141h
mov	edx, 0ABh
lea	ecx, [ebp+var_34]
call	sub_40B168
mov	eax, [ebp+var_10]
mov	byte ptr [ebp+var_4], 3
mov	eax, [eax]
cmp	eax, 200h
jz	short loc_40BA12
cmp	eax, 800h
jz	short loc_40BA12
cmp	eax, 1000h
jz	short loc_40BA0B
cmp	eax, 2000h
jnz	short loc_40BA1F

loc_40BA0B:		; ".zip"
push	offset a_zip
jmp	short loc_40BA17

loc_40BA12:		; ".7z"
push	offset a_7z

loc_40BA17:
lea	ecx, [ebp+var_34]
call	sub_403195

loc_40BA1F:
lea	eax, [ebp+var_34]
lea	edx, [ebp+var_28]
push	eax
lea	ecx, [ebp+Memory]
call	sub_4073D8
push	eax
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 4
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
and	byte ptr [ebp+var_4], 0
push	[ebp+var_34]
jmp	short loc_40BA8A

loc_40BA4C:
push	2000140h
mov	edx, 0AAh
lea	ecx, [ebp+var_58]
call	sub_40B168
push	eax
lea	edx, [ebp+var_28]
lea	ecx, [ebp+var_4C]
mov	byte ptr [ebp+var_4], 1
call	sub_4073D8
push	eax
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 2
call	sub_40312C
push	[ebp+var_4C]	; Memory
call	sub_4284D8
and	byte ptr [ebp+var_4], 0
push	[ebp+var_58]	; Memory

loc_40BA8A:
call	sub_4284D8
pop	ecx
pop	ecx

loc_40BA91:
push	[ebp+var_28]
mov	ecx, esi
push	[ebp+var_14]
call	sub_42FE6D
mov	edx, [ebp+var_10]
mov	ecx, [ebp+var_18]
mov	[ebp+var_70], 0F000h
test	[edx], ecx
setnz	cl
xor	edx, edx
test	cl, cl
lea	ecx, [ebp+lParam]
setnz	dl
push	ecx		; lParam
push	eax		; wParam
inc	edx
push	102Bh		; Msg
push	dword ptr [esi]	; hWnd
shl	edx, 0Ch
mov	[ebp+var_74], edx
call	ebx ; SendMessageA
push	[ebp+var_28]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
add	[ebp+var_10], 0Ch
inc	[ebp+var_14]
cmp	[ebp+var_10], offset aLugins7ZipOpti ; "lugins/7-zip/options.htm#system"
pop	ecx
jl	loc_40B98C
push	0FFFFh		; lParam
push	0		; wParam
push	101Eh		; Msg
push	dword ptr [esi]	; hWnd
call	ebx ; SendMessageA
and	byte ptr [edi+8], 0
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	al, 1
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_40B8E5 endp



; Attributes: bp-based frame

sub_40BB12 proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ecx
push	ebx
mov	ebx, ecx
mov	eax, ebx
push	esi
neg	eax
lea	esi, [ebx+4]
push	edi
sbb	eax, eax
mov	edi, ds:IsDlgButtonChecked
and	eax, esi
push	3F2h		; nIDButton
mov	eax, [eax]
mov	dword_45D908, eax
push	dword ptr [esi]	; hDlg
call	edi ; IsDlgButtonChecked
cmp	eax, 1
jnz	short loc_40BB4E
call	sub_40D0D1
call	sub_43AD0F
jmp	short loc_40BB58

loc_40BB4E:
call	sub_40D1D2
call	sub_43AB05

loc_40BB58:		; nIDButton
push	3F3h
push	dword ptr [esi]	; hDlg
call	edi ; IsDlgButtonChecked
dec	eax
mov	esi, offset unk_45B638
neg	eax
sbb	al, al
inc	al
xor	edi, edi
mov	[ebp+var_8], al
mov	[ebp+var_4], edi

loc_40BB75:		; lParam
push	0F000h
push	edi		; wParam
push	102Ch		; Msg
push	dword ptr [ebx+0Ch] ; hWnd
call	ds:SendMessageA
shr	eax, 0Ch
dec	eax
jz	short loc_40BB94
mov	eax, [esi]
or	[ebp+var_4], eax

loc_40BB94:
add	esi, 0Ch
inc	edi
cmp	esi, offset aLugins7ZipOpti ; "lugins/7-zip/options.htm#system"
jl	short loc_40BB75
lea	ecx, [ebp+var_8]
call	sub_438863
pop	edi
pop	esi
xor	eax, eax
pop	ebx
leave
retn
sub_40BB12 endp




sub_40BBAF proc	near
mov	edx, off_45B628
xor	ecx, ecx
jmp	sub_40AD1B
sub_40BBAF endp




sub_40BBBC proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

cmp	[esp+arg_0], 3F2h
jl	short loc_40BBD9
cmp	[esp+arg_0], 3F3h
jg	short loc_40BBD9
call	sub_407229
mov	al, 1
jmp	short locret_40BBE6

loc_40BBD9:
push	[esp+arg_4]
push	[esp+4+arg_0]
call	sub_42FAE0

locret_40BBE6:
retn	8
sub_40BBBC endp




sub_40BBE9 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [esp+arg_4]
mov	edx, [eax]
cmp	edx, [ecx+0Ch]
jnz	short loc_40BC02
cmp	dword ptr [eax+8], 0FFFFFF9Bh
jnz	short loc_40BC02
mov	edx, [ecx]
push	eax
call	dword ptr [edx+58h]
jmp	short locret_40BC0C

loc_40BC02:
push	eax
push	[esp+4+arg_0]
call	sub_42FF89

locret_40BC0C:
retn	8
sub_40BBE9 endp




sub_40BC0F proc	near

arg_0= dword ptr  4

cmp	byte ptr [ecx+8], 0
jnz	short ??8_ContextCallback@details@Concurrency@@QBE_NABV012@@Z_0	; Concurrency::details::_ContextCallback::operator==(Concurrency::details::_ContextCallback const &)
mov	eax, [esp+arg_0]
test	byte ptr [eax+1Ch], 8
jz	short ??8_ContextCallback@details@Concurrency@@QBE_NABV012@@Z_0	; Concurrency::details::_ContextCallback::operator==(Concurrency::details::_ContextCallback const &)
mov	edx, [eax+18h]
xor	edx, [eax+14h]
test	dh, 0F0h
jz	short ??8_ContextCallback@details@Concurrency@@QBE_NABV012@@Z_0	; Concurrency::details::_ContextCallback::operator==(Concurrency::details::_ContextCallback const &)
call	sub_407229
sub_40BC0F endp	; sp-analysis failed

; [00000005 BYTES: COLLAPSED FUNCTION Concurrency::details::_ContextCallback::operator==(Concurrency::details::_ContextCallback	const &). PRESS	KEYPAD CTRL-"+"	TO EXPAND]
jmp	$+5

loc_40BC39:
and	hMenu, 0
retn
call	nullsub_3
jmp	loc_40BC4C
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_3. PRESS KEYPAD CTRL-"+" TO EXPAND]

loc_40BC4C:
push	offset loc_40BC58
call	_atexit
pop	ecx
retn

loc_40BC58:
mov	eax, hMenu
test	eax, eax
jz	short locret_40BC6F
and	hMenu, 0
push	eax
call	ds:DestroyMenu

locret_40BC6F:
retn



sub_40BC70 proc	near

; FUNCTION CHUNK AT 0040BF80 SIZE 0000009C BYTES

push	ebx
push	esi
mov	esi, hWnd
push	edi
mov	edi, ds:GetMenu
push	esi		; hWnd
call	edi ; GetMenu
mov	ebx, eax
push	67h		; lpMenuName
push	hInstance	; hInstance
call	ds:LoadMenuA
push	eax		; hMenu
push	esi		; hWnd
call	ds:SetMenu
push	ebx		; hMenu
mov	ebx, ds:DestroyMenu
call	ebx ; DestroyMenu
push	esi		; hWnd
call	edi ; GetMenu
cmp	dword_45D8E4, 0
mov	edi, eax
jz	short loc_40BCBC
push	0
xor	edx, edx
mov	ecx, edi
call	sub_40BCF8

loc_40BCBC:		; hWnd
push	esi
call	ds:DrawMenuBar
mov	eax, hMenu
test	eax, eax
jz	short loc_40BCD6
and	hMenu, 0
push	eax		; hMenu
call	ebx ; DestroyMenu

loc_40BCD6:
call	ds:CreatePopupMenu
mov	hMenu, eax
mov	esi, eax
push	0		; nPos
push	edi		; hMenu
call	ds:GetSubMenu
mov	edx, esi
mov	ecx, eax
pop	edi
pop	esi
pop	ebx
jmp	loc_40BF80
sub_40BC70 endp



; Attributes: bp-based frame

sub_40BCF8 proc	near

var_84=	dword ptr -84h
var_78=	dword ptr -78h
var_74=	dword ptr -74h
var_6C=	dword ptr -6Ch
var_68=	dword ptr -68h
var_58=	dword ptr -58h
var_4C=	dword ptr -4Ch
Memory=	dword ptr -40h
var_34=	dword ptr -34h
var_30=	dword ptr -30h
var_28=	dword ptr -28h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
item= dword ptr	-10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_443953
call	__EH_prolog
sub	esp, 78h
push	esi
mov	[ebp+var_1C], ecx
xor	esi, esi
push	edi
mov	[ebp+var_14], edx
lea	ecx, [ebp+var_84]
mov	[ebp+item], esi
call	sub_40BF33
push	16h
lea	eax, [ebp+var_84]
pop	edi
lea	ecx, [ebp+var_1C]
push	eax		; int
push	1		; char
push	esi		; item
mov	[ebp+var_4], esi
mov	[ebp+var_78], edi
mov	[ebp+var_74], esi
call	sub_42C5B2
test	al, al
jz	loc_40BF17
mov	[ebp+var_18], offset unk_44BD00

loc_40BD4A:
push	3
lea	ecx, [ebp+var_28]
mov	[ebp+var_28], esi
mov	[ebp+var_24], esi
mov	[ebp+var_20], esi
call	sub_403396
mov	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 1
cmp	ecx, esi
jz	loc_40BDEC
mov	eax, [ebp+var_14]
cmp	eax, 1
jnz	short loc_40BD81
cmp	[ebp+arg_0], 3
jnz	short loc_40BD81
mov	edx, 3000710h
jmp	short loc_40BDBC

loc_40BD81:
push	[ebp+item]
lea	edx, [eax+1]
call	sub_40BCF8
cmp	[ebp+var_14], 1
jnz	short loc_40BDA3
cmp	[ebp+arg_0], 2
jnz	loc_40BEC7
mov	edx, 3000451h
jmp	short loc_40BDBC

loc_40BDA3:
cmp	[ebp+var_14], esi
jnz	loc_40BEC7
mov	eax, [ebp+var_18]
cmp	eax, offset unk_44BD18
jnb	loc_40BEC7
mov	edx, [eax]

loc_40BDBC:
lea	ecx, [ebp+Memory]
call	sub_40B0EE
push	eax
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 2
call	sub_40312C
mov	byte ptr [ebp+var_4], 1
push	[ebp+Memory]	; Memory
call	sub_4284D8
cmp	[ebp+var_24], esi
pop	ecx
jnz	loc_40BE9A
jmp	loc_40BEC7

loc_40BDEC:
mov	ecx, [ebp+var_6C]
call	sub_40BF65
cmp	eax, esi
jl	loc_40BEC7
mov	edx, ds:dword_44BD1C[eax*8]
lea	ecx, [ebp+var_4C]
call	sub_40B0EE
push	eax
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 3
call	sub_40312C
mov	byte ptr [ebp+var_4], 1
push	[ebp+var_4C]	; Memory
call	sub_4284D8
cmp	[ebp+var_24], esi
pop	ecx
jz	loc_40BEC7
lea	eax, [ebp+var_84]
lea	ecx, [ebp+var_34]
push	eax
call	sub_4030F2
mov	eax, [ebp+var_30]
mov	byte ptr [ebp+var_4], 4
cmp	eax, esi
jz	short loc_40BE8D
mov	ecx, [ebp+var_34]
lea	eax, [ecx+eax*2-2]

loc_40BE4F:
cmp	word ptr [eax],	9
jz	short loc_40BE5D
cmp	eax, ecx
jz	short loc_40BE63
dec	eax
dec	eax
jmp	short loc_40BE4F

loc_40BE5D:
sub	eax, ecx
sar	eax, 1
jmp	short loc_40BE66

loc_40BE63:
or	eax, 0FFFFFFFFh

loc_40BE66:
cmp	eax, esi
jl	short loc_40BE8D
push	eax
lea	eax, [ebp+var_58]
push	eax
lea	ecx, [ebp+var_34]
call	sub_405246
push	eax
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 5
call	sub_4031F2
push	[ebp+var_58]	; Memory
call	sub_4284D8
pop	ecx

loc_40BE8D:		; Memory
push	[ebp+var_34]
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
pop	ecx

loc_40BE9A:
lea	eax, [ebp+var_28]
lea	ecx, [ebp+var_84]
push	eax
call	sub_40312C
lea	eax, [ebp+var_84]
lea	ecx, [ebp+var_1C]
push	eax		; int
push	1		; char
push	[ebp+item]	; item
mov	[ebp+var_78], 10h
mov	[ebp+var_74], esi
call	sub_42C772

loc_40BEC7:		; Memory
push	[ebp+var_28]
call	sub_4284D8
push	[ebp+var_84]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
inc	[ebp+item]
add	[ebp+var_18], 4
pop	ecx
pop	ecx
lea	ecx, [ebp+var_84]
call	sub_40BF33
lea	eax, [ebp+var_84]
lea	ecx, [ebp+var_1C]
push	eax		; int
push	1		; char
push	[ebp+item]	; item
mov	[ebp+var_4], esi
mov	[ebp+var_78], edi
mov	[ebp+var_74], esi
call	sub_42C5B2
test	al, al
jnz	loc_40BD4A

loc_40BF17:		; Memory
push	[ebp+var_84]
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_40BCF8 endp




sub_40BF33 proc	near
push	esi
push	edi
mov	esi, ecx
xor	edi, edi
push	3
mov	[esi], edi
mov	[esi+4], edi
mov	[esi+8], edi
call	sub_403396
mov	[esi+0Ch], edi
mov	[esi+10h], edi
mov	[esi+14h], edi
mov	[esi+18h], edi
mov	[esi+1Ch], edi
mov	[esi+20h], edi
mov	[esi+24h], edi
mov	[esi+28h], edi
mov	eax, esi
pop	edi
pop	esi
retn
sub_40BF33 endp




sub_40BF65 proc	near
xor	eax, eax
mov	edx, offset unk_44BD18

loc_40BF6C:
cmp	[edx], ecx
jz	short locret_40BF7F
add	edx, 8
inc	eax
cmp	edx, offset off_44BEB0
jb	short loc_40BF6C
or	eax, 0FFFFFFFFh

locret_40BF7F:
retn
sub_40BF65 endp

; START	OF FUNCTION CHUNK FOR sub_40BC70

loc_40BF80:
mov	eax, offset loc_443968
call	__EH_prolog
sub	esp, 38h
push	ebx
push	esi
push	edi
mov	[ebp-14h], ecx
xor	edi, edi
lea	ecx, [ebp-44h]
mov	[ebp-18h], edx
mov	[ebp-10h], edi
xor	ebx, ebx
call	sub_40BF33
push	13h
lea	eax, [ebp-44h]
pop	esi
mov	[ebp-4], edi
push	eax		; int
push	1		; char
mov	[ebp-38h], esi
mov	[ebp-34h], edi
push	edi		; item

loc_40BFB8:
lea	ecx, [ebp-14h]
call	sub_42C5B2
test	al, al
jz	short loc_40C004
lea	eax, [ebp-44h]
lea	ecx, [ebp-18h]
push	eax		; int
push	1		; char
push	dword ptr [ebp-10h] ; item
call	sub_42C858
test	al, al
jz	short loc_40BFDC
inc	dword ptr [ebp-10h]

loc_40BFDC:		; Memory
push	dword ptr [ebp-44h]
or	dword ptr [ebp-4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx
inc	ebx
lea	ecx, [ebp-44h]
call	sub_40BF33
lea	eax, [ebp-44h]
mov	[ebp-4], edi
push	eax
push	1
mov	[ebp-38h], esi
mov	[ebp-34h], edi
push	ebx
jmp	short loc_40BFB8

loc_40C004:		; Memory
push	dword ptr [ebp-44h]
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp-0Ch]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
; END OF FUNCTION CHUNK	FOR sub_40BC70


; Attributes: bp-based frame

; int __stdcall	sub_40C01C(int nPos)
sub_40C01C proc	near

var_74=	dword ptr -74h
var_68=	dword ptr -68h
var_5C=	dword ptr -5Ch
var_50=	dword ptr -50h
Memory=	dword ptr -44h
var_38=	dword ptr -38h
var_34=	dword ptr -34h
var_2C=	dword ptr -2Ch
var_28=	dword ptr -28h
lpNewItem= dword ptr -20h
hMenu= dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
nPos= dword ptr	 8

mov	eax, offset __ehhandler$?_Iput@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AAVios_base@2@DPADI@Z_0
call	__EH_prolog
sub	esp, 68h
push	ebx
push	esi
push	edi
mov	edi, edx
push	hWnd		; hWnd
call	ds:GetMenu
mov	esi, ds:GetSubMenu
push	[ebp+nPos]	; nPos
push	eax		; hMenu
call	esi ; GetSubMenu
cmp	eax, edi
jnz	loc_40C357
mov	eax, [ebp+nPos]
xor	ebx, ebx
cmp	eax, ebx
jnz	short loc_40C086
mov	esi, 400h

loc_40C05C:		; uFlags
push	esi
push	ebx		; uPosition
push	edi		; hMenu
call	ds:RemoveMenu
test	eax, eax
jnz	short loc_40C05C
mov	ecx, dword_45D4CC
push	edi		; hMenu
imul	ecx, 188h
add	ecx, offset unk_45D544
call	sub_4195DB
jmp	loc_40C357

loc_40C086:
cmp	eax, 1
jz	loc_40C357
cmp	eax, 2
jnz	loc_40C17D
mov	eax, dword_45D4CC
mov	esi, ds:CheckMenuRadioItem
imul	eax, 188h
push	ebx		; flags
mov	ecx, dword_45D610[eax]
mov	eax, 19Ah
add	ecx, eax
push	ecx		; check
push	19Dh		; last
push	eax		; first
push	edi		; hmenu
call	esi ; CheckMenuRadioItem
mov	eax, dword_45D4CC
imul	eax, 188h
mov	ecx, dword_45D6AC[eax]
call	sub_40C3DA
push	ebx		; flags
push	eax		; check
push	1A8h		; last
push	1A4h		; first
push	edi		; hmenu
call	esi ; CheckMenuRadioItem
cmp	dword_45D4C8, 2
mov	esi, ds:CheckMenuItem
push	8
setz	al
neg	al
sbb	eax, eax
pop	ebx
and	eax, ebx
push	eax		; uCheck
push	1C2h		; uIDCheckItem
push	edi		; hMenu
call	esi ; CheckMenuItem
mov	eax, dword_45D4CC
imul	eax, 188h
mov	al, byte_45D618[eax]
neg	al
sbb	eax, eax
and	eax, ebx
push	eax		; uCheck
push	1C1h		; uIDCheckItem
push	edi		; hMenu
call	esi ; CheckMenuItem
mov	al, byte_45D4D1
neg	al
sbb	eax, eax
and	eax, ebx
push	eax		; uCheck
push	1CDh		; uIDCheckItem
push	edi		; hMenu
call	esi ; CheckMenuItem
mov	al, byte_45D4D0
neg	al
sbb	eax, eax
and	eax, ebx
push	eax		; uCheck
push	1CCh		; uIDCheckItem
push	edi		; hMenu
call	esi ; CheckMenuItem
mov	al, byte_45D4D3
neg	al
sbb	eax, eax
and	eax, ebx
push	eax		; uCheck
push	1CEh		; uIDCheckItem
push	edi		; hMenu
call	esi ; CheckMenuItem
mov	al, byte_45D4D2
neg	al
sbb	eax, eax
and	eax, ebx
push	eax		; uCheck
push	1CFh		; uIDCheckItem
push	edi		; hMenu
call	esi ; CheckMenuItem
jmp	loc_40C357

loc_40C17D:
cmp	eax, 3
jnz	loc_40C357
push	ebx		; nPos
push	edi		; hMenu
mov	[ebp+hMenu], edi
mov	[ebp+var_10], ebx
call	esi ; GetSubMenu
mov	edi, ds:RemoveMenu
mov	esi, 400h
push	esi		; uFlags
push	ebx		; uPosition
mov	[ebp+var_10], eax
push	eax		; hMenu

loc_40C1A1:
call	edi ; RemoveMenu
cmp	eax, ebx
jz	short loc_40C1AE
push	esi
push	ebx
push	[ebp+var_10]
jmp	short loc_40C1A1

loc_40C1AE:
mov	[ebp+nPos], ebx

loc_40C1B1:
push	3000720h
mov	edx, 2D0h
lea	ecx, [ebp+lpNewItem]
call	sub_40B168
push	offset asc_45B128 ; " "
lea	ecx, [ebp+lpNewItem]
mov	[ebp+var_4], ebx
call	sub_403195
mov	eax, [ebp+nPos]
lea	ecx, [ebp+lpNewItem]
add	eax, 30h
push	eax
call	sub_40316A
lea	ecx, [ebp+lpNewItem]
push	offset off_45B75C
call	sub_403195
mov	eax, [ebp+nPos]
lea	ecx, [ebp+lpNewItem]
add	eax, 30h
push	eax
call	sub_40316A
mov	eax, [ebp+nPos]
lea	ecx, [ebp+var_10]
push	[ebp+lpNewItem]	; lpNewItem
add	eax, 2E4h
push	eax		; uIDNewItem
push	ebx		; uFlags
call	sub_42C93E
or	[ebp+var_4], 0FFFFFFFFh
push	[ebp+lpNewItem]	; Memory
call	sub_4284D8
inc	[ebp+nPos]
pop	ecx
cmp	[ebp+nPos], 0Ah
jl	short loc_40C1B1

loc_40C229:		; uFlags
push	esi
push	2		; uPosition
push	[ebp+hMenu]	; hMenu
call	edi ; RemoveMenu
cmp	eax, ebx
jnz	short loc_40C229
xor	esi, esi

loc_40C237:
lea	eax, [ebp+var_38]
push	esi
push	eax
mov	ecx, offset unk_45D4D4
call	sub_40C368
cmp	[ebp+var_34], 64h
mov	[ebp+var_4], 1
jle	loc_40C2E9
lea	eax, [ebp+var_74]
push	32h
push	eax
lea	ecx, [ebp+var_38]
call	sub_40B5EF
mov	edi, eax
push	offset a___	; " ...	"
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 2
call	sub_403091
mov	[ebp+nPos], eax
lea	eax, [ebp+var_5C]
push	32h
push	eax
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 3
call	sub_403228
push	[ebp+nPos]
mov	edx, eax
lea	ecx, [ebp+var_50]
mov	byte ptr [ebp+var_4], 4
call	sub_40356A
push	edi
mov	edx, eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 5
call	sub_40356A
push	eax
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 6
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_50]	; Memory
call	sub_4284D8
push	[ebp+var_5C]	; Memory
call	sub_4284D8
push	[ebp+var_68]	; Memory
call	sub_4284D8
push	[ebp+var_74]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
add	esp, 14h

loc_40C2E9:
lea	eax, [ebp+var_38]
lea	ecx, [ebp+var_2C]
push	eax
call	sub_4030F2
cmp	[ebp+var_28], ebx
mov	byte ptr [ebp+var_4], 7
jnz	short loc_40C30B
push	offset asc_45B600 ; "-"
lea	ecx, [ebp+var_2C]
call	sub_404722

loc_40C30B:
push	offset off_45B744
lea	ecx, [ebp+var_2C]
call	sub_403195
lea	eax, [esi+30h]
lea	ecx, [ebp+var_2C]
push	eax
call	sub_40316A
lea	eax, [esi+2DAh]
lea	ecx, [ebp+hMenu]
push	[ebp+var_2C]	; lpNewItem
push	eax		; uIDNewItem
push	ebx		; uFlags
call	sub_42C93E
push	[ebp+var_2C]	; Memory
call	sub_4284D8
push	[ebp+var_38]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
inc	esi
pop	ecx
cmp	esi, 0Ah
pop	ecx
jl	loc_40C237

loc_40C357:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_40C01C endp



; Attributes: bp-based frame

sub_40C368 proc	near

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

mov	eax, offset loc_4439C8
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
mov	[ebp+var_10], ebx
push	esi		; lpCriticalSection
mov	[ebp+var_10], esi
call	ds:EnterCriticalSection
mov	eax, [ebp+arg_4]
mov	[ebp+var_4], ebx
cmp	eax, [esi+20h]
jl	short loc_40C3B2
push	edi
mov	edi, [ebp+arg_0]
push	3
mov	ecx, edi
mov	[edi], ebx
mov	[edi+4], ebx
mov	[edi+8], ebx
call	sub_403396
push	esi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	eax, edi
pop	edi
jmp	short loc_40C3CA

loc_40C3B2:
mov	ecx, [esi+24h]
push	dword ptr [ecx+eax*4]
mov	ecx, [ebp+arg_0]
call	sub_4030F2
push	esi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	eax, [ebp+arg_0]

loc_40C3CA:
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_40C368 endp




sub_40C3DA proc	near
sub	ecx, 0
jz	short loc_40C40C
sub	ecx, 4
jz	short loc_40C406
dec	ecx
jz	short loc_40C400
dec	ecx
dec	ecx
jz	short loc_40C3FA
sub	ecx, 5
jz	short loc_40C3F4
or	eax, 0FFFFFFFFh
retn

loc_40C3F4:
mov	eax, 1A6h
retn

loc_40C3FA:
mov	eax, 1A7h
retn

loc_40C400:
mov	eax, 1A5h
retn

loc_40C406:
mov	eax, 1A4h
retn

loc_40C40C:
mov	eax, 1A8h
retn
sub_40C3DA endp



; Attributes: bp-based frame

sub_40C412 proc	near

Memory=	dword ptr -58h
var_4C=	dword ptr -4Ch
var_48=	dword ptr -48h
var_40=	dword ptr -40h
cbData=	dword ptr -2Ch
var_28=	dword ptr -28h
var_24=	dword ptr -24h
uPosition= dword ptr -20h
var_1C=	dword ptr -1Ch
hMenu= dword ptr -18h
item= dword ptr	-14h
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= byte ptr	 8
arg_4= byte ptr	 0Ch
arg_8= dword ptr  10h
arg_C= byte ptr	 14h

mov	eax, offset loc_4439E4
call	__EH_prolog
sub	esp, 4Ch
push	ebx
push	esi
push	edi
mov	esi, edx
mov	[ebp+hMenu], ecx
xor	ebx, ebx
push	3
lea	ecx, [ebp+cbData]
mov	[ebp+item], esi
mov	[ebp+cbData], ebx
mov	[ebp+var_28], ebx
mov	[ebp+var_24], ebx
call	sub_403396
lea	ecx, [ebp+cbData] ; cbData
mov	[ebp+var_4], ebx
call	sub_41E91F
lea	ecx, [ebp+Memory]
mov	[ebp+uPosition], esi
mov	[ebp+var_1C], ebx
call	sub_40BF33
push	13h
lea	eax, [ebp+Memory]
pop	edi
mov	byte ptr [ebp+var_4], 1
push	eax		; int
push	1		; char
mov	[ebp+var_4C], edi
mov	[ebp+var_48], ebx
push	ebx		; item
mov	esi, offset hMenu

loc_40C471:
mov	ecx, esi
call	sub_42C5B2
test	al, al
jz	loc_40C560
cmp	[ebp+arg_0], bl
mov	ecx, [ebp+var_40]
jnz	short loc_40C491
cmp	ecx, 8
jz	loc_40C531

loc_40C491:
cmp	ecx, 0F3h
jnz	short loc_40C4A2
cmp	[ebp+var_28], ebx
jz	loc_40C531

loc_40C4A2:
cmp	[ebp+arg_4], bl
jz	short loc_40C4B6
cmp	[ebp+arg_8], 1
jnz	short loc_40C4B6
cmp	[ebp+arg_C], bl
jz	short loc_40C4B6
mov	al, 1
jmp	short loc_40C4B8

loc_40C4B6:
xor	al, al

loc_40C4B8:
cmp	ecx, 0EEh
jz	short loc_40C4C8
cmp	ecx, 0EFh
jnz	short loc_40C4D0

loc_40C4C8:
cmp	al, bl
mov	[ebp+var_D], 1
jz	short loc_40C4D3

loc_40C4D0:
mov	[ebp+var_D], bl

loc_40C4D3:
push	28h
mov	edx, 0C8h
pop	ecx
call	sub_42FB0B
cmp	al, bl
jnz	short loc_40C4F2
cmp	[ebp+var_D], bl
jnz	short loc_40C531
cmp	[ebp+var_48], 800h
jz	short loc_40C531

loc_40C4F2:
lea	eax, [ebp+Memory]
lea	ecx, [ebp+hMenu]
push	eax		; int
push	1		; char
push	[ebp+item]	; item
call	sub_42C858
test	al, al
jz	short loc_40C50A
inc	[ebp+item]

loc_40C50A:
cmp	[ebp+var_D], bl
jz	short loc_40C522
mov	eax, [ebp+item]
push	401h		; uEnable
dec	eax
push	eax		; uIDEnableItem
push	[ebp+hMenu]	; hMenu
call	ds:EnableMenuItem

loc_40C522:
cmp	[ebp+var_48], 800h
jz	short loc_40C531
mov	eax, [ebp+item]
mov	[ebp+uPosition], eax

loc_40C531:		; Memory
push	[ebp+Memory]
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
inc	[ebp+var_1C]
pop	ecx
lea	ecx, [ebp+Memory]
call	sub_40BF33
lea	eax, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
push	eax
push	1
push	[ebp+var_1C]
mov	[ebp+var_4C], edi
mov	[ebp+var_48], ebx
jmp	loc_40C471

loc_40C560:		; Memory
push	[ebp+Memory]
call	sub_4284D8
mov	esi, ds:RemoveMenu
pop	ecx
mov	ebx, 400h
push	ebx		; uFlags
push	[ebp+uPosition]	; uPosition
push	[ebp+hMenu]	; hMenu

loc_40C57B:
call	esi ; RemoveMenu
test	eax, eax
jz	short loc_40C58A
push	ebx
push	[ebp+uPosition]
push	[ebp+hMenu]
jmp	short loc_40C57B

loc_40C58A:		; Memory
push	[ebp+cbData]
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	10h
sub_40C412 endp




sub_40C5A4 proc	near

var_1= byte ptr	-1

push	ecx
cmp	ecx, 3E8h
jl	short loc_40C60E
push	esi
push	ecx
mov	ecx, dword_45D4CC
imul	ecx, 188h
add	ecx, offset unk_45D544
call	sub_41988C
mov	eax, dword_45D4CC
mov	esi, eax
imul	esi, 188h
add	esi, offset unk_45D6B4
mov	ecx, [esi]
test	ecx, ecx
jz	short loc_40C5ED
mov	eax, [ecx]
push	ecx
call	dword ptr [eax+8]
and	dword ptr [esi], 0
mov	eax, dword_45D4CC

loc_40C5ED:
imul	eax, 188h
add	eax, offset unk_45D6B8
mov	esi, eax
mov	eax, [esi]
test	eax, eax
jz	short loc_40C609
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
and	dword ptr [esi], 0

loc_40C609:
mov	al, 1
pop	esi
pop	ecx
retn

loc_40C60E:
lea	eax, [ecx-0D2h]
cmp	eax, 29h	; switch 42 cases
ja	loc_40C790	; jumptable 0040C624 default case
movzx	eax, ds:byte_40C7DC[eax]
jmp	ds:off_40C794[eax*4] ; switch jump

loc_40C62B:		; jumptable 0040C624 case 0
push	1
jmp	short loc_40C64D

loc_40C62F:		; jumptable 0040C624 case 1
mov	ecx, dword_45D4CC
imul	ecx, 188h
add	ecx, offset unk_45D544
call	sub_4171E1
jmp	loc_40C78C	; jumptable 0040C624 case 10

loc_40C64B:		; jumptable 0040C624 case 2
push	0

loc_40C64D:
mov	ecx, dword_45D4CC
imul	ecx, 188h
add	ecx, offset unk_45D544
call	sub_417220
jmp	loc_40C78C	; jumptable 0040C624 case 10

loc_40C669:		; jumptable 0040C624 case 11
mov	ecx, dword_45D4CC
imul	ecx, 188h
add	ecx, offset unk_45D544
call	sub_4171AB
jmp	loc_40C78C	; jumptable 0040C624 case 10

loc_40C685:		; jumptable 0040C624 case 20
mov	ecx, dword_45D4CC
imul	ecx, 188h
add	ecx, offset unk_45D544
call	sub_41AE8D
jmp	loc_40C78C	; jumptable 0040C624 case 10

loc_40C6A1:		; jumptable 0040C624 case 21
push	dword_45D4CC
push	0
push	0
jmp	short loc_40C6B7

loc_40C6AD:		; jumptable 0040C624 case 22
push	dword_45D4CC
push	0
push	1

loc_40C6B7:
mov	ecx, offset dword_45D4C0
call	sub_401E65
jmp	loc_40C78C	; jumptable 0040C624 case 10

loc_40C6C6:		; jumptable 0040C624 case 23
push	10h
call	ds:GetKeyState
mov	ecx, dword_45D4CC
shr	eax, 0Fh
and	al, 1
mov	[esp+4+var_1], al
setz	al
imul	ecx, 188h
push	eax
add	ecx, offset unk_45D544
call	sub_419DE1
jmp	loc_40C78C	; jumptable 0040C624 case 10

loc_40C6F7:		; jumptable 0040C624 case 32
mov	ecx, offset dword_45D4C0
call	sub_410BFA
jmp	loc_40C78C	; jumptable 0040C624 case 10

loc_40C706:		; jumptable 0040C624 case 33
mov	ecx, offset dword_45D4C0
call	sub_41496D
jmp	short loc_40C78C ; jumptable 0040C624 case 10

loc_40C712:		; jumptable 0040C624 case 28
mov	ecx, offset dword_45D4C0
call	sub_41C3F6
jmp	short loc_40C78C ; jumptable 0040C624 case 10

loc_40C71E:		; jumptable 0040C624 case 29
mov	ecx, offset dword_45D4C0
call	sub_41CD07
jmp	short loc_40C78C ; jumptable 0040C624 case 10

loc_40C72A:		; jumptable 0040C624 case 30
mov	ecx, dword_45D4CC
imul	ecx, 188h
add	ecx, offset unk_45D544
call	sub_418B0B
jmp	short loc_40C78C ; jumptable 0040C624 case 10

loc_40C743:		; jumptable 0040C624 case 31
mov	ecx, dword_45D4CC
imul	ecx, 188h
add	ecx, offset unk_45D544
call	sub_41AEAE
jmp	short loc_40C78C ; jumptable 0040C624 case 10

loc_40C75C:		; jumptable 0040C624 case 40
mov	ecx, dword_45D4CC
imul	ecx, 188h
add	ecx, offset unk_45D544
call	sub_41A83F
jmp	short loc_40C78C ; jumptable 0040C624 case 10

loc_40C775:		; jumptable 0040C624 case 41
mov	ecx, dword_45D4CC
imul	ecx, 188h
add	ecx, offset unk_45D544
call	sub_41AC27

loc_40C78C:		; jumptable 0040C624 case 10
mov	al, 1
pop	ecx
retn

loc_40C790:		; jumptable 0040C624 default case
xor	al, al
pop	ecx
retn
sub_40C5A4 endp

off_40C794 dd offset loc_40C62B	; jump table for switch	statement
dd offset loc_40C62F
dd offset loc_40C64B
dd offset loc_40C78C
dd offset loc_40C669
dd offset loc_40C685
dd offset loc_40C6A1
dd offset loc_40C6AD
dd offset loc_40C6C6
dd offset loc_40C712
dd offset loc_40C71E
dd offset loc_40C72A
dd offset loc_40C743
dd offset loc_40C6F7
dd offset loc_40C706
dd offset loc_40C75C
dd offset loc_40C775
dd offset loc_40C790
byte_40C7DC db	    0,	   1,	  2,   11h ; indirect table for	switch statement
db    11h,   11h,   11h,   11h
db    11h,   11h,     3,     4
db    11h,   11h,   11h,   11h
db    11h,   11h,   11h,   11h
db	5,     6,     7,     8
db    11h,   11h,   11h,   11h
db	9,   0Ah,   0Bh,   0Ch
db    0Dh,   0Eh,   11h,   11h
db    11h,   11h,   11h,   11h
db    0Fh,   10h


; Attributes: bp-based frame

sub_40C806 proc	near

var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	byte ptr -14h
var_13=	byte ptr -13h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443A08
call	__EH_prolog
sub	esp, 10h
push	ebx
push	esi
push	edi
mov	esi, edx
mov	edi, ecx
mov	ecx, esi
call	sub_40C5A4
test	al, al
jnz	loc_40CCA9
mov	eax, 1A7h
cmp	esi, eax
jg	loc_40C9FF
jz	loc_40C9F8
add	eax, 0FFFFFFA6h
cmp	esi, eax
jg	loc_40C943
jz	loc_40C927
mov	eax, esi
sub	eax, 8
jz	loc_40C90C
sub	eax, 138h
jz	loc_40C8F0
dec	eax
jz	short loc_40C8D4
dec	eax
jz	short loc_40C8B8
sub	eax, 8
jz	short loc_40C899
dec	eax
jz	short loc_40C895
dec	eax
jnz	loc_40CB45
mov	ecx, dword_45D4CC
mov	esi, offset unk_45D544
imul	ecx, 188h
add	ecx, esi
call	sub_41BA46
jmp	loc_40C984

loc_40C895:
push	0
jmp	short loc_40C89B

loc_40C899:
push	1

loc_40C89B:
mov	ecx, dword_45D4CC
mov	esi, offset unk_45D544
imul	ecx, 188h
add	ecx, esi
call	sub_41BA14
jmp	loc_40C984

loc_40C8B8:
mov	ecx, dword_45D4CC
imul	ecx, 188h
add	ecx, offset unk_45D544
call	nullsub_2
jmp	loc_40CCA9

loc_40C8D4:
mov	ecx, dword_45D4CC
imul	ecx, 188h
add	ecx, offset unk_45D544
call	sub_41913D
jmp	loc_40CCA9

loc_40C8F0:
mov	ecx, dword_45D4CC
imul	ecx, 188h
add	ecx, offset unk_45D544
call	nullsub_2
jmp	loc_40CCA9

loc_40C90C:
mov	esi, ds:SendMessageA
xor	ebx, ebx
push	edi		; lParam
push	ebx		; wParam
push	6		; Msg
push	edi		; hWnd
call	esi ; SendMessageA
push	ebx		; lParam
push	ebx		; wParam
push	10h		; Msg
push	edi		; hWnd
call	esi ; SendMessageA
jmp	loc_40CCA9

loc_40C927:
push	1

loc_40C929:
mov	ecx, dword_45D4CC
mov	esi, offset unk_45D544
imul	ecx, 188h
add	ecx, esi
call	sub_41B6E1
jmp	short loc_40C984

loc_40C943:
cmp	esi, 19Dh
jg	loc_40C9D0
cmp	esi, 19Ah
jge	short loc_40C9A4
mov	eax, esi
sub	eax, 14Eh
jz	short loc_40C9A0
dec	eax
jz	short loc_40C99C
dec	eax
jnz	loc_40CB45
push	0

loc_40C96C:
mov	ecx, dword_45D4CC
mov	esi, offset unk_45D544
imul	ecx, 188h
add	ecx, esi
call	sub_41B832

loc_40C984:
mov	ecx, dword_45D4CC
imul	ecx, 188h
add	ecx, esi
call	sub_40E930
jmp	loc_40CCA9

loc_40C99C:
push	1
jmp	short loc_40C96C

loc_40C9A0:
push	0
jmp	short loc_40C929

loc_40C9A4:
lea	eax, [esi-19Ah]
cmp	eax, 4
jnb	loc_40CCA9
mov	ecx, dword_45D4CC
push	eax
imul	ecx, 188h
add	ecx, offset unk_45D544
call	sub_40E8BF
jmp	loc_40CCA9

loc_40C9D0:
mov	eax, esi
sub	eax, 1A4h
jz	short loc_40C9F1
dec	eax
jz	short loc_40C9EA
dec	eax
jnz	loc_40CB45
push	0Ch
jmp	loc_40CADC

loc_40C9EA:
push	5
jmp	loc_40CADC

loc_40C9F1:
push	4
jmp	loc_40CADC

loc_40C9F8:
push	7
jmp	loc_40CADC

loc_40C9FF:
mov	eax, 1CCh
cmp	esi, eax
jg	loc_40CB0C
jz	loc_40CAF8
mov	eax, esi
sub	eax, 1A8h
jz	loc_40CADA
sub	eax, 6
jz	loc_40CABE
dec	eax
jz	short loc_40CAA2
dec	eax
jz	short loc_40CA86
sub	eax, 8
jz	short loc_40CA6A
sub	eax, 9
jz	short loc_40CA4E
dec	eax
jnz	loc_40CB45
mov	ecx, offset dword_45D4C0
call	sub_4017B2
jmp	loc_40CCA9

loc_40CA4E:
mov	ecx, dword_45D4CC
imul	ecx, 188h
add	ecx, offset unk_45D544
call	sub_40E902
jmp	loc_40CCA9

loc_40CA6A:
mov	ecx, dword_45D4CC
imul	ecx, 188h
add	ecx, offset unk_45D544
call	sub_417B11
jmp	loc_40CCA9

loc_40CA86:
mov	ecx, dword_45D4CC
imul	ecx, 188h
add	ecx, offset unk_45D544
call	sub_413A0F
jmp	loc_40CCA9

loc_40CAA2:
mov	ecx, dword_45D4CC
imul	ecx, 188h
add	ecx, offset unk_45D544
call	sub_413C6E
jmp	loc_40CCA9

loc_40CABE:
mov	ecx, dword_45D4CC
imul	ecx, 188h
add	ecx, offset unk_45D544
call	sub_413FB8
jmp	loc_40CCA9

loc_40CADA:		; int
push	0

loc_40CADC:
mov	ecx, dword_45D4CC
imul	ecx, 188h
add	ecx, offset unk_45D544 ; wParam
call	sub_41BE7A
jmp	loc_40CCA9

loc_40CAF8:
cmp	byte_45D4D0, 0
setz	al
mov	byte_45D4D0, al
jmp	loc_40CC9F

loc_40CB0C:
mov	eax, esi
sub	eax, 1CDh
jz	loc_40CC90
dec	eax
jz	loc_40CC7F
dec	eax
jz	loc_40CC6E
sub	eax, 2Fh
jz	loc_40CC5F
dec	eax
jz	loc_40CBE9
sub	eax, 63h
jz	loc_40CBD7
sub	eax, 0Ah
jz	short loc_40CBB2

loc_40CB45:
cmp	esi, 2DAh
jb	short loc_40CB78
cmp	esi, 2E3h
ja	short loc_40CB78
mov	ecx, dword_45D4CC
add	esi, 0FFFFFD26h
imul	ecx, 188h
push	esi
add	ecx, offset unk_45D544
call	sub_41314E
jmp	loc_40CCA9

loc_40CB78:
cmp	esi, 2E4h
jb	short loc_40CBAB
cmp	esi, 2EDh
ja	short loc_40CBAB
mov	ecx, dword_45D4CC
add	esi, 0FFFFFD1Ch
imul	ecx, 188h
push	esi
add	ecx, offset unk_45D544
call	sub_4130B3
jmp	loc_40CCA9

loc_40CBAB:
xor	al, al
jmp	loc_40CCAB

loc_40CBB2:
and	[ebp+var_18], 0
mov	[ebp+var_1C], offset off_44BEB0
push	edi		; hWndParent
push	1FBh		; lpTemplateName
lea	ecx, [ebp+var_1C]
mov	[ebp+var_4], 2
call	sub_42FCF7
jmp	loc_40CCA9

loc_40CBD7:
mov	edx, off_45B724
xor	ecx, ecx
call	sub_40AD1B
jmp	loc_40CCA9

loc_40CBE9:
mov	al, byte_45D6C8
xor	ebx, ebx
mov	byte ptr [ebp+var_1C], al
mov	al, byte_45D6C9
mov	[ebp+var_18], offset unk_45D544
mov	byte ptr [ebp+var_1C+1], al
mov	byte_45D6C8, bl
mov	byte_45D6C9, bl
mov	al, byte_45D850
mov	[ebp+var_4], ebx
mov	[ebp+var_14], al
mov	al, byte_45D851
mov	[ebp+var_10], offset unk_45D6CC
mov	[ebp+var_13], al
mov	byte_45D850, bl
mov	byte_45D851, bl
mov	byte ptr [ebp+var_4], 1
call	sub_433355
mov	al, [ebp+var_14]
mov	byte_45D850, al
mov	al, [ebp+var_13]
mov	byte_45D851, al
mov	al, byte ptr [ebp+var_1C]
mov	byte_45D6C8, al
mov	al, byte ptr [ebp+var_1C+1]
mov	byte_45D6C9, al
jmp	short loc_40CCA9

loc_40CC5F:
mov	edx, hInstance
mov	ecx, edi
call	sub_40D1DC
jmp	short loc_40CCA9

loc_40CC6E:
cmp	byte_45D4D2, 0
setz	al
mov	byte_45D4D2, al
jmp	short loc_40CC9F

loc_40CC7F:
cmp	byte_45D4D3, 0
setz	al
mov	byte_45D4D3, al
jmp	short loc_40CC9F

loc_40CC90:
cmp	byte_45D4D1, 0
setz	al
mov	byte_45D4D1, al

loc_40CC9F:
mov	ecx, offset dword_45D4C0
call	sub_4014E6

loc_40CCA9:
mov	al, 1

loc_40CCAB:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_40C806 endp



; Attributes: bp-based frame

sub_40CCBA proc	near

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

mov	eax, offset loc_443A1C
call	__EH_prolog
push	esi
mov	esi, [ebp+arg_0]
push	edi
lea	edi, [esi+190h]
mov	ecx, edi
call	sub_422D48
test	eax, eax
jnz	short loc_40CD23
add	esi, 60h
push	esi		; lpCriticalSection
mov	[ebp+arg_0], esi
call	ds:EnterCriticalSection
mov	eax, [ebp+arg_4]
and	[ebp+var_4], 0
test	eax, eax
jz	short loc_40CD07
push	dword ptr [eax+4]
mov	ecx, edi
push	dword ptr [eax]
call	sub_4039E2
push	0
mov	ecx, edi
call	sub_40CD33

loc_40CD07:
mov	eax, [ebp+arg_8]
test	eax, eax
jz	short loc_40CD1A
push	dword ptr [eax+4]
mov	ecx, edi
push	dword ptr [eax]
call	sub_40CD57

loc_40CD1A:		; lpCriticalSection
push	esi
call	ds:LeaveCriticalSection
xor	eax, eax

loc_40CD23:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	0Ch
sub_40CCBA endp




sub_40CD33 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
push	edi
lea	edi, [esi+94h]
push	edi		; lpCriticalSection
call	ds:EnterCriticalSection
mov	al, [esp+8+arg_0]
push	edi		; lpCriticalSection
mov	[esi+2], al
call	ds:LeaveCriticalSection
pop	edi
pop	esi
retn	4
sub_40CD33 endp




sub_40CD57 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	esi
mov	esi, ecx
push	edi
lea	edi, [esi+94h]
push	edi		; lpCriticalSection
call	ds:EnterCriticalSection
mov	eax, [esp+8+arg_0]
push	edi		; lpCriticalSection
mov	[esi+8], eax
mov	eax, [esp+0Ch+arg_4]
mov	[esi+0Ch], eax
call	ds:LeaveCriticalSection
pop	edi
pop	esi
retn	8
sub_40CD57 endp



; Attributes: bp-based frame

sub_40CD82 proc	near

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

mov	eax, offset loc_443A30
call	__EH_prolog
push	esi
mov	esi, [ebp+arg_0]
push	edi
lea	edi, [esi+190h]
mov	ecx, edi
call	sub_422D48
test	eax, eax
jnz	short loc_40CDE2
add	esi, 60h
push	esi		; lpCriticalSection
mov	[ebp+arg_0], esi
call	ds:EnterCriticalSection
mov	eax, [ebp+arg_4]
and	[ebp+var_4], 0
test	eax, eax
jz	short loc_40CDC6
push	dword ptr [eax+4]
mov	ecx, edi
push	dword ptr [eax]
call	sub_403EC6

loc_40CDC6:
mov	eax, [ebp+arg_8]
test	eax, eax
jz	short loc_40CDD9
push	dword ptr [eax+4]
mov	ecx, edi
push	dword ptr [eax]
call	sub_403AA0

loc_40CDD9:		; lpCriticalSection
push	esi
call	ds:LeaveCriticalSection
xor	eax, eax

loc_40CDE2:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	0Ch
sub_40CD82 endp




sub_40CDF2 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8
arg_8= dword ptr  0Ch

mov	eax, [esp+arg_0]
push	esi
lea	esi, [eax+184h]
mov	ecx, esi
call	sub_422D48
test	eax, eax
jnz	short loc_40CE19
push	[esp+4+arg_8]
mov	ecx, esi
push	[esp+8+arg_4]
call	sub_40CD57
xor	eax, eax

loc_40CE19:
pop	esi
retn	0Ch
sub_40CDF2 endp




sub_40CE1D proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [esp+arg_0]
push	esi
lea	esi, [eax+184h]
mov	ecx, esi
call	sub_422D48
test	eax, eax
jnz	short loc_40CE49
mov	eax, [esp+4+arg_4]
test	eax, eax
jz	short loc_40CE47
push	dword ptr [eax+4]
mov	ecx, esi
push	dword ptr [eax]
call	sub_403AA0

loc_40CE47:
xor	eax, eax

loc_40CE49:
pop	esi
retn	8
sub_40CE1D endp



; Attributes: bp-based frame

sub_40CE4D proc	near

pvarg= VARIANTARG ptr -1Ch
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_443A44
call	__EH_prolog
sub	esp, 10h
xor	ecx, ecx
mov	word ptr [ebp+pvarg.anonymous_0], cx
mov	word ptr [ebp+pvarg.anonymous_0+2], cx
mov	eax, [ebp+arg_0]
mov	[ebp+var_4], ecx
cmp	[eax+74h], cl
jz	short loc_40CE7A
cmp	[ebp+arg_4], 4
jnz	short loc_40CEE9
push	dword ptr [eax+78h]
jmp	short loc_40CEE1

loc_40CE7A:
mov	ecx, [ebp+arg_4]
sub	ecx, 4
jz	short loc_40CEDE
dec	ecx
dec	ecx
jz	short loc_40CECB
dec	ecx
jz	short loc_40CEBB
dec	ecx
dec	ecx
jz	short loc_40CEAE
dec	ecx
jz	short loc_40CEA9
dec	ecx
jz	short loc_40CEA4
dec	ecx
jnz	short loc_40CEE9
add	eax, 3Ch

loc_40CE99:
push	eax
lea	ecx, [ebp+pvarg]
call	sub_42CDB9
jmp	short loc_40CEE9

loc_40CEA4:
add	eax, 34h
jmp	short loc_40CE99

loc_40CEA9:
add	eax, 2Ch
jmp	short loc_40CE99

loc_40CEAE:
push	dword ptr [eax+44h]
lea	ecx, [ebp+pvarg]
call	sub_42CD72
jmp	short loc_40CEE9

loc_40CEBB:
push	dword ptr [eax+28h]
lea	ecx, [ebp+pvarg]
push	dword ptr [eax+24h]
call	sub_42CD92
jmp	short loc_40CEE9

loc_40CECB:
mov	eax, [eax+44h]
lea	ecx, [ebp+pvarg]
shr	eax, 4
and	al, 1
push	eax
call	sub_42CD4D
jmp	short loc_40CEE9

loc_40CEDE:		; psz
push	dword ptr [eax+4Ch]

loc_40CEE1:
lea	ecx, [ebp+pvarg]
call	sub_42CC9E

loc_40CEE9:		; pvarg
push	[ebp+arg_8]
lea	ecx, [ebp+pvarg] ; Src
call	sub_42CE85
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
mov	ecx, [ebp+var_C]
xor	eax, eax
mov	large fs:0, ecx
leave
retn	0Ch
sub_40CE4D endp



; Attributes: bp-based frame

sub_40CF10 proc	near

var_50=	byte ptr -50h
Memory=	dword ptr -28h
lpFileName= dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_443A72
call	__EH_prolog
sub	esp, 44h
mov	eax, [ebp+arg_8]
push	ebx
mov	ebx, [ebp+arg_0]
and	dword ptr [eax], 0
cmp	byte ptr [ebx+74h], 0
jz	short loc_40CF35
push	1
pop	eax
jmp	loc_40D009

loc_40CF35:
push	esi
push	edi
lea	ecx, [ebp+Memory]
call	sub_403079
push	[ebp+arg_4]
and	[ebp+var_4], 0
lea	edx, [ebx+14h]
lea	ecx, [ebp+lpFileName]
call	sub_409948
push	[ebp+lpFileName] ; lpFileName
lea	ecx, [ebp+var_50]
mov	byte ptr [ebp+var_4], 1
call	sub_42B49E
test	al, al
jnz	short loc_40CF6C

loc_40CF64:
push	1
pop	esi
jmp	loc_40CFF3

loc_40CF6C:
lea	eax, [ebx+24h]
push	0Ah
pop	ecx
lea	esi, [ebp+var_50]
mov	edi, eax
rep movsd
lea	ecx, [ebp+Memory]
push	ecx
lea	ecx, [eax+28h]
call	sub_40312C
mov	eax, [ebx+44h]
shr	eax, 4
test	al, 1
jnz	short loc_40CF64
push	40h		; Size
call	sub_4284B1
pop	ecx
mov	[ebp+arg_0], eax
test	eax, eax
mov	byte ptr [ebp+var_4], 2
jz	short loc_40CFAD
mov	ecx, eax
call	sub_4307E3
mov	esi, eax
jmp	short loc_40CFAF

loc_40CFAD:
xor	esi, esi

loc_40CFAF:
test	esi, esi
mov	byte ptr [ebp+var_4], 1
mov	[ebp+arg_0], esi
jz	short loc_40CFC0
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]

loc_40CFC0:		; lpFileName
push	[ebp+lpFileName]
mov	ecx, esi
mov	byte ptr [ebp+var_4], 3
call	sub_4307C1
test	al, al
jnz	short loc_40CFEC
call	ds:GetLastError
test	esi, esi
mov	edi, eax
mov	byte ptr [ebp+var_4], 1
jz	short loc_40CFE8
mov	eax, [esi]
push	esi
call	dword ptr [eax+8]

loc_40CFE8:
mov	esi, edi
jmp	short loc_40CFF3

loc_40CFEC:
mov	eax, [ebp+arg_8]
mov	[eax], esi
xor	esi, esi

loc_40CFF3:		; Memory
push	[ebp+lpFileName]
call	sub_4284D8
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
pop	ecx
pop	edi
pop	esi

loc_40D009:
mov	ecx, [ebp+var_C]
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_40CF10 endp



; Attributes: bp-based frame

sub_40D018 proc	near

var_24=	byte ptr -24h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_443A84
call	__EH_prolog
sub	esp, 18h
push	edi
mov	edi, [ebp+arg_0]
mov	byte ptr [edi+79h], 1
cmp	byte ptr [edi+78h], 0
jnz	short loc_40D0A6
push	esi
lea	ecx, [ebp+var_24]
call	sub_404349
and	[ebp+var_4], 0
lea	esi, [edi+90h]
lea	ecx, [esi+0E4h]
call	sub_4418F0
mov	ecx, [esi+0E8h]	; hHandle
call	sub_441880
neg	esi
lea	eax, [edi+94h]
lea	ecx, [ebp+var_24]
sbb	esi, esi
and	esi, eax
push	dword ptr [esi]	; hWndParent
push	1F5h		; lpTemplateName
call	sub_42FCF7
cmp	eax, 2
pop	esi
jnz	short loc_40D08D
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, 80004004h
jmp	short loc_40D0C2

loc_40D08D:
lea	eax, [ebp+Memory]
lea	ecx, [edi+7Ch]
push	eax
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [edi+78h], 1
call	sub_4284D8
pop	ecx

loc_40D0A6:		; psz
push	dword ptr [edi+7Ch]
call	ds:SysAllocString
mov	ecx, [ebp+arg_4]
mov	[ecx], eax
neg	eax
sbb	eax, eax
and	eax, 7FF8FFF2h
add	eax, 8007000Eh

loc_40D0C2:
mov	ecx, [ebp+var_C]
pop	edi
mov	large fs:0, ecx
leave
retn	8
sub_40D018 endp




sub_40D0D1 proc	near
mov	ecx, offset aDllregisterser ; "DllRegisterServer"
jmp	$+5

loc_40D0DB:
mov	eax, offset loc_443AB0
call	__EH_prolog
sub	esp, 1Ch
push	ebx
push	esi
xor	esi, esi
push	edi
mov	edi, ecx
mov	[ebp-10h], esi
push	3
lea	ecx, [ebp-1Ch]
mov	[ebp-4], esi
mov	[ebp-1Ch], esi
mov	[ebp-18h], esi
mov	[ebp-14h], esi
call	sub_403396
lea	ecx, [ebp-1Ch]
mov	byte ptr [ebp-4], 1
call	sub_41D79C
lea	edx, [ebp-1Ch]
lea	ecx, [ebp-28h]
push	offset a7Zip_dll ; "7-zip.dll"
call	sub_409948
push	dword ptr [eax]	; lpLibFileName
lea	ecx, [ebp-10h]
mov	byte ptr [ebp-4], 2
call	sub_429A47
mov	bl, al
mov	byte ptr [ebp-4], 1
push	dword ptr [ebp-28h] ; Memory
neg	bl
sbb	bl, bl
inc	bl
call	sub_4284D8
test	bl, bl
pop	ecx
jz	short loc_40D15C
mov	ecx, offset a7ZipCannotLoad ; "7-Zip cannot load 7-zip.dll"

loc_40D150:
call	sub_40D1BD
mov	edi, 80004005h
jmp	short loc_40D197

loc_40D15C:		; lpProcName
push	edi
push	dword ptr [ebp-10h] ; hModule
call	ds:GetProcAddress
cmp	eax, esi
jnz	short loc_40D171
mov	ecx, offset aIncorrectPlugi ; "Incorrect plugin"
jmp	short loc_40D150

loc_40D171:
call	eax
mov	edi, eax
cmp	edi, esi
jz	short loc_40D197
mov	edx, edi
lea	ecx, [ebp-28h]
call	sub_425088
mov	ecx, [eax]	; lpText
mov	byte ptr [ebp-4], 3
call	sub_40D1BD
push	dword ptr [ebp-28h] ; Memory
call	sub_4284D8
pop	ecx

loc_40D197:		; Memory
push	dword ptr [ebp-1Ch]
call	sub_4284D8
or	dword ptr [ebp-4], 0FFFFFFFFh
pop	ecx
lea	ecx, [ebp-10h]
call	sub_429929
mov	ecx, [ebp-0Ch]
mov	eax, edi
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_40D0D1 endp




; int __fastcall sub_40D1BD(LPCWSTR lpText)
sub_40D1BD proc	near
push	10h		; uType
push	offset a7Zip	; "7-Zip"
push	ecx		; lpText
push	dword_45D908	; hWnd
call	ds:MessageBoxW
retn
sub_40D1BD endp




sub_40D1D2 proc	near
mov	ecx, offset aDllunregisters ; "DllUnregisterServer"
jmp	loc_40D0DB
sub_40D1D2 endp



; Attributes: bp-based frame

sub_40D1DC proc	near

var_144= byte ptr -144h
var_104= dword ptr -104h
var_F8=	dword ptr -0F8h
var_D8=	dword ptr -0D8h
var_CC=	byte ptr -0CCh
var_B8=	byte ptr -0B8h
var_B4=	dword ptr -0B4h
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=	dword ptr -84h
var_80=	dword ptr -80h
var_7C=	dword ptr -7Ch
var_78=	dword ptr -78h
var_74=	dword ptr -74h
var_70=	dword ptr -70h
var_6C=	dword ptr -6Ch
var_68=	dword ptr -68h
var_64=	dword ptr -64h
var_60=	dword ptr -60h
var_5C=	dword ptr -5Ch
var_58=	dword ptr -58h
var_4C=	dword ptr -4Ch
var_48=	dword ptr -48h
var_3C=	dword ptr -3Ch
var_38=	dword ptr -38h
var_24=	dword ptr -24h
var_1C=	dword ptr -1Ch
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443B33
call	__EH_prolog
sub	esp, 138h
push	ebx
mov	[ebp+var_1C], ecx
push	esi
push	edi
lea	ecx, [ebp+var_144]
call	sub_40D557
xor	ebx, ebx
lea	ecx, [ebp+var_B4]
mov	[ebp+var_4], ebx
call	sub_40D6B1
push	ebx
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 1
call	sub_40D483
mov	[ebp+var_24], offset off_44BF44
lea	ecx, [ebp+var_D8]
mov	byte ptr [ebp+var_4], 2
call	sub_40D4C3
push	ebx
lea	ecx, [ebp+var_48]
mov	byte ptr [ebp+var_4], 3
call	sub_40D483
mov	[ebp+var_3C], ebx
mov	[ebp+var_48], offset off_44BEE8
lea	ecx, [ebp+var_104]
mov	byte ptr [ebp+var_4], 4
call	sub_40D6CC
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 5
call	sub_40337B
mov	edi, offset off_44BEE0
mov	[ebp+var_38], edi
lea	eax, [ebp+var_144]
or	[ebp+var_88], 0FFFFFFFFh
mov	[ebp+var_74], eax
lea	eax, [ebp+var_48]
mov	[ebp+var_70], eax
lea	eax, [ebp+var_104]
mov	[ebp+var_6C], eax
lea	eax, [ebp+var_B4]
mov	[ebp+var_68], eax
lea	eax, [ebp+var_24]
mov	[ebp+var_64], eax
lea	eax, [ebp+var_D8]
mov	byte ptr [ebp+var_4], 6
mov	[ebp+var_8C], 3010300h
mov	[ebp+var_84], 1000200h
mov	[ebp+var_80], 3010200h
mov	[ebp+var_7C], 3010400h
mov	[ebp+var_78], 1000400h
mov	[ebp+var_A4], 21Ch
mov	[ebp+var_A0], 23Ah
mov	[ebp+var_9C], 23Bh
mov	[ebp+var_98], 21Eh
mov	[ebp+var_94], 21Fh
mov	[ebp+var_90], 220h
mov	[ebp+var_60], eax
xor	esi, esi

loc_40D30C:
lea	ecx, [ebp+var_58]
call	sub_403079
mov	edx, [ebp+esi+var_8C]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 7
call	sub_40B0EE
push	eax
lea	ecx, [ebp+var_58]
mov	byte ptr [ebp+var_4], 8
call	sub_40312C
mov	byte ptr [ebp+var_4], 7
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+esi+var_A4]
pop	ecx
mov	[ebp+var_4C], eax
mov	eax, [ebp+esi+var_74]
mov	[ebp+var_5C], eax
lea	eax, [ebp+var_5C]
push	eax
lea	ecx, [ebp+var_38]
call	sub_40D7F5
mov	byte ptr [ebp+var_4], 6
push	[ebp+var_58]	; Memory
call	sub_4284D8
add	esi, 4
pop	ecx
cmp	esi, 18h
jl	short loc_40D30C
push	3010000h
mov	edx, 0FA0h
lea	ecx, [ebp+Memory]
call	sub_40B168
mov	edx, [ebp+var_1C]
push	eax
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 9
call	sub_430009
mov	esi, eax
mov	byte ptr [ebp+var_4], 6
push	[ebp+Memory]	; Memory
call	sub_4284D8
cmp	esi, 0FFFFFFFFh
pop	ecx
jz	short loc_40D412
cmp	esi, ebx
jz	short loc_40D412
cmp	[ebp+var_B8], bl
mov	esi, offset dword_45D4C0
jz	short loc_40D3FD
push	3000000h
mov	edx, 898h
lea	ecx, [ebp+Memory]
call	sub_40B168
mov	edx, [eax]
mov	ecx, dword_45D4C0
mov	byte ptr [ebp+var_4], 0Ah
call	sub_42E6BD
mov	byte ptr [ebp+var_4], 6
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
call	sub_40BC70
mov	ecx, esi
call	sub_4012CE
mov	ecx, esi
call	sub_4069DB

loc_40D3FD:
mov	ecx, esi
call	sub_401129
mov	ecx, esi
call	sub_4011E3
mov	ecx, esi
call	sub_40D67D

loc_40D412:
mov	[ebp+var_38], edi
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_428327
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 5
call	sub_4282FE
push	[ebp+var_F8]	; Memory
call	sub_4284D8
mov	esi, offset off_44B588
pop	ecx
mov	[ebp+var_104], esi
mov	[ebp+var_48], esi
lea	ecx, [ebp+var_CC]
mov	byte ptr [ebp+var_4], 0Ch
call	sub_40327C
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_144]
mov	[ebp+var_D8], esi
mov	[ebp+var_24], esi
mov	[ebp+var_B4], esi
call	sub_40D5E7
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_40D1DC endp




sub_40D483 proc	near

arg_0= dword ptr  4

mov	eax, ecx
mov	ecx, [esp+arg_0]
mov	[eax+4], ecx
mov	dword ptr [eax], offset	off_44BF9C
retn	4
sub_40D483 endp




sub_40D495 proc	near
xor	al, al
retn
sub_40D495 endp




sub_40D498 proc	near
mov	eax, [ecx]
call	dword ptr [eax+34h]
retn	4
sub_40D498 endp




sub_40D4A0 proc	near
mov	eax, [ecx]
call	dword ptr [eax+3Ch]
retn	4
sub_40D4A0 endp




sub_40D4A8 proc	near
xor	eax, eax
retn
sub_40D4A8 endp




sub_40D4AB proc	near
mov	eax, [ecx]
call	dword ptr [eax+44h]
retn	4
sub_40D4AB endp




sub_40D4B3 proc	near
mov	eax, [ecx]
call	dword ptr [eax+4Ch]
retn	4
sub_40D4B3 endp




sub_40D4BB proc	near
mov	eax, [ecx]
call	dword ptr [eax+54h]
retn	4
sub_40D4BB endp




sub_40D4C3 proc	near
mov	eax, ecx
xor	ecx, ecx
mov	[eax+4], ecx
mov	[eax+8], ecx
mov	[eax+10h], ecx
mov	[eax+14h], ecx
mov	[eax+18h], ecx
mov	dword ptr [eax+1Ch], 4
mov	dword ptr [eax+0Ch], offset off_44B510
mov	dword ptr [eax], offset	off_44BFF4
mov	[eax+20h], cl
retn
sub_40D4C3 endp




; int __thiscall sub_40D4EE(void *Memory, char)
sub_40D4EE proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_40D50A
test	[esp+4+arg_0], 1
jz	short loc_40D504
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_40D504:
mov	eax, esi
pop	esi
retn	4
sub_40D4EE endp



; Attributes: bp-based frame

sub_40D50A proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443B50
call	__EH_prolog
push	ecx
push	ecx
push	esi
push	edi
mov	edi, ecx
mov	[ebp+var_10], edi
and	[ebp+var_4], 0
lea	esi, [edi+0Ch]
mov	[ebp+var_14], esi
mov	dword ptr [esi], offset	off_44B510
mov	ecx, esi
mov	byte ptr [ebp+var_4], 1
call	sub_428327
and	byte ptr [ebp+var_4], 0
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
mov	dword ptr [edi], offset	off_44B588
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_40D50A endp



; Attributes: bp-based frame

sub_40D557 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443B64
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
mov	[ebp+var_10], esi
mov	[esi+4], ebx
mov	dword ptr [esi], offset	off_44BF9C
lea	ecx, [esi+0Ch]
mov	[ebp+var_4], ebx
call	sub_40D5BA
mov	ecx, [ebp+var_C]
mov	[esi+34h], ebx
mov	[esi+38h], ebx
mov	[esi+3Ch], bl
mov	dword ptr [esi], offset	off_44C04C
mov	eax, esi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_40D557 endp




; int __thiscall sub_40D59E(void *Memory, char)
sub_40D59E proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_40D5E7
test	[esp+4+arg_0], 1
jz	short loc_40D5B4
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_40D5B4:
mov	eax, esi
pop	esi
retn	4
sub_40D59E endp




sub_40D5BA proc	near
mov	eax, ecx
push	4
xor	edx, edx
pop	ecx
mov	[eax+4], edx
mov	[eax+8], edx
mov	[eax+0Ch], edx
mov	[eax+10h], ecx
mov	dword ptr [eax], offset	off_44C0A8
mov	[eax+18h], edx
mov	[eax+1Ch], edx
mov	[eax+20h], edx
mov	[eax+24h], ecx
mov	dword ptr [eax+14h], offset off_44B92C
retn
sub_40D5BA endp



; Attributes: bp-based frame

sub_40D5E7 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443B78
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
lea	ecx, [esi+0Ch]
call	sub_40D617
mov	ecx, [ebp+var_C]
mov	dword ptr [esi], offset	off_44B588
pop	esi
mov	large fs:0, ecx
leave
retn
sub_40D5E7 endp



; Attributes: bp-based frame

sub_40D617 proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443B9C
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
lea	edi, [esi+14h]
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44B92C
mov	ecx, edi
mov	byte ptr [ebp+var_4], 1
call	sub_428327
and	byte ptr [ebp+var_4], 0
mov	ecx, edi
call	sub_4282FE
mov	dword ptr [esi], offset	off_44C0A8
mov	ecx, esi
mov	[ebp+var_4], 2
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_40D617 endp




sub_40D67D proc	near
push	esi
mov	esi, ecx
push	edi
xor	edi, edi
mov	ecx, [esi+8]
test	ecx, ecx
jle	short loc_40D6AE

loc_40D68A:
cmp	ecx, 1
mov	eax, edi
jnz	short loc_40D694
mov	eax, [esi+0Ch]

loc_40D694:
imul	eax, 188h
lea	ecx, [eax+esi+84h]
call	sub_417B11
mov	ecx, [esi+8]
inc	edi
cmp	edi, ecx
jl	short loc_40D68A

loc_40D6AE:
pop	edi
pop	esi
retn
sub_40D67D endp




sub_40D6B1 proc	near
mov	eax, ecx
xor	ecx, ecx
mov	[eax+4], ecx
mov	[eax+8], ecx
mov	[eax+0Ch], ecx
mov	dword ptr [eax], offset	off_44C0B0
retn
sub_40D6B1 endp




sub_40D6C5 proc	near
mov	dword ptr [ecx], offset	off_44B588
retn
sub_40D6C5 endp



; Attributes: bp-based frame

sub_40D6CC proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443BB0
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
and	dword ptr [esi+4], 0
mov	dword ptr [esi], offset	off_44BF9C
and	[ebp+var_4], 0
lea	ecx, [esi+8]
call	sub_43C9A9
and	dword ptr [esi+1Ch], 0
and	dword ptr [esi+24h], 0
mov	ecx, [ebp+var_C]
mov	dword ptr [esi], offset	off_44C108
mov	eax, esi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_40D6CC endp




sub_40D710 proc	near
push	esi
mov	esi, ecx
push	dword ptr [esi+0Ch] ; Memory
call	sub_4284D8
pop	ecx
mov	dword ptr [esi], offset	off_44B588
pop	esi
retn
sub_40D710 endp



; Attributes: bp-based frame

sub_40D724 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443BC4
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44C0A8
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_40D724 endp



; Attributes: bp-based frame

sub_40D75C proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ebx
mov	ebx, ecx
mov	ecx, [ebp+arg_4]
push	edi
mov	edi, [ebp+arg_0]
mov	eax, [ebx+8]
add	ecx, edi
cmp	ecx, eax
jle	short loc_40D778
sub	eax, edi
mov	[ebp+arg_4], eax

loc_40D778:
mov	eax, [ebp+arg_4]
test	eax, eax
jle	short loc_40D7AC
push	esi
mov	esi, edi
shl	esi, 2
mov	[ebp+arg_0], eax

loc_40D788:
mov	eax, [ebx+0Ch]
mov	ecx, [eax+esi]
test	ecx, ecx
mov	[ebp+Memory], ecx
jz	short loc_40D7A3
call	sub_40558F
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_40D7A3:
add	esi, 4
dec	[ebp+arg_0]
jnz	short loc_40D788
pop	esi

loc_40D7AC:
push	[ebp+arg_4]
mov	ecx, ebx
push	edi
call	sub_42847F
pop	edi
pop	ebx
leave
retn	8
sub_40D75C endp



; Attributes: bp-based frame

sub_40D7BD proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443BD8
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44BEE0
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_40D7BD endp



; Attributes: bp-based frame

sub_40D7F5 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset unknown_libname_16 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	ebx, ecx
push	14h		; Size
call	sub_4284B1
mov	esi, eax
pop	ecx
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
test	esi, esi
jz	short loc_40D836
push	edi
mov	edi, [ebp+arg_0]
lea	ecx, [esi+4]
mov	eax, [edi]
mov	[esi], eax
lea	eax, [edi+4]
push	eax
call	sub_4030F2
mov	eax, [edi+10h]
pop	edi
mov	[esi+10h], eax
jmp	short loc_40D838

loc_40D836:
xor	esi, esi

loc_40D838:
or	[ebp+var_4], 0FFFFFFFFh
push	esi
mov	ecx, ebx
call	sub_429907
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_40D7F5 endp




; int __thiscall sub_40D854(void *Memory, char)
sub_40D854 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_40D724
test	[esp+4+arg_0], 1
jz	short loc_40D86A
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_40D86A:
mov	eax, esi
pop	esi
retn	4
sub_40D854 endp




; int __thiscall sub_40D870(void *Memory, char)
sub_40D870 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_40D7BD
test	[esp+4+arg_0], 1
jz	short loc_40D886
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_40D886:
mov	eax, esi
pop	esi
retn	4
sub_40D870 endp




sub_40D88C proc	near
push	esi
push	edi
mov	esi, ecx
call	sub_413EF8
mov	eax, [esi+170h]
lea	edi, [esi+170h]
test	eax, eax
jz	short loc_40D8AE
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
and	dword ptr [edi], 0

loc_40D8AE:
mov	eax, [esi+174h]
add	esi, 174h
test	eax, eax
jz	short loc_40D8C7
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
and	dword ptr [esi], 0

loc_40D8C7:
pop	edi
pop	esi
retn
sub_40D88C endp



; Attributes: bp-based frame

; void __thiscall sub_40D8CA(void *)
sub_40D8CA proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443CFC
call	__EH_prolog
push	ecx
push	ecx
push	ebx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44BA18
mov	[ebp+var_4], 0Fh
call	sub_413EF8
mov	eax, [esi+174h]
mov	byte ptr [ebp+var_4], 0Eh
test	eax, eax
jz	short loc_40D904
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_40D904:
mov	eax, [esi+170h]
mov	byte ptr [ebp+var_4], 0Dh
test	eax, eax
jz	short loc_40D918
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_40D918:
lea	edi, [esi+154h]
mov	ebx, offset off_44BA90
mov	[ebp+var_14], edi
mov	[edi], ebx
mov	ecx, edi
mov	byte ptr [ebp+var_4], 10h
call	sub_428327
mov	ecx, edi
mov	byte ptr [ebp+var_4], 0Ch
call	sub_4282FE
lea	edi, [esi+140h]
mov	[ebp+var_14], edi
mov	[edi], ebx
mov	ecx, edi
mov	byte ptr [ebp+var_4], 11h
call	sub_428327
mov	ecx, edi
mov	byte ptr [ebp+var_4], 0Bh
call	sub_4282FE
lea	edi, [esi+124h]
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44BA44
mov	ecx, edi
mov	byte ptr [ebp+var_4], 12h
call	sub_428327
mov	ecx, edi
mov	byte ptr [ebp+var_4], 0Ah
call	sub_4282FE
push	dword ptr [esi+118h] ; Memory
call	sub_4284D8
lea	edi, [esi+100h]
mov	ebx, offset off_44B510
pop	ecx
mov	[ebp+var_14], edi
mov	[edi], ebx
mov	ecx, edi
mov	byte ptr [ebp+var_4], 13h
call	sub_428327
mov	ecx, edi
mov	byte ptr [ebp+var_4], 8
call	sub_4282FE
mov	eax, [esi+0FCh]
mov	byte ptr [ebp+var_4], 7
test	eax, eax
jz	short loc_40D9CA
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_40D9CA:
lea	ecx, [esi+0F8h]
mov	byte ptr [ebp+var_4], 6
call	sub_429929
lea	edi, [esi+0E4h]
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44BA4C
mov	ecx, edi
mov	byte ptr [ebp+var_4], 14h
call	sub_428327
mov	ecx, edi
mov	byte ptr [ebp+var_4], 5
call	sub_4282FE
push	dword ptr [esi+0D8h] ; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 3
lea	ecx, [esi+0A4h]
call	sub_40299B
lea	ecx, [esi+90h]
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE
lea	edi, [esi+54h]
mov	[ebp+var_14], edi
mov	[edi], ebx
mov	ecx, edi
mov	byte ptr [ebp+var_4], 15h
call	sub_428327
mov	ecx, edi
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
and	byte ptr [ebp+var_4], 0
lea	ecx, [esi+8]
call	sub_405A0E
mov	ecx, [ebp+var_C]
mov	dword ptr [esi], offset	off_44BA5C
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_40D8CA endp




sub_40DA67 proc	near
push	esi
mov	esi, ecx
push	dword ptr [esi+4] ; hWnd
call	ds:GetParent
test	eax, eax
jnz	short loc_40DA7A
mov	eax, [esi+40h]

loc_40DA7A:
pop	esi
retn
sub_40DA67 endp



; Attributes: bp-based frame

; int __stdcall	sub_40DA7C(int,	HWND hWndParent, HMENU hMenu, int, int,	int, int, int, int)
sub_40DA7C proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
hWndParent= dword ptr  0Ch
hMenu= 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

mov	eax, offset loc_443D10
call	__EH_prolog
sub	esp, 0Ch
mov	eax, [ebp+arg_0]
push	ebx
push	esi
mov	esi, ecx
mov	ebx, [ebp+arg_C]
push	edi
mov	edi, [ebp+hMenu]
mov	[esi+40h], eax
mov	eax, [ebp+arg_14]
push	ebx
mov	[esi+44h], eax
mov	eax, [ebp+arg_18]
mov	[esi+3Ch], eax
lea	eax, [edi+3]
mov	[esi+34h], eax
inc	eax
lea	ecx, [ebp+Memory]
mov	byte ptr [esi+184h], 1
mov	byte ptr [esi+185h], 1
mov	[esi+30h], edi
mov	[esi+38h], eax
call	sub_4030F2
and	[ebp+var_4], 0
cmp	dword ptr [ebx+4], 0
jz	short loc_40DAF1
mov	ecx, [ebx]
cmp	word ptr [ecx],	2Eh
jnz	short loc_40DAF1
lea	edx, [ebp+Memory]
call	sub_42AA9A
test	al, al
jnz	short loc_40DAF1
push	ebx
lea	ecx, [ebp+Memory]
call	sub_40312C

loc_40DAF1:
push	[ebp+arg_20]
lea	eax, [ebp+Memory]
mov	ecx, esi
push	[ebp+arg_1C]
push	[ebp+arg_10]
push	eax
call	sub_412AC8
xor	ebx, ebx
cmp	eax, ebx
jz	short loc_40DB0F
mov	ebx, eax
jmp	short loc_40DB43

loc_40DB0F:		; hInstance
push	hInstance
mov	ecx, esi
push	edi		; hMenu
push	[ebp+hWndParent] ; hWndParent
push	104h		; nHeight
push	dword ptr [esi+0D0h] ; nWidth
push	ebx		; Y
push	ebx		; X
push	50000000h	; dwStyle
push	ebx		; lpWindowName
push	off_45B828	; lpClassName
push	ebx		; dwExStyle
call	sub_43039A
test	al, al
jnz	short loc_40DB43
mov	ebx, 80004005h

loc_40DB43:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
mov	eax, ebx
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	24h
sub_40DA7C endp



; Attributes: bp-based frame

; int __stdcall	sub_40DB5F(UINT	Msg, WPARAM wParam, LPARAM lParam)
sub_40DB5F proc	near

Msg= dword ptr	8
wParam=	dword ptr  0Ch
lParam=	dword ptr  10h

push	ebp
mov	ebp, esp
push	esi
push	edi
mov	edi, [ebp+Msg]
mov	eax, 403h
cmp	edi, eax
mov	esi, ecx
ja	short loc_40DBD8
jz	short loc_40DBCD
mov	eax, edi
sub	eax, 7Bh
jz	short loc_40DBAC
sub	eax, 98h
jz	short loc_40DBA3
sub	eax, 2EEh
jz	short loc_40DB9A
dec	eax
jnz	short loc_40DBE7
lea	eax, [esi+0A4h]
push	eax
call	sub_41687D
jmp	short loc_40DBC9

loc_40DB9A:
mov	ecx, esi
call	sub_41B3DC
jmp	short loc_40DBC9

loc_40DBA3:
mov	ecx, esi
call	sub_417B2E
jmp	short loc_40DBC9

loc_40DBAC:
mov	eax, [ebp+lParam]
mov	ecx, esi
shr	eax, 10h
movsx	eax, ax
push	eax		; int
movsx	eax, word ptr [ebp+lParam]
push	eax		; int
push	[ebp+wParam]	; hWnd
call	sub_419991
test	al, al
jz	short loc_40DBE7

loc_40DBC9:
xor	eax, eax
jmp	short loc_40DC13

loc_40DBCD:		; hWnd
push	dword ptr [esi+74h]
call	ds:SetFocus
jmp	short loc_40DBC9

loc_40DBD8:
mov	eax, edi
sub	eax, 404h
jz	short loc_40DC09
dec	eax
jz	short loc_40DC00
dec	eax
jz	short loc_40DBF7

loc_40DBE7:		; lParam
push	[ebp+lParam]
mov	ecx, esi
push	[ebp+wParam]	; wParam
push	edi		; Msg
call	sub_43050D
jmp	short loc_40DC13

loc_40DBF7:
mov	ecx, esi
call	sub_4132CA
jmp	short loc_40DBC9

loc_40DC00:
mov	ecx, esi
call	sub_41877A
jmp	short loc_40DBC9

loc_40DC09:
push	[ebp+lParam]
mov	ecx, esi
call	sub_415692

loc_40DC13:
pop	edi
pop	esi
pop	ebp
retn	0Ch
sub_40DB5F endp



; Attributes: bp-based frame

; int __stdcall	sub_40DC19(UINT	Msg, WPARAM wParam, __int16)
sub_40DC19 proc	near

var_1= byte ptr	-1
Msg= dword ptr	8
wParam=	dword ptr  0Ch
arg_A= byte ptr	 12h

push	ebp
mov	ebp, esp
push	ecx
mov	eax, [ebp+Msg]
push	ebx
push	edi
cmp	eax, 102h
mov	edi, ecx
jnz	short loc_40DC77
xor	eax, eax
push	1		; uMapType
mov	al, [ebp+arg_A]
push	eax		; uCode
call	ds:MapVirtualKeyA
cmp	eax, 6Ah
jz	short loc_40DC70
cmp	eax, 6Bh
jz	short loc_40DC70
cmp	eax, 6Dh
jz	short loc_40DC70
cmp	[ebp+wParam], 2Fh
jnz	short loc_40DC58
mov	eax, [ebp+10h]
shr	eax, 18h
test	al, 1
jnz	short loc_40DC68

loc_40DC58:
cmp	[ebp+wParam], 5Ch
jz	short loc_40DC68
cmp	[ebp+wParam], 2Fh
jnz	loc_40DD32

loc_40DC68:
mov	ecx, [edi+8]
call	sub_413FB8

loc_40DC70:
xor	eax, eax
jmp	loc_40DD58

loc_40DC77:
cmp	eax, 106h
jnz	short loc_40DCA6
xor	eax, eax
push	1		; uMapType
mov	al, [ebp+arg_A]
push	eax		; uCode
call	ds:MapVirtualKeyA
cmp	eax, 0Dh
jz	short loc_40DC70
cmp	eax, 6Ah
jz	short loc_40DC70
cmp	eax, 6Bh
jz	short loc_40DC70
cmp	eax, 6Dh
jnz	loc_40DD32
jmp	short loc_40DC70

loc_40DCA6:
cmp	eax, 100h
jnz	short loc_40DD18
push	esi
mov	esi, ds:GetKeyState
push	12h		; nVirtKey
call	esi ; GetKeyState
shr	eax, 0Fh
and	al, 1
push	11h		; nVirtKey
mov	[ebp+var_1], al
call	esi ; GetKeyState
mov	bx, ax
push	10h		; nVirtKey
shr	ebx, 0Fh
and	bl, 1
call	esi ; GetKeyState
mov	ecx, [ebp+wParam]
pop	esi
shr	eax, 0Fh
and	al, 1
sub	ecx, 21h
jz	short loc_40DCFD
dec	ecx
jnz	short loc_40DD32
test	bl, bl
jz	short loc_40DD32
cmp	[ebp+var_1], 0
jnz	short loc_40DD32
test	al, al
jnz	short loc_40DD32
mov	ecx, [edi+8]
call	sub_4171E1
jmp	loc_40DC70

loc_40DCFD:
test	bl, bl
jz	short loc_40DD32
cmp	[ebp+var_1], 0
jnz	short loc_40DD32
test	al, al
jnz	short loc_40DD32
mov	ecx, [edi+8]
call	sub_413C6E
jmp	loc_40DC70

loc_40DD18:
cmp	eax, 7
jnz	short loc_40DD32
mov	eax, [edi+8]
mov	byte ptr [eax+84h], 1
mov	eax, [edi+8]
mov	ecx, [eax+44h]
mov	eax, [ecx]
call	dword ptr [eax+14h]

loc_40DD32:		; lParam
push	dword ptr [ebp+10h]
mov	eax, [edi]
cmp	byte_45D8B4, 0
push	[ebp+wParam]	; wParam
push	[ebp+Msg]	; Msg
push	eax		; hWnd
push	dword ptr [edi+4] ; lpPrevWndFunc
jz	short loc_40DD52
call	ds:CallWindowProcW
jmp	short loc_40DD58

loc_40DD52:
call	ds:CallWindowProcA

loc_40DD58:
pop	edi
pop	ebx
leave
retn	0Ch
sub_40DC19 endp



; Attributes: bp-based frame

; int __stdcall	sub_40DD5E(UINT	Msg, WPARAM wParam, __int16)
sub_40DD5E proc	near

var_1= byte ptr	-1
Msg= dword ptr	8
wParam=	dword ptr  0Ch
arg_B= byte ptr	 13h

push	ebp
mov	ebp, esp
push	ecx
mov	eax, [ebp+Msg]
push	ebx
push	esi
push	edi
sub	eax, 100h
mov	edi, ecx
jz	loc_40DE05
dec	eax
dec	eax
jz	short loc_40DDF3
dec	eax
dec	eax
jnz	loc_40DE52
cmp	[ebp+wParam], 70h
jb	loc_40DE52
cmp	[ebp+wParam], 71h
ja	loc_40DE52
test	[ebp+arg_B], 20h
jz	loc_40DE52
mov	esi, ds:GetKeyState
push	12h		; nVirtKey
call	esi ; GetKeyState
mov	bx, ax
push	11h		; nVirtKey
shr	ebx, 0Fh
and	bl, 1
call	esi ; GetKeyState
shr	eax, 0Fh
and	al, 1
push	10h		; nVirtKey
mov	[ebp+var_1], al
call	esi ; GetKeyState
shr	eax, 0Fh
and	al, 1
test	bl, bl
jz	loc_40DE52
cmp	[ebp+var_1], 0
jnz	short loc_40DE52
test	al, al
jnz	short loc_40DE52
mov	eax, [edi+8]
xor	edx, edx
cmp	[ebp+wParam], 70h
mov	ecx, [eax+44h]
setnz	dl
mov	eax, [ecx]
push	edx
call	dword ptr [eax+4]
jmp	loc_40DE82

loc_40DDF3:
cmp	[ebp+wParam], 9
jz	loc_40DE82
cmp	[ebp+wParam], 1Bh
jnz	short loc_40DE52
jmp	short loc_40DE82

loc_40DE05:
cmp	[ebp+wParam], 9
jz	short loc_40DE7A
cmp	[ebp+wParam], 78h
jnz	short loc_40DE52
mov	esi, ds:GetKeyState
push	12h		; nVirtKey
call	esi ; GetKeyState
mov	bx, ax
push	11h		; nVirtKey
shr	ebx, 0Fh
and	bl, 1
call	esi ; GetKeyState
shr	eax, 0Fh
and	al, 1
push	10h		; nVirtKey
mov	[ebp+var_1], al
call	esi ; GetKeyState
shr	eax, 0Fh
and	al, 1
test	bl, bl
jnz	short loc_40DE52
cmp	[ebp+var_1], bl
jnz	short loc_40DE52
test	al, al
jnz	short loc_40DE52
mov	ecx, offset dword_45D4C0
call	sub_4017B2
jmp	short loc_40DE82

loc_40DE52:		; lParam
push	dword ptr [ebp+10h]
mov	eax, [edi]
cmp	byte_45D8B4, 0
push	[ebp+wParam]	; wParam
push	[ebp+Msg]	; Msg
push	eax		; hWnd
push	dword ptr [edi+4] ; lpPrevWndFunc
jz	short loc_40DE72
call	ds:CallWindowProcW
jmp	short loc_40DE84

loc_40DE72:
call	ds:CallWindowProcA
jmp	short loc_40DE84

loc_40DE7A:
mov	ecx, [edi+8]
call	sub_40E5B8

loc_40DE82:
xor	eax, eax

loc_40DE84:
pop	edi
pop	esi
pop	ebx
leave
retn	0Ch
sub_40DD5E endp



; Attributes: bp-based frame

sub_40DE8B proc	near

var_A4=	dword ptr -0A4h
var_A0=	dword ptr -0A0h
var_9C=	dword ptr -9Ch
var_84=	dword ptr -84h
var_80=	dword ptr -80h
var_7C=	dword ptr -7Ch
var_78=	dword ptr -78h
var_6C=	dword ptr -6Ch
Rect= tagRECT ptr -54h
var_44=	dword ptr -44h
var_40=	dword ptr -40h
var_3C=	dword ptr -3Ch
var_38=	dword ptr -38h
lParam=	dword ptr -34h
var_30=	dword ptr -30h
var_2C=	dword ptr -2Ch
var_28=	dword ptr -28h
var_24=	dword ptr -24h
Buttons= TBBUTTON ptr -20h
picce= INITCOMMONCONTROLSEX ptr	-0Ch
var_4= dword ptr -4

push	ebp
mov	ebp, esp
sub	esp, 0A4h
push	ebx
push	esi
mov	esi, ecx
push	edi
push	4
lea	eax, [esi+0CCh]
pop	edx
mov	[esi+168h], edx
mov	byte ptr [esi+16Ch], 1
cmp	[eax], edx
mov	byte ptr [esi+84h], 1
jb	short loc_40DEC0
mov	dword ptr [eax], 3

loc_40DEC0:
mov	eax, [eax]
mov	ecx, dword_45B818[eax*4]
or	ecx, 56010240h
cmp	byte ptr [esi+8Fh], 0
jz	short loc_40DEDA
or	ecx, edx

loc_40DEDA:
mov	eax, esi
lea	edx, [esi+4]
neg	eax
sbb	eax, eax
xor	ebx, ebx
and	eax, edx
mov	edx, [esi+30h]
push	ebx		; lpParam
mov	[ebp+var_4], eax
push	hInstance	; hInstance
mov	eax, [eax]
inc	edx
lea	edi, [esi+74h]
push	edx		; hMenu
push	eax		; hWndParent
push	104h		; nHeight
push	74h		; nWidth
push	ebx		; Y
push	ebx		; X
push	ecx		; dwStyle
push	200h		; dwExStyle
mov	ecx, edi
call	sub_42FDB9
test	al, al
jz	loc_40E25D
push	ebx		; lParam
mov	ebx, ds:SendMessageA
push	1		; wParam
push	2005h		; Msg
push	dword ptr [edi]	; hWnd
call	ebx ; SendMessageA
push	edi		; dwNewLong
push	0FFFFFFEBh	; nIndex
push	dword ptr [edi]	; hWnd
call	ds:SetWindowLongA
push	offset sub_40E29E ; dwNewLong
mov	[esi+7Ch], esi
cmp	byte_45D8B4, 0
push	0FFFFFFFCh	; nIndex
push	dword ptr [edi]	; hWnd
jz	short loc_40DF54
call	ds:SetWindowLongW
jmp	short loc_40DF5A

loc_40DF54:
call	ds:SetWindowLongA

loc_40DF5A:
mov	cl, 1
mov	[esi+78h], eax
call	sub_40E264
push	eax		; lParam
push	1		; wParam
push	1003h		; Msg
push	dword ptr [edi]	; hWnd
call	ebx ; SendMessageA
xor	cl, cl
call	sub_40E264
push	eax		; lParam
push	0		; wParam
push	1003h		; Msg
push	dword ptr [edi]	; hWnd
call	ebx ; SendMessageA
mov	ecx, esi
call	sub_4011C7
push	5		; nCmdShow
push	dword ptr [edi]	; hWnd
call	ds:ShowWindow
push	1		; bErase
push	0		; lpRect
push	dword ptr [edi]	; hWnd
call	ds:InvalidateRect
push	dword ptr [edi]	; hWnd
call	ds:UpdateWindow
push	8
lea	eax, [ebp+picce]
pop	edi
mov	[ebp+picce.dwICC], 4
push	eax		; picce
mov	[ebp+picce.dwSize], edi
call	ds:InitCommonControlsEx
and	[ebp+Buttons.fsStyle], 0
and	[ebp+Buttons.bReserved], 0
and	[ebp+Buttons.bReserved+1], 0
mov	[ebp+Buttons.iBitmap], edi
xor	eax, eax
cmp	dword_45D88C, 40047h
lea	edi, [ebp+Buttons.dwData]
mov	[ebp+Buttons.idCommand], 64h
mov	[ebp+Buttons.fsState], 4
stosd
stosd
jb	short loc_40E033
lea	eax, [ebp+picce]
mov	[ebp+picce.dwSize], 8
push	eax		; picce
mov	[ebp+picce.dwICC], 404h
call	ds:InitCommonControlsEx
mov	eax, [ebp+var_4]
xor	edi, edi
push	edi		; lpParam
push	hInstance	; hInstance
mov	eax, [eax]
push	edi		; hMenu
push	eax		; hWndParent
push	edi		; nHeight
push	edi		; nWidth
push	edi		; Y
push	edi		; X
push	56800641h	; dwStyle
push	edi		; lpWindowName
push	offset aRebarwindow32 ;	"ReBarWindow32"
push	80h		; dwExStyle
call	ds:CreateWindowExA
mov	[esi+48h], eax
jmp	short loc_40E035

loc_40E033:
xor	edi, edi

loc_40E035:
cmp	[esi+48h], edi
mov	ecx, 50000000h
jz	short loc_40E044
mov	ecx, 50000944h

loc_40E044:		; uStructSize
push	14h
push	edi		; dyBitmap
mov	eax, [ebp+var_4]
push	edi		; dxBitmap
push	edi		; dyButton
push	edi		; dxButton
lea	edx, [ebp+Buttons]
mov	eax, [eax]
push	1		; iNumButtons
push	edx		; lpButtons
mov	edx, [esi+30h]
push	4		; wBMID
inc	edx
push	0FFFFFFFFh	; hBMInst
inc	edx
push	0Bh		; nBitmaps
push	edx		; wID
push	ecx		; ws
push	eax		; hwnd
call	ds:CreateToolbarEx
mov	[esi+4Ch], eax
lea	eax, [ebp+picce]
push	eax		; picce
mov	[ebp+picce.dwSize], 8
mov	[ebp+picce.dwICC], 200h
call	ds:InitCommonControlsEx
cmp	[esi+48h], edi
jnz	short loc_40E090
mov	eax, [ebp+var_4]
mov	ecx, [eax]
jmp	short loc_40E093

loc_40E090:
mov	ecx, [esi+4Ch]

loc_40E093:
xor	eax, eax
lea	edi, [esi+50h]
push	eax		; lpParam
push	hInstance	; hInstance
push	dword ptr [esi+34h] ; hMenu
push	ecx		; hWndParent
push	208h		; nHeight
push	64h		; nWidth
push	eax		; Y
push	eax		; X
push	50800042h	; dwStyle
push	eax		; lpWindowName
push	offset aComboboxex32 ; "ComboBoxEx32"
push	eax		; dwExStyle
mov	ecx, edi
call	sub_42E558
push	0		; lParam
push	1		; wParam
push	2005h		; Msg
push	dword ptr [edi]	; hWnd
call	ebx ; SendMessageA
mov	cl, 1
call	sub_40E264
push	eax		; lParam
push	0		; wParam
push	402h		; Msg
push	dword ptr [edi]	; hWnd
call	ebx ; SendMessageA
push	4		; lParam
push	4		; wParam
push	40Eh		; Msg
push	dword ptr [edi]	; hWnd
call	ebx ; SendMessageA
push	0		; lParam
push	0		; wParam
push	407h		; Msg
push	dword ptr [edi]	; hWnd
call	ebx ; SendMessageA
lea	ecx, [esi+68h]
push	ecx		; dwNewLong
push	0FFFFFFEBh	; nIndex
push	eax		; hWnd
mov	[ecx], eax
call	ds:SetWindowLongA
push	offset sub_40E2C4 ; dwNewLong
mov	[esi+70h], esi
cmp	byte_45D8B4, 0
push	0FFFFFFFCh	; nIndex
push	dword ptr [esi+68h] ; hWnd
jz	short loc_40E126
call	ds:SetWindowLongW
jmp	short loc_40E12C

loc_40E126:
call	ds:SetWindowLongA

loc_40E12C:
mov	[esi+6Ch], eax
mov	eax, [esi+48h]
xor	ecx, ecx
cmp	eax, ecx
jz	loc_40E1F0
lea	edx, [ebp+lParam]
mov	[ebp+lParam], 0Ch
push	edx		; lParam
push	ecx		; wParam
push	404h		; Msg
push	eax		; hWnd
mov	[ebp+var_30], ecx
mov	[ebp+var_2C], ecx
call	ebx ; SendMessageA
lea	eax, [ebp+var_28]
push	eax		; lParam
push	0		; wParam
push	453h		; Msg
push	dword ptr [esi+4Ch] ; hWnd
call	ebx ; SendMessageA
mov	eax, [ebp+var_28]
mov	ecx, [ebp+var_24]
mov	[ebp+var_80], eax
mov	[ebp+var_78], eax
mov	eax, [esi+4Ch]
mov	[ebp+var_A4], 50h
mov	[ebp+var_84], eax
lea	eax, [ebp+var_A4]
push	eax		; lParam
push	0FFFFFFFFh	; wParam
push	401h		; Msg
mov	[ebp+var_A0], 71h
push	dword ptr [esi+48h] ; hWnd
mov	[ebp+var_9C], 100h
mov	[ebp+var_7C], ecx
mov	[ebp+var_6C], ecx
call	ebx ; SendMessageA
lea	eax, [ebp+Rect]
push	eax		; lpRect
push	dword ptr [edi]	; hWnd
call	ds:GetWindowRect
mov	eax, [ebp+Rect.bottom]
mov	[ebp+var_80], 1Eh
sub	eax, [ebp+Rect.top]
mov	[ebp+var_78], 3E8h
mov	[ebp+var_7C], eax
mov	eax, [edi]
mov	[ebp+var_84], eax
lea	eax, [ebp+var_A4]
push	eax		; lParam
push	0FFFFFFFFh	; wParam
push	401h		; Msg
push	dword ptr [esi+48h] ; hWnd
call	ebx ; SendMessageA

loc_40E1F0:
mov	eax, [ebp+var_4]
push	dword ptr [esi+38h] ; wID
mov	eax, [eax]
push	eax		; hwndParent
push	offset szText	; "Status"
push	50000000h	; style
call	ds:CreateStatusWindowW
mov	[esi+80h], eax
or	[ebp+var_38], 0FFFFFFFFh
lea	eax, [ebp+var_44]
mov	[ebp+var_44], 96h
push	eax		; lParam
push	4		; wParam
push	404h		; Msg
mov	[ebp+var_40], 0FAh
push	dword ptr [esi+80h] ; hWnd
mov	[ebp+var_3C], 15Eh
call	ebx ; SendMessageA
push	0		; lpTimerFunc
push	3E8h		; uElapse
push	1		; nIDEvent
push	dword ptr [esi+4] ; hWnd
call	ds:SetTimer
mov	ecx, esi
call	sub_4166B3
mov	ecx, esi
call	sub_40E930
mov	al, 1

loc_40E25D:
pop	edi
pop	esi
pop	ebx
leave
retn	4
sub_40DE8B endp




sub_40E264 proc	near

psfi= SHFILEINFOA ptr -160h

sub	esp, 160h
lea	eax, [esp+160h+psfi]
neg	cl
sbb	ecx, ecx
and	cl, 1
add	ecx, 100h
or	cx, 4010h
push	ecx		; uFlags
push	160h		; cbFileInfo
push	eax		; psfi
push	90h		; dwFileAttributes
push	offset pszPath	; pszPath
call	ds:SHGetFileInfoA
add	esp, 160h
retn
sub_40E264 endp




; int __stdcall	sub_40E29E(HWND	hWnd, UINT Msg,	WPARAM wParam, __int16)
sub_40E29E proc	near

hWnd= dword ptr	 4
Msg= dword ptr	8
wParam=	dword ptr  0Ch
arg_C= word ptr	 10h

push	0FFFFFFEBh	; nIndex
push	[esp+4+hWnd]	; hWnd
call	ds:GetWindowLongA
test	eax, eax
jz	short locret_40E2C1
push	dword ptr [esp+arg_C] ;	__int16
mov	ecx, eax
push	[esp+4+wParam]	; wParam
push	[esp+8+Msg]	; Msg
call	sub_40DC19

locret_40E2C1:
retn	10h
sub_40E29E endp




; int __stdcall	sub_40E2C4(HWND	hWnd, UINT Msg,	WPARAM wParam, __int16)
sub_40E2C4 proc	near

hWnd= dword ptr	 4
Msg= dword ptr	8
wParam=	dword ptr  0Ch
arg_C= word ptr	 10h

push	0FFFFFFEBh	; nIndex
push	[esp+4+hWnd]	; hWnd
call	ds:GetWindowLongA
test	eax, eax
jz	short locret_40E2E7
push	dword ptr [esp+arg_C] ;	__int16
mov	ecx, eax
push	[esp+4+wParam]	; wParam
push	[esp+8+Msg]	; Msg
call	sub_40DD5E

locret_40E2E7:
retn	10h
sub_40E2C4 endp




sub_40E2EA proc	near
call	sub_4176F6
push	0		; nExitCode
call	ds:PostQuitMessage
retn
sub_40E2EA endp



; Attributes: bp-based frame

; int __stdcall	sub_40E2F8(int nWidth, int nHeight)
sub_40E2F8 proc	near

Rect= tagRECT ptr -14h
var_4= dword ptr -4
nWidth=	dword ptr  8
nHeight= dword ptr  0Ch

push	ebp
mov	ebp, esp
sub	esp, 14h
push	esi
mov	esi, ecx
mov	eax, esi
push	edi
neg	eax
lea	ecx, [esi+4]
sbb	eax, eax
xor	edi, edi
and	eax, ecx
cmp	[eax], edi
jz	loc_40E3C2
mov	eax, [esi+48h]
cmp	eax, edi
jz	short loc_40E325
lea	ecx, [ebp+Rect]
push	ecx
push	eax
jmp	short loc_40E32C

loc_40E325:
lea	eax, [ebp+Rect]
push	eax		; lpRect
push	dword ptr [esi+4Ch] ; hWnd

loc_40E32C:
call	ds:GetWindowRect
lea	eax, [ebp+Rect]
push	ebx
mov	ebx, [ebp+Rect.bottom]
push	eax		; lpRect
push	dword ptr [esi+80h] ; hWnd
sub	ebx, [ebp+Rect.top]
call	ds:GetWindowRect
mov	ecx, [ebp+Rect.bottom]
mov	eax, [ebp+nHeight]
sub	ecx, [ebp+Rect.top]
sub	eax, ecx
mov	[ebp+var_4], ecx
sub	eax, ebx
cmp	eax, edi
mov	[ebp+nHeight], eax
jg	short loc_40E363
mov	[ebp+nHeight], edi

loc_40E363:
cmp	[esi+48h], edi
mov	edi, ds:MoveWindow
jnz	short loc_40E399
xor	eax, eax
push	1		; bRepaint
push	eax		; nHeight
push	[ebp+nWidth]	; nWidth
push	eax		; Y
push	eax		; X
push	dword ptr [esi+4Ch] ; hWnd
call	edi ; MoveWindow
mov	eax, [ebp+nWidth]
add	eax, 0FFFFFFD6h
cmp	eax, 20h
jg	short loc_40E38B
push	20h
pop	eax

loc_40E38B:		; bRepaint
push	1
push	0		; nHeight
push	eax		; nWidth
push	2		; Y
push	20h		; X
push	dword ptr [esi+50h] ; hWnd
call	edi ; MoveWindow

loc_40E399:		; bRepaint
push	1
push	[ebp+nHeight]	; nHeight
push	[ebp+nWidth]	; nWidth
push	ebx		; Y
push	0		; X
push	dword ptr [esi+74h] ; hWnd
call	edi ; MoveWindow
mov	eax, [ebp+nHeight]
push	1		; bRepaint
push	[ebp+var_4]	; nHeight
add	eax, ebx
push	[ebp+nWidth]	; nWidth
push	eax		; Y
push	0		; X
push	dword ptr [esi+80h] ; hWnd
call	edi ; MoveWindow
pop	ebx

loc_40E3C2:
pop	edi
pop	esi
leave
retn	8
sub_40E2F8 endp




; int __stdcall	sub_40E3C8(int,	int nWidth, int	nHeight)
sub_40E3C8 proc	near

nWidth=	dword ptr  8
nHeight= dword ptr  0Ch

push	esi
mov	esi, ecx
mov	eax, esi
neg	eax
lea	ecx, [esi+4]
sbb	eax, eax
and	eax, ecx
xor	ecx, ecx
cmp	[eax], ecx
jz	short loc_40E402
mov	eax, [esi+48h]
cmp	eax, ecx
jz	short loc_40E3F3
push	1		; bRepaint
push	ecx		; nHeight
push	[esp+0Ch+nWidth] ; nWidth
push	ecx		; Y
push	ecx		; X
push	eax		; hWnd
call	ds:MoveWindow

loc_40E3F3:		; nHeight
push	[esp+4+nHeight]
mov	ecx, esi
push	[esp+8+nWidth]	; nWidth
call	sub_40E2F8

loc_40E402:
mov	al, 1
pop	esi
retn	0Ch
sub_40E3C8 endp



; Attributes: bp-based frame

sub_40E408 proc	near

Rect= tagRECT ptr -10h
arg_0= dword ptr  8

push	ebp
mov	ebp, esp
sub	esp, 10h
mov	eax, [ebp+arg_0]
push	esi
mov	esi, ecx
cmp	dword ptr [eax+8], 0FFFFFCC1h
jnz	short loc_40E43F
lea	eax, [ebp+Rect]
push	eax		; lpRect
push	dword ptr [esi+4] ; hWnd
call	ds:GetWindowRect
mov	eax, [ebp+Rect.bottom]
mov	ecx, esi
sub	eax, [ebp+Rect.top]
push	eax		; nHeight
mov	eax, [ebp+Rect.right]
sub	eax, [ebp+Rect.left]
push	eax		; nWidth
call	sub_40E2F8

loc_40E43F:
xor	al, al
pop	esi
leave
retn	8
sub_40E408 endp



; Attributes: bp-based frame

sub_40E446 proc	near

arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
push	ebx
push	esi
mov	esi, ecx
push	edi
cmp	byte ptr [esi+185h], 0
jz	short loc_40E4B0
mov	ebx, [ebp+arg_4]
mov	eax, [ebx]
cmp	eax, [esi+50h]
jnz	short loc_40E46C
push	[ebp+arg_8]
push	ebx
call	sub_4139C7
jmp	short loc_40E4B2

loc_40E46C:
cmp	eax, [esi+48h]
jnz	short loc_40E47E
push	[ebp+arg_8]
mov	ecx, esi
push	ebx
call	sub_40E408
jmp	short loc_40E4B2

loc_40E47E:
mov	edi, [esi+74h]
cmp	eax, edi
jnz	short loc_40E492
push	[ebp+arg_8]
mov	ecx, esi
push	ebx
call	sub_4185BD
jmp	short loc_40E4B2

loc_40E492:		; hWnd
push	eax
call	ds:GetParent
cmp	eax, edi
jnz	short loc_40E4B0
cmp	dword ptr [ebx+8], 0FFFFFFFBh
jnz	short loc_40E4B0
push	[ebp+arg_8]
mov	ecx, esi
push	ebx
call	sub_417958
jmp	short loc_40E4B2

loc_40E4B0:
xor	al, al

loc_40E4B2:
pop	edi
pop	esi
pop	ebx
pop	ebp
retn	0Ch
sub_40E446 endp



; Attributes: bp-based frame

sub_40E4B9 proc	near

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	esi
push	edi
mov	edi, [ebp+arg_4]
mov	esi, ecx
cmp	edi, 64h
jnz	short loc_40E4D5
call	sub_413C6E
mov	eax, [ebp+arg_C]
and	dword ptr [eax], 0
jmp	short loc_40E4EE

loc_40E4D5:
cmp	edi, [esi+34h]
jnz	short loc_40E4F2
push	[ebp+arg_C]
mov	ecx, esi
push	[ebp+arg_8]
push	[ebp+arg_0]
call	sub_413612
test	al, al
jz	short loc_40E4F2

loc_40E4EE:
mov	al, 1
jmp	short loc_40E503

loc_40E4F2:
push	[ebp+arg_C]
mov	ecx, esi
push	[ebp+arg_8]
push	edi
push	[ebp+arg_0]
call	sub_4305CB

loc_40E503:
pop	edi
pop	esi
pop	ebp
retn	10h
sub_40E4B9 endp




; int __stdcall	sub_40E509(LPCWSTR lpText, LPCWSTR lpCaption)
sub_40E509 proc	near

lpText=	dword ptr  4
lpCaption= dword ptr  8

mov	eax, ecx
push	10h		; uType
push	[esp+4+lpCaption] ; lpCaption
add	ecx, 4
neg	eax
push	[esp+8+lpText]	; lpText
sbb	eax, eax
and	eax, ecx
push	dword ptr [eax]	; hWnd
call	ds:MessageBoxW
retn	8
sub_40E509 endp




; int __stdcall	sub_40E529(LPCWSTR lpText)
sub_40E529 proc	near

lpText=	dword ptr  4

push	offset a7Zip	; "7-Zip"
push	[esp+4+lpText]	; lpText
call	sub_40E509
retn	4
sub_40E529 endp




; int __stdcall	sub_40E53A(LPCWSTR lpText)
sub_40E53A proc	near

lpText=	dword ptr  4

push	offset aError_0	; "Error"
push	[esp+4+lpText]	; lpText
call	sub_40E509
retn	4
sub_40E53A endp



; Attributes: bp-based frame

; int __stdcall	sub_40E54B(int,	LPCWSTR	lpCaption)
sub_40E54B proc	near

Memory=	dword ptr -0Ch
arg_0= dword ptr  8
lpCaption= dword ptr  0Ch

push	ebp
mov	ebp, esp
sub	esp, 0Ch
mov	edx, [ebp+arg_0]
push	esi
mov	esi, ecx
lea	ecx, [ebp+Memory]
call	sub_425088
push	[ebp+lpCaption]	; lpCaption
mov	ecx, esi
push	dword ptr [eax]	; lpText
call	sub_40E509
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
pop	esi
leave
retn	8
sub_40E54B endp




sub_40E579 proc	near

arg_0= dword ptr  4

push	offset a7Zip	; "7-Zip"
push	[esp+4+arg_0]	; int
call	sub_40E54B
retn	4
sub_40E579 endp



; Attributes: bp-based frame

sub_40E58A proc	near

Memory=	dword ptr -0Ch
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

push	ebp
mov	ebp, esp
sub	esp, 0Ch
mov	edx, [ebp+arg_0]
push	esi
push	[ebp+arg_4]
mov	esi, ecx
lea	ecx, [ebp+Memory]
call	sub_40B168
push	dword ptr [eax]	; lpText
mov	ecx, esi
call	sub_40E529
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
pop	esi
leave
retn	8
sub_40E58A endp




sub_40E5B8 proc	near
push	dword ptr [ecx+74h] ; hWnd
call	ds:SetFocus
retn
sub_40E5B8 endp




sub_40E5C2 proc	near
cmp	byte ptr [ecx+84h], 0
jz	short loc_40E5D0
jmp	sub_40E5B8

loc_40E5D0:		; hWnd
push	dword ptr [ecx+50h]
call	ds:SetFocus
retn
sub_40E5C2 endp



; Attributes: bp-based frame

sub_40E5DA proc	near

pvarg= VARIANTARG ptr -20h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_443D3B
call	__EH_prolog
sub	esp, 14h
push	ebx
xor	ebx, ebx
push	esi
mov	[ebp+var_10], ebx
mov	word ptr [ebp+pvarg.anonymous_0], bx
mov	word ptr [ebp+pvarg.anonymous_0+2], bx
mov	eax, [ecx+0FCh]
push	1
pop	esi
lea	edx, [ebp+pvarg]
mov	ecx, [eax]
push	edx
push	14h
push	eax
mov	[ebp+var_4], esi
call	dword ptr [ecx+2Ch]
test	eax, eax
jnz	short loc_40E629
cmp	word ptr [ebp+pvarg.anonymous_0], 8
jnz	short loc_40E629
push	dword ptr [ebp+pvarg.anonymous_0+8]
mov	ecx, [ebp+arg_0]
call	sub_403091
mov	[ebp+var_10], esi
jmp	short loc_40E639

loc_40E629:
mov	ecx, [ebp+arg_0]
push	offset word_45D498
call	sub_403091
mov	[ebp+var_10], esi

loc_40E639:		; pvarg
lea	ecx, [ebp+pvarg]
mov	byte ptr [ebp+var_4], bl
call	sub_42CDE1
mov	ecx, [ebp+var_C]
mov	eax, [ebp+arg_0]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_40E5DA endp



; Attributes: bp-based frame

sub_40E657 proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_443D50
call	__EH_prolog
sub	esp, 0Ch
lea	eax, [ebp+Memory]
push	esi
push	eax
call	sub_40E5DA
mov	edx, [ebp+arg_0]
mov	ecx, [eax]
and	[ebp+var_4], 0
call	sub_42828A
push	[ebp+Memory]	; Memory
mov	esi, eax
call	sub_4284D8
pop	ecx
mov	ecx, [ebp+var_C]
test	esi, esi
setz	al
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_40E657 endp




sub_40E69B proc	near
push	offset aRootfolder ; "RootFolder"
call	sub_40E657
retn
sub_40E69B endp




sub_40E6A6 proc	near
push	offset aFsfolder ; "FSFolder"
call	sub_40E657
retn
sub_40E6A6 endp




sub_40E6B1 proc	near
push	offset aFsdrives ; "FSDrives"
call	sub_40E657
retn
sub_40E6B1 endp



; Attributes: bp-based frame

sub_40E6BC proc	near

Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443D6C
call	__EH_prolog
sub	esp, 18h
lea	eax, [ebp+var_18]
push	esi
push	eax
call	sub_40E5DA
and	[ebp+var_4], 0
lea	eax, [ebp+Memory]
push	5
push	eax
lea	ecx, [ebp+var_18]
call	sub_403228
mov	ecx, [eax]
mov	edx, offset a7Zip ; "7-Zip"
mov	byte ptr [ebp+var_4], 1
call	sub_42828A
push	[ebp+Memory]	; Memory
mov	esi, eax
call	sub_4284D8
push	[ebp+var_18]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx
mov	ecx, [ebp+var_C]
test	esi, esi
setz	al
pop	esi
mov	large fs:0, ecx
leave
retn
sub_40E6BC endp



; Attributes: bp-based frame

sub_40E71B proc	near

var_4= dword ptr -4
arg_0= dword ptr  8

push	ebp
mov	ebp, esp
push	ecx
and	[ebp+var_4], 0
push	esi
mov	esi, ecx
call	sub_40E6B1
test	al, al
jz	short loc_40E75E
mov	ecx, [esi+0D8h]
mov	edx, offset a_	; "\\\\.\\"
call	sub_42828A
test	eax, eax
jz	short loc_40E75E
mov	esi, [ebp+arg_0]
push	3
mov	ecx, esi
and	dword ptr [esi], 0
and	dword ptr [esi+4], 0
and	dword ptr [esi+8], 0
call	sub_403396
mov	eax, esi
jmp	short loc_40E770

loc_40E75E:
mov	ecx, [ebp+arg_0]
add	esi, 0D8h
push	esi
call	sub_4030F2
mov	eax, [ebp+arg_0]

loc_40E770:
pop	esi
leave
retn	4
sub_40E71B endp



; Attributes: bp-based frame

sub_40E775 proc	near

Memory=	dword ptr -1Ch
var_18=	dword ptr -18h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_443D80
call	__EH_prolog
sub	esp, 10h
push	ebx
push	esi
push	edi
xor	edi, edi
mov	esi, ecx
mov	[ebp+var_10], edi
call	sub_40E6A6
test	al, al
jnz	short loc_40E7AE
mov	esi, [ebp+arg_0]
push	3
mov	ecx, esi
mov	[esi], edi
mov	[esi+4], edi
mov	[esi+8], edi
call	sub_403396
jmp	loc_40E85F

loc_40E7AE:
lea	eax, [ebp+Memory]
mov	ecx, esi
push	eax
call	sub_40E71B
push	3
mov	[ebp+var_4], edi
pop	ebx
cmp	[ebp+var_18], ebx
jl	short loc_40E843
mov	ecx, [ebp+Memory]
push	5Ch
pop	esi
cmp	[ecx], si
jnz	short loc_40E81C
cmp	[ecx+2], si
jnz	short loc_40E81C
lea	eax, [ecx+4]

loc_40E7D8:
mov	dx, [eax]
cmp	dx, si
jz	short loc_40E7E9
cmp	dx, di
jz	short loc_40E7EF
inc	eax
inc	eax
jmp	short loc_40E7D8

loc_40E7E9:
sub	eax, ecx
sar	eax, 1
jmp	short loc_40E7F2

loc_40E7EF:
or	eax, 0FFFFFFFFh

loc_40E7F2:
cmp	eax, edi
jl	short loc_40E843
lea	eax, [ecx+eax*2+2]

loc_40E7FA:
mov	dx, [eax]
cmp	dx, si
jz	short loc_40E80B
cmp	dx, di
jz	short loc_40E811
inc	eax
inc	eax
jmp	short loc_40E7FA

loc_40E80B:
sub	eax, ecx
sar	eax, 1
jmp	short loc_40E814

loc_40E811:
or	eax, 0FFFFFFFFh

loc_40E814:
cmp	eax, edi
jl	short loc_40E843
inc	eax
push	eax
jmp	short loc_40E82A

loc_40E81C:
cmp	word ptr [ecx+2], 3Ah
jnz	short loc_40E843
cmp	[ecx+4], si
jnz	short loc_40E843
push	ebx

loc_40E82A:
push	[ebp+arg_0]
lea	ecx, [ebp+Memory]
call	sub_403228
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+arg_0]
pop	ecx
jmp	short loc_40E861

loc_40E843:
mov	esi, [ebp+arg_0]
push	ebx
mov	ecx, esi
mov	[esi], edi
mov	[esi+4], edi
mov	[esi+8], edi
call	sub_403396
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_40E85F:
mov	eax, esi

loc_40E861:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_40E775 endp



; Attributes: bp-based frame

sub_40E872 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443D94
call	__EH_prolog
push	ecx
and	[ebp+var_10], 0
push	ebx
mov	eax, [ecx+0FCh]
and	[ebp+var_4], 0
lea	edx, [ebp+var_10]
mov	ecx, [eax]
push	edx
push	offset unk_44B6A0
push	eax
call	dword ptr [ecx]
test	eax, eax
mov	eax, [ebp+var_10]
setz	bl
or	[ebp+var_4], 0FFFFFFFFh
test	eax, eax
jz	short loc_40E8B0
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_40E8B0:
mov	ecx, [ebp+var_C]
mov	al, bl
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_40E872 endp




sub_40E8BF proc	near

arg_0= dword ptr  4

push	esi
push	edi
mov	edi, [esp+8+arg_0]
mov	esi, ecx
cmp	edi, 4
jnb	short loc_40E8FD
push	0FFFFFFF0h	; nIndex
mov	[esi+0CCh], edi
push	dword ptr [esi+74h] ; hWnd
call	ds:GetWindowLongA
mov	edi, dword_45B818[edi*4]
mov	ecx, eax
and	ecx, 3
cmp	ecx, edi
jz	short loc_40E8FD
and	al, 0FCh
or	eax, edi
push	eax		; dwNewLong
push	0FFFFFFF0h	; nIndex
push	dword ptr [esi+74h] ; hWnd
call	ds:SetWindowLongA

loc_40E8FD:
pop	edi
pop	esi
retn	4
sub_40E8BF endp




sub_40E902 proc	near
cmp	byte ptr [ecx+0D4h], 0
lea	eax, [ecx+0D4h]
setz	dl
mov	[eax], dl
cmp	dword ptr [ecx+0ECh], 0
jle	short loc_40E925
mov	[ecx+0D6h], dl
jmp	short loc_40E92B

loc_40E925:
mov	[ecx+0D5h], dl

loc_40E92B:
jmp	sub_4168AC
sub_40E902 endp




sub_40E930 proc	near
push	0		; lParam
push	0		; wParam
push	405h		; Msg
push	dword ptr [ecx+4] ; hWnd
call	ds:PostMessageA
retn
sub_40E930 endp



; Attributes: bp-based frame

sub_40E943 proc	near

var_70=	dword ptr -70h
var_68=	dword ptr -68h
var_64=	dword ptr -64h
var_5C=	dword ptr -5Ch
var_54=	dword ptr -54h
var_50=	dword ptr -50h
var_48=	dword ptr -48h
var_3C=	dword ptr -3Ch
Memory=	dword ptr -30h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443DE8
call	__EH_prolog
sub	esp, 64h
push	ebx
push	edi
mov	edi, ecx
push	4
lea	ecx, [ebp+var_5C]
call	sub_402794
mov	[ebp+var_5C], offset off_44B518
lea	eax, [ebp+var_5C]
xor	ebx, ebx
push	eax
mov	ecx, edi
mov	[ebp+var_4], ebx
call	sub_4170D3
mov	ecx, edi
call	sub_4028A8
test	al, al
jnz	short loc_40E98C
push	3020208h
push	8A0h
jmp	short loc_40E99B

loc_40E98C:
cmp	[ebp+var_54], ebx
jnz	short loc_40E9A7
push	3020A03h
push	10CFh

loc_40E99B:
mov	ecx, edi
call	sub_40E58A
jmp	loc_40EB06

loc_40E9A7:
push	esi
lea	ecx, [ebp+var_70]
call	sub_40337B
mov	[ebp+var_70], offset off_44B510
lea	esi, [edi+0D8h]
lea	ecx, [ebp+var_24]
push	esi
mov	byte ptr [ebp+var_4], 1
call	sub_4030F2
push	esi
lea	ecx, [ebp+var_18]
mov	byte ptr [ebp+var_4], 2
call	sub_4030F2
mov	ecx, edi
mov	byte ptr [ebp+var_4], 3
call	sub_40E6B1
test	al, al
jz	short loc_40EA0C
push	offset aC	; "C:\\\\"
lea	ecx, [ebp+var_18]
call	sub_404722
mov	ecx, [esi]
mov	edx, offset a_	; "\\\\.\\"
call	sub_42828A
cmp	eax, ebx
jz	short loc_40EA0C
mov	eax, [ebp+var_24]
mov	[ebp+var_20], ebx
mov	[eax], bx

loc_40EA0C:
xor	esi, esi
cmp	[ebp+var_54], ebx
jle	short loc_40EA5D

loc_40EA13:
mov	eax, [ebp+var_50]
mov	ecx, edi
push	dword ptr [eax+esi*4]
lea	eax, [ebp+var_48]
push	eax
call	sub_4174B8
push	eax
lea	edx, [ebp+var_24]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 4
call	sub_40356A
push	eax
lea	ecx, [ebp+var_70]
mov	byte ptr [ebp+var_4], 5
call	sub_4032B4
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_48]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
inc	esi
pop	ecx
cmp	esi, [ebp+var_54]
pop	ecx
jl	short loc_40EA13

loc_40EA5D:
mov	eax, [ebp+var_64]
cmp	[ebp+var_68], 1
push	ebx
lea	ecx, [ebp+var_3C]
mov	edx, [eax]
setnle	al
push	eax
call	sub_432457
push	offset word_45D498
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 6
call	sub_403091
push	ebx
push	1
lea	eax, [ebp+var_70]
push	ebx
push	eax
lea	eax, [ebp+Memory]
push	eax
lea	edx, [ebp+var_3C]
lea	ecx, [ebp+var_18]
mov	byte ptr [ebp+var_4], 7
call	sub_432B68
push	[ebp+Memory]	; Memory
mov	esi, eax
mov	byte ptr [ebp+var_4], 6
call	sub_4284D8
pop	ecx
cmp	esi, ebx
pop	esi
jz	short loc_40EACD
cmp	[ebp+var_14], 104h
jl	short loc_40EACD
push	3020A01h
push	10CDh
mov	ecx, edi
call	sub_40E58A

loc_40EACD:		; Memory
push	[ebp+var_3C]
call	sub_4284D8
push	[ebp+var_18]	; Memory
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
add	esp, 0Ch
mov	[ebp+var_70], offset off_44B510
lea	ecx, [ebp+var_70]
mov	byte ptr [ebp+var_4], 8
call	sub_428327
lea	ecx, [ebp+var_70]
mov	byte ptr [ebp+var_4], bl
call	sub_4282FE

loc_40EB06:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_5C]
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	edi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_40E943 endp



; Attributes: bp-based frame

sub_40EB20 proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_443DFC
call	__EH_prolog
sub	esp, 10h
push	ebx
push	esi
mov	esi, [ebp+arg_0]
push	edi
xor	edi, edi
mov	[ebp+var_10], ecx
cmp	[esi+8], edi
jle	short loc_40EB87

loc_40EB3D:
mov	eax, [esi+0Ch]
mov	ecx, [ebp+var_10]
mov	ebx, [eax+edi*4]
push	ebx
call	sub_41756F
test	al, al
jnz	short loc_40EB7F
mov	ecx, [ebp+var_10]
lea	eax, [ebp+Memory]
push	ebx
push	eax
call	sub_417521
mov	ecx, [ebp+arg_4]
and	[ebp+var_4], 0
push	eax
call	sub_4032B4
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
inc	edi
pop	ecx
cmp	edi, [esi+8]
jl	short loc_40EB3D
jmp	short loc_40EB87

loc_40EB7F:
mov	ecx, [ebp+arg_4]
call	sub_428327

loc_40EB87:
mov	eax, [ebp+arg_4]
pop	edi
pop	esi
pop	ebx
cmp	dword ptr [eax+8], 0
jnz	short loc_40EBA5
mov	ecx, [ebp+var_10]
push	3020A03h
push	10CFh
call	sub_40E58A

loc_40EBA5:
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn	8
sub_40EB20 endp



; Attributes: bp-based frame

sub_40EBB3 proc	near

var_68=	dword ptr -68h
var_60=	dword ptr -60h
var_5C=	dword ptr -5Ch
var_54=	dword ptr -54h
var_4C=	dword ptr -4Ch
var_40=	dword ptr -40h
var_34=	dword ptr -34h
Memory=	dword ptr -28h
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_4= dword ptr -4

mov	eax, offset loc_443E58
call	__EH_prolog
sub	esp, 5Ch
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
push	edi
mov	eax, [esi+0ECh]
cmp	eax, ebx
jle	short loc_40EBE0
mov	ecx, [esi+44h]
push	ebx
push	ebx
mov	eax, [ecx]
call	dword ptr [eax+8]
jmp	loc_40ED2D

loc_40EBE0:
push	4
lea	ecx, [ebp+var_68]
call	sub_402794
mov	[ebp+var_68], offset off_44B518
lea	eax, [ebp+var_68]
mov	ecx, esi
push	eax
mov	[ebp+var_4], ebx
call	sub_4170D3
lea	ecx, [ebp+var_54]
call	sub_40337B
mov	edi, offset off_44B510
mov	[ebp+var_54], edi
lea	eax, [ebp+var_54]
mov	ecx, esi
push	eax
lea	eax, [ebp+var_68]
push	eax
mov	byte ptr [ebp+var_4], 1
call	sub_40EB20
cmp	[ebp+var_4C], ebx
jnz	short loc_40EC33
mov	[ebp+var_54], edi
mov	byte ptr [ebp+var_4], 2
jmp	loc_40ED0E

loc_40EC33:
push	3
lea	ecx, [ebp+var_1C]
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_403396
cmp	[ebp+var_60], 1
mov	byte ptr [ebp+var_4], 3
jnz	short loc_40EC93
mov	eax, [ebp+var_5C]
mov	ecx, esi
push	dword ptr [eax]
lea	eax, [ebp+var_34]
push	eax
call	sub_4174B8
mov	edx, eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 4
call	sub_40ED3C
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 5
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_34]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx
pop	ecx
jmp	short loc_40ECA0

loc_40EC93:		; "*"
push	offset asc_45B41C
lea	ecx, [ebp+var_1C]
call	sub_404722

loc_40ECA0:
push	5Ch
lea	ecx, [ebp+var_40]
call	sub_409516
mov	[ebp+var_10], eax
lea	eax, [ebp+var_1C]
lea	edx, [esi+0D8h]
push	eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 6
call	sub_40356A
push	[ebp+var_10]
mov	edx, eax
lea	ecx, [ebp+var_34]
mov	byte ptr [ebp+var_4], 7
call	sub_40356A
push	1
mov	edx, eax
lea	ecx, [ebp+var_54]
mov	byte ptr [ebp+var_4], 8
call	sub_433186
push	[ebp+var_34]	; Memory
call	sub_4284D8
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_40]	; Memory
call	sub_4284D8
push	[ebp+var_1C]	; Memory
call	sub_4284D8
add	esp, 10h
mov	[ebp+var_54], edi
mov	byte ptr [ebp+var_4], 9

loc_40ED0E:
lea	ecx, [ebp+var_54]
call	sub_428327
lea	ecx, [ebp+var_54]
mov	byte ptr [ebp+var_4], bl
call	sub_4282FE
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_68]
call	sub_4282FE

loc_40ED2D:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_40EBB3 endp



; Attributes: bp-based frame

sub_40ED3C proc	near

Memory=	dword ptr -28h
var_1C=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443E74
call	__EH_prolog
sub	esp, 1Ch
and	[ebp+var_10], 0
push	ebx
push	esi
mov	esi, edx
mov	ebx, ecx
push	edi
mov	ecx, [esi+4]
test	ecx, ecx
jz	short loc_40ED77
mov	edx, [esi]
lea	eax, [edx+ecx*2-2]

loc_40ED61:
cmp	word ptr [eax],	5Ch
jz	short loc_40ED6F
cmp	eax, edx
jz	short loc_40ED77
dec	eax
dec	eax
jmp	short loc_40ED61

loc_40ED6F:
sub	eax, edx
sar	eax, 1
mov	edi, eax
jmp	short loc_40ED7A

loc_40ED77:
or	edi, 0FFFFFFFFh

loc_40ED7A:
test	ecx, ecx
jz	short loc_40EDCE
mov	edx, [esi]
lea	eax, [edx+ecx*2-2]

loc_40ED84:
cmp	word ptr [eax],	2Eh
jz	short loc_40ED92
cmp	eax, edx
jz	short loc_40ED98
dec	eax
dec	eax
jmp	short loc_40ED84

loc_40ED92:
sub	eax, edx
sar	eax, 1
jmp	short loc_40ED9B

loc_40ED98:
or	eax, 0FFFFFFFFh

loc_40ED9B:
test	eax, eax
jl	short loc_40EDCE
cmp	edi, eax
jg	short loc_40EDCE
push	eax
lea	eax, [ebp+var_1C]
push	eax
mov	ecx, esi
call	sub_403228
lea	ecx, [ebp+var_1C]
mov	[ebp+var_4], 1
call	sub_406F3F
lea	eax, [ebp+var_1C]
mov	ecx, ebx
push	eax
call	sub_4030F2
push	[ebp+var_1C]
jmp	short loc_40EDEC

loc_40EDCE:		; "~"
push	offset asc_45B8C8
lea	ecx, [ebp+Memory]
call	sub_403091
and	[ebp+var_4], 0
push	eax
mov	edx, esi
mov	ecx, ebx
call	sub_40356A
push	[ebp+Memory]	; Memory

loc_40EDEC:
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
mov	eax, ebx
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_40ED3C endp



; Attributes: bp-based frame

sub_40EE03 proc	near

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

mov	eax, offset loc_443E90
call	__EH_prolog
sub	esp, 18h
push	ebx
push	esi
mov	esi, ecx
push	edi
xor	ebx, ebx
mov	ecx, [esi+230h]
mov	edx, [esi+220h]
mov	eax, [esi+234h]
push	ecx
push	1
push	ebx
mov	edi, [eax]
push	ebx
push	ebx
push	edx
push	dword ptr [esi+224h]
push	eax
call	dword ptr [edi+0Ch]
cmp	eax, ebx
jnz	loc_40EEFC
mov	eax, [esi+22Ch]
cmp	[eax+54h], ebx
jnz	loc_40EEFA
cmp	[eax+58h], bl
jnz	loc_40EEFA
push	3
lea	ecx, [ebp+var_18]
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_403396
lea	eax, [ebp+var_18]
mov	edx, 2000321h
push	eax
mov	eax, [esi+22Ch]
mov	ecx, 8E3h
mov	[ebp+var_4], ebx
push	dword ptr [eax+44h]
push	dword ptr [eax+40h]
call	sub_40EF0B
lea	eax, [ebp+var_18]
mov	edx, 2000320h
push	eax
mov	eax, [esi+22Ch]
mov	ecx, 8E2h
push	dword ptr [eax+4Ch]
push	dword ptr [eax+48h]
call	sub_40EF0B
push	0Ah
lea	ecx, [ebp+var_18]
call	sub_40316A
push	2000608h
mov	edx, 1068h
lea	ecx, [ebp+Memory]
call	sub_40B168
push	eax
lea	ecx, [ebp+var_18]
mov	byte ptr [ebp+var_4], 1
call	sub_4031F2
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_18]
push	eax
lea	ecx, [esi+2Ch]
call	sub_40312C
push	[ebp+var_18]	; Memory
call	sub_4284D8
pop	ecx

loc_40EEFA:
xor	eax, eax

loc_40EEFC:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_40EE03 endp



; Attributes: bp-based frame

sub_40EF0B proc	near

var_58=	byte ptr -58h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_443EA4
call	__EH_prolog
sub	esp, 4Ch
mov	eax, edx
push	esi
mov	edx, ecx
push	eax
lea	ecx, [ebp+Memory]
call	sub_40B168
mov	esi, [ebp+arg_8]
and	[ebp+var_4], 0
push	eax
mov	ecx, esi
call	sub_4031F2
or	[ebp+var_4], 0FFFFFFFFh
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
push	20h
mov	ecx, esi
call	sub_40316A
lea	ecx, [ebp+var_58]
push	[ebp+arg_4]
push	[ebp+arg_0]
call	sub_427B10
lea	eax, [ebp+var_58]
mov	ecx, esi
push	eax
call	sub_403195
mov	ecx, esi
push	0Ah
call	sub_40316A
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	0Ch
sub_40EF0B endp



; Attributes: bp-based frame

sub_40EF7C proc	near

var_298= byte ptr -298h
var_248= byte ptr -248h
var_A8=	byte ptr -0A8h
var_A0=	dword ptr -0A0h
var_9C=	byte ptr -9Ch
var_90=	byte ptr -90h
var_80=	byte ptr -80h
var_6C=	dword ptr -6Ch
var_68=	byte ptr -68h
var_64=	byte ptr -64h
Memory=	dword ptr -60h
var_54=	dword ptr -54h
var_50=	dword ptr -50h
var_44=	dword ptr -44h
var_38=	dword ptr -38h
var_30=	dword ptr -30h
var_24=	dword ptr -24h
var_1C=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443F05
call	__EH_prolog
sub	esp, 28Ch
push	ebx
push	esi
mov	esi, ecx
push	edi
push	4
lea	ecx, [ebp+var_24]
call	sub_402794
mov	[ebp+var_24], offset off_44B518
lea	eax, [ebp+var_24]
xor	ebx, ebx
push	eax
mov	ecx, esi
mov	[ebp+var_4], ebx
call	sub_41717C
mov	[ebp+var_10], ebx
mov	eax, [esi+0FCh]
lea	edx, [ebp+var_10]
push	edx
push	offset unk_44B600
mov	ecx, [eax]
push	eax
mov	byte ptr [ebp+var_4], 1
call	dword ptr [ecx]
cmp	[ebp+var_10], ebx
jz	loc_40F13C
lea	ecx, [ebp+var_298]
call	sub_40F2A9
push	[ebp+var_10]
lea	ecx, [ebp+var_64]
mov	byte ptr [ebp+var_4], 2
call	sub_43D0DB
push	70h		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_54], ecx
cmp	ecx, ebx
mov	byte ptr [ebp+var_4], 3
jz	short loc_40F00C
call	sub_40F1F8
jmp	short loc_40F00E

loc_40F00C:
xor	eax, eax

loc_40F00E:
push	eax
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 2
mov	[ebp+var_6C], eax
call	sub_43D0DB
mov	ecx, [ebp+var_6C]
lea	eax, [ebp+var_248]
mov	[ecx+38h], eax
cmp	[ebp+var_1C], ebx
jnz	short loc_40F043

loc_40F02F:
lea	ecx, [ebp+var_298]
mov	byte ptr [ebp+var_4], 1
call	sub_40F38E
jmp	loc_40F19D

loc_40F043:
lea	ecx, [ebp+var_80]
call	sub_428327
lea	eax, [ebp+var_24]
lea	ecx, [ebp+var_80]
push	eax
call	sub_40F449
push	2000F90h
mov	edx, 1004h
lea	ecx, [ebp+var_44]
call	sub_40B168
push	3000000h
mov	edx, 898h
lea	ecx, [ebp+var_50]
mov	byte ptr [ebp+var_4], 4
call	sub_40B168
mov	ecx, esi
mov	byte ptr [ebp+var_4], 5
mov	[ebp+var_A8], bl
call	sub_40DA67
mov	[ebp+var_A0], eax
lea	eax, [ebp+var_50]
push	eax
lea	ecx, [ebp+var_9C]
call	sub_40312C
push	offset asc_45B128 ; " "
lea	edx, [ebp+var_44]
lea	ecx, [ebp+Memory]
call	sub_409948
push	eax
lea	ecx, [ebp+var_90]
mov	byte ptr [ebp+var_4], 6
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 5
call	sub_4284D8
mov	eax, [ebp+var_6C]
pop	ecx
mov	[eax+5Ch], ebx
mov	ecx, [ebp+var_6C]
call	sub_403932
mov	ecx, esi
call	sub_40DA67
push	eax		; hWndParent
lea	eax, [ebp+var_44]
push	eax		; int
lea	ecx, [ebp+var_298]
call	sub_424FE9
push	[ebp+var_50]	; Memory
test	eax, eax
jz	short loc_40F112
call	sub_4284D8
push	[ebp+var_44]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx
jmp	loc_40F02F

loc_40F112:
call	sub_4284D8
push	[ebp+var_44]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 1
pop	ecx
lea	ecx, [ebp+var_298]
call	sub_40F38E
mov	ecx, [esi+44h]
push	1
mov	eax, [ecx]
call	dword ptr [eax+20h]
jmp	short loc_40F19D

loc_40F13C:
mov	ecx, esi
call	sub_40E6A6
test	al, al
jnz	short loc_40F15A
push	3020208h
push	8A0h
mov	ecx, esi
call	sub_40E58A
jmp	short loc_40F19D

loc_40F15A:
lea	ecx, [ebp+var_38]
call	sub_40337B
mov	edi, offset off_44B510
mov	[ebp+var_38], edi
lea	eax, [ebp+var_38]
mov	ecx, esi
push	eax
lea	eax, [ebp+var_24]
push	eax
mov	byte ptr [ebp+var_4], 7
call	sub_40EB20
cmp	[ebp+var_30], ebx
jnz	short loc_40F1AF
mov	[ebp+var_38], edi
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 8
call	sub_428327
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE

loc_40F19D:
mov	eax, [ebp+var_10]
mov	byte ptr [ebp+var_4], bl
cmp	eax, ebx
jz	short loc_40F1DD
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
jmp	short loc_40F1DD

loc_40F1AF:
lea	ecx, [ebp+var_38]
call	sub_4332EF
mov	[ebp+var_38], edi
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 9
call	sub_428327
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
lea	ecx, [ebp+var_10]
mov	byte ptr [ebp+var_4], bl
call	sub_4370A0

loc_40F1DD:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_24]
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_40EF7C endp



; Attributes: bp-based frame

sub_40F1F8 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443F26
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
push	3
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44C1B0
mov	dword ptr [esi+4], offset off_44C194
mov	dword ptr [esi+8], offset off_44C170
mov	dword ptr [esi+0Ch], offset off_44C160
lea	ecx, [esi+18h]
mov	dword ptr [esi+10h], offset off_44B990
mov	[esi+14h], ebx
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+28h]
push	3
mov	[ebp+var_4], ebx
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+64h]
mov	[esi+5Ch], ebx
mov	[esi+60h], bl
mov	[esi+61h], bl
push	3
mov	byte ptr [ebp+var_4], 1
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
mov	ecx, [ebp+var_C]
mov	dword ptr [esi], offset	off_44B87C
mov	dword ptr [esi+4], offset off_44B860
mov	dword ptr [esi+8], offset off_44B83C
mov	dword ptr [esi+0Ch], offset off_44B82C
mov	dword ptr [esi+10h], offset off_44B81C
mov	eax, esi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_40F1F8 endp




sub_40F2A9 proc	near
push	esi
mov	esi, ecx
call	sub_40F2E5
lea	eax, [esi+218h]
xor	ecx, ecx
mov	[eax+4], ecx
mov	[eax+8], ecx
mov	[eax+0Ch], ecx
mov	dword ptr [eax+10h], 4
mov	dword ptr [eax], offset	off_44B518
mov	[esi+230h], ecx
mov	[esi+234h], ecx
mov	dword ptr [esi], offset	off_44C1E8
mov	eax, esi
pop	esi
retn
sub_40F2A9 endp



; Attributes: bp-based frame

sub_40F2E5 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443F67
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
push	3
mov	[ebp+var_10], esi
lea	ecx, [esi+8]
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+14h]
push	3
mov	[ebp+var_4], ebx
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+20h]
push	3
mov	byte ptr [ebp+var_4], 1
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+2Ch]
push	3
mov	byte ptr [ebp+var_4], 2
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+38h]
push	3
mov	byte ptr [ebp+var_4], 3
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+50h]
mov	byte ptr [ebp+var_4], 4
mov	dword ptr [esi+44h], 80004005h
mov	[esi+48h], bl
call	sub_422DDA
mov	ecx, [ebp+var_C]
mov	dword ptr [esi], offset	off_44C1EC
mov	eax, esi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_40F2E5 endp



; Attributes: bp-based frame

sub_40F38E proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443F98
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	eax, [esi+234h]
mov	[ebp+var_4], 2
test	eax, eax
jz	short loc_40F3B6
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_40F3B6:
mov	eax, [esi+230h]
mov	byte ptr [ebp+var_4], 1
test	eax, eax
jz	short loc_40F3CA
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_40F3CA:
and	byte ptr [ebp+var_4], 0
lea	ecx, [esi+218h]
call	sub_4282FE
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_40F3F1
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_40F38E endp



; Attributes: bp-based frame

sub_40F3F1 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_443FDB
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
lea	ecx, [esi+50h]
mov	[ebp+var_4], 4
call	sub_423175
push	dword ptr [esi+38h] ; Memory
call	sub_4284D8
push	dword ptr [esi+2Ch] ; Memory
call	sub_4284D8
push	dword ptr [esi+20h] ; Memory
call	sub_4284D8
push	dword ptr [esi+14h] ; Memory
call	sub_4284D8
push	dword ptr [esi+8] ; Memory
call	sub_4284D8
mov	ecx, [ebp+var_C]
add	esp, 14h
mov	large fs:0, ecx
pop	esi
leave
retn
sub_40F3F1 endp




sub_40F449 proc	near

arg_0= dword ptr  4

push	ebx
push	ebp
mov	ebp, [esp+8+arg_0]
push	esi
mov	esi, ecx
push	edi
mov	edi, [ebp+8]
mov	eax, [esi+8]
add	eax, edi
push	eax
call	sub_428378
xor	ebx, ebx
test	edi, edi
jle	short loc_40F479

loc_40F467:
mov	eax, [ebp+0Ch]
mov	ecx, esi
push	dword ptr [eax+ebx*4]
call	sub_429907
inc	ebx
cmp	ebx, edi
jl	short loc_40F467

loc_40F479:
mov	eax, esi
pop	edi
pop	esi
pop	ebp
pop	ebx
retn	4
sub_40F449 endp




sub_40F482 proc	near
push	ebx
push	esi
mov	esi, ecx
push	edi
mov	ecx, [esi+240h]
mov	edx, [esi+230h]
mov	edi, [esi+224h]
mov	eax, [esi+218h]
cmp	byte ptr [esi+248h], 0
push	ecx
mov	ebx, [eax]
push	edx
push	edi
push	dword ptr [esi+228h]
push	eax
jz	short loc_40F4B9
call	dword ptr [ebx+20h]
jmp	short loc_40F4BC

loc_40F4B9:
call	dword ptr [ebx+1Ch]

loc_40F4BC:
mov	[esi+244h], eax
pop	edi
pop	esi
pop	ebx
retn
sub_40F482 endp



; Attributes: bp-based frame

sub_40F4C6 proc	near

var_294= byte ptr -294h
var_244= byte ptr -244h
var_104= byte ptr -104h
var_A4=	byte ptr -0A4h
var_9C=	dword ptr -9Ch
var_98=	byte ptr -98h
var_8C=	byte ptr -8Ch
var_7C=	byte ptr -7Ch
var_78=	byte ptr -78h
var_64=	byte ptr -64h
var_58=	dword ptr -58h
var_54=	byte ptr -54h
var_50=	dword ptr -50h
var_4C=	byte ptr -4Ch
var_44=	dword ptr -44h
var_38=	dword ptr -38h
var_2C=	dword ptr -2Ch
Memory=	dword ptr -20h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
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=	dword ptr  18h
arg_14=	dword ptr  1Ch
arg_18=	dword ptr  20h

mov	eax, offset loc_444053
call	__EH_prolog
sub	esp, 288h
push	ebx
push	esi
xor	esi, esi
push	edi
mov	edi, ecx
mov	[ebp+var_10], esi
mov	[ebp+var_14], esi
mov	eax, [edi+0FCh]
lea	edx, [ebp+var_14]
push	edx
push	offset unk_44B6A0
mov	ecx, [eax]
push	eax
mov	[ebp+var_4], esi
call	dword ptr [ecx]
cmp	eax, esi
jz	short loc_40F55A
push	3020208h
mov	edx, 8A0h
lea	ecx, [ebp+Memory]
call	sub_40B168
cmp	byte ptr [ebp+arg_C], 0
mov	byte ptr [ebp+var_4], 1
jz	short loc_40F526
push	[ebp+Memory]	; lpText
mov	ecx, edi
call	sub_40E529
jmp	short loc_40F536

loc_40F526:
mov	ecx, [ebp+arg_10]
cmp	ecx, esi
jz	short loc_40F536
lea	eax, [ebp+Memory]
push	eax
call	sub_4032B4

loc_40F536:		; Memory
push	[ebp+Memory]
call	sub_4284D8
mov	eax, [ebp+var_14]
or	[ebp+var_4], 0FFFFFFFFh
cmp	eax, esi
pop	ecx
jz	short loc_40F550
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_40F550:
mov	eax, 80004005h
jmp	loc_40F79F

loc_40F55A:
lea	ecx, [ebp+var_294]
call	sub_40F7B0
push	70h		; Size
mov	byte ptr [ebp+var_4], 2
call	sub_4284B1
pop	ecx
mov	[ebp+arg_C], eax
cmp	eax, esi
mov	byte ptr [ebp+var_4], 3
jz	short loc_40F585
mov	ecx, eax
call	sub_40F1F8
jmp	short loc_40F587

loc_40F585:
xor	eax, eax

loc_40F587:
mov	[ebp+var_58], eax
mov	ecx, eax
add	eax, 8
mov	byte ptr [ebp+var_4], 2
neg	ecx
sbb	ecx, ecx
and	ecx, eax
push	ecx
lea	ecx, [ebp+var_54]
call	sub_43D0DB
mov	ecx, [ebp+var_58]
mov	bl, [ebp+arg_8]
lea	eax, [ebp+var_244]
mov	[ecx+38h], eax
and	[ebp+var_A4], 0
test	bl, bl
jz	short loc_40F5DB
push	3020206h
mov	edx, 89Eh
lea	ecx, [ebp+var_44]
call	sub_40B168
mov	[ebp+var_10], 1
mov	byte ptr [ebp+var_4], 4
jmp	short loc_40F5FB

loc_40F5DB:
push	3020205h
mov	edx, 89Dh
lea	ecx, [ebp+Memory]
call	sub_40B168
mov	[ebp+var_10], 2
mov	[ebp+var_4], 5

loc_40F5FB:
push	eax
lea	ecx, [ebp+var_2C]
call	sub_4030F2
test	byte ptr [ebp+var_10], 2
jz	short loc_40F617
push	[ebp+Memory]	; Memory
and	[ebp+var_10], 0FFFFFFFDh
call	sub_4284D8
pop	ecx

loc_40F617:
test	byte ptr [ebp+var_10], 1
mov	[ebp+var_4], 7
jz	short loc_40F62D
push	[ebp+var_44]	; Memory
call	sub_4284D8
pop	ecx

loc_40F62D:
push	3000000h
mov	edx, 898h
lea	ecx, [ebp+var_38]
call	sub_40B168
mov	ecx, edi
mov	byte ptr [ebp+var_4], 9
call	sub_40DA67
mov	[ebp+var_9C], eax
lea	eax, [ebp+var_38]
push	eax
lea	ecx, [ebp+var_98]
call	sub_40312C
push	offset asc_45B128 ; " "
lea	edx, [ebp+var_2C]
lea	ecx, [ebp+var_44]
call	sub_409948
push	eax
lea	ecx, [ebp+var_8C]
mov	byte ptr [ebp+var_4], 0Ah
call	sub_40312C
push	[ebp+var_44]	; Memory
mov	byte ptr [ebp+var_4], 9
call	sub_4284D8
mov	eax, [ebp+var_58]
pop	ecx
mov	[eax+5Ch], esi
mov	ecx, [ebp+var_58]
call	sub_403932
lea	ecx, [ebp+var_78]
call	sub_428327
push	[ebp+arg_0]
lea	ecx, [ebp+var_78]
call	sub_40F449
push	[ebp+arg_4]
lea	ecx, [ebp+var_64]
call	sub_40312C
push	[ebp+var_14]
lea	ecx, [ebp+var_7C]
call	sub_43D0DB
mov	esi, [ebp+arg_14]
mov	ecx, [ebp+var_58]
push	[ebp+arg_18]
mov	[ebp+var_4C], bl
mov	al, [esi]
mov	[ecx+60h], al
mov	eax, [ebp+var_58]
lea	ecx, [eax+64h]
call	sub_40312C
mov	ecx, edi
call	sub_40DA67
push	eax		; hWndParent
lea	eax, [ebp+var_2C]
push	eax		; int
lea	ecx, [ebp+var_294]
call	sub_424FE9
mov	ebx, eax
test	ebx, ebx
jz	short loc_40F71F
push	[ebp+var_38]	; Memory
call	sub_4284D8
push	[ebp+var_2C]	; Memory
call	sub_4284D8
and	byte ptr [ebp+var_4], 0
pop	ecx
pop	ecx
lea	ecx, [ebp+var_294]
call	sub_40F833
jmp	short loc_40F78C

loc_40F71F:
cmp	[ebp+arg_10], 0
jz	short loc_40F73C
mov	ecx, [ebp+arg_10]
call	sub_428327
mov	ecx, [ebp+arg_10]
lea	eax, [ebp+var_104]
push	eax
call	sub_403531

loc_40F73C:
mov	ebx, [ebp+var_50]
test	ebx, ebx
jnz	short loc_40F761
mov	eax, [ebp+var_58]
cmp	[eax+54h], ebx
jnz	short loc_40F761
cmp	[eax+58h], bl
jnz	short loc_40F761
mov	cl, [eax+60h]
add	eax, 64h
mov	[esi], cl
mov	ecx, [ebp+arg_18]
push	eax
call	sub_40312C

loc_40F761:		; Memory
push	[ebp+var_38]
call	sub_4284D8
push	[ebp+var_2C]	; Memory
call	sub_4284D8
and	byte ptr [ebp+var_4], 0
pop	ecx
pop	ecx
lea	ecx, [ebp+var_294]
call	sub_40F833
mov	ecx, [edi+44h]
push	1
mov	eax, [ecx]
call	dword ptr [eax+20h]

loc_40F78C:
mov	eax, [ebp+var_14]
or	[ebp+var_4], 0FFFFFFFFh
test	eax, eax
jz	short loc_40F79D
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_40F79D:
mov	eax, ebx

loc_40F79F:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	1Ch
sub_40F4C6 endp



; Attributes: bp-based frame

sub_40F7B0 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_444084
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
call	sub_40F2E5
xor	ebx, ebx
mov	[ebp+var_4], ebx
mov	[esi+218h], ebx
lea	eax, [esi+21Ch]
mov	[eax+4], ebx
mov	[eax+8], ebx
mov	[eax+0Ch], ebx
mov	dword ptr [eax+10h], 4
mov	dword ptr [eax], offset	off_44B518
lea	ecx, [esi+230h]
push	3
mov	byte ptr [ebp+var_4], 2
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
mov	ecx, [ebp+var_C]
mov	[esi+240h], ebx
mov	dword ptr [esi+244h], 80004005h
mov	[esi+248h], bl
mov	dword ptr [esi], offset	off_44C1F0
mov	eax, esi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_40F7B0 endp



; Attributes: bp-based frame

sub_40F833 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4440C2
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	eax, [esi+240h]
mov	[ebp+var_4], 3
test	eax, eax
jz	short loc_40F85B
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_40F85B:		; Memory
push	dword ptr [esi+230h]
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 1
lea	ecx, [esi+21Ch]
call	sub_4282FE
mov	eax, [esi+218h]
and	byte ptr [ebp+var_4], 0
test	eax, eax
jz	short loc_40F88A
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_40F88A:
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_40F3F1
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_40F833 endp



; Attributes: bp-based frame

sub_40F8A2 proc	near

var_25C= byte ptr -25Ch
var_258= byte ptr -258h
var_24C= byte ptr -24Ch
var_244= dword ptr -244h
var_240= dword ptr -240h
var_238= byte ptr -238h
var_224= byte ptr -224h
var_E4=	byte ptr -0E4h
var_7C=	dword ptr -7Ch
var_78=	byte ptr -78h
var_6C=	byte ptr -6Ch
var_5C=	byte ptr -5Ch
var_58=	dword ptr -58h
var_54=	dword ptr -54h
var_4C=	dword ptr -4Ch
var_40=	dword ptr -40h
var_3C=	dword ptr -3Ch
var_30=	dword ptr -30h
Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_444121
call	__EH_prolog
sub	esp, 250h
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
mov	[ebp+var_18], esi
mov	[ebp+var_10], ebx
mov	eax, [esi+0FCh]
lea	edx, [ebp+var_10]
push	edx
push	offset unk_44B6A0
mov	ecx, [eax]
push	eax
mov	[ebp+var_4], ebx
call	dword ptr [ecx]
cmp	[ebp+var_10], ebx
jz	loc_40FB1F
lea	ecx, [ebp+var_25C]
call	sub_40FD90
push	38h		; Size
mov	byte ptr [ebp+var_4], 1
call	sub_4284B1
pop	ecx
mov	[ebp+var_40], eax
cmp	eax, ebx
mov	byte ptr [ebp+var_4], 2
jz	short loc_40F909
mov	ecx, eax
call	sub_40FBA8
jmp	short loc_40F90B

loc_40F909:
xor	eax, eax

loc_40F90B:
push	edi
push	eax
lea	ecx, [ebp+var_5C]
mov	byte ptr [ebp+var_4], 1
mov	[ebp+var_58], eax
call	sub_43D0DB
mov	ecx, [ebp+var_58]
lea	eax, [ebp+var_224]
push	3020205h
mov	edx, 89Dh
mov	[ecx+30h], eax
lea	ecx, [ebp+var_30]
call	sub_40B168
push	3000000h
mov	edx, 898h
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 3
call	sub_40B168
mov	ecx, esi
mov	byte ptr [ebp+var_4], 4
call	sub_40DA67
mov	[ebp+var_7C], eax
lea	eax, [ebp+var_3C]
push	eax
lea	ecx, [ebp+var_78]
call	sub_40312C
push	offset asc_45B128 ; " "
lea	ecx, [ebp+var_4C]
call	sub_403091
push	eax
lea	edx, [ebp+var_30]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 5
call	sub_40356A
push	eax
lea	ecx, [ebp+var_6C]
mov	byte ptr [ebp+var_4], 6
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_4C]	; Memory
mov	byte ptr [ebp+var_4], 4
call	sub_4284D8
pop	ecx
pop	ecx
push	offset word_45D498
lea	ecx, [ebp+Memory]
call	sub_403091
mov	esi, [ebp+var_58]
lea	eax, [ebp+Memory]
push	eax
mov	byte ptr [ebp+var_4], 7
lea	ecx, [esi+1Ch]
mov	[esi+18h], bl
call	sub_40312C
mov	[esi+28h], ebx
mov	[esi+2Ch], ebx
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 4
call	sub_4284D8
pop	ecx
push	[ebp+var_10]
lea	ecx, [ebp+var_25C]
call	sub_43D0DB
push	[ebp+arg_0]
lea	ecx, [ebp+var_258]
call	sub_40312C
mov	esi, [ebp+arg_4]
lea	ecx, [ebp+var_24C]
push	dword ptr [esi+8]
call	sub_428378
xor	edi, edi
cmp	[esi+8], ebx
jle	short loc_40FA2B

loc_40FA14:
mov	eax, [esi+0Ch]
lea	ecx, [ebp+var_24C]
push	dword ptr [eax+edi*4]
call	sub_4032B4
inc	edi
cmp	edi, [esi+8]
jl	short loc_40FA14

loc_40FA2B:
push	[ebp+var_244]
lea	ecx, [ebp+var_238]
call	sub_428378
xor	esi, esi
cmp	[ebp+var_244], ebx
pop	edi
jle	short loc_40FA66

loc_40FA47:
mov	eax, [ebp+var_240]
lea	ecx, [ebp+var_238]
mov	eax, [eax+esi*4]
push	dword ptr [eax]
call	sub_429907
inc	esi
cmp	esi, [ebp+var_244]
jl	short loc_40FA47

loc_40FA66:
mov	[ebp+var_14], ebx
lea	eax, [ebp+var_25C]
mov	edx, offset loc_40FD0E
push	eax
lea	ecx, [ebp+var_14]
mov	byte ptr [ebp+var_4], 8
call	sub_441890
mov	esi, eax
cmp	esi, ebx
jz	short loc_40FAB4
lea	ecx, [ebp+var_14]
call	sub_441850
push	[ebp+var_3C]	; Memory
call	sub_4284D8
push	[ebp+var_30]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], bl
pop	ecx
lea	ecx, [ebp+var_25C]
call	sub_40FE06
jmp	loc_40FB85

loc_40FAB4:
mov	ecx, [ebp+var_18]
call	sub_40DA67
push	eax		; hWndParent
lea	eax, [ebp+var_14]
push	eax		; int
lea	eax, [ebp+var_30]
push	eax		; int
lea	ecx, [ebp+var_224]
call	sub_424624
cmp	[ebp+arg_C], ebx
jz	short loc_40FAEC
mov	ecx, [ebp+arg_C]
call	sub_428327
mov	ecx, [ebp+arg_C]
lea	eax, [ebp+var_E4]
push	eax
call	sub_403531

loc_40FAEC:
mov	esi, [ebp+var_54]
lea	ecx, [ebp+var_14]
call	sub_441850
push	[ebp+var_3C]	; Memory
call	sub_4284D8
push	[ebp+var_30]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], bl
pop	ecx
lea	ecx, [ebp+var_25C]
call	sub_40FE06
cmp	esi, 80004002h
jnz	short loc_40FB78

loc_40FB1F:
push	3020208h
mov	edx, 8A0h
lea	ecx, [ebp+Memory]
call	sub_40B168
cmp	[ebp+arg_8], bl
mov	byte ptr [ebp+var_4], 9
jz	short loc_40FB47
push	[ebp+Memory]	; lpText
mov	ecx, [ebp+var_18]
call	sub_40E529
jmp	short loc_40FB57

loc_40FB47:
mov	ecx, [ebp+arg_C]
cmp	ecx, ebx
jz	short loc_40FB57
lea	eax, [ebp+Memory]
push	eax
call	sub_4032B4

loc_40FB57:		; Memory
push	[ebp+Memory]
call	sub_4284D8
mov	eax, [ebp+var_10]
or	[ebp+var_4], 0FFFFFFFFh
cmp	eax, ebx
pop	ecx
jz	short loc_40FB71
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_40FB71:
mov	eax, 80004004h
jmp	short loc_40FB98

loc_40FB78:
mov	eax, [ebp+var_18]
push	1
mov	ecx, [eax+44h]
mov	eax, [ecx]
call	dword ptr [eax+20h]

loc_40FB85:
mov	eax, [ebp+var_10]
or	[ebp+var_4], 0FFFFFFFFh
cmp	eax, ebx
jz	short loc_40FB96
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_40FB96:
mov	eax, esi

loc_40FB98:
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	10h
sub_40F8A2 endp




sub_40FBA8 proc	near
push	esi
mov	esi, ecx
push	edi
xor	edi, edi
mov	dword ptr [esi], offset	off_44C270
mov	dword ptr [esi+4], offset off_44C260
mov	dword ptr [esi+8], offset off_44B990
mov	dword ptr [esi+0Ch], offset off_44B9D8
lea	ecx, [esi+1Ch]
mov	dword ptr [esi+10h], offset off_44C160
mov	[esi+14h], edi
push	3
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
mov	[esi+30h], edi
mov	dword ptr [esi], offset	off_44C238
mov	dword ptr [esi+4], offset off_44C228
mov	dword ptr [esi+8], offset off_44C218
mov	dword ptr [esi+0Ch], offset off_44C204
mov	dword ptr [esi+10h], offset off_44C1F4
mov	eax, esi
pop	edi
pop	esi
retn
sub_40FBA8 endp



; Attributes: bp-based frame

; int __stdcall	sub_40FC0F(int,	void *Buf1, int)
sub_40FC0F proc	near

arg_0= dword ptr  8
Buf1= dword ptr	 0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
push	esi
mov	esi, [ebp+Buf1]
push	edi
push	10h
pop	edi
push	edi		; Size
push	offset unk_44CCB8 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_40FC3A

loc_40FC2D:
mov	ecx, [ebp+arg_8]
mov	eax, [ebp+arg_0]
mov	[ecx], eax
jmp	loc_40FCCA

loc_40FC3A:		; Size
push	edi
push	offset unk_44B5E0 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jz	short loc_40FC2D
push	edi		; Size
push	offset unk_44B710 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_40FC6A
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+4]
jmp	short loc_40FCBF

loc_40FC6A:		; Size
push	edi
push	offset unk_44B720 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_40FC87
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+8]
jmp	short loc_40FCBF

loc_40FC87:		; Size
push	edi
push	offset unk_44B7B0 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_40FCA4
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+0Ch]
jmp	short loc_40FCBF

loc_40FCA4:		; Size
push	edi
push	offset unk_44B700 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_40FCD4
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+10h]

loc_40FCBF:
neg	ecx
sbb	ecx, ecx
and	ecx, edx
mov	edx, [ebp+arg_8]
mov	[edx], ecx

loc_40FCCA:
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+4]
xor	eax, eax
jmp	short loc_40FCD9

loc_40FCD4:
mov	eax, 80004002h

loc_40FCD9:
pop	edi
pop	esi
pop	ebp
retn	0Ch
sub_40FC0F endp




; int __stdcall	sub_40FCDF(void	*Memory)
sub_40FCDF proc	near

Memory=	dword ptr  4

push	esi
mov	esi, [esp+4+Memory]
dec	dword ptr [esi+14h]
mov	eax, [esi+14h]
jnz	short loc_40FD00
test	esi, esi
jz	short loc_40FCFE
mov	ecx, esi
call	sub_40FD04
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_40FCFE:
xor	eax, eax

loc_40FD00:
pop	esi
retn	4
sub_40FCDF endp




sub_40FD04 proc	near
push	dword ptr [ecx+1Ch] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_40FD04 endp


loc_40FD0E:
mov	ecx, [esp+4]
call	sub_40FD1C
xor	eax, eax
retn	4


; Attributes: bp-based frame

sub_40FD1C proc	near

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

mov	eax, offset loc_444134
call	__EH_prolog
sub	esp, 0Ch
and	[ebp+var_4], 0
push	ebx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_18], esi
lea	eax, [esi+38h]
mov	[ebp+var_10], esp
mov	[ebp+var_14], eax
mov	ecx, [esi+200h]
mov	edx, [esi+2Ch]
mov	eax, [esi]
mov	edi, [esi+4]
push	ecx
push	edx
push	dword ptr [esi+30h]
mov	ebx, [eax]
mov	byte ptr [ebp+var_4], 1
push	edi
push	eax
call	dword ptr [ebx+24h]
mov	ecx, [ebp+var_14]
and	byte ptr [ebp+var_4], 0
mov	[esi+208h], eax
call	sub_424FA1

loc_40FD6E:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn
sub_40FD1C endp




sub_40FD7D proc	near
mov	eax, [ebp-18h]
mov	dword ptr [eax+208h], 80004005h
mov	eax, offset loc_40FD6E
retn
sub_40FD7D endp



; Attributes: bp-based frame

sub_40FD90 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_444169
call	__EH_prolog
push	ecx
push	esi
push	edi
mov	esi, ecx
xor	edi, edi
mov	[ebp+var_10], esi
mov	[esi], edi
lea	ecx, [esi+4]
push	3
mov	[ebp+var_4], edi
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
push	4
mov	[esi+14h], edi
pop	eax
mov	[esi+18h], edi
mov	[esi+1Ch], edi
mov	[esi+20h], eax
mov	dword ptr [esi+10h], offset off_44B510
mov	[esi+28h], edi
mov	[esi+2Ch], edi
mov	[esi+30h], edi
mov	[esi+34h], eax
mov	dword ptr [esi+24h], offset off_44C298
lea	ecx, [esi+38h]
mov	byte ptr [ebp+var_4], 3
call	sub_422DDA
mov	ecx, [ebp+var_C]
mov	[esi+200h], edi
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_40FD90 endp



; Attributes: bp-based frame

sub_40FE06 proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4441B0
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	eax, [esi+200h]
mov	[ebp+var_4], 4
test	eax, eax
jz	short loc_40FE2F
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_40FE2F:
push	edi
lea	ecx, [esi+38h]
mov	byte ptr [ebp+var_4], 3
call	sub_423175
lea	ecx, [esi+24h]
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE
lea	edi, [esi+10h]
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44B510
mov	ecx, edi
mov	byte ptr [ebp+var_4], 5
call	sub_428327
mov	ecx, edi
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
push	dword ptr [esi+4] ; Memory
call	sub_4284D8
mov	esi, [esi]
or	[ebp+var_4], 0FFFFFFFFh
pop	ecx
pop	edi
test	esi, esi
jz	short loc_40FE84
mov	eax, [esi]
push	esi
call	dword ptr [eax+8]

loc_40FE84:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_40FE06 endp



; Attributes: bp-based frame

sub_40FE91 proc	near

var_48=	byte ptr -48h
Memory=	dword ptr -20h
var_14=	byte ptr -14h
var_13=	byte ptr -13h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4441D4
call	__EH_prolog
sub	esp, 3Ch
push	ebx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
mov	bl, [esi+184h]
mov	al, [esi+185h]
and	byte ptr [esi+184h], 0
and	byte ptr [esi+185h], 0
mov	[ebp+var_14], bl
mov	[ebp+var_13], al
and	[ebp+var_4], 0
lea	ecx, [ebp+var_48]
call	sub_40283B
lea	eax, [ebp+var_48]
mov	ecx, esi
push	eax
mov	byte ptr [ebp+var_4], 1
call	sub_4167F4
push	offset word_45D498
lea	ecx, [ebp+Memory]
call	sub_403091
push	0
push	1
push	[ebp+arg_0]
lea	eax, [ebp+Memory]
mov	ecx, esi
mov	byte ptr [ebp+var_4], 2
push	eax
call	sub_40F8A2
push	[ebp+Memory]	; Memory
mov	edi, eax
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
test	edi, edi
pop	ecx
jz	short loc_40FF3F
mov	al, [ebp+var_13]
mov	[esi+184h], bl
mov	ecx, esi
mov	[esi+185h], al
call	sub_40E5B8
cmp	edi, 80004004h
jz	short loc_40FF60
push	edi
mov	ecx, esi
call	sub_40E579
jmp	short loc_40FF60

loc_40FF3F:
lea	eax, [ebp+var_48]
mov	ecx, esi
push	eax
call	sub_41687D
mov	al, [ebp+var_13]
mov	[esi+184h], bl
mov	ecx, esi
mov	[esi+185h], al
call	sub_40E5B8

loc_40FF60:
and	byte ptr [ebp+var_4], 0
lea	ecx, [ebp+var_48]
call	sub_40299B
mov	al, [ebp+var_13]
mov	ecx, [ebp+var_C]
mov	[esi+184h], bl
mov	[esi+185h], al
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_40FE91 endp


loc_40FF8C:
mov	eax, offset loc_4441F0
call	__EH_prolog
sub	esp, 18h
push	esi
mov	esi, ecx
push	3020222h
mov	edx, 8AEh
lea	ecx, [ebp-24h]
call	sub_40B168
and	dword ptr [ebp-4], 0
push	3020223h
mov	edx, 8AFh
lea	ecx, [ebp-18h]
call	sub_40B168
push	offset asc_45B8D4 ; "\n'"
lea	ecx, [ebp-18h]
mov	byte ptr [ebp-4], 1
call	sub_403195
lea	eax, [esi+0D8h]
lea	ecx, [ebp-18h]
push	eax
call	sub_4031F2
push	offset a?_1	; "' ?"
lea	ecx, [ebp-18h]
call	sub_403195
mov	eax, esi
push	23h
push	dword ptr [ebp-24h]
lea	ecx, [esi+4]
neg	eax
push	dword ptr [ebp-18h]
sbb	eax, eax
and	eax, ecx
mov	eax, [eax]
push	eax
db 0FFh
db 15h
off_410009 dd offset MessageBoxW
cmp	eax, 6
jnz	short loc_41001C
push	dword ptr [ebp+8]
mov	ecx, esi
call	sub_40FE91

loc_41001C:
push	dword ptr [ebp-18h]

loc_41001F:
call	sub_4284D8
push	dword ptr [ebp-24h]
call	sub_4284D8
pop	ecx
pop	ecx
pop	esi
mov	ecx, [ebp-0Ch]
mov	large fs:0, ecx
leave
retn	4



sub_41003D proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4

loc_410042:
jmp	sub_40FC0F
sub_41003D endp




sub_410047 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_403900
sub_410047 endp




sub_410051 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4

loc_410056:
jmp	sub_40FCDF
sub_410051 endp




sub_41005B proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 8
jmp	sub_40FC0F
sub_41005B endp




sub_410065 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 8
jmp	sub_403900
sub_410065 endp




sub_41006F proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 8
jmp	sub_40FCDF
sub_41006F endp




sub_410079 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 0Ch
jmp	sub_40FC0F
sub_410079 endp




sub_410083 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 0Ch
jmp	sub_403900
sub_410083 endp




sub_41008D proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 0Ch
jmp	sub_40FCDF
sub_41008D endp




sub_410097 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 10h
jmp	sub_40FC0F
sub_410097 endp




sub_4100A1 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 10h
jmp	sub_403900
sub_4100A1 endp




sub_4100AB proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 10h
jmp	sub_40FCDF
sub_4100AB endp




sub_4100B5 proc	near
push	esi
mov	esi, ecx
lea	ecx, [esi+24h]
call	sub_428327
lea	ecx, [esi+38h]
call	sub_428327
and	dword ptr [esi+4Ch], 0
pop	esi
retn
sub_4100B5 endp



; Attributes: bp-based frame

sub_4100CE proc	near

var_5C=	dword ptr -5Ch
var_58=	dword ptr -58h
var_4C=	dword ptr -4Ch
var_40=	dword ptr -40h
var_34=	dword ptr -34h
Memory=	dword ptr -28h
var_1C=	dword ptr -1Ch
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_44423C
call	__EH_prolog
sub	esp, 50h
mov	eax, [ebp+arg_4]
push	ebx
push	esi
mov	esi, ecx
and	byte ptr [eax],	0
push	edi
cmp	dword ptr [esi+2Ch], 0
jz	short loc_41012F
lea	edi, [esi+24h]

loc_4100EF:
mov	eax, [edi+8]
mov	ecx, [edi+0Ch]
mov	ebx, [ebp+arg_0]
mov	ecx, [ecx+eax*4-4]
lea	eax, [ebp+var_D]
push	eax
push	ebx
call	sub_42B75A
test	al, al
jz	loc_410224
cmp	[ebp+var_D], 0
jnz	loc_410244
mov	ecx, edi
call	sub_42832F
lea	ecx, [esi+38h]
call	sub_42832F
cmp	dword ptr [esi+2Ch], 0
jnz	short loc_4100EF
jmp	short loc_410132

loc_41012F:
mov	ebx, [ebp+arg_0]

loc_410132:
mov	ecx, [esi+18h]
mov	eax, [esi+4Ch]
cmp	eax, ecx
jge	loc_41032B
mov	ecx, [esi+1Ch]
mov	edi, [ecx+eax*4]
mov	eax, [edi+4]
test	eax, eax
jz	short loc_410167
mov	ecx, [edi]
lea	eax, [ecx+eax*2-2]

loc_410153:
cmp	word ptr [eax],	5Ch
jz	short loc_410161
cmp	eax, ecx
jz	short loc_410167
dec	eax
dec	eax
jmp	short loc_410153

loc_410161:
sub	eax, ecx
sar	eax, 1
jmp	short loc_41016A

loc_410167:
or	eax, 0FFFFFFFFh

loc_41016A:
mov	ecx, [ebp+arg_8]
and	dword ptr [ecx+4], 0
mov	ecx, [ecx]
and	word ptr [ecx],	0
test	eax, eax
jl	short loc_4101A2
inc	eax
mov	ecx, edi
push	eax
lea	eax, [ebp+Memory]
push	eax
call	sub_403228
mov	ecx, [ebp+arg_8]
and	[ebp+var_4], 0
push	eax
call	sub_40312C
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx

loc_4101A2:
cmp	dword ptr [esi+8], 0
jnz	short loc_4101D0
cmp	dword ptr [edi+4], 2
jnz	short loc_4101D0
mov	eax, [edi]
cmp	word ptr [eax+2], 3Ah
jnz	short loc_4101D0
push	edi
lea	ecx, [ebx+28h]
call	sub_40312C
and	dword ptr [ebx], 0
and	dword ptr [ebx+4], 0
mov	dword ptr [ebx+20h], 10h
jmp	short loc_41021F

loc_4101D0:
push	edi
lea	edx, [esi+4]
lea	ecx, [ebp+Memory]
call	sub_40356A
push	dword ptr [eax]	; lpFileName
mov	ecx, ebx
mov	[ebp+var_4], 1
call	sub_42B49E
push	[ebp+Memory]	; Memory
mov	bl, al
neg	bl
sbb	bl, bl
or	[ebp+var_4], 0FFFFFFFFh
inc	bl
call	sub_4284D8
test	bl, bl
pop	ecx
jz	short loc_41021C
call	sub_41033E
mov	ecx, [ebp+arg_8]
push	edi
mov	esi, eax
call	sub_40312C
mov	eax, esi
jmp	loc_41032D

loc_41021C:
mov	ebx, [ebp+arg_0]

loc_41021F:
inc	dword ptr [esi+4Ch]
jmp	short loc_410256

loc_410224:
call	sub_41033E
mov	ecx, [esi+44h]
mov	edi, eax
mov	eax, [esi+40h]
push	dword ptr [ecx+eax*4-4]
mov	ecx, [ebp+arg_8]
call	sub_40312C
mov	eax, edi
jmp	loc_41032D

loc_410244:
mov	eax, [esi+40h]
mov	ecx, [esi+44h]
push	dword ptr [ecx+eax*4-4]
mov	ecx, [ebp+arg_8]
call	sub_40312C

loc_410256:
mov	ecx, [ebp+arg_8]
lea	eax, [ebx+28h]
push	eax
call	sub_4031F2
cmp	byte ptr [esi],	0
jnz	loc_410325
mov	eax, [ebx+20h]
shr	eax, 4
test	al, 1
jz	loc_410325
mov	edx, [ebp+arg_8]
push	5Ch
lea	ecx, [ebp+var_1C]
call	sub_409999
push	2Ah
lea	ecx, [ebp+var_4C]
mov	[ebp+var_4], 2
call	sub_409516
mov	edi, eax
lea	eax, [ebp+var_1C]
lea	edx, [esi+4]
push	eax
lea	ecx, [ebp+var_40]
mov	byte ptr [ebp+var_4], 3
call	sub_40356A
push	edi
mov	edx, eax
lea	ecx, [ebp+var_34]
mov	byte ptr [ebp+var_4], 4
call	sub_40356A
or	[ebp+var_5C], 0FFFFFFFFh
push	eax
lea	ecx, [ebp+var_58]
mov	byte ptr [ebp+var_4], 6
call	sub_4030F2
lea	eax, [ebp+var_5C]
lea	ecx, [esi+24h]
push	eax
mov	byte ptr [ebp+var_4], 7
call	sub_410F7F
push	[ebp+var_58]	; Memory
mov	byte ptr [ebp+var_4], 5
call	sub_4284D8
pop	ecx
lea	ecx, [ebp+var_5C]
call	sub_42B047
push	[ebp+var_34]	; Memory
call	sub_4284D8
push	[ebp+var_40]	; Memory
call	sub_4284D8
push	[ebp+var_4C]	; Memory
mov	byte ptr [ebp+var_4], 2
call	sub_4284D8
add	esp, 0Ch
lea	eax, [ebp+var_1C]
lea	ecx, [esi+38h]
push	eax
call	sub_4032B4
push	[ebp+var_1C]	; Memory
call	sub_4284D8
pop	ecx

loc_410325:
mov	eax, [ebp+arg_4]
mov	byte ptr [eax],	1

loc_41032B:
xor	eax, eax

loc_41032D:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_4100CE endp




sub_41033E proc	near
call	ds:GetLastError
test	eax, eax
jnz	short locret_41034D
mov	eax, 80004005h

locret_41034D:
retn
sub_41033E endp



; Attributes: bp-based frame

sub_41034E proc	near

var_74=	byte ptr -74h
var_34=	dword ptr -34h
var_28=	dword ptr -28h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
Memory=	dword ptr -1Ch
var_18=	byte ptr -18h
var_14=	word ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_444288
call	__EH_prolog
sub	esp, 68h
push	ebx
push	esi
mov	esi, ecx
push	edi
xor	ebx, ebx
push	3
lea	ecx, [ebp+var_28]
mov	[ebp+var_10], ebx
mov	[ebp+var_28], ebx
mov	[ebp+var_24], ebx
mov	[ebp+var_20], ebx
call	sub_403396
push	2000320h
mov	edx, 8E2h
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], ebx
call	sub_40B168
push	eax
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 1
call	sub_4031F2
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx
push	20h
lea	ecx, [ebp+var_28]
call	sub_40316A
push	dword ptr [esi+224h]
lea	ecx, [ebp+var_74]
push	dword ptr [esi+220h]
call	sub_427B10
lea	eax, [ebp+var_74]
lea	ecx, [ebp+var_28]
push	eax
call	sub_403195
push	0Ah
lea	ecx, [ebp+var_28]
pop	edi
push	edi
call	sub_40316A
push	2000321h
mov	edx, 8E3h
lea	ecx, [ebp+Memory]
call	sub_40B168
push	eax
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 2
call	sub_4031F2
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx
push	20h
lea	ecx, [ebp+var_28]
call	sub_40316A
push	dword ptr [esi+22Ch]
lea	ecx, [ebp+var_74]
push	dword ptr [esi+228h]
call	sub_427B10
lea	eax, [ebp+var_74]
lea	ecx, [ebp+var_28]
push	eax
call	sub_403195
push	edi
lea	ecx, [ebp+var_28]
call	sub_40316A
push	2000322h
mov	edx, 8E4h
lea	ecx, [ebp+Memory]
call	sub_40B168
push	eax
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 3
call	sub_4031F2
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx
push	20h
lea	ecx, [ebp+var_28]
call	sub_40316A
push	dword ptr [esi+234h]
lea	ecx, [ebp+var_74]
push	dword ptr [esi+230h]
call	sub_427B10
lea	eax, [ebp+var_74]
lea	ecx, [ebp+Memory]
push	eax
call	sub_403091
lea	eax, [ebp+Memory]
mov	edx, 259h
push	eax
push	2000982h
lea	ecx, [ebp+var_34]
mov	byte ptr [ebp+var_4], 4
call	sub_40744B
push	eax
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 5
call	sub_4031F2
push	[ebp+var_34]	; Memory
call	sub_4284D8
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx
pop	ecx
push	edi
lea	ecx, [ebp+var_28]
call	sub_40316A
push	3020721h
mov	edx, 0FCAh
lea	ecx, [ebp+var_34]
call	sub_40B168
push	eax
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 6
call	sub_4031F2
push	[ebp+var_34]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx
push	20h
lea	ecx, [ebp+var_28]
call	sub_40316A
mov	ecx, [esi+238h]
lea	edx, [ebp+var_74]
call	sub_437180
lea	eax, [ebp+var_74]
lea	ecx, [ebp+var_28]
push	eax
call	sub_403195
push	edi
lea	ecx, [ebp+var_28]
call	sub_40316A
push	3020722h
mov	edx, 0FCBh
lea	ecx, [ebp+var_34]
call	sub_40B168
push	eax
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 7
call	sub_4031F2
push	[ebp+var_34]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx
push	20h
lea	ecx, [ebp+var_28]
call	sub_40316A
mov	ecx, [esi+25Ch]
lea	edx, [ebp+var_74]
call	sub_437180
lea	eax, [ebp+var_74]
lea	ecx, [ebp+var_28]
push	eax
call	sub_403195
push	edi
lea	ecx, [ebp+var_28]
call	sub_40316A
cmp	dword ptr [esi+220h], 1
jnz	short loc_4105DE
cmp	[esi+224h], ebx
jnz	short loc_4105DE
cmp	dword ptr [esi+218h], 1
lea	eax, [esi+218h]
jnz	short loc_4105DE
cmp	[eax+4], ebx
jnz	short loc_4105DE
push	offset aSha256	; "SHA-256: "
lea	ecx, [ebp+var_28]
call	sub_403195
xor	edi, edi

loc_4105B8:
movzx	ecx, byte ptr [esi+edi+23Ch]
lea	edx, [ebp+var_18]
call	sub_410607
lea	eax, [ebp+var_18]
lea	ecx, [ebp+var_28]
push	eax
mov	[ebp+var_14], bx
call	sub_403195
inc	edi
cmp	edi, 20h
jl	short loc_4105B8

loc_4105DE:
mov	ecx, [ebp+arg_0]
lea	eax, [ebp+var_28]
push	eax
call	sub_4030F2
push	[ebp+var_28]	; Memory
call	sub_4284D8
mov	eax, [ebp+arg_0]
pop	ecx
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_41034E endp




sub_410607 proc	near
push	esi
push	2
add	edx, 2
pop	esi

loc_41060E:
mov	eax, ecx
and	eax, 0Fh
shr	ecx, 4
cmp	eax, 0Ah
jnb	short loc_410620
add	eax, 30h
jmp	short loc_410623

loc_410620:
add	eax, 37h

loc_410623:
mov	[edx], ax
dec	edx
dec	edx
dec	esi
jnz	short loc_41060E
pop	esi
retn
sub_410607 endp



; Attributes: bp-based frame

sub_41062D proc	near

var_110= dword ptr -110h
var_100= byte ptr -100h
var_98=	dword ptr -98h
var_94=	dword ptr -94h
var_78=	dword ptr -78h
var_70=	dword ptr -70h
var_60=	dword ptr -60h
Memory=	dword ptr -50h
var_44=	dword ptr -44h
var_38=	dword ptr -38h
var_34=	dword ptr -34h
var_2D=	byte ptr -2Dh
var_2C=	dword ptr -2Ch
var_28=	dword ptr -28h
var_24=	dword ptr -24h
lpAddress= dword ptr -20h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4442F2
call	__EH_prolog
sub	esp, 0F4h
push	ebx
push	esi
mov	esi, ecx
push	edi
xor	ebx, ebx
push	20h		; Size
lea	eax, [esi+23Ch]
push	ebx		; Val
mov	[esi+218h], ebx
mov	[esi+220h], ebx
mov	[esi+228h], ebx
mov	[esi+230h], ebx
push	eax		; Dst
mov	[esi+25Ch], ebx
mov	[esi+238h], ebx
mov	[esi+21Ch], ebx
mov	[esi+224h], ebx
mov	[esi+22Ch], ebx
mov	[esi+234h], ebx
call	memset
add	esp, 0Ch
mov	ecx, 8000h	; dwSize
mov	[ebp+var_4], ebx
call	sub_4411B0
cmp	eax, ebx
mov	[ebp+lpAddress], eax
setnz	al
cmp	al, bl
jnz	short loc_4106B5
mov	ebx, 8007000Eh
jmp	loc_410B39

loc_4106B5:
lea	ecx, [esi+260h]
mov	[ebp+var_28], ebx
mov	[ebp+var_24], ebx
call	sub_4100B5
push	3020800h
mov	edx, 0FD2h
lea	ecx, [ebp+var_44]
call	sub_40B168
push	20h
lea	ecx, [ebp+var_44]
mov	byte ptr [ebp+var_4], 1
call	sub_40316A
lea	ecx, [ebp+var_70]
lea	edi, [esi+140h]
call	sub_403079
push	3
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 2
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_403396

loc_41070B:
lea	eax, [ebp+var_1C]
lea	ecx, [esi+260h]
push	eax
lea	eax, [ebp+var_D]
push	eax
lea	eax, [ebp+var_98]
push	eax
mov	byte ptr [ebp+var_4], 3
call	sub_4100CE
cmp	eax, ebx
mov	[ebp+var_34], eax
jnz	loc_4107E8
cmp	[ebp+var_D], bl
jz	loc_4107FC
mov	eax, [ebp+var_78]
shr	eax, 4
test	al, 1
jnz	short loc_410766
mov	eax, [ebp+var_98]
mov	ecx, [ebp+var_94]
add	[ebp+var_28], eax
adc	[ebp+var_24], ecx
add	dword ptr [esi+218h], 1
adc	[esi+21Ch], ebx

loc_410766:
lea	eax, [ebp+var_1C]
lea	edx, [ebp+var_44]
push	eax
lea	ecx, [ebp+Memory]
call	sub_40356A
push	eax
mov	ecx, edi
mov	byte ptr [ebp+var_4], 4
call	sub_403FE6
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx
push	ebx
push	ebx
push	[ebp+var_24]
mov	ecx, edi
push	[ebp+var_28]
call	sub_403A30
push	ebx
push	ebx
mov	ecx, edi
call	sub_422DB9
cmp	eax, ebx
jnz	loc_410BC4
push	[ebp+var_1C]	; Memory
call	sub_4284D8
push	[ebp+var_70]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
pop	ecx
pop	ecx
lea	ecx, [ebp+var_70]
call	sub_403079
push	3
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 2
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_403396
jmp	loc_41070B

loc_4107E8:
lea	eax, [ebp+var_1C]
lea	ecx, [esi+14h]
push	eax
call	sub_40312C
mov	esi, [ebp+var_34]
jmp	loc_410BC6

loc_4107FC:		; Memory
push	[ebp+var_1C]
call	sub_4284D8
push	[ebp+var_70]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
pop	ecx
pop	ecx
push	dword ptr [esi+21Ch]
mov	ecx, edi
push	dword ptr [esi+218h]
call	sub_4039E2
push	ebx
push	ebx
push	[ebp+var_24]
mov	ecx, edi
push	[ebp+var_28]
call	sub_403A30
lea	ecx, [esi+260h]
call	sub_4100B5
lea	ecx, [ebp+var_70]
call	sub_403079
push	3
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 5
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_403396

loc_41085E:
lea	eax, [ebp+var_1C]
lea	ecx, [esi+260h]
push	eax
lea	eax, [ebp+var_D]
push	eax
lea	eax, [ebp+var_98]
push	eax
mov	byte ptr [ebp+var_4], 6
call	sub_4100CE
cmp	eax, ebx
mov	[ebp+var_24], eax
jnz	loc_410AA5
cmp	[ebp+var_D], bl
jz	loc_410AB9
or	[ebp+var_2C], 0FFFFFFFFh
lea	ecx, [ebp+var_100]
call	sub_4413A0
mov	eax, [ebp+var_78]
shr	eax, 4
test	al, 1
jz	short loc_4108BB
add	dword ptr [esi+228h], 1
adc	[esi+22Ch], ebx
jmp	loc_4109E6

loc_4108BB:
or	[ebp+var_60], 0FFFFFFFFh
lea	eax, [ebp+var_1C]
lea	edx, [esi+264h]
push	eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 7
call	sub_40356A
push	dword ptr [eax]	; lpFileName
lea	ecx, [ebp+var_60]
mov	byte ptr [ebp+var_4], 8
call	sub_42C145
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 7
neg	al
sbb	al, al
inc	al
mov	[ebp+var_2D], al
call	sub_4284D8
cmp	[ebp+var_2D], bl
pop	ecx
jnz	loc_410B48
lea	eax, [ebp+var_1C]
mov	ecx, edi
push	eax
call	sub_403FE6
push	dword ptr [esi+224h]
mov	ecx, edi
push	dword ptr [esi+220h]
call	sub_403EC6
add	dword ptr [esi+220h], 1
adc	[esi+224h], ebx

loc_41092D:
lea	eax, [ebp+var_38]
lea	ecx, [ebp+var_60]
push	eax		; int
push	8000h		; nNumberOfBytesToRead
push	[ebp+lpAddress]	; lpBuffer
call	sub_42C1A2
test	al, al
jz	loc_410B8E
cmp	[ebp+var_38], ebx
jz	short loc_4109AD
push	[ebp+var_38]
mov	edx, [ebp+lpAddress]
mov	ecx, [ebp+var_2C]
call	sub_441990
cmp	dword ptr [esi+218h], 1
mov	[ebp+var_2C], eax
jnz	short loc_410981
cmp	[esi+21Ch], ebx
jnz	short loc_410981
push	[ebp+var_38]
mov	edx, [ebp+lpAddress]
lea	ecx, [ebp+var_100]
call	sub_4413E0

loc_410981:
mov	eax, [ebp+var_38]
mov	ecx, edi
add	[esi+230h], eax
adc	[esi+234h], ebx
push	dword ptr [esi+234h]
push	dword ptr [esi+230h]
call	sub_422DB9
cmp	eax, ebx
jnz	loc_410BA9
jmp	short loc_41092D

loc_4109AD:
mov	eax, [ebp+var_2C]
not	eax
add	[esi+238h], eax
cmp	dword ptr [esi+218h], 1
jnz	short loc_4109DA
cmp	[esi+21Ch], ebx
jnz	short loc_4109DA
lea	edx, [esi+23Ch]
lea	ecx, [ebp+var_100]
call	sub_441670

loc_4109DA:
lea	ecx, [ebp+var_60]
mov	byte ptr [ebp+var_4], 6
call	sub_42BD78

loc_4109E6:
mov	eax, [ebp+var_18]
cmp	eax, ebx
jle	short loc_410A3F
mov	ecx, [ebp+var_1C]
mov	[ebp+var_24], eax
mov	[ebp+var_34], ecx

loc_4109F6:
mov	eax, [ebp+var_34]
mov	edx, [ebp+var_2C]
add	[ebp+var_34], 2
mov	cx, [eax]
mov	eax, 0FFh
movzx	edi, cl
and	edx, eax
xor	edx, edi
mov	edi, dword_45DAA0[edx*4]
mov	edx, [ebp+var_2C]
shr	edx, 8
xor	edi, edx
xor	edx, edx
mov	dl, ch
movzx	ecx, dl
mov	edx, edi
and	edx, eax
xor	ecx, edx
shr	edi, 8
mov	eax, dword_45DAA0[ecx*4]
xor	eax, edi
dec	[ebp+var_24]
mov	[ebp+var_2C], eax
jnz	short loc_4109F6

loc_410A3F:
push	dword ptr [esi+234h]
mov	eax, [ebp+var_2C]
lea	edi, [esi+140h]
push	dword ptr [esi+230h]
mov	ecx, edi
not	eax
add	[esi+25Ch], eax
call	sub_422DB9
cmp	eax, ebx
jnz	loc_410BA5
push	[ebp+var_1C]	; Memory
call	sub_4284D8
push	[ebp+var_70]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
pop	ecx
pop	ecx
lea	ecx, [ebp+var_70]
call	sub_403079
push	3
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 5
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_403396
jmp	loc_41085E

loc_410AA5:
lea	eax, [ebp+var_1C]
lea	ecx, [esi+14h]
push	eax
call	sub_40312C
mov	esi, [ebp+var_24]
jmp	loc_410BB7

loc_410AB9:		; Memory
push	[ebp+var_1C]
call	sub_4284D8
push	[ebp+var_70]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
pop	ecx
pop	ecx
push	dword ptr [esi+224h]
mov	ecx, edi
push	dword ptr [esi+220h]
call	sub_403EC6
lea	eax, [ebp+Memory]
mov	ecx, esi
push	eax
call	sub_41034E
push	eax
lea	ecx, [esi+2Ch]
mov	byte ptr [ebp+var_4], 9
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
mov	edx, 0FC9h
lea	ecx, [ebp+Memory]
mov	[esp+110h+var_110], 3020720h
call	sub_40B168
push	eax
lea	ecx, [esi+38h]
mov	byte ptr [ebp+var_4], 0Ah
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_44]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx

loc_410B39:		; lpAddress
mov	ecx, [ebp+lpAddress]
call	sub_4411D0
mov	eax, ebx
jmp	loc_410BEB

loc_410B48:
call	sub_41033E
mov	edi, eax
lea	eax, [ebp+var_1C]
push	eax
lea	ecx, [esi+14h]
call	sub_40312C
lea	ecx, [ebp+var_60]
mov	byte ptr [ebp+var_4], 6
call	sub_42BD78
push	[ebp+var_1C]	; Memory
call	sub_4284D8
push	[ebp+var_70]	; Memory
call	sub_4284D8
push	[ebp+var_44]	; Memory
call	sub_4284D8
mov	ecx, [ebp+lpAddress] ; lpAddress
add	esp, 0Ch
call	sub_4411D0
mov	eax, edi
jmp	short loc_410BEB

loc_410B8E:
call	sub_41033E
mov	edi, eax
lea	eax, [ebp+var_1C]
push	eax
lea	ecx, [esi+14h]
call	sub_40312C
mov	esi, edi
jmp	short loc_410BAB

loc_410BA5:
mov	esi, eax
jmp	short loc_410BB7

loc_410BA9:
mov	esi, eax

loc_410BAB:
lea	ecx, [ebp+var_60]
mov	byte ptr [ebp+var_4], 6
call	sub_42BD78

loc_410BB7:		; Memory
push	[ebp+var_1C]
call	sub_4284D8
push	[ebp+var_70]
jmp	short loc_410BD1

loc_410BC4:
mov	esi, eax

loc_410BC6:		; Memory
push	[ebp+var_1C]
call	sub_4284D8
push	[ebp+var_70]	; Memory

loc_410BD1:
call	sub_4284D8
push	[ebp+var_44]	; Memory
call	sub_4284D8
mov	ecx, [ebp+lpAddress] ; lpAddress
add	esp, 0Ch
call	sub_4411D0
mov	eax, esi

loc_410BEB:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_41062D endp



; Attributes: bp-based frame

sub_410BFA proc	near

var_304= dword ptr -304h
var_2F4= dword ptr -2F4h
var_102= byte ptr -102h
var_FC=	dword ptr -0FCh
var_F8=	byte ptr -0F8h
var_EC=	byte ptr -0ECh
var_94=	byte ptr -94h
var_90=	byte ptr -90h
var_84=	byte ptr -84h
var_44=	dword ptr -44h
var_38=	dword ptr -38h
var_2C=	dword ptr -2Ch
var_24=	dword ptr -24h
var_20=	dword ptr -20h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_444360
call	__EH_prolog
sub	esp, 2E8h
push	ebx
push	esi
mov	esi, ecx
push	edi
mov	eax, [esi+0Ch]
imul	eax, 188h
lea	ebx, [eax+esi+84h]
mov	ecx, ebx
call	sub_4028A8
test	al, al
jnz	short loc_410C40
push	3020208h
push	8A0h
mov	ecx, ebx
call	sub_40E58A
jmp	loc_410E15

loc_410C40:
push	4
lea	ecx, [ebp+var_2C]
call	sub_402794
mov	[ebp+var_2C], offset off_44B518
lea	eax, [ebp+var_2C]
xor	edi, edi
push	eax
mov	ecx, ebx
mov	[ebp+var_4], edi
call	sub_4170D3
cmp	[ebp+var_24], edi
jz	loc_410E09
lea	ecx, [ebp+var_2F4]
call	sub_40F2E5
lea	ecx, [ebp+var_94]
mov	byte ptr [ebp+var_4], 1
call	sub_410E24
mov	[ebp+var_2F4], offset off_44C2A0
cmp	[ebp+var_24], edi
mov	byte ptr [ebp+var_4], 2
jle	short loc_410CCB

loc_410C97:
mov	eax, [ebp+var_20]
mov	ecx, ebx
push	dword ptr [eax+edi*4]
lea	eax, [ebp+Memory]
push	eax
call	sub_4174B8
push	eax
lea	ecx, [ebp+var_84]
mov	byte ptr [ebp+var_4], 3
call	sub_4032B4
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 2
call	sub_4284D8
inc	edi
pop	ecx
cmp	edi, [ebp+var_24]
jl	short loc_410C97

loc_410CCB:
lea	eax, [ebp+Memory]
mov	ecx, ebx
push	eax
call	sub_40E71B
push	eax
lea	ecx, [ebp+var_90]
mov	byte ptr [ebp+var_4], 4
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 2
call	sub_4284D8
mov	eax, [esi+0Ch]
mov	edx, 0FC8h
imul	eax, 188h
lea	ecx, [ebp+var_38]
mov	[esp+304h+var_304], 3020710h
mov	al, [eax+esi+158h]
and	[ebp+var_102], 0
mov	[ebp+var_94], al
call	sub_40B168
mov	eax, [esi]
push	3000000h
mov	edx, 898h
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 5
mov	[ebp+var_FC], eax
call	sub_40B168
push	eax
lea	ecx, [ebp+var_F8]
mov	byte ptr [ebp+var_4], 6
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 5
call	sub_4284D8
pop	ecx
push	20h
lea	ecx, [ebp+var_44]
call	sub_409516
push	eax
lea	edx, [ebp+var_38]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 7
call	sub_40356A
push	eax
lea	ecx, [ebp+var_EC]
mov	byte ptr [ebp+var_4], 8
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_44]	; Memory
mov	byte ptr [ebp+var_4], 5
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_38]
pop	ecx
push	dword ptr [esi]	; hWndParent
lea	ecx, [ebp+var_2F4]
push	eax		; int
call	sub_424FE9
push	[ebp+var_38]	; Memory
test	eax, eax
jz	short loc_410DDC
call	sub_4284D8
pop	ecx
lea	ecx, [ebp+var_94]
mov	byte ptr [ebp+var_4], 9
call	sub_410EB4
and	byte ptr [ebp+var_4], 0
lea	ecx, [ebp+var_2F4]
call	sub_40F3F1
jmp	short loc_410E09

loc_410DDC:
call	sub_4284D8
pop	ecx
lea	ecx, [ebp+var_94]
mov	byte ptr [ebp+var_4], 0Ah
call	sub_410EB4
and	byte ptr [ebp+var_4], 0
lea	ecx, [ebp+var_2F4]
call	sub_40F3F1
push	1
mov	ecx, esi
call	sub_402FBC

loc_410E09:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_2C]
call	sub_4282FE

loc_410E15:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_410BFA endp




sub_410E24 proc	near
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
push	3
lea	ecx, [esi+4]
mov	[esi], bl
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
push	4
mov	ecx, offset off_44B510
pop	eax
mov	[esi+14h], ebx
mov	[esi+18h], ebx
mov	[esi+1Ch], ebx
mov	[esi+20h], eax
mov	[esi+10h], ecx
mov	[esi+28h], ebx
mov	[esi+2Ch], ebx
mov	[esi+30h], ebx
mov	[esi+34h], eax
mov	dword ptr [esi+24h], offset off_44C2A4
mov	[esi+48h], eax
mov	[esi+3Ch], ebx
mov	[esi+40h], ebx
mov	[esi+44h], ebx
mov	[esi+38h], ecx
mov	eax, esi
pop	esi
pop	ebx
retn
sub_410E24 endp

; START	OF FUNCTION CHUNK FOR sub_44430F

loc_410E7C:
mov	eax, offset loc_444374
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp-10h], esi
and	dword ptr [ebp-4], 0
lea	ecx, [esi+260h]
call	sub_410EB4
or	dword ptr [ebp-4], 0FFFFFFFFh
mov	ecx, esi
call	sub_40F3F1
mov	ecx, [ebp-0Ch]
pop	esi
mov	large fs:0, ecx
leave
retn
; END OF FUNCTION CHUNK	FOR sub_44430F


; Attributes: bp-based frame

sub_410EB4 proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4443B9
call	__EH_prolog
push	ecx
push	ecx
push	ebx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
lea	edi, [esi+38h]
mov	ebx, offset off_44B510
mov	[ebp+var_14], edi
mov	[edi], ebx
mov	ecx, edi
mov	byte ptr [ebp+var_4], 3
call	sub_428327
mov	ecx, edi
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE
lea	edi, [esi+24h]
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44C2A4
mov	ecx, edi
mov	byte ptr [ebp+var_4], 4
call	sub_428327
mov	ecx, edi
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
lea	edi, [esi+10h]
mov	[ebp+var_14], edi
mov	[edi], ebx
mov	ecx, edi
mov	byte ptr [ebp+var_4], 5
call	sub_428327
and	byte ptr [ebp+var_4], 0
mov	ecx, edi
call	sub_4282FE
push	dword ptr [esi+4] ; Memory
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_410EB4 endp



; Attributes: bp-based frame

sub_410F47 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4443CC
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44C2A4
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_410F47 endp



; Attributes: bp-based frame

sub_410F7F proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4443EA
call	__EH_prolog
push	ecx
push	esi
push	edi
mov	edi, ecx
push	10h		; Size
call	sub_4284B1
mov	esi, eax
pop	ecx
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
test	esi, esi
jz	short loc_410FBC
mov	eax, [ebp+arg_0]
mov	ecx, [eax]
mov	[esi], ecx
add	eax, 4
lea	ecx, [esi+4]
push	eax
mov	byte ptr [ebp+var_4], 1
call	sub_4030F2
jmp	short loc_410FBE

loc_410FBC:
xor	esi, esi

loc_410FBE:
or	[ebp+var_4], 0FFFFFFFFh
push	esi
mov	ecx, edi
call	sub_429907
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_410F7F endp



; Attributes: bp-based frame

sub_410FDA proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ebx
mov	ebx, ecx
mov	ecx, [ebp+arg_4]
push	edi
mov	edi, [ebp+arg_0]
mov	eax, [ebx+8]
add	ecx, edi
cmp	ecx, eax
jle	short loc_410FF6
sub	eax, edi
mov	[ebp+arg_4], eax

loc_410FF6:
mov	eax, [ebp+arg_4]
test	eax, eax
jle	short loc_41102A
push	esi
mov	esi, edi
shl	esi, 2
mov	[ebp+arg_0], eax

loc_411006:
mov	eax, [ebx+0Ch]
mov	ecx, [eax+esi]
test	ecx, ecx
mov	[ebp+Memory], ecx
jz	short loc_411021
call	sub_4078D8
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_411021:
add	esi, 4
dec	[ebp+arg_0]
jnz	short loc_411006
pop	esi

loc_41102A:
push	[ebp+arg_4]
mov	ecx, ebx
push	edi
call	sub_42847F
pop	edi
pop	ebx
leave
retn	8
sub_410FDA endp




; int __thiscall sub_41103B(void *Memory, char)
sub_41103B proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_410F47
test	[esp+4+arg_0], 1
jz	short loc_411051
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_411051:
mov	eax, esi
pop	esi
retn	4
sub_41103B endp



; Attributes: bp-based frame

sub_411057 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4443FF
call	__EH_prolog
push	ecx
push	esi
push	edi
mov	esi, ecx
xor	edi, edi
mov	[ebp+var_10], esi
mov	[esi+4], edi
mov	[esi+20h], edi
lea	ecx, [esi+24h]
push	3
mov	[ebp+var_4], edi
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
mov	dword ptr [esi], offset	off_44C2AC
push	lpszFormat	; lpszFormat
call	ds:RegisterClipboardFormatA
mov	ecx, [ebp+var_C]
or	dword ptr [esi+14h], 0FFFFFFFFh
push	1
mov	[esi+1Ch], eax
pop	eax
mov	[esi+0Ch], edi
mov	[esi+10h], eax
mov	[esi+18h], eax
mov	word ptr [esi+8], 0Fh
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_411057 endp



; Attributes: thunk

sub_4110C1 proc	near
jmp	sub_42C4A4
sub_4110C1 endp



; Attributes: bp-based frame

; int __stdcall	sub_4110C6(int,	void *Buf1, int)
sub_4110C6 proc	near

arg_0= dword ptr  8
Buf1= dword ptr	 0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
push	10h		; Size
push	offset unk_44CCB8 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jz	short loc_4110F5
push	10h		; Size
push	offset unk_44CC98 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_411107

loc_4110F5:
mov	ecx, [ebp+arg_8]
mov	eax, [ebp+arg_0]
push	eax
mov	[ecx], eax
mov	ecx, [eax]
call	dword ptr [ecx+4]
xor	eax, eax
jmp	short loc_41110C

loc_411107:
mov	eax, 80004002h

loc_41110C:
pop	ebp
retn	0Ch
sub_4110C6 endp




; int __stdcall	sub_411110(void	*Memory)
sub_411110 proc	near

Memory=	dword ptr  4

push	esi
push	edi
mov	edi, [esp+8+Memory]
lea	esi, [edi+4]
push	esi		; lpAddend
call	ds:InterlockedDecrement
mov	eax, [esi]
test	eax, eax
jnz	short loc_41113A
test	edi, edi
jz	short loc_411138
mov	ecx, edi
call	sub_41115F
push	edi		; Memory
call	sub_4284D8
pop	ecx

loc_411138:
xor	eax, eax

loc_41113A:
pop	edi
pop	esi
retn	4
sub_411110 endp




sub_41113F proc	near

arg_8= dword ptr  0Ch

mov	eax, [esp+arg_8]
and	dword ptr [eax+4], 0
mov	eax, 80004001h
retn	0Ch
sub_41113F endp




sub_41114F proc	near
mov	eax, 80040003h
retn	14h
sub_41114F endp




sub_411157 proc	near
mov	eax, 80040003h
retn	8
sub_411157 endp




sub_41115F proc	near
push	esi
mov	esi, ecx
push	dword ptr [esi+24h] ; Memory
call	sub_4284D8
pop	ecx
lea	ecx, [esi+20h]
call	sub_42C4A4
pop	esi
retn
sub_41115F endp



; Attributes: bp-based frame

sub_411175 proc	near

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

push	ebp
mov	ebp, esp
mov	eax, [ebp+arg_4]
push	ebx
push	esi
push	edi
movzx	ecx, word ptr [eax]
mov	edi, [ebp+arg_0]
cmp	ecx, [edi+1Ch]
jnz	short loc_411201
cmp	dword ptr [eax+10h], 1
jnz	short loc_411201
cmp	dword ptr [eax+8], 1
jnz	short loc_411201
mov	ebx, [ebp+arg_8]
cmp	dword ptr [ebx], 1
jnz	short loc_411201
mov	eax, [edi+24h]
and	dword ptr [edi+28h], 0
add	edi, 24h
and	word ptr [eax],	0
mov	eax, [ebx+4]
test	eax, eax
jz	short loc_4111FD
push	eax		; hMem
call	ds:GlobalSize
push	dword ptr [ebx+4] ; hMem
mov	esi, eax
shr	esi, 1
call	ds:GlobalLock
test	eax, eax
jz	short loc_411201
and	[ebp+arg_0], 0
test	esi, esi
jbe	short loc_4111F4
mov	[ebp+arg_4], eax

loc_4111D5:
mov	eax, [ebp+arg_4]
mov	ax, [eax]
test	ax, ax
jz	short loc_4111F4
push	eax
mov	ecx, edi
call	sub_40316A
inc	[ebp+arg_0]
add	[ebp+arg_4], 2
cmp	[ebp+arg_0], esi
jb	short loc_4111D5

loc_4111F4:		; hMem
push	dword ptr [ebx+4]
call	ds:GlobalUnlock

loc_4111FD:
xor	eax, eax
jmp	short loc_411206

loc_411201:
mov	eax, 80004001h

loc_411206:
pop	edi
pop	esi
pop	ebx
pop	ebp
retn	10h
sub_411175 endp




sub_41120D proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8
arg_8= dword ptr  0Ch

push	edi
mov	edi, [esp+4+arg_0]
push	[esp+4+arg_4]
mov	eax, [edi]
push	edi
call	dword ptr [eax+14h]
test	eax, eax
jnz	short loc_411248
mov	eax, [edi+18h]
push	esi
mov	esi, [esp+8+arg_8]
and	dword ptr [esi+8], 0
mov	[esi], eax
mov	ecx, [edi+20h]	; hMem
call	sub_41124C
mov	[esi+4], eax
pop	esi
neg	eax
sbb	eax, eax
and	eax, 7FF8FFF2h
add	eax, 8007000Eh

loc_411248:
pop	edi
retn	0Ch
sub_41120D endp




; int __fastcall sub_41124C(HGLOBAL hMem)
sub_41124C proc	near

Src= dword ptr -8
hMem= dword ptr	-4

push	ecx
push	ecx
push	ebp
push	esi
mov	esi, ecx
push	edi
push	esi		; hMem
mov	[esp+18h+hMem],	esi
call	ds:GlobalSize
mov	edi, ds:GlobalLock
mov	ebp, eax
push	esi		; hMem
call	edi ; GlobalLock
test	eax, eax
mov	[esp+14h+Src], eax
jz	short loc_4112B6
push	ebx
push	ebp		; dwBytes
push	2042h		; uFlags
call	ds:GlobalAlloc
mov	ebx, ds:GlobalUnlock
mov	esi, eax
test	esi, esi
jz	short loc_4112AD
push	esi		; hMem
call	edi ; GlobalLock
test	eax, eax
jnz	short loc_41129C
push	esi		; hMem
call	ds:GlobalFree
xor	esi, esi
jmp	short loc_4112AD

loc_41129C:		; Size
push	ebp
push	[esp+1Ch+Src]	; Src
push	eax		; Dst
call	memcpy
add	esp, 0Ch
push	esi		; hMem
call	ebx ; GlobalUnlock

loc_4112AD:		; hMem
push	[esp+18h+hMem]
call	ebx ; GlobalUnlock
mov	eax, esi
pop	ebx

loc_4112B6:
pop	edi
pop	esi
pop	ebp
pop	ecx
pop	ecx
retn
sub_41124C endp




sub_4112BC proc	near
mov	eax, 8000FFFFh
retn	0Ch
sub_4112BC endp




sub_4112C4 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [esp+arg_4]
mov	ecx, [esp+arg_0]
mov	edx, [eax+10h]
test	[ecx+18h], edx
jz	short loc_4112E9
mov	dx, [ecx+8]
cmp	dx, [eax]
jnz	short loc_4112E9
mov	ecx, [ecx+10h]
cmp	ecx, [eax+8]
jnz	short loc_4112E9
xor	eax, eax
jmp	short locret_4112EE

loc_4112E9:
mov	eax, 80040064h

locret_4112EE:
retn	8
sub_4112C4 endp




sub_4112F1 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8
arg_8= dword ptr  0Ch

push	1
pop	ecx
cmp	[esp+arg_4], ecx
jz	short loc_411301
mov	eax, 80004001h
jmp	short locret_411311

loc_411301:
mov	eax, [esp+arg_0]
push	[esp+arg_8]
lea	edx, [eax+8]
call	sub_4037A9

locret_411311:
retn	0Ch
sub_4112F1 endp




sub_411314 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8
arg_8= byte ptr	 0Ch

cmp	[esp+arg_4], 1
push	ebx
push	esi
jz	short loc_411369
test	[esp+8+arg_8], 1
jnz	short loc_411377
mov	esi, [esp+8+arg_0]
xor	ebx, ebx
cmp	[esi+8], ebx
jz	short loc_411369
mov	ecx, [esi+34h]
mov	al, [esi+0Ch]
mov	[esi+40h], ebx
cmp	[ecx+28h], ebx
jz	short loc_411343
xor	al, al
mov	byte ptr [esi+3Ch], 1

loc_411343:
cmp	al, bl
jz	short loc_411370
lea	eax, [esi+44h]
mov	ecx, [esi+10h]
push	eax
push	ebx
lea	eax, [esi+28h]
push	ebx
push	eax
lea	eax, [esi+14h]
push	eax
call	sub_40290A
cmp	eax, ebx
mov	[esi+40h], eax
jnz	short loc_411369
cmp	[esi+4Ch], ebx
jz	short loc_411370

loc_411369:
mov	eax, 40101h
jmp	short loc_411379

loc_411370:
mov	eax, 40100h
jmp	short loc_411379

loc_411377:
xor	eax, eax

loc_411379:
pop	esi
pop	ebx
retn	0Ch
sub_411314 endp




sub_41137E proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [esp+arg_0]
mov	ecx, [esp+arg_4]
mov	[eax+8], ecx
mov	eax, 40102h
retn	8
sub_41137E endp



; Attributes: bp-based frame

sub_411391 proc	near

Memory=	dword ptr -0A4h
var_98=	dword ptr -98h
var_8C=	dword ptr -8Ch
var_88=	dword ptr -88h
var_84=	dword ptr -84h
var_80=	dword ptr -80h
var_7C=	dword ptr -7Ch
var_78=	dword ptr -78h
var_74=	dword ptr -74h
var_60=	byte ptr -60h
var_5C=	dword ptr -5Ch
pdwEffect= dword ptr -50h
var_4C=	dword ptr -4Ch
var_44=	dword ptr -44h
var_40=	dword ptr -40h
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=	byte ptr -20h
var_1F=	byte ptr -1Fh
var_1C=	dword ptr -1Ch
pDataObj= dword	ptr -18h
dwOKEffects= dword ptr -14h
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4444AF
call	__EH_prolog
sub	esp, 98h
push	ebx
push	esi
push	edi
mov	edi, ecx
lea	ecx, [ebp+var_20]
mov	[ebp+var_1C], edi
call	sub_4028C8
xor	ebx, ebx
mov	ecx, edi
mov	[ebp+var_4], ebx
call	sub_40E872
test	al, al
jz	short loc_4113F1
push	4
lea	ecx, [ebp+var_4C]
call	sub_402794
mov	[ebp+var_4C], offset off_44B518
lea	eax, [ebp+var_4C]
mov	ecx, edi
push	eax
mov	byte ptr [ebp+var_4], 1
call	sub_4170D3
cmp	[ebp+var_44], ebx
jnz	short loc_411402
and	byte ptr [ebp+var_4], bl
lea	ecx, [ebp+var_4C]
call	sub_4282FE

loc_4113F1:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_20]
call	sub_4028F2
jmp	loc_4117C6

loc_411402:
push	3
lea	ecx, [ebp+var_2C]
mov	[ebp+var_2C], ebx
mov	[ebp+var_28], ebx
mov	[ebp+var_24], ebx
call	sub_403396
and	[ebp+var_60], 0
lea	ecx, [ebp+var_5C]
mov	byte ptr [ebp+var_4], 2
call	sub_403079
mov	ecx, edi
mov	byte ptr [ebp+var_4], 3
call	sub_40E6A6
test	al, al
mov	[ebp+var_D], al
jz	short loc_411448
lea	eax, [edi+0D8h]
lea	ecx, [ebp+var_2C]
push	eax
call	sub_40312C
jmp	short loc_41146A

loc_411448:
push	off_45B8F0
lea	ecx, [ebp+var_60]
call	sub_42AF90
lea	eax, [ebp+var_5C]
lea	ecx, [ebp+var_2C]
push	eax
call	sub_40312C
lea	ecx, [ebp+var_2C]
call	sub_42C33B

loc_41146A:		; Size
push	30h
call	sub_4284B1
pop	ecx
mov	[ebp+pDataObj],	eax
cmp	eax, ebx
mov	byte ptr [ebp+var_4], 4
jz	short loc_411489
mov	ecx, eax
call	sub_411057
mov	[ebp+pDataObj],	eax
jmp	short loc_41148E

loc_411489:
mov	[ebp+pDataObj],	ebx
mov	eax, ebx

loc_41148E:
cmp	eax, ebx
mov	byte ptr [ebp+var_4], 3
mov	[ebp+var_8C], eax
jz	short loc_4114A2
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+4]

loc_4114A2:
lea	ecx, [ebp+var_74]
mov	byte ptr [ebp+var_4], 5
call	sub_40337B
mov	esi, offset off_44B510
mov	[ebp+var_74], esi
cmp	[ebp+var_44], 0
mov	byte ptr [ebp+var_4], 6
jle	loc_41157D

loc_4114C4:
mov	eax, [ebp+var_40]
push	3
lea	ecx, [ebp+var_38]
mov	eax, [eax+ebx*4]
mov	[ebp+dwOKEffects], eax
xor	eax, eax
mov	[ebp+var_38], eax
mov	[ebp+var_34], eax
mov	[ebp+var_30], eax
call	sub_403396
cmp	[ebp+var_D], 0
push	[ebp+dwOKEffects]
mov	byte ptr [ebp+var_4], 7
jz	short loc_411516
lea	eax, [ebp+var_98]
mov	ecx, edi
push	eax
call	sub_4174B8
push	eax
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 8
call	sub_40312C
push	[ebp+var_98]
mov	byte ptr [ebp+var_4], 7
jmp	short loc_41153B

loc_411516:
lea	eax, [ebp+Memory]
mov	ecx, edi
push	eax
call	sub_41733B
push	eax
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 9
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 7

loc_41153B:
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_38]
push	eax
lea	edx, [ebp+var_2C]
lea	ecx, [ebp+var_80]
call	sub_40356A
push	eax
lea	ecx, [ebp+var_74]
mov	byte ptr [ebp+var_4], 0Ah
call	sub_4032B4
push	[ebp+var_80]	; Memory
call	sub_4284D8
push	[ebp+var_38]	; Memory
mov	byte ptr [ebp+var_4], 6
call	sub_4284D8
inc	ebx
pop	ecx
cmp	ebx, [ebp+var_44]
pop	ecx
jl	loc_4114C4

loc_41157D:
mov	ebx, [ebp+pDataObj]
lea	edx, [ebp+var_74]
lea	ecx, [ebx+20h]
call	sub_41194B
test	al, al
mov	[ebp+var_74], esi
jnz	short loc_4115C1
lea	ecx, [ebp+var_74]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_428327
lea	ecx, [ebp+var_74]
mov	byte ptr [ebp+var_4], 5
call	sub_4282FE
test	ebx, ebx
mov	byte ptr [ebp+var_4], 3
jz	short loc_4115B8
mov	eax, [ebx]
push	ebx
call	dword ptr [eax+8]

loc_4115B8:
mov	byte ptr [ebp+var_4], 0Ch
jmp	loc_411788

loc_4115C1:
lea	ecx, [ebp+var_74]
mov	byte ptr [ebp+var_4], 0Dh
call	sub_428327
lea	ecx, [ebp+var_74]
mov	byte ptr [ebp+var_4], 5
call	sub_4282FE
push	58h		; Size
call	sub_4284B1
pop	ecx
mov	[ebp+dwOKEffects], eax
test	eax, eax
mov	byte ptr [ebp+var_4], 0Eh
jz	short loc_4115F7
mov	ecx, eax
call	sub_4117E9
mov	esi, eax
jmp	short loc_4115F9

loc_4115F7:
xor	esi, esi

loc_4115F9:
test	esi, esi
mov	byte ptr [ebp+var_4], 5
mov	[ebp+var_88], esi
jz	short loc_41160D
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]

loc_41160D:
cmp	[ebp+var_D], 0
lea	ebx, [esi+14h]
mov	ecx, ebx
mov	byte ptr [ebp+var_4], 0Fh
setz	al
mov	[esi+0Ch], al
mov	[esi+10h], edi
call	sub_428327
lea	eax, [ebp+var_4C]
mov	ecx, ebx
push	eax
call	sub_40F449
lea	eax, [ebp+var_2C]
lea	ecx, [esi+28h]
push	eax
call	sub_40312C
mov	ebx, [ebp+pDataObj]
lea	ecx, [esi+38h]
push	ebx
mov	[esi+34h], ebx
call	sub_43D0DB
cmp	[ebp+var_D], 0
mov	[ebp+dwOKEffects], 1
jz	short loc_411662
mov	[ebp+dwOKEffects], 3

loc_411662:
mov	ecx, [edi+44h]
mov	eax, [ecx]
call	dword ptr [eax+18h]
lea	eax, [ebp+pdwEffect]
push	eax		; pdwEffect
push	[ebp+dwOKEffects] ; dwOKEffects
push	esi		; pDropSource
push	ebx		; pDataObj
call	ds:DoDragDrop
mov	ecx, [edi+44h]
mov	[ebp+dwOKEffects], eax
mov	eax, [ecx]
call	dword ptr [eax+1Ch]
mov	ecx, [ebp+dwOKEffects]
mov	eax, 40101h
cmp	ecx, eax
setz	[ebp+var_D]
cmp	ecx, 40100h
jnz	short loc_4116D8
mov	eax, [esi+40h]
cmp	byte ptr [esi+3Ch], 0
mov	[ebp+dwOKEffects], eax
jz	short loc_4116EE
cmp	dword ptr [ebx+28h], 0
jz	short loc_4116EE
add	ebx, 24h
mov	ecx, ebx
call	sub_42C33B
cmp	[ebp+pdwEffect], 2
lea	eax, [esi+44h]
push	eax
push	0
setz	al
push	eax
lea	eax, [ebp+var_4C]
push	ebx
push	eax
mov	ecx, edi
call	sub_40290A
mov	ebx, [ebp+pDataObj]
mov	[ebp+dwOKEffects], eax
jmp	short loc_4116EE

loc_4116D8:
cmp	ecx, eax
jz	short loc_4116E8
test	ecx, ecx
jz	short loc_4116E8
push	ecx
mov	ecx, edi
call	sub_40E579

loc_4116E8:
mov	eax, [esi+40h]
mov	[ebp+dwOKEffects], eax

loc_4116EE:
cmp	dword ptr [esi+4Ch], 0
jz	short loc_41173A
push	0
lea	ecx, [ebp+var_84]
call	sub_4117D7
and	[ebp+var_7C], 0
mov	[ebp+var_84], offset off_44C2DC
lea	eax, [esi+44h]
lea	ecx, [edi+4]
mov	[ebp+var_78], eax
mov	eax, edi
neg	eax
sbb	eax, eax
mov	byte ptr [ebp+var_4], 10h
and	eax, ecx
lea	ecx, [ebp+var_84]
push	dword ptr [eax]	; hWndParent
push	1F7h		; lpTemplateName
call	sub_42FCF7
mov	byte ptr [ebp+var_4], 0Fh

loc_41173A:
cmp	[ebp+dwOKEffects], 0
jz	short loc_411755
cmp	[ebp+dwOKEffects], 80004004h
jz	short loc_411768
push	[ebp+dwOKEffects]
mov	ecx, edi
call	sub_40E579
jmp	short loc_411768

loc_411755:
cmp	dword ptr [esi+4Ch], 0
jnz	short loc_411768
cmp	[ebp+var_D], 0
jnz	short loc_411768
mov	ecx, edi
call	sub_41BACC

loc_411768:
test	esi, esi
mov	byte ptr [ebp+var_4], 5
jz	short loc_411776
mov	eax, [esi]
push	esi
call	dword ptr [eax+8]

loc_411776:
test	ebx, ebx
mov	byte ptr [ebp+var_4], 3
jz	short loc_411784
mov	eax, [ebx]
push	ebx
call	dword ptr [eax+8]

loc_411784:
mov	byte ptr [ebp+var_4], 11h

loc_411788:
lea	ecx, [ebp+var_60]
call	sub_4027FD
push	[ebp+var_5C]	; Memory
call	sub_4284D8
push	[ebp+var_2C]	; Memory
call	sub_4284D8
and	byte ptr [ebp+var_4], 0
pop	ecx
pop	ecx
lea	ecx, [ebp+var_4C]
call	sub_4282FE
mov	ecx, [ebp+var_1C]
mov	al, [ebp+var_20]
mov	[ecx+184h], al
mov	eax, [ebp+var_1C]
mov	cl, [ebp+var_1F]
mov	[eax+185h], cl

loc_4117C6:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_411391 endp




sub_4117D7 proc	near

arg_0= dword ptr  4

mov	eax, ecx
mov	ecx, [esp+arg_0]
mov	[eax+4], ecx
mov	dword ptr [eax], offset	off_44B588
retn	4
sub_4117D7 endp



; Attributes: bp-based frame

sub_4117E9 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4444C7
call	__EH_prolog
push	ecx
push	ebx
push	esi
push	edi
mov	esi, ecx
xor	ebx, ebx
push	4
mov	[esi+4], ebx
pop	edi
mov	[esi+8], ebx
mov	[esi+10h], ebx
mov	[ebp+var_10], esi
mov	[esi+18h], ebx
mov	[esi+1Ch], ebx
mov	[esi+20h], ebx
mov	[esi+24h], edi
mov	dword ptr [esi+14h], offset off_44B518
lea	ecx, [esi+28h]
push	3
mov	[ebp+var_4], ebx
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
mov	ecx, [ebp+var_C]
mov	[esi+38h], ebx
mov	[esi+3Ch], bl
mov	[esi+40h], ebx
mov	[esi+48h], ebx
mov	[esi+4Ch], ebx
mov	[esi+50h], ebx
mov	[esi+54h], edi
mov	dword ptr [esi+44h], offset off_44B510
mov	dword ptr [esi], offset	off_44C30C
mov	eax, esi
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_4117E9 endp



; Attributes: bp-based frame

; int __stdcall	sub_411865(int,	void *Buf1, int)
sub_411865 proc	near

arg_0= dword ptr  8
Buf1= dword ptr	 0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
push	10h		; Size
push	offset unk_44CCB8 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jz	short loc_411894
push	10h		; Size
push	offset unk_44CCD8 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_4118A6

loc_411894:
mov	ecx, [ebp+arg_8]
mov	eax, [ebp+arg_0]
push	eax
mov	[ecx], eax
mov	ecx, [eax]
call	dword ptr [ecx+4]
xor	eax, eax
jmp	short loc_4118AB

loc_4118A6:
mov	eax, 80004002h

loc_4118AB:
pop	ebp
retn	0Ch
sub_411865 endp




; int __stdcall	sub_4118AF(void	*Memory)
sub_4118AF proc	near

Memory=	dword ptr  4

push	esi
push	edi
mov	edi, [esp+8+Memory]
lea	esi, [edi+4]
push	esi		; lpAddend
call	ds:InterlockedDecrement
mov	eax, [esi]
test	eax, eax
jnz	short loc_4118D9
test	edi, edi
jz	short loc_4118D7
mov	ecx, edi
call	sub_4118DE
push	edi		; Memory
call	sub_4284D8
pop	ecx

loc_4118D7:
xor	eax, eax

loc_4118D9:
pop	edi
pop	esi
retn	4
sub_4118AF endp



; Attributes: bp-based frame

sub_4118DE proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4444FD
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
lea	edi, [esi+44h]
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44B510
mov	ecx, edi
mov	byte ptr [ebp+var_4], 3
call	sub_428327
mov	ecx, edi
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE
mov	eax, [esi+38h]
mov	byte ptr [ebp+var_4], 1
test	eax, eax
jz	short loc_411928
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_411928:		; Memory
push	dword ptr [esi+28h]
call	sub_4284D8
or	[ebp+var_4], 0FFFFFFFFh
pop	ecx
lea	ecx, [esi+14h]
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_4118DE endp



; Attributes: bp-based frame

sub_41194B proc	near

var_38=	dword ptr -38h
var_2C=	dword ptr -2Ch
Memory=	dword ptr -24h
hMem= dword ptr	-18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_444538
call	__EH_prolog
sub	esp, 2Ch
cmp	byte_45D8B4, 0
push	ebx
push	esi
push	edi
push	1
mov	esi, edx
pop	ebx
mov	[ebp+var_10], ecx
mov	[ebp+var_14], ebx
jnz	loc_411AC2
lea	ecx, [ebp+var_38]
call	sub_40337B
mov	[ebp+var_38], offset off_44C320
xor	edi, edi
cmp	[esi+8], edi
mov	[ebp+var_4], edi
jle	short loc_4119BA

loc_41198C:
mov	eax, [esi+0Ch]
lea	ecx, [ebp+Memory]
mov	edx, [eax+edi*4]
call	sub_43A785
push	eax
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 1
call	sub_4128A8
and	byte ptr [ebp+var_4], 0
push	[ebp+Memory]	; Memory
call	sub_4284D8
inc	edi
pop	ecx
cmp	edi, [esi+8]
jl	short loc_41198C

loc_4119BA:
mov	edx, [esi+8]
xor	edi, edi
test	edx, edx
jle	short loc_4119D7
mov	ecx, [ebp+var_2C]

loc_4119C6:
mov	eax, [ecx]
inc	edi
add	ecx, 4
cmp	edi, edx
mov	eax, [eax+4]
lea	ebx, [ebx+eax+1]
jl	short loc_4119C6

loc_4119D7:
mov	edi, [ebp+var_10]
lea	eax, [ebx+14h]
push	eax		; dwBytes
push	2042h		; uFlags
mov	ecx, edi
call	sub_42C483
test	al, al
jnz	short loc_411A15
mov	[ebp+var_38], offset off_44C320
mov	[ebp+var_4], 2

loc_4119FC:
lea	ecx, [ebp+var_38]
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_38]
call	sub_4282FE
jmp	loc_411B09

loc_411A15:
mov	edi, [edi]
push	edi		; hMem
mov	[ebp+hMem], edi
call	ds:GlobalLock
xor	ecx, ecx
cmp	eax, ecx
jnz	short loc_411A37
mov	[ebp+var_38], offset off_44C320
mov	[ebp+var_4], 4
jmp	short loc_4119FC

loc_411A37:
mov	[eax+0Ch], ecx
mov	[eax+4], ecx
mov	[eax+8], ecx
mov	dword ptr [eax], 14h
mov	[eax+10h], ecx
add	eax, 14h
cmp	[esi+8], ecx
mov	[ebp+var_10], ecx
jle	short loc_411A8F

loc_411A54:
mov	ecx, [ebp+var_2C]
mov	edx, [ebp+var_10]
lea	edi, [eax+1]
mov	ecx, [ecx+edx*4]
mov	edx, [ecx+4]
mov	ecx, [ecx]
inc	edx
mov	[ebp+var_14], edx
mov	dl, [ecx]
test	dl, dl
mov	[eax], dl
jz	short loc_411A7E
sub	ecx, edi
inc	ecx

loc_411A74:
mov	dl, [ecx+edi]
mov	[edi], dl
inc	edi
test	dl, dl
jnz	short loc_411A74

loc_411A7E:
add	eax, [ebp+var_14]
sub	ebx, [ebp+var_14]
inc	[ebp+var_10]
mov	ecx, [ebp+var_10]
cmp	ecx, [esi+8]
jl	short loc_411A54

loc_411A8F:		; hMem
push	[ebp+hMem]
and	byte ptr [eax],	0
call	ds:GlobalUnlock
mov	[ebp+var_38], offset off_44C320
lea	ecx, [ebp+var_38]
mov	[ebp+var_4], 5
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_38]
call	sub_4282FE
jmp	loc_411B76

loc_411AC2:
mov	ecx, [esi+8]
xor	edi, edi
cmp	ecx, edi
jle	short loc_411AE0
mov	eax, [esi+0Ch]

loc_411ACE:
mov	edx, [eax]
add	eax, 4
dec	ecx
mov	edx, [edx+4]
lea	ebx, [ebx+edx+1]
jnz	short loc_411ACE
mov	[ebp+var_14], ebx

loc_411AE0:
mov	ecx, [ebp+var_10]
lea	eax, [ebx+ebx+14h]
push	eax		; dwBytes
push	2042h		; uFlags
call	sub_42C483
test	al, al
jz	short loc_411B09
mov	eax, [ebp+var_10]
mov	eax, [eax]
push	eax		; hMem
mov	[ebp+hMem], eax
call	ds:GlobalLock
cmp	eax, edi
jnz	short loc_411B0D

loc_411B09:
xor	al, al
jmp	short loc_411B78

loc_411B0D:
mov	[eax+0Ch], edi
mov	[eax+4], edi
mov	[eax+8], edi
mov	dword ptr [eax], 14h
mov	dword ptr [eax+10h], 1
add	eax, 14h
cmp	[esi+8], edi
mov	[ebp+var_10], edi
jle	short loc_411B6A

loc_411B2E:
mov	ecx, [esi+0Ch]
mov	edx, [ebp+var_10]
lea	ebx, [eax+2]
mov	edx, [ecx+edx*4]
mov	ecx, [edx+4]
mov	edx, [edx]
inc	ecx
mov	di, [edx]
mov	[eax], di

loc_411B46:
inc	edx
inc	edx
test	di, di
jz	short loc_411B57
mov	di, [edx]
mov	[ebx], di
inc	ebx
inc	ebx
jmp	short loc_411B46

loc_411B57:
sub	[ebp+var_14], ecx
inc	[ebp+var_10]
lea	eax, [eax+ecx*2]
mov	ecx, [ebp+var_10]
cmp	ecx, [esi+8]
jl	short loc_411B2E
xor	edi, edi

loc_411B6A:		; hMem
push	[ebp+hMem]
mov	[eax], di
call	ds:GlobalUnlock

loc_411B76:
mov	al, 1

loc_411B78:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_41194B endp

; START	OF FUNCTION CHUNK FOR sub_444520

loc_411B87:
cmp	dword ptr [ecx+4], 0
jz	short locret_411B95
push	dword ptr [ecx]	; hMem
call	ds:GlobalUnlock

locret_411B95:
retn
; END OF FUNCTION CHUNK	FOR sub_444520



; int __thiscall sub_411B96(void *Memory, char)
sub_411B96 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_40D6C5
test	[esp+4+arg_0], 1
jz	short loc_411BAC
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_411BAC:
mov	eax, esi
pop	esi
retn	4
sub_411B96 endp



; Attributes: bp-based frame

sub_411BB2 proc	near

var_14=	word 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, 14h
push	esi
push	1
and	[ebp+var_10], 0
pop	eax
or	[ebp+var_8], 0FFFFFFFFh
mov	[ebp+var_C], eax
mov	[ebp+var_4], eax
mov	eax, [ebp+arg_0]
mov	esi, ecx
lea	edx, [ebp+var_14]
mov	ecx, [eax]
push	edx
push	eax
mov	[ebp+var_14], 0Fh
call	dword ptr [ecx+14h]
neg	eax
sbb	al, al
inc	al
mov	[esi+24h], al
pop	esi
leave
retn	4
sub_411BB2 endp




sub_411BED proc	near
push	esi
mov	esi, ecx
mov	edx, [esi+20h]
test	edx, edx
jl	short loc_411C08
mov	eax, [esi+38h]
test	eax, eax
jz	short loc_411C08
mov	ecx, [eax+74h]	; hWnd
push	0		; char
call	sub_411C0E

loc_411C08:
or	dword ptr [esi+20h], 0FFFFFFFFh
pop	esi
retn
sub_411BED endp



; Attributes: bp-based frame

; int __thiscall sub_411C0E(HWND hWnd, char)
sub_411C0E proc	near

lParam=	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
arg_0= byte ptr	 8

push	ebp
mov	ebp, esp
sub	esp, 28h
push	esi
mov	esi, ecx
mov	cl, [ebp+arg_0]
mov	[ebp+var_24], edx
xor	edx, edx
push	8
neg	cl
pop	eax
mov	[ebp+var_20], edx
sbb	ecx, ecx
mov	[ebp+lParam], eax
and	ecx, eax
mov	[ebp+var_18], eax
lea	eax, [ebp+lParam]
mov	[ebp+var_1C], ecx
push	eax		; lParam
push	edx		; wParam
push	1006h		; Msg
push	esi		; hWnd
mov	[ebp+var_14], edx
call	ds:SendMessageA
pop	esi
leave
retn	4
sub_411C0E endp



; Attributes: bp-based frame

sub_411C4D proc	near

lParam=	dword ptr -34h
var_30=	dword ptr -30h
Memory=	dword ptr -20h
Point= tagPOINT	ptr -1Ch
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_44454C
call	__EH_prolog
sub	esp, 28h
mov	eax, [ebp+arg_0]
push	ebx
push	esi
mov	esi, ecx
mov	[ebp+var_14], eax
mov	eax, [ebp+arg_4]
or	dword ptr [esi+28h], 0FFFFFFFFh
push	edi
mov	[ebp+var_10], eax
call	sub_411BED
xor	edi, edi
cmp	byte ptr [esi+24h], 0
mov	byte ptr [esi+3Ch], 1
mov	[esi+38h], edi
mov	byte ptr [esi+25h], 1
jz	loc_411E21
mov	eax, [ebp+var_14]
lea	ecx, [ebp+Point]
mov	[ebp+Point.x], eax
mov	eax, [ebp+var_10]
mov	[ebp+Point.y], eax
mov	eax, [esi+40h]
push	ecx		; lpPoint
push	dword ptr [eax]	; hWnd
call	ds:ScreenToClient
mov	[ebp+arg_4], edi

loc_411CA9:
mov	eax, [esi+40h]
cmp	dword ptr [eax+8], 1
jg	short loc_411CBA
mov	ecx, [ebp+arg_4]
cmp	ecx, [eax+0Ch]
jnz	short loc_411D02

loc_411CBA:		; hWnd
push	dword ptr [edi+eax+88h]
lea	eax, [edi+eax+88h]
call	ds:IsWindowEnabled
test	eax, eax
jz	short loc_411D02
mov	eax, [esi+40h]
lea	ecx, [edi+eax+84h]
test	ecx, ecx
jz	short loc_411CE9
lea	ecx, [edi+eax+88h]
jmp	short loc_411CEB

loc_411CE9:
xor	ecx, ecx

loc_411CEB:
mov	eax, [eax]
push	3		; flags
push	[ebp+Point.y]
mov	ebx, [ecx]
push	[ebp+Point.x]	; pt
push	eax		; hwnd
call	ds:ChildWindowFromPointEx
cmp	eax, ebx
jz	short loc_411D3C

loc_411D02:
inc	[ebp+arg_4]
add	edi, 188h
cmp	edi, 310h
jl	short loc_411CA9

loc_411D13:
cmp	byte ptr [esi+3Ch], 0
jz	short loc_411D66
mov	eax, [esi+48h]
test	eax, eax
jl	loc_411E21
imul	eax, 188h
mov	ecx, [esi+40h]
lea	eax, [eax+ecx+84h]
mov	[esi+38h], eax
jmp	loc_411E21

loc_411D3C:
mov	eax, [ebp+arg_4]
mov	edx, [esi+40h]
mov	ecx, eax
and	byte ptr [esi+3Ch], 0
imul	ecx, 188h
cmp	eax, [esi+44h]
lea	ecx, [ecx+edx+84h]
mov	[esi+38h], ecx
jnz	short loc_411D13
and	byte ptr [esi+25h], 0
jmp	loc_411E21

loc_411D66:
mov	ecx, [esi+38h]
call	sub_411E32
test	al, al
jz	loc_411E21
push	[ebp+var_10]
mov	eax, [esi+38h]
push	[ebp+var_14]	; Point
mov	edi, [eax+74h]
call	ds:WindowFromPoint
cmp	eax, edi
jnz	loc_411E21
mov	eax, [esi+38h]
lea	ecx, [ebp+var_14]
add	eax, 74h
push	ecx		; lpPoint
push	dword ptr [eax]	; hWnd
call	ds:ScreenToClient
mov	eax, [ebp+var_14]
lea	ecx, [ebp+lParam]
mov	[ebp+lParam], eax
mov	eax, [ebp+var_10]
mov	[ebp+var_30], eax
mov	eax, [esi+38h]
push	ecx		; lParam
push	0		; wParam
mov	eax, [eax+74h]
push	1012h		; Msg
push	eax		; hWnd
call	ds:SendMessageA
mov	edi, eax
test	edi, edi
jl	short loc_411E21
mov	ecx, [esi+38h]
push	edi
call	sub_402875
mov	ebx, eax
cmp	ebx, 0FFFFFFFFh
jz	short loc_411E21
mov	ecx, [esi+38h]
push	ebx
call	sub_41756F
test	al, al
jz	short loc_411E21
mov	ecx, [esi+38h]
lea	eax, [ebp+Memory]
push	ebx
push	eax
mov	[esi+28h], ebx
call	sub_41733B
and	[ebp+var_4], 0
push	eax
lea	ecx, [esi+2Ch]
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [esi+38h]
pop	ecx
push	1		; char
mov	edx, edi
mov	ecx, [eax+74h]	; hWnd
call	sub_411C0E
mov	[esi+20h], edi

loc_411E21:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_411C4D endp




sub_411E32 proc	near
push	esi
mov	esi, ecx
call	sub_40E6A6
test	al, al
jnz	short loc_411E61
mov	ecx, esi
call	sub_40E6B1
test	al, al
jz	short loc_411E5D
mov	ecx, [esi+0D8h]
mov	edx, offset a_	; "\\\\.\\"
call	sub_42828A
test	eax, eax
jnz	short loc_411E61

loc_411E5D:
xor	eax, eax
pop	esi
retn

loc_411E61:
push	1
pop	eax
pop	esi
retn
sub_411E32 endp




sub_411E66 proc	near
push	esi
mov	esi, ecx
cmp	byte ptr [esi+3Ch], 0
jnz	short loc_411E9A
mov	ecx, [esi+38h]
test	ecx, ecx
jz	short loc_411E9A
call	sub_40E6A6
test	al, al
jnz	short loc_411E95
mov	ecx, [esi+38h]
call	sub_40E6B1
test	al, al
jz	short loc_411E91
cmp	dword ptr [esi+20h], 0
jge	short loc_411E95

loc_411E91:
xor	eax, eax
pop	esi
retn

loc_411E95:
push	1
pop	eax
pop	esi
retn

loc_411E9A:
xor	al, al
pop	esi
retn
sub_411E66 endp



; Attributes: bp-based frame

sub_411E9E proc	near

Memory=	dword ptr -28h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_444578
call	__EH_prolog
sub	esp, 1Ch
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
cmp	[esi+38h], ebx
jz	short loc_411EBF
call	sub_411E66
test	al, al
jnz	short loc_411EC6

loc_411EBF:
xor	al, al
jmp	loc_411FA7

loc_411EC6:
push	edi
push	3
lea	ecx, [ebp+var_1C]
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_403396
mov	ecx, [esi+38h]
mov	[ebp+var_4], ebx
call	sub_40E6A6
test	al, al
jz	short loc_411F18
mov	ecx, [esi+38h]
lea	eax, [ebp+Memory]
push	eax
call	sub_40E775
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 1
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
cmp	[ebp+var_18], ebx
pop	ecx
jnz	short loc_411F4F
jmp	loc_411F9B

loc_411F18:
mov	ecx, [esi+38h]
call	sub_40E6B1
test	al, al
jz	short loc_411F9B
cmp	[esi+20h], ebx
jl	short loc_411F9B
push	5Ch
lea	edx, [esi+2Ch]
lea	ecx, [ebp+Memory]
call	sub_409999
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 2
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx

loc_411F4F:
mov	eax, [esi+14h]
cmp	eax, ebx
jz	short loc_411F9B
xor	edi, edi
cmp	eax, ebx
jle	short loc_411F99

loc_411F5C:
mov	eax, [esi+18h]
push	[ebp+var_18]
mov	ecx, [eax+edi*4]
lea	eax, [ebp+Memory]
push	eax
call	sub_403228
mov	edx, [eax]
mov	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 3
call	sub_4282B1
push	[ebp+Memory]	; Memory
cmp	eax, ebx
setnz	[ebp+var_D]
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
cmp	[ebp+var_D], bl
pop	ecx
jnz	short loc_411F9B
inc	edi
cmp	edi, [esi+14h]
jl	short loc_411F5C

loc_411F99:
mov	bl, 1

loc_411F9B:		; Memory
push	[ebp+var_1C]
call	sub_4284D8
pop	ecx
mov	al, bl
pop	edi

loc_411FA7:
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_411E9E endp



; Attributes: bp-based frame

sub_411FB5 proc	near

arg_0= byte ptr	 8
arg_C= dword ptr  14h

push	ebp
mov	ebp, esp
push	esi
push	edi
mov	edi, ecx
cmp	byte ptr [edi+24h], 0
jz	short loc_412020
cmp	byte ptr [edi+25h], 0
jz	short loc_412020
call	sub_411E66
test	al, al
jz	short loc_411FD7
cmp	byte ptr [edi+3Dh], 0
jnz	short loc_411FDB

loc_411FD7:
and	[ebp+arg_C], 0FFFFFFFDh

loc_411FDB:
xor	esi, esi
test	[ebp+arg_0], 8
jz	short loc_411FEB
mov	esi, [ebp+arg_C]
and	esi, 1
jmp	short loc_411FF7

loc_411FEB:
test	[ebp+arg_0], 4
jz	short loc_411FFB
mov	esi, [ebp+arg_C]
and	esi, 2

loc_411FF7:
test	esi, esi
jnz	short loc_41201C

loc_411FFB:
test	byte ptr [ebp+arg_C], 1
jz	short loc_412004
push	1
pop	esi

loc_412004:
test	byte ptr [ebp+arg_C], 2
jz	short loc_412018
mov	ecx, edi
call	sub_411E9E
test	al, al
jz	short loc_412018
push	2
pop	esi

loc_412018:
test	esi, esi
jz	short loc_412020

loc_41201C:
mov	eax, esi
jmp	short loc_412022

loc_412020:
xor	eax, eax

loc_412022:
pop	edi
pop	esi
pop	ebp
retn	10h
sub_411FB5 endp



; Attributes: bp-based frame

sub_412028 proc	near

Memory=	dword ptr -1Ch
var_18=	dword ptr -18h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_44458C
call	__EH_prolog
sub	esp, 10h
push	esi
push	edi
xor	edi, edi
mov	esi, ecx
mov	[ebp+var_10], edi
call	sub_411E66
test	al, al
jnz	short loc_41205F
mov	esi, [ebp+arg_0]
push	3
mov	ecx, esi
mov	[esi], edi
mov	[esi+4], edi
mov	[esi+8], edi
call	sub_403396
mov	eax, esi
jmp	short loc_4120C0

loc_41205F:
mov	eax, [esi+38h]
lea	ecx, [ebp+Memory]
add	eax, 0D8h
push	eax
call	sub_4030F2
mov	ecx, [esi+38h]
mov	[ebp+var_4], edi
call	sub_40E6B1
test	al, al
jz	short loc_412088
mov	eax, [ebp+Memory]
mov	[ebp+var_18], edi
mov	[eax], di

loc_412088:
cmp	[esi+28h], edi
jl	short loc_4120A8
cmp	[esi+30h], edi
jz	short loc_4120A8
add	esi, 2Ch
lea	ecx, [ebp+Memory]
push	esi
call	sub_4031F2
push	5Ch
lea	ecx, [ebp+Memory]
call	sub_40316A

loc_4120A8:
mov	ecx, [ebp+arg_0]
lea	eax, [ebp+Memory]
push	eax
call	sub_4030F2
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+arg_0]
pop	ecx

loc_4120C0:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_412028 endp



; Attributes: bp-based frame

sub_4120D0 proc	near

var_44=	word ptr -44h
var_40=	dword ptr -40h
var_3C=	dword ptr -3Ch
var_38=	dword ptr -38h
var_34=	dword ptr -34h
Memory=	dword ptr -30h
var_24=	dword ptr -24h
hMem= 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_4= dword ptr -4
arg_0= byte ptr	 8

mov	eax, offset loc_4445A8
call	__EH_prolog
sub	esp, 38h
push	ebx
push	esi
push	lpszFormat	; lpszFormat
mov	esi, ecx
call	ds:RegisterClipboardFormatA
or	[ebp+var_38], 0FFFFFFFFh
push	1
mov	[ebp+var_44], ax
pop	eax
xor	ebx, ebx
push	3
lea	ecx, [ebp+var_18]
mov	[ebp+var_40], ebx
mov	[ebp+var_3C], eax
mov	[ebp+var_34], eax
mov	[ebp+var_24], eax
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_403396
cmp	[ebp+arg_0], bl
mov	[ebp+var_4], ebx
jz	short loc_412148
lea	eax, [ebp+Memory]
mov	ecx, esi
push	eax
call	sub_412028
push	eax
lea	ecx, [ebp+var_18]
mov	byte ptr [ebp+var_4], 1
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx

loc_412148:
mov	eax, [ebp+var_14]
lea	eax, [eax+eax+2]
push	eax		; dwBytes
push	2042h		; uFlags
call	ds:GlobalAlloc
cmp	eax, ebx
mov	[ebp+hMem], eax
jz	short loc_4121C1
push	eax		; hMem
call	ds:GlobalLock
cmp	eax, ebx
jnz	short loc_412178
push	[ebp+hMem]	; hMem
call	ds:GlobalUnlock
jmp	short loc_4121C1

loc_412178:
mov	edx, [ebp+var_18]
mov	cx, [edx]
mov	[eax], cx
add	eax, 2

loc_412184:
inc	edx
inc	edx
cmp	cx, bx
jz	short loc_412195
mov	cx, [edx]
mov	[eax], cx
inc	eax
inc	eax
jmp	short loc_412184

loc_412195:		; hMem
push	[ebp+hMem]
call	ds:GlobalUnlock
mov	eax, [esi+8]
lea	edx, [ebp+var_24]
push	ebx
push	edx
mov	ecx, [eax]
lea	edx, [ebp+var_44]
push	edx
push	eax
call	dword ptr [ecx+1Ch]
push	[ebp+hMem]	; hMem
mov	ebx, eax
neg	ebx
sbb	bl, bl
inc	bl
call	ds:GlobalFree

loc_4121C1:		; Memory
push	[ebp+var_18]
call	sub_4284D8
pop	ecx
mov	al, bl
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_4120D0 endp




sub_4121DC proc	near
push	esi
mov	esi, ecx
cmp	byte ptr [esi+24h], 0
jz	short loc_4121F9
cmp	byte ptr [esi+25h], 0
jz	short loc_4121F9
call	sub_411E66
test	al, al
jz	short loc_4121F9
push	1
pop	eax
jmp	short loc_4121FB

loc_4121F9:
xor	eax, eax

loc_4121FB:
push	eax
mov	ecx, esi
call	sub_4120D0
mov	[esi+3Dh], al
pop	esi
retn
sub_4121DC endp



; Attributes: bp-based frame

sub_412208 proc	near

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
mov	ecx, [ebp+arg_4]
push	esi
mov	esi, [ebp+arg_0]
lea	edx, [esi+0Ch]
call	sub_412246
push	[ebp+arg_4]
mov	ecx, esi
call	sub_411BB2
push	[ebp+arg_4]
lea	ecx, [esi+8]
call	sub_43D0DB
push	[ebp+arg_14]
mov	eax, [esi]
push	[ebp+arg_10]
push	[ebp+arg_C]
push	[ebp+arg_8]
push	esi
call	dword ptr [eax+10h]
pop	esi
pop	ebp
retn	18h
sub_412208 endp



; Attributes: bp-based frame

sub_412246 proc	near

var_3C=	word 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
hMem= dword ptr	-24h
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_4= dword ptr -4

mov	eax, offset loc_4445C4
call	__EH_prolog
sub	esp, 30h
push	ebx
push	esi
mov	esi, ecx
mov	[ebp+var_14], edx
mov	ecx, edx
call	sub_428327
mov	eax, [esi]
and	[ebp+var_38], 0
push	1
or	[ebp+var_30], 0FFFFFFFFh
pop	ebx
lea	ecx, [ebp+var_28]
push	ecx
lea	ecx, [ebp+var_3C]
push	ecx
push	esi
mov	[ebp+var_3C], 0Fh
mov	[ebp+var_34], ebx
mov	[ebp+var_2C], ebx
call	dword ptr [eax+0Ch]
test	eax, eax
jnz	short loc_4122FD
cmp	[ebp+var_28], ebx
jnz	short loc_4122FD
and	[ebp+var_10], eax
and	[ebp+var_4], eax
mov	esi, [ebp+hMem]
lea	ecx, [ebp+var_10]
call	sub_42C4A4
mov	[ebp+var_10], esi
push	[ebp+hMem]	; hMem
call	ds:GlobalSize
mov	esi, eax
mov	eax, [ebp+hMem]
push	eax		; hMem
mov	[ebp+var_1C], eax
call	ds:GlobalLock
mov	[ebp+var_18], eax
test	eax, eax
mov	byte ptr [ebp+var_4], bl
jz	short loc_4122F1
mov	ecx, [eax]
cmp	esi, ecx
jb	short loc_4122E8
push	[ebp+var_14]
sub	esi, ecx
add	ecx, eax
cmp	dword ptr [eax+10h], 0
mov	edx, esi
jz	short loc_4122E3
shr	edx, 1
call	sub_41230B
jmp	short loc_4122E8

loc_4122E3:
call	sub_41238F

loc_4122E8:		; hMem
push	[ebp+var_1C]
call	ds:GlobalUnlock

loc_4122F1:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_10]
call	sub_42C4A4

loc_4122FD:
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_412246 endp



; Attributes: bp-based frame

sub_41230B proc	near

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

mov	eax, offset loc_4445D8
call	__EH_prolog
sub	esp, 0Ch
push	ebx
push	esi
push	edi
mov	edi, ecx
mov	ecx, [ebp+arg_0]
mov	ebx, edx
call	sub_428327
xor	esi, esi
lea	ecx, [ebp+Memory]
push	3
mov	[ebp+Memory], esi
mov	[ebp+var_14], esi
mov	[ebp+var_10], esi
call	sub_403396
cmp	ebx, esi
mov	[ebp+var_4], esi
jbe	short loc_412375

loc_412343:
mov	ax, [edi]
inc	edi
inc	edi
cmp	ax, si
jnz	short loc_412369
cmp	[ebp+var_14], esi
jz	short loc_412375
mov	ecx, [ebp+arg_0]
lea	eax, [ebp+Memory]
push	eax
call	sub_4032B4
mov	eax, [ebp+Memory]
mov	[ebp+var_14], esi
mov	[eax], si
jmp	short loc_412372

loc_412369:
push	eax
lea	ecx, [ebp+Memory]
call	sub_40316A

loc_412372:
dec	ebx
jnz	short loc_412343

loc_412375:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_41230B endp



; Attributes: bp-based frame

sub_41238F proc	near

Memory=	dword ptr -28h
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_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4445F4
call	__EH_prolog
sub	esp, 1Ch
push	ebx
push	esi
mov	esi, ecx
push	edi
mov	ecx, [ebp+arg_0]
mov	edi, edx
call	sub_428327
xor	ebx, ebx
lea	ecx, [ebp+var_1C]
push	3
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_4034E3
cmp	edi, ebx
mov	[ebp+var_4], ebx
jbe	short loc_412412

loc_4123C7:
mov	al, [esi]
inc	esi
cmp	al, bl
mov	byte ptr [ebp+var_10], al
jnz	short loc_412404
cmp	[ebp+var_18], ebx
jz	short loc_412412
lea	edx, [ebp+var_1C]
lea	ecx, [ebp+Memory]
call	sub_41242C
mov	ecx, [ebp+arg_0]
push	eax
mov	byte ptr [ebp+var_4], 1
call	sub_4032B4
mov	byte ptr [ebp+var_4], bl
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_1C]
mov	[ebp+var_18], ebx
pop	ecx
mov	[eax], bl
jmp	short loc_41240F

loc_412404:
push	[ebp+var_10]
lea	ecx, [ebp+var_1C]
call	sub_412848

loc_41240F:
dec	edi
jnz	short loc_4123C7

loc_412412:		; Memory
push	[ebp+var_1C]
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_41238F endp




sub_41242C proc	near

var_4= dword ptr -4

push	ecx
and	[esp+4+var_4], 0
push	esi
mov	esi, ecx
push	0		; CodePage
call	sub_42850B
mov	eax, esi
pop	esi
pop	ecx
retn
sub_41242C endp



; Attributes: bp-based frame

sub_412441 proc	near

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
mov	ecx, [ebp+arg_0]
push	esi
push	[ebp+arg_C]
push	[ebp+arg_8]
call	sub_411C4D
mov	ecx, [ebp+arg_0]
call	sub_4121DC
mov	esi, [ebp+arg_10]
mov	ecx, [ebp+arg_0]
push	dword ptr [esi]
push	[ebp+arg_C]
push	[ebp+arg_8]
push	[ebp+arg_4]
call	sub_411FB5
mov	[esi], eax
xor	eax, eax
pop	esi
pop	ebp
retn	14h
sub_412441 endp




sub_41247A proc	near

arg_0= dword ptr  4

push	esi
mov	esi, [esp+4+arg_0]
mov	ecx, esi
call	sub_411BED
push	0
mov	ecx, esi
call	sub_4120D0
mov	eax, [esi+8]
test	eax, eax
jz	short loc_4124A0
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
and	dword ptr [esi+8], 0

loc_4124A0:
xor	eax, eax
pop	esi
retn	4
sub_41247A endp



; Attributes: bp-based frame

sub_4124A6 proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_444608
call	__EH_prolog
sub	esp, 0Ch
push	ebx
push	esi
mov	esi, [ebp+arg_0]
push	[ebp+arg_4]
mov	ecx, esi
call	sub_411BB2
push	[ebp+arg_10]
mov	ecx, esi
push	[ebp+arg_C]
call	sub_411C4D
push	[ebp+arg_4]
lea	ecx, [esi+8]
mov	[ebp+arg_0], ecx
call	sub_43D0DB
cmp	byte ptr [esi+24h], 0
mov	bl, 1
jz	short loc_412505
cmp	byte ptr [esi+25h], 0
jz	short loc_412505
mov	ecx, esi
call	sub_411E66
test	al, al
jz	short loc_412505
mov	ecx, esi
call	sub_4121DC
mov	bl, al
neg	bl
sbb	bl, bl
inc	bl

loc_412505:
push	edi
mov	edi, [ebp+arg_14]
mov	ecx, esi
push	dword ptr [edi]
push	[ebp+arg_10]
push	[ebp+arg_C]
push	[ebp+arg_8]
call	sub_411FB5
mov	[edi], eax
cmp	byte ptr [esi+24h], 0
pop	edi
jz	short loc_412580
cmp	byte ptr [esi+25h], 0
jz	short loc_412580
test	bl, bl
jz	short loc_412580
lea	eax, [ebp+Memory]
mov	ecx, esi
push	eax
call	sub_412028
and	[ebp+var_4], 0
cmp	byte ptr [esi+3Ch], 0
jz	short loc_412564
mov	ecx, [esi+38h]
test	ecx, ecx
jz	short loc_412564
call	sub_40E6A6
test	al, al
jz	short loc_412564
mov	eax, [esi+38h]
lea	ecx, [ebp+Memory]
add	eax, 0D8h
push	eax
call	sub_40312C

loc_412564:
mov	ecx, [esi+38h]
lea	eax, [ebp+Memory]
push	eax
push	[ebp+arg_4]
call	sub_4125AB
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx

loc_412580:
mov	ecx, esi
call	sub_411BED
mov	esi, [ebp+arg_0]
mov	eax, [esi]
test	eax, eax
jz	short loc_412599
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
and	dword ptr [esi], 0

loc_412599:
mov	ecx, [ebp+var_C]
pop	esi
xor	eax, eax
pop	ebx
mov	large fs:0, ecx
leave
retn	18h
sub_4124A6 endp



; Attributes: bp-based frame

sub_4125AB proc	near

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_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_444624
call	__EH_prolog
sub	esp, 14h
push	esi
xor	eax, eax
mov	esi, offset off_44B510
push	edi
mov	edi, ecx
mov	[ebp+var_1C], eax
mov	[ebp+var_18], eax
mov	[ebp+var_14], eax
mov	[ebp+var_10], 4
mov	[ebp+var_20], esi
mov	ecx, [ebp+arg_0]
lea	edx, [ebp+var_20]
mov	[ebp+var_4], eax
call	sub_412246
push	[ebp+arg_4]
lea	eax, [ebp+var_20]
mov	ecx, edi
push	eax
call	sub_412620
mov	[ebp+var_20], esi
lea	ecx, [ebp+var_20]
mov	[ebp+var_4], 1
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_20]
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_4125AB endp



; Attributes: bp-based frame

sub_412620 proc	near

var_30=	dword ptr -30h
Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_444648
call	__EH_prolog
sub	esp, 24h
push	esi
mov	esi, [ebp+arg_0]
push	edi
mov	edi, ecx
mov	eax, [esi+8]
test	eax, eax
jz	loc_41270C
call	sub_40E6A6
test	al, al
jnz	short loc_41265E
mov	ecx, edi
call	sub_40E872
neg	al
sbb	al, al
inc	al
mov	byte ptr [ebp+arg_0+3],	al
jz	loc_412704

loc_41265E:
push	[ebp+arg_4]
lea	ecx, [ebp+var_18]
call	sub_4030F2
and	[ebp+var_4], 0
cmp	[ebp+var_14], 0
jnz	short loc_41269D
mov	eax, [esi+0Ch]
lea	edx, [ebp+var_18]
mov	eax, [eax]
mov	eax, [eax]
mov	ecx, eax
call	sub_42AAF6
lea	ecx, [ebp+var_18]
call	sub_41271C
test	al, al
jz	short loc_41269D
push	offset aC	; "C:\\\\"
lea	ecx, [ebp+var_18]
call	sub_404722

loc_41269D:
mov	eax, [esi+8]
mov	ecx, [esi+0Ch]
cmp	eax, 1
push	0
mov	edx, [ecx]
lea	ecx, [ebp+var_30]
setnle	al
push	eax
call	sub_432457
push	offset word_45D498
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_403091
mov	ecx, esi
mov	byte ptr [ebp+var_4], 2
call	sub_4127A6
push	eax
push	1
push	0
lea	eax, [ebp+Memory]
push	esi
push	eax
lea	edx, [ebp+var_30]
lea	ecx, [ebp+var_18]
call	sub_432B68
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_30]	; Memory
call	sub_4284D8
push	[ebp+var_18]	; Memory
call	sub_4284D8
add	esp, 0Ch
jmp	short loc_41270C

loc_412704:
push	esi
mov	ecx, edi
call	loc_40FF8C

loc_41270C:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_412620 endp



; Attributes: bp-based frame

sub_41271C proc	near

var_24=	dword ptr -24h
Memory=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_444664
call	__EH_prolog
sub	esp, 18h
push	esi
push	edi
mov	esi, ecx
xor	edi, edi
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], edi
mov	[ebp+var_14], edi
mov	[ebp+var_10], edi
call	sub_403396
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], edi
call	sub_42AB81
test	al, al
jz	short loc_412756
cmp	[ebp+var_14], edi
jnz	short loc_412763

loc_412756:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
xor	al, al
jmp	short loc_412798

loc_412763:
push	[ebp+var_14]
lea	eax, [ebp+var_24]
mov	ecx, esi
push	eax
call	sub_403228
mov	edx, [eax]
mov	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_4282B1
mov	esi, eax
push	[ebp+var_24]	; Memory
call	sub_4284D8
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
cmp	esi, edi
pop	ecx
setz	al

loc_412798:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_41271C endp



; Attributes: bp-based frame

sub_4127A6 proc	near

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

mov	eax, offset loc_444680
call	__EH_prolog
sub	esp, 18h
push	ebx
push	esi
mov	esi, ecx
push	edi
xor	ebx, ebx
push	3
lea	ecx, [ebp+var_18]
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_403396
lea	ecx, [ebp+var_18]
mov	[ebp+var_4], ebx
call	sub_42AB81
test	al, al
jz	short loc_412828
cmp	[ebp+var_14], ebx
jz	short loc_412828
xor	edi, edi
cmp	[esi+8], ebx
jle	short loc_412828
jmp	short loc_4127EC

loc_4127EA:
xor	ebx, ebx

loc_4127EC:
mov	eax, [esi+0Ch]
push	[ebp+var_14]
mov	ecx, [eax+edi*4]
lea	eax, [ebp+Memory]
push	eax
call	sub_403228
mov	edx, [eax]
mov	ecx, [ebp+var_18]
mov	byte ptr [ebp+var_4], 1
call	sub_4282B1
cmp	eax, ebx
push	[ebp+Memory]	; Memory
setz	bl
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
test	bl, bl
pop	ecx
jnz	short loc_412844
inc	edi
cmp	edi, [esi+8]
jl	short loc_4127EA

loc_412828:
xor	bl, bl

loc_41282A:		; Memory
push	[ebp+var_18]
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
mov	al, bl
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn

loc_412844:
mov	bl, 1
jmp	short loc_41282A
sub_4127A6 endp




sub_412848 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
push	1
call	sub_412941
mov	eax, [esi]
mov	ecx, [esi+4]
mov	dl, [esp+4+arg_0]
mov	[eax+ecx], dl
inc	dword ptr [esi+4]
mov	eax, [esi+4]
mov	ecx, [esi]
and	byte ptr [eax+ecx], 0
mov	eax, esi
pop	esi
retn	4
sub_412848 endp



; Attributes: bp-based frame

sub_412870 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_444694
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44C320
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_412870 endp



; Attributes: bp-based frame

sub_4128A8 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset unknown_libname_19 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	0Ch		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_10], ecx
xor	eax, eax
cmp	ecx, eax
mov	[ebp+var_4], eax
jz	short loc_4128D4
push	[ebp+arg_0]
call	sub_4128EF

loc_4128D4:
or	[ebp+var_4], 0FFFFFFFFh
push	eax
mov	ecx, esi
call	sub_429907
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_4128A8 endp




sub_4128EF proc	near

arg_0= dword ptr  4

push	esi
push	edi
mov	edi, [esp+8+arg_0]
mov	esi, ecx
and	dword ptr [esi], 0
and	dword ptr [esi+4], 0
and	dword ptr [esi+8], 0
push	dword ptr [edi+4]
call	sub_4034E3
mov	ecx, [edi]
mov	eax, [esi]

loc_41290E:
mov	dl, [ecx]
mov	[eax], dl
inc	eax
inc	ecx
test	dl, dl
jnz	short loc_41290E
mov	eax, [edi+4]
pop	edi
mov	[esi+4], eax
mov	eax, esi
pop	esi
retn	4
sub_4128EF endp




; int __thiscall sub_412925(void *Memory, char)
sub_412925 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_412870
test	[esp+4+arg_0], 1
jz	short loc_41293B
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_41293B:
mov	eax, esi
pop	esi
retn	4
sub_412925 endp




sub_412941 proc	near

arg_0= dword ptr  4

push	ebx
push	esi
push	edi
mov	edi, [ecx+8]
mov	ebx, [esp+0Ch+arg_0]
mov	esi, edi
sub	esi, [ecx+4]
dec	esi
cmp	ebx, esi
jle	short loc_412985
cmp	edi, 40h
jle	short loc_412963
mov	eax, edi
cdq
sub	eax, edx
sar	eax, 1
jmp	short loc_412972

loc_412963:
xor	eax, eax
cmp	edi, 8
setle	al
dec	eax
and	eax, 0Ch
add	eax, 4

loc_412972:
lea	edx, [eax+esi]
cmp	edx, ebx
jge	short loc_41297D
sub	ebx, esi
mov	eax, ebx

loc_41297D:
add	edi, eax
push	edi
call	sub_4034E3

loc_412985:
pop	edi
pop	esi
pop	ebx
retn	4
sub_412941 endp



; Attributes: bp-based frame

sub_41298B proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset unknown_libname_20 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	esi
push	edi
mov	edi, ecx
mov	eax, [edi+0FCh]
lea	esi, [edi+0FCh]
test	eax, eax
jz	short loc_4129B3
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
and	dword ptr [esi], 0

loc_4129B3:
lea	ecx, [edi+0F8h]
call	sub_429929
push	4Ch		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_10], ecx
and	[ebp+var_4], 0
test	ecx, ecx
jz	short loc_4129DC
call	sub_4129FF
mov	edi, eax
jmp	short loc_4129DE

loc_4129DC:
xor	edi, edi

loc_4129DE:
or	[ebp+var_4], 0FFFFFFFFh
push	edi
mov	ecx, esi
call	sub_43D0DB
mov	ecx, edi
call	sub_41ECDC
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_41298B endp




sub_4129FF proc	near
push	esi
mov	esi, ecx
push	offset sub_406E76 ; void (__thiscall *)(void *)
push	offset sub_403079 ; int
push	4		; int
lea	eax, [esi+0Ch]
mov	dword ptr [esi], offset	off_44BC00
push	0Ch		; unsigned int
mov	dword ptr [esi+4], offset off_44BB94
and	dword ptr [esi+8], 0
push	eax		; void *
call	??_L@YGXPAXIHP6EX0@Z1@Z	; `eh vector constructor iterator'(void *,uint,int,void (*)(void *),void (*)(void *))
mov	dword ptr [esi], offset	off_44C338
mov	dword ptr [esi+4], offset off_44C328
mov	eax, esi
pop	esi
retn
sub_4129FF endp



; Attributes: bp-based frame

; int __stdcall	sub_412A3B(int,	void *Buf1, int)
sub_412A3B proc	near

arg_0= dword ptr  8
Buf1= dword ptr	 0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
push	10h		; Size
push	offset unk_44CCB8 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jz	short loc_412A6A
push	10h		; Size
push	offset unk_44B690 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_412A87

loc_412A6A:
mov	eax, [ebp+arg_0]
mov	ecx, eax
push	eax
neg	ecx
lea	edx, [eax+4]
sbb	ecx, ecx
and	ecx, edx
mov	edx, [ebp+arg_8]
mov	[edx], ecx
mov	ecx, [eax]
call	dword ptr [ecx+4]
xor	eax, eax
jmp	short loc_412A8C

loc_412A87:
mov	eax, 80004002h

loc_412A8C:
pop	ebp
retn	0Ch
sub_412A3B endp




; int __stdcall	sub_412A90(void	*Memory)
sub_412A90 proc	near

Memory=	dword ptr  4

push	esi
mov	esi, [esp+4+Memory]
dec	dword ptr [esi+8]
mov	eax, [esi+8]
jnz	short loc_412AB1
test	esi, esi
jz	short loc_412AAF
mov	ecx, esi
call	sub_412AB5
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_412AAF:
xor	eax, eax

loc_412AB1:
pop	esi
retn	4
sub_412A90 endp




sub_412AB5 proc	near
push	offset sub_406E76 ; void (__thiscall *)(void *)
push	4		; int
add	ecx, 0Ch
push	0Ch		; unsigned int
push	ecx		; void *
call	??_M@YGXPAXIHP6EX0@Z@Z ; `eh vector destructor iterator'(void *,uint,int,void (*)(void *))
retn
sub_412AB5 endp



; Attributes: bp-based frame

sub_412AC8 proc	near

var_A0=	byte ptr -0A0h
var_80=	dword ptr -80h
var_78=	dword ptr -78h
var_68=	dword ptr -68h
var_60=	dword ptr -60h
var_5C=	dword ptr -5Ch
var_54=	dword ptr -54h
var_4C=	dword ptr -4Ch
var_48=	dword ptr -48h
var_40=	byte ptr -40h
var_3F=	byte ptr -3Fh
var_3C=	dword ptr -3Ch
var_38=	dword ptr -38h
var_34=	dword ptr -34h
var_30=	dword ptr -30h
Memory=	dword ptr -2Ch
var_28=	dword ptr -28h
var_24=	dword ptr -24h
lpFileName= dword ptr -20h
var_1C=	dword ptr -1Ch
var_11=	byte ptr -11h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_44475B
call	__EH_prolog
sub	esp, 94h
mov	eax, [ebp+arg_8]
push	ebx
xor	ebx, ebx
push	esi
mov	[eax], bl
mov	eax, [ebp+arg_C]
mov	esi, ecx
push	edi
lea	ecx, [ebp+var_40]
mov	[eax], bl
mov	[ebp+var_3C], esi
call	sub_4028C8
mov	eax, [esi+0ECh]
mov	[ebp+var_4], ebx
cmp	eax, ebx
jle	loc_412C7B
mov	ecx, [esi+0F0h]
mov	edi, [ecx+eax*4-4]
mov	ecx, [ebp+arg_0]
lea	eax, [ebp+Memory]
push	dword ptr [edi+88h]
push	eax
call	sub_403228
mov	edx, [edi+84h]
mov	ecx, [eax]
mov	byte ptr [ebp+var_4], 1
call	sub_42828A
push	[ebp+Memory]	; Memory
cmp	eax, ebx
setz	[ebp+var_11]
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
cmp	[ebp+var_11], bl
pop	ecx
jz	loc_412C7B
add	esi, 0FCh

loc_412B53:
mov	[ebp+arg_C], ebx
mov	eax, [esi]
lea	edx, [ebp+arg_C]
push	edx
push	eax
mov	ecx, [eax]
mov	byte ptr [ebp+var_4], 2
call	dword ptr [ecx+20h]
mov	ecx, [ebp+arg_C]
cmp	ecx, ebx
jz	short loc_412B8B
cmp	eax, ebx
jnz	short loc_412B8B
push	ecx
mov	ecx, esi
call	sub_43D0DB
mov	eax, [ebp+arg_C]
mov	byte ptr [ebp+var_4], bl
cmp	eax, ebx
jz	short loc_412B53
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
jmp	short loc_412B53

loc_412B8B:
cmp	ecx, ebx
mov	byte ptr [ebp+var_4], bl
jz	short loc_412B98
mov	eax, [ecx]
push	ecx
call	dword ptr [eax+8]

loc_412B98:
lea	ecx, [ebp+var_68]
call	sub_40337B
mov	[ebp+var_68], offset off_44B510
push	dword ptr [edi+88h]
mov	ecx, [ebp+arg_0]
lea	eax, [ebp+Memory]
mov	byte ptr [ebp+var_4], 3
push	eax
call	sub_405246
lea	edx, [ebp+var_68]
mov	ecx, eax
mov	byte ptr [ebp+var_4], 4
call	sub_428DBB
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	edx, [ebp+var_60]
pop	ecx
cmp	edx, ebx
mov	[ebp+arg_0], ebx
jle	short loc_412C4A

loc_412BDE:
mov	eax, [ebp+var_5C]
mov	ecx, [ebp+arg_0]
cmp	ecx, ebx
mov	eax, [eax+ecx*4]
jz	short loc_412BF0
dec	edx
cmp	ecx, edx
jnz	short loc_412BF5

loc_412BF0:
cmp	[eax+4], ebx
jz	short loc_412C2F

loc_412BF5:
mov	[ebp+arg_C], ebx
mov	ecx, [eax]
mov	eax, [esi]
lea	edi, [ebp+arg_C]
mov	byte ptr [ebp+var_4], 5
mov	edx, [eax]
push	edi
push	ecx
push	eax
call	dword ptr [edx+18h]
mov	ecx, [ebp+arg_C]
cmp	ecx, ebx
jz	short loc_412C3C
cmp	eax, ebx
jnz	short loc_412C3C
push	ecx
mov	ecx, esi
call	sub_43D0DB
mov	eax, [ebp+arg_C]
mov	byte ptr [ebp+var_4], 3
cmp	eax, ebx
jz	short loc_412C2F
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_412C2F:
mov	edx, [ebp+var_60]
inc	[ebp+arg_0]
cmp	[ebp+arg_0], edx
jl	short loc_412BDE
jmp	short loc_412C4A

loc_412C3C:
cmp	ecx, ebx
mov	byte ptr [ebp+var_4], 3
jz	short loc_412C4A
mov	eax, [ecx]
push	ecx
call	dword ptr [eax+8]

loc_412C4A:
mov	[ebp+var_68], offset off_44B510
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 6
call	sub_428327
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], bl
call	sub_4282FE
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_40]
call	sub_4028F2
xor	eax, eax
jmp	loc_412F99

loc_412C7B:
mov	ecx, esi
call	sub_413EF8
push	[ebp+arg_0]
lea	ecx, [ebp+lpFileName]
call	sub_4030F2
lea	ecx, [ebp+var_78]
mov	byte ptr [ebp+var_4], 7
call	sub_403079
lea	ecx, [ebp+var_54]
mov	byte ptr [ebp+var_4], 8
call	sub_40337B
mov	[ebp+var_54], offset off_44B510
mov	byte ptr [ebp+var_4], 9

loc_412CB0:
cmp	[ebp+var_1C], ebx
jz	loc_412D62
push	[ebp+lpFileName] ; lpFileName
lea	ecx, [ebp+var_A0]
call	sub_42B49E
test	al, al
jnz	loc_412D62
mov	edx, [ebp+var_1C]
mov	ecx, [ebp+lpFileName]
cmp	edx, ebx
jz	short loc_412CFA
lea	eax, [ecx+edx*2-2]

loc_412CDD:
cmp	word ptr [eax],	5Ch
jz	short loc_412CEB
cmp	eax, ecx
jz	short loc_412CF3
dec	eax
dec	eax
jmp	short loc_412CDD

loc_412CEB:
sub	eax, ecx
sar	eax, 1
mov	edi, eax
jmp	short loc_412CF6

loc_412CF3:
or	edi, 0FFFFFFFFh

loc_412CF6:
cmp	edi, ebx
jge	short loc_412D02

loc_412CFA:
mov	[ebp+var_1C], ebx
mov	[ecx], bx
jmp	short loc_412CB0

loc_412D02:
cmp	[ebp+var_4C], ebx
jg	short loc_412D0C
dec	edx
cmp	edi, edx
jge	short loc_412D36

loc_412D0C:
lea	eax, [edi+1]
lea	ecx, [ebp+lpFileName]
push	eax
lea	eax, [ebp+Memory]
push	eax
call	sub_405246
push	eax
lea	ecx, [ebp+var_54]
mov	byte ptr [ebp+var_4], 0Ah
call	sub_4032B4
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 9
call	sub_4284D8
pop	ecx

loc_412D36:
lea	eax, [ebp+var_38]
push	edi
push	eax
lea	ecx, [ebp+lpFileName]
call	sub_403228
push	eax
lea	ecx, [ebp+lpFileName]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_40312C
push	[ebp+var_38]	; Memory
mov	byte ptr [ebp+var_4], 9
call	sub_4284D8
pop	ecx
jmp	loc_412CB0

loc_412D62:
mov	ecx, esi
call	sub_41298B
mov	[ebp+var_10], ebx
cmp	[ebp+var_1C], ebx
mov	byte ptr [ebp+var_4], 0Ch
jnz	short loc_412DA4
mov	eax, [ebp+arg_0]
add	esi, 0FCh
lea	edi, [ebp+var_10]
mov	ecx, [eax]
mov	eax, [esi]
push	edi
push	ecx
mov	edx, [eax]
push	eax
call	dword ptr [edx+18h]

loc_412D8D:
test	eax, eax
jnz	loc_412F3D
push	[ebp+var_10]
mov	ecx, esi
call	sub_43D0DB
jmp	loc_412F3D

loc_412DA4:
mov	eax, [ebp+var_80]
shr	eax, 4
test	al, 1
jz	short loc_412DD1
lea	ecx, [ebp+lpFileName]
call	sub_42C33B
mov	eax, [esi+0FCh]
add	esi, 0FCh
lea	edx, [ebp+var_10]
mov	ecx, [eax]
push	edx
push	[ebp+lpFileName]
push	eax
call	dword ptr [ecx+18h]
jmp	short loc_412D8D

loc_412DD1:
push	3
lea	ecx, [ebp+var_38]
mov	[ebp+var_38], ebx
mov	[ebp+var_34], ebx
mov	[ebp+var_30], ebx
call	sub_403396
mov	ecx, [ebp+lpFileName]
lea	edx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 0Dh
call	sub_42AAF6
test	al, al
jnz	short loc_412E00
mov	eax, [ebp+var_38]
mov	[ebp+var_34], ebx
mov	[eax], bx

loc_412E00:
mov	eax, [esi+0FCh]
lea	edi, [esi+0FCh]
lea	edx, [ebp+var_10]
mov	ecx, [eax]
push	edx
push	[ebp+var_38]
push	eax
call	dword ptr [ecx+18h]
test	eax, eax
jnz	loc_412F34
push	[ebp+var_10]
mov	ecx, edi
call	sub_43D0DB
mov	ecx, esi
call	sub_41320F
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], ebx
mov	[ebp+var_28], ebx
mov	[ebp+var_24], ebx
call	sub_403396
mov	ecx, [ebp+lpFileName]
lea	edx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 0Eh
call	sub_42AAA7
test	al, al
jz	loc_412F2B
push	[ebp+arg_C]
lea	eax, [ebp+Memory]
mov	ecx, esi
push	[ebp+arg_4]
push	eax
call	sub_41466D
mov	esi, eax
cmp	esi, 1
jz	loc_412F2B
cmp	esi, ebx
jz	short loc_412ED7
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_38]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_10]
pop	ecx
cmp	eax, ebx
pop	ecx
mov	byte ptr [ebp+var_4], 9
jz	short loc_412E9F
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_412E9F:
mov	[ebp+var_54], offset off_44B510
lea	ecx, [ebp+var_54]
mov	byte ptr [ebp+var_4], 0Fh
call	sub_428327
lea	ecx, [ebp+var_54]
mov	byte ptr [ebp+var_4], 8
call	sub_4282FE
push	[ebp+var_78]	; Memory
call	sub_4284D8
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
pop	ecx
mov	ebx, esi
pop	ecx
jmp	loc_412F7F

loc_412ED7:
mov	eax, [ebp+arg_8]
mov	byte ptr [eax],	1
mov	eax, [ebp+var_4C]
lea	esi, [eax-1]
cmp	esi, ebx
jl	short loc_412F2B

loc_412EE7:
mov	[ebp+arg_0], ebx
mov	eax, [ebp+var_48]
lea	edx, [ebp+arg_0]
push	edx
mov	byte ptr [ebp+var_4], 10h
mov	eax, [eax+esi*4]
mov	eax, [eax]
mov	[ebp+arg_C], eax
mov	eax, [edi]
push	[ebp+arg_C]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+18h]
cmp	[ebp+arg_0], ebx
jz	short loc_412F2B
push	[ebp+arg_0]
mov	ecx, edi
call	sub_43D0DB
mov	eax, [ebp+arg_0]
mov	byte ptr [ebp+var_4], 0Eh
cmp	eax, ebx
jz	short loc_412F28
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_412F28:
dec	esi
jns	short loc_412EE7

loc_412F2B:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx

loc_412F34:		; Memory
push	[ebp+var_38]
call	sub_4284D8
pop	ecx

loc_412F3D:
mov	eax, [ebp+var_10]
mov	byte ptr [ebp+var_4], 9
cmp	eax, ebx
jz	short loc_412F4E
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_412F4E:
mov	[ebp+var_54], offset off_44B510
lea	ecx, [ebp+var_54]
mov	byte ptr [ebp+var_4], 11h
call	sub_428327
lea	ecx, [ebp+var_54]
mov	byte ptr [ebp+var_4], 8
call	sub_4282FE
push	[ebp+var_78]	; Memory
call	sub_4284D8
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
pop	ecx
pop	ecx

loc_412F7F:
mov	ecx, [ebp+var_3C]
mov	al, [ebp+var_40]
mov	[ecx+184h], al
mov	eax, [ebp+var_3C]
mov	cl, [ebp+var_3F]
mov	[eax+185h], cl
mov	eax, ebx

loc_412F99:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	10h
sub_412AC8 endp



; Attributes: bp-based frame

sub_412FAA proc	near

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
Memory=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_18=	byte ptr -18h
var_17=	byte ptr -17h
var_14=	dword ptr -14h
var_E= byte ptr	-0Eh
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_444790
call	__EH_prolog
sub	esp, 2Ch
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
push	edi
mov	[ebp+var_14], esi
mov	al, [esi+184h]
mov	[ebp+var_18], al
mov	al, [esi+185h]
mov	[esi+184h], bl
mov	[ebp+var_17], al
mov	[esi+185h], bl
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], ebx
mov	[ebp+Memory], ebx
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
call	sub_403396
lea	eax, [ebp+var_D]
mov	ecx, esi
push	eax
lea	eax, [ebp+var_E]
push	eax
lea	eax, [ebp+Memory]
push	eax
mov	byte ptr [ebp+var_4], 1
push	[ebp+arg_0]
call	sub_412AC8
push	[ebp+Memory]	; Memory
mov	edi, eax
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
cmp	edi, ebx
pop	ecx
jz	short loc_413025
mov	ebx, edi
jmp	short loc_41308E

loc_413025:
mov	edi, offset off_44B510
mov	[ebp+var_34], ebx
mov	[ebp+var_30], ebx
mov	[ebp+var_2C], ebx
mov	[ebp+var_28], 4
mov	[ebp+var_38], edi
push	3
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 2
mov	[ebp+Memory], ebx
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
call	sub_403396
lea	eax, [ebp+var_38]
mov	ecx, esi
push	eax
push	1
lea	eax, [ebp+Memory]
push	0FFFFFFFFh
push	eax
mov	byte ptr [ebp+var_4], 3
call	sub_416958
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	[ebp+var_38], edi
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 4
call	sub_428327
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], bl
call	sub_4282FE

loc_41308E:
mov	al, [ebp+var_18]
mov	ecx, [ebp+var_C]
mov	[esi+184h], al
mov	al, [ebp+var_17]
mov	[esi+185h], al
pop	edi
mov	eax, ebx
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_412FAA endp




sub_4130B3 proc	near

arg_0= dword ptr  4

lea	eax, [ecx+0D8h]
mov	ecx, [ecx+3Ch]
push	eax
push	[esp+4+arg_0]
call	sub_4130C9
retn	4
sub_4130B3 endp



; Attributes: bp-based frame

sub_4130C9 proc	near

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

mov	eax, offset loc_4447AC
call	__EH_prolog
sub	esp, 10h
push	ebx
push	esi
mov	esi, ecx
push	edi
push	esi		; lpCriticalSection
mov	[ebp+var_10], esi
call	ds:EnterCriticalSection
mov	eax, [esi+20h]
mov	edi, [ebp+arg_0]
xor	ebx, ebx
cmp	eax, edi
mov	[ebp+var_4], ebx
jg	short loc_413128

loc_4130F4:
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_403396
lea	eax, [ebp+Memory]
lea	ecx, [esi+18h]
push	eax
mov	byte ptr [ebp+var_4], 1
call	sub_4032B4
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
cmp	[esi+20h], edi
pop	ecx
jle	short loc_4130F4

loc_413128:
mov	eax, [esi+24h]
push	[ebp+arg_4]
mov	ecx, [eax+edi*4]
call	sub_40312C
push	esi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_4130C9 endp



; Attributes: bp-based frame

sub_41314E proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4447C0
call	__EH_prolog
sub	esp, 0Ch
push	esi
mov	esi, ecx
push	[ebp+arg_0]
lea	eax, [ebp+Memory]
mov	ecx, [esi+3Ch]
push	eax
call	sub_40C368
and	[ebp+var_4], 0
push	eax
mov	ecx, esi
call	sub_412FAA
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
pop	esi
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn	4
sub_41314E endp



; Attributes: bp-based frame

sub_413191 proc	near

pvarg= VARIANTARG ptr -24h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4447EB
call	__EH_prolog
sub	esp, 18h
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
push	edi
mov	[ebp+var_14], esi
mov	[ebp+var_10], ebx
mov	word ptr [ebp+pvarg.anonymous_0], bx
mov	word ptr [ebp+pvarg.anonymous_0+2], bx
mov	eax, [edx]
push	1
pop	edi
lea	ecx, [ebp+pvarg]
push	ecx
push	3
push	edx
mov	[ebp+var_4], edi
call	dword ptr [eax+2Ch]
test	eax, eax
jnz	short loc_4131DF
cmp	word ptr [ebp+pvarg.anonymous_0], 8
jnz	short loc_4131DF
push	dword ptr [ebp+pvarg.anonymous_0+8]
mov	ecx, esi
call	sub_403091
mov	[ebp+var_10], edi
jmp	short loc_4131F3

loc_4131DF:
push	3
mov	ecx, esi
mov	[esi], ebx
mov	[esi+4], ebx
mov	[esi+8], ebx
call	sub_403396
mov	[ebp+var_10], edi

loc_4131F3:		; pvarg
lea	ecx, [ebp+pvarg]
mov	byte ptr [ebp+var_4], bl
call	sub_42CDE1
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_413191 endp



; Attributes: bp-based frame

sub_41320F proc	near

var_28=	dword ptr -28h
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_444808
call	__EH_prolog
sub	esp, 1Ch
push	esi
mov	esi, ecx
mov	ecx, [esi+0D8h]
push	edi
lea	edi, [esi+0D8h]
xor	eax, eax
mov	[ebp+var_10], eax
mov	[edi+4], eax
mov	[ecx], ax
cmp	[esi+0ECh], eax
jle	short loc_413290
push	ebx

loc_413240:
mov	eax, [esi+0F0h]
mov	ecx, [ebp+var_10]
mov	ebx, [eax+ecx*4]
lea	ecx, [ebp+Memory]
mov	edx, [ebx+6Ch]
call	sub_413191
and	[ebp+var_4], 0
push	eax
mov	ecx, edi
call	sub_4031F2
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx
push	ebx
mov	ecx, edi
call	sub_4031F2
push	5Ch
mov	ecx, edi
call	sub_40316A
inc	[ebp+var_10]
mov	eax, [ebp+var_10]
cmp	eax, [esi+0ECh]
jl	short loc_413240
pop	ebx

loc_413290:
mov	esi, [esi+0FCh]
test	esi, esi
jz	short loc_4132BC
mov	edx, esi
lea	ecx, [ebp+var_28]
call	sub_413191
push	eax
mov	ecx, edi
mov	[ebp+var_4], 1
call	sub_4031F2
push	[ebp+var_28]	; Memory
call	sub_4284D8
pop	ecx

loc_4132BC:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_41320F endp



; Attributes: bp-based frame

sub_4132CA proc	near

var_74=	byte ptr -74h
var_54=	dword ptr -54h
Memory=	dword ptr -4Ch
lParam=	dword ptr -3Ch
var_38=	dword ptr -38h
var_2C=	dword ptr -2Ch
var_28=	dword ptr -28h
lpFileName= dword ptr -18h
var_14=	dword ptr -14h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_444824
call	__EH_prolog
sub	esp, 68h
push	esi
push	edi
mov	esi, ecx
call	sub_41320F
mov	ecx, [esi+3Ch]
lea	edi, [esi+0D8h]
push	edi
add	ecx, 2Ch
call	sub_4133A7
mov	edx, [edi]
mov	ecx, [esi+50h]
call	sub_42E6BD
and	[ebp+lParam], 0
push	edi
lea	ecx, [ebp+lpFileName]
call	sub_4030F2
mov	eax, [ebp+var_14]
and	[ebp+var_4], 0
cmp	eax, 3
jle	short loc_41332C
mov	ecx, [ebp+lpFileName]
cmp	word ptr [ecx+eax*2-2],	5Ch
jnz	short loc_41332C
dec	eax
push	1
push	eax
lea	ecx, [ebp+lpFileName]
call	sub_40708E

loc_41332C:
lea	ecx, [ebp+var_74]
call	sub_404EA2
push	10h
lea	ecx, [ebp+var_74]
pop	edi
mov	byte ptr [ebp+var_4], 1
push	[ebp+lpFileName] ; lpFileName
call	sub_42B49E
test	al, al
jz	short loc_41334D
mov	edi, [ebp+var_54]

loc_41334D:
mov	ecx, [ebp+lpFileName]
mov	edx, edi
call	sub_41342C
test	eax, eax
mov	[ebp+var_2C], eax
jl	short loc_413365
or	[ebp+lParam], 6
mov	[ebp+var_28], eax

loc_413365:
or	[ebp+var_38], 0FFFFFFFFh
lea	eax, [ebp+lParam]
push	eax		; lParam
push	0		; wParam
push	405h		; Msg
push	dword ptr [esi+50h] ; hWnd
call	ds:SendMessageA
mov	ecx, [esi+44h]
push	0
mov	eax, [ecx]
call	dword ptr [eax+20h]
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
pop	ecx
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_4132CA endp



; Attributes: bp-based frame

sub_4133A7 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_444838
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	esi		; lpCriticalSection
mov	[ebp+var_10], esi
call	ds:EnterCriticalSection
mov	edx, [ebp+arg_0]
and	[ebp+var_4], 0
lea	ecx, [esi+18h]
call	sub_4133EB
mov	ecx, esi
call	sub_401749
push	esi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_4133A7 endp




sub_4133EB proc	near
push	ebx
push	esi
push	edi
mov	esi, ecx
xor	edi, edi
mov	ebx, edx
cmp	[esi+8], edi
jle	short loc_41341E

loc_4133F9:
mov	eax, [esi+0Ch]
mov	ecx, [ebx]
mov	eax, [eax+edi*4]
mov	edx, [eax]
call	sub_4282B1
test	eax, eax
jnz	short loc_413418
mov	eax, [esi]
push	1
push	edi
mov	ecx, esi
call	dword ptr [eax+4]
jmp	short loc_413419

loc_413418:
inc	edi

loc_413419:
cmp	edi, [esi+8]
jl	short loc_4133F9

loc_41341E:
push	ebx
push	0
mov	ecx, esi
call	sub_4140D0
pop	edi
pop	esi
pop	ebx
retn
sub_4133EB endp



; Attributes: bp-based frame

sub_41342C proc	near

var_4= dword ptr -4

push	ebp
mov	ebp, esp
push	ecx
or	[ebp+var_4], 0FFFFFFFFh
lea	eax, [ebp+var_4]
push	eax
call	sub_41FA10
test	eax, eax
jz	short loc_413446
mov	eax, [ebp+var_4]
leave
retn

loc_413446:
or	eax, 0FFFFFFFFh
leave
retn
sub_41342C endp




sub_41344B proc	near

arg_0= dword ptr  4

push	esi
mov	esi, ecx
push	[esp+4+arg_0]
call	sub_412FAA
test	eax, eax
jnz	short loc_413470
push	eax		; lParam
push	eax		; wParam
push	403h		; Msg
push	dword ptr [esi+4] ; hWnd
call	ds:PostMessageA
push	1
pop	eax
jmp	short loc_413472

loc_413470:
xor	eax, eax

loc_413472:
pop	esi
retn	4
sub_41344B endp



; Attributes: bp-based frame

sub_413476 proc	near

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

mov	eax, offset loc_44484C
call	__EH_prolog
sub	esp, 0Ch
mov	eax, [ebp+arg_0]
push	esi
push	edi
mov	esi, ecx
mov	eax, [eax+21Ch]
cmp	eax, 3
jnz	short loc_4134BC
mov	edx, [esi+0D8h]
mov	ecx, [esi+50h]
call	sub_42E6BD
xor	edi, edi
push	edi		; lParam
push	edi		; wParam
push	403h		; Msg
push	dword ptr [esi+4] ; hWnd
call	ds:PostMessageA
mov	eax, [ebp+arg_4]
mov	[eax], edi
jmp	short loc_4134FE

loc_4134BC:
cmp	eax, 2
jnz	short loc_413502
xor	edi, edi
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], edi
mov	[ebp+var_14], edi
mov	[ebp+var_10], edi
call	sub_403396
lea	eax, [ebp+Memory]
lea	ecx, [esi+50h]
push	eax
mov	[ebp+var_4], edi
call	sub_42E799
lea	eax, [ebp+Memory]
mov	ecx, esi
push	eax
call	sub_41344B
mov	ecx, [ebp+arg_4]
push	[ebp+Memory]	; Memory
mov	[ecx], eax
call	sub_4284D8
pop	ecx

loc_4134FE:
mov	al, 1
jmp	short loc_413504

loc_413502:
xor	al, al

loc_413504:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_413476 endp



; Attributes: bp-based frame

sub_413514 proc	near

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

mov	eax, offset loc_444860
call	__EH_prolog
sub	esp, 0Ch
mov	eax, [ebp+arg_0]
push	esi
push	edi
mov	esi, ecx
mov	eax, [eax+118h]
cmp	eax, 3
jnz	short loc_41355A
mov	edx, [esi+0D8h]
mov	ecx, [esi+50h]
call	sub_42E6BD
xor	edi, edi
push	edi		; lParam
push	edi		; wParam
push	403h		; Msg
push	dword ptr [esi+4] ; hWnd
call	ds:PostMessageA
mov	eax, [ebp+arg_4]
mov	[eax], edi
jmp	short loc_41359C

loc_41355A:
cmp	eax, 2
jnz	short loc_4135A0
xor	edi, edi
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], edi
mov	[ebp+var_14], edi
mov	[ebp+var_10], edi
call	sub_403396
lea	eax, [ebp+Memory]
lea	ecx, [esi+50h]
push	eax
mov	[ebp+var_4], edi
call	sub_42E799
lea	eax, [ebp+Memory]
mov	ecx, esi
push	eax
call	sub_41344B
mov	ecx, [ebp+arg_4]
push	[ebp+Memory]	; Memory
mov	[ecx], eax
call	sub_4284D8
pop	ecx

loc_41359C:
mov	al, 1
jmp	short loc_4135A2

loc_4135A0:
xor	al, al

loc_4135A2:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_413514 endp



; Attributes: bp-based frame

sub_4135B2 proc	near

lParam=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_8= dword ptr -8
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h
arg_C= byte ptr	 14h

push	ebp
mov	ebp, esp
sub	esp, 24h
mov	eax, [ebp+arg_4]
push	esi
test	eax, eax
push	edi
mov	esi, ecx
mov	[ebp+lParam], 11h
mov	[ebp+var_14], eax
mov	[ebp+var_10], eax
jl	short loc_4135D7
mov	[ebp+lParam], 17h

loc_4135D7:
mov	eax, [ebp+arg_8]
mov	edi, [ebp+arg_0]
mov	[ebp+var_8], eax
or	[ebp+var_20], 0FFFFFFFFh
mov	eax, [edi]
mov	[ebp+var_1C], eax
lea	eax, [ebp+lParam]
push	eax		; lParam
push	0		; wParam
push	40Bh		; Msg
push	dword ptr [esi+50h] ; hWnd
call	ds:SendMessageA
cmp	[ebp+arg_C], 0
jz	short loc_41360C
push	edi
lea	ecx, [esi+54h]
call	sub_4032B4

loc_41360C:
pop	edi
pop	esi
leave
retn	10h
sub_4135B2 endp



; Attributes: bp-based frame

sub_413612 proc	near

var_CC=	byte ptr -0CCh
var_AC=	dword ptr -0ACh
var_A4=	dword ptr -0A4h
var_94=	dword ptr -94h
var_88=	dword ptr -88h
var_7C=	dword ptr -7Ch
var_70=	dword ptr -70h
var_64=	dword ptr -64h
var_5C=	dword ptr -5Ch
var_58=	dword ptr -58h
var_50=	dword ptr -50h
var_48=	dword ptr -48h
var_44=	dword ptr -44h
var_3C=	dword ptr -3Ch
lpFileName= 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
Memory=	dword ptr -1Ch
var_18=	dword ptr -18h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_8= dword ptr  10h

mov	eax, offset loc_4448F4
call	__EH_prolog
sub	esp, 0C0h
mov	eax, [ebp+arg_8]
push	ebx
push	esi
push	edi
xor	edi, edi
mov	esi, ecx
mov	[eax], edi
mov	eax, [ebp+arg_0]
sub	eax, 7
mov	[ebp+var_10], edi
jz	loc_4136BE
dec	eax
dec	eax
jnz	loc_4139B4
mov	ebx, ds:SendMessageA
push	edi		; lParam
push	edi		; wParam
push	147h		; Msg
push	dword ptr [esi+50h] ; hWnd
call	ebx ; SendMessageA
cmp	eax, edi
jl	loc_4139B4
mov	ecx, [esi+60h]
push	dword ptr [ecx+eax*4]
lea	ecx, [ebp+Memory]
call	sub_4030F2
push	edi		; lParam
push	0FFFFFFFFh	; wParam
push	14Eh		; Msg
mov	[ebp+var_4], 0Dh
push	dword ptr [esi+50h] ; hWnd
call	ebx ; SendMessageA
lea	eax, [ebp+Memory]
mov	ecx, esi
push	eax
call	sub_412FAA
test	eax, eax
jnz	short loc_4136B0
push	edi		; lParam
push	edi		; wParam
push	403h		; Msg
push	dword ptr [esi+4] ; hWnd
call	ds:PostMessageA
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	al, 1
jmp	loc_4139B6

loc_4136B0:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
jmp	loc_4139B4

loc_4136BE:
lea	ecx, [esi+54h]
call	sub_428327
push	edi		; lParam
push	edi		; wParam
push	14Bh		; Msg
push	dword ptr [esi+50h] ; hWnd
call	ds:SendMessageA
lea	ecx, [ebp+var_50]
call	sub_40337B
mov	ebx, offset off_44B510
mov	[ebp+var_50], ebx
lea	edx, [ebp+var_50]
lea	ecx, [esi+0D8h]
mov	[ebp+var_4], edi
call	sub_428DBB
push	3
lea	ecx, [ebp+lpFileName]
mov	[ebp+lpFileName], edi
mov	[ebp+var_34], edi
mov	[ebp+var_30], edi
call	sub_403396
cmp	[ebp+var_48], edi
mov	byte ptr [ebp+var_4], 1
jz	short loc_41371B
lea	ecx, [ebp+var_50]
call	sub_42832F

loc_41371B:
cmp	[ebp+var_48], edi
mov	[ebp+arg_8], edi
jle	loc_413810

loc_413727:
mov	eax, [ebp+var_44]
mov	ecx, [ebp+arg_8]
push	dword ptr [eax+ecx*4]
lea	ecx, [ebp+Memory]
call	sub_4030F2
lea	eax, [ebp+Memory]
lea	ecx, [ebp+lpFileName]
push	eax
mov	byte ptr [ebp+var_4], 2
call	sub_4031F2
push	5Ch
lea	ecx, [ebp+lpFileName]
call	sub_40316A
lea	ecx, [ebp+var_A4]
call	sub_403079
push	[ebp+lpFileName] ; lpFileName
lea	ecx, [ebp+var_CC]
mov	byte ptr [ebp+var_4], 3
mov	[ebp+var_3C], 10h
call	sub_42B49E
test	al, al
jz	short loc_413783
mov	eax, [ebp+var_AC]
mov	[ebp+var_3C], eax

loc_413783:
cmp	[ebp+var_18], edi
jnz	short loc_4137A2
push	offset asc_45B910 ; "\\"
lea	ecx, [ebp+var_70]
call	sub_403091
or	[ebp+var_10], 1
mov	[ebp+var_20], eax
mov	byte ptr [ebp+var_4], 4
jmp	short loc_4137A8

loc_4137A2:
lea	eax, [ebp+Memory]
mov	[ebp+var_20], eax

loc_4137A8:
mov	edx, [ebp+var_3C]
mov	ecx, [ebp+lpFileName]
push	edi
push	[ebp+arg_8]
call	sub_41342C
push	eax
mov	ecx, esi
push	[ebp+var_20]
call	sub_4135B2
test	byte ptr [ebp+var_10], 1
mov	[ebp+var_4], 3
jz	short loc_4137DC
push	[ebp+var_70]	; Memory
and	[ebp+var_10], 0FFFFFFFEh
call	sub_4284D8
pop	ecx

loc_4137DC:
lea	eax, [ebp+lpFileName]
lea	ecx, [esi+54h]
push	eax
call	sub_4032B4
push	[ebp+var_A4]	; Memory
call	sub_4284D8
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
inc	[ebp+arg_8]
pop	ecx
mov	eax, [ebp+arg_8]
pop	ecx
cmp	eax, [ebp+var_48]
jl	loc_413727

loc_413810:
push	3
lea	ecx, [ebp+var_2C]
mov	[ebp+var_2C], edi
mov	[ebp+var_28], edi
mov	[ebp+var_24], edi
call	sub_403396
lea	edx, [ebp+arg_0]
lea	ecx, [ebp+var_7C]
mov	byte ptr [ebp+var_4], 5
call	sub_41ECAF
push	eax
lea	ecx, [ebp+var_2C]
mov	byte ptr [ebp+var_4], 6
call	sub_40312C
push	[ebp+var_7C]	; Memory
mov	byte ptr [ebp+var_4], 5
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_2C]
push	1
push	edi
push	[ebp+arg_0]
mov	ecx, esi
push	eax
call	sub_4135B2
lea	edx, [ebp+arg_0]
lea	ecx, [ebp+var_88]
call	sub_41EC55
push	eax
lea	ecx, [ebp+var_2C]
mov	byte ptr [ebp+var_4], 7
call	sub_40312C
push	[ebp+var_88]	; Memory
mov	byte ptr [ebp+var_4], 5
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_2C]
push	1
push	edi
push	[ebp+arg_0]
mov	ecx, esi
push	eax
call	sub_4135B2
lea	ecx, [ebp+var_64]
call	sub_40337B
mov	[ebp+var_64], ebx
lea	ecx, [ebp+var_64]
mov	byte ptr [ebp+var_4], 8
call	sub_42B98A
cmp	[ebp+var_5C], edi
mov	[ebp+arg_8], edi
jle	short loc_41392D

loc_4138B8:
mov	eax, [ebp+var_58]
mov	ecx, [ebp+arg_8]
push	dword ptr [eax+ecx*4]
lea	ecx, [ebp+Memory]
call	sub_4030F2
lea	eax, [ebp+Memory]
lea	ecx, [esi+54h]
push	eax
mov	byte ptr [ebp+var_4], 9
call	sub_4032B4
mov	ecx, [ebp+Memory]
xor	edx, edx
call	sub_41342C
mov	[ebp+var_20], eax
mov	eax, [ebp+var_18]
cmp	eax, edi
jle	short loc_413904
mov	ecx, [ebp+Memory]
cmp	word ptr [ecx+eax*2-2],	5Ch
jnz	short loc_413904
dec	eax
push	1
push	eax
lea	ecx, [ebp+Memory]
call	sub_40708E

loc_413904:
push	edi
push	1
push	[ebp+var_20]
lea	eax, [ebp+Memory]
mov	ecx, esi
push	eax
call	sub_4135B2
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 8
call	sub_4284D8
inc	[ebp+arg_8]
pop	ecx
mov	eax, [ebp+arg_8]
cmp	eax, [ebp+var_5C]
jl	short loc_4138B8

loc_41392D:
lea	edx, [ebp+arg_0]
lea	ecx, [ebp+var_94]
call	sub_41EC82
push	eax
lea	ecx, [ebp+var_2C]
mov	byte ptr [ebp+var_4], 0Ah
call	sub_40312C
push	[ebp+var_94]	; Memory
mov	byte ptr [ebp+var_4], 8
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_2C]
push	1
push	edi
push	[ebp+arg_0]
mov	ecx, esi
push	eax
call	sub_4135B2
mov	[ebp+var_64], ebx
lea	ecx, [ebp+var_64]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_428327
lea	ecx, [ebp+var_64]
mov	byte ptr [ebp+var_4], 5
call	sub_4282FE
push	[ebp+var_2C]	; Memory
call	sub_4284D8
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
pop	ecx
mov	[ebp+var_50], ebx
pop	ecx
lea	ecx, [ebp+var_50]
mov	[ebp+var_4], 0Ch
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_50]
call	sub_4282FE

loc_4139B4:
xor	al, al

loc_4139B6:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_413612 endp




sub_4139C7 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	edx, [esp+arg_0]
mov	eax, [edx+8]
cmp	eax, 0FFFFFCDAh
jz	short loc_413A02
cmp	eax, 0FFFFFCDBh
jz	short loc_4139F6
cmp	eax, 0FFFFFCDCh
jnz	short loc_4139F2
and	byte ptr [ecx+84h], 0
mov	ecx, [ecx+44h]
mov	eax, [ecx]
call	dword ptr [eax+14h]

loc_4139F2:
xor	al, al
jmp	short locret_413A0C

loc_4139F6:
push	[esp+arg_4]
push	edx
call	sub_413514
jmp	short locret_413A0C

loc_413A02:
push	[esp+arg_4]
push	edx
call	sub_413476

locret_413A0C:
retn	8
sub_4139C7 endp



; Attributes: bp-based frame

sub_413A0F proc	near

var_58=	byte ptr -58h
var_4C=	byte ptr -4Ch
var_40=	byte ptr -40h
var_3F=	byte ptr -3Fh
var_3C=	byte ptr -3Ch
var_34=	dword ptr -34h
var_30=	dword ptr -30h
var_28=	dword ptr -28h
Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_444918
call	__EH_prolog
sub	esp, 4Ch
push	ebx
push	esi
mov	esi, ecx
lea	ecx, [ebp+var_58]
call	sub_413B19
xor	ebx, ebx
push	3020260h
mov	edx, 8D4h
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], ebx
mov	[ebp+var_40], 1
call	sub_40B168
push	eax
lea	ecx, [ebp+var_4C]
mov	byte ptr [ebp+var_4], 1
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_3C]
mov	ecx, [esi+3Ch]
push	eax
add	ecx, 2Ch
call	sub_413BF0
mov	ecx, esi
call	sub_40DA67
push	eax		; hWndParent
push	1FCh		; lpTemplateName
lea	ecx, [ebp+var_58]
call	sub_42FCF7
cmp	eax, 2
jz	short loc_413AFF
push	3
lea	ecx, [ebp+var_18]
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_403396
cmp	[ebp+var_3F], bl
mov	byte ptr [ebp+var_4], 2
jz	short loc_413AD1
mov	ecx, [esi+3Ch]
push	edi
add	ecx, 2Ch
call	sub_413C36
mov	eax, [ebp+var_34]
lea	edi, [eax-1]
cmp	edi, ebx
jl	short loc_413ACB

loc_413AB7:
mov	eax, [ebp+var_30]
mov	ecx, [esi+3Ch]
add	ecx, 2Ch
push	dword ptr [eax+edi*4]
call	sub_4133A7
dec	edi
jns	short loc_413AB7

loc_413ACB:
mov	eax, [ebp+var_28]
pop	edi
jmp	short loc_413AD4

loc_413AD1:
mov	eax, [ebp+var_28]

loc_413AD4:
cmp	eax, ebx
jl	short loc_413AF6
mov	ecx, [ebp+var_30]
push	dword ptr [ecx+eax*4]
lea	ecx, [ebp+var_18]
call	sub_40312C
cmp	[ebp+var_28], ebx
jl	short loc_413AF6
lea	eax, [ebp+var_18]
mov	ecx, esi
push	eax
call	sub_412FAA

loc_413AF6:		; Memory
push	[ebp+var_18]
call	sub_4284D8
pop	ecx

loc_413AFF:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_58]
call	sub_413B9A
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_413A0F endp



; Attributes: bp-based frame

sub_413B19 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44492C
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
mov	[ebp+var_10], esi
mov	[esi+4], ebx
mov	dword ptr [esi], offset	off_44B558
lea	ecx, [esi+0Ch]
mov	[esi+8], ebx
push	3
mov	[ebp+var_4], ebx
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
mov	ecx, [ebp+var_C]
mov	[esi+18h], bl
mov	[esi+20h], ebx
mov	[esi+24h], ebx
mov	[esi+28h], ebx
mov	dword ptr [esi+2Ch], 4
mov	dword ptr [esi+1Ch], offset off_44B510
mov	dword ptr [esi], offset	off_44C368
mov	eax, esi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_413B19 endp




; int __thiscall sub_413B7E(void *Memory, char)
sub_413B7E proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_413B9A
test	[esp+4+arg_0], 1
jz	short loc_413B94
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_413B94:
mov	eax, esi
pop	esi
retn	4
sub_413B7E endp



; Attributes: bp-based frame

sub_413B9A proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_444953
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
lea	edi, [esi+1Ch]
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44B510
mov	ecx, edi
mov	byte ptr [ebp+var_4], 2
call	sub_428327
mov	ecx, edi
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
push	dword ptr [esi+0Ch] ; Memory
call	sub_4284D8
pop	ecx
mov	dword ptr [esi], offset	off_44B588
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_413B9A endp



; Attributes: bp-based frame

sub_413BF0 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_444968
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	esi		; lpCriticalSection
mov	[ebp+var_10], esi
call	ds:EnterCriticalSection
mov	ecx, [ebp+arg_0]
and	[ebp+var_4], 0
call	sub_428327
mov	ecx, [ebp+arg_0]
lea	eax, [esi+18h]
push	eax
call	sub_403531
push	esi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_413BF0 endp



; Attributes: bp-based frame

sub_413C36 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44497C
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	esi		; lpCriticalSection
mov	[ebp+var_10], esi
call	ds:EnterCriticalSection
and	[ebp+var_4], 0
lea	ecx, [esi+18h]
call	sub_428327
push	esi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_413C36 endp



; Attributes: bp-based frame

sub_413C6E proc	near

var_48=	dword ptr -48h
Memory=	dword ptr -34h
var_28=	dword ptr -28h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	byte ptr -1Ch
var_1B=	byte ptr -1Bh
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4449C0
call	__EH_prolog
sub	esp, 3Ch
push	ebx
push	esi
push	edi
mov	esi, ecx
call	sub_41320F
xor	ebx, ebx
push	3
lea	ecx, [ebp+var_28]
mov	[ebp+var_28], ebx
mov	[ebp+var_24], ebx
mov	[ebp+var_20], ebx
call	sub_403396
cmp	[esi+0DCh], ebx
mov	[ebp+var_4], ebx
jz	loc_413D3C
mov	ecx, [esi+0DCh]
mov	edx, [esi+0D8h]
lea	eax, [esi+0D8h]
mov	cx, [edx+ecx*2-2]
cmp	cx, 5Ch
jnz	short loc_413D3C
push	eax
lea	ecx, [ebp+var_28]
call	sub_40312C
mov	eax, [ebp+var_24]
push	1
dec	eax
lea	ecx, [ebp+var_28]
push	eax
call	sub_40708E
mov	ecx, [ebp+var_28]
mov	edx, offset a__0 ; "\\\\."
call	sub_42828A
cmp	eax, ebx
jz	short loc_413D3C
mov	eax, [ebp+var_24]
cmp	eax, ebx
jz	short loc_413D3C
mov	ecx, [ebp+var_28]
lea	eax, [ecx+eax*2-2]

loc_413CFD:
cmp	word ptr [eax],	5Ch
jz	short loc_413D0B
cmp	eax, ecx
jz	short loc_413D11
dec	eax
dec	eax
jmp	short loc_413CFD

loc_413D0B:
sub	eax, ecx
sar	eax, 1
jmp	short loc_413D14

loc_413D11:
or	eax, 0FFFFFFFFh

loc_413D14:
cmp	eax, ebx
jl	short loc_413D3C
inc	eax
lea	ecx, [ebp+var_28]
push	eax
lea	eax, [ebp+Memory]
push	eax
call	sub_405246
push	eax
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 1
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_413D3C:
lea	ecx, [ebp+var_1C]
mov	[ebp+var_18], esi
call	sub_4028C8
mov	[ebp+var_10], ebx
mov	eax, [esi+0FCh]
lea	edi, [esi+0FCh]
lea	edx, [ebp+var_10]
mov	byte ptr [ebp+var_4], 3
mov	ecx, [eax]
push	edx
push	eax
call	dword ptr [ecx+20h]
cmp	[ebp+var_10], ebx
jz	short loc_413D78
push	[ebp+var_10]
mov	ecx, edi
call	sub_43D0DB
jmp	loc_413E4B

loc_413D78:
cmp	[esi+0ECh], ebx
jnz	short loc_413DBB
mov	ecx, esi
call	sub_41298B
cmp	[ebp+var_24], ebx
jnz	loc_413E4B
lea	eax, [ebp+Memory]
push	ebx
push	eax
mov	ecx, esi
call	sub_41733B
push	eax
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 4
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx
jmp	loc_413E4B

loc_413DBB:
mov	eax, [edi]
cmp	eax, ebx
jz	short loc_413DC9
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
mov	[edi], ebx

loc_413DC9:
lea	ecx, [esi+0F8h]
call	sub_429929
mov	eax, [esi+0ECh]
mov	ecx, [esi+0F0h]
lea	ebx, [esi+0E4h]
mov	edi, [ecx+eax*4-4]
lea	ecx, [esi+0FCh]
push	dword ptr [edi+6Ch]
call	sub_43D0DB
mov	eax, [edi+68h]
and	dword ptr [edi+68h], 0
lea	ecx, [esi+0F8h]
mov	[ebp+var_14], eax
call	sub_429929
mov	eax, [ebp+var_14]
push	edi
lea	ecx, [ebp+var_28]
mov	[esi+0F8h], eax
call	sub_40312C
cmp	dword ptr [esi+0ECh], 1
jle	short loc_413E2F
mov	ecx, esi
call	sub_4147D1

loc_413E2F:
mov	ecx, ebx
call	sub_42832F
cmp	dword ptr [esi+0ECh], 0
jnz	short loc_413E4B
mov	al, [esi+0D5h]
mov	[esi+0D4h], al

loc_413E4B:
push	4
lea	ecx, [ebp+var_48]
call	sub_402794
mov	edi, offset off_44B510
mov	[ebp+var_48], edi
mov	ecx, esi
mov	byte ptr [ebp+var_4], 5
call	sub_41320F
lea	eax, [ebp+var_48]
mov	ecx, esi
push	eax
push	1
lea	eax, [ebp+var_28]
push	0FFFFFFFFh
push	eax
call	sub_416958
lea	ebx, [esi+74h]
mov	ecx, ebx
call	sub_402DF8
push	0		; lParam
push	eax		; wParam
push	1013h		; Msg
push	dword ptr [ebx]	; hWnd
call	ds:SendMessageA
mov	ecx, esi
call	sub_40E930
mov	[ebp+var_48], edi
lea	ecx, [ebp+var_48]
mov	byte ptr [ebp+var_4], 6
call	sub_428327
lea	ecx, [ebp+var_48]
mov	byte ptr [ebp+var_4], 3
call	sub_4282FE
mov	eax, [ebp+var_10]
pop	edi
pop	esi
mov	byte ptr [ebp+var_4], 2
test	eax, eax
pop	ebx
jz	short loc_413ECB
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_413ECB:
mov	ecx, [ebp+var_18]
mov	al, [ebp+var_1C]
mov	[ecx+184h], al
mov	eax, [ebp+var_18]
mov	cl, [ebp+var_1B]
mov	[eax+185h], cl
push	[ebp+var_28]	; Memory
call	sub_4284D8
pop	ecx
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn
sub_413C6E endp	; sp-analysis failed




sub_413EF8 proc	near
push	esi
mov	esi, ecx
push	edi
cmp	dword ptr [esi+0ECh], 0
jle	loc_413F89
push	ebx
push	ebp
lea	ebx, [esi+0F8h]
lea	edi, [esi+0E4h]

loc_413F17:
mov	eax, [esi+0FCh]
lea	ebp, [esi+0FCh]
test	eax, eax
jz	short loc_413F31
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
and	dword ptr [ebp+0], 0

loc_413F31:
mov	ecx, ebx
call	sub_429929
mov	eax, [edi+8]
mov	ecx, [edi+0Ch]
mov	eax, [ecx+eax*4-4]
mov	ecx, ebp
push	dword ptr [eax+6Ch]
call	sub_43D0DB
mov	eax, [edi+8]
mov	ecx, [edi+0Ch]
mov	eax, [ecx+eax*4-4]
mov	ecx, ebx
add	eax, 68h
mov	ebp, [eax]
and	dword ptr [eax], 0
call	sub_429929
mov	[ebx], ebp
cmp	dword ptr [esi+0ECh], 1
jle	short loc_413F77
mov	ecx, esi
call	sub_4147D1

loc_413F77:
mov	ecx, edi
call	sub_42832F
cmp	dword ptr [esi+0ECh], 0
jg	short loc_413F17
pop	ebp
pop	ebx

loc_413F89:
mov	al, [esi+0D5h]
lea	edi, [esi+0FCh]
mov	[esi+0D4h], al
mov	eax, [edi]
test	eax, eax
jz	short loc_413FAA
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
and	dword ptr [edi], 0

loc_413FAA:
lea	ecx, [esi+0F8h]
call	sub_429929
pop	edi
pop	esi
retn
sub_413EF8 endp



; Attributes: bp-based frame

sub_413FB8 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset unknown_libname_21 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	esi
push	edi
mov	edi, ecx
call	sub_413EF8
push	28h		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_10], ecx
and	[ebp+var_4], 0
test	ecx, ecx
jz	short loc_413FEA
call	sub_408A5B
mov	esi, eax
jmp	short loc_413FEC

loc_413FEA:
xor	esi, esi

loc_413FEC:
or	[ebp+var_4], 0FFFFFFFFh
push	esi
lea	ecx, [edi+0FCh]
call	sub_43D0DB
and	byte ptr [esi+24h], 0
mov	ecx, edi
call	sub_4166B3
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_413FB8 endp



; Attributes: bp-based frame

sub_414015 proc	near

lParam=	dword ptr -38h
var_2C=	dword ptr -2Ch
var_28=	dword ptr -28h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4449E8
call	__EH_prolog
sub	esp, 2Ch
cmp	[ebp+arg_0], 0FFFFFFFFh
push	esi
push	edi
mov	esi, ecx
jnz	short loc_414036
call	sub_413C6E
jmp	loc_4140C0

loc_414036:
and	[ebp+var_10], 0
mov	eax, [esi+0FCh]
and	[ebp+var_4], 0
lea	edi, [esi+0FCh]
lea	edx, [ebp+var_10]
mov	ecx, [eax]
push	edx
push	[ebp+arg_0]
push	eax
call	dword ptr [ecx+1Ch]
cmp	[ebp+var_10], 0
jz	short loc_4140C0
push	[ebp+var_10]
mov	ecx, edi
call	sub_43D0DB
mov	ecx, esi
call	sub_41320F
mov	ecx, esi
call	sub_4166B3
add	esi, 74h
mov	ecx, esi
call	sub_402DF8
push	2
mov	edi, ds:SendMessageA
pop	ecx
mov	[ebp+var_28], ecx
mov	[ebp+var_2C], ecx
lea	ecx, [ebp+lParam]
push	ecx		; lParam
push	eax		; wParam
push	102Bh		; Msg
push	dword ptr [esi]	; hWnd
call	edi ; SendMessageA
mov	ecx, esi
call	sub_402DF8
push	0		; lParam
push	eax		; wParam
push	1013h		; Msg
push	dword ptr [esi]	; hWnd
call	edi ; SendMessageA
mov	eax, [ebp+var_10]
or	[ebp+var_4], 0FFFFFFFFh
test	eax, eax
jz	short loc_4140C0
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_4140C0:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_414015 endp



; Attributes: bp-based frame

sub_4140D0 proc	near

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

mov	eax, offset unknown_libname_22 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	ebx
push	esi
push	edi
mov	ebx, ecx
push	0Ch		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_10], ecx
xor	esi, esi
cmp	ecx, esi
mov	[ebp+var_4], esi
jz	short loc_414100
push	[ebp+arg_4]
call	sub_4030F2
mov	esi, eax

loc_414100:
mov	edi, [ebp+arg_0]
or	[ebp+var_4], 0FFFFFFFFh
push	edi
mov	ecx, ebx
call	sub_428462
mov	eax, [ebx+0Ch]
mov	ecx, [ebp+var_C]
mov	[eax+edi*4], esi
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_4140D0 endp




sub_414126 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_412A3B
sub_414126 endp




sub_414130 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_441007
sub_414130 endp




sub_41413A proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_412A90
sub_41413A endp



; Attributes: bp-based frame

sub_414144 proc	near

var_108= byte ptr -108h
lpFileName= dword ptr -0F0h
var_EC=	dword ptr -0ECh
var_E0=	byte ptr -0E0h
var_C0=	dword ptr -0C0h
var_9C=	byte ptr -9Ch
var_98=	byte ptr -98h
var_94=	byte ptr -94h
var_88=	byte ptr -88h
var_84=	byte ptr -84h
var_78=	byte ptr -78h
var_74=	dword ptr -74h
var_6C=	byte ptr -6Ch
var_60=	byte ptr -60h
var_54=	dword ptr -54h
var_50=	dword ptr -50h
var_4C=	dword ptr -4Ch
var_48=	dword ptr -48h
var_44=	dword ptr -44h
pvarg= VARIANTARG ptr -40h
Memory=	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
lpText=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_444A66
call	__EH_prolog
sub	esp, 0FCh
push	ebx
push	esi
mov	esi, [ebp+arg_10]
push	edi
mov	edi, ecx
and	byte ptr [esi],	0
lea	ecx, [ebp+var_108]
mov	[ebp+var_24], edi
call	sub_414544
push	[ebp+arg_4]
xor	ebx, ebx
lea	ecx, [ebp+var_108]
mov	[ebp+var_4], ebx
call	sub_41461B
cmp	[ebp+arg_0], ebx
jz	short loc_41418E
mov	[ebp+var_88], 1
jmp	short loc_4141CC

loc_41418E:		; lpFileName
push	[ebp+lpFileName]
lea	ecx, [ebp+var_E0]
call	sub_42B49E
test	al, al
jnz	short loc_4141B0
call	ds:GetLastError
mov	ebx, eax
jmp	loc_414522

loc_4141B0:
mov	eax, [ebp+var_C0]
shr	eax, 4
test	al, 1
jz	short loc_4141C5
push	1
pop	ebx
jmp	loc_414522

loc_4141C5:
and	[ebp+var_88], 0

loc_4141CC:
push	[ebp+arg_8]
lea	ecx, [ebp+var_84]
call	sub_40312C
mov	[ebp+var_20], ebx
mov	[ebp+arg_10], ebx
push	3
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 2
mov	[ebp+Memory], ebx
mov	[ebp+var_2C], ebx
mov	[ebp+var_28], ebx
call	sub_403396
cmp	[ebp+var_EC], ebx
mov	eax, [ebp+arg_8]
mov	byte ptr [ebp+var_4], 3
jz	short loc_41420C
lea	eax, [ebp+lpFileName]

loc_41420C:
mov	[ebp+arg_8], eax
lea	eax, [ebp+Memory]
push	eax
push	esi
mov	ecx, edi
call	sub_40DA67
push	eax
lea	eax, [ebp+var_20]
mov	edx, [ebp+arg_8]
mov	ecx, [ebp+arg_0]
push	eax
lea	eax, [ebp+arg_10]
push	eax
push	[ebp+arg_C]
call	sub_4047D1
cmp	eax, ebx
mov	[ebp+arg_8], eax
jz	short loc_414267
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 1
lea	ecx, [ebp+arg_10]
call	sub_429929
mov	eax, [ebp+var_20]
and	byte ptr [ebp+var_4], 0
cmp	eax, ebx
jz	short loc_41425F
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_41425F:
mov	ebx, [ebp+arg_8]
jmp	loc_414522

loc_414267:
lea	eax, [ebp+Memory]
lea	ecx, [ebp+var_94]
push	eax
call	sub_40312C
mov	al, [esi]
push	dword ptr [edi+0FCh]
lea	esi, [edi+0FCh]
lea	ecx, [ebp+var_9C]
mov	[ebp+var_98], al
call	sub_43D0DB
lea	ebx, [edi+0E4h]
lea	eax, [ebp+var_108]
push	eax
mov	ecx, ebx
call	sub_4161FB
mov	eax, [edi+0F8h]
and	dword ptr [edi+0F8h], 0
mov	ecx, [ebx+0Ch]
add	edi, 0F8h
mov	[ebp+arg_8], eax
mov	eax, [ebx+8]
mov	eax, [ecx+eax*4-4]
lea	ebx, [eax+68h]
mov	ecx, ebx
call	sub_429929
mov	eax, [ebp+arg_8]
mov	[ebx], eax
mov	eax, [esi]
test	eax, eax
jz	short loc_4142E7
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
and	dword ptr [esi], 0

loc_4142E7:
mov	ecx, edi
call	sub_429929
push	[ebp+var_20]
mov	ecx, esi
call	sub_43D0DB
mov	ebx, [ebp+arg_10]
and	[ebp+arg_10], 0
mov	ecx, edi
call	sub_429929
mov	[edi], ebx
mov	edi, [ebp+var_24]
xor	ebx, ebx
mov	al, [edi+0D6h]
mov	[ebp+var_1C], ebx
mov	[edi+0D4h], al
mov	esi, [esi]
lea	ecx, [ebp+var_1C]
push	ecx
push	offset unk_44B630
mov	eax, [esi]
push	esi
mov	byte ptr [ebp+var_4], 4
call	dword ptr [eax]
mov	eax, [ebp+var_1C]
cmp	eax, ebx
jz	loc_4144EE
mov	[ebp+arg_8], ebx
mov	ecx, [eax]
lea	edx, [ebp+arg_8]
push	edx
push	eax
mov	byte ptr [ebp+var_4], 5
call	dword ptr [ecx+0Ch]
cmp	[ebp+arg_8], ebx
jz	loc_4144DA
push	3
lea	ecx, [ebp+lpText]
pop	esi
mov	[ebp+lpText], ebx
push	esi
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_403396
mov	eax, [ebp+arg_8]
lea	edx, [ebp+arg_4]
push	edx
push	eax
mov	ecx, [eax]
mov	byte ptr [ebp+var_4], 6
call	dword ptr [ecx+0Ch]
test	eax, eax
jz	short loc_414386
xor	eax, eax
mov	[ebp+arg_4], eax
jmp	short loc_414389

loc_414386:
mov	eax, [ebp+arg_4]

loc_414389:
cmp	eax, ebx
mov	[ebp+arg_0], ebx
jbe	loc_4144C2
mov	[ebp+var_4C], esi
mov	[ebp+var_50], 37h
mov	[ebp+var_48], 14h
mov	[ebp+var_54], ebx
mov	esi, offset sub_406E76

loc_4143AD:
sub	eax, [ebp+arg_0]
push	esi		; void (__thiscall *)(void *)
push	offset sub_403079 ; int
push	3		; int
dec	eax
push	0Ch		; unsigned int
mov	[ebp+var_44], eax
lea	eax, [ebp+var_78]
push	eax		; void *
call	??_L@YGXPAXIHP6EX0@Z1@Z	; `eh vector constructor iterator'(void *,uint,int,void (*)(void *),void (*)(void *))
lea	ebx, [ebp+var_78]
lea	edi, [ebp+var_50]
mov	[ebp+arg_C], 3

loc_4143D4:
and	word ptr [ebp+pvarg.anonymous_0], 0
and	word ptr [ebp+pvarg.anonymous_0+2], 0
mov	eax, [ebp+arg_8]
lea	edx, [ebp+pvarg]
push	edx
mov	byte ptr [ebp+var_4], 9
push	dword ptr [edi]
mov	ecx, [eax]
push	[ebp+var_44]
push	eax
call	dword ptr [ecx+10h]
test	eax, eax
jnz	short loc_414415
cmp	word ptr [ebp+pvarg.anonymous_0], ax
jz	short loc_414415
cmp	word ptr [ebp+pvarg.anonymous_0], 8
mov	eax, dword ptr [ebp+pvarg.anonymous_0+8]
jz	short loc_41440D
mov	eax, offset a?_0 ; "?"

loc_41440D:
push	eax
mov	ecx, ebx
call	sub_404722

loc_414415:		; pvarg
lea	ecx, [ebp+pvarg]
mov	byte ptr [ebp+var_4], 8
call	sub_42CDE1
push	0		; bstrString
mov	byte ptr [ebp+var_4], 7
call	ds:SysFreeString
add	edi, 4
add	ebx, 0Ch
dec	[ebp+arg_C]
jnz	short loc_4143D4
cmp	[ebp+var_74], 0
jz	short loc_41449C
cmp	[ebp+var_14], 0
jz	short loc_414451
push	offset asc_45BA00 ; "--------------------\n"
lea	ecx, [ebp+lpText]
call	sub_403195

loc_414451:
lea	eax, [ebp+var_78]
lea	ecx, [ebp+lpText]
push	eax
call	sub_4031F2
push	offset asc_45B9F8 ; "\n\n["
lea	ecx, [ebp+lpText]
call	sub_403195
lea	eax, [ebp+var_60]
lea	ecx, [ebp+lpText]
push	eax
call	sub_4031F2
push	offset asc_45B9F0 ; "] "
lea	ecx, [ebp+lpText]
call	sub_403195
lea	eax, [ebp+var_6C]
lea	ecx, [ebp+lpText]
push	eax
call	sub_4031F2
push	offset asc_45B10C ; "\n"
lea	ecx, [ebp+lpText]
call	sub_403195

loc_41449C:		; void (__thiscall *)(void *)
push	esi
push	3		; int
lea	eax, [ebp+var_78]
push	0Ch		; unsigned int
push	eax		; void *
mov	byte ptr [ebp+var_4], 6
call	??_M@YGXPAXIHP6EX0@Z@Z ; `eh vector destructor iterator'(void *,uint,int,void (*)(void *))
inc	[ebp+arg_0]
mov	eax, [ebp+arg_4]
cmp	[ebp+arg_0], eax
jb	loc_4143AD
mov	edi, [ebp+var_24]
xor	ebx, ebx

loc_4144C2:
cmp	[ebp+var_14], ebx
jz	short loc_4144D1
push	[ebp+lpText]	; lpText
mov	ecx, edi
call	sub_40E529

loc_4144D1:		; Memory
push	[ebp+lpText]
call	sub_4284D8
pop	ecx

loc_4144DA:
mov	eax, [ebp+arg_8]
mov	byte ptr [ebp+var_4], 4
cmp	eax, ebx
jz	short loc_4144EB
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_4144EB:
mov	eax, [ebp+var_1C]

loc_4144EE:
cmp	eax, ebx
mov	byte ptr [ebp+var_4], 3
jz	short loc_4144FC
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_4144FC:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 1
lea	ecx, [ebp+arg_10]
call	sub_429929
mov	eax, [ebp+var_20]
and	byte ptr [ebp+var_4], 0
cmp	eax, ebx
jz	short loc_414522
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_414522:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_108]
call	sub_406E7F
mov	ecx, [ebp+var_C]
pop	edi
mov	eax, ebx
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	14h
sub_414144 endp



; Attributes: bp-based frame

sub_414544 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_444A99
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
call	sub_4145AE
xor	ebx, ebx
mov	[ebp+var_4], ebx
mov	[esi+68h], ebx
mov	[esi+6Ch], ebx
lea	ecx, [esi+74h]
mov	[esi+70h], bl
push	3
mov	byte ptr [ebp+var_4], 2
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+84h]
mov	[esi+80h], bl
push	3
mov	byte ptr [ebp+var_4], 3
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_414544 endp



; Attributes: bp-based frame

sub_4145AE proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_444AC2
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
push	3
mov	[ebp+var_10], esi
mov	[esi], ebx
mov	[esi+4], ebx
mov	[esi+8], ebx
call	sub_403396
lea	ecx, [esi+0Ch]
push	3
mov	[ebp+var_4], ebx
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+18h]
push	3
mov	byte ptr [ebp+var_4], 1
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+28h]
mov	byte ptr [ebp+var_4], 2
call	sub_404EA2
mov	ecx, [ebp+var_C]
mov	[esi+60h], bl
mov	eax, esi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_4145AE endp




sub_41461B proc	near

arg_0= dword ptr  4

push	ebx
push	ebp
mov	ebp, [esp+8+arg_0]
push	esi
push	edi
mov	ebx, ecx
push	ebp
call	sub_40312C
lea	eax, [ebp+0Ch]
lea	ecx, [ebx+0Ch]
push	eax
call	sub_40312C
lea	eax, [ebp+18h]
lea	ecx, [ebx+18h]
push	eax
call	sub_40312C
lea	eax, [ebp+28h]
lea	edx, [ebx+28h]
push	0Ah
mov	esi, eax
pop	ecx
mov	edi, edx
rep movsd
add	eax, 28h
lea	ecx, [edx+28h]
push	eax
call	sub_40312C
mov	al, [ebp+60h]
pop	edi
mov	[ebx+60h], al
pop	esi
mov	eax, ebx
pop	ebp
pop	ebx
retn	4
sub_41461B endp



; Attributes: bp-based frame

sub_41466D proc	near

var_80=	byte ptr -80h
var_74=	byte ptr -74h
var_68=	byte ptr -68h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_444AE4
call	__EH_prolog
sub	esp, 74h
push	esi
push	edi
mov	edi, ecx
lea	ecx, [ebp+var_80]
call	sub_4145AE
push	[ebp+arg_0]
and	[ebp+var_4], 0
lea	ecx, [ebp+var_80]
call	sub_40312C
lea	esi, [edi+0D8h]
lea	ecx, [ebp+var_74]
push	esi
call	sub_40312C
push	[ebp+arg_0]
mov	edx, esi
lea	ecx, [ebp+Memory]
call	sub_40356A
push	eax
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 1
call	sub_40312C
push	[ebp+Memory]	; Memory
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
pop	ecx
mov	edx, esi
push	[ebp+arg_0]
lea	ecx, [ebp+Memory]
call	sub_40356A
push	[ebp+arg_8]
mov	ecx, edi
mov	byte ptr [ebp+var_4], 2
push	[ebp+arg_4]
push	eax
lea	eax, [ebp+var_80]
push	eax
push	0
call	sub_414144
push	[ebp+Memory]	; Memory
mov	esi, eax
call	sub_4284D8
pop	ecx
lea	ecx, [ebp+var_80]
call	sub_406EDD
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	0Ch
sub_41466D endp



; Attributes: bp-based frame

sub_414715 proc	near

Memory=	dword ptr -30h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_18=	byte ptr -18h
var_17=	byte ptr -17h
var_14=	dword ptr -14h
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_444B08
call	__EH_prolog
sub	esp, 24h
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
push	edi
mov	[ebp+var_14], esi
mov	al, [esi+184h]
mov	[ebp+var_18], al
mov	al, [esi+185h]
mov	[esi+184h], bl
mov	[ebp+var_17], al
mov	[esi+185h], bl
push	3
lea	ecx, [ebp+var_24]
mov	[ebp+var_4], ebx
mov	[ebp+var_24], ebx
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
call	sub_403396
push	[ebp+arg_0]
lea	eax, [ebp+Memory]
mov	ecx, esi
mov	byte ptr [ebp+var_4], 1
push	eax
call	sub_4174B8
lea	ecx, [ebp+var_D]
mov	byte ptr [ebp+var_4], 2
push	ecx
lea	ecx, [ebp+var_24]
push	ecx
push	eax
mov	ecx, esi
call	sub_41466D
push	[ebp+Memory]	; Memory
mov	edi, eax
call	sub_4284D8
push	[ebp+var_24]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx
cmp	edi, ebx
pop	ecx
jz	short loc_4147A5
mov	eax, edi
jmp	short loc_4147AE

loc_4147A5:
mov	ecx, esi
call	sub_4166B3
xor	eax, eax

loc_4147AE:
mov	cl, [ebp+var_18]
pop	edi
mov	[esi+184h], cl
mov	cl, [ebp+var_17]
mov	[esi+185h], cl
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_414715 endp



; Attributes: bp-based frame

sub_4147D1 proc	near

var_68=	byte ptr -68h
var_40=	dword ptr -40h
Memory=	dword ptr -30h
lpText=	dword ptr -24h
var_18=	byte ptr -18h
var_17=	byte ptr -17h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_444B2C
call	__EH_prolog
sub	esp, 5Ch
push	ebx
push	esi
push	edi
mov	edi, ecx
lea	ecx, [ebp+var_18]
mov	[ebp+var_14], edi
call	sub_4028C8
mov	eax, [edi+0ECh]
and	[ebp+var_4], 0
cmp	eax, 2
jl	loc_4148F5
mov	ecx, [edi+0F0h]
mov	ebx, [ecx+eax*4-4]
lea	ecx, [ebp+var_68]
call	sub_404EA2
push	dword ptr [ebx+18h] ; lpFileName
lea	eax, [ebx+18h]
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 1
mov	[ebp+var_10], eax
call	sub_42B49E
test	al, al
jz	loc_4148E5
lea	eax, [ebp+var_68]
mov	ecx, ebx
push	eax
call	sub_414939
test	al, al
jz	loc_4148E5
push	ebx
push	3020280h
mov	edx, 8E8h
lea	ecx, [ebp+lpText]
call	sub_40744B
mov	esi, edi
lea	eax, [edi+4]
neg	esi
sbb	esi, esi
push	21h		; uType
and	esi, eax
push	offset a7Zip	; "7-Zip"
push	[ebp+lpText]	; lpText
mov	byte ptr [ebp+var_4], 2
mov	eax, [esi]
push	eax		; hWnd
call	ds:MessageBoxW
cmp	eax, 1
jnz	short loc_4148D8
lea	eax, [ebx+74h]
mov	ecx, edi
push	eax
mov	al, [ebx+70h]
push	eax
lea	eax, [ebx+0Ch]
push	ebx
push	eax
call	sub_415474
test	eax, eax
jz	short loc_4148D8
push	[ebp+var_10]
mov	edx, 8E9h
lea	ecx, [ebp+Memory]
push	3020281h
call	sub_40744B
push	10h		; uType
push	offset a7Zip	; "7-Zip"
push	dword ptr [eax]	; lpText
push	dword ptr [esi]	; hWnd
call	ds:MessageBoxW
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+lpText]	; Memory
call	sub_4284D8
push	[ebp+var_40]	; Memory
call	sub_4284D8
add	esp, 0Ch
jmp	short loc_4148F5

loc_4148D8:		; Memory
push	[ebp+lpText]
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
pop	ecx

loc_4148E5:
mov	ecx, ebx
call	sub_41491E
push	[ebp+var_40]	; Memory
call	sub_4284D8
pop	ecx

loc_4148F5:
mov	ecx, [ebp+var_14]
mov	al, [ebp+var_18]
pop	edi
pop	esi
mov	[ecx+184h], al
mov	eax, [ebp+var_14]
mov	cl, [ebp+var_17]
pop	ebx
mov	[eax+185h], cl
mov	ecx, [ebp+var_C]
xor	eax, eax
mov	large fs:0, ecx
leave
retn
sub_4147D1 endp




sub_41491E proc	near
push	esi
mov	esi, ecx
cmp	byte ptr [esi+60h], 0
jz	short loc_414937
mov	ecx, [esi+18h]
call	sub_42A481
mov	ecx, [esi+0Ch]
call	sub_42A00C

loc_414937:
pop	esi
retn
sub_41491E endp




sub_414939 proc	near

arg_0= dword ptr  4

cmp	byte ptr [ecx+80h], 0
jnz	short loc_414967
mov	eax, [esp+arg_0]
mov	edx, [eax]
cmp	edx, [ecx+28h]
jnz	short loc_414967
mov	edx, [eax+4]
cmp	edx, [ecx+2Ch]
jnz	short loc_414967
add	ecx, 40h
add	eax, 18h
push	ecx		; lpFileTime2
push	eax		; lpFileTime1
call	ds:CompareFileTime
test	eax, eax
jz	short locret_41496A

loc_414967:
push	1
pop	eax

locret_41496A:
retn	4
sub_414939 endp



; Attributes: bp-based frame

sub_41496D proc	near

var_8C=	dword ptr -8Ch
var_84=	dword ptr -84h
var_80=	dword ptr -80h
var_78=	dword ptr -78h
var_70=	dword ptr -70h
var_6C=	dword ptr -6Ch
var_64=	dword ptr -64h
var_58=	dword ptr -58h
Memory=	dword ptr -4Ch
var_40=	dword ptr -40h
cbData=	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_4= dword ptr -4

mov	eax, offset loc_444BB3
call	__EH_prolog
sub	esp, 80h
push	ebx
push	esi
mov	esi, ecx
push	edi
push	4
lea	ecx, [ebp+var_8C]
mov	eax, [esi+0Ch]
imul	eax, 188h
lea	eax, [eax+esi+84h]
mov	[ebp+var_10], eax
call	sub_402794
mov	ebx, offset off_44B518
mov	[ebp+var_8C], ebx
mov	ecx, [ebp+var_10]
lea	eax, [ebp+var_8C]
xor	edi, edi
push	eax
mov	[ebp+var_4], edi
call	sub_41708B
push	3
lea	ecx, [ebp+var_28]
mov	[ebp+var_28], edi
mov	[ebp+var_24], edi
mov	[ebp+var_20], edi
call	sub_403396
push	3
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 1
mov	[ebp+var_1C], edi
mov	[ebp+var_18], edi
mov	[ebp+var_14], edi
call	sub_403396
cmp	[ebp+var_84], 2
mov	byte ptr [ebp+var_4], 2
jnz	short loc_414A54
mov	eax, [ebp+var_80]
mov	ecx, [ebp+var_10]
push	dword ptr [eax]
lea	eax, [ebp+Memory]
push	eax
call	sub_417521
push	eax
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 3
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 2
call	sub_4284D8
mov	eax, [ebp+var_80]
pop	ecx
mov	ecx, [ebp+var_10]
push	dword ptr [eax+4]
lea	eax, [ebp+Memory]
push	eax
call	sub_417521
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 4
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 2
call	sub_4284D8
pop	ecx
jmp	loc_414B45

loc_414A54:
cmp	[ebp+var_84], 1
jnz	loc_414C69
cmp	dword ptr [esi+8], 2
jl	loc_414C69
mov	eax, [esi+0Ch]
mov	edi, esi
imul	eax, 188h
mov	ecx, [ebp+var_10]
sub	edi, eax
mov	eax, [ebp+var_80]
add	edi, 20Ch
push	dword ptr [eax]
lea	eax, [ebp+var_58]
push	eax
call	sub_417521
push	eax
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 5
call	sub_40312C
push	[ebp+var_58]	; Memory
mov	byte ptr [ebp+var_4], 2
call	sub_4284D8
mov	eax, [ebp+var_80]
pop	ecx
mov	ecx, [ebp+var_10]
push	dword ptr [eax]
lea	eax, [ebp+Memory]
push	eax
call	sub_4174B8
push	4
lea	ecx, [ebp+var_78]
mov	byte ptr [ebp+var_4], 6
call	sub_402794
mov	[ebp+var_78], ebx
lea	eax, [ebp+var_78]
mov	ecx, edi
push	eax
mov	byte ptr [ebp+var_4], 7
call	sub_41708B
cmp	[ebp+var_70], 1
jnz	short loc_414B02
mov	eax, [ebp+var_6C]
mov	ecx, edi
push	dword ptr [eax]
lea	eax, [ebp+var_58]
push	eax
call	sub_417521
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 8
call	sub_40312C
push	[ebp+var_58]
jmp	short loc_414B24

loc_414B02:
lea	eax, [ebp+Memory]
lea	edx, [edi+0D8h]
push	eax
lea	ecx, [ebp+var_58]
call	sub_40356A
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 9
call	sub_40312C
push	[ebp+var_58]	; Memory

loc_414B24:
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 6
lea	ecx, [ebp+var_78]
call	sub_4282FE
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 2
call	sub_4284D8
pop	ecx
xor	edi, edi

loc_414B45:
push	3
lea	ecx, [ebp+cbData]
mov	[ebp+cbData], edi
mov	[ebp+var_30], edi
mov	[ebp+var_2C], edi
call	sub_403396
lea	ecx, [ebp+cbData] ; cbData
mov	byte ptr [ebp+var_4], 0Ah
call	sub_41E91F
cmp	[ebp+var_30], edi
jnz	short loc_414B89
push	[ebp+cbData]	; Memory
call	sub_4284D8
push	[ebp+var_1C]	; Memory
call	sub_4284D8
push	[ebp+var_28]	; Memory
call	sub_4284D8
add	esp, 0Ch
jmp	loc_414C7B

loc_414B89:
lea	edx, [ebp+var_1C]
lea	ecx, [ebp+var_64]
call	sub_414C99
mov	ebx, eax
lea	edx, [ebp+var_28]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_414C99
push	20h
mov	edx, eax
lea	ecx, [ebp+var_58]
mov	byte ptr [ebp+var_4], 0Ch
call	sub_409999
push	ebx
mov	edx, eax
lea	ecx, [ebp+var_40]
mov	byte ptr [ebp+var_4], 0Dh
call	sub_40356A
push	[ebp+var_58]	; Memory
call	sub_4284D8
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_64]	; Memory
mov	byte ptr [ebp+var_4], 0Fh
call	sub_4284D8
mov	ecx, [ebp+cbData]
add	esp, 0Ch
lea	edx, [ebp+var_40]
call	sub_42CC0E
cmp	eax, edi
jnz	short loc_414C17
push	[ebp+var_40]	; Memory
call	sub_4284D8
push	[ebp+cbData]	; Memory
call	sub_4284D8
push	[ebp+var_1C]	; Memory
call	sub_4284D8
push	[ebp+var_28]	; Memory
call	sub_4284D8
add	esp, 10h
jmp	short loc_414C7B

loc_414C17:
push	3020282h
mov	edx, 8EAh
lea	ecx, [ebp+var_70]
call	sub_40B168
mov	eax, [eax]
mov	esi, [esi]
push	10h		; uType
push	offset a7Zip	; "7-Zip"
push	eax		; lpText
push	esi		; hWnd
call	ds:MessageBoxW
push	[ebp+var_70]	; Memory
call	sub_4284D8
push	[ebp+var_40]	; Memory
call	sub_4284D8
push	[ebp+cbData]	; Memory
call	sub_4284D8
push	[ebp+var_1C]	; Memory
call	sub_4284D8
push	[ebp+var_28]	; Memory
call	sub_4284D8
add	esp, 14h
jmp	short loc_414C7B

loc_414C69:		; Memory
push	[ebp+var_1C]
call	sub_4284D8
push	[ebp+var_28]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx

loc_414C7B:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_8C]
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_41496D endp



; Attributes: bp-based frame

sub_414C99 proc	near

var_34=	dword ptr -34h
var_28=	dword ptr -28h
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_444BD8
call	__EH_prolog
sub	esp, 28h
and	[ebp+var_10], 0
push	ebx
push	esi
mov	esi, ecx
push	edi
mov	edi, edx
push	22h
lea	ecx, [ebp+var_34]
call	sub_409516
mov	ebx, eax
and	[ebp+var_4], 0
push	22h
lea	ecx, [ebp+var_28]
call	sub_409516
push	edi
mov	edx, eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_40356A
push	ebx
mov	edx, eax
mov	ecx, esi
mov	byte ptr [ebp+var_4], 2
call	sub_40356A
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_28]	; Memory
call	sub_4284D8
push	[ebp+var_34]	; Memory
call	sub_4284D8
mov	ecx, [ebp+var_C]
add	esp, 0Ch
mov	eax, esi
mov	large fs:0, ecx
pop	edi
pop	esi
pop	ebx
leave
retn
sub_414C99 endp



; Attributes: bp-based frame

sub_414D14 proc	near

Memory=	dword ptr -1Ch
hObject= dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_444BF4
call	__EH_prolog
sub	esp, 10h
push	edi
xor	edi, edi
cmp	[ecx+0ECh], edi
jz	short loc_414D3B
push	1
push	1
push	edi
push	[ebp+arg_0]
call	sub_4157A0
jmp	short loc_414D84

loc_414D3B:
push	esi
mov	[ebp+hObject], edi
mov	eax, ecx
push	[ebp+arg_0]
neg	eax
lea	edx, [ecx+4]
mov	[ebp+var_4], edi
sbb	eax, eax
and	eax, edx
mov	esi, [eax]
lea	eax, [ebp+Memory]
push	eax
call	sub_417521
lea	ecx, [ebp+hObject]
mov	edx, esi
push	ecx
mov	ecx, eax
mov	byte ptr [ebp+var_4], 1
call	sub_414D93
push	[ebp+Memory]	; Memory
call	sub_4284D8
cmp	[ebp+hObject], edi
pop	ecx
pop	esi
jz	short loc_414D84
push	[ebp+hObject]	; hObject
call	ds:CloseHandle

loc_414D84:
mov	ecx, [ebp+var_C]
pop	edi
mov	large fs:0, ecx
leave
retn	4
sub_414D14 endp



; Attributes: bp-based frame

sub_414D93 proc	near

Memory=	dword ptr -24h
cbData=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_444C10
call	__EH_prolog
sub	esp, 18h
push	ebx
push	esi
mov	esi, ecx
push	edi
xor	ebx, ebx
mov	edi, edx
push	3
lea	ecx, [ebp+cbData]
mov	[ebp+cbData], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_403396
lea	ecx, [ebp+cbData] ; cbData
mov	[ebp+var_4], ebx
call	sub_41E8F8
cmp	[ebp+var_14], ebx
jnz	short loc_414DF1
lea	ecx, [ebp+cbData]
call	sub_429CCE
test	al, al
jnz	short loc_414DDC
xor	esi, esi
jmp	short loc_414E49

loc_414DDC:
lea	ecx, [ebp+cbData]
call	sub_42C33B
lea	ecx, [ebp+cbData]
push	offset aNotepad_exe ; "notepad.exe"
call	sub_403195

loc_414DF1:
mov	edx, esi
lea	ecx, [ebp+Memory]
call	sub_414C99
mov	ecx, [ebp+arg_0]
push	ebx
push	eax
mov	byte ptr [ebp+var_4], 1
push	[ebp+cbData]
call	sub_42C9BF
mov	esi, eax
mov	byte ptr [ebp+var_4], bl
push	[ebp+Memory]	; Memory
call	sub_4284D8
cmp	esi, ebx
pop	ecx
jz	short loc_414E49
push	3020282h
mov	edx, 8EAh
lea	ecx, [ebp+Memory]
call	sub_40B168
push	10h		; uType
push	offset a7Zip	; "7-Zip"
push	dword ptr [eax]	; lpText
push	edi		; hWnd
call	ds:MessageBoxW
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_414E49:		; Memory
push	[ebp+cbData]
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_414D93 endp



; Attributes: bp-based frame

sub_414E65 proc	near

var_48=	dword ptr -48h
Memory=	dword ptr -3Ch
var_30=	dword ptr -30h
var_2C=	dword ptr -2Ch
var_24=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_444C54
call	__EH_prolog
sub	esp, 3Ch
lea	eax, [ebp+var_18]
push	ebx
mov	ebx, ecx
push	eax
call	sub_40E71B
and	[ebp+var_4], 0
and	[ebp+var_24], 0
and	[ebp+var_20], 0
and	[ebp+var_1C], 0
push	3
lea	ecx, [ebp+var_24]
call	sub_403396
cmp	[ebp+arg_0], 0FFFFFFFFh
mov	byte ptr [ebp+var_4], 1
jnz	loc_414F51
mov	edx, [ebp+var_14]
test	edx, edx
jz	loc_414F43
mov	ecx, [ebp+var_18]
lea	eax, [ecx+edx*2-2]

loc_414EB8:
cmp	word ptr [eax],	5Ch
jz	short loc_414EC6
cmp	eax, ecx
jz	short loc_414ECC
dec	eax
dec	eax
jmp	short loc_414EB8

loc_414EC6:
sub	eax, ecx
sar	eax, 1
jmp	short loc_414ECF

loc_414ECC:
or	eax, 0FFFFFFFFh

loc_414ECF:
test	eax, eax
jl	short loc_414F43
dec	edx
cmp	eax, edx
jnz	short loc_414F43
push	eax
lea	eax, [ebp+var_30]
push	eax
lea	ecx, [ebp+var_18]
call	sub_403228
mov	eax, [ebp+var_2C]
mov	byte ptr [ebp+var_4], 2
test	eax, eax
jz	short loc_414F36
mov	ecx, [ebp+var_30]
lea	eax, [ecx+eax*2-2]

loc_414EF7:
cmp	word ptr [eax],	5Ch
jz	short loc_414F05
cmp	eax, ecx
jz	short loc_414F0B
dec	eax
dec	eax
jmp	short loc_414EF7

loc_414F05:
sub	eax, ecx
sar	eax, 1
jmp	short loc_414F0E

loc_414F0B:
or	eax, 0FFFFFFFFh

loc_414F0E:
test	eax, eax
jl	short loc_414F36
inc	eax
lea	ecx, [ebp+var_30]
push	eax
lea	eax, [ebp+Memory]
push	eax
call	sub_403228
push	eax
lea	ecx, [ebp+var_18]
mov	byte ptr [ebp+var_4], 3
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_414F36:		; Memory
push	[ebp+var_30]
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
pop	ecx

loc_414F43:
lea	eax, [ebp+var_18]
lea	ecx, [ebp+var_24]
push	eax
call	sub_40312C
jmp	short loc_414FAB

loc_414F51:
push	[ebp+arg_0]
lea	eax, [ebp+var_48]
mov	ecx, ebx
push	eax
call	sub_4174B8
push	eax
lea	edx, [ebp+var_18]
lea	ecx, [ebp+var_30]
mov	byte ptr [ebp+var_4], 4
call	sub_40356A
push	5Ch
mov	edx, eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 5
call	sub_409999
push	eax
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 6
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_30]	; Memory
call	sub_4284D8
push	[ebp+var_48]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
add	esp, 0Ch

loc_414FAB:
mov	eax, ebx
add	ebx, 4
neg	eax
sbb	eax, eax
lea	edx, [ebp+var_24]
and	eax, ebx
lea	ecx, [ebp+var_18]
push	dword ptr [eax]	; hWnd
call	sub_414FE4
push	[ebp+var_24]	; Memory
call	sub_4284D8
push	[ebp+var_18]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx
pop	ebx
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn	4
sub_414E65 endp



; Attributes: bp-based frame

; int __stdcall	sub_414FE4(HWND	hWnd)
sub_414FE4 proc	near

hObject= dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
hWnd= dword ptr	 8

mov	eax, offset loc_444C68
call	__EH_prolog
push	ecx
and	[ebp+hObject], 0
and	[ebp+var_4], 0
lea	eax, [ebp+hObject]
push	eax		; int
push	[ebp+hWnd]	; hWnd
call	sub_415020
cmp	[ebp+hObject], 0
jz	short loc_415012
push	[ebp+hObject]	; hObject
call	ds:CloseHandle

loc_415012:
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn	4
sub_414FE4 endp



; Attributes: bp-based frame

; int __stdcall	sub_415020(HWND	hWnd, int)
sub_415020 proc	near

pExecInfo= SHELLEXECUTEINFOA ptr -6Ch
var_30=	dword ptr -30h
var_24=	dword ptr -24h
Memory=	dword ptr -18h
var_14=	dword ptr -14h
var_C= dword ptr -0Ch
var_4= dword ptr -4
hWnd= dword ptr	 8
arg_4= dword ptr  0Ch

mov	eax, offset loc_444C7C
call	__EH_prolog
sub	esp, 60h
push	ebx
xor	ebx, ebx
cmp	byte_45D8B4, bl
push	esi
mov	esi, ecx
jz	short loc_4150A1
mov	eax, [edx]
cmp	[esi+4], ebx
mov	[ebp+pExecInfo.cbSize],	3Ch
mov	[ebp+pExecInfo.fMask], 140h
mov	[ebp+pExecInfo.hwnd], ebx
mov	[ebp+pExecInfo.lpVerb],	ebx
mov	[ebp+pExecInfo.lpFile],	eax
mov	[ebp+pExecInfo.lpParameters], ebx
jnz	short loc_415060
xor	esi, esi
jmp	short loc_415062

loc_415060:
mov	esi, [esi]

loc_415062:		; "ShellExecuteExW"
push	offset aShellexecuteex
push	offset ModuleName ; "shell32.dll"
mov	[ebp+pExecInfo.lpDirectory], esi
mov	[ebp+pExecInfo.nShow], 1
mov	[ebp+pExecInfo.hProcess], ebx
call	ds:GetModuleHandleW
push	eax		; hModule
call	ds:GetProcAddress
cmp	eax, ebx
jz	loc_41514A
lea	ecx, [ebp+pExecInfo]
push	ecx
call	eax
mov	eax, [ebp+arg_4]
mov	ecx, [ebp+pExecInfo.hProcess]
mov	esi, [ebp+pExecInfo.hInstApp]
mov	[eax], ecx
jmp	short loc_415115

loc_4150A1:
lea	ecx, [ebp+var_24]
mov	[ebp+pExecInfo.cbSize],	3Ch
mov	[ebp+pExecInfo.fMask], 140h
mov	[ebp+pExecInfo.hwnd], ebx
mov	[ebp+pExecInfo.lpVerb],	ebx
call	sub_43A785
mov	edx, esi
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], ebx
call	sub_43A785
mov	eax, [ebp+var_24]
mov	[ebp+pExecInfo.lpParameters], ebx
mov	[ebp+pExecInfo.lpFile],	eax
mov	eax, [ebp+var_14]
neg	eax
sbb	eax, eax
mov	[ebp+pExecInfo.nShow], 1
and	eax, [ebp+Memory]
mov	[ebp+pExecInfo.hProcess], ebx
mov	[ebp+pExecInfo.lpDirectory], eax
lea	eax, [ebp+pExecInfo]
push	eax		; pExecInfo
call	ds:ShellExecuteExA
mov	eax, [ebp+arg_4]
mov	ecx, [ebp+pExecInfo.hProcess]
push	[ebp+Memory]	; Memory
mov	esi, [ebp+pExecInfo.hInstApp]
mov	[eax], ecx
call	sub_4284D8
push	[ebp+var_24]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx
pop	ecx

loc_415115:
cmp	esi, 20h
ja	short loc_41514A
cmp	esi, 1Fh
jnz	short loc_41514A
call	ds:GetLastError
mov	edx, eax
lea	ecx, [ebp+var_30]
call	sub_40421E
push	10h		; uType
push	offset a7Zip	; "7-Zip"
push	dword ptr [eax]	; lpText
push	[ebp+hWnd]	; hWnd
call	ds:MessageBoxW
push	[ebp+var_30]	; Memory
call	sub_4284D8
pop	ecx

loc_41514A:
mov	ecx, [ebp+var_C]
pop	esi
xor	eax, eax
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_415020 endp



; Attributes: bp-based frame

sub_41515C proc	near

var_38=	dword ptr -38h
var_2C=	dword ptr -2Ch
Memory=	dword ptr -20h
var_14=	byte ptr -14h
var_13=	byte ptr -13h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_444CA8
call	__EH_prolog
sub	esp, 2Ch
push	ebx
push	esi
mov	esi, ecx
lea	ecx, [ebp+var_14]
mov	[ebp+var_10], esi
call	sub_4028C8
xor	ebx, ebx
cmp	[esi+0ECh], ebx
mov	[ebp+var_4], ebx
jz	short loc_41519B
push	ebx
mov	ecx, esi
push	[ebp+arg_8]
push	[ebp+arg_4]
push	[ebp+arg_0]
call	sub_4157A0
jmp	loc_41526C

loc_41519B:
push	[ebp+arg_0]
lea	eax, [ebp+Memory]
mov	ecx, esi
push	eax
call	sub_4174B8
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_415294
test	al, al
jz	short loc_4151D8
push	3020284h
push	8ECh
mov	ecx, esi
call	sub_40E58A
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
jmp	loc_41526C

loc_4151D8:
lea	eax, [ebp+var_2C]
mov	ecx, esi
push	eax
call	sub_40E71B
lea	eax, [ebp+Memory]
lea	edx, [ebp+var_2C]
push	eax
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 2
call	sub_40356A
cmp	byte ptr [ebp+arg_4], bl
mov	byte ptr [ebp+var_4], 3
jz	short loc_415234
cmp	byte ptr [ebp+arg_8], bl
jz	short loc_415210
lea	ecx, [ebp+Memory]
call	sub_4152E1
test	al, al
jnz	short loc_415234

loc_415210:
push	[ebp+arg_0]
mov	ecx, esi
call	sub_414715
cmp	eax, ebx
jz	short loc_415251
cmp	eax, 80004004h
jz	short loc_415251
cmp	eax, 1
jz	short loc_415234
push	eax
mov	ecx, esi
call	sub_40E579
jmp	short loc_415251

loc_415234:
cmp	byte ptr [ebp+arg_8], bl
jz	short loc_415251
mov	eax, esi
add	esi, 4
neg	eax
sbb	eax, eax
lea	edx, [ebp+var_38]
and	eax, esi
lea	ecx, [ebp+var_2C]
push	dword ptr [eax]	; hWnd
call	sub_414FE4

loc_415251:		; Memory
push	[ebp+var_38]
call	sub_4284D8
push	[ebp+var_2C]	; Memory
call	sub_4284D8
push	[ebp+Memory]	; Memory
call	sub_4284D8
add	esp, 0Ch

loc_41526C:
mov	ecx, [ebp+var_10]
mov	al, [ebp+var_14]
pop	esi
pop	ebx
mov	[ecx+184h], al
mov	eax, [ebp+var_10]
mov	cl, [ebp+var_13]
mov	[eax+185h], cl
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn	0Ch
sub_41515C endp



; Attributes: bp-based frame

sub_415294 proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_444CBC
call	__EH_prolog
sub	esp, 0Ch
push	ebx
push	esi
mov	esi, ecx
push	offset asc_45BA70 ; "	  "
lea	ecx, [ebp+Memory]
call	sub_403091
and	[ebp+var_4], 0
lea	eax, [ebp+Memory]
push	0
push	eax
mov	ecx, esi
call	sub_40750B
test	eax, eax
push	[ebp+Memory]	; Memory
setnl	bl
call	sub_4284D8
pop	ecx
mov	al, bl
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_415294 endp




sub_4152E1 proc	near
mov	edx, ecx
mov	ecx, off_45B920
jmp	$+5

loc_4152EE:
mov	eax, offset loc_444CD0
call	__EH_prolog
sub	esp, 18h
mov	eax, [edx+4]
push	ebx
xor	ebx, ebx
push	edi
cmp	eax, ebx
mov	edi, ecx
jz	short loc_415329
mov	ecx, [edx]
lea	eax, [ecx+eax*2-2]

loc_41530E:
cmp	word ptr [eax],	2Eh
jz	short loc_41531C
cmp	eax, ecx
jz	short loc_415322
dec	eax
dec	eax
jmp	short loc_41530E

loc_41531C:
sub	eax, ecx
sar	eax, 1
jmp	short loc_415325

loc_415322:
or	eax, 0FFFFFFFFh

loc_415325:
cmp	eax, ebx
jge	short loc_41532D

loc_415329:
xor	al, al
jmp	short loc_4153A8

loc_41532D:
inc	eax
push	esi
push	eax
lea	eax, [ebp-24h]
push	eax
mov	ecx, edx
call	sub_405246
mov	ecx, [ebp-24h]
mov	[ebp-4], ebx
call	sub_4281B7
lea	edx, [ebp-24h]
lea	ecx, [ebp-18h]
push	ebx
call	sub_428673
xor	ecx, ecx
cmp	[edi], bl
jz	short loc_415393
mov	eax, edi

loc_41535A:
cmp	byte ptr [eax],	20h
mov	esi, ecx
jz	short loc_415368

loc_415361:
inc	esi
cmp	byte ptr [esi+edi], 20h
jnz	short loc_415361

loc_415368:
mov	edx, esi
sub	edx, ecx
cmp	[ebp-14h], edx
jnz	short loc_415384
push	dword ptr [ebp-14h] ; Size
push	dword ptr [ebp-18h] ; Buf2
push	eax		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jz	short loc_415391

loc_415384:
lea	ecx, [esi+1]
cmp	[ecx+edi], bl
lea	eax, [ecx+edi]
jnz	short loc_41535A
jmp	short loc_415393

loc_415391:
mov	bl, 1

loc_415393:		; Memory
push	dword ptr [ebp-18h]
call	sub_4284D8
push	dword ptr [ebp-24h] ; Memory
call	sub_4284D8
pop	ecx
mov	al, bl
pop	ecx
pop	esi

loc_4153A8:
mov	ecx, [ebp-0Ch]
pop	edi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_4152E1 endp



; Attributes: bp-based frame

sub_4153B6 proc	near

var_34=	dword ptr -34h
var_28=	dword ptr -28h
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_4= dword ptr -4

mov	eax, offset loc_444CF4
call	__EH_prolog
sub	esp, 28h
push	ebx
push	esi
mov	esi, ecx
push	edi
push	4
lea	ecx, [ebp+var_34]
call	sub_402794
mov	edi, offset off_44B510
mov	[ebp+var_34], edi
xor	ebx, ebx
mov	[ebp+var_10], 4
mov	[ebp+var_4], ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_20], offset off_44C298
lea	eax, [esi+224h]
lea	ecx, [ebp+var_34]
push	eax
mov	byte ptr [ebp+var_4], 1
call	sub_4032B4
mov	eax, [ebp+var_28]
lea	ecx, [ebp+var_20]
mov	eax, [eax]
push	dword ptr [eax]
call	sub_429907
mov	eax, [esi+234h]
mov	ecx, [esi+218h]
mov	esi, [esi+230h]
push	eax
push	[ebp+var_18]
mov	edx, [esi]
push	[ebp+var_14]
push	ecx
push	esi
call	dword ptr [edx+24h]
lea	ecx, [ebp+var_20]
mov	esi, eax
mov	byte ptr [ebp+var_4], bl
call	sub_4282FE
mov	[ebp+var_34], edi
lea	ecx, [ebp+var_34]
mov	[ebp+var_4], 2
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_34]
call	sub_4282FE
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_4153B6 endp



; Attributes: bp-based frame

sub_415474 proc	near

var_254= byte ptr -254h
var_210= dword ptr -210h
var_204= byte ptr -204h
var_3C=	byte ptr -3Ch
var_30=	byte ptr -30h
var_24=	byte ptr -24h
var_20=	byte ptr -20h
var_1C=	dword ptr -1Ch
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_444D1D
call	__EH_prolog
sub	esp, 248h
push	ebx
push	esi
xor	ebx, ebx
push	edi
mov	edi, ecx
mov	[ebp+var_10], ebx
mov	eax, [edi+0FCh]
lea	edx, [ebp+var_10]
push	edx
push	offset unk_44B6A0
mov	ecx, [eax]
push	eax
mov	[ebp+var_4], ebx
call	dword ptr [ecx]
cmp	eax, ebx
jz	short loc_4154D5
push	3020208h
push	8A0h
mov	ecx, edi
call	sub_40E58A
mov	eax, [ebp+var_10]
or	[ebp+var_4], 0FFFFFFFFh
cmp	eax, ebx
jz	short loc_4154CB
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_4154CB:
mov	eax, 80004005h
jmp	loc_4155A9

loc_4154D5:
lea	ecx, [ebp+var_254]
call	sub_4155BA
push	38h		; Size
mov	byte ptr [ebp+var_4], 1
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_14], ecx
cmp	ecx, ebx
mov	byte ptr [ebp+var_4], 2
jz	short loc_415500
call	sub_40FBA8
jmp	short loc_415502

loc_415500:
xor	eax, eax

loc_415502:
push	eax
lea	ecx, [ebp+var_20]
mov	byte ptr [ebp+var_4], 1
mov	[ebp+var_1C], eax
call	sub_43D0DB
mov	ecx, [ebp+var_1C]
push	[ebp+arg_4]
lea	eax, [ebp+var_204]
mov	[ecx+30h], eax
lea	ecx, [ebp+var_30]
call	sub_40312C
push	[ebp+arg_0]
lea	ecx, [ebp+var_3C]
call	sub_40312C
lea	ecx, [ebp+var_3C]
call	sub_42C33B
push	[ebp+var_10]
lea	ecx, [ebp+var_24]
call	sub_43D0DB
mov	esi, [ebp+var_1C]
mov	al, [ebp+arg_8]
push	[ebp+arg_C]
lea	ecx, [esi+1Ch]
mov	[esi+18h], al
call	sub_40312C
mov	eax, edi
add	edi, 4
neg	eax
sbb	eax, eax
mov	[esi+28h], ebx
and	eax, edi
mov	[esi+2Ch], ebx
lea	ecx, [ebp+var_254]
push	dword ptr [eax]	; hWndParent
push	[ebp+arg_4]	; int
call	sub_424FE9
mov	esi, eax
cmp	esi, ebx
jnz	short loc_415588
mov	esi, [ebp+var_210]

loc_415588:
lea	ecx, [ebp+var_254]
mov	byte ptr [ebp+var_4], bl
call	sub_415626
mov	eax, [ebp+var_10]
or	[ebp+var_4], 0FFFFFFFFh
cmp	eax, ebx
jz	short loc_4155A7
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_4155A7:
mov	eax, esi

loc_4155A9:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	10h
sub_415474 endp



; Attributes: bp-based frame

sub_4155BA proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_444D3E
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
call	sub_40F2E5
lea	ecx, [esi+218h]
xor	edi, edi
push	3
mov	[ebp+var_4], edi
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
lea	ecx, [esi+224h]
push	3
mov	byte ptr [ebp+var_4], 1
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
mov	ecx, [ebp+var_C]
mov	[esi+230h], edi
mov	[esi+234h], edi
mov	dword ptr [esi], offset	off_44C398
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_4155BA endp



; Attributes: bp-based frame

sub_415626 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_444D7A
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	eax, [esi+234h]
mov	[ebp+var_4], 3
test	eax, eax
jz	short loc_41564E
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_41564E:
mov	eax, [esi+230h]
mov	byte ptr [ebp+var_4], 2
test	eax, eax
jz	short loc_415662
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_415662:		; Memory
push	dword ptr [esi+224h]
call	sub_4284D8
push	dword ptr [esi+218h] ; Memory
call	sub_4284D8
or	[ebp+var_4], 0FFFFFFFFh
pop	ecx
pop	ecx
mov	ecx, esi
call	sub_40F3F1
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_415626 endp



; Attributes: bp-based frame

sub_415692 proc	near

var_34=	byte ptr -34h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_444D8C
call	__EH_prolog
sub	esp, 28h
push	esi
mov	esi, [ebp+arg_0]
push	edi
mov	edi, ecx
mov	ecx, [esi+70h]
mov	edx, [edi+0D8h]
call	sub_42828A
test	eax, eax
jz	short loc_4156BC
xor	eax, eax
jmp	short loc_41570E

loc_4156BC:
lea	ecx, [ebp+var_34]
call	sub_40283B
and	[ebp+var_4], 0
lea	eax, [ebp+var_34]
push	eax
mov	ecx, edi
call	sub_4167F4
lea	eax, [esi+80h]
mov	ecx, edi
push	eax
mov	al, [esi+7Ch]
push	eax
push	esi
add	esi, 0Ch
push	esi
call	sub_415474
test	eax, eax
jz	short loc_4156F2
xor	esi, esi
jmp	short loc_415700

loc_4156F2:
lea	eax, [ebp+var_34]
mov	ecx, edi
push	eax
call	sub_41687D
push	1
pop	esi

loc_415700:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_34]
call	sub_40299B
mov	eax, esi

loc_41570E:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_415692 endp

call	sub_415728
jmp	loc_41577A



sub_415728 proc	near
mov	ecx, offset dword_45D918
jmp	$+5

loc_415732:
mov	eax, offset loc_444DA0
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, ecx
mov	[ebp-14h], esi
and	dword ptr [esi], 0
and	dword ptr [ebp-4], 0
xor	edx, edx
call	sub_441900
test	eax, eax
jz	short loc_41576B
lea	eax, [ebp-10h]
push	offset unk_44D120
push	eax
mov	dword ptr [ebp-10h], 8F3CA5h
call	_CxxThrowException

loc_41576B:
mov	ecx, [ebp-0Ch]
mov	eax, esi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_415728 endp


loc_41577A:
push	offset loc_415786
call	_atexit
pop	ecx
retn

loc_415786:
mov	ecx, offset dword_45D918
jmp	$+5		; Microsoft VisualC 2-11/net runtime

unknown_libname_3:	; Microsoft VisualC 2-11/net runtime
push	esi
mov	esi, ecx
call	sub_4418F0
mov	ecx, esi
pop	esi
jmp	sub_441850


; Attributes: bp-based frame

sub_4157A0 proc	near

var_134= byte ptr -134h
var_128= byte ptr -128h
var_11C= byte ptr -11Ch
var_D4=	byte ptr -0D4h
var_CC=	dword ptr -0CCh
var_C8=	dword ptr -0C8h
var_B4=	dword ptr -0B4h
var_B0=	dword ptr -0B0h
var_AC=	byte ptr -0ACh
var_A8=	dword ptr -0A8h
var_9C=	dword ptr -9Ch
var_94=	dword ptr -94h
var_85=	byte ptr -85h
var_84=	dword ptr -84h
var_78=	dword ptr -78h
Memory=	dword ptr -6Ch
var_68=	dword ptr -68h
var_64=	dword ptr -64h
lpFileName= dword ptr -60h
var_54=	byte ptr -54h
var_50=	dword ptr -50h
var_44=	dword ptr -44h
var_40=	dword ptr -40h
var_3C=	dword ptr -3Ch
var_38=	dword ptr -38h
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_15=	byte ptr -15h
var_14=	dword ptr -14h
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h
arg_C= byte ptr	 14h

mov	eax, offset loc_444EC7
call	__EH_prolog
sub	esp, 128h
push	ebx
push	esi
push	edi
lea	eax, [ebp+var_38]
push	[ebp+arg_0]
mov	edi, ecx
push	eax
call	sub_41733B
xor	ebx, ebx
lea	ecx, [ebp+var_38]
mov	[ebp+var_4], ebx
call	sub_415294
test	al, al
jz	short loc_4157E8
push	3020284h
push	8ECh
mov	ecx, edi
call	sub_40E58A
jmp	loc_415FD3

loc_4157E8:
mov	[ebp+var_14], ebx
mov	eax, [edi+0FCh]
lea	edx, [ebp+var_14]
push	edx
push	offset unk_44B6A0
mov	ecx, [eax]
push	eax
mov	byte ptr [ebp+var_4], 1
call	dword ptr [ecx]
cmp	eax, ebx
jz	short loc_415831
push	3020208h
push	8A0h
mov	ecx, edi
call	sub_40E58A

loc_415818:
mov	eax, [ebp+var_14]
mov	byte ptr [ebp+var_4], bl
cmp	eax, ebx
jz	loc_415FD3
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
jmp	loc_415FD3

loc_415831:
cmp	byte ptr [ebp+arg_4], bl
jz	short loc_41584D
cmp	byte ptr [ebp+arg_8], bl
jz	short loc_415847
lea	ecx, [ebp+var_38]
call	sub_4152E1
test	al, al
jnz	short loc_41584D

loc_415847:
mov	byte ptr [ebp+arg_4+3],	1
jmp	short loc_415850

loc_41584D:
mov	byte ptr [ebp+arg_4+3],	bl

loc_415850:
lea	eax, [ebp+var_38]
lea	edx, [edi+0D8h]
push	eax
lea	ecx, [ebp+var_A8]
mov	[ebp+var_CC], edx
call	sub_40356A
lea	ecx, [ebp+var_50]
mov	byte ptr [ebp+var_4], 2
mov	[ebp+var_54], bl
call	sub_403079
push	off_45B91C
lea	ecx, [ebp+var_54]
mov	byte ptr [ebp+var_4], 3
call	sub_42AF90
lea	eax, [ebp+var_50]
lea	ecx, [ebp+var_84]
push	eax
call	sub_4030F2
lea	eax, [ebp+var_84]
lea	ecx, [ebp+var_78]
push	eax
mov	byte ptr [ebp+var_4], 4
call	sub_4030F2
lea	ecx, [ebp+var_78]
mov	byte ptr [ebp+var_4], 5
call	sub_42C33B
lea	edx, [ebp+var_38]
lea	ecx, [ebp+Memory]
call	sub_433FAC
push	eax
lea	edx, [ebp+var_78]
lea	ecx, [ebp+lpFileName]
mov	byte ptr [ebp+var_4], 6
call	sub_40356A
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 8
call	sub_4284D8
pop	ecx
lea	ecx, [ebp+var_134]
call	sub_4145AE
lea	eax, [ebp+var_38]
lea	ecx, [ebp+var_134]
push	eax
mov	byte ptr [ebp+var_4], 9
call	sub_40312C
lea	eax, [ebp+var_84]
lea	ecx, [ebp+var_128]
push	eax
call	sub_40312C
lea	eax, [ebp+lpFileName]
lea	ecx, [ebp+var_11C]
push	eax
call	sub_40312C
cmp	byte ptr [ebp+arg_4+3],	bl
mov	[ebp+var_D4], 1
jz	loc_415A8B
mov	[ebp+var_28], ebx
mov	eax, [edi+0FCh]
lea	edx, [ebp+var_28]
push	edx
push	offset unk_44B790
mov	ecx, [eax]
push	eax
mov	byte ptr [ebp+var_4], 0Ah
call	dword ptr [ecx]
mov	eax, [ebp+var_28]
cmp	eax, ebx
jz	loc_415A7D
mov	[ebp+var_24], ebx
mov	ecx, [eax]
lea	edx, [ebp+var_24]
push	edx
mov	byte ptr [ebp+var_4], 0Bh
push	[ebp+arg_0]
push	eax
call	dword ptr [ecx+0Ch]
mov	eax, [ebp+var_24]
cmp	eax, ebx
jz	loc_415A6C
mov	[ebp+var_2C], ebx
mov	ecx, [eax]
lea	edx, [ebp+var_2C]
push	edx
push	offset unk_44B7E0
push	eax
mov	byte ptr [ebp+var_4], 0Ch
call	dword ptr [ecx]
cmp	[ebp+var_2C], ebx
jz	loc_415A58
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], ebx
mov	[ebp+var_68], ebx
mov	[ebp+var_64], ebx
call	sub_403396
lea	eax, [ebp+var_85]
mov	ecx, edi
push	eax
lea	eax, [ebp+Memory]
push	eax
lea	eax, [ebp+var_A8]
push	eax
lea	eax, [ebp+var_134]
push	eax
mov	byte ptr [ebp+var_4], 0Dh
push	[ebp+var_2C]
call	sub_414144
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 0Ch
neg	eax
sbb	al, al
inc	al
mov	[ebp+var_15], al
call	sub_4284D8
cmp	[ebp+var_15], bl
pop	ecx
jz	short loc_415A58
mov	ecx, edi
mov	[ebp+var_54], bl
call	sub_4166B3
mov	eax, [ebp+var_2C]
mov	byte ptr [ebp+var_4], 0Bh
cmp	eax, ebx
jz	short loc_415A04
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_415A04:
mov	eax, [ebp+var_24]
mov	byte ptr [ebp+var_4], 0Ah
cmp	eax, ebx
jz	short loc_415A15
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_415A15:
mov	eax, [ebp+var_28]
mov	byte ptr [ebp+var_4], 9
cmp	eax, ebx
jz	short loc_415A26
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_415A26:
lea	ecx, [ebp+var_134]
call	sub_406EDD
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_78]	; Memory
call	sub_4284D8
push	[ebp+var_84]	; Memory
call	sub_4284D8
add	esp, 0Ch
mov	byte ptr [ebp+var_4], 0Eh
jmp	loc_415D33

loc_415A58:
mov	eax, [ebp+var_2C]
mov	byte ptr [ebp+var_4], 0Bh
cmp	eax, ebx
jz	short loc_415A69
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_415A69:
mov	eax, [ebp+var_24]

loc_415A6C:
cmp	eax, ebx
mov	byte ptr [ebp+var_4], 0Ah
jz	short loc_415A7A
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_415A7A:
mov	eax, [ebp+var_28]

loc_415A7D:
cmp	eax, ebx
mov	byte ptr [ebp+var_4], 9
jz	short loc_415A8B
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_415A8B:
push	4
lea	ecx, [ebp+var_C8]
call	sub_402794
mov	[ebp+var_C8], offset off_44B518
push	[ebp+arg_0]
lea	ecx, [ebp+var_C8]
mov	byte ptr [ebp+var_4], 0Fh
call	sub_429907
lea	ecx, [ebp+var_9C]
call	sub_40337B
mov	esi, offset off_44B510
mov	[ebp+var_9C], esi
push	3
lea	ecx, [ebp+var_44]
mov	byte ptr [ebp+var_4], 10h
mov	[ebp+var_D], bl
mov	[ebp+var_44], ebx
mov	[ebp+var_40], ebx
mov	[ebp+var_3C], ebx
call	sub_403396
cmp	[edi+0ECh], ebx
mov	byte ptr [ebp+var_4], 11h
jle	short loc_415B12
mov	eax, [edi+0ECh]
mov	ecx, [edi+0F0h]
mov	eax, [ecx+eax*4-4]
mov	cl, [eax+70h]
add	eax, 74h
mov	[ebp+var_D], cl
push	eax
lea	ecx, [ebp+var_44]
call	sub_40312C

loc_415B12:
lea	eax, [ebp+var_44]
mov	ecx, edi
push	eax
lea	eax, [ebp+var_D]
push	eax
lea	eax, [ebp+var_9C]
push	eax
push	1
lea	eax, [ebp+var_78]
push	ebx
push	eax
lea	eax, [ebp+var_C8]
push	eax
call	sub_40F4C6
cmp	[edi+0ECh], ebx
mov	[ebp+arg_0], eax
jle	short loc_415B63
mov	eax, [edi+0ECh]
mov	ecx, [edi+0F0h]
mov	eax, [ecx+eax*4-4]
mov	cl, [ebp+var_D]
mov	[eax+70h], cl
lea	ecx, [ebp+var_44]
push	ecx
lea	ecx, [eax+74h]
call	sub_40312C

loc_415B63:
cmp	[ebp+var_94], ebx
jz	short loc_415BD9
push	[ebp+var_44]	; Memory
call	sub_4284D8
pop	ecx
mov	[ebp+var_9C], esi
lea	ecx, [ebp+var_9C]
mov	byte ptr [ebp+var_4], 12h
call	sub_428327
lea	ecx, [ebp+var_9C]
mov	byte ptr [ebp+var_4], 0Fh
call	sub_4282FE
lea	ecx, [ebp+var_C8]
mov	byte ptr [ebp+var_4], 9
call	sub_4282FE
lea	ecx, [ebp+var_134]
call	sub_406EDD
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_78]	; Memory
call	sub_4284D8
push	[ebp+var_84]	; Memory
call	sub_4284D8
add	esp, 0Ch
mov	byte ptr [ebp+var_4], 13h
jmp	loc_415D33

loc_415BD9:
cmp	[ebp+arg_0], ebx
jz	loc_415C63
cmp	[ebp+arg_0], 80004004h
jz	short loc_415BF5
push	[ebp+arg_0]
mov	ecx, edi
call	sub_40E579

loc_415BF5:		; Memory
push	[ebp+var_44]
call	sub_4284D8
pop	ecx
mov	[ebp+var_9C], esi
lea	ecx, [ebp+var_9C]
mov	byte ptr [ebp+var_4], 14h
call	sub_428327
lea	ecx, [ebp+var_9C]
mov	byte ptr [ebp+var_4], 0Fh
call	sub_4282FE
lea	ecx, [ebp+var_C8]
mov	byte ptr [ebp+var_4], 9
call	sub_4282FE
lea	ecx, [ebp+var_134]
call	sub_406EDD
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_78]	; Memory
call	sub_4284D8
push	[ebp+var_84]	; Memory
call	sub_4284D8
add	esp, 0Ch
mov	byte ptr [ebp+var_4], 15h
jmp	loc_415D33

loc_415C63:
cmp	byte ptr [ebp+arg_4+3],	bl
jz	loc_415D55
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], ebx
mov	[ebp+var_68], ebx
mov	[ebp+var_64], ebx
call	sub_403396
lea	eax, [ebp+arg_0+3]
mov	ecx, edi
push	eax
lea	eax, [ebp+Memory]
push	eax
lea	eax, [ebp+var_A8]
push	eax
lea	eax, [ebp+var_134]
push	eax
push	ebx
mov	byte ptr [ebp+var_4], 16h
call	sub_414144
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 11h
neg	eax
sbb	al, al
inc	al
mov	byte ptr [ebp+arg_4+3],	al
call	sub_4284D8
cmp	byte ptr [ebp+arg_4+3],	bl
pop	ecx
jz	loc_415D55
mov	ecx, edi
mov	[ebp+var_54], bl
call	sub_4166B3
push	[ebp+var_44]	; Memory
call	sub_4284D8
pop	ecx
mov	[ebp+var_9C], esi
lea	ecx, [ebp+var_9C]
mov	byte ptr [ebp+var_4], 17h
call	sub_428327
lea	ecx, [ebp+var_9C]
mov	byte ptr [ebp+var_4], 0Fh
call	sub_4282FE
lea	ecx, [ebp+var_C8]
mov	byte ptr [ebp+var_4], 9
call	sub_4282FE
lea	ecx, [ebp+var_134]
call	sub_406EDD
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_78]	; Memory
call	sub_4284D8
push	[ebp+var_84]	; Memory
call	sub_4284D8
add	esp, 0Ch
mov	byte ptr [ebp+var_4], 18h

loc_415D33:
lea	ecx, [ebp+var_54]
call	sub_4027FD
push	[ebp+var_50]	; Memory
call	sub_4284D8
push	[ebp+var_A8]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx
jmp	loc_415818

loc_415D55:		; Size
push	90h
call	sub_4284B1
pop	ecx
mov	[ebp+arg_4], eax
cmp	eax, ebx
mov	byte ptr [ebp+var_4], 19h
jz	short loc_415D76
mov	ecx, eax
call	sub_41600C
mov	esi, eax
jmp	short loc_415D78

loc_415D76:
xor	esi, esi

loc_415D78:
mov	[ebp+var_20], esi
lea	eax, [ebp+var_84]
lea	ecx, [esi+0Ch]
push	eax
mov	byte ptr [ebp+var_4], 1Ah
call	sub_40312C
lea	eax, [ebp+lpFileName]
lea	ecx, [esi+18h]
push	eax
call	sub_40312C
mov	byte ptr [esi+60h], 1
mov	al, [ebp+var_D]
mov	[esi+7Ch], al
lea	eax, [ebp+var_44]
push	eax
lea	ecx, [esi+80h]
call	sub_40312C
push	[ebp+lpFileName] ; lpFileName
lea	ecx, [esi+28h]
call	sub_42B49E
test	al, al
jnz	loc_415E66
mov	ecx, [ebp+var_20] ; Memory
mov	byte ptr [ebp+var_4], 11h
cmp	ecx, ebx
jz	short loc_415DD8
push	1		; char
call	sub_4162DF

loc_415DD8:		; Memory
push	[ebp+var_44]
call	sub_4284D8
pop	ecx
mov	[ebp+var_9C], offset off_44B510
lea	ecx, [ebp+var_9C]
mov	byte ptr [ebp+var_4], 1Bh
call	sub_428327
lea	ecx, [ebp+var_9C]
mov	byte ptr [ebp+var_4], 0Fh
call	sub_4282FE
lea	ecx, [ebp+var_C8]
mov	byte ptr [ebp+var_4], 9
call	sub_4282FE
lea	ecx, [ebp+var_134]
call	sub_406EDD
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_78]	; Memory
call	sub_4284D8
push	[ebp+var_84]	; Memory
call	sub_4284D8
add	esp, 0Ch
lea	ecx, [ebp+var_54]
mov	byte ptr [ebp+var_4], 1Ch
call	sub_4027FD
push	[ebp+var_50]	; Memory
call	sub_4284D8
push	[ebp+var_A8]	; Memory
call	sub_4284D8
pop	ecx
jmp	loc_415FC7

loc_415E66:
mov	[ebp+var_B0], esi
mov	[ebp+var_AC], 1
cmp	byte ptr [ebp+arg_8], bl
mov	byte ptr [ebp+var_4], 1Dh
jz	loc_415F45
lea	ecx, [ebp+var_1C]
call	sub_416074
cmp	[ebp+arg_C], bl
mov	byte ptr [ebp+var_4], 1Eh
lea	eax, [edi+4]
jz	short loc_415EAA
neg	edi
sbb	edi, edi
lea	ecx, [ebp+lpFileName]
and	edi, eax
lea	eax, [ebp+var_1C]
push	eax
mov	edx, [edi]
call	sub_414D93
jmp	short loc_415EC2

loc_415EAA:
neg	edi
sbb	edi, edi
lea	ecx, [ebp+var_1C]
and	edi, eax
push	ecx		; int
lea	edx, [ebp+lpFileName]
lea	ecx, [ebp+var_78]
mov	eax, [edi]
push	eax		; hWnd
call	sub_415020

loc_415EC2:
cmp	[ebp+var_1C], ebx
jz	short loc_415F39
mov	edi, [edi]
push	[ebp+var_CC]
lea	ecx, [esi+70h]
mov	[esi+6Ch], edi
call	sub_40312C
lea	eax, [ebp+var_38]
mov	ecx, esi
push	eax
call	sub_40312C
mov	eax, [ebp+var_1C]
mov	[ebp+var_1C], ebx
mov	[esi+68h], eax
mov	[ebp+var_B4], ebx
push	esi
mov	edx, offset sub_41607A
lea	ecx, [ebp+var_B4]
mov	byte ptr [ebp+var_4], 1Fh
call	sub_441890
test	eax, eax
jz	short loc_415F22
lea	eax, [ebp+arg_8]
push	offset unk_44D120
push	eax
mov	[ebp+arg_8], 425D0h
call	_CxxThrowException

loc_415F22:
lea	ecx, [ebp+var_B4]
mov	[ebp+var_54], bl
mov	[ebp+var_20], ebx
mov	[ebp+var_AC], bl
call	sub_441850

loc_415F39:
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 1Dh
call	sub_415FED

loc_415F45:
lea	ecx, [ebp+var_B0]
mov	byte ptr [ebp+var_4], 1Ah
call	sub_416066
lea	ecx, [ebp+var_20]
mov	byte ptr [ebp+var_4], 11h
call	sub_416245
push	[ebp+var_44]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 0Fh
lea	ecx, [ebp+var_9C]
call	sub_40327C
lea	ecx, [ebp+var_C8]
mov	byte ptr [ebp+var_4], 9
call	sub_4282FE
lea	ecx, [ebp+var_134]
call	sub_406EDD
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_78]	; Memory
call	sub_4284D8
push	[ebp+var_84]	; Memory
call	sub_4284D8
add	esp, 0Ch
lea	ecx, [ebp+var_54]
mov	byte ptr [ebp+var_4], 2
call	sub_4027CD
push	[ebp+var_A8]	; Memory
call	sub_4284D8

loc_415FC7:
pop	ecx
mov	byte ptr [ebp+var_4], bl
lea	ecx, [ebp+var_14]
call	sub_4370A0

loc_415FD3:		; Memory
push	[ebp+var_38]
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	10h
sub_4157A0 endp




sub_415FED proc	near
push	esi
mov	esi, ecx
mov	eax, [esi]
test	eax, eax
jz	short loc_416008
push	eax		; hObject
call	ds:CloseHandle
test	eax, eax
jnz	short loc_416005
xor	al, al
pop	esi
retn

loc_416005:
and	dword ptr [esi], 0

loc_416008:
mov	al, 1
pop	esi
retn
sub_415FED endp



; Attributes: bp-based frame

sub_41600C proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_444EE7
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
call	sub_4145AE
lea	ecx, [esi+70h]
xor	ebx, ebx
push	3
mov	[ebp+var_4], ebx
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+80h]
mov	[esi+7Ch], bl
push	3
mov	byte ptr [ebp+var_4], 1
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_41600C endp




sub_416066 proc	near
cmp	byte ptr [ecx+4], 0
jz	short locret_416073
mov	ecx, [ecx]
jmp	sub_41491E

locret_416073:
retn
sub_416066 endp




sub_416074 proc	near
mov	eax, ecx
and	dword ptr [eax], 0
retn
sub_416074 endp



; Attributes: bp-based frame

; int __stdcall	sub_41607A(LPARAM lParam)
sub_41607A proc	near

var_68=	dword ptr -68h
var_64=	dword ptr -64h
FileTime1= FILETIME ptr	-50h
var_40=	dword ptr -40h
Memory=	dword ptr -30h
lpText=	dword ptr -24h
Handles= dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
lParam=	dword ptr  8

mov	eax, offset loc_444F0C
call	__EH_prolog
sub	esp, 5Ch
push	ebx
push	esi
mov	esi, [ebp+lParam]
push	edi
mov	[ebp+lParam], esi
mov	eax, dword_45D918
mov	edi, [esi+68h]
and	[ebp+var_4], 0
mov	[ebp+Handles], eax
push	0FFFFFFFFh	; dwMilliseconds
lea	eax, [ebp+Handles]
push	0		; bWaitAll
push	eax		; lpHandles
push	2		; nCount
mov	[ebp+var_14], edi
call	ds:WaitForMultipleObjects
push	edi		; hObject
mov	ebx, eax
call	ds:CloseHandle
test	ebx, ebx
jnz	short loc_4160C3
xor	esi, esi
jmp	short loc_4160CB

loc_4160C3:
cmp	ebx, 1
jz	short loc_4160DE
push	1
pop	esi

loc_4160CB:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+lParam]
call	sub_416245
mov	eax, esi
jmp	loc_4161EA

loc_4160DE:		; dwMilliseconds
push	0C8h
call	ds:Sleep
lea	ecx, [ebp+var_68]
call	sub_404EA2
push	dword ptr [esi+18h] ; lpFileName
lea	eax, [esi+18h]
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 1
mov	[ebp+var_10], eax
call	sub_42B49E
test	al, al
jz	loc_4161CC
mov	eax, [ebp+var_68]
cmp	eax, [esi+28h]
jnz	short loc_416134
mov	eax, [ebp+var_64]
cmp	eax, [esi+2Ch]
jnz	short loc_416134
lea	eax, [esi+40h]
push	eax		; lpFileTime2
lea	eax, [ebp+FileTime1]
push	eax		; lpFileTime1
call	ds:CompareFileTime
test	eax, eax
jz	loc_4161CC

loc_416134:
push	esi
push	3020280h
mov	edx, 8E8h
lea	ecx, [ebp+lpText]
call	sub_40744B
mov	ebx, offset a7Zip ; "7-Zip"
mov	edi, ds:MessageBoxW
push	21h		; uType
push	ebx		; lpCaption
push	[ebp+lpText]	; lpText
mov	byte ptr [ebp+var_4], 2
push	hWnd		; hWnd
call	edi ; MessageBoxW
cmp	eax, 1
jnz	short loc_4161BF
push	esi		; lParam
push	0		; wParam
push	404h		; Msg
push	dword ptr [esi+6Ch] ; hWnd
call	ds:SendMessageA
cmp	eax, 1
jz	short loc_4161BF
push	[ebp+var_10]
mov	edx, 8E9h
lea	ecx, [ebp+Memory]
push	3020281h
call	sub_40744B
mov	eax, [eax]
push	10h		; uType
push	ebx		; lpCaption
push	eax		; lpText
push	hWnd		; hWnd
call	edi ; MessageBoxW
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+lpText]	; Memory
call	sub_4284D8
push	[ebp+var_40]	; Memory
call	sub_4284D8
add	esp, 0Ch
jmp	short loc_4161DC

loc_4161BF:		; Memory
push	[ebp+lpText]
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
pop	ecx

loc_4161CC:
mov	ecx, esi
call	sub_41491E
push	[ebp+var_40]	; Memory
call	sub_4284D8
pop	ecx

loc_4161DC:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+lParam]
call	sub_416245
xor	eax, eax

loc_4161EA:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_41607A endp



; Attributes: bp-based frame

sub_4161FB proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset unknown_libname_23 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	90h		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_10], ecx
xor	eax, eax
cmp	ecx, eax
mov	[ebp+var_4], eax
jz	short loc_41622A
push	[ebp+arg_0]
call	sub_41625C

loc_41622A:
or	[ebp+var_4], 0FFFFFFFFh
push	eax
mov	ecx, esi
call	sub_429907
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_4161FB endp




sub_416245 proc	near
push	esi
mov	esi, [ecx]
test	esi, esi
jz	short loc_41625A
mov	ecx, esi
call	sub_416372
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_41625A:
pop	esi
retn
sub_416245 endp



; Attributes: bp-based frame

sub_41625C proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_444F55
call	__EH_prolog
push	ecx
push	esi
push	edi
mov	edi, [ebp+arg_0]
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
call	sub_4162FB
mov	eax, [edi+68h]
and	[ebp+var_4], 0
mov	[esi+68h], eax
mov	eax, [edi+6Ch]
mov	byte ptr [ebp+var_4], 1
test	eax, eax
mov	[esi+6Ch], eax
jz	short loc_416295
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+4]

loc_416295:
mov	al, [edi+70h]
lea	ecx, [esi+74h]
mov	[esi+70h], al
lea	eax, [edi+74h]
push	eax
mov	byte ptr [ebp+var_4], 2
call	sub_4030F2
mov	al, [edi+80h]
add	edi, 84h
push	edi
lea	ecx, [esi+84h]
mov	byte ptr [ebp+var_4], 3
mov	[esi+80h], al
call	sub_4030F2
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_41625C endp




; int __thiscall sub_4162DF(void *Memory, char)
sub_4162DF proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_416372
test	[esp+4+arg_0], 1
jz	short loc_4162F5
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_4162F5:
mov	eax, esi
pop	esi
retn	4
sub_4162DF endp



; Attributes: bp-based frame

sub_4162FB proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_444F7E
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	esi, [ebp+arg_0]
push	edi
mov	ebx, ecx
push	esi
mov	[ebp+var_10], ebx
call	sub_4030F2
and	[ebp+var_4], 0
lea	eax, [esi+0Ch]
push	eax
lea	ecx, [ebx+0Ch]
call	sub_4030F2
lea	eax, [esi+18h]
lea	ecx, [ebx+18h]
push	eax
mov	byte ptr [ebp+var_4], 1
call	sub_4030F2
lea	eax, [esi+28h]
lea	edx, [ebx+28h]
push	0Ah
mov	esi, eax
pop	ecx
mov	edi, edx
rep movsd
add	eax, 28h
lea	ecx, [edx+28h]
push	eax
mov	byte ptr [ebp+var_4], 2
call	sub_4030F2
mov	eax, [ebp+arg_0]
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	al, [eax+60h]
mov	[ebx+60h], al
mov	eax, ebx
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_4162FB endp




sub_416372 proc	near
push	esi
mov	esi, ecx
push	dword ptr [esi+80h] ; Memory
call	sub_4284D8
push	dword ptr [esi+70h] ; Memory
call	sub_4284D8
pop	ecx
pop	ecx
mov	ecx, esi
call	sub_406EDD
pop	esi
retn
sub_416372 endp



; Attributes: bp-based frame

sub_416393 proc	near

var_58=	dword ptr -58h
var_54=	dword ptr -54h
var_50=	dword ptr -50h
var_4C=	dword ptr -4Ch
var_48=	word ptr -48h
var_44=	dword ptr -44h
var_40=	byte ptr -40h
var_3C=	dword ptr -3Ch
Memory=	dword ptr -38h
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
bstrString= dword ptr -18h
var_14=	dword ptr -14h
var_E= word ptr	-0Eh
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_444FA0
call	__EH_prolog
sub	esp, 4Ch
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
push	edi
cmp	[esi+114h], bl
jz	short loc_4163B4
call	sub_4176F6

loc_4163B4:
mov	edi, ds:SendMessageA
push	ebx		; lParam
push	ebx		; wParam
push	1009h		; Msg
push	dword ptr [esi+74h] ; hWnd
call	edi ; SendMessageA
lea	ecx, [esi+90h]
call	sub_428327
mov	ecx, esi
call	sub_417699
mov	al, [esi+13Ch]
lea	ecx, [esi+140h]
mov	[esi+16Ch], al
call	sub_428327
mov	eax, [esi+0FCh]
lea	edx, [ebp+var_2C]
mov	byte ptr [esi+114h], 1
push	edx
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+24h]
cmp	[ebp+var_2C], ebx
mov	[ebp+var_14], ebx
jle	loc_4164D1

loc_416412:
mov	[ebp+bstrString], ebx
lea	edx, [ebp+var_E]
mov	eax, [esi+0FCh]
push	edx
lea	edx, [ebp+var_28]
mov	ecx, [eax]
push	edx
lea	edx, [ebp+bstrString]
mov	[ebp+var_4], ebx
push	edx
push	[ebp+var_14]
push	eax
call	dword ptr [ecx+28h]
cmp	eax, ebx
mov	[ebp+var_24], eax
jnz	loc_41652F
cmp	[ebp+var_28], 6
jz	short loc_4164B5
push	3
lea	ecx, [ebp+var_58]
mov	[ebp+var_58], ebx
mov	[ebp+var_54], ebx
mov	[ebp+var_50], ebx
call	sub_403396
mov	ax, [ebp+var_E]
mov	edx, [ebp+var_28]
push	[ebp+bstrString]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
mov	[ebp+var_48], ax
mov	[ebp+var_4C], edx
call	sub_41D835
push	eax
lea	ecx, [ebp+var_58]
mov	byte ptr [ebp+var_4], 2
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
or	[ebp+var_44], 0FFFFFFFFh
pop	ecx
lea	eax, [ebp+var_58]
lea	ecx, [esi+140h]
push	eax
mov	[ebp+var_40], 1
mov	[ebp+var_3C], 64h
call	sub_417BA1
push	[ebp+var_58]	; Memory
call	sub_4284D8
pop	ecx

loc_4164B5:		; bstrString
push	[ebp+bstrString]
or	[ebp+var_4], 0FFFFFFFFh
call	ds:SysFreeString
inc	[ebp+var_14]
mov	eax, [ebp+var_14]
cmp	eax, [ebp+var_2C]
jl	loc_416412

loc_4164D1:		; lParam
push	ebx
push	ebx		; wParam
push	101Ch		; Msg
push	dword ptr [esi+74h] ; hWnd
call	edi ; SendMessageA
test	eax, eax
jnz	short loc_4164D1
cmp	[esi+12Ch], ebx
mov	[ebp+var_20], ebx
mov	[ebp+var_14], ebx
jle	loc_416581

loc_4164F3:
mov	eax, [esi+130h]
mov	ecx, [ebp+var_14]
mov	[ebp+var_1C], ebx
mov	eax, [eax+ecx*4]
mov	ecx, [esi+148h]
cmp	ecx, ebx
jle	short loc_416545
mov	edi, [esi+14Ch]
mov	edx, [eax]
mov	[ebp+var_24], edi

loc_416517:
mov	edi, [ebp+var_24]
mov	edi, [edi]
cmp	[edi+0Ch], edx
jz	short loc_416540
inc	[ebp+var_1C]
add	[ebp+var_24], 4
cmp	[ebp+var_1C], ecx
jl	short loc_416517
jmp	short loc_416545

loc_41652F:		; bstrString
push	[ebp+bstrString]
call	ds:SysFreeString
mov	eax, [ebp+var_24]
jmp	loc_416606

loc_416540:
mov	ecx, [ebp+var_1C]
jmp	short loc_416548

loc_416545:
or	ecx, 0FFFFFFFFh

loc_416548:
cmp	ecx, ebx
jl	short loc_41656F
mov	edx, [esi+14Ch]
mov	edi, [edx+ecx*4]
mov	cl, [eax+4]
mov	[edi+18h], cl
mov	ecx, [eax+8]
mov	[edi+1Ch], ecx
cmp	[eax+4], bl
jz	short loc_41656F
mov	eax, [ebp+var_20]
inc	[ebp+var_20]
mov	[edi+14h], eax

loc_41656F:
inc	[ebp+var_14]
mov	eax, [ebp+var_14]
cmp	eax, [esi+12Ch]
jl	loc_4164F3

loc_416581:
xor	ecx, ecx
cmp	[esi+148h], ebx
jle	short loc_4165A9
mov	edx, [ebp+var_20]

loc_41658E:
mov	eax, [esi+14Ch]
mov	eax, [eax+ecx*4]
cmp	[eax+14h], ebx
jge	short loc_4165A0
mov	[eax+14h], edx
inc	edx

loc_4165A0:
inc	ecx
cmp	ecx, [esi+148h]
jl	short loc_41658E

loc_4165A9:
lea	ecx, [esi+154h]
call	sub_428327
xor	edi, edi
cmp	[esi+148h], ebx
jle	short loc_4165E1

loc_4165BE:
mov	eax, [esi+14Ch]
mov	eax, [eax+edi*4]
cmp	[eax+18h], bl
jz	short loc_4165D8
push	eax
lea	ecx, [esi+154h]
call	sub_417BA1

loc_4165D8:
inc	edi
cmp	edi, [esi+148h]
jl	short loc_4165BE

loc_4165E1:
mov	eax, [esi+138h]
lea	edi, [esi+15Ch]
mov	[esi+168h], eax
cmp	[edi], ebx
jle	short loc_416604

loc_4165F7:		; wParam
push	ebx
mov	ecx, esi
call	sub_416615
inc	ebx
cmp	ebx, [edi]
jl	short loc_4165F7

loc_416604:
xor	eax, eax

loc_416606:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_416393 endp



; Attributes: bp-based frame

; int __stdcall	sub_416615(WPARAM wParam)
sub_416615 proc	near

lParam=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_C= dword ptr -0Ch
var_4= dword ptr -4
wParam=	dword ptr  8

push	ebp
mov	ebp, esp
sub	esp, 20h
push	ebx
mov	ebx, [ebp+wParam]
push	esi
push	edi
mov	edi, ecx
mov	eax, [edi+160h]
mov	esi, [eax+ebx*4]
mov	[ebp+lParam], 2Fh
mov	eax, [esi+1Ch]
mov	[ebp+var_18], eax
mov	dx, [esi+10h]
mov	ecx, [esi+0Ch]
call	sub_416670
mov	[ebp+var_1C], eax
mov	eax, [esi+14h]
mov	[ebp+var_4], eax
mov	[ebp+var_C], ebx
mov	eax, [esi]
mov	[ebp+var_14], eax
lea	eax, [ebp+lParam]
push	eax		; lParam
push	ebx		; wParam
push	1061h		; Msg
push	dword ptr [edi+74h] ; hWnd
call	ds:SendMessageA
pop	edi
pop	esi
pop	ebx
leave
retn	4
sub_416615 endp




sub_416670 proc	near
cmp	ecx, 0Ah
jb	short loc_41667A
cmp	ecx, 0Ch
jbe	short loc_4166B0

loc_41667A:
movzx	eax, dx
cmp	eax, 0Bh
jg	short loc_416697
jz	short loc_4166AC
test	eax, eax
jz	short loc_4166B0
cmp	eax, 1
jle	short loc_4166A8
cmp	eax, 3
jle	short loc_4166AC
cmp	eax, 8
jmp	short loc_4166A6

loc_416697:
cmp	eax, 10h
jz	short loc_4166B0
jle	short loc_4166A8
cmp	eax, 17h
jle	short loc_4166AC
cmp	eax, 40h

loc_4166A6:
jz	short loc_4166B0

loc_4166A8:
push	2
jmp	short loc_4166AE

loc_4166AC:
push	1

loc_4166AE:
pop	eax
retn

loc_4166B0:
xor	eax, eax
retn
sub_416670 endp



; Attributes: bp-based frame

sub_4166B3 proc	near

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
Memory=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_444FC4
call	__EH_prolog
sub	esp, 20h
push	esi
xor	eax, eax
mov	esi, offset off_44B510
push	edi
mov	edi, ecx
mov	[ebp+var_28], eax
mov	[ebp+var_24], eax
mov	[ebp+var_20], eax
mov	[ebp+var_1C], 4
mov	[ebp+var_2C], esi
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], eax
mov	[ebp+Memory], eax
mov	[ebp+var_14], eax
mov	[ebp+var_10], eax
call	sub_403396
lea	eax, [ebp+var_2C]
mov	ecx, edi
push	eax
push	1
lea	eax, [ebp+Memory]
push	0FFFFFFFFh
push	eax
mov	byte ptr [ebp+var_4], 1
call	sub_416958
push	[ebp+Memory]	; Memory
mov	edi, eax
call	sub_4284D8
pop	ecx
mov	[ebp+var_2C], esi
lea	ecx, [ebp+var_2C]
mov	[ebp+var_4], 2
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_2C]
call	sub_4282FE
mov	ecx, [ebp+var_C]
mov	eax, edi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_4166B3 endp



; Attributes: bp-based frame

sub_416744 proc	near

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
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_444FE0
call	__EH_prolog
sub	esp, 24h
push	ebx
push	esi
push	edi
mov	edi, [ebp+arg_0]
mov	[ebp+var_10], ecx
mov	ecx, edi
call	sub_428327
xor	ebx, ebx
mov	[ebp+var_20], 4
mov	[ebp+var_2C], ebx
mov	[ebp+var_28], ebx
mov	[ebp+var_24], ebx
mov	[ebp+var_30], offset off_44B518
mov	ecx, [ebp+var_10]
lea	eax, [ebp+var_30]
push	eax
mov	[ebp+var_4], ebx
call	sub_41708B
push	[ebp+var_28]
mov	ecx, edi
call	sub_428378
xor	esi, esi
cmp	[ebp+var_28], ebx
jle	short loc_4167CA

loc_41679A:
mov	eax, [ebp+var_24]
mov	ecx, [ebp+var_10]
push	dword ptr [eax+esi*4]
lea	eax, [ebp+Memory]
push	eax
call	sub_4174B8
push	eax
mov	ecx, edi
mov	byte ptr [ebp+var_4], 1
call	sub_4032B4
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
inc	esi
pop	ecx
cmp	esi, [ebp+var_28]
jl	short loc_41679A

loc_4167CA:
push	ebx
push	offset sub_417C9E
mov	ecx, edi
call	sub_43748B
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_30]
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_416744 endp



; Attributes: bp-based frame

sub_4167F4 proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_444FF4
call	__EH_prolog
sub	esp, 0Ch
push	ebx
push	esi
push	edi
mov	edi, [ebp+arg_0]
mov	ebx, ecx
mov	eax, [edi+4]
and	dword ptr [edi+8], 0
lea	esi, [edi+4]
lea	ecx, [edi+14h]
and	word ptr [eax],	0
mov	[ebp+arg_0], ecx
call	sub_428327
lea	ecx, [ebx+74h]
call	sub_402DF8
test	eax, eax
mov	[edi], eax
jl	short loc_416862
push	eax
mov	ecx, ebx
call	sub_402875
cmp	eax, 0FFFFFFFFh
jz	short loc_416862
push	eax
lea	eax, [ebp+Memory]
push	eax
mov	ecx, ebx
call	sub_4174B8
and	[ebp+var_4], 0
push	eax
mov	ecx, esi
call	sub_40312C
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx

loc_416862:
push	[ebp+arg_0]
mov	ecx, ebx
call	sub_416744
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_4167F4 endp



; Attributes: bp-based frame

sub_41687D proc	near

arg_0= dword ptr  8

push	ebp
mov	ebp, esp
mov	eax, [ebp+arg_0]
cmp	byte ptr [ecx+8Fh], 0
mov	dl, [eax+10h]
mov	byte ptr [ebp+arg_0], dl
jz	short loc_416896
mov	byte ptr [ebp+arg_0], 1

loc_416896:
lea	edx, [eax+14h]
push	edx
push	[ebp+arg_0]
push	dword ptr [eax]
add	eax, 4
push	eax
call	sub_416958
pop	ebp
retn	4
sub_41687D endp



; Attributes: bp-based frame

sub_4168AC proc	near

var_34=	byte ptr -34h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_445008
call	__EH_prolog
sub	esp, 28h
push	esi
mov	esi, ecx
lea	ecx, [ebp+var_34]
call	sub_40283B
and	[ebp+var_4], 0
lea	eax, [ebp+var_34]
push	eax
mov	ecx, esi
call	sub_4167F4
lea	eax, [ebp+var_34]
mov	ecx, esi
push	eax
call	sub_41687D
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_34]
mov	esi, eax
call	sub_40299B
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_4168AC endp



; Attributes: bp-based frame

; int __stdcall	sub_4168FB(WPARAM wParam, char)
sub_4168FB proc	near

lParam=	dword ptr -28h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
wParam=	dword ptr  8
arg_4= byte ptr	 0Ch

push	ebp
mov	ebp, esp
sub	esp, 28h
cmp	[ebp+arg_4], 0
push	esi
push	1
mov	esi, ecx
pop	eax
jz	short loc_416910
push	3
pop	eax

loc_416910:
mov	[ebp+var_18], eax
mov	[ebp+var_1C], eax
lea	eax, [ebp+lParam]
push	eax		; lParam
push	[ebp+wParam]	; wParam
push	102Bh		; Msg
push	dword ptr [esi+74h] ; hWnd
call	ds:SendMessageA
cmp	byte ptr [esi+8Fh], 0
jnz	short loc_416953
cmp	[ebp+arg_4], 0
jz	short loc_416953
push	[ebp+wParam]
mov	ecx, esi
call	sub_402875
cmp	eax, 0FFFFFFFFh
jz	short loc_416953
mov	ecx, [esi+9Ch]
mov	byte ptr [ecx+eax], 1

loc_416953:
pop	esi
leave
retn	8
sub_4168FB endp



; Attributes: bp-based frame

sub_416958 proc	near

var_EC=	dword ptr -0ECh
var_DC=	dword ptr -0DCh
var_D0=	dword ptr -0D0h
var_C4=	dword ptr -0C4h
var_B8=	dword ptr -0B8h
var_AC=	dword ptr -0ACh
var_A0=	dword ptr -0A0h
pvarg= VARIANTARG ptr -94h
var_84=	dword ptr -84h
Dst= dword ptr -80h
var_7C=	dword ptr -7Ch
var_78=	dword ptr -78h
var_74=	dword ptr -74h
var_6C=	dword ptr -6Ch
var_64=	dword ptr -64h
var_60=	dword ptr -60h
var_58=	byte ptr -58h
var_57=	byte ptr -57h
var_54=	dword ptr -54h
var_50=	dword ptr -50h
var_44=	dword ptr -44h
var_40=	byte ptr -40h
var_3C=	dword ptr -3Ch
Memory=	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_15=	byte ptr -15h
var_14=	dword ptr -14h
wParam=	dword ptr -10h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_445091
call	__EH_prolog
sub	esp, 0D0h
push	ebx
push	esi
push	edi
mov	edi, ecx
xor	ebx, ebx
mov	[ebp+wParam], edi
mov	[edi+0D7h], bl
call	sub_4132CA
lea	ecx, [ebp+var_58]
mov	[ebp+var_54], edi
call	sub_4028C8
cmp	[ebp+arg_4], ebx
mov	[ebp+var_4], ebx
jge	short loc_416993
mov	[ebp+arg_4], ebx

loc_416993:
mov	esi, ds:SendMessageA
push	ebx		; lParam
add	edi, 74h
push	ebx		; wParam
push	0Bh		; Msg
push	dword ptr [edi]	; hWnd
call	esi ; SendMessageA
push	28h		; Size
lea	eax, [ebp+Dst]
push	ebx		; Val
push	eax		; Dst
call	memset
add	esp, 0Ch
push	ebx		; lParam
push	ebx		; wParam
push	1009h		; Msg
push	dword ptr [edi]	; hWnd
call	esi ; SendMessageA
mov	eax, [ebp+wParam]
lea	ecx, [eax+90h]
call	sub_428327
mov	ecx, [ebp+wParam]
cmp	[ecx+0FCh], ebx
mov	[ecx+178h], ebx
mov	[ecx+17Ch], bl
jnz	short loc_4169EB
call	sub_41298B
mov	ecx, [ebp+wParam]

loc_4169EB:
call	sub_40E69B
neg	al
sbb	al, al
push	0
inc	al
mov	[ebp+var_15], al
pop	eax
setnz	al
movzx	eax, ax
push	eax		; lParam
mov	eax, [ebp+wParam]
push	64h		; wParam
push	401h		; Msg
push	dword ptr [eax+4Ch] ; hWnd
call	esi ; SendMessageA
mov	[ebp+var_1C], ebx
mov	eax, [ebp+wParam]
lea	edx, [ebp+var_1C]
push	edx
push	offset unk_44B660
mov	eax, [eax+0FCh]
mov	byte ptr [ebp+var_4], 1
push	eax
mov	ecx, [eax]
call	dword ptr [ecx]
mov	eax, [ebp+var_1C]
cmp	eax, ebx
jz	short loc_416A4E
mov	edx, [ebp+wParam]
mov	eax, [eax]
xor	ecx, ecx
cmp	[edx+0D4h], bl
setnz	cl
push	ecx
push	[ebp+var_1C]
call	dword ptr [eax+0Ch]

loc_416A4E:
mov	eax, [ebp+wParam]
mov	eax, [eax+0FCh]
push	eax
mov	ecx, [eax]
call	dword ptr [ecx+0Ch]
cmp	eax, ebx
mov	[ebp+var_24], eax
jz	short loc_416A79
mov	eax, [ebp+var_1C]
mov	byte ptr [ebp+var_4], bl
cmp	eax, ebx
jz	short loc_416A74
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_416A74:
mov	esi, [ebp+var_24]
jmp	short loc_416A9B

loc_416A79:
mov	ecx, [ebp+wParam]
call	sub_416393
cmp	eax, ebx
mov	[ebp+var_24], eax
jz	short loc_416AAE
mov	eax, [ebp+var_1C]
mov	byte ptr [ebp+var_4], bl
cmp	eax, ebx
jz	short loc_416A98
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_416A98:
mov	esi, [ebp+var_24]

loc_416A9B:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_58]
call	sub_4028F2
mov	eax, esi
jmp	loc_416FFF

loc_416AAE:
mov	eax, [ebp+wParam]
lea	edx, [ebp+var_3C]
push	edx
mov	eax, [eax+0FCh]
push	eax
mov	ecx, [eax]
call	dword ptr [ecx+10h]
mov	ecx, [ebp+wParam]
cmp	[ecx+8Ch], bl
jz	short loc_416AD9
call	sub_40E69B
test	al, al
mov	[ebp+var_40], 1
jz	short loc_416ADC

loc_416AD9:
mov	[ebp+var_40], bl

loc_416ADC:
xor	eax, eax
cmp	[ebp+var_40], bl
push	ebx		; lParam
setnz	al
add	eax, [ebp+var_3C]
push	eax		; wParam
push	102Fh		; Msg
push	dword ptr [edi]	; hWnd
call	esi ; SendMessageA
mov	eax, [ebp+wParam]
push	[ebp+var_3C]
lea	ecx, [eax+90h]
call	sub_428378
or	[ebp+var_2C], 0FFFFFFFFh
mov	[ebp+var_28], ebx
mov	ecx, [ebp+wParam]
mov	byte ptr [ebp+var_4], 2
call	sub_40E6A6
test	al, al
jz	short loc_416B25
mov	eax, [ebp+wParam]
cmp	[eax+8Dh], bl
jz	short loc_416B3C

loc_416B25:
mov	eax, [ebp+wParam]
lea	edx, [ebp+var_28]
push	edx
push	offset unk_44B690
mov	eax, [eax+0FCh]
push	eax
mov	ecx, [eax]
call	dword ptr [ecx]

loc_416B3C:
cmp	[ebp+var_40], bl
jz	loc_416BFE
push	offset a__	; ".."
lea	ecx, [ebp+Memory]
call	sub_403091
push	ebx		; lParam
push	ebx		; wParam
push	1004h		; Msg
mov	byte ptr [ebp+var_4], 3
push	dword ptr [edi]	; hWnd
call	esi ; SendMessageA
mov	ecx, [ebp+Memory]
mov	[ebp+var_7C], eax
mov	eax, [ebp+arg_0]
mov	edx, [eax]
call	sub_4282B1
cmp	eax, ebx
jnz	short loc_416B7B
mov	eax, [ebp+var_7C]
mov	[ebp+var_2C], eax

loc_416B7B:
mov	eax, [ebp+Memory]
or	[ebp+var_60], 0FFFFFFFFh
mov	[ebp+var_6C], eax
lea	eax, [ebp+Memory]
push	eax
mov	eax, [ebp+wParam]
push	10h
mov	[ebp+Dst], 7
lea	ecx, [eax+8]
mov	[ebp+var_78], ebx
call	sub_41FD73
cmp	eax, ebx
mov	[ebp+var_64], eax
jge	short loc_416BAA
mov	[ebp+var_64], ebx

loc_416BAA:
lea	eax, [ebp+Dst]
push	eax		; lParam
push	ebx		; wParam
push	104Dh		; Msg
push	dword ptr [edi]	; hWnd
call	esi ; SendMessageA
cmp	eax, 0FFFFFFFFh
jnz	short loc_416BF1
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_416BC6:
mov	eax, [ebp+var_28]
mov	byte ptr [ebp+var_4], 1
cmp	eax, ebx
jz	short loc_416BD7
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_416BD7:
mov	eax, [ebp+var_1C]
mov	byte ptr [ebp+var_4], bl
cmp	eax, ebx
jz	short loc_416BE7
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_416BE7:
mov	eax, 80004005h
jmp	loc_416FE7

loc_416BF1:		; Memory
push	[ebp+Memory]
mov	byte ptr [ebp+var_4], 2
call	sub_4284D8
pop	ecx

loc_416BFE:
cmp	[ebp+var_3C], ebx
mov	[ebp+var_20], ebx
jbe	loc_416F2A

loc_416C0A:
push	[ebp+var_20]
mov	ecx, [ebp+wParam]
lea	eax, [ebp+var_50]
push	eax
call	sub_41733B
push	[ebp+var_20]
mov	ecx, [ebp+wParam]
lea	eax, [ebp+var_A0]
mov	byte ptr [ebp+var_4], 4
push	eax
call	sub_4174B8
mov	eax, [ebp+arg_0]
mov	ecx, [ebp+var_A0]
mov	byte ptr [ebp+var_4], 5
mov	edx, [eax]
call	sub_4282B1
cmp	eax, ebx
jnz	short loc_416C55
push	ebx		; lParam
push	ebx		; wParam
push	1004h		; Msg
push	dword ptr [edi]	; hWnd
call	esi ; SendMessageA
mov	[ebp+var_2C], eax

loc_416C55:
mov	ecx, [ebp+arg_C]
lea	eax, [ebp+var_A0]
push	eax
mov	byte ptr [ebp+var_44], bl
call	sub_41FDCA
test	eax, eax
jl	short loc_416C6F
mov	byte ptr [ebp+var_44], 1

loc_416C6F:
mov	eax, [ebp+wParam]
push	[ebp+var_44]
lea	ecx, [eax+90h]
call	sub_417BE8
mov	eax, [ebp+wParam]
mov	[ebp+Dst], 7
cmp	[eax+8Fh], bl
jnz	short loc_416CA5
cmp	byte ptr [ebp+var_44], bl
jz	short loc_416CA5
mov	[ebp+Dst], 0Fh
mov	[ebp+var_74], 2

loc_416CA5:		; lParam
push	ebx
push	ebx		; wParam
push	1004h		; Msg
push	dword ptr [edi]	; hWnd
call	esi ; SendMessageA
mov	[ebp+var_7C], eax
mov	eax, [ebp+var_20]
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+var_78], ebx
mov	[ebp+var_60], eax
mov	[ebp+Memory], ebx
mov	[ebp+var_34], ebx
mov	[ebp+var_30], ebx
call	sub_403396
push	offset asc_45BA70 ; "	  "
lea	ecx, [ebp+var_B8]
mov	byte ptr [ebp+var_4], 6
call	sub_403091
lea	eax, [ebp+var_B8]
push	ebx
push	eax
lea	ecx, [ebp+var_50]
mov	byte ptr [ebp+var_4], 7
call	sub_40750B
push	[ebp+var_B8]	; Memory
mov	byte ptr [ebp+var_4], 6
test	eax, eax
setnl	[ebp+var_15]
call	sub_4284D8
cmp	[ebp+var_15], bl
pop	ecx
jz	loc_416DE9
mov	[ebp+var_14], ebx

loc_416D19:		; "	"
push	offset asc_45BA70
lea	ecx, [ebp+var_AC]
call	sub_403091
push	[ebp+var_14]
lea	eax, [ebp+var_AC]
lea	ecx, [ebp+var_50]
mov	byte ptr [ebp+var_4], 8
push	eax
call	sub_40750B
push	[ebp+var_AC]	; Memory
mov	[ebp+var_24], eax
mov	byte ptr [ebp+var_4], 6
call	sub_4284D8
cmp	[ebp+var_24], ebx
pop	ecx
jl	short loc_416DB9
mov	eax, [ebp+var_24]
lea	ecx, [ebp+var_50]
sub	eax, [ebp+var_14]
push	eax
lea	eax, [ebp+var_D0]
push	[ebp+var_14]
push	eax
call	sub_403434
push	eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 0Ah
call	sub_4031F2
push	[ebp+var_D0]	; Memory
mov	byte ptr [ebp+var_4], 6
call	sub_4284D8
lea	ecx, [ebp+Memory]
mov	[esp+0ECh+var_EC], offset a___ ; " ... "
call	sub_403195
mov	eax, [ebp+var_24]
mov	ecx, [ebp+var_50]
inc	eax
mov	[ebp+var_14], eax
lea	eax, [ecx+eax*2]

loc_416DA8:
cmp	word ptr [eax],	20h
jnz	loc_416D19
inc	[ebp+var_14]
inc	eax
inc	eax
jmp	short loc_416DA8

loc_416DB9:
push	[ebp+var_14]
lea	eax, [ebp+var_C4]
lea	ecx, [ebp+var_50]
push	eax
call	sub_405246
push	eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 9
call	sub_4031F2
push	[ebp+var_C4]	; Memory
call	sub_4284D8
mov	eax, [ebp+Memory]
pop	ecx
jmp	short loc_416DEC

loc_416DE9:
mov	eax, [ebp+var_50]

loc_416DEC:
mov	[ebp+var_6C], eax
mov	word ptr [ebp+pvarg.anonymous_0], bx
mov	word ptr [ebp+pvarg.anonymous_0+2], bx
mov	eax, [ebp+wParam]
lea	edx, [ebp+pvarg]
push	edx
push	9
mov	eax, [eax+0FCh]
push	[ebp+var_20]
mov	byte ptr [ebp+var_4], 0Bh
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+14h]
cmp	eax, ebx
mov	[ebp+var_24], eax
jnz	loc_417010
cmp	word ptr [ebp+pvarg.anonymous_0], 13h
mov	[ebp+var_14], ebx
jnz	short loc_416E3F
mov	eax, dword ptr [ebp+pvarg.anonymous_0+8]
mov	[ebp+var_14], eax
jmp	short loc_416E55

loc_416E3F:
push	[ebp+var_20]
mov	ecx, [ebp+wParam]
call	sub_41756F
test	al, al
jz	short loc_416E55
mov	[ebp+var_14], 10h

loc_416E55:
mov	eax, [ebp+var_28]
cmp	eax, ebx
jz	short loc_416E73
mov	ecx, [eax]
lea	edx, [ebp+var_64]
push	edx
push	[ebp+var_20]
push	eax
call	dword ptr [ecx+0Ch]
cmp	[ebp+var_64], ebx
setnle	al
cmp	al, bl
jnz	short loc_416ECB

loc_416E73:
mov	eax, [ebp+wParam]
cmp	[eax+0DCh], ebx
jnz	short loc_416EB9
push	5Ch
lea	edx, [ebp+var_50]
lea	ecx, [ebp+var_DC]
call	sub_409999
mov	eax, [eax]
mov	edx, [ebp+var_14]
lea	ecx, [ebp+var_84]
mov	byte ptr [ebp+var_4], 0Ch
push	ecx
mov	ecx, eax
call	sub_41FA10
push	[ebp+var_DC]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_84]
pop	ecx
jmp	short loc_416EC8

loc_416EB9:
lea	ecx, [ebp+var_50]
push	ecx
lea	ecx, [eax+8]
push	[ebp+var_14]
call	sub_41FD73

loc_416EC8:
mov	[ebp+var_64], eax

loc_416ECB:
cmp	[ebp+var_64], ebx
jge	short loc_416ED3
mov	[ebp+var_64], ebx

loc_416ED3:
lea	eax, [ebp+Dst]
push	eax		; lParam
push	ebx		; wParam
push	104Dh		; Msg
push	dword ptr [edi]	; hWnd
call	esi ; SendMessageA
cmp	eax, 0FFFFFFFFh
mov	byte ptr [ebp+var_4], 6
lea	ecx, [ebp+pvarg] ; pvarg
jz	loc_417063
call	sub_42CDE1
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_A0]	; Memory
call	sub_4284D8
push	[ebp+var_50]	; Memory
mov	byte ptr [ebp+var_4], 2
call	sub_4284D8
add	esp, 0Ch
inc	[ebp+var_20]
mov	eax, [ebp+var_20]
cmp	eax, [ebp+var_3C]
jb	loc_416C0A

loc_416F2A:		; lParam
push	ebx
push	ebx		; wParam
push	1004h		; Msg
push	dword ptr [edi]	; hWnd
call	esi ; SendMessageA
cmp	eax, ebx
jle	short loc_416F4C
cmp	[ebp+var_2C], ebx
jl	short loc_416F4C
push	dword ptr [ebp+arg_8] ;	char
mov	ecx, [ebp+wParam]
push	[ebp+var_2C]	; wParam
call	sub_4168FB

loc_416F4C:		; lParam
push	offset sub_41BE11
push	[ebp+wParam]	; wParam
push	1030h		; Msg
push	dword ptr [edi]	; hWnd
call	esi ; SendMessageA
cmp	[ebp+var_2C], ebx
jge	short loc_416F9E
push	ebx		; lParam
push	ebx		; wParam
push	1004h		; Msg
push	dword ptr [edi]	; hWnd
call	esi ; SendMessageA
cmp	eax, ebx
jle	short loc_416F9E
push	ebx		; lParam
push	ebx		; wParam
push	1004h		; Msg
push	dword ptr [edi]	; hWnd
call	esi ; SendMessageA
cmp	[ebp+arg_4], eax
jl	short loc_416F90
push	ebx		; lParam
push	ebx		; wParam
push	1004h		; Msg
push	dword ptr [edi]	; hWnd
call	esi ; SendMessageA
dec	eax
mov	[ebp+arg_4], eax

loc_416F90:		; char
push	dword ptr [ebp+var_40]
mov	ecx, [ebp+wParam]
push	[ebp+arg_4]	; wParam
call	sub_4168FB

loc_416F9E:
mov	ecx, edi
call	sub_402DF8
push	ebx		; lParam
push	eax		; wParam
push	1013h		; Msg
push	dword ptr [edi]	; hWnd
call	esi ; SendMessageA
push	ebx		; lParam
push	1		; wParam
push	0Bh		; Msg
push	dword ptr [edi]	; hWnd
call	esi ; SendMessageA
push	1		; bErase
push	ebx		; lpRect
push	dword ptr [edi]	; hWnd
call	ds:InvalidateRect
mov	eax, [ebp+var_28]
mov	byte ptr [ebp+var_4], 1
cmp	eax, ebx
jz	short loc_416FD5
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_416FD5:
mov	eax, [ebp+var_1C]
mov	byte ptr [ebp+var_4], bl
cmp	eax, ebx
jz	short loc_416FE5
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_416FE5:
xor	eax, eax

loc_416FE7:
mov	edx, [ebp+var_54]
mov	cl, [ebp+var_58]
mov	[edx+184h], cl
mov	ecx, [ebp+var_54]
mov	dl, [ebp+var_57]
mov	[ecx+185h], dl

loc_416FFF:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	10h

loc_417010:		; pvarg
lea	ecx, [ebp+pvarg]
mov	byte ptr [ebp+var_4], 6
call	sub_42CDE1
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_A0]	; Memory
call	sub_4284D8
push	[ebp+var_50]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_28]
add	esp, 0Ch
cmp	eax, ebx
mov	byte ptr [ebp+var_4], 1
jz	short loc_41704E
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_41704E:
mov	eax, [ebp+var_1C]
mov	byte ptr [ebp+var_4], bl
cmp	eax, ebx
jz	short loc_41705E
mov	ecx, [eax]	; pvarg
push	eax
call	dword ptr [ecx+8]

loc_41705E:
mov	eax, [ebp+var_24]
jmp	short loc_416FE7

loc_417063:
call	sub_42CDE1
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_A0]	; Memory
call	sub_4284D8
push	[ebp+var_50]	; Memory
call	sub_4284D8
add	esp, 0Ch
jmp	loc_416BC6
sub_416958 endp




sub_41708B proc	near

arg_0= dword ptr  4

push	ebx
mov	ebx, [esp+4+arg_0]
push	esi
mov	esi, ecx
push	edi
mov	ecx, ebx
call	sub_428327
xor	edi, edi
cmp	[esi+98h], edi
jle	short loc_4170C2

loc_4170A5:
mov	eax, [esi+9Ch]
cmp	byte ptr [edi+eax], 0
jz	short loc_4170B9
push	edi
mov	ecx, ebx
call	sub_429907

loc_4170B9:
inc	edi
cmp	edi, [esi+98h]
jl	short loc_4170A5

loc_4170C2:
mov	edx, [ebx+8]
mov	ecx, [ebx+0Ch]
call	sub_441740
pop	edi
pop	esi
pop	ebx
retn	4
sub_41708B endp




sub_4170D3 proc	near

arg_0= dword ptr  4

push	ebx
push	ebp
push	esi
mov	esi, [esp+0Ch+arg_0]
push	edi
mov	ebx, ecx
push	esi
call	sub_41708B
xor	eax, eax
cmp	[esi+8], eax
jnz	short loc_417137
mov	edi, ds:SendMessageA
push	eax		; lParam
lea	esi, [ebx+74h]
push	eax		; wParam
push	1032h		; Msg
push	dword ptr [esi]	; hWnd
call	edi ; SendMessageA
test	eax, eax
jz	short loc_417137
mov	ecx, esi
call	sub_402DF8
mov	ebp, eax
test	ebp, ebp
jl	short loc_417137
push	2		; lParam
push	ebp		; wParam
push	102Ch		; Msg
push	dword ptr [esi]	; hWnd
call	edi ; SendMessageA
cmp	eax, 2
jnz	short loc_417137
push	ebp
mov	ecx, ebx
call	sub_402875
cmp	eax, 0FFFFFFFFh
jz	short loc_417137
mov	ecx, [esp+10h+arg_0]
push	eax
call	sub_429907

loc_417137:
pop	edi
pop	esi
pop	ebp
pop	ebx
retn	4
sub_4170D3 endp



; Attributes: bp-based frame

sub_41713E proc	near

var_4= dword ptr -4
arg_0= dword ptr  8

push	ebp
mov	ebp, esp
push	ecx
push	esi
mov	esi, ecx
mov	ecx, [ebp+arg_0]
call	sub_428327
mov	eax, [esi+0FCh]
lea	edx, [ebp+var_4]
push	edx
push	eax
mov	ecx, [eax]
call	dword ptr [ecx+10h]
test	eax, eax
jnz	short loc_417177
xor	esi, esi
cmp	[ebp+var_4], esi
jbe	short loc_417177

loc_417168:
mov	ecx, [ebp+arg_0]
push	esi
call	sub_429907
inc	esi
cmp	esi, [ebp+var_4]
jb	short loc_417168

loc_417177:
pop	esi
leave
retn	4
sub_41713E endp




sub_41717C proc	near

arg_0= dword ptr  4

push	esi
mov	esi, [esp+4+arg_0]
push	edi
mov	edi, ecx
push	esi
call	sub_4170D3
mov	eax, [esi+8]
test	eax, eax
jz	short loc_41719E
cmp	eax, 1
jnz	short loc_4171A6
mov	eax, [esi+0Ch]
cmp	dword ptr [eax], 0FFFFFFFFh
jnz	short loc_4171A6

loc_41719E:
push	esi
mov	ecx, edi
call	sub_41713E

loc_4171A6:
pop	edi
pop	esi
retn	4
sub_41717C endp




sub_4171AB proc	near
push	esi
mov	esi, ecx
push	edi
lea	ecx, [esi+74h]
call	sub_402DF8
test	eax, eax
jl	short loc_4171DE
push	eax
mov	ecx, esi
call	sub_402875
mov	edi, eax
cmp	edi, 0FFFFFFFFh
jz	short loc_4171DE
push	edi
mov	ecx, esi
call	sub_41756F
test	al, al
jnz	short loc_4171DE
push	edi
mov	ecx, esi
call	sub_414D14

loc_4171DE:
pop	edi
pop	esi
retn
sub_4171AB endp




sub_4171E1 proc	near
push	esi
mov	esi, ecx
push	edi
lea	ecx, [esi+74h]
call	sub_402DF8
test	eax, eax
jl	short loc_41721D
push	eax
mov	ecx, esi
call	sub_402875
mov	edi, eax
mov	ecx, esi
push	edi
call	sub_41756F
test	al, al
jz	short loc_417211
push	edi
mov	ecx, esi
call	sub_414015
jmp	short loc_41721D

loc_417211:
push	0
push	1
push	edi
mov	ecx, esi
call	sub_41515C

loc_41721D:
pop	edi
pop	esi
retn
sub_4171E1 endp



; Attributes: bp-based frame

sub_417220 proc	near

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_4= dword ptr -4
arg_0= byte ptr	 8

mov	eax, offset loc_4450A4
call	__EH_prolog
sub	esp, 14h
xor	eax, eax
push	ebx
mov	ebx, ecx
mov	[ebp+var_1C], eax
mov	[ebp+var_18], eax
mov	[ebp+var_14], eax
mov	[ebp+var_10], 4
mov	[ebp+var_20], offset off_44B518
mov	[ebp+var_4], eax
lea	eax, [ebp+var_20]
push	eax
call	sub_4170D3
cmp	[ebp+var_18], 14h
jle	short loc_41727D
push	2000606h
push	8E7h
mov	ecx, ebx
call	sub_40E58A
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_20]
call	sub_4282FE
jmp	loc_41732C

loc_41727D:
push	esi
lea	esi, [ebx+74h]
push	edi
mov	ecx, esi
call	sub_402DF8
mov	edi, eax
test	edi, edi
jl	short loc_4172CD
push	edi
mov	ecx, ebx
call	sub_402875
cmp	eax, 0FFFFFFFFh
jnz	short loc_4172CD
cmp	[ebp+arg_0], 0
jnz	short loc_4172A8
cmp	[ebp+var_18], 0
jnz	short loc_4172CD

loc_4172A8:		; lParam
push	2
push	edi		; wParam
push	102Ch		; Msg
push	dword ptr [esi]	; hWnd
call	ds:SendMessageA
cmp	eax, 2
jnz	short loc_4172CD
push	0
lea	ecx, [ebp+var_20]
call	sub_428462
mov	eax, [ebp+var_14]
or	dword ptr [eax], 0FFFFFFFFh

loc_4172CD:
xor	edi, edi
cmp	[ebp+var_18], edi
jle	short loc_41731E

loc_4172D4:
mov	eax, [ebp+var_14]
mov	ecx, ebx
mov	esi, [eax+edi*4]
push	esi
call	sub_41756F
test	al, al
jz	short loc_4172F6
cmp	[ebp+arg_0], 0
push	esi
mov	ecx, ebx
jnz	short loc_417319
call	sub_414E65
jmp	short loc_417311

loc_4172F6:
cmp	[ebp+arg_0], 0
jz	short loc_417304
push	1
pop	eax
cmp	[ebp+var_18], eax
jz	short loc_417306

loc_417304:
xor	eax, eax

loc_417306:
push	1
push	eax
push	esi
mov	ecx, ebx
call	sub_41515C

loc_417311:
inc	edi
cmp	edi, [ebp+var_18]
jl	short loc_4172D4
jmp	short loc_41731E

loc_417319:
call	sub_414015

loc_41731E:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_20]
call	sub_4282FE
pop	edi
pop	esi

loc_41732C:
mov	ecx, [ebp+var_C]
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_417220 endp



; Attributes: bp-based frame

sub_41733B proc	near

pvarg= VARIANTARG ptr -20h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_4450CF
call	__EH_prolog
sub	esp, 14h
and	[ebp+var_10], 0
cmp	[ebp+arg_4], 0FFFFFFFFh
push	esi
jnz	short loc_417362
mov	ecx, [ebp+arg_0]
push	offset a__	; ".."
call	sub_403091
jmp	short loc_4173D6

loc_417362:
and	word ptr [ebp+pvarg.anonymous_0], 0
and	word ptr [ebp+pvarg.anonymous_0+2], 0
mov	eax, [ecx+0FCh]
push	1
pop	esi
lea	edx, [ebp+pvarg]
mov	ecx, [eax]
push	edx
push	4
mov	[ebp+var_4], esi
push	[ebp+arg_4]
push	eax
call	dword ptr [ecx+14h]
test	eax, eax
jz	short loc_4173A0
lea	eax, [ebp+arg_4]
push	offset unk_44D120
push	eax
mov	[ebp+arg_4], 298E48h
call	_CxxThrowException

loc_4173A0:
cmp	word ptr [ebp+pvarg.anonymous_0], 8
jz	short loc_4173BC
lea	eax, [ebp+arg_4]
push	offset unk_44D120
push	eax
mov	[ebp+arg_4], 298E49h
call	_CxxThrowException

loc_4173BC:
push	dword ptr [ebp+pvarg.anonymous_0+8]
mov	ecx, [ebp+arg_0]
call	sub_403091
and	byte ptr [ebp+var_4], 0
lea	ecx, [ebp+pvarg] ; pvarg
mov	[ebp+var_10], esi
call	sub_42CDE1

loc_4173D6:
mov	ecx, [ebp+var_C]
mov	eax, [ebp+arg_0]
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_41733B endp



; Attributes: bp-based frame

sub_4173E8 proc	near

pvarg= VARIANTARG ptr -2Ch
Memory=	dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_445103
call	__EH_prolog
sub	esp, 20h
push	ebx
xor	ebx, ebx
cmp	[ebp+arg_4], 0FFFFFFFFh
push	esi
mov	[ebp+var_10], ebx
jnz	short loc_41741D
mov	esi, [ebp+arg_0]
push	3
mov	ecx, esi
mov	[esi], ebx
mov	[esi+4], ebx
mov	[esi+8], ebx
call	sub_403396
mov	eax, esi
jmp	loc_4174A8

loc_41741D:
mov	word ptr [ebp+pvarg.anonymous_0], bx
mov	word ptr [ebp+pvarg.anonymous_0+2], bx
mov	eax, [ecx+0FCh]
push	1
pop	esi
lea	edx, [ebp+pvarg]
mov	ecx, [eax]
push	edx
push	1Eh
mov	[ebp+var_4], esi
push	[ebp+arg_4]
push	eax
call	dword ptr [ecx+14h]
test	eax, eax
jz	short loc_417459
lea	eax, [ebp+arg_4]
push	offset unk_44D120
push	eax
mov	[ebp+arg_4], 298E48h
call	_CxxThrowException

loc_417459:
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_403396
cmp	word ptr [ebp+pvarg.anonymous_0], 8
mov	byte ptr [ebp+var_4], 2
jnz	short loc_417482
push	dword ptr [ebp+pvarg.anonymous_0+8]
lea	ecx, [ebp+Memory]
call	sub_404722

loc_417482:
mov	ecx, [ebp+arg_0]
lea	eax, [ebp+Memory]
push	eax
call	sub_4030F2
push	[ebp+Memory]	; Memory
mov	[ebp+var_10], esi
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], bl
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
mov	eax, [ebp+arg_0]

loc_4174A8:
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_4173E8 endp



; Attributes: bp-based frame

sub_4174B8 proc	near

var_28=	dword ptr -28h
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_445120
call	__EH_prolog
sub	esp, 1Ch
and	[ebp+var_10], 0
push	esi
push	edi
lea	eax, [ebp+var_28]
push	[ebp+arg_4]
mov	esi, ecx
push	eax
call	sub_41733B
mov	edi, eax
push	[ebp+arg_4]
and	[ebp+var_4], 0
lea	eax, [ebp+Memory]
mov	ecx, esi
push	eax
call	sub_4173E8
mov	ecx, [ebp+arg_0]
push	edi
mov	edx, eax
mov	byte ptr [ebp+var_4], 1
call	sub_40356A
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_28]	; Memory
call	sub_4284D8
mov	eax, [ebp+arg_0]
pop	ecx
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_4174B8 endp



; Attributes: bp-based frame

sub_417521 proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_445134
call	__EH_prolog
sub	esp, 10h
and	[ebp+var_10], 0
push	esi
push	[ebp+arg_4]
lea	eax, [ebp+Memory]
mov	esi, ecx
push	eax
call	sub_4174B8
mov	ecx, [ebp+arg_0]
and	[ebp+var_4], 0
push	eax
lea	edx, [esi+0D8h]
call	sub_40356A
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+arg_0]
pop	ecx
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_417521 endp



; Attributes: bp-based frame

sub_41756F proc	near

pvarg= VARIANTARG ptr -1Ch
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_445148
call	__EH_prolog
sub	esp, 10h
cmp	[ebp+arg_0], 0FFFFFFFFh
push	ebx
jnz	short loc_417587
mov	al, 1
jmp	short loc_4175F6

loc_417587:
xor	ebx, ebx
mov	word ptr [ebp+pvarg.anonymous_0], bx
mov	word ptr [ebp+pvarg.anonymous_0+2], bx
mov	eax, [ecx+0FCh]
lea	edx, [ebp+pvarg]
push	edx
push	6
push	[ebp+arg_0]
mov	ecx, [eax]
mov	[ebp+var_4], ebx
push	eax
call	dword ptr [ecx+14h]
test	eax, eax
jz	short loc_4175C2
lea	eax, [ebp+arg_0]
push	offset unk_44D120
push	eax
mov	[ebp+arg_0], 298E48h
call	_CxxThrowException

loc_4175C2:
cmp	word ptr [ebp+pvarg.anonymous_0], 0Bh
jnz	short loc_4175D2
cmp	word ptr [ebp+pvarg.anonymous_0+8], bx
setnz	bl
jmp	short loc_4175D8

loc_4175D2:
cmp	word ptr [ebp+pvarg.anonymous_0], bx
jnz	short loc_4175E8

loc_4175D8:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
mov	al, bl
jmp	short loc_4175F6

loc_4175E8:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
xor	al, al

loc_4175F6:
mov	ecx, [ebp+var_C]
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_41756F endp



; Attributes: bp-based frame

sub_417605 proc	near

pvarg= VARIANTARG ptr -1Ch
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_44515C
call	__EH_prolog
sub	esp, 10h
cmp	[ebp+arg_0], 0FFFFFFFFh
push	esi
jz	short loc_417666
xor	esi, esi
mov	word ptr [ebp+pvarg.anonymous_0], si
mov	word ptr [ebp+pvarg.anonymous_0+2], si
mov	eax, [ecx+0FCh]
lea	edx, [ebp+pvarg]
push	edx
push	7
push	[ebp+arg_0]
mov	ecx, [eax]
mov	[ebp+var_4], esi
push	eax
call	dword ptr [ecx+14h]
test	eax, eax
jz	short loc_417654
lea	eax, [ebp+arg_0]
push	offset unk_44D120
push	eax
mov	[ebp+arg_0], 298E48h
call	_CxxThrowException

loc_417654:
cmp	word ptr [ebp+pvarg.anonymous_0], si
jnz	short loc_41766C
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1

loc_417666:
xor	eax, eax
xor	edx, edx
jmp	short loc_41768A

loc_41766C:
push	edi
lea	ecx, [ebp+pvarg]
call	sub_42D2C6
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
mov	esi, eax
mov	edi, edx
call	sub_42CDE1
mov	edx, edi
mov	eax, esi
pop	edi

loc_41768A:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_417605 endp



; Attributes: bp-based frame

sub_417699 proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_445170
call	__EH_prolog
sub	esp, 0Ch
push	esi
lea	eax, [ebp+Memory]
push	edi
mov	esi, ecx
push	eax
call	sub_40E5DA
and	[ebp+var_4], 0
lea	edi, [esi+118h]
push	eax
mov	ecx, edi
call	sub_40312C
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
cmp	dword ptr [esi+11Ch], 0
pop	ecx
jz	short loc_4176E8
lea	edx, [esi+124h]
mov	ecx, edi
call	sub_420A31

loc_4176E8:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_417699 endp



; Attributes: bp-based frame

sub_4176F6 proc	near

lParam=	dword ptr -5Ch
var_54=	dword ptr -54h
var_40=	dword ptr -40h
var_3C=	dword ptr -3Ch
var_28=	dword ptr -28h
var_24=	byte ptr -24h
var_20=	dword ptr -20h
var_1C=	byte ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44518C
call	__EH_prolog
sub	esp, 50h
push	ebx
push	esi
push	edi
mov	ebx, ecx
xor	edi, edi
cmp	[ebx+15Ch], edi
jle	short loc_417752

loc_417712:
mov	eax, [ebx+160h]
mov	esi, [eax+edi*4]
lea	eax, [ebp+lParam]
push	eax		; lParam
push	edi		; wParam
push	1019h		; Msg
mov	[ebp+lParam], 22h
push	dword ptr [ebx+74h] ; hWnd
call	ds:SendMessageA
test	eax, eax
jz	loc_4177C1
mov	eax, [ebp+var_40]
inc	edi
mov	[esi+14h], eax
mov	eax, [ebp+var_54]
mov	[esi+1Ch], eax
cmp	edi, [ebx+15Ch]
jl	short loc_417712

loc_417752:
lea	ecx, [ebp+var_3C]
call	sub_40337B
mov	[ebp+var_3C], offset off_44BA44
mov	eax, [ebx+168h]
xor	esi, esi
push	esi
push	offset sub_417CE7
lea	ecx, [ebx+154h]
mov	[ebp+var_4], esi
mov	[ebp+var_14], eax
call	sub_43748B
mov	eax, [ebx+15Ch]
mov	[ebp+var_10], esi
cmp	eax, esi
jle	short loc_4177EF

loc_41778D:
mov	eax, [ebx+160h]
mov	ecx, [ebp+var_10]
push	0Ch		; Size
mov	eax, [eax+ecx*4]
mov	cl, [eax+18h]
mov	[ebp+var_1C], cl
mov	ecx, [eax+0Ch]
mov	eax, [eax+1Ch]
mov	[ebp+var_20], ecx
mov	[ebp+var_18], eax
call	sub_4284B1
test	eax, eax
pop	ecx
jz	short loc_4177D6
lea	esi, [ebp+var_20]
mov	edi, eax
movsd
movsd
movsd
jmp	short loc_4177D8

loc_4177C1:
lea	eax, [ebp+var_10]
push	offset unk_44D120
push	eax
mov	[ebp+var_10], 1
call	_CxxThrowException

loc_4177D6:
xor	eax, eax

loc_4177D8:
push	eax
lea	ecx, [ebp+var_3C]
call	sub_429907
inc	[ebp+var_10]
mov	eax, [ebp+var_10]
cmp	eax, [ebx+15Ch]
jl	short loc_41778D

loc_4177EF:
and	[ebp+var_10], 0
cmp	dword ptr [ebx+148h], 0
jle	short loc_41784D

loc_4177FC:
mov	eax, [ebx+14Ch]
mov	ecx, [ebp+var_10]
mov	eax, [eax+ecx*4]
cmp	byte ptr [eax+18h], 0
jnz	short loc_41783F
mov	ecx, [eax+0Ch]
mov	eax, [eax+1Ch]
and	[ebp+var_1C], 0
push	0Ch		; Size
mov	[ebp+var_20], ecx
mov	[ebp+var_18], eax
call	sub_4284B1
test	eax, eax
pop	ecx
jz	short loc_417834
lea	esi, [ebp+var_20]
mov	edi, eax
movsd
movsd
movsd
jmp	short loc_417836

loc_417834:
xor	eax, eax

loc_417836:
push	eax
lea	ecx, [ebp+var_3C]
call	sub_429907

loc_41783F:
inc	[ebp+var_10]
mov	eax, [ebp+var_10]
cmp	eax, [ebx+148h]
jl	short loc_4177FC

loc_41784D:
mov	eax, [ebp+var_14]
lea	esi, [ebx+124h]
mov	[ebp+var_28], eax
mov	al, [ebx+16Ch]
mov	[ebp+var_24], al
lea	eax, [ebp+var_3C]
push	eax
mov	ecx, esi
call	sub_4178BB
test	al, al
jnz	short loc_41788A
lea	edx, [ebp+var_3C]
lea	ecx, [ebx+118h]
call	sub_420825
lea	eax, [ebp+var_3C]
mov	ecx, esi
push	eax
call	sub_417930

loc_41788A:
mov	[ebp+var_3C], offset off_44BA44
lea	ecx, [ebp+var_3C]
mov	[ebp+var_4], 1
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_3C]
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_4176F6 endp




sub_4178BB proc	near

arg_0= dword ptr  4

push	ebx
push	esi
mov	esi, ecx
push	edi
mov	edi, [esp+0Ch+arg_0]
mov	eax, [esi+8]
cmp	eax, [edi+8]
jnz	short loc_417901
mov	ecx, [esi+14h]
cmp	ecx, [edi+14h]
jnz	short loc_417901
mov	cl, [esi+18h]
cmp	cl, [edi+18h]
jnz	short loc_417901
xor	ebx, ebx
test	eax, eax
jle	short loc_4178FD

loc_4178E2:
mov	eax, [edi+0Ch]
mov	edx, [eax+ebx*4]
mov	eax, [esi+0Ch]
mov	ecx, [eax+ebx*4]
call	sub_417909
test	al, al
jnz	short loc_417901
inc	ebx
cmp	ebx, [esi+8]
jl	short loc_4178E2

loc_4178FD:
mov	al, 1
jmp	short loc_417903

loc_417901:
xor	al, al

loc_417903:
pop	edi
pop	esi
pop	ebx
retn	4
sub_4178BB endp




sub_417909 proc	near
mov	eax, [ecx]
cmp	eax, [edx]
jnz	short loc_417924
mov	al, [ecx+4]
cmp	al, [edx+4]
jnz	short loc_417924
mov	eax, [ecx+8]
cmp	eax, [edx+8]
jnz	short loc_417924
push	1
pop	eax
jmp	short loc_417926

loc_417924:
xor	eax, eax

loc_417926:
xor	ecx, ecx
test	al, al
setz	cl
mov	al, cl
retn
sub_417909 endp




sub_417930 proc	near

arg_0= dword ptr  4

push	esi
push	edi
mov	esi, ecx
call	sub_428327
mov	edi, [esp+8+arg_0]
mov	ecx, esi
push	edi
call	sub_417C3F
mov	eax, [edi+14h]
mov	[esi+14h], eax
mov	al, [edi+18h]
mov	[esi+18h], al
mov	eax, esi
pop	edi
pop	esi
retn	4
sub_417930 endp



; Attributes: bp-based frame

sub_417958 proc	near

Point= tagPOINT	ptr -8
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

push	ebp
mov	ebp, esp
push	ecx
push	ecx
mov	eax, [ebp+arg_0]
push	esi
mov	esi, ecx
mov	eax, [eax]
cmp	eax, [esi+74h]
jnz	short loc_41796E
xor	al, al
jmp	short loc_41798D

loc_41796E:
lea	eax, [ebp+Point]
push	eax		; lpPoint
call	ds:GetCursorPos
push	[ebp+Point.y]
mov	ecx, esi
push	[ebp+Point.x]
call	sub_417992
mov	ecx, [ebp+arg_4]
push	1
pop	eax
mov	[ecx], eax

loc_41798D:
pop	esi
leave
retn	8
sub_417958 endp



; Attributes: bp-based frame

sub_417992 proc	near

var_14=	dword ptr -14h
hMenu= dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_4451A0
call	__EH_prolog
push	ecx
push	ecx
push	ebx
xor	ebx, ebx
lea	eax, [ebp+hMenu]
push	esi
push	edi
mov	esi, ecx
mov	[ebp+hMenu], ebx
mov	[ebp+var_14], eax
mov	[ebp+var_4], ebx
call	ds:CreatePopupMenu
xor	edi, edi
cmp	[esi+148h], ebx
mov	[ebp+hMenu], eax
jle	short loc_4179F6

loc_4179C4:
mov	eax, [esi+14Ch]
xor	ecx, ecx
mov	eax, [eax+edi*4]
cmp	[eax+18h], cl
jz	short loc_4179D7
push	8
pop	ecx

loc_4179D7:
cmp	edi, ebx
jnz	short loc_4179DE
or	ecx, 1

loc_4179DE:		; lpNewItem
push	dword ptr [eax]
lea	eax, [edi+64h]
push	eax		; uIDNewItem
push	ecx		; uFlags
lea	ecx, [ebp+hMenu]
call	sub_42C93E
inc	edi
cmp	edi, [esi+148h]
jl	short loc_4179C4

loc_4179F6:
mov	eax, [esi+74h]
push	ebx		; LPTPMPARAMS
push	eax		; HWND
push	[ebp+arg_4]	; int
push	[ebp+arg_0]	; int
push	180h		; UINT
push	[ebp+hMenu]	; HMENU
call	ds:TrackPopupMenuEx
cmp	eax, 64h
jl	loc_417ACB
mov	ecx, [esi+148h]
add	ecx, 64h
cmp	eax, ecx
jg	loc_417ACB
mov	ecx, [esi+14Ch]
mov	edi, [ecx+eax*4-190h]
cmp	byte ptr [edi+18h], 0
setz	al
test	al, al
mov	[edi+18h], al
jz	short loc_417A63
mov	ebx, [esi+15Ch]
push	edi
lea	ecx, [esi+154h]
mov	[edi+14h], ebx
call	sub_417BA1
push	ebx		; wParam
mov	ecx, esi
call	sub_416615
jmp	short loc_417ACB

loc_417A63:
mov	eax, [esi+15Ch]
lea	ecx, [esi+154h]
cmp	eax, ebx
mov	[ebp+arg_4], ebx
jle	short loc_417A91
mov	eax, [ecx+0Ch]

loc_417A79:
mov	ebx, [eax]
mov	edx, [edi+0Ch]
cmp	[ebx+0Ch], edx
jz	short loc_417AF5
inc	[ebp+arg_4]
add	eax, 4
mov	edx, [ebp+arg_4]
cmp	edx, [ecx+8]
jl	short loc_417A79

loc_417A91:
or	ebx, 0FFFFFFFFh

loc_417A94:
mov	eax, [ecx]
push	1
push	ebx
call	dword ptr [eax+4]
mov	ecx, [esi+168h]
lea	eax, [esi+168h]
cmp	ecx, [edi+0Ch]
jnz	short loc_417ABA
mov	dword ptr [eax], 4
mov	byte ptr [esi+16Ch], 1

loc_417ABA:		; lParam
push	0
push	ebx		; wParam
push	101Ch		; Msg
push	dword ptr [esi+74h] ; hWnd
call	ds:SendMessageA

loc_417ACB:
lea	eax, [ebp+hMenu]
pop	edi
pop	esi
pop	ebx
test	eax, eax
jz	short loc_417AE7
mov	eax, [ebp+hMenu]
test	eax, eax
jz	short loc_417AE7
and	[ebp+hMenu], 0
push	eax		; hMenu
call	ds:DestroyMenu

loc_417AE7:
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn	8

loc_417AF5:
mov	ebx, [ebp+arg_4]
jmp	short loc_417A94
sub_417992 endp

; START	OF FUNCTION CHUNK FOR sub_445198

loc_417AFA:
mov	eax, [ecx]
test	eax, eax
jz	short locret_417B10
mov	ecx, [eax]
test	ecx, ecx
jz	short locret_417B10
and	dword ptr [eax], 0
push	ecx		; hMenu
call	ds:DestroyMenu

locret_417B10:
retn
; END OF FUNCTION CHUNK	FOR sub_445198



sub_417B11 proc	near
push	esi
mov	esi, ecx
call	sub_4168AC
test	eax, eax
jz	short loc_417B25
push	eax
mov	ecx, esi
call	sub_40E579

loc_417B25:
mov	ecx, esi
call	sub_41877A
pop	esi
retn
sub_417B11 endp



; Attributes: bp-based frame

sub_417B2E proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4451B4
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, ecx
cmp	byte ptr [esi+184h], 0
jz	short loc_417B94
and	[ebp+var_10], 0
mov	eax, [esi+0FCh]
and	[ebp+var_4], 0
lea	edx, [ebp+var_10]
mov	ecx, [eax]
push	edx
push	offset unk_44B6C0
push	eax
call	dword ptr [ecx]
test	eax, eax
jnz	short loc_417B83
mov	eax, [ebp+var_10]
lea	edx, [ebp+var_14]
push	edx
push	eax
mov	ecx, [eax]
call	dword ptr [ecx+0Ch]
test	eax, eax
jnz	short loc_417B83
cmp	[ebp+var_14], eax
jz	short loc_417B83
mov	ecx, esi
call	sub_417B11

loc_417B83:
mov	eax, [ebp+var_10]
or	[ebp+var_4], 0FFFFFFFFh
test	eax, eax
jz	short loc_417B94
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_417B94:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_417B2E endp



; Attributes: bp-based frame

sub_417BA1 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset unknown_libname_24 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	20h		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_10], ecx
xor	eax, eax
cmp	ecx, eax
mov	[ebp+var_4], eax
jz	short loc_417BCD
push	[ebp+arg_0]
call	sub_417C0A

loc_417BCD:
or	[ebp+var_4], 0FFFFFFFFh
push	eax
mov	ecx, esi
call	sub_429907
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_417BA1 endp




sub_417BE8 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_428350
mov	eax, [esi+0Ch]
mov	ecx, [esi+8]
mov	dl, [esp+4+arg_0]
mov	[eax+ecx], dl
mov	eax, [esi+8]
lea	ecx, [eax+1]
mov	[esi+8], ecx
pop	esi
retn	4
sub_417BE8 endp




sub_417C0A proc	near

arg_0= dword ptr  4

push	esi
push	edi
mov	edi, [esp+8+arg_0]
mov	esi, ecx
push	edi
call	sub_4030F2
mov	eax, [edi+0Ch]
mov	[esi+0Ch], eax
mov	ax, [edi+10h]
mov	[esi+10h], ax
mov	eax, [edi+14h]
mov	[esi+14h], eax
mov	al, [edi+18h]
mov	[esi+18h], al
mov	eax, [edi+1Ch]
mov	[esi+1Ch], eax
mov	eax, esi
pop	edi
pop	esi
retn	4
sub_417C0A endp



; Attributes: bp-based frame

sub_417C3F proc	near

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]
push	ebx
push	esi
push	edi
mov	esi, [eax+8]
mov	edi, ecx
mov	[ebp+var_4], edi
mov	[ebp+var_8], esi
mov	eax, [edi+8]
add	eax, esi
push	eax
call	sub_428378
xor	ebx, ebx
test	esi, esi
jle	short loc_417C95

loc_417C66:
mov	eax, [ebp+arg_0]
push	0Ch		; Size
mov	eax, [eax+0Ch]
mov	esi, [eax+ebx*4]
call	sub_4284B1
test	eax, eax
pop	ecx
jz	short loc_417C85
mov	edi, eax
movsd
movsd
movsd
mov	edi, [ebp+var_4]
jmp	short loc_417C87

loc_417C85:
xor	eax, eax

loc_417C87:
push	eax
mov	ecx, edi
call	sub_429907
inc	ebx
cmp	ebx, [ebp+var_8]
jl	short loc_417C66

loc_417C95:
mov	eax, edi
pop	edi
pop	esi
pop	ebx
leave
retn	4
sub_417C3F endp



; Attributes: bp-based frame

sub_417C9E proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4451DC
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, ecx
sub	esp, 0Ch
mov	ecx, esp
mov	[ebp+var_10], esp
push	dword ptr [edx]
call	sub_4030F2
and	[ebp+var_4], 0
sub	esp, 0Ch
mov	ecx, esp
mov	[ebp+var_14], esp
push	dword ptr [esi]
call	sub_4030F2
or	[ebp+var_4], 0FFFFFFFFh
call	sub_417D30
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
pop	esi
leave
retn	4
sub_417C9E endp



; Attributes: bp-based frame

sub_417CE7 proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4451F0
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, ecx
sub	esp, 20h
mov	ecx, esp
mov	[ebp+var_10], esp
push	dword ptr [edx]
call	sub_417C0A
and	[ebp+var_4], 0
sub	esp, 20h
mov	ecx, esp
mov	[ebp+var_14], esp
push	dword ptr [esi]
call	sub_417C0A
or	[ebp+var_4], 0FFFFFFFFh
call	sub_417D8C
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
pop	esi
leave
retn	4
sub_417CE7 endp



; Attributes: bp-based frame

; int __stdcall	sub_417D30(void	*Memory, int, int, int,	int, int)
sub_417D30 proc	near

var_C= dword ptr -0Ch
var_4= dword ptr -4
Memory=	dword ptr  8
arg_C= dword ptr  14h

mov	eax, offset loc_44520C
call	__EH_prolog
push	esi
mov	edx, [ebp+arg_C]
mov	ecx, [ebp+Memory]
mov	[ebp+var_4], 1
call	sub_42828A
test	eax, eax
jge	short loc_417D56
or	esi, 0FFFFFFFFh
jmp	short loc_417D69

loc_417D56:
mov	edx, [ebp+arg_C]
mov	ecx, [ebp+Memory]
call	sub_42828A
mov	esi, eax
neg	esi
sbb	esi, esi
neg	esi

loc_417D69:		; Memory
push	[ebp+Memory]
call	sub_4284D8
push	[ebp+arg_C]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
pop	ecx
pop	esi
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn	18h
sub_417D30 endp



; Attributes: bp-based frame

; int __stdcall	sub_417D8C(void	*Memory, int, int, int,	int, int, int, int, int, int, int, int,	int, int, int, int)
sub_417D8C proc	near

Memory=	dword ptr  8
arg_14=	dword ptr  1Ch
arg_20=	dword ptr  28h
arg_34=	dword ptr  3Ch

push	ebp
mov	ebp, esp
mov	eax, [ebp+arg_14]
push	esi
cmp	eax, [ebp+arg_34]
jge	short loc_417D9D
or	esi, 0FFFFFFFFh
jmp	short loc_417DA7

loc_417D9D:
xor	ecx, ecx
cmp	eax, [ebp+arg_34]
setnz	cl
mov	esi, ecx

loc_417DA7:		; Memory
push	[ebp+Memory]
call	sub_4284D8
push	[ebp+arg_20]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
pop	ecx
pop	esi
pop	ebp
retn	40h
sub_417D8C endp



; Attributes: bp-based frame

sub_417DC0 proc	near

wParam=	dword ptr -0Ch
var_8= dword ptr -8
var_1= byte ptr	-1
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

push	ebp
mov	ebp, esp
sub	esp, 0Ch
push	ebx
push	esi
push	edi
mov	edi, [ebp+arg_0]
mov	[ebp+wParam], ecx
cmp	word ptr [edi+0Ch], 9
jnz	short loc_417DED
mov	eax, [edi]
cmp	eax, [ecx+74h]
jnz	short loc_417DED
mov	ecx, [ecx+44h]
mov	eax, [ecx]
call	dword ptr [eax]

loc_417DE4:
xor	al, al

loc_417DE6:
pop	edi
pop	esi
pop	ebx
leave
retn	8

loc_417DED:
mov	esi, ds:GetKeyState
push	12h		; nVirtKey
call	esi ; GetKeyState
shr	eax, 0Fh
and	al, 1
push	11h		; nVirtKey
mov	[ebp+var_1], al
call	esi ; GetKeyState
shr	eax, 0Fh
and	al, 1
push	0A3h		; nVirtKey
mov	byte ptr [ebp+arg_0+3],	al
call	esi ; GetKeyState
mov	bx, ax
push	10h		; nVirtKey
shr	ebx, 0Fh
and	bl, 1
call	esi ; GetKeyState
shr	eax, 0Fh
and	al, 1
xor	esi, esi
mov	byte ptr [ebp+var_8], al
mov	eax, [ebp+arg_4]
mov	[eax], esi
mov	ax, [edi+0Ch]
cmp	ax, 30h
jb	short loc_417E6B
cmp	ax, 39h
ja	short loc_417E6B
test	bl, bl
jnz	short loc_417E47
cmp	[ebp+var_1], bl
jz	short loc_417E6B

loc_417E47:
mov	ecx, [ebp+wParam]
movzx	eax, ax
sub	eax, 30h
cmp	byte ptr [ebp+var_8], 0
push	eax
jz	short loc_417E61
call	sub_4130B3
jmp	loc_4181BA

loc_417E61:
call	sub_41314E
jmp	loc_4181BA

loc_417E6B:
cmp	ax, 71h
jz	short loc_417E77
cmp	ax, 70h
jnz	short loc_417EA3

loc_417E77:
cmp	[ebp+var_1], 0
jz	short loc_417EA3
cmp	byte ptr [ebp+arg_0+3],	0
jnz	short loc_417EA3
cmp	byte ptr [ebp+var_8], 0
jnz	short loc_417EA3
mov	ecx, [ebp+wParam]
xor	ebx, ebx
cmp	ax, 70h
mov	ecx, [ecx+44h]
setnz	bl
mov	edx, [ecx]
push	ebx
call	dword ptr [edx+4]
jmp	loc_4181BA

loc_417EA3:
cmp	ax, 78h
jnz	short loc_417EC5
cmp	[ebp+var_1], 0
jnz	short loc_417EC5
cmp	byte ptr [ebp+arg_0+3],	0
jnz	short loc_417EC5
cmp	byte ptr [ebp+var_8], 0
jnz	short loc_417EC5
mov	ecx, offset dword_45D4C0
call	sub_4017B2

loc_417EC5:
mov	cx, [edi+0Ch]
cmp	cx, 72h
jb	short loc_417EF7
cmp	cx, 7Bh
ja	short loc_417EF7
cmp	byte ptr [ebp+arg_0+3],	0
jz	short loc_417EF7
call	sub_418254
cmp	eax, esi
jl	short loc_417EF7
mov	ebx, [ebp+wParam]
push	dword_45BA8C[eax*8] ; int
mov	ecx, ebx	; wParam
call	sub_41BE7A
jmp	short loc_417EFA

loc_417EF7:
mov	ebx, [ebp+wParam]

loc_417EFA:
movzx	eax, word ptr [edi+0Ch]
cmp	eax, 4Eh
jg	loc_41809F
jz	loc_418089
cmp	eax, 28h
jg	loc_417FBF
jz	short loc_417F4D
sub	eax, 8
jz	loc_417FB3
sub	eax, 8
jz	short loc_417F99
sub	eax, 12h
jz	short loc_417F76
sub	eax, 3
jz	short loc_417F3A
dec	eax
jz	short loc_417F63
dec	eax
jnz	loc_417DE4

loc_417F3A:
cmp	[ebp+var_1], 0
jz	short loc_417F4D
mov	ecx, [ebx+44h]
mov	eax, [ecx]
call	dword ptr [eax+10h]
jmp	loc_417DE4

loc_417F4D:
cmp	byte ptr [ebp+var_8], 0
jz	loc_417DE4
mov	ecx, ebx
call	sub_41B4AB
jmp	loc_417DE4

loc_417F63:
cmp	[ebp+var_1], 0
jz	short loc_417F4D
mov	ecx, [ebx+44h]
mov	eax, [ecx]
call	dword ptr [eax+0Ch]
jmp	loc_417DE4

loc_417F76:
cmp	byte ptr [ebp+arg_0+3],	0
jz	loc_417DE4
cmp	[ebp+var_1], 0
jnz	loc_417DE4
cmp	byte ptr [ebp+var_8], 0
jnz	loc_417DE4
jmp	loc_4181BA

loc_417F99:
and	byte ptr [ebx+17Ch], 0
lea	ecx, [ebx+74h]
call	sub_402DF8
mov	[ebx+180h], eax
jmp	loc_417DE4

loc_417FB3:
mov	ecx, ebx
call	sub_413C6E
jmp	loc_4181BA

loc_417FBF:
cmp	eax, 2Dh
jz	short loc_418032
cmp	eax, 2Eh
jz	short loc_41801E
cmp	eax, 30h
jle	loc_417DE4
cmp	eax, 34h
jle	short loc_418004
cmp	eax, 41h
jz	short loc_417FF1
cmp	eax, 43h
jnz	loc_417DE4
cmp	byte ptr [ebp+arg_0+3],	0
jz	loc_417DE4
jmp	short loc_418048

loc_417FF1:
cmp	byte ptr [ebp+arg_0+3],	0
jz	loc_417DE4

loc_417FFB:
push	1
mov	ecx, ebx
jmp	loc_418172

loc_418004:
cmp	byte ptr [ebp+arg_0+3],	0
jz	loc_417DE4
add	eax, 0FFFFFFCFh
mov	ecx, ebx
push	eax
call	sub_40E8BF
jmp	loc_4181BA

loc_41801E:
cmp	byte ptr [ebp+var_8], 0
mov	ecx, ebx
setz	al
push	eax
call	sub_419DE1
jmp	loc_4181BA

loc_418032:
cmp	[ebp+var_1], 0
jnz	loc_417DE4
cmp	byte ptr [ebp+arg_0+3],	0
jz	short loc_418054
cmp	byte ptr [ebp+var_8], 0
jnz	short loc_41805A

loc_418048:
mov	ecx, ebx
call	sub_41913D
jmp	loc_4181BA

loc_418054:
cmp	byte ptr [ebp+var_8], 0
jz	short loc_418070

loc_41805A:
cmp	byte ptr [ebp+arg_0+3],	0
jnz	loc_417DE4

loc_418064:
mov	ecx, ebx
call	nullsub_2
jmp	loc_4181BA

loc_418070:
cmp	byte ptr [ebx+8Fh], 0
jz	loc_417DE4
mov	ecx, ebx
call	sub_41B556
jmp	loc_4181BA

loc_418089:
cmp	byte ptr [ebp+arg_0+3],	0
jz	loc_417DE4
mov	ecx, ebx

loc_418095:
call	sub_41AC27
jmp	loc_4181BA

loc_41809F:
cmp	eax, 6Dh
jg	loc_418179
jz	loc_418159
sub	eax, 52h
jz	loc_418146
sub	eax, 4
jz	short loc_418137
dec	eax
dec	eax
jz	short loc_418121
dec	eax
dec	eax
jz	short loc_41810B
sub	eax, 10h
jz	short loc_4180FF
dec	eax
jnz	loc_417DE4
cmp	[ebp+var_1], 0
jz	short loc_4180DD
push	1
jmp	loc_418160

loc_4180DD:
cmp	byte ptr [ebp+var_8], 0
jnz	loc_417FFB
cmp	byte ptr [ebp+arg_0+3],	0
jnz	loc_4181BA
push	1
mov	ecx, ebx

loc_4180F5:
call	sub_41B6E1
jmp	loc_4181BA

loc_4180FF:
mov	ecx, ebx
call	sub_41BA46
jmp	loc_4181BA

loc_41810B:
cmp	byte ptr [ebp+arg_0+3],	0
jz	loc_417DE4
mov	ecx, ebx
call	sub_41AEAE
jmp	loc_4181BA

loc_418121:
cmp	byte ptr [ebp+arg_0+3],	0
jz	loc_417DE4
mov	ecx, ebx
call	nullsub_2
jmp	loc_4181BA

loc_418137:
cmp	byte ptr [ebp+arg_0+3],	0
jz	loc_417DE4
jmp	loc_418064

loc_418146:
cmp	byte ptr [ebp+arg_0+3],	0
jz	loc_417DE4
mov	ecx, ebx
call	sub_417B11
jmp	short loc_4181BA

loc_418159:
cmp	[ebp+var_1], 0
jz	short loc_418169
push	esi

loc_418160:
mov	ecx, ebx
call	sub_41B832
jmp	short loc_4181BA

loc_418169:
cmp	byte ptr [ebp+var_8], 0
push	esi
mov	ecx, ebx
jz	short loc_4180F5

loc_418172:
call	sub_41BA14
jmp	short loc_4181BA

loc_418179:
sub	eax, 71h
jz	loc_41822A
dec	eax
dec	eax
jz	short loc_418203
dec	eax
jz	short loc_4181E4
dec	eax
jz	short loc_4181C1
sub	eax, 6
jnz	loc_417DE4
cmp	[ebp+var_1], 0
jz	loc_417DE4
cmp	byte ptr [ebp+arg_0+3],	0
jnz	loc_417DE4
cmp	byte ptr [ebp+var_8], 0
jnz	loc_417DE4
mov	ecx, ebx
call	sub_413A0F

loc_4181BA:
mov	al, 1
jmp	loc_417DE6

loc_4181C1:
cmp	[ebp+var_1], 0
jnz	loc_417DE4
cmp	byte ptr [ebp+arg_0+3],	0
jnz	loc_417DE4
mov	ecx, [ebx+44h]
push	[ebp+var_8]
mov	eax, [ecx]
push	1

loc_4181DF:
call	dword ptr [eax+8]
jmp	short loc_4181BA

loc_4181E4:
cmp	[ebp+var_1], 0
jnz	loc_417DE4
cmp	byte ptr [ebp+arg_0+3],	0
jnz	loc_417DE4
mov	ecx, [ebx+44h]
push	[ebp+var_8]
mov	eax, [ecx]
push	esi
jmp	short loc_4181DF

loc_418203:
cmp	[ebp+var_1], 0
jnz	loc_417DE4
cmp	byte ptr [ebp+arg_0+3],	0
jnz	loc_417DE4
cmp	byte ptr [ebp+var_8], 0
mov	ecx, ebx
jnz	loc_418095
call	sub_4171AB
jmp	short loc_4181BA

loc_41822A:
cmp	[ebp+var_1], 0
jnz	loc_417DE4
cmp	byte ptr [ebp+arg_0+3],	0
jnz	loc_417DE4
cmp	byte ptr [ebp+var_8], 0
jnz	loc_417DE4
mov	ecx, ebx
call	sub_41AE8D
jmp	loc_4181BA
sub_417DC0 endp




sub_418254 proc	near
xor	eax, eax
mov	edx, offset aR	; "r"

loc_41825B:
cmp	[edx], cx
jz	short locret_41826F
add	edx, 8
inc	eax
cmp	edx, offset aError ; "Error: "
jb	short loc_41825B
or	eax, 0FFFFFFFFh

locret_41826F:
retn
sub_418254 endp



; Attributes: bp-based frame

sub_418270 proc	near

var_48=	word ptr -48h
var_A= word ptr	-0Ah
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, 48h
push	ebx
push	esi
push	edi
mov	[ebp+var_4], ecx
push	[ebp+arg_4]
xor	ebx, ebx
lea	ecx, [ebp+var_48]
mov	[ebp+var_8], ebx
push	[ebp+arg_0]
call	sub_427B10
xor	edx, edx
cmp	[ebp+var_48], bx
push	2
pop	edi
jz	short loc_4182A5
lea	eax, [ebp+var_48]

loc_41829D:
add	eax, edi
inc	edx
cmp	[eax], bx
jnz	short loc_41829D

loc_4182A5:
push	1Fh
cmp	edx, 3
pop	esi
mov	[ebp+var_A], bx
jle	short loc_4182E9
lea	eax, [ebp+var_A]
lea	ecx, [ebp+edx*2+var_48]

loc_4182B8:
sub	ecx, edi
sub	eax, edi
dec	edx
dec	esi
mov	bx, [ecx]
sub	ecx, edi
mov	[eax], bx
sub	eax, edi
mov	bx, [ecx]
sub	ecx, edi
mov	[eax], bx
dec	edx
mov	bx, [ecx]
sub	eax, edi
dec	esi
dec	edx
dec	esi
mov	[eax], bx
sub	eax, edi
dec	esi
cmp	edx, 3
mov	word ptr [eax],	20h
jg	short loc_4182B8

loc_4182E9:
test	edx, edx
jle	short loc_418304
lea	ecx, [ebp+esi*2+var_48]
lea	eax, [ebp+edx*2+var_48]
sub	esi, edx

loc_4182F7:
sub	eax, edi
sub	ecx, edi
dec	edx
mov	bx, [eax]
mov	[ecx], bx
jnz	short loc_4182F7

loc_418304:
mov	ecx, [ebp+var_4]
lea	eax, [ebp+esi*2+var_48]
push	eax
call	sub_403091
mov	eax, [ebp+var_4]
pop	edi
pop	esi
pop	ebx
leave
retn	8
sub_418270 endp



; Attributes: bp-based frame

sub_41831B proc	near

pvarg= VARIANTARG ptr -50h
var_40=	dword ptr -40h
var_34=	dword ptr -34h
Memory=	dword ptr -28h
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_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_445258
call	__EH_prolog
sub	esp, 44h
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
push	edi
cmp	[esi+0D7h], bl
jnz	loc_418517
mov	edi, [ebp+arg_0]
mov	eax, [edi+20h]
test	byte ptr [edi],	1
mov	[ebp+var_10], eax
jz	loc_418517
cmp	eax, 0FFFFFFFFh
jz	loc_418517
push	3
lea	ecx, [ebp+var_1C]
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_403396
mov	eax, [edi+8]
mov	ecx, [esi+160h]
mov	[ebp+var_4], ebx
mov	eax, [ecx+eax*4]
mov	edi, [eax+0Ch]
mov	word ptr [ebp+pvarg.anonymous_0], bx
mov	word ptr [ebp+pvarg.anonymous_0+2], bx
mov	eax, [esi+0FCh]
lea	edx, [ebp+pvarg]
push	edx
push	edi
push	[ebp+var_10]
mov	ecx, [eax]
mov	byte ptr [ebp+var_4], 1
push	eax
call	dword ptr [ecx+14h]
cmp	eax, ebx
jz	short loc_4183FC
mov	edx, eax
lea	ecx, [ebp+var_40]
call	sub_425088
mov	esi, eax
push	offset aError	; "Error: "
lea	ecx, [ebp+var_34]
mov	byte ptr [ebp+var_4], 2
call	sub_403091
push	esi
mov	edx, eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 3
call	sub_40356A
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 4
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_34]	; Memory
call	sub_4284D8
push	[ebp+var_40]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
add	esp, 0Ch
jmp	loc_4184AD

loc_4183FC:
cmp	word ptr [ebp+pvarg.anonymous_0], 15h
jz	short loc_41840A
cmp	word ptr [ebp+pvarg.anonymous_0], 13h
jnz	short loc_418440

loc_41840A:
cmp	edi, 7
jz	short loc_418481
cmp	edi, 8
jz	short loc_418481
cmp	edi, 1Fh
jz	short loc_418481
cmp	edi, 20h
jz	short loc_418481
cmp	edi, 1Dh
jz	short loc_418481
cmp	edi, 26h
jz	short loc_418481
cmp	edi, 1102h
jz	short loc_418481
cmp	edi, 1100h
jz	short loc_418481
cmp	edi, 1101h
jz	short loc_418481

loc_418440:
push	ebx
push	edi
lea	edx, [ebp+pvarg]
lea	ecx, [ebp+var_40]
call	sub_4371AD
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 6
call	sub_40312C
push	[ebp+var_40]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
pop	ecx
push	20h
push	0Ah
lea	ecx, [ebp+var_1C]
call	sub_4189DD
push	20h
push	0Dh
lea	ecx, [ebp+var_1C]
call	sub_4189DD
jmp	short loc_4184AD

loc_418481:
lea	ecx, [ebp+pvarg]
call	sub_42D2C6
push	edx
push	eax
lea	ecx, [ebp+var_40]
call	sub_418270
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 5
call	sub_40312C
push	[ebp+var_40]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
pop	ecx

loc_4184AD:
mov	esi, [ebp+arg_0]
mov	eax, [esi+18h]
cmp	eax, ebx
jle	short loc_418503
mov	ecx, [ebp+var_18]
inc	ecx
cmp	ecx, eax
jle	short loc_4184E3
dec	eax
lea	ecx, [ebp+var_1C]
push	eax
lea	eax, [ebp+var_40]
push	eax
call	sub_403228
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 7
call	sub_40312C
push	[ebp+var_40]	; Memory
call	sub_4284D8
pop	ecx

loc_4184E3:
mov	edx, [ebp+var_1C]
mov	eax, [esi+14h]
push	2
mov	cx, [edx]
pop	esi
mov	[eax], cx

loc_4184F2:
add	eax, esi
add	edx, esi
cmp	cx, bx
jz	short loc_418503
mov	cx, [edx]
mov	[eax], cx
jmp	short loc_4184F2

loc_418503:		; pvarg
lea	ecx, [ebp+pvarg]
mov	byte ptr [ebp+var_4], bl
call	sub_42CDE1
push	[ebp+var_1C]	; Memory
call	sub_4284D8
pop	ecx

loc_418517:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
xor	eax, eax
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_41831B endp




sub_41852A proc	near

arg_0= dword ptr  4

mov	edx, [esp+arg_0]
push	esi
mov	esi, [edx+28h]
cmp	esi, 0FFFFFFFFh
jz	short loc_418553
mov	eax, [edx+14h]
mov	edx, [edx+18h]
shr	eax, 1
shr	edx, 1
and	al, 1
and	dl, 1
cmp	dl, al
jz	short loc_418553
mov	ecx, [ecx+9Ch]
mov	[ecx+esi], al

loc_418553:
pop	esi
retn	4
sub_41852A endp



; Attributes: bp-based frame

sub_418557 proc	near

var_2= byte ptr	-2
var_1= byte ptr	-1

push	ebp
mov	ebp, esp
push	ecx
push	ebx
push	esi
mov	esi, ds:GetKeyState
push	edi
mov	edi, ecx
push	12h		; nVirtKey
call	esi ; GetKeyState
mov	bx, ax
push	11h		; nVirtKey
shr	ebx, 0Fh
and	bl, 1
call	esi ; GetKeyState
shr	eax, 0Fh
and	al, 1
push	10h		; nVirtKey
mov	[ebp+var_1], al
call	esi ; GetKeyState
shr	eax, 0Fh
and	al, 1
mov	[ebp+var_2], al
jnz	short loc_4185A0
test	bl, bl
jz	short loc_4185AD
cmp	[ebp+var_1], 0
jnz	short loc_4185AD
mov	ecx, edi
call	sub_418B0B
jmp	short loc_4185B8

loc_4185A0:
test	bl, bl
jnz	short loc_4185AD
cmp	[ebp+var_1], bl
jnz	short loc_4185AD
xor	eax, eax
jmp	short loc_4185B0

loc_4185AD:
push	1
pop	eax

loc_4185B0:
push	eax
mov	ecx, edi
call	sub_417220

loc_4185B8:
pop	edi
pop	esi
pop	ebx
leave
retn
sub_418557 endp



; Attributes: bp-based frame

sub_4185BD proc	near

arg_0= dword ptr  8
arg_4= dword ptr  0Ch

push	ebp
mov	ebp, esp
push	esi
push	edi
mov	edi, [ebp+arg_0]
mov	esi, ecx
mov	eax, [edi+8]
cmp	eax, 0FFFFFF94h
ja	loc_41868D
jz	loc_418680
cmp	eax, 0FFFFFF4Fh
jz	loc_418666
cmp	eax, 0FFFFFF50h
jz	short loc_418652
cmp	eax, 0FFFFFF51h
jz	short loc_418648
cmp	eax, 0FFFFFF65h
jz	short loc_41862B
cmp	eax, 0FFFFFF8Eh
jz	short loc_418612
cmp	eax, 0FFFFFF93h
jnz	loc_41871A
push	edi
call	sub_411391
jmp	loc_418713

loc_418612:
cmp	byte_45B2C0, 0
jz	loc_41871A

loc_41861F:
mov	ecx, esi
call	sub_418557
jmp	loc_41871A

loc_41862B:
push	ebx
mov	ecx, esi
push	[ebp+arg_4]
push	edi
call	sub_417DC0
mov	ecx, esi
mov	bl, al
call	sub_40E930
mov	al, bl
pop	ebx
jmp	loc_41871C

loc_418648:
push	edi
mov	ecx, esi
call	sub_41A5B8
jmp	short loc_41865A

loc_418652:
push	edi
mov	ecx, esi
call	sub_41A624

loc_41865A:
mov	ecx, [ebp+arg_4]
mov	[ecx], eax
mov	al, 1
jmp	loc_41871C

loc_418666:
test	byte ptr [edi+0Ch], 3
lea	eax, [edi+0Ch]
jz	loc_41871A
push	eax
mov	ecx, esi
call	sub_41831B
jmp	loc_41871A

loc_418680:
push	edi
mov	ecx, esi
call	sub_41BEF0
jmp	loc_41871A

loc_41868D:
cmp	eax, 0FFFFFF9Bh
jz	short loc_4186F9
cmp	eax, 0FFFFFFF4h
jz	short loc_4186E3
cmp	eax, 0FFFFFFFBh
jz	short loc_418713
jbe	short loc_41871A
cmp	eax, 0FFFFFFFDh
jbe	short loc_4186D5
cmp	eax, 0FFFFFFFEh
jnz	short loc_41871A
mov	ecx, esi
call	sub_40E5B8
mov	ecx, esi
call	sub_40E930
cmp	byte ptr [esi+8Fh], 0
jz	short loc_41871A
cmp	dword_45D88C, 40047h
jb	short loc_41871A
push	edi
mov	ecx, esi
call	sub_41BB2E
jmp	short loc_41871A

loc_4186D5:
cmp	byte_45B2C0, 0
jnz	short loc_41871A
jmp	loc_41861F

loc_4186E3:
cmp	byte ptr [esi+8Fh], 0
jz	short loc_41871A
push	[ebp+arg_4]
mov	ecx, esi
push	edi
call	sub_418722
jmp	short loc_41871C

loc_4186F9:
cmp	byte ptr [esi+8Eh], 0
jz	short loc_41871A
cmp	byte ptr [esi+8Fh], 0
jnz	short loc_418713
push	edi
mov	ecx, esi
call	sub_41852A

loc_418713:
mov	ecx, esi
call	sub_40E930

loc_41871A:
xor	al, al

loc_41871C:
pop	edi
pop	esi
pop	ebp
retn	8
sub_4185BD endp




sub_418722 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	esi
mov	esi, [esp+4+arg_0]
mov	eax, [esi+0Ch]
dec	eax
jz	short loc_41876A
sub	eax, 10000h
jz	short loc_418738
xor	al, al
jmp	short loc_418776

loc_418738:
mov	eax, [esi+2Ch]
cmp	eax, 0FFFFFFFFh
jz	short loc_418755
mov	edx, [ecx+9Ch]
cmp	byte ptr [edx+eax], 0
jz	short loc_418755
mov	dword ptr [esi+34h], 0C0C0FFh
jmp	short loc_41876A

loc_418755:		; lParam
push	0
push	0		; wParam
push	1000h		; Msg
push	dword ptr [ecx+74h] ; hWnd
call	ds:SendMessageA
mov	[esi+34h], eax

loc_41876A:
mov	eax, [esp+4+arg_4]
mov	dword ptr [eax], 20h
mov	al, 1

loc_418776:
pop	esi
retn	8
sub_418722 endp



; Attributes: bp-based frame

sub_41877A proc	near

var_64=	dword ptr -64h
var_5C=	dword ptr -5Ch
var_58=	dword ptr -58h
Memory=	dword ptr -50h
var_44=	dword ptr -44h
var_40=	dword ptr -40h
var_3C=	dword ptr -3Ch
lParam=	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
pvarg= VARIANTARG ptr -20h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4452B4
call	__EH_prolog
sub	esp, 58h
push	ebx
push	esi
mov	esi, ecx
push	edi
push	4
lea	ecx, [ebp+var_64]
call	sub_402794
mov	[ebp+var_64], offset off_44B518
lea	eax, [ebp+var_64]
xor	ebx, ebx
push	eax
mov	ecx, esi
mov	[ebp+var_4], ebx
call	sub_4170D3
mov	eax, [ebp+var_5C]
lea	ecx, [ebp+Memory]
cdq
push	edx
push	eax
call	sub_4073AB
push	eax
push	2000301h
mov	edx, 8DEh
lea	ecx, [ebp+pvarg.anonymous_0+4]
mov	byte ptr [ebp+var_4], 1
call	sub_40744B
mov	eax, [eax]
lea	edi, [esi+80h]
push	ebx		; int
push	eax		; lParam
push	ebx		; int
mov	ecx, edi
mov	byte ptr [ebp+var_4], 2
call	sub_4189BA
push	dword ptr [ebp+pvarg.anonymous_0+4] ; Memory
call	sub_4284D8
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx
mov	[ebp+var_44], ebx
pop	ecx
mov	[ebp+var_40], ebx
push	3
lea	ecx, [ebp+var_44]
mov	[ebp+var_3C], ebx
call	sub_403396
cmp	[ebp+var_5C], ebx
mov	byte ptr [ebp+var_4], 3
jle	short loc_41886B
mov	dword ptr [ebp+pvarg.anonymous_0+8], ebx
mov	dword ptr [ebp+pvarg.anonymous_0+0Ch], ebx
mov	[ebp+var_10], ebx

loc_418822:
mov	eax, [ebp+var_58]
mov	ecx, [ebp+var_10]
push	dword ptr [eax+ecx*4]
mov	ecx, esi
call	sub_417605
add	dword ptr [ebp+pvarg.anonymous_0+8], eax
adc	dword ptr [ebp+pvarg.anonymous_0+0Ch], edx
inc	[ebp+var_10]
mov	eax, [ebp+var_10]
cmp	eax, [ebp+var_5C]
jl	short loc_418822
push	dword ptr [ebp+pvarg.anonymous_0+0Ch]
lea	ecx, [ebp+Memory]
push	dword ptr [ebp+pvarg.anonymous_0+8]
call	sub_418270
push	eax
lea	ecx, [ebp+var_44]
mov	byte ptr [ebp+var_4], 4
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx

loc_41886B:		; int
push	ebx
mov	ecx, edi
push	[ebp+var_44]	; lParam
push	1		; int
call	sub_4189BA
push	1		; __int16
lea	ecx, [esi+74h]
push	0FFFFFFFFh	; wParam
call	sub_402821
push	3
lea	ecx, [ebp+lParam]
mov	[ebp+var_10], eax
mov	[ebp+lParam], ebx
mov	[ebp+var_34], ebx
mov	[ebp+var_30], ebx
call	sub_403396
push	3
lea	ecx, [ebp+var_2C]
mov	byte ptr [ebp+var_4], 5
mov	[ebp+var_2C], ebx
mov	[ebp+var_28], ebx
mov	[ebp+var_24], ebx
call	sub_403396
cmp	[ebp+var_10], ebx
mov	byte ptr [ebp+var_4], 6
jl	loc_418965
push	ebx		; lParam
push	ebx		; wParam
push	1032h		; Msg
push	dword ptr [esi+74h] ; hWnd
call	ds:SendMessageA
cmp	eax, ebx
jbe	loc_418965
push	[ebp+var_10]
mov	ecx, esi
call	sub_402875
cmp	eax, 0FFFFFFFFh
mov	[ebp+var_10], eax
jz	short loc_418965
push	eax
mov	ecx, esi
call	sub_417605
push	edx
push	eax
lea	ecx, [ebp+Memory]
call	sub_418270
push	eax
lea	ecx, [ebp+lParam]
mov	byte ptr [ebp+var_4], 7
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	word ptr [ebp+pvarg.anonymous_0], bx
mov	word ptr [ebp+pvarg.anonymous_0+2], bx
mov	esi, [esi+0FCh]
lea	ecx, [ebp+pvarg]
push	ecx
push	0Ch
push	[ebp+var_10]
mov	eax, [esi]
mov	byte ptr [ebp+var_4], 8
push	esi
call	dword ptr [eax+14h]
test	eax, eax
jnz	short loc_418959
push	ebx
push	0Ch
lea	edx, [ebp+pvarg]
lea	ecx, [ebp+Memory]
call	sub_4371AD
push	eax
lea	ecx, [ebp+var_2C]
mov	byte ptr [ebp+var_4], 9
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_418959:		; pvarg
lea	ecx, [ebp+pvarg]
mov	byte ptr [ebp+var_4], 6
call	sub_42CDE1

loc_418965:		; lParam
push	[ebp+lParam]
mov	ebx, ds:SendMessageA
mov	esi, 40Bh
push	2		; wParam
push	esi		; Msg
push	dword ptr [edi]	; hWnd
call	ebx ; SendMessageA
push	[ebp+var_2C]	; lParam
push	3		; wParam
push	esi		; Msg
push	dword ptr [edi]	; hWnd
call	ebx ; SendMessageA
push	[ebp+var_2C]	; Memory
call	sub_4284D8
push	[ebp+lParam]	; Memory
call	sub_4284D8
push	[ebp+var_44]	; Memory
call	sub_4284D8
or	[ebp+var_4], 0FFFFFFFFh
add	esp, 0Ch
lea	ecx, [ebp+var_64]
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_41877A endp




; int __stdcall	sub_4189BA(int,	LPARAM lParam, int)
sub_4189BA proc	near

arg_0= dword ptr  4
lParam=	dword ptr  8
arg_8= dword ptr  0Ch

mov	eax, [esp+arg_0]
push	[esp+lParam]	; lParam
or	eax, [esp+4+arg_8]
push	eax		; wParam
push	40Bh		; Msg
push	dword ptr [ecx]	; hWnd
call	ds:SendMessageA
neg	eax
sbb	eax, eax
neg	eax
retn	0Ch
sub_4189BA endp




sub_4189DD proc	near

arg_0= word ptr	 4
arg_4= word ptr	 8

push	ebx
mov	bx, [esp+4+arg_4]
cmp	[esp+4+arg_0], bx
jnz	short loc_4189EE
xor	eax, eax
jmp	short loc_418A2B

loc_4189EE:
xor	edx, edx
xor	eax, eax
cmp	[ecx+4], edx
push	esi
push	edi
jle	short loc_418A29

loc_4189F9:
mov	esi, [ecx]
lea	edx, [esi+edx*2]

loc_4189FE:
mov	di, [edx]
cmp	di, [esp+0Ch+arg_0]
jz	short loc_418A11
test	di, di
jz	short loc_418A17
inc	edx
inc	edx
jmp	short loc_4189FE

loc_418A11:
sub	edx, esi
sar	edx, 1
jmp	short loc_418A1A

loc_418A17:
or	edx, 0FFFFFFFFh

loc_418A1A:
test	edx, edx
jl	short loc_418A29
mov	[esi+edx*2], bx
inc	edx
inc	eax
cmp	edx, [ecx+4]
jl	short loc_4189F9

loc_418A29:
pop	edi
pop	esi

loc_418A2B:
pop	ebx
retn	8
sub_4189DD endp



; Attributes: bp-based frame

sub_418A2F proc	near

Dst= dword ptr -48h
var_40=	dword ptr -40h
var_3C=	dword ptr -3Ch
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_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4452D8
call	__EH_prolog
sub	esp, 3Ch
push	ebx
xor	ebx, ebx
push	edi
mov	edi, ecx
push	ebx		; pvReserved
call	ds:CoInitialize
mov	ecx, edi
mov	[ebp+var_4], ebx
call	sub_411E32
test	al, al
jz	loc_418AEF
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], 4
mov	[ebp+var_24], offset off_44B518
lea	eax, [ebp+var_24]
mov	ecx, edi
push	eax
mov	byte ptr [ebp+var_4], 1
call	sub_4170D3
cmp	[ebp+var_1C], ebx
jz	short loc_418AE4
mov	[ebp+var_10], ebx
lea	eax, [ebp+var_10]
mov	ecx, edi
push	eax
lea	eax, [ebp+var_24]
push	eax
mov	byte ptr [ebp+var_4], 2
call	sub_419204
test	eax, eax
jnz	short loc_418AD3
push	24h		; Size
lea	eax, [ebp+Dst]
push	ebx		; Val
push	eax		; Dst
call	memset
add	esp, 0Ch
mov	ecx, edi
mov	[ebp+Dst], 24h
call	sub_40DA67
mov	[ebp+var_40], eax
mov	eax, [ebp+arg_0]
mov	[ebp+var_3C], eax
mov	eax, [ebp+var_10]
lea	edx, [ebp+Dst]
mov	ecx, [eax]
push	edx
push	eax
call	dword ptr [ecx+10h]

loc_418AD3:
mov	eax, [ebp+var_10]
mov	byte ptr [ebp+var_4], 1
cmp	eax, ebx
jz	short loc_418AE4
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_418AE4:
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], bl
call	sub_4282FE

loc_418AEF:
call	ds:__imp_CoUninitialize
mov	ecx, [ebp+var_C]
pop	edi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_418A2F endp

; [00000006 BYTES: COLLAPSED FUNCTION CoUninitialize. PRESS KEYPAD CTRL-"+" TO EXPAND]


; Attributes: bp-based frame

sub_418B0B proc	near

var_84=	dword ptr -84h
var_7C=	dword ptr -7Ch
var_78=	dword ptr -78h
var_70=	word ptr -70h
var_6E=	word ptr -6Eh
pvarg= VARIANTARG ptr -60h
Memory=	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
bstrString= dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	byte ptr -10h
var_E= byte ptr	-0Eh
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44535F
call	__EH_prolog
sub	esp, 78h
push	esi
push	edi
xor	edi, edi
mov	esi, ecx
mov	[ebp+var_30], edi
mov	eax, [esi+0FCh]
lea	edx, [ebp+var_30]
push	edx
push	offset unk_44B630
mov	ecx, [eax]
push	eax
mov	[ebp+var_4], edi
call	dword ptr [ecx]
cmp	[ebp+var_30], edi
jnz	short loc_418B4E
push	offset aProperties ; "properties"
mov	ecx, esi
call	sub_418A2F
jmp	loc_418FE7

loc_418B4E:
push	ebx
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], edi
mov	[ebp+var_4C], edi
mov	[ebp+var_48], edi
call	sub_403396
push	4
lea	ecx, [ebp+var_84]
mov	byte ptr [ebp+var_4], 1
call	sub_402794
mov	[ebp+var_84], offset off_44B518
lea	eax, [ebp+var_84]
mov	ecx, esi
push	eax
mov	byte ptr [ebp+var_4], 2
call	sub_4170D3
cmp	[ebp+var_7C], 1
mov	ebx, ds:SysFreeString
jnz	loc_418C54
mov	eax, [ebp+var_78]
lea	edx, [ebp+var_28]
push	edx
mov	eax, [eax]
mov	[ebp+var_44], eax
mov	eax, [esi+0FCh]
push	eax
mov	ecx, [eax]
call	dword ptr [ecx+24h]
test	eax, eax
jnz	loc_418C46
cmp	[ebp+var_28], edi
mov	[ebp+var_24], edi
jbe	short loc_418C46

loc_418BC7:
mov	[ebp+bstrString], edi
lea	edx, [ebp+var_E]
mov	eax, [esi+0FCh]
push	edx
lea	edx, [ebp+var_34]
mov	ecx, [eax]
push	edx
lea	edx, [ebp+bstrString]
mov	byte ptr [ebp+var_4], 3
push	edx
push	[ebp+var_24]
push	eax
call	dword ptr [ecx+28h]
test	eax, eax
jnz	short loc_418C32
mov	word ptr [ebp+pvarg.anonymous_0], di
mov	word ptr [ebp+pvarg.anonymous_0+2], di
mov	eax, [esi+0FCh]
lea	edx, [ebp+pvarg]
push	edx
mov	byte ptr [ebp+var_4], 4
push	[ebp+var_34]
mov	ecx, [eax]
push	[ebp+var_44]
push	eax
call	dword ptr [ecx+14h]
test	eax, eax
jnz	short loc_418C26
mov	edx, [ebp+bstrString]
mov	ecx, [ebp+var_34]
lea	eax, [ebp+Memory]
push	eax
lea	eax, [ebp+pvarg]
push	eax
call	sub_419006

loc_418C26:		; pvarg
lea	ecx, [ebp+pvarg]
mov	byte ptr [ebp+var_4], 3
call	sub_42CDE1

loc_418C32:		; bstrString
push	[ebp+bstrString]
mov	byte ptr [ebp+var_4], 2
call	ebx ; SysFreeString
inc	[ebp+var_24]
mov	eax, [ebp+var_24]
cmp	eax, [ebp+var_28]
jb	short loc_418BC7

loc_418C46:
push	off_45BAC0
lea	ecx, [ebp+Memory]
call	sub_403195

loc_418C54:
mov	[ebp+var_70], di
mov	[ebp+var_6E], di
mov	eax, [esi+0FCh]
lea	edx, [ebp+var_70]
push	edx
push	3
mov	ecx, [eax]
push	eax
mov	byte ptr [ebp+var_4], 5
call	dword ptr [ecx+2Ch]
test	eax, eax
jnz	short loc_418C8B
lea	eax, [ebp+Memory]
mov	edx, offset aPath ; "Path"
push	eax
lea	eax, [ebp+var_70]
push	eax
push	4
pop	ecx
call	sub_419006

loc_418C8B:		; pvarg
lea	ecx, [ebp+var_70]
mov	byte ptr [ebp+var_4], 2
call	sub_42CDE1
mov	[ebp+var_2C], edi
mov	eax, [esi+0FCh]
lea	edx, [ebp+var_2C]
push	edx
push	offset unk_44B650
mov	ecx, [eax]
push	eax
mov	byte ptr [ebp+var_4], 6
call	dword ptr [ecx]
mov	eax, [ebp+var_2C]
cmp	eax, edi
jz	loc_418D48
mov	ecx, [eax]
lea	edx, [ebp+var_28]
push	edx
push	eax
call	dword ptr [ecx+0Ch]
test	eax, eax
jnz	short loc_418D48
cmp	[ebp+var_28], edi
mov	[ebp+var_24], edi
jbe	short loc_418D48

loc_418CD3:
mov	[ebp+bstrString], edi
lea	edx, [ebp+var_E]
mov	eax, [ebp+var_2C]
push	edx
lea	edx, [ebp+var_34]
mov	ecx, [eax]
push	edx
lea	edx, [ebp+bstrString]
mov	byte ptr [ebp+var_4], 7
push	edx
push	[ebp+var_24]
push	eax
call	dword ptr [ecx+10h]
test	eax, eax
jnz	short loc_418D38
mov	word ptr [ebp+pvarg.anonymous_0], di
mov	word ptr [ebp+pvarg.anonymous_0+2], di
mov	eax, [esi+0FCh]
lea	edx, [ebp+pvarg]
push	edx
mov	byte ptr [ebp+var_4], 8
push	[ebp+var_34]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+2Ch]
test	eax, eax
jnz	short loc_418D2C
mov	edx, [ebp+bstrString]
mov	ecx, [ebp+var_34]
lea	eax, [ebp+Memory]
push	eax
lea	eax, [ebp+pvarg]
push	eax
call	sub_419006

loc_418D2C:		; pvarg
lea	ecx, [ebp+pvarg]
mov	byte ptr [ebp+var_4], 7
call	sub_42CDE1

loc_418D38:		; bstrString
push	[ebp+bstrString]
call	ebx ; SysFreeString
inc	[ebp+var_24]
mov	eax, [ebp+var_24]
cmp	eax, [ebp+var_28]
jb	short loc_418CD3

loc_418D48:
mov	[ebp+var_38], edi
mov	eax, [esi+0FCh]
lea	edx, [ebp+var_38]
push	edx
push	offset unk_44B630
mov	ecx, [eax]
push	eax
mov	byte ptr [ebp+var_4], 9
call	dword ptr [ecx]
mov	eax, [ebp+var_38]
cmp	eax, edi
jz	loc_418F76
mov	[ebp+var_14], edi
mov	ecx, [eax]
lea	edx, [ebp+var_14]
push	edx
push	eax
mov	byte ptr [ebp+var_4], 0Ah
call	dword ptr [ecx+0Ch]
mov	eax, [ebp+var_14]
cmp	eax, edi
jz	loc_418F68
mov	ecx, [eax]
lea	edx, [ebp+var_28]
push	edx
push	eax
call	dword ptr [ecx+0Ch]
test	eax, eax
jz	short loc_418D9F
xor	eax, eax
mov	[ebp+var_28], eax
jmp	short loc_418DA2

loc_418D9F:
mov	eax, [ebp+var_28]

loc_418DA2:
cmp	eax, edi
mov	[ebp+bstrString], edi
jbe	loc_418F65

loc_418DAD:
sub	eax, [ebp+bstrString]
lea	edx, [ebp+var_3C]
push	edx
dec	eax
mov	[ebp+var_34], eax
mov	eax, [ebp+var_14]
push	[ebp+var_34]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+14h]
test	eax, eax
jnz	loc_418E96
push	off_45BAC0
lea	ecx, [ebp+Memory]
call	sub_403195
push	0FFFFFFFDh
pop	eax
cmp	[ebp+var_3C], eax
mov	[ebp+var_18], eax
jle	loc_418E96

loc_418DE9:
mov	[ebp+var_24], edi
cmp	[ebp+var_18], 0FFFFFFFDh
mov	byte ptr [ebp+var_4], 0Bh
jz	short loc_418E35
cmp	[ebp+var_18], 0FFFFFFFEh
jz	short loc_418E2C
cmp	[ebp+var_18], 0FFFFFFFFh
jz	short loc_418E23
lea	edx, [ebp+var_E]
mov	eax, [ebp+var_14]
push	edx
lea	edx, [ebp+var_20]
push	edx
lea	edx, [ebp+var_24]
mov	ecx, [eax]
push	edx
push	[ebp+var_18]
push	[ebp+var_34]
push	eax
call	dword ptr [ecx+18h]
test	eax, eax
jz	short loc_418E3C
jmp	short loc_418E7E

loc_418E23:
mov	[ebp+var_20], 37h
jmp	short loc_418E3C

loc_418E2C:
mov	[ebp+var_20], 14h
jmp	short loc_418E3C

loc_418E35:
mov	[ebp+var_20], 3

loc_418E3C:
mov	word ptr [ebp+pvarg.anonymous_0], di
mov	word ptr [ebp+pvarg.anonymous_0+2], di
mov	eax, [ebp+var_14]
lea	edx, [ebp+pvarg]
push	edx
mov	byte ptr [ebp+var_4], 0Ch
push	[ebp+var_20]
mov	ecx, [eax]
push	[ebp+var_34]
push	eax
call	dword ptr [ecx+10h]
test	eax, eax
jnz	short loc_418E72
mov	edx, [ebp+var_24]
mov	ecx, [ebp+var_20]
lea	eax, [ebp+Memory]
push	eax
lea	eax, [ebp+pvarg]
push	eax
call	sub_419006

loc_418E72:		; pvarg
lea	ecx, [ebp+pvarg]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_42CDE1

loc_418E7E:		; bstrString
push	[ebp+var_24]
mov	byte ptr [ebp+var_4], 0Ah
call	ebx ; SysFreeString
inc	[ebp+var_18]
mov	eax, [ebp+var_18]
cmp	eax, [ebp+var_3C]
jl	loc_418DE9

loc_418E96:
mov	eax, [ebp+var_28]
lea	ecx, [eax-1]
cmp	[ebp+bstrString], ecx
jz	loc_418F59
sub	eax, [ebp+bstrString]
lea	edx, [ebp+var_44]
push	edx
dec	eax
mov	[ebp+var_34], eax
mov	eax, [ebp+var_14]
push	[ebp+var_34]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+20h]
test	eax, eax
jnz	loc_418F56
push	off_45BAC4
lea	ecx, [ebp+Memory]
call	sub_403195
cmp	[ebp+var_44], edi
mov	[ebp+var_18], edi
jle	short loc_418F56

loc_418EDA:
mov	[ebp+var_24], edi
lea	edx, [ebp+var_10]
mov	eax, [ebp+var_14]
push	edx
lea	edx, [ebp+var_40]
push	edx
lea	edx, [ebp+var_24]
mov	ecx, [eax]
push	edx
push	[ebp+var_18]
mov	byte ptr [ebp+var_4], 0Dh
push	[ebp+var_34]
push	eax
call	dword ptr [ecx+24h]
test	eax, eax
jnz	short loc_418F42
mov	[ebp+var_70], di
mov	[ebp+var_6E], di
mov	eax, [ebp+var_14]
lea	edx, [ebp+var_70]
push	edx
mov	byte ptr [ebp+var_4], 0Eh
push	[ebp+var_40]
mov	ecx, [eax]
push	[ebp+var_34]
push	eax
call	dword ptr [ecx+1Ch]
test	eax, eax
jnz	short loc_418F36
mov	edx, [ebp+var_24]
mov	ecx, [ebp+var_40]
lea	eax, [ebp+Memory]
push	eax
lea	eax, [ebp+var_70]
push	eax
call	sub_419006

loc_418F36:		; pvarg
lea	ecx, [ebp+var_70]
mov	byte ptr [ebp+var_4], 0Dh
call	sub_42CDE1

loc_418F42:		; bstrString
push	[ebp+var_24]
mov	byte ptr [ebp+var_4], 0Ah
call	ebx ; SysFreeString
inc	[ebp+var_18]
mov	eax, [ebp+var_18]
cmp	eax, [ebp+var_44]
jl	short loc_418EDA

loc_418F56:
mov	eax, [ebp+var_28]

loc_418F59:
inc	[ebp+bstrString]
cmp	[ebp+bstrString], eax
jb	loc_418DAD

loc_418F65:
mov	eax, [ebp+var_14]

loc_418F68:
cmp	eax, edi
mov	byte ptr [ebp+var_4], 9
jz	short loc_418F76
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_418F76:
push	3020900h
mov	edx, 0FDCh
lea	ecx, [ebp+pvarg.anonymous_0+4]
call	sub_40B168
mov	eax, [eax]
mov	ecx, esi
add	esi, 4
push	edi		; uType
neg	ecx
sbb	ecx, ecx
push	eax		; lpCaption
push	[ebp+Memory]	; lpText
and	ecx, esi
mov	ecx, [ecx]
push	ecx		; hWnd
call	ds:MessageBoxW
push	dword ptr [ebp+pvarg.anonymous_0+4] ; Memory
call	sub_4284D8
mov	eax, [ebp+var_38]
pop	ecx
cmp	eax, edi
mov	byte ptr [ebp+var_4], 6
pop	ebx
jz	short loc_418FBE
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_418FBE:
mov	eax, [ebp+var_2C]
mov	byte ptr [ebp+var_4], 2
cmp	eax, edi
jz	short loc_418FCF
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_418FCF:
lea	ecx, [ebp+var_84]
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_418FE7:
mov	eax, [ebp+var_30]
or	[ebp+var_4], 0FFFFFFFFh
cmp	eax, edi
jz	short loc_418FF8
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_418FF8:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_418B0B endp



; Attributes: bp-based frame

sub_419006 proc	near

Memory=	dword ptr -28h
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_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_44538C
call	__EH_prolog
sub	esp, 1Ch
push	ebx
push	esi
mov	esi, [ebp+arg_0]
xor	ebx, ebx
push	edi
mov	[ebp+var_10], edx
cmp	[esi], bx
mov	edi, ecx
jz	loc_41912C
push	3
lea	ecx, [ebp+var_1C]
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_403396
mov	ax, [esi]
mov	[ebp+var_4], ebx
cmp	ax, 15h
jz	short loc_41904E
cmp	ax, 13h
jnz	short loc_419089

loc_41904E:
cmp	edi, 7
jz	short loc_4190AB
cmp	edi, 8
jz	short loc_4190AB
cmp	edi, 1Fh
jz	short loc_4190AB
cmp	edi, 20h
jz	short loc_4190AB
cmp	edi, 26h
jz	short loc_4190AB
cmp	edi, 1102h
jz	short loc_4190AB
cmp	edi, 1100h
jz	short loc_4190AB
cmp	edi, 1101h
jz	short loc_4190AB
cmp	edi, 2Ch
jz	short loc_4190AB
cmp	edi, 2Dh
jz	short loc_4190AB

loc_419089:
push	1
push	edi
mov	edx, esi
lea	ecx, [ebp+Memory]
call	sub_4371AD
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 2
call	sub_40312C
mov	byte ptr [ebp+var_4], bl
push	[ebp+Memory]
jmp	short loc_4190CF

loc_4190AB:
mov	ecx, esi
call	sub_42D2C6
lea	ecx, [ebp+Memory]
push	edx
push	eax
call	sub_418270
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 1
call	sub_40312C
mov	byte ptr [ebp+var_4], bl
push	[ebp+Memory]	; Memory

loc_4190CF:
call	sub_4284D8
cmp	[ebp+var_18], ebx
pop	ecx
jz	short loc_419123
push	[ebp+var_10]
mov	edx, edi
lea	ecx, [ebp+Memory]
call	sub_41D835
mov	esi, [ebp+arg_4]
push	eax
mov	ecx, esi
mov	byte ptr [ebp+var_4], 3
call	sub_4031F2
mov	byte ptr [ebp+var_4], bl
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
push	off_45BAC8
mov	ecx, esi
call	sub_403195
lea	eax, [ebp+var_1C]
mov	ecx, esi
push	eax
call	sub_4031F2
mov	ecx, esi
push	0Ah
call	sub_40316A

loc_419123:		; Memory
push	[ebp+var_1C]
call	sub_4284D8
pop	ecx

loc_41912C:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_419006 endp



; Attributes: bp-based frame

sub_41913D proc	near

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
Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4453B0
call	__EH_prolog
sub	esp, 2Ch
push	ebx
push	esi
push	edi
mov	edi, ecx
xor	ebx, ebx
push	3
lea	ecx, [ebp+var_18]
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_403396
mov	[ebp+var_4], ebx
mov	[ebp+var_34], ebx
mov	[ebp+var_30], ebx
mov	[ebp+var_2C], ebx
mov	[ebp+var_28], 4
mov	[ebp+var_38], offset off_44B518
lea	eax, [ebp+var_38]
mov	ecx, edi
push	eax
mov	byte ptr [ebp+var_4], 1
call	sub_41708B
xor	esi, esi
cmp	[ebp+var_30], ebx
jle	short loc_4191D6

loc_419194:
cmp	esi, ebx
jle	short loc_4191A5
push	offset asc_45BB2C ; "\r\n"
lea	ecx, [ebp+var_18]
call	sub_403195

loc_4191A5:
mov	eax, [ebp+var_2C]
mov	ecx, edi
push	dword ptr [eax+esi*4]
lea	eax, [ebp+Memory]
push	eax
call	sub_41733B
push	eax
lea	ecx, [ebp+var_18]
mov	byte ptr [ebp+var_4], 2
call	sub_4031F2
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
inc	esi
pop	ecx
cmp	esi, [ebp+var_30]
jl	short loc_419194

loc_4191D6:
mov	ecx, [edi+40h]
lea	edx, [ebp+var_18]
call	sub_4292B4
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], bl
call	sub_4282FE
push	[ebp+var_18]	; Memory
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_41913D endp



; Attributes: bp-based frame

sub_419204 proc	near

var_5C=	dword ptr -5Ch
var_54=	dword ptr -54h
var_50=	dword ptr -50h
var_48=	dword ptr -48h
Memory=	dword ptr -3Ch
var_30=	dword ptr -30h
var_2C=	dword ptr -2Ch
var_28=	byte ptr -28h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
ppshf= dword ptr -14h
var_10=	word ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_4453EC
call	__EH_prolog
sub	esp, 50h
push	ebx
push	esi
mov	esi, [ebp+arg_4]
xor	ebx, ebx
push	edi
mov	[ebp+var_1C], ecx
mov	eax, [esi]
cmp	eax, ebx
jz	short loc_41922A
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
mov	[esi], ebx

loc_41922A:
mov	ecx, [ebp+var_1C]
lea	eax, [ebp+var_48]
push	eax
call	sub_40E71B
mov	[ebp+var_4], ebx
mov	[ebp+ppshf], ebx
lea	eax, [ebp+ppshf]
mov	byte ptr [ebp+var_4], 1
push	eax		; ppshf
call	ds:SHGetDesktopFolder
mov	esi, eax
cmp	esi, ebx
jz	short loc_419267

loc_419250:
mov	eax, [ebp+ppshf]
mov	byte ptr [ebp+var_4], bl
cmp	eax, ebx
jz	short loc_419260
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_419260:
mov	ebx, esi
jmp	loc_4194BD

loc_419267:
mov	eax, [ebp+ppshf]
cmp	eax, ebx
jnz	short loc_419278

loc_41926E:
mov	ebx, 80004005h
jmp	loc_4194BD

loc_419278:
mov	edi, [eax]
mov	esi, eax
lea	eax, [ebp+var_24]
push	ebx
push	eax
mov	ecx, [ebp+var_1C]
lea	eax, [ebp+var_28]
push	eax
push	[ebp+var_48]
push	ebx
call	sub_40DA67
push	eax
push	esi
call	dword ptr [edi+0Ch]
mov	esi, eax
cmp	esi, ebx
jnz	short loc_419250
mov	[ebp+var_18], ebx
mov	eax, [ebp+ppshf]
lea	edx, [ebp+var_18]
push	edx
push	offset unk_44CC78
mov	ecx, [eax]
push	ebx
push	[ebp+var_24]
mov	byte ptr [ebp+var_4], 2
push	eax
call	dword ptr [ecx+14h]
mov	esi, eax
cmp	esi, ebx
jnz	loc_4193EC
cmp	[ebp+var_18], ebx
jnz	short loc_4192DA

loc_4192C8:
mov	eax, [ebp+ppshf]
mov	byte ptr [ebp+var_4], bl
cmp	eax, ebx
jz	short loc_41926E
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
jmp	short loc_41926E

loc_4192DA:
push	4
lea	ecx, [ebp+var_5C]
call	sub_402794
mov	[ebp+var_5C], offset off_44C39C
mov	esi, [ebp+arg_0]
lea	ecx, [ebp+var_5C]
mov	byte ptr [ebp+var_4], 3
push	dword ptr [esi+8]
call	sub_428378
cmp	[esi+8], ebx
mov	[ebp+arg_0], ebx
jle	loc_419389

loc_419309:
mov	eax, [esi+0Ch]
mov	ecx, [ebp+arg_0]
push	dword ptr [eax+ecx*4]
mov	ecx, [ebp+var_1C]
lea	eax, [ebp+Memory]
push	eax
call	sub_4174B8
mov	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 4
call	sub_40E6B1
test	al, al
jz	short loc_419338
push	5Ch
lea	ecx, [ebp+Memory]
call	sub_40316A

loc_419338:
mov	eax, [ebp+var_18]
push	ebx
mov	[ebp+var_2C], eax
mov	ecx, [ebp+var_1C]
mov	edi, [eax]
lea	eax, [ebp+var_30]
push	eax
lea	eax, [ebp+var_28]
push	eax
push	[ebp+Memory]
push	ebx
call	sub_40DA67
push	eax
push	[ebp+var_2C]
call	dword ptr [edi+0Ch]
mov	edi, eax
cmp	edi, ebx
jnz	loc_419406
push	[ebp+var_30]
lea	ecx, [ebp+var_5C]
call	sub_429907
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
inc	[ebp+arg_0]
pop	ecx
mov	eax, [ebp+arg_0]
cmp	eax, [esi+8]
jl	short loc_419309

loc_419389:
cmp	[ebp+var_54], ebx
jnz	short loc_41939E
lea	eax, [ebp+var_10]
lea	ecx, [ebp+var_5C]
push	eax
mov	[ebp+var_10], bx
call	sub_429907

loc_41939E:
mov	[ebp+var_20], ebx
mov	eax, [ebp+var_18]
mov	ecx, [ebp+var_1C]
mov	esi, eax
mov	byte ptr [ebp+var_4], 5
mov	edi, [eax]
lea	eax, [ebp+var_20]
push	eax
push	ebx
push	offset unk_44CC88
push	[ebp+var_50]
push	[ebp+var_54]
call	sub_40DA67
push	eax
push	esi
call	dword ptr [edi+28h]
mov	esi, eax
cmp	esi, ebx
jz	short loc_419449
mov	eax, [ebp+var_20]
mov	byte ptr [ebp+var_4], 3
cmp	eax, ebx
jz	short loc_4193E0
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_4193E0:
lea	ecx, [ebp+var_5C]
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE

loc_4193EC:
mov	eax, [ebp+var_18]
mov	byte ptr [ebp+var_4], 1
cmp	eax, ebx
jz	loc_419250
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
jmp	loc_419250

loc_419406:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 2
lea	ecx, [ebp+var_5C]
call	sub_4282FE
mov	eax, [ebp+var_18]
mov	byte ptr [ebp+var_4], 1
cmp	eax, ebx
jz	short loc_41942C
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_41942C:
mov	eax, [ebp+ppshf]
mov	byte ptr [ebp+var_4], bl
cmp	eax, ebx
jz	short loc_41943C
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_41943C:		; Memory
push	[ebp+var_48]
call	sub_4284D8
pop	ecx
mov	eax, edi
jmp	short loc_4194C8

loc_419449:
cmp	[ebp+var_20], ebx
jnz	short loc_419474
lea	ecx, [ebp+var_5C]
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE
mov	eax, [ebp+var_18]
mov	byte ptr [ebp+var_4], 1
cmp	eax, ebx
jz	loc_4192C8
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
jmp	loc_4192C8

loc_419474:
push	[ebp+var_20]
mov	ecx, [ebp+arg_4]
call	sub_43D0DB
mov	eax, [ebp+var_20]
mov	byte ptr [ebp+var_4], 3
cmp	eax, ebx
jz	short loc_419490
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_419490:
lea	ecx, [ebp+var_5C]
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE
mov	eax, [ebp+var_18]
mov	byte ptr [ebp+var_4], 1
cmp	eax, ebx
jz	short loc_4194AD
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_4194AD:
mov	eax, [ebp+ppshf]
mov	byte ptr [ebp+var_4], bl
cmp	eax, ebx
jz	short loc_4194BD
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_4194BD:		; Memory
push	[ebp+var_48]
call	sub_4284D8
pop	ecx
mov	eax, ebx

loc_4194C8:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_419204 endp



; Attributes: bp-based frame

sub_4194D9 proc	near

var_6C=	dword ptr -6Ch
var_60=	dword ptr -60h
var_5C=	dword ptr -5Ch
var_50=	dword ptr -50h
Dst= dword ptr -40h
var_38=	dword ptr -38h
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_445408
call	__EH_prolog
sub	esp, 60h
push	ebx
push	esi
mov	esi, [ebp+arg_8]
xor	ebx, ebx
push	edi
mov	[ebp+var_10], ecx
mov	eax, [esi]
cmp	eax, ebx
jz	short loc_4194FF
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
mov	[esi], ebx

loc_4194FF:
mov	ecx, [ebp+var_10]
push	esi
push	[ebp+arg_4]
call	sub_419204
cmp	[esi], ebx
jz	loc_4195CA
push	24h
lea	eax, [ebp+Dst]
pop	edi
push	edi		; Size
push	ebx		; Val
push	eax		; Dst
call	memset
mov	ecx, [ebp+var_10]
add	esp, 0Ch
mov	[ebp+Dst], edi
call	sub_40DA67
mov	[ebp+var_38], eax
call	ds:CreatePopupMenu
mov	edi, eax
cmp	edi, ebx
jnz	short loc_419553
lea	eax, [ebp+arg_8]
push	offset unk_44D120
push	eax
mov	[ebp+arg_8], 33647h
call	_CxxThrowException

loc_419553:
mov	esi, [esi]
push	4
push	7FFFh
push	44Ch
mov	eax, [esi]
push	ebx
push	edi
push	esi
call	dword ptr [eax+0Ch]
mov	eax, [ebp+arg_0]
lea	ecx, [ebp+var_6C]
mov	[ebp+arg_4], eax
call	sub_40BF33
push	30202A0h
mov	edx, 0FAAh
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], ebx
mov	[ebp+var_60], 16h
mov	[ebp+var_5C], ebx
mov	[ebp+var_50], edi
call	sub_40B168
push	eax
lea	ecx, [ebp+var_6C]
mov	byte ptr [ebp+var_4], 1
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_6C]
push	eax		; int
push	1		; char
push	ebx		; item
lea	ecx, [ebp+arg_4]
call	sub_42C858
push	[ebp+var_6C]	; Memory
call	sub_4284D8
pop	ecx

loc_4195CA:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_4194D9 endp




; int __stdcall	sub_4195DB(HMENU hMenu)
sub_4195DB proc	near

hMenu= dword ptr  4

lea	eax, [ecx+174h]
push	1		; int
push	eax		; int
lea	eax, [ecx+170h]
push	eax		; int
push	[esp+0Ch+hMenu]	; hMenu
call	sub_41979A
retn	4
sub_4195DB endp



; Attributes: bp-based frame

sub_4195F7 proc	near

var_64=	dword ptr -64h
var_58=	dword ptr -58h
var_50=	dword ptr -50h
var_44=	dword ptr -44h
var_3C=	dword ptr -3Ch
Memory=	dword ptr -30h
var_24=	dword ptr -24h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_445456
call	__EH_prolog
sub	esp, 58h
push	ebx
push	esi
mov	esi, [ebp+arg_8]
push	edi
xor	edi, edi
mov	ebx, ecx
mov	eax, [esi]
mov	[ebp+var_14], ebx
cmp	eax, edi
jz	short loc_41961F
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
mov	[esi], edi

loc_41961F:		; Size
push	44h
call	sub_4284B1
pop	ecx
mov	[ebp+var_10], eax
cmp	eax, edi
mov	[ebp+var_4], edi
jz	short loc_41963D
mov	ecx, eax
call	sub_4389B8
mov	[ebp+var_10], eax
jmp	short loc_419642

loc_41963D:
mov	[ebp+var_10], edi
mov	eax, edi

loc_419642:
or	[ebp+var_4], 0FFFFFFFFh
cmp	eax, edi
mov	[ebp+var_18], eax
jz	short loc_419653
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+4]

loc_419653:
add	ebx, 0D8h
lea	ecx, [ebp+var_24]
push	ebx
mov	[ebp+var_4], 1
call	sub_4030F2
lea	ecx, [ebp+var_50]
mov	byte ptr [ebp+var_4], 2
call	sub_40337B
mov	ebx, offset off_44B510
mov	[ebp+var_50], ebx
mov	esi, [ebp+arg_4]
mov	byte ptr [ebp+var_4], 3
mov	eax, [esi+8]
test	eax, eax
jle	short loc_4196D6

loc_41968B:
mov	eax, [esi+0Ch]
mov	ecx, [ebp+var_14]
push	dword ptr [eax+edi*4]
lea	eax, [ebp+var_3C]
push	eax
call	sub_4174B8
push	eax
lea	edx, [ebp+var_24]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 4
call	sub_40356A
push	eax
lea	ecx, [ebp+var_50]
mov	byte ptr [ebp+var_4], 5
call	sub_4032B4
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
inc	edi
pop	ecx
cmp	edi, [esi+8]
pop	ecx
jl	short loc_41968B

loc_4196D6:
push	4
lea	ecx, [ebp+var_64]
call	sub_402794
mov	[ebp+var_64], offset off_44C298
xor	edi, edi
mov	byte ptr [ebp+var_4], 6
cmp	[esi+8], edi
jle	short loc_419708

loc_4196F2:
mov	eax, [ebp+var_44]
lea	ecx, [ebp+var_64]
mov	eax, [eax+edi*4]
push	dword ptr [eax]
call	sub_429907
inc	edi
cmp	edi, [esi+8]
jl	short loc_4196F2

loc_419708:
push	dword ptr [esi+8]
mov	esi, [ebp+var_10]
mov	ecx, esi
push	[ebp+var_58]
push	[ebp+var_24]
call	sub_438CCB
test	eax, eax
jnz	short loc_41974B
mov	eax, [esi]
push	0
push	44Bh
push	3E8h
push	0
push	[ebp+arg_0]
push	esi
call	dword ptr [eax+0Ch]
sar	eax, 1Fh
not	al
and	al, 1
mov	byte ptr [ebp+arg_4+3],	al
jz	short loc_41974B
mov	ecx, [ebp+arg_8]
push	esi
call	sub_43D0DB

loc_41974B:
lea	ecx, [ebp+var_64]
mov	byte ptr [ebp+var_4], 3
call	sub_4282FE
mov	[ebp+var_50], ebx
lea	ecx, [ebp+var_50]
mov	byte ptr [ebp+var_4], 7
call	sub_428327
lea	ecx, [ebp+var_50]
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE
push	[ebp+var_24]	; Memory
call	sub_4284D8
or	[ebp+var_4], 0FFFFFFFFh
pop	ecx
test	esi, esi
jz	short loc_419789
mov	eax, [esi]
push	esi
call	dword ptr [eax+8]

loc_419789:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_4195F7 endp



; Attributes: bp-based frame

; int __stdcall	sub_41979A(HMENU hMenu,	int, int, int)
sub_41979A proc	near

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_4= dword ptr -4
hMenu= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h
arg_C= dword ptr  14h

mov	eax, offset loc_445468
call	__EH_prolog
sub	esp, 18h
push	ebx
push	esi
mov	esi, [ebp+arg_4]
xor	ebx, ebx
push	edi
mov	[ebp+var_10], ecx
mov	eax, [esi]
cmp	eax, ebx
jz	short loc_4197C0
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
mov	[esi], ebx

loc_4197C0:
mov	edi, [ebp+arg_8]
mov	eax, [edi]
cmp	eax, ebx
jz	short loc_4197D1
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
mov	[edi], ebx

loc_4197D1:
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], 4
mov	[ebp+var_24], offset off_44B518
mov	ecx, [ebp+var_10]
lea	eax, [ebp+var_24]
push	eax
mov	[ebp+var_4], ebx
call	sub_4170D3
mov	ecx, [ebp+var_10]
lea	eax, [ebp+var_24]
push	esi
push	eax
push	[ebp+hMenu]
call	sub_4195F7
cmp	byte_45D4C4, bl
jz	short loc_41981F
mov	ecx, [ebp+var_10]
lea	eax, [ebp+var_24]
push	edi
push	eax
push	[ebp+hMenu]
call	sub_4194D9

loc_41981F:
xor	esi, esi
cmp	[ebp+var_1C], ebx
jle	short loc_41983E

loc_419826:
mov	eax, [ebp+var_18]
mov	ecx, [ebp+var_10]
push	dword ptr [eax+esi*4]
call	sub_41756F
test	al, al
jnz	short loc_41983E
inc	esi
cmp	esi, [ebp+var_1C]
jl	short loc_419826

loc_41983E:
cmp	esi, [ebp+var_1C]
push	[ebp+hMenu]	; hMenu
mov	esi, [ebp+var_1C]
setz	al
mov	byte ptr [ebp+arg_4], al
call	ds:GetMenuItemCount
push	[ebp+arg_4]
mov	ecx, [ebp+var_10]
mov	edi, eax
push	esi
call	sub_40E6A6
mov	ecx, [ebp+hMenu]
push	eax
push	[ebp+arg_C]
mov	edx, edi
call	sub_40C412
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_24]
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	10h
sub_41979A endp




sub_41988C proc	near

arg_0= dword ptr  4

mov	eax, [ecx+174h]
mov	edx, [ecx+170h]
push	eax
push	edx
push	[esp+8+arg_0]
call	sub_4198A6
retn	4
sub_41988C endp



; Attributes: bp-based frame

sub_4198A6 proc	near

var_68=	dword ptr -68h
var_64=	dword ptr -64h
var_60=	dword ptr -60h
var_5C=	dword ptr -5Ch
var_58=	dword ptr -58h
var_54=	dword ptr -54h
var_50=	dword ptr -50h
var_44=	dword ptr -44h
var_40=	dword ptr -40h
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
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_445484
call	__EH_prolog
sub	esp, 5Ch
push	ebx
push	esi
push	edi
mov	edi, ecx
mov	ecx, [ebp+arg_0]
mov	[ebp+var_10], edi
cmp	ecx, 44Ch
sbb	al, al
lea	esi, [ecx-44Ch]
inc	al
mov	byte ptr [ebp+arg_0+3],	al
jnz	short loc_4198D9
lea	esi, [ecx-3E8h]

loc_4198D9:
mov	ecx, edi
mov	[ebp+var_68], 40h
mov	[ebp+var_64], 4000h
call	sub_40DA67
movzx	esi, si
add	edi, 0D8h
xor	ebx, ebx
mov	edx, edi
lea	ecx, [ebp+var_28]
mov	[ebp+var_60], eax
mov	[ebp+var_5C], esi
mov	[ebp+var_58], ebx
call	sub_43A785
mov	eax, [ebp+var_28]
push	edi
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], ebx
mov	[ebp+var_54], eax
mov	[ebp+var_50], 5
mov	[ebp+var_58], ebx
mov	[ebp+var_44], offset pszPath
mov	[ebp+var_40], esi
call	sub_4030F2
mov	eax, [ebp+Memory]
cmp	byte ptr [ebp+arg_0+3],	bl
mov	[ebp+var_38], eax
mov	eax, [ebp+arg_8]
mov	byte ptr [ebp+var_4], 1
mov	[ebp+var_34], offset word_45D498
mov	[ebp+var_30], ebx
mov	[ebp+var_2C], ebx
jnz	short loc_419954
mov	eax, [ebp+arg_4]

loc_419954:
mov	ecx, [eax]
lea	edx, [ebp+var_68]
push	edx
push	eax
call	dword ptr [ecx+10h]
cmp	eax, ebx
jnz	short loc_41996C
mov	ecx, [ebp+var_10]
call	sub_41BACC
mov	bl, 1

loc_41996C:		; Memory
push	[ebp+Memory]
call	sub_4284D8
push	[ebp+var_28]	; Memory
call	sub_4284D8
pop	ecx
mov	al, bl
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_4198A6 endp



; Attributes: bp-based frame

; int __stdcall	sub_419991(HWND	hWnd, int, int)
sub_419991 proc	near

var_44=	dword ptr -44h
var_3C=	dword ptr -3Ch
lParam=	dword ptr -30h
var_2C=	dword ptr -2Ch
var_28=	dword ptr -28h
var_24=	dword ptr -24h
Point= tagPOINT	ptr -20h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
hMenu= dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
hWnd= dword ptr	 8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_4454B0
call	__EH_prolog
sub	esp, 38h
push	ebx
push	esi
push	edi
mov	esi, ecx
push	[ebp+hWnd]	; hWnd
mov	edi, [esi+74h]
call	ds:GetParent
cmp	eax, edi
jnz	short loc_4199C5
push	[ebp+arg_8]
mov	ecx, esi
push	[ebp+arg_4]
call	sub_417992
jmp	loc_419B42

loc_4199C5:
mov	eax, [ebp+hWnd]
cmp	eax, [esi+74h]
jnz	loc_419A57
push	4
lea	ecx, [ebp+var_44]
call	sub_402794
mov	[ebp+var_44], offset off_44B518
lea	eax, [ebp+var_44]
xor	ebx, ebx
push	eax
mov	ecx, esi
mov	[ebp+var_4], ebx
call	sub_4170D3
mov	edi, [ebp+arg_4]
cmp	edi, ebx
jl	short loc_419A02
cmp	[ebp+arg_8], ebx
jge	loc_419A96

loc_419A02:
cmp	[ebp+var_3C], ebx
jnz	short loc_419A0D
xor	ecx, ecx
xor	eax, eax
jmp	short loc_419A7A

loc_419A0D:
mov	edi, ds:SendMessageA
push	1		; lParam
push	0FFFFFFFFh	; wParam
push	100Ch		; Msg
push	dword ptr [esi+74h] ; hWnd
call	edi ; SendMessageA
cmp	eax, 0FFFFFFFFh
jz	short loc_419A4B
lea	ecx, [ebp+lParam]
test	ecx, ecx
jz	short loc_419A39
mov	[ebp+lParam], 1
lea	ecx, [ebp+lParam]
jmp	short loc_419A3B

loc_419A39:
xor	ecx, ecx

loc_419A3B:		; lParam
push	ecx
push	eax		; wParam
push	100Eh		; Msg
push	dword ptr [esi+74h] ; hWnd
call	edi ; SendMessageA
cmp	eax, ebx
jnz	short loc_419A5E

loc_419A4B:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_44]
call	sub_4282FE

loc_419A57:
xor	al, al
jmp	loc_419B44

loc_419A5E:
mov	eax, [ebp+lParam]
mov	ecx, [ebp+var_28]
add	eax, ecx
cdq
sub	eax, edx
mov	edx, [ebp+var_24]
mov	ecx, eax
mov	eax, [ebp+var_2C]
add	eax, edx
cdq
sub	eax, edx
sar	ecx, 1
sar	eax, 1

loc_419A7A:
mov	[ebp+Point.y], eax
lea	eax, [ebp+Point]
push	eax		; lpPoint
mov	[ebp+Point.x], ecx
push	dword ptr [esi+74h] ; hWnd
call	ds:ClientToScreen
mov	eax, [ebp+Point.y]
mov	edi, [ebp+Point.x]
mov	[ebp+arg_8], eax

loc_419A96:
lea	eax, [ebp+hMenu]
mov	[ebp+hMenu], ebx
mov	[ebp+hWnd], eax
call	ds:CreatePopupMenu
mov	[ebp+hMenu], eax
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
lea	ecx, [ebp+var_14]
push	ebx		; int
push	ecx		; int
lea	ecx, [ebp+var_18]
push	ecx		; int
push	eax		; hMenu
mov	ecx, esi
mov	byte ptr [ebp+var_4], 3
call	sub_41979A
mov	eax, [esi+74h]
push	ebx		; LPTPMPARAMS
push	eax		; HWND
push	[ebp+arg_8]	; int
push	edi		; int
push	182h		; UINT
push	[ebp+hMenu]	; HMENU
call	ds:TrackPopupMenuEx
cmp	eax, ebx
jz	short loc_419AFC
cmp	eax, 3E8h
jl	short loc_419AF5
push	[ebp+var_14]
mov	ecx, esi
push	[ebp+var_18]
push	eax
call	sub_4198A6
jmp	short loc_419AFC

loc_419AF5:
mov	ecx, eax
call	sub_40C5A4

loc_419AFC:
mov	eax, [ebp+var_14]
mov	byte ptr [ebp+var_4], 2
cmp	eax, ebx
jz	short loc_419B0D
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_419B0D:
mov	eax, [ebp+var_18]
mov	byte ptr [ebp+var_4], 1
cmp	eax, ebx
jz	short loc_419B1E
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_419B1E:
lea	eax, [ebp+hMenu]
test	eax, eax
jz	short loc_419B36
mov	eax, [ebp+hMenu]
cmp	eax, ebx
jz	short loc_419B36
push	eax		; hMenu
mov	[ebp+hMenu], ebx
call	ds:DestroyMenu

loc_419B36:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_44]
call	sub_4282FE

loc_419B42:
mov	al, 1

loc_419B44:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_419991 endp



; Attributes: bp-based frame

sub_419B55 proc	near

var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4454C4
call	__EH_prolog
push	esi
push	edi
xor	edi, edi
mov	esi, ecx
push	edi		; pvReserved
call	ds:CoInitialize
mov	eax, [esi+218h]
mov	[esp+14h+var_4], edi
sub	eax, edi
jz	short loc_419BD0
dec	eax
jz	short loc_419BAE
dec	eax
jz	short loc_419B8C
mov	dword ptr [esi+24Ch], 80004005h
jmp	short loc_419BF0

loc_419B8C:
mov	ecx, [esi+244h]
mov	edx, [esi+21Ch]
mov	eax, [esi+240h]
push	ecx
push	edx
push	dword ptr [esi+228h]
mov	edi, [eax]
push	eax
call	dword ptr [edi+14h]
jmp	short loc_419BEA

loc_419BAE:
mov	ecx, [esi+244h]
mov	edx, [esi+234h]
mov	eax, [esi+240h]
push	ecx
push	edx
push	dword ptr [esi+238h]
mov	edi, [eax]
push	eax
call	dword ptr [edi+18h]
jmp	short loc_419BEA

loc_419BD0:
mov	ecx, [esi+244h]
mov	eax, [esi+240h]
mov	edx, [esi+21Ch]
push	ecx
mov	edi, [eax]
push	edx
push	eax
call	dword ptr [edi+0Ch]

loc_419BEA:
mov	[esi+24Ch], eax

loc_419BF0:
mov	esi, [esi+24Ch]
call	ds:__imp_CoUninitialize
mov	ecx, [esp+14h+var_C]
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_419B55 endp



; Attributes: bp-based frame

sub_419C0D proc	near

var_44=	dword ptr -44h
var_34=	dword ptr -34h
Memory=	dword ptr -28h
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_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_4454FA
call	__EH_prolog
sub	esp, 28h
push	esi
push	edi
mov	esi, ecx
push	38h		; Size
call	sub_4284B1
pop	ecx
mov	[ebp+var_10], eax
xor	edi, edi
cmp	eax, edi
mov	[ebp+var_4], edi
jz	short loc_419C3B
mov	ecx, eax
call	sub_40FBA8
jmp	short loc_419C3D

loc_419C3B:
xor	eax, eax

loc_419C3D:
or	[ebp+var_4], 0FFFFFFFFh
push	ebx
push	eax
lea	ecx, [esi+244h]
mov	[esi+248h], eax
call	sub_43D0DB
mov	ecx, [esi+248h]
push	[ebp+arg_8]
lea	eax, [esi+50h]
mov	[ecx+30h], eax
lea	ecx, [esi+140h]
mov	byte ptr [esi+1F1h], 1
call	sub_419D9C
and	byte ptr [ebp+arg_8+3],	0
push	3
lea	ecx, [ebp+var_1C]
mov	[esi+24Ch], edi
mov	[ebp+var_1C], edi
mov	[ebp+var_18], edi
mov	[ebp+var_14], edi
call	sub_403396
mov	ebx, [ebp+arg_0]
mov	[ebp+var_4], 1
cmp	[ebx+0ECh], edi
jle	short loc_419CC6
mov	eax, [ebx+0ECh]
mov	ecx, [ebx+0F0h]
mov	eax, [ecx+eax*4-4]
mov	cl, [eax+70h]
add	eax, 74h
mov	byte ptr [ebp+arg_8+3],	cl
push	eax
lea	ecx, [ebp+var_1C]
call	sub_40312C

loc_419CC6:
mov	edi, [esi+248h]
mov	al, byte ptr [ebp+arg_8+3]
mov	[edi+18h], al
lea	eax, [ebp+var_1C]
push	eax
lea	ecx, [edi+1Ch]
call	sub_40312C
and	dword ptr [edi+28h], 0
and	dword ptr [edi+2Ch], 0
mov	eax, [ebx+40h]
push	3000000h
mov	edx, 898h
lea	ecx, [ebp+Memory]
mov	[esi+1F8h], eax
call	sub_40B168
push	eax
lea	ecx, [esi+1FCh]
mov	byte ptr [ebp+var_4], 2
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
lea	ecx, [ebp+var_34]
mov	[esp+44h+var_44], offset asc_45B128 ; "	"
call	sub_403091
mov	edx, [ebp+arg_4]
push	eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 3
call	sub_40356A
push	eax
lea	ecx, [esi+208h]
mov	byte ptr [ebp+var_4], 4
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_34]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
pop	ecx
pop	ecx
push	dword ptr [esi+1F8h] ; hWndParent
mov	ecx, esi
push	[ebp+arg_4]	; int
call	sub_424FE9
test	eax, eax
pop	ebx
jz	short loc_419D7B
mov	esi, eax
jmp	short loc_419D81

loc_419D7B:
mov	esi, [esi+24Ch]

loc_419D81:		; Memory
push	[ebp+var_1C]
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	0Ch
sub_419C0D endp



; Attributes: bp-based frame

sub_419D9C proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_44550C
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	edi
lea	edi, [esi+94h]
push	edi		; lpCriticalSection
mov	[ebp+var_10], edi
call	ds:EnterCriticalSection
push	[ebp+arg_0]
and	[ebp+var_4], 0
lea	ecx, [esi+70h]
call	sub_40312C
push	edi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_419D9C endp



; Attributes: bp-based frame

sub_419DE1 proc	near

var_B0=	byte ptr -0B0h
Memory=	dword ptr -88h
var_7C=	dword ptr -7Ch
var_70=	dword ptr -70h
FileOp=	_SHFILEOPSTRUCTA ptr -64h
var_44=	dword ptr -44h
var_3C=	dword ptr -3Ch
var_38=	dword ptr -38h
Src= dword ptr -30h
var_2C=	dword ptr -2Ch
var_24=	byte ptr -24h
var_23=	byte ptr -23h
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_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_44557E
call	__EH_prolog
sub	esp, 0A4h
push	ebx
push	esi
mov	esi, ecx
push	edi
lea	ecx, [ebp+var_24]
mov	[ebp+var_1C], esi
mov	[ebp+var_20], esi
call	sub_4028C8
xor	edi, edi
push	4
lea	ecx, [ebp+var_44]
mov	[ebp+var_4], edi
call	sub_402794
mov	[ebp+var_44], offset off_44B518
lea	eax, [ebp+var_44]
mov	ecx, esi
push	eax
mov	byte ptr [ebp+var_4], 1
call	sub_4170D3
cmp	[ebp+var_3C], edi
jnz	short loc_419E4B
and	byte ptr [ebp+var_4], 0
lea	ecx, [ebp+var_44]
call	sub_4282FE
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_24]
call	sub_4028F2
jmp	loc_41A17F

loc_419E4B:
lea	ecx, [ebp+var_B0]
call	sub_40283B
lea	eax, [ebp+var_B0]
mov	ecx, esi
push	eax
mov	byte ptr [ebp+var_4], 2
call	sub_4167F4
mov	ecx, esi
call	sub_40E6A6
test	al, al
jz	loc_41A133
cmp	byte ptr [ebp+arg_0], 0
jz	loc_41A133
cmp	byte_45D8B4, 0
jnz	loc_419FC4
lea	ecx, [ebp+var_18]
call	sub_41B2EB
mov	[ebp+var_18], offset off_44C3B0
xor	esi, esi
cmp	[ebp+var_3C], edi
mov	byte ptr [ebp+var_4], 3
jle	loc_419F60

loc_419EAC:
mov	eax, [ebp+var_38]
mov	ecx, [ebp+var_1C]
push	dword ptr [eax+edi*4]
lea	eax, [ebp+var_7C]
push	eax
call	sub_4174B8
mov	ebx, eax
mov	ecx, [ebp+var_1C]
lea	eax, [ebp+var_70]
push	eax
mov	byte ptr [ebp+var_4], 4
call	sub_40E71B
push	ebx
mov	edx, eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 5
call	sub_40356A
mov	edx, eax
lea	ecx, [ebp+Src]
mov	byte ptr [ebp+var_4], 6
call	sub_43A785
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_70]	; Memory
call	sub_4284D8
push	[ebp+var_7C]	; Memory
mov	byte ptr [ebp+var_4], 8
call	sub_4284D8
mov	eax, [ebp+var_2C]
add	esp, 0Ch
lea	eax, [eax+esi+1]
cmp	[ebp+var_14], eax
jnb	short loc_419F2A
sub	eax, [ebp+var_14]
lea	ecx, [ebp+var_18]
push	eax
call	sub_41B2AE

loc_419F2A:
mov	eax, [ebp+var_2C]
inc	eax
push	eax		; Size
mov	eax, [ebp+var_10]
push	[ebp+Src]	; Src
add	eax, esi
push	eax		; Dst
call	ds:memmove
mov	eax, [ebp+var_2C]
push	[ebp+Src]	; Memory
mov	byte ptr [ebp+var_4], 3
lea	esi, [esi+eax+1]
call	sub_4284D8
add	esp, 10h
inc	edi
cmp	edi, [ebp+var_3C]
jl	loc_419EAC
xor	edi, edi

loc_419F60:
lea	eax, [esi+1]
cmp	[ebp+var_14], eax
jnb	short loc_419F74
sub	eax, [ebp+var_14]
lea	ecx, [ebp+var_18]
push	eax
call	sub_41B2AE

loc_419F74:
mov	eax, [ebp+var_10]
and	byte ptr [eax+esi], 0
mov	esi, [ebp+var_1C]
mov	ecx, esi
call	sub_40DA67
mov	[ebp+FileOp.hwnd], eax
mov	eax, [ebp+var_10]
mov	[ebp+FileOp.pFrom], eax
lea	eax, [ebp+FileOp]
push	eax		; lpFileOp
mov	[ebp+FileOp.wFunc], 3
mov	[ebp+FileOp.pTo], edi
mov	[ebp+FileOp.fFlags], 40h
mov	[ebp+FileOp.fAnyOperationsAborted], edi
mov	[ebp+FileOp.hNameMappings], edi
mov	[ebp+FileOp.lpszProgressTitle],	edi
call	ds:SHFileOperationA
push	[ebp+var_10]
mov	byte ptr [ebp+var_4], 2
mov	[ebp+var_18], offset off_44C3AC
jmp	loc_41A12B

loc_419FC4:
mov	[ebp+var_14], edi
mov	[ebp+var_10], edi
mov	[ebp+var_18], offset off_44C3A8
xor	esi, esi
cmp	[ebp+var_3C], edi
mov	byte ptr [ebp+var_4], 0Bh
mov	[ebp+arg_0], edi
jle	loc_41A086

loc_419FE3:
mov	eax, [ebp+var_38]
mov	ecx, [ebp+var_1C]
push	dword ptr [eax+edi*4]
lea	eax, [ebp+var_70]
push	eax
call	sub_4174B8
mov	ebx, eax
mov	ecx, [ebp+var_1C]
lea	eax, [ebp+var_7C]
push	eax
mov	byte ptr [ebp+var_4], 0Ch
call	sub_40E71B
push	ebx
mov	edx, eax
lea	ecx, [ebp+Src]
mov	byte ptr [ebp+var_4], 0Dh
call	sub_40356A
push	[ebp+var_7C]	; Memory
call	sub_4284D8
push	[ebp+var_70]	; Memory
mov	byte ptr [ebp+var_4], 0Fh
call	sub_4284D8
mov	eax, [ebp+var_2C]
pop	ecx
cmp	eax, [ebp+arg_0]
pop	ecx
jle	short loc_41A037
mov	[ebp+arg_0], eax

loc_41A037:
lea	ecx, [eax+esi+1]
cmp	[ebp+var_14], ecx
jnb	short loc_41A04F
sub	ecx, [ebp+var_14]
push	ecx
lea	ecx, [ebp+var_18]
call	sub_41B2FC
mov	eax, [ebp+var_2C]

loc_41A04F:
lea	eax, [eax+eax+2]
push	eax		; Size
mov	eax, [ebp+var_10]
push	[ebp+Src]	; Src
lea	eax, [eax+esi*2]
push	eax		; Dst
call	ds:memmove
mov	eax, [ebp+var_2C]
push	[ebp+Src]	; Memory
mov	byte ptr [ebp+var_4], 0Bh
lea	esi, [esi+eax+1]
call	sub_4284D8
add	esp, 10h
inc	edi
cmp	edi, [ebp+var_3C]
jl	loc_419FE3
xor	edi, edi

loc_41A086:
lea	eax, [esi+1]
cmp	[ebp+var_14], eax
jnb	short loc_41A09A
sub	eax, [ebp+var_14]
lea	ecx, [ebp+var_18]
push	eax
call	sub_41B2FC

loc_41A09A:
mov	eax, [ebp+var_10]
cmp	[ebp+arg_0], 104h
mov	[eax+esi*2], di
jl	short loc_41A0BE
mov	ecx, [ebp+var_1C]
push	3020218h
push	8AAh
call	sub_40E58A
jmp	short loc_41A105

loc_41A0BE:
mov	esi, [ebp+var_1C]
mov	ecx, esi
call	sub_40DA67
mov	[ebp+FileOp.hwnd], eax
mov	eax, [ebp+var_10]
push	offset aShfileoperatio ; "SHFileOperationW"
push	offset ModuleName ; "shell32.dll"
mov	[ebp+FileOp.wFunc], 3
mov	[ebp+FileOp.pFrom], eax
mov	[ebp+FileOp.pTo], edi
mov	[ebp+FileOp.fFlags], 40h
mov	[ebp+FileOp.fAnyOperationsAborted], edi
mov	[ebp+FileOp.hNameMappings], edi
mov	[ebp+FileOp.lpszProgressTitle],	edi
call	ds:GetModuleHandleW
push	eax		; hModule
call	ds:GetProcAddress
cmp	eax, edi
jnz	short loc_41A117

loc_41A105:		; Memory
push	[ebp+var_10]
mov	[ebp+var_18], offset off_44C3A4
call	sub_4284D8
pop	ecx
jmp	short loc_41A14C

loc_41A117:
lea	ecx, [ebp+FileOp]
push	ecx
call	eax
push	[ebp+var_10]	; Memory
mov	byte ptr [ebp+var_4], 2
mov	[ebp+var_18], offset off_44C3A4

loc_41A12B:
call	sub_4284D8
pop	ecx
jmp	short loc_41A13E

loc_41A133:
lea	eax, [ebp+var_44]
mov	ecx, esi
push	eax
call	sub_41A200

loc_41A13E:
lea	eax, [ebp+var_B0]
mov	ecx, esi
push	eax
call	sub_41687D

loc_41A14C:
lea	ecx, [ebp+var_B0]
mov	byte ptr [ebp+var_4], 1
call	sub_40299B
and	byte ptr [ebp+var_4], 0
lea	ecx, [ebp+var_44]
call	sub_4282FE
mov	ecx, [ebp+var_20]
mov	al, [ebp+var_24]
mov	[ecx+184h], al
mov	eax, [ebp+var_20]
mov	cl, [ebp+var_23]
mov	[eax+185h], cl

loc_41A17F:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_419DE1 endp




sub_41A190 proc	near
push	dword ptr [ecx+8] ; Memory
mov	dword ptr [ecx], offset	off_44C3AC
call	sub_4284D8
pop	ecx
retn
sub_41A190 endp



; Attributes: bp-based frame

sub_41A1A0 proc	near

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

mov	eax, offset loc_445590
call	__EH_prolog
sub	esp, 0Ch
cmp	[ebp+arg_0], 80004002h
push	esi
mov	esi, ecx
jnz	short loc_41A1CA
push	3020208h
push	8A0h
call	sub_40E58A
jmp	short loc_41A1F1

loc_41A1CA:
push	[ebp+arg_8]
mov	edx, [ebp+arg_4]
lea	ecx, [ebp+Memory]
call	sub_40B168
push	dword ptr [eax]	; lpCaption
and	[ebp+var_4], 0
mov	ecx, esi
push	[ebp+arg_0]	; int
call	sub_40E54B
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_41A1F1:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	0Ch
sub_41A1A0 endp



; Attributes: bp-based frame

sub_41A200 proc	near

var_290= byte ptr -290h
var_64=	byte ptr -64h
var_50=	byte ptr -50h
var_40=	dword ptr -40h
lpText=	dword ptr -34h
var_30=	dword ptr -30h
var_2C=	dword ptr -2Ch
lpCaption= dword ptr -28h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_44560F
call	__EH_prolog
sub	esp, 284h
push	ebx
push	esi
xor	ebx, ebx
push	edi
mov	edi, ecx
mov	[ebp+var_10], ebx
mov	eax, [edi+0FCh]
lea	edx, [ebp+var_10]
push	edx
push	offset unk_44B6A0
mov	ecx, [eax]
push	eax
mov	[ebp+var_4], ebx
call	dword ptr [ecx]
cmp	eax, ebx
jz	short loc_41A250
push	3020217h
push	8A9h
push	80004002h
mov	ecx, edi
call	sub_41A1A0
jmp	loc_41A4A3

loc_41A250:
push	3
lea	ecx, [ebp+lpCaption]
mov	[ebp+lpCaption], ebx
mov	[ebp+var_24], ebx
mov	[ebp+var_20], ebx
call	sub_403396
push	3
lea	ecx, [ebp+lpText]
mov	byte ptr [ebp+var_4], 1
mov	[ebp+lpText], ebx
mov	[ebp+var_30], ebx
mov	[ebp+var_2C], ebx
call	sub_403396
mov	esi, [ebp+arg_0]
mov	byte ptr [ebp+var_4], 2
cmp	dword ptr [esi+8], 1
jnz	loc_41A36B
mov	eax, [esi+0Ch]
mov	ecx, edi
mov	eax, [eax]
mov	[ebp+arg_0], eax
push	eax
lea	eax, [ebp+var_40]
push	eax
call	sub_4174B8
push	[ebp+arg_0]
mov	ecx, edi
mov	byte ptr [ebp+var_4], 3
call	sub_41756F
test	al, al
jz	short loc_41A305
push	3020211h
mov	edx, 8A3h
lea	ecx, [ebp+Memory]
call	sub_40B168
push	eax
lea	ecx, [ebp+lpCaption]
mov	byte ptr [ebp+var_4], 4
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_40]
push	eax
push	3020214h
mov	edx, 8A6h
lea	ecx, [ebp+Memory]
call	sub_40744B
push	eax
lea	ecx, [ebp+lpText]
mov	byte ptr [ebp+var_4], 5
call	sub_40312C
push	[ebp+Memory]
jmp	short loc_41A357

loc_41A305:
push	3020210h
mov	edx, 8A2h
lea	ecx, [ebp+Memory]
call	sub_40B168
push	eax
lea	ecx, [ebp+lpCaption]
mov	byte ptr [ebp+var_4], 6
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_40]
push	eax
push	3020213h
mov	edx, 8A5h
lea	ecx, [ebp+Memory]
call	sub_40744B
push	eax
lea	ecx, [ebp+lpText]
mov	byte ptr [ebp+var_4], 7
call	sub_40312C
push	[ebp+Memory]	; Memory

loc_41A357:
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 2
push	[ebp+var_40]	; Memory
call	sub_4284D8
jmp	short loc_41A3DE

loc_41A36B:
push	3020212h
mov	edx, 8A4h
lea	ecx, [ebp+Memory]
call	sub_40B168
push	eax
lea	ecx, [ebp+lpCaption]
mov	byte ptr [ebp+var_4], 8
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 2
call	sub_4284D8
mov	eax, [esi+8]
pop	ecx
cdq
push	edx
push	eax
lea	ecx, [ebp+var_40]
call	sub_4073AB
push	eax
push	3020215h
mov	edx, 8A7h
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 9
call	sub_40744B
push	eax
lea	ecx, [ebp+lpText]
mov	byte ptr [ebp+var_4], 0Ah
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_40]	; Memory
mov	byte ptr [ebp+var_4], 2
call	sub_4284D8
pop	ecx

loc_41A3DE:
pop	ecx
push	21h		; uType
mov	ecx, edi
push	[ebp+lpCaption]	; lpCaption
push	[ebp+lpText]	; lpText
call	sub_40DA67
push	eax		; hWnd
call	ds:MessageBoxW
cmp	eax, 1
jnz	loc_41A491
push	eax
lea	ecx, [ebp+var_290]
call	sub_41A4C5
push	[ebp+var_10]
lea	ecx, [ebp+var_50]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_43D0DB
lea	ecx, [ebp+var_64]
call	sub_428327
push	esi
lea	ecx, [ebp+var_64]
call	sub_40F449
push	3020217h
mov	edx, 8A9h
lea	ecx, [ebp+var_40]
call	sub_40B168
mov	esi, eax
push	3020216h
mov	edx, 8A8h
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 0Ch
call	sub_40B168
push	esi
push	eax
push	edi
lea	ecx, [ebp+var_290]
mov	byte ptr [ebp+var_4], 0Dh
call	sub_419C0D
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_40]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 2
pop	ecx
lea	ecx, [ebp+var_290]
call	sub_41A549
mov	ecx, [edi+44h]
push	1
mov	eax, [ecx]
call	dword ptr [eax+20h]

loc_41A491:		; Memory
push	[ebp+lpText]
call	sub_4284D8
push	[ebp+lpCaption]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx

loc_41A4A3:
mov	eax, [ebp+var_10]
or	[ebp+var_4], 0FFFFFFFFh
cmp	eax, ebx
jz	short loc_41A4B4
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_41A4B4:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_41A200 endp



; Attributes: bp-based frame

sub_41A4C5 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_445624
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
call	sub_40F2E5
mov	eax, [ebp+arg_0]
lea	ecx, [esi+21Ch]
xor	edi, edi
mov	[esi+218h], eax
push	3
mov	[ebp+var_4], edi
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
mov	ecx, [ebp+var_C]
lea	eax, [esi+22Ch]
mov	[eax+4], edi
mov	[eax+8], edi
mov	[eax+0Ch], edi
mov	dword ptr [eax+10h], 4
mov	dword ptr [eax], offset	off_44B518
mov	[esi+240h], edi
mov	[esi+244h], edi
mov	dword ptr [esi+24Ch], 80004005h
mov	dword ptr [esi], offset	off_44C3B4
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_41A4C5 endp



; Attributes: bp-based frame

sub_41A549 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_445662
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	eax, [esi+244h]
mov	[ebp+var_4], 3
test	eax, eax
jz	short loc_41A571
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_41A571:
mov	eax, [esi+240h]
mov	byte ptr [ebp+var_4], 2
test	eax, eax
jz	short loc_41A585
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_41A585:
lea	ecx, [esi+22Ch]
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
push	dword ptr [esi+21Ch] ; Memory
call	sub_4284D8
or	[ebp+var_4], 0FFFFFFFFh
pop	ecx
mov	ecx, esi
call	sub_40F3F1
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_41A549 endp



; Attributes: bp-based frame

sub_41A5B8 proc	near

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

mov	eax, offset loc_445674
call	__EH_prolog
mov	eax, [ebp+arg_0]
mov	eax, [eax+2Ch]
cmp	eax, 0FFFFFFFFh
jz	short loc_41A5FE
and	[ebp+arg_0], 0
mov	eax, [ecx+0FCh]
and	[ebp+var_4], 0
lea	edx, [ebp+arg_0]
mov	ecx, [eax]
push	edx
push	offset unk_44B6A0
push	eax
call	dword ptr [ecx]
test	eax, eax
jz	short loc_41A603
mov	eax, [ebp+arg_0]
or	[ebp+var_4], 0FFFFFFFFh
test	eax, eax
jz	short loc_41A5FE
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_41A5FE:
push	1
pop	eax
jmp	short loc_41A616

loc_41A603:
mov	eax, [ebp+arg_0]
or	[ebp+var_4], 0FFFFFFFFh
test	eax, eax
jz	short loc_41A614
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_41A614:
xor	eax, eax

loc_41A616:
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn	4
sub_41A5B8 endp



; Attributes: bp-based frame

sub_41A624 proc	near

var_294= byte ptr -294h
var_78=	byte ptr -78h
var_6C=	dword ptr -6Ch
var_54=	byte ptr -54h
var_44=	dword ptr -44h
var_38=	dword ptr -38h
var_2C=	dword ptr -2Ch
Memory=	dword ptr -20h
var_14=	byte ptr -14h
var_13=	byte ptr -13h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4456C3
call	__EH_prolog
sub	esp, 288h
push	ebx
push	esi
push	edi
mov	edi, [ebp+arg_0]
xor	ebx, ebx
mov	esi, ecx
cmp	[edi+20h], ebx
jz	loc_41A79E
mov	[ebp+arg_0], ebx
mov	eax, [esi+0FCh]
lea	edx, [ebp+arg_0]
push	edx
push	offset unk_44B6A0
mov	ecx, [eax]
push	eax
mov	[ebp+var_4], ebx
call	dword ptr [ecx]
cmp	eax, ebx
jz	short loc_41A680
push	3020221h
push	8ADh
push	80004002h
mov	ecx, esi
call	sub_41A1A0
jmp	loc_41A78D

loc_41A680:
push	dword ptr [edi+20h]
lea	ecx, [ebp+Memory]
call	sub_403091
lea	ecx, [ebp+var_14]
mov	[ebp+var_10], esi
call	sub_4028C8
lea	eax, [esi+0A4h]
mov	ecx, esi
push	eax
mov	byte ptr [ebp+var_4], 2
call	sub_4167F4
mov	edi, [edi+2Ch]
cmp	edi, 0FFFFFFFFh
jnz	short loc_41A6C5
lea	ecx, [ebp+var_14]
call	sub_4028F2
push	[ebp+Memory]	; Memory
call	sub_4284D8
jmp	loc_41A78C

loc_41A6C5:
lea	eax, [ebp+var_2C]
push	edi
push	eax
mov	ecx, esi
call	sub_4173E8
push	2
lea	ecx, [ebp+var_294]
mov	byte ptr [ebp+var_4], 3
call	sub_41A4C5
push	[ebp+arg_0]
lea	ecx, [ebp+var_54]
mov	byte ptr [ebp+var_4], 4
call	sub_43D0DB
lea	eax, [ebp+Memory]
lea	ecx, [ebp+var_78]
push	eax
mov	[ebp+var_6C], edi
call	sub_40312C
push	3020221h
mov	edx, 8ADh
lea	ecx, [ebp+var_38]
call	sub_40B168
mov	edi, eax
push	3020220h
mov	edx, 8ACh
lea	ecx, [ebp+var_44]
mov	byte ptr [ebp+var_4], 5
call	sub_40B168
push	edi
push	eax
push	esi
lea	ecx, [ebp+var_294]
mov	byte ptr [ebp+var_4], 6
call	sub_419C0D
push	[ebp+var_44]	; Memory
mov	edi, eax
call	sub_4284D8
push	[ebp+var_38]	; Memory
call	sub_4284D8
pop	ecx
cmp	edi, ebx
pop	ecx
mov	byte ptr [ebp+var_4], 3
lea	ecx, [ebp+var_294]
jz	short loc_41A7A5
call	sub_41A549
push	[ebp+var_2C]	; Memory
call	sub_4284D8
mov	ecx, [ebp+var_10]
mov	al, [ebp+var_14]
mov	[ecx+184h], al
mov	eax, [ebp+var_10]
mov	cl, [ebp+var_13]
mov	[eax+185h], cl
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_41A78C:
pop	ecx

loc_41A78D:
mov	eax, [ebp+arg_0]
or	[ebp+var_4], 0FFFFFFFFh
cmp	eax, ebx
jz	short loc_41A79E
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_41A79E:
xor	eax, eax
jmp	loc_41A82E

loc_41A7A5:
call	sub_41A549
lea	eax, [ebp+Memory]
lea	edx, [ebp+var_2C]
push	eax
lea	ecx, [ebp+var_38]
call	sub_40356A
push	eax
lea	ecx, [esi+0A8h]
mov	byte ptr [ebp+var_4], 7
call	sub_40312C
push	[ebp+var_38]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [esi+0B4h], 1
push	ebx		; lParam
push	ebx		; wParam
push	402h		; Msg
mov	byte ptr [esi+0D7h], 1
push	dword ptr [esi+4] ; hWnd
call	ds:PostMessageA
push	[ebp+var_2C]	; Memory
call	sub_4284D8
mov	ecx, [ebp+var_10]
mov	al, [ebp+var_14]
mov	[ecx+184h], al
mov	eax, [ebp+var_10]
mov	cl, [ebp+var_13]
mov	[eax+185h], cl
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+arg_0]
or	[ebp+var_4], 0FFFFFFFFh
pop	ecx
cmp	eax, ebx
pop	ecx
jz	short loc_41A82B
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_41A82B:
push	1
pop	eax

loc_41A82E:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_41A624 endp



; Attributes: bp-based frame

sub_41A83F proc	near

var_308= dword ptr -308h
var_2FC= byte ptr -2FCh
var_E0=	byte ptr -0E0h
var_BC=	byte ptr -0BCh
var_AC=	byte ptr -0ACh
var_A0=	byte ptr -0A0h
var_94=	byte ptr -94h
var_88=	byte ptr -88h
var_68=	byte ptr -68h
var_64=	dword ptr -64h
var_58=	byte ptr -58h
var_54=	byte ptr -54h
var_40=	dword ptr -40h
var_34=	dword ptr -34h
var_30=	byte ptr -30h
var_2C=	dword ptr -2Ch
var_28=	dword ptr -28h
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_445746
call	__EH_prolog
sub	esp, 2F0h
and	[ebp+var_10], 0
push	esi
push	edi
mov	esi, ecx
mov	eax, [esi+0FCh]
and	[ebp+var_4], 0
lea	edx, [ebp+var_10]
mov	ecx, [eax]
push	edx
push	offset unk_44B6A0
push	eax
call	dword ptr [ecx]
test	eax, eax
jz	short loc_41A88E
push	3020233h
push	8B9h
push	80004002h
mov	ecx, esi
call	sub_41A1A0
jmp	loc_41AAF6

loc_41A88E:
lea	ecx, [ebp+var_30]
mov	[ebp+var_2C], esi
call	sub_4028C8
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 1
call	sub_40283B
lea	eax, [ebp+var_68]
mov	ecx, esi
push	eax
mov	byte ptr [ebp+var_4], 2
call	sub_4167F4
lea	ecx, [ebp+var_AC]
call	sub_41AB15
mov	edi, 3020230h
mov	edx, 8B6h
push	edi
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 3
call	sub_40B168
push	eax
lea	ecx, [ebp+var_A0]
mov	byte ptr [ebp+var_4], 4
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
mov	edx, 8B7h
lea	ecx, [ebp+Memory]
mov	[esp+308h+var_308], 3020231h
call	sub_40B168
push	eax
lea	ecx, [ebp+var_94]
mov	byte ptr [ebp+var_4], 5
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx
mov	edx, 8B8h
push	0FFFFFFFFh
lea	ecx, [ebp+Memory]
call	sub_40B168
push	eax
lea	ecx, [ebp+var_88]
mov	byte ptr [ebp+var_4], 6
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx
mov	ecx, esi
call	sub_40DA67
push	eax		; hWndParent
push	1F9h		; lpTemplateName
lea	ecx, [ebp+var_AC]
call	sub_42FCF7
cmp	eax, 2
jnz	short loc_41A983
lea	ecx, [ebp+var_AC]
mov	byte ptr [ebp+var_4], al
call	sub_41ABA3
mov	byte ptr [ebp+var_4], 7
jmp	loc_41AA42

loc_41A983:
lea	eax, [ebp+var_88]
lea	ecx, [ebp+var_28]
push	eax
call	sub_4030F2
push	0
lea	ecx, [ebp+var_2FC]
mov	byte ptr [ebp+var_4], 8
call	sub_41A4C5
push	[ebp+var_10]
lea	ecx, [ebp+var_BC]
mov	byte ptr [ebp+var_4], 9
call	sub_43D0DB
lea	eax, [ebp+var_28]
lea	ecx, [ebp+var_E0]
push	eax
call	sub_40312C
push	3020233h
mov	edx, 8B9h
lea	ecx, [ebp+var_40]
call	sub_40B168
mov	[ebp+var_34], eax
push	edi
mov	edx, 8B6h
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 0Ah
call	sub_40B168
push	[ebp+var_34]
lea	ecx, [ebp+var_2FC]
mov	byte ptr [ebp+var_4], 0Bh
push	eax
push	esi
call	sub_419C0D
push	[ebp+Memory]	; Memory
mov	edi, eax
call	sub_4284D8
push	[ebp+var_40]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 8
pop	ecx
test	edi, edi
lea	ecx, [ebp+var_2FC]
jz	short loc_41AA58
call	sub_41A549
push	[ebp+var_28]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 2
lea	ecx, [ebp+var_AC]
call	sub_41ABA3
mov	byte ptr [ebp+var_4], 0Ch

loc_41AA42:
lea	ecx, [ebp+var_54]
call	sub_40327C
push	[ebp+var_64]	; Memory
call	sub_4284D8
pop	ecx
jmp	loc_41AAEE

loc_41AA58:
call	sub_41A549
push	0
push	5Ch
lea	ecx, [ebp+var_28]
call	sub_40B7E1
test	eax, eax
jl	short loc_41AA94
push	eax
lea	eax, [ebp+var_40]
push	eax
lea	ecx, [ebp+var_28]
call	sub_403228
push	eax
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 0Dh
call	sub_40312C
push	[ebp+var_40]	; Memory
mov	byte ptr [ebp+var_4], 8
call	sub_4284D8
pop	ecx

loc_41AA94:
cmp	byte ptr [esi+8Fh], 0
jnz	short loc_41AAA5
lea	ecx, [ebp+var_54]
call	sub_428327

loc_41AAA5:
lea	eax, [ebp+var_28]
lea	ecx, [ebp+var_64]
push	eax
call	sub_40312C
mov	ecx, [esi+44h]
mov	[ebp+var_58], 1
push	1
mov	eax, [ecx]
call	dword ptr [eax+20h]
lea	eax, [ebp+var_68]
mov	ecx, esi
push	eax
call	sub_41687D
push	[ebp+var_28]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 2
lea	ecx, [ebp+var_AC]
call	sub_41ABA3
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 1
call	sub_40299B

loc_41AAEE:
lea	ecx, [ebp+var_30]
call	sub_4028F2

loc_41AAF6:
mov	eax, [ebp+var_10]
or	[ebp+var_4], 0FFFFFFFFh
test	eax, eax
jz	short loc_41AB07
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_41AB07:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_41A83F endp



; Attributes: bp-based frame

sub_41AB15 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44576E
call	__EH_prolog
push	ecx
push	esi
push	edi
mov	esi, ecx
xor	edi, edi
mov	[ebp+var_10], esi
mov	[esi+4], edi
mov	dword ptr [esi], offset	off_44B558
lea	ecx, [esi+0Ch]
mov	[esi+8], edi
push	3
mov	[ebp+var_4], edi
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
lea	ecx, [esi+18h]
push	3
mov	byte ptr [ebp+var_4], 1
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
lea	ecx, [esi+24h]
push	3
mov	byte ptr [ebp+var_4], 2
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
mov	ecx, [ebp+var_C]
mov	[esi+34h], edi
mov	[esi+38h], edi
mov	[esi+3Ch], edi
mov	dword ptr [esi+40h], 4
mov	dword ptr [esi+30h], offset off_44B510
mov	dword ptr [esi], offset	off_44C3B8
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_41AB15 endp



; Attributes: bp-based frame

sub_41ABA3 proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4457A9
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
lea	edi, [esi+30h]
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44B510
mov	ecx, edi
mov	byte ptr [ebp+var_4], 4
call	sub_428327
mov	ecx, edi
mov	byte ptr [ebp+var_4], 3
call	sub_4282FE
push	dword ptr [esi+24h] ; Memory
call	sub_4284D8
push	dword ptr [esi+18h] ; Memory
call	sub_4284D8
push	dword ptr [esi+0Ch] ; Memory
call	sub_4284D8
mov	ecx, [ebp+var_C]
add	esp, 0Ch
mov	dword ptr [esi], offset	off_44B588
mov	large fs:0, ecx
pop	edi
pop	esi
leave
retn
sub_41ABA3 endp




; int __thiscall sub_41AC0B(void *Memory, char)
sub_41AC0B proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_41ABA3
test	[esp+4+arg_0], 1
jz	short loc_41AC21
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_41AC21:
mov	eax, esi
pop	esi
retn	4
sub_41AC0B endp



; Attributes: bp-based frame

sub_41AC27 proc	near

var_A8=	dword ptr -0A8h
var_9C=	byte ptr -9Ch
var_90=	byte ptr -90h
var_84=	byte ptr -84h
var_78=	byte ptr -78h
var_58=	byte ptr -58h
var_54=	dword ptr -54h
var_48=	byte ptr -48h
var_44=	byte ptr -44h
var_30=	byte ptr -30h
var_2C=	dword ptr -2Ch
Memory=	dword ptr -28h
var_1C=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44580F
call	__EH_prolog
sub	esp, 90h
push	ebx
xor	ebx, ebx
push	esi
mov	esi, ecx
mov	[ebp+var_10], ebx
mov	eax, [esi+0FCh]
lea	edx, [ebp+var_10]
push	edx
push	offset unk_44B6A0
mov	ecx, [eax]
push	eax
mov	[ebp+var_4], ebx
call	dword ptr [ecx]
cmp	eax, ebx
jz	short loc_41AC76
push	3020243h
push	8C3h
push	80004002h
mov	ecx, esi
call	sub_41A1A0
jmp	loc_41ADCC

loc_41AC76:
lea	ecx, [ebp+var_30]
mov	[ebp+var_2C], esi
call	sub_4028C8
lea	ecx, [ebp+var_58]
mov	byte ptr [ebp+var_4], 1
call	sub_40283B
lea	eax, [ebp+var_58]
mov	ecx, esi
push	eax
mov	byte ptr [ebp+var_4], 2
call	sub_4167F4
lea	ecx, [ebp+var_9C]
call	sub_41AB15
push	3020240h
mov	edx, 8C0h
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 3
call	sub_40B168
push	eax
lea	ecx, [ebp+var_90]
mov	byte ptr [ebp+var_4], 4
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
mov	edx, 8C1h
lea	ecx, [ebp+Memory]
mov	[esp+0A8h+var_A8], 3020241h
call	sub_40B168
push	eax
lea	ecx, [ebp+var_84]
mov	byte ptr [ebp+var_4], 5
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx
mov	edx, 8C2h
push	0FFFFFFFFh
lea	ecx, [ebp+Memory]
call	sub_40B168
push	eax
lea	ecx, [ebp+var_78]
mov	byte ptr [ebp+var_4], 6
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx
mov	ecx, esi
call	sub_40DA67
push	eax		; hWndParent
push	1F9h		; lpTemplateName
lea	ecx, [ebp+var_9C]
call	sub_42FCF7
cmp	eax, 2
jnz	short loc_41AD64
lea	ecx, [ebp+var_9C]
mov	byte ptr [ebp+var_4], al
call	sub_41ABA3
mov	byte ptr [ebp+var_4], 7
jmp	short loc_41ADB3

loc_41AD64:
lea	eax, [ebp+var_78]
lea	ecx, [ebp+var_1C]
push	eax
call	sub_4030F2
mov	eax, [ebp+var_10]
push	ebx
push	[ebp+var_1C]
mov	byte ptr [ebp+var_4], 8
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+10h]
cmp	eax, ebx
jz	short loc_41ADE6
push	3020243h
push	8C3h
push	eax
mov	ecx, esi
call	sub_41A1A0
push	[ebp+var_1C]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 2
lea	ecx, [ebp+var_9C]
call	sub_41ABA3
mov	byte ptr [ebp+var_4], 9

loc_41ADB3:
lea	ecx, [ebp+var_44]
call	sub_40327C
push	[ebp+var_54]	; Memory
call	sub_4284D8
pop	ecx
lea	ecx, [ebp+var_30]
call	sub_4028F2

loc_41ADCC:
mov	eax, [ebp+var_10]
or	[ebp+var_4], 0FFFFFFFFh
cmp	eax, ebx
jz	loc_41AE7F
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
jmp	loc_41AE7F

loc_41ADE6:
push	ebx
push	5Ch
lea	ecx, [ebp+var_1C]
call	sub_40B7E1
cmp	eax, ebx
jl	short loc_41AE1C
push	eax
lea	eax, [ebp+Memory]
push	eax
lea	ecx, [ebp+var_1C]
call	sub_403228
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 0Ah
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 8
call	sub_4284D8
pop	ecx

loc_41AE1C:
cmp	[esi+8Fh], bl
jnz	short loc_41AE2C
lea	ecx, [ebp+var_44]
call	sub_428327

loc_41AE2C:
lea	eax, [ebp+var_1C]
lea	ecx, [ebp+var_54]
push	eax
call	sub_40312C
lea	eax, [ebp+var_58]
mov	ecx, esi
push	eax
mov	[ebp+var_48], 1
call	sub_41687D
push	[ebp+var_1C]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 2
lea	ecx, [ebp+var_9C]
call	sub_41ABA3
lea	ecx, [ebp+var_58]
mov	byte ptr [ebp+var_4], 1
call	sub_40299B
lea	ecx, [ebp+var_30]
call	sub_4028F2
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_10]
call	sub_4370A0

loc_41AE7F:
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_41AC27 endp




sub_41AE8D proc	near
push	esi
lea	esi, [ecx+74h]
mov	ecx, esi
call	sub_402DF8
test	eax, eax
jl	short loc_41AEAC
push	0		; lParam
push	eax		; wParam
push	1017h		; Msg
push	dword ptr [esi]	; hWnd
call	ds:SendMessageA

loc_41AEAC:
pop	esi
retn
sub_41AE8D endp



; Attributes: bp-based frame

sub_41AEAE proc	near

var_D8=	byte ptr -0D8h
var_CC=	byte ptr -0CCh
var_C0=	byte ptr -0C0h
psz= dword ptr -0B4h
var_94=	dword ptr -94h
var_88=	dword ptr -88h
var_7C=	byte ptr -7Ch
var_6C=	byte ptr -6Ch
var_68=	dword ptr -68h
var_58=	byte ptr -58h
var_44=	dword ptr -44h
var_38=	dword ptr -38h
pvarg= VARIANTARG ptr -34h
Memory=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_18=	byte ptr -18h
var_17=	byte ptr -17h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4458A5
call	__EH_prolog
sub	esp, 0CCh
push	ebx
push	esi
mov	esi, ecx
push	edi
lea	ecx, [ebp+var_18]
mov	[ebp+var_14], esi
call	sub_4028C8
xor	ebx, ebx
push	1		; __int16
push	0FFFFFFFFh	; wParam
lea	ecx, [esi+74h]
mov	[ebp+var_4], ebx
call	sub_402821
cmp	eax, ebx
jl	loc_41B11C
push	eax
mov	ecx, esi
call	sub_402875
mov	edi, eax
cmp	edi, 0FFFFFFFFh
mov	[ebp+var_38], edi
jz	loc_41B11C
lea	ecx, [ebp+var_6C]
call	sub_40283B
lea	eax, [ebp+var_6C]
mov	ecx, esi
push	eax
mov	byte ptr [ebp+var_4], 1
call	sub_4167F4
mov	[ebp+var_10], ebx
mov	eax, [esi+0FCh]
lea	edx, [ebp+var_10]
push	edx
push	offset unk_44B6A0
mov	ecx, [eax]
push	eax
mov	byte ptr [ebp+var_4], 2
call	dword ptr [ecx]
cmp	eax, ebx
jz	short loc_41AF5E
push	3020208h
push	8A0h
mov	ecx, esi
call	sub_40E58A
mov	eax, [ebp+var_10]
mov	byte ptr [ebp+var_4], 1
cmp	eax, ebx
jz	short loc_41AF55
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_41AF55:
mov	byte ptr [ebp+var_4], 3
jmp	loc_41B10B

loc_41AF5E:
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], ebx
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
call	sub_403396
mov	word ptr [ebp+pvarg.anonymous_0], bx
mov	word ptr [ebp+pvarg.anonymous_0+2], bx
mov	eax, [esi+0FCh]
lea	edx, [ebp+pvarg]
push	edx
push	1Ch
mov	ecx, [eax]
push	edi
push	eax
mov	byte ptr [ebp+var_4], 5
call	dword ptr [ecx+14h]
test	eax, eax
jz	short loc_41AFC3
lea	ecx, [ebp+pvarg] ; pvarg
mov	byte ptr [ebp+var_4], 4
call	sub_42CDE1
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_10]
pop	ecx
cmp	eax, ebx
mov	byte ptr [ebp+var_4], 1
jz	short loc_41AFBA
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_41AFBA:
mov	byte ptr [ebp+var_4], 6
jmp	loc_41B10B

loc_41AFC3:
cmp	word ptr [ebp+pvarg.anonymous_0], 8
jnz	loc_41B129
push	dword ptr [ebp+pvarg.anonymous_0+8]
lea	ecx, [ebp+Memory]
call	sub_404722

loc_41AFD9:		; pvarg
lea	ecx, [ebp+pvarg]
mov	byte ptr [ebp+var_4], 4
call	sub_42CDE1
lea	eax, [ebp+var_44]
push	edi
push	eax
mov	ecx, esi
call	sub_4174B8
lea	ecx, [ebp+var_D8]
mov	byte ptr [ebp+var_4], 8
call	sub_41AB15
push	3020290h
mov	edx, 0FA1h
lea	ecx, [ebp+pvarg.anonymous_0+4]
mov	byte ptr [ebp+var_4], 9
call	sub_40B168
mov	edi, eax
push	offset asc_45B128 ; " "
lea	edx, [ebp+var_44]
lea	ecx, [ebp+var_94]
mov	byte ptr [ebp+var_4], 0Ah
call	sub_409948
push	edi
mov	edx, eax
lea	ecx, [ebp+var_88]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_40356A
push	eax
lea	ecx, [ebp+var_CC]
mov	byte ptr [ebp+var_4], 0Ch
call	sub_40312C
push	[ebp+var_88]	; Memory
call	sub_4284D8
push	[ebp+var_94]	; Memory
call	sub_4284D8
push	dword ptr [ebp+pvarg.anonymous_0+4] ; Memory
mov	byte ptr [ebp+var_4], 9
call	sub_4284D8
add	esp, 0Ch
lea	eax, [ebp+Memory]
lea	ecx, [ebp+psz]
push	eax
call	sub_40312C
push	3020291h
mov	edx, 0FA2h
lea	ecx, [ebp+pvarg.anonymous_0+4]
call	sub_40B168
push	eax
lea	ecx, [ebp+var_C0]
mov	byte ptr [ebp+var_4], 0Dh
call	sub_40312C
push	dword ptr [ebp+pvarg.anonymous_0+4] ; Memory
mov	byte ptr [ebp+var_4], 9
call	sub_4284D8
pop	ecx
mov	ecx, esi
call	sub_40DA67
push	eax		; hWndParent
push	1F9h		; lpTemplateName
lea	ecx, [ebp+var_D8]
call	sub_42FCF7
cmp	eax, 2
jnz	loc_41B15F
lea	ecx, [ebp+var_D8]
mov	byte ptr [ebp+var_4], 8
call	sub_41ABA3
push	[ebp+var_44]	; Memory
call	sub_4284D8
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_10]
pop	ecx
cmp	eax, ebx
pop	ecx
mov	byte ptr [ebp+var_4], 1
jz	short loc_41B107
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_41B107:
mov	byte ptr [ebp+var_4], 0Eh

loc_41B10B:
lea	ecx, [ebp+var_58]
call	sub_40327C
push	[ebp+var_68]	; Memory
call	sub_4284D8
pop	ecx

loc_41B11C:
lea	ecx, [ebp+var_18]
call	sub_4028F2
jmp	loc_41B21B

loc_41B129:
cmp	word ptr [ebp+pvarg.anonymous_0], bx
jz	loc_41AFD9
lea	ecx, [ebp+pvarg] ; pvarg
mov	byte ptr [ebp+var_4], 4
call	sub_42CDE1
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_10]
pop	ecx
cmp	eax, ebx
mov	byte ptr [ebp+var_4], 1
jz	short loc_41B159
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_41B159:
mov	byte ptr [ebp+var_4], 7
jmp	short loc_41B10B

loc_41B15F:		; psz
push	[ebp+psz]
lea	ecx, [ebp+var_7C]
call	sub_42CC64
mov	eax, [ebp+var_10]
lea	edx, [ebp+var_7C]
push	ebx
push	edx
mov	ecx, [eax]
push	1Ch
push	[ebp+var_38]
mov	byte ptr [ebp+var_4], 0Fh
push	eax
call	dword ptr [ecx+28h]
cmp	eax, ebx
jz	short loc_41B1AF
cmp	eax, 80004002h
jnz	short loc_41B1A2
push	3020208h
push	8A0h
mov	ecx, esi
call	sub_40E58A
jmp	short loc_41B1AF

loc_41B1A2:		; "Set Comment Error"
push	offset aSetCommentErro
push	eax		; int
mov	ecx, esi
call	sub_40E54B

loc_41B1AF:
lea	eax, [ebp+var_6C]
mov	ecx, esi
push	eax
call	sub_41687D
lea	ecx, [ebp+var_7C] ; pvarg
mov	byte ptr [ebp+var_4], 9
call	sub_42CDE1
lea	ecx, [ebp+var_D8]
mov	byte ptr [ebp+var_4], 8
call	sub_41ABA3
push	[ebp+var_44]	; Memory
call	sub_4284D8
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_10]
pop	ecx
cmp	eax, ebx
pop	ecx
mov	byte ptr [ebp+var_4], 1
jz	short loc_41B1F8
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_41B1F8:
lea	ecx, [ebp+var_6C]
mov	byte ptr [ebp+var_4], bl
call	sub_40299B
mov	ecx, [ebp+var_14]
mov	al, [ebp+var_18]
mov	[ecx+184h], al
mov	eax, [ebp+var_14]
mov	cl, [ebp+var_17]
mov	[eax+185h], cl

loc_41B21B:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_41AEAE endp




; int __thiscall sub_41B22A(void *Memory, char)
sub_41B22A proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_41A190
test	[esp+4+arg_0], 1
jz	short loc_41B240
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_41B240:
mov	eax, esi
pop	esi
retn	4
sub_41B22A endp




; int __thiscall sub_41B246(void *Memory, char)
sub_41B246 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
push	dword ptr [esi+8] ; Memory
mov	dword ptr [esi], offset	off_44C3AC
call	sub_4284D8
test	[esp+8+arg_0], 1
pop	ecx
jz	short loc_41B266
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_41B266:
mov	eax, esi
pop	esi
retn	4
sub_41B246 endp




; int __thiscall sub_41B26C(void *Memory, char)
sub_41B26C proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_42DA76
test	[esp+4+arg_0], 1
jz	short loc_41B282
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_41B282:
mov	eax, esi
pop	esi
retn	4
sub_41B26C endp




; int __thiscall sub_41B288(void *Memory, char)
sub_41B288 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
push	dword ptr [esi+8] ; Memory
mov	dword ptr [esi], offset	off_44C3A4
call	sub_4284D8
test	[esp+8+arg_0], 1
pop	ecx
jz	short loc_41B2A8
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_41B2A8:
mov	eax, esi
pop	esi
retn	4
sub_41B288 endp




sub_41B2AE proc	near

arg_0= dword ptr  4

mov	edx, [ecx+4]
cmp	edx, 40h
jbe	short loc_41B2BD
mov	eax, edx
shr	eax, 2
jmp	short loc_41B2CA

loc_41B2BD:
push	8
pop	eax
cmp	eax, edx
sbb	eax, eax
and	eax, 0Ch
add	eax, 4

loc_41B2CA:
push	esi
push	edi
mov	edi, [esp+8+arg_0]
cmp	eax, edi
ja	short loc_41B2D6
mov	eax, edi

loc_41B2D6:
lea	esi, [edx+eax]
cmp	esi, eax
jnb	short loc_41B2E0
lea	esi, [edx+edi]

loc_41B2E0:		; Size
push	esi
call	sub_41B339
pop	edi
pop	esi
retn	4
sub_41B2AE endp




sub_41B2EB proc	near
mov	eax, ecx
and	dword ptr [eax+4], 0
and	dword ptr [eax+8], 0
mov	dword ptr [eax], offset	off_44C3AC
retn
sub_41B2EB endp




sub_41B2FC proc	near

arg_0= dword ptr  4

mov	edx, [ecx+4]
cmp	edx, 40h
jbe	short loc_41B30B
mov	eax, edx
shr	eax, 2
jmp	short loc_41B318

loc_41B30B:
push	8
pop	eax
cmp	eax, edx
sbb	eax, eax
and	eax, 0Ch
add	eax, 4

loc_41B318:
push	esi
push	edi
mov	edi, [esp+8+arg_0]
cmp	eax, edi
ja	short loc_41B324
mov	eax, edi

loc_41B324:
lea	esi, [edx+eax]
cmp	esi, eax
jnb	short loc_41B32E
lea	esi, [edx+edi]

loc_41B32E:
push	esi
call	sub_41B388
pop	edi
pop	esi
retn	4
sub_41B2FC endp




; int __stdcall	sub_41B339(size_t Size)
sub_41B339 proc	near

Size= dword ptr	 4

push	esi
push	edi
mov	edi, [esp+8+Size]
mov	esi, ecx
cmp	edi, [esi+4]
jz	short loc_41B383
test	edi, edi
push	ebx
jbe	short loc_41B371
push	edi		; Size
call	sub_4284B1
mov	ebx, eax
mov	eax, [esi+4]
test	eax, eax
pop	ecx
jbe	short loc_41B373
cmp	eax, edi
jb	short loc_41B361
mov	eax, edi

loc_41B361:		; Size
push	eax
push	dword ptr [esi+8] ; Src
push	ebx		; Dst
call	ds:memmove
add	esp, 0Ch
jmp	short loc_41B373

loc_41B371:
xor	ebx, ebx

loc_41B373:		; Memory
push	dword ptr [esi+8]
call	sub_4284D8
pop	ecx
mov	[esi+8], ebx
mov	[esi+4], edi
pop	ebx

loc_41B383:
pop	edi
pop	esi
retn	4
sub_41B339 endp




sub_41B388 proc	near

arg_0= dword ptr  4

push	esi
push	edi
mov	edi, [esp+8+arg_0]
mov	esi, ecx
cmp	edi, [esi+4]
jz	short loc_41B3D7
test	edi, edi
push	ebx
jbe	short loc_41B3C5
lea	eax, [edi+edi]
push	eax		; Size
call	sub_4284B1
mov	ebx, eax
mov	eax, [esi+4]
test	eax, eax
pop	ecx
jbe	short loc_41B3C7
cmp	eax, edi
jb	short loc_41B3B3
mov	eax, edi

loc_41B3B3:
add	eax, eax
push	eax		; Size
push	dword ptr [esi+8] ; Src
push	ebx		; Dst
call	ds:memmove
add	esp, 0Ch
jmp	short loc_41B3C7

loc_41B3C5:
xor	ebx, ebx

loc_41B3C7:		; Memory
push	dword ptr [esi+8]
call	sub_4284D8
pop	ecx
mov	[esi+8], ebx
mov	[esi+4], edi
pop	ebx

loc_41B3D7:
pop	edi
pop	esi
retn	4
sub_41B388 endp



; Attributes: bp-based frame

sub_41B3DC proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_8= dword ptr -8
lParam=	dword ptr -4

push	ebp
mov	ebp, esp
sub	esp, 10h
push	ebx
push	edi
mov	edi, ecx
cmp	byte ptr [edi+8Fh], 0
jz	loc_41B4A7
lea	ebx, [edi+74h]
mov	ecx, ebx
call	sub_402DF8
xor	edx, edx
mov	[ebp+var_10], eax
cmp	eax, edx
jl	loc_41B4A7
cmp	[edi+17Ch], dl
jz	loc_41B4A7
mov	ecx, [edi+180h]
mov	[ebp+var_8], eax
cmp	eax, ecx
jl	short loc_41B426
mov	[ebp+var_8], ecx

loc_41B426:
cmp	eax, ecx
mov	[ebp+var_C], eax
jg	short loc_41B430
mov	[ebp+var_C], ecx

loc_41B430:
push	esi
mov	esi, ds:SendMessageA
push	edx		; lParam
push	edx		; wParam
push	1004h		; Msg
mov	[ebp+lParam], edx
push	dword ptr [ebx]	; hWnd
call	esi ; SendMessageA
test	eax, eax
jle	short loc_41B49D

loc_41B449:
push	[ebp+lParam]
mov	ecx, edi
call	sub_402875
mov	edx, [ebp+lParam]
cmp	eax, 0FFFFFFFFh
jz	short loc_41B487
cmp	edx, [ebp+var_8]
jl	short loc_41B487
cmp	edx, [ebp+var_C]
jg	short loc_41B487
mov	ecx, [edi+9Ch]
add	eax, ecx
mov	cl, [edi+17Dh]
cmp	[eax], cl
jz	short loc_41B487
push	edx		; lParam
push	edx		; wParam
push	1015h		; Msg
mov	[eax], cl
push	dword ptr [ebx]	; hWnd
call	esi ; SendMessageA
mov	edx, [ebp+lParam]

loc_41B487:		; lParam
push	0
push	0		; wParam
push	1004h		; Msg
inc	edx
push	dword ptr [ebx]	; hWnd
mov	[ebp+lParam], edx
call	esi ; SendMessageA
cmp	[ebp+lParam], eax
jl	short loc_41B449

loc_41B49D:
mov	eax, [ebp+var_10]
pop	esi
mov	[edi+180h], eax

loc_41B4A7:
pop	edi
pop	ebx
leave
retn
sub_41B3DC endp




sub_41B4AB proc	near
push	ebx
push	esi
mov	esi, ecx
push	edi
cmp	byte ptr [esi+8Fh], 0
jz	loc_41B552
lea	ebx, [esi+74h]
mov	ecx, ebx
call	sub_402DF8
mov	edi, eax
test	edi, edi
jl	loc_41B552
push	edi
mov	ecx, esi
call	sub_402875
cmp	byte ptr [esi+17Ch], 0
jz	short loc_41B4F8
cmp	eax, 0FFFFFFFFh
jz	short loc_41B52B
mov	ecx, [esi+9Ch]
mov	dl, [esi+17Dh]
mov	[ecx+eax], dl
jmp	short loc_41B52B

loc_41B4F8:
cmp	eax, 0FFFFFFFFh
mov	byte ptr [esi+17Ch], 1
jnz	short loc_41B50D
mov	byte ptr [esi+17Dh], 1
jmp	short loc_41B52B

loc_41B50D:
mov	edx, [esi+9Ch]
lea	ecx, [esi+9Ch]
cmp	byte ptr [eax+edx], 0
setz	dl
mov	[esi+17Dh], dl
mov	ecx, [ecx]
mov	[eax+ecx], dl

loc_41B52B:		; lParam
push	0
push	0		; wParam
push	401h		; Msg
mov	[esi+180h], edi
push	dword ptr [esi+4] ; hWnd
call	ds:PostMessageA
push	edi		; lParam
push	edi		; wParam
push	1015h		; Msg
push	dword ptr [ebx]	; hWnd
call	ds:SendMessageA

loc_41B552:
pop	edi
pop	esi
pop	ebx
retn
sub_41B4AB endp



; Attributes: bp-based frame

sub_41B556 proc	near

lParam=	dword ptr -2Ch
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
wParam=	dword ptr -4

push	ebp
mov	ebp, esp
sub	esp, 2Ch
push	ebx
push	esi
mov	esi, ecx
push	edi
lea	edi, [esi+74h]
mov	ecx, edi
call	sub_402DF8
test	eax, eax
mov	[ebp+wParam], eax
jl	loc_41B60F
push	eax
mov	ecx, esi
call	sub_402875
mov	ecx, [esi+9Ch]
cmp	byte ptr [ecx+eax], 0
lea	edx, [ecx+eax]
setz	cl
cmp	eax, 0FFFFFFFFh
jz	short loc_41B595
mov	[edx], cl

loc_41B595:
cmp	byte ptr [esi+8Fh], 0
mov	esi, ds:SendMessageA
mov	ebx, 102Bh
jnz	short loc_41B5C4
push	2
neg	cl
pop	eax
sbb	ecx, ecx
mov	[ebp+var_1C], eax
and	ecx, eax
lea	eax, [ebp+lParam]
push	eax		; lParam
mov	[ebp+var_20], ecx
push	[ebp+wParam]	; wParam
push	ebx		; Msg
push	dword ptr [edi]	; hWnd
call	esi ; SendMessageA

loc_41B5C4:		; lParam
push	[ebp+wParam]
push	[ebp+wParam]	; wParam
push	1015h		; Msg
push	dword ptr [edi]	; hWnd
call	esi ; SendMessageA
mov	eax, [ebp+wParam]
push	0		; lParam
push	0		; wParam
push	1004h		; Msg
push	dword ptr [edi]	; hWnd
inc	eax
mov	[ebp+wParam], eax
call	esi ; SendMessageA
cmp	[ebp+wParam], eax
jge	short loc_41B60F
push	3
pop	eax
mov	[ebp+var_1C], eax
mov	[ebp+var_20], eax
lea	eax, [ebp+lParam]
push	eax		; lParam
push	[ebp+wParam]	; wParam
push	ebx		; Msg
push	dword ptr [edi]	; hWnd
call	esi ; SendMessageA
push	0		; lParam
push	[ebp+wParam]	; wParam
push	1013h		; Msg
push	dword ptr [edi]	; hWnd
call	esi ; SendMessageA

loc_41B60F:
pop	edi
pop	esi
pop	ebx
leave
retn
sub_41B556 endp



; Attributes: bp-based frame

sub_41B614 proc	near

lParam=	dword ptr -30h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
var_8= dword ptr -8
var_1= byte ptr	-1

push	ebp
mov	ebp, esp
sub	esp, 30h
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
cmp	[esi+8Fh], bl
jnz	short loc_41B695
mov	al, [esi+8Eh]
push	edi
mov	edi, ds:SendMessageA
push	ebx		; lParam
push	ebx		; wParam
push	1004h		; Msg
push	dword ptr [esi+74h] ; hWnd
mov	[ebp+var_1], al
mov	[esi+8Eh], bl
call	edi ; SendMessageA
cmp	eax, ebx
mov	[ebp+var_8], eax
jle	short loc_41B68B

loc_41B651:
push	ebx
mov	ecx, esi
call	sub_402875
cmp	eax, 0FFFFFFFFh
jz	short loc_41B685
mov	edx, [esi+9Ch]
push	2
pop	ecx
mov	al, [edx+eax]
mov	[ebp+var_20], ecx
neg	al
sbb	eax, eax
and	eax, ecx
mov	[ebp+var_24], eax
lea	eax, [ebp+lParam]
push	eax		; lParam
push	ebx		; wParam
push	102Bh		; Msg
push	dword ptr [esi+74h] ; hWnd
call	edi ; SendMessageA

loc_41B685:
inc	ebx
cmp	ebx, [ebp+var_8]
jl	short loc_41B651

loc_41B68B:
mov	al, [ebp+var_1]
pop	edi
mov	[esi+8Eh], al

loc_41B695:
lea	ecx, [esi+74h]
call	sub_41B6A1
pop	esi
pop	ebx
leave
retn
sub_41B614 endp




sub_41B6A1 proc	near
push	ebx
push	ebp
push	esi
xor	ebp, ebp
push	edi
mov	edi, ds:SendMessageA
push	ebp		; lParam
mov	ebx, 1004h
mov	esi, ecx
push	ebp		; wParam
push	ebx		; Msg
push	dword ptr [esi]	; hWnd
call	edi ; SendMessageA
test	eax, eax
jle	short loc_41B6DA
push	ebp		; lParam
push	ebp		; wParam
push	ebx		; Msg
push	dword ptr [esi]	; hWnd
call	edi ; SendMessageA
dec	eax
push	eax		; lParam
push	ebp		; wParam
push	1015h		; Msg
push	dword ptr [esi]	; hWnd
call	edi ; SendMessageA
neg	eax
sbb	eax, eax
neg	eax
jmp	short loc_41B6DC

loc_41B6DA:
mov	al, 1

loc_41B6DC:
pop	edi
pop	esi
pop	ebp
pop	ebx
retn
sub_41B6A1 endp



; Attributes: bp-based frame

sub_41B6E1 proc	near

var_7C=	dword ptr -7Ch
var_6C=	byte ptr -6Ch
var_60=	byte ptr -60h
var_54=	byte ptr -54h
var_48=	byte ptr -48h
var_28=	dword ptr -28h
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= byte ptr	 8

mov	eax, offset loc_4458F6
call	__EH_prolog
sub	esp, 60h
push	ebx
push	esi
push	edi
mov	esi, ecx
xor	edi, edi
lea	ecx, [ebp+var_6C]
mov	[ebp+var_10], edi
call	sub_41AB15
cmp	[ebp+arg_0], 0
push	2
mov	[ebp+var_4], edi
pop	ebx
jz	short loc_41B72B
push	3020250h
mov	edx, 8CAh
lea	ecx, [ebp+var_28]
call	sub_40B168
mov	[ebp+var_10], 1
mov	byte ptr [ebp+var_4], 1
jmp	short loc_41B743

loc_41B72B:
push	3020251h
mov	edx, 8CBh
lea	ecx, [ebp+Memory]
call	sub_40B168
mov	[ebp+var_10], ebx
mov	[ebp+var_4], ebx

loc_41B743:
push	eax
lea	ecx, [ebp+var_60]
call	sub_40312C
test	byte ptr [ebp+var_10], bl
jz	short loc_41B75E
push	[ebp+Memory]	; Memory
and	[ebp+var_10], 0FFFFFFFDh
call	sub_4284D8
pop	ecx

loc_41B75E:
test	byte ptr [ebp+var_10], 1
mov	[ebp+var_4], edi
jz	short loc_41B770
push	[ebp+var_28]	; Memory
call	sub_4284D8
pop	ecx

loc_41B770:
push	3020252h
mov	edx, 8CCh
lea	ecx, [ebp+var_28]
call	sub_40B168
push	eax
lea	ecx, [ebp+var_54]
mov	byte ptr [ebp+var_4], 3
call	sub_40312C
push	[ebp+var_28]	; Memory
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
lea	ecx, [ebp+var_48]
mov	[esp+7Ch+var_7C], offset asc_45B41C ; "*"
call	sub_404722
mov	ecx, esi
call	sub_40DA67
push	eax		; hWndParent
push	1F9h		; lpTemplateName
lea	ecx, [ebp+var_6C]
call	sub_42FCF7
cmp	eax, ebx
jz	short loc_41B815
cmp	dword ptr [esi+98h], 0
jle	short loc_41B80E

loc_41B7CC:
lea	eax, [ebp+var_28]
push	edi
push	eax
mov	ecx, esi
call	sub_41733B
mov	edx, eax
lea	ecx, [ebp+var_48]
mov	byte ptr [ebp+var_4], 4
call	sub_428ED2
push	[ebp+var_28]	; Memory
and	byte ptr [ebp+var_4], 0
mov	bl, al
call	sub_4284D8
test	bl, bl
pop	ecx
jz	short loc_41B805
mov	eax, [esi+9Ch]
mov	cl, [ebp+arg_0]
mov	[eax+edi], cl

loc_41B805:
inc	edi
cmp	edi, [esi+98h]
jl	short loc_41B7CC

loc_41B80E:
mov	ecx, esi
call	sub_41B614

loc_41B815:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_6C]
call	sub_41ABA3
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_41B6E1 endp



; Attributes: bp-based frame

sub_41B832 proc	near

var_48=	dword ptr -48h
var_3C=	dword ptr -3Ch
var_30=	dword ptr -30h
Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= byte ptr	 8

mov	eax, offset loc_445928
call	__EH_prolog
sub	esp, 3Ch
push	esi
mov	esi, ecx
lea	ecx, [esi+74h]
call	sub_402DF8
test	eax, eax
jl	loc_41BA05
push	ebx
push	edi
push	eax
mov	ecx, esi
call	sub_402875
mov	edi, eax
lea	eax, [ebp+var_18]
push	edi
push	eax
mov	ecx, esi
call	sub_41733B
and	[ebp+var_4], 0
push	edi
mov	ecx, esi
call	sub_41756F
mov	bl, al
test	bl, bl
jz	short loc_41B8B0
xor	edi, edi
cmp	[esi+98h], edi
jle	loc_41B9F3

loc_41B88A:
push	edi
mov	ecx, esi
call	sub_41756F
cmp	al, bl
jnz	short loc_41B8A2
mov	eax, [esi+9Ch]
mov	cl, [ebp+arg_0]
mov	[eax+edi], cl

loc_41B8A2:
inc	edi
cmp	edi, [esi+98h]
jl	short loc_41B88A
jmp	loc_41B9F3

loc_41B8B0:
mov	eax, [ebp+var_14]
test	eax, eax
jz	short loc_41B8D9
mov	ecx, [ebp+var_18]
lea	eax, [ecx+eax*2-2]

loc_41B8BE:
cmp	word ptr [eax],	2Eh
jz	short loc_41B8CC
cmp	eax, ecx
jz	short loc_41B8D2
dec	eax
dec	eax
jmp	short loc_41B8BE

loc_41B8CC:
sub	eax, ecx
sar	eax, 1
jmp	short loc_41B8D5

loc_41B8D2:
or	eax, 0FFFFFFFFh

loc_41B8D5:
test	eax, eax
jge	short loc_41B94C

loc_41B8D9:
xor	ebx, ebx
cmp	[esi+98h], ebx
jle	loc_41B9F3

loc_41B8E7:
push	ebx
mov	ecx, esi
call	sub_41756F
test	al, al
jnz	short loc_41B93E
lea	eax, [ebp+Memory]
push	ebx
push	eax
mov	ecx, esi
call	sub_41733B
mov	ecx, [eax+4]
test	ecx, ecx
jz	short loc_41B922
mov	edx, [eax]
lea	eax, [edx+ecx*2-2]

loc_41B90C:
cmp	word ptr [eax],	2Eh
jz	short loc_41B91A
cmp	eax, edx
jz	short loc_41B922
dec	eax
dec	eax
jmp	short loc_41B90C

loc_41B91A:
sub	eax, edx
sar	eax, 1
mov	edi, eax
jmp	short loc_41B925

loc_41B922:
or	edi, 0FFFFFFFFh

loc_41B925:		; Memory
push	[ebp+Memory]
call	sub_4284D8
test	edi, edi
pop	ecx
jge	short loc_41B93E
mov	eax, [esi+9Ch]
mov	cl, [ebp+arg_0]
mov	[eax+ebx], cl

loc_41B93E:
inc	ebx
cmp	ebx, [esi+98h]
jl	short loc_41B8E7
jmp	loc_41B9F3

loc_41B94C:
push	eax
lea	eax, [ebp+var_3C]
push	eax
lea	ecx, [ebp+var_18]
call	sub_405246
mov	edi, eax
push	2Ah
lea	ecx, [ebp+var_30]
mov	byte ptr [ebp+var_4], 1
call	sub_409516
push	edi
mov	edx, eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 2
call	sub_40356A
push	[ebp+var_30]	; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
mov	byte ptr [ebp+var_4], 4
call	sub_4284D8
xor	edi, edi
pop	ecx
cmp	[esi+98h], edi
pop	ecx
jle	short loc_41B9E6

loc_41B998:
push	edi
mov	ecx, esi
call	sub_41756F
test	al, al
jnz	short loc_41B9DD
lea	eax, [ebp+var_48]
push	edi
push	eax
mov	ecx, esi
call	sub_41733B
mov	edx, eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 6
call	sub_428ED2
push	[ebp+var_48]	; Memory
mov	bl, al
mov	byte ptr [ebp+var_4], 4
call	sub_4284D8
test	bl, bl
pop	ecx
jz	short loc_41B9DD
mov	eax, [esi+9Ch]
mov	cl, [ebp+arg_0]
mov	[eax+edi], cl

loc_41B9DD:
inc	edi
cmp	edi, [esi+98h]
jl	short loc_41B998

loc_41B9E6:		; Memory
push	[ebp+Memory]
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
pop	ecx

loc_41B9F3:
mov	ecx, esi
call	sub_41B614
push	[ebp+var_18]	; Memory
call	sub_4284D8
pop	ecx
pop	edi
pop	ebx

loc_41BA05:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_41B832 endp




sub_41BA14 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
xor	eax, eax
cmp	[esi+98h], eax
lea	edx, [esi+98h]
jle	short loc_41BA3B
push	ebx

loc_41BA28:
mov	ecx, [esi+9Ch]
mov	bl, [esp+8+arg_0]
mov	[eax+ecx], bl
inc	eax
cmp	eax, [edx]
jl	short loc_41BA28
pop	ebx

loc_41BA3B:
mov	ecx, esi
call	sub_41B614
pop	esi
retn	4
sub_41BA14 endp




sub_41BA46 proc	near
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
push	edi
cmp	[esi+8Fh], bl
jnz	short loc_41BA9F
mov	eax, [esi+98h]
xor	edi, edi
xor	ecx, ecx
cmp	eax, ebx
jle	short loc_41BA9F
mov	edx, [esi+9Ch]

loc_41BA69:
cmp	[edx+ecx], bl
jz	short loc_41BA6F
inc	edi

loc_41BA6F:
inc	ecx
cmp	ecx, eax
jl	short loc_41BA69
cmp	edi, 1
jnz	short loc_41BA9F
lea	ecx, [esi+74h]
call	sub_402DF8
cmp	eax, ebx
jl	short loc_41BA9F
push	eax
mov	ecx, esi
call	sub_402875
cmp	eax, ebx
jl	short loc_41BA9F
mov	ecx, [esi+9Ch]
add	eax, ecx
cmp	[eax], bl
jz	short loc_41BA9F
mov	[eax], bl

loc_41BA9F:
xor	ecx, ecx
cmp	[esi+98h], ebx
jle	short loc_41BAC1

loc_41BAA9:
mov	eax, [esi+9Ch]
add	eax, ecx
cmp	[eax], bl
setz	dl
inc	ecx
mov	[eax], dl
cmp	ecx, [esi+98h]
jl	short loc_41BAA9

loc_41BAC1:
mov	ecx, esi
call	sub_41B614
pop	edi
pop	esi
pop	ebx
retn
sub_41BA46 endp



; Attributes: bp-based frame

sub_41BACC proc	near

lParam=	dword ptr -28h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h

push	ebp
mov	ebp, esp
sub	esp, 28h
push	ebx
push	esi
push	edi
mov	esi, ecx
push	0
call	sub_41BA14
cmp	byte ptr [esi+8Fh], 0
jnz	short loc_41BB29
lea	edi, [esi+74h]
mov	ecx, edi
call	sub_402DF8
mov	ebx, eax
test	ebx, ebx
jl	short loc_41BB29
push	ebx
mov	ecx, esi
call	sub_402875
cmp	eax, 0FFFFFFFFh
jz	short loc_41BB0E
mov	ecx, [esi+9Ch]
mov	byte ptr [ecx+eax], 1

loc_41BB0E:
push	2
pop	eax
mov	[ebp+var_18], eax
mov	[ebp+var_1C], eax
lea	eax, [ebp+lParam]
push	eax		; lParam
push	ebx		; wParam
push	102Bh		; Msg
push	dword ptr [edi]	; hWnd
call	ds:SendMessageA

loc_41BB29:
pop	edi
pop	esi
pop	ebx
leave
retn
sub_41BACC endp



; Attributes: bp-based frame

sub_41BB2E proc	near

arg_0= dword ptr  8

push	ebp
mov	ebp, esp
mov	eax, [ebp+arg_0]
push	ebx
push	esi
mov	esi, ecx
mov	ecx, [eax]
push	edi
cmp	ecx, [esi+74h]
jnz	loc_41BBFD
mov	edi, [eax+0Ch]
test	edi, edi
jl	loc_41BBFD
test	byte ptr [eax+2Ch], 4
jz	short loc_41BBC4
mov	eax, [esi+178h]
test	eax, eax
jl	loc_41BBFD
cmp	eax, edi
mov	[ebp+arg_0], eax
jl	short loc_41BB6D
mov	[ebp+arg_0], edi

loc_41BB6D:
cmp	eax, edi
mov	ebx, eax
jg	short loc_41BB75
mov	ebx, edi

loc_41BB75:
xor	edi, edi
cmp	[esi+98h], edi
jle	short loc_41BBFD

loc_41BB7F:
push	edi
mov	ecx, esi
call	sub_402875
cmp	eax, 0FFFFFFFFh
jz	short loc_41BBB9
cmp	edi, [ebp+arg_0]
jl	short loc_41BB99
cmp	edi, ebx
jg	short loc_41BB99
mov	cl, 1
jmp	short loc_41BB9B

loc_41BB99:
xor	cl, cl

loc_41BB9B:
mov	edx, [esi+9Ch]
add	eax, edx
cmp	[eax], cl
jz	short loc_41BBB9
push	edi		; lParam
push	edi		; wParam
push	1015h		; Msg
mov	[eax], cl
push	dword ptr [esi+74h] ; hWnd
call	ds:SendMessageA

loc_41BBB9:
inc	edi
cmp	edi, [esi+98h]
jl	short loc_41BB7F
jmp	short loc_41BBFD

loc_41BBC4:
mov	[esi+178h], edi
test	byte ptr [eax+2Ch], 2
jz	short loc_41BBFD
push	edi
mov	ecx, esi
call	sub_402875
cmp	eax, 0FFFFFFFFh
jz	short loc_41BBFD
mov	ecx, [esi+9Ch]
push	edi		; lParam
add	eax, ecx
push	edi		; wParam
push	1015h		; Msg
cmp	byte ptr [eax],	0
setz	cl
mov	[eax], cl
push	dword ptr [esi+74h] ; hWnd
call	ds:SendMessageA

loc_41BBFD:
pop	edi
pop	esi
pop	ebx
pop	ebp
retn	4
sub_41BB2E endp



; Attributes: bp-based frame

sub_41BC04 proc	near

var_74=	word ptr -74h
var_72=	word ptr -72h
Str1= dword ptr	-6Ch
pvarg= VARIANTARG ptr -64h
var_54=	dword ptr -54h
Memory=	dword ptr -48h
var_3C=	dword ptr -3Ch
var_30=	dword ptr -30h
var_24=	dword ptr -24h
var_18=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_445974
call	__EH_prolog
sub	esp, 68h
push	ebx
push	esi
mov	esi, [ebp+arg_8]
push	edi
xor	edi, edi
cmp	esi, edi
jnz	short loc_41BC24
xor	eax, eax
jmp	loc_41BDAB

loc_41BC24:
mov	ebx, [esi+168h]
mov	eax, ebx
sub	eax, edi
jz	loc_41BD94
sub	eax, 4
jz	loc_41BD4D
dec	eax
jz	loc_41BCDE
mov	[ebp+var_74], di
mov	[ebp+var_72], di
mov	[ebp+var_4], 8
mov	word ptr [ebp+pvarg.anonymous_0], di
mov	word ptr [ebp+pvarg.anonymous_0+2], di
mov	eax, [esi+0FCh]
lea	edx, [ebp+var_74]
add	esi, 0FCh
push	edx
mov	ecx, [eax]
push	ebx
push	[ebp+arg_0]
mov	byte ptr [ebp+var_4], 9
push	eax
call	dword ptr [ecx+14h]
mov	esi, [esi]
lea	ecx, [ebp+pvarg]
push	ecx
push	ebx
push	[ebp+arg_4]
mov	eax, [esi]
push	esi
call	dword ptr [eax+14h]
mov	ax, [ebp+var_74]
cmp	ax, word ptr [ebp+pvarg.anonymous_0]
jz	short loc_41BC9B
sbb	esi, esi
and	esi, 0FFFFFFFEh
inc	esi
jmp	short loc_41BCBF

loc_41BC9B:
cmp	ax, 8
jnz	short loc_41BCB1
push	dword ptr [ebp+pvarg.anonymous_0+8] ; Str2
push	[ebp+Str1]	; Str1
call	ds:_wcsicmp
pop	ecx
pop	ecx
jmp	short loc_41BCBD

loc_41BCB1:
lea	eax, [ebp+pvarg]
lea	ecx, [ebp+var_74]
push	eax
call	sub_42CF00

loc_41BCBD:
mov	esi, eax

loc_41BCBF:		; pvarg
lea	ecx, [ebp+pvarg]
mov	byte ptr [ebp+var_4], 8
call	sub_42CDE1
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_74] ; pvarg
call	sub_42CDE1

loc_41BCD7:
mov	eax, esi
jmp	loc_41BDAB

loc_41BCDE:
push	[ebp+arg_0]
lea	eax, [ebp+Memory]
mov	ecx, esi
push	eax
call	sub_41733B
mov	edx, eax
lea	ecx, [ebp+var_24]
mov	[ebp+var_4], 2
call	sub_41BDBC
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 4
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_54]
push	[ebp+arg_4]
mov	ecx, esi
push	eax
call	sub_41733B
mov	edx, eax
lea	ecx, [ebp+var_18]
mov	byte ptr [ebp+var_4], 5
call	sub_41BDBC
push	[ebp+var_54]	; Memory
mov	byte ptr [ebp+var_4], 7
call	sub_4284D8
mov	edx, [ebp+var_18]
pop	ecx
mov	ecx, [ebp+var_24]
call	sub_4282B1
push	[ebp+var_18]	; Memory
mov	esi, eax
call	sub_4284D8
push	[ebp+var_24]
jmp	short loc_41BD88

loc_41BD4D:
push	[ebp+arg_0]
lea	eax, [ebp+var_3C]
mov	ecx, esi
push	eax
call	sub_41733B
push	[ebp+arg_4]
lea	eax, [ebp+var_30]
mov	ecx, esi
mov	[ebp+var_4], edi
push	eax
call	sub_41733B
mov	edx, [ebp+var_30]
mov	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 1
call	sub_4282B1
push	[ebp+var_30]	; Memory
mov	esi, eax
call	sub_4284D8
push	[ebp+var_3C]	; Memory

loc_41BD88:
call	sub_4284D8
pop	ecx
pop	ecx
jmp	loc_41BCD7

loc_41BD94:
mov	eax, [ebp+arg_0]
cmp	eax, [ebp+arg_4]
jge	short loc_41BDA1
or	eax, 0FFFFFFFFh
jmp	short loc_41BDAB

loc_41BDA1:
xor	ecx, ecx
cmp	eax, [ebp+arg_4]
setnz	cl
mov	eax, ecx

loc_41BDAB:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_41BC04 endp




sub_41BDBC proc	near

var_4= dword ptr -4

push	ecx
mov	eax, [edx+4]
and	[esp+4+var_4], 0
push	esi
mov	esi, ecx
test	eax, eax
jz	short loc_41BDED
mov	ecx, [edx]
lea	eax, [ecx+eax*2-2]

loc_41BDD2:
cmp	word ptr [eax],	2Eh
jz	short loc_41BDE0
cmp	eax, ecx
jz	short loc_41BDE6
dec	eax
dec	eax
jmp	short loc_41BDD2

loc_41BDE0:
sub	eax, ecx
sar	eax, 1
jmp	short loc_41BDE9

loc_41BDE6:
or	eax, 0FFFFFFFFh

loc_41BDE9:
test	eax, eax
jge	short loc_41BE03

loc_41BDED:
and	dword ptr [esi], 0
and	dword ptr [esi+4], 0
and	dword ptr [esi+8], 0
push	3
mov	ecx, esi
call	sub_403396
jmp	short loc_41BE0C

loc_41BE03:
push	eax
push	esi
mov	ecx, edx
call	sub_405246

loc_41BE0C:
mov	eax, esi
pop	esi
pop	ecx
retn
sub_41BDBC endp



; Attributes: bp-based frame

sub_41BE11 proc	near

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

push	ebp
mov	ebp, esp
push	ebx
push	esi
mov	esi, [ebp+arg_8]
test	esi, esi
jnz	short loc_41BE21
xor	eax, eax
jmp	short loc_41BE74

loc_41BE21:
cmp	[ebp+arg_0], 0FFFFFFFFh
jz	short loc_41BE4B
cmp	[ebp+arg_4], 0FFFFFFFFh
jz	short loc_41BE58
push	[ebp+arg_0]
mov	ecx, esi
call	sub_41756F
push	[ebp+arg_4]
mov	ecx, esi
mov	bl, al
call	sub_41756F
test	bl, bl
jz	short loc_41BE50
test	al, al
jnz	short loc_41BE54

loc_41BE4B:
or	eax, 0FFFFFFFFh
jmp	short loc_41BE74

loc_41BE50:
test	al, al
jz	short loc_41BE5D

loc_41BE54:
test	bl, bl
jnz	short loc_41BE5D

loc_41BE58:
push	1
pop	eax
jmp	short loc_41BE74

loc_41BE5D:
push	esi
push	[ebp+arg_4]
push	[ebp+arg_0]
call	sub_41BC04
cmp	byte ptr [esi+16Ch], 0
jnz	short loc_41BE74
neg	eax

loc_41BE74:
pop	esi
pop	ebx
pop	ebp
retn	0Ch
sub_41BE11 endp




; int __thiscall sub_41BE7A(WPARAM wParam, int)
sub_41BE7A proc	near

arg_0= dword ptr  4

mov	edx, [esp+arg_0]
lea	eax, [ecx+168h]
cmp	edx, [eax]
jnz	short loc_41BE9C
cmp	byte ptr [ecx+16Ch], 0
lea	eax, [ecx+16Ch]
setz	dl
mov	[eax], dl
jmp	short loc_41BEBE

loc_41BE9C:
mov	[eax], edx
lea	eax, [ecx+16Ch]
cmp	edx, 7
mov	byte ptr [eax],	1
jb	short loc_41BEBE
cmp	edx, 8
jbe	short loc_41BEBB
cmp	edx, 9
jbe	short loc_41BEBE
cmp	edx, 0Ch
ja	short loc_41BEBE

loc_41BEBB:
and	byte ptr [eax],	0

loc_41BEBE:
push	esi
push	edi
mov	edi, ds:SendMessageA
push	offset sub_41BE11 ; lParam
lea	esi, [ecx+74h]
push	ecx		; wParam
push	1030h		; Msg
push	dword ptr [esi]	; hWnd
call	edi ; SendMessageA
mov	ecx, esi
call	sub_402DF8
push	0		; lParam
push	eax		; wParam
push	1013h		; Msg
push	dword ptr [esi]	; hWnd
call	edi ; SendMessageA
pop	edi
pop	esi
retn	4
sub_41BE7A endp




sub_41BEF0 proc	near

arg_0= dword ptr  4

mov	eax, [esp+arg_0]
mov	edx, [ecx+160h]
mov	eax, [eax+10h]
mov	eax, [edx+eax*4]
push	dword ptr [eax+0Ch] ; int
call	sub_41BE7A
retn	4
sub_41BEF0 endp



; Attributes: bp-based frame

sub_41BF0B proc	near

Memory=	dword ptr -9Ch
var_90=	dword ptr -90h
var_8C=	dword ptr -8Ch
var_88=	dword ptr -88h
var_78=	dword ptr -78h
var_68=	dword ptr -68h
var_5C=	dword ptr -5Ch
nNumberOfBytesToWrite= dword ptr -4Ch
lpFileName= dword ptr -48h
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
lpBuffer= dword	ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4459BE
call	__EH_prolog
sub	esp, 90h
or	[ebp+var_78], 0FFFFFFFFh
push	ebx
push	esi
push	edi
mov	esi, ecx
push	dword ptr [esi+218h] ; lpFileName
xor	ebx, ebx
lea	ecx, [ebp+var_78]
mov	[ebp+var_4], ebx
call	sub_42C145
test	al, al
jnz	short loc_41BF48
call	ds:GetLastError
mov	esi, eax
jmp	loc_41C1C1

loc_41BF48:
or	[ebp+var_88], 0FFFFFFFFh
mov	ecx, 100000h	; dwSize
mov	byte ptr [ebp+var_4], 2
call	sub_4411B0
cmp	eax, ebx
mov	[ebp+lpBuffer],	eax
setnz	al
cmp	al, bl
jnz	short loc_41BF73
mov	esi, 8007000Eh
jmp	loc_41C1AB

loc_41BF73:
lea	ecx, [ebp+var_68]
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_403079
push	offset a000	; "000"
lea	ecx, [ebp+var_5C]
mov	byte ptr [ebp+var_4], 3
call	sub_403091
push	dword ptr [esi+234h]
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 4
push	dword ptr [esi+230h]
call	sub_41C26A
lea	eax, [ebp+var_90]
lea	ecx, [ebp+var_78]
push	eax
call	sub_42BEDB
test	al, al
jz	loc_41C205
push	ebx
push	ebx
push	[ebp+var_8C]
lea	edi, [esi+140h]
mov	ecx, edi
mov	[ebp+var_34], edi
push	[ebp+var_90]
call	sub_403A30
xor	eax, eax
mov	[ebp+var_3C], ebx
mov	[ebp+var_38], ebx
mov	[ebp+var_28], ebx
mov	[ebp+var_24], ebx
mov	[ebp+var_1C], eax

loc_41BFF0:
cmp	eax, [esi+240h]
jge	short loc_41C00A
mov	ecx, [esi+244h]
mov	edx, [ecx+eax*8]
mov	[ebp+var_30], edx
mov	eax, [ecx+eax*8+4]
jmp	short loc_41C021

loc_41C00A:
mov	eax, [esi+240h]
mov	ecx, [esi+244h]
mov	edx, [ecx+eax*8-8]
mov	[ebp+var_30], edx
mov	eax, [ecx+eax*8-4]

loc_41C021:
mov	[ebp+var_2C], eax
mov	eax, [ebp+var_30]
sub	eax, [ebp+var_14]
mov	ecx, [ebp+var_2C]
sbb	ecx, [ebp+var_10]
mov	[ebp+nNumberOfBytesToWrite], ecx
ja	short loc_41C03C
cmp	eax, 100000h
jbe	short loc_41C041

loc_41C03C:
mov	eax, 100000h

loc_41C041:
lea	ecx, [ebp+var_20]
push	ecx		; int
push	eax		; nNumberOfBytesToRead
push	[ebp+lpBuffer]	; lpBuffer
lea	ecx, [ebp+var_78]
call	sub_42C1A2
test	al, al
jz	loc_41C205
mov	eax, [ebp+var_20]
cmp	eax, ebx
jz	loc_41C18A
mov	[ebp+nNumberOfBytesToWrite], eax
mov	eax, [ebp+var_14]
or	eax, [ebp+var_10]
jnz	loc_41C101
lea	eax, [esi+224h]
lea	ecx, [ebp+lpFileName]
push	eax
call	sub_4030F2
push	2Eh
lea	ecx, [ebp+lpFileName]
mov	byte ptr [ebp+var_4], 5
call	sub_40316A
lea	eax, [ebp+Memory]
lea	ecx, [ebp+var_68]
push	eax
call	sub_41C2B4
push	eax
lea	ecx, [ebp+lpFileName]
mov	byte ptr [ebp+var_4], 6
call	sub_4031F2
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 5
call	sub_4284D8
pop	ecx
lea	eax, [ebp+lpFileName]
push	eax
mov	ecx, edi
call	sub_403FE6
mov	eax, [ebp+var_28]
mov	ecx, [ebp+var_24]
add	[ebp+var_28], 1
push	ecx
push	eax
mov	ecx, edi
adc	[ebp+var_24], ebx
call	sub_403EC6
push	ebx		; char
lea	ecx, [ebp+var_88]
push	[ebp+lpFileName] ; lpFileName
call	sub_42C21B
test	al, al
jz	loc_41C1D4
push	[ebp+lpFileName] ; Memory
mov	byte ptr [ebp+var_4], 4
call	sub_4284D8
pop	ecx

loc_41C101:
lea	eax, [ebp+var_20]
lea	ecx, [ebp+var_88]
push	eax		; int
push	[ebp+nNumberOfBytesToWrite] ; nNumberOfBytesToWrite
push	[ebp+lpBuffer]	; lpBuffer
call	sub_42C289
test	al, al
jz	loc_41C205
mov	eax, [ebp+var_20]
cmp	[ebp+nNumberOfBytesToWrite], eax
jnz	loc_41C20F
add	[ebp+var_14], eax
mov	eax, [ebp+var_14]
adc	[ebp+var_10], ebx
cmp	eax, [ebp+var_30]
jnz	short loc_41C15F
mov	eax, [ebp+var_10]
cmp	eax, [ebp+var_2C]
jnz	short loc_41C15F
lea	ecx, [ebp+var_88]
call	sub_42BEBB
mov	eax, [ebp+var_1C]
cmp	eax, [esi+240h]
jge	short loc_41C159
inc	[ebp+var_1C]

loc_41C159:
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx

loc_41C15F:
mov	eax, [ebp+var_20]
mov	ecx, edi
add	[ebp+var_3C], eax
adc	[ebp+var_38], ebx
push	[ebp+var_38]
push	[ebp+var_3C]
call	sub_422DB9
mov	edi, eax
cmp	edi, ebx
jnz	loc_41C225
mov	edi, [ebp+var_34]
mov	eax, [ebp+var_1C]
jmp	loc_41BFF0

loc_41C18A:
push	[ebp+var_24]
mov	ecx, edi
push	[ebp+var_28]
call	sub_403EC6
xor	esi, esi

loc_41C199:		; Memory
push	[ebp+var_5C]
call	sub_4284D8
push	[ebp+var_68]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx

loc_41C1AB:		; lpAddress
mov	ecx, [ebp+lpBuffer]
call	sub_4411D0
lea	ecx, [ebp+var_88]
mov	byte ptr [ebp+var_4], bl
call	sub_42BD78

loc_41C1C1:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_78]
call	sub_42BD78
mov	eax, esi
jmp	loc_41C25B

loc_41C1D4:
call	ds:GetLastError
mov	edi, eax
lea	eax, [ebp+lpFileName]
push	eax
lea	ecx, [esi+14h]
call	sub_40312C
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_5C]	; Memory
call	sub_4284D8
push	[ebp+var_68]	; Memory
call	sub_4284D8
add	esp, 0Ch
jmp	short loc_41C237

loc_41C205:
call	ds:GetLastError
mov	esi, eax
jmp	short loc_41C199

loc_41C20F:
mov	eax, off_45BB6C
push	offset unk_451D78
mov	[ebp+var_34], eax
lea	eax, [ebp+var_34]
push	eax
call	_CxxThrowException

loc_41C225:		; Memory
push	[ebp+var_5C]
call	sub_4284D8
push	[ebp+var_68]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx

loc_41C237:		; lpAddress
mov	ecx, [ebp+lpBuffer]
call	sub_4411D0
lea	ecx, [ebp+var_88]
mov	byte ptr [ebp+var_4], bl
call	sub_42BD78
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_78]
call	sub_42BD78
mov	eax, edi

loc_41C25B:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_41BF0B endp




sub_41C26A proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	ebx
push	esi
lea	esi, [ecx+0Ch]
push	edi
push	offset a000	; "000"
mov	ecx, esi
call	sub_404722
mov	edi, [esp+0Ch+arg_4]
mov	ebx, [esp+0Ch+arg_0]
test	edi, edi
ja	short loc_41C290

loc_41C288:
cmp	ebx, 3E7h
jbe	short loc_41C2AE

loc_41C290:
push	0
push	0Ah
push	edi
push	ebx
call	__aulldiv
push	30h
mov	ecx, esi
mov	ebx, eax
mov	edi, edx
call	sub_40316A
test	edi, edi
ja	short loc_41C290
jnb	short loc_41C288

loc_41C2AE:
pop	edi
pop	esi
pop	ebx
retn	8
sub_41C26A endp



; Attributes: bp-based frame

sub_41C2B4 proc	near

var_40=	dword ptr -40h
var_34=	dword ptr -34h
Memory=	dword ptr -28h
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_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4459F8
call	__EH_prolog
sub	esp, 34h
push	ebx
push	esi
push	edi
mov	edi, ecx
xor	ebx, ebx
push	3
lea	ecx, [ebp+var_1C]
mov	[ebp+var_10], ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_403396
mov	eax, [edi+10h]
mov	[ebp+var_4], ebx
lea	esi, [eax-1]
cmp	esi, ebx
jl	loc_41C36F

loc_41C2EF:
mov	eax, [edi+0Ch]
mov	dx, [eax+esi*2]
cmp	dx, 39h
jnz	loc_41C3A5
lea	eax, [ebp+var_1C]
add	dx, 0FFF7h
push	eax
lea	ecx, [ebp+Memory]
call	sub_41D74B
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 1
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
cmp	esi, ebx
pop	ecx
jnz	short loc_41C36C
push	31h
lea	ecx, [ebp+var_40]
call	sub_409516
lea	ecx, [ebp+var_1C]
mov	edx, eax
push	ecx
lea	ecx, [ebp+var_34]
mov	byte ptr [ebp+var_4], 2
call	sub_40356A
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 3
call	sub_40312C
push	[ebp+var_34]	; Memory
call	sub_4284D8
push	[ebp+var_40]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx
pop	ecx

loc_41C36C:
dec	esi
jns	short loc_41C2EF

loc_41C36F:
lea	esi, [edi+0Ch]
lea	eax, [ebp+var_1C]
push	eax
mov	ecx, esi
call	sub_40312C
mov	ecx, [ebp+arg_0]
push	esi
mov	edx, edi
call	sub_40356A
push	[ebp+var_1C]	; Memory
call	sub_4284D8
mov	eax, [ebp+arg_0]
pop	ecx
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4

loc_41C3A5:
lea	eax, [ebp+var_1C]
inc	edx
push	eax
lea	ecx, [ebp+var_40]
call	sub_41D74B
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 4
call	sub_40312C
push	[ebp+var_40]	; Memory
mov	byte ptr [ebp+var_4], bl

loc_41C3C5:
call	sub_4284D8
dec	esi
pop	ecx
js	short loc_41C36F
mov	eax, [edi+0Ch]
lea	ecx, [ebp+var_1C]
push	ecx
lea	ecx, [ebp+var_40]
mov	dx, [eax+esi*2]
call	sub_41D74B
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 5
call	sub_40312C
push	[ebp+var_40]
mov	byte ptr [ebp+var_4], bl
jmp	short loc_41C3C5
sub_41C2B4 endp



; Attributes: bp-based frame

sub_41C3F6 proc	near

var_380= byte ptr -380h
var_240= byte ptr -240h
var_18E= byte ptr -18Eh
var_188= dword ptr -188h
var_184= byte ptr -184h
var_178= byte ptr -178h
var_168= byte ptr -168h
var_15C= byte ptr -15Ch
var_150= dword ptr -150h
var_14C= dword ptr -14Ch
var_148= byte ptr -148h
var_130= byte ptr -130h
var_F0=	dword ptr -0F0h
var_EC=	dword ptr -0ECh
var_C8=	dword ptr -0C8h
var_B8=	byte ptr -0B8h
var_A8=	byte ptr -0A8h
var_9C=	byte ptr -9Ch
var_90=	byte ptr -90h
var_84=	dword ptr -84h
var_7C=	dword ptr -7Ch
var_78=	dword ptr -78h
var_70=	dword ptr -70h
var_64=	dword ptr -64h
var_58=	dword ptr -58h
var_50=	dword ptr -50h
var_4C=	dword ptr -4Ch
var_44=	dword ptr -44h
var_38=	dword ptr -38h
Memory=	dword ptr -2Ch
var_20=	dword ptr -20h
lpCaption= dword ptr -14h
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_445AA5
call	__EH_prolog
sub	esp, 374h
push	ebx
push	esi
push	edi
mov	edi, ecx
mov	eax, [edi+0Ch]
mov	[ebp+lpCaption], eax
imul	eax, 188h
lea	esi, [eax+edi+84h]
mov	ecx, esi
call	sub_40E6A6
test	al, al
jnz	short loc_41C43F
push	3020208h
push	8A0h
mov	ecx, esi
call	sub_40E58A
jmp	loc_41C904

loc_41C43F:
push	4
lea	ecx, [ebp+var_58]
call	sub_402794
mov	[ebp+var_58], offset off_44B518
and	[ebp+var_4], 0
lea	eax, [ebp+var_58]
push	eax
mov	ecx, esi
call	sub_4170D3
cmp	[ebp+var_50], 0
jz	loc_41C8F8
cmp	[ebp+var_50], 1
jnz	short loc_41C480
mov	eax, [ebp+var_4C]
mov	ecx, esi
mov	ebx, [eax]
push	ebx
call	sub_41756F
test	al, al
jz	short loc_41C496

loc_41C480:
push	3020A02h
push	10CEh
mov	ecx, esi
call	sub_40E58A
jmp	loc_41C8F8

loc_41C496:
lea	eax, [ebp+var_38]
push	ebx
push	eax
mov	ecx, esi
call	sub_41733B
lea	eax, [ebp+Memory]
push	ebx
push	eax
mov	ecx, esi
mov	byte ptr [ebp+var_4], 1
call	sub_4173E8
push	eax
lea	edx, [esi+0D8h]
lea	ecx, [ebp+var_44]
mov	byte ptr [ebp+var_4], 2
call	sub_40356A
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 4
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_44]
push	eax
lea	ecx, [ebp+var_20]
call	sub_4030F2
mov	ecx, [edi+8]
push	1
pop	eax
mov	byte ptr [ebp+var_4], 5
cmp	ecx, eax
jg	short loc_41C4F1
mov	eax, [ebp+lpCaption]
jmp	short loc_41C4F4

loc_41C4F1:
sub	eax, [ebp+lpCaption]

loc_41C4F4:
imul	eax, 188h
cmp	ecx, 1
lea	eax, [eax+edi+84h]
mov	[ebp+lpCaption], eax
jle	short loc_41C525
mov	ecx, eax
call	sub_40E6A6
test	al, al
jz	short loc_41C525
mov	eax, [ebp+lpCaption]
lea	ecx, [ebp+var_20]
add	eax, 0D8h
push	eax
call	sub_40312C

loc_41C525:
lea	ecx, [ebp+var_B8]
call	sub_41C913
lea	eax, [ebp+Memory]
push	ebx
push	eax
mov	ecx, esi
mov	byte ptr [ebp+var_4], 6
call	sub_4174B8
push	eax
lea	ecx, [ebp+var_A8]
mov	byte ptr [ebp+var_4], 7
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 6
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_20]
push	eax
lea	ecx, [ebp+var_9C]
call	sub_40312C
mov	ecx, esi
call	sub_40DA67
push	eax		; hWndParent
push	1F8h		; lpTemplateName
lea	ecx, [ebp+var_B8]
call	sub_42FCF7
cmp	eax, 2
jz	loc_41C8CE
lea	ecx, [ebp+var_C8]
call	sub_403079
lea	eax, [ebp+var_38]
lea	edx, [ebp+var_44]
push	eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 8
call	sub_40356A
push	dword ptr [eax]	; lpFileName
lea	ecx, [ebp+var_F0]
mov	byte ptr [ebp+var_4], 9
call	sub_42B49E
push	[ebp+Memory]	; Memory
mov	bl, al
neg	bl
sbb	bl, bl
mov	byte ptr [ebp+var_4], 8
inc	bl
call	sub_4284D8
test	bl, bl
pop	ecx
jz	short loc_41C5E6
push	offset aCanNotFindFile ; "Can not find file"
mov	ecx, esi
call	sub_40E53A
jmp	loc_41C8C2

loc_41C5E6:
mov	eax, [ebp+var_84]
mov	edx, [ebp+var_EC]
mov	ebx, [ebp+var_F0]
cmp	edx, [eax+4]
ja	short loc_41C619
jb	short loc_41C603
cmp	ebx, [eax]
ja	short loc_41C619

loc_41C603:
push	3020522h
push	0FB7h
mov	ecx, esi
call	sub_40E58A
jmp	loc_41C8C2

loc_41C619:
push	edx
lea	ecx, [ebp+var_90]
push	ebx
call	sub_41F765
mov	ebx, edx
mov	[ebp+var_78], eax
test	ebx, ebx
ja	short loc_41C638
cmp	eax, 64h
jb	loc_41C6D5

loc_41C638:
push	ebx
lea	ecx, [ebp+var_130]
push	eax
call	sub_427B10
lea	eax, [ebp+var_130]
lea	ecx, [ebp+Memory]
push	eax
call	sub_403091
push	3020520h
mov	edx, 0FB5h
lea	ecx, [ebp+var_64]
mov	byte ptr [ebp+var_4], 0Ah
call	sub_40B168
mov	eax, [eax]
mov	edx, 0FB6h
mov	[ebp+lpCaption], eax
lea	eax, [ebp+Memory]
push	eax
push	3020521h
lea	ecx, [ebp+var_70]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_40744B
mov	eax, [eax]
mov	ecx, esi
neg	ecx
lea	edx, [esi+4]
push	23h		; uType
push	[ebp+lpCaption]	; lpCaption
sbb	ecx, ecx
and	ecx, edx
push	eax		; lpText
mov	ecx, [ecx]
push	ecx		; hWnd
call	ds:MessageBoxW
push	[ebp+var_70]	; Memory
cmp	eax, 6
setnz	[ebp+var_D]
call	sub_4284D8
push	[ebp+var_64]	; Memory
call	sub_4284D8
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 8
call	sub_4284D8
add	esp, 0Ch
cmp	[ebp+var_D], 0
jnz	loc_41C8C2

loc_41C6D5:
lea	eax, [ebp+var_9C]
lea	ecx, [ebp+var_20]
push	eax
call	sub_40312C
lea	ecx, [ebp+var_20]
call	sub_42C33B
mov	ecx, [ebp+var_20]
call	sub_42A264
test	al, al
jnz	short loc_41C734
lea	eax, [ebp+var_20]
mov	edx, 0C8h
push	eax
push	2000603h
lea	ecx, [ebp+var_64]
call	sub_40744B
push	dword ptr [eax]	; lpText
mov	ecx, esi
mov	byte ptr [ebp+var_4], 0Ch
call	sub_40E53A
push	[ebp+var_64]	; Memory
call	sub_4284D8
push	[ebp+var_C8]	; Memory
call	sub_4284D8
pop	ecx
jmp	loc_41C8CD

loc_41C734:
lea	ecx, [ebp+var_380]
call	sub_41C9D3
mov	eax, [ebp+var_78]
push	3000000h
mov	edx, 898h
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 0Dh
mov	[ebp+var_150], eax
mov	[ebp+var_14C], ebx
call	sub_40B168
push	3020510h
mov	edx, 0FB4h
lea	ecx, [ebp+var_70]
mov	byte ptr [ebp+var_4], 0Eh
call	sub_40B168
mov	eax, [edi]
and	[ebp+var_18E], 0
mov	[ebp+var_188], eax
lea	eax, [ebp+Memory]
push	eax
lea	ecx, [ebp+var_184]
mov	byte ptr [ebp+var_4], 0Fh
call	sub_40312C
push	offset asc_45B128 ; " "
lea	ecx, [ebp+var_7C]
call	sub_403091
push	eax
lea	edx, [ebp+var_70]
lea	ecx, [ebp+var_64]
mov	byte ptr [ebp+var_4], 10h
call	sub_40356A
push	eax
lea	ecx, [ebp+var_178]
mov	byte ptr [ebp+var_4], 11h
call	sub_40312C
push	[ebp+var_64]	; Memory
call	sub_4284D8
push	[ebp+var_7C]	; Memory
mov	byte ptr [ebp+var_4], 0Fh
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_38]
pop	ecx
push	eax
lea	ecx, [ebp+var_240]
call	sub_403F4B
lea	eax, [ebp+var_38]
lea	edx, [ebp+var_44]
push	eax
lea	ecx, [ebp+var_64]
call	sub_40356A
push	eax
lea	ecx, [ebp+var_168]
mov	byte ptr [ebp+var_4], 12h
call	sub_40312C
push	[ebp+var_64]	; Memory
mov	byte ptr [ebp+var_4], 0Fh
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_38]
push	eax
lea	edx, [ebp+var_20]
lea	ecx, [ebp+var_7C]
call	sub_40356A
push	eax
lea	ecx, [ebp+var_15C]
mov	byte ptr [ebp+var_4], 13h
call	sub_40312C
push	[ebp+var_7C]	; Memory
mov	byte ptr [ebp+var_4], 0Fh
call	sub_4284D8
pop	ecx
lea	ecx, [ebp+var_148]
call	sub_428327
lea	eax, [ebp+var_90]
lea	ecx, [ebp+var_148]
push	eax
call	sub_41D70E
push	dword ptr [edi]	; hWndParent
lea	eax, [ebp+var_70]
lea	ecx, [ebp+var_380]
push	eax		; int
call	sub_424FE9
push	[ebp+var_70]	; Memory
test	eax, eax
jz	short loc_41C89B
call	sub_4284D8
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 8
pop	ecx
lea	ecx, [ebp+var_380]
call	sub_41CA4F
jmp	short loc_41C8C2

loc_41C89B:
call	sub_4284D8
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 8
pop	ecx
lea	ecx, [ebp+var_380]
call	sub_41CA4F
push	1
mov	ecx, edi
call	sub_402FBC

loc_41C8C2:		; Memory
push	[ebp+var_C8]
call	sub_4284D8

loc_41C8CD:
pop	ecx

loc_41C8CE:
lea	ecx, [ebp+var_B8]
mov	byte ptr [ebp+var_4], 5
call	sub_41C98E
push	[ebp+var_20]	; Memory
call	sub_4284D8
push	[ebp+var_44]	; Memory
call	sub_4284D8
push	[ebp+var_38]	; Memory
call	sub_4284D8
add	esp, 0Ch

loc_41C8F8:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_58]
call	sub_4282FE

loc_41C904:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_41C3F6 endp



; Attributes: bp-based frame

sub_41C913 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_445AC3
call	__EH_prolog
push	ecx
push	esi
push	edi
mov	esi, ecx
xor	edi, edi
mov	[ebp+var_10], esi
mov	[esi+4], edi
mov	dword ptr [esi], offset	off_44B558
lea	ecx, [esi+10h]
mov	[esi+8], edi
mov	[esi+0Ch], edi
push	3
mov	[ebp+var_4], edi
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
lea	ecx, [esi+1Ch]
push	3
mov	byte ptr [ebp+var_4], 1
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
mov	ecx, [ebp+var_C]
mov	[esi+2Ch], edi
mov	[esi+30h], edi
mov	[esi+34h], edi
mov	dword ptr [esi+38h], 8
mov	dword ptr [esi+28h], offset off_44C418
mov	dword ptr [esi], offset	off_44C3E8
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_41C913 endp



; Attributes: bp-based frame

sub_41C98E proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_445AEE
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
lea	ecx, [esi+28h]
mov	[ebp+var_4], 2
call	sub_4282FE
push	dword ptr [esi+1Ch] ; Memory
call	sub_4284D8
push	dword ptr [esi+10h] ; Memory
call	sub_4284D8
pop	ecx
mov	dword ptr [esi], offset	off_44B588
pop	ecx
pop	esi
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn
sub_41C98E endp



; Attributes: bp-based frame

sub_41C9D3 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_445B0E
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
call	sub_40F2E5
lea	ecx, [esi+218h]
xor	edi, edi
push	3
mov	[ebp+var_4], edi
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
lea	ecx, [esi+224h]
push	3
mov	byte ptr [ebp+var_4], 1
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
mov	ecx, [ebp+var_C]
lea	eax, [esi+238h]
mov	[eax+4], edi
mov	[eax+8], edi
mov	[eax+0Ch], edi
mov	dword ptr [eax+10h], 8
mov	dword ptr [eax], offset	off_44C418
mov	dword ptr [esi], offset	off_44C420
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_41C9D3 endp



; Attributes: bp-based frame

sub_41CA4F proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_445B3C
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
lea	ecx, [esi+238h]
mov	[ebp+var_4], 2
call	sub_4282FE
push	dword ptr [esi+224h] ; Memory
call	sub_4284D8
push	dword ptr [esi+218h] ; Memory
call	sub_4284D8
or	[ebp+var_4], 0FFFFFFFFh
pop	ecx
pop	ecx
mov	ecx, esi
call	sub_40F3F1
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_41CA4F endp




; int __thiscall sub_41CAA2(void *Memory, char)
sub_41CAA2 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_41C98E
test	[esp+4+arg_0], 1
jz	short loc_41CAB8
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_41CAB8:
mov	eax, esi
pop	esi
retn	4
sub_41CAA2 endp



; Attributes: bp-based frame

sub_41CABE proc	near

var_4C=	dword ptr -4Ch
var_3C=	dword ptr -3Ch
lpFileName= dword ptr -2Ch
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
nNumberOfBytesToWrite= dword ptr -14h
lpBuffer= dword	ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_445B68
call	__EH_prolog
sub	esp, 40h
or	[ebp+var_3C], 0FFFFFFFFh
push	ebx
push	esi
push	edi
mov	esi, ecx
mov	eax, [esi+238h]
xor	ebx, ebx
push	ebx		; char
push	eax		; lpFileName
lea	ecx, [ebp+var_3C]
mov	[ebp+var_4], ebx
call	sub_42C21B
test	al, al
jnz	short loc_41CB0B
call	ds:GetLastError
mov	edi, eax
lea	eax, [esi+238h]
push	eax
lea	ecx, [esi+14h]
call	sub_40312C
mov	esi, edi
jmp	loc_41CCF4

loc_41CB0B:
push	ebx
push	ebx
push	dword ptr [esi+24Ch]
lea	ecx, [esi+140h]
push	dword ptr [esi+248h]
call	sub_403A30
mov	ecx, 100000h	; dwSize
call	sub_4411B0
mov	ecx, eax	; lpAddress
cmp	ecx, ebx
mov	[ebp+lpBuffer],	ecx
setnz	al
cmp	al, bl
jnz	short loc_41CB4B
call	sub_4411D0
mov	esi, 8007000Eh
jmp	loc_41CCF4

loc_41CB4B:
xor	edi, edi
cmp	[esi+22Ch], ebx
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
jle	loc_41CC31

loc_41CB5F:
or	[ebp+var_4C], 0FFFFFFFFh
mov	eax, [esi+230h]
lea	edx, [esi+218h]
lea	ecx, [ebp+lpFileName]
mov	byte ptr [ebp+var_4], 2
push	dword ptr [eax+edi*4]
call	sub_40356A
push	[ebp+lpFileName] ; lpFileName
lea	ecx, [ebp+var_4C]
mov	byte ptr [ebp+var_4], 3
call	sub_42C145
test	al, al
jz	loc_41CC56
lea	eax, [ebp+lpFileName]
lea	ecx, [esi+140h]
push	eax
call	sub_403FE6

loc_41CBA4:
lea	eax, [ebp+nNumberOfBytesToWrite]
lea	ecx, [ebp+var_4C]
push	eax		; int
push	100000h		; nNumberOfBytesToRead
push	[ebp+lpBuffer]	; lpBuffer
call	sub_42C1A2
test	al, al
jz	loc_41CC97
mov	eax, [ebp+nNumberOfBytesToWrite]
cmp	eax, ebx
jz	short loc_41CC0F
lea	ecx, [ebp+nNumberOfBytesToWrite]
mov	[ebp+var_18], eax
push	ecx		; int
push	eax		; nNumberOfBytesToWrite
push	[ebp+lpBuffer]	; lpBuffer
lea	ecx, [ebp+var_3C]
call	sub_42C289
test	al, al
jz	loc_41CCAF
mov	eax, [ebp+nNumberOfBytesToWrite]
cmp	[ebp+var_18], eax
jnz	loc_41CCBF
add	[ebp+var_20], eax
lea	ecx, [esi+140h]
adc	[ebp+var_1C], ebx
push	[ebp+var_1C]
push	[ebp+var_20]
call	sub_422DB9
cmp	eax, ebx
jnz	loc_41CCD5
jmp	short loc_41CBA4

loc_41CC0F:		; Memory
push	[ebp+lpFileName]
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 1
lea	ecx, [ebp+var_4C]
call	sub_42BD78
inc	edi
cmp	edi, [esi+22Ch]
jl	loc_41CB5F

loc_41CC31:		; lpAddress
mov	ecx, [ebp+lpBuffer]
call	sub_4411D0
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_3C]
call	sub_42BD78
xor	eax, eax

loc_41CC47:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn

loc_41CC56:
call	ds:GetLastError
mov	edi, eax
lea	eax, [ebp+lpFileName]
push	eax
lea	ecx, [esi+14h]
call	sub_40312C
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 1
lea	ecx, [ebp+var_4C]
call	sub_42BD78
mov	ecx, [ebp+lpBuffer] ; lpAddress
call	sub_4411D0
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_3C]
call	sub_42BD78
mov	eax, edi
jmp	short loc_41CC47

loc_41CC97:
call	ds:GetLastError
mov	edi, eax
lea	eax, [ebp+lpFileName]

loc_41CCA2:
push	eax
lea	ecx, [esi+14h]
call	sub_40312C
mov	esi, edi
jmp	short loc_41CCD7

loc_41CCAF:
call	ds:GetLastError
mov	edi, eax
lea	eax, [esi+238h]
jmp	short loc_41CCA2

loc_41CCBF:
mov	eax, off_45BB6C
push	offset unk_451D78
mov	[ebp+var_18], eax
lea	eax, [ebp+var_18]
push	eax
call	_CxxThrowException

loc_41CCD5:
mov	esi, eax

loc_41CCD7:		; Memory
push	[ebp+lpFileName]
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 1
lea	ecx, [ebp+var_4C]
call	sub_42BD78
mov	ecx, [ebp+lpBuffer] ; lpAddress
call	sub_4411D0

loc_41CCF4:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_3C]
call	sub_42BD78
mov	eax, esi
jmp	loc_41CC47
sub_41CABE endp



; Attributes: bp-based frame

sub_41CD07 proc	near

var_3BC= dword ptr -3BCh
var_3AC= byte ptr -3ACh
var_1BA= byte ptr -1BAh
var_1B4= dword ptr -1B4h
var_1B0= byte ptr -1B0h
var_1A4= byte ptr -1A4h
var_194= byte ptr -194h
var_188= byte ptr -188h
var_180= dword ptr -180h
var_17C= dword ptr -17Ch
var_174= byte ptr -174h
var_164= dword ptr -164h
var_160= dword ptr -160h
var_15C= byte ptr -15Ch
var_134= dword ptr -134h
var_124= dword ptr -124h
var_118= byte ptr -118h
var_10C= byte ptr -10Ch
var_100= dword ptr -100h
var_FC=	dword ptr -0FCh
var_F4=	byte ptr -0F4h
var_E8=	byte ptr -0E8h
var_E0=	dword ptr -0E0h
var_D8=	dword ptr -0D8h
var_C8=	dword ptr -0C8h
var_BC=	dword ptr -0BCh
var_B0=	dword ptr -0B0h
lpFileName= dword ptr -0ACh
Memory=	dword ptr -0A0h
var_94=	dword ptr -94h
var_90=	dword ptr -90h
var_84=	dword ptr -84h
var_78=	dword ptr -78h
var_70=	dword ptr -70h
var_6C=	dword ptr -6Ch
var_64=	dword ptr -64h
var_58=	dword ptr -58h
var_4C=	dword ptr -4Ch
var_40=	dword ptr -40h
var_3C=	dword ptr -3Ch
var_34=	dword ptr -34h
var_28=	dword ptr -28h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_445C76
call	__EH_prolog
sub	esp, 3A0h
push	ebx
push	esi
mov	esi, ecx
push	edi
mov	eax, [esi+0Ch]
mov	[ebp+var_94], eax
imul	eax, 188h
lea	ebx, [eax+esi+84h]
mov	ecx, ebx
call	sub_40E6A6
test	al, al
jnz	short loc_41CD53
push	3020208h
push	8A0h
mov	ecx, ebx
call	sub_40E58A
jmp	loc_41D526

loc_41CD53:
push	4
lea	ecx, [ebp+var_78]
call	sub_402794
mov	[ebp+var_78], offset off_44B518
and	[ebp+var_4], 0
lea	eax, [ebp+var_78]
push	eax
mov	ecx, ebx
call	sub_4170D3
cmp	[ebp+var_70], 0
jz	loc_41D51A
mov	eax, [ebp+var_6C]
cmp	[ebp+var_70], 1
mov	edi, [eax]
mov	[ebp+var_B0], edi
jnz	loc_41D509
push	edi
mov	ecx, ebx
call	sub_41756F
test	al, al
jnz	loc_41D509
lea	eax, [ebp+var_58]
push	edi
push	eax
mov	ecx, ebx
call	sub_41733B
lea	eax, [ebp+Memory]
push	edi
push	eax
mov	ecx, ebx
mov	byte ptr [ebp+var_4], 1
call	sub_4173E8
push	eax
lea	edx, [ebx+0D8h]
lea	ecx, [ebp+var_34]
mov	byte ptr [ebp+var_4], 2
call	sub_40356A
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 4
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_34]
push	eax
lea	ecx, [ebp+var_28]
call	sub_4030F2
mov	ecx, [esi+8]
mov	byte ptr [ebp+var_4], 5
cmp	ecx, 1
jg	short loc_41CE04
mov	eax, [ebp+var_94]
jmp	short loc_41CE0D

loc_41CE04:
push	1
pop	eax
sub	eax, [ebp+var_94]

loc_41CE0D:
imul	eax, 188h
cmp	ecx, 1
lea	edi, [eax+esi+84h]
jle	short loc_41CE39
mov	ecx, edi
call	sub_40E6A6
test	al, al
jz	short loc_41CE39
add	edi, 0D8h
lea	ecx, [ebp+var_28]
push	edi
call	sub_40312C

loc_41CE39:
lea	ecx, [ebp+var_90]
call	sub_403079
push	offset a000	; "000"
lea	ecx, [ebp+var_84]
mov	byte ptr [ebp+var_4], 6
call	sub_403091
lea	eax, [ebp+var_58]
lea	ecx, [ebp+var_90]
push	eax
mov	byte ptr [ebp+var_4], 7
call	sub_41D535
test	al, al
jnz	short loc_41CE85
push	3020621h
push	0FC2h
mov	ecx, ebx
call	sub_40E58A
jmp	loc_41D32E

loc_41CE85:
lea	ecx, [ebp+var_3AC]
call	sub_41D625
lea	eax, [ebp+var_58]
lea	ecx, [ebp+var_64]
push	eax
mov	byte ptr [ebp+var_4], 8
call	sub_4030F2
xor	edi, edi
mov	byte ptr [ebp+var_4], 9
mov	[ebp+var_164], edi
mov	[ebp+var_160], edi

loc_41CEB2:
lea	ecx, [ebp+var_D8]
call	sub_403079
lea	eax, [ebp+var_64]
lea	edx, [ebp+var_34]
push	eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 0Ah
call	sub_40356A
push	dword ptr [eax]	; lpFileName
lea	ecx, [ebp+var_100]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_42B49E
test	al, al
jz	short loc_41CEFE
mov	eax, [ebp+var_E0]
shr	eax, 4
and	al, 1
mov	[ebp+var_D], al
jnz	short loc_41CEFE
and	[ebp+var_D], 0
jmp	short loc_41CF02

loc_41CEFE:
mov	[ebp+var_D], 1

loc_41CF02:		; Memory
push	[ebp+Memory]
mov	byte ptr [ebp+var_4], 0Ah
call	sub_4284D8
cmp	[ebp+var_D], 0
pop	ecx
jnz	short loc_41CF79
lea	eax, [ebp+var_64]
lea	ecx, [ebp+var_188]
push	eax
call	sub_4032B4
mov	eax, [ebp+var_100]
mov	ecx, [ebp+var_FC]
add	[ebp+var_164], eax
lea	eax, [ebp+var_4C]
push	eax
adc	[ebp+var_160], ecx
lea	ecx, [ebp+var_90]
call	sub_41C2B4
push	eax
lea	ecx, [ebp+var_64]
mov	byte ptr [ebp+var_4], 0Ch
call	sub_40312C
push	[ebp+var_4C]	; Memory
call	sub_4284D8
push	[ebp+var_D8]	; Memory
mov	byte ptr [ebp+var_4], 9
call	sub_4284D8
pop	ecx
pop	ecx
jmp	loc_41CEB2

loc_41CF79:		; Memory
push	[ebp+var_D8]
mov	byte ptr [ebp+var_4], 9
call	sub_4284D8
cmp	[ebp+var_180], 1
pop	ecx
jnz	short loc_41CFB1
push	3020622h
push	0FC3h
mov	ecx, ebx
call	sub_40E58A

loc_41CFA3:		; Memory
push	[ebp+var_64]
call	sub_4284D8

loc_41CFAB:
pop	ecx
jmp	loc_41D31F

loc_41CFB1:
mov	eax, [ebp+var_164]
or	eax, [ebp+var_160]
jnz	short loc_41CFCD
push	offset aNoData	; "No data"
mov	ecx, ebx
call	sub_40E53A
jmp	short loc_41CFA3

loc_41CFCD:
push	3
lea	ecx, [ebp+var_1C]
mov	[ebp+var_1C], edi
mov	[ebp+var_18], edi
mov	[ebp+var_14], edi
call	sub_403396
lea	eax, [ebp+var_1C]
mov	ecx, 8E2h
push	eax
mov	eax, [ebp+var_180]
push	[ebp+var_160]
mov	byte ptr [ebp+var_4], 0Dh
cdq
push	[ebp+var_164]
push	edx
push	eax
mov	edx, 2000320h
call	sub_401A23
push	offset asc_45B10C ; "\n"
lea	ecx, [ebp+var_1C]
call	sub_403195
lea	eax, [ebp+var_34]
lea	ecx, [ebp+var_1C]
push	eax
call	sub_4031F2
cmp	[ebp+var_180], 0
jle	short loc_41D04D

loc_41D02E:
cmp	edi, 2
jge	short loc_41D04D
mov	eax, [ebp+var_17C]
lea	edx, [ebp+var_1C]
mov	ecx, [eax+edi*4]
call	sub_41D608
inc	edi
cmp	edi, [ebp+var_180]
jl	short loc_41D02E

loc_41D04D:
cmp	edi, [ebp+var_180]
jz	short loc_41D0A8
inc	edi
cmp	edi, [ebp+var_180]
jz	short loc_41D090
push	offset a____1	; "..."
lea	ecx, [ebp+Memory]
call	sub_403091
lea	edx, [ebp+var_1C]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 0Eh
call	sub_41D608
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 0Dh
call	sub_4284D8
pop	ecx

loc_41D090:
mov	eax, [ebp+var_17C]
mov	ecx, [ebp+var_180]
lea	edx, [ebp+var_1C]
mov	ecx, [eax+ecx*4-4]
call	sub_41D608

loc_41D0A8:
lea	ecx, [ebp+var_118]
call	sub_402BA4
lea	eax, [ebp+var_28]
lea	ecx, [ebp+var_F4]
push	eax
mov	byte ptr [ebp+var_4], 0Fh
call	sub_40312C
push	3020600h
mov	edx, 0FBEh
lea	ecx, [ebp+var_4C]
call	sub_40B168
push	eax
lea	ecx, [ebp+var_10C]
mov	byte ptr [ebp+var_4], 10h
call	sub_40312C
push	[ebp+var_4C]	; Memory
mov	byte ptr [ebp+var_4], 0Fh
call	sub_4284D8
pop	ecx
push	20h
lea	ecx, [ebp+var_10C]
call	sub_40316A
push	[ebp+var_B0]
lea	eax, [ebp+var_4C]
mov	ecx, ebx
push	eax
call	sub_4174B8
push	eax
lea	ecx, [ebp+var_10C]
mov	byte ptr [ebp+var_4], 11h
call	sub_4031F2
push	[ebp+var_4C]	; Memory
mov	byte ptr [ebp+var_4], 0Fh
call	sub_4284D8
mov	edx, 0FBFh
lea	ecx, [ebp+var_4C]
mov	[esp+3BCh+var_3BC], 3020601h
call	sub_40B168
push	eax
lea	ecx, [ebp+var_100]
mov	byte ptr [ebp+var_4], 12h
call	sub_40312C
push	[ebp+var_4C]	; Memory
mov	byte ptr [ebp+var_4], 0Fh
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_1C]
push	eax
lea	ecx, [ebp+var_E8]
call	sub_40312C
mov	ecx, ebx
call	sub_40DA67
push	eax		; hWndParent
push	1FAh		; lpTemplateName
lea	ecx, [ebp+var_118]
call	sub_42FCF7
cmp	eax, 2
jnz	short loc_41D1B1
lea	ecx, [ebp+var_118]
mov	byte ptr [ebp+var_4], 0Dh
call	sub_402C6D
push	[ebp+var_1C]	; Memory
call	sub_4284D8
push	[ebp+var_64]	; Memory
call	sub_4284D8
pop	ecx
jmp	loc_41CFAB

loc_41D1B1:
lea	eax, [ebp+var_F4]
lea	ecx, [ebp+var_28]
push	eax
call	sub_40312C
lea	ecx, [ebp+var_118]
mov	byte ptr [ebp+var_4], 0Dh
call	sub_402C6D
lea	ecx, [ebp+var_28]
call	sub_42C33B
mov	ecx, [ebp+var_28]
call	sub_42A264
test	al, al
jnz	short loc_41D226
lea	eax, [ebp+var_28]
mov	edx, 0C8h
push	eax
push	2000603h
lea	ecx, [ebp+var_4C]
call	sub_40744B
push	dword ptr [eax]	; lpText
mov	ecx, ebx
mov	byte ptr [ebp+var_4], 13h
call	sub_40E53A
push	[ebp+var_4C]	; Memory
call	sub_4284D8
push	[ebp+var_1C]	; Memory
call	sub_4284D8
push	[ebp+var_64]	; Memory
call	sub_4284D8
add	esp, 0Ch
jmp	loc_41D31F

loc_41D226:
lea	eax, [ebp+var_90]
lea	ecx, [ebp+var_40]
push	eax
call	sub_4030F2
xor	edi, edi
mov	byte ptr [ebp+var_4], 14h
cmp	[ebp+var_3C], edi
jz	short loc_41D263

loc_41D240:
mov	eax, [ebp+var_3C]
mov	ecx, [ebp+var_40]
dec	eax
cmp	word ptr [ecx+eax*2], 2Eh
jnz	short loc_41D25E
push	1
push	eax
lea	ecx, [ebp+var_40]
call	sub_40708E
cmp	[ebp+var_3C], edi
jnz	short loc_41D240

loc_41D25E:
cmp	[ebp+var_3C], edi
jnz	short loc_41D270

loc_41D263:		; "file"
push	offset aFile
lea	ecx, [ebp+var_40]
call	sub_404722

loc_41D270:
lea	ecx, [ebp+var_134]
call	sub_403079
lea	eax, [ebp+var_40]
lea	edx, [ebp+var_28]
push	eax
lea	ecx, [ebp+lpFileName]
mov	byte ptr [ebp+var_4], 15h
call	sub_40356A
lea	eax, [ebp+lpFileName]
lea	ecx, [ebp+var_174]
push	eax
mov	byte ptr [ebp+var_4], 16h
call	sub_40312C
push	[ebp+lpFileName] ; lpFileName
lea	ecx, [ebp+var_15C]
call	sub_42B49E
test	al, al
jz	loc_41D364
lea	eax, [ebp+lpFileName]
mov	edx, 10D0h
push	eax
push	3020A04h
lea	ecx, [ebp+var_4C]
call	sub_40744B
push	dword ptr [eax]	; lpText
mov	ecx, ebx
mov	byte ptr [ebp+var_4], 17h
call	sub_40E53A
push	[ebp+var_4C]	; Memory
call	sub_4284D8
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_134]	; Memory
call	sub_4284D8
push	[ebp+var_40]	; Memory
call	sub_4284D8
push	[ebp+var_1C]	; Memory
call	sub_4284D8
push	[ebp+var_64]	; Memory
call	sub_4284D8
add	esp, 18h

loc_41D31F:
lea	ecx, [ebp+var_3AC]
mov	byte ptr [ebp+var_4], 7
call	sub_41D6A1

loc_41D32E:		; Memory
push	[ebp+var_84]
call	sub_4284D8
push	[ebp+var_90]	; Memory
call	sub_4284D8
push	[ebp+var_28]	; Memory
call	sub_4284D8
push	[ebp+var_34]	; Memory
call	sub_4284D8
push	[ebp+var_58]	; Memory
call	sub_4284D8
add	esp, 14h
jmp	loc_41D51A

loc_41D364:
and	[ebp+var_1BA], 0
push	3000000h
mov	edx, 898h
lea	ecx, [ebp+var_C8]
call	sub_40B168
push	3020610h
mov	edx, 0FC0h
lea	ecx, [ebp+var_BC]
mov	byte ptr [ebp+var_4], 18h
call	sub_40B168
mov	eax, [esi]
lea	ecx, [ebp+var_1B0]
mov	[ebp+var_1B4], eax
lea	eax, [ebp+var_C8]
push	eax
mov	byte ptr [ebp+var_4], 19h
call	sub_40312C
push	offset asc_45B128 ; " "
lea	ecx, [ebp+var_124]
call	sub_403091
push	eax
lea	edx, [ebp+var_BC]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1Ah
call	sub_40356A
push	eax
lea	ecx, [ebp+var_1A4]
mov	byte ptr [ebp+var_4], 1Bh
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_124]	; Memory
mov	byte ptr [ebp+var_4], 19h
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_34]
pop	ecx
push	eax
lea	ecx, [ebp+var_194]
call	sub_40312C
push	dword ptr [esi]	; hWndParent
lea	eax, [ebp+var_BC]
lea	ecx, [ebp+var_3AC]
push	eax		; int
call	sub_424FE9
push	[ebp+var_BC]	; Memory
test	eax, eax
jz	short loc_41D488
call	sub_4284D8
push	[ebp+var_C8]	; Memory
call	sub_4284D8
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_134]	; Memory
call	sub_4284D8
push	[ebp+var_40]	; Memory
call	sub_4284D8
push	[ebp+var_1C]	; Memory
call	sub_4284D8
push	[ebp+var_64]	; Memory
call	sub_4284D8
add	esp, 1Ch
lea	ecx, [ebp+var_3AC]
mov	byte ptr [ebp+var_4], 7
call	sub_41D6A1
jmp	short loc_41D4E1

loc_41D488:
call	sub_4284D8
push	[ebp+var_C8]	; Memory
call	sub_4284D8
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_134]	; Memory
call	sub_4284D8
push	[ebp+var_40]	; Memory
call	sub_4284D8
push	[ebp+var_1C]	; Memory
call	sub_4284D8
push	[ebp+var_64]	; Memory
call	sub_4284D8
add	esp, 1Ch
lea	ecx, [ebp+var_3AC]
mov	byte ptr [ebp+var_4], 7
call	sub_41D6A1
push	1
mov	ecx, esi
call	sub_402FBC

loc_41D4E1:
lea	ecx, [ebp+var_90]
call	sub_409444
push	[ebp+var_28]	; Memory
call	sub_4284D8
push	[ebp+var_34]	; Memory
call	sub_4284D8
push	[ebp+var_58]	; Memory
call	sub_4284D8
add	esp, 0Ch
jmp	short loc_41D51A

loc_41D509:
push	3020620h
push	0FC1h
mov	ecx, ebx
call	sub_40E58A

loc_41D51A:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_78]
call	sub_4282FE

loc_41D526:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_41CD07 endp



; Attributes: bp-based frame

sub_41D535 proc	near

var_24=	dword ptr -24h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_445C98
call	__EH_prolog
sub	esp, 18h
push	ebx
push	esi
mov	esi, [ebp+arg_0]
push	edi
push	2
mov	ebx, ecx
pop	edi
lea	eax, [ebp+Memory]
push	edi
push	eax
mov	ecx, esi
call	sub_40B5EF
mov	ecx, [eax]
and	[ebp+var_4], 0
mov	edx, offset a01	; "01"
call	sub_42828A
push	[ebp+Memory]	; Memory
test	eax, eax
setnz	byte ptr [ebp+arg_0+3]
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
cmp	byte ptr [ebp+arg_0+3],	0
pop	ecx
jz	short loc_41D586
xor	al, al
jmp	short loc_41D5F7

loc_41D586:
mov	eax, [esi+4]
mov	[ebp+arg_0], edi
cmp	eax, edi
jle	short loc_41D5A7

loc_41D590:
mov	ecx, [esi]
mov	edx, eax
sub	edx, [ebp+arg_0]
cmp	word ptr [ecx+edx*2-2],	30h
jnz	short loc_41D5A7
inc	[ebp+arg_0]
cmp	[ebp+arg_0], eax
jl	short loc_41D590

loc_41D5A7:
sub	eax, [ebp+arg_0]
mov	ecx, esi
push	eax
lea	eax, [ebp+Memory]
push	eax
call	sub_403228
push	eax
mov	ecx, ebx
mov	[ebp+var_4], 1
call	sub_40312C
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_24]
push	[ebp+arg_0]
mov	ecx, esi
push	eax
call	sub_40B5EF
push	eax
lea	ecx, [ebx+0Ch]
mov	[ebp+var_4], edi
call	sub_40312C
push	[ebp+var_24]	; Memory
call	sub_4284D8
pop	ecx
mov	al, 1

loc_41D5F7:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_41D535 endp




sub_41D608 proc	near
push	esi
push	edi
mov	esi, edx
mov	edi, ecx
push	offset asc_45B13C ; "\n	 "
mov	ecx, esi
call	sub_403195
mov	ecx, esi
push	edi
call	sub_4031F2
pop	edi
pop	esi
retn
sub_41D608 endp



; Attributes: bp-based frame

sub_41D625 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_445CC8
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
call	sub_40F2E5
lea	ecx, [esi+218h]
xor	edi, edi
push	3
mov	[ebp+var_4], edi
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
lea	eax, [esi+224h]
mov	[eax+4], edi
mov	[eax+8], edi
mov	[eax+0Ch], edi
mov	dword ptr [eax+10h], 4
mov	dword ptr [eax], offset	off_44B510
lea	ecx, [esi+238h]
push	3
mov	byte ptr [ebp+var_4], 2
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
mov	ecx, [ebp+var_C]
mov	dword ptr [esi], offset	off_44C424
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_41D625 endp



; Attributes: bp-based frame

sub_41D6A1 proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_445CF2
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
push	dword ptr [esi+238h] ; Memory
call	sub_4284D8
lea	edi, [esi+224h]
pop	ecx
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44B510
mov	ecx, edi
mov	byte ptr [ebp+var_4], 2
call	sub_428327
mov	ecx, edi
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
push	dword ptr [esi+218h] ; Memory
call	sub_4284D8
or	[ebp+var_4], 0FFFFFFFFh
pop	ecx
mov	ecx, esi
call	sub_40F3F1
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_41D6A1 endp




sub_41D70E proc	near

arg_0= dword ptr  4

push	ebx
push	ebp
mov	ebp, [esp+8+arg_0]
push	esi
push	edi
mov	edi, ecx
mov	ebx, [ebp+8]
mov	eax, [edi+8]
add	eax, ebx
push	eax
call	sub_428378
xor	esi, esi
test	ebx, ebx
jle	short loc_41D742

loc_41D72C:
mov	eax, [ebp+0Ch]
mov	ecx, edi
push	dword ptr [eax+esi*8+4]
push	dword ptr [eax+esi*8]
call	sub_43D102
inc	esi
cmp	esi, ebx
jl	short loc_41D72C

loc_41D742:
mov	eax, edi
pop	edi
pop	esi
pop	ebp
pop	ebx
retn	4
sub_41D70E endp



; Attributes: bp-based frame

sub_41D74B proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_445D04
call	__EH_prolog
sub	esp, 10h
and	[ebp+var_10], 0
push	esi
mov	esi, ecx
push	edx
lea	ecx, [ebp+Memory]
call	sub_409516
push	[ebp+arg_0]
and	[ebp+var_4], 0
lea	ecx, [ebp+Memory]
call	sub_4031F2
lea	eax, [ebp+Memory]
mov	ecx, esi
push	eax
call	sub_4030F2
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_41D74B endp



; Attributes: bp-based frame

sub_41D79C proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_445D18
call	__EH_prolog
sub	esp, 0Ch
push	esi
mov	esi, ecx
mov	ecx, hInstance
mov	edx, esi
call	sub_429ADE
test	al, al
jz	short loc_41D7E5
mov	eax, [esi+4]
test	eax, eax
jz	short loc_41D7E5
mov	ecx, [esi]
lea	eax, [ecx+eax*2-2]

loc_41D7CA:
cmp	word ptr [eax],	5Ch
jz	short loc_41D7D8
cmp	eax, ecx
jz	short loc_41D7DE
dec	eax
dec	eax
jmp	short loc_41D7CA

loc_41D7D8:
sub	eax, ecx
sar	eax, 1
jmp	short loc_41D7E1

loc_41D7DE:
or	eax, 0FFFFFFFFh

loc_41D7E1:
test	eax, eax
jge	short loc_41D7E9

loc_41D7E5:
xor	al, al
jmp	short loc_41D80D

loc_41D7E9:
inc	eax
mov	ecx, esi
push	eax
lea	eax, [ebp+Memory]
push	eax
call	sub_403228
and	[ebp+var_4], 0
push	eax
mov	ecx, esi
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	al, 1

loc_41D80D:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_41D79C endp




sub_41D81A proc	near
xor	eax, eax
mov	edx, offset unk_45BC10

loc_41D821:
cmp	[edx], ecx
jz	short locret_41D834
add	edx, 0Ch
inc	eax
cmp	edx, offset lpSubKey
jb	short loc_41D821
or	eax, 0FFFFFFFFh

locret_41D834:
retn
sub_41D81A endp



; Attributes: bp-based frame

sub_41D835 proc	near

var_24=	byte ptr -24h
var_4= dword ptr -4
arg_0= dword ptr  8

push	ebp
mov	ebp, esp
sub	esp, 24h
and	[ebp+var_4], 0
push	esi
push	edi
mov	edi, edx
mov	esi, ecx
mov	ecx, edi
call	sub_41D81A
test	eax, eax
jge	short loc_41D872
cmp	[ebp+arg_0], 0
jz	short loc_41D85B
push	[ebp+arg_0]
jmp	short loc_41D869

loc_41D85B:
lea	edx, [ebp+var_24]
mov	ecx, edi
call	sub_427B8F
lea	eax, [ebp+var_24]
push	eax

loc_41D869:
mov	ecx, esi
call	sub_403091
jmp	short loc_41D891

loc_41D872:
lea	eax, [eax+eax*2]
mov	ecx, esi
push	dword_45BC18[eax*4]
mov	edx, dword_45BC14[eax*4]
lea	eax, ds:45BC10h[eax*4]
call	sub_40B168

loc_41D891:
mov	eax, esi
pop	edi
pop	esi
leave
retn	4
sub_41D835 endp

call	sub_41D8A3
jmp	loc_41D8AD



sub_41D8A3 proc	near
mov	ecx, offset stru_45D920	; lpCriticalSection
jmp	sub_441910
sub_41D8A3 endp


loc_41D8AD:
push	offset loc_41D8B9
call	_atexit
pop	ecx
retn

loc_41D8B9:
push	offset stru_45D920
call	ds:DeleteCriticalSection
retn


; Attributes: bp-based frame

sub_41D8C5 proc	near

lpSubKey= 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_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_445D3C
call	__EH_prolog
sub	esp, 18h
push	ebx
push	esi
mov	esi, offset stru_45D920
push	edi
mov	edi, edx
mov	[ebp+var_14], ecx
push	esi		; lpCriticalSection
mov	[ebp+var_18], esi
call	ds:EnterCriticalSection
xor	ebx, ebx
push	3
lea	ecx, [ebp+lpSubKey]
mov	[ebp+var_4], ebx
mov	[ebp+lpSubKey],	ebx
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
call	sub_4034E3
push	[ebp+arg_0]	; int
lea	eax, [ebp+lpSubKey]
mov	byte ptr [ebp+var_4], 1
sub	esp, 0Ch
mov	ecx, esp
mov	[ebp+arg_0], esp
push	eax
call	sub_4128EF
mov	ecx, [ebp+var_14]
mov	edx, edi
call	sub_41D97F
cmp	al, bl
jz	short loc_41D957
mov	[ebp+var_10], ebx
push	20019h		; samDesired
lea	ecx, [ebp+var_10]
push	[ebp+lpSubKey]	; lpSubKey
mov	byte ptr [ebp+var_4], 2
push	80000000h	; hKey
call	sub_42D35B
mov	ebx, eax
lea	ecx, [ebp+var_10]
neg	ebx
sbb	bl, bl
mov	byte ptr [ebp+var_4], 1
inc	bl
call	sub_42D390

loc_41D957:		; Memory
push	[ebp+lpSubKey]
call	sub_4284D8
pop	ecx
push	esi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
mov	al, bl
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	4
sub_41D8C5 endp



; Attributes: thunk

sub_41D97A proc	near
jmp	sub_42D390
sub_41D97A endp



; Attributes: bp-based frame

; int __stdcall	sub_41D97F(DWORD cbData, int, int, int)
sub_41D97F proc	near

var_68=	dword ptr -68h
var_5C=	dword ptr -5Ch
Memory=	dword ptr -50h
var_44=	dword ptr -44h
var_40=	dword ptr -40h
var_38=	dword ptr -38h
var_34=	dword ptr -34h
var_30=	dword ptr -30h
var_2C=	dword ptr -2Ch
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_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4
cbData=	dword ptr  8
arg_C= dword ptr  14h

mov	eax, offset loc_445DB8
call	__EH_prolog
sub	esp, 5Ch
push	ebx
push	esi
push	edi
mov	ebx, edx
mov	edi, ecx
mov	eax, [ebp+arg_C]
xor	esi, esi
mov	[ebp+var_4], esi
or	dword ptr [eax], 0FFFFFFFFh
mov	eax, [ebx]
mov	[ebx+4], esi
mov	[eax], si
mov	eax, offset stru_45D920
push	eax		; lpCriticalSection
mov	[ebp+var_20], eax
call	ds:EnterCriticalSection
mov	[ebp+var_14], esi
mov	edx, edi
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 2
call	sub_41DBFA
mov	eax, [eax]
mov	edi, 20019h
push	edi		; samDesired
mov	esi, 80000000h
push	eax		; lpSubKey
push	esi		; hKey
lea	ecx, [ebp+var_14]
mov	byte ptr [ebp+var_4], 3
call	sub_42D35B
test	eax, eax
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 2
setnz	[ebp+var_D]
call	sub_4284D8
cmp	[ebp+var_D], 0
pop	ecx
jz	short loc_41DA01

loc_41D9FA:
xor	bl, bl
jmp	loc_41DBC7

loc_41DA01:
lea	eax, [ebp+cbData]
lea	ecx, [ebp+var_14]
push	eax		; cbData
push	0		; lpValueName
call	sub_42D67E
test	eax, eax
jnz	short loc_41D9FA
push	off_45BEE0
lea	ecx, [ebp+Memory]
call	sub_41E0DD
lea	edx, [ebp+Memory]
lea	ecx, [ebp+var_44]
mov	byte ptr [ebp+var_4], 4
call	sub_41242C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 6
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_5C]
push	[ebp+var_40]
lea	ecx, [ebp+cbData]
push	eax
call	sub_41E16A
mov	edx, eax
lea	ecx, [ebp+var_2C]
mov	byte ptr [ebp+var_4], 7
call	sub_41242C
mov	edx, [eax]
mov	ecx, [ebp+var_44]
mov	byte ptr [ebp+var_4], 8
call	sub_4282B1
test	eax, eax
push	[ebp+var_2C]	; Memory
setnz	[ebp+var_D]
call	sub_4284D8
push	[ebp+var_5C]	; Memory
call	sub_4284D8
cmp	[ebp+var_D], 0
pop	ecx
pop	ecx
jz	short loc_41DA8D
xor	bl, bl
jmp	loc_41DBBE

loc_41DA8D:
and	[ebp+var_1C], 0
push	5Ch
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 9
call	sub_41E0AD
push	eax
lea	edx, [ebp+cbData]
lea	ecx, [ebp+var_2C]
mov	byte ptr [ebp+var_4], 0Ah
call	sub_41E22F
push	off_45BED0
mov	edx, eax
lea	ecx, [ebp+var_5C]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_41E280
mov	eax, [eax]
push	edi		; samDesired
push	eax		; lpSubKey
push	esi		; hKey
lea	ecx, [ebp+var_14]
mov	byte ptr [ebp+var_4], 0Ch
call	sub_42D35B
test	eax, eax
push	[ebp+var_5C]	; Memory
setnz	[ebp+var_D]
call	sub_4284D8
push	[ebp+var_2C]	; Memory
call	sub_4284D8
push	[ebp+var_68]	; Memory
mov	byte ptr [ebp+var_4], 9
call	sub_4284D8
add	esp, 0Ch
cmp	[ebp+var_D], 0
jz	short loc_41DB06
xor	bl, bl
jmp	loc_41DBB2

loc_41DB06:
xor	edi, edi
push	3
lea	ecx, [ebp+var_38]
mov	[ebp+var_38], edi
mov	[ebp+var_34], edi
mov	[ebp+var_30], edi
call	sub_403396
lea	eax, [ebp+var_38]
lea	ecx, [ebp+var_14]
push	eax		; cbData
push	edi		; lpValueName
mov	byte ptr [ebp+var_4], 0Dh
call	sub_42D70F
test	eax, eax
jnz	short loc_41DBA7
mov	eax, [ebp+var_34]
cmp	eax, edi
jz	short loc_41DB54
mov	ecx, [ebp+var_38]
lea	eax, [ecx+eax*2-2]

loc_41DB3E:
cmp	word ptr [eax],	2Ch
jz	short loc_41DB4C
cmp	eax, ecx
jz	short loc_41DB54
dec	eax
dec	eax
jmp	short loc_41DB3E

loc_41DB4C:
sub	eax, ecx
sar	eax, 1
mov	esi, eax
jmp	short loc_41DB57

loc_41DB54:
or	esi, 0FFFFFFFFh

loc_41DB57:
lea	eax, [ebp+var_38]
mov	ecx, ebx
push	eax
call	sub_40312C
cmp	esi, edi
jl	short loc_41DBA7
mov	eax, [ebp+var_38]
lea	edx, [ebp+var_18]
lea	ecx, [eax+esi*2+2]
call	sub_428693
mov	ecx, [ebp+var_18]
mov	[ebp+var_24], edx
cmp	[ecx], di
jnz	short loc_41DBA7
mov	ecx, [ebp+arg_C]
push	esi
mov	[ecx], eax
lea	eax, [ebp+var_68]
push	eax
lea	ecx, [ebp+var_38]
call	sub_403228
push	eax
mov	ecx, ebx
mov	byte ptr [ebp+var_4], 0Eh
call	sub_40312C
push	[ebp+var_68]	; Memory
call	sub_4284D8
pop	ecx

loc_41DBA7:		; Memory
push	[ebp+var_38]
call	sub_4284D8
pop	ecx
mov	bl, 1

loc_41DBB2:
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 6
call	sub_42D390

loc_41DBBE:		; Memory
push	[ebp+var_44]
call	sub_4284D8
pop	ecx

loc_41DBC7:
lea	ecx, [ebp+var_14]
mov	byte ptr [ebp+var_4], 1
call	sub_42D390
push	offset stru_45D920 ; lpCriticalSection
call	ds:LeaveCriticalSection
push	[ebp+cbData]	; Memory
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
mov	al, bl
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	10h
sub_41D97F endp



; Attributes: bp-based frame

sub_41DBFA proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_445DCC
call	__EH_prolog
sub	esp, 10h
and	[ebp+var_10], 0
push	esi
mov	esi, ecx
push	edi
mov	edi, edx
push	offset a__2	; "."
lea	ecx, [ebp+Memory]
call	sub_41E0DD
and	[ebp+var_4], 0
push	edi
mov	edx, eax
mov	ecx, esi
call	sub_41E22F
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_41DBFA endp



; Attributes: bp-based frame

sub_41DC45 proc	near

var_2C=	dword ptr -2Ch
var_28=	dword ptr -28h
var_24=	dword ptr -24h
Memory=	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_4= dword ptr -4

mov	eax, offset loc_445DE8
call	__EH_prolog
sub	esp, 20h
push	ebx
push	esi
mov	esi, ecx
push	edi
xor	ebx, ebx
push	3
lea	ecx, [ebp+var_2C]
mov	[ebp+var_2C], ebx
mov	[ebp+var_28], ebx
mov	[ebp+var_24], ebx
call	sub_4034E3
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], ebx
mov	[ebp+Memory], ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
call	sub_403396
lea	eax, [ebp+var_10]
mov	byte ptr [ebp+var_4], 1
push	eax		; int
lea	eax, [ebp+var_2C]
sub	esp, 0Ch
lea	edi, [ebp+Memory]
mov	ecx, esp
mov	[ebp+var_14], esp
push	eax
call	sub_4128EF
mov	ecx, esi
mov	edx, edi
call	sub_41D97F
cmp	al, bl
jz	short loc_41DCB2
mov	ecx, esi
call	sub_41DCDA

loc_41DCB2:
mov	ecx, esi
call	sub_41DD4E
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_2C]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn
sub_41DC45 endp



; Attributes: bp-based frame

sub_41DCDA proc	near

Memory=	dword ptr -20h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_445E0C
call	__EH_prolog
sub	esp, 14h
push	esi
mov	esi, offset stru_45D920
push	edi
mov	edi, ecx
push	esi		; lpCriticalSection
mov	[ebp+var_14], esi
call	ds:EnterCriticalSection
mov	edx, edi
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], 1
mov	[ebp+var_10], 80000000h
call	sub_41DBFA
push	dword ptr [eax]	; lpSubKey
lea	ecx, [ebp+var_10]
mov	byte ptr [ebp+var_4], 2
call	sub_42D3B6
push	[ebp+Memory]	; Memory
call	sub_4284D8
and	[ebp+var_10], 0
and	byte ptr [ebp+var_4], 0
pop	ecx
lea	ecx, [ebp+var_10]
call	sub_42D390
push	esi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_41DCDA endp



; Attributes: bp-based frame

sub_41DD4E proc	near

Memory=	dword ptr -20h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_445E30
call	__EH_prolog
sub	esp, 14h
push	esi
mov	esi, offset stru_45D920
push	edi
mov	edi, ecx
push	esi		; lpCriticalSection
mov	[ebp+var_14], esi
call	ds:EnterCriticalSection
mov	edx, edi
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], 1
mov	[ebp+var_10], 80000000h
call	sub_41DDC2
push	dword ptr [eax]	; lpSubKey
lea	ecx, [ebp+var_10]
mov	byte ptr [ebp+var_4], 2
call	sub_42D3B6
push	[ebp+Memory]	; Memory
call	sub_4284D8
and	[ebp+var_10], 0
and	byte ptr [ebp+var_4], 0
pop	ecx
lea	ecx, [ebp+var_10]
call	sub_42D390
push	esi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_41DD4E endp



; Attributes: bp-based frame

sub_41DDC2 proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_445E44
call	__EH_prolog
sub	esp, 10h
and	[ebp+var_10], 0
push	esi
push	edi
mov	esi, ecx
push	off_45BEE0
mov	edi, edx
lea	ecx, [ebp+Memory]
call	sub_41E0DD
and	[ebp+var_4], 0
push	edi
mov	edx, eax
mov	ecx, esi
call	sub_41E22F
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_41DDC2 endp



; Attributes: bp-based frame

; int __stdcall	sub_41DE0E(int,	int, int, int, DWORD cbData)
sub_41DE0E proc	near

var_80=	dword ptr -80h
var_70=	byte ptr -70h
Memory=	dword ptr -50h
var_44=	dword ptr -44h
lpData=	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
hKey= dword ptr	-14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
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
cbData=	dword ptr  18h

mov	eax, offset loc_445EB8
call	__EH_prolog
sub	esp, 64h
push	ebx
push	esi
push	edi
mov	[ebp+var_28], edx
mov	edi, ecx
call	sub_41DCDA
mov	ecx, edi
call	sub_41DD4E
mov	eax, offset stru_45D920
push	eax		; lpCriticalSection
mov	[ebp+var_2C], eax
call	ds:EnterCriticalSection
xor	esi, esi
push	3
lea	ecx, [ebp+lpData]
mov	[ebp+var_4], esi
mov	[ebp+lpData], esi
mov	[ebp+var_34], esi
mov	[ebp+var_30], esi
call	sub_4034E3
push	edi
lea	ecx, [ebp+var_44]
mov	byte ptr [ebp+var_4], 1
call	sub_4128EF
cmp	[ebp+arg_8], esi
mov	byte ptr [ebp+var_4], 2
jge	short loc_41DE79
push	offset asc_45BF2C ; "*"
lea	ecx, [ebp+var_44]
call	sub_41E124

loc_41DE79:
lea	edx, [ebp+var_44]
lea	ecx, [ebp+Memory]
call	sub_41DDC2
push	eax
lea	ecx, [ebp+lpData]
mov	byte ptr [ebp+var_4], 3
call	sub_403244
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_44]	; Memory
call	sub_4284D8
pop	ecx
mov	[ebp+hKey], esi
pop	ecx
mov	edx, edi
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 4
call	sub_41DBFA
mov	eax, [eax]
push	esi		; int
mov	edi, 0F003Fh
push	esi		; dwDisposition
push	edi		; samDesired
push	esi		; dwOptions
push	esi		; lpClass
mov	ebx, 80000000h
push	eax		; lpSubKey
push	ebx		; hKey
lea	ecx, [ebp+hKey]
mov	byte ptr [ebp+var_4], 5
call	sub_42D30D
mov	byte ptr [ebp+var_4], 4
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
push	[ebp+lpData]	; lpData
lea	ecx, [ebp+hKey]
push	esi		; lpValueName
call	sub_42D4A3
cmp	[ebp+arg_C], esi
jz	short loc_41DF2E
mov	[ebp+var_20], esi
push	esi		; int
push	esi		; dwDisposition
push	edi		; samDesired
push	esi		; dwOptions
push	esi		; lpClass
lea	ecx, [ebp+var_20]
push	lpSubKey	; lpSubKey
mov	byte ptr [ebp+var_4], 6
push	[ebp+hKey]	; hKey
call	sub_42D30D
lea	ecx, [ebp+var_20]
push	[ebp+cbData]	; cbData
push	[ebp+arg_C]	; lpData
push	off_45BECC	; lpValueName
call	sub_42D5CE
lea	ecx, [ebp+var_20]
mov	byte ptr [ebp+var_4], 4
call	sub_42D390

loc_41DF2E:
lea	ecx, [ebp+hKey]
mov	byte ptr [ebp+var_4], 1
call	sub_42D390
mov	[ebp+var_10], esi
push	esi		; int
push	esi		; dwDisposition
push	edi		; samDesired
push	esi		; dwOptions
push	esi		; lpClass
lea	ecx, [ebp+var_10]
push	[ebp+lpData]	; lpSubKey
mov	byte ptr [ebp+var_4], 7
push	ebx		; hKey
call	sub_42D30D
mov	eax, [ebp+var_28]
lea	ecx, [ebp+var_10]
push	dword ptr [eax]	; lpData
push	esi		; lpValueName
call	sub_42D4CA
mov	[ebp+arg_C], esi
push	esi		; int
push	esi		; dwDisposition
push	edi		; samDesired
push	esi		; dwOptions
push	esi		; lpClass
lea	ecx, [ebp+arg_C]
push	off_45BED0	; lpSubKey
mov	byte ptr [ebp+var_4], 8
push	[ebp+var_10]	; hKey
call	sub_42D30D
lea	ecx, [ebp+var_44]
push	[ebp+arg_4]
call	sub_4030F2
cmp	[ebp+arg_8], esi
mov	byte ptr [ebp+var_4], 9
jge	short loc_41DF94
mov	[ebp+arg_8], esi

loc_41DF94:		; ","
push	offset asc_45BF28
lea	ecx, [ebp+var_44]
call	sub_403195
mov	ecx, [ebp+arg_8]
lea	edx, [ebp+var_70]
call	sub_427B8F
lea	eax, [ebp+var_70]
lea	ecx, [ebp+var_44]
push	eax
call	sub_403195
lea	ecx, [ebp+arg_C]
push	[ebp+var_44]	; lpData
push	esi		; lpValueName
call	sub_42D4CA
push	[ebp+var_44]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 7
lea	ecx, [ebp+arg_C]
call	sub_42D390
mov	[ebp+var_1C], esi
push	esi		; int
push	esi		; dwDisposition
push	edi		; samDesired
push	esi		; dwOptions
push	esi		; lpClass
lea	ecx, [ebp+var_1C]
push	off_45BED4	; lpSubKey
mov	byte ptr [ebp+var_4], 0Ah
push	[ebp+var_10]	; hKey
call	sub_42D30D
mov	ebx, offset pszPath
lea	ecx, [ebp+var_1C]
push	ebx		; lpData
push	esi		; lpValueName
call	sub_42D4A3
mov	[ebp+var_18], esi
push	esi		; int
push	esi		; dwDisposition
push	edi		; samDesired
push	esi		; dwOptions
push	esi		; lpClass
lea	ecx, [ebp+var_18]
push	off_45BED8	; lpSubKey
mov	byte ptr [ebp+var_4], 0Bh
push	[ebp+var_1C]	; hKey
call	sub_42D30D
lea	ecx, [ebp+var_18]
push	ebx		; lpData
push	esi		; lpValueName
call	sub_42D4A3
mov	[ebp+var_24], esi
push	esi		; int
push	esi		; dwDisposition
push	edi		; samDesired
push	esi		; dwOptions
push	esi		; lpClass
lea	ecx, [ebp+var_24]
push	off_45BEDC	; lpSubKey
mov	byte ptr [ebp+var_4], 0Ch
push	[ebp+var_18]	; hKey
call	sub_42D30D
mov	eax, [ebp+arg_0]
lea	ecx, [ebp+var_24]
push	dword ptr [eax]	; lpData
push	esi		; lpValueName
call	sub_42D4CA
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_42D390
lea	ecx, [ebp+var_18]
mov	byte ptr [ebp+var_4], 0Ah
call	sub_42D390
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 7
call	sub_42D390
mov	byte ptr [ebp+var_4], 1
lea	ecx, [ebp+var_10]
call	sub_42D390
push	[ebp+lpData]	; Memory
call	sub_4284D8
mov	[esp+80h+var_80], offset stru_45D920
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	14h
sub_41DE0E endp




sub_41E0AD proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
push	1
and	dword ptr [esi], 0
and	dword ptr [esi+4], 0
and	dword ptr [esi+8], 0
call	sub_4034E3
mov	eax, [esi]
mov	cl, [esp+4+arg_0]
mov	[eax], cl
mov	eax, [esi]
and	byte ptr [eax+1], 0
mov	dword ptr [esi+4], 1
mov	eax, esi
pop	esi
retn	4
sub_41E0AD endp




sub_41E0DD proc	near

arg_0= dword ptr  4

push	ebx
push	esi
push	edi
mov	edi, [esp+0Ch+arg_0]
mov	esi, ecx
xor	ebx, ebx
mov	[esi], ebx
mov	[esi+4], ebx
mov	[esi+8], ebx
cmp	[edi], bl
jz	short loc_41E0FB

loc_41E0F4:
inc	ebx
cmp	byte ptr [ebx+edi], 0
jnz	short loc_41E0F4

loc_41E0FB:
push	ebx
mov	ecx, esi
call	sub_4034E3
mov	eax, [esi]
mov	cl, [edi]
lea	edx, [edi+1]
mov	[eax], cl
inc	eax

loc_41E10D:
test	cl, cl
jz	short loc_41E119
mov	cl, [edx]
mov	[eax], cl
inc	eax
inc	edx
jmp	short loc_41E10D

loc_41E119:
mov	[esi+4], ebx
mov	eax, esi
pop	edi
pop	esi
pop	ebx
retn	4
sub_41E0DD endp




sub_41E124 proc	near

arg_0= dword ptr  4

push	ebx
push	esi
mov	esi, [esp+8+arg_0]
push	edi
mov	edi, ecx
xor	ebx, ebx
mov	eax, [edi]
mov	[edi+4], ebx
and	[eax], bl
cmp	[esi], bl
jz	short loc_41E141

loc_41E13A:
inc	ebx
cmp	byte ptr [ebx+esi], 0
jnz	short loc_41E13A

loc_41E141:
push	ebx
mov	ecx, edi
call	sub_4034E3
mov	eax, [edi]
mov	cl, [esi]
lea	edx, [esi+1]
mov	[eax], cl
inc	eax

loc_41E153:
test	cl, cl
jz	short loc_41E15F
mov	cl, [edx]
mov	[eax], cl
inc	eax
inc	edx
jmp	short loc_41E153

loc_41E15F:
mov	[edi+4], ebx
mov	eax, edi
pop	edi
pop	esi
pop	ebx
retn	4
sub_41E124 endp



; Attributes: bp-based frame

sub_41E16A proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	[ebp+arg_4]
and	[ebp+var_4], 0
push	0
push	[ebp+arg_0]
call	sub_41E186
mov	eax, [ebp+arg_0]
leave
retn	8
sub_41E16A endp



; Attributes: bp-based frame

sub_41E186 proc	near

Memory=	dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_445ECC
call	__EH_prolog
sub	esp, 10h
push	ebx
push	esi
mov	esi, [ebp+arg_8]
push	edi
mov	edi, [ebp+arg_4]
mov	ebx, ecx
xor	ecx, ecx
mov	eax, [ebx+4]
lea	edx, [edi+esi]
cmp	edx, eax
mov	[ebp+var_10], ecx
jle	short loc_41E1B1
mov	esi, eax
sub	esi, edi

loc_41E1B1:
cmp	edi, ecx
jnz	short loc_41E1C4
cmp	esi, eax
jnz	short loc_41E1C4
mov	ecx, [ebp+arg_0]
push	ebx
call	sub_4128EF
jmp	short loc_41E21B

loc_41E1C4:
mov	[ebp+Memory], ecx
mov	[ebp+var_18], ecx
mov	[ebp+var_14], ecx
push	3
lea	ecx, [ebp+Memory]
call	sub_4034E3
and	[ebp+var_4], 0
push	esi
lea	ecx, [ebp+Memory]
call	sub_4034E3
xor	eax, eax
test	esi, esi
jle	short loc_41E1FC

loc_41E1EA:
mov	ecx, [ebx]
mov	edx, [ebp+Memory]
add	ecx, eax
mov	cl, [ecx+edi]
mov	[eax+edx], cl
inc	eax
cmp	eax, esi
jl	short loc_41E1EA

loc_41E1FC:
mov	eax, [ebp+Memory]
mov	ecx, [ebp+arg_0]
and	byte ptr [eax+esi], 0
lea	eax, [ebp+Memory]
push	eax
mov	[ebp+var_18], esi
call	sub_4128EF
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_41E21B:
mov	ecx, [ebp+var_C]
mov	eax, [ebp+arg_0]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_41E186 endp



; Attributes: bp-based frame

sub_41E22F proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_445EE0
call	__EH_prolog
sub	esp, 10h
and	[ebp+var_10], 0
push	esi
mov	esi, ecx
push	edx
lea	ecx, [ebp+Memory]
call	sub_4128EF
push	[ebp+arg_0]
and	[ebp+var_4], 0
lea	ecx, [ebp+Memory]
call	sub_41E313
lea	eax, [ebp+Memory]
mov	ecx, esi
push	eax
call	sub_4128EF
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_41E22F endp



; Attributes: bp-based frame

sub_41E280 proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_445EF4
call	__EH_prolog
sub	esp, 10h
and	[ebp+var_10], 0
push	esi
mov	esi, ecx
push	edx
lea	ecx, [ebp+Memory]
call	sub_4128EF
push	[ebp+arg_0]
and	[ebp+var_4], 0
lea	ecx, [ebp+Memory]
call	sub_41E2D1
lea	eax, [ebp+Memory]
mov	ecx, esi
push	eax
call	sub_4128EF
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_41E280 endp




sub_41E2D1 proc	near

arg_0= dword ptr  4

push	ebx
push	esi
mov	esi, [esp+8+arg_0]
xor	ebx, ebx
push	edi
mov	edi, ecx
cmp	[esi], bl
jz	short loc_41E2E7

loc_41E2E0:
inc	ebx
cmp	byte ptr [ebx+esi], 0
jnz	short loc_41E2E0

loc_41E2E7:
push	ebx
mov	ecx, edi
call	sub_412941
mov	eax, [edi+4]
mov	cl, [esi]
add	eax, [edi]
lea	edx, [esi+1]
mov	[eax], cl
inc	eax

loc_41E2FC:
test	cl, cl
jz	short loc_41E308
mov	cl, [edx]
mov	[eax], cl
inc	eax
inc	edx
jmp	short loc_41E2FC

loc_41E308:
add	[edi+4], ebx
mov	eax, edi
pop	edi
pop	esi
pop	ebx
retn	4
sub_41E2D1 endp




sub_41E313 proc	near

arg_0= dword ptr  4

push	esi
push	edi
mov	edi, [esp+8+arg_0]
mov	esi, ecx
push	dword ptr [edi+4]
call	sub_412941
mov	eax, [esi+4]
mov	ecx, [edi]
add	eax, [esi]

loc_41E32A:
mov	dl, [ecx]
mov	[eax], dl
inc	eax
inc	ecx
test	dl, dl
jnz	short loc_41E32A
mov	eax, [edi+4]
pop	edi
add	[esi+4], eax
mov	eax, esi
pop	esi
retn	4
sub_41E313 endp



; Attributes: bp-based frame

sub_41E341 proc	near

var_B8=	byte ptr -0B8h
var_98=	dword ptr -98h
var_90=	dword ptr -90h
var_80=	dword ptr -80h
var_70=	dword ptr -70h
var_40=	dword ptr -40h
var_3C=	byte ptr -3Ch
var_30=	dword ptr -30h
Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_445F63
call	__EH_prolog
sub	esp, 0ACh
push	ebx
push	esi
mov	esi, ecx
call	sub_428327
xor	ebx, ebx
lea	ecx, [ebp+var_18]
push	3
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_403396
lea	ecx, [ebp+var_18]
mov	[ebp+var_4], ebx
call	sub_41D79C
lea	ecx, [ebp+var_80]
call	sub_403079
lea	ecx, [ebp+var_70]
mov	byte ptr [ebp+var_4], 1
call	sub_403079
push	offset a7Zip_dll ; "7-zip.dll"
lea	edx, [ebp+var_18]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 2
call	sub_409948
push	eax
lea	ecx, [ebp+var_80]
mov	byte ptr [ebp+var_4], 3
call	sub_40312C
mov	byte ptr [ebp+var_4], 2
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
xor	dl, dl
lea	ecx, [ebp+var_80]
call	sub_41E501
test	al, al
jz	short loc_41E3D5
lea	eax, [ebp+var_80]
mov	ecx, esi
push	eax
call	sub_41E75C

loc_41E3D5:		; Memory
push	[ebp+var_70]
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
push	[ebp+var_80]	; Memory
call	sub_4284D8
pop	ecx
lea	edx, [ebp+var_18]
pop	ecx
push	offset aPlugins	; "Plugins\\"
lea	ecx, [ebp+var_30]
call	sub_409948
push	offset asc_45B41C ; "*"
lea	edx, [ebp+var_30]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 4
call	sub_409948
or	[ebp+var_40], 0FFFFFFFFh
push	eax
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 6
call	sub_4030F2
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 8
call	sub_4284D8
pop	ecx
lea	ecx, [ebp+var_90]
call	sub_403079
mov	byte ptr [ebp+var_4], 9

loc_41E43B:
lea	eax, [ebp+var_B8]
lea	ecx, [ebp+var_40]
push	eax
call	sub_42B72E
test	al, al
jz	short loc_41E4C9
mov	eax, [ebp+var_98]
shr	eax, 4
test	al, 1
jnz	short loc_41E43B
lea	ecx, [ebp+var_80]
call	sub_403079
lea	ecx, [ebp+var_70]
mov	byte ptr [ebp+var_4], 0Ah
call	sub_403079
lea	eax, [ebp+var_90]
lea	edx, [ebp+var_30]
push	eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_40356A
push	eax
lea	ecx, [ebp+var_80]
mov	byte ptr [ebp+var_4], 0Ch
call	sub_40312C
mov	byte ptr [ebp+var_4], 0Bh
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	dl, 1
lea	ecx, [ebp+var_80]
call	sub_41E501
test	al, al
jz	short loc_41E4B8
lea	eax, [ebp+var_80]
mov	ecx, esi
push	eax
call	sub_41E75C

loc_41E4B8:
lea	ecx, [ebp+var_80]
mov	byte ptr [ebp+var_4], 9
call	sub_406E56
jmp	loc_41E43B

loc_41E4C9:		; Memory
push	[ebp+var_90]
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 4
lea	ecx, [ebp+var_40]
call	sub_4078D8
push	[ebp+var_30]	; Memory
call	sub_4284D8
push	[ebp+var_18]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx
pop	esi
mov	ecx, [ebp+var_C]
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_41E341 endp



; Attributes: bp-based frame

sub_41E501 proc	near

pvarg= VARIANTARG ptr -28h
var_18=	dword ptr -18h
hModule= dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_445F88
call	__EH_prolog
sub	esp, 1Ch
push	ebx
push	edi
test	dl, dl
mov	ebx, ecx
jz	short loc_41E550
xor	edi, edi
mov	[ebp+var_10], edi
mov	eax, [ebx]
push	2		; dwFlags
push	eax		; lpLibFileName
lea	ecx, [ebp+var_10]
mov	[ebp+var_4], edi
call	sub_4299F1
test	al, al
jnz	short loc_41E542
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_10]
call	sub_429929
xor	al, al
jmp	loc_41E679

loc_41E542:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_10]
call	sub_429929
jmp	short loc_41E552

loc_41E550:
xor	edi, edi

loc_41E552:
push	esi
mov	[ebp+hModule], edi
push	dword ptr [ebx]	; lpLibFileName
lea	ecx, [ebp+hModule]
mov	[ebp+var_4], 1
call	sub_429A47
test	al, al
jnz	short loc_41E572

loc_41E56B:
xor	bl, bl
jmp	loc_41E66A

loc_41E572:		; "GetPluginProperty"
push	offset aGetpluginprope
push	[ebp+hModule]	; hModule
call	ds:GetProcAddress
mov	esi, eax
cmp	esi, edi
mov	[ebp+var_18], esi
jz	short loc_41E56B
mov	word ptr [ebp+pvarg.anonymous_0], di
mov	word ptr [ebp+pvarg.anonymous_0+2], di
lea	eax, [ebp+pvarg]
mov	byte ptr [ebp+var_4], 2
push	eax
push	edi
call	esi
test	eax, eax
jnz	loc_41E65C
cmp	word ptr [ebp+pvarg.anonymous_0], 8
jnz	loc_41E65C
push	dword ptr [ebp+pvarg.anonymous_0+8]
lea	ecx, [ebx+10h]
call	sub_404722
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
lea	eax, [ebp+pvarg]
push	eax
push	2
call	esi
test	eax, eax
jnz	loc_41E65C
cmp	word ptr [ebp+pvarg.anonymous_0], di
jnz	short loc_41E5DD
and	[ebx+3Ch], al
jmp	short loc_41E5F4

loc_41E5DD:
cmp	word ptr [ebp+pvarg.anonymous_0], 8
jnz	short loc_41E65C
mov	esi, dword ptr [ebp+pvarg.anonymous_0+8]
lea	edi, [ebx+1Ch]
mov	byte ptr [ebx+3Ch], 1
movsd
movsd
movsd
movsd
xor	edi, edi

loc_41E5F4:		; pvarg
lea	ecx, [ebp+pvarg]
call	sub_42CDE1
lea	eax, [ebp+pvarg]
push	eax
push	3
call	[ebp+var_18]
test	eax, eax
jnz	short loc_41E65C
cmp	word ptr [ebp+pvarg.anonymous_0], di
jnz	short loc_41E614
and	[ebx+3Dh], al
jmp	short loc_41E62B

loc_41E614:
cmp	word ptr [ebp+pvarg.anonymous_0], 8
jnz	short loc_41E65C
mov	esi, dword ptr [ebp+pvarg.anonymous_0+8]
lea	edi, [ebx+2Ch]
mov	byte ptr [ebx+3Dh], 1
movsd
movsd
movsd
movsd
xor	edi, edi

loc_41E62B:		; pvarg
lea	ecx, [ebp+pvarg]
call	sub_42CDE1
lea	eax, [ebp+pvarg]
push	eax
push	1
call	[ebp+var_18]
test	eax, eax
jnz	short loc_41E65C
cmp	word ptr [ebp+pvarg.anonymous_0], di
jnz	short loc_41E64B
mov	[ebx+0Ch], edi
jmp	short loc_41E658

loc_41E64B:
cmp	word ptr [ebp+pvarg.anonymous_0], 13h
jnz	short loc_41E65C
mov	eax, dword ptr [ebp+pvarg.anonymous_0+8]
mov	[ebx+0Ch], eax

loc_41E658:
mov	bl, 1
jmp	short loc_41E65E

loc_41E65C:
xor	bl, bl

loc_41E65E:		; pvarg
lea	ecx, [ebp+pvarg]
mov	byte ptr [ebp+var_4], 1
call	sub_42CDE1

loc_41E66A:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+hModule]
call	sub_429929
mov	al, bl
pop	esi

loc_41E679:
mov	ecx, [ebp+var_C]
pop	edi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_41E501 endp



; Attributes: bp-based frame

sub_41E687 proc	near

var_4C=	dword ptr -4Ch
var_40=	dword ptr -40h
Memory=	dword ptr -3Ch
var_10=	byte ptr -10h
var_F= byte ptr	-0Fh
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_445F9C
call	__EH_prolog
sub	esp, 40h
push	esi
push	edi
mov	esi, ecx
call	sub_41E341
mov	eax, [esi+8]
xor	edi, edi
test	eax, eax
jle	short loc_41E6C4

loc_41E6A6:
mov	eax, [esi+0Ch]
mov	eax, [eax+edi*4]
cmp	dword ptr [eax+0Ch], 0
jz	short loc_41E6BE
mov	eax, [esi]
push	1
push	edi
mov	ecx, esi
call	dword ptr [eax+4]
jmp	short loc_41E6BF

loc_41E6BE:
inc	edi

loc_41E6BF:
cmp	edi, [esi+8]
jl	short loc_41E6A6

loc_41E6C4:
lea	ecx, [ebp+var_4C]
call	sub_41E714
and	[ebp+var_4], 0
and	[ebp+var_40], 0
push	offset a7Zip	; "7-Zip"
lea	ecx, [ebp+Memory]
call	sub_404722
and	[ebp+var_F], 0
lea	eax, [ebp+var_4C]
push	eax
mov	ecx, esi
mov	[ebp+var_10], 1
call	sub_41E75C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_4C]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_41E687 endp



; Attributes: bp-based frame

sub_41E714 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_445FB0
call	__EH_prolog
push	ecx
push	esi
push	edi
mov	esi, ecx
xor	edi, edi
push	3
mov	[ebp+var_10], esi
mov	[esi], edi
mov	[esi+4], edi
mov	[esi+8], edi
call	sub_403396
lea	ecx, [esi+10h]
push	3
mov	[ebp+var_4], edi
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_41E714 endp



; Attributes: bp-based frame

sub_41E75C proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset unknown_libname_25 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	40h		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_10], ecx
xor	eax, eax
cmp	ecx, eax
mov	[ebp+var_4], eax
jz	short loc_41E788
push	[ebp+arg_0]
call	sub_41E7A3

loc_41E788:
or	[ebp+var_4], 0FFFFFFFFh
push	eax
mov	ecx, esi
call	sub_429907
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_41E75C endp



; Attributes: bp-based frame

sub_41E7A3 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_445FD8
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	esi, [ebp+arg_0]
push	edi
mov	ebx, ecx
push	esi
mov	[ebp+var_10], ebx
call	sub_4030F2
mov	eax, [esi+0Ch]
and	[ebp+var_4], 0
mov	[ebx+0Ch], eax
lea	eax, [esi+10h]
push	eax
lea	ecx, [ebx+10h]
call	sub_4030F2
add	esi, 1Ch
lea	edi, [ebx+1Ch]
movsd
movsd
mov	eax, [ebp+arg_0]
movsd
movsd
lea	esi, [eax+2Ch]
lea	edi, [ebx+2Ch]
movsd
movsd
movsd
movsd
mov	cl, [eax+3Ch]
pop	edi
mov	[ebx+3Ch], cl
mov	al, [eax+3Dh]
mov	ecx, [ebp+var_C]
mov	[ebx+3Dh], al
mov	eax, ebx
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_41E7A3 endp




sub_41E80B proc	near
push	dword ptr [ecx]	; lpData
mov	edx, off_45BF60
mov	ecx, off_45BF58
call	sub_41E81F
retn
sub_41E80B endp



; Attributes: bp-based frame

; int __stdcall	sub_41E81F(wchar_t *lpData)
sub_41E81F proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
lpData=	dword ptr  8

mov	eax, offset loc_445FEC
call	__EH_prolog
push	ecx
xor	eax, eax
push	esi
mov	esi, edx
mov	[ebp+var_10], eax
push	eax		; int
push	eax		; dwDisposition
push	0F003Fh		; samDesired
push	eax		; dwOptions
push	eax		; lpClass
push	ecx		; lpSubKey
push	80000001h	; hKey
lea	ecx, [ebp+var_10]
mov	[ebp+var_4], eax
call	sub_42D30D
lea	ecx, [ebp+var_10]
push	[ebp+lpData]	; lpData
push	esi		; lpValueName
call	sub_42D4CA
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_10]
call	sub_42D390
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_41E81F endp




; int __fastcall sub_41E873(DWORD cbData)
sub_41E873 proc	near
mov	edx, off_45BF60
push	ecx		; cbData
mov	ecx, off_45BF58
call	sub_41E886
retn
sub_41E873 endp



; Attributes: bp-based frame

; int __stdcall	sub_41E886(DWORD cbData)
sub_41E886 proc	near

var_C= dword ptr -0Ch
var_4= dword ptr -4
cbData=	dword ptr  8

mov	eax, offset loc_446000
call	__EH_prolog
xor	eax, eax
push	esi
mov	esi, [ebp+cbData]
push	edi
mov	edi, edx
mov	edx, [esi]
mov	[esi+4], eax
mov	[edx], ax
mov	[ebp+cbData], eax
push	20019h		; samDesired
push	ecx		; lpSubKey
push	80000001h	; hKey
lea	ecx, [ebp+cbData]
mov	[ebp+var_4], eax
call	sub_42D35B
test	eax, eax
jnz	short loc_41E8C8
push	esi		; cbData
push	edi		; lpValueName
lea	ecx, [ebp+cbData]
call	sub_42D70F

loc_41E8C8:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+cbData]
call	sub_42D390
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_41E886 endp




sub_41E8E4 proc	near
push	dword ptr [ecx]	; lpData
mov	edx, off_45BF64
mov	ecx, off_45BF5C
call	sub_41E81F
retn
sub_41E8E4 endp




; int __fastcall sub_41E8F8(DWORD cbData)
sub_41E8F8 proc	near
mov	edx, off_45BF64
push	ecx		; cbData
mov	ecx, off_45BF5C
call	sub_41E886
retn
sub_41E8F8 endp




sub_41E90B proc	near
push	dword ptr [ecx]	; lpData
mov	edx, off_45BF68
mov	ecx, off_45BF5C
call	sub_41E81F
retn
sub_41E90B endp




; int __fastcall sub_41E91F(DWORD cbData)
sub_41E91F proc	near
mov	edx, off_45BF68
push	ecx		; cbData
mov	ecx, off_45BF5C
call	sub_41E886
retn
sub_41E91F endp




sub_41E932 proc	near
mov	dl, cl
mov	ecx, off_45BF6C
jmp	$+5
sub_41E932 endp



; Attributes: bp-based frame

sub_41E93F proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_446014
call	__EH_prolog
push	ecx
push	esi
xor	eax, eax
push	edi
mov	esi, edx
mov	edi, ecx
mov	[ebp+var_10], eax
push	eax		; int
push	eax		; dwDisposition
push	0F003Fh		; samDesired
push	eax		; dwOptions
push	eax		; lpClass
lea	ecx, [ebp+var_10]
push	off_45BF5C	; lpSubKey
mov	[ebp+var_4], eax
push	80000001h	; hKey
call	sub_42D30D
lea	ecx, [ebp+var_10]
push	esi		; char
push	edi		; lpValueName
call	sub_42D48D
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_10]
call	sub_42D390
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_41E93F endp




sub_41E998 proc	near
mov	ecx, off_45BF6C
xor	dl, dl
jmp	$+5
sub_41E998 endp



; Attributes: bp-based frame

sub_41E9A5 proc	near

var_14=	dword ptr -14h
Data= byte ptr -0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_446028
call	__EH_prolog
push	ecx
push	ecx
and	[ebp+var_14], 0
push	ebx
push	esi
mov	bl, dl
mov	esi, ecx
and	[ebp+var_4], 0
push	20019h		; samDesired
push	off_45BF5C	; lpSubKey
lea	ecx, [ebp+var_14]
push	80000001h	; hKey
call	sub_42D35B
test	eax, eax
jnz	short loc_41E9EF
lea	eax, [ebp+Data]
lea	ecx, [ebp+var_14]
push	eax		; Data
push	esi		; lpValueName
call	sub_42D615
test	eax, eax
jnz	short loc_41E9EF
mov	bl, [ebp+Data]

loc_41E9EF:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_14]
call	sub_42D390
mov	ecx, [ebp+var_C]
mov	al, bl
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_41E9A5 endp




sub_41EA0B proc	near
mov	dl, cl
mov	ecx, off_45BF70
jmp	sub_41E93F
sub_41EA0B endp




sub_41EA18 proc	near
mov	ecx, off_45BF70
xor	dl, dl
jmp	sub_41E9A5
sub_41EA18 endp




sub_41EA25 proc	near
mov	dl, cl
mov	ecx, off_45BF74
jmp	sub_41E93F
sub_41EA25 endp




sub_41EA32 proc	near
mov	ecx, off_45BF74
xor	dl, dl
jmp	sub_41E9A5
sub_41EA32 endp




sub_41EA3F proc	near
mov	dl, cl
mov	ecx, off_45BF78
jmp	sub_41E93F
sub_41EA3F endp




sub_41EA4C proc	near
mov	ecx, off_45BF78
xor	dl, dl
jmp	sub_41E9A5
sub_41EA4C endp




sub_41EA59 proc	near
mov	dl, cl
mov	ecx, off_45BF7C
jmp	sub_41E93F
sub_41EA59 endp




sub_41EA66 proc	near
mov	ecx, off_45BF7C
xor	dl, dl
jmp	sub_41E9A5
sub_41EA66 endp




sub_41EA73 proc	near
mov	dl, cl
mov	ecx, off_45BF80
jmp	sub_41E93F
sub_41EA73 endp




sub_41EA80 proc	near
mov	ecx, off_45BF80
xor	dl, dl
jmp	sub_41E9A5
sub_41EA80 endp




sub_41EA8D proc	near
mov	dl, cl
mov	ecx, off_45BF88
jmp	sub_41E93F
sub_41EA8D endp




sub_41EA9A proc	near
mov	ecx, off_45BF88
xor	dl, dl
jmp	sub_41E9A5
sub_41EA9A endp




sub_41EAA7 proc	near
mov	dl, cl
mov	ecx, off_45BF84
jmp	$+5

loc_41EAB4:
mov	eax, offset loc_44603C
call	__EH_prolog
push	ecx
push	esi
xor	eax, eax
push	edi
mov	esi, edx
mov	edi, ecx
mov	[ebp-10h], eax
push	eax		; int
push	eax		; dwDisposition
push	0F003Fh		; samDesired
push	eax		; dwOptions
push	eax		; lpClass
lea	ecx, [ebp-10h]
push	off_45BF58	; lpSubKey
mov	[ebp-4], eax
push	80000001h	; hKey
call	sub_42D30D
lea	ecx, [ebp-10h]
push	esi		; char
push	edi		; lpValueName
call	sub_42D48D
or	dword ptr [ebp-4], 0FFFFFFFFh
lea	ecx, [ebp-10h]
call	sub_42D390
mov	ecx, [ebp-0Ch]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_41EAA7 endp




sub_41EB0D proc	near
mov	ecx, off_45BF84
xor	dl, dl
jmp	$+5

loc_41EB1A:
mov	eax, offset loc_446050
call	__EH_prolog
push	ecx
push	ecx
and	dword ptr [ebp-14h], 0
push	ebx
push	esi
mov	bl, dl
mov	esi, ecx
and	dword ptr [ebp-4], 0
push	20019h		; samDesired
push	off_45BF58	; lpSubKey
lea	ecx, [ebp-14h]
push	80000001h	; hKey
call	sub_42D35B
test	eax, eax
jnz	short loc_41EB64
lea	eax, [ebp-0Dh]
lea	ecx, [ebp-14h]
push	eax		; Data
push	esi		; lpValueName
call	sub_42D615
test	eax, eax
jnz	short loc_41EB64
mov	bl, [ebp-0Dh]

loc_41EB64:
or	dword ptr [ebp-4], 0FFFFFFFFh
lea	ecx, [ebp-14h]
call	sub_42D390
mov	ecx, [ebp-0Ch]
mov	al, bl
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_41EB0D endp



; Attributes: bp-based frame

sub_41EB80 proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_446064
call	__EH_prolog
sub	esp, 0Ch
push	ebx
mov	bl, dl
mov	edx, ecx
lea	ecx, [ebp+Memory]
call	sub_41EBBD
mov	ecx, [eax]
and	[ebp+var_4], 0
mov	dl, bl
call	sub_41E93F
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
pop	ebx
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn
sub_41EB80 endp



; Attributes: bp-based frame

sub_41EBBD proc	near

var_2C=	byte ptr -2Ch
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_446078
call	__EH_prolog
sub	esp, 20h
and	[ebp+var_10], 0
push	esi
mov	eax, edx
mov	esi, ecx
lea	edx, [ebp+var_2C]
mov	ecx, eax
call	sub_427B7B
lea	ecx, [ebp+Memory]
push	off_45BF8C
call	sub_41E0DD
and	[ebp+var_4], 0
lea	ecx, [ebp+var_2C]
push	ecx
mov	edx, eax
mov	ecx, esi
call	sub_41E280
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_41EBBD endp



; Attributes: bp-based frame

sub_41EC14 proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44608C
call	__EH_prolog
sub	esp, 0Ch
mov	edx, ecx
push	ebx
lea	ecx, [ebp+Memory]
call	sub_41EBBD
mov	eax, [eax]
and	[ebp+var_4], 0
xor	dl, dl
mov	ecx, eax
call	sub_41E9A5
mov	bl, al
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	al, bl
mov	ecx, [ebp+var_C]
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_41EC14 endp




sub_41EC55 proc	near

var_4= dword ptr -4

push	ecx
and	[esp+4+var_4], 0
push	esi
push	edi
mov	edi, ecx
push	11h
mov	esi, edx
pop	ecx
call	sub_41F94C
mov	edx, 8FCh
mov	ecx, edi
push	3020300h
mov	[esi], eax
call	sub_40B168
mov	eax, edi
pop	edi
pop	esi
pop	ecx
retn
sub_41EC55 endp




sub_41EC82 proc	near

var_4= dword ptr -4

push	ecx
and	[esp+4+var_4], 0
push	esi
push	edi
mov	edi, ecx
push	12h
mov	esi, edx
pop	ecx
call	sub_41F94C
mov	edx, 8FDh
mov	ecx, edi
push	3020301h
mov	[esi], eax
call	sub_40B168
mov	eax, edi
pop	edi
pop	esi
pop	ecx
retn
sub_41EC82 endp




sub_41ECAF proc	near

var_4= dword ptr -4

push	ecx
and	[esp+4+var_4], 0
push	esi
push	edi
mov	edi, ecx
push	5
mov	esi, edx
pop	ecx
call	sub_41F94C
mov	edx, 8FEh
mov	ecx, edi
push	3020302h
mov	[esi], eax
call	sub_40B168
mov	eax, edi
pop	edi
pop	esi
pop	ecx
retn
sub_41ECAF endp



; Attributes: bp-based frame

sub_41ECDC proc	near

var_24=	dword ptr -24h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4460B0
call	__EH_prolog
sub	esp, 18h
push	esi
mov	esi, ecx
lea	ecx, [ebp+Memory]
lea	edx, [esi+3Ch]
call	sub_41EC55
and	[ebp+var_4], 0
push	eax
lea	ecx, [esi+0Ch]
call	sub_40312C
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx
lea	edx, [esi+40h]
lea	ecx, [ebp+Memory]
call	sub_41ECAF
push	eax
lea	ecx, [esi+18h]
mov	[ebp+var_4], 1
call	sub_40312C
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx
lea	edx, [esi+44h]
lea	ecx, [ebp+var_24]
call	sub_41EC82
push	eax
lea	ecx, [esi+24h]
mov	[ebp+var_4], 2
call	sub_40312C
push	[ebp+var_24]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx
push	off_45C05C
lea	ecx, [esi+30h]	; csidl
call	sub_404722
push	11h
pop	ecx
call	sub_41F94C
mov	ecx, [ebp+var_C]
mov	[esi+48h], eax
pop	esi
mov	large fs:0, ecx
leave
retn
sub_41ECDC endp




sub_41ED87 proc	near

arg_0= dword ptr  4

mov	ecx, [esp+arg_0]
call	sub_41ECDC
xor	eax, eax
retn	4
sub_41ED87 endp




sub_41ED95 proc	near

arg_4= dword ptr  8

mov	eax, [esp+arg_4]
mov	dword ptr [eax], 4
xor	eax, eax
retn	8
sub_41ED95 endp



; Attributes: bp-based frame

sub_41EDA4 proc	near

pvarg= VARIANTARG ptr -1Ch
var_C= dword ptr -0Ch
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

mov	eax, offset loc_4460C4
call	__EH_prolog
sub	esp, 10h
xor	eax, eax
mov	word ptr [ebp+pvarg.anonymous_0], ax
mov	word ptr [ebp+pvarg.anonymous_0+2], ax
mov	[ebp+var_4], eax
mov	eax, [ebp+arg_8]
sub	eax, 4
jz	short loc_41EDD6
dec	eax
dec	eax
jnz	short loc_41EDEB
push	1
lea	ecx, [ebp+pvarg]
call	sub_42CD4D
jmp	short loc_41EDEB

loc_41EDD6:
mov	eax, [ebp+arg_4]
mov	ecx, [ebp+arg_0]
lea	eax, [eax+eax*2+3]
push	dword ptr [ecx+eax*4] ;	psz
lea	ecx, [ebp+pvarg]
call	sub_42CC9E

loc_41EDEB:		; pvarg
push	[ebp+arg_C]
lea	ecx, [ebp+pvarg] ; Src
call	sub_42CE85
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
mov	ecx, [ebp+var_C]
xor	eax, eax
mov	large fs:0, ecx
leave
retn	10h
sub_41EDA4 endp



; Attributes: bp-based frame

sub_41EE12 proc	near

var_34C= byte ptr -34Ch
var_140= byte ptr -140h
Memory=	dword ptr -38h
var_2C=	dword ptr -2Ch
var_28=	dword ptr -28h
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_4= dword ptr -4

mov	eax, offset loc_4460E8
call	__EH_prolog
sub	esp, 340h
push	ebx
push	esi
mov	[ebp+var_1C], ecx
push	edi
xor	ebx, ebx
push	3
lea	ecx, [ebp+var_18]
mov	[ebp+var_2C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_403396
mov	esi, ds:GetModuleHandleA
push	offset aShgetspecialfo ; "SHGetSpecialFolderPathW"
push	offset aShell32_dll_0 ;	"shell32.dll"
mov	[ebp+var_4], ebx
call	esi ; GetModuleHandleA
mov	edi, ds:GetProcAddress
push	eax		; hModule
call	edi ; GetProcAddress
cmp	eax, ebx
jz	short loc_41EE84
push	ebx
lea	ecx, [ebp+var_34C]
push	5
push	ecx
push	ebx
call	eax
test	eax, eax
jz	short loc_41EE84
lea	eax, [ebp+var_34C]
lea	ecx, [ebp+var_18]
push	eax
call	sub_404722
jmp	short loc_41EEE8

loc_41EE84:		; "SHGetSpecialFolderPathA"
push	offset aShgetspecial_0
push	offset aShell32_dll_0 ;	"shell32.dll"
call	esi ; GetModuleHandleA
push	eax		; hModule
call	edi ; GetProcAddress
cmp	eax, ebx
jz	short loc_41EEE8
push	ebx
lea	ecx, [ebp+var_140]
push	5
push	ecx
push	ebx
call	eax
test	eax, eax
jz	short loc_41EEE8
lea	eax, [ebp+var_140]
lea	ecx, [ebp+var_28]
push	eax
call	sub_41E0DD
lea	edx, [ebp+var_28]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_41242C
push	eax
lea	ecx, [ebp+var_18]
mov	byte ptr [ebp+var_4], 2
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_28]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx
pop	ecx

loc_41EEE8:
mov	eax, [ebp+var_14]
pop	edi
pop	esi
cmp	eax, ebx
pop	ebx
jle	short loc_41EF07
mov	ecx, [ebp+var_18]
cmp	word ptr [ecx+eax*2-2],	5Ch
jz	short loc_41EF07
push	5Ch
lea	ecx, [ebp+var_18]
call	sub_40316A

loc_41EF07:
mov	ecx, [ebp+var_1C]
lea	eax, [ebp+var_18]
push	eax
call	sub_4030F2
push	[ebp+var_18]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_1C]
pop	ecx
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn
sub_41EE12 endp	; sp-analysis failed



; Attributes: bp-based frame

sub_41EF2B proc	near

Memory=	dword ptr -1Ch
var_18=	dword ptr -18h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_44612A
call	__EH_prolog
sub	esp, 10h
mov	eax, [ebp+arg_8]
push	ebx
xor	ebx, ebx
push	esi
push	edi
mov	[eax], ebx
mov	[ebp+var_10], ebx
mov	edi, [ebp+arg_4]
mov	[ebp+var_4], ebx
cmp	edi, ebx
jz	loc_41F03E
cmp	edi, 3
jz	loc_41F03E
cmp	edi, 2
jnz	short loc_41EFB9
push	78h		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+arg_4], ecx
cmp	ecx, ebx
mov	byte ptr [ebp+var_4], 2
jz	short loc_41EF7F
call	sub_4088D8
mov	esi, eax
jmp	short loc_41EF81

loc_41EF7F:
xor	esi, esi

loc_41EF81:
push	esi
lea	ecx, [ebp+var_10]
mov	byte ptr [ebp+var_4], bl
call	sub_43D0DB
mov	eax, [ebp+arg_0]
push	5Ch
lea	ecx, [ebp+Memory]
lea	edx, [eax+24h]
call	sub_409999
push	eax
push	ebx
push	ebx
mov	ecx, esi
mov	byte ptr [ebp+var_4], 3
call	sub_427372
push	[ebp+Memory]	; Memory

loc_41EFAE:
call	sub_4284D8
pop	ecx
jmp	loc_41F073

loc_41EFB9:
cmp	edi, 1
jnz	short loc_41F037
lea	ecx, [ebp+Memory]
call	sub_41EE12
cmp	[ebp+var_18], ebx
mov	byte ptr [ebp+var_4], 4
jz	short loc_41F02F
push	0C8h		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+arg_4], ecx
cmp	ecx, ebx
mov	byte ptr [ebp+var_4], 5
jz	short loc_41EFF0
call	sub_4081FF
mov	esi, eax
jmp	short loc_41EFF2

loc_41EFF0:
xor	esi, esi

loc_41EFF2:
push	esi
lea	ecx, [ebp+var_10]
mov	byte ptr [ebp+var_4], 4
call	sub_43D0DB
lea	eax, [ebp+Memory]
push	ebx
push	eax
mov	ecx, esi
call	sub_407611
mov	esi, eax
cmp	esi, ebx
jz	short loc_41F02F
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_10]
or	[ebp+var_4], 0FFFFFFFFh
cmp	eax, ebx
pop	ecx
jz	short loc_41F02B
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_41F02B:
mov	eax, esi
jmp	short loc_41F07D

loc_41F02F:
push	[ebp+Memory]
jmp	loc_41EFAE

loc_41F037:
mov	eax, 80070057h
jmp	short loc_41F07D

loc_41F03E:		; Size
push	28h
call	sub_4284B1
pop	ecx
mov	[ebp+arg_4], eax
cmp	eax, ebx
mov	byte ptr [ebp+var_4], 1
jz	short loc_41F05C
mov	ecx, eax
call	sub_408A5B
mov	esi, eax
jmp	short loc_41F05E

loc_41F05C:
xor	esi, esi

loc_41F05E:
push	esi
lea	ecx, [ebp+var_10]
mov	byte ptr [ebp+var_4], bl
call	sub_43D0DB
cmp	edi, 3
setz	al
mov	[esi+24h], al

loc_41F073:
mov	ecx, [ebp+arg_8]
mov	eax, [ebp+var_10]
mov	[ecx], eax
xor	eax, eax

loc_41F07D:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_41EF2B endp



; Attributes: bp-based frame

sub_41F08E proc	near

var_34=	dword ptr -34h
Memory=	dword ptr -28h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_44619A
call	__EH_prolog
sub	esp, 28h
push	ebx
mov	ebx, [ebp+arg_8]
push	esi
push	edi
push	[ebp+arg_4]
xor	edi, edi
lea	ecx, [ebp+var_1C]
mov	[ebx], edi
call	sub_403091
lea	ecx, [ebp+var_1C]
mov	[ebp+var_4], edi
call	sub_406F3F
lea	ecx, [ebp+var_1C]
call	sub_406F04
cmp	[ebp+var_18], edi
jnz	short loc_41F109
push	4Ch		; Size
call	sub_4284B1
pop	ecx
mov	[ebp+arg_8], eax
cmp	eax, edi
mov	byte ptr [ebp+var_4], 1
jz	short loc_41F0E6
mov	ecx, eax
call	sub_4129FF
mov	esi, eax
jmp	short loc_41F0E8

loc_41F0E6:
xor	esi, esi

loc_41F0E8:
and	byte ptr [ebp+var_4], 0
cmp	esi, edi
mov	[ebp+arg_8], esi
jz	short loc_41F0F9
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]

loc_41F0F9:
mov	ecx, esi
mov	byte ptr [ebp+var_4], 2
call	sub_41ECDC
jmp	loc_41F261

loc_41F109:
mov	esi, [ebp+arg_0]
mov	[ebp+arg_4], edi
lea	edi, [esi+0Ch]

loc_41F112:
mov	edx, edi
lea	ecx, [ebp+var_1C]
call	sub_41F3B8
test	al, al
jnz	short loc_41F180
inc	[ebp+arg_4]
add	edi, 0Ch
cmp	[ebp+arg_4], 4
jl	short loc_41F112
push	offset aMyDocuments ; "My Documents"
lea	ecx, [ebp+var_34]
call	sub_403091
lea	edx, [ebp+var_34]
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 3
call	sub_41F3B8
test	al, al
jnz	short loc_41F18B
push	offset aDocuments ; "Documents"
lea	ecx, [ebp+Memory]
call	sub_403091
lea	edx, [ebp+Memory]
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 4
call	sub_41F3B8
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+arg_4+3],	al
call	sub_4284D8
cmp	byte ptr [ebp+arg_4+3],	0
pop	ecx
jnz	short loc_41F18B
and	byte ptr [ebp+arg_4+3],	0
jmp	short loc_41F18F

loc_41F180:
mov	eax, [esi]
push	ebx
push	[ebp+arg_4]
jmp	loc_41F219

loc_41F18B:
mov	byte ptr [ebp+arg_4+3],	1

loc_41F18F:		; Memory
push	[ebp+var_34]
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
cmp	byte ptr [ebp+arg_4+3],	0
pop	ecx
jz	short loc_41F1A9
mov	eax, [esi]
push	ebx
push	1
jmp	short loc_41F219

loc_41F1A9:		; "My Computer"
push	offset aMyComputer
lea	ecx, [ebp+Memory]
call	sub_403091
lea	edx, [ebp+Memory]
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 5
call	sub_41F3B8
test	al, al
jnz	short loc_41F1FD
push	offset aComputer ; "Computer"
lea	ecx, [ebp+var_34]
call	sub_403091
lea	edx, [ebp+var_34]
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 6
call	sub_41F3B8
push	[ebp+var_34]	; Memory
mov	byte ptr [ebp+arg_4+3],	al
call	sub_4284D8
cmp	byte ptr [ebp+arg_4+3],	0
pop	ecx
jnz	short loc_41F1FD
and	byte ptr [ebp+arg_4+3],	0
jmp	short loc_41F201

loc_41F1FD:
mov	byte ptr [ebp+arg_4+3],	1

loc_41F201:		; Memory
push	[ebp+Memory]
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
cmp	byte ptr [ebp+arg_4+3],	0
pop	ecx
jz	short loc_41F224
mov	eax, [esi]
push	ebx
push	0

loc_41F219:
push	esi
call	dword ptr [eax+1Ch]
mov	esi, eax
jmp	loc_41F2E6

loc_41F224:
push	5Ch
lea	ecx, [ebp+var_34]
pop	edi
push	edi
call	sub_409516
mov	edx, [eax]
mov	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 7
call	sub_42828A
push	[ebp+var_34]	; Memory
test	eax, eax
setz	byte ptr [ebp+arg_4+3]
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
cmp	byte ptr [ebp+arg_4+3],	0
pop	ecx
jz	short loc_41F267
test	esi, esi
jz	short loc_41F261
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]

loc_41F261:
mov	[ebx], esi
xor	esi, esi
jmp	short loc_41F2E6

loc_41F267:
cmp	[ebp+var_18], 2
jge	short loc_41F274

loc_41F26D:
mov	esi, 80070057h
jmp	short loc_41F2E6

loc_41F274:
and	[ebp+var_10], 0
mov	esi, off_45C05C
lea	eax, [ebp+var_34]
push	4
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 8
call	sub_403228
mov	ecx, [eax]
mov	edx, esi
mov	byte ptr [ebp+var_4], 9
call	sub_42828A
push	[ebp+var_34]	; Memory
mov	byte ptr [ebp+var_4], 8
test	eax, eax
setz	bl
call	sub_4284D8
test	bl, bl
pop	ecx
jz	short loc_41F302
push	28h		; Size
call	sub_4284B1
test	eax, eax
pop	ecx
jz	short loc_41F2CA
mov	ecx, eax
call	sub_408A5B
mov	esi, eax
jmp	short loc_41F2CC

loc_41F2CA:
xor	esi, esi

loc_41F2CC:
push	esi
lea	ecx, [ebp+var_10]
call	sub_43D0DB
mov	byte ptr [esi+24h], 1

loc_41F2D9:
mov	ecx, [ebp+arg_8]
mov	eax, [ebp+var_10]
xor	esi, esi
mov	[ebp+var_10], esi
mov	[ecx], eax

loc_41F2E6:		; Memory
push	[ebp+var_1C]
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch

loc_41F302:
mov	eax, [ebp+var_18]
mov	ecx, [ebp+var_1C]
cmp	[ecx+eax*2-2], di
jz	short loc_41F318
push	edi
lea	ecx, [ebp+var_1C]
call	sub_40316A

loc_41F318:		; Size
push	0C8h
call	sub_4284B1
pop	ecx
mov	[ebp+arg_4], eax
test	eax, eax
mov	byte ptr [ebp+var_4], 0Ah
jz	short loc_41F339
mov	ecx, eax
call	sub_4081FF
mov	esi, eax
jmp	short loc_41F33B

loc_41F339:
xor	esi, esi

loc_41F33B:
push	esi
lea	ecx, [ebp+var_10]
mov	byte ptr [ebp+var_4], 8
call	sub_43D0DB
lea	eax, [ebp+var_1C]
push	0
push	eax
mov	ecx, esi
call	sub_407611
test	eax, eax
jz	short loc_41F2D9
mov	eax, [ebp+var_1C]
cmp	[eax], di
jnz	short loc_41F39E
push	78h		; Size
call	sub_4284B1
pop	ecx
mov	[ebp+arg_4], eax
test	eax, eax
mov	byte ptr [ebp+var_4], 0Bh
jz	short loc_41F37F
mov	ecx, eax
call	sub_4088D8
mov	esi, eax
jmp	short loc_41F381

loc_41F37F:
xor	esi, esi

loc_41F381:
push	esi
lea	ecx, [ebp+var_10]
mov	byte ptr [ebp+var_4], 8
call	sub_43D0DB
lea	eax, [ebp+var_1C]
mov	ecx, esi
push	eax
call	sub_42725A
jmp	loc_41F2D9

loc_41F39E:
mov	eax, [ebp+var_10]
and	byte ptr [ebp+var_4], 0
test	eax, eax
jz	loc_41F26D
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
jmp	loc_41F26D
sub_41F08E endp



; Attributes: bp-based frame

sub_41F3B8 proc	near

var_24=	dword ptr -24h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4461B4
call	__EH_prolog
sub	esp, 18h
push	esi
push	edi
mov	edi, edx
mov	esi, ecx
mov	edx, [edi]
mov	ecx, [esi]
call	sub_42828A
test	eax, eax
jz	short loc_41F41A
push	5Ch
lea	ecx, [ebp+var_24]
call	sub_409516
and	[ebp+var_4], 0
push	eax
mov	edx, edi
lea	ecx, [ebp+Memory]
call	sub_40356A
mov	edx, [eax]
mov	ecx, [esi]
mov	byte ptr [ebp+var_4], 1
call	sub_42828A
mov	esi, eax
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
pop	ecx
test	esi, esi
pop	ecx
jz	short loc_41F41A
xor	eax, eax
jmp	short loc_41F41D

loc_41F41A:
push	1
pop	eax

loc_41F41D:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_41F3B8 endp




sub_41F42B proc	near

arg_4= dword ptr  8

mov	eax, [esp+arg_4]
and	dword ptr [eax], 0
xor	eax, eax
retn	8
sub_41F42B endp




sub_41F437 proc	near

arg_4= dword ptr  8

mov	eax, [esp+arg_4]
mov	dword ptr [eax], 1
xor	eax, eax
retn	8
sub_41F437 endp




sub_41F446 proc	near

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

mov	eax, [esp+arg_4]
cmp	eax, 1
jb	short loc_41F456
mov	eax, 80070057h
jmp	short locret_41F481

loc_41F456:
mov	edx, [esp+arg_C]
lea	eax, [eax+eax*2]
mov	ecx, ds:dword_44C42C[eax*4]
lea	eax, ds:44C428h[eax*4]
mov	[edx], ecx
mov	ecx, [esp+arg_10]
mov	ax, [eax+8]
mov	[ecx], ax
mov	eax, [esp+arg_8]
and	dword ptr [eax], 0
xor	eax, eax

locret_41F481:
retn	14h
sub_41F446 endp



; Attributes: bp-based frame

sub_41F484 proc	near

pvarg= VARIANTARG ptr -1Ch
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_4461C8
call	__EH_prolog
sub	esp, 10h
xor	eax, eax
mov	word ptr [ebp+pvarg.anonymous_0], ax
mov	word ptr [ebp+pvarg.anonymous_0+2], ax
cmp	[ebp+arg_4], 3
mov	[ebp+var_4], eax
jz	short loc_41F4B1
cmp	[ebp+arg_4], 14h
jnz	short loc_41F4BE
push	offset aRootfolder ; "RootFolder"
jmp	short loc_41F4B6

loc_41F4B1:		; psz
push	offset word_45D498

loc_41F4B6:
lea	ecx, [ebp+pvarg]
call	sub_42CC8C

loc_41F4BE:		; pvarg
push	[ebp+arg_8]
lea	ecx, [ebp+pvarg] ; Src
call	sub_42CE85
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
mov	ecx, [ebp+var_C]
xor	eax, eax
mov	large fs:0, ecx
leave
retn	0Ch
sub_41F484 endp




sub_41F4E5 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8
arg_8= dword ptr  0Ch

mov	eax, [esp+arg_0]
mov	ecx, [esp+arg_4]
mov	eax, [eax+ecx*4+38h]
mov	ecx, [esp+arg_8]
mov	[ecx], eax
xor	eax, eax
retn	0Ch
sub_41F4E5 endp



; Attributes: bp-based frame

sub_41F4FC proc	near

var_44=	dword ptr -44h
var_3C=	dword ptr -3Ch
var_38=	dword ptr -38h
var_30=	dword ptr -30h
var_2C=	dword ptr -2Ch
Memory=	dword ptr -24h
var_20=	dword ptr -20h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_446214
call	__EH_prolog
sub	esp, 38h
push	ebx
push	esi
mov	ebx, edx
mov	esi, ecx
push	edi
mov	ecx, ebx
call	sub_428327
lea	ecx, [ebp+var_44]
call	sub_40337B
mov	edi, offset off_44B510
mov	[ebp+var_44], edi
and	[ebp+var_4], 0
lea	edx, [ebp+var_44]
mov	ecx, esi
call	sub_41F8A7
and	[ebp+var_D], 0
and	[ebp+var_14], 0
cmp	[ebp+var_3C], 0
jle	loc_41F660

loc_41F547:
mov	eax, [ebp+var_38]
mov	ecx, [ebp+var_14]
push	dword ptr [eax+ecx*4]
lea	ecx, [ebp+Memory]
call	sub_4030F2
mov	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_428107
cmp	[ebp+var_20], 0
jz	loc_41F68F
mov	ecx, [ebp+Memory]
mov	edx, offset asc_45B600 ; "-"
call	sub_42828A
test	eax, eax
jz	loc_41F6A4
cmp	[ebp+var_D], 0
mov	ecx, [ebp+Memory]
jz	short loc_41F5E2
mov	ax, [ecx]
mov	edx, [ebx+8]
mov	esi, [ebx+0Ch]
and	[ebp+var_D], 0
movzx	eax, ax
sub	eax, 42h
lea	esi, [esi+edx*8-8]
jz	short loc_41F5D6
sub	eax, 5
jz	short loc_41F5D2
sub	eax, 4
jz	short loc_41F5CE
dec	eax
dec	eax
jnz	short loc_41F5E2
push	14h

loc_41F5B5:
mov	eax, [esi]
mov	edx, [esi+4]
pop	ecx
call	__allshl
and	byte ptr [ebp+var_4], 0
mov	[esi], eax
mov	[esi+4], edx
push	[ebp+Memory]
jmp	short loc_41F5DB

loc_41F5CE:
push	0Ah
jmp	short loc_41F5B5

loc_41F5D2:
push	1Eh
jmp	short loc_41F5B5

loc_41F5D6:
and	byte ptr [ebp+var_4], 0
push	ecx		; Memory

loc_41F5DB:
call	sub_4284D8
jmp	short loc_41F650

loc_41F5E2:
lea	edx, [ebp+var_18]
mov	esi, ecx
call	sub_428693
cmp	esi, [ebp+var_18]
jz	loc_41F6BB
mov	ecx, eax
or	ecx, edx
jz	loc_41F6E8
push	edx
push	eax
mov	ecx, ebx
call	sub_43D102
mov	eax, [ebp+var_18]
lea	ecx, [ebp+Memory]
sub	eax, esi
mov	[ebp+var_D], 1
sar	eax, 1
push	eax
lea	eax, [ebp+var_30]
push	eax
call	sub_405246
cmp	[ebp+var_2C], 0
mov	byte ptr [ebp+var_4], 6
jz	short loc_41F63B
lea	eax, [ebp+var_30]
lea	ecx, [ebp+var_44]
push	eax
mov	eax, [ebp+var_14]
inc	eax
push	eax
call	sub_4140D0

loc_41F63B:		; Memory
push	[ebp+var_30]
call	sub_4284D8
push	[ebp+Memory]	; Memory
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
pop	ecx

loc_41F650:
inc	[ebp+var_14]
pop	ecx
mov	eax, [ebp+var_14]
cmp	eax, [ebp+var_3C]
jl	loc_41F547

loc_41F660:
mov	[ebp+var_44], edi
lea	ecx, [ebp+var_44]
mov	[ebp+var_4], 7
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_44]
call	sub_4282FE
mov	al, 1

loc_41F680:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn

loc_41F68F:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
mov	[ebp+var_44], edi
mov	[ebp+var_4], 2
jmp	short loc_41F6CE

loc_41F6A4:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
mov	[ebp+var_44], edi
mov	[ebp+var_4], 3
mov	bl, 1
jmp	short loc_41F6D0

loc_41F6BB:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
mov	[ebp+var_44], edi
mov	[ebp+var_4], 4

loc_41F6CE:
xor	bl, bl

loc_41F6D0:
lea	ecx, [ebp+var_44]
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_44]
call	sub_4282FE
mov	al, bl
jmp	short loc_41F680

loc_41F6E8:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
mov	[ebp+var_44], edi
lea	ecx, [ebp+var_44]
mov	[ebp+var_4], 5
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_44]
call	sub_4282FE
xor	al, al
jmp	loc_41F680
sub_41F4FC endp




sub_41F716 proc	near
push	ebx
push	ebp
push	esi
push	edi
mov	edi, ds:SendMessageA
xor	ebp, ebp
push	offset a10m	; "10M"
mov	ebx, 143h
mov	esi, ecx
push	ebp		; wParam
push	ebx		; Msg
push	dword ptr [esi]	; hWnd
call	edi ; SendMessageA
push	offset a650mCd	; "650M	- CD"
push	ebp		; wParam
push	ebx		; Msg
push	dword ptr [esi]	; hWnd
call	edi ; SendMessageA
push	offset a700mCd	; "700M	- CD"
push	ebp		; wParam
push	ebx		; Msg
push	dword ptr [esi]	; hWnd
call	edi ; SendMessageA
push	offset a4480mDvd ; "4480M - DVD"
push	ebp		; wParam
push	ebx		; Msg
push	dword ptr [esi]	; hWnd
call	edi ; SendMessageA
push	offset a14576643_5Flop ; "1457664 - 3.5\" floppy"
push	ebp		; wParam
push	ebx		; Msg
push	dword ptr [esi]	; hWnd
call	edi ; SendMessageA
pop	edi
pop	esi
pop	ebp
pop	ebx
retn
sub_41F716 endp



; Attributes: bp-based frame

sub_41F765 proc	near

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
mov	edx, [ebp+arg_4]
push	esi
mov	esi, [ebp+arg_0]
mov	eax, ecx
mov	ecx, esi
push	edi
or	ecx, edx
mov	[ebp+var_4], eax
jz	short loc_41F7FB
mov	ecx, [eax+8]
xor	edi, edi
cmp	ecx, edi
jz	short loc_41F7FB
mov	[ebp+var_C], edi
mov	[ebp+var_8], edi
mov	[ebp+arg_4], edi
jle	short loc_41F7BE
mov	eax, [eax+0Ch]

loc_41F795:
add	[ebp+var_C], 1
mov	edi, [eax+4]
adc	[ebp+var_8], 0
cmp	edi, edx
ja	short loc_41F7D8
jb	short loc_41F7AA
cmp	[eax], esi
jnb	short loc_41F7D8

loc_41F7AA:
sub	esi, [eax]
sbb	edx, edi
inc	[ebp+arg_4]
add	eax, 8
cmp	[ebp+arg_4], ecx
jl	short loc_41F795
mov	eax, [ebp+var_4]
xor	edi, edi

loc_41F7BE:
push	ebx
mov	ebx, [eax+0Ch]
mov	eax, [ebx+ecx*8-8]
mov	ecx, [ebx+ecx*8-4]
mov	ebx, eax
or	ebx, ecx
pop	ebx
jnz	short loc_41F7E0
or	edx, 0FFFFFFFFh
mov	eax, edx
jmp	short loc_41F800

loc_41F7D8:
mov	eax, [ebp+var_C]
mov	edx, [ebp+var_8]
jmp	short loc_41F800

loc_41F7E0:
sub	esi, 1
push	ecx
sbb	edx, edi
push	eax
push	edx
push	esi
call	__aulldiv
add	eax, [ebp+var_C]
adc	edx, [ebp+var_8]
add	eax, 1
adc	edx, edi
jmp	short loc_41F800

loc_41F7FB:
push	1
xor	edx, edx
pop	eax

loc_41F800:
pop	edi
pop	esi
leave
retn	8
sub_41F765 endp



; Attributes: bp-based frame

sub_41F806 proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_446228
call	__EH_prolog
sub	esp, 10h
push	ebx
mov	ebx, [ebp+arg_0]
push	esi
push	edi
mov	edi, edx
mov	esi, ecx
xor	eax, eax
mov	ecx, [edi]
and	byte ptr [ebp+arg_0+3],	al
mov	[edi+4], eax
mov	[ebp+var_10], eax
mov	[ecx], ax
mov	ecx, [ebx]
mov	[ebx+4], eax
mov	[ecx], ax
cmp	[esi+4], eax
jle	short loc_41F875

loc_41F83A:
mov	ecx, [esi]
mov	cx, [ecx+eax*2]
cmp	cx, 22h
jnz	short loc_41F852
cmp	byte ptr [ebp+arg_0+3],	0
setz	cl
mov	byte ptr [ebp+arg_0+3],	cl
jmp	short loc_41F869

loc_41F852:
cmp	cx, 20h
jnz	short loc_41F85E
cmp	byte ptr [ebp+arg_0+3],	0
jz	short loc_41F874

loc_41F85E:
push	ecx
mov	ecx, edi
call	sub_40316A
mov	eax, [ebp+var_10]

loc_41F869:
inc	eax
cmp	eax, [esi+4]
mov	[ebp+var_10], eax
jge	short loc_41F875
jmp	short loc_41F83A

loc_41F874:
inc	eax

loc_41F875:
push	eax
lea	eax, [ebp+Memory]
push	eax
mov	ecx, esi
call	sub_405246
and	[ebp+var_4], 0
push	eax
mov	ecx, ebx
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_41F806 endp



; Attributes: bp-based frame

sub_41F8A7 proc	near

Memory=	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_4= dword ptr -4

mov	eax, offset loc_44623C
call	__EH_prolog
sub	esp, 14h
push	ebx
push	esi
push	edi
mov	edi, ecx
mov	ecx, edx
mov	[ebp+var_14], edx
call	sub_428327
xor	esi, esi
lea	ecx, [ebp+Memory]
push	3
mov	[ebp+Memory], esi
mov	[ebp+var_1C], esi
mov	[ebp+var_18], esi
call	sub_403396
mov	ebx, [edi+4]
mov	[ebp+var_4], esi
cmp	ebx, esi
jz	short loc_41F934
mov	[ebp+var_10], esi
jle	short loc_41F923

loc_41F8E7:
mov	eax, [edi]
mov	ecx, [ebp+var_10]
mov	ax, [eax+ecx*2]
cmp	ax, 20h
jnz	short loc_41F912
cmp	[ebp+var_1C], esi
jz	short loc_41F91B
mov	ecx, [ebp+var_14]
lea	eax, [ebp+Memory]
push	eax
call	sub_4032B4
mov	eax, [ebp+Memory]
mov	[ebp+var_1C], esi
mov	[eax], si
jmp	short loc_41F91B

loc_41F912:
push	eax
lea	ecx, [ebp+Memory]
call	sub_40316A

loc_41F91B:
inc	[ebp+var_10]
cmp	[ebp+var_10], ebx
jl	short loc_41F8E7

loc_41F923:
cmp	[ebp+var_1C], esi
jz	short loc_41F934
mov	ecx, [ebp+var_14]
lea	eax, [ebp+Memory]
push	eax
call	sub_4032B4

loc_41F934:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_41F8A7 endp



; Attributes: bp-based frame

; int __fastcall sub_41F94C(int	csidl)
sub_41F94C proc	near

psfi= SHFILEINFOA ptr -168h
ppMalloc= dword	ptr -8
pszPath= dword ptr -4

push	ebp
mov	ebp, esp
sub	esp, 168h
and	[ebp+pszPath], 0
lea	eax, [ebp+pszPath]
push	eax		; ppidl
push	ecx		; csidl
push	0		; hwnd
call	ds:SHGetSpecialFolderLocation
cmp	[ebp+pszPath], 0
jz	short loc_41F9B6
push	4008h		; uFlags
lea	eax, [ebp+psfi]
push	160h		; cbFileInfo
push	eax		; psfi
push	80h		; dwFileAttributes
push	[ebp+pszPath]	; pszPath
call	ds:SHGetFileInfoA
lea	eax, [ebp+ppMalloc]
push	eax		; ppMalloc
call	ds:SHGetMalloc
mov	eax, [ebp+ppMalloc]
test	eax, eax
jz	short loc_41F9AE
push	[ebp+pszPath]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+14h]
mov	eax, [ebp+ppMalloc]
push	eax
mov	ecx, [eax]
call	dword ptr [ecx+8]

loc_41F9AE:
mov	eax, [ebp+psfi.iIcon]
leave
retn

loc_41F9B6:
xor	eax, eax
leave
retn
sub_41F94C endp



; Attributes: bp-based frame

; int __thiscall sub_41F9BA(LPCSTR pszPath, int)
sub_41F9BA proc	near

psfi= SHFILEINFOA ptr -160h
arg_0= dword ptr  8

push	ebp
mov	ebp, esp
sub	esp, 160h
push	4010h		; uFlags
lea	eax, [ebp+psfi]
push	160h		; cbFileInfo
or	dl, 80h
push	eax		; psfi
push	edx		; dwFileAttributes
push	ecx		; pszPath
call	ds:SHGetFileInfoA
mov	ecx, [ebp+arg_0]
mov	edx, [ebp+psfi.iIcon]
mov	[ecx], edx
leave
retn	4
sub_41F9BA endp

jmp	$+5

loc_41F9F3:		; "SHGetFileInfoW"
push	offset aShgetfileinfow
push	offset ModuleName ; "shell32.dll"
call	ds:GetModuleHandleW
push	eax
call	ds:GetProcAddress
mov	dword_45D938, eax
retn


; Attributes: bp-based frame

sub_41FA10 proc	near

var_2D8= byte ptr -2D8h
var_2D4= dword ptr -2D4h
Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_446250
call	__EH_prolog
sub	esp, 2CCh
cmp	byte_45D8B4, 0
push	esi
mov	esi, edx
jz	short loc_41FA52
push	4010h
lea	eax, [ebp+var_2D8]
push	2B4h
push	eax
or	dl, 80h
call	sub_41FA9F
mov	ecx, [ebp+arg_0]
mov	edx, [ebp+var_2D4]
mov	[ecx], edx
jmp	short loc_41FA90

loc_41FA52:
push	ecx
lea	ecx, [ebp+var_18]
call	sub_403091
and	[ebp+var_4], 0
push	0
lea	edx, [ebp+var_18]
lea	ecx, [ebp+Memory]
call	sub_428673
mov	eax, [eax]
mov	edx, esi
push	[ebp+arg_0]	; int
mov	ecx, eax	; pszPath
call	sub_41F9BA
mov	esi, eax
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_18]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
pop	ecx

loc_41FA90:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_41FA10 endp




sub_41FA9F proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8
arg_8= dword ptr  0Ch

mov	eax, dword_45D938
test	eax, eax
jz	short locret_41FAB8
push	[esp+arg_8]
push	[esp+4+arg_4]
push	[esp+8+arg_0]
push	edx
push	ecx
call	eax ; dword_45D938

locret_41FAB8:
retn	0Ch
sub_41FA9F endp



; Attributes: bp-based frame

sub_41FABB proc	near

var_438= byte ptr -438h
var_434= dword ptr -434h
var_224= word ptr -224h
psfi= SHFILEINFOA ptr -184h
var_24=	dword ptr -24h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_44626C
call	__EH_prolog
sub	esp, 42Ch
cmp	byte_45D8B4, 0
push	esi
mov	esi, edx
jnz	short loc_41FB56
and	[ebp+psfi.szTypeName], 0
mov	edx, ecx
lea	ecx, [ebp+Memory]
call	sub_43A785
mov	eax, [eax]
lea	ecx, [ebp+psfi]
push	4410h		; uFlags
push	160h		; cbFileInfo
or	esi, 80h
push	ecx		; psfi
push	esi		; dwFileAttributes
push	eax		; pszPath
call	ds:SHGetFileInfoA
mov	esi, eax
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
lea	eax, [ebp+psfi.szTypeName]
push	eax
lea	ecx, [ebp+Memory]
call	sub_41E0DD
and	[ebp+var_4], 0
lea	edx, [ebp+Memory]
lea	ecx, [ebp+var_24]
call	sub_41242C
mov	ecx, [ebp+arg_4]
push	eax
mov	byte ptr [ebp+var_4], 1
call	sub_40312C
push	[ebp+var_24]	; Memory
call	sub_4284D8
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+arg_0]
pop	ecx
pop	ecx
mov	ecx, [ebp+psfi.iIcon]
jmp	short loc_41FB95

loc_41FB56:
mov	ecx, [ecx]
and	[ebp+var_224], 0
push	4410h
lea	eax, [ebp+var_438]
mov	edx, esi
push	2B4h
push	eax
or	dl, 80h
call	sub_41FA9F
mov	ecx, [ebp+arg_4]
mov	esi, eax
lea	eax, [ebp+var_224]
push	eax
call	sub_404722
mov	eax, [ebp+arg_0]
mov	ecx, [ebp+var_434]

loc_41FB95:
mov	[eax], ecx
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_41FABB endp



; Attributes: bp-based frame

sub_41FBA8 proc	near

var_48=	byte ptr -48h
var_3C=	dword ptr -3Ch
var_38=	byte ptr -38h
var_2C=	dword ptr -2Ch
var_28=	dword ptr -28h
var_24=	dword ptr -24h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_4462A8
call	__EH_prolog
sub	esp, 3Ch
push	ebx
mov	ebx, [ebp+arg_4]
push	esi
push	edi
mov	eax, [ebx+4]
mov	esi, ecx
test	eax, eax
jz	short loc_41FBE0
mov	ecx, [ebx]
lea	eax, [ecx+eax*2-2]

loc_41FBCA:
cmp	word ptr [eax],	2Eh
jz	short loc_41FBD8
cmp	eax, ecx
jz	short loc_41FBE0
dec	eax
dec	eax
jmp	short loc_41FBCA

loc_41FBD8:
sub	eax, ecx
sar	eax, 1
mov	edi, eax
jmp	short loc_41FBE3

loc_41FBE0:
or	edi, 0FFFFFFFFh

loc_41FBE3:
test	byte ptr [ebp+arg_0], 10h
jnz	loc_41FCC7
test	edi, edi
jl	loc_41FCC7
lea	ecx, [ebp+var_48]
call	sub_403079
lea	ecx, [ebp+var_38]
mov	[ebp+var_4], 2
call	sub_403079
lea	eax, [edi+1]
mov	ecx, ebx
push	eax
lea	eax, [ebp+Memory]
push	eax
mov	[ebp+var_4], 3
call	sub_405246
push	eax
lea	ecx, [ebp+var_48]
mov	byte ptr [ebp+var_4], 4
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_48]
push	eax
mov	ecx, esi
call	sub_41FDCA
test	eax, eax
jl	short loc_41FC6D
mov	edi, eax
mov	eax, [esi+0Ch]
mov	ecx, [ebp+arg_8]
shl	edi, 2
mov	eax, [edi+eax]
add	eax, 10h
push	eax
call	sub_40312C
mov	eax, [esi+0Ch]
mov	edi, [edi+eax]
mov	esi, [edi+0Ch]
jmp	short loc_41FCB6

loc_41FC6D:
lea	eax, [ebp+Memory]
push	edi
push	eax
mov	ecx, ebx
call	sub_405246
mov	edx, [ebp+arg_0]
lea	ecx, [ebp+var_38]
push	ecx
lea	ecx, [ebp+var_3C]
push	ecx
mov	ecx, eax
mov	byte ptr [ebp+var_4], 5
call	sub_41FABB
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_48]
push	eax
mov	ecx, esi
call	sub_41FE2E
mov	ecx, [ebp+arg_8]
lea	eax, [ebp+var_38]
push	eax
call	sub_40312C
mov	esi, [ebp+var_3C]

loc_41FCB6:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_48]
call	sub_406E56
jmp	loc_41FD60

loc_41FCC7:
lea	ecx, [ebp+var_24]
call	sub_403079
mov	ebx, [ebp+arg_0]
and	[ebp+var_4], 0
lea	edi, [esi+14h]
lea	eax, [ebp+var_2C]
push	eax
mov	ecx, edi
mov	[ebp+var_2C], ebx
call	sub_41FEA0
test	eax, eax
jl	short loc_41FD0D
mov	edi, eax
mov	eax, [esi+20h]
mov	ecx, [ebp+arg_8]
shl	edi, 2
mov	eax, [edi+eax]
add	eax, 8
push	eax
call	sub_40312C
mov	eax, [esi+20h]
mov	eax, [edi+eax]
mov	esi, [eax+4]
jmp	short loc_41FD57

loc_41FD0D:		; "__File__"
push	offset a__file__
lea	ecx, [ebp+Memory]
call	sub_403091
lea	eax, [ebp+var_24]
mov	edx, ebx
push	eax
lea	eax, [ebp+var_28]
push	eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_41FABB
push	[ebp+Memory]	; Memory
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_2C]
push	eax
mov	ecx, edi
call	sub_41FEDE
mov	ecx, [ebp+arg_8]
lea	eax, [ebp+var_24]
push	eax
call	sub_40312C
mov	esi, [ebp+var_28]

loc_41FD57:		; Memory
push	[ebp+var_24]
call	sub_4284D8
pop	ecx

loc_41FD60:
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_41FBA8 endp



; Attributes: bp-based frame

sub_41FD73 proc	near

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

mov	eax, offset loc_4462BC
call	__EH_prolog
sub	esp, 0Ch
push	esi
push	edi
mov	edi, ecx
xor	esi, esi
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], esi
mov	[ebp+var_14], esi
mov	[ebp+var_10], esi
call	sub_403396
lea	eax, [ebp+Memory]
mov	ecx, edi
push	eax
mov	[ebp+var_4], esi
push	[ebp+arg_4]
push	[ebp+arg_0]
call	sub_41FBA8
push	[ebp+Memory]	; Memory
mov	esi, eax
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_41FD73 endp




sub_41FDCA proc	near

var_4= dword ptr -4
arg_0= dword ptr  4

push	ecx
push	ebx
mov	ebx, [ecx+8]
push	ebp
xor	ebp, ebp
push	esi
push	edi
test	ebx, ebx
mov	[esp+14h+var_4], ecx
jz	short loc_41FE1F
jmp	short loc_41FDE2

loc_41FDDE:
mov	ecx, [esp+14h+var_4]

loc_41FDE2:
lea	eax, [ebx+ebp]
cdq
sub	eax, edx
mov	esi, eax
mov	eax, [ecx+0Ch]
sar	esi, 1
mov	edi, [eax+esi*4]
mov	eax, [esp+14h+arg_0]
mov	edx, [edi]
mov	ecx, [eax]
call	sub_42828A
test	eax, eax
jz	short loc_41FE2A
mov	eax, [esp+14h+arg_0]
mov	edx, [edi]
mov	ecx, [eax]
call	sub_42828A
test	eax, eax
jge	short loc_41FE18
mov	ebx, esi
jmp	short loc_41FE1B

loc_41FE18:
lea	ebp, [esi+1]

loc_41FE1B:
cmp	ebp, ebx
jnz	short loc_41FDDE

loc_41FE1F:
or	eax, 0FFFFFFFFh

loc_41FE22:
pop	edi
pop	esi
pop	ebp
pop	ebx
pop	ecx
retn	4

loc_41FE2A:
mov	eax, esi
jmp	short loc_41FE22
sub_41FDCA endp




sub_41FE2E proc	near

var_4= dword ptr -4
arg_0= dword ptr  4

push	ecx
and	[esp+4+var_4], 0
push	ebx
push	ebp
mov	ebp, ecx
push	esi
push	edi
mov	edi, [ebp+8]
test	edi, edi
jz	short loc_41FE8A

loc_41FE41:
mov	eax, [esp+14h+var_4]
add	eax, edi
cdq
sub	eax, edx
mov	esi, eax
mov	eax, [ebp+0Ch]
sar	esi, 1
mov	ebx, [eax+esi*4]
mov	eax, [esp+14h+arg_0]
mov	edx, [ebx]
mov	ecx, [eax]
call	sub_42828A
test	eax, eax
jz	short loc_41FE87
mov	eax, [esp+14h+arg_0]
mov	edx, [ebx]
mov	ecx, [eax]
call	sub_42828A
test	eax, eax
jge	short loc_41FE7A
mov	edi, esi
jmp	short loc_41FE7F

loc_41FE7A:
inc	esi
mov	[esp+14h+var_4], esi

loc_41FE7F:
cmp	[esp+14h+var_4], edi
jnz	short loc_41FE41
jmp	short loc_41FE8A

loc_41FE87:
lea	edi, [esi+1]

loc_41FE8A:
push	[esp+14h+arg_0]
mov	ecx, ebp
push	edi
call	sub_41FF31
mov	eax, edi
pop	edi
pop	esi
pop	ebp
pop	ebx
pop	ecx
retn	4
sub_41FE2E endp




sub_41FEA0 proc	near

arg_0= dword ptr  4

push	ebx
push	ebp
push	esi
mov	esi, [ecx+8]
push	edi
xor	edi, edi
test	esi, esi
jz	short loc_41FED4
mov	eax, [esp+10h+arg_0]
mov	ebx, [ecx+0Ch]
mov	ebp, [eax]

loc_41FEB6:
lea	eax, [esi+edi]
cdq
sub	eax, edx
sar	eax, 1
mov	ecx, [ebx+eax*4]
mov	ecx, [ecx]
cmp	ebp, ecx
jz	short loc_41FED7
jnb	short loc_41FECD
mov	esi, eax
jmp	short loc_41FED0

loc_41FECD:
lea	edi, [eax+1]

loc_41FED0:
cmp	edi, esi
jnz	short loc_41FEB6

loc_41FED4:
or	eax, 0FFFFFFFFh

loc_41FED7:
pop	edi
pop	esi
pop	ebp
pop	ebx
retn	4
sub_41FEA0 endp



; Attributes: bp-based frame

sub_41FEDE proc	near

var_4= dword ptr -4
arg_0= dword ptr  8

push	ebp
mov	ebp, esp
push	ecx
push	ebx
push	esi
mov	esi, [ecx+8]
push	edi
xor	edi, edi
mov	[ebp+var_4], ecx
test	esi, esi
jz	short loc_41FF1C
mov	eax, [ebp+arg_0]
mov	ebx, [ecx+0Ch]
mov	ecx, [eax]

loc_41FEF9:
lea	eax, [esi+edi]
cdq
sub	eax, edx
sar	eax, 1
mov	edx, [ebx+eax*4]
mov	edx, [edx]
cmp	ecx, edx
jz	short loc_41FF19
jnb	short loc_41FF10
mov	esi, eax
jmp	short loc_41FF13

loc_41FF10:
lea	edi, [eax+1]

loc_41FF13:
cmp	edi, esi
jnz	short loc_41FEF9
jmp	short loc_41FF1C

loc_41FF19:
lea	esi, [eax+1]

loc_41FF1C:
push	[ebp+arg_0]
mov	ecx, [ebp+var_4]
push	esi
call	sub_41FF87
mov	eax, esi
pop	edi
pop	esi
pop	ebx
leave
retn	4
sub_41FEDE endp



; Attributes: bp-based frame

sub_41FF31 proc	near

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

mov	eax, offset unknown_libname_26 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	ebx
push	esi
push	edi
mov	ebx, ecx
push	1Ch		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_10], ecx
xor	esi, esi
cmp	ecx, esi
mov	[ebp+var_4], esi
jz	short loc_41FF61
push	[ebp+arg_4]
call	sub_41FFEF
mov	esi, eax

loc_41FF61:
mov	edi, [ebp+arg_0]
or	[ebp+var_4], 0FFFFFFFFh
push	edi
mov	ecx, ebx
call	sub_428462
mov	eax, [ebx+0Ch]
mov	ecx, [ebp+var_C]
mov	[eax+edi*4], esi
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_41FF31 endp



; Attributes: bp-based frame

sub_41FF87 proc	near

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

mov	eax, offset unknown_libname_27 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	ebx
push	esi
push	edi
mov	ebx, ecx
push	14h		; Size
call	sub_4284B1
mov	esi, eax
pop	ecx
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
test	esi, esi
jz	short loc_41FFC7
mov	eax, [ebp+arg_4]
mov	ecx, [eax]
add	eax, 8
mov	[esi], ecx
mov	ecx, [eax-4]
mov	[esi+4], ecx
push	eax
lea	ecx, [esi+8]
call	sub_4030F2
jmp	short loc_41FFC9

loc_41FFC7:
xor	esi, esi

loc_41FFC9:
mov	edi, [ebp+arg_0]
or	[ebp+var_4], 0FFFFFFFFh
push	edi
mov	ecx, ebx
call	sub_428462
mov	eax, [ebx+0Ch]
mov	ecx, [ebp+var_C]
mov	[eax+edi*4], esi
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_41FF87 endp



; Attributes: bp-based frame

sub_41FFEF proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4462F8
call	__EH_prolog
push	ecx
push	esi
push	edi
mov	edi, [ebp+arg_0]
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
call	sub_4030F2
mov	eax, [edi+0Ch]
and	[ebp+var_4], 0
add	edi, 10h
lea	ecx, [esi+10h]
push	edi
mov	[esi+0Ch], eax
call	sub_4030F2
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_41FFEF endp




sub_420032 proc	near
push	0
push	offset loc_42003F
call	sub_43748B
retn

loc_42003F:
mov	edx, [edx]
mov	ecx, [ecx]
call	loc_42004B
retn	4

loc_42004B:
jmp	$+5
sub_420032 endp




sub_420050 proc	near
mov	edx, [edx]
mov	ecx, [ecx]
jmp	sub_4282B1
sub_420050 endp



; Attributes: bp-based frame

sub_420059 proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ebx
push	esi
push	edi
mov	edi, [ecx+8]
xor	ebx, ebx
mov	[ebp+var_4], ecx
test	edi, edi
jz	short loc_42009A
jmp	short loc_420071

loc_42006E:
mov	ecx, [ebp+var_4]

loc_420071:
lea	eax, [edi+ebx]
cdq
sub	eax, edx
mov	esi, eax
mov	eax, [ecx+0Ch]
mov	ecx, [ebp+arg_0]
sar	esi, 1
mov	edx, [eax+esi*4]
call	sub_420050
test	eax, eax
jz	short loc_4200A9
jge	short loc_420093
mov	edi, esi
jmp	short loc_420096

loc_420093:
lea	ebx, [esi+1]

loc_420096:
cmp	ebx, edi
jnz	short loc_42006E

loc_42009A:
mov	eax, [ebp+arg_4]
mov	[eax], ebx
or	eax, 0FFFFFFFFh

loc_4200A2:
pop	edi
pop	esi
pop	ebx
leave
retn	8

loc_4200A9:
mov	eax, esi
jmp	short loc_4200A2
sub_420059 endp



; Attributes: bp-based frame

sub_4200AD proc	near

arg_0= dword ptr  8

push	ebp
mov	ebp, esp
lea	eax, [ebp+arg_0]
push	eax
push	[ebp+arg_0]
call	sub_420059
pop	ebp
retn	4
sub_4200AD endp



; Attributes: bp-based frame

sub_4200C0 proc	near

arg_0= dword ptr  8

push	ebp
mov	ebp, esp
push	esi
push	edi
mov	edi, [ebp+arg_0]
lea	eax, [ebp+arg_0]
push	eax
mov	esi, ecx
push	edi
call	sub_420059
test	eax, eax
jl	short loc_4200F4
mov	ecx, [esi+0Ch]
push	edi
mov	esi, [ecx+eax*4]
mov	ecx, esi
call	sub_40312C
add	edi, 0Ch
lea	ecx, [esi+0Ch]
push	edi
call	sub_40312C
jmp	short loc_4200FF

loc_4200F4:
push	edi
mov	ecx, esi
push	[ebp+arg_0]
call	sub_42052C

loc_4200FF:
pop	edi
pop	esi
pop	ebp
retn	4
sub_4200C0 endp




sub_420105 proc	near

arg_0= dword ptr  4

push	esi
mov	esi, ecx
push	[esp+4+arg_0]
call	sub_4200AD
test	eax, eax
jl	short loc_42011F
mov	edx, [esi]
push	1
push	eax
mov	ecx, esi
call	dword ptr [edx+4]

loc_42011F:
pop	esi
retn	4
sub_420105 endp




sub_420123 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	esi
mov	esi, [esp+4+arg_4]
push	edi
mov	edi, ecx
mov	eax, [esi]
push	[esp+8+arg_0]
and	dword ptr [esi+4], 0
and	word ptr [eax],	0
call	sub_4200AD
test	eax, eax
jge	short loc_420146
xor	al, al
jmp	short loc_420159

loc_420146:
mov	ecx, [edi+0Ch]
mov	eax, [ecx+eax*4]
mov	ecx, esi
add	eax, 0Ch
push	eax
call	sub_40312C
mov	al, 1

loc_420159:
pop	edi
pop	esi
retn	8
sub_420123 endp




sub_42015E proc	near

arg_0= dword ptr  4

push	ebx
push	esi
mov	esi, ecx
mov	ecx, [esp+8+arg_0]
mov	edx, esi
call	sub_420188
mov	bl, al
mov	ecx, esi
test	bl, bl
jz	short loc_42017C
call	sub_420032
jmp	short loc_420181

loc_42017C:
call	sub_428327

loc_420181:
mov	al, bl
pop	esi
pop	ebx
retn	4
sub_42015E endp



; Attributes: bp-based frame

sub_420188 proc	near

var_44=	dword ptr -44h
var_38=	dword ptr -38h
var_2C=	dword ptr -2Ch
Memory=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44631C
call	__EH_prolog
sub	esp, 38h
push	esi
push	edi
mov	edi, ecx
mov	[ebp+var_14], edx
mov	ecx, edx
call	sub_428327
mov	eax, [edi+4]
xor	esi, esi
test	eax, eax
jle	short loc_4201B8
mov	ecx, [edi]
cmp	word ptr [ecx],	0FEFFh
jnz	short loc_4201B8
push	1
pop	esi

loc_4201B8:
cmp	esi, eax
jge	loc_42026B

loc_4201C0:
mov	eax, [edi]
lea	ecx, [ebp+var_10]
push	ecx
lea	ecx, [ebp+Memory]
lea	edx, [eax+esi*2]
call	sub_42027B
and	[ebp+var_4], 0
add	esi, [ebp+var_10]
cmp	[ebp+var_1C], 0
jnz	short loc_4201EC
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
jmp	short loc_420261

loc_4201EC:
mov	eax, [edi]
lea	ecx, [ebp+var_10]
push	ecx
lea	ecx, [ebp+var_2C]
lea	edx, [eax+esi*2]
call	sub_4203AF
add	esi, [ebp+var_10]
cmp	[ebp+var_1C], 0
mov	byte ptr [ebp+var_4], 1
jz	short loc_42024C
lea	ecx, [ebp+var_44]
call	sub_4093FC
lea	eax, [ebp+Memory]
lea	ecx, [ebp+var_44]
push	eax
mov	byte ptr [ebp+var_4], 2
call	sub_40312C
lea	eax, [ebp+var_2C]
lea	ecx, [ebp+var_38]
push	eax
call	sub_40312C
mov	ecx, [ebp+var_14]
lea	eax, [ebp+var_44]
push	eax
call	sub_4204CB
push	[ebp+var_38]	; Memory
call	sub_4284D8
push	[ebp+var_44]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx

loc_42024C:		; Memory
push	[ebp+var_2C]
call	sub_4284D8
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx

loc_420261:
cmp	esi, [edi+4]
pop	ecx
jl	loc_4201C0

loc_42026B:
mov	ecx, [ebp+var_C]
pop	edi
mov	al, 1
pop	esi
mov	large fs:0, ecx
leave
retn
sub_420188 endp



; Attributes: bp-based frame

sub_42027B proc	near

Memory=	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_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_446330
call	__EH_prolog
sub	esp, 1Ch
push	ebx
push	esi
mov	[ebp+var_14], ecx
push	edi
mov	esi, edx
xor	ebx, ebx
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+var_18], esi
mov	[ebp+var_1C], ebx
mov	[ebp+Memory], ebx
mov	[ebp+var_24], ebx
mov	[ebp+var_20], ebx
call	sub_403396
mov	edi, [ebp+arg_0]
mov	[ebp+var_4], ebx
mov	[ebp+var_D], bl
mov	[edi], ebx
mov	si, [esi]

loc_4202B9:
cmp	si, bx
jz	short loc_4202FB
inc	dword ptr [edi]
mov	ecx, esi
call	sub_42033C
cmp	si, 0Ah
jz	short loc_4202FB
cmp	al, bl
jz	short loc_4202D6
cmp	[ebp+var_D], bl
jz	short loc_4202FB

loc_4202D6:
cmp	si, 22h
jnz	short loc_4202E7
cmp	[ebp+var_D], bl
jnz	short loc_4202FB
mov	[ebp+var_D], 1
jmp	short loc_4202F0

loc_4202E7:
push	esi
lea	ecx, [ebp+Memory]
call	sub_40316A

loc_4202F0:
mov	eax, [edi]
mov	ecx, [ebp+var_18]
mov	si, [ecx+eax*2]
jmp	short loc_4202B9

loc_4202FB:
lea	ecx, [ebp+Memory]
call	sub_406F3F
lea	ecx, [ebp+Memory]
call	sub_406F04
lea	ecx, [ebp+Memory]
call	sub_42034F
mov	ecx, [ebp+var_14]
lea	eax, [ebp+Memory]
push	eax
call	sub_4030F2
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_14]
pop	ecx
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_42027B endp




sub_42033C proc	near
cmp	cx, 20h
jz	short loc_42034B
cmp	cx, 9
jz	short loc_42034B
xor	eax, eax
retn

loc_42034B:
push	1
pop	eax
retn
sub_42033C endp



; Attributes: bp-based frame

sub_42034F proc	near

var_24=	dword ptr -24h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44634C
call	__EH_prolog
sub	esp, 18h
push	esi
mov	esi, ecx
push	offset word_45D498
lea	ecx, [ebp+var_24]
call	sub_403091
and	[ebp+var_4], 0
push	offset asc_45C15C ; "\r"
lea	ecx, [ebp+Memory]
call	sub_403091
lea	eax, [ebp+var_24]
mov	ecx, esi
push	eax
lea	eax, [ebp+Memory]
push	eax
mov	byte ptr [ebp+var_4], 1
call	sub_407494
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx
pop	esi
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn
sub_42034F endp



; Attributes: bp-based frame

sub_4203AF proc	near

Memory=	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_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_446360
call	__EH_prolog
sub	esp, 14h
push	ebx
push	esi
mov	[ebp+var_10], ecx
push	edi
xor	ebx, ebx
mov	edi, edx
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+var_14], ebx
mov	[ebp+Memory], ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
call	sub_403396
mov	esi, [ebp+arg_0]
mov	[ebp+var_4], ebx
mov	[esi], ebx
mov	ax, [edi]

loc_4203E7:
cmp	ax, bx
jz	short loc_420405
inc	dword ptr [esi]
cmp	ax, 0Ah
jz	short loc_420405
push	eax
lea	ecx, [ebp+Memory]
call	sub_40316A
mov	eax, [esi]
mov	ax, [edi+eax*2]
jmp	short loc_4203E7

loc_420405:
lea	ecx, [ebp+Memory]
call	sub_406F3F
lea	ecx, [ebp+Memory]
call	sub_406F04
lea	ecx, [ebp+Memory]
call	sub_42034F
mov	ecx, [ebp+var_10]
lea	eax, [ebp+Memory]
push	eax
call	sub_4030F2
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_10]
pop	ecx
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_4203AF endp



; Attributes: bp-based frame

sub_420446 proc	near

var_1= byte ptr	-1
arg_0= dword ptr  8

push	ebp
mov	ebp, esp
push	ecx
push	ebx
push	edi
mov	edi, ecx
xor	ebx, ebx
cmp	[edi+8], ebx
jle	short loc_4204C5
push	esi

loc_420456:
mov	eax, [edi+0Ch]
push	20h
mov	esi, [eax+ebx*4]
mov	ecx, esi
call	sub_40706B
test	eax, eax
setnl	[ebp+var_1]
cmp	[ebp+var_1], 0
jz	short loc_42047B
mov	ecx, [ebp+arg_0]
push	22h
call	sub_40316A

loc_42047B:
mov	ecx, [ebp+arg_0]
push	esi
call	sub_4031F2
cmp	[ebp+var_1], 0
jz	short loc_420494
mov	ecx, [ebp+arg_0]
push	22h
call	sub_40316A

loc_420494:
mov	ecx, [ebp+arg_0]
push	20h
call	sub_40316A
mov	ecx, [ebp+arg_0]
add	esi, 0Ch
push	esi
call	sub_4031F2
mov	ecx, [ebp+arg_0]
push	0Dh
call	sub_40316A
mov	ecx, [ebp+arg_0]
push	0Ah
call	sub_40316A
inc	ebx
cmp	ebx, [edi+8]
jl	short loc_420456
pop	esi

loc_4204C5:
pop	edi
pop	ebx
leave
retn	4
sub_420446 endp



; Attributes: bp-based frame

sub_4204CB proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_44637E
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	ebx, ecx
push	18h		; Size
call	sub_4284B1
mov	esi, eax
pop	ecx
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
test	esi, esi
jz	short loc_42050E
push	edi
mov	edi, [ebp+arg_0]
push	edi
mov	ecx, esi
call	sub_4030F2
add	edi, 0Ch
lea	ecx, [esi+0Ch]
push	edi
mov	byte ptr [ebp+var_4], 1
call	sub_4030F2
pop	edi
jmp	short loc_420510

loc_42050E:
xor	esi, esi

loc_420510:
or	[ebp+var_4], 0FFFFFFFFh
push	esi
mov	ecx, ebx
call	sub_429907
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_4204CB endp



; Attributes: bp-based frame

sub_42052C proc	near

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

mov	eax, offset loc_44639A
call	__EH_prolog
push	ecx
push	ebx
push	esi
push	edi
mov	ebx, ecx
push	18h		; Size
call	sub_4284B1
mov	esi, eax
pop	ecx
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
test	esi, esi
jz	short loc_42056E
mov	edi, [ebp+arg_4]
mov	ecx, esi
push	edi
call	sub_4030F2
add	edi, 0Ch
lea	ecx, [esi+0Ch]
push	edi
mov	byte ptr [ebp+var_4], 1
call	sub_4030F2
jmp	short loc_420570

loc_42056E:
xor	esi, esi

loc_420570:
mov	edi, [ebp+arg_0]
or	[ebp+var_4], 0FFFFFFFFh
push	edi
mov	ecx, ebx
call	sub_428462
mov	eax, [ebx+0Ch]
mov	ecx, [ebp+var_C]
mov	[eax+edi*4], esi
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_42052C endp




sub_420596 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8
arg_8= dword ptr  0Ch

mov	eax, [esp+arg_0]
push	0
push	0
push	[esp+8+arg_8]
mov	ecx, [eax+30h]
add	ecx, 0F0h
push	[esp+0Ch+arg_4]
call	sub_403A30
xor	eax, eax
retn	0Ch
sub_420596 endp




sub_4205B9 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	esi
push	edi
mov	edi, [esp+8+arg_0]
mov	esi, 0F0h
mov	ecx, [edi+30h]
add	ecx, esi
call	sub_422D48
test	eax, eax
jnz	short loc_4205EB
mov	eax, [esp+8+arg_4]
test	eax, eax
jz	short loc_4205E9
push	dword ptr [eax+4]
mov	ecx, [edi+30h]
add	ecx, esi
push	dword ptr [eax]
call	sub_403AA0

loc_4205E9:
xor	eax, eax

loc_4205EB:
pop	edi
pop	esi
retn	8
sub_4205B9 endp




sub_4205F0 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8
arg_8= dword ptr  0Ch

mov	eax, [esp+arg_0]
push	[esp+arg_8]
mov	ecx, [eax+20h]
push	[esp+4+arg_4]
add	ecx, 0F0h
call	sub_403B40
xor	eax, eax
retn	0Ch
sub_4205F0 endp



; Attributes: bp-based frame

sub_42060F proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_4463AC
call	__EH_prolog
sub	esp, 0Ch
push	[ebp+arg_4]
lea	ecx, [ebp+Memory]
call	sub_403091
lea	eax, [ebp+Memory]
and	[ebp+var_4], 0
push	eax
mov	eax, [ebp+arg_0]
mov	ecx, [eax+30h]
add	ecx, 0F0h
call	sub_403FE6
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
xor	eax, eax
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn	8
sub_42060F endp



; Attributes: bp-based frame

sub_420659 proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_4463C0
call	__EH_prolog
sub	esp, 0Ch
push	[ebp+arg_4]
lea	ecx, [ebp+Memory]
call	sub_403091
lea	eax, [ebp+Memory]
and	[ebp+var_4], 0
push	eax
mov	eax, [ebp+arg_0]
mov	ecx, [eax+30h]
add	ecx, 0F0h
call	sub_403FE6
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
xor	eax, eax
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn	8
sub_420659 endp




sub_4206A3 proc	near

arg_0= dword ptr  4

mov	eax, [esp+arg_0]
add	dword ptr [eax+28h], 1
mov	ecx, [eax+30h]
adc	dword ptr [eax+2Ch], 0
push	dword ptr [eax+2Ch]
add	ecx, 0F0h
push	dword ptr [eax+28h]
call	sub_403EC6
xor	eax, eax
retn	8
sub_4206A3 endp




sub_4206C8 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [esp+arg_0]
push	[esp+arg_4]
mov	ecx, [eax+30h]
add	ecx, 0F0h
call	sub_403963
xor	eax, eax
retn	8
sub_4206C8 endp




sub_4206E3 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8
arg_8= dword ptr  0Ch

mov	eax, [esp+arg_0]
push	esi
mov	esi, [esp+4+arg_8]
xor	ecx, ecx
xor	edx, edx
push	edi
mov	edi, [esp+8+arg_4]
mov	[esi], ecx
cmp	[eax+14h], cl
setnz	dl
mov	[edi], edx
cmp	[eax+14h], cl
jnz	short loc_420708
xor	eax, eax
jmp	short loc_420721

loc_420708:		; psz
push	dword ptr [eax+18h]
call	ds:SysAllocString
mov	[esi], eax
neg	eax
sbb	eax, eax
and	eax, 7FF8FFF2h
add	eax, 8007000Eh

loc_420721:
pop	edi
pop	esi
retn	0Ch
sub_4206E3 endp




sub_420726 proc	near
xor	eax, eax
retn	0Ch
sub_420726 endp




sub_42072B proc	near

arg_0= dword ptr  4

mov	eax, [esp+arg_0]
mov	ecx, [eax+24h]
add	ecx, 0F0h
call	sub_422D48
retn	0Ch
sub_42072B endp



; Attributes: bp-based frame

sub_420740 proc	near

var_24=	byte ptr -24h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_4463D4
call	__EH_prolog
sub	esp, 18h
push	ebx
mov	ebx, [ebp+arg_4]
push	esi
mov	esi, [ebp+arg_0]
and	dword ptr [ebx], 0
cmp	byte ptr [esi+10h], 0
jnz	short loc_4207D0
push	edi
lea	ecx, [ebp+var_24]
call	sub_404349
mov	edi, [esi+28h]
and	[ebp+var_4], 0
lea	ecx, [edi+0E4h]
call	sub_4418F0
mov	ecx, [edi+0E8h]	; hHandle
call	sub_441880
mov	eax, [esi+28h]
pop	edi
test	eax, eax
jz	short loc_420791
add	eax, 4
jmp	short loc_420793

loc_420791:
xor	eax, eax

loc_420793:		; hWndParent
push	dword ptr [eax]
lea	ecx, [ebp+var_24]
push	1F5h		; lpTemplateName
call	sub_42FCF7
cmp	eax, 2
jnz	short loc_4207B7
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, 80004004h
jmp	short loc_4207E9

loc_4207B7:
lea	eax, [ebp+Memory]
lea	ecx, [esi+14h]
push	eax
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [esi+10h], 1
call	sub_4284D8
pop	ecx

loc_4207D0:		; psz
push	dword ptr [esi+14h]
call	ds:SysAllocString
mov	[ebx], eax
neg	eax
sbb	eax, eax
and	eax, 7FF8FFF2h
add	eax, 8007000Eh

loc_4207E9:
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_420740 endp

call	sub_420803
jmp	loc_42080D



sub_420803 proc	near
mov	ecx, offset CriticalSection ; lpCriticalSection
jmp	sub_441910
sub_420803 endp


loc_42080D:
push	offset loc_420819
call	_atexit
pop	ecx
retn

loc_420819:
push	offset CriticalSection
call	ds:DeleteCriticalSection
retn


; Attributes: bp-based frame

sub_420825 proc	near

var_40=	dword ptr -40h
var_3C=	dword ptr -3Ch
lpData=	dword ptr -38h
var_34=	dword ptr -34h
var_30=	dword ptr -30h
Memory=	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=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_446400
call	__EH_prolog
sub	esp, 34h
push	ebx
push	esi
xor	ebx, ebx
push	edi
mov	edi, edx
mov	[ebp+var_20], ecx
mov	[ebp+var_3C], ebx
mov	[ebp+lpData], ebx
mov	[ebp+var_40], offset off_44C434
mov	eax, [edi+8]
lea	ecx, [ebp+var_40]
mov	[ebp+var_4], ebx
lea	esi, [eax+eax*2+3]
shl	esi, 2
push	esi		; Size
call	sub_41B339
mov	[ebp+var_34], esi
mov	[ebp+var_30], ebx
mov	[ebp+var_10], 1
mov	[ebp+var_14], 4

loc_420873:
push	[ebp+var_10]
lea	ecx, [ebp+var_40]
call	sub_4209B9
shr	[ebp+var_10], 8
dec	[ebp+var_14]
jnz	short loc_420873
mov	eax, [edi+14h]
mov	[ebp+var_14], 4
mov	[ebp+var_10], eax

loc_420894:
push	[ebp+var_10]
lea	ecx, [ebp+var_40]
call	sub_4209B9
shr	[ebp+var_10], 8
dec	[ebp+var_14]
jnz	short loc_420894
mov	al, [edi+18h]
xor	ecx, ecx
cmp	al, bl
setnz	cl
push	ecx
lea	ecx, [ebp+var_40]
call	sub_4209EB
cmp	[edi+8], ebx
mov	[ebp+var_10], ebx
jle	short loc_42092D

loc_4208C3:
mov	eax, [edi+0Ch]
mov	ecx, [ebp+var_10]
mov	[ebp+var_18], 4
mov	eax, [eax+ecx*4]
mov	[ebp+var_1C], eax
mov	eax, [eax]
mov	[ebp+var_14], eax

loc_4208DB:
push	[ebp+var_14]
lea	ecx, [ebp+var_40]
call	sub_4209B9
shr	[ebp+var_14], 8
dec	[ebp+var_18]
jnz	short loc_4208DB
mov	eax, [ebp+var_1C]
lea	ecx, [ebp+var_40]
mov	al, [eax+4]
push	eax
call	sub_420A0A
mov	eax, [ebp+var_1C]
mov	[ebp+var_1C], 4
mov	eax, [eax+8]
mov	[ebp+var_14], eax

loc_42090E:
push	[ebp+var_14]
lea	ecx, [ebp+var_40]
call	sub_4209B9
shr	[ebp+var_14], 8
dec	[ebp+var_1C]
jnz	short loc_42090E
inc	[ebp+var_10]
mov	eax, [ebp+var_10]
cmp	eax, [edi+8]
jl	short loc_4208C3

loc_42092D:
mov	edi, offset CriticalSection
push	edi		; lpCriticalSection
mov	[ebp+var_1C], edi
call	ds:EnterCriticalSection
mov	[ebp+var_14], ebx
push	ebx		; int
push	ebx		; dwDisposition
push	0F003Fh		; samDesired
push	ebx		; dwOptions
push	ebx		; lpClass
lea	ecx, [ebp+var_14]
push	off_45C164	; lpSubKey
mov	byte ptr [ebp+var_4], 2
push	80000001h	; hKey
call	sub_42D30D
mov	edx, [ebp+var_20]
mov	ebx, [ebp+lpData]
lea	ecx, [ebp+Memory]
call	sub_43A785
mov	eax, [eax]
push	esi		; cbData
push	ebx		; lpData
push	eax		; lpValueName
lea	ecx, [ebp+var_14]
mov	byte ptr [ebp+var_4], 3
call	sub_42D5CE
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 1
lea	ecx, [ebp+var_14]
call	sub_42D390
push	edi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	[ebp+var_40], offset off_44C434
push	[ebp+lpData]	; Memory
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_420825 endp



; Attributes: bp-based frame

sub_4209B9 proc	near

arg_0= dword ptr  8

push	ebp
mov	ebp, esp
mov	eax, [ecx+10h]
cmp	eax, [ecx+0Ch]
jb	short loc_4209D9
lea	eax, [ebp+arg_0]
push	offset unk_452D38
push	eax
mov	[ebp+arg_0], offset aOverflow ;	"overflow"
call	_CxxThrowException

loc_4209D9:
mov	edx, [ecx+8]
push	ebx
mov	bl, byte ptr [ebp+arg_0]
mov	[edx+eax], bl
inc	dword ptr [ecx+10h]
pop	ebx
pop	ebp
retn	4
sub_4209B9 endp




sub_4209EB proc	near

arg_0= dword ptr  4

push	esi
push	edi
push	4
mov	edi, ecx
pop	esi

loc_4209F2:
push	[esp+8+arg_0]
mov	ecx, edi
call	sub_4209B9
shr	[esp+8+arg_0], 8
dec	esi
jnz	short loc_4209F2
pop	edi
pop	esi
retn	4
sub_4209EB endp




sub_420A0A proc	near

arg_0= byte ptr	 4

xor	eax, eax
push	ebx
cmp	[esp+4+arg_0], al
push	esi
push	edi
push	4
setnz	al
mov	ebx, ecx
mov	esi, eax
pop	edi

loc_420A1D:
push	esi
mov	ecx, ebx
call	sub_4209B9
shr	esi, 8
dec	edi
jnz	short loc_420A1D
pop	edi
pop	esi
pop	ebx
retn	4
sub_420A0A endp



; Attributes: bp-based frame

sub_420A31 proc	near

Memory=	dword ptr -44h
var_40=	byte ptr -40h
var_3C=	dword ptr -3Ch
var_38=	dword ptr -38h
var_34=	dword ptr -34h
var_30=	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
cbData=	dword ptr -18h
var_14=	dword ptr -14h
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44642C
call	__EH_prolog
sub	esp, 38h
push	ebx
push	esi
mov	ebx, edx
mov	[ebp+var_1C], ecx
xor	esi, esi
push	edi
mov	ecx, ebx
mov	[ebx+14h], esi
mov	byte ptr [ebx+18h], 1
call	sub_428327
mov	edi, offset off_44C434
mov	[ebp+var_28], esi
mov	[ebp+var_24], esi
mov	[ebp+var_2C], edi
mov	[ebp+var_4], esi
mov	esi, offset CriticalSection
push	esi		; lpCriticalSection
mov	[ebp+var_20], esi
call	ds:EnterCriticalSection
and	[ebp+var_14], 0
push	20019h		; samDesired
lea	ecx, [ebp+var_14]
push	off_45C164	; lpSubKey
mov	byte ptr [ebp+var_4], 2
push	80000001h	; hKey
call	sub_42D35B
test	eax, eax
jz	short loc_420AA3
mov	byte ptr [ebp+var_4], 1
lea	ecx, [ebp+var_14]
jmp	short loc_420AE1

loc_420AA3:
mov	edx, [ebp+var_1C]
lea	ecx, [ebp+Memory]
call	sub_43A785
mov	eax, [eax]
lea	ecx, [ebp+cbData]
push	ecx		; lpcbData
lea	ecx, [ebp+var_2C]
push	ecx		; int
push	eax		; lpValueName
lea	ecx, [ebp+var_14]
mov	byte ptr [ebp+var_4], 3
call	sub_42D887
test	eax, eax
push	[ebp+Memory]	; Memory
setnz	[ebp+var_D]
call	sub_4284D8
cmp	[ebp+var_D], 0
pop	ecx
mov	byte ptr [ebp+var_4], 1
lea	ecx, [ebp+var_14]
jz	short loc_420AF2

loc_420AE1:
call	sub_42D390
push	esi		; lpCriticalSection
call	ds:LeaveCriticalSection
jmp	loc_420BBF

loc_420AF2:
call	sub_42D390
and	byte ptr [ebp+var_4], 0
push	esi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	eax, [ebp+cbData]
push	0Ch
pop	esi
cmp	eax, esi
jb	loc_420BBF
and	[ebp+var_30], 0
mov	[ebp+var_34], eax
mov	eax, [ebp+var_24]
lea	ecx, [ebp+var_38]
mov	[ebp+var_38], eax
call	sub_420BDA
cmp	eax, 1
jnz	loc_420BBF
lea	ecx, [ebp+var_38]
call	sub_420BDA
lea	ecx, [ebp+var_38]
mov	[ebx+14h], eax
call	sub_420BDA
test	eax, eax
setnz	al
sub	[ebp+cbData], esi
mov	[ebx+18h], al
mov	eax, [ebp+cbData]
xor	edx, edx
mov	ecx, esi
div	ecx
test	edx, edx
jnz	short loc_420BBF
mov	eax, [ebp+cbData]
mov	ecx, ebx
div	esi
mov	esi, eax
push	esi
call	sub_428378
test	esi, esi
jle	short loc_420BBF
mov	[ebp+var_14], esi

loc_420B6F:
lea	ecx, [ebp+var_38]
call	sub_420BDA
lea	ecx, [ebp+var_38]
mov	[ebp+Memory], eax
call	sub_420BDA
test	eax, eax
setnz	al
lea	ecx, [ebp+var_38]
mov	[ebp+var_40], al
call	sub_420BDA
mov	[ebp+var_3C], eax
push	0Ch		; Size
call	sub_4284B1
test	eax, eax
pop	ecx
jz	short loc_420BB0
lea	esi, [ebp+Memory]
mov	edi, eax
movsd
movsd
movsd
mov	edi, offset off_44C434
jmp	short loc_420BB2

loc_420BB0:
xor	eax, eax

loc_420BB2:
push	eax
mov	ecx, ebx
call	sub_429907
dec	[ebp+var_14]
jnz	short loc_420B6F

loc_420BBF:		; Memory
push	[ebp+var_24]
mov	[ebp+var_2C], edi
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_420A31 endp




sub_420BDA proc	near
push	ebx
push	esi
push	edi
xor	edi, edi
mov	ebx, ecx
xor	esi, esi

loc_420BE3:
mov	ecx, ebx
call	sub_420C01
movzx	eax, al
mov	ecx, esi
add	esi, 8
shl	eax, cl
or	edi, eax
cmp	esi, 20h
jl	short loc_420BE3
mov	eax, edi
pop	edi
pop	esi
pop	ebx
retn
sub_420BDA endp



; Attributes: bp-based frame

sub_420C01 proc	near

var_4= dword ptr -4

push	ebp
mov	ebp, esp
push	ecx
mov	edx, [ecx+8]
cmp	edx, [ecx+4]
jb	short loc_420C22
lea	eax, [ebp+var_4]
push	offset unk_452D38
push	eax
mov	[ebp+var_4], offset aOverflow ;	"overflow"
call	_CxxThrowException

loc_420C22:
mov	eax, [ecx]
mov	al, [edx+eax]
inc	edx
mov	[ecx+8], edx
leave
retn
sub_420C01 endp



; Attributes: bp-based frame

sub_420C2D proc	near

var_3C=	dword ptr -3Ch
var_38=	dword ptr -38h
lpData=	dword ptr -34h
var_30=	dword ptr -30h
var_2C=	dword ptr -2Ch
Memory=	dword ptr -28h
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_4= dword ptr -4

mov	eax, offset loc_446458
call	__EH_prolog
sub	esp, 30h
push	ebx
push	esi
push	edi
mov	ebx, ecx
push	off_45C160
mov	[ebp+var_18], edx
lea	ecx, [ebp+Memory]
call	sub_41E0DD
mov	edi, offset CriticalSection
xor	esi, esi
push	edi		; lpCriticalSection
mov	[ebp+var_4], esi
mov	[ebp+var_1C], edi
call	ds:EnterCriticalSection
mov	[ebp+var_10], esi
push	esi		; int
push	esi		; dwDisposition
push	0F003Fh		; samDesired
push	esi		; dwOptions
push	esi		; lpClass
lea	ecx, [ebp+var_10]
push	[ebp+Memory]	; lpSubKey
mov	byte ptr [ebp+var_4], 2
push	80000001h	; hKey
call	sub_42D30D
mov	[ebp+var_38], esi
mov	[ebp+lpData], esi
mov	[ebp+var_3C], offset off_44C434
push	14h		; Size
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 3
call	sub_41B339
mov	[ebp+var_2C], esi
mov	esi, [ebx]
mov	[ebp+var_30], 14h
mov	[ebp+var_14], 4

loc_420CB2:
push	esi
lea	ecx, [ebp+var_3C]
call	sub_4209B9
shr	esi, 8
dec	[ebp+var_14]
jnz	short loc_420CB2
mov	esi, [ebx+4]
mov	[ebp+var_14], 4

loc_420CCD:
push	esi
lea	ecx, [ebp+var_3C]
call	sub_4209B9
shr	esi, 8
dec	[ebp+var_14]
jnz	short loc_420CCD
mov	esi, [ebx+8]
mov	[ebp+var_14], 4

loc_420CE8:
push	esi
lea	ecx, [ebp+var_3C]
call	sub_4209B9
shr	esi, 8
dec	[ebp+var_14]
jnz	short loc_420CE8
mov	ebx, [ebx+0Ch]
push	4
pop	esi

loc_420CFF:
push	ebx
lea	ecx, [ebp+var_3C]
call	sub_4209B9
shr	ebx, 8
dec	esi
jnz	short loc_420CFF
push	[ebp+var_18]
lea	ecx, [ebp+var_3C]
call	sub_420A0A
lea	ecx, [ebp+var_10]
push	14h		; cbData
push	[ebp+lpData]	; lpData
push	off_45C168	; lpValueName
call	sub_42D5CE
mov	[ebp+var_3C], offset off_44C434
push	[ebp+lpData]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 1
lea	ecx, [ebp+var_10]
call	sub_42D390
push	edi		; lpCriticalSection
call	ds:LeaveCriticalSection
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_420C2D endp



; Attributes: bp-based frame

sub_420D67 proc	near

lpSubKey= dword	ptr -3Ch
var_30=	dword ptr -30h
var_2C=	dword ptr -2Ch
Memory=	dword ptr -28h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
cbData=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_446484
call	__EH_prolog
sub	esp, 30h
push	ebx
push	esi
push	edi
mov	esi, ecx
push	off_45C160
mov	ebx, edx
lea	ecx, [ebp+lpSubKey]
call	sub_41E0DD
and	[ebp+var_4], 0
mov	edi, offset CriticalSection
push	edi		; lpCriticalSection
mov	[ebp+var_18], edi
call	ds:EnterCriticalSection
and	[ebp+var_10], 0
push	20019h		; samDesired
lea	ecx, [ebp+var_10]
push	[ebp+lpSubKey]	; lpSubKey
mov	byte ptr [ebp+var_4], 2
push	80000001h	; hKey
call	sub_42D35B
test	eax, eax
jz	short loc_420DC4
xor	bl, bl
jmp	loc_420E56

loc_420DC4:
and	[ebp+var_2C], 0
and	[ebp+Memory], 0
mov	[ebp+var_30], offset off_44C434
lea	eax, [ebp+cbData]
lea	ecx, [ebp+var_10]
push	eax		; lpcbData
lea	eax, [ebp+var_30]
push	eax		; int
mov	byte ptr [ebp+var_4], 3
push	off_45C168	; lpValueName
call	sub_42D887
test	eax, eax
jz	short loc_420DF5

loc_420DF1:
xor	bl, bl
jmp	short loc_420E46

loc_420DF5:
push	14h
pop	eax
cmp	[ebp+cbData], eax
jnz	short loc_420DF1
and	[ebp+var_1C], 0
mov	[ebp+var_20], eax
mov	eax, [ebp+Memory]
lea	ecx, [ebp+var_24]
mov	[ebp+var_24], eax
call	sub_420BDA
lea	ecx, [ebp+var_24]
mov	[esi], eax
call	sub_420BDA
lea	ecx, [ebp+var_24]
mov	[esi+4], eax
call	sub_420BDA
lea	ecx, [ebp+var_24]
mov	[esi+8], eax
call	sub_420BDA
lea	ecx, [ebp+var_24]
mov	[esi+0Ch], eax
call	sub_420BDA
test	eax, eax
setnz	al
mov	[ebx], al
mov	bl, 1

loc_420E46:		; Memory
push	[ebp+Memory]
mov	[ebp+var_30], offset off_44C434
call	sub_4284D8
pop	ecx

loc_420E56:
lea	ecx, [ebp+var_10]
mov	byte ptr [ebp+var_4], 1
call	sub_42D390
push	edi		; lpCriticalSection
call	ds:LeaveCriticalSection
push	[ebp+lpSubKey]	; Memory
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
mov	al, bl
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_420D67 endp



; Attributes: bp-based frame

sub_420E83 proc	near

var_3C=	dword ptr -3Ch
var_38=	dword ptr -38h
lpData=	dword ptr -34h
var_30=	dword ptr -30h
var_2C=	dword ptr -2Ch
Memory=	dword ptr -28h
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_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4464B0
call	__EH_prolog
sub	esp, 30h
push	ebx
push	esi
push	edi
mov	[ebp+var_14], ecx
push	off_45C160
mov	[ebp+var_18], edx
lea	ecx, [ebp+Memory]
call	sub_41E0DD
mov	edi, offset CriticalSection
xor	esi, esi
push	edi		; lpCriticalSection
mov	[ebp+var_4], esi
mov	[ebp+var_1C], edi
call	ds:EnterCriticalSection
mov	[ebp+var_10], esi
push	esi		; int
push	esi		; dwDisposition
push	0F003Fh		; samDesired
push	esi		; dwOptions
push	esi		; lpClass
lea	ecx, [ebp+var_10]
push	[ebp+Memory]	; lpSubKey
mov	byte ptr [ebp+var_4], 2
push	80000001h	; hKey
call	sub_42D30D
mov	ebx, offset off_44C434
mov	[ebp+var_38], esi
mov	[ebp+lpData], esi
mov	[ebp+var_3C], ebx
push	0Ch		; Size
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 3
call	sub_41B339
mov	[ebp+var_2C], esi
mov	esi, [ebp+var_14]
mov	[ebp+var_30], 0Ch
mov	[ebp+var_14], 4

loc_420F0B:
push	esi
lea	ecx, [ebp+var_3C]
call	sub_4209B9
shr	esi, 8
dec	[ebp+var_14]
jnz	short loc_420F0B
mov	esi, [ebp+var_18]
mov	[ebp+var_14], 4

loc_420F26:
push	esi
lea	ecx, [ebp+var_3C]
call	sub_4209B9
shr	esi, 8
dec	[ebp+var_14]
jnz	short loc_420F26
mov	esi, [ebp+arg_0]
mov	[ebp+arg_0], 4

loc_420F41:
push	esi
lea	ecx, [ebp+var_3C]
call	sub_4209B9
shr	esi, 8
dec	[ebp+arg_0]
jnz	short loc_420F41
push	0Ch		; cbData
lea	ecx, [ebp+var_10]
push	[ebp+lpData]	; lpData
push	off_45C16C	; lpValueName
call	sub_42D5CE
mov	[ebp+var_3C], ebx
push	[ebp+lpData]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 1
lea	ecx, [ebp+var_10]
call	sub_42D390
push	edi		; lpCriticalSection
call	ds:LeaveCriticalSection
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_420E83 endp



; Attributes: bp-based frame

sub_420F9E proc	near

lpSubKey= dword	ptr -3Ch
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
Memory=	dword ptr -1Ch
var_18=	dword ptr -18h
cbData=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4464DC
call	__EH_prolog
sub	esp, 30h
push	ebx
push	esi
push	edi
mov	ebx, ecx
push	off_45C160
mov	edi, edx
lea	ecx, [ebp+lpSubKey]
call	sub_41E0DD
and	[ebp+var_4], 0
mov	esi, offset CriticalSection
push	esi		; lpCriticalSection
mov	[ebp+var_18], esi
call	ds:EnterCriticalSection
and	[ebp+var_10], 0
push	20019h		; samDesired
lea	ecx, [ebp+var_10]
push	[ebp+lpSubKey]	; lpSubKey
mov	byte ptr [ebp+var_4], 2
push	80000001h	; hKey
call	sub_42D35B
test	eax, eax
jz	short loc_420FF8
xor	bl, bl
jmp	short loc_421071

loc_420FF8:
and	[ebp+var_20], 0
and	[ebp+Memory], 0
mov	[ebp+var_24], offset off_44C434
lea	eax, [ebp+cbData]
lea	ecx, [ebp+var_10]
push	eax		; lpcbData
lea	eax, [ebp+var_24]
push	eax		; int
mov	byte ptr [ebp+var_4], 3
push	off_45C16C	; lpValueName
call	sub_42D887
test	eax, eax
jz	short loc_421029

loc_421025:
xor	bl, bl
jmp	short loc_421061

loc_421029:
push	0Ch
pop	eax
cmp	[ebp+cbData], eax
jnz	short loc_421025
and	[ebp+var_28], 0
mov	[ebp+var_2C], eax
mov	eax, [ebp+Memory]
lea	ecx, [ebp+var_30]
mov	[ebp+var_30], eax
call	sub_420BDA
lea	ecx, [ebp+var_30]
mov	[ebx], eax
call	sub_420BDA
lea	ecx, [ebp+var_30]
mov	[edi], eax
call	sub_420BDA
mov	ecx, [ebp+arg_0]
mov	bl, 1
mov	[ecx], eax

loc_421061:		; Memory
push	[ebp+Memory]
mov	[ebp+var_24], offset off_44C434
call	sub_4284D8
pop	ecx

loc_421071:
lea	ecx, [ebp+var_10]
mov	byte ptr [ebp+var_4], 1
call	sub_42D390
push	esi		; lpCriticalSection
call	ds:LeaveCriticalSection
push	[ebp+lpSubKey]	; Memory
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
mov	al, bl
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_420F9E endp

; START	OF FUNCTION CHUNK FOR sub_4014FE

loc_4210A0:
mov	eax, offset loc_4464F0
call	__EH_prolog
push	ecx
xor	eax, eax
push	esi
mov	esi, ecx
mov	[ebp-10h], eax
push	eax		; int
push	eax		; dwDisposition
push	0F003Fh		; samDesired
push	eax		; dwOptions
push	eax		; lpClass
lea	ecx, [ebp-10h]
push	off_45C160	; lpSubKey
mov	[ebp-4], eax
push	80000001h	; hKey
call	sub_42D30D
lea	ecx, [ebp-10h]
push	esi		; Data
push	lpValueName	; lpValueName
call	sub_42D473
or	dword ptr [ebp-4], 0FFFFFFFFh
lea	ecx, [ebp-10h]
call	sub_42D390
mov	ecx, [ebp-0Ch]
pop	esi
mov	large fs:0, ecx
leave
retn
; END OF FUNCTION CHUNK	FOR sub_4014FE


; Attributes: bp-based frame

sub_4210FA proc	near

Data= byte ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_446504
call	__EH_prolog
push	ecx
push	ecx
and	[ebp+var_10], 0
push	esi
and	[ebp+var_4], 0
push	20019h		; samDesired
push	off_45C160	; lpSubKey
lea	ecx, [ebp+var_10]
push	80000001h	; hKey
call	sub_42D35B
test	eax, eax
jz	short loc_421132
mov	esi, 8000000Dh
jmp	short loc_421150

loc_421132:
lea	eax, [ebp+Data]
lea	ecx, [ebp+var_10]
push	eax		; lpData
push	lpValueName	; lpValueName
call	sub_42D5E9
test	eax, eax
mov	esi, 8000000Dh
jnz	short loc_421150
mov	esi, dword ptr [ebp+Data]

loc_421150:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_10]
call	sub_42D390
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_4210FA endp



; Attributes: bp-based frame

sub_42116B proc	near

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

mov	eax, offset loc_446528
call	__EH_prolog
sub	esp, 18h
push	ebx
push	esi
mov	esi, offset CriticalSection
push	edi
mov	edi, edx
mov	[ebp+var_14], ecx
push	esi		; lpCriticalSection
mov	[ebp+var_18], esi
call	ds:EnterCriticalSection
xor	ebx, ebx
mov	[ebp+var_4], ebx
mov	[ebp+var_10], ebx
push	ebx		; int
push	ebx		; dwDisposition
push	0F003Fh		; samDesired
push	ebx		; dwOptions
push	ebx		; lpClass
lea	ecx, [ebp+var_10]
push	off_45C160	; lpSubKey
mov	byte ptr [ebp+var_4], 1
push	80000001h	; hKey
call	sub_42D30D
mov	edx, [ebp+var_14]
mov	edi, [edi]
lea	ecx, [ebp+Memory]
call	sub_4211FE
mov	eax, [eax]
push	edi		; lpData
push	eax		; lpValueName
lea	ecx, [ebp+var_10]
mov	byte ptr [ebp+var_4], 2
call	sub_42D4CA
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], bl
lea	ecx, [ebp+var_10]
call	sub_42D390
push	esi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_42116B endp



; Attributes: bp-based frame

sub_4211FE proc	near

var_3C=	byte ptr -3Ch
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44653C
call	__EH_prolog
sub	esp, 30h
and	[ebp+var_10], 0
push	esi
mov	eax, edx
mov	esi, ecx
lea	edx, [ebp+var_3C]
mov	ecx, eax
call	sub_427B8F
lea	ecx, [ebp+Memory]
push	off_45C174
call	sub_403091
and	[ebp+var_4], 0
lea	ecx, [ebp+var_3C]
push	ecx
mov	edx, eax
mov	ecx, esi
call	sub_409948
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_4211FE endp



; Attributes: bp-based frame

sub_421255 proc	near

Memory=	dword ptr -20h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_446560
call	__EH_prolog
sub	esp, 14h
push	ebx
push	esi
mov	esi, offset CriticalSection
push	edi
mov	edi, edx
mov	ebx, ecx
push	esi		; lpCriticalSection
mov	[ebp+var_14], esi
call	ds:EnterCriticalSection
and	[ebp+var_4], 0
and	[ebp+var_10], 0
push	20019h		; samDesired
lea	ecx, [ebp+var_10]
push	off_45C160	; lpSubKey
mov	byte ptr [ebp+var_4], 1
push	80000001h	; hKey
call	sub_42D35B
test	eax, eax
jz	short loc_4212B7
and	byte ptr [ebp+var_4], 0
lea	ecx, [ebp+var_10]
call	sub_42D390
push	esi		; lpCriticalSection
call	ds:LeaveCriticalSection
xor	al, al
jmp	short loc_4212F7

loc_4212B7:
mov	edx, ebx
lea	ecx, [ebp+Memory]
call	sub_4211FE
mov	eax, [eax]
push	edi		; cbData
push	eax		; lpValueName
lea	ecx, [ebp+var_10]
mov	byte ptr [ebp+var_4], 2
call	sub_42D70F
mov	ebx, eax
push	[ebp+Memory]	; Memory
neg	ebx
sbb	bl, bl
inc	bl
call	sub_4284D8
and	byte ptr [ebp+var_4], 0
pop	ecx
lea	ecx, [ebp+var_10]
call	sub_42D390
push	esi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	al, bl

loc_4212F7:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_421255 endp



; Attributes: bp-based frame

sub_421306 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_446574
call	__EH_prolog
push	ecx
push	esi
xor	esi, esi
push	edi
mov	edi, ecx
mov	[ebp+var_10], esi
push	esi		; int
push	esi		; dwDisposition
push	0F003Fh		; samDesired
push	esi		; dwOptions
push	esi		; lpClass
lea	ecx, [ebp+var_10]
push	off_45C160	; lpSubKey
mov	[ebp+var_4], esi
push	80000001h	; hKey
call	sub_42D30D
xor	edx, edx
xor	ecx, ecx
mov	eax, edi

loc_42133F:
mov	esi, [eax]
add	eax, 4
and	esi, 0FFh
shl	esi, cl
add	ecx, 8
or	edx, esi
cmp	ecx, 10h
jl	short loc_42133F
push	edx		; Data
lea	ecx, [ebp+var_10]
push	off_45C178	; lpValueName
call	sub_42D473
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_10]
call	sub_42D390
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_421306 endp



; Attributes: bp-based frame

sub_42137F proc	near

Data= byte ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_446588
call	__EH_prolog
push	ecx
push	ecx
and	[ebp+var_10], 0
push	esi
mov	esi, ecx
push	3
and	[ebp+var_4], 0
pop	eax
lea	ecx, [ebp+var_10]
push	20019h		; samDesired
mov	[esi+4], eax
mov	[esi], eax
push	off_45C160	; lpSubKey
push	80000001h	; hKey
call	sub_42D35B
test	eax, eax
jnz	short loc_4213E8
lea	eax, [ebp+Data]
lea	ecx, [ebp+var_10]
push	eax		; lpData
push	off_45C178	; lpValueName
call	sub_42D5E9
test	eax, eax
jnz	short loc_4213E8
push	2
pop	eax

loc_4213D3:
mov	ecx, dword ptr [ebp+Data]
shr	dword ptr [ebp+Data], 8
and	ecx, 0FFh
mov	[esi], ecx
add	esi, 4
dec	eax
jnz	short loc_4213D3

loc_4213E8:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_10]
call	sub_42D390
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_42137F endp




sub_421401 proc	near
mov	edx, ecx
mov	ecx, off_45C17C
jmp	$+5

loc_42140E:
mov	eax, offset loc_4465A4
call	__EH_prolog
sub	esp, 0Ch
push	ebx
push	esi
mov	esi, offset CriticalSection
push	edi
mov	edi, edx
mov	[ebp-14h], ecx
push	esi		; lpCriticalSection
mov	[ebp-18h], esi
call	ds:EnterCriticalSection
xor	ebx, ebx
mov	[ebp-4], ebx
mov	[ebp-10h], ebx
push	ebx		; int
push	ebx		; dwDisposition
push	0F003Fh		; samDesired
push	ebx		; dwOptions
push	ebx		; lpClass
lea	ecx, [ebp-10h]
push	off_45C160	; lpSubKey
mov	byte ptr [ebp-4], 1
push	80000001h	; hKey
call	sub_42D30D
lea	ecx, [ebp-10h]
push	edi		; int
push	dword ptr [ebp-14h] ; lpValueName
call	sub_42D8D9
lea	ecx, [ebp-10h]
mov	[ebp-4], bl
call	sub_42D390
push	esi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp-0Ch]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_421401 endp




sub_421487 proc	near
mov	edx, ecx
mov	ecx, off_45C17C
jmp	$+5

loc_421494:
mov	eax, offset loc_4465C0
call	__EH_prolog
sub	esp, 0Ch
push	esi
push	edi
mov	edi, edx
mov	[ebp-14h], ecx
mov	ecx, edi
call	sub_428327
mov	esi, offset CriticalSection
push	esi		; lpCriticalSection
mov	[ebp-18h], esi
call	ds:EnterCriticalSection
and	dword ptr [ebp-4], 0
and	dword ptr [ebp-10h], 0
push	20019h		; samDesired
lea	ecx, [ebp-10h]
push	off_45C160	; lpSubKey
mov	byte ptr [ebp-4], 1
push	80000001h	; hKey
call	sub_42D35B
test	eax, eax
jnz	short loc_4214F2
push	edi		; int
lea	ecx, [ebp-10h]
push	dword ptr [ebp-14h] ; lpValueName
call	sub_42D9A7

loc_4214F2:
and	byte ptr [ebp-4], 0
lea	ecx, [ebp-10h]
call	sub_42D390
push	esi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp-0Ch]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_421487 endp




sub_421513 proc	near
mov	edx, ecx
mov	ecx, off_45C180
jmp	loc_42140E
sub_421513 endp




sub_421520 proc	near
mov	edx, ecx
mov	ecx, off_45C180
jmp	loc_421494
sub_421520 endp




sub_42152D proc	near
mov	edx, ecx
mov	ecx, off_45C184
jmp	loc_42140E
sub_42152D endp




sub_42153A proc	near
mov	edx, ecx
mov	ecx, off_45C184
jmp	loc_421494
sub_42153A endp




sub_421547 proc	near
push	ebx
push	esi
push	edi
mov	esi, ecx
xor	edi, edi
mov	ebx, edx
cmp	[esi+8], edi
jle	short loc_42157A

loc_421555:
mov	eax, [esi+0Ch]
mov	ecx, [ebx]
mov	eax, [eax+edi*4]
mov	edx, [eax]
call	sub_4282B1
test	eax, eax
jnz	short loc_421574
mov	eax, [esi]
push	1
push	edi
mov	ecx, esi
call	dword ptr [eax+4]
jmp	short loc_421575

loc_421574:
inc	edi

loc_421575:
cmp	edi, [esi+8]
jl	short loc_421555

loc_42157A:
push	ebx
push	0
mov	ecx, esi
call	sub_4140D0
pop	edi
pop	esi
pop	ebx
retn
sub_421547 endp

; START	OF FUNCTION CHUNK FOR sub_4463E0

loc_421588:		; Memory
push	dword ptr [ecx+8]
mov	dword ptr [ecx], offset	off_44C434
call	sub_4284D8
pop	ecx
retn
; END OF FUNCTION CHUNK	FOR sub_4463E0



; int __thiscall sub_421598(void *Memory, char)
sub_421598 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
push	dword ptr [esi+8] ; Memory
mov	dword ptr [esi], offset	off_44C434
call	sub_4284D8
test	[esp+8+arg_0], 1
pop	ecx
jz	short loc_4215B8
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_4215B8:
mov	eax, esi
pop	esi
retn	4
sub_421598 endp




sub_4215BE proc	near
push	esi
push	edi
mov	edi, ecx
mov	edx, 1000100h
mov	esi, edi
neg	esi
lea	eax, [edi+4]
sbb	esi, esi
and	esi, eax
mov	ecx, [esi]
call	sub_40B08D
mov	ecx, [esi]
push	4
mov	edx, offset unk_45C230
call	sub_40B00D
mov	ecx, edi
call	sub_42FC31
pop	edi
mov	al, 1
pop	esi
retn
sub_4215BE endp




sub_4215F3 proc	near
mov	edx, off_45C254
xor	ecx, ecx
jmp	sub_40AD1B
sub_4215F3 endp




sub_421600 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

cmp	[esp+arg_0], 3FCh
jz	short loc_421619
push	[esp+arg_4]
push	[esp+4+arg_0]
call	sub_42FAE0
jmp	short locret_42162F

loc_421619:
xor	eax, eax
push	1		; nShowCmd
push	eax		; lpDirectory
push	eax		; lpParameters
push	lpFile		; lpFile
push	eax		; lpOperation
push	eax		; hwnd
call	ds:ShellExecuteA
mov	al, 1

locret_42162F:
retn	8
sub_421600 endp




sub_421632 proc	near
push	ebx
push	ebp
push	esi
mov	esi, ecx
mov	eax, esi
push	edi
neg	eax
lea	edi, [esi+4]
push	2
sbb	eax, eax
mov	edx, offset unk_45C288
and	eax, edi
mov	ecx, [eax]
call	sub_40B00D
mov	ebp, ds:GetDlgItem
push	3E9h		; nIDDlgItem
push	dword ptr [edi]	; hDlg
lea	ebx, [esi+8]
call	ebp ; GetDlgItem
mov	edx, [esi+0Ch]
mov	ecx, [edi]
mov	[ebx], eax
call	sub_42E6BD
push	3E8h		; nIDDlgItem
push	dword ptr [edi]	; hDlg
call	ebp ; GetDlgItem
mov	edx, [esi+18h]
mov	ecx, eax
call	sub_42E6BD
mov	edx, [esi+24h]
mov	ecx, [ebx]
call	sub_42E6BD
xor	edi, edi
cmp	[esi+38h], edi
jle	short loc_4216A8

loc_421693:
mov	eax, [esi+3Ch]
mov	ecx, ebx
mov	eax, [eax+edi*4]
push	dword ptr [eax]	; lParam
call	sub_42F9BB
inc	edi
cmp	edi, [esi+38h]
jl	short loc_421693

loc_4216A8:
push	0
mov	ecx, esi
call	sub_42FB78
pop	edi
pop	esi
pop	ebp
mov	al, 1
pop	ebx
retn
sub_421632 endp



; Attributes: bp-based frame

sub_4216B8 proc	near

Rect= tagRECT ptr -28h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
nWidth=	dword ptr -8
nHeight= dword ptr -4
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
sub	esp, 28h
push	ebx
push	esi
push	edi
push	8
pop	eax
and	[ebp+Rect.left], 0
and	[ebp+Rect.top],	0
mov	[ebp+Rect.right], eax
mov	[ebp+Rect.bottom], eax
lea	eax, [ebp+Rect]
lea	edi, [ecx+4]
push	eax		; lpRect
mov	[ebp+var_18], ecx
push	dword ptr [edi]	; hDlg
call	ds:MapDialogRect
test	eax, eax
jz	short loc_4216FA
mov	eax, [ebp+Rect.right]
sub	eax, [ebp+Rect.left]
mov	[ebp+var_10], eax
mov	eax, [ebp+Rect.bottom]
sub	eax, [ebp+Rect.top]
mov	[ebp+var_14], eax

loc_4216FA:
mov	esi, ds:GetDlgItem
push	2		; nIDDlgItem
push	dword ptr [edi]	; hDlg
call	esi ; GetDlgItem
mov	ebx, ds:GetWindowRect
lea	ecx, [ebp+Rect]
push	ecx		; lpRect
push	eax		; hWnd
call	ebx ; GetWindowRect
test	eax, eax
jz	short loc_421729
mov	eax, [ebp+Rect.right]
sub	eax, [ebp+Rect.left]
mov	[ebp+nWidth], eax
mov	eax, [ebp+Rect.bottom]
sub	eax, [ebp+Rect.top]
mov	[ebp+nHeight], eax

loc_421729:		; nIDDlgItem
push	1
push	dword ptr [edi]	; hDlg
call	esi ; GetDlgItem
lea	ecx, [ebp+Rect]
push	ecx		; lpRect
push	eax		; hWnd
call	ebx ; GetWindowRect
test	eax, eax
jz	short loc_42174C
mov	eax, [ebp+Rect.right]
sub	eax, [ebp+Rect.left]
mov	[ebp+var_C], eax
mov	eax, [ebp+Rect.bottom]
sub	eax, [ebp+Rect.top]
mov	[ebp+nHeight], eax

loc_42174C:
mov	ebx, [ebp+arg_8]
mov	esi, [ebp+arg_4]
sub	ebx, [ebp+nHeight]
sub	esi, [ebp+nWidth]
push	1		; bErase
push	0		; lpRect
push	dword ptr [edi]	; hWnd
sub	ebx, [ebp+var_14]
sub	esi, [ebp+var_10]
call	ds:InvalidateRect
push	2		; nIDDlgItem
push	dword ptr [edi]	; hDlg
call	ds:GetDlgItem
push	1		; bRepaint
push	[ebp+nHeight]	; nHeight
push	[ebp+nWidth]	; nWidth
push	ebx		; Y
push	esi		; X
push	eax		; hWnd
call	ds:MoveWindow
push	1		; nIDDlgItem
push	dword ptr [edi]	; hDlg
call	ds:GetDlgItem
push	1		; bRepaint
sub	esi, [ebp+var_C]
push	[ebp+nHeight]	; nHeight
push	[ebp+var_C]	; nWidth
push	ebx		; Y
mov	ebx, [ebp+var_10]
sub	esi, ebx
push	esi		; X
push	eax		; hWnd
call	ds:MoveWindow
lea	eax, [ebx+ebx]
mov	ecx, eax
mov	eax, [ebp+arg_4]
sub	eax, ecx
mov	ecx, edi
push	eax		; nWidth
mov	eax, [ebp+var_18]
push	dword ptr [eax+8] ; hWnd
call	sub_4217C9
pop	edi
pop	esi
xor	al, al
pop	ebx
leave
retn	0Ch
sub_4216B8 endp



; Attributes: bp-based frame

; int __stdcall	sub_4217C9(HWND	hWnd, int nWidth)
sub_4217C9 proc	near

Rect= tagRECT ptr -18h
Point= tagPOINT	ptr -8
hWnd= dword ptr	 8
nWidth=	dword ptr  0Ch

push	ebp
mov	ebp, esp
sub	esp, 18h
lea	eax, [ebp+Rect]
push	esi
push	eax		; lpRect
mov	esi, ecx
push	[ebp+hWnd]	; hWnd
call	ds:GetWindowRect
mov	eax, [ebp+Rect.left]
mov	[ebp+Point.x], eax
mov	eax, [ebp+Rect.top]
mov	[ebp+Point.y], eax
lea	eax, [ebp+Point]
push	eax		; lpPoint
push	dword ptr [esi]	; hWnd
call	ds:ScreenToClient
mov	eax, [ebp+Rect.bottom]
push	1		; bRepaint
sub	eax, [ebp+Rect.top]
push	eax		; nHeight
push	[ebp+nWidth]	; nWidth
push	[ebp+Point.y]	; Y
push	[ebp+Point.x]	; X
push	[ebp+hWnd]	; hWnd
call	ds:MoveWindow
neg	eax
sbb	eax, eax
pop	esi
neg	eax
leave
retn	8
sub_4217C9 endp




sub_42181D proc	near
push	esi
mov	esi, ecx
lea	eax, [esi+24h]
lea	ecx, [esi+8]
push	eax
call	sub_42E799
push	1		; nResult
push	dword ptr [esi+4] ; hDlg
call	ds:EndDialog
pop	esi
retn
sub_42181D endp




sub_421839 proc	near

var_4= dword ptr -4

push	ecx
push	ebx
push	ebp
push	esi
mov	esi, ecx
mov	eax, esi
push	edi
neg	eax
lea	edi, [esi+4]
push	2
sbb	eax, eax
mov	edx, offset unk_45C298
and	eax, edi
mov	ecx, [eax]
call	sub_40B00D
mov	ebp, ds:GetDlgItem
push	3E9h		; nIDDlgItem
push	dword ptr [edi]	; hDlg
lea	ebx, [esi+8]
call	ebp ; GetDlgItem
mov	edx, [esi+0Ch]
mov	ecx, [edi]
mov	[ebx], eax
call	sub_42E6BD
push	3E8h		; nIDDlgItem
push	dword ptr [edi]	; hDlg
call	ebp ; GetDlgItem
mov	edx, [esi+18h]
mov	ecx, eax
call	sub_42E6BD
and	[esp+14h+var_4], 0
cmp	dword ptr [esi+44h], 0
jle	short loc_4218B5

loc_421895:
mov	eax, [esi+48h]
mov	ecx, [esp+14h+var_4]
mov	eax, [eax+ecx*4]
mov	ecx, ebx
push	dword ptr [eax]	; lParam
call	sub_42F9BB
inc	[esp+14h+var_4]
mov	eax, [esp+14h+var_4]
cmp	eax, [esi+44h]
jl	short loc_421895

loc_4218B5:
mov	edx, [esi+24h]
mov	ecx, [ebx]
call	sub_42E6BD
mov	ebx, [esi+30h]
push	3EBh		; nIDDlgItem
push	dword ptr [edi]	; hDlg
call	ebp ; GetDlgItem
mov	edx, ebx
mov	ecx, eax
call	sub_42E6BD
push	1
mov	ecx, esi
call	sub_42FB78
pop	edi
pop	esi
pop	ebp
mov	al, 1
pop	ebx
pop	ecx
retn
sub_421839 endp



; Attributes: bp-based frame

; int __stdcall	sub_4218E5(int,	int, int hWnd)
sub_4218E5 proc	near

Rect= tagRECT ptr -30h
var_20=	dword ptr -20h
Y= dword ptr -1Ch
nHeight= dword ptr -18h
var_14=	dword ptr -14h
nWidth=	dword ptr -10h
var_C= dword ptr -0Ch
X= dword ptr -8
var_4= dword ptr -4
arg_4= dword ptr  0Ch
hWnd= dword ptr	 10h

push	ebp
mov	ebp, esp
sub	esp, 30h
push	ebx
push	esi
push	edi
push	8
pop	eax
and	[ebp+Rect.left], 0
and	[ebp+Rect.top],	0
mov	[ebp+Rect.right], eax
mov	[ebp+Rect.bottom], eax
lea	eax, [ebp+Rect]
lea	esi, [ecx+4]
push	eax		; lpRect
mov	[ebp+var_20], ecx
push	dword ptr [esi]	; hDlg
call	ds:MapDialogRect
test	eax, eax
jz	short loc_421927
mov	eax, [ebp+Rect.right]
sub	eax, [ebp+Rect.left]
mov	[ebp+X], eax
mov	eax, [ebp+Rect.bottom]
sub	eax, [ebp+Rect.top]
mov	[ebp+var_C], eax

loc_421927:
mov	edi, ds:GetDlgItem
push	2		; nIDDlgItem
push	dword ptr [esi]	; hDlg
call	edi ; GetDlgItem
lea	ecx, [ebp+Rect]
push	ecx		; lpRect
push	eax		; hWnd
call	ds:GetWindowRect
test	eax, eax
jz	short loc_421956
mov	eax, [ebp+Rect.right]
mov	ebx, [ebp+Rect.bottom]
sub	eax, [ebp+Rect.left]
sub	ebx, [ebp+Rect.top]
mov	[ebp+nWidth], eax
mov	[ebp+var_4], ebx
jmp	short loc_421959

loc_421956:
mov	ebx, [ebp+var_4]

loc_421959:		; nIDDlgItem
push	1
push	dword ptr [esi]	; hDlg
call	edi ; GetDlgItem
lea	ecx, [ebp+Rect]
push	ecx		; lpRect
push	eax		; hWnd
call	ds:GetWindowRect
test	eax, eax
jz	short loc_421982
mov	eax, [ebp+Rect.right]
sub	eax, [ebp+Rect.left]
mov	[ebp+var_14], eax
mov	eax, [ebp+Rect.bottom]
sub	eax, [ebp+Rect.top]
mov	[ebp+var_4], eax
mov	ebx, eax

loc_421982:
mov	eax, [ebp+hWnd]
push	1		; bErase
sub	eax, ebx
mov	ebx, [ebp+arg_4]
sub	eax, [ebp+var_C]
sub	ebx, [ebp+nWidth]
push	0		; lpRect
push	dword ptr [esi]	; hWnd
sub	ebx, [ebp+X]
mov	[ebp+var_C], eax
call	ds:InvalidateRect
push	3EAh		; nIDDlgItem
push	dword ptr [esi]	; hDlg
call	edi ; GetDlgItem
lea	ecx, [ebp+Rect]
push	ecx		; lpRect
push	eax		; hWnd
call	ds:GetWindowRect
lea	eax, [ebp+Rect]
mov	ecx, esi
push	eax
call	sub_421AA9
mov	eax, [ebp+Rect.right]
mov	ecx, [ebp+Rect.top]
sub	eax, [ebp+Rect.left]
push	3EAh		; nIDDlgItem
push	dword ptr [esi]	; hDlg
mov	[ebp+Y], ecx
mov	[ebp+hWnd], eax
mov	eax, [ebp+Rect.bottom]
sub	eax, ecx
mov	[ebp+nHeight], eax
call	edi ; GetDlgItem
mov	ecx, [ebp+arg_4]
push	1		; bRepaint
push	[ebp+nHeight]	; nHeight
sub	ecx, [ebp+hWnd]
push	[ebp+hWnd]	; nWidth
sub	ecx, [ebp+X]
push	[ebp+Y]		; Y
push	ecx		; X
push	eax		; hWnd
call	ds:MoveWindow
mov	eax, [ebp+X]
mov	ecx, [ebp+arg_4]
lea	eax, [eax+eax*2]
sub	ecx, eax
mov	eax, [ebp+var_20]
sub	ecx, [ebp+hWnd]
push	ecx		; nWidth
mov	ecx, esi
push	dword ptr [eax+8] ; hWnd
call	sub_4217C9
push	3EBh		; nIDDlgItem
push	dword ptr [esi]	; hDlg
call	edi ; GetDlgItem
lea	ecx, [ebp+Rect]
push	ecx		; lpRect
push	eax		; hWnd
call	ds:GetWindowRect
lea	eax, [ebp+Rect]
mov	ecx, esi
push	eax
call	sub_421AA9
push	3EBh		; nIDDlgItem
push	dword ptr [esi]	; hDlg
call	edi ; GetDlgItem
mov	[ebp+hWnd], eax
mov	eax, [ebp+var_C]
sub	eax, [ebp+Rect.top]
mov	edx, [ebp+X]
mov	ecx, [ebp+arg_4]
push	1		; bRepaint
dec	eax
dec	eax
push	eax		; nHeight
lea	eax, [edx+edx]
sub	ecx, eax
push	ecx		; nWidth
push	[ebp+Rect.top]	; Y
push	edx		; X
push	[ebp+hWnd]	; hWnd
call	ds:MoveWindow
push	2		; nIDDlgItem
push	dword ptr [esi]	; hDlg
call	edi ; GetDlgItem
push	1		; bRepaint
push	[ebp+var_4]	; nHeight
push	[ebp+nWidth]	; nWidth
push	[ebp+var_C]	; Y
push	ebx		; X
push	eax		; hWnd
call	ds:MoveWindow
push	1		; nIDDlgItem
push	dword ptr [esi]	; hDlg
call	edi ; GetDlgItem
sub	ebx, [ebp+var_14]
push	1		; bRepaint
push	[ebp+var_4]	; nHeight
sub	ebx, [ebp+X]
push	[ebp+var_14]	; nWidth
push	[ebp+var_C]	; Y
push	ebx		; X
push	eax		; hWnd
call	ds:MoveWindow
pop	edi
pop	esi
xor	al, al
pop	ebx
leave
retn	0Ch
sub_4218E5 endp



; Attributes: bp-based frame

sub_421AA9 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
Point= tagPOINT	ptr -8
arg_0= dword ptr  8

push	ebp
mov	ebp, esp
sub	esp, 10h
push	ebx
push	esi
mov	esi, [ebp+arg_0]
push	edi
mov	edi, ds:ScreenToClient
mov	ebx, ecx
mov	eax, [esi]
mov	[ebp+Point.x], eax
mov	eax, [esi+4]
mov	[ebp+Point.y], eax
mov	eax, [esi+8]
mov	[ebp+var_10], eax
mov	eax, [esi+0Ch]
mov	[ebp+var_C], eax
lea	eax, [ebp+Point]
push	eax		; lpPoint
push	dword ptr [ebx]	; hWnd
call	edi ; ScreenToClient
lea	eax, [ebp+var_10]
push	eax		; lpPoint
push	dword ptr [ebx]	; hWnd
call	edi ; ScreenToClient
mov	eax, [ebp+Point.x]
pop	edi
mov	[esi], eax
mov	eax, [ebp+Point.y]
mov	[esi+4], eax
mov	eax, [ebp+var_10]
mov	[esi+8], eax
mov	eax, [ebp+var_C]
mov	[esi+0Ch], eax
pop	esi
pop	ebx
leave
retn	4
sub_421AA9 endp




sub_421B02 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

cmp	[esp+arg_0], 3EAh
jz	short loc_421B1B
push	[esp+arg_4]
push	[esp+4+arg_0]
call	sub_42FAE0
jmp	short locret_421B22

loc_421B1B:
call	sub_421B25
mov	al, 1

locret_421B22:
retn	8
sub_421B02 endp



; Attributes: bp-based frame

sub_421B25 proc	near

var_30=	dword ptr -30h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
Memory=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4465E4
call	__EH_prolog
sub	esp, 24h
push	ebx
push	esi
push	edi
mov	esi, ecx
xor	edi, edi
push	3
lea	ecx, [ebp+var_24]
mov	[ebp+var_24], edi
mov	[ebp+var_20], edi
mov	[ebp+var_1C], edi
call	sub_403396
lea	ebx, [esi+8]
lea	eax, [ebp+var_24]
push	eax
mov	ecx, ebx
mov	[ebp+var_4], edi
call	sub_42E799
push	3020209h
mov	edx, 0D2h
lea	ecx, [ebp+var_30]
call	sub_40B168
push	3
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
mov	[ebp+Memory], edi
mov	[ebp+var_14], edi
mov	[ebp+var_10], edi
call	sub_403396
mov	eax, esi
add	esi, 4
neg	eax
sbb	eax, eax
mov	edx, [ebp+var_30]
and	eax, esi
mov	byte ptr [ebp+var_4], 2
mov	ecx, [eax]
lea	eax, [ebp+Memory]
push	eax
push	[ebp+var_24]
call	sub_42E0C7
test	al, al
jz	short loc_421BCC
lea	ecx, [ebp+Memory]
call	sub_42C33B
push	edi		; lParam
push	0FFFFFFFFh	; wParam
push	14Eh		; Msg
push	dword ptr [ebx]	; hWnd
call	ds:SendMessageA
mov	edx, [ebp+Memory]
mov	ecx, [ebx]
call	sub_42E6BD

loc_421BCC:		; Memory
push	[ebp+Memory]
call	sub_4284D8
push	[ebp+var_30]	; Memory
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
mov	ecx, [ebp+var_C]
add	esp, 0Ch
mov	large fs:0, ecx
pop	edi
pop	esi
pop	ebx
leave
retn
sub_421B25 endp



; Attributes: bp-based frame

sub_421BF6 proc	near

Memory=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
cbData=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_446600
call	__EH_prolog
sub	esp, 18h
push	ebx
push	esi
mov	esi, ecx
push	edi
mov	eax, esi
push	2
neg	eax
lea	edi, [esi+4]
mov	edx, offset unk_45C2A8
sbb	eax, eax
and	eax, edi
mov	ecx, [eax]
call	sub_40B00D
mov	ebx, ds:GetDlgItem
push	3E9h		; nIDDlgItem
push	dword ptr [edi]	; hDlg
call	ebx ; GetDlgItem
push	3F3h		; nIDDlgItem
mov	[esi+8], eax
push	dword ptr [edi]	; hDlg
call	ebx ; GetDlgItem
xor	edi, edi
push	3
lea	ecx, [ebp+cbData]
mov	[esi+0Ch], eax
mov	[ebp+cbData], edi
mov	[ebp+var_14], edi
mov	[ebp+var_10], edi
call	sub_403396
lea	ecx, [ebp+cbData] ; cbData
mov	[ebp+var_4], edi
call	sub_41E8F8
mov	edx, [ebp+cbData]
mov	ecx, [esi+8]
call	sub_42E6BD
push	[ebp+cbData]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx
mov	[ebp+Memory], edi
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+var_20], edi
mov	[ebp+var_1C], edi
call	sub_403396
lea	ecx, [ebp+Memory] ; cbData
mov	[ebp+var_4], 1
call	sub_41E91F
mov	edx, [ebp+Memory]
mov	ecx, [esi+0Ch]
call	sub_42E6BD
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
mov	al, 1
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_421BF6 endp



; Attributes: bp-based frame

sub_421CBE proc	near

var_24=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
Memory=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44661C
call	__EH_prolog
sub	esp, 18h
push	esi
push	edi
mov	esi, ecx
xor	edi, edi
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], edi
mov	[ebp+var_14], edi
mov	[ebp+var_10], edi
call	sub_403396
lea	eax, [ebp+Memory]
lea	ecx, [esi+8]
push	eax
mov	[ebp+var_4], edi
call	sub_42E799
lea	ecx, [ebp+Memory]
call	sub_41E8E4
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx
mov	[ebp+var_24], edi
push	3
lea	ecx, [ebp+var_24]
mov	[ebp+var_20], edi
mov	[ebp+var_1C], edi
call	sub_403396
lea	eax, [ebp+var_24]
lea	ecx, [esi+0Ch]
push	eax
mov	[ebp+var_4], 1
call	sub_42E799
lea	ecx, [ebp+var_24]
call	sub_41E90B
push	[ebp+var_24]	; Memory
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
xor	eax, eax
pop	esi
mov	large fs:0, ecx
leave
retn
sub_421CBE endp




sub_421D4F proc	near
mov	edx, off_45C2B8
xor	ecx, ecx
jmp	sub_40AD1B
sub_421D4F endp




sub_421D5C proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [esp+arg_0]
sub	eax, 3EAh
jz	short loc_421D8D
sub	eax, 0Ah
jz	short loc_421D7B
push	[esp+arg_4]
push	[esp+4+arg_0]
call	sub_42FAE0
jmp	short locret_421DA4

loc_421D7B:
mov	eax, ecx
lea	edx, [ecx+4]
neg	eax
sbb	eax, eax
and	eax, edx
add	ecx, 0Ch
mov	edx, [eax]
jmp	short loc_421D9D

loc_421D8D:
mov	eax, ecx
lea	edx, [ecx+4]
neg	eax
sbb	eax, eax
and	eax, edx
add	ecx, 8
mov	edx, [eax]

loc_421D9D:
call	sub_421DA7
mov	al, 1

locret_421DA4:
retn	8
sub_421D5C endp



; Attributes: bp-based frame

sub_421DA7 proc	near

var_24=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
Memory=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_446638
call	__EH_prolog
sub	esp, 18h
push	ebx
push	esi
push	edi
mov	edi, ecx
xor	esi, esi
mov	ebx, edx
push	3
lea	ecx, [ebp+var_24]
mov	[ebp+var_24], esi
mov	[ebp+var_20], esi
mov	[ebp+var_1C], esi
call	sub_403396
lea	eax, [ebp+var_24]
mov	ecx, edi
push	eax
mov	[ebp+var_4], esi
call	sub_42E799
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], esi
push	3
mov	[ebp+var_14], esi
mov	[ebp+var_10], esi
call	sub_403396
lea	eax, [ebp+Memory]
xor	edx, edx
push	eax
push	offset a_exe	; "*.exe"
push	[ebp+var_24]
mov	ecx, ebx
mov	byte ptr [ebp+var_4], 1
call	sub_429502
test	al, al
jz	short loc_421E18
mov	edx, [ebp+Memory]
mov	ecx, [edi]
call	sub_42E6BD

loc_421E18:		; Memory
push	[ebp+Memory]
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_421DA7 endp



; Attributes: bp-based frame

sub_421E39 proc	near

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

push	ebp
mov	ebp, esp
cmp	[ebp+arg_0], 300h
jnz	short loc_421E60
cmp	[ebp+arg_4], 3E9h
jz	short loc_421E57
cmp	[ebp+arg_4], 3F3h
jnz	short loc_421E60

loc_421E57:
call	sub_407229
mov	al, 1
jmp	short loc_421E6E

loc_421E60:
push	[ebp+arg_8]
push	[ebp+arg_4]
push	[ebp+arg_0]
call	sub_42FAC5

loc_421E6E:
pop	ebp
retn	0Ch
sub_421E39 endp



; Attributes: bp-based frame

sub_421E72 proc	near

var_80=	dword ptr -80h
var_78=	dword ptr -78h
var_74=	dword ptr -74h
var_6C=	dword ptr -6Ch
var_60=	dword ptr -60h
var_54=	dword ptr -54h
Memory=	dword ptr -48h
lParam=	dword ptr -3Ch
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
wParam=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_446694
call	__EH_prolog
sub	esp, 74h
push	ebx
push	esi
push	edi
mov	edi, ecx
mov	eax, edi
push	1
neg	eax
lea	esi, [edi+4]
mov	edx, offset unk_45C2F8
sbb	eax, eax
and	eax, esi
mov	ecx, [eax]
call	sub_40B00D
push	3E9h		; nIDDlgItem
push	dword ptr [esi]	; hDlg
call	ds:GetDlgItem
lea	esi, [edi+8]
mov	edx, 3E4h
lea	ecx, [ebp+var_60]
mov	[esi], eax
call	sub_42DBF9
and	[ebp+var_4], 0
mov	edx, eax
lea	ecx, [ebp+var_54]
call	sub_4220D1
mov	ebx, eax
mov	edx, 3E3h
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_42DBF9
push	ebx
mov	edx, eax
lea	ecx, [ebp+lParam]
mov	byte ptr [ebp+var_4], 2
call	sub_40356A
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_54]	; Memory
call	sub_4284D8
push	[ebp+var_60]	; Memory
mov	byte ptr [ebp+var_4], 4
call	sub_4284D8
add	esp, 0Ch
mov	ecx, esi
push	[ebp+lParam]	; lParam
call	sub_42F9BB
push	dword ptr [edi+14h] ; lParam
mov	ebx, ds:SendMessageA
push	eax		; wParam
push	151h		; Msg
push	dword ptr [esi]	; hWnd
call	ebx ; SendMessageA
push	offset asc_45B600 ; "-"
lea	ecx, [ebp+var_30]
call	sub_403091
lea	eax, [ebp+var_30]
lea	ecx, [edi+0Ch]
push	eax
mov	byte ptr [ebp+var_4], 7
call	sub_4032B4
push	[ebp+var_30]	; Memory
mov	byte ptr [ebp+var_4], 4
call	sub_4284D8
pop	ecx
push	0		; lParam
push	0		; wParam
push	14Eh		; Msg
push	dword ptr [esi]	; hWnd
call	ebx ; SendMessageA
lea	ecx, [ebp+var_80]
call	sub_40337B
mov	[ebp+var_80], offset off_44BCF4
lea	ecx, [ebp+var_80]
mov	byte ptr [ebp+var_4], 8
call	sub_40B1DE
xor	eax, eax
cmp	[ebp+var_78], eax
mov	[ebp+var_14], eax
jle	loc_422098
jmp	short loc_421F8C

loc_421F8A:
xor	eax, eax

loc_421F8C:
mov	ecx, [ebp+var_74]
mov	edx, [ebp+var_14]
push	3
mov	ecx, [ecx+edx*4]
mov	[ebp+var_24], eax
mov	[ebp+var_10], ecx
lea	ecx, [ebp+var_24]
mov	[ebp+var_20], eax
mov	[ebp+var_1C], eax
call	sub_403396
xor	eax, eax
push	3
lea	ecx, [ebp+var_30]
mov	byte ptr [ebp+var_4], 9
mov	[ebp+var_30], eax
mov	[ebp+var_2C], eax
mov	[ebp+var_28], eax
call	sub_403396
mov	ecx, [ebp+var_10]
lea	eax, [ebp+var_24]
push	eax
push	0
mov	byte ptr [ebp+var_4], 0Ah
call	sub_427F75
test	al, al
jnz	short loc_421FE9
mov	eax, [ebp+var_10]
lea	ecx, [ebp+var_24]
add	eax, 14h
push	eax
call	sub_40312C

loc_421FE9:
mov	ecx, [ebp+var_10]
lea	eax, [ebp+var_30]
push	eax
push	1
call	sub_427F75
test	al, al
jz	short loc_422026
cmp	[ebp+var_2C], 0
jz	short loc_422026
lea	edx, [ebp+var_30]
lea	ecx, [ebp+var_6C]
call	sub_4220D1
push	eax
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_4031F2
push	[ebp+var_6C]	; Memory
mov	byte ptr [ebp+var_4], 0Ah
call	sub_4284D8
pop	ecx

loc_422026:		; lParam
push	[ebp+var_24]
mov	ecx, esi
call	sub_42F9BB
push	dword ptr [edi+14h] ; lParam
mov	[ebp+wParam], eax
push	eax		; wParam
push	151h		; Msg
push	dword ptr [esi]	; hWnd
call	ebx ; SendMessageA
mov	eax, [ebp+var_10]
lea	ecx, [edi+0Ch]
add	eax, 14h
push	eax
mov	[ebp+var_10], eax
call	sub_4032B4
mov	eax, [ebp+var_10]
mov	ecx, dword_45D8E0
mov	edx, [eax]
call	sub_4282B1
test	eax, eax
jnz	short loc_422073
push	eax		; lParam
push	[ebp+wParam]	; wParam
push	14Eh		; Msg
push	dword ptr [esi]	; hWnd
call	ebx ; SendMessageA

loc_422073:		; Memory
push	[ebp+var_30]
call	sub_4284D8
push	[ebp+var_24]	; Memory
mov	byte ptr [ebp+var_4], 8
call	sub_4284D8
inc	[ebp+var_14]
pop	ecx
mov	eax, [ebp+var_14]
pop	ecx
cmp	eax, [ebp+var_78]
jl	loc_421F8A

loc_422098:
mov	[ebp+var_80], offset off_44BCF4
lea	ecx, [ebp+var_80]
mov	byte ptr [ebp+var_4], 0Ch
call	sub_428327
lea	ecx, [ebp+var_80]
mov	byte ptr [ebp+var_4], 4
call	sub_4282FE
push	[ebp+lParam]	; Memory
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
mov	al, 1
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_421E72 endp



; Attributes: bp-based frame

sub_4220D1 proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4466A8
call	__EH_prolog
sub	esp, 10h
and	[ebp+var_10], 0
push	esi
mov	esi, ecx
push	edx
mov	edx, offset asc_45C334 ; " ("
lea	ecx, [ebp+Memory]
call	sub_422192
and	[ebp+var_4], 0
push	29h
mov	edx, eax
mov	ecx, esi
call	sub_409999
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_4220D1 endp




sub_42211A proc	near
push	esi
push	edi
mov	edi, ds:SendMessageA
push	0		; lParam
mov	esi, ecx
push	0		; wParam
push	147h		; Msg
push	dword ptr [esi+8] ; hWnd
call	edi ; SendMessageA
push	0		; lParam
push	eax		; wParam
push	150h		; Msg
push	dword ptr [esi+8] ; hWnd
call	edi ; SendMessageA
mov	ecx, [esi+18h]
mov	ecx, [ecx+eax*4]
call	sub_41E80B
call	sub_40AE68
mov	byte ptr [esi+20h], 1
pop	edi
xor	eax, eax
pop	esi
retn
sub_42211A endp




sub_422158 proc	near
mov	edx, off_45C300
xor	ecx, ecx
jmp	sub_40AD1B
sub_422158 endp



; Attributes: bp-based frame

sub_422165 proc	near

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

push	ebp
mov	ebp, esp
cmp	[ebp+arg_0], 1
jnz	short loc_422180
cmp	[ebp+arg_4], 3E9h
jnz	short loc_422180
call	sub_407229
mov	al, 1
jmp	short loc_42218E

loc_422180:
push	[ebp+arg_8]
push	[ebp+arg_4]
push	[ebp+arg_0]
call	sub_42FAC5

loc_42218E:
pop	ebp
retn	0Ch
sub_422165 endp



; Attributes: bp-based frame

sub_422192 proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4466BC
call	__EH_prolog
sub	esp, 10h
and	[ebp+var_10], 0
push	esi
mov	esi, ecx
push	edx
lea	ecx, [ebp+Memory]
call	sub_403091
push	[ebp+arg_0]
and	[ebp+var_4], 0
lea	ecx, [ebp+Memory]
call	sub_4031F2
lea	eax, [ebp+Memory]
mov	ecx, esi
push	eax
call	sub_4030F2
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_422192 endp



; Attributes: bp-based frame

sub_4221E3 proc	near

var_4C=	byte ptr -4Ch
var_40=	dword ptr -40h
var_3C=	dword ptr -3Ch
lParam=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_10=	dword ptr -10h
var_4= dword ptr -4

push	ebp
mov	ebp, esp
sub	esp, 4Ch
push	ebx
push	esi
mov	esi, ecx
push	edi
mov	eax, esi
push	2
neg	eax
lea	ebx, [esi+4]
mov	edx, offset unk_45C340
sbb	eax, eax
and	eax, ebx
mov	ecx, [eax]
call	sub_40B00D
push	3E8h		; nIDDlgItem
lea	edi, [esi+8]
push	dword ptr [ebx]	; hDlg
call	ds:GetDlgItem
mov	[edi], eax
call	sub_41EA9A
mov	ebx, ds:SendMessageA
test	al, al
jz	short loc_422235
push	48h		; lParam
push	0		; wParam
push	1036h		; Msg
push	dword ptr [edi]	; hWnd
call	ebx ; SendMessageA

loc_422235:
mov	edx, [esi+0Ch]
mov	ecx, [esi+4]
call	sub_42E6BD
lea	ecx, [ebp+lParam]
xor	eax, eax
push	ecx		; lParam
push	eax		; wParam
push	101Bh		; Msg
mov	[ebp+lParam], 0Bh
push	dword ptr [edi]	; hWnd
mov	[ebp+var_20], eax
mov	[ebp+var_10], eax
mov	[ebp+var_1C], 0C8h
call	ebx ; SendMessageA
and	[ebp+var_4], 0
cmp	dword ptr [esi+24h], 0
jle	short loc_4222AA

loc_42226E:
mov	ecx, [esi+28h]
mov	eax, [ebp+var_4]
mov	ecx, [ecx+eax*4]
push	dword ptr [ecx]
mov	ecx, edi
push	eax
call	sub_42FE6D
inc	[ebp+var_4]
mov	eax, [ebp+var_4]
cmp	eax, [esi+24h]
jl	short loc_42226E
cmp	dword ptr [esi+24h], 0
jle	short loc_4222AA
push	3
pop	eax
mov	[ebp+var_3C], eax
mov	[ebp+var_40], eax
lea	eax, [ebp+var_4C]
push	eax		; lParam
push	0		; wParam
push	102Bh		; Msg
push	dword ptr [edi]	; hWnd
call	ebx ; SendMessageA

loc_4222AA:		; lParam
push	0FFFFh
push	0		; wParam
push	101Eh		; Msg
push	dword ptr [edi]	; hWnd
call	ebx ; SendMessageA
and	byte ptr [esi+19h], 0
push	0
mov	ecx, esi
call	sub_42FB78
pop	edi
pop	esi
mov	al, 1
pop	ebx
leave
retn
sub_4221E3 endp



; Attributes: bp-based frame

sub_4222CE proc	near

Rect= tagRECT ptr -24h
Y= dword ptr -14h
var_10=	dword ptr -10h
nWidth=	dword ptr -0Ch
X= dword ptr -8
nHeight= dword ptr -4
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
sub	esp, 24h
push	ebx
push	esi
push	edi
push	8
pop	eax
and	[ebp+Rect.left], 0
and	[ebp+Rect.top],	0
mov	[ebp+Rect.right], eax
mov	[ebp+Rect.bottom], eax
lea	eax, [ebp+Rect]
mov	ebx, ecx
push	eax		; lpRect
push	dword ptr [ebx+4] ; hDlg
call	ds:MapDialogRect
test	eax, eax
jz	short loc_42230D
mov	eax, [ebp+Rect.right]
sub	eax, [ebp+Rect.left]
mov	[ebp+X], eax
mov	eax, [ebp+Rect.bottom]
sub	eax, [ebp+Rect.top]
mov	[ebp+Y], eax

loc_42230D:
mov	edi, ds:GetDlgItem
push	2		; nIDDlgItem
push	dword ptr [ebx+4] ; hDlg
call	edi ; GetDlgItem
mov	esi, ds:GetWindowRect
lea	ecx, [ebp+Rect]
push	ecx		; lpRect
push	eax		; hWnd
call	esi ; GetWindowRect
test	eax, eax
jz	short loc_42233D
mov	eax, [ebp+Rect.right]
sub	eax, [ebp+Rect.left]
mov	[ebp+nWidth], eax
mov	eax, [ebp+Rect.bottom]
sub	eax, [ebp+Rect.top]
mov	[ebp+nHeight], eax

loc_42233D:		; nIDDlgItem
push	1
push	dword ptr [ebx+4] ; hDlg
call	edi ; GetDlgItem
lea	ecx, [ebp+Rect]
push	ecx		; lpRect
push	eax		; hWnd
call	esi ; GetWindowRect
test	eax, eax
jz	short loc_422361
mov	eax, [ebp+Rect.right]
sub	eax, [ebp+Rect.left]
mov	[ebp+var_10], eax
mov	eax, [ebp+Rect.bottom]
sub	eax, [ebp+Rect.top]
mov	[ebp+nHeight], eax

loc_422361:
mov	esi, [ebp+arg_8]
mov	edi, [ebp+arg_4]
sub	esi, [ebp+nHeight]
sub	edi, [ebp+nWidth]
push	1		; bErase
push	0		; lpRect
push	dword ptr [ebx+4] ; hWnd
sub	esi, [ebp+Y]
sub	edi, [ebp+X]
call	ds:InvalidateRect
push	2		; nIDDlgItem
push	dword ptr [ebx+4] ; hDlg
call	ds:GetDlgItem
push	1		; bRepaint
push	[ebp+nHeight]	; nHeight
push	[ebp+nWidth]	; nWidth
push	esi		; Y
push	edi		; X
push	eax		; hWnd
call	ds:MoveWindow
push	1		; nIDDlgItem
push	dword ptr [ebx+4] ; hDlg
call	ds:GetDlgItem
sub	edi, [ebp+var_10]
push	1		; bRepaint
push	[ebp+nHeight]	; nHeight
sub	edi, [ebp+X]
push	[ebp+var_10]	; nWidth
push	esi		; Y
push	edi		; X
mov	edi, ds:MoveWindow
push	eax		; hWnd
call	edi ; MoveWindow
mov	ecx, [ebp+Y]
mov	edx, [ebp+X]
push	1		; bRepaint
lea	eax, [ecx+ecx]
sub	esi, eax
lea	eax, [edx+edx]
push	esi		; nHeight
mov	esi, eax
mov	eax, [ebp+arg_4]
sub	eax, esi
push	eax		; nWidth
push	ecx		; Y
push	edx		; X
push	dword ptr [ebx+8] ; hWnd
call	edi ; MoveWindow
pop	edi
pop	esi
xor	al, al
pop	ebx
leave
retn	0Ch
sub_4222CE endp



; Attributes: bp-based frame

; int __stdcall	sub_4223E9(int,	WPARAM wParam)
sub_4223E9 proc	near

lParam=	dword ptr -2Ch
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_4= dword ptr -4
wParam=	dword ptr  0Ch

push	ebp
mov	ebp, esp
sub	esp, 2Ch
mov	edx, [ebp+wParam]
mov	eax, [ecx+8]
push	esi
push	edi
cmp	[edx], eax
lea	edi, [ecx+8]
mov	[ebp+var_4], ecx
jnz	short loc_422440
mov	esi, [edx+8]
cmp	esi, 0FFFFFF65h
jz	short loc_422439
cmp	esi, 0FFFFFF8Eh
jz	short loc_422426
cmp	esi, 0FFFFFFFBh
jbe	short loc_422440
cmp	esi, 0FFFFFFFDh
ja	short loc_422440
cmp	byte_45B2C0, 0
jnz	short loc_422440
jmp	short loc_42242F

loc_422426:
cmp	byte_45B2C0, 0
jz	short loc_422440

loc_42242F:
mov	eax, [ecx]
call	dword ptr [eax+20h]
jmp	loc_4224CA

loc_422439:
cmp	word ptr [edx+0Ch], 2Eh
jz	short loc_422447

loc_422440:
xor	al, al
jmp	loc_4224CC

loc_422447:
cmp	byte ptr [ecx+18h], 0
jz	short loc_422440
mov	esi, ds:SendMessageA
push	ebx
push	2		; lParam
mov	ebx, 100Ch
push	0FFFFFFFFh	; wParam
push	ebx		; Msg
push	eax		; hWnd

loc_42245F:
call	esi ; SendMessageA
test	eax, eax
mov	[ebp+wParam], eax
jl	short loc_422497
mov	eax, [ebp+var_4]
push	0		; lParam
push	[ebp+wParam]	; wParam
mov	byte ptr [eax+19h], 1
push	1008h		; Msg
push	dword ptr [edi]	; hWnd
call	esi ; SendMessageA
mov	eax, [ebp+var_4]
push	1
push	[ebp+wParam]
lea	ecx, [eax+1Ch]
mov	eax, [eax+1Ch]
call	dword ptr [eax+4]
push	2
push	0FFFFFFFFh
push	ebx
push	dword ptr [edi]
jmp	short loc_42245F

loc_422497:
mov	ecx, edi
call	sub_402DF8
test	eax, eax
pop	ebx
jl	short loc_4224BA
push	3
pop	ecx
mov	[ebp+var_1C], ecx
mov	[ebp+var_20], ecx
lea	ecx, [ebp+lParam]
push	ecx		; lParam
push	eax		; wParam
push	102Bh		; Msg
push	dword ptr [edi]	; hWnd
call	esi ; SendMessageA

loc_4224BA:		; lParam
push	0FFFFh
push	0		; wParam
push	101Eh		; Msg
push	dword ptr [edi]	; hWnd
call	esi ; SendMessageA

loc_4224CA:
mov	al, 1

loc_4224CC:
pop	edi
pop	esi
leave
retn	8
sub_4223E9 endp




sub_4224D2 proc	near
push	esi
mov	esi, ecx
lea	ecx, [esi+8]
call	sub_402DF8
push	1		; nResult
mov	[esi+30h], eax
push	dword ptr [esi+4] ; hDlg
call	ds:EndDialog
pop	esi
retn
sub_4224D2 endp



; Attributes: bp-based frame

sub_4224ED proc	near

var_40=	byte ptr -40h
arg_0= dword ptr  8

push	ebp
mov	ebp, esp
sub	esp, 40h
push	esi
push	edi
push	0		; lParam
lea	esi, [ecx+8]
push	0		; wParam
push	1004h		; Msg
push	dword ptr [esi]	; hWnd
call	ds:SendMessageA
mov	edi, eax
lea	ecx, [ebp+var_40]
cdq
push	edx
push	eax
call	sub_427B9C
lea	eax, [ebp+var_40]
mov	ecx, esi
push	eax
push	edi
call	sub_42FE6D
push	[ebp+arg_0]
mov	ecx, esi
push	1
push	edi
call	sub_42FEA4
pop	edi
pop	esi
leave
retn	4
sub_4224ED endp



; Attributes: bp-based frame

sub_422535 proc	near

Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4466D8
call	__EH_prolog
sub	esp, 18h
push	ebx
push	esi
push	edi
mov	edi, ecx
push	[ebp+arg_0]
lea	ecx, [ebp+var_18]
call	sub_403091
xor	ebx, ebx
mov	[ebp+var_4], ebx

loc_422557:
cmp	[ebp+var_14], ebx
jz	short loc_4225B8
mov	edx, [ebp+var_18]
mov	eax, edx
mov	cx, [edx]

loc_422564:
cmp	cx, 0Ah
jz	short loc_422576
cmp	cx, bx
jz	short loc_42257E
inc	eax
inc	eax
mov	cx, [eax]
jmp	short loc_422564

loc_422576:
sub	eax, edx
sar	eax, 1
mov	esi, eax
jmp	short loc_422581

loc_42257E:
or	esi, 0FFFFFFFFh

loc_422581:
cmp	esi, ebx
jl	short loc_4225B8
lea	eax, [ebp+Memory]
push	esi
push	eax
lea	ecx, [ebp+var_18]
call	sub_403228
push	dword ptr [eax]
mov	ecx, edi
mov	byte ptr [ebp+var_4], 1
call	sub_4224ED
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx
inc	esi
push	esi
push	ebx
lea	ecx, [ebp+var_18]
call	sub_40708E
jmp	short loc_422557

loc_4225B8:
push	[ebp+var_18]
mov	ecx, edi
call	sub_4224ED
push	[ebp+var_18]	; Memory
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_422535 endp




sub_4225DC proc	near

var_1C=	dword ptr -1Ch
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4466EC
call	__EH_prolog
sub	esp, 10h
push	ebx
push	ebp
push	esi
push	edi
mov	edi, ecx
mov	edx, 2000A00h
mov	esi, edi
neg	esi
lea	ebp, [edi+4]
sbb	esi, esi
and	esi, ebp
mov	ecx, [esi]
call	sub_40B08D
mov	ecx, [esi]
push	1
mov	edx, offset unk_45C350
call	sub_40B00D
push	3E8h		; nIDDlgItem
push	dword ptr [ebp+0] ; hDlg
call	ds:GetDlgItem
mov	ebp, ds:SendMessageA
xor	ebx, ebx
push	ebx		; lParam
lea	esi, [edi+8]
push	1		; wParam
push	2005h		; Msg
push	eax		; hWnd
mov	[esi], eax
call	ebp ; SendMessageA
push	1Eh		; int
push	offset word_45D498 ; int
push	ebx		; wParam
mov	ecx, esi
call	sub_42FE38
push	2000A80h
mov	edx, 1F7h
lea	ecx, [esp+30h+Memory]
call	sub_40B168
push	258h		; int
mov	ecx, esi
push	[esp+30h+Memory] ; int
mov	[esp+34h+var_4], ebx
push	1		; wParam
call	sub_42FE38
mov	eax, [edi+0Ch]
mov	[esp+2Ch+var_1C], ebx
cmp	[eax+8], ebx
jle	short loc_4226A1

loc_42267E:
mov	eax, [eax+0Ch]
mov	ecx, [esp+2Ch+var_1C]
mov	eax, [eax+ecx*4]
mov	ecx, edi
push	dword ptr [eax]
call	sub_422535
inc	[esp+2Ch+var_1C]
mov	eax, [edi+0Ch]
mov	ecx, [esp+2Ch+var_1C]
cmp	ecx, [eax+8]
jl	short loc_42267E

loc_4226A1:		; lParam
push	0FFFFh
push	ebx		; wParam
push	101Eh		; Msg
push	dword ptr [esi]	; hWnd
call	ebp ; SendMessageA
push	0FFFFh		; lParam
push	1		; wParam
push	101Eh		; Msg
push	dword ptr [esi]	; hWnd
call	ebp ; SendMessageA
push	ebx
mov	ecx, edi
call	sub_42FB78
push	[esp+2Ch+Memory] ; Memory
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [esp+28h+var_C]
pop	esi
pop	ebp
mov	al, 1
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_4225DC endp



; Attributes: bp-based frame

sub_4226E5 proc	near

Rect= tagRECT ptr -20h
X= dword ptr -10h
Y= dword ptr -0Ch
nWidth=	dword ptr -8
nHeight= dword ptr -4
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
sub	esp, 20h
push	ebx
push	esi
push	edi
push	8
pop	eax
and	[ebp+Rect.left], 0
and	[ebp+Rect.top],	0
mov	[ebp+Rect.right], eax
mov	[ebp+Rect.bottom], eax
lea	eax, [ebp+Rect]
mov	edi, ecx
push	eax		; lpRect
push	dword ptr [edi+4] ; hDlg
call	ds:MapDialogRect
test	eax, eax
jz	short loc_422724
mov	eax, [ebp+Rect.right]
sub	eax, [ebp+Rect.left]
mov	[ebp+X], eax
mov	eax, [ebp+Rect.bottom]
sub	eax, [ebp+Rect.top]
mov	[ebp+Y], eax

loc_422724:
mov	ebx, ds:GetDlgItem
push	1		; nIDDlgItem
push	dword ptr [edi+4] ; hDlg
call	ebx ; GetDlgItem
lea	ecx, [ebp+Rect]
push	ecx		; lpRect
push	eax		; hWnd
call	ds:GetWindowRect
test	eax, eax
jz	short loc_422754
mov	eax, [ebp+Rect.right]
sub	eax, [ebp+Rect.left]
mov	[ebp+nWidth], eax
mov	eax, [ebp+Rect.bottom]
sub	eax, [ebp+Rect.top]
mov	[ebp+nHeight], eax
jmp	short loc_422757

loc_422754:
mov	eax, [ebp+nHeight]

loc_422757:
mov	esi, [ebp+arg_8]
push	1		; bErase
push	0		; lpRect
sub	esi, eax
push	dword ptr [edi+4] ; hWnd
sub	esi, [ebp+Y]
call	ds:InvalidateRect
push	1		; nIDDlgItem
push	dword ptr [edi+4] ; hDlg
call	ebx ; GetDlgItem
mov	ebx, [ebp+arg_4]
push	1		; bRepaint
push	[ebp+nHeight]	; nHeight
mov	ecx, ebx
sub	ecx, [ebp+nWidth]
push	[ebp+nWidth]	; nWidth
sub	ecx, [ebp+X]
push	esi		; Y
push	ecx		; X
push	eax		; hWnd
call	ds:MoveWindow
mov	eax, [ebp+Y]
push	1		; bRepaint
lea	ecx, [eax+eax]
sub	esi, ecx
mov	ecx, [ebp+X]
push	esi		; nHeight
lea	edx, [ecx+ecx]
sub	ebx, edx
push	ebx		; nWidth
push	eax		; Y
push	ecx		; X
push	dword ptr [edi+8] ; hWnd
call	ds:MoveWindow
pop	edi
pop	esi
xor	al, al
pop	ebx
leave
retn	0Ch
sub_4226E5 endp



; Attributes: bp-based frame

sub_4227B7 proc	near

var_48=	dword ptr -48h
var_3C=	dword ptr -3Ch
var_30=	dword ptr -30h
var_24=	dword ptr -24h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_446720
call	__EH_prolog
sub	esp, 3Ch
mov	al, [ecx+8]
push	esi
mov	esi, [ebp+arg_0]
neg	al
sbb	eax, eax
and	eax, 34h
add	eax, 1Eh
cmp	[esi+4], eax
jle	loc_422872
cdq
push	ebx
sub	eax, edx
push	edi
mov	edi, eax
sar	edi, 1
lea	eax, [ebp+var_48]
push	edi
push	eax
mov	ecx, esi
call	sub_40B5EF
mov	ebx, eax
and	[ebp+var_4], 0
push	offset a___	; " ...	"
lea	ecx, [ebp+var_3C]
call	sub_403091
mov	[ebp+arg_0], eax
lea	eax, [ebp+var_30]
push	edi
push	eax
mov	ecx, esi
mov	byte ptr [ebp+var_4], 1
call	sub_403228
push	[ebp+arg_0]
mov	edx, eax
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 2
call	sub_40356A
push	ebx
mov	edx, eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 3
call	sub_40356A
push	eax
mov	ecx, esi
mov	byte ptr [ebp+var_4], 4
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
push	[ebp+var_30]	; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
push	[ebp+var_48]	; Memory
call	sub_4284D8
add	esp, 14h
pop	edi
pop	ebx

loc_422872:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_4227B7 endp



; Attributes: bp-based frame

; int __stdcall	sub_422881(int,	int nIDDlgItem,	int)
sub_422881 proc	near

var_1E0= dword ptr -1E0h
psfi= SHFILEINFOA ptr -1D0h
var_70=	dword ptr -70h
LocalFileTime= _FILETIME ptr -68h
var_60=	dword ptr -60h
var_54=	dword ptr -54h
var_50=	dword ptr -50h
var_4C=	dword ptr -4Ch
var_48=	dword ptr -48h
var_3C=	dword ptr -3Ch
var_38=	dword ptr -38h
var_34=	dword ptr -34h
var_30=	dword ptr -30h
var_2C=	dword ptr -2Ch
var_28=	dword ptr -28h
Memory=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
nIDDlgItem= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_44678C
call	__EH_prolog
sub	esp, 1C4h
push	ebx
push	esi
mov	[ebp+LocalFileTime.dwHighDateTime], ecx
push	edi
xor	ebx, ebx
push	3
lea	ecx, [ebp+var_54]
mov	[ebp+var_54], ebx
mov	[ebp+var_50], ebx
mov	[ebp+var_4C], ebx
call	sub_403396
mov	esi, [ebp+arg_8]
mov	[ebp+var_4], ebx
cmp	[esi], bl
jz	short loc_4228FD
push	dword ptr [esi+0Ch]
lea	ecx, [ebp+var_48]
push	dword ptr [esi+8]
call	sub_4073AB
push	eax
push	2000982h
mov	edx, 259h
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_40744B
push	eax
lea	ecx, [ebp+var_54]
mov	byte ptr [ebp+var_4], 2
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_48]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx
pop	ecx

loc_4228FD:
mov	eax, [esi+1Ch]
lea	ecx, [esi+18h]
cmp	eax, ebx
mov	[ebp+arg_8], ecx
jz	short loc_422926
mov	ecx, [ecx]
lea	eax, [ecx+eax*2-2]

loc_422910:
cmp	word ptr [eax],	5Ch
jz	short loc_42291E
cmp	eax, ecx
jz	short loc_422926
dec	eax
dec	eax
jmp	short loc_422910

loc_42291E:
sub	eax, ecx
sar	eax, 1
mov	edi, eax
jmp	short loc_422929

loc_422926:
or	edi, 0FFFFFFFFh

loc_422929:
push	3
lea	ecx, [ebp+var_3C]
mov	[ebp+var_3C], ebx
mov	[ebp+var_38], ebx
mov	[ebp+var_34], ebx
call	sub_403396
push	3
lea	ecx, [ebp+var_30]
mov	byte ptr [ebp+var_4], 3
mov	[ebp+var_30], ebx
mov	[ebp+var_2C], ebx
mov	[ebp+var_28], ebx
call	sub_403396
cmp	edi, ebx
mov	byte ptr [ebp+var_4], 4
jl	short loc_4229AC
mov	ecx, [ebp+arg_8]
inc	edi
lea	eax, [ebp+var_48]
push	edi
push	eax
call	sub_403228
push	eax
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 5
call	sub_40312C
push	[ebp+var_48]	; Memory
mov	byte ptr [ebp+var_4], 4
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_48]
mov	ecx, [ebp+arg_8]
push	edi
push	eax
call	sub_405246
push	eax
lea	ecx, [ebp+var_30]
mov	byte ptr [ebp+var_4], 6
call	sub_40312C
push	[ebp+var_48]	; Memory
mov	byte ptr [ebp+var_4], 4
call	sub_4284D8
pop	ecx
jmp	short loc_4229B7

loc_4229AC:
push	[ebp+arg_8]
lea	ecx, [ebp+var_30]
call	sub_40312C

loc_4229B7:
mov	edi, [ebp+LocalFileTime.dwHighDateTime]
lea	eax, [ebp+var_3C]
push	eax
mov	ecx, edi
call	sub_4227B7
lea	eax, [ebp+var_30]
mov	ecx, edi
push	eax
call	sub_4227B7
push	0Ah
lea	edx, [ebp+var_3C]
lea	ecx, [ebp+var_48]
call	sub_409999
lea	ecx, [ebp+var_30]
mov	edx, eax
push	ecx
lea	ecx, [ebp+var_18]
mov	byte ptr [ebp+var_4], 7
call	sub_40356A
push	[ebp+var_48]	; Memory
mov	byte ptr [ebp+var_4], 9
call	sub_4284D8
pop	ecx
push	0Ah
lea	ecx, [ebp+var_18]
call	sub_40316A
lea	eax, [ebp+var_54]
lea	ecx, [ebp+var_18]
push	eax
call	sub_4031F2
push	0Ah
lea	ecx, [ebp+var_18]
call	sub_40316A
cmp	[esi+1], bl
jz	loc_422AE0
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], ebx
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
call	sub_403396
lea	eax, [ebp+LocalFileTime]
add	esi, 10h
push	eax		; lpLocalFileTime
push	esi		; lpFileTime
mov	byte ptr [ebp+var_4], 0Ah
call	ds:FileTimeToLocalFileTime
test	eax, eax
jnz	short loc_422A63
lea	eax, [ebp+arg_8]
push	offset unk_44D120
push	eax
mov	[ebp+arg_8], 3FF0C2h
call	_CxxThrowException

loc_422A63:
push	1
push	1
lea	edx, [ebp+LocalFileTime]
lea	ecx, [ebp+var_60]
call	sub_42D139
push	eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_40312C
push	[ebp+var_60]	; Memory
mov	byte ptr [ebp+var_4], 0Ah
call	sub_4284D8
mov	edx, 258h
lea	ecx, [ebp+var_60]
mov	[esp+1E0h+var_1E0], 2000983h
call	sub_40B168
push	eax
lea	ecx, [ebp+var_18]
mov	byte ptr [ebp+var_4], 0Ch
call	sub_4031F2
push	[ebp+var_60]	; Memory
mov	byte ptr [ebp+var_4], 0Ah
call	sub_4284D8
lea	ecx, [ebp+var_18]
mov	[esp+1E0h+var_1E0], offset asc_45B128 ;	" "
call	sub_403195
lea	eax, [ebp+Memory]
lea	ecx, [ebp+var_18]
push	eax
call	sub_4031F2
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 9
call	sub_4284D8
pop	ecx

loc_422AE0:		; nIDDlgItem
push	[ebp+arg_0]
lea	ecx, [ebp+var_70]
mov	[ebp+var_70], ebx
push	edi		; int
call	sub_422B86
mov	edx, [ebp+var_18]
mov	ecx, [ebp+var_70]
call	sub_42E6BD
mov	edx, [ebp+arg_8]
lea	ecx, [ebp+var_60]
call	sub_43A785
mov	eax, [eax]
push	110h		; uFlags
lea	ecx, [ebp+psfi]
push	160h		; cbFileInfo
push	ecx		; psfi
push	80h		; dwFileAttributes
push	eax		; pszPath
call	ds:SHGetFileInfoA
push	[ebp+var_60]	; Memory
mov	esi, eax
call	sub_4284D8
cmp	esi, ebx
pop	ecx
jz	short loc_422B52
push	[ebp+nIDDlgItem] ; nIDDlgItem
push	dword ptr [edi+4] ; hDlg
call	ds:GetDlgItem
push	ebx		; lParam
push	[ebp+psfi.hIcon] ; wParam
push	170h		; Msg
push	eax		; hWnd
call	ds:SendMessageA

loc_422B52:		; Memory
push	[ebp+var_18]
call	sub_4284D8
push	[ebp+var_30]	; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
push	[ebp+var_54]	; Memory
call	sub_4284D8
mov	ecx, [ebp+var_C]
add	esp, 10h
mov	large fs:0, ecx
pop	edi
pop	esi
pop	ebx
leave
retn	0Ch
sub_422881 endp




; int __stdcall	sub_422B86(int,	int nIDDlgItem)
sub_422B86 proc	near

arg_0= dword ptr  4
nIDDlgItem= dword ptr  8

mov	eax, [esp+nIDDlgItem]
push	esi
mov	esi, ecx
push	eax		; nIDDlgItem
mov	[esi+4], eax
mov	eax, [esp+8+arg_0]
push	dword ptr [eax+4] ; hDlg
call	ds:GetDlgItem
mov	[esi], eax
pop	esi
retn	8
sub_422B86 endp




sub_422BA4 proc	near
push	esi
push	edi
mov	edi, ecx
mov	edx, 2000900h
mov	esi, edi
neg	esi
lea	eax, [edi+4]
sbb	esi, esi
and	esi, eax
mov	ecx, [esi]
call	sub_40B08D
mov	ecx, [esi]
push	9
mov	edx, offset unk_45C358
call	sub_40B00D
lea	eax, [edi+10h]
mov	ecx, edi
push	eax		; int
push	3EBh		; nIDDlgItem
push	3EDh		; int
call	sub_422881
lea	eax, [edi+38h]
mov	ecx, edi
push	eax		; int
push	3ECh		; nIDDlgItem
push	3EEh		; int
call	sub_422881
mov	ecx, edi
call	sub_42FC31
pop	edi
mov	al, 1
pop	esi
retn
sub_422BA4 endp




; int __stdcall	sub_422C03(INT_PTR nResult, int)
sub_422C03 proc	near

nResult= dword ptr  4
arg_4= dword ptr  8

mov	eax, [esp+nResult]
cmp	eax, 6
jl	short loc_422C2D
cmp	eax, 7
jle	short loc_422C1F
cmp	eax, 3F1h
jle	short loc_422C2D
cmp	eax, 3F4h
jg	short loc_422C2D

loc_422C1F:		; nResult
push	eax
push	dword ptr [ecx+4] ; hDlg
call	ds:EndDialog
mov	al, 1
jmp	short locret_422C37

loc_422C2D:
push	[esp+arg_4]
push	eax
call	sub_42FAE0

locret_422C37:
retn	8
sub_422C03 endp




sub_422C3A proc	near
push	ebx
push	esi
push	edi
mov	edi, ecx
mov	esi, edi
mov	edx, 2000B00h
neg	esi
lea	ebx, [edi+4]
sbb	esi, esi
and	esi, ebx
mov	ecx, [esi]
call	sub_40B08D
mov	ecx, [esi]
push	4
mov	edx, offset unk_45C3A0
call	sub_40B00D
push	3E9h		; nIDDlgItem
push	dword ptr [ebx]	; hDlg
call	ds:GetDlgItem
mov	edx, [edi+0Ch]
mov	ecx, eax
mov	[edi+8], eax
call	sub_42E6BD
push	0		; lParam
push	2Ah		; wParam
push	0CCh		; Msg
push	dword ptr [edi+8] ; hWnd
call	ds:SendMessageA
pop	edi
pop	esi
mov	al, 1
pop	ebx
retn
sub_422C3A endp



; Attributes: bp-based frame

sub_422C96 proc	near

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

mov	eax, offset loc_4467A0
call	__EH_prolog
sub	esp, 0Ch
mov	eax, 3EAh
push	esi
cmp	[ebp+arg_0], eax
mov	esi, ecx
jnz	short loc_422D10
push	edi
push	eax		; nIDButton
push	dword ptr [esi+4] ; hDlg
call	ds:IsDlgButtonChecked
add	esi, 8
xor	edi, edi
dec	eax
push	edi		; lParam
neg	eax
sbb	eax, eax
and	eax, 2Ah
push	eax		; wParam
push	0CCh		; Msg
push	dword ptr [esi]	; hWnd
call	ds:SendMessageA
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], edi
mov	[ebp+var_14], edi
mov	[ebp+var_10], edi
call	sub_403396
lea	eax, [ebp+Memory]
mov	ecx, esi
push	eax
mov	[ebp+var_4], edi
call	sub_42E799
mov	edx, [ebp+Memory]
mov	ecx, [esi]
call	sub_42E6BD
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	al, 1
pop	edi
jmp	short loc_422D1D

loc_422D10:
push	[ebp+arg_4]
mov	ecx, esi
push	[ebp+arg_0]
call	sub_42FAE0

loc_422D1D:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_422C96 endp




sub_422D2C proc	near
push	esi
mov	esi, ecx
lea	eax, [esi+0Ch]
lea	ecx, [esi+8]
push	eax
call	sub_42E799
push	1		; nResult
push	dword ptr [esi+4] ; hDlg
call	ds:EndDialog
pop	esi
retn
sub_422D2C endp




sub_422D48 proc	near
push	esi
mov	esi, ecx

loc_422D4B:
mov	ecx, esi
call	sub_422D76
test	al, al
jnz	short loc_422D6B
mov	ecx, esi
call	sub_422D97
test	al, al
jz	short loc_422D72
push	64h		; dwMilliseconds
call	ds:Sleep
jmp	short loc_422D4B

loc_422D6B:
mov	eax, 80004004h
pop	esi
retn

loc_422D72:
xor	eax, eax
pop	esi
retn
sub_422D48 endp




sub_422D76 proc	near
push	ebx
push	esi
mov	esi, ecx
push	edi
lea	edi, [esi+94h]
push	edi		; lpCriticalSection
call	ds:EnterCriticalSection
mov	bl, [esi]
push	edi		; lpCriticalSection
call	ds:LeaveCriticalSection
pop	edi
mov	al, bl
pop	esi
pop	ebx
retn
sub_422D76 endp




sub_422D97 proc	near
push	ebx
push	esi
mov	esi, ecx
push	edi
lea	edi, [esi+94h]
push	edi		; lpCriticalSection
call	ds:EnterCriticalSection
mov	bl, [esi+1]
push	edi		; lpCriticalSection
call	ds:LeaveCriticalSection
pop	edi
mov	al, bl
pop	esi
pop	ebx
retn
sub_422D97 endp




sub_422DB9 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	esi
mov	esi, ecx
call	sub_422D48
test	eax, eax
jnz	short loc_422DD6
push	[esp+4+arg_4]
mov	ecx, esi
push	[esp+8+arg_0]
call	sub_403AA0
xor	eax, eax

loc_422DD6:
pop	esi
retn	8
sub_422DB9 endp



; Attributes: bp-based frame

sub_422DDA proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44685D
call	__EH_prolog
push	ecx
push	ecx
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
push	edi
mov	[ebp+var_14], esi
mov	[esi+4], ebx
mov	dword ptr [esi], offset	off_44B558
push	3
lea	ecx, [esi+8]
pop	edi
mov	[ebp+var_4], ebx
push	edi
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+14h]
push	edi
mov	byte ptr [ebp+var_4], 1
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+20h]
push	edi
mov	byte ptr [ebp+var_4], 2
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+2Ch]
push	edi
mov	byte ptr [ebp+var_4], 3
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+38h]
push	edi
mov	byte ptr [ebp+var_4], 4
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+44h]
push	edi
mov	byte ptr [ebp+var_4], 5
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+50h]
push	edi
mov	byte ptr [ebp+var_4], 6
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+5Ch]
push	edi
mov	byte ptr [ebp+var_4], 7
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+74h]
mov	[esi+70h], ebx
mov	byte ptr [ebp+var_4], 8
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
push	edi
call	sub_403396
mov	[esi+98h], ebx
mov	[esi+9Ch], ebx
mov	[esi+0E4h], ebx
mov	[esi+0E8h], ebx
lea	ecx, [esi+0F0h]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_422FD6
lea	ecx, [esi+1ACh]
mov	byte ptr [esi+1A0h], 1
mov	[esi+1A8h], ebx
push	edi
mov	byte ptr [ebp+var_4], 0Ch
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+1B8h]
push	edi
mov	byte ptr [ebp+var_4], 0Dh
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
or	dword ptr [esi+1A4h], 0FFFFFFFFh
xor	edx, edx
lea	ecx, [esi+0E8h]
mov	byte ptr [ebp+var_4], 0Eh
mov	dword ptr [esi], offset	off_44C438
mov	[esi+1A3h], bl
mov	[esi+0D0h], bl
mov	[esi+0D1h], bl
mov	[esi+0DFh], bl
mov	[esi+0E0h], bl
mov	[esi+0D4h], ebx
mov	[esi+0D8h], ebx
mov	[esi+0DCh], bl
mov	[esi+0DDh], bl
mov	[esi+0DEh], bl
mov	byte ptr [esi+1A2h], 1
mov	[esi+1A1h], bl
call	sub_441900
test	eax, eax
jz	short loc_422F9F
lea	eax, [ebp+var_10]
push	offset unk_44D120
push	eax
mov	[ebp+var_10], 145ECBh
call	_CxxThrowException

loc_422F9F:
xor	edx, edx
lea	ecx, [esi+0E4h]
call	sub_441900
test	eax, eax
jz	short loc_422FC5
lea	eax, [ebp+var_10]
push	offset unk_44D120
push	eax
mov	[ebp+var_10], 145ECBh
call	_CxxThrowException

loc_422FC5:
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_422DDA endp



; Attributes: bp-based frame

sub_422FD6 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4468AA
call	__EH_prolog
push	ecx
push	ebx
push	esi
push	edi
mov	esi, ecx
push	3
xor	ebx, ebx
or	eax, 0FFFFFFFFh
lea	ecx, [esi+38h]
pop	edi
mov	[esi+8], eax
mov	[esi+10h], ebx
mov	[esi+18h], eax
mov	[esi+20h], ebx
mov	[esi+28h], eax
mov	[esi+30h], eax
mov	[esi], bl
mov	[esi+1], bl
mov	byte ptr [esi+2], 1
mov	[esi+0Ch], eax
mov	[esi+14h], ebx
mov	[esi+1Ch], eax
mov	[esi+24h], ebx
mov	[esi+2Ch], eax
mov	[esi+34h], eax
push	edi
mov	[ebp+var_10], esi
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+44h]
push	edi
mov	[ebp+var_4], ebx
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
mov	[esi+54h], ebx
mov	[esi+58h], ebx
mov	[esi+5Ch], ebx
mov	dword ptr [esi+60h], 4
mov	dword ptr [esi+50h], offset off_44B510
lea	ecx, [esi+64h]
push	edi
mov	byte ptr [ebp+var_4], 2
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+70h]
push	edi
mov	byte ptr [ebp+var_4], 3
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+7Ch]
push	edi
mov	byte ptr [ebp+var_4], 4
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+88h]
push	edi
mov	byte ptr [ebp+var_4], 5
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+94h]	; lpCriticalSection
call	sub_441910
mov	eax, esi
pop	edi
pop	esi
mov	ecx, [ebp+var_C]
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_422FD6 endp




; int __thiscall sub_4230CD(void *Memory, char)
sub_4230CD proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_423175
test	[esp+4+arg_0], 1
jz	short loc_4230E3
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_4230E3:
mov	eax, esi
pop	esi
retn	4
sub_4230CD endp



; Attributes: bp-based frame

sub_4230E9 proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4468D2
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
lea	eax, [esi+94h]
push	eax		; lpCriticalSection
call	ds:DeleteCriticalSection
push	dword ptr [esi+88h] ; Memory
call	sub_4284D8
push	dword ptr [esi+7Ch] ; Memory
call	sub_4284D8
push	dword ptr [esi+70h] ; Memory
call	sub_4284D8
push	dword ptr [esi+64h] ; Memory
call	sub_4284D8
lea	edi, [esi+50h]
add	esp, 10h
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44B510
mov	ecx, edi
mov	byte ptr [ebp+var_4], 2
call	sub_428327
mov	ecx, edi
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
push	dword ptr [esi+44h] ; Memory
call	sub_4284D8
push	dword ptr [esi+38h] ; Memory
call	sub_4284D8
pop	ecx
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_4230E9 endp



; Attributes: bp-based frame

sub_423175 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44698D
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44C438
push	offset word_45D498
mov	[ebp+var_4], 0Eh
call	sub_423238
push	dword ptr [esi+1B8h] ; Memory
call	sub_4284D8
push	dword ptr [esi+1ACh] ; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 0Bh
pop	ecx
lea	ecx, [esi+0F0h]
call	sub_4230E9
lea	ecx, [esi+0E8h]
call	sub_441850
lea	ecx, [esi+0E4h]
call	sub_441850
push	dword ptr [esi+74h] ; Memory
call	sub_4284D8
push	dword ptr [esi+5Ch] ; Memory
call	sub_4284D8
push	dword ptr [esi+50h] ; Memory
call	sub_4284D8
push	dword ptr [esi+44h] ; Memory
call	sub_4284D8
push	dword ptr [esi+38h] ; Memory
call	sub_4284D8
push	dword ptr [esi+2Ch] ; Memory
call	sub_4284D8
push	dword ptr [esi+20h] ; Memory
call	sub_4284D8
push	dword ptr [esi+14h] ; Memory
call	sub_4284D8
push	dword ptr [esi+8] ; Memory
call	sub_4284D8
mov	ecx, [ebp+var_C]
add	esp, 24h
mov	dword ptr [esi], offset	off_44B588
mov	large fs:0, ecx
pop	esi
leave
retn
sub_423175 endp



; Attributes: bp-based frame

sub_423238 proc	near

var_24=	dword ptr -24h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4469A8
call	__EH_prolog
sub	esp, 18h
push	esi
mov	esi, [ecx+1A8h]
test	esi, esi
jz	short loc_42328E
add	ecx, 1ACh
push	ecx
lea	ecx, [ebp+var_24]
call	sub_4030F2
mov	edx, [ebp+arg_0]
and	[ebp+var_4], 0
push	eax
lea	ecx, [ebp+Memory]
call	sub_422192
mov	edx, [eax]
mov	ecx, esi
mov	byte ptr [ebp+var_4], 1
call	sub_42E6BD
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx

loc_42328E:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_423238 endp




sub_42329D proc	near

arg_0= byte ptr	 4

mov	al, [esp+arg_0]
push	ebx
push	ebp
push	esi
neg	al
push	edi
mov	edi, ds:GetDlgItem
mov	esi, ecx
push	406h		; nIDDlgItem
sbb	eax, eax
push	dword ptr [esi+4] ; hDlg
and	eax, 5
mov	ebp, eax
call	edi ; GetDlgItem
mov	ebx, ds:ShowWindow
push	ebp		; nCmdShow
push	eax		; hWnd
call	ebx ; ShowWindow
push	407h		; nIDDlgItem
push	dword ptr [esi+4] ; hDlg
call	edi ; GetDlgItem
push	ebp		; nCmdShow
push	eax		; hWnd
call	ebx ; ShowWindow
push	408h		; nIDDlgItem
push	dword ptr [esi+4] ; hDlg
call	edi ; GetDlgItem
push	ebp		; nCmdShow
push	eax		; hWnd
call	ebx ; ShowWindow
pop	edi
pop	esi
pop	ebp
pop	ebx
retn	4
sub_42329D endp



; Attributes: bp-based frame

sub_4232ED proc	near

var_54=	dword ptr -54h
Rect= tagRECT ptr -44h
var_34=	dword ptr -34h
var_28=	dword ptr -28h
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4469E4
call	__EH_prolog
sub	esp, 38h
push	ebx
push	esi
mov	esi, ecx
push	edi
or	eax, 0FFFFFFFFh
xor	edi, edi
mov	[esi+90h], eax
mov	[esi+0B0h], eax
mov	[esi+0C0h], eax
mov	[esi+94h], eax
mov	[esi+0A0h], eax
mov	[esi+0ACh], eax
mov	[esi+0B4h], edi
mov	[esi+0C4h], edi
mov	[esi+0B8h], edi
call	ds:GetTickCount
mov	ebx, ds:GetDlgItem
mov	[esi+0A8h], edi
lea	edi, [esi+4]
push	3E8h		; nIDDlgItem
mov	[esi+0A4h], eax
mov	byte ptr [esi+0C8h], 1
push	dword ptr [edi]	; hDlg
call	ebx ; GetDlgItem
push	408h		; nIDDlgItem
mov	[esi+98h], eax
push	dword ptr [edi]	; hDlg
call	ebx ; GetDlgItem
lea	ecx, [esi+0E8h]
mov	[esi+9Ch], eax
mov	byte ptr [esi+0D0h], 1
call	sub_4418F0
mov	eax, esi
push	0Eh
neg	eax
sbb	eax, eax
mov	edx, offset unk_45C3C0
and	eax, edi
mov	ecx, [eax]
call	sub_40B00D
push	33h		; nIDDlgItem
push	dword ptr [edi]	; hDlg
call	ebx ; GetDlgItem
mov	[ebp+var_10], eax
lea	eax, [esi+20h]
push	eax
lea	ecx, [ebp+var_10]
call	sub_42E799
lea	eax, [esi+20h]
lea	ecx, [esi+2Ch]
push	eax
call	sub_40312C
push	offset word_45D498
lea	ecx, [ebp+var_28]
call	sub_403091
and	[ebp+var_4], 0
push	offset unk_45C430
lea	ecx, [ebp+Memory]
call	sub_403091
lea	eax, [ebp+var_28]
lea	ecx, [esi+2Ch]
push	eax
lea	eax, [ebp+Memory]
push	eax
mov	byte ptr [ebp+var_4], 1
call	sub_407494
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_28]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx
pop	ecx
push	32h		; nIDDlgItem
push	dword ptr [edi]	; hDlg
call	ebx ; GetDlgItem
mov	[ebp+var_10], eax
lea	eax, [esi+44h]
push	eax
lea	ecx, [ebp+var_10]
call	sub_42E799
push	2000C11h
mov	edx, 2BDh
lea	ecx, [ebp+var_28]
call	sub_40B168
push	eax
lea	ecx, [esi+38h]
mov	[ebp+var_4], 2
call	sub_40312C
push	[ebp+var_28]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
mov	edx, 2BEh
lea	ecx, [ebp+var_28]
mov	[esp+54h+var_54], 2000C13h
call	sub_40B168
push	eax
lea	ecx, [esi+50h]
mov	[ebp+var_4], 3
call	sub_40312C
push	[ebp+var_28]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
mov	edx, 2BCh
lea	ecx, [ebp+var_28]
mov	[esp+54h+var_54], 2000C20h
call	sub_40B168
push	eax
lea	ecx, [esi+5Ch]
mov	[ebp+var_4], 4
call	sub_40312C
push	[ebp+var_28]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
mov	edx, [esi+74h]
pop	ecx
mov	ecx, [edi]
call	sub_42E6BD
mov	ecx, esi
call	sub_424B33
mov	ecx, esi
call	sub_424BE5
push	0		; lParam
push	1		; wParam
push	2005h		; Msg
push	dword ptr [esi+9Ch] ; hWnd
call	ds:SendMessageA
push	1Eh		; int
push	offset word_45D498 ; int
push	0		; wParam
lea	ecx, [esi+9Ch]
call	sub_42FE38
push	2000A80h
mov	edx, 1F7h
lea	ecx, [ebp+var_34]
call	sub_40B168
push	258h		; int
lea	ecx, [esi+9Ch]
push	[ebp+var_34]	; int
mov	[ebp+var_4], 5
push	1		; wParam
call	sub_42FE38
push	0FFFFh		; lParam
push	0		; wParam
push	101Eh		; Msg
push	dword ptr [esi+9Ch] ; hWnd
call	ds:SendMessageA
push	0FFFFh		; lParam
push	1		; wParam
push	101Eh		; Msg
push	dword ptr [esi+9Ch] ; hWnd
call	ds:SendMessageA
push	0
mov	ecx, esi
call	sub_42329D
push	2		; nIDDlgItem
push	dword ptr [edi]	; hDlg
call	ebx ; GetDlgItem
lea	ecx, [ebp+Rect]
push	ecx		; lpRect
push	eax		; hWnd
call	ds:GetWindowRect
test	eax, eax
jz	short loc_42357E
mov	eax, [ebp+Rect.right]
sub	eax, [ebp+Rect.left]
mov	[esi+68h], eax
mov	eax, [ebp+Rect.bottom]
sub	eax, [ebp+Rect.top]
mov	[esi+6Ch], eax

loc_42357E:
push	1
mov	ecx, esi
mov	dword ptr [esi+0CCh], 52h
call	sub_42FB78
cmp	byte ptr [esi+1A2h], 0
jnz	short loc_4235E2
push	3F8h		; nIDDlgItem
push	dword ptr [edi]	; hDlg
call	ebx ; GetDlgItem
push	0		; nCmdShow
push	eax		; hWnd
call	ds:ShowWindow
push	3F9h		; nIDDlgItem
push	dword ptr [edi]	; hDlg
call	ebx ; GetDlgItem
push	0		; nCmdShow
push	eax		; hWnd
call	ds:ShowWindow
push	3F6h		; nIDDlgItem
push	dword ptr [edi]	; hDlg
call	ebx ; GetDlgItem
push	0		; nCmdShow
push	eax		; hWnd
call	ds:ShowWindow
push	3F7h		; nIDDlgItem
push	dword ptr [edi]	; hDlg
call	ebx ; GetDlgItem
push	0		; nCmdShow
push	eax		; hWnd
call	ds:ShowWindow

loc_4235E2:
cmp	dword ptr [esi+1A4h], 0
lea	eax, [esi+1A4h]
jl	short loc_423611
movzx	eax, word ptr [eax]
push	eax		; lpIconName
push	hInstance	; hInstance
call	ds:LoadIconA
push	eax		; lParam
push	1		; wParam
push	80h		; Msg
push	dword ptr [edi]	; hWnd
call	ds:SendMessageA

loc_423611:		; lpTimerFunc
push	0
push	64h		; uElapse
push	3		; nIDEvent
push	dword ptr [edi]	; hWnd
call	ds:SetTimer
mov	ecx, esi
mov	[esi+70h], eax
call	sub_424F7A
push	[ebp+var_34]	; Memory
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
mov	al, 1
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_4232ED endp



; Attributes: bp-based frame

sub_423643 proc	near

nIDDlgItem= dword ptr -78h
var_74=	dword ptr -74h
var_70=	dword ptr -70h
var_6C=	dword ptr -6Ch
var_68=	dword ptr -68h
var_64=	dword ptr -64h
var_60=	dword ptr -60h
var_5C=	dword ptr -5Ch
var_58=	dword ptr -58h
var_54=	dword ptr -54h
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
Rect= tagRECT ptr -30h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
nHeight= dword ptr -18h
var_14=	dword ptr -14h
X= dword ptr -10h
var_C= dword ptr -0Ch
nWidth=	dword ptr -8
Y= dword ptr -4
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
sub	esp, 78h
push	ebx
mov	ebx, ecx
push	esi
push	edi
mov	edi, ds:GetDlgItem
lea	esi, [ebx+4]
push	3EAh		; nIDDlgItem
push	dword ptr [esi]	; hDlg
call	edi ; GetDlgItem
lea	ecx, [ebp+Rect]
push	ecx		; lpRect
push	eax		; hWnd
call	ds:GetWindowRect
lea	eax, [ebp+Rect]
mov	ecx, esi
push	eax
call	sub_421AA9
mov	eax, [ebp+Rect.left]
mov	ecx, [ebp+Rect.top]
mov	[ebp+X], eax
mov	eax, [ebp+Rect.bottom]
push	3ECh		; nIDDlgItem
sub	eax, ecx
push	dword ptr [esi]	; hDlg
mov	[ebp+var_14], ecx
mov	[ebp+var_1C], eax
call	edi ; GetDlgItem
lea	ecx, [ebp+Rect]
push	ecx		; lpRect
push	eax		; hWnd
call	ds:GetWindowRect
lea	eax, [ebp+Rect]
mov	ecx, esi
push	eax
call	sub_421AA9
mov	eax, [ebp+Rect.top]
push	1		; bErase
sub	eax, [ebp+var_14]
push	0		; lpRect
push	dword ptr [esi]	; hWnd
mov	[ebp+var_20], eax
call	ds:InvalidateRect
mov	eax, [ebp+X]
mov	ecx, [ebp+arg_4]
add	eax, eax
mov	[ebp+var_C], 320h
sub	ecx, eax
mov	[ebp+nWidth], ecx

loc_4236D2:
push	[ebp+var_C]
mov	ecx, ebx
call	sub_4239DF
cmp	eax, [ebp+nWidth]
jle	short loc_4236F5
mov	eax, [ebp+var_C]
push	0Ah
pop	ecx
lea	eax, [eax+eax*8]
cdq
idiv	ecx
cmp	eax, 28h
mov	[ebp+var_C], eax
jg	short loc_4236D2

loc_4236F5:
mov	eax, [ebp+var_C]
push	4
cdq
pop	ecx
idiv	ecx
push	3F2h		; nIDDlgItem
push	dword ptr [esi]	; hDlg
mov	[ebx+0CCh], eax
mov	eax, [ebp+arg_8]
sub	eax, [ebx+6Ch]
sub	eax, [ebp+var_14]
mov	[ebp+Y], eax
call	edi ; GetDlgItem
push	[ebp+nWidth]	; nWidth
mov	ecx, esi
push	eax		; hWnd
call	sub_4217C9
push	3E8h		; nIDDlgItem
push	dword ptr [esi]	; hDlg
call	edi ; GetDlgItem
push	[ebp+nWidth]	; nWidth
mov	ecx, esi
push	eax		; hWnd
call	sub_4217C9
mov	ecx, [ebp+X]
mov	eax, [ebx+68h]
mov	[ebp+var_C], ecx
add	ecx, ecx
mov	[ebp+arg_8], eax
lea	ecx, [ecx+eax*2]
add	ecx, eax

loc_42374B:
cmp	ecx, [ebp+nWidth]
jle	short loc_423772
cmp	[ebp+var_C], 5
jl	short loc_42375D
dec	[ebp+var_C]
dec	ecx
dec	ecx
jmp	short loc_42374B

loc_42375D:
mov	eax, [ebp+var_C]
push	3
add	eax, eax
mov	ecx, eax
mov	eax, [ebp+nWidth]
sub	eax, ecx
pop	ecx
cdq
idiv	ecx
mov	[ebp+arg_8], eax

loc_423772:
push	2
pop	ecx
cmp	eax, ecx
jge	short loc_42377C
mov	[ebp+arg_8], ecx

loc_42377C:		; nIDDlgItem
push	408h
push	dword ptr [esi]	; hDlg
call	edi ; GetDlgItem
lea	ecx, [ebp+Rect]
push	ecx		; lpRect
push	eax		; hWnd
call	ds:GetWindowRect
lea	eax, [ebp+Rect]
mov	ecx, esi
push	eax
call	sub_421AA9
mov	eax, [ebp+Y]
push	4
sub	eax, [ebp+Rect.top]
pop	ecx
sub	eax, [ebp+var_14]
mov	[ebp+nHeight], eax
mov	eax, [ebx+6Ch]
lea	eax, [eax+eax*2]
cdq
idiv	ecx
mov	ecx, [ebp+nWidth]
add	eax, [ebx+6Ch]
cmp	[ebp+nHeight], eax
jge	short loc_4237CD
mov	[ebp+nHeight], eax
mov	eax, [ebp+arg_8]
lea	edx, [eax+eax]
cmp	ecx, edx
jle	short loc_4237CD
sub	ecx, eax

loc_4237CD:		; bRepaint
push	1
push	[ebp+nHeight]	; nHeight
push	ecx		; nWidth
push	[ebp+Rect.top]	; Y
push	[ebp+X]		; X
push	dword ptr [ebx+9Ch] ; hWnd
call	ds:MoveWindow
mov	eax, [ebp+arg_4]
push	2		; nIDDlgItem
sub	eax, [ebp+arg_8]
push	dword ptr [esi]	; hDlg
sub	eax, [ebp+X]
mov	[ebp+arg_4], eax
mov	eax, [ebx+6Ch]
mov	[ebp+nHeight], eax
call	edi ; GetDlgItem
push	1		; bRepaint
push	[ebp+nHeight]	; nHeight
push	[ebp+arg_8]	; nWidth
push	[ebp+Y]		; Y
push	[ebp+arg_4]	; X
push	eax		; hWnd
call	ds:MoveWindow
mov	eax, [ebp+var_C]
mov	ecx, [ebp+arg_8]
add	eax, ecx
push	32h		; nIDDlgItem
sub	[ebp+arg_4], eax
mov	eax, [ebx+6Ch]
push	dword ptr [esi]	; hDlg
mov	[ebp+nHeight], eax
call	edi ; GetDlgItem
push	1		; bRepaint
push	[ebp+nHeight]	; nHeight
push	[ebp+arg_8]	; nWidth
push	[ebp+Y]		; Y
push	[ebp+arg_4]	; X
push	eax		; hWnd
call	ds:MoveWindow
mov	eax, [ebx+6Ch]
push	33h		; nIDDlgItem
push	dword ptr [esi]	; hDlg
mov	[ebp+nHeight], eax
call	edi ; GetDlgItem
mov	ecx, [ebp+arg_4]
push	1		; bRepaint
push	[ebp+nHeight]	; nHeight
sub	ecx, [ebp+var_C]
push	[ebp+arg_8]	; nWidth
sub	ecx, [ebp+arg_8]
push	[ebp+Y]		; Y
push	ecx		; X
push	eax		; hWnd
call	ds:MoveWindow
push	3Ch
mov	ecx, ebx
call	sub_4239DF
push	2Ch
mov	ecx, ebx
mov	[ebp+arg_4], eax
call	sub_4239DF
push	4
mov	ecx, ebx
mov	[ebp+nHeight], eax
call	sub_4239DF
mov	ecx, [ebp+nHeight]
mov	edx, eax
mov	eax, [ebp+arg_4]
add	eax, ecx
lea	ebx, [edx+eax*2]
mov	eax, [ebp+nWidth]
cmp	ebx, eax
jge	short loc_4238A8
sub	eax, ebx
push	3
cdq
pop	ebx
idiv	ebx
add	[ebp+arg_4], eax
jmp	short loc_4238B7

loc_4238A8:
lea	ebx, [ecx+ecx]
sub	eax, ebx
sub	eax, edx
cdq
sub	eax, edx
sar	eax, 1
mov	[ebp+arg_4], eax

loc_4238B7:
cmp	[ebp+arg_4], 0
jge	short loc_4238C1
and	[ebp+arg_4], 0

loc_4238C1:
mov	eax, [ebp+arg_4]
mov	[ebp+nIDDlgItem], 3EAh
add	eax, ecx
mov	[ebp+var_74], 3EBh
mov	[ebp+var_C], eax
mov	[ebp+var_70], 3ECh
lea	edx, [eax+eax]
mov	[ebp+var_6C], 3EDh
mov	ebx, edx
mov	edx, [ebp+nWidth]
sub	edx, ebx
mov	ebx, eax
sub	ebx, ecx
mov	ecx, [ebp+var_14]
and	[ebp+arg_4], 0
mov	[ebp+nWidth], edx
mov	[ebp+var_68], 3F4h
mov	[ebp+var_64], 3F5h
mov	[ebp+var_60], 3F6h
mov	[ebp+var_5C], 3F7h
mov	[ebp+var_58], 406h
mov	[ebp+var_54], 407h
mov	[ebp+var_50], 3F0h
mov	[ebp+var_4C], 3F1h
mov	[ebp+var_48], 3EEh
mov	[ebp+var_44], 3EFh
mov	[ebp+var_40], 3FAh
mov	[ebp+var_3C], 3FBh
mov	[ebp+var_38], 3F8h
mov	[ebp+var_34], 3F9h
mov	[ebp+Y], ecx
jmp	short loc_423967

loc_423964:
mov	eax, [ebp+var_C]

loc_423967:
mov	ecx, [ebp+X]
cmp	[ebp+arg_4], 0Ah
mov	[ebp+arg_8], ecx
jl	short loc_423985
jnz	short loc_42397B
mov	edx, [ebp+var_14]
mov	[ebp+Y], edx

loc_42397B:
mov	edx, [ebp+nWidth]
add	eax, edx
add	eax, ecx
mov	[ebp+arg_8], eax

loc_423985:
mov	eax, [ebp+arg_4]
push	[ebp+eax*4+nIDDlgItem] ; nIDDlgItem
push	dword ptr [esi]	; hDlg
call	edi ; GetDlgItem
push	1		; bRepaint
push	[ebp+var_1C]	; nHeight
push	ebx		; nWidth
push	[ebp+Y]		; Y
push	[ebp+arg_8]	; X
push	eax		; hWnd
call	ds:MoveWindow
mov	eax, [ebp+arg_4]
push	[ebp+eax*4+var_74] ; nIDDlgItem
push	dword ptr [esi]	; hDlg
call	edi ; GetDlgItem
mov	ecx, [ebp+arg_8]
push	1		; bRepaint
push	[ebp+var_1C]	; nHeight
add	ecx, ebx
push	[ebp+nHeight]	; nWidth
push	[ebp+Y]		; Y
push	ecx		; X
push	eax		; hWnd
call	ds:MoveWindow
mov	eax, [ebp+var_20]
add	[ebp+arg_4], 2
add	[ebp+Y], eax
cmp	[ebp+arg_4], 12h
jb	short loc_423964
pop	edi
pop	esi
xor	al, al
pop	ebx
leave
retn	0Ch
sub_423643 endp



; Attributes: bp-based frame

sub_4239DF proc	near

Rect= tagRECT ptr -10h
arg_0= dword ptr  8

push	ebp
mov	ebp, esp
sub	esp, 10h
and	[ebp+Rect.left], 0
and	[ebp+Rect.top],	0
lea	eax, [ebp+Rect]
push	esi
mov	esi, [ebp+arg_0]
push	eax		; lpRect
push	dword ptr [ecx+4] ; hDlg
mov	[ebp+Rect.right], esi
mov	[ebp+Rect.bottom], esi
call	ds:MapDialogRect
test	eax, eax
jnz	short loc_423A12
lea	eax, [esi+esi*2]
cdq
sub	eax, edx
sar	eax, 1
jmp	short loc_423A18

loc_423A12:
mov	eax, [ebp+Rect.right]
sub	eax, [ebp+Rect.left]

loc_423A18:
pop	esi
leave
retn	4
sub_4239DF endp




sub_423A1D proc	near
push	1
add	ecx, 0F0h
call	sub_423A2B
retn
sub_423A1D endp




sub_423A2B proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
push	edi
lea	edi, [esi+94h]
push	edi		; lpCriticalSection
call	ds:EnterCriticalSection
mov	al, [esp+8+arg_0]
push	edi		; lpCriticalSection
mov	[esi], al
call	ds:LeaveCriticalSection
pop	edi
pop	esi
retn	4
sub_423A2B endp




sub_423A4E proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	ebx
mov	ebx, [esp+4+arg_0]
push	esi
mov	esi, ecx
push	edi
mov	edi, [esp+0Ch+arg_4]
or	dword ptr [esi+88h], 0FFFFFFFFh
or	dword ptr [esi+8Ch], 0FFFFFFFFh
mov	[esi+90h], ebx
mov	[esi+94h], edi
and	dword ptr [esi+80h], 0
and	dword ptr [esi+84h], 0
test	edi, edi
mov	eax, ebx
mov	edx, edi
ja	short loc_423A93
cmp	ebx, 8000h
jbe	short loc_423AB6

loc_423A93:
push	1
pop	ecx
call	__aullshr
add	dword ptr [esi+80h], 1
adc	dword ptr [esi+84h], 0
test	edx, edx
ja	short loc_423A93
jb	short loc_423AB6
cmp	eax, 8000h
ja	short loc_423A93

loc_423AB6:
mov	ecx, [esi+80h]
mov	eax, ebx
mov	edx, edi
call	__aullshr
push	eax		; lParam
push	0		; wParam
push	406h		; Msg
push	dword ptr [esi+98h] ; hWnd
call	ds:SendMessageA
pop	edi
pop	esi
pop	ebx
retn	8
sub_423A4E endp



; Attributes: bp-based frame

sub_423ADF proc	near

arg_0= dword ptr  8
arg_4= dword ptr  0Ch

push	ebp
mov	ebp, esp
push	ebx
push	esi
mov	esi, [ebp+arg_4]
push	edi
mov	edi, ecx
mov	edx, [edi+94h]
mov	eax, [edi+90h]
cmp	esi, edx
ja	short loc_423B37
jb	short loc_423B01
cmp	[ebp+arg_0], eax
jnb	short loc_423B37

loc_423B01:
mov	eax, [edi+8Ch]
mov	ecx, [edi+88h]
cmp	esi, eax
jb	short loc_423B37
ja	short loc_423B18
cmp	[ebp+arg_0], ecx
jbe	short loc_423B37

loc_423B18:
mov	ebx, [ebp+arg_0]
push	0Ah
sub	ebx, ecx
pop	ecx
sbb	esi, eax
mov	eax, [edi+90h]
call	__aullshr
cmp	esi, edx
jb	short loc_423B6C
ja	short loc_423B37
cmp	ebx, eax
jb	short loc_423B6C

loc_423B37:
mov	ebx, [ebp+arg_0]
mov	esi, [ebp+arg_4]
mov	ecx, [edi+80h]
push	0		; lParam
mov	eax, ebx
mov	edx, esi
call	__aullshr
push	eax		; wParam
push	402h		; Msg
push	dword ptr [edi+98h] ; hWnd
call	ds:SendMessageA
mov	[edi+88h], ebx
mov	[edi+8Ch], esi

loc_423B6C:
pop	edi
pop	esi
pop	ebx
pop	ebp
retn	8
sub_423ADF endp



; Attributes: bp-based frame

; int __stdcall	sub_423B73(int nIDDlgItem, int,	int)
sub_423B73 proc	near

Str= word ptr -50h
nIDDlgItem= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
sub	esp, 50h
mov	eax, [ebp+arg_4]
and	[ebp+Str], 0
and	eax, [ebp+arg_8]
push	esi
mov	esi, ecx
cmp	eax, 0FFFFFFFFh
jz	short loc_423B9A
push	[ebp+arg_8]	; int
lea	ecx, [ebp+Str]	; Str
push	[ebp+arg_4]	; int
call	sub_423BB5

loc_423B9A:		; nIDDlgItem
push	[ebp+nIDDlgItem]
push	dword ptr [esi+4] ; hDlg
call	ds:GetDlgItem
lea	edx, [ebp+Str]
mov	ecx, eax
call	sub_42E6BD
pop	esi
leave
retn	0Ch
sub_423B73 endp




; int __thiscall sub_423BB5(wchar_t *Str, int, int)
sub_423BB5 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	ebx
push	esi
push	edi
xor	esi, esi
mov	edi, ecx
xor	ebx, ebx

loc_423BBE:
mov	ecx, ebx
mov	eax, 2710h
xor	edx, edx
call	__allshl
cmp	[esp+0Ch+arg_4], edx
jb	short loc_423BE3
ja	short loc_423BDA
cmp	[esp+0Ch+arg_0], eax
jb	short loc_423BE3

loc_423BDA:
add	ebx, 0Ah
inc	esi
cmp	ebx, 14h
jnz	short loc_423BBE

loc_423BE3:
mov	eax, [esp+0Ch+arg_0]
mov	edx, [esp+0Ch+arg_4]
lea	ecx, [esi+esi*4]
shl	ecx, 1
call	__aullshr
mov	ecx, edi
push	edx
push	eax
call	sub_427B10
push	edi		; Str
call	ds:wcslen
lea	eax, [edi+eax*2]
pop	ecx
mov	word ptr [eax],	20h
inc	eax
inc	eax
test	esi, esi
jz	short loc_423C21
mov	cx, word_45C434[esi*2]
mov	[eax], cx
inc	eax
inc	eax

loc_423C21:
pop	edi
mov	word ptr [eax],	42h
and	word ptr [eax+2], 0
pop	esi
pop	ebx
retn	8
sub_423BB5 endp



; Attributes: bp-based frame

sub_423C31 proc	near

var_138= dword ptr -138h
Str= word ptr -128h
var_126= byte ptr -126h
String=	byte ptr -0E8h
String1= byte ptr -0A8h
var_7C=	dword ptr -7Ch
nIDDlgItem= dword ptr -78h
var_74=	dword ptr -74h
var_70=	dword ptr -70h
var_6C=	dword ptr -6Ch
var_68=	dword ptr -68h
var_64=	dword ptr -64h
Memory=	dword ptr -60h
var_5C=	dword ptr -5Ch
var_58=	dword ptr -58h
var_54=	dword ptr -54h
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_15=	byte ptr -15h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_446A30
call	__EH_prolog
sub	esp, 11Ch
push	ebx
push	esi
mov	esi, ecx
push	edi
lea	ebx, [esi+0F0h]
lea	edi, [ebx+94h]
push	edi		; lpCriticalSection
call	ds:EnterCriticalSection
mov	eax, [ebx+8]
push	edi		; lpCriticalSection
mov	[ebp+var_14], eax
mov	eax, [ebx+0Ch]
mov	[ebp+var_10], eax
mov	eax, [ebx+10h]
mov	[ebp+var_28], eax
mov	eax, [ebx+14h]
mov	[ebp+var_24], eax
mov	eax, [ebx+18h]
mov	[ebp+var_3C], eax
mov	eax, [ebx+1Ch]
mov	[ebp+var_38], eax
mov	eax, [ebx+20h]
mov	[ebp+var_74], eax
mov	eax, [ebx+24h]
mov	[ebp+var_70], eax
mov	eax, [ebx+28h]
mov	[ebp+var_68], eax
mov	eax, [ebx+2Ch]
mov	[ebp+var_64], eax
mov	eax, [ebx+30h]
mov	[ebp+var_44], eax
mov	eax, [ebx+34h]
mov	[ebp+var_40], eax
mov	al, [ebx+2]
mov	[ebp+var_15], al
call	ds:LeaveCriticalSection
call	ds:GetTickCount
cmp	[ebp+var_15], 0
mov	[ebp+var_7C], eax
jz	short loc_423CC5
mov	edi, [ebp+var_14]
mov	eax, [ebp+var_10]
jmp	short loc_423CCB

loc_423CC5:
mov	edi, [ebp+var_3C]
mov	eax, [ebp+var_38]

loc_423CCB:
cmp	[ebp+var_15], 0
mov	[ebp+var_2C], eax
jz	short loc_423CDF
mov	eax, [ebp+var_28]
mov	[ebp+var_20], eax
mov	eax, [ebp+var_24]
jmp	short loc_423CE8

loc_423CDF:
mov	eax, [ebp+var_74]
mov	[ebp+var_20], eax
mov	eax, [ebp+var_70]

loc_423CE8:
cmp	edi, [esi+90h]
mov	[ebp+var_1C], eax
lea	eax, [esi+90h]
jnz	short loc_423D01
mov	ecx, [ebp+var_2C]
cmp	ecx, [eax+4]
jz	short loc_423D0C

loc_423D01:
push	[ebp+var_2C]
mov	ecx, esi
push	edi
call	sub_423A4E

loc_423D0C:
and	edi, [ebp+var_2C]
cmp	edi, 0FFFFFFFFh
jnz	short loc_423D2E
push	0
push	0
mov	ecx, esi
call	sub_423ADF
push	[ebp+var_1C]
mov	ecx, esi
push	[ebp+var_20]
call	sub_423A4E
jmp	short loc_423D3B

loc_423D2E:
push	[ebp+var_1C]
mov	ecx, esi
push	[ebp+var_20]
call	sub_423ADF

loc_423D3B:
and	[ebp+Str], 0
push	0Fh
pop	ecx
xor	eax, eax
lea	edi, [ebp+var_126]
rep stosd
stosw
mov	eax, [ebp+var_14]
and	eax, [ebp+var_10]
cmp	eax, 0FFFFFFFFh
jz	short loc_423D6E
push	[ebp+var_10]	; int
lea	ecx, [ebp+Str]	; Str
push	[ebp+var_14]	; int
call	sub_423BB5

loc_423D6E:		; nIDDlgItem
push	3F1h
push	dword ptr [esi+4] ; hDlg
call	ds:GetDlgItem
lea	edx, [ebp+Str]
mov	ecx, eax
call	sub_42E6BD
mov	ecx, [ebp+var_7C]
lea	eax, [esi+0A4h]
mov	edx, ecx
sub	edx, [eax]
mov	[eax], ecx
mov	ecx, 3E8h
add	[esi+0A8h], edx
mov	eax, [esi+0A8h]
xor	edx, edx
div	ecx
mov	edi, eax
cmp	edi, [esi+0ACh]
jz	short loc_423DE2
push	0		; int
lea	ecx, [ebp+String1] ; LPSTR
push	edi		; int
call	sub_4245A4
lea	eax, [ebp+String1]
push	eax		; lpString
push	3EBh		; nIDDlgItem
push	dword ptr [esi+4] ; hDlg
call	ds:SetDlgItemTextA
mov	[esi+0ACh], edi
jmp	short loc_423DEC

loc_423DE2:
cmp	byte ptr [ebp+arg_0], 0
jz	loc_4242C4

loc_423DEC:
lea	edi, [esi+184h]
push	edi		; lpCriticalSection
call	ds:EnterCriticalSection
mov	eax, [esi+148h]
push	edi		; lpCriticalSection
cdq
mov	[ebp+var_20], eax
mov	[ebp+var_1C], edx
call	ds:LeaveCriticalSection
xor	edi, edi
cmp	[ebp+var_1C], edi
ja	short loc_423E19
cmp	[ebp+var_20], edi
jbe	short loc_423E64

loc_423E19:
mov	ecx, esi
call	sub_424D3F
push	0Ah
lea	ecx, [ebp+String1]
pop	edx
push	[ebp+var_1C]
push	[ebp+var_20]
call	sub_427A98
lea	eax, [ebp+String1]
push	eax		; lpString
push	407h		; nIDDlgItem
push	dword ptr [esi+4] ; hDlg
call	ds:SetDlgItemTextA
cmp	byte ptr [esi+0DCh], 0
lea	eax, [esi+0DCh]
jnz	short loc_423E64
push	1
mov	ecx, esi
mov	byte ptr [eax],	1
call	sub_42329D

loc_423E64:
mov	eax, [ebp+var_28]
or	eax, [ebp+var_24]
jz	loc_4240BD
mov	eax, [ebp+var_14]
mov	ecx, [ebp+var_10]
and	eax, ecx
cmp	eax, 0FFFFFFFFh
jnz	short loc_423E9C
push	3EDh		; nIDDlgItem
push	dword ptr [esi+4] ; hDlg
call	ds:GetDlgItem
mov	edx, offset word_45D498
mov	ecx, eax
call	sub_42E6BD
jmp	loc_423F2D

loc_423E9C:
xor	eax, eax
xor	edx, edx
cmp	[ebp+var_24], ecx
ja	short loc_423ED6
jb	short loc_423EAF
mov	ecx, [ebp+var_28]
cmp	ecx, [ebp+var_14]
jnb	short loc_423ED6

loc_423EAF:
mov	eax, [ebp+var_14]
mov	ecx, [ebp+var_10]
sub	eax, [ebp+var_28]
push	edi
push	dword ptr [esi+0A8h]
sbb	ecx, [ebp+var_24]
push	ecx
push	eax
call	__allmul
push	[ebp+var_24]
push	[ebp+var_28]
push	edx
push	eax
call	__aulldiv

loc_423ED6:
push	edi
push	3E8h
push	edx
push	eax
call	__aulldiv
cmp	eax, [esi+0B0h]
mov	[ebp+var_30], eax
mov	[ebp+var_2C], edx
jnz	short loc_423EF9
cmp	edx, [esi+0B4h]
jz	short loc_423F2D

loc_423EF9:		; int
push	edx
lea	ecx, [ebp+String1] ; LPSTR
push	eax		; int
call	sub_4245A4
lea	eax, [ebp+String1]
push	eax		; lpString
push	3EDh		; nIDDlgItem
push	dword ptr [esi+4] ; hDlg
call	ds:SetDlgItemTextA
mov	eax, [ebp+var_30]
mov	[esi+0B0h], eax
mov	eax, [ebp+var_2C]
mov	[esi+0B4h], eax

loc_423F2D:
mov	eax, [esi+0A8h]
mov	[ebp+arg_0], 1
cmp	eax, edi
jz	short loc_423F41
mov	[ebp+arg_0], eax

loc_423F41:
push	edi
push	3E8h
push	[ebp+var_24]
push	[ebp+var_28]
call	__allmul
push	edi
push	[ebp+arg_0]
push	edx
push	eax
call	__aulldiv
push	0Ah
mov	[ebp+var_20], eax
pop	ecx
mov	[ebp+var_1C], edx
call	__aullshr
push	0Ah
mov	edi, eax
pop	ecx
mov	[ebp+var_7C], edx
call	__aullshr
mov	ecx, eax
mov	eax, edx
test	eax, eax
mov	[ebp+var_30], ecx
mov	[ebp+var_2C], eax
ja	short loc_423F8D
push	0Ah
pop	edx
cmp	ecx, edx
jb	short loc_423FEA

loc_423F8D:
push	2
pop	edi
cmp	[esi+0B8h], edi
jnz	short loc_423FAF
cmp	ecx, [esi+0C0h]
lea	edx, [esi+0C0h]
jnz	short loc_423FAF
cmp	eax, [edx+4]
jz	loc_4240BB

loc_423FAF:
push	0Ah
lea	ecx, [ebp+String1]
pop	edx
push	eax
push	[ebp+var_30]
call	sub_427A98
lea	eax, [ebp+String1]
push	offset String2	; " MB/s"
push	eax		; lpString1
call	ds:lstrcatA
mov	eax, [ebp+var_30]
mov	[esi+0B8h], edi
mov	[esi+0C0h], eax
mov	eax, [ebp+var_2C]
jmp	loc_4240A0

loc_423FEA:
mov	eax, [ebp+var_7C]
test	eax, eax
ja	short loc_423FF5
cmp	edi, edx
jb	short loc_42404C

loc_423FF5:
cmp	dword ptr [esi+0B8h], 1
jnz	short loc_424015
cmp	edi, [esi+0C0h]
lea	ecx, [esi+0C0h]
jnz	short loc_424015
cmp	eax, [ecx+4]
jz	loc_4240BB

loc_424015:
push	0Ah
lea	ecx, [ebp+String1]
pop	edx
push	eax
push	edi
call	sub_427A98
lea	eax, [ebp+String1]
push	offset aKbS	; " KB/s"
push	eax		; lpString1
call	ds:lstrcatA
mov	eax, [ebp+var_7C]
mov	dword ptr [esi+0B8h], 1
mov	[esi+0C0h], edi
jmp	short loc_4240A0

loc_42404C:
cmp	dword ptr [esi+0B8h], 0
jnz	short loc_42406C
mov	edi, [ebp+var_20]
lea	eax, [esi+0C0h]
cmp	edi, [eax]
jnz	short loc_42406F
mov	ecx, [ebp+var_1C]
cmp	ecx, [eax+4]
jz	short loc_4240BB
jmp	short loc_42406F

loc_42406C:
mov	edi, [ebp+var_20]

loc_42406F:
push	[ebp+var_1C]
lea	ecx, [ebp+String1]
push	edi
call	sub_427A98
lea	eax, [ebp+String1]
push	offset aBS	; " B/s"
push	eax		; lpString1
call	ds:lstrcatA
and	dword ptr [esi+0B8h], 0
mov	eax, [ebp+var_1C]
mov	[esi+0C0h], edi

loc_4240A0:
mov	[esi+0C4h], eax
lea	eax, [ebp+String1]
push	eax		; lpString
push	3EFh		; nIDDlgItem
push	dword ptr [esi+4] ; hDlg
call	ds:SetDlgItemTextA

loc_4240BB:
xor	edi, edi

loc_4240BD:
mov	eax, [ebp+var_14]
or	eax, [ebp+var_10]
jnz	short loc_4240CF
mov	[ebp+var_14], 1
mov	[ebp+var_10], edi

loc_4240CF:
push	edi
push	64h
push	[ebp+var_24]
push	[ebp+var_28]
call	__allmul
push	[ebp+var_10]
push	[ebp+var_14]
push	edx
push	eax
call	__aulldiv
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+arg_0], eax
mov	[ebp+Memory], edi
mov	[ebp+var_5C], edi
mov	[ebp+var_58], edi
call	sub_403396
lea	eax, [ebp+Memory]
mov	ecx, ebx
push	eax
mov	[ebp+var_4], edi
call	sub_42445E
mov	eax, [ebp+arg_0]
lea	edi, [esi+0A0h]
cmp	eax, [edi]
jnz	short loc_42412A
mov	edx, [ebp+Memory]
mov	ecx, [esi+14h]
call	sub_42828A
test	eax, eax
jz	short loc_424142

loc_42412A:
mov	eax, [ebp+arg_0]
mov	ecx, esi
mov	[edi], eax
call	sub_4249CF
lea	eax, [ebp+Memory]
lea	ecx, [esi+14h]
push	eax
call	sub_40312C

loc_424142:
push	0Ah
lea	ecx, [ebp+String]
pop	edx
push	[ebp+var_70]
push	[ebp+var_74]
call	sub_427A98
mov	eax, [ebp+var_3C]
and	eax, [ebp+var_38]
cmp	eax, 0FFFFFFFFh
jz	short loc_424195
lea	eax, [ebp+String]
push	offset asc_45C440 ; " /	"
push	eax		; lpString1
call	ds:lstrcatA
lea	eax, [ebp+String]
push	eax		; lpString
call	ds:lstrlenA
push	[ebp+var_38]
lea	ecx, [ebp+eax+String]
push	[ebp+var_3C]
push	0Ah
pop	edx
call	sub_427A98

loc_424195:
lea	eax, [ebp+String]
push	eax		; lpString
push	3F5h		; nIDDlgItem
push	dword ptr [esi+4] ; hDlg
call	ds:SetDlgItemTextA
mov	al, [esi+1A0h]
test	al, al
jz	short loc_4241BF
mov	ecx, [ebp+var_44]
mov	[ebp+var_14], ecx
mov	ecx, [ebp+var_40]
jmp	short loc_4241C8

loc_4241BF:
mov	ecx, [ebp+var_68]
mov	[ebp+var_14], ecx
mov	ecx, [ebp+var_64]

loc_4241C8:
test	al, al
mov	[ebp+var_10], ecx
jz	short loc_4241D7
mov	edi, [ebp+var_68]
mov	eax, [ebp+var_64]
jmp	short loc_4241DD

loc_4241D7:
mov	edi, [ebp+var_44]
mov	eax, [ebp+var_40]

loc_4241DD:
mov	[ebp+var_38], eax
mov	eax, edi
and	eax, [ebp+var_38]
cmp	eax, 0FFFFFFFFh
jnz	short loc_424226
mov	eax, [ebp+var_14]
and	eax, [ebp+var_10]
cmp	eax, 0FFFFFFFFh
jnz	short loc_424226
push	[ebp+var_24]	; int
mov	ecx, esi
push	[ebp+var_28]	; int
push	3FBh		; nIDDlgItem
call	sub_423B73
push	3F9h		; nIDDlgItem
push	dword ptr [esi+4] ; hDlg
call	ds:GetDlgItem
mov	edx, offset word_45D498
mov	ecx, eax
call	sub_42E6BD
jmp	loc_4242B7

loc_424226:		; int
push	[ebp+var_38]
mov	ecx, esi
push	edi		; int
push	3FBh		; nIDDlgItem
call	sub_423B73
push	[ebp+var_10]	; int
mov	ecx, esi
push	[ebp+var_14]	; int
push	3F9h		; nIDDlgItem
call	sub_423B73
mov	eax, [ebp+var_14]
and	eax, [ebp+var_10]
cmp	eax, 0FFFFFFFFh
jz	short loc_4242B7
mov	eax, edi
and	eax, [ebp+var_38]
cmp	eax, 0FFFFFFFFh
jz	short loc_4242B7
mov	eax, edi
or	eax, [ebp+var_38]
jz	short loc_4242B7
push	0
push	64h
push	[ebp+var_10]
push	[ebp+var_14]
call	__allmul
push	[ebp+var_38]
push	edi
push	edx
push	eax
call	__aulldiv
push	0Ah
mov	edi, edx
pop	edx
lea	ecx, [ebp+String]
push	edi
push	eax
call	sub_427A98
lea	eax, [ebp+String]
push	offset asc_45C43C ; "%"
push	eax		; lpString1
call	ds:lstrcatA
lea	eax, [ebp+String]
push	eax		; lpString
push	3F7h		; nIDDlgItem
push	dword ptr [esi+4] ; hDlg
call	ds:SetDlgItemTextA

loc_4242B7:		; Memory
push	[ebp+Memory]
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx

loc_4242C4:
xor	edi, edi
push	3
lea	ecx, [ebp+var_54]
mov	[ebp+var_54], edi
mov	[ebp+var_50], edi
mov	[ebp+var_4C], edi
call	sub_403396
lea	eax, [ebp+var_54]
mov	ecx, ebx
push	eax
mov	[ebp+var_4], 1
call	sub_4244A4
mov	edx, [ebp+var_54]
mov	ecx, [esi+8]
call	sub_42828A
cmp	eax, edi
jz	loc_424444
mov	eax, [ebp+var_50]
cmp	eax, edi
jz	short loc_424322
mov	ecx, [ebp+var_54]
lea	eax, [ecx+eax*2-2]

loc_42430C:
cmp	word ptr [eax],	5Ch
jz	short loc_42431A
cmp	eax, ecx
jz	short loc_424322
dec	eax
dec	eax
jmp	short loc_42430C

loc_42431A:
sub	eax, ecx
sar	eax, 1
mov	ebx, eax
jmp	short loc_424325

loc_424322:
or	ebx, 0FFFFFFFFh

loc_424325:
push	3
lea	ecx, [ebp+var_48]
mov	[ebp+var_48], edi
mov	[ebp+var_44], edi
mov	[ebp+var_40], edi
call	sub_403396
push	3
lea	ecx, [ebp+var_34]
mov	byte ptr [ebp+var_4], 2
mov	[ebp+var_34], edi
mov	[ebp+var_30], edi
mov	[ebp+var_2C], edi
call	sub_403396
cmp	ebx, edi
mov	byte ptr [ebp+var_4], 3
jl	short loc_4243AA
lea	edi, [ebx+1]
lea	eax, [ebp+Memory]
push	edi
push	eax
lea	ecx, [ebp+var_54]
call	sub_403228
push	eax
lea	ecx, [ebp+var_48]
mov	byte ptr [ebp+var_4], 4
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx
lea	eax, [ebp+Memory]
push	edi
push	eax
lea	ecx, [ebp+var_54]
call	sub_405246
push	eax
lea	ecx, [ebp+var_34]
mov	byte ptr [ebp+var_4], 5
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx
jmp	short loc_4243B6

loc_4243AA:
lea	eax, [ebp+var_54]
lea	ecx, [ebp+var_34]
push	eax
call	sub_40312C

loc_4243B6:
mov	edx, [esi+0CCh]
lea	edi, [esi+0CCh]
lea	ecx, [ebp+var_48]
call	sub_4244EA
mov	edx, [edi]
lea	ecx, [ebp+var_34]
call	sub_4244EA
push	offset asc_45B10C ; "\n"
lea	edx, [ebp+var_48]
lea	ecx, [ebp+nIDDlgItem]
call	sub_409948
lea	ecx, [ebp+var_34]
mov	edx, eax
push	ecx
lea	ecx, [ebp+var_6C]
mov	byte ptr [ebp+var_4], 6
call	sub_40356A
push	[ebp+nIDDlgItem] ; Memory
mov	byte ptr [ebp+var_4], 8
call	sub_4284D8
mov	edi, [ebp+var_6C]
mov	[esp+138h+var_138], 3F2h
push	dword ptr [esi+4] ; hDlg
call	ds:GetDlgItem
mov	edx, edi
mov	ecx, eax
call	sub_42E6BD
mov	edx, [ebp+var_54]
mov	ecx, [esi+8]
call	sub_42828A
push	[ebp+var_6C]	; Memory
call	sub_4284D8
push	[ebp+var_34]	; Memory
call	sub_4284D8
push	[ebp+var_48]	; Memory
call	sub_4284D8
add	esp, 0Ch

loc_424444:		; Memory
push	[ebp+var_54]
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_423C31 endp



; Attributes: bp-based frame

sub_42445E proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_446A44
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	edi
lea	edi, [esi+94h]
push	edi		; lpCriticalSection
mov	[ebp+var_10], edi
call	ds:EnterCriticalSection
mov	ecx, [ebp+arg_0]
and	[ebp+var_4], 0
add	esi, 38h
push	esi
call	sub_40312C
push	edi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_42445E endp



; Attributes: bp-based frame

sub_4244A4 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_446A58
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	edi
lea	edi, [esi+94h]
push	edi		; lpCriticalSection
mov	[ebp+var_10], edi
call	ds:EnterCriticalSection
mov	ecx, [ebp+arg_0]
and	[ebp+var_4], 0
add	esi, 44h
push	esi
call	sub_40312C
push	edi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_4244A4 endp



; Attributes: bp-based frame

sub_4244EA proc	near

var_4C=	dword ptr -4Ch
var_40=	dword ptr -40h
var_34=	dword ptr -34h
var_28=	dword ptr -28h
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_446A8C
call	__EH_prolog
sub	esp, 40h
push	esi
mov	esi, ecx
mov	eax, edx
cmp	[esi+4], eax
jle	loc_424597
cdq
push	ebx
sub	eax, edx
push	edi
mov	edi, eax
sar	edi, 1
lea	eax, [ebp+var_4C]
push	edi
push	eax
call	sub_40B5EF
mov	ebx, eax
and	[ebp+var_4], 0
push	offset a___	; " ...	"
lea	ecx, [ebp+var_40]
call	sub_403091
mov	[ebp+var_10], eax
lea	eax, [ebp+var_34]
push	edi
push	eax
mov	ecx, esi
mov	byte ptr [ebp+var_4], 1
call	sub_403228
push	[ebp+var_10]
mov	edx, eax
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 2
call	sub_40356A
push	ebx
mov	edx, eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 3
call	sub_40356A
push	eax
mov	ecx, esi
mov	byte ptr [ebp+var_4], 4
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_28]	; Memory
call	sub_4284D8
push	[ebp+var_34]	; Memory
call	sub_4284D8
push	[ebp+var_40]	; Memory
call	sub_4284D8
push	[ebp+var_4C]	; Memory
call	sub_4284D8
add	esp, 14h
pop	edi
pop	ebx

loc_424597:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_4244EA endp



; Attributes: bp-based frame

; int __thiscall sub_4245A4(LPSTR, int,	int)
sub_4245A4 proc	near

arg_0= dword ptr  8
arg_4= dword ptr  0Ch

push	ebp
mov	ebp, esp
push	edi
push	0
push	3Ch
mov	edi, ecx
push	[ebp+arg_4]
push	[ebp+arg_0]
call	__aullrem
push	eax
push	0
push	3Ch
push	[ebp+arg_4]
push	[ebp+arg_0]
call	__aulldiv
push	0
push	3Ch
push	edx
push	eax
call	__aullrem
push	eax
push	0
push	0E10h
push	[ebp+arg_4]
push	[ebp+arg_0]
call	__aulldiv
push	eax
push	offset a02d02d02d ; "%02d:%02d:%02d"
push	edi		; LPSTR
call	ds:wsprintfA
add	esp, 14h
pop	edi
pop	ebp
retn	8
sub_4245A4 endp




sub_4245FC proc	near
push	esi
mov	esi, ecx
lea	ecx, [esi+0F0h]
call	sub_422D97
test	al, al
jnz	short loc_42461E
mov	ecx, esi
call	sub_424F7A
push	0
mov	ecx, esi
call	sub_423C31

loc_42461E:
mov	al, 1
pop	esi
retn	8
sub_4245FC endp



; Attributes: bp-based frame

; int __stdcall	sub_424624(int,	int, HWND hWndParent)
sub_424624 proc	near

Handles= dword ptr -28h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
hCursor= dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
hWndParent= dword ptr  10h

mov	eax, offset loc_446AA0
call	__EH_prolog
sub	esp, 1Ch
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
push	edi
mov	[ebp+var_14], esi
cmp	[esi+1A1h], bl
mov	[ebp+var_10], esp
mov	[ebp+var_18], ebx
mov	[ebp+var_4], ebx
jz	short loc_4246B1
lea	ecx, [ebp+var_20]
call	sub_424743
mov	eax, [ebp+arg_4]
push	3E8h		; dwMilliseconds
push	ebx		; bWaitAll
mov	byte ptr [ebp+var_4], 1
mov	eax, [eax]
mov	[ebp+Handles], eax
mov	eax, [esi+0E4h]
mov	[ebp+var_24], eax
lea	eax, [ebp+Handles]
push	eax		; lpHandles
push	2		; nCount
call	ds:WaitForMultipleObjects
cmp	eax, ebx
jnz	short loc_4246A0
lea	ecx, [esi+0F0h]
call	sub_42472B
cmp	al, bl
jnz	short loc_4246A0
cmp	[ebp+var_20], ebx
jz	short loc_42469C
push	[ebp+hCursor]	; hCursor
call	ds:SetCursor

loc_42469C:
xor	eax, eax
jmp	short loc_42471A

loc_4246A0:
cmp	[ebp+var_20], ebx
mov	byte ptr [ebp+var_4], bl
jz	short loc_4246B1
push	[ebp+hCursor]	; hCursor
call	ds:SetCursor

loc_4246B1:
push	[ebp+arg_0]
lea	ecx, [esi+74h]
call	sub_40312C
push	[ebp+hWndParent] ; hWndParent
mov	ecx, esi
push	1F4h		; lpTemplateName
call	sub_42FCF7
mov	[ebp+var_18], eax
jmp	short loc_4246F0

loc_4246D0:
mov	eax, [ebp+var_14]
lea	ecx, [eax+0E8h]
mov	byte ptr [eax+0D0h], 1
call	sub_4418F0
mov	eax, offset loc_4246EB
retn

loc_4246EB:
mov	esi, [ebp+var_14]
xor	ebx, ebx

loc_4246F0:
mov	eax, [ebp+arg_4]
mov	ecx, [eax]	; hHandle
call	sub_441880
cmp	[esi+1A3h], bl
jnz	short loc_424717
push	10h		; uType
push	offset a7Zip	; "7-Zip"
push	offset Text	; "Progress Error"
push	[ebp+hWndParent] ; hWnd
call	ds:MessageBoxW

loc_424717:
mov	eax, [ebp+var_18]

loc_42471A:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	0Ch
sub_424624 endp




sub_42472B proc	near
xor	eax, eax
cmp	[ecx+58h], eax
jnz	short loc_42473F
cmp	[ecx+68h], eax
jnz	short loc_42473F
cmp	[ecx+80h], eax
jz	short locret_424742

loc_42473F:
push	1
pop	eax

locret_424742:
retn
sub_42472B endp




sub_424743 proc	near
push	esi
push	7F02h		; lpCursorName
mov	esi, ecx
push	0		; hInstance
call	ds:LoadCursorA
test	eax, eax
mov	[esi], eax
jz	short loc_424763
push	eax		; hCursor
call	ds:SetCursor
mov	[esi+4], eax

loc_424763:
mov	eax, esi
pop	esi
retn
sub_424743 endp

; START	OF FUNCTION CHUNK FOR sub_446A98

loc_424767:
cmp	dword ptr [ecx], 0
jz	short locret_424775
push	dword ptr [ecx+4] ; hCursor
call	ds:SetCursor

locret_424775:
retn
; END OF FUNCTION CHUNK	FOR sub_446A98


; Attributes: bp-based frame

sub_424776 proc	near

Memory=	dword ptr -50h
lpText=	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
lpCaption= 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
lpCriticalSection= dword ptr -14h
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_446ADC
call	__EH_prolog
sub	esp, 44h
push	ebx
push	esi
push	edi
mov	esi, ecx
push	1
call	sub_423C31
xor	ebx, ebx
mov	ecx, esi
push	ebx		; nCmdShow
push	33h		; nIDDlgItem
call	sub_424961
push	ebx		; nCmdShow
push	32h		; nIDDlgItem
mov	ecx, esi
call	sub_424961
push	2000713h
mov	edx, 2C0h
lea	ecx, [ebp+Memory]
call	sub_40B168
mov	eax, [eax]
lea	edi, [esi+4]
push	2		; nIDDlgItem
mov	[ebp+var_4], ebx
push	dword ptr [edi]	; hDlg
mov	[ebp+lpCriticalSection], eax
call	ds:GetDlgItem
mov	edx, [ebp+lpCriticalSection]
mov	ecx, eax
call	sub_42E6BD
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx
mov	[ebp+lpText], ebx
push	3
lea	ecx, [ebp+lpText]
mov	[ebp+var_40], ebx
mov	[ebp+var_3C], ebx
call	sub_403396
push	3
lea	ecx, [ebp+lpCaption]
mov	[ebp+var_4], 1
mov	[ebp+lpCaption], ebx
mov	[ebp+var_28], ebx
mov	[ebp+var_24], ebx
call	sub_403396
push	3
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 2
mov	[ebp+var_38], ebx
mov	[ebp+var_34], ebx
mov	[ebp+var_30], ebx
call	sub_403396
push	3
lea	ecx, [ebp+var_20]
mov	byte ptr [ebp+var_4], 3
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
call	sub_403396
lea	eax, [esi+184h]
push	eax		; lpCriticalSection
mov	[ebp+lpCriticalSection], eax
call	ds:EnterCriticalSection
lea	eax, [esi+154h]
lea	ecx, [ebp+var_38]
push	eax
mov	byte ptr [ebp+var_4], 5
call	sub_40312C
lea	eax, [esi+160h]
lea	ecx, [ebp+var_20]
push	eax
call	sub_40312C
lea	eax, [esi+16Ch]
push	eax
lea	ecx, [ebp+lpText]
call	sub_40312C
lea	eax, [esi+178h]
lea	ecx, [ebp+lpCaption]
push	eax
call	sub_40312C
cmp	[esi+148h], ebx
push	[ebp+lpCriticalSection]	; lpCriticalSection
mov	byte ptr [ebp+var_4], 4
setnz	[ebp+var_D]
call	ds:LeaveCriticalSection
cmp	[ebp+var_34], ebx
jz	short loc_4248CD
cmp	[ebp+var_1C], ebx
mov	byte ptr [esi+1A3h], 1
jnz	short loc_4248C3
push	offset a7Zip	; "7-Zip"
lea	ecx, [ebp+var_20]
call	sub_404722

loc_4248C3:
push	10h
push	[ebp+var_20]
push	[ebp+var_38]
jmp	short loc_4248F7

loc_4248CD:
cmp	[ebp+var_D], bl
jnz	short loc_42490C
cmp	[ebp+var_40], ebx
mov	byte ptr [esi+1A3h], 1
jz	short loc_424924
cmp	[ebp+var_28], ebx
jnz	short loc_4248F0
push	offset a7Zip	; "7-Zip"
lea	ecx, [ebp+lpCaption]
call	sub_404722

loc_4248F0:		; uType
push	ebx
push	[ebp+lpCaption]	; lpCaption
push	[ebp+lpText]	; lpText

loc_4248F7:
mov	eax, esi
neg	eax
sbb	eax, eax
and	eax, edi
push	dword ptr [eax]	; hWnd
call	ds:MessageBoxW
cmp	[ebp+var_D], bl
jz	short loc_424924

loc_42490C:
cmp	[esi+0DEh], bl
jnz	short loc_424924
mov	ecx, esi
mov	byte ptr [esi+0DDh], 1
call	sub_424D3F
jmp	short loc_42492D

loc_424924:		; nResult
push	ebx
push	dword ptr [edi]	; hDlg
call	ds:EndDialog

loc_42492D:		; Memory
push	[ebp+var_20]
call	sub_4284D8
push	[ebp+var_38]	; Memory
call	sub_4284D8
push	[ebp+lpCaption]	; Memory
call	sub_4284D8
push	[ebp+lpText]	; Memory
call	sub_4284D8
mov	ecx, [ebp+var_C]
add	esp, 10h
mov	al, 1
mov	large fs:0, ecx
pop	edi
pop	esi
pop	ebx
leave
retn
sub_424776 endp




; int __stdcall	sub_424961(int nIDDlgItem, int nCmdShow)
sub_424961 proc	near

nIDDlgItem= dword ptr  4
nCmdShow= dword	ptr  8

push	[esp+nIDDlgItem] ; nIDDlgItem
push	dword ptr [ecx+4] ; hDlg
call	ds:GetDlgItem
push	[esp+nCmdShow]	; nCmdShow
push	eax		; hWnd
call	ds:ShowWindow
neg	eax
sbb	eax, eax
neg	eax
retn	8
sub_424961 endp




sub_424982 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8
arg_8= dword ptr  0Ch

cmp	[esp+arg_0], 401h
push	esi
mov	esi, ecx
jnz	short loc_4249AF
push	dword ptr [esi+70h] ; uIDEvent
push	dword ptr [esi+4] ; hWnd
call	ds:KillTimer
and	dword ptr [esi+70h], 0
cmp	byte ptr [esi+0DFh], 0
jz	short loc_4249C4
mov	byte ptr [esi+0E0h], 1

loc_4249AF:
push	[esp+4+arg_8]
mov	ecx, esi
push	[esp+8+arg_4]
push	[esp+0Ch+arg_0]
call	sub_42FA35
jmp	short loc_4249CB

loc_4249C4:
mov	ecx, esi
call	sub_424776

loc_4249CB:
pop	esi
retn	0Ch
sub_424982 endp



; Attributes: bp-based frame

sub_4249CF proc	near

var_BC=	byte ptr -0BCh
Memory=	dword ptr -3Ch
var_30=	dword ptr -30h
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_4= dword ptr -4

mov	eax, offset loc_446B08
call	__EH_prolog
sub	esp, 0B0h
push	ebx
push	esi
mov	esi, ecx
push	edi
xor	ebx, ebx
push	3
lea	ecx, [ebp+var_18]
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_403396
lea	edi, [esi+0F0h]
mov	[ebp+var_4], ebx
mov	ecx, edi
call	sub_422D97
test	al, al
jz	short loc_424A23
lea	eax, [esi+5Ch]
lea	ecx, [ebp+var_18]
push	eax
call	sub_40312C
push	20h
lea	ecx, [ebp+var_18]
call	sub_40316A

loc_424A23:
mov	eax, [esi+0A0h]
cmp	eax, 0FFFFFFFFh
jz	short loc_424A54
push	ebx
lea	ecx, [ebp+var_BC]
push	eax
call	sub_427B10
lea	eax, [ebp+var_BC]
lea	ecx, [ebp+var_18]
push	eax
call	sub_403195
push	25h
lea	ecx, [ebp+var_18]
call	sub_40316A

loc_424A54:
cmp	[esi+0C8h], bl
jnz	short loc_424A72
push	20h
lea	ecx, [ebp+var_18]
call	sub_40316A
lea	eax, [esi+2Ch]
lea	ecx, [ebp+var_18]
push	eax
call	sub_4031F2

loc_424A72:
push	20h
lea	ecx, [ebp+var_18]
call	sub_40316A
lea	eax, [esi+74h]
lea	edx, [ebp+var_18]
push	eax
lea	ecx, [ebp+var_30]
call	sub_40356A
push	3
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 1
mov	[ebp+var_24], ebx
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
call	sub_403396
lea	eax, [ebp+var_24]
mov	ecx, edi
push	eax
mov	byte ptr [ebp+var_4], 2
call	sub_42445E
cmp	[ebp+var_20], ebx
jz	short loc_424AD7
push	24h
lea	ecx, [ebp+var_24]
pop	edx
call	sub_4244EA
push	20h
lea	ecx, [ebp+var_30]
call	sub_40316A
lea	eax, [ebp+var_24]
lea	ecx, [ebp+var_30]
push	eax
call	sub_4031F2

loc_424AD7:
mov	edx, [ebp+var_30]
mov	ecx, [esi+4]
call	sub_42E6BD
lea	eax, [esi+1B8h]
lea	edx, [ebp+var_18]
push	eax
lea	ecx, [ebp+Memory]
call	sub_40356A
push	dword ptr [eax]
mov	ecx, esi
mov	byte ptr [ebp+var_4], 3
call	sub_423238
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
push	[ebp+var_30]	; Memory
call	sub_4284D8
push	[ebp+var_18]	; Memory
call	sub_4284D8
mov	ecx, [ebp+var_C]
add	esp, 10h
mov	large fs:0, ecx
pop	edi
pop	esi
pop	ebx
leave
retn
sub_4249CF endp




sub_424B33 proc	near
push	esi
mov	esi, ecx
push	edi
lea	ecx, [esi+0F0h]
call	sub_422D97
test	al, al
lea	eax, [esi+50h]
jnz	short loc_424B4C
lea	eax, [esi+44h]

loc_424B4C:
mov	edi, [eax]
push	32h		; nIDDlgItem
push	dword ptr [esi+4] ; hDlg
call	ds:GetDlgItem
mov	edx, edi
mov	ecx, eax
call	sub_42E6BD
mov	ecx, esi
call	sub_4249CF
pop	edi
pop	esi
retn
sub_424B33 endp



; Attributes: bp-based frame

sub_424B6C proc	near

var_4= dword ptr -4

push	ebp
mov	ebp, esp
push	ecx
push	ebx
push	esi
mov	esi, ecx
push	edi
lea	edi, [esi+0F0h]
mov	ecx, edi
call	sub_422D97
mov	bl, al
mov	ecx, edi
neg	bl
sbb	bl, bl
inc	bl
mov	byte ptr [ebp+var_4], bl
push	[ebp+var_4]
call	sub_424BC1
call	ds:GetTickCount
test	bl, bl
jz	short loc_424BAF
mov	ecx, eax
sub	ecx, [esi+0A4h]
add	[esi+0A8h], ecx

loc_424BAF:
mov	ecx, esi
mov	[esi+0A4h], eax
call	sub_424B33
pop	edi
pop	esi
pop	ebx
leave
retn
sub_424B6C endp




sub_424BC1 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
push	edi
lea	edi, [esi+94h]
push	edi		; lpCriticalSection
call	ds:EnterCriticalSection
mov	al, [esp+8+arg_0]
push	edi		; lpCriticalSection
mov	[esi+1], al
call	ds:LeaveCriticalSection
pop	edi
pop	esi
retn	4
sub_424BC1 endp




sub_424BE5 proc	near
push	esi
mov	esi, ecx
push	edi
cmp	byte ptr [esi+0C8h], 0
lea	eax, [esi+20h]
jnz	short loc_424BF8
lea	eax, [esi+38h]

loc_424BF8:
mov	edi, [eax]
push	33h		; nIDDlgItem
push	dword ptr [esi+4] ; hDlg
call	ds:GetDlgItem
mov	edx, edi
mov	ecx, eax
call	sub_42E6BD
mov	ecx, esi
call	sub_4249CF
pop	edi
pop	esi
retn
sub_424BE5 endp




sub_424C18 proc	near
push	esi
mov	esi, ecx
cmp	byte ptr [esi+0C8h], 0
lea	ecx, [esi+0C8h]
setz	al
mov	[ecx], al
neg	al
sbb	eax, eax
and	al, 0E0h
add	eax, 40h
push	eax		; dwPriorityClass
call	ds:GetCurrentProcess
push	eax		; hProcess
call	ds:SetPriorityClass
mov	ecx, esi
call	sub_424BE5
pop	esi
retn
sub_424C18 endp



; Attributes: bp-based frame

sub_424C4D proc	near

var_40=	byte ptr -40h
arg_0= dword ptr  8

push	ebp
mov	ebp, esp
sub	esp, 40h
push	esi
push	edi
push	0		; lParam
lea	esi, [ecx+9Ch]
push	0		; wParam
push	1004h		; Msg
push	dword ptr [esi]	; hWnd
call	ds:SendMessageA
mov	edi, eax
lea	ecx, [ebp+var_40]
cdq
push	edx
push	eax
call	sub_427B9C
lea	eax, [ebp+var_40]
mov	ecx, esi
push	eax
push	edi
call	sub_42FE6D
push	[ebp+arg_0]
mov	ecx, esi
push	1
push	edi
call	sub_42FEA4
pop	edi
pop	esi
leave
retn	4
sub_424C4D endp



; Attributes: bp-based frame

sub_424C98 proc	near

Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_446B24
call	__EH_prolog
sub	esp, 18h
push	ebx
push	esi
push	edi
mov	edi, ecx
push	[ebp+arg_0]
lea	ecx, [ebp+var_18]
call	sub_403091
xor	ebx, ebx
mov	[ebp+var_4], ebx

loc_424CBA:
cmp	[ebp+var_14], ebx
jz	short loc_424D1B
mov	edx, [ebp+var_18]
mov	eax, edx
mov	cx, [edx]

loc_424CC7:
cmp	cx, 0Ah
jz	short loc_424CD9
cmp	cx, bx
jz	short loc_424CE1
inc	eax
inc	eax
mov	cx, [eax]
jmp	short loc_424CC7

loc_424CD9:
sub	eax, edx
sar	eax, 1
mov	esi, eax
jmp	short loc_424CE4

loc_424CE1:
or	esi, 0FFFFFFFFh

loc_424CE4:
cmp	esi, ebx
jl	short loc_424D1B
lea	eax, [ebp+Memory]
push	esi
push	eax
lea	ecx, [ebp+var_18]
call	sub_403228
push	dword ptr [eax]
mov	ecx, edi
mov	byte ptr [ebp+var_4], 1
call	sub_424C4D
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx
inc	esi
push	esi
push	ebx
lea	ecx, [ebp+var_18]
call	sub_40708E
jmp	short loc_424CBA

loc_424D1B:
push	[ebp+var_18]
mov	ecx, edi
call	sub_424C4D
push	[ebp+var_18]	; Memory
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_424C98 endp



; Attributes: bp-based frame

sub_424D3F proc	near

var_24=	dword ptr -24h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_446B48
call	__EH_prolog
sub	esp, 18h
push	ebx
push	esi
mov	esi, ecx
push	edi
push	4
lea	ecx, [ebp+var_24]
call	sub_402794
mov	[ebp+var_24], offset off_44B510
and	[ebp+var_4], 0
lea	ebx, [esi+184h]
push	ebx		; lpCriticalSection
mov	[ebp+var_10], ebx
call	ds:EnterCriticalSection
mov	edi, [esi+0D4h]
mov	byte ptr [ebp+var_4], 1

loc_424D80:
cmp	edi, [esi+148h]
jge	short loc_424D9C
mov	eax, [esi+14Ch]
lea	ecx, [ebp+var_24]
push	dword ptr [eax+edi*4]
call	sub_4032B4
inc	edi
jmp	short loc_424D80

loc_424D9C:
mov	eax, [esi+148h]
and	byte ptr [ebp+var_4], 0
push	ebx		; lpCriticalSection
mov	[esi+0D4h], eax
call	ds:LeaveCriticalSection
xor	ebx, ebx
cmp	[ebp+var_1C], ebx
jz	short loc_424E30
xor	edi, edi
cmp	[ebp+var_1C], ebx
jle	short loc_424DD6

loc_424DC1:
mov	eax, [ebp+var_18]
mov	ecx, esi
mov	eax, [eax+edi*4]
push	dword ptr [eax]
call	sub_424C98
inc	edi
cmp	edi, [ebp+var_1C]
jl	short loc_424DC1

loc_424DD6:
mov	ecx, [esi+0D8h]
cmp	ecx, 100h
jb	short loc_424DFA
call	sub_424E61
mov	ecx, [esi+0D4h]
mov	edi, eax
call	sub_424E61
cmp	eax, edi
jbe	short loc_424E30

loc_424DFA:
mov	edi, ds:SendMessageA
push	0FFFFh		; lParam
push	ebx		; wParam
mov	ebx, 101Eh
push	ebx		; Msg
push	dword ptr [esi+9Ch] ; hWnd
call	edi ; SendMessageA
push	0FFFFh		; lParam
push	1		; wParam
push	ebx		; Msg
push	dword ptr [esi+9Ch] ; hWnd
call	edi ; SendMessageA
mov	eax, [esi+0D4h]
mov	[esi+0D8h], eax

loc_424E30:
mov	[ebp+var_24], offset off_44B510
lea	ecx, [ebp+var_24]
mov	[ebp+var_4], 2
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_24]
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_424D3F endp




sub_424E61 proc	near
mov	eax, ecx
xor	ecx, ecx
cmp	eax, 0Ah
jb	short loc_424E78
push	esi

loc_424E6B:
push	0Ah
xor	edx, edx
pop	esi
div	esi
inc	ecx
cmp	eax, esi
jnb	short loc_424E6B
pop	esi

loc_424E78:
mov	eax, ecx
retn
sub_424E61 endp



; Attributes: bp-based frame

sub_424E7B proc	near

Memory=	dword ptr -0Ch
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

push	ebp
mov	ebp, esp
sub	esp, 0Ch
mov	eax, [ebp+arg_0]
push	esi
dec	eax
push	edi
dec	eax
mov	esi, ecx
jz	short loc_424EAE
sub	eax, 30h
jz	short loc_424EA2
dec	eax
jnz	loc_424F53
call	sub_424C18
jmp	loc_424F72

loc_424EA2:
mov	ecx, esi
call	sub_424B6C
jmp	loc_424F72

loc_424EAE:
cmp	byte ptr [esi+0DDh], 0
jz	short loc_424ECE
push	8		; nResult
mov	byte ptr [esi+1A3h], 1
push	dword ptr [esi+4] ; hDlg
call	ds:EndDialog
jmp	loc_424F53

loc_424ECE:
push	ebx
lea	ecx, [esi+0F0h]
call	sub_422D97
mov	bl, al
test	bl, bl
jnz	short loc_424EE7
mov	ecx, esi
call	sub_424B6C

loc_424EE7:
mov	edi, [esi+74h]
push	2000C30h
mov	edx, 2BFh
lea	ecx, [ebp+Memory]
mov	byte ptr [esi+0DFh], 1
call	sub_40B168
mov	eax, [eax]
mov	ecx, esi
neg	ecx
lea	edx, [esi+4]
push	3		; uType
sbb	ecx, ecx
push	edi		; lpCaption
and	ecx, edx
push	eax		; lpText
mov	ecx, [ecx]
push	ecx		; hWnd
call	ds:MessageBoxW
push	[ebp+Memory]	; Memory
mov	edi, eax
call	sub_4284D8
and	byte ptr [esi+0DFh], 0
pop	ecx
test	bl, bl
pop	ebx
jnz	short loc_424F3B
mov	ecx, esi
call	sub_424B6C

loc_424F3B:
cmp	edi, 2
jz	short loc_424F62
cmp	edi, 7
jz	short loc_424F62
mov	byte ptr [esi+0DEh], 1
mov	byte ptr [esi+1A3h], 1

loc_424F53:
push	[ebp+arg_4]
mov	ecx, esi
push	[ebp+arg_0]
call	sub_42FAE0
jmp	short loc_424F74

loc_424F62:
cmp	byte ptr [esi+0E0h], 0
jz	short loc_424F72
mov	ecx, esi
call	sub_424776

loc_424F72:
mov	al, 1

loc_424F74:
pop	edi
pop	esi
leave
retn	8
sub_424E7B endp




sub_424F7A proc	near
cmp	byte ptr [ecx+0D1h], 0
push	esi
lea	esi, [ecx+0D1h]
jz	short loc_424F9F
push	0		; lParam
push	0		; wParam
push	401h		; Msg
push	dword ptr [ecx+4] ; hWnd
call	ds:PostMessageA
and	byte ptr [esi],	0

loc_424F9F:
pop	esi
retn
sub_424F7A endp




sub_424FA1 proc	near
push	esi
mov	esi, ecx
cmp	byte ptr [esi+1A1h], 0
jnz	short loc_424FC3
lea	ecx, [esi+0E4h]
call	sub_4418F0
mov	ecx, [esi+0E8h]	; hHandle
call	sub_441880

loc_424FC3:
cmp	byte ptr [esi+0D0h], 0
jz	short loc_424FE0
push	0		; lParam
push	0		; wParam
push	401h		; Msg
push	dword ptr [esi+4] ; hWnd
call	ds:PostMessageA
pop	esi
retn

loc_424FE0:
mov	byte ptr [esi+0D1h], 1
pop	esi
retn
sub_424FA1 endp



; Attributes: bp-based frame

; int __stdcall	sub_424FE9(int,	HWND hWndParent)
sub_424FE9 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
hWndParent= dword ptr  0Ch

mov	eax, offset loc_446B5C
call	__EH_prolog
push	ecx
and	[ebp+var_10], 0
push	esi
mov	esi, ecx
and	[ebp+var_4], 0
push	esi
mov	edx, offset loc_425042
lea	ecx, [ebp+var_10]
call	sub_441890
test	eax, eax
jz	short loc_425015
mov	esi, eax
jmp	short loc_425029

loc_425015:		; hWndParent
push	[ebp+hWndParent]
lea	eax, [ebp+var_10]
lea	ecx, [esi+50h]
push	eax		; int
push	[ebp+arg_0]	; int
call	sub_424624
xor	esi, esi

loc_425029:
lea	ecx, [ebp+var_10]
call	sub_441850
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	esi
mov	large fs:0, ecx
leave
retn	8

loc_425042:
mov	eax, offset loc_446B68
call	__EH_prolog
push	ecx
and	[ebp+var_4], 0
push	ebx
push	esi
mov	esi, [ebp+arg_0]
push	edi
mov	ecx, esi
mov	[ebp+var_10], esp
call	sub_425138
mov	byte ptr [esi+48h], 1

loc_425065:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
xor	eax, eax
mov	large fs:0, ecx
pop	ebx
leave
retn	4
sub_424FE9 endp




sub_425078 proc	near
mov	eax, [ebp+8]
mov	dword ptr [eax+44h], 80004005h
mov	eax, offset loc_425065
retn
sub_425078 endp



; Attributes: bp-based frame

sub_425088 proc	near

Memory=	dword ptr -28h
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_4= dword ptr -4

mov	eax, offset loc_446B84
call	__EH_prolog
sub	esp, 1Ch
push	ebx
push	esi
push	edi
mov	edi, ecx
xor	ebx, ebx
mov	esi, edx
push	3
lea	ecx, [ebp+var_1C]
mov	[ebp+var_10], ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_403396
cmp	esi, 8007000Eh
mov	[ebp+var_4], ebx
jnz	short loc_4250EA
push	200060Bh
push	69h
pop	edx
lea	ecx, [ebp+Memory]
call	sub_40B168
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 1
call	sub_40312C
mov	byte ptr [ebp+var_4], bl
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
jmp	short loc_425101

loc_4250EA:
lea	edx, [ebp+var_1C]
mov	ecx, esi
call	sub_429BE4
test	al, al
jnz	short loc_425101
mov	eax, [ebp+var_1C]
mov	[ebp+var_18], ebx
mov	[eax], bx

loc_425101:
cmp	[ebp+var_18], ebx
jnz	short loc_425113
push	offset aError_0	; "Error"
lea	ecx, [ebp+var_1C]
call	sub_404722

loc_425113:
lea	eax, [ebp+var_1C]
mov	ecx, edi
push	eax
call	sub_4030F2
push	[ebp+var_1C]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, edi
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_425088 endp



; Attributes: bp-based frame

sub_425138 proc	near

Memory=	dword ptr -48h
var_3C=	dword ptr -3Ch
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_4= dword ptr -4

mov	eax, offset loc_446BB8
call	__EH_prolog
sub	esp, 3Ch
push	ebx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esp
mov	[ebp+var_14], esi
lea	eax, [esi+50h]
mov	[ebp+var_18], eax
xor	edi, edi
push	3
lea	ecx, [ebp+var_30]
mov	[ebp+var_4], edi
mov	[ebp+var_30], edi
mov	[ebp+var_2C], edi
mov	[ebp+var_28], edi
call	sub_403396
mov	eax, [esi]
mov	ecx, esi
mov	byte ptr [ebp+var_4], 2
call	dword ptr [eax]
mov	[esi+44h], eax
jmp	short loc_4251F6
push	[ebp+var_1C]
lea	ecx, [ebp+var_30]
call	sub_404722
mov	eax, offset loc_4251F1
retn
push	[ebp+var_20]
lea	ecx, [ebp+var_30]
call	sub_40312C
mov	eax, offset loc_4251F1
retn
push	[ebp+var_24]
lea	ecx, [ebp+var_3C]
call	sub_41E0DD
lea	edx, [ebp+var_3C]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 4
call	sub_41242C
push	eax
lea	ecx, [ebp+var_30]
mov	byte ptr [ebp+var_4], 5
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, offset loc_4251F1
pop	ecx
retn
push	offset aError_0	; "Error"
lea	ecx, [ebp+var_30]
call	sub_404722
mov	eax, offset loc_4251F1
retn

loc_4251F1:
mov	esi, [ebp+var_14]
xor	edi, edi

loc_4251F6:
mov	edx, [esi+44h]
mov	[ebp+var_4], 1
cmp	edx, 80004004h
jz	short loc_425233
cmp	[ebp+var_2C], edi
jnz	short loc_425233
cmp	edx, edi
jz	short loc_425233
lea	ecx, [ebp+Memory]
call	sub_425088
push	eax
lea	ecx, [ebp+var_30]
mov	byte ptr [ebp+var_4], 6
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
pop	ecx

loc_425233:
lea	edx, [esi+8]
lea	ecx, [ebp+var_30]
call	sub_425389
lea	edx, [esi+14h]
lea	ecx, [ebp+var_30]
call	sub_425389
lea	edx, [esi+20h]
lea	ecx, [ebp+var_30]
call	sub_425389
cmp	[ebp+var_2C], edi
jnz	short loc_42527C
cmp	[esi+30h], edi
jz	short loc_425297
lea	edi, [esi+140h]
lea	eax, [esi+38h]
push	eax
mov	ecx, edi
call	sub_425341
add	esi, 2Ch
mov	ecx, edi
push	esi
call	sub_4252FC
jmp	short loc_425297

loc_42527C:
lea	eax, [ebp+var_30]
lea	ecx, [esi+140h]
push	eax
call	sub_4252B7
cmp	[esi+44h], edi
jnz	short loc_425297
mov	dword ptr [esi+44h], 80004005h

loc_425297:		; Memory
push	[ebp+var_30]
call	sub_4284D8
pop	ecx
mov	ecx, [ebp+var_18]
call	sub_424FA1
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn
sub_425138 endp



; Attributes: bp-based frame

sub_4252B7 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_446BCC
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	edi
lea	edi, [esi+94h]
push	edi		; lpCriticalSection
mov	[ebp+var_10], edi
call	ds:EnterCriticalSection
push	[ebp+arg_0]
and	[ebp+var_4], 0
lea	ecx, [esi+64h]
call	sub_40312C
push	edi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_4252B7 endp



; Attributes: bp-based frame

sub_4252FC proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_446BE0
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	edi
lea	edi, [esi+94h]
push	edi		; lpCriticalSection
mov	[ebp+var_10], edi
call	ds:EnterCriticalSection
push	[ebp+arg_0]
and	[ebp+var_4], 0
lea	ecx, [esi+7Ch]
call	sub_40312C
push	edi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_4252FC endp



; Attributes: bp-based frame

sub_425341 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_446BF4
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	edi
lea	edi, [esi+94h]
push	edi		; lpCriticalSection
mov	[ebp+var_10], edi
call	ds:EnterCriticalSection
push	[ebp+arg_0]
and	[ebp+var_4], 0
lea	ecx, [esi+88h]
call	sub_40312C
push	edi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_425341 endp




sub_425389 proc	near
push	esi
push	edi
mov	edi, edx
mov	esi, ecx
cmp	dword ptr [edi+4], 0
jz	short loc_4253AA
cmp	dword ptr [esi+4], 0
jz	short loc_4253A2
push	0Ah
call	sub_40316A

loc_4253A2:
push	edi
mov	ecx, esi
call	sub_4031F2

loc_4253AA:
pop	edi
pop	esi
retn
sub_425389 endp




sub_4253AD proc	near
push	esi
lea	esi, [ecx+4]
neg	ecx
sbb	ecx, ecx
push	edi
and	ecx, esi
push	8
mov	edx, offset unk_45C4B0
mov	ecx, [ecx]
call	sub_40B00D
call	sub_41E998
xor	ecx, ecx
mov	edi, ds:CheckDlgButton
test	al, al
setnz	cl
push	ecx		; uCheck
push	3E8h		; nIDButton
push	dword ptr [esi]	; hDlg
call	edi ; CheckDlgButton
call	sub_41EA32
xor	ecx, ecx
test	al, al
setnz	cl
push	ecx		; uCheck
push	3F2h		; nIDButton
push	dword ptr [esi]	; hDlg
call	edi ; CheckDlgButton
call	sub_41EA18
xor	ecx, ecx
test	al, al
setnz	cl
push	ecx		; uCheck
push	3E9h		; nIDButton
push	dword ptr [esi]	; hDlg
call	edi ; CheckDlgButton
call	sub_41EA4C
xor	ecx, ecx
test	al, al
setnz	cl
push	ecx		; uCheck
push	3F3h		; nIDButton
push	dword ptr [esi]	; hDlg
call	edi ; CheckDlgButton
call	sub_41EA66
xor	ecx, ecx
test	al, al
setnz	cl
push	ecx		; uCheck
push	3F5h		; nIDButton
push	dword ptr [esi]	; hDlg
call	edi ; CheckDlgButton
call	sub_41EA80
xor	ecx, ecx
test	al, al
setnz	cl
push	ecx		; uCheck
push	3F8h		; nIDButton
push	dword ptr [esi]	; hDlg
call	edi ; CheckDlgButton
call	sub_405EA8
test	al, al
jz	short loc_425471
call	sub_41EB0D
xor	ecx, ecx
test	al, al
setnz	cl
push	ecx		; uCheck
push	3F9h		; nIDButton
push	dword ptr [esi]	; hDlg
call	edi ; CheckDlgButton
jmp	short loc_425487

loc_425471:		; nIDDlgItem
push	3F9h
push	dword ptr [esi]	; hDlg
call	ds:GetDlgItem
push	0		; bEnable
push	eax		; hWnd
call	ds:EnableWindow

loc_425487:
call	sub_41EA9A
xor	ecx, ecx
test	al, al
setnz	cl
push	ecx		; uCheck
push	3F6h		; nIDButton
push	dword ptr [esi]	; hDlg
call	edi ; CheckDlgButton
pop	edi
mov	al, 1
pop	esi
retn
sub_4253AD endp




sub_4254A2 proc	near
push	ebp
push	esi
push	edi
mov	edi, ds:IsDlgButtonChecked
mov	esi, ecx
push	3E8h		; nIDButton
push	dword ptr [esi+4] ; hDlg
call	edi ; IsDlgButtonChecked
push	1
pop	ebp
cmp	eax, ebp
setz	cl
call	sub_41E932
push	3F2h		; nIDButton
push	dword ptr [esi+4] ; hDlg
call	edi ; IsDlgButtonChecked
cmp	eax, ebp
setz	cl
call	sub_41EA25
push	3E9h		; nIDButton
push	dword ptr [esi+4] ; hDlg
call	edi ; IsDlgButtonChecked
cmp	eax, ebp
setz	cl
call	sub_41EA0B
push	3F3h		; nIDButton
push	dword ptr [esi+4] ; hDlg
call	edi ; IsDlgButtonChecked
cmp	eax, ebp
setz	cl
call	sub_41EA3F
push	3F5h		; nIDButton
push	dword ptr [esi+4] ; hDlg
call	edi ; IsDlgButtonChecked
cmp	eax, ebp
setz	cl
call	sub_41EA59
push	3F8h		; nIDButton
push	dword ptr [esi+4] ; hDlg
call	edi ; IsDlgButtonChecked
cmp	eax, ebp
setz	cl
call	sub_41EA73
call	sub_405EA8
test	al, al
jz	short loc_425554
push	ebx
push	3F9h		; nIDButton
push	dword ptr [esi+4] ; hDlg
call	edi ; IsDlgButtonChecked
mov	ebx, eax
dec	ebx
neg	ebx
sbb	bl, bl
inc	bl
mov	cl, bl
call	sub_42C4C5
mov	cl, bl
call	sub_41EAA7
pop	ebx

loc_425554:		; nIDButton
push	3F6h
push	dword ptr [esi+4] ; hDlg
call	edi ; IsDlgButtonChecked
cmp	eax, ebp
setz	cl
call	sub_41EA8D
pop	edi
pop	esi
xor	eax, eax
pop	ebp
retn
sub_4254A2 endp




sub_42556E proc	near
mov	edx, off_45C4F0
xor	ecx, ecx
jmp	sub_40AD1B
sub_42556E endp




sub_42557B proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	edx, [esp+arg_0]
lea	eax, [edx-3E8h]
cmp	eax, 11h	; switch 18 cases
ja	short loc_4255A1 ; jumptable 00425591 default case
movzx	eax, ds:byte_4255B6[eax]
jmp	ds:off_4255AE[eax*4] ; switch jump

loc_425598:		; jumptable 00425591 cases 0,1,10,11,13,14,16,17
call	sub_407229
mov	al, 1
jmp	short locret_4255AB

loc_4255A1:		; jumptable 00425591 default case
push	[esp+arg_4]
push	edx
call	sub_42FAE0

locret_4255AB:
retn	8
sub_42557B endp

off_4255AE dd offset loc_425598	; jump table for switch	statement
dd offset loc_4255A1
byte_4255B6 db	    0,	   0,	  1,	 1 ; indirect table for	switch statement
db	1,     1,     1,     1
db	1,     1,     0,     0
db	1,     0,     0,     1
db	0,     0


; Attributes: bp-based frame

sub_4255C8 proc	near

Memory=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_446C08
call	__EH_prolog
sub	esp, 0Ch
push	ebx
push	esi
push	edi
mov	edi, ecx
mov	esi, edi
mov	edx, 3020500h
neg	esi
lea	ebx, [edi+4]
sbb	esi, esi
and	esi, ebx
mov	ecx, [esi]
call	sub_40B08D
mov	esi, [esi]
push	2
mov	edx, offset unk_45C528
mov	ecx, esi
call	sub_40B00D
mov	esi, ds:GetDlgItem
push	3E9h		; nIDDlgItem
push	dword ptr [ebx]	; hDlg
call	esi ; GetDlgItem
push	3F3h		; nIDDlgItem
mov	[edi+8], eax
push	dword ptr [ebx]	; hDlg
call	esi ; GetDlgItem
lea	esi, [edi+0Ch]
mov	[esi], eax
xor	eax, eax
cmp	[edi+14h], eax
jz	short loc_425677
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], eax
mov	[ebp+var_14], eax
mov	[ebp+var_10], eax
call	sub_403396
and	[ebp+var_4], 0
lea	eax, [ebp+Memory]
push	eax
mov	ecx, ebx
call	sub_42E799
push	20h
lea	ecx, [ebp+Memory]
call	sub_40316A
lea	eax, [edi+10h]
lea	ecx, [ebp+Memory]
push	eax
call	sub_4031F2
mov	edx, [ebp+Memory]
mov	ecx, [ebx]
call	sub_42E6BD
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx

loc_425677:
mov	edx, [edi+1Ch]
mov	ecx, [edi+8]
call	sub_42E6BD
mov	ecx, esi
call	sub_41F716
xor	ebx, ebx
push	ebx		; lParam
push	ebx		; wParam
push	14Eh		; Msg
push	dword ptr [esi]	; hWnd
call	ds:SendMessageA
push	ebx
mov	ecx, edi
call	sub_42FB78
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	al, 1
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_4255C8 endp



; Attributes: bp-based frame

; int __stdcall	sub_4256B3(int,	int, int nWidth)
sub_4256B3 proc	near

Rect= tagRECT ptr -30h
var_20=	dword ptr -20h
Y= dword ptr -1Ch
nHeight= 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_4= dword ptr  0Ch
nWidth=	dword ptr  10h

push	ebp
mov	ebp, esp
sub	esp, 30h
push	ebx
push	esi
push	edi
push	8
pop	eax
and	[ebp+Rect.left], 0
and	[ebp+Rect.top],	0
mov	[ebp+Rect.right], eax
mov	[ebp+Rect.bottom], eax
lea	eax, [ebp+Rect]
lea	esi, [ecx+4]
push	eax		; lpRect
mov	[ebp+var_20], ecx
push	dword ptr [esi]	; hDlg
call	ds:MapDialogRect
test	eax, eax
jz	short loc_4256F5
mov	eax, [ebp+Rect.right]
sub	eax, [ebp+Rect.left]
mov	[ebp+var_8], eax
mov	eax, [ebp+Rect.bottom]
sub	eax, [ebp+Rect.top]
mov	[ebp+var_10], eax

loc_4256F5:
mov	edi, ds:GetDlgItem
push	2		; nIDDlgItem
push	dword ptr [esi]	; hDlg
call	edi ; GetDlgItem
lea	ecx, [ebp+Rect]
push	ecx		; lpRect
push	eax		; hWnd
call	ds:GetWindowRect
test	eax, eax
jz	short loc_425724
mov	eax, [ebp+Rect.right]
mov	ebx, [ebp+Rect.bottom]
sub	eax, [ebp+Rect.left]
sub	ebx, [ebp+Rect.top]
mov	[ebp+var_C], eax
mov	[ebp+var_4], ebx
jmp	short loc_425727

loc_425724:
mov	ebx, [ebp+var_4]

loc_425727:		; nIDDlgItem
push	1
push	dword ptr [esi]	; hDlg
call	edi ; GetDlgItem
lea	ecx, [ebp+Rect]
push	ecx		; lpRect
push	eax		; hWnd
call	ds:GetWindowRect
test	eax, eax
jz	short loc_425750
mov	eax, [ebp+Rect.right]
sub	eax, [ebp+Rect.left]
mov	[ebp+var_14], eax
mov	eax, [ebp+Rect.bottom]
sub	eax, [ebp+Rect.top]
mov	[ebp+var_4], eax
mov	ebx, eax

loc_425750:
mov	eax, [ebp+nWidth]
push	1		; bErase
sub	eax, ebx
mov	ebx, [ebp+arg_4]
sub	eax, [ebp+var_10]
sub	ebx, [ebp+var_C]
push	0		; lpRect
push	dword ptr [esi]	; hWnd
sub	ebx, [ebp+var_8]
mov	[ebp+var_10], eax
call	ds:InvalidateRect
push	3EAh		; nIDDlgItem
push	dword ptr [esi]	; hDlg
call	edi ; GetDlgItem
lea	ecx, [ebp+Rect]
push	ecx		; lpRect
push	eax		; hWnd
call	ds:GetWindowRect
lea	eax, [ebp+Rect]
mov	ecx, esi
push	eax
call	sub_421AA9
mov	eax, [ebp+Rect.right]
mov	ecx, [ebp+Rect.top]
sub	eax, [ebp+Rect.left]
push	3EAh		; nIDDlgItem
push	dword ptr [esi]	; hDlg
mov	[ebp+Y], ecx
mov	[ebp+nWidth], eax
mov	eax, [ebp+Rect.bottom]
sub	eax, ecx
mov	[ebp+nHeight], eax
call	edi ; GetDlgItem
mov	ecx, [ebp+arg_4]
push	1		; bRepaint
push	[ebp+nHeight]	; nHeight
sub	ecx, [ebp+nWidth]
push	[ebp+nWidth]	; nWidth
sub	ecx, [ebp+var_8]
push	[ebp+Y]		; Y
push	ecx		; X
push	eax		; hWnd
call	ds:MoveWindow
mov	eax, [ebp+var_8]
lea	eax, [eax+eax*2]
mov	ecx, eax
mov	eax, [ebp+arg_4]
sub	eax, ecx
mov	ecx, esi
sub	eax, [ebp+nWidth]
push	eax		; nWidth
mov	eax, [ebp+var_20]
push	dword ptr [eax+8] ; hWnd
call	sub_4217C9
push	2		; nIDDlgItem
push	dword ptr [esi]	; hDlg
call	edi ; GetDlgItem
push	1		; bRepaint
push	[ebp+var_4]	; nHeight
push	[ebp+var_C]	; nWidth
push	[ebp+var_10]	; Y
push	ebx		; X
push	eax		; hWnd
call	ds:MoveWindow
push	1		; nIDDlgItem
push	dword ptr [esi]	; hDlg
call	edi ; GetDlgItem
sub	ebx, [ebp+var_14]
push	1		; bRepaint
push	[ebp+var_4]	; nHeight
sub	ebx, [ebp+var_8]
push	[ebp+var_14]	; nWidth
push	[ebp+var_10]	; Y
push	ebx		; X
push	eax		; hWnd
call	ds:MoveWindow
pop	edi
pop	esi
xor	al, al
pop	ebx
leave
retn	0Ch
sub_4256B3 endp




sub_42582A proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

cmp	[esp+arg_0], 3EAh
jz	short loc_425843
push	[esp+arg_4]
push	[esp+4+arg_0]
call	sub_42FAE0
jmp	short locret_42584A

loc_425843:
call	sub_42584D
mov	al, 1

locret_42584A:
retn	8
sub_42582A endp



; Attributes: bp-based frame

sub_42584D proc	near

var_30=	dword ptr -30h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
Memory=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_446C2C
call	__EH_prolog
sub	esp, 24h
push	ebx
push	esi
push	edi
mov	esi, ecx
xor	edi, edi
push	3
lea	ecx, [ebp+var_24]
mov	[ebp+var_24], edi
mov	[ebp+var_20], edi
mov	[ebp+var_1C], edi
call	sub_403396
lea	ebx, [esi+8]
lea	eax, [ebp+var_24]
push	eax
mov	ecx, ebx
mov	[ebp+var_4], edi
call	sub_42E799
push	3020209h
mov	edx, 0D2h
lea	ecx, [ebp+var_30]
call	sub_40B168
push	3
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
mov	[ebp+Memory], edi
mov	[ebp+var_14], edi
mov	[ebp+var_10], edi
call	sub_403396
mov	eax, esi
add	esi, 4
neg	eax
sbb	eax, eax
mov	edx, [ebp+var_30]
and	eax, esi
mov	byte ptr [ebp+var_4], 2
mov	ecx, [eax]
lea	eax, [ebp+Memory]
push	eax
push	[ebp+var_24]
call	sub_42E0C7
test	al, al
jz	short loc_4258F4
lea	ecx, [ebp+Memory]
call	sub_42C33B
push	edi		; lParam
push	0FFFFFFFFh	; wParam
push	14Eh		; Msg
push	dword ptr [ebx]	; hWnd
call	ds:SendMessageA
mov	edx, [ebp+Memory]
mov	ecx, [ebx]
call	sub_42E6BD

loc_4258F4:		; Memory
push	[ebp+Memory]
call	sub_4284D8
push	[ebp+var_30]	; Memory
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
mov	ecx, [ebp+var_C]
add	esp, 0Ch
mov	large fs:0, ecx
pop	edi
pop	esi
pop	ebx
leave
retn
sub_42584D endp



; Attributes: bp-based frame

sub_42591E proc	near

var_24=	dword ptr -24h
Memory=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_446C40
call	__EH_prolog
sub	esp, 18h
push	esi
mov	esi, ecx
push	edi
lea	eax, [esi+1Ch]
lea	ecx, [esi+8]
push	eax
call	sub_42E799
xor	edi, edi
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], edi
mov	[ebp+var_14], edi
mov	[ebp+var_10], edi
call	sub_403396
lea	eax, [ebp+Memory]
lea	ecx, [esi+0Ch]
push	eax
mov	[ebp+var_4], edi
call	sub_42E799
lea	ecx, [ebp+Memory]
call	sub_406F3F
lea	ecx, [ebp+Memory]
call	sub_406F04
lea	edx, [esi+28h]
lea	ecx, [ebp+Memory]
call	sub_41F4FC
test	al, al
jz	short loc_425998
cmp	[esi+30h], edi
jz	short loc_425998
push	1		; nResult
push	dword ptr [esi+4] ; hDlg
call	ds:EndDialog
push	[ebp+Memory]	; Memory
call	sub_4284D8
jmp	short loc_4259D4

loc_425998:
push	2000D41h
push	5Fh
pop	edx
lea	ecx, [ebp+var_24]
call	sub_40B168
push	edi		; uType
push	offset a7Zip	; "7-Zip"
push	dword ptr [eax]	; lpText
mov	eax, esi
add	esi, 4
neg	eax
sbb	eax, eax
and	eax, esi
push	dword ptr [eax]	; hWnd
call	ds:MessageBoxW
push	[ebp+var_24]	; Memory
call	sub_4284D8
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_4259D4:
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_42591E endp



; Attributes: bp-based frame

sub_4259E3 proc	near

var_78=	dword ptr -78h
lParam=	dword ptr -68h
var_5C=	dword ptr -5Ch
var_58=	dword ptr -58h
var_40=	dword ptr -40h
var_34=	dword ptr -34h
Memory=	dword ptr -28h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	byte ptr -1Ch
wParam=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_446C6C
call	__EH_prolog
sub	esp, 5Ch
push	ebx
push	esi
mov	esi, ecx
push	edi
mov	eax, esi
push	2
neg	eax
lea	ebx, [esi+4]
mov	byte ptr [esi+8], 1
sbb	eax, eax
mov	edx, offset unk_45C538
and	eax, ebx
mov	ecx, [eax]
call	sub_40B00D
push	3FDh		; nIDDlgItem
push	dword ptr [ebx]	; hDlg
call	ds:GetDlgItem
push	3FEh		; nIDDlgItem
lea	edi, [esi+34h]
push	dword ptr [ebx]	; hDlg
mov	[edi], eax
call	ds:GetDlgItem
mov	ebx, ds:SendMessageA
push	24h		; lParam
push	24h		; wParam
push	1036h		; Msg
push	dword ptr [edi]	; hWnd
mov	[esi+38h], eax
call	ebx ; SendMessageA
push	24h		; lParam
push	24h		; wParam
push	1036h		; Msg
push	dword ptr [esi+38h] ; hWnd
call	ebx ; SendMessageA
push	2000205h
push	5
pop	edx
lea	ecx, [ebp+Memory]
call	sub_40B168
mov	eax, [eax]
and	[ebp+var_4], 0
push	28h		; int
push	eax		; int
push	0		; wParam
mov	ecx, edi
call	sub_42FE38
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
mov	edx, 3DEh
lea	ecx, [ebp+var_34]
mov	[esp+78h+var_78], 3010310h
call	sub_40B168
push	1
mov	ecx, edi
pop	eax
push	28h		; int
mov	[ebp+var_4], eax
push	[ebp+var_34]	; int
push	eax		; wParam
call	sub_42FE38
push	28h		; int
lea	ecx, [esi+38h]
push	[ebp+var_34]	; int
push	0		; wParam
call	sub_42FE38
lea	ecx, [esi+0Ch]
call	sub_40533F
mov	eax, [esi+14h]
and	[ebp+var_14], 0
test	eax, eax
jle	loc_425BA2

loc_425AD0:
mov	eax, [esi+18h]
mov	ecx, [ebp+var_14]
mov	eax, [eax+ecx*4]
mov	[ebp+var_10], eax
push	dword ptr [eax]
push	ecx
mov	ecx, edi
call	sub_42FE6D
mov	[ebp+wParam], eax
xor	eax, eax
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], eax
mov	[ebp+var_24], eax
mov	[ebp+var_20], eax
call	sub_403396
mov	edx, [ebp+var_10]
lea	ecx, [ebp+var_40]
mov	byte ptr [ebp+var_4], 2
call	sub_43A785
lea	ecx, [ebp+var_1C]
lea	edx, [ebp+Memory]
push	ecx
mov	ecx, eax
mov	byte ptr [ebp+var_4], 3
call	sub_41D8C5
mov	ecx, [ebp+var_10]
push	[ebp+var_40]	; Memory
mov	byte ptr [ebp+var_4], 2
mov	[ecx+0Ch], al
call	sub_4284D8
mov	eax, [ebp+var_10]
pop	ecx
cmp	byte ptr [eax+0Ch], 0
jz	short loc_425B4E
mov	ecx, [ebp+Memory]
call	sub_42B5DF
test	al, al
jnz	short loc_425B4E
mov	eax, [ebp+var_10]
and	byte ptr [eax+0Ch], 0

loc_425B4E:
mov	eax, [ebp+var_10]
xor	ecx, ecx
mov	[ebp+var_58], 0F000h
mov	al, [eax+0Ch]
test	al, al
lea	eax, [ebp+lParam]
push	eax		; lParam
push	[ebp+wParam]	; wParam
setnz	cl
inc	ecx
push	102Bh		; Msg
push	dword ptr [edi]	; hWnd
shl	ecx, 0Ch
mov	[ebp+var_5C], ecx
call	ebx ; SendMessageA
push	[ebp+var_14]
mov	ecx, esi
push	[ebp+wParam]
call	sub_425BF2
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
inc	[ebp+var_14]
pop	ecx
mov	eax, [ebp+var_14]
cmp	eax, [esi+14h]
jl	loc_425AD0

loc_425BA2:		; lParam
push	0
push	0		; wParam
push	1004h		; Msg
push	dword ptr [edi]	; hWnd
call	ebx ; SendMessageA
test	eax, eax
jle	short loc_425BCB
push	3
pop	eax
mov	[ebp+var_58], eax
mov	[ebp+var_5C], eax
lea	eax, [ebp+lParam]
push	eax		; lParam
push	0		; wParam
push	102Bh		; Msg
push	dword ptr [edi]	; hWnd
call	ebx ; SendMessageA

loc_425BCB:		; wParam
push	0FFFFFFFFh
mov	ecx, esi
call	sub_426466
push	[ebp+var_34]	; Memory
and	byte ptr [esi+8], 0
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
mov	al, 1
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_4259E3 endp



; Attributes: bp-based frame

sub_425BF2 proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_446C80
call	__EH_prolog
sub	esp, 0Ch
push	esi
mov	esi, ecx
push	[ebp+arg_4]
lea	eax, [ebp+Memory]
lea	ecx, [esi+0Ch]
push	eax
call	sub_425C3C
push	dword ptr [eax]
and	[ebp+var_4], 0
lea	ecx, [esi+34h]
push	1
push	[ebp+arg_0]
call	sub_42FEA4
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
pop	esi
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn	8
sub_425BF2 endp



; Attributes: bp-based frame

sub_425C3C proc	near

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

push	ebp
mov	ebp, esp
push	ecx
mov	eax, [ecx+0Ch]
push	esi
mov	esi, [ebp+arg_4]
xor	edx, edx
mov	[ebp+var_4], edx
mov	eax, [eax+esi*4]
cmp	[eax+18h], edx
jnz	short loc_425C6C
mov	esi, [ebp+arg_0]
push	3
mov	ecx, esi
mov	[esi], edx
mov	[esi+4], edx
mov	[esi+8], edx
call	sub_403396
mov	eax, esi
jmp	short loc_425C86

loc_425C6C:
mov	eax, [eax+1Ch]
mov	ecx, [ecx+20h]
mov	eax, [eax]
mov	eax, [ecx+eax*4]
mov	ecx, [ebp+arg_0]
add	eax, 10h
push	eax
call	sub_4030F2
mov	eax, [ebp+arg_0]

loc_425C86:
pop	esi
leave
retn	8
sub_425C3C endp



; Attributes: bp-based frame

sub_425C8B proc	near

var_74=	dword ptr -74h
var_68=	dword ptr -68h
var_5C=	dword ptr -5Ch
var_50=	dword ptr -50h
Memory=	dword ptr -44h
var_38=	dword ptr -38h
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=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_446CCC
call	__EH_prolog
sub	esp, 68h
push	ebx
push	edi
mov	edi, ecx
call	sub_42634D
lea	ecx, [edi+0Ch]
call	nullsub_2
lea	ecx, [ebp+var_74]
call	sub_425E0B
mov	eax, [edi+14h]
xor	ebx, ebx
cmp	eax, ebx
mov	[ebp+var_4], ebx
mov	[ebp+var_10], ebx
jle	loc_425DE0
push	esi

loc_425CC5:
mov	eax, [edi+18h]
mov	ecx, [ebp+var_10]
mov	esi, [eax+ecx*4]
cmp	[esi+0Ch], bl
jz	loc_425DAF
push	offset off_45C578
lea	ecx, [ebp+Memory]
call	sub_403091
push	eax
mov	edx, esi
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 1
call	sub_40356A
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx
lea	ecx, [ebp+var_2C]
call	sub_425E0B
push	3
lea	ecx, [ebp+var_20]
mov	byte ptr [ebp+var_4], 4
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
call	sub_403396
or	[ebp+var_14], 0FFFFFFFFh
cmp	[esi+18h], ebx
mov	byte ptr [ebp+var_4], 5
jz	short loc_425D62
mov	eax, [esi+1Ch]
mov	ecx, [edi+2Ch]
mov	eax, [eax]
mov	edx, [ecx+eax*4]
lea	eax, [ebp+var_14]
push	eax
push	esi
lea	eax, [edx+1Ch]
lea	ecx, [ebp+var_50]
push	eax
call	sub_425E9A
push	eax
lea	ecx, [ebp+var_20]
mov	byte ptr [ebp+var_4], 6
call	sub_40312C
push	[ebp+var_50]	; Memory
mov	byte ptr [ebp+var_4], 5
call	sub_4284D8
pop	ecx

loc_425D62:
mov	edx, esi
lea	ecx, [ebp+var_5C]
call	sub_43A785
push	ebx		; cbData
push	ebx		; int
push	[ebp+var_14]	; int
lea	ecx, [ebp+var_20]
lea	edx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 7
push	ecx		; int
lea	ecx, [ebp+var_2C]
push	ecx		; int
mov	ecx, eax
call	sub_41DE0E
push	[ebp+var_5C]	; Memory
call	sub_4284D8
push	[ebp+var_20]	; Memory
call	sub_4284D8
push	[ebp+var_2C]	; Memory
call	sub_4284D8
push	[ebp+var_38]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
add	esp, 10h
jmp	short loc_425DD0

loc_425DAF:
mov	edx, esi
lea	ecx, [ebp+var_68]
call	sub_43A785
mov	ecx, eax
mov	byte ptr [ebp+var_4], 8
call	sub_41DC45
push	[ebp+var_68]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx

loc_425DD0:
inc	[ebp+var_10]
mov	eax, [ebp+var_10]
cmp	eax, [edi+14h]
jl	loc_425CC5
pop	esi

loc_425DE0:		; dwItem2
push	ebx
push	ebx		; dwItem1
push	ebx		; uFlags
push	8000000h	; wEventId
call	ds:SHChangeNotify
push	[ebp+var_74]	; Memory
mov	byte ptr [edi+3Ch], 1
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
xor	eax, eax
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_425C8B endp



; Attributes: bp-based frame

sub_425E0B proc	near

var_28=	dword ptr -28h
Memory=	dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_446CE8
call	__EH_prolog
sub	esp, 1Ch
push	esi
push	edi
mov	edi, ecx
xor	esi, esi
push	offset asc_45C5AC ; "\""
lea	ecx, [ebp+var_28]
mov	[ebp+var_10], esi
call	sub_403091
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], esi
mov	[ebp+Memory], esi
mov	[ebp+var_18], esi
mov	[ebp+var_14], esi
call	sub_403396
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_41D79C
test	al, al
jz	short loc_425E60
lea	eax, [ebp+Memory]
lea	ecx, [ebp+var_28]
push	eax
call	sub_4031F2

loc_425E60:		; "7zFM.exe\" \"%1\""
push	offset a7zfm_exe1
lea	ecx, [ebp+var_28]
call	sub_403195
lea	eax, [ebp+var_28]
mov	ecx, edi
push	eax
call	sub_4030F2
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_28]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, edi
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_425E0B endp



; Attributes: bp-based frame

sub_425E9A proc	near

var_4C=	dword ptr -4Ch
var_44=	dword ptr -44h
var_40=	dword ptr -40h
Memory=	dword ptr -38h
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
bstrString= dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_446D53
call	__EH_prolog
sub	esp, 40h
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
push	edi
mov	[ebp+var_28], esi
mov	[ebp+var_20], ebx
mov	[ebp+var_14], ebx
push	1
mov	[ebp+var_10], ebx
pop	edi
mov	[ebp+var_4], edi
mov	[ebp+var_2C], ebx
cmp	[edx+4], ebx
mov	byte ptr [ebp+var_4], 3
jnz	short loc_425F2E
push	10h		; Size
call	sub_4284B1
cmp	eax, ebx
pop	ecx
jz	short loc_425EE9
mov	[eax+4], ebx
mov	[eax+8], ebx
mov	[eax+0Ch], ebx
mov	dword ptr [eax], offset	off_44B914
jmp	short loc_425EEB

loc_425EE9:
xor	eax, eax

loc_425EEB:
push	eax
lea	ecx, [ebp+var_10]
call	sub_43D0DB

loc_425EF4:
mov	[ebp+bstrString], ebx
mov	eax, [ebp+var_10]
lea	edx, [ebp+bstrString]
push	edx
push	eax
mov	ecx, [eax]
mov	byte ptr [ebp+var_4], 4
call	dword ptr [ecx+10h]
test	eax, eax
jz	short loc_425F70
push	3
mov	ecx, esi
mov	[esi], ebx
mov	[esi+4], ebx
mov	[esi+8], ebx
call	sub_403396
mov	[ebp+var_20], edi
push	[ebp+bstrString] ; bstrString
call	ds:SysFreeString
jmp	loc_42604E

loc_425F2E:		; lpLibFileName
push	dword ptr [edx]
lea	ecx, [ebp+var_14]
call	sub_429A47
test	al, al
jnz	short loc_425F44
call	ds:GetLastError
jmp	short loc_425F53

loc_425F44:
lea	eax, [ebp+var_10]
lea	ecx, [ebp+var_14]
push	eax
push	[ebp+arg_0]
call	sub_4050C9

loc_425F53:
cmp	eax, ebx
jz	short loc_425EF4
push	3
mov	ecx, esi
mov	[esi], ebx
mov	[esi+4], ebx
mov	[esi+8], ebx
call	sub_403396
mov	[ebp+var_20], edi
jmp	loc_42604E

loc_425F70:
push	[ebp+bstrString]
lea	ecx, [ebp+Memory]
call	sub_403091
lea	ecx, [ebp+var_4C]
mov	byte ptr [ebp+var_4], 5
call	sub_40337B
mov	[ebp+var_4C], offset off_44B510
lea	edx, [ebp+var_4C]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 6
call	sub_41F8A7
cmp	[ebp+var_44], ebx
mov	edi, ds:SysFreeString
mov	[ebp+var_1C], ebx
jle	short loc_426009

loc_425FAB:
mov	eax, [ebp+var_40]
mov	ecx, [ebp+var_1C]
mov	eax, [eax+ecx*4]
mov	[ebp+var_24], eax
mov	edx, [eax]
mov	eax, [ebp+arg_4]
mov	ecx, [eax]
call	sub_4282B1
cmp	eax, ebx
jnz	short loc_425FFE
mov	[ebp+arg_0], ebx
mov	eax, [ebp+var_24]
push	[ebp+arg_8]
mov	ecx, [ebp+var_10]
lea	edx, [ebp+arg_0]
mov	eax, [eax]
push	edx
mov	ecx, [ecx]
push	eax
push	[ebp+var_10]
mov	byte ptr [ebp+var_4], 7
call	dword ptr [ecx+14h]
test	eax, eax
jnz	loc_42607D
cmp	[ebp+arg_0], ebx
jnz	loc_426088
push	ebx		; bstrString
mov	byte ptr [ebp+var_4], 6
call	edi ; SysFreeString

loc_425FFE:
inc	[ebp+var_1C]
mov	eax, [ebp+var_1C]
cmp	eax, [ebp+var_44]
jl	short loc_425FAB

loc_426009:
push	3
mov	ecx, esi
mov	[esi], ebx
mov	[esi+4], ebx
mov	[esi+8], ebx
call	sub_403396
mov	[ebp+var_20], 1
mov	[ebp+var_4C], offset off_44B510
mov	byte ptr [ebp+var_4], 9

loc_42602C:
lea	ecx, [ebp+var_4C]
call	sub_428327
lea	ecx, [ebp+var_4C]
mov	byte ptr [ebp+var_4], 5
call	sub_4282FE
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
push	[ebp+bstrString] ; bstrString
call	edi ; SysFreeString

loc_42604E:
mov	eax, [ebp+var_10]
mov	byte ptr [ebp+var_4], 1
cmp	eax, ebx
jz	short loc_42605F
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_42605F:
lea	ecx, [ebp+var_14]
mov	byte ptr [ebp+var_4], bl
call	sub_429929
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch

loc_42607D:		; bstrString
push	[ebp+arg_0]
mov	byte ptr [ebp+var_4], 6
call	edi ; SysFreeString
jmp	short loc_426009

loc_426088:
push	[ebp+arg_0]
mov	ecx, esi
call	sub_403091
mov	[ebp+var_20], 1
push	[ebp+arg_0]	; bstrString
call	edi ; SysFreeString
mov	[ebp+var_4C], offset off_44B510
mov	byte ptr [ebp+var_4], 8
jmp	short loc_42602C
sub_425E9A endp




sub_4260AB proc	near
mov	edx, off_45C548
xor	ecx, ecx
jmp	sub_40AD1B
sub_4260AB endp



; Attributes: bp-based frame

sub_4260B8 proc	near

lParam=	dword ptr -2Ch
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_4= dword ptr -4

push	ebp
mov	ebp, esp
sub	esp, 2Ch
push	ebx
push	esi
mov	esi, ds:SendMessageA
xor	ebx, ebx
push	edi
push	ebx		; lParam
mov	edi, ecx
push	ebx		; wParam
push	1004h		; Msg
push	dword ptr [edi+34h] ; hWnd
call	esi ; SendMessageA
cmp	eax, ebx
mov	[ebp+var_4], eax
jle	short loc_426101

loc_4260DE:
lea	eax, [ebp+lParam]
mov	[ebp+var_1C], 0F000h
push	eax		; lParam
push	ebx		; wParam
push	102Bh		; Msg
mov	[ebp+var_20], 2000h
push	dword ptr [edi+34h] ; hWnd
call	esi ; SendMessageA
inc	ebx
cmp	ebx, [ebp+var_4]
jl	short loc_4260DE

loc_426101:
mov	ecx, edi
call	sub_42634D
pop	edi
pop	esi
pop	ebx
leave
retn
sub_4260B8 endp




sub_42610D proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

cmp	[esp+arg_0], 3FFh
push	esi
mov	esi, ecx
jz	short loc_426129
push	[esp+4+arg_4]
push	[esp+8+arg_0]
call	sub_42FAE0
jmp	short loc_426139

loc_426129:
mov	ecx, esi
call	sub_4260B8
mov	ecx, esi
call	sub_407229
mov	al, 1

loc_426139:
pop	esi
retn	8
sub_42610D endp




sub_42613D proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	ebx
mov	ebx, [esp+4+arg_4]
push	esi
mov	esi, ecx
mov	eax, [ebx]
cmp	eax, [esi+34h]
jnz	short loc_4261AD
mov	eax, [ebx+8]
cmp	eax, 0FFFFFF65h
jz	short loc_426185
cmp	eax, 0FFFFFF91h
jz	short loc_426185
cmp	eax, 0FFFFFF9Bh
jz	short loc_426178
cmp	eax, 0FFFFFFFBh
jz	short loc_426185
cmp	eax, 0FFFFFFFCh
jbe	loc_4261FB
cmp	eax, 0FFFFFFFEh
jbe	short loc_426185
jmp	loc_4261FB

loc_426178:
mov	eax, [esi]
push	ebx
mov	ecx, esi
call	dword ptr [eax+58h]
jmp	loc_426207

loc_426185:
mov	ebx, ds:PostMessageA
push	0		; lParam
push	0		; wParam
push	401h		; Msg
push	dword ptr [esi+4] ; hWnd
call	ebx ; PostMessageA
push	0		; lParam
push	0		; wParam
push	402h		; Msg
push	dword ptr [esi+4] ; hWnd
call	ebx ; PostMessageA
mov	ebx, [esp+8+arg_4]
jmp	short loc_4261FB

loc_4261AD:
cmp	eax, [esi+38h]
jnz	short loc_4261FB
mov	eax, [ebx+8]
cmp	eax, 0FFFFFF65h
jz	short loc_4261E1
cmp	eax, 0FFFFFF91h
jz	short loc_4261E9
cmp	eax, 0FFFFFF9Bh
jz	short loc_4261D7
cmp	eax, 0FFFFFFFBh
jz	short loc_4261E9
cmp	eax, 0FFFFFFFCh
jbe	short loc_4261FB
cmp	eax, 0FFFFFFFEh
jbe	short loc_4261E9
jmp	short loc_4261FB

loc_4261D7:
mov	eax, [esi]
push	ebx
mov	ecx, esi
call	dword ptr [eax+58h]
jmp	short loc_4261E9

loc_4261E1:
push	ebx
mov	ecx, esi
call	sub_42620C

loc_4261E9:		; lParam
push	0
push	0		; wParam
push	402h		; Msg
push	dword ptr [esi+4] ; hWnd
call	ds:PostMessageA

loc_4261FB:
push	ebx
mov	ecx, esi
push	[esp+0Ch+arg_0]
call	sub_42FF89

loc_426207:
pop	esi
pop	ebx
retn	8
sub_42613D endp




sub_42620C proc	near

arg_0= dword ptr  4

push	esi
mov	esi, ecx
push	12h		; nVirtKey
call	ds:GetKeyState
mov	ecx, [esp+4+arg_0]
shr	eax, 0Fh
movzx	ecx, word ptr [ecx+0Ch]
and	al, 1
sub	ecx, 26h
jz	short loc_426239
dec	ecx
dec	ecx
jz	short loc_426231
xor	al, al
jmp	short loc_426248

loc_426231:
test	al, al
jz	short loc_426246
push	0
jmp	short loc_42623F

loc_426239:
test	al, al
jz	short loc_426246
push	1

loc_42623F:
mov	ecx, esi
call	sub_42624C

loc_426246:
mov	al, 1

loc_426248:
pop	esi
retn	4
sub_42620C endp




sub_42624C proc	near

wParam=	dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  4

sub	esp, 0Ch
push	ebx
push	ebp
push	esi
push	edi
mov	edi, ds:SendMessageA
push	0		; lParam
mov	esi, ecx
push	0		; wParam
push	1042h		; Msg
push	dword ptr [esi+38h] ; hWnd
call	edi ; SendMessageA
mov	ebp, eax
test	ebp, ebp
jl	loc_42630F
mov	bl, byte ptr [esp+1Ch+arg_0]
neg	bl
sbb	ebx, ebx
and	ebx, 0FFFFFFFEh
inc	ebx
add	ebx, ebp
mov	[esp+1Ch+wParam], ebx
js	loc_42630F
push	0		; lParam
push	0		; wParam
push	1004h		; Msg
push	dword ptr [esi+38h] ; hWnd
call	edi ; SendMessageA
cmp	ebx, eax
jge	short loc_42630F
mov	ecx, esi
call	sub_42642E
test	eax, eax
mov	[esp+1Ch+arg_0], eax
jl	short loc_42630F
mov	ecx, [esi+18h]
push	0		; lParam
push	0		; wParam
push	1042h		; Msg
mov	edi, [ecx+eax*4]
mov	edx, [edi+1Ch]
mov	eax, [edx+ebx*8+4]
lea	ecx, [edx+ebx*8]
mov	[esp+28h+var_4], eax
mov	eax, ebp
mov	ebx, [ecx]
shl	eax, 3
mov	ebp, [eax+edx]
mov	[ecx], ebp
mov	edx, [eax+edx+4]
mov	[ecx+4], edx
add	eax, [edi+1Ch]
mov	ecx, [esp+28h+var_4]
mov	[eax], ebx
mov	[eax+4], ecx
push	dword ptr [esi+34h] ; hWnd
call	ds:SendMessageA
push	[esp+1Ch+arg_0]
mov	ecx, esi
push	eax
call	sub_425BF2
push	[esp+1Ch+wParam] ; wParam
mov	ecx, esi
call	sub_426466
mov	ecx, esi
call	sub_407229

loc_42630F:
pop	edi
pop	esi
pop	ebp
pop	ebx
add	esp, 0Ch
retn	4
sub_42624C endp




sub_426319 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8
arg_8= dword ptr  0Ch

mov	eax, [esp+arg_0]
sub	eax, 401h
jz	short loc_426341
dec	eax
jz	short loc_42633A
push	[esp+arg_8]
push	[esp+4+arg_4]
push	[esp+8+arg_0]
call	sub_42FA35
jmp	short locret_42634A

loc_42633A:
call	sub_42634D
jmp	short loc_426348

loc_426341:		; wParam
push	0FFFFFFFFh
call	sub_426466

loc_426348:
mov	al, 1

locret_42634A:
retn	0Ch
sub_426319 endp




sub_42634D proc	near

wParam=	dword ptr -0Ch
var_8= dword ptr -8
var_4= dword ptr -4

sub	esp, 0Ch
push	ebx
push	ebp
push	esi
mov	esi, ecx
xor	eax, eax
push	edi
mov	edi, ds:SendMessageA
push	eax		; lParam
mov	ebp, 1004h
lea	ebx, [esi+34h]
push	eax		; wParam
push	ebp		; Msg
push	dword ptr [ebx]	; hWnd
mov	[esp+2Ch+wParam], eax
call	edi ; SendMessageA
test	eax, eax
jle	short loc_4263CE

loc_426375:
lea	eax, [esp+1Ch+var_8]
mov	ecx, ebx
push	eax
push	[esp+20h+wParam]
call	sub_42FDFD
test	al, al
jz	loc_426426
mov	eax, [esi+18h]
mov	ecx, [esp+1Ch+var_8]
push	0F000h		; lParam
push	[esp+20h+wParam] ; wParam
mov	eax, [eax+ecx*4]
mov	[esp+24h+var_4], eax
push	102Ch		; Msg
push	dword ptr [ebx]	; hWnd
call	edi ; SendMessageA
mov	ecx, [esp+1Ch+var_4]
push	0		; lParam
shr	eax, 0Ch
dec	eax
push	0		; wParam
setnz	al
inc	[esp+24h+wParam]
push	ebp		; Msg
mov	[ecx+0Ch], al
push	dword ptr [ebx]	; hWnd
call	edi ; SendMessageA
cmp	[esp+1Ch+wParam], eax
jl	short loc_426375

loc_4263CE:
mov	ecx, esi
call	sub_42642E
xor	ebx, ebx
cmp	eax, ebx
jl	short loc_426426
mov	ecx, [esi+18h]
push	ebx		; lParam
push	ebx		; wParam
push	ebp		; Msg
mov	eax, [ecx+eax*4]
push	dword ptr [esi+38h] ; hWnd
mov	[esp+2Ch+var_4], eax
call	edi ; SendMessageA
test	eax, eax
jle	short loc_426426

loc_4263F1:		; lParam
push	0F000h
push	ebx		; wParam
push	102Ch		; Msg
push	dword ptr [esi+38h] ; hWnd
call	edi ; SendMessageA
mov	ecx, [esp+1Ch+var_4]
push	0		; lParam
shr	eax, 0Ch
mov	ecx, [ecx+1Ch]
dec	eax
mov	[esp+20h+var_8], eax
push	0		; wParam
setnz	al
push	ebp		; Msg
mov	[ecx+ebx*8+4], al
push	dword ptr [esi+38h] ; hWnd
inc	ebx
call	edi ; SendMessageA
cmp	ebx, eax
jl	short loc_4263F1

loc_426426:
pop	edi
pop	esi
pop	ebp
pop	ebx
add	esp, 0Ch
retn
sub_42634D endp



; Attributes: bp-based frame

sub_42642E proc	near

var_4= dword ptr -4

push	ebp
mov	ebp, esp
push	ecx
push	esi
push	0		; lParam
lea	esi, [ecx+34h]
push	0		; wParam
push	1042h		; Msg
push	dword ptr [esi]	; hWnd
call	ds:SendMessageA
test	eax, eax
jl	short loc_42645B
lea	ecx, [ebp+var_4]
push	ecx
push	eax
mov	ecx, esi
call	sub_42FDFD
test	al, al
jnz	short loc_426460

loc_42645B:
or	eax, 0FFFFFFFFh
jmp	short loc_426463

loc_426460:
mov	eax, [ebp+var_4]

loc_426463:
pop	esi
leave
retn
sub_42642E endp



; Attributes: bp-based frame

; int __stdcall	sub_426466(WPARAM wParam)
sub_426466 proc	near

lParam=	dword ptr -30h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
var_4= dword ptr -4
wParam=	dword ptr  8

push	ebp
mov	ebp, esp
sub	esp, 30h
push	ebx
push	esi
xor	esi, esi
mov	ebx, ecx
push	esi		; lParam
push	esi		; wParam
push	1009h		; Msg
push	dword ptr [ebx+38h] ; hWnd
call	ds:SendMessageA
mov	ecx, ebx
call	sub_42642E
cmp	eax, esi
jl	loc_426530
mov	ecx, [ebx+18h]
push	edi
mov	edi, [ecx+eax*4]
mov	byte ptr [ebx+8], 1
cmp	[edi+18h], esi
jle	short loc_4264EF

loc_4264A1:
mov	ecx, [edi+1Ch]
mov	eax, [ecx+esi*8]
mov	ecx, [ecx+esi*8+4]
mov	[ebp+var_4], ecx
mov	ecx, [ebx+2Ch]
mov	eax, [ecx+eax*4]
lea	ecx, [ebx+38h]
push	dword ptr [eax+10h]
push	esi
call	sub_42FE6D
xor	ecx, ecx
mov	[ebp+var_20], 0F000h
cmp	byte ptr [ebp+var_4], cl
setnz	cl
inc	ecx
shl	ecx, 0Ch
mov	[ebp+var_24], ecx
lea	ecx, [ebp+lParam]
push	ecx		; lParam
push	eax		; wParam
push	102Bh		; Msg
push	dword ptr [ebx+38h] ; hWnd
call	ds:SendMessageA
inc	esi
cmp	esi, [edi+18h]
jl	short loc_4264A1

loc_4264EF:
mov	esi, ds:SendMessageA
push	0		; lParam
push	0		; wParam
push	1004h		; Msg
push	dword ptr [ebx+38h] ; hWnd
call	esi ; SendMessageA
test	eax, eax
pop	edi
jle	short loc_42652C
cmp	[ebp+wParam], 0
jge	short loc_426512
and	[ebp+wParam], 0

loc_426512:
push	3
pop	eax
mov	[ebp+var_20], eax
mov	[ebp+var_24], eax
lea	eax, [ebp+lParam]
push	eax		; lParam
push	[ebp+wParam]	; wParam
push	102Bh		; Msg
push	dword ptr [ebx+38h] ; hWnd
call	esi ; SendMessageA

loc_42652C:
and	byte ptr [ebx+8], 0

loc_426530:
pop	esi
pop	ebx
leave
retn	4
sub_426466 endp



; Attributes: bp-based frame

sub_426536 proc	near

var_4= dword ptr -4
arg_0= dword ptr  8

push	ebp
mov	ebp, esp
push	ecx
mov	edx, psz
and	[ebp+var_4], 0
push	ecx
mov	ecx, [ebp+arg_0]
call	sub_422192
mov	eax, [ebp+arg_0]
leave
retn	4
sub_426536 endp



; Attributes: bp-based frame

sub_426554 proc	near

Memory=	dword ptr -0A8h
var_9C=	byte ptr -9Ch
var_90=	byte ptr -90h
var_8C=	dword ptr -8Ch
var_84=	byte ptr -84h
var_7C=	dword ptr -7Ch
var_78=	dword ptr -78h
var_74=	dword ptr -74h
var_70=	dword ptr -70h
var_6C=	dword ptr -6Ch
var_68=	dword ptr -68h
var_64=	byte ptr -64h
var_58=	byte ptr -58h
var_4C=	dword ptr -4Ch
FileSystemFlags= dword ptr -44h
VolumeSerialNumber= dword ptr -40h
MaximumComponentLength=	dword ptr -3Ch
var_38=	dword ptr -38h
var_30=	dword ptr -30h
var_2C=	dword ptr -2Ch
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_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_446D96
call	__EH_prolog
sub	esp, 9Ch
mov	eax, [ebp+arg_0]
push	ebx
push	edi
lea	ecx, [eax+10h]
mov	[ebp+arg_0], ecx
call	sub_428327
lea	ecx, [ebp+var_38]
call	sub_40337B
mov	[ebp+var_38], offset off_44B510
xor	ebx, ebx
lea	ecx, [ebp+var_38]
mov	[ebp+var_4], ebx
call	sub_42B98A
xor	edi, edi
cmp	[ebp+var_30], ebx
jle	loc_4266DF
push	esi

loc_42659C:
lea	ecx, [ebp+var_9C]
call	sub_426764
mov	eax, [ebp+var_2C]
lea	ecx, [ebp+var_90]
mov	byte ptr [ebp+var_4], 1
mov	esi, [eax+edi*4]
push	esi
call	sub_40312C
mov	eax, [ebp+var_8C]
lea	ecx, [ebp+var_90]
dec	eax
push	eax
lea	eax, [ebp+Memory]
push	eax
call	sub_403228
push	eax
lea	ecx, [ebp+var_9C]
mov	byte ptr [ebp+var_4], 2
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
pop	ecx
mov	[ebp+var_6C], ebx
mov	[ebp+var_68], ebx
mov	[ebp+var_7C], ebx
mov	[ebp+var_78], ebx
mov	[ebp+var_74], ebx
mov	[ebp+var_70], ebx
mov	ecx, [esi]
call	sub_426713
cmp	eax, 5
mov	[ebp+var_4C], eax
jz	short loc_42661D
cmp	eax, 2
jnz	short loc_426628

loc_42661D:
mov	[ebp+var_84], bl
jmp	loc_4266B7

loc_426628:
push	3
lea	ecx, [ebp+var_24]
mov	[ebp+var_24], ebx
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
call	sub_403396
push	3
lea	ecx, [ebp+var_18]
mov	byte ptr [ebp+var_4], 3
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_403396
lea	eax, [ebp+var_18]
mov	ecx, [esi]
push	eax		; int
lea	eax, [ebp+FileSystemFlags]
push	eax		; lpFileSystemFlags
lea	eax, [ebp+MaximumComponentLength]
push	eax		; lpMaximumComponentLength
lea	eax, [ebp+VolumeSerialNumber]
push	eax		; lpVolumeSerialNumber
lea	edx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 4
call	sub_42E8E7
lea	eax, [ebp+var_24]
lea	ecx, [ebp+var_64]
push	eax
call	sub_40312C
lea	eax, [ebp+var_18]
lea	ecx, [ebp+var_58]
push	eax
call	sub_40312C
mov	ecx, [esi]
lea	eax, [ebp+var_74]
push	eax
lea	eax, [ebp+var_7C]
push	eax
lea	edx, [ebp+var_6C]
call	sub_42EB3B
push	[ebp+var_18]	; Memory
mov	[ebp+var_84], 1
call	sub_4284D8
push	[ebp+var_24]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
pop	ecx
pop	ecx

loc_4266B7:
mov	ecx, [ebp+arg_0]
lea	eax, [ebp+var_9C]
push	eax
call	sub_427186
lea	ecx, [ebp+var_9C]
mov	byte ptr [ebp+var_4], bl
call	sub_409887
inc	edi
cmp	edi, [ebp+var_30]
jl	loc_42659C
pop	esi

loc_4266DF:
mov	[ebp+var_38], offset off_44B510
lea	ecx, [ebp+var_38]
mov	[ebp+var_4], 5
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_38]
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	edi
xor	eax, eax
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_426554 endp



; Attributes: bp-based frame

sub_426713 proc	near

Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_446DA8
call	__EH_prolog
sub	esp, 18h
push	esi
push	ecx
lea	ecx, [ebp+var_18]
call	sub_403091
and	[ebp+var_4], 0
lea	edx, [ebp+var_18]
lea	ecx, [ebp+Memory]
call	sub_43A785
push	dword ptr [eax]	; lpRootPathName
call	ds:GetDriveTypeA
mov	esi, eax
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_18]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
pop	ecx
pop	esi
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn
sub_426713 endp



; Attributes: bp-based frame

sub_426764 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_446DD2
call	__EH_prolog
push	ecx
push	esi
push	edi
mov	esi, ecx
xor	edi, edi
push	3
mov	[ebp+var_10], esi
mov	[esi], edi
mov	[esi+4], edi
mov	[esi+8], edi
call	sub_403396
lea	ecx, [esi+0Ch]
push	3
mov	[ebp+var_4], edi
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
lea	ecx, [esi+38h]
push	3
mov	byte ptr [ebp+var_4], 1
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
lea	ecx, [esi+44h]
push	3
mov	byte ptr [ebp+var_4], 2
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_426764 endp




sub_4267D8 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [esp+arg_0]
mov	ecx, [esp+arg_4]
mov	eax, [eax+18h]
mov	[ecx], eax
xor	eax, eax
retn	8
sub_4267D8 endp



; Attributes: bp-based frame

sub_4267EA proc	near

pvarg= VARIANTARG ptr -1Ch
var_C= dword ptr -0Ch
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

mov	eax, offset loc_446DE4
call	__EH_prolog
sub	esp, 10h
mov	edx, [ebp+arg_0]
mov	eax, [ebp+arg_4]
mov	ecx, [edx+18h]
cmp	eax, ecx
jb	short loc_42680E
mov	eax, 80070057h
jmp	loc_4268DC

loc_42680E:
push	ebx
xor	ebx, ebx
push	esi
mov	word ptr [ebp+pvarg.anonymous_0], bx
mov	word ptr [ebp+pvarg.anonymous_0+2], bx
mov	ecx, [edx+1Ch]
mov	esi, [ebp+arg_8]
mov	[ebp+var_4], ebx
mov	eax, [ecx+eax*4]
mov	ecx, 1100h
cmp	esi, ecx
ja	short loc_42688E
jz	short loc_426881
mov	ecx, esi
sub	ecx, 4
jz	short loc_42687D
dec	ecx
dec	ecx
jz	short loc_42686C
sub	ecx, 0Eh
jz	short loc_426853
sub	ecx, 4
jnz	short loc_4268C1
push	dword ptr [eax+44h] ; psz

loc_426849:
lea	ecx, [ebp+pvarg]
call	sub_42CC9E
jmp	short loc_4268C1

loc_426853:
mov	eax, [eax+50h]
cmp	eax, 7
jnb	short loc_4268C1
push	Str[eax*4]	; Str
lea	ecx, [ebp+pvarg]
call	sub_42CCE5
jmp	short loc_4268C1

loc_42686C:
cmp	[edx+24h], bl
lea	ecx, [ebp+pvarg]
setz	al
push	eax
call	sub_42CD4D
jmp	short loc_4268C1

loc_42687D:
push	dword ptr [eax]
jmp	short loc_426849

loc_426881:
cmp	[eax+18h], bl
jz	short loc_4268C1
push	dword ptr [eax+24h]
push	dword ptr [eax+20h]
jmp	short loc_4268B9

loc_42688E:
sub	esi, 1101h
jz	short loc_4268AE
dec	esi
jz	short loc_4268A1
dec	esi
jnz	short loc_4268C1
push	dword ptr [eax+38h]
jmp	short loc_426849

loc_4268A1:
cmp	[eax+18h], bl
jz	short loc_4268C1
push	dword ptr [eax+34h]
push	dword ptr [eax+30h]
jmp	short loc_4268B9

loc_4268AE:
cmp	[eax+18h], bl
jz	short loc_4268C1
push	dword ptr [eax+2Ch]
push	dword ptr [eax+28h]

loc_4268B9:
lea	ecx, [ebp+pvarg]
call	sub_42CD92

loc_4268C1:		; pvarg
push	[ebp+arg_C]
lea	ecx, [ebp+pvarg] ; Src
call	sub_42CE85
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
pop	esi
xor	eax, eax
pop	ebx

loc_4268DC:
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn	10h
sub_4267EA endp



; Attributes: bp-based frame

sub_4268EA proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_446E0A
call	__EH_prolog
sub	esp, 10h
mov	eax, [ebp+arg_4]
push	esi
push	edi
and	dword ptr [eax], 0
cmp	byte ptr [ecx+24h], 0
jnz	short loc_426982
push	0C8h		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_10], ecx
and	[ebp+var_4], 0
test	ecx, ecx
jz	short loc_426926
call	sub_4081FF
mov	esi, eax
jmp	short loc_426928

loc_426926:
xor	esi, esi

loc_426928:
or	[ebp+var_4], 0FFFFFFFFh
mov	[ebp+var_10], esi
test	esi, esi
jz	short loc_426939
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]

loc_426939:
push	[ebp+arg_0]
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], 1
call	sub_403091
lea	eax, [ebp+Memory]
push	0
push	eax
mov	ecx, esi
mov	byte ptr [ebp+var_4], 2
call	sub_407611
push	[ebp+Memory]	; Memory
mov	edi, eax
call	sub_4284D8
test	edi, edi
pop	ecx
jz	short loc_42697D
or	[ebp+var_4], 0FFFFFFFFh
test	esi, esi
jz	short loc_426979
mov	eax, [esi]
push	esi
call	dword ptr [eax+8]

loc_426979:
mov	eax, edi
jmp	short loc_426984

loc_42697D:
mov	eax, [ebp+arg_4]
mov	[eax], esi

loc_426982:
xor	eax, eax

loc_426984:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_4268EA endp




sub_426994 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8
arg_8= dword ptr  0Ch

mov	edx, [esp+arg_8]
mov	ecx, [esp+arg_0]
mov	eax, [esp+arg_4]
and	dword ptr [edx], 0
cmp	eax, [ecx+18h]
jb	short loc_4269AF
mov	eax, 80070057h
jmp	short locret_4269C1

loc_4269AF:
push	esi
mov	esi, [ecx+1Ch]
push	edx
mov	eax, [esi+eax*4]
mov	eax, [eax+0Ch]
push	eax
call	sub_4268EA
pop	esi

locret_4269C1:
retn	0Ch
sub_426994 endp




sub_4269C4 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8
arg_8= dword ptr  0Ch

push	[esp+arg_8]
mov	ecx, [esp+4+arg_0]
push	[esp+4+arg_4]
call	sub_4268EA
retn	0Ch
sub_4269C4 endp




sub_4269D8 proc	near

arg_4= dword ptr  8

mov	eax, [esp+arg_4]
mov	dword ptr [eax], 7
xor	eax, eax
retn	8
sub_4269D8 endp




sub_4269E7 proc	near

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

mov	eax, [esp+arg_4]
cmp	eax, 7
jb	short loc_4269F7
mov	eax, 80070057h
jmp	short locret_426A22

loc_4269F7:
mov	edx, [esp+arg_C]
lea	eax, [eax+eax*2]
mov	ecx, ds:dword_44C46C[eax*4]
lea	eax, ds:44C468h[eax*4]
mov	[edx], ecx
mov	ecx, [esp+arg_10]
mov	ax, [eax+8]
mov	[ecx], ax
mov	eax, [esp+arg_8]
and	dword ptr [eax], 0
xor	eax, eax

locret_426A22:
retn	14h
sub_4269E7 endp



; Attributes: bp-based frame

sub_426A25 proc	near

pvarg= VARIANTARG ptr -44h
var_34=	dword ptr -34h
var_28=	dword ptr -28h
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_446E34
call	__EH_prolog
sub	esp, 38h
push	ebx
push	esi
push	edi
xor	ebx, ebx
mov	[ebp+var_10], esp
mov	[ebp+var_4], ebx
mov	word ptr [ebp+pvarg.anonymous_0], bx
mov	word ptr [ebp+pvarg.anonymous_0+2], bx
cmp	[ebp+arg_4], 3
mov	byte ptr [ebp+var_4], 1
jz	short loc_426A68
cmp	[ebp+arg_4], 14h
jnz	loc_426ADE
push	offset aFsdrives ; "FSDrives"
lea	ecx, [ebp+pvarg]
call	sub_42CC8C
jmp	short loc_426ADE

loc_426A68:
mov	eax, [ebp+arg_0]
cmp	[eax+24h], bl
jz	short loc_426A80
push	psz		; psz
lea	ecx, [ebp+pvarg]
call	sub_42CC9E
jmp	short loc_426ADE

loc_426A80:
push	5Ch
lea	ecx, [ebp+var_34]
call	sub_409516
mov	esi, eax
push	3020300h
mov	edx, 8FCh
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 2
call	sub_40B168
push	esi
mov	edx, eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 3
call	sub_40356A
push	dword ptr [eax]	; psz
lea	ecx, [ebp+pvarg]
mov	byte ptr [ebp+var_4], 4
call	sub_42CC9E
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_28]	; Memory
call	sub_4284D8
push	[ebp+var_34]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
add	esp, 0Ch

loc_426ADE:		; pvarg
push	[ebp+arg_8]
lea	ecx, [ebp+pvarg] ; Src
call	sub_42CE85
lea	ecx, [ebp+pvarg] ; pvarg
mov	byte ptr [ebp+var_4], bl
call	sub_42CDE1
xor	eax, eax
jmp	short loc_426B03

loc_426AF8:
mov	eax, offset loc_426AFE
retn

loc_426AFE:
mov	eax, 8007000Eh

loc_426B03:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	0Ch
sub_426A25 endp



; Attributes: bp-based frame

sub_426B14 proc	near

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

push	ebp
mov	ebp, esp
mov	eax, [ebp+arg_0]
mov	ecx, [ebp+arg_4]
push	esi
mov	esi, [ebp+arg_8]
xor	edx, edx
and	dword ptr [esi], 0
mov	eax, [eax+14h]
mov	eax, [eax+ecx*4]
mov	ecx, [eax+0Ch]
lea	eax, [ebp+arg_8]
push	eax
call	sub_41FA10
test	eax, eax
jz	short loc_426B45
mov	eax, [ebp+arg_8]
mov	[esi], eax
xor	eax, eax
jmp	short loc_426B4B

loc_426B45:
call	ds:GetLastError

loc_426B4B:
pop	esi
pop	ebp
retn	0Ch
sub_426B14 endp



; Attributes: bp-based frame

sub_426B50 proc	near

var_28=	dword ptr -28h
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_446E58
call	__EH_prolog
sub	esp, 1Ch
mov	eax, [ecx+1Ch]
mov	ecx, [ebp+arg_4]
push	ebx
push	esi
mov	esi, [eax+ecx*4]
xor	ebx, ebx
mov	[ebp+var_10], ebx
cmp	dword ptr [esi+50h], 5
jnz	short loc_426B7D
mov	esi, offset aIso ; "iso"
jmp	loc_426BFD

loc_426B7D:		; "NTFS"
push	offset aNtfs
lea	ecx, [ebp+Memory]
call	sub_403091
add	esi, 44h
lea	eax, [ebp+Memory]
push	ebx
push	eax
mov	ecx, esi
mov	[ebp+var_4], ebx
call	sub_40750B
push	[ebp+Memory]	; Memory
test	eax, eax
setnl	byte ptr [ebp+arg_4+3]
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
cmp	byte ptr [ebp+arg_4+3],	bl
pop	ecx
jz	short loc_426BBB
mov	esi, offset aNtfs_0 ; "ntfs"
jmp	short loc_426BFD

loc_426BBB:
push	offset off_45C624
lea	ecx, [ebp+Memory]
call	sub_403091
lea	eax, [ebp+Memory]
push	ebx
push	eax
mov	ecx, esi
mov	[ebp+var_4], 1
call	sub_40750B
push	[ebp+Memory]	; Memory
test	eax, eax
setnl	byte ptr [ebp+arg_4+3]
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
cmp	byte ptr [ebp+arg_4+3],	bl
pop	ecx
mov	esi, offset aFat ; "fat"
jnz	short loc_426BFD
mov	esi, offset aImg ; "img"

loc_426BFD:
push	2Eh
lea	ecx, [ebp+var_28]
call	sub_409516
mov	ecx, [ebp+arg_0]
push	esi
mov	edx, eax
mov	[ebp+var_4], 2
call	sub_409948
push	[ebp+var_28]	; Memory
call	sub_4284D8
mov	eax, [ebp+arg_0]
pop	ecx
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_426B50 endp



; Attributes: bp-based frame

sub_426C35 proc	near

var_28=	dword ptr -28h
var_23=	byte ptr -23h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_446E74
call	__EH_prolog
sub	esp, 1Ch
or	[ebp+var_28], 0FFFFFFFFh
push	ebx
push	esi
mov	eax, [ecx+1Ch]
mov	ecx, [ebp+arg_0]
xor	esi, esi
mov	ecx, [eax+ecx*4]
lea	eax, [ebp+Memory]
push	eax
mov	[ebp+var_4], esi
call	sub_426536
push	dword ptr [eax]	; lpFileName
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 1
call	sub_42C145
push	[ebp+Memory]	; Memory
mov	bl, al
neg	bl
sbb	bl, bl
inc	bl
call	sub_4284D8
test	bl, bl
pop	ecx
jz	short loc_426C8C
call	ds:GetLastError
mov	esi, eax
jmp	short loc_426CA7

loc_426C8C:
cmp	[ebp+var_23], 0
jnz	short loc_426C99
mov	esi, 80004005h
jmp	short loc_426CA7

loc_426C99:
mov	eax, [ebp+arg_4]
mov	ecx, [ebp+var_20]
mov	[eax], ecx
mov	ecx, [ebp+var_1C]
mov	[eax+4], ecx

loc_426CA7:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_28]
call	sub_42BD78
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_426C35 endp



; Attributes: bp-based frame

; int __stdcall	sub_426CC5(int,	BSTR bstrString, int, int, int)
sub_426CC5 proc	near

var_74=	dword ptr -74h
var_68=	dword ptr -68h
Memory=	dword ptr -5Ch
var_58=	dword ptr -58h
var_50=	dword ptr -50h
var_44=	dword ptr -44h
var_38=	dword ptr -38h
var_34=	dword ptr -34h
var_2C=	dword ptr -2Ch
var_28=	dword ptr -28h
var_24=	dword ptr -24h
var_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_4= dword ptr -4
arg_0= dword ptr  8
bstrString= dword ptr  0Ch
arg_8= dword ptr  10h
arg_C= dword ptr  14h
arg_10=	dword ptr  18h

mov	eax, offset loc_446EB8
call	__EH_prolog
sub	esp, 68h
push	ebx
push	esi
push	edi
mov	edi, [ebp+arg_8]
xor	esi, esi
cmp	edi, esi
jnz	short loc_426CE5
xor	eax, eax
jmp	loc_426D6A

loc_426CE5:
mov	eax, [ebp+arg_0]
cmp	byte ptr [eax+20h], 0
jnz	short loc_426CF5
mov	eax, 80004001h
jmp	short loc_426D6A

loc_426CF5:
cmp	edi, esi
mov	[ebp+var_1C], esi
mov	[ebp+var_18], esi
jbe	short loc_426D24
mov	ecx, [eax+18h]
mov	edx, [ebp+bstrString]

loc_426D05:
mov	eax, [edx]
mov	eax, [ecx+eax*4]
cmp	byte ptr [eax+18h], 0
jz	short loc_426D1E
mov	esi, [eax+20h]
mov	eax, [eax+24h]
add	[ebp+var_1C], esi
adc	[ebp+var_18], eax
xor	esi, esi

loc_426D1E:
add	edx, 4
dec	edi
jnz	short loc_426D05

loc_426D24:
push	[ebp+var_18]
mov	edi, [ebp+arg_10]
push	[ebp+var_1C]
mov	eax, [edi]
push	edi
call	dword ptr [eax+0Ch]
cmp	eax, esi
jnz	short loc_426D6A
mov	eax, [edi]
push	esi
push	[ebp+arg_8]
push	edi
call	dword ptr [eax+20h]
cmp	eax, esi
jnz	short loc_426D6A
push	[ebp+arg_C]
lea	ecx, [ebp+Memory]
call	sub_403091
mov	eax, [ebp+var_58]
mov	[ebp+var_4], esi
cmp	eax, esi
jnz	short loc_426D7B

loc_426D5A:
mov	esi, 80070057h

loc_426D5F:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx

loc_426D68:
mov	eax, esi

loc_426D6A:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	14h

loc_426D7B:
mov	ecx, [ebp+Memory]
cmp	word ptr [ecx+eax*2-2],	5Ch
setnz	byte ptr [ebp+arg_10+3]
cmp	byte ptr [ebp+arg_10+3], 0
jz	short loc_426D94
cmp	[ebp+arg_8], 1
ja	short loc_426D5A

loc_426D94:
mov	eax, [edi]
lea	ecx, [ebp+var_2C]
push	ecx
push	edi
mov	[ebp+var_2C], esi
mov	[ebp+var_28], esi
call	dword ptr [eax+10h]
cmp	eax, esi
jz	short loc_426DAC
mov	esi, eax
jmp	short loc_426D5F

loc_426DAC:
cmp	[ebp+arg_8], esi
mov	[ebp+var_10], esi
jbe	short loc_426D5F
mov	eax, [ebp+bstrString]
mov	[ebp+arg_C], eax

loc_426DBA:
mov	eax, [ebp+arg_C]
lea	ecx, [ebp+var_50]
mov	esi, [eax]
mov	eax, [ebp+arg_0]
mov	eax, [eax+18h]
mov	ebx, [eax+esi*4]
lea	eax, [ebp+Memory]
push	eax
call	sub_4030F2
push	ebx
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 1
call	sub_4030F2
cmp	byte ptr [ebp+arg_10+3], 0
mov	byte ptr [ebp+var_4], 2
jnz	short loc_426E5C
lea	eax, [ebp+var_68]
lea	ecx, [ebp+var_38]
push	eax
call	sub_4030F2
mov	eax, [ebp+var_34]
mov	byte ptr [ebp+var_4], 3
test	eax, eax
jz	short loc_426E43
mov	ecx, [ebp+var_38]
cmp	word ptr [ecx+eax*2-2],	3Ah
jnz	short loc_426E43
dec	eax
push	1
push	eax
lea	ecx, [ebp+var_38]
call	sub_40708E
lea	eax, [ebp+var_74]
push	esi
push	eax
mov	eax, [ebp+arg_0]
lea	ecx, [eax-4]
call	sub_426B50
push	eax
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 4
call	sub_4031F2
push	[ebp+var_74]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx

loc_426E43:
lea	eax, [ebp+var_38]
lea	ecx, [ebp+var_50]
push	eax
call	sub_4031F2
push	[ebp+var_38]	; Memory
mov	byte ptr [ebp+var_4], 2
call	sub_4284D8
pop	ecx

loc_426E5C:
lea	eax, [ebp+var_44]
mov	ecx, ebx
push	eax
call	sub_426536
and	[ebp+var_24], 0
and	[ebp+var_20], 0
lea	eax, [ebp+var_24]
mov	byte ptr [ebp+var_4], 5
push	eax
mov	eax, [ebp+arg_0]
push	esi
lea	ecx, [eax-4]
call	sub_426C35
test	eax, eax
jnz	loc_426F71
cmp	[ebx+18h], al
jnz	short loc_426E9C
mov	eax, [ebp+var_24]
mov	ecx, [ebp+var_20]
add	[ebp+var_1C], eax
adc	[ebp+var_18], ecx

loc_426E9C:
push	[ebp+var_18]
mov	eax, [edi]
push	[ebp+var_1C]
push	edi
call	dword ptr [eax+0Ch]
xor	esi, esi
cmp	eax, esi
jnz	loc_426F78
mov	[ebp+bstrString], esi
lea	ecx, [ebp+var_14]
mov	eax, [edi]
push	ecx
lea	ecx, [ebp+bstrString]
push	ecx
lea	ecx, [ebp+var_24]
push	[ebp+var_50]
mov	byte ptr [ebp+var_4], 6
push	ecx
push	esi
push	esi
push	[ebp+var_44]
push	edi
call	dword ptr [eax+14h]
cmp	eax, esi
jnz	loc_426F7C
cmp	[ebp+var_14], esi
jz	short loc_426F2F
push	[ebp+var_44]
mov	eax, [edi]
push	edi
call	dword ptr [eax+1Ch]
cmp	eax, esi
jnz	loc_426F7C
xor	eax, eax
cmp	dword ptr [ebx+50h], 2
push	edi		; int
mov	edx, [ebp+bstrString]
push	[ebp+var_28]	; int
mov	ecx, [ebp+var_44]
setnz	al
push	[ebp+var_2C]	; int
dec	eax
and	eax, 0FFC12000h
add	eax, 400000h
push	eax		; dwSize
push	[ebp+var_20]	; int
push	[ebp+var_24]	; int
push	esi		; char
call	sub_426FAF
cmp	eax, esi
jnz	short loc_426F7C
mov	eax, [ebp+var_24]
mov	ecx, [ebp+var_20]
add	[ebp+var_2C], eax
adc	[ebp+var_28], ecx

loc_426F2F:		; bstrString
push	[ebp+bstrString]
call	ds:SysFreeString
push	[ebp+var_44]	; Memory
call	sub_4284D8
push	[ebp+var_68]	; Memory
call	sub_4284D8
push	[ebp+var_50]	; Memory
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
add	[ebp+arg_C], 4
add	esp, 0Ch
inc	[ebp+var_10]
mov	eax, [ebp+var_10]
cmp	eax, [ebp+arg_8]
jb	loc_426DBA
xor	esi, esi
jmp	loc_426D5F

loc_426F71:
mov	esi, 80004005h
jmp	short loc_426F87

loc_426F78:
mov	esi, eax
jmp	short loc_426F87

loc_426F7C:		; bstrString
push	[ebp+bstrString]
mov	esi, eax
call	ds:SysFreeString

loc_426F87:		; Memory
push	[ebp+var_44]
call	sub_4284D8
push	[ebp+var_68]	; Memory
call	sub_4284D8
push	[ebp+var_50]	; Memory
call	sub_4284D8
push	[ebp+Memory]	; Memory
call	sub_4284D8
add	esp, 10h
jmp	loc_426D68
sub_426CC5 endp



; Attributes: bp-based frame

; int __stdcall	sub_426FAF(char, int, int, SIZE_T dwSize, int, int, int)
sub_426FAF proc	near

var_3C=	dword ptr -3Ch
var_2C=	dword ptr -2Ch
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
nNumberOfBytesToWrite= dword ptr -14h
lpBuffer= dword	ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= byte ptr	 8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h
dwSize=	dword ptr  14h
arg_10=	dword ptr  18h
arg_14=	dword ptr  1Ch
arg_18=	dword ptr  20h

mov	eax, offset loc_446EDC
call	__EH_prolog
sub	esp, 30h
or	[ebp+var_3C], 0FFFFFFFFh
push	ebx
push	esi
push	edi
mov	esi, edx
xor	edi, edi
push	ecx		; lpFileName
lea	ecx, [ebp+var_3C]
mov	[ebp+var_4], edi
call	sub_42C145
test	al, al
jnz	short loc_426FE4
call	ds:GetLastError
mov	esi, eax
jmp	loc_427135

loc_426FE4:
mov	eax, [ebp+arg_4]
and	eax, [ebp+arg_8]
cmp	eax, 0FFFFFFFFh
jnz	short loc_427005
lea	eax, [ebp+arg_4]
lea	ecx, [ebp+var_3C]
push	eax
call	sub_42BEDB
test	al, al
jnz	short loc_427005
call	ds:GetLastError

loc_427005:
or	[ebp+var_2C], 0FFFFFFFFh
cmp	[ebp+arg_0], 0
mov	byte ptr [ebp+var_4], 1
jz	short loc_427032
push	edi		; dwFlagsAndAttributes
push	3		; dwCreationDisposition
push	2		; dwShareMode
push	esi		; lpFileName
lea	ecx, [ebp+var_2C]
call	sub_42C1E7

loc_427021:
test	al, al
jnz	short loc_42703F
call	ds:GetLastError
mov	esi, eax
jmp	loc_427129

loc_427032:		; char
push	1
push	esi		; lpFileName
lea	ecx, [ebp+var_2C]
call	sub_42C21B
jmp	short loc_427021

loc_42703F:		; dwSize
mov	ecx, [ebp+dwSize]
mov	byte ptr [ebp+var_4], 2
call	sub_4411B0
cmp	eax, edi
mov	[ebp+lpBuffer],	eax
jnz	short loc_427063
xor	ecx, ecx	; lpAddress
call	sub_4411D0
mov	esi, 8007000Eh
jmp	loc_427129

loc_427063:
xor	ebx, ebx
cmp	[ebp+arg_8], ebx
jb	loc_42711F
ja	short loc_427079
cmp	[ebp+arg_4], ebx
jbe	loc_42711F

loc_427079:
mov	eax, ebx
mov	ecx, edi
add	eax, [ebp+arg_10]
lea	edx, [ebp+var_1C]
push	edx
adc	ecx, [ebp+arg_14]
mov	[ebp+var_1C], eax
mov	eax, [ebp+arg_18]
mov	[ebp+var_18], ecx
push	eax
mov	ecx, [eax]
call	dword ptr [ecx+10h]
test	eax, eax
jnz	loc_427154
mov	ecx, [ebp+arg_4]
mov	eax, [ebp+arg_8]
sub	ecx, ebx
sbb	eax, edi
xor	edx, edx
cmp	eax, edx
ja	short loc_4270B5
jb	short loc_4270B8
cmp	ecx, [ebp+dwSize]
jb	short loc_4270B8

loc_4270B5:
mov	ecx, [ebp+dwSize]

loc_4270B8:
lea	eax, [ebp+nNumberOfBytesToWrite]
push	eax		; int
push	ecx		; nNumberOfBytesToRead
push	[ebp+lpBuffer]	; lpBuffer
lea	ecx, [ebp+var_3C]
call	sub_42C1A2
test	al, al
jz	loc_427158
mov	esi, [ebp+nNumberOfBytesToWrite]
test	esi, esi
jz	short loc_42711F
cmp	[ebp+arg_0], 0
jz	short loc_4270ED
add	esi, 1FFh
and	si, 0FE00h
cmp	esi, [ebp+dwSize]
ja	short loc_427160

loc_4270ED:
lea	eax, [ebp+nNumberOfBytesToWrite]
lea	ecx, [ebp+var_2C]
push	eax		; int
push	esi		; nNumberOfBytesToWrite
push	[ebp+lpBuffer]	; lpBuffer
call	sub_42C289
test	al, al
jz	short loc_427158
cmp	esi, [ebp+nNumberOfBytesToWrite]
jnz	short loc_427160
add	ebx, esi
adc	edi, 0
cmp	edi, [ebp+arg_8]
jb	loc_427079
ja	short loc_42711F
cmp	ebx, [ebp+arg_4]
jb	loc_427079

loc_42711F:		; lpAddress
mov	ecx, [ebp+lpBuffer]
call	sub_4411D0
xor	esi, esi

loc_427129:
and	byte ptr [ebp+var_4], 0
lea	ecx, [ebp+var_2C]
call	sub_42BD78

loc_427135:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_3C]
call	sub_42BD78
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	1Ch

loc_427154:
mov	esi, eax
jmp	short loc_427165

loc_427158:
call	ds:GetLastError
jmp	short loc_427154

loc_427160:
mov	esi, 80004005h

loc_427165:		; lpAddress
mov	ecx, [ebp+lpBuffer]
call	sub_4411D0
jmp	short loc_427129
sub_426FAF endp

; START	OF FUNCTION CHUNK FOR sub_444294

loc_42716F:
mov	ecx, [ecx]
jmp	sub_4411D0
; END OF FUNCTION CHUNK	FOR sub_444294



sub_427176 proc	near
mov	eax, 80004001h
retn	10h
sub_427176 endp




sub_42717E proc	near
mov	eax, 80004001h
retn	14h
sub_42717E endp



; Attributes: bp-based frame

sub_427186 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset unknown_libname_29 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	58h		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_10], ecx
xor	eax, eax
cmp	ecx, eax
mov	[ebp+var_4], eax
jz	short loc_4271B2
push	[ebp+arg_0]
call	sub_4271CD

loc_4271B2:
or	[ebp+var_4], 0FFFFFFFFh
push	eax
mov	ecx, esi
call	sub_429907
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_427186 endp



; Attributes: bp-based frame

sub_4271CD proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_446F1A
call	__EH_prolog
push	ecx
push	esi
push	edi
mov	edi, [ebp+arg_0]
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
call	sub_4030F2
and	[ebp+var_4], 0
lea	eax, [edi+0Ch]
push	eax
lea	ecx, [esi+0Ch]
call	sub_4030F2
mov	al, [edi+18h]
lea	ecx, [esi+38h]
mov	[esi+18h], al
mov	eax, [edi+20h]
mov	[esi+20h], eax
mov	eax, [edi+24h]
mov	[esi+24h], eax
mov	eax, [edi+28h]
mov	[esi+28h], eax
mov	eax, [edi+2Ch]
mov	[esi+2Ch], eax
mov	eax, [edi+30h]
mov	[esi+30h], eax
mov	eax, [edi+34h]
mov	[esi+34h], eax
lea	eax, [edi+38h]
push	eax
mov	byte ptr [ebp+var_4], 1
call	sub_4030F2
lea	eax, [edi+44h]
lea	ecx, [esi+44h]
push	eax
mov	byte ptr [ebp+var_4], 2
call	sub_4030F2
mov	eax, [edi+50h]
mov	ecx, [ebp+var_C]
mov	[esi+50h], eax
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_4271CD endp



; Attributes: bp-based frame

sub_42725A proc	near

var_AC=	byte ptr -0ACh
var_68=	dword ptr -68h
var_64=	dword ptr -64h
var_60=	dword ptr -60h
var_5C=	dword ptr -5Ch
var_58=	byte ptr -58h
var_57=	byte ptr -57h
var_56=	byte ptr -56h
var_55=	byte ptr -55h
var_48=	byte ptr -48h
Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_446F4F
call	__EH_prolog
sub	esp, 0A0h
push	ebx
push	esi
push	edi
mov	edi, ecx
lea	ecx, [ebp+var_68]
call	sub_40897C
mov	esi, [ebp+arg_0]
xor	ebx, ebx
mov	ecx, esi
mov	[ebp+var_4], ebx
mov	eax, [esi+4]
mov	[ebp+var_57], 1
dec	eax
push	eax
lea	eax, [ebp+Memory]
push	eax
call	sub_403228
push	eax
lea	ecx, [ebp+var_48]
mov	byte ptr [ebp+var_4], 1
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx
mov	[ebp+var_55], bl
lea	ecx, [ebp+var_AC]
mov	[ebp+var_58], bl
mov	[ebp+var_56], bl
mov	[ebp+var_64], 1
mov	[ebp+var_68], 2
mov	[ebp+var_5C], ebx
mov	[ebp+var_60], ebx
call	sub_40897C
push	3
lea	ecx, [ebp+var_18]
mov	byte ptr [ebp+var_4], 2
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_403396
lea	eax, [ebp+var_18]
lea	edx, [ebp+var_AC]
push	eax
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 3
call	sub_42F4C9
cmp	eax, ebx
jnz	short loc_427317
push	esi
lea	eax, [ebp+var_AC]
push	ebx
push	eax
mov	ecx, edi
call	sub_427372
jmp	short loc_42733E

loc_427317:
push	offset word_45D498
lea	ecx, [ebp+Memory]
call	sub_403091
lea	eax, [ebp+Memory]
mov	ecx, edi
push	eax
push	ebx
push	ebx
mov	byte ptr [ebp+var_4], 4
call	sub_427372
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_42733E:		; Memory
push	[ebp+var_18]
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], bl
lea	ecx, [ebp+var_AC]
call	sub_42EEC8
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_68]
call	sub_42EEC8
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_42725A endp



; Attributes: bp-based frame

sub_427372 proc	near

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

mov	eax, offset loc_446F64
call	__EH_prolog
sub	esp, 0Ch
push	ebx
push	esi
push	[ebp+arg_8]
mov	esi, ecx
lea	ebx, [esi+6Ch]
mov	ecx, ebx
call	sub_40312C
cmp	[ebp+arg_0], 0
jnz	short loc_42739C
and	dword ptr [esi+50h], 0
jmp	short loc_4273D4

loc_42739C:
push	edi
lea	edi, [esi+0Ch]
push	[ebp+arg_0]
mov	ecx, edi
call	sub_4273EF
push	5Ch
lea	edx, [esi+2Ch]
lea	ecx, [ebp+Memory]
mov	[esi+50h], edi
call	sub_409999
and	[ebp+var_4], 0
push	eax
mov	ecx, ebx
call	sub_40312C
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx
pop	edi

loc_4273D4:
push	[ebp+arg_4]
lea	ecx, [esi+68h]
call	sub_43D0DB
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_427372 endp




sub_4273EF proc	near

arg_0= dword ptr  4

push	ebx
push	ebp
mov	ebp, [esp+8+arg_0]
push	esi
push	edi
mov	ebx, ecx
push	5
mov	esi, ebp
pop	ecx
mov	edi, ebx
rep movsd
lea	eax, [ebp+14h]
lea	ecx, [ebx+14h]
push	eax
call	sub_40312C
lea	eax, [ebp+20h]
lea	ecx, [ebx+20h]
push	eax
call	sub_40312C
lea	eax, [ebp+2Ch]
lea	ecx, [ebx+2Ch]
push	eax
call	sub_40312C
add	ebp, 38h
lea	ecx, [ebx+38h]
push	ebp
call	sub_40312C
pop	edi
pop	esi
mov	eax, ebx
pop	ebp
pop	ebx
retn	4
sub_4273EF endp



; Attributes: bp-based frame

sub_42743B proc	near

var_70=	byte ptr -70h
var_5F=	byte ptr -5Fh
var_50=	byte ptr -50h
var_44=	byte ptr -44h
var_2C=	dword ptr -2Ch
var_28=	dword ptr -28h
Memory=	dword ptr -20h
var_14=	byte ptr -14h
var_10=	byte ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_446F88
call	__EH_prolog
sub	esp, 64h
push	ebx
push	esi
mov	esi, [ebp+arg_0]
push	edi
lea	edi, [esi+54h]
mov	ecx, edi
call	sub_428327
xor	ebx, ebx
mov	[ebp+var_10], bl
mov	[ebp+var_4], ebx

loc_427460:		; int
push	dword ptr [esi+50h]
lea	ecx, [ebp+var_14]
push	ebx		; dwUsage
push	1		; dwType
push	2		; dwScope
call	sub_42EC97
cmp	eax, ebx
jz	short loc_42749D
cmp	eax, 5
jnz	loc_427592
cmp	[esi+50h], ebx
jz	loc_427592
push	8		; dwFlags
push	ebx		; lpUserName
xor	edx, edx
lea	ecx, [esi+0Ch]
call	sub_42F65C
cmp	eax, ebx
jnz	loc_427592
jmp	short loc_427460

loc_42749D:
lea	ecx, [ebp+var_70]
call	sub_4275B8

loc_4274A5:
lea	eax, [ebp+var_70]
lea	ecx, [ebp+var_14]
push	eax
mov	byte ptr [ebp+var_4], 1
call	sub_42F057
mov	esi, eax
cmp	esi, ebx
jnz	loc_427559
cmp	[ebp+var_5F], bl
jnz	short loc_4274D0
lea	eax, [ebp+var_44]
lea	ecx, [ebp+var_50]
push	eax
call	sub_40312C

loc_4274D0:
lea	eax, [ebp+var_50]
lea	ecx, [ebp+var_2C]
push	eax
call	sub_40312C
mov	eax, [ebp+var_28]
cmp	eax, ebx
jz	short loc_42752D
mov	ecx, [ebp+var_2C]
lea	eax, [ecx+eax*2-2]

loc_4274EA:
cmp	word ptr [eax],	5Ch
jz	short loc_4274F8
cmp	eax, ecx
jz	short loc_4274FE
dec	eax
dec	eax
jmp	short loc_4274EA

loc_4274F8:
sub	eax, ecx
sar	eax, 1
jmp	short loc_427501

loc_4274FE:
or	eax, 0FFFFFFFFh

loc_427501:
cmp	eax, ebx
jl	short loc_42752D
inc	eax
lea	ecx, [ebp+var_2C]
push	eax
lea	eax, [ebp+Memory]
push	eax
call	sub_405246
push	eax
lea	ecx, [ebp+var_2C]
mov	byte ptr [ebp+var_4], 2
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
pop	ecx

loc_42752D:
lea	eax, [ebp+var_70]
mov	ecx, edi
push	eax
call	sub_4279BC
push	[ebp+var_2C]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx
lea	ecx, [ebp+var_70]
call	sub_42EEC8
lea	ecx, [ebp+var_70]
call	sub_4275B8
jmp	loc_4274A5

loc_427559:		; Memory
push	[ebp+var_2C]
cmp	esi, 103h
jnz	short loc_427574
call	sub_4284D8
pop	ecx
lea	ecx, [ebp+var_70]
call	sub_42EEC8
jmp	short loc_427594

loc_427574:
call	sub_4284D8
pop	ecx
lea	ecx, [ebp+var_70]
call	sub_42EEC8
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_14]
call	sub_42EEF0
mov	eax, esi
jmp	short loc_4275A2

loc_427592:
mov	ebx, eax

loc_427594:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_14]
call	sub_42EEF0
mov	eax, ebx

loc_4275A2:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_42743B endp



; Attributes: thunk

sub_4275B3 proc	near
jmp	sub_42EEF0
sub_4275B3 endp



; Attributes: bp-based frame

sub_4275B8 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_446F9C
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
call	sub_40897C
lea	ecx, [esi+44h]
xor	eax, eax
push	3
mov	[ebp+var_4], eax
mov	[ecx], eax
mov	[ecx+4], eax
mov	[ecx+8], eax
call	sub_403396
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_4275B8 endp




sub_4275F4 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [esp+arg_0]
mov	ecx, [esp+arg_4]
mov	eax, [eax+5Ch]
mov	[ecx], eax
xor	eax, eax
retn	8
sub_4275F4 endp



; Attributes: bp-based frame

sub_427606 proc	near

pvarg= VARIANTARG ptr -1Ch
var_C= dword ptr -0Ch
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

mov	eax, offset loc_446FB0
call	__EH_prolog
sub	esp, 10h
xor	edx, edx
mov	word ptr [ebp+pvarg.anonymous_0], dx
mov	word ptr [ebp+pvarg.anonymous_0+2], dx
mov	eax, [ebp+arg_0]
mov	ecx, [ebp+arg_4]
mov	[ebp+var_4], edx
mov	eax, [eax+60h]
mov	eax, [eax+ecx*4]
mov	ecx, [ebp+arg_8]
sub	ecx, 4
jz	short loc_427672
dec	ecx
dec	ecx
jz	short loc_427666
sub	ecx, 16h
jz	short loc_42765C
sub	ecx, 11E4h
jz	short loc_427652
dec	ecx
jnz	short loc_42767D
cmp	[eax+13h], dl
jz	short loc_42767D
push	dword ptr [eax+38h]
jmp	short loc_427675

loc_427652:
cmp	[eax+10h], dl
jz	short loc_42767D
push	dword ptr [eax+14h]
jmp	short loc_427675

loc_42765C:
cmp	[eax+12h], dl
jz	short loc_42767D
push	dword ptr [eax+2Ch]
jmp	short loc_427675

loc_427666:
push	1
lea	ecx, [ebp+pvarg]
call	sub_42CD4D
jmp	short loc_42767D

loc_427672:		; psz
push	dword ptr [eax+44h]

loc_427675:
lea	ecx, [ebp+pvarg]
call	sub_42CC9E

loc_42767D:		; pvarg
push	[ebp+arg_C]
lea	ecx, [ebp+pvarg] ; Src
call	sub_42CE85
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
mov	ecx, [ebp+var_C]
xor	eax, eax
mov	large fs:0, ecx
leave
retn	10h
sub_427606 endp



; Attributes: bp-based frame

sub_4276A4 proc	near

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

mov	eax, offset loc_446FF0
call	__EH_prolog
sub	esp, 0Ch
mov	eax, [ebp+arg_8]
mov	ecx, [ebp+arg_4]
push	esi
push	edi
and	dword ptr [eax], 0
mov	eax, [ebp+arg_0]
mov	eax, [eax+60h]
mov	esi, [eax+ecx*4]
cmp	dword ptr [esi+0Ch], 1
jz	short loc_427747
push	3
pop	edi
cmp	[esi+8], edi
jz	short loc_427747
push	78h		; Size
call	sub_4284B1
pop	ecx
mov	[ebp+arg_4], eax
test	eax, eax
mov	[ebp+var_4], edi
jz	short loc_4276F0
mov	ecx, eax
call	sub_4088D8
mov	edi, eax
jmp	short loc_4276F2

loc_4276F0:
xor	edi, edi

loc_4276F2:
or	[ebp+var_4], 0FFFFFFFFh
mov	[ebp+arg_4], edi
test	edi, edi
jz	short loc_427703
mov	eax, [edi]
push	edi
call	dword ptr [eax+4]

loc_427703:
push	5Ch
lea	edx, [esi+44h]
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], 4
call	sub_409999
push	eax
mov	ecx, edi
push	[ebp+arg_0]
mov	byte ptr [ebp+var_4], 5
push	esi
call	sub_427372
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_427730:
mov	eax, [ebp+arg_8]
mov	[eax], edi
xor	eax, eax

loc_427737:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	0Ch

loc_427747:		; Size
push	0C8h
call	sub_4284B1
pop	ecx
mov	[ebp+arg_4], eax
xor	edi, edi
cmp	eax, edi
mov	[ebp+var_4], edi
jz	short loc_427767
mov	ecx, eax
call	sub_4081FF
mov	edi, eax

loc_427767:
or	[ebp+var_4], 0FFFFFFFFh
mov	[ebp+arg_4], edi
test	edi, edi
jz	short loc_427778
mov	eax, [edi]
push	edi
call	dword ptr [eax+4]

loc_427778:
push	5Ch
lea	edx, [esi+20h]
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], 1
call	sub_409999
push	[ebp+arg_0]
mov	ecx, edi
mov	byte ptr [ebp+var_4], 2
push	eax
call	sub_407611
push	[ebp+Memory]	; Memory
mov	esi, eax
call	sub_4284D8
test	esi, esi
pop	ecx
jz	short loc_427730
or	[ebp+var_4], 0FFFFFFFFh
test	edi, edi
jz	short loc_4277B8
mov	eax, [edi]
push	edi
call	dword ptr [eax+8]

loc_4277B8:
mov	eax, esi
jmp	loc_427737
sub_4276A4 endp




sub_4277BF proc	near
mov	eax, 80004001h
retn	0Ch
sub_4277BF endp



; Attributes: bp-based frame

sub_4277C7 proc	near

var_5C=	byte ptr -5Ch
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_44701E
call	__EH_prolog
sub	esp, 50h
mov	eax, [ebp+arg_4]
push	ebx
push	esi
mov	esi, [ebp+arg_0]
xor	ebx, ebx
push	edi
mov	[eax], ebx
mov	edi, [esi+68h]
cmp	edi, ebx
jz	short loc_4277F8
mov	eax, [edi]
push	edi
call	dword ptr [eax+4]
mov	eax, [ebp+arg_4]
mov	[eax], edi
jmp	loc_427898

loc_4277F8:
cmp	[esi+50h], ebx
jz	loc_427898
lea	ecx, [ebp+var_5C]
call	sub_40897C
lea	edx, [ebp+var_5C]
lea	ecx, [esi+0Ch]
mov	[ebp+var_4], ebx
call	sub_42F312
cmp	eax, ebx
jz	short loc_42781F
mov	ebx, eax
jmp	short loc_427824

loc_42781F:
cmp	[esi+1Dh], bl
jnz	short loc_427830

loc_427824:
lea	ecx, [ebp+var_5C]
call	sub_42EEC8
mov	eax, ebx
jmp	short loc_42789A

loc_427830:		; Size
push	78h
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+arg_0], ecx
cmp	ecx, ebx
mov	byte ptr [ebp+var_4], 1
jz	short loc_42784E
call	sub_4088D8
mov	esi, eax
jmp	short loc_427850

loc_42784E:
xor	esi, esi

loc_427850:
cmp	esi, ebx
mov	byte ptr [ebp+var_4], bl
mov	[ebp+arg_0], esi
jz	short loc_427860
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]

loc_427860:
push	5Ch
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 2
call	sub_409516
lea	eax, [ebp+Memory]
mov	ecx, esi
push	eax
lea	eax, [ebp+var_5C]
push	ebx
push	eax
mov	byte ptr [ebp+var_4], 3
call	sub_427372
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+arg_4]
pop	ecx
lea	ecx, [ebp+var_5C]
mov	[eax], esi
call	sub_42EEC8

loc_427898:
xor	eax, eax

loc_42789A:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_4277C7 endp




sub_4278AB proc	near

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

mov	eax, [esp+arg_4]
cmp	eax, 4
jb	short loc_4278BB
mov	eax, 80070057h
jmp	short locret_4278E6

loc_4278BB:
mov	edx, [esp+arg_C]
lea	eax, [eax+eax*2]
mov	ecx, ds:dword_44C4C4[eax*4]
lea	eax, ds:44C4C0h[eax*4]
mov	[edx], ecx
mov	ecx, [esp+arg_10]
mov	ax, [eax+8]
mov	[ecx], ax
mov	eax, [esp+arg_8]
and	dword ptr [eax], 0
xor	eax, eax

locret_4278E6:
retn	14h
sub_4278AB endp



; Attributes: bp-based frame

sub_4278E9 proc	near

pvarg= VARIANTARG ptr -1Ch
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_447030
call	__EH_prolog
sub	esp, 10h
xor	eax, eax
mov	word ptr [ebp+pvarg.anonymous_0], ax
mov	word ptr [ebp+pvarg.anonymous_0+2], ax
cmp	[ebp+arg_4], 3
mov	[ebp+var_4], eax
jz	short loc_42791E
cmp	[ebp+arg_4], 14h
jnz	short loc_42792C
push	offset aNetfolder ; "NetFolder"
lea	ecx, [ebp+pvarg]
call	sub_42CC8C
jmp	short loc_42792C

loc_42791E:
mov	eax, [ebp+arg_0]
lea	ecx, [ebp+pvarg]
push	dword ptr [eax+6Ch] ; psz
call	sub_42CC9E

loc_42792C:		; pvarg
push	[ebp+arg_8]
lea	ecx, [ebp+pvarg] ; Src
call	sub_42CE85
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
mov	ecx, [ebp+var_C]
xor	eax, eax
mov	large fs:0, ecx
leave
retn	0Ch
sub_4278E9 endp



; Attributes: bp-based frame

sub_427953 proc	near

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

push	ebp
mov	ebp, esp
mov	ecx, [ebp+arg_0]
mov	eax, [ebp+arg_4]
push	esi
cmp	eax, [ecx+58h]
jb	short loc_427969
mov	eax, 80070057h
jmp	short loc_4279B7

loc_427969:
mov	esi, [ebp+arg_8]
and	dword ptr [esi], 0
mov	ecx, [ecx+5Ch]
mov	eax, [ecx+eax*4]
cmp	dword ptr [eax+8], 2
jz	short loc_42799F
cmp	dword ptr [eax+0Ch], 1
jz	short loc_42799F
lea	eax, [ebp+arg_4]
mov	ecx, offset pszPath ; pszPath
push	eax		; int
push	10h
pop	edx
call	sub_41F9BA

loc_427992:
test	eax, eax
jz	short loc_4279B1
mov	eax, [ebp+arg_4]
mov	[esi], eax
xor	eax, eax
jmp	short loc_4279B7

loc_42799F:
mov	eax, [eax+20h]
lea	ecx, [ebp+arg_4]
push	ecx
xor	edx, edx
mov	ecx, eax
call	sub_41FA10
jmp	short loc_427992

loc_4279B1:
call	ds:GetLastError

loc_4279B7:
pop	esi
pop	ebp
retn	0Ch
sub_427953 endp



; Attributes: bp-based frame

sub_4279BC proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_44704E
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	ebx, ecx
push	50h		; Size
call	sub_4284B1
mov	esi, eax
pop	ecx
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
test	esi, esi
jz	short loc_4279FF
push	edi
mov	edi, [ebp+arg_0]
push	edi
mov	ecx, esi
call	sub_427A1D
add	edi, 44h
lea	ecx, [esi+44h]
push	edi
mov	byte ptr [ebp+var_4], 1
call	sub_4030F2
pop	edi
jmp	short loc_427A01

loc_4279FF:
xor	esi, esi

loc_427A01:
or	[ebp+var_4], 0FFFFFFFFh
push	esi
mov	ecx, ebx
call	sub_429907
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_4279BC endp



; Attributes: bp-based frame

sub_427A1D proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_447079
call	__EH_prolog
push	ecx
mov	eax, [ebp+arg_0]
push	ebx
push	esi
push	edi
mov	ebx, ecx
push	5
pop	ecx
mov	esi, eax
mov	edi, ebx
add	eax, 14h
rep movsd
push	eax
lea	ecx, [ebx+14h]
mov	[ebp+var_10], ebx
call	sub_4030F2
mov	esi, [ebp+arg_0]
and	[ebp+var_4], 0
lea	ecx, [ebx+20h]
lea	eax, [esi+20h]
push	eax
call	sub_4030F2
lea	eax, [esi+2Ch]
lea	ecx, [ebx+2Ch]
push	eax
mov	byte ptr [ebp+var_4], 1
call	sub_4030F2
add	esi, 38h
lea	ecx, [ebx+38h]
push	esi
mov	byte ptr [ebp+var_4], 2
call	sub_4030F2
mov	ecx, [ebp+var_C]
pop	edi
mov	eax, ebx
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_427A1D endp

jmp	$+5

loc_427A93:
jmp	loc_4419B0


; Attributes: bp-based frame

sub_427A98 proc	near

var_51=	byte ptr -51h
var_50=	byte ptr -50h
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
cmp	edx, 2
mov	[ebp+var_8], edx
mov	[ebp+var_4], ecx
jb	short loc_427B09
cmp	edx, 24h
ja	short loc_427B09
push	ebx
mov	ebx, [ebp+arg_4]
push	esi
push	edi
mov	edi, [ebp+arg_0]
xor	esi, esi

loc_427AB9:
xor	eax, eax
push	eax
push	[ebp+var_8]
push	ebx
push	edi
call	__aullrem
cmp	eax, 0Ah
jge	short loc_427AD0
add	eax, 30h
jmp	short loc_427AD3

loc_427AD0:
add	eax, 57h

loc_427AD3:
mov	[ebp+esi+var_50], al
xor	eax, eax
push	eax
inc	esi
push	[ebp+var_8]
push	ebx
push	edi
call	__aulldiv
mov	ebx, edx
mov	edi, eax
or	eax, ebx
jnz	short loc_427AB9

loc_427AED:
mov	ecx, [ebp+var_4]
mov	al, [ebp+esi+var_51]
dec	esi
inc	[ebp+var_4]
test	esi, esi
mov	[ecx], al
jg	short loc_427AED
mov	eax, [ebp+var_4]
pop	edi
pop	esi
pop	ebx
and	byte ptr [eax],	0
jmp	short locret_427B0C

loc_427B09:
and	byte ptr [ecx],	0

locret_427B0C:
leave
retn	8
sub_427A98 endp



; Attributes: bp-based frame

sub_427B10 proc	near

var_48=	byte ptr -48h
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, 48h
and	[ebp+var_8], 0
push	ebx
mov	ebx, [ebp+arg_4]
push	esi
push	edi
mov	edi, [ebp+arg_0]
mov	[ebp+var_4], ecx
lea	esi, [ebp+var_48]

loc_427B29:
push	0
push	0Ah
push	ebx
push	edi
call	__aullrem
add	eax, 30h
inc	[ebp+var_8]
push	0
mov	[esi], ax
push	0Ah
inc	esi
push	ebx
push	edi
inc	esi
call	__aulldiv
mov	ebx, edx
mov	edi, eax
or	eax, ebx
jnz	short loc_427B29
mov	ecx, [ebp+var_8]
lea	eax, [ebp+ecx*2+var_48]

loc_427B59:
mov	esi, [ebp+var_4]
add	[ebp+var_4], 2
dec	ecx
dec	eax
dec	eax
test	ecx, ecx
mov	dx, [eax]
mov	[esi], dx
jg	short loc_427B59
mov	eax, [ebp+var_4]
pop	edi
pop	esi
pop	ebx
and	word ptr [eax],	0
leave
retn	8
sub_427B10 endp




sub_427B7B proc	near
push	esi
mov	eax, edx
push	0Ah
mov	esi, ecx
pop	edx
mov	ecx, eax
push	0
push	esi
call	sub_427A98
pop	esi
retn
sub_427B7B endp




sub_427B8F proc	near
mov	eax, ecx
push	0
mov	ecx, edx
push	eax
call	sub_427B10
retn
sub_427B8F endp




sub_427B9C proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	edx, [esp+arg_4]
mov	eax, [esp+arg_0]
test	edx, edx
jg	short loc_427BBC
jl	short loc_427BAE
test	eax, eax
jnb	short loc_427BBC

loc_427BAE:
mov	word ptr [ecx],	2Dh
inc	ecx
inc	ecx
neg	eax
adc	edx, 0
neg	edx

loc_427BBC:
push	edx
push	eax
call	sub_427B10
retn	8
sub_427B9C endp



; Attributes: bp-based frame

; int __stdcall	sub_427BC6(wchar_t *lpFileName)
sub_427BC6 proc	near

var_84=	dword ptr -84h
var_78=	dword ptr -78h
var_6C=	dword ptr -6Ch
var_64=	dword ptr -64h
var_60=	dword ptr -60h
var_58=	dword ptr -58h
var_48=	byte ptr -48h
Memory=	dword ptr -44h
var_38=	dword ptr -38h
var_34=	dword ptr -34h
lpBuffer= dword	ptr -2Ch
var_28=	dword ptr -28h
var_24=	dword ptr -24h
nNumberOfBytesToRead= 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_4= dword ptr -4
lpFileName= dword ptr  8

mov	eax, offset loc_4470EA
call	__EH_prolog
sub	esp, 78h
push	ebx
push	esi
push	edi
mov	[ebp+var_14], ecx
call	sub_428327
or	[ebp+var_58], 0FFFFFFFFh
push	[ebp+lpFileName] ; lpFileName
xor	edi, edi
lea	ecx, [ebp+var_58]
mov	[ebp+var_4], edi
call	sub_42C145
test	al, al
jnz	short loc_427BFD

loc_427BF6:
xor	bl, bl
jmp	loc_427E3F

loc_427BFD:
lea	eax, [ebp+nNumberOfBytesToRead]
lea	ecx, [ebp+var_58]
push	eax
call	sub_42BEDB
test	al, al
jz	short loc_427BF6
cmp	[ebp+var_1C], edi
ja	short loc_427BF6
cmp	[ebp+nNumberOfBytesToRead], 100000h
ja	short loc_427BF6
push	3
lea	ecx, [ebp+lpBuffer]
pop	ebx
mov	[ebp+lpBuffer],	edi
push	ebx
mov	[ebp+var_28], edi
mov	[ebp+var_24], edi
call	sub_4034E3
mov	eax, [ebp+nNumberOfBytesToRead]
mov	byte ptr [ebp+var_4], 1
inc	eax
cmp	eax, [ebp+var_24]
jl	short loc_427C46
push	eax
lea	ecx, [ebp+lpBuffer]
call	sub_4034E3

loc_427C46:
mov	esi, [ebp+lpBuffer]
lea	eax, [ebp+var_18]
push	eax		; int
lea	ecx, [ebp+var_58]
push	[ebp+nNumberOfBytesToRead] ; nNumberOfBytesToRead
push	esi		; lpBuffer
call	sub_42C1A2
test	al, al
jnz	short loc_427C64
xor	bl, bl
jmp	loc_427E36

loc_427C64:
mov	eax, [ebp+nNumberOfBytesToRead]
and	byte ptr [eax+esi], 0
mov	ecx, [ebp+lpBuffer]
call	sub_428078
mov	ecx, [ebp+lpBuffer]
and	byte ptr [eax+ecx], 0
lea	ecx, [ebp+var_58]
mov	[ebp+var_28], eax
call	sub_42BEBB
cmp	[ebp+var_28], ebx
mov	[ebp+var_10], edi
jl	short loc_427CA4
mov	eax, [ebp+lpBuffer]
cmp	byte ptr [eax],	0EFh
jnz	short loc_427CA4
cmp	byte ptr [eax+1], 0BBh
jnz	short loc_427CA4
cmp	byte ptr [eax+2], 0BFh
jnz	short loc_427CA4
mov	[ebp+var_10], ebx

loc_427CA4:		; ";!@Lang@!UTF-8!"
push	offset a@lang@Utf8
lea	ecx, [ebp+var_38]
call	sub_41E0DD
push	[ebp+var_34]
lea	eax, [ebp+Memory]
lea	ecx, [ebp+lpBuffer]
mov	byte ptr [ebp+var_4], 2
push	[ebp+var_10]
push	eax
call	sub_41E186
mov	edx, [ebp+var_38]
mov	ecx, [eax]
mov	byte ptr [ebp+var_4], bl
call	sub_428267
push	[ebp+Memory]	; Memory
cmp	eax, edi
setnz	bl
mov	byte ptr [ebp+var_4], 2
call	sub_4284D8
test	bl, bl
pop	ecx
jz	short loc_427CF1

loc_427CEA:
xor	bl, bl
jmp	loc_427E2D

loc_427CF1:
mov	eax, [ebp+var_34]
lea	edx, [ebp+var_10]
add	[ebp+var_10], eax
lea	ecx, [ebp+lpBuffer]
call	sub_4289B3
test	al, al
jz	short loc_427CEA
lea	ecx, [ebp+var_6C]
call	sub_40337B
mov	esi, offset off_44C4F0
mov	[ebp+var_6C], esi
push	[ebp+var_10]
lea	eax, [ebp+Memory]
lea	ecx, [ebp+lpBuffer]
mov	byte ptr [ebp+var_4], 4
push	eax
call	sub_427FA2
lea	edx, [ebp+var_6C]
mov	ecx, eax
mov	byte ptr [ebp+var_4], 5
call	sub_4286EB
push	[ebp+Memory]	; Memory
mov	bl, al
neg	bl
sbb	bl, bl
mov	byte ptr [ebp+var_4], 4
inc	bl
call	sub_4284D8
test	bl, bl
pop	ecx
jz	short loc_427D5E
mov	[ebp+var_6C], esi
mov	byte ptr [ebp+var_4], 6
xor	bl, bl
jmp	loc_427E19

loc_427D5E:
mov	ecx, [ebp+var_14]
push	dword ptr [ecx+8]
call	sub_428378
xor	ebx, ebx
cmp	[ebp+var_64], edi
jle	loc_427E02

loc_427D74:
mov	eax, [ebp+var_60]
lea	ecx, [ebp+var_84]
mov	edi, [eax+ebx*4]
push	edi
call	sub_4030F2
add	edi, 0Ch
lea	ecx, [ebp+var_78]
push	edi
mov	byte ptr [ebp+var_4], 7
call	sub_4030F2
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 8
call	sub_403079
lea	edx, [ebp+var_48]
lea	ecx, [ebp+var_84]
mov	byte ptr [ebp+var_4], 9
call	sub_427EB9
test	al, al
jz	loc_427E5E
lea	eax, [ebp+var_78]
lea	ecx, [ebp+Memory]
push	eax
call	sub_40312C
mov	ecx, [ebp+var_14]
lea	eax, [ebp+var_48]
push	eax
call	sub_40B88E
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_78]	; Memory
mov	byte ptr [ebp+var_4], 4
call	sub_4284D8
push	[ebp+var_84]	; Memory
call	sub_4284D8
add	esp, 0Ch
inc	ebx
cmp	ebx, [ebp+var_64]
jl	loc_427D74
xor	edi, edi

loc_427E02:
mov	ecx, [ebp+var_14]
push	edi
push	offset sub_427F20
call	sub_43748B
mov	[ebp+var_6C], esi
mov	byte ptr [ebp+var_4], 0Bh
mov	bl, 1

loc_427E19:
lea	ecx, [ebp+var_6C]
call	sub_428327
lea	ecx, [ebp+var_6C]
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE

loc_427E2D:		; Memory
push	[ebp+var_38]
call	sub_4284D8
pop	ecx

loc_427E36:		; Memory
push	[ebp+lpBuffer]
call	sub_4284D8
pop	ecx

loc_427E3F:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_58]
call	sub_42BD78
mov	al, bl

loc_427E4D:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4

loc_427E5E:		; Memory
push	[ebp+Memory]
call	sub_4284D8
push	[ebp+var_78]	; Memory
call	sub_4284D8
push	[ebp+var_84]	; Memory
call	sub_4284D8
add	esp, 0Ch
mov	[ebp+var_6C], esi
lea	ecx, [ebp+var_6C]
mov	byte ptr [ebp+var_4], 0Ah
call	sub_428327
lea	ecx, [ebp+var_6C]
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE
push	[ebp+var_38]	; Memory
call	sub_4284D8
push	[ebp+lpBuffer]	; Memory
call	sub_4284D8
or	[ebp+var_4], 0FFFFFFFFh
pop	ecx
pop	ecx
lea	ecx, [ebp+var_58]
call	sub_42BD78
xor	al, al
jmp	short loc_427E4D
sub_427BC6 endp




sub_427EB9 proc	near
push	esi
xor	esi, esi
mov	[edx], esi
mov	eax, [ecx+4]
cmp	eax, esi
push	edi
jz	short loc_427F1C
jle	short loc_427F17

loc_427EC8:
mov	eax, [ecx]
mov	ax, [eax+esi*2]
cmp	ax, 30h
jb	short loc_427EE2
cmp	ax, 39h
ja	short loc_427EE2
movzx	eax, ax
sub	eax, 30h
jmp	short loc_427F08

loc_427EE2:
cmp	ax, 41h
jb	short loc_427EF6
cmp	ax, 46h
ja	short loc_427EF6
movzx	eax, ax
sub	eax, 37h
jmp	short loc_427F08

loc_427EF6:
cmp	ax, 61h
jb	short loc_427F1C
cmp	ax, 66h
ja	short loc_427F1C
movzx	eax, ax
sub	eax, 57h

loc_427F08:
mov	edi, [edx]
shl	edi, 4
add	edi, eax
inc	esi
mov	[edx], edi
cmp	esi, [ecx+4]
jl	short loc_427EC8

loc_427F17:
mov	al, 1

loc_427F19:
pop	edi
pop	esi
retn

loc_427F1C:
xor	al, al
jmp	short loc_427F19
sub_427EB9 endp




sub_427F20 proc	near
mov	eax, [edx]
mov	ecx, [ecx]
mov	eax, [eax]
mov	ecx, [ecx]
cmp	ecx, eax
jnb	short loc_427F31
or	eax, 0FFFFFFFFh
jmp	short locret_427F3A

loc_427F31:
xor	edx, edx
cmp	ecx, eax
setnz	dl
mov	eax, edx

locret_427F3A:
retn	4
sub_427F20 endp




sub_427F3D proc	near

arg_0= dword ptr  4

push	ebx
push	esi
mov	esi, [ecx+8]
push	edi
xor	edi, edi
test	esi, esi
jz	short loc_427F6C
mov	ebx, [ecx+0Ch]

loc_427F4C:
lea	eax, [esi+edi]
cdq
sub	eax, edx
sar	eax, 1
mov	ecx, [ebx+eax*4]
mov	ecx, [ecx]
cmp	[esp+0Ch+arg_0], ecx
jz	short loc_427F6F
jnb	short loc_427F65
mov	esi, eax
jmp	short loc_427F68

loc_427F65:
lea	edi, [eax+1]

loc_427F68:
cmp	edi, esi
jnz	short loc_427F4C

loc_427F6C:
or	eax, 0FFFFFFFFh

loc_427F6F:
pop	edi
pop	esi
pop	ebx
retn	4
sub_427F3D endp




sub_427F75 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	esi
mov	esi, ecx
push	[esp+4+arg_0]
call	sub_427F3D
test	eax, eax
jge	short loc_427F89
xor	al, al
jmp	short loc_427F9E

loc_427F89:
mov	ecx, [esi+0Ch]
mov	eax, [ecx+eax*4]
mov	ecx, [esp+4+arg_4]
add	eax, 4
push	eax
call	sub_40312C
mov	al, 1

loc_427F9E:
pop	esi
retn	8
sub_427F75 endp



; Attributes: bp-based frame

sub_427FA2 proc	near

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

push	ebp
mov	ebp, esp
push	ecx
mov	eax, [ecx+4]
and	[ebp+var_4], 0
sub	eax, [ebp+arg_4]
push	eax
push	[ebp+arg_4]
push	[ebp+arg_0]
call	sub_41E186
mov	eax, [ebp+arg_0]
leave
retn	8
sub_427FA2 endp



; Attributes: bp-based frame

sub_427FC3 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4470FC
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44C4F0
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_427FC3 endp



; Attributes: bp-based frame

sub_427FFB proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ebx
mov	ebx, ecx
mov	ecx, [ebp+arg_4]
push	edi
mov	edi, [ebp+arg_0]
mov	eax, [ebx+8]
add	ecx, edi
cmp	ecx, eax
jle	short loc_428017
sub	eax, edi
mov	[ebp+arg_4], eax

loc_428017:
mov	eax, [ebp+arg_4]
test	eax, eax
jle	short loc_42804B
push	esi
mov	esi, edi
shl	esi, 2
mov	[ebp+arg_0], eax

loc_428027:
mov	eax, [ebx+0Ch]
mov	ecx, [eax+esi]
test	ecx, ecx
mov	[ebp+Memory], ecx
jz	short loc_428042
call	sub_409444
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_428042:
add	esi, 4
dec	[ebp+arg_0]
jnz	short loc_428027
pop	esi

loc_42804B:
push	[ebp+arg_4]
mov	ecx, ebx
push	edi
call	sub_42847F
pop	edi
pop	ebx
leave
retn	8
sub_427FFB endp




; int __thiscall sub_42805C(void *Memory, char)
sub_42805C proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_427FC3
test	[esp+4+arg_0], 1
jz	short loc_428072
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_428072:
mov	eax, esi
pop	esi
retn	4
sub_42805C endp




sub_428078 proc	near
xor	eax, eax
cmp	[ecx], al
jz	short locret_428085

loc_42807E:
inc	eax
cmp	byte ptr [eax+ecx], 0
jnz	short loc_42807E

locret_428085:
retn
sub_428078 endp



; Attributes: bp-based frame

sub_428086 proc	near

MultiByteStr= byte ptr -8
WideCharStr= word ptr -2

push	ebp
mov	ebp, esp
push	ecx
push	ecx
push	ebx
xor	ebx, ebx
cmp	cx, bx
push	esi
mov	[ebp+WideCharStr], cx
jnz	short loc_42809D
xor	ax, ax
jmp	short loc_428103

loc_42809D:
movzx	eax, cx
push	eax		; lpsz
call	ds:CharUpperW
mov	esi, eax
cmp	esi, ebx
jnz	short loc_428100
call	ds:GetLastError
cmp	eax, 78h
jnz	short loc_428100
push	ebx		; lpUsedDefaultChar
push	ebx		; lpDefaultChar
lea	eax, [ebp+MultiByteStr]
push	4		; cbMultiByte
push	eax		; lpMultiByteStr
lea	eax, [ebp+WideCharStr]
push	1		; cchWideChar
push	eax		; lpWideCharStr
push	ebx		; dwFlags
push	ebx		; CodePage
call	ds:WideCharToMultiByte
mov	esi, eax
cmp	esi, ebx
jz	short loc_4280FA
cmp	esi, 4
jg	short loc_4280FA
lea	eax, [ebp+MultiByteStr]
mov	[ebp+esi+MultiByteStr],	bl
push	eax		; lpsz
call	ds:CharUpperA
lea	eax, [ebp+WideCharStr]
push	1		; cchWideChar
push	eax		; lpWideCharStr
lea	eax, [ebp+MultiByteStr]
push	esi		; cbMultiByte
push	eax		; lpMultiByteStr
push	ebx		; dwFlags
push	ebx		; CodePage
call	ds:MultiByteToWideChar

loc_4280FA:
mov	ax, [ebp+WideCharStr]
jmp	short loc_428103

loc_428100:
mov	ax, si

loc_428103:
pop	esi
pop	ebx
leave
retn
sub_428086 endp



; Attributes: bp-based frame

sub_428107 proc	near

var_30=	dword ptr -30h
Memory=	dword ptr -24h
lpsz= dword ptr	-18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_447118
call	__EH_prolog
sub	esp, 24h
push	ebx
push	esi
mov	esi, ecx
test	esi, esi
jnz	short loc_428123
xor	eax, eax
jmp	loc_4281A9

loc_428123:		; lpsz
push	esi
call	ds:CharUpperW
mov	ebx, eax
test	ebx, ebx
jnz	short loc_4281A7
call	ds:GetLastError
cmp	eax, 78h
jnz	short loc_4281A7
push	esi
lea	ecx, [ebp+Memory]
call	sub_403091
and	[ebp+var_4], ebx
push	ebx
lea	edx, [ebp+Memory]
lea	ecx, [ebp+lpsz]
call	sub_428673
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 2
call	sub_4284D8
pop	ecx
push	[ebp+lpsz]	; lpsz
call	ds:CharUpperA
lea	edx, [ebp+lpsz]
lea	ecx, [ebp+var_30]
push	ebx		; CodePage
call	sub_42850B
mov	eax, [eax]
lea	edx, [esi+2]
mov	cx, [eax]
mov	[esi], cx

loc_428180:
inc	eax
inc	eax
test	cx, cx
jz	short loc_428191
mov	cx, [eax]
mov	[edx], cx
inc	edx
inc	edx
jmp	short loc_428180

loc_428191:		; Memory
push	[ebp+var_30]
call	sub_4284D8
push	[ebp+lpsz]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
pop	ecx
jmp	short loc_4281A9

loc_4281A7:
mov	eax, ebx

loc_4281A9:
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_428107 endp



; Attributes: bp-based frame

sub_4281B7 proc	near

var_30=	dword ptr -30h
Memory=	dword ptr -24h
lpsz= dword ptr	-18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_447134
call	__EH_prolog
sub	esp, 24h
push	ebx
push	esi
mov	esi, ecx
test	esi, esi
jnz	short loc_4281D3
xor	eax, eax
jmp	loc_428259

loc_4281D3:		; lpsz
push	esi
call	ds:CharLowerW
mov	ebx, eax
test	ebx, ebx
jnz	short loc_428257
call	ds:GetLastError
cmp	eax, 78h
jnz	short loc_428257
push	esi
lea	ecx, [ebp+Memory]
call	sub_403091
and	[ebp+var_4], ebx
push	ebx
lea	edx, [ebp+Memory]
lea	ecx, [ebp+lpsz]
call	sub_428673
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 2
call	sub_4284D8
pop	ecx
push	[ebp+lpsz]	; lpsz
call	ds:CharLowerA
lea	edx, [ebp+lpsz]
lea	ecx, [ebp+var_30]
push	ebx		; CodePage
call	sub_42850B
mov	eax, [eax]
lea	edx, [esi+2]
mov	cx, [eax]
mov	[esi], cx

loc_428230:
inc	eax
inc	eax
test	cx, cx
jz	short loc_428241
mov	cx, [eax]
mov	[edx], cx
inc	edx
inc	edx
jmp	short loc_428230

loc_428241:		; Memory
push	[ebp+var_30]
call	sub_4284D8
push	[ebp+lpsz]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
pop	ecx
jmp	short loc_428259

loc_428257:
mov	eax, ebx

loc_428259:
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_4281B7 endp




sub_428267 proc	near
push	esi
mov	esi, edx

loc_42826A:
mov	al, [ecx]
mov	dl, [esi]
inc	ecx
inc	esi
cmp	al, dl
jb	short loc_42827C
ja	short loc_428281
test	al, al
jz	short loc_428286
jmp	short loc_42826A

loc_42827C:
or	eax, 0FFFFFFFFh
pop	esi
retn

loc_428281:
push	1
pop	eax
pop	esi
retn

loc_428286:
xor	eax, eax
pop	esi
retn
sub_428267 endp




sub_42828A proc	near
push	esi

loc_42828B:
mov	ax, [ecx]
mov	si, [edx]
inc	ecx
inc	ecx
inc	edx
inc	edx
cmp	ax, si
jb	short loc_4282A3
ja	short loc_4282A8
test	ax, ax
jz	short loc_4282AD
jmp	short loc_42828B

loc_4282A3:
or	eax, 0FFFFFFFFh
pop	esi
retn

loc_4282A8:
push	1
pop	eax
pop	esi
retn

loc_4282AD:
xor	eax, eax
pop	esi
retn
sub_42828A endp




sub_4282B1 proc	near

var_4= dword ptr -4

push	ecx
push	ebx
push	ebp
push	esi
push	edi
mov	ebp, edx
mov	ebx, ecx

loc_4282BA:
mov	si, [ebx]
mov	di, [ebp+0]
inc	ebx
inc	ebx
inc	ebp
inc	ebp
cmp	si, di
jz	short loc_4282E5
mov	ecx, esi
call	sub_428086
mov	ecx, edi
mov	[esp+14h+var_4], eax
call	sub_428086
cmp	word ptr [esp+14h+var_4], ax
jb	short loc_4282EC
ja	short loc_4282F1

loc_4282E5:
test	si, si
jz	short loc_4282F6
jmp	short loc_4282BA

loc_4282EC:
or	eax, 0FFFFFFFFh
jmp	short loc_4282F8

loc_4282F1:
push	1
pop	eax
jmp	short loc_4282F8

loc_4282F6:
xor	eax, eax

loc_4282F8:
pop	edi
pop	esi
pop	ebp
pop	ebx
pop	ecx
retn
sub_4282B1 endp




sub_4282FE proc	near
mov	dword ptr [ecx], offset	off_44B520
jmp	$+5

loc_428309:
push	esi
mov	esi, ecx
call	sub_428327
push	dword ptr [esi+0Ch] ; Memory
call	sub_4284D8
xor	eax, eax
pop	ecx
mov	[esi+4], eax
mov	[esi+8], eax
mov	[esi+0Ch], eax
pop	esi
retn
sub_4282FE endp




sub_428327 proc	near
push	0
call	sub_42833C
retn
sub_428327 endp




sub_42832F proc	near
mov	edx, [ecx+8]
mov	eax, [ecx]
dec	edx
push	1
push	edx
call	dword ptr [eax+4]
retn
sub_42832F endp




sub_42833C proc	near

arg_0= dword ptr  4

mov	edx, [ecx+8]
mov	eax, [ecx]
sub	edx, [esp+arg_0]
push	edx
push	[esp+4+arg_0]
call	dword ptr [eax+4]
retn	4
sub_42833C endp




sub_428350 proc	near
mov	edx, [ecx+4]
cmp	[ecx+8], edx
jnz	short locret_428377
push	1
cmp	edx, 40h
pop	eax
jl	short loc_428367
mov	eax, edx
shr	eax, 2
jmp	short loc_42836F

loc_428367:
cmp	edx, 8
jl	short loc_42836F
push	8
pop	eax

loc_42836F:
add	edx, eax
push	edx
call	sub_428378

locret_428377:
retn
sub_428350 endp



; Attributes: bp-based frame

sub_428378 proc	near

arg_0= dword ptr  8

push	ebp
mov	ebp, esp
push	ebx
mov	ebx, [ebp+arg_0]
push	esi
mov	esi, ecx
push	edi
cmp	ebx, [esi+4]
jz	loc_428423
cmp	ebx, 80000000h
jb	short loc_4283A9
lea	eax, [ebp+arg_0]
push	offset unk_44D120
push	eax
mov	[ebp+arg_0], 100EC1h
call	_CxxThrowException

loc_4283A9:
mov	edi, [esi+10h]
xor	edx, edx
mov	ecx, edi
imul	ecx, ebx
mov	eax, ecx
div	edi
cmp	eax, ebx
jz	short loc_4283D0
lea	eax, [ebp+arg_0]
push	offset unk_44D120
push	eax
mov	[ebp+arg_0], 100EC2h
call	_CxxThrowException

loc_4283D0:
xor	edi, edi
test	ecx, ecx
jbe	short loc_428414
push	ecx		; Size
call	sub_4284B1
mov	edi, eax
pop	ecx
test	edi, edi
jnz	short loc_4283F8
lea	eax, [ebp+arg_0]
push	offset unk_44D120
push	eax
mov	[ebp+arg_0], 100EC3h
call	_CxxThrowException

loc_4283F8:
mov	eax, [esi+8]
cmp	eax, ebx
jl	short loc_428401
mov	eax, ebx

loc_428401:
mov	ecx, [esi+10h]
imul	ecx, eax
push	ecx		; Size
push	dword ptr [esi+0Ch] ; Src
push	edi		; Dst
call	memcpy
add	esp, 0Ch

loc_428414:		; Memory
push	dword ptr [esi+0Ch]
call	sub_4284D8
pop	ecx
mov	[esi+0Ch], edi
mov	[esi+4], ebx

loc_428423:
pop	edi
pop	esi
pop	ebx
pop	ebp
retn	4
sub_428378 endp




sub_42842A proc	near
push	dword ptr [ecx+8]
call	sub_428378
retn
sub_42842A endp




sub_428433 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [ecx+10h]
mov	edx, [ecx+0Ch]
mov	ecx, [ecx+8]
sub	ecx, [esp+arg_4]
imul	ecx, eax
push	ecx		; Size
mov	ecx, eax
imul	ecx, [esp+4+arg_4]
imul	eax, [esp+4+arg_0]
add	ecx, edx
add	eax, edx
push	ecx		; Src
push	eax		; Dst
call	ds:memmove
add	esp, 0Ch
retn	8
sub_428433 endp




sub_428462 proc	near

arg_0= dword ptr  4

push	esi
mov	esi, ecx
call	sub_428350
mov	eax, [esp+4+arg_0]
mov	ecx, esi
push	eax
inc	eax
push	eax
call	sub_428433
inc	dword ptr [esi+8]
pop	esi
retn	4
sub_428462 endp




sub_42847F proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	esi
mov	esi, [esp+4+arg_4]
push	edi
mov	edi, ecx
mov	ecx, [esp+8+arg_0]
mov	eax, [edi+8]
lea	edx, [ecx+esi]
cmp	edx, eax
jle	short loc_428499
sub	eax, ecx
mov	esi, eax

loc_428499:
test	esi, esi
jle	short loc_4284AC
lea	eax, [ecx+esi]
push	eax
push	ecx
mov	ecx, edi
call	sub_428433
sub	[edi+8], esi

loc_4284AC:
pop	edi
pop	esi
retn	8
sub_42847F endp



; Attributes: bp-based frame

; int __cdecl sub_4284B1(size_t	Size)
sub_4284B1 proc	near

Size= dword ptr	 8

push	ebp
mov	ebp, esp
push	[ebp+Size]	; Size
call	ds:malloc
test	eax, eax
pop	ecx
jnz	short loc_4284D6
mov	al, byte ptr [ebp+Size+3]
push	offset unk_4541A8
mov	byte ptr [ebp+Size+3], al
lea	eax, [ebp+Size+3]
push	eax
call	_CxxThrowException

loc_4284D6:
pop	ebp
retn
sub_4284B1 endp




; int __cdecl sub_4284D8(void *Memory)
sub_4284D8 proc	near

Memory=	dword ptr  4

push	[esp+Memory]	; Memory
call	ds:free
pop	ecx
retn
sub_4284D8 endp




; int __stdcall	sub_4284E4(unsigned int	Seed)
sub_4284E4 proc	near

Seed= dword ptr	 4

push	[esp+Seed]	; Seed
call	ds:srand
pop	ecx
retn	4
sub_4284E4 endp




sub_4284F2 proc	near
push	esi
mov	esi, ecx
call	ds:GetTickCount
push	eax		; Seed
mov	ecx, esi
call	sub_4284E4
pop	esi
retn
sub_4284F2 endp

; [00000006 BYTES: COLLAPSED FUNCTION rand. PRESS KEYPAD CTRL-"+" TO EXPAND]


; Attributes: bp-based frame

; int __stdcall	sub_42850B(UINT	CodePage)
sub_42850B proc	near

Memory=	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_4= dword ptr -4
CodePage= dword	ptr  8

mov	eax, offset loc_447148
call	__EH_prolog
sub	esp, 14h
push	ebx
push	esi
mov	[ebp+var_10], ecx
push	edi
xor	ebx, ebx
mov	esi, edx
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+var_14], ebx
mov	[ebp+Memory], ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
call	sub_403396
mov	edi, [esi+4]
mov	[ebp+var_4], ebx
cmp	edi, ebx
jz	short loc_428589
cmp	edi, [ebp+var_18]
jl	short loc_428550
push	edi
lea	ecx, [ebp+Memory]
call	sub_403396

loc_428550:
mov	eax, [esi+4]
mov	esi, [esi]
inc	edi
push	edi		; cchWideChar
push	[ebp+Memory]	; lpWideCharStr
push	eax		; cbMultiByte
push	esi		; lpMultiByteStr
push	ebx		; dwFlags
push	[ebp+CodePage]	; CodePage
call	ds:MultiByteToWideChar
cmp	eax, ebx
jnz	short loc_42857F
lea	eax, [ebp+CodePage]
push	offset unk_44D120
push	eax
mov	[ebp+CodePage],	44E74h
call	_CxxThrowException

loc_42857F:
mov	ecx, [ebp+Memory]
mov	[ecx+eax*2], bx
mov	[ebp+var_1C], eax

loc_428589:
mov	ecx, [ebp+var_10]
lea	eax, [ebp+Memory]
push	eax
call	sub_4030F2
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_10]
pop	ecx
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_42850B endp



; Attributes: bp-based frame

; int __stdcall	sub_4285B2(UINT	CodePage, const	CHAR DefaultChar, int)
sub_4285B2 proc	near

Memory=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
UsedDefaultChar= dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
CodePage= dword	ptr  8
DefaultChar= byte ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_44715C
call	__EH_prolog
sub	esp, 18h
push	ebx
mov	[ebp+var_10], ecx
push	esi
xor	ebx, ebx
mov	esi, edx
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+var_18], ebx
mov	[ebp+Memory], ebx
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
call	sub_4034E3
mov	eax, [ebp+arg_8]
mov	[ebp+var_4], ebx
mov	[eax], bl
mov	eax, [esi+4]
cmp	eax, ebx
jz	short loc_42864B
push	edi
lea	edi, [eax+eax]
cmp	edi, [ebp+var_1C]
jl	short loc_4285FF
push	edi
lea	ecx, [ebp+Memory]
call	sub_4034E3

loc_4285FF:
lea	ecx, [ebp+UsedDefaultChar]
mov	eax, [esi+4]
mov	esi, [esi]
push	ecx		; lpUsedDefaultChar
lea	ecx, [ebp+DefaultChar]
inc	edi
push	ecx		; lpDefaultChar
push	edi		; cbMultiByte
push	[ebp+Memory]	; lpMultiByteStr
push	eax		; cchWideChar
push	esi		; lpWideCharStr
push	ebx		; dwFlags
push	[ebp+CodePage]	; CodePage
call	ds:WideCharToMultiByte
cmp	[ebp+UsedDefaultChar], ebx
mov	edx, [ebp+arg_8]
pop	edi
setnz	cl
cmp	eax, ebx
mov	[edx], cl
jnz	short loc_428642
lea	eax, [ebp+arg_8]
push	offset unk_44D120
push	eax
mov	[ebp+arg_8], 44E75h
call	_CxxThrowException

loc_428642:
mov	ecx, [ebp+Memory]
mov	[eax+ecx], bl
mov	[ebp+var_20], eax

loc_42864B:
mov	ecx, [ebp+var_10]
lea	eax, [ebp+Memory]
push	eax
call	sub_4128EF
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_10]
pop	ecx
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_4285B2 endp



; Attributes: bp-based frame

sub_428673 proc	near

var_4= dword ptr -4
arg_3= dword ptr  0Bh

push	ebp
mov	ebp, esp
push	ecx
and	[ebp+var_4], 0
lea	eax, [ebp+arg_3]
push	esi
push	eax		; int
push	5Fh		; DefaultChar
mov	esi, ecx
push	dword ptr [ebp+8] ; CodePage
call	sub_4285B2
mov	eax, esi
pop	esi
leave
retn	4
sub_428673 endp



; Attributes: bp-based frame

sub_428693 proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ecx
push	ebx
push	esi
mov	esi, ecx
push	edi
xor	ecx, ecx
mov	[ebp+var_8], edx
xor	edi, edi

loc_4286A4:
mov	ax, [esi]
cmp	ax, 30h
jb	short loc_4286D9
cmp	ax, 39h
ja	short loc_4286D9
movzx	eax, ax
sub	eax, 30h
push	0
cdq
mov	ebx, eax
push	0Ah
push	edi
mov	[ebp+var_4], ebx
push	ecx
mov	ebx, edx
call	__allmul
mov	ecx, [ebp+var_4]
add	ecx, eax
adc	ebx, edx
inc	esi
mov	edi, ebx
inc	esi
jmp	short loc_4286A4

loc_4286D9:
mov	eax, [ebp+var_8]
test	eax, eax
jz	short loc_4286E2
mov	[eax], esi

loc_4286E2:
mov	edx, edi
pop	edi
pop	esi
mov	eax, ecx
pop	ebx
leave
retn
sub_428693 endp



; Attributes: bp-based frame

sub_4286EB proc	near

var_50=	dword ptr -50h
var_44=	dword ptr -44h
var_38=	dword ptr -38h
Memory=	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_4= dword ptr -4

mov	eax, offset loc_447188
call	__EH_prolog
sub	esp, 44h
push	esi
mov	esi, ecx
push	edi
mov	ecx, edx
mov	[ebp+var_20], edx
call	sub_428327
xor	edi, edi
mov	[ebp+var_10], edi

loc_42870B:
lea	edx, [ebp+var_10]
mov	ecx, esi
call	sub_428973
test	al, al
jz	loc_428879
lea	ecx, [ebp+var_50]
call	sub_403079
lea	ecx, [ebp+var_44]
mov	[ebp+var_4], edi
call	sub_403079
mov	eax, [esi]
lea	ecx, [ebp+var_14]
push	ecx
mov	ecx, [ebp+var_10]
mov	[ebp+var_4], 1
lea	edx, [eax+ecx]
lea	ecx, [ebp+var_38]
call	sub_4288CD
lea	edx, [ebp+var_50]
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 2
call	sub_428A33
test	al, al
jz	loc_42887D
mov	eax, [ebp+var_14]
cmp	eax, edi
jz	loc_42887D
add	[ebp+var_10], eax
lea	edx, [ebp+var_10]
mov	ecx, esi
call	sub_428973
test	al, al
jz	loc_42887D
mov	eax, [esi]
mov	ecx, [ebp+var_10]
cmp	byte ptr [eax+ecx], 3Dh
jnz	loc_42887D
inc	[ebp+var_10]
lea	edx, [ebp+var_10]
mov	ecx, esi
call	sub_428973
test	al, al
jz	loc_42887D
mov	eax, [esi]
mov	ecx, [ebp+var_10]
cmp	byte ptr [eax+ecx], 22h
jnz	loc_42887D
inc	[ebp+var_10]
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], edi
mov	[ebp+var_28], edi
mov	[ebp+var_24], edi
call	sub_4034E3
mov	byte ptr [ebp+var_4], 3

loc_4287CF:
mov	eax, [esi+4]
cmp	[ebp+var_10], eax
jge	loc_42889A
mov	eax, [esi]
mov	ecx, [ebp+var_10]
mov	cl, [eax+ecx]
inc	[ebp+var_10]
cmp	cl, 22h
mov	byte ptr [ebp+var_1C], cl
jz	short loc_42883B
cmp	cl, 5Ch
jnz	short loc_428836
mov	ecx, [ebp+var_10]
mov	al, [eax+ecx]
inc	[ebp+var_10]
cmp	al, 22h
mov	byte ptr [ebp+var_18], al
jz	short loc_42882A
cmp	al, 5Ch
jz	short loc_428826
cmp	al, 6Eh
jz	short loc_428822
cmp	al, 74h
jz	short loc_42881E
push	5Ch
lea	ecx, [ebp+Memory]
call	sub_412848
push	[ebp+var_18]
jmp	short loc_42882C

loc_42881E:
push	9
jmp	short loc_42882C

loc_428822:
push	0Ah
jmp	short loc_42882C

loc_428826:
push	5Ch
jmp	short loc_42882C

loc_42882A:
push	22h

loc_42882C:
lea	ecx, [ebp+Memory]
call	sub_412848
jmp	short loc_4287CF

loc_428836:
push	[ebp+var_1C]
jmp	short loc_42882C

loc_42883B:
lea	edx, [ebp+var_44]
lea	ecx, [ebp+Memory]
call	sub_428A33
test	al, al
jz	short loc_42889A
mov	ecx, [ebp+var_20]
lea	eax, [ebp+var_50]
push	eax
call	sub_4289D2
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_38]	; Memory
call	sub_4284D8
or	[ebp+var_4], 0FFFFFFFFh
pop	ecx
pop	ecx
lea	ecx, [ebp+var_50]
call	sub_409444
jmp	loc_42870B

loc_428879:
mov	al, 1
jmp	short loc_4288BF

loc_42887D:		; Memory
push	[ebp+var_38]
call	sub_4284D8
push	[ebp+var_44]	; Memory
call	sub_4284D8
push	[ebp+var_50]	; Memory
call	sub_4284D8
add	esp, 0Ch
jmp	short loc_4288BD

loc_42889A:		; Memory
push	[ebp+Memory]
call	sub_4284D8
push	[ebp+var_38]	; Memory
call	sub_4284D8
push	[ebp+var_44]	; Memory
call	sub_4284D8
push	[ebp+var_50]	; Memory
call	sub_4284D8
add	esp, 10h

loc_4288BD:
xor	al, al

loc_4288BF:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_4286EB endp



; Attributes: bp-based frame

sub_4288CD proc	near

Memory=	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_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_44719C
call	__EH_prolog
sub	esp, 14h
push	ebx
push	esi
mov	[ebp+var_10], ecx
push	edi
xor	ebx, ebx
mov	edi, edx
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+var_14], ebx
mov	[ebp+Memory], ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
call	sub_4034E3
mov	esi, [ebp+arg_0]
mov	[ebp+var_4], ebx
mov	[esi], ebx
mov	bl, [edi]

loc_428904:
mov	cl, bl
mov	byte ptr [ebp+arg_0], bl
call	sub_428954
test	al, al
jnz	short loc_42892B
cmp	bl, 3Dh
jz	short loc_42892B
push	[ebp+arg_0]
lea	ecx, [ebp+Memory]
call	sub_412848
inc	dword ptr [esi]
mov	eax, [esi]
mov	bl, [eax+edi]
jmp	short loc_428904

loc_42892B:
mov	ecx, [ebp+var_10]
lea	eax, [ebp+Memory]
push	eax
call	sub_4128EF
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_10]
pop	ecx
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_4288CD endp




sub_428954 proc	near
cmp	cl, 20h
jz	short loc_42896F
cmp	cl, 0Ah
jz	short loc_42896F
cmp	cl, 0Dh
jz	short loc_42896F
test	cl, cl
jz	short loc_42896F
cmp	cl, 9
jz	short loc_42896F
xor	eax, eax
retn

loc_42896F:
push	1
pop	eax
retn
sub_428954 endp




sub_428973 proc	near
push	ebx
push	esi
push	edi
mov	esi, edx
mov	edi, ecx

loc_42897A:
mov	eax, [esi]
cmp	eax, [edi+4]
jge	short loc_4289AD
mov	eax, [edi]
mov	ecx, [esi]
mov	bl, [eax+ecx]
mov	cl, bl
call	sub_428954
test	al, al
jnz	short loc_4289A5
cmp	bl, 3Bh
jnz	short loc_4289A9
mov	edx, esi
mov	ecx, edi
call	sub_4289B3
test	al, al
jz	short loc_4289AD

loc_4289A5:
inc	dword ptr [esi]
jmp	short loc_42897A

loc_4289A9:
mov	al, 1
jmp	short loc_4289AF

loc_4289AD:
xor	al, al

loc_4289AF:
pop	edi
pop	esi
pop	ebx
retn
sub_428973 endp




sub_4289B3 proc	near
mov	eax, [edx]
push	esi

loc_4289B6:
cmp	eax, [ecx+4]
jge	short loc_4289CE
mov	eax, [edx]
mov	esi, [ecx]
cmp	byte ptr [esi+eax], 0Ah
jz	short loc_4289CA
inc	eax
mov	[edx], eax
jmp	short loc_4289B6

loc_4289CA:
mov	al, 1
pop	esi
retn

loc_4289CE:
xor	al, al
pop	esi
retn
sub_4289B3 endp



; Attributes: bp-based frame

sub_4289D2 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4471BA
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	ebx, ecx
push	18h		; Size
call	sub_4284B1
mov	esi, eax
pop	ecx
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
test	esi, esi
jz	short loc_428A15
push	edi
mov	edi, [ebp+arg_0]
push	edi
mov	ecx, esi
call	sub_4030F2
add	edi, 0Ch
lea	ecx, [esi+0Ch]
push	edi
mov	byte ptr [ebp+var_4], 1
call	sub_4030F2
pop	edi
jmp	short loc_428A17

loc_428A15:
xor	esi, esi

loc_428A17:
or	[ebp+var_4], 0FFFFFFFFh
push	esi
mov	ecx, ebx
call	sub_429907
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_4289D2 endp



; Attributes: bp-based frame

sub_428A33 proc	near

var_4= dword ptr -4

push	ebp
mov	ebp, esp
push	ecx
push	ebx
push	esi
push	edi
mov	esi, edx
mov	edi, ecx
xor	eax, eax
mov	ecx, [esi]
mov	[esi+4], eax
lea	edx, [ebp+var_4]
mov	[ecx], ax
push	dword ptr [edi+4]
xor	ecx, ecx
mov	[ebp+var_4], eax
push	dword ptr [edi]
call	sub_428A98
mov	eax, [ebp+var_4]
cmp	eax, [esi+8]
jl	short loc_428A6A
push	eax
mov	ecx, esi
call	sub_403396

loc_428A6A:
mov	eax, [edi+4]
mov	ebx, [esi]
mov	edi, [edi]
push	eax
push	edi
lea	edx, [ebp+var_4]
mov	ecx, ebx
call	sub_428A98
mov	edi, eax
mov	eax, [ebp+var_4]
mov	ecx, esi
and	word ptr [ebx+eax*2], 0
call	sub_428D08
test	edi, edi
pop	edi
pop	esi
setnz	al
pop	ebx
leave
retn
sub_428A33 endp



; Attributes: bp-based frame

sub_428A98 proc	near

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	ebx
push	esi
push	edi
xor	edi, edi
cmp	[ebp+arg_4], edi
mov	[ebp+var_C], edx
mov	[ebp+var_8], ecx
mov	[ebp+var_4], edi
jz	loc_428B75
lea	edx, [ecx+2]

loc_428AB8:
mov	eax, [ebp+arg_0]
mov	al, [edi+eax]
inc	edi
cmp	al, 80h
jnb	short loc_428ADC
cmp	[ebp+var_8], 0
jz	short loc_428AD0
movzx	ax, al

loc_428ACD:
mov	[ecx], ax

loc_428AD0:
inc	[ebp+var_4]
inc	ecx
inc	ecx
inc	edx
inc	edx
jmp	loc_428B6C

loc_428ADC:
cmp	al, 0C0h
jb	loc_428B7A
push	1
pop	esi

loc_428AE7:
cmp	al, ds:byte_44C4F8[esi]
jb	short loc_428AF5
inc	esi
cmp	esi, 5
jl	short loc_428AE7

loc_428AF5:
movzx	ebx, ds:byte_44C4F7[esi]
movzx	eax, al
sub	eax, ebx

loc_428B01:
cmp	edi, [ebp+arg_4]
jz	short loc_428B28
mov	ebx, [ebp+arg_0]
mov	bl, [edi+ebx]
inc	edi
cmp	bl, 80h
jb	short loc_428B28
cmp	bl, 0C0h
jnb	short loc_428B28
movzx	ebx, bl
sub	ebx, 80h
shl	eax, 6
or	eax, ebx
dec	esi
jnz	short loc_428B01

loc_428B28:
mov	esi, 10000h
cmp	eax, esi
jnb	short loc_428B39
cmp	[ebp+var_8], 0
jz	short loc_428AD0
jmp	short loc_428ACD

loc_428B39:
sub	eax, esi
cmp	eax, 100000h
jnb	short loc_428B7A
cmp	[ebp+var_8], 0
jz	short loc_428B62
mov	esi, eax
and	ax, 3FFh
shr	esi, 0Ah
sub	esi, 2800h
sub	eax, 2400h
mov	[ecx], si
mov	[edx], ax

loc_428B62:
add	[ebp+var_4], 2
add	ecx, 4
add	edx, 4

loc_428B6C:
cmp	edi, [ebp+arg_4]
jnz	loc_428AB8

loc_428B75:
push	1
pop	eax
jmp	short loc_428B7C

loc_428B7A:
xor	eax, eax

loc_428B7C:
mov	edx, [ebp+var_C]
mov	ecx, [ebp+var_4]
pop	edi
pop	esi
mov	[edx], ecx
pop	ebx
leave
retn	8
sub_428A98 endp



; Attributes: bp-based frame

sub_428B8B proc	near

var_4= dword ptr -4

push	ebp
mov	ebp, esp
push	ecx
push	ebx
push	esi
mov	esi, edx
push	edi
mov	edi, ecx
lea	edx, [ebp+var_4]
mov	eax, [esi]
and	dword ptr [esi+4], 0
xor	ecx, ecx
and	byte ptr [eax],	0
push	dword ptr [edi+4]
and	[ebp+var_4], 0
push	dword ptr [edi]
call	sub_428BEF
mov	eax, [ebp+var_4]
cmp	eax, [esi+8]
jl	short loc_428BC2
push	eax
mov	ecx, esi
call	sub_4034E3

loc_428BC2:
mov	eax, [edi+4]
mov	ebx, [esi]
mov	edi, [edi]
push	eax
push	edi
lea	edx, [ebp+var_4]
mov	ecx, ebx
call	sub_428BEF
mov	edi, eax
mov	eax, [ebp+var_4]
mov	ecx, esi
and	byte ptr [ebx+eax], 0
call	sub_428D27
test	edi, edi
pop	edi
pop	esi
setnz	al
pop	ebx
leave
retn
sub_428B8B endp



; Attributes: bp-based frame

sub_428BEF proc	near

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
mov	eax, [ebp+arg_4]
push	ebx
push	esi
push	edi
xor	edi, edi
mov	[ebp+var_C], edx
cmp	eax, edi
mov	[ebp+var_8], ecx
mov	[ebp+var_4], edi
jz	loc_428CF5
mov	ebx, [ebp+arg_0]

loc_428C11:
movzx	edx, word ptr [ebx]
inc	[ebp+var_4]
inc	ebx
inc	ebx
cmp	edx, 80h
mov	[ebp+arg_0], ebx
jnb	short loc_428C34
mov	eax, [ebp+var_8]
test	eax, eax
jz	short loc_428C2E
mov	[edi+eax], dl

loc_428C2E:
inc	edi
jmp	loc_428CE9

loc_428C34:
cmp	edx, 0D800h
jb	short loc_428C8E
cmp	edx, 0E000h
jnb	short loc_428C8E
mov	ecx, 0DC00h
cmp	edx, ecx
jnb	loc_428CFA
cmp	[ebp+var_4], eax
jz	loc_428CFA
movzx	eax, word ptr [ebx]
inc	[ebp+var_4]
inc	ebx
inc	ebx
cmp	eax, ecx
mov	[ebp+arg_0], ebx
jb	loc_428CFA
cmp	eax, 0E000h
jnb	loc_428CFA
add	edx, 3F2800h
add	eax, 0FFFF2400h
shl	edx, 0Ah
or	edx, eax
add	edx, 10000h

loc_428C8E:
push	1
pop	eax
push	0Bh
pop	ecx

loc_428C94:
push	1
pop	esi
shl	esi, cl
cmp	edx, esi
jb	short loc_428CA6
add	ecx, 5
inc	eax
cmp	ecx, 1Fh
jb	short loc_428C94

loc_428CA6:
mov	esi, [ebp+var_8]
test	esi, esi
jz	short loc_428CBF
lea	ecx, [eax+eax*2]
mov	ebx, edx
shl	ecx, 1
shr	ebx, cl
add	bl, ds:byte_44C4F7[eax]
mov	[edi+esi], bl

loc_428CBF:
lea	esi, [eax+eax*2]
inc	edi
shl	esi, 1

loc_428CC5:
dec	eax
sub	esi, 6
cmp	[ebp+var_8], 0
jz	short loc_428CE1
mov	ebx, edx
mov	ecx, esi
shr	ebx, cl
mov	ecx, [ebp+var_8]
and	bl, 3Fh
add	bl, 80h
mov	[edi+ecx], bl

loc_428CE1:
inc	edi
test	eax, eax
jnz	short loc_428CC5
mov	ebx, [ebp+arg_0]

loc_428CE9:
mov	eax, [ebp+arg_4]
cmp	[ebp+var_4], eax
jnz	loc_428C11

loc_428CF5:
push	1
pop	eax
jmp	short loc_428CFC

loc_428CFA:
xor	eax, eax

loc_428CFC:
mov	ecx, [ebp+var_C]
mov	[ecx], edi
pop	edi
pop	esi
pop	ebx
leave
retn	8
sub_428BEF endp




sub_428D08 proc	near
mov	eax, [ecx]
xor	edx, edx
cmp	[eax], dx
jz	short loc_428D1E
push	esi
mov	esi, eax

loc_428D14:
inc	edx
inc	esi
inc	esi
cmp	word ptr [esi],	0
jnz	short loc_428D14
pop	esi

loc_428D1E:
and	word ptr [eax+edx*2], 0
mov	[ecx+4], edx
retn
sub_428D08 endp




sub_428D27 proc	near
mov	eax, [ecx]
xor	edx, edx
cmp	[eax], dl
jz	short loc_428D36

loc_428D2F:
inc	edx
cmp	byte ptr [eax+edx], 0
jnz	short loc_428D2F

loc_428D36:
and	byte ptr [eax+edx], 0
mov	[ecx+4], edx
retn
sub_428D27 endp

call	sub_428D48
jmp	loc_428D58



sub_428D48 proc	near
push	offset a?_2	; "?*"
mov	ecx, offset dword_45D970
call	sub_403091
retn
sub_428D48 endp


loc_428D58:
push	offset loc_428D64
call	_atexit
pop	ecx
retn

loc_428D64:
push	dword_45D970
call	sub_4284D8
pop	ecx
retn
call	sub_428D7B
jmp	loc_428D8B



sub_428D7B proc	near
push	offset unk_45C694
mov	ecx, offset dword_45D960
call	sub_403091
retn
sub_428D7B endp


loc_428D8B:
push	offset loc_428D97
call	_atexit
pop	ecx
retn

loc_428D97:
push	dword_45D960
call	sub_4284D8
pop	ecx
retn



sub_428DA4 proc	near
cmp	byte_45D97C, 0
mov	edx, [edx]
mov	ecx, [ecx]
jz	short loc_428DB6
jmp	sub_42828A

loc_428DB6:
jmp	sub_4282B1
sub_428DA4 endp



; Attributes: bp-based frame

sub_428DBB proc	near

Memory=	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_4= dword ptr -4

mov	eax, offset loc_4471CC
call	__EH_prolog
sub	esp, 14h
push	ebx
push	esi
mov	esi, ecx
push	edi
mov	ecx, edx
mov	[ebp+var_14], edx
call	sub_428327
xor	ebx, ebx
lea	ecx, [ebp+Memory]
push	3
mov	[ebp+Memory], ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
call	sub_403396
mov	edi, [esi+4]
mov	[ebp+var_4], ebx
cmp	edi, ebx
jz	short loc_428E44
mov	[ebp+var_10], ebx
jle	short loc_428E38

loc_428DFB:
mov	eax, [esi]
mov	ecx, [ebp+var_10]
mov	ax, [eax+ecx*2]
cmp	ax, 5Ch
jz	short loc_428E10
cmp	ax, 2Fh
jnz	short loc_428E27

loc_428E10:
mov	ecx, [ebp+var_14]
lea	eax, [ebp+Memory]
push	eax
call	sub_4032B4
mov	eax, [ebp+Memory]
mov	[ebp+var_1C], ebx
mov	[eax], bx
jmp	short loc_428E30

loc_428E27:
push	eax
lea	ecx, [ebp+Memory]
call	sub_40316A

loc_428E30:
inc	[ebp+var_10]
cmp	[ebp+var_10], edi
jl	short loc_428DFB

loc_428E38:
mov	ecx, [ebp+var_14]
lea	eax, [ebp+Memory]
push	eax
call	sub_4032B4

loc_428E44:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_428DBB endp




sub_428E5C proc	near

var_4= dword ptr -4

push	ecx
mov	eax, [edx+4]
and	[esp+4+var_4], 0
push	esi
push	edi
dec	eax
mov	edi, ecx
js	short loc_428E87
mov	ecx, [edx]
lea	ecx, [ecx+eax*2]

loc_428E71:
mov	si, [ecx]
cmp	si, 5Ch
jz	short loc_428E87
cmp	si, 2Fh
jz	short loc_428E87
dec	eax
dec	ecx
dec	ecx
test	eax, eax
jge	short loc_428E71

loc_428E87:
inc	eax
mov	ecx, edx
push	eax
push	edi
call	sub_403228
mov	eax, edi
pop	edi
pop	esi
pop	ecx
retn
sub_428E5C endp




sub_428E97 proc	near

var_4= dword ptr -4

push	ecx
mov	eax, [edx+4]
and	[esp+4+var_4], 0
push	esi
push	edi
dec	eax
mov	edi, ecx
js	short loc_428EC2
mov	ecx, [edx]
lea	ecx, [ecx+eax*2]

loc_428EAC:
mov	si, [ecx]
cmp	si, 5Ch
jz	short loc_428EC2
cmp	si, 2Fh
jz	short loc_428EC2
dec	eax
dec	ecx
dec	ecx
test	eax, eax
jge	short loc_428EAC

loc_428EC2:
inc	eax
mov	ecx, edx
push	eax
push	edi
call	sub_405246
mov	eax, edi
pop	edi
pop	esi
pop	ecx
retn
sub_428E97 endp




sub_428ED2 proc	near
mov	edx, [edx]
mov	ecx, [ecx]
jmp	$+5
sub_428ED2 endp




sub_428EDB proc	near

var_4= dword ptr -4

push	ecx
push	ebx
mov	ebx, ecx
push	ebp
push	esi
mov	si, [ebx]
mov	ebp, edx
push	edi
mov	di, [ebp+0]
test	si, si
jz	short loc_428F59
lea	eax, [ebx+2]
mov	[esp+14h+var_4], eax

loc_428EF7:
cmp	si, 2Ah
jnz	short loc_428F13
mov	ecx, [esp+14h+var_4]
mov	edx, ebp
call	sub_428EDB
test	al, al
jnz	short loc_428F63
test	di, di
jz	short loc_428F67
jmp	short loc_428F4B

loc_428F13:
cmp	si, 3Fh
jnz	short loc_428F20
test	di, di
jz	short loc_428F67
jmp	short loc_428F44

loc_428F20:
cmp	si, di
jz	short loc_428F44
cmp	byte_45D97C, 0
jnz	short loc_428F67
mov	ecx, edi
call	sub_428086
mov	ecx, esi
mov	di, ax
call	sub_428086
cmp	ax, di
jnz	short loc_428F67

loc_428F44:
inc	ebx
inc	ebx
add	[esp+14h+var_4], 2

loc_428F4B:
mov	si, [ebx]
inc	ebp
inc	ebp
test	si, si
mov	di, [ebp+0]
jnz	short loc_428EF7

loc_428F59:
xor	eax, eax
test	di, di
setz	al
jmp	short loc_428F69

loc_428F63:
mov	al, 1
jmp	short loc_428F69

loc_428F67:
xor	al, al

loc_428F69:
pop	edi
pop	esi
pop	ebp
pop	ebx
pop	ecx
retn
sub_428EDB endp



; Attributes: bp-based frame

sub_428F6F proc	near

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

push	ebp
mov	ebp, esp
push	ecx
cmp	byte ptr [ebp+arg_4], 0
push	ebx
push	esi
push	edi
mov	esi, ecx
jnz	short loc_428F88
cmp	byte ptr [esi+16h], 0
jz	loc_42902B

loc_428F88:
mov	eax, [ebp+arg_0]
mov	edx, [esi+8]
mov	eax, [eax+8]
sub	eax, edx
js	loc_42902B
xor	edi, edi
cmp	byte ptr [ebp+arg_4], 0
mov	[ebp+var_4], edi
jz	short loc_428FC9
mov	cl, [esi+16h]
test	cl, cl
jnz	short loc_428FB4
cmp	[esi+14h], cl
jnz	short loc_428FB4
cmp	eax, edi
jnz	short loc_42902B

loc_428FB4:
cmp	byte ptr [esi+15h], 0
jnz	short loc_428FBE
cmp	eax, edi
jz	short loc_42902B

loc_428FBE:
test	cl, cl
jnz	short loc_428FC9
cmp	[esi+14h], cl
jz	short loc_428FE2
mov	edi, eax

loc_428FC9:
cmp	byte ptr [esi+14h], 0
jz	short loc_428FE2
cmp	byte ptr [ebp+arg_4], 0
mov	[ebp+var_4], eax
jz	short loc_428FE2
cmp	byte ptr [esi+15h], 0
jnz	short loc_428FE2
dec	eax
mov	[ebp+var_4], eax

loc_428FE2:
cmp	edi, [ebp+var_4]
mov	eax, edi
mov	[ebp+arg_4], eax
jg	short loc_42902B

loc_428FEC:
xor	edi, edi
test	edx, edx
jle	short loc_429018
mov	ebx, eax
shl	ebx, 2

loc_428FF7:
mov	eax, [ebp+arg_0]
mov	eax, [eax+0Ch]
mov	edx, [eax+ebx]
mov	eax, [esi+0Ch]
mov	ecx, [eax+edi*4]
call	sub_428ED2
test	al, al
jz	short loc_429018
inc	edi
add	ebx, 4
cmp	edi, [esi+8]
jl	short loc_428FF7

loc_429018:
mov	edx, [esi+8]
cmp	edi, edx
jz	short loc_429034
mov	eax, [ebp+arg_4]
inc	eax
cmp	eax, [ebp+var_4]
mov	[ebp+arg_4], eax
jle	short loc_428FEC

loc_42902B:
xor	al, al

loc_42902D:
pop	edi
pop	esi
pop	ebx
leave
retn	8

loc_429034:
mov	al, 1
jmp	short loc_42902D
sub_428F6F endp




sub_429038 proc	near

arg_0= dword ptr  4

push	esi
push	edi
mov	esi, ecx
xor	edi, edi
cmp	[esi+18h], edi
jle	short loc_42905F

loc_429043:
mov	eax, [esi+1Ch]
mov	edx, [esp+8+arg_0]
mov	eax, [eax+edi*4]
lea	ecx, [eax+4]
call	sub_428DA4
test	eax, eax
jz	short loc_429067
inc	edi
cmp	edi, [esi+18h]
jl	short loc_429043

loc_42905F:
or	eax, 0FFFFFFFFh

loc_429062:
pop	edi
pop	esi
retn	4

loc_429067:
mov	eax, edi
jmp	short loc_429062
sub_429038 endp




sub_42906B proc	near

arg_0= byte ptr	 4
arg_4= dword ptr  8
arg_8= dword ptr  0Ch

cmp	[esp+arg_0], 0
push	esi
push	edi
lea	esi, [ecx+24h]
jnz	short loc_42907A
lea	esi, [ecx+38h]

loc_42907A:
xor	edi, edi
cmp	[esi+8], edi
jle	short loc_42909E

loc_429081:
push	[esp+8+arg_8]
mov	eax, [esi+0Ch]
push	[esp+0Ch+arg_4]
mov	ecx, [eax+edi*4]
call	sub_428F6F
test	al, al
jnz	short loc_4290A5
inc	edi
cmp	edi, [esi+8]
jl	short loc_429081

loc_42909E:
xor	al, al

loc_4290A0:
pop	edi
pop	esi
retn	0Ch

loc_4290A5:
mov	al, 1
jmp	short loc_4290A0
sub_42906B endp



; Attributes: bp-based frame

sub_4290A9 proc	near

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

mov	eax, offset loc_4471F0
call	__EH_prolog
sub	esp, 14h
push	ebx
push	esi
mov	esi, [ebp+arg_0]
push	edi
push	[ebp+arg_4]
mov	edi, ecx
push	esi
push	0
call	sub_42906B
test	al, al
mov	eax, [ebp+arg_8]
jz	short loc_4290D8
and	byte ptr [eax],	0
jmp	loc_42915B

loc_4290D8:
push	[ebp+arg_4]
mov	ecx, edi
mov	byte ptr [eax],	1
push	esi
push	1
call	sub_42906B
cmp	dword ptr [esi+8], 1
mov	byte ptr [ebp+arg_0+3],	al
jz	loc_42917D
mov	eax, [esi+0Ch]
mov	ecx, edi
push	dword ptr [eax]
call	sub_429038
mov	ebx, eax
test	ebx, ebx
jl	short loc_42917A
push	esi
lea	ecx, [ebp+var_20]
call	sub_429229
and	[ebp+var_4], 0
push	1
pop	esi
lea	ecx, [ebp+var_20]
push	esi
push	0
call	sub_4032FB
mov	eax, [edi+1Ch]
push	[ebp+arg_8]
mov	ebx, [eax+ebx*4]
push	[ebp+arg_4]
lea	eax, [ebp+var_20]
mov	ecx, ebx
push	eax
call	sub_4290A9
test	al, al
mov	[ebp+var_20], offset off_44B510
jz	short loc_42915F
lea	ecx, [ebp+var_20]
mov	[ebp+var_4], esi
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_20]
call	sub_4282FE

loc_42915B:
mov	al, 1
jmp	short loc_42917D

loc_42915F:
lea	ecx, [ebp+var_20]
mov	[ebp+var_4], 2
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_20]
call	sub_4282FE

loc_42917A:
mov	al, byte ptr [ebp+arg_0+3]

loc_42917D:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_4290A9 endp



; Attributes: bp-based frame

sub_42918E proc	near

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_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_44720C
call	__EH_prolog
sub	esp, 14h
push	ebx
push	esi
xor	eax, eax
mov	esi, offset off_44B510
push	edi
mov	edi, ecx
mov	[ebp+var_1C], eax
mov	[ebp+var_18], eax
mov	[ebp+var_14], eax
mov	[ebp+var_10], 4
mov	[ebp+var_20], esi
mov	ecx, [ebp+arg_0]
lea	edx, [ebp+var_20]
mov	[ebp+var_4], eax
call	sub_428DBB
push	[ebp+arg_8]
lea	eax, [ebp+var_20]
mov	ecx, edi
push	[ebp+arg_4]
push	eax
call	sub_4290A9
mov	bl, al
mov	[ebp+var_20], esi
lea	ecx, [ebp+var_20]
mov	[ebp+var_4], 1
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_20]
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	edi
mov	al, bl
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_42918E endp



; Attributes: bp-based frame

sub_42920C proc	near

arg_0= dword ptr  8
arg_4= dword ptr  0Ch

push	ebp
mov	ebp, esp
lea	eax, [ebp+arg_4]
push	eax
push	[ebp+arg_4]
push	[ebp+arg_0]
call	sub_42918E
neg	al
sbb	al, al
and	eax, [ebp+arg_4]
pop	ebp
retn	8
sub_42920C endp



; Attributes: bp-based frame

sub_429229 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_447220
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
xor	eax, eax
mov	[ebp+var_10], esi
mov	[esi+4], eax
mov	[esi+8], eax
mov	[esi+0Ch], eax
mov	dword ptr [esi+10h], 4
mov	[ebp+var_4], eax
mov	dword ptr [esi], offset	off_44B510
call	sub_428327
push	[ebp+arg_0]
mov	ecx, esi
call	sub_403531
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_429229 endp




; int __stdcall	sub_429275(HWND	hWndNewOwner)
sub_429275 proc	near

hWndNewOwner= dword ptr	 4

push	esi
mov	esi, ecx
push	[esp+4+hWndNewOwner] ; hWndNewOwner
call	ds:OpenClipboard
test	eax, eax
setnz	al
mov	[esi], al
pop	esi
retn	4
sub_429275 endp



; Attributes: thunk

sub_42928D proc	near
jmp	$+5
sub_42928D endp




sub_429292 proc	near
push	esi
mov	esi, ecx
cmp	byte ptr [esi],	0
jnz	short loc_42929E
mov	al, 1
pop	esi
retn

loc_42929E:
call	ds:CloseClipboard
neg	eax
sbb	al, al
push	0
inc	al
mov	[esi], al
pop	eax
setz	al
pop	esi
retn
sub_429292 endp



; Attributes: bp-based frame

sub_4292B4 proc	near

Memory=	dword ptr -2Ch
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	byte ptr -14h
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44724C
call	__EH_prolog
sub	esp, 20h
push	ebx
xor	ebx, ebx
push	esi
mov	esi, edx
mov	[ebp+var_14], bl
push	ecx		; hWndNewOwner
lea	ecx, [ebp+var_14]
mov	[ebp+var_4], ebx
call	sub_429275
test	al, al
jz	loc_429393
call	ds:EmptyClipboard
test	eax, eax
jz	loc_429393
mov	eax, [esi+4]
mov	edx, [esi]
lea	eax, [eax+eax+2]
push	eax		; dwBytes
push	0Dh
pop	ecx
call	sub_4293AF
lea	ecx, [ebp+var_20]
mov	[ebp+var_D], al
push	3
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
call	sub_4034E3
push	ebx
mov	edx, esi
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_428673
push	eax
lea	ecx, [ebp+var_20]
mov	byte ptr [ebp+var_4], 2
call	sub_403244
mov	byte ptr [ebp+var_4], 1
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_1C]
mov	edx, [ebp+var_20]
pop	ecx
inc	eax
push	eax		; dwBytes
push	1
pop	ecx
call	sub_4293AF
mov	bl, [ebp+var_D]
mov	edx, esi
push	1
lea	ecx, [ebp+Memory]
or	bl, al
call	sub_428673
push	eax
lea	ecx, [ebp+var_20]
mov	byte ptr [ebp+var_4], 3
call	sub_403244
mov	byte ptr [ebp+var_4], 1
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_1C]
mov	edx, [ebp+var_20]
pop	ecx
inc	eax
push	eax		; dwBytes
push	7
pop	ecx
call	sub_4293AF
or	bl, al
push	[ebp+var_20]	; Memory
call	sub_4284D8
pop	ecx

loc_429393:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_14]
call	sub_42928D
mov	ecx, [ebp+var_C]
mov	al, bl
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_4292B4 endp



; Attributes: bp-based frame

; int __stdcall	sub_4293AF(size_t dwBytes)
sub_4293AF proc	near

hMem= dword ptr	-10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
dwBytes= dword ptr  8

mov	eax, offset loc_447268
call	__EH_prolog
push	ecx
and	[ebp+hMem], 0
push	ebx
push	esi
push	edi
mov	edi, edx
mov	ebx, ecx
push	[ebp+dwBytes]	; dwBytes
and	[ebp+var_4], 0
lea	ecx, [ebp+hMem]
push	2002h		; uFlags
call	sub_42C483
test	al, al
jnz	short loc_4293E1

loc_4293DD:
xor	bl, bl
jmp	short loc_429417

loc_4293E1:
mov	esi, [ebp+hMem]
push	esi		; hMem
call	ds:GlobalLock
test	eax, eax
jz	short loc_4293DD
push	[ebp+dwBytes]	; Size
push	edi		; Src
push	eax		; Dst
call	memcpy
add	esp, 0Ch
push	esi		; hMem
call	ds:GlobalUnlock
push	[ebp+hMem]	; hMem
push	ebx		; uFormat
call	ds:SetClipboardData
test	eax, eax
jz	short loc_4293DD
and	[ebp+hMem], 0
mov	bl, 1

loc_429417:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+hMem]
call	sub_42C4A4
mov	ecx, [ebp+var_C]
mov	al, bl
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_4293AF endp




sub_429436 proc	near

arg_0= dword ptr  4

push	esi
mov	esi, ecx
push	edi
push	[esp+8+arg_0]
lea	edi, [esi+14h]
mov	ecx, edi
call	sub_41E2D1
push	dword ptr [esi+18h]
mov	ecx, esi
call	sub_429907
push	20h
mov	ecx, edi
call	sub_412848
pop	edi
pop	esi
retn	4
sub_429436 endp




sub_429460 proc	near

arg_0= dword ptr  4

mov	eax, [ecx+14h]
push	esi
mov	esi, [esp+4+arg_0]
push	edi
mov	dl, [eax]
mov	[esi], dl
lea	edi, [esi+1]

loc_429470:
inc	eax
test	dl, dl
jz	short loc_42947C
mov	dl, [eax]
mov	[edi], dl
inc	edi
jmp	short loc_429470

loc_42947C:
xor	eax, eax
cmp	[ecx+8], eax
jle	short loc_429493

loc_429483:
mov	edx, [ecx+0Ch]
mov	edx, [edx+eax*4]
and	byte ptr [edx+esi], 0
inc	eax
cmp	eax, [ecx+8]
jl	short loc_429483

loc_429493:
pop	edi
pop	esi
retn	4
sub_429460 endp




sub_429498 proc	near

arg_0= dword ptr  4

push	esi
mov	esi, ecx
push	edi
push	[esp+8+arg_0]
lea	edi, [esi+14h]
mov	ecx, edi
call	sub_403195
push	dword ptr [esi+18h]
mov	ecx, esi
call	sub_429907
push	20h
mov	ecx, edi
call	sub_40316A
pop	edi
pop	esi
retn	4
sub_429498 endp




sub_4294C2 proc	near

arg_0= dword ptr  4

mov	eax, [ecx+14h]
push	esi
mov	esi, [esp+4+arg_0]
push	edi
mov	dx, [eax]
mov	[esi], dx
lea	edi, [esi+2]

loc_4294D4:
inc	eax
inc	eax
test	dx, dx
jz	short loc_4294E5
mov	dx, [eax]
mov	[edi], dx
inc	edi
inc	edi
jmp	short loc_4294D4

loc_4294E5:
xor	eax, eax
cmp	[ecx+8], eax
jle	short loc_4294FD

loc_4294EC:
mov	edx, [ecx+0Ch]
mov	edx, [edx+eax*4]
and	word ptr [esi+edx*2], 0
inc	eax
cmp	eax, [ecx+8]
jl	short loc_4294EC

loc_4294FD:
pop	edi
pop	esi
retn	4
sub_4294C2 endp



; Attributes: bp-based frame

sub_429502 proc	near

var_A2C= word ptr -0A2Ch
var_A2A= byte ptr -0A2Ah
var_61C= byte ptr -61Ch
var_414= byte ptr -414h
var_310= byte ptr -310h
var_30F= byte ptr -30Fh
var_108= byte ptr -108h
var_F4=	dword ptr -0F4h
var_E8=	byte ptr -0E8h
var_D4=	dword ptr -0D4h
var_C8=	tagOFNW	ptr -0C8h
var_7C=	tagOFNA	ptr -7Ch
var_30=	dword ptr -30h
var_2C=	dword ptr -2Ch
var_28=	dword ptr -28h
Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_4472D5
call	__EH_prolog
sub	esp, 0A20h
push	ebx
xor	ebx, ebx
cmp	byte_45D8B4, bl
push	esi
push	edi
mov	edi, edx
mov	esi, ecx
jnz	loc_429727
push	[ebp+arg_0]
lea	ecx, [ebp+var_18]
call	sub_403091
lea	edx, [ebp+var_18]
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], ebx
call	sub_43A785
mov	eax, [eax]
lea	ecx, [ebp+var_30F]
mov	dl, [eax]
inc	eax
cmp	dl, bl
mov	[ebp+var_310], dl
jz	short loc_429569
mov	edx, eax
lea	eax, [ebp+var_30F]
sub	edx, eax

loc_42955F:
mov	al, [edx+ecx]
mov	[ecx], al
inc	ecx
cmp	al, bl
jnz	short loc_42955F

loc_429569:		; Memory
push	[ebp+Memory]
call	sub_4284D8
push	[ebp+var_18]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx
mov	[ebp+var_7C.lStructSize], 4Ch
pop	ecx
mov	[ebp+var_7C.hwndOwner],	esi
lea	ecx, [ebp+var_E8]
mov	[ebp+var_7C.hInstance],	ebx
call	sub_4298EC
lea	ecx, [ebp+var_D4]
mov	[ebp+var_4], 1
call	sub_4298D4
push	[ebp+arg_4]
lea	ecx, [ebp+var_18]
mov	[ebp+var_4], 2
call	sub_403091
lea	edx, [ebp+var_18]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 3
call	sub_43A785
push	dword ptr [eax]
lea	ecx, [ebp+var_E8]
mov	byte ptr [ebp+var_4], 4
call	sub_429436
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_18]	; Memory
mov	byte ptr [ebp+var_4], 2
call	sub_4284D8
pop	ecx
pop	ecx
push	offset a__4	; "*.*"
lea	ecx, [ebp+var_E8]
call	sub_429436
lea	eax, [ebp+var_414]
lea	ecx, [ebp+var_E8]
push	eax
call	sub_429460
lea	eax, [ebp+var_414]
lea	ecx, [ebp+var_30]
mov	[ebp+var_7C.lpstrFilter], eax
lea	eax, [ebp+var_310]
push	3
mov	[ebp+var_7C.lpstrCustomFilter],	ebx
mov	[ebp+var_7C.nMaxCustFilter], ebx
mov	[ebp+var_7C.nFilterIndex], ebx
mov	[ebp+var_7C.lpstrFile],	eax
mov	[ebp+var_7C.nMaxFile], 208h
mov	[ebp+var_7C.lpstrFileTitle], ebx
mov	[ebp+var_7C.nMaxFileTitle], ebx
mov	[ebp+var_7C.lpstrInitialDir], ebx
mov	[ebp+var_7C.lpstrTitle], ebx
mov	[ebp+var_30], ebx
mov	[ebp+var_2C], ebx
mov	[ebp+var_28], ebx
call	sub_4034E3
cmp	edi, ebx
mov	byte ptr [ebp+var_4], 5
jz	short loc_42969D
push	edi
lea	ecx, [ebp+var_18]
call	sub_403091
lea	edx, [ebp+var_18]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 6
call	sub_43A785
push	eax
lea	ecx, [ebp+var_30]
mov	byte ptr [ebp+var_4], 7
call	sub_403244
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_18]	; Memory
mov	byte ptr [ebp+var_4], 5
call	sub_4284D8
mov	eax, [ebp+var_30]
pop	ecx
pop	ecx
mov	[ebp+var_7C.lpstrTitle], eax

loc_42969D:
lea	eax, [ebp+var_7C]
mov	[ebp+var_7C.Flags], 80004h
push	eax		; LPOPENFILENAMEA
mov	[ebp+var_7C.nFileOffset], bx
mov	[ebp+var_7C.nFileExtension], bx
mov	[ebp+var_7C.lpstrDefExt], ebx
mov	[ebp+var_7C.lCustData],	ebx
mov	[ebp+var_7C.lpfnHook], ebx
mov	[ebp+var_7C.lpTemplateName], ebx
call	ds:GetOpenFileNameA
test	eax, eax
lea	eax, [ebp+var_310]
lea	ecx, [ebp+var_18]
push	eax
setnz	bl
call	sub_41E0DD
lea	edx, [ebp+var_18]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 8
call	sub_41242C
mov	ecx, [ebp+arg_8]
push	eax
mov	byte ptr [ebp+var_4], 9
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_18]	; Memory
call	sub_4284D8
push	[ebp+var_30]	; Memory
call	sub_4284D8
push	[ebp+var_D4]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
add	esp, 10h
lea	ecx, [ebp+var_E8]
jmp	loc_42985A

loc_429727:
mov	eax, [ebp+arg_0]
mov	cx, [eax]
add	eax, 2
cmp	cx, bx
mov	[ebp+var_A2C], cx
jz	short loc_429752
lea	edx, [ebp+var_A2A]
sub	edx, eax

loc_429744:
mov	cx, [eax]
mov	[edx+eax], cx
inc	eax
inc	eax
cmp	cx, bx
jnz	short loc_429744

loc_429752:
lea	ecx, [ebp+var_108]
mov	[ebp+var_C8.lStructSize], 4Ch
mov	[ebp+var_C8.hwndOwner],	esi
mov	[ebp+var_C8.hInstance],	ebx
call	sub_429872
push	[ebp+arg_4]
lea	ecx, [ebp+var_108]
mov	[ebp+var_4], 0Ah
call	sub_429498
lea	ecx, [ebp+var_108]
push	offset a__3	; "*.*"
call	sub_429498
lea	eax, [ebp+var_61C]
lea	ecx, [ebp+var_108]
push	eax
call	sub_4294C2
lea	eax, [ebp+var_61C]
mov	[ebp+var_C8.lpstrCustomFilter],	ebx
mov	[ebp+var_C8.lpstrFilter], eax
lea	eax, [ebp+var_A2C]
mov	[ebp+var_C8.lpstrFile],	eax
lea	eax, [ebp+var_C8]
push	eax		; LPOPENFILENAMEW
mov	[ebp+var_C8.nMaxCustFilter], ebx
mov	[ebp+var_C8.nFilterIndex], ebx
mov	[ebp+var_C8.nMaxFile], 208h
mov	[ebp+var_C8.lpstrFileTitle], ebx
mov	[ebp+var_C8.nMaxFileTitle], ebx
mov	[ebp+var_C8.lpstrInitialDir], ebx
mov	[ebp+var_C8.lpstrTitle], edi
mov	[ebp+var_C8.Flags], 80004h
mov	[ebp+var_C8.nFileOffset], bx
mov	[ebp+var_C8.nFileExtension], bx
mov	[ebp+var_C8.lpstrDefExt], ebx
mov	[ebp+var_C8.lCustData],	ebx
mov	[ebp+var_C8.lpfnHook], ebx
mov	[ebp+var_C8.lpTemplateName], ebx
call	ds:GetOpenFileNameW
mov	ecx, [ebp+arg_8]
test	eax, eax
lea	eax, [ebp+var_A2C]
push	eax
setnz	bl
call	sub_404722
or	[ebp+var_4], 0FFFFFFFFh
push	[ebp+var_F4]	; Memory
call	sub_4284D8
pop	ecx
lea	ecx, [ebp+var_108]

loc_42985A:
call	sub_4282FE
mov	ecx, [ebp+var_C]
mov	al, bl
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_429502 endp



; Attributes: bp-based frame

sub_429872 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4472E8
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
xor	eax, eax
mov	[ebp+var_10], esi
mov	[esi+4], eax
mov	[esi+8], eax
mov	[esi+0Ch], eax
mov	dword ptr [esi+10h], 4
mov	dword ptr [esi], offset	off_44C500
lea	ecx, [esi+14h]
push	3
mov	[ebp+var_4], eax
mov	[ecx], eax
mov	[ecx+4], eax
mov	[ecx+8], eax
call	sub_403396
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_429872 endp

; START	OF FUNCTION CHUNK FOR sub_447287

loc_4298BF:
push	esi
mov	esi, ecx
push	dword ptr [esi+14h] ; Memory
call	sub_4284D8
pop	ecx
mov	ecx, esi
call	sub_4282FE
pop	esi
retn
; END OF FUNCTION CHUNK	FOR sub_447287



sub_4298D4 proc	near
push	esi
mov	esi, ecx
xor	eax, eax
push	3
mov	[esi], eax
mov	[esi+4], eax
mov	[esi+8], eax
call	sub_4034E3
mov	eax, esi
pop	esi
retn
sub_4298D4 endp




sub_4298EC proc	near
mov	eax, ecx
xor	ecx, ecx
mov	[eax+4], ecx
mov	[eax+8], ecx
mov	[eax+0Ch], ecx
mov	dword ptr [eax+10h], 4
mov	dword ptr [eax], offset	off_44C500
retn
sub_4298EC endp




sub_429907 proc	near

arg_0= dword ptr  4

push	esi
mov	esi, ecx
call	sub_428350
mov	eax, [esi+8]
mov	ecx, [esi+0Ch]
mov	edx, [esp+4+arg_0]
mov	[ecx+eax*4], edx
mov	eax, [esi+8]
lea	ecx, [eax+1]
mov	[esi+8], ecx
pop	esi
retn	4
sub_429907 endp




sub_429929 proc	near
push	esi
mov	esi, ecx
mov	eax, [esi]
test	eax, eax
jz	short loc_429944
push	eax		; hLibModule
call	ds:FreeLibrary
test	eax, eax
jnz	short loc_429941
xor	al, al
pop	esi
retn

loc_429941:
and	dword ptr [esi], 0

loc_429944:
mov	al, 1
pop	esi
retn
sub_429929 endp




sub_429948 proc	near

arg_0= dword ptr  4

push	esi
push	edi
mov	edi, [esp+8+arg_0]
mov	esi, ecx
test	edi, edi
jz	short loc_42995D
call	sub_429929
test	al, al
jnz	short loc_429961

loc_42995D:
xor	al, al
jmp	short loc_429965

loc_429961:
mov	[esi], edi
mov	al, 1

loc_429965:
pop	edi
pop	esi
retn	4
sub_429948 endp




; int __stdcall	sub_42996A(LPCSTR lpLibFileName, DWORD dwFlags)
sub_42996A proc	near

lpLibFileName= dword ptr  4
dwFlags= dword ptr  8

push	esi
mov	esi, ecx
push	[esp+4+dwFlags]	; dwFlags
push	0		; hFile
push	[esp+0Ch+lpLibFileName]	; lpLibFileName
call	ds:LoadLibraryExA
push	eax
mov	ecx, esi
call	sub_429948
pop	esi
retn	8
sub_42996A endp




; int __stdcall	sub_429989(LPCSTR lpLibFileName)
sub_429989 proc	near

lpLibFileName= dword ptr  4

push	esi
mov	esi, ecx
push	[esp+4+lpLibFileName] ;	lpLibFileName
call	ds:LoadLibraryA
push	eax
mov	ecx, esi
call	sub_429948
pop	esi
retn	4
sub_429989 endp



; Attributes: bp-based frame

sub_4299A2 proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4472FC
call	__EH_prolog
sub	esp, 10h
and	[ebp+var_10], 0
push	esi
mov	esi, ecx
push	edx
lea	ecx, [ebp+Memory]
call	sub_403091
and	[ebp+var_4], 0
call	ds:AreFileApisANSI
neg	eax
sbb	eax, eax
lea	edx, [ebp+Memory]
inc	eax
mov	ecx, esi
push	eax
call	sub_428673
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_4299A2 endp



; Attributes: bp-based frame

; int __stdcall	sub_4299F1(LPCWSTR lpLibFileName, DWORD	dwFlags)
sub_4299F1 proc	near

Memory=	dword ptr -0Ch
lpLibFileName= dword ptr  8
dwFlags= dword ptr  0Ch

push	ebp
mov	ebp, esp
sub	esp, 0Ch
cmp	byte_45D8B4, 0
push	esi
mov	esi, ecx
jz	short loc_429A1B
push	[ebp+dwFlags]	; dwFlags
push	0		; hFile
push	[ebp+lpLibFileName] ; lpLibFileName
call	ds:LoadLibraryExW
push	eax
mov	ecx, esi
call	sub_429948
jmp	short loc_429A42

loc_429A1B:
mov	edx, [ebp+lpLibFileName]
push	ebx
lea	ecx, [ebp+Memory]
call	sub_4299A2
push	[ebp+dwFlags]	; dwFlags
mov	eax, [eax]
mov	ecx, esi
push	eax		; lpLibFileName
call	sub_42996A
push	[ebp+Memory]	; Memory
mov	bl, al
call	sub_4284D8
pop	ecx
mov	al, bl
pop	ebx

loc_429A42:
pop	esi
leave
retn	8
sub_4299F1 endp



; Attributes: bp-based frame

; int __stdcall	sub_429A47(LPCWSTR lpLibFileName)
sub_429A47 proc	near

Memory=	dword ptr -0Ch
lpLibFileName= dword ptr  8

push	ebp
mov	ebp, esp
sub	esp, 0Ch
cmp	byte_45D8B4, 0
push	esi
mov	esi, ecx
jz	short loc_429A6C
push	[ebp+lpLibFileName] ; lpLibFileName
call	ds:LoadLibraryW
push	eax
mov	ecx, esi
call	sub_429948
jmp	short loc_429A8F

loc_429A6C:
mov	edx, [ebp+lpLibFileName]
push	ebx
lea	ecx, [ebp+Memory]
call	sub_4299A2
push	dword ptr [eax]	; lpLibFileName
mov	ecx, esi
call	sub_429989
push	[ebp+Memory]	; Memory
mov	bl, al
call	sub_4284D8
pop	ecx
mov	al, bl
pop	ebx

loc_429A8F:
pop	esi
leave
retn	4
sub_429A47 endp



; Attributes: bp-based frame

; int __fastcall sub_429A94(HMODULE hModule)
sub_429A94 proc	near

Filename= byte ptr -108h

push	ebp
mov	ebp, esp
sub	esp, 108h
push	esi
mov	esi, edx
push	105h		; nSize
mov	eax, [esi]
and	dword ptr [esi+4], 0
and	byte ptr [eax],	0
lea	eax, [ebp+Filename]
push	eax		; lpFilename
push	ecx		; hModule
call	ds:GetModuleFileNameA
cmp	eax, 104h
ja	short loc_429AD9
test	eax, eax
jz	short loc_429AD9
lea	eax, [ebp+Filename]
mov	ecx, esi
push	eax
call	sub_41E124
mov	al, 1
jmp	short loc_429ADB

loc_429AD9:
xor	al, al

loc_429ADB:
pop	esi
leave
retn
sub_429A94 endp



; Attributes: bp-based frame

sub_429ADE proc	near

Filename= word ptr -230h
Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_447318
call	__EH_prolog
sub	esp, 224h
push	ebx
push	esi
mov	esi, edx
xor	ebx, ebx
push	edi
mov	edi, ecx
mov	eax, [esi]
mov	[esi+4], ebx
mov	[eax], bx
cmp	byte_45D8B4, bl
jz	short loc_429B3B
lea	eax, [ebp+Filename]
push	105h		; nSize
push	eax		; lpFilename
push	edi		; hModule
call	ds:GetModuleFileNameW
cmp	eax, 104h
ja	short loc_429B37
cmp	eax, ebx
jz	short loc_429B37
lea	eax, [ebp+Filename]
mov	ecx, esi
push	eax
call	sub_404722
mov	al, 1
jmp	short loc_429B98

loc_429B37:
xor	al, al
jmp	short loc_429B98

loc_429B3B:
push	3
lea	ecx, [ebp+var_18]
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_4034E3
lea	edx, [ebp+var_18]
mov	ecx, edi	; hModule
mov	[ebp+var_4], ebx
call	sub_429A94
test	al, al
jz	short loc_429B8D
call	ds:AreFileApisANSI
neg	eax
sbb	eax, eax
lea	edx, [ebp+var_18]
inc	eax
lea	ecx, [ebp+Memory]
push	eax		; CodePage
call	sub_42850B
push	eax
mov	ecx, esi
mov	byte ptr [ebp+var_4], 1
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	bl, 1

loc_429B8D:		; Memory
push	[ebp+var_18]
call	sub_4284D8
pop	ecx
mov	al, bl

loc_429B98:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_429ADE endp



; Attributes: bp-based frame

; int __fastcall sub_429BA7(DWORD dwMessageId)
sub_429BA7 proc	near

hMem= byte ptr -4

push	ebp
mov	ebp, esp
push	ecx
push	esi
mov	esi, edx
xor	eax, eax
lea	edx, [ebp+hMem]
push	eax		; Arguments
push	eax		; nSize
push	edx		; lpBuffer
push	eax		; dwLanguageId
push	ecx		; dwMessageId
push	eax		; lpSource
push	1300h		; dwFlags
call	ds:FormatMessageA
test	eax, eax
jnz	short loc_429BCC
xor	al, al
jmp	short loc_429BE1

loc_429BCC:
push	dword ptr [ebp+hMem]
mov	ecx, esi
call	sub_41E124
push	dword ptr [ebp+hMem] ; hMem
call	ds:LocalFree
mov	al, 1

loc_429BE1:
pop	esi
leave
retn
sub_429BA7 endp



; Attributes: bp-based frame

sub_429BE4 proc	near

Memory=	dword ptr -28h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
hMem= word ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_447334
call	__EH_prolog
sub	esp, 1Ch
push	ebx
xor	ebx, ebx
cmp	byte_45D8B4, bl
push	esi
push	edi
mov	edi, edx
mov	esi, ecx
jz	short loc_429C35
push	ebx		; Arguments
lea	eax, [ebp+hMem]
push	ebx		; nSize
push	eax		; lpBuffer
push	ebx		; dwLanguageId
push	esi		; dwMessageId
push	ebx		; lpSource
push	1300h		; dwFlags
call	ds:FormatMessageW
test	eax, eax
jnz	short loc_429C1E
xor	al, al
jmp	short loc_429C82

loc_429C1E:
push	dword ptr [ebp+hMem]
mov	ecx, edi
call	sub_404722
push	dword ptr [ebp+hMem] ; hMem
call	ds:LocalFree
mov	al, 1
jmp	short loc_429C82

loc_429C35:
push	3
lea	ecx, [ebp+var_1C]
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_4034E3
lea	edx, [ebp+var_1C]
mov	ecx, esi	; dwMessageId
mov	[ebp+var_4], ebx
call	sub_429BA7
lea	edx, [ebp+var_1C]
lea	ecx, [ebp+Memory]
mov	bl, al
call	sub_41242C
push	eax
mov	ecx, edi
mov	byte ptr [ebp+var_4], 1
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_1C]	; Memory
call	sub_4284D8
pop	ecx
mov	al, bl
pop	ecx

loc_429C82:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_429BE4 endp




sub_429C91 proc	near
push	esi
push	edi
mov	esi, ecx
mov	edi, 105h
cmp	[esi+8], edi
jg	short loc_429CA5
push	edi
call	sub_4034E3

loc_429CA5:
mov	eax, [esi]
push	edi		; uSize
push	eax		; lpBuffer
call	ds:GetWindowsDirectoryA
mov	ecx, esi
mov	edi, eax
call	sub_428D27
test	edi, edi
jbe	short loc_429CC9
cmp	edi, 104h
ja	short loc_429CC9
push	1
pop	eax
jmp	short loc_429CCB

loc_429CC9:
xor	eax, eax

loc_429CCB:
pop	edi
pop	esi
retn
sub_429C91 endp



; Attributes: bp-based frame

sub_429CCE proc	near

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

mov	eax, offset loc_447350
call	__EH_prolog
sub	esp, 18h
push	ebx
xor	ebx, ebx
cmp	byte_45D8B4, bl
push	esi
mov	esi, ecx
jz	short loc_429D33
push	edi
mov	edi, 105h
cmp	[esi+8], edi
jg	short loc_429CFA
push	edi
call	sub_403396

loc_429CFA:
mov	eax, [esi]
push	edi		; uSize
push	eax		; lpBuffer
call	ds:GetWindowsDirectoryW
mov	ecx, [esi]
xor	edx, edx
cmp	[ecx], bx
jz	short loc_429D17
mov	edi, ecx

loc_429D0F:
inc	edx
inc	edi
inc	edi
cmp	[edi], bx
jnz	short loc_429D0F

loc_429D17:
mov	[ecx+edx*2], bx
cmp	eax, ebx
mov	[esi+4], edx
pop	edi
jbe	short loc_429D2F
cmp	eax, 104h
ja	short loc_429D2F
push	1
pop	eax
jmp	short loc_429D82

loc_429D2F:
xor	eax, eax
jmp	short loc_429D82

loc_429D33:
push	3
lea	ecx, [ebp+var_18]
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_4034E3
lea	ecx, [ebp+var_18]
mov	[ebp+var_4], ebx
call	sub_429C91
test	al, al
jz	short loc_429D77
lea	edx, [ebp+var_18]
lea	ecx, [ebp+Memory]
call	sub_429D90
push	eax
mov	ecx, esi
mov	byte ptr [ebp+var_4], 1
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	bl, 1

loc_429D77:		; Memory
push	[ebp+var_18]
call	sub_4284D8
pop	ecx
mov	al, bl

loc_429D82:
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_429CCE endp




sub_429D90 proc	near

var_4= dword ptr -4

push	ecx
and	[esp+4+var_4], 0
push	esi
push	edi
mov	edi, edx
mov	esi, ecx
call	ds:AreFileApisANSI
neg	eax
sbb	eax, eax
mov	edx, edi
inc	eax
mov	ecx, esi
push	eax		; CodePage
call	sub_42850B
mov	eax, esi
pop	edi
pop	esi
pop	ecx
retn
sub_429D90 endp



; Attributes: bp-based frame

; int __stdcall	sub_429DB7(FILETIME *lpLastAccessTime, FILETIME	*lpLastWriteTime)
sub_429DB7 proc	near

Memory=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
lpCreationTime=	dword ptr -18h
var_14=	dword ptr -14h
hObject= dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
lpLastAccessTime= dword	ptr  8
lpLastWriteTime= dword ptr  0Ch

mov	eax, offset loc_447364
call	__EH_prolog
sub	esp, 18h
cmp	byte_45D8B4, 0
mov	[ebp+lpCreationTime], edx
mov	[ebp+var_14], ecx
jnz	short loc_429DE2
push	78h		; dwErrCode
call	ds:SetLastError
xor	al, al
jmp	loc_429E7A

loc_429DE2:
push	ebx
push	esi
mov	esi, ds:CreateFileW
push	edi
mov	ebx, 2000000h
push	0		; hTemplateFile
push	ebx		; dwFlagsAndAttributes
push	3		; dwCreationDisposition
push	0		; lpSecurityAttributes
mov	edi, 40000000h
push	3		; dwShareMode
push	edi		; dwDesiredAccess
push	ecx		; lpFileName
call	esi ; CreateFileW
cmp	eax, 0FFFFFFFFh
mov	[ebp+hObject], eax
jnz	short loc_429E4D
xor	eax, eax
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], eax
mov	[ebp+var_20], eax
mov	[ebp+var_1C], eax
call	sub_403396
mov	ecx, [ebp+var_14]
and	[ebp+var_4], 0
lea	edx, [ebp+Memory]
call	sub_42BD5E
test	al, al
jz	short loc_429E44
push	0		; hTemplateFile
push	ebx		; dwFlagsAndAttributes
push	3		; dwCreationDisposition
push	0		; lpSecurityAttributes
push	3		; dwShareMode
push	edi		; dwDesiredAccess
push	[ebp+Memory]	; lpFileName
call	esi ; CreateFileW
mov	[ebp+hObject], eax

loc_429E44:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx

loc_429E4D:
xor	bl, bl
cmp	[ebp+hObject], 0FFFFFFFFh
jz	short loc_429E75
push	[ebp+lpLastWriteTime] ;	lpLastWriteTime
push	[ebp+lpLastAccessTime] ; lpLastAccessTime
push	[ebp+lpCreationTime] ; lpCreationTime
push	[ebp+hObject]	; hFile
call	ds:SetFileTime
test	eax, eax
push	[ebp+hObject]	; hObject
setnz	bl
call	ds:CloseHandle

loc_429E75:
pop	edi
mov	al, bl
pop	esi
pop	ebx

loc_429E7A:
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn	8
sub_429DB7 endp




; int __fastcall sub_429E88(LPCSTR lpFileName, DWORD dwFileAttributes)
sub_429E88 proc	near
push	edx		; dwFileAttributes
push	ecx		; lpFileName
call	ds:SetFileAttributesA
test	eax, eax
setnz	al
retn
sub_429E88 endp




; int __fastcall sub_429E96(LPCSTR lpPathName)
sub_429E96 proc	near
push	ecx		; lpPathName
call	ds:RemoveDirectoryA
test	eax, eax
setnz	al
retn
sub_429E96 endp



; Attributes: bp-based frame

sub_429EA3 proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ebx
push	esi
push	edi
mov	edi, [ebp+arg_0]
mov	[ebp+var_4], edx
mov	ebx, ecx
mov	edx, edi
call	sub_42BBE4
test	al, al
jz	short loc_429EFA
mov	esi, [ebp+arg_4]
mov	ecx, [ebp+var_4]
mov	edx, esi
call	sub_42BBE4
test	al, al
jz	short loc_429EFA
mov	eax, [edi+4]
test	eax, eax
jnz	short loc_429EE6
cmp	[esi+4], eax
jz	short loc_429EFA
test	eax, eax
jnz	short loc_429EE6
push	ebx
mov	ecx, edi
call	sub_404722

loc_429EE6:
cmp	dword ptr [esi+4], 0
jnz	short loc_429EF6
push	[ebp+var_4]
mov	ecx, esi
call	sub_404722

loc_429EF6:
mov	al, 1
jmp	short loc_429EFC

loc_429EFA:
xor	al, al

loc_429EFC:
pop	edi
pop	esi
pop	ebx
leave
retn	8
sub_429EA3 endp




; int __fastcall sub_429F03(LPCSTR lpExistingFileName, LPCSTR lpNewFileName)
sub_429F03 proc	near
push	edx		; lpNewFileName
push	ecx		; lpExistingFileName
call	ds:MoveFileA
test	eax, eax
setnz	al
retn
sub_429F03 endp



; Attributes: bp-based frame

sub_429F11 proc	near

Memory=	dword ptr -24h
lpFileName= dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_447378
call	__EH_prolog
sub	esp, 18h
cmp	byte_45D8B4, 0
push	ebx
push	esi
push	edi
mov	edi, edx
mov	ebx, ecx
jnz	short loc_429F52
mov	edx, ebx
lea	ecx, [ebp+Memory]
call	sub_429FBD
mov	eax, [eax]
mov	edx, edi	; dwFileAttributes
mov	ecx, eax	; lpFileName
call	sub_429E88
mov	bl, al
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	al, bl
jmp	short loc_429FAE

loc_429F52:
mov	esi, ds:SetFileAttributesW
push	edi		; dwFileAttributes
push	ebx		; lpFileName
call	esi ; SetFileAttributesW
test	eax, eax
jz	short loc_429F64
mov	al, 1
jmp	short loc_429FAE

loc_429F64:
xor	eax, eax
push	3
lea	ecx, [ebp+lpFileName]
mov	[ebp+lpFileName], eax
mov	[ebp+var_14], eax
mov	[ebp+var_10], eax
call	sub_403396
and	[ebp+var_4], 0
lea	edx, [ebp+lpFileName]
mov	ecx, ebx
call	sub_42BD5E
test	al, al
jz	short loc_429FA3
push	edi		; dwFileAttributes
push	[ebp+lpFileName] ; lpFileName
call	esi ; SetFileAttributesW
mov	esi, eax
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
test	esi, esi
pop	ecx
setnz	al
jmp	short loc_429FAE

loc_429FA3:		; Memory
push	[ebp+lpFileName]
call	sub_4284D8
pop	ecx
xor	al, al

loc_429FAE:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_429F11 endp



; Attributes: bp-based frame

sub_429FBD proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44738C
call	__EH_prolog
sub	esp, 10h
and	[ebp+var_10], 0
push	esi
mov	esi, ecx
push	edx
lea	ecx, [ebp+Memory]
call	sub_403091
and	[ebp+var_4], 0
call	ds:AreFileApisANSI
neg	eax
sbb	eax, eax
lea	edx, [ebp+Memory]
inc	eax
mov	ecx, esi
push	eax
call	sub_428673
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_429FBD endp



; Attributes: bp-based frame

sub_42A00C proc	near

Memory=	dword ptr -24h
lpPathName= dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4473A0
call	__EH_prolog
sub	esp, 18h
push	ebx
xor	ebx, ebx
cmp	byte_45D8B4, bl
push	esi
push	edi
mov	edi, ecx
jnz	short loc_42A048
mov	edx, edi
lea	ecx, [ebp+Memory]
call	sub_429FBD
mov	ecx, [eax]	; lpPathName
call	sub_429E96
mov	bl, al
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	al, bl
jmp	short loc_42A09C

loc_42A048:
mov	esi, ds:RemoveDirectoryW
push	edi		; lpPathName
call	esi ; RemoveDirectoryW
test	eax, eax
jz	short loc_42A059
mov	al, 1
jmp	short loc_42A09C

loc_42A059:
push	3
lea	ecx, [ebp+lpPathName]
mov	[ebp+lpPathName], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_403396
lea	edx, [ebp+lpPathName]
mov	ecx, edi
mov	[ebp+var_4], ebx
call	sub_42BD5E
test	al, al
push	[ebp+lpPathName] ; lpPathName
jz	short loc_42A094
call	esi ; RemoveDirectoryW
mov	esi, eax
push	[ebp+lpPathName] ; Memory
call	sub_4284D8
cmp	esi, ebx
pop	ecx
setnz	al
jmp	short loc_42A09C

loc_42A094:
call	sub_4284D8
pop	ecx
xor	al, al

loc_42A09C:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_42A00C endp



; Attributes: bp-based frame

sub_42A0AB proc	near

var_40=	dword ptr -40h
Memory=	dword ptr -34h
lpExistingFileName= dword ptr -28h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
lpNewFileName= dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4473C4
call	__EH_prolog
sub	esp, 34h
push	ebx
xor	ebx, ebx
cmp	byte_45D8B4, bl
push	esi
push	edi
mov	edi, edx
mov	[ebp+var_10], ecx
jnz	short loc_42A108
lea	ecx, [ebp+var_40]
call	sub_429FBD
mov	edx, [ebp+var_10]
mov	esi, [eax]
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], ebx
call	sub_429FBD
mov	eax, [eax]
mov	edx, esi	; lpNewFileName
mov	ecx, eax	; lpExistingFileName
call	sub_429F03
mov	bl, al
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_40]	; Memory
call	sub_4284D8
pop	ecx
mov	al, bl
pop	ecx
jmp	loc_42A195

loc_42A108:
mov	esi, ds:MoveFileW
push	edi		; lpNewFileName
push	ecx		; lpExistingFileName
call	esi ; MoveFileW
test	eax, eax
jz	short loc_42A11A
mov	al, 1
jmp	short loc_42A195

loc_42A11A:
push	3
lea	ecx, [ebp+lpExistingFileName]
mov	[ebp+lpExistingFileName], ebx
mov	[ebp+var_24], ebx
mov	[ebp+var_20], ebx
call	sub_403396
push	3
lea	ecx, [ebp+lpNewFileName]
mov	[ebp+var_4], 1
mov	[ebp+lpNewFileName], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_403396
mov	ecx, [ebp+var_10]
lea	eax, [ebp+lpNewFileName]
push	eax
lea	eax, [ebp+lpExistingFileName]
push	eax
mov	edx, edi
mov	byte ptr [ebp+var_4], 2
call	sub_429EA3
test	al, al
push	[ebp+lpNewFileName] ; lpNewFileName
jz	short loc_42A184
push	[ebp+lpExistingFileName] ; lpExistingFileName
call	esi ; MoveFileW
mov	esi, eax
push	[ebp+lpNewFileName] ; Memory
call	sub_4284D8
push	[ebp+lpExistingFileName] ; Memory
call	sub_4284D8
pop	ecx
cmp	esi, ebx
pop	ecx
setnz	al
jmp	short loc_42A195

loc_42A184:
call	sub_4284D8
push	[ebp+lpExistingFileName] ; Memory
call	sub_4284D8
pop	ecx
xor	al, al
pop	ecx

loc_42A195:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_42A0AB endp




; int __fastcall sub_42A1A4(LPCSTR lpPathName)
sub_42A1A4 proc	near
push	0		; lpSecurityAttributes
push	ecx		; lpPathName
call	ds:CreateDirectoryA
test	eax, eax
setnz	al
retn
sub_42A1A4 endp



; Attributes: bp-based frame

sub_42A1B3 proc	near

Memory=	dword ptr -24h
lpPathName= dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4473D8
call	__EH_prolog
sub	esp, 18h
push	ebx
xor	ebx, ebx
cmp	byte_45D8B4, bl
push	esi
push	edi
mov	edi, ecx
jnz	short loc_42A1EF
mov	edx, edi
lea	ecx, [ebp+Memory]
call	sub_429FBD
mov	ecx, [eax]	; lpPathName
call	sub_42A1A4
mov	bl, al
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	al, bl
jmp	short loc_42A255

loc_42A1EF:
mov	esi, ds:CreateDirectoryW
push	ebx		; lpSecurityAttributes
push	edi		; lpPathName
call	esi ; CreateDirectoryW
test	eax, eax
jz	short loc_42A201
mov	al, 1
jmp	short loc_42A255

loc_42A201:
call	ds:GetLastError
cmp	eax, 0B7h
jz	short loc_42A253
push	3
lea	ecx, [ebp+lpPathName]
mov	[ebp+lpPathName], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_403396
lea	edx, [ebp+lpPathName]
mov	ecx, edi
mov	[ebp+var_4], ebx
call	sub_42BD5E
test	al, al
jz	short loc_42A24A
push	ebx		; lpSecurityAttributes
push	[ebp+lpPathName] ; lpPathName
call	esi ; CreateDirectoryW
mov	esi, eax
push	[ebp+lpPathName] ; Memory
call	sub_4284D8
cmp	esi, ebx
pop	ecx
setnz	al
jmp	short loc_42A255

loc_42A24A:		; Memory
push	[ebp+lpPathName]
call	sub_4284D8
pop	ecx

loc_42A253:
xor	al, al

loc_42A255:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_42A1B3 endp



; Attributes: bp-based frame

sub_42A264 proc	near

var_68=	byte ptr -68h
var_48=	dword ptr -48h
var_40=	dword ptr -40h
Memory=	dword ptr -30h
var_24=	dword ptr -24h
lpFileName= dword ptr -18h
var_14=	dword ptr -14h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44740C
call	__EH_prolog
sub	esp, 5Ch
push	ebx
push	esi
push	edi
push	ecx
lea	ecx, [ebp+lpFileName]
call	sub_403091
mov	ecx, [ebp+var_14]
and	[ebp+var_4], 0
push	5Ch
test	ecx, ecx
pop	edi
jz	short loc_42A2D1
mov	edx, [ebp+lpFileName]
lea	eax, [edx+ecx*2-2]

loc_42A292:
cmp	[eax], di
jz	short loc_42A29F
cmp	eax, edx
jz	short loc_42A2A5
dec	eax
dec	eax
jmp	short loc_42A292

loc_42A29F:
sub	eax, edx
sar	eax, 1
jmp	short loc_42A2A8

loc_42A2A5:
or	eax, 0FFFFFFFFh

loc_42A2A8:
test	eax, eax
jle	short loc_42A2D1
lea	esi, [ecx-1]
cmp	eax, esi
jnz	short loc_42A2D1
cmp	ecx, 3
jnz	short loc_42A2C6
cmp	word ptr [edx+2], 3Ah
jnz	short loc_42A2C6
mov	bl, 1
jmp	loc_42A447

loc_42A2C6:
push	1
push	eax
lea	ecx, [ebp+lpFileName]
call	sub_40708E

loc_42A2D1:
lea	eax, [ebp+lpFileName]
lea	ecx, [ebp+var_24]
push	eax
call	sub_4030F2
mov	esi, [ebp+var_14]
mov	byte ptr [ebp+var_4], 1

loc_42A2E4:
mov	ecx, [ebp+lpFileName]
call	sub_42A1B3
test	al, al
jnz	loc_42A3C9
call	ds:GetLastError
cmp	eax, 0B7h
jz	short loc_42A371
mov	eax, [ebp+var_14]
test	eax, eax
jz	loc_42A439
mov	ecx, [ebp+lpFileName]
lea	eax, [ecx+eax*2-2]

loc_42A313:
cmp	[eax], di
jz	short loc_42A320
cmp	eax, ecx
jz	short loc_42A328
dec	eax
dec	eax
jmp	short loc_42A313

loc_42A320:
sub	eax, ecx
sar	eax, 1
mov	esi, eax
jmp	short loc_42A32B

loc_42A328:
or	esi, 0FFFFFFFFh

loc_42A32B:
test	esi, esi
jl	loc_42A439
jz	loc_42A439
cmp	word ptr [ecx+esi*2-2],	3Ah
jz	loc_42A439
lea	eax, [ebp+Memory]
push	esi
push	eax
lea	ecx, [ebp+lpFileName]
call	sub_403228
push	eax
lea	ecx, [ebp+lpFileName]
mov	byte ptr [ebp+var_4], 3
call	sub_40312C
mov	byte ptr [ebp+var_4], 1
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
jmp	loc_42A2E4

loc_42A371:
lea	ecx, [ebp+var_40]
call	sub_403079
push	[ebp+lpFileName] ; lpFileName
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 2
call	sub_42B49E
test	al, al
jnz	short loc_42A390
mov	bl, 1
jmp	short loc_42A39C

loc_42A390:
mov	eax, [ebp+var_48]
shr	eax, 4
test	al, 1
jnz	short loc_42A3BC
xor	bl, bl

loc_42A39C:		; Memory
push	[ebp+var_40]
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
add	esp, 0Ch
jmp	loc_42A44E

loc_42A3BC:		; Memory
push	[ebp+var_40]
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
pop	ecx

loc_42A3C9:
lea	eax, [ebp+var_24]
lea	ecx, [ebp+lpFileName]
push	eax
call	sub_40312C

loc_42A3D5:
cmp	esi, [ebp+var_14]
jge	loc_42A45F
mov	edx, [ebp+lpFileName]
lea	eax, [edx+esi*2+2]

loc_42A3E5:
mov	cx, [eax]
cmp	cx, di
jz	short loc_42A3F6
test	cx, cx
jz	short loc_42A3FE
inc	eax
inc	eax
jmp	short loc_42A3E5

loc_42A3F6:
sub	eax, edx
sar	eax, 1
mov	esi, eax
jmp	short loc_42A401

loc_42A3FE:
or	esi, 0FFFFFFFFh

loc_42A401:
test	esi, esi
jge	short loc_42A408
mov	esi, [ebp+var_14]

loc_42A408:
lea	eax, [ebp+Memory]
push	esi
push	eax
lea	ecx, [ebp+lpFileName]
call	sub_403228
mov	ecx, [eax]
mov	byte ptr [ebp+var_4], 4
call	sub_42A1B3
mov	bl, al
mov	byte ptr [ebp+var_4], 1
push	[ebp+Memory]	; Memory
neg	bl
sbb	bl, bl
inc	bl
call	sub_4284D8
test	bl, bl
pop	ecx
jz	short loc_42A3D5

loc_42A439:
xor	bl, bl

loc_42A43B:		; Memory
push	[ebp+var_24]
call	sub_4284D8
mov	edx, [ebp+lpFileName]
pop	ecx

loc_42A447:		; Memory
push	edx
call	sub_4284D8
pop	ecx

loc_42A44E:
mov	ecx, [ebp+var_C]
pop	edi
mov	al, bl
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn

loc_42A45F:
mov	bl, 1
jmp	short loc_42A43B
sub_42A264 endp




; int __fastcall sub_42A463(LPCSTR lpFileName)
sub_42A463 proc	near
push	esi
mov	esi, ecx
xor	edx, edx	; dwFileAttributes
call	sub_429E88
test	al, al
jnz	short loc_42A473
pop	esi
retn

loc_42A473:		; lpFileName
push	esi
call	ds:DeleteFileA
test	eax, eax
setnz	al
pop	esi
retn
sub_42A463 endp



; Attributes: bp-based frame

sub_42A481 proc	near

Memory=	dword ptr -24h
lpFileName= dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_447420
call	__EH_prolog
sub	esp, 18h
push	ebx
xor	ebx, ebx
cmp	byte_45D8B4, bl
push	esi
push	edi
mov	edi, ecx
jnz	short loc_42A4BD
mov	edx, edi
lea	ecx, [ebp+Memory]
call	sub_429FBD
mov	ecx, [eax]	; lpFileName
call	sub_42A463
mov	bl, al
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	al, bl
jmp	short loc_42A51E

loc_42A4BD:
xor	edx, edx
mov	ecx, edi
call	sub_429F11
test	al, al
jz	short loc_42A51C
mov	esi, ds:DeleteFileW
push	edi		; lpFileName
call	esi ; DeleteFileW
test	eax, eax
jz	short loc_42A4DB
mov	al, 1
jmp	short loc_42A51E

loc_42A4DB:
push	3
lea	ecx, [ebp+lpFileName]
mov	[ebp+lpFileName], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_403396
lea	edx, [ebp+lpFileName]
mov	ecx, edi
mov	[ebp+var_4], ebx
call	sub_42BD5E
test	al, al
push	[ebp+lpFileName] ; lpFileName
jz	short loc_42A516
call	esi ; DeleteFileW
mov	esi, eax
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
cmp	esi, ebx
pop	ecx
setnz	al
jmp	short loc_42A51E

loc_42A516:
call	sub_4284D8
pop	ecx

loc_42A51C:
xor	al, al

loc_42A51E:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_42A481 endp




sub_42A52D proc	near
push	esi
mov	esi, ecx
xor	eax, eax
push	3
lea	ecx, [esi+28h]
mov	[ecx], eax
mov	[ecx+4], eax
mov	[ecx+8], eax
call	sub_4034E3
mov	eax, esi
pop	esi
retn
sub_42A52D endp



; Attributes: bp-based frame

sub_42A548 proc	near

var_88=	byte ptr -88h
var_60=	dword ptr -60h
var_50=	dword ptr -50h
var_4C=	dword ptr -4Ch
var_40=	dword ptr -40h
var_34=	dword ptr -34h
Memory=	dword ptr -28h
var_1C=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_447467
call	__EH_prolog
sub	esp, 7Ch
push	ebx
push	esi
mov	esi, ecx
push	edi
lea	ecx, [ebp+var_60]
call	sub_403079
xor	ebx, ebx
push	5Ch
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], ebx
call	sub_409516
push	eax
mov	edx, esi
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 1
call	sub_40356A
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx
push	2Ah
lea	ecx, [ebp+var_40]
call	sub_409516
push	eax
lea	edx, [ebp+var_1C]
lea	ecx, [ebp+var_34]
mov	byte ptr [ebp+var_4], 4
call	sub_40356A
or	[ebp+var_50], 0FFFFFFFFh
push	eax
lea	ecx, [ebp+var_4C]
mov	byte ptr [ebp+var_4], 6
call	sub_4030F2
push	[ebp+var_34]	; Memory
call	sub_4284D8
push	[ebp+var_40]	; Memory
mov	byte ptr [ebp+var_4], 8
call	sub_4284D8
pop	ecx
pop	ecx

loc_42A5CE:
lea	eax, [ebp+var_88]
lea	ecx, [ebp+var_50]
push	eax
call	sub_42B72E
test	al, al
jz	short loc_42A62E
sub	esp, 0Ch
lea	eax, [ebp+var_1C]
mov	ecx, esp
mov	[ebp+var_10], esp
push	eax
lea	edi, [ebp+var_88]
call	sub_4030F2
mov	ecx, edi
call	sub_42A67C
cmp	al, bl
jnz	short loc_42A5CE
push	[ebp+var_4C]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx
lea	ecx, [ebp+var_50]
call	sub_42B047
push	[ebp+var_1C]	; Memory
call	sub_4284D8
push	[ebp+var_60]	; Memory
call	sub_4284D8
pop	ecx
xor	al, al
pop	ecx
jmp	short loc_42A66D

loc_42A62E:		; Memory
push	[ebp+var_4C]
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx
lea	ecx, [ebp+var_50]
call	sub_42B047
mov	ecx, [esi]
xor	edx, edx
call	sub_429F11
test	al, al
jz	short loc_42A659
mov	ecx, [esi]
call	sub_42A00C
mov	bl, al

loc_42A659:		; Memory
push	[ebp+var_1C]
call	sub_4284D8
push	[ebp+var_60]	; Memory
call	sub_4284D8
pop	ecx
mov	al, bl
pop	ecx

loc_42A66D:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn
sub_42A548 endp



; Attributes: bp-based frame

sub_42A67C proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_44748C
call	__EH_prolog
sub	esp, 0Ch
push	ebx
mov	eax, [ecx+20h]
and	[ebp+var_4], 0
shr	eax, 4
test	al, 1
jz	short loc_42A6B9
add	ecx, 28h
lea	edx, [ebp+arg_0]
push	ecx
lea	ecx, [ebp+Memory]
call	sub_40356A
mov	ecx, eax
mov	byte ptr [ebp+var_4], 1
call	sub_42A548
mov	bl, al
push	[ebp+Memory]
jmp	short loc_42A6D8

loc_42A6B9:
add	ecx, 28h
lea	edx, [ebp+arg_0]
push	ecx
lea	ecx, [ebp+Memory]
call	sub_40356A
mov	ecx, [eax]
mov	byte ptr [ebp+var_4], 2
call	sub_42A481
mov	bl, al
push	[ebp+Memory]	; Memory

loc_42A6D8:
call	sub_4284D8
push	[ebp+arg_0]	; Memory
call	sub_4284D8
pop	ecx
mov	al, bl
pop	ecx
pop	ebx
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn	0Ch
sub_42A67C endp



; Attributes: bp-based frame

sub_42A6F8 proc	near

lpString= dword	ptr -0Ch
FilePart= dword	ptr -8
var_4= dword ptr -4
arg_0= dword ptr  8

push	ebp
mov	ebp, esp
sub	esp, 0Ch
push	ebx
push	esi
mov	esi, edx
push	edi
mov	edi, 104h
mov	[ebp+lpString],	ecx
mov	eax, [esi]
and	dword ptr [esi+4], 0
and	byte ptr [eax],	0
and	[ebp+FilePart],	0
cmp	[esi+8], edi
jg	short loc_42A725
push	edi
mov	ecx, esi
call	sub_4034E3

loc_42A725:
mov	ebx, [esi]
lea	eax, [ebp+FilePart]
push	eax		; lpFilePart
push	ebx		; lpBuffer
push	105h		; nBufferLength
push	[ebp+lpString]	; lpFileName
call	ds:GetFullPathNameA
mov	ecx, esi
mov	[ebp+var_4], eax
call	sub_428D27
cmp	[ebp+var_4], 0
jz	short loc_42A74F
cmp	[ebp+var_4], edi
jb	short loc_42A753

loc_42A74F:
xor	al, al
jmp	short loc_42A76E

loc_42A753:
mov	eax, [ebp+FilePart]
test	eax, eax
jnz	short loc_42A765
push	[ebp+lpString]	; lpString
call	ds:lstrlenA
jmp	short loc_42A767

loc_42A765:
sub	eax, ebx

loc_42A767:
mov	ecx, [ebp+arg_0]
mov	[ecx], eax
mov	al, 1

loc_42A76E:
pop	edi
pop	esi
pop	ebx
leave
retn	4
sub_42A6F8 endp



; Attributes: bp-based frame

sub_42A775 proc	near

var_58=	dword ptr -58h
Memory=	dword ptr -4Ch
var_40=	dword ptr -40h
var_34=	dword ptr -34h
var_30=	dword ptr -30h
var_28=	dword ptr -28h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
FilePart= dword	ptr -18h
nBufferLength= dword ptr -14h
lpFileName= dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4474D0
call	__EH_prolog
sub	esp, 4Ch
push	ebx
push	esi
mov	esi, edx
push	edi
xor	edi, edi
mov	[ebp+lpFileName], ecx
mov	eax, [esi]
mov	[esi+4], edi
mov	[eax], di
cmp	byte_45D8B4, 0
jz	loc_42A884
mov	eax, 104h
mov	[ebp+FilePart],	edi
cmp	[esi+8], eax
jg	short loc_42A7B6
push	eax
mov	ecx, esi
call	sub_403396

loc_42A7B6:
mov	eax, [esi]
mov	ebx, ds:GetFullPathNameW
lea	ecx, [ebp+FilePart]
mov	[ebp+var_1C], eax
push	ecx		; lpFilePart
push	eax		; lpBuffer
push	105h		; nBufferLength
push	[ebp+lpFileName] ; lpFileName
call	ebx ; GetFullPathNameW
mov	[ebp+nBufferLength], eax
mov	eax, [esi]
xor	ecx, ecx
cmp	[eax], di
jz	short loc_42A7E6
mov	edx, eax

loc_42A7DE:
inc	ecx
inc	edx
inc	edx
cmp	[edx], di
jnz	short loc_42A7DE

loc_42A7E6:
mov	[eax+ecx*2], di
mov	eax, [ebp+nBufferLength]
cmp	eax, edi
mov	[esi+4], ecx
jz	loc_42A8DB
cmp	eax, 104h
jb	short loc_42A84E
inc	eax
mov	[ebp+nBufferLength], eax
inc	eax
cmp	eax, [esi+8]
jl	short loc_42A811
push	eax
mov	ecx, esi
call	sub_403396

loc_42A811:
mov	eax, [esi]
lea	ecx, [ebp+FilePart]
push	ecx		; lpFilePart
push	eax		; lpBuffer
push	[ebp+nBufferLength] ; nBufferLength
mov	[ebp+var_1C], eax
push	[ebp+lpFileName] ; lpFileName
call	ebx ; GetFullPathNameW
mov	ecx, [esi]
xor	edx, edx
cmp	[ecx], di
jz	short loc_42A836
mov	ebx, ecx

loc_42A82E:
inc	edx
inc	ebx
inc	ebx
cmp	[ebx], di
jnz	short loc_42A82E

loc_42A836:
mov	[ecx+edx*2], di
cmp	eax, edi
mov	[esi+4], edx
jz	loc_42A8DB
cmp	eax, [ebp+nBufferLength]
ja	loc_42A8DB

loc_42A84E:
mov	eax, [ebp+FilePart]
cmp	eax, edi
jnz	short loc_42A86B
mov	eax, [ebp+lpFileName]
xor	ecx, ecx

loc_42A85A:
cmp	[eax], di
jz	short loc_42A864
inc	ecx
inc	eax
inc	eax
jmp	short loc_42A85A

loc_42A864:
mov	eax, [ebp+arg_0]
mov	[eax], ecx
jmp	short loc_42A875

loc_42A86B:
sub	eax, [ebp+var_1C]
mov	ecx, [ebp+arg_0]
sar	eax, 1
mov	[ecx], eax

loc_42A875:
mov	ecx, [ebp+lpFileName]
mov	edx, esi
call	sub_42A98A
jmp	loc_42A977

loc_42A884:
push	3
lea	ecx, [ebp+var_28]
mov	[ebp+var_28], edi
mov	[ebp+var_24], edi
mov	[ebp+var_20], edi
call	sub_4034E3
mov	edx, [ebp+lpFileName]
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], edi
call	sub_429FBD
mov	eax, [eax]
mov	edi, [ebp+arg_0]
push	edi
lea	edx, [ebp+var_28]
mov	ecx, eax
mov	byte ptr [ebp+var_4], 1
call	sub_42A6F8
mov	bl, al
push	[ebp+Memory]	; Memory
neg	bl
sbb	bl, bl
and	byte ptr [ebp+var_4], 0
inc	bl
call	sub_4284D8
test	bl, bl
pop	ecx
jz	short loc_42A8E2
push	[ebp+var_28]	; Memory
call	sub_4284D8
pop	ecx

loc_42A8DB:
xor	al, al
jmp	loc_42A979

loc_42A8E2:
push	dword ptr [edi]
lea	eax, [ebp+Memory]
lea	ecx, [ebp+var_28]
push	eax
call	sub_41E16A
mov	edx, eax
lea	ecx, [ebp+var_34]
mov	byte ptr [ebp+var_4], 2
call	sub_429D90
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 4
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_58]
push	dword ptr [edi]
lea	ecx, [ebp+var_28]
push	eax
call	sub_427FA2
mov	edx, eax
lea	ecx, [ebp+var_40]
mov	byte ptr [ebp+var_4], 5
call	sub_429D90
push	[ebp+var_58]	; Memory
mov	byte ptr [ebp+var_4], 7
call	sub_4284D8
mov	eax, [ebp+var_30]
pop	ecx
mov	[edi], eax
lea	eax, [ebp+var_40]
push	eax
lea	edx, [ebp+var_34]
lea	ecx, [ebp+Memory]
call	sub_40356A
push	eax
mov	ecx, esi
mov	byte ptr [ebp+var_4], 8
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_40]	; Memory
call	sub_4284D8
push	[ebp+var_34]	; Memory
call	sub_4284D8
push	[ebp+var_28]	; Memory
call	sub_4284D8
add	esp, 10h

loc_42A977:
mov	al, 1

loc_42A979:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_42A775 endp



; Attributes: bp-based frame

sub_42A98A proc	near

Memory=	dword ptr -38h
var_2C=	dword ptr -2Ch
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_14=	dword ptr -14h
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4474F4
call	__EH_prolog
sub	esp, 2Ch
push	ebx
push	esi
push	edi
mov	edi, ecx
mov	[ebp+var_14], edx
push	edi		; Str
call	ds:wcslen
mov	esi, eax
pop	ecx
test	esi, esi
mov	ebx, esi
jle	short loc_42A9C0
lea	eax, [edi+esi*2-2]

loc_42A9B3:
cmp	word ptr [eax],	2Eh
jnz	short loc_42A9C0
dec	ebx
dec	eax
dec	eax
test	ebx, ebx
jg	short loc_42A9B3

loc_42A9C0:
test	ebx, ebx
jz	loc_42AA48
cmp	ebx, esi
jz	short loc_42AA48
mov	edx, edi
lea	ecx, [ebp+var_20]
call	sub_42AA57
mov	edi, [ebp+var_14]
and	[ebp+var_4], 0
lea	ecx, [ebp+var_2C]
mov	edx, [edi]
call	sub_42AA57
mov	eax, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 1
sub	eax, esi
add	eax, ebx
jz	short loc_42AA36
push	eax
lea	eax, [ebp+Memory]
push	eax
lea	ecx, [ebp+var_20]
call	sub_403228
mov	edx, [eax]
mov	ecx, [ebp+var_2C]
mov	byte ptr [ebp+var_4], 2
call	sub_4282B1
test	eax, eax
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 1
setnz	[ebp+var_D]
call	sub_4284D8
cmp	[ebp+var_D], 0
pop	ecx
jnz	short loc_42AA36
sub	esi, ebx

loc_42AA2A:
push	2Eh
mov	ecx, edi
call	sub_40316A
dec	esi
jnz	short loc_42AA2A

loc_42AA36:		; Memory
push	[ebp+var_2C]
call	sub_4284D8
push	[ebp+var_20]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx

loc_42AA48:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_42A98A endp




sub_42AA57 proc	near

var_4= dword ptr -4

push	ecx
and	[esp+4+var_4], 0
push	esi
mov	esi, edx
push	edi
mov	edi, ecx
push	esi		; Str
call	ds:wcslen
test	eax, eax
pop	ecx
jle	short loc_42AA89
lea	ecx, [esi+eax*2-2]

loc_42AA73:
mov	dx, [ecx]
cmp	dx, 5Ch
jz	short loc_42AA89
cmp	dx, 2Fh
jz	short loc_42AA89
dec	eax
dec	ecx
dec	ecx
test	eax, eax
jg	short loc_42AA73

loc_42AA89:
lea	eax, [esi+eax*2]
mov	ecx, edi
push	eax
call	sub_403091
mov	eax, edi
pop	edi
pop	esi
pop	ecx
retn
sub_42AA57 endp




sub_42AA9A proc	near

var_4= byte ptr	-4

push	ecx
lea	eax, [esp+4+var_4]
push	eax
call	sub_42A775
pop	ecx
retn
sub_42AA9A endp



; Attributes: bp-based frame

sub_42AAA7 proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_447508
call	__EH_prolog
sub	esp, 10h
lea	eax, [ebp+var_10]
push	esi
mov	esi, edx
push	eax
call	sub_42A775
test	al, al
jz	short loc_42AAE9
push	[ebp+var_10]
lea	eax, [ebp+Memory]
mov	ecx, esi
push	eax
call	sub_405246
and	[ebp+var_4], 0
push	eax
mov	ecx, esi
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	al, 1

loc_42AAE9:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_42AAA7 endp



; Attributes: bp-based frame

sub_42AAF6 proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44751C
call	__EH_prolog
sub	esp, 10h
lea	eax, [ebp+var_10]
push	esi
mov	esi, edx
push	eax
call	sub_42A775
test	al, al
jz	short loc_42AB38
push	[ebp+var_10]
lea	eax, [ebp+Memory]
mov	ecx, esi
push	eax
call	sub_403228
and	[ebp+var_4], 0
push	eax
mov	ecx, esi
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	al, 1

loc_42AB38:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_42AAF6 endp




sub_42AB45 proc	near
push	esi
push	edi
mov	esi, ecx
mov	edi, 105h
cmp	[esi+8], edi
jg	short loc_42AB59
push	edi
call	sub_4034E3

loc_42AB59:		; lpBuffer
push	dword ptr [esi]
push	edi		; nBufferLength
call	ds:GetTempPathA
mov	ecx, esi
mov	edi, eax
call	sub_428D27
test	edi, edi
jbe	short loc_42AB7C
cmp	edi, 104h
ja	short loc_42AB7C
push	1
pop	eax
jmp	short loc_42AB7E

loc_42AB7C:
xor	eax, eax

loc_42AB7E:
pop	edi
pop	esi
retn
sub_42AB45 endp



; Attributes: bp-based frame

sub_42AB81 proc	near

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

mov	eax, offset loc_447538
call	__EH_prolog
sub	esp, 18h
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
mov	eax, [esi]
mov	[esi+4], ebx
mov	[eax], bx
cmp	byte_45D8B4, bl
jz	short loc_42ABED
push	edi
mov	edi, 105h
cmp	[esi+8], edi
jg	short loc_42ABB5
push	edi
call	sub_403396

loc_42ABB5:		; lpBuffer
push	dword ptr [esi]
push	edi		; nBufferLength
call	ds:GetTempPathW
mov	ecx, [esi]
xor	edx, edx
cmp	[ecx], bx
jz	short loc_42ABD1
mov	edi, ecx

loc_42ABC9:
inc	edx
inc	edi
inc	edi
cmp	[edi], bx
jnz	short loc_42ABC9

loc_42ABD1:
mov	[ecx+edx*2], bx
cmp	eax, ebx
mov	[esi+4], edx
pop	edi
jbe	short loc_42ABE9
cmp	eax, 104h
ja	short loc_42ABE9
push	1
pop	eax
jmp	short loc_42AC3C

loc_42ABE9:
xor	eax, eax
jmp	short loc_42AC3C

loc_42ABED:
push	3
lea	ecx, [ebp+var_18]
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_4034E3
lea	ecx, [ebp+var_18]
mov	[ebp+var_4], ebx
call	sub_42AB45
test	al, al
jz	short loc_42AC31
lea	edx, [ebp+var_18]
lea	ecx, [ebp+Memory]
call	sub_429D90
push	eax
mov	ecx, esi
mov	byte ptr [ebp+var_4], 1
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	bl, 1

loc_42AC31:		; Memory
push	[ebp+var_18]
call	sub_4284D8
pop	ecx
mov	al, bl

loc_42AC3C:
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_42AB81 endp




; int __fastcall sub_42AC4A(LPCSTR lpPathName, LPCSTR lpPrefixString, int)
sub_42AC4A proc	near

arg_0= dword ptr  4

push	ebx
push	esi
mov	esi, [esp+8+arg_0]
mov	eax, 105h
push	edi
mov	edi, edx
cmp	[esi+8], eax
mov	ebx, ecx
jg	short loc_42AC67
push	eax
mov	ecx, esi
call	sub_4034E3

loc_42AC67:		; lpTempFileName
push	dword ptr [esi]
push	0		; uUnique
push	edi		; lpPrefixString
push	ebx		; lpPathName
call	ds:GetTempFileNameA
mov	ecx, esi
mov	edi, eax
call	sub_428D27
mov	eax, edi
pop	edi
pop	esi
pop	ebx
retn	4
sub_42AC4A endp



; Attributes: bp-based frame

sub_42AC84 proc	near

var_38=	dword ptr -38h
Memory=	dword ptr -2Ch
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
lpPathName= dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_447582
call	__EH_prolog
sub	esp, 2Ch
push	ebx
xor	ebx, ebx
cmp	byte_45D8B4, bl
push	esi
push	edi
mov	edi, edx
mov	[ebp+lpPathName], ecx
mov	[ebp+var_10], ebx
jz	short loc_42ACE7
mov	esi, [ebp+arg_0]
mov	eax, 104h
cmp	[esi+8], eax
jg	short loc_42ACBB
push	eax
mov	ecx, esi
call	sub_403396

loc_42ACBB:		; lpTempFileName
push	dword ptr [esi]
push	ebx		; uUnique
push	edi		; lpPrefixString
push	[ebp+lpPathName] ; lpPathName
call	ds:GetTempFileNameW
mov	ecx, [esi]
xor	edx, edx
cmp	[ecx], bx
jz	short loc_42ACDB
mov	edi, ecx

loc_42ACD3:
inc	edx
inc	edi
inc	edi
cmp	[edi], bx
jnz	short loc_42ACD3

loc_42ACDB:
mov	[ecx+edx*2], bx
mov	[esi+4], edx
jmp	loc_42AD98

loc_42ACE7:
push	3
lea	ecx, [ebp+var_20]
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
call	sub_4034E3
cmp	edi, ebx
mov	[ebp+var_4], ebx
jz	short loc_42AD1A
mov	edx, edi
lea	ecx, [ebp+var_38]
call	sub_429FBD
mov	[ebp+var_10], 1
mov	esi, [eax]
mov	byte ptr [ebp+var_4], 1
jmp	short loc_42AD1C

loc_42AD1A:
xor	esi, esi

loc_42AD1C:
mov	edx, [ebp+lpPathName]
cmp	edx, ebx
jz	short loc_42AD38
lea	ecx, [ebp+Memory]
call	sub_429FBD
push	2
pop	ecx
or	[ebp+var_10], ecx
mov	[ebp+var_4], ecx
mov	ecx, [eax]
jmp	short loc_42AD3A

loc_42AD38:		; lpPathName
xor	ecx, ecx

loc_42AD3A:
lea	eax, [ebp+var_20]
mov	edx, esi	; lpPrefixString
push	eax		; int
call	sub_42AC4A
test	byte ptr [ebp+var_10], 2
mov	esi, eax
jz	short loc_42AD5A
push	[ebp+Memory]	; Memory
and	[ebp+var_10], 0FFFFFFFDh
call	sub_4284D8
pop	ecx

loc_42AD5A:
test	byte ptr [ebp+var_10], 1
mov	[ebp+var_4], ebx
jz	short loc_42AD6C
push	[ebp+var_38]	; Memory
call	sub_4284D8
pop	ecx

loc_42AD6C:
lea	edx, [ebp+var_20]
lea	ecx, [ebp+var_38]
call	sub_429D90
mov	ecx, [ebp+arg_0]
push	eax
mov	byte ptr [ebp+var_4], 3
call	sub_40312C
push	[ebp+var_38]	; Memory
call	sub_4284D8
push	[ebp+var_20]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
pop	ecx

loc_42AD98:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_42AC84 endp




sub_42ADA9 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8
arg_8= dword ptr  0Ch

push	esi
push	edi
mov	esi, ecx
call	sub_42AE68
push	[esp+8+arg_8]
mov	edx, [esp+0Ch+arg_4]
mov	ecx, [esp+0Ch+arg_0]
call	sub_42AC84
mov	edi, eax
test	edi, edi
jz	short loc_42ADD8
push	[esp+8+arg_8]
lea	ecx, [esi+4]
call	sub_40312C
mov	byte ptr [esi],	1

loc_42ADD8:
mov	eax, edi
pop	edi
pop	esi
retn	0Ch
sub_42ADA9 endp



; Attributes: bp-based frame

sub_42ADDF proc	near

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

mov	eax, offset loc_447594
call	__EH_prolog
sub	esp, 0Ch
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_403396
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], ebx
call	sub_42AB81
test	al, al
jz	short loc_42AE4D
push	[ebp+arg_4]
mov	ecx, esi
push	[ebp+arg_0]
push	[ebp+Memory]
call	sub_42ADA9
test	eax, eax
jz	short loc_42AE2C
mov	bl, 1
jmp	short loc_42AE4D

loc_42AE2C:
lea	ecx, [ebp+Memory]
call	sub_429CCE
test	al, al
jz	short loc_42AE4D
push	[ebp+arg_4]
mov	ecx, esi
push	[ebp+arg_0]
push	[ebp+Memory]
call	sub_42ADA9
test	eax, eax
setnz	bl

loc_42AE4D:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
mov	al, bl
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_42ADDF endp




sub_42AE68 proc	near
push	esi
mov	esi, ecx
cmp	byte ptr [esi],	0
jnz	short loc_42AE74
mov	al, 1
pop	esi
retn

loc_42AE74:
mov	ecx, [esi+4]
call	sub_42A481
neg	al
sbb	al, al
push	0
inc	al
mov	[esi], al
pop	eax
setz	al
pop	esi
retn
sub_42AE68 endp



; Attributes: bp-based frame

sub_42AE8C proc	near

var_1C=	byte ptr -1Ch
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4475C0
call	__EH_prolog
sub	esp, 10h
push	esi
push	edi
mov	edi, ecx
mov	esi, edx
lea	ecx, [ebp+var_1C]
call	sub_42AF43

loc_42AEA7:
and	[ebp+var_4], 0
push	esi
push	edi
lea	ecx, [ebp+var_1C]
call	sub_42ADDF
test	al, al
jz	short loc_42AF0E
lea	ecx, [ebp+var_1C]
call	sub_42AE68
test	al, al
jz	short loc_42AF17
lea	ecx, [ebp+var_1C]
mov	[ebp+var_4], 3
call	sub_42AE68
or	[ebp+var_4], 0FFFFFFFFh
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	ecx, [esi]
call	sub_42B681
test	al, al
jnz	short loc_42AF04
mov	ecx, [esi]
call	sub_42A1B3
test	al, al
jnz	short loc_42AF3F
call	ds:GetLastError
cmp	eax, 0B7h
jnz	short loc_42AF2F

loc_42AF04:
lea	ecx, [ebp+var_1C]
call	sub_42AF43
jmp	short loc_42AEA7

loc_42AF0E:
mov	[ebp+var_4], 1
jmp	short loc_42AF1E

loc_42AF17:
mov	[ebp+var_4], 2

loc_42AF1E:
lea	ecx, [ebp+var_1C]
call	sub_42AE68
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_42AF2F:
xor	al, al

loc_42AF31:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn

loc_42AF3F:
mov	al, 1
jmp	short loc_42AF31
sub_42AE8C endp




sub_42AF43 proc	near
push	esi
mov	esi, ecx
xor	eax, eax
push	3
lea	ecx, [esi+4]
mov	[esi], al
mov	[ecx], eax
mov	[ecx+4], eax
mov	[ecx+8], eax
call	sub_403396
mov	eax, esi
pop	esi
retn
sub_42AF43 endp

; START	OF FUNCTION CHUNK FOR sub_4475A0

loc_42AF60:		; Microsoft VisualC 2-11/net runtime
mov	eax, offset unknown_libname_30
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp-10h], esi
and	dword ptr [ebp-4], 0
call	sub_42AE68
push	dword ptr [esi+4] ; Memory
call	sub_4284D8
pop	ecx
pop	esi
mov	ecx, [ebp-0Ch]
mov	large fs:0, ecx
leave
retn
; END OF FUNCTION CHUNK	FOR sub_4475A0



sub_42AF90 proc	near

arg_0= dword ptr  4

push	esi
mov	esi, ecx
call	sub_4027FD
mov	ecx, [esp+4+arg_0]
lea	edx, [esi+4]
call	sub_42AE8C
mov	[esi], al
pop	esi
retn	4
sub_42AF90 endp




sub_42AFAA proc	near

arg_0= byte ptr	 4

push	ebx
push	esi
mov	esi, ecx
mov	eax, [esi+4]
test	eax, eax
jz	short loc_42AFD7
mov	ecx, [esi]
mov	bl, [esp+8+arg_0]
lea	eax, [eax+ecx-1]

loc_42AFBF:
cmp	[eax], bl
jz	short loc_42AFD3
mov	ecx, [esi]
cmp	eax, ecx
jz	short loc_42AFD7
push	eax		; lpszCurrent
push	ecx		; lpszStart
call	ds:CharPrevA
jmp	short loc_42AFBF

loc_42AFD3:
sub	eax, [esi]
jmp	short loc_42AFDA

loc_42AFD7:
or	eax, 0FFFFFFFFh

loc_42AFDA:
pop	esi
pop	ebx
retn	4
sub_42AFAA endp




sub_42AFDF proc	near
mov	eax, [ecx+20h]
shr	eax, 4
test	al, 1
jz	short loc_42B00F
mov	eax, [ecx+2Ch]
test	eax, eax
jz	short loc_42B00F
mov	ecx, [ecx+28h]
cmp	byte ptr [ecx],	2Eh
jnz	short loc_42B00F
cmp	eax, 1
jz	short loc_42B00B
cmp	byte ptr [ecx+1], 2Eh
jnz	short loc_42B008
cmp	eax, 2
jz	short loc_42B00B

loc_42B008:
xor	eax, eax
retn

loc_42B00B:
push	1
pop	eax
retn

loc_42B00F:
xor	al, al
retn
sub_42AFDF endp




sub_42B012 proc	near
mov	eax, [ecx+20h]
shr	eax, 4
test	al, 1
jz	short loc_42B044
mov	eax, [ecx+2Ch]
test	eax, eax
jz	short loc_42B044
mov	ecx, [ecx+28h]
cmp	word ptr [ecx],	2Eh
jnz	short loc_42B044
cmp	eax, 1
jz	short loc_42B040
cmp	word ptr [ecx+2], 2Eh
jnz	short loc_42B03D
cmp	eax, 2
jz	short loc_42B040

loc_42B03D:
xor	eax, eax
retn

loc_42B040:
push	1
pop	eax
retn

loc_42B044:
xor	al, al
retn
sub_42B012 endp




sub_42B047 proc	near
push	esi
mov	esi, ecx
mov	eax, [esi]
cmp	eax, 0FFFFFFFFh
jz	short loc_42B063
push	eax		; hFindFile
call	ds:FindClose
test	eax, eax
jnz	short loc_42B060
xor	al, al
pop	esi
retn

loc_42B060:
or	dword ptr [esi], 0FFFFFFFFh

loc_42B063:
mov	al, 1
pop	esi
retn
sub_42B047 endp



; Attributes: bp-based frame

; int __stdcall	sub_42B067(LPCSTR lpFileName, int)
sub_42B067 proc	near

FindFileData= _WIN32_FIND_DATAA	ptr -140h
lpFileName= dword ptr  8
arg_4= dword ptr  0Ch

push	ebp
mov	ebp, esp
sub	esp, 140h
push	esi
mov	esi, ecx
call	sub_42B047
test	al, al
jz	short loc_42B093
lea	eax, [ebp+FindFileData]
push	eax		; lpFindFileData
push	[ebp+lpFileName] ; lpFileName
call	ds:FindFirstFileA
cmp	eax, 0FFFFFFFFh
mov	[esi], eax
jnz	short loc_42B097

loc_42B093:
xor	al, al
jmp	short loc_42B0A7

loc_42B097:
mov	edx, [ebp+arg_4]
lea	ecx, [ebp+FindFileData]
call	sub_42B0AC
mov	al, 1

loc_42B0A7:
pop	esi
leave
retn	8
sub_42B067 endp




sub_42B0AC proc	near
push	ebx
push	esi
push	edi
mov	edi, ecx
mov	esi, edx
push	1
mov	eax, [edi]
push	0
mov	[esi+20h], eax
mov	eax, [edi+4]
mov	[esi+8], eax
mov	eax, [edi+8]
mov	[esi+0Ch], eax
mov	eax, [edi+0Ch]
mov	[esi+10h], eax
mov	eax, [edi+10h]
mov	[esi+14h], eax
mov	eax, [edi+14h]
mov	[esi+18h], eax
mov	eax, [edi+18h]
push	0
mov	[esi+1Ch], eax
push	dword ptr [edi+1Ch]
call	__allmul
mov	ecx, [edi+20h]
xor	ebx, ebx
add	eax, ecx
lea	ecx, [esi+28h]
adc	edx, ebx
and	[esi+24h], bl
add	edi, 2Ch
mov	[esi], eax
push	edi
mov	[esi+4], edx
call	sub_41E124
pop	edi
pop	esi
pop	ebx
retn
sub_42B0AC endp



; Attributes: bp-based frame

; int __stdcall	sub_42B10B(LPCWSTR lpFileName, int)
sub_42B10B proc	near

FindFileData= _WIN32_FIND_DATAW	ptr -3C0h
var_170= byte ptr -170h
var_30=	dword ptr -30h
var_24=	dword ptr -24h
Memory=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
lpFileName= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_4475F4
call	__EH_prolog
sub	esp, 3B4h
push	esi
mov	esi, ecx
call	sub_42B047
test	al, al
jz	loc_42B213
push	ebx
xor	ebx, ebx
cmp	byte_45D8B4, bl
jz	short loc_42B1A6
lea	eax, [ebp+FindFileData]
push	edi
mov	edi, ds:FindFirstFileW
push	eax		; lpFindFileData
push	[ebp+lpFileName] ; lpFileName
call	edi ; FindFirstFileW
cmp	eax, 0FFFFFFFFh
mov	[esi], eax
jnz	short loc_42B190
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_403396
mov	ecx, [ebp+lpFileName]
lea	edx, [ebp+Memory]
mov	[ebp+var_4], ebx
call	sub_42BD5E
test	al, al
jz	short loc_42B183
lea	eax, [ebp+FindFileData]
push	eax		; lpFindFileData
push	[ebp+Memory]	; lpFileName
call	edi ; FindFirstFileW
mov	[esi], eax

loc_42B183:		; Memory
push	[ebp+Memory]
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx

loc_42B190:
cmp	dword ptr [esi], 0FFFFFFFFh
pop	edi
jz	short loc_42B20A
mov	edx, [ebp+arg_4]
lea	ecx, [ebp+FindFileData]
call	sub_42B222
jmp	short loc_42B20A

loc_42B1A6:
push	[ebp+lpFileName]
lea	ecx, [ebp+var_24]
call	sub_403091
mov	[ebp+var_4], 1
call	ds:AreFileApisANSI
neg	eax
sbb	eax, eax
lea	edx, [ebp+var_24]
inc	eax
lea	ecx, [ebp+var_30]
push	eax
call	sub_428673
mov	eax, [eax]
lea	ecx, [ebp+var_170]
push	ecx		; lpFindFileData
push	eax		; lpFileName
call	ds:FindFirstFileA
push	[ebp+var_30]	; Memory
mov	[esi], eax
call	sub_4284D8
push	[ebp+var_24]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
cmp	dword ptr [esi], 0FFFFFFFFh
pop	ecx
pop	ecx
jz	short loc_42B20A
mov	edx, [ebp+arg_4]
lea	ecx, [ebp+var_170]
call	sub_42B281

loc_42B20A:
xor	eax, eax
cmp	dword ptr [esi], 0FFFFFFFFh
pop	ebx
setnz	al

loc_42B213:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_42B10B endp




sub_42B222 proc	near
push	ebx
push	esi
push	edi
mov	edi, ecx
mov	esi, edx
push	1
mov	eax, [edi]
push	0
mov	[esi+20h], eax
mov	eax, [edi+4]
mov	[esi+8], eax
mov	eax, [edi+8]
mov	[esi+0Ch], eax
mov	eax, [edi+0Ch]
mov	[esi+10h], eax
mov	eax, [edi+10h]
mov	[esi+14h], eax
mov	eax, [edi+14h]
mov	[esi+18h], eax
mov	eax, [edi+18h]
push	0
mov	[esi+1Ch], eax
push	dword ptr [edi+1Ch]
call	__allmul
mov	ecx, [edi+20h]
xor	ebx, ebx
add	eax, ecx
lea	ecx, [esi+28h]
adc	edx, ebx
and	[esi+24h], bl
add	edi, 2Ch
mov	[esi], eax
push	edi
mov	[esi+4], edx
call	sub_404722
pop	edi
pop	esi
pop	ebx
retn
sub_42B222 endp



; Attributes: bp-based frame

sub_42B281 proc	near

Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_447610
call	__EH_prolog
sub	esp, 18h
push	ebx
push	esi
push	edi
mov	edi, ecx
mov	esi, edx
push	1
mov	eax, [edi]
push	0
mov	[esi+20h], eax
mov	eax, [edi+4]
mov	[esi+8], eax
mov	eax, [edi+8]
mov	[esi+0Ch], eax
mov	eax, [edi+0Ch]
mov	[esi+10h], eax
mov	eax, [edi+10h]
mov	[esi+14h], eax
mov	eax, [edi+14h]
mov	[esi+18h], eax
mov	eax, [edi+18h]
push	0
mov	[esi+1Ch], eax
push	dword ptr [edi+1Ch]
call	__allmul
mov	ecx, [edi+20h]
xor	ebx, ebx
add	eax, ecx
lea	ecx, [ebp+var_18]
adc	edx, ebx
and	[esi+24h], bl
add	edi, 2Ch
mov	[esi], eax
push	edi
mov	[esi+4], edx
call	sub_41E0DD
and	[ebp+var_4], ebx
call	ds:AreFileApisANSI
neg	eax
sbb	eax, eax
lea	edx, [ebp+var_18]
inc	eax
lea	ecx, [ebp+Memory]
push	eax		; CodePage
call	sub_42B331
push	eax
lea	ecx, [esi+28h]
mov	byte ptr [ebp+var_4], 1
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_18]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_42B281 endp



; Attributes: bp-based frame

; int __stdcall	sub_42B331(UINT	CodePage)
sub_42B331 proc	near

var_4= dword ptr -4
CodePage= dword	ptr  8

push	ebp
mov	ebp, esp
push	ecx
and	[ebp+var_4], 0
push	esi
push	[ebp+CodePage]	; CodePage
mov	esi, ecx
call	sub_42850B
mov	eax, esi
pop	esi
leave
retn	4
sub_42B331 endp



; Attributes: bp-based frame

sub_42B34B proc	near

FindFileData= _WIN32_FIND_DATAA	ptr -140h
arg_0= dword ptr  8

push	ebp
mov	ebp, esp
sub	esp, 140h
lea	eax, [ebp+FindFileData]
push	ebx
push	eax		; lpFindFileData
push	dword ptr [ecx]	; hFindFile
call	ds:FindNextFileA
test	eax, eax
setnz	bl
test	bl, bl
jz	short loc_42B37B
mov	edx, [ebp+arg_0]
lea	ecx, [ebp+FindFileData]
call	sub_42B0AC

loc_42B37B:
mov	al, bl
pop	ebx
leave
retn	4
sub_42B34B endp



; Attributes: bp-based frame

sub_42B382 proc	near

FindFileData= _WIN32_FIND_DATAW	ptr -250h
arg_0= dword ptr  8

push	ebp
mov	ebp, esp
sub	esp, 250h
cmp	byte_45D8B4, 0
jz	short loc_42B3B7
lea	eax, [ebp+FindFileData]
push	eax		; lpFindFileData
push	dword ptr [ecx]	; hFindFile
call	ds:FindNextFileW
test	eax, eax
jz	short loc_42B3CA
mov	edx, [ebp+arg_0]
lea	ecx, [ebp+FindFileData]
call	sub_42B222
jmp	short loc_42B3DC

loc_42B3B7:
lea	eax, [ebp+FindFileData.cFileName+0E4h]
push	eax		; lpFindFileData
push	dword ptr [ecx]	; hFindFile
call	ds:FindNextFileA
test	eax, eax
jnz	short loc_42B3CE

loc_42B3CA:
xor	al, al
jmp	short locret_42B3DE

loc_42B3CE:
mov	edx, [ebp+arg_0]
lea	ecx, [ebp+FindFileData.cFileName+0E4h]
call	sub_42B281

loc_42B3DC:
mov	al, 1

locret_42B3DE:
leave
retn	4
sub_42B382 endp




sub_42B3E2 proc	near
xor	eax, eax
mov	[ecx], eax
mov	[ecx+4], eax
mov	[ecx+0Ch], eax
mov	[ecx+8], eax
mov	[ecx+14h], eax
mov	[ecx+10h], eax
mov	[ecx+1Ch], eax
mov	[ecx+18h], eax
mov	[ecx+20h], eax
retn
sub_42B3E2 endp



; Attributes: bp-based frame

; int __stdcall	sub_42B3FF(LPCSTR lpFileName)
sub_42B3FF proc	near

var_1C=	dword ptr -1Ch
var_17=	byte ptr -17h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
lpFileName= dword ptr  8

mov	eax, offset loc_44762C
call	__EH_prolog
sub	esp, 10h
push	ebx
push	esi
push	edi
mov	edi, [ebp+lpFileName]
mov	esi, ecx
mov	ecx, edi
call	sub_42BAEE
test	al, al
jz	short loc_42B46C
mov	ecx, esi
call	sub_42B3E2
or	[ebp+var_1C], 0FFFFFFFFh
mov	byte ptr [esi+24h], 1
xor	ebx, ebx
push	edi		; lpFileName
lea	ecx, [ebp+var_1C]
mov	[ebp+var_4], ebx
call	sub_42C0DD
test	al, al
jz	short loc_42B45E
add	edi, 4
lea	ecx, [esi+28h]
push	edi
call	sub_41E124
cmp	[ebp+var_17], bl
jz	short loc_42B45C
mov	eax, [ebp+var_14]
mov	[esi], eax
mov	eax, [ebp+var_10]
mov	[esi+4], eax

loc_42B45C:
mov	bl, 1

loc_42B45E:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_1C]
call	sub_42BD78
jmp	short loc_42B48B

loc_42B46C:
or	[ebp+lpFileName], 0FFFFFFFFh
push	esi		; int
push	edi		; lpFileName
lea	ecx, [ebp+lpFileName]
mov	[ebp+var_4], 1
call	sub_42B067
lea	ecx, [ebp+lpFileName]
mov	bl, al
call	sub_42B047

loc_42B48B:
mov	ecx, [ebp+var_C]
pop	edi
mov	al, bl
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_42B3FF endp



; Attributes: bp-based frame

; int __stdcall	sub_42B49E(wchar_t *lpFileName)
sub_42B49E proc	near

var_1C=	dword ptr -1Ch
var_17=	byte ptr -17h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
lpFileName= dword ptr  8

mov	eax, offset loc_447648
call	__EH_prolog
sub	esp, 10h
push	ebx
push	esi
push	edi
mov	edi, [ebp+lpFileName]
mov	esi, ecx
mov	ecx, edi	; Str
call	sub_42BB62
test	al, al
jz	short loc_42B50B
mov	ecx, esi
call	sub_42B3E2
or	[ebp+var_1C], 0FFFFFFFFh
mov	byte ptr [esi+24h], 1
xor	ebx, ebx
push	edi		; lpFileName
lea	ecx, [ebp+var_1C]
mov	[ebp+var_4], ebx
call	sub_42C145
test	al, al
jz	short loc_42B4FD
add	edi, 8
lea	ecx, [esi+28h]
push	edi
call	sub_404722
cmp	[ebp+var_17], bl
jz	short loc_42B4FB
mov	eax, [ebp+var_14]
mov	[esi], eax
mov	eax, [ebp+var_10]
mov	[esi+4], eax

loc_42B4FB:
mov	bl, 1

loc_42B4FD:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_1C]
call	sub_42BD78
jmp	short loc_42B52A

loc_42B50B:
or	[ebp+lpFileName], 0FFFFFFFFh
push	esi		; int
push	edi		; lpFileName
lea	ecx, [ebp+lpFileName]
mov	[ebp+var_4], 1
call	sub_42B10B
lea	ecx, [ebp+lpFileName]
mov	bl, al
call	sub_42B047

loc_42B52A:
mov	ecx, [ebp+var_C]
pop	edi
mov	al, bl
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_42B49E endp



; Attributes: bp-based frame

sub_42B53D proc	near

var_44=	byte ptr -44h
var_24=	dword ptr -24h
Memory=	dword ptr -1Ch
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44765C
call	__EH_prolog
sub	esp, 38h
push	ebx
push	esi
mov	esi, ecx
lea	ecx, [ebp+var_44]
call	sub_42A52D
and	[ebp+var_4], 0
push	esi		; lpFileName
lea	ecx, [ebp+var_44]
call	sub_42B3FF
test	al, al
jz	short loc_42B573
mov	eax, [ebp+var_24]
mov	bl, 1
shr	eax, 4
test	bl, al
jz	short loc_42B575

loc_42B573:
xor	bl, bl

loc_42B575:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
mov	al, bl
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_42B53D endp



; Attributes: bp-based frame

sub_42B58E proc	near

var_44=	byte ptr -44h
var_24=	dword ptr -24h
Memory=	dword ptr -1Ch
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_447670
call	__EH_prolog
sub	esp, 38h
push	ebx
push	esi
mov	esi, ecx
lea	ecx, [ebp+var_44]
call	sub_42A52D
and	[ebp+var_4], 0
push	esi		; lpFileName
lea	ecx, [ebp+var_44]
call	sub_42B3FF
test	al, al
jz	short loc_42B5C4
mov	eax, [ebp+var_24]
mov	bl, 1
shr	eax, 4
test	bl, al
jnz	short loc_42B5C6

loc_42B5C4:
xor	bl, bl

loc_42B5C6:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
mov	al, bl
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_42B58E endp



; Attributes: bp-based frame

sub_42B5DF proc	near

var_44=	byte ptr -44h
var_24=	dword ptr -24h
Memory=	dword ptr -1Ch
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_447684
call	__EH_prolog
sub	esp, 38h
push	ebx
push	esi
mov	esi, ecx
lea	ecx, [ebp+var_44]
call	sub_404EA2
and	[ebp+var_4], 0
push	esi		; lpFileName
lea	ecx, [ebp+var_44]
call	sub_42B49E
test	al, al
jz	short loc_42B615
mov	eax, [ebp+var_24]
mov	bl, 1
shr	eax, 4
test	bl, al
jz	short loc_42B617

loc_42B615:
xor	bl, bl

loc_42B617:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
mov	al, bl
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_42B5DF endp



; Attributes: bp-based frame

sub_42B630 proc	near

var_44=	byte ptr -44h
var_24=	dword ptr -24h
Memory=	dword ptr -1Ch
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_447698
call	__EH_prolog
sub	esp, 38h
push	ebx
push	esi
mov	esi, ecx
lea	ecx, [ebp+var_44]
call	sub_404EA2
and	[ebp+var_4], 0
push	esi		; lpFileName
lea	ecx, [ebp+var_44]
call	sub_42B49E
test	al, al
jz	short loc_42B666
mov	eax, [ebp+var_24]
mov	bl, 1
shr	eax, 4
test	bl, al
jnz	short loc_42B668

loc_42B666:
xor	bl, bl

loc_42B668:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
mov	al, bl
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_42B630 endp



; Attributes: bp-based frame

sub_42B681 proc	near

var_44=	byte ptr -44h
Memory=	dword ptr -1Ch
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4476AC
call	__EH_prolog
sub	esp, 38h
push	ebx
push	esi
mov	esi, ecx
lea	ecx, [ebp+var_44]
call	sub_404EA2
and	[ebp+var_4], 0
push	esi		; lpFileName
lea	ecx, [ebp+var_44]
call	sub_42B49E
mov	bl, al
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	al, bl
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_42B681 endp




sub_42B6C2 proc	near

arg_0= dword ptr  4

cmp	dword ptr [ecx], 0FFFFFFFFh
jz	short loc_42B6D2
push	[esp+arg_0]
call	sub_42B34B
jmp	short locret_42B6DF

loc_42B6D2:		; int
push	[esp+arg_0]
mov	eax, [ecx+4]
push	eax		; lpFileName
call	sub_42B067

locret_42B6DF:
retn	4
sub_42B6C2 endp




sub_42B6E2 proc	near

arg_0= dword ptr  4

push	esi
push	edi
mov	edi, [esp+8+arg_0]
mov	esi, ecx

loc_42B6EA:
push	edi
mov	ecx, esi
call	sub_42B6C2
test	al, al
jz	short loc_42B703
mov	ecx, edi
call	sub_42AFDF
test	al, al
jz	short loc_42B707
jmp	short loc_42B6EA

loc_42B703:
xor	al, al
jmp	short loc_42B709

loc_42B707:
mov	al, 1

loc_42B709:
pop	edi
pop	esi
retn	4
sub_42B6E2 endp




sub_42B70E proc	near

arg_0= dword ptr  4

cmp	dword ptr [ecx], 0FFFFFFFFh
jz	short loc_42B71E
push	[esp+arg_0]
call	sub_42B382
jmp	short locret_42B72B

loc_42B71E:		; int
push	[esp+arg_0]
mov	eax, [ecx+4]
push	eax		; lpFileName
call	sub_42B10B

locret_42B72B:
retn	4
sub_42B70E endp




sub_42B72E proc	near

arg_0= dword ptr  4

push	esi
push	edi
mov	edi, [esp+8+arg_0]
mov	esi, ecx

loc_42B736:
push	edi
mov	ecx, esi
call	sub_42B70E
test	al, al
jz	short loc_42B74F
mov	ecx, edi
call	sub_42B012
test	al, al
jz	short loc_42B753
jmp	short loc_42B736

loc_42B74F:
xor	al, al
jmp	short loc_42B755

loc_42B753:
mov	al, 1

loc_42B755:
pop	edi
pop	esi
retn	4
sub_42B72E endp




sub_42B75A proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	[esp+arg_0]
call	sub_42B72E
test	al, al
mov	eax, [esp+arg_4]
jz	short loc_42B772
mov	byte ptr [eax],	1
mov	al, 1
jmp	short locret_42B783

loc_42B772:
and	byte ptr [eax],	0
call	ds:GetLastError
sub	eax, 12h
neg	eax
sbb	eax, eax
inc	eax

locret_42B783:
retn	8
sub_42B75A endp




sub_42B786 proc	near
push	esi
mov	esi, ecx
mov	eax, [esi]
cmp	eax, 0FFFFFFFFh
jz	short loc_42B7A6
test	eax, eax
jz	short loc_42B7A6
push	eax		; hChangeHandle
call	ds:FindCloseChangeNotification
test	eax, eax
jnz	short loc_42B7A3
xor	al, al
pop	esi
retn

loc_42B7A3:
or	dword ptr [esi], 0FFFFFFFFh

loc_42B7A6:
mov	al, 1
pop	esi
retn
sub_42B786 endp




; int __stdcall	sub_42B7AA(LPCSTR lpPathName, char, DWORD dwNotifyFilter)
sub_42B7AA proc	near

lpPathName= dword ptr  4
arg_4= byte ptr	 8
dwNotifyFilter=	dword ptr  0Ch

xor	eax, eax
push	esi
cmp	[esp+4+arg_4], al
push	[esp+4+dwNotifyFilter] ; dwNotifyFilter
mov	esi, ecx
setnz	al
push	eax		; bWatchSubtree
push	[esp+0Ch+lpPathName] ; lpPathName
call	ds:FindFirstChangeNotificationA
mov	[esi], eax
pop	esi
retn	0Ch
sub_42B7AA endp



; Attributes: bp-based frame

; int __stdcall	sub_42B7CB(LPCWSTR lpPathName, BOOL bWatchSubtree, DWORD dwNotifyFilter)
sub_42B7CB proc	near

Memory=	dword ptr -30h
var_24=	dword ptr -24h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
lpPathName= dword ptr  8
bWatchSubtree= dword ptr  0Ch
dwNotifyFilter=	dword ptr  10h

mov	eax, offset loc_4476C8
call	__EH_prolog
sub	esp, 24h
push	ebx
xor	ebx, ebx
cmp	byte_45D8B4, bl
push	esi
push	edi
mov	edi, ecx
jnz	short loc_42B834
push	[ebp+lpPathName]
lea	ecx, [ebp+var_24]
call	sub_403091
mov	[ebp+var_4], ebx
call	ds:AreFileApisANSI
neg	eax
sbb	eax, eax
lea	edx, [ebp+var_24]
inc	eax
lea	ecx, [ebp+Memory]
push	eax
call	sub_428673
push	[ebp+dwNotifyFilter] ; dwNotifyFilter
mov	eax, [eax]
mov	ecx, edi
push	[ebp+bWatchSubtree] ; char
push	eax		; lpPathName
call	sub_42B7AA
push	[ebp+Memory]	; Memory
mov	esi, eax
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
pop	ecx
jmp	short loc_42B89A

loc_42B834:		; dwNotifyFilter
push	[ebp+dwNotifyFilter]
xor	eax, eax
cmp	byte ptr [ebp+bWatchSubtree], bl
mov	esi, ds:FindFirstChangeNotificationW
setnz	al
push	eax		; bWatchSubtree
mov	[ebp+bWatchSubtree], eax
push	[ebp+lpPathName] ; lpPathName
call	esi ; FindFirstChangeNotificationW
cmp	eax, 0FFFFFFFFh
mov	[edi], eax
jz	short loc_42B859
cmp	eax, ebx
jnz	short loc_42B898

loc_42B859:
push	3
lea	ecx, [ebp+var_18]
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_403396
mov	ecx, [ebp+lpPathName]
lea	edx, [ebp+var_18]
mov	[ebp+var_4], 1
call	sub_42BD5E
test	al, al
jz	short loc_42B88F
push	[ebp+dwNotifyFilter] ; dwNotifyFilter
push	[ebp+bWatchSubtree] ; bWatchSubtree
push	[ebp+var_18]	; lpPathName
call	esi ; FindFirstChangeNotificationW
mov	[edi], eax

loc_42B88F:		; Memory
push	[ebp+var_18]
call	sub_4284D8
pop	ecx

loc_42B898:
mov	eax, [edi]

loc_42B89A:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_42B7CB endp



; Attributes: bp-based frame

sub_42B8AB proc	near

lpBuffer= dword	ptr -2Ch
var_28=	dword ptr -28h
var_24=	dword ptr -24h
Memory=	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_4= dword ptr -4

mov	eax, offset loc_4476E4
call	__EH_prolog
sub	esp, 20h
push	ebx
push	esi
push	edi
mov	[ebp+var_10], ecx
call	sub_428327
mov	esi, ds:GetLogicalDriveStringsA
xor	ebx, ebx
push	ebx		; lpBuffer
push	ebx		; nBufferLength
call	esi ; GetLogicalDriveStringsA
mov	edi, eax
cmp	edi, ebx
jnz	short loc_42B8DC
xor	al, al
jmp	loc_42B97B

loc_42B8DC:
push	3
lea	ecx, [ebp+lpBuffer]
mov	[ebp+lpBuffer],	ebx
mov	[ebp+var_28], ebx
mov	[ebp+var_24], ebx
call	sub_4034E3
cmp	edi, [ebp+var_24]
mov	[ebp+var_4], ebx
jl	short loc_42B900
push	edi
lea	ecx, [ebp+lpBuffer]
call	sub_4034E3

loc_42B900:		; lpBuffer
push	[ebp+lpBuffer]
push	edi		; nBufferLength
call	esi ; GetLogicalDriveStringsA
mov	esi, eax
cmp	esi, ebx
jz	short loc_42B970
cmp	esi, edi
ja	short loc_42B970
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
call	sub_4034E3
xor	edi, edi
cmp	esi, ebx
mov	byte ptr [ebp+var_4], 1
jbe	short loc_42B960

loc_42B92D:
mov	eax, [ebp+lpBuffer]
mov	al, [edi+eax]
cmp	al, bl
mov	byte ptr [ebp+var_14], al
jnz	short loc_42B950
mov	ecx, [ebp+var_10]
lea	eax, [ebp+Memory]
push	eax
call	sub_4128A8
mov	eax, [ebp+Memory]
mov	[ebp+var_1C], ebx
mov	[eax], bl
jmp	short loc_42B95B

loc_42B950:
push	[ebp+var_14]
lea	ecx, [ebp+Memory]
call	sub_412848

loc_42B95B:
inc	edi
cmp	edi, esi
jb	short loc_42B92D

loc_42B960:
cmp	[ebp+var_1C], ebx
jnz	short loc_42B967
mov	bl, 1

loc_42B967:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx

loc_42B970:		; Memory
push	[ebp+lpBuffer]
call	sub_4284D8
pop	ecx
mov	al, bl

loc_42B97B:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_42B8AB endp



; Attributes: bp-based frame

sub_42B98A proc	near

var_4C=	dword ptr -4Ch
var_44=	dword ptr -44h
var_40=	dword ptr -40h
var_38=	dword ptr -38h
lpBuffer= dword	ptr -2Ch
var_28=	dword ptr -28h
var_24=	dword ptr -24h
Memory=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_447718
call	__EH_prolog
sub	esp, 40h
push	ebx
push	esi
push	edi
mov	[ebp+var_14], ecx
call	sub_428327
xor	ebx, ebx
cmp	byte_45D8B4, bl
jz	loc_42BA65
mov	esi, ds:GetLogicalDriveStringsW
push	ebx		; lpBuffer
push	ebx		; nBufferLength
call	esi ; GetLogicalDriveStringsW
mov	edi, eax
cmp	edi, ebx
jnz	short loc_42B9C7
xor	al, al
jmp	loc_42BADF

loc_42B9C7:
push	3
lea	ecx, [ebp+lpBuffer]
mov	[ebp+lpBuffer],	ebx
mov	[ebp+var_28], ebx
mov	[ebp+var_24], ebx
call	sub_403396
cmp	edi, [ebp+var_24]
mov	[ebp+var_4], ebx
jl	short loc_42B9EB
push	edi
lea	ecx, [ebp+lpBuffer]
call	sub_403396

loc_42B9EB:		; lpBuffer
push	[ebp+lpBuffer]
push	edi		; nBufferLength
call	esi ; GetLogicalDriveStringsW
mov	esi, eax
cmp	esi, ebx
jz	short loc_42BA58
cmp	esi, edi
ja	short loc_42BA58
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
call	sub_403396
xor	edi, edi
cmp	esi, ebx
mov	byte ptr [ebp+var_4], 1
jbe	short loc_42BA49

loc_42BA18:
mov	eax, [ebp+lpBuffer]
mov	ax, [eax+edi*2]
cmp	ax, bx
jnz	short loc_42BA3B
mov	ecx, [ebp+var_14]
lea	eax, [ebp+Memory]
push	eax
call	sub_4032B4
mov	eax, [ebp+Memory]
mov	[ebp+var_1C], ebx
mov	[eax], bx
jmp	short loc_42BA44

loc_42BA3B:
push	eax
lea	ecx, [ebp+Memory]
call	sub_40316A

loc_42BA44:
inc	edi
cmp	edi, esi
jb	short loc_42BA18

loc_42BA49:
cmp	[ebp+var_1C], ebx
push	[ebp+Memory]	; Memory
setz	bl
call	sub_4284D8
pop	ecx

loc_42BA58:		; Memory
push	[ebp+lpBuffer]
call	sub_4284D8
pop	ecx
mov	al, bl
jmp	short loc_42BADF

loc_42BA65:
push	4
lea	ecx, [ebp+var_4C]
call	sub_402794
mov	edi, offset off_44C320
mov	[ebp+var_4C], edi
lea	ecx, [ebp+var_4C]
mov	[ebp+var_4], 2
call	sub_42B8AB
xor	esi, esi
cmp	[ebp+var_44], ebx
mov	[ebp+var_D], al
jle	short loc_42BABE

loc_42BA90:
mov	eax, [ebp+var_40]
lea	ecx, [ebp+var_38]
mov	edx, [eax+esi*4]
call	sub_41242C
mov	ecx, [ebp+var_14]
push	eax
mov	byte ptr [ebp+var_4], 3
call	sub_4032B4
mov	byte ptr [ebp+var_4], 2
push	[ebp+var_38]	; Memory
call	sub_4284D8
inc	esi
pop	ecx
cmp	esi, [ebp+var_44]
jl	short loc_42BA90

loc_42BABE:
mov	[ebp+var_4C], edi
lea	ecx, [ebp+var_4C]
mov	[ebp+var_4], 4
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_4C]
call	sub_4282FE
mov	al, [ebp+var_D]

loc_42BADF:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_42B98A endp




sub_42BAEE proc	near
push	esi
mov	esi, ecx
push	edi
cmp	byte ptr [esi],	5Ch
jnz	short loc_42BB5D
cmp	byte ptr [esi+1], 5Ch
jnz	short loc_42BB5D
cmp	byte ptr [esi+2], 2Eh
jnz	short loc_42BB5D
cmp	byte ptr [esi+3], 5Ch
jnz	short loc_42BB5D
xor	edi, edi

loc_42BB0B:
inc	edi
cmp	byte ptr [edi+esi], 0
jnz	short loc_42BB0B
cmp	edi, 6
jnz	short loc_42BB1F
cmp	byte ptr [esi+5], 3Ah
jnz	short loc_42BB5D
jmp	short loc_42BB59

loc_42BB1F:
cmp	edi, 12h
jl	short loc_42BB5D
cmp	edi, 16h
jg	short loc_42BB5D
push	0Dh		; Size
lea	eax, [esi+4]
push	offset aPhysicaldriv_0 ; "PhysicalDrive"
push	eax		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_42BB5D
push	11h
pop	eax
cmp	edi, eax
jle	short loc_42BB59

loc_42BB47:
mov	cl, [eax+esi]
cmp	cl, 30h
jl	short loc_42BB5D
cmp	cl, 39h
jg	short loc_42BB5D
inc	eax
cmp	eax, edi
jl	short loc_42BB47

loc_42BB59:
mov	al, 1
jmp	short loc_42BB5F

loc_42BB5D:
xor	al, al

loc_42BB5F:
pop	edi
pop	esi
retn
sub_42BAEE endp




; int __fastcall sub_42BB62(wchar_t *Str)
sub_42BB62 proc	near
push	esi
mov	esi, ecx
push	edi
cmp	word ptr [esi],	5Ch
jnz	short loc_42BBDF
cmp	word ptr [esi+2], 5Ch
jnz	short loc_42BBDF
cmp	word ptr [esi+4], 2Eh
jnz	short loc_42BBDF
cmp	word ptr [esi+6], 5Ch
jnz	short loc_42BBDF
push	esi		; Str
call	ds:wcslen
mov	edi, eax
pop	ecx
cmp	edi, 6
jnz	short loc_42BB99
cmp	word ptr [esi+0Ah], 3Ah
jnz	short loc_42BBDF
jmp	short loc_42BBDB

loc_42BB99:
cmp	edi, 12h
jl	short loc_42BBDF
cmp	edi, 16h
jg	short loc_42BBDF
push	0Dh		; MaxCount
lea	eax, [esi+8]
push	offset Str2	; "PhysicalDrive"
push	eax		; Str1
call	ds:wcsncmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_42BBDF
push	11h
pop	edx
cmp	edi, edx
jle	short loc_42BBDB
lea	eax, [esi+22h]

loc_42BBC5:
mov	cx, [eax]
cmp	cx, 30h
jb	short loc_42BBDF
cmp	cx, 39h
ja	short loc_42BBDF
inc	edx
inc	eax
inc	eax
cmp	edx, edi
jl	short loc_42BBC5

loc_42BBDB:
mov	al, 1
jmp	short loc_42BBE1

loc_42BBDF:
xor	al, al

loc_42BBE1:
pop	edi
pop	esi
retn
sub_42BB62 endp



; Attributes: bp-based frame

sub_42BBE4 proc	near

var_44=	dword ptr -44h
var_38=	dword ptr -38h
Memory=	dword ptr -2Ch
lpBuffer= 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_4= dword ptr -4

mov	eax, offset loc_447744
call	__EH_prolog
sub	esp, 38h
mov	eax, [edx]
push	ebx
xor	ebx, ebx
push	esi
mov	[edx+4], ebx
mov	[eax], bx
mov	si, [ecx]
push	edi
xor	edi, edi
cmp	si, bx
mov	[ebp+var_14], edx
mov	[ebp+var_10], ecx
jz	short loc_42BC18
mov	eax, ecx

loc_42BC10:
inc	edi
inc	eax
inc	eax
cmp	[eax], bx
jnz	short loc_42BC10

loc_42BC18:
cmp	edi, 1
jl	loc_42BD4D
cmp	si, 5Ch
jz	loc_42BD4D
cmp	si, 2Eh
jnz	short loc_42BC49
cmp	edi, 1
jz	loc_42BD4D
cmp	edi, 2
jnz	short loc_42BC49
cmp	[ecx+2], si
jz	loc_42BD4D

loc_42BC49:
push	3
lea	ecx, [ebp+lpBuffer]
mov	[ebp+lpBuffer],	ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
call	sub_403396
cmp	edi, 3
mov	edi, [ebp+var_10]
mov	[ebp+var_4], ebx
jle	short loc_42BC8D
cmp	word ptr [edi+2], 3Ah
jnz	short loc_42BC8D
cmp	word ptr [edi+4], 5Ch
jnz	short loc_42BC8D
cmp	si, 61h
jb	short loc_42BC81
cmp	si, 7Ah
jbe	short loc_42BCE8

loc_42BC81:
cmp	si, 41h
jb	short loc_42BC8D
cmp	si, 5Ah
jbe	short loc_42BCE8

loc_42BC8D:
mov	esi, 105h
cmp	[ebp+var_18], esi
jg	short loc_42BCA0
push	esi
lea	ecx, [ebp+lpBuffer]
call	sub_403396

loc_42BCA0:		; lpBuffer
push	[ebp+lpBuffer]
push	esi		; nBufferLength
call	ds:GetCurrentDirectoryW
mov	esi, [ebp+lpBuffer]
xor	ecx, ecx
cmp	[esi], bx
jz	short loc_42BCBE
mov	edx, esi

loc_42BCB6:
inc	ecx
inc	edx
inc	edx
cmp	[edx], bx
jnz	short loc_42BCB6

loc_42BCBE:
lea	edx, [ecx+ecx]
cmp	eax, ebx
mov	[edx+esi], bx
mov	[ebp+var_1C], ecx
jz	short loc_42BD40
cmp	eax, 104h
ja	short loc_42BD40
mov	eax, [ebp+lpBuffer]
cmp	word ptr [edx+eax-2], 5Ch
jz	short loc_42BCE8
push	5Ch
lea	ecx, [ebp+lpBuffer]
call	sub_40316A

loc_42BCE8:		; "\\\\?\\"
push	offset a?
lea	ecx, [ebp+var_44]
call	sub_403091
lea	ecx, [ebp+lpBuffer]
mov	edx, eax
push	ecx
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 1
call	sub_40356A
push	edi
mov	edx, eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 2
call	sub_409948
mov	ecx, [ebp+var_14]
push	eax
mov	byte ptr [ebp+var_4], 3
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_38]	; Memory
call	sub_4284D8
push	[ebp+var_44]	; Memory
call	sub_4284D8
add	esp, 0Ch
mov	bl, 1

loc_42BD40:		; Memory
push	[ebp+lpBuffer]
call	sub_4284D8
pop	ecx
mov	al, bl
jmp	short loc_42BD4F

loc_42BD4D:
mov	al, 1

loc_42BD4F:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_42BBE4 endp




sub_42BD5E proc	near
push	esi
mov	esi, edx
call	sub_42BBE4
test	al, al
jz	short loc_42BD74
xor	eax, eax
cmp	[esi+4], eax
pop	esi
setnz	al
retn

loc_42BD74:
xor	al, al
pop	esi
retn
sub_42BD5E endp



; Attributes: thunk

sub_42BD78 proc	near
jmp	sub_42BEBB
sub_42BD78 endp



; Attributes: bp-based frame

; int __stdcall	sub_42BD7D(LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode,	DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes)
sub_42BD7D proc	near

lpFileName= dword ptr  8
dwDesiredAccess= dword ptr  0Ch
dwShareMode= dword ptr	10h
dwCreationDisposition= dword ptr  14h
dwFlagsAndAttributes= dword ptr	 18h

push	ebp
mov	ebp, esp
push	esi
mov	esi, ecx
call	sub_42BEBB
test	al, al
jz	short loc_42BDB5
push	0		; hTemplateFile
push	[ebp+dwFlagsAndAttributes] ; dwFlagsAndAttributes
push	[ebp+dwCreationDisposition] ; dwCreationDisposition
push	0		; lpSecurityAttributes
push	[ebp+dwShareMode] ; dwShareMode
push	[ebp+dwDesiredAccess] ;	dwDesiredAccess
push	[ebp+lpFileName] ; lpFileName
call	ds:CreateFileA
and	byte ptr [esi+4], 0
xor	ecx, ecx
cmp	eax, 0FFFFFFFFh
mov	[esi], eax
setnz	cl
mov	al, cl

loc_42BDB5:
pop	esi
pop	ebp
retn	14h
sub_42BD7D endp



; Attributes: bp-based frame

; int __stdcall	sub_42BDBA(LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes)
sub_42BDBA proc	near

Memory=	dword ptr -30h
var_24=	dword ptr -24h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
lpFileName= dword ptr  8
dwDesiredAccess= dword ptr  0Ch
dwShareMode= dword ptr	10h
dwCreationDisposition= dword ptr  14h
dwFlagsAndAttributes= dword ptr	 18h

mov	eax, offset loc_447768
call	__EH_prolog
sub	esp, 24h
push	ebx
xor	ebx, ebx
cmp	byte_45D8B4, bl
push	esi
mov	esi, ecx
jnz	short loc_42BE2C
push	[ebp+lpFileName]
lea	ecx, [ebp+var_24]
call	sub_403091
mov	[ebp+var_4], ebx
call	ds:AreFileApisANSI
neg	eax
sbb	eax, eax
lea	edx, [ebp+var_24]
inc	eax
lea	ecx, [ebp+Memory]
push	eax
call	sub_428673
push	[ebp+dwFlagsAndAttributes] ; dwFlagsAndAttributes
mov	eax, [eax]
mov	ecx, esi
mov	byte ptr [ebp+var_4], 1
push	[ebp+dwCreationDisposition] ; dwCreationDisposition
push	[ebp+dwShareMode] ; dwShareMode
push	[ebp+dwDesiredAccess] ;	dwDesiredAccess
push	eax		; lpFileName
call	sub_42BD7D
push	[ebp+Memory]	; Memory
mov	bl, al
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
pop	ecx
mov	al, bl
pop	ecx
jmp	short loc_42BEAB

loc_42BE2C:
mov	ecx, esi
call	sub_42BEBB
test	al, al
jz	short loc_42BEAB
push	edi
push	ebx		; hTemplateFile
push	[ebp+dwFlagsAndAttributes] ; dwFlagsAndAttributes
mov	edi, ds:CreateFileW
push	[ebp+dwCreationDisposition] ; dwCreationDisposition
push	ebx		; lpSecurityAttributes
push	[ebp+dwShareMode] ; dwShareMode
push	[ebp+dwDesiredAccess] ;	dwDesiredAccess
push	[ebp+lpFileName] ; lpFileName
call	edi ; CreateFileW
cmp	eax, 0FFFFFFFFh
mov	[esi], eax
jnz	short loc_42BE9F
push	3
lea	ecx, [ebp+var_18]
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_403396
mov	ecx, [ebp+lpFileName]
lea	edx, [ebp+var_18]
mov	[ebp+var_4], 2
call	sub_42BD5E
test	al, al
jz	short loc_42BE96
push	ebx		; hTemplateFile
push	[ebp+dwFlagsAndAttributes] ; dwFlagsAndAttributes
push	[ebp+dwCreationDisposition] ; dwCreationDisposition
push	ebx		; lpSecurityAttributes
push	[ebp+dwShareMode] ; dwShareMode
push	[ebp+dwDesiredAccess] ;	dwDesiredAccess
push	[ebp+var_18]	; lpFileName
call	edi ; CreateFileW
mov	[esi], eax

loc_42BE96:		; Memory
push	[ebp+var_18]
call	sub_4284D8
pop	ecx

loc_42BE9F:
xor	eax, eax
cmp	dword ptr [esi], 0FFFFFFFFh
mov	[esi+4], bl
pop	edi
setnz	al

loc_42BEAB:
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	14h
sub_42BDBA endp




sub_42BEBB proc	near
push	esi
mov	esi, ecx
mov	eax, [esi]
cmp	eax, 0FFFFFFFFh
jz	short loc_42BED7
push	eax		; hObject
call	ds:CloseHandle
test	eax, eax
jnz	short loc_42BED4
xor	al, al
pop	esi
retn

loc_42BED4:
or	dword ptr [esi], 0FFFFFFFFh

loc_42BED7:
mov	al, 1
pop	esi
retn
sub_42BEBB endp



; Attributes: bp-based frame

sub_42BEDB proc	near

FileSizeHigh= dword ptr	-4
arg_0= dword ptr  8

push	ebp
mov	ebp, esp
push	ecx
cmp	byte ptr [ecx+4], 0
push	esi
jz	short loc_42BEFC
cmp	byte ptr [ecx+5], 0
jz	short loc_42BEFC
mov	eax, [ebp+arg_0]
mov	edx, [ecx+8]
mov	[eax], edx
mov	ecx, [ecx+0Ch]
mov	[eax+4], ecx
jmp	short loc_42BF3B

loc_42BEFC:
lea	eax, [ebp+FileSizeHigh]
push	eax		; lpFileSizeHigh
push	dword ptr [ecx]	; hFile
call	ds:GetFileSize
mov	esi, eax
cmp	esi, 0FFFFFFFFh
jnz	short loc_42BF1D
call	ds:GetLastError
test	eax, eax
jz	short loc_42BF1D
xor	al, al
jmp	short loc_42BF3D

loc_42BF1D:
push	1
push	0
push	0
push	[ebp+FileSizeHigh]
call	__allmul
mov	ecx, eax
xor	eax, eax
add	ecx, esi
adc	edx, eax
mov	eax, [ebp+arg_0]
mov	[eax], ecx
mov	[eax+4], edx

loc_42BF3B:
mov	al, 1

loc_42BF3D:
pop	esi
leave
retn	4
sub_42BEDB endp



; Attributes: bp-based frame

; int __stdcall	sub_42BF42(LONG	lDistanceToMove, int, DWORD dwMoveMethod, int)
sub_42BF42 proc	near

var_8= dword ptr -8
DistanceToMoveHigh= dword ptr -4
lDistanceToMove= dword ptr  8
arg_4= dword ptr  0Ch
dwMoveMethod= dword ptr	 10h
arg_C= dword ptr  14h

push	ebp
mov	ebp, esp
push	ecx
push	ecx
xor	eax, eax
cmp	[ecx+4], al
jz	short loc_42BF6A
cmp	[ecx+5], al
jz	short loc_42BF6A
cmp	[ebp+dwMoveMethod], 2
jnz	short loc_42BF6A
mov	edx, [ecx+8]
push	esi
add	[ebp+lDistanceToMove], edx
mov	esi, [ecx+0Ch]
mov	[ebp+dwMoveMethod], eax
adc	[ebp+arg_4], esi
pop	esi

loc_42BF6A:
mov	edx, [ebp+arg_4]
push	[ebp+dwMoveMethod] ; dwMoveMethod
mov	eax, [ebp+lDistanceToMove]
mov	[ebp+DistanceToMoveHigh], edx
lea	edx, [ebp+DistanceToMoveHigh]
mov	[ebp+var_8], eax
push	edx		; lpDistanceToMoveHigh
push	eax		; lDistanceToMove
push	dword ptr [ecx]	; hFile
call	ds:SetFilePointer
cmp	eax, 0FFFFFFFFh
mov	[ebp+var_8], eax
jnz	short loc_42BF9C
call	ds:GetLastError
test	eax, eax
jz	short loc_42BF9C
xor	al, al
jmp	short locret_42BFAC

loc_42BF9C:
mov	eax, [ebp+arg_C]
mov	ecx, [ebp+var_8]
mov	[eax], ecx
mov	ecx, [ebp+DistanceToMoveHigh]
mov	[eax+4], ecx
mov	al, 1

locret_42BFAC:
leave
retn	10h
sub_42BF42 endp




; int __stdcall	sub_42BFB0(LONG	lDistanceToMove, int, int)
sub_42BFB0 proc	near

lDistanceToMove= dword ptr  4
arg_4= dword ptr  8
arg_8= dword ptr  0Ch

push	[esp+arg_8]	; int
push	0		; dwMoveMethod
push	[esp+8+arg_4]	; int
push	[esp+0Ch+lDistanceToMove] ; lDistanceToMove
call	sub_42BF42
retn	0Ch
sub_42BFB0 endp



; Attributes: bp-based frame

sub_42BFC6 proc	near

OutBuffer= byte	ptr -3Ch
var_34=	dword ptr -34h
var_30=	dword ptr -30h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_8= dword ptr -8
BytesReturned= dword ptr -4

push	ebp
mov	ebp, esp
sub	esp, 3Ch
push	ebx
push	esi
mov	esi, ecx
push	edi
mov	eax, [esi]
cmp	eax, 0FFFFFFFFh
jz	loc_42C07E
xor	ebx, ebx
cmp	[esi+4], bl
jz	loc_42C07E
lea	ecx, [ebp+BytesReturned]
push	ebx		; lpOverlapped
mov	edi, ds:DeviceIoControl
push	ecx		; lpBytesReturned
lea	ecx, [ebp+OutBuffer]
push	20h		; nOutBufferSize
push	ecx		; lpOutBuffer
push	ebx		; nInBufferSize
push	ebx		; lpInBuffer
push	74004h		; dwIoControlCode
mov	[esi+8], ebx
push	eax		; hDevice
mov	byte ptr [esi+5], 1
mov	[esi+0Ch], ebx
call	edi ; DeviceIoControl
test	eax, eax
jz	short loc_42C01E
mov	eax, [ebp+var_34]
mov	[esi+8], eax
mov	eax, [ebp+var_30]
mov	[esi+0Ch], eax
jmp	short loc_42C07E

loc_42C01E:
lea	eax, [ebp+BytesReturned]
push	ebx		; lpOverlapped
push	eax		; lpBytesReturned
lea	eax, [ebp+var_1C]
push	18h		; nOutBufferSize
push	eax		; lpOutBuffer
push	ebx		; nInBufferSize
push	ebx		; lpInBuffer
push	70000h		; dwIoControlCode
push	dword ptr [esi]	; hDevice
call	edi ; DeviceIoControl
test	eax, eax
jnz	short loc_42C055
lea	eax, [ebp+BytesReturned]
push	ebx		; lpOverlapped
push	eax		; lpBytesReturned
lea	eax, [ebp+var_1C]
push	18h		; nOutBufferSize
push	eax		; lpOutBuffer
push	ebx		; nInBufferSize
push	ebx		; lpInBuffer
push	2404Ch		; dwIoControlCode
push	dword ptr [esi]	; hDevice
call	edi ; DeviceIoControl
test	eax, eax
jnz	short loc_42C055
mov	[esi+5], bl

loc_42C055:
cmp	[esi+5], bl
jz	short loc_42C07E
mov	eax, [ebp+var_8]
push	ebx
mul	[ebp+var_C]
push	[ebp+var_10]
push	edx
push	eax
call	__allmul
push	[ebp+var_18]
push	[ebp+var_1C]
push	edx
push	eax
call	__allmul
mov	[esi+8], eax
mov	[esi+0Ch], edx

loc_42C07E:
pop	edi
pop	esi
pop	ebx
leave
retn
sub_42BFC6 endp



; Attributes: bp-based frame

; int __stdcall	sub_42C083(LPCSTR lpFileName, DWORD dwShareMode, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes)
sub_42C083 proc	near

lpFileName= dword ptr  8
dwShareMode= dword ptr	0Ch
dwCreationDisposition= dword ptr  10h
dwFlagsAndAttributes= dword ptr	 14h

push	ebp
mov	ebp, esp
push	ebx
push	esi
push	[ebp+dwFlagsAndAttributes] ; dwFlagsAndAttributes
mov	esi, ecx
push	[ebp+dwCreationDisposition] ; dwCreationDisposition
push	[ebp+dwShareMode] ; dwShareMode
push	80000000h	; dwDesiredAccess
push	[ebp+lpFileName] ; lpFileName
call	sub_42BD7D
mov	ecx, [ebp+lpFileName]
mov	bl, al
call	sub_42BAEE
mov	ecx, esi
mov	[esi+4], al
call	sub_42BFC6
mov	al, bl
pop	esi
pop	ebx
pop	ebp
retn	10h
sub_42C083 endp




; int __stdcall	sub_42C0BC(LPCSTR lpFileName, char)
sub_42C0BC proc	near

lpFileName= dword ptr  4
arg_4= byte ptr	 8

mov	al, [esp+arg_4]
push	80h		; dwFlagsAndAttributes
neg	al
sbb	eax, eax
push	3		; dwCreationDisposition
and	eax, 2
or	al, 1
push	eax		; dwShareMode
push	[esp+0Ch+lpFileName] ; lpFileName
call	sub_42C083
retn	8
sub_42C0BC endp




; int __stdcall	sub_42C0DD(LPCSTR lpFileName)
sub_42C0DD proc	near

lpFileName= dword ptr  4

push	0		; char
push	[esp+4+lpFileName] ; lpFileName
call	sub_42C0BC
retn	4
sub_42C0DD endp



; Attributes: bp-based frame

; int __stdcall	sub_42C0EB(wchar_t *lpFileName,	DWORD dwShareMode, DWORD dwCreationDisposition,	DWORD dwFlagsAndAttributes)
sub_42C0EB proc	near

lpFileName= dword ptr  8
dwShareMode= dword ptr	0Ch
dwCreationDisposition= dword ptr  10h
dwFlagsAndAttributes= dword ptr	 14h

push	ebp
mov	ebp, esp
push	ebx
push	esi
push	[ebp+dwFlagsAndAttributes] ; dwFlagsAndAttributes
mov	esi, ecx
push	[ebp+dwCreationDisposition] ; dwCreationDisposition
push	[ebp+dwShareMode] ; dwShareMode
push	80000000h	; dwDesiredAccess
push	[ebp+lpFileName] ; lpFileName
call	sub_42BDBA
mov	ecx, [ebp+lpFileName] ;	Str
mov	bl, al
call	sub_42BB62
mov	ecx, esi
mov	[esi+4], al
call	sub_42BFC6
mov	al, bl
pop	esi
pop	ebx
pop	ebp
retn	10h
sub_42C0EB endp




; int __stdcall	sub_42C124(wchar_t *lpFileName,	char)
sub_42C124 proc	near

lpFileName= dword ptr  4
arg_4= byte ptr	 8

mov	al, [esp+arg_4]
push	80h		; dwFlagsAndAttributes
neg	al
sbb	eax, eax
push	3		; dwCreationDisposition
and	eax, 2
or	al, 1
push	eax		; dwShareMode
push	[esp+0Ch+lpFileName] ; lpFileName
call	sub_42C0EB
retn	8
sub_42C124 endp




; int __stdcall	sub_42C145(wchar_t *lpFileName)
sub_42C145 proc	near

lpFileName= dword ptr  4

push	0		; char
push	[esp+4+lpFileName] ; lpFileName
call	sub_42C124
retn	4
sub_42C145 endp



; Attributes: bp-based frame

; int __stdcall	sub_42C153(LPVOID lpBuffer, DWORD nNumberOfBytesToRead,	int)
sub_42C153 proc	near

NumberOfBytesRead= dword ptr -4
lpBuffer= dword	ptr  8
nNumberOfBytesToRead= dword ptr	 0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
push	ecx
lea	eax, [ebp+NumberOfBytesRead]
push	0		; lpOverlapped
push	eax		; lpNumberOfBytesRead
and	[ebp+NumberOfBytesRead], 0
push	[ebp+nNumberOfBytesToRead] ; nNumberOfBytesToRead
push	[ebp+lpBuffer]	; lpBuffer
push	dword ptr [ecx]	; hFile
call	ds:ReadFile
mov	ecx, [ebp+arg_8]
mov	edx, [ebp+NumberOfBytesRead]
test	eax, eax
mov	[ecx], edx
setnz	al
leave
retn	0Ch
sub_42C153 endp



; Attributes: bp-based frame

; int __stdcall	sub_42C180(LPVOID lpBuffer, DWORD nNumberOfBytesToRead,	int)
sub_42C180 proc	near

lpBuffer= dword	ptr  8
nNumberOfBytesToRead= dword ptr	 0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
mov	eax, dword_45C6F4
cmp	[ebp+nNumberOfBytesToRead], eax
jbe	short loc_42C190
mov	[ebp+nNumberOfBytesToRead], eax

loc_42C190:		; int
push	[ebp+arg_8]
push	[ebp+nNumberOfBytesToRead] ; nNumberOfBytesToRead
push	[ebp+lpBuffer]	; lpBuffer
call	sub_42C153
pop	ebp
retn	0Ch
sub_42C180 endp



; Attributes: bp-based frame

; int __stdcall	sub_42C1A2(LPVOID lpBuffer, DWORD nNumberOfBytesToRead,	int)
sub_42C1A2 proc	near

lpBuffer= dword	ptr  8
nNumberOfBytesToRead= dword ptr	 0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
push	esi
mov	esi, [ebp+arg_8]
push	edi
mov	edi, ecx
and	dword ptr [esi], 0

loc_42C1AF:
lea	eax, [ebp+arg_8]
and	[ebp+arg_8], 0
push	eax		; int
mov	ecx, edi
push	[ebp+nNumberOfBytesToRead] ; nNumberOfBytesToRead
push	[ebp+lpBuffer]	; lpBuffer
call	sub_42C180
mov	ecx, [ebp+arg_8]
add	[esi], ecx
test	al, al
jz	short loc_42C1DB
test	ecx, ecx
jz	short loc_42C1DF
add	[ebp+lpBuffer],	ecx
sub	[ebp+nNumberOfBytesToRead], ecx
jz	short loc_42C1DF
jmp	short loc_42C1AF

loc_42C1DB:
xor	al, al
jmp	short loc_42C1E1

loc_42C1DF:
mov	al, 1

loc_42C1E1:
pop	edi
pop	esi
pop	ebp
retn	0Ch
sub_42C1A2 endp




; int __stdcall	sub_42C1E7(LPCWSTR lpFileName, DWORD dwShareMode, DWORD	dwCreationDisposition, DWORD dwFlagsAndAttributes)
sub_42C1E7 proc	near

lpFileName= dword ptr  4
dwShareMode= dword ptr	8
dwCreationDisposition= dword ptr  0Ch
dwFlagsAndAttributes= dword ptr	 10h

push	[esp+dwFlagsAndAttributes] ; dwFlagsAndAttributes
push	[esp+4+dwCreationDisposition] ;	dwCreationDisposition
push	[esp+8+dwShareMode] ; dwShareMode
push	40000000h	; dwDesiredAccess
push	[esp+10h+lpFileName] ; lpFileName
call	sub_42BDBA
retn	10h
sub_42C1E7 endp




; int __stdcall	sub_42C204(LPCWSTR lpFileName, DWORD dwCreationDisposition)
sub_42C204 proc	near

lpFileName= dword ptr  4
dwCreationDisposition= dword ptr  8

push	80h		; dwFlagsAndAttributes
push	[esp+4+dwCreationDisposition] ;	dwCreationDisposition
push	1		; dwShareMode
push	[esp+0Ch+lpFileName] ; lpFileName
call	sub_42C1E7
retn	8
sub_42C204 endp




; int __stdcall	sub_42C21B(LPCWSTR lpFileName, char)
sub_42C21B proc	near

lpFileName= dword ptr  4
arg_4= byte ptr	 8

xor	eax, eax
cmp	[esp+arg_4], al
setnz	al
inc	eax
push	eax		; dwCreationDisposition
push	[esp+4+lpFileName] ; lpFileName
call	sub_42C204
retn	8
sub_42C21B endp




; int __stdcall	sub_42C232(FILETIME *lpCreationTime, FILETIME *lpLastAccessTime, FILETIME *lpLastWriteTime)
sub_42C232 proc	near

lpCreationTime=	dword ptr  4
lpLastAccessTime= dword	ptr  8
lpLastWriteTime= dword ptr  0Ch

push	[esp+lpLastWriteTime] ;	lpLastWriteTime
push	[esp+4+lpLastAccessTime] ; lpLastAccessTime
push	[esp+8+lpCreationTime] ; lpCreationTime
push	dword ptr [ecx]	; hFile
call	ds:SetFileTime
neg	eax
sbb	eax, eax
neg	eax
retn	0Ch
sub_42C232 endp



; Attributes: bp-based frame

; int __stdcall	sub_42C24F(LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, int)
sub_42C24F proc	near

NumberOfBytesWritten= dword ptr	-4
lpBuffer= dword	ptr  8
nNumberOfBytesToWrite= dword ptr  0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
push	ecx
mov	eax, dword_45C6F4
cmp	[ebp+nNumberOfBytesToWrite], eax
jbe	short loc_42C260
mov	[ebp+nNumberOfBytesToWrite], eax

loc_42C260:
lea	eax, [ebp+NumberOfBytesWritten]
push	0		; lpOverlapped
push	eax		; lpNumberOfBytesWritten
and	[ebp+NumberOfBytesWritten], 0
push	[ebp+nNumberOfBytesToWrite] ; nNumberOfBytesToWrite
push	[ebp+lpBuffer]	; lpBuffer
push	dword ptr [ecx]	; hFile
call	ds:WriteFile
mov	ecx, [ebp+arg_8]
mov	edx, [ebp+NumberOfBytesWritten]
test	eax, eax
mov	[ecx], edx
setnz	al
leave
retn	0Ch
sub_42C24F endp



; Attributes: bp-based frame

; int __stdcall	sub_42C289(LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, int)
sub_42C289 proc	near

lpBuffer= dword	ptr  8
nNumberOfBytesToWrite= dword ptr  0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
push	esi
mov	esi, [ebp+arg_8]
push	edi
mov	edi, ecx
and	dword ptr [esi], 0

loc_42C296:
lea	eax, [ebp+arg_8]
and	[ebp+arg_8], 0
push	eax		; int
mov	ecx, edi
push	[ebp+nNumberOfBytesToWrite] ; nNumberOfBytesToWrite
push	[ebp+lpBuffer]	; lpBuffer
call	sub_42C24F
mov	ecx, [ebp+arg_8]
add	[esi], ecx
test	al, al
jz	short loc_42C2C2
test	ecx, ecx
jz	short loc_42C2C6
add	[ebp+lpBuffer],	ecx
sub	[ebp+nNumberOfBytesToWrite], ecx
jz	short loc_42C2C6
jmp	short loc_42C296

loc_42C2C2:
xor	al, al
jmp	short loc_42C2C8

loc_42C2C6:
mov	al, 1

loc_42C2C8:
pop	edi
pop	esi
pop	ebp
retn	0Ch
sub_42C289 endp




sub_42C2CE proc	near
push	dword ptr [ecx]	; hFile
call	ds:SetEndOfFile
neg	eax
sbb	eax, eax
neg	eax
retn
sub_42C2CE endp



; Attributes: bp-based frame

; int __stdcall	sub_42C2DD(LONG	lDistanceToMove, int)
sub_42C2DD proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ecx
lea	eax, [ebp+var_8]
push	esi
push	eax		; int
mov	esi, ecx
push	[ebp+arg_4]	; int
push	[ebp+lDistanceToMove] ;	lDistanceToMove
call	sub_42BFB0
test	al, al
jz	short loc_42C308
mov	eax, [ebp+var_8]
cmp	eax, [ebp+lDistanceToMove]
jnz	short loc_42C308
mov	eax, [ebp+var_4]
cmp	eax, [ebp+arg_4]
jz	short loc_42C30C

loc_42C308:
xor	al, al
jmp	short loc_42C313

loc_42C30C:
mov	ecx, esi
call	sub_42C2CE

loc_42C313:
pop	esi
leave
retn	8
sub_42C2DD endp




sub_42C318 proc	near
push	esi
push	edi
mov	edi, ecx
mov	esi, [edi+4]
test	esi, esi
jz	short loc_42C338
push	5Ch
call	sub_42AFAA
dec	esi
cmp	eax, esi
jz	short loc_42C338
push	5Ch
mov	ecx, edi
call	sub_412848

loc_42C338:
pop	edi
pop	esi
retn
sub_42C318 endp




sub_42C33B proc	near
push	esi
push	edi
mov	edi, ecx
mov	esi, [edi+4]
test	esi, esi
jz	short loc_42C35B
push	5Ch
call	sub_42C458
dec	esi
cmp	eax, esi
jz	short loc_42C35B
push	5Ch
mov	ecx, edi
call	sub_40316A

loc_42C35B:
pop	edi
pop	esi
retn
sub_42C33B endp



; Attributes: bp-based frame

sub_42C35E proc	near

var_28=	dword ptr -28h
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_447784
call	__EH_prolog
sub	esp, 1Ch
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
push	edi
mov	[ebp+var_10], edx
mov	eax, [esi+4]
cmp	eax, ebx
jz	short loc_42C39F
mov	ecx, [esi]
lea	eax, [ecx+eax*2-2]

loc_42C382:
cmp	word ptr [eax],	2Eh
jz	short loc_42C390
cmp	eax, ecx
jz	short loc_42C398
dec	eax
dec	eax
jmp	short loc_42C382

loc_42C390:
sub	eax, ecx
sar	eax, 1
mov	edi, eax
jmp	short loc_42C39B

loc_42C398:
or	edi, 0FFFFFFFFh

loc_42C39B:
cmp	edi, ebx
jge	short loc_42C3C0

loc_42C39F:
mov	ecx, [ebp+var_10]
push	esi
call	sub_40312C
mov	eax, [ebp+arg_0]
mov	[eax+4], ebx
mov	eax, [eax]
mov	[eax], bx
mov	eax, [ebp+arg_4]
mov	[eax+4], ebx
mov	eax, [eax]
mov	[eax], bx
jmp	short loc_42C415

loc_42C3C0:
lea	eax, [ebp+Memory]
push	edi
push	eax
mov	ecx, esi
call	sub_403228
mov	ecx, [ebp+var_10]
push	eax
mov	[ebp+var_4], ebx
call	sub_40312C
or	[ebp+var_4], 0FFFFFFFFh
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	ecx, [ebp+arg_0]
push	2Eh
call	sub_42C426
inc	edi
lea	eax, [ebp+var_28]
push	edi
push	eax
mov	ecx, esi
call	sub_405246
mov	ecx, [ebp+arg_4]
push	eax
mov	[ebp+var_4], 1
call	sub_40312C
push	[ebp+var_28]	; Memory
call	sub_4284D8
pop	ecx

loc_42C415:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_42C35E endp




sub_42C426 proc	near

arg_0= word ptr	 4

push	esi
mov	esi, ecx
push	1
mov	eax, [esi]
and	dword ptr [esi+4], 0
and	word ptr [eax],	0
call	sub_403396
mov	eax, [esi]
mov	cx, [esp+4+arg_0]
mov	[eax], cx
mov	eax, [esi]
and	word ptr [eax+2], 0
mov	dword ptr [esi+4], 1
mov	eax, esi
pop	esi
retn	4
sub_42C426 endp




sub_42C458 proc	near

arg_0= word ptr	 4

mov	eax, [ecx+4]
test	eax, eax
jz	short loc_42C47D
mov	ecx, [ecx]
mov	dx, [esp+arg_0]
lea	eax, [ecx+eax*2-2]

loc_42C46A:
cmp	[eax], dx
jz	short loc_42C477
cmp	eax, ecx
jz	short loc_42C47D
dec	eax
dec	eax
jmp	short loc_42C46A

loc_42C477:
sub	eax, ecx
sar	eax, 1
jmp	short locret_42C480

loc_42C47D:
or	eax, 0FFFFFFFFh

locret_42C480:
retn	4
sub_42C458 endp




; int __stdcall	sub_42C483(UINT	uFlags,	SIZE_T dwBytes)
sub_42C483 proc	near

uFlags=	dword ptr  4
dwBytes= dword ptr  8

push	esi
mov	esi, ecx
push	[esp+4+dwBytes]	; dwBytes
push	[esp+8+uFlags]	; uFlags
call	ds:GlobalAlloc
test	eax, eax
jnz	short loc_42C49C
xor	al, al
jmp	short loc_42C4A0

loc_42C49C:
mov	[esi], eax
mov	al, 1

loc_42C4A0:
pop	esi
retn	8
sub_42C483 endp




sub_42C4A4 proc	near
push	esi
mov	esi, ecx
mov	eax, [esi]
test	eax, eax
jnz	short loc_42C4B1
mov	al, 1
pop	esi
retn

loc_42C4B1:		; hMem
push	eax
call	ds:GlobalFree
xor	ecx, ecx
mov	[esi], eax
test	eax, eax
setz	cl
mov	al, cl
pop	esi
retn
sub_42C4A4 endp




sub_42C4C5 proc	near
push	ebx
push	esi
mov	bl, cl
push	offset LibFileName ; "Advapi32.dll"
call	ds:LoadLibraryA
mov	esi, eax
test	esi, esi
jnz	short loc_42C4DE
xor	al, al
jmp	short loc_42C4F2

loc_42C4DE:
mov	dl, bl
mov	ecx, esi	; hModule
call	sub_42C4F5
mov	bl, al
push	esi		; hLibModule
call	ds:FreeLibrary
mov	al, bl

loc_42C4F2:
pop	esi
pop	ebx
retn
sub_42C4C5 endp



; Attributes: bp-based frame

; int __fastcall sub_42C4F5(HMODULE hModule)
sub_42C4F5 proc	near

var_20=	dword ptr -20h
var_1C=	byte ptr -1Ch
var_14=	dword ptr -14h
hObject= dword ptr -10h
var_C= dword ptr -0Ch
var_8= dword ptr -8
var_1= byte ptr	-1

push	ebp
mov	ebp, esp
sub	esp, 20h
push	ebx
push	esi
push	edi
mov	edi, ecx
test	edi, edi
mov	bl, dl
jz	loc_42C5AB
mov	esi, ds:GetProcAddress
push	offset aOpenprocesstok ; "OpenProcessToken"
push	edi		; hModule
call	esi ; GetProcAddress
mov	[ebp+var_8], eax
push	offset aLookupprivileg ; "LookupPrivilegeValueA"
push	edi		; hModule
call	esi ; GetProcAddress
mov	[ebp+var_C], eax
push	offset aAdjusttokenpri ; "AdjustTokenPrivileges"
push	edi		; hModule
call	esi ; GetProcAddress
xor	esi, esi
mov	edi, eax
cmp	[ebp+var_8], esi
jz	short loc_42C5AB
cmp	edi, esi
jz	short loc_42C5AB
cmp	[ebp+var_C], esi
jz	short loc_42C5AB
lea	eax, [ebp+hObject]
push	eax
push	20h
call	ds:GetCurrentProcess
push	eax
call	[ebp+var_8]
test	eax, eax
jz	short loc_42C5AB
and	[ebp+var_1], 0
lea	eax, [ebp+var_1C]
push	eax
push	offset aSelockmemorypr ; "SeLockMemoryPrivilege"
push	esi
call	[ebp+var_C]
test	eax, eax
jz	short loc_42C59B
push	esi
push	esi
lea	eax, [ebp+var_20]
push	esi
neg	bl
push	eax
push	esi
push	[ebp+hObject]
mov	[ebp+var_20], 1
sbb	ebx, ebx
and	ebx, 2
mov	[ebp+var_14], ebx
call	edi
test	eax, eax
jz	short loc_42C59B
call	ds:GetLastError
mov	ebx, eax
neg	ebx
sbb	bl, bl
inc	bl
jmp	short loc_42C59E

loc_42C59B:
mov	bl, [ebp+var_1]

loc_42C59E:		; hObject
push	[ebp+hObject]
call	ds:CloseHandle
mov	al, bl
jmp	short loc_42C5AD

loc_42C5AB:
xor	al, al

loc_42C5AD:
pop	edi
pop	esi
pop	ebx
leave
retn
sub_42C4F5 endp



; Attributes: bp-based frame

; int __stdcall	sub_42C5B2(UINT	item, char, int)
sub_42C5B2 proc	near

var_684= byte ptr -684h
var_280= byte ptr -280h
var_7C=	byte ptr -7Ch
var_58=	dword ptr -58h
var_54=	dword ptr -54h
mii= tagMENUITEMINFOA ptr -50h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
item= dword ptr	 8
arg_4= byte ptr	 0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_4477A0
call	__EH_prolog
sub	esp, 678h
push	ebx
xor	ebx, ebx
cmp	byte_45D8B4, bl
push	esi
push	edi
mov	edi, ecx
jnz	loc_42C677
mov	esi, [ebp+arg_8]
lea	edx, [ebp+mii]
mov	ecx, esi
call	sub_42C6F5
test	byte ptr [esi+0Ch], 10h
jz	short loc_42C5FD
cmp	[esi+10h], ebx
jnz	short loc_42C5FD
lea	eax, [ebp+var_280]
mov	[ebp+mii.cch], 200h
mov	[ebp+mii.dwTypeData], eax

loc_42C5FD:
lea	eax, [ebp+mii]
push	eax		; lpmii
xor	eax, eax
cmp	[ebp+arg_4], bl
setnz	al
push	eax		; fByPosition
push	[ebp+item]	; item
push	dword ptr [edi]	; hmenu
call	ds:GetMenuItemInfoA
cmp	eax, ebx
jz	loc_42C6E2
mov	edx, esi
lea	ecx, [ebp+mii]
call	sub_42C741
test	byte ptr [esi+0Ch], 10h
jz	loc_42C6DE
cmp	[esi+10h], ebx
jnz	loc_42C6DE
lea	eax, [ebp+var_280]
lea	ecx, [ebp+Memory]
push	eax
call	sub_41E0DD
lea	edx, [ebp+Memory]
lea	ecx, [ebp+mii.hbmpItem]
mov	[ebp+var_4], ebx
call	sub_41242C
push	eax
mov	ecx, esi
mov	byte ptr [ebp+var_4], 1
call	sub_40312C
push	[ebp+mii.hbmpItem] ; Memory
call	sub_4284D8
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx
jmp	short loc_42C6DE

loc_42C677:
mov	esi, [ebp+arg_8]
lea	edx, [ebp+var_7C]
mov	ecx, esi
call	sub_42C6F5
test	byte ptr [esi+0Ch], 10h
jz	short loc_42C69F
cmp	[esi+10h], ebx
jnz	short loc_42C69F
lea	eax, [ebp+var_684]
mov	[ebp+var_54], 200h
mov	[ebp+var_58], eax

loc_42C69F:
lea	eax, [ebp+var_7C]
push	eax		; lpmii
xor	eax, eax
cmp	[ebp+arg_4], bl
setnz	al
push	eax		; fByPosition
push	[ebp+item]	; item
push	dword ptr [edi]	; hmenu
call	ds:GetMenuItemInfoW
test	eax, eax
jz	short loc_42C6E2
mov	edx, esi
lea	ecx, [ebp+var_7C]
call	sub_42C741
test	byte ptr [esi+0Ch], 10h
jz	short loc_42C6DE
cmp	[esi+10h], ebx
jnz	short loc_42C6DE
lea	eax, [ebp+var_684]
mov	ecx, esi
push	eax
call	sub_404722

loc_42C6DE:
mov	al, 1
jmp	short loc_42C6E4

loc_42C6E2:
xor	al, al

loc_42C6E4:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_42C5B2 endp




sub_42C6F5 proc	near
push	esi
push	edi
mov	esi, edx
push	2Ch		; Size
push	0		; Val
mov	edi, ecx
push	esi		; Dst
call	memset
mov	dword ptr [esi], 2Ch
mov	eax, [edi+0Ch]
mov	[esi+4], eax
mov	eax, [edi+10h]
mov	[esi+8], eax
mov	eax, [edi+14h]
mov	[esi+0Ch], eax
mov	eax, [edi+18h]
mov	[esi+10h], eax
mov	eax, [edi+1Ch]
mov	[esi+14h], eax
mov	eax, [edi+20h]
mov	[esi+18h], eax
mov	eax, [edi+24h]
add	esp, 0Ch
mov	[esi+1Ch], eax
mov	eax, [edi+28h]
mov	[esi+20h], eax
pop	edi
pop	esi
retn
sub_42C6F5 endp




sub_42C741 proc	near
mov	eax, [ecx+4]
mov	[edx+0Ch], eax
mov	eax, [ecx+8]
mov	[edx+10h], eax
mov	eax, [ecx+0Ch]
mov	[edx+14h], eax
mov	eax, [ecx+10h]
mov	[edx+18h], eax
mov	eax, [ecx+14h]
mov	[edx+1Ch], eax
mov	eax, [ecx+18h]
mov	[edx+20h], eax
mov	eax, [ecx+1Ch]
mov	[edx+24h], eax
mov	eax, [ecx+20h]
mov	[edx+28h], eax
retn
sub_42C741 endp



; Attributes: bp-based frame

; int __stdcall	sub_42C772(UINT	item, char, int)
sub_42C772 proc	near

var_7C=	byte ptr -7Ch
var_58=	dword ptr -58h
mii= MENUITEMINFOA ptr -50h
Memory=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
item= dword ptr	 8
arg_4= byte ptr	 0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_4477BC
call	__EH_prolog
sub	esp, 70h
push	ebx
xor	ebx, ebx
cmp	byte_45D8B4, bl
push	esi
push	edi
mov	edi, ecx
jnz	short loc_42C80C
mov	esi, [ebp+arg_8]
lea	edx, [ebp+mii]
mov	ecx, esi
call	sub_42C6F5
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_4034E3
test	byte ptr [esi+0Ch], 10h
mov	[ebp+var_4], ebx
jz	short loc_42C7E2
cmp	[esi+10h], ebx
jnz	short loc_42C7E2
mov	edx, esi
lea	ecx, [ebp+mii.hbmpItem]
call	sub_43A785
push	eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_403244
push	[ebp+mii.hbmpItem] ; Memory
call	sub_4284D8
mov	eax, [ebp+Memory]
pop	ecx
mov	[ebp+mii.dwTypeData], eax

loc_42C7E2:
lea	eax, [ebp+mii]
push	eax		; lpmii
xor	eax, eax
cmp	[ebp+arg_4], bl
setnz	al
push	eax		; fByPositon
push	[ebp+item]	; item
push	dword ptr [edi]	; hmenu
call	ds:SetMenuItemInfoA
push	[ebp+Memory]	; Memory
mov	esi, eax
call	sub_4284D8
cmp	esi, ebx
pop	ecx
setnz	al
jmp	short loc_42C847

loc_42C80C:
mov	esi, [ebp+arg_8]
lea	edx, [ebp+var_7C]
mov	ecx, esi
call	sub_42C6F5
test	byte ptr [esi+0Ch], 10h
jz	short loc_42C829
cmp	[esi+10h], ebx
jnz	short loc_42C829
mov	eax, [esi]
mov	[ebp+var_58], eax

loc_42C829:
lea	eax, [ebp+var_7C]
push	eax		; lpmii
xor	eax, eax
cmp	[ebp+arg_4], bl
setnz	al
push	eax		; fByPositon
push	[ebp+item]	; item
push	dword ptr [edi]	; hmenu
call	ds:SetMenuItemInfoW
neg	eax
sbb	eax, eax
neg	eax

loc_42C847:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_42C772 endp



; Attributes: bp-based frame

; int __stdcall	sub_42C858(UINT	item, char, int)
sub_42C858 proc	near

var_7C=	byte ptr -7Ch
var_58=	dword ptr -58h
mi= MENUITEMINFOA ptr -50h
Memory=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
item= dword ptr	 8
arg_4= byte ptr	 0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_4477D8
call	__EH_prolog
sub	esp, 70h
push	ebx
xor	ebx, ebx
cmp	byte_45D8B4, bl
push	esi
push	edi
mov	edi, ecx
jnz	short loc_42C8F2
mov	esi, [ebp+arg_8]
lea	edx, [ebp+mi]
mov	ecx, esi
call	sub_42C6F5
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_4034E3
test	byte ptr [esi+0Ch], 10h
mov	[ebp+var_4], ebx
jz	short loc_42C8C8
cmp	[esi+10h], ebx
jnz	short loc_42C8C8
mov	edx, esi
lea	ecx, [ebp+mi.hbmpItem]
call	sub_43A785
push	eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_403244
push	[ebp+mi.hbmpItem] ; Memory
call	sub_4284D8
mov	eax, [ebp+Memory]
pop	ecx
mov	[ebp+mi.dwTypeData], eax

loc_42C8C8:
lea	eax, [ebp+mi]
push	eax		; lpmi
xor	eax, eax
cmp	[ebp+arg_4], bl
setnz	al
push	eax		; fByPosition
push	[ebp+item]	; item
push	dword ptr [edi]	; hmenu
call	ds:InsertMenuItemA
push	[ebp+Memory]	; Memory
mov	esi, eax
call	sub_4284D8
cmp	esi, ebx
pop	ecx
setnz	al
jmp	short loc_42C92D

loc_42C8F2:
mov	esi, [ebp+arg_8]
lea	edx, [ebp+var_7C]
mov	ecx, esi
call	sub_42C6F5
test	byte ptr [esi+0Ch], 10h
jz	short loc_42C90F
cmp	[esi+10h], ebx
jnz	short loc_42C90F
mov	eax, [esi]
mov	[ebp+var_58], eax

loc_42C90F:
lea	eax, [ebp+var_7C]
push	eax		; lpmi
xor	eax, eax
cmp	[ebp+arg_4], bl
setnz	al
push	eax		; fByPosition
push	[ebp+item]	; item
push	dword ptr [edi]	; hmenu
call	ds:InsertMenuItemW
neg	eax
sbb	eax, eax
neg	eax

loc_42C92D:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_42C858 endp



; Attributes: bp-based frame

; int __stdcall	sub_42C93E(UINT	uFlags,	UINT_PTR uIDNewItem, LPCWSTR lpNewItem)
sub_42C93E proc	near

Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
uFlags=	dword ptr  8
uIDNewItem= dword ptr  0Ch
lpNewItem= dword ptr  10h

mov	eax, offset loc_4477EC
call	__EH_prolog
sub	esp, 18h
cmp	byte_45D8B4, 0
push	esi
push	[ebp+lpNewItem]	; lpNewItem
mov	esi, ecx
jz	short loc_42C970
push	[ebp+uIDNewItem] ; uIDNewItem
push	[ebp+uFlags]	; uFlags
push	dword ptr [esi]	; hMenu
call	ds:AppendMenuW
neg	eax
sbb	eax, eax
neg	eax
jmp	short loc_42C9B0

loc_42C970:
lea	ecx, [ebp+var_18]
call	sub_403091
and	[ebp+var_4], 0
lea	edx, [ebp+var_18]
lea	ecx, [ebp+Memory]
call	sub_43A785
push	dword ptr [eax]	; lpNewItem
push	[ebp+uIDNewItem] ; uIDNewItem
push	[ebp+uFlags]	; uFlags
push	dword ptr [esi]	; hMenu
call	ds:AppendMenuA
push	[ebp+Memory]	; Memory
mov	esi, eax
call	sub_4284D8
push	[ebp+var_18]	; Memory
call	sub_4284D8
pop	ecx
test	esi, esi
pop	ecx
setnz	al

loc_42C9B0:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	0Ch
sub_42C93E endp



; Attributes: bp-based frame

sub_42C9BF proc	near

Memory=	dword ptr -9Ch
StartupInfo= _STARTUPINFOA ptr -90h
ProcessInformation= _PROCESS_INFORMATION ptr -4Ch
lpCommandLine= dword ptr -3Ch
var_30=	dword ptr -30h
var_24=	dword ptr -24h
lpCurrentDirectory= dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_447833
call	__EH_prolog
sub	esp, 90h
push	ebx
push	edi
mov	edi, ecx
xor	ebx, ebx
mov	eax, [edi]
cmp	eax, ebx
jz	short loc_42C9E8
push	eax		; hObject
call	ds:CloseHandle
test	eax, eax
jz	short loc_42C9E8
mov	[edi], ebx

loc_42C9E8:
push	esi
lea	ecx, [ebp+var_24]
push	[ebp+arg_0]
call	sub_403091
lea	edx, [ebp+var_24]
lea	ecx, [ebp+var_30]
mov	[ebp+var_4], ebx
call	sub_42CB93
push	20h
mov	edx, eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_409999
push	[ebp+arg_4]
mov	edx, eax
lea	ecx, [ebp+lpCommandLine]
mov	byte ptr [ebp+var_4], 2
call	sub_40356A
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_30]	; Memory
call	sub_4284D8
push	[ebp+var_24]	; Memory
mov	byte ptr [ebp+var_4], 4
call	sub_4284D8
add	esp, 0Ch
cmp	byte_45D8B4, bl
jnz	loc_42CB16
push	3
lea	ecx, [ebp+lpCurrentDirectory]
mov	[ebp+StartupInfo.cb], 44h
mov	[ebp+StartupInfo.lpReserved], ebx
mov	[ebp+StartupInfo.lpDesktop], ebx
mov	[ebp+StartupInfo.lpTitle], ebx
mov	[ebp+StartupInfo.dwFlags], ebx
mov	[ebp+StartupInfo.cbReserved2], bx
mov	[ebp+StartupInfo.lpReserved2], ebx
mov	[ebp+lpCurrentDirectory], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_4034E3
cmp	[ebp+arg_8], ebx
mov	byte ptr [ebp+var_4], 7
jz	short loc_42CAD8
push	[ebp+arg_8]
lea	ecx, [ebp+var_24]
call	sub_403091
lea	edx, [ebp+var_24]
lea	ecx, [ebp+var_30]
mov	byte ptr [ebp+var_4], 8
call	sub_43A785
push	eax
lea	ecx, [ebp+lpCurrentDirectory]
mov	byte ptr [ebp+var_4], 9
call	sub_403244
push	[ebp+var_30]	; Memory
call	sub_4284D8
push	[ebp+var_24]	; Memory
mov	byte ptr [ebp+var_4], 7
call	sub_4284D8
mov	esi, [ebp+lpCurrentDirectory]
pop	ecx
pop	ecx
jmp	short loc_42CADA

loc_42CAD8:
xor	esi, esi

loc_42CADA:
lea	edx, [ebp+lpCommandLine]
lea	ecx, [ebp+var_30]
call	sub_43A785
lea	ecx, [ebp+ProcessInformation]
mov	eax, [eax]
push	ecx		; lpProcessInformation
lea	ecx, [ebp+StartupInfo]
push	ecx		; lpStartupInfo
push	esi		; lpCurrentDirectory
push	ebx		; lpEnvironment
push	ebx		; dwCreationFlags
push	ebx		; bInheritHandles
push	ebx		; lpThreadAttributes
push	ebx		; lpProcessAttributes
push	eax		; lpCommandLine
push	ebx		; lpApplicationName
call	ds:CreateProcessA
push	[ebp+var_30]	; Memory
mov	esi, eax
call	sub_4284D8
push	[ebp+lpCurrentDirectory] ; Memory
call	sub_4284D8
pop	ecx
pop	ecx
jmp	short loc_42CB5B

loc_42CB16:
lea	eax, [ebp+ProcessInformation]
mov	[ebp+StartupInfo.cb], 44h
push	eax		; lpProcessInformation
lea	eax, [ebp+StartupInfo]
push	eax		; lpStartupInfo
mov	[ebp+StartupInfo.lpReserved], ebx
push	[ebp+arg_8]	; lpCurrentDirectory
mov	[ebp+StartupInfo.lpDesktop], ebx
mov	[ebp+StartupInfo.lpTitle], ebx
mov	[ebp+StartupInfo.dwFlags], ebx
push	ebx		; lpEnvironment
push	ebx		; dwCreationFlags
push	ebx		; bInheritHandles
push	ebx		; lpThreadAttributes
push	ebx		; lpProcessAttributes
mov	[ebp+StartupInfo.cbReserved2], bx
push	[ebp+lpCommandLine] ; lpCommandLine
mov	[ebp+StartupInfo.lpReserved2], ebx
push	ebx		; lpApplicationName
call	ds:CreateProcessW
mov	esi, eax

loc_42CB5B:
cmp	esi, ebx
pop	esi
jnz	short loc_42CB6A
call	ds:GetLastError
mov	ebx, eax
jmp	short loc_42CB78

loc_42CB6A:		; hObject
push	[ebp+ProcessInformation.hThread]
call	ds:CloseHandle
mov	eax, [ebp+ProcessInformation.hProcess]
mov	[edi], eax

loc_42CB78:		; Memory
push	[ebp+lpCommandLine]
call	sub_4284D8
pop	ecx
mov	eax, ebx
mov	ecx, [ebp+var_C]
pop	edi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_42C9BF endp



; Attributes: bp-based frame

sub_42CB93 proc	near

var_34=	dword ptr -34h
var_28=	dword ptr -28h
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_447858
call	__EH_prolog
sub	esp, 28h
and	[ebp+var_10], 0
push	ebx
push	esi
mov	esi, ecx
push	edi
mov	edi, edx
push	22h
lea	ecx, [ebp+var_34]
call	sub_409516
mov	ebx, eax
and	[ebp+var_4], 0
push	22h
lea	ecx, [ebp+var_28]
call	sub_409516
push	edi
mov	edx, eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_40356A
push	ebx
mov	edx, eax
mov	ecx, esi
mov	byte ptr [ebp+var_4], 2
call	sub_40356A
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_28]	; Memory
call	sub_4284D8
push	[ebp+var_34]	; Memory
call	sub_4284D8
mov	ecx, [ebp+var_C]
add	esp, 0Ch
mov	eax, esi
mov	large fs:0, ecx
pop	edi
pop	esi
pop	ebx
leave
retn
sub_42CB93 endp



; Attributes: bp-based frame

sub_42CC0E proc	near

hObject= dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44786C
call	__EH_prolog
push	ecx
and	[ebp+hObject], 0
push	edi
and	[ebp+var_4], 0
push	0
push	edx
push	ecx
lea	ecx, [ebp+hObject]
call	sub_42C9BF
cmp	[ebp+hObject], 0
mov	edi, eax
jz	short loc_42CC3F
push	[ebp+hObject]	; hObject
call	ds:CloseHandle

loc_42CC3F:
mov	ecx, [ebp+var_C]
mov	eax, edi
pop	edi
mov	large fs:0, ecx
leave
retn
sub_42CC0E endp




; int __stdcall	sub_42CC4E(VARIANTARG *Src)
sub_42CC4E proc	near

Src= dword ptr	4

push	esi
mov	esi, ecx
push	[esp+4+Src]	; Src
and	word ptr [esi],	0
call	sub_42CEC4
mov	eax, esi
pop	esi
retn	4
sub_42CC4E endp




; int __stdcall	sub_42CC64(OLECHAR *psz)
sub_42CC64 proc	near

psz= dword ptr	4

push	esi
mov	esi, ecx
push	[esp+4+psz]	; psz
and	word ptr [esi],	0
call	sub_42CC9E
mov	eax, esi
pop	esi
retn	4
sub_42CC64 endp




; int __stdcall	sub_42CC7A(VARIANTARG *Src)
sub_42CC7A proc	near

Src= dword ptr	4

push	esi
mov	esi, ecx
push	[esp+4+Src]	; Src
call	sub_42CEC4
mov	eax, esi
pop	esi
retn	4
sub_42CC7A endp




; int __stdcall	sub_42CC8C(OLECHAR *psz)
sub_42CC8C proc	near

psz= dword ptr	4

push	esi
mov	esi, ecx
push	[esp+4+psz]	; psz
call	sub_42CC9E
mov	eax, esi
pop	esi
retn	4
sub_42CC8C endp



; Attributes: bp-based frame

; int __stdcall	sub_42CC9E(OLECHAR *psz)
sub_42CC9E proc	near

psz= dword ptr	8

push	ebp
mov	ebp, esp
push	esi
mov	esi, ecx
call	sub_42CEAE
push	[ebp+psz]	; psz
and	word ptr [esi+2], 0
mov	word ptr [esi],	8
call	ds:SysAllocString
test	eax, eax
mov	[esi+8], eax
jnz	short loc_42CCDE
cmp	[ebp+psz], eax
jz	short loc_42CCDE
mov	eax, off_45C79C
push	offset unk_454D88
mov	[ebp+psz], eax
lea	eax, [ebp+psz]
push	eax
call	_CxxThrowException

loc_42CCDE:
mov	eax, esi
pop	esi
pop	ebp
retn	4
sub_42CC9E endp



; Attributes: bp-based frame

; int __stdcall	sub_42CCE5(char	*Str)
sub_42CCE5 proc	near

Str= dword ptr	8

push	ebp
mov	ebp, esp
push	ebx
push	esi
push	edi
mov	esi, ecx
call	sub_42CEAE
mov	ebx, [ebp+Str]
and	word ptr [esi+2], 0
push	ebx		; Str
mov	word ptr [esi],	8
call	strlen
mov	edi, eax
pop	ecx
lea	eax, [edi+edi]
push	eax		; len
push	0		; psz
call	ds:SysAllocStringByteLen
test	eax, eax
mov	[esi+8], eax
jnz	short loc_42CD31
mov	eax, off_45C79C
push	offset unk_454D88
mov	[ebp+Str], eax
lea	eax, [ebp+Str]
push	eax
call	_CxxThrowException

loc_42CD31:
xor	eax, eax

loc_42CD33:
movsx	cx, byte ptr [eax+ebx]
mov	edx, [esi+8]
mov	[edx+eax*2], cx
inc	eax
cmp	eax, edi
jbe	short loc_42CD33
mov	eax, esi
pop	edi
pop	esi
pop	ebx
pop	ebp
retn	4
sub_42CCE5 endp




sub_42CD4D proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
cmp	word ptr [esi],	0Bh
jz	short loc_42CD60
call	sub_42CEAE
mov	word ptr [esi],	0Bh

loc_42CD60:
mov	al, [esp+4+arg_0]
neg	al
sbb	eax, eax
mov	[esi+8], ax
mov	eax, esi
pop	esi
retn	4
sub_42CD4D endp




sub_42CD72 proc	near

arg_0= dword ptr  4

push	esi
mov	esi, ecx
cmp	word ptr [esi],	13h
jz	short loc_42CD85
call	sub_42CEAE
mov	word ptr [esi],	13h

loc_42CD85:
mov	eax, [esp+4+arg_0]
mov	[esi+8], eax
mov	eax, esi
pop	esi
retn	4
sub_42CD72 endp




sub_42CD92 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	esi
mov	esi, ecx
cmp	word ptr [esi],	15h
jz	short loc_42CDA5
call	sub_42CEAE
mov	word ptr [esi],	15h

loc_42CDA5:
mov	eax, [esp+4+arg_0]
mov	[esi+8], eax
mov	eax, [esp+4+arg_4]
mov	[esi+0Ch], eax
mov	eax, esi
pop	esi
retn	8
sub_42CD92 endp




sub_42CDB9 proc	near

arg_0= dword ptr  4

push	esi
mov	esi, ecx
cmp	word ptr [esi],	40h
jz	short loc_42CDCC
call	sub_42CEAE
mov	word ptr [esi],	40h

loc_42CDCC:
mov	eax, [esp+4+arg_0]
mov	ecx, [eax]
mov	[esi+8], ecx
mov	eax, [eax+4]
mov	[esi+0Ch], eax
mov	eax, esi
pop	esi
retn	4
sub_42CDB9 endp



; Attributes: thunk

; int __fastcall sub_42CDE1(VARIANTARG *pvarg)
sub_42CDE1 proc	near
jmp	$+5
sub_42CDE1 endp




; int __fastcall sub_42CDE6(VARIANTARG *pvarg)
sub_42CDE6 proc	near
movzx	eax, word ptr [ecx]
cmp	eax, 13h
jg	short loc_42CE0F
cmp	eax, 10h
jge	short loc_42CE1E
cmp	eax, 2
jl	short loc_42CE07
cmp	eax, 7
jle	short loc_42CE1E
cmp	eax, 9
jle	short loc_42CE07
cmp	eax, 0Bh
jle	short loc_42CE1E

loc_42CE07:		; pvarg
push	ecx
call	ds:VariantClear
retn

loc_42CE0F:
cmp	eax, 15h
jl	short loc_42CE07
cmp	eax, 17h
jle	short loc_42CE1E
cmp	eax, 40h
jnz	short loc_42CE07

loc_42CE1E:
and	word ptr [ecx],	0
and	word ptr [ecx+2], 0
xor	eax, eax
retn
sub_42CDE6 endp




; int __thiscall sub_42CE2A(void *Dst, VARIANTARG *Src)
sub_42CE2A proc	near

Src= dword ptr	4

push	esi
mov	esi, ecx
push	esi		; pvarg
call	ds:VariantClear
mov	ecx, [esp+4+Src]
movzx	eax, word ptr [ecx]
cmp	eax, 13h
jg	short loc_42CE65
cmp	eax, 10h
jge	short loc_42CE74
cmp	eax, 2
jl	short loc_42CE59
cmp	eax, 7
jle	short loc_42CE74
cmp	eax, 9
jle	short loc_42CE59
cmp	eax, 0Bh
jle	short loc_42CE74

loc_42CE59:		; pvargSrc
push	ecx
push	esi		; pvargDest
call	ds:VariantCopy

loc_42CE61:
pop	esi
retn	4

loc_42CE65:
cmp	eax, 15h
jl	short loc_42CE59
cmp	eax, 17h
jle	short loc_42CE74
cmp	eax, 40h
jnz	short loc_42CE59

loc_42CE74:		; Size
push	10h
push	ecx		; Src
push	esi		; Dst
call	ds:memmove
add	esp, 0Ch
xor	eax, eax
jmp	short loc_42CE61
sub_42CE2A endp




; int __thiscall sub_42CE85(void *Src, void *pvarg)
sub_42CE85 proc	near

pvarg= dword ptr  4

push	esi
mov	esi, ecx
mov	ecx, [esp+4+pvarg] ; pvarg
call	sub_42CDE6
test	eax, eax
jl	short loc_42CEAA
push	10h		; Size
push	esi		; Src
push	[esp+0Ch+pvarg]	; Dst
call	memcpy
and	word ptr [esi],	0
add	esp, 0Ch
xor	eax, eax

loc_42CEAA:
pop	esi
retn	4
sub_42CE85 endp




sub_42CEAE proc	near
push	esi
mov	esi, ecx
call	sub_42CDE1
test	eax, eax
jge	short loc_42CEC2
mov	word ptr [esi],	0Ah
mov	[esi+8], eax

loc_42CEC2:
pop	esi
retn
sub_42CEAE endp



; Attributes: bp-based frame

; int __stdcall	sub_42CEC4(VARIANTARG *Src)
sub_42CEC4 proc	near

Src= dword ptr	8

push	ebp
mov	ebp, esp
push	esi
mov	esi, ecx
push	[ebp+Src]	; Src
call	sub_42CE2A
test	eax, eax
jge	short loc_42CEFB
cmp	eax, 8007000Eh
jnz	short loc_42CEF3
mov	eax, off_45C79C
push	offset unk_454D88
mov	[ebp+Src], eax
lea	eax, [ebp+Src]
push	eax
call	_CxxThrowException

loc_42CEF3:
mov	word ptr [esi],	0Ah
mov	[esi+8], eax

loc_42CEFB:
pop	esi
pop	ebp
retn	4
sub_42CEC4 endp




sub_42CF00 proc	near

arg_0= dword ptr  4

mov	eax, [esp+arg_0]
mov	dx, [ecx]
push	esi
mov	si, [eax]
cmp	dx, si
jz	short loc_42CF23
jb	loc_42D033
xor	eax, eax
cmp	dx, si
setnz	al
jmp	loc_42D042

loc_42CF23:
movzx	edx, dx
cmp	edx, 11h
jg	loc_42CFB6
jz	short loc_42CF9F
sub	edx, 0
jz	loc_42D00D
dec	edx
dec	edx
jz	short loc_42CF89
dec	edx
jz	short loc_42CF76
sub	edx, 5
jz	loc_42D00D
sub	edx, 3
jnz	loc_42D00D
mov	ax, [eax+8]
mov	cx, [ecx+8]
cmp	cx, ax
jge	short loc_42CF65
or	eax, 0FFFFFFFFh
jmp	short loc_42CF6F

loc_42CF65:
xor	edx, edx
cmp	cx, ax
setnz	dl
mov	eax, edx

loc_42CF6F:
neg	eax
jmp	loc_42D042

loc_42CF76:
mov	eax, [eax+8]
mov	ecx, [ecx+8]
cmp	ecx, eax
jge	loc_42D020
jmp	loc_42D033

loc_42CF89:
mov	ax, [eax+8]
mov	cx, [ecx+8]
cmp	cx, ax
jge	loc_42D038
jmp	loc_42D033

loc_42CF9F:
mov	al, [eax+8]
mov	cl, [ecx+8]
cmp	cl, al
jb	loc_42D033
xor	edx, edx
cmp	cl, al
jmp	loc_42D03D

loc_42CFB6:
sub	edx, 12h
jz	short loc_42D026
dec	edx
jz	short loc_42D016
dec	edx
jz	short loc_42CFED
dec	edx
jz	short loc_42CFD9
sub	edx, 2Bh
jnz	short loc_42D00D
add	eax, 8
add	ecx, 8
push	eax		; lpFileTime2
push	ecx		; lpFileTime1
call	ds:CompareFileTime
jmp	short loc_42D042

loc_42CFD9:
mov	edx, [eax+8]
mov	esi, [ecx+8]
mov	eax, [eax+0Ch]
mov	ecx, [ecx+0Ch]
cmp	ecx, eax
ja	short loc_42D005
jb	short loc_42D033
jmp	short loc_42CFFF

loc_42CFED:
mov	edx, [eax+8]
mov	esi, [ecx+8]
mov	eax, [eax+0Ch]
mov	ecx, [ecx+0Ch]
cmp	ecx, eax
jg	short loc_42D005
jl	short loc_42D033

loc_42CFFF:
cmp	esi, edx
jnb	short loc_42D007
jmp	short loc_42D033

loc_42D005:
cmp	esi, edx

loc_42D007:
jnz	short loc_42D011
cmp	ecx, eax
jnz	short loc_42D011

loc_42D00D:
xor	eax, eax
jmp	short loc_42D042

loc_42D011:
push	1
pop	eax
jmp	short loc_42D042

loc_42D016:
mov	eax, [eax+8]
mov	ecx, [ecx+8]
cmp	ecx, eax
jb	short loc_42D033

loc_42D020:
xor	edx, edx
cmp	ecx, eax
jmp	short loc_42D03D

loc_42D026:
mov	ax, [eax+8]
mov	cx, [ecx+8]
cmp	cx, ax
jnb	short loc_42D038

loc_42D033:
or	eax, 0FFFFFFFFh
jmp	short loc_42D042

loc_42D038:
xor	edx, edx
cmp	cx, ax

loc_42D03D:
setnz	dl
mov	eax, edx

loc_42D042:
pop	esi
retn	4
sub_42CF00 endp



; Attributes: bp-based frame

; int __thiscall sub_42D046(FILETIME *lpFileTime, char,	char)
sub_42D046 proc	near

SystemTime= _SYSTEMTIME	ptr -10h
arg_0= byte ptr	 8
arg_4= byte ptr	 0Ch

push	ebp
mov	ebp, esp
sub	esp, 10h
push	esi
lea	eax, [ebp+SystemTime]
mov	esi, edx
push	eax		; lpSystemTime
push	ecx		; lpFileTime
and	byte ptr [esi],	0
call	ds:FileTimeToSystemTime
test	eax, eax
jnz	short loc_42D065
xor	al, al
jmp	short loc_42D0C5

loc_42D065:
movzx	edx, [ebp+SystemTime.wYear]
push	4
push	esi
xor	cl, cl
call	sub_42D0CA
movzx	edx, [ebp+SystemTime.wMonth]
push	2
mov	cl, 2Dh
pop	esi
push	esi
push	eax
call	sub_42D0CA
movzx	edx, [ebp+SystemTime.wDay]
push	esi
push	eax
mov	cl, 2Dh
call	sub_42D0CA
cmp	[ebp+arg_0], 0
jz	short loc_42D0C3
movzx	edx, [ebp+SystemTime.wHour]
push	esi
push	eax
mov	cl, 20h
call	sub_42D0CA
movzx	edx, [ebp+SystemTime.wMinute]
push	esi
push	eax
mov	cl, 3Ah
call	sub_42D0CA
cmp	[ebp+arg_4], 0
jz	short loc_42D0C3
movzx	edx, [ebp+SystemTime.wSecond]
push	esi
push	eax
mov	cl, 3Ah
call	sub_42D0CA

loc_42D0C3:
mov	al, 1

loc_42D0C5:
pop	esi
leave
retn	8
sub_42D046 endp



; Attributes: bp-based frame

sub_42D0CA proc	near

var_11=	byte ptr -11h
var_10=	byte ptr -10h
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

push	ebp
mov	ebp, esp
sub	esp, 10h
push	ebx
mov	ebx, [ebp+arg_0]
push	esi
push	edi
test	cl, cl
mov	edi, edx
jz	short loc_42D0DF
mov	[ebx], cl
inc	ebx

loc_42D0DF:
xor	esi, esi

loc_42D0E1:
push	0Ah
mov	eax, edi
xor	edx, edx
pop	ecx
div	ecx
mov	eax, edi
add	dl, 30h
mov	[ebp+esi+var_10], dl
xor	edx, edx
div	ecx
inc	esi
mov	edi, eax
test	edi, edi
jnz	short loc_42D0E1
mov	ecx, [ebp+arg_4]
sub	ecx, esi
test	ecx, ecx
mov	[ebp+arg_0], ecx
jle	short loc_42D121
mov	edx, ecx
mov	eax, 30303030h
mov	edi, ebx
shr	ecx, 2
rep stosd
mov	ecx, edx
and	ecx, 3
add	ebx, edx
rep stosb

loc_42D121:
mov	al, [ebp+esi+var_11]
dec	esi
mov	[ebx], al
inc	ebx
test	esi, esi
jg	short loc_42D121
and	byte ptr [ebx],	0
pop	edi
mov	eax, ebx
pop	esi
pop	ebx
leave
retn	8
sub_42D0CA endp



; Attributes: bp-based frame

sub_42D139 proc	near

var_3C=	byte ptr -3Ch
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= byte ptr	 8
arg_4= byte ptr	 0Ch

mov	eax, offset loc_447880
call	__EH_prolog
sub	esp, 30h
and	[ebp+var_10], 0
push	esi
push	dword ptr [ebp+arg_4] ;	char
mov	eax, edx
mov	esi, ecx
lea	edx, [ebp+var_3C]
push	dword ptr [ebp+arg_0] ;	char
mov	ecx, eax	; lpFileTime
call	sub_42D046
lea	eax, [ebp+var_3C]
lea	ecx, [ebp+Memory]
push	eax
call	sub_41E0DD
and	[ebp+var_4], 0
lea	edx, [ebp+Memory]
mov	ecx, esi
call	sub_41242C
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_42D139 endp



; Attributes: bp-based frame

sub_42D193 proc	near

var_4= dword ptr -4

push	ebp
mov	ebp, esp
push	ecx
movzx	eax, word ptr [edx]
push	esi
mov	esi, ecx
xor	ecx, ecx
cmp	eax, 11h
mov	[ebp+var_4], ecx
jg	short loc_42D207
jz	short loc_42D201
sub	eax, ecx
jz	short loc_42D1EE
dec	eax
dec	eax
jz	short loc_42D1E8
dec	eax
jz	short loc_42D1E0
sub	eax, 5
jz	short loc_42D1D1
sub	eax, 3
jnz	short loc_42D21A
cmp	[edx+8], cx
mov	eax, offset asc_45C7B0 ; "+"
jnz	short loc_42D1CE
mov	eax, offset asc_45B600 ; "-"

loc_42D1CE:
push	eax
jmp	short loc_42D1D4

loc_42D1D1:
push	dword ptr [edx+8]

loc_42D1D4:
mov	ecx, esi
call	sub_403091
jmp	loc_42D267

loc_42D1E0:
mov	eax, [edx+8]

loc_42D1E3:
cdq
push	edx
push	eax
jmp	short loc_42D24A

loc_42D1E8:
movsx	eax, word ptr [edx+8]
jmp	short loc_42D1E3

loc_42D1EE:
mov	[esi], ecx
mov	[esi+4], ecx
mov	[esi+8], ecx
push	3
mov	ecx, esi
call	sub_403396
jmp	short loc_42D267

loc_42D201:
movzx	eax, byte ptr [edx+8]
jmp	short loc_42D25D

loc_42D207:
sub	eax, 12h
jz	short loc_42D259
dec	eax
jz	short loc_42D253
dec	eax
jz	short loc_42D244
dec	eax
jz	short loc_42D23F
sub	eax, 2Bh
jz	short loc_42D22F

loc_42D21A:
lea	eax, [ebp+var_4]
push	offset unk_44D120
push	eax
mov	[ebp+var_4], 24AE5h
call	_CxxThrowException

loc_42D22F:
push	1
push	1
add	edx, 8
mov	ecx, esi
call	sub_42D139
jmp	short loc_42D267

loc_42D23F:
push	dword ptr [edx+0Ch]
jmp	short loc_42D254

loc_42D244:
push	dword ptr [edx+0Ch]
push	dword ptr [edx+8]

loc_42D24A:
mov	ecx, esi
call	sub_42D299
jmp	short loc_42D267

loc_42D253:
push	ecx

loc_42D254:
push	dword ptr [edx+8]
jmp	short loc_42D260

loc_42D259:
movzx	eax, word ptr [edx+8]

loc_42D25D:
cdq
push	edx
push	eax

loc_42D260:
mov	ecx, esi
call	sub_42D26C

loc_42D267:
mov	eax, esi
pop	esi
leave
retn
sub_42D193 endp



; Attributes: bp-based frame

sub_42D26C proc	near

var_44=	byte ptr -44h
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

push	ebp
mov	ebp, esp
sub	esp, 44h
and	[ebp+var_4], 0
push	esi
push	[ebp+arg_4]
mov	esi, ecx
lea	ecx, [ebp+var_44]
push	[ebp+arg_0]
call	sub_427B10
lea	eax, [ebp+var_44]
mov	ecx, esi
push	eax
call	sub_403091
mov	eax, esi
pop	esi
leave
retn	8
sub_42D26C endp



; Attributes: bp-based frame

sub_42D299 proc	near

var_44=	byte ptr -44h
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

push	ebp
mov	ebp, esp
sub	esp, 44h
and	[ebp+var_4], 0
push	esi
push	[ebp+arg_4]
mov	esi, ecx
lea	ecx, [ebp+var_44]
push	[ebp+arg_0]
call	sub_427B9C
lea	eax, [ebp+var_44]
mov	ecx, esi
push	eax
call	sub_403091
mov	eax, esi
pop	esi
leave
retn	8
sub_42D299 endp



; Attributes: bp-based frame

sub_42D2C6 proc	near

var_4= dword ptr -4

push	ebp
mov	ebp, esp
push	ecx
movzx	eax, word ptr [ecx]
sub	eax, 11h
jz	short loc_42D306
dec	eax
jz	short loc_42D300
dec	eax
jz	short loc_42D2F9
dec	eax
dec	eax
jz	short loc_42D2F1
lea	eax, [ebp+var_4]
push	offset unk_44D120
push	eax
mov	[ebp+var_4], 24E9Fh
call	_CxxThrowException

loc_42D2F1:
mov	eax, [ecx+8]
mov	edx, [ecx+0Ch]
leave
retn

loc_42D2F9:
mov	eax, [ecx+8]
xor	edx, edx
leave
retn

loc_42D300:
movzx	eax, word ptr [ecx+8]
jmp	short loc_42D30A

loc_42D306:
movzx	eax, byte ptr [ecx+8]

loc_42D30A:
cdq
leave
retn
sub_42D2C6 endp



; Attributes: bp-based frame

; int __stdcall	sub_42D30D(HKEY	hKey, LPCSTR lpSubKey, LPSTR lpClass, DWORD dwOptions, REGSAM samDesired, LPSECURITY_ATTRIBUTES	dwDisposition, int)
sub_42D30D proc	near

phkResult= dword ptr -4
hKey= dword ptr	 8
lpSubKey= dword	ptr  0Ch
lpClass= dword ptr  10h
dwOptions= dword ptr  14h
samDesired= dword ptr  18h
dwDisposition= dword ptr  1Ch
arg_18=	dword ptr  20h

push	ebp
mov	ebp, esp
push	ecx
lea	eax, [ebp+dwDisposition]
push	esi
push	eax		; lpdwDisposition
lea	eax, [ebp+phkResult]
push	eax		; phkResult
and	[ebp+phkResult], 0
push	[ebp+dwDisposition] ; lpSecurityAttributes
mov	esi, ecx
push	[ebp+samDesired] ; samDesired
push	[ebp+dwOptions]	; dwOptions
push	[ebp+lpClass]	; lpClass
push	0		; Reserved
push	[ebp+lpSubKey]	; lpSubKey
push	[ebp+hKey]	; hKey
call	ds:RegCreateKeyExA
mov	ecx, [ebp+arg_18]
test	ecx, ecx
jz	short loc_42D346
mov	edx, [ebp+dwDisposition]
mov	[ecx], edx

loc_42D346:
test	eax, eax
jnz	short loc_42D356
mov	ecx, esi
call	sub_42D390
mov	ecx, [ebp+phkResult]
mov	[esi], ecx

loc_42D356:
pop	esi
leave
retn	1Ch
sub_42D30D endp



; Attributes: bp-based frame

; int __stdcall	sub_42D35B(HKEY	hKey, LPCSTR lpSubKey, REGSAM samDesired)
sub_42D35B proc	near

phkResult= dword ptr -4
hKey= dword ptr	 8
lpSubKey= dword	ptr  0Ch
samDesired= dword ptr  10h

push	ebp
mov	ebp, esp
push	ecx
lea	eax, [ebp+phkResult]
push	esi
push	eax		; phkResult
and	[ebp+phkResult], 0
push	[ebp+samDesired] ; samDesired
mov	esi, ecx
push	0		; ulOptions
push	[ebp+lpSubKey]	; lpSubKey
push	[ebp+hKey]	; hKey
call	ds:RegOpenKeyExA
test	eax, eax
jnz	short loc_42D38B
mov	ecx, esi
call	sub_42D390
mov	ecx, [ebp+phkResult]
mov	[esi], ecx

loc_42D38B:
pop	esi
leave
retn	0Ch
sub_42D35B endp




sub_42D390 proc	near
push	esi
mov	esi, ecx
xor	eax, eax
mov	ecx, [esi]
test	ecx, ecx
jz	short loc_42D3A5
push	ecx		; hKey
call	ds:RegCloseKey
and	dword ptr [esi], 0

loc_42D3A5:
pop	esi
retn
sub_42D390 endp




; int __stdcall	sub_42D3A7(LPCSTR lpSubKey)
sub_42D3A7 proc	near

lpSubKey= dword	ptr  4

push	[esp+lpSubKey]	; lpSubKey
push	dword ptr [ecx]	; hKey
call	ds:RegDeleteKeyA
retn	4
sub_42D3A7 endp



; Attributes: bp-based frame

; int __stdcall	sub_42D3B6(LPCSTR lpSubKey)
sub_42D3B6 proc	near

SubKey=	byte ptr -128h
ftLastWriteTime= _FILETIME ptr -20h
var_18=	dword ptr -18h
cchName= dword ptr -14h
hKey= dword ptr	-10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
lpSubKey= dword	ptr  8

mov	eax, offset loc_447894
call	__EH_prolog
sub	esp, 11Ch
push	esi
xor	esi, esi
push	edi
mov	[ebp+var_18], ecx
mov	[ebp+hKey], esi
push	2001Fh		; samDesired
mov	[ebp+var_4], esi
push	[ebp+lpSubKey]	; lpSubKey
push	dword ptr [ecx]	; hKey
lea	ecx, [ebp+hKey]
call	sub_42D35B
cmp	eax, esi
jnz	short loc_42D457
lea	eax, [ebp+ftLastWriteTime]
mov	edi, ds:RegEnumKeyExA
push	eax		; lpftLastWriteTime
push	esi		; lpcchClass
push	esi		; lpClass
lea	eax, [ebp+cchName]
push	esi		; lpReserved
push	eax		; lpcchName
lea	eax, [ebp+SubKey]
mov	[ebp+cchName], 105h
push	eax		; lpName
push	esi		; dwIndex
push	[ebp+hKey]	; hKey

loc_42D40C:
call	edi ; RegEnumKeyExA
test	eax, eax
jnz	short loc_42D444
lea	eax, [ebp+SubKey]
lea	ecx, [ebp+hKey]
push	eax		; lpSubKey
call	sub_42D3B6
cmp	eax, esi
jnz	short loc_42D457
lea	eax, [ebp+ftLastWriteTime]
mov	[ebp+cchName], 105h
push	eax
push	esi
push	esi
lea	eax, [ebp+cchName]
push	esi
push	eax
lea	eax, [ebp+SubKey]
push	eax
push	esi
push	[ebp+hKey]
jmp	short loc_42D40C

loc_42D444:
lea	ecx, [ebp+hKey]
call	sub_42D390
push	[ebp+lpSubKey]	; lpSubKey
mov	ecx, [ebp+var_18]
call	sub_42D3A7

loc_42D457:
lea	ecx, [ebp+hKey]
mov	esi, eax
call	sub_42D390
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_42D3B6 endp




; int __stdcall	sub_42D473(LPCSTR lpValueName, BYTE Data)
sub_42D473 proc	near

lpValueName= dword ptr	4
Data= byte ptr	8

lea	eax, [esp+Data]
push	4		; cbData
push	eax		; lpData
push	4		; dwType
push	0		; Reserved
push	[esp+10h+lpValueName] ;	lpValueName
push	dword ptr [ecx]	; hKey
call	ds:RegSetValueExA
retn	8
sub_42D473 endp




; int __stdcall	sub_42D48D(LPCSTR lpValueName, char)
sub_42D48D proc	near

lpValueName= dword ptr	4
arg_4= byte ptr	 8

xor	eax, eax
cmp	[esp+arg_4], al
setnz	al
push	eax		; Data
push	[esp+4+lpValueName] ; lpValueName
call	sub_42D473
retn	8
sub_42D48D endp




; int __stdcall	sub_42D4A3(LPCSTR lpValueName, LPCSTR lpData)
sub_42D4A3 proc	near

lpValueName= dword ptr	4
lpData=	dword ptr  8

push	esi
mov	esi, ecx
push	[esp+4+lpData]	; lpString
call	ds:lstrlenA
inc	eax
push	eax		; cbData
push	[esp+8+lpData]	; lpData
push	1		; dwType
push	0		; Reserved
push	[esp+14h+lpValueName] ;	lpValueName
push	dword ptr [esi]	; hKey
call	ds:RegSetValueExA
pop	esi
retn	8
sub_42D4A3 endp



; Attributes: bp-based frame

; int __stdcall	sub_42D4CA(LPCWSTR lpValueName,	wchar_t	*lpData)
sub_42D4CA proc	near

var_40=	dword ptr -40h
Memory=	dword ptr -34h
var_28=	dword ptr -28h
var_1C=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
lpValueName= dword ptr	8
lpData=	dword ptr  0Ch

mov	eax, offset loc_4478E5
call	__EH_prolog
sub	esp, 34h
push	ebx
push	esi
xor	ebx, ebx
xor	esi, esi
cmp	byte_45D8B4, bl
push	edi
mov	edi, ecx
mov	[ebp+var_10], ebx
jz	short loc_42D510
push	[ebp+lpData]	; Str
call	ds:wcslen
pop	ecx
lea	eax, [eax+eax+2]
push	eax		; cbData
push	[ebp+lpData]	; lpData
push	1		; dwType
push	esi		; Reserved
push	[ebp+lpValueName] ; lpValueName
push	dword ptr [edi]	; hKey
call	ds:RegSetValueExW
jmp	loc_42D5BD

loc_42D510:
cmp	[ebp+lpData], esi
jz	short loc_42D540
push	[ebp+lpData]
lea	ecx, [ebp+var_28]
call	sub_403091
push	1
pop	esi
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
lea	edx, [ebp+var_28]
lea	ecx, [ebp+var_40]
call	sub_43A785
push	3
pop	ebx
mov	[ebp+var_10], ebx
mov	[ebp+var_4], esi
mov	esi, [eax]

loc_42D540:
xor	eax, eax
cmp	[ebp+lpValueName], eax
jz	short loc_42D56F
push	[ebp+lpValueName]
lea	ecx, [ebp+var_1C]
call	sub_403091
or	ebx, 4
mov	[ebp+var_10], ebx
lea	edx, [ebp+var_1C]
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], 2
call	sub_43A785
mov	eax, [eax]
or	ebx, 8

loc_42D56F:		; lpData
push	esi
push	eax		; lpValueName
mov	ecx, edi
call	sub_42D4A3
test	bl, 8
mov	esi, eax
jz	short loc_42D58B
push	[ebp+Memory]	; Memory
and	ebx, 0FFFFFFF7h
call	sub_4284D8
pop	ecx

loc_42D58B:
test	bl, 4
jz	short loc_42D59C
push	[ebp+var_1C]	; Memory
and	ebx, 0FFFFFFFBh
call	sub_4284D8
pop	ecx

loc_42D59C:
test	bl, 2
jz	short loc_42D5AD
push	[ebp+var_40]	; Memory
and	ebx, 0FFFFFFFDh
call	sub_4284D8
pop	ecx

loc_42D5AD:
test	bl, 1
jz	short loc_42D5BB
push	[ebp+var_28]	; Memory
call	sub_4284D8
pop	ecx

loc_42D5BB:
mov	eax, esi

loc_42D5BD:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_42D4CA endp




; int __stdcall	sub_42D5CE(LPCSTR lpValueName, BYTE *lpData, DWORD cbData)
sub_42D5CE proc	near

lpValueName= dword ptr	4
lpData=	dword ptr  8
cbData=	dword ptr  0Ch

push	[esp+cbData]	; cbData
push	[esp+4+lpData]	; lpData
push	3		; dwType
push	0		; Reserved
push	[esp+10h+lpValueName] ;	lpValueName
push	dword ptr [ecx]	; hKey
call	ds:RegSetValueExA
retn	0Ch
sub_42D5CE endp



; Attributes: bp-based frame

; int __stdcall	sub_42D5E9(LPCSTR lpValueName, LPBYTE lpData)
sub_42D5E9 proc	near

Type= dword ptr	-8
cbData=	dword ptr -4
lpValueName= dword ptr	8
lpData=	dword ptr  0Ch

push	ebp
mov	ebp, esp
push	ecx
push	ecx
lea	eax, [ebp+cbData]
and	[ebp+Type], 0
push	eax		; lpcbData
lea	eax, [ebp+Type]
push	[ebp+lpData]	; lpData
mov	[ebp+cbData], 4
push	eax		; lpType
push	0		; lpReserved
push	[ebp+lpValueName] ; lpValueName
push	dword ptr [ecx]	; hKey
call	ds:RegQueryValueExA
leave
retn	8
sub_42D5E9 endp



; Attributes: bp-based frame

; int __stdcall	sub_42D615(LPCSTR lpValueName, BYTE Data)
sub_42D615 proc	near

lpValueName= dword ptr	8
Data= byte ptr	0Ch

push	ebp
mov	ebp, esp
push	esi
mov	esi, dword ptr [ebp+Data]
xor	eax, eax
cmp	[esi], al
setnz	al
mov	dword ptr [ebp+Data], eax
lea	eax, [ebp+Data]
push	eax		; lpData
push	[ebp+lpValueName] ; lpValueName
call	sub_42D5E9
cmp	dword ptr [ebp+Data], 0
setnz	cl
mov	[esi], cl
pop	esi
pop	ebp
retn	8
sub_42D615 endp



; Attributes: bp-based frame

; int __stdcall	sub_42D640(LPCSTR Data,	int)
sub_42D640 proc	near

Data= dword ptr	 8
arg_4= dword ptr  0Ch

push	ebp
mov	ebp, esp
lea	eax, [ebp+Data]
push	eax		; lpData
push	[ebp+Data]	; lpValueName
call	sub_42D5E9
test	eax, eax
jnz	short loc_42D65B
mov	ecx, [ebp+arg_4]
mov	edx, [ebp+Data]
mov	[ecx], edx

loc_42D65B:
pop	ebp
retn	8
sub_42D640 endp



; Attributes: bp-based frame

sub_42D65F proc	near

Data= byte ptr	0Bh
arg_4= dword ptr  0Ch

push	ebp
mov	ebp, esp
lea	eax, [ebp+Data]
push	eax		; Data
push	dword ptr [ebp+8] ; lpValueName
call	sub_42D615
test	eax, eax
jnz	short loc_42D67A
mov	ecx, [ebp+arg_4]
mov	dl, [ebp+Data]
mov	[ecx], dl

loc_42D67A:
pop	ebp
retn	8
sub_42D65F endp



; Attributes: bp-based frame

; int __stdcall	sub_42D67E(LPCSTR lpValueName, DWORD cbData)
sub_42D67E proc	near

Type= dword ptr	-4
lpValueName= dword ptr	8
cbData=	dword ptr  0Ch

push	ebp
mov	ebp, esp
push	ecx
push	ebx
push	esi
mov	esi, [ebp+cbData]
xor	ebx, ebx
push	edi
mov	edi, ecx
mov	eax, [esi]
mov	[esi+4], ebx
mov	[eax], bl
lea	eax, [ebp+cbData]
push	eax		; lpcbData
lea	eax, [ebp+Type]
push	ebx		; lpData
push	eax		; lpType
push	ebx		; lpReserved
mov	[ebp+Type], ebx
push	[ebp+lpValueName] ; lpValueName
mov	[ebp+cbData], ebx
push	dword ptr [edi]	; hKey
call	ds:RegQueryValueExA
cmp	eax, ebx
jz	short loc_42D6B9
cmp	eax, 0EAh
jnz	short loc_42D6E5

loc_42D6B9:
mov	eax, [ebp+cbData]
cmp	eax, [esi+8]
jl	short loc_42D6C9
push	eax
mov	ecx, esi
call	sub_4034E3

loc_42D6C9:
mov	eax, [esi]
lea	ecx, [ebp+cbData]
push	ecx		; lpcbData
push	eax		; lpData
push	[ebp+lpValueName] ; lpValueName
mov	ecx, edi
call	sub_42D864
mov	ecx, esi
mov	edi, eax
call	sub_428D27
mov	eax, edi

loc_42D6E5:
pop	edi
pop	esi
pop	ebx
leave
retn	8
sub_42D67E endp



; Attributes: bp-based frame

; int __stdcall	sub_42D6EC(LPCWSTR lpValueName,	LPBYTE lpData, LPDWORD lpcbData)
sub_42D6EC proc	near

Type= dword ptr	-4
lpValueName= dword ptr	8
lpData=	dword ptr  0Ch
lpcbData= dword	ptr  10h

push	ebp
mov	ebp, esp
push	ecx
push	[ebp+lpcbData]	; lpcbData
lea	eax, [ebp+Type]
and	[ebp+Type], 0
push	[ebp+lpData]	; lpData
push	eax		; lpType
push	0		; lpReserved
push	[ebp+lpValueName] ; lpValueName
push	dword ptr [ecx]	; hKey
call	ds:RegQueryValueExW
leave
retn	0Ch
sub_42D6EC endp



; Attributes: bp-based frame

; int __stdcall	sub_42D70F(LPCWSTR lpValueName,	DWORD cbData)
sub_42D70F proc	near

Memory=	dword ptr -38h
var_2C=	dword ptr -2Ch
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
Type= dword ptr	-14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
lpValueName= dword ptr	8
cbData=	dword ptr  0Ch

mov	eax, offset loc_44792E
call	__EH_prolog
sub	esp, 2Ch
push	ebx
push	esi
mov	esi, [ebp+cbData]
xor	ebx, ebx
push	edi
mov	edi, ecx
mov	eax, [esi]
mov	[esi+4], ebx
mov	[ebp+var_10], ebx
mov	[eax], bx
cmp	byte_45D8B4, bl
mov	[ebp+Type], ebx
mov	[ebp+cbData], ebx
jz	short loc_42D7A5
lea	eax, [ebp+cbData]
push	eax		; lpcbData
lea	eax, [ebp+Type]
push	ebx		; lpData
push	eax		; lpType
push	ebx		; lpReserved
push	[ebp+lpValueName] ; lpValueName
push	dword ptr [edi]	; hKey
call	ds:RegQueryValueExW
cmp	eax, ebx
jz	short loc_42D763
cmp	eax, 0EAh
jnz	loc_42D853

loc_42D763:
mov	eax, [ebp+cbData]
cmp	eax, [esi+8]
jl	short loc_42D773
push	eax
mov	ecx, esi
call	sub_403396

loc_42D773:
mov	eax, [esi]
lea	ecx, [ebp+cbData]
push	ecx		; lpcbData
push	eax		; lpData
push	[ebp+lpValueName] ; lpValueName
mov	ecx, edi
call	sub_42D6EC
mov	edi, eax
mov	eax, [esi]
xor	ecx, ecx
cmp	[eax], bx
jz	short loc_42D799
mov	edx, eax

loc_42D791:
inc	ecx
inc	edx
inc	edx
cmp	[edx], bx
jnz	short loc_42D791

loc_42D799:
mov	[eax+ecx*2], bx
mov	[esi+4], ecx
jmp	loc_42D851

loc_42D7A5:
push	3
lea	ecx, [ebp+var_20]
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
call	sub_4034E3
cmp	[ebp+lpValueName], ebx
mov	[ebp+var_4], ebx
jnz	short loc_42D7C4
xor	eax, eax
jmp	short loc_42D7F5

loc_42D7C4:
push	[ebp+lpValueName]
lea	ecx, [ebp+var_2C]
call	sub_403091
mov	[ebp+var_10], 1
lea	edx, [ebp+var_2C]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_43A785
mov	[ebp+var_10], 3
mov	eax, [eax]
mov	[ebp+var_4], 2

loc_42D7F5:
lea	ecx, [ebp+var_20]
push	ecx		; cbData
push	eax		; lpValueName
mov	ecx, edi
call	sub_42D67E
test	byte ptr [ebp+var_10], 2
mov	edi, eax
jz	short loc_42D816
push	[ebp+Memory]	; Memory
and	[ebp+var_10], 0FFFFFFFDh
call	sub_4284D8
pop	ecx

loc_42D816:
test	byte ptr [ebp+var_10], 1
mov	[ebp+var_4], ebx
jz	short loc_42D828
push	[ebp+var_2C]	; Memory
call	sub_4284D8
pop	ecx

loc_42D828:
lea	edx, [ebp+var_20]
lea	ecx, [ebp+Memory]
call	sub_41242C
push	eax
mov	ecx, esi
mov	byte ptr [ebp+var_4], 3
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_20]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx

loc_42D851:
mov	eax, edi

loc_42D853:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_42D70F endp



; Attributes: bp-based frame

; int __stdcall	sub_42D864(LPCSTR lpValueName, LPBYTE lpData, LPDWORD lpcbData)
sub_42D864 proc	near

Type= dword ptr	-4
lpValueName= dword ptr	8
lpData=	dword ptr  0Ch
lpcbData= dword	ptr  10h

push	ebp
mov	ebp, esp
push	ecx
push	[ebp+lpcbData]	; lpcbData
lea	eax, [ebp+Type]
and	[ebp+Type], 0
push	[ebp+lpData]	; lpData
push	eax		; lpType
push	0		; lpReserved
push	[ebp+lpValueName] ; lpValueName
push	dword ptr [ecx]	; hKey
call	ds:RegQueryValueExA
leave
retn	0Ch
sub_42D864 endp



; Attributes: bp-based frame

; int __stdcall	sub_42D887(LPCSTR lpValueName, int, LPDWORD lpcbData)
sub_42D887 proc	near

Type= dword ptr	-4
lpValueName= dword ptr	8
arg_4= dword ptr  0Ch
lpcbData= dword	ptr  10h

push	ebp
mov	ebp, esp
push	ecx
push	ebx
push	esi
mov	esi, [ebp+lpcbData]
push	edi
xor	ebx, ebx
push	esi		; lpcbData
lea	eax, [ebp+Type]
push	ebx		; lpData
push	eax		; lpType
push	ebx		; lpReserved
push	[ebp+lpValueName] ; lpValueName
mov	edi, ecx
mov	[esi], ebx
mov	[ebp+Type], ebx
push	dword ptr [edi]	; hKey
call	ds:RegQueryValueExA
cmp	eax, ebx
jz	short loc_42D8B7
cmp	eax, 0EAh
jnz	short loc_42D8D2

loc_42D8B7:
mov	ebx, [ebp+arg_4]
push	dword ptr [esi]	; Size
mov	ecx, ebx
call	sub_41B339
mov	ebx, [ebx+8]
push	esi		; lpcbData
push	ebx		; lpData
mov	ecx, edi
push	[ebp+lpValueName] ; lpValueName
call	sub_42D864

loc_42D8D2:
pop	edi
pop	esi
pop	ebx
leave
retn	0Ch
sub_42D887 endp



; Attributes: bp-based frame

; int __stdcall	sub_42D8D9(LPCSTR lpValueName, int)
sub_42D8D9 proc	near

var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
lpData=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
lpValueName= dword ptr	8
arg_4= dword ptr  0Ch

mov	eax, offset loc_447940
call	__EH_prolog
sub	esp, 14h
push	ebx
push	esi
mov	esi, [ebp+arg_4]
push	edi
xor	edi, edi
mov	[ebp+var_14], ecx
mov	edx, [esi+8]
mov	[ebp+var_10], edi
cmp	edx, edi
jle	short loc_42D917
mov	ecx, [esi+0Ch]

loc_42D8FE:
mov	eax, [ecx]
mov	ebx, [ebp+var_10]
inc	edi
add	ecx, 4
mov	eax, [eax+4]
cmp	edi, edx
lea	eax, [ebx+eax+1]
mov	[ebp+var_10], eax
jl	short loc_42D8FE
xor	edi, edi

loc_42D917:
mov	[ebp+var_1C], edi
mov	[ebp+lpData], edi
mov	[ebp+var_20], offset off_44C3A4
push	[ebp+var_10]
lea	ecx, [ebp+var_20]
mov	[ebp+var_4], edi
call	sub_41B388
xor	ebx, ebx
cmp	[esi+8], edi
mov	[ebp+arg_4], edi
jle	short loc_42D96E

loc_42D93C:
mov	eax, [esi+0Ch]
mov	ecx, [ebp+arg_4]
mov	edi, [eax+ecx*4]
mov	eax, [ebp+lpData]
mov	ecx, [edi]
lea	eax, [eax+ebx*2]

loc_42D94D:
mov	dx, [ecx]
mov	[eax], dx
inc	eax
inc	eax
inc	ecx
inc	ecx
test	dx, dx
jnz	short loc_42D94D
mov	eax, [edi+4]
inc	[ebp+arg_4]
lea	ebx, [ebx+eax+1]
mov	eax, [ebp+arg_4]
cmp	eax, [esi+8]
jl	short loc_42D93C

loc_42D96E:
mov	eax, [ebp+var_10]
mov	ecx, [ebp+var_14]
add	eax, eax
push	eax		; cbData
push	[ebp+lpData]	; lpData
push	[ebp+lpValueName] ; lpValueName
call	sub_42D5CE
push	[ebp+lpData]	; Memory
mov	esi, eax
mov	[ebp+var_20], offset off_44C3A4
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_42D8D9 endp



; Attributes: bp-based frame

; int __stdcall	sub_42D9A7(LPCSTR lpValueName, int)
sub_42D9A7 proc	near

var_28=	dword ptr -28h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
Memory=	dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
cbData=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
lpValueName= dword ptr	8
arg_4= dword ptr  0Ch

mov	eax, offset loc_44795C
call	__EH_prolog
sub	esp, 1Ch
push	esi
push	edi
mov	edi, ecx
mov	ecx, [ebp+arg_4]
call	sub_428327
xor	esi, esi
mov	[ebp+var_28], offset off_44C434
mov	[ebp+var_24], esi
mov	[ebp+var_20], esi
lea	eax, [ebp+cbData]
mov	ecx, edi
push	eax		; lpcbData
lea	eax, [ebp+var_28]
push	eax		; int
mov	[ebp+var_4], esi
push	[ebp+lpValueName] ; lpValueName
call	sub_42D887
cmp	eax, esi
jz	short loc_42D9EC
mov	esi, eax
jmp	short loc_42DA54

loc_42D9EC:
mov	eax, [ebp+cbData]
test	al, 1
jz	short loc_42D9FA
mov	esi, 80004005h
jmp	short loc_42DA54

loc_42D9FA:
mov	edi, [ebp+var_20]
push	ebx
shr	eax, 1
push	3
lea	ecx, [ebp+Memory]
mov	ebx, eax
mov	[ebp+Memory], esi
mov	[ebp+var_18], esi
mov	[ebp+var_14], esi
call	sub_403396
cmp	ebx, esi
mov	byte ptr [ebp+var_4], 1
jle	short loc_42DA4A

loc_42DA1D:
mov	ax, [edi]
cmp	ax, si
jnz	short loc_42DA3C
mov	ecx, [ebp+arg_4]
lea	eax, [ebp+Memory]
push	eax
call	sub_4032B4
mov	eax, [ebp+Memory]
mov	[ebp+var_18], esi
mov	[eax], si
jmp	short loc_42DA45

loc_42DA3C:
push	eax
lea	ecx, [ebp+Memory]
call	sub_40316A

loc_42DA45:
inc	edi
inc	edi
dec	ebx
jnz	short loc_42DA1D

loc_42DA4A:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
pop	ebx

loc_42DA54:		; Memory
push	[ebp+var_20]
mov	[ebp+var_28], offset off_44C434
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_42D9A7 endp




sub_42DA76 proc	near
push	dword ptr [ecx+8] ; Memory
mov	dword ptr [ecx], offset	off_44C3A4
call	sub_4284D8
pop	ecx
retn
sub_42DA76 endp



; Attributes: bp-based frame

; int __stdcall	sub_42DA86(UINT	uID)
sub_42DA86 proc	near

Memory=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
hInstance= dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
uID= dword ptr	8

mov	eax, offset loc_447970
call	__EH_prolog
sub	esp, 18h
push	ebx
mov	[ebp+var_10], ecx
push	esi
xor	ebx, ebx
mov	[ebp+hInstance], edx
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+var_18], ebx
mov	[ebp+Memory], ebx
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
call	sub_4034E3
mov	[ebp+var_4], ebx
mov	esi, 100h

loc_42DABB:
add	esi, 100h
lea	eax, [esi-1]
cmp	eax, [ebp+var_1C]
jl	short loc_42DAD2
push	eax
lea	ecx, [ebp+Memory]
call	sub_4034E3

loc_42DAD2:		; cchBufferMax
push	esi
push	[ebp+Memory]	; lpBuffer
push	[ebp+uID]	; uID
push	[ebp+hInstance]	; hInstance
call	ds:LoadStringA
mov	ecx, esi
sub	ecx, eax
cmp	ecx, 1
jle	short loc_42DABB
mov	ecx, [ebp+Memory]
xor	eax, eax
cmp	[ecx], bl
jz	short loc_42DAFA

loc_42DAF4:
inc	eax
cmp	[eax+ecx], bl
jnz	short loc_42DAF4

loc_42DAFA:
mov	[eax+ecx], bl
mov	ecx, [ebp+var_10]
mov	[ebp+var_20], eax
lea	eax, [ebp+Memory]
push	eax
call	sub_4128EF
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_10]
pop	ecx
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_42DA86 endp



; Attributes: bp-based frame

; int __stdcall	sub_42DB28(UINT	uID)
sub_42DB28 proc	near

Memory=	dword ptr -30h
lpBuffer= dword	ptr -24h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
hInstance= dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
uID= dword ptr	8

mov	eax, offset loc_44798C
call	__EH_prolog
sub	esp, 24h
push	ebx
xor	ebx, ebx
cmp	byte_45D8B4, bl
mov	[ebp+hInstance], edx
mov	[ebp+var_10], ecx
mov	[ebp+var_18], ebx
jz	short loc_42DBC2
push	esi
push	3
lea	ecx, [ebp+lpBuffer]
mov	[ebp+lpBuffer],	ebx
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
call	sub_403396
mov	[ebp+var_4], ebx
mov	esi, 100h

loc_42DB65:
add	esi, 100h
lea	eax, [esi-1]
cmp	eax, [ebp+var_1C]
jl	short loc_42DB7C
push	eax
lea	ecx, [ebp+lpBuffer]
call	sub_403396

loc_42DB7C:		; cchBufferMax
push	esi
push	[ebp+lpBuffer]	; lpBuffer
push	[ebp+uID]	; uID
push	[ebp+hInstance]	; hInstance
call	ds:LoadStringW
mov	ecx, esi
sub	ecx, eax
cmp	ecx, 1
jle	short loc_42DB65
mov	ecx, [ebp+lpBuffer]
xor	eax, eax
pop	esi
cmp	[ecx], bx
jz	short loc_42DBAA
mov	edx, ecx

loc_42DBA2:
inc	eax
inc	edx
inc	edx
cmp	[edx], bx
jnz	short loc_42DBA2

loc_42DBAA:
mov	[ecx+eax*2], bx
mov	ecx, [ebp+var_10]
mov	[ebp+var_20], eax
lea	eax, [ebp+lpBuffer]
push	eax
call	sub_4030F2
push	[ebp+lpBuffer]
jmp	short loc_42DBE1

loc_42DBC2:		; uID
push	[ebp+uID]
lea	ecx, [ebp+Memory]
call	sub_42DA86
mov	ecx, [ebp+var_10]
mov	edx, eax
mov	[ebp+var_4], 1
call	sub_41242C
push	[ebp+Memory]	; Memory

loc_42DBE1:
call	sub_4284D8
mov	eax, [ebp+var_10]
pop	ecx
mov	ecx, [ebp+var_C]
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_42DB28 endp




sub_42DBF9 proc	near

var_4= dword ptr -4

push	ecx
and	[esp+4+var_4], 0
push	esi
push	edx		; uID
mov	edx, hInstance
mov	esi, ecx
call	sub_42DB28
mov	eax, esi
pop	esi
pop	ecx
retn
sub_42DBF9 endp



; Attributes: bp-based frame

sub_42DC13 proc	near

var_14=	dword ptr -14h
ppMalloc= dword	ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4479A0
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, ecx
cmp	dword ptr [esi], 0
jz	short loc_42DC71
and	[ebp+ppMalloc],	0
and	[ebp+var_4], 0
lea	eax, [ebp+ppMalloc]
push	eax		; ppMalloc
call	ds:SHGetMalloc
test	eax, eax
jz	short loc_42DC52
lea	eax, [ebp+var_14]
push	offset unk_44D120
push	eax
mov	[ebp+var_14], 0A08Bh
call	_CxxThrowException

loc_42DC52:
mov	eax, [ebp+ppMalloc]
push	dword ptr [esi]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+14h]
mov	eax, [ebp+ppMalloc]
and	dword ptr [esi], 0
or	[ebp+var_4], 0FFFFFFFFh
test	eax, eax
jz	short loc_42DC71
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_42DC71:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_42DC13 endp




sub_42DC7E proc	near

arg_0= dword ptr  4

push	esi
mov	esi, ecx
call	sub_42DC94
mov	eax, [esp+4+arg_0]
mov	byte ptr [esi+5], 1
mov	[esi], eax
pop	esi
retn	4
sub_42DC7E endp




sub_42DC94 proc	near
push	esi
mov	esi, ecx
cmp	byte ptr [esi+4], 0
jz	short loc_42DCAB
cmp	byte ptr [esi+5], 0
jz	short loc_42DCAB
push	dword ptr [esi]	; hDrop
call	ds:DragFinish

loc_42DCAB:
and	byte ptr [esi+5], 0
pop	esi
retn
sub_42DC94 endp




sub_42DCB1 proc	near
push	0		; cch
push	0		; lpszFile
push	0FFFFFFFFh	; iFile
push	dword ptr [ecx]	; hDrop
call	ds:DragQueryFileA
retn
sub_42DCB1 endp



; Attributes: bp-based frame

; int __stdcall	sub_42DCC0(int,	UINT iFile)
sub_42DCC0 proc	near

Memory=	dword ptr -34h
lpszFile= 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_4= dword ptr -4
arg_0= dword ptr  8
iFile= dword ptr  0Ch

mov	eax, offset loc_4479C4
call	__EH_prolog
sub	esp, 28h
push	ebx
push	esi
mov	esi, ecx
push	edi
xor	ebx, ebx
push	3
lea	ecx, [ebp+var_1C]
mov	[ebp+var_10], ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_403396
cmp	byte_45D8B4, bl
mov	[ebp+var_4], ebx
jnz	loc_42DD86
push	3
lea	ecx, [ebp+lpszFile]
mov	[ebp+lpszFile],	ebx
mov	[ebp+var_24], ebx
mov	[ebp+var_20], ebx
call	sub_4034E3
mov	edi, ds:DragQueryFileA
push	ebx		; cch
push	ebx		; lpszFile
mov	byte ptr [ebp+var_4], 1
push	[ebp+iFile]	; iFile
push	dword ptr [esi]	; hDrop
call	edi ; DragQueryFileA
lea	ecx, [eax+2]
mov	[ebp+var_10], eax
cmp	ecx, [ebp+var_20]
jl	short loc_42DD36
push	ecx
lea	ecx, [ebp+lpszFile]
call	sub_4034E3
mov	eax, [ebp+var_10]

loc_42DD36:
inc	eax
push	eax		; cch
push	[ebp+lpszFile]	; lpszFile
push	[ebp+iFile]	; iFile
push	dword ptr [esi]	; hDrop
call	edi ; DragQueryFileA
mov	ecx, [ebp+lpszFile]
xor	eax, eax
cmp	[ecx], bl
jz	short loc_42DD51

loc_42DD4B:
inc	eax
cmp	[eax+ecx], bl
jnz	short loc_42DD4B

loc_42DD51:
mov	[eax+ecx], bl
lea	edx, [ebp+lpszFile]
lea	ecx, [ebp+Memory]
mov	[ebp+var_24], eax
call	sub_41242C
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 2
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+lpszFile]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx
pop	ecx
jmp	short loc_42DDD3

loc_42DD86:
mov	edi, ds:DragQueryFileW
push	ebx		; cch
push	ebx		; lpszFile
push	[ebp+iFile]	; iFile
push	dword ptr [esi]	; hDrop
call	edi ; DragQueryFileW
lea	ecx, [eax+2]
mov	[ebp+var_10], eax
cmp	ecx, [ebp+var_14]
jl	short loc_42DDAC
push	ecx
lea	ecx, [ebp+var_1C]
call	sub_403396
mov	eax, [ebp+var_10]

loc_42DDAC:
inc	eax
push	eax		; cch
push	[ebp+var_1C]	; lpszFile
push	[ebp+iFile]	; iFile
push	dword ptr [esi]	; hDrop
call	edi ; DragQueryFileW
mov	eax, [ebp+var_1C]
xor	ecx, ecx
cmp	[eax], bx
jz	short loc_42DDCC
mov	edx, eax

loc_42DDC4:
inc	ecx
inc	edx
inc	edx
cmp	[edx], bx
jnz	short loc_42DDC4

loc_42DDCC:
mov	[eax+ecx*2], bx
mov	[ebp+var_18], ecx

loc_42DDD3:
mov	ecx, [ebp+arg_0]
lea	eax, [ebp+var_1C]
push	eax
call	sub_4030F2
push	[ebp+var_1C]	; Memory
call	sub_4284D8
mov	eax, [ebp+arg_0]
pop	ecx
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_42DCC0 endp



; Attributes: bp-based frame

sub_42DDFC proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4479D8
call	__EH_prolog
sub	esp, 0Ch
push	ebx
mov	ebx, ecx
mov	ecx, [ebp+arg_0]
push	esi
push	edi
call	sub_428327
mov	ecx, ebx
call	sub_42DCB1
mov	ecx, [ebp+arg_0]
mov	edi, eax
push	edi
call	sub_428378
xor	esi, esi
test	edi, edi
jbe	short loc_42DE59

loc_42DE2E:
lea	eax, [ebp+Memory]
push	esi		; iFile
push	eax		; int
mov	ecx, ebx
call	sub_42DCC0
mov	ecx, [ebp+arg_0]
and	[ebp+var_4], 0
push	eax
call	sub_4032B4
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
inc	esi
pop	ecx
cmp	esi, edi
jb	short loc_42DE2E

loc_42DE59:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_42DDFC endp




; int __fastcall sub_42DE6A(LPCITEMIDLIST pidl)
sub_42DE6A proc	near
push	ebx
push	esi
mov	esi, edx
mov	eax, 208h
push	edi
mov	edi, ecx
cmp	[esi+8], eax
jg	short loc_42DE83
push	eax
mov	ecx, esi
call	sub_4034E3

loc_42DE83:		; pszPath
push	dword ptr [esi]
push	edi		; pidl
call	ds:SHGetPathFromIDListA
test	eax, eax
mov	ecx, esi
setnz	bl
call	sub_428D27
mov	al, bl
pop	edi
pop	esi
pop	ebx
retn
sub_42DE6A endp



; Attributes: bp-based frame

sub_42DE9E proc	near

var_14=	dword ptr -14h
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4479F4
call	__EH_prolog
push	ecx
push	ecx
push	ebx
push	esi
xor	ebx, ebx
push	edi
mov	edi, edx
mov	esi, ecx
push	ebx		; pvReserved
call	ds:CoInitialize
push	esi		; lpbi
mov	[ebp+var_4], ebx
call	ds:SHBrowseForFolderA
mov	esi, eax
cmp	esi, ebx
jz	short loc_42DEF6
mov	[ebp+var_14], ebx
lea	ecx, [ebp+var_14]
mov	byte ptr [ebp+var_4], 1
call	sub_42DC13
mov	edx, edi
mov	ecx, esi	; pidl
mov	[ebp+var_14], esi
call	sub_42DE6A
lea	ecx, [ebp+var_14]
mov	[ebp+var_D], al
mov	byte ptr [ebp+var_4], bl
call	sub_42DC13
mov	bl, [ebp+var_D]

loc_42DEF6:
call	ds:__imp_CoUninitialize
mov	ecx, [ebp+var_C]
mov	al, bl
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_42DE9E endp



; Attributes: bp-based frame thunk

sub_42DF0D proc	near
jmp	sub_42DC13
sub_42DF0D endp


loc_42DF12:
mov	eax, [esp+8]
dec	eax
jnz	short loc_42DF2E
push	dword ptr [esp+10h]
push	1
push	466h
push	dword ptr [esp+10h]
call	ds:SendMessageA

loc_42DF2E:
xor	eax, eax
retn	10h


; Attributes: bp-based frame

sub_42DF33 proc	near

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
Memory=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_447A08
call	__EH_prolog
sub	esp, 2Ch
push	ebx
push	esi
push	edi
mov	edi, ecx
xor	esi, esi
mov	ebx, edx
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], esi
mov	[ebp+var_14], esi
mov	[ebp+var_10], esi
call	sub_4034E3
mov	eax, 104h
mov	[ebp+var_4], esi
cmp	[ebp+var_10], eax
mov	[ebp+var_38], edi
mov	[ebp+var_34], esi
jg	short loc_42DF78
push	eax
lea	ecx, [ebp+Memory]
call	sub_4034E3

loc_42DF78:
mov	eax, [ebp+Memory]
mov	edx, [ebp+arg_8]
mov	[ebp+var_30], eax
mov	eax, [ebp+arg_0]
mov	[ebp+var_28], eax
mov	eax, [ebp+arg_4]
mov	ecx, eax
mov	[ebp+var_2C], ebx
neg	ecx
sbb	ecx, ecx
mov	[ebp+var_20], eax
and	ecx, offset loc_42DF12
mov	[ebp+var_24], ecx
lea	ecx, [ebp+var_38]
call	sub_42DE9E
mov	bl, al
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
mov	al, bl
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_42DF33 endp




sub_42DFC5 proc	near
push	ebx
push	esi
mov	esi, edx
push	edi
push	offset aShgetpathfromi ; "SHGetPathFromIDListW"
mov	ebx, ecx
mov	eax, [esi]
and	dword ptr [esi+4], 0
push	offset ModuleName ; "shell32.dll"
and	word ptr [eax],	0
call	ds:GetModuleHandleW
push	eax		; hModule
call	ds:GetProcAddress
mov	edi, eax
test	edi, edi
jnz	short loc_42DFF7
xor	al, al
jmp	short loc_42E01C

loc_42DFF7:
mov	eax, 208h
cmp	[esi+8], eax
jg	short loc_42E009
push	eax
mov	ecx, esi
call	sub_403396

loc_42E009:
push	dword ptr [esi]
push	ebx
call	edi
test	eax, eax
mov	ecx, esi
setnz	bl
call	sub_428D08
mov	al, bl

loc_42E01C:
pop	edi
pop	esi
pop	ebx
retn
sub_42DFC5 endp



; Attributes: bp-based frame

sub_42E020 proc	near

var_14=	dword ptr -14h
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_447A24
call	__EH_prolog
push	ecx
push	ecx
push	ebx
push	esi
xor	ebx, ebx
push	edi
mov	edi, edx
mov	esi, ecx
push	ebx		; pvReserved
call	ds:CoInitialize
push	offset aShbrowseforfol ; "SHBrowseForFolderW"
push	offset ModuleName ; "shell32.dll"
mov	[ebp+var_4], ebx
call	ds:GetModuleHandleW
push	eax		; hModule
call	ds:GetProcAddress
cmp	eax, ebx
jz	short loc_42E08F
push	esi
call	eax
mov	esi, eax
cmp	esi, ebx
jz	short loc_42E08F
mov	[ebp+var_14], ebx
lea	ecx, [ebp+var_14]
mov	byte ptr [ebp+var_4], 1
call	sub_42DC13
mov	edx, edi
mov	ecx, esi
mov	[ebp+var_14], esi
call	sub_42DFC5
lea	ecx, [ebp+var_14]
mov	[ebp+var_D], al
mov	byte ptr [ebp+var_4], bl
call	sub_42DC13
mov	bl, [ebp+var_D]

loc_42E08F:
call	ds:__imp_CoUninitialize
mov	ecx, [ebp+var_C]
mov	al, bl
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_42E020 endp




; int __stdcall	sub_42E0A6(HWND	hWnd, int, int,	LPARAM lParam)
sub_42E0A6 proc	near

hWnd= dword ptr	 4
arg_4= dword ptr  8
lParam=	dword ptr  10h

mov	eax, [esp+arg_4]
dec	eax
jnz	short loc_42E0C2
push	[esp+lParam]	; lParam
push	1		; wParam
push	467h		; Msg
push	[esp+0Ch+hWnd]	; hWnd
call	ds:SendMessageW

loc_42E0C2:
xor	eax, eax
retn	10h
sub_42E0A6 endp



; Attributes: bp-based frame

sub_42E0C7 proc	near

var_48=	dword ptr -48h
Memory=	dword ptr -3Ch
var_30=	dword ptr -30h
var_24=	dword ptr -24h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_447A60
call	__EH_prolog
sub	esp, 3Ch
push	ebx
xor	ebx, ebx
cmp	byte_45D8B4, bl
push	esi
push	edi
mov	esi, edx
mov	edi, ecx
jz	short loc_42E0F7
push	[ebp+arg_4]
push	[ebp+arg_0]
push	41h
call	sub_42E1C2
jmp	loc_42E1B1

loc_42E0F7:
push	3
lea	ecx, [ebp+var_18]
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_4034E3
push	[ebp+arg_0]
lea	ecx, [ebp+var_30]
mov	[ebp+var_4], ebx
call	sub_403091
push	esi
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 1
call	sub_403091
lea	edx, [ebp+var_30]
lea	ecx, [ebp+var_48]
mov	byte ptr [ebp+var_4], 2
call	sub_43A785
mov	esi, [eax]
lea	edx, [ebp+var_24]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 3
call	sub_43A785
mov	eax, [eax]
lea	ecx, [ebp+var_18]
push	ecx
push	esi
push	41h
mov	edx, eax
mov	ecx, edi
mov	byte ptr [ebp+var_4], 4
call	sub_42DF33
mov	byte ptr [ebp+arg_0+3],	al
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_48]	; Memory
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
push	[ebp+var_30]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
add	esp, 10h
lea	edx, [ebp+var_18]
lea	ecx, [ebp+var_48]
call	sub_41242C
mov	ecx, [ebp+arg_4]
push	eax
mov	byte ptr [ebp+var_4], 5
call	sub_40312C
push	[ebp+var_48]	; Memory
call	sub_4284D8
push	[ebp+var_18]	; Memory
call	sub_4284D8
mov	al, byte ptr [ebp+arg_0+3]
pop	ecx
pop	ecx

loc_42E1B1:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_42E0C7 endp



; Attributes: bp-based frame

sub_42E1C2 proc	near

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
Memory=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_447A74
call	__EH_prolog
sub	esp, 2Ch
push	ebx
push	esi
push	edi
mov	edi, ecx
xor	esi, esi
mov	ebx, edx
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], esi
mov	[ebp+var_14], esi
mov	[ebp+var_10], esi
call	sub_403396
mov	eax, 104h
mov	[ebp+var_4], esi
cmp	[ebp+var_10], eax
mov	[ebp+var_38], edi
mov	[ebp+var_34], esi
jg	short loc_42E207
push	eax
lea	ecx, [ebp+Memory]
call	sub_403396

loc_42E207:
mov	eax, [ebp+Memory]
mov	edx, [ebp+arg_8]
mov	[ebp+var_30], eax
mov	eax, [ebp+arg_0]
mov	[ebp+var_28], eax
mov	eax, [ebp+arg_4]
mov	ecx, eax
mov	[ebp+var_2C], ebx
neg	ecx
sbb	ecx, ecx
mov	[ebp+var_20], eax
and	ecx, offset sub_42E0A6
mov	[ebp+var_24], ecx
lea	ecx, [ebp+var_38]
call	sub_42E020
mov	bl, al
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
mov	al, bl
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_42E1C2 endp



; Attributes: bp-based frame

; int __fastcall sub_42E254(FILETIME *lpFileTime)
sub_42E254 proc	near

FatTime= word ptr -4
FatDate= word ptr -2

push	ebp
mov	ebp, esp
push	ecx
push	esi
lea	eax, [ebp+FatTime]
push	edi
push	eax		; lpFatTime
lea	eax, [ebp+FatDate]
mov	edi, ecx
push	eax		; lpFatDate
mov	esi, edx
push	edi		; lpFileTime
call	ds:FileTimeToDosDateTime
test	eax, eax
jnz	short loc_42E28A
cmp	dword ptr [edi+4], 1C00000h
sbb	eax, eax
and	eax, 814083h
add	eax, 0FF9FBF7Dh
mov	[esi], eax
xor	al, al
jmp	short loc_42E29B

loc_42E28A:
movzx	eax, [ebp+FatDate]
movzx	ecx, [ebp+FatTime]
shl	eax, 10h
add	eax, ecx
mov	[esi], eax
mov	al, 1

loc_42E29B:
pop	edi
pop	esi
leave
retn
sub_42E254 endp




sub_42E29F proc	near
push	esi
push	edi
push	1
mov	esi, ecx
push	0
push	0
push	dword ptr [esi+4]
mov	edi, edx
call	__allmul
mov	ecx, [esi]
xor	esi, esi
add	eax, ecx
mov	ecx, 19DB1DEh
adc	edx, esi
mov	esi, 0D53E8000h
cmp	edx, ecx
ja	short loc_42E2D4
jb	short loc_42E2CF
cmp	eax, esi
jnb	short loc_42E2D4

loc_42E2CF:
and	dword ptr [edi], 0
jmp	short loc_42E2F2

loc_42E2D4:
sub	eax, esi
push	0
sbb	edx, ecx
push	989680h
push	edx
push	eax
call	__aulldiv
test	edx, edx
ja	short loc_42E2EF
cmp	eax, 0FFFFFFFFh
jbe	short loc_42E2F6

loc_42E2EF:
or	dword ptr [edi], 0FFFFFFFFh

loc_42E2F2:
xor	al, al
jmp	short loc_42E2FA

loc_42E2F6:
mov	[edi], eax
mov	al, 1

loc_42E2FA:
pop	edi
pop	esi
retn
sub_42E29F endp



; Attributes: bp-based frame

; int __fastcall sub_42E2FD(LPFILETIME lpFileTime)
sub_42E2FD proc	near

SystemTime= _SYSTEMTIME	ptr -10h

push	ebp
mov	ebp, esp
sub	esp, 10h
lea	eax, [ebp+SystemTime]
push	esi
mov	esi, ecx
push	eax		; lpSystemTime
call	ds:GetSystemTime
lea	eax, [ebp+SystemTime]
push	esi		; lpFileTime
push	eax		; lpSystemTime
call	ds:SystemTimeToFileTime
pop	esi
leave
retn
sub_42E2FD endp



; Attributes: bp-based frame

sub_42E31E proc	near

WndClass= WNDCLASSA ptr	-64h
Memory=	dword ptr -3Ch
var_30=	dword ptr -30h
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_4= dword ptr -4

mov	eax, offset loc_447AB0
call	__EH_prolog
sub	esp, 58h
push	ebx
xor	ebx, ebx
cmp	byte_45D8B4, bl
push	esi
mov	esi, ecx
jz	short loc_42E345
push	esi		; lpWndClass
call	ds:RegisterClassW
jmp	loc_42E45A

loc_42E345:
mov	eax, [esi]
push	edi
mov	[ebp+WndClass.style], eax
mov	eax, [esi+4]
mov	[ebp+WndClass.lpfnWndProc], eax
mov	eax, [esi+8]
mov	[ebp+WndClass.cbClsExtra], eax
mov	eax, [esi+0Ch]
mov	[ebp+WndClass.cbWndExtra], eax
mov	eax, [esi+10h]
mov	[ebp+WndClass.hInstance], eax
mov	eax, [esi+14h]
mov	[ebp+WndClass.hIcon], eax
mov	eax, [esi+18h]
mov	[ebp+WndClass.hCursor],	eax
mov	eax, [esi+1Ch]
push	3
lea	ecx, [ebp+var_24]
mov	[ebp+WndClass.hbrBackground], eax
mov	[ebp+var_24], ebx
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
call	sub_4034E3
push	3
lea	ecx, [ebp+var_18]
mov	[ebp+var_4], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_4034E3
mov	eax, [esi+20h]
mov	edi, 0FFFF0000h
test	edi, eax
mov	byte ptr [ebp+var_4], 1
jz	short loc_42E3EC
push	eax
lea	ecx, [ebp+var_30]
call	sub_403091
lea	edx, [ebp+var_30]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 2
call	sub_43A785
push	eax
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 3
call	sub_403244
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_30]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
mov	eax, [ebp+var_24]
pop	ecx
pop	ecx

loc_42E3EC:
mov	esi, [esi+24h]
mov	[ebp+WndClass.lpszMenuName], eax
test	edi, esi
pop	edi
jnz	short loc_42E3FC
mov	[ebp+WndClass.lpszClassName], esi
jmp	short loc_42E439

loc_42E3FC:
push	esi
lea	ecx, [ebp+var_30]
call	sub_403091
lea	edx, [ebp+var_30]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 4
call	sub_43A785
push	eax
lea	ecx, [ebp+var_18]
mov	byte ptr [ebp+var_4], 5
call	sub_403244
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_30]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_18]
pop	ecx
pop	ecx
mov	[ebp+WndClass.lpszClassName], eax

loc_42E439:
lea	eax, [ebp+WndClass]
push	eax		; lpWndClass
call	ds:RegisterClassA
mov	esi, eax
push	[ebp+var_18]	; Memory
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
pop	ecx
mov	ax, si
pop	ecx

loc_42E45A:
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_42E31E endp



; Attributes: bp-based frame

; int __stdcall	sub_42E468(LPCWSTR lpClassName,	LPCWSTR	lpWindowName, DWORD dwStyle, int X, int	Y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam)
sub_42E468 proc	near

var_3C=	dword ptr -3Ch
Memory=	dword ptr -30h
var_24=	dword ptr -24h
var_18=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
lpClassName= dword ptr	8
lpWindowName= dword ptr	 0Ch
dwStyle= dword ptr  10h
X= dword ptr  14h
Y= dword ptr  18h
nWidth=	dword ptr  1Ch
nHeight= dword ptr  20h
hWndParent= dword ptr  24h
hMenu= dword ptr  28h
hInstance= dword ptr  2Ch
lpParam= dword ptr  30h

mov	eax, offset loc_447AD4
call	__EH_prolog
sub	esp, 30h
push	ebx
xor	ebx, ebx
cmp	byte_45D8B4, bl
push	esi
mov	esi, ecx
jz	short loc_42E4BB
push	[ebp+lpParam]	; lpParam
push	[ebp+hInstance]	; hInstance
push	[ebp+hMenu]	; hMenu
push	[ebp+hWndParent] ; hWndParent
push	[ebp+nHeight]	; nHeight
push	[ebp+nWidth]	; nWidth
push	[ebp+Y]		; Y
push	[ebp+X]		; X
push	[ebp+dwStyle]	; dwStyle
push	[ebp+lpWindowName] ; lpWindowName
push	[ebp+lpClassName] ; lpClassName
push	ebx		; dwExStyle
call	ds:CreateWindowExW
xor	ecx, ecx
cmp	eax, ebx
setnz	cl
mov	[esi], eax
mov	al, cl
jmp	loc_42E548

loc_42E4BB:
push	edi
lea	ecx, [ebp+var_24]
push	[ebp+lpWindowName]
call	sub_403091
push	[ebp+lpClassName]
lea	ecx, [ebp+var_18]
mov	[ebp+var_4], ebx
call	sub_403091
lea	edx, [ebp+var_24]
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 1
call	sub_43A785
mov	edi, [eax]
lea	edx, [ebp+var_18]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 2
call	sub_43A785
push	[ebp+lpParam]	; lpParam
mov	eax, [eax]
push	[ebp+hInstance]	; hInstance
push	[ebp+hMenu]	; hMenu
push	[ebp+hWndParent] ; hWndParent
push	[ebp+nHeight]	; nHeight
push	[ebp+nWidth]	; nWidth
push	[ebp+Y]		; Y
push	[ebp+X]		; X
push	[ebp+dwStyle]	; dwStyle
push	edi		; lpWindowName
push	eax		; lpClassName
push	ebx		; dwExStyle
call	ds:CreateWindowExA
push	[ebp+Memory]	; Memory
cmp	eax, ebx
mov	[esi], eax
setnz	bl
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
push	[ebp+var_18]	; Memory
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
add	esp, 10h
mov	al, bl
pop	edi

loc_42E548:
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	2Ch
sub_42E468 endp



; Attributes: bp-based frame

; int __stdcall	sub_42E558(DWORD dwExStyle, LPCWSTR lpClassName, LPCWSTR lpWindowName, DWORD dwStyle, int X, int Y, int	nWidth,	int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance,	LPVOID lpParam)
sub_42E558 proc	near

Memory=	dword ptr -40h
var_34=	dword ptr -34h
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_4= dword ptr -4
dwExStyle= dword ptr  8
lpClassName= dword ptr	0Ch
lpWindowName= dword ptr	 10h
dwStyle= dword ptr  14h
X= dword ptr  18h
Y= dword ptr  1Ch
nWidth=	dword ptr  20h
nHeight= dword ptr  24h
hWndParent= dword ptr  28h
hMenu= dword ptr  2Ch
hInstance= dword ptr  30h
lpParam= dword ptr  34h

mov	eax, offset loc_447B10
call	__EH_prolog
sub	esp, 34h
push	ebx
push	esi
xor	ebx, ebx
mov	esi, ecx
cmp	byte_45D8B4, bl
mov	[ebp+var_10], esi
jz	short loc_42E5B0
push	[ebp+lpParam]	; lpParam
push	[ebp+hInstance]	; hInstance
push	[ebp+hMenu]	; hMenu
push	[ebp+hWndParent] ; hWndParent
push	[ebp+nHeight]	; nHeight
push	[ebp+nWidth]	; nWidth
push	[ebp+Y]		; Y
push	[ebp+X]		; X
push	[ebp+dwStyle]	; dwStyle
push	[ebp+lpWindowName] ; lpWindowName
push	[ebp+lpClassName] ; lpClassName
push	[ebp+dwExStyle]	; dwExStyle
call	ds:CreateWindowExW
xor	ecx, ecx
cmp	eax, ebx
setnz	cl
mov	[esi], eax
mov	al, cl
jmp	loc_42E6AD

loc_42E5B0:
push	edi
push	3
lea	ecx, [ebp+var_28]
mov	[ebp+var_28], ebx
mov	[ebp+var_24], ebx
mov	[ebp+var_20], ebx
call	sub_4034E3
mov	edi, [ebp+lpClassName]
mov	esi, 0FFFF0000h
test	esi, edi
mov	[ebp+var_4], ebx
jz	short loc_42E610
push	edi
lea	ecx, [ebp+var_34]
call	sub_403091
lea	edx, [ebp+var_34]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_43A785
push	eax
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 2
call	sub_403244
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_34]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
mov	edi, [ebp+var_28]
pop	ecx
pop	ecx

loc_42E610:
push	3
lea	ecx, [ebp+var_1C]
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_4034E3
mov	eax, [ebp+lpWindowName]
mov	byte ptr [ebp+var_4], 3
test	esi, eax
jz	short loc_42E668
push	eax
lea	ecx, [ebp+var_34]
call	sub_403091
lea	edx, [ebp+var_34]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 4
call	sub_43A785
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 5
call	sub_403244
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_34]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_1C]
pop	ecx
pop	ecx

loc_42E668:		; lpParam
push	[ebp+lpParam]
push	[ebp+hInstance]	; hInstance
push	[ebp+hMenu]	; hMenu
push	[ebp+hWndParent] ; hWndParent
push	[ebp+nHeight]	; nHeight
push	[ebp+nWidth]	; nWidth
push	[ebp+Y]		; Y
push	[ebp+X]		; X
push	[ebp+dwStyle]	; dwStyle
push	eax		; lpWindowName
push	edi		; lpClassName
push	[ebp+dwExStyle]	; dwExStyle
call	ds:CreateWindowExA
mov	ecx, [ebp+var_10]
push	[ebp+var_1C]	; Memory
cmp	eax, ebx
mov	[ecx], eax
setnz	bl
call	sub_4284D8
push	[ebp+var_28]	; Memory
call	sub_4284D8
pop	ecx
mov	al, bl
pop	ecx
pop	edi

loc_42E6AD:
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	30h
sub_42E558 endp



; Attributes: bp-based frame

sub_42E6BD proc	near

Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_447B24
call	__EH_prolog
sub	esp, 18h
push	ebx
xor	ebx, ebx
cmp	byte_45D8B4, bl
push	esi
mov	esi, ecx
push	edx		; lpString
jz	short loc_42E6E8
push	esi		; hWnd
call	ds:SetWindowTextW
neg	eax
sbb	eax, eax
neg	eax
jmp	short loc_42E721

loc_42E6E8:
lea	ecx, [ebp+var_18]
call	sub_403091
push	ebx
lea	edx, [ebp+var_18]
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], ebx
call	sub_428673
push	dword ptr [eax]	; lpString
push	esi		; hWnd
call	ds:SetWindowTextA
test	eax, eax
push	[ebp+Memory]	; Memory
setnz	bl
call	sub_4284D8
push	[ebp+var_18]	; Memory
call	sub_4284D8
pop	ecx
mov	al, bl
pop	ecx

loc_42E721:
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_42E6BD endp




sub_42E72F proc	near

arg_0= dword ptr  4

push	ebx
push	esi
mov	esi, [esp+8+arg_0]
mov	ebx, ecx
push	edi
mov	eax, [esi]
and	dword ptr [esi+4], 0
and	byte ptr [eax],	0
push	dword ptr [ebx]	; hWnd
call	ds:GetWindowTextLengthA
mov	edi, eax
test	edi, edi
jnz	short loc_42E75C
call	ds:GetLastError
neg	eax
sbb	eax, eax
inc	eax
jmp	short loc_42E793

loc_42E75C:
cmp	edi, [esi+8]
jl	short loc_42E769
push	edi
mov	ecx, esi
call	sub_4034E3

loc_42E769:
mov	eax, [esi]
inc	edi
push	edi		; nMaxCount
push	eax		; lpString
push	dword ptr [ebx]	; hWnd
call	ds:GetWindowTextA
mov	ecx, esi
mov	edi, eax
call	sub_428D27
test	edi, edi
jnz	short loc_42E791
call	ds:GetLastError
neg	eax
sbb	eax, eax
neg	eax
jmp	short loc_42E793

loc_42E791:
mov	al, 1

loc_42E793:
pop	edi
pop	esi
pop	ebx
retn	4
sub_42E72F endp



; Attributes: bp-based frame

sub_42E799 proc	near

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

mov	eax, offset loc_447B40
call	__EH_prolog
sub	esp, 18h
cmp	byte_45D8B4, 0
push	ebx
push	esi
push	edi
mov	ebx, ecx
jz	short loc_42E81A
mov	esi, [ebp+arg_0]
mov	eax, [esi]
and	dword ptr [esi+4], 0
and	word ptr [eax],	0
push	dword ptr [ebx]	; hWnd
call	ds:GetWindowTextLengthW
mov	edi, eax
test	edi, edi
jz	short loc_42E809
cmp	edi, [esi+8]
jl	short loc_42E7DC
push	edi
mov	ecx, esi
call	sub_403396

loc_42E7DC:
mov	eax, [esi]
inc	edi
push	edi		; nMaxCount
push	eax		; lpString
push	dword ptr [ebx]	; hWnd
call	ds:GetWindowTextW
mov	ecx, [esi]
xor	ebx, ebx
xor	edx, edx
cmp	[ecx], bx
jz	short loc_42E7FE
mov	edi, ecx

loc_42E7F6:
inc	edx
inc	edi
inc	edi
cmp	[edi], bx
jnz	short loc_42E7F6

loc_42E7FE:
mov	[ecx+edx*2], bx
cmp	eax, ebx
mov	[esi+4], edx
jnz	short loc_42E816

loc_42E809:
call	ds:GetLastError
neg	eax
sbb	eax, eax
inc	eax
jmp	short loc_42E86B

loc_42E816:
mov	al, 1
jmp	short loc_42E86B

loc_42E81A:
xor	esi, esi
push	3
lea	ecx, [ebp+var_18]
mov	[ebp+var_18], esi
mov	[ebp+var_14], esi
mov	[ebp+var_10], esi
call	sub_4034E3
lea	eax, [ebp+var_18]
mov	ecx, ebx
push	eax
mov	[ebp+var_4], esi
call	sub_42E72F
lea	edx, [ebp+var_18]
lea	ecx, [ebp+Memory]
mov	bl, al
call	sub_41242C
mov	ecx, [ebp+arg_0]
push	eax
mov	byte ptr [ebp+var_4], 1
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_18]	; Memory
call	sub_4284D8
pop	ecx
mov	al, bl
pop	ecx

loc_42E86B:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_42E799 endp



; Attributes: bp-based frame

; int __stdcall	sub_42E87C(LPDWORD lpVolumeSerialNumber, LPDWORD lpMaximumComponentLength, LPDWORD lpFileSystemFlags, LPSTR lpFileSystemNameBuffer)
sub_42E87C proc	near

lpRootPathName=	dword ptr -4
lpVolumeSerialNumber= dword ptr	 8
lpMaximumComponentLength= dword	ptr  0Ch
lpFileSystemFlags= dword ptr  10h
lpFileSystemNameBuffer=	dword ptr  14h

push	ebp
mov	ebp, esp
push	ecx
push	ebx
mov	ebx, [ebp+lpFileSystemNameBuffer]
push	esi
mov	esi, 104h
cmp	[ebx+8], esi
push	edi
mov	edi, edx
mov	[ebp+lpRootPathName], ecx
jg	short loc_42E89D
push	esi
mov	ecx, ebx
call	sub_4034E3

loc_42E89D:
mov	eax, [ebx]
cmp	[edi+8], esi
mov	[ebp+lpFileSystemNameBuffer], eax
jg	short loc_42E8AF
push	esi
mov	ecx, edi
call	sub_4034E3

loc_42E8AF:		; nFileSystemNameSize
push	esi
mov	eax, [edi]
push	[ebp+lpFileSystemNameBuffer] ; lpFileSystemNameBuffer
push	[ebp+lpFileSystemFlags]	; lpFileSystemFlags
push	[ebp+lpMaximumComponentLength] ; lpMaximumComponentLength
push	[ebp+lpVolumeSerialNumber] ; lpVolumeSerialNumber
push	esi		; nVolumeNameSize
push	eax		; lpVolumeNameBuffer
push	[ebp+lpRootPathName] ; lpRootPathName
call	ds:GetVolumeInformationA
test	eax, eax
mov	ecx, edi
setnz	byte ptr [ebp+lpFileSystemNameBuffer+3]
call	sub_428D27
mov	ecx, ebx
call	sub_428D27
mov	al, byte ptr [ebp+lpFileSystemNameBuffer+3]
pop	edi
pop	esi
pop	ebx
leave
retn	10h
sub_42E87C endp



; Attributes: bp-based frame

; int __stdcall	sub_42E8E7(LPDWORD lpVolumeSerialNumber, LPDWORD lpMaximumComponentLength, LPDWORD lpFileSystemFlags, int)
sub_42E8E7 proc	near

Memory=	dword ptr -44h
var_38=	dword ptr -38h
var_2C=	dword ptr -2Ch
var_28=	dword ptr -28h
var_24=	dword ptr -24h
FileSystemNameBuffer= byte ptr -20h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
lpFileSystemNameBuffer=	dword ptr -14h
lpRootPathName=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
lpVolumeSerialNumber= dword ptr	 8
lpMaximumComponentLength= dword	ptr  0Ch
lpFileSystemFlags= dword ptr  10h
arg_C= dword ptr  14h

mov	eax, offset loc_447B7C
call	__EH_prolog
sub	esp, 38h
push	ebx
xor	ebx, ebx
cmp	byte_45D8B4, bl
push	edi
mov	edi, edx
mov	[ebp+lpRootPathName], ecx
jz	loc_42E98E
mov	ecx, [ebp+arg_C]
push	esi
mov	esi, 104h
cmp	[ecx+8], esi
jg	short loc_42E920
push	esi
call	sub_403396
mov	ecx, [ebp+arg_C]

loc_42E920:
mov	eax, [ecx]
cmp	[edi+8], esi
mov	[ebp+lpFileSystemNameBuffer], eax
jg	short loc_42E932
push	esi
mov	ecx, edi
call	sub_403396

loc_42E932:		; nFileSystemNameSize
push	esi
mov	eax, [edi]
push	[ebp+lpFileSystemNameBuffer] ; lpFileSystemNameBuffer
push	[ebp+lpFileSystemFlags]	; lpFileSystemFlags
push	[ebp+lpMaximumComponentLength] ; lpMaximumComponentLength
push	[ebp+lpVolumeSerialNumber] ; lpVolumeSerialNumber
push	esi		; nVolumeNameSize
push	eax		; lpVolumeNameBuffer
push	[ebp+lpRootPathName] ; lpRootPathName
call	ds:GetVolumeInformationW
mov	ecx, [edi]
test	eax, eax
setnz	al
xor	edx, edx
cmp	[ecx], bx
jz	short loc_42E964
mov	esi, ecx

loc_42E95C:
inc	edx
inc	esi
inc	esi
cmp	[esi], bx
jnz	short loc_42E95C

loc_42E964:
mov	esi, [ebp+arg_C]
mov	[ecx+edx*2], bx
mov	[edi+4], edx
xor	edx, edx
mov	ecx, [esi]
cmp	[ecx], bx
jz	short loc_42E981
mov	edi, ecx

loc_42E979:
inc	edx
inc	edi
inc	edi
cmp	[edi], bx
jnz	short loc_42E979

loc_42E981:
mov	[ecx+edx*2], bx
mov	[esi+4], edx
pop	esi
jmp	loc_42EA6A

loc_42E98E:
push	3
lea	ecx, [ebp+var_2C]
mov	[ebp+var_2C], ebx
mov	[ebp+var_28], ebx
mov	[ebp+var_24], ebx
call	sub_4034E3
push	3
lea	ecx, [ebp+FileSystemNameBuffer]
mov	[ebp+var_4], ebx
mov	dword ptr [ebp+FileSystemNameBuffer], ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
call	sub_4034E3
push	[ebp+lpRootPathName]
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 1
call	sub_403091
lea	edx, [ebp+var_38]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 2
call	sub_43A785
lea	ecx, [ebp+FileSystemNameBuffer]
mov	eax, [eax]
push	ecx		; lpFileSystemNameBuffer
lea	edx, [ebp+var_2C]
push	[ebp+lpFileSystemFlags]	; lpFileSystemFlags
mov	ecx, eax
mov	byte ptr [ebp+var_4], 3
push	[ebp+lpMaximumComponentLength] ; lpMaximumComponentLength
push	[ebp+lpVolumeSerialNumber] ; lpVolumeSerialNumber
call	sub_42E87C
mov	byte ptr [ebp+lpFileSystemFlags+3], al
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_38]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
cmp	byte ptr [ebp+lpFileSystemFlags+3], bl
pop	ecx
pop	ecx
jz	short loc_42EA55
lea	edx, [ebp+var_2C]
lea	ecx, [ebp+Memory]
call	sub_41242C
push	eax
mov	ecx, edi
mov	byte ptr [ebp+var_4], 4
call	sub_40312C
mov	byte ptr [ebp+var_4], 1
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
lea	edx, [ebp+FileSystemNameBuffer]
lea	ecx, [ebp+Memory]
call	sub_41242C
mov	ecx, [ebp+arg_C]
push	eax
mov	byte ptr [ebp+var_4], 5
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_42EA55:		; Memory
push	dword ptr [ebp+FileSystemNameBuffer]
call	sub_4284D8
push	[ebp+var_2C]	; Memory
call	sub_4284D8
mov	al, byte ptr [ebp+lpFileSystemFlags+3]
pop	ecx
pop	ecx

loc_42EA6A:
mov	ecx, [ebp+var_C]
pop	edi
pop	ebx
mov	large fs:0, ecx
leave
retn	10h
sub_42E8E7 endp



; Attributes: bp-based frame

sub_42EA7A proc	near

var_30=	byte ptr -30h
var_28=	dword ptr -28h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
NumberOfFreeClusters= dword ptr	-18h
TotalNumberOfClusters= dword ptr -14h
BytesPerSector=	dword ptr -10h
SectorsPerCluster= dword ptr -0Ch
lpRootPathName=	dword ptr -8
var_1= byte ptr	-1
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

push	ebp
mov	ebp, esp
sub	esp, 30h
push	ebx
push	esi
push	edi
push	offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
mov	esi, edx
mov	[ebp+lpRootPathName], ecx
push	offset aKernel32_dll_0 ; "kernel32.dll"
call	ds:GetModuleHandleA
push	eax		; hModule
call	ds:GetProcAddress
and	[ebp+var_1], 0
mov	edi, [ebp+arg_4]
mov	ebx, [ebp+arg_0]
test	eax, eax
jz	short loc_42EADA
lea	ecx, [ebp+var_28]
push	ecx
lea	ecx, [ebp+var_20]
push	ecx
lea	ecx, [ebp+var_30]
push	ecx
push	[ebp+lpRootPathName]
call	eax
test	eax, eax
mov	eax, [ebp+var_20]
mov	[ebx], eax
mov	eax, [ebp+var_1C]
mov	[ebx+4], eax
mov	eax, [ebp+var_28]
mov	[edi], eax
mov	eax, [ebp+var_24]
setnz	[ebp+var_1]
mov	[edi+4], eax

loc_42EADA:
lea	eax, [ebp+TotalNumberOfClusters]
push	eax		; lpTotalNumberOfClusters
lea	eax, [ebp+NumberOfFreeClusters]
push	eax		; lpNumberOfFreeClusters
lea	eax, [ebp+BytesPerSector]
push	eax		; lpBytesPerSector
lea	eax, [ebp+SectorsPerCluster]
push	eax		; lpSectorsPerCluster
push	[ebp+lpRootPathName] ; lpRootPathName
call	ds:GetDiskFreeSpaceA
test	eax, eax
jnz	short loc_42EAFB
xor	al, al
jmp	short loc_42EB34

loc_42EAFB:
mov	eax, [ebp+SectorsPerCluster]
mul	[ebp+BytesPerSector]
cmp	[ebp+var_1], 0
mov	[esi], eax
mov	[esi+4], edx
jnz	short loc_42EB32
push	edx
push	dword ptr [esi]
push	0
push	[ebp+TotalNumberOfClusters]
call	__allmul
mov	[ebx], eax
mov	[ebx+4], edx
push	dword ptr [esi+4]
push	dword ptr [esi]
push	0
push	[ebp+NumberOfFreeClusters]
call	__allmul
mov	[edi], eax
mov	[edi+4], edx

loc_42EB32:
mov	al, 1

loc_42EB34:
pop	edi
pop	esi
pop	ebx
leave
retn	8
sub_42EA7A endp



; Attributes: bp-based frame

sub_42EB3B proc	near

Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_447B98
call	__EH_prolog
sub	esp, 18h
push	ebx
push	esi
push	ecx
mov	esi, edx
lea	ecx, [ebp+var_18]
call	sub_403091
and	[ebp+var_4], 0
lea	edx, [ebp+var_18]
lea	ecx, [ebp+Memory]
call	sub_43A785
push	[ebp+arg_4]
mov	eax, [eax]
mov	edx, esi
mov	ecx, eax
push	[ebp+arg_0]
mov	byte ptr [ebp+var_4], 1
call	sub_42EA7A
mov	bl, al
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_18]	; Memory
call	sub_4284D8
pop	ecx
mov	al, bl
pop	ecx
pop	esi
mov	ecx, [ebp+var_C]
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_42EB3B endp




; int __thiscall sub_42EB9F(LPHANDLE lphEnum, DWORD dwScope, DWORD dwType, DWORD dwUsage, LPNETRESOURCEA lpNetResource)
sub_42EB9F proc	near

dwScope= dword ptr  4
dwType=	dword ptr  8
dwUsage= dword ptr  0Ch
lpNetResource= dword ptr  10h

push	esi
mov	esi, ecx
call	sub_42EEF0
push	esi		; lphEnum
push	[esp+8+lpNetResource] ;	lpNetResource
push	[esp+0Ch+dwUsage] ; dwUsage
push	[esp+10h+dwType] ; dwType
push	[esp+14h+dwScope] ; dwScope
call	WNetOpenEnumA
test	eax, eax
setz	cl
mov	[esi+4], cl
pop	esi
retn	10h
sub_42EB9F endp




; int __thiscall sub_42EBC9(LPHANDLE lphEnum, DWORD dwScope, DWORD dwType, DWORD dwUsage, LPNETRESOURCEW lpNetResource)
sub_42EBC9 proc	near

dwScope= dword ptr  4
dwType=	dword ptr  8
dwUsage= dword ptr  0Ch
lpNetResource= dword ptr  10h

push	esi
mov	esi, ecx
call	sub_42EEF0
push	esi		; lphEnum
push	[esp+8+lpNetResource] ;	lpNetResource
push	[esp+0Ch+dwUsage] ; dwUsage
push	[esp+10h+dwType] ; dwType
push	[esp+14h+dwScope] ; dwScope
call	WNetOpenEnumW
test	eax, eax
setz	cl
mov	[esi+4], cl
pop	esi
retn	10h
sub_42EBC9 endp



; Attributes: bp-based frame

; int __thiscall sub_42EBF3(LPHANDLE lphEnum, DWORD dwScope, DWORD dwType, DWORD dwUsage, int)
sub_42EBF3 proc	near

var_20=	byte ptr -20h
dwScope= dword ptr  8
dwType=	dword ptr  0Ch
dwUsage= dword ptr  10h
arg_C= dword ptr  14h

push	ebp
mov	ebp, esp
sub	esp, 20h
push	esi
mov	esi, ecx
mov	ecx, [ebp+arg_C]
test	ecx, ecx
jnz	short loc_42EC07
xor	eax, eax
jmp	short loc_42EC12

loc_42EC07:
lea	edx, [ebp+var_20]
call	sub_42EC28
lea	eax, [ebp+var_20]

loc_42EC12:		; lpNetResource
push	eax
mov	ecx, esi	; lphEnum
push	[ebp+dwUsage]	; dwUsage
push	[ebp+dwType]	; dwType
push	[ebp+dwScope]	; dwScope
call	sub_42EB9F
pop	esi
leave
retn	10h
sub_42EBF3 endp




sub_42EC28 proc	near
push	esi
mov	esi, ecx
push	edi
mov	edi, edx
mov	eax, [esi]
mov	[edi], eax
mov	eax, [esi+4]
mov	[edi+4], eax
mov	eax, [esi+8]
mov	[edi+8], eax
mov	eax, [esi+0Ch]
mov	[edi+0Ch], eax
mov	dl, [esi+10h]
lea	eax, [esi+14h]
lea	ecx, [edi+10h]
push	eax
call	sub_42EC83
mov	dl, [esi+11h]
lea	eax, [esi+20h]
push	eax
lea	ecx, [edi+14h]
call	sub_42EC83
mov	dl, [esi+12h]
lea	eax, [esi+2Ch]
push	eax
lea	ecx, [edi+18h]
call	sub_42EC83
mov	dl, [esi+13h]
lea	eax, [esi+38h]
push	eax
lea	ecx, [edi+1Ch]
call	sub_42EC83
pop	edi
pop	esi
retn
sub_42EC28 endp




sub_42EC83 proc	near

arg_0= dword ptr  4

test	dl, dl
jz	short loc_42EC91
mov	eax, [esp+arg_0]
mov	eax, [eax]
mov	[ecx], eax
jmp	short locret_42EC94

loc_42EC91:
and	dword ptr [ecx], 0

locret_42EC94:
retn	4
sub_42EC83 endp



; Attributes: bp-based frame

; int __stdcall	sub_42EC97(DWORD dwScope, DWORD	dwType,	DWORD dwUsage, int)
sub_42EC97 proc	near

var_70=	byte ptr -70h
var_2C=	byte ptr -2Ch
var_C= dword ptr -0Ch
var_4= dword ptr -4
dwScope= dword ptr  8
dwType=	dword ptr  0Ch
dwUsage= dword ptr  10h
arg_C= dword ptr  14h

mov	eax, offset loc_447BAC
call	__EH_prolog
sub	esp, 64h
cmp	byte_45D8B4, 0
push	esi
mov	esi, ecx
jz	short loc_42ECD9
mov	ecx, [ebp+arg_C]
test	ecx, ecx
jnz	short loc_42ECBB
xor	eax, eax
jmp	short loc_42ECC6

loc_42ECBB:
lea	edx, [ebp+var_2C]
call	sub_42ED2B
lea	eax, [ebp+var_2C]

loc_42ECC6:		; lpNetResource
push	eax
mov	ecx, esi	; lphEnum
push	[ebp+dwUsage]	; dwUsage
push	[ebp+dwType]	; dwType
push	[ebp+dwScope]	; dwScope
call	sub_42EBC9
jmp	short loc_42ED1C

loc_42ECD9:
lea	ecx, [ebp+var_70]
call	sub_42EE51
mov	ecx, [ebp+arg_C]
and	[ebp+var_4], 0
test	ecx, ecx
jnz	short loc_42ECF0
xor	eax, eax
jmp	short loc_42ECFB

loc_42ECF0:
lea	edx, [ebp+var_70]
call	sub_42ED86
lea	eax, [ebp+var_70]

loc_42ECFB:		; int
push	eax
mov	ecx, esi	; lphEnum
push	[ebp+dwUsage]	; dwUsage
push	[ebp+dwType]	; dwType
push	[ebp+dwScope]	; dwScope
call	sub_42EBF3
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_70]
mov	esi, eax
call	sub_42EEC8
mov	eax, esi

loc_42ED1C:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	10h
sub_42EC97 endp




sub_42ED2B proc	near
push	esi
mov	esi, ecx
push	edi
mov	edi, edx
mov	eax, [esi]
mov	[edi], eax
mov	eax, [esi+4]
mov	[edi+4], eax
mov	eax, [esi+8]
mov	[edi+8], eax
mov	eax, [esi+0Ch]
mov	[edi+0Ch], eax
mov	dl, [esi+10h]
lea	eax, [esi+14h]
lea	ecx, [edi+10h]
push	eax
call	sub_42EC83
mov	dl, [esi+11h]
lea	eax, [esi+20h]
push	eax
lea	ecx, [edi+14h]
call	sub_42EC83
mov	dl, [esi+12h]
lea	eax, [esi+2Ch]
push	eax
lea	ecx, [edi+18h]
call	sub_42EC83
mov	dl, [esi+13h]
lea	eax, [esi+38h]
push	eax
lea	ecx, [edi+1Ch]
call	sub_42EC83
pop	edi
pop	esi
retn
sub_42ED2B endp



; Attributes: bp-based frame

sub_42ED86 proc	near

var_28=	dword ptr -28h
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_447BD8
call	__EH_prolog
sub	esp, 1Ch
push	ebx
push	esi
push	edi
mov	ebx, edx
mov	eax, ecx
push	5
pop	ecx
mov	esi, eax
mov	edi, ebx
lea	edx, [eax+14h]
rep movsd
lea	ecx, [ebp+Memory]
mov	[ebp+var_10], eax
call	sub_43A785
and	[ebp+var_4], 0
push	eax
lea	ecx, [ebx+14h]
call	sub_403244
or	[ebp+var_4], 0FFFFFFFFh
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	esi, [ebp+var_10]
pop	ecx
lea	ecx, [ebp+Memory]
lea	edx, [esi+20h]
call	sub_43A785
push	eax
lea	ecx, [ebx+20h]
mov	[ebp+var_4], 1
call	sub_403244
or	[ebp+var_4], 0FFFFFFFFh
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
lea	edx, [esi+2Ch]
lea	ecx, [ebp+Memory]
call	sub_43A785
push	eax
lea	ecx, [ebx+2Ch]
mov	[ebp+var_4], 2
call	sub_403244
or	[ebp+var_4], 0FFFFFFFFh
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
lea	edx, [esi+38h]
lea	ecx, [ebp+var_28]
call	sub_43A785
push	eax
lea	ecx, [ebx+38h]
mov	[ebp+var_4], 3
call	sub_403244
push	[ebp+var_28]	; Memory
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_42ED86 endp



; Attributes: bp-based frame

sub_42EE51 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_447C05
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	edi
xor	edi, edi
lea	ecx, [esi+14h]
push	3
mov	[ebp+var_10], esi
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_4034E3
lea	ecx, [esi+20h]
push	3
mov	[ebp+var_4], edi
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_4034E3
lea	ecx, [esi+2Ch]
push	3
mov	byte ptr [ebp+var_4], 1
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_4034E3
lea	ecx, [esi+38h]
push	3
mov	byte ptr [ebp+var_4], 2
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_4034E3
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_42EE51 endp




sub_42EEC8 proc	near
push	esi
mov	esi, ecx
push	dword ptr [esi+38h] ; Memory
call	sub_4284D8
push	dword ptr [esi+2Ch] ; Memory
call	sub_4284D8
push	dword ptr [esi+20h] ; Memory
call	sub_4284D8
push	dword ptr [esi+14h] ; Memory
call	sub_4284D8
add	esp, 10h
pop	esi
retn
sub_42EEC8 endp




sub_42EEF0 proc	near
push	esi
mov	esi, ecx
cmp	byte ptr [esi+4], 0
jnz	short loc_42EEFD
xor	eax, eax
pop	esi
retn

loc_42EEFD:		; hEnum
push	dword ptr [esi]
call	WNetCloseEnum
test	eax, eax
setnz	cl
mov	[esi+4], cl
pop	esi
retn
sub_42EEF0 endp




; int __stdcall	sub_42EF0E(LPDWORD lpcCount, LPVOID lpBuffer, LPDWORD lpBufferSize)
sub_42EF0E proc	near

lpcCount= dword	ptr  4
lpBuffer= dword	ptr  8
lpBufferSize= dword ptr	 0Ch

push	[esp+lpBufferSize] ; lpBufferSize
push	[esp+4+lpBuffer] ; lpBuffer
push	[esp+8+lpcCount] ; lpcCount
push	dword ptr [ecx]	; hEnum
call	WNetEnumResourceA
retn	0Ch
sub_42EF0E endp




; int __stdcall	sub_42EF24(LPDWORD lpcCount, LPVOID lpBuffer, LPDWORD lpBufferSize)
sub_42EF24 proc	near

lpcCount= dword	ptr  4
lpBuffer= dword	ptr  8
lpBufferSize= dword ptr	 0Ch

push	[esp+lpBufferSize] ; lpBufferSize
push	[esp+4+lpBuffer] ; lpBuffer
push	[esp+8+lpcCount] ; lpcCount
push	dword ptr [ecx]	; hEnum
call	WNetEnumResourceW
retn	0Ch
sub_42EF24 endp



; Attributes: bp-based frame

sub_42EF3A proc	near

var_28=	dword ptr -28h
var_24=	dword ptr -24h
Memory=	dword ptr -20h
var_1C=	dword ptr -1Ch
BufferSize= dword ptr -18h
lpBuffer= dword	ptr -14h
cCount=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_447C18
call	__EH_prolog
sub	esp, 1Ch
push	ebx
push	esi
push	edi
xor	ebx, ebx
mov	edi, offset off_44C434
mov	[ebp+var_1C], ecx
mov	[ebp+var_24], ebx
mov	[ebp+Memory], ebx
mov	[ebp+var_28], edi
mov	esi, 4000h
lea	ecx, [ebp+var_28]
push	esi		; Size
mov	[ebp+var_4], ebx
call	sub_41B339
mov	eax, [ebp+Memory]
push	esi		; Size
push	ebx		; Val
push	eax		; Dst
mov	[ebp+lpBuffer],	eax
call	memset
add	esp, 0Ch
mov	[ebp+BufferSize], esi
mov	ecx, [ebp+var_1C]
lea	eax, [ebp+BufferSize]
push	1
pop	esi
push	eax		; lpBufferSize
lea	eax, [ebp+cCount]
push	[ebp+lpBuffer]	; lpBuffer
mov	[ebp+cCount], esi
push	eax		; lpcCount
call	sub_42EF0E
cmp	eax, ebx
jz	short loc_42EFA3
mov	ebx, eax
jmp	short loc_42EFBA

loc_42EFA3:
cmp	[ebp+cCount], esi
jz	short loc_42EFAF
mov	ebx, 80004005h
jmp	short loc_42EFBA

loc_42EFAF:
mov	edx, [ebp+arg_0]
mov	ecx, [ebp+lpBuffer]
call	sub_42EFD9

loc_42EFBA:		; Memory
push	[ebp+Memory]
mov	[ebp+var_28], edi
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
mov	eax, ebx
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_42EF3A endp




sub_42EFD9 proc	near
push	esi
push	edi
mov	edi, ecx
mov	esi, edx
mov	eax, [edi]
lea	edx, [esi+14h]
mov	[esi], eax
mov	eax, [edi+4]
mov	[esi+4], eax
mov	eax, [edi+8]
mov	[esi+8], eax
mov	eax, [edi+0Ch]
mov	[esi+0Ch], eax
push	dword ptr [edi+10h]
lea	ecx, [esi+10h]
call	sub_42F030
push	dword ptr [edi+14h]
lea	edx, [esi+20h]
lea	ecx, [esi+11h]
call	sub_42F030
push	dword ptr [edi+18h]
lea	edx, [esi+2Ch]
lea	ecx, [esi+12h]
call	sub_42F030
push	dword ptr [edi+1Ch]
lea	edx, [esi+38h]
lea	ecx, [esi+13h]
call	sub_42F030
pop	edi
pop	esi
retn
sub_42EFD9 endp




sub_42F030 proc	near

arg_0= dword ptr  4

cmp	[esp+arg_0], 0
setnz	al
test	al, al
mov	[ecx], al
jz	short loc_42F04B
push	[esp+arg_0]
mov	ecx, edx
call	sub_41E124
jmp	short locret_42F054

loc_42F04B:
mov	eax, [edx]
and	dword ptr [edx+4], 0
and	byte ptr [eax],	0

locret_42F054:
retn	4
sub_42F030 endp



; Attributes: bp-based frame

sub_42F057 proc	near

var_6C=	byte ptr -6Ch
var_28=	dword ptr -28h
var_24=	dword ptr -24h
Memory=	dword ptr -20h
BufferSize= dword ptr -1Ch
var_18=	dword ptr -18h
lpBuffer= dword	ptr -14h
cCount=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_447C34
call	__EH_prolog
sub	esp, 60h
push	ebx
xor	ebx, ebx
cmp	byte_45D8B4, bl
push	esi
mov	[ebp+var_18], ecx
jz	short loc_42F0F0
push	edi
mov	edi, offset off_44C434
mov	[ebp+var_24], ebx
mov	[ebp+Memory], ebx
mov	[ebp+var_28], edi
mov	esi, 4000h
lea	ecx, [ebp+var_28]
push	esi		; Size
mov	[ebp+var_4], ebx
call	sub_41B339
mov	eax, [ebp+Memory]
push	esi		; Size
push	ebx		; Val
push	eax		; Dst
mov	[ebp+lpBuffer],	eax
call	memset
add	esp, 0Ch
mov	[ebp+BufferSize], esi
mov	ecx, [ebp+var_18]
lea	eax, [ebp+BufferSize]
push	1
pop	esi
push	eax		; lpBufferSize
lea	eax, [ebp+cCount]
push	[ebp+lpBuffer]	; lpBuffer
mov	[ebp+cCount], esi
push	eax		; lpcCount
call	sub_42EF24
cmp	eax, ebx
jz	short loc_42F0C8
mov	ebx, eax
jmp	short loc_42F0DF

loc_42F0C8:
cmp	[ebp+cCount], esi
jz	short loc_42F0D4
mov	ebx, 80004005h
jmp	short loc_42F0DF

loc_42F0D4:
mov	edx, [ebp+arg_0]
mov	ecx, [ebp+lpBuffer]
call	sub_42F132

loc_42F0DF:		; Memory
push	[ebp+Memory]
mov	[ebp+var_28], edi
call	sub_4284D8
pop	ecx
mov	eax, ebx
pop	edi
jmp	short loc_42F122

loc_42F0F0:
lea	ecx, [ebp+var_6C]
call	sub_42EE51
mov	ecx, [ebp+var_18]
lea	eax, [ebp+var_6C]
push	eax
mov	[ebp+var_4], 1
call	sub_42EF3A
mov	edx, [ebp+arg_0]
lea	ecx, [ebp+var_6C]
mov	esi, eax
call	sub_42F1B1
lea	ecx, [ebp+var_6C]
call	sub_42EEC8
mov	eax, esi

loc_42F122:
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_42F057 endp




sub_42F132 proc	near
push	esi
push	edi
mov	edi, ecx
mov	esi, edx
mov	eax, [edi]
lea	edx, [esi+14h]
mov	[esi], eax
mov	eax, [edi+4]
mov	[esi+4], eax
mov	eax, [edi+8]
mov	[esi+8], eax
mov	eax, [edi+0Ch]
mov	[esi+0Ch], eax
push	dword ptr [edi+10h]
lea	ecx, [esi+10h]
call	sub_42F189
push	dword ptr [edi+14h]
lea	edx, [esi+20h]
lea	ecx, [esi+11h]
call	sub_42F189
push	dword ptr [edi+18h]
lea	edx, [esi+2Ch]
lea	ecx, [esi+12h]
call	sub_42F189
push	dword ptr [edi+1Ch]
lea	edx, [esi+38h]
lea	ecx, [esi+13h]
call	sub_42F189
pop	edi
pop	esi
retn
sub_42F132 endp




sub_42F189 proc	near

arg_0= dword ptr  4

cmp	[esp+arg_0], 0
setnz	al
test	al, al
mov	[ecx], al
jz	short loc_42F1A4
push	[esp+arg_0]
mov	ecx, edx
call	sub_404722
jmp	short locret_42F1AE

loc_42F1A4:
mov	eax, [edx]
and	dword ptr [edx+4], 0
and	word ptr [eax],	0

locret_42F1AE:
retn	4
sub_42F189 endp



; Attributes: bp-based frame

sub_42F1B1 proc	near

var_28=	dword ptr -28h
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_447C60
call	__EH_prolog
sub	esp, 1Ch
push	ebx
push	esi
push	edi
mov	ebx, edx
mov	eax, ecx
push	5
pop	ecx
mov	esi, eax
mov	edi, ebx
lea	edx, [eax+14h]
rep movsd
lea	ecx, [ebp+Memory]
mov	[ebp+var_10], eax
call	sub_41242C
and	[ebp+var_4], 0
push	eax
lea	ecx, [ebx+14h]
call	sub_40312C
or	[ebp+var_4], 0FFFFFFFFh
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	esi, [ebp+var_10]
pop	ecx
lea	ecx, [ebp+Memory]
lea	edx, [esi+20h]
call	sub_41242C
push	eax
lea	ecx, [ebx+20h]
mov	[ebp+var_4], 1
call	sub_40312C
or	[ebp+var_4], 0FFFFFFFFh
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
lea	edx, [esi+2Ch]
lea	ecx, [ebp+Memory]
call	sub_41242C
push	eax
lea	ecx, [ebx+2Ch]
mov	[ebp+var_4], 2
call	sub_40312C
or	[ebp+var_4], 0FFFFFFFFh
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
lea	edx, [esi+38h]
lea	ecx, [ebp+var_28]
call	sub_41242C
push	eax
lea	ecx, [ebx+38h]
mov	[ebp+var_4], 3
call	sub_40312C
push	[ebp+var_28]	; Memory
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_42F1B1 endp



; Attributes: bp-based frame

sub_42F27C proc	near

NetResource= _NETRESOURCEA ptr -48h
var_28=	dword ptr -28h
var_24=	dword ptr -24h
Memory=	dword ptr -20h
var_1C=	dword ptr -1Ch
cbBuffer= dword	ptr -18h
var_14=	dword ptr -14h
lpBuffer= dword	ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_447C74
call	__EH_prolog
sub	esp, 3Ch
push	ebx
push	esi
push	edi
xor	ebx, ebx
mov	edi, offset off_44C434
mov	[ebp+var_1C], edx
mov	[ebp+var_14], ecx
mov	[ebp+var_24], ebx
mov	[ebp+Memory], ebx
mov	[ebp+var_28], edi
mov	esi, 4000h
lea	ecx, [ebp+var_28]
push	esi		; Size
mov	[ebp+var_4], ebx
call	sub_41B339
mov	eax, [ebp+Memory]
push	esi		; Size
push	ebx		; Val
push	eax		; Dst
mov	[ebp+lpBuffer],	eax
call	memset
mov	ecx, [ebp+var_14]
add	esp, 0Ch
lea	edx, [ebp+NetResource]
mov	[ebp+cbBuffer],	esi
call	sub_42EC28
lea	eax, [ebp+cbBuffer]
push	eax		; lpcbBuffer
lea	eax, [ebp+NetResource]
push	[ebp+lpBuffer]	; lpBuffer
push	eax		; lpNetResource
call	WNetGetResourceParentA
cmp	eax, ebx
jz	short loc_42F2EA
mov	ebx, eax
jmp	short loc_42F2F5

loc_42F2EA:
mov	edx, [ebp+var_1C]
mov	ecx, [ebp+lpBuffer]
call	sub_42EFD9

loc_42F2F5:		; Memory
push	[ebp+Memory]
mov	[ebp+var_28], edi
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
mov	eax, ebx
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_42F27C endp



; Attributes: bp-based frame

sub_42F312 proc	near

var_D0=	byte ptr -0D0h
var_8C=	byte ptr -8Ch
NetResource= _NETRESOURCEW ptr -48h
cbBuffer= dword	ptr -28h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
Memory=	dword ptr -1Ch
lpBuffer= dword	ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_447C9E
call	__EH_prolog
sub	esp, 0C4h
push	ebx
xor	ebx, ebx
cmp	byte_45D8B4, bl
push	esi
mov	[ebp+var_14], edx
mov	[ebp+var_10], ecx
jz	short loc_42F3A7
push	edi
mov	edi, offset off_44C434
mov	[ebp+var_20], ebx
mov	[ebp+Memory], ebx
mov	[ebp+var_24], edi
mov	esi, 4000h
lea	ecx, [ebp+var_24]
push	esi		; Size
mov	[ebp+var_4], ebx
call	sub_41B339
mov	eax, [ebp+Memory]
push	esi		; Size
push	ebx		; Val
push	eax		; Dst
mov	[ebp+lpBuffer],	eax
call	memset
mov	ecx, [ebp+var_10]
add	esp, 0Ch
lea	edx, [ebp+NetResource]
mov	[ebp+cbBuffer],	esi
call	sub_42ED2B
lea	eax, [ebp+cbBuffer]
push	eax		; lpcbBuffer
lea	eax, [ebp+NetResource]
push	[ebp+lpBuffer]	; lpBuffer
push	eax		; lpNetResource
call	WNetGetResourceParentW
cmp	eax, ebx
jz	short loc_42F38B
mov	ebx, eax
jmp	short loc_42F396

loc_42F38B:
mov	edx, [ebp+var_14]
mov	ecx, [ebp+lpBuffer]
call	sub_42F132

loc_42F396:		; Memory
push	[ebp+Memory]
mov	[ebp+var_24], edi
call	sub_4284D8
pop	ecx
mov	eax, ebx
pop	edi
jmp	short loc_42F40F

loc_42F3A7:
lea	ecx, [ebp+var_D0]
call	sub_42EE51
lea	ecx, [ebp+var_8C]
mov	[ebp+var_4], 1
call	sub_42EE51
mov	ecx, [ebp+var_10]
lea	edx, [ebp+var_D0]
mov	byte ptr [ebp+var_4], 2
call	sub_42ED86
lea	edx, [ebp+var_8C]
lea	ecx, [ebp+var_D0]
call	sub_42F27C
mov	edx, [ebp+var_14]
lea	ecx, [ebp+var_8C]
mov	esi, eax
call	sub_42F1B1
lea	ecx, [ebp+var_8C]
call	sub_42EEC8
lea	ecx, [ebp+var_D0]
call	sub_42EEC8
mov	eax, esi

loc_42F40F:
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_42F312 endp



; Attributes: bp-based frame

sub_42F41D proc	near

NetResource= _NETRESOURCEA ptr -4Ch
var_2C=	dword ptr -2Ch
var_28=	dword ptr -28h
Memory=	dword ptr -24h
var_20=	dword ptr -20h
cbBuffer= dword	ptr -1Ch
var_18=	dword ptr -18h
lpBuffer= dword	ptr -14h
lpSystem= dword	ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_447CB0
call	__EH_prolog
sub	esp, 40h
push	ebx
push	esi
push	edi
xor	ebx, ebx
mov	edi, offset off_44C434
mov	[ebp+var_20], edx
mov	[ebp+var_18], ecx
mov	[ebp+var_28], ebx
mov	[ebp+Memory], ebx
mov	[ebp+var_2C], edi
mov	esi, 4000h
lea	ecx, [ebp+var_2C]
push	esi		; Size
mov	[ebp+var_4], ebx
call	sub_41B339
mov	eax, [ebp+Memory]
push	esi		; Size
push	ebx		; Val
push	eax		; Dst
mov	[ebp+lpBuffer],	eax
call	memset
mov	ecx, [ebp+var_18]
add	esp, 0Ch
lea	edx, [ebp+NetResource]
mov	[ebp+cbBuffer],	esi
call	sub_42EC28
lea	eax, [ebp+lpSystem]
push	eax		; lplpSystem
lea	eax, [ebp+cbBuffer]
push	eax		; lpcbBuffer
lea	eax, [ebp+NetResource]
push	[ebp+lpBuffer]	; lpBuffer
push	eax		; lpNetResource
call	WNetGetResourceInformationA
cmp	eax, ebx
jz	short loc_42F48F
mov	ebx, eax
jmp	short loc_42F4AA

loc_42F48F:
cmp	[ebp+lpSystem],	ebx
jz	short loc_42F49F
push	[ebp+lpSystem]
mov	ecx, [ebp+arg_0]
call	sub_41E124

loc_42F49F:
mov	edx, [ebp+var_20]
mov	ecx, [ebp+lpBuffer]
call	sub_42EFD9

loc_42F4AA:		; Memory
push	[ebp+Memory]
mov	[ebp+var_2C], edi
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
mov	eax, ebx
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_42F41D endp



; Attributes: bp-based frame

sub_42F4C9 proc	near

var_E0=	byte ptr -0E0h
var_9C=	byte ptr -9Ch
NetResource= _NETRESOURCEW ptr -58h
cbBuffer= 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
Memory=	dword ptr -20h
lpSystem= dword	ptr -1Ch
lpBuffer= dword	ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_447CEA
call	__EH_prolog
sub	esp, 0D4h
push	ebx
xor	ebx, ebx
cmp	byte_45D8B4, bl
push	esi
mov	[ebp+var_14], edx
mov	[ebp+var_10], ecx
jz	loc_42F579
push	edi
mov	edi, offset off_44C434
mov	[ebp+var_24], ebx
mov	[ebp+Memory], ebx
mov	[ebp+var_28], edi
mov	esi, 4000h
lea	ecx, [ebp+var_28]
push	esi		; Size
mov	[ebp+var_4], ebx
call	sub_41B339
mov	eax, [ebp+Memory]
push	esi		; Size
push	ebx		; Val
push	eax		; Dst
mov	[ebp+lpBuffer],	eax
call	memset
mov	ecx, [ebp+var_10]
add	esp, 0Ch
lea	edx, [ebp+NetResource]
mov	[ebp+cbBuffer],	esi
call	sub_42ED2B
lea	eax, [ebp+lpSystem]
push	eax		; lplpSystem
lea	eax, [ebp+cbBuffer]
push	eax		; lpcbBuffer
lea	eax, [ebp+NetResource]
push	[ebp+lpBuffer]	; lpBuffer
push	eax		; lpNetResource
call	WNetGetResourceInformationW
cmp	eax, ebx
jz	short loc_42F54A
mov	ebx, eax
jmp	short loc_42F565

loc_42F54A:
cmp	[ebp+lpSystem],	ebx
jz	short loc_42F55A
push	[ebp+lpSystem]
mov	ecx, [ebp+arg_0]
call	sub_404722

loc_42F55A:
mov	edx, [ebp+var_14]
mov	ecx, [ebp+lpBuffer]
call	sub_42F132

loc_42F565:		; Memory
push	[ebp+Memory]
mov	[ebp+var_28], edi
call	sub_4284D8
pop	ecx
mov	eax, ebx
pop	edi
jmp	loc_42F626

loc_42F579:
lea	ecx, [ebp+var_E0]
call	sub_42EE51
lea	ecx, [ebp+var_9C]
mov	[ebp+var_4], 1
call	sub_42EE51
mov	ecx, [ebp+var_10]
lea	edx, [ebp+var_E0]
mov	byte ptr [ebp+var_4], 2
call	sub_42ED86
lea	ecx, [ebp+var_34]
mov	[ebp+var_34], ebx
push	3
mov	[ebp+var_30], ebx
mov	[ebp+var_2C], ebx
call	sub_4034E3
lea	eax, [ebp+var_34]
lea	edx, [ebp+var_9C]
push	eax
lea	ecx, [ebp+var_E0]
mov	byte ptr [ebp+var_4], 3
call	sub_42F41D
mov	edx, [ebp+var_14]
lea	ecx, [ebp+var_9C]
mov	esi, eax
call	sub_42F1B1
lea	edx, [ebp+var_34]
lea	ecx, [ebp+var_28]
call	sub_41242C
mov	ecx, [ebp+arg_0]
push	eax
mov	byte ptr [ebp+var_4], 4
call	sub_40312C
push	[ebp+var_28]	; Memory
call	sub_4284D8
push	[ebp+var_34]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx
lea	ecx, [ebp+var_9C]
call	sub_42EEC8
lea	ecx, [ebp+var_E0]
call	sub_42EEC8
mov	eax, esi

loc_42F626:
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_42F4C9 endp



; Attributes: bp-based frame

sub_42F636 proc	near

NetResource= _NETRESOURCEA ptr -20h
lpUserName= dword ptr  8
dwFlags= dword ptr  0Ch

push	ebp
mov	ebp, esp
sub	esp, 20h
push	esi
mov	esi, edx
lea	edx, [ebp+NetResource]
call	sub_42EC28
lea	eax, [ebp+NetResource]
push	[ebp+dwFlags]	; dwFlags
push	[ebp+lpUserName] ; lpUserName
push	esi		; lpPassword
push	eax		; lpNetResource
call	WNetAddConnection2A
pop	esi
leave
retn	8
sub_42F636 endp



; Attributes: bp-based frame

; int __stdcall	sub_42F65C(LPCWSTR lpUserName, DWORD dwFlags)
sub_42F65C proc	near

var_A0=	byte ptr -0A0h
NetResource= _NETRESOURCEW ptr -5Ch
Memory=	dword ptr -3Ch
var_30=	dword ptr -30h
var_24=	dword ptr -24h
var_18=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
lpUserName= dword ptr  8
dwFlags= dword ptr  0Ch

mov	eax, offset loc_447D1F
call	__EH_prolog
sub	esp, 94h
cmp	byte_45D8B4, 0
push	esi
push	edi
mov	esi, edx
mov	edi, ecx
jz	short loc_42F698
lea	edx, [ebp+NetResource]
call	sub_42ED2B
lea	eax, [ebp+NetResource]
push	[ebp+dwFlags]	; dwFlags
push	[ebp+lpUserName] ; lpUserName
push	esi		; lpPassword
push	eax		; lpNetResource
call	WNetAddConnection2W
jmp	loc_42F741

loc_42F698:
lea	ecx, [ebp+var_A0]
call	sub_42EE51
and	[ebp+var_4], 0
lea	edx, [ebp+var_A0]
mov	ecx, edi
call	sub_42ED86
lea	ecx, [ebp+Memory]
push	esi
call	sub_403091
lea	edx, [ebp+Memory]
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 1
call	sub_43A785
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
mov	edi, [ebp+lpUserName]
pop	ecx
push	edi
lea	ecx, [ebp+var_30]
call	sub_403091
lea	edx, [ebp+var_30]
lea	ecx, [ebp+var_18]
mov	byte ptr [ebp+var_4], 4
call	sub_43A785
push	[ebp+var_30]	; Memory
mov	byte ptr [ebp+var_4], 6
call	sub_4284D8
neg	edi
sbb	edi, edi
pop	ecx
and	edi, [ebp+var_18]
push	[ebp+dwFlags]
neg	esi
sbb	esi, esi
push	edi
and	esi, [ebp+var_24]
lea	ecx, [ebp+var_A0]
mov	edx, esi
call	sub_42F636
mov	esi, eax
push	[ebp+var_18]	; Memory
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx
lea	ecx, [ebp+var_A0]
call	sub_42EEC8
mov	eax, esi

loc_42F741:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_42F65C endp



; Attributes: bp-based frame

sub_42F751 proc	near

Buffer=	word ptr -340h
Str= word ptr -13Ch
var_110= byte ptr -110h
var_3C=	byte ptr -3Ch
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
pcbBuffer= dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_447D34
call	__EH_prolog
sub	esp, 334h
push	ebx
push	esi
xor	ebx, ebx
push	offset LibFileName ; "Advapi32.dll"
mov	[ebp+var_18], ebx
call	ds:GetModuleHandleA
mov	[ebp+var_14], eax
cmp	eax, ebx
mov	[ebp+var_4], ebx
mov	[ebp+var_34], 18h
mov	[ebp+var_30], ebx
mov	[ebp+var_2C], ebx
mov	[ebp+var_28], ebx
mov	[ebp+var_24], ebx
mov	[ebp+var_20], ebx
jz	loc_42F851
push	offset aLsaopenpolicy ;	"LsaOpenPolicy"
push	eax		; hModule
call	ds:GetProcAddress
mov	esi, eax
cmp	esi, ebx
jz	loc_42F851
lea	ecx, [ebp+var_18]
call	sub_42F872
lea	eax, [ebp+var_18]
push	eax
lea	eax, [ebp+var_34]
push	0F0FFFh
push	eax
push	ebx
call	esi
cmp	eax, ebx
jnz	loc_42F851
push	edi
push	0Bh
pop	ecx
mov	esi, offset aSelockmemory_0 ; "SeLockMemoryPrivilege"
lea	edi, [ebp+Str]
push	35h
rep movsd
pop	ecx
xor	eax, eax
lea	edi, [ebp+var_110]
lea	edx, [ebp+var_3C]
rep stosd
lea	ecx, [ebp+Str]	; Str
call	sub_42F8D8
lea	eax, [ebp+pcbBuffer]
mov	[ebp+pcbBuffer], 100h
push	eax		; pcbBuffer
lea	eax, [ebp+Buffer]
push	eax		; lpBuffer
call	ds:GetUserNameW
test	eax, eax
pop	edi
jz	short loc_42F851
lea	ecx, [ebp+Buffer]
call	sub_42F8FA
mov	esi, eax
cmp	esi, ebx
jz	short loc_42F851
lea	eax, [ebp+var_3C]
lea	ecx, [ebp+var_18]
push	eax
push	esi
mov	[ebp+var_D], bl
call	sub_42F8A5
cmp	eax, ebx
jnz	short loc_42F83F
mov	[ebp+var_D], 1

loc_42F83F:		; lpMem
push	esi
push	ebx		; dwFlags
call	ds:GetProcessHeap
push	eax		; hHeap
call	ds:HeapFree
mov	bl, [ebp+var_D]

loc_42F851:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_18]
call	sub_42F872
mov	ecx, [ebp+var_C]
mov	al, bl
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_42F751 endp



; Attributes: thunk

sub_42F86D proc	near
jmp	$+5
sub_42F86D endp




sub_42F872 proc	near
push	esi
mov	esi, ecx
cmp	dword ptr [esi], 0
jnz	short loc_42F87E
xor	eax, eax
pop	esi
retn

loc_42F87E:
mov	eax, [esi+4]
test	eax, eax
jz	short loc_42F895
push	offset aLsaclose ; "LsaClose"
push	eax		; hModule
call	ds:GetProcAddress
test	eax, eax
jnz	short loc_42F89C

loc_42F895:
mov	eax, 0C0000002h
pop	esi
retn

loc_42F89C:
push	dword ptr [esi]
call	eax
and	dword ptr [esi], 0
pop	esi
retn
sub_42F872 endp




sub_42F8A5 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	esi
mov	esi, ecx
mov	eax, [esi+4]
test	eax, eax
jz	short loc_42F8BF
push	offset aLsaaddaccountr ; "LsaAddAccountRights"
push	eax		; hModule
call	ds:GetProcAddress
test	eax, eax
jnz	short loc_42F8C6

loc_42F8BF:
mov	eax, 0C0000002h
jmp	short loc_42F8D4

loc_42F8C6:
push	1
push	[esp+8+arg_4]
push	[esp+0Ch+arg_0]
push	dword ptr [esi]
call	eax

loc_42F8D4:
pop	esi
retn	8
sub_42F8A5 endp




; int __fastcall sub_42F8D8(wchar_t *Str)
sub_42F8D8 proc	near
push	esi
push	edi
mov	edi, ecx
mov	esi, edx
push	edi		; Str
call	ds:wcslen
pop	ecx
mov	[esi+4], edi
lea	ecx, [eax+eax]
lea	eax, [eax+eax+2]
mov	[esi], cx
mov	[esi+2], ax
pop	edi
pop	esi
retn
sub_42F8D8 endp



; Attributes: bp-based frame

sub_42F8FA proc	near

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

push	ebp
mov	ebp, esp
sub	esp, 18h
push	ebx
mov	[ebp+var_C], ecx
push	offset LibFileName ; "Advapi32.dll"
call	ds:GetModuleHandleA
xor	ebx, ebx
cmp	eax, ebx
jz	loc_42F9B6
push	offset aLookupaccountn ; "LookupAccountNameW"
push	eax		; hModule
call	ds:GetProcAddress
cmp	eax, ebx
mov	[ebp+var_18], eax
jz	loc_42F9B6
lea	ecx, [ebp+var_14]
mov	[ebp+dwBytes], ebx
push	ecx
lea	ecx, [ebp+var_4]
push	ecx
lea	ecx, [ebp+dwBytes]
push	ebx
push	ecx
push	ebx
mov	[ebp+var_4], ebx
push	[ebp+var_C]
push	ebx
call	eax
test	eax, eax
jnz	short loc_42F9B6
call	ds:GetLastError
cmp	eax, 7Ah
jnz	short loc_42F9B6
push	esi
mov	esi, ds:GetProcessHeap
push	edi
push	[ebp+dwBytes]	; dwBytes
push	8		; dwFlags
call	esi ; GetProcessHeap
mov	edi, ds:HeapAlloc
push	eax		; hHeap
call	edi ; HeapAlloc
mov	[ebp+var_10], eax
mov	eax, [ebp+var_4]
lea	eax, [eax+eax+2]
push	eax		; dwBytes
push	8		; dwFlags
call	esi ; GetProcessHeap
push	eax		; hHeap
call	edi ; HeapAlloc
mov	edi, eax
lea	eax, [ebp+var_14]
push	eax
lea	eax, [ebp+var_4]
push	eax
lea	eax, [ebp+dwBytes]
push	edi
push	eax
push	[ebp+var_10]
push	[ebp+var_C]
push	ebx
call	[ebp+var_18]
mov	[ebp+var_18], eax
push	edi		; lpMem
push	ebx		; dwFlags
call	esi ; GetProcessHeap
push	eax		; hHeap
call	ds:HeapFree
cmp	[ebp+var_18], ebx
pop	edi
pop	esi
jz	short loc_42F9B6
mov	eax, [ebp+var_10]
jmp	short loc_42F9B8

loc_42F9B6:
xor	eax, eax

loc_42F9B8:
pop	ebx
leave
retn
sub_42F8FA endp



; Attributes: bp-based frame

; int __stdcall	sub_42F9BB(LPARAM lParam)
sub_42F9BB proc	near

Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
lParam=	dword ptr  8

mov	eax, offset loc_447D48
call	__EH_prolog
sub	esp, 18h
cmp	byte_45D8B4, 0
push	esi
push	[ebp+lParam]	; lParam
mov	esi, ecx
jz	short loc_42F9E8
push	0		; wParam
push	143h		; Msg
push	dword ptr [esi]	; hWnd
call	ds:SendMessageW
jmp	short loc_42FA26

loc_42F9E8:
lea	ecx, [ebp+var_18]
call	sub_403091
and	[ebp+var_4], 0
lea	edx, [ebp+var_18]
lea	ecx, [ebp+Memory]
call	sub_43A785
push	dword ptr [eax]	; lParam
push	0		; wParam
push	143h		; Msg
push	dword ptr [esi]	; hWnd
call	ds:SendMessageA
push	[ebp+Memory]	; Memory
mov	esi, eax
call	sub_4284D8
push	[ebp+var_18]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
pop	ecx

loc_42FA26:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_42F9BB endp



; Attributes: bp-based frame

sub_42FA35 proc	near

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

push	ebp
mov	ebp, esp
mov	eax, [ebp+arg_0]
sub	eax, 5
jz	short loc_42FA93
sub	eax, 49h
jz	short loc_42FA86
sub	eax, 5
jz	short loc_42FA7D
sub	eax, 0BDh
jz	short loc_42FA76
dec	eax
jz	short loc_42FA69
dec	eax
dec	eax
jz	short loc_42FA5C
xor	al, al
jmp	short loc_42FAA7

loc_42FA5C:
push	[ebp+arg_8]
mov	eax, [ecx]
push	[ebp+arg_4]
call	dword ptr [eax+2Ch]
jmp	short loc_42FAA7

loc_42FA69:
push	[ebp+arg_8]
mov	eax, [ecx]
push	[ebp+arg_4]
call	dword ptr [eax+10h]
jmp	short loc_42FAA7

loc_42FA76:
mov	eax, [ecx]
call	dword ptr [eax+8]
jmp	short loc_42FAA7

loc_42FA7D:
mov	eax, [ecx]
call	dword ptr [eax+18h]
mov	al, 1
jmp	short loc_42FAA7

loc_42FA86:
push	[ebp+arg_8]
mov	eax, [ecx]
push	[ebp+arg_4]
call	dword ptr [eax+28h]
jmp	short loc_42FAA7

loc_42FA93:
mov	edx, [ebp+arg_8]
mov	eax, [ecx]
shr	edx, 10h
push	edx
movzx	edx, word ptr [ebp+arg_8]
push	edx
push	[ebp+arg_4]
call	dword ptr [eax+14h]

loc_42FAA7:
pop	ebp
retn	0Ch
sub_42FA35 endp




sub_42FAAB proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [esp+arg_0]
mov	edx, [ecx]
push	esi
push	[esp+4+arg_4]
movzx	esi, ax
shr	eax, 10h
push	esi
push	eax
call	dword ptr [edx+0Ch]
pop	esi
retn	8
sub_42FAAB endp




sub_42FAC5 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8
arg_8= dword ptr  0Ch

cmp	[esp+arg_0], 0
jnz	short loc_42FADB
push	[esp+arg_8]
mov	eax, [ecx]
push	[esp+4+arg_4]
call	dword ptr [eax+1Ch]
jmp	short locret_42FADD

loc_42FADB:
xor	al, al

locret_42FADD:
retn	0Ch
sub_42FAC5 endp




sub_42FAE0 proc	near

arg_0= dword ptr  4

mov	eax, [esp+arg_0]
dec	eax
jz	short loc_42FB01
dec	eax
jz	short loc_42FAFA
sub	eax, 7
jz	short loc_42FAF3
xor	al, al
jmp	short locret_42FB08

loc_42FAF3:
mov	eax, [ecx]
call	dword ptr [eax+18h]
jmp	short loc_42FB06

loc_42FAFA:
mov	eax, [ecx]
call	dword ptr [eax+24h]
jmp	short loc_42FB06

loc_42FB01:
mov	eax, [ecx]
call	dword ptr [eax+20h]

loc_42FB06:
mov	al, 1

locret_42FB08:
retn	8
sub_42FAE0 endp



; Attributes: bp-based frame

sub_42FB0B proc	near

pvParam= 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, 10h
push	ebx
push	esi
push	edi
mov	ebx, edx
mov	edi, ecx
call	ds:GetDialogBaseUnits
lea	ecx, [ebp+pvParam] ; pvParam
mov	esi, eax
call	sub_42FB64
mov	eax, edi
push	4
cdq
pop	ecx
idiv	ecx
movzx	ecx, si
imul	eax, ecx
mov	ecx, [ebp+var_8]
sub	ecx, [ebp+pvParam]
cmp	eax, ecx
jg	short loc_42FB5D
mov	eax, ebx
push	8
cdq
pop	ecx
idiv	ecx
shr	esi, 10h
imul	esi, eax
mov	eax, [ebp+var_4]
sub	eax, [ebp+var_C]
cmp	esi, eax
jg	short loc_42FB5D
push	1
pop	eax
jmp	short loc_42FB5F

loc_42FB5D:
xor	eax, eax

loc_42FB5F:
pop	edi
pop	esi
pop	ebx
leave
retn
sub_42FB0B endp




; int __fastcall sub_42FB64(PVOID pvParam)
sub_42FB64 proc	near
push	0		; fWinIni
push	ecx		; pvParam
push	0		; uiParam
push	30h		; uiAction
call	ds:SystemParametersInfoA
neg	eax
sbb	eax, eax
neg	eax
retn
sub_42FB64 endp



; Attributes: bp-based frame

sub_42FB78 proc	near

pvParam= dword ptr -24h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
Rect= tagRECT ptr -14h
var_1= byte ptr	-1
arg_0= byte ptr	 8

push	ebp
mov	ebp, esp
sub	esp, 24h
push	ebx
mov	ebx, ecx
push	esi
push	edi
lea	ecx, [ebp+pvParam] ; pvParam
call	sub_42FB64
mov	esi, [ebp+var_1C]
mov	edi, [ebp+var_18]
sub	esi, [ebp+pvParam]
sub	edi, [ebp+var_20]
lea	eax, [ebp+Rect]
push	eax		; lpRect
push	dword ptr [ebx+4] ; hWnd
call	ds:GetWindowRect
mov	eax, [ebp+Rect.right]
mov	ecx, [ebp+Rect.bottom]
sub	eax, [ebp+Rect.left]
sub	ecx, [ebp+Rect.top]
cmp	eax, esi
jg	short loc_42FBBE
cmp	ecx, edi
jg	short loc_42FBBE
and	[ebp+var_1], 0
jmp	short loc_42FBC2

loc_42FBBE:
mov	[ebp+var_1], 1

loc_42FBC2:
cmp	eax, esi
jg	short loc_42FBD2
cmp	[ebp+var_1], 0
jz	short loc_42FBE0
cmp	[ebp+arg_0], 0
jz	short loc_42FBE0

loc_42FBD2:
mov	eax, [ebp+pvParam]
mov	[ebp+Rect.left], eax
mov	eax, [ebp+var_1C]
mov	[ebp+Rect.right], eax
mov	eax, esi

loc_42FBE0:
cmp	ecx, edi
jg	short loc_42FBF0
cmp	[ebp+var_1], 0
jz	short loc_42FC2A
cmp	[ebp+arg_0], 0
jz	short loc_42FBFE

loc_42FBF0:
mov	ecx, [ebp+var_20]
mov	[ebp+Rect.top],	ecx
mov	ecx, [ebp+var_18]
mov	[ebp+Rect.bottom], ecx
mov	ecx, edi

loc_42FBFE:
cmp	[ebp+var_1], 0
jz	short loc_42FC2A
cmp	[ebp+arg_0], 0
jz	short loc_42FC17
push	3		; nCmdShow
push	dword ptr [ebx+4] ; hWnd
call	ds:ShowWindow
jmp	short loc_42FC2A

loc_42FC17:		; bRepaint
push	1
push	ecx		; nHeight
push	eax		; nWidth
push	[ebp+Rect.top]	; Y
push	[ebp+Rect.left]	; X
push	dword ptr [ebx+4] ; hWnd
call	ds:MoveWindow

loc_42FC2A:
pop	edi
pop	esi
pop	ebx
leave
retn	4
sub_42FB78 endp



; Attributes: bp-based frame

sub_42FC31 proc	near

pvParam= byte ptr -20h
Y= dword ptr -1Ch
var_14=	dword ptr -14h
Rect= tagRECT ptr -10h

push	ebp
mov	ebp, esp
sub	esp, 20h
push	esi
mov	esi, ecx
lea	ecx, [ebp+pvParam] ; pvParam
call	sub_42FB64
lea	eax, [ebp+Rect]
push	eax		; lpRect
push	dword ptr [esi+4] ; hWnd
call	ds:GetWindowRect
mov	eax, [ebp+Rect.bottom]
cmp	eax, [ebp+var_14]
jle	short loc_42FC7A
mov	ecx, [ebp+Rect.top]
cmp	ecx, [ebp+Y]
jle	short loc_42FC7A
sub	eax, ecx
push	1		; bRepaint
push	eax		; nHeight
mov	eax, [ebp+Rect.right]
sub	eax, [ebp+Rect.left]
push	eax		; nWidth
push	[ebp+Y]		; Y
push	[ebp+Rect.left]	; X
push	dword ptr [esi+4] ; hWnd
call	ds:MoveWindow

loc_42FC7A:
pop	esi
leave
retn
sub_42FC31 endp



; Attributes: bp-based frame

; BOOL __stdcall DialogFunc(HWND, UINT,	WPARAM,	LPARAM)
DialogFunc proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
hWnd= dword ptr	 8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h
dwNewLong= dword ptr  14h

mov	eax, offset loc_447D54
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	esi, 110h
push	edi
cmp	[ebp+arg_4], esi
mov	[ebp+var_10], esp
jnz	short loc_42FCA6
push	[ebp+dwNewLong]	; dwNewLong
push	0FFFFFFEBh	; nIndex
push	[ebp+hWnd]	; hWnd
call	ds:SetWindowLongA

loc_42FCA6:
mov	edi, [ebp+hWnd]
push	0FFFFFFEBh	; nIndex
push	edi		; hWnd
call	ds:GetWindowLongA
test	eax, eax
jz	short loc_42FCE6
cmp	[ebp+arg_4], esi
jnz	short loc_42FCBE
mov	[eax+4], edi

loc_42FCBE:
push	[ebp+dwNewLong]
mov	edx, [eax]
and	[ebp+var_4], 0
mov	ecx, eax
push	[ebp+arg_8]
push	[ebp+arg_4]
call	dword ptr [edx+4]
xor	ecx, ecx
test	al, al
setnz	cl
mov	eax, ecx
jmp	short loc_42FCE6

loc_42FCDD:
mov	eax, offset loc_42FCE3
retn

loc_42FCE3:
push	1
pop	eax

loc_42FCE6:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	10h
DialogFunc endp



; Attributes: bp-based frame

; int __stdcall	sub_42FCF7(LPCWSTR lpTemplateName, HWND	hWndParent)
sub_42FCF7 proc	near

Memory=	dword ptr -30h
var_24=	dword ptr -24h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
lpTemplateName=	dword ptr  8
hWndParent= dword ptr  0Ch

mov	eax, offset loc_447D78
call	__EH_prolog
sub	esp, 24h
push	ebx
xor	ebx, ebx
cmp	byte_45D8B4, bl
push	esi
mov	esi, ecx
jz	short loc_42FD2C
push	esi		; dwInitParam
push	offset DialogFunc ; lpDialogFunc
push	[ebp+hWndParent] ; hWndParent
push	[ebp+lpTemplateName] ; lpTemplateName
push	hInstance	; hInstance
call	ds:DialogBoxParamW
jmp	short loc_42FDA9

loc_42FD2C:
push	3
lea	ecx, [ebp+var_18]
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_4034E3
mov	eax, [ebp+lpTemplateName]
mov	[ebp+var_4], ebx
test	eax, 0FFFF0000h
jz	short loc_42FD86
push	eax
lea	ecx, [ebp+var_24]
call	sub_403091
lea	edx, [ebp+var_24]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_43A785
push	eax
lea	ecx, [ebp+var_18]
mov	byte ptr [ebp+var_4], 2
call	sub_403244
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_18]
pop	ecx
pop	ecx

loc_42FD86:		; dwInitParam
push	esi
push	offset DialogFunc ; lpDialogFunc
push	[ebp+hWndParent] ; hWndParent
push	eax		; lpTemplateName
push	hInstance	; hInstance
call	ds:DialogBoxParamA
push	[ebp+var_18]	; Memory
mov	esi, eax
call	sub_4284D8
pop	ecx
mov	eax, esi

loc_42FDA9:
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_42FCF7 endp



; Attributes: bp-based frame

; int __stdcall	sub_42FDB9(DWORD dwExStyle, DWORD dwStyle, int X, int Y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu,	HINSTANCE hInstance, LPVOID lpParam)
sub_42FDB9 proc	near

dwExStyle= dword ptr  8
dwStyle= dword ptr  0Ch
X= dword ptr  10h
Y= dword ptr  14h
nWidth=	dword ptr  18h
nHeight= dword ptr  1Ch
hWndParent= dword ptr  20h
hMenu= dword ptr  24h
hInstance= dword ptr  28h
lpParam= dword ptr  2Ch

push	ebp
mov	ebp, esp
push	esi
mov	esi, ecx
push	[ebp+lpParam]	; lpParam
push	[ebp+hInstance]	; hInstance
push	[ebp+hMenu]	; hMenu
push	[ebp+hWndParent] ; hWndParent
push	[ebp+nHeight]	; nHeight
push	[ebp+nWidth]	; nWidth
push	[ebp+Y]		; Y
push	[ebp+X]		; X
push	[ebp+dwStyle]	; dwStyle
push	offset pszPath	; lpWindowName
push	offset aSyslistview32 ;	"SysListView32"
push	[ebp+dwExStyle]	; dwExStyle
call	ds:CreateWindowExA
xor	ecx, ecx
mov	[esi], eax
test	eax, eax
setnz	cl
mov	al, cl
pop	esi
pop	ebp
retn	28h
sub_42FDB9 endp



; Attributes: bp-based frame

sub_42FDFD proc	near

lParam=	dword ptr -28h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
var_8= dword ptr -8
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

push	ebp
mov	ebp, esp
sub	esp, 28h
mov	eax, [ebp+arg_0]
and	[ebp+var_20], 0
mov	[ebp+var_24], eax
lea	eax, [ebp+lParam]
push	eax		; lParam
push	0		; wParam
push	1005h		; Msg
mov	[ebp+lParam], 4
push	dword ptr [ecx]	; hWnd
call	ds:SendMessageA
mov	ecx, [ebp+arg_4]
mov	edx, [ebp+var_8]
test	eax, eax
mov	[ecx], edx
setnz	al
leave
retn	8
sub_42FDFD endp



; Attributes: bp-based frame

; int __stdcall	sub_42FE38(WPARAM wParam, int, int)
sub_42FE38 proc	near

lParam=	dword ptr -20h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_C= dword ptr -0Ch
wParam=	dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
sub	esp, 20h
mov	edx, [ebp+arg_8]
mov	eax, [ebp+arg_4]
mov	[ebp+var_18], edx
mov	[ebp+var_14], eax
mov	eax, [ebp+wParam]
lea	edx, [ebp+lParam]
push	edx		; lParam
push	eax		; wParam
push	1061h		; Msg
mov	[ebp+lParam], 0Eh
push	dword ptr [ecx]	; hWnd
mov	[ebp+var_C], eax
call	ds:SendMessageA
leave
retn	0Ch
sub_42FE38 endp



; Attributes: bp-based frame

sub_42FE6D proc	near

lParam=	dword ptr -28h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
var_14=	dword ptr -14h
var_8= dword ptr -8
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

push	ebp
mov	ebp, esp
sub	esp, 28h
mov	eax, [ebp+arg_0]
and	[ebp+var_20], 0
mov	[ebp+var_24], eax
mov	[ebp+var_8], eax
mov	eax, [ebp+arg_4]
mov	[ebp+lParam], 5
mov	[ebp+var_14], eax
lea	eax, [ebp+lParam]
push	eax		; lParam
push	0		; wParam
push	104Dh		; Msg
push	dword ptr [ecx]	; hWnd
call	ds:SendMessageA
leave
retn	8
sub_42FE6D endp



; Attributes: bp-based frame

sub_42FEA4 proc	near

lParam=	dword ptr -28h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
var_14=	dword ptr -14h
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
sub	esp, 28h
mov	eax, [ebp+arg_0]
mov	[ebp+lParam], 1
mov	[ebp+var_24], eax
mov	eax, [ebp+arg_8]
mov	[ebp+var_14], eax
mov	eax, [ebp+arg_4]
mov	[ebp+var_20], eax
lea	eax, [ebp+lParam]
push	eax		; lParam
push	0		; wParam
push	104Ch		; Msg
push	dword ptr [ecx]	; hWnd
call	ds:SendMessageA
test	eax, eax
setnz	al
movzx	eax, al
leave
retn	0Ch
sub_42FEA4 endp



; Attributes: bp-based frame

; int __stdcall	sub_42FEE2(HWND	hWnd, int, int,	int)
sub_42FEE2 proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
hWnd= dword ptr	 8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h
arg_C= dword ptr  14h

mov	eax, offset loc_447D8C
call	__EH_prolog
push	ecx
push	ecx
push	ebx
push	esi
push	edi
mov	edi, [ebp+hWnd]
mov	[ebp+var_10], edi
mov	[ebp+var_14], offset off_44B588
mov	ebx, [ebp+arg_4]
and	[ebp+var_4], 0
mov	esi, 110h
cmp	ebx, esi
jnz	short loc_42FF1D
mov	eax, [ebp+arg_C]
push	dword ptr [eax+1Ch] ; dwNewLong
push	0FFFFFFEBh	; nIndex
push	edi		; hWnd
call	ds:SetWindowLongA

loc_42FF1D:		; nIndex
push	0FFFFFFEBh
push	edi		; hWnd
call	ds:GetWindowLongA
cmp	ebx, esi
mov	ecx, eax
jnz	short loc_42FF2F
mov	[ecx+4], edi

loc_42FF2F:
mov	eax, ebx
sub	eax, 4Eh
jz	short loc_42FF6A
sub	eax, 0C2h
jz	short loc_42FF63
dec	eax
jz	short loc_42FF56
test	ecx, ecx
jnz	short loc_42FF48
xor	eax, eax
jmp	short loc_42FF78

loc_42FF48:
push	[ebp+arg_C]
mov	eax, [ecx]
push	[ebp+arg_8]
push	ebx
call	dword ptr [eax+4]
jmp	short loc_42FF75

loc_42FF56:
push	[ebp+arg_C]
mov	eax, [ecx]
push	[ebp+arg_8]
call	dword ptr [eax+10h]
jmp	short loc_42FF75

loc_42FF63:
mov	eax, [ecx]
call	dword ptr [eax+8]
jmp	short loc_42FF75

loc_42FF6A:
push	[ebp+arg_C]
mov	eax, [ecx]
push	[ebp+arg_8]
call	dword ptr [eax+28h]

loc_42FF75:
movzx	eax, al

loc_42FF78:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	10h
sub_42FEE2 endp




sub_42FF89 proc	near

arg_4= dword ptr  8

mov	eax, [esp+arg_4]
push	esi
mov	esi, ecx
mov	ecx, [eax+8]
cmp	ecx, 0FFFFFF33h
jz	short loc_42FFFB
cmp	ecx, 0FFFFFF35h
jz	short loc_42FFF1
cmp	ecx, 0FFFFFF36h
jz	short loc_42FFE7
cmp	ecx, 0FFFFFF37h
jz	short loc_42FFD5
cmp	ecx, 0FFFFFF38h
jz	short loc_42FFBF
xor	al, al
jmp	short loc_430005

loc_42FFBF:
mov	edx, [esi]
push	eax
mov	ecx, esi
call	dword ptr [edx+38h]

loc_42FFC7:		; dwNewLong
push	eax

loc_42FFC8:		; nIndex
push	0
push	dword ptr [esi+4] ; hWnd
call	ds:SetWindowLongA
jmp	short loc_430003

loc_42FFD5:
mov	edx, [esi]
push	eax
mov	ecx, esi
call	dword ptr [edx+30h]
xor	ecx, ecx
test	al, al
setnz	cl
push	ecx
jmp	short loc_42FFC8

loc_42FFE7:
mov	edx, [esi]
push	eax
mov	ecx, esi
call	dword ptr [edx+40h]
jmp	short loc_42FFC7

loc_42FFF1:
mov	edx, [esi]
push	eax
mov	ecx, esi
call	dword ptr [edx+50h]
jmp	short loc_430003

loc_42FFFB:
mov	edx, [esi]
push	eax
mov	ecx, esi
call	dword ptr [edx+48h]

loc_430003:
mov	al, 1

loc_430005:
pop	esi
retn	8
sub_42FF89 endp



; Attributes: bp-based frame

sub_430009 proc	near

var_C8=	dword ptr -0C8h
var_BC=	dword ptr -0BCh
var_B4=	dword ptr -0B4h
var_A8=	dword ptr -0A8h
Memory=	dword ptr -0A0h
var_94=	PROPSHEETHEADERA ptr -94h
var_60=	PROPSHEETHEADERW ptr -60h
var_2C=	dword ptr -2Ch
var_28=	dword ptr -28h
var_1C=	dword ptr -1Ch
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_447DD1
call	__EH_prolog
sub	esp, 0BCh
push	ebx
mov	ebx, ecx
push	esi
push	edi
mov	[ebp+var_14], edx
lea	ecx, [ebp+var_28]
call	sub_40337B
mov	esi, offset off_44C320
mov	[ebp+var_28], esi
xor	edi, edi
push	30h
lea	ecx, [ebp+var_C8]
mov	[ebp+var_4], edi
call	sub_402794
mov	[ebp+var_C8], offset off_44C510
push	30h
lea	ecx, [ebp+var_B4]
mov	byte ptr [ebp+var_4], 1
call	sub_402794
mov	[ebp+var_B4], offset off_44C508
cmp	[ebx+8], edi
mov	byte ptr [ebp+var_4], 2
mov	[ebp+var_10], edi
jle	short loc_4300B3

loc_430074:
mov	eax, [ebx+0Ch]
mov	ecx, [ebp+var_10]
mov	eax, [eax+ecx*4]
lea	ecx, [ebp+Memory]
lea	edx, [eax+4]
call	sub_43A785
push	eax
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 3
call	sub_4128A8
mov	byte ptr [ebp+var_4], 2
push	[ebp+Memory]	; Memory
call	sub_4284D8
inc	[ebp+var_10]
pop	ecx
mov	eax, [ebp+var_10]
cmp	eax, [ebx+8]
jl	short loc_430074

loc_4300B3:
cmp	[ebx+8], edi
mov	[ebp+var_10], edi
jle	loc_4301C1
jmp	short loc_4300C3

loc_4300C1:
xor	edi, edi

loc_4300C3:
mov	eax, [ebp+var_10]
mov	ecx, [ebx+0Ch]
mov	edx, hInstance
mov	[ebp+var_60.dwFlags], 30h
shl	eax, 2
mov	[ebp+var_60.hInstance],	edx
mov	[ebp+var_60.hwndParent], 20h
mov	ecx, [eax+ecx]
mov	[ebp+var_60.pszCaption], edi
mov	[ebp+var_2C], ecx
mov	dword ptr [ebp+var_60.anonymous_1], offset sub_42FEE2
movzx	edx, word ptr [ecx+10h]
mov	dword ptr [ebp+var_60.anonymous_0], edx
mov	edx, [ebp+var_1C]
mov	eax, [eax+edx]
cmp	[eax+4], edi
jnz	short loc_43010A
mov	[ebp+var_60.nPages], edi
jmp	short loc_430116

loc_43010A:
mov	eax, [eax]
mov	[ebp+var_60.hwndParent], 28h
mov	[ebp+var_60.nPages], eax

loc_430116:
mov	eax, [ecx]
sub	esp, 30h
mov	[ebp+var_60.pfnCallback], edi
lea	esi, [ebp+var_60.dwFlags]
push	0Ch
mov	dword ptr [ebp+var_60.anonymous_2], eax
pop	ecx
mov	edi, esp
rep movsd
lea	ecx, [ebp+var_C8]
call	sub_430300
mov	eax, hInstance
mov	[ebp+var_94.dwFlags], 30h
mov	[ebp+var_94.hInstance],	eax
mov	eax, [ebp+var_2C]
mov	[ebp+var_94.hwndParent], 20h
mov	dword ptr [ebp+var_94.anonymous_1], offset sub_42FEE2
movzx	ecx, word ptr [eax+10h]
mov	dword ptr [ebp+var_94.anonymous_0], ecx
xor	ecx, ecx
cmp	[eax+8], ecx
mov	[ebp+var_94.pszCaption], ecx
jnz	short loc_430178
mov	[ebp+var_94.nPages], ecx
jmp	short loc_430188

loc_430178:
mov	edx, [eax+4]
mov	[ebp+var_94.hwndParent], 28h
mov	[ebp+var_94.nPages], edx

loc_430188:
mov	eax, [eax]
sub	esp, 30h
mov	[ebp+var_94.pfnCallback], ecx
lea	esi, [ebp+var_94.dwFlags]
push	0Ch
mov	dword ptr [ebp+var_94.anonymous_2], eax
pop	ecx
mov	edi, esp
rep movsd
lea	ecx, [ebp+var_B4]
call	sub_430300
inc	[ebp+var_10]
mov	eax, [ebp+var_10]
cmp	eax, [ebx+8]
jl	loc_4300C1
xor	edi, edi
mov	esi, offset off_44C320

loc_4301C1:
cmp	byte_45D8B4, 0
jnz	loc_430267
mov	eax, [ebp+var_14]
mov	edx, [ebp+arg_0]
mov	[ebp+var_94.hwndParent], eax
mov	eax, hInstance
lea	ecx, [ebp+Memory]
mov	[ebp+var_94.dwSize], 34h
mov	[ebp+var_94.dwFlags], 8
mov	[ebp+var_94.hInstance],	eax
call	sub_43A785
mov	eax, [ebp+Memory]
mov	ebx, [ebx+8]
mov	[ebp+var_94.pszCaption], eax
mov	eax, [ebp+var_BC]
mov	dword ptr [ebp+var_94.anonymous_2], eax
lea	eax, [ebp+var_94]
push	eax		; LPCPROPSHEETHEADERA
mov	[ebp+var_94.nPages], ebx
mov	dword ptr [ebp+var_94.anonymous_1], edi
mov	[ebp+var_94.pfnCallback], edi
call	ds:PropertySheetA
mov	edi, eax
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 1
lea	ecx, [ebp+var_B4]
call	sub_4282FE
and	byte ptr [ebp+var_4], 0
lea	ecx, [ebp+var_C8]
call	sub_4282FE
mov	[ebp+var_28], esi
mov	[ebp+var_4], 4
jmp	short loc_4302D4

loc_430267:
mov	eax, [ebp+var_14]
mov	ebx, [ebx+8]
mov	[ebp+var_60.hwndParent], eax
mov	eax, hInstance
mov	[ebp+var_60.hInstance],	eax
mov	eax, [ebp+arg_0]
mov	[ebp+var_60.dwSize], 34h
mov	[ebp+var_60.dwFlags], 8
mov	eax, [eax]
mov	[ebp+var_60.nPages], ebx
mov	[ebp+var_60.pszCaption], eax
mov	eax, [ebp+var_A8]
mov	dword ptr [ebp+var_60.anonymous_2], eax
lea	eax, [ebp+var_60]
push	eax		; LPCPROPSHEETHEADERW
mov	dword ptr [ebp+var_60.anonymous_1], edi
mov	[ebp+var_60.pfnCallback], edi
call	ds:PropertySheetW
lea	ecx, [ebp+var_B4]
mov	edi, eax
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
and	byte ptr [ebp+var_4], 0
lea	ecx, [ebp+var_C8]
call	sub_4282FE
mov	[ebp+var_28], esi
mov	[ebp+var_4], 5

loc_4302D4:
lea	ecx, [ebp+var_28]
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_28]
call	sub_4282FE
mov	ecx, [ebp+var_C]
mov	eax, edi
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	4
sub_430009 endp



; Attributes: thunk

sub_4302FB proc	near
jmp	sub_4282FE
sub_4302FB endp




sub_430300 proc	near

arg_0= byte ptr	 4

push	ebx
push	esi
push	edi
mov	ebx, ecx
call	sub_428350
mov	eax, [ebx+8]
push	0Ch
pop	ecx
lea	esi, [esp+0Ch+arg_0]
lea	edi, [eax+eax*2]
shl	edi, 4
add	edi, [ebx+0Ch]
rep movsd
mov	eax, [ebx+8]
pop	edi
pop	esi
lea	ecx, [eax+1]
mov	[ebx+8], ecx
pop	ebx
retn	30h
sub_430300 endp



; Attributes: bp-based frame

; int __stdcall	sub_43032E(HWND	hWnd, UINT Msg,	WPARAM wParam, LPARAM lParam)
sub_43032E proc	near

hWnd= dword ptr	 8
Msg= dword ptr	0Ch
wParam=	dword ptr  10h
lParam=	dword ptr  14h

push	ebp
mov	ebp, esp
push	ebx
mov	ebx, [ebp+lParam]
push	esi
mov	esi, 81h
cmp	[ebp+Msg], esi
push	edi
mov	edi, [ebp+hWnd]
jnz	short loc_43034F
push	dword ptr [ebx]	; dwNewLong
push	0FFFFFFEBh	; nIndex
push	edi		; hWnd
call	ds:SetWindowLongA

loc_43034F:		; nIndex
push	0FFFFFFEBh
push	edi		; hWnd
call	ds:GetWindowLongA
test	eax, eax
jz	short loc_430379
cmp	[ebp+Msg], esi
jnz	short loc_430364
mov	[eax+4], edi

loc_430364:
mov	edx, [eax]
push	ebx
push	[ebp+wParam]
mov	ecx, eax
push	[ebp+Msg]
call	dword ptr [edx+4]

loc_430372:
pop	edi
pop	esi
pop	ebx
pop	ebp
retn	10h

loc_430379:
cmp	byte_45D8B4, 0
push	ebx		; lParam
push	[ebp+wParam]	; wParam
push	[ebp+Msg]	; Msg
push	edi		; hWnd
jz	short loc_430392
call	ds:DefWindowProcW
jmp	short loc_430372

loc_430392:
call	ds:DefWindowProcA
jmp	short loc_430372
sub_43032E endp



; Attributes: bp-based frame

; int __stdcall	sub_43039A(DWORD dwExStyle, LPCWSTR lpClassName, LPCWSTR lpWindowName, DWORD dwStyle, int X, int Y, int	nWidth,	int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance)
sub_43039A proc	near

var_84=	byte ptr -84h
WndClass= tagWNDCLASSW ptr -5Ch
Memory=	dword ptr -34h
var_28=	dword ptr -28h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
lpParam= dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
dwExStyle= dword ptr  8
lpClassName= dword ptr	0Ch
lpWindowName= dword ptr	 10h
dwStyle= dword ptr  14h
X= dword ptr  18h
Y= dword ptr  1Ch
nWidth=	dword ptr  20h
nHeight= dword ptr  24h
hWndParent= dword ptr  28h
hMenu= dword ptr  2Ch
hInstance= dword ptr  30h

mov	eax, offset loc_447DF4
call	__EH_prolog
sub	esp, 78h
cmp	byte_45D8B4, 0
push	ebx
push	esi
push	edi
mov	[ebp+lpParam], ecx
jz	short loc_4303D6
mov	esi, [ebp+lpClassName]
lea	eax, [ebp+WndClass]
push	eax		; lpWndClass
push	esi		; lpClassName
push	[ebp+hInstance]	; hInstance
call	ds:GetClassInfoW
mov	ebx, eax
neg	ebx
sbb	bl, bl
inc	bl
xor	edi, edi
jmp	loc_43045D

loc_4303D6:
xor	edi, edi
push	3
lea	ecx, [ebp+var_1C]
mov	[ebp+var_1C], edi
mov	[ebp+var_18], edi
mov	[ebp+var_14], edi
call	sub_4034E3
mov	esi, [ebp+lpClassName]
mov	[ebp+var_4], edi
test	esi, 0FFFF0000h
jnz	short loc_4303FD
mov	eax, esi
jmp	short loc_430437

loc_4303FD:
push	esi
lea	ecx, [ebp+var_28]
call	sub_403091
lea	edx, [ebp+var_28]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_43A785
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 2
call	sub_403244
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_28]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_1C]
pop	ecx
pop	ecx

loc_430437:
lea	ecx, [ebp+var_84]
push	ecx		; lpWndClass
push	eax		; lpClassName
push	[ebp+hInstance]	; hInstance
call	ds:GetClassInfoA
push	[ebp+var_1C]	; Memory
mov	ebx, eax
neg	ebx
sbb	bl, bl
or	[ebp+var_4], 0FFFFFFFFh
inc	bl
call	sub_4284D8
pop	ecx

loc_43045D:
test	bl, bl
jz	short loc_4304A7
mov	eax, [ebp+hInstance]
push	7F00h		; lpCursorName
push	edi		; hInstance
mov	[ebp+WndClass.style], edi
mov	[ebp+WndClass.lpfnWndProc], offset sub_43032E
mov	[ebp+WndClass.cbClsExtra], edi
mov	[ebp+WndClass.cbWndExtra], edi
mov	[ebp+WndClass.hInstance], eax
mov	[ebp+WndClass.hIcon], edi
call	ds:LoadCursorA
lea	ecx, [ebp+WndClass]
mov	[ebp+WndClass.hCursor],	eax
mov	[ebp+WndClass.hbrBackground], 6
mov	[ebp+WndClass.lpszMenuName], edi
mov	[ebp+WndClass.lpszClassName], esi
call	sub_42E31E
test	ax, ax
jnz	short loc_4304A7
xor	al, al
jmp	short loc_4304D2

loc_4304A7:
mov	eax, [ebp+lpParam]
push	eax		; lpParam
push	[ebp+hInstance]	; hInstance
lea	ecx, [eax+4]
push	[ebp+hMenu]	; hMenu
push	[ebp+hWndParent] ; hWndParent
push	[ebp+nHeight]	; nHeight
push	[ebp+nWidth]	; nWidth
push	[ebp+Y]		; Y
push	[ebp+X]		; X
push	[ebp+dwStyle]	; dwStyle
push	[ebp+lpWindowName] ; lpWindowName
push	esi		; lpClassName
push	[ebp+dwExStyle]	; dwExStyle
call	sub_42E558

loc_4304D2:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	2Ch
sub_43039A endp



; Attributes: bp-based frame

; int __stdcall	sub_4304E3(UINT	Msg, WPARAM wParam, LPARAM lParam)
sub_4304E3 proc	near

Msg= dword ptr	8
wParam=	dword ptr  0Ch
lParam=	dword ptr  10h

push	ebp
mov	ebp, esp
push	[ebp+lParam]	; lParam
cmp	byte_45D8B4, 0
push	[ebp+wParam]	; wParam
push	[ebp+Msg]	; Msg
push	dword ptr [ecx+4] ; hWnd
jz	short loc_430503
call	ds:DefWindowProcW
jmp	short loc_430509

loc_430503:
call	ds:DefWindowProcA

loc_430509:
pop	ebp
retn	0Ch
sub_4304E3 endp



; Attributes: bp-based frame

; int __stdcall	sub_43050D(UINT	Msg, WPARAM wParam, LPARAM lParam)
sub_43050D proc	near

Msg= dword ptr	8
wParam=	dword ptr  0Ch
lParam=	dword ptr  10h

push	ebp
mov	ebp, esp
mov	eax, [ebp+Msg]
push	ebx
mov	ebx, [ebp+wParam]
push	esi
push	edi
mov	edi, [ebp+lParam]
dec	eax
mov	esi, ecx
jz	short loc_43059C
dec	eax
jz	short loc_430582
sub	eax, 3
jz	short loc_430568
sub	eax, 0Bh
jz	short loc_43055F
sub	eax, 3Eh
jz	short loc_430549
sub	eax, 0C3h
jnz	short loc_430589
mov	eax, [esi]
lea	ecx, [ebp+lParam]
push	ecx
push	edi
push	ebx
mov	ecx, esi
call	dword ptr [eax+10h]
jmp	short loc_430556

loc_430549:
mov	eax, [esi]
lea	ecx, [ebp+lParam]
push	ecx
push	edi
push	ebx
mov	ecx, esi
call	dword ptr [eax+18h]

loc_430556:
test	al, al
jz	short loc_430589
mov	eax, [ebp+lParam]
jmp	short loc_430595

loc_43055F:
mov	eax, [esi]
mov	ecx, esi
call	dword ptr [eax+20h]
jmp	short loc_43057E

loc_430568:
mov	ecx, edi
mov	eax, [esi]
shr	ecx, 10h
push	ecx
movzx	ecx, di
push	ecx
push	ebx
mov	ecx, esi
call	dword ptr [eax+14h]
test	al, al
jz	short loc_430589

loc_43057E:
xor	eax, eax
jmp	short loc_430595

loc_430582:
mov	eax, [esi]
mov	ecx, esi
call	dword ptr [eax+1Ch]

loc_430589:		; lParam
push	edi
push	ebx		; wParam
push	[ebp+Msg]	; Msg
mov	ecx, esi
call	sub_4304E3

loc_430595:
pop	edi
pop	esi
pop	ebx
pop	ebp
retn	0Ch

loc_43059C:
mov	eax, [esi]
push	edi
mov	ecx, esi
call	dword ptr [eax+8]
test	al, al
jnz	short loc_430589
or	eax, 0FFFFFFFFh
jmp	short loc_430595
sub_43050D endp




sub_4305AD proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8
arg_8= dword ptr  0Ch

mov	eax, [esp+arg_0]
push	esi
push	[esp+4+arg_8]
mov	edx, [ecx]
movzx	esi, ax
push	[esp+8+arg_4]
shr	eax, 10h
push	esi
push	eax
call	dword ptr [edx+0Ch]
pop	esi
retn	0Ch
sub_4305AD endp




sub_4305CB proc	near
xor	al, al
retn	10h
sub_4305CB endp



; Attributes: bp-based frame

sub_4305D0 proc	near

Memory=	dword ptr -40h
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_4= dword ptr -4

mov	eax, offset loc_447E28
call	__EH_prolog
sub	esp, 34h
push	ebx
push	esi
push	edi
mov	edi, ecx
xor	esi, esi
push	3
lea	ecx, [ebp+var_34]
mov	[ebp+var_34], esi
mov	[ebp+var_30], esi
mov	[ebp+var_2C], esi
call	sub_403396
mov	ecx, [edi+4]
mov	[ebp+var_4], esi
cmp	ecx, esi
jz	short loc_43061E
mov	edx, [edi]
lea	eax, [edx+ecx*2-2]

loc_430607:
cmp	word ptr [eax],	2Eh
jz	short loc_430615
cmp	eax, edx
jz	short loc_43061E
dec	eax
dec	eax
jmp	short loc_430607

loc_430615:
sub	eax, edx
sar	eax, 1
mov	[ebp+var_10], eax
jmp	short loc_430622

loc_43061E:
or	[ebp+var_10], 0FFFFFFFFh

loc_430622:
cmp	ecx, esi
jz	short loc_430642
mov	edx, [edi]
lea	eax, [edx+ecx*2-2]

loc_43062C:
cmp	word ptr [eax],	2Fh
jz	short loc_43063A
cmp	eax, edx
jz	short loc_430642
dec	eax
dec	eax
jmp	short loc_43062C

loc_43063A:
sub	eax, edx
sar	eax, 1
mov	ebx, eax
jmp	short loc_430645

loc_430642:
or	ebx, 0FFFFFFFFh

loc_430645:
cmp	ecx, esi
jz	short loc_430663
mov	edx, [edi]
lea	eax, [edx+ecx*2-2]

loc_43064F:
cmp	word ptr [eax],	5Ch
jz	short loc_43065D
cmp	eax, edx
jz	short loc_430663
dec	eax
dec	eax
jmp	short loc_43064F

loc_43065D:
sub	eax, edx
sar	eax, 1
jmp	short loc_430666

loc_430663:
or	eax, 0FFFFFFFFh

loc_430666:
cmp	ebx, eax
jg	short loc_43066C
mov	ebx, eax

loc_43066C:
push	3
lea	ecx, [ebp+var_1C]
mov	[ebp+var_1C], esi
mov	[ebp+var_18], esi
mov	[ebp+var_14], esi
call	sub_403396
push	3
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 1
mov	[ebp+var_28], esi
mov	[ebp+var_24], esi
mov	[ebp+var_20], esi
call	sub_403396
cmp	[ebp+var_10], ebx
mov	byte ptr [ebp+var_4], 2
jle	short loc_4306F6
cmp	[ebp+var_10], esi
jle	short loc_4306F6
push	[ebp+var_10]
lea	eax, [ebp+Memory]
mov	ecx, edi
push	eax
call	sub_403228
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 3
call	sub_40312C
mov	byte ptr [ebp+var_4], 2
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
lea	eax, [ebp+Memory]
push	[ebp+var_10]
mov	ecx, edi
push	eax
call	sub_405246
push	eax
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 4
call	sub_40312C
mov	byte ptr [ebp+var_4], 2
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
jmp	short loc_4306FF

loc_4306F6:
push	edi
lea	ecx, [ebp+var_1C]
call	sub_40312C

loc_4306FF:
push	5Fh
lea	ecx, [ebp+var_1C]
call	sub_40316A
mov	[ebp+var_10], 40000000h
push	1
pop	ebx

loc_430713:
mov	eax, [ebp+var_10]
lea	edx, [ebp+var_28]
lea	ecx, [ebp+var_1C]
lea	esi, [eax+ebx]
lea	eax, [ebp+var_34]
shr	esi, 1
push	eax
push	esi
call	sub_43077F
test	al, al
jz	short loc_430734
lea	ebx, [esi+1]
jmp	short loc_430737

loc_430734:
mov	[ebp+var_10], esi

loc_430737:
cmp	ebx, [ebp+var_10]
jnz	short loc_430713
push	edi
lea	edx, [ebp+var_28]
push	[ebp+var_10]
lea	ecx, [ebp+var_1C]
call	sub_43077F
mov	bl, al
push	[ebp+var_28]	; Memory
neg	bl
sbb	bl, bl
inc	bl
call	sub_4284D8
push	[ebp+var_1C]	; Memory
call	sub_4284D8
push	[ebp+var_34]	; Memory
call	sub_4284D8
mov	ecx, [ebp+var_C]
add	esp, 0Ch
mov	al, bl
mov	large fs:0, ecx
pop	edi
pop	esi
pop	ebx
leave
retn
sub_4305D0 endp



; Attributes: bp-based frame

sub_43077F proc	near

var_20=	byte ptr -20h
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

push	ebp
mov	ebp, esp
sub	esp, 20h
push	esi
push	edi
mov	edi, edx
mov	esi, ecx
mov	ecx, [ebp+arg_0]
lea	edx, [ebp+var_20]
call	sub_427B8F
push	esi
mov	esi, [ebp+arg_4]
mov	ecx, esi
call	sub_40312C
lea	eax, [ebp+var_20]
mov	ecx, esi
push	eax
call	sub_403195
mov	ecx, esi
push	edi
call	sub_4031F2
mov	ecx, [esi]
call	sub_42B681
pop	edi
pop	esi
leave
retn	8
sub_43077F endp




; int __stdcall	sub_4307C1(wchar_t *lpFileName)
sub_4307C1 proc	near

lpFileName= dword ptr  4

push	[esp+lpFileName] ; lpFileName
add	ecx, 10h
call	sub_42C145
retn	4
sub_4307C1 endp




; int __stdcall	sub_4307D0(wchar_t *lpFileName,	char)
sub_4307D0 proc	near

lpFileName= dword ptr  4
arg_4= byte ptr	 8

push	dword ptr [esp+arg_4] ;	char
add	ecx, 10h
push	[esp+4+lpFileName] ; lpFileName
call	sub_42C124
retn	8
sub_4307D0 endp




sub_4307E3 proc	near
mov	eax, ecx
xor	ecx, ecx
mov	dword ptr [eax+4], offset off_44C540
mov	[eax+8], ecx
or	dword ptr [eax+10h], 0FFFFFFFFh
mov	[eax+20h], ecx
mov	[eax+28h], ecx
mov	[eax+24h], ecx
mov	[eax+2Ch], ecx
mov	[eax+38h], ecx
mov	[eax+3Ch], ecx
mov	dword ptr [eax], offset	off_44C528
mov	dword ptr [eax+4], offset off_44C518
retn
sub_4307E3 endp



; Attributes: bp-based frame

; int __stdcall	sub_430815(int,	void *Buf1, int)
sub_430815 proc	near

arg_0= dword ptr  8
Buf1= dword ptr	 0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
push	10h		; Size
push	offset unk_44CCB8 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_430838

loc_43082E:
mov	ecx, [ebp+arg_8]
mov	eax, [ebp+arg_0]
mov	[ecx], eax
jmp	short loc_430877

loc_430838:		; Size
push	10h
push	offset unk_44B7E0 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jz	short loc_43082E
push	10h		; Size
push	offset unk_44B7C0 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_430881
mov	eax, [ebp+arg_0]
mov	ecx, eax
neg	ecx
lea	edx, [eax+4]
sbb	ecx, ecx
and	ecx, edx
mov	edx, [ebp+arg_8]
mov	[edx], ecx

loc_430877:
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+4]
xor	eax, eax
jmp	short loc_430886

loc_430881:
mov	eax, 80004002h

loc_430886:
pop	ebp
retn	0Ch
sub_430815 endp




sub_43088A proc	near

arg_0= dword ptr  4

mov	ecx, [esp+arg_0]
dec	dword ptr [ecx+8]
mov	eax, [ecx+8]
jnz	short locret_4308A3
test	ecx, ecx
jz	short ?_Get_deleter@_Ref_count_base@std@@UBEPAXABVtype_info@@@Z_4 ; std::_Ref_count_base::_Get_deleter(type_info const &)
mov	eax, [ecx]
push	1
call	dword ptr [eax+14h]
sub_43088A endp	; sp-analysis failed

; [00000005 BYTES: COLLAPSED FUNCTION std::_Ref_count_base::_Get_deleter(type_info const &). PRESS KEYPAD CTRL-"+" TO EXPAND]



; int __thiscall sub_4308A6(void *Memory, char)
sub_4308A6 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_4308C2
test	[esp+4+arg_0], 1
jz	short loc_4308BC
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_4308BC:
mov	eax, esi
pop	esi
retn	4
sub_4308A6 endp




sub_4308C2 proc	near
push	esi
mov	esi, ecx
mov	ecx, [esi+38h]	; lpAddress
mov	dword ptr [esi], offset	off_44C528
mov	dword ptr [esi+4], offset off_44C518
call	sub_4411D0
lea	ecx, [esi+10h]
call	sub_42BD78
pop	esi
retn
sub_4308C2 endp



; Attributes: bp-based frame

; int __stdcall	sub_4308E4(int,	void *lpBuffer,	DWORD nNumberOfBytesToRead, int)
sub_4308E4 proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
lpBuffer= dword	ptr  0Ch
nNumberOfBytesToRead= dword ptr	 10h
arg_C= dword ptr  14h

push	ebp
mov	ebp, esp
sub	esp, 18h
mov	eax, [ebp+arg_C]
test	eax, eax
jz	short loc_4308F4
and	dword ptr [eax], 0

loc_4308F4:
cmp	[ebp+nNumberOfBytesToRead], 0
push	ebx
push	esi
push	edi
jz	short loc_43092E
mov	esi, [ebp+arg_0]
cmp	byte ptr [esi+14h], 0
jz	loc_430AFB
cmp	byte ptr [esi+15h], 0
jz	short loc_430953
mov	edi, [esi+24h]
mov	ecx, [esi+1Ch]
mov	edx, [esi+20h]
mov	eax, [esi+18h]
cmp	edi, ecx
jb	short loc_43093F
ja	short loc_430926
cmp	edx, eax
jb	short loc_43093F

loc_430926:
cmp	edx, eax
jnz	short loc_430935
cmp	edi, ecx
jnz	short loc_430935

loc_43092E:
xor	eax, eax
jmp	loc_430B2E

loc_430935:
mov	eax, 80004005h
jmp	loc_430B2E

loc_43093F:
sub	eax, edx
sbb	ecx, edi
xor	edx, edx
cmp	edx, ecx
jb	short loc_430953
ja	short loc_430950
cmp	[ebp+nNumberOfBytesToRead], eax
jbe	short loc_430953

loc_430950:
mov	[ebp+nNumberOfBytesToRead], eax

loc_430953:
lea	ebx, [esi+3Ch]

loc_430956:
mov	eax, [esi+20h]
mov	ecx, [esi+24h]
mov	edi, eax
mov	[ebp+var_4], ecx
and	edi, 0FFFC0000h
cmp	dword ptr [ebx], 0
jbe	short loc_43097E
mov	edx, [esi+30h]
cmp	edx, edi
jnz	short loc_43097E
mov	edx, [esi+34h]
cmp	edx, ecx
jz	loc_430AA7

loc_43097E:
mov	ebx, 3FFFFh
xor	ecx, ecx
and	eax, ebx
or	eax, ecx
jnz	short loc_4309C3
test	[ebp+lpBuffer],	ebx
jnz	short loc_4309C3
mov	ecx, [ebp+nNumberOfBytesToRead]
xor	edx, edx
add	ecx, [esi+20h]
adc	edx, [esi+24h]
mov	eax, ecx
and	eax, ebx
xor	ebx, ebx
or	eax, ebx
jz	loc_430A6F
and	ecx, 0FFFC0000h
cmp	edx, [esi+24h]
ja	loc_430A69
jb	short loc_4309C3
cmp	ecx, [esi+20h]
ja	loc_430A69

loc_4309C3:
cmp	edi, [esi+28h]
jnz	short loc_4309D0
mov	eax, [ebp+var_4]
cmp	eax, [esi+2Ch]
jz	short loc_4309F6

loc_4309D0:
lea	eax, [ebp+var_10]
lea	ecx, [esi+10h]
push	eax		; int
push	0		; dwMoveMethod
push	[ebp+var_4]	; int
push	edi		; lDistanceToMove
call	sub_42BF42
test	al, al
jz	loc_430AF7
mov	eax, [ebp+var_10]
mov	[esi+28h], eax
mov	eax, [ebp+var_C]
mov	[esi+2Ch], eax

loc_4309F6:
mov	eax, [ebp+var_4]
cmp	byte ptr [esi+15h], 0
mov	ecx, 40000h	; dwSize
mov	[esi+30h], edi
mov	[esi+34h], eax
mov	edi, ecx
jz	short loc_430A25
mov	eax, [esi+18h]
mov	edx, [esi+1Ch]
sub	eax, [esi+28h]
sbb	edx, [esi+2Ch]
mov	[ebp+var_14], edx
jnz	short loc_430A23
cmp	eax, ecx
mov	edi, eax
jb	short loc_430A25

loc_430A23:
mov	edi, ecx

loc_430A25:
cmp	dword ptr [esi+38h], 0
jnz	short loc_430A3B
call	sub_4411B0
test	eax, eax
mov	[esi+38h], eax
jz	loc_430AF0

loc_430A3B:
lea	ebx, [esi+3Ch]
lea	ecx, [esi+10h]
push	ebx		; int
push	edi		; nNumberOfBytesToRead
push	dword ptr [esi+38h] ; lpBuffer
call	sub_42C153
test	al, al
jz	loc_430AF7
mov	eax, [ebx]
test	eax, eax
jz	loc_43092E
add	[esi+28h], eax
adc	dword ptr [esi+2Ch], 0
jmp	loc_430956

loc_430A69:
sub	ecx, [esi+20h]
mov	[ebp+nNumberOfBytesToRead], ecx

loc_430A6F:
mov	eax, [esi+20h]
mov	ecx, [esi+24h]
cmp	eax, [esi+28h]
jnz	short loc_430A7F
cmp	ecx, [esi+2Ch]
jz	short loc_430AFB

loc_430A7F:
lea	edx, [ebp+var_10]
push	edx		; int
push	0		; dwMoveMethod
push	ecx		; int
push	eax		; lDistanceToMove
lea	ecx, [esi+10h]
call	sub_42BF42
test	al, al
jz	short loc_430AF7
mov	eax, [ebp+var_10]
mov	ecx, [ebp+var_C]
mov	[esi+20h], eax
mov	[esi+28h], eax
mov	[esi+24h], ecx
mov	[esi+2Ch], ecx
jmp	short loc_430AFB

loc_430AA7:
mov	eax, [esi+20h]
mov	ebx, [ebx]
and	eax, 3FFFFh
cmp	eax, ebx
jnb	loc_43092E
sub	ebx, eax
mov	edi, ebx
cmp	edi, [ebp+nNumberOfBytesToRead]
jb	short loc_430AC5
mov	edi, [ebp+nNumberOfBytesToRead]

loc_430AC5:
mov	ecx, [esi+38h]
push	edi		; Size
add	ecx, eax
push	ecx		; Src
push	[ebp+lpBuffer]	; Dst
call	memcpy
mov	eax, [ebp+arg_C]
add	esp, 0Ch
add	[esi+20h], edi
adc	dword ptr [esi+24h], 0
test	eax, eax
jz	loc_43092E
add	[eax], edi
jmp	loc_43092E

loc_430AF0:
mov	eax, 8007000Eh
jmp	short loc_430B2E

loc_430AF7:
xor	cl, cl
jmp	short loc_430B29

loc_430AFB:
lea	eax, [ebp+arg_0]
lea	ecx, [esi+10h]
push	eax		; int
push	[ebp+nNumberOfBytesToRead] ; nNumberOfBytesToRead
push	[ebp+lpBuffer]	; lpBuffer
call	sub_42C180
mov	ecx, [ebp+arg_C]
mov	edx, [ebp+arg_0]
test	ecx, ecx
jz	short loc_430B19
mov	[ecx], edx

loc_430B19:
xor	edi, edi
add	[esi+20h], edx
mov	cl, al
adc	[esi+24h], edi
add	[esi+28h], edx
adc	[esi+2Ch], edi

loc_430B29:
call	sub_430B35

loc_430B2E:
pop	edi
pop	esi
pop	ebx
leave
retn	10h
sub_4308E4 endp




sub_430B35 proc	near
test	cl, cl
jz	short loc_430B3C
xor	eax, eax
retn

loc_430B3C:
call	ds:GetLastError
test	eax, eax
jnz	short loc_430B4C
mov	eax, 80004005h
retn

loc_430B4C:
jle	short locret_430B58
and	eax, 0FFFFh
or	eax, 80070000h

locret_430B58:
retn
sub_430B35 endp



; Attributes: bp-based frame

; int __stdcall	sub_430B59(int,	LPVOID lpBuffer, DWORD NumberOfBytesRead, int)
sub_430B59 proc	near

lpBuffer= dword	ptr  0Ch
NumberOfBytesRead= dword ptr  10h
arg_C= dword ptr  14h

push	ebp
mov	ebp, esp
mov	eax, 100000h
cmp	[ebp+NumberOfBytesRead], eax
jnb	short loc_430B69
mov	eax, [ebp+NumberOfBytesRead]

loc_430B69:
push	esi
lea	ecx, [ebp+NumberOfBytesRead]
push	0		; lpOverlapped
push	ecx		; lpNumberOfBytesRead
push	eax		; nNumberOfBytesToRead
push	[ebp+lpBuffer]	; lpBuffer
push	0FFFFFFF6h	; nStdHandle
call	ds:GetStdHandle
push	eax		; hFile
call	ds:ReadFile
mov	esi, eax
mov	eax, [ebp+arg_C]
test	eax, eax
jz	short loc_430B91
mov	ecx, [ebp+NumberOfBytesRead]
mov	[eax], ecx

loc_430B91:
test	esi, esi
jnz	short loc_430BA6
call	ds:GetLastError
cmp	eax, 6Dh
jnz	short loc_430BA4
xor	eax, eax
jmp	short loc_430BAE

loc_430BA4:
test	esi, esi

loc_430BA6:
setnz	cl
call	sub_430B35

loc_430BAE:
pop	esi
pop	ebp
retn	10h
sub_430B59 endp



; Attributes: bp-based frame

; int __stdcall	sub_430BB3(int,	LONG lDistanceToMove, int, DWORD dwMoveMethod, int)
sub_430BB3 proc	near

arg_0= dword ptr  8
lDistanceToMove= dword ptr  0Ch
arg_8= dword ptr  10h
dwMoveMethod= dword ptr	 14h
arg_10=	dword ptr  18h

push	ebp
mov	ebp, esp
mov	edx, [ebp+dwMoveMethod]
push	esi
cmp	edx, 3
jnb	short loc_430BD9
mov	esi, [ebp+arg_0]
cmp	byte ptr [esi+14h], 0
jz	short loc_430C0D
mov	eax, [ebp+lDistanceToMove]
mov	ecx, [ebp+arg_8]
sub	edx, 0
jz	short loc_430BF7
dec	edx
jz	short loc_430BEB
dec	edx
jz	short loc_430BE0

loc_430BD9:
mov	eax, 80030001h
jmp	short loc_430C47

loc_430BE0:
mov	eax, [esi+18h]
mov	ecx, [esi+1Ch]
add	eax, [ebp+lDistanceToMove]
jmp	short loc_430BF4

loc_430BEB:
mov	eax, [esi+20h]
mov	ecx, [esi+24h]
add	eax, [ebp+lDistanceToMove]

loc_430BF4:
adc	ecx, [ebp+arg_8]

loc_430BF7:
mov	edx, [ebp+arg_10]
mov	[esi+20h], eax
test	edx, edx
mov	[esi+24h], ecx
jz	short loc_430C09
mov	[edx], eax
mov	[edx+4], ecx

loc_430C09:
xor	eax, eax
jmp	short loc_430C47

loc_430C0D:
lea	eax, [ebp+lDistanceToMove]
push	edi
push	eax		; int
push	edx		; dwMoveMethod
push	[ebp+arg_8]	; int
lea	ecx, [esi+10h]
push	[ebp+lDistanceToMove] ;	lDistanceToMove
call	sub_42BF42
mov	edx, [ebp+lDistanceToMove]
mov	edi, [ebp+arg_8]
mov	[esi+20h], edx
mov	[esi+28h], edx
mov	[esi+24h], edi
mov	[esi+2Ch], edi
mov	esi, [ebp+arg_10]
test	esi, esi
jz	short loc_430C3F
mov	[esi], edx
mov	[esi+4], edi

loc_430C3F:
mov	cl, al
call	sub_430B35
pop	edi

loc_430C47:
pop	esi
pop	ebp
retn	14h
sub_430BB3 endp




sub_430C4C proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [esp+arg_0]
push	[esp+arg_4]
lea	ecx, [eax+0Ch]
call	sub_42BEDB
mov	cl, al
call	sub_430B35
retn	8
sub_430C4C endp




sub_430C66 proc	near
add	ecx, 8
call	sub_42BEBB
mov	cl, al
jmp	sub_430B35
sub_430C66 endp



; Attributes: bp-based frame

; int __stdcall	sub_430C75(int,	LPCVOID	lpBuffer, DWORD	nNumberOfBytesToWrite, int)
sub_430C75 proc	near

arg_0= dword ptr  8
lpBuffer= dword	ptr  0Ch
nNumberOfBytesToWrite= dword ptr  10h
arg_C= dword ptr  14h

push	ebp
mov	ebp, esp
lea	eax, [ebp+nNumberOfBytesToWrite]
push	esi
mov	esi, [ebp+arg_0]
push	eax		; int
push	[ebp+nNumberOfBytesToWrite] ; nNumberOfBytesToWrite
lea	ecx, [esi+8]
push	[ebp+lpBuffer]	; lpBuffer
call	sub_42C24F
mov	edx, [ebp+nNumberOfBytesToWrite]
add	[esi+18h], edx
adc	dword ptr [esi+1Ch], 0
mov	esi, [ebp+arg_C]
test	esi, esi
jz	short loc_430CA1
mov	[esi], edx

loc_430CA1:
mov	cl, al
call	sub_430B35
pop	esi
pop	ebp
retn	10h
sub_430C75 endp



; Attributes: bp-based frame

; int __stdcall	sub_430CAD(int,	LONG lDistanceToMove, int, DWORD dwMoveMethod, int)
sub_430CAD proc	near

arg_0= dword ptr  8
lDistanceToMove= dword ptr  0Ch
arg_8= dword ptr  10h
dwMoveMethod= dword ptr	 14h
arg_10=	dword ptr  18h

push	ebp
mov	ebp, esp
cmp	[ebp+dwMoveMethod], 3
jb	short loc_430CBD
mov	eax, 80030001h
jmp	short loc_430CEE

loc_430CBD:
lea	eax, [ebp+lDistanceToMove]
push	eax		; int
mov	eax, [ebp+arg_0]
push	[ebp+dwMoveMethod] ; dwMoveMethod
lea	ecx, [eax+8]
push	[ebp+arg_8]	; int
push	[ebp+lDistanceToMove] ;	lDistanceToMove
call	sub_42BF42
mov	edx, [ebp+arg_10]
test	edx, edx
jz	short loc_430CE7
mov	ecx, [ebp+lDistanceToMove]
mov	[edx], ecx
mov	ecx, [ebp+arg_8]
mov	[edx+4], ecx

loc_430CE7:
mov	cl, al
call	sub_430B35

loc_430CEE:
pop	ebp
retn	14h
sub_430CAD endp



; Attributes: bp-based frame

sub_430CF2 proc	near

var_10=	dword ptr -10h
lDistanceToMove= 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
mov	eax, [ebp+arg_0]
push	esi
lea	esi, [eax+8]
lea	eax, [ebp+lDistanceToMove]
push	eax		; int
push	1		; dwMoveMethod
push	0		; int
push	0		; lDistanceToMove
mov	ecx, esi
call	sub_42BF42
test	al, al
jnz	short loc_430D1B
mov	eax, 80004005h
jmp	short loc_430D55

loc_430D1B:		; int
push	[ebp+arg_8]
mov	ecx, esi
push	[ebp+arg_4]	; lDistanceToMove
call	sub_42C2DD
test	al, al
jz	short loc_430D45
lea	eax, [ebp+var_10]
mov	ecx, esi
push	eax		; int
push	[ebp+var_4]	; int
push	[ebp+lDistanceToMove] ;	lDistanceToMove
call	sub_42BFB0
test	al, al
jz	short loc_430D45
mov	al, 1
jmp	short loc_430D47

loc_430D45:
xor	al, al

loc_430D47:
neg	al
sbb	eax, eax
and	eax, 7FFFBFFBh
add	eax, 80004005h

loc_430D55:
pop	esi
leave
retn	0Ch
sub_430CF2 endp



; Attributes: bp-based frame

; int __stdcall	sub_430D5A(int,	LPCVOID	lpBuffer, DWORD	NumberOfBytesWritten, int)
sub_430D5A proc	near

lpBuffer= dword	ptr  0Ch
NumberOfBytesWritten= dword ptr	 10h
arg_C= dword ptr  14h

push	ebp
mov	ebp, esp
push	esi
mov	esi, [ebp+arg_C]
test	esi, esi
jz	short loc_430D68
and	dword ptr [esi], 0

loc_430D68:
cmp	[ebp+NumberOfBytesWritten], 0
push	1
pop	eax
jbe	short loc_430DA0
mov	eax, 8000h
cmp	[ebp+NumberOfBytesWritten], eax
jnb	short loc_430D7E
mov	eax, [ebp+NumberOfBytesWritten]

loc_430D7E:
lea	ecx, [ebp+NumberOfBytesWritten]
push	0		; lpOverlapped
push	ecx		; lpNumberOfBytesWritten
push	eax		; nNumberOfBytesToWrite
push	[ebp+lpBuffer]	; lpBuffer
push	0FFFFFFF5h	; nStdHandle
call	ds:GetStdHandle
push	eax		; hFile
call	ds:WriteFile
test	esi, esi
jz	short loc_430DA0
mov	ecx, [ebp+NumberOfBytesWritten]
add	[esi], ecx

loc_430DA0:
test	eax, eax
setnz	cl
call	sub_430B35
pop	esi
pop	ebp
retn	10h
sub_430D5A endp




sub_430DAF proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_430815
sub_430DAF endp




sub_430DB9 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_43088A
sub_430DB9 endp




sub_430DC3 proc	near
mov	eax, ecx
xor	ecx, ecx
mov	[eax+4], ecx
mov	[eax+8], ecx
mov	[eax+0Ch], ecx
mov	[eax+28h], ecx
mov	[eax+20h], ecx
mov	[eax+18h], ecx
mov	dword ptr [eax], offset	off_44C550
mov	[eax+2Ch], ecx
mov	[eax+24h], ecx
mov	[eax+1Ch], ecx
mov	byte ptr [eax+31h], 1
mov	byte ptr [eax+30h], 1
retn
sub_430DC3 endp




; int __stdcall	sub_430DF1(void	*Memory)
sub_430DF1 proc	near

Memory=	dword ptr  4

push	esi
mov	esi, [esp+4+Memory]
dec	dword ptr [esi+4]
mov	eax, [esi+4]
jnz	short loc_430E12
test	esi, esi
jz	short loc_430E10
mov	ecx, esi
call	sub_430E16
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_430E10:
xor	eax, eax

loc_430E12:
pop	esi
retn	4
sub_430DF1 endp



; Attributes: bp-based frame

sub_430E16 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_447E3F
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	eax, [esi+0Ch]
and	[ebp+var_4], 0
test	eax, eax
jz	short loc_430E38
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_430E38:
mov	esi, [esi+8]
or	[ebp+var_4], 0FFFFFFFFh
test	esi, esi
jz	short loc_430E49
mov	eax, [esi]
push	esi
call	dword ptr [eax+8]

loc_430E49:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_430E16 endp




sub_430E56 proc	near

arg_0= dword ptr  4
arg_4= byte ptr	 8

push	ebx
push	esi
mov	esi, ecx
push	edi
mov	eax, [esi+0Ch]
lea	edi, [esi+0Ch]
test	eax, eax
jz	short loc_430E6E
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
and	dword ptr [edi], 0

loc_430E6E:
push	[esp+0Ch+arg_0]
lea	ebx, [esi+8]
mov	ecx, ebx
call	sub_43D0DB
mov	ebx, [ebx]
push	edi
push	offset unk_44B700
push	ebx
mov	eax, [ebx]
call	dword ptr [eax]
mov	al, [esp+0Ch+arg_4]
pop	edi
mov	[esi+10h], al
pop	esi
pop	ebx
retn	8
sub_430E56 endp



; Attributes: bp-based frame

sub_430E96 proc	near

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

push	ebp
mov	ebp, esp
sub	esp, 10h
push	esi
mov	esi, [ebp+arg_0]
mov	eax, [esi+20h]
mov	[ebp+var_8], eax
mov	eax, [esi+24h]
mov	[ebp+var_4], eax
mov	eax, [esi+28h]
mov	[ebp+var_10], eax
mov	eax, [esi+2Ch]
mov	[ebp+var_C], eax
mov	eax, [ebp+arg_4]
test	eax, eax
jz	short loc_430ECA
mov	ecx, [eax]
mov	eax, [eax+4]
add	[ebp+var_8], ecx
adc	[ebp+var_4], eax

loc_430ECA:
mov	eax, [ebp+arg_8]
test	eax, eax
jz	short loc_430EDC
mov	ecx, [eax]
mov	eax, [eax+4]
add	[ebp+var_10], ecx
adc	[ebp+var_C], eax

loc_430EDC:
cmp	byte ptr [esi+30h], 0
jz	short loc_430EFB
mov	eax, [esi+0Ch]
test	eax, eax
jz	short loc_430EFB
mov	ecx, [eax]
lea	edx, [ebp+var_10]
push	edx
lea	edx, [ebp+var_8]
push	edx
push	eax
call	dword ptr [ecx+0Ch]
test	eax, eax
jnz	short loc_430F2D

loc_430EFB:
mov	eax, [esi+18h]
mov	ecx, [esi+1Ch]
add	[ebp+var_8], eax
adc	[ebp+var_4], ecx
add	[ebp+var_10], eax
adc	[ebp+var_C], ecx
cmp	byte ptr [esi+31h], 0
jz	short loc_430F2B
cmp	byte ptr [esi+10h], 0
lea	eax, [ebp+var_8]
jnz	short loc_430F1F
lea	eax, [ebp+var_10]

loc_430F1F:
mov	esi, [esi+8]
push	eax
push	esi
mov	ecx, [esi]
call	dword ptr [ecx+10h]
jmp	short loc_430F2D

loc_430F2B:
xor	eax, eax

loc_430F2D:
pop	esi
leave
retn	0Ch
sub_430E96 endp



; Attributes: bp-based frame

sub_430F32 proc	near

var_4= dword ptr -4
arg_0= dword ptr  8

push	ebp
mov	ebp, esp
push	ecx
push	ebx
push	esi
mov	esi, [ebp+arg_0]
push	edi
mov	[ebp+var_4], edx
mov	ebx, ecx
mov	edi, [esi]
and	dword ptr [esi], 0

loc_430F46:
test	edi, edi
jz	short loc_430F75
mov	eax, 80000000h
cmp	edi, eax
jnb	short loc_430F55
mov	eax, edi

loc_430F55:
mov	ecx, [ebx]
lea	edx, [ebp+arg_0]
push	edx
push	eax
push	[ebp+var_4]
push	ebx
call	dword ptr [ecx+0Ch]
mov	ecx, [ebp+arg_0]
add	[esi], ecx
add	[ebp+var_4], ecx
sub	edi, ecx
test	eax, eax
jnz	short loc_430F77
test	ecx, ecx
jnz	short loc_430F46

loc_430F75:
xor	eax, eax

loc_430F77:
pop	edi
pop	esi
pop	ebx
leave
retn	4
sub_430F32 endp



; Attributes: bp-based frame

sub_430F7E proc	near

arg_0= dword ptr  8

push	ebp
mov	ebp, esp
push	ebx
push	esi
push	edi
mov	edi, [ebp+arg_0]
mov	ebx, edx
mov	esi, ecx

loc_430F8B:
test	edi, edi
jz	short loc_430FBC
mov	eax, 80000000h
cmp	edi, eax
jnb	short loc_430F9A
mov	eax, edi

loc_430F9A:
mov	ecx, [esi]
lea	edx, [ebp+arg_0]
push	edx
push	eax
push	ebx
push	esi
call	dword ptr [ecx+0Ch]
add	ebx, [ebp+arg_0]
sub	edi, [ebp+arg_0]
test	eax, eax
jnz	short loc_430FBE
cmp	[ebp+arg_0], eax
jnz	short loc_430F8B
mov	eax, 80004005h
jmp	short loc_430FBE

loc_430FBC:
xor	eax, eax

loc_430FBE:
pop	edi
pop	esi
pop	ebx
pop	ebp
retn	4
sub_430F7E endp



; Attributes: bp-based frame

sub_430FC5 proc	near

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	esi
mov	esi, [ebp+arg_0]
push	edi
xor	edi, edi
mov	eax, [esi+8]
test	eax, eax
jz	short loc_430FE8
lea	edx, [ebp+arg_8]
mov	ecx, [eax]
push	edx
push	[ebp+arg_8]
push	[ebp+arg_4]
push	eax
call	dword ptr [ecx+0Ch]
mov	edi, eax

loc_430FE8:
cmp	byte ptr [esi+1Ch], 0
jz	short loc_430FFF
push	[ebp+arg_8]
mov	edx, [ebp+arg_4]
mov	ecx, [esi+18h]
call	sub_441990
mov	[esi+18h], eax

loc_430FFF:
mov	eax, [ebp+arg_8]
mov	ecx, [ebp+arg_C]
add	[esi+10h], eax
adc	dword ptr [esi+14h], 0
test	ecx, ecx
jz	short loc_431012
mov	[ecx], eax

loc_431012:
mov	eax, edi
pop	edi
pop	esi
pop	ebp
retn	10h
sub_430FC5 endp



; Attributes: bp-based frame

sub_43101A proc	near

arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h
arg_C= byte ptr	 14h
arg_10=	byte ptr  18h
arg_14=	byte ptr  1Ch
arg_18=	dword ptr  20h
arg_1C=	dword ptr  24h
arg_20=	dword ptr  28h
arg_24=	dword ptr  2Ch

push	ebp
mov	ebp, esp
mov	eax, [ebp+arg_0]
push	ebx
push	esi
mov	esi, ecx
push	edi
mov	[esi+14h], eax
mov	al, [ebp+arg_C]
mov	[esi+0B8h], al
mov	al, [ebp+arg_10]
push	[ebp+arg_8]
mov	[esi+0B9h], al
mov	al, [ebp+arg_14]
lea	ebx, [esi+18h]
mov	[esi+0BAh], al
mov	eax, [ebp+arg_20]
mov	[esi+0C0h], eax
mov	eax, [ebp+arg_24]
mov	dword ptr [esi+0C8h], 1
and	dword ptr [esi+0CCh], 0
mov	ecx, ebx
mov	[esi+0C4h], eax
call	sub_43D0DB
mov	eax, [esi+1Ch]
lea	edi, [esi+1Ch]
test	eax, eax
jz	short loc_431086
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
and	dword ptr [edi], 0

loc_431086:
mov	eax, [ebx]
push	edi
push	offset unk_44B700
push	eax
mov	ecx, [eax]
call	dword ptr [ecx]
mov	ecx, [esi+0D0h]
lea	edi, [esi+0D0h]
push	1
push	[ebp+arg_8]
call	sub_430E56
mov	eax, [edi]
lea	edi, [esi+0A4h]
mov	ecx, edi
and	byte ptr [eax+31h], 0
call	sub_428327
push	[ebp+arg_1C]
mov	ecx, edi
call	sub_403531
mov	eax, [ebp+arg_4]
push	[ebp+arg_18]
mov	[esi+10h], eax
add	esi, 24h
mov	ecx, esi
call	sub_40312C
mov	ecx, esi
call	sub_42C33B
pop	edi
pop	esi
pop	ebx
pop	ebp
retn	28h
sub_43101A endp



; Attributes: bp-based frame

sub_4310E7 proc	near

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

mov	eax, offset loc_447E4C
call	__EH_prolog
push	ecx
mov	eax, [ebp+arg_0]
mov	ecx, [ebp+arg_4]
and	[ebp+var_4], 0
mov	edx, [ebp+arg_8]
cmp	byte ptr [eax+0BBh], 0
push	ebx
push	esi
push	edi
mov	[eax+0C8h], ecx
mov	[ebp+var_10], esp
mov	[eax+0CCh], edx
jnz	short loc_431138
mov	eax, [eax+18h]
test	eax, eax
jz	short loc_431138
mov	esi, [eax]
push	edx
push	ecx
push	eax
call	dword ptr [esi+0Ch]
jmp	short loc_43113A

loc_43112B:
mov	eax, offset loc_431131
retn

loc_431131:
mov	eax, 8007000Eh
jmp	short loc_43113A

loc_431138:
xor	eax, eax

loc_43113A:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	0Ch
sub_4310E7 endp



; Attributes: bp-based frame

sub_43114B proc	near

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

mov	eax, offset loc_447E58
call	__EH_prolog
sub	esp, 0Ch
and	[ebp+var_4], 0
push	ebx
push	esi
mov	esi, [ebp+arg_0]
push	edi
mov	ecx, [esi+18h]
mov	[ebp+var_10], esp
test	ecx, ecx
jnz	short loc_431170
xor	eax, eax
jmp	short loc_4311DB

loc_431170:
cmp	byte ptr [esi+0BBh], 0
mov	eax, [ebp+arg_4]
jz	short loc_4311C7
test	eax, eax
jz	short loc_4311C7
push	dword ptr [esi+0C4h]
push	dword ptr [esi+0C0h]
push	dword ptr [esi+0CCh]
push	dword ptr [esi+0C8h]
push	dword ptr [eax+4]
push	dword ptr [eax]
call	sub_4311EC
mov	ecx, [esi+0D0h]
mov	esi, [esi+18h]
mov	edi, [ecx+20h]
add	edi, eax
mov	eax, [ecx+24h]
lea	ecx, [ebp+var_18]
adc	eax, edx
mov	[ebp+var_18], edi
mov	[ebp+var_14], eax
mov	eax, [esi]
push	ecx
push	esi
call	dword ptr [eax+10h]
jmp	short loc_4311DB

loc_4311C7:
mov	edx, [ecx]
push	eax
push	ecx
call	dword ptr [edx+10h]
jmp	short loc_4311DB

loc_4311D0:
mov	eax, offset loc_4311D6
retn

loc_4311D6:
mov	eax, 8007000Eh

loc_4311DB:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	8
sub_43114B endp



; Attributes: bp-based frame

sub_4311EC proc	near

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
lea	edx, [ebp+arg_8]
lea	ecx, [ebp+arg_10]
call	sub_43123A
lea	edx, [ebp+arg_8]
lea	ecx, [ebp+arg_0]
call	sub_43123A
mov	eax, [ebp+arg_8]
or	eax, [ebp+arg_C]
jnz	short loc_431218
and	[ebp+arg_C], 0
mov	[ebp+arg_8], 1

loc_431218:
push	[ebp+arg_14]
push	[ebp+arg_10]
push	[ebp+arg_4]
push	[ebp+arg_0]
call	__allmul
push	[ebp+arg_C]
push	[ebp+arg_8]
push	edx
push	eax
call	__aulldiv
pop	ebp
retn	18h
sub_4311EC endp




sub_43123A proc	near
push	ebx
push	esi
push	edi
mov	esi, ecx
mov	edi, edx
mov	ebx, 80000000h
mov	edx, [esi+4]
mov	eax, [esi]
test	edx, edx
ja	short loc_431253

loc_43124F:
cmp	eax, ebx
jbe	short loc_43127D

loc_431253:
push	1
pop	ecx
call	__aullshr
mov	[esi], eax
mov	[esi+4], edx
mov	eax, [edi]
mov	edx, [edi+4]
push	1
pop	ecx
call	__aullshr
mov	[edi], eax
mov	[edi+4], edx
mov	edx, [esi+4]
mov	eax, [esi]
test	edx, edx
ja	short loc_431253
jnb	short loc_43124F

loc_43127D:
pop	edi
pop	esi
pop	ebx
retn
sub_43123A endp



; Attributes: bp-based frame

sub_431281 proc	near

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

mov	eax, offset loc_447E64
call	__EH_prolog
push	ecx
mov	eax, [ebp+arg_0]
push	ebx
push	esi
push	edi
mov	eax, [eax+0B4h]
mov	[ebp+var_10], esp
push	[ebp+arg_8]
and	[ebp+var_4], 0
mov	ecx, [eax]
push	[ebp+arg_4]
push	eax
call	dword ptr [ecx+0Ch]
jmp	short loc_4312B8

loc_4312AD:
mov	eax, offset loc_4312B3
retn

loc_4312B3:
mov	eax, 8007000Eh

loc_4312B8:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	0Ch
sub_431281 endp




sub_4312C9 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	ebx
mov	ebx, [esp+4+arg_4]
push	esi
add	ecx, 24h
push	edi
push	ecx
mov	ecx, ebx
call	sub_40312C
mov	esi, [esp+0Ch+arg_0]
xor	edi, edi
cmp	[esi+8], edi
jle	short loc_43130D

loc_4312E6:
test	edi, edi
jle	short loc_4312F3
push	5Ch
mov	ecx, ebx
call	sub_40316A

loc_4312F3:
mov	eax, [esi+0Ch]
mov	ecx, ebx
push	dword ptr [eax+edi*4]
call	sub_4031F2
mov	ecx, [ebx]
call	sub_42A1B3
inc	edi
cmp	edi, [esi+8]
jl	short loc_4312E6

loc_43130D:
pop	edi
pop	esi
pop	ebx
retn	8
sub_4312C9 endp



; Attributes: bp-based frame

sub_431313 proc	near

pvarg= VARIANTARG ptr -1Ch
var_C= dword ptr -0Ch
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

mov	eax, offset loc_447E78
call	__EH_prolog
sub	esp, 10h
push	ebx
push	esi
mov	esi, [ebp+arg_C]
xor	ebx, ebx
mov	word ptr [ebp+pvarg.anonymous_0], bx
mov	word ptr [ebp+pvarg.anonymous_0+2], bx
mov	[esi], bl
mov	eax, [ecx+10h]
lea	edx, [ebp+pvarg]
push	edx
mov	[ebp+var_4], ebx
push	[ebp+arg_4]
mov	eax, [eax]
push	[ebp+arg_0]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+18h]
cmp	eax, ebx
jz	short loc_431351
mov	ebx, eax
jmp	short loc_431384

loc_431351:
cmp	word ptr [ebp+pvarg.anonymous_0], 40h
jnz	short loc_431379
mov	eax, [ebp+arg_8]
mov	ecx, dword ptr [ebp+pvarg.anonymous_0+8]
mov	[eax], ecx
mov	ecx, dword ptr [ebp+pvarg.anonymous_0+0Ch]
cmp	ecx, ebx
mov	[eax+4], ecx
jnz	short loc_431372
cmp	[eax], ebx
jnz	short loc_431372
xor	eax, eax
jmp	short loc_431375

loc_431372:
push	1
pop	eax

loc_431375:
mov	[esi], al
jmp	short loc_431384

loc_431379:
cmp	word ptr [ebp+pvarg.anonymous_0], bx
jz	short loc_431384
mov	ebx, 80004005h

loc_431384:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
mov	ecx, [ebp+var_C]
mov	eax, ebx
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	10h
sub_431313 endp



; Attributes: bp-based frame

sub_4313A2 proc	near

pvarg= VARIANTARG ptr -1Ch
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_447E8C
call	__EH_prolog
sub	esp, 10h
push	ebx
xor	ebx, ebx
push	esi
mov	esi, ecx
mov	word ptr [ebp+pvarg.anonymous_0], bx
mov	word ptr [ebp+pvarg.anonymous_0+2], bx
mov	eax, [esi+10h]
lea	edx, [ebp+pvarg]
push	edx
push	7
mov	eax, [eax]
push	dword ptr [esi+84h]
mov	[ebp+var_4], ebx
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+18h]
cmp	eax, ebx
jz	short loc_4313DF
mov	ebx, eax
jmp	short loc_431404

loc_4313DF:
cmp	word ptr [ebp+pvarg.anonymous_0], bx
setnz	al
cmp	al, bl
mov	[esi+90h], al
jz	short loc_431404
lea	ecx, [ebp+pvarg]
call	sub_42D2C6
mov	[esi+88h], eax
mov	[esi+8Ch], edx

loc_431404:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
mov	ecx, [ebp+var_C]
mov	eax, ebx
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_4313A2 endp



; Attributes: bp-based frame

sub_431420 proc	near

var_A8=	byte ptr -0A8h
var_90=	byte ptr -90h
var_80=	dword ptr -80h
pvarg= VARIANTARG ptr -70h
var_60=	dword ptr -60h
Memory=	dword ptr -54h
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
lpFileName= dword ptr -30h
var_24=	dword ptr -24h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_447FE3
call	__EH_prolog
sub	esp, 9Ch
push	ebx
push	esi
mov	esi, [ebp+arg_0]
push	edi
xor	ebx, ebx
mov	[ebp+var_10], esp
mov	eax, [esi+0A0h]
lea	edi, [esi+0A0h]
cmp	eax, ebx
mov	[ebp+var_4], ebx
jz	short loc_431456
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
mov	[edi], ebx

loc_431456:
mov	eax, [ebp+arg_8]
lea	edi, [esi+98h]
mov	[eax], ebx
mov	eax, [edi]
cmp	eax, ebx
jz	short loc_43146F
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
mov	[edi], ebx

loc_43146F:
mov	eax, [ebp+arg_4]
mov	[esi+88h], ebx
push	3
lea	ecx, [ebp+var_48]
mov	[esi+5Dh], bl
mov	[esi+58h], bl
mov	[esi+8Ch], ebx
mov	[esi+90h], bl
mov	[esi+84h], eax
mov	[ebp+var_48], ebx
mov	[ebp+var_44], ebx
mov	[ebp+var_40], ebx
call	sub_403396
mov	ecx, [esi+10h]
lea	eax, [ebp+var_48]
push	eax
mov	byte ptr [ebp+var_4], 1
push	[ebp+arg_4]
mov	edi, [ecx]
call	sub_435829
cmp	eax, ebx
jz	short loc_4314C3

loc_4314BC:
mov	ebx, eax
jmp	loc_431F45

loc_4314C3:
mov	edx, [ebp+arg_4]
lea	eax, [esi+80h]
push	eax
mov	ecx, edi
call	sub_43581B
cmp	eax, ebx
jnz	short loc_4314BC
lea	eax, [ebp+var_48]
lea	ecx, [esi+44h]
push	eax
call	sub_40312C
mov	word ptr [ebp+pvarg.anonymous_0], bx
mov	word ptr [ebp+pvarg.anonymous_0+2], bx
mov	eax, [edi]
lea	ecx, [ebp+pvarg]
push	ecx
push	1Dh
push	[ebp+arg_4]
mov	byte ptr [ebp+var_4], 2
push	edi
call	dword ptr [eax+18h]
cmp	eax, ebx
mov	[ebp+arg_0], eax
jz	short loc_43151A
lea	ecx, [ebp+pvarg] ; pvarg
mov	byte ptr [ebp+var_4], 1
call	sub_42CDE1
mov	esi, [ebp+arg_0]
jmp	loc_431CF8

loc_43151A:
cmp	word ptr [ebp+pvarg.anonymous_0], bx
jz	short loc_431548
cmp	word ptr [ebp+pvarg.anonymous_0], 15h
jz	short loc_431538
lea	ecx, [ebp+pvarg] ; pvarg
mov	byte ptr [ebp+var_4], 1
call	sub_42CDE1
jmp	loc_431CF3

loc_431538:
mov	eax, dword ptr [ebp+pvarg.anonymous_0+8]
mov	byte ptr [esi+58h], 1
mov	[esi+50h], eax
mov	eax, dword ptr [ebp+pvarg.anonymous_0+0Ch]
mov	[esi+54h], eax

loc_431548:		; pvarg
lea	ecx, [ebp+pvarg]
mov	byte ptr [ebp+var_4], 1
call	sub_42CDE1
mov	edx, [ebp+arg_4]
lea	eax, [esi+5Dh]
push	eax
push	0Fh
mov	ecx, edi
call	sub_4357A7
cmp	eax, ebx
jnz	loc_4314BC
mov	ecx, esi
call	sub_4313A2
cmp	eax, ebx
jnz	loc_4314BC
mov	ecx, [esi+14h]
cmp	ecx, ebx
jz	short loc_43159D
cmp	[esi+80h], bl
setz	al
push	eax
lea	eax, [ebp+var_48]
push	eax
call	sub_42920C
cmp	al, bl
jz	loc_431F45

loc_43159D:
cmp	[ebp+arg_C], ebx
jnz	loc_431FCB
cmp	[esi+0B9h], bl
jnz	loc_431FCB
cmp	[esi+0B8h], bl
jz	short loc_4315E9
push	8		; Size
call	sub_4284B1
cmp	eax, ebx
pop	ecx
jz	short loc_4315D3
mov	[eax+4], ebx
mov	dword ptr [eax], offset	off_44C58C
mov	esi, eax
jmp	short loc_4315D5

loc_4315D3:
xor	esi, esi

loc_4315D5:
cmp	esi, ebx
jz	short loc_4315DF
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]

loc_4315DF:
mov	eax, [ebp+arg_8]
mov	[eax], esi
jmp	loc_431F45

loc_4315E9:
mov	word ptr [ebp+pvarg.anonymous_0], bx
mov	word ptr [ebp+pvarg.anonymous_0+2], bx
mov	eax, [edi]
lea	ecx, [ebp+pvarg]
push	ecx
push	9
push	[ebp+arg_4]
mov	byte ptr [ebp+var_4], 3
push	edi
call	dword ptr [eax+18h]
mov	edi, eax
cmp	edi, ebx
jz	short loc_43161B
lea	ecx, [ebp+pvarg] ; pvarg
mov	byte ptr [ebp+var_4], 1
call	sub_42CDE1
jmp	loc_431FBB

loc_43161B:
cmp	word ptr [ebp+pvarg.anonymous_0], 13h
jnz	short loc_43162E
mov	eax, dword ptr [ebp+pvarg.anonymous_0+8]
mov	byte ptr [esi+7Fh], 1
mov	[esi+78h], eax
jmp	short loc_43163B

loc_43162E:
cmp	word ptr [ebp+pvarg.anonymous_0], bx
jnz	loc_431FAA
mov	[esi+7Fh], bl

loc_43163B:		; pvarg
lea	ecx, [ebp+pvarg]
mov	byte ptr [ebp+var_4], 1
call	sub_42CDE1
mov	edi, [ebp+arg_4]
lea	eax, [esi+7Ch]
push	eax
lea	eax, [esi+60h]
push	eax
push	0Ah
push	edi
mov	ecx, esi
call	sub_431313
cmp	eax, ebx
jnz	loc_4314BC
lea	eax, [esi+7Dh]
mov	ecx, esi
push	eax
lea	eax, [esi+68h]
push	eax
push	0Bh
push	edi
call	sub_431313
cmp	eax, ebx
jnz	loc_4314BC
lea	eax, [esi+7Eh]
mov	ecx, esi
push	eax
lea	eax, [esi+70h]
push	eax
push	0Ch
push	edi
call	sub_431313
cmp	eax, ebx
jnz	loc_4314BC
mov	eax, [esi+10h]
mov	byte ptr [ebp+arg_0+3],	bl
lea	ecx, [ebp+arg_0+3]
mov	edx, edi
mov	eax, [eax]
push	ecx
push	15h
mov	ecx, eax
call	sub_4357A7
cmp	eax, ebx
jnz	loc_4314BC
lea	ecx, [ebp+var_24]
call	sub_40337B
mov	edi, offset off_44B510
mov	[ebp+var_24], edi
lea	edx, [ebp+var_24]
lea	ecx, [ebp+var_48]
mov	byte ptr [ebp+var_4], 4
call	sub_428DBB
mov	ecx, [ebp+var_1C]
cmp	ecx, ebx
jnz	short loc_4316E9
mov	[ebp+var_24], edi
mov	byte ptr [ebp+var_4], 5
jmp	loc_4319C2

loc_4316E9:
mov	eax, [esi+30h]
mov	[ebp+arg_4], ebx
dec	eax
jz	short loc_4316FB
dec	eax
jnz	short loc_43174F
dec	ecx
mov	[ebp+arg_4], ecx
jmp	short loc_43174F

loc_4316FB:
mov	eax, [esi+0ACh]
cmp	ecx, eax
mov	[ebp+arg_4], eax
jg	short loc_431714
mov	[ebp+var_24], edi
mov	byte ptr [ebp+var_4], 6
jmp	loc_4319C2

loc_431714:
xor	edi, edi

loc_431716:
cmp	edi, [ebp+arg_4]
jge	short loc_43174A
mov	eax, [ebp+var_18]
mov	ecx, [esi+0B0h]
mov	eax, [eax+edi*4]
mov	ecx, [ecx+edi*4]
mov	edx, [eax]
mov	ecx, [ecx]
call	sub_4282B1
cmp	eax, ebx
jz	short loc_431747
mov	[ebp+var_24], offset off_44B510
mov	byte ptr [ebp+var_4], 7
jmp	loc_4319C2

loc_431747:
inc	edi
jmp	short loc_431716

loc_43174A:
mov	edi, offset off_44B510

loc_43174F:
push	[ebp+arg_4]
lea	ecx, [ebp+var_24]
push	ebx
call	sub_4032FB
lea	ecx, [ebp+var_24]
call	sub_433BA9
lea	edx, [ebp+var_24]
lea	ecx, [ebp+var_3C]
call	sub_433F2C
cmp	byte ptr [ebp+arg_0+3],	bl
mov	byte ptr [ebp+var_4], 8
jnz	loc_431822
cmp	[esi+80h], bl
jnz	short loc_431794
cmp	[ebp+var_1C], ebx
jz	loc_431822
lea	ecx, [ebp+var_24]
call	sub_42832F

loc_431794:
cmp	[ebp+var_1C], ebx
jz	loc_431822
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], ebx
mov	[ebp+var_50], ebx
mov	[ebp+var_4C], ebx
call	sub_403396
lea	eax, [ebp+Memory]
mov	ecx, esi
push	eax
lea	eax, [ebp+var_24]
push	eax
mov	byte ptr [ebp+var_4], 9
call	sub_4312C9
cmp	[esi+80h], bl
jz	short loc_431815
cmp	[esi+5Ch], bl
jz	short loc_4317DA
cmp	[esi+7Eh], bl
jz	short loc_4317DA
lea	eax, [esi+70h]
jmp	short loc_4317E9

loc_4317DA:
mov	eax, [esi+10h]
cmp	[eax+2Ch], bl
jz	short loc_4317E7
add	eax, 24h
jmp	short loc_4317E9

loc_4317E7:
xor	eax, eax

loc_4317E9:
cmp	[esi+5Bh], bl
jz	short loc_4317F8
cmp	[esi+7Dh], bl
jz	short loc_4317F8
lea	ecx, [esi+68h]
jmp	short loc_4317FA

loc_4317F8:
xor	ecx, ecx

loc_4317FA:
cmp	[esi+5Ah], bl
jz	short loc_431809
cmp	[esi+7Ch], bl
jz	short loc_431809
lea	edx, [esi+60h]
jmp	short loc_43180B

loc_431809:
xor	edx, edx

loc_43180B:		; lpLastWriteTime
push	eax
push	ecx		; lpLastAccessTime
mov	ecx, [ebp+Memory]
call	sub_429DB7

loc_431815:		; Memory
push	[ebp+Memory]
mov	byte ptr [ebp+var_4], 8
call	sub_4284D8
pop	ecx

loc_431822:
lea	eax, [ebp+var_3C]
lea	edx, [esi+24h]
push	eax
lea	ecx, [ebp+lpFileName]
call	sub_40356A
cmp	[esi+80h], bl
mov	byte ptr [ebp+var_4], 0Ah
jz	short loc_431875
add	esi, 38h
lea	eax, [ebp+lpFileName]
push	eax
mov	ecx, esi
call	sub_40312C
cmp	byte ptr [ebp+arg_0+3],	bl
jz	short loc_431857
mov	ecx, [esi]
call	sub_42A00C

loc_431857:		; Memory
push	[ebp+lpFileName]
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
pop	ecx
mov	[ebp+var_24], edi
pop	ecx
mov	byte ptr [ebp+var_4], 0Bh
jmp	loc_431A7F

loc_431875:
cmp	[esi+58h], bl
jnz	loc_431D1E
lea	ecx, [ebp+var_80]
call	sub_403079
push	[ebp+lpFileName] ; lpFileName
lea	ecx, [ebp+var_A8]
mov	byte ptr [ebp+var_4], 0Ch
call	sub_42B49E
cmp	al, bl
jz	loc_431D11
mov	eax, [esi+34h]
sub	eax, ebx
jz	short loc_4318EA
dec	eax
dec	eax
jnz	loc_431AA4
push	[ebp+var_80]	; Memory
call	sub_4284D8
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
add	esp, 0Ch
mov	[ebp+var_24], edi
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 0Dh
call	sub_428327
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
jmp	loc_43205D

loc_4318EA:
lea	edx, [ebp+arg_4]
lea	edi, [esi+88h]
push	edx
mov	dl, [esi+90h]
neg	dl
sbb	edx, edx
mov	eax, [esi+18h]
and	edx, edi
lea	edi, [esi+70h]
push	edx
mov	dl, [esi+7Eh]
neg	dl
sbb	edx, edx
mov	ecx, [eax]
and	edx, edi
push	edx
lea	edx, [ebp+var_A8]
push	[ebp+var_48]
push	edx
lea	edx, [ebp+var_90]
push	edx
push	[ebp+lpFileName]
push	eax
call	dword ptr [ecx+14h]
mov	edi, eax
cmp	edi, ebx
jz	short loc_431972
push	[ebp+var_80]	; Memory
call	sub_4284D8
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
add	esp, 0Ch
mov	[ebp+var_24], offset off_44B510
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 0Eh
call	sub_428327
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
mov	ebx, edi
jmp	loc_431F45

loc_431972:
mov	eax, [ebp+arg_4]
sub	eax, ebx
jz	loc_431A9F
dec	eax
jz	loc_431A98
dec	eax
jz	loc_431A59
dec	eax
jz	loc_431A2A
dec	eax
jz	loc_431A21
push	[ebp+var_80]	; Memory
dec	eax
jz	short loc_4319E0
call	sub_4284D8
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
add	esp, 0Ch
mov	[ebp+var_24], offset off_44B510
mov	byte ptr [ebp+var_4], 12h

loc_4319C2:
lea	ecx, [ebp+var_24]
call	sub_428327
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
mov	ebx, 80004005h
jmp	loc_431F45

loc_4319E0:
call	sub_4284D8
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
add	esp, 0Ch
mov	[ebp+var_24], offset off_44B510
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 0Fh
call	sub_428327
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
mov	ebx, 80004004h
jmp	loc_431F45

loc_431A21:
mov	dword ptr [esi+34h], 3
jmp	short loc_431A9F

loc_431A2A:		; Memory
push	[ebp+var_80]
mov	dword ptr [esi+34h], 2
call	sub_4284D8
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
add	esp, 0Ch
mov	[ebp+var_24], offset off_44B510
mov	byte ptr [ebp+var_4], 11h
jmp	short loc_431A7F

loc_431A59:		; Memory
push	[ebp+var_80]
call	sub_4284D8
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
add	esp, 0Ch
mov	[ebp+var_24], offset off_44B510
mov	byte ptr [ebp+var_4], 10h

loc_431A7F:
lea	ecx, [ebp+var_24]
call	sub_428327
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
jmp	loc_431F45

loc_431A98:
mov	dword ptr [esi+34h], 1

loc_431A9F:
mov	edi, offset off_44B510

loc_431AA4:
mov	eax, [esi+34h]
cmp	eax, 3
jnz	loc_431B5A
lea	ecx, [ebp+lpFileName]
call	sub_4305D0
cmp	al, bl
jnz	loc_431D11
push	off_45C874
lea	ecx, [ebp+var_60]
call	sub_403091
lea	ecx, [ebp+lpFileName]
mov	edx, eax
push	ecx
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 13h
call	sub_40356A
push	[ebp+var_60]	; Memory
mov	byte ptr [ebp+var_4], 15h
call	sub_4284D8
mov	esi, [esi+18h]
pop	ecx
push	[ebp+Memory]
mov	eax, [esi]
push	esi
call	dword ptr [eax+1Ch]
push	[ebp+Memory]	; Memory
mov	esi, eax
cmp	esi, ebx
jz	short loc_431B2E
call	sub_4284D8
push	[ebp+var_80]	; Memory
call	sub_4284D8
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
add	esp, 10h
mov	[ebp+var_24], edi
mov	byte ptr [ebp+var_4], 16h
jmp	loc_431C9A

loc_431B2E:
call	sub_4284D8
push	[ebp+var_80]	; Memory
call	sub_4284D8
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
add	esp, 10h
mov	[ebp+var_24], edi
mov	byte ptr [ebp+var_4], 17h
jmp	loc_431CDF

loc_431B5A:
cmp	eax, 4
jnz	loc_431D4B
lea	eax, [ebp+lpFileName]
lea	ecx, [ebp+Memory]
push	eax
call	sub_4030F2
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 18h
call	sub_4305D0
cmp	al, bl
jnz	loc_431C16
mov	edx, off_45C874
lea	eax, [ebp+lpFileName]
push	eax
lea	ecx, [ebp+var_60]
call	sub_422192
mov	esi, [esi+18h]
push	[ebp+var_60]
mov	byte ptr [ebp+var_4], 19h
mov	eax, [esi]
push	esi
call	dword ptr [eax+1Ch]
push	[ebp+var_60]	; Memory
mov	esi, eax
cmp	esi, ebx
jz	short loc_431BE2
call	sub_4284D8
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_80]	; Memory
call	sub_4284D8
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
add	esp, 14h
mov	[ebp+var_24], edi
mov	byte ptr [ebp+var_4], 1Ah
jmp	loc_431C9A

loc_431BE2:
call	sub_4284D8
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_80]	; Memory
call	sub_4284D8
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
add	esp, 14h
mov	[ebp+var_24], edi
mov	byte ptr [ebp+var_4], 1Bh
jmp	loc_431CDF

loc_431C16:
mov	edx, [ebp+Memory]
mov	ecx, [ebp+lpFileName]
call	sub_42A0AB
cmp	al, bl
jnz	loc_431D08
push	off_45C878
lea	ecx, [ebp+pvarg.anonymous_0+4]
call	sub_403091
lea	ecx, [ebp+lpFileName]
mov	edx, eax
push	ecx
lea	ecx, [ebp+var_60]
mov	byte ptr [ebp+var_4], 1Ch
call	sub_40356A
push	dword ptr [ebp+pvarg.anonymous_0+4] ; Memory
mov	byte ptr [ebp+var_4], 1Eh
call	sub_4284D8
mov	esi, [esi+18h]
pop	ecx
push	[ebp+var_60]
mov	eax, [esi]
push	esi
call	dword ptr [eax+1Ch]
push	[ebp+var_60]	; Memory
mov	esi, eax
cmp	esi, ebx
jz	short loc_431CB0
call	sub_4284D8
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_80]	; Memory
call	sub_4284D8
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
add	esp, 14h
mov	[ebp+var_24], edi
mov	byte ptr [ebp+var_4], 1Fh

loc_431C9A:
lea	ecx, [ebp+var_24]
call	sub_428327
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
jmp	short loc_431CF8

loc_431CB0:
call	sub_4284D8
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_80]	; Memory
call	sub_4284D8
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
add	esp, 14h
mov	[ebp+var_24], edi
mov	byte ptr [ebp+var_4], 20h

loc_431CDF:
lea	ecx, [ebp+var_24]
call	sub_428327
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE

loc_431CF3:
mov	esi, 80004005h

loc_431CF8:		; Memory
push	[ebp+var_48]
call	sub_4284D8
pop	ecx
mov	eax, esi
jmp	loc_432075

loc_431D08:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx

loc_431D11:		; Memory
push	[ebp+var_80]
mov	byte ptr [ebp+var_4], 0Ah
call	sub_4284D8
pop	ecx

loc_431D1E:
cmp	byte ptr [ebp+arg_0+3],	bl
jnz	loc_431F6F
push	20h		; Size
call	sub_4284B1
cmp	eax, ebx
pop	ecx
jz	loc_431E07
mov	[eax+4], ebx
or	dword ptr [eax+8], 0FFFFFFFFh
mov	dword ptr [eax], offset	off_44C570
mov	edi, eax
jmp	loc_431E09

loc_431D4B:
mov	ecx, [ebp+lpFileName]
call	sub_42A481
cmp	al, bl
jnz	short loc_431D11
push	off_45C87C
lea	ecx, [ebp+pvarg.anonymous_0+4]
call	sub_403091
lea	ecx, [ebp+lpFileName]
mov	edx, eax
push	ecx
lea	ecx, [ebp+var_60]
mov	byte ptr [ebp+var_4], 21h
call	sub_40356A
push	dword ptr [ebp+pvarg.anonymous_0+4] ; Memory
mov	byte ptr [ebp+var_4], 23h
call	sub_4284D8
mov	esi, [esi+18h]
pop	ecx
push	[ebp+var_60]
mov	eax, [esi]
push	esi
call	dword ptr [eax+1Ch]
push	[ebp+var_60]	; Memory
mov	esi, eax
cmp	esi, ebx
jz	short loc_431DDB
call	sub_4284D8
push	[ebp+var_80]	; Memory
call	sub_4284D8
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
add	esp, 10h
mov	[ebp+var_24], edi
mov	byte ptr [ebp+var_4], 24h

loc_431DC0:
lea	ecx, [ebp+var_24]
call	sub_428327
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
mov	ebx, esi
jmp	loc_431F45

loc_431DDB:
call	sub_4284D8
push	[ebp+var_80]	; Memory
call	sub_4284D8
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
add	esp, 10h
mov	[ebp+var_24], edi
mov	byte ptr [ebp+var_4], 25h
jmp	loc_431A7F

loc_431E07:
xor	edi, edi

loc_431E09:
cmp	edi, ebx
mov	[esi+94h], edi
mov	[ebp+arg_C], edi
jz	short loc_431E1C
mov	eax, [edi]
push	edi
call	dword ptr [eax+4]

loc_431E1C:
mov	dl, [esi+58h]
mov	ecx, [ebp+lpFileName]
neg	dl
mov	eax, [esi+94h]
mov	byte ptr [ebp+var_4], 26h
sbb	edx, edx
and	edx, 2
mov	[eax+18h], ebx
inc	edx
mov	[eax+1Ch], ebx
inc	edx
push	edx		; dwCreationDisposition
push	ecx		; lpFileName
lea	ecx, [eax+8]
call	sub_42C204
cmp	al, bl
jnz	loc_431EE3
lea	eax, [ebp+lpFileName]
mov	edx, offset aCanNotOpenOutp ; "can not open output file	"
push	eax
lea	ecx, [ebp+var_60]
call	sub_422192
mov	esi, [esi+18h]
push	[ebp+var_60]
mov	byte ptr [ebp+var_4], 27h
mov	eax, [esi]
push	esi
call	dword ptr [eax+1Ch]
push	[ebp+var_60]	; Memory
mov	esi, eax
cmp	esi, ebx
jz	short loc_431EAD
call	sub_4284D8
cmp	edi, ebx
pop	ecx
mov	byte ptr [ebp+var_4], 0Ah
jz	short loc_431E8B
mov	eax, [edi]
push	edi
call	dword ptr [eax+8]

loc_431E8B:		; Memory
push	[ebp+lpFileName]
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
pop	ecx
mov	[ebp+var_24], offset off_44B510
pop	ecx
mov	byte ptr [ebp+var_4], 28h
jmp	loc_431DC0

loc_431EAD:
call	sub_4284D8
cmp	edi, ebx
pop	ecx
mov	byte ptr [ebp+var_4], 0Ah
jz	short loc_431EC1
mov	eax, [edi]
push	edi
call	dword ptr [eax+8]

loc_431EC1:		; Memory
push	[ebp+lpFileName]
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
pop	ecx
mov	[ebp+var_24], offset off_44B510
pop	ecx
mov	byte ptr [ebp+var_4], 29h
jmp	loc_431A7F

loc_431EE3:
cmp	[esi+58h], bl
jz	short loc_431F55
mov	eax, [esi+94h]
push	ebx
push	ebx
push	dword ptr [esi+54h]
mov	ecx, [eax]
push	dword ptr [esi+50h]
push	eax
call	dword ptr [ecx+10h]
cmp	eax, ebx
mov	[ebp+arg_4], eax
jz	short loc_431F55
cmp	edi, ebx
mov	byte ptr [ebp+var_4], 0Ah
jz	short loc_431F11
mov	eax, [edi]
push	edi
call	dword ptr [eax+8]

loc_431F11:		; Memory
push	[ebp+lpFileName]
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
pop	ecx
mov	[ebp+var_24], offset off_44B510
pop	ecx
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 2Ah
call	sub_428327
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
mov	ebx, [ebp+arg_4]

loc_431F45:		; Memory
push	[ebp+var_48]
call	sub_4284D8
pop	ecx
mov	eax, ebx
jmp	loc_432075

loc_431F55:
push	edi
lea	ecx, [esi+98h]
call	sub_43D0DB
mov	eax, [ebp+arg_8]
mov	byte ptr [ebp+var_4], 0Ah
mov	[eax], edi
mov	edi, offset off_44B510

loc_431F6F:
lea	eax, [ebp+lpFileName]
lea	ecx, [esi+38h]
push	eax
call	sub_40312C
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
pop	ecx
mov	[ebp+var_24], edi
pop	ecx
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 2Bh
call	sub_428327
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
jmp	short loc_431FD0

loc_431FAA:		; pvarg
lea	ecx, [ebp+pvarg]
mov	byte ptr [ebp+var_4], 1
call	sub_42CDE1
mov	edi, 80004005h

loc_431FBB:		; Memory
push	[ebp+var_48]
call	sub_4284D8
pop	ecx
mov	eax, edi
jmp	loc_432075

loc_431FCB:
mov	eax, [ebp+arg_8]
mov	[eax], ebx

loc_431FD0:
cmp	[esi+0BAh], bl
jz	loc_43205D
push	20h		; Size
call	sub_4284B1
cmp	eax, ebx
pop	ecx
jz	short loc_431FF6
mov	[eax+4], ebx
mov	[eax+8], ebx
mov	dword ptr [eax], offset	off_44C560
jmp	short loc_431FF8

loc_431FF6:
xor	eax, eax

loc_431FF8:
push	eax
lea	ecx, [esi+0A0h]
mov	[esi+9Ch], eax
call	sub_43D0DB
mov	edi, [esi+9Ch]
cmp	edi, ebx
mov	[ebp+arg_4], edi
jz	short loc_43201D
mov	eax, [edi]
push	edi
call	dword ptr [eax+4]

loc_43201D:
mov	eax, [ebp+arg_8]
mov	byte ptr [ebp+var_4], 2Ch
mov	ecx, [eax]
mov	eax, [esi+9Ch]
push	ecx
lea	ecx, [eax+8]
call	sub_43D0DB
mov	eax, [ebp+arg_8]
mov	eax, [eax]
cmp	eax, ebx
jz	short loc_432044
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_432044:
mov	eax, [ebp+arg_8]
mov	[eax], edi
mov	esi, [esi+9Ch]
or	dword ptr [esi+18h], 0FFFFFFFFh
mov	[esi+10h], ebx
mov	[esi+14h], ebx
mov	byte ptr [esi+1Ch], 1

loc_43205D:		; Memory
push	[ebp+var_48]
call	sub_4284D8
pop	ecx
xor	eax, eax
jmp	short loc_432075

loc_43206A:
mov	eax, offset loc_432070
retn

loc_432070:
mov	eax, 8007000Eh

loc_432075:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	10h
sub_431420 endp



; Attributes: bp-based frame

; int __stdcall	sub_432086(int,	void *Buf1, int)
sub_432086 proc	near

arg_0= dword ptr  8
Buf1= dword ptr	 0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
push	10h		; Size
push	offset unk_44CCB8 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jz	short loc_4320B5
push	10h		; Size
push	offset unk_44B7D0 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_4320C7

loc_4320B5:
mov	ecx, [ebp+arg_8]
mov	eax, [ebp+arg_0]
push	eax
mov	[ecx], eax
mov	ecx, [eax]
call	dword ptr [ecx+4]
xor	eax, eax
jmp	short loc_4320CC

loc_4320C7:
mov	eax, 80004002h

loc_4320CC:
pop	ebp
retn	0Ch
sub_432086 endp




sub_4320D0 proc	near

arg_0= dword ptr  4

mov	ecx, [esp+arg_0]
dec	dword ptr [ecx+4]
mov	eax, [ecx+4]
jnz	short locret_4320E9
test	ecx, ecx
jz	short ?_Get_deleter@_Ref_count_base@std@@UBEPAXABVtype_info@@@Z_5 ; std::_Ref_count_base::_Get_deleter(type_info const &)
mov	eax, [ecx]
push	1
call	dword ptr [eax+18h]
sub_4320D0 endp	; sp-analysis failed

; [00000005 BYTES: COLLAPSED FUNCTION std::_Ref_count_base::_Get_deleter(type_info const &). PRESS KEYPAD CTRL-"+" TO EXPAND]



; int __thiscall sub_4320EC(void *Memory, char)
sub_4320EC proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_432108
test	[esp+4+arg_0], 1
jz	short loc_432102
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_432102:
mov	eax, esi
pop	esi
retn	4
sub_4320EC endp




sub_432108 proc	near
mov	dword ptr [ecx], offset	off_44C570
add	ecx, 8
jmp	sub_42BD78
sub_432108 endp




; int __stdcall	sub_432116(int,	void *Buf1, int)
sub_432116 proc	near

arg_0= dword ptr  4
Buf1= dword ptr	 8
arg_8= dword ptr  0Ch

push	10h		; Size
push	offset unk_44CCB8 ; Buf2
push	[esp+8+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_432141
mov	ecx, [esp+arg_8]
mov	eax, [esp+arg_0]
push	eax
mov	[ecx], eax
mov	ecx, [eax]
call	dword ptr [ecx+4]
xor	eax, eax
jmp	short locret_432146

loc_432141:
mov	eax, 80004002h

locret_432146:
retn	0Ch
sub_432116 endp




sub_432149 proc	near

arg_0= dword ptr  4

mov	ecx, [esp+arg_0]
dec	dword ptr [ecx+4]
mov	eax, [ecx+4]
jnz	short locret_432162
test	ecx, ecx
jz	short ?_Get_deleter@_Ref_count_base@std@@UBEPAXABVtype_info@@@Z_6 ; std::_Ref_count_base::_Get_deleter(type_info const &)
mov	eax, [ecx]
push	1
call	dword ptr [eax+10h]
sub_432149 endp	; sp-analysis failed

; [00000005 BYTES: COLLAPSED FUNCTION std::_Ref_count_base::_Get_deleter(type_info const &). PRESS KEYPAD CTRL-"+" TO EXPAND]
; [0000001D BYTES: COLLAPSED FUNCTION unknown_libname_4. PRESS KEYPAD CTRL-"+" TO EXPAND]



; int __stdcall	sub_432182(void	*Memory)
sub_432182 proc	near

Memory=	dword ptr  4

push	esi
mov	esi, [esp+4+Memory]
dec	dword ptr [esi+4]
mov	eax, [esi+4]
jnz	short loc_4321A3
test	esi, esi
jz	short loc_4321A1
mov	ecx, esi
call	sub_4321A7
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_4321A1:
xor	eax, eax

loc_4321A3:
pop	esi
retn	4
sub_432182 endp




sub_4321A7 proc	near
mov	eax, [ecx+8]
test	eax, eax
jz	short locret_4321B4
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

locret_4321B4:
retn
sub_4321A7 endp



; Attributes: bp-based frame

sub_4321B5 proc	near

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

mov	eax, offset loc_447FF0
call	__EH_prolog
push	ecx
mov	eax, [ebp+arg_0]
push	ebx
push	esi
xor	ecx, ecx
cmp	[ebp+arg_4], ecx
push	edi
mov	[ebp+var_10], esp
mov	[ebp+var_4], ecx
mov	[eax+59h], cl
jnz	short loc_4321EB
cmp	[eax+0B9h], cl
jz	short loc_4321E7
mov	[ebp+arg_4], 1
jmp	short loc_4321EB

loc_4321E7:
mov	byte ptr [eax+59h], 1

loc_4321EB:
mov	bl, [eax+58h]
mov	esi, [eax+44h]
mov	ecx, [eax+18h]
lea	edi, [eax+50h]
neg	bl
mov	al, [eax+80h]
mov	edx, [ecx]
sbb	ebx, ebx
and	ebx, edi
push	ebx
push	[ebp+arg_4]
push	eax
push	esi
push	ecx
call	dword ptr [edx+18h]
jmp	short loc_43221C

loc_432211:
mov	eax, offset loc_432217
retn

loc_432217:
mov	eax, 8007000Eh

loc_43221C:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	8
sub_4321B5 endp



; Attributes: bp-based frame

; int __stdcall	sub_43222D(FILETIME *lpLastWriteTime, int)
sub_43222D proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
lpLastWriteTime= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_447FFC
call	__EH_prolog
push	ecx
push	ebx
push	esi
xor	ebx, ebx
push	edi
cmp	[ebp+arg_4], ebx
mov	[ebp+var_10], esp
mov	[ebp+var_4], ebx
jl	loc_4323BD
cmp	[ebp+arg_4], 3
jg	loc_4323BD
mov	esi, [ebp+lpLastWriteTime]
cmp	[esi+0A0h], ebx
jz	short loc_4322A1
mov	eax, [esi+9Ch]
mov	ecx, [eax+18h]
not	ecx
add	[esi+0F0h], ecx
mov	ecx, [eax+10h]
mov	eax, [eax+14h]
mov	[esi+88h], ecx
mov	[esi+8Ch], eax
mov	byte ptr [esi+90h], 1
mov	eax, [esi+0A0h]
cmp	eax, ebx
jz	short loc_4322A1
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
mov	[esi+0A0h], ebx

loc_4322A1:
cmp	[esi+98h], ebx
jz	loc_432348
cmp	[esi+5Ch], bl
jz	short loc_4322BF
cmp	[esi+7Eh], bl
jz	short loc_4322BF
lea	eax, [esi+70h]

loc_4322BA:
mov	[ebp+lpLastWriteTime], eax
jmp	short loc_4322CF

loc_4322BF:
mov	eax, [esi+10h]
cmp	[eax+2Ch], bl
jz	short loc_4322CC
add	eax, 24h
jmp	short loc_4322BA

loc_4322CC:
mov	[ebp+lpLastWriteTime], ebx

loc_4322CF:
cmp	[esi+5Bh], bl
jz	short loc_4322DE
cmp	[esi+7Dh], bl
jz	short loc_4322DE
lea	edx, [esi+68h]
jmp	short loc_4322E0

loc_4322DE:
xor	edx, edx

loc_4322E0:
cmp	[esi+5Ah], bl
jz	short loc_4322EF
cmp	[esi+7Ch], bl
jz	short loc_4322EF
lea	ecx, [esi+60h]
jmp	short loc_4322F1

loc_4322EF:
xor	ecx, ecx

loc_4322F1:		; lpLastWriteTime
push	[ebp+lpLastWriteTime]
mov	eax, [esi+94h]
lea	edi, [esi+94h]
push	edx		; lpLastAccessTime
push	ecx		; lpCreationTime
lea	ecx, [eax+8]
call	sub_42C232
mov	ecx, [edi]
mov	eax, [ecx+18h]
mov	[esi+88h], eax
mov	eax, [ecx+1Ch]
mov	[esi+8Ch], eax
mov	byte ptr [esi+90h], 1
call	sub_430C66
cmp	eax, ebx
jnz	loc_4323DD
mov	eax, [esi+98h]
cmp	eax, ebx
jz	short loc_432348
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
mov	[esi+98h], ebx

loc_432348:
cmp	[esi+90h], bl
lea	edi, [esi+90h]
jnz	short loc_432361
mov	ecx, esi
call	sub_4313A2
cmp	[edi], bl
jz	short loc_43237C

loc_432361:
mov	ecx, [esi+88h]
mov	edx, [esi+8Ch]
add	[esi+0E8h], ecx
lea	eax, [esi+0E8h]
adc	[eax+4], edx

loc_43237C:
cmp	[esi+80h], bl
lea	eax, [esi+0D8h]
jnz	short loc_432390
lea	eax, [esi+0E0h]

loc_432390:
add	dword ptr [eax], 1
adc	[eax+4], ebx
cmp	[esi+59h], bl
jz	short loc_4323AB
cmp	[esi+7Fh], bl
jz	short loc_4323AB
mov	ecx, [esi+38h]
mov	edx, [esi+78h]
call	sub_429F11

loc_4323AB:
mov	dl, [esi+5Dh]
mov	eax, [esi+18h]
push	edx
push	[ebp+arg_4]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+20h]
jmp	short loc_4323DD

loc_4323BD:
mov	eax, [ebp+lpLastWriteTime]
lea	esi, [eax+98h]
mov	eax, [eax+98h]
cmp	eax, ebx
jz	short loc_4323D8
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
mov	[esi], ebx

loc_4323D8:
mov	eax, 80004005h

loc_4323DD:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	8
sub_43222D endp




sub_4323EE proc	near
mov	eax, offset loc_4323F4
retn

loc_4323F4:
mov	eax, 8007000Eh
jmp	short loc_4323DD
sub_4323EE endp	; sp-analysis failed



; Attributes: bp-based frame

sub_4323FB proc	near

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

mov	eax, offset loc_448008
call	__EH_prolog
push	ecx
mov	eax, [ebp+arg_0]
and	[ebp+var_4], 0
push	ebx
push	esi
cmp	dword ptr [eax+1Ch], 0
lea	esi, [eax+1Ch]
push	edi
mov	[ebp+var_10], esp
jnz	short loc_43242E
mov	eax, [eax+14h]
push	esi
push	offset unk_44B720
push	eax
mov	ecx, [eax]
call	dword ptr [ecx]
test	eax, eax
jnz	short loc_432446

loc_43242E:
mov	esi, [esi]
push	[ebp+arg_4]
mov	eax, [esi]
push	esi
call	dword ptr [eax+0Ch]
jmp	short loc_432446

loc_43243B:
mov	eax, offset loc_432441
retn

loc_432441:
mov	eax, 8007000Eh

loc_432446:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	8
sub_4323FB endp



; Attributes: bp-based frame

sub_432457 proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_44801C
call	__EH_prolog
sub	esp, 10h
and	[ebp+var_10], 0
push	esi
push	[ebp+arg_4]
mov	esi, ecx
lea	ecx, [ebp+Memory]
push	[ebp+arg_0]
call	sub_4324A0
and	[ebp+var_4], 0
mov	edx, eax
mov	ecx, esi
call	sub_433FAC
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_432457 endp



; Attributes: bp-based frame

sub_4324A0 proc	near

var_60=	byte ptr -60h
var_40=	dword ptr -40h
Memory=	dword ptr -38h
var_28=	dword ptr -28h
var_24=	dword ptr -24h
lpFileName= dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= byte ptr	 8
arg_4= byte ptr	 0Ch

mov	eax, offset loc_448050
call	__EH_prolog
sub	esp, 54h
push	ebx
push	esi
push	edi
mov	edi, ecx
xor	ebx, ebx
mov	esi, edx
push	offset aArchive	; "Archive"
lea	ecx, [ebp+var_28]
mov	[ebp+var_10], ebx
call	sub_403091
cmp	[ebp+arg_0], bl
mov	[ebp+var_4], ebx
jz	short loc_43254C
push	3
lea	ecx, [ebp+lpFileName]
mov	[ebp+lpFileName], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_403396
mov	ecx, [esi]
lea	edx, [ebp+lpFileName]
mov	byte ptr [ebp+var_4], 1
call	sub_42AAF6
test	al, al
jz	short loc_432541
mov	eax, [ebp+var_18]
cmp	eax, ebx
jle	short loc_432541
mov	ecx, [ebp+lpFileName]
cmp	word ptr [ecx+eax*2-2],	5Ch
jnz	short loc_432541
dec	eax
push	1
push	eax
lea	ecx, [ebp+lpFileName]
call	sub_40708E
lea	ecx, [ebp+Memory]
call	sub_403079
push	[ebp+lpFileName] ; lpFileName
lea	ecx, [ebp+var_60]
mov	byte ptr [ebp+var_4], 2
call	sub_42B49E
test	al, al
jz	short loc_432538
lea	eax, [ebp+Memory]
lea	ecx, [ebp+var_28]
push	eax
call	sub_40312C

loc_432538:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx

loc_432541:
push	[ebp+lpFileName]
mov	byte ptr [ebp+var_4], bl
jmp	loc_43261E

loc_43254C:
lea	ecx, [ebp+Memory]
call	sub_403079
push	dword ptr [esi]	; lpFileName
lea	ecx, [ebp+var_60]
mov	byte ptr [ebp+var_4], 3
call	sub_42B49E
test	al, al
jnz	short loc_432584
push	esi
mov	ecx, edi
call	sub_4030F2
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_28]	; Memory
call	sub_4284D8
pop	ecx
jmp	loc_432637

loc_432584:
lea	eax, [ebp+Memory]
lea	ecx, [ebp+var_28]
push	eax
call	sub_40312C
mov	eax, [ebp+var_40]
shr	eax, 4
test	al, 1
jnz	short loc_432618
cmp	[ebp+arg_4], bl
jnz	short loc_432618
mov	eax, [ebp+var_24]
cmp	eax, ebx
jz	short loc_432618
mov	ecx, [ebp+var_28]
push	2Eh
pop	esi
lea	eax, [ecx+eax*2-2]

loc_4325B0:
cmp	[eax], si
jz	short loc_4325BD
cmp	eax, ecx
jz	short loc_4325C3
dec	eax
dec	eax
jmp	short loc_4325B0

loc_4325BD:
sub	eax, ecx
sar	eax, 1
jmp	short loc_4325C6

loc_4325C3:
or	eax, 0FFFFFFFFh

loc_4325C6:
cmp	eax, ebx
jle	short loc_432618
push	eax
lea	eax, [ebp+lpFileName]
push	eax
lea	ecx, [ebp+var_28]
call	sub_403228
mov	eax, [ebp+var_18]
mov	byte ptr [ebp+var_4], 4
cmp	eax, ebx
jz	short loc_432603
mov	ecx, [ebp+lpFileName]
lea	eax, [ecx+eax*2-2]

loc_4325E9:
cmp	[eax], si
jz	short loc_4325F6
cmp	eax, ecx
jz	short loc_4325FC
dec	eax
dec	eax
jmp	short loc_4325E9

loc_4325F6:
sub	eax, ecx
sar	eax, 1
jmp	short loc_4325FF

loc_4325FC:
or	eax, 0FFFFFFFFh

loc_4325FF:
cmp	eax, ebx
jge	short loc_43260F

loc_432603:
lea	eax, [ebp+lpFileName]
lea	ecx, [ebp+var_28]
push	eax
call	sub_40312C

loc_43260F:		; Memory
push	[ebp+lpFileName]
call	sub_4284D8
pop	ecx

loc_432618:		; Memory
push	[ebp+Memory]
mov	byte ptr [ebp+var_4], bl

loc_43261E:
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_28]
push	eax
mov	ecx, edi
call	sub_4030F2
push	[ebp+var_28]	; Memory
call	sub_4284D8

loc_432637:
pop	ecx
mov	eax, edi
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_4324A0 endp



; Attributes: bp-based frame

sub_43264B proc	near

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

mov	eax, offset loc_44805C
call	__EH_prolog
push	ecx
mov	ecx, [ebp+arg_0]
and	[ebp+var_4], 0
push	ebx
push	esi
mov	eax, [ecx+80h]
push	edi
test	eax, eax
mov	[ebp+var_10], esp
jz	short loc_43267B
push	[ebp+arg_8]
mov	ecx, [eax]
push	[ebp+arg_4]
push	eax
call	dword ptr [ecx+0Ch]
jmp	short loc_43269E

loc_43267B:
mov	ecx, [ecx+7Ch]
test	ecx, ecx
jnz	short loc_432686
xor	eax, eax
jmp	short loc_43269E

loc_432686:
push	[ebp+arg_8]
mov	eax, [ecx]
push	[ebp+arg_4]
call	dword ptr [eax+4]
jmp	short loc_43269E

loc_432693:
mov	eax, offset loc_432699
retn

loc_432699:
mov	eax, 8007000Eh

loc_43269E:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	0Ch
sub_43264B endp



; Attributes: bp-based frame

sub_4326AF proc	near

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

mov	eax, offset loc_448068
call	__EH_prolog
push	ecx
mov	ecx, [ebp+arg_0]
and	[ebp+var_4], 0
push	ebx
push	esi
mov	eax, [ecx+80h]
push	edi
test	eax, eax
mov	[ebp+var_10], esp
jz	short loc_4326DF
push	[ebp+arg_8]
mov	ecx, [eax]
push	[ebp+arg_4]
push	eax
call	dword ptr [ecx+10h]
jmp	short loc_432702

loc_4326DF:
mov	ecx, [ecx+7Ch]
test	ecx, ecx
jnz	short loc_4326EA
xor	eax, eax
jmp	short loc_432702

loc_4326EA:
push	[ebp+arg_8]
mov	eax, [ecx]
push	[ebp+arg_4]
call	dword ptr [eax+8]
jmp	short loc_432702

loc_4326F7:
mov	eax, offset loc_4326FD
retn

loc_4326FD:
mov	eax, 8007000Eh

loc_432702:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	0Ch
sub_4326AF endp



; Attributes: bp-based frame

sub_432713 proc	near

pvarg= VARIANTARG ptr -20h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_44807C
call	__EH_prolog
sub	esp, 14h
push	ebx
push	esi
push	edi
xor	ebx, ebx
mov	[ebp+var_10], esp
mov	[ebp+var_4], ebx
mov	word ptr [ebp+pvarg.anonymous_0], bx
mov	word ptr [ebp+pvarg.anonymous_0+2], bx
mov	eax, [ebp+arg_0]
mov	byte ptr [ebp+var_4], 1
cmp	[eax+54h], bl
jz	short loc_43274A
cmp	[ebp+arg_4], 4
jnz	short loc_4327B9
push	dword ptr [eax+58h]
jmp	short loc_4327B1

loc_43274A:
mov	ecx, [ebp+arg_4]
sub	ecx, 4
jz	short loc_4327AE
dec	ecx
dec	ecx
jz	short loc_43279B
dec	ecx
jz	short loc_43278B
dec	ecx
dec	ecx
jz	short loc_43277E
dec	ecx
jz	short loc_432779
dec	ecx
jz	short loc_432774
dec	ecx
jnz	short loc_4327B9
add	eax, 34h

loc_432769:
push	eax
lea	ecx, [ebp+pvarg]
call	sub_42CDB9
jmp	short loc_4327B9

loc_432774:
add	eax, 2Ch
jmp	short loc_432769

loc_432779:
add	eax, 24h
jmp	short loc_432769

loc_43277E:
push	dword ptr [eax+3Ch]
lea	ecx, [ebp+pvarg]
call	sub_42CD72
jmp	short loc_4327B9

loc_43278B:
push	dword ptr [eax+20h]
lea	ecx, [ebp+pvarg]
push	dword ptr [eax+1Ch]
call	sub_42CD92
jmp	short loc_4327B9

loc_43279B:
mov	eax, [eax+3Ch]
lea	ecx, [ebp+pvarg]
shr	eax, 4
and	al, 1
push	eax
call	sub_42CD4D
jmp	short loc_4327B9

loc_4327AE:		; psz
push	dword ptr [eax+44h]

loc_4327B1:
lea	ecx, [ebp+pvarg]
call	sub_42CC9E

loc_4327B9:		; pvarg
push	[ebp+arg_8]
lea	ecx, [ebp+pvarg] ; Src
call	sub_42CE85
lea	ecx, [ebp+pvarg] ; pvarg
mov	byte ptr [ebp+var_4], bl
call	sub_42CDE1
xor	eax, eax
jmp	short loc_4327DE

loc_4327D3:
mov	eax, offset loc_4327D9
retn

loc_4327D9:
mov	eax, 8007000Eh

loc_4327DE:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	0Ch
sub_432713 endp




sub_4327EF proc	near

arg_0= dword ptr  4

push	esi
push	edi
mov	esi, ecx
xor	edi, edi
cmp	[esi+70h], edi
jle	short loc_432817

loc_4327FA:
mov	eax, [esi+74h]
mov	eax, [eax+edi*4]
mov	edx, [eax]
mov	eax, [esp+8+arg_0]
mov	ecx, [eax]
call	sub_4282B1
test	eax, eax
jz	short loc_43281F
inc	edi
cmp	edi, [esi+70h]
jl	short loc_4327FA

loc_432817:
or	eax, 0FFFFFFFFh

loc_43281A:
pop	edi
pop	esi
retn	4

loc_43281F:
mov	eax, edi
jmp	short loc_43281A
sub_4327EF endp



; Attributes: bp-based frame

sub_432823 proc	near

Memory=	dword ptr -28h
lpFileName= dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_4480AA
call	__EH_prolog
sub	esp, 1Ch
push	ebx
push	esi
push	edi
mov	edi, [ebp+arg_0]
xor	esi, esi
mov	[ebp+var_10], esp
cmp	byte ptr [edi+54h], 0
mov	[ebp+var_4], esi
jz	short loc_43284C
push	1
pop	eax
jmp	loc_432963

loc_43284C:
mov	ecx, [edi+78h]
cmp	ecx, esi
jz	short loc_43285F
mov	eax, [ecx]
call	dword ptr [eax]
cmp	eax, esi
jnz	loc_432963

loc_43285F:
mov	eax, [ebp+arg_8]
push	[ebp+arg_4]
lea	edx, [edi+10h]
lea	ecx, [ebp+lpFileName]
mov	[eax], esi
call	sub_409948
push	[ebp+lpFileName] ; lpFileName
lea	ebx, [edi+1Ch]
mov	ecx, ebx
mov	byte ptr [ebp+var_4], 1
call	sub_42B49E
test	al, al
jnz	short loc_43288F

loc_432887:
push	1
pop	esi
jmp	loc_43294B

loc_43288F:
mov	eax, [edi+3Ch]
shr	eax, 4
test	al, 1
jnz	short loc_432887
push	58h		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+arg_0], ecx
cmp	ecx, esi
mov	byte ptr [ebp+var_4], 2
jz	short loc_4328B5
call	sub_432974
mov	esi, eax

loc_4328B5:
test	esi, esi
mov	byte ptr [ebp+var_4], 1
mov	[ebp+arg_0], esi
jz	short loc_4328C6
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]

loc_4328C6:		; lpFileName
push	[ebp+lpFileName]
mov	ecx, esi
mov	byte ptr [ebp+var_4], 3
call	sub_4307C1
test	al, al
jnz	short loc_4328F2
call	ds:GetLastError
test	esi, esi
mov	edi, eax
mov	byte ptr [ebp+var_4], 1
jz	short loc_4328EE
mov	eax, [esi]
push	esi
call	dword ptr [eax+8]

loc_4328EE:
mov	esi, edi
jmp	short loc_43294B

loc_4328F2:
mov	eax, [ebp+arg_8]
push	[ebp+arg_4]
and	[ebp+arg_0], 0
lea	ecx, [esi+40h]
mov	[eax], esi
call	sub_404722
lea	eax, [edi-4]
lea	ecx, [esi+50h]
push	eax
mov	[esi+4Ch], eax
call	sub_43D0DB
push	[ebp+arg_4]
lea	ecx, [ebp+Memory]
call	sub_403091
lea	eax, [ebp+Memory]
lea	ecx, [edi+64h]
push	eax
mov	byte ptr [ebp+var_4], 4
call	sub_4032B4
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	edx, [ebx+4]
pop	ecx
mov	ecx, [ebx]
lea	eax, [edi+84h]
add	[eax], ecx
adc	[eax+4], edx
xor	esi, esi

loc_43294B:		; Memory
push	[ebp+lpFileName]
call	sub_4284D8
pop	ecx
mov	eax, esi
jmp	short loc_432963

loc_432958:
mov	eax, offset loc_43295E
retn

loc_43295E:
mov	eax, 8007000Eh

loc_432963:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	0Ch
sub_432823 endp



; Attributes: bp-based frame

sub_432974 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4480BC
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
call	sub_4307E3
lea	ecx, [esi+40h]
xor	edi, edi
push	3
mov	[ebp+var_4], edi
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
mov	ecx, [ebp+var_C]
mov	[esi+50h], edi
mov	dword ptr [esi], offset	off_44C5B0
mov	dword ptr [esi+4], offset off_44C5A0
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_432974 endp




; int __thiscall sub_4329C2(void *Memory, char)
sub_4329C2 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_4329DE
test	[esp+4+arg_0], 1
jz	short loc_4329D8
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_4329D8:
mov	eax, esi
pop	esi
retn	4
sub_4329C2 endp



; Attributes: bp-based frame

sub_4329DE proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4480E6
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44C5B0
mov	dword ptr [esi+4], offset off_44C5A0
mov	eax, [esi+50h]
mov	[ebp+var_4], 2
test	eax, eax
jz	short loc_432A28
mov	ecx, [esi+4Ch]
lea	eax, [esi+40h]
push	eax
call	sub_4327EF
test	eax, eax
jl	short loc_432A28
mov	ecx, [esi+4Ch]
push	1
add	ecx, 68h
push	eax
mov	edx, [ecx]
call	dword ptr [edx+4]

loc_432A28:
mov	eax, [esi+50h]
mov	byte ptr [ebp+var_4], 1
test	eax, eax
jz	short loc_432A39
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_432A39:		; Memory
push	dword ptr [esi+40h]
call	sub_4284D8
or	[ebp+var_4], 0FFFFFFFFh
pop	ecx
mov	ecx, esi
call	sub_4308C2
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_4329DE endp



; Attributes: bp-based frame

sub_432A5A proc	near

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

mov	eax, offset loc_4480F8
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	esi, [ebp+arg_0]
xor	ebx, ebx
push	edi
mov	[ebp+var_4], ebx
cmp	[esi+74h], ebx
mov	[ebp+var_10], esp
jz	short loc_432AB9
mov	[ebp+arg_0], ebx
mov	eax, [esi+74h]
lea	edx, [ebp+arg_0]
push	edx
push	offset unk_44B720
mov	ecx, [eax]
push	eax
mov	byte ptr [ebp+var_4], 1
call	dword ptr [ecx]
mov	eax, [ebp+arg_0]
cmp	eax, ebx
jz	short loc_432AB6
push	[ebp+arg_4]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+0Ch]
mov	esi, eax
mov	eax, [ebp+arg_0]
cmp	eax, ebx
mov	byte ptr [ebp+var_4], bl
jz	short loc_432AB2
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_432AB2:
mov	eax, esi
jmp	short loc_432ADC

loc_432AB6:
mov	byte ptr [ebp+var_4], bl

loc_432AB9:
mov	ecx, [esi+70h]
cmp	ecx, ebx
jnz	short loc_432AC7
mov	eax, 80004001h
jmp	short loc_432ADC

loc_432AC7:
mov	eax, [ecx]
push	[ebp+arg_4]
call	dword ptr [eax+0Ch]
jmp	short loc_432ADC

loc_432AD1:
mov	eax, offset loc_432AD7
retn

loc_432AD7:
mov	eax, 8007000Eh

loc_432ADC:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	8
sub_432A5A endp



; Attributes: bp-based frame

sub_432AED proc	near

var_34=	dword ptr -34h
var_28=	dword ptr -28h
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44811C
call	__EH_prolog
sub	esp, 28h
and	[ebp+var_10], 0
push	ebx
push	esi
mov	esi, ecx
push	edi
mov	edi, edx
push	22h
lea	ecx, [ebp+var_34]
call	sub_409516
mov	ebx, eax
and	[ebp+var_4], 0
push	22h
lea	ecx, [ebp+var_28]
call	sub_409516
push	edi
mov	edx, eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_40356A
push	ebx
mov	edx, eax
mov	ecx, esi
mov	byte ptr [ebp+var_4], 2
call	sub_40356A
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_28]	; Memory
call	sub_4284D8
push	[ebp+var_34]	; Memory
call	sub_4284D8
mov	ecx, [ebp+var_C]
add	esp, 0Ch
mov	eax, esi
mov	large fs:0, ecx
pop	edi
pop	esi
pop	ebx
leave
retn
sub_432AED endp



; Attributes: bp-based frame

sub_432B68 proc	near

Memory=	dword ptr -34h
var_28=	dword ptr -28h
var_1C=	dword ptr -1Ch
Dst= dword ptr -18h
hObject= dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= byte ptr	 10h
arg_C= byte ptr	 14h
arg_10=	dword ptr  18h

mov	eax, offset loc_448150
call	__EH_prolog
sub	esp, 28h
push	ebx
push	esi
push	edi
mov	edi, ecx
mov	[ebp+var_10], esp
xor	ebx, ebx
mov	[ebp+var_1C], edx
push	61h
lea	ecx, [ebp+var_28]
mov	[ebp+var_4], ebx
call	sub_409516
mov	[ebp+hObject], ebx
mov	[ebp+Dst], ebx
push	off_45C9B4
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 3
call	sub_403195
mov	ecx, [ebp+arg_4]
lea	eax, [ebp+var_28]
push	eax		; int
lea	eax, [ebp+Dst]
push	eax		; Dst
lea	edx, [ebp+hObject]
call	sub_432E64
mov	esi, eax
cmp	esi, ebx
jz	short loc_432BD9
lea	ecx, [ebp+Dst]
call	sub_441850
lea	ecx, [ebp+hObject]
mov	byte ptr [ebp+var_4], 1
call	sub_415FED
jmp	loc_432CB4

loc_432BD9:
mov	esi, [ebp+arg_0]
cmp	[esi+4], ebx
jz	short loc_432BF8
push	off_45C9B8
lea	ecx, [ebp+var_28]
call	sub_403195
lea	ecx, [ebp+var_28]
push	esi
call	sub_4031F2

loc_432BF8:
cmp	[ebp+arg_8], bl
jz	short loc_432C0B
push	off_45C9B0
lea	ecx, [ebp+var_28]
call	sub_403195

loc_432C0B:
cmp	[ebp+arg_C], bl
jz	short loc_432C1E
push	off_45C9AC
lea	ecx, [ebp+var_28]
call	sub_403195

loc_432C1E:
lea	ecx, [ebp+var_28]
call	sub_432DED
lea	ecx, [ebp+var_28]
push	off_45C9C0
call	sub_403195
lea	ecx, [ebp+var_28]
push	20h
call	sub_40316A
mov	edx, [ebp+var_1C]
lea	ecx, [ebp+Memory]
call	sub_432AED
push	eax
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 4
call	sub_4031F2
mov	byte ptr [ebp+var_4], 3
push	[ebp+Memory]	; Memory
call	sub_4284D8
cmp	[edi+4], ebx
pop	ecx
jnz	short loc_432C6C
xor	esi, esi
jmp	short loc_432C6E

loc_432C6C:
mov	esi, [edi]

loc_432C6E:
lea	ecx, [ebp+Memory]
call	sub_432E08
mov	ecx, [eax]
lea	eax, [ebp+Dst]
push	eax
lea	edx, [ebp+var_28]
push	[ebp+arg_10]
mov	byte ptr [ebp+var_4], 5
push	esi
call	sub_432D51
mov	esi, eax
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
lea	ecx, [ebp+Dst]
call	sub_441850
cmp	[ebp+hObject], ebx
jz	short loc_432CB4
push	[ebp+hObject]	; hObject
call	ds:CloseHandle
test	eax, eax
jz	short loc_432CB4
mov	[ebp+hObject], ebx

loc_432CB4:		; Memory
push	[ebp+var_28]
call	sub_4284D8
pop	ecx
mov	eax, esi
jmp	short loc_432CD8

loc_432CC1:
xor	edx, edx
mov	ecx, 80004005h
call	sub_432CE9
mov	eax, offset loc_432CD3
retn

loc_432CD3:
mov	eax, 80004005h

loc_432CD8:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	14h
sub_432B68 endp



; Attributes: bp-based frame

sub_432CE9 proc	near

lpText=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_448164
call	__EH_prolog
sub	esp, 0Ch
push	esi
mov	esi, edx
mov	edx, ecx
lea	ecx, [ebp+lpText]
call	sub_425088
and	[ebp+var_4], 0
test	esi, esi
jz	short loc_432D1E
push	0Ah
lea	ecx, [ebp+lpText]
call	sub_40316A
lea	ecx, [ebp+lpText]
push	esi
call	sub_403195

loc_432D1E:		; lpText
mov	ecx, [ebp+lpText]
call	sub_432D3C
push	[ebp+lpText]	; Memory
call	sub_4284D8
pop	ecx
pop	esi
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn
sub_432CE9 endp




; int __fastcall sub_432D3C(LPCWSTR lpText)
sub_432D3C proc	near
push	10h		; uType
push	offset a7Zip	; "7-Zip"
push	ecx		; lpText
push	hWnd		; hWnd
call	ds:MessageBoxW
retn
sub_432D3C endp



; Attributes: bp-based frame

sub_432D51 proc	near

Handles= dword ptr -18h
var_14=	dword ptr -14h
hObject= dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= byte ptr	 0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_448178
call	__EH_prolog
sub	esp, 0Ch
push	ebx
xor	ebx, ebx
push	esi
push	edi
mov	esi, ecx
mov	[ebp+hObject], ebx
push	[ebp+arg_0]
lea	ecx, [ebp+hObject]
mov	[ebp+var_4], ebx
push	edx
push	esi
call	sub_42C9BF
mov	edi, eax
cmp	edi, ebx
jz	short loc_432D99
mov	edx, esi
mov	ecx, edi
call	sub_432CE9
cmp	[ebp+hObject], ebx
jz	short loc_432D95
push	[ebp+hObject]	; hObject
call	ds:CloseHandle

loc_432D95:
mov	eax, edi
jmp	short loc_432DDC

loc_432D99:
cmp	[ebp+arg_4], bl
jz	short loc_432DAB
push	0FFFFFFFFh	; dwMilliseconds
push	[ebp+hObject]	; hHandle
call	ds:WaitForSingleObject
jmp	short loc_432DCC

loc_432DAB:
mov	eax, [ebp+arg_8]
cmp	eax, ebx
jz	short loc_432DCC
mov	eax, [eax]
mov	ecx, [ebp+hObject]
mov	[ebp+var_14], eax
push	0FFFFFFFFh	; dwMilliseconds
lea	eax, [ebp+Handles]
push	ebx		; bWaitAll
push	eax		; lpHandles
push	2		; nCount
mov	[ebp+Handles], ecx
call	ds:WaitForMultipleObjects

loc_432DCC:
cmp	[ebp+hObject], ebx
jz	short loc_432DDA
push	[ebp+hObject]	; hObject
call	ds:CloseHandle

loc_432DDA:
xor	eax, eax

loc_432DDC:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_432D51 endp




sub_432DED proc	near
push	esi
mov	esi, ecx
call	sub_41EB0D
test	al, al
jnz	short loc_432E06
push	off_45C9C4
mov	ecx, esi
call	sub_403195

loc_432E06:
pop	esi
retn
sub_432DED endp



; Attributes: bp-based frame

sub_432E08 proc	near

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

mov	eax, offset loc_44818C
call	__EH_prolog
sub	esp, 10h
push	esi
push	edi
mov	edi, ecx
xor	esi, esi
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+var_10], esi
mov	[ebp+Memory], esi
mov	[ebp+var_18], esi
mov	[ebp+var_14], esi
call	sub_403396
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], esi
call	sub_41D79C
lea	edx, [ebp+Memory]
mov	ecx, edi
push	offset a7zg_exe	; "7zG.exe"
call	sub_409948
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, edi
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_432E08 endp



; Attributes: bp-based frame

; int __stdcall	sub_432E64(void	*Dst, int)
sub_432E64 proc	near

var_74=	byte ptr -74h
var_54=	dword ptr -54h
var_48=	dword ptr -48h
Memory=	dword ptr -3Ch
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=	byte ptr -14h
dwNumberOfBytesToMap= dword ptr	-10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
Dst= dword ptr	8
arg_4= dword ptr  0Ch

mov	eax, offset loc_4481D0
call	__EH_prolog
sub	esp, 68h
push	ebx
push	esi
mov	esi, edx
push	edi
mov	edx, [ecx+8]
xor	ebx, ebx
push	1
cmp	edx, ebx
mov	[ebp+var_18], ecx
pop	eax
mov	[ebp+dwNumberOfBytesToMap], ebx
jle	short loc_432E9F
mov	edi, [ecx+0Ch]

loc_432E8B:
mov	ecx, [edi]
inc	[ebp+dwNumberOfBytesToMap]
add	edi, 4
cmp	[ebp+dwNumberOfBytesToMap], edx
mov	ecx, [ecx+4]
lea	eax, [eax+ecx+1]
jl	short loc_432E8B

loc_432E9F:
add	eax, eax
lea	ecx, [ebp+var_14]
mov	[ebp+dwNumberOfBytesToMap], eax
call	sub_4284F2
lea	ecx, [ebp+var_30]
mov	[ebp+var_30], ebx
push	3
mov	[ebp+var_2C], ebx
mov	[ebp+var_28], ebx
call	sub_403396
mov	[ebp+var_4], ebx

loc_432EC2:
lea	eax, [ebp+var_48]
lea	ecx, [ebp+var_14]
push	eax
call	sub_43313D
push	eax
mov	edx, offset a7zmap ; "7zMap"
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_422192
push	eax
lea	ecx, [ebp+var_30]
mov	byte ptr [ebp+var_4], 2
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_48]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx
lea	edx, [ebp+var_30]
pop	ecx
lea	ecx, [ebp+var_54]
call	sub_43A785
push	dword ptr [eax]	; lpName
xor	eax, eax
push	[ebp+dwNumberOfBytesToMap] ; dwMaximumSizeLow
push	eax		; dwMaximumSizeHigh
push	4		; flProtect
push	ebx		; lpFileMappingAttributes
push	0FFFFFFFFh	; hFile
call	ds:CreateFileMappingA
mov	[esi], eax
call	ds:GetLastError
mov	edi, eax
push	[ebp+var_54]	; Memory
call	sub_4284D8
mov	eax, [esi]
pop	ecx
cmp	eax, ebx
jz	short loc_432F3D
cmp	edi, ebx
jz	short loc_432F67

loc_432F3D:
cmp	edi, 0B7h
jnz	loc_4330E0
cmp	eax, ebx
jz	loc_432EC2
push	eax		; hObject
call	ds:CloseHandle
test	eax, eax
jz	loc_432EC2
mov	[esi], ebx
jmp	loc_432EC2

loc_432F67:
push	3
lea	ecx, [ebp+var_24]
mov	[ebp+var_24], ebx
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
call	sub_403396
mov	edi, [ebp+Dst]
mov	byte ptr [ebp+var_4], 3

loc_432F81:
lea	eax, [ebp+var_48]
lea	ecx, [ebp+var_14]
push	eax
call	sub_43313D
push	eax
mov	edx, offset a7zevent ; "7zEvent"
lea	ecx, [ebp+var_54]
mov	byte ptr [ebp+var_4], 4
call	sub_422192
push	eax
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 5
call	sub_40312C
push	[ebp+var_54]	; Memory
call	sub_4284D8
push	[ebp+var_48]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx
lea	edx, [ebp+var_24]
pop	ecx
lea	ecx, [ebp+Memory]
call	sub_43A785
mov	eax, [eax]
push	ebx		; lpEventAttributes
push	eax		; lpName
push	ebx		; char
push	1		; char
mov	ecx, edi
mov	byte ptr [ebp+var_4], 6
call	sub_4330FE
mov	[ebp+Dst], eax
mov	byte ptr [ebp+var_4], 3
push	[ebp+Memory]	; Memory
call	sub_4284D8
cmp	[edi], ebx
pop	ecx
jz	short loc_432FF8
cmp	[ebp+Dst], ebx
jz	short loc_433011

loc_432FF8:
cmp	[ebp+Dst], 0B7h
jnz	loc_4330D2
mov	ecx, edi
call	sub_441850
jmp	loc_432F81

loc_433011:
mov	edi, [ebp+arg_4]
push	23h
mov	ecx, edi
call	sub_40316A
lea	eax, [ebp+var_30]
mov	ecx, edi
push	eax
call	sub_4031F2
mov	ecx, edi
push	3Ah
call	sub_40316A
mov	ecx, [ebp+dwNumberOfBytesToMap]
lea	edx, [ebp+var_74]
call	sub_427B8F
lea	eax, [ebp+var_74]
mov	ecx, edi
push	eax
call	sub_403195
mov	ecx, edi
push	3Ah
call	sub_40316A
lea	eax, [ebp+var_24]
mov	ecx, edi
push	eax
call	sub_4031F2
push	[ebp+dwNumberOfBytesToMap] ; dwNumberOfBytesToMap
push	ebx		; dwFileOffsetLow
push	ebx		; dwFileOffsetHigh
push	2		; dwDesiredAccess
push	dword ptr [esi]	; hFileMappingObject
call	ds:MapViewOfFile
cmp	eax, ebx
mov	[ebp+dwNumberOfBytesToMap], eax
jnz	short loc_433081
push	[ebp+var_24]	; Memory
call	sub_4284D8
pop	ecx
mov	ebx, 80004005h
jmp	short loc_4330E2

loc_433081:
mov	edi, [ebp+var_18]
mov	[eax], bx
lea	ecx, [eax+2]
xor	esi, esi
cmp	[edi+8], ebx
mov	[ebp+Dst], ecx
jle	short loc_4330C0

loc_433094:
mov	eax, [edi+0Ch]
mov	ecx, [eax+esi*4]
mov	eax, [ecx+4]
inc	eax
add	eax, eax
push	eax		; Size
mov	[ebp+arg_4], eax
push	dword ptr [ecx]	; Src
push	[ebp+Dst]	; Dst
call	memcpy
mov	eax, [ebp+arg_4]
add	esp, 0Ch
add	[ebp+Dst], eax
inc	esi
cmp	esi, [edi+8]
jl	short loc_433094
mov	eax, [ebp+dwNumberOfBytesToMap]

loc_4330C0:		; lpBaseAddress
push	eax
call	ds:UnmapViewOfFile
push	[ebp+var_24]	; Memory
call	sub_4284D8
pop	ecx
jmp	short loc_4330E2

loc_4330D2:		; Memory
push	[ebp+var_24]
call	sub_4284D8
mov	ebx, [ebp+Dst]
pop	ecx
jmp	short loc_4330E2

loc_4330E0:
mov	ebx, edi

loc_4330E2:		; Memory
push	[ebp+var_30]
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
mov	eax, ebx
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_432E64 endp



; Attributes: bp-based frame

; int __stdcall	sub_4330FE(char, char, LPCSTR lpName, LPSECURITY_ATTRIBUTES lpEventAttributes)
sub_4330FE proc	near

arg_0= byte ptr	 8
arg_4= byte ptr	 0Ch
lpName=	dword ptr  10h
lpEventAttributes= dword ptr  14h

push	ebp
mov	ebp, esp
xor	eax, eax
push	esi
cmp	[ebp+arg_4], al
push	[ebp+lpName]	; lpName
mov	esi, ecx
setnz	al
push	eax		; bInitialState
xor	eax, eax
cmp	[ebp+arg_0], al
setnz	al
push	eax		; bManualReset
push	[ebp+lpEventAttributes]	; lpEventAttributes
call	ds:CreateEventA
cmp	[ebp+lpName], 0
mov	[esi], eax
pop	esi
jnz	short loc_433133
test	eax, eax
jz	short loc_433133
xor	eax, eax
jmp	short loc_433139

loc_433133:
call	ds:GetLastError

loc_433139:
pop	ebp
retn	10h
sub_4330FE endp



; Attributes: bp-based frame

sub_43313D proc	near

var_24=	byte ptr -24h
var_4= dword ptr -4
arg_0= dword ptr  8

push	ebp
mov	ebp, esp
sub	esp, 24h
and	[ebp+var_4], 0
push	esi
lea	esi, [ebp+var_24]
call	rand
mov	ecx, eax
mov	edx, esi
call	sub_427B8F
mov	ecx, [ebp+arg_0]
lea	eax, [ebp+var_24]
push	eax
call	sub_403091
mov	eax, [ebp+arg_0]
pop	esi
leave
retn	4
sub_43313D endp

; START	OF FUNCTION CHUNK FOR sub_444BE4

loc_43316D:
push	esi
mov	esi, ecx
mov	eax, [esi]
test	eax, eax
jz	short loc_433184
push	eax		; hObject
call	ds:CloseHandle
test	eax, eax
jz	short loc_433184
and	dword ptr [esi], 0

loc_433184:
pop	esi
retn
; END OF FUNCTION CHUNK	FOR sub_444BE4


; Attributes: bp-based frame

sub_433186 proc	near

Memory=	dword ptr -28h
var_1C=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= byte ptr	 8

mov	eax, offset loc_4481EC
call	__EH_prolog
sub	esp, 1Ch
push	ebx
push	esi
push	edi
mov	edi, ecx
mov	[ebp+var_10], esp
xor	ebx, ebx
mov	esi, edx
push	78h
lea	ecx, [ebp+var_1C]
mov	[ebp+var_4], ebx
call	sub_409516
cmp	[esi+4], ebx
mov	byte ptr [ebp+var_4], 1
jz	short loc_4331E6
push	offset aO	; " -o"
lea	ecx, [ebp+var_1C]
call	sub_403195
mov	edx, esi
lea	ecx, [ebp+Memory]
call	sub_432AED
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 2
call	sub_4031F2
mov	byte ptr [ebp+var_4], 1
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_4331E6:
cmp	[ebp+arg_0], bl
jz	short loc_4331F9
push	off_45C9AC
lea	ecx, [ebp+var_1C]
call	sub_403195

loc_4331F9:
lea	edx, [ebp+var_1C]
mov	ecx, edi
call	sub_43323A
mov	esi, eax
push	[ebp+var_1C]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
jmp	short loc_433229

loc_433212:
xor	edx, edx
mov	ecx, 80004005h
call	sub_432CE9
mov	eax, offset loc_433224
retn

loc_433224:
mov	eax, 80004005h

loc_433229:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	4
sub_433186 endp



; Attributes: bp-based frame

sub_43323A proc	near

Memory=	dword ptr -20h
Dst= dword ptr -14h
hObject= dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_448210
call	__EH_prolog
sub	esp, 14h
push	ebx
push	esi
push	edi
mov	edi, edx
mov	ebx, ecx
mov	ecx, edi
call	sub_432DED
mov	ecx, edi
push	off_45C9BC
call	sub_403195
xor	esi, esi
mov	[ebp+hObject], esi
mov	[ebp+var_4], esi
mov	[ebp+Dst], esi
lea	eax, [ebp+Dst]
push	edi		; int
push	eax		; Dst
lea	edx, [ebp+hObject]
mov	ecx, ebx
mov	byte ptr [ebp+var_4], 1
call	sub_432E64
mov	ebx, eax
cmp	ebx, esi
jz	short loc_4332A0
lea	ecx, [ebp+Dst]
call	sub_441850
cmp	[ebp+hObject], esi
jz	short loc_43329C
push	[ebp+hObject]	; hObject
call	ds:CloseHandle

loc_43329C:
mov	eax, ebx
jmp	short loc_4332E0

loc_4332A0:
lea	ecx, [ebp+Memory]
call	sub_432E08
mov	eax, [eax]
lea	ecx, [ebp+Dst]
push	ecx
push	esi
push	esi
mov	edx, edi
mov	ecx, eax
mov	byte ptr [ebp+var_4], 2
call	sub_432D51
mov	edi, eax
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
lea	ecx, [ebp+Dst]
call	sub_441850
cmp	[ebp+hObject], esi
jz	short loc_4332DE
push	[ebp+hObject]	; hObject
call	ds:CloseHandle

loc_4332DE:
mov	eax, edi

loc_4332E0:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_43323A endp



; Attributes: bp-based frame

sub_4332EF proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_448224
call	__EH_prolog
sub	esp, 10h
and	[ebp+var_4], 0
push	ebx
push	esi
push	edi
mov	esi, ecx
mov	[ebp+var_10], esp
push	74h
lea	ecx, [ebp+Memory]
call	sub_409516
lea	edx, [ebp+Memory]
mov	ecx, esi
mov	byte ptr [ebp+var_4], 1
call	sub_43323A
mov	esi, eax
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
jmp	short loc_433346

loc_43332F:
xor	edx, edx
mov	ecx, 80004005h
call	sub_432CE9
mov	eax, offset loc_433341
retn

loc_433341:
mov	eax, 80004005h

loc_433346:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn
sub_4332EF endp



; Attributes: bp-based frame

sub_433355 proc	near

Memory=	dword ptr -28h
var_1C=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_448240
call	__EH_prolog
sub	esp, 1Ch
push	ebx
push	esi
push	edi
xor	esi, esi
mov	[ebp+var_10], esp
push	62h
lea	ecx, [ebp+var_1C]
mov	[ebp+var_4], esi
call	sub_409516
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_432E08
mov	ecx, [eax]
push	esi
push	esi
push	esi
lea	edx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 2
call	sub_432D51
mov	esi, eax
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_1C]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
pop	ecx
jmp	short loc_4333C3

loc_4333AC:
xor	edx, edx
mov	ecx, 80004005h
call	sub_432CE9
mov	eax, offset loc_4333BE
retn

loc_4333BE:
mov	eax, 80004005h

loc_4333C3:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn
sub_433355 endp



; Attributes: bp-based frame

sub_4333D2 proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_448254
call	__EH_prolog
sub	esp, 10h
and	[ebp+var_10], 0
push	esi
push	[ebp+arg_4]
mov	esi, ecx
lea	ecx, [ebp+Memory]
push	[ebp+arg_0]
call	sub_433425
and	[ebp+var_4], 0
lea	ecx, [ebp+Memory]
call	sub_406F3F
lea	eax, [ebp+Memory]
mov	ecx, esi
push	eax
call	sub_4030F2
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_4333D2 endp



; Attributes: bp-based frame

sub_433425 proc	near

var_2C=	dword ptr -2Ch
Memory=	dword ptr -20h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_448278
call	__EH_prolog
sub	esp, 20h
push	ebx
mov	ebx, [ebp+arg_0]
and	[ebp+var_14], 0
mov	[ebp+var_10], ecx
mov	ecx, [ebx+4]
push	esi
mov	esi, edx
push	edi
lea	edx, [ecx+1]
mov	eax, [esi+4]
cmp	eax, edx
jle	short loc_4334B3
sub	eax, ecx
dec	eax
mov	edi, eax
mov	eax, [esi]
cmp	word ptr [eax+edi*2], 2Eh
jnz	short loc_4334B3
lea	eax, [edi+1]
mov	ecx, esi
push	eax
lea	eax, [ebp+Memory]
push	eax
call	sub_405246
mov	edx, [eax]
mov	ecx, [ebx]
and	[ebp+var_4], 0
call	sub_4282B1
test	eax, eax
push	[ebp+Memory]	; Memory
setz	bl
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
test	bl, bl
pop	ecx
jz	short loc_4334B3
lea	eax, [ebp+Memory]
push	edi
push	eax
mov	ecx, esi
call	sub_403228
push	[ebp+arg_4]
mov	ecx, [ebp+var_10]
mov	edx, eax
mov	[ebp+var_4], 1
call	sub_40356A
push	[ebp+Memory]
jmp	short loc_4334FD

loc_4334B3:
mov	eax, [esi+4]
test	eax, eax
jz	short loc_433505
mov	ecx, [esi]
push	2
pop	edi
lea	eax, [ecx+eax*2-2]

loc_4334C3:
cmp	word ptr [eax],	2Eh
jz	short loc_4334D1
cmp	eax, ecx
jz	short loc_4334D7
sub	eax, edi
jmp	short loc_4334C3

loc_4334D1:
sub	eax, ecx
sar	eax, 1
jmp	short loc_4334DA

loc_4334D7:
or	eax, 0FFFFFFFFh

loc_4334DA:
test	eax, eax
jle	short loc_433505
push	eax
lea	eax, [ebp+var_2C]
push	eax
mov	ecx, esi
call	sub_403228
push	[ebp+arg_4]
mov	ecx, [ebp+var_10]
mov	edx, eax
mov	[ebp+var_4], edi
call	sub_40356A
push	[ebp+var_2C]	; Memory

loc_4334FD:
call	sub_4284D8
pop	ecx
jmp	short loc_43352A

loc_433505:
mov	eax, [ebp+arg_4]
cmp	dword ptr [eax+4], 0
jnz	short loc_43351F
mov	ecx, [ebp+var_10]
push	offset asc_45B8C8 ; "~"
mov	edx, esi
call	sub_409948
jmp	short loc_43352A

loc_43351F:
mov	ecx, [ebp+var_10]
push	eax
mov	edx, esi
call	sub_40356A

loc_43352A:
mov	ecx, [ebp+var_C]
mov	eax, [ebp+var_10]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_433425 endp



; Attributes: bp-based frame

sub_43353E proc	near

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
Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_44828C
call	__EH_prolog
sub	esp, 38h
push	esi
push	edi
mov	edi, ecx
mov	esi, edx
lea	ecx, [ebp+var_44]
call	sub_4335CC
mov	eax, [ebp+arg_0]
and	[ebp+var_4], 0
mov	[ebp+var_14], edi
mov	[ebp+var_10], esi
mov	ecx, [eax]
add	eax, 28h
mov	[ebp+var_44], ecx
mov	ecx, [eax-24h]
mov	[ebp+var_40], ecx
mov	ecx, [eax-20h]
mov	[ebp+var_3C], ecx
mov	ecx, [eax-1Ch]
mov	[ebp+var_38], ecx
mov	ecx, [eax-18h]
mov	[ebp+var_34], ecx
mov	ecx, [eax-14h]
mov	[ebp+var_30], ecx
mov	ecx, [eax-10h]
mov	[ebp+var_2C], ecx
mov	ecx, [eax-0Ch]
mov	[ebp+var_28], ecx
mov	ecx, [eax-8]
mov	[ebp+var_18], ecx
push	eax
lea	ecx, [ebp+Memory]
call	sub_40312C
mov	ecx, [ebp+arg_4]
lea	eax, [ebp+var_44]
push	eax
call	sub_433B07
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_43353E endp




sub_4335CC proc	near
push	esi
mov	esi, ecx
xor	eax, eax
push	3
lea	ecx, [esi+20h]
mov	[ecx], eax
mov	[ecx+4], eax
mov	[ecx+8], eax
call	sub_403396
or	dword ptr [esi+30h], 0FFFFFFFFh
or	dword ptr [esi+34h], 0FFFFFFFFh
mov	eax, esi
pop	esi
retn
sub_4335CC endp




sub_4335EF proc	near
push	dword ptr [ecx+20h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_4335EF endp



; Attributes: bp-based frame

sub_4335F9 proc	near

Memory=	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_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h
arg_C= dword ptr  14h

mov	eax, offset loc_4482A0
call	__EH_prolog
sub	esp, 14h
push	ebx
push	esi
mov	[ebp+var_10], ecx
push	edi
xor	ebx, ebx
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+var_14], ebx
mov	[ebp+Memory], ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
call	sub_403396
mov	edi, [ebp+arg_C]
mov	eax, [ebp+arg_8]
cmp	eax, ebx
mov	[ebp+var_4], ebx
mov	esi, [edi+4]
jl	short loc_433650
mov	ecx, [ebp+var_10]
mov	edx, [ebp+arg_4]
mov	ecx, [ecx+0Ch]
mov	edx, [edx+0Ch]

loc_433640:
shl	eax, 2
mov	ebx, [eax+ecx]
mov	eax, [edx+eax]
add	esi, [ebx+4]
test	eax, eax
jge	short loc_433640

loc_433650:
cmp	esi, [ebp+var_18]
mov	[ebp+var_14], esi
jl	short loc_433661
push	esi
lea	ecx, [ebp+Memory]
call	sub_403396

loc_433661:
mov	ebx, [ebp+Memory]
lea	eax, [esi+esi]
mov	[ebp+arg_C], eax
and	word ptr [eax+ebx], 0
mov	eax, [edi+4]
sub	esi, eax
add	eax, eax
push	eax		; Size
push	dword ptr [edi]	; Src
lea	eax, [ebx+esi*2]
push	eax		; Dst
call	memcpy
mov	edi, [ebp+arg_8]
add	esp, 0Ch

loc_433688:
test	edi, edi
jl	short loc_4336B9
mov	eax, [ebp+var_10]
shl	edi, 2
mov	eax, [eax+0Ch]
mov	eax, [edi+eax]
mov	ecx, [eax+4]
sub	esi, ecx
add	ecx, ecx
push	ecx		; Size
push	dword ptr [eax]	; Src
lea	eax, [ebx+esi*2]
push	eax		; Dst
call	memcpy
mov	eax, [ebp+arg_4]
add	esp, 0Ch
mov	eax, [eax+0Ch]
mov	edi, [eax+edi]
jmp	short loc_433688

loc_4336B9:
mov	eax, [ebp+Memory]
mov	ecx, [ebp+arg_C]
and	word ptr [ecx+eax], 0
mov	eax, [ebp+var_14]
mov	ecx, [ebp+arg_0]
mov	[ebp+var_1C], eax
lea	eax, [ebp+Memory]
push	eax
call	sub_4030F2
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+arg_0]
pop	ecx
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	10h
sub_4335F9 endp



; Attributes: bp-based frame

sub_4336F3 proc	near

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

push	ebp
mov	ebp, esp
push	ecx
mov	eax, [ecx+48h]
mov	edx, [ebp+arg_4]
and	[ebp+var_4], 0
mov	eax, [eax+edx*4]
lea	edx, [eax+20h]
push	edx
push	dword ptr [eax+30h]
lea	eax, [ecx+14h]
push	eax
push	[ebp+arg_0]
call	sub_4335F9
mov	eax, [ebp+arg_0]
leave
retn	8
sub_4336F3 endp



; Attributes: bp-based frame

sub_43371E proc	near

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

push	ebp
mov	ebp, esp
push	ecx
mov	eax, [ecx+48h]
mov	edx, [ebp+arg_4]
and	[ebp+var_4], 0
mov	eax, [eax+edx*4]
lea	edx, [eax+20h]
push	edx
push	dword ptr [eax+34h]
lea	eax, [ecx+28h]
push	eax
push	[ebp+arg_0]
call	sub_4335F9
mov	eax, [ebp+arg_0]
leave
retn	8
sub_43371E endp




sub_433749 proc	near
push	esi
mov	esi, ecx
call	sub_42842A
lea	ecx, [esi+14h]
call	sub_42842A
lea	ecx, [esi+28h]
call	sub_42842A
lea	ecx, [esi+3Ch]
call	sub_42842A
pop	esi
retn
sub_433749 endp




sub_43376B proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8
arg_8= dword ptr  0Ch

push	esi
mov	esi, ecx
push	[esp+4+arg_0]
lea	ecx, [esi+14h]
call	sub_429907
push	[esp+4+arg_4]
lea	ecx, [esi+28h]
call	sub_429907
push	[esp+4+arg_8]
mov	ecx, esi
call	sub_4032B4
pop	esi
retn	0Ch
sub_43376B endp



; Attributes: bp-based frame

sub_433795 proc	near

var_7C=	byte ptr -7Ch
var_5C=	dword ptr -5Ch
var_54=	dword ptr -54h
var_44=	dword ptr -44h
var_40=	dword ptr -40h
var_34=	dword ptr -34h
Memory=	dword ptr -28h
var_1C=	dword ptr -1Ch
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
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

mov	eax, offset loc_4482DC
call	__EH_prolog
sub	esp, 70h
mov	edx, [ebp+arg_8]
push	esi
mov	esi, ecx
push	edi
push	2Ah
lea	ecx, [ebp+Memory]
call	sub_409999
and	[ebp+var_4], 0
or	[ebp+var_44], 0FFFFFFFFh
push	eax
lea	ecx, [ebp+var_40]
mov	byte ptr [ebp+var_4], 1
call	sub_4030F2
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx
lea	ecx, [ebp+var_7C]
call	sub_404EA2

loc_4337DD:
lea	eax, [ebp+var_D]
lea	ecx, [ebp+var_44]
push	eax
lea	eax, [ebp+var_7C]
push	eax
mov	byte ptr [ebp+var_4], 4
call	sub_42B75A
test	al, al
jz	loc_433893
cmp	[ebp+var_D], 0
jz	loc_4338AD
mov	edx, [ebp+arg_4]
mov	ecx, [ebp+arg_0]
lea	eax, [esi+3Ch]
push	eax
lea	eax, [ebp+var_7C]
push	eax
call	sub_43353E
mov	eax, [ebp+var_5C]
shr	eax, 4
test	al, 1
jz	short loc_433879
push	5Ch
lea	edx, [ebp+var_54]
lea	ecx, [ebp+var_1C]
call	sub_409999
lea	eax, [ebp+var_1C]
mov	ecx, esi
push	eax
mov	byte ptr [ebp+var_4], 5
push	[ebp+arg_4]
push	[ebp+arg_0]
call	sub_43376B
mov	edx, [ebp+arg_8]
mov	edi, eax
lea	eax, [ebp+var_1C]
lea	ecx, [ebp+var_34]
push	eax
call	sub_40356A
push	[ebp+arg_10]
mov	ecx, esi
mov	byte ptr [ebp+var_4], 6
push	[ebp+arg_C]
push	eax
push	edi
push	edi
call	sub_433795
push	[ebp+var_34]	; Memory
call	sub_4284D8
push	[ebp+var_1C]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx

loc_433879:		; Memory
push	[ebp+var_54]
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx
lea	ecx, [ebp+var_7C]
call	sub_404EA2
jmp	loc_4337DD

loc_433893:
call	ds:GetLastError
mov	ecx, [ebp+arg_10]
push	eax
call	sub_429907
push	[ebp+arg_8]
mov	ecx, [ebp+arg_C]
call	sub_4032B4

loc_4338AD:		; Memory
push	[ebp+var_54]
call	sub_4284D8
push	[ebp+var_40]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx
pop	ecx
lea	ecx, [ebp+var_44]
call	sub_42B047
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	14h
sub_433795 endp



; Attributes: bp-based frame

sub_4338DB proc	near

var_98=	byte ptr -98h
var_78=	dword ptr -78h
Memory=	dword ptr -70h
var_60=	dword ptr -60h
var_54=	dword ptr -54h
var_48=	dword ptr -48h
var_3C=	dword ptr -3Ch
lpFileName= dword ptr -30h
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_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

mov	eax, offset loc_448323
call	__EH_prolog
sub	esp, 8Ch
mov	eax, [ebp+arg_0]
push	ebx
xor	ebx, ebx
push	esi
cmp	[eax+4], ebx
mov	[ebp+var_10], ecx
jnz	short loc_433900
or	[ebp+var_18], 0FFFFFFFFh
jmp	short loc_433910

loc_433900:
mov	ecx, [ebp+var_10]
push	eax
push	0FFFFFFFFh
push	0FFFFFFFFh
call	sub_43376B
mov	[ebp+var_18], eax

loc_433910:
mov	eax, [ebp+arg_4]
cmp	[eax+4], ebx
jnz	short loc_43391E
or	[ebp+arg_4], 0FFFFFFFFh
jmp	short loc_43392E

loc_43391E:
mov	ecx, [ebp+var_10]
push	eax
push	0FFFFFFFFh
push	0FFFFFFFFh
call	sub_43376B
mov	[ebp+arg_4], eax

loc_43392E:
mov	esi, [ebp+arg_8]
mov	[ebp+var_14], ebx
cmp	[esi+8], ebx
jle	loc_433AEF
push	edi

loc_43393E:
mov	eax, [esi+0Ch]
mov	ecx, [ebp+var_14]
mov	edi, [eax+ecx*4]
lea	ecx, [ebp+Memory]
call	sub_403079
mov	edx, [ebp+arg_0]
push	edi
lea	ecx, [ebp+lpFileName]
mov	[ebp+var_4], ebx
call	sub_40356A
push	[ebp+lpFileName] ; lpFileName
lea	ecx, [ebp+var_98]
mov	byte ptr [ebp+var_4], 1
call	sub_42B49E
test	al, al
jnz	short loc_4339AA
call	ds:GetLastError
mov	ecx, [ebp+arg_10]
push	eax
call	sub_429907
mov	ecx, [ebp+arg_C]
lea	eax, [ebp+lpFileName]
push	eax
call	sub_4032B4
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx
pop	ecx
jmp	loc_433ADF

loc_4339AA:
mov	eax, [edi+4]
cmp	eax, ebx
jz	short loc_4339CD
mov	ecx, [edi]
lea	eax, [ecx+eax*2-2]

loc_4339B7:
cmp	word ptr [eax],	5Ch
jz	short loc_4339C5
cmp	eax, ecx
jz	short loc_4339CD
dec	eax
dec	eax
jmp	short loc_4339B7

loc_4339C5:
sub	eax, ecx
sar	eax, 1
mov	esi, eax
jmp	short loc_4339D0

loc_4339CD:
or	esi, 0FFFFFFFFh

loc_4339D0:
push	3
lea	ecx, [ebp+var_24]
mov	[ebp+var_24], ebx
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
call	sub_403396
mov	ebx, [ebp+var_18]
mov	byte ptr [ebp+var_4], 2
test	esi, esi
jl	short loc_433A27
inc	esi
lea	eax, [ebp+var_60]
push	esi
push	eax
mov	ecx, edi
call	sub_403228
push	eax
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 3
call	sub_40312C
push	[ebp+var_60]	; Memory
mov	byte ptr [ebp+var_4], 2
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_24]
mov	ecx, [ebp+var_10]
push	eax
push	[ebp+arg_4]
push	ebx
call	sub_43376B
mov	ebx, eax

loc_433A27:
mov	edi, [ebp+var_10]
mov	edx, [ebp+arg_4]
mov	ecx, ebx
lea	eax, [edi+3Ch]
push	eax
lea	eax, [ebp+var_98]
push	eax
call	sub_43353E
mov	eax, [ebp+var_78]
shr	eax, 4
test	al, 1
jz	short loc_433ABB
push	5Ch
lea	edx, [ebp+Memory]
lea	ecx, [ebp+var_3C]
call	sub_409999
lea	eax, [ebp+var_3C]
mov	ecx, edi
push	eax
mov	byte ptr [ebp+var_4], 4
push	[ebp+arg_4]
push	ebx
call	sub_43376B
mov	edx, [ebp+arg_0]
mov	esi, eax
lea	eax, [ebp+var_24]
lea	ecx, [ebp+var_54]
push	eax
call	sub_40356A
lea	ecx, [ebp+var_3C]
mov	edx, eax
push	ecx
lea	ecx, [ebp+var_48]
mov	byte ptr [ebp+var_4], 5
call	sub_40356A
push	[ebp+arg_10]
mov	ecx, edi
mov	byte ptr [ebp+var_4], 6
push	[ebp+arg_C]
push	eax
push	esi
push	esi
call	sub_433795
push	[ebp+var_48]	; Memory
call	sub_4284D8
push	[ebp+var_54]	; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
add	esp, 0Ch

loc_433ABB:		; Memory
push	[ebp+var_24]
call	sub_4284D8
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
mov	esi, [ebp+arg_8]
add	esp, 0Ch
xor	ebx, ebx

loc_433ADF:
inc	[ebp+var_14]
mov	eax, [ebp+var_14]
cmp	eax, [esi+8]
jl	loc_43393E
pop	edi

loc_433AEF:
mov	ecx, [ebp+var_10]
call	sub_433749
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	14h
sub_4338DB endp



; Attributes: bp-based frame

sub_433B07 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset unknown_libname_32 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	38h		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_10], ecx
xor	eax, eax
cmp	ecx, eax
mov	[ebp+var_4], eax
jz	short loc_433B33
push	[ebp+arg_0]
call	sub_433B4E

loc_433B33:
or	[ebp+var_4], 0FFFFFFFFh
push	eax
mov	ecx, esi
call	sub_429907
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_433B07 endp




sub_433B4E proc	near

arg_0= dword ptr  4

push	esi
push	edi
mov	edi, [esp+8+arg_0]
mov	esi, ecx
mov	eax, [edi]
lea	ecx, [esi+20h]
mov	[esi], eax
mov	eax, [edi+4]
mov	[esi+4], eax
mov	eax, [edi+8]
mov	[esi+8], eax
mov	eax, [edi+0Ch]
mov	[esi+0Ch], eax
mov	eax, [edi+10h]
mov	[esi+10h], eax
mov	eax, [edi+14h]
mov	[esi+14h], eax
mov	eax, [edi+18h]
mov	[esi+18h], eax
mov	eax, [edi+1Ch]
mov	[esi+1Ch], eax
lea	eax, [edi+20h]
push	eax
call	sub_4030F2
mov	eax, [edi+2Ch]
mov	[esi+2Ch], eax
mov	eax, [edi+30h]
mov	[esi+30h], eax
mov	eax, [edi+34h]
mov	[esi+34h], eax
mov	eax, esi
pop	edi
pop	esi
retn	4
sub_433B4E endp



; Attributes: bp-based frame

sub_433BA9 proc	near

var_30=	dword ptr -30h
var_24=	dword ptr -24h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44835C
call	__EH_prolog
sub	esp, 24h
push	ebx
push	edi
mov	edi, ecx
xor	ebx, ebx
cmp	[edi+8], ebx
jle	loc_433C58
push	esi

loc_433BC6:
mov	eax, [edi+0Ch]
lea	ecx, [ebp+Memory]
mov	esi, [eax+ebx*4]
mov	edx, esi
call	sub_433E0D
and	[ebp+var_4], 0
push	eax
mov	ecx, esi
call	sub_40312C
or	[ebp+var_4], 0FFFFFFFFh
push	[ebp+Memory]	; Memory
call	sub_4284D8
cmp	dword ptr [esi+4], 0
pop	ecx
jnz	short loc_433C01
mov	eax, [edi]
push	1
push	ebx
mov	ecx, edi
call	dword ptr [eax+4]
jmp	short loc_433C4E

loc_433C01:
mov	ecx, esi
call	sub_433C66
test	al, al
jnz	short loc_433C4D
push	offset a__1	; "_"
lea	ecx, [ebp+var_30]
call	sub_403091
push	esi
mov	edx, eax
lea	ecx, [ebp+var_24]
mov	[ebp+var_4], 1
call	sub_40356A
push	eax
mov	ecx, esi
mov	byte ptr [ebp+var_4], 2
call	sub_40312C
push	[ebp+var_24]	; Memory
call	sub_4284D8
push	[ebp+var_30]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx
pop	ecx

loc_433C4D:
inc	ebx

loc_433C4E:
cmp	ebx, [edi+8]
jl	loc_433BC6
pop	esi

loc_433C58:
mov	ecx, [ebp+var_C]
pop	edi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_433BA9 endp



; Attributes: bp-based frame

sub_433C66 proc	near

Memory=	dword ptr -20h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_448370
call	__EH_prolog
sub	esp, 14h
push	ebx
push	esi
push	edi
mov	[ebp+var_14], ecx
mov	[ebp+var_10], offset off_45CA54

loc_433C80:
mov	eax, [ebp+var_10]
xor	ebx, ebx
xor	edi, edi
mov	esi, [eax]
cmp	[esi], bx
jz	short loc_433C98
mov	eax, esi

loc_433C90:
inc	edi
inc	eax
inc	eax
cmp	[eax], bx
jnz	short loc_433C90

loc_433C98:
mov	ecx, [ebp+var_14]
cmp	[ecx+4], edi
jl	short loc_433CDA
lea	eax, [ebp+Memory]
push	edi
push	eax
call	sub_403228
mov	ecx, [eax]
mov	edx, esi
mov	[ebp+var_4], ebx
call	sub_4282B1
cmp	eax, ebx
push	[ebp+Memory]	; Memory
setnz	bl
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
test	bl, bl
pop	ecx
jnz	short loc_433CDA
mov	ecx, [ebp+var_14]
mov	edx, edi
call	sub_433D18
test	al, al
jz	short loc_433CF8

loc_433CDA:
add	[ebp+var_10], 4
cmp	[ebp+var_10], offset aNul ; "NUL"
jb	short loc_433C80
mov	ecx, [ebp+var_14]
mov	edx, offset aCom ; "COM"
call	sub_433D84
test	al, al
jnz	short loc_433CFC

loc_433CF8:
xor	al, al
jmp	short loc_433D09

loc_433CFC:
mov	ecx, [ebp+var_14]
mov	edx, offset aLpt ; "LPT"
call	sub_433D84

loc_433D09:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_433C66 endp



; Attributes: bp-based frame

sub_433D18 proc	near

Memory=	dword ptr -18h
var_14=	dword ptr -14h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_448384
call	__EH_prolog
sub	esp, 0Ch
push	esi
mov	esi, [ecx]
push	edi
mov	edi, edx
mov	eax, esi

loc_433D2D:
mov	dx, [eax]
cmp	dx, 2Eh
jz	short loc_433D3F
test	dx, dx
jz	short loc_433D45
inc	eax
inc	eax
jmp	short loc_433D2D

loc_433D3F:
sub	eax, esi
sar	eax, 1
jmp	short loc_433D48

loc_433D45:
or	eax, 0FFFFFFFFh

loc_433D48:
test	eax, eax
jge	short loc_433D4F
mov	eax, [ecx+4]

loc_433D4F:
push	eax
lea	eax, [ebp+Memory]
push	eax
call	sub_403228
and	[ebp+var_4], 0
lea	ecx, [ebp+Memory]
call	sub_406F3F
mov	esi, [ebp+var_14]
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
cmp	esi, edi
mov	ecx, [ebp+var_C]
pop	edi
setnz	al
pop	esi
mov	large fs:0, ecx
leave
retn
sub_433D18 endp



; Attributes: bp-based frame

sub_433D84 proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_448398
call	__EH_prolog
sub	esp, 0Ch
push	ebx
push	esi
mov	ebx, edx
xor	esi, esi
push	edi
mov	edi, ecx
cmp	[ebx], si
jz	short loc_433DAA
mov	eax, ebx

loc_433DA1:
inc	esi
inc	eax
inc	eax
cmp	word ptr [eax],	0
jnz	short loc_433DA1

loc_433DAA:
cmp	[edi+4], esi
jle	short loc_433DFC
lea	eax, [ebp+Memory]
push	esi
push	eax
mov	ecx, edi
call	sub_403228
mov	ecx, [eax]
and	[ebp+var_4], 0
mov	edx, ebx
call	sub_4282B1
test	eax, eax
push	[ebp+Memory]	; Memory
setnz	bl
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
test	bl, bl
pop	ecx
jnz	short loc_433DFC
mov	eax, [edi]
mov	ax, [eax+esi*2]
cmp	ax, 30h
jb	short loc_433DFC
cmp	ax, 39h
ja	short loc_433DFC
lea	edx, [esi+1]
mov	ecx, edi
call	sub_433D18
jmp	short loc_433DFE

loc_433DFC:
mov	al, 1

loc_433DFE:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_433D84 endp




sub_433E0D proc	near

var_4= dword ptr -4

push	ecx
and	[esp+4+var_4], 0
push	esi
push	edi
mov	edi, edx
mov	esi, ecx
mov	edx, offset a__	; ".."
mov	ecx, [edi]
call	sub_42828A
test	eax, eax
jz	short loc_433E44
mov	ecx, [edi]
mov	edx, offset unk_45C6E4
call	sub_42828A
test	eax, eax
jz	short loc_433E44
mov	edx, edi
mov	ecx, esi
call	sub_433E5E
jmp	short loc_433E58

loc_433E44:
and	dword ptr [esi], 0
and	dword ptr [esi+4], 0
and	dword ptr [esi+8], 0
push	3
mov	ecx, esi
call	sub_403396

loc_433E58:
mov	eax, esi
pop	edi
pop	esi
pop	ecx
retn
sub_433E0D endp



; Attributes: bp-based frame

sub_433E5E proc	near

Memory=	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_4= dword ptr -4

mov	eax, offset loc_4483AC
call	__EH_prolog
sub	esp, 14h
push	ebx
push	esi
mov	[ebp+var_10], ecx
push	edi
xor	ebx, ebx
mov	esi, edx
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+var_14], ebx
mov	[ebp+Memory], ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
call	sub_403396
xor	edi, edi
cmp	[esi+4], ebx
mov	[ebp+var_4], ebx
jle	short loc_433EDD

loc_433E95:
mov	eax, [esi]
mov	ax, [eax+edi*2]
cmp	ax, 20h
jb	short loc_433ECB
cmp	ax, 2Ah
jz	short loc_433ECB
cmp	ax, 3Fh
jz	short loc_433ECB
cmp	ax, 3Ch
jz	short loc_433ECB
cmp	ax, 3Eh
jz	short loc_433ECB
cmp	ax, 7Ch
jz	short loc_433ECB
cmp	ax, 3Ah
jz	short loc_433ECB
cmp	ax, 22h
jnz	short loc_433ECE

loc_433ECB:
push	5Fh
pop	eax

loc_433ECE:
push	eax
lea	ecx, [ebp+Memory]
call	sub_40316A
inc	edi
cmp	edi, [esi+4]
jl	short loc_433E95

loc_433EDD:
lea	ecx, [ebp+Memory]
call	sub_406F3F

loc_433EE5:
mov	eax, [ebp+var_1C]
cmp	eax, ebx
jz	short loc_433F05
mov	ecx, [ebp+Memory]
cmp	word ptr [ecx+eax*2-2],	2Eh
jnz	short loc_433F05
dec	eax
push	1
push	eax
lea	ecx, [ebp+Memory]
call	sub_40708E
jmp	short loc_433EE5

loc_433F05:
mov	ecx, [ebp+var_10]
lea	eax, [ebp+Memory]
push	eax
call	sub_4030F2
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_10]
pop	ecx
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_433E5E endp



; Attributes: bp-based frame

sub_433F2C proc	near

Memory=	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_4= dword ptr -4

mov	eax, offset loc_4483C0
call	__EH_prolog
sub	esp, 14h
push	ebx
push	esi
push	edi
mov	[ebp+var_10], ecx
xor	edi, edi
mov	esi, edx
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+var_14], edi
mov	[ebp+Memory], edi
mov	[ebp+var_1C], edi
mov	[ebp+var_18], edi
call	sub_403396
xor	ebx, ebx
cmp	[esi+8], edi
mov	[ebp+var_4], edi
jle	short loc_433F85

loc_433F63:
cmp	ebx, edi
jz	short loc_433F71
push	5Ch
lea	ecx, [ebp+Memory]
call	sub_40316A

loc_433F71:
mov	eax, [esi+0Ch]
lea	ecx, [ebp+Memory]
push	dword ptr [eax+ebx*4]
call	sub_4031F2
inc	ebx
cmp	ebx, [esi+8]
jl	short loc_433F63

loc_433F85:
mov	ecx, [ebp+var_10]
lea	eax, [ebp+Memory]
push	eax
call	sub_4030F2
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_10]
pop	ecx
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_433F2C endp



; Attributes: bp-based frame

sub_433FAC proc	near

var_34=	dword ptr -34h
Memory=	dword ptr -28h
var_1C=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4483E4
call	__EH_prolog
sub	esp, 28h
and	[ebp+var_10], 0
push	esi
mov	esi, ecx
lea	ecx, [ebp+var_1C]
call	sub_433E0D
and	[ebp+var_4], 0
lea	ecx, [ebp+var_1C]
call	sub_433C66
test	al, al
jnz	short loc_43401A
push	offset a__1	; "_"
lea	ecx, [ebp+var_34]
call	sub_403091
lea	ecx, [ebp+var_1C]
mov	edx, eax
push	ecx
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_40356A
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 2
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_34]	; Memory
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
pop	ecx
pop	ecx

loc_43401A:
lea	eax, [ebp+var_1C]
mov	ecx, esi
push	eax
call	sub_4030F2
push	[ebp+var_1C]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_433FAC endp



; Attributes: bp-based frame

sub_43403D proc	near

var_44=	dword ptr -44h
var_3C=	dword ptr -3Ch
var_38=	dword ptr -38h
var_30=	dword ptr -30h
Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_448427
call	__EH_prolog
sub	esp, 38h
and	[ebp+var_18], 0
push	ebx
push	esi
mov	[ebp+var_14], ecx
push	edi
mov	esi, edx
push	4
lea	ecx, [ebp+var_44]
call	sub_402794
mov	edi, offset off_44B510
mov	[ebp+var_44], edi
push	1
lea	edx, [ebp+var_44]
pop	ebx
mov	ecx, esi
mov	[ebp+var_4], ebx
call	sub_428DBB
and	[ebp+var_10], 0
cmp	[ebp+var_3C], 0
jle	short loc_4340FB

loc_434082:
mov	eax, [ebp+var_38]
mov	ecx, [ebp+var_10]
mov	esi, [eax+ecx*4]

loc_43408B:
mov	eax, [esi+4]
test	eax, eax
jz	short loc_4340A8
mov	ecx, [esi]
cmp	word ptr [ecx+eax*2-2],	2Eh
jnz	short loc_4340A8
dec	eax
push	ebx
push	eax
mov	ecx, esi
call	sub_40708E
jmp	short loc_43408B

loc_4340A8:
mov	ecx, esi
call	sub_433C66
test	al, al
jnz	short loc_4340F0
push	offset a__1	; "_"
lea	ecx, [ebp+var_30]
call	sub_403091
push	esi
mov	edx, eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 2
call	sub_40356A
push	eax
mov	ecx, esi
mov	byte ptr [ebp+var_4], 3
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_30]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
pop	ecx
pop	ecx

loc_4340F0:
inc	[ebp+var_10]
mov	eax, [ebp+var_10]
cmp	eax, [ebp+var_3C]
jl	short loc_434082

loc_4340FB:
mov	ecx, [ebp+var_14]
lea	edx, [ebp+var_44]
call	sub_433F2C
mov	[ebp+var_18], ebx
mov	[ebp+var_44], edi
lea	ecx, [ebp+var_44]
mov	[ebp+var_4], 4
call	sub_428327
and	byte ptr [ebp+var_4], 0
lea	ecx, [ebp+var_44]
call	sub_4282FE
mov	ecx, [ebp+var_C]
mov	eax, [ebp+var_14]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_43403D endp



; Attributes: bp-based frame

sub_434139 proc	near

var_40=	dword ptr -40h
var_34=	dword ptr -34h
var_28=	dword ptr -28h
Memory=	dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44845C
call	__EH_prolog
sub	esp, 34h
push	ebx
push	esi
push	edi
mov	edi, ecx
xor	esi, esi
lea	ecx, [ebp+var_28]
mov	[ebp+var_10], esi
call	sub_43427F
push	off_45CA98
lea	edx, [ebp+var_28]
lea	ecx, [ebp+var_40]
mov	[ebp+var_4], esi
call	sub_41E280
mov	ecx, [eax]
mov	byte ptr [ebp+var_4], 1
call	sub_42B53D
test	al, al
jnz	short loc_4341E3
push	offset aCodecs	; "Codecs"
lea	edx, [ebp+var_28]
lea	ecx, [ebp+Memory]
call	sub_41E280
mov	ecx, [eax]
mov	byte ptr [ebp+var_4], 2
call	sub_42B58E
mov	bl, al
mov	byte ptr [ebp+var_4], 1
push	[ebp+Memory]	; Memory
neg	bl
sbb	bl, bl
inc	bl
call	sub_4284D8
test	bl, bl
pop	ecx
jz	short loc_4341E3
push	offset aFormats	; "Formats"
lea	edx, [ebp+var_28]
lea	ecx, [ebp+var_34]
call	sub_41E280
mov	ecx, [eax]
mov	byte ptr [ebp+var_4], 3
call	sub_42B58E
mov	bl, al
push	[ebp+var_34]	; Memory
neg	bl
sbb	bl, bl
inc	bl
call	sub_4284D8
test	bl, bl
pop	ecx
jz	short loc_4341E3
mov	bl, 1
jmp	short loc_4341E5

loc_4341E3:
xor	bl, bl

loc_4341E5:		; Memory
push	[ebp+var_40]
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
test	bl, bl
pop	ecx
jz	short loc_43425A
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], esi
mov	[ebp+var_18], esi
mov	[ebp+var_14], esi
call	sub_4034E3
lea	edx, [ebp+Memory]
mov	ecx, 80000001h
mov	byte ptr [ebp+var_4], 4
call	sub_4342EE
test	al, al
jnz	short loc_43422F
lea	edx, [ebp+Memory]
mov	ecx, 80000002h
call	sub_4342EE
test	al, al
jz	short loc_43424D

loc_43422F:
lea	eax, [ebp+Memory]
mov	ecx, edi
push	eax
call	sub_4128EF
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_28]	; Memory
call	sub_4284D8
pop	ecx
jmp	short loc_43426D

loc_43424D:		; Memory
push	[ebp+Memory]
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
pop	ecx

loc_43425A:
lea	eax, [ebp+var_28]
mov	ecx, edi
push	eax
call	sub_4128EF
push	[ebp+var_28]	; Memory
call	sub_4284D8

loc_43426D:
pop	ecx
mov	eax, edi
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_434139 endp



; Attributes: bp-based frame

sub_43427F proc	near

Filename= byte ptr -124h
var_1C=	dword ptr -1Ch
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_448470
call	__EH_prolog
sub	esp, 118h
and	[ebp+var_1C], 0
push	esi
lea	eax, [ebp+Filename]
push	104h		; nSize
push	eax		; lpFilename
mov	esi, ecx
push	hInstance	; hModule
call	ds:GetModuleFileNameA
lea	eax, [ebp+Filename]
lea	ecx, [ebp+Memory]
push	eax
call	sub_41E0DD
and	[ebp+var_4], 0
push	5Ch
lea	ecx, [ebp+Memory]
call	sub_42AFAA
inc	eax
lea	ecx, [ebp+Memory]
push	eax
push	esi
call	sub_41E16A
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_43427F endp



; Attributes: bp-based frame

sub_4342EE proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_448484
call	__EH_prolog
push	ecx
push	ebx
xor	ebx, ebx
push	esi
mov	esi, edx
mov	[ebp+var_10], ebx
push	20019h		; samDesired
mov	[ebp+var_4], ebx
push	off_45CA9C	; lpSubKey
push	ecx		; hKey
lea	ecx, [ebp+var_10]
call	sub_42D35B
test	eax, eax
jnz	short loc_434339
push	esi		; cbData
lea	ecx, [ebp+var_10]
push	off_45CAA0	; lpValueName
call	sub_42D67E
test	eax, eax
jnz	short loc_434339
mov	ecx, esi
call	sub_42C318
mov	bl, 1

loc_434339:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_10]
call	sub_42D390
mov	ecx, [ebp+var_C]
mov	al, bl
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_4342EE endp



; Attributes: bp-based frame

sub_434355 proc	near

var_38=	byte ptr -38h
var_28=	byte ptr -28h
var_18=	byte ptr -18h
var_17=	byte ptr -17h
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, 38h
push	ebx
push	esi
mov	esi, ecx
push	edi
mov	edi, ds:GetProcAddress
push	offset aGetmethodprope ; "GetMethodProperty"
mov	eax, [esi+10h]
mov	ecx, [esi+14h]
mov	[ebp+var_C], esi
mov	ebx, [ecx+eax*4-4]
push	dword ptr [ebx+14h] ; hModule
call	edi ; GetProcAddress
test	eax, eax
mov	[ebx+18h], eax
jz	loc_43441D
push	offset aGetnumberofmet ; "GetNumberOfMethods"
mov	[ebp+var_4], 1
push	dword ptr [ebx+14h] ; hModule
call	edi ; GetProcAddress
test	eax, eax
jz	short loc_4343A7
lea	ecx, [ebp+var_4]
push	ecx
call	eax
test	eax, eax
jnz	short loc_43441F

loc_4343A7:
xor	edi, edi
cmp	[ebp+var_4], edi
mov	[ebp+var_8], edi
jbe	short loc_43441D

loc_4343B1:
mov	eax, [esi+10h]
mov	ecx, [ebx+18h]
dec	eax
mov	edx, edi
mov	[ebp+var_14], eax
lea	eax, [ebp+var_18]
push	eax
lea	eax, [ebp+var_38]
push	eax
push	3
mov	[ebp+var_10], edi
call	sub_434424
test	eax, eax
jnz	short loc_43441F
mov	ecx, [ebx+18h]
lea	eax, [ebp+var_17]
push	eax
lea	eax, [ebp+var_28]
push	eax
push	2
mov	edx, edi
call	sub_434424
test	eax, eax
jnz	short loc_43441F
push	2Ch		; Size
call	sub_4284B1
test	eax, eax
pop	ecx
jz	short loc_434409
push	0Bh
lea	esi, [ebp+var_38]
pop	ecx
mov	edi, eax
rep movsd
mov	edi, [ebp+var_8]
mov	esi, [ebp+var_C]
jmp	short loc_43440B

loc_434409:
xor	eax, eax

loc_43440B:
push	eax
lea	ecx, [esi+1Ch]
call	sub_429907
inc	edi
cmp	edi, [ebp+var_4]
mov	[ebp+var_8], edi
jb	short loc_4343B1

loc_43441D:
xor	eax, eax

loc_43441F:
pop	edi
pop	esi
pop	ebx
leave
retn
sub_434355 endp



; Attributes: bp-based frame

sub_434424 proc	near

pvarg= VARIANTARG ptr -1Ch
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_448498
call	__EH_prolog
sub	esp, 10h
push	ebx
xor	ebx, ebx
push	esi
mov	word ptr [ebp+pvarg.anonymous_0], bx
mov	word ptr [ebp+pvarg.anonymous_0+2], bx
mov	esi, [ebp+arg_8]
lea	eax, [ebp+pvarg]
push	eax
mov	[ebp+var_4], ebx
push	[ebp+arg_0]
mov	[esi], bl
push	edx
call	ecx
cmp	eax, ebx
jz	short loc_434457
mov	ebx, eax
jmp	short loc_43447A

loc_434457:
cmp	word ptr [ebp+pvarg.anonymous_0], 8
jnz	short loc_43446F
push	edi
mov	edi, [ebp+arg_4]
mov	byte ptr [esi],	1
mov	esi, dword ptr [ebp+pvarg.anonymous_0+8]
movsd
movsd
movsd
movsd
pop	edi
jmp	short loc_43447A

loc_43446F:
cmp	word ptr [ebp+pvarg.anonymous_0], bx
jz	short loc_43447A
mov	ebx, 80004005h

loc_43447A:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
mov	ecx, [ebp+var_C]
mov	eax, ebx
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_434424 endp



; Attributes: bp-based frame

sub_434498 proc	near

var_4C=	dword ptr -4Ch
var_44=	dword ptr -44h
var_40=	dword ptr -40h
var_38=	dword ptr -38h
var_30=	dword ptr -30h
var_2C=	dword ptr -2Ch
var_24=	dword ptr -24h
Memory=	dword ptr -18h
var_14=	dword ptr -14h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_4484E4
call	__EH_prolog
sub	esp, 40h
push	ebx
mov	ebx, ecx
push	esi
push	edi
lea	ecx, [ebp+var_38]
call	sub_40337B
mov	esi, offset off_44B510
mov	[ebp+var_38], esi
xor	edi, edi
lea	ecx, [ebp+var_4C]
mov	[ebp+var_4], edi
call	sub_40337B
mov	[ebp+var_4C], esi
cmp	[ebp+arg_0], edi
mov	byte ptr [ebp+var_4], 1
jz	short loc_4344FA
push	[ebp+arg_0]
lea	ecx, [ebp+Memory]
call	sub_403091
lea	edx, [ebp+var_38]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 2
call	sub_4345F4
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
pop	ecx

loc_4344FA:
cmp	[ebp+arg_4], edi
jz	short loc_434526
push	[ebp+arg_4]
lea	ecx, [ebp+Memory]
call	sub_403091
lea	edx, [ebp+var_4C]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 3
call	sub_4345F4
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
pop	ecx

loc_434526:
cmp	[ebp+var_30], 0
jle	short loc_4345AA
add	ebx, 30h

loc_43452F:
lea	ecx, [ebp+var_24]
call	sub_403079
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 4
call	sub_403079
mov	eax, [ebp+var_2C]
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 5
push	dword ptr [eax+edi*4]
call	sub_40312C
cmp	edi, [ebp+var_44]
jge	short loc_434583
mov	eax, [ebp+var_40]
lea	ecx, [ebp+Memory]
push	dword ptr [eax+edi*4]
call	sub_40312C
mov	ecx, [ebp+Memory]
mov	edx, offset asc_45B41C ; "*"
call	sub_42828A
test	eax, eax
jnz	short loc_434583
and	[ebp+var_14], eax
mov	eax, [ebp+Memory]
and	word ptr [eax],	0

loc_434583:
lea	eax, [ebp+var_24]
mov	ecx, ebx
push	eax
call	sub_4353B2
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
inc	edi
pop	ecx
cmp	edi, [ebp+var_30]
pop	ecx
jl	short loc_43452F

loc_4345AA:
mov	[ebp+var_4C], esi
lea	ecx, [ebp+var_4C]
mov	byte ptr [ebp+var_4], 6
call	sub_428327
and	byte ptr [ebp+var_4], 0
lea	ecx, [ebp+var_4C]
call	sub_4282FE
mov	[ebp+var_38], esi
lea	ecx, [ebp+var_38]
mov	[ebp+var_4], 7
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_38]
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_434498 endp



; Attributes: bp-based frame

sub_4345F4 proc	near

Memory=	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_4= dword ptr -4

mov	eax, offset loc_4484F8
call	__EH_prolog
sub	esp, 14h
push	ebx
push	esi
push	edi
mov	edi, ecx
mov	ecx, edx
mov	[ebp+var_14], edx
call	sub_428327
xor	esi, esi
lea	ecx, [ebp+Memory]
push	3
mov	[ebp+Memory], esi
mov	[ebp+var_1C], esi
mov	[ebp+var_18], esi
call	sub_403396
mov	ebx, [edi+4]
mov	[ebp+var_4], esi
cmp	ebx, esi
jz	short loc_434681
mov	[ebp+var_10], esi
jle	short loc_434670

loc_434634:
mov	eax, [edi]
mov	ecx, [ebp+var_10]
mov	ax, [eax+ecx*2]
cmp	ax, 20h
jnz	short loc_43465F
cmp	[ebp+var_1C], esi
jz	short loc_434668
mov	ecx, [ebp+var_14]
lea	eax, [ebp+Memory]
push	eax
call	sub_4032B4
mov	eax, [ebp+Memory]
mov	[ebp+var_1C], esi
mov	[eax], si
jmp	short loc_434668

loc_43465F:
push	eax
lea	ecx, [ebp+Memory]
call	sub_40316A

loc_434668:
inc	[ebp+var_10]
cmp	[ebp+var_10], ebx
jl	short loc_434634

loc_434670:
cmp	[ebp+var_1C], esi
jz	short loc_434681
mov	ecx, [ebp+var_14]
lea	eax, [ebp+Memory]
push	eax
call	sub_4032B4

loc_434681:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_4345F4 endp



; Attributes: bp-based frame

sub_434699 proc	near

var_B0=	dword ptr -0B0h
var_AC=	dword ptr -0ACh
var_A8=	byte ptr -0A8h
var_98=	byte ptr -98h
var_8C=	byte ptr -8Ch
var_6C=	byte ptr -6Ch
Dst= dword ptr -64h
var_4C=	byte ptr -4Ch
var_48=	dword ptr -48h
var_44=	dword ptr -44h
var_40=	dword ptr -40h
Memory=	dword ptr -3Ch
var_38=	dword ptr -38h
var_34=	dword ptr -34h
var_30=	dword ptr -30h
pvarg= VARIANTARG ptr -2Ch
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_4= dword ptr -4

mov	eax, offset unknown_libname_33 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
sub	esp, 0A4h
mov	eax, [ecx+10h]
mov	[ebp+var_30], ecx
mov	ecx, [ecx+14h]
push	ebx
push	esi
push	edi
mov	esi, [ecx+eax*4-4]
mov	edi, ds:GetProcAddress
push	offset aGethandlerprop ; "GetHandlerProperty2"
xor	ebx, ebx
push	dword ptr [esi+14h] ; hModule
mov	[ebp+var_18], ebx
call	edi ; GetProcAddress
cmp	eax, ebx
mov	[ebp+var_10], eax
jnz	short loc_4346EA
push	offset aGethandlerpr_0 ; "GetHandlerProperty"
push	dword ptr [esi+14h] ; hModule
call	edi ; GetProcAddress
cmp	eax, ebx
mov	[ebp+var_18], eax
jz	loc_4348F3

loc_4346EA:		; "GetNumberOfFormats"
push	offset aGetnumberoffor
mov	[ebp+var_14], 1
push	dword ptr [esi+14h] ; hModule
call	edi ; GetProcAddress
cmp	eax, ebx
jz	short loc_43470D
lea	ecx, [ebp+var_14]
push	ecx
call	eax
cmp	eax, ebx
jnz	loc_4348F5

loc_43470D:
cmp	[ebp+var_10], ebx
jnz	short loc_434719
mov	[ebp+var_14], 1

loc_434719:
xor	esi, esi
cmp	[ebp+var_14], ebx
mov	[ebp+var_1C], esi
jbe	loc_4348F3

loc_434727:
lea	ecx, [ebp+var_B0]
call	sub_43493A
mov	eax, [ebp+var_30]
mov	edx, [ebp+var_10]
mov	ecx, [ebp+var_18]
mov	[ebp+var_4], ebx
mov	eax, [eax+10h]
mov	[ebp+var_AC], esi
dec	eax
mov	[ebp+var_B0], eax
lea	eax, [ebp+var_8C]
push	eax
push	ebx
push	esi
call	sub_434A25
cmp	eax, ebx
jnz	loc_434904
mov	word ptr [ebp+pvarg.anonymous_0], bx
mov	word ptr [ebp+pvarg.anonymous_0+2], bx
mov	edx, [ebp+var_10]
mov	ecx, [ebp+var_18]
lea	eax, [ebp+pvarg]
mov	byte ptr [ebp+var_4], 1
push	eax
push	1
push	esi
call	sub_43499C
test	eax, eax
jnz	short loc_43478D
cmp	word ptr [ebp+pvarg.anonymous_0], 8
jz	short loc_4347AC

loc_43478D:		; pvarg
lea	ecx, [ebp+pvarg]
mov	byte ptr [ebp+var_4], bl
call	sub_42CDE1
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_B0]
call	sub_434A93
jmp	loc_4348E6

loc_4347AC:
mov	esi, dword ptr [ebp+pvarg.anonymous_0+8]
lea	edi, [ebp+var_A8]
movsd
movsd
movsd
lea	ecx, [ebp+pvarg] ; pvarg
movsd
call	sub_42CDE1
push	3
lea	ecx, [ebp+var_48]
mov	[ebp+var_48], ebx
mov	[ebp+var_44], ebx
mov	[ebp+var_40], ebx
call	sub_403396
push	3
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 2
mov	[ebp+Memory], ebx
mov	[ebp+var_38], ebx
mov	[ebp+var_34], ebx
call	sub_403396
mov	esi, [ebp+var_1C]
mov	edi, [ebp+var_18]
mov	edx, [ebp+var_10]
lea	eax, [ebp+var_48]
push	eax
push	2
push	esi
mov	ecx, edi
mov	byte ptr [ebp+var_4], 3
call	sub_434A25
cmp	eax, ebx
jnz	loc_434908
mov	edx, [ebp+var_10]
lea	eax, [ebp+Memory]
push	eax
push	3
push	esi
mov	ecx, edi
call	sub_434A25
cmp	eax, ebx
jnz	loc_434908
push	[ebp+Memory]
lea	ecx, [ebp+var_B0]
push	[ebp+var_48]
call	sub_434498
mov	edx, [ebp+var_10]
lea	eax, [ebp+var_98]
push	eax
push	4
push	esi
mov	ecx, edi
call	sub_4349B6
cmp	[ebp+var_98], bl
jz	short loc_434865
mov	edx, [ebp+var_10]
lea	eax, [ebp+var_4C]
push	eax
push	5
push	esi
mov	ecx, edi
call	sub_4349B6

loc_434865:
mov	edx, [ebp+var_10]
lea	eax, [ebp+pvarg]
push	eax
push	6
push	esi
mov	ecx, edi
call	sub_43499C
test	eax, eax
jnz	short loc_4348A5
cmp	word ptr [ebp+pvarg.anonymous_0], 8
jnz	short loc_4348A5
push	dword ptr [ebp+pvarg.anonymous_0+8] ; bstr
call	ds:SysStringByteLen
mov	esi, eax
lea	ecx, [ebp+var_6C]
push	esi		; Size
call	sub_41B339
push	esi		; Size
push	dword ptr [ebp+pvarg.anonymous_0+8] ; Src
push	[ebp+Dst]	; Dst
call	ds:memmove
add	esp, 0Ch

loc_4348A5:
lea	eax, [ebp+var_B0]
push	eax
mov	eax, [ebp+var_30]
lea	ecx, [eax+44h]
call	sub_4354B1
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_48]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], bl
pop	ecx
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_B0]
call	sub_434A93
mov	esi, [ebp+var_1C]

loc_4348E6:
inc	esi
cmp	esi, [ebp+var_14]
mov	[ebp+var_1C], esi
jb	loc_434727

loc_4348F3:
xor	eax, eax

loc_4348F5:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn

loc_434904:
mov	esi, eax
jmp	short loc_434927

loc_434908:		; Memory
push	[ebp+Memory]
mov	esi, eax
call	sub_4284D8
push	[ebp+var_48]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], bl
pop	ecx
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1

loc_434927:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_B0]
call	sub_434A93
mov	eax, esi
jmp	short loc_4348F5
sub_434699 endp




sub_43493A proc	near
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
push	3
or	dword ptr [esi], 0FFFFFFFFh
lea	ecx, [esi+24h]
mov	[esi+18h], bl
mov	[esi+1Ch], ebx
mov	[esi+20h], ebx
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
push	4
mov	[esi+34h], ebx
pop	eax
mov	[esi+38h], ebx
mov	[esi+3Ch], ebx
mov	[esi+40h], eax
mov	dword ptr [esi+30h], offset off_44C5C8
mov	[esi+48h], ebx
mov	[esi+4Ch], ebx
mov	dword ptr [esi+44h], offset off_44C434
mov	[esi+54h], ebx
mov	[esi+58h], ebx
mov	[esi+5Ch], ebx
mov	[esi+60h], eax
mov	dword ptr [esi+50h], offset off_44B510
mov	[esi+64h], bl
mov	eax, esi
pop	esi
pop	ebx
retn
sub_43493A endp



; Attributes: bp-based frame

sub_43499C proc	near

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

push	ebp
mov	ebp, esp
push	[ebp+arg_8]
test	edx, edx
push	[ebp+arg_4]
jz	short loc_4349B0
push	[ebp+arg_0]
call	edx
jmp	short loc_4349B2

loc_4349B0:
call	ecx

loc_4349B2:
pop	ebp
retn	0Ch
sub_43499C endp



; Attributes: bp-based frame

sub_4349B6 proc	near

pvarg= VARIANTARG ptr -1Ch
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_44853C
call	__EH_prolog
sub	esp, 10h
push	esi
xor	esi, esi
mov	word ptr [ebp+pvarg.anonymous_0], si
mov	word ptr [ebp+pvarg.anonymous_0+2], si
lea	eax, [ebp+pvarg]
mov	[ebp+var_4], esi
push	eax
push	[ebp+arg_4]
push	[ebp+arg_0]
call	sub_43499C
cmp	eax, esi
jz	short loc_4349E8
mov	esi, eax
jmp	short loc_434A08

loc_4349E8:
cmp	word ptr [ebp+pvarg.anonymous_0], 0Bh
jnz	short loc_4349FD
cmp	word ptr [ebp+pvarg.anonymous_0+8], si
mov	ecx, [ebp+arg_8]
setnz	al
mov	[ecx], al
jmp	short loc_434A08

loc_4349FD:
cmp	word ptr [ebp+pvarg.anonymous_0], si
jz	short loc_434A08
mov	esi, 80004005h

loc_434A08:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	esi
mov	large fs:0, ecx
leave
retn	0Ch
sub_4349B6 endp



; Attributes: bp-based frame

sub_434A25 proc	near

pvarg= VARIANTARG ptr -1Ch
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_448550
call	__EH_prolog
sub	esp, 10h
push	esi
xor	esi, esi
mov	word ptr [ebp+pvarg.anonymous_0], si
mov	word ptr [ebp+pvarg.anonymous_0+2], si
lea	eax, [ebp+pvarg]
mov	[ebp+var_4], esi
push	eax
push	[ebp+arg_4]
push	[ebp+arg_0]
call	sub_43499C
cmp	eax, esi
jz	short loc_434A57
mov	esi, eax
jmp	short loc_434A76

loc_434A57:
cmp	word ptr [ebp+pvarg.anonymous_0], 8
jnz	short loc_434A6B
push	dword ptr [ebp+pvarg.anonymous_0+8]
mov	ecx, [ebp+arg_8]
call	sub_404722
jmp	short loc_434A76

loc_434A6B:
cmp	word ptr [ebp+pvarg.anonymous_0], si
jz	short loc_434A76
mov	esi, 80004005h

loc_434A76:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	esi
mov	large fs:0, ecx
leave
retn	0Ch
sub_434A25 endp



; Attributes: bp-based frame

sub_434A93 proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44858D
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
lea	edi, [esi+50h]
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44B510
mov	ecx, edi
mov	byte ptr [ebp+var_4], 3
call	sub_428327
mov	ecx, edi
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE
push	dword ptr [esi+4Ch] ; Memory
mov	dword ptr [esi+44h], offset off_44C434
call	sub_4284D8
lea	edi, [esi+30h]
pop	ecx
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44C5C8
mov	ecx, edi
mov	byte ptr [ebp+var_4], 4
call	sub_428327
and	byte ptr [ebp+var_4], 0
mov	ecx, edi
call	sub_4282FE
push	dword ptr [esi+24h] ; Memory
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_434A93 endp



; Attributes: bp-based frame

sub_434B15 proc	near

var_5C=	dword ptr -5Ch
var_54=	dword ptr -54h
var_50=	dword ptr -50h
var_48=	dword ptr -48h
var_44=	dword ptr -44h
var_40=	dword ptr -40h
var_3C=	dword ptr -3Ch
var_38=	dword ptr -38h
var_2C=	dword ptr -2Ch
Memory=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4485C8
call	__EH_prolog
sub	esp, 50h
mov	edx, [ebp+arg_0]
mov	[ebp+var_14], ecx
push	ebx
push	64h		; uID
lea	ecx, [ebp+var_2C]
call	sub_42DB28
xor	ebx, ebx
lea	ecx, [ebp+var_5C]
mov	[ebp+var_4], ebx
call	sub_40337B
mov	[ebp+var_5C], offset off_44B510
lea	edx, [ebp+var_5C]
lea	ecx, [ebp+var_2C]
mov	byte ptr [ebp+var_4], 1
call	sub_4345F4
cmp	[ebp+var_54], ebx
mov	[ebp+arg_0], ebx
jle	loc_434C3F
push	esi
push	edi

loc_434B64:
mov	eax, [ebp+var_50]
mov	ecx, [ebp+arg_0]
push	ebx
push	3Ah
mov	esi, [eax+ecx*4]
mov	ecx, esi
call	sub_40B7E1
push	3
lea	ecx, [ebp+var_48]
mov	edi, eax
mov	[ebp+var_48], ebx
mov	[ebp+var_44], ebx
mov	[ebp+var_40], ebx
call	sub_403396
or	[ebp+var_3C], 0FFFFFFFFh
cmp	edi, ebx
mov	byte ptr [ebp+var_4], 2
jge	short loc_434B9D
mov	edi, [esi+4]
jmp	short loc_434BEF

loc_434B9D:
lea	eax, [edi+1]
mov	ecx, esi
push	eax
lea	eax, [ebp+Memory]
push	eax
call	sub_405246
cmp	[ebp+var_1C], ebx
mov	byte ptr [ebp+var_4], 3
jz	short loc_434BE2
mov	ecx, [ebp+Memory]
lea	edx, [ebp+var_10]
call	sub_428693
mov	[ebp+var_3C], eax
mov	eax, [ebp+var_10]
cmp	[eax], bx
jz	short loc_434BE2
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_48]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
pop	ecx
jmp	short loc_434C2D

loc_434BE2:		; Memory
push	[ebp+Memory]
mov	byte ptr [ebp+var_4], 2
call	sub_4284D8
pop	ecx

loc_434BEF:
lea	eax, [ebp+var_38]
push	edi
push	eax
mov	ecx, esi
call	sub_403228
push	eax
lea	ecx, [ebp+var_48]
mov	byte ptr [ebp+var_4], 4
call	sub_40312C
push	[ebp+var_38]	; Memory
mov	byte ptr [ebp+var_4], 2
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_48]
mov	ecx, [ebp+var_14]
push	eax
call	sub_435413
push	[ebp+var_48]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8

loc_434C2D:
inc	[ebp+arg_0]
pop	ecx
mov	eax, [ebp+arg_0]
cmp	eax, [ebp+var_54]
jl	loc_434B64
pop	edi
pop	esi

loc_434C3F:
mov	[ebp+var_5C], offset off_44B510
lea	ecx, [ebp+var_5C]
mov	byte ptr [ebp+var_4], 5
call	sub_428327
lea	ecx, [ebp+var_5C]
mov	byte ptr [ebp+var_4], bl
call	sub_4282FE
push	[ebp+var_2C]	; Memory
call	sub_4284D8
pop	ecx
pop	ebx
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn	4
sub_434B15 endp




sub_434C75 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [esp+arg_4]
push	ebx
push	esi
mov	esi, ecx
or	dword ptr [eax], 0FFFFFFFFh
xor	ebx, ebx
cmp	[esi+8], ebx
push	edi
jle	short loc_434CA5

loc_434C88:
mov	eax, [esi+0Ch]
mov	edi, [eax+ebx*4]
mov	eax, [esp+0Ch+arg_0]
mov	edx, [edi]
mov	ecx, [eax]
call	sub_4282B1
test	eax, eax
jz	short loc_434CAD
inc	ebx
cmp	ebx, [esi+8]
jl	short loc_434C88

loc_434CA5:
xor	al, al

loc_434CA7:
pop	edi
pop	esi
pop	ebx
retn	8

loc_434CAD:
mov	ecx, [esp+0Ch+arg_4]
mov	eax, [edi+0Ch]
mov	[ecx], eax
mov	al, 1
jmp	short loc_434CA7
sub_434C75 endp



; Attributes: bp-based frame

sub_434CBA proc	near

var_3C=	byte ptr -3Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_4485E4
call	__EH_prolog
sub	esp, 30h
cmp	byte ptr [ebp+arg_4], 0
push	ebx
mov	ebx, ecx
jz	short loc_434D0B
and	[ebp+arg_4], 0
mov	eax, [ebp+arg_0]
and	[ebp+var_4], 0
push	2		; dwFlags
lea	ecx, [ebp+arg_4]
mov	eax, [eax]
push	eax		; lpLibFileName
call	sub_42996A
test	al, al
jnz	short loc_434CFF
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+arg_4]
call	sub_429929
xor	eax, eax
jmp	loc_434DC3

loc_434CFF:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+arg_4]
call	sub_429929

loc_434D0B:
push	esi
push	edi
lea	ecx, [ebp+var_3C]
call	sub_434DD2
lea	edi, [ebx+8]
push	eax
mov	ecx, edi
mov	[ebp+var_4], 1
call	sub_43546A
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_3C]
call	sub_434E61
mov	eax, [edi+8]
mov	ecx, [edi+0Ch]
push	[ebp+arg_0]
mov	esi, [ecx+eax*4-4]
lea	ecx, [esi+20h]
call	sub_403244
mov	eax, [ebp+arg_0]
and	[ebp+var_10], 0
lea	ecx, [esi+14h]
mov	eax, [eax]
push	eax		; lpLibFileName
call	sub_429989
test	al, al
jz	short loc_434DB7
push	dword ptr [esi+14h]
mov	ecx, esi
call	sub_434B15
push	offset ProcName	; "CreateObject"
push	dword ptr [esi+14h] ; hModule
call	ds:GetProcAddress
test	eax, eax
mov	[esi+1Ch], eax
jz	short loc_434DB7
mov	esi, [ebx+24h]
mov	ecx, ebx
call	sub_434355
cmp	[ebx+24h], esi
mov	[ebp+var_10], eax
setnz	byte ptr [ebp+arg_4+3]
test	eax, eax
jnz	short loc_434DB1
mov	esi, [ebx+4Ch]
mov	ecx, ebx
call	sub_434699
cmp	byte ptr [ebp+arg_4+3],	0
mov	[ebp+var_10], eax
jnz	short loc_434DAD
cmp	[ebx+4Ch], esi
jz	short loc_434DB7

loc_434DAD:
mov	byte ptr [ebp+arg_4+3],	1

loc_434DB1:
cmp	byte ptr [ebp+arg_4+3],	0
jnz	short loc_434DBE

loc_434DB7:
mov	ecx, edi
call	sub_42832F

loc_434DBE:
mov	eax, [ebp+var_10]
pop	edi
pop	esi

loc_434DC3:
mov	ecx, [ebp+var_C]
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_434CBA endp



; Attributes: bp-based frame

sub_434DD2 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_448603
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
xor	eax, eax
mov	[ebp+var_10], esi
mov	[esi+4], eax
mov	[esi+8], eax
mov	[esi+0Ch], eax
mov	dword ptr [esi+10h], 4
mov	dword ptr [esi], offset	off_44C5D0
mov	[ebp+var_4], eax
mov	[esi+14h], eax
lea	ecx, [esi+20h]
mov	[esi+18h], eax
push	3
mov	byte ptr [ebp+var_4], 1
mov	[ecx], eax
mov	[ecx+4], eax
mov	[ecx+8], eax
call	sub_4034E3
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_434DD2 endp

; START	OF FUNCTION CHUNK FOR sub_4485F0

loc_434E29:
mov	eax, offset loc_448618
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp-10h], esi
mov	dword ptr [esi], offset	off_44C5D0
and	dword ptr [ebp-4], 0
call	sub_428327
or	dword ptr [ebp-4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp-0Ch]
pop	esi
mov	large fs:0, ecx
leave
retn
; END OF FUNCTION CHUNK	FOR sub_4485F0


; Attributes: bp-based frame

sub_434E61 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_448634
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
push	dword ptr [esi+20h] ; Memory
and	[ebp+var_4], 0
call	sub_4284D8
pop	ecx
lea	ecx, [esi+14h]
call	sub_429929
mov	dword ptr [esi], offset	off_44C5D0
mov	ecx, esi
mov	[ebp+var_4], 1
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_434E61 endp



; Attributes: bp-based frame

sub_434EB3 proc	near

var_78=	byte ptr -78h
var_58=	dword ptr -58h
var_50=	dword ptr -50h
var_40=	dword ptr -40h
var_3C=	dword ptr -3Ch
var_30=	dword ptr -30h
var_24=	dword ptr -24h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_448670
call	__EH_prolog
sub	esp, 6Ch
push	esi
push	edi
mov	edi, ecx
push	offset asc_45BF2C ; "*"
lea	ecx, [ebp+var_24]
call	sub_41E0DD
mov	edx, [ebp+arg_0]
and	[ebp+var_4], 0
push	eax
lea	ecx, [ebp+Memory]
call	sub_41E22F
or	[ebp+var_40], 0FFFFFFFFh
push	eax
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 2
call	sub_4128EF
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_24]	; Memory
mov	byte ptr [ebp+var_4], 4
call	sub_4284D8
pop	ecx
pop	ecx
lea	ecx, [ebp+var_78]
call	sub_42A52D
mov	byte ptr [ebp+var_4], 6

loc_434F14:
lea	eax, [ebp+var_78]
lea	ecx, [ebp+var_40]
push	eax
call	sub_42B6E2
test	al, al
jz	short loc_434F60
mov	eax, [ebp+var_58]
shr	eax, 4
test	al, 1
jnz	short loc_434F14
mov	edx, [ebp+arg_0]
lea	eax, [ebp+var_50]
push	eax
lea	ecx, [ebp+var_30]
call	sub_41E22F
push	1
push	eax
mov	ecx, edi
mov	byte ptr [ebp+var_4], 7
call	sub_434CBA
push	[ebp+var_30]	; Memory
mov	esi, eax
mov	byte ptr [ebp+var_4], 6
call	sub_4284D8
test	esi, esi
pop	ecx
jz	short loc_434F14
jmp	short loc_434F62

loc_434F60:
xor	esi, esi

loc_434F62:		; Memory
push	[ebp+var_50]
call	sub_4284D8
push	[ebp+var_3C]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx
pop	ecx
lea	ecx, [ebp+var_40]
call	sub_42B047
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_434EB3 endp



; Attributes: bp-based frame

sub_434F92 proc	near

var_94=	byte ptr -94h
var_7C=	byte ptr -7Ch
var_78=	dword ptr -78h
var_74=	dword ptr -74h
var_70=	byte ptr -70h
var_50=	byte ptr -50h
Dst= dword ptr -48h
var_30=	byte ptr -30h
var_2C=	dword ptr -2Ch
Memory=	dword ptr -20h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4486A7
call	__EH_prolog
sub	esp, 88h
push	esi
push	edi
push	hInstance
mov	edi, ecx
lea	ecx, [edi+30h]
call	sub_434B15
lea	ecx, [edi+44h]
call	sub_428327
lea	ecx, [edi+1Ch]
call	sub_428327
and	[ebp+var_10], 0
cmp	dword_45DA40, 0
jbe	loc_43507A
push	ebx
mov	[ebp+var_14], offset unk_45D980

loc_434FDD:
mov	eax, [ebp+var_14]
lea	ecx, [ebp+var_94]
mov	esi, [eax]
call	sub_43493A
push	dword ptr [esi]
and	[ebp+var_4], 0
lea	ecx, [ebp+var_70]
call	sub_404722
mov	eax, [esi+28h]
lea	ecx, [ebp+var_94]
mov	[ebp+var_78], eax
mov	eax, [esi+2Ch]
mov	[ebp+var_74], eax
push	dword ptr [esi+8]
push	dword ptr [esi+4]
call	sub_434498
cmp	dword ptr [esi+2Ch], 0
lea	ecx, [ebp+var_50]
setnz	al
mov	[ebp+var_7C], al
mov	al, [esi+24h]
mov	[ebp+var_30], al
mov	ebx, [esi+20h]
push	ebx		; Size
call	sub_41B339
add	esi, 0Dh
push	ebx		; Size
push	esi		; Src
push	[ebp+Dst]	; Dst
call	ds:memmove
add	esp, 0Ch
lea	eax, [ebp+var_94]
lea	ecx, [edi+44h]
push	eax
call	sub_4354B1
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_94]
call	sub_434A93
inc	[ebp+var_10]
add	[ebp+var_14], 4
mov	eax, [ebp+var_10]
cmp	eax, dword_45DA40
jb	loc_434FDD
pop	ebx

loc_43507A:
lea	ecx, [ebp+var_2C]
call	sub_434139
push	off_45CA98
lea	edx, [ebp+var_2C]
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], 1
call	sub_41E280
push	0
push	eax
mov	ecx, edi
mov	byte ptr [ebp+var_4], 2
call	sub_434CBA
push	[ebp+Memory]	; Memory
mov	esi, eax
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
test	esi, esi
pop	ecx
jnz	short loc_435115
push	offset aCodecs_0 ; "Codecs\\"
lea	edx, [ebp+var_2C]
lea	ecx, [ebp+Memory]
call	sub_41E280
push	eax
mov	ecx, edi
mov	byte ptr [ebp+var_4], 3
call	sub_434EB3
push	[ebp+Memory]	; Memory
mov	esi, eax
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
test	esi, esi
pop	ecx
jnz	short loc_435115
push	offset aFormats_0 ; "Formats\\"
lea	edx, [ebp+var_2C]
lea	ecx, [ebp+Memory]
call	sub_41E280
push	eax
mov	ecx, edi
mov	byte ptr [ebp+var_4], 4
call	sub_434EB3
push	[ebp+Memory]	; Memory
mov	esi, eax
call	sub_4284D8
test	esi, esi
pop	ecx
jnz	short $+2

loc_435115:		; Memory
push	[ebp+var_2C]
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_434F92 endp




sub_43512E proc	near

arg_0= dword ptr  4

push	esi
push	edi
mov	esi, ecx
xor	edi, edi
cmp	[esi+38h], edi
jle	short loc_435156

loc_435139:
mov	eax, [esi+3Ch]
mov	eax, [eax+edi*4]
mov	edx, [eax]
mov	eax, [esp+8+arg_0]
mov	ecx, [eax]
call	sub_4282B1
test	eax, eax
jz	short loc_43515E
inc	edi
cmp	edi, [esi+38h]
jl	short loc_435139

loc_435156:
or	eax, 0FFFFFFFFh

loc_435159:
pop	edi
pop	esi
retn	4

loc_43515E:
mov	eax, edi
jmp	short loc_435159
sub_43512E endp




sub_435162 proc	near

arg_0= dword ptr  4

push	esi
push	edi
mov	esi, ecx
xor	edi, edi
cmp	[esi+4Ch], edi
jle	short loc_43518B

loc_43516D:
mov	eax, [esi+50h]
mov	ecx, [esp+8+arg_0]
mov	eax, [eax+edi*4]
mov	edx, [ecx]
mov	ecx, [eax+24h]
call	sub_4282B1
test	eax, eax
jz	short loc_435193
inc	edi
cmp	edi, [esi+4Ch]
jl	short loc_43516D

loc_43518B:
or	eax, 0FFFFFFFFh

loc_43518E:
pop	edi
pop	esi
retn	4

loc_435193:
mov	eax, edi
jmp	short loc_43518E
sub_435162 endp



; Attributes: bp-based frame

sub_435197 proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_4486BC
call	__EH_prolog
sub	esp, 10h
push	ebx
mov	[ebp+var_10], ecx
mov	ecx, [ebp+arg_4]
push	esi
push	edi
call	sub_428327
mov	edi, [ebp+arg_0]
xor	esi, esi
mov	edx, [edi+4]
test	edx, edx
jle	loc_435242

loc_4351C2:
mov	ebx, [edi]
lea	eax, [ebx+esi*2]

loc_4351C7:
mov	cx, [eax]
cmp	cx, 2Eh
jz	short loc_4351D9
test	cx, cx
jz	short loc_4351E1
inc	eax
inc	eax
jmp	short loc_4351C7

loc_4351D9:
sub	eax, ebx
sar	eax, 1
mov	ebx, eax
jmp	short loc_4351E4

loc_4351E1:
or	ebx, 0FFFFFFFFh

loc_4351E4:
test	ebx, ebx
jge	short loc_4351EA
mov	ebx, edx

loc_4351EA:
mov	eax, ebx
mov	ecx, edi
sub	eax, esi
push	eax
lea	eax, [ebp+Memory]
push	esi
push	eax
call	sub_403434
mov	ecx, [ebp+var_10]
and	[ebp+var_4], 0
lea	eax, [ebp+Memory]
push	eax
call	sub_435162
mov	esi, eax
test	esi, esi
jge	short loc_435222
mov	ecx, [ebp+Memory]
mov	edx, offset asc_45B41C ; "*"
call	sub_42828A
test	eax, eax
jnz	short loc_435255

loc_435222:
mov	ecx, [ebp+arg_4]
push	esi
call	sub_429907
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
lea	esi, [ebx+1]
call	sub_4284D8
mov	edx, [edi+4]
pop	ecx
cmp	esi, edx
jl	short loc_4351C2

loc_435242:
mov	al, 1

loc_435244:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8

loc_435255:
mov	ecx, [ebp+arg_4]
call	sub_428327
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
xor	al, al
jmp	short loc_435244
sub_435197 endp



; Attributes: bp-based frame

sub_43526A proc	near

pvarg= VARIANTARG ptr -2Ch
Src= word ptr -1Ch
var_1A=	word ptr -1Ah
var_C= dword ptr -0Ch
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

mov	eax, offset loc_4486D8
call	__EH_prolog
sub	esp, 20h
mov	ecx, [ebp+arg_0]
mov	edx, [ebp+arg_4]
cmp	[ebp+arg_8], 7
mov	eax, [ecx+28h]
mov	eax, [eax+edx*4]
jnz	short loc_4352B6
xor	ecx, ecx
mov	[ebp+Src], cx
mov	[ebp+var_1A], cx
mov	al, [eax+21h]
mov	[ebp+var_4], ecx
push	eax
lea	ecx, [ebp+Src]
call	sub_42CD4D
push	[ebp+arg_C]	; pvarg
lea	ecx, [ebp+Src]	; Src
call	sub_42CE85
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+Src]
jmp	short loc_4352EB

loc_4352B6:
cmp	[ebp+arg_8], 8
jnz	short loc_4352F4
xor	ecx, ecx
mov	word ptr [ebp+pvarg.anonymous_0], cx
mov	word ptr [ebp+pvarg.anonymous_0+2], cx
mov	al, [eax+20h]
lea	ecx, [ebp+pvarg]
push	eax
mov	[ebp+var_4], 1
call	sub_42CD4D
push	[ebp+arg_C]	; pvarg
lea	ecx, [ebp+pvarg] ; Src
call	sub_42CE85
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg

loc_4352EB:
call	sub_42CDE1
xor	eax, eax
jmp	short loc_435309

loc_4352F4:
push	[ebp+arg_C]
mov	edx, [eax+24h]
mov	ecx, [ecx+14h]
push	[ebp+arg_8]
mov	ecx, [ecx+edx*4]
push	dword ptr [eax+28h]
call	dword ptr [ecx+18h]

loc_435309:
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn	10h
sub_43526A endp




sub_435317 proc	near

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

mov	ecx, [esp+arg_0]
mov	edx, [esp+arg_4]
mov	eax, [ecx+28h]
mov	eax, [eax+edx*4]
cmp	byte ptr [eax+21h], 0
jz	short loc_435345
push	[esp+arg_C]
mov	edx, [eax+24h]
mov	ecx, [ecx+14h]
add	eax, 10h
push	[esp+4+arg_8]
mov	ecx, [ecx+edx*4]
push	eax
call	dword ptr [ecx+1Ch]
jmp	short locret_435347

loc_435345:
xor	eax, eax

locret_435347:
retn	10h
sub_435317 endp




sub_43534A proc	near

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

mov	ecx, [esp+arg_0]
mov	edx, [esp+arg_4]
mov	eax, [ecx+28h]
mov	eax, [eax+edx*4]
cmp	byte ptr [eax+20h], 0
jz	short loc_435375
push	[esp+arg_C]
mov	edx, [eax+24h]
mov	ecx, [ecx+14h]
push	[esp+4+arg_8]
mov	ecx, [ecx+edx*4]
push	eax
call	dword ptr [ecx+1Ch]
jmp	short locret_435377

loc_435375:
xor	eax, eax

locret_435377:
retn	10h
sub_43534A endp



; Attributes: bp-based frame

sub_43537A proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4486EC
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44C5C8
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_43537A endp



; Attributes: bp-based frame

sub_4353B2 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_44870A
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	ebx, ecx
push	18h		; Size
call	sub_4284B1
mov	esi, eax
pop	ecx
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
test	esi, esi
jz	short loc_4353F5
push	edi
mov	edi, [ebp+arg_0]
push	edi
mov	ecx, esi
call	sub_4030F2
add	edi, 0Ch
lea	ecx, [esi+0Ch]
push	edi
mov	byte ptr [ebp+var_4], 1
call	sub_4030F2
pop	edi
jmp	short loc_4353F7

loc_4353F5:
xor	esi, esi

loc_4353F7:
or	[ebp+var_4], 0FFFFFFFFh
push	esi
mov	ecx, ebx
call	sub_429907
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_4353B2 endp



; Attributes: bp-based frame

sub_435413 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset unknown_libname_35 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	ebx, ecx
push	10h		; Size
call	sub_4284B1
mov	esi, eax
pop	ecx
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
test	esi, esi
jz	short loc_43544C
push	edi
mov	edi, [ebp+arg_0]
push	edi
mov	ecx, esi
call	sub_4030F2
mov	eax, [edi+0Ch]
pop	edi
mov	[esi+0Ch], eax
jmp	short loc_43544E

loc_43544C:
xor	esi, esi

loc_43544E:
or	[ebp+var_4], 0FFFFFFFFh
push	esi
mov	ecx, ebx
call	sub_429907
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_435413 endp



; Attributes: bp-based frame

sub_43546A proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset unknown_libname_36 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	2Ch		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_10], ecx
xor	eax, eax
cmp	ecx, eax
mov	[ebp+var_4], eax
jz	short loc_435496
push	[ebp+arg_0]
call	sub_435568

loc_435496:
or	[ebp+var_4], 0FFFFFFFFh
push	eax
mov	ecx, esi
call	sub_429907
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_43546A endp



; Attributes: bp-based frame

sub_4354B1 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset unknown_libname_37 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	68h		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_10], ecx
xor	eax, eax
cmp	ecx, eax
mov	[ebp+var_4], eax
jz	short loc_4354DD
push	[ebp+arg_0]
call	sub_4355BB

loc_4354DD:
or	[ebp+var_4], 0FFFFFFFFh
push	eax
mov	ecx, esi
call	sub_429907
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_4354B1 endp




; int __thiscall sub_4354F8(void *Memory, char)
sub_4354F8 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_43537A
test	[esp+4+arg_0], 1
jz	short loc_43550E
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_43550E:
mov	eax, esi
pop	esi
retn	4
sub_4354F8 endp




; int __thiscall sub_435514(void *Memory, char)
sub_435514 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_435530
test	[esp+4+arg_0], 1
jz	short loc_43552A
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_43552A:
mov	eax, esi
pop	esi
retn	4
sub_435514 endp



; Attributes: bp-based frame

sub_435530 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_448758
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44C5D0
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_435530 endp



; Attributes: bp-based frame

sub_435568 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_448777
call	__EH_prolog
push	ecx
push	esi
push	edi
mov	edi, [ebp+arg_0]
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
call	sub_4356A8
mov	eax, [edi+14h]
and	[ebp+var_4], 0
mov	[esi+14h], eax
mov	eax, [edi+18h]
add	edi, 20h
mov	[esi+18h], eax
mov	eax, [edi-4]
push	edi
lea	ecx, [esi+20h]
mov	byte ptr [ebp+var_4], 1
mov	[esi+1Ch], eax
call	sub_4128EF
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_435568 endp



; Attributes: bp-based frame

sub_4355BB proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4487A5
call	__EH_prolog
push	ecx
mov	eax, [ebp+arg_0]
push	ebx
mov	ebx, ecx
push	esi
mov	ecx, [eax]
push	edi
mov	[ebx], ecx
mov	ecx, [eax+4]
lea	esi, [eax+8]
lea	edi, [ebx+8]
mov	[ebx+4], ecx
add	eax, 24h
movsd
movsd
movsd
movsd
mov	cl, [eax-0Ch]
push	eax
mov	[ebx+18h], cl
mov	ecx, [eax-8]
mov	[ebx+1Ch], ecx
mov	ecx, [eax-4]
mov	[ebx+20h], ecx
lea	ecx, [ebx+24h]
mov	[ebp+var_10], ebx
call	sub_4030F2
mov	esi, [ebp+arg_0]
xor	edi, edi
lea	ecx, [ebx+30h]
mov	[ebp+var_4], edi
lea	eax, [esi+30h]
push	eax
call	sub_43565C
lea	ecx, [ebx+44h]
lea	eax, [esi+44h]
push	eax
mov	byte ptr [ebp+var_4], 1
mov	[ecx+4], edi
mov	[ecx+8], edi
mov	dword ptr [ecx], offset	off_44C434
call	sub_4356F4
lea	eax, [esi+50h]
lea	ecx, [ebx+50h]
push	eax
mov	byte ptr [ebp+var_4], 2
call	sub_429229
mov	al, [esi+64h]
mov	ecx, [ebp+var_C]
mov	[ebx+64h], al
pop	edi
mov	eax, ebx
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_4355BB endp



; Attributes: bp-based frame

sub_43565C proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4487B8
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
xor	eax, eax
mov	[ebp+var_10], esi
mov	[esi+4], eax
mov	[esi+8], eax
mov	[esi+0Ch], eax
mov	dword ptr [esi+10h], 4
mov	[ebp+var_4], eax
mov	dword ptr [esi], offset	off_44C5C8
call	sub_428327
push	[ebp+arg_0]
mov	ecx, esi
call	sub_435735
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_43565C endp



; Attributes: bp-based frame

sub_4356A8 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4487CC
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
xor	eax, eax
mov	[ebp+var_10], esi
mov	[esi+4], eax
mov	[esi+8], eax
mov	[esi+0Ch], eax
mov	dword ptr [esi+10h], 4
mov	[ebp+var_4], eax
mov	dword ptr [esi], offset	off_44C5D0
call	sub_428327
push	[ebp+arg_0]
mov	ecx, esi
call	sub_43576E
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_4356A8 endp




sub_4356F4 proc	near

arg_0= dword ptr  4

push	esi
mov	esi, ecx
push	edi
push	dword ptr [esi+8] ; Memory
call	sub_4284D8
mov	edi, [esp+0Ch+arg_0]
and	dword ptr [esi+8], 0
and	dword ptr [esi+4], 0
pop	ecx
mov	eax, [edi+4]
test	eax, eax
jbe	short loc_43572E
push	eax		; Size
mov	ecx, esi
call	sub_41B339
push	dword ptr [edi+4] ; Size
push	dword ptr [edi+8] ; Src
push	dword ptr [esi+8] ; Dst
call	ds:memmove
add	esp, 0Ch

loc_43572E:
mov	eax, esi
pop	edi
pop	esi
retn	4
sub_4356F4 endp




sub_435735 proc	near

arg_0= dword ptr  4

push	ebx
push	ebp
mov	ebp, [esp+8+arg_0]
push	esi
mov	esi, ecx
push	edi
mov	edi, [ebp+8]
mov	eax, [esi+8]
add	eax, edi
push	eax
call	sub_428378
xor	ebx, ebx
test	edi, edi
jle	short loc_435765

loc_435753:
mov	eax, [ebp+0Ch]
mov	ecx, esi
push	dword ptr [eax+ebx*4]
call	sub_4353B2
inc	ebx
cmp	ebx, edi
jl	short loc_435753

loc_435765:
mov	eax, esi
pop	edi
pop	esi
pop	ebp
pop	ebx
retn	4
sub_435735 endp




sub_43576E proc	near

arg_0= dword ptr  4

push	ebx
push	ebp
mov	ebp, [esp+8+arg_0]
push	esi
mov	esi, ecx
push	edi
mov	edi, [ebp+8]
mov	eax, [esi+8]
add	eax, edi
push	eax
call	sub_428378
xor	ebx, ebx
test	edi, edi
jle	short loc_43579E

loc_43578C:
mov	eax, [ebp+0Ch]
mov	ecx, esi
push	dword ptr [eax+ebx*4]
call	sub_435413
inc	ebx
cmp	ebx, edi
jl	short loc_43578C

loc_43579E:
mov	eax, esi
pop	edi
pop	esi
pop	ebp
pop	ebx
retn	4
sub_43576E endp



; Attributes: bp-based frame

sub_4357A7 proc	near

pvarg= VARIANTARG ptr -1Ch
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_4487E0
call	__EH_prolog
sub	esp, 10h
push	ebx
xor	ebx, ebx
push	esi
push	edi
mov	word ptr [ebp+pvarg.anonymous_0], bx
mov	word ptr [ebp+pvarg.anonymous_0+2], bx
mov	esi, [ebp+arg_4]
lea	edi, [ebp+pvarg]
push	edi
mov	[ebp+var_4], ebx
push	[ebp+arg_0]
mov	[esi], bl
mov	eax, [ecx]
push	edx
push	ecx
call	dword ptr [eax+18h]
cmp	eax, ebx
jz	short loc_4357DF
mov	ebx, eax
jmp	short loc_4357FC

loc_4357DF:
cmp	word ptr [ebp+pvarg.anonymous_0], 0Bh
jnz	short loc_4357F1
cmp	word ptr [ebp+pvarg.anonymous_0+8], bx
setnz	al
mov	[esi], al
jmp	short loc_4357FC

loc_4357F1:
cmp	word ptr [ebp+pvarg.anonymous_0], bx
jz	short loc_4357FC
mov	ebx, 80004005h

loc_4357FC:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
mov	ecx, [ebp+var_C]
mov	eax, ebx
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_4357A7 endp




sub_43581B proc	near

arg_0= dword ptr  4

push	[esp+arg_0]
push	6
call	sub_4357A7
retn	4
sub_43581B endp



; Attributes: bp-based frame

sub_435829 proc	near

var_2C=	word ptr -2Ch
var_2A=	word ptr -2Ah
var_24=	dword ptr -24h
pvarg= VARIANTARG ptr -1Ch
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_4487FC
call	__EH_prolog
sub	esp, 20h
push	ebx
push	esi
push	edi
xor	edi, edi
mov	esi, ecx
mov	word ptr [ebp+pvarg.anonymous_0], di
mov	word ptr [ebp+pvarg.anonymous_0+2], di
mov	eax, [esi]
lea	edx, [ebp+pvarg]
push	edx
push	3
push	[ebp+arg_0]
mov	ecx, [eax]
mov	[ebp+var_4], edi
push	eax
call	dword ptr [ecx+18h]
mov	ebx, eax
cmp	ebx, edi
jz	short loc_435872
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
mov	eax, ebx
jmp	loc_435937

loc_435872:
cmp	word ptr [ebp+pvarg.anonymous_0], 8
jnz	short loc_435888
mov	ebx, [ebp+arg_4]
push	dword ptr [ebp+pvarg.anonymous_0+8]
mov	ecx, ebx
call	sub_404722
jmp	short loc_43589D

loc_435888:
cmp	word ptr [ebp+pvarg.anonymous_0], di
jnz	loc_435926
mov	ebx, [ebp+arg_4]
mov	eax, [ebx]
mov	[ebx+4], edi
mov	[eax], di

loc_43589D:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
cmp	[ebx+4], edi
jnz	short loc_435907
lea	eax, [esi+10h]
mov	ecx, ebx
push	eax
call	sub_40312C
mov	[ebp+var_2C], di
mov	[ebp+var_2A], di
mov	esi, [esi]
lea	ecx, [ebp+var_2C]
push	ecx
push	5
push	[ebp+arg_0]
mov	eax, [esi]
mov	[ebp+var_4], 1
push	esi
call	dword ptr [eax+18h]
cmp	eax, edi
jz	short loc_4358E1
mov	esi, eax
jmp	short loc_435916

loc_4358E1:
cmp	[ebp+var_2C], 8
jnz	short loc_43590B
push	2Eh
mov	ecx, ebx
call	sub_40316A
push	[ebp+var_24]
mov	ecx, ebx
call	sub_403195

loc_4358FB:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_2C] ; pvarg
call	sub_42CDE1

loc_435907:
xor	eax, eax
jmp	short loc_435937

loc_43590B:
cmp	[ebp+var_2C], di
jz	short loc_4358FB
mov	esi, 80004005h

loc_435916:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_2C] ; pvarg
call	sub_42CDE1
mov	eax, esi
jmp	short loc_435937

loc_435926:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
mov	eax, 80004005h

loc_435937:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_435829 endp



; Attributes: bp-based frame

sub_435948 proc	near

pvarg= VARIANTARG ptr -1Ch
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_448810
call	__EH_prolog
sub	esp, 10h
push	ebx
push	esi
xor	ebx, ebx
push	edi
mov	edi, ecx
mov	word ptr [ebp+pvarg.anonymous_0], bx
mov	word ptr [ebp+pvarg.anonymous_0+2], bx
mov	eax, [ebp+arg_8]
mov	esi, [ebp+arg_4]
lea	edx, [ebp+pvarg]
mov	[ebp+var_4], ebx
mov	[eax], bl
push	edx
mov	[esi], ebx
mov	[esi+4], ebx
mov	eax, [edi]
push	0Ch
push	[ebp+arg_0]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+18h]
cmp	eax, ebx
jz	short loc_43598D
mov	ebx, eax
jmp	short loc_4359C1

loc_43598D:
cmp	word ptr [ebp+pvarg.anonymous_0], 40h
jnz	short loc_43599E
mov	eax, dword ptr [ebp+pvarg.anonymous_0+8]
mov	[esi], eax
mov	eax, dword ptr [ebp+pvarg.anonymous_0+0Ch]
jmp	short loc_4359B8

loc_43599E:
cmp	word ptr [ebp+pvarg.anonymous_0], bx
jz	short loc_4359AB
mov	ebx, 80004005h
jmp	short loc_4359C1

loc_4359AB:
cmp	[edi+2Ch], bl
jz	short loc_4359C1
mov	eax, [edi+24h]
mov	[esi], eax
mov	eax, [edi+28h]

loc_4359B8:
mov	[esi+4], eax
mov	eax, [ebp+arg_8]
mov	byte ptr [eax],	1

loc_4359C1:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
mov	ecx, [ebp+var_C]
pop	edi
mov	eax, ebx
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_435948 endp



; Attributes: bp-based frame

sub_4359E0 proc	near

var_198= dword ptr -198h
var_188= byte ptr -188h
var_88=	dword ptr -88h
var_74=	dword ptr -74h
var_70=	dword ptr -70h
var_6C=	dword ptr -6Ch
var_64=	dword ptr -64h
var_60=	byte ptr -60h
var_5F=	byte ptr -5Fh
var_5E=	byte ptr -5Eh
var_5D=	byte ptr -5Dh
var_5C=	dword ptr -5Ch
var_58=	dword ptr -58h
var_54=	dword ptr -54h
Memory=	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_30=	dword ptr -30h
var_2C=	dword ptr -2Ch
var_24=	dword ptr -24h
var_20=	dword ptr -20h
pvarg= VARIANTARG ptr -1Ch
var_C= dword ptr -0Ch
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

mov	eax, offset loc_4488AF
call	__EH_prolog
sub	esp, 17Ch
push	ebx
push	esi
mov	esi, ecx
push	edi
xor	edi, edi
mov	[ebp+var_74], esi
mov	eax, [esi]
cmp	eax, edi
jz	short loc_435A08
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
mov	[esi], edi

loc_435A08:
mov	eax, [esi+30h]
mov	[esi+34h], edi
lea	edx, [esi+4]
lea	ecx, [ebp+var_70]
mov	[eax], di
call	sub_428E97
push	3
lea	ecx, [ebp+var_4C]
mov	[ebp+var_4], edi
mov	[ebp+var_4C], edi
mov	[ebp+var_48], edi
mov	[ebp+var_44], edi
call	sub_403396
mov	eax, [ebp+var_6C]
mov	byte ptr [ebp+var_4], 1
cmp	eax, edi
jz	short loc_435A87
mov	ecx, [ebp+var_70]
lea	eax, [ecx+eax*2-2]

loc_435A44:
cmp	word ptr [eax],	2Eh
jz	short loc_435A52
cmp	eax, ecx
jz	short loc_435A58
dec	eax
dec	eax
jmp	short loc_435A44

loc_435A52:
sub	eax, ecx
sar	eax, 1
jmp	short loc_435A5B

loc_435A58:
or	eax, 0FFFFFFFFh

loc_435A5B:
cmp	eax, edi
jl	short loc_435A87
inc	eax
lea	ecx, [ebp+var_70]
push	eax
lea	eax, [ebp+pvarg.anonymous_0+4]
push	eax
call	sub_405246
push	eax
lea	ecx, [ebp+var_4C]
mov	byte ptr [ebp+var_4], 2
call	sub_40312C
push	dword ptr [ebp+pvarg.anonymous_0+4] ; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
pop	ecx

loc_435A87:
push	4
lea	ecx, [ebp+var_38]
call	sub_402794
mov	esi, offset off_44C500
mov	[ebp+var_38], esi
cmp	[ebp+arg_4], edi
mov	byte ptr [ebp+var_4], 3
jl	short loc_435AB2
push	[ebp+arg_4]
lea	ecx, [ebp+var_38]
call	sub_429907
jmp	loc_435FC6

loc_435AB2:
mov	eax, [ebp+arg_0]
xor	ebx, ebx
mov	[ebp+arg_4], edi
cmp	[eax+4Ch], edi
jle	short loc_435B09

loc_435ABF:
mov	eax, [ebp+arg_0]
mov	eax, [eax+50h]
mov	ecx, [eax+ebx*4]
lea	eax, [ebp+var_4C]
push	eax
call	sub_43512E
test	eax, eax
jl	short loc_435AF7
mov	eax, [ebp+arg_4]
mov	ecx, eax
push	eax
shl	ecx, 2
inc	[ebp+arg_4]
mov	[ebp+var_40], ecx
lea	ecx, [ebp+var_38]
call	sub_428462
mov	eax, [ebp+var_2C]
mov	ecx, [ebp+var_40]
mov	[eax+ecx], ebx
jmp	short loc_435B00

loc_435AF7:
push	ebx
lea	ecx, [ebp+var_38]
call	sub_429907

loc_435B00:
mov	eax, [ebp+arg_0]
inc	ebx
cmp	ebx, [eax+4Ch]
jl	short loc_435ABF

loc_435B09:
cmp	[ebp+arg_8], edi
jnz	short loc_435B22
cmp	[ebp+arg_4], 1
jnz	loc_436135
push	1
lea	ecx, [ebp+var_38]
call	sub_42833C

loc_435B22:
cmp	[ebp+var_30], 2
jl	loc_435DEC
cmp	[ebp+arg_4], edi
jz	short loc_435B46
mov	ecx, [ebp+var_4C]
mov	edx, offset aExe ; "exe"
call	sub_4282B1
cmp	eax, edi
jnz	loc_435DEC

loc_435B46:
push	4
lea	ecx, [ebp+var_88]
call	sub_402794
mov	[ebp+var_88], esi
mov	ebx, offset off_44C434
mov	[ebp+var_54], edi
mov	[ebp+Memory], edi
mov	[ebp+var_58], ebx
mov	esi, 200000h
lea	ecx, [ebp+var_58]
push	esi		; Size
mov	byte ptr [ebp+var_4], 5
call	sub_41B339
mov	eax, [ebp+arg_8]
push	edi
push	edi
push	edi
mov	ecx, [eax]
push	edi
push	eax
call	dword ptr [ecx+10h]
cmp	eax, edi
jz	short loc_435B8E

loc_435B8A:
mov	esi, eax
jmp	short loc_435BAC

loc_435B8E:
mov	edx, [ebp+Memory]
mov	ecx, [ebp+arg_8]
lea	eax, [ebp+arg_4]
mov	[ebp+arg_4], esi
push	eax
call	sub_430F32
cmp	eax, edi
jnz	short loc_435B8A
cmp	[ebp+arg_4], edi
jnz	short loc_435BCC
push	1
pop	esi

loc_435BAC:		; Memory
push	[ebp+Memory]
mov	[ebp+var_58], ebx
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 3
lea	ecx, [ebp+var_88]
call	sub_4282FE
jmp	loc_43626D

loc_435BCC:
mov	eax, [ebp+Memory]
mov	dword ptr [ebp+pvarg.anonymous_0+8], edi
mov	[ebp+var_24], eax
mov	dword ptr [ebp+pvarg.anonymous_0+0Ch], edi
mov	dword ptr [ebp+pvarg.anonymous_0+4], ebx
mov	esi, 10000h
lea	ecx, [ebp+pvarg.anonymous_0+4]
push	esi		; Size
mov	byte ptr [ebp+var_4], 6
call	sub_41B339
mov	eax, dword ptr [ebp+pvarg.anonymous_0+0Ch]
push	esi		; Size
push	0FFh		; Val
push	eax		; Dst
mov	[ebp+var_20], eax
call	memset
add	esp, 0Ch
cmp	[ebp+var_30], 100h
jl	short loc_435C64
push	dword ptr [ebp+pvarg.anonymous_0+0Ch] ;	Memory
mov	dword ptr [ebp+pvarg.anonymous_0+4], ebx
call	sub_4284D8
push	[ebp+Memory]	; Memory
mov	[ebp+var_58], ebx
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 3
pop	ecx
lea	ecx, [ebp+var_88]
call	sub_4282FE

loc_435C32:
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
push	[ebp+var_4C]	; Memory
call	sub_4284D8
push	[ebp+var_70]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx
push	1
pop	eax

loc_435C53:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	14h

loc_435C64:
xor	eax, eax
cmp	[ebp+var_30], edi
jle	short loc_435CA2

loc_435C6B:
mov	ecx, [ebp+var_2C]
mov	edx, [ebp+arg_0]
mov	ecx, [ecx+eax*4]
mov	edx, [edx+50h]
mov	ecx, [edx+ecx*4]
cmp	dword ptr [ecx+48h], 2
jb	short loc_435C9C
mov	ecx, [ecx+4Ch]
xor	edx, edx
mov	dh, [ecx+1]
mov	dl, [ecx]
mov	ecx, edx
mov	edx, [ebp+var_20]
add	ecx, edx
mov	dl, [ecx]
mov	[ecx], al
mov	[ebp+eax+var_188], dl

loc_435C9C:
inc	eax
cmp	eax, [ebp+var_30]
jl	short loc_435C6B

loc_435CA2:
dec	[ebp+arg_4]
mov	ebx, edi
jz	loc_435D7E
jmp	short loc_435CB1

loc_435CAF:
xor	edi, edi

loc_435CB1:
cmp	ebx, [ebp+arg_4]
jnb	short loc_435CD4
mov	eax, [ebp+var_24]

loc_435CB9:
mov	edx, [ebp+var_20]
xor	ecx, ecx
mov	ch, [ebx+eax+1]
mov	cl, [ebx+eax]
cmp	byte ptr [ecx+edx], 0FFh
jnz	short loc_435CD1
inc	ebx
cmp	ebx, [ebp+arg_4]
jb	short loc_435CB9

loc_435CD1:
cmp	ebx, [ebp+arg_4]

loc_435CD4:
jz	loc_435D7E
mov	esi, [ebp+var_24]
xor	ecx, ecx
mov	ch, [ebx+esi+1]
lea	eax, [ebx+esi]
mov	cl, [eax]
mov	eax, [ebp+var_20]
mov	edi, ecx
add	edi, eax
movzx	esi, byte ptr [edi]

loc_435CF2:
mov	eax, [ebp+var_2C]
mov	ecx, [ebp+arg_0]
mov	eax, [eax+esi*4]
mov	ecx, [ecx+50h]
mov	[ebp+var_5C], eax
mov	eax, [ecx+eax*4]
mov	ecx, [eax+48h]
test	ecx, ecx
mov	[ebp+var_40], ecx
jz	short loc_435D60
mov	edx, [ebp+arg_4]
add	ecx, ebx
inc	edx
cmp	ecx, edx
ja	short loc_435D60
mov	eax, [eax+4Ch]
xor	ecx, ecx
cmp	[ebp+var_40], ecx
jbe	short loc_435D3D
mov	edx, [ebp+var_24]
add	edx, ebx
mov	[ebp+var_3C], edx

loc_435D2A:
mov	edx, [ebp+var_3C]
mov	dl, [edx]
cmp	dl, [ecx+eax]
jnz	short loc_435D60
inc	ecx
inc	[ebp+var_3C]
cmp	ecx, [ebp+var_40]
jb	short loc_435D2A

loc_435D3D:
push	[ebp+var_5C]
lea	ecx, [ebp+var_88]
call	sub_429907
mov	eax, [ebp+var_2C]
mov	dword ptr [eax+esi*4], 0FFh
mov	al, [ebp+esi+var_188]
mov	[edi], al
jmp	short loc_435D67

loc_435D60:
lea	edi, [ebp+esi+var_188]

loc_435D67:
movzx	esi, byte ptr [edi]
cmp	esi, 0FFh
jnz	short loc_435CF2
inc	ebx
cmp	ebx, [ebp+arg_4]
jb	loc_435CAF
xor	edi, edi

loc_435D7E:
xor	esi, esi
cmp	[ebp+var_30], edi
jle	short loc_435DA4

loc_435D85:
mov	eax, [ebp+var_2C]
mov	eax, [eax+esi*4]
cmp	eax, 0FFh
jz	short loc_435D9E
push	eax
lea	ecx, [ebp+var_88]
call	sub_429907

loc_435D9E:
inc	esi
cmp	esi, [ebp+var_30]
jl	short loc_435D85

loc_435DA4:
lea	ecx, [ebp+var_38]
call	sub_428327
lea	eax, [ebp+var_88]
lea	ecx, [ebp+var_38]
push	eax
call	sub_40F449
push	dword ptr [ebp+pvarg.anonymous_0+0Ch] ;	Memory
mov	esi, offset off_44C434
mov	dword ptr [ebp+pvarg.anonymous_0+4], esi
call	sub_4284D8
push	[ebp+Memory]	; Memory
mov	[ebp+var_58], esi
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 3
pop	ecx
lea	ecx, [ebp+var_88]
call	sub_4282FE
jmp	loc_435F19

loc_435DEC:
mov	ecx, [ebp+var_4C]
mov	edx, offset a000 ; "000"
call	sub_42828A
cmp	eax, edi
jz	short loc_435E12
mov	ecx, [ebp+var_4C]
mov	edx, offset a001 ; "001"
call	sub_42828A
cmp	eax, edi
jnz	loc_435F19

loc_435E12:
mov	dword ptr [ebp+pvarg.anonymous_0+8], edi
mov	dword ptr [ebp+pvarg.anonymous_0+0Ch], edi
mov	dword ptr [ebp+pvarg.anonymous_0+4], offset off_44C434
mov	esi, 400h
lea	ecx, [ebp+pvarg.anonymous_0+4]
push	esi		; Size
mov	byte ptr [ebp+var_4], 7
call	sub_41B339
mov	eax, [ebp+arg_8]
mov	ebx, dword ptr [ebp+pvarg.anonymous_0+0Ch]
push	edi
push	edi
mov	ecx, [eax]
push	edi
push	edi
push	eax
call	dword ptr [ecx+10h]
cmp	eax, edi
jnz	short loc_435E5A
mov	ecx, [ebp+arg_8]
lea	eax, [ebp+arg_4]
push	eax
mov	edx, ebx
mov	[ebp+arg_4], esi
call	sub_430F32
cmp	eax, edi
jz	short loc_435E71

loc_435E5A:		; Memory
push	dword ptr [ebp+pvarg.anonymous_0+0Ch]
mov	esi, eax
mov	dword ptr [ebp+pvarg.anonymous_0+4], offset off_44C434
call	sub_4284D8
pop	ecx
jmp	loc_43626D

loc_435E71:
cmp	[ebp+arg_4], 10h
jb	loc_435F05
and	byte ptr [ebp+var_5C+2], 0
mov	ecx, ebx
lea	eax, [ebp+var_60]
xor	esi, esi
mov	[ebp+var_60], 52h
mov	[ebp+var_5F], 61h
mov	[ebp+var_5E], 72h
mov	[ebp+var_5D], 21h
mov	byte ptr [ebp+var_5C], 1Ah
mov	byte ptr [ebp+var_5C+1], 7
sub	ecx, eax

loc_435EA0:
lea	eax, [ebp+esi+var_60]
mov	dl, [ecx+eax]
cmp	dl, [eax]
jnz	short loc_435F05
inc	esi
cmp	esi, 7
jb	short loc_435EA0
cmp	byte ptr [ebx+9], 73h
jnz	short loc_435F05
test	byte ptr [ebx+0Ah], 1
jz	short loc_435F05
xor	ebx, ebx
cmp	[ebp+var_30], edi
jle	short loc_435F05

loc_435EC4:
mov	eax, [ebp+var_2C]
mov	edx, offset aRar ; "rar"
mov	esi, [eax+ebx*4]
mov	eax, [ebp+arg_0]
mov	eax, [eax+50h]
mov	eax, [eax+esi*4]
mov	ecx, [eax+24h]
call	sub_4282B1
cmp	eax, edi
jz	short loc_435EEC
inc	ebx
cmp	ebx, [ebp+var_30]
jl	short loc_435EC4
jmp	short loc_435F05

loc_435EEC:
push	1
push	ebx
lea	ecx, [ebp+var_38]
call	sub_42847F
push	edi
lea	ecx, [ebp+var_38]
call	sub_428462
mov	eax, [ebp+var_2C]
mov	[eax], esi

loc_435F05:		; Memory
push	dword ptr [ebp+pvarg.anonymous_0+0Ch]
mov	byte ptr [ebp+var_4], 3
mov	dword ptr [ebp+pvarg.anonymous_0+4], offset off_44C434
call	sub_4284D8
pop	ecx

loc_435F19:
cmp	[ebp+var_30], 2
jl	loc_435FC6
push	offset aIso	; "iso"
lea	ecx, [ebp+pvarg.anonymous_0+4]
call	sub_403091
mov	ecx, [ebp+arg_0]
lea	eax, [ebp+pvarg.anonymous_0+4]
push	eax
mov	byte ptr [ebp+var_4], 8
call	sub_435162
push	dword ptr [ebp+pvarg.anonymous_0+4] ; Memory
mov	[ebp+var_40], eax
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
lea	ecx, [ebp+pvarg.anonymous_0+4]
mov	[esp+198h+var_198], offset aUdf	; "udf"
call	sub_403091
mov	ecx, [ebp+arg_0]
lea	eax, [ebp+pvarg.anonymous_0+4]
push	eax
mov	byte ptr [ebp+var_4], 9
call	sub_435162
push	dword ptr [ebp+pvarg.anonymous_0+4] ; Memory
mov	[ebp+var_5C], eax
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx
xor	edx, edx
or	ecx, 0FFFFFFFFh
cmp	[ebp+var_30], edi
mov	eax, ecx
jle	short loc_435FC6
mov	esi, [ebp+var_2C]
mov	[ebp+arg_4], esi

loc_435F90:
mov	esi, [ebp+arg_4]
mov	esi, [esi]
cmp	esi, [ebp+var_40]
jnz	short loc_435F9C
mov	eax, edx

loc_435F9C:
mov	ebx, [ebp+var_5C]
cmp	esi, ebx
jnz	short loc_435FA5
mov	ecx, edx

loc_435FA5:
add	[ebp+arg_4], 4
inc	edx
cmp	edx, [ebp+var_30]
jl	short loc_435F90
cmp	ecx, eax
jle	short loc_435FC6
cmp	eax, edi
jl	short loc_435FC6
mov	esi, [ebp+var_2C]
mov	edx, [ebp+var_40]
mov	[esi+ecx*4], edx
mov	ecx, [ebp+var_2C]
mov	[ecx+eax*4], ebx

loc_435FC6:
cmp	[ebp+var_30], edi
mov	[ebp+var_24], edi
jle	loc_435C32
mov	ebx, [ebp+var_74]
xor	edi, edi

loc_435FD7:
mov	eax, [ebp+arg_8]
cmp	eax, edi
jz	short loc_435FF0
mov	ecx, [eax]
push	edi
push	edi
push	edi
push	edi
push	eax
call	dword ptr [ecx+10h]
cmp	eax, edi
jnz	loc_4360F0

loc_435FF0:
mov	[ebp+arg_4], edi
mov	eax, [ebp+var_2C]
mov	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 0Ah
mov	eax, [eax+ecx*4]
lea	ecx, [ebp+arg_4]
push	ecx
mov	ecx, [ebp+arg_0]
push	eax
mov	[ebx+1Ch], eax
call	sub_436292
mov	esi, eax
cmp	esi, edi
jnz	loc_4360F7
mov	eax, [ebp+arg_4]
cmp	eax, edi
jnz	short loc_43602A
mov	byte ptr [ebp+var_4], 3
jmp	loc_4360DC

loc_43602A:
mov	[ebp+var_20], edi
mov	ecx, [eax]
lea	edx, [ebp+var_20]
push	edx
push	offset unk_44B6E0
push	eax
mov	byte ptr [ebp+var_4], 0Bh
call	dword ptr [ecx]
mov	eax, [ebp+var_20]
cmp	eax, edi
jz	short loc_43605C
push	[ebp+arg_0]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+0Ch]
mov	esi, eax
cmp	esi, edi
jnz	loc_436111
mov	eax, [ebp+var_20]

loc_43605C:
cmp	eax, edi
mov	byte ptr [ebp+var_4], 0Ah
jz	short loc_43606A
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43606A:
cmp	[ebp+arg_8], edi
jz	short loc_436087
push	[ebp+arg_10]
mov	eax, [ebp+arg_4]
mov	ecx, [eax]
push	offset unk_44C5D8
push	[ebp+arg_8]
push	eax
call	dword ptr [ecx+0Ch]
mov	esi, eax
jmp	short loc_4360C2

loc_436087:
mov	[ebp+var_3C], edi
mov	eax, [ebp+arg_4]
lea	edx, [ebp+var_3C]
push	edx
push	offset unk_44B760
mov	ecx, [eax]
push	eax
mov	byte ptr [ebp+var_4], 0Ch
call	dword ptr [ecx]
mov	eax, [ebp+var_3C]
cmp	eax, edi
jz	short loc_436124
push	[ebp+arg_C]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+0Ch]
mov	esi, eax
mov	eax, [ebp+var_3C]
cmp	eax, edi
mov	byte ptr [ebp+var_4], 0Ah
jz	short loc_4360C2
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_4360C2:
cmp	esi, 1
jnz	loc_43615D
mov	eax, [ebp+arg_4]
mov	byte ptr [ebp+var_4], 3
cmp	eax, edi
jz	short loc_4360DC
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_4360DC:
inc	[ebp+var_24]
mov	eax, [ebp+var_24]
cmp	eax, [ebp+var_30]
jl	loc_435FD7
jmp	loc_435C32

loc_4360F0:
mov	esi, eax
jmp	loc_43626D

loc_4360F7:
mov	eax, [ebp+arg_4]
mov	byte ptr [ebp+var_4], 3
cmp	eax, edi
jz	loc_43626D
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
jmp	loc_43626D

loc_436111:
mov	eax, [ebp+var_20]
mov	byte ptr [ebp+var_4], 0Ah
cmp	eax, edi
jz	short loc_4360F7
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
jmp	short loc_4360F7

loc_436124:
mov	eax, [ebp+arg_4]
mov	byte ptr [ebp+var_4], 3
cmp	eax, edi
jz	short loc_436135
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_436135:
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
push	[ebp+var_4C]	; Memory
call	sub_4284D8
push	[ebp+var_70]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, 80004001h
pop	ecx
jmp	loc_435C53

loc_43615D:
cmp	esi, edi
jnz	short loc_4360F7
mov	word ptr [ebp+pvarg.anonymous_0], di
mov	word ptr [ebp+pvarg.anonymous_0+2], di
mov	eax, [ebp+arg_4]
lea	edx, [ebp+pvarg]
push	edx
push	37h
mov	ecx, [eax]
push	eax
mov	byte ptr [ebp+var_4], 0Dh
call	dword ptr [ecx+20h]
cmp	word ptr [ebp+pvarg.anonymous_0], di
jz	short loc_43619A
cmp	word ptr [ebp+pvarg.anonymous_0], 8
mov	eax, dword ptr [ebp+pvarg.anonymous_0+8]
jz	short loc_436191
mov	eax, offset aUnknownError ; "Unknown error"

loc_436191:
push	eax
lea	ecx, [ebx+30h]
call	sub_404722

loc_43619A:		; pvarg
lea	ecx, [ebp+pvarg]
mov	byte ptr [ebp+var_4], 0Ah
call	sub_42CDE1
push	[ebp+arg_4]
mov	ecx, ebx
call	sub_43D0DB
mov	ecx, [ebp+arg_0]
mov	eax, [ebx+1Ch]
mov	ecx, [ecx+50h]
mov	esi, [ecx+eax*4]
cmp	[esi+38h], edi
jnz	short loc_43621D
mov	esi, offset word_45D498
lea	ecx, [ebp+var_58]
push	esi
call	sub_403091
push	esi
lea	ecx, [ebp+pvarg.anonymous_0+4]
mov	byte ptr [ebp+var_4], 0Eh
call	sub_403091
lea	eax, [ebp+var_58]
lea	edx, [ebp+var_70]
push	eax
lea	eax, [ebp+pvarg.anonymous_0+4]
push	eax
lea	ecx, [ebp+var_64]
mov	byte ptr [ebp+var_4], 0Fh
call	sub_4333D2
push	eax
lea	ecx, [ebx+10h]
mov	byte ptr [ebp+var_4], 10h
call	sub_40312C
push	[ebp+var_64]	; Memory
call	sub_4284D8
push	dword ptr [ebp+pvarg.anonymous_0+4] ; Memory
call	sub_4284D8
push	[ebp+var_58]	; Memory
call	sub_4284D8
add	esp, 0Ch
jmp	short loc_43625A

loc_43621D:
lea	eax, [ebp+var_4C]
mov	ecx, esi
push	eax
call	sub_43512E
cmp	eax, edi
jge	short loc_43622E
xor	eax, eax

loc_43622E:
mov	ecx, [esi+3Ch]
lea	edx, [ebp+var_70]
mov	eax, [ecx+eax*4]
lea	ecx, [eax+0Ch]
push	ecx
push	eax
lea	ecx, [ebp+pvarg.anonymous_0+4]
call	sub_4333D2
push	eax
lea	ecx, [ebx+10h]
mov	byte ptr [ebp+var_4], 11h
call	sub_40312C
push	dword ptr [ebp+pvarg.anonymous_0+4] ; Memory
call	sub_4284D8
pop	ecx

loc_43625A:
mov	eax, [ebp+arg_4]
mov	byte ptr [ebp+var_4], 3
cmp	eax, edi
jz	short loc_43626B
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43626B:
xor	esi, esi

loc_43626D:
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
push	[ebp+var_4C]	; Memory
call	sub_4284D8
push	[ebp+var_70]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
pop	ecx
jmp	loc_435C53
sub_4359E0 endp




sub_436292 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [ecx+50h]
mov	edx, [esp+arg_0]
mov	eax, [eax+edx*4]
mov	edx, [eax]
test	edx, edx
jge	short loc_4362B3
call	dword ptr [eax+1Ch]
mov	ecx, [esp+arg_4]
push	eax
call	sub_43D0DB
xor	eax, eax
jmp	short locret_4362C9

loc_4362B3:
mov	ecx, [ecx+14h]
push	[esp+arg_4]
add	eax, 8
mov	ecx, [ecx+edx*4]
push	offset unk_44B770
push	eax
call	dword ptr [ecx+1Ch]

locret_4362C9:
retn	8
sub_436292 endp



; Attributes: bp-based frame

sub_4362CC proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_4488D6
call	__EH_prolog
push	ecx
push	ecx
push	ebx
push	esi
xor	ebx, ebx
push	edi
mov	edi, ecx
mov	[ebp+var_14], ebx
mov	[ebp+var_4], ebx
mov	[ebp+var_10], ebx
cmp	byte ptr [ebp+arg_8], bl
mov	byte ptr [ebp+var_4], 1
jz	short loc_436315
push	8		; Size
call	sub_4284B1
cmp	eax, ebx
pop	ecx
jz	short loc_436308
mov	[eax+4], ebx
mov	dword ptr [eax], offset	off_44C5E0
jmp	short loc_43630A

loc_436308:
xor	eax, eax

loc_43630A:
push	eax
lea	ecx, [ebp+var_10]
call	sub_43D0DB
jmp	short loc_436363

loc_436315:
cmp	[ebp+arg_C], ebx
jnz	short loc_436363
push	40h		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+arg_8], ecx
cmp	ecx, ebx
mov	byte ptr [ebp+var_4], 2
jz	short loc_436338
call	sub_4307E3
mov	esi, eax
jmp	short loc_43633A

loc_436338:
xor	esi, esi

loc_43633A:
push	esi
lea	ecx, [ebp+var_14]
mov	byte ptr [ebp+var_4], 1
call	sub_43D0DB
push	dword ptr [edi+4] ; lpFileName
mov	ecx, esi
call	sub_4307C1
test	al, al
jnz	short loc_43635D
call	ds:GetLastError
jmp	short loc_436379

loc_43635D:
mov	eax, [ebp+var_14]
mov	[ebp+arg_C], eax

loc_436363:
push	[ebp+arg_10]
mov	ecx, edi
push	[ebp+var_10]
push	[ebp+arg_C]
push	[ebp+arg_4]
push	[ebp+arg_0]
call	sub_4359E0

loc_436379:
mov	esi, eax
mov	eax, [ebp+var_10]
cmp	eax, ebx
mov	byte ptr [ebp+var_4], bl
jz	short loc_43638B
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43638B:
mov	eax, [ebp+var_14]
or	[ebp+var_4], 0FFFFFFFFh
cmp	eax, ebx
jz	short loc_43639C
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43639C:
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	14h
sub_4362CC endp




sub_4363AF proc	near

arg_0= dword ptr  4

mov	eax, [esp+arg_0]
inc	dword ptr [eax+4]
mov	eax, [eax+4]
retn	4
sub_4363AF endp

; [0000001D BYTES: COLLAPSED FUNCTION unknown_libname_5. PRESS KEYPAD CTRL-"+" TO EXPAND]



sub_4363D9 proc	near
push	esi
push	edi
mov	edi, ecx
mov	esi, [edi+8]

loc_4363E0:
dec	esi
js	short loc_4363F7
mov	eax, [edi+0Ch]
mov	eax, [eax+esi*4]
mov	eax, [eax]
push	eax
mov	ecx, [eax]
call	dword ptr [ecx+10h]
test	eax, eax
jz	short loc_4363E0
jmp	short loc_4363FD

loc_4363F7:
and	byte ptr [edi+30h], 0
xor	eax, eax

loc_4363FD:
pop	edi
pop	esi
retn
sub_4363D9 endp




sub_436400 proc	near
push	esi
mov	esi, ecx

loc_436403:
cmp	dword ptr [esi+8], 0
jz	short loc_436412
mov	ecx, esi
call	sub_42832F
jmp	short loc_436403

loc_436412:
pop	esi
retn
sub_436400 endp



; Attributes: bp-based frame

sub_436414 proc	near

var_B4=	byte ptr -0B4h
var_B0=	byte ptr -0B0h
var_94=	dword ptr -94h
var_78=	byte ptr -78h
var_74=	dword ptr -74h
var_58=	dword ptr -58h
var_54=	byte ptr -54h
var_4C=	byte ptr -4Ch
var_3C=	dword ptr -3Ch
pvarg= VARIANTARG ptr -38h
var_28=	dword ptr -28h
var_24=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_44891B
call	__EH_prolog
sub	esp, 0A8h
push	ebx
push	esi
push	edi
mov	[ebp+var_20], ecx
call	sub_436400
mov	eax, [ebp+arg_4]
mov	eax, [eax+8]
cmp	eax, 20h
jl	short loc_436444
mov	eax, 80004001h
jmp	loc_436868

loc_436444:
xor	ebx, ebx

loc_436446:
mov	esi, [ebp+arg_4]
push	1
pop	edx
or	edi, 0FFFFFFFFh
mov	eax, [esi+8]
mov	[ebp+var_24], edi
cmp	eax, edx
jl	short loc_436475
mov	ecx, [ebp+var_20]
mov	ecx, [ecx+8]
cmp	ecx, eax
jge	loc_43685A
mov	esi, [esi+0Ch]
sub	eax, ecx
mov	eax, [esi+eax*4-4]
mov	[ebp+var_24], eax
jmp	short loc_436484

loc_436475:
mov	eax, [ebp+var_20]
mov	ecx, [eax+8]
cmp	ecx, 20h
jge	loc_43685A

loc_436484:
cmp	ecx, ebx
jnz	short loc_4364F0
lea	ecx, [ebp+var_B4]
call	sub_436879
push	[ebp+arg_10]
lea	ecx, [ebp+var_B0]
mov	[ebp+var_4], ebx
call	sub_40312C
push	[ebp+arg_14]
lea	ecx, [ebp+var_B4]
mov	[ebp+var_94], edi
push	[ebp+arg_C]
push	[ebp+arg_8]
push	[ebp+var_24]
push	[ebp+arg_0]
call	sub_4362CC
mov	esi, eax
cmp	esi, ebx
jnz	loc_4366C1
mov	ecx, [ebp+var_20]
lea	eax, [ebp+var_B4]
push	eax
call	sub_437059
lea	ecx, [ebp+var_B4]
mov	[ebp+var_4], edi
call	sub_4368E3
jmp	loc_436446

loc_4364F0:
mov	eax, [ebp+var_20]
mov	word ptr [ebp+pvarg.anonymous_0], bx
mov	word ptr [ebp+pvarg.anonymous_0+2], bx
mov	eax, [eax+0Ch]
mov	esi, [eax+ecx*4-4]
mov	eax, [esi]
lea	edi, [ebp+pvarg]
push	edi
push	edx
mov	ecx, [eax]
push	eax
mov	[ebp+var_4], edx
call	dword ptr [ecx+20h]
cmp	eax, ebx
jnz	loc_4366D4
cmp	word ptr [ebp+pvarg.anonymous_0], 13h
jnz	loc_43684E
mov	eax, [esi]
mov	edi, dword ptr [ebp+pvarg.anonymous_0+8]
lea	edx, [ebp+var_3C]
mov	ecx, [eax]
push	edx
push	eax
call	dword ptr [ecx+14h]
cmp	eax, ebx
jnz	loc_4366D4
cmp	edi, [ebp+var_3C]
jnb	loc_43684E
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
mov	[ebp+var_10], ebx
mov	eax, [esi]
lea	edx, [ebp+var_10]
push	edx
push	offset unk_44B790
mov	ecx, [eax]
push	eax
mov	[ebp+var_4], 2
call	dword ptr [ecx]
test	eax, eax
mov	eax, [ebp+var_10]
jnz	loc_436845
cmp	eax, ebx
jz	loc_436845
mov	[ebp+var_14], ebx
mov	ecx, [eax]
lea	edx, [ebp+var_14]
push	edx
push	edi
push	eax
mov	byte ptr [ebp+var_4], 3
call	dword ptr [ecx+0Ch]
test	eax, eax
mov	eax, [ebp+var_14]
jnz	loc_43683C
cmp	eax, ebx
jz	loc_43683C
mov	[ebp+var_18], ebx
mov	ecx, [eax]
lea	edx, [ebp+var_18]
push	edx
push	offset unk_44B7E0
push	eax
mov	byte ptr [ebp+var_4], 4
call	dword ptr [ecx]
cmp	eax, ebx
mov	eax, [ebp+var_18]
jnz	loc_436833
cmp	eax, ebx
jz	loc_436833
lea	ecx, [ebp+var_78]
call	sub_436879
lea	eax, [ebp+var_74]
mov	ecx, esi
push	eax
push	edi
mov	byte ptr [ebp+var_4], 5
call	sub_435829
cmp	eax, ebx
mov	[ebp+var_28], eax
jnz	loc_4366E7
mov	[ebp+var_1C], ebx
mov	eax, [ebp+arg_14]
lea	edx, [ebp+var_1C]
push	edx
push	offset unk_44B780
mov	ecx, [eax]
push	eax
mov	byte ptr [ebp+var_4], 6
call	dword ptr [ecx]
mov	eax, [ebp+var_1C]
cmp	eax, ebx
jz	short loc_436616
push	[ebp+var_74]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+0Ch]

loc_436616:
push	[ebp+arg_14]
lea	ecx, [ebp+var_78]
mov	[ebp+var_58], edi
push	ebx
push	[ebp+var_18]
push	[ebp+var_24]
push	[ebp+arg_0]
call	sub_4359E0
cmp	eax, 1
mov	[ebp+var_28], eax
jz	loc_43672E
cmp	eax, ebx
jnz	loc_436787
lea	eax, [ebp+var_4C]
mov	ecx, esi
push	eax
lea	eax, [ebp+var_54]
push	eax
push	edi
call	sub_435948
mov	esi, eax
cmp	esi, ebx
jnz	loc_4367DF
mov	ecx, [ebp+var_20]
lea	eax, [ebp+var_78]
push	eax
call	sub_437059
mov	eax, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 5
cmp	eax, ebx
jz	short loc_436679
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_436679:
lea	ecx, [ebp+var_78]
mov	byte ptr [ebp+var_4], 4
call	sub_4368E3
mov	eax, [ebp+var_18]
mov	byte ptr [ebp+var_4], 3
cmp	eax, ebx
jz	short loc_436696
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_436696:
mov	eax, [ebp+var_14]
mov	byte ptr [ebp+var_4], 2
cmp	eax, ebx
jz	short loc_4366A7
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_4366A7:
mov	eax, [ebp+var_10]
or	[ebp+var_4], 0FFFFFFFFh
cmp	eax, ebx
jz	loc_436446
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
jmp	loc_436446

loc_4366C1:
lea	ecx, [ebp+var_B4]
mov	[ebp+var_4], edi
call	sub_4368E3
jmp	loc_43682F

loc_4366D4:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
mov	esi, eax
call	sub_42CDE1
jmp	loc_43682F

loc_4366E7:
lea	ecx, [ebp+var_78]
mov	byte ptr [ebp+var_4], 4
call	sub_4368E3
mov	eax, [ebp+var_18]
mov	byte ptr [ebp+var_4], 3
cmp	eax, ebx
jz	short loc_436704
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_436704:
mov	eax, [ebp+var_14]
mov	byte ptr [ebp+var_4], 2
cmp	eax, ebx
jz	short loc_436715
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_436715:
mov	eax, [ebp+var_10]
or	[ebp+var_4], 0FFFFFFFFh
cmp	eax, ebx
jz	short loc_436726
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_436726:
mov	eax, [ebp+var_28]
jmp	loc_436868

loc_43672E:
mov	eax, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 5
cmp	eax, ebx
jz	short loc_43673F
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43673F:
lea	ecx, [ebp+var_78]
mov	byte ptr [ebp+var_4], 4
call	sub_4368E3
mov	eax, [ebp+var_18]
mov	byte ptr [ebp+var_4], 3

loc_436752:
cmp	eax, ebx
jz	short loc_43675C
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43675C:
mov	eax, [ebp+var_14]
mov	byte ptr [ebp+var_4], 2

loc_436763:
cmp	eax, ebx
jz	short loc_43676D
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43676D:
or	[ebp+var_4], 0FFFFFFFFh
mov	eax, [ebp+var_10]

loc_436774:
cmp	eax, ebx
jz	loc_43685A
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
jmp	loc_43685A

loc_436787:
mov	eax, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 5
cmp	eax, ebx
jz	short loc_436798
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_436798:
lea	ecx, [ebp+var_78]
mov	byte ptr [ebp+var_4], 4
call	sub_4368E3
mov	eax, [ebp+var_18]
mov	byte ptr [ebp+var_4], 3
cmp	eax, ebx
jz	short loc_4367B5
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_4367B5:
mov	eax, [ebp+var_14]
mov	byte ptr [ebp+var_4], 2
cmp	eax, ebx
jz	short loc_4367C6
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_4367C6:
mov	eax, [ebp+var_10]
or	[ebp+var_4], 0FFFFFFFFh
cmp	eax, ebx
jz	short loc_4367D7
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_4367D7:
mov	eax, [ebp+var_28]
jmp	loc_436868

loc_4367DF:
mov	eax, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 5
cmp	eax, ebx
jz	short loc_4367F0
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_4367F0:
lea	ecx, [ebp+var_78]
mov	byte ptr [ebp+var_4], 4
call	sub_4368E3
mov	eax, [ebp+var_18]
mov	byte ptr [ebp+var_4], 3
cmp	eax, ebx
jz	short loc_43680D
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43680D:
mov	eax, [ebp+var_14]
mov	byte ptr [ebp+var_4], 2
cmp	eax, ebx
jz	short loc_43681E
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43681E:
mov	eax, [ebp+var_10]
or	[ebp+var_4], 0FFFFFFFFh
cmp	eax, ebx
jz	short loc_43682F
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43682F:
mov	eax, esi
jmp	short loc_436868

loc_436833:
mov	byte ptr [ebp+var_4], 3
jmp	loc_436752

loc_43683C:
mov	byte ptr [ebp+var_4], 2
jmp	loc_436763

loc_436845:
or	[ebp+var_4], 0FFFFFFFFh
jmp	loc_436774

loc_43684E:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1

loc_43685A:
mov	eax, [ebp+var_20]
cmp	[eax+8], ebx
setnz	cl
mov	[eax+30h], cl
xor	eax, eax

loc_436868:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	18h
sub_436414 endp



; Attributes: bp-based frame

sub_436879 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_448946
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
mov	[ebp+var_10], esi
mov	[esi], ebx
lea	ecx, [esi+4]
push	3
mov	[ebp+var_4], ebx
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+10h]
push	3
mov	byte ptr [ebp+var_4], 1
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+30h]
mov	[esi+2Ch], bl
push	3
mov	byte ptr [ebp+var_4], 2
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_436879 endp




sub_4368E3 proc	near
push	esi
mov	esi, ecx
push	dword ptr [esi+30h] ; Memory
call	sub_4284D8
push	dword ptr [esi+10h] ; Memory
call	sub_4284D8
push	dword ptr [esi+4] ; Memory
call	sub_4284D8
mov	esi, [esi]
add	esp, 0Ch
test	esi, esi
jz	short loc_43690D
mov	eax, [esi]
push	esi
call	dword ptr [eax+8]

loc_43690D:
pop	esi
retn
sub_4368E3 endp



; Attributes: bp-based frame

sub_43690F proc	near

var_48=	dword ptr -48h
var_3C=	dword ptr -3Ch
var_38=	dword ptr -38h
var_34=	dword ptr -34h
Memory=	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_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

mov	eax, offset loc_44899A
call	__EH_prolog
sub	esp, 3Ch
push	ebx
push	esi
push	edi
mov	edi, ecx
xor	ebx, ebx
push	90h		; Size
mov	[edi+28h], ebx
mov	[ebp+var_14], edi
mov	[edi+2Ch], ebx
call	sub_4284B1
pop	ecx
mov	[ebp+var_18], eax
cmp	eax, ebx
mov	[ebp+var_4], ebx
jz	short loc_43694C
mov	ecx, eax
call	sub_436B89
mov	esi, eax
jmp	short loc_43694E

loc_43694C:
xor	esi, esi

loc_43694E:
or	[ebp+var_4], 0FFFFFFFFh
cmp	esi, ebx
mov	[ebp+var_10], esi
jz	short loc_43695F
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]

loc_43695F:
mov	eax, [ebp+arg_14]
push	3
mov	[esi+7Ch], eax
lea	ecx, [ebp+var_3C]
mov	[ebp+var_4], 1
mov	[ebp+var_3C], ebx
mov	[ebp+var_38], ebx
mov	[ebp+var_34], ebx
call	sub_403396
push	3
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 2
mov	[ebp+var_24], ebx
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
call	sub_403396
push	3
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 3
mov	[ebp+Memory], ebx
mov	[ebp+var_2C], ebx
mov	[ebp+var_28], ebx
call	sub_403396
cmp	[ebp+arg_C], ebx
mov	byte ptr [ebp+var_4], 4
jnz	loc_436A76
cmp	byte ptr [ebp+arg_8], bl
jnz	loc_436A76
mov	eax, [ebp+arg_10]
lea	edx, [ebp+var_3C]
mov	ecx, [eax]
lea	eax, [ebp+arg_14]
push	eax
call	sub_42A775
test	al, al
jnz	short loc_436A13
call	ds:GetLastError
push	[ebp+Memory]	; Memory
mov	esi, eax
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_10]
or	[ebp+var_4], 0FFFFFFFFh
add	esp, 0Ch
cmp	eax, ebx
jz	short loc_436A0C
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_436A0C:
mov	eax, esi
jmp	loc_436B78

loc_436A13:
push	[ebp+arg_14]
lea	eax, [ebp+var_48]
lea	ecx, [ebp+var_3C]
push	eax
call	sub_403228
push	eax
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 5
call	sub_40312C
push	[ebp+var_48]	; Memory
mov	byte ptr [ebp+var_4], 4
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_48]
push	[ebp+arg_14]
lea	ecx, [ebp+var_3C]
push	eax
call	sub_405246
push	eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 6
call	sub_40312C
push	[ebp+var_48]	; Memory
mov	byte ptr [ebp+var_4], 4
call	sub_4284D8
pop	ecx
lea	eax, [ebp+Memory]
push	eax
lea	eax, [ebp+var_24]
push	eax
mov	ecx, esi
call	sub_436D26
jmp	short loc_436A86

loc_436A76:
mov	eax, [ebp+arg_10]
mov	edx, [esi+8]
mov	ecx, [eax]
lea	eax, [esi+8]
push	ecx
push	eax
call	dword ptr [edx+0Ch]

loc_436A86:
push	[ebp+var_10]
mov	ecx, edi
push	[ebp+arg_10]
push	[ebp+arg_C]
push	[ebp+arg_8]
push	[ebp+arg_4]
push	[ebp+arg_0]
call	sub_436414
cmp	eax, ebx
mov	[ebp+arg_10], eax
jz	short loc_436ADA
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_10]
or	[ebp+var_4], 0FFFFFFFFh
add	esp, 0Ch
cmp	eax, ebx
jz	short loc_436AD2
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_436AD2:
mov	eax, [ebp+arg_10]
jmp	loc_436B78

loc_436ADA:
lea	eax, [ebp+Memory]
lea	edx, [ebp+var_24]
push	eax
lea	ecx, [ebp+var_48]
call	sub_40356A
add	edi, 14h
push	eax
mov	ecx, edi
mov	byte ptr [ebp+var_4], 7
call	sub_4032B4
push	[ebp+var_48]	; Memory
mov	byte ptr [ebp+var_4], 4
call	sub_4284D8
cmp	[esi+70h], ebx
pop	ecx
jle	short loc_436B3A

loc_436B0A:
mov	eax, [esi+74h]
lea	edx, [ebp+var_24]
lea	ecx, [ebp+var_48]
push	dword ptr [eax+ebx*4]
call	sub_40356A
push	eax
mov	ecx, edi
mov	byte ptr [ebp+var_4], 8
call	sub_4032B4
push	[ebp+var_48]	; Memory
mov	byte ptr [ebp+var_4], 4
call	sub_4284D8
inc	ebx
pop	ecx
cmp	ebx, [esi+70h]
jl	short loc_436B0A

loc_436B3A:
mov	eax, [ebp+var_14]
mov	ecx, [esi+88h]
push	[ebp+Memory]	; Memory
mov	[eax+28h], ecx
mov	ecx, [esi+8Ch]
mov	[eax+2Ch], ecx
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
or	[ebp+var_4], 0FFFFFFFFh
add	esp, 0Ch
lea	ecx, [ebp+var_10]
call	sub_4370A0
xor	eax, eax

loc_436B78:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	18h
sub_43690F endp



; Attributes: bp-based frame

sub_436B89 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4489BA
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	edi
xor	edi, edi
mov	dword ptr [esi], offset	off_44B9D8
mov	dword ptr [esi+4], offset off_44B9C4
mov	dword ptr [esi+8], offset off_44B9B4
lea	ecx, [esi+14h]
mov	dword ptr [esi+0Ch], offset off_44B990
mov	[esi+10h], edi
push	3
mov	[ebp+var_10], esi
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
lea	ecx, [esi+20h]
mov	[ebp+var_4], edi
call	sub_404EA2
lea	ecx, [esi+5Ch]
push	3
mov	byte ptr [ebp+var_4], 1
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
mov	ecx, [ebp+var_C]
mov	[esi+6Ch], edi
mov	[esi+70h], edi
mov	[esi+74h], edi
mov	dword ptr [esi+78h], 4
mov	dword ptr [esi+68h], offset off_44B510
mov	[esi+7Ch], edi
mov	[esi+80h], edi
mov	dword ptr [esi], offset	off_44C628
mov	dword ptr [esi+4], offset off_44C614
mov	dword ptr [esi+8], offset off_44C604
mov	dword ptr [esi+0Ch], offset off_44C5F4
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_436B89 endp



; Attributes: bp-based frame

; int __stdcall	sub_436C39(int,	void *Buf1, int)
sub_436C39 proc	near

arg_0= dword ptr  8
Buf1= dword ptr	 0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
push	esi
mov	esi, [ebp+Buf1]
push	10h		; Size
push	offset unk_44CCB8 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_436C5E

loc_436C54:
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+4]
jmp	short loc_436CAC

loc_436C5E:		; Size
push	10h
push	offset unk_44B7A0 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jz	short loc_436C54
push	10h		; Size
push	offset unk_44B720 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_436C90
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+0Ch]
jmp	short loc_436CAC

loc_436C90:		; Size
push	10h
push	offset unk_44B780 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_436CC1
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+8]

loc_436CAC:
neg	ecx
sbb	ecx, ecx
push	eax
and	ecx, edx
mov	edx, [ebp+arg_8]
mov	[edx], ecx
mov	ecx, [eax]
call	dword ptr [ecx+4]
xor	eax, eax
jmp	short loc_436CC6

loc_436CC1:
mov	eax, 80004002h

loc_436CC6:
pop	esi
pop	ebp
retn	0Ch
sub_436C39 endp




sub_436CCB proc	near

arg_0= dword ptr  4

mov	eax, [esp+arg_0]
inc	dword ptr [eax+10h]
mov	eax, [eax+10h]
retn	4
sub_436CCB endp




; int __stdcall	sub_436CD8(void	*Memory)
sub_436CD8 proc	near

Memory=	dword ptr  4

push	esi
mov	esi, [esp+4+Memory]
dec	dword ptr [esi+10h]
mov	eax, [esi+10h]
jnz	short loc_436CF9
test	esi, esi
jz	short loc_436CF7
mov	ecx, esi
call	sub_436DB8
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_436CF7:
xor	eax, eax

loc_436CF9:
pop	esi
retn	4
sub_436CD8 endp




sub_436CFD proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	esi
mov	esi, [esp+4+arg_0]
push	[esp+4+arg_4]
lea	ecx, [esi+54h]
mov	byte ptr [esi+50h], 1
call	sub_404722
and	dword ptr [esi+80h], 0
and	dword ptr [esi+84h], 0
xor	eax, eax
pop	esi
retn	8
sub_436CFD endp



; Attributes: bp-based frame

sub_436D26 proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_4489CC
call	__EH_prolog
sub	esp, 0Ch
push	ebx
push	esi
mov	esi, ecx
push	edi
push	[ebp+arg_0]
lea	edi, [esi+14h]
mov	ecx, edi
call	sub_40312C
push	[ebp+arg_4]
mov	edx, edi
lea	ecx, [ebp+Memory]
call	sub_40356A
push	dword ptr [eax]	; lpFileName
xor	edi, edi
lea	ecx, [esi+20h]
mov	[ebp+var_4], edi
call	sub_42B49E
push	[ebp+Memory]	; Memory
mov	bl, al
neg	bl
sbb	bl, bl
or	[ebp+var_4], 0FFFFFFFFh
inc	bl
call	sub_4284D8
test	bl, bl
pop	ecx
jz	short loc_436D8F
lea	eax, [ebp+arg_0]
push	offset unk_44D120
push	eax
mov	[ebp+arg_0], 1
call	_CxxThrowException

loc_436D8F:
lea	ecx, [esi+68h]
call	sub_428327
and	byte ptr [esi+58h], 0
mov	ecx, [ebp+var_C]
mov	[esi+88h], edi
mov	[esi+8Ch], edi
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_436D26 endp



; Attributes: bp-based frame

sub_436DB8 proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_448A0C
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
mov	eax, [esi+80h]
mov	[ebp+var_4], 3
test	eax, eax
jz	short loc_436DE2
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_436DE2:
lea	edi, [esi+68h]
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44B510
mov	ecx, edi
mov	byte ptr [ebp+var_4], 4
call	sub_428327
mov	ecx, edi
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE
push	dword ptr [esi+5Ch] ; Memory
call	sub_4284D8
push	dword ptr [esi+48h] ; Memory
call	sub_4284D8
push	dword ptr [esi+14h] ; Memory
call	sub_4284D8
mov	ecx, [ebp+var_C]
add	esp, 0Ch
mov	large fs:0, ecx
pop	edi
pop	esi
leave
retn
sub_436DB8 endp



; Attributes: bp-based frame

sub_436E2D proc	near

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_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_448A3A
call	__EH_prolog
sub	esp, 18h
push	ebx
push	esi
push	edi
mov	esi, ecx
push	1
mov	eax, [esi+8]
pop	ecx
cmp	eax, ecx
jle	short loc_436E53
mov	eax, 80004001h
jmp	loc_436F69

loc_436E53:
xor	ebx, ebx
cmp	eax, ebx
jnz	short loc_436E9A
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], 4
mov	[ebp+var_24], offset off_44C500
push	ebx
lea	eax, [ebp+var_24]
push	[ebp+arg_4]
mov	ecx, esi
mov	[ebp+var_4], ebx
push	ebx
push	ebx
push	eax
push	[ebp+arg_0]
call	sub_43690F
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_24]
mov	esi, eax
call	sub_4282FE
jmp	loc_436F1D

loc_436E9A:
mov	[ebp+arg_0], ebx
lea	eax, [ebp+arg_0]
mov	[ebp+var_4], ecx
mov	ecx, [ebp+arg_4]
push	eax
push	[ebp+arg_8]
xor	edx, edx
call	sub_436F7A
push	40h		; Size
call	sub_4284B1
pop	ecx
mov	[ebp+var_10], eax
cmp	eax, ebx
mov	byte ptr [ebp+var_4], 2
jz	short loc_436ECF
mov	ecx, eax
call	sub_4307E3
mov	edi, eax
jmp	short loc_436ED1

loc_436ECF:
xor	edi, edi

loc_436ED1:
cmp	edi, ebx
mov	byte ptr [ebp+var_4], 1
mov	[ebp+var_10], edi
jz	short loc_436EE2
mov	eax, [edi]
push	edi
call	dword ptr [eax+4]

loc_436EE2:
mov	eax, [ebp+arg_4]
mov	ecx, edi
mov	byte ptr [ebp+var_4], 3
push	dword ptr [eax]	; lpFileName
call	sub_4307C1
test	al, al
jnz	short loc_436F21
call	ds:GetLastError
cmp	edi, ebx
mov	esi, eax
mov	byte ptr [ebp+var_4], 1
jz	short loc_436F0C
mov	eax, [edi]
push	edi
call	dword ptr [eax+8]

loc_436F0C:
mov	eax, [ebp+arg_0]
or	[ebp+var_4], 0FFFFFFFFh
cmp	eax, ebx
jz	short loc_436F1D
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_436F1D:
mov	eax, esi
jmp	short loc_436F69

loc_436F21:
mov	eax, [esi+8]
mov	ecx, [esi+0Ch]
push	[ebp+arg_8]
mov	eax, [ecx+eax*4-4]
push	offset unk_44C5D8
push	edi
mov	eax, [eax]
push	eax
mov	ecx, [eax]
call	dword ptr [ecx+0Ch]
cmp	eax, ebx
mov	[ebp+arg_4], eax
setz	al
cmp	edi, ebx
mov	[esi+30h], al
mov	byte ptr [ebp+var_4], 1
jz	short loc_436F55
mov	eax, [edi]
push	edi
call	dword ptr [eax+8]

loc_436F55:
mov	eax, [ebp+arg_0]
or	[ebp+var_4], 0FFFFFFFFh
cmp	eax, ebx
jz	short loc_436F66
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_436F66:
mov	eax, [ebp+arg_4]

loc_436F69:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_436E2D endp



; Attributes: bp-based frame

sub_436F7A proc	near

var_3C=	dword ptr -3Ch
Memory=	dword ptr -30h
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_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_448A66
call	__EH_prolog
sub	esp, 30h
push	ebx
push	esi
push	edi
mov	ebx, edx
mov	[ebp+var_14], ecx
push	90h		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_18], ecx
xor	edi, edi
cmp	ecx, edi
mov	[ebp+var_4], edi
jz	short loc_436FB1
call	sub_436B89
mov	esi, eax
jmp	short loc_436FB3

loc_436FB1:
xor	esi, esi

loc_436FB3:
mov	ecx, [ebp+arg_4]
or	[ebp+var_4], 0FFFFFFFFh
push	esi
call	sub_43D0DB
lea	ecx, [esi+80h]
mov	[esi+7Ch], ebx
push	[ebp+arg_0]
call	sub_43D0DB
lea	ecx, [ebp+var_24]
mov	[ebp+var_24], edi
push	3
mov	[ebp+var_20], edi
mov	[ebp+var_1C], edi
call	sub_403396
mov	eax, [ebp+var_14]
lea	edx, [ebp+var_24]
mov	[ebp+var_4], 1
mov	ecx, [eax]
lea	eax, [ebp+var_10]
push	eax
call	sub_42A775
lea	eax, [ebp+var_3C]
lea	ecx, [ebp+var_24]
push	[ebp+var_10]
push	eax
call	sub_405246
mov	edi, eax
push	[ebp+var_10]
lea	eax, [ebp+Memory]
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 2
push	eax
call	sub_403228
push	edi
push	eax
mov	ecx, esi
mov	byte ptr [ebp+var_4], 3
call	sub_436D26
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
mov	ecx, [ebp+var_C]
add	esp, 0Ch
mov	large fs:0, ecx
pop	edi
pop	esi
pop	ebx
leave
retn	8
sub_436F7A endp



; Attributes: bp-based frame

sub_437059 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset unknown_libname_41 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	3Ch		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_10], ecx
xor	eax, eax
cmp	ecx, eax
mov	[ebp+var_4], eax
jz	short loc_437085
push	[ebp+arg_0]
call	sub_4370AD

loc_437085:
or	[ebp+var_4], 0FFFFFFFFh
push	eax
mov	ecx, esi
call	sub_429907
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_437059 endp




sub_4370A0 proc	near
mov	eax, [ecx]
test	eax, eax
jz	short locret_4370AC
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

locret_4370AC:
retn
sub_4370A0 endp



; Attributes: bp-based frame

sub_4370AD proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_448AA2
call	__EH_prolog
push	ecx
push	esi
push	edi
mov	edi, [ebp+arg_0]
mov	esi, ecx
mov	[ebp+var_10], esi
mov	eax, [edi]
test	eax, eax
mov	[esi], eax
jz	short loc_4370D0
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+4]

loc_4370D0:
and	[ebp+var_4], 0
lea	eax, [edi+4]
push	eax
lea	ecx, [esi+4]
call	sub_4030F2
lea	eax, [edi+10h]
lea	ecx, [esi+10h]
push	eax
mov	byte ptr [ebp+var_4], 1
call	sub_4030F2
mov	eax, [edi+1Ch]
add	edi, 30h
mov	[esi+1Ch], eax
mov	eax, [edi-10h]
mov	[esi+20h], eax
mov	eax, [edi-0Ch]
mov	[esi+24h], eax
mov	eax, [edi-8]
mov	[esi+28h], eax
mov	al, [edi-4]
push	edi
lea	ecx, [esi+30h]
mov	byte ptr [ebp+var_4], 2
mov	[esi+2Ch], al
call	sub_4030F2
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_4370AD endp




sub_437130 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_436C39
sub_437130 endp




sub_43713A proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_436CCB
sub_43713A endp




sub_437144 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_436CD8
sub_437144 endp




sub_43714E proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 8
jmp	sub_436C39
sub_43714E endp




sub_437158 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 8
jmp	sub_436CCB
sub_437158 endp




sub_437162 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 8
jmp	sub_436CD8
sub_437162 endp




sub_43716C proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 0Ch
jmp	sub_436C39
sub_43716C endp




sub_437176 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 0Ch
jmp	sub_436CD8
sub_437176 endp




sub_437180 proc	near
push	esi
push	edi
push	8
lea	esi, [edx+0Eh]
pop	edi

loc_437188:
mov	eax, ecx
and	eax, 0Fh
shr	ecx, 4
cmp	eax, 0Ah
jge	short loc_43719A
add	eax, 30h
jmp	short loc_43719D

loc_43719A:
add	eax, 37h

loc_43719D:
mov	[esi], ax
dec	esi
dec	esi
dec	edi
jnz	short loc_437188
and	word ptr [edx+10h], 0
pop	edi
pop	esi
retn
sub_437180 endp



; Attributes: bp-based frame

sub_4371AD proc	near

var_C0=	word ptr -0C0h
var_80=	byte ptr -80h
var_68=	dword ptr -68h
Memory=	dword ptr -5Ch
var_50=	dword ptr -50h
var_44=	word ptr -44h
var_40=	byte ptr -40h
var_3E=	word ptr -3Eh
var_38=	word ptr -38h
var_32=	word ptr -32h
var_30=	word ptr -30h
LocalFileTime= _FILETIME ptr -24h
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_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_448ACC
call	__EH_prolog
sub	esp, 0B4h
mov	eax, [ebp+arg_0]
push	ebx
push	esi
push	edi
mov	ebx, ecx
xor	edi, edi
cmp	eax, 9
mov	esi, edx
mov	[ebp+var_10], ebx
mov	[ebp+LocalFileTime.dwHighDateTime], edi
jz	loc_4373C2
jbe	loc_4373C8
cmp	eax, 0Ch
jbe	loc_43737C
cmp	eax, 13h
jz	loc_437363
cmp	eax, 35h
jnz	loc_4373C8
cmp	word ptr [esi],	13h
jnz	loc_4373C8
push	3
lea	ecx, [ebp+var_1C]
mov	[ebp+var_1C], edi
mov	[ebp+var_18], edi
mov	[ebp+var_14], edi
call	sub_403396
mov	ebx, [esi+8]
push	6
mov	eax, ebx
mov	[ebp+var_4], edi
shr	eax, 0Ch
and	eax, 0Fh
pop	esi
movsx	ax, ds:byte_44C650[eax]
mov	[ebp+var_44], ax
lea	eax, [ebp+var_40]

loc_437236:
lea	edx, [esi+1]
push	1
pop	edi
lea	ecx, [edx+1]
push	1
shl	edi, cl
mov	ecx, edx
and	edi, ebx
neg	edi
sbb	edi, edi
and	edi, 45h
add	edi, 2Dh
mov	[eax-2], di
pop	edi
shl	edi, cl
push	1
mov	ecx, esi
pop	edx
and	edi, ebx
neg	edi
sbb	edi, edi
shl	edx, cl
and	edi, 4Ah
add	edi, 2Dh
mov	[eax], di
and	edx, ebx
neg	edx
sbb	edx, edx
sub	esi, 3
and	edx, 4Bh
add	eax, 6
add	edx, 2Dh
mov	[eax-4], dx
test	esi, esi
jge	short loc_437236
test	bh, 8
jz	short loc_43729D
mov	eax, ebx
shr	eax, 1
and	al, 20h
or	al, 53h
movsx	ax, al
mov	[ebp+var_3E], ax

loc_43729D:
test	bh, 4
jz	short loc_4372B3
mov	al, bl
and	al, 8
shl	al, 2
or	al, 53h
movsx	ax, al
mov	[ebp+var_38], ax

loc_4372B3:
test	bh, 2
jz	short loc_4372C9
mov	al, bl
and	al, 1
shl	al, 5
or	al, 54h
movsx	ax, al
mov	[ebp+var_32], ax

loc_4372C9:
and	[ebp+var_30], 0
lea	eax, [ebp+var_44]
push	eax
lea	ecx, [ebp+var_1C]
call	sub_404722
and	ebx, 0FFFF0000h
jz	short loc_437346
lea	edx, [ebp+var_44]
mov	ecx, ebx
call	sub_437180
lea	eax, [ebp+var_44]
lea	ecx, [ebp+var_68]
push	eax
call	sub_403091
push	20h
mov	edx, eax
lea	ecx, [ebp+var_50]
mov	byte ptr [ebp+var_4], 1
call	sub_409999
lea	ecx, [ebp+var_1C]
mov	edx, eax
push	ecx
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 2
call	sub_40356A
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 3
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_50]	; Memory
call	sub_4284D8
push	[ebp+var_68]	; Memory
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
add	esp, 0Ch

loc_437346:
mov	ecx, [ebp+var_10]
lea	eax, [ebp+var_1C]
push	eax
call	sub_4030F2
push	[ebp+var_1C]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_10]
pop	ecx
jmp	loc_437420

loc_437363:
cmp	word ptr [esi],	13h
jnz	short loc_4373C8
mov	ecx, [esi+8]
lea	edx, [ebp+var_80]
call	sub_437180
lea	eax, [ebp+var_80]
jmp	loc_437416

loc_43737C:
cmp	word ptr [esi],	40h
jnz	short loc_4373C8
cmp	[esi+0Ch], edi
jnz	short loc_43738C
cmp	[esi+8], edi
jz	short loc_43739E

loc_43738C:
lea	eax, [ebp+LocalFileTime]
add	esi, 8
push	eax		; lpLocalFileTime
push	esi		; lpFileTime
call	ds:FileTimeToLocalFileTime
test	eax, eax
jnz	short loc_4373B1

loc_43739E:
push	3
mov	ecx, ebx
mov	[ebx], edi
mov	[ebx+4], edi
mov	[ebx+8], edi
call	sub_403396
jmp	short loc_43741E

loc_4373B1:
push	[ebp+arg_4]
lea	edx, [ebp+LocalFileTime]
mov	ecx, ebx
push	1
call	sub_42D139
jmp	short loc_43741E

loc_4373C2:
cmp	word ptr [esi],	13h
jz	short loc_4373D3

loc_4373C8:
mov	edx, esi
mov	ecx, ebx
call	sub_42D193
jmp	short loc_43741E

loc_4373D3:
mov	esi, [esi+8]
mov	[ebp+arg_0], edi
xor	ecx, ecx
lea	eax, [ebp+var_C0]

loc_4373E1:
push	1
pop	edx
shl	edx, cl
test	esi, edx
jz	short loc_4373FF
cmp	ecx, 7
jz	short loc_4373FF
movsx	dx, ds:byte_44C63C[ecx]
inc	[ebp+arg_0]
mov	[eax], dx
inc	eax
inc	eax

loc_4373FF:
inc	ecx
cmp	ecx, 10h
jl	short loc_4373E1
mov	eax, [ebp+arg_0]
mov	[ebp+eax*2+var_C0], di
lea	eax, [ebp+var_C0]

loc_437416:
push	eax
mov	ecx, ebx
call	sub_403091

loc_43741E:
mov	eax, ebx

loc_437420:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_4371AD endp




sub_437431 proc	near

arg_0= dword ptr  4

push	ebx
push	ebp
push	esi
push	edi
mov	edi, edx
mov	ebx, ecx
mov	ecx, edi
call	sub_428327
mov	esi, [ebx+8]
mov	ecx, edi
push	esi
call	sub_428378
xor	ebp, ebp
test	esi, esi
jle	short loc_43745E

loc_437451:
push	ebp
mov	ecx, edi
call	sub_429907
inc	ebp
cmp	ebp, esi
jl	short loc_437451

loc_43745E:
push	ebx
push	offset loc_437470
mov	ecx, edi
call	sub_43748B
pop	edi
pop	esi
pop	ebp
pop	ebx
retn

loc_437470:
mov	eax, [esp+arg_0]
mov	edx, [edx]
mov	ecx, [ecx]
mov	eax, [eax+0Ch]
mov	edx, [eax+edx*4]
mov	eax, [eax+ecx*4]
mov	ecx, eax
call	sub_428DA4
retn	4
sub_437431 endp




sub_43748B proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	ebx
mov	ebx, [ecx+8]
cmp	ebx, 1
jle	short loc_4374E5
mov	eax, ebx
push	esi
mov	esi, [ecx+0Ch]
push	edi
cdq
sub	eax, edx
sub	esi, 4
mov	edi, eax
sar	edi, 1

loc_4374A5:
push	[esp+0Ch+arg_4]
mov	edx, edi
mov	ecx, esi
push	[esp+10h+arg_0]
push	ebx
call	sub_4374E9
dec	edi
jnz	short loc_4374A5
lea	edi, [esi+ebx*4]

loc_4374BD:
push	[esp+0Ch+arg_4]
mov	ecx, [esi+4]
mov	eax, [edi]
dec	ebx
push	[esp+10h+arg_0]
mov	[edi], ecx
mov	ecx, esi
sub	edi, 4
push	ebx
push	1
pop	edx
mov	[esi+4], eax
call	sub_4374E9
cmp	ebx, 1
jg	short loc_4374BD
pop	edi
pop	esi

loc_4374E5:
pop	ebx
retn	8
sub_43748B endp



; Attributes: bp-based frame

sub_4374E9 proc	near

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
push	ebx
push	esi
push	edi
mov	ebx, edx
mov	edi, ecx
lea	esi, [ebx+ebx]
mov	eax, [edi+ebx*4]
mov	[ebp+var_4], eax

loc_4374FE:
cmp	esi, [ebp+arg_0]
jg	short loc_43753A
jge	short loc_43751E
push	[ebp+arg_8]
lea	eax, [esi+1]
lea	edx, [edi+esi*4]
mov	[ebp+var_8], eax
lea	ecx, [edi+eax*4]
call	[ebp+arg_4]
test	eax, eax
jle	short loc_43751E
mov	esi, [ebp+var_8]

loc_43751E:
push	[ebp+arg_8]
lea	edx, [edi+esi*4]
lea	ecx, [ebp+var_4]
call	[ebp+arg_4]
test	eax, eax
jge	short loc_43753A
mov	eax, [edi+esi*4]
mov	[edi+ebx*4], eax
mov	ebx, esi
shl	esi, 1
jmp	short loc_4374FE

loc_43753A:
mov	eax, [ebp+var_4]
mov	[edi+ebx*4], eax
pop	edi
pop	esi
pop	ebx
leave
retn	0Ch
sub_4374E9 endp



; Attributes: bp-based frame

sub_437547 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_448AEE
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44C758
mov	dword ptr [esi+4], offset off_44C260
mov	dword ptr [esi+8], offset off_44B990
mov	dword ptr [esi+0Ch], offset off_44C160
mov	[esi+10h], ebx
mov	[esi+18h], ebx
mov	[esi+1Ch], ebx
mov	[esi+20h], ebx
mov	dword ptr [esi+24h], 8
mov	dword ptr [esi+14h], offset off_44C418
lea	ecx, [esi+28h]
push	3
mov	[ebp+var_4], ebx
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+34h]
push	3
mov	byte ptr [ebp+var_4], 1
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
mov	ecx, [ebp+var_C]
mov	[esi+40h], ebx
mov	[esi+44h], bl
mov	[esi+45h], bl
mov	[esi+48h], ebx
mov	[esi+4Ch], ebx
mov	[esi+50h], ebx
mov	[esi+54h], ebx
mov	[esi+58h], ebx
mov	dword ptr [esi], offset	off_44C72C
mov	dword ptr [esi+4], offset off_44C71C
mov	dword ptr [esi+8], offset off_44C70C
mov	dword ptr [esi+0Ch], offset off_44C6FC
mov	eax, esi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_437547 endp



; Attributes: bp-based frame

; int __stdcall	sub_4375FE(int,	void *Buf1, int)
sub_4375FE proc	near

arg_0= dword ptr  8
Buf1= dword ptr	 0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
push	esi
mov	esi, [ebp+Buf1]
push	10h		; Size
push	offset unk_44CCB8 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_437623

loc_437619:
mov	ecx, [ebp+arg_8]
mov	eax, [ebp+arg_0]
mov	[ecx], eax
jmp	short loc_43769A

loc_437623:		; Size
push	10h
push	offset unk_44B750 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jz	short loc_437619
push	10h		; Size
push	offset unk_44B710 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_437655
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+4]
jmp	short loc_43768F

loc_437655:		; Size
push	10h
push	offset unk_44B720 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_437673
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+8]
jmp	short loc_43768F

loc_437673:		; Size
push	10h
push	offset unk_44B700 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_4376A4
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+0Ch]

loc_43768F:
neg	ecx
sbb	ecx, ecx
and	ecx, edx
mov	edx, [ebp+arg_8]
mov	[edx], ecx

loc_43769A:
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+4]
xor	eax, eax
jmp	short loc_4376A9

loc_4376A4:
mov	eax, 80004002h

loc_4376A9:
pop	esi
pop	ebp
retn	0Ch
sub_4375FE endp




; int __stdcall	sub_4376AE(void	*Memory)
sub_4376AE proc	near

Memory=	dword ptr  4

push	esi
mov	esi, [esp+4+Memory]
dec	dword ptr [esi+10h]
mov	eax, [esi+10h]
jnz	short loc_4376CF
test	esi, esi
jz	short loc_4376CD
mov	ecx, esi
call	sub_4376D3
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_4376CD:
xor	eax, eax

loc_4376CF:
pop	esi
retn	4
sub_4376AE endp



; Attributes: bp-based frame

sub_4376D3 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_448B19
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	eax, [esi+58h]
mov	[ebp+var_4], 2
test	eax, eax
jz	short loc_4376F8
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_4376F8:		; Memory
push	dword ptr [esi+34h]
call	sub_4284D8
push	dword ptr [esi+28h] ; Memory
call	sub_4284D8
or	[ebp+var_4], 0FFFFFFFFh
pop	ecx
pop	ecx
lea	ecx, [esi+14h]
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_4376D3 endp



; Attributes: bp-based frame

sub_437723 proc	near

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

mov	eax, offset loc_448B24
call	__EH_prolog
push	ecx
mov	eax, [ebp+arg_0]
push	ebx
push	esi
push	edi
mov	ecx, [eax+40h]
and	[ebp+var_4], 0
mov	[ebp+var_10], esp
push	[ebp+arg_8]
mov	eax, [ecx]
push	[ebp+arg_4]
call	dword ptr [eax]
jmp	short loc_437755

loc_43774A:
mov	eax, offset loc_437750
retn

loc_437750:
mov	eax, 8007000Eh

loc_437755:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	0Ch
sub_437723 endp



; Attributes: bp-based frame

sub_437766 proc	near

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

mov	eax, offset loc_448B30
call	__EH_prolog
push	ecx
mov	eax, [ebp+arg_0]
and	[ebp+var_4], 0
push	ebx
push	esi
mov	ecx, [eax+40h]
push	edi
mov	[ebp+var_10], esp
push	[ebp+arg_4]
mov	eax, [ecx]
call	dword ptr [eax+4]
jmp	short loc_437796

loc_43778B:
mov	eax, offset loc_437791
retn

loc_437791:
mov	eax, 8007000Eh

loc_437796:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	8
sub_437766 endp



; Attributes: bp-based frame

sub_4377A7 proc	near

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

mov	eax, offset loc_448B3C
call	__EH_prolog
push	ecx
mov	eax, [ebp+arg_0]
push	ebx
push	esi
push	edi
mov	ecx, [eax+34h]
and	[ebp+var_4], 0
mov	[ebp+var_10], esp
push	[ebp+arg_8]
mov	eax, [ecx]
push	[ebp+arg_4]
call	dword ptr [eax+8]
jmp	short loc_4377DA

loc_4377CF:
mov	eax, offset loc_4377D5
retn

loc_4377D5:
mov	eax, 8007000Eh

loc_4377DA:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	0Ch
sub_4377A7 endp



; Attributes: bp-based frame

sub_4377EB proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_448B48
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	esi, [ebp+arg_0]
push	edi
xor	ebx, ebx
mov	[ebp+var_10], esp
mov	ecx, [esi+40h]
mov	[ebp+var_4], ebx
mov	eax, [ecx]
call	dword ptr [eax+0Ch]
cmp	eax, ebx
jnz	short loc_437872
mov	eax, [esi+50h]
mov	ecx, [ebp+arg_4]
shl	ecx, 4
mov	eax, [eax+0Ch]
add	eax, ecx
mov	ecx, [ebp+arg_8]
cmp	ecx, ebx
jz	short loc_43782E
xor	edx, edx
cmp	[eax], bl
setnz	dl
mov	[ecx], edx

loc_43782E:
mov	ecx, [ebp+arg_C]
cmp	ecx, ebx
jz	short loc_43783F
xor	edx, edx
cmp	[eax+1], bl
setnz	dl
mov	[ecx], edx

loc_43783F:
mov	edx, [ebp+arg_10]
cmp	edx, ebx
jz	short loc_437863
or	dword ptr [edx], 0FFFFFFFFh
mov	eax, [eax+8]
cmp	eax, 0FFFFFFFFh
jz	short loc_437863
mov	ecx, [esi+4Ch]
cmp	ecx, ebx
jz	short loc_437861
mov	ecx, [ecx+0Ch]
mov	eax, [ecx+eax*4]
mov	eax, [eax+20h]

loc_437861:
mov	[edx], eax

loc_437863:
xor	eax, eax
jmp	short loc_437872

loc_437867:
mov	eax, offset loc_43786D
retn

loc_43786D:
mov	eax, 8007000Eh

loc_437872:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	14h
sub_4377EB endp



; Attributes: bp-based frame

sub_437883 proc	near

pvarg= VARIANTARG ptr -2Ch
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_448B64
call	__EH_prolog
sub	esp, 20h
mov	ecx, [ebp+arg_0]
mov	edx, [ebp+arg_4]
push	ebx
push	esi
mov	eax, [ecx+50h]
push	edi
xor	ebx, ebx
mov	[ebp+var_10], esp
mov	eax, [eax+0Ch]
mov	[ebp+var_4], ebx
shl	edx, 4
add	eax, edx
mov	word ptr [ebp+pvarg.anonymous_0], bx
mov	word ptr [ebp+pvarg.anonymous_0+2], bx
mov	esi, [ebp+arg_8]
mov	byte ptr [ebp+var_4], 1
cmp	esi, 15h
jnz	short loc_4378E9
mov	al, [eax+2]

loc_4378C3:
push	eax
lea	ecx, [ebp+pvarg]
call	sub_42CD4D

loc_4378CC:		; pvarg
push	[ebp+arg_C]
lea	ecx, [ebp+pvarg] ; Src
call	sub_42CE85
lea	ecx, [ebp+pvarg] ; pvarg
mov	byte ptr [ebp+var_4], bl
call	sub_42CDE1
xor	eax, eax
jmp	loc_437A13

loc_4378E9:
cmp	[eax+2], bl
jz	short loc_437909
mov	edx, esi
sub	edx, 3
jz	short loc_437909
sub	edx, 3
jz	short loc_437909
dec	edx
jnz	short loc_4378CC
push	ebx
push	ebx

loc_4378FF:
lea	ecx, [ebp+pvarg]
call	sub_42CD92
jmp	short loc_4378CC

loc_437909:
mov	edx, [eax+4]
cmp	edx, 0FFFFFFFFh
jz	loc_4379A1
mov	ecx, [ecx+48h]
sub	esi, 3
mov	eax, [ecx+48h]
mov	eax, [eax+edx*4]
jz	short loc_437977
sub	esi, 3
jz	short loc_43796A
dec	esi
jz	short loc_437963
dec	esi
dec	esi
jz	short loc_437953
dec	esi
jz	short loc_437942
dec	esi
jz	short loc_43793D
dec	esi
jnz	short loc_4378CC
add	eax, 18h
jmp	short loc_437945

loc_43793D:
add	eax, 10h
jmp	short loc_437945

loc_437942:
add	eax, 8

loc_437945:
push	eax
lea	ecx, [ebp+pvarg]
call	sub_42CDB9
jmp	loc_4378CC

loc_437953:
push	dword ptr [eax+2Ch]
lea	ecx, [ebp+pvarg]
call	sub_42CD72
jmp	loc_4378CC

loc_437963:
push	dword ptr [eax+4]
push	dword ptr [eax]
jmp	short loc_4378FF

loc_43796A:
mov	eax, [eax+2Ch]
shr	eax, 4
and	al, 1
jmp	loc_4378C3

loc_437977:
lea	eax, [ebp+Memory]
push	edx
push	eax
call	sub_43371E
push	dword ptr [eax]	; psz
lea	ecx, [ebp+pvarg]
mov	byte ptr [ebp+var_4], 2
call	sub_42CC9E
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
pop	ecx
jmp	loc_4378CC

loc_4379A1:
cmp	esi, 3
jnz	short loc_4379C5
mov	edx, [eax+0Ch]
cmp	edx, ebx
jl	short loc_4379C5
mov	eax, [ecx+54h]
lea	ecx, [ebp+pvarg]
mov	eax, [eax+0Ch]
mov	eax, [eax+edx*4]
push	dword ptr [eax]	; psz
call	sub_42CC9E
jmp	loc_4378CC

loc_4379C5:
mov	eax, [eax+8]
cmp	eax, 0FFFFFFFFh
jz	loc_4378CC
mov	edx, [ecx+58h]
cmp	edx, ebx
jz	loc_4378CC
mov	ecx, [ecx+4Ch]
cmp	ecx, ebx
jz	short loc_4379EC
mov	ecx, [ecx+0Ch]
mov	eax, [ecx+eax*4]
mov	eax, [eax+20h]

loc_4379EC:
push	[ebp+arg_C]
mov	ecx, [edx]
push	esi
push	eax
push	edx
call	dword ptr [ecx+18h]
lea	ecx, [ebp+pvarg] ; pvarg
mov	esi, eax
mov	byte ptr [ebp+var_4], bl
call	sub_42CDE1
mov	eax, esi
jmp	short loc_437A13

loc_437A08:
mov	eax, offset loc_437A0E
retn

loc_437A0E:
mov	eax, 8007000Eh

loc_437A13:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	10h
sub_437883 endp



; Attributes: bp-based frame

sub_437A24 proc	near

Memory=	dword ptr -28h
lpFileName= dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_448B92
call	__EH_prolog
sub	esp, 1Ch
mov	ecx, [ebp+arg_4]
push	ebx
push	esi
mov	esi, [ebp+arg_0]
and	[ebp+var_4], 0
push	edi
mov	eax, [esi+50h]
mov	[ebp+var_10], esp
shl	ecx, 4
mov	edi, [eax+0Ch]
add	edi, ecx
cmp	byte ptr [edi],	0
jnz	short loc_437A5B
mov	eax, 80004005h
jmp	loc_437BD4

loc_437A5B:
mov	ecx, [esi+40h]
mov	eax, [ecx]
call	dword ptr [eax+0Ch]
test	eax, eax
jnz	loc_437BD4
mov	ecx, [esi+40h]
mov	eax, [ecx]
call	dword ptr [eax+10h]
test	eax, eax
jnz	loc_437BD4
cmp	[edi+2], al
jz	short loc_437A9F
mov	eax, [esi+4Ch]
mov	ecx, [edi+8]
push	1
mov	eax, [eax+0Ch]
mov	eax, [eax+ecx*4]
mov	ecx, [esi+40h]
mov	eax, [eax+10h]
mov	edx, [ecx]
push	eax
call	dword ptr [edx+18h]
jmp	loc_437BD4

loc_437A9F:
mov	ecx, [esi+48h]
mov	eax, [edi+4]
push	eax
mov	edx, [ecx+48h]
mov	ebx, [edx+eax*4]
lea	eax, [ebp+Memory]
push	eax
call	sub_43371E
mov	ecx, [esi+40h]
mov	eax, [eax]
push	0
push	eax
mov	edx, [ecx]
mov	byte ptr [ebp+var_4], 1
call	dword ptr [edx+18h]
push	[ebp+Memory]	; Memory
and	byte ptr [ebp+var_4], 0
mov	[ebp+arg_0], eax
call	sub_4284D8
mov	eax, [ebp+arg_0]
pop	ecx
test	eax, eax
jnz	loc_437BD4
mov	eax, [ebx+2Ch]
shr	eax, 4
test	al, 1
jnz	loc_437BC5
cmp	byte ptr [esi+45h], 0
jz	short loc_437B25
push	8		; Size
call	sub_4284B1
test	eax, eax
pop	ecx
jz	short loc_437B0F
and	dword ptr [eax+4], 0
mov	dword ptr [eax], offset	off_44C5E0
mov	esi, eax
jmp	short loc_437B11

loc_437B0F:
xor	esi, esi

loc_437B11:
test	esi, esi
jz	short loc_437B1B
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]

loc_437B1B:
mov	eax, [ebp+arg_8]
mov	[eax], esi
jmp	loc_437BC5

loc_437B25:		; Size
push	40h
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+arg_0], ecx
test	ecx, ecx
mov	byte ptr [ebp+var_4], 2
jz	short loc_437B43
call	sub_4307E3
mov	ebx, eax
jmp	short loc_437B45

loc_437B43:
xor	ebx, ebx

loc_437B45:
and	byte ptr [ebp+var_4], 0
mov	[ebp+arg_0], ebx
test	ebx, ebx
jz	short loc_437B56
mov	eax, [ebx]
push	ebx
call	dword ptr [eax+4]

loc_437B56:
push	dword ptr [edi+4]
mov	ecx, [esi+48h]
lea	eax, [ebp+lpFileName]
mov	byte ptr [ebp+var_4], 3
push	eax
call	sub_4336F3
mov	al, [esi+44h]
mov	ecx, ebx
push	eax		; char
mov	byte ptr [ebp+var_4], 4
push	[ebp+lpFileName] ; lpFileName
call	sub_4307D0
test	al, al
jnz	short loc_437BB7
mov	eax, [ebp+lpFileName]
mov	[ebp+arg_8], eax
mov	eax, [esi+40h]
mov	edi, [eax]
call	ds:GetLastError
mov	ecx, [esi+40h]
push	eax
push	[ebp+arg_8]
call	dword ptr [edi+1Ch]
push	[ebp+lpFileName] ; Memory
mov	esi, eax
call	sub_4284D8
and	byte ptr [ebp+var_4], 0
pop	ecx
test	ebx, ebx
jz	short loc_437BB3
mov	eax, [ebx]
push	ebx
call	dword ptr [eax+8]

loc_437BB3:
mov	eax, esi
jmp	short loc_437BD4

loc_437BB7:
mov	eax, [ebp+arg_8]
push	[ebp+lpFileName] ; Memory
mov	[eax], ebx
call	sub_4284D8
pop	ecx

loc_437BC5:
xor	eax, eax
jmp	short loc_437BD4

loc_437BC9:
mov	eax, offset loc_437BCF
retn

loc_437BCF:
mov	eax, 8007000Eh

loc_437BD4:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	0Ch
sub_437A24 endp



; Attributes: bp-based frame

sub_437BE5 proc	near

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

mov	eax, offset loc_448B9C
call	__EH_prolog
push	ecx
mov	eax, [ebp+arg_0]
and	[ebp+var_4], 0
push	ebx
push	esi
mov	ecx, [eax+40h]
push	edi
mov	[ebp+var_10], esp
push	[ebp+arg_4]
mov	eax, [ecx]
call	dword ptr [eax+20h]
jmp	short loc_437C15

loc_437C0A:
mov	eax, offset loc_437C10
retn

loc_437C10:
mov	eax, 8007000Eh

loc_437C15:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	8
sub_437BE5 endp




sub_437C26 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8
arg_8= dword ptr  0Ch

mov	edx, [esp+arg_0]
mov	ecx, [edx+1Ch]
test	ecx, ecx
jnz	short loc_437C36
push	1
pop	eax
jmp	short locret_437C58

loc_437C36:
mov	eax, [esp+arg_4]
cmp	eax, ecx
jb	short loc_437C41
lea	eax, [ecx-1]

loc_437C41:
mov	edx, [edx+20h]
mov	ecx, [esp+arg_8]
push	esi
mov	esi, [edx+eax*8]
mov	[ecx], esi
pop	esi
mov	eax, [edx+eax*8+4]
mov	[ecx+4], eax
xor	eax, eax

locret_437C58:
retn	0Ch
sub_437C26 endp



; Attributes: bp-based frame

sub_437C5B proc	near

var_60=	byte ptr -60h
var_40=	dword ptr -40h
Memory=	dword ptr -34h
var_28=	dword ptr -28h
var_24=	dword ptr -24h
lpFileName= dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_448BDA
call	__EH_prolog
sub	esp, 54h
mov	eax, [ebp+arg_4]
push	ebx
push	esi
push	edi
xor	ebx, ebx
lea	edx, [ebp+var_60]
lea	ecx, [eax+1]
mov	[ebp+var_10], esp
mov	[ebp+var_4], ebx
call	sub_427B8F
lea	eax, [ebp+var_60]
lea	ecx, [ebp+var_28]
push	eax
call	sub_403091
mov	byte ptr [ebp+var_4], 1

loc_437C91:
cmp	[ebp+var_24], 2
jge	short loc_437CD8
push	30h
lea	ecx, [ebp+var_40]
call	sub_409516
lea	ecx, [ebp+var_28]
mov	edx, eax
push	ecx
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 2
call	sub_40356A
push	eax
lea	ecx, [ebp+var_28]
mov	byte ptr [ebp+var_4], 3
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_40]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
pop	ecx
pop	ecx
jmp	short loc_437C91

loc_437CD8:
mov	esi, [ebp+arg_0]
lea	ecx, [ebp+lpFileName]
lea	eax, [esi+28h]
push	eax
call	sub_4030F2
push	2Eh
lea	ecx, [ebp+lpFileName]
mov	byte ptr [ebp+var_4], 4
call	sub_40316A
lea	eax, [ebp+var_28]
lea	ecx, [ebp+lpFileName]
push	eax
call	sub_4031F2
add	esi, 34h
lea	ecx, [ebp+lpFileName]
push	esi
call	sub_4031F2
push	20h		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+arg_4], ecx
cmp	ecx, ebx
mov	byte ptr [ebp+var_4], 5
jz	short loc_437D2B
call	sub_437DAC
mov	esi, eax
jmp	short loc_437D2D

loc_437D2B:
xor	esi, esi

loc_437D2D:
cmp	esi, ebx
mov	byte ptr [ebp+var_4], 4
mov	[ebp+arg_4], esi
jz	short loc_437D3E
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]

loc_437D3E:
mov	eax, [ebp+lpFileName]
push	ebx		; char
mov	[esi+18h], ebx
push	eax		; lpFileName
lea	ecx, [esi+8]
mov	byte ptr [ebp+var_4], 6
mov	[esi+1Ch], ebx
call	sub_42C21B
cmp	al, bl
jnz	short loc_437D73
call	ds:GetLastError
cmp	esi, ebx
mov	edi, eax
mov	byte ptr [ebp+var_4], 4
jz	short loc_437D6F
mov	eax, [esi]
push	esi
call	dword ptr [eax+8]

loc_437D6F:
mov	esi, edi
jmp	short loc_437D7A

loc_437D73:
mov	eax, [ebp+arg_8]
mov	[eax], esi
xor	esi, esi

loc_437D7A:		; Memory
push	[ebp+lpFileName]
call	sub_4284D8
push	[ebp+var_28]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
pop	ecx
jmp	short loc_437D9B

loc_437D90:
mov	eax, offset loc_437D96
retn

loc_437D96:
mov	eax, 8007000Eh

loc_437D9B:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	0Ch
sub_437C5B endp




sub_437DAC proc	near
mov	eax, ecx
and	dword ptr [eax+4], 0
or	dword ptr [eax+8], 0FFFFFFFFh
mov	dword ptr [eax], offset	off_44C570
retn
sub_437DAC endp



; Attributes: bp-based frame

sub_437DBD proc	near

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

mov	eax, offset loc_448BE4
call	__EH_prolog
push	ecx
mov	eax, [ebp+arg_0]
push	ebx
push	esi
push	edi
mov	ecx, [eax+3Ch]
and	[ebp+var_4], 0
mov	[ebp+var_10], esp
push	[ebp+arg_8]
mov	eax, [ecx]
push	[ebp+arg_4]
call	dword ptr [eax+24h]
jmp	short loc_437DF0

loc_437DE5:
mov	eax, offset loc_437DEB
retn

loc_437DEB:
mov	eax, 8007000Eh

loc_437DF0:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	0Ch
sub_437DBD endp



; Attributes: bp-based frame

sub_437E01 proc	near

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

mov	eax, offset loc_448BF0
call	__EH_prolog
push	ecx
mov	eax, [ebp+arg_0]
and	[ebp+var_4], 0
push	ebx
push	esi
mov	ecx, [eax+38h]
push	edi
mov	[ebp+var_10], esp
push	[ebp+arg_4]
mov	eax, [ecx]
call	dword ptr [eax+28h]
jmp	short loc_437E31

loc_437E26:
mov	eax, offset loc_437E2C
retn

loc_437E2C:
mov	eax, 8007000Eh

loc_437E31:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	8
sub_437E01 endp




sub_437E42 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_4375FE
sub_437E42 endp




sub_437E4C proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_4376AE
sub_437E4C endp




sub_437E56 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 8
jmp	sub_4375FE
sub_437E56 endp




sub_437E60 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 8
jmp	sub_4376AE
sub_437E60 endp




sub_437E6A proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 0Ch
jmp	sub_4375FE
sub_437E6A endp




sub_437E74 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 0Ch
jmp	sub_436CCB
sub_437E74 endp




sub_437E7E proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 0Ch
jmp	sub_4376AE
sub_437E7E endp



; Attributes: bp-based frame

sub_437E88 proc	near

var_84=	dword ptr -84h
var_78=	dword ptr -78h
var_70=	dword ptr -70h
var_64=	dword ptr -64h
var_5C=	dword ptr -5Ch
var_50=	dword ptr -50h
var_48=	dword ptr -48h
Memory=	dword ptr -40h
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_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_448C3F
call	__EH_prolog
sub	esp, 78h
push	ebx
push	esi
mov	esi, ecx
push	edi
mov	ebx, edx
push	4
lea	ecx, [ebp+var_84]
mov	[ebp+var_20], ebx
mov	[ebp+var_28], esi
call	sub_402794
mov	edi, offset off_44C500
mov	[ebp+var_84], edi
and	[ebp+var_4], 0
push	4
lea	ecx, [ebp+var_70]
call	sub_402794
mov	[ebp+var_70], edi
mov	eax, [esi+44h]
mov	edi, [ebx+8]
push	4
lea	ecx, [ebp+var_48]
mov	byte ptr [ebp+var_4], 1
mov	[ebp+var_18], eax
mov	[ebp+var_1C], edi
call	sub_402794
mov	ebx, offset off_44B510
mov	[ebp+var_48], ebx
push	edi
lea	ecx, [ebp+var_48]
mov	byte ptr [ebp+var_4], 2
call	sub_428378
xor	edi, edi
cmp	[ebp+var_1C], edi
jle	short loc_437F1C

loc_437F01:
mov	eax, [ebp+var_20]
lea	ecx, [ebp+var_48]
mov	eax, [eax+0Ch]
mov	eax, [eax+edi*4]
add	eax, 10h
push	eax
call	sub_4032B4
inc	edi
cmp	edi, [ebp+var_1C]
jl	short loc_437F01

loc_437F1C:
lea	edx, [ebp+var_70]
lea	ecx, [ebp+var_48]
call	sub_437431
lea	edx, [ebp+var_70]
lea	ecx, [ebp+var_48]
call	sub_4382C9
mov	[ebp+var_48], ebx
lea	ecx, [ebp+var_48]
mov	byte ptr [ebp+var_4], 3
call	sub_428327
lea	ecx, [ebp+var_48]
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
lea	ecx, [ebp+var_5C]
push	4
call	sub_402794
mov	[ebp+var_5C], ebx
push	[ebp+var_18]
lea	ecx, [ebp+var_5C]
mov	byte ptr [ebp+var_4], 4
call	sub_428378
xor	edi, edi
cmp	[ebp+var_18], edi
jle	short loc_437F9C

loc_437F70:
lea	eax, [ebp+Memory]
push	edi
push	eax
mov	ecx, esi
call	sub_43371E
push	eax
lea	ecx, [ebp+var_5C]
mov	byte ptr [ebp+var_4], 5
call	sub_4032B4
mov	byte ptr [ebp+var_4], 4
push	[ebp+Memory]	; Memory
call	sub_4284D8
inc	edi
pop	ecx
cmp	edi, [ebp+var_18]
jl	short loc_437F70

loc_437F9C:
lea	edx, [ebp+var_84]
lea	ecx, [ebp+var_5C]
call	sub_437431
lea	edx, [ebp+var_84]
lea	ecx, [ebp+var_5C]
call	sub_4382C9
xor	eax, eax
cmp	[ebp+var_18], eax
mov	[ebp+var_10], eax
mov	[ebp+var_14], eax
jle	loc_438149
jmp	short loc_437FCE

loc_437FCB:
mov	esi, [ebp+var_28]

loc_437FCE:
mov	eax, [ebp+var_14]
cmp	eax, [ebp+var_1C]
jge	loc_43810C
mov	ecx, [ebp+var_78]
mov	edx, [ebp+var_10]
or	[ebp+var_30], 0FFFFFFFFh
or	[ebp+var_2C], 0FFFFFFFFh
mov	ebx, [ecx+edx*4]
mov	ecx, [ebp+var_64]
mov	edi, [ecx+eax*4]
mov	eax, [esi+48h]
mov	eax, [eax+ebx*4]
mov	[ebp+var_24], eax
mov	eax, [ebp+var_20]
mov	eax, [eax+0Ch]
mov	esi, [eax+edi*4]
mov	eax, [ebp+var_50]
mov	ecx, [eax+ebx*4]
lea	edx, [esi+10h]
call	sub_428DA4
test	eax, eax
jge	short loc_438027
inc	[ebp+var_10]
mov	[ebp+var_34], 2
mov	[ebp+var_2C], ebx
jmp	loc_4380E8

loc_438027:
jle	short loc_43803C
xor	eax, eax
mov	[ebp+var_30], edi
cmp	[esi+1Fh], al
setnz	al
mov	[ebp+var_34], eax
jmp	loc_4380E5

loc_43803C:
cmp	byte ptr [esi+1Fh], 0
jnz	short loc_438073
push	off_45CB8C
lea	ecx, [ebp+Memory]
call	sub_403091
mov	eax, [ebp+var_50]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 6
mov	edx, [eax+ebx*4]
lea	eax, [esi+10h]
push	eax
call	sub_438269
mov	byte ptr [ebp+var_4], 4
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_438073:
cmp	byte ptr [esi+1Eh], 0
mov	[ebp+var_2C], ebx
mov	[ebp+var_30], edi
jz	short loc_43809D
mov	eax, [esi+24h]
cmp	eax, 0FFFFFFFFh
jnz	short loc_43808A
mov	eax, [ebp+arg_0]

loc_43808A:
mov	edi, [ebp+var_24]
lea	ecx, [esi+8]
push	ecx
mov	ecx, eax
lea	edx, [edi+18h]
call	sub_4381E2
jmp	short loc_4380A2

loc_43809D:
mov	edi, [ebp+var_24]
xor	eax, eax

loc_4380A2:
cmp	eax, 0FFFFFFFFh
jz	short loc_4380DB
cmp	eax, 1
jz	short loc_4380D2
cmp	byte ptr [esi+1Dh], 0
jz	short loc_4380C9
mov	eax, [edi]
cmp	eax, [esi]
jnz	short loc_4380C9
mov	eax, [edi+4]
cmp	eax, [esi+4]
jnz	short loc_4380C9
mov	[ebp+var_34], 5
jmp	short loc_4380E2

loc_4380C9:
mov	[ebp+var_34], 6
jmp	short loc_4380E2

loc_4380D2:
mov	[ebp+var_34], 4
jmp	short loc_4380E2

loc_4380DB:
mov	[ebp+var_34], 3

loc_4380E2:
inc	[ebp+var_10]

loc_4380E5:
inc	[ebp+var_14]

loc_4380E8:
sub	esp, 0Ch
lea	esi, [ebp+var_34]
mov	edi, esp
mov	ecx, [ebp+arg_4]
movsd
movsd
movsd
call	sub_438369
mov	eax, [ebp+var_10]
mov	ebx, offset off_44B510
cmp	eax, [ebp+var_18]
jl	loc_437FCB

loc_43810C:
mov	eax, [ebp+var_18]
cmp	[ebp+var_10], eax
jge	short loc_438149
or	[ebp+var_30], 0FFFFFFFFh
mov	[ebp+var_34], 2

loc_43811F:
mov	eax, [ebp+var_78]
mov	ecx, [ebp+var_10]
sub	esp, 0Ch
lea	esi, [ebp+var_34]
mov	eax, [eax+ecx*4]
mov	edi, esp
mov	[ebp+var_2C], eax
mov	ecx, [ebp+arg_4]
movsd
movsd
movsd
call	sub_438369
inc	[ebp+var_10]
mov	eax, [ebp+var_10]
cmp	eax, [ebp+var_18]
jl	short loc_43811F

loc_438149:
mov	eax, [ebp+var_1C]
cmp	[ebp+var_14], eax
jge	short loc_438193
or	[ebp+var_2C], 0FFFFFFFFh

loc_438155:
mov	eax, [ebp+var_64]
mov	ecx, [ebp+var_14]
mov	eax, [eax+ecx*4]
mov	ecx, [ebp+var_20]
mov	[ebp+var_30], eax
mov	ecx, [ecx+0Ch]
mov	esi, [ecx+eax*4]
xor	ecx, ecx
cmp	[esi+1Fh], cl
lea	esi, [ebp+var_34]
setnz	cl
sub	esp, 0Ch
mov	[ebp+var_34], ecx
mov	edi, esp
mov	ecx, [ebp+arg_4]
movsd
movsd
movsd
call	sub_438369
inc	[ebp+var_14]
mov	eax, [ebp+var_14]
cmp	eax, [ebp+var_1C]
jl	short loc_438155

loc_438193:
mov	ecx, [ebp+arg_4]
call	sub_42842A
mov	[ebp+var_5C], ebx
lea	ecx, [ebp+var_5C]
mov	byte ptr [ebp+var_4], 7
call	sub_428327
lea	ecx, [ebp+var_5C]
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
and	byte ptr [ebp+var_4], 0
lea	ecx, [ebp+var_70]
call	sub_4282FE
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_84]
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	8
sub_437E88 endp



; Attributes: bp-based frame

sub_4381E2 proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ecx
sub	ecx, 0
mov	eax, edx
jz	short loc_43825B
dec	ecx
jz	short loc_438232
dec	ecx
jz	short loc_438209
lea	eax, [ebp+lpFileTime]
push	offset unk_44D120
push	eax
mov	[ebp+lpFileTime], 3FF582h
call	_CxxThrowException

loc_438209:
lea	edx, [ebp+var_8]
mov	ecx, eax	; lpFileTime
call	sub_42E254
mov	ecx, [ebp+lpFileTime] ;	lpFileTime
lea	edx, [ebp+var_4]
call	sub_42E254
mov	eax, [ebp+var_8]
cmp	eax, [ebp+var_4]
jb	short loc_43824F
xor	ecx, ecx
cmp	eax, [ebp+var_4]

loc_43822B:
setnz	cl
mov	eax, ecx
jmp	short locret_438265

loc_438232:
lea	edx, [ebp+var_8]
mov	ecx, eax
call	sub_42E29F
mov	ecx, [ebp+lpFileTime]
lea	edx, [ebp+var_4]
call	sub_42E29F
mov	eax, [ebp+var_8]
cmp	eax, [ebp+var_4]
jnb	short loc_438254

loc_43824F:
or	eax, 0FFFFFFFFh
jmp	short locret_438265

loc_438254:
xor	ecx, ecx
cmp	eax, [ebp+var_4]
jmp	short loc_43822B

loc_43825B:		; lpFileTime2
push	[ebp+lpFileTime]
push	eax		; lpFileTime1
call	ds:CompareFileTime

locret_438265:
leave
retn	4
sub_4381E2 endp



; Attributes: noreturn bp-based	frame

sub_438269 proc	near

var_24=	byte ptr -24h
var_18=	byte ptr -18h
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_448C54
call	__EH_prolog
sub	esp, 18h
push	esi
push	ecx
mov	esi, edx
lea	ecx, [ebp+var_18]
call	sub_4030F2
and	[ebp+var_4], 0
push	0Ah
lea	ecx, [ebp+var_18]
call	sub_40316A
lea	ecx, [ebp+var_18]
push	esi
call	sub_4031F2
lea	ecx, [ebp+var_18]
push	0Ah
call	sub_40316A
lea	ecx, [ebp+var_18]
push	[ebp+arg_0]
call	sub_4031F2
lea	eax, [ebp+var_18]
lea	ecx, [ebp+var_24]
push	eax
call	sub_4030F2
lea	eax, [ebp+var_24]
push	offset unk_457230
push	eax
call	_CxxThrowException
sub_438269 endp

pop	esi


; Attributes: bp-based frame

sub_4382C9 proc	near

Memory=	dword ptr -20h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_448C68
call	__EH_prolog
sub	esp, 14h
push	ebx
mov	ebx, edx
mov	[ebp+var_14], ecx
push	1
mov	eax, [ebx+8]
pop	ecx
cmp	eax, ecx
jle	short loc_43835C
push	esi
push	edi
mov	[ebp+var_10], ecx
xor	esi, esi

loc_4382ED:
mov	eax, [ebx+0Ch]
mov	ecx, [ebp+var_14]
lea	edi, [esi+4]
mov	ecx, [ecx+0Ch]
mov	edx, [edi+eax]
mov	eax, [esi+eax]
mov	edx, [ecx+edx*4]
mov	ecx, [ecx+eax*4]
call	sub_428DA4
test	eax, eax
jnz	short loc_43834D
push	off_45CB88
lea	ecx, [ebp+Memory]
call	sub_403091
mov	eax, [ebx+0Ch]
mov	ecx, [ebp+var_14]
and	[ebp+var_4], 0
mov	ecx, [ecx+0Ch]
mov	edx, [edi+eax]
mov	eax, [esi+eax]
mov	edx, [ecx+edx*4]
mov	ecx, [ecx+eax*4]
push	edx
mov	edx, ecx
lea	ecx, [ebp+Memory]
call	sub_438269
or	[ebp+var_4], 0FFFFFFFFh
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_43834D:
inc	[ebp+var_10]
mov	esi, edi
mov	eax, [ebp+var_10]
cmp	eax, [ebx+8]
jl	short loc_4382ED
pop	edi
pop	esi

loc_43835C:
mov	ecx, [ebp+var_C]
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_4382C9 endp




sub_438369 proc	near

arg_0= byte ptr	 4

push	ebx
push	esi
push	edi
mov	ebx, ecx
call	sub_428350
mov	eax, [ebx+8]
mov	ecx, [ebx+0Ch]
lea	esi, [esp+0Ch+arg_0]
lea	eax, [eax+eax*2]
lea	edi, [ecx+eax*4]
movsd
movsd
movsd
mov	eax, [ebx+8]
pop	edi
pop	esi
lea	ecx, [eax+1]
mov	[ebx+8], ecx
pop	ebx
retn	0Ch
sub_438369 endp



; Attributes: bp-based frame

sub_438395 proc	near

var_24=	byte ptr -24h
var_23=	byte ptr -23h
var_22=	byte ptr -22h
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, 24h
push	ebx
mov	ebx, ecx
xor	eax, eax
push	esi
cmp	[ebx+8], eax
push	edi
mov	[ebp+var_C], edx
mov	[ebp+var_8], eax
jle	loc_438441
or	[ebp+var_18], 0FFFFFFFFh
mov	[ebp+var_4], eax

loc_4383B8:
mov	eax, [ebx+0Ch]
mov	edx, [ebp+var_C]
add	eax, [ebp+var_4]
and	[ebp+var_22], 0
mov	[ebp+var_23], 1
mov	[ebp+var_24], 1
mov	ecx, [eax+8]
mov	[ebp+var_20], ecx
mov	ecx, [eax+4]
mov	eax, [eax]
mov	[ebp+var_1C], ecx
mov	edx, [edx+eax*4]
sub	edx, 0
jz	short loc_438420
dec	edx
jz	short loc_4383FD
dec	edx
jz	short loc_4383F2
dec	edx
jnz	short loc_43840A
mov	[ebp+var_22], 1
jmp	short loc_43840A

loc_4383F2:
cmp	eax, 1
jz	short loc_438450
test	eax, eax
jz	short loc_438450
jmp	short loc_43840A

loc_4383FD:
cmp	eax, 2
jz	short loc_438466
and	[ebp+var_23], 0
and	[ebp+var_24], 0

loc_43840A:
sub	esp, 10h
lea	esi, [ebp+var_24]
mov	edi, esp
mov	ecx, [ebp+arg_0]
movsd
movsd
movsd
movsd
call	sub_43847C
jmp	short loc_43842E

loc_438420:
mov	eax, [ebp+arg_4]
test	eax, eax
jz	short loc_43842E
mov	edx, [eax]
push	ecx
mov	ecx, eax
call	dword ptr [edx]

loc_43842E:
inc	[ebp+var_8]
add	[ebp+var_4], 0Ch
mov	eax, [ebp+var_8]
cmp	eax, [ebx+8]
jl	loc_4383B8

loc_438441:
mov	ecx, [ebp+arg_0]
call	sub_42842A
pop	edi
pop	esi
pop	ebx
leave
retn	8

loc_438450:
mov	eax, off_45CC34
push	offset unk_454D88
mov	[ebp+var_10], eax
lea	eax, [ebp+var_10]
push	eax
call	_CxxThrowException

loc_438466:
mov	eax, off_45CC34
push	offset unk_454D88
mov	[ebp+var_14], eax
lea	eax, [ebp+var_14]
push	eax
call	_CxxThrowException
sub_438395 endp




sub_43847C proc	near

arg_0= byte ptr	 4

push	ebx
push	esi
push	edi
mov	ebx, ecx
call	sub_428350
mov	eax, [ebx+8]
mov	edi, [ebx+0Ch]
shl	eax, 4
add	edi, eax
lea	esi, [esp+0Ch+arg_0]
movsd
movsd
movsd
movsd
mov	eax, [ebx+8]
pop	edi
pop	esi
lea	ecx, [eax+1]
mov	[ebx+8], ecx
pop	ebx
retn	10h
sub_43847C endp



; Attributes: bp-based frame

sub_4384A8 proc	near

var_2C=	dword ptr -2Ch
Memory=	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_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_448C8C
call	__EH_prolog
sub	esp, 20h
push	ebx
push	esi
mov	esi, edx
xor	ebx, ebx
push	edi
mov	[ebp+var_10], ecx
cmp	[esi+10h], bl
mov	edi, [esi]
mov	[ebp+var_14], ebx
jz	short loc_438534
mov	ecx, [ebp+arg_0]
push	1
pop	edi
lea	eax, [ebp+var_2C]
push	3
push	eax
call	sub_403228
mov	eax, [ebp+var_2C]
mov	[ebp+var_4], ebx
cmp	word ptr [eax+2], 3Ah
jnz	short loc_438527
cmp	word ptr [eax+4], 5Ch
jnz	short loc_438527
call	ds:AreFileApisANSI
neg	eax
sbb	eax, eax
lea	edx, [ebp+var_2C]
inc	eax
lea	ecx, [ebp+Memory]
push	eax
call	sub_4385DB
push	dword ptr [eax]	; lpRootPathName
call	ds:GetDriveTypeA
mov	[ebp+var_14], eax
push	[ebp+Memory]	; Memory
call	sub_4284D8
cmp	[ebp+var_14], 5
pop	ecx
jz	short loc_438525
cmp	[ebp+var_14], 2
jnz	short loc_438527

loc_438525:
mov	edi, [esi]

loc_438527:		; Memory
push	[ebp+var_2C]
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx

loc_438534:
dec	edi
jz	loc_4385BC
dec	edi
jz	short loc_43858A
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
call	sub_403396
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], 2
call	sub_42AB81
test	al, al
jnz	short loc_438579
lea	eax, [ebp+arg_0]
push	offset unk_44D120
push	eax
mov	[ebp+arg_0], 22995h
call	_CxxThrowException

loc_438579:
mov	ecx, [ebp+var_10]
lea	eax, [ebp+Memory]
push	eax
call	sub_4030F2
push	[ebp+Memory]
jmp	short loc_4385B4

loc_43858A:
add	esi, 4
lea	ecx, [ebp+var_2C]
push	esi
call	sub_4030F2
lea	ecx, [ebp+var_2C]
mov	[ebp+var_4], 1
call	sub_42C33B
mov	ecx, [ebp+var_10]
lea	eax, [ebp+var_2C]
push	eax
call	sub_4030F2
push	[ebp+var_2C]	; Memory

loc_4385B4:
call	sub_4284D8
pop	ecx
jmp	short loc_4385C7

loc_4385BC:
mov	edx, [ebp+arg_0]
mov	ecx, [ebp+var_10]
call	sub_428E5C

loc_4385C7:
mov	ecx, [ebp+var_C]
mov	eax, [ebp+var_10]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_4384A8 endp



; Attributes: bp-based frame

sub_4385DB proc	near

var_4= dword ptr -4
arg_0= dword ptr  8

push	ebp
mov	ebp, esp
push	ecx
and	[ebp+var_4], 0
push	esi
push	[ebp+arg_0]
mov	esi, ecx
call	sub_428673
mov	eax, esi
pop	esi
leave
retn	4
sub_4385DB endp

call	sub_4385FF
jmp	loc_438609



sub_4385FF proc	near
mov	ecx, offset stru_45DA48	; lpCriticalSection
jmp	sub_441910
sub_4385FF endp


loc_438609:
push	offset loc_438615
call	_atexit
pop	ecx
retn

loc_438615:
push	offset stru_45DA48
call	ds:DeleteCriticalSection
retn


; Attributes: bp-based frame

sub_438621 proc	near

Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_448CA8
call	__EH_prolog
sub	esp, 18h
push	esi
push	edi
mov	edi, ecx
push	edx
lea	ecx, [ebp+var_18]
call	sub_41E0DD
xor	esi, esi
lea	edx, [ebp+var_18]
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], esi
call	sub_43868B
mov	eax, [eax]
push	esi		; int
push	esi		; dwDisposition
push	0F003Fh		; samDesired
push	esi		; dwOptions
push	esi		; lpClass
push	eax		; lpSubKey
push	80000001h	; hKey
mov	ecx, edi
mov	byte ptr [ebp+var_4], 1
call	sub_42D30D
mov	esi, eax
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_18]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_438621 endp




sub_43868B proc	near

var_4= dword ptr -4

push	ecx
and	[esp+4+var_4], 0
push	esi
push	edx
mov	edx, off_45CC60
mov	esi, ecx
call	sub_438967
mov	eax, esi
pop	esi
pop	ecx
retn
sub_43868B endp



; Attributes: bp-based frame

sub_4386A5 proc	near

Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_448CC4
call	__EH_prolog
sub	esp, 18h
push	esi
mov	esi, ecx
push	edx
lea	ecx, [ebp+var_18]
call	sub_41E0DD
and	[ebp+var_4], 0
lea	edx, [ebp+var_18]
lea	ecx, [ebp+Memory]
call	sub_43868B
mov	eax, [eax]
push	20019h		; samDesired
push	eax		; lpSubKey
push	80000001h	; hKey
mov	ecx, esi
mov	byte ptr [ebp+var_4], 1
call	sub_42D35B
mov	esi, eax
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_18]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
pop	ecx
pop	esi
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn
sub_4386A5 endp



; Attributes: bp-based frame

sub_438708 proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_448CE0
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, offset stru_45DA48
push	edi
mov	edi, ecx
push	esi		; lpCriticalSection
mov	[ebp+var_14], esi
call	ds:EnterCriticalSection
and	[ebp+var_4], 0
and	[ebp+var_10], 0
mov	edx, off_45CCB0
lea	ecx, [ebp+var_10]
mov	byte ptr [ebp+var_4], 1
call	sub_438621
push	dword ptr [edi]	; Data
lea	ecx, [ebp+var_10]
push	off_45CCB4	; lpValueName
call	sub_42D473
push	dword ptr [edi+4] ; lpData
lea	ecx, [ebp+var_10]
push	off_45CCB8	; lpValueName
call	sub_42D4CA
mov	al, [edi+10h]
lea	ecx, [ebp+var_10]
push	eax		; char
push	off_45CCBC	; lpValueName
call	sub_42D48D
and	byte ptr [ebp+var_4], 0
lea	ecx, [ebp+var_10]
call	sub_42D390
push	esi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_438708 endp



; Attributes: bp-based frame

sub_438795 proc	near

var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
Data= byte ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_448CFC
call	__EH_prolog
sub	esp, 10h
push	ebx
push	esi
mov	esi, ecx
push	edi
xor	eax, eax
mov	ebx, offset stru_45DA48
lea	edi, [esi+4]
mov	[esi], eax
push	ebx		; lpCriticalSection
mov	[ebp+var_1C], ebx
mov	ecx, [edi]
mov	[edi+4], eax
mov	[ecx], ax
lea	eax, [esi+10h]
mov	[ebp+var_18], eax
mov	byte ptr [eax],	1
call	ds:EnterCriticalSection
and	[ebp+var_4], 0
and	[ebp+var_10], 0
mov	edx, off_45CCB0
lea	ecx, [ebp+var_10]
mov	byte ptr [ebp+var_4], 1
call	sub_4386A5
test	eax, eax
jnz	short loc_438841
lea	eax, [ebp+Data]
lea	ecx, [ebp+var_10]
push	eax		; lpData
push	off_45CCB4	; lpValueName
call	sub_42D5E9
test	eax, eax
jnz	short loc_438841
mov	eax, dword ptr [ebp+Data]
cmp	eax, 2
ja	short loc_43880C
mov	[esi], eax

loc_43880C:		; cbData
push	edi
lea	ecx, [ebp+var_10]
push	off_45CCB8	; lpValueName
call	sub_42D70F
test	eax, eax
jz	short loc_438830
mov	ecx, [edi]
xor	eax, eax
mov	[edi+4], eax
mov	[ecx], ax
cmp	dword ptr [esi], 2
jnz	short loc_438830
mov	[esi], eax

loc_438830:
push	[ebp+var_18]
lea	ecx, [ebp+var_10]
push	off_45CCBC
call	sub_42D65F

loc_438841:
and	byte ptr [ebp+var_4], 0
lea	ecx, [ebp+var_10]
call	sub_42D390
push	ebx		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_438795 endp



; Attributes: bp-based frame

sub_438863 proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_448D18
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, offset stru_45DA48
push	edi
mov	edi, ecx
push	esi		; lpCriticalSection
mov	[ebp+var_14], esi
call	ds:EnterCriticalSection
and	[ebp+var_4], 0
and	[ebp+var_10], 0
mov	edx, off_45CCB0
lea	ecx, [ebp+var_10]
mov	byte ptr [ebp+var_4], 1
call	sub_438621
mov	al, [edi]
lea	ecx, [ebp+var_10]
push	eax		; char
push	off_45CCC0	; lpValueName
call	sub_42D48D
push	dword ptr [edi+4] ; Data
lea	ecx, [ebp+var_10]
push	off_45CCC4	; lpValueName
call	sub_42D473
and	byte ptr [ebp+var_4], 0
lea	ecx, [ebp+var_10]
call	sub_42D390
push	esi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_438863 endp



; Attributes: bp-based frame

sub_4388DF proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_448D34
call	__EH_prolog
push	ecx
push	ecx
push	ebx
push	esi
push	edi
mov	edi, ecx
mov	esi, offset stru_45DA48
or	dword ptr [edi+4], 0FFFFFFFFh
lea	ebx, [edi+4]
push	esi		; lpCriticalSection
mov	byte ptr [edi],	1
mov	[ebp+var_14], esi
call	ds:EnterCriticalSection
and	[ebp+var_4], 0
and	[ebp+var_10], 0
mov	edx, off_45CCB0
lea	ecx, [ebp+var_10]
mov	byte ptr [ebp+var_4], 1
call	sub_4386A5
test	eax, eax
jnz	short loc_438945
push	edi
lea	ecx, [ebp+var_10]
push	off_45CCC0
call	sub_42D65F
push	ebx		; int
lea	ecx, [ebp+var_10]
push	off_45CCC4	; Data
call	sub_42D640

loc_438945:
and	byte ptr [ebp+var_4], 0
lea	ecx, [ebp+var_10]
call	sub_42D390
push	esi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_4388DF endp



; Attributes: bp-based frame

sub_438967 proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_448D48
call	__EH_prolog
sub	esp, 10h
and	[ebp+var_10], 0
push	esi
mov	esi, ecx
push	edx
lea	ecx, [ebp+Memory]
call	sub_41E0DD
push	[ebp+arg_0]
and	[ebp+var_4], 0
lea	ecx, [ebp+Memory]
call	sub_41E313
lea	eax, [ebp+Memory]
mov	ecx, esi
push	eax
call	sub_4128EF
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_438967 endp



; Attributes: bp-based frame

sub_4389B8 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_448D5F
call	__EH_prolog
push	ecx
push	ebx
push	esi
push	edi
mov	esi, ecx
push	4
xor	edi, edi
pop	ebx
mov	[esi+8], edi
mov	[ebp+var_10], esi
mov	[esi+10h], edi
mov	[esi+14h], edi
mov	[esi+18h], edi
mov	[esi+1Ch], ebx
mov	dword ptr [esi+0Ch], offset off_44B510
lea	ecx, [esi+24h]
push	3
mov	[ebp+var_4], edi
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
mov	[esi+34h], edi
mov	[esi+38h], edi
mov	[esi+3Ch], edi
mov	[esi+40h], ebx
mov	dword ptr [esi+30h], offset off_44C7AC
push	offset Addend	; lpAddend
mov	dword ptr [esi], offset	off_44C794
mov	dword ptr [esi+4], offset off_44C784
call	ds:InterlockedIncrement
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_4389B8 endp



; Attributes: bp-based frame

; int __stdcall	sub_438A37(int,	void *Buf1, int)
sub_438A37 proc	near

arg_0= dword ptr  8
Buf1= dword ptr	 0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
push	10h		; Size
push	offset unk_44CCB8 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_438A5A

loc_438A50:
mov	ecx, [ebp+arg_8]
mov	eax, [ebp+arg_0]
mov	[ecx], eax
jmp	short loc_438A99

loc_438A5A:		; Size
push	10h
push	offset unk_44CC88 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jz	short loc_438A50
push	10h		; Size
push	offset unk_44CC68 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_438AA3
mov	eax, [ebp+arg_0]
mov	ecx, eax
neg	ecx
lea	edx, [eax+4]
sbb	ecx, ecx
and	ecx, edx
mov	edx, [ebp+arg_8]
mov	[edx], ecx

loc_438A99:
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+4]
xor	eax, eax
jmp	short loc_438AA8

loc_438AA3:
mov	eax, 80004002h

loc_438AA8:
pop	ebp
retn	0Ch
sub_438A37 endp




sub_438AAC proc	near

arg_0= dword ptr  4

mov	eax, [esp+arg_0]
push	esi
lea	esi, [eax+8]
push	esi		; lpAddend
call	ds:InterlockedIncrement
mov	eax, [esi]
pop	esi
retn	4
sub_438AAC endp




; int __stdcall	sub_438AC1(void	*Memory)
sub_438AC1 proc	near

Memory=	dword ptr  4

push	esi
push	edi
mov	edi, [esp+8+Memory]
lea	esi, [edi+8]
push	esi		; lpAddend
call	ds:InterlockedDecrement
mov	eax, [esi]
test	eax, eax
jnz	short loc_438AEB
test	edi, edi
jz	short loc_438AE9
mov	ecx, edi
call	sub_438AF0
push	edi		; Memory
call	sub_4284D8
pop	ecx

loc_438AE9:
xor	eax, eax

loc_438AEB:
pop	edi
pop	esi
retn	4
sub_438AC1 endp



; Attributes: bp-based frame

sub_438AF0 proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_448D92
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44C794
mov	dword ptr [esi+4], offset off_44C784
and	[ebp+var_4], 0
push	offset Addend	; lpAddend
call	ds:InterlockedDecrement
lea	edi, [esi+30h]
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44C7AC
mov	ecx, edi
mov	byte ptr [ebp+var_4], 2
call	sub_428327
mov	ecx, edi
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
push	dword ptr [esi+24h] ; Memory
call	sub_4284D8
add	esi, 0Ch
pop	ecx
mov	[ebp+var_14], esi
mov	dword ptr [esi], offset	off_44B510
mov	ecx, esi
mov	[ebp+var_4], 3
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_438AF0 endp



; Attributes: bp-based frame

sub_438B7D proc	near

var_40=	word ptr -40h
var_3C=	dword ptr -3Ch
var_38=	dword ptr -38h
var_34=	dword ptr -34h
var_30=	dword ptr -30h
hMem= STGMEDIUM	ptr -2Ch
var_20=	byte ptr -20h
var_1C=	byte ptr -1Ch
var_18=	byte ptr -18h
var_17=	byte ptr -17h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_448DB4
call	__EH_prolog
sub	esp, 34h
mov	ecx, [ebp+arg_4]
push	ebx
push	esi
call	sub_428327
mov	ecx, [ebp+arg_0]
xor	ebx, ebx
cmp	ecx, ebx
jnz	short loc_438BA7
mov	eax, 80004005h
jmp	loc_438C46

loc_438BA7:
or	[ebp+var_34], 0FFFFFFFFh
push	1
pop	eax
mov	[ebp+var_40], 0Fh
mov	[ebp+var_3C], ebx
mov	[ebp+var_38], eax
mov	[ebp+var_30], eax
mov	[ebp+var_20], bl
mov	eax, [ecx]
lea	edx, [ebp+hMem]
push	edx
lea	edx, [ebp+var_40]
push	edx
push	ecx
mov	[ebp+var_4], ebx
call	dword ptr [eax+0Ch]
mov	esi, eax
cmp	esi, ebx
jz	short loc_438BEA
cmp	[ebp+var_20], bl
jz	short loc_438BE6
lea	eax, [ebp+hMem]
push	eax		; LPSTGMEDIUM
call	ds:ReleaseStgMedium

loc_438BE6:
mov	eax, esi
jmp	short loc_438C46

loc_438BEA:
mov	[ebp+var_20], 1
mov	[ebp+var_18], bl
mov	[ebp+var_17], bl
mov	eax, dword ptr [ebp+hMem.anonymous_0]
push	eax		; hMem
mov	[ebp+var_14], eax
call	ds:GlobalLock
mov	[ebp+var_10], eax
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 2
call	sub_42DC7E
push	[ebp+arg_4]
lea	ecx, [ebp+var_1C]
call	sub_42DDFC
cmp	[ebp+var_10], ebx
jz	short loc_438C2A
push	[ebp+var_14]	; hMem
call	ds:GlobalUnlock

loc_438C2A:
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], bl
call	sub_42DC94
cmp	[ebp+var_20], bl
jz	short loc_438C44
lea	eax, [ebp+hMem]
push	eax		; LPSTGMEDIUM
call	ds:ReleaseStgMedium

loc_438C44:
xor	eax, eax

loc_438C46:
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_438B7D endp

; START	OF FUNCTION CHUNK FOR sub_448D9C

loc_438C56:
push	esi
mov	esi, ecx
cmp	byte ptr [esi+0Ch], 0
jz	short loc_438C66
push	esi		; LPSTGMEDIUM
call	ds:ReleaseStgMedium

loc_438C66:
and	byte ptr [esi+0Ch], 0
pop	esi
retn
; END OF FUNCTION CHUNK	FOR sub_448D9C


; Attributes: thunk

sub_438C6C proc	near
jmp	sub_42DC94
sub_438C6C endp




sub_438C71 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8
arg_8= dword ptr  0Ch

push	ebx
push	esi
mov	ecx, [esp+8+arg_4]
push	edi
mov	edi, [esp+0Ch+arg_0]
xor	ebx, ebx
cmp	ecx, ebx
lea	esi, [edi+20h]
mov	[edi+1Ch], bl
mov	eax, [esi]
mov	[esi+4], ebx
mov	[eax], bx
jz	short loc_438CB5
mov	edx, esi
call	sub_42DFC5
test	al, al
jz	short loc_438CAD
mov	ecx, esi
call	sub_42C33B
cmp	[edi+24h], ebx
setnz	al
mov	[edi+1Ch], al
jmp	short loc_438CB5

loc_438CAD:
mov	eax, [esi]
mov	[esi+4], ebx
mov	[eax], bx

loc_438CB5:
lea	eax, [edi+8]
lea	ecx, [edi-4]
push	eax
push	[esp+10h+arg_8]
call	sub_438B7D
pop	edi
pop	esi
pop	ebx
retn	10h
sub_438C71 endp



; Attributes: bp-based frame

sub_438CCB proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_448DC8
call	__EH_prolog
sub	esp, 0Ch
push	ebx
mov	ebx, ecx
push	edi
lea	edi, [ebx+0Ch]
mov	ecx, edi
call	sub_428327
mov	eax, [ebp+arg_8]
test	eax, eax
jbe	short loc_438D23
push	esi
mov	esi, [ebp+arg_4]
mov	[ebp+arg_8], eax

loc_438CF4:
push	dword ptr [esi]
lea	ecx, [ebp+Memory]
call	sub_403091
and	[ebp+var_4], 0
lea	eax, [ebp+Memory]
push	eax
mov	ecx, edi
call	sub_4032B4
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
add	esi, 4
dec	[ebp+arg_8]
pop	ecx
jnz	short loc_438CF4
pop	esi

loc_438D23:
mov	ecx, [ebp+var_C]
and	byte ptr [ebx+20h], 0
pop	edi
xor	eax, eax
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_438CCB endp



; Attributes: bp-based frame

sub_438D39 proc	near

var_3C=	dword ptr -3Ch
var_30=	dword ptr -30h
var_24=	dword ptr -24h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= byte ptr	 8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_448DFC
call	__EH_prolog
sub	esp, 30h
lea	ecx, [ebp+arg_0]
call	sub_438E2A
test	eax, eax
jl	loc_438E1C
lea	eax, [eax+eax*2]
push	ebx
push	esi
push	edi
mov	edi, [ebp+arg_8]
lea	esi, ds:45CE40h[eax*8]
lea	ecx, [ebp+var_30]
mov	eax, [esi+4]
mov	[edi], eax
push	dword ptr [esi+8]
call	sub_403091
mov	ebx, eax
push	off_45CE38
and	[ebp+var_4], 0
lea	ecx, [ebp+var_24]
call	sub_403091
push	ebx
mov	edx, eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_40356A
push	eax
lea	ecx, [edi+4]
mov	byte ptr [ebp+var_4], 2
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
push	[ebp+var_30]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
mov	eax, [esi+14h]
mov	edx, [esi+10h]
add	esp, 0Ch
inc	eax
lea	ecx, [ebp+var_30]
push	eax
call	sub_40B168
push	eax
lea	ecx, [edi+10h]
mov	[ebp+var_4], 3
call	sub_40312C
push	[ebp+var_30]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
mov	edx, [esi+0Ch]
pop	ecx
push	dword ptr [esi+14h]
lea	ecx, [ebp+var_3C]
call	sub_40B168
mov	ecx, [ebp+arg_4]
push	eax
mov	[ebp+var_4], 4
call	sub_40312C
push	[ebp+var_3C]	; Memory
call	sub_4284D8
pop	ecx
pop	edi
pop	esi
pop	ebx

loc_438E1C:
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn	0Ch
sub_438D39 endp




sub_438E2A proc	near
mov	edx, [ecx]
xor	eax, eax
mov	ecx, offset unk_45CE44

loc_438E33:
cmp	[ecx], edx
jz	short locret_438E46
add	ecx, 18h
inc	eax
cmp	ecx, offset off_45CF4C
jb	short loc_438E33
or	eax, 0FFFFFFFFh

locret_438E46:
retn
sub_438E2A endp



; Attributes: bp-based frame

; int __stdcall	sub_438E47(UINT	item, int, int,	int, int, int)
sub_438E47 proc	near

var_1AC= dword ptr -1ACh
var_1A0= byte ptr -1A0h
var_180= dword ptr -180h
var_178= dword ptr -178h
var_168= dword ptr -168h
var_15C= dword ptr -15Ch
var_158= dword ptr -158h
var_150= dword ptr -150h
var_14C= dword ptr -14Ch
var_13C= byte ptr -13Ch
var_138= dword ptr -138h
var_134= dword ptr -134h
var_128= dword ptr -128h
var_124= byte ptr -124h
var_118= byte ptr -118h
var_10C= byte ptr -10Ch
var_100= byte ptr -100h
var_F4=	byte ptr -0F4h
var_E8=	dword ptr -0E8h
var_DC=	dword ptr -0DCh
var_D0=	dword ptr -0D0h
var_CC=	dword ptr -0CCh
var_C8=	dword ptr -0C8h
var_C4=	dword ptr -0C4h
var_C0=	dword ptr -0C0h
var_BC=	dword ptr -0BCh
var_B8=	dword ptr -0B8h
var_B4=	byte ptr -0B4h
var_A8=	byte ptr -0A8h
var_9C=	byte ptr -9Ch
var_90=	byte ptr -90h
var_84=	byte ptr -84h
var_78=	dword ptr -78h
var_6C=	dword ptr -6Ch
var_68=	dword ptr -68h
var_64=	dword ptr -64h
var_60=	dword ptr -60h
var_5C=	dword ptr -5Ch
var_58=	dword ptr -58h
var_54=	dword ptr -54h
Memory=	dword ptr -50h
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_4= dword ptr -4
item= 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

mov	eax, offset loc_44902B
call	__EH_prolog
sub	esp, 1A0h
push	ebx
push	esi
push	edi
call	sub_40AFC5
mov	edi, [ebp+item]
xor	ebx, ebx
mov	eax, [edi+14h]
cmp	eax, ebx
jz	loc_439443
mov	eax, [ebp+arg_C]
test	byte ptr [ebp+arg_14], 0Fh
mov	esi, eax
jz	short loc_438E84
test	byte ptr [ebp+arg_14], 6
jz	loc_439DDC

loc_438E84:
lea	ecx, [edi+30h]
mov	[ebp+var_20], ecx
call	sub_428327
mov	[ebp+var_10], ebx
mov	[ebp+var_34], ebx
lea	ecx, [ebp+var_13C]
mov	[ebp+var_4], ebx
call	sub_4388DF
mov	eax, [ebp+arg_8]
cmp	[ebp+var_13C], bl
mov	[ebp+item], eax
jz	loc_438F58
lea	ecx, [ebp+var_B8]
call	sub_43A28E
mov	byte ptr [ebp+var_4], 1
call	ds:CreatePopupMenu
cmp	eax, ebx
mov	[ebp+var_10], eax
jnz	short loc_438EE4
lea	ecx, [ebp+var_B8]
mov	byte ptr [ebp+var_4], bl
call	sub_43A31B
jmp	loc_439443

loc_438EE4:
push	off_45CE38
lea	eax, [ebp+var_10]
lea	ecx, [ebp+var_B4]
mov	[ebp+var_34], eax
mov	[ebp+var_B8], ebx
call	sub_404722
push	2000102h
mov	edx, 96h
lea	ecx, [ebp+Memory]
call	sub_40B168
push	eax
lea	ecx, [ebp+var_A8]
mov	byte ptr [ebp+var_4], 2
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_B8]
mov	ecx, [ebp+var_20]
push	eax
call	sub_43A79A
mov	eax, [ebp+arg_C]
lea	ecx, [ebp+var_B8]
mov	[ebp+item], ebx
mov	byte ptr [ebp+var_4], bl
lea	esi, [eax+1]
call	sub_43A31B
jmp	short loc_438F5E

loc_438F58:
mov	eax, [ebp+arg_4]
mov	[ebp+var_10], eax

loc_438F5E:
mov	eax, [ebp+var_138]
push	3
lea	ecx, [ebp+var_30]
mov	[ebp+var_24], eax
mov	[ebp+var_30], ebx
mov	[ebp+var_2C], ebx
mov	[ebp+var_28], ebx
call	sub_403396
mov	eax, [edi+14h]
mov	byte ptr [ebp+var_4], 3
cmp	eax, 1
jnz	loc_439334
lea	eax, [esi+6]
cmp	eax, [ebp+arg_10]
ja	loc_439334
mov	eax, [edi+18h]
push	3
lea	ecx, [ebp+var_40]
mov	eax, [eax]
mov	[ebp+var_40], ebx
mov	[ebp+arg_14], eax
mov	[ebp+var_3C], ebx
mov	[ebp+var_38], ebx
call	sub_403396
mov	eax, [ebp+arg_14]
lea	edx, [ebp+var_40]
mov	byte ptr [ebp+var_4], 4
mov	ecx, [eax]
call	sub_42AAF6
lea	ecx, [ebp+var_178]
call	sub_403079
mov	eax, [ebp+arg_14]
lea	ecx, [ebp+var_1A0]
mov	byte ptr [ebp+var_4], 5
push	dword ptr [eax]	; lpFileName
call	sub_42B49E
test	al, al
jnz	short loc_438FF8
push	[ebp+var_178]	; Memory
call	sub_4284D8
push	[ebp+var_40]
jmp	loc_439423

loc_438FF8:
mov	eax, [ebp+var_180]
shr	eax, 4
test	al, 1
jnz	loc_43931B
lea	ecx, [ebp+var_178]
call	sub_43A27B
test	al, al
jz	loc_43931B
mov	eax, [ebp+var_24]
shr	eax, 5
and	al, 1
mov	byte ptr [ebp+arg_14+3], al
jz	short loc_439083
lea	ecx, [ebp+var_128]
call	sub_43A28E
lea	eax, [ebp+var_128]
mov	ecx, edi
push	eax
lea	eax, [ebp+var_30]
push	eax
push	1
mov	byte ptr [ebp+var_4], 6
call	sub_438D39
mov	edx, [ebp+item]
inc	[ebp+item]
lea	ecx, [ebp+var_30]
mov	eax, esi
push	ecx
push	eax
lea	ecx, [ebp+var_10]
inc	esi
call	sub_439E07
mov	ecx, [ebp+var_20]
lea	eax, [ebp+var_128]
push	eax
call	sub_43A79A
lea	ecx, [ebp+var_128]
mov	byte ptr [ebp+var_4], 5
call	sub_43A31B
mov	al, byte ptr [ebp+arg_14+3]

loc_439083:
test	byte ptr [ebp+var_24], 40h
jz	loc_43931B
cmp	al, bl
jz	short loc_4390AA
mov	ecx, off_45CF60
lea	edx, [ebp+var_178]
call	sub_43A1B3
test	al, al
jnz	loc_43931B

loc_4390AA:
mov	[ebp+var_44], ebx
call	ds:CreatePopupMenu
cmp	eax, ebx
mov	[ebp+var_44], eax
jz	loc_43931B
lea	ecx, [ebp+var_128]
call	sub_43A28E
lea	ecx, [ebp+var_168]
mov	byte ptr [ebp+var_4], 7
call	sub_40BF33
mov	eax, [ebp+var_44]
mov	[ebp+var_150], esi
push	2000103h
mov	edx, 92h
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 8
mov	[ebp+var_158], ebx
mov	[ebp+var_15C], 16h
inc	esi
mov	[ebp+var_14C], eax
call	sub_40B168
push	eax
lea	ecx, [ebp+var_168]
mov	byte ptr [ebp+var_4], 9
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 8
call	sub_4284D8
mov	eax, [ebp+item]
inc	[ebp+item]
pop	ecx
lea	ecx, [ebp+var_168]
push	ecx		; int
push	1		; char
push	eax		; item
lea	ecx, [ebp+var_10]
call	sub_42C858
push	off_45CE38
lea	ecx, [ebp+var_124]
mov	[ebp+var_128], ebx
call	sub_404722
push	2000104h
mov	edx, 93h
lea	ecx, [ebp+Memory]
call	sub_40B168
push	eax
lea	ecx, [ebp+var_118]
mov	byte ptr [ebp+var_4], 0Ah
call	sub_40312C
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 8
call	sub_4284D8
pop	ecx
lea	eax, [ebp+var_128]
mov	ecx, [ebp+var_20]
push	eax
call	sub_43A79A
xor	eax, eax
cmp	byte ptr [ebp+arg_14+3], bl
mov	[ebp+var_54], ebx
mov	[ebp+var_D0], offset word_45D498
setnz	al
mov	[ebp+var_CC], offset asc_45B41C	; "*"
mov	[ebp+var_C8], offset a7z ; "7z"
mov	[ebp+var_C4], offset aZip ; "zip"
mov	[ebp+var_C0], offset aCab ; "cab"
mov	[ebp+var_BC], offset aRar ; "rar"
mov	[ebp+arg_14], eax

loc_4391E2:
cmp	[ebp+arg_14], 6
jnb	loc_4392FD
lea	ecx, [ebp+var_B8]
call	sub_43A28E
cmp	[ebp+arg_14], ebx
mov	byte ptr [ebp+var_4], 0Bh
jnz	short loc_439219
lea	eax, [ebp+var_B8]
mov	ecx, edi
push	eax
lea	eax, [ebp+var_30]
push	eax
push	1
call	sub_438D39
jmp	loc_4392C1

loc_439219:
mov	eax, [ebp+arg_14]
lea	ecx, [ebp+var_30]
push	[ebp+eax*4+var_D0]
call	sub_404722
push	off_45CE38
lea	ecx, [ebp+var_DC]
mov	[ebp+var_B8], 1
call	sub_403091
push	offset a_open_	; ".Open."
mov	edx, eax
lea	ecx, [ebp+var_E8]
mov	byte ptr [ebp+var_4], 0Ch
call	sub_409948
lea	ecx, [ebp+var_30]
mov	edx, eax
push	ecx
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 0Dh
call	sub_40356A
push	eax
lea	ecx, [ebp+var_B4]
mov	byte ptr [ebp+var_4], 0Eh
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_E8]	; Memory
call	sub_4284D8
push	[ebp+var_DC]	; Memory
mov	byte ptr [ebp+var_4], 0Bh
call	sub_4284D8
add	esp, 0Ch
lea	eax, [ebp+var_30]
lea	ecx, [ebp+var_A8]
push	eax
call	sub_40312C
lea	eax, [ebp+var_30]
lea	ecx, [ebp+var_84]
push	eax
call	sub_40312C

loc_4392C1:
mov	edx, [ebp+var_54]
inc	[ebp+var_54]
lea	ecx, [ebp+var_30]
mov	eax, esi
push	ecx
push	eax
lea	ecx, [ebp+var_44]
inc	esi
call	sub_439E07
mov	ecx, [ebp+var_20]
lea	eax, [ebp+var_B8]
push	eax
call	sub_43A79A
lea	ecx, [ebp+var_B8]
mov	byte ptr [ebp+var_4], 8
call	sub_43A31B
inc	[ebp+arg_14]
jmp	loc_4391E2

loc_4392FD:		; Memory
push	[ebp+var_168]
mov	[ebp+var_44], ebx
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 5
lea	ecx, [ebp+var_128]
call	sub_43A31B

loc_43931B:		; Memory
push	[ebp+var_178]
call	sub_4284D8
push	[ebp+var_40]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx
pop	ecx

loc_439334:
mov	eax, [edi+14h]
cmp	eax, ebx
jle	loc_439D22
lea	ecx, [esi+0Ah]
cmp	ecx, [ebp+arg_10]
ja	loc_439D22
cmp	eax, ebx
mov	byte ptr [ebp+arg_14+3], bl
mov	[ebp+arg_10], ebx
jle	short loc_4393BD

loc_439355:
lea	ecx, [ebp+var_178]
call	sub_403079
mov	eax, [edi+18h]
mov	ecx, [ebp+arg_10]
mov	byte ptr [ebp+var_4], 0Fh
mov	eax, [eax+ecx*4]
lea	ecx, [ebp+var_1A0]
push	dword ptr [eax]	; lpFileName
call	sub_42B49E
test	al, al
jz	loc_43944D
mov	eax, [ebp+var_180]
shr	eax, 4
test	al, 1
jnz	short loc_4393A2
lea	ecx, [ebp+var_178]
call	sub_43A27B
test	al, al
jz	short loc_4393A2
mov	byte ptr [ebp+arg_14+3], 1

loc_4393A2:		; Memory
push	[ebp+var_178]
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
inc	[ebp+arg_10]
pop	ecx
mov	eax, [ebp+arg_10]
cmp	eax, [edi+14h]
jl	short loc_439355

loc_4393BD:
mov	eax, [edi+18h]
cmp	byte ptr [ebp+arg_14+3], bl
mov	eax, [eax]
mov	[ebp+arg_10], eax
jz	loc_4397B0
push	3
lea	ecx, [ebp+var_6C]
mov	[ebp+var_6C], ebx
mov	[ebp+var_68], ebx
mov	[ebp+var_64], ebx
call	sub_403396
mov	eax, [ebp+arg_10]
lea	edx, [ebp+var_6C]
mov	byte ptr [ebp+var_4], 10h
mov	ecx, [eax]
call	sub_42AAF6
lea	ecx, [ebp+var_178]
call	sub_403079
mov	eax, [ebp+arg_10]
lea	ecx, [ebp+var_1A0]
mov	byte ptr [ebp+var_4], 11h
push	dword ptr [eax]	; lpFileName
call	sub_42B49E
test	al, al
jnz	short loc_439464
push	[ebp+var_178]	; Memory
call	sub_4284D8
push	[ebp+var_6C]	; Memory

loc_439423:
call	sub_4284D8
push	[ebp+var_30]	; Memory
call	sub_4284D8
add	esp, 0Ch

loc_439433:
mov	ecx, [ebp+var_34]
or	[ebp+var_4], 0FFFFFFFFh
cmp	ecx, ebx
jz	short loc_439443
call	sub_439DED

loc_439443:
mov	eax, 80004005h
jmp	loc_439DDC

loc_43944D:		; Memory
push	[ebp+var_178]
call	sub_4284D8
push	[ebp+var_30]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx
jmp	short loc_439433

loc_439464:
test	byte ptr [ebp+var_24], 1
jz	loc_439541
lea	ecx, [ebp+var_B8]
call	sub_43A28E
lea	eax, [ebp+var_B8]
mov	ecx, edi
push	eax
lea	eax, [ebp+var_30]
push	eax
push	2
mov	byte ptr [ebp+var_4], 12h
call	sub_438D39
cmp	[edi+20h], bl
lea	eax, [edi+24h]
jnz	short loc_43949C
lea	eax, [ebp+var_6C]

loc_43949C:
push	eax
lea	ecx, [ebp+var_9C]
call	sub_40312C
push	5Ch
lea	ecx, [ebp+var_134]
call	sub_409516
mov	[ebp+arg_14], eax
lea	edx, [ebp+var_178]
lea	ecx, [ebp+var_60]
mov	byte ptr [ebp+var_4], 13h
call	sub_439E6F
push	[ebp+arg_14]
mov	edx, eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 14h
call	sub_40356A
push	eax
lea	ecx, [ebp+var_9C]
mov	byte ptr [ebp+var_4], 15h
call	sub_4031F2
push	[ebp+var_1C]	; Memory
call	sub_4284D8
push	[ebp+var_60]	; Memory
call	sub_4284D8
push	[ebp+var_134]	; Memory
mov	byte ptr [ebp+var_4], 12h
call	sub_4284D8
mov	edx, [ebp+item]
add	esp, 0Ch
inc	[ebp+item]
lea	ecx, [ebp+var_30]
mov	eax, esi
push	ecx
push	eax
lea	ecx, [ebp+var_10]
inc	esi
call	sub_439E07
mov	ecx, [ebp+var_20]
lea	eax, [ebp+var_B8]
push	eax
call	sub_43A79A
lea	ecx, [ebp+var_B8]
mov	byte ptr [ebp+var_4], 11h
call	sub_43A31B

loc_439541:
test	byte ptr [ebp+var_24], 2
jz	short loc_4395B5
lea	ecx, [ebp+var_128]
call	sub_43A28E
lea	eax, [ebp+var_128]
mov	ecx, edi
push	eax
lea	eax, [ebp+var_30]
push	eax
push	3
mov	byte ptr [ebp+var_4], 16h
call	sub_438D39
mov	edx, [ebp+item]
inc	[ebp+item]
lea	ecx, [ebp+var_30]
mov	eax, esi
push	ecx
push	eax
lea	ecx, [ebp+var_10]
inc	esi
call	sub_439E07
cmp	[edi+20h], bl
lea	eax, [edi+24h]
jnz	short loc_43958B
lea	eax, [ebp+var_6C]

loc_43958B:
push	eax
lea	ecx, [ebp+var_10C]
call	sub_40312C
mov	ecx, [ebp+var_20]
lea	eax, [ebp+var_128]
push	eax
call	sub_43A79A
lea	ecx, [ebp+var_128]
mov	byte ptr [ebp+var_4], 11h
call	sub_43A31B

loc_4395B5:
test	byte ptr [ebp+var_24], 4
jz	loc_43973A
lea	ecx, [ebp+var_B8]
call	sub_43A28E
push	3
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 17h
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_403396
lea	eax, [ebp+var_B8]
mov	ecx, edi
push	eax
lea	eax, [ebp+var_1C]
push	eax
push	4
mov	byte ptr [ebp+var_4], 18h
call	sub_438D39
push	3
lea	ecx, [ebp+var_60]
mov	[ebp+var_60], ebx
mov	[ebp+var_5C], ebx
mov	[ebp+var_58], ebx
call	sub_403396
cmp	dword ptr [edi+14h], 1
mov	byte ptr [ebp+var_4], 19h
jnz	short loc_439646
lea	edx, [ebp+var_178]
lea	ecx, [ebp+var_134]
call	sub_439E6F
push	eax
lea	ecx, [ebp+var_60]
mov	byte ptr [ebp+var_4], 1Ah
call	sub_40312C
push	[ebp+var_134]	; Memory
mov	byte ptr [ebp+var_4], 19h
call	sub_4284D8
pop	ecx
jmp	short loc_439650

loc_439646:
push	2Ah
lea	ecx, [ebp+var_60]
call	sub_42C426

loc_439650:
cmp	[edi+20h], bl
lea	eax, [edi+24h]
jnz	short loc_43965B
lea	eax, [ebp+var_6C]

loc_43965B:
push	eax
lea	ecx, [ebp+var_9C]
call	sub_40312C
lea	eax, [ebp+var_60]
lea	ecx, [ebp+var_9C]
push	eax
call	sub_4031F2
push	5Ch
lea	ecx, [ebp+var_C4]
call	sub_409516
push	eax
lea	edx, [ebp+var_60]
lea	ecx, [ebp+var_78]
mov	byte ptr [ebp+var_4], 1Bh
call	sub_40356A
mov	edx, eax
lea	ecx, [ebp+var_1AC]
mov	byte ptr [ebp+var_4], 1Ch
call	sub_43A07A
push	eax
lea	edx, [ebp+var_1C]
lea	ecx, [ebp+var_134]
mov	byte ptr [ebp+var_4], 1Dh
call	sub_4073D8
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 1Eh
call	sub_40312C
push	[ebp+var_134]	; Memory
call	sub_4284D8
push	[ebp+var_1AC]	; Memory
call	sub_4284D8
push	[ebp+var_78]	; Memory
call	sub_4284D8
push	[ebp+var_C4]	; Memory
mov	byte ptr [ebp+var_4], 19h
call	sub_4284D8
mov	edx, [ebp+item]
add	esp, 10h
inc	[ebp+item]
lea	ecx, [ebp+var_1C]
mov	eax, esi
push	ecx
push	eax
lea	ecx, [ebp+var_10]
inc	esi
call	sub_439E07
mov	ecx, [ebp+var_20]
lea	eax, [ebp+var_B8]
push	eax
call	sub_43A79A
push	[ebp+var_60]	; Memory
call	sub_4284D8
push	[ebp+var_1C]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 11h
pop	ecx
lea	ecx, [ebp+var_B8]
call	sub_43A31B

loc_43973A:
test	byte ptr [ebp+var_24], 10h
jz	short loc_439797
lea	ecx, [ebp+var_128]
call	sub_43A28E
lea	eax, [ebp+var_128]
mov	ecx, edi
push	eax
lea	eax, [ebp+var_30]
push	eax
push	5
mov	byte ptr [ebp+var_4], 1Fh
call	sub_438D39
mov	edx, [ebp+item]
inc	[ebp+item]
lea	ecx, [ebp+var_30]
mov	eax, esi
push	ecx
push	eax
lea	ecx, [ebp+var_10]
inc	esi
call	sub_439E07
mov	ecx, [ebp+var_20]
lea	eax, [ebp+var_128]
push	eax
call	sub_43A79A
lea	ecx, [ebp+var_128]
mov	byte ptr [ebp+var_4], 11h
call	sub_43A31B

loc_439797:		; Memory
push	[ebp+var_178]
call	sub_4284D8
push	[ebp+var_6C]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx
pop	ecx

loc_4397B0:
mov	eax, [edi+14h]
mov	edx, [ebp+arg_10]
cmp	eax, 1
push	ebx
setnle	al
push	eax
lea	ecx, [ebp+Memory]
call	sub_432457
push	offset a_7z	; ".7z"
lea	edx, [ebp+Memory]
lea	ecx, [ebp+var_E8]
mov	byte ptr [ebp+var_4], 20h
call	sub_409948
push	offset a_zip	; ".zip"
lea	edx, [ebp+Memory]
lea	ecx, [ebp+var_DC]
mov	byte ptr [ebp+var_4], 21h
call	sub_409948
push	3
lea	ecx, [ebp+var_40]
mov	byte ptr [ebp+var_4], 22h
mov	[ebp+var_40], ebx
mov	[ebp+var_3C], ebx
mov	[ebp+var_38], ebx
call	sub_403396
mov	eax, [ebp+arg_10]
lea	edx, [ebp+var_40]
mov	byte ptr [ebp+var_4], 23h
mov	ecx, [eax]
call	sub_42AAF6
test	byte ptr [ebp+var_24+1], 1
jz	short loc_43989F
lea	ecx, [ebp+var_B8]
call	sub_43A28E
cmp	[edi+20h], bl
mov	byte ptr [ebp+var_4], 24h
lea	eax, [edi+24h]
jnz	short loc_43983C
lea	eax, [ebp+var_40]

loc_43983C:
push	eax
lea	ecx, [ebp+var_9C]
call	sub_40312C
lea	eax, [ebp+Memory]
lea	ecx, [ebp+var_90]
push	eax
call	sub_40312C
lea	eax, [ebp+var_B8]
mov	ecx, edi
push	eax
lea	eax, [ebp+var_30]
push	eax
push	6
call	sub_438D39
mov	edx, [ebp+item]
inc	[ebp+item]
lea	ecx, [ebp+var_30]
mov	eax, esi
push	ecx
push	eax
lea	ecx, [ebp+var_10]
inc	esi
call	sub_439E07
mov	ecx, [ebp+var_20]
lea	eax, [ebp+var_B8]
push	eax
call	sub_43A79A
lea	ecx, [ebp+var_B8]
mov	byte ptr [ebp+var_4], 23h
call	sub_43A31B

loc_43989F:
test	byte ptr [ebp+var_24+1], 4
jz	short loc_439910
cmp	[edi+20h], bl
jnz	short loc_439910
lea	ecx, [ebp+var_128]
call	sub_43A28E
lea	eax, [ebp+Memory]
lea	ecx, [ebp+var_100]
push	eax
mov	byte ptr [ebp+var_4], 25h
call	sub_40312C
lea	eax, [ebp+var_128]
mov	ecx, edi
push	eax
lea	eax, [ebp+var_30]
push	eax
push	7
call	sub_438D39
mov	edx, [ebp+item]
inc	[ebp+item]
lea	ecx, [ebp+var_30]
mov	eax, esi
push	ecx
push	eax
lea	ecx, [ebp+var_10]
inc	esi
call	sub_439E07
mov	ecx, [ebp+var_20]
lea	eax, [ebp+var_128]
push	eax
call	sub_43A79A
lea	ecx, [ebp+var_128]
mov	byte ptr [ebp+var_4], 23h
call	sub_43A31B

loc_439910:
test	byte ptr [ebp+var_24+1], 2
jz	loc_439A11
lea	ecx, [ebp+var_B8]
call	sub_43A28E
push	3
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 26h
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_403396
lea	eax, [ebp+var_B8]
mov	ecx, edi
push	eax
lea	eax, [ebp+var_1C]
push	eax
push	8
mov	byte ptr [ebp+var_4], 27h
call	sub_438D39
cmp	[edi+20h], bl
lea	eax, [edi+24h]
jnz	short loc_43995F
lea	eax, [ebp+var_40]

loc_43995F:
push	eax
lea	ecx, [ebp+var_9C]
call	sub_40312C
lea	eax, [ebp+var_E8]
lea	ecx, [ebp+var_90]
push	eax
call	sub_40312C
push	offset a7z	; "7z"
lea	ecx, [ebp+var_84]
call	sub_404722
lea	edx, [ebp+var_E8]
lea	ecx, [ebp+var_78]
call	sub_43A07A
push	eax
lea	edx, [ebp+var_1C]
lea	ecx, [ebp+var_C4]
mov	byte ptr [ebp+var_4], 28h
call	sub_4073D8
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 29h
call	sub_40312C
push	[ebp+var_C4]	; Memory
call	sub_4284D8
push	[ebp+var_78]	; Memory
mov	byte ptr [ebp+var_4], 27h
call	sub_4284D8
mov	edx, [ebp+item]
inc	[ebp+item]
pop	ecx
mov	eax, esi
pop	ecx
inc	esi
lea	ecx, [ebp+var_1C]
push	ecx
push	eax
lea	ecx, [ebp+var_10]
call	sub_439E07
mov	ecx, [ebp+var_20]
lea	eax, [ebp+var_B8]
push	eax
call	sub_43A79A
push	[ebp+var_1C]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 23h
lea	ecx, [ebp+var_B8]
call	sub_43A31B

loc_439A11:
test	byte ptr [ebp+var_24+1], 8
jz	loc_439B04
cmp	[edi+20h], bl
jnz	loc_439B04
lea	ecx, [ebp+var_128]
call	sub_43A28E
push	3
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 2Ah
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_403396
lea	eax, [ebp+var_128]
mov	ecx, edi
push	eax
lea	eax, [ebp+var_1C]
push	eax
push	9
mov	byte ptr [ebp+var_4], 2Bh
call	sub_438D39
lea	eax, [ebp+var_E8]
lea	ecx, [ebp+var_100]
push	eax
call	sub_40312C
push	offset a7z	; "7z"
lea	ecx, [ebp+var_F4]
call	sub_404722
lea	edx, [ebp+var_E8]
lea	ecx, [ebp+var_78]
call	sub_43A07A
push	eax
lea	edx, [ebp+var_1C]
lea	ecx, [ebp+var_C4]
mov	byte ptr [ebp+var_4], 2Ch
call	sub_4073D8
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 2Dh
call	sub_40312C
push	[ebp+var_C4]	; Memory
call	sub_4284D8
push	[ebp+var_78]	; Memory
mov	byte ptr [ebp+var_4], 2Bh
call	sub_4284D8
mov	edx, [ebp+item]
inc	[ebp+item]
pop	ecx
mov	eax, esi
pop	ecx
inc	esi
lea	ecx, [ebp+var_1C]
push	ecx
push	eax
lea	ecx, [ebp+var_10]
call	sub_439E07
mov	ecx, [ebp+var_20]
lea	eax, [ebp+var_128]
push	eax
call	sub_43A79A
push	[ebp+var_1C]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 23h
lea	ecx, [ebp+var_128]
call	sub_43A31B

loc_439B04:
test	byte ptr [ebp+var_24+1], 10h
jz	loc_439C05
lea	ecx, [ebp+var_B8]
call	sub_43A28E
push	3
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 2Eh
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_403396
lea	eax, [ebp+var_B8]
mov	ecx, edi
push	eax
lea	eax, [ebp+var_1C]
push	eax
push	0Ah
mov	byte ptr [ebp+var_4], 2Fh
call	sub_438D39
cmp	[edi+20h], bl
lea	eax, [edi+24h]
jnz	short loc_439B53
lea	eax, [ebp+var_40]

loc_439B53:
push	eax
lea	ecx, [ebp+var_9C]
call	sub_40312C
lea	eax, [ebp+var_DC]
lea	ecx, [ebp+var_90]
push	eax
call	sub_40312C
push	offset aZip	; "zip"
lea	ecx, [ebp+var_84]
call	sub_404722
lea	edx, [ebp+var_DC]
lea	ecx, [ebp+var_78]
call	sub_43A07A
push	eax
lea	edx, [ebp+var_1C]
lea	ecx, [ebp+var_C4]
mov	byte ptr [ebp+var_4], 30h
call	sub_4073D8
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 31h
call	sub_40312C
push	[ebp+var_C4]	; Memory
call	sub_4284D8
push	[ebp+var_78]	; Memory
mov	byte ptr [ebp+var_4], 2Fh
call	sub_4284D8
mov	edx, [ebp+item]
inc	[ebp+item]
pop	ecx
mov	eax, esi
pop	ecx
inc	esi
lea	ecx, [ebp+var_1C]
push	ecx
push	eax
lea	ecx, [ebp+var_10]
call	sub_439E07
mov	ecx, [ebp+var_20]
lea	eax, [ebp+var_B8]
push	eax
call	sub_43A79A
push	[ebp+var_1C]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 23h
lea	ecx, [ebp+var_B8]
call	sub_43A31B

loc_439C05:
test	byte ptr [ebp+var_24+1], 20h
jz	loc_439CF5
cmp	[edi+20h], bl
jnz	loc_439CF5
lea	ecx, [ebp+var_128]
call	sub_43A28E
push	3
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 32h
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_403396
lea	eax, [ebp+var_128]
mov	ecx, edi
push	eax
lea	eax, [ebp+var_1C]
push	eax
push	0Bh
mov	byte ptr [ebp+var_4], 33h
call	sub_438D39
lea	eax, [ebp+var_DC]
lea	ecx, [ebp+var_100]
push	eax
call	sub_40312C
push	offset aZip	; "zip"
lea	ecx, [ebp+var_F4]
call	sub_404722
lea	edx, [ebp+var_DC]
lea	ecx, [ebp+var_78]
call	sub_43A07A
push	eax
lea	edx, [ebp+var_1C]
lea	ecx, [ebp+var_C4]
mov	byte ptr [ebp+var_4], 34h
call	sub_4073D8
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 35h
call	sub_40312C
push	[ebp+var_C4]	; Memory
call	sub_4284D8
push	[ebp+var_78]	; Memory
mov	byte ptr [ebp+var_4], 33h
call	sub_4284D8
mov	edx, [ebp+item]
pop	ecx
pop	ecx
mov	eax, esi
lea	ecx, [ebp+var_1C]
inc	esi
push	ecx
push	eax
lea	ecx, [ebp+var_10]
call	sub_439E07
mov	ecx, [ebp+var_20]
lea	eax, [ebp+var_128]
push	eax
call	sub_43A79A
push	[ebp+var_1C]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 23h
lea	ecx, [ebp+var_128]
call	sub_43A31B

loc_439CF5:		; Memory
push	[ebp+var_40]
call	sub_4284D8
push	[ebp+var_DC]	; Memory
call	sub_4284D8
push	[ebp+var_E8]	; Memory
call	sub_4284D8
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
add	esp, 10h

loc_439D22:
cmp	[ebp+var_13C], bl
jz	loc_439DBE
lea	ecx, [ebp+var_168]
call	sub_40BF33
mov	eax, [ebp+var_10]
mov	[ebp+var_150], esi
push	2000101h
mov	edx, 97h
lea	ecx, [ebp+var_C4]
mov	byte ptr [ebp+var_4], 36h
mov	[ebp+var_158], ebx
mov	[ebp+var_15C], 16h
inc	esi
mov	[ebp+var_10], ebx
mov	[ebp+var_14C], eax
mov	[ebp+var_34], ebx
call	sub_40B168
push	eax
lea	ecx, [ebp+var_168]
mov	byte ptr [ebp+var_4], 37h
call	sub_40312C
push	[ebp+var_C4]	; Memory
mov	byte ptr [ebp+var_4], 36h
call	sub_4284D8
mov	eax, [ebp+arg_4]
pop	ecx
mov	[ebp+arg_14], eax
lea	eax, [ebp+var_168]
push	eax		; int
push	1		; char
push	[ebp+arg_8]	; item
lea	ecx, [ebp+arg_14]
call	sub_42C858
push	[ebp+var_168]	; Memory
call	sub_4284D8
pop	ecx

loc_439DBE:		; Memory
push	[ebp+var_30]
sub	esi, [ebp+arg_C]
call	sub_4284D8
or	[ebp+var_4], 0FFFFFFFFh
pop	ecx
mov	ecx, [ebp+var_34]
cmp	ecx, ebx
jz	short loc_439DDA
call	sub_439DED

loc_439DDA:
mov	eax, esi

loc_439DDC:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	18h
sub_438E47 endp




sub_439DED proc	near
mov	eax, [ecx]
test	eax, eax
jnz	short loc_439DF6
xor	al, al
retn

loc_439DF6:
and	dword ptr [ecx], 0
push	eax		; hMenu
call	ds:DestroyMenu
neg	eax
sbb	eax, eax
neg	eax
retn
sub_439DED endp



; Attributes: bp-based frame

sub_439E07 proc	near

Memory=	dword ptr -38h
var_2C=	dword ptr -2Ch
var_28=	dword ptr -28h
var_20=	dword ptr -20h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_449040
call	__EH_prolog
sub	esp, 2Ch
push	ebx
push	esi
push	edi
mov	edi, ecx
mov	esi, edx
lea	ecx, [ebp+Memory]
call	sub_40BF33
mov	eax, [ebp+arg_0]
push	[ebp+arg_4]
and	[ebp+var_4], 0
and	[ebp+var_28], 0
lea	ecx, [ebp+Memory]
mov	[ebp+var_2C], 12h
mov	[ebp+var_20], eax
call	sub_40312C
lea	eax, [ebp+Memory]
mov	ecx, edi
push	eax		; int
push	1		; char
push	esi		; item
call	sub_42C858
mov	bl, al
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
mov	al, bl
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_439E07 endp



; Attributes: bp-based frame

sub_439E6F proc	near

var_50=	dword ptr -50h
Memory=	dword ptr -44h
var_38=	dword ptr -38h
var_2C=	dword ptr -2Ch
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_449074
call	__EH_prolog
sub	esp, 44h
and	[ebp+var_14], 0
push	esi
mov	esi, edx
push	edi
mov	[ebp+var_10], ecx
mov	eax, [esi+4]
test	eax, eax
jz	short loc_439EB1
mov	ecx, [esi]
lea	eax, [ecx+eax*2-2]

loc_439E94:
cmp	word ptr [eax],	2Eh
jz	short loc_439EA2
cmp	eax, ecx
jz	short loc_439EAA
dec	eax
dec	eax
jmp	short loc_439E94

loc_439EA2:
sub	eax, ecx
sar	eax, 1
mov	edi, eax
jmp	short loc_439EAD

loc_439EAA:
or	edi, 0FFFFFFFFh

loc_439EAD:
test	edi, edi
jge	short loc_439EDA

loc_439EB1:		; "~"
push	offset asc_45B8C8
lea	ecx, [ebp+Memory]
call	sub_403091
mov	ecx, [ebp+var_10]
and	[ebp+var_4], 0
push	eax
mov	edx, esi
call	sub_40356A
push	[ebp+Memory]	; Memory
call	sub_4284D8
jmp	loc_43A008

loc_439EDA:
lea	eax, [edi+1]
mov	ecx, esi
push	eax
lea	eax, [ebp+var_38]
push	eax
call	sub_405246
lea	eax, [ebp+var_20]
push	edi
push	eax
mov	ecx, esi
mov	[ebp+var_4], 1
call	sub_403228
lea	ecx, [ebp+var_20]
mov	byte ptr [ebp+var_4], 2
call	sub_406F3F
mov	eax, [ebp+var_1C]
test	eax, eax
jz	loc_439FEC
mov	ecx, [ebp+var_20]
lea	eax, [ecx+eax*2-2]

loc_439F1A:
cmp	word ptr [eax],	2Eh
jz	short loc_439F28
cmp	eax, ecx
jz	short loc_439F30
dec	eax
dec	eax
jmp	short loc_439F1A

loc_439F28:
sub	eax, ecx
sar	eax, 1
mov	esi, eax
jmp	short loc_439F33

loc_439F30:
or	esi, 0FFFFFFFFh

loc_439F33:
test	esi, esi
jle	loc_439FEC
lea	eax, [esi+1]
lea	ecx, [ebp+var_20]
push	eax
lea	eax, [ebp+var_2C]
push	eax
call	sub_405246
mov	ecx, [ebp+var_38]
mov	edx, offset aRar ; "rar"
mov	byte ptr [ebp+var_4], 3
call	sub_4282B1
test	eax, eax
jnz	short loc_439F93
mov	ecx, [ebp+var_2C]
mov	edx, offset aPart001 ; "part001"
call	sub_4282B1
test	eax, eax
jz	short loc_439FB0
mov	ecx, [ebp+var_2C]
mov	edx, offset aPart01 ; "part01"
call	sub_4282B1
test	eax, eax
jz	short loc_439FB0
mov	ecx, [ebp+var_2C]
mov	edx, offset aPart1 ; "part1"
call	sub_4282B1
test	eax, eax
jz	short loc_439FB0

loc_439F93:
lea	ecx, [ebp+var_2C]
call	sub_43A01A
test	al, al
jz	short loc_439FD7
mov	ecx, [ebp+var_38]
mov	edx, offset a001 ; "001"
call	sub_4282B1
test	eax, eax
jnz	short loc_439FD7

loc_439FB0:
lea	eax, [ebp+var_50]
push	esi
push	eax
lea	ecx, [ebp+var_20]
call	sub_403228
push	eax
lea	ecx, [ebp+var_20]
mov	byte ptr [ebp+var_4], 4
call	sub_40312C
mov	byte ptr [ebp+var_4], 3
push	[ebp+var_50]	; Memory
call	sub_4284D8
pop	ecx

loc_439FD7:
lea	ecx, [ebp+var_20]
call	sub_406F3F
mov	byte ptr [ebp+var_4], 2
push	[ebp+var_2C]	; Memory
call	sub_4284D8
pop	ecx

loc_439FEC:
mov	ecx, [ebp+var_10]
lea	edx, [ebp+var_20]
call	sub_43403D
push	[ebp+var_20]	; Memory
call	sub_4284D8
push	[ebp+var_38]	; Memory
call	sub_4284D8
pop	ecx

loc_43A008:
mov	eax, [ebp+var_10]
pop	ecx
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_439E6F endp



; Attributes: bp-based frame

sub_43A01A proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_449088
call	__EH_prolog
sub	esp, 0Ch
push	ebx
push	esi
push	ecx
lea	ecx, [ebp+Memory]
call	sub_4030F2
mov	ecx, [ebp+Memory]
xor	ebx, ebx
mov	[ebp+var_4], ebx
call	sub_4281B7
mov	esi, offset off_45CF48

loc_43A044:
mov	edx, [esi]
mov	ecx, [ebp+Memory]
call	sub_42828A
test	eax, eax
jz	short loc_43A05F
add	esi, 4
cmp	esi, offset off_45CF5C
jb	short loc_43A044
jmp	short loc_43A061

loc_43A05F:
mov	bl, 1

loc_43A061:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
mov	al, bl
mov	ecx, [ebp+var_C]
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_43A01A endp



; Attributes: bp-based frame

sub_43A07A proc	near

var_34=	dword ptr -34h
Memory=	dword ptr -28h
var_1C=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4490AC
call	__EH_prolog
sub	esp, 28h
and	[ebp+var_10], 0
push	esi
mov	esi, ecx
lea	ecx, [ebp+var_1C]
call	sub_43A104
and	[ebp+var_4], 0
push	offset asc_45D2F4 ; "&&"
lea	ecx, [ebp+var_34]
call	sub_403091
push	offset unk_45C430
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_403091
lea	eax, [ebp+var_34]
lea	ecx, [ebp+var_1C]
push	eax
lea	eax, [ebp+Memory]
push	eax
mov	byte ptr [ebp+var_4], 2
call	sub_407494
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_34]	; Memory
and	byte ptr [ebp+var_4], 0
call	sub_4284D8
pop	ecx
lea	edx, [ebp+var_1C]
pop	ecx
mov	ecx, esi
call	sub_432AED
push	[ebp+var_1C]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_43A07A endp



; Attributes: bp-based frame

sub_43A104 proc	near

var_40=	dword ptr -40h
var_34=	dword ptr -34h
var_28=	dword ptr -28h
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4490D8
call	__EH_prolog
sub	esp, 34h
and	[ebp+var_10], 0
push	esi
mov	esi, edx
push	edi
mov	edi, ecx
cmp	dword ptr [esi+4], 40h
jge	short loc_43A12B
push	esi
call	sub_4030F2
mov	eax, edi
jmp	short loc_43A1A5

loc_43A12B:
push	ebx
lea	eax, [ebp+var_40]
push	20h
push	eax
mov	ecx, esi
call	sub_40B5EF
mov	ebx, eax
and	[ebp+var_4], 0
push	offset a___	; " ...	"
lea	ecx, [ebp+var_34]
call	sub_403091
mov	[ebp+var_10], eax
lea	eax, [ebp+var_28]
push	20h
push	eax
mov	ecx, esi
mov	byte ptr [ebp+var_4], 1
call	sub_403228
push	[ebp+var_10]
mov	edx, eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 2
call	sub_40356A
push	ebx
mov	edx, eax
mov	ecx, edi
mov	byte ptr [ebp+var_4], 3
call	sub_40356A
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_28]	; Memory
call	sub_4284D8
push	[ebp+var_34]	; Memory
call	sub_4284D8
push	[ebp+var_40]	; Memory
call	sub_4284D8
add	esp, 10h
mov	eax, edi
pop	ebx

loc_43A1A5:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_43A104 endp



; Attributes: bp-based frame

sub_43A1B3 proc	near

var_24=	dword ptr -24h
Memory=	dword ptr -18h
Size= dword ptr	-14h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4490EC
call	__EH_prolog
sub	esp, 18h
mov	eax, [edx+4]
push	ebx
xor	ebx, ebx
push	edi
cmp	eax, ebx
mov	edi, ecx
jz	short loc_43A1EE
mov	ecx, [edx]
lea	eax, [ecx+eax*2-2]

loc_43A1D3:
cmp	word ptr [eax],	2Eh
jz	short loc_43A1E1
cmp	eax, ecx
jz	short loc_43A1E7
dec	eax
dec	eax
jmp	short loc_43A1D3

loc_43A1E1:
sub	eax, ecx
sar	eax, 1
jmp	short loc_43A1EA

loc_43A1E7:
or	eax, 0FFFFFFFFh

loc_43A1EA:
cmp	eax, ebx
jge	short loc_43A1F2

loc_43A1EE:
xor	al, al
jmp	short loc_43A26D

loc_43A1F2:
inc	eax
push	esi
push	eax
lea	eax, [ebp+var_24]
push	eax
mov	ecx, edx
call	sub_405246
mov	ecx, [ebp+var_24]
mov	[ebp+var_4], ebx
call	sub_4281B7
lea	edx, [ebp+var_24]
lea	ecx, [ebp+Memory]
push	ebx
call	sub_428673
xor	ecx, ecx
cmp	[edi], bl
jz	short loc_43A258
mov	eax, edi

loc_43A21F:
cmp	byte ptr [eax],	20h
mov	esi, ecx
jz	short loc_43A22D

loc_43A226:
inc	esi
cmp	byte ptr [esi+edi], 20h
jnz	short loc_43A226

loc_43A22D:
mov	edx, esi
sub	edx, ecx
cmp	[ebp+Size], edx
jnz	short loc_43A249
push	[ebp+Size]	; Size
push	[ebp+Memory]	; Buf2
push	eax		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jz	short loc_43A256

loc_43A249:
lea	ecx, [esi+1]
cmp	[ecx+edi], bl
lea	eax, [ecx+edi]
jnz	short loc_43A21F
jmp	short loc_43A258

loc_43A256:
mov	bl, 1

loc_43A258:		; Memory
push	[ebp+Memory]
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
pop	ecx
mov	al, bl
pop	ecx
pop	esi

loc_43A26D:
mov	ecx, [ebp+var_C]
pop	edi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_43A1B3 endp




sub_43A27B proc	near
mov	edx, ecx
mov	ecx, off_45CF5C
call	sub_43A1B3
neg	al
sbb	eax, eax
inc	eax
retn
sub_43A27B endp



; Attributes: bp-based frame

sub_43A28E proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_449124
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	edi
xor	edi, edi
lea	ecx, [esi+4]
push	3
mov	[ebp+var_10], esi
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
lea	ecx, [esi+10h]
push	3
mov	[ebp+var_4], edi
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
lea	ecx, [esi+1Ch]
push	3
mov	byte ptr [ebp+var_4], 1
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
lea	ecx, [esi+28h]
push	3
mov	byte ptr [ebp+var_4], 2
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
lea	ecx, [esi+34h]
push	3
mov	byte ptr [ebp+var_4], 3
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_43A28E endp




sub_43A31B proc	near
push	esi
mov	esi, ecx
push	dword ptr [esi+34h] ; Memory
call	sub_4284D8
push	dword ptr [esi+28h] ; Memory
call	sub_4284D8
push	dword ptr [esi+1Ch] ; Memory
call	sub_4284D8
push	dword ptr [esi+10h] ; Memory
call	sub_4284D8
push	dword ptr [esi+4] ; Memory
call	sub_4284D8
add	esp, 14h
pop	esi
retn
sub_43A31B endp




sub_43A34B proc	near

arg_0= dword ptr  4

push	esi
push	edi
mov	esi, ecx
xor	edi, edi
cmp	[esi+38h], edi
jle	short loc_43A374

loc_43A356:
mov	eax, [esi+3Ch]
mov	ecx, [esp+8+arg_0]
mov	eax, [eax+edi*4]
mov	edx, [ecx]
mov	ecx, [eax+4]
call	sub_42828A
test	eax, eax
jz	short loc_43A37C
inc	edi
cmp	edi, [esi+38h]
jl	short loc_43A356

loc_43A374:
or	eax, 0FFFFFFFFh

loc_43A377:
pop	edi
pop	esi
retn	4

loc_43A37C:
mov	eax, edi
jmp	short loc_43A377
sub_43A34B endp



; Attributes: bp-based frame

sub_43A380 proc	near

var_8C=	dword ptr -8Ch
var_70=	byte ptr -70h
var_64=	byte ptr -64h
var_58=	dword ptr -58h
var_4C=	dword ptr -4Ch
var_40=	dword ptr -40h
var_34=	dword ptr -34h
Memory=	dword ptr -28h
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_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_44916B
call	__EH_prolog
sub	esp, 80h
mov	eax, [ebp+arg_4]
push	ebx
push	esi
push	edi
cmp	dword ptr [eax], 40h
mov	[ebp+var_10], esp
jnz	short loc_43A3E5
test	byte ptr [eax+5], 40h
jz	short loc_43A3E5
mov	ecx, [eax+28h]
mov	edx, ecx
shr	edx, 10h
test	dx, dx
jnz	short loc_43A3BA

loc_43A3B1:
movzx	esi, word ptr [eax+0Ch]
mov	edi, [ebp+arg_0]
jmp	short loc_43A434

loc_43A3BA:
push	ecx
lea	ecx, [ebp+Memory]
call	sub_403091
mov	edi, [ebp+arg_0]
and	[ebp+var_4], 0
lea	eax, [ebp+Memory]
mov	ecx, edi
push	eax
call	sub_43A34B
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
mov	esi, eax
call	sub_4284D8
jmp	short loc_43A433

loc_43A3E5:
mov	ecx, [eax+0Ch]
mov	edx, ecx
shr	edx, 10h
test	dx, dx
jz	short loc_43A3B1
push	ecx
lea	ecx, [ebp+Memory]
call	sub_41E0DD
lea	edx, [ebp+Memory]
lea	ecx, [ebp+var_34]
mov	[ebp+var_4], 1
call	sub_41242C
mov	edi, [ebp+arg_0]
push	eax
mov	ecx, edi
mov	byte ptr [ebp+var_4], 2
call	sub_43A34B
push	[ebp+var_34]	; Memory
mov	esi, eax
call	sub_4284D8
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx

loc_43A433:
pop	ecx

loc_43A434:
xor	ebx, ebx
cmp	esi, ebx
jl	loc_43A597
cmp	esi, [edi+38h]
jge	loc_43A597
mov	eax, [edi+3Ch]
lea	ecx, [ebp+var_8C]
push	dword ptr [eax+esi*4]
call	sub_43A609
mov	eax, [ebp+var_8C]
push	3
pop	ecx
cmp	eax, 1
mov	[ebp+var_4], ecx
mov	byte ptr [ebp+var_4], 4
jz	loc_43A4F5
jle	short loc_43A4C5
cmp	eax, 4
jle	short loc_43A4E1
cmp	eax, 5
jz	short loc_43A4D7
jle	short loc_43A4C5
cmp	eax, 0Bh
jg	short loc_43A4C5
cmp	eax, 7
jz	short loc_43A496
cmp	eax, 9
jz	short loc_43A496
cmp	eax, 0Bh
mov	byte ptr [ebp+arg_4], bl
jnz	short loc_43A49A

loc_43A496:
mov	byte ptr [ebp+arg_4], 1

loc_43A49A:
cmp	eax, 6
jz	short loc_43A4A7
cmp	eax, 7
mov	byte ptr [ebp+arg_0], bl
jnz	short loc_43A4AB

loc_43A4A7:
mov	byte ptr [ebp+arg_0], 1

loc_43A4AB:
push	ebx
add	edi, 0Ch
push	[ebp+arg_0]
lea	eax, [ebp+var_58]
lea	edx, [ebp+var_64]
lea	ecx, [ebp+var_70]
push	[ebp+arg_4]
push	edi
push	eax
call	sub_432B68

loc_43A4C5:
lea	ecx, [ebp+var_8C]
call	sub_43A31B
xor	eax, eax
jmp	loc_43A59C

loc_43A4D7:
lea	ecx, [edi+0Ch]
call	sub_4332EF
jmp	short loc_43A4C5

loc_43A4E1:
cmp	eax, 2
lea	edx, [ebp+var_70]
setz	al
push	eax
lea	ecx, [edi+0Ch]
call	sub_433186
jmp	short loc_43A4C5

loc_43A4F5:
push	ecx
lea	ecx, [ebp+var_1C]
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_403396
mov	eax, [edi+18h]
lea	ecx, [ebp+var_40]
mov	byte ptr [ebp+var_4], 5
mov	edx, [eax]
call	sub_432AED
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 6
call	sub_40312C
push	[ebp+var_40]	; Memory
mov	byte ptr [ebp+var_4], 5
call	sub_4284D8
cmp	[ebp+var_58], ebx
pop	ecx
jz	short loc_43A550
push	offset aT_0	; " -t"
lea	ecx, [ebp+var_1C]
call	sub_403195
lea	eax, [ebp+var_58]
lea	ecx, [ebp+var_1C]
push	eax
call	sub_4031F2

loc_43A550:
lea	ecx, [ebp+var_4C]
call	sub_43A5AD
mov	ecx, [eax]
lea	edx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 7
call	sub_42CC0E
push	[ebp+var_4C]	; Memory
call	sub_4284D8
push	[ebp+var_1C]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx
jmp	loc_43A4C5

loc_43A57D:		; uType
push	10h
push	offset a7Zip	; "7-Zip"
push	offset aError_0	; "Error"
push	0		; hWnd
call	ds:MessageBoxW
mov	eax, offset loc_43A4C5
retn

loc_43A597:
mov	eax, 80004005h

loc_43A59C:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	8
sub_43A380 endp



; Attributes: bp-based frame

sub_43A5AD proc	near

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

mov	eax, offset loc_449180
call	__EH_prolog
sub	esp, 10h
push	esi
push	edi
mov	edi, ecx
xor	esi, esi
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+var_10], esi
mov	[ebp+Memory], esi
mov	[ebp+var_18], esi
mov	[ebp+var_14], esi
call	sub_403396
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], esi
call	sub_41D79C
lea	edx, [ebp+Memory]
mov	ecx, edi
push	offset a7zfm_exe ; "7zFM.exe"
call	sub_409948
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, edi
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_43A5AD endp



; Attributes: bp-based frame

sub_43A609 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4491B8
call	__EH_prolog
push	ecx
push	esi
push	edi
mov	edi, [ebp+arg_0]
mov	esi, ecx
mov	[ebp+var_10], esi
mov	eax, [edi]
lea	ecx, [esi+4]
mov	[esi], eax
lea	eax, [edi+4]
push	eax
call	sub_4030F2
and	[ebp+var_4], 0
lea	eax, [edi+10h]
push	eax
lea	ecx, [esi+10h]
call	sub_4030F2
lea	eax, [edi+1Ch]
lea	ecx, [esi+1Ch]
push	eax
mov	byte ptr [ebp+var_4], 1
call	sub_4030F2
lea	eax, [edi+28h]
lea	ecx, [esi+28h]
push	eax
mov	byte ptr [ebp+var_4], 2
call	sub_4030F2
add	edi, 34h
lea	ecx, [esi+34h]
push	edi
mov	byte ptr [ebp+var_4], 3
call	sub_4030F2
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_43A609 endp



; Attributes: bp-based frame

sub_43A680 proc	near

arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h
arg_10=	dword ptr  18h

push	ebp
mov	ebp, esp
mov	edx, [ebp+arg_8]
mov	eax, edx
dec	eax
dec	eax
jz	short loc_43A6E8
sub	eax, 4
jz	short loc_43A6E8
mov	eax, [ebp+arg_4]
test	eax, eax
jl	short loc_43A6B3
mov	ecx, [ebp+arg_0]
cmp	eax, [ecx+38h]
jge	short loc_43A6B3
cmp	edx, 1
jz	short loc_43A6D6
cmp	edx, 5
jz	short loc_43A6D9
test	edx, edx
jz	short loc_43A6BA
cmp	edx, 4
jz	short loc_43A6BD

loc_43A6B3:
mov	eax, 80004005h
jmp	short loc_43A6FA

loc_43A6BA:
cmp	edx, 4

loc_43A6BD:
mov	ecx, [ecx+3Ch]
setz	dl
mov	eax, [ecx+eax*4]
push	edx
mov	edx, [eax+4]

loc_43A6CA:
mov	ecx, [ebp+arg_10]
call	sub_43A6FE

loc_43A6D2:
xor	eax, eax
jmp	short loc_43A6FA

loc_43A6D6:
cmp	edx, 5

loc_43A6D9:
mov	ecx, [ecx+3Ch]
setz	dl
mov	eax, [ecx+eax*4]
push	edx
mov	edx, [eax+10h]
jmp	short loc_43A6CA

loc_43A6E8:
mov	eax, [ebp+arg_4]
test	eax, eax
jl	short loc_43A6F7
mov	ecx, [ebp+arg_0]
cmp	eax, [ecx+38h]
jl	short loc_43A6D2

loc_43A6F7:
push	1
pop	eax

loc_43A6FA:
pop	ebp
retn	18h
sub_43A680 endp



; Attributes: bp-based frame

sub_43A6FE proc	near

Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= byte ptr	 8

mov	eax, offset loc_4491CC
call	__EH_prolog
sub	esp, 18h
cmp	[ebp+arg_0], 0
push	esi
mov	esi, ecx
jz	short loc_43A737
mov	cx, [edx]
lea	eax, [edx+2]
mov	[esi], cx
add	esi, 2
test	cx, cx
jz	short loc_43A776
sub	esi, eax

loc_43A727:
mov	cx, [eax]
mov	[esi+eax], cx
inc	eax
inc	eax
test	cx, cx
jnz	short loc_43A727
jmp	short loc_43A776

loc_43A737:
push	edx
lea	ecx, [ebp+var_18]
call	sub_403091
and	[ebp+var_4], 0
lea	edx, [ebp+var_18]
lea	ecx, [ebp+Memory]
call	sub_43A785
mov	eax, [eax]
lea	edx, [esi+1]
mov	cl, [eax]
mov	[esi], cl

loc_43A758:
inc	eax
test	cl, cl
jz	short loc_43A764
mov	cl, [eax]
mov	[edx], cl
inc	edx
jmp	short loc_43A758

loc_43A764:		; Memory
push	[ebp+Memory]
call	sub_4284D8
push	[ebp+var_18]	; Memory
call	sub_4284D8
pop	ecx
pop	ecx

loc_43A776:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_43A6FE endp




sub_43A785 proc	near

var_4= dword ptr -4

push	ecx
and	[esp+4+var_4], 0
push	esi
mov	esi, ecx
push	0
call	sub_428673
mov	eax, esi
pop	esi
pop	ecx
retn
sub_43A785 endp



; Attributes: bp-based frame

sub_43A79A proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset unknown_libname_42 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	40h		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_10], ecx
xor	eax, eax
cmp	ecx, eax
mov	[ebp+var_4], eax
jz	short loc_43A7C6
push	[ebp+arg_0]
call	sub_43A609

loc_43A7C6:
or	[ebp+var_4], 0FFFFFFFFh
push	eax
mov	ecx, esi
call	sub_429907
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_43A79A endp



; Attributes: bp-based frame

sub_43A7E1 proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ebx
mov	ebx, ecx
mov	ecx, [ebp+arg_4]
push	edi
mov	edi, [ebp+arg_0]
mov	eax, [ebx+8]
add	ecx, edi
cmp	ecx, eax
jle	short loc_43A7FD
sub	eax, edi
mov	[ebp+arg_4], eax

loc_43A7FD:
mov	eax, [ebp+arg_4]
test	eax, eax
jle	short loc_43A831
push	esi
mov	esi, edi
shl	esi, 2
mov	[ebp+arg_0], eax

loc_43A80D:
mov	eax, [ebx+0Ch]
mov	ecx, [eax+esi]
test	ecx, ecx
mov	[ebp+Memory], ecx
jz	short loc_43A828
call	sub_43A31B
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_43A828:
add	esi, 4
dec	[ebp+arg_0]
jnz	short loc_43A80D
pop	esi

loc_43A831:
push	[ebp+arg_4]
mov	ecx, ebx
push	edi
call	sub_42847F
pop	edi
pop	ebx
leave
retn	8
sub_43A7E1 endp




; int __thiscall sub_43A842(void *Memory, char)
sub_43A842 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_43A85E
test	[esp+4+arg_0], 1
jz	short loc_43A858
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_43A858:
mov	eax, esi
pop	esi
retn	4
sub_43A842 endp



; Attributes: bp-based frame

sub_43A85E proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4491F4
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44C7AC
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_43A85E endp




sub_43A896 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_438A37
sub_43A896 endp




sub_43A8A0 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_438AAC
sub_43A8A0 endp




sub_43A8AA proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_438AC1
sub_43A8AA endp

call	sub_43A8BE
jmp	loc_43A8C8



sub_43A8BE proc	near
mov	ecx, offset stru_45DA60	; lpCriticalSection
jmp	sub_441910
sub_43A8BE endp


loc_43A8C8:
push	offset loc_43A8D4
call	_atexit
pop	ecx
retn

loc_43A8D4:
push	offset stru_45DA60
call	ds:DeleteCriticalSection
retn


; Attributes: bp-based frame

sub_43A8E0 proc	near

var_6C=	dword ptr -6Ch
var_60=	dword ptr -60h
var_54=	dword ptr -54h
Memory=	dword ptr -48h
var_3C=	dword ptr -3Ch
var_30=	dword ptr -30h
var_24=	dword ptr -24h
var_18=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_449240
call	__EH_prolog
sub	esp, 60h
push	ebx
lea	ecx, [ebp+var_3C]
push	off_45D324
call	sub_41E0DD
and	[ebp+var_4], 0
lea	edx, [ebp+var_3C]
lea	ecx, [ebp+var_6C]
call	sub_43AA11
mov	ecx, eax
mov	byte ptr [ebp+var_4], 1
call	sub_43AA43
test	al, al
jz	loc_43A9EE
push	off_45D31C
lea	ecx, [ebp+var_18]
call	sub_41E0DD
lea	edx, [ebp+var_18]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 2
call	sub_43AA11
mov	ecx, eax
mov	byte ptr [ebp+var_4], 3
call	sub_43AA43
mov	bl, al
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_18]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
pop	ecx
test	bl, bl
pop	ecx
jz	loc_43A9EE
push	off_45D324
lea	ecx, [ebp+var_24]
call	sub_41E0DD
lea	edx, [ebp+var_24]
lea	ecx, [ebp+var_54]
mov	byte ptr [ebp+var_4], 4
call	sub_43AA2A
mov	ecx, eax
mov	byte ptr [ebp+var_4], 5
call	sub_43AA43
mov	bl, al
push	[ebp+var_54]	; Memory
call	sub_4284D8
push	[ebp+var_24]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
pop	ecx
test	bl, bl
pop	ecx
jz	short loc_43A9EE
push	off_45D328
lea	ecx, [ebp+var_30]
call	sub_41E0DD
lea	edx, [ebp+var_30]
lea	ecx, [ebp+var_60]
mov	byte ptr [ebp+var_4], 6
call	sub_43AA2A
mov	ecx, eax
mov	byte ptr [ebp+var_4], 7
call	sub_43AA43
mov	bl, al
push	[ebp+var_60]	; Memory
call	sub_4284D8
push	[ebp+var_30]	; Memory
call	sub_4284D8
pop	ecx
test	bl, bl
pop	ecx
jz	short loc_43A9EE
mov	bl, 1
jmp	short loc_43A9F0

loc_43A9EE:
xor	bl, bl

loc_43A9F0:		; Memory
push	[ebp+var_6C]
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
pop	ecx
mov	al, bl
pop	ecx
pop	ebx
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn
sub_43A8E0 endp




sub_43AA11 proc	near

var_4= dword ptr -4

push	ecx
and	[esp+4+var_4], 0
push	esi
push	off_45D310
mov	esi, ecx
call	sub_41E280
mov	eax, esi
pop	esi
pop	ecx
retn
sub_43AA11 endp




sub_43AA2A proc	near

var_4= dword ptr -4

push	ecx
and	[esp+4+var_4], 0
push	esi
push	off_45D314
mov	esi, ecx
call	sub_41E280
mov	eax, esi
pop	esi
pop	ecx
retn
sub_43AA2A endp



; Attributes: bp-based frame

sub_43AA43 proc	near

Memory=	dword ptr -24h
var_20=	dword ptr -20h
var_1C=	dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_449264
call	__EH_prolog
sub	esp, 18h
push	ebx
push	esi
mov	esi, offset stru_45DA60
push	edi
mov	edi, ecx
push	esi		; lpCriticalSection
mov	[ebp+var_18], esi
call	ds:EnterCriticalSection
xor	ebx, ebx
mov	[ebp+var_4], ebx
mov	[ebp+var_14], ebx
mov	edi, [edi]
push	20019h		; samDesired
push	edi		; lpSubKey
push	80000000h	; hKey
lea	ecx, [ebp+var_14]
mov	byte ptr [ebp+var_4], 1
call	sub_42D35B
test	eax, eax
jz	short loc_43AA8E
mov	[ebp+var_D], bl
jmp	short loc_43AAE1

loc_43AA8E:
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], ebx
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
call	sub_4034E3
lea	eax, [ebp+Memory]
lea	ecx, [ebp+var_14]
push	eax		; cbData
push	ebx		; lpValueName
mov	byte ptr [ebp+var_4], 2
call	sub_42D67E
test	eax, eax
jz	short loc_43AABB
mov	[ebp+var_D], bl
jmp	short loc_43AAD8

loc_43AABB:		; lpsz
push	[ebp+Memory]
call	ds:CharUpperA
mov	edx, lpData
mov	ecx, [ebp+Memory]
call	sub_428267
cmp	eax, ebx
setz	[ebp+var_D]

loc_43AAD8:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx

loc_43AAE1:
lea	ecx, [ebp+var_14]
mov	byte ptr [ebp+var_4], bl
call	sub_42D390
push	esi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
mov	al, [ebp+var_D]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_43AA43 endp



; Attributes: bp-based frame

sub_43AB05 proc	near

var_24=	dword ptr -24h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4492B0
call	__EH_prolog
sub	esp, 18h
push	esi
lea	ecx, [ebp+Memory]
push	off_45D31C
call	sub_41E0DD
and	[ebp+var_4], 0
lea	ecx, [ebp+Memory]
call	sub_43AC65
or	esi, 0FFFFFFFFh
push	[ebp+Memory]	; Memory
mov	[ebp+var_4], esi
call	sub_4284D8
pop	ecx
push	off_45D320
lea	ecx, [ebp+Memory]
call	sub_41E0DD
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], 1
call	sub_43AC65
mov	[ebp+var_4], esi
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
push	off_45D324
lea	ecx, [ebp+Memory]
call	sub_41E0DD
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], 2
call	sub_43AC65
mov	[ebp+var_4], esi
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
push	off_45D328
lea	ecx, [ebp+Memory]
call	sub_41E0DD
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], 3
call	sub_43AC65
mov	[ebp+var_4], esi
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
push	off_45D31C
lea	ecx, [ebp+Memory]
call	sub_41E0DD
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], 4
call	sub_43ACBA
mov	[ebp+var_4], esi
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
push	off_45D320
lea	ecx, [ebp+Memory]
call	sub_41E0DD
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], 5
call	sub_43ACBA
mov	[ebp+var_4], esi
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
push	off_45D324
lea	ecx, [ebp+Memory]
call	sub_41E0DD
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], 6
call	sub_43ACBA
mov	[ebp+var_4], esi
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
push	off_45D328
lea	ecx, [ebp+var_24]
call	sub_41E0DD
lea	ecx, [ebp+var_24]
mov	[ebp+var_4], 7
call	sub_43ACBA
push	[ebp+var_24]	; Memory
call	sub_4284D8
pop	ecx
pop	esi
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn
sub_43AB05 endp



; Attributes: bp-based frame

sub_43AC65 proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4492CC
call	__EH_prolog
sub	esp, 10h
and	[ebp+var_4], 0
mov	edx, ecx
lea	ecx, [ebp+Memory]
mov	[ebp+var_10], 80000000h
call	sub_43AA11
push	dword ptr [eax]	; lpSubKey
lea	ecx, [ebp+var_10]
mov	byte ptr [ebp+var_4], 1
call	sub_42D3B6
push	[ebp+Memory]	; Memory
call	sub_4284D8
and	[ebp+var_10], 0
or	[ebp+var_4], 0FFFFFFFFh
pop	ecx
lea	ecx, [ebp+var_10]
call	sub_42D390
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn
sub_43AC65 endp



; Attributes: bp-based frame

sub_43ACBA proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4492E8
call	__EH_prolog
sub	esp, 10h
and	[ebp+var_4], 0
mov	edx, ecx
lea	ecx, [ebp+Memory]
mov	[ebp+var_10], 80000000h
call	sub_43AA2A
push	dword ptr [eax]	; lpSubKey
lea	ecx, [ebp+var_10]
mov	byte ptr [ebp+var_4], 1
call	sub_42D3B6
push	[ebp+Memory]	; Memory
call	sub_4284D8
and	[ebp+var_10], 0
or	[ebp+var_4], 0FFFFFFFFh
pop	ecx
lea	ecx, [ebp+var_10]
call	sub_42D390
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn
sub_43ACBA endp



; Attributes: bp-based frame

sub_43AD0F proc	near

var_24=	dword ptr -24h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_449314
call	__EH_prolog
sub	esp, 18h
push	off_45D31C
lea	ecx, [ebp+Memory]
call	sub_41E0DD
and	[ebp+var_4], 0
lea	ecx, [ebp+Memory]
call	sub_43ADC9
or	[ebp+var_4], 0FFFFFFFFh
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
push	off_45D324
lea	ecx, [ebp+Memory]
call	sub_41E0DD
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], 1
call	sub_43ADC9
or	[ebp+var_4], 0FFFFFFFFh
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
push	off_45D324
lea	ecx, [ebp+Memory]
call	sub_41E0DD
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], 2
call	sub_43AE5F
or	[ebp+var_4], 0FFFFFFFFh
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
push	off_45D328
lea	ecx, [ebp+var_24]
call	sub_41E0DD
lea	ecx, [ebp+var_24]
mov	[ebp+var_4], 3
call	sub_43AE5F
push	[ebp+var_24]	; Memory
call	sub_4284D8
pop	ecx
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn
sub_43AD0F endp



; Attributes: bp-based frame

sub_43ADC9 proc	near

Memory=	dword ptr -20h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_449338
call	__EH_prolog
sub	esp, 14h
push	ebx
push	esi
push	edi
mov	edi, ecx
call	sub_43AC65
mov	esi, offset stru_45DA60
push	esi		; lpCriticalSection
mov	[ebp+var_14], esi
call	ds:EnterCriticalSection
xor	ebx, ebx
mov	[ebp+var_4], ebx
mov	[ebp+var_10], ebx
mov	edx, edi
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_43AA11
mov	eax, [eax]
push	ebx		; int
push	ebx		; dwDisposition
push	0F003Fh		; samDesired
push	ebx		; dwOptions
push	ebx		; lpClass
push	eax		; lpSubKey
push	80000000h	; hKey
lea	ecx, [ebp+var_10]
mov	byte ptr [ebp+var_4], 2
call	sub_42D30D
mov	byte ptr [ebp+var_4], 1
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
push	lpData		; lpData
lea	ecx, [ebp+var_10]
push	ebx		; lpValueName
call	sub_42D4A3
lea	ecx, [ebp+var_10]
mov	byte ptr [ebp+var_4], bl
call	sub_42D390
push	esi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_43ADC9 endp



; Attributes: bp-based frame

sub_43AE5F proc	near

Memory=	dword ptr -20h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44935C
call	__EH_prolog
sub	esp, 14h
push	ebx
push	esi
push	edi
mov	edi, ecx
call	sub_43ACBA
mov	esi, offset stru_45DA60
push	esi		; lpCriticalSection
mov	[ebp+var_14], esi
call	ds:EnterCriticalSection
xor	ebx, ebx
mov	[ebp+var_4], ebx
mov	[ebp+var_10], ebx
mov	edx, edi
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_43AA2A
mov	eax, [eax]
push	ebx		; int
push	ebx		; dwDisposition
push	0F003Fh		; samDesired
push	ebx		; dwOptions
push	ebx		; lpClass
push	eax		; lpSubKey
push	80000000h	; hKey
lea	ecx, [ebp+var_10]
mov	byte ptr [ebp+var_4], 2
call	sub_42D30D
mov	byte ptr [ebp+var_4], 1
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
push	lpData		; lpData
lea	ecx, [ebp+var_10]
push	ebx		; lpValueName
call	sub_42D4A3
lea	ecx, [ebp+var_10]
mov	byte ptr [ebp+var_4], bl
call	sub_42D390
push	esi		; lpCriticalSection
call	ds:LeaveCriticalSection
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_43AE5F endp




sub_43AEF5 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [esp+arg_0]
mov	ecx, [esp+arg_4]
add	eax, 0FFFFFFF0h
mov	[ecx], eax
xor	eax, eax
retn	8
sub_43AEF5 endp




sub_43AF07 proc	near

arg_0= dword ptr  4

push	ebx
push	ebp
push	esi
mov	esi, [esp+0Ch+arg_0]
push	edi
xor	edi, edi
cmp	[esi+1Ch], edi
mov	ebp, ecx
jle	short loc_43AF37
lea	ebx, [ebp+38h]

loc_43AF1B:
push	edi
push	esi
mov	ecx, ebx
call	sub_43D102
mov	eax, [esi+20h]
mov	ecx, ebp
push	dword ptr [eax+edi*4]
call	sub_43AF07
inc	edi
cmp	edi, [esi+1Ch]
jl	short loc_43AF1B

loc_43AF37:
mov	ebx, [esi+1Ch]
xor	edi, edi
cmp	[esi+30h], edi
jle	short loc_43AF56
add	ebp, 38h

loc_43AF44:
lea	eax, [ebx+edi]
mov	ecx, ebp
push	eax
push	esi
call	sub_43D102
inc	edi
cmp	edi, [esi+30h]
jl	short loc_43AF44

loc_43AF56:
pop	edi
pop	esi
pop	ebp
pop	ebx
retn	4
sub_43AF07 endp




sub_43AF5D proc	near

arg_0= dword ptr  4

push	esi
mov	esi, [esp+4+arg_0]
mov	eax, [esi+34h]
cmp	byte ptr [eax+50h], 0
jnz	short loc_43AF72
mov	eax, 80004005h
jmp	short loc_43AF8C

loc_43AF72:
lea	ecx, [esi+38h]
call	sub_428327
cmp	byte ptr [esi+4Ch], 0
jz	short loc_43AF8A
push	dword ptr [esi+28h]
mov	ecx, esi
call	sub_43AF07

loc_43AF8A:
xor	eax, eax

loc_43AF8C:
pop	esi
retn	4
sub_43AF5D endp




sub_43AF90 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [esp+arg_0]
cmp	byte ptr [eax+4Ch], 0
jz	short loc_43AFA5
mov	ecx, [esp+arg_4]
mov	eax, [eax+40h]
mov	[ecx], eax
jmp	short loc_43AFB4

loc_43AFA5:
mov	eax, [eax+28h]
mov	ecx, [eax+30h]
add	ecx, [eax+1Ch]
mov	eax, [esp+arg_4]
mov	[eax], ecx

loc_43AFB4:
xor	eax, eax
retn	8
sub_43AF90 endp



; Attributes: bp-based frame

sub_43AFB9 proc	near

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
cmp	byte ptr [ecx+4Ch], 0
jz	short loc_43AFD7
mov	eax, [ecx+44h]
mov	ecx, [ebp+arg_4]
lea	eax, [eax+ecx*8]
mov	ecx, [eax]
mov	eax, [eax+4]
jmp	short loc_43AFDD

loc_43AFD7:
mov	ecx, [ecx+28h]
mov	eax, [ebp+arg_4]

loc_43AFDD:
mov	edx, [ecx+1Ch]
cmp	eax, edx
jnb	short loc_43AFE9
mov	ecx, [ecx+20h]
jmp	short loc_43AFEE

loc_43AFE9:
mov	ecx, [ecx+34h]
sub	eax, edx

loc_43AFEE:
mov	eax, [ecx+eax*4]
mov	ecx, [ebp+arg_0]
add	eax, 4
push	eax
call	sub_4030F2
mov	eax, [ebp+arg_0]
leave
retn	8
sub_43AFB9 endp



; Attributes: bp-based frame

sub_43B004 proc	near

var_40=	dword ptr -40h
var_34=	dword ptr -34h
Memory=	dword ptr -28h
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_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_449388
call	__EH_prolog
sub	esp, 34h
push	ebx
push	esi
push	edi
mov	edi, ecx
xor	ebx, ebx
cmp	[edi+4Ch], bl
mov	[ebp+var_10], ebx
jnz	short loc_43B03B
mov	esi, [ebp+arg_0]
push	3
mov	ecx, esi
mov	[esi], ebx
mov	[esi+4], ebx
mov	[esi+8], ebx
call	sub_403396
mov	eax, esi
jmp	loc_43B0D6

loc_43B03B:
mov	eax, [edi+44h]
mov	ecx, [ebp+arg_4]
push	3
mov	esi, [eax+ecx*8]
lea	eax, [eax+ecx*8]
lea	ecx, [ebp+var_1C]
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_403396
mov	[ebp+var_4], ebx

loc_43B05D:
cmp	esi, [edi+28h]
jz	short loc_43B0BE
push	5Ch
lea	ecx, [ebp+var_40]
call	sub_409516
push	eax
lea	edx, [esi+4]
lea	ecx, [ebp+var_34]
mov	byte ptr [ebp+var_4], 1
call	sub_40356A
lea	ecx, [ebp+var_1C]
mov	edx, eax
push	ecx
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 2
call	sub_40356A
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 3
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_34]	; Memory
call	sub_4284D8
push	[ebp+var_40]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
mov	esi, [esi+10h]
add	esp, 0Ch
jmp	short loc_43B05D

loc_43B0BE:
mov	ecx, [ebp+arg_0]
lea	eax, [ebp+var_1C]
push	eax
call	sub_4030F2
push	[ebp+var_1C]	; Memory
call	sub_4284D8
mov	eax, [ebp+arg_0]
pop	ecx

loc_43B0D6:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_43B004 endp



; Attributes: bp-based frame

sub_43B0E7 proc	near

var_28=	dword ptr -28h
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_4493A4
call	__EH_prolog
sub	esp, 1Ch
and	[ebp+var_10], 0
push	esi
push	edi
lea	eax, [ebp+var_28]
push	[ebp+arg_4]
mov	esi, ecx
push	eax
call	sub_43B004
mov	edi, eax
mov	ecx, [esi+28h]
and	[ebp+var_4], 0
lea	eax, [ebp+Memory]
push	eax
call	sub_43F657
mov	ecx, [ebp+arg_0]
push	edi
mov	edx, eax
mov	byte ptr [ebp+var_4], 1
call	sub_40356A
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_28]	; Memory
call	sub_4284D8
mov	eax, [ebp+arg_0]
pop	ecx
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_43B0E7 endp



; Attributes: bp-based frame

sub_43B14E proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_4493B8
call	__EH_prolog
sub	esp, 0Ch
cmp	byte ptr [ecx+4Ch], 0
jz	short loc_43B184
push	[ebp+arg_0]
lea	eax, [ebp+Memory]
push	eax
call	sub_43B004
push	dword ptr [eax]	; psz
mov	ecx, [ebp+arg_4]
and	[ebp+var_4], 0
call	sub_42CC9E
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_43B184:
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn	8
sub_43B14E endp



; Attributes: bp-based frame

sub_43B192 proc	near

pvarg= VARIANTARG ptr -1Ch
var_C= dword ptr -0Ch
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

mov	eax, offset loc_4493CC
call	__EH_prolog
sub	esp, 10h
push	ebx
push	esi
push	edi
xor	edi, edi
mov	word ptr [ebp+pvarg.anonymous_0], di
mov	word ptr [ebp+pvarg.anonymous_0+2], di
mov	ecx, [ebp+arg_0]
mov	[ebp+var_4], edi
mov	bl, [ecx+4Ch]
test	bl, bl
jz	short loc_43B1C9
mov	eax, [ecx+44h]
mov	edx, [ebp+arg_4]
lea	edx, [eax+edx*8]
mov	eax, [edx]
mov	edx, [edx+4]
jmp	short loc_43B1CF

loc_43B1C9:
mov	eax, [ecx+28h]
mov	edx, [ebp+arg_4]

loc_43B1CF:
mov	esi, [eax+1Ch]
cmp	edx, esi
jnb	loc_43B2E2
mov	eax, [eax+20h]
test	bl, bl
mov	esi, [eax+edx*4]
mov	edx, [ebp+arg_8]
jnz	short loc_43B1F4
cmp	edx, 7
jnz	short loc_43B1F4
push	dword ptr [esi+44h]
push	dword ptr [esi+40h]
jmp	short loc_43B203

loc_43B1F4:
test	bl, bl
jnz	short loc_43B210
cmp	edx, 8
jnz	short loc_43B210
push	dword ptr [esi+4Ch]
push	dword ptr [esi+48h]

loc_43B203:
lea	ecx, [ebp+pvarg]
call	sub_42CD92
jmp	loc_43B335

loc_43B210:
mov	eax, edx
sub	eax, 4
jz	loc_43B2DD
dec	eax
dec	eax
jz	loc_43B2D1
sub	eax, 0Dh
jz	short loc_43B288
sub	eax, 0Bh
jz	short loc_43B277
dec	eax
jz	short loc_43B267
dec	eax
jz	short loc_43B262
cmp	byte ptr [esi+3Ch], 0
jz	loc_43B335
mov	eax, [ecx+34h]
cmp	[eax+28h], edi
jnz	short loc_43B249
xor	eax, eax
jmp	short loc_43B255

loc_43B249:
mov	ecx, [eax+28h]
mov	eax, [eax+2Ch]
mov	eax, [eax+ecx*4-4]
mov	eax, [eax]

loc_43B255:
push	[ebp+arg_C]
mov	ecx, [eax]
push	edx
push	dword ptr [esi]
jmp	loc_43B321

loc_43B262:
push	dword ptr [esi+58h]
jmp	short loc_43B26A

loc_43B267:
push	dword ptr [esi+54h]

loc_43B26A:
lea	ecx, [ebp+pvarg]
call	sub_42CD72
jmp	loc_43B335

loc_43B277:
lea	eax, [ebp+pvarg]
push	eax
push	[ebp+arg_4]
call	sub_43B14E
jmp	loc_43B335

loc_43B288:
cmp	byte ptr [esi+3Ch], 0
jz	short loc_43B2BE
mov	eax, [ecx+34h]
cmp	[eax+28h], edi
jnz	short loc_43B29A
xor	eax, eax
jmp	short loc_43B2A6

loc_43B29A:
mov	ecx, [eax+28h]
mov	eax, [eax+2Ch]
mov	eax, [eax+ecx*4-4]
mov	eax, [eax]

loc_43B2A6:
push	[ebp+arg_C]
mov	ecx, [eax]
push	13h
push	dword ptr [esi]
push	eax
call	dword ptr [ecx+18h]
cmp	eax, edi
jz	short loc_43B2BE

loc_43B2B7:
mov	esi, eax
jmp	loc_43B342

loc_43B2BE:
cmp	byte ptr [esi+3Dh], 0
jz	short loc_43B335
mov	eax, [ebp+arg_C]
cmp	[eax], di
jnz	short loc_43B335
push	dword ptr [esi+50h]
jmp	short loc_43B26A

loc_43B2D1:
push	1

loc_43B2D3:
lea	ecx, [ebp+pvarg]
call	sub_42CD4D
jmp	short loc_43B335

loc_43B2DD:
push	dword ptr [esi+4]
jmp	short loc_43B32D

loc_43B2E2:
mov	eax, [eax+34h]
sub	edx, esi
mov	edx, [eax+edx*4]
mov	eax, [ebp+arg_8]
sub	eax, 4
jz	short loc_43B32A
dec	eax
dec	eax
jz	short loc_43B327
sub	eax, 18h
jz	loc_43B277
mov	eax, [ecx+34h]
cmp	[eax+28h], edi
jnz	short loc_43B30B
xor	eax, eax
jmp	short loc_43B317

loc_43B30B:
mov	ecx, [eax+28h]
mov	eax, [eax+2Ch]
mov	eax, [eax+ecx*4-4]
mov	eax, [eax]

loc_43B317:
push	[ebp+arg_C]
mov	ecx, [eax]
push	[ebp+arg_8]
push	dword ptr [edx]

loc_43B321:
push	eax
call	dword ptr [ecx+18h]
jmp	short loc_43B2B7

loc_43B327:
push	edi
jmp	short loc_43B2D3

loc_43B32A:		; psz
push	dword ptr [edx+4]

loc_43B32D:
lea	ecx, [ebp+pvarg]
call	sub_42CC9E

loc_43B335:		; pvarg
push	[ebp+arg_C]
lea	ecx, [ebp+pvarg] ; Src
call	sub_42CE85
xor	esi, esi

loc_43B342:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	10h
sub_43B192 endp



; Attributes: bp-based frame

sub_43B361 proc	near

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

mov	eax, offset loc_4493F2
call	__EH_prolog
push	ecx
push	ecx
and	[ebp+var_10], 0
push	esi
push	edi
mov	edi, ecx
mov	eax, [ebp+arg_0]
and	[ebp+var_4], 0
mov	eax, [eax+10h]
cmp	eax, [edi+28h]
jz	short loc_43B3AB
lea	ecx, [ebp+var_10]
push	ecx
push	eax
mov	ecx, edi
call	sub_43B361
mov	esi, eax
test	esi, esi
jz	short loc_43B3B4
mov	eax, [ebp+var_10]
or	[ebp+var_4], 0FFFFFFFFh
test	eax, eax
jz	short loc_43B3A7
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43B3A7:
mov	eax, esi
jmp	short loc_43B42A

loc_43B3AB:
push	edi
lea	ecx, [ebp+var_10]
call	sub_43D0DB

loc_43B3B4:		; Size
push	50h
call	sub_4284B1
pop	ecx
mov	[ebp+var_14], eax
test	eax, eax
mov	byte ptr [ebp+var_4], 1
jz	short loc_43B3D2
mov	ecx, eax
call	sub_43B43A
mov	esi, eax
jmp	short loc_43B3D4

loc_43B3D2:
xor	esi, esi

loc_43B3D4:
and	byte ptr [ebp+var_4], 0
mov	[ebp+var_14], esi
test	esi, esi
jz	short loc_43B3E5
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]

loc_43B3E5:
push	ebx
mov	ebx, [edi+34h]
mov	ecx, [ebp+arg_0]
mov	eax, [ebp+var_10]
mov	edi, [edi+24h]
mov	[esi+28h], ecx
push	eax
lea	ecx, [esi+2Ch]
mov	byte ptr [ebp+var_4], 2
mov	[esi+24h], edi
call	sub_43D0DB
push	ebx
lea	ecx, [esi+30h]
call	sub_43D0DB
mov	eax, [ebp+arg_4]
or	[ebp+var_4], 0FFFFFFFFh
mov	[esi+34h], ebx
pop	ebx
mov	[eax], esi
mov	eax, [ebp+var_10]
test	eax, eax
jz	short loc_43B428
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43B428:
xor	eax, eax

loc_43B42A:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_43B361 endp




sub_43B43A proc	near
mov	eax, ecx
xor	ecx, ecx
mov	dword ptr [eax+4], offset off_44C8BC
mov	dword ptr [eax+8], offset off_44C8AC
mov	dword ptr [eax+0Ch], offset off_44C89C
mov	dword ptr [eax+10h], offset off_44C88C
mov	dword ptr [eax+14h], offset off_44C87C
mov	dword ptr [eax+18h], offset off_44BBC4
mov	dword ptr [eax+1Ch], offset off_44BB84
mov	[eax+20h], ecx
mov	[eax+28h], ecx
mov	[eax+2Ch], ecx
mov	[eax+30h], ecx
mov	[eax+3Ch], ecx
mov	[eax+40h], ecx
mov	[eax+44h], ecx
mov	dword ptr [eax+48h], 8
mov	dword ptr [eax+38h], offset off_44C874
mov	[eax+4Ch], cl
mov	dword ptr [eax], offset	off_44C844
mov	dword ptr [eax+4], offset off_44C830
mov	dword ptr [eax+8], offset off_44C820
mov	dword ptr [eax+0Ch], offset off_44C810
mov	dword ptr [eax+10h], offset off_44C800
mov	dword ptr [eax+14h], offset off_44C7F0
mov	dword ptr [eax+18h], offset off_44C7C4
mov	dword ptr [eax+1Ch], offset off_44C7B4
retn
sub_43B43A endp



; Attributes: bp-based frame

; int __stdcall	sub_43B4CD(int,	void *Buf1, int)
sub_43B4CD proc	near

arg_0= dword ptr  8
Buf1= dword ptr	 0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
push	esi
mov	esi, [ebp+Buf1]
push	edi
push	10h
pop	edi
push	edi		; Size
push	offset unk_44CCB8 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_43B4F8

loc_43B4EB:
mov	ecx, [ebp+arg_8]
mov	eax, [ebp+arg_0]
mov	[ecx], eax
jmp	loc_43B5E5

loc_43B4F8:		; Size
push	edi
push	offset unk_44B6D0 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jz	short loc_43B4EB
push	edi		; Size
push	offset unk_44B650 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_43B52B
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+4]
jmp	loc_43B5DA

loc_43B52B:		; Size
push	edi
push	offset unk_44B630 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_43B54B
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+8]
jmp	loc_43B5DA

loc_43B54B:		; Size
push	edi
push	offset unk_44B600 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_43B568
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+0Ch]
jmp	short loc_43B5DA

loc_43B568:		; Size
push	edi
push	offset unk_44B5C0 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_43B585
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+10h]
jmp	short loc_43B5DA

loc_43B585:		; Size
push	edi
push	offset unk_44B790 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_43B5A2
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+14h]
jmp	short loc_43B5DA

loc_43B5A2:		; Size
push	edi
push	offset unk_44B6A0 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_43B5BF
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+18h]
jmp	short loc_43B5DA

loc_43B5BF:		; Size
push	edi
push	offset unk_44B660 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_43B5EF
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+1Ch]

loc_43B5DA:
neg	ecx
sbb	ecx, ecx
and	ecx, edx
mov	edx, [ebp+arg_8]
mov	[edx], ecx

loc_43B5E5:
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+4]
xor	eax, eax
jmp	short loc_43B5F4

loc_43B5EF:
mov	eax, 80004002h

loc_43B5F4:
pop	edi
pop	esi
pop	ebp
retn	0Ch
sub_43B4CD endp




sub_43B5FA proc	near

arg_0= dword ptr  4

mov	eax, [esp+arg_0]
inc	dword ptr [eax+20h]
mov	eax, [eax+20h]
retn	4
sub_43B5FA endp




; int __stdcall	sub_43B607(void	*Memory)
sub_43B607 proc	near

Memory=	dword ptr  4

push	esi
mov	esi, [esp+4+Memory]
dec	dword ptr [esi+20h]
mov	eax, [esi+20h]
jnz	short loc_43B628
test	esi, esi
jz	short loc_43B626
mov	ecx, esi
call	sub_43B62C
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_43B626:
xor	eax, eax

loc_43B628:
pop	esi
retn	4
sub_43B607 endp



; Attributes: bp-based frame

sub_43B62C proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_449412
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
lea	ecx, [esi+38h]
mov	[ebp+var_4], 1
call	sub_4282FE
mov	eax, [esi+30h]
and	byte ptr [ebp+var_4], 0
test	eax, eax
jz	short loc_43B65D
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43B65D:
mov	esi, [esi+2Ch]
or	[ebp+var_4], 0FFFFFFFFh
test	esi, esi
jz	short loc_43B66E
mov	eax, [esi]
push	esi
call	dword ptr [eax+8]

loc_43B66E:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_43B62C endp



; Attributes: bp-based frame

sub_43B67B proc	near

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

mov	eax, offset loc_44941C
call	__EH_prolog
push	ecx
mov	ecx, [ebp+arg_0]
and	[ebp+var_4], 0
push	ebx
push	esi
cmp	byte ptr [ecx+4Ch], 0
push	edi
mov	[ebp+var_10], esp
jz	short loc_43B6A9
mov	eax, [ecx+44h]
mov	edx, [ebp+arg_4]
lea	edx, [eax+edx*8]
mov	eax, [edx]
mov	edx, [edx+4]
jmp	short loc_43B6AF

loc_43B6A9:
mov	eax, [ecx+28h]
mov	edx, [ebp+arg_4]

loc_43B6AF:
cmp	edx, [eax+1Ch]
jb	short loc_43B6BB
mov	eax, 80070057h
jmp	short loc_43B6D7

loc_43B6BB:
mov	eax, [eax+20h]
push	[ebp+arg_8]
mov	edx, [eax+edx*4]
push	edx
call	sub_43B361
jmp	short loc_43B6D7

loc_43B6CC:
mov	eax, offset loc_43B6D2
retn

loc_43B6D2:
mov	eax, 8007000Eh

loc_43B6D7:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	0Ch
sub_43B67B endp



; Attributes: bp-based frame

sub_43B6E8 proc	near

Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_449430
call	__EH_prolog
sub	esp, 10h
and	[ebp+var_4], 0
push	ebx
push	esi
push	edi
mov	[ebp+var_10], esp
push	[ebp+arg_4]
lea	ecx, [ebp+Memory]
call	sub_403091
mov	esi, [ebp+arg_0]
lea	eax, [ebp+Memory]
push	eax
mov	byte ptr [ebp+var_4], 1
mov	ecx, [esi+28h]
call	sub_43F4B6
push	[ebp+Memory]	; Memory
and	byte ptr [ebp+var_4], 0
mov	edi, eax
call	sub_4284D8
test	edi, edi
pop	ecx
jge	short loc_43B737
mov	eax, 80070057h
jmp	short loc_43B74E

loc_43B737:
push	[ebp+arg_8]
mov	eax, [esi]
push	edi
push	esi
call	dword ptr [eax+1Ch]
jmp	short loc_43B74E

loc_43B743:
mov	eax, offset loc_43B749
retn

loc_43B749:
mov	eax, 8007000Eh

loc_43B74E:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	0Ch
sub_43B6E8 endp



; Attributes: bp-based frame

sub_43B75F proc	near

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

mov	eax, offset loc_44943C
call	__EH_prolog
push	ecx
mov	eax, [ebp+arg_0]
and	[ebp+var_4], 0
push	ebx
push	esi
mov	esi, [eax+2Ch]
push	edi
test	esi, esi
mov	[ebp+var_10], esp
jz	short loc_43B784
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]

loc_43B784:
mov	eax, [ebp+arg_4]
mov	[eax], esi
xor	eax, eax

loc_43B78B:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	8
sub_43B75F endp




sub_43B79C proc	near
mov	eax, offset loc_43B7A2
retn

loc_43B7A2:
mov	eax, 8007000Eh
jmp	short loc_43B78B
sub_43B79C endp	; sp-analysis failed



; Attributes: bp-based frame

sub_43B7A9 proc	near

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

mov	eax, offset loc_449450
call	__EH_prolog
push	ecx
push	ebx
xor	ebx, ebx
push	esi
push	edi
mov	[ebp+var_10], ebx
mov	esi, [ebp+arg_0]
mov	[ebp+var_4], ebx
mov	eax, [esi+20h]
cmp	[eax+28h], ebx
jnz	short loc_43B7CE
xor	eax, eax
jmp	short loc_43B7DA

loc_43B7CE:
mov	ecx, [eax+28h]
mov	eax, [eax+2Ch]
mov	eax, [eax+ecx*4-4]
mov	eax, [eax]

loc_43B7DA:
mov	ecx, [eax]
lea	edx, [ebp+var_10]
push	edx
push	offset unk_44B790
push	eax
call	dword ptr [ecx]
mov	edi, [ebp+var_10]
cmp	edi, ebx
jz	short loc_43B826
cmp	[esi+38h], bl
jz	short loc_43B804
mov	eax, [esi+30h]
mov	ecx, [ebp+arg_4]
lea	eax, [eax+ecx*8]
mov	ecx, [eax]
mov	eax, [eax+4]
jmp	short loc_43B80A

loc_43B804:
mov	ecx, [esi+14h]
mov	eax, [ebp+arg_4]

loc_43B80A:
mov	edx, [ecx+1Ch]
cmp	eax, edx
jnb	short loc_43B82A
mov	ecx, [ecx+20h]
mov	eax, [ecx+eax*4]
cmp	[eax+3Ch], bl
jnz	short loc_43B832
mov	eax, [edi]
or	[ebp+var_4], 0FFFFFFFFh
push	edi
call	dword ptr [eax+8]

loc_43B826:
xor	eax, eax
jmp	short loc_43B853

loc_43B82A:
mov	ecx, [ecx+34h]
sub	eax, edx
mov	eax, [ecx+eax*4]

loc_43B832:
push	[ebp+arg_8]
mov	eax, [eax]
mov	ecx, [edi]
push	eax
push	edi
call	dword ptr [ecx+0Ch]
or	[ebp+var_4], 0FFFFFFFFh
mov	esi, eax
mov	eax, [ebp+var_10]
cmp	eax, ebx
jz	short loc_43B851
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43B851:
mov	eax, esi

loc_43B853:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_43B7A9 endp



; Attributes: bp-based frame

sub_43B864 proc	near

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

mov	eax, offset loc_44945C
call	__EH_prolog
push	ecx
push	ebx
push	esi
push	edi
mov	edi, [ebp+arg_0]
xor	ebx, ebx
mov	[ebp+var_10], esp
mov	eax, [edi+34h]
mov	[ebp+var_4], ebx
cmp	[eax+28h], ebx
jnz	short loc_43B889
xor	eax, eax
jmp	short loc_43B895

loc_43B889:
mov	ecx, [eax+28h]
mov	eax, [eax+2Ch]
mov	eax, [eax+ecx*4-4]
mov	eax, [eax]

loc_43B895:
mov	esi, [ebp+arg_4]
mov	ecx, [eax]
push	esi
push	eax
call	dword ptr [ecx+24h]
cmp	eax, ebx
jnz	short loc_43B8CC
add	dword ptr [esi], 3
cmp	[edi+4Ch], bl
mov	eax, [esi]
jnz	short loc_43B8B0
dec	eax
mov	[esi], eax

loc_43B8B0:
mov	eax, [edi+34h]
mov	eax, [eax+1Ch]
cmp	[eax+60h], bl
jnz	short loc_43B8BD
inc	dword ptr [esi]

loc_43B8BD:
xor	eax, eax
jmp	short loc_43B8CC

loc_43B8C1:
mov	eax, offset loc_43B8C7
retn

loc_43B8C7:
mov	eax, 8007000Eh

loc_43B8CC:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	8
sub_43B864 endp



; Attributes: bp-based frame

sub_43B8DD proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_449468
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	esi, [ebp+arg_0]
xor	ebx, ebx
push	edi
mov	[ebp+var_4], ebx
mov	eax, [esi+34h]
mov	[ebp+var_10], esp
cmp	[eax+28h], ebx
jnz	short loc_43B902
xor	eax, eax
jmp	short loc_43B90E

loc_43B902:
mov	ecx, [eax+28h]
mov	eax, [eax+2Ch]
mov	eax, [eax+ecx*4-4]
mov	eax, [eax]

loc_43B90E:
mov	ecx, [eax]
lea	edx, [ebp+arg_0]
push	edx
push	eax
call	dword ptr [ecx+24h]
mov	ecx, [esi+34h]
mov	eax, [ecx+1Ch]
cmp	[eax+60h], bl
mov	eax, [ebp+arg_4]
jnz	short loc_43B93E
cmp	eax, ebx
jnz	short loc_43B93D
mov	eax, [ebp+arg_C]
mov	dword ptr [eax], 4
mov	eax, [ebp+arg_10]
mov	word ptr [eax],	8
jmp	short loc_43B99D

loc_43B93D:
dec	eax

loc_43B93E:
cmp	eax, [ebp+arg_0]
jnb	short loc_43B97A
cmp	[ecx+28h], ebx
jnz	short loc_43B94C
xor	ecx, ecx
jmp	short loc_43B958

loc_43B94C:
mov	edx, [ecx+28h]
mov	ecx, [ecx+2Ch]
mov	ecx, [ecx+edx*4-4]
mov	ecx, [ecx]

loc_43B958:
push	[ebp+arg_10]
mov	esi, [ebp+arg_C]
mov	edx, [ecx]
push	esi
push	[ebp+arg_8]
push	eax
push	ecx
call	dword ptr [edx+28h]
cmp	eax, ebx
jnz	short loc_43B9B1
cmp	dword ptr [esi], 3
jnz	short loc_43B9A2
mov	dword ptr [esi], 4
jmp	short loc_43B9A2

loc_43B97A:
sub	eax, [ebp+arg_0]
mov	edx, [ebp+arg_C]
lea	eax, [eax+eax*2]
mov	ecx, dword_45D3BC[eax*4]
lea	eax, ds:45D3B8h[eax*4]
mov	[edx], ecx
mov	ecx, [ebp+arg_10]
mov	ax, [eax+8]
mov	[ecx], ax

loc_43B99D:
mov	eax, [ebp+arg_8]
mov	[eax], ebx

loc_43B9A2:
xor	eax, eax
jmp	short loc_43B9B1

loc_43B9A6:
mov	eax, offset loc_43B9AC
retn

loc_43B9AC:
mov	eax, 8007000Eh

loc_43B9B1:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	14h
sub_43B8DD endp



; Attributes: bp-based frame

sub_43B9C2 proc	near

pvarg= VARIANTARG ptr -44h
var_34=	dword ptr -34h
var_28=	dword ptr -28h
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_449494
call	__EH_prolog
sub	esp, 38h
push	ebx
push	esi
push	edi
xor	ebx, ebx
mov	[ebp+var_10], esp
mov	[ebp+var_4], ebx
mov	word ptr [ebp+pvarg.anonymous_0], bx
mov	word ptr [ebp+pvarg.anonymous_0+2], bx
mov	eax, [ebp+arg_4]
mov	byte ptr [ebp+var_4], 1
cmp	eax, 13h
ja	loc_43BA8B
jz	short loc_43BA73
sub	eax, 3
jz	short loc_43BA45
dec	eax
jz	short loc_43BA2F
sub	eax, 3
jz	short loc_43BA21
dec	eax
jnz	loc_43BAF7
mov	eax, [ebp+arg_0]
mov	eax, [eax+28h]
push	dword ptr [eax+4Ch]
push	dword ptr [eax+48h]

loc_43BA14:
lea	ecx, [ebp+pvarg]
call	sub_42CD92
jmp	loc_43BAF7

loc_43BA21:
mov	eax, [ebp+arg_0]
mov	eax, [eax+28h]
push	dword ptr [eax+44h]
push	dword ptr [eax+40h]
jmp	short loc_43BA14

loc_43BA2F:
mov	eax, [ebp+arg_0]
lea	ecx, [ebp+pvarg]
mov	eax, [eax+28h]
push	dword ptr [eax+4] ; psz
call	sub_42CC9E
jmp	loc_43BAF7

loc_43BA45:
lea	eax, [ebp+Memory]
push	eax
mov	eax, [ebp+arg_0]
mov	ecx, [eax+28h]
call	sub_43F657
push	dword ptr [eax]	; psz
lea	ecx, [ebp+pvarg]
mov	byte ptr [ebp+var_4], 2
call	sub_42CC9E
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
jmp	loc_43BAF6

loc_43BA73:
mov	eax, [ebp+arg_0]
mov	eax, [eax+28h]
cmp	[eax+3Dh], bl
jz	short loc_43BAF7
push	dword ptr [eax+50h]

loc_43BA81:
lea	ecx, [ebp+pvarg]
call	sub_42CD72
jmp	short loc_43BAF7

loc_43BA8B:
sub	eax, 14h
jz	short loc_43BAAE
sub	eax, 0Bh
jz	short loc_43BAA3
dec	eax
jnz	short loc_43BAF7
mov	eax, [ebp+arg_0]
mov	eax, [eax+28h]
push	dword ptr [eax+58h]
jmp	short loc_43BA81

loc_43BAA3:
mov	eax, [ebp+arg_0]
mov	eax, [eax+28h]
push	dword ptr [eax+54h]
jmp	short loc_43BA81

loc_43BAAE:		; "7-Zip."
push	offset a7Zip__0
lea	ecx, [ebp+var_34]
call	sub_403091
mov	ecx, [ebp+arg_0]
mov	edx, eax
mov	byte ptr [ebp+var_4], 3
mov	ecx, [ecx+34h]
add	ecx, 58h
push	ecx
lea	ecx, [ebp+var_28]
call	sub_40356A
push	dword ptr [eax]	; psz
lea	ecx, [ebp+pvarg]
mov	byte ptr [ebp+var_4], 4
call	sub_42CC9E
push	[ebp+var_28]	; Memory
call	sub_4284D8
push	[ebp+var_34]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
pop	ecx

loc_43BAF6:
pop	ecx

loc_43BAF7:		; pvarg
push	[ebp+arg_8]
lea	ecx, [ebp+pvarg] ; Src
call	sub_42CE85
lea	ecx, [ebp+pvarg] ; pvarg
mov	byte ptr [ebp+var_4], bl
call	sub_42CDE1
xor	eax, eax
jmp	short loc_43BB1C

loc_43BB11:
mov	eax, offset loc_43BB17
retn

loc_43BB17:
mov	eax, 8007000Eh

loc_43BB1C:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	0Ch
sub_43B9C2 endp




sub_43BB2D proc	near

arg_4= dword ptr  8

mov	eax, [esp+arg_4]
mov	dword ptr [eax], 5
xor	eax, eax
retn	8
sub_43BB2D endp




sub_43BB3C proc	near

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

mov	eax, [esp+arg_4]
mov	edx, [esp+arg_C]
lea	eax, [eax+eax*2]
mov	ecx, dword_45D3E4[eax*4]
lea	eax, ds:45D3E0h[eax*4]
mov	[edx], ecx
mov	ecx, [esp+arg_10]
mov	ax, [eax+8]
mov	[ecx], ax
mov	eax, [esp+arg_8]
and	dword ptr [eax], 0
xor	eax, eax
retn	14h
sub_43BB3C endp




sub_43BB6E proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [esp+arg_0]
push	esi
mov	eax, [eax+2Ch]
test	eax, eax
jz	short loc_43BB7F
lea	esi, [eax+4]
jmp	short loc_43BB81

loc_43BB7F:
xor	esi, esi

loc_43BB81:
test	esi, esi
jz	short loc_43BB8B
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]

loc_43BB8B:
mov	eax, [esp+4+arg_4]
mov	[eax], esi
xor	eax, eax
pop	esi
retn	8
sub_43BB6E endp




sub_43BB97 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

cmp	[esp+arg_4], 0
mov	ecx, [esp+arg_0]
setnz	al
mov	[ecx+30h], al
xor	eax, eax
retn	8
sub_43BB97 endp



; Attributes: bp-based frame

sub_43BBAB proc	near

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

push	ebp
mov	ebp, esp
push	edi
mov	edi, ecx
cmp	byte ptr [edi+4Ch], 0
jnz	short loc_43BBCA
push	[ebp+arg_8]
mov	ecx, [edi+28h]
push	[ebp+arg_4]
push	[ebp+arg_0]
call	sub_43F763
jmp	short loc_43BC1D

loc_43BBCA:
push	ebx
mov	ebx, [ebp+arg_8]
mov	ecx, ebx
call	sub_428327
mov	eax, [ebp+arg_4]
test	eax, eax
jbe	short loc_43BC11
push	esi
mov	esi, [ebp+arg_0]
mov	[ebp+arg_8], eax

loc_43BBE3:
mov	eax, [esi]
mov	ecx, [edi+44h]
lea	eax, [ecx+eax*8]
mov	ecx, [eax]
mov	eax, [eax+4]
mov	edx, [ecx+1Ch]
cmp	eax, edx
jb	short loc_43BC08
mov	ecx, [ecx+34h]
sub	eax, edx
mov	eax, [ecx+eax*4]
mov	ecx, ebx
push	dword ptr [eax]
call	sub_429907

loc_43BC08:
add	esi, 4
dec	[ebp+arg_8]
jnz	short loc_43BBE3
pop	esi

loc_43BC11:
mov	edx, [ebx+8]
mov	ecx, [ebx+0Ch]
call	sub_441740
pop	ebx

loc_43BC1D:
pop	edi
pop	ebp
retn	0Ch
sub_43BBAB endp



; Attributes: bp-based frame

sub_43BC22 proc	near

var_48=	dword ptr -48h
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
Memory=	dword ptr -20h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_4494D2
call	__EH_prolog
sub	esp, 3Ch
push	ebx
push	esi
push	edi
xor	ebx, ebx
mov	[ebp+var_10], esp
push	0F8h		; Size
mov	[ebp+var_4], ebx
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_14], ecx
cmp	ecx, ebx
mov	byte ptr [ebp+var_4], 1
jz	short loc_43BC5B
call	sub_43BDED
mov	esi, eax
jmp	short loc_43BC5D

loc_43BC5B:
xor	esi, esi

loc_43BC5D:
cmp	esi, ebx
mov	byte ptr [ebp+var_4], bl
mov	[ebp+var_14], esi
jz	short loc_43BC6D
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]

loc_43BC6D:
push	4
lea	ecx, [ebp+var_48]
mov	byte ptr [ebp+var_4], 2
call	sub_402794
mov	[ebp+var_48], offset off_44B510
mov	edi, [ebp+arg_0]
mov	byte ptr [ebp+var_4], 3
mov	eax, [edi+1Ch]
mov	[ebp+arg_0], eax

loc_43BC8F:
cmp	[eax+10h], ebx
jz	short loc_43BCAC
add	eax, 4
lea	ecx, [ebp+var_48]
push	eax
push	ebx
call	sub_4140D0
mov	eax, [ebp+arg_0]
mov	eax, [eax+10h]
mov	[ebp+arg_0], eax
jmp	short loc_43BC8F

loc_43BCAC:
mov	eax, [ebp+arg_C]
mov	[esi+0E8h], ebx
mov	[esi+30h], eax
mov	eax, [ebp+arg_10]
mov	[esi+34h], eax
mov	eax, [ebp+arg_14]
mov	[esi+0E0h], ebx
mov	[esi+0D8h], ebx
cmp	eax, ebx
mov	[esi+0BBh], bl
mov	[esi+0ECh], ebx
mov	[esi+0E4h], ebx
mov	[esi+0DCh], ebx
mov	[esi+0F0h], ebx
jnz	short loc_43BCF4
mov	eax, offset word_45D498

loc_43BCF4:
push	eax
lea	ecx, [ebp+Memory]
call	sub_403091
mov	eax, [edi+28h]
push	0FFFFFFFFh
add	eax, 20h
cmp	[ebp+arg_18], ebx
push	0FFFFFFFFh
mov	byte ptr [ebp+var_4], 4
mov	ecx, [eax+8]
mov	eax, [eax+0Ch]
mov	eax, [eax+ecx*4-4]
lea	ecx, [ebp+var_48]
push	ecx
lea	ecx, [ebp+Memory]
push	ecx
push	ebx
setnz	cl
push	ecx
push	ebx
push	[ebp+arg_1C]
mov	ecx, esi
push	eax
push	ebx
call	sub_43101A
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	[ebp+var_30], ebx
mov	[ebp+var_2C], ebx
mov	[ebp+var_28], ebx
mov	[ebp+var_24], 4
mov	[ebp+var_34], offset off_44B518
lea	eax, [ebp+var_34]
lea	ecx, [edi-0Ch]
push	eax
mov	byte ptr [ebp+var_4], 5
push	[ebp+arg_8]
push	[ebp+arg_4]
call	sub_43BBAB
mov	edi, [edi+28h]
cmp	[edi+28h], ebx
jnz	short loc_43BD74
xor	eax, eax
jmp	short loc_43BD80

loc_43BD74:
mov	eax, [edi+28h]
mov	ecx, [edi+2Ch]
mov	eax, [ecx+eax*4-4]
mov	eax, [eax]

loc_43BD80:
mov	esi, [ebp+var_14]
mov	ecx, [eax]
push	esi
push	[ebp+arg_18]
push	[ebp+var_2C]
push	[ebp+var_28]
push	eax
call	dword ptr [ecx+1Ch]
lea	ecx, [ebp+var_34]
mov	edi, eax
mov	byte ptr [ebp+var_4], 3
call	sub_4282FE
mov	[ebp+var_48], offset off_44B510
lea	ecx, [ebp+var_48]
mov	byte ptr [ebp+var_4], 6
call	sub_428327
lea	ecx, [ebp+var_48]
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE
cmp	esi, ebx
mov	byte ptr [ebp+var_4], bl
jz	short loc_43BDCD
mov	eax, [esi]
push	esi
call	dword ptr [eax+8]

loc_43BDCD:
mov	eax, edi
jmp	short loc_43BDDC

loc_43BDD1:
mov	eax, offset loc_43BDD7
retn

loc_43BDD7:
mov	eax, 8007000Eh

loc_43BDDC:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	20h
sub_43BC22 endp



; Attributes: bp-based frame

sub_43BDED proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_449560
call	__EH_prolog
push	ecx
push	ecx
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
push	edi
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44C910
mov	dword ptr [esi+4], offset off_44B990
mov	dword ptr [esi+8], offset off_44C160
mov	[esi+0Ch], ebx
mov	[esi+18h], ebx
mov	[ebp+var_4], ebx
mov	[esi+1Ch], ebx
mov	[esi+20h], ebx
lea	ecx, [esi+24h]
push	3
mov	byte ptr [ebp+var_4], 2
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+38h]
push	3
mov	byte ptr [ebp+var_4], 3
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
lea	ecx, [esi+44h]
push	3
mov	byte ptr [ebp+var_4], 4
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
mov	byte ptr [esi+5Ah], 1
mov	byte ptr [esi+5Bh], 1
mov	byte ptr [esi+5Ch], 1
mov	[esi+98h], ebx
mov	[esi+0A0h], ebx
lea	eax, [esi+0A4h]
mov	[eax+4], ebx
mov	[eax+8], ebx
mov	[eax+0Ch], ebx
mov	dword ptr [eax+10h], 4
mov	dword ptr [eax], offset	off_44B510
lea	edi, [esi+0BCh]
mov	[esi+0BBh], bl
mov	[edi], ebx
push	38h		; Size
mov	byte ptr [ebp+var_4], 9
mov	dword ptr [esi], offset	off_44C8F0
mov	dword ptr [esi+4], offset off_44C8E0
mov	dword ptr [esi+8], offset off_44C8D0
call	sub_4284B1
pop	ecx
mov	[ebp+var_14], eax
cmp	eax, ebx
mov	byte ptr [ebp+var_4], 0Ah
jz	short loc_43BEDE
mov	ecx, eax
call	sub_430DC3
jmp	short loc_43BEE0

loc_43BEDE:
xor	eax, eax

loc_43BEE0:
push	eax
mov	ecx, edi
mov	byte ptr [ebp+var_4], 9
mov	[esi+0D0h], eax
call	sub_43D0DB
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_43BDED endp



; Attributes: bp-based frame

; int __stdcall	sub_43BF03(int,	void *Buf1, int)
sub_43BF03 proc	near

arg_0= dword ptr  8
Buf1= dword ptr	 0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
push	10h		; Size
push	offset unk_44CCB8 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_43BF26

loc_43BF1C:
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+4]
jmp	short loc_43BF5A

loc_43BF26:		; Size
push	10h
push	offset unk_44B720 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jz	short loc_43BF1C
push	10h		; Size
push	offset unk_44B700 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_43BF6F
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+8]

loc_43BF5A:
neg	ecx
sbb	ecx, ecx
push	eax
and	ecx, edx
mov	edx, [ebp+arg_8]
mov	[edx], ecx
mov	ecx, [eax]
call	dword ptr [ecx+4]
xor	eax, eax
jmp	short loc_43BF74

loc_43BF6F:
mov	eax, 80004002h

loc_43BF74:
pop	ebp
retn	0Ch
sub_43BF03 endp




; int __stdcall	sub_43BF78(void	*Memory)
sub_43BF78 proc	near

Memory=	dword ptr  4

push	esi
mov	esi, [esp+4+Memory]
dec	dword ptr [esi+0Ch]
mov	eax, [esi+0Ch]
jnz	short loc_43BF99
test	esi, esi
jz	short loc_43BF97
mov	ecx, esi
call	sub_43BF9D
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_43BF97:
xor	eax, eax

loc_43BF99:
pop	esi
retn	4
sub_43BF78 endp



; Attributes: bp-based frame

sub_43BF9D proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4495E0
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	eax, [esi+0BCh]
mov	[ebp+var_4], 8
test	eax, eax
jz	short loc_43BFC6
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43BFC6:
push	edi
lea	edi, [esi+0A4h]
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44B510
mov	ecx, edi
mov	byte ptr [ebp+var_4], 9
call	sub_428327
mov	ecx, edi
mov	byte ptr [ebp+var_4], 7
call	sub_4282FE
mov	eax, [esi+0A0h]
mov	byte ptr [ebp+var_4], 6
test	eax, eax
pop	edi
jz	short loc_43C001
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43C001:
mov	eax, [esi+98h]
mov	byte ptr [ebp+var_4], 5
test	eax, eax
jz	short loc_43C015
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43C015:		; Memory
push	dword ptr [esi+44h]
call	sub_4284D8
push	dword ptr [esi+38h] ; Memory
call	sub_4284D8
push	dword ptr [esi+24h] ; Memory
call	sub_4284D8
mov	eax, [esi+20h]
add	esp, 0Ch
test	eax, eax
mov	byte ptr [ebp+var_4], 1
jz	short loc_43C041
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43C041:
mov	eax, [esi+1Ch]
and	byte ptr [ebp+var_4], 0
test	eax, eax
jz	short loc_43C052
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43C052:
mov	esi, [esi+18h]
or	[ebp+var_4], 0FFFFFFFFh
test	esi, esi
jz	short loc_43C063
mov	eax, [esi]
push	esi
call	dword ptr [eax+8]

loc_43C063:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_43BF9D endp



; Attributes: bp-based frame

sub_43C070 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_449631
call	__EH_prolog
push	ecx
push	ebx
push	esi
mov	esi, ecx
push	edi
xor	edi, edi
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44CA10
mov	dword ptr [esi+4], offset off_44C9E8
mov	dword ptr [esi+8], offset off_44C9C8
mov	dword ptr [esi+0Ch], offset off_44C9B8
mov	[esi+10h], edi
mov	[esi+14h], edi
mov	[esi+18h], edi
lea	ecx, [esi+20h]
mov	[ebp+var_4], edi
mov	[esi+1Ch], edi
call	sub_43C186
lea	ecx, [esi+58h]
push	3
mov	byte ptr [ebp+var_4], 1
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
push	4
mov	[esi+68h], edi
pop	ebx
mov	[esi+6Ch], edi
mov	[esi+70h], edi
mov	[esi+74h], ebx
mov	dword ptr [esi+64h], offset off_44B510
lea	ecx, [esi+78h]
push	3
mov	byte ptr [ebp+var_4], 3
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
lea	ecx, [esi+84h]
push	3
mov	byte ptr [ebp+var_4], bl
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
lea	ecx, [esi+94h]
push	3
mov	byte ptr [ebp+var_4], 5
mov	[ecx], edi
mov	[ecx+4], edi
mov	[ecx+8], edi
call	sub_403396
lea	eax, [esi+0A0h]
mov	ecx, [ebp+var_C]
mov	[eax+4], edi
mov	[eax+8], edi
mov	[eax+0Ch], edi
mov	[eax+10h], ebx
mov	dword ptr [eax], offset	off_44B510
lea	eax, [esi+0B4h]
mov	[eax+4], edi
mov	[eax+8], edi
mov	[eax+0Ch], edi
mov	[eax+10h], ebx
mov	dword ptr [eax], offset	off_44C9B0
mov	dword ptr [esi], offset	off_44C988
mov	dword ptr [esi+4], offset off_44C960
mov	dword ptr [esi+8], offset off_44C940
mov	dword ptr [esi+0Ch], offset off_44C930
mov	eax, esi
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn
sub_43C070 endp




sub_43C186 proc	near
mov	eax, ecx
push	4
xor	ecx, ecx
pop	edx
mov	[eax+4], ecx
mov	[eax+8], ecx
mov	[eax+0Ch], ecx
mov	[eax+10h], edx
mov	dword ptr [eax], offset	off_44CA38
mov	[eax+18h], ecx
mov	[eax+1Ch], ecx
mov	[eax+20h], ecx
mov	[eax+24h], edx
mov	dword ptr [eax+14h], offset off_44B510
mov	[eax+28h], ecx
mov	[eax+2Ch], ecx
mov	[eax+30h], cl
retn
sub_43C186 endp



; Attributes: bp-based frame

sub_43C1BC proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_44965F
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
mov	[ebp+var_4], 1
call	sub_436400
lea	edi, [esi+14h]
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44B510
mov	ecx, edi
mov	byte ptr [ebp+var_4], 2
call	sub_428327
and	byte ptr [ebp+var_4], 0
mov	ecx, edi
call	sub_4282FE
mov	dword ptr [esi], offset	off_44CA38
mov	ecx, esi
mov	[ebp+var_4], 3
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_43C1BC endp



; Attributes: bp-based frame

; int __stdcall	sub_43C22A(int,	void *Buf1, int)
sub_43C22A proc	near

arg_0= dword ptr  8
Buf1= dword ptr	 0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
push	esi
mov	esi, [ebp+Buf1]
push	10h		; Size
push	offset unk_44CCB8 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_43C24F

loc_43C245:
mov	ecx, [ebp+arg_8]
mov	eax, [ebp+arg_0]
mov	[ecx], eax
jmp	short loc_43C2C6

loc_43C24F:		; Size
push	10h
push	offset unk_44B5F0 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jz	short loc_43C245
push	10h		; Size
push	offset unk_44B640 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_43C281
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+4]
jmp	short loc_43C2BB

loc_43C281:		; Size
push	10h
push	offset unk_44B5D0 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_43C29F
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+8]
jmp	short loc_43C2BB

loc_43C29F:		; Size
push	10h
push	offset unk_44B730 ; Buf2
push	esi		; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_43C2D0
mov	eax, [ebp+arg_0]
mov	ecx, eax
lea	edx, [eax+0Ch]

loc_43C2BB:
neg	ecx
sbb	ecx, ecx
and	ecx, edx
mov	edx, [ebp+arg_8]
mov	[edx], ecx

loc_43C2C6:
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+4]
xor	eax, eax
jmp	short loc_43C2D5

loc_43C2D0:
mov	eax, 80004002h

loc_43C2D5:
pop	esi
pop	ebp
retn	0Ch
sub_43C22A endp




; int __stdcall	sub_43C2DA(void	*Memory)
sub_43C2DA proc	near

Memory=	dword ptr  4

push	esi
mov	esi, [esp+4+Memory]
dec	dword ptr [esi+10h]
mov	eax, [esi+10h]
jnz	short loc_43C2FB
test	esi, esi
jz	short loc_43C2F9
mov	ecx, esi
call	sub_43C2FF
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_43C2F9:
xor	eax, eax

loc_43C2FB:
pop	esi
retn	4
sub_43C2DA endp



; Attributes: bp-based frame

sub_43C2FF proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4496F3
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44C988
mov	dword ptr [esi+4], offset off_44C960
mov	dword ptr [esi+8], offset off_44C940
mov	dword ptr [esi+0Ch], offset off_44C930
mov	edi, [esi+1Ch]
mov	[ebp+var_4], 8
test	edi, edi
jz	short loc_43C349
mov	ecx, edi
call	sub_43C409
push	edi		; Memory
call	sub_4284D8
pop	ecx

loc_43C349:
lea	edi, [esi+0B4h]
push	ebx
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44C9B0
mov	ecx, edi
mov	byte ptr [ebp+var_4], 9
call	sub_428327
mov	ecx, edi
mov	byte ptr [ebp+var_4], 7
call	sub_4282FE
lea	edi, [esi+0A0h]
mov	ebx, offset off_44B510
mov	[ebp+var_14], edi
mov	[edi], ebx
mov	ecx, edi
mov	byte ptr [ebp+var_4], 0Ah
call	sub_428327
mov	ecx, edi
mov	byte ptr [ebp+var_4], 6
call	sub_4282FE
push	dword ptr [esi+94h] ; Memory
call	sub_4284D8
push	dword ptr [esi+84h] ; Memory
call	sub_4284D8
push	dword ptr [esi+78h] ; Memory
call	sub_4284D8
lea	edi, [esi+64h]
add	esp, 0Ch
mov	[ebp+var_14], edi
mov	[edi], ebx
mov	ecx, edi
mov	byte ptr [ebp+var_4], 0Bh
call	sub_428327
mov	ecx, edi
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE
push	dword ptr [esi+58h] ; Memory
call	sub_4284D8
and	byte ptr [ebp+var_4], 0
pop	ecx
lea	ecx, [esi+20h]
call	sub_43C1BC
mov	esi, [esi+18h]
or	[ebp+var_4], 0FFFFFFFFh
test	esi, esi
pop	ebx
jz	short loc_43C3FB
mov	eax, [esi]
push	esi
call	dword ptr [eax+8]

loc_43C3FB:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_43C2FF endp



; Attributes: bp-based frame

sub_43C409 proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_449723
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
lea	edi, [esi+28h]
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44CA48
mov	ecx, edi
mov	byte ptr [ebp+var_4], 2
call	sub_428327
mov	ecx, edi
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
lea	edi, [esi+14h]
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44CA40
mov	ecx, edi
mov	byte ptr [ebp+var_4], 3
call	sub_428327
and	byte ptr [ebp+var_4], 0
mov	ecx, edi
call	sub_4282FE
push	dword ptr [esi+4] ; Memory
call	sub_4284D8
pop	ecx
pop	edi
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_43C409 endp



; Attributes: bp-based frame

sub_43C47B proc	near

var_138= byte ptr -138h
var_D0=	byte ptr -0D0h
var_68=	byte ptr -68h
var_50=	dword ptr -50h
var_4C=	dword ptr -4Ch
var_48=	dword ptr -48h
var_44=	byte ptr -44h
var_40=	dword ptr -40h
Memory=	dword ptr -30h
var_24=	dword ptr -24h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_449768
call	__EH_prolog
sub	esp, 12Ch
push	ebx
push	esi
mov	esi, [ebp+arg_0]
push	edi
mov	[ebp+var_10], esp
push	[ebp+arg_8]
lea	edi, [esi+94h]
xor	ebx, ebx
mov	ecx, edi
mov	[ebp+var_4], ebx
call	sub_404722
lea	ecx, [ebp+var_40]
call	sub_403079
cmp	[ebp+arg_4], ebx
mov	byte ptr [ebp+var_4], 1
jnz	short loc_43C4E9
push	dword ptr [edi]	; lpFileName
lea	ecx, [ebp+var_68]
call	sub_42B49E
test	al, al
jnz	short loc_43C4D5
call	ds:GetLastError
mov	esi, eax
jmp	loc_43C705

loc_43C4D5:
mov	eax, [ebp+var_48]
shr	eax, 4
test	al, 1
jz	short loc_43C4E9
mov	esi, 80004005h
jmp	loc_43C705

loc_43C4E9:
lea	ecx, [ebp+var_138]
call	sub_43493A
lea	ecx, [ebp+var_D0]
mov	byte ptr [ebp+var_4], 2
call	sub_43493A
mov	eax, [esi+18h]
lea	edi, [esi+18h]
cmp	eax, ebx
mov	byte ptr [ebp+var_4], 3
jz	short loc_43C519
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
mov	[edi], ebx

loc_43C519:		; Size
push	58h
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+arg_0], ecx
cmp	ecx, ebx
mov	byte ptr [ebp+var_4], 4
jz	short loc_43C535
call	sub_43C72E
jmp	short loc_43C537

loc_43C535:
xor	eax, eax

loc_43C537:
push	eax
mov	ecx, edi
mov	byte ptr [ebp+var_4], 3
mov	[esi+14h], eax
call	sub_43D0DB
mov	ecx, [esi+14h]
call	sub_434F92
mov	edi, eax
cmp	edi, ebx
jz	short loc_43C579
lea	ecx, [ebp+var_D0]
mov	byte ptr [ebp+var_4], 2
call	sub_434A93
lea	ecx, [ebp+var_138]
mov	byte ptr [ebp+var_4], 1
call	sub_434A93
mov	esi, edi
jmp	loc_43C705

loc_43C579:
push	4
lea	ecx, [ebp+var_24]
call	sub_402794
mov	[ebp+var_24], offset off_44C500
push	[ebp+arg_C]
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 5
call	sub_403091
mov	ecx, [esi+14h]
lea	eax, [ebp+var_24]
push	eax
lea	eax, [ebp+Memory]
push	eax
mov	byte ptr [ebp+var_4], 6
call	sub_435197
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 5
test	al, al
setz	bl
call	sub_4284D8
test	bl, bl
pop	ecx
jz	short loc_43C5F5
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 3
call	sub_4282FE
lea	ecx, [ebp+var_D0]
mov	byte ptr [ebp+var_4], 2
call	sub_434A93
lea	ecx, [ebp+var_138]
mov	byte ptr [ebp+var_4], 1
call	sub_434A93
push	1
pop	esi
jmp	loc_43C705

loc_43C5F5:
push	[ebp+arg_14]
lea	eax, [esi+94h]
lea	edi, [esi+20h]
push	eax
lea	eax, [ebp+var_24]
push	[ebp+arg_4]
mov	ecx, edi
push	0
push	eax
push	dword ptr [esi+14h]
call	sub_436414
mov	ebx, eax
test	ebx, ebx
jz	short loc_43C64C
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 3
call	sub_4282FE
lea	ecx, [ebp+var_D0]
mov	byte ptr [ebp+var_4], 2
call	sub_434A93
lea	ecx, [ebp+var_138]
mov	byte ptr [ebp+var_4], 1
call	sub_434A93
mov	esi, ebx
jmp	loc_43C705

loc_43C64C:
mov	eax, [edi+8]
mov	ecx, [edi+0Ch]
cmp	[ebp+arg_4], 0
mov	eax, [ecx+eax*4-4]
jnz	short loc_43C672
cmp	[ebp+var_44], 0
setz	cl
mov	[eax+2Ch], cl
mov	ecx, [ebp+var_50]
mov	[eax+24h], ecx
mov	ecx, [ebp+var_4C]
mov	[eax+28h], ecx

loc_43C672:
mov	ecx, [esi+14h]
mov	eax, [eax+1Ch]
add	esi, 58h
mov	ecx, [ecx+50h]
mov	eax, [ecx+eax*4]
mov	ecx, esi
add	eax, 24h
push	eax
call	sub_40312C
mov	edi, [ebp+arg_10]
test	edi, edi
jnz	short loc_43C6C1
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 3
call	sub_4282FE
lea	ecx, [ebp+var_D0]
mov	byte ptr [ebp+var_4], 2
call	sub_434A93
lea	ecx, [ebp+var_138]
mov	byte ptr [ebp+var_4], 1
call	sub_434A93
xor	esi, esi
jmp	short loc_43C705

loc_43C6C1:		; psz
push	dword ptr [esi]
call	ds:SysAllocString
mov	[edi], eax
lea	ecx, [ebp+var_24]
neg	eax
sbb	eax, eax
mov	byte ptr [ebp+var_4], 3
and	eax, 7FF8FFF2h
add	eax, 8007000Eh
mov	esi, eax
call	sub_4282FE
lea	ecx, [ebp+var_D0]
mov	byte ptr [ebp+var_4], 2
call	sub_434A93
lea	ecx, [ebp+var_138]
mov	byte ptr [ebp+var_4], 1
call	sub_434A93

loc_43C705:		; Memory
push	[ebp+var_40]
call	sub_4284D8
pop	ecx
mov	eax, esi
jmp	short loc_43C71D

loc_43C712:
mov	eax, offset loc_43C718
retn

loc_43C718:
mov	eax, 8007000Eh

loc_43C71D:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	18h
sub_43C47B endp




sub_43C72E proc	near
mov	eax, ecx
push	4
xor	ecx, ecx
pop	edx
mov	[eax+4], ecx
mov	[eax+0Ch], ecx
mov	[eax+10h], ecx
mov	[eax+14h], ecx
mov	[eax+18h], edx
mov	dword ptr [eax+8], offset off_44CA7C
mov	[eax+20h], ecx
mov	[eax+24h], ecx
mov	[eax+28h], ecx
mov	[eax+2Ch], edx
mov	dword ptr [eax+1Ch], offset off_44CA74
mov	[eax+34h], ecx
mov	[eax+38h], ecx
mov	[eax+3Ch], ecx
mov	[eax+40h], edx
mov	dword ptr [eax+30h], offset off_44C5D0
mov	[eax+48h], ecx
mov	[eax+4Ch], ecx
mov	[eax+50h], ecx
mov	[eax+54h], edx
mov	dword ptr [eax+44h], offset off_44CA6C
mov	dword ptr [eax], offset	off_44CA50
retn
sub_43C72E endp




; int __stdcall	sub_43C78B(void	*Memory)
sub_43C78B proc	near

Memory=	dword ptr  4

push	esi
mov	esi, [esp+4+Memory]
dec	dword ptr [esi+4]
mov	eax, [esi+4]
jnz	short loc_43C7AC
test	esi, esi
jz	short loc_43C7AA
mov	ecx, esi
call	sub_43C7B0
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_43C7AA:
xor	eax, eax

loc_43C7AC:
pop	esi
retn	4
sub_43C78B endp



; Attributes: bp-based frame

sub_43C7B0 proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4497B5
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
lea	edi, [esi+44h]
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44CA6C
mov	ecx, edi
mov	byte ptr [ebp+var_4], 3
call	sub_428327
mov	ecx, edi
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE
lea	edi, [esi+30h]
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44C5D0
mov	ecx, edi
mov	byte ptr [ebp+var_4], 4
call	sub_428327
mov	ecx, edi
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
lea	edi, [esi+1Ch]
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44CA74
mov	ecx, edi
mov	byte ptr [ebp+var_4], 5
call	sub_428327
and	byte ptr [ebp+var_4], 0
mov	ecx, edi
call	sub_4282FE
add	esi, 8
mov	[ebp+var_14], esi
mov	dword ptr [esi], offset	off_44CA7C
mov	ecx, esi
mov	[ebp+var_4], 6
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_43C7B0 endp



; Attributes: bp-based frame

sub_43C860 proc	near

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

mov	eax, offset loc_4497C0
call	__EH_prolog
push	ecx
and	[ebp+var_4], 0
push	ebx
push	esi
mov	esi, [ebp+arg_0]
push	edi
mov	edi, [esi+1Ch]
mov	[ebp+var_10], esp
test	edi, edi
jz	short loc_43C891
mov	ecx, edi
call	sub_43C409
push	edi		; Memory
call	sub_4284D8
and	dword ptr [esi+1Ch], 0
pop	ecx

loc_43C891:
push	[ebp+arg_4]
lea	eax, [esi+94h]
lea	ecx, [esi+20h]
push	eax
push	dword ptr [esi+14h]
call	sub_436E2D
test	eax, eax
jnz	short loc_43C8BE
mov	ecx, esi
call	sub_43C90D
jmp	short loc_43C8BE

loc_43C8B3:
mov	eax, offset loc_43C8B9
retn

loc_43C8B9:
mov	eax, 8007000Eh

loc_43C8BE:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	8
sub_43C860 endp



; Attributes: bp-based frame

sub_43C8CF proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_4497CC
call	__EH_prolog
push	ecx
mov	eax, [ebp+arg_0]
and	[ebp+var_4], 0
push	ebx
push	esi
push	edi
lea	ecx, [eax+20h]
mov	[ebp+var_10], esp
call	sub_4363D9
jmp	short loc_43C8FC

loc_43C8F1:
mov	eax, offset loc_43C8F7
retn

loc_43C8F7:
mov	eax, 8007000Eh

loc_43C8FC:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	4
sub_43C8CF endp



; Attributes: bp-based frame

sub_43C90D proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset unknown_libname_43 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
cmp	dword ptr [esi+1Ch], 0
jz	short loc_43C925
xor	eax, eax
jmp	short loc_43C962

loc_43C925:
push	edi
push	68h		; Size
call	sub_4284B1
mov	edi, eax
pop	ecx
mov	[ebp+var_10], edi
and	[ebp+var_4], 0
test	edi, edi
jz	short loc_43C946
mov	ecx, edi
call	sub_43C96F
mov	ecx, edi
jmp	short loc_43C948

loc_43C946:
xor	ecx, ecx

loc_43C948:
or	[ebp+var_4], 0FFFFFFFFh
mov	[esi+1Ch], ecx
mov	eax, [esi+28h]
mov	edx, [esi+2Ch]
push	0
mov	eax, [edx+eax*4-4]
push	eax
call	sub_43F943
pop	edi

loc_43C962:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_43C90D endp




sub_43C96F proc	near
push	esi
mov	esi, ecx
call	sub_43C9A9
push	4
xor	eax, eax
pop	ecx
mov	[esi+10h], eax
mov	[esi+18h], eax
mov	[esi+1Ch], eax
mov	[esi+20h], eax
mov	[esi+24h], ecx
mov	dword ptr [esi+14h], offset off_44CA40
mov	[esi+2Ch], eax
mov	[esi+30h], eax
mov	[esi+34h], eax
mov	[esi+38h], ecx
mov	dword ptr [esi+28h], offset off_44CA48
mov	eax, esi
pop	esi
retn
sub_43C96F endp




sub_43C9A9 proc	near
push	esi
mov	esi, ecx
xor	eax, eax
push	3
lea	ecx, [esi+4]
mov	[ecx], eax
mov	[ecx+4], eax
mov	[ecx+8], eax
call	sub_403396
mov	eax, esi
pop	esi
retn
sub_43C9A9 endp



; Attributes: bp-based frame

sub_43C9C4 proc	near

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

mov	eax, offset loc_4497F4
call	__EH_prolog
push	ecx
and	[ebp+var_4], 0
push	ebx
push	esi
push	edi
mov	edi, [ebp+arg_0]
mov	[ebp+var_10], esp
mov	ecx, edi
call	sub_43C90D
test	eax, eax
jnz	short loc_43CA44
push	50h		; Size
call	sub_4284B1
test	eax, eax
pop	ecx
jz	short loc_43C9FE
mov	ecx, eax
call	sub_43B43A
mov	esi, eax
jmp	short loc_43CA00

loc_43C9FE:
xor	esi, esi

loc_43CA00:
test	esi, esi
mov	[ebp+arg_0], esi
jz	short loc_43CA0D
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]

loc_43CA0D:
mov	eax, [edi+1Ch]
push	0
lea	ecx, [esi+2Ch]
mov	byte ptr [ebp+var_4], 1
mov	[esi+24h], eax
mov	[esi+28h], eax
call	sub_43D0DB
push	edi
lea	ecx, [esi+30h]
call	sub_43D0DB
mov	eax, [ebp+arg_4]
mov	[esi+34h], edi
mov	[eax], esi
xor	eax, eax
jmp	short loc_43CA44

loc_43CA39:
mov	eax, offset loc_43CA3F
retn

loc_43CA3F:
mov	eax, 8007000Eh

loc_43CA44:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	8
sub_43C9C4 endp



; Attributes: bp-based frame

sub_43CA55 proc	near

var_34=	dword ptr -34h
Memory=	dword ptr -20h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_44982A
call	__EH_prolog
sub	esp, 28h
push	ebx
push	esi
push	edi
xor	ebx, ebx
mov	[ebp+var_10], esp
push	0F8h		; Size
mov	[ebp+var_4], ebx
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_14], ecx
cmp	ecx, ebx
mov	byte ptr [ebp+var_4], 1
jz	short loc_43CA8E
call	sub_43BDED
mov	esi, eax
jmp	short loc_43CA90

loc_43CA8E:
xor	esi, esi

loc_43CA90:
cmp	esi, ebx
mov	byte ptr [ebp+var_4], bl
mov	[ebp+var_14], esi
jz	short loc_43CAA0
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]

loc_43CAA0:
mov	eax, [ebp+arg_4]
push	[ebp+arg_C]
mov	[esi+30h], eax
mov	eax, [ebp+arg_8]
mov	[esi+0E8h], ebx
mov	[esi+0E0h], ebx
mov	[esi+0D8h], ebx
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 2
mov	[esi+0BBh], bl
mov	[esi+34h], eax
mov	[esi+0ECh], ebx
mov	[esi+0E4h], ebx
mov	[esi+0DCh], ebx
mov	[esi+0F0h], ebx
call	sub_403091
push	4
lea	ecx, [ebp+var_34]
call	sub_402794
mov	[ebp+var_34], offset off_44B510
mov	edi, [ebp+arg_0]
cmp	[ebp+arg_10], ebx
push	0FFFFFFFFh
push	0FFFFFFFFh
mov	eax, [edi+28h]
mov	ecx, [edi+2Ch]
mov	byte ptr [ebp+var_4], 4
mov	eax, [ecx+eax*4-4]
lea	ecx, [ebp+var_34]
push	ecx
lea	ecx, [ebp+Memory]
push	ecx
push	ebx
setnz	cl
push	ecx
push	ebx
push	[ebp+arg_14]
mov	ecx, esi
push	eax
push	ebx
call	sub_43101A
mov	[ebp+var_34], offset off_44B510
lea	ecx, [ebp+var_34]
mov	byte ptr [ebp+var_4], 5
call	sub_428327
lea	ecx, [ebp+var_34]
mov	byte ptr [ebp+var_4], 3
call	sub_4282FE
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 2
call	sub_4284D8
cmp	[edi+28h], ebx
pop	ecx
jnz	short loc_43CB63
xor	eax, eax
jmp	short loc_43CB6F

loc_43CB63:
mov	eax, [edi+28h]
mov	ecx, [edi+2Ch]
mov	eax, [ecx+eax*4-4]
mov	eax, [eax]

loc_43CB6F:
mov	ecx, [eax]
push	esi
push	[ebp+arg_10]
push	0FFFFFFFFh
push	ebx
push	eax
call	dword ptr [ecx+1Ch]
cmp	esi, ebx
mov	edi, eax
mov	byte ptr [ebp+var_4], bl
jz	short loc_43CB8B
mov	eax, [esi]
push	esi
call	dword ptr [eax+8]

loc_43CB8B:
mov	eax, edi
jmp	short loc_43CB9A

loc_43CB8F:
mov	eax, offset loc_43CB95
retn

loc_43CB95:
mov	eax, 8007000Eh

loc_43CB9A:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	18h
sub_43CA55 endp



; Attributes: bp-based frame

sub_43CBAB proc	near

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

mov	eax, offset loc_449834
call	__EH_prolog
push	ecx
mov	eax, [ebp+arg_0]
and	[ebp+var_4], 0
push	ebx
push	esi
cmp	dword ptr [eax+28h], 0
push	edi
mov	[ebp+var_10], esp
jnz	short loc_43CBCD
xor	eax, eax
jmp	short loc_43CBD9

loc_43CBCD:
mov	ecx, [eax+28h]
mov	eax, [eax+2Ch]
mov	eax, [eax+ecx*4-4]
mov	eax, [eax]

loc_43CBD9:
push	[ebp+arg_4]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+24h]
jmp	short loc_43CBEF

loc_43CBE4:
mov	eax, offset loc_43CBEA
retn

loc_43CBEA:
mov	eax, 8007000Eh

loc_43CBEF:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	8
sub_43CBAB endp



; Attributes: bp-based frame

sub_43CC00 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_449840
call	__EH_prolog
push	ecx
mov	eax, [ebp+arg_0]
and	[ebp+var_4], 0
push	ebx
push	esi
cmp	dword ptr [eax+28h], 0
push	edi
mov	[ebp+var_10], esp
jnz	short loc_43CC22
xor	eax, eax
jmp	short loc_43CC2E

loc_43CC22:
mov	ecx, [eax+28h]
mov	eax, [eax+2Ch]
mov	eax, [eax+ecx*4-4]
mov	eax, [eax]

loc_43CC2E:
push	[ebp+arg_10]
mov	esi, [ebp+arg_C]
mov	ecx, [eax]
push	esi
push	[ebp+arg_8]
push	[ebp+arg_4]
push	eax
call	dword ptr [ecx+28h]
test	eax, eax
jnz	short loc_43CC5F
cmp	dword ptr [esi], 3
jnz	short loc_43CC50
mov	dword ptr [esi], 4

loc_43CC50:
xor	eax, eax
jmp	short loc_43CC5F

loc_43CC54:
mov	eax, offset loc_43CC5A
retn

loc_43CC5A:
mov	eax, 8007000Eh

loc_43CC5F:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	14h
sub_43CC00 endp




sub_43CC70 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [esp+arg_0]
mov	ecx, [esp+arg_4]
mov	eax, [eax+24h]
mov	[ecx], eax
xor	eax, eax
retn	8
sub_43CC70 endp



; Attributes: bp-based frame

sub_43CC82 proc	near

pvarg= VARIANTARG ptr -2Ch
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_44985C
call	__EH_prolog
sub	esp, 20h
push	ebx
push	esi
push	edi
xor	ebx, ebx
mov	[ebp+var_10], esp
mov	[ebp+var_4], ebx
mov	word ptr [ebp+pvarg.anonymous_0], bx
mov	word ptr [ebp+pvarg.anonymous_0+2], bx
mov	ecx, [ebp+arg_0]
mov	edx, [ebp+arg_4]
cmp	[ebp+arg_8], 3
mov	byte ptr [ebp+var_4], 1
mov	eax, [ecx+28h]
mov	eax, [eax+edx*4]
jz	short loc_43CD07
cmp	[ebp+arg_8], 14h
jz	short loc_43CCDD
push	[ebp+arg_C]
mov	eax, [eax]
push	[ebp+arg_8]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+20h]
lea	ecx, [ebp+pvarg] ; pvarg
mov	esi, eax
mov	byte ptr [ebp+var_4], bl
call	sub_42CDE1
mov	eax, esi
jmp	short loc_43CD37

loc_43CCDD:
push	eax
lea	eax, [ebp+Memory]
push	eax
add	ecx, 0FFFFFFFCh
call	sub_43CD48
push	dword ptr [eax]	; psz
lea	ecx, [ebp+pvarg]
mov	byte ptr [ebp+var_4], 2
call	sub_42CC9E
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
pop	ecx
jmp	short loc_43CD12

loc_43CD07:		; psz
push	dword ptr [eax+4]
lea	ecx, [ebp+pvarg]
call	sub_42CC9E

loc_43CD12:		; pvarg
push	[ebp+arg_C]
lea	ecx, [ebp+pvarg] ; Src
call	sub_42CE85
lea	ecx, [ebp+pvarg] ; pvarg
mov	byte ptr [ebp+var_4], bl
call	sub_42CDE1
xor	eax, eax
jmp	short loc_43CD37

loc_43CD2C:
mov	eax, offset loc_43CD32
retn

loc_43CD32:
mov	eax, 8007000Eh

loc_43CD37:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	10h
sub_43CC82 endp



; Attributes: bp-based frame

sub_43CD48 proc	near

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

push	ebp
mov	ebp, esp
push	ecx
mov	eax, [ecx+14h]
mov	ecx, [ebp+arg_4]
and	[ebp+var_4], 0
mov	ecx, [ecx+1Ch]
mov	eax, [eax+50h]
mov	eax, [eax+ecx*4]
mov	ecx, [ebp+arg_0]
add	eax, 24h
push	eax
call	sub_4030F2
mov	eax, [ebp+arg_0]
leave
retn	8
sub_43CD48 endp




sub_43CD72 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8
arg_8= dword ptr  0Ch

mov	eax, [esp+arg_0]
mov	ecx, [esp+arg_4]
push	[esp+arg_8]
mov	eax, [eax+28h]
mov	eax, [eax+ecx*4]
mov	eax, [eax]
push	eax
mov	ecx, [eax]
call	dword ptr [ecx+2Ch]
retn	0Ch
sub_43CD72 endp



; Attributes: bp-based frame

sub_43CD8F proc	near

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
mov	eax, [ebp+arg_0]
push	[ebp+arg_14]
mov	ecx, [ebp+arg_4]
mov	eax, [eax+28h]
push	[ebp+arg_10]
mov	eax, [eax+ecx*4]
push	[ebp+arg_C]
mov	eax, [eax]
push	[ebp+arg_8]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+30h]
pop	ebp
retn	18h
sub_43CD8F endp




sub_43CDB6 proc	near

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

mov	eax, [esp+arg_0]
mov	ecx, [esp+arg_4]
push	[esp+arg_C]
mov	eax, [eax+28h]
push	[esp+4+arg_8]
lea	eax, [eax+ecx*4]
mov	ecx, [eax]
mov	eax, [eax-4]
mov	eax, [eax]
push	dword ptr [ecx+20h]
mov	edx, [eax]
push	eax
call	dword ptr [edx+18h]
retn	10h
sub_43CDB6 endp




sub_43CDDF proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8
arg_8= dword ptr  0Ch

mov	eax, [esp+arg_0]
mov	ecx, [esp+arg_4]
push	[esp+arg_8]
mov	eax, [eax+28h]
mov	eax, [eax+ecx*4-4]
mov	eax, [eax]
push	eax
mov	ecx, [eax]
call	dword ptr [ecx+24h]
retn	0Ch
sub_43CDDF endp



; Attributes: bp-based frame

sub_43CDFD proc	near

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
mov	eax, [ebp+arg_0]
push	[ebp+arg_14]
mov	ecx, [ebp+arg_4]
mov	eax, [eax+28h]
push	[ebp+arg_10]
mov	eax, [eax+ecx*4-4]
push	[ebp+arg_C]
mov	eax, [eax]
push	[ebp+arg_8]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+28h]
pop	ebp
retn	18h
sub_43CDFD endp



; Attributes: bp-based frame

sub_43CE25 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_449870
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44CA7C
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_43CE25 endp



; Attributes: bp-based frame

sub_43CE5D proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ebx
mov	ebx, ecx
mov	ecx, [ebp+arg_4]
push	edi
mov	edi, [ebp+arg_0]
mov	eax, [ebx+8]
add	ecx, edi
cmp	ecx, eax
jle	short loc_43CE79
sub	eax, edi
mov	[ebp+arg_4], eax

loc_43CE79:
mov	eax, [ebp+arg_4]
test	eax, eax
jle	short loc_43CEAD
push	esi
mov	esi, edi
shl	esi, 2
mov	[ebp+arg_0], eax

loc_43CE89:
mov	eax, [ebx+0Ch]
mov	ecx, [eax+esi]
test	ecx, ecx
mov	[ebp+Memory], ecx
jz	short loc_43CEA4
call	sub_434E61
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_43CEA4:
add	esi, 4
dec	[ebp+arg_0]
jnz	short loc_43CE89
pop	esi

loc_43CEAD:
push	[ebp+arg_4]
mov	ecx, ebx
push	edi
call	sub_42847F
pop	edi
pop	ebx
leave
retn	8
sub_43CE5D endp



; Attributes: bp-based frame

sub_43CEBE proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_449884
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44CA74
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_43CEBE endp



; Attributes: bp-based frame

sub_43CEF6 proc	near

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

push	ebp
mov	ebp, esp
push	ecx
mov	eax, [ecx+8]
push	ebx
mov	ebx, [ebp+arg_4]
push	esi
mov	esi, [ebp+arg_0]
mov	[ebp+var_4], ecx
lea	ecx, [esi+ebx]
cmp	ecx, eax
jle	short loc_43CF13
sub	eax, esi
mov	ebx, eax

loc_43CF13:
test	ebx, ebx
jle	short loc_43CF38
push	edi
mov	edi, esi
shl	edi, 2
mov	[ebp+arg_0], ebx

loc_43CF20:
mov	eax, [ebp+var_4]
mov	eax, [eax+0Ch]
push	dword ptr [eax+edi] ; Memory
call	sub_4284D8
add	edi, 4
dec	[ebp+arg_0]
pop	ecx
jnz	short loc_43CF20
pop	edi

loc_43CF38:
mov	ecx, [ebp+var_4]
push	ebx
push	esi
call	sub_42847F
pop	esi
pop	ebx
leave
retn	8
sub_43CEF6 endp



; Attributes: bp-based frame

sub_43CF48 proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ebx
mov	ebx, ecx
mov	ecx, [ebp+arg_4]
push	edi
mov	edi, [ebp+arg_0]
mov	eax, [ebx+8]
add	ecx, edi
cmp	ecx, eax
jle	short loc_43CF64
sub	eax, edi
mov	[ebp+arg_4], eax

loc_43CF64:
mov	eax, [ebp+arg_4]
test	eax, eax
jle	short loc_43CF98
push	esi
mov	esi, edi
shl	esi, 2
mov	[ebp+arg_0], eax

loc_43CF74:
mov	eax, [ebx+0Ch]
mov	ecx, [eax+esi]
test	ecx, ecx
mov	[ebp+Memory], ecx
jz	short loc_43CF8F
call	sub_434A93
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_43CF8F:
add	esi, 4
dec	[ebp+arg_0]
jnz	short loc_43CF74
pop	esi

loc_43CF98:
push	[ebp+arg_4]
mov	ecx, ebx
push	edi
call	sub_42847F
pop	edi
pop	ebx
leave
retn	8
sub_43CF48 endp



; Attributes: bp-based frame

sub_43CFA9 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_449898
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44CA38
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_43CFA9 endp



; Attributes: bp-based frame

sub_43CFE1 proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ebx
mov	ebx, ecx
mov	ecx, [ebp+arg_4]
push	edi
mov	edi, [ebp+arg_0]
mov	eax, [ebx+8]
add	ecx, edi
cmp	ecx, eax
jle	short loc_43CFFD
sub	eax, edi
mov	[ebp+arg_4], eax

loc_43CFFD:
mov	eax, [ebp+arg_4]
test	eax, eax
jle	short loc_43D031
push	esi
mov	esi, edi
shl	esi, 2
mov	[ebp+arg_0], eax

loc_43D00D:
mov	eax, [ebx+0Ch]
mov	ecx, [eax+esi]
test	ecx, ecx
mov	[ebp+Memory], ecx
jz	short loc_43D028
call	sub_4368E3
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_43D028:
add	esi, 4
dec	[ebp+arg_0]
jnz	short loc_43D00D
pop	esi

loc_43D031:
push	[ebp+arg_4]
mov	ecx, ebx
push	edi
call	sub_42847F
pop	edi
pop	ebx
leave
retn	8
sub_43CFE1 endp



; Attributes: bp-based frame

sub_43D042 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4498AC
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44CA40
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_43D042 endp



; Attributes: bp-based frame

sub_43D07A proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ebx
mov	ebx, ecx
mov	ecx, [ebp+arg_4]
push	edi
mov	edi, [ebp+arg_0]
mov	eax, [ebx+8]
add	ecx, edi
cmp	ecx, eax
jle	short loc_43D096
sub	eax, edi
mov	[ebp+arg_4], eax

loc_43D096:
mov	eax, [ebp+arg_4]
test	eax, eax
jle	short loc_43D0CA
push	esi
mov	esi, edi
shl	esi, 2
mov	[ebp+arg_0], eax

loc_43D0A6:
mov	eax, [ebx+0Ch]
mov	ecx, [eax+esi]
test	ecx, ecx
mov	[ebp+Memory], ecx
jz	short loc_43D0C1
call	sub_43C409
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_43D0C1:
add	esi, 4
dec	[ebp+arg_0]
jnz	short loc_43D0A6
pop	esi

loc_43D0CA:
push	[ebp+arg_4]
mov	ecx, ebx
push	edi
call	sub_42847F
pop	edi
pop	ebx
leave
retn	8
sub_43D07A endp




sub_43D0DB proc	near

arg_0= dword ptr  4

push	esi
push	edi
mov	edi, [esp+8+arg_0]
mov	esi, ecx
test	edi, edi
jz	short loc_43D0ED
mov	eax, [edi]
push	edi
call	dword ptr [eax+4]

loc_43D0ED:
mov	eax, [esi]
test	eax, eax
jz	short loc_43D0F9
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43D0F9:
mov	[esi], edi
mov	eax, edi
pop	edi
pop	esi
retn	4
sub_43D0DB endp




sub_43D102 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	esi
mov	esi, ecx
call	sub_428350
mov	eax, [esi+8]
mov	ecx, [esi+0Ch]
mov	edx, [esp+4+arg_0]
mov	[ecx+eax*8], edx
mov	edx, [esp+4+arg_4]
mov	[ecx+eax*8+4], edx
mov	eax, [esi+8]
lea	ecx, [eax+1]
mov	[esi+8], ecx
pop	esi
retn	8
sub_43D102 endp



; Attributes: bp-based frame

sub_43D12C proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4498C0
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44C9B0
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_43D12C endp



; Attributes: bp-based frame

sub_43D164 proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ebx
mov	ebx, ecx
mov	ecx, [ebp+arg_4]
push	edi
mov	edi, [ebp+arg_0]
mov	eax, [ebx+8]
add	ecx, edi
cmp	ecx, eax
jle	short loc_43D180
sub	eax, edi
mov	[ebp+arg_4], eax

loc_43D180:
mov	eax, [ebp+arg_4]
test	eax, eax
jle	short loc_43D1B4
push	esi
mov	esi, edi
shl	esi, 2
mov	[ebp+arg_0], eax

loc_43D190:
mov	eax, [ebx+0Ch]
mov	ecx, [eax+esi]	; pvarg
test	ecx, ecx
mov	[ebp+Memory], ecx
jz	short loc_43D1AB
call	sub_42CDE1
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_43D1AB:
add	esi, 4
dec	[ebp+arg_0]
jnz	short loc_43D190
pop	esi

loc_43D1B4:
push	[ebp+arg_4]
mov	ecx, ebx
push	edi
call	sub_42847F
pop	edi
pop	ebx
leave
retn	8
sub_43D164 endp




; int __thiscall sub_43D1C5(void *Memory, char)
sub_43D1C5 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_43CE25
test	[esp+4+arg_0], 1
jz	short loc_43D1DB
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_43D1DB:
mov	eax, esi
pop	esi
retn	4
sub_43D1C5 endp




; int __thiscall sub_43D1E1(void *Memory, char)
sub_43D1E1 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_43CEBE
test	[esp+4+arg_0], 1
jz	short loc_43D1F7
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_43D1F7:
mov	eax, esi
pop	esi
retn	4
sub_43D1E1 endp




; int __thiscall sub_43D1FD(void *Memory, char)
sub_43D1FD proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_43D219
test	[esp+4+arg_0], 1
jz	short loc_43D213
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_43D213:
mov	eax, esi
pop	esi
retn	4
sub_43D1FD endp



; Attributes: bp-based frame

sub_43D219 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4498D4
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44CA6C
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_43D219 endp




; int __thiscall sub_43D251(void *Memory, char)
sub_43D251 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_43CFA9
test	[esp+4+arg_0], 1
jz	short loc_43D267
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_43D267:
mov	eax, esi
pop	esi
retn	4
sub_43D251 endp




; int __thiscall sub_43D26D(void *Memory, char)
sub_43D26D proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_43D042
test	[esp+4+arg_0], 1
jz	short loc_43D283
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_43D283:
mov	eax, esi
pop	esi
retn	4
sub_43D26D endp




; int __thiscall sub_43D289(void *Memory, char)
sub_43D289 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_43D2A5
test	[esp+4+arg_0], 1
jz	short loc_43D29F
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_43D29F:
mov	eax, esi
pop	esi
retn	4
sub_43D289 endp



; Attributes: bp-based frame

sub_43D2A5 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_4498E8
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44CA48
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_43D2A5 endp




; int __thiscall sub_43D2DD(void *Memory, char)
sub_43D2DD proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_43D12C
test	[esp+4+arg_0], 1
jz	short loc_43D2F3
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_43D2F3:
mov	eax, esi
pop	esi
retn	4
sub_43D2DD endp




sub_43D2F9 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_43B4CD
sub_43D2F9 endp




sub_43D303 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_43B5FA
sub_43D303 endp




sub_43D30D proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_43B607
sub_43D30D endp




sub_43D317 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 8
jmp	sub_43B4CD
sub_43D317 endp




sub_43D321 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 8
jmp	sub_43B5FA
sub_43D321 endp




sub_43D32B proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 8
jmp	sub_43B607
sub_43D32B endp




sub_43D335 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 0Ch
jmp	sub_43B4CD
sub_43D335 endp




sub_43D33F proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 0Ch
jmp	sub_43B5FA
sub_43D33F endp




sub_43D349 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 0Ch
jmp	sub_43B607
sub_43D349 endp




sub_43D353 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 10h
jmp	sub_43B4CD
sub_43D353 endp




sub_43D35D proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 10h
jmp	sub_43B5FA
sub_43D35D endp




sub_43D367 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 10h
jmp	sub_43B607
sub_43D367 endp




sub_43D371 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 14h
jmp	sub_43B4CD
sub_43D371 endp




sub_43D37B proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 14h
jmp	sub_43B5FA
sub_43D37B endp




sub_43D385 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 14h
jmp	sub_43B607
sub_43D385 endp




sub_43D38F proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 18h
jmp	sub_43B4CD
sub_43D38F endp




sub_43D399 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 18h
jmp	sub_43B5FA
sub_43D399 endp




sub_43D3A3 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 18h
jmp	sub_43B607
sub_43D3A3 endp




sub_43D3AD proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 1Ch
jmp	sub_43B4CD
sub_43D3AD endp




sub_43D3B7 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 1Ch
jmp	sub_43B5FA
sub_43D3B7 endp




sub_43D3C1 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 1Ch
jmp	sub_43B607
sub_43D3C1 endp




sub_43D3CB proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_43C22A
sub_43D3CB endp




sub_43D3D5 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_43C2DA
sub_43D3D5 endp




sub_43D3DF proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 8
jmp	sub_43C22A
sub_43D3DF endp




sub_43D3E9 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 8
jmp	sub_43C2DA
sub_43D3E9 endp




sub_43D3F3 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 0Ch
jmp	sub_43C22A
sub_43D3F3 endp




sub_43D3FD proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 0Ch
jmp	sub_43C2DA
sub_43D3FD endp




sub_43D407 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_43BF03
sub_43D407 endp




sub_43D411 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_43BF78
sub_43D411 endp




sub_43D41B proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 8
jmp	sub_43BF03
sub_43D41B endp




sub_43D425 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 8
jmp	sub_43BF78
sub_43D425 endp



; Attributes: bp-based frame

sub_43D42F proc	near

var_48=	dword ptr -48h
var_40=	dword ptr -40h
var_3C=	dword ptr -3Ch
pvarg= VARIANTARG ptr -34h
Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_449934
call	__EH_prolog
sub	esp, 3Ch
push	ebx
push	esi
push	edi
mov	edi, [ebp+arg_0]
mov	esi, [ebp+arg_4]
xor	ebx, ebx
lea	eax, [edi+7Ch]
cmp	esi, ebx
mov	[ebp+var_14], eax
mov	[eax+4], ebx
mov	eax, [eax]
mov	[eax], bx
jnz	short loc_43D464
mov	[edi+88h], ebx
jmp	loc_43D627

loc_43D464:
mov	eax, [esi]
push	esi
mov	[ebp+var_18], esi
call	dword ptr [eax+4]
mov	[ebp+var_4], ebx
mov	[ebp+arg_4], ebx
mov	eax, [esi]
lea	ecx, [ebp+arg_4]
push	ecx
push	offset unk_44B5C0
push	esi
mov	byte ptr [ebp+var_4], 1
call	dword ptr [eax]
cmp	eax, ebx
mov	[ebp+arg_0], eax
jz	short loc_43D4A1
mov	eax, [ebp+arg_4]
mov	byte ptr [ebp+var_4], bl
cmp	eax, ebx
jz	short loc_43D49C
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43D49C:
mov	edi, [ebp+arg_0]
jmp	short loc_43D4C7

loc_43D4A1:
mov	eax, [ebp+arg_4]
add	edi, 88h
push	edi
push	eax
mov	ecx, [eax]
call	dword ptr [ecx+0Ch]
mov	edi, eax
mov	eax, [ebp+arg_4]
cmp	edi, ebx
mov	byte ptr [ebp+var_4], bl
jz	short loc_43D4D8
cmp	eax, ebx
jz	short loc_43D4C7
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43D4C7:
mov	eax, [esi]
or	[ebp+var_4], 0FFFFFFFFh
push	esi
call	dword ptr [eax+8]
mov	eax, edi
jmp	loc_43D629

loc_43D4D8:
cmp	eax, ebx
jz	short loc_43D4E2
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43D4E2:
mov	eax, [esi]
or	[ebp+var_4], 0FFFFFFFFh
push	esi
call	dword ptr [eax+8]
lea	ecx, [ebp+var_48]
call	sub_40337B
mov	edi, offset off_44B510
mov	[ebp+var_48], edi
lea	ecx, [ebp+var_48]
mov	[ebp+var_4], 2
call	sub_428327
mov	eax, [esi]
push	esi
mov	[ebp+var_10], esi
call	dword ptr [eax+4]
mov	eax, [ebp+var_10]
mov	byte ptr [ebp+var_4], 3
cmp	eax, ebx
jz	loc_43D5D3
mov	[ebp+arg_0], ebx
mov	byte ptr [ebp+var_4], 4

loc_43D52A:
mov	ecx, [eax]
lea	edx, [ebp+arg_0]
push	edx
push	eax
call	dword ptr [ecx+20h]
mov	eax, [ebp+arg_0]
cmp	eax, ebx
jz	loc_43D5C5
mov	word ptr [ebp+pvarg.anonymous_0], bx
mov	word ptr [ebp+pvarg.anonymous_0+2], bx
mov	eax, [ebp+var_10]
lea	edx, [ebp+pvarg]
push	edx
push	4
mov	ecx, [eax]
push	eax
mov	byte ptr [ebp+var_4], 5
call	dword ptr [ecx+2Ch]
test	eax, eax
jnz	short loc_43D58E
cmp	word ptr [ebp+pvarg.anonymous_0], 8
jnz	short loc_43D58E
push	dword ptr [ebp+pvarg.anonymous_0+8]
lea	ecx, [ebp+Memory]
call	sub_403091
lea	eax, [ebp+Memory]
lea	ecx, [ebp+var_48]
push	eax
push	ebx
mov	byte ptr [ebp+var_4], 6
call	sub_4140D0
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 5
call	sub_4284D8
pop	ecx

loc_43D58E:
push	[ebp+arg_0]
lea	ecx, [ebp+var_10]
call	sub_43D0DB
lea	ecx, [ebp+pvarg] ; pvarg
mov	byte ptr [ebp+var_4], 4
call	sub_42CDE1
mov	eax, [ebp+arg_0]
mov	byte ptr [ebp+var_4], 3
cmp	eax, ebx
jz	short loc_43D5B6
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43D5B6:
mov	[ebp+arg_0], ebx
mov	eax, [ebp+var_10]
mov	byte ptr [ebp+var_4], 4
jmp	loc_43D52A

loc_43D5C5:
cmp	eax, ebx
mov	byte ptr [ebp+var_4], 3
jz	short loc_43D5D3
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43D5D3:
xor	esi, esi
cmp	[ebp+var_40], ebx
jle	short loc_43D5F8

loc_43D5DA:
mov	eax, [ebp+var_3C]
mov	ecx, [ebp+var_14]
push	dword ptr [eax+esi*4]
call	sub_4031F2
mov	ecx, [ebp+var_14]
push	5Ch
call	sub_40316A
inc	esi
cmp	esi, [ebp+var_40]
jl	short loc_43D5DA

loc_43D5F8:
mov	eax, [ebp+var_10]
mov	byte ptr [ebp+var_4], 2
cmp	eax, ebx
jz	short loc_43D609
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43D609:
mov	[ebp+var_48], edi
lea	ecx, [ebp+var_48]
mov	[ebp+var_4], 7
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_48]
call	sub_4282FE

loc_43D627:
xor	eax, eax

loc_43D629:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_43D42F endp



; Attributes: bp-based frame

sub_43D63A proc	near

Memory=	dword ptr -18h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_449948
call	__EH_prolog
sub	esp, 0Ch
push	ebx
push	esi
mov	esi, [ebp+arg_0]
push	edi
push	[ebp+arg_4]
lea	ecx, [esi+70h]
call	sub_404722
lea	edi, [esi+5Ch]
mov	ecx, edi
call	sub_428327
mov	ebx, [ebp+arg_C]
mov	ecx, edi
push	ebx
call	sub_428378
test	ebx, ebx
jbe	short loc_43D6A0
mov	esi, [ebp+arg_8]

loc_43D674:
push	dword ptr [esi]
lea	ecx, [ebp+Memory]
call	sub_403091
and	[ebp+var_4], 0
lea	eax, [ebp+Memory]
push	eax
mov	ecx, edi
call	sub_4032B4
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
add	esi, 4
dec	ebx
pop	ecx
jnz	short loc_43D674

loc_43D6A0:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
xor	eax, eax
pop	ebx
mov	large fs:0, ecx
leave
retn	10h
sub_43D63A endp




sub_43D6B3 proc	near

arg_0= dword ptr  4

mov	eax, [ecx+4]
mov	edx, [esp+arg_0]
mov	ecx, [ecx+8]
mov	eax, [eax+0Ch]
mov	eax, [eax+edx*4]
mov	edx, [ecx]
mov	eax, [eax+10h]
push	eax
push	ecx
call	dword ptr [edx+18h]
retn	4
sub_43D6B3 endp



; Attributes: bp-based frame

; int __stdcall	sub_43D6D0(void	*, int,	int, int, int, int, int)
sub_43D6D0 proc	near

var_104= byte ptr -104h
var_E8=	byte ptr -0E8h
var_98=	dword ptr -98h
var_94=	dword ptr -94h
var_8C=	dword ptr -8Ch
var_88=	dword ptr -88h
var_80=	dword ptr -80h
var_78=	dword ptr -78h
var_74=	dword ptr -74h
var_6C=	dword ptr -6Ch
var_68=	dword ptr -68h
var_64=	dword ptr -64h
var_60=	dword ptr -60h
lpFileName= dword ptr -5Ch
var_50=	dword ptr -50h
var_48=	dword ptr -48h
var_44=	dword ptr -44h
var_3C=	dword ptr -3Ch
Memory=	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_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

mov	eax, offset loc_449A55
call	__EH_prolog
sub	esp, 0F8h
push	ebx
push	esi
push	edi
mov	edi, [ebp+arg_0]
mov	[ebp+var_10], esp
mov	eax, [edi+20h]
cmp	eax, 1
jle	short loc_43D6FB
mov	eax, 80004001h
jmp	loc_43DD07

loc_43D6FB:
xor	ebx, ebx
xor	ecx, ecx
lea	eax, [ebp+var_104]

loc_43D705:
mov	edx, [ebp+arg_10]
movzx	edx, byte ptr [ecx+edx]
mov	[eax], edx
inc	ecx
add	eax, 4
cmp	ecx, 7
jl	short loc_43D705
lea	ecx, [ebp+var_E8]
call	sub_43E3E2
lea	eax, [edi+70h]
lea	ecx, [ebp+Memory]
push	eax
mov	[ebp+var_4], ebx
call	sub_4030F2
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_42C33B
lea	ecx, [ebp+var_50]
call	sub_40337B
mov	esi, offset off_44B510
mov	[ebp+var_50], esi
push	4
lea	ecx, [ebp+var_94]
mov	byte ptr [ebp+var_4], 2
call	sub_402794
mov	[ebp+var_94], offset off_44CACC
lea	eax, [ebp+var_94]
lea	ecx, [ebp+var_E8]
push	eax
lea	eax, [ebp+var_50]
push	eax
lea	eax, [edi+5Ch]
push	eax
lea	eax, [edi+7Ch]
push	eax
lea	eax, [ebp+Memory]
push	eax
mov	byte ptr [ebp+var_4], 3
call	sub_4338DB
cmp	[ebp+var_8C], ebx
jle	short loc_43D7D6
mov	eax, [ebp+var_88]
lea	ecx, [ebp+var_94]
mov	byte ptr [ebp+var_4], 2
mov	edi, [eax]
call	sub_4282FE
mov	[ebp+var_50], esi
lea	ecx, [ebp+var_50]
mov	byte ptr [ebp+var_4], 4
call	sub_428327
lea	ecx, [ebp+var_50]
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
jmp	loc_43DF1E

loc_43D7D6:
lea	ecx, [ebp+var_94]
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE
mov	[ebp+var_50], esi
lea	ecx, [ebp+var_50]
mov	byte ptr [ebp+var_4], 5
call	sub_428327
lea	ecx, [ebp+var_50]
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	[ebp+arg_10], ebx
cmp	[edi+20h], ebx
lea	esi, [edi-8]
mov	byte ptr [ebp+var_4], 6
jz	short loc_43D86A
mov	eax, [esi+28h]
mov	ecx, [esi+2Ch]
mov	eax, [ecx+eax*4-4]
cmp	[eax], ebx
jz	short loc_43D86A
cmp	[esi+28h], ebx
jnz	short loc_43D82F
xor	eax, eax
jmp	short loc_43D83B

loc_43D82F:
mov	eax, [esi+28h]
mov	ecx, [esi+2Ch]
mov	eax, [ecx+eax*4-4]
mov	eax, [eax]

loc_43D83B:
mov	ecx, [eax]
lea	edx, [ebp+arg_10]
push	edx
push	offset unk_44B740
push	eax
call	dword ptr [ecx]
mov	edi, eax
cmp	edi, ebx
jz	loc_43D8F1

loc_43D853:
mov	eax, [ebp+arg_10]
mov	byte ptr [ebp+var_4], bl
cmp	eax, ebx
jz	short loc_43D863
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43D863:
mov	esi, edi
jmp	loc_43DCF6

loc_43D86A:
cmp	[ebp+arg_8], ebx
jl	loc_43DCF1
mov	ecx, [ebp+arg_4]
lea	eax, [ebp+arg_10]
push	eax
push	[ebp+arg_8]
call	sub_43E11B
mov	edi, eax
cmp	edi, ebx
jnz	short loc_43D853
mov	[ebp+arg_8], ebx
mov	eax, [ebp+arg_10]
lea	edx, [ebp+arg_8]
push	edx
push	offset unk_44B6E0
mov	ecx, [eax]
push	eax
mov	byte ptr [ebp+var_4], 7
call	dword ptr [ecx]
mov	eax, [ebp+arg_8]
cmp	eax, ebx
jz	short loc_43D8E3
push	[ebp+arg_4]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+0Ch]
mov	edi, eax
cmp	edi, ebx
jz	short loc_43D8E0
mov	eax, [ebp+arg_8]
mov	byte ptr [ebp+var_4], 6
cmp	eax, ebx
jz	short loc_43D8C7
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43D8C7:
mov	eax, [ebp+arg_10]
mov	byte ptr [ebp+var_4], bl
cmp	eax, ebx
jz	loc_43DF1E
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
jmp	loc_43DF1E

loc_43D8E0:
mov	eax, [ebp+arg_8]

loc_43D8E3:
cmp	eax, ebx
mov	byte ptr [ebp+var_4], 6
jz	short loc_43D8F1
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43D8F1:
mov	eax, [ebp+arg_10]
lea	edx, [ebp+var_98]
push	edx
push	eax
mov	ecx, [eax]
call	dword ptr [ecx+10h]
mov	edi, eax
cmp	edi, ebx
jnz	loc_43D853
mov	eax, [ebp+var_98]
cmp	eax, 2
ja	loc_43DCE1
lea	ecx, [ebp+var_3C]
mov	[ebp+arg_4], eax
call	sub_40337B
mov	edi, offset off_44CAC4
mov	[ebp+var_3C], edi
cmp	[esi+28h], ebx
mov	byte ptr [ebp+var_4], 8
jz	loc_43D9BC
mov	eax, [esi+28h]
mov	ecx, [esi+2Ch]
mov	eax, [ecx+eax*4-4]
cmp	[eax], ebx
jz	short loc_43D9BC
mov	ecx, esi
call	sub_43C90D
cmp	eax, ebx
mov	[ebp+arg_8], eax
jz	short loc_43D989
mov	[ebp+var_3C], edi
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 9
call	sub_428327
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 6
call	sub_4282FE
mov	eax, [ebp+arg_10]
mov	byte ptr [ebp+var_4], bl
cmp	eax, ebx
jz	short loc_43D981
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43D981:
mov	esi, [ebp+arg_8]
jmp	loc_43DCF6

loc_43D989:
push	offset word_45D498
lea	ecx, [ebp+Memory]
call	sub_403091
lea	eax, [ebp+var_3C]
mov	ecx, esi
push	eax
lea	eax, [ebp+Memory]
push	eax
mov	eax, [ebp+arg_0]
mov	byte ptr [ebp+var_4], 0Ah
mov	edx, [eax+14h]
call	sub_43E155
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 8
call	sub_4284D8
pop	ecx

loc_43D9BC:
push	10h
lea	ecx, [ebp+var_80]
call	sub_402794
mov	[ebp+var_80], offset off_44CABC
push	0Ch
lea	ecx, [ebp+var_94]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_402794
mov	[ebp+var_94], offset off_44CAB4
lea	eax, [ebp+var_94]
lea	edx, [ebp+var_3C]
push	eax
lea	ecx, [ebp+var_E8]
push	[ebp+arg_4]
mov	byte ptr [ebp+var_4], 0Ch
call	sub_437E88
mov	edi, [ebp+arg_18]
lea	eax, [ebp+var_3C]
mov	[ebp+var_24], eax
lea	eax, [ebp+Memory]
push	eax
lea	eax, [ebp+var_80]
push	eax
lea	edx, [ebp+var_104]
lea	ecx, [ebp+var_94]
mov	[ebp+var_20], edi
mov	[ebp+Memory], offset off_44CAB0
call	sub_438395
lea	ecx, [ebp+var_94]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_4282FE
mov	ecx, [ebp+var_78]
xor	edx, edx
cmp	ecx, ebx
jle	short loc_43DA56
mov	eax, [ebp+var_74]

loc_43DA4B:
cmp	[eax], bl
jz	short loc_43DA50
inc	edx

loc_43DA50:
add	eax, 10h
dec	ecx
jnz	short loc_43DA4B

loc_43DA56:
cmp	edi, ebx
jz	short loc_43DAAC
mov	eax, [edi]
push	ebx
push	edx
push	edi
call	dword ptr [eax+24h]
cmp	eax, ebx
mov	[ebp+arg_8], eax
jz	short loc_43DAAC
lea	ecx, [ebp+var_80]
mov	byte ptr [ebp+var_4], 8
call	sub_4282FE
mov	[ebp+var_3C], offset off_44CAC4
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 0Dh
call	sub_428327
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 6
call	sub_4282FE
mov	eax, [ebp+arg_10]
mov	byte ptr [ebp+var_4], bl
cmp	eax, ebx
jz	short loc_43DAA4
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43DAA4:
mov	esi, [ebp+arg_8]
jmp	loc_43DCF6

loc_43DAAC:
mov	[ebp+var_68], ebx
mov	[ebp+var_64], ebx
mov	[ebp+var_60], ebx
mov	[ebp+var_6C], offset off_44CA84
push	edi
lea	ecx, [ebp+var_6C]
mov	byte ptr [ebp+var_4], 0Eh
call	sub_440D1D
push	5Ch		; Size
call	sub_4284B1
pop	ecx
mov	[ebp+arg_8], eax
cmp	eax, ebx
mov	byte ptr [ebp+var_4], 0Fh
jz	short loc_43DAE7
mov	ecx, eax
call	sub_437547
mov	edi, eax
jmp	short loc_43DAE9

loc_43DAE7:
xor	edi, edi

loc_43DAE9:
cmp	edi, ebx
mov	byte ptr [ebp+var_4], 0Eh
mov	[ebp+var_18], edi
jz	short loc_43DAFA
mov	eax, [edi]
push	edi
call	dword ptr [eax+4]

loc_43DAFA:
lea	eax, [ebp+var_E8]
mov	byte ptr [ebp+var_4], 10h
mov	[edi+48h], eax
lea	eax, [ebp+var_3C]
mov	[edi+4Ch], eax
lea	eax, [ebp+var_80]
mov	[edi+50h], eax
cmp	[esi+28h], ebx
jnz	short loc_43DB1C
xor	eax, eax
jmp	short loc_43DB28

loc_43DB1C:
mov	eax, [esi+28h]
mov	ecx, [esi+2Ch]
mov	eax, [ecx+eax*4-4]
mov	eax, [eax]

loc_43DB28:
push	eax
lea	ecx, [edi+58h]
call	sub_43D0DB
lea	eax, [ebp+var_6C]
push	20h		; Size
mov	[edi+40h], eax
call	sub_4284B1
pop	ecx
mov	[ebp+arg_8], eax
cmp	eax, ebx
mov	byte ptr [ebp+var_4], 11h
jz	short loc_43DB58
mov	ecx, eax
call	sub_437DAC
mov	edi, eax
mov	[ebp+arg_8], edi
jmp	short loc_43DB5D

loc_43DB58:
mov	[ebp+arg_8], ebx
mov	edi, ebx

loc_43DB5D:
cmp	edi, ebx
mov	byte ptr [ebp+var_4], 10h
mov	[ebp+var_14], edi
jz	short loc_43DB6E
mov	eax, [edi]
push	edi
call	dword ptr [eax+4]

loc_43DB6E:
push	[ebp+arg_C]
lea	ecx, [ebp+lpFileName]
mov	byte ptr [ebp+var_4], 12h
call	sub_403091
push	3
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 13h
mov	[ebp+Memory], ebx
mov	[ebp+var_24], ebx
mov	[ebp+var_20], ebx
call	sub_403396
mov	ecx, [ebp+lpFileName]
lea	eax, [ebp+arg_4]
push	eax
lea	edx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 14h
call	sub_42A775
test	al, al
jnz	loc_43DC33
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
mov	eax, [ebp+var_14]
pop	ecx
cmp	eax, ebx
pop	ecx
mov	byte ptr [ebp+var_4], 10h
jz	short loc_43DBD2
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43DBD2:
mov	eax, [ebp+var_18]
mov	byte ptr [ebp+var_4], 0Eh
cmp	eax, ebx
jz	short loc_43DBE3
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43DBE3:
lea	ecx, [ebp+var_6C]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_43E4B2
lea	ecx, [ebp+var_80]
mov	byte ptr [ebp+var_4], 8
call	sub_4282FE
mov	[ebp+var_3C], offset off_44CAC4
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 15h
call	sub_428327
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 6
call	sub_4282FE
mov	eax, [ebp+arg_10]
mov	byte ptr [ebp+var_4], bl
cmp	eax, ebx
jz	loc_43E019
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
jmp	loc_43E019

loc_43DC33:
push	[ebp+arg_4]
lea	eax, [ebp+var_48]
lea	ecx, [ebp+Memory]
push	eax
call	sub_403228
mov	ecx, [eax]
mov	byte ptr [ebp+var_4], 16h
call	sub_42A264
push	[ebp+var_48]	; Memory
call	sub_4284D8
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 13h
call	sub_4284D8
mov	eax, [ebp+lpFileName]
pop	ecx
pop	ecx
mov	[edi+18h], ebx
push	1		; char
push	eax		; lpFileName
lea	ecx, [edi+8]
mov	[edi+1Ch], ebx
call	sub_42C21B
test	al, al
jnz	loc_43DD18
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
mov	eax, [ebp+var_14]
pop	ecx
cmp	eax, ebx
mov	byte ptr [ebp+var_4], 10h
jz	short loc_43DC99
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43DC99:
mov	eax, [ebp+var_18]
mov	byte ptr [ebp+var_4], 0Eh
cmp	eax, ebx
jz	short loc_43DCAA
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43DCAA:
lea	ecx, [ebp+var_6C]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_43E4B2
lea	ecx, [ebp+var_80]
mov	byte ptr [ebp+var_4], 8
call	sub_4282FE
mov	[ebp+var_3C], offset off_44CAC4
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 17h
call	sub_428327
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 6
call	sub_4282FE

loc_43DCE1:
mov	eax, [ebp+arg_10]
mov	byte ptr [ebp+var_4], bl
cmp	eax, ebx
jz	short loc_43DCF1
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43DCF1:
mov	esi, 80004005h

loc_43DCF6:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_E8]
call	sub_43E434
mov	eax, esi

loc_43DD07:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	1Ch

loc_43DD18:
mov	[ebp+var_1C], ebx
mov	eax, [ebp+arg_10]
lea	edx, [ebp+var_1C]
push	edx
push	offset unk_44B730
mov	ecx, [eax]
push	eax
mov	byte ptr [ebp+var_4], 18h
call	dword ptr [ecx]
mov	esi, [ebp+arg_0]
test	eax, eax
jnz	loc_43DF58
cmp	[esi+0A0h], ebx
jnz	loc_43DDE9
mov	eax, [ebp+var_1C]
push	ebx
push	ebx
push	ebx
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+0Ch]
cmp	eax, ebx
mov	[ebp+arg_0], eax
jz	loc_43DF58
mov	eax, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 13h
cmp	eax, ebx
jz	short loc_43DD6F
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43DD6F:		; Memory
push	[ebp+lpFileName]
call	sub_4284D8
mov	eax, [ebp+var_14]
pop	ecx
cmp	eax, ebx
mov	byte ptr [ebp+var_4], 10h
jz	short loc_43DD89
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43DD89:
mov	eax, [ebp+var_18]
mov	byte ptr [ebp+var_4], 0Eh
cmp	eax, ebx
jz	short loc_43DD9A
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43DD9A:
lea	ecx, [ebp+var_6C]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_43E4B2
lea	ecx, [ebp+var_80]
mov	byte ptr [ebp+var_4], 8
call	sub_4282FE
mov	[ebp+var_3C], offset off_44CAC4
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 19h
call	sub_428327
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 6
call	sub_4282FE
mov	eax, [ebp+arg_10]
mov	byte ptr [ebp+var_4], bl
cmp	eax, ebx
jz	short loc_43DDE1
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43DDE1:
mov	esi, [ebp+arg_0]
jmp	loc_43DCF6

loc_43DDE9:
push	4
lea	ecx, [ebp+var_50]
call	sub_402794
mov	[ebp+var_50], offset off_44C298
xor	edi, edi
cmp	[esi+0A0h], ebx
mov	byte ptr [ebp+var_4], 1Ah
jle	short loc_43DE24

loc_43DE08:
mov	eax, [esi+0A4h]
lea	ecx, [ebp+var_50]
mov	eax, [eax+edi*4]
push	dword ptr [eax]
call	sub_429907
inc	edi
cmp	edi, [esi+0A0h]
jl	short loc_43DE08

loc_43DE24:
mov	edi, [esi+0B4h]
mov	eax, edi
shl	eax, 4
add	eax, 4
push	eax		; Size
call	sub_4284B1
pop	ecx
mov	[ebp+arg_4], eax
cmp	eax, ebx
mov	byte ptr [ebp+var_4], 1Bh
jz	short loc_43DE64
push	offset sub_401E60 ; void (__thiscall *)(void *)
mov	[eax], edi
push	offset loc_43E10F ; int
add	eax, 4
push	edi		; int
push	10h		; unsigned int
push	eax		; void *
mov	[ebp+arg_0], eax
call	??_L@YGXPAXIHP6EX0@Z1@Z	; `eh vector constructor iterator'(void *,uint,int,void (*)(void *),void (*)(void *))
mov	eax, [ebp+arg_0]
jmp	short loc_43DE66

loc_43DE64:
xor	eax, eax

loc_43DE66:
mov	[ebp+arg_0], eax
mov	byte ptr [ebp+var_4], 1Ch
xor	edi, edi

loc_43DE6F:
cmp	edi, [esi+0B4h]
jge	short loc_43DE90
mov	eax, [esi+0B8h]
mov	ecx, edi
shl	ecx, 4
push	dword ptr [eax+edi*4] ;	Src
add	ecx, [ebp+arg_0]
call	sub_42CC7A
inc	edi
jmp	short loc_43DE6F

loc_43DE90:
push	[ebp+var_48]
mov	eax, [ebp+var_1C]
push	[ebp+arg_0]
mov	ecx, [eax]
push	[ebp+var_44]
push	eax
call	dword ptr [ecx+0Ch]
mov	edi, eax
cmp	edi, ebx
jz	loc_43DF34
lea	ecx, [ebp+var_50]
mov	byte ptr [ebp+var_4], 18h
call	sub_4282FE
mov	eax, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 13h
cmp	eax, ebx
jz	short loc_43DEC9
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43DEC9:		; Memory
push	[ebp+lpFileName]
call	sub_4284D8
mov	eax, [ebp+var_14]
pop	ecx
cmp	eax, ebx
mov	byte ptr [ebp+var_4], 10h
jz	short loc_43DEE3
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43DEE3:
lea	ecx, [ebp+var_18]
mov	byte ptr [ebp+var_4], 0Eh
call	sub_4370A0
lea	ecx, [ebp+var_6C]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_43E4B2
lea	ecx, [ebp+var_80]
mov	byte ptr [ebp+var_4], 8
call	sub_4282FE
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 6
call	sub_43F29F
lea	ecx, [ebp+arg_10]
mov	byte ptr [ebp+var_4], bl
call	sub_4370A0

loc_43DF1E:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_E8]
call	sub_43E434
mov	eax, edi
jmp	loc_43DD07

loc_43DF34:		; void *
mov	ecx, [ebp+arg_0]
mov	[ebp+var_4], 1Ah
cmp	ecx, ebx
jz	short loc_43DF49
push	3		; char
call	sub_43E506

loc_43DF49:
lea	ecx, [ebp+var_50]
mov	byte ptr [ebp+var_4], 18h
call	sub_4282FE
mov	edi, [ebp+arg_8]

loc_43DF58:
lea	ecx, [esi+98h]
call	sub_428327
lea	ecx, [esi+0ACh]
call	sub_428327
cmp	[ebp+arg_14], ebx
jz	loc_43E0E5
push	40h		; Size
call	sub_4284B1
pop	ecx
mov	[ebp+arg_8], eax
cmp	eax, ebx
mov	byte ptr [ebp+var_4], 1Eh
jz	loc_43E032
mov	ecx, eax
call	sub_4307E3
mov	esi, eax
jmp	loc_43E034

loc_43DF9C:		; void *
mov	ecx, [ebp+arg_0]
test	ecx, ecx
jz	short loc_43DFAA
push	3		; char
call	sub_43E506

loc_43DFAA:
mov	eax, offset loc_43DFB0
retn

loc_43DFB0:
lea	ecx, [ebp+var_50]
mov	byte ptr [ebp+var_4], 18h
call	sub_4282FE
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 13h
call	sub_4370A0
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 10h
lea	ecx, [ebp+var_14]
call	sub_4370A0
lea	ecx, [ebp+var_18]
mov	byte ptr [ebp+var_4], 0Eh
call	sub_4370A0
lea	ecx, [ebp+var_6C]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_43E4B2
lea	ecx, [ebp+var_80]
mov	byte ptr [ebp+var_4], 8
call	sub_4282FE
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 6
call	sub_43F29F
and	byte ptr [ebp+var_4], 0
lea	ecx, [ebp+arg_10]
call	sub_4370A0

loc_43E019:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_E8]
call	sub_43E434
mov	eax, 80004005h
jmp	loc_43DD07

loc_43E032:
xor	esi, esi

loc_43E034:
push	esi
lea	ecx, [ebp+arg_0]
mov	byte ptr [ebp+var_4], 18h
call	sub_43F37F
push	[ebp+arg_14]	; lpFileName
mov	ecx, esi
mov	byte ptr [ebp+var_4], 1Fh
call	sub_4307C1
test	al, al
jnz	short loc_43E05A
mov	esi, 80004005h
jmp	short loc_43E06C

loc_43E05A:
mov	edx, [ebp+var_14]
mov	ecx, [ebp+arg_0]
push	ebx
call	sub_44110A
cmp	eax, ebx
jz	short loc_43E0D9
mov	esi, eax

loc_43E06C:
lea	ecx, [ebp+arg_0]
mov	byte ptr [ebp+var_4], 18h
call	sub_4370A0

loc_43E078:
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 13h
call	sub_4370A0
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 10h
lea	ecx, [ebp+var_14]
call	sub_4370A0
lea	ecx, [ebp+var_18]
mov	byte ptr [ebp+var_4], 0Eh
call	sub_4370A0
lea	ecx, [ebp+var_6C]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_43E4B2
lea	ecx, [ebp+var_80]
mov	byte ptr [ebp+var_4], 8
call	sub_4282FE
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 6
call	sub_43F29F
lea	ecx, [ebp+arg_10]
mov	byte ptr [ebp+var_4], bl
call	sub_4370A0
jmp	loc_43DCF6

loc_43E0D9:
lea	ecx, [ebp+arg_0]
mov	byte ptr [ebp+var_4], 18h
call	sub_4370A0

loc_43E0E5:
push	[ebp+var_18]
mov	eax, [ebp+arg_10]
push	[ebp+var_78]
mov	ecx, [eax]
push	[ebp+var_14]
push	eax
call	dword ptr [ecx+0Ch]
mov	esi, eax
cmp	esi, ebx
jnz	loc_43E078
mov	ecx, edi
call	sub_430C66
mov	esi, eax
jmp	loc_43E078

loc_43E10F:
mov	eax, ecx
and	word ptr [eax],	0
and	word ptr [eax+2], 0
retn
sub_43D6D0 endp




sub_43E11B proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [ecx+50h]
mov	edx, [esp+arg_0]
mov	eax, [eax+edx*4]
mov	edx, [eax]
test	edx, edx
jge	short loc_43E13C
call	dword ptr [eax+20h]
mov	ecx, [esp+arg_4]
push	eax
call	sub_43D0DB
xor	eax, eax
jmp	short locret_43E152

loc_43E13C:
mov	ecx, [ecx+14h]
push	[esp+arg_4]
add	eax, 8
mov	ecx, [ecx+edx*4]
push	offset unk_44B740
push	eax
call	dword ptr [ecx+1Ch]

locret_43E152:
retn	8
sub_43E11B endp



; Attributes: bp-based frame

sub_43E155 proc	near

var_70=	dword ptr -70h
var_6C=	dword ptr -6Ch
var_68=	byte ptr -68h
var_60=	dword ptr -60h
var_54=	byte ptr -54h
var_53=	byte ptr -53h
var_52=	byte ptr -52h
var_51=	byte ptr -51h
var_50=	dword ptr -50h
pvarg= VARIANTARG ptr -48h
var_38=	dword ptr -38h
var_2C=	dword ptr -2Ch
Memory=	dword ptr -20h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_449A98
call	__EH_prolog
sub	esp, 64h
and	[ebp+var_10], 0
push	ebx
push	esi
push	edi
mov	edi, edx
mov	ebx, ecx
mov	eax, [edi+30h]
test	eax, eax
jle	loc_43E269

loc_43E178:
mov	eax, [edi+34h]
mov	ecx, [ebp+var_10]
mov	esi, [eax+ecx*4]
lea	ecx, [ebp+var_70]
call	sub_43E3AB
mov	eax, [ebx+28h]
mov	ecx, [ebx+2Ch]
and	[ebp+var_4], 0
mov	ecx, [ecx+eax*4-4]
lea	eax, [ebp+var_52]
push	eax
lea	eax, [ebp+var_68]
push	eax
push	dword ptr [esi]
call	sub_435948
xor	ecx, ecx
mov	[ebp+var_14], eax
cmp	eax, ecx
jnz	loc_43E366
mov	word ptr [ebp+pvarg.anonymous_0], cx
mov	word ptr [ebp+pvarg.anonymous_0+2], cx
cmp	[ebx+28h], ecx
mov	byte ptr [ebp+var_4], 1
jnz	short loc_43E1C8
xor	eax, eax
jmp	short loc_43E1D4

loc_43E1C8:
mov	eax, [ebx+28h]
mov	ecx, [ebx+2Ch]
mov	eax, [ecx+eax*4-4]
mov	eax, [eax]

loc_43E1D4:
mov	ecx, [eax]
lea	edx, [ebp+pvarg]
push	edx
push	7
push	dword ptr [esi]
push	eax
call	dword ptr [ecx+18h]
cmp	word ptr [ebp+pvarg.anonymous_0], 0
setnz	[ebp+var_53]
cmp	[ebp+var_53], 0
jz	short loc_43E1FF
lea	ecx, [ebp+pvarg]
call	sub_42D2C6
mov	[ebp+var_70], eax
mov	[ebp+var_6C], edx

loc_43E1FF:
mov	edx, [ebp+arg_0]
and	[ebp+var_54], 0
lea	eax, [esi+4]
lea	ecx, [ebp+Memory]
push	eax
call	sub_40356A
push	eax
lea	ecx, [ebp+var_60]
mov	byte ptr [ebp+var_4], 2
call	sub_40312C
mov	byte ptr [ebp+var_4], 1
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	[ebp+var_51], 1
mov	eax, [esi]
mov	[ebp+var_50], eax
pop	ecx
mov	ecx, [ebp+arg_4]
lea	eax, [ebp+var_70]
push	eax
call	sub_43F2D7
and	byte ptr [ebp+var_4], 0
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
or	[ebp+var_4], 0FFFFFFFFh
push	[ebp+var_60]	; Memory
call	sub_4284D8
inc	[ebp+var_10]
pop	ecx
mov	eax, [ebp+var_10]
cmp	eax, [edi+30h]
jl	loc_43E178

loc_43E269:
and	[ebp+var_10], 0
cmp	dword ptr [edi+1Ch], 0
jle	loc_43E398

loc_43E277:
mov	eax, [edi+20h]
mov	ecx, [ebp+var_10]
mov	edx, [ebp+arg_0]
mov	esi, [eax+ecx*4]
lea	ecx, [ebp+Memory]
lea	eax, [esi+4]
push	eax
call	sub_40356A
cmp	byte ptr [esi+3Ch], 0
mov	[ebp+var_4], 3
jz	short loc_43E301
lea	ecx, [ebp+var_70]
call	sub_43E3AB
mov	eax, [ebx+28h]
mov	ecx, [ebx+2Ch]
mov	byte ptr [ebp+var_4], 4
mov	ecx, [ecx+eax*4-4]
lea	eax, [ebp+var_52]
push	eax
lea	eax, [ebp+var_68]
push	eax
push	dword ptr [esi]
call	sub_435948
test	eax, eax
mov	[ebp+var_14], eax
jnz	loc_43E374
and	[ebp+var_53], al
lea	eax, [ebp+Memory]
push	eax
lea	ecx, [ebp+var_60]
mov	[ebp+var_54], 1
call	sub_40312C
mov	eax, [esi]
mov	ecx, [ebp+arg_4]
mov	[ebp+var_50], eax
lea	eax, [ebp+var_70]
push	eax
mov	[ebp+var_51], 1
call	sub_43F2D7
mov	byte ptr [ebp+var_4], 3
push	[ebp+var_60]	; Memory
call	sub_4284D8
pop	ecx

loc_43E301:
push	5Ch
lea	ecx, [ebp+var_38]
call	sub_409516
push	eax
lea	edx, [ebp+Memory]
lea	ecx, [ebp+var_2C]
mov	byte ptr [ebp+var_4], 5
call	sub_40356A
push	[ebp+arg_4]
mov	edx, esi
mov	ecx, ebx
mov	byte ptr [ebp+var_4], 6
push	eax
call	sub_43E155
mov	esi, eax
push	[ebp+var_2C]	; Memory
call	sub_4284D8
push	[ebp+var_38]	; Memory
mov	byte ptr [ebp+var_4], 3
call	sub_4284D8
pop	ecx
test	esi, esi
pop	ecx
jnz	short loc_43E38B
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
inc	[ebp+var_10]
pop	ecx
mov	eax, [ebp+var_10]
cmp	eax, [edi+1Ch]
jl	loc_43E277
jmp	short loc_43E398

loc_43E366:		; Memory
push	[ebp+var_60]
call	sub_4284D8
mov	eax, [ebp+var_14]
pop	ecx
jmp	short loc_43E39A

loc_43E374:		; Memory
push	[ebp+var_60]
call	sub_4284D8
push	[ebp+Memory]	; Memory
call	sub_4284D8
mov	eax, [ebp+var_14]
pop	ecx
pop	ecx
jmp	short loc_43E39A

loc_43E38B:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
mov	eax, esi
jmp	short loc_43E39A

loc_43E398:
xor	eax, eax

loc_43E39A:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_43E155 endp




sub_43E3AB proc	near
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
push	3
lea	ecx, [esi+10h]
mov	[ecx], ebx
mov	[ecx+4], ebx
mov	[ecx+8], ebx
call	sub_403396
or	dword ptr [esi+24h], 0FFFFFFFFh
mov	[esi+1Ch], bl
mov	[esi+1Dh], bl
mov	[esi+1Eh], bl
mov	[esi+1Fh], bl
mov	eax, esi
pop	esi
pop	ebx
retn
sub_43E3AB endp




sub_43E3D8 proc	near
push	dword ptr [ecx+10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_43E3D8 endp




sub_43E3E2 proc	near
push	esi
mov	eax, ecx
push	4
xor	edx, edx
pop	ecx
mov	esi, offset off_44C500
mov	[eax+4], edx
mov	[eax+8], edx
mov	[eax+0Ch], edx
mov	[eax+10h], ecx
mov	dword ptr [eax], offset	off_44B510
mov	[eax+18h], edx
mov	[eax+1Ch], edx
mov	[eax+20h], edx
mov	[eax+24h], ecx
mov	[eax+14h], esi
mov	[eax+2Ch], edx
mov	[eax+30h], edx
mov	[eax+34h], edx
mov	[eax+38h], ecx
mov	[eax+28h], esi
mov	[eax+40h], edx
mov	[eax+44h], edx
mov	[eax+48h], edx
mov	[eax+4Ch], ecx
mov	dword ptr [eax+3Ch], offset off_44CAD4
pop	esi
retn
sub_43E3E2 endp



; Attributes: bp-based frame

sub_43E434 proc	near

var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_449AD2
call	__EH_prolog
push	ecx
push	ecx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
lea	edi, [esi+3Ch]
mov	[ebp+var_14], edi
mov	dword ptr [edi], offset	off_44CAD4
mov	ecx, edi
mov	byte ptr [ebp+var_4], 3
call	sub_428327
mov	ecx, edi
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE
lea	ecx, [esi+28h]
mov	byte ptr [ebp+var_4], 1
call	sub_4282FE
and	byte ptr [ebp+var_4], 0
lea	ecx, [esi+14h]
call	sub_4282FE
mov	dword ptr [esi], offset	off_44B510
mov	ecx, esi
mov	[ebp+var_4], 4
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn
sub_43E434 endp



; Attributes: bp-based frame

sub_43E4B2 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_449AF2
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	eax, [esi+0Ch]
mov	[ebp+var_4], 1
test	eax, eax
jz	short loc_43E4D7
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43E4D7:
mov	eax, [esi+8]
and	byte ptr [ebp+var_4], 0
test	eax, eax
jz	short loc_43E4E8
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43E4E8:
mov	esi, [esi+4]
or	[ebp+var_4], 0FFFFFFFFh
test	esi, esi
jz	short loc_43E4F9
mov	eax, [esi]
push	esi
call	dword ptr [eax+8]

loc_43E4F9:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_43E4B2 endp




; int __thiscall sub_43E506(void *, char)
sub_43E506 proc	near

arg_0= byte ptr	 4

push	ebx
mov	bl, [esp+4+arg_0]
push	esi
mov	esi, ecx
test	bl, 2
jz	short loc_43E537
push	edi
lea	edi, [esi-4]
push	offset sub_401E60 ; void (__thiscall *)(void *)
push	dword ptr [edi]	; int
push	10h		; unsigned int
push	esi		; void *
call	??_M@YGXPAXIHP6EX0@Z@Z ; `eh vector destructor iterator'(void *,uint,int,void (*)(void *))
test	bl, 1
jz	short loc_43E532
push	edi		; Memory
call	sub_4284D8
pop	ecx

loc_43E532:
mov	eax, edi
pop	edi
jmp	short loc_43E54C

loc_43E537:		; pvarg
mov	ecx, esi
call	sub_42CDE1
test	bl, 1
jz	short loc_43E54A
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_43E54A:
mov	eax, esi

loc_43E54C:
pop	esi
pop	ebx
retn	4
sub_43E506 endp



; Attributes: bp-based frame

sub_43E551 proc	near

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	[ebp+arg_10]
mov	eax, [ebp+arg_0]
push	[ebp+arg_C]
mov	ecx, [eax]
push	[ebp+arg_8]
push	[ebp+arg_4]
push	0FFFFFFFFh
push	dword ptr [eax+0Ch]
push	eax
call	dword ptr [ecx+18h]
pop	ebp
retn	14h
sub_43E551 endp



; Attributes: bp-based frame

sub_43E572 proc	near

Memory=	dword ptr -3Ch
lpFileName= dword ptr -30h
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_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_449B24
call	__EH_prolog
sub	esp, 30h
mov	eax, [ecx+28h]
push	ebx
push	esi
cmp	eax, 1
push	edi
jle	short loc_43E594
mov	eax, 80004001h
jmp	loc_43E712

loc_43E594:
xor	ebx, ebx
mov	[ebp+var_10], ebx
cmp	eax, ebx
mov	[ebp+var_4], ebx
jnz	short loc_43E5A4
xor	eax, eax
jmp	short loc_43E5B0

loc_43E5A4:
mov	eax, [ecx+28h]
mov	ecx, [ecx+2Ch]
mov	eax, [ecx+eax*4-4]
mov	eax, [eax]

loc_43E5B0:
mov	ecx, [eax]
lea	edx, [ebp+var_10]
push	edx
push	offset unk_44B740
push	eax
call	dword ptr [ecx]
mov	esi, eax
cmp	esi, ebx
jz	short loc_43E5DC
mov	eax, [ebp+var_10]
or	[ebp+var_4], 0FFFFFFFFh
cmp	eax, ebx
jz	short loc_43E5D5
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43E5D5:
mov	eax, esi
jmp	loc_43E712

loc_43E5DC:		; Size
push	20h
call	sub_4284B1
cmp	eax, ebx
pop	ecx
jz	short loc_43E5F3
mov	ecx, eax
call	sub_437DAC
mov	esi, eax
jmp	short loc_43E5F5

loc_43E5F3:
xor	esi, esi

loc_43E5F5:
cmp	esi, ebx
mov	[ebp+var_18], esi
jz	short loc_43E602
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]

loc_43E602:
push	[ebp+arg_0]
lea	ecx, [ebp+lpFileName]
mov	byte ptr [ebp+var_4], 1
call	sub_403091
push	3
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 2
mov	[ebp+var_24], ebx
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
call	sub_403396
mov	ecx, [ebp+lpFileName]
lea	eax, [ebp+var_14]
push	eax
lea	edx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 3
call	sub_42A775
test	al, al
jnz	short loc_43E654
lea	eax, [ebp+arg_0]
push	offset unk_44D120
push	eax
mov	[ebp+arg_0], 22994h
call	_CxxThrowException

loc_43E654:
push	[ebp+var_14]
lea	eax, [ebp+Memory]
lea	ecx, [ebp+var_24]
push	eax
call	sub_403228
mov	ecx, [eax]
mov	byte ptr [ebp+var_4], 4
call	sub_42A264
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_24]	; Memory
mov	byte ptr [ebp+var_4], 2
call	sub_4284D8
mov	eax, [ebp+lpFileName]
pop	ecx
pop	ecx
mov	[esi+18h], ebx
push	1		; char
push	eax		; lpFileName
lea	ecx, [esi+8]
mov	[esi+1Ch], ebx
call	sub_42C21B
test	al, al
jnz	short loc_43E6CA
push	[ebp+lpFileName] ; Memory
call	sub_4284D8
cmp	esi, ebx
pop	ecx
mov	byte ptr [ebp+var_4], bl
jz	short loc_43E6B2
mov	eax, [esi]
push	esi
call	dword ptr [eax+8]

loc_43E6B2:
mov	eax, [ebp+var_10]
or	[ebp+var_4], 0FFFFFFFFh
cmp	eax, ebx
jz	short loc_43E6C3
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43E6C3:
mov	eax, 80004005h
jmp	short loc_43E712

loc_43E6CA:
push	[ebp+arg_8]
mov	eax, [ebp+var_10]
push	[ebp+arg_4]
mov	ecx, [eax]
push	esi
push	eax
call	dword ptr [ecx+0Ch]
mov	edi, eax
cmp	edi, ebx
jnz	short loc_43E6E9
mov	ecx, esi
call	sub_430C66
mov	edi, eax

loc_43E6E9:		; Memory
push	[ebp+lpFileName]
call	sub_4284D8
cmp	esi, ebx
pop	ecx
mov	byte ptr [ebp+var_4], bl
jz	short loc_43E6FF
mov	eax, [esi]
push	esi
call	dword ptr [eax+8]

loc_43E6FF:
mov	eax, [ebp+var_10]
or	[ebp+var_4], 0FFFFFFFFh
cmp	eax, ebx
jz	short loc_43E710
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43E710:
mov	eax, edi

loc_43E712:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	0Ch
sub_43E572 endp



; Attributes: bp-based frame

sub_43E723 proc	near

var_5C=	dword ptr -5Ch
var_54=	dword ptr -54h
var_50=	dword ptr -50h
var_48=	dword ptr -48h
var_40=	dword ptr -40h
var_34=	dword ptr -34h
var_30=	dword ptr -30h
var_2C=	dword ptr -2Ch
var_28=	dword ptr -28h
var_24=	byte ptr -24h
var_23=	byte ptr -23h
var_22=	byte ptr -22h
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_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

mov	eax, offset loc_449B5A
call	__EH_prolog
sub	esp, 50h
push	ebx
mov	ebx, [ebp+arg_0]
push	esi
push	edi
mov	eax, [ebx+20h]
cmp	eax, 1
jle	short loc_43E748
mov	eax, 80004001h
jmp	loc_43E902

loc_43E748:
xor	edi, edi
mov	[ebp+var_34], offset off_44CA84
mov	[ebp+var_30], edi
mov	[ebp+var_2C], edi
mov	[ebp+var_28], edi
push	[ebp+arg_10]
lea	ecx, [ebp+var_34]
mov	[ebp+var_4], edi
call	sub_440D1D
push	5Ch		; Size
call	sub_4284B1
pop	ecx
mov	[ebp+arg_0], eax
cmp	eax, edi
mov	byte ptr [ebp+var_4], 1
jz	short loc_43E789
mov	ecx, eax
call	sub_437547
mov	esi, eax
mov	[ebp+arg_0], esi
jmp	short loc_43E78E

loc_43E789:
mov	[ebp+arg_0], edi
mov	esi, edi

loc_43E78E:
and	byte ptr [ebp+var_4], 0
cmp	esi, edi
mov	[ebp+var_14], esi
jz	short loc_43E79F
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]

loc_43E79F:
push	4
lea	ecx, [ebp+var_5C]
call	sub_402794
mov	[ebp+var_5C], offset off_44B518
lea	eax, [ebp+var_5C]
mov	ecx, [ebx+88h]
push	eax
mov	byte ptr [ebp+var_4], 3
push	[ebp+arg_C]
push	[ebp+arg_8]
call	sub_43BBAB
push	10h
lea	ecx, [ebp+var_48]
call	sub_402794
mov	[ebp+var_48], offset off_44CABC
add	ebx, 0FFFFFFF8h
mov	byte ptr [ebp+var_4], 4
mov	[ebp+arg_10], edi
cmp	[ebx+28h], edi
jnz	short loc_43E7ED
xor	eax, eax
jmp	short loc_43E7F9

loc_43E7ED:
mov	eax, [ebx+28h]
mov	ecx, [ebx+2Ch]
mov	eax, [ecx+eax*4-4]
mov	eax, [eax]

loc_43E7F9:
mov	ecx, [eax]
lea	edx, [ebp+var_10]
push	edx
push	eax
call	dword ptr [ecx+14h]
cmp	eax, edi
mov	[ebp+arg_C], eax
jz	short loc_43E838
lea	ecx, [ebp+var_48]
mov	byte ptr [ebp+var_4], 3
call	sub_4282FE
lea	ecx, [ebp+var_5C]
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE
and	byte ptr [ebp+var_4], 0
cmp	esi, edi
jz	short loc_43E830
mov	eax, [esi]
push	esi
call	dword ptr [eax+8]

loc_43E830:
mov	ebx, [ebp+arg_C]
jmp	loc_43E8F4

loc_43E838:
xor	ecx, ecx
cmp	[ebp+var_10], edi
mov	[ebp+arg_C], ecx
jbe	short loc_43E894

loc_43E842:
mov	eax, [ebp+arg_10]
cmp	eax, [ebp+var_54]
jge	short loc_43E858
mov	edx, [ebp+var_50]
cmp	[edx+eax*4], ecx
jnz	short loc_43E858
inc	eax
mov	[ebp+arg_10], eax
jmp	short loc_43E88B

loc_43E858:
or	[ebp+var_20], 0FFFFFFFFh
or	[ebp+var_18], 0FFFFFFFFh
and	[ebp+var_23], 0
and	[ebp+var_24], 0
and	[ebp+var_22], 0
sub	esp, 10h
lea	esi, [ebp+var_24]
mov	edi, esp
mov	[ebp+var_1C], ecx
lea	ecx, [ebp+var_48]
movsd
movsd
movsd
movsd
call	sub_43847C
mov	esi, [ebp+arg_0]
mov	ecx, [ebp+arg_C]
xor	edi, edi

loc_43E88B:
inc	ecx
cmp	ecx, [ebp+var_10]
mov	[ebp+arg_C], ecx
jb	short loc_43E842

loc_43E894:
lea	eax, [ebp+var_48]
mov	[esi+50h], eax
cmp	[ebx+28h], edi
jnz	short loc_43E8A3
xor	eax, eax
jmp	short loc_43E8AF

loc_43E8A3:
mov	eax, [ebx+28h]
mov	ecx, [ebx+2Ch]
mov	eax, [ecx+eax*4-4]
mov	eax, [eax]

loc_43E8AF:
push	eax
lea	ecx, [esi+58h]
call	sub_43D0DB
lea	eax, [ebp+var_34]
push	esi
mov	[esi+40h], eax
push	[ebp+var_40]
mov	ecx, ebx
push	[ebp+arg_4]
call	sub_43E572
lea	ecx, [ebp+var_48]
mov	ebx, eax
mov	byte ptr [ebp+var_4], 3
call	sub_4282FE
lea	ecx, [ebp+var_5C]
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE
and	byte ptr [ebp+var_4], 0
cmp	esi, edi
jz	short loc_43E8F4
mov	eax, [esi]
push	esi
call	dword ptr [eax+8]

loc_43E8F4:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_34]
call	sub_43E4B2
mov	eax, ebx

loc_43E902:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	14h
sub_43E723 endp



; Attributes: bp-based frame

sub_43E913 proc	near

var_E8=	byte ptr -0E8h
var_AC=	byte ptr -0ACh
Memory=	dword ptr -98h
var_8C=	dword ptr -8Ch
var_88=	dword ptr -88h
var_84=	dword ptr -84h
var_80=	dword ptr -80h
var_7C=	dword ptr -7Ch
var_78=	dword ptr -78h
var_74=	dword ptr -74h
var_70=	dword ptr -70h
var_6C=	dword ptr -6Ch
var_60=	dword ptr -60h
var_5C=	dword ptr -5Ch
var_58=	dword ptr -58h
FileTime= _FILETIME ptr	-54h
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_34=	dword ptr -34h
var_28=	dword ptr -28h
var_24=	dword ptr -24h
var_20=	byte ptr -20h
var_1F=	byte ptr -1Fh
var_1E=	byte ptr -1Eh
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_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_449BAF
call	__EH_prolog
sub	esp, 0DCh
push	ebx
push	esi
mov	esi, ecx
push	edi
mov	[ebp+var_28], esi
mov	eax, [esi+28h]
cmp	eax, 1
jle	short loc_43E93D
mov	eax, 80004001h
jmp	loc_43EBA3

loc_43E93D:
xor	edi, edi
mov	[ebp+var_4C], offset off_44CA84
mov	[ebp+var_48], edi
mov	[ebp+var_44], edi
mov	[ebp+var_40], edi
push	[ebp+arg_8]
lea	ecx, [ebp+var_4C]
mov	[ebp+var_4], edi
call	sub_440D1D
push	5Ch		; Size
call	sub_4284B1
pop	ecx
mov	[ebp+arg_8], eax
cmp	eax, edi
mov	byte ptr [ebp+var_4], 1
jz	short loc_43E97B
mov	ecx, eax
call	sub_437547
mov	ebx, eax
jmp	short loc_43E97D

loc_43E97B:
xor	ebx, ebx

loc_43E97D:
and	byte ptr [ebp+var_4], 0
cmp	ebx, edi
mov	[ebp+var_10], ebx
jz	short loc_43E98E
mov	eax, [ebx]
push	ebx
call	dword ptr [eax+4]

loc_43E98E:
push	10h
lea	ecx, [ebp+var_3C]
call	sub_402794
mov	[ebp+var_3C], offset off_44CABC
cmp	[esi+28h], edi
mov	byte ptr [ebp+var_4], 3
jnz	short loc_43E9AC
xor	eax, eax
jmp	short loc_43E9B8

loc_43E9AC:
mov	eax, [esi+28h]
mov	ecx, [esi+2Ch]
mov	eax, [ecx+eax*4-4]
mov	eax, [eax]

loc_43E9B8:
mov	ecx, [eax]
lea	edx, [ebp+var_24]
push	edx
push	eax
call	dword ptr [ecx+14h]
mov	esi, eax
cmp	esi, edi
jz	short loc_43E9EE
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE
mov	eax, [ebp+var_10]
and	byte ptr [ebp+var_4], 0
cmp	eax, edi
jz	loc_43EB95
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
jmp	loc_43EB95

loc_43E9EE:
cmp	[ebp+var_24], edi
mov	[ebp+arg_8], edi
jbe	short loc_43EA31
or	[ebp+var_1C], 0FFFFFFFFh
or	[ebp+var_14], 0FFFFFFFFh
and	[ebp+var_1F], 0
and	[ebp+var_20], 0
and	[ebp+var_1E], 0

loc_43EA0A:
mov	eax, [ebp+arg_8]
sub	esp, 10h
lea	esi, [ebp+var_20]
mov	edi, esp
mov	[ebp+var_18], eax
lea	ecx, [ebp+var_3C]
movsd
movsd
movsd
movsd
call	sub_43847C
inc	[ebp+arg_8]
mov	eax, [ebp+arg_8]
cmp	eax, [ebp+var_24]
jb	short loc_43EA0A
xor	edi, edi

loc_43EA31:
or	[ebp+var_18], 0FFFFFFFFh
or	[ebp+var_14], 0FFFFFFFFh
and	[ebp+var_1E], 0
sub	esp, 10h
mov	[ebp+var_1C], edi
lea	esi, [ebp+var_20]
mov	edi, esp
mov	[ebp+var_1F], 1
mov	[ebp+var_20], 1
lea	ecx, [ebp+var_3C]
movsd
movsd
movsd
movsd
call	sub_43847C
lea	ecx, [ebp+var_3C]
call	sub_42842A
lea	ecx, [ebp+var_E8]
call	sub_43E3E2
lea	ecx, [ebp+var_6C]
mov	byte ptr [ebp+var_4], 4
call	sub_403079
or	[ebp+var_5C], 0FFFFFFFFh
or	[ebp+var_58], 0FFFFFFFFh
mov	esi, [ebp+var_28]
lea	eax, [ebp+var_1C]
push	eax
xor	edi, edi
mov	eax, [esi+90h]
mov	[ebp+var_60], 10h
mov	[ebp+var_8C], edi
mov	[ebp+var_88], edi
mov	ecx, [eax+28h]
mov	byte ptr [ebp+var_4], 5
call	sub_43F657
push	[ebp+arg_4]
mov	edx, eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 6
call	sub_409948
push	eax
lea	ecx, [ebp+var_6C]
mov	byte ptr [ebp+var_4], 7
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_1C]	; Memory
mov	byte ptr [ebp+var_4], 5
call	sub_4284D8
pop	ecx
pop	ecx
lea	ecx, [ebp+FileTime] ; lpFileTime
call	sub_42E2FD
mov	eax, [ebp+FileTime.dwLowDateTime]
mov	ecx, [ebp+FileTime.dwHighDateTime]
mov	[ebp+var_74], eax
mov	[ebp+var_7C], eax
mov	[ebp+var_84], eax
lea	eax, [ebp+var_8C]
mov	[ebp+var_70], ecx
mov	[ebp+var_78], ecx
mov	[ebp+var_80], ecx
push	eax
lea	ecx, [ebp+var_AC]
call	sub_433B07
lea	eax, [ebp+var_4C]
mov	[ebx+40h], eax
lea	eax, [ebp+var_E8]
mov	[ebx+48h], eax
lea	eax, [ebp+var_3C]
mov	[ebx+50h], eax
cmp	[esi+28h], edi
jnz	short loc_43EB3E
xor	eax, eax
jmp	short loc_43EB4A

loc_43EB3E:
mov	eax, [esi+28h]
mov	ecx, [esi+2Ch]
mov	eax, [ecx+eax*4-4]
mov	eax, [eax]

loc_43EB4A:
push	eax
lea	ecx, [ebx+58h]
call	sub_43D0DB
push	[ebp+var_10]
mov	ecx, esi
push	[ebp+var_34]
push	[ebp+arg_0]
call	sub_43E572
push	[ebp+var_6C]	; Memory
mov	esi, eax
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 3
lea	ecx, [ebp+var_E8]
call	sub_43E434
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE
and	byte ptr [ebp+var_4], 0
lea	ecx, [ebp+var_10]
call	sub_4370A0

loc_43EB95:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_4C]
call	sub_43E4B2
mov	eax, esi

loc_43EBA3:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	0Ch
sub_43E913 endp



; Attributes: bp-based frame

sub_43EBB4 proc	near

var_D8=	dword ptr -0D8h
var_CC=	dword ptr -0CCh
var_C0=	dword ptr -0C0h
var_B4=	dword ptr -0B4h
var_B0=	byte ptr -0B0h
var_AF=	byte ptr -0AFh
var_AE=	byte ptr -0AEh
var_AC=	dword ptr -0ACh
var_A8=	dword ptr -0A8h
var_A4=	dword ptr -0A4h
var_A0=	dword ptr -0A0h
var_98=	dword ptr -98h
var_94=	dword ptr -94h
var_8C=	dword ptr -8Ch
var_88=	dword ptr -88h
var_84=	dword ptr -84h
var_80=	dword ptr -80h
var_7C=	dword ptr -7Ch
var_74=	dword ptr -74h
var_68=	dword ptr -68h
var_5C=	byte ptr -5Ch
var_5B=	byte ptr -5Bh
var_5A=	byte ptr -5Ah
var_58=	dword ptr -58h
var_54=	dword ptr -54h
var_50=	dword ptr -50h
var_4C=	dword ptr -4Ch
var_40=	dword ptr -40h
var_3C=	dword ptr -3Ch
var_38=	dword ptr -38h
var_30=	dword ptr -30h
Memory=	dword ptr -1Ch
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_449C60
call	__EH_prolog
sub	esp, 0CCh
push	ebx
mov	ebx, ecx
push	esi
push	edi
mov	eax, [ebx+28h]
cmp	eax, 1
jle	short loc_43EBDB
mov	eax, 80004001h
jmp	loc_43EFDD

loc_43EBDB:
cmp	[ebp+arg_8], 1
jz	short loc_43EBEB
mov	eax, 80070057h
jmp	loc_43EFDD

loc_43EBEB:
xor	esi, esi
mov	[ebp+var_8C], offset off_44CA84
mov	[ebp+var_88], esi
mov	[ebp+var_84], esi
mov	[ebp+var_80], esi
push	[ebp+arg_10]
lea	ecx, [ebp+var_8C]
mov	[ebp+var_4], esi
call	sub_440D1D
push	5Ch		; Size
call	sub_4284B1
pop	ecx
mov	[ebp+arg_8], eax
cmp	eax, esi
mov	byte ptr [ebp+var_4], 1
jz	short loc_43EC38
mov	ecx, eax
call	sub_437547
mov	edi, eax
mov	[ebp+var_10], edi
jmp	short loc_43EC3D

loc_43EC38:
mov	[ebp+var_10], esi
mov	edi, esi

loc_43EC3D:
and	byte ptr [ebp+var_4], 0
cmp	edi, esi
mov	[ebp+var_B4], edi
jz	short loc_43EC51
mov	eax, [edi]
push	edi
call	dword ptr [eax+4]

loc_43EC51:
push	4
lea	ecx, [ebp+var_A0]
call	sub_402794
mov	[ebp+var_A0], offset off_44B518
mov	esi, [ebp+arg_4]
mov	ecx, [ebx+90h]
lea	eax, [ebp+var_A0]
mov	byte ptr [ebp+var_4], 3
push	eax
push	1
push	esi
call	sub_43BBAB
push	dword ptr [esi]
mov	ecx, [ebx+90h]
lea	eax, [ebp+var_4C]
push	eax
call	sub_43B0E7
push	dword ptr [esi]
mov	ecx, [ebx+90h]
lea	eax, [ebp+Memory]
mov	byte ptr [ebp+var_4], 4
push	eax
call	sub_43AFB9
push	eax
lea	edx, [ebp+var_4C]
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 5
call	sub_40356A
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 7
call	sub_4284D8
pop	ecx
lea	edx, [ebp+var_4C]
push	[ebp+arg_C]
lea	ecx, [ebp+var_68]
call	sub_409948
push	10h
lea	ecx, [ebp+var_7C]
call	sub_402794
mov	[ebp+var_7C], offset off_44CABC
lea	ecx, [ebp+var_30]
mov	byte ptr [ebp+var_4], 9
call	sub_40337B
mov	esi, offset off_44B510
mov	[ebp+var_30], esi
xor	eax, eax
mov	byte ptr [ebp+var_4], 0Ah
cmp	[ebx+28h], eax
mov	[ebp+arg_4], eax
jz	short loc_43ED14
mov	eax, [ebx+28h]
mov	ecx, [ebx+2Ch]
mov	eax, [ecx+eax*4-4]
mov	eax, [eax]

loc_43ED14:
mov	ecx, [eax]
lea	edx, [ebp+var_40]
push	edx
push	eax
call	dword ptr [ecx+14h]
xor	edx, edx
mov	[ebp+arg_8], eax
cmp	eax, edx
jz	short loc_43ED8E
mov	[ebp+var_30], esi
lea	ecx, [ebp+var_30]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_428327
lea	ecx, [ebp+var_30]
mov	byte ptr [ebp+var_4], 9
call	sub_4282FE
lea	ecx, [ebp+var_7C]
mov	byte ptr [ebp+var_4], 8
call	sub_4282FE
push	[ebp+var_68]	; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
push	[ebp+var_4C]	; Memory
call	sub_4284D8
add	esp, 0Ch
lea	ecx, [ebp+var_A0]
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE
and	byte ptr [ebp+var_4], 0
test	edi, edi
jz	short loc_43ED86
mov	eax, [edi]
push	edi
call	dword ptr [eax+8]

loc_43ED86:
mov	esi, [ebp+arg_8]
jmp	loc_43EFCC

loc_43ED8E:
cmp	[ebp+var_40], edx
mov	[ebp+arg_10], edx
jbe	loc_43EF47
jmp	short loc_43EDA7

loc_43ED9C:
mov	edi, [ebp+var_10]
mov	edx, [ebp+arg_10]
mov	esi, offset off_44B510

loc_43EDA7:
mov	eax, [ebp+arg_4]
cmp	eax, [ebp+var_98]
jge	loc_43EEF5
mov	ecx, [ebp+var_94]
cmp	[ecx+eax*4], edx
jnz	loc_43EEF5
mov	eax, [ebx+28h]
mov	ecx, [ebx+2Ch]
and	[ebp+var_5A], 0
or	[ebp+var_58], 0FFFFFFFFh
or	[ebp+var_54], 0FFFFFFFFh
or	[ebp+var_50], 0FFFFFFFFh
and	[ebp+var_5C], 0
mov	[ebp+var_5B], 1
mov	eax, [ecx+eax*4-4]
lea	ecx, [ebp+var_5A]
push	ecx
push	15h
mov	eax, [eax]
mov	ecx, eax
call	sub_4357A7
xor	ecx, ecx
mov	[ebp+arg_8], eax
cmp	eax, ecx
jnz	loc_43EFEE
mov	eax, [ebp+arg_10]
mov	[ebp+Memory], ecx
mov	[ebp+var_18], ecx
mov	[ebp+var_14], ecx
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+var_54], eax
call	sub_403396
mov	eax, [ebx+28h]
mov	ecx, [ebx+2Ch]
mov	byte ptr [ebp+var_4], 0Dh
mov	ecx, [ecx+eax*4-4]
lea	eax, [ebp+Memory]
push	eax
push	[ebp+arg_10]
call	sub_435829
test	eax, eax
mov	[ebp+arg_8], eax
jnz	loc_43F055
push	[ebp+var_38]
lea	eax, [ebp+var_C0]
lea	ecx, [ebp+Memory]
push	eax
call	sub_403228
mov	edx, [eax]
mov	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 0Fh
call	sub_4282B1
push	[ebp+var_C0]	; Memory
mov	byte ptr [ebp+var_4], 0Dh
test	eax, eax
setnz	byte ptr [ebp+arg_8+3]
call	sub_4284D8
cmp	byte ptr [ebp+arg_8+3],	0
pop	ecx
jnz	loc_43F0C5
push	[ebp+var_38]
lea	eax, [ebp+var_D8]
lea	ecx, [ebp+Memory]
push	eax
call	sub_405246
push	eax
lea	edx, [ebp+var_68]
lea	ecx, [ebp+var_CC]
mov	byte ptr [ebp+var_4], 11h
call	sub_40356A
push	eax
lea	ecx, [ebp+var_30]
mov	byte ptr [ebp+var_4], 12h
call	sub_4032B4
push	[ebp+var_CC]	; Memory
mov	[ebp+var_50], eax
call	sub_4284D8
push	[ebp+var_D8]	; Memory
mov	byte ptr [ebp+var_4], 0Dh
call	sub_4284D8
push	ecx
push	ecx
lea	esi, [ebp+var_5C]
mov	edi, esp
movsd
movsd
movsd
lea	ecx, [ebp+var_7C]
movsd
call	sub_43847C
push	[ebp+Memory]	; Memory
inc	[ebp+arg_4]
mov	byte ptr [ebp+var_4], 0Ah
call	sub_4284D8
pop	ecx
jmp	short loc_43EF35

loc_43EEF5:
or	[ebp+var_AC], 0FFFFFFFFh
or	[ebp+var_A4], 0FFFFFFFFh
and	[ebp+var_AF], 0
and	[ebp+var_B0], 0
and	[ebp+var_AE], 0
sub	esp, 10h
lea	esi, [ebp+var_B0]
mov	edi, esp
mov	[ebp+var_A8], edx
lea	ecx, [ebp+var_7C]
movsd
movsd
movsd
movsd
call	sub_43847C

loc_43EF35:
inc	[ebp+arg_10]
mov	eax, [ebp+arg_10]
cmp	eax, [ebp+var_40]
jb	loc_43ED9C
mov	edi, [ebp+var_10]

loc_43EF47:
lea	eax, [ebp+var_8C]
mov	ecx, ebx
mov	[edi+40h], eax
lea	eax, [ebp+var_7C]
mov	[edi+50h], eax
lea	eax, [ebp+var_30]
mov	[edi+54h], eax
call	sub_43F137
push	eax
lea	ecx, [edi+58h]
call	sub_43D0DB
push	edi
mov	ecx, ebx
push	[ebp+var_74]
push	[ebp+arg_0]
call	sub_43E572
lea	ecx, [ebp+var_30]
mov	esi, eax
mov	byte ptr [ebp+var_4], 9
call	sub_40327C
lea	ecx, [ebp+var_7C]
mov	byte ptr [ebp+var_4], 8
call	sub_4282FE
push	[ebp+var_68]	; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
push	[ebp+var_4C]	; Memory
call	sub_4284D8
add	esp, 0Ch
lea	ecx, [ebp+var_A0]
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE
and	byte ptr [ebp+var_4], 0
test	edi, edi
jz	short loc_43EFCC
mov	eax, [edi]
push	edi
call	dword ptr [eax+8]

loc_43EFCC:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_8C]
call	sub_43E4B2
mov	eax, esi

loc_43EFDD:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	14h

loc_43EFEE:
mov	[ebp+var_30], esi
lea	ecx, [ebp+var_30]
mov	byte ptr [ebp+var_4], 0Ch
call	sub_428327
lea	ecx, [ebp+var_30]
mov	byte ptr [ebp+var_4], 9
call	sub_4282FE
lea	ecx, [ebp+var_7C]
mov	byte ptr [ebp+var_4], 8
call	sub_4282FE
push	[ebp+var_68]	; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
push	[ebp+var_4C]	; Memory
call	sub_4284D8
add	esp, 0Ch
lea	ecx, [ebp+var_A0]
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE
and	byte ptr [ebp+var_4], 0
test	edi, edi
jz	short loc_43F04D
mov	eax, [edi]
push	edi
call	dword ptr [eax+8]

loc_43F04D:
mov	esi, [ebp+arg_8]
jmp	loc_43EFCC

loc_43F055:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
mov	[ebp+var_30], esi
lea	ecx, [ebp+var_30]
mov	byte ptr [ebp+var_4], 0Eh
call	sub_428327
lea	ecx, [ebp+var_30]
mov	byte ptr [ebp+var_4], 9
call	sub_4282FE
lea	ecx, [ebp+var_7C]
mov	byte ptr [ebp+var_4], 8
call	sub_4282FE
push	[ebp+var_68]	; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
push	[ebp+var_4C]	; Memory
call	sub_4284D8
add	esp, 0Ch
lea	ecx, [ebp+var_A0]
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE
and	byte ptr [ebp+var_4], 0
test	edi, edi
jz	short loc_43F0BD
mov	eax, [edi]
push	edi
call	dword ptr [eax+8]

loc_43F0BD:
mov	esi, [ebp+arg_8]
jmp	loc_43EFCC

loc_43F0C5:		; Memory
push	[ebp+Memory]
call	sub_4284D8
pop	ecx
mov	[ebp+var_30], esi
lea	ecx, [ebp+var_30]
mov	byte ptr [ebp+var_4], 10h
call	sub_428327
lea	ecx, [ebp+var_30]
mov	byte ptr [ebp+var_4], 9
call	sub_4282FE
lea	ecx, [ebp+var_7C]
mov	byte ptr [ebp+var_4], 8
call	sub_4282FE
push	[ebp+var_68]	; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
push	[ebp+var_4C]	; Memory
call	sub_4284D8
add	esp, 0Ch
lea	ecx, [ebp+var_A0]
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE
and	byte ptr [ebp+var_4], 0
test	edi, edi
jz	short loc_43F12D
mov	eax, [edi]
push	edi
call	dword ptr [eax+8]

loc_43F12D:
mov	esi, 80070057h
jmp	loc_43EFCC
sub_43EBB4 endp




sub_43F137 proc	near
cmp	dword ptr [ecx+28h], 0
jnz	short loc_43F140
xor	eax, eax
retn

loc_43F140:
mov	eax, [ecx+28h]
mov	ecx, [ecx+2Ch]
mov	eax, [ecx+eax*4-4]
mov	eax, [eax]
retn
sub_43F137 endp



; Attributes: bp-based frame

; int __stdcall	sub_43F14D(int,	int, VARIANTARG	*Src, int)
sub_43F14D proc	near

pvarg= VARIANTARG ptr -2Ch
Memory=	dword ptr -1Ch
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
Src= dword ptr	10h
arg_C= dword ptr  14h

mov	eax, offset loc_449C7C
call	__EH_prolog
sub	esp, 20h
push	ebx
push	esi
mov	esi, [ebp+arg_0]
lea	ebx, [esi+94h]
mov	ecx, ebx
call	sub_428327
lea	ecx, [esi+0A8h]
mov	[ebp+var_10], ecx
call	sub_428327
mov	eax, [ebp+arg_C]
test	eax, eax
jle	short loc_43F1E5
mov	esi, [ebp+arg_4]
push	edi
mov	edi, [ebp+Src]
mov	[ebp+arg_0], eax

loc_43F18B:
push	dword ptr [esi]
lea	ecx, [ebp+Memory]
call	sub_403091
and	[ebp+var_4], 0
lea	eax, [ebp+Memory]
push	eax
mov	ecx, ebx
call	sub_4032B4
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
pop	ecx
push	edi		; Src
lea	ecx, [ebp+pvarg]
call	sub_42CC4E
mov	ecx, [ebp+var_10]
lea	eax, [ebp+pvarg]
push	eax		; Src
mov	[ebp+var_4], 1
call	sub_43F258
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
add	esi, 4
add	edi, 10h
dec	[ebp+arg_0]
jnz	short loc_43F18B
pop	edi

loc_43F1E5:
mov	ecx, [ebp+var_C]
pop	esi
xor	eax, eax
pop	ebx
mov	large fs:0, ecx
leave
retn	10h
sub_43F14D endp



; Attributes: bp-based frame

sub_43F1F7 proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ebx
mov	ebx, ecx
mov	ecx, [ebp+arg_4]
push	edi
mov	edi, [ebp+arg_0]
mov	eax, [ebx+8]
add	ecx, edi
cmp	ecx, eax
jle	short loc_43F213
sub	eax, edi
mov	[ebp+arg_4], eax

loc_43F213:
mov	eax, [ebp+arg_4]
test	eax, eax
jle	short loc_43F247
push	esi
mov	esi, edi
shl	esi, 2
mov	[ebp+arg_0], eax

loc_43F223:
mov	eax, [ebx+0Ch]
mov	ecx, [eax+esi]
test	ecx, ecx
mov	[ebp+Memory], ecx
jz	short loc_43F23E
call	sub_4335EF
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_43F23E:
add	esi, 4
dec	[ebp+arg_0]
jnz	short loc_43F223
pop	esi

loc_43F247:
push	[ebp+arg_4]
mov	ecx, ebx
push	edi
call	sub_42847F
pop	edi
pop	ebx
leave
retn	8
sub_43F1F7 endp



; Attributes: bp-based frame

; int __stdcall	sub_43F258(VARIANTARG *Src)
sub_43F258 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
Src= dword ptr	8

mov	eax, offset unknown_libname_45 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	10h		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_10], ecx
xor	eax, eax
cmp	ecx, eax
mov	[ebp+var_4], eax
jz	short loc_43F284
push	[ebp+Src]	; Src
call	sub_42CC4E

loc_43F284:
or	[ebp+var_4], 0FFFFFFFFh
push	eax
mov	ecx, esi
call	sub_429907
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_43F258 endp



; Attributes: bp-based frame

sub_43F29F proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_449CA4
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44CAC4
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_43F29F endp



; Attributes: bp-based frame

sub_43F2D7 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset unknown_libname_46 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	28h		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_10], ecx
xor	eax, eax
cmp	ecx, eax
mov	[ebp+var_4], eax
jz	short loc_43F303
push	[ebp+arg_0]
call	sub_43F408

loc_43F303:
or	[ebp+var_4], 0FFFFFFFFh
push	eax
mov	ecx, esi
call	sub_429907
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_43F2D7 endp



; Attributes: bp-based frame

sub_43F31E proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ebx
mov	ebx, ecx
mov	ecx, [ebp+arg_4]
push	edi
mov	edi, [ebp+arg_0]
mov	eax, [ebx+8]
add	ecx, edi
cmp	ecx, eax
jle	short loc_43F33A
sub	eax, edi
mov	[ebp+arg_4], eax

loc_43F33A:
mov	eax, [ebp+arg_4]
test	eax, eax
jle	short loc_43F36E
push	esi
mov	esi, edi
shl	esi, 2
mov	[ebp+arg_0], eax

loc_43F34A:
mov	eax, [ebx+0Ch]
mov	ecx, [eax+esi]
test	ecx, ecx
mov	[ebp+Memory], ecx
jz	short loc_43F365
call	sub_43E3D8
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx

loc_43F365:
add	esi, 4
dec	[ebp+arg_0]
jnz	short loc_43F34A
pop	esi

loc_43F36E:
push	[ebp+arg_4]
mov	ecx, ebx
push	edi
call	sub_42847F
pop	edi
pop	ebx
leave
retn	8
sub_43F31E endp




sub_43F37F proc	near

arg_0= dword ptr  4

mov	eax, [esp+arg_0]
push	esi
mov	esi, ecx
test	eax, eax
mov	[esi], eax
jz	short loc_43F392
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+4]

loc_43F392:
mov	eax, esi
pop	esi
retn	4
sub_43F37F endp




; int __thiscall sub_43F398(void *Memory, char)
sub_43F398 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_43F3B4
test	[esp+4+arg_0], 1
jz	short loc_43F3AE
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_43F3AE:
mov	eax, esi
pop	esi
retn	4
sub_43F398 endp



; Attributes: bp-based frame

sub_43F3B4 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset loc_449CCC
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
mov	[ebp+var_10], esi
mov	dword ptr [esi], offset	off_44CAD4
and	[ebp+var_4], 0
call	sub_428327
or	[ebp+var_4], 0FFFFFFFFh
mov	ecx, esi
call	sub_4282FE
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_43F3B4 endp




; int __thiscall sub_43F3EC(void *Memory, char)
sub_43F3EC proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	sub_43F29F
test	[esp+4+arg_0], 1
jz	short loc_43F402
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_43F402:
mov	eax, esi
pop	esi
retn	4
sub_43F3EC endp




sub_43F408 proc	near

arg_0= dword ptr  4

push	esi
push	edi
mov	edi, [esp+8+arg_0]
mov	esi, ecx
mov	eax, [edi]
lea	ecx, [esi+10h]
mov	[esi], eax
mov	eax, [edi+4]
mov	[esi+4], eax
mov	eax, [edi+8]
mov	[esi+8], eax
mov	eax, [edi+0Ch]
mov	[esi+0Ch], eax
lea	eax, [edi+10h]
push	eax
call	sub_4030F2
mov	al, [edi+1Ch]
mov	[esi+1Ch], al
mov	al, [edi+1Dh]
mov	[esi+1Dh], al
mov	al, [edi+1Eh]
mov	[esi+1Eh], al
mov	al, [edi+1Fh]
mov	[esi+1Fh], al
mov	eax, [edi+20h]
mov	[esi+20h], eax
mov	eax, [edi+24h]
mov	[esi+24h], eax
mov	eax, esi
pop	edi
pop	esi
retn	4
sub_43F408 endp



; Attributes: bp-based frame

sub_43F45D proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ebx
push	esi
push	edi
mov	edi, [ecx+1Ch]
xor	ebx, ebx
mov	[ebp+var_4], ecx
test	edi, edi
jz	short loc_43F4A3
jmp	short loc_43F475

loc_43F472:
mov	ecx, [ebp+var_4]

loc_43F475:
lea	eax, [edi+ebx]
cdq
sub	eax, edx
mov	esi, eax
mov	eax, [ecx+20h]
sar	esi, 1
mov	eax, [eax+esi*4]
mov	edx, [eax+4]
mov	eax, [ebp+arg_0]
mov	ecx, [eax]
call	sub_4282B1
test	eax, eax
jz	short loc_43F4AD
jge	short loc_43F49C
mov	edi, esi
jmp	short loc_43F49F

loc_43F49C:
lea	ebx, [esi+1]

loc_43F49F:
cmp	ebx, edi
jnz	short loc_43F472

loc_43F4A3:
mov	eax, [ebp+arg_4]
mov	[eax], ebx
or	eax, 0FFFFFFFFh
jmp	short loc_43F4AF

loc_43F4AD:
mov	eax, esi

loc_43F4AF:
pop	edi
pop	esi
pop	ebx
leave
retn	8
sub_43F45D endp



; Attributes: bp-based frame

sub_43F4B6 proc	near

arg_0= dword ptr  8

push	ebp
mov	ebp, esp
lea	eax, [ebp+arg_0]
push	eax
push	[ebp+arg_0]
call	sub_43F45D
pop	ebp
retn	4
sub_43F4B6 endp



; Attributes: bp-based frame

sub_43F4C9 proc	near

var_1C=	byte ptr -1Ch
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_449CE0
call	__EH_prolog
sub	esp, 10h
push	esi
mov	esi, ecx
lea	ecx, [ebp+var_1C]
call	sub_43C9A9
and	[ebp+var_4], 0
add	esi, 28h
push	eax
mov	ecx, esi
call	sub_43FBCC
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
call	sub_4284D8
mov	eax, [esi+8]
pop	ecx
mov	ecx, [esi+0Ch]
push	[ebp+arg_4]
mov	ecx, [ecx+eax*4-4]
add	ecx, 4
call	sub_40312C
mov	eax, [esi+8]
mov	ecx, [esi+0Ch]
pop	esi
mov	eax, [ecx+eax*4-4]
mov	ecx, [ebp+arg_0]
mov	[eax], ecx
mov	ecx, [ebp+var_C]
mov	large fs:0, ecx
leave
retn	8
sub_43F4C9 endp



; Attributes: bp-based frame

sub_43F530 proc	near

var_70=	byte ptr -70h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= byte ptr	 0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_449CF4
call	__EH_prolog
sub	esp, 64h
lea	eax, [ebp+var_10]
push	edi
push	eax
mov	edi, ecx
push	[ebp+arg_8]
call	sub_43F45D
test	eax, eax
jl	short loc_43F567
mov	ecx, [edi+20h]
cmp	[ebp+arg_4], 0
mov	eax, [ecx+eax*4]
jz	short loc_43F5B1
mov	ecx, [ebp+arg_0]
mov	byte ptr [eax+3Ch], 1
mov	[eax], ecx
jmp	short loc_43F5B1

loc_43F567:
push	esi
lea	ecx, [ebp+var_70]
call	sub_43C96F
and	[ebp+var_4], 0
push	eax
push	[ebp+var_10]
lea	ecx, [edi+14h]
call	sub_43FB76
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+var_70]
call	sub_43C409
mov	eax, [edi+20h]
mov	ecx, [ebp+var_10]
push	[ebp+arg_8]
mov	esi, [eax+ecx*4]
lea	ecx, [esi+4]
call	sub_40312C
mov	eax, [ebp+arg_0]
mov	[esi+10h], edi
mov	[esi], eax
mov	al, [ebp+arg_4]
mov	[esi+3Ch], al
mov	eax, esi
pop	esi

loc_43F5B1:
mov	ecx, [ebp+var_C]
pop	edi
mov	large fs:0, ecx
leave
retn	0Ch
sub_43F530 endp




sub_43F5C0 proc	near
push	esi
mov	esi, ecx
lea	ecx, [esi+14h]
call	sub_428327
lea	ecx, [esi+28h]
call	sub_428327
pop	esi
retn
sub_43F5C0 endp



; Attributes: bp-based frame

sub_43F5D5 proc	near

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

mov	eax, offset loc_449D10
call	__EH_prolog
sub	esp, 18h
push	ebx
push	esi
mov	esi, ecx
mov	ecx, [ebp+arg_0]
call	sub_428327
xor	ebx, ebx
push	3
lea	ecx, [ebp+var_18]
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
mov	[ebp+var_10], ebx
call	sub_403396
mov	eax, esi
mov	[ebp+var_4], ebx
add	esi, 10h

loc_43F60B:
cmp	[esi], ebx
jz	short loc_43F63E
push	dword ptr [eax+4]
lea	ecx, [ebp+Memory]
call	sub_403091
mov	ecx, [ebp+arg_0]
lea	eax, [ebp+Memory]
push	eax
push	ebx
mov	byte ptr [ebp+var_4], 1
call	sub_4140D0
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
mov	eax, [esi]
pop	ecx
lea	esi, [eax+10h]
jmp	short loc_43F60B

loc_43F63E:		; Memory
push	[ebp+var_18]
call	sub_4284D8
pop	ecx
pop	esi
mov	ecx, [ebp+var_C]
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_43F5D5 endp



; Attributes: bp-based frame

sub_43F657 proc	near

var_40=	dword ptr -40h
var_34=	dword ptr -34h
Memory=	dword ptr -28h
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_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_449D3C
call	__EH_prolog
sub	esp, 34h
push	ebx
push	esi
mov	esi, ecx
push	edi
xor	ebx, ebx
push	3
lea	ecx, [ebp+var_1C]
mov	[ebp+var_10], ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], ebx
call	sub_403396
mov	[ebp+var_4], ebx

loc_43F684:
cmp	[esi+10h], ebx
lea	edi, [esi+10h]
jz	short loc_43F6E7
push	5Ch
lea	ecx, [ebp+var_40]
call	sub_409516
push	eax
lea	edx, [esi+4]
lea	ecx, [ebp+var_34]
mov	byte ptr [ebp+var_4], 1
call	sub_40356A
lea	ecx, [ebp+var_1C]
mov	edx, eax
push	ecx
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 2
call	sub_40356A
push	eax
lea	ecx, [ebp+var_1C]
mov	byte ptr [ebp+var_4], 3
call	sub_40312C
push	[ebp+Memory]	; Memory
call	sub_4284D8
push	[ebp+var_34]	; Memory
call	sub_4284D8
push	[ebp+var_40]	; Memory
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
mov	esi, [edi]
add	esp, 0Ch
jmp	short loc_43F684

loc_43F6E7:
mov	ecx, [ebp+arg_0]
lea	eax, [ebp+var_1C]
push	eax
call	sub_4030F2
push	[ebp+var_1C]	; Memory
call	sub_4284D8
mov	eax, [ebp+arg_0]
pop	ecx
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_43F657 endp




sub_43F710 proc	near

arg_0= dword ptr  4

push	ebx
mov	ebx, [esp+4+arg_0]
push	esi
mov	esi, ecx
push	edi
cmp	byte ptr [esi+3Ch], 0
jz	short loc_43F728
push	dword ptr [esi]
mov	ecx, ebx
call	sub_429907

loc_43F728:
xor	edi, edi
cmp	[esi+1Ch], edi
jle	short loc_43F741

loc_43F72F:
mov	eax, [esi+20h]
push	ebx
mov	ecx, [eax+edi*4]
call	sub_43F710
inc	edi
cmp	edi, [esi+1Ch]
jl	short loc_43F72F

loc_43F741:
xor	edi, edi
cmp	[esi+30h], edi
jle	short loc_43F75D

loc_43F748:
mov	eax, [esi+34h]
mov	ecx, ebx
mov	eax, [eax+edi*4]
push	dword ptr [eax]
call	sub_429907
inc	edi
cmp	edi, [esi+30h]
jl	short loc_43F748

loc_43F75D:
pop	edi
pop	esi
pop	ebx
retn	4
sub_43F710 endp



; Attributes: bp-based frame

sub_43F763 proc	near

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

push	ebp
mov	ebp, esp
push	ebx
mov	ebx, [ebp+arg_8]
push	esi
mov	esi, ecx
mov	ecx, ebx
call	sub_428327
mov	eax, [ebp+arg_4]
test	eax, eax
jbe	short loc_43F7B3
push	edi
mov	edi, [ebp+arg_0]
mov	[ebp+arg_8], eax

loc_43F782:
mov	eax, [edi]
mov	ecx, [esi+1Ch]
cmp	eax, ecx
jge	short loc_43F799
mov	ecx, [esi+20h]
push	ebx
mov	ecx, [ecx+eax*4]
call	sub_43F710
jmp	short loc_43F7AA

loc_43F799:
sub	eax, ecx
mov	ecx, [esi+34h]
mov	eax, [ecx+eax*4]
mov	ecx, ebx
push	dword ptr [eax]
call	sub_429907

loc_43F7AA:
add	edi, 4
dec	[ebp+arg_8]
jnz	short loc_43F782
pop	edi

loc_43F7B3:
mov	edx, [ebx+8]
mov	ecx, [ebx+0Ch]
call	sub_441740
pop	esi
pop	ebx
pop	ebp
retn	0Ch
sub_43F763 endp



; Attributes: bp-based frame

sub_43F7C4 proc	near

pvarg= VARIANTARG ptr -20h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_449D50
call	__EH_prolog
sub	esp, 14h
push	ebx
push	esi
mov	esi, ecx
xor	ebx, ebx
push	edi
mov	[ebp+var_10], ebx
mov	[esi+48h], ebx
mov	[esi+40h], ebx
mov	[esi+4Ch], ebx
mov	[esi+44h], ebx
mov	eax, [esi+1Ch]
mov	[esi+54h], eax
mov	eax, [esi+30h]
mov	[esi+58h], eax
mov	byte ptr [esi+3Dh], 1
mov	[esi+50h], ebx
cmp	[esi+30h], ebx
jle	short loc_43F876

loc_43F7FF:
mov	eax, [esi+34h]
mov	ecx, [ebp+var_10]
push	7
mov	eax, [eax+ecx*4]
mov	ecx, [ebp+arg_0]
mov	edi, [eax]
mov	edx, edi
call	sub_43F8DF
add	[esi+40h], eax
mov	ecx, [ebp+arg_0]
push	8
adc	[esi+44h], edx
mov	edx, edi
call	sub_43F8DF
add	[esi+48h], eax
mov	word ptr [ebp+pvarg.anonymous_0], bx
mov	word ptr [ebp+pvarg.anonymous_0+2], bx
adc	[esi+4Ch], edx
mov	eax, [ebp+arg_0]
lea	edx, [ebp+pvarg]
push	edx
push	13h
mov	ecx, [eax]
push	edi
push	eax
mov	[ebp+var_4], ebx
call	dword ptr [ecx+18h]
test	eax, eax
jnz	short loc_43F85C
cmp	word ptr [ebp+pvarg.anonymous_0], 13h
jnz	short loc_43F85C
mov	eax, dword ptr [ebp+pvarg.anonymous_0+8]
add	[esi+50h], eax
jmp	short loc_43F85F

loc_43F85C:
mov	[esi+3Dh], bl

loc_43F85F:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
inc	[ebp+var_10]
mov	eax, [ebp+var_10]
cmp	eax, [esi+30h]
jl	short loc_43F7FF

loc_43F876:
cmp	[esi+1Ch], ebx
mov	[ebp+var_10], ebx
jle	short loc_43F8CE

loc_43F87E:
mov	eax, [esi+20h]
mov	ecx, [ebp+var_10]
push	[ebp+arg_0]
mov	edi, [eax+ecx*4]
mov	ecx, edi
call	sub_43F7C4
mov	eax, [edi+40h]
mov	ecx, [edi+44h]
add	[esi+40h], eax
adc	[esi+44h], ecx
mov	eax, [edi+48h]
mov	ecx, [edi+4Ch]
add	[esi+48h], eax
adc	[esi+4Ch], ecx
mov	eax, [edi+58h]
add	[esi+58h], eax
mov	eax, [edi+54h]
add	[esi+54h], eax
mov	eax, [edi+50h]
add	[esi+50h], eax
cmp	[edi+3Dh], bl
jnz	short loc_43F8C3
mov	[esi+3Dh], bl

loc_43F8C3:
inc	[ebp+var_10]
mov	eax, [ebp+var_10]
cmp	eax, [esi+1Ch]
jl	short loc_43F87E

loc_43F8CE:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_43F7C4 endp



; Attributes: bp-based frame

sub_43F8DF proc	near

pvarg= VARIANTARG ptr -1Ch
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_449D64
call	__EH_prolog
sub	esp, 10h
push	esi
xor	esi, esi
push	edi
mov	word ptr [ebp+pvarg.anonymous_0], si
mov	word ptr [ebp+pvarg.anonymous_0+2], si
mov	eax, [ecx]
lea	edi, [ebp+pvarg]
push	edi
mov	[ebp+var_4], esi
push	[ebp+arg_0]
push	edx
push	ecx
call	dword ptr [eax+18h]
test	eax, eax
jnz	short loc_43F921
cmp	word ptr [ebp+pvarg.anonymous_0], si
jz	short loc_43F921
lea	ecx, [ebp+pvarg]
call	sub_42D2C6
mov	edi, eax
mov	esi, edx
jmp	short loc_43F923

loc_43F921:
xor	edi, edi

loc_43F923:
or	[ebp+var_4], 0FFFFFFFFh
lea	ecx, [ebp+pvarg] ; pvarg
call	sub_42CDE1
mov	ecx, [ebp+var_C]
mov	eax, edi
mov	edx, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_43F8DF endp



; Attributes: bp-based frame

sub_43F943 proc	near

Memory=	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
bstrString= dword ptr -18h
var_14=	dword ptr -14h
var_E= byte ptr	-0Eh
var_D= byte ptr	-0Dh
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_449D88
call	__EH_prolog
sub	esp, 3Ch
push	ebx
push	esi
push	edi
mov	edi, ecx
mov	[ebp+var_20], edi
call	sub_43F5C0
mov	eax, [ebp+arg_0]
xor	ebx, ebx
lea	ecx, [ebp+var_24]
mov	esi, [eax]
mov	[edi+60h], bl
push	ecx
push	esi
mov	eax, [esi]
call	dword ptr [eax+24h]
cmp	[ebp+var_24], ebx
mov	[ebp+var_14], ebx
jbe	short loc_43F9DA
mov	edi, ds:SysFreeString

loc_43F97F:
mov	[ebp+bstrString], ebx
lea	ecx, [ebp+var_E]
mov	eax, [esi]
push	ecx
lea	ecx, [ebp+var_28]
push	ecx
lea	ecx, [ebp+bstrString]
push	ecx
mov	[ebp+var_4], ebx
push	[ebp+var_14]
push	esi
call	dword ptr [eax+28h]
cmp	eax, ebx
mov	[ebp+var_30], eax
jnz	short loc_43F9BD
cmp	[ebp+var_28], 3
jz	short loc_43F9CA
push	[ebp+bstrString] ; bstrString
or	[ebp+var_4], 0FFFFFFFFh
call	edi ; SysFreeString
inc	[ebp+var_14]
mov	eax, [ebp+var_14]
cmp	eax, [ebp+var_24]
jb	short loc_43F97F
jmp	short loc_43F9DA

loc_43F9BD:		; bstrString
push	[ebp+bstrString]
call	edi ; SysFreeString
mov	eax, [ebp+var_30]
jmp	loc_43FB3F

loc_43F9CA:
mov	eax, [ebp+var_20]
push	[ebp+bstrString] ; bstrString
or	[ebp+var_4], 0FFFFFFFFh
mov	byte ptr [eax+60h], 1
call	edi ; SysFreeString

loc_43F9DA:
mov	eax, [esi]
lea	ecx, [ebp+var_1C]
push	ecx
push	esi
call	dword ptr [eax+14h]
cmp	eax, ebx
jnz	loc_43FB3F
mov	eax, [ebp+arg_4]
cmp	eax, ebx
jz	short loc_43FA06
mov	ecx, [ebp+var_1C]
mov	edx, [eax]
push	ebx
push	ecx
push	eax
call	dword ptr [edx+0Ch]
cmp	eax, ebx
jnz	loc_43FB3F

loc_43FA06:
push	3
lea	ecx, [ebp+var_3C]
mov	[ebp+var_3C], ebx
mov	[ebp+var_38], ebx
mov	[ebp+var_34], ebx
call	sub_403396
xor	edi, edi
cmp	[ebp+var_1C], ebx
mov	[ebp+var_4], 1
jbe	loc_43FB2B

loc_43FA2B:
mov	eax, [ebp+arg_4]
cmp	eax, ebx
jz	short loc_43FA55
test	edi, 0FFFFFh
jnz	short loc_43FA55
mov	ecx, [eax]
lea	edx, [ebp+var_2C]
push	edx
push	eax
mov	[ebp+var_2C], edi
mov	[ebp+var_28], ebx
call	dword ptr [ecx+10h]
cmp	eax, ebx
mov	[ebp+var_30], eax
jnz	loc_43FB50

loc_43FA55:
push	3
lea	ecx, [ebp+Memory]
mov	[ebp+Memory], ebx
mov	[ebp+var_44], ebx
mov	[ebp+var_40], ebx
call	sub_403396
mov	ecx, [ebp+arg_0]
lea	eax, [ebp+Memory]
push	eax
push	edi
mov	byte ptr [ebp+var_4], 2
call	sub_435829
cmp	eax, ebx
jnz	loc_43FB5E
mov	eax, [ebp+var_20]
mov	ecx, [ebp+var_3C]
mov	[ebp+var_14], eax
mov	eax, [ebp+var_44]
mov	[ebp+var_38], ebx
cmp	eax, ebx
mov	[ebp+var_30], eax
mov	[ecx], bx
mov	[ebp+bstrString], ebx
jle	short loc_43FAE4

loc_43FA9D:
mov	eax, [ebp+Memory]
mov	ecx, [ebp+bstrString]
mov	ax, [eax+ecx*2]
cmp	ax, 5Ch
jz	short loc_43FABE
cmp	ax, 2Fh
jz	short loc_43FABE
push	eax
lea	ecx, [ebp+var_3C]
call	sub_40316A
jmp	short loc_43FAD9

loc_43FABE:
mov	ecx, [ebp+var_14]
lea	eax, [ebp+var_3C]
push	eax
push	ebx
push	0FFFFFFFFh
call	sub_43F530
mov	[ebp+var_14], eax
mov	eax, [ebp+var_3C]
mov	[ebp+var_38], ebx
mov	[eax], bx

loc_43FAD9:
inc	[ebp+bstrString]
mov	eax, [ebp+bstrString]
cmp	eax, [ebp+var_30]
jl	short loc_43FA9D

loc_43FAE4:
lea	eax, [ebp+var_D]
mov	edx, edi
push	eax
mov	ecx, esi
call	sub_43581B
cmp	eax, ebx
jnz	short loc_43FB5E
cmp	[ebp+var_D], bl
lea	eax, [ebp+var_3C]
push	eax
jz	short loc_43FB0B
mov	ecx, [ebp+var_14]
push	1
push	edi
call	sub_43F530
jmp	short loc_43FB14

loc_43FB0B:
mov	ecx, [ebp+var_14]
push	edi
call	sub_43F4C9

loc_43FB14:		; Memory
push	[ebp+Memory]
mov	byte ptr [ebp+var_4], 1
call	sub_4284D8
inc	edi
pop	ecx
cmp	edi, [ebp+var_1C]
jb	loc_43FA2B

loc_43FB2B:
mov	ecx, [ebp+var_20]
push	esi
call	sub_43F7C4
push	[ebp+var_3C]	; Memory
call	sub_4284D8
pop	ecx
xor	eax, eax

loc_43FB3F:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8

loc_43FB50:		; Memory
push	[ebp+var_3C]
call	sub_4284D8
mov	eax, [ebp+var_30]
pop	ecx
jmp	short loc_43FB3F

loc_43FB5E:		; Memory
push	[ebp+Memory]
mov	esi, eax
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
pop	ecx
mov	eax, esi
pop	ecx
jmp	short loc_43FB3F
sub_43F943 endp



; Attributes: bp-based frame

sub_43FB76 proc	near

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

mov	eax, offset unknown_libname_47 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	ebx
push	esi
push	edi
mov	ebx, ecx
push	60h		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_10], ecx
xor	esi, esi
cmp	ecx, esi
mov	[ebp+var_4], esi
jz	short loc_43FBA6
push	[ebp+arg_4]
call	sub_43FC23
mov	esi, eax

loc_43FBA6:
mov	edi, [ebp+arg_0]
or	[ebp+var_4], 0FFFFFFFFh
push	edi
mov	ecx, ebx
call	sub_428462
mov	eax, [ebx+0Ch]
mov	ecx, [ebp+var_C]
mov	[eax+edi*4], esi
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_43FB76 endp



; Attributes: bp-based frame

sub_43FBCC proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset unknown_libname_48 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	esi
push	edi
mov	edi, ecx
push	10h		; Size
call	sub_4284B1
mov	esi, eax
pop	ecx
mov	[ebp+var_10], esi
and	[ebp+var_4], 0
test	esi, esi
jz	short loc_43FC05
mov	eax, [ebp+arg_0]
mov	ecx, [eax]
add	eax, 4
mov	[esi], ecx
push	eax
lea	ecx, [esi+4]
call	sub_4030F2
jmp	short loc_43FC07

loc_43FC05:
xor	esi, esi

loc_43FC07:
or	[ebp+var_4], 0FFFFFFFFh
push	esi
mov	ecx, edi
call	sub_429907
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_43FBCC endp



; Attributes: bp-based frame

sub_43FC23 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_449DCF
call	__EH_prolog
push	ecx
push	esi
push	edi
mov	edi, [ebp+arg_0]
mov	esi, ecx
mov	[ebp+var_10], esi
mov	eax, [edi]
lea	ecx, [esi+4]
mov	[esi], eax
lea	eax, [edi+4]
push	eax
call	sub_4030F2
mov	eax, [edi+10h]
and	[ebp+var_4], 0
mov	[esi+10h], eax
lea	eax, [edi+14h]
push	eax
lea	ecx, [esi+14h]
call	sub_43FCB6
lea	eax, [edi+28h]
lea	ecx, [esi+28h]
push	eax
mov	byte ptr [ebp+var_4], 1
call	sub_43FD02
mov	al, [edi+3Ch]
mov	ecx, [ebp+var_C]
mov	[esi+3Ch], al
mov	al, [edi+3Dh]
mov	[esi+3Dh], al
mov	eax, [edi+40h]
mov	[esi+40h], eax
mov	eax, [edi+44h]
mov	[esi+44h], eax
mov	eax, [edi+48h]
mov	[esi+48h], eax
mov	eax, [edi+4Ch]
mov	[esi+4Ch], eax
mov	eax, [edi+50h]
mov	[esi+50h], eax
mov	eax, [edi+54h]
mov	[esi+54h], eax
mov	eax, [edi+58h]
mov	[esi+58h], eax
mov	eax, esi
pop	edi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_43FC23 endp



; Attributes: bp-based frame

sub_43FCB6 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_449DE4
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
xor	eax, eax
mov	[ebp+var_10], esi
mov	[esi+4], eax
mov	[esi+8], eax
mov	[esi+0Ch], eax
mov	dword ptr [esi+10h], 4
mov	[ebp+var_4], eax
mov	dword ptr [esi], offset	off_44CA40
call	sub_428327
push	[ebp+arg_0]
mov	ecx, esi
call	sub_43FD4E
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_43FCB6 endp



; Attributes: bp-based frame

sub_43FD02 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset loc_449DF8
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
xor	eax, eax
mov	[ebp+var_10], esi
mov	[esi+4], eax
mov	[esi+8], eax
mov	[esi+0Ch], eax
mov	dword ptr [esi+10h], 4
mov	[ebp+var_4], eax
mov	dword ptr [esi], offset	off_44CA48
call	sub_428327
push	[ebp+arg_0]
mov	ecx, esi
call	sub_43FD87
mov	ecx, [ebp+var_C]
mov	eax, esi
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_43FD02 endp




sub_43FD4E proc	near

arg_0= dword ptr  4

push	ebx
push	ebp
mov	ebp, [esp+8+arg_0]
push	esi
mov	esi, ecx
push	edi
mov	edi, [ebp+8]
mov	eax, [esi+8]
add	eax, edi
push	eax
call	sub_428378
xor	ebx, ebx
test	edi, edi
jle	short loc_43FD7E

loc_43FD6C:
mov	eax, [ebp+0Ch]
mov	ecx, esi
push	dword ptr [eax+ebx*4]
call	sub_43FDC0
inc	ebx
cmp	ebx, edi
jl	short loc_43FD6C

loc_43FD7E:
mov	eax, esi
pop	edi
pop	esi
pop	ebp
pop	ebx
retn	4
sub_43FD4E endp




sub_43FD87 proc	near

arg_0= dword ptr  4

push	ebx
push	ebp
mov	ebp, [esp+8+arg_0]
push	esi
mov	esi, ecx
push	edi
mov	edi, [ebp+8]
mov	eax, [esi+8]
add	eax, edi
push	eax
call	sub_428378
xor	ebx, ebx
test	edi, edi
jle	short loc_43FDB7

loc_43FDA5:
mov	eax, [ebp+0Ch]
mov	ecx, esi
push	dword ptr [eax+ebx*4]
call	sub_43FBCC
inc	ebx
cmp	ebx, edi
jl	short loc_43FDA5

loc_43FDB7:
mov	eax, esi
pop	edi
pop	esi
pop	ebp
pop	ebx
retn	4
sub_43FD87 endp



; Attributes: bp-based frame

sub_43FDC0 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8

mov	eax, offset unknown_libname_49 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
push	60h		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_10], ecx
xor	eax, eax
cmp	ecx, eax
mov	[ebp+var_4], eax
jz	short loc_43FDEC
push	[ebp+arg_0]
call	sub_43FC23

loc_43FDEC:
or	[ebp+var_4], 0FFFFFFFFh
push	eax
mov	ecx, esi
call	sub_429907
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_43FDC0 endp



; Attributes: bp-based frame

sub_43FE07 proc	near

var_4C=	dword ptr -4Ch
var_44=	dword ptr -44h
var_40=	dword ptr -40h
var_38=	dword ptr -38h
Memory=	dword ptr -24h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_449E62
call	__EH_prolog
sub	esp, 40h
push	ebx
push	esi
push	edi
xor	ebx, ebx
mov	[ebp+var_10], esp
push	0F8h		; Size
mov	[ebp+var_4], ebx
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_18], ecx
cmp	ecx, ebx
mov	byte ptr [ebp+var_4], 1
jz	short loc_43FE40
call	sub_43BDED
mov	esi, eax
jmp	short loc_43FE42

loc_43FE40:
xor	esi, esi

loc_43FE42:
cmp	esi, ebx
mov	byte ptr [ebp+var_4], bl
mov	[ebp+var_18], esi
jz	short loc_43FE52
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]

loc_43FE52:
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 2
call	sub_40337B
mov	[ebp+var_38], offset off_44B510
mov	eax, [ebp+arg_0]
mov	byte ptr [ebp+var_4], 3
mov	edi, [eax+10h]

loc_43FE6F:
cmp	[edi+10h], ebx
jz	short loc_43FE86
lea	eax, [edi+4]
lea	ecx, [ebp+var_38]
push	eax
push	ebx
call	sub_4140D0
mov	edi, [edi+10h]
jmp	short loc_43FE6F

loc_43FE86:
mov	[ebp+var_14], ebx
mov	edi, [ebp+arg_10]
mov	byte ptr [ebp+var_4], 4
cmp	edi, ebx
mov	[ebp+arg_10], edi
jz	short loc_43FE9D
mov	eax, [edi]
push	edi
call	dword ptr [eax+4]

loc_43FE9D:
mov	eax, [edi]
lea	ecx, [ebp+var_14]
push	ecx
push	offset unk_44B610
push	edi
mov	byte ptr [ebp+var_4], 5
call	dword ptr [eax]
cmp	eax, ebx
mov	[ebp+arg_10], eax
mov	byte ptr [ebp+var_4], 4
jz	short loc_43FF0C
cmp	edi, ebx
jz	short loc_43FEC4
mov	eax, [edi]
push	edi
call	dword ptr [eax+8]

loc_43FEC4:
mov	eax, [ebp+var_14]
mov	byte ptr [ebp+var_4], 3
cmp	eax, ebx
jz	short loc_43FED5
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43FED5:
mov	[ebp+var_38], offset off_44B510
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 6
call	sub_428327
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE
mov	eax, [ebp+var_18]
mov	byte ptr [ebp+var_4], bl
cmp	eax, ebx
jz	short loc_43FF04
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_43FF04:
mov	eax, [ebp+arg_10]
jmp	loc_440049

loc_43FF0C:
cmp	edi, ebx
jz	short loc_43FF16
mov	eax, [edi]
push	edi
call	dword ptr [eax+8]

loc_43FF16:
mov	edi, [ebp+arg_0]
push	[ebp+arg_C]
xor	eax, eax
lea	ecx, [ebp+Memory]
cmp	[edi+34h], bl
mov	[esi+0E8h], ebx
mov	[esi+0E0h], ebx
mov	[esi+0D8h], ebx
setnz	al
inc	eax
mov	[esi+0BBh], bl
mov	[esi+30h], eax
mov	[esi+34h], ebx
mov	[esi+0ECh], ebx
mov	[esi+0E4h], ebx
mov	[esi+0DCh], ebx
mov	[esi+0F0h], ebx
call	sub_403091
mov	eax, [edi+1Ch]
push	0FFFFFFFFh
add	eax, 20h
push	0FFFFFFFFh
mov	byte ptr [ebp+var_4], 7
mov	ecx, [eax+8]
mov	eax, [eax+0Ch]
mov	eax, [eax+ecx*4-4]
lea	ecx, [ebp+var_38]
push	ecx
lea	ecx, [ebp+Memory]
push	ecx
push	ebx
push	ebx
push	ebx
push	[ebp+var_14]
mov	ecx, esi
push	eax
push	ebx
call	sub_43101A
push	[ebp+Memory]	; Memory
mov	byte ptr [ebp+var_4], 4
call	sub_4284D8
pop	ecx
push	4
lea	ecx, [ebp+var_4C]
call	sub_402794
mov	[ebp+var_4C], offset off_44B518
lea	eax, [ebp+var_4C]
lea	ecx, [edi-18h]
push	eax
mov	byte ptr [ebp+var_4], 8
push	[ebp+arg_8]
push	[ebp+arg_4]
call	sub_43BBAB
mov	eax, [edi+1Ch]
cmp	[eax+28h], ebx
jnz	short loc_43FFD2
xor	eax, eax
jmp	short loc_43FFDE

loc_43FFD2:
mov	ecx, [eax+28h]
mov	eax, [eax+2Ch]
mov	eax, [eax+ecx*4-4]
mov	eax, [eax]

loc_43FFDE:
mov	esi, [ebp+var_18]
mov	ecx, [eax]
push	esi
push	ebx
push	[ebp+var_44]
push	[ebp+var_40]
push	eax
call	dword ptr [ecx+1Ch]
lea	ecx, [ebp+var_4C]
mov	edi, eax
mov	byte ptr [ebp+var_4], 4
call	sub_4282FE
mov	eax, [ebp+var_14]
mov	byte ptr [ebp+var_4], 3
cmp	eax, ebx
jz	short loc_44000E
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_44000E:
mov	[ebp+var_38], offset off_44B510
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 9
call	sub_428327
lea	ecx, [ebp+var_38]
mov	byte ptr [ebp+var_4], 2
call	sub_4282FE
cmp	esi, ebx
mov	byte ptr [ebp+var_4], bl
jz	short loc_44003A
mov	eax, [esi]
push	esi
call	dword ptr [eax+8]

loc_44003A:
mov	eax, edi
jmp	short loc_440049

loc_44003E:
mov	eax, offset loc_440044
retn

loc_440044:
mov	eax, 8007000Eh

loc_440049:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	14h
sub_43FE07 endp



; Attributes: bp-based frame

sub_44005A proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4

mov	eax, offset unknown_libname_50 ; Microsoft VisualC 2-11/net runtime
call	__EH_prolog
push	ecx
push	esi
mov	esi, ecx
cmp	dword ptr [esi+8], 0
jnz	short loc_4400A4
push	58h		; Size
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+var_10], ecx
and	[ebp+var_4], 0
test	ecx, ecx
jz	short loc_44008A
call	sub_43C72E
jmp	short loc_44008C

loc_44008A:
xor	eax, eax

loc_44008C:
or	[ebp+var_4], 0FFFFFFFFh
push	eax
lea	ecx, [esi+0Ch]
mov	[esi+8], eax
call	sub_43D0DB
mov	ecx, [esi+8]
call	sub_434F92

loc_4400A4:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn
sub_44005A endp



; Attributes: bp-based frame

sub_4400B1 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
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

mov	eax, offset loc_449EA2
call	__EH_prolog
push	ecx
push	ebx
xor	ebx, ebx
push	esi
push	edi
mov	[ebp+var_10], ebx
mov	esi, [ebp+arg_14]
mov	[ebp+var_4], ebx
cmp	esi, ebx
jz	short loc_4400F2
mov	eax, [esi]
push	esi
mov	[ebp+arg_14], esi
call	dword ptr [eax+4]
mov	eax, [esi]
lea	ecx, [ebp+var_10]
push	ecx
push	offset unk_44B7B0
push	esi
mov	byte ptr [ebp+var_4], 1
call	dword ptr [eax]
mov	eax, [esi]
push	esi
mov	byte ptr [ebp+var_4], bl
call	dword ptr [eax+8]

loc_4400F2:		; Size
push	0C8h
call	sub_4284B1
pop	ecx
mov	ecx, eax
mov	[ebp+arg_14], ecx
cmp	ecx, ebx
mov	byte ptr [ebp+var_4], 2
jz	short loc_440113
call	sub_43C070
mov	esi, eax
jmp	short loc_440115

loc_440113:
xor	esi, esi

loc_440115:
cmp	esi, ebx
mov	byte ptr [ebp+var_4], bl
mov	[ebp+arg_14], esi
jz	short loc_440125
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]

loc_440125:
push	[ebp+var_10]
mov	eax, [esi]
mov	byte ptr [ebp+var_4], 3
push	ebx
push	[ebp+arg_C]
push	[ebp+arg_8]
push	[ebp+arg_4]
push	esi
call	dword ptr [eax+0Ch]
mov	edi, eax
cmp	edi, ebx
jnz	short loc_44014D
push	[ebp+arg_10]
mov	eax, [esi]
push	esi
call	dword ptr [eax+20h]
mov	edi, eax

loc_44014D:
cmp	esi, ebx
mov	byte ptr [ebp+var_4], bl
jz	short loc_44015A
mov	eax, [esi]
push	esi
call	dword ptr [eax+8]

loc_44015A:
mov	eax, [ebp+var_10]
or	[ebp+var_4], 0FFFFFFFFh
cmp	eax, ebx
jz	short loc_44016B
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_44016B:
mov	ecx, [ebp+var_C]
mov	eax, edi
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	18h
sub_4400B1 endp



; Attributes: bp-based frame

sub_44017E proc	near

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

mov	eax, offset loc_449EB4
call	__EH_prolog
sub	esp, 0Ch
push	ebx
push	esi
mov	esi, [ebp+arg_0]
push	edi
mov	ecx, esi
call	sub_44005A
mov	ebx, [ebp+arg_4]
xor	edi, edi
push	3
lea	ecx, [ebp+Memory]
mov	[ebx], edi
mov	[ebp+Memory], edi
mov	[ebp+var_14], edi
mov	[ebp+var_10], edi
call	sub_403396
mov	eax, [esi+8]
mov	[ebp+var_4], edi
cmp	[eax+10h], edi
jle	short loc_4401D4

loc_4401BD:
mov	eax, [eax+14h]
lea	edx, [ebp+Memory]
mov	ecx, [eax+edi*4]
call	sub_440219
mov	eax, [esi+8]
inc	edi
cmp	edi, [eax+10h]
jl	short loc_4401BD

loc_4401D4:
mov	ecx, [esi+8]
lea	edx, [ebp+Memory]
add	ecx, 30h
call	sub_440219
push	[ebp+Memory]	; psz
call	ds:SysAllocString
push	[ebp+Memory]	; Memory
mov	[ebx], eax
neg	eax
sbb	eax, eax
and	eax, 7FF8FFF2h
add	eax, 8007000Eh
mov	esi, eax
call	sub_4284D8
pop	ecx
mov	eax, esi
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	8
sub_44017E endp




sub_440219 proc	near
push	ebx
push	esi
push	edi
mov	esi, ecx
xor	edi, edi
mov	ebx, edx
cmp	[esi+8], edi
jle	short loc_440249

loc_440227:
cmp	dword ptr [ebx+4], 0
jz	short loc_440236
push	20h
mov	ecx, ebx
call	sub_40316A

loc_440236:
mov	eax, [esi+0Ch]
mov	ecx, ebx
push	dword ptr [eax+edi*4]
call	sub_4031F2
inc	edi
cmp	edi, [esi+8]
jl	short loc_440227

loc_440249:
pop	edi
pop	esi
pop	ebx
retn
sub_440219 endp



; Attributes: bp-based frame

sub_44024D proc	near

Memory=	dword ptr -2Ch
psz= 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_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h
arg_C= dword ptr  14h

mov	eax, offset loc_449ED8
call	__EH_prolog
sub	esp, 20h
push	ebx
push	esi
mov	esi, [ebp+arg_0]
push	edi
mov	ecx, esi
call	sub_44005A
mov	ebx, [ebp+arg_8]
mov	eax, [ebp+arg_C]
xor	edi, edi
mov	[ebx], edi
mov	[eax], edi
mov	eax, [esi+8]
mov	[ebp+arg_8], edi
mov	ecx, [eax+10h]
cmp	ecx, edi
jle	short loc_4402D1

loc_440280:
mov	eax, [eax+14h]
mov	ecx, [ebp+arg_8]
push	[ebp+arg_4]
mov	edi, [eax+ecx*4]
lea	ecx, [ebp+Memory]
call	sub_403091
and	[ebp+var_4], 0
lea	eax, [ebp+var_10]
push	eax
lea	eax, [ebp+Memory]
push	eax
mov	ecx, edi
call	sub_434C75
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
mov	byte ptr [ebp+arg_0+3],	al
call	sub_4284D8
cmp	byte ptr [ebp+arg_0+3],	0
pop	ecx
jnz	loc_440368
inc	[ebp+arg_8]
mov	eax, [esi+8]
mov	ecx, [ebp+arg_8]
cmp	ecx, [eax+10h]
jl	short loc_440280
xor	edi, edi

loc_4402D1:
push	[ebp+arg_4]
lea	ecx, [ebp+Memory]
call	sub_403091
mov	ecx, [esi+8]
lea	eax, [ebp+var_14]
push	eax
lea	eax, [ebp+Memory]
push	eax
add	ecx, 30h
mov	[ebp+var_4], 1
call	sub_434C75
push	[ebp+Memory]	; Memory
or	[ebp+var_4], 0FFFFFFFFh
mov	byte ptr [ebp+arg_4+3],	al
call	sub_4284D8
cmp	byte ptr [ebp+arg_4+3],	0
pop	ecx
jz	loc_4403A6
mov	ecx, [ebp+arg_C]
mov	eax, [ebp+var_14]
push	3
mov	[ebp+psz], edi
mov	[ecx], eax
lea	ecx, [ebp+psz]
mov	[ebp+var_1C], edi
mov	[ebp+var_18], edi
call	sub_403396
mov	ecx, hInstance
lea	edx, [ebp+psz]
mov	[ebp+var_4], 2
call	sub_429ADE
push	[ebp+psz]	; psz
call	ds:SysAllocString
mov	[ebx], eax
push	[ebp+psz]	; Memory
neg	eax
sbb	eax, eax
and	eax, 7FF8FFF2h
add	eax, 8007000Eh
mov	esi, eax

loc_44035E:
call	sub_4284D8
pop	ecx
mov	eax, esi
jmp	short loc_4403A8

loc_440368:
mov	ecx, [ebp+arg_C]
mov	eax, [ebp+var_10]
mov	[ecx], eax
call	ds:AreFileApisANSI
neg	eax
sbb	eax, eax
lea	edx, [edi+20h]
inc	eax
lea	ecx, [ebp+Memory]
push	eax		; CodePage
call	sub_42B331
push	dword ptr [eax]	; psz
call	ds:SysAllocString
mov	[ebx], eax
push	[ebp+Memory]
neg	eax
sbb	eax, eax
and	eax, 7FF8FFF2h
add	eax, 8007000Eh
mov	esi, eax
jmp	short loc_44035E

loc_4403A6:
xor	eax, eax

loc_4403A8:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	10h
sub_44024D endp




sub_4403B9 proc	near

arg_0= dword ptr  4

push	[esp+arg_0]
mov	ecx, [ecx+28h]
call	sub_43F5D5
retn	4
sub_4403B9 endp



; Attributes: bp-based frame

sub_4403C8 proc	near

var_7C=	byte ptr -7Ch
var_78=	dword ptr -78h
var_68=	dword ptr -68h
var_60=	dword ptr -60h
var_5C=	dword ptr -5Ch
var_54=	byte ptr -54h
var_50=	dword ptr -50h
var_44=	dword ptr -44h
var_38=	dword ptr -38h
Memory=	dword ptr -2Ch
var_28=	dword ptr -28h
var_24=	dword ptr -24h
var_20=	byte ptr -20h
var_18=	dword ptr -18h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
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=	dword ptr  18h
arg_14=	dword ptr  1Ch
arg_18=	dword ptr  20h
arg_1C=	dword ptr  24h

mov	eax, offset loc_449FCC
call	__EH_prolog
sub	esp, 70h
push	ebx
push	esi
mov	esi, ecx
push	edi
lea	ecx, [ebp+var_78]
call	sub_403079
xor	ebx, ebx
lea	ecx, [ebp+var_7C]
mov	[ebp+var_4], ebx
call	sub_438795
mov	eax, [esi+34h]
lea	ecx, [ebp+var_38]
add	eax, 94h
push	eax
call	sub_4030F2
lea	eax, [ebp+var_38]
lea	edx, [ebp+var_7C]
push	eax
lea	ecx, [ebp+var_44]
mov	byte ptr [ebp+var_4], 1
call	sub_4384A8
mov	ecx, [ebp+var_44]
mov	byte ptr [ebp+var_4], 2
call	sub_42A264
lea	ecx, [ebp+var_50]
mov	[ebp+var_54], bl
call	sub_403079
push	3
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 3
mov	[ebp+Memory], ebx
mov	[ebp+var_28], ebx
mov	[ebp+var_24], ebx
call	sub_403396
lea	eax, [ebp+Memory]
lea	ecx, [ebp+var_54]
push	eax
mov	byte ptr [ebp+var_4], 4
push	off_45D42C
push	[ebp+var_44]
call	sub_42ADA9
test	eax, eax
jnz	short loc_440475
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 5
mov	esi, 80004005h
jmp	loc_440896

loc_440475:
lea	ecx, [ebp+var_68]
call	sub_40337B
mov	edi, offset off_44B510
mov	[ebp+var_68], edi
lea	eax, [ebp+var_68]
mov	ecx, esi
push	eax
mov	byte ptr [ebp+var_4], 6
call	sub_4403B9
cmp	byte ptr [ebp+arg_0], bl
jz	short loc_4404B3
push	[ebp+arg_1C]
mov	eax, [esi+34h]
add	eax, 8
push	[ebp+arg_18]
mov	ecx, [eax]
push	[ebp+arg_14]
push	[ebp+Memory]
push	eax
call	dword ptr [ecx+14h]
jmp	short loc_440514

loc_4404B3:
cmp	byte ptr [ebp+arg_4], bl
jz	short loc_4404CB
push	[ebp+arg_1C]
mov	ecx, [esi+34h]
push	[ebp+arg_C]
push	[ebp+Memory]
call	sub_43E913
jmp	short loc_440514

loc_4404CB:
cmp	[ebp+arg_8], bl
jz	short loc_4404E9
push	[ebp+arg_1C]
mov	ecx, [esi+34h]
push	[ebp+arg_C]
push	[ebp+arg_18]
push	[ebp+arg_14]
push	[ebp+Memory]
call	sub_43EBB4
jmp	short loc_440514

loc_4404E9:
mov	eax, [ebp+arg_10]
xor	ecx, ecx

loc_4404EE:
mov	dl, [eax]
add	eax, 4
mov	[ebp+ecx+var_20], dl
inc	ecx
cmp	ecx, 7
jl	short loc_4404EE
push	[ebp+arg_1C]
mov	eax, [esi+34h]
lea	edx, [ebp+var_20]
add	eax, 8
push	ebx
push	edx
push	[ebp+Memory]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+1Ch]

loc_440514:
cmp	eax, ebx
mov	[ebp+arg_0], eax
jz	short loc_44054B
mov	[ebp+var_68], edi
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 7
call	sub_428327
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 4
call	sub_4282FE
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	esi, [ebp+arg_0]
mov	byte ptr [ebp+var_4], 8
jmp	loc_440896

loc_44054B:
mov	eax, [esi+34h]
push	eax
mov	ecx, [eax]
call	dword ptr [ecx+14h]
mov	ecx, [ebp+var_38]
call	sub_42B5DF
test	al, al
jz	short loc_4405A1
mov	ecx, [ebp+var_38]
call	sub_42A481
test	al, al
jnz	short loc_4405A1
call	ds:GetLastError
mov	esi, eax
mov	[ebp+var_68], edi
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 9
call	sub_428327
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 4
call	sub_4282FE
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 0Ah
jmp	loc_440896

loc_4405A1:
mov	edx, [ebp+var_38]
mov	ecx, [ebp+Memory]
mov	[ebp+var_54], bl
call	sub_42A0AB
test	al, al
jnz	short loc_4405E8
call	ds:GetLastError
mov	esi, eax
mov	[ebp+var_68], edi
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 0Bh
call	sub_428327
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 4
call	sub_4282FE
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 0Ch
jmp	loc_440896

loc_4405E8:
mov	[ebp+arg_0], ebx
mov	eax, [ebp+arg_1C]
mov	byte ptr [ebp+var_4], 0Dh
cmp	eax, ebx
jz	short loc_44064C
mov	ecx, [eax]
lea	edx, [ebp+arg_0]
push	edx
push	offset unk_44B7B0
push	eax
call	dword ptr [ecx]
cmp	eax, ebx
mov	[ebp+arg_4], eax
jz	short loc_44064C
mov	eax, [ebp+arg_0]
mov	byte ptr [ebp+var_4], 6
cmp	eax, ebx
jz	short loc_44061C
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_44061C:
mov	[ebp+var_68], edi
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 0Eh
call	sub_428327
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 4
call	sub_4282FE
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	esi, [ebp+arg_4]
mov	byte ptr [ebp+var_4], 0Fh
jmp	loc_440896

loc_44064C:
mov	eax, [esi+34h]
push	[ebp+arg_0]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+10h]
mov	[ebp+arg_4], eax
cmp	eax, ebx
mov	eax, [ebp+arg_0]
mov	byte ptr [ebp+var_4], 6
jz	short loc_4406A0
cmp	eax, ebx
jz	short loc_440670
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_440670:
mov	[ebp+var_68], edi
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 10h
call	sub_428327
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 4
call	sub_4282FE
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	esi, [ebp+arg_4]
mov	byte ptr [ebp+var_4], 11h
jmp	loc_440896

loc_4406A0:
cmp	eax, ebx
jz	short loc_4406AA
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_4406AA:
mov	[ebp+var_10], ebx
mov	eax, [esi+34h]
lea	edx, [ebp+var_10]
push	edx
push	eax
mov	ecx, [eax]
mov	byte ptr [ebp+var_4], 12h
call	dword ptr [ecx+20h]
cmp	eax, ebx
mov	[ebp+arg_0], eax
jz	short loc_440706
mov	eax, [ebp+var_10]
mov	byte ptr [ebp+var_4], 6
cmp	eax, ebx
jz	short loc_4406D6
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_4406D6:
mov	[ebp+var_68], edi
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 13h
call	sub_428327
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 4
call	sub_4282FE
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	esi, [ebp+arg_0]
mov	byte ptr [ebp+var_4], 14h
jmp	loc_440896

loc_440706:
cmp	[ebp+var_60], ebx
mov	[ebp+arg_4], ebx
jle	short loc_44075C

loc_44070E:
mov	[ebp+arg_0], ebx
mov	eax, [ebp+var_5C]
mov	ecx, [ebp+arg_4]
lea	edx, [ebp+arg_0]
mov	byte ptr [ebp+var_4], 15h
mov	eax, [eax+ecx*4]
mov	ecx, [ebp+var_10]
push	edx
mov	eax, [eax]
mov	ecx, [ecx]
push	eax
push	[ebp+var_10]
call	dword ptr [ecx+18h]
cmp	[ebp+arg_0], ebx
jz	short loc_44075C
push	[ebp+arg_0]
lea	ecx, [ebp+var_10]
call	sub_43D0DB
mov	eax, [ebp+arg_0]
mov	byte ptr [ebp+var_4], 12h
cmp	eax, ebx
jz	short loc_440751
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_440751:
inc	[ebp+arg_4]
mov	eax, [ebp+arg_4]
cmp	eax, [ebp+var_60]
jl	short loc_44070E

loc_44075C:
mov	[ebp+var_14], ebx
mov	eax, [ebp+var_10]
lea	edx, [ebp+var_14]
push	edx
push	offset unk_44B5C0
mov	ecx, [eax]
push	eax
mov	byte ptr [ebp+var_4], 16h
call	dword ptr [ecx]
cmp	eax, ebx
mov	[ebp+arg_0], eax
jz	short loc_4407CD
mov	eax, [ebp+var_14]
mov	byte ptr [ebp+var_4], 12h
cmp	eax, ebx
jz	short loc_44078C
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_44078C:
mov	eax, [ebp+var_10]
mov	byte ptr [ebp+var_4], 6
cmp	eax, ebx
jz	short loc_44079D
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_44079D:
mov	[ebp+var_68], edi
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 17h
call	sub_428327
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 4
call	sub_4282FE
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	esi, [ebp+arg_0]
mov	byte ptr [ebp+var_4], 18h
jmp	loc_440896

loc_4407CD:
mov	eax, [ebp+var_14]
lea	edx, [ebp+var_18]
push	edx
push	eax
mov	ecx, [eax]
call	dword ptr [ecx+0Ch]
cmp	eax, ebx
mov	[ebp+arg_0], eax
jz	short loc_440830
mov	eax, [ebp+var_14]
mov	byte ptr [ebp+var_4], 12h
cmp	eax, ebx
jz	short loc_4407F2
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_4407F2:
mov	eax, [ebp+var_10]
mov	byte ptr [ebp+var_4], 6
cmp	eax, ebx
jz	short loc_440803
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_440803:
mov	[ebp+var_68], edi
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 19h
call	sub_428327
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 4
call	sub_4282FE
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	esi, [ebp+arg_0]
mov	byte ptr [ebp+var_4], 1Ah
jmp	short loc_440896

loc_440830:
mov	eax, [ebp+var_18]
mov	ecx, [eax+28h]
mov	[esi+28h], ecx
mov	ecx, [eax+24h]
mov	[esi+24h], ecx
push	dword ptr [eax+2Ch]
lea	ecx, [esi+2Ch]
call	sub_43D0DB
mov	eax, [ebp+var_14]
mov	byte ptr [ebp+var_4], 12h
cmp	eax, ebx
jz	short loc_44085B
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_44085B:
mov	eax, [ebp+var_10]
mov	byte ptr [ebp+var_4], 6
cmp	eax, ebx
jz	short loc_44086C
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_44086C:
mov	[ebp+var_68], edi
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 1Bh
call	sub_428327
lea	ecx, [ebp+var_68]
mov	byte ptr [ebp+var_4], 4
call	sub_4282FE
push	[ebp+Memory]	; Memory
call	sub_4284D8
pop	ecx
mov	byte ptr [ebp+var_4], 1Ch
xor	esi, esi

loc_440896:
lea	ecx, [ebp+var_54]
call	sub_42AE68
push	[ebp+var_50]	; Memory
call	sub_4284D8
push	[ebp+var_44]	; Memory
call	sub_4284D8
push	[ebp+var_38]	; Memory
call	sub_4284D8
push	[ebp+var_78]	; Memory
call	sub_4284D8
mov	ecx, [ebp+var_C]
add	esp, 10h
mov	eax, esi
mov	large fs:0, ecx
pop	edi
pop	esi
pop	ebx
leave
retn	20h
sub_4403C8 endp




sub_4408D4 proc	near
push	dword ptr [ecx+4] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_4408D4 endp



; Attributes: bp-based frame

sub_4408DE proc	near

var_2C=	dword ptr -2Ch
Memory=	dword ptr -20h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_449FF0
call	__EH_prolog
sub	esp, 20h
push	ebx
push	esi
push	edi
xor	ebx, ebx
mov	[ebp+var_10], esp
mov	[ebp+var_4], ebx
mov	[ebp+var_14], ebx
mov	eax, [ebp+arg_10]
mov	byte ptr [ebp+var_4], 1
cmp	eax, ebx
jz	short loc_440918
mov	ecx, [eax]
lea	edx, [ebp+var_14]
push	edx
push	offset unk_44B5E0
push	eax
call	dword ptr [ecx]
mov	esi, eax
cmp	esi, ebx
jnz	short loc_44097E

loc_440918:
mov	esi, [ebp+arg_0]
push	[ebp+arg_C]
mov	byte ptr [ebp+var_4], 2
mov	eax, [esi+1Ch]
push	[ebp+arg_8]
add	eax, 8
push	[ebp+arg_4]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+10h]
mov	edi, eax
cmp	edi, ebx
jnz	short loc_440950
mov	eax, [esi+1Ch]
add	esi, 0FFFFFFE8h
add	eax, 8
push	esi
push	eax
mov	ecx, [eax]
call	dword ptr [ecx+0Ch]
mov	edi, eax
cmp	edi, ebx
jz	short loc_440967

loc_440950:
mov	eax, [ebp+var_14]
mov	byte ptr [ebp+var_4], bl
cmp	eax, ebx
jz	short loc_440960
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_440960:
mov	eax, edi
jmp	loc_440A25

loc_440967:
push	[ebp+var_14]
mov	ecx, esi
push	ebx
push	ebx
push	offset unk_44C660
push	ebx
push	ebx
push	ebx
push	ebx
call	sub_4403C8
mov	esi, eax

loc_44097E:
mov	eax, [ebp+var_14]
mov	byte ptr [ebp+var_4], bl
cmp	eax, ebx
jz	short loc_44098E
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_44098E:
mov	eax, esi
jmp	loc_440A25
push	offset aError	; "Error: "
lea	ecx, [ebp+var_2C]
call	sub_403091
push	[ebp+arg_10]
mov	edx, eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 4
call	sub_40356A
mov	ecx, [ebp+var_14]
mov	eax, [eax]
push	eax
push	ecx
mov	edx, [ecx]
mov	byte ptr [ebp+var_4], 5
call	dword ptr [edx+20h]
push	[ebp+Memory]	; Memory
mov	[ebp+arg_10], eax
call	sub_4284D8
push	[ebp+var_2C]	; Memory
call	sub_4284D8
cmp	[ebp+arg_10], 0
pop	ecx
pop	ecx
jz	short loc_4409FB
mov	eax, offset loc_4409E4
retn

loc_4409E4:
mov	eax, [ebp+var_14]
xor	ebx, ebx
cmp	eax, ebx
mov	byte ptr [ebp+var_4], bl
jz	short loc_4409F6
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_4409F6:
mov	eax, [ebp+arg_10]
jmp	short loc_440A25

loc_4409FB:
mov	eax, offset loc_440A01
retn

loc_440A01:
mov	eax, [ebp+var_14]
xor	ebx, ebx
cmp	eax, ebx
mov	byte ptr [ebp+var_4], bl
jz	short loc_440A13
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_440A13:
mov	eax, 80004005h
jmp	short loc_440A25
mov	eax, offset loc_440A20
retn

loc_440A20:
mov	eax, 8007000Eh

loc_440A25:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	14h
sub_4408DE endp



; Attributes: bp-based frame

sub_440A36 proc	near

var_10=	dword ptr -10h
var_C= dword ptr -0Ch
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

mov	eax, offset loc_44A00C
call	__EH_prolog
push	ecx
mov	ecx, [ebp+arg_0]
push	ebx
push	esi
push	edi
mov	eax, [ecx+1Ch]
lea	edi, [ecx-18h]
mov	ecx, [eax+8]
add	eax, 8
mov	[ebp+var_10], esp
xor	ebx, ebx
push	edi
push	eax
mov	[ebp+var_4], ebx
call	dword ptr [ecx+0Ch]
cmp	eax, ebx
jnz	loc_440AF5
mov	[ebp+arg_0], ebx
mov	esi, [ebp+arg_C]
mov	byte ptr [ebp+var_4], 1
cmp	esi, ebx
jz	short loc_440ABA
mov	eax, [esi]
push	esi
mov	[ebp+arg_C], esi
call	dword ptr [eax+4]
mov	eax, [esi]
lea	ecx, [ebp+arg_0]
push	ecx
push	offset unk_44B5E0
push	esi
mov	byte ptr [ebp+var_4], 2
call	dword ptr [eax]
mov	[ebp+arg_C], eax
cmp	eax, ebx
mov	eax, [esi]
mov	byte ptr [ebp+var_4], 1
push	esi
jz	short loc_440AB7
call	dword ptr [eax+8]
mov	eax, [ebp+arg_0]
mov	byte ptr [ebp+var_4], bl
cmp	eax, ebx
jz	short loc_440AB2
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_440AB2:
mov	eax, [ebp+arg_C]
jmp	short loc_440AF5

loc_440AB7:
call	dword ptr [eax+8]

loc_440ABA:
push	[ebp+arg_0]
mov	ecx, edi
push	[ebp+arg_8]
push	[ebp+arg_4]
push	offset unk_44C6E0
push	ebx
push	ebx
push	ebx
push	1
call	sub_4403C8
mov	esi, eax
mov	eax, [ebp+arg_0]
cmp	eax, ebx
mov	byte ptr [ebp+var_4], bl
jz	short loc_440AE6
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_440AE6:
mov	eax, esi
jmp	short loc_440AF5

loc_440AEA:
mov	eax, offset loc_440AF0
retn

loc_440AF0:
mov	eax, 8007000Eh

loc_440AF5:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	10h
sub_440A36 endp



; Attributes: bp-based frame

sub_440B06 proc	near

Memory=	dword ptr -20h
var_14=	dword ptr -14h
var_10=	dword ptr -10h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h

mov	eax, offset loc_44A030
call	__EH_prolog
sub	esp, 14h
push	ebx
push	esi
push	edi
xor	ebx, ebx
mov	[ebp+var_10], esp
push	[ebp+arg_4]
lea	ecx, [ebp+Memory]
mov	[ebp+var_4], ebx
call	sub_403091
mov	esi, [ebp+arg_0]
lea	eax, [ebp+Memory]
push	eax
mov	byte ptr [ebp+var_4], 1
mov	ecx, [esi+10h]
call	sub_43F4B6
push	[ebp+Memory]	; Memory
cmp	eax, ebx
setnl	byte ptr [ebp+arg_0+3]
mov	byte ptr [ebp+var_4], bl
call	sub_4284D8
cmp	byte ptr [ebp+arg_0+3],	bl
pop	ecx
jz	short loc_440B5D
mov	eax, 0B7h
jmp	loc_440BFC

loc_440B5D:
mov	eax, [esi+1Ch]
lea	edi, [esi-18h]
add	eax, 8
push	edi
push	eax
mov	ecx, [eax]
call	dword ptr [ecx+0Ch]
cmp	eax, ebx
jnz	loc_440BFC
mov	[ebp+var_14], ebx
mov	esi, [ebp+arg_8]
mov	byte ptr [ebp+var_4], 2
cmp	esi, ebx
jz	short loc_440BC7
mov	eax, [esi]
push	esi
mov	[ebp+arg_0], esi
call	dword ptr [eax+4]
mov	eax, [esi]
lea	ecx, [ebp+var_14]
push	ecx
push	offset unk_44B5E0
push	esi
mov	byte ptr [ebp+var_4], 3
call	dword ptr [eax]
mov	[ebp+arg_0], eax
cmp	eax, ebx
mov	eax, [esi]
mov	byte ptr [ebp+var_4], 2
push	esi
jz	short loc_440BC4
call	dword ptr [eax+8]
mov	eax, [ebp+var_14]
mov	byte ptr [ebp+var_4], bl
cmp	eax, ebx
jz	short loc_440BBF
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_440BBF:
mov	eax, [ebp+arg_0]
jmp	short loc_440BFC

loc_440BC4:
call	dword ptr [eax+8]

loc_440BC7:
push	[ebp+var_14]
mov	ecx, edi
push	ebx
push	ebx
push	ebx
push	[ebp+arg_4]
push	ebx
push	1
push	ebx
call	sub_4403C8
mov	esi, eax
mov	eax, [ebp+var_14]
cmp	eax, ebx
mov	byte ptr [ebp+var_4], bl
jz	short loc_440BED
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_440BED:
mov	eax, esi
jmp	short loc_440BFC

loc_440BF1:
mov	eax, offset loc_440BF7
retn

loc_440BF7:
mov	eax, 8007000Eh

loc_440BFC:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	0Ch
sub_440B06 endp



; Attributes: bp-based frame

sub_440C0D proc	near

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_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch
arg_8= dword ptr  10h
arg_C= dword ptr  14h

mov	eax, offset loc_44A054
call	__EH_prolog
sub	esp, 18h
push	ebx
push	esi
push	edi
xor	ebx, ebx
mov	[ebp+var_10], esp
mov	[ebp+var_4], ebx
mov	[ebp+var_20], ebx
mov	[ebp+var_1C], ebx
mov	[ebp+var_18], ebx
mov	[ebp+var_14], 4
mov	[ebp+var_24], offset off_44B518
push	[ebp+arg_4]
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 1
call	sub_429907
mov	ecx, [ebp+arg_0]
mov	eax, [ecx+1Ch]
lea	edi, [ecx-18h]
mov	ecx, [eax+8]
add	eax, 8
push	edi
push	eax
call	dword ptr [ecx+0Ch]
mov	esi, eax
cmp	esi, ebx
jnz	loc_440CF2
mov	[ebp+arg_4], ebx
mov	esi, [ebp+arg_C]
mov	byte ptr [ebp+var_4], 2
cmp	esi, ebx
jz	short loc_440CC7
mov	eax, [esi]
push	esi
mov	[ebp+arg_0], esi
call	dword ptr [eax+4]
mov	eax, [esi]
lea	ecx, [ebp+arg_4]
push	ecx
push	offset unk_44B5E0
push	esi
mov	byte ptr [ebp+var_4], 3
call	dword ptr [eax]
mov	[ebp+arg_0], eax
cmp	eax, ebx
mov	eax, [esi]
mov	byte ptr [ebp+var_4], 2
push	esi
jz	short loc_440CC4
call	dword ptr [eax+8]
mov	eax, [ebp+arg_4]
mov	byte ptr [ebp+var_4], 1
cmp	eax, ebx
jz	short loc_440CB4
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_440CB4:
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], bl
call	sub_4282FE
mov	eax, [ebp+arg_0]
jmp	short loc_440D0C

loc_440CC4:
call	dword ptr [eax+8]

loc_440CC7:
push	[ebp+arg_4]
mov	ecx, edi
push	[ebp+var_1C]
push	[ebp+var_18]
push	ebx
push	[ebp+arg_8]
push	1
push	ebx
push	ebx
call	sub_4403C8
mov	esi, eax
mov	eax, [ebp+arg_4]
cmp	eax, ebx
mov	byte ptr [ebp+var_4], 1
jz	short loc_440CF2
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_440CF2:
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], bl
call	sub_4282FE
mov	eax, esi
jmp	short loc_440D0C

loc_440D01:
mov	eax, offset loc_440D07
retn

loc_440D07:
mov	eax, 8007000Eh

loc_440D0C:
mov	ecx, [ebp+var_C]
pop	edi
pop	esi
mov	large fs:0, ecx
pop	ebx
leave
retn	10h
sub_440C0D endp




sub_440D1D proc	near

arg_0= dword ptr  4

push	esi
mov	esi, ecx
push	edi
push	[esp+8+arg_0]
lea	edi, [esi+8]
mov	ecx, edi
call	sub_43D0DB
mov	eax, [esi+0Ch]
add	esi, 0Ch
test	eax, eax
jz	short loc_440D42
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]
and	dword ptr [esi], 0

loc_440D42:
cmp	dword ptr [edi], 0
jz	short loc_440D54
mov	edi, [edi]
push	esi
push	offset unk_44B700
push	edi
mov	eax, [edi]
call	dword ptr [eax]

loc_440D54:
pop	edi
pop	esi
retn	4
sub_440D1D endp




sub_440D59 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [ecx+8]
test	eax, eax
jz	short loc_440D70
push	[esp+arg_4]
mov	ecx, [eax]
push	[esp+4+arg_0]
push	eax
call	dword ptr [ecx+24h]
jmp	short locret_440D72

loc_440D70:
xor	eax, eax

locret_440D72:
retn	8
sub_440D59 endp




sub_440D75 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [ecx+8]
test	eax, eax
jz	short loc_440D8C
push	[esp+arg_4]
mov	ecx, [eax]
push	[esp+4+arg_0]
push	eax
call	dword ptr [ecx+0Ch]
jmp	short locret_440D8E

loc_440D8C:
xor	eax, eax

locret_440D8E:
retn	8
sub_440D75 endp




sub_440D91 proc	near

arg_0= dword ptr  4

mov	eax, [ecx+8]
test	eax, eax
jz	short ?_Get_deleter@_Ref_count_base@std@@UBEPAXABVtype_info@@@Z_7 ; std::_Ref_count_base::_Get_deleter(type_info const &)
push	[esp+arg_0]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+10h]
jmp	short locret_440DA6
sub_440D91 endp

; [00000005 BYTES: COLLAPSED FUNCTION std::_Ref_count_base::_Get_deleter(type_info const &). PRESS KEYPAD CTRL-"+" TO EXPAND]



sub_440DA9 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [ecx+0Ch]
test	eax, eax
jz	short loc_440DC0
push	[esp+arg_4]
mov	ecx, [eax]
push	[esp+4+arg_0]
push	eax
call	dword ptr [ecx+0Ch]
jmp	short locret_440DC2

loc_440DC0:
xor	eax, eax

locret_440DC2:
retn	8
sub_440DA9 endp




sub_440DC5 proc	near
xor	eax, eax
retn
sub_440DC5 endp



; Attributes: bp-based frame

sub_440DC8 proc	near

var_60=	dword ptr -60h
var_54=	dword ptr -54h
var_48=	dword ptr -48h
var_3C=	dword ptr -3Ch
var_30=	dword ptr -30h
var_24=	dword ptr -24h
Memory=	dword ptr -18h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

mov	eax, offset loc_44A098
call	__EH_prolog
sub	esp, 54h
push	esi
mov	esi, ecx
mov	eax, [esi+8]
test	eax, eax
jz	loc_440EB3
push	ebx
push	edi
push	[ebp+arg_0]
lea	ecx, [ebp+var_60]
call	sub_403091
mov	edi, eax
and	[ebp+var_4], 0
push	offset asc_45B15C ; ": "
lea	ecx, [ebp+var_54]
call	sub_403091
mov	ebx, eax
mov	edx, [ebp+arg_4]
lea	ecx, [ebp+var_48]
mov	byte ptr [ebp+var_4], 1
call	sub_40421E
mov	[ebp+arg_4], eax
push	offset off_45D438
lea	ecx, [ebp+var_3C]
mov	byte ptr [ebp+var_4], 2
call	sub_403091
push	[ebp+arg_4]
mov	edx, eax
lea	ecx, [ebp+var_30]
mov	byte ptr [ebp+var_4], 3
call	sub_40356A
push	ebx
mov	edx, eax
lea	ecx, [ebp+var_24]
mov	byte ptr [ebp+var_4], 4
call	sub_40356A
push	edi
mov	edx, eax
lea	ecx, [ebp+Memory]
mov	byte ptr [ebp+var_4], 5
call	sub_40356A
mov	ecx, [eax]
mov	eax, [esi+8]
push	ecx
push	eax
mov	edx, [eax]
mov	byte ptr [ebp+var_4], 6
call	dword ptr [edx+20h]
push	[ebp+Memory]	; Memory
mov	esi, eax
call	sub_4284D8
push	[ebp+var_24]	; Memory
call	sub_4284D8
push	[ebp+var_30]	; Memory
call	sub_4284D8
push	[ebp+var_3C]	; Memory
call	sub_4284D8
push	[ebp+var_48]	; Memory
call	sub_4284D8
push	[ebp+var_54]	; Memory
call	sub_4284D8
push	[ebp+var_60]	; Memory
call	sub_4284D8
add	esp, 1Ch
test	esi, esi
pop	edi
pop	ebx
jz	short loc_440EAE
mov	eax, esi
jmp	short loc_440EB6

loc_440EAE:
push	1
pop	eax
jmp	short loc_440EB6

loc_440EB3:
mov	eax, [ebp+arg_4]

loc_440EB6:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	8
sub_440DC8 endp




sub_440EC5 proc	near

arg_0= dword ptr  4

mov	eax, [ecx+8]
test	eax, eax
jz	short loc_440ED8
push	[esp+arg_0]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+14h]
jmp	short locret_440EDA

loc_440ED8:
xor	eax, eax

locret_440EDA:
retn	8
sub_440EC5 endp




sub_440EDD proc	near

arg_0= dword ptr  4

mov	eax, [ecx+8]
test	eax, eax
jz	short ?_Get_deleter@_Ref_count_base@std@@UBEPAXABVtype_info@@@Z_8 ; std::_Ref_count_base::_Get_deleter(type_info const &)
push	[esp+arg_0]
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+1Ch]
jmp	short locret_440EF2
sub_440EDD endp

; [00000005 BYTES: COLLAPSED FUNCTION std::_Ref_count_base::_Get_deleter(type_info const &). PRESS KEYPAD CTRL-"+" TO EXPAND]



sub_440EF5 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	ebx
mov	ebx, [esp+4+arg_0]
push	esi
push	edi
mov	edi, [esp+0Ch+arg_4]
xor	edx, edx
lea	esi, [ecx+4]
mov	[edi], edx
mov	[ebx], edx
mov	eax, [esi]
cmp	eax, edx
jnz	short loc_440F2C
cmp	[ecx+8], edx
jz	short loc_440F28
mov	ecx, [ecx+8]
push	esi
push	offset unk_44B710
push	ecx
mov	eax, [ecx]
call	dword ptr [eax]
mov	eax, [esi]
test	eax, eax
jnz	short loc_440F2C

loc_440F28:
xor	eax, eax
jmp	short loc_440F34

loc_440F2C:
mov	ecx, [eax]
push	edi
push	ebx
push	eax
call	dword ptr [ecx+0Ch]

loc_440F34:
pop	edi
pop	esi
pop	ebx
retn	8
sub_440EF5 endp



; Attributes: bp-based frame

sub_440F3A proc	near

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

mov	eax, offset loc_44A0AC
call	__EH_prolog
push	esi
mov	esi, [ebp+arg_0]
and	[ebp+arg_0], 0
and	dword ptr [esi], 0
mov	eax, [ecx+8]
and	[ebp+var_4], 0
lea	edx, [ebp+arg_0]
mov	ecx, [eax]
push	edx
push	offset unk_44B720
push	eax
call	dword ptr [ecx]
mov	eax, [ebp+arg_0]
test	eax, eax
jnz	short loc_440F72
mov	eax, 80004001h
jmp	short loc_440F8E

loc_440F72:
mov	ecx, [eax]
push	esi
push	eax
call	dword ptr [ecx+0Ch]
or	[ebp+var_4], 0FFFFFFFFh
mov	esi, eax
mov	eax, [ebp+arg_0]
test	eax, eax
jz	short loc_440F8C
mov	ecx, [eax]
push	eax
call	dword ptr [ecx+8]

loc_440F8C:
mov	eax, esi

loc_440F8E:
mov	ecx, [ebp+var_C]
pop	esi
mov	large fs:0, ecx
leave
retn	4
sub_440F3A endp




sub_440F9D proc	near
mov	dword ptr [ecx], offset	off_44CAEC
mov	dword ptr [ecx+4], offset off_44CADC
mov	ecx, [ecx+0Ch]	; lpAddress
jmp	sub_4411D0
sub_440F9D endp



; Attributes: bp-based frame

; int __stdcall	sub_440FB2(int,	void *Buf1, int)
sub_440FB2 proc	near

arg_0= dword ptr  8
Buf1= dword ptr	 0Ch
arg_8= dword ptr  10h

push	ebp
mov	ebp, esp
push	10h		; Size
push	offset unk_44CCB8 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jz	short loc_440FE1
push	10h		; Size
push	offset unk_44B6F0 ; Buf2
push	[ebp+Buf1]	; Buf1
call	memcmp
add	esp, 0Ch
test	eax, eax
jnz	short loc_440FFE

loc_440FE1:
mov	eax, [ebp+arg_0]
mov	ecx, eax
push	eax
neg	ecx
lea	edx, [eax+4]
sbb	ecx, ecx
and	ecx, edx
mov	edx, [ebp+arg_8]
mov	[edx], ecx
mov	ecx, [eax]
call	dword ptr [ecx+4]
xor	eax, eax
jmp	short loc_441003

loc_440FFE:
mov	eax, 80004002h

loc_441003:
pop	ebp
retn	0Ch
sub_440FB2 endp




sub_441007 proc	near

arg_0= dword ptr  4

mov	eax, [esp+arg_0]
inc	dword ptr [eax+8]
mov	eax, [eax+8]
retn	4
sub_441007 endp




; int __stdcall	sub_441014(void	*Memory)
sub_441014 proc	near

Memory=	dword ptr  4

push	esi
mov	esi, [esp+4+Memory]
dec	dword ptr [esi+8]
mov	eax, [esi+8]
jnz	short loc_441035
test	esi, esi
jz	short loc_441033
mov	ecx, esi
call	sub_440F9D
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_441033:
xor	eax, eax

loc_441035:
pop	esi
retn	4
sub_441014 endp



; Attributes: bp-based frame

sub_441039 proc	near

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

push	ebp
mov	ebp, esp
push	ecx
push	ecx
push	ebx
push	esi
push	edi
mov	edi, [ebp+arg_0]
xor	ebx, ebx
cmp	[edi+0Ch], ebx
jnz	short loc_441066
mov	ecx, 20000h	; dwSize
call	sub_4411B0
cmp	eax, ebx
mov	[edi+0Ch], eax
jnz	short loc_441066
mov	eax, 8007000Eh
jmp	loc_4410EB

loc_441066:
lea	esi, [edi+10h]
mov	[esi], ebx
mov	[esi+4], ebx
mov	ebx, [ebp+arg_10]

loc_441071:
mov	eax, 20000h
test	ebx, ebx
mov	[ebp+arg_0], eax
jz	short loc_441097
mov	ecx, [ebx]
mov	edx, [ebx+4]
sub	ecx, [esi]
sbb	edx, [esi+4]
mov	[ebp+var_4], edx
jnz	short loc_441097
cmp	ecx, eax
jnb	short loc_441097
mov	eax, [ebx]
sub	eax, [esi]
mov	[ebp+arg_0], eax

loc_441097:
mov	ecx, [ebp+arg_4]
lea	edx, [ebp+arg_0]
push	edx
push	eax
push	dword ptr [edi+0Ch]
mov	ecx, [ecx]
push	[ebp+arg_4]
call	dword ptr [ecx+0Ch]
test	eax, eax
jnz	short loc_4410EB
cmp	[ebp+arg_0], eax
jz	short loc_4410E9
mov	ecx, [ebp+arg_8]
test	ecx, ecx
jz	short loc_4410C9
push	[ebp+arg_0]
mov	edx, [edi+0Ch]
call	sub_430F7E
test	eax, eax
jnz	short loc_4410EB

loc_4410C9:
mov	eax, [ebp+arg_0]
add	[esi], eax
adc	dword ptr [esi+4], 0
cmp	[ebp+arg_14], 0
jz	short loc_441071
mov	eax, [ebp+arg_14]
push	esi
push	esi
push	eax
mov	ecx, [eax]
call	dword ptr [ecx+0Ch]
test	eax, eax
jnz	short loc_4410EB
jmp	short loc_441071

loc_4410E9:
xor	eax, eax

loc_4410EB:
pop	edi
pop	esi
pop	ebx
leave
retn	18h
sub_441039 endp




sub_4410F2 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

mov	eax, [esp+arg_0]
mov	ecx, [esp+arg_4]
mov	edx, [eax+0Ch]
mov	[ecx], edx
mov	eax, [eax+10h]
mov	[ecx+4], eax
xor	eax, eax
retn	8
sub_4410F2 endp



; Attributes: bp-based frame

sub_44110A proc	near

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

mov	eax, offset loc_44A0C0
call	__EH_prolog
push	ecx
push	ecx
push	ebx
push	esi
push	edi
mov	ebx, edx
mov	[ebp+var_10], ecx
push	18h		; Size
call	sub_4284B1
xor	edi, edi
pop	ecx
cmp	eax, edi
jz	short loc_441150
mov	dword ptr [eax+4], offset off_44CAFC
mov	[eax+8], edi
mov	[eax+10h], edi
mov	[eax+0Ch], edi
mov	[eax+14h], edi
mov	dword ptr [eax], offset	off_44CAEC
mov	dword ptr [eax+4], offset off_44CADC
mov	esi, eax
jmp	short loc_441152

loc_441150:
xor	esi, esi

loc_441152:
cmp	esi, edi
mov	[ebp+var_14], esi
jz	short loc_44115F
mov	eax, [esi]
push	esi
call	dword ptr [eax+4]

loc_44115F:
push	[ebp+arg_0]
mov	eax, [esi]
mov	[ebp+var_4], edi
push	edi
push	edi
push	ebx
push	[ebp+var_10]
push	esi
call	dword ptr [eax+0Ch]
or	[ebp+var_4], 0FFFFFFFFh
cmp	esi, edi
mov	ebx, eax
jz	short loc_441181
mov	eax, [esi]
push	esi
call	dword ptr [eax+8]

loc_441181:
mov	ecx, [ebp+var_C]
pop	edi
mov	eax, ebx
pop	esi
pop	ebx
mov	large fs:0, ecx
leave
retn	4
sub_44110A endp




sub_441194 proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_440FB2
sub_441194 endp




sub_44119E proc	near

arg_0= dword ptr  4

sub	[esp+arg_0], 4
jmp	sub_441014
sub_44119E endp

align 10h



; int __fastcall sub_4411B0(SIZE_T dwSize)
sub_4411B0 proc	near
test	ecx, ecx
jnz	short loc_4411B7
xor	eax, eax
retn

loc_4411B7:		; flProtect
push	4
push	1000h		; flAllocationType
push	ecx		; dwSize
push	0		; lpAddress
call	ds:VirtualAlloc
retn
sub_4411B0 endp

align 10h



; int __fastcall sub_4411D0(LPVOID lpAddress)
sub_4411D0 proc	near
test	ecx, ecx
jz	short locret_4411E2
push	8000h		; dwFreeType
push	0		; dwSize
push	ecx		; lpAddress
call	ds:VirtualFree

locret_4411E2:
retn
sub_4411D0 endp

align 10h
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD CTRL-"+" TO EXPAND]
align 10h



sub_441200 proc	near
push	esi
mov	esi, ecx
mov	ecx, 40000h
call	sub_441260
test	eax, eax
jz	short loc_441254
mov	ecx, 200000h
call	sub_441260
test	eax, eax
jz	short loc_441254
lea	eax, [esi+8]
lea	ecx, [esi+0Ch]
push	eax
lea	edx, [esi+4]
push	ecx
push	edx
mov	edx, esi
xor	ecx, ecx
call	sub_441280
lea	eax, [esi+1Ch]
lea	ecx, [esi+18h]
push	eax
lea	edx, [esi+14h]
push	ecx
push	edx
lea	edx, [esi+10h]
mov	ecx, 1
call	sub_441280
mov	eax, 1
pop	esi
retn

loc_441254:
xor	eax, eax
pop	esi
retn
sub_441200 endp

align 10h


; Attributes: bp-based frame

sub_441260 proc	near

var_4= dword ptr -4

push	ebp
mov	ebp, esp
push	ecx
mov	[ebp+var_4], ecx
pushf
pop	eax
mov	edx, eax
xor	eax, [ebp+var_4]
push	eax
popf
pushf
pop	eax
xor	eax, edx
push	edx
popf
and	[ebp+var_4], eax
mov	eax, [ebp+var_4]
mov	esp, ebp
pop	ebp
retn
sub_441260 endp



; Attributes: bp-based frame

sub_441280 proc	near

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

push	ebp
mov	ebp, esp
sub	esp, 14h
push	ebx
push	esi
mov	esi, edx
mov	[ebp+var_4], ecx
xor	ebx, ebx
xor	ecx, ecx
xor	edx, edx
mov	eax, [ebp+var_4]
cpuid
mov	[ebp+var_8], eax
mov	[ebp+var_C], ebx
mov	[ebp+var_10], ecx
mov	[ebp+var_14], edx
mov	eax, [ebp+var_8]
mov	ecx, [ebp+arg_0]
mov	edx, [ebp+var_C]
mov	[esi], eax
mov	eax, [ebp+arg_4]
mov	[ecx], edx
mov	ecx, [ebp+var_10]
mov	edx, [ebp+arg_8]
mov	[eax], ecx
mov	eax, [ebp+var_14]
pop	esi
mov	[edx], eax
pop	ebx
mov	esp, ebp
pop	ebp
retn	0Ch
sub_441280 endp

align 10h



sub_4412D0 proc	near
push	ebx
push	esi
mov	esi, [ecx+4]
push	edi
xor	eax, eax
mov	edx, offset aNtelauthentica ; "ntelAuthenticAMDCentaurHaulsÏÃD"

loc_4412DD:
cmp	[edx-8], esi
jnz	short loc_4412F5
mov	edi, [edx-4]
mov	ebx, [ecx+8]
cmp	edi, ebx
jnz	short loc_4412F5
mov	edi, [edx]
mov	ebx, [ecx+0Ch]
cmp	edi, ebx
jz	short loc_441304

loc_4412F5:
add	edx, 0Ch
inc	eax
cmp	edx, offset a_?avtype_info@ ; ".?AVtype_info@@"
jb	short loc_4412DD
or	eax, 0FFFFFFFFh

loc_441304:
pop	edi
pop	esi
pop	ebx
retn
sub_4412D0 endp

align 10h



sub_441310 proc	near

var_20=	byte ptr -20h
var_10=	dword ptr -10h

sub	esp, 20h
lea	ecx, [esp+20h+var_20]
push	esi
push	edi
call	sub_441200
test	eax, eax
jz	short loc_441393
mov	eax, [esp+28h+var_10]
lea	ecx, [esp+28h+var_20]
mov	esi, eax
shr	eax, 4
shr	esi, 8
and	eax, 0F00Fh
and	esi, 0FF00Fh
mov	edi, eax
call	sub_4412D0
sub	eax, 0
jz	short loc_44137C
dec	eax
jz	short loc_441363
dec	eax
jnz	short loc_441393
cmp	esi, 6
jb	short loc_441393
jnz	short loc_44138B
cmp	edi, 0Fh
jb	short loc_441393
pop	edi
xor	eax, eax
pop	esi
add	esp, 20h
retn

loc_441363:
cmp	esi, 5
jb	short loc_441393
jnz	short loc_44138B
cmp	edi, 6
jb	short loc_441393
cmp	edi, 0Ah
jz	short loc_441393
pop	edi
xor	eax, eax
pop	esi
add	esp, 20h
retn

loc_44137C:
cmp	esi, 6
jb	short loc_441393
jnz	short loc_44138B
cmp	edi, 100Ch
jz	short loc_441393

loc_44138B:
pop	edi
xor	eax, eax
pop	esi
add	esp, 20h
retn

loc_441393:
pop	edi
mov	eax, 1
pop	esi
add	esp, 20h
retn
sub_441310 endp

align 10h



sub_4413A0 proc	near
xor	eax, eax
mov	dword ptr [ecx], 6A09E667h
mov	[ecx+20h], eax
mov	dword ptr [ecx+4], 0BB67AE85h
mov	dword ptr [ecx+8], 3C6EF372h
mov	dword ptr [ecx+0Ch], 0A54FF53Ah
mov	dword ptr [ecx+10h], 510E527Fh
mov	dword ptr [ecx+14h], 9B05688Ch
mov	dword ptr [ecx+18h], 1F83D9ABh
mov	dword ptr [ecx+1Ch], 5BE0CD19h
mov	[ecx+24h], eax
retn
sub_4413A0 endp




sub_4413E0 proc	near

arg_0= dword ptr  4

mov	eax, [esp+arg_0]
push	ebx
push	esi
mov	esi, ecx
push	edi
mov	ebx, edx
mov	edi, [esi+20h]
and	edi, 3Fh
test	eax, eax
jbe	short loc_44142C
mov	[esp+0Ch+arg_0], eax

loc_4413F9:
mov	al, [ebx]
mov	[esi+edi+28h], al
mov	edx, [esi+20h]
inc	edi
inc	ebx
add	edx, 1
mov	[esi+20h], edx
mov	ecx, [esi+24h]
adc	ecx, 0
cmp	edi, 40h
mov	[esi+24h], ecx
jnz	short loc_441421
mov	ecx, esi
xor	edi, edi
call	sub_441440

loc_441421:
mov	eax, [esp+0Ch+arg_0]
dec	eax
mov	[esp+0Ch+arg_0], eax
jnz	short loc_4413F9

loc_44142C:
pop	edi
pop	esi
pop	ebx
retn	4
sub_4413E0 endp

align 10h



sub_441440 proc	near

var_40=	byte ptr -40h

sub	esp, 40h
lea	edx, [esp+40h+var_40]
push	ebx
push	esi
push	edi
mov	edi, ecx
mov	esi, 10h
lea	eax, [edi+29h]

loc_441454:
xor	ecx, ecx
xor	ebx, ebx
mov	cl, [eax-1]
mov	bl, [eax]
shl	ecx, 8
add	ecx, ebx
xor	ebx, ebx
mov	bl, [eax+1]
add	eax, 4
shl	ecx, 8
add	ecx, ebx
xor	ebx, ebx
mov	bl, [eax-2]
add	edx, 4
shl	ecx, 8
add	ecx, ebx
dec	esi
mov	[edx-4], ecx
jnz	short loc_441454
lea	edx, [esp+4Ch+var_40]
mov	ecx, edi
call	sub_4414A0
pop	edi
pop	esi
pop	ebx
add	esp, 40h
retn
sub_441440 endp

align 10h



sub_4414A0 proc	near

var_7C=	dword ptr -7Ch
var_78=	dword ptr -78h
var_74=	dword ptr -74h
var_70=	dword ptr -70h
var_6C=	dword ptr -6Ch
var_68=	dword ptr -68h
var_64=	dword ptr -64h
var_60=	dword ptr -60h
var_40=	dword ptr -40h

sub	esp, 7Ch
push	ebx
push	ebp
push	esi
mov	esi, ecx
push	edi
mov	ecx, 8
lea	edi, [esp+8Ch+var_60]
mov	[esp+8Ch+var_64], esi
rep movsd
xor	edi, edi
mov	[esp+8Ch+var_6C], edx
mov	[esp+8Ch+var_78], edi

loc_4414C2:
lea	edx, ds:44CB0Ch[edi*4]
lea	ebx, [esp+8Ch+var_40]
mov	[esp+8Ch+var_7C], edx
mov	edx, [esp+8Ch+var_6C]
mov	ecx, 1
lea	esi, [esp+8Ch+var_40]
sub	edx, ebx
mov	[esp+8Ch+var_74], ecx
mov	eax, 0FFFFFFFCh
mov	[esp+8Ch+var_70], esi
mov	[esp+8Ch+var_68], edx
jmp	short loc_4414F7

loc_4414F3:
mov	edx, [esp+8Ch+var_68]

loc_4414F7:
test	edi, edi
jz	short loc_441552
lea	edx, [ecx-3]
mov	esi, ecx
and	edx, 0Fh
lea	edi, [ecx-1]
and	esi, 0Fh
and	edi, 0Fh
mov	edx, [esp+edx*4+8Ch+var_40]
add	ecx, 0FFFFFFF8h
mov	esi, [esp+esi*4+8Ch+var_40]
mov	ebx, edx
mov	ebp, edx
and	ecx, 0Fh
ror	ebx, 13h
ror	ebp, 11h
xor	ebx, ebp
mov	ebp, esi
shr	edx, 0Ah
xor	ebx, edx
mov	edx, esi
ror	edx, 12h
ror	ebp, 7
xor	edx, ebp
lea	edi, [esp+edi*4+8Ch+var_40]
shr	esi, 3
xor	edx, esi
add	ebx, edx
mov	edx, [esp+ecx*4+8Ch+var_40]
mov	ecx, [edi]
add	ebx, edx
add	ecx, ebx
mov	[edi], ecx
mov	edx, ecx
jmp	short loc_441557

loc_441552:
mov	edx, [edx+esi]
mov	[esi], edx

loc_441557:
mov	ecx, eax
and	ecx, 7
mov	esi, [esp+ecx*4+8Ch+var_60]
lea	ecx, [eax+2]
and	ecx, 7
mov	ebx, esi
mov	ebp, esi
mov	edi, [esp+ecx*4+8Ch+var_60]
lea	ecx, [eax+3]
and	ecx, 7
ror	ebx, 19h
ror	ebp, 0Bh
xor	ebx, ebp
mov	ebp, esi
ror	ebp, 6
xor	ebx, ebp
lea	ebp, [eax+1]
and	ebp, 7
add	edx, ebx
lea	ecx, [esp+ecx*4+8Ch+var_60]
mov	ebp, [esp+ebp*4+8Ch+var_60]
xor	ebp, edi
and	ebp, esi
xor	ebp, edi
add	ebp, edx
mov	edx, [esp+8Ch+var_7C]
mov	esi, [edx]
mov	edx, [ecx]
add	ebp, esi
add	edx, ebp
mov	[ecx], edx
mov	esi, edx
lea	edx, [eax-1]
and	edx, 7
mov	edi, [esp+edx*4+8Ch+var_60]
lea	edx, [esp+edx*4+8Ch+var_60]
add	edi, esi
mov	[edx], edi
lea	edx, [eax-4]
and	edx, 7
mov	esi, [esp+edx*4+8Ch+var_60]
lea	edx, [eax-3]
and	edx, 7
mov	ebx, esi
mov	edi, [esp+edx*4+8Ch+var_60]
mov	edx, esi
ror	edx, 16h
ror	ebx, 0Dh
xor	edx, ebx
mov	ebx, esi
ror	ebx, 2
xor	edx, ebx
lea	ebx, [eax-2]
and	ebx, 7
mov	ebp, edi
or	ebp, esi
and	edi, esi
mov	ebx, [esp+ebx*4+8Ch+var_60]
mov	esi, [esp+8Ch+var_70]
and	ebx, ebp
mov	ebp, [esp+8Ch+var_7C]
or	ebx, edi
mov	edi, [ecx]
add	edx, ebx
add	esi, 4
add	edi, edx
add	ebp, 4
mov	[ecx], edi
mov	ecx, [esp+8Ch+var_74]
mov	edi, [esp+8Ch+var_78]
inc	ecx
dec	eax
mov	[esp+8Ch+var_74], ecx
lea	edx, [ecx-1]
mov	[esp+8Ch+var_70], esi
cmp	edx, 10h
mov	[esp+8Ch+var_7C], ebp
jb	loc_4414F3
add	edi, 10h
cmp	edi, 40h
mov	[esp+8Ch+var_78], edi
jb	loc_4414C2
mov	eax, [esp+8Ch+var_64]
lea	ecx, [esp+8Ch+var_60]
sub	ecx, eax
mov	edx, 8

loc_44164F:
mov	esi, [ecx+eax]
mov	ebx, [eax]
add	ebx, esi
mov	[eax], ebx
add	eax, 4
dec	edx
jnz	short loc_44164F
pop	edi
pop	esi
pop	ebp
pop	ebx
add	esp, 7Ch
retn
sub_4414A0 endp

align 10h



sub_441670 proc	near

var_C= dword ptr -0Ch
var_8= dword ptr -8

sub	esp, 0Ch
push	ebx
push	ebp
push	esi
push	edi
mov	ebp, ecx
mov	edi, edx
mov	ecx, 3
mov	eax, [ebp+20h]
mov	edx, [ebp+24h]
call	__allshl
mov	esi, [ebp+20h]
mov	[esp+1Ch+var_8], eax
and	esi, 3Fh
mov	ebx, edx
mov	byte ptr [esi+ebp+28h],	80h
inc	esi
cmp	esi, 38h
jz	short loc_4416B9

loc_4416A2:
and	esi, 3Fh
jnz	short loc_4416AE
mov	ecx, ebp
call	sub_441440

loc_4416AE:
mov	byte ptr [esi+ebp+28h],	0
inc	esi
cmp	esi, 38h
jnz	short loc_4416A2

loc_4416B9:
lea	esi, [esi+ebp+28h]
mov	[esp+1Ch+var_C], 8

loc_4416C5:
mov	eax, ebx
mov	ecx, 8
shr	eax, 18h
mov	[esi], al
mov	eax, [esp+1Ch+var_8]
mov	edx, ebx
inc	esi
call	__allshl
mov	[esp+1Ch+var_8], eax
mov	eax, [esp+1Ch+var_C]
dec	eax
mov	ebx, edx
mov	[esp+1Ch+var_C], eax
jnz	short loc_4416C5
mov	ecx, ebp
call	sub_441440
mov	eax, ebp
mov	ecx, 8

loc_4416FC:
mov	edx, [eax]
add	eax, 4
shr	edx, 18h
mov	[edi], dl
mov	edx, [eax-4]
inc	edi
shr	edx, 10h
mov	[edi], dl
mov	edx, [eax-4]
inc	edi
shr	edx, 8
mov	[edi], dl
mov	dl, [eax-4]
inc	edi
mov	[edi], dl
inc	edi
dec	ecx
jnz	short loc_4416FC
mov	ecx, ebp
call	sub_4413A0
pop	edi
pop	esi
pop	ebp
pop	ebx
add	esp, 0Ch
retn
sub_441670 endp

align 10h



sub_441740 proc	near

var_4= dword ptr -4

push	ecx
cmp	edx, 1
jbe	loc_441812
push	ebx
mov	ebx, edx
sub	ecx, 4
push	ebp
shr	ebx, 1
push	esi
push	edi
lea	ebp, [ecx+ebx*4]

loc_441758:
mov	eax, [ebp+0]
mov	edi, ebx
mov	[esp+14h+var_4], eax
lea	eax, [ebx+ebx]
cmp	eax, edx
ja	short loc_441788

loc_441768:
jnb	short loc_441774
mov	esi, [ecx+eax*4+4]
cmp	esi, [ecx+eax*4]
jbe	short loc_441774
inc	eax

loc_441774:
mov	esi, [ecx+eax*4]
cmp	[esp+14h+var_4], esi
jnb	short loc_441788
mov	[ecx+edi*4], esi
mov	edi, eax
shl	eax, 1
cmp	eax, edx
jbe	short loc_441768

loc_441788:
mov	eax, [esp+14h+var_4]
dec	ebx
sub	ebp, 4
mov	[ecx+edi*4], eax
test	ebx, ebx
jnz	short loc_441758
cmp	edx, 3
jbe	short loc_4417EE
lea	ebp, [ecx+edx*4]

loc_44179F:
mov	eax, [ecx+0Ch]
mov	esi, [ecx+8]
mov	ebx, [ebp+0]
cmp	esi, eax
mov	eax, [ecx+4]
sbb	esi, esi
mov	[ebp+0], eax
neg	esi
add	esi, 2
dec	edx
sub	ebp, 4
mov	eax, [ecx+esi*4]
mov	[ecx+4], eax
lea	eax, [esi+esi]
cmp	eax, edx
ja	short loc_4417E6

loc_4417C8:
jnb	short loc_4417D4
mov	edi, [ecx+eax*4+4]
cmp	edi, [ecx+eax*4]
jbe	short loc_4417D4
inc	eax

loc_4417D4:
mov	edi, [ecx+eax*4]
cmp	ebx, edi
jnb	short loc_4417E6
mov	[ecx+esi*4], edi
mov	esi, eax
shl	eax, 1
cmp	eax, edx
jbe	short loc_4417C8

loc_4417E6:
cmp	edx, 3
mov	[ecx+esi*4], ebx
ja	short loc_44179F

loc_4417EE:
mov	esi, [ecx+4]
mov	eax, [ecx+edx*4]
mov	[ecx+edx*4], esi
pop	edi
pop	esi
pop	ebp
cmp	edx, 2
pop	ebx
jbe	short loc_44180F
mov	edx, [ecx+8]
cmp	edx, eax
jnb	short loc_44180F
mov	[ecx+4], edx
mov	[ecx+8], eax
pop	ecx
retn

loc_44180F:
mov	[ecx+4], eax

loc_441812:
pop	ecx
retn
sub_441740 endp

align 10h



sub_441820 proc	near
test	ecx, ecx
jz	short loc_441827
xor	eax, eax
retn

loc_441827:
jmp	loc_441830
align 10h

loc_441830:
call	ds:GetLastError
test	eax, eax
jnz	short locret_44183F
mov	eax, 1

locret_44183F:
retn
sub_441820 endp

; START	OF FUNCTION CHUNK FOR sub_4418F0

loc_441840:
test	ecx, ecx
jz	short loc_441847
xor	eax, eax
retn

loc_441847:
jmp	loc_441830
; END OF FUNCTION CHUNK	FOR sub_4418F0
align 10h



sub_441850 proc	near
push	esi
mov	esi, ecx
mov	eax, [esi]
test	eax, eax
jz	short loc_44186A
push	eax		; hObject
call	ds:CloseHandle
test	eax, eax
jnz	short loc_44186A
pop	esi
jmp	loc_441830

loc_44186A:
mov	dword ptr [esi], 0
xor	eax, eax
pop	esi
retn
sub_441850 endp

align 10h



; int __fastcall sub_441880(HANDLE hHandle)
sub_441880 proc	near
push	0FFFFFFFFh	; dwMilliseconds
push	ecx		; hHandle
call	ds:WaitForSingleObject
retn
sub_441880 endp

align 10h



sub_441890 proc	near

arg_0= dword ptr  4

push	esi
mov	esi, ecx
mov	ecx, [esp+4+arg_0]
lea	eax, [esp+4+arg_0]
push	eax
push	0
push	ecx
push	edx
push	0
push	0
call	ds:_beginthreadex
add	esp, 18h
mov	ecx, eax
mov	[esi], eax
call	sub_441820
pop	esi
retn	4
sub_441890 endp

align 10h



sub_4418C0 proc	near

arg_0= dword ptr  4

push	esi
mov	esi, ecx
mov	ecx, [esp+4+arg_0]
xor	eax, eax
test	ecx, ecx
setnz	al
push	0		; lpName
push	eax		; bInitialState
push	edx		; bManualReset
push	0		; lpEventAttributes
call	ds:CreateEventA
mov	ecx, eax
mov	[esi], eax
call	sub_441820
pop	esi
retn	4
sub_4418C0 endp

align 10h



sub_4418F0 proc	near

; FUNCTION CHUNK AT 00441840 SIZE 0000000C BYTES

mov	eax, [ecx]
push	eax		; hEvent
call	ds:SetEvent
mov	ecx, eax
jmp	loc_441840
sub_4418F0 endp




sub_441900 proc	near
push	edx
mov	edx, 1
call	sub_4418C0
retn
sub_441900 endp

align 10h


; Attributes: bp-based frame

; int __fastcall sub_441910(LPCRITICAL_SECTION lpCriticalSection)
sub_441910 proc	near

ms_exc=	CPPEH_RECORD ptr -18h

push	ebp
mov	ebp, esp
push	0FFFFFFFFh
push	offset stru_44CC10
push	offset _except_handler3
mov	eax, large fs:0
push	eax
mov	large fs:0, esp
sub	esp, 0Ch
push	ebx
push	esi
push	edi
mov	[ebp+ms_exc.old_esp], esp
mov	[ebp+ms_exc.registration.TryLevel], 0
push	ecx		; lpCriticalSection
call	ds:InitializeCriticalSection
mov	[ebp+ms_exc.registration.TryLevel], 0FFFFFFFFh
xor	eax, eax
mov	ecx, [ebp+ms_exc.registration.Next]
mov	large fs:0, ecx
pop	edi
pop	esi
pop	ebx
mov	esp, ebp
pop	ebp
retn

loc_44195E:		; Exception filter 0 for function 441910
mov	eax, 1
retn

loc_441964:		; Exception handler 0 for function 441910
mov	esp, [ebp-18h]
mov	dword ptr [ebp-4], 0FFFFFFFFh
mov	eax, 1
mov	ecx, [ebp-10h]
mov	large fs:0, ecx
pop	edi
pop	esi
pop	ebx
mov	esp, ebp
pop	ebp
retn
sub_441910 endp

align 10h



sub_441990 proc	near

arg_0= dword ptr  4

mov	eax, [esp+arg_0]
push	offset dword_45DAA0
push	eax
call	dword_45DA78
retn	4
sub_441990 endp

align 10h

loc_4419B0:
push	esi
push	edi
xor	esi, esi
mov	edx, offset dword_45DAA0

loc_4419B9:
mov	eax, esi
mov	ecx, 8

loc_4419C0:
mov	edi, eax
and	edi, 1
dec	edi
not	edi
and	edi, 0EDB88320h
shr	eax, 1
xor	eax, edi
dec	ecx
jnz	short loc_4419C0
mov	[edx], eax
add	edx, 4
inc	esi
cmp	edx, offset unk_45DEA0
jb	short loc_4419B9
cmp	esi, 800h
jnb	short loc_441A1A
lea	ecx, ds:45DAA0h[esi*4]

loc_4419F2:
mov	eax, [ecx-400h]
add	ecx, 4
mov	edx, eax
and	edx, 0FFh
shr	eax, 8
mov	edx, dword_45DAA0[edx*4]
xor	edx, eax
cmp	ecx, offset dword_45FAA0
mov	[ecx-4], edx
jb	short loc_4419F2

loc_441A1A:
mov	dword_45DA78, offset sub_442180
call	sub_441310
test	eax, eax
pop	edi
pop	esi
jnz	short locret_441A39
mov	dword_45DA78, offset sub_4420A0

locret_441A39:
retn
align 10h


; Attributes: bp-based frame

; int __stdcall	sub_441A40(LPBYTE lpData)
sub_441A40 proc	near

cbData=	dword ptr -8
hKey= dword ptr	-4
lpData=	dword ptr  8

push	ebp
mov	ebp, esp
push	ecx
push	ecx
push	esi
lea	eax, [ebp+hKey]
push	eax		; phkResult
push	20019h		; samDesired
xor	esi, esi
push	esi		; ulOptions
push	offset SubKey	; "CLSID\\{ADB880A6-D8FF-11CF-9377-00AA003"...
push	80000000h	; hKey
call	ds:RegOpenKeyExA
test	eax, eax
jnz	short loc_441A96
lea	eax, [ebp+cbData]
push	eax		; lpcbData
push	[ebp+lpData]	; lpData
mov	[ebp+cbData], 104h
push	esi		; lpType
push	esi		; lpReserved
push	offset ValueName ; lpValueName
push	[ebp+hKey]	; hKey
call	ds:RegQueryValueExA
test	eax, eax
jnz	short loc_441A89
inc	esi

loc_441A89:		; hKey
push	[ebp+hKey]
call	ds:RegCloseKey
mov	eax, esi
jmp	short loc_441A98

loc_441A96:
xor	eax, eax

loc_441A98:
pop	esi
leave
retn	4
sub_441A40 endp



; Attributes: bp-based frame

sub_441A9D proc	near

Data= byte ptr -104h
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
mov	ecx, hModule
test	ecx, ecx
push	esi
jnz	short loc_441AFA
cmp	dword_45DA84, ecx
jnz	short loc_441AFA
lea	eax, [ebp+Data]
push	eax		; lpData
call	sub_441A40
test	eax, eax
mov	esi, ds:LoadLibraryA
jz	short loc_441ADD
lea	eax, [ebp+Data]
push	eax		; lpLibFileName
call	esi ; LoadLibraryA
mov	hModule, eax

loc_441ADD:
mov	ecx, hModule
test	ecx, ecx
jnz	short loc_441AFA
push	offset aHhctrl_ocx ; "hhctrl.ocx"
call	esi ; LoadLibraryA
mov	ecx, eax
test	ecx, ecx
mov	hModule, ecx
jz	short loc_441B15

loc_441AFA:
mov	eax, dword_45DA7C
test	eax, eax
jnz	short loc_441B23
push	0Eh		; lpProcName
push	ecx		; hModule
call	ds:GetProcAddress
test	eax, eax
mov	dword_45DA7C, eax
jnz	short loc_441B23

loc_441B15:
mov	dword_45DA84, 1
xor	eax, eax
jmp	short loc_441B31

loc_441B23:
push	[ebp+arg_C]
push	[ebp+arg_8]
push	[ebp+arg_4]
push	[ebp+arg_0]
call	eax ; dword_45DA7C

loc_441B31:
pop	esi
leave
retn	10h
sub_441A9D endp

; [00000006 BYTES: COLLAPSED FUNCTION WNetOpenEnumA. PRESS KEYPAD CTRL-"+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION WNetOpenEnumW. PRESS KEYPAD CTRL-"+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION WNetCloseEnum. PRESS KEYPAD CTRL-"+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION WNetEnumResourceA. PRESS KEYPAD CTRL-"+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION WNetEnumResourceW. PRESS KEYPAD CTRL-"+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION WNetGetResourceParentA. PRESS KEYPAD CTRL-"+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION WNetGetResourceParentW. PRESS KEYPAD CTRL-"+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION WNetGetResourceInformationA. PRESS KEYPAD	CTRL-"+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION WNetGetResourceInformationW. PRESS KEYPAD	CTRL-"+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION WNetAddConnection2A. PRESS KEYPAD	CTRL-"+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION WNetAddConnection2W. PRESS KEYPAD	CTRL-"+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION __CxxFrameHandler. PRESS KEYPAD CTRL-"+" TO EXPAND]
align 10h
; [0000001F BYTES: COLLAPSED FUNCTION __EH_prolog. PRESS KEYPAD	CTRL-"+" TO EXPAND]
align 10h
; [00000006 BYTES: COLLAPSED FUNCTION _CxxThrowException. PRESS	KEYPAD CTRL-"+"	TO EXPAND]



; int __thiscall sub_441BA6(void *Memory, char)
sub_441BA6 proc	near

arg_0= byte ptr	 4

push	esi
mov	esi, ecx
call	??1type_info@@UAE@XZ ; type_info::~type_info(void)
test	[esp+4+arg_0], 1
jz	short loc_441BBC
push	esi		; Memory
call	sub_4284D8
pop	ecx

loc_441BBC:
mov	eax, esi
pop	esi
retn	4
sub_441BA6 endp

; [0000002C BYTES: COLLAPSED FUNCTION __onexit.	PRESS KEYPAD CTRL-"+" TO EXPAND]
; [00000012 BYTES: COLLAPSED FUNCTION _atexit. PRESS KEYPAD CTRL-"+" TO	EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION memcmp. PRESS KEYPAD CTRL-"+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION _purecall. PRESS KEYPAD CTRL-"+" TO EXPAND]
; [00000080 BYTES: COLLAPSED FUNCTION `eh vector destructor iterator'(void *,uint,int,void (*)(void *)). PRESS KEYPAD CTRL-"+" TO EXPAND]
; [0000005E BYTES: COLLAPSED FUNCTION __ArrayUnwind(void *,uint,int,void (*)(void *)). PRESS KEYPAD CTRL-"+" TO	EXPAND]
; [00000016 BYTES: COLLAPSED FUNCTION unknown_libname_6. PRESS KEYPAD CTRL-"+" TO EXPAND]
; [00000082 BYTES: COLLAPSED FUNCTION `eh vector constructor iterator'(void *,uint,int,void (*)(void *),void (*)(void *)). PRESS KEYPAD CTRL-"+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION memset. PRESS KEYPAD CTRL-"+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION memcpy. PRESS KEYPAD CTRL-"+" TO EXPAND]
align 10h
; [00000068 BYTES: COLLAPSED FUNCTION __aulldiv. PRESS KEYPAD CTRL-"+" TO EXPAND]
align 10h
; [0000001F BYTES: COLLAPSED FUNCTION __allshl.	PRESS KEYPAD CTRL-"+" TO EXPAND]
align 10h
; [0000001F BYTES: COLLAPSED FUNCTION __aullshr. PRESS KEYPAD CTRL-"+" TO EXPAND]
align 10h
; [00000034 BYTES: COLLAPSED FUNCTION __allmul.	PRESS KEYPAD CTRL-"+" TO EXPAND]
align 10h
; [00000075 BYTES: COLLAPSED FUNCTION __aullrem. PRESS KEYPAD CTRL-"+" TO EXPAND]
align 2
; [00000006 BYTES: COLLAPSED FUNCTION strlen. PRESS KEYPAD CTRL-"+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION _except_handler3.	PRESS KEYPAD CTRL-"+" TO EXPAND]
; [0000015E BYTES: COLLAPSED FUNCTION start. PRESS KEYPAD CTRL-"+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION type_info::~type_info(void). PRESS KEYPAD	CTRL-"+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION __dllonexit. PRESS KEYPAD	CTRL-"+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION terminate(void). PRESS KEYPAD CTRL-"+" TO	EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION _XcptFilter. PRESS KEYPAD	CTRL-"+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION _initterm. PRESS KEYPAD CTRL-"+" TO EXPAND]
; [00000012 BYTES: COLLAPSED FUNCTION __setdefaultprecision. PRESS KEYPAD CTRL-"+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD CTRL-"+" TO EXPAND]
align 2
; [00000006 BYTES: COLLAPSED FUNCTION _controlfp. PRESS	KEYPAD CTRL-"+"	TO EXPAND]
align 10h



sub_4420A0 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	ebx
push	ebp
push	esi
push	edi
mov	eax, ecx
mov	edi, [esp+10h+arg_0]
mov	ebp, [esp+10h+arg_4]
test	edi, edi
jz	loc_44215D

loc_4420B6:
test	edx, 7
jz	short loc_4420D1
movzx	esi, byte ptr [edx]
inc	edx
movzx	ebx, al
xor	esi, ebx
shr	eax, 8
xor	eax, [ebp+esi*4+0]
dec	edi
jnz	short loc_4420B6

loc_4420D1:
cmp	edi, 10h
jb	loc_44215D
add	edi, edx
mov	[esp+10h+arg_0], edi
sub	edi, 8
and	edi, 0FFFFFFF8h
sub	edx, edi
xor	eax, [edx+edi]
mov	ecx, [edx+edi+4]
nop

loc_4420F0:
mov	esi, [edx+edi+8]
movzx	ebx, cl
xor	esi, [ebp+ebx*4+0C00h]
movzx	ebx, ch
xor	esi, [ebp+ebx*4+800h]
shr	ecx, 10h
movzx	ebx, cl
movzx	ecx, ch
xor	esi, [ebp+ebx*4+400h]
movzx	ebx, al
xor	esi, [ebp+ecx*4+0]
mov	ecx, [edx+edi+0Ch]
xor	esi, [ebp+ebx*4+1C00h]
movzx	ebx, ah
shr	eax, 10h
xor	esi, [ebp+ebx*4+1800h]
movzx	ebx, al
xor	esi, [ebp+ebx*4+1400h]
movzx	ebx, ah
mov	eax, [ebp+ebx*4+1000h]
xor	eax, esi
add	edx, 8
jnz	short loc_4420F0
xor	eax, [edx+edi]
mov	edx, edi
mov	edi, [esp+10h+arg_0]
sub	edi, edx

loc_44215D:
test	edi, edi
jz	short loc_442174
movzx	esi, byte ptr [edx]
inc	edx
movzx	ebx, al
xor	esi, ebx
shr	eax, 8
xor	eax, [ebp+esi*4+0]
dec	edi
jmp	short loc_44215D

loc_442174:
pop	edi
pop	esi
pop	ebp
pop	ebx
retn	8
sub_4420A0 endp

align 10h



sub_442180 proc	near

arg_0= dword ptr  4
arg_4= dword ptr  8

push	ebx
push	ebp
push	esi
push	edi
mov	eax, ecx
mov	edi, [esp+10h+arg_0]
mov	ebp, [esp+10h+arg_4]
test	edi, edi
jz	loc_44223D

loc_442196:
test	edx, 7
jz	short loc_4421B1
movzx	esi, byte ptr [edx]
inc	edx
movzx	ebx, al
xor	esi, ebx
shr	eax, 8
xor	eax, [ebp+esi*4+0]
dec	edi
jnz	short loc_442196

loc_4421B1:
cmp	edi, 10h
jb	loc_44223D
add	edi, edx
mov	[esp+10h+arg_0], edi
sub	edi, 8
and	edi, 0FFFFFFF8h
sub	edx, edi
xor	eax, [edx+edi]
add	eax, 0

loc_4421D0:
movzx	ecx, al
movzx	ebx, ah
shr	eax, 10h
movzx	esi, ah
and	eax, 0FFh
mov	ecx, [ebp+ecx*4+0C00h]
xor	ecx, [edx+edi+4]
xor	ecx, [ebp+ebx*4+800h]
xor	ecx, [ebp+esi*4+0]
xor	ecx, [ebp+eax*4+400h]
movzx	eax, cl
movzx	ebx, ch
shr	ecx, 10h
movzx	esi, ch
and	ecx, 0FFh
mov	eax, [ebp+eax*4+0C00h]
xor	eax, [edx+edi+8]
xor	eax, [ebp+ebx*4+800h]
xor	eax, [ebp+esi*4+0]
xor	eax, [ebp+ecx*4+400h]
add	edx, 8
jnz	short loc_4421D0
xor	eax, [edx+edi]
mov	edx, edi
mov	edi, [esp+10h+arg_0]
sub	edi, edx

loc_44223D:
test	edi, edi
jz	short loc_442254
movzx	esi, byte ptr [edx]
inc	edx
movzx	ebx, al
xor	esi, ebx
shr	eax, 8
xor	eax, [ebp+esi*4+0]
dec	edi
jmp	short loc_44223D

loc_442254:
pop	edi
pop	esi
pop	ebp
pop	ebx
retn	8
sub_442180 endp

align 4



sub_44225C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_44225C endp


loc_442264:
mov	eax, offset stru_44CD78
jmp	__CxxFrameHandler
align 10h



sub_442270 proc	near
mov	eax, [ebp-14h]
and	eax, 1
test	eax, eax
jz	locret_442286
lea	ecx, [ebp-2Ch]
jmp	sub_406E76

locret_442286:
retn
sub_442270 endp


loc_442287:
mov	eax, offset stru_44CDA0
jmp	__CxxFrameHandler
align 4



sub_442294 proc	near

; FUNCTION CHUNK AT 00401701 SIZE 00000009 BYTES

lea	ecx, [ebp-10h]
jmp	loc_401701
sub_442294 endp


loc_44229C:
mov	eax, offset stru_44CDC8
jmp	__CxxFrameHandler
align 4



sub_4422A8 proc	near
lea	ecx, [ebp-10h]
jmp	loc_401701
sub_4422A8 endp


loc_4422B0:
mov	eax, offset stru_44CDF0
jmp	__CxxFrameHandler
align 4



sub_4422BC proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_4422BC endp




sub_4422C4 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_4422C4 endp


loc_4422CC:
mov	eax, offset stru_44CE18
jmp	__CxxFrameHandler
align 4



sub_4422D8 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_4422D8 endp




sub_4422E0 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_4422E0 endp


loc_4422E8:
mov	eax, offset stru_44CE48
jmp	__CxxFrameHandler
align 4



sub_4422F4 proc	near
lea	ecx, [ebp-10h]
jmp	loc_401701
sub_4422F4 endp


loc_4422FC:
mov	eax, offset stru_44CE78
jmp	__CxxFrameHandler
align 4



sub_442308 proc	near
lea	ecx, [ebp-10h]
jmp	loc_401701
sub_442308 endp


loc_442310:
mov	eax, offset stru_44CEA0
jmp	__CxxFrameHandler
align 4



sub_44231C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_44231C endp




sub_442324 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_442324 endp




sub_44232C proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_44232C endp


loc_442334:
mov	eax, offset stru_44CEC8
jmp	__CxxFrameHandler
align 10h



sub_442340 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_442340 endp


loc_442348:
mov	eax, offset stru_44CF00
jmp	__CxxFrameHandler
align 4



sub_442354 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_442354 endp




sub_44235C proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_44235C endp


loc_442364:
mov	eax, offset stru_44CF28
jmp	__CxxFrameHandler
align 10h



sub_442370 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_442370 endp




sub_442378 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_442378 endp


loc_442380:
mov	eax, offset stru_44CF58
jmp	__CxxFrameHandler
align 4



sub_44238C proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_401E60
sub_44238C endp


loc_442394:
mov	eax, offset stru_44CF88
jmp	__CxxFrameHandler
align 10h



sub_4423A0 proc	near
lea	ecx, [ebp-34h]
jmp	sub_4028F2
sub_4423A0 endp




sub_4423A8 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_4028F2
sub_4423A8 endp




sub_4423B0 proc	near
lea	ecx, [ebp-6Ch]
jmp	sub_4302FB
sub_4423B0 endp




sub_4423B8 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4423B8 endp




sub_4423C0 proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_4423C0 endp




sub_4423C8 proc	near
lea	ecx, [ebp-0FCh]
jmp	sub_402C6D
sub_4423C8 endp




sub_4423D3 proc	near
lea	ecx, [ebp-58h]
jmp	sub_40327C
sub_4423D3 endp




sub_4423DB proc	near
mov	eax, [ebp-14h]
and	eax, 1
test	eax, eax
jz	locret_4423F1
lea	ecx, [ebp-78h]
jmp	sub_406E76

locret_4423F1:
retn
sub_4423DB endp




sub_4423F2 proc	near
mov	eax, [ebp-14h]
and	eax, 2
test	eax, eax
jz	locret_442408
lea	ecx, [ebp-44h]
jmp	sub_406E76

locret_442408:
retn
sub_4423F2 endp




sub_442409 proc	near
mov	eax, [ebp-14h]
and	eax, 4
test	eax, eax
jz	locret_44241F
lea	ecx, [ebp-78h]
jmp	sub_406E76

locret_44241F:
retn
sub_442409 endp




sub_442420 proc	near
mov	eax, [ebp-14h]
and	eax, 8
test	eax, eax
jz	locret_442436
lea	ecx, [ebp-44h]
jmp	sub_406E76

locret_442436:
retn
sub_442420 endp




sub_442437 proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_442437 endp




sub_44243F proc	near
lea	ecx, [ebp-58h]
jmp	sub_4302FB
sub_44243F endp




sub_442447 proc	near
lea	ecx, [ebp-58h]
jmp	sub_4302FB
sub_442447 endp




sub_44244F proc	near
lea	ecx, [ebp-58h]
jmp	sub_4302FB
sub_44244F endp




sub_442457 proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_442457 endp




sub_44245F proc	near
lea	ecx, [ebp-58h]
jmp	sub_4302FB
sub_44245F endp




sub_442467 proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_442467 endp




sub_44246F proc	near
lea	ecx, [ebp-58h]
jmp	sub_4302FB
sub_44246F endp




sub_442477 proc	near
lea	ecx, [ebp-58h]
jmp	sub_4302FB
sub_442477 endp




sub_44247F proc	near
lea	ecx, [ebp-58h]
jmp	sub_4302FB
sub_44247F endp




sub_442487 proc	near
lea	ecx, [ebp-98h]
jmp	sub_4027CD
sub_442487 endp




sub_442492 proc	near
lea	ecx, [ebp-84h]
jmp	sub_406E76
sub_442492 endp




sub_44249D proc	near
lea	ecx, [ebp-14Ch]
jmp	sub_40299B
sub_44249D endp




sub_4424A8 proc	near
lea	ecx, [ebp-124h]
jmp	sub_40299B
sub_4424A8 endp




sub_4424B3 proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_4424B3 endp




sub_4424BB proc	near
lea	ecx, [ebp-120h]
jmp	sub_406E76
sub_4424BB endp




sub_4424C6 proc	near
lea	ecx, [ebp-148h]
jmp	sub_406E76
sub_4424C6 endp




sub_4424D1 proc	near
lea	ecx, [ebp-94h]
jmp	sub_406E76
sub_4424D1 endp




sub_4424DC proc	near
lea	ecx, [ebp-0ACh]
jmp	sub_40327C
sub_4424DC endp




sub_4424E7 proc	near
lea	ecx, [ebp-78h]
jmp	sub_406E76
sub_4424E7 endp




sub_4424EF proc	near
lea	ecx, [ebp-158h]
jmp	sub_406E76
sub_4424EF endp


loc_4424FA:
mov	eax, offset stru_44CFB0
jmp	__CxxFrameHandler



sub_442504 proc	near
mov	ecx, [ebp-10h]
add	ecx, 4
jmp	sub_406E76
sub_442504 endp


unknown_libname_7:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_44D0D0
jmp	__CxxFrameHandler
align 4



sub_44251C proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_44251C endp


loc_442524:
mov	eax, offset stru_44D130
jmp	__CxxFrameHandler
align 10h



sub_442530 proc	near
mov	ecx, [ebp-10h]
add	ecx, 4
jmp	sub_406E76
sub_442530 endp




sub_44253B proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_44253B endp


loc_442543:
mov	eax, offset stru_44D158
jmp	__CxxFrameHandler
align 10h



sub_442550 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_442550 endp




sub_442558 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_442558 endp


loc_442560:
mov	eax, offset stru_44D188
jmp	__CxxFrameHandler
align 4



sub_44256C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_44256C endp


loc_442574:
mov	eax, offset stru_44D1B8
jmp	__CxxFrameHandler
align 10h



sub_442580 proc	near
mov	ecx, [ebp-10h]
jmp	sub_40D6C5
sub_442580 endp




sub_442588 proc	near
mov	ecx, [ebp-10h]
add	ecx, 0Ch
jmp	sub_406E76
sub_442588 endp




sub_442593 proc	near
mov	ecx, [ebp-10h]
add	ecx, 18h
jmp	sub_406E76
sub_442593 endp




sub_44259E proc	near
mov	ecx, [ebp-10h]
add	ecx, 24h
jmp	sub_406E76
sub_44259E endp


loc_4425A9:
mov	eax, offset stru_44D1E0
jmp	__CxxFrameHandler
align 4



sub_4425B4 proc	near
mov	ecx, [ebp-10h]
jmp	sub_40D6C5
sub_4425B4 endp




sub_4425BC proc	near
mov	ecx, [ebp-10h]
add	ecx, 0Ch
jmp	sub_406E76
sub_4425BC endp




sub_4425C7 proc	near
mov	ecx, [ebp-10h]
add	ecx, 18h
jmp	sub_406E76
sub_4425C7 endp




sub_4425D2 proc	near
mov	ecx, [ebp-10h]
add	ecx, 24h
jmp	sub_406E76
sub_4425D2 endp




sub_4425DD proc	near
mov	ecx, [ebp-10h]
add	ecx, 30h
jmp	sub_406E76
sub_4425DD endp




sub_4425E8 proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_4425E8 endp


loc_4425F0:
mov	eax, offset stru_44D220
jmp	__CxxFrameHandler
align 4



sub_4425FC proc	near
lea	ecx, [ebp+8]
jmp	sub_4370A0
sub_4425FC endp


loc_442604:
mov	eax, offset stru_44D270
jmp	__CxxFrameHandler
align 10h



sub_442610 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_442610 endp


loc_442618:
mov	eax, offset stru_44D298
jmp	__CxxFrameHandler
align 4



sub_442624 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_442624 endp


loc_44262C:
mov	eax, offset stru_44D2C0
jmp	__CxxFrameHandler
align 4



sub_442638 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_442638 endp




sub_442640 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_442640 endp


loc_442648:
mov	eax, offset stru_44D2E8
jmp	__CxxFrameHandler
align 4



sub_442654 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_442654 endp


loc_44265C:
mov	eax, offset stru_44D318
jmp	__CxxFrameHandler
align 4



sub_442668 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_442668 endp


unknown_libname_8:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_44D340
jmp	__CxxFrameHandler



sub_44267C proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_44267C endp


loc_442684:
mov	eax, offset stru_44D368
jmp	__CxxFrameHandler
align 10h



sub_442690 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_442690 endp


loc_442698:
mov	eax, offset stru_44D390
jmp	__CxxFrameHandler
align 4



sub_4426A4 proc	near
push	dword ptr [ebp+8] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_4426A4 endp


unknown_libname_9:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_44D3B8
jmp	__CxxFrameHandler



sub_4426B8 proc	near
lea	ecx, [ebp-10h]
jmp	loc_401701
sub_4426B8 endp




sub_4426C0 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4426C0 endp


loc_4426C8:
mov	eax, offset stru_44D3E0
jmp	__CxxFrameHandler
align 4



sub_4426D4 proc	near
lea	ecx, [ebp-6Ch]
jmp	sub_403D27
sub_4426D4 endp


loc_4426DC:
mov	eax, offset stru_44D410
jmp	__CxxFrameHandler
align 4



sub_4426E8 proc	near
mov	ecx, [ebp-10h]
jmp	sub_40D6C5
sub_4426E8 endp




sub_4426F0 proc	near

; FUNCTION CHUNK AT 00403D7B SIZE 0000000A BYTES

mov	ecx, [ebp-10h]
add	ecx, 10h
jmp	loc_403D7B
sub_4426F0 endp


loc_4426FB:
mov	eax, offset stru_44D438
jmp	__CxxFrameHandler
align 4



sub_442708 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_442708 endp


loc_442710:
mov	eax, offset stru_44D468
jmp	__CxxFrameHandler
align 4



sub_44271C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_44271C endp


loc_442724:
mov	eax, offset stru_44D490
jmp	__CxxFrameHandler
align 10h



sub_442730 proc	near
lea	ecx, [ebp-10h]
jmp	loc_401701
sub_442730 endp


loc_442738:
mov	eax, offset stru_44D4B8
jmp	__CxxFrameHandler
align 4



sub_442744 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_442744 endp


loc_44274C:
mov	eax, offset stru_44D4E0
jmp	__CxxFrameHandler
align 4



sub_442758 proc	near
lea	ecx, [ebp-10h]
jmp	loc_401701
sub_442758 endp


loc_442760:
mov	eax, offset stru_44D508
jmp	__CxxFrameHandler
align 4



sub_44276C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_44276C endp




sub_442774 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_442774 endp




sub_44277C proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_44277C endp




sub_442784 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_442784 endp




sub_44278C proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_44278C endp


loc_442794:
mov	eax, offset stru_44D530
jmp	__CxxFrameHandler
align 10h



sub_4427A0 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4427A0 endp


loc_4427A8:
mov	eax, offset stru_44D578
jmp	__CxxFrameHandler
align 4



sub_4427B4 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4427B4 endp


loc_4427BC:
mov	eax, offset stru_44D5A0
jmp	__CxxFrameHandler
align 4



sub_4427C8 proc	near
lea	ecx, [ebp-24h]
jmp	sub_40D710
sub_4427C8 endp


loc_4427D0:
mov	eax, offset stru_44D5C8
jmp	__CxxFrameHandler
align 4



sub_4427DC proc	near
mov	ecx, [ebp-10h]
jmp	sub_40D6C5
sub_4427DC endp


loc_4427E4:
mov	eax, offset stru_44D5F0
jmp	__CxxFrameHandler
align 10h



sub_4427F0 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_4427F0 endp




sub_4427F8 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_4427F8 endp




sub_442800 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_442800 endp




sub_442808 proc	near

; FUNCTION CHUNK AT 00407A4A SIZE 0000000A BYTES

lea	ecx, [ebp-98h]
jmp	loc_407A4A
sub_442808 endp




sub_442813 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_442813 endp




sub_44281B proc	near
lea	ecx, [ebp-60h]
jmp	sub_406E76
sub_44281B endp




sub_442823 proc	near
lea	ecx, [ebp-54h]
jmp	sub_406E76
sub_442823 endp




sub_44282B proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_44282B endp




sub_442833 proc	near
lea	ecx, [ebp-54h]
jmp	sub_406E76
sub_442833 endp




sub_44283B proc	near
lea	ecx, [ebp-60h]
jmp	sub_406E76
sub_44283B endp




sub_442843 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_442843 endp




sub_44284B proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_44284B endp




sub_442853 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_442853 endp




sub_44285B proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_44285B endp




sub_442863 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_442863 endp




sub_44286B proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_44286B endp


loc_442873:
mov	eax, offset stru_44D618
jmp	__CxxFrameHandler
align 10h



sub_442880 proc	near
lea	ecx, [ebp-0B4h]
jmp	sub_405267
sub_442880 endp




sub_44288B proc	near
lea	ecx, [ebp-60h]
jmp	sub_406E76
sub_44288B endp




sub_442893 proc	near
lea	ecx, [ebp-6Ch]
jmp	sub_406E76
sub_442893 endp




sub_44289B proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_44289B endp




sub_4428A3 proc	near
lea	ecx, [ebp-54h]
jmp	sub_406E76
sub_4428A3 endp




sub_4428AB proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_4428AB endp




sub_4428B3 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4428B3 endp




sub_4428BB proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4428BB endp




sub_4428C3 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4428C3 endp




sub_4428CB proc	near
lea	ecx, [ebp+14h]
jmp	sub_4059B3
sub_4428CB endp




sub_4428D3 proc	near
lea	ecx, [ebp-9Ch]
jmp	sub_4051D0
sub_4428D3 endp




sub_4428DE proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_4428DE endp




sub_4428E8 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4428E8 endp




sub_4428F0 proc	near
lea	ecx, [ebp-0C0h]
jmp	sub_406E76
sub_4428F0 endp




sub_4428FB proc	near
lea	ecx, [ebp-0D8h]
jmp	sub_406E76
sub_4428FB endp




sub_442906 proc	near
lea	ecx, [ebp-0CCh]
jmp	sub_406E76
sub_442906 endp




sub_442911 proc	near
lea	ecx, [ebp-10h]
jmp	sub_404D3D
sub_442911 endp


loc_442919:
mov	eax, offset stru_44D6F8
jmp	__CxxFrameHandler
align 4



sub_442924 proc	near
mov	ecx, [ebp-10h]
add	ecx, 18h
jmp	sub_406E76
sub_442924 endp




sub_44292F proc	near
mov	ecx, [ebp-10h]
add	ecx, 28h
jmp	loc_407A4A
sub_44292F endp




sub_44293A proc	near

; FUNCTION CHUNK AT 00404EBD SIZE 00000008 BYTES

mov	ecx, [ebp-10h]
add	ecx, 60h
jmp	loc_404EBD
sub_44293A endp




sub_442945 proc	near
mov	ecx, [ebp-10h]
add	ecx, 7Ch
jmp	sub_406E76
sub_442945 endp




sub_442950 proc	near
mov	ecx, [ebp-10h]
add	ecx, 8Ch
jmp	sub_406E76
sub_442950 endp


loc_44295E:
mov	eax, offset stru_44D7A0
jmp	__CxxFrameHandler



sub_442968 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_442968 endp


loc_442970:
mov	eax, offset stru_44D7E8
jmp	__CxxFrameHandler
align 4



sub_44297C proc	near
mov	ecx, [ebp-10h]
add	ecx, 18h
jmp	sub_406E76
sub_44297C endp




sub_442987 proc	near
mov	ecx, [ebp-10h]
add	ecx, 28h
jmp	loc_407A4A
sub_442987 endp




sub_442992 proc	near
mov	ecx, [ebp-10h]
add	ecx, 60h
jmp	loc_404EBD
sub_442992 endp




sub_44299D proc	near
mov	ecx, [ebp-10h]
add	ecx, 7Ch
jmp	sub_406E76
sub_44299D endp




sub_4429A8 proc	near
mov	ecx, [ebp-10h]
add	ecx, 8Ch
jmp	sub_406E76
sub_4429A8 endp


loc_4429B6:
mov	eax, offset stru_44D810
jmp	__CxxFrameHandler



sub_4429C0 proc	near

; FUNCTION CHUNK AT 00405175 SIZE 00000007 BYTES

lea	ecx, [ebp-18h]
jmp	loc_405175
sub_4429C0 endp


loc_4429C8:
mov	eax, offset stru_44D858
jmp	__CxxFrameHandler
align 4



sub_4429D4 proc	near
mov	ecx, [ebp-10h]
jmp	sub_406E76
sub_4429D4 endp


loc_4429DC:
mov	eax, offset stru_44D8B8
jmp	__CxxFrameHandler
align 4



sub_4429E8 proc	near
mov	ecx, [ebp-10h]
jmp	sub_406E76
sub_4429E8 endp




sub_4429F0 proc	near
mov	ecx, [ebp-10h]
add	ecx, 0Ch
jmp	sub_406E76
sub_4429F0 endp




sub_4429FB proc	near
mov	ecx, [ebp-10h]
add	ecx, 18h
jmp	sub_4370A0
sub_4429FB endp




sub_442A06 proc	near
mov	ecx, [ebp-10h]
add	ecx, 1Ch
jmp	sub_4370A0
sub_442A06 endp

; [0000000B BYTES: COLLAPSED FUNCTION unknown_libname_10. PRESS	KEYPAD CTRL-"+"	TO EXPAND]

loc_442A1C:
mov	eax, offset stru_44D8E0
jmp	__CxxFrameHandler
align 4



sub_442A28 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_442A28 endp


loc_442A30:
mov	eax, offset stru_44D928
jmp	__CxxFrameHandler
align 4



sub_442A3C proc	near
lea	ecx, [ebp-18h]
jmp	sub_4059B3
sub_442A3C endp




sub_442A44 proc	near
lea	ecx, [ebp-14h]
jmp	sub_4370A0
sub_442A44 endp




sub_442A4C proc	near

; FUNCTION CHUNK AT 00405586 SIZE 00000009 BYTES

lea	ecx, [ebp-24h]
jmp	loc_405586
sub_442A4C endp




sub_442A54 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_442A54 endp




sub_442A5C proc	near
lea	ecx, [ebp-54h]
jmp	sub_40327C
sub_442A5C endp




sub_442A64 proc	near
lea	ecx, [ebp-78h]
jmp	sub_406E76
sub_442A64 endp




sub_442A6C proc	near
lea	ecx, [ebp-78h]
jmp	sub_40558F
sub_442A6C endp




sub_442A74 proc	near
lea	ecx, [ebp-78h]
jmp	sub_406E76
sub_442A74 endp




sub_442A7C proc	near
lea	ecx, [ebp-54h]
jmp	sub_4302FB
sub_442A7C endp


loc_442A84:
mov	eax, offset stru_44D950
jmp	__CxxFrameHandler
align 10h



sub_442A90 proc	near
mov	ecx, [ebp-10h]
jmp	sub_406E76
sub_442A90 endp


loc_442A98:
mov	eax, offset stru_44D9B8
jmp	__CxxFrameHandler
align 4



sub_442AA4 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_442AA4 endp


unknown_libname_11:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_44D9E0
jmp	__CxxFrameHandler



sub_442AB8 proc	near
mov	ecx, [ebp-10h]
jmp	sub_406E76
sub_442AB8 endp


loc_442AC0:
mov	eax, offset stru_44DA08
jmp	__CxxFrameHandler
align 4



sub_442ACC proc	near
mov	ecx, [ebp-10h]
jmp	sub_4282FE
sub_442ACC endp


loc_442AD4:
mov	eax, offset stru_44DA30
jmp	__CxxFrameHandler
align 10h



sub_442AE0 proc	near

; FUNCTION CHUNK AT 00405B31 SIZE 00000035 BYTES

mov	ecx, [ebp-10h]
add	ecx, 14h
jmp	loc_405B31
sub_442AE0 endp




sub_442AEB proc	near
push	offset sub_40D8CA ; void (__thiscall *)(void *)
push	2		; int
push	188h		; unsigned int
mov	eax, [ebp-10h]
add	eax, 84h
push	eax		; void *
call	??_M@YGXPAXIHP6EX0@Z@Z ; `eh vector destructor iterator'(void *,uint,int,void (*)(void *))
retn
sub_442AEB endp




sub_442B06 proc	near

; FUNCTION CHUNK AT 004057DD SIZE 00000011 BYTES

mov	ecx, [ebp-10h]
add	ecx, 398h
jmp	loc_4057DD
sub_442B06 endp




sub_442B14 proc	near
mov	ecx, [ebp-10h]
add	ecx, 3A4h
jmp	sub_4370A0
sub_442B14 endp


loc_442B22:
mov	eax, offset stru_44DA58
jmp	__CxxFrameHandler



sub_442B2C proc	near

; FUNCTION CHUNK AT 004059B8 SIZE 00000007 BYTES

mov	ecx, [ebp-10h]
jmp	loc_4059B8
sub_442B2C endp




sub_442B34 proc	near
mov	ecx, [ebp-14h]
jmp	sub_406AF7
sub_442B34 endp




sub_442B3C proc	near
mov	ecx, [ebp-10h]
add	ecx, 8
jmp	sub_405A0E
sub_442B3C endp




sub_442B47 proc	near
mov	ecx, [ebp-10h]
add	ecx, 54h
jmp	sub_40327C
sub_442B47 endp




sub_442B52 proc	near
mov	ecx, [ebp-10h]
add	ecx, 90h
jmp	sub_4302FB
sub_442B52 endp




sub_442B60 proc	near
mov	ecx, [ebp-10h]
add	ecx, 0A4h
jmp	sub_40299B
sub_442B60 endp




sub_442B6E proc	near
mov	ecx, [ebp-10h]
add	ecx, 0D8h
jmp	sub_406E76
sub_442B6E endp




sub_442B7C proc	near
mov	ecx, [ebp-10h]
add	ecx, 0E4h
jmp	sub_406C6D
sub_442B7C endp




sub_442B8A proc	near
mov	ecx, [ebp-10h]
add	ecx, 0F8h
jmp	sub_4059B3
sub_442B8A endp




sub_442B98 proc	near
mov	ecx, [ebp-10h]
add	ecx, 0FCh
jmp	sub_4370A0
sub_442B98 endp




sub_442BA6 proc	near
mov	ecx, [ebp-10h]
add	ecx, 100h
jmp	sub_40327C
sub_442BA6 endp




sub_442BB4 proc	near
mov	ecx, [ebp-10h]
add	ecx, 118h
jmp	sub_406E76
sub_442BB4 endp




sub_442BC2 proc	near

; FUNCTION CHUNK AT 00405A74 SIZE 00000038 BYTES

mov	ecx, [ebp-10h]
add	ecx, 124h
jmp	loc_405A74
sub_442BC2 endp




sub_442BD0 proc	near
mov	ecx, [ebp-10h]
add	ecx, 140h
jmp	sub_405AAC
sub_442BD0 endp


loc_442BDE:
mov	eax, offset stru_44DA98
jmp	__CxxFrameHandler



sub_442BE8 proc	near
mov	ecx, [ebp-10h]
jmp	sub_406AF7
sub_442BE8 endp




sub_442BF0 proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_442BF0 endp




sub_442BF8 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_442BF8 endp


loc_442C00:
mov	eax, offset stru_44DB28
jmp	__CxxFrameHandler
align 4



sub_442C0C proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_442C0C endp


loc_442C14:
mov	eax, offset stru_44DB60
jmp	__CxxFrameHandler
align 10h



sub_442C20 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_442C20 endp


loc_442C28:
mov	eax, offset stru_44DB88
jmp	__CxxFrameHandler
align 4



sub_442C34 proc	near
mov	ecx, [ebp-10h]
jmp	sub_405B66
sub_442C34 endp


loc_442C3C:
mov	eax, offset stru_44DBB0
jmp	__CxxFrameHandler
align 4



sub_442C48 proc	near
mov	ecx, [ebp-10h]
jmp	sub_405B66
sub_442C48 endp


loc_442C50:
mov	eax, offset stru_44DBD8
jmp	__CxxFrameHandler
align 4



sub_442C5C proc	near
mov	ecx, [ebp-10h]
jmp	loc_404EBD
sub_442C5C endp




sub_442C64 proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_442C64 endp


loc_442C6C:
mov	eax, offset stru_44DC00
jmp	__CxxFrameHandler
align 4



sub_442C78 proc	near
mov	ecx, [ebp-10h]
jmp	loc_404EBD
sub_442C78 endp




sub_442C80 proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_442C80 endp


loc_442C88:
mov	eax, offset stru_44DC30
jmp	__CxxFrameHandler
align 4



sub_442C94 proc	near
mov	ecx, [ebp-10h]
add	ecx, 14h
jmp	loc_405B31
sub_442C94 endp




sub_442C9F proc	near
push	offset sub_40D8CA ; void (__thiscall *)(void *)
push	2		; int
push	188h		; unsigned int
mov	eax, [ebp-10h]
add	eax, 84h
push	eax		; void *
call	??_M@YGXPAXIHP6EX0@Z@Z ; `eh vector destructor iterator'(void *,uint,int,void (*)(void *))
retn
sub_442C9F endp




sub_442CBA proc	near
mov	ecx, [ebp-10h]
add	ecx, 398h
jmp	loc_4057DD
sub_442CBA endp




sub_442CC8 proc	near
mov	ecx, [ebp-10h]
jmp	sub_405B66
sub_442CC8 endp


loc_442CD0:
mov	eax, offset stru_44DC60
jmp	__CxxFrameHandler
align 4



sub_442CDC proc	near
lea	ecx, [ebp-70h]
jmp	sub_406E76
sub_442CDC endp


loc_442CE4:
mov	eax, offset stru_44DCA0
jmp	__CxxFrameHandler
align 10h



sub_442CF0 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_442CF0 endp




sub_442CF8 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_442CF8 endp




sub_442D00 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_442D00 endp




sub_442D08 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_442D08 endp


loc_442D10:
mov	eax, offset stru_44DCC8
jmp	__CxxFrameHandler
align 4



sub_442D1C proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_442D1C endp


unknown_libname_12:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_44DD08
jmp	__CxxFrameHandler



sub_442D30 proc	near
mov	ecx, [ebp-10h]
add	ecx, 8
jmp	sub_4370A0
sub_442D30 endp




sub_442D3B proc	near
mov	ecx, [ebp-10h]
add	ecx, 0Ch
jmp	sub_40327C
sub_442D3B endp


loc_442D46:
mov	eax, offset stru_44DD30
jmp	__CxxFrameHandler



sub_442D50 proc	near
mov	ecx, [ebp-10h]
add	ecx, 8
jmp	sub_4370A0
sub_442D50 endp




sub_442D5B proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_442D5B endp


loc_442D63:
mov	eax, offset stru_44DD60
jmp	__CxxFrameHandler
align 10h



sub_442D70 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_4028F2
sub_442D70 endp




sub_442D78 proc	near
lea	ecx, [ebp-14h]
jmp	sub_4028F2
sub_442D78 endp


loc_442D80:
mov	eax, offset stru_44DD90
jmp	__CxxFrameHandler
align 4



sub_442D8C proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_442D8C endp


loc_442D94:
mov	eax, offset stru_44DDC0
jmp	__CxxFrameHandler
align 10h



sub_442DA0 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_442DA0 endp


loc_442DA8:
mov	eax, offset stru_44DDE8
jmp	__CxxFrameHandler
align 4



sub_442DB4 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_442DB4 endp


loc_442DBC:
mov	eax, offset stru_44DE10
jmp	__CxxFrameHandler
align 4



sub_442DC8 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_442DC8 endp


loc_442DD0:
mov	eax, offset stru_44DE38
jmp	__CxxFrameHandler
align 4



sub_442DDC proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_442DDC endp


loc_442DE4:
mov	eax, offset stru_44DE60
jmp	__CxxFrameHandler
align 10h



sub_442DF0 proc	near
mov	ecx, [ebp-10h]
jmp	sub_406EDD
sub_442DF0 endp




sub_442DF8 proc	near
mov	ecx, [ebp-10h]
add	ecx, 68h
jmp	sub_4059B3
sub_442DF8 endp


loc_442E03:
mov	eax, offset stru_44DE88
jmp	__CxxFrameHandler
align 10h



sub_442E10 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_442E10 endp


loc_442E18:
mov	eax, offset stru_44DEB8
jmp	__CxxFrameHandler
align 4



sub_442E24 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_442E24 endp


loc_442E2C:
mov	eax, offset stru_44DEE0
jmp	__CxxFrameHandler
align 4



sub_442E38 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_442E38 endp


loc_442E40:
mov	eax, offset stru_44DF08
jmp	__CxxFrameHandler
align 4



sub_442E4C proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_442E4C endp




sub_442E54 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_442E54 endp




sub_442E5C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_442E5C endp


loc_442E64:
mov	eax, offset stru_44DF30
jmp	__CxxFrameHandler
align 10h



sub_442E70 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_442E70 endp




sub_442E78 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_442E78 endp


loc_442E80:
mov	eax, offset stru_44DF68
jmp	__CxxFrameHandler
align 4



sub_442E8C proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_442E8C endp


loc_442E94:
mov	eax, offset stru_44DF98
jmp	__CxxFrameHandler
align 10h



sub_442EA0 proc	near
lea	ecx, [ebp+0Ch]
jmp	sub_407709
sub_442EA0 endp




sub_442EA8 proc	near
lea	ecx, [ebp-5Ch]
jmp	loc_407A4A
sub_442EA8 endp




sub_442EB0 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_442EB0 endp




sub_442EB8 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_442EB8 endp


loc_442EC0:
mov	eax, offset stru_44DFC0
jmp	__CxxFrameHandler
align 4



sub_442ECC proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_442ECC endp




sub_442ED4 proc	near
lea	ecx, [ebp-68h]
jmp	sub_406E76
sub_442ED4 endp




sub_442EDC proc	near
lea	ecx, [ebp-20h]
jmp	sub_407709
sub_442EDC endp




sub_442EE4 proc	near
lea	ecx, [ebp-20h]
jmp	sub_4078D8
sub_442EE4 endp




sub_442EEC proc	near
lea	ecx, [ebp-0ACh]
jmp	loc_407A4A
sub_442EEC endp




sub_442EF7 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_442EF7 endp




sub_442EFF proc	near
lea	ecx, [ebp-74h]
jmp	sub_406E76
sub_442EFF endp




sub_442F07 proc	near
lea	ecx, [ebp-5Ch]
jmp	sub_406E76
sub_442F07 endp


loc_442F0F:
mov	eax, offset stru_44E000
jmp	__CxxFrameHandler
align 4



sub_442F1C proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_442F1C endp




sub_442F24 proc	near
lea	ecx, [ebp-20h]
jmp	sub_407709
sub_442F24 endp




sub_442F2C proc	near
lea	ecx, [ebp-20h]
jmp	sub_4078D8
sub_442F2C endp




sub_442F34 proc	near
lea	ecx, [ebp-0A4h]
jmp	loc_407A4A
sub_442F34 endp




sub_442F3F proc	near
lea	ecx, [ebp-0A4h]
jmp	sub_407A54
sub_442F3F endp




sub_442F4A proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_442F4A endp




sub_442F52 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_442F52 endp


__ehhandler$?_Iput@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AAVios_base@2@DPADI@Z:
mov	eax, offset stru_44E070
jmp	__CxxFrameHandler



sub_442F64 proc	near
mov	ecx, [ebp-10h]
jmp	loc_407A4A
sub_442F64 endp




sub_442F6C proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_442F6C endp


loc_442F74:
mov	eax, offset stru_44E0D0
jmp	__CxxFrameHandler
align 10h



sub_442F80 proc	near
lea	ecx, [ebp-50h]
jmp	sub_407E2B
sub_442F80 endp




sub_442F88 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_442F88 endp




sub_442F90 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_442F90 endp




sub_442F98 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_442F98 endp


loc_442FA0:
mov	eax, offset stru_44E100
jmp	__CxxFrameHandler
align 4



sub_442FAC proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_407E2B
sub_442FAC endp




sub_442FB4 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_442FB4 endp




sub_442FBC proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_442FBC endp




sub_442FC4 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_442FC4 endp


loc_442FCC:
mov	eax, offset stru_44E140
jmp	__CxxFrameHandler
align 4



sub_442FD8 proc	near
lea	ecx, [ebp-58h]
jmp	sub_401E60
sub_442FD8 endp




sub_442FE0 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_442FE0 endp




sub_442FE8 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_442FE8 endp




sub_442FF0 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_442FF0 endp




sub_442FF8 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_442FF8 endp




sub_443000 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_443000 endp


loc_443008:
mov	eax, offset stru_44E180
jmp	__CxxFrameHandler
align 4



sub_443014 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_443014 endp


loc_44301C:
mov	eax, offset stru_44E1D0
jmp	__CxxFrameHandler
align 4



sub_443028 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_443028 endp




sub_443032 proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_443032 endp




sub_44303A proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_44303A endp




sub_443042 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_443042 endp




sub_44304A proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_44304A endp


loc_443052:
mov	eax, offset stru_44E1F8
jmp	__CxxFrameHandler
; [0000000B BYTES: COLLAPSED FUNCTION unknown_libname_13. PRESS	KEYPAD CTRL-"+"	TO EXPAND]

loc_443067:
mov	eax, offset stru_44E240
jmp	__CxxFrameHandler
align 4



sub_443074 proc	near
mov	ecx, [ebp-10h]
add	ecx, 20h
jmp	sub_406E76
sub_443074 endp




sub_44307F proc	near
mov	ecx, [ebp-10h]
add	ecx, 30h
jmp	sub_407A54
sub_44307F endp




sub_44308A proc	near
mov	ecx, [ebp-10h]
add	ecx, 90h
jmp	sub_4302FB
sub_44308A endp




sub_443098 proc	near
mov	ecx, [ebp-10h]
add	ecx, 0A4h
jmp	sub_4370A0
sub_443098 endp




sub_4430A6 proc	near

; FUNCTION CHUNK AT 004084E0 SIZE 00000038 BYTES

mov	ecx, [ebp-10h]
add	ecx, 0ACh
jmp	loc_4084E0
sub_4430A6 endp




sub_4430B4 proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_4430B4 endp


loc_4430BC:
mov	eax, offset stru_44E268
jmp	__CxxFrameHandler
align 4



sub_4430C8 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_4430C8 endp


loc_4430D0:
mov	eax, offset stru_44E2B8
jmp	__CxxFrameHandler
align 4



sub_4430DC proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4430DC endp




sub_4430E4 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_4430E4 endp




sub_4430EC proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_4430EC endp




sub_4430F4 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4430F4 endp


loc_4430FC:
mov	eax, offset stru_44E2E0
jmp	__CxxFrameHandler
align 4



sub_443108 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_443108 endp


loc_443110:
mov	eax, offset stru_44E320
jmp	__CxxFrameHandler
align 4



sub_44311C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_44311C endp


loc_443124:
mov	eax, offset stru_44E348
jmp	__CxxFrameHandler
align 10h



sub_443130 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_443130 endp




sub_443138 proc	near
push	dword ptr [ebp+8] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_443138 endp




sub_443142 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_443142 endp




sub_44314A proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_44314A endp




sub_443152 proc	near
push	dword ptr [ebp+8] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_443152 endp




sub_44315C proc	near
lea	ecx, [ebp+8]
jmp	sub_4370A0
sub_44315C endp




sub_443164 proc	near
push	dword ptr [ebp+8] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_443164 endp




sub_44316E proc	near
lea	ecx, [ebp+8]
jmp	sub_4370A0
sub_44316E endp


loc_443176:
mov	eax, offset stru_44E370
jmp	__CxxFrameHandler



sub_443180 proc	near
mov	ecx, [ebp-10h]
add	ecx, 0Ch
jmp	sub_42EEC8
sub_443180 endp




sub_44318B proc	near
mov	ecx, [ebp-10h]
add	ecx, 54h
jmp	sub_40966D
sub_44318B endp




sub_443196 proc	near
mov	ecx, [ebp-10h]
add	ecx, 68h
jmp	sub_4370A0
sub_443196 endp


loc_4431A1:
mov	eax, offset stru_44E3D0
jmp	__CxxFrameHandler
align 4



sub_4431AC proc	near
mov	ecx, [ebp-10h]
add	ecx, 14h
jmp	sub_406E76
sub_4431AC endp




sub_4431B7 proc	near
mov	ecx, [ebp-10h]
add	ecx, 20h
jmp	sub_406E76
sub_4431B7 endp




sub_4431C2 proc	near
mov	ecx, [ebp-10h]
add	ecx, 2Ch
jmp	sub_406E76
sub_4431C2 endp


loc_4431CD:
mov	eax, offset stru_44E408
jmp	__CxxFrameHandler
align 4



sub_4431D8 proc	near
mov	ecx, [ebp-10h]
add	ecx, 0Ch
jmp	sub_42EEC8
sub_4431D8 endp




sub_4431E3 proc	near
mov	ecx, [ebp-10h]
add	ecx, 54h
jmp	sub_40966D
sub_4431E3 endp




sub_4431EE proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_4431EE endp


loc_4431F6:
mov	eax, offset stru_44E440
jmp	__CxxFrameHandler



sub_443200 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_443200 endp


loc_443208:
mov	eax, offset stru_44E478
jmp	__CxxFrameHandler
align 4



sub_443214 proc	near
lea	ecx, [ebp-20h]
jmp	sub_401E60
sub_443214 endp


loc_44321C:
mov	eax, offset stru_44E4A0
jmp	__CxxFrameHandler
align 4



sub_443228 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_443228 endp




sub_443232 proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_443232 endp


loc_44323A:
mov	eax, offset stru_44E500
jmp	__CxxFrameHandler



sub_443244 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_443244 endp




sub_44324C proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_44324C endp


loc_443254:
mov	eax, offset stru_44E530
jmp	__CxxFrameHandler
align 10h



sub_443260 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_443260 endp




sub_443268 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_443268 endp


loc_443270:
mov	eax, offset stru_44E560
jmp	__CxxFrameHandler
align 4



sub_44327C proc	near
lea	ecx, [ebp-24h]
jmp	sub_401E60
sub_44327C endp


loc_443284:
mov	eax, offset stru_44E590
jmp	__CxxFrameHandler
align 10h



sub_443290 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_443290 endp




sub_443298 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_443298 endp


loc_4432A0:
mov	eax, offset stru_44E5B8
jmp	__CxxFrameHandler
align 4



sub_4432AC proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4432AC endp


loc_4432B4:
mov	eax, offset stru_44E5E8
jmp	__CxxFrameHandler
align 10h



sub_4432C0 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4432C0 endp




sub_4432C8 proc	near
lea	ecx, [ebp-28h]
jmp	sub_407E2B
sub_4432C8 endp


loc_4432D0:
mov	eax, offset stru_44E610
jmp	__CxxFrameHandler
align 4



sub_4432DC proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_4432DC endp




sub_4432E4 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4432E4 endp




sub_4432EC proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_4432EC endp




sub_4432F4 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_4432F4 endp


loc_4432FC:
mov	eax, offset stru_44E640
jmp	__CxxFrameHandler
align 4



sub_443308 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_443308 endp




sub_443310 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_443310 endp


loc_443318:
mov	eax, offset stru_44E688
jmp	__CxxFrameHandler
align 4



sub_443324 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_443324 endp




sub_44332C proc	near
lea	ecx, [ebp-30h]
jmp	sub_409444
sub_44332C endp


loc_443334:
mov	eax, offset stru_44E6C0
jmp	__CxxFrameHandler
align 10h



sub_443340 proc	near
mov	ecx, [ebp-10h]
jmp	sub_406E76
sub_443340 endp


loc_443348:
mov	eax, offset stru_44E6F0
jmp	__CxxFrameHandler
align 4



sub_443354 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_443354 endp




sub_44335C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_44335C endp


loc_443364:
mov	eax, offset stru_44E718
jmp	__CxxFrameHandler
align 10h



sub_443370 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_443370 endp


unknown_libname_14:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_44E748
jmp	__CxxFrameHandler



sub_443384 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_443384 endp


loc_44338C:
mov	eax, offset stru_44E770
jmp	__CxxFrameHandler
align 4



sub_443398 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_443398 endp


loc_4433A0:
mov	eax, offset stru_44E798
jmp	__CxxFrameHandler
align 4



sub_4433AC proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_4433AC endp


loc_4433B4:
mov	eax, offset stru_44E7C0
jmp	__CxxFrameHandler
align 10h



sub_4433C0 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_4433C0 endp


loc_4433C8:
mov	eax, offset stru_44E7E8
jmp	__CxxFrameHandler
align 4



sub_4433D4 proc	near
mov	ecx, [ebp-10h]
jmp	loc_407A4A
sub_4433D4 endp


loc_4433DC:
mov	eax, offset stru_44E810
jmp	__CxxFrameHandler
align 4



sub_4433E8 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_4433E8 endp


loc_4433F0:
mov	eax, offset stru_44E838
jmp	__CxxFrameHandler
align 4



sub_4433FC proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4433FC endp


loc_443404:
mov	eax, offset stru_44E860
jmp	__CxxFrameHandler
align 10h



sub_443410 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_443410 endp


loc_443418:
mov	eax, offset stru_44E888
jmp	__CxxFrameHandler
align 4



sub_443424 proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_443424 endp




sub_44342C proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_44342C endp




sub_443434 proc	near
lea	ecx, [ebp-68h]
jmp	sub_406E76
sub_443434 endp




sub_44343C proc	near
lea	ecx, [ebp-5Ch]
jmp	sub_406E76
sub_44343C endp




sub_443444 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_443444 endp


loc_44344C:
mov	eax, offset stru_44E8B0
jmp	__CxxFrameHandler
align 4



sub_443458 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_443458 endp




sub_443460 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_443460 endp




sub_443468 proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_443468 endp




sub_443470 proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_443470 endp




sub_443478 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_443478 endp




sub_443480 proc	near
lea	ecx, [ebp+8]
jmp	loc_405586
sub_443480 endp




sub_443488 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_443488 endp




sub_443490 proc	near
lea	ecx, [ebp-80h]
jmp	sub_406E76
sub_443490 endp




sub_443498 proc	near
lea	ecx, [ebp-74h]
jmp	sub_406E76
sub_443498 endp




sub_4434A0 proc	near
lea	ecx, [ebp-68h]
jmp	sub_406E76
sub_4434A0 endp




sub_4434A8 proc	near
lea	ecx, [ebp-5Ch]
jmp	sub_406E76
sub_4434A8 endp




sub_4434B0 proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_4434B0 endp




sub_4434B8 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_4434B8 endp




sub_4434C0 proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_4434C0 endp


loc_4434C8:
mov	eax, offset stru_44E908
jmp	__CxxFrameHandler
align 4



sub_4434D4 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4434D4 endp




sub_4434DC proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4434DC endp




sub_4434E4 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4434E4 endp




sub_4434EC proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4434EC endp




sub_4434F4 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_4434F4 endp


loc_4434FC:
mov	eax, offset stru_44E9E0
jmp	__CxxFrameHandler
align 4



sub_443508 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_443508 endp


loc_443510:
mov	eax, offset stru_44EA28
jmp	__CxxFrameHandler
align 4



sub_44351C proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_44351C endp




sub_443524 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_443524 endp




sub_44352C proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_406E76
sub_44352C endp




sub_443534 proc	near
lea	ecx, [ebp-58h]
jmp	sub_406E76
sub_443534 endp




sub_44353C proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_44353C endp




sub_443544 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_443544 endp




sub_44354C proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_406E76
sub_44354C endp




sub_443554 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_443554 endp




sub_44355C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_44355C endp




sub_443564 proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_406E76
sub_443564 endp




sub_44356C proc	near
lea	ecx, [ebp-40h]
jmp	sub_407709
sub_44356C endp




sub_443574 proc	near
lea	ecx, [ebp-40h]
jmp	sub_4078D8
sub_443574 endp




sub_44357C proc	near
lea	ecx, [ebp-0A0h]
jmp	loc_407A4A
sub_44357C endp




sub_443587 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_443587 endp




sub_44358F proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_44358F endp


loc_443597:
mov	eax, offset stru_44EA50
jmp	__CxxFrameHandler
align 4



sub_4435A4 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4435A4 endp




sub_4435AC proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4435AC endp


loc_4435B4:
mov	eax, offset stru_44EB18
jmp	__CxxFrameHandler
align 10h



sub_4435C0 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_4435C0 endp




sub_4435C8 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_4435C8 endp




sub_4435D0 proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_4435D0 endp




sub_4435D8 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_4435D8 endp




sub_4435E0 proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_4435E0 endp




sub_4435E8 proc	near
lea	ecx, [ebp+8]
jmp	loc_405586
sub_4435E8 endp




sub_4435F0 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_4435F0 endp




sub_4435F8 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_4435F8 endp




sub_443600 proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_443600 endp


loc_443608:
mov	eax, offset stru_44EB48
jmp	__CxxFrameHandler
align 4



sub_443614 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_443614 endp




sub_44361C proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_44361C endp


loc_443624:
mov	eax, offset stru_44EBD0
jmp	__CxxFrameHandler
align 10h



sub_443630 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_443630 endp




sub_443638 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_443638 endp




sub_443640 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_443640 endp




sub_443648 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_443648 endp




sub_443650 proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_406E76
sub_443650 endp




sub_443658 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_443658 endp




sub_443660 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_443660 endp




sub_443668 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_443668 endp




sub_443670 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_443670 endp




sub_443678 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_443678 endp




sub_443680 proc	near
lea	ecx, [ebp-40h]
jmp	sub_407709
sub_443680 endp




sub_443688 proc	near
lea	ecx, [ebp-40h]
jmp	sub_4078D8
sub_443688 endp




sub_443690 proc	near
lea	ecx, [ebp-94h]
jmp	loc_407A4A
sub_443690 endp




sub_44369B proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_44369B endp




sub_4436A3 proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_406E76
sub_4436A3 endp




sub_4436AB proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_4436AB endp




sub_4436B3 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4436B3 endp


loc_4436BB:
mov	eax, offset stru_44EC00
jmp	__CxxFrameHandler
align 4



sub_4436C8 proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_4436C8 endp




sub_4436D0 proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_4436D0 endp




sub_4436D8 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_4436D8 endp




sub_4436E0 proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_4436E0 endp




sub_4436E8 proc	near
lea	ecx, [ebp-68h]
jmp	sub_406E76
sub_4436E8 endp




sub_4436F0 proc	near
lea	ecx, [ebp-5Ch]
jmp	sub_406E76
sub_4436F0 endp




sub_4436F8 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_4436F8 endp


loc_443700:
mov	eax, offset stru_44ECE0
jmp	__CxxFrameHandler
align 4



sub_44370C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_44370C endp


loc_443714:
mov	eax, offset stru_44ED50
jmp	__CxxFrameHandler
align 10h



sub_443720 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_443720 endp




sub_443728 proc	near
mov	eax, offset stru_44ED78
jmp	__CxxFrameHandler
sub_443728 endp

align 4



sub_443734 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_443734 endp




sub_44373C proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_44373C endp




sub_443744 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_443744 endp




sub_44374C proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_44374C endp




sub_443754 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_443754 endp


loc_44375C:
mov	eax, offset stru_44EDA0
jmp	__CxxFrameHandler
align 4



sub_443768 proc	near
lea	ecx, [ebp-10h]
jmp	loc_401701
sub_443768 endp


loc_443770:
mov	eax, offset stru_44EDE8
jmp	__CxxFrameHandler
align 4



sub_44377C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_44377C endp


loc_443784:
mov	eax, offset stru_44EE10
jmp	__CxxFrameHandler
align 10h



sub_443790 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_443790 endp


loc_443798:
mov	eax, offset stru_44EE38
jmp	__CxxFrameHandler
align 4



sub_4437A4 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4437A4 endp


loc_4437AC:
mov	eax, offset stru_44EE60
jmp	__CxxFrameHandler
align 4



sub_4437B8 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4437B8 endp


loc_4437C0:
mov	eax, offset stru_44EE88
jmp	__CxxFrameHandler
align 4



sub_4437CC proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4437CC endp




sub_4437D4 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_4437D4 endp




sub_4437DC proc	near
lea	ecx, [ebp-34h]
jmp	sub_407709
sub_4437DC endp




sub_4437E4 proc	near
lea	ecx, [ebp-34h]
jmp	sub_4078D8
sub_4437E4 endp




sub_4437EC proc	near
lea	ecx, [ebp-0A4h]
jmp	loc_407A4A
sub_4437EC endp




sub_4437F7 proc	near

; FUNCTION CHUNK AT 0040ADD4 SIZE 00000038 BYTES

lea	ecx, [ebp-60h]
jmp	loc_40ADD4
sub_4437F7 endp




sub_4437FF proc	near
lea	ecx, [ebp-60h]
jmp	sub_40B37F
sub_4437FF endp




sub_443807 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_443807 endp




sub_44380F proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_44380F endp




sub_443817 proc	near
lea	ecx, [ebp-6Ch]
jmp	sub_406E76
sub_443817 endp


loc_44381F:
mov	eax, offset stru_44EEB0
jmp	__CxxFrameHandler
align 4



sub_44382C proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_44382C endp


loc_443834:
mov	eax, offset stru_44EF28
jmp	__CxxFrameHandler
align 10h



sub_443840 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_40B6AF
sub_443840 endp




sub_443848 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_443848 endp




sub_443850 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_4302FB
sub_443850 endp




sub_443858 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_4302FB
sub_443858 endp


loc_443860:
mov	eax, offset stru_44EF50
jmp	__CxxFrameHandler
align 4



sub_44386C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_44386C endp


loc_443874:
mov	eax, offset stru_44EF90
jmp	__CxxFrameHandler
align 10h



sub_443880 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_443880 endp


loc_443888:
mov	eax, offset stru_44EFB8
jmp	__CxxFrameHandler
align 4



sub_443894 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_443894 endp


loc_44389C:
mov	eax, offset stru_44EFE0
jmp	__CxxFrameHandler
align 4



sub_4438A8 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_4438A8 endp




sub_4438B2 proc	near
mov	ecx, [ebp-10h]
jmp	loc_40ADD4
sub_4438B2 endp


loc_4438BA:
mov	eax, offset stru_44F008
jmp	__CxxFrameHandler



sub_4438C4 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_4438C4 endp


loc_4438CC:
mov	eax, offset stru_44F038
jmp	__CxxFrameHandler
align 4



sub_4438D8 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_4438D8 endp


unknown_libname_15:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_44F060
jmp	__CxxFrameHandler



sub_4438EC proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4438EC endp




sub_4438F4 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_4438F4 endp




sub_4438FC proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_4438FC endp




sub_443904 proc	near
lea	ecx, [ebp-58h]
jmp	sub_406E76
sub_443904 endp




sub_44390C proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_406E76
sub_44390C endp


loc_443914:
mov	eax, offset stru_44F088
jmp	__CxxFrameHandler
align 10h



sub_443920 proc	near
lea	ecx, [ebp-84h]
jmp	sub_406E76
sub_443920 endp




sub_44392B proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_44392B endp




sub_443933 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_443933 endp




sub_44393B proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_406E76
sub_44393B endp




sub_443943 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_443943 endp




sub_44394B proc	near
lea	ecx, [ebp-58h]
jmp	sub_406E76
sub_44394B endp


loc_443953:
mov	eax, offset stru_44F0D0
jmp	__CxxFrameHandler
align 10h



sub_443960 proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_443960 endp


loc_443968:
mov	eax, offset stru_44F120
jmp	__CxxFrameHandler
align 4



sub_443974 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_443974 endp




sub_44397C proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_44397C endp




sub_443984 proc	near
lea	ecx, [ebp-74h]
jmp	sub_406E76
sub_443984 endp




sub_44398C proc	near
lea	ecx, [ebp-68h]
jmp	sub_406E76
sub_44398C endp




sub_443994 proc	near
lea	ecx, [ebp-5Ch]
jmp	sub_406E76
sub_443994 endp




sub_44399C proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_44399C endp




sub_4439A4 proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_4439A4 endp




sub_4439AC proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_4439AC endp


__ehhandler$?_Iput@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AAVios_base@2@DPADI@Z_0:
mov	eax, offset stru_44F148
jmp	__CxxFrameHandler
align 10h



sub_4439C0 proc	near
lea	ecx, [ebp-10h]
jmp	loc_401701
sub_4439C0 endp


loc_4439C8:
mov	eax, offset stru_44F1A8
jmp	__CxxFrameHandler
align 4



sub_4439D4 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_4439D4 endp




sub_4439DC proc	near
lea	ecx, [ebp-58h]
jmp	sub_406E76
sub_4439DC endp


loc_4439E4:
mov	eax, offset stru_44F1D0
jmp	__CxxFrameHandler
align 10h



sub_4439F0 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_40D6C5
sub_4439F0 endp




sub_4439F8 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_4028F2
sub_4439F8 endp




sub_443A00 proc	near
lea	ecx, [ebp-14h]
jmp	sub_4028F2
sub_443A00 endp


loc_443A08:
mov	eax, offset stru_44F200
jmp	__CxxFrameHandler
align 4



sub_443A14 proc	near
lea	ecx, [ebp+8]
jmp	loc_401701
sub_443A14 endp


loc_443A1C:
mov	eax, offset stru_44F238
jmp	__CxxFrameHandler
align 4



sub_443A28 proc	near
lea	ecx, [ebp+8]
jmp	loc_401701
sub_443A28 endp


loc_443A30:
mov	eax, offset stru_44F260
jmp	__CxxFrameHandler
align 4



sub_443A3C proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_401E60
sub_443A3C endp


loc_443A44:
mov	eax, offset stru_44F288
jmp	__CxxFrameHandler
align 10h



sub_443A50 proc	near
lea	ecx, [ebp-50h]
jmp	loc_407A4A
sub_443A50 endp




sub_443A58 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_443A58 endp




sub_443A60 proc	near
push	dword ptr [ebp+8] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_443A60 endp




sub_443A6A proc	near
lea	ecx, [ebp+8]
jmp	sub_4370A0
sub_443A6A endp


loc_443A72:
mov	eax, offset stru_44F2B0
jmp	__CxxFrameHandler



sub_443A7C proc	near
lea	ecx, [ebp-24h]
jmp	sub_40D710
sub_443A7C endp


loc_443A84:
mov	eax, offset stru_44F2F0
jmp	__CxxFrameHandler
align 10h



sub_443A90 proc	near
lea	ecx, [ebp-10h]
jmp	sub_4059B3
sub_443A90 endp




sub_443A98 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_443A98 endp




sub_443AA0 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_443AA0 endp




sub_443AA8 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_443AA8 endp


loc_443AB0:
mov	eax, offset stru_44F318
jmp	__CxxFrameHandler
align 4



sub_443ABC proc	near
lea	ecx, [ebp-144h]
jmp	sub_40D5E7
sub_443ABC endp




sub_443AC7 proc	near
lea	ecx, [ebp-0B4h]
jmp	sub_40D6C5
sub_443AC7 endp




sub_443AD2 proc	near
lea	ecx, [ebp-24h]
jmp	sub_40D6C5
sub_443AD2 endp




sub_443ADA proc	near
lea	ecx, [ebp-0D8h]
jmp	sub_40D50A
sub_443ADA endp




sub_443AE5 proc	near
lea	ecx, [ebp-48h]
jmp	sub_40D6C5
sub_443AE5 endp




sub_443AED proc	near
lea	ecx, [ebp-104h]
jmp	sub_40D710
sub_443AED endp




sub_443AF8 proc	near
lea	ecx, [ebp-38h]
jmp	sub_40D7BD
sub_443AF8 endp




sub_443B00 proc	near
lea	ecx, [ebp-5Ch]
jmp	sub_4408D4
sub_443B00 endp




sub_443B08 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_443B08 endp




sub_443B10 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_443B10 endp




sub_443B18 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_443B18 endp




sub_443B20 proc	near
lea	ecx, [ebp-38h]
jmp	sub_4302FB
sub_443B20 endp




sub_443B28 proc	near
lea	ecx, [ebp-0D8h]
jmp	sub_40D6C5
sub_443B28 endp


loc_443B33:
mov	eax, offset stru_44F358
jmp	__CxxFrameHandler
align 10h



sub_443B40 proc	near
mov	ecx, [ebp-10h]
jmp	sub_40D6C5
sub_443B40 endp




sub_443B48 proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_443B48 endp


loc_443B50:
mov	eax, offset stru_44F3E0
jmp	__CxxFrameHandler
align 4



sub_443B5C proc	near
mov	ecx, [ebp-10h]
jmp	sub_40D6C5
sub_443B5C endp


loc_443B64:
mov	eax, offset stru_44F410
jmp	__CxxFrameHandler
align 10h



sub_443B70 proc	near
mov	ecx, [ebp-10h]
jmp	sub_40D6C5
sub_443B70 endp


loc_443B78:
mov	eax, offset stru_44F438
jmp	__CxxFrameHandler
align 4



sub_443B84 proc	near
mov	ecx, [ebp-10h]
jmp	sub_40D724
sub_443B84 endp




sub_443B8C proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_443B8C endp




sub_443B94 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_443B94 endp


loc_443B9C:
mov	eax, offset stru_44F460
jmp	__CxxFrameHandler
align 4



sub_443BA8 proc	near
mov	ecx, [ebp-10h]
jmp	sub_40D6C5
sub_443BA8 endp


loc_443BB0:
mov	eax, offset stru_44F498
jmp	__CxxFrameHandler
align 4



sub_443BBC proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_443BBC endp


loc_443BC4:
mov	eax, offset stru_44F4C0
jmp	__CxxFrameHandler
align 10h



sub_443BD0 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_443BD0 endp


loc_443BD8:
mov	eax, offset stru_44F4E8
jmp	__CxxFrameHandler
align 4



sub_443BE4 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_443BE4 endp


unknown_libname_16:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_44F510
jmp	__CxxFrameHandler



sub_443BF8 proc	near
mov	ecx, [ebp-10h]
jmp	loc_4059B8
sub_443BF8 endp




sub_443C00 proc	near
mov	ecx, [ebp-10h]
add	ecx, 8
jmp	sub_405A0E
sub_443C00 endp




sub_443C0B proc	near
mov	ecx, [ebp-10h]
add	ecx, 54h
jmp	sub_40327C
sub_443C0B endp




sub_443C16 proc	near
mov	ecx, [ebp-10h]
add	ecx, 90h
jmp	sub_4302FB
sub_443C16 endp




sub_443C24 proc	near
mov	ecx, [ebp-10h]
add	ecx, 0A4h
jmp	sub_40299B
sub_443C24 endp




sub_443C32 proc	near
mov	ecx, [ebp-10h]
add	ecx, 0D8h
jmp	sub_406E76
sub_443C32 endp




sub_443C40 proc	near
mov	ecx, [ebp-10h]
add	ecx, 0E4h
jmp	sub_406C6D
sub_443C40 endp




sub_443C4E proc	near
mov	ecx, [ebp-10h]
add	ecx, 0F8h
jmp	sub_4059B3
sub_443C4E endp




sub_443C5C proc	near
mov	ecx, [ebp-10h]
add	ecx, 0FCh
jmp	sub_4370A0
sub_443C5C endp




sub_443C6A proc	near
mov	ecx, [ebp-10h]
add	ecx, 100h
jmp	sub_40327C
sub_443C6A endp




sub_443C78 proc	near
mov	ecx, [ebp-10h]
add	ecx, 118h
jmp	sub_406E76
sub_443C78 endp




sub_443C86 proc	near
mov	ecx, [ebp-10h]
add	ecx, 124h
jmp	loc_405A74
sub_443C86 endp




sub_443C94 proc	near
mov	ecx, [ebp-10h]
add	ecx, 140h
jmp	sub_405AAC
sub_443C94 endp




sub_443CA2 proc	near
mov	ecx, [ebp-10h]
add	ecx, 154h
jmp	sub_405AAC
sub_443CA2 endp




sub_443CB0 proc	near
mov	ecx, [ebp-10h]
add	ecx, 170h
jmp	sub_4370A0
sub_443CB0 endp




sub_443CBE proc	near
mov	ecx, [ebp-10h]
add	ecx, 174h
jmp	sub_4370A0
sub_443CBE endp




sub_443CCC proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_443CCC endp




sub_443CD4 proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_443CD4 endp




sub_443CDC proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_443CDC endp




sub_443CE4 proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_443CE4 endp




sub_443CEC proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_443CEC endp




sub_443CF4 proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_443CF4 endp


loc_443CFC:
mov	eax, offset stru_44F538
jmp	__CxxFrameHandler
align 4



sub_443D08 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_443D08 endp


loc_443D10:
mov	eax, offset stru_44F608
jmp	__CxxFrameHandler
align 4
; [00000008 BYTES: COLLAPSED FUNCTION unknown_libname_17. PRESS	KEYPAD CTRL-"+"	TO EXPAND]



sub_443D24 proc	near
mov	eax, [ebp-10h]
and	eax, 1
test	eax, eax
jz	locret_443D3A
mov	ecx, [ebp+8]
jmp	sub_406E76

locret_443D3A:
retn
sub_443D24 endp


loc_443D3B:
mov	eax, offset stru_44F630
jmp	__CxxFrameHandler
align 4



sub_443D48 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_443D48 endp


loc_443D50:
mov	eax, offset stru_44F660
jmp	__CxxFrameHandler
align 4



sub_443D5C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_443D5C endp




sub_443D64 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_443D64 endp


loc_443D6C:
mov	eax, offset stru_44F688
jmp	__CxxFrameHandler
align 4



sub_443D78 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_443D78 endp


loc_443D80:
mov	eax, offset stru_44F6B8
jmp	__CxxFrameHandler
align 4



sub_443D8C proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_443D8C endp


loc_443D94:
mov	eax, offset stru_44F6E0
jmp	__CxxFrameHandler
align 10h



sub_443DA0 proc	near
lea	ecx, [ebp-5Ch]
jmp	sub_4302FB
sub_443DA0 endp




sub_443DA8 proc	near
lea	ecx, [ebp-70h]
jmp	sub_40327C
sub_443DA8 endp




sub_443DB0 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_443DB0 endp




sub_443DB8 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_443DB8 endp




sub_443DC0 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_443DC0 endp




sub_443DC8 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_443DC8 endp




sub_443DD0 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_443DD0 endp




sub_443DD8 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_443DD8 endp




sub_443DE0 proc	near
lea	ecx, [ebp-70h]
jmp	sub_4302FB
sub_443DE0 endp


loc_443DE8:
mov	eax, offset stru_44F708
jmp	__CxxFrameHandler
align 4



sub_443DF4 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_443DF4 endp


loc_443DFC:
mov	eax, offset stru_44F770
jmp	__CxxFrameHandler
align 4



sub_443E08 proc	near
lea	ecx, [ebp-68h]
jmp	sub_4302FB
sub_443E08 endp




sub_443E10 proc	near
lea	ecx, [ebp-54h]
jmp	sub_40327C
sub_443E10 endp




sub_443E18 proc	near
lea	ecx, [ebp-54h]
jmp	sub_4302FB
sub_443E18 endp




sub_443E20 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_443E20 endp




sub_443E28 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_443E28 endp




sub_443E30 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_443E30 endp




sub_443E38 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_443E38 endp




sub_443E40 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_443E40 endp




sub_443E48 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_443E48 endp




sub_443E50 proc	near
lea	ecx, [ebp-54h]
jmp	sub_4302FB
sub_443E50 endp


loc_443E58:
mov	eax, offset stru_44F798
jmp	__CxxFrameHandler
align 4



sub_443E64 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_443E64 endp




sub_443E6C proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_443E6C endp


loc_443E74:
mov	eax, offset stru_44F808
jmp	__CxxFrameHandler
align 10h



sub_443E80 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_443E80 endp




sub_443E88 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_443E88 endp


loc_443E90:
mov	eax, offset stru_44F838
jmp	__CxxFrameHandler
align 4



sub_443E9C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_443E9C endp


loc_443EA4:
mov	eax, offset stru_44F868
jmp	__CxxFrameHandler
align 10h



sub_443EB0 proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_443EB0 endp




sub_443EB8 proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_443EB8 endp




sub_443EC0 proc	near
lea	ecx, [ebp-298h]
jmp	sub_40F38E
sub_443EC0 endp




sub_443ECB proc	near
push	dword ptr [ebp-54h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_443ECB endp




sub_443ED5 proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_443ED5 endp




sub_443EDD proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_443EDD endp




sub_443EE5 proc	near
lea	ecx, [ebp-60h]
jmp	sub_406E76
sub_443EE5 endp




sub_443EED proc	near
lea	ecx, [ebp-38h]
jmp	sub_40327C
sub_443EED endp




sub_443EF5 proc	near
lea	ecx, [ebp-38h]
jmp	sub_4302FB
sub_443EF5 endp




sub_443EFD proc	near
lea	ecx, [ebp-38h]
jmp	sub_4302FB
sub_443EFD endp


loc_443F05:
mov	eax, offset stru_44F890
jmp	__CxxFrameHandler
align 10h



sub_443F10 proc	near
mov	ecx, [ebp-10h]
add	ecx, 18h
jmp	sub_406E76
sub_443F10 endp




sub_443F1B proc	near
mov	ecx, [ebp-10h]
add	ecx, 28h
jmp	sub_406E76
sub_443F1B endp


loc_443F26:
mov	eax, offset stru_44F900
jmp	__CxxFrameHandler



sub_443F30 proc	near
mov	ecx, [ebp-10h]
add	ecx, 8
jmp	sub_406E76
sub_443F30 endp




sub_443F3B proc	near
mov	ecx, [ebp-10h]
add	ecx, 14h
jmp	sub_406E76
sub_443F3B endp




sub_443F46 proc	near
mov	ecx, [ebp-10h]
add	ecx, 20h
jmp	sub_406E76
sub_443F46 endp




sub_443F51 proc	near
mov	ecx, [ebp-10h]
add	ecx, 2Ch
jmp	sub_406E76
sub_443F51 endp




sub_443F5C proc	near
mov	ecx, [ebp-10h]
add	ecx, 38h
jmp	sub_406E76
sub_443F5C endp


loc_443F67:
mov	eax, offset stru_44F930
jmp	__CxxFrameHandler
align 4



sub_443F74 proc	near
mov	ecx, [ebp-10h]
jmp	sub_40F3F1
sub_443F74 endp




sub_443F7C proc	near
mov	ecx, [ebp-10h]
add	ecx, 218h
jmp	sub_4302FB
sub_443F7C endp




sub_443F8A proc	near
mov	ecx, [ebp-10h]
add	ecx, 230h
jmp	sub_4370A0
sub_443F8A endp


loc_443F98:
mov	eax, offset stru_44F978
jmp	__CxxFrameHandler
align 4



sub_443FA4 proc	near
mov	ecx, [ebp-10h]
add	ecx, 8
jmp	sub_406E76
sub_443FA4 endp




sub_443FAF proc	near
mov	ecx, [ebp-10h]
add	ecx, 14h
jmp	sub_406E76
sub_443FAF endp




sub_443FBA proc	near
mov	ecx, [ebp-10h]
add	ecx, 20h
jmp	sub_406E76
sub_443FBA endp




sub_443FC5 proc	near
mov	ecx, [ebp-10h]
add	ecx, 2Ch
jmp	sub_406E76
sub_443FC5 endp




sub_443FD0 proc	near
mov	ecx, [ebp-10h]
add	ecx, 38h
jmp	sub_406E76
sub_443FD0 endp


loc_443FDB:
mov	eax, offset stru_44F9B0
jmp	__CxxFrameHandler
align 4



sub_443FE8 proc	near
lea	ecx, [ebp-14h]
jmp	sub_4370A0
sub_443FE8 endp




sub_443FF0 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_443FF0 endp




sub_443FF8 proc	near
lea	ecx, [ebp-294h]
jmp	sub_40F833
sub_443FF8 endp




sub_444003 proc	near
push	dword ptr [ebp+14h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_444003 endp




sub_44400D proc	near
mov	eax, [ebp-10h]
and	eax, 1
test	eax, eax
jz	locret_444023
lea	ecx, [ebp-44h]
jmp	sub_406E76

locret_444023:
retn
sub_44400D endp




sub_444024 proc	near
mov	eax, [ebp-10h]
and	eax, 2
test	eax, eax
jz	locret_44403A
lea	ecx, [ebp-20h]
jmp	sub_406E76

locret_44403A:
retn
sub_444024 endp




sub_44403B proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_44403B endp




sub_444043 proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_444043 endp




sub_44404B proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_44404B endp


loc_444053:
mov	eax, offset stru_44F9F8
jmp	__CxxFrameHandler
align 10h



sub_444060 proc	near
mov	ecx, [ebp-10h]
jmp	sub_40F3F1
sub_444060 endp




sub_444068 proc	near
mov	ecx, [ebp-10h]
add	ecx, 218h
jmp	sub_4370A0
sub_444068 endp




sub_444076 proc	near
mov	ecx, [ebp-10h]
add	ecx, 21Ch
jmp	sub_4302FB
sub_444076 endp


loc_444084:
mov	eax, offset stru_44FA70
jmp	__CxxFrameHandler
align 10h



sub_444090 proc	near
mov	ecx, [ebp-10h]
jmp	sub_40F3F1
sub_444090 endp




sub_444098 proc	near
mov	ecx, [ebp-10h]
add	ecx, 218h
jmp	sub_4370A0
sub_444098 endp




sub_4440A6 proc	near
mov	ecx, [ebp-10h]
add	ecx, 21Ch
jmp	sub_4302FB
sub_4440A6 endp




sub_4440B4 proc	near
mov	ecx, [ebp-10h]
add	ecx, 230h
jmp	sub_406E76
sub_4440B4 endp


loc_4440C2:
mov	eax, offset stru_44FAA8
jmp	__CxxFrameHandler



sub_4440CC proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_4440CC endp




sub_4440D4 proc	near
lea	ecx, [ebp-25Ch]
jmp	sub_40FE06
sub_4440D4 endp




sub_4440DF proc	near
push	dword ptr [ebp-40h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_4440DF endp




sub_4440E9 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_4440E9 endp




sub_4440F1 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_4440F1 endp




sub_4440F9 proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_406E76
sub_4440F9 endp




sub_444101 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_444101 endp




sub_444109 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_444109 endp




sub_444111 proc	near
lea	ecx, [ebp-14h]
jmp	sub_404D3D
sub_444111 endp




sub_444119 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_444119 endp


loc_444121:
mov	eax, offset stru_44FAE8
jmp	__CxxFrameHandler
align 4



sub_44412C proc	near
lea	ecx, [ebp-14h]
jmp	loc_405175
sub_44412C endp


loc_444134:
mov	eax, offset stru_44FB58
jmp	__CxxFrameHandler
align 10h



sub_444140 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4370A0
sub_444140 endp




sub_444148 proc	near
mov	ecx, [ebp-10h]
add	ecx, 4
jmp	sub_406E76
sub_444148 endp




sub_444153 proc	near
mov	ecx, [ebp-10h]
add	ecx, 10h
jmp	sub_40327C
sub_444153 endp




sub_44415E proc	near
mov	ecx, [ebp-10h]
add	ecx, 24h
jmp	sub_4302FB
sub_44415E endp


loc_444169:
mov	eax, offset stru_44FBB8
jmp	__CxxFrameHandler
align 4



sub_444174 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4370A0
sub_444174 endp




sub_44417C proc	near
mov	ecx, [ebp-10h]
add	ecx, 4
jmp	sub_406E76
sub_44417C endp




sub_444187 proc	near
mov	ecx, [ebp-10h]
add	ecx, 10h
jmp	sub_40327C
sub_444187 endp




sub_444192 proc	near
mov	ecx, [ebp-10h]
add	ecx, 24h
jmp	sub_4302FB
sub_444192 endp




sub_44419D proc	near
mov	ecx, [ebp-10h]
add	ecx, 38h
jmp	sub_423175
sub_44419D endp




sub_4441A8 proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_4441A8 endp


loc_4441B0:
mov	eax, offset stru_44FBF8
jmp	__CxxFrameHandler
align 4



sub_4441BC proc	near
lea	ecx, [ebp-14h]
jmp	sub_4028F2
sub_4441BC endp




sub_4441C4 proc	near
lea	ecx, [ebp-48h]
jmp	sub_40299B
sub_4441C4 endp




sub_4441CC proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_4441CC endp


loc_4441D4:
mov	eax, offset stru_44FC48
jmp	__CxxFrameHandler
align 10h



sub_4441E0 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_4441E0 endp




sub_4441E8 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4441E8 endp


loc_4441F0:
mov	eax, offset stru_44FC80
jmp	__CxxFrameHandler
align 4



sub_4441FC proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4441FC endp




sub_444204 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_444204 endp




sub_44420C proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_44420C endp




sub_444214 proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_406E76
sub_444214 endp




sub_44421C proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_44421C endp




sub_444224 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_444224 endp




sub_44422C proc	near
lea	ecx, [ebp-5Ch]
jmp	sub_407709
sub_44422C endp




sub_444234 proc	near
lea	ecx, [ebp-5Ch]
jmp	sub_4078D8
sub_444234 endp


loc_44423C:
mov	eax, offset stru_44FCB0
jmp	__CxxFrameHandler
align 4



sub_444248 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_444248 endp




sub_444250 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_444250 endp




sub_444258 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_444258 endp




sub_444260 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_444260 endp




sub_444268 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_444268 endp




sub_444270 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_444270 endp




sub_444278 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_444278 endp




sub_444280 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_444280 endp


loc_444288:
mov	eax, offset stru_44FD10
jmp	__CxxFrameHandler
align 4



sub_444294 proc	near

; FUNCTION CHUNK AT 0042716F SIZE 00000007 BYTES

lea	ecx, [ebp-20h]
jmp	loc_42716F
sub_444294 endp




sub_44429C proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_44429C endp




sub_4442A4 proc	near
lea	ecx, [ebp-98h]
jmp	loc_407A4A
sub_4442A4 endp




sub_4442AF proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4442AF endp




sub_4442B7 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_4442B7 endp




sub_4442BF proc	near
lea	ecx, [ebp-98h]
jmp	loc_407A4A
sub_4442BF endp




sub_4442CA proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4442CA endp




sub_4442D2 proc	near
lea	ecx, [ebp-60h]
jmp	sub_407E2B
sub_4442D2 endp




sub_4442DA proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_4442DA endp




sub_4442E2 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_4442E2 endp




sub_4442EA proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_4442EA endp


loc_4442F2:
mov	eax, offset stru_44FD70
jmp	__CxxFrameHandler



sub_4442FC proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_4302FB
sub_4442FC endp




sub_444304 proc	near
lea	ecx, [ebp-2F4h]
jmp	sub_40F3F1
sub_444304 endp




sub_44430F proc	near

; FUNCTION CHUNK AT 00410E7C SIZE 00000038 BYTES

lea	ecx, [ebp-2F4h]
jmp	loc_410E7C
sub_44430F endp




sub_44431A proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_44431A endp




sub_444322 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_444322 endp




sub_44432A proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_44432A endp




sub_444332 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_444332 endp




sub_44433A proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_44433A endp




sub_444342 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_444342 endp




sub_44434A proc	near
lea	ecx, [ebp-2F4h]
jmp	sub_40F3F1
sub_44434A endp




sub_444355 proc	near
lea	ecx, [ebp-2F4h]
jmp	sub_40F3F1
sub_444355 endp


loc_444360:
mov	eax, offset stru_44FDE8
jmp	__CxxFrameHandler
align 4



sub_44436C proc	near
mov	ecx, [ebp-10h]
jmp	sub_40F3F1
sub_44436C endp


loc_444374:
mov	eax, offset stru_44FE60
jmp	__CxxFrameHandler
align 10h



sub_444380 proc	near
mov	ecx, [ebp-10h]
add	ecx, 4
jmp	sub_406E76
sub_444380 endp




sub_44438B proc	near
mov	ecx, [ebp-10h]
add	ecx, 10h
jmp	sub_40327C
sub_44438B endp




sub_444396 proc	near
mov	ecx, [ebp-10h]
add	ecx, 24h
jmp	sub_410F47
sub_444396 endp




sub_4443A1 proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_4443A1 endp




sub_4443A9 proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_4443A9 endp




sub_4443B1 proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_4443B1 endp


loc_4443B9:
mov	eax, offset stru_44FE88
jmp	__CxxFrameHandler
align 4



sub_4443C4 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_4443C4 endp


loc_4443CC:
mov	eax, offset stru_44FED8
jmp	__CxxFrameHandler
align 4



sub_4443D8 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_4443D8 endp




sub_4443E2 proc	near
mov	ecx, [ebp-10h]
jmp	sub_407709
sub_4443E2 endp


loc_4443EA:
mov	eax, offset stru_44FF00
jmp	__CxxFrameHandler
; [0000000B BYTES: COLLAPSED FUNCTION unknown_libname_18. PRESS	KEYPAD CTRL-"+"	TO EXPAND]

loc_4443FF:
mov	eax, offset stru_44FF30
jmp	__CxxFrameHandler
align 4



sub_44440C proc	near
lea	ecx, [ebp-20h]
jmp	sub_4028F2
sub_44440C endp




sub_444414 proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_4302FB
sub_444414 endp




sub_44441C proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_44441C endp




sub_444424 proc	near
lea	ecx, [ebp-60h]
jmp	sub_4027CD
sub_444424 endp




sub_44442C proc	near
push	dword ptr [ebp-18h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_44442C endp




sub_444436 proc	near
lea	ecx, [ebp-8Ch]
jmp	sub_4370A0
sub_444436 endp




sub_444441 proc	near
lea	ecx, [ebp-74h]
jmp	sub_40327C
sub_444441 endp




sub_444449 proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_444449 endp




sub_444451 proc	near
lea	ecx, [ebp-98h]
jmp	sub_406E76
sub_444451 endp




sub_44445C proc	near
lea	ecx, [ebp-0A4h]
jmp	sub_406E76
sub_44445C endp




sub_444467 proc	near
lea	ecx, [ebp-80h]
jmp	sub_406E76
sub_444467 endp




sub_44446F proc	near
lea	ecx, [ebp-74h]
jmp	sub_4302FB
sub_44446F endp




sub_444477 proc	near
lea	ecx, [ebp-5Ch]
jmp	sub_406E76
sub_444477 endp




sub_44447F proc	near
lea	ecx, [ebp-74h]
jmp	sub_4302FB
sub_44447F endp




sub_444487 proc	near
push	dword ptr [ebp-14h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_444487 endp




sub_444491 proc	near
lea	ecx, [ebp-88h]
jmp	sub_4370A0
sub_444491 endp




sub_44449C proc	near
lea	ecx, [ebp-84h]
jmp	sub_40D6C5
sub_44449C endp




sub_4444A7 proc	near
lea	ecx, [ebp-5Ch]
jmp	sub_406E76
sub_4444A7 endp


loc_4444AF:
mov	eax, offset stru_44FF58
jmp	__CxxFrameHandler
align 4



sub_4444BC proc	near
mov	ecx, [ebp-10h]
add	ecx, 14h
jmp	sub_4302FB
sub_4444BC endp


loc_4444C7:
mov	eax, offset stru_450008
jmp	__CxxFrameHandler
align 4



sub_4444D4 proc	near
mov	ecx, [ebp-10h]
add	ecx, 14h
jmp	sub_4302FB
sub_4444D4 endp




sub_4444DF proc	near
mov	ecx, [ebp-10h]
add	ecx, 28h
jmp	sub_406E76
sub_4444DF endp




sub_4444EA proc	near
mov	ecx, [ebp-10h]
add	ecx, 38h
jmp	sub_4370A0
sub_4444EA endp




sub_4444F5 proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_4444F5 endp


loc_4444FD:
mov	eax, offset stru_450030
jmp	__CxxFrameHandler
align 4



sub_444508 proc	near
lea	ecx, [ebp-38h]
jmp	sub_412870
sub_444508 endp




sub_444510 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_444510 endp




sub_444518 proc	near
lea	ecx, [ebp-38h]
jmp	sub_4302FB
sub_444518 endp




sub_444520 proc	near

; FUNCTION CHUNK AT 00411B87 SIZE 0000000F BYTES

lea	ecx, [ebp-2Ch]
jmp	loc_411B87
sub_444520 endp




sub_444528 proc	near
lea	ecx, [ebp-38h]
jmp	sub_4302FB
sub_444528 endp




sub_444530 proc	near
lea	ecx, [ebp-38h]
jmp	sub_4302FB
sub_444530 endp


loc_444538:
mov	eax, offset stru_450070
jmp	__CxxFrameHandler
align 4



sub_444544 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_444544 endp


loc_44454C:
mov	eax, offset stru_4500C0
jmp	__CxxFrameHandler
align 4



sub_444558 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_444558 endp




sub_444560 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_444560 endp




sub_444568 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_444568 endp




sub_444570 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_444570 endp


loc_444578:
mov	eax, offset stru_4500E8
jmp	__CxxFrameHandler
align 4



sub_444584 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_444584 endp


loc_44458C:
mov	eax, offset stru_450128
jmp	__CxxFrameHandler
align 4



sub_444598 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_444598 endp




sub_4445A0 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_4445A0 endp


loc_4445A8:
mov	eax, offset stru_450150
jmp	__CxxFrameHandler
align 4



sub_4445B4 proc	near
lea	ecx, [ebp-10h]
jmp	sub_4110C1
sub_4445B4 endp




sub_4445BC proc	near
lea	ecx, [ebp-1Ch]
jmp	loc_411B87
sub_4445BC endp


loc_4445C4:
mov	eax, offset stru_450180
jmp	__CxxFrameHandler
align 10h



sub_4445D0 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4445D0 endp


loc_4445D8:
mov	eax, offset stru_4501B0
jmp	__CxxFrameHandler
align 4



sub_4445E4 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4445E4 endp




sub_4445EC proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4445EC endp


loc_4445F4:
mov	eax, offset stru_4501D8
jmp	__CxxFrameHandler
align 10h



sub_444600 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_444600 endp


loc_444608:
mov	eax, offset stru_450208
jmp	__CxxFrameHandler
align 4



sub_444614 proc	near
lea	ecx, [ebp-20h]
jmp	sub_40327C
sub_444614 endp




sub_44461C proc	near
lea	ecx, [ebp-20h]
jmp	sub_4302FB
sub_44461C endp


loc_444624:
mov	eax, offset stru_450230
jmp	__CxxFrameHandler
align 10h



sub_444630 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_444630 endp




sub_444638 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_444638 endp




sub_444640 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_444640 endp


loc_444648:
mov	eax, offset stru_450260
jmp	__CxxFrameHandler
align 4



sub_444654 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_444654 endp




sub_44465C proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_44465C endp


loc_444664:
mov	eax, offset stru_450298
jmp	__CxxFrameHandler
align 10h



sub_444670 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_444670 endp




sub_444678 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_444678 endp


loc_444680:
mov	eax, offset stru_4502C8
jmp	__CxxFrameHandler
align 4



sub_44468C proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_44468C endp


loc_444694:
mov	eax, offset stru_4502F8
jmp	__CxxFrameHandler
align 10h



sub_4446A0 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_4446A0 endp


unknown_libname_19:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_450320
jmp	__CxxFrameHandler



sub_4446B4 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_4446B4 endp


unknown_libname_20:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_450348
jmp	__CxxFrameHandler



sub_4446C8 proc	near
lea	ecx, [ebp-40h]
jmp	sub_4028F2
sub_4446C8 endp




sub_4446D0 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_4446D0 endp




sub_4446D8 proc	near
lea	ecx, [ebp+14h]
jmp	sub_4370A0
sub_4446D8 endp




sub_4446E0 proc	near
lea	ecx, [ebp-68h]
jmp	sub_40327C
sub_4446E0 endp




sub_4446E8 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_4446E8 endp




sub_4446F0 proc	near
lea	ecx, [ebp+14h]
jmp	sub_4370A0
sub_4446F0 endp




sub_4446F8 proc	near
lea	ecx, [ebp-68h]
jmp	sub_4302FB
sub_4446F8 endp




sub_444700 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_444700 endp




sub_444708 proc	near
lea	ecx, [ebp-0A0h]
jmp	loc_407A4A
sub_444708 endp




sub_444713 proc	near
lea	ecx, [ebp-54h]
jmp	sub_40327C
sub_444713 endp




sub_44471B proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_44471B endp




sub_444723 proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_444723 endp




sub_44472B proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_44472B endp




sub_444733 proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_444733 endp




sub_44473B proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_44473B endp




sub_444743 proc	near
lea	ecx, [ebp-54h]
jmp	sub_4302FB
sub_444743 endp




sub_44474B proc	near
lea	ecx, [ebp+8]
jmp	sub_4370A0
sub_44474B endp




sub_444753 proc	near
lea	ecx, [ebp-54h]
jmp	sub_4302FB
sub_444753 endp


loc_44475B:
mov	eax, offset stru_450370
jmp	__CxxFrameHandler
align 4



sub_444768 proc	near
lea	ecx, [ebp-18h]
jmp	sub_4028F2
sub_444768 endp




sub_444770 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_444770 endp




sub_444778 proc	near
lea	ecx, [ebp-38h]
jmp	sub_40327C
sub_444778 endp




sub_444780 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_444780 endp




sub_444788 proc	near
lea	ecx, [ebp-38h]
jmp	sub_4302FB
sub_444788 endp


loc_444790:
mov	eax, offset stru_450420
jmp	__CxxFrameHandler
align 4



sub_44479C proc	near
lea	ecx, [ebp-10h]
jmp	loc_401701
sub_44479C endp




sub_4447A4 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4447A4 endp


loc_4447AC:
mov	eax, offset stru_450468
jmp	__CxxFrameHandler
align 4



sub_4447B8 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4447B8 endp


loc_4447C0:
mov	eax, offset stru_450498
jmp	__CxxFrameHandler
align 4



sub_4447CC proc	near
lea	ecx, [ebp-24h]
jmp	sub_401E60
sub_4447CC endp




sub_4447D4 proc	near
mov	eax, [ebp-10h]
and	eax, 1
test	eax, eax
jz	locret_4447EA
mov	ecx, [ebp-14h]
jmp	sub_406E76

locret_4447EA:
retn
sub_4447D4 endp


loc_4447EB:
mov	eax, offset stru_4504C0
jmp	__CxxFrameHandler
align 4



sub_4447F8 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4447F8 endp




sub_444800 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_444800 endp


loc_444808:
mov	eax, offset stru_4504F0
jmp	__CxxFrameHandler
align 4



sub_444814 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_444814 endp




sub_44481C proc	near
lea	ecx, [ebp-74h]
jmp	loc_407A4A
sub_44481C endp


loc_444824:
mov	eax, offset stru_450520
jmp	__CxxFrameHandler
align 10h



sub_444830 proc	near
lea	ecx, [ebp-10h]
jmp	loc_401701
sub_444830 endp


loc_444838:
mov	eax, offset stru_450550
jmp	__CxxFrameHandler
align 4



sub_444844 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_444844 endp


loc_44484C:
mov	eax, offset stru_450578
jmp	__CxxFrameHandler
align 4



sub_444858 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_444858 endp


loc_444860:
mov	eax, offset stru_4505A0
jmp	__CxxFrameHandler
align 4



sub_44486C proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_44486C endp




sub_444874 proc	near
lea	ecx, [ebp-50h]
jmp	sub_40327C
sub_444874 endp




sub_44487C proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_44487C endp




sub_444884 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_444884 endp




sub_44488C proc	near
lea	ecx, [ebp-0CCh]
jmp	loc_407A4A
sub_44488C endp




sub_444897 proc	near
mov	eax, [ebp-10h]
and	eax, 1
test	eax, eax
jz	locret_4448AD
lea	ecx, [ebp-70h]
jmp	sub_406E76

locret_4448AD:
retn
sub_444897 endp




sub_4448AE proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_4448AE endp




sub_4448B6 proc	near
lea	ecx, [ebp-7Ch]
jmp	sub_406E76
sub_4448B6 endp




sub_4448BE proc	near
lea	ecx, [ebp-88h]
jmp	sub_406E76
sub_4448BE endp




sub_4448C9 proc	near
lea	ecx, [ebp-64h]
jmp	sub_40327C
sub_4448C9 endp




sub_4448D1 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4448D1 endp




sub_4448D9 proc	near
lea	ecx, [ebp-94h]
jmp	sub_406E76
sub_4448D9 endp




sub_4448E4 proc	near
lea	ecx, [ebp-64h]
jmp	sub_4302FB
sub_4448E4 endp




sub_4448EC proc	near
lea	ecx, [ebp-50h]
jmp	sub_4302FB
sub_4448EC endp


loc_4448F4:
mov	eax, offset stru_4505C8
jmp	__CxxFrameHandler
align 10h



sub_444900 proc	near
lea	ecx, [ebp-58h]
jmp	sub_413B9A
sub_444900 endp




sub_444908 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_444908 endp




sub_444910 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_444910 endp


loc_444918:
mov	eax, offset stru_450658
jmp	__CxxFrameHandler
align 4



sub_444924 proc	near
mov	ecx, [ebp-10h]
jmp	sub_40D6C5
sub_444924 endp


loc_44492C:
mov	eax, offset stru_450690
jmp	__CxxFrameHandler
align 4



sub_444938 proc	near
mov	ecx, [ebp-10h]
jmp	sub_40D6C5
sub_444938 endp




sub_444940 proc	near
mov	ecx, [ebp-10h]
add	ecx, 0Ch
jmp	sub_406E76
sub_444940 endp




sub_44494B proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_44494B endp


loc_444953:
mov	eax, offset stru_4506B8
jmp	__CxxFrameHandler
align 10h



sub_444960 proc	near
lea	ecx, [ebp-10h]
jmp	loc_401701
sub_444960 endp


loc_444968:
mov	eax, offset stru_4506F0
jmp	__CxxFrameHandler
align 4



sub_444974 proc	near
lea	ecx, [ebp-10h]
jmp	loc_401701
sub_444974 endp


loc_44497C:
mov	eax, offset stru_450718
jmp	__CxxFrameHandler
align 4



sub_444988 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_444988 endp




sub_444990 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_444990 endp




sub_444998 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_4028F2
sub_444998 endp




sub_4449A0 proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_4449A0 endp




sub_4449A8 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_4449A8 endp




sub_4449B0 proc	near
lea	ecx, [ebp-48h]
jmp	sub_40327C
sub_4449B0 endp




sub_4449B8 proc	near
lea	ecx, [ebp-48h]
jmp	sub_4302FB
sub_4449B8 endp


loc_4449C0:
mov	eax, offset stru_450740
jmp	__CxxFrameHandler
align 4



sub_4449CC proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_4449CC endp


unknown_libname_21:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_450798
jmp	__CxxFrameHandler



sub_4449E0 proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_4449E0 endp


loc_4449E8:
mov	eax, offset stru_4507C0
jmp	__CxxFrameHandler
align 4



sub_4449F4 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_4449F4 endp


unknown_libname_22:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_4507E8
jmp	__CxxFrameHandler



sub_444A08 proc	near
lea	ecx, [ebp-108h]
jmp	sub_406E7F
sub_444A08 endp




sub_444A13 proc	near
lea	ecx, [ebp-20h]
jmp	sub_4370A0
sub_444A13 endp




sub_444A1B proc	near
lea	ecx, [ebp+18h]
jmp	sub_4059B3
sub_444A1B endp




sub_444A23 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_444A23 endp




sub_444A2B proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_4370A0
sub_444A2B endp




sub_444A33 proc	near
lea	ecx, [ebp+10h]
jmp	sub_4370A0
sub_444A33 endp




sub_444A3B proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_444A3B endp




sub_444A43 proc	near
push	offset sub_406E76 ; void (__thiscall *)(void *)
push	3		; int
push	0Ch		; unsigned int
lea	eax, [ebp-78h]
push	eax		; void *
call	??_M@YGXPAXIHP6EX0@Z@Z ; `eh vector destructor iterator'(void *,uint,int,void (*)(void *))
retn
sub_444A43 endp




sub_444A56 proc	near
lea	ecx, [ebp-54h]
jmp	loc_405586
sub_444A56 endp




sub_444A5E proc	near
lea	ecx, [ebp-40h]
jmp	sub_401E60
sub_444A5E endp


loc_444A66:
mov	eax, offset stru_450810
jmp	__CxxFrameHandler



sub_444A70 proc	near
mov	ecx, [ebp-10h]
jmp	sub_406EDD
sub_444A70 endp




sub_444A78 proc	near
mov	ecx, [ebp-10h]
add	ecx, 68h
jmp	sub_4059B3
sub_444A78 endp




sub_444A83 proc	near
mov	ecx, [ebp-10h]
add	ecx, 6Ch
jmp	sub_4370A0
sub_444A83 endp




sub_444A8E proc	near
mov	ecx, [ebp-10h]
add	ecx, 74h
jmp	sub_406E76
sub_444A8E endp


loc_444A99:
mov	eax, offset stru_450880
jmp	__CxxFrameHandler
align 4



sub_444AA4 proc	near
mov	ecx, [ebp-10h]
jmp	sub_406E76
sub_444AA4 endp




sub_444AAC proc	near
mov	ecx, [ebp-10h]
add	ecx, 0Ch
jmp	sub_406E76
sub_444AAC endp




sub_444AB7 proc	near
mov	ecx, [ebp-10h]
add	ecx, 18h
jmp	sub_406E76
sub_444AB7 endp


loc_444AC2:
mov	eax, offset stru_4508C0
jmp	__CxxFrameHandler



sub_444ACC proc	near
lea	ecx, [ebp-80h]
jmp	sub_406EDD
sub_444ACC endp




sub_444AD4 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_444AD4 endp




sub_444ADC proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_444ADC endp


loc_444AE4:
mov	eax, offset stru_4508F8
jmp	__CxxFrameHandler
align 10h



sub_444AF0 proc	near
lea	ecx, [ebp-18h]
jmp	sub_4028F2
sub_444AF0 endp




sub_444AF8 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_444AF8 endp




sub_444B00 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_444B00 endp


loc_444B08:
mov	eax, offset stru_450930
jmp	__CxxFrameHandler
align 4



sub_444B14 proc	near
lea	ecx, [ebp-18h]
jmp	sub_4028F2
sub_444B14 endp




sub_444B1C proc	near
lea	ecx, [ebp-68h]
jmp	loc_407A4A
sub_444B1C endp




sub_444B24 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_444B24 endp


loc_444B2C:
mov	eax, offset stru_450968
jmp	__CxxFrameHandler
align 4



sub_444B38 proc	near
lea	ecx, [ebp-8Ch]
jmp	sub_4302FB
sub_444B38 endp




sub_444B43 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_444B43 endp




sub_444B4B proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_444B4B endp




sub_444B53 proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_406E76
sub_444B53 endp




sub_444B5B proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_406E76
sub_444B5B endp




sub_444B63 proc	near
lea	ecx, [ebp-58h]
jmp	sub_406E76
sub_444B63 endp




sub_444B6B proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_406E76
sub_444B6B endp




sub_444B73 proc	near
lea	ecx, [ebp-78h]
jmp	sub_4302FB
sub_444B73 endp




sub_444B7B proc	near
lea	ecx, [ebp-58h]
jmp	sub_406E76
sub_444B7B endp




sub_444B83 proc	near
lea	ecx, [ebp-58h]
jmp	sub_406E76
sub_444B83 endp




sub_444B8B proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_444B8B endp




sub_444B93 proc	near
lea	ecx, [ebp-64h]
jmp	sub_406E76
sub_444B93 endp




sub_444B9B proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_406E76
sub_444B9B endp




sub_444BA3 proc	near
lea	ecx, [ebp-58h]
jmp	sub_406E76
sub_444BA3 endp




sub_444BAB proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_444BAB endp


loc_444BB3:
mov	eax, offset stru_4509A0
jmp	__CxxFrameHandler
align 10h



sub_444BC0 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_444BC0 endp




sub_444BC8 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_444BC8 endp




sub_444BD0 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_444BD0 endp


loc_444BD8:
mov	eax, offset stru_450A50
jmp	__CxxFrameHandler
align 4



sub_444BE4 proc	near

; FUNCTION CHUNK AT 0043316D SIZE 00000019 BYTES

lea	ecx, [ebp-10h]
jmp	loc_43316D
sub_444BE4 endp




sub_444BEC proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_444BEC endp


loc_444BF4:
mov	eax, offset stru_450A88
jmp	__CxxFrameHandler
align 10h



sub_444C00 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_444C00 endp




sub_444C08 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_444C08 endp


loc_444C10:
mov	eax, offset stru_450AB8
jmp	__CxxFrameHandler
align 4



sub_444C1C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_444C1C endp




sub_444C24 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_444C24 endp




sub_444C2C proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_444C2C endp




sub_444C34 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_444C34 endp




sub_444C3C proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_444C3C endp




sub_444C44 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_444C44 endp




sub_444C4C proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_444C4C endp


loc_444C54:
mov	eax, offset stru_450AE8
jmp	__CxxFrameHandler
align 10h



sub_444C60 proc	near
lea	ecx, [ebp-10h]
jmp	loc_43316D
sub_444C60 endp


loc_444C68:
mov	eax, offset stru_450B40
jmp	__CxxFrameHandler
align 4



sub_444C74 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_444C74 endp


loc_444C7C:
mov	eax, offset stru_450B68
jmp	__CxxFrameHandler
align 4



sub_444C88 proc	near
lea	ecx, [ebp-14h]
jmp	sub_4028F2
sub_444C88 endp




sub_444C90 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_444C90 endp




sub_444C98 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_444C98 endp




sub_444CA0 proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_444CA0 endp


loc_444CA8:
mov	eax, offset stru_450B90
jmp	__CxxFrameHandler
align 4



sub_444CB4 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_444CB4 endp


loc_444CBC:
mov	eax, offset stru_450BD0
jmp	__CxxFrameHandler
align 4



sub_444CC8 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_444CC8 endp


loc_444CD0:
mov	eax, offset stru_450BF8
jmp	__CxxFrameHandler
align 4



sub_444CDC proc	near
lea	ecx, [ebp-34h]
jmp	sub_40327C
sub_444CDC endp




sub_444CE4 proc	near
lea	ecx, [ebp-20h]
jmp	sub_4302FB
sub_444CE4 endp




sub_444CEC proc	near
lea	ecx, [ebp-34h]
jmp	sub_4302FB
sub_444CEC endp


loc_444CF4:
mov	eax, offset stru_450C20
jmp	__CxxFrameHandler
align 10h



sub_444D00 proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_444D00 endp




sub_444D08 proc	near
lea	ecx, [ebp-254h]
jmp	sub_415626
sub_444D08 endp




sub_444D13 proc	near
push	dword ptr [ebp-14h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_444D13 endp


loc_444D1D:
mov	eax, offset stru_450C58
jmp	__CxxFrameHandler
align 4



sub_444D28 proc	near
mov	ecx, [ebp-10h]
jmp	sub_40F3F1
sub_444D28 endp




sub_444D30 proc	near
mov	ecx, [ebp-10h]
add	ecx, 218h
jmp	sub_406E76
sub_444D30 endp


loc_444D3E:
mov	eax, offset stru_450C90
jmp	__CxxFrameHandler



sub_444D48 proc	near
mov	ecx, [ebp-10h]
jmp	sub_40F3F1
sub_444D48 endp




sub_444D50 proc	near
mov	ecx, [ebp-10h]
add	ecx, 218h
jmp	sub_406E76
sub_444D50 endp




sub_444D5E proc	near
mov	ecx, [ebp-10h]
add	ecx, 224h
jmp	sub_406E76
sub_444D5E endp




sub_444D6C proc	near
mov	ecx, [ebp-10h]
add	ecx, 230h
jmp	sub_4370A0
sub_444D6C endp


loc_444D7A:
mov	eax, offset stru_450CC0
jmp	__CxxFrameHandler



sub_444D84 proc	near
lea	ecx, [ebp-34h]
jmp	sub_40299B
sub_444D84 endp


loc_444D8C:
mov	eax, offset stru_450D00
jmp	__CxxFrameHandler
align 4



sub_444D98 proc	near
mov	ecx, [ebp-14h]
jmp	sub_404D3D
sub_444D98 endp


loc_444DA0:
mov	eax, offset stru_450D28
jmp	__CxxFrameHandler
align 4



sub_444DAC proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_444DAC endp




sub_444DB4 proc	near
lea	ecx, [ebp-14h]
jmp	sub_4370A0
sub_444DB4 endp




sub_444DBC proc	near
lea	ecx, [ebp-0A8h]
jmp	sub_406E76
sub_444DBC endp




sub_444DC7 proc	near
lea	ecx, [ebp-54h]
jmp	sub_4027CD
sub_444DC7 endp




sub_444DCF proc	near
lea	ecx, [ebp-84h]
jmp	sub_406E76
sub_444DCF endp




sub_444DDA proc	near
lea	ecx, [ebp-78h]
jmp	sub_406E76
sub_444DDA endp




sub_444DE2 proc	near
lea	ecx, [ebp-6Ch]
jmp	sub_406E76
sub_444DE2 endp




sub_444DEA proc	near
lea	ecx, [ebp-60h]
jmp	sub_406E76
sub_444DEA endp




sub_444DF2 proc	near
lea	ecx, [ebp-134h]
jmp	sub_406EDD
sub_444DF2 endp




sub_444DFD proc	near
lea	ecx, [ebp-28h]
jmp	sub_4370A0
sub_444DFD endp




sub_444E05 proc	near
lea	ecx, [ebp-24h]
jmp	sub_4370A0
sub_444E05 endp




sub_444E0D proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_4370A0
sub_444E0D endp




sub_444E15 proc	near
lea	ecx, [ebp-6Ch]
jmp	sub_406E76
sub_444E15 endp




sub_444E1D proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_444E1D endp




sub_444E25 proc	near
lea	ecx, [ebp-0C8h]
jmp	sub_4302FB
sub_444E25 endp




sub_444E30 proc	near
lea	ecx, [ebp-9Ch]
jmp	sub_40327C
sub_444E30 endp




sub_444E3B proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_444E3B endp




sub_444E43 proc	near
lea	ecx, [ebp-9Ch]
jmp	sub_4302FB
sub_444E43 endp




sub_444E4E proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_444E4E endp




sub_444E56 proc	near
lea	ecx, [ebp-9Ch]
jmp	sub_4302FB
sub_444E56 endp




sub_444E61 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_444E61 endp




sub_444E69 proc	near
lea	ecx, [ebp-6Ch]
jmp	sub_406E76
sub_444E69 endp




sub_444E71 proc	near
lea	ecx, [ebp-9Ch]
jmp	sub_4302FB
sub_444E71 endp




sub_444E7C proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_444E7C endp




sub_444E84 proc	near
push	dword ptr [ebp+0Ch] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_444E84 endp




sub_444E8E proc	near
lea	ecx, [ebp-20h]
jmp	sub_416245
sub_444E8E endp




sub_444E96 proc	near
lea	ecx, [ebp-9Ch]
jmp	sub_4302FB
sub_444E96 endp




sub_444EA1 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_444EA1 endp




sub_444EA9 proc	near
lea	ecx, [ebp-0B0h]
jmp	sub_416066
sub_444EA9 endp




sub_444EB4 proc	near
lea	ecx, [ebp-1Ch]
jmp	loc_43316D
sub_444EB4 endp




sub_444EBC proc	near
lea	ecx, [ebp-0B4h]
jmp	sub_404D3D
sub_444EBC endp


loc_444EC7:
mov	eax, offset stru_450D50
jmp	__CxxFrameHandler
align 4



sub_444ED4 proc	near
mov	ecx, [ebp-10h]
jmp	sub_406EDD
sub_444ED4 endp




sub_444EDC proc	near
mov	ecx, [ebp-10h]
add	ecx, 70h
jmp	sub_406E76
sub_444EDC endp


loc_444EE7:
mov	eax, offset stru_450E70
jmp	__CxxFrameHandler
align 4



sub_444EF4 proc	near
lea	ecx, [ebp+8]
jmp	sub_416245
sub_444EF4 endp




sub_444EFC proc	near
lea	ecx, [ebp-68h]
jmp	loc_407A4A
sub_444EFC endp




sub_444F04 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_444F04 endp


loc_444F0C:
mov	eax, offset stru_450EA0
jmp	__CxxFrameHandler
align 4



sub_444F18 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_444F18 endp


unknown_libname_23:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_450ED8
jmp	__CxxFrameHandler



sub_444F2C proc	near
mov	ecx, [ebp-10h]
jmp	sub_406EDD
sub_444F2C endp




sub_444F34 proc	near
mov	ecx, [ebp-10h]
add	ecx, 68h
jmp	sub_4059B3
sub_444F34 endp




sub_444F3F proc	near
mov	ecx, [ebp-10h]
add	ecx, 6Ch
jmp	sub_4370A0
sub_444F3F endp




sub_444F4A proc	near
mov	ecx, [ebp-10h]
add	ecx, 74h
jmp	sub_406E76
sub_444F4A endp


loc_444F55:
mov	eax, offset stru_450F00
jmp	__CxxFrameHandler
align 10h



sub_444F60 proc	near
mov	ecx, [ebp-10h]
jmp	sub_406E76
sub_444F60 endp




sub_444F68 proc	near
mov	ecx, [ebp-10h]
add	ecx, 0Ch
jmp	sub_406E76
sub_444F68 endp




sub_444F73 proc	near
mov	ecx, [ebp-10h]
add	ecx, 18h
jmp	sub_406E76
sub_444F73 endp


loc_444F7E:
mov	eax, offset stru_450F40
jmp	__CxxFrameHandler



sub_444F88 proc	near
lea	ecx, [ebp-18h]
jmp	loc_405586
sub_444F88 endp




sub_444F90 proc	near
lea	ecx, [ebp-58h]
jmp	sub_406E76
sub_444F90 endp




sub_444F98 proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_444F98 endp


loc_444FA0:
mov	eax, offset stru_450F78
jmp	__CxxFrameHandler
align 4



sub_444FAC proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_40327C
sub_444FAC endp




sub_444FB4 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_444FB4 endp




sub_444FBC proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_4302FB
sub_444FBC endp


loc_444FC4:
mov	eax, offset stru_450FB0
jmp	__CxxFrameHandler
align 10h



sub_444FD0 proc	near
lea	ecx, [ebp-30h]
jmp	sub_4302FB
sub_444FD0 endp




sub_444FD8 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_444FD8 endp


loc_444FE0:
mov	eax, offset stru_450FE8
jmp	__CxxFrameHandler
align 4



sub_444FEC proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_444FEC endp


loc_444FF4:
mov	eax, offset stru_451018
jmp	__CxxFrameHandler
align 10h



sub_445000 proc	near
lea	ecx, [ebp-34h]
jmp	sub_40299B
sub_445000 endp


loc_445008:
mov	eax, offset stru_451040
jmp	__CxxFrameHandler
align 4



sub_445014 proc	near
lea	ecx, [ebp-58h]
jmp	sub_4028F2
sub_445014 endp




sub_44501C proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_4370A0
sub_44501C endp




sub_445024 proc	near
lea	ecx, [ebp-28h]
jmp	sub_4370A0
sub_445024 endp




sub_44502C proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_44502C endp




sub_445034 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_445034 endp




sub_44503C proc	near
lea	ecx, [ebp-0A0h]
jmp	sub_406E76
sub_44503C endp




sub_445047 proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_445047 endp




sub_44504F proc	near
lea	ecx, [ebp-0B8h]
jmp	sub_406E76
sub_44504F endp




sub_44505A proc	near
lea	ecx, [ebp-0ACh]
jmp	sub_406E76
sub_44505A endp




sub_445065 proc	near
lea	ecx, [ebp-0D0h]
jmp	sub_406E76
sub_445065 endp




sub_445070 proc	near
lea	ecx, [ebp-0C4h]
jmp	sub_406E76
sub_445070 endp




sub_44507B proc	near
lea	ecx, [ebp-94h]
jmp	sub_401E60
sub_44507B endp




sub_445086 proc	near
lea	ecx, [ebp-0DCh]
jmp	sub_406E76
sub_445086 endp


loc_445091:
mov	eax, offset stru_451068
jmp	__CxxFrameHandler
align 4



sub_44509C proc	near
lea	ecx, [ebp-20h]
jmp	sub_4302FB
sub_44509C endp


loc_4450A4:
mov	eax, offset stru_4510F0
jmp	__CxxFrameHandler
align 10h



sub_4450B0 proc	near
mov	eax, [ebp-10h]
and	eax, 1
test	eax, eax
jz	locret_4450C6
mov	ecx, [ebp+8]
jmp	sub_406E76

locret_4450C6:
retn
sub_4450B0 endp




sub_4450C7 proc	near
lea	ecx, [ebp-20h]
jmp	sub_401E60
sub_4450C7 endp


loc_4450CF:
mov	eax, offset stru_451118
jmp	__CxxFrameHandler
align 4



sub_4450DC proc	near
mov	eax, [ebp-10h]
and	eax, 1
test	eax, eax
jz	locret_4450F2
mov	ecx, [ebp+8]
jmp	sub_406E76

locret_4450F2:
retn
sub_4450DC endp




sub_4450F3 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_401E60
sub_4450F3 endp




sub_4450FB proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4450FB endp


loc_445103:
mov	eax, offset stru_451148
jmp	__CxxFrameHandler
align 10h



sub_445110 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_445110 endp




sub_445118 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_445118 endp


loc_445120:
mov	eax, offset stru_451180
jmp	__CxxFrameHandler
align 4



sub_44512C proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_44512C endp


loc_445134:
mov	eax, offset stru_4511B0
jmp	__CxxFrameHandler
align 10h



sub_445140 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_401E60
sub_445140 endp


loc_445148:
mov	eax, offset stru_4511D8
jmp	__CxxFrameHandler
align 4



sub_445154 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_401E60
sub_445154 endp


loc_44515C:
mov	eax, offset stru_451200
jmp	__CxxFrameHandler
align 4



sub_445168 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_445168 endp


loc_445170:
mov	eax, offset stru_451228
jmp	__CxxFrameHandler
align 4



sub_44517C proc	near
lea	ecx, [ebp-3Ch]
jmp	loc_405A74
sub_44517C endp




sub_445184 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_4302FB
sub_445184 endp


loc_44518C:
mov	eax, offset stru_451250
jmp	__CxxFrameHandler
align 4



sub_445198 proc	near

; FUNCTION CHUNK AT 00417AFA SIZE 00000017 BYTES

lea	ecx, [ebp-14h]
jmp	loc_417AFA
sub_445198 endp


loc_4451A0:
mov	eax, offset stru_451280
jmp	__CxxFrameHandler
align 4



sub_4451AC proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_4451AC endp


loc_4451B4:
mov	eax, offset stru_4512A8
jmp	__CxxFrameHandler
align 10h



sub_4451C0 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_4451C0 endp


unknown_libname_24:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_4512D0
jmp	__CxxFrameHandler



sub_4451D4 proc	near
mov	ecx, [ebp-10h]
jmp	sub_406E76
sub_4451D4 endp


loc_4451DC:
mov	eax, offset stru_4512F8
jmp	__CxxFrameHandler
align 4



sub_4451E8 proc	near
mov	ecx, [ebp-10h]
jmp	sub_406E76
sub_4451E8 endp


loc_4451F0:
mov	eax, offset stru_451320
jmp	__CxxFrameHandler
align 4



sub_4451FC proc	near
lea	ecx, [ebp+14h]
jmp	sub_406E76
sub_4451FC endp




sub_445204 proc	near
lea	ecx, [ebp+8]
jmp	sub_406E76
sub_445204 endp


loc_44520C:
mov	eax, offset stru_451348
jmp	__CxxFrameHandler
align 4



sub_445218 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_445218 endp




sub_445220 proc	near
lea	ecx, [ebp-50h]
jmp	sub_401E60
sub_445220 endp




sub_445228 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_445228 endp




sub_445230 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_445230 endp




sub_445238 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_445238 endp




sub_445240 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_445240 endp




sub_445248 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_445248 endp




sub_445250 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_445250 endp


loc_445258:
mov	eax, offset stru_451378
jmp	__CxxFrameHandler
align 4



sub_445264 proc	near
lea	ecx, [ebp-64h]
jmp	sub_4302FB
sub_445264 endp




sub_44526C proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_44526C endp




sub_445274 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_445274 endp




sub_44527C proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_44527C endp




sub_445284 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_445284 endp




sub_44528C proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_44528C endp




sub_445294 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_445294 endp




sub_44529C proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_44529C endp




sub_4452A4 proc	near
lea	ecx, [ebp-20h]
jmp	sub_401E60
sub_4452A4 endp




sub_4452AC proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_4452AC endp


loc_4452B4:
mov	eax, offset stru_4513D8
jmp	__CxxFrameHandler
align 10h



sub_4452C0 proc	near
lea	ecx, [ebp-40h]
jmp	CoUninitialize
sub_4452C0 endp




sub_4452C8 proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_4452C8 endp




sub_4452D0 proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_4452D0 endp


loc_4452D8:
mov	eax, offset stru_451448
jmp	__CxxFrameHandler
align 4



sub_4452E4 proc	near
lea	ecx, [ebp-30h]
jmp	sub_4370A0
sub_4452E4 endp




sub_4452EC proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_4452EC endp




sub_4452F4 proc	near
lea	ecx, [ebp-84h]
jmp	sub_4302FB
sub_4452F4 endp




sub_4452FF proc	near
lea	ecx, [ebp-1Ch]
jmp	loc_405586
sub_4452FF endp




sub_445307 proc	near
lea	ecx, [ebp-60h]
jmp	sub_401E60
sub_445307 endp




sub_44530F proc	near
lea	ecx, [ebp-70h]
jmp	sub_401E60
sub_44530F endp




sub_445317 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_4370A0
sub_445317 endp




sub_44531F proc	near
lea	ecx, [ebp-1Ch]
jmp	loc_405586
sub_44531F endp




sub_445327 proc	near
lea	ecx, [ebp-60h]
jmp	sub_401E60
sub_445327 endp




sub_44532F proc	near
lea	ecx, [ebp-38h]
jmp	sub_4370A0
sub_44532F endp




sub_445337 proc	near
lea	ecx, [ebp-14h]
jmp	sub_4370A0
sub_445337 endp




sub_44533F proc	near
lea	ecx, [ebp-24h]
jmp	loc_405586
sub_44533F endp




sub_445347 proc	near
lea	ecx, [ebp-60h]
jmp	sub_401E60
sub_445347 endp




sub_44534F proc	near
lea	ecx, [ebp-24h]
jmp	loc_405586
sub_44534F endp




sub_445357 proc	near
lea	ecx, [ebp-70h]
jmp	sub_401E60
sub_445357 endp


loc_44535F:
mov	eax, offset stru_451480
jmp	__CxxFrameHandler
align 4



sub_44536C proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_44536C endp




sub_445374 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_445374 endp




sub_44537C proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_44537C endp




sub_445384 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_445384 endp


loc_44538C:
mov	eax, offset stru_451518
jmp	__CxxFrameHandler
align 4



sub_445398 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_445398 endp




sub_4453A0 proc	near
lea	ecx, [ebp-38h]
jmp	sub_4302FB
sub_4453A0 endp




sub_4453A8 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_4453A8 endp


loc_4453B0:
mov	eax, offset stru_451558
jmp	__CxxFrameHandler
align 4



sub_4453BC proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_4453BC endp




sub_4453C4 proc	near
lea	ecx, [ebp-14h]
jmp	sub_4370A0
sub_4453C4 endp




sub_4453CC proc	near
lea	ecx, [ebp-18h]
jmp	sub_4370A0
sub_4453CC endp




sub_4453D4 proc	near
lea	ecx, [ebp-5Ch]
jmp	sub_4302FB
sub_4453D4 endp




sub_4453DC proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_4453DC endp




sub_4453E4 proc	near
lea	ecx, [ebp-20h]
jmp	sub_4370A0
sub_4453E4 endp


loc_4453EC:
mov	eax, offset stru_451590
jmp	__CxxFrameHandler
align 4



sub_4453F8 proc	near
lea	ecx, [ebp-6Ch]
jmp	sub_406E76
sub_4453F8 endp




sub_445400 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_445400 endp


loc_445408:
mov	eax, offset stru_4515E0
jmp	__CxxFrameHandler
align 4



sub_445414 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_445414 endp




sub_44541E proc	near
lea	ecx, [ebp-18h]
jmp	sub_4370A0
sub_44541E endp




sub_445426 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_445426 endp




sub_44542E proc	near
lea	ecx, [ebp-50h]
jmp	sub_40327C
sub_44542E endp




sub_445436 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_445436 endp




sub_44543E proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_44543E endp




sub_445446 proc	near
lea	ecx, [ebp-64h]
jmp	sub_4302FB
sub_445446 endp




sub_44544E proc	near
lea	ecx, [ebp-50h]
jmp	sub_4302FB
sub_44544E endp


loc_445456:
mov	eax, offset stru_451610
jmp	__CxxFrameHandler



sub_445460 proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_445460 endp


loc_445468:
mov	eax, offset stru_451670
jmp	__CxxFrameHandler
align 4



sub_445474 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_445474 endp




sub_44547C proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_44547C endp


loc_445484:
mov	eax, offset stru_451698
jmp	__CxxFrameHandler
align 10h



sub_445490 proc	near
lea	ecx, [ebp-44h]
jmp	sub_4302FB
sub_445490 endp




sub_445498 proc	near
lea	ecx, [ebp+8]
jmp	loc_417AFA
sub_445498 endp




sub_4454A0 proc	near
lea	ecx, [ebp-18h]
jmp	sub_4370A0
sub_4454A0 endp




sub_4454A8 proc	near
lea	ecx, [ebp-14h]
jmp	sub_4370A0
sub_4454A8 endp


loc_4454B0:
mov	eax, offset stru_4516C8
jmp	__CxxFrameHandler
align 4



sub_4454BC proc	near
lea	ecx, [ebp-4]
jmp	CoUninitialize
sub_4454BC endp


loc_4454C4:
mov	eax, offset stru_451708
jmp	__CxxFrameHandler
align 10h



sub_4454D0 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_4454D0 endp




sub_4454DA proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4454DA endp




sub_4454E2 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4454E2 endp




sub_4454EA proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_4454EA endp




sub_4454F2 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4454F2 endp


loc_4454FA:
mov	eax, offset stru_451730
jmp	__CxxFrameHandler



sub_445504 proc	near
lea	ecx, [ebp-10h]
jmp	loc_401701
sub_445504 endp


loc_44550C:
mov	eax, offset stru_451778
jmp	__CxxFrameHandler
align 4



sub_445518 proc	near
lea	ecx, [ebp-24h]
jmp	sub_4028F2
sub_445518 endp




sub_445520 proc	near
lea	ecx, [ebp-44h]
jmp	sub_4302FB
sub_445520 endp




sub_445528 proc	near
lea	ecx, [ebp-0B0h]
jmp	sub_40299B
sub_445528 endp




sub_445533 proc	near
lea	ecx, [ebp-18h]
jmp	sub_41A190
sub_445533 endp




sub_44553B proc	near
lea	ecx, [ebp-7Ch]
jmp	sub_406E76
sub_44553B endp




sub_445543 proc	near
lea	ecx, [ebp-70h]
jmp	sub_406E76
sub_445543 endp




sub_44554B proc	near
lea	ecx, [ebp-88h]
jmp	sub_406E76
sub_44554B endp




sub_445556 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_445556 endp




sub_44555E proc	near
lea	ecx, [ebp-18h]
jmp	sub_42DA76
sub_44555E endp




sub_445566 proc	near
lea	ecx, [ebp-70h]
jmp	sub_406E76
sub_445566 endp




sub_44556E proc	near
lea	ecx, [ebp-7Ch]
jmp	sub_406E76
sub_44556E endp




sub_445576 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_445576 endp


loc_44557E:
mov	eax, offset stru_4517A0
jmp	__CxxFrameHandler



sub_445588 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_445588 endp


loc_445590:
mov	eax, offset stru_451848
jmp	__CxxFrameHandler
align 4



sub_44559C proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_44559C endp




sub_4455A4 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4455A4 endp




sub_4455AC proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_4455AC endp




sub_4455B4 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_4455B4 endp




sub_4455BC proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4455BC endp




sub_4455C4 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4455C4 endp




sub_4455CC proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4455CC endp




sub_4455D4 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4455D4 endp




sub_4455DC proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4455DC endp




sub_4455E4 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_4455E4 endp




sub_4455EC proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4455EC endp




sub_4455F4 proc	near
lea	ecx, [ebp-290h]
jmp	sub_41A549
sub_4455F4 endp




sub_4455FF proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_4455FF endp




sub_445607 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_445607 endp


loc_44560F:
mov	eax, offset stru_451870
jmp	__CxxFrameHandler
align 4



sub_44561C proc	near
mov	ecx, [ebp-10h]
jmp	sub_40F3F1
sub_44561C endp


loc_445624:
mov	eax, offset stru_451900
jmp	__CxxFrameHandler
align 10h



sub_445630 proc	near
mov	ecx, [ebp-10h]
jmp	sub_40F3F1
sub_445630 endp




sub_445638 proc	near
mov	ecx, [ebp-10h]
add	ecx, 21Ch
jmp	sub_406E76
sub_445638 endp




sub_445646 proc	near
mov	ecx, [ebp-10h]
add	ecx, 22Ch
jmp	sub_4302FB
sub_445646 endp




sub_445654 proc	near
mov	ecx, [ebp-10h]
add	ecx, 240h
jmp	sub_4370A0
sub_445654 endp


loc_445662:
mov	eax, offset stru_451928
jmp	__CxxFrameHandler



sub_44566C proc	near
lea	ecx, [ebp+8]
jmp	sub_4370A0
sub_44566C endp


loc_445674:
mov	eax, offset stru_451968
jmp	__CxxFrameHandler
align 10h



sub_445680 proc	near
lea	ecx, [ebp+8]
jmp	sub_4370A0
sub_445680 endp




sub_445688 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_445688 endp




sub_445690 proc	near
lea	ecx, [ebp-14h]
jmp	sub_4028F2
sub_445690 endp




sub_445698 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_445698 endp




sub_4456A0 proc	near
lea	ecx, [ebp-294h]
jmp	sub_41A549
sub_4456A0 endp




sub_4456AB proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_4456AB endp




sub_4456B3 proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_4456B3 endp




sub_4456BB proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_4456BB endp


loc_4456C3:
mov	eax, offset stru_451990
jmp	__CxxFrameHandler
align 10h



sub_4456D0 proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_4456D0 endp




sub_4456D8 proc	near
lea	ecx, [ebp-30h]
jmp	sub_4028F2
sub_4456D8 endp




sub_4456E0 proc	near
lea	ecx, [ebp-68h]
jmp	sub_40299B
sub_4456E0 endp




sub_4456E8 proc	near
lea	ecx, [ebp-0ACh]
jmp	sub_41ABA3
sub_4456E8 endp




sub_4456F3 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4456F3 endp




sub_4456FB proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4456FB endp




sub_445703 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_445703 endp




sub_44570B proc	near
lea	ecx, [ebp-64h]
jmp	sub_406E76
sub_44570B endp




sub_445713 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_445713 endp




sub_44571B proc	near
lea	ecx, [ebp-2FCh]
jmp	sub_41A549
sub_44571B endp




sub_445726 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_445726 endp




sub_44572E proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_44572E endp




sub_445736 proc	near
lea	ecx, [ebp-64h]
jmp	sub_406E76
sub_445736 endp




sub_44573E proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_44573E endp


loc_445746:
mov	eax, offset stru_4519F0
jmp	__CxxFrameHandler



sub_445750 proc	near
mov	ecx, [ebp-10h]
jmp	sub_40D6C5
sub_445750 endp




sub_445758 proc	near
mov	ecx, [ebp-10h]
add	ecx, 0Ch
jmp	sub_406E76
sub_445758 endp




sub_445763 proc	near
mov	ecx, [ebp-10h]
add	ecx, 18h
jmp	sub_406E76
sub_445763 endp


loc_44576E:
mov	eax, offset stru_451A80
jmp	__CxxFrameHandler



sub_445778 proc	near
mov	ecx, [ebp-10h]
jmp	sub_40D6C5
sub_445778 endp




sub_445780 proc	near
mov	ecx, [ebp-10h]
add	ecx, 0Ch
jmp	sub_406E76
sub_445780 endp




sub_44578B proc	near
mov	ecx, [ebp-10h]
add	ecx, 18h
jmp	sub_406E76
sub_44578B endp




sub_445796 proc	near
mov	ecx, [ebp-10h]
add	ecx, 24h
jmp	sub_406E76
sub_445796 endp




sub_4457A1 proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_4457A1 endp


loc_4457A9:
mov	eax, offset stru_451AB8
jmp	__CxxFrameHandler
align 4



sub_4457B4 proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_4457B4 endp




sub_4457BC proc	near
lea	ecx, [ebp-30h]
jmp	sub_4028F2
sub_4457BC endp




sub_4457C4 proc	near
lea	ecx, [ebp-58h]
jmp	sub_40299B
sub_4457C4 endp




sub_4457CC proc	near
lea	ecx, [ebp-9Ch]
jmp	sub_41ABA3
sub_4457CC endp




sub_4457D7 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4457D7 endp




sub_4457DF proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4457DF endp




sub_4457E7 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4457E7 endp




sub_4457EF proc	near
lea	ecx, [ebp-54h]
jmp	sub_406E76
sub_4457EF endp




sub_4457F7 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4457F7 endp




sub_4457FF proc	near
lea	ecx, [ebp-54h]
jmp	sub_406E76
sub_4457FF endp




sub_445807 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_445807 endp


loc_44580F:
mov	eax, offset stru_451B00
jmp	__CxxFrameHandler
align 4



sub_44581C proc	near
lea	ecx, [ebp-18h]
jmp	sub_4028F2
sub_44581C endp




sub_445824 proc	near
lea	ecx, [ebp-6Ch]
jmp	sub_40299B
sub_445824 endp




sub_44582C proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_44582C endp




sub_445834 proc	near
lea	ecx, [ebp-68h]
jmp	sub_406E76
sub_445834 endp




sub_44583C proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_44583C endp




sub_445844 proc	near
lea	ecx, [ebp-34h]
jmp	sub_401E60
sub_445844 endp




sub_44584C proc	near
lea	ecx, [ebp-68h]
jmp	sub_406E76
sub_44584C endp




sub_445854 proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_445854 endp




sub_44585C proc	near
lea	ecx, [ebp-0D8h]
jmp	sub_41ABA3
sub_44585C endp




sub_445867 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_445867 endp




sub_44586F proc	near
lea	ecx, [ebp-94h]
jmp	sub_406E76
sub_44586F endp




sub_44587A proc	near
lea	ecx, [ebp-88h]
jmp	sub_406E76
sub_44587A endp




sub_445885 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_445885 endp




sub_44588D proc	near
lea	ecx, [ebp-68h]
jmp	sub_406E76
sub_44588D endp




sub_445895 proc	near
lea	ecx, [ebp-68h]
jmp	sub_406E76
sub_445895 endp




sub_44589D proc	near
lea	ecx, [ebp-7Ch]
jmp	sub_401E60
sub_44589D endp


loc_4458A5:
mov	eax, offset stru_451B78
jmp	__CxxFrameHandler
align 10h



sub_4458B0 proc	near
lea	ecx, [ebp-6Ch]
jmp	sub_41ABA3
sub_4458B0 endp




sub_4458B8 proc	near
mov	eax, [ebp-10h]
and	eax, 1
test	eax, eax
jz	locret_4458CE
lea	ecx, [ebp-28h]
jmp	sub_406E76

locret_4458CE:
retn
sub_4458B8 endp




sub_4458CF proc	near
mov	eax, [ebp-10h]
and	eax, 2
test	eax, eax
jz	locret_4458E5
lea	ecx, [ebp-1Ch]
jmp	sub_406E76

locret_4458E5:
retn
sub_4458CF endp




sub_4458E6 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4458E6 endp




sub_4458EE proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4458EE endp


loc_4458F6:
mov	eax, offset stru_451C18
jmp	__CxxFrameHandler



sub_445900 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_445900 endp




sub_445908 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_445908 endp




sub_445910 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_445910 endp




sub_445918 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_445918 endp




sub_445920 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_445920 endp


loc_445928:
mov	eax, offset stru_451C60
jmp	__CxxFrameHandler
align 4



sub_445934 proc	near
lea	ecx, [ebp-74h]
jmp	sub_401E60
sub_445934 endp




sub_44593C proc	near
lea	ecx, [ebp-64h]
jmp	sub_401E60
sub_44593C endp




sub_445944 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_445944 endp




sub_44594C proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_44594C endp




sub_445954 proc	near
lea	ecx, [ebp-54h]
jmp	sub_406E76
sub_445954 endp




sub_44595C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_44595C endp




sub_445964 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_445964 endp




sub_44596C proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_44596C endp


loc_445974:
mov	eax, offset stru_451CB8
jmp	__CxxFrameHandler
align 10h



sub_445980 proc	near
lea	ecx, [ebp-78h]
jmp	sub_407E2B
sub_445980 endp




sub_445988 proc	near
lea	ecx, [ebp-88h]
jmp	sub_407E2B
sub_445988 endp




sub_445993 proc	near
lea	ecx, [ebp-18h]
jmp	loc_42716F
sub_445993 endp




sub_44599B proc	near
lea	ecx, [ebp-68h]
jmp	sub_406E76
sub_44599B endp




sub_4459A3 proc	near
lea	ecx, [ebp-68h]
jmp	sub_409444
sub_4459A3 endp




sub_4459AB proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_4459AB endp




sub_4459B3 proc	near
lea	ecx, [ebp-9Ch]
jmp	sub_406E76
sub_4459B3 endp


loc_4459BE:
mov	eax, offset stru_451D88
jmp	__CxxFrameHandler



sub_4459C8 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4459C8 endp




sub_4459D0 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4459D0 endp




sub_4459D8 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_4459D8 endp




sub_4459E0 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_4459E0 endp




sub_4459E8 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_4459E8 endp




sub_4459F0 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_4459F0 endp


loc_4459F8:
mov	eax, offset stru_451DE0
jmp	__CxxFrameHandler
align 4



sub_445A04 proc	near
lea	ecx, [ebp-58h]
jmp	sub_4302FB
sub_445A04 endp




sub_445A0C proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_445A0C endp




sub_445A14 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_445A14 endp




sub_445A1C proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_445A1C endp




sub_445A24 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_445A24 endp




sub_445A2C proc	near
lea	ecx, [ebp-0B8h]
jmp	sub_41C98E
sub_445A2C endp




sub_445A37 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_445A37 endp




sub_445A3F proc	near
lea	ecx, [ebp-0F0h]
jmp	loc_407A4A
sub_445A3F endp




sub_445A4A proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_445A4A endp




sub_445A52 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_445A52 endp




sub_445A5A proc	near
lea	ecx, [ebp-64h]
jmp	sub_406E76
sub_445A5A endp




sub_445A62 proc	near
lea	ecx, [ebp-64h]
jmp	sub_406E76
sub_445A62 endp




sub_445A6A proc	near
lea	ecx, [ebp-380h]
jmp	sub_41CA4F
sub_445A6A endp




sub_445A75 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_445A75 endp




sub_445A7D proc	near
lea	ecx, [ebp-70h]
jmp	sub_406E76
sub_445A7D endp




sub_445A85 proc	near
lea	ecx, [ebp-7Ch]
jmp	sub_406E76
sub_445A85 endp




sub_445A8D proc	near
lea	ecx, [ebp-64h]
jmp	sub_406E76
sub_445A8D endp




sub_445A95 proc	near
lea	ecx, [ebp-64h]
jmp	sub_406E76
sub_445A95 endp




sub_445A9D proc	near
lea	ecx, [ebp-7Ch]
jmp	sub_406E76
sub_445A9D endp


loc_445AA5:
mov	eax, offset stru_451E30
jmp	__CxxFrameHandler
align 10h



sub_445AB0 proc	near
mov	ecx, [ebp-10h]
jmp	sub_40D6C5
sub_445AB0 endp




sub_445AB8 proc	near
mov	ecx, [ebp-10h]
add	ecx, 10h
jmp	sub_406E76
sub_445AB8 endp


loc_445AC3:
mov	eax, offset stru_451EF0
jmp	__CxxFrameHandler
align 10h



sub_445AD0 proc	near
mov	ecx, [ebp-10h]
jmp	sub_40D6C5
sub_445AD0 endp




sub_445AD8 proc	near
mov	ecx, [ebp-10h]
add	ecx, 10h
jmp	sub_406E76
sub_445AD8 endp




sub_445AE3 proc	near
mov	ecx, [ebp-10h]
add	ecx, 1Ch
jmp	sub_406E76
sub_445AE3 endp


loc_445AEE:
mov	eax, offset stru_451F20
jmp	__CxxFrameHandler



sub_445AF8 proc	near
mov	ecx, [ebp-10h]
jmp	sub_40F3F1
sub_445AF8 endp




sub_445B00 proc	near
mov	ecx, [ebp-10h]
add	ecx, 218h
jmp	sub_406E76
sub_445B00 endp


loc_445B0E:
mov	eax, offset stru_451F58
jmp	__CxxFrameHandler



sub_445B18 proc	near
mov	ecx, [ebp-10h]
jmp	sub_40F3F1
sub_445B18 endp




sub_445B20 proc	near
mov	ecx, [ebp-10h]
add	ecx, 218h
jmp	sub_406E76
sub_445B20 endp




sub_445B2E proc	near
mov	ecx, [ebp-10h]
add	ecx, 224h
jmp	sub_406E76
sub_445B2E endp


loc_445B3C:
mov	eax, offset stru_451F88
jmp	__CxxFrameHandler
align 4



sub_445B48 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_407E2B
sub_445B48 endp




sub_445B50 proc	near
lea	ecx, [ebp-10h]
jmp	loc_42716F
sub_445B50 endp




sub_445B58 proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_407E2B
sub_445B58 endp




sub_445B60 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_445B60 endp


loc_445B68:
mov	eax, offset stru_451FC0
jmp	__CxxFrameHandler
align 4



sub_445B74 proc	near
lea	ecx, [ebp-78h]
jmp	sub_4302FB
sub_445B74 endp




sub_445B7C proc	near
lea	ecx, [ebp-58h]
jmp	sub_406E76
sub_445B7C endp




sub_445B84 proc	near
lea	ecx, [ebp-0A0h]
jmp	sub_406E76
sub_445B84 endp




sub_445B8F proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_445B8F endp




sub_445B97 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_445B97 endp




sub_445B9F proc	near
lea	ecx, [ebp-90h]
jmp	sub_406E76
sub_445B9F endp




sub_445BAA proc	near
lea	ecx, [ebp-90h]
jmp	sub_409444
sub_445BAA endp




sub_445BB5 proc	near
lea	ecx, [ebp-3ACh]
jmp	sub_41D6A1
sub_445BB5 endp




sub_445BC0 proc	near
lea	ecx, [ebp-64h]
jmp	sub_406E76
sub_445BC0 endp




sub_445BC8 proc	near
lea	ecx, [ebp-100h]
jmp	loc_407A4A
sub_445BC8 endp




sub_445BD3 proc	near
lea	ecx, [ebp-0A0h]
jmp	sub_406E76
sub_445BD3 endp




sub_445BDE proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_406E76
sub_445BDE endp




sub_445BE6 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_445BE6 endp




sub_445BEE proc	near
lea	ecx, [ebp-0A0h]
jmp	sub_406E76
sub_445BEE endp




sub_445BF9 proc	near
lea	ecx, [ebp-118h]
jmp	sub_402C6D
sub_445BF9 endp




sub_445C04 proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_406E76
sub_445C04 endp




sub_445C0C proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_406E76
sub_445C0C endp




sub_445C14 proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_406E76
sub_445C14 endp




sub_445C1C proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_406E76
sub_445C1C endp




sub_445C24 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_445C24 endp




sub_445C2C proc	near
lea	ecx, [ebp-15Ch]
jmp	loc_407A4A
sub_445C2C endp




sub_445C37 proc	near
lea	ecx, [ebp-0ACh]
jmp	sub_406E76
sub_445C37 endp




sub_445C42 proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_406E76
sub_445C42 endp




sub_445C4A proc	near
lea	ecx, [ebp-0C8h]
jmp	sub_406E76
sub_445C4A endp




sub_445C55 proc	near
lea	ecx, [ebp-0BCh]
jmp	sub_406E76
sub_445C55 endp




sub_445C60 proc	near
lea	ecx, [ebp-124h]
jmp	sub_406E76
sub_445C60 endp




sub_445C6B proc	near
lea	ecx, [ebp-0A0h]
jmp	sub_406E76
sub_445C6B endp


loc_445C76:
mov	eax, offset stru_452000
jmp	__CxxFrameHandler



sub_445C80 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_445C80 endp




sub_445C88 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_445C88 endp




sub_445C90 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_445C90 endp


loc_445C98:
mov	eax, offset stru_452100
jmp	__CxxFrameHandler
align 4



sub_445CA4 proc	near
mov	ecx, [ebp-10h]
jmp	sub_40F3F1
sub_445CA4 endp




sub_445CAC proc	near
mov	ecx, [ebp-10h]
add	ecx, 218h
jmp	sub_406E76
sub_445CAC endp




sub_445CBA proc	near
mov	ecx, [ebp-10h]
add	ecx, 224h
jmp	sub_40327C
sub_445CBA endp


loc_445CC8:
mov	eax, offset stru_452138
jmp	__CxxFrameHandler
align 4



sub_445CD4 proc	near
mov	ecx, [ebp-10h]
jmp	sub_40F3F1
sub_445CD4 endp




sub_445CDC proc	near
mov	ecx, [ebp-10h]
add	ecx, 218h
jmp	sub_406E76
sub_445CDC endp




sub_445CEA proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_445CEA endp


loc_445CF2:
mov	eax, offset stru_452170
jmp	__CxxFrameHandler



sub_445CFC proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_445CFC endp


loc_445D04:
mov	eax, offset stru_4521A8
jmp	__CxxFrameHandler
align 10h



sub_445D10 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_445D10 endp


loc_445D18:
mov	eax, offset stru_4521D0
jmp	__CxxFrameHandler
align 4



sub_445D24 proc	near
lea	ecx, [ebp-18h]
jmp	loc_401701
sub_445D24 endp




sub_445D2C proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_445D2C endp




sub_445D34 proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_445D34 endp


loc_445D3C:
mov	eax, offset stru_4521F8
jmp	__CxxFrameHandler
align 4



sub_445D48 proc	near
lea	ecx, [ebp+8]
jmp	sub_406E76
sub_445D48 endp




sub_445D50 proc	near
lea	ecx, [ebp-20h]
jmp	loc_401701
sub_445D50 endp




sub_445D58 proc	near
lea	ecx, [ebp-14h]
jmp	sub_41D97A
sub_445D58 endp




sub_445D60 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_445D60 endp




sub_445D68 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_445D68 endp




sub_445D70 proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_445D70 endp




sub_445D78 proc	near
lea	ecx, [ebp-5Ch]
jmp	sub_406E76
sub_445D78 endp




sub_445D80 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_445D80 endp




sub_445D88 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_41D97A
sub_445D88 endp




sub_445D90 proc	near
lea	ecx, [ebp-68h]
jmp	sub_406E76
sub_445D90 endp




sub_445D98 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_445D98 endp




sub_445DA0 proc	near
lea	ecx, [ebp-5Ch]
jmp	sub_406E76
sub_445DA0 endp




sub_445DA8 proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_445DA8 endp




sub_445DB0 proc	near
lea	ecx, [ebp-68h]
jmp	sub_406E76
sub_445DB0 endp


loc_445DB8:
mov	eax, offset stru_452230
jmp	__CxxFrameHandler
align 4



sub_445DC4 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_445DC4 endp


loc_445DCC:
mov	eax, offset stru_4522C8
jmp	__CxxFrameHandler
align 4



sub_445DD8 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_445DD8 endp




sub_445DE0 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_445DE0 endp


loc_445DE8:
mov	eax, offset stru_4522F0
jmp	__CxxFrameHandler
align 4



sub_445DF4 proc	near
lea	ecx, [ebp-14h]
jmp	loc_401701
sub_445DF4 endp




sub_445DFC proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_445DFC endp




sub_445E04 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_445E04 endp


loc_445E0C:
mov	eax, offset stru_452320
jmp	__CxxFrameHandler
align 4



sub_445E18 proc	near
lea	ecx, [ebp-14h]
jmp	loc_401701
sub_445E18 endp




sub_445E20 proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_445E20 endp




sub_445E28 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_445E28 endp


loc_445E30:
mov	eax, offset stru_452358
jmp	__CxxFrameHandler
align 4



sub_445E3C proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_445E3C endp


loc_445E44:
mov	eax, offset stru_452390
jmp	__CxxFrameHandler
align 10h



sub_445E50 proc	near
lea	ecx, [ebp-2Ch]
jmp	loc_401701
sub_445E50 endp




sub_445E58 proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_445E58 endp




sub_445E60 proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_445E60 endp




sub_445E68 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_445E68 endp




sub_445E70 proc	near
lea	ecx, [ebp-14h]
jmp	sub_41D97A
sub_445E70 endp




sub_445E78 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_445E78 endp




sub_445E80 proc	near
lea	ecx, [ebp-20h]
jmp	sub_41D97A
sub_445E80 endp




sub_445E88 proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_445E88 endp




sub_445E90 proc	near
lea	ecx, [ebp+14h]
jmp	sub_41D97A
sub_445E90 endp




sub_445E98 proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_445E98 endp




sub_445EA0 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_41D97A
sub_445EA0 endp




sub_445EA8 proc	near
lea	ecx, [ebp-18h]
jmp	sub_41D97A
sub_445EA8 endp




sub_445EB0 proc	near
lea	ecx, [ebp-24h]
jmp	sub_41D97A
sub_445EB0 endp


loc_445EB8:
mov	eax, offset stru_4523B8
jmp	__CxxFrameHandler
align 4



sub_445EC4 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_445EC4 endp


loc_445ECC:
mov	eax, offset stru_452440
jmp	__CxxFrameHandler
align 4



sub_445ED8 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_445ED8 endp


loc_445EE0:
mov	eax, offset stru_452468
jmp	__CxxFrameHandler
align 4



sub_445EEC proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_445EEC endp


loc_445EF4:
mov	eax, offset stru_452490
jmp	__CxxFrameHandler
align 10h



sub_445F00 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_445F00 endp




sub_445F08 proc	near
lea	ecx, [ebp-80h]
jmp	sub_406E76
sub_445F08 endp




sub_445F10 proc	near
lea	ecx, [ebp-80h]
jmp	sub_406E56
sub_445F10 endp




sub_445F18 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_445F18 endp




sub_445F20 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_445F20 endp




sub_445F28 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_445F28 endp




sub_445F30 proc	near
lea	ecx, [ebp-40h]
jmp	sub_407709
sub_445F30 endp




sub_445F38 proc	near
lea	ecx, [ebp-40h]
jmp	sub_4078D8
sub_445F38 endp




sub_445F40 proc	near
lea	ecx, [ebp-0B8h]
jmp	loc_407A4A
sub_445F40 endp




sub_445F4B proc	near
lea	ecx, [ebp-80h]
jmp	sub_406E76
sub_445F4B endp




sub_445F53 proc	near
lea	ecx, [ebp-80h]
jmp	sub_406E56
sub_445F53 endp




sub_445F5B proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_445F5B endp


loc_445F63:
mov	eax, offset stru_4524B8
jmp	__CxxFrameHandler
align 10h



sub_445F70 proc	near
lea	ecx, [ebp-10h]
jmp	sub_4059B3
sub_445F70 endp




sub_445F78 proc	near
lea	ecx, [ebp-14h]
jmp	sub_4059B3
sub_445F78 endp




sub_445F80 proc	near
lea	ecx, [ebp-28h]
jmp	sub_401E60
sub_445F80 endp


loc_445F88:
mov	eax, offset stru_452540
jmp	__CxxFrameHandler
align 4



sub_445F94 proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_406E56
sub_445F94 endp


loc_445F9C:
mov	eax, offset stru_452578
jmp	__CxxFrameHandler
align 4



sub_445FA8 proc	near
mov	ecx, [ebp-10h]
jmp	sub_406E76
sub_445FA8 endp


loc_445FB0:
mov	eax, offset stru_4525A0
jmp	__CxxFrameHandler
align 4



sub_445FBC proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_445FBC endp


unknown_libname_25:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_4525C8
jmp	__CxxFrameHandler



sub_445FD0 proc	near
mov	ecx, [ebp-10h]
jmp	sub_406E76
sub_445FD0 endp


loc_445FD8:
mov	eax, offset stru_4525F0
jmp	__CxxFrameHandler
align 4



sub_445FE4 proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_445FE4 endp


loc_445FEC:
mov	eax, offset stru_452618
jmp	__CxxFrameHandler
align 4



sub_445FF8 proc	near
lea	ecx, [ebp+8]
jmp	sub_41D97A
sub_445FF8 endp


loc_446000:
mov	eax, offset stru_452640
jmp	__CxxFrameHandler
align 4



sub_44600C proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_44600C endp


loc_446014:
mov	eax, offset stru_452668
jmp	__CxxFrameHandler
align 10h



sub_446020 proc	near
lea	ecx, [ebp-14h]
jmp	sub_41D97A
sub_446020 endp


loc_446028:
mov	eax, offset stru_452690
jmp	__CxxFrameHandler
align 4



sub_446034 proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_446034 endp


loc_44603C:
mov	eax, offset stru_4526B8
jmp	__CxxFrameHandler
align 4



sub_446048 proc	near
lea	ecx, [ebp-14h]
jmp	sub_41D97A
sub_446048 endp


loc_446050:
mov	eax, offset stru_4526E0
jmp	__CxxFrameHandler
align 4



sub_44605C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_44605C endp


loc_446064:
mov	eax, offset stru_452708
jmp	__CxxFrameHandler
align 10h



sub_446070 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_446070 endp


loc_446078:
mov	eax, offset stru_452730
jmp	__CxxFrameHandler
align 4



sub_446084 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_446084 endp


loc_44608C:
mov	eax, offset stru_452758
jmp	__CxxFrameHandler
align 4



sub_446098 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_446098 endp




sub_4460A0 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4460A0 endp




sub_4460A8 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_4460A8 endp


loc_4460B0:
mov	eax, offset stru_452780
jmp	__CxxFrameHandler
align 4



sub_4460BC proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_401E60
sub_4460BC endp


loc_4460C4:
mov	eax, offset stru_4527B8
jmp	__CxxFrameHandler
align 10h



sub_4460D0 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4460D0 endp




sub_4460D8 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4460D8 endp




sub_4460E0 proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_4460E0 endp


loc_4460E8:
mov	eax, offset stru_4527E0
jmp	__CxxFrameHandler
align 4



sub_4460F4 proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_4460F4 endp




sub_4460FC proc	near
push	dword ptr [ebp+0Ch] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_4460FC endp




sub_446106 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_446106 endp




sub_44610E proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_44610E endp




sub_446116 proc	near
push	dword ptr [ebp+0Ch] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_446116 endp




sub_446120 proc	near
push	dword ptr [ebp+0Ch] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_446120 endp


loc_44612A:
mov	eax, offset stru_452818
jmp	__CxxFrameHandler



sub_446134 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_446134 endp




sub_44613C proc	near
push	dword ptr [ebp+10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_44613C endp




sub_446146 proc	near
lea	ecx, [ebp+10h]
jmp	sub_4370A0
sub_446146 endp




sub_44614E proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_44614E endp




sub_446156 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_446156 endp




sub_44615E proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_44615E endp




sub_446166 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_446166 endp




sub_44616E proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_44616E endp




sub_446176 proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_446176 endp




sub_44617E proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_44617E endp




sub_446186 proc	near
push	dword ptr [ebp+0Ch] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_446186 endp




sub_446190 proc	near
push	dword ptr [ebp+0Ch] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_446190 endp


loc_44619A:
mov	eax, offset stru_452868
jmp	__CxxFrameHandler



sub_4461A4 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_4461A4 endp




sub_4461AC proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4461AC endp


loc_4461B4:
mov	eax, offset stru_4528E8
jmp	__CxxFrameHandler
align 10h



sub_4461C0 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_401E60
sub_4461C0 endp


loc_4461C8:
mov	eax, offset stru_452918
jmp	__CxxFrameHandler
align 4



sub_4461D4 proc	near
lea	ecx, [ebp-44h]
jmp	sub_40327C
sub_4461D4 endp




sub_4461DC proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_4461DC endp




sub_4461E4 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_4461E4 endp




sub_4461EC proc	near
lea	ecx, [ebp-44h]
jmp	sub_4302FB
sub_4461EC endp




sub_4461F4 proc	near
lea	ecx, [ebp-44h]
jmp	sub_4302FB
sub_4461F4 endp




sub_4461FC proc	near
lea	ecx, [ebp-44h]
jmp	sub_4302FB
sub_4461FC endp




sub_446204 proc	near
lea	ecx, [ebp-44h]
jmp	sub_4302FB
sub_446204 endp




sub_44620C proc	near
lea	ecx, [ebp-44h]
jmp	sub_4302FB
sub_44620C endp


loc_446214:
mov	eax, offset stru_452940
jmp	__CxxFrameHandler
align 10h



sub_446220 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_446220 endp


loc_446228:
mov	eax, offset stru_4529A0
jmp	__CxxFrameHandler
align 4



sub_446234 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_446234 endp


loc_44623C:
mov	eax, offset stru_4529C8
jmp	__CxxFrameHandler
align 4



sub_446248 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_446248 endp


loc_446250:
mov	eax, offset stru_4529F0
jmp	__CxxFrameHandler
align 4



sub_44625C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_44625C endp




sub_446264 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_446264 endp


loc_44626C:
mov	eax, offset stru_452A18
jmp	__CxxFrameHandler
align 4



sub_446278 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_446278 endp




sub_446280 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E56
sub_446280 endp




sub_446288 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_446288 endp




sub_446290 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_446290 endp




sub_446298 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E6C
sub_446298 endp




sub_4462A0 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4462A0 endp


loc_4462A8:
mov	eax, offset stru_452A48
jmp	__CxxFrameHandler
align 4



sub_4462B4 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4462B4 endp


loc_4462BC:
mov	eax, offset stru_452A98
jmp	__CxxFrameHandler
align 4



sub_4462C8 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_4462C8 endp


unknown_libname_26:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_452AC0
jmp	__CxxFrameHandler



sub_4462DC proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_4462DC endp


unknown_libname_27:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_452AE8
jmp	__CxxFrameHandler



sub_4462F0 proc	near
mov	ecx, [ebp-10h]
jmp	sub_406E76
sub_4462F0 endp


loc_4462F8:
mov	eax, offset stru_452B10
jmp	__CxxFrameHandler
align 4



sub_446304 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_446304 endp




sub_44630C proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_44630C endp




sub_446314 proc	near
lea	ecx, [ebp-44h]
jmp	sub_409444
sub_446314 endp


loc_44631C:
mov	eax, offset stru_452B38
jmp	__CxxFrameHandler
align 4



sub_446328 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_446328 endp


loc_446330:
mov	eax, offset stru_452B70
jmp	__CxxFrameHandler
align 4



sub_44633C proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_44633C endp




sub_446344 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_446344 endp


loc_44634C:
mov	eax, offset stru_452B98
jmp	__CxxFrameHandler
align 4



sub_446358 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_446358 endp


loc_446360:
mov	eax, offset stru_452BC8
jmp	__CxxFrameHandler
align 4



sub_44636C proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_44636C endp




sub_446376 proc	near
mov	ecx, [ebp-10h]
jmp	sub_406E76
sub_446376 endp


loc_44637E:
mov	eax, offset stru_452BF0
jmp	__CxxFrameHandler



sub_446388 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_446388 endp




sub_446392 proc	near
mov	ecx, [ebp-10h]
jmp	sub_406E76
sub_446392 endp


loc_44639A:
mov	eax, offset stru_452C20
jmp	__CxxFrameHandler



sub_4463A4 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4463A4 endp


loc_4463AC:
mov	eax, offset stru_452C50
jmp	__CxxFrameHandler
align 4



sub_4463B8 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4463B8 endp


loc_4463C0:
mov	eax, offset stru_452C78
jmp	__CxxFrameHandler
align 4



sub_4463CC proc	near
lea	ecx, [ebp-24h]
jmp	sub_40D710
sub_4463CC endp


loc_4463D4:
mov	eax, offset stru_452CA0
jmp	__CxxFrameHandler
align 10h



sub_4463E0 proc	near

; FUNCTION CHUNK AT 00421588 SIZE 00000010 BYTES

lea	ecx, [ebp-40h]
jmp	loc_421588
sub_4463E0 endp




sub_4463E8 proc	near
lea	ecx, [ebp-1Ch]
jmp	loc_401701
sub_4463E8 endp

; [00000008 BYTES: COLLAPSED FUNCTION unknown_libname_28. PRESS	KEYPAD CTRL-"+"	TO EXPAND]



sub_4463F8 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_4463F8 endp


loc_446400:
mov	eax, offset stru_452CC8
jmp	__CxxFrameHandler
align 4



sub_44640C proc	near
lea	ecx, [ebp-2Ch]
jmp	loc_421588
sub_44640C endp




sub_446414 proc	near
lea	ecx, [ebp-20h]
jmp	loc_401701
sub_446414 endp




sub_44641C proc	near
lea	ecx, [ebp-14h]
jmp	sub_41D97A
sub_44641C endp




sub_446424 proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_446424 endp


loc_44642C:
mov	eax, offset stru_452D48
jmp	__CxxFrameHandler
align 4



sub_446438 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_446438 endp




sub_446440 proc	near
lea	ecx, [ebp-1Ch]
jmp	loc_401701
sub_446440 endp




sub_446448 proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_446448 endp




sub_446450 proc	near
lea	ecx, [ebp-3Ch]
jmp	loc_421588
sub_446450 endp


loc_446458:
mov	eax, offset stru_452D88
jmp	__CxxFrameHandler
align 4



sub_446464 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_446464 endp




sub_44646C proc	near
lea	ecx, [ebp-18h]
jmp	loc_401701
sub_44646C endp




sub_446474 proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_446474 endp




sub_44647C proc	near
lea	ecx, [ebp-30h]
jmp	loc_421588
sub_44647C endp


loc_446484:
mov	eax, offset stru_452DC8
jmp	__CxxFrameHandler
align 10h



sub_446490 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_446490 endp




sub_446498 proc	near
lea	ecx, [ebp-1Ch]
jmp	loc_401701
sub_446498 endp




sub_4464A0 proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_4464A0 endp




sub_4464A8 proc	near
lea	ecx, [ebp-3Ch]
jmp	loc_421588
sub_4464A8 endp


loc_4464B0:
mov	eax, offset stru_452E08
jmp	__CxxFrameHandler
align 4



sub_4464BC proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_4464BC endp




sub_4464C4 proc	near
lea	ecx, [ebp-18h]
jmp	loc_401701
sub_4464C4 endp




sub_4464CC proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_4464CC endp




sub_4464D4 proc	near
lea	ecx, [ebp-24h]
jmp	loc_421588
sub_4464D4 endp


loc_4464DC:
mov	eax, offset stru_452E48
jmp	__CxxFrameHandler
align 4



sub_4464E8 proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_4464E8 endp


loc_4464F0:
mov	eax, offset stru_452E88
jmp	__CxxFrameHandler
align 4



sub_4464FC proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_4464FC endp


loc_446504:
mov	eax, offset stru_452EB0
jmp	__CxxFrameHandler
align 10h



sub_446510 proc	near
lea	ecx, [ebp-18h]
jmp	loc_401701
sub_446510 endp




sub_446518 proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_446518 endp




sub_446520 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_446520 endp


loc_446528:
mov	eax, offset stru_452ED8
jmp	__CxxFrameHandler
align 4



sub_446534 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_446534 endp


loc_44653C:
mov	eax, offset stru_452F10
jmp	__CxxFrameHandler
align 4



sub_446548 proc	near
lea	ecx, [ebp-14h]
jmp	loc_401701
sub_446548 endp




sub_446550 proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_446550 endp




sub_446558 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_446558 endp


loc_446560:
mov	eax, offset stru_452F38
jmp	__CxxFrameHandler
align 4



sub_44656C proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_44656C endp


loc_446574:
mov	eax, offset stru_452F70
jmp	__CxxFrameHandler
align 10h



sub_446580 proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_446580 endp


loc_446588:
mov	eax, offset stru_452F98
jmp	__CxxFrameHandler
align 4



sub_446594 proc	near
lea	ecx, [ebp-18h]
jmp	loc_401701
sub_446594 endp




sub_44659C proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_44659C endp


loc_4465A4:
mov	eax, offset stru_452FC0
jmp	__CxxFrameHandler
align 10h



sub_4465B0 proc	near
lea	ecx, [ebp-18h]
jmp	loc_401701
sub_4465B0 endp




sub_4465B8 proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_4465B8 endp


loc_4465C0:
mov	eax, offset stru_452FF0
jmp	__CxxFrameHandler
align 4



sub_4465CC proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_4465CC endp




sub_4465D4 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_4465D4 endp




sub_4465DC proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4465DC endp


loc_4465E4:
mov	eax, offset stru_453020
jmp	__CxxFrameHandler
align 10h



sub_4465F0 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4465F0 endp




sub_4465F8 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_4465F8 endp


loc_446600:
mov	eax, offset stru_453058
jmp	__CxxFrameHandler
align 4



sub_44660C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_44660C endp




sub_446614 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_446614 endp


loc_44661C:
mov	eax, offset stru_453088
jmp	__CxxFrameHandler
align 4



sub_446628 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_446628 endp




sub_446630 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_446630 endp


loc_446638:
mov	eax, offset stru_4530B8
jmp	__CxxFrameHandler
align 4



sub_446644 proc	near
lea	ecx, [ebp-60h]
jmp	sub_406E76
sub_446644 endp




sub_44664C proc	near
lea	ecx, [ebp-54h]
jmp	sub_406E76
sub_44664C endp




sub_446654 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_446654 endp




sub_44665C proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_44665C endp




sub_446664 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_446664 endp




sub_44666C proc	near
lea	ecx, [ebp-80h]
jmp	sub_40B6AF
sub_44666C endp




sub_446674 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_446674 endp




sub_44667C proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_44667C endp




sub_446684 proc	near
lea	ecx, [ebp-6Ch]
jmp	sub_406E76
sub_446684 endp




sub_44668C proc	near
lea	ecx, [ebp-80h]
jmp	sub_4302FB
sub_44668C endp


loc_446694:
mov	eax, offset stru_4530E8
jmp	__CxxFrameHandler
align 10h



sub_4466A0 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4466A0 endp


loc_4466A8:
mov	eax, offset stru_453170
jmp	__CxxFrameHandler
align 4



sub_4466B4 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4466B4 endp


loc_4466BC:
mov	eax, offset stru_453198
jmp	__CxxFrameHandler
align 4



sub_4466C8 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4466C8 endp




sub_4466D0 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_4466D0 endp


loc_4466D8:
mov	eax, offset stru_4531C0
jmp	__CxxFrameHandler
align 4



sub_4466E4 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4466E4 endp


loc_4466EC:
mov	eax, offset stru_4531F0
jmp	__CxxFrameHandler
align 4



sub_4466F8 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_4466F8 endp




sub_446700 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_446700 endp




sub_446708 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_446708 endp




sub_446710 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_446710 endp




sub_446718 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_446718 endp


loc_446720:
mov	eax, offset stru_453218
jmp	__CxxFrameHandler
align 4



sub_44672C proc	near
lea	ecx, [ebp-54h]
jmp	sub_406E76
sub_44672C endp




sub_446734 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_446734 endp




sub_44673C proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_44673C endp




sub_446744 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_446744 endp




sub_44674C proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_44674C endp




sub_446754 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_446754 endp




sub_44675C proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_44675C endp




sub_446764 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_446764 endp




sub_44676C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_44676C endp




sub_446774 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_446774 endp




sub_44677C proc	near
lea	ecx, [ebp-60h]
jmp	sub_406E76
sub_44677C endp




sub_446784 proc	near
lea	ecx, [ebp-60h]
jmp	sub_406E76
sub_446784 endp


loc_44678C:
mov	eax, offset stru_453260
jmp	__CxxFrameHandler
align 4



sub_446798 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_446798 endp


loc_4467A0:
mov	eax, offset stru_4532E8
jmp	__CxxFrameHandler
align 4



sub_4467AC proc	near
mov	ecx, [ebp-14h]
jmp	sub_40D6C5
sub_4467AC endp




sub_4467B4 proc	near
mov	ecx, [ebp-14h]
add	ecx, 8
jmp	sub_406E76
sub_4467B4 endp




sub_4467BF proc	near
mov	ecx, [ebp-14h]
add	ecx, 14h
jmp	sub_406E76
sub_4467BF endp




sub_4467CA proc	near
mov	ecx, [ebp-14h]
add	ecx, 20h
jmp	sub_406E76
sub_4467CA endp




sub_4467D5 proc	near
mov	ecx, [ebp-14h]
add	ecx, 2Ch
jmp	sub_406E76
sub_4467D5 endp




sub_4467E0 proc	near
mov	ecx, [ebp-14h]
add	ecx, 38h
jmp	sub_406E76
sub_4467E0 endp




sub_4467EB proc	near
mov	ecx, [ebp-14h]
add	ecx, 44h
jmp	sub_406E76
sub_4467EB endp




sub_4467F6 proc	near
mov	ecx, [ebp-14h]
add	ecx, 50h
jmp	sub_406E76
sub_4467F6 endp




sub_446801 proc	near
mov	ecx, [ebp-14h]
add	ecx, 5Ch
jmp	sub_406E76
sub_446801 endp




sub_44680C proc	near
mov	ecx, [ebp-14h]
add	ecx, 74h
jmp	sub_406E76
sub_44680C endp




sub_446817 proc	near
mov	ecx, [ebp-14h]
add	ecx, 0E4h
jmp	sub_404D3D
sub_446817 endp




sub_446825 proc	near
mov	ecx, [ebp-14h]
add	ecx, 0E8h
jmp	sub_404D3D
sub_446825 endp




sub_446833 proc	near
mov	ecx, [ebp-14h]
add	ecx, 0F0h
jmp	sub_4230E9
sub_446833 endp




sub_446841 proc	near
mov	ecx, [ebp-14h]
add	ecx, 1ACh
jmp	sub_406E76
sub_446841 endp




sub_44684F proc	near
mov	ecx, [ebp-14h]
add	ecx, 1B8h
jmp	sub_406E76
sub_44684F endp


loc_44685D:
mov	eax, offset stru_453310
jmp	__CxxFrameHandler
align 4



sub_446868 proc	near
mov	ecx, [ebp-10h]
add	ecx, 38h
jmp	sub_406E76
sub_446868 endp




sub_446873 proc	near
mov	ecx, [ebp-10h]
add	ecx, 44h
jmp	sub_406E76
sub_446873 endp




sub_44687E proc	near
mov	ecx, [ebp-10h]
add	ecx, 50h
jmp	sub_40327C
sub_44687E endp




sub_446889 proc	near
mov	ecx, [ebp-10h]
add	ecx, 64h
jmp	sub_406E76
sub_446889 endp




sub_446894 proc	near
mov	ecx, [ebp-10h]
add	ecx, 70h
jmp	sub_406E76
sub_446894 endp




sub_44689F proc	near
mov	ecx, [ebp-10h]
add	ecx, 7Ch
jmp	sub_406E76
sub_44689F endp


loc_4468AA:
mov	eax, offset stru_4533A8
jmp	__CxxFrameHandler



sub_4468B4 proc	near
mov	ecx, [ebp-10h]
add	ecx, 38h
jmp	sub_406E76
sub_4468B4 endp




sub_4468BF proc	near
mov	ecx, [ebp-10h]
add	ecx, 44h
jmp	sub_406E76
sub_4468BF endp




sub_4468CA proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_4468CA endp


loc_4468D2:
mov	eax, offset stru_4533F8
jmp	__CxxFrameHandler



sub_4468DC proc	near
mov	ecx, [ebp-10h]
jmp	sub_40D6C5
sub_4468DC endp




sub_4468E4 proc	near
mov	ecx, [ebp-10h]
add	ecx, 8
jmp	sub_406E76
sub_4468E4 endp




sub_4468EF proc	near
mov	ecx, [ebp-10h]
add	ecx, 14h
jmp	sub_406E76
sub_4468EF endp




sub_4468FA proc	near
mov	ecx, [ebp-10h]
add	ecx, 20h
jmp	sub_406E76
sub_4468FA endp




sub_446905 proc	near
mov	ecx, [ebp-10h]
add	ecx, 2Ch
jmp	sub_406E76
sub_446905 endp




sub_446910 proc	near
mov	ecx, [ebp-10h]
add	ecx, 38h
jmp	sub_406E76
sub_446910 endp




sub_44691B proc	near
mov	ecx, [ebp-10h]
add	ecx, 44h
jmp	sub_406E76
sub_44691B endp




sub_446926 proc	near
mov	ecx, [ebp-10h]
add	ecx, 50h
jmp	sub_406E76
sub_446926 endp




sub_446931 proc	near
mov	ecx, [ebp-10h]
add	ecx, 5Ch
jmp	sub_406E76
sub_446931 endp




sub_44693C proc	near
mov	ecx, [ebp-10h]
add	ecx, 74h
jmp	sub_406E76
sub_44693C endp




sub_446947 proc	near
mov	ecx, [ebp-10h]
add	ecx, 0E4h
jmp	sub_404D3D
sub_446947 endp




sub_446955 proc	near
mov	ecx, [ebp-10h]
add	ecx, 0E8h
jmp	sub_404D3D
sub_446955 endp




sub_446963 proc	near
mov	ecx, [ebp-10h]
add	ecx, 0F0h
jmp	sub_4230E9
sub_446963 endp




sub_446971 proc	near
mov	ecx, [ebp-10h]
add	ecx, 1ACh
jmp	sub_406E76
sub_446971 endp




sub_44697F proc	near
mov	ecx, [ebp-10h]
add	ecx, 1B8h
jmp	sub_406E76
sub_44697F endp


loc_44698D:
mov	eax, offset stru_453430
jmp	__CxxFrameHandler
align 4



sub_446998 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_446998 endp




sub_4469A0 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4469A0 endp


loc_4469A8:
mov	eax, offset stru_4534C8
jmp	__CxxFrameHandler
align 4



sub_4469B4 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4469B4 endp




sub_4469BC proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4469BC endp




sub_4469C4 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4469C4 endp




sub_4469CC proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4469CC endp




sub_4469D4 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4469D4 endp




sub_4469DC proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_4469DC endp


loc_4469E4:
mov	eax, offset stru_4534F8
jmp	__CxxFrameHandler
align 10h



sub_4469F0 proc	near
lea	ecx, [ebp-60h]
jmp	sub_406E76
sub_4469F0 endp




sub_4469F8 proc	near
lea	ecx, [ebp-54h]
jmp	sub_406E76
sub_4469F8 endp




sub_446A00 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_446A00 endp




sub_446A08 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_446A08 endp




sub_446A10 proc	near
lea	ecx, [ebp-60h]
jmp	sub_406E76
sub_446A10 endp




sub_446A18 proc	near
lea	ecx, [ebp-60h]
jmp	sub_406E76
sub_446A18 endp




sub_446A20 proc	near
lea	ecx, [ebp-78h]
jmp	sub_406E76
sub_446A20 endp




sub_446A28 proc	near
lea	ecx, [ebp-6Ch]
jmp	sub_406E76
sub_446A28 endp


loc_446A30:
mov	eax, offset stru_453548
jmp	__CxxFrameHandler
align 4



sub_446A3C proc	near
lea	ecx, [ebp-10h]
jmp	loc_401701
sub_446A3C endp


loc_446A44:
mov	eax, offset stru_4535B0
jmp	__CxxFrameHandler
align 10h



sub_446A50 proc	near
lea	ecx, [ebp-10h]
jmp	loc_401701
sub_446A50 endp


loc_446A58:
mov	eax, offset stru_4535D8
jmp	__CxxFrameHandler
align 4



sub_446A64 proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_406E76
sub_446A64 endp




sub_446A6C proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_446A6C endp




sub_446A74 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_446A74 endp




sub_446A7C proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_446A7C endp




sub_446A84 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_446A84 endp


loc_446A8C:
mov	eax, offset stru_453600
jmp	__CxxFrameHandler
align 4



sub_446A98 proc	near

; FUNCTION CHUNK AT 00424767 SIZE 0000000F BYTES

lea	ecx, [ebp-20h]
jmp	loc_424767
sub_446A98 endp


loc_446AA0:
mov	eax, offset stru_453648
jmp	__CxxFrameHandler
align 4



sub_446AAC proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_446AAC endp




sub_446AB4 proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_446AB4 endp




sub_446ABC proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_446ABC endp




sub_446AC4 proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_446AC4 endp




sub_446ACC proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_446ACC endp




sub_446AD4 proc	near
lea	ecx, [ebp-14h]
jmp	loc_401701
sub_446AD4 endp


loc_446ADC:
mov	eax, offset stru_4536A8
jmp	__CxxFrameHandler
align 4



sub_446AE8 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_446AE8 endp




sub_446AF0 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_446AF0 endp




sub_446AF8 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_446AF8 endp




sub_446B00 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_446B00 endp


loc_446B08:
mov	eax, offset stru_4536F8
jmp	__CxxFrameHandler
align 4



sub_446B14 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_446B14 endp




sub_446B1C proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_446B1C endp


loc_446B24:
mov	eax, offset stru_453738
jmp	__CxxFrameHandler
align 10h



sub_446B30 proc	near
lea	ecx, [ebp-24h]
jmp	sub_40327C
sub_446B30 endp




sub_446B38 proc	near
lea	ecx, [ebp-10h]
jmp	loc_401701
sub_446B38 endp




sub_446B40 proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_446B40 endp


loc_446B48:
mov	eax, offset stru_453768
jmp	__CxxFrameHandler
align 4



sub_446B54 proc	near
lea	ecx, [ebp-10h]
jmp	sub_404D3D
sub_446B54 endp


loc_446B5C:
mov	eax, offset stru_4537A0
jmp	__CxxFrameHandler
align 4

loc_446B68:
mov	eax, offset stru_4537C8
jmp	__CxxFrameHandler
align 4



sub_446B74 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_446B74 endp




sub_446B7C proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_446B7C endp


loc_446B84:
mov	eax, offset stru_453820
jmp	__CxxFrameHandler
align 10h
lea	ecx, [ebp-18h]
jmp	loc_405175
lea	ecx, [ebp-30h]
jmp	sub_406E76
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
lea	ecx, [ebp-48h]
jmp	sub_406E76
lea	ecx, [ebp-48h]
jmp	sub_406E76

loc_446BB8:
mov	eax, offset unk_453850
jmp	__CxxFrameHandler
align 4



sub_446BC4 proc	near
lea	ecx, [ebp-10h]
jmp	loc_401701
sub_446BC4 endp


loc_446BCC:
mov	eax, offset stru_453900
jmp	__CxxFrameHandler
align 4



sub_446BD8 proc	near
lea	ecx, [ebp-10h]
jmp	loc_401701
sub_446BD8 endp


loc_446BE0:
mov	eax, offset stru_453928
jmp	__CxxFrameHandler
align 4



sub_446BEC proc	near
lea	ecx, [ebp-10h]
jmp	loc_401701
sub_446BEC endp


loc_446BF4:
mov	eax, offset stru_453950
jmp	__CxxFrameHandler
align 10h



sub_446C00 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_446C00 endp


loc_446C08:
mov	eax, offset stru_453978
jmp	__CxxFrameHandler
align 4



sub_446C14 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_446C14 endp




sub_446C1C proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_446C1C endp




sub_446C24 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_446C24 endp


loc_446C2C:
mov	eax, offset stru_4539A0
jmp	__CxxFrameHandler
align 4



sub_446C38 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_446C38 endp


loc_446C40:
mov	eax, offset stru_4539D8
jmp	__CxxFrameHandler
align 4



sub_446C4C proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_446C4C endp




sub_446C54 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_446C54 endp




sub_446C5C proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_446C5C endp




sub_446C64 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_446C64 endp


loc_446C6C:
mov	eax, offset stru_453A00
jmp	__CxxFrameHandler
align 4



sub_446C78 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_446C78 endp


loc_446C80:
mov	eax, offset stru_453A40
jmp	__CxxFrameHandler
align 4



sub_446C8C proc	near
lea	ecx, [ebp-74h]
jmp	sub_406E76
sub_446C8C endp




sub_446C94 proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_446C94 endp




sub_446C9C proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_446C9C endp




sub_446CA4 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_446CA4 endp




sub_446CAC proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_446CAC endp




sub_446CB4 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_446CB4 endp




sub_446CBC proc	near
lea	ecx, [ebp-5Ch]
jmp	sub_406E76
sub_446CBC endp




sub_446CC4 proc	near
lea	ecx, [ebp-68h]
jmp	sub_406E76
sub_446CC4 endp


loc_446CCC:
mov	eax, offset stru_453A68
jmp	__CxxFrameHandler
align 4



sub_446CD8 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_446CD8 endp




sub_446CE0 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_446CE0 endp


loc_446CE8:
mov	eax, offset stru_453AD0
jmp	__CxxFrameHandler
align 4



sub_446CF4 proc	near
lea	ecx, [ebp-14h]
jmp	sub_4059B3
sub_446CF4 endp




sub_446CFC proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_446CFC endp




sub_446D04 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_4370A0
sub_446D04 endp




sub_446D0C proc	near
lea	ecx, [ebp-18h]
jmp	loc_405586
sub_446D0C endp




sub_446D14 proc	near
mov	eax, [ebp-20h]
and	eax, 1
test	eax, eax
jz	locret_446D2A
mov	ecx, [ebp-28h]
jmp	sub_406E76

locret_446D2A:
retn
sub_446D14 endp




sub_446D2B proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_446D2B endp




sub_446D33 proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_40327C
sub_446D33 endp




sub_446D3B proc	near
lea	ecx, [ebp+8]
jmp	loc_405586
sub_446D3B endp




sub_446D43 proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_4302FB
sub_446D43 endp




sub_446D4B proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_4302FB
sub_446D4B endp


loc_446D53:
mov	eax, offset stru_453B00
jmp	__CxxFrameHandler
align 10h



sub_446D60 proc	near
lea	ecx, [ebp-38h]
jmp	sub_40327C
sub_446D60 endp




sub_446D68 proc	near
lea	ecx, [ebp-9Ch]
jmp	sub_409887
sub_446D68 endp




sub_446D73 proc	near
lea	ecx, [ebp-0A8h]
jmp	sub_406E76
sub_446D73 endp




sub_446D7E proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_446D7E endp




sub_446D86 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_446D86 endp




sub_446D8E proc	near
lea	ecx, [ebp-38h]
jmp	sub_4302FB
sub_446D8E endp


loc_446D96:
mov	eax, offset stru_453B70
jmp	__CxxFrameHandler



sub_446DA0 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_446DA0 endp


loc_446DA8:
mov	eax, offset stru_453BC0
jmp	__CxxFrameHandler
align 4



sub_446DB4 proc	near
mov	ecx, [ebp-10h]
jmp	sub_406E76
sub_446DB4 endp




sub_446DBC proc	near
mov	ecx, [ebp-10h]
add	ecx, 0Ch
jmp	sub_406E76
sub_446DBC endp




sub_446DC7 proc	near
mov	ecx, [ebp-10h]
add	ecx, 38h
jmp	sub_406E76
sub_446DC7 endp


loc_446DD2:
mov	eax, offset stru_453BE8
jmp	__CxxFrameHandler



sub_446DDC proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_401E60
sub_446DDC endp


loc_446DE4:
mov	eax, offset stru_453C20
jmp	__CxxFrameHandler
align 10h



sub_446DF0 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_446DF0 endp




sub_446DFA proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_446DFA endp




sub_446E02 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_446E02 endp


loc_446E0A:
mov	eax, offset stru_453C48
jmp	__CxxFrameHandler



sub_446E14 proc	near
lea	ecx, [ebp-44h]
jmp	sub_401E60
sub_446E14 endp




sub_446E1C proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_446E1C endp




sub_446E24 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_446E24 endp




sub_446E2C proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_446E2C endp


loc_446E34:
mov	eax, offset stru_453C80
jmp	__CxxFrameHandler
align 10h



sub_446E40 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_446E40 endp




sub_446E48 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_446E48 endp




sub_446E50 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_446E50 endp


loc_446E58:
mov	eax, offset stru_453CF8
jmp	__CxxFrameHandler
align 4



sub_446E64 proc	near
lea	ecx, [ebp-28h]
jmp	sub_407E2B
sub_446E64 endp




sub_446E6C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_446E6C endp


loc_446E74:
mov	eax, offset stru_453D30
jmp	__CxxFrameHandler
align 10h



sub_446E80 proc	near
lea	ecx, [ebp-5Ch]
jmp	sub_406E76
sub_446E80 endp




sub_446E88 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_446E88 endp




sub_446E90 proc	near
lea	ecx, [ebp-68h]
jmp	sub_406E76
sub_446E90 endp




sub_446E98 proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_446E98 endp




sub_446EA0 proc	near
lea	ecx, [ebp-74h]
jmp	sub_406E76
sub_446EA0 endp




sub_446EA8 proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_446EA8 endp




sub_446EB0 proc	near
lea	ecx, [ebp+0Ch]
jmp	loc_405586
sub_446EB0 endp


loc_446EB8:
mov	eax, offset stru_453D60
jmp	__CxxFrameHandler
align 4



sub_446EC4 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_407E2B
sub_446EC4 endp




sub_446ECC proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_407E2B
sub_446ECC endp




sub_446ED4 proc	near
lea	ecx, [ebp-10h]
jmp	loc_42716F
sub_446ED4 endp


loc_446EDC:
mov	eax, offset stru_453DB8
jmp	__CxxFrameHandler
align 4



sub_446EE8 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_446EE8 endp


unknown_libname_29:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_453DF0
jmp	__CxxFrameHandler



sub_446EFC proc	near
mov	ecx, [ebp-10h]
jmp	sub_406E76
sub_446EFC endp




sub_446F04 proc	near
mov	ecx, [ebp-10h]
add	ecx, 0Ch
jmp	sub_406E76
sub_446F04 endp




sub_446F0F proc	near
mov	ecx, [ebp-10h]
add	ecx, 38h
jmp	sub_406E76
sub_446F0F endp


loc_446F1A:
mov	eax, offset stru_453E18
jmp	__CxxFrameHandler



sub_446F24 proc	near
lea	ecx, [ebp-68h]
jmp	sub_42EEC8
sub_446F24 endp




sub_446F2C proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_446F2C endp




sub_446F34 proc	near
lea	ecx, [ebp-0ACh]
jmp	sub_42EEC8
sub_446F34 endp




sub_446F3F proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_446F3F endp




sub_446F47 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_446F47 endp


loc_446F4F:
mov	eax, offset stru_453E50
jmp	__CxxFrameHandler
align 4



sub_446F5C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_446F5C endp


loc_446F64:
mov	eax, offset stru_453E98
jmp	__CxxFrameHandler
align 10h



sub_446F70 proc	near
lea	ecx, [ebp-14h]
jmp	sub_4275B3
sub_446F70 endp




sub_446F78 proc	near
lea	ecx, [ebp-70h]
jmp	sub_4098AE
sub_446F78 endp




sub_446F80 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_446F80 endp


loc_446F88:
mov	eax, offset stru_453EC0
jmp	__CxxFrameHandler
align 4



sub_446F94 proc	near
mov	ecx, [ebp-10h]
jmp	sub_42EEC8
sub_446F94 endp


loc_446F9C:
mov	eax, offset stru_453EF8
jmp	__CxxFrameHandler
align 4



sub_446FA8 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_401E60
sub_446FA8 endp


loc_446FB0:
mov	eax, offset stru_453F20
jmp	__CxxFrameHandler
align 4



sub_446FBC proc	near
push	dword ptr [ebp+0Ch] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_446FBC endp




sub_446FC6 proc	near
lea	ecx, [ebp+0Ch]
jmp	sub_4370A0
sub_446FC6 endp




sub_446FCE proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_446FCE endp




sub_446FD6 proc	near
push	dword ptr [ebp+0Ch] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_446FD6 endp




sub_446FE0 proc	near
lea	ecx, [ebp+0Ch]
jmp	sub_4370A0
sub_446FE0 endp




sub_446FE8 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_446FE8 endp


loc_446FF0:
mov	eax, offset stru_453F48
jmp	__CxxFrameHandler
align 4



sub_446FFC proc	near
lea	ecx, [ebp-5Ch]
jmp	sub_42EEC8
sub_446FFC endp




sub_447004 proc	near
push	dword ptr [ebp+8] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_447004 endp




sub_44700E proc	near
lea	ecx, [ebp+8]
jmp	sub_4370A0
sub_44700E endp




sub_447016 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_447016 endp


loc_44701E:
mov	eax, offset stru_453F98
jmp	__CxxFrameHandler



sub_447028 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_401E60
sub_447028 endp


loc_447030:
mov	eax, offset stru_453FD8
jmp	__CxxFrameHandler
align 4



sub_44703C proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_44703C endp




sub_447046 proc	near
mov	ecx, [ebp-10h]
jmp	sub_42EEC8
sub_447046 endp


loc_44704E:
mov	eax, offset stru_454000
jmp	__CxxFrameHandler



sub_447058 proc	near
mov	ecx, [ebp-10h]
add	ecx, 14h
jmp	sub_406E76
sub_447058 endp




sub_447063 proc	near
mov	ecx, [ebp-10h]
add	ecx, 20h
jmp	sub_406E76
sub_447063 endp




sub_44706E proc	near
mov	ecx, [ebp-10h]
add	ecx, 2Ch
jmp	sub_406E76
sub_44706E endp


loc_447079:
mov	eax, offset stru_454030
jmp	__CxxFrameHandler
align 4



sub_447084 proc	near
lea	ecx, [ebp-58h]
jmp	sub_407E2B
sub_447084 endp




sub_44708C proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_44708C endp




sub_447094 proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_447094 endp




sub_44709C proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_44709C endp




sub_4470A4 proc	near
lea	ecx, [ebp-6Ch]
jmp	sub_427FC3
sub_4470A4 endp




sub_4470AC proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_4470AC endp




sub_4470B4 proc	near
lea	ecx, [ebp-6Ch]
jmp	sub_4302FB
sub_4470B4 endp




sub_4470BC proc	near
lea	ecx, [ebp-84h]
jmp	sub_406E76
sub_4470BC endp




sub_4470C7 proc	near
lea	ecx, [ebp-84h]
jmp	sub_409444
sub_4470C7 endp




sub_4470D2 proc	near
lea	ecx, [ebp-48h]
jmp	sub_4408D4
sub_4470D2 endp




sub_4470DA proc	near
lea	ecx, [ebp-6Ch]
jmp	sub_4302FB
sub_4470DA endp




sub_4470E2 proc	near
lea	ecx, [ebp-6Ch]
jmp	sub_4302FB
sub_4470E2 endp


loc_4470EA:
mov	eax, offset stru_454068
jmp	__CxxFrameHandler



sub_4470F4 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_4470F4 endp


loc_4470FC:
mov	eax, offset stru_4540E8
jmp	__CxxFrameHandler
align 4



sub_447108 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_447108 endp




sub_447110 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_447110 endp


loc_447118:
mov	eax, offset stru_454110
jmp	__CxxFrameHandler
align 4



sub_447124 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_447124 endp




sub_44712C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_44712C endp


loc_447134:
mov	eax, offset stru_454148
jmp	__CxxFrameHandler
align 10h



sub_447140 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_447140 endp


loc_447148:
mov	eax, offset stru_4541B8
jmp	__CxxFrameHandler
align 4



sub_447154 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_447154 endp


loc_44715C:
mov	eax, offset stru_4541E0
jmp	__CxxFrameHandler
align 4



sub_447168 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_447168 endp




sub_447170 proc	near
lea	ecx, [ebp-50h]
jmp	sub_409444
sub_447170 endp




sub_447178 proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_447178 endp




sub_447180 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_447180 endp


loc_447188:
mov	eax, offset stru_454208
jmp	__CxxFrameHandler
align 4



sub_447194 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_447194 endp


loc_44719C:
mov	eax, offset stru_454248
jmp	__CxxFrameHandler
align 4



sub_4471A8 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_4471A8 endp




sub_4471B2 proc	near
mov	ecx, [ebp-10h]
jmp	sub_406E76
sub_4471B2 endp


loc_4471BA:
mov	eax, offset stru_454270
jmp	__CxxFrameHandler



sub_4471C4 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_4471C4 endp


loc_4471CC:
mov	eax, offset stru_4542A0
jmp	__CxxFrameHandler
align 4



sub_4471D8 proc	near
lea	ecx, [ebp-20h]
jmp	sub_40327C
sub_4471D8 endp




sub_4471E0 proc	near
lea	ecx, [ebp-20h]
jmp	sub_4302FB
sub_4471E0 endp




sub_4471E8 proc	near
lea	ecx, [ebp-20h]
jmp	sub_4302FB
sub_4471E8 endp


loc_4471F0:
mov	eax, offset stru_4542C8
jmp	__CxxFrameHandler
align 4



sub_4471FC proc	near
lea	ecx, [ebp-20h]
jmp	sub_40327C
sub_4471FC endp




sub_447204 proc	near
lea	ecx, [ebp-20h]
jmp	sub_4302FB
sub_447204 endp


loc_44720C:
mov	eax, offset stru_454300
jmp	__CxxFrameHandler
align 4



sub_447218 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_447218 endp


loc_447220:
mov	eax, offset stru_454330
jmp	__CxxFrameHandler
align 4



sub_44722C proc	near
lea	ecx, [ebp-14h]
jmp	sub_42928D
sub_44722C endp




sub_447234 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_447234 endp




sub_44723C proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_44723C endp




sub_447244 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_447244 endp


loc_44724C:
mov	eax, offset stru_454358
jmp	__CxxFrameHandler
align 4



sub_447258 proc	near
lea	ecx, [ebp-10h]
jmp	sub_4110C1
sub_447258 endp




sub_447260 proc	near
lea	ecx, [ebp-10h]
jmp	loc_411B87
sub_447260 endp


loc_447268:
mov	eax, offset stru_454398
jmp	__CxxFrameHandler
align 4



sub_447274 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_447274 endp




sub_44727C proc	near
lea	ecx, [ebp-0E8h]
jmp	sub_4302FB
sub_44727C endp




sub_447287 proc	near

; FUNCTION CHUNK AT 004298BF SIZE 00000015 BYTES

lea	ecx, [ebp-0E8h]
jmp	loc_4298BF
sub_447287 endp




sub_447292 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_447292 endp




sub_44729A proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_44729A endp




sub_4472A2 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_4472A2 endp




sub_4472AA proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4472AA endp




sub_4472B2 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_4472B2 endp




sub_4472BA proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4472BA endp




sub_4472C2 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_4472C2 endp




sub_4472CA proc	near
lea	ecx, [ebp-108h]
jmp	loc_4298BF
sub_4472CA endp


loc_4472D5:
mov	eax, offset stru_4543C8
jmp	__CxxFrameHandler
align 10h



sub_4472E0 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_4472E0 endp


loc_4472E8:
mov	eax, offset stru_454440
jmp	__CxxFrameHandler
align 4



sub_4472F4 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4472F4 endp


loc_4472FC:
mov	eax, offset stru_454468
jmp	__CxxFrameHandler
align 4



sub_447308 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_447308 endp




sub_447310 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_447310 endp


loc_447318:
mov	eax, offset stru_454490
jmp	__CxxFrameHandler
align 4



sub_447324 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_447324 endp




sub_44732C proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_44732C endp


loc_447334:
mov	eax, offset stru_4544C0
jmp	__CxxFrameHandler
align 10h



sub_447340 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_447340 endp




sub_447348 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_447348 endp


loc_447350:
mov	eax, offset stru_4544F0
jmp	__CxxFrameHandler
align 4



sub_44735C proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_44735C endp


loc_447364:
mov	eax, offset stru_454520
jmp	__CxxFrameHandler
align 10h



sub_447370 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_447370 endp


loc_447378:
mov	eax, offset stru_454548
jmp	__CxxFrameHandler
align 4



sub_447384 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_447384 endp


loc_44738C:
mov	eax, offset stru_454570
jmp	__CxxFrameHandler
align 4



sub_447398 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_447398 endp


loc_4473A0:
mov	eax, offset stru_454598
jmp	__CxxFrameHandler
align 4



sub_4473AC proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_4473AC endp




sub_4473B4 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4473B4 endp




sub_4473BC proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4473BC endp


loc_4473C4:
mov	eax, offset stru_4545C0
jmp	__CxxFrameHandler
align 10h



sub_4473D0 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4473D0 endp


loc_4473D8:
mov	eax, offset stru_4545F8
jmp	__CxxFrameHandler
align 4



sub_4473E4 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4473E4 endp




sub_4473EC proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_4473EC endp




sub_4473F4 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_4473F4 endp




sub_4473FC proc	near
lea	ecx, [ebp-68h]
jmp	loc_407A4A
sub_4473FC endp




sub_447404 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_447404 endp


loc_44740C:
mov	eax, offset stru_454620
jmp	__CxxFrameHandler
align 4



sub_447418 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_447418 endp


loc_447420:
mov	eax, offset stru_454668
jmp	__CxxFrameHandler
align 4



sub_44742C proc	near
lea	ecx, [ebp-88h]
jmp	loc_407A4A
sub_44742C endp




sub_447437 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_447437 endp




sub_44743F proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_44743F endp




sub_447447 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_447447 endp




sub_44744F proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_44744F endp




sub_447457 proc	near
lea	ecx, [ebp-50h]
jmp	sub_407709
sub_447457 endp




sub_44745F proc	near
lea	ecx, [ebp-50h]
jmp	sub_4078D8
sub_44745F endp


loc_447467:
mov	eax, offset stru_454690
jmp	__CxxFrameHandler
align 4



sub_447474 proc	near
lea	ecx, [ebp+8]
jmp	sub_406E76
sub_447474 endp




sub_44747C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_44747C endp




sub_447484 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_447484 endp


loc_44748C:
mov	eax, offset stru_454700
jmp	__CxxFrameHandler
align 4



sub_447498 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_447498 endp




sub_4474A0 proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_406E76
sub_4474A0 endp




sub_4474A8 proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_406E76
sub_4474A8 endp




sub_4474B0 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_4474B0 endp




sub_4474B8 proc	near
lea	ecx, [ebp-58h]
jmp	sub_406E76
sub_4474B8 endp




sub_4474C0 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_4474C0 endp




sub_4474C8 proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_406E76
sub_4474C8 endp


loc_4474D0:
mov	eax, offset stru_454738
jmp	__CxxFrameHandler
align 4



sub_4474DC proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_4474DC endp




sub_4474E4 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_4474E4 endp




sub_4474EC proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_4474EC endp


loc_4474F4:
mov	eax, offset stru_4547A0
jmp	__CxxFrameHandler
align 10h



sub_447500 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_447500 endp


loc_447508:
mov	eax, offset stru_4547D8
jmp	__CxxFrameHandler
align 4



sub_447514 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_447514 endp


loc_44751C:
mov	eax, offset stru_454800
jmp	__CxxFrameHandler
align 4



sub_447528 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_447528 endp




sub_447530 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_447530 endp


loc_447538:
mov	eax, offset stru_454828
jmp	__CxxFrameHandler
align 4



sub_447544 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_447544 endp




sub_44754C proc	near
mov	eax, [ebp-10h]
and	eax, 1
test	eax, eax
jz	locret_447562
lea	ecx, [ebp-38h]
jmp	sub_406E76

locret_447562:
retn
sub_44754C endp




sub_447563 proc	near
mov	eax, [ebp-10h]
and	eax, 2
test	eax, eax
jz	locret_447579
lea	ecx, [ebp-2Ch]
jmp	sub_406E76

locret_447579:
retn
sub_447563 endp




sub_44757A proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_44757A endp


loc_447582:
mov	eax, offset stru_454858
jmp	__CxxFrameHandler



sub_44758C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_44758C endp


loc_447594:
mov	eax, offset stru_454898
jmp	__CxxFrameHandler
align 10h



sub_4475A0 proc	near

; FUNCTION CHUNK AT 0042AF60 SIZE 00000030 BYTES

lea	ecx, [ebp-1Ch]
jmp	loc_42AF60
sub_4475A0 endp




sub_4475A8 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4475A8 endp




sub_4475B0 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4475B0 endp




sub_4475B8 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4475B8 endp


loc_4475C0:
mov	eax, offset stru_4548C0
jmp	__CxxFrameHandler
align 4



sub_4475CC proc	near
mov	ecx, [ebp-10h]
add	ecx, 4
jmp	sub_406E76
sub_4475CC endp


unknown_libname_30:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_454900
jmp	__CxxFrameHandler
align 4



sub_4475E4 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4475E4 endp




sub_4475EC proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_4475EC endp


loc_4475F4:
mov	eax, offset stru_454928
jmp	__CxxFrameHandler
align 10h



sub_447600 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_447600 endp




sub_447608 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_447608 endp


loc_447610:
mov	eax, offset stru_454958
jmp	__CxxFrameHandler
align 4



sub_44761C proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_407E2B
sub_44761C endp




sub_447624 proc	near
lea	ecx, [ebp+8]
jmp	sub_407709
sub_447624 endp


loc_44762C:
mov	eax, offset stru_454988
jmp	__CxxFrameHandler
align 4



sub_447638 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_407E2B
sub_447638 endp




sub_447640 proc	near
lea	ecx, [ebp+8]
jmp	sub_407709
sub_447640 endp


loc_447648:
mov	eax, offset stru_4549B8
jmp	__CxxFrameHandler
align 4



sub_447654 proc	near
lea	ecx, [ebp-44h]
jmp	loc_407A4A
sub_447654 endp


loc_44765C:
mov	eax, offset stru_4549E8
jmp	__CxxFrameHandler
align 4



sub_447668 proc	near
lea	ecx, [ebp-44h]
jmp	loc_407A4A
sub_447668 endp


loc_447670:
mov	eax, offset stru_454A10
jmp	__CxxFrameHandler
align 4



sub_44767C proc	near
lea	ecx, [ebp-44h]
jmp	loc_407A4A
sub_44767C endp


loc_447684:
mov	eax, offset stru_454A38
jmp	__CxxFrameHandler
align 10h



sub_447690 proc	near
lea	ecx, [ebp-44h]
jmp	loc_407A4A
sub_447690 endp


loc_447698:
mov	eax, offset stru_454A60
jmp	__CxxFrameHandler
align 4



sub_4476A4 proc	near
lea	ecx, [ebp-44h]
jmp	loc_407A4A
sub_4476A4 endp


loc_4476AC:
mov	eax, offset stru_454A88
jmp	__CxxFrameHandler
align 4



sub_4476B8 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_4476B8 endp




sub_4476C0 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4476C0 endp


loc_4476C8:
mov	eax, offset stru_454AB0
jmp	__CxxFrameHandler
align 4



sub_4476D4 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_4476D4 endp




sub_4476DC proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_4476DC endp


loc_4476E4:
mov	eax, offset stru_454AE0
jmp	__CxxFrameHandler
align 10h



sub_4476F0 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_4476F0 endp




sub_4476F8 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_4476F8 endp




sub_447700 proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_412870
sub_447700 endp




sub_447708 proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_447708 endp




sub_447710 proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_4302FB
sub_447710 endp


loc_447718:
mov	eax, offset stru_454B10
jmp	__CxxFrameHandler
align 4



sub_447724 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_447724 endp




sub_44772C proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_44772C endp




sub_447734 proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_447734 endp




sub_44773C proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_44773C endp


loc_447744:
mov	eax, offset stru_454B58
jmp	__CxxFrameHandler
align 10h



sub_447750 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_447750 endp




sub_447758 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_447758 endp




sub_447760 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_447760 endp


loc_447768:
mov	eax, offset stru_454B98
jmp	__CxxFrameHandler
align 4



sub_447774 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_447774 endp




sub_44777C proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_44777C endp


loc_447784:
mov	eax, offset stru_454BD0
jmp	__CxxFrameHandler
align 10h



sub_447790 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_447790 endp




sub_447798 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_447798 endp


loc_4477A0:
mov	eax, offset stru_454C00
jmp	__CxxFrameHandler
align 4



sub_4477AC proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4477AC endp




sub_4477B4 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_4477B4 endp


loc_4477BC:
mov	eax, offset stru_454C30
jmp	__CxxFrameHandler
align 4



sub_4477C8 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4477C8 endp




sub_4477D0 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_4477D0 endp


loc_4477D8:
mov	eax, offset stru_454C60
jmp	__CxxFrameHandler
align 4



sub_4477E4 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4477E4 endp


loc_4477EC:
mov	eax, offset stru_454C90
jmp	__CxxFrameHandler
align 4



sub_4477F8 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_4477F8 endp




sub_447800 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_447800 endp




sub_447808 proc	near
lea	ecx, [ebp-9Ch]
jmp	sub_406E76
sub_447808 endp




sub_447813 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_447813 endp




sub_44781B proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_44781B endp




sub_447823 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_447823 endp




sub_44782B proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_44782B endp


loc_447833:
mov	eax, offset stru_454CB8
jmp	__CxxFrameHandler
align 10h



sub_447840 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_447840 endp




sub_447848 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_447848 endp




sub_447850 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_447850 endp


loc_447858:
mov	eax, offset stru_454D28
jmp	__CxxFrameHandler
align 4



sub_447864 proc	near
lea	ecx, [ebp-10h]
jmp	loc_43316D
sub_447864 endp


loc_44786C:
mov	eax, offset stru_454D60
jmp	__CxxFrameHandler
align 4



sub_447878 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_447878 endp


loc_447880:
mov	eax, offset stru_454D98
jmp	__CxxFrameHandler
align 4



sub_44788C proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_44788C endp


loc_447894:
mov	eax, offset stru_454DC0
jmp	__CxxFrameHandler
align 10h



sub_4478A0 proc	near
mov	eax, [ebp-10h]
and	eax, 1
test	eax, eax
jz	locret_4478B6
lea	ecx, [ebp-28h]
jmp	sub_406E76

locret_4478B6:
retn
sub_4478A0 endp




sub_4478B7 proc	near
mov	eax, [ebp-10h]
and	eax, 2
test	eax, eax
jz	locret_4478CD
lea	ecx, [ebp-40h]
jmp	sub_406E76

locret_4478CD:
retn
sub_4478B7 endp




sub_4478CE proc	near
mov	eax, [ebp-10h]
and	eax, 4
test	eax, eax
jz	locret_4478E4
lea	ecx, [ebp-1Ch]
jmp	sub_406E76

locret_4478E4:
retn
sub_4478CE endp


loc_4478E5:
mov	eax, offset stru_454DE8
jmp	__CxxFrameHandler
align 10h



sub_4478F0 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_4478F0 endp




sub_4478F8 proc	near
mov	eax, [ebp-10h]
and	eax, 1
test	eax, eax
jz	locret_44790E
lea	ecx, [ebp-2Ch]
jmp	sub_406E76

locret_44790E:
retn
sub_4478F8 endp




sub_44790F proc	near
mov	eax, [ebp-10h]
and	eax, 2
test	eax, eax
jz	locret_447925
lea	ecx, [ebp-38h]
jmp	sub_406E76

locret_447925:
retn
sub_44790F endp




sub_447926 proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_447926 endp


loc_44792E:
mov	eax, offset stru_454E20
jmp	__CxxFrameHandler



sub_447938 proc	near
lea	ecx, [ebp-20h]
jmp	sub_42DA76
sub_447938 endp


loc_447940:
mov	eax, offset stru_454E60
jmp	__CxxFrameHandler
align 4



sub_44794C proc	near
lea	ecx, [ebp-28h]
jmp	loc_421588
sub_44794C endp




sub_447954 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_447954 endp


loc_44795C:
mov	eax, offset stru_454E88
jmp	__CxxFrameHandler
align 4



sub_447968 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_447968 endp


loc_447970:
mov	eax, offset stru_454EB8
jmp	__CxxFrameHandler
align 4



sub_44797C proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_44797C endp




sub_447984 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_447984 endp


loc_44798C:
mov	eax, offset stru_454EE0
jmp	__CxxFrameHandler
align 4



sub_447998 proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_447998 endp


loc_4479A0:
mov	eax, offset stru_454F10
jmp	__CxxFrameHandler
align 4



sub_4479AC proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4479AC endp




sub_4479B4 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4479B4 endp




sub_4479BC proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_4479BC endp


loc_4479C4:
mov	eax, offset stru_454F38
jmp	__CxxFrameHandler
align 10h



sub_4479D0 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4479D0 endp


loc_4479D8:
mov	eax, offset stru_454F70
jmp	__CxxFrameHandler
align 4



sub_4479E4 proc	near
lea	ecx, [ebp-0Ch]
jmp	CoUninitialize
sub_4479E4 endp




sub_4479EC proc	near
lea	ecx, [ebp-14h]
jmp	sub_42DF0D
sub_4479EC endp


loc_4479F4:
mov	eax, offset stru_454F98
jmp	__CxxFrameHandler
align 10h



sub_447A00 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_447A00 endp


loc_447A08:
mov	eax, offset stru_454FC8
jmp	__CxxFrameHandler
align 4



sub_447A14 proc	near
lea	ecx, [ebp-10h]
jmp	CoUninitialize
sub_447A14 endp




sub_447A1C proc	near
lea	ecx, [ebp-14h]
jmp	sub_42DF0D
sub_447A1C endp


loc_447A24:
mov	eax, offset stru_454FF0
jmp	__CxxFrameHandler
align 10h



sub_447A30 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_447A30 endp




sub_447A38 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_447A38 endp




sub_447A40 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_447A40 endp




sub_447A48 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_447A48 endp




sub_447A50 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_447A50 endp




sub_447A58 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_447A58 endp


loc_447A60:
mov	eax, offset stru_455020
jmp	__CxxFrameHandler
align 4



sub_447A6C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_447A6C endp


loc_447A74:
mov	eax, offset stru_455070
jmp	__CxxFrameHandler
align 10h



sub_447A80 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_447A80 endp




sub_447A88 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_447A88 endp




sub_447A90 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_447A90 endp




sub_447A98 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_447A98 endp




sub_447AA0 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_447AA0 endp




sub_447AA8 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_447AA8 endp


loc_447AB0:
mov	eax, offset stru_455098
jmp	__CxxFrameHandler
align 4



sub_447ABC proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_447ABC endp




sub_447AC4 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_447AC4 endp




sub_447ACC proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_447ACC endp


loc_447AD4:
mov	eax, offset stru_4550E8
jmp	__CxxFrameHandler
align 10h



sub_447AE0 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_447AE0 endp




sub_447AE8 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_447AE8 endp




sub_447AF0 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_447AF0 endp




sub_447AF8 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_447AF8 endp




sub_447B00 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_447B00 endp




sub_447B08 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_447B08 endp


loc_447B10:
mov	eax, offset stru_455120
jmp	__CxxFrameHandler
align 4



sub_447B1C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_447B1C endp


loc_447B24:
mov	eax, offset stru_455170
jmp	__CxxFrameHandler
align 10h



sub_447B30 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_447B30 endp




sub_447B38 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_447B38 endp


loc_447B40:
mov	eax, offset stru_455198
jmp	__CxxFrameHandler
align 4



sub_447B4C proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_447B4C endp




sub_447B54 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_447B54 endp




sub_447B5C proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_447B5C endp




sub_447B64 proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_447B64 endp




sub_447B6C proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_447B6C endp




sub_447B74 proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_447B74 endp


loc_447B7C:
mov	eax, offset stru_4551C8
jmp	__CxxFrameHandler
align 4



sub_447B88 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_447B88 endp




sub_447B90 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_447B90 endp


loc_447B98:
mov	eax, offset stru_455218
jmp	__CxxFrameHandler
align 4



sub_447BA4 proc	near
lea	ecx, [ebp-70h]
jmp	sub_42EEC8
sub_447BA4 endp


loc_447BAC:
mov	eax, offset stru_455248
jmp	__CxxFrameHandler
align 4



sub_447BB8 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_447BB8 endp




sub_447BC0 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_447BC0 endp




sub_447BC8 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_447BC8 endp




sub_447BD0 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_447BD0 endp


loc_447BD8:
mov	eax, offset stru_455270
jmp	__CxxFrameHandler
align 4



sub_447BE4 proc	near
mov	ecx, [ebp-10h]
add	ecx, 14h
jmp	sub_406E76
sub_447BE4 endp




sub_447BEF proc	near
mov	ecx, [ebp-10h]
add	ecx, 20h
jmp	sub_406E76
sub_447BEF endp




sub_447BFA proc	near
mov	ecx, [ebp-10h]
add	ecx, 2Ch
jmp	sub_406E76
sub_447BFA endp


loc_447C05:
mov	eax, offset stru_4552B0
jmp	__CxxFrameHandler
align 10h



sub_447C10 proc	near
lea	ecx, [ebp-28h]
jmp	loc_421588
sub_447C10 endp


loc_447C18:
mov	eax, offset stru_4552E8
jmp	__CxxFrameHandler
align 4



sub_447C24 proc	near
lea	ecx, [ebp-28h]
jmp	loc_421588
sub_447C24 endp




sub_447C2C proc	near
lea	ecx, [ebp-6Ch]
jmp	sub_42EEC8
sub_447C2C endp


loc_447C34:
mov	eax, offset stru_455310
jmp	__CxxFrameHandler
align 10h



sub_447C40 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_447C40 endp




sub_447C48 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_447C48 endp




sub_447C50 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_447C50 endp




sub_447C58 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_447C58 endp


loc_447C60:
mov	eax, offset stru_455340
jmp	__CxxFrameHandler
align 4



sub_447C6C proc	near
lea	ecx, [ebp-28h]
jmp	loc_421588
sub_447C6C endp


loc_447C74:
mov	eax, offset stru_455380
jmp	__CxxFrameHandler
align 10h



sub_447C80 proc	near
lea	ecx, [ebp-24h]
jmp	loc_421588
sub_447C80 endp




sub_447C88 proc	near
lea	ecx, [ebp-0D0h]
jmp	sub_42EEC8
sub_447C88 endp




sub_447C93 proc	near
lea	ecx, [ebp-8Ch]
jmp	sub_42EEC8
sub_447C93 endp


loc_447C9E:
mov	eax, offset stru_4553A8
jmp	__CxxFrameHandler



sub_447CA8 proc	near
lea	ecx, [ebp-2Ch]
jmp	loc_421588
sub_447CA8 endp


loc_447CB0:
mov	eax, offset stru_4553E0
jmp	__CxxFrameHandler
align 4



sub_447CBC proc	near
lea	ecx, [ebp-28h]
jmp	loc_421588
sub_447CBC endp




sub_447CC4 proc	near
lea	ecx, [ebp-0E0h]
jmp	sub_42EEC8
sub_447CC4 endp




sub_447CCF proc	near
lea	ecx, [ebp-9Ch]
jmp	sub_42EEC8
sub_447CCF endp




sub_447CDA proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_447CDA endp




sub_447CE2 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_447CE2 endp


loc_447CEA:
mov	eax, offset stru_455408
jmp	__CxxFrameHandler



sub_447CF4 proc	near
lea	ecx, [ebp-0A0h]
jmp	sub_42EEC8
sub_447CF4 endp




sub_447CFF proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_447CFF endp




sub_447D07 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_447D07 endp




sub_447D0F proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_447D0F endp




sub_447D17 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_447D17 endp


loc_447D1F:
mov	eax, offset stru_455450
jmp	__CxxFrameHandler
align 4



sub_447D2C proc	near
lea	ecx, [ebp-18h]
jmp	sub_42F86D
sub_447D2C endp


loc_447D34:
mov	eax, offset stru_4554A8
jmp	__CxxFrameHandler
align 10h



sub_447D40 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_447D40 endp


loc_447D48:
mov	eax, offset stru_4554D0
jmp	__CxxFrameHandler
align 4

loc_447D54:
mov	eax, offset stru_4554F8
jmp	__CxxFrameHandler
align 10h



sub_447D60 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_447D60 endp




sub_447D68 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_447D68 endp




sub_447D70 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_447D70 endp


loc_447D78:
mov	eax, offset stru_455550
jmp	__CxxFrameHandler
align 4



sub_447D84 proc	near
lea	ecx, [ebp-14h]
jmp	sub_40D6C5
sub_447D84 endp


loc_447D8C:
mov	eax, offset stru_455588
jmp	__CxxFrameHandler
align 4



sub_447D98 proc	near
lea	ecx, [ebp-28h]
jmp	sub_412870
sub_447D98 endp




sub_447DA0 proc	near
lea	ecx, [ebp-0C8h]
jmp	sub_4302FB
sub_447DA0 endp




sub_447DAB proc	near
lea	ecx, [ebp-0B4h]
jmp	sub_4302FB
sub_447DAB endp




sub_447DB6 proc	near
lea	ecx, [ebp-0A0h]
jmp	sub_406E76
sub_447DB6 endp




sub_447DC1 proc	near
lea	ecx, [ebp-28h]
jmp	sub_4302FB
sub_447DC1 endp




sub_447DC9 proc	near
lea	ecx, [ebp-28h]
jmp	sub_4302FB
sub_447DC9 endp


loc_447DD1:
mov	eax, offset stru_4555B0
jmp	__CxxFrameHandler
align 4



sub_447DDC proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_447DDC endp




sub_447DE4 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_447DE4 endp




sub_447DEC proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_447DEC endp


loc_447DF4:
mov	eax, offset stru_455608
jmp	__CxxFrameHandler
align 10h



sub_447E00 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_447E00 endp




sub_447E08 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_447E08 endp




sub_447E10 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_447E10 endp




sub_447E18 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_447E18 endp




sub_447E20 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_447E20 endp


loc_447E28:
mov	eax, offset stru_455640
jmp	__CxxFrameHandler
align 4



sub_447E34 proc	near
mov	ecx, [ebp-10h]
add	ecx, 8
jmp	sub_4370A0
sub_447E34 endp


loc_447E3F:
mov	eax, offset stru_455688
jmp	__CxxFrameHandler
align 4

loc_447E4C:
mov	eax, offset stru_4556B0
jmp	__CxxFrameHandler
align 4

loc_447E58:
mov	eax, offset stru_455708
jmp	__CxxFrameHandler
align 4

loc_447E64:
mov	eax, offset stru_455760
jmp	__CxxFrameHandler
align 10h



sub_447E70 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_401E60
sub_447E70 endp


loc_447E78:
mov	eax, offset stru_4557B8
jmp	__CxxFrameHandler
align 4



sub_447E84 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_401E60
sub_447E84 endp


loc_447E8C:
mov	eax, offset stru_4557E0
jmp	__CxxFrameHandler
align 4



sub_447E98 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_447E98 endp




sub_447EA0 proc	near
lea	ecx, [ebp-70h]
jmp	sub_401E60
sub_447EA0 endp




sub_447EA8 proc	near
lea	ecx, [ebp-70h]
jmp	sub_401E60
sub_447EA8 endp




sub_447EB0 proc	near
lea	ecx, [ebp-24h]
jmp	sub_40327C
sub_447EB0 endp




sub_447EB8 proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_447EB8 endp




sub_447EC0 proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_447EC0 endp




sub_447EC8 proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_447EC8 endp




sub_447ED0 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_447ED0 endp




sub_447ED8 proc	near
lea	ecx, [ebp-54h]
jmp	sub_406E76
sub_447ED8 endp




sub_447EE0 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_447EE0 endp




sub_447EE8 proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_447EE8 endp




sub_447EF0 proc	near
lea	ecx, [ebp-0A8h]
jmp	loc_407A4A
sub_447EF0 endp




sub_447EFB proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_447EFB endp




sub_447F03 proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_447F03 endp




sub_447F0B proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_447F0B endp




sub_447F13 proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_447F13 endp




sub_447F1B proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_447F1B endp




sub_447F23 proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_447F23 endp




sub_447F2B proc	near
lea	ecx, [ebp-60h]
jmp	sub_406E76
sub_447F2B endp




sub_447F33 proc	near
lea	ecx, [ebp-54h]
jmp	sub_406E76
sub_447F33 endp




sub_447F3B proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_447F3B endp




sub_447F43 proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_447F43 endp




sub_447F4B proc	near
lea	ecx, [ebp-54h]
jmp	sub_406E76
sub_447F4B endp




sub_447F53 proc	near
lea	ecx, [ebp-60h]
jmp	sub_406E76
sub_447F53 endp




sub_447F5B proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_447F5B endp




sub_447F63 proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_447F63 endp




sub_447F6B proc	near
lea	ecx, [ebp-6Ch]
jmp	sub_406E76
sub_447F6B endp




sub_447F73 proc	near
lea	ecx, [ebp-60h]
jmp	sub_406E76
sub_447F73 endp




sub_447F7B proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_447F7B endp




sub_447F83 proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_447F83 endp




sub_447F8B proc	near
lea	ecx, [ebp-6Ch]
jmp	sub_406E76
sub_447F8B endp




sub_447F93 proc	near
lea	ecx, [ebp-60h]
jmp	sub_406E76
sub_447F93 endp




sub_447F9B proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_447F9B endp




sub_447FA3 proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_447FA3 endp




sub_447FAB proc	near
lea	ecx, [ebp+14h]
jmp	sub_4370A0
sub_447FAB endp




sub_447FB3 proc	near
lea	ecx, [ebp-60h]
jmp	sub_406E76
sub_447FB3 endp




sub_447FBB proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_447FBB endp




sub_447FC3 proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_447FC3 endp




sub_447FCB proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_447FCB endp




sub_447FD3 proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_447FD3 endp




sub_447FDB proc	near
lea	ecx, [ebp+0Ch]
jmp	sub_4370A0
sub_447FDB endp


loc_447FE3:
mov	eax, offset stru_455808
jmp	__CxxFrameHandler
align 10h

loc_447FF0:
mov	eax, offset stru_4559C0
jmp	__CxxFrameHandler
align 4

loc_447FFC:
mov	eax, offset stru_455A18
jmp	__CxxFrameHandler
align 4

loc_448008:
mov	eax, offset stru_455A70
jmp	__CxxFrameHandler
align 4



sub_448014 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_448014 endp


loc_44801C:
mov	eax, offset stru_455AC8
jmp	__CxxFrameHandler
align 4



sub_448028 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_448028 endp




sub_448030 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_448030 endp




sub_448038 proc	near
lea	ecx, [ebp-60h]
jmp	loc_407A4A
sub_448038 endp




sub_448040 proc	near
lea	ecx, [ebp-60h]
jmp	loc_407A4A
sub_448040 endp




sub_448048 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_448048 endp


loc_448050:
mov	eax, offset stru_455AF0
jmp	__CxxFrameHandler
align 4

loc_44805C:
mov	eax, offset stru_455B38
jmp	__CxxFrameHandler
align 4

loc_448068:
mov	eax, offset stru_455B90
jmp	__CxxFrameHandler
align 4



sub_448074 proc	near
lea	ecx, [ebp-20h]
jmp	sub_401E60
sub_448074 endp


loc_44807C:
mov	eax, offset stru_455BE8
jmp	__CxxFrameHandler
align 4



sub_448088 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_448088 endp




sub_448090 proc	near
push	dword ptr [ebp+8] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_448090 endp




sub_44809A proc	near
lea	ecx, [ebp+8]
jmp	sub_4370A0
sub_44809A endp




sub_4480A2 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4480A2 endp


loc_4480AA:
mov	eax, offset stru_455C48
jmp	__CxxFrameHandler



sub_4480B4 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4308C2
sub_4480B4 endp


loc_4480BC:
mov	eax, offset stru_455CC0
jmp	__CxxFrameHandler
align 4



sub_4480C8 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4308C2
sub_4480C8 endp




sub_4480D0 proc	near
mov	ecx, [ebp-10h]
add	ecx, 40h
jmp	sub_406E76
sub_4480D0 endp




sub_4480DB proc	near
mov	ecx, [ebp-10h]
add	ecx, 50h
jmp	sub_4370A0
sub_4480DB endp


loc_4480E6:
mov	eax, offset stru_455CE8
jmp	__CxxFrameHandler



sub_4480F0 proc	near
lea	ecx, [ebp+8]
jmp	sub_4370A0
sub_4480F0 endp


loc_4480F8:
mov	eax, offset stru_455D20
jmp	__CxxFrameHandler
align 4



sub_448104 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_448104 endp




sub_44810C proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_44810C endp




sub_448114 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_448114 endp


loc_44811C:
mov	eax, offset stru_455D80
jmp	__CxxFrameHandler
align 4



sub_448128 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_448128 endp




sub_448130 proc	near
lea	ecx, [ebp-14h]
jmp	loc_43316D
sub_448130 endp




sub_448138 proc	near
lea	ecx, [ebp-18h]
jmp	sub_404D3D
sub_448138 endp




sub_448140 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_448140 endp




sub_448148 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_448148 endp


loc_448150:
mov	eax, offset stru_455DB8
jmp	__CxxFrameHandler
align 4



sub_44815C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_44815C endp


loc_448164:
mov	eax, offset stru_455E38
jmp	__CxxFrameHandler
align 10h



sub_448170 proc	near
lea	ecx, [ebp-10h]
jmp	loc_43316D
sub_448170 endp


loc_448178:
mov	eax, offset stru_455E60
jmp	__CxxFrameHandler
align 4



sub_448184 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_448184 endp


loc_44818C:
mov	eax, offset stru_455E88
jmp	__CxxFrameHandler
align 4



sub_448198 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_448198 endp




sub_4481A0 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_4481A0 endp




sub_4481A8 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_4481A8 endp




sub_4481B0 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_4481B0 endp




sub_4481B8 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_4481B8 endp




sub_4481C0 proc	near
lea	ecx, [ebp-54h]
jmp	sub_406E76
sub_4481C0 endp




sub_4481C8 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_4481C8 endp


loc_4481D0:
mov	eax, offset stru_455EB0
jmp	__CxxFrameHandler
align 4



sub_4481DC proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4481DC endp




sub_4481E4 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4481E4 endp


loc_4481EC:
mov	eax, offset stru_455F08
jmp	__CxxFrameHandler
align 4



sub_4481F8 proc	near
lea	ecx, [ebp-10h]
jmp	loc_43316D
sub_4481F8 endp




sub_448200 proc	near
lea	ecx, [ebp-14h]
jmp	sub_404D3D
sub_448200 endp




sub_448208 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_448208 endp


loc_448210:
mov	eax, offset stru_455F70
jmp	__CxxFrameHandler
align 4



sub_44821C proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_44821C endp


loc_448224:
mov	eax, offset stru_455FA8
jmp	__CxxFrameHandler
align 10h



sub_448230 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_448230 endp




sub_448238 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_448238 endp


loc_448240:
mov	eax, offset stru_456008
jmp	__CxxFrameHandler
align 4



sub_44824C proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_44824C endp


loc_448254:
mov	eax, offset stru_456070
jmp	__CxxFrameHandler
align 10h



sub_448260 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_448260 endp




sub_448268 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_448268 endp




sub_448270 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_448270 endp


loc_448278:
mov	eax, offset stru_456098
jmp	__CxxFrameHandler
align 4



sub_448284 proc	near
lea	ecx, [ebp-44h]
jmp	sub_4335EF
sub_448284 endp


loc_44828C:
mov	eax, offset stru_4560D0
jmp	__CxxFrameHandler
align 4



sub_448298 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_448298 endp


loc_4482A0:
mov	eax, offset stru_4560F8
jmp	__CxxFrameHandler
align 4



sub_4482AC proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4482AC endp




sub_4482B4 proc	near
lea	ecx, [ebp-44h]
jmp	sub_407709
sub_4482B4 endp




sub_4482BC proc	near
lea	ecx, [ebp-44h]
jmp	sub_4078D8
sub_4482BC endp




sub_4482C4 proc	near
lea	ecx, [ebp-7Ch]
jmp	loc_407A4A
sub_4482C4 endp

; [00000008 BYTES: COLLAPSED FUNCTION unknown_libname_31. PRESS	KEYPAD CTRL-"+"	TO EXPAND]



sub_4482D4 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_4482D4 endp


loc_4482DC:
mov	eax, offset stru_456120
jmp	__CxxFrameHandler
align 4



sub_4482E8 proc	near
lea	ecx, [ebp-98h]
jmp	loc_407A4A
sub_4482E8 endp




sub_4482F3 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_4482F3 endp




sub_4482FB proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_4482FB endp




sub_448303 proc	near
lea	ecx, [ebp-60h]
jmp	sub_406E76
sub_448303 endp




sub_44830B proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_44830B endp




sub_448313 proc	near
lea	ecx, [ebp-54h]
jmp	sub_406E76
sub_448313 endp




sub_44831B proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_44831B endp


loc_448323:
mov	eax, offset stru_456178
jmp	__CxxFrameHandler
align 10h



sub_448330 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_448330 endp


unknown_libname_32:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_4561D0
jmp	__CxxFrameHandler



sub_448344 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_448344 endp




sub_44834C proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_44834C endp




sub_448354 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_448354 endp


loc_44835C:
mov	eax, offset stru_4561F8
jmp	__CxxFrameHandler
align 4



sub_448368 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_448368 endp


loc_448370:
mov	eax, offset stru_456230
jmp	__CxxFrameHandler
align 4



sub_44837C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_44837C endp


loc_448384:
mov	eax, offset stru_456258
jmp	__CxxFrameHandler
align 10h



sub_448390 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_448390 endp


loc_448398:
mov	eax, offset stru_456280
jmp	__CxxFrameHandler
align 4



sub_4483A4 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_4483A4 endp


loc_4483AC:
mov	eax, offset stru_4562A8
jmp	__CxxFrameHandler
align 4



sub_4483B8 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_4483B8 endp


loc_4483C0:
mov	eax, offset stru_4562D0
jmp	__CxxFrameHandler
align 4



sub_4483CC proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4483CC endp




sub_4483D4 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_4483D4 endp




sub_4483DC proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4483DC endp


loc_4483E4:
mov	eax, offset stru_4562F8
jmp	__CxxFrameHandler
align 10h



sub_4483F0 proc	near
lea	ecx, [ebp-44h]
jmp	sub_40327C
sub_4483F0 endp




sub_4483F8 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_4483F8 endp




sub_448400 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_448400 endp




sub_448408 proc	near
mov	eax, [ebp-18h]
and	eax, 1
test	eax, eax
jz	locret_44841E
mov	ecx, [ebp-14h]
jmp	sub_406E76

locret_44841E:
retn
sub_448408 endp




sub_44841F proc	near
lea	ecx, [ebp-44h]
jmp	sub_4302FB
sub_44841F endp


loc_448427:
mov	eax, offset stru_456330
jmp	__CxxFrameHandler
align 4



sub_448434 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_448434 endp




sub_44843C proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_44843C endp




sub_448444 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_448444 endp




sub_44844C proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_44844C endp




sub_448454 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_448454 endp


loc_44845C:
mov	eax, offset stru_456378
jmp	__CxxFrameHandler
align 4



sub_448468 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_448468 endp


loc_448470:
mov	eax, offset stru_4563C0
jmp	__CxxFrameHandler
align 4



sub_44847C proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_44847C endp


loc_448484:
mov	eax, offset stru_4563E8
jmp	__CxxFrameHandler
align 10h



sub_448490 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_401E60
sub_448490 endp


loc_448498:
mov	eax, offset stru_456410
jmp	__CxxFrameHandler
align 4



sub_4484A4 proc	near
lea	ecx, [ebp-38h]
jmp	sub_40327C
sub_4484A4 endp




sub_4484AC proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_40327C
sub_4484AC endp




sub_4484B4 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4484B4 endp




sub_4484BC proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4484BC endp




sub_4484C4 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_4484C4 endp




sub_4484CC proc	near
lea	ecx, [ebp-24h]
jmp	sub_409444
sub_4484CC endp




sub_4484D4 proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_4302FB
sub_4484D4 endp




sub_4484DC proc	near
lea	ecx, [ebp-38h]
jmp	sub_4302FB
sub_4484DC endp


loc_4484E4:
mov	eax, offset stru_456438
jmp	__CxxFrameHandler
align 10h



sub_4484F0 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_4484F0 endp


loc_4484F8:
mov	eax, offset stru_456498
jmp	__CxxFrameHandler
align 4



sub_448504 proc	near
lea	ecx, [ebp-0B0h]
jmp	sub_434A93
sub_448504 endp




sub_44850F proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_401E60
sub_44850F endp




sub_448517 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_448517 endp




sub_44851F proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_44851F endp


unknown_libname_33:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_4564C0
jmp	__CxxFrameHandler
align 4



sub_448534 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_401E60
sub_448534 endp


loc_44853C:
mov	eax, offset stru_456500
jmp	__CxxFrameHandler
align 4



sub_448548 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_401E60
sub_448548 endp


loc_448550:
mov	eax, offset stru_456528
jmp	__CxxFrameHandler
align 4



sub_44855C proc	near
mov	ecx, [ebp-10h]
add	ecx, 24h
jmp	sub_406E76
sub_44855C endp




sub_448567 proc	near
mov	ecx, [ebp-10h]
add	ecx, 30h
jmp	sub_43537A
sub_448567 endp




sub_448572 proc	near
mov	ecx, [ebp-10h]
add	ecx, 44h
jmp	loc_421588
sub_448572 endp




sub_44857D proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_44857D endp




sub_448585 proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_448585 endp


loc_44858D:
mov	eax, offset stru_456550
jmp	__CxxFrameHandler
align 4



sub_448598 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_448598 endp




sub_4485A0 proc	near
lea	ecx, [ebp-5Ch]
jmp	sub_40327C
sub_4485A0 endp




sub_4485A8 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_4485A8 endp




sub_4485B0 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_4485B0 endp




sub_4485B8 proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_4485B8 endp




sub_4485C0 proc	near
lea	ecx, [ebp-5Ch]
jmp	sub_4302FB
sub_4485C0 endp


loc_4485C8:
mov	eax, offset stru_456598
jmp	__CxxFrameHandler
align 4



sub_4485D4 proc	near
lea	ecx, [ebp+0Ch]
jmp	sub_4059B3
sub_4485D4 endp




sub_4485DC proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_434E61
sub_4485DC endp


loc_4485E4:
mov	eax, offset stru_4565E8
jmp	__CxxFrameHandler
align 10h



sub_4485F0 proc	near

; FUNCTION CHUNK AT 00434E29 SIZE 00000038 BYTES

mov	ecx, [ebp-10h]
jmp	loc_434E29
sub_4485F0 endp




sub_4485F8 proc	near
mov	ecx, [ebp-10h]
add	ecx, 14h
jmp	sub_4059B3
sub_4485F8 endp


loc_448603:
mov	eax, offset stru_456618
jmp	__CxxFrameHandler
align 10h



sub_448610 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_448610 endp


loc_448618:
mov	eax, offset stru_456648
jmp	__CxxFrameHandler
align 4



sub_448624 proc	near
mov	ecx, [ebp-10h]
jmp	loc_434E29
sub_448624 endp




sub_44862C proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_44862C endp


loc_448634:
mov	eax, offset stru_456670
jmp	__CxxFrameHandler
align 10h



sub_448640 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_448640 endp




sub_448648 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_448648 endp




sub_448650 proc	near
lea	ecx, [ebp-40h]
jmp	sub_407709
sub_448650 endp




sub_448658 proc	near
lea	ecx, [ebp-40h]
jmp	sub_4078D8
sub_448658 endp




sub_448660 proc	near
lea	ecx, [ebp-78h]
jmp	loc_407A4A
sub_448660 endp




sub_448668 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_448668 endp


loc_448670:
mov	eax, offset stru_4566A0
jmp	__CxxFrameHandler
align 4



sub_44867C proc	near
lea	ecx, [ebp-94h]
jmp	sub_434A93
sub_44867C endp




sub_448687 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_448687 endp




sub_44868F proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_44868F endp




sub_448697 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_448697 endp




sub_44869F proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_44869F endp


loc_4486A7:
mov	eax, offset stru_456700
jmp	__CxxFrameHandler
align 4



sub_4486B4 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4486B4 endp


loc_4486BC:
mov	eax, offset stru_456748
jmp	__CxxFrameHandler
align 4
; [00000008 BYTES: COLLAPSED FUNCTION unknown_libname_34. PRESS	KEYPAD CTRL-"+"	TO EXPAND]



sub_4486D0 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_401E60
sub_4486D0 endp


loc_4486D8:
mov	eax, offset stru_456770
jmp	__CxxFrameHandler
align 4



sub_4486E4 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_4486E4 endp


loc_4486EC:
mov	eax, offset stru_4567A0
jmp	__CxxFrameHandler
align 4



sub_4486F8 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_4486F8 endp




sub_448702 proc	near
mov	ecx, [ebp-10h]
jmp	sub_406E76
sub_448702 endp


loc_44870A:
mov	eax, offset stru_4567C8
jmp	__CxxFrameHandler



sub_448714 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_448714 endp


unknown_libname_35:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_4567F8
jmp	__CxxFrameHandler



sub_448728 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_448728 endp


unknown_libname_36:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_456820
jmp	__CxxFrameHandler



sub_44873C proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_44873C endp


unknown_libname_37:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_456848
jmp	__CxxFrameHandler



sub_448750 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_448750 endp


loc_448758:
mov	eax, offset stru_456870
jmp	__CxxFrameHandler
align 4



sub_448764 proc	near
mov	ecx, [ebp-10h]
jmp	loc_434E29
sub_448764 endp




sub_44876C proc	near
mov	ecx, [ebp-10h]
add	ecx, 14h
jmp	sub_4059B3
sub_44876C endp


loc_448777:
mov	eax, offset stru_456898
jmp	__CxxFrameHandler
align 4



sub_448784 proc	near
mov	ecx, [ebp-10h]
add	ecx, 24h
jmp	sub_406E76
sub_448784 endp




sub_44878F proc	near
mov	ecx, [ebp-10h]
add	ecx, 30h
jmp	sub_43537A
sub_44878F endp




sub_44879A proc	near
mov	ecx, [ebp-10h]
add	ecx, 44h
jmp	loc_421588
sub_44879A endp


loc_4487A5:
mov	eax, offset stru_4568C8
jmp	__CxxFrameHandler
align 10h



sub_4487B0 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_4487B0 endp


loc_4487B8:
mov	eax, offset stru_456900
jmp	__CxxFrameHandler
align 4



sub_4487C4 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_4487C4 endp


loc_4487CC:
mov	eax, offset stru_456928
jmp	__CxxFrameHandler
align 4



sub_4487D8 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_401E60
sub_4487D8 endp


loc_4487E0:
mov	eax, offset stru_456950
jmp	__CxxFrameHandler
align 4
; [00000008 BYTES: COLLAPSED FUNCTION unknown_libname_38. PRESS	KEYPAD CTRL-"+"	TO EXPAND]



sub_4487F4 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_401E60
sub_4487F4 endp


loc_4487FC:
mov	eax, offset stru_456978
jmp	__CxxFrameHandler
align 4



sub_448808 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_401E60
sub_448808 endp


loc_448810:
mov	eax, offset stru_4569A8
jmp	__CxxFrameHandler
align 4



sub_44881C proc	near
lea	ecx, [ebp-70h]
jmp	sub_406E76
sub_44881C endp




sub_448824 proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_406E76
sub_448824 endp




sub_44882C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_44882C endp




sub_448834 proc	near
lea	ecx, [ebp-38h]
jmp	sub_4302FB
sub_448834 endp




sub_44883C proc	near
lea	ecx, [ebp-88h]
jmp	sub_4302FB
sub_44883C endp




sub_448847 proc	near
lea	ecx, [ebp-58h]
jmp	loc_421588
sub_448847 endp




sub_44884F proc	near
lea	ecx, [ebp-18h]
jmp	loc_421588
sub_44884F endp




sub_448857 proc	near
lea	ecx, [ebp-18h]
jmp	loc_421588
sub_448857 endp




sub_44885F proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_44885F endp




sub_448867 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_448867 endp




sub_44886F proc	near
lea	ecx, [ebp+0Ch]
jmp	sub_4370A0
sub_44886F endp




sub_448877 proc	near
lea	ecx, [ebp-20h]
jmp	sub_4370A0
sub_448877 endp




sub_44887F proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_4370A0
sub_44887F endp




sub_448887 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_401E60
sub_448887 endp




sub_44888F proc	near
lea	ecx, [ebp-58h]
jmp	sub_406E76
sub_44888F endp




sub_448897 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_448897 endp




sub_44889F proc	near
lea	ecx, [ebp-64h]
jmp	sub_406E76
sub_44889F endp




sub_4488A7 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4488A7 endp


loc_4488AF:
mov	eax, offset stru_4569D0
jmp	__CxxFrameHandler
align 4



sub_4488BC proc	near
lea	ecx, [ebp-14h]
jmp	sub_4370A0
sub_4488BC endp

; [00000008 BYTES: COLLAPSED FUNCTION unknown_libname_39. PRESS	KEYPAD CTRL-"+"	TO EXPAND]



sub_4488CC proc	near
push	dword ptr [ebp+10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_4488CC endp


loc_4488D6:
mov	eax, offset stru_456A80
jmp	__CxxFrameHandler



sub_4488E0 proc	near
lea	ecx, [ebp-0B4h]
jmp	sub_4368E3
sub_4488E0 endp




sub_4488EB proc	near
lea	ecx, [ebp-38h]
jmp	sub_401E60
sub_4488EB endp




sub_4488F3 proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_4488F3 endp




sub_4488FB proc	near
lea	ecx, [ebp-14h]
jmp	sub_4370A0
sub_4488FB endp




sub_448903 proc	near
lea	ecx, [ebp-18h]
jmp	sub_4370A0
sub_448903 endp




sub_44890B proc	near
lea	ecx, [ebp-78h]
jmp	sub_4368E3
sub_44890B endp




sub_448913 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_4370A0
sub_448913 endp


loc_44891B:
mov	eax, offset stru_456AB8
jmp	__CxxFrameHandler
align 4



sub_448928 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4370A0
sub_448928 endp




sub_448930 proc	near
mov	ecx, [ebp-10h]
add	ecx, 4
jmp	sub_406E76
sub_448930 endp




sub_44893B proc	near
mov	ecx, [ebp-10h]
add	ecx, 10h
jmp	sub_406E76
sub_44893B endp


loc_448946:
mov	eax, offset stru_456B10
jmp	__CxxFrameHandler



sub_448950 proc	near
push	dword ptr [ebp-18h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_448950 endp




sub_44895A proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_44895A endp




sub_448962 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_448962 endp




sub_44896A proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_44896A endp




sub_448972 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_448972 endp




sub_44897A proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_44897A endp




sub_448982 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_448982 endp




sub_44898A proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_44898A endp




sub_448992 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_448992 endp


loc_44899A:
mov	eax, offset stru_456B48
jmp	__CxxFrameHandler



sub_4489A4 proc	near
mov	ecx, [ebp-10h]
add	ecx, 14h
jmp	sub_406E76
sub_4489A4 endp

; [0000000B BYTES: COLLAPSED FUNCTION unknown_libname_40. PRESS	KEYPAD CTRL-"+"	TO EXPAND]

loc_4489BA:
mov	eax, offset stru_456BB0
jmp	__CxxFrameHandler



sub_4489C4 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4489C4 endp


loc_4489CC:
mov	eax, offset stru_456BE0
jmp	__CxxFrameHandler
align 4



sub_4489D8 proc	near
mov	ecx, [ebp-10h]
add	ecx, 14h
jmp	sub_406E76
sub_4489D8 endp




sub_4489E3 proc	near
mov	ecx, [ebp-10h]
add	ecx, 20h
jmp	loc_407A4A
sub_4489E3 endp




sub_4489EE proc	near
mov	ecx, [ebp-10h]
add	ecx, 5Ch
jmp	sub_406E76
sub_4489EE endp




sub_4489F9 proc	near
mov	ecx, [ebp-10h]
add	ecx, 68h
jmp	sub_40327C
sub_4489F9 endp




sub_448A04 proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_448A04 endp


loc_448A0C:
mov	eax, offset stru_456C08
jmp	__CxxFrameHandler
align 4



sub_448A18 proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_448A18 endp




sub_448A20 proc	near
lea	ecx, [ebp+8]
jmp	sub_4370A0
sub_448A20 endp




sub_448A28 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_448A28 endp




sub_448A32 proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_448A32 endp


loc_448A3A:
mov	eax, offset stru_456C50
jmp	__CxxFrameHandler



sub_448A44 proc	near
push	dword ptr [ebp-18h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_448A44 endp




sub_448A4E proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_448A4E endp




sub_448A56 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_448A56 endp




sub_448A5E proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_448A5E endp


loc_448A66:
mov	eax, offset stru_456C90
jmp	__CxxFrameHandler



sub_448A70 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_448A70 endp


unknown_libname_41:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_456CD0
jmp	__CxxFrameHandler



sub_448A84 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4370A0
sub_448A84 endp




sub_448A8C proc	near
mov	ecx, [ebp-10h]
add	ecx, 4
jmp	sub_406E76
sub_448A8C endp




sub_448A97 proc	near
mov	ecx, [ebp-10h]
add	ecx, 10h
jmp	sub_406E76
sub_448A97 endp


loc_448AA2:
mov	eax, offset stru_456CF8
jmp	__CxxFrameHandler



sub_448AAC proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_448AAC endp




sub_448AB4 proc	near
lea	ecx, [ebp-68h]
jmp	sub_406E76
sub_448AB4 endp




sub_448ABC proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_448ABC endp




sub_448AC4 proc	near
lea	ecx, [ebp-5Ch]
jmp	sub_406E76
sub_448AC4 endp


loc_448ACC:
mov	eax, offset stru_456D30
jmp	__CxxFrameHandler
align 4



sub_448AD8 proc	near
mov	ecx, [ebp-10h]
add	ecx, 14h
jmp	sub_4302FB
sub_448AD8 endp




sub_448AE3 proc	near
mov	ecx, [ebp-10h]
add	ecx, 28h
jmp	sub_406E76
sub_448AE3 endp


loc_448AEE:
mov	eax, offset stru_456D70
jmp	__CxxFrameHandler



sub_448AF8 proc	near
mov	ecx, [ebp-10h]
add	ecx, 14h
jmp	sub_4302FB
sub_448AF8 endp




sub_448B03 proc	near
mov	ecx, [ebp-10h]
add	ecx, 28h
jmp	sub_406E76
sub_448B03 endp




sub_448B0E proc	near
mov	ecx, [ebp-10h]
add	ecx, 34h
jmp	sub_406E76
sub_448B0E endp


loc_448B19:
mov	eax, offset stru_456DA0
jmp	__CxxFrameHandler
align 4

loc_448B24:
mov	eax, offset stru_456DD8
jmp	__CxxFrameHandler
align 10h

loc_448B30:
mov	eax, offset stru_456E30
jmp	__CxxFrameHandler
align 4

loc_448B3C:
mov	eax, offset stru_456E88
jmp	__CxxFrameHandler
align 4

loc_448B48:
mov	eax, offset stru_456EE0
jmp	__CxxFrameHandler
align 4



sub_448B54 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_401E60
sub_448B54 endp




sub_448B5C proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_448B5C endp


loc_448B64:
mov	eax, offset stru_456F38
jmp	__CxxFrameHandler
align 10h



sub_448B70 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_448B70 endp




sub_448B78 proc	near
push	dword ptr [ebp+8] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_448B78 endp




sub_448B82 proc	near
lea	ecx, [ebp+8]
jmp	sub_4370A0
sub_448B82 endp




sub_448B8A proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_448B8A endp


loc_448B92:
mov	eax, offset stru_456FA0
jmp	__CxxFrameHandler

loc_448B9C:
mov	eax, offset stru_457018
jmp	__CxxFrameHandler
align 4



sub_448BA8 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_448BA8 endp




sub_448BB0 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_448BB0 endp




sub_448BB8 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_448BB8 endp




sub_448BC0 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_448BC0 endp




sub_448BC8 proc	near
push	dword ptr [ebp+0Ch] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_448BC8 endp




sub_448BD2 proc	near
lea	ecx, [ebp+0Ch]
jmp	sub_4370A0
sub_448BD2 endp


loc_448BDA:
mov	eax, offset stru_457070
jmp	__CxxFrameHandler

loc_448BE4:
mov	eax, offset stru_4570F8
jmp	__CxxFrameHandler
align 10h

loc_448BF0:
mov	eax, offset stru_457150
jmp	__CxxFrameHandler
align 4



sub_448BFC proc	near
lea	ecx, [ebp-84h]
jmp	sub_4302FB
sub_448BFC endp




sub_448C07 proc	near
lea	ecx, [ebp-70h]
jmp	sub_4302FB
sub_448C07 endp




sub_448C0F proc	near
lea	ecx, [ebp-48h]
jmp	sub_40327C
sub_448C0F endp




sub_448C17 proc	near
lea	ecx, [ebp-48h]
jmp	sub_4302FB
sub_448C17 endp




sub_448C1F proc	near
lea	ecx, [ebp-5Ch]
jmp	sub_40327C
sub_448C1F endp




sub_448C27 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_448C27 endp




sub_448C2F proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_448C2F endp




sub_448C37 proc	near
lea	ecx, [ebp-5Ch]
jmp	sub_4302FB
sub_448C37 endp


loc_448C3F:
mov	eax, offset stru_4571A8
jmp	__CxxFrameHandler
align 4



sub_448C4C proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_448C4C endp


loc_448C54:
mov	eax, offset stru_457240
jmp	__CxxFrameHandler
align 10h



sub_448C60 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_448C60 endp


loc_448C68:
mov	eax, offset stru_457268
jmp	__CxxFrameHandler
align 4



sub_448C74 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_448C74 endp




sub_448C7C proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_448C7C endp




sub_448C84 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_448C84 endp


loc_448C8C:
mov	eax, offset stru_457290
jmp	__CxxFrameHandler
align 4



sub_448C98 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_448C98 endp




sub_448CA0 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_448CA0 endp


loc_448CA8:
mov	eax, offset stru_4572C8
jmp	__CxxFrameHandler
align 4



sub_448CB4 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_448CB4 endp




sub_448CBC proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_448CBC endp


loc_448CC4:
mov	eax, offset stru_4572F8
jmp	__CxxFrameHandler
align 10h



sub_448CD0 proc	near
lea	ecx, [ebp-14h]
jmp	loc_401701
sub_448CD0 endp




sub_448CD8 proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_448CD8 endp


loc_448CE0:
mov	eax, offset stru_457328
jmp	__CxxFrameHandler
align 4



sub_448CEC proc	near
lea	ecx, [ebp-1Ch]
jmp	loc_401701
sub_448CEC endp




sub_448CF4 proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_448CF4 endp


loc_448CFC:
mov	eax, offset stru_457358
jmp	__CxxFrameHandler
align 4



sub_448D08 proc	near
lea	ecx, [ebp-14h]
jmp	loc_401701
sub_448D08 endp




sub_448D10 proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_448D10 endp


loc_448D18:
mov	eax, offset stru_457388
jmp	__CxxFrameHandler
align 4



sub_448D24 proc	near
lea	ecx, [ebp-14h]
jmp	loc_401701
sub_448D24 endp




sub_448D2C proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_448D2C endp


loc_448D34:
mov	eax, offset stru_4573B8
jmp	__CxxFrameHandler
align 10h



sub_448D40 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_448D40 endp


loc_448D48:
mov	eax, offset stru_4573E8
jmp	__CxxFrameHandler
align 4



sub_448D54 proc	near
mov	ecx, [ebp-10h]
add	ecx, 0Ch
jmp	sub_40327C
sub_448D54 endp


loc_448D5F:
mov	eax, offset stru_457410
jmp	__CxxFrameHandler
align 4



sub_448D6C proc	near
mov	ecx, [ebp-10h]
add	ecx, 0Ch
jmp	sub_40327C
sub_448D6C endp




sub_448D77 proc	near
mov	ecx, [ebp-10h]
add	ecx, 24h
jmp	sub_406E76
sub_448D77 endp




sub_448D82 proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_448D82 endp




sub_448D8A proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_448D8A endp


loc_448D92:
mov	eax, offset stru_457438
jmp	__CxxFrameHandler



sub_448D9C proc	near

; FUNCTION CHUNK AT 00438C56 SIZE 00000016 BYTES

lea	ecx, [ebp-2Ch]
jmp	loc_438C56
sub_448D9C endp




sub_448DA4 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_438C6C
sub_448DA4 endp




sub_448DAC proc	near
lea	ecx, [ebp-14h]
jmp	loc_411B87
sub_448DAC endp


loc_448DB4:
mov	eax, offset stru_457478
jmp	__CxxFrameHandler
align 10h



sub_448DC0 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_448DC0 endp


loc_448DC8:
mov	eax, offset stru_4574B0
jmp	__CxxFrameHandler
align 4



sub_448DD4 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_448DD4 endp




sub_448DDC proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_448DDC endp




sub_448DE4 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_448DE4 endp




sub_448DEC proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_448DEC endp




sub_448DF4 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_448DF4 endp


loc_448DFC:
mov	eax, offset stru_4574D8
jmp	__CxxFrameHandler
align 4



sub_448E08 proc	near
lea	ecx, [ebp-34h]
jmp	loc_417AFA
sub_448E08 endp




sub_448E10 proc	near
lea	ecx, [ebp-0B8h]
jmp	sub_43A31B
sub_448E10 endp




sub_448E1B proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_448E1B endp




sub_448E23 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_448E23 endp




sub_448E2B proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_448E2B endp




sub_448E33 proc	near
lea	ecx, [ebp-1A0h]
jmp	loc_407A4A
sub_448E33 endp




sub_448E3E proc	near
lea	ecx, [ebp-128h]
jmp	sub_43A31B
sub_448E3E endp




sub_448E49 proc	near
lea	ecx, [ebp-128h]
jmp	sub_43A31B
sub_448E49 endp




sub_448E54 proc	near
lea	ecx, [ebp-168h]
jmp	sub_406E76
sub_448E54 endp




sub_448E5F proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_448E5F endp




sub_448E67 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_448E67 endp




sub_448E6F proc	near
lea	ecx, [ebp-0B8h]
jmp	sub_43A31B
sub_448E6F endp




sub_448E7A proc	near
lea	ecx, [ebp-0DCh]
jmp	sub_406E76
sub_448E7A endp




sub_448E85 proc	near
lea	ecx, [ebp-0E8h]
jmp	sub_406E76
sub_448E85 endp




sub_448E90 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_448E90 endp




sub_448E98 proc	near
lea	ecx, [ebp-1A0h]
jmp	loc_407A4A
sub_448E98 endp




sub_448EA3 proc	near
lea	ecx, [ebp-6Ch]
jmp	sub_406E76
sub_448EA3 endp




sub_448EAB proc	near
lea	ecx, [ebp-1A0h]
jmp	loc_407A4A
sub_448EAB endp




sub_448EB6 proc	near
lea	ecx, [ebp-0B8h]
jmp	sub_43A31B
sub_448EB6 endp




sub_448EC1 proc	near
lea	ecx, [ebp-134h]
jmp	sub_406E76
sub_448EC1 endp




sub_448ECC proc	near
lea	ecx, [ebp-60h]
jmp	sub_406E76
sub_448ECC endp




sub_448ED4 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_448ED4 endp




sub_448EDC proc	near
lea	ecx, [ebp-128h]
jmp	sub_43A31B
sub_448EDC endp




sub_448EE7 proc	near
lea	ecx, [ebp-0B8h]
jmp	sub_43A31B
sub_448EE7 endp




sub_448EF2 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_448EF2 endp




sub_448EFA proc	near
lea	ecx, [ebp-60h]
jmp	sub_406E76
sub_448EFA endp




sub_448F02 proc	near
lea	ecx, [ebp-134h]
jmp	sub_406E76
sub_448F02 endp




sub_448F0D proc	near
lea	ecx, [ebp-0C4h]
jmp	sub_406E76
sub_448F0D endp




sub_448F18 proc	near
lea	ecx, [ebp-78h]
jmp	sub_406E76
sub_448F18 endp




sub_448F20 proc	near
lea	ecx, [ebp-1ACh]
jmp	sub_406E76
sub_448F20 endp




sub_448F2B proc	near
lea	ecx, [ebp-134h]
jmp	sub_406E76
sub_448F2B endp




sub_448F36 proc	near
lea	ecx, [ebp-128h]
jmp	sub_43A31B
sub_448F36 endp




sub_448F41 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_448F41 endp




sub_448F49 proc	near
lea	ecx, [ebp-0E8h]
jmp	sub_406E76
sub_448F49 endp




sub_448F54 proc	near
lea	ecx, [ebp-0DCh]
jmp	sub_406E76
sub_448F54 endp




sub_448F5F proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_448F5F endp




sub_448F67 proc	near
lea	ecx, [ebp-0B8h]
jmp	sub_43A31B
sub_448F67 endp




sub_448F72 proc	near
lea	ecx, [ebp-128h]
jmp	sub_43A31B
sub_448F72 endp




sub_448F7D proc	near
lea	ecx, [ebp-0B8h]
jmp	sub_43A31B
sub_448F7D endp




sub_448F88 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_448F88 endp




sub_448F90 proc	near
lea	ecx, [ebp-78h]
jmp	sub_406E76
sub_448F90 endp




sub_448F98 proc	near
lea	ecx, [ebp-0C4h]
jmp	sub_406E76
sub_448F98 endp




sub_448FA3 proc	near
lea	ecx, [ebp-128h]
jmp	sub_43A31B
sub_448FA3 endp




sub_448FAE proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_448FAE endp




sub_448FB6 proc	near
lea	ecx, [ebp-78h]
jmp	sub_406E76
sub_448FB6 endp




sub_448FBE proc	near
lea	ecx, [ebp-0C4h]
jmp	sub_406E76
sub_448FBE endp




sub_448FC9 proc	near
lea	ecx, [ebp-0B8h]
jmp	sub_43A31B
sub_448FC9 endp




sub_448FD4 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_448FD4 endp




sub_448FDC proc	near
lea	ecx, [ebp-78h]
jmp	sub_406E76
sub_448FDC endp




sub_448FE4 proc	near
lea	ecx, [ebp-0C4h]
jmp	sub_406E76
sub_448FE4 endp




sub_448FEF proc	near
lea	ecx, [ebp-128h]
jmp	sub_43A31B
sub_448FEF endp




sub_448FFA proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_448FFA endp




sub_449002 proc	near
lea	ecx, [ebp-78h]
jmp	sub_406E76
sub_449002 endp




sub_44900A proc	near
lea	ecx, [ebp-0C4h]
jmp	sub_406E76
sub_44900A endp




sub_449015 proc	near
lea	ecx, [ebp-168h]
jmp	sub_406E76
sub_449015 endp




sub_449020 proc	near
lea	ecx, [ebp-0C4h]
jmp	sub_406E76
sub_449020 endp


loc_44902B:
mov	eax, offset stru_457520
jmp	__CxxFrameHandler
align 4



sub_449038 proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_449038 endp


loc_449040:
mov	eax, offset stru_457700
jmp	__CxxFrameHandler
align 4



sub_44904C proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_44904C endp




sub_449054 proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_449054 endp




sub_44905C proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_44905C endp




sub_449064 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_449064 endp




sub_44906C proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_44906C endp


loc_449074:
mov	eax, offset stru_457728
jmp	__CxxFrameHandler
align 10h



sub_449080 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_449080 endp


loc_449088:
mov	eax, offset stru_457770
jmp	__CxxFrameHandler
align 4



sub_449094 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_449094 endp




sub_44909C proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_44909C endp




sub_4490A4 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4490A4 endp


loc_4490AC:
mov	eax, offset stru_457798
jmp	__CxxFrameHandler
align 4



sub_4490B8 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_4490B8 endp




sub_4490C0 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_4490C0 endp




sub_4490C8 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4490C8 endp




sub_4490D0 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4490D0 endp


loc_4490D8:
mov	eax, offset stru_4577D0
jmp	__CxxFrameHandler
align 4



sub_4490E4 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_4490E4 endp


loc_4490EC:
mov	eax, offset stru_457810
jmp	__CxxFrameHandler
align 4



sub_4490F8 proc	near
mov	ecx, [ebp-10h]
add	ecx, 4
jmp	sub_406E76
sub_4490F8 endp




sub_449103 proc	near
mov	ecx, [ebp-10h]
add	ecx, 10h
jmp	sub_406E76
sub_449103 endp




sub_44910E proc	near
mov	ecx, [ebp-10h]
add	ecx, 1Ch
jmp	sub_406E76
sub_44910E endp




sub_449119 proc	near
mov	ecx, [ebp-10h]
add	ecx, 28h
jmp	sub_406E76
sub_449119 endp


loc_449124:
mov	eax, offset stru_457838
jmp	__CxxFrameHandler
align 10h



sub_449130 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_449130 endp




sub_449138 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_449138 endp




sub_449140 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_449140 endp




sub_449148 proc	near
lea	ecx, [ebp-8Ch]
jmp	sub_43A31B
sub_449148 endp




sub_449153 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_449153 endp




sub_44915B proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_44915B endp




sub_449163 proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_406E76
sub_449163 endp


loc_44916B:
mov	eax, offset stru_457878
jmp	__CxxFrameHandler
align 4



sub_449178 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_449178 endp


loc_449180:
mov	eax, offset stru_457908
jmp	__CxxFrameHandler
align 4



sub_44918C proc	near
mov	ecx, [ebp-10h]
add	ecx, 4
jmp	sub_406E76
sub_44918C endp




sub_449197 proc	near
mov	ecx, [ebp-10h]
add	ecx, 10h
jmp	sub_406E76
sub_449197 endp




sub_4491A2 proc	near
mov	ecx, [ebp-10h]
add	ecx, 1Ch
jmp	sub_406E76
sub_4491A2 endp




sub_4491AD proc	near
mov	ecx, [ebp-10h]
add	ecx, 28h
jmp	sub_406E76
sub_4491AD endp


loc_4491B8:
mov	eax, offset stru_457930
jmp	__CxxFrameHandler
align 4



sub_4491C4 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4491C4 endp


loc_4491CC:
mov	eax, offset stru_457970
jmp	__CxxFrameHandler
align 4



sub_4491D8 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_4491D8 endp


unknown_libname_42:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_457998
jmp	__CxxFrameHandler



sub_4491EC proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_4491EC endp


loc_4491F4:
mov	eax, offset stru_4579C0
jmp	__CxxFrameHandler
align 10h



sub_449200 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_449200 endp




sub_449208 proc	near
lea	ecx, [ebp-6Ch]
jmp	sub_406E76
sub_449208 endp




sub_449210 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_449210 endp




sub_449218 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_449218 endp




sub_449220 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_449220 endp




sub_449228 proc	near
lea	ecx, [ebp-54h]
jmp	sub_406E76
sub_449228 endp




sub_449230 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_449230 endp




sub_449238 proc	near
lea	ecx, [ebp-60h]
jmp	sub_406E76
sub_449238 endp


loc_449240:
mov	eax, offset stru_4579E8
jmp	__CxxFrameHandler
align 4



sub_44924C proc	near
lea	ecx, [ebp-18h]
jmp	loc_401701
sub_44924C endp




sub_449254 proc	near
lea	ecx, [ebp-14h]
jmp	sub_41D97A
sub_449254 endp




sub_44925C proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_44925C endp


loc_449264:
mov	eax, offset stru_457A48
jmp	__CxxFrameHandler
align 10h



sub_449270 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_449270 endp




sub_449278 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_449278 endp




sub_449280 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_449280 endp




sub_449288 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_449288 endp




sub_449290 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_449290 endp




sub_449298 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_449298 endp




sub_4492A0 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4492A0 endp




sub_4492A8 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_4492A8 endp


loc_4492B0:
mov	eax, offset stru_457A80
jmp	__CxxFrameHandler
align 4



sub_4492BC proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_4492BC endp




sub_4492C4 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4492C4 endp


loc_4492CC:
mov	eax, offset stru_457AE0
jmp	__CxxFrameHandler
align 4



sub_4492D8 proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_4492D8 endp




sub_4492E0 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_4492E0 endp


loc_4492E8:
mov	eax, offset stru_457B10
jmp	__CxxFrameHandler
align 4



sub_4492F4 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4492F4 endp




sub_4492FC proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4492FC endp




sub_449304 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_449304 endp




sub_44930C proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_44930C endp


loc_449314:
mov	eax, offset stru_457B40
jmp	__CxxFrameHandler
align 10h



sub_449320 proc	near
lea	ecx, [ebp-14h]
jmp	loc_401701
sub_449320 endp




sub_449328 proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_449328 endp




sub_449330 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_449330 endp


loc_449338:
mov	eax, offset stru_457B80
jmp	__CxxFrameHandler
align 4



sub_449344 proc	near
lea	ecx, [ebp-14h]
jmp	loc_401701
sub_449344 endp




sub_44934C proc	near
lea	ecx, [ebp-10h]
jmp	sub_41D97A
sub_44934C endp




sub_449354 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_449354 endp


loc_44935C:
mov	eax, offset stru_457BB8
jmp	__CxxFrameHandler
align 4



sub_449368 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_449368 endp




sub_449370 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_449370 endp




sub_449378 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_449378 endp




sub_449380 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_449380 endp


loc_449388:
mov	eax, offset stru_457BF0
jmp	__CxxFrameHandler
align 4



sub_449394 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_449394 endp




sub_44939C proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_44939C endp


loc_4493A4:
mov	eax, offset stru_457C30
jmp	__CxxFrameHandler
align 10h



sub_4493B0 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_4493B0 endp


loc_4493B8:
mov	eax, offset stru_457C60
jmp	__CxxFrameHandler
align 4



sub_4493C4 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_401E60
sub_4493C4 endp


loc_4493CC:
mov	eax, offset stru_457C88
jmp	__CxxFrameHandler
align 4



sub_4493D8 proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_4493D8 endp




sub_4493E0 proc	near
push	dword ptr [ebp-14h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_4493E0 endp




sub_4493EA proc	near
lea	ecx, [ebp-14h]
jmp	sub_4370A0
sub_4493EA endp


loc_4493F2:
mov	eax, offset stru_457CB0
jmp	__CxxFrameHandler



sub_4493FC proc	near
mov	ecx, [ebp-10h]
add	ecx, 2Ch
jmp	sub_4370A0
sub_4493FC endp




sub_449407 proc	near
mov	ecx, [ebp-10h]
add	ecx, 30h
jmp	sub_4370A0
sub_449407 endp


loc_449412:
mov	eax, offset stru_457CE8
jmp	__CxxFrameHandler

loc_44941C:
mov	eax, offset stru_457D18
jmp	__CxxFrameHandler
align 4



sub_449428 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_449428 endp


loc_449430:
mov	eax, offset stru_457D70
jmp	__CxxFrameHandler
align 4

loc_44943C:
mov	eax, offset stru_457DD0
jmp	__CxxFrameHandler
align 4



sub_449448 proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_449448 endp


loc_449450:
mov	eax, offset stru_457E28
jmp	__CxxFrameHandler
align 4

loc_44945C:
mov	eax, offset stru_457E50
jmp	__CxxFrameHandler
align 4

loc_449468:
mov	eax, offset stru_457EA8
jmp	__CxxFrameHandler
align 4



sub_449474 proc	near
lea	ecx, [ebp-44h]
jmp	sub_401E60
sub_449474 endp




sub_44947C proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_44947C endp




sub_449484 proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_449484 endp




sub_44948C proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_44948C endp


loc_449494:
mov	eax, offset stru_457F00
jmp	__CxxFrameHandler
align 10h



sub_4494A0 proc	near
push	dword ptr [ebp-14h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_4494A0 endp




sub_4494AA proc	near
lea	ecx, [ebp-14h]
jmp	sub_4370A0
sub_4494AA endp




sub_4494B2 proc	near
lea	ecx, [ebp-48h]
jmp	sub_40327C
sub_4494B2 endp




sub_4494BA proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_4494BA endp




sub_4494C2 proc	near
lea	ecx, [ebp-34h]
jmp	sub_4302FB
sub_4494C2 endp




sub_4494CA proc	near
lea	ecx, [ebp-48h]
jmp	sub_4302FB
sub_4494CA endp


loc_4494D2:
mov	eax, offset stru_457F78
jmp	__CxxFrameHandler



sub_4494DC proc	near
mov	ecx, [ebp-10h]
add	ecx, 18h
jmp	sub_4370A0
sub_4494DC endp




sub_4494E7 proc	near
mov	ecx, [ebp-10h]
add	ecx, 1Ch
jmp	sub_4370A0
sub_4494E7 endp




sub_4494F2 proc	near
mov	ecx, [ebp-10h]
add	ecx, 20h
jmp	sub_4370A0
sub_4494F2 endp




sub_4494FD proc	near
mov	ecx, [ebp-10h]
add	ecx, 24h
jmp	sub_406E76
sub_4494FD endp




sub_449508 proc	near
mov	ecx, [ebp-10h]
add	ecx, 38h
jmp	sub_406E76
sub_449508 endp




sub_449513 proc	near
mov	ecx, [ebp-10h]
add	ecx, 44h
jmp	sub_406E76
sub_449513 endp




sub_44951E proc	near
mov	ecx, [ebp-10h]
add	ecx, 98h
jmp	sub_4370A0
sub_44951E endp




sub_44952C proc	near
mov	ecx, [ebp-10h]
add	ecx, 0A0h
jmp	sub_4370A0
sub_44952C endp




sub_44953A proc	near
mov	ecx, [ebp-10h]
add	ecx, 0A4h
jmp	sub_40327C
sub_44953A endp




sub_449548 proc	near
mov	ecx, [ebp-10h]
add	ecx, 0BCh
jmp	sub_4370A0
sub_449548 endp




sub_449556 proc	near
push	dword ptr [ebp-14h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_449556 endp


loc_449560:
mov	eax, offset stru_458000
jmp	__CxxFrameHandler
align 4



sub_44956C proc	near
mov	ecx, [ebp-10h]
add	ecx, 18h
jmp	sub_4370A0
sub_44956C endp




sub_449577 proc	near
mov	ecx, [ebp-10h]
add	ecx, 1Ch
jmp	sub_4370A0
sub_449577 endp




sub_449582 proc	near
mov	ecx, [ebp-10h]
add	ecx, 20h
jmp	sub_4370A0
sub_449582 endp




sub_44958D proc	near
mov	ecx, [ebp-10h]
add	ecx, 24h
jmp	sub_406E76
sub_44958D endp




sub_449598 proc	near
mov	ecx, [ebp-10h]
add	ecx, 38h
jmp	sub_406E76
sub_449598 endp




sub_4495A3 proc	near
mov	ecx, [ebp-10h]
add	ecx, 44h
jmp	sub_406E76
sub_4495A3 endp




sub_4495AE proc	near
mov	ecx, [ebp-10h]
add	ecx, 98h
jmp	sub_4370A0
sub_4495AE endp




sub_4495BC proc	near
mov	ecx, [ebp-10h]
add	ecx, 0A0h
jmp	sub_4370A0
sub_4495BC endp




sub_4495CA proc	near
mov	ecx, [ebp-10h]
add	ecx, 0A4h
jmp	sub_40327C
sub_4495CA endp




sub_4495D8 proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_4495D8 endp


loc_4495E0:
mov	eax, offset stru_458078
jmp	__CxxFrameHandler
align 4



sub_4495EC proc	near
mov	ecx, [ebp-10h]
add	ecx, 18h
jmp	sub_4370A0
sub_4495EC endp




sub_4495F7 proc	near
mov	ecx, [ebp-10h]
add	ecx, 20h
jmp	sub_43C1BC
sub_4495F7 endp




sub_449602 proc	near
mov	ecx, [ebp-10h]
add	ecx, 58h
jmp	sub_406E76
sub_449602 endp




sub_44960D proc	near
mov	ecx, [ebp-10h]
add	ecx, 64h
jmp	sub_40327C
sub_44960D endp




sub_449618 proc	near
mov	ecx, [ebp-10h]
add	ecx, 78h
jmp	sub_406E76
sub_449618 endp




sub_449623 proc	near
mov	ecx, [ebp-10h]
add	ecx, 84h
jmp	sub_406E76
sub_449623 endp


loc_449631:
mov	eax, offset stru_4580E8
jmp	__CxxFrameHandler
align 4



sub_44963C proc	near
mov	ecx, [ebp-10h]
jmp	sub_43CFA9
sub_44963C endp




sub_449644 proc	near
mov	ecx, [ebp-10h]
add	ecx, 14h
jmp	sub_40327C
sub_449644 endp




sub_44964F proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_44964F endp




sub_449657 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_449657 endp


loc_44965F:
mov	eax, offset stru_458138
jmp	__CxxFrameHandler
align 4



sub_44966C proc	near
mov	ecx, [ebp-10h]
add	ecx, 18h
jmp	sub_4370A0
sub_44966C endp




sub_449677 proc	near
mov	ecx, [ebp-10h]
add	ecx, 20h
jmp	sub_43C1BC
sub_449677 endp




sub_449682 proc	near
mov	ecx, [ebp-10h]
add	ecx, 58h
jmp	sub_406E76
sub_449682 endp




sub_44968D proc	near
mov	ecx, [ebp-10h]
add	ecx, 64h
jmp	sub_40327C
sub_44968D endp




sub_449698 proc	near
mov	ecx, [ebp-10h]
add	ecx, 78h
jmp	sub_406E76
sub_449698 endp




sub_4496A3 proc	near
mov	ecx, [ebp-10h]
add	ecx, 84h
jmp	sub_406E76
sub_4496A3 endp




sub_4496B1 proc	near
mov	ecx, [ebp-10h]
add	ecx, 94h
jmp	sub_406E76
sub_4496B1 endp




sub_4496BF proc	near
mov	ecx, [ebp-10h]
add	ecx, 0A0h
jmp	sub_40327C
sub_4496BF endp




sub_4496CD proc	near
mov	ecx, [ebp-10h]
add	ecx, 0B4h
jmp	sub_43D12C
sub_4496CD endp




sub_4496DB proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_4496DB endp




sub_4496E3 proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_4496E3 endp




sub_4496EB proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_4496EB endp


loc_4496F3:
mov	eax, offset stru_458178
jmp	__CxxFrameHandler
align 10h



sub_449700 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4408D4
sub_449700 endp




sub_449708 proc	near
mov	ecx, [ebp-10h]
add	ecx, 14h
jmp	sub_43D042
sub_449708 endp




sub_449713 proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_449713 endp




sub_44971B proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_44971B endp


loc_449723:
mov	eax, offset stru_4581F8
jmp	__CxxFrameHandler
align 10h



sub_449730 proc	near
lea	ecx, [ebp-68h]
jmp	loc_407A4A
sub_449730 endp




sub_449738 proc	near
lea	ecx, [ebp-138h]
jmp	sub_434A93
sub_449738 endp




sub_449743 proc	near
lea	ecx, [ebp-0D0h]
jmp	sub_434A93
sub_449743 endp




sub_44974E proc	near
push	dword ptr [ebp+8] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_44974E endp




sub_449758 proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_449758 endp




sub_449760 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_449760 endp


loc_449768:
mov	eax, offset stru_458238
jmp	__CxxFrameHandler
align 4



sub_449774 proc	near
mov	ecx, [ebp-10h]
add	ecx, 8
jmp	sub_43CE25
sub_449774 endp




sub_44977F proc	near
mov	ecx, [ebp-10h]
add	ecx, 1Ch
jmp	sub_43CEBE
sub_44977F endp




sub_44978A proc	near
mov	ecx, [ebp-10h]
add	ecx, 30h
jmp	loc_434E29
sub_44978A endp




sub_449795 proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_449795 endp




sub_44979D proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_44979D endp




sub_4497A5 proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_4497A5 endp




sub_4497AD proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_4497AD endp


loc_4497B5:
mov	eax, offset stru_4582C0
jmp	__CxxFrameHandler
align 10h

loc_4497C0:
mov	eax, offset stru_458318
jmp	__CxxFrameHandler
align 4

loc_4497CC:
mov	eax, offset stru_458370
jmp	__CxxFrameHandler
align 4



sub_4497D8 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_4497D8 endp


unknown_libname_43:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_4583C8
jmp	__CxxFrameHandler



sub_4497EC proc	near
lea	ecx, [ebp+8]
jmp	sub_4370A0
sub_4497EC endp


loc_4497F4:
mov	eax, offset stru_4583F0
jmp	__CxxFrameHandler
align 10h



sub_449800 proc	near
push	dword ptr [ebp-14h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_449800 endp




sub_44980A proc	near
lea	ecx, [ebp-14h]
jmp	sub_4370A0
sub_44980A endp




sub_449812 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_449812 endp




sub_44981A proc	near
lea	ecx, [ebp-34h]
jmp	sub_40327C
sub_44981A endp




sub_449822 proc	near
lea	ecx, [ebp-34h]
jmp	sub_4302FB
sub_449822 endp


loc_44982A:
mov	eax, offset stru_458450
jmp	__CxxFrameHandler

loc_449834:
mov	eax, offset stru_4584D0
jmp	__CxxFrameHandler
align 10h

loc_449840:
mov	eax, offset stru_458528
jmp	__CxxFrameHandler
align 4



sub_44984C proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_401E60
sub_44984C endp




sub_449854 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_449854 endp


loc_44985C:
mov	eax, offset stru_458580
jmp	__CxxFrameHandler
align 4



sub_449868 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_449868 endp


loc_449870:
mov	eax, offset stru_4585E8
jmp	__CxxFrameHandler
align 4



sub_44987C proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_44987C endp


loc_449884:
mov	eax, offset stru_458610
jmp	__CxxFrameHandler
align 10h



sub_449890 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_449890 endp


loc_449898:
mov	eax, offset stru_458638
jmp	__CxxFrameHandler
align 4



sub_4498A4 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_4498A4 endp


loc_4498AC:
mov	eax, offset stru_458660
jmp	__CxxFrameHandler
align 4



sub_4498B8 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_4498B8 endp


loc_4498C0:
mov	eax, offset stru_458688
jmp	__CxxFrameHandler
align 4



sub_4498CC proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_4498CC endp


loc_4498D4:
mov	eax, offset stru_4586B0
jmp	__CxxFrameHandler
align 10h



sub_4498E0 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_4498E0 endp


loc_4498E8:
mov	eax, offset stru_4586D8
jmp	__CxxFrameHandler
align 4



sub_4498F4 proc	near
lea	ecx, [ebp-18h]
jmp	sub_4370A0
sub_4498F4 endp




sub_4498FC proc	near
lea	ecx, [ebp+0Ch]
jmp	sub_4370A0
sub_4498FC endp




sub_449904 proc	near
lea	ecx, [ebp-48h]
jmp	sub_40327C
sub_449904 endp




sub_44990C proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_44990C endp




sub_449914 proc	near
lea	ecx, [ebp+8]
jmp	sub_4370A0
sub_449914 endp




sub_44991C proc	near
lea	ecx, [ebp-34h]
jmp	sub_401E60
sub_44991C endp




sub_449924 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_449924 endp




sub_44992C proc	near
lea	ecx, [ebp-48h]
jmp	sub_4302FB
sub_44992C endp


loc_449934:
mov	eax, offset stru_458700
jmp	__CxxFrameHandler
align 10h



sub_449940 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_449940 endp


loc_449948:
mov	eax, offset stru_458760
jmp	__CxxFrameHandler
align 4



sub_449954 proc	near
lea	ecx, [ebp-0E8h]
jmp	sub_43E434
sub_449954 endp




sub_44995F proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_44995F endp




sub_449967 proc	near
lea	ecx, [ebp-50h]
jmp	sub_40327C
sub_449967 endp




sub_44996F proc	near
lea	ecx, [ebp-94h]
jmp	sub_4302FB
sub_44996F endp




sub_44997A proc	near
lea	ecx, [ebp-50h]
jmp	sub_4302FB
sub_44997A endp




sub_449982 proc	near
lea	ecx, [ebp-50h]
jmp	sub_4302FB
sub_449982 endp




sub_44998A proc	near
lea	ecx, [ebp+18h]
jmp	sub_4370A0
sub_44998A endp




sub_449992 proc	near
lea	ecx, [ebp+10h]
jmp	sub_4370A0
sub_449992 endp




sub_44999A proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_43F29F
sub_44999A endp




sub_4499A2 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_4302FB
sub_4499A2 endp




sub_4499AA proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_4499AA endp




sub_4499B2 proc	near
lea	ecx, [ebp-80h]
jmp	sub_4302FB
sub_4499B2 endp




sub_4499BA proc	near
lea	ecx, [ebp-94h]
jmp	sub_4302FB
sub_4499BA endp




sub_4499C5 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_4302FB
sub_4499C5 endp




sub_4499CD proc	near
lea	ecx, [ebp-6Ch]
jmp	sub_43E4B2
sub_4499CD endp




sub_4499D5 proc	near
push	dword ptr [ebp+10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_4499D5 endp




sub_4499DF proc	near
lea	ecx, [ebp-18h]
jmp	sub_4370A0
sub_4499DF endp




sub_4499E7 proc	near
push	dword ptr [ebp+10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_4499E7 endp




sub_4499F1 proc	near
lea	ecx, [ebp-14h]
jmp	sub_4370A0
sub_4499F1 endp




sub_4499F9 proc	near
lea	ecx, [ebp-5Ch]
jmp	sub_406E76
sub_4499F9 endp




sub_449A01 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_449A01 endp




sub_449A09 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_4302FB
sub_449A09 endp




sub_449A11 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_449A11 endp




sub_449A19 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_4302FB
sub_449A19 endp




sub_449A21 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_4370A0
sub_449A21 endp




sub_449A29 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_4302FB
sub_449A29 endp




sub_449A31 proc	near
lea	ecx, [ebp-50h]
jmp	sub_4302FB
sub_449A31 endp




sub_449A39 proc	near
push	dword ptr [ebp+0Ch] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_449A39 endp




sub_449A43 proc	near
push	dword ptr [ebp+10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_449A43 endp




sub_449A4D proc	near
lea	ecx, [ebp+8]
jmp	sub_4370A0
sub_449A4D endp


loc_449A55:
mov	eax, offset stru_458788
jmp	__CxxFrameHandler
align 10h



sub_449A60 proc	near
lea	ecx, [ebp-70h]
jmp	sub_43E3D8
sub_449A60 endp




sub_449A68 proc	near
lea	ecx, [ebp-48h]
jmp	sub_401E60
sub_449A68 endp




sub_449A70 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_449A70 endp




sub_449A78 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_449A78 endp




sub_449A80 proc	near
lea	ecx, [ebp-70h]
jmp	sub_43E3D8
sub_449A80 endp




sub_449A88 proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_449A88 endp




sub_449A90 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_449A90 endp


loc_449A98:
mov	eax, offset stru_4588D0
jmp	__CxxFrameHandler
align 4



sub_449AA4 proc	near
mov	ecx, [ebp-10h]
jmp	sub_40327C
sub_449AA4 endp




sub_449AAC proc	near
mov	ecx, [ebp-10h]
add	ecx, 14h
jmp	sub_4302FB
sub_449AAC endp




sub_449AB7 proc	near
mov	ecx, [ebp-10h]
add	ecx, 28h
jmp	sub_4302FB
sub_449AB7 endp




sub_449AC2 proc	near
mov	ecx, [ebp-14h]
jmp	sub_4302FB
sub_449AC2 endp




sub_449ACA proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_449ACA endp


loc_449AD2:
mov	eax, offset stru_458928
jmp	__CxxFrameHandler



sub_449ADC proc	near
mov	ecx, [ebp-10h]
add	ecx, 4
jmp	sub_4370A0
sub_449ADC endp




sub_449AE7 proc	near
mov	ecx, [ebp-10h]
add	ecx, 8
jmp	sub_4370A0
sub_449AE7 endp


loc_449AF2:
mov	eax, offset stru_458970
jmp	__CxxFrameHandler



sub_449AFC proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_449AFC endp




sub_449B04 proc	near
lea	ecx, [ebp-18h]
jmp	sub_4370A0
sub_449B04 endp




sub_449B0C proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_449B0C endp




sub_449B14 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_449B14 endp




sub_449B1C proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_449B1C endp


loc_449B24:
mov	eax, offset stru_4589A0
jmp	__CxxFrameHandler
align 10h



sub_449B30 proc	near
lea	ecx, [ebp-34h]
jmp	sub_43E4B2
sub_449B30 endp




sub_449B38 proc	near
push	dword ptr [ebp+8] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_449B38 endp




sub_449B42 proc	near
lea	ecx, [ebp-14h]
jmp	sub_4370A0
sub_449B42 endp




sub_449B4A proc	near
lea	ecx, [ebp-5Ch]
jmp	sub_4302FB
sub_449B4A endp




sub_449B52 proc	near
lea	ecx, [ebp-48h]
jmp	sub_4302FB
sub_449B52 endp


loc_449B5A:
mov	eax, offset stru_4589E8
jmp	__CxxFrameHandler



sub_449B64 proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_43E4B2
sub_449B64 endp




sub_449B6C proc	near
push	dword ptr [ebp+10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_449B6C endp




sub_449B76 proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_449B76 endp




sub_449B7E proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_4302FB
sub_449B7E endp




sub_449B86 proc	near
lea	ecx, [ebp-0E8h]
jmp	sub_43E434
sub_449B86 endp




sub_449B91 proc	near
lea	ecx, [ebp-8Ch]
jmp	sub_4335EF
sub_449B91 endp




sub_449B9C proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_449B9C endp




sub_449BA4 proc	near
lea	ecx, [ebp-98h]
jmp	sub_406E76
sub_449BA4 endp


loc_449BAF:
mov	eax, offset stru_458A30
jmp	__CxxFrameHandler
align 4



sub_449BBC proc	near
lea	ecx, [ebp-8Ch]
jmp	sub_43E4B2
sub_449BBC endp




sub_449BC7 proc	near
push	dword ptr [ebp+10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_449BC7 endp




sub_449BD1 proc	near
lea	ecx, [ebp-0B4h]
jmp	sub_4370A0
sub_449BD1 endp




sub_449BDC proc	near
lea	ecx, [ebp-0A0h]
jmp	sub_4302FB
sub_449BDC endp




sub_449BE7 proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_406E76
sub_449BE7 endp




sub_449BEF proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_449BEF endp




sub_449BF7 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_449BF7 endp




sub_449BFF proc	near
lea	ecx, [ebp-68h]
jmp	sub_406E76
sub_449BFF endp




sub_449C07 proc	near
lea	ecx, [ebp-7Ch]
jmp	sub_4302FB
sub_449C07 endp




sub_449C0F proc	near
lea	ecx, [ebp-30h]
jmp	sub_40327C
sub_449C0F endp




sub_449C17 proc	near
lea	ecx, [ebp-30h]
jmp	sub_4302FB
sub_449C17 endp




sub_449C1F proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_449C1F endp




sub_449C27 proc	near
lea	ecx, [ebp-0C0h]
jmp	sub_406E76
sub_449C27 endp




sub_449C32 proc	near
lea	ecx, [ebp-0D8h]
jmp	sub_406E76
sub_449C32 endp




sub_449C3D proc	near
lea	ecx, [ebp-0CCh]
jmp	sub_406E76
sub_449C3D endp




sub_449C48 proc	near
lea	ecx, [ebp-30h]
jmp	sub_4302FB
sub_449C48 endp




sub_449C50 proc	near
lea	ecx, [ebp-30h]
jmp	sub_4302FB
sub_449C50 endp




sub_449C58 proc	near
lea	ecx, [ebp-30h]
jmp	sub_4302FB
sub_449C58 endp


loc_449C60:
mov	eax, offset stru_458A90
jmp	__CxxFrameHandler
align 4
; [00000008 BYTES: COLLAPSED FUNCTION unknown_libname_44. PRESS	KEYPAD CTRL-"+"	TO EXPAND]



sub_449C74 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_401E60
sub_449C74 endp


loc_449C7C:
mov	eax, offset stru_458B48
jmp	__CxxFrameHandler
align 4



sub_449C88 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_449C88 endp


unknown_libname_45:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_458B78
jmp	__CxxFrameHandler



sub_449C9C proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_449C9C endp


loc_449CA4:
mov	eax, offset stru_458BA0
jmp	__CxxFrameHandler
align 10h



sub_449CB0 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_449CB0 endp


unknown_libname_46:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_458BC8
jmp	__CxxFrameHandler



sub_449CC4 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_449CC4 endp


loc_449CCC:
mov	eax, offset stru_458BF0
jmp	__CxxFrameHandler
align 4



sub_449CD8 proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_4408D4
sub_449CD8 endp


loc_449CE0:
mov	eax, offset stru_458C18
jmp	__CxxFrameHandler
align 4



sub_449CEC proc	near
lea	ecx, [ebp-70h]
jmp	sub_43C409
sub_449CEC endp


loc_449CF4:
mov	eax, offset stru_458C40
jmp	__CxxFrameHandler
align 10h



sub_449D00 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_449D00 endp




sub_449D08 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_449D08 endp


loc_449D10:
mov	eax, offset stru_458C68
jmp	__CxxFrameHandler
align 4



sub_449D1C proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_406E76
sub_449D1C endp




sub_449D24 proc	near
lea	ecx, [ebp-40h]
jmp	sub_406E76
sub_449D24 endp




sub_449D2C proc	near
lea	ecx, [ebp-34h]
jmp	sub_406E76
sub_449D2C endp




sub_449D34 proc	near
lea	ecx, [ebp-28h]
jmp	sub_406E76
sub_449D34 endp


loc_449D3C:
mov	eax, offset stru_458C98
jmp	__CxxFrameHandler
align 4



sub_449D48 proc	near
lea	ecx, [ebp-20h]
jmp	sub_401E60
sub_449D48 endp


loc_449D50:
mov	eax, offset stru_458CD8
jmp	__CxxFrameHandler
align 4



sub_449D5C proc	near
lea	ecx, [ebp-1Ch]
jmp	sub_401E60
sub_449D5C endp


loc_449D64:
mov	eax, offset stru_458D00
jmp	__CxxFrameHandler
align 10h



sub_449D70 proc	near
lea	ecx, [ebp-18h]
jmp	loc_405586
sub_449D70 endp




sub_449D78 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_449D78 endp




sub_449D80 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_449D80 endp


loc_449D88:
mov	eax, offset stru_458D28
jmp	__CxxFrameHandler
align 4



sub_449D94 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_449D94 endp


unknown_libname_47:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_458D60
jmp	__CxxFrameHandler



sub_449DA8 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_449DA8 endp


unknown_libname_48:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_458D88
jmp	__CxxFrameHandler



sub_449DBC proc	near
mov	ecx, [ebp-10h]
jmp	sub_4408D4
sub_449DBC endp




sub_449DC4 proc	near
mov	ecx, [ebp-10h]
add	ecx, 14h
jmp	sub_43D042
sub_449DC4 endp


loc_449DCF:
mov	eax, offset stru_458DB0
jmp	__CxxFrameHandler
align 4



sub_449DDC proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_449DDC endp


loc_449DE4:
mov	eax, offset stru_458DE0
jmp	__CxxFrameHandler
align 10h



sub_449DF0 proc	near
mov	ecx, [ebp-10h]
jmp	sub_4302FB
sub_449DF0 endp


loc_449DF8:
mov	eax, offset stru_458E08
jmp	__CxxFrameHandler
align 4



sub_449E04 proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_449E04 endp


unknown_libname_49:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_458E30
jmp	__CxxFrameHandler



sub_449E18 proc	near
push	dword ptr [ebp-18h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_449E18 endp




sub_449E22 proc	near
lea	ecx, [ebp-18h]
jmp	sub_4370A0
sub_449E22 endp




sub_449E2A proc	near
lea	ecx, [ebp-38h]
jmp	sub_40327C
sub_449E2A endp




sub_449E32 proc	near
lea	ecx, [ebp-14h]
jmp	sub_4370A0
sub_449E32 endp




sub_449E3A proc	near
lea	ecx, [ebp+18h]
jmp	sub_4370A0
sub_449E3A endp




sub_449E42 proc	near
lea	ecx, [ebp-38h]
jmp	sub_4302FB
sub_449E42 endp




sub_449E4A proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_449E4A endp




sub_449E52 proc	near
lea	ecx, [ebp-4Ch]
jmp	sub_4302FB
sub_449E52 endp




sub_449E5A proc	near
lea	ecx, [ebp-38h]
jmp	sub_4302FB
sub_449E5A endp


loc_449E62:
mov	eax, offset stru_458E58
jmp	__CxxFrameHandler



sub_449E6C proc	near
push	dword ptr [ebp-10h] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_449E6C endp


unknown_libname_50:	; Microsoft VisualC 2-11/net runtime
mov	eax, offset stru_458EF8
jmp	__CxxFrameHandler



sub_449E80 proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_449E80 endp




sub_449E88 proc	near
lea	ecx, [ebp+1Ch]
jmp	sub_4370A0
sub_449E88 endp




sub_449E90 proc	near
push	dword ptr [ebp+1Ch] ; Memory
call	sub_4284D8
pop	ecx
retn
sub_449E90 endp




sub_449E9A proc	near
lea	ecx, [ebp+1Ch]
jmp	sub_4370A0
sub_449E9A endp


loc_449EA2:
mov	eax, offset stru_458F20
jmp	__CxxFrameHandler



sub_449EAC proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_449EAC endp


loc_449EB4:
mov	eax, offset stru_458F60
jmp	__CxxFrameHandler
align 10h



sub_449EC0 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_449EC0 endp




sub_449EC8 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_449EC8 endp




sub_449ED0 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_449ED0 endp


loc_449ED8:
mov	eax, offset stru_458F88
jmp	__CxxFrameHandler
align 4



sub_449EE4 proc	near
lea	ecx, [ebp-7Ch]
jmp	sub_4408D4
sub_449EE4 endp




sub_449EEC proc	near
lea	ecx, [ebp-38h]
jmp	sub_406E76
sub_449EEC endp




sub_449EF4 proc	near
lea	ecx, [ebp-44h]
jmp	sub_406E76
sub_449EF4 endp




sub_449EFC proc	near
lea	ecx, [ebp-54h]
jmp	loc_42AF60
sub_449EFC endp




sub_449F04 proc	near
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
sub_449F04 endp




sub_449F0C proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_449F0C endp




sub_449F14 proc	near
lea	ecx, [ebp-68h]
jmp	sub_40327C
sub_449F14 endp




sub_449F1C proc	near
lea	ecx, [ebp-68h]
jmp	sub_4302FB
sub_449F1C endp




sub_449F24 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_449F24 endp




sub_449F2C proc	near
lea	ecx, [ebp-68h]
jmp	sub_4302FB
sub_449F2C endp




sub_449F34 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_449F34 endp




sub_449F3C proc	near
lea	ecx, [ebp-68h]
jmp	sub_4302FB
sub_449F3C endp




sub_449F44 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_449F44 endp




sub_449F4C proc	near
lea	ecx, [ebp+8]
jmp	sub_4370A0
sub_449F4C endp




sub_449F54 proc	near
lea	ecx, [ebp-68h]
jmp	sub_4302FB
sub_449F54 endp




sub_449F5C proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_449F5C endp




sub_449F64 proc	near
lea	ecx, [ebp-68h]
jmp	sub_4302FB
sub_449F64 endp




sub_449F6C proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_449F6C endp




sub_449F74 proc	near
lea	ecx, [ebp-10h]
jmp	sub_4370A0
sub_449F74 endp




sub_449F7C proc	near
lea	ecx, [ebp-68h]
jmp	sub_4302FB
sub_449F7C endp




sub_449F84 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_449F84 endp




sub_449F8C proc	near
lea	ecx, [ebp+8]
jmp	sub_4370A0
sub_449F8C endp




sub_449F94 proc	near
lea	ecx, [ebp-14h]
jmp	sub_4370A0
sub_449F94 endp




sub_449F9C proc	near
lea	ecx, [ebp-68h]
jmp	sub_4302FB
sub_449F9C endp




sub_449FA4 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_449FA4 endp




sub_449FAC proc	near
lea	ecx, [ebp-68h]
jmp	sub_4302FB
sub_449FAC endp




sub_449FB4 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_449FB4 endp




sub_449FBC proc	near
lea	ecx, [ebp-68h]
jmp	sub_4302FB
sub_449FBC endp




sub_449FC4 proc	near
lea	ecx, [ebp-50h]
jmp	sub_406E76
sub_449FC4 endp


loc_449FCC:
mov	eax, offset stru_458FC0
jmp	__CxxFrameHandler
align 4
lea	ecx, [ebp-14h]
jmp	sub_4370A0
lea	ecx, [ebp-2Ch]
jmp	sub_406E76
lea	ecx, [ebp-20h]
jmp	sub_406E76

loc_449FF0:
mov	eax, offset unk_4590C8
jmp	__CxxFrameHandler
align 4



sub_449FFC proc	near
lea	ecx, [ebp+8]
jmp	sub_4370A0
sub_449FFC endp




sub_44A004 proc	near
lea	ecx, [ebp+14h]
jmp	sub_4370A0
sub_44A004 endp


loc_44A00C:
mov	eax, offset stru_459168
jmp	__CxxFrameHandler
align 4



sub_44A018 proc	near
lea	ecx, [ebp-20h]
jmp	sub_406E76
sub_44A018 endp




sub_44A020 proc	near
lea	ecx, [ebp-14h]
jmp	sub_4370A0
sub_44A020 endp




sub_44A028 proc	near
lea	ecx, [ebp+8]
jmp	sub_4370A0
sub_44A028 endp


loc_44A030:
mov	eax, offset stru_4591D0
jmp	__CxxFrameHandler
align 4



sub_44A03C proc	near
lea	ecx, [ebp-24h]
jmp	sub_4302FB
sub_44A03C endp




sub_44A044 proc	near
lea	ecx, [ebp+0Ch]
jmp	sub_4370A0
sub_44A044 endp




sub_44A04C proc	near
lea	ecx, [ebp+8]
jmp	sub_4370A0
sub_44A04C endp


loc_44A054:
mov	eax, offset stru_459240
jmp	__CxxFrameHandler
align 10h



sub_44A060 proc	near
lea	ecx, [ebp-60h]
jmp	sub_406E76
sub_44A060 endp




sub_44A068 proc	near
lea	ecx, [ebp-54h]
jmp	sub_406E76
sub_44A068 endp




sub_44A070 proc	near
lea	ecx, [ebp-48h]
jmp	sub_406E76
sub_44A070 endp




sub_44A078 proc	near
lea	ecx, [ebp-3Ch]
jmp	sub_406E76
sub_44A078 endp




sub_44A080 proc	near
lea	ecx, [ebp-30h]
jmp	sub_406E76
sub_44A080 endp




sub_44A088 proc	near
lea	ecx, [ebp-24h]
jmp	sub_406E76
sub_44A088 endp




sub_44A090 proc	near
lea	ecx, [ebp-18h]
jmp	sub_406E76
sub_44A090 endp


loc_44A098:
mov	eax, offset stru_4592B0
jmp	__CxxFrameHandler
align 4



sub_44A0A4 proc	near
lea	ecx, [ebp+8]
jmp	sub_4370A0
sub_44A0A4 endp


loc_44A0AC:
mov	eax, offset stru_459308
jmp	__CxxFrameHandler
align 4



sub_44A0B8 proc	near
lea	ecx, [ebp-14h]
jmp	sub_4370A0
sub_44A0B8 endp


loc_44A0C0:
mov	eax, offset stru_459330
jmp	__CxxFrameHandler
align 200h
dd 380h	dup(?)
_text ends

; Section 2. (virtual address 0004B000)
; Virtual size			: 0000FEE2 (  65250.)
; Section size in file		: 00010000 (  65536.)
; Offset to raw	data for section: 00049600
; Flags	40000040: Data Readable
; Alignment	: default
;
; Imports from ADVAPI32.dll
;

; Segment type:	Externs
; _idata
; LSTATUS __stdcall RegOpenKeyExA(HKEY hKey, LPCSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY	phkResult)
extrn RegOpenKeyExA:dword
; LSTATUS __stdcall RegCloseKey(HKEY hKey)
extrn RegCloseKey:dword
; LSTATUS __stdcall RegDeleteKeyA(HKEY hKey, LPCSTR lpSubKey)
extrn RegDeleteKeyA:dword
; LSTATUS __stdcall RegEnumKeyExA(HKEY hKey, DWORD dwIndex, LPSTR lpName, LPDWORD lpcchName, LPDWORD lpReserved, LPSTR lpClass,	LPDWORD	lpcchClass, PFILETIME lpftLastWriteTime)
extrn RegEnumKeyExA:dword
; LSTATUS __stdcall RegSetValueExA(HKEY	hKey, LPCSTR lpValueName, DWORD	Reserved, DWORD	dwType,	const BYTE *lpData, DWORD cbData)
extrn RegSetValueExA:dword
; LSTATUS __stdcall RegSetValueExW(HKEY	hKey, LPCWSTR lpValueName, DWORD Reserved, DWORD dwType, const BYTE *lpData, DWORD cbData)
extrn RegSetValueExW:dword
; LSTATUS __stdcall RegQueryValueExA(HKEY hKey,	LPCSTR lpValueName, LPDWORD lpReserved,	LPDWORD	lpType,	LPBYTE lpData, LPDWORD lpcbData)
extrn RegQueryValueExA:dword
; LSTATUS __stdcall RegQueryValueExW(HKEY hKey,	LPCWSTR	lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE	lpData,	LPDWORD	lpcbData)
extrn RegQueryValueExW:dword
; BOOL __stdcall GetUserNameW(LPWSTR lpBuffer, LPDWORD pcbBuffer)
extrn GetUserNameW:dword
; LSTATUS __stdcall RegCreateKeyExA(HKEY hKey, LPCSTR lpSubKey,	DWORD Reserved,	LPSTR lpClass, DWORD dwOptions,	REGSAM samDesired, const LPSECURITY_ATTRIBUTES lpSecurityAttributes, PHKEY phkResult, LPDWORD lpdwDisposition)
extrn RegCreateKeyExA:dword

;
; Imports from COMCTL32.dll
;
; INT_PTR __stdcall PropertySheetA(LPCPROPSHEETHEADERA)
extrn PropertySheetA:dword
; INT_PTR __stdcall PropertySheetW(LPCPROPSHEETHEADERW)
extrn PropertySheetW:dword
; BOOL __stdcall InitCommonControlsEx(const INITCOMMONCONTROLSEX *picce)
extrn InitCommonControlsEx:dword
; HWND __stdcall CreateToolbarEx(HWND hwnd, DWORD ws, UINT wID,	int nBitmaps, HINSTANCE	hBMInst, UINT_PTR wBMID, LPCTBBUTTON lpButtons,	int iNumButtons, int dxButton, int dyButton, int dxBitmap, int dyBitmap, UINT uStructSize)
extrn CreateToolbarEx:dword
; HWND __stdcall CreateStatusWindowW(LONG style, LPCWSTR lpszText, HWND	hwndParent, UINT wID)
extrn CreateStatusWindowW:dword
; void __stdcall InitCommonControls()
extrn InitCommonControls:dword
; int __stdcall	ImageList_GetImageCount(HIMAGELIST himl)
extrn ImageList_GetImageCount:dword
; int __stdcall	ImageList_AddMasked(HIMAGELIST himl, HBITMAP hbmImage, COLORREF	crMask)
extrn ImageList_AddMasked:dword
; HIMAGELIST __stdcall ImageList_Create(int cx,	int cy,	UINT flags, int	cInitial, int cGrow)
extrn ImageList_Create:dword
; BOOL __stdcall ImageList_Destroy(HIMAGELIST himl)
extrn ImageList_Destroy:dword

;
; Imports from GDI32.dll
;
; BOOL __stdcall DeleteObject(HGDIOBJ ho)
extrn DeleteObject:dword

;
; Imports from KERNEL32.dll
;
; void __stdcall EnterCriticalSection(LPCRITICAL_SECTION lpCriticalSection)
extrn EnterCriticalSection:dword
; void __stdcall GetStartupInfoA(LPSTARTUPINFOA	lpStartupInfo)
extrn GetStartupInfoA:dword
; void __stdcall InitializeCriticalSection(LPCRITICAL_SECTION lpCriticalSection)
extrn InitializeCriticalSection:dword
; BOOL __stdcall SetEvent(HANDLE hEvent)
extrn SetEvent:dword
; BOOL __stdcall VirtualFree(LPVOID lpAddress, SIZE_T dwSize, DWORD dwFreeType)
extrn VirtualFree:dword
; LPVOID __stdcall VirtualAlloc(LPVOID lpAddress, SIZE_T dwSize, DWORD flAllocationType, DWORD flProtect)
extrn VirtualAlloc:dword
; HANDLE __stdcall CreateEventA(LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState,	LPCSTR lpName)
extrn CreateEventA:dword
; HANDLE __stdcall CreateFileMappingA(HANDLE hFile, LPSECURITY_ATTRIBUTES lpFileMappingAttributes, DWORD flProtect, DWORD dwMaximumSizeHigh, DWORD dwMaximumSizeLow, LPCSTR lpName)
extrn CreateFileMappingA:dword
; LPVOID __stdcall MapViewOfFile(HANDLE	hFileMappingObject, DWORD dwDesiredAccess, DWORD dwFileOffsetHigh, DWORD dwFileOffsetLow, SIZE_T dwNumberOfBytesToMap)
extrn MapViewOfFile:dword
; BOOL __stdcall UnmapViewOfFile(LPCVOID lpBaseAddress)
extrn UnmapViewOfFile:dword
; HANDLE __stdcall GetStdHandle(DWORD nStdHandle)
extrn GetStdHandle:dword
; LPVOID __stdcall HeapAlloc(HANDLE hHeap, DWORD dwFlags, SIZE_T dwBytes)
extrn HeapAlloc:dword
; HANDLE __stdcall GetProcessHeap()
extrn GetProcessHeap:dword
; BOOL __stdcall HeapFree(HANDLE hHeap,	DWORD dwFlags, LPVOID lpMem)
extrn HeapFree:dword
; BOOL __stdcall GetDiskFreeSpaceA(LPCSTR lpRootPathName, LPDWORD lpSectorsPerCluster, LPDWORD lpBytesPerSector, LPDWORD lpNumberOfFreeClusters, LPDWORD lpTotalNumberOfClusters)
extrn GetDiskFreeSpaceA:dword
; BOOL __stdcall GetVolumeInformationW(LPCWSTR lpRootPathName, LPWSTR lpVolumeNameBuffer, DWORD	nVolumeNameSize, LPDWORD lpVolumeSerialNumber, LPDWORD lpMaximumComponentLength, LPDWORD lpFileSystemFlags, LPWSTR lpFileSystemNameBuffer, DWORD nFileSystemNameSize)
extrn GetVolumeInformationW:dword
; BOOL __stdcall GetVolumeInformationA(LPCSTR lpRootPathName, LPSTR lpVolumeNameBuffer,	DWORD nVolumeNameSize, LPDWORD lpVolumeSerialNumber, LPDWORD lpMaximumComponentLength, LPDWORD lpFileSystemFlags, LPSTR	lpFileSystemNameBuffer,	DWORD nFileSystemNameSize)
extrn GetVolumeInformationA:dword
; void __stdcall GetSystemTime(LPSYSTEMTIME lpSystemTime)
extrn GetSystemTime:dword
; BOOL __stdcall SystemTimeToFileTime(const SYSTEMTIME *lpSystemTime, LPFILETIME lpFileTime)
extrn SystemTimeToFileTime:dword
; BOOL __stdcall FileTimeToDosDateTime(const FILETIME *lpFileTime, LPWORD lpFatDate, LPWORD lpFatTime)
extrn FileTimeToDosDateTime:dword
; BOOL __stdcall FileTimeToSystemTime(const FILETIME *lpFileTime, LPSYSTEMTIME lpSystemTime)
extrn FileTimeToSystemTime:dword
; BOOL __stdcall CreateProcessA(LPCSTR lpApplicationName, LPSTR	lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES	lpThreadAttributes, BOOL bInheritHandles, DWORD	dwCreationFlags, LPVOID	lpEnvironment, LPCSTR lpCurrentDirectory, LPSTARTUPINFOA lpStartupInfo,	LPPROCESS_INFORMATION lpProcessInformation)
extrn CreateProcessA:dword
; BOOL __stdcall CreateProcessW(LPCWSTR	lpApplicationName, LPWSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCWSTR lpCurrentDirectory, LPSTARTUPINFOW lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation)
extrn CreateProcessW:dword
; BOOL __stdcall SetEndOfFile(HANDLE hFile)
extrn SetEndOfFile:dword
; BOOL __stdcall WriteFile(HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite,	LPDWORD	lpNumberOfBytesWritten,	LPOVERLAPPED lpOverlapped)
extrn WriteFile:dword
; BOOL __stdcall ReadFile(HANDLE hFile,	LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped)
extrn ReadFile:dword
; BOOL __stdcall DeviceIoControl(HANDLE	hDevice, DWORD dwIoControlCode,	LPVOID lpInBuffer, DWORD nInBufferSize,	LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesReturned, LPOVERLAPPED	lpOverlapped)
extrn DeviceIoControl:dword
; DWORD	__stdcall SetFilePointer(HANDLE	hFile, LONG lDistanceToMove, PLONG lpDistanceToMoveHigh, DWORD dwMoveMethod)
extrn SetFilePointer:dword
; DWORD	__stdcall GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)
extrn GetFileSize:dword
; HANDLE __stdcall CreateFileA(LPCSTR lpFileName, DWORD	dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes,	DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE	hTemplateFile)
extrn CreateFileA:dword
; DWORD	__stdcall GetLogicalDriveStringsW(DWORD	nBufferLength, LPWSTR lpBuffer)
extrn GetLogicalDriveStringsW:dword
; DWORD	__stdcall GetLogicalDriveStringsA(DWORD	nBufferLength, LPSTR lpBuffer)
extrn GetLogicalDriveStringsA:dword
; HANDLE __stdcall FindFirstChangeNotificationW(LPCWSTR	lpPathName, BOOL bWatchSubtree,	DWORD dwNotifyFilter)
extrn FindFirstChangeNotificationW:dword
; HANDLE __stdcall FindFirstChangeNotificationA(LPCSTR lpPathName, BOOL	bWatchSubtree, DWORD dwNotifyFilter)
extrn FindFirstChangeNotificationA:dword
; BOOL __stdcall FindCloseChangeNotification(HANDLE hChangeHandle)
extrn FindCloseChangeNotification:dword
; BOOL __stdcall FindNextFileW(HANDLE hFindFile, LPWIN32_FIND_DATAW lpFindFileData)
extrn FindNextFileW:dword
; BOOL __stdcall FindNextFileA(HANDLE hFindFile, LPWIN32_FIND_DATAA lpFindFileData)
extrn FindNextFileA:dword
; HANDLE __stdcall FindFirstFileW(LPCWSTR lpFileName, LPWIN32_FIND_DATAW lpFindFileData)
extrn FindFirstFileW:dword
; HANDLE __stdcall FindFirstFileA(LPCSTR lpFileName, LPWIN32_FIND_DATAA	lpFindFileData)
extrn FindFirstFileA:dword
; BOOL __stdcall FindClose(HANDLE hFindFile)
extrn FindClose:dword
; UINT __stdcall GetTempFileNameW(LPCWSTR lpPathName, LPCWSTR lpPrefixString, UINT uUnique, LPWSTR lpTempFileName)
extrn GetTempFileNameW:dword
; UINT __stdcall GetTempFileNameA(LPCSTR lpPathName, LPCSTR lpPrefixString, UINT uUnique, LPSTR	lpTempFileName)
extrn GetTempFileNameA:dword
; DWORD	__stdcall GetTempPathW(DWORD nBufferLength, LPWSTR lpBuffer)
extrn GetTempPathW:dword
; DWORD	__stdcall GetTempPathA(DWORD nBufferLength, LPSTR lpBuffer)
extrn GetTempPathA:dword
; DWORD	__stdcall GetCurrentDirectoryW(DWORD nBufferLength, LPWSTR lpBuffer)
extrn GetCurrentDirectoryW:dword
; DWORD	__stdcall GetFullPathNameW(LPCWSTR lpFileName, DWORD nBufferLength, LPWSTR lpBuffer, LPWSTR *lpFilePart)
extrn GetFullPathNameW:dword
; DWORD	__stdcall GetFullPathNameA(LPCSTR lpFileName, DWORD nBufferLength, LPSTR lpBuffer, LPSTR *lpFilePart)
extrn GetFullPathNameA:dword
; BOOL __stdcall DeleteFileW(LPCWSTR lpFileName)
extrn DeleteFileW:dword
; BOOL __stdcall DeleteFileA(LPCSTR lpFileName)
extrn DeleteFileA:dword
; BOOL __stdcall CreateDirectoryW(LPCWSTR lpPathName, LPSECURITY_ATTRIBUTES lpSecurityAttributes)
extrn CreateDirectoryW:dword
; BOOL __stdcall CreateDirectoryA(LPCSTR lpPathName, LPSECURITY_ATTRIBUTES lpSecurityAttributes)
extrn CreateDirectoryA:dword
; BOOL __stdcall MoveFileW(LPCWSTR lpExistingFileName, LPCWSTR lpNewFileName)
extrn MoveFileW:dword
; BOOL __stdcall RemoveDirectoryW(LPCWSTR lpPathName)
extrn RemoveDirectoryW:dword
; BOOL __stdcall SetFileAttributesW(LPCWSTR lpFileName,	DWORD dwFileAttributes)
extrn SetFileAttributesW:dword
; BOOL __stdcall MoveFileA(LPCSTR lpExistingFileName, LPCSTR lpNewFileName)
extrn MoveFileA:dword
; BOOL __stdcall RemoveDirectoryA(LPCSTR lpPathName)
extrn RemoveDirectoryA:dword
; BOOL __stdcall SetFileAttributesA(LPCSTR lpFileName, DWORD dwFileAttributes)
extrn SetFileAttributesA:dword
; void __stdcall SetLastError(DWORD dwErrCode)
extrn SetLastError:dword
; HANDLE __stdcall CreateFileW(LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD	dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile)
extrn CreateFileW:dword
; BOOL __stdcall SetFileTime(HANDLE hFile, const FILETIME *lpCreationTime, const FILETIME *lpLastAccessTime, const FILETIME *lpLastWriteTime)
extrn SetFileTime:dword
; UINT __stdcall GetWindowsDirectoryW(LPWSTR lpBuffer, UINT uSize)
extrn GetWindowsDirectoryW:dword
; UINT __stdcall GetWindowsDirectoryA(LPSTR lpBuffer, UINT uSize)
extrn GetWindowsDirectoryA:dword
; DWORD	__stdcall FormatMessageW(DWORD dwFlags,	LPCVOID	lpSource, DWORD	dwMessageId, DWORD dwLanguageId, LPWSTR	lpBuffer, DWORD	nSize, va_list *Arguments)
extrn FormatMessageW:dword
; DWORD	__stdcall FormatMessageA(DWORD dwFlags,	LPCVOID	lpSource, DWORD	dwMessageId, DWORD dwLanguageId, LPSTR lpBuffer, DWORD nSize, va_list *Arguments)
extrn FormatMessageA:dword
; HLOCAL __stdcall LocalFree(HLOCAL hMem)
extrn LocalFree:dword
; DWORD	__stdcall GetModuleFileNameW(HMODULE hModule, LPWSTR lpFilename, DWORD nSize)
extrn GetModuleFileNameW:dword
; DWORD	__stdcall GetModuleFileNameA(HMODULE hModule, LPSTR lpFilename,	DWORD nSize)
extrn GetModuleFileNameA:dword
; HMODULE __stdcall LoadLibraryW(LPCWSTR lpLibFileName)
extrn LoadLibraryW:dword
; HMODULE __stdcall LoadLibraryExW(LPCWSTR lpLibFileName, HANDLE hFile,	DWORD dwFlags)
extrn LoadLibraryExW:dword
; HMODULE __stdcall LoadLibraryExA(LPCSTR lpLibFileName, HANDLE	hFile, DWORD dwFlags)
extrn LoadLibraryExA:dword
; int __stdcall	WideCharToMultiByte(UINT CodePage, DWORD dwFlags, LPCWSTR lpWideCharStr, int cchWideChar, LPSTR	lpMultiByteStr,	int cbMultiByte, LPCSTR	lpDefaultChar, LPBOOL lpUsedDefaultChar)
extrn WideCharToMultiByte:dword
; int __stdcall	MultiByteToWideChar(UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr, int cbMultiByte, LPWSTR lpWideCharStr,	int cchWideChar)
extrn MultiByteToWideChar:dword
; UINT __stdcall GetDriveTypeA(LPCSTR lpRootPathName)
extrn GetDriveTypeA:dword
; HANDLE __stdcall GetCurrentProcess()
extrn GetCurrentProcess:dword
; BOOL __stdcall SetPriorityClass(HANDLE hProcess, DWORD dwPriorityClass)
extrn SetPriorityClass:dword
; LPSTR	__stdcall lstrcatA(LPSTR lpString1, LPCSTR lpString2)
extrn lstrcatA:dword
; int __stdcall	lstrlenA(LPCSTR	lpString)
extrn lstrlenA:dword
; DWORD	__stdcall GetTickCount()
extrn GetTickCount:dword
; BOOL __stdcall FileTimeToLocalFileTime(const FILETIME	*lpFileTime, LPFILETIME	lpLocalFileTime)
extrn FileTimeToLocalFileTime:dword
; DWORD	__stdcall WaitForMultipleObjects(DWORD nCount, const HANDLE *lpHandles,	BOOL bWaitAll, DWORD dwMilliseconds)
extrn WaitForMultipleObjects:dword
; void __stdcall Sleep(DWORD dwMilliseconds)
extrn Sleep:dword
; BOOL __stdcall CloseHandle(HANDLE hObject)
extrn CloseHandle:dword
; LONG __stdcall CompareFileTime(const FILETIME	*lpFileTime1, const FILETIME *lpFileTime2)
extrn CompareFileTime:dword
; HGLOBAL __stdcall GlobalAlloc(UINT uFlags, SIZE_T dwBytes)
extrn GlobalAlloc:dword
; HGLOBAL __stdcall GlobalFree(HGLOBAL hMem)
extrn GlobalFree:dword
; SIZE_T __stdcall GlobalSize(HGLOBAL hMem)
extrn GlobalSize:dword
; LPVOID __stdcall GlobalLock(HGLOBAL hMem)
extrn GlobalLock:dword
; BOOL __stdcall GlobalUnlock(HGLOBAL hMem)
extrn GlobalUnlock:dword
; LANGID __stdcall GetSystemDefaultLangID()
extrn GetSystemDefaultLangID:dword
; LANGID __stdcall GetUserDefaultLangID()
extrn GetUserDefaultLangID:dword
; BOOL __stdcall AreFileApisANSI()
extrn AreFileApisANSI:dword
; HMODULE __stdcall GetModuleHandleW(LPCWSTR lpModuleName)
extrn GetModuleHandleW:dword
; BOOL __stdcall CopyFileW(LPCWSTR lpExistingFileName, LPCWSTR lpNewFileName, BOOL bFailIfExists)
extrn CopyFileW:dword
; HMODULE __stdcall GetModuleHandleA(LPCSTR lpModuleName)
extrn GetModuleHandleA:dword
; BOOL __stdcall CopyFileA(LPCSTR lpExistingFileName, LPCSTR lpNewFileName, BOOL bFailIfExists)
extrn CopyFileA:dword
; DWORD	__stdcall WaitForSingleObject(HANDLE hHandle, DWORD dwMilliseconds)
extrn WaitForSingleObject:dword
; BOOL __stdcall FindNextChangeNotification(HANDLE hChangeHandle)
extrn FindNextChangeNotification:dword
; DWORD	__stdcall GetCompressedFileSizeW(LPCWSTR lpFileName, LPDWORD lpFileSizeHigh)
extrn GetCompressedFileSizeW:dword
; HMODULE __stdcall LoadLibraryA(LPCSTR	lpLibFileName)
extrn LoadLibraryA:dword
; BOOL __stdcall FreeLibrary(HMODULE hLibModule)
extrn FreeLibrary:dword
; LPWSTR __stdcall GetCommandLineW()
extrn GetCommandLineW:dword
; BOOL __stdcall GetVersionExA(LPOSVERSIONINFOA	lpVersionInformation)
extrn GetVersionExA:dword
; FARPROC __stdcall GetProcAddress(HMODULE hModule, LPCSTR lpProcName)
extrn GetProcAddress:dword
; void __stdcall DeleteCriticalSection(LPCRITICAL_SECTION lpCriticalSection)
extrn DeleteCriticalSection:dword
; DWORD	__stdcall GetLastError()
extrn GetLastError:dword
; LONG __stdcall InterlockedDecrement(volatile LONG *lpAddend)
extrn InterlockedDecrement:dword
; LONG __stdcall InterlockedIncrement(volatile LONG *lpAddend)
extrn InterlockedIncrement:dword
; void __stdcall LeaveCriticalSection(LPCRITICAL_SECTION lpCriticalSection)
extrn LeaveCriticalSection:dword

;
; Imports from MPR.dll
;
; DWORD	__stdcall WNetAddConnection2W(LPNETRESOURCEW lpNetResource, LPCWSTR lpPassword,	LPCWSTR	lpUserName, DWORD dwFlags)
extrn __imp_WNetAddConnection2W:dword
; DWORD	__stdcall WNetOpenEnumA(DWORD dwScope, DWORD dwType, DWORD dwUsage, LPNETRESOURCEA lpNetResource, LPHANDLE lphEnum)
extrn __imp_WNetOpenEnumA:dword
; DWORD	__stdcall WNetOpenEnumW(DWORD dwScope, DWORD dwType, DWORD dwUsage, LPNETRESOURCEW lpNetResource, LPHANDLE lphEnum)
extrn __imp_WNetOpenEnumW:dword
; DWORD	__stdcall WNetCloseEnum(HANDLE hEnum)
extrn __imp_WNetCloseEnum:dword
; DWORD	__stdcall WNetEnumResourceA(HANDLE hEnum, LPDWORD lpcCount, LPVOID lpBuffer, LPDWORD lpBufferSize)
extrn __imp_WNetEnumResourceA:dword
; DWORD	__stdcall WNetEnumResourceW(HANDLE hEnum, LPDWORD lpcCount, LPVOID lpBuffer, LPDWORD lpBufferSize)
extrn __imp_WNetEnumResourceW:dword
; DWORD	__stdcall WNetGetResourceParentA(LPNETRESOURCEA	lpNetResource, LPVOID lpBuffer,	LPDWORD	lpcbBuffer)
extrn __imp_WNetGetResourceParentA:dword
; DWORD	__stdcall WNetGetResourceParentW(LPNETRESOURCEW	lpNetResource, LPVOID lpBuffer,	LPDWORD	lpcbBuffer)
extrn __imp_WNetGetResourceParentW:dword
; DWORD	__stdcall WNetGetResourceInformationA(LPNETRESOURCEA lpNetResource, LPVOID lpBuffer, LPDWORD lpcbBuffer, LPSTR *lplpSystem)
extrn __imp_WNetGetResourceInformationA:dword
; DWORD	__stdcall WNetGetResourceInformationW(LPNETRESOURCEW lpNetResource, LPVOID lpBuffer, LPDWORD lpcbBuffer, LPWSTR	*lplpSystem)
extrn __imp_WNetGetResourceInformationW:dword
; DWORD	__stdcall WNetAddConnection2A(LPNETRESOURCEA lpNetResource, LPCSTR lpPassword, LPCSTR lpUserName, DWORD	dwFlags)
extrn __imp_WNetAddConnection2A:dword

;
; Imports from MSVCRT.dll
;
; int __cdecl memcmp(const void	*Buf1, const void *Buf2, size_t	Size)
extrn __imp_memcmp:dword
extrn __setusermatherr:dword
extrn __imp__initterm:dword
extrn __getmainargs:dword
extrn _acmdln:dword
; unsigned int __cdecl _controlfp(unsigned int NewValue, unsigned int Mask)
extrn __imp__controlfp:dword
extrn __set_app_type:dword
extrn __p__fmode:dword
; void __cdecl exit(int	Code)
extrn exit:dword
extrn __imp__XcptFilter:dword
; void __cdecl exit(int	Code)
extrn _exit:dword
; __declspec(dllimport)	void __cdecl terminate(void)
extrn __imp_?terminate@@YAXXZ:dword
; _onexit_t __cdecl onexit(_onexit_t Func)
extrn _onexit:dword
extrn __imp___dllonexit:dword
; __declspec(dllimport)	public:	virtual	__thiscall type_info::~type_info(void)
extrn __imp_??1type_info@@UAE@XZ:dword
extrn __imp__except_handler3:dword
extrn _beginthreadex:dword
; size_t __cdecl strlen(const char *Str)
extrn __imp_strlen:dword
; int __cdecl wcsncmp(const wchar_t *Str1, const wchar_t *Str2,	size_t MaxCount)
extrn wcsncmp:dword
; int __cdecl rand()
extrn __imp_rand:dword
; void __cdecl srand(unsigned int Seed)
extrn srand:dword
extrn __p__commode:dword
; void __cdecl free(void *Memory)
extrn free:dword
; void *__cdecl	malloc(size_t Size)
extrn malloc:dword
extrn __imp___CxxFrameHandler:dword
extrn __imp__CxxThrowException:dword
extrn _adjust_fdiv:dword
extrn __imp__purecall:dword
; void *__cdecl	memset(void *Dst, int Val, size_t Size)
extrn __imp_memset:dword
; void *__cdecl	memmove(void *Dst, const void *Src, size_t Size)
extrn memmove:dword
; void *__cdecl	memcpy(void *Dst, const	void *Src, size_t Size)
extrn __imp_memcpy:dword
; int __cdecl wcsicmp(const wchar_t *Str1, const wchar_t *Str2)
extrn _wcsicmp:dword
; size_t __cdecl wcslen(const wchar_t *Str)
extrn wcslen:dword

;
; Imports from OLEAUT32.dll
;
; HRESULT __stdcall VariantCopy(VARIANTARG *pvargDest, const VARIANTARG	*pvargSrc)
extrn VariantCopy:dword
; HRESULT __stdcall VariantClear(VARIANTARG *pvarg)
extrn VariantClear:dword
; BSTR __stdcall SysAllocString(const OLECHAR *psz)
extrn SysAllocString:dword
; void __stdcall SysFreeString(BSTR bstrString)
extrn SysFreeString:dword
; BSTR __stdcall SysAllocStringByteLen(LPCSTR psz, UINT	len)
extrn SysAllocStringByteLen:dword
; UINT __stdcall SysStringByteLen(BSTR bstr)
extrn SysStringByteLen:dword

;
; Imports from SHELL32.dll
;
; HRESULT __stdcall SHGetSpecialFolderLocation(HWND hwnd, int csidl, LPITEMIDLIST *ppidl)
extrn SHGetSpecialFolderLocation:dword
; HRESULT __stdcall SHGetMalloc(IMalloc	**ppMalloc)
extrn SHGetMalloc:dword
; int __stdcall	SHFileOperationA(LPSHFILEOPSTRUCTA lpFileOp)
extrn SHFileOperationA:dword
; HINSTANCE __stdcall ShellExecuteA(HWND hwnd, LPCSTR lpOperation, LPCSTR lpFile, LPCSTR lpParameters, LPCSTR lpDirectory, INT nShowCmd)
extrn ShellExecuteA:dword
; BOOL __stdcall ShellExecuteExA(SHELLEXECUTEINFOA *pExecInfo)
extrn ShellExecuteExA:dword
; DWORD_PTR __stdcall SHGetFileInfoA(LPCSTR pszPath, DWORD dwFileAttributes, SHFILEINFOA *psfi,	UINT cbFileInfo, UINT uFlags)
extrn SHGetFileInfoA:dword
; void __stdcall SHChangeNotify(LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID dwItem2)
extrn SHChangeNotify:dword
; void __stdcall DragFinish(HDROP hDrop)
extrn DragFinish:dword
; UINT __stdcall DragQueryFileA(HDROP hDrop, UINT iFile, LPSTR lpszFile, UINT cch)
extrn DragQueryFileA:dword
; BOOL __stdcall SHGetPathFromIDListA(LPCITEMIDLIST pidl, LPSTR	pszPath)
extrn SHGetPathFromIDListA:dword
; UINT __stdcall DragQueryFileW(HDROP hDrop, UINT iFile, LPWSTR	lpszFile, UINT cch)
extrn DragQueryFileW:dword
; LPITEMIDLIST __stdcall SHBrowseForFolderA(LPBROWSEINFOA lpbi)
extrn SHBrowseForFolderA:dword
; HRESULT __stdcall SHGetDesktopFolder(IShellFolder **ppshf)
extrn SHGetDesktopFolder:dword

;
; Imports from USER32.dll
;
; int __stdcall	GetWindowTextLengthW(HWND hWnd)
extrn GetWindowTextLengthW:dword
; __int32 __stdcall GetDialogBaseUnits()
extrn GetDialogBaseUnits:dword
; BOOL __stdcall SystemParametersInfoA(UINT uiAction, UINT uiParam, PVOID pvParam, UINT	fWinIni)
extrn SystemParametersInfoA:dword
; INT_PTR __stdcall DialogBoxParamA(HINSTANCE hInstance, LPCSTR	lpTemplateName,	HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam)
extrn DialogBoxParamA:dword
; int __stdcall	GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount)
extrn GetWindowTextW:dword
; int __stdcall	GetWindowTextLengthA(HWND hWnd)
extrn GetWindowTextLengthA:dword
; int __stdcall	GetWindowTextA(HWND hWnd, LPSTR	lpString, int nMaxCount)
extrn GetWindowTextA:dword
; BOOL __stdcall SetWindowTextW(HWND hWnd, LPCWSTR lpString)
extrn SetWindowTextW:dword
; BOOL __stdcall SetWindowTextA(HWND hWnd, LPCSTR lpString)
extrn SetWindowTextA:dword
; HWND __stdcall CreateWindowExW(DWORD dwExStyle, LPCWSTR lpClassName, LPCWSTR lpWindowName, DWORD dwStyle, int	X, int Y, int nWidth, int nHeight, HWND	hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam)
extrn CreateWindowExW:dword
; ATOM __stdcall RegisterClassW(const WNDCLASSW	*lpWndClass)
extrn RegisterClassW:dword
; ATOM __stdcall RegisterClassA(const WNDCLASSA	*lpWndClass)
extrn RegisterClassA:dword
; LRESULT __stdcall SendMessageW(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
extrn SendMessageW:dword
; int __stdcall	LoadStringW(HINSTANCE hInstance, UINT uID, LPWSTR lpBuffer, int	cchBufferMax)
extrn LoadStringW:dword
; int __stdcall	LoadStringA(HINSTANCE hInstance, UINT uID, LPSTR lpBuffer, int cchBufferMax)
extrn LoadStringA:dword
; BOOL __stdcall AppendMenuW(HMENU hMenu, UINT uFlags, UINT_PTR	uIDNewItem, LPCWSTR lpNewItem)
extrn AppendMenuW:dword
; BOOL __stdcall AppendMenuA(HMENU hMenu, UINT uFlags, UINT_PTR	uIDNewItem, LPCSTR lpNewItem)
extrn AppendMenuA:dword
; BOOL __stdcall InsertMenuItemA(HMENU hmenu, UINT item, BOOL fByPosition, LPCMENUITEMINFOA lpmi)
extrn InsertMenuItemA:dword
; BOOL __stdcall InsertMenuItemW(HMENU hmenu, UINT item, BOOL fByPosition, LPCMENUITEMINFOW lpmi)
extrn InsertMenuItemW:dword
; BOOL __stdcall SetMenuItemInfoA(HMENU	hmenu, UINT item, BOOL fByPositon, LPCMENUITEMINFOA lpmii)
extrn SetMenuItemInfoA:dword
; BOOL __stdcall SetMenuItemInfoW(HMENU	hmenu, UINT item, BOOL fByPositon, LPCMENUITEMINFOW lpmii)
extrn SetMenuItemInfoW:dword
; BOOL __stdcall GetMenuItemInfoA(HMENU	hmenu, UINT item, BOOL fByPosition, LPMENUITEMINFOA lpmii)
extrn GetMenuItemInfoA:dword
; BOOL __stdcall GetMenuItemInfoW(HMENU	hmenu, UINT item, BOOL fByPosition, LPMENUITEMINFOW lpmii)
extrn GetMenuItemInfoW:dword
; LPSTR	__stdcall CharPrevA(LPCSTR lpszStart, LPCSTR lpszCurrent)
extrn CharPrevA:dword
; HANDLE __stdcall SetClipboardData(UINT uFormat, HANDLE hMem)
extrn SetClipboardData:dword
; BOOL __stdcall EmptyClipboard()
extrn EmptyClipboard:dword
; BOOL __stdcall CloseClipboard()
extrn CloseClipboard:dword
; BOOL __stdcall OpenClipboard(HWND hWndNewOwner)
extrn OpenClipboard:dword
; LPWSTR __stdcall CharLowerW(LPWSTR lpsz)
extrn CharLowerW:dword
; LPSTR	__stdcall CharLowerA(LPSTR lpsz)
extrn CharLowerA:dword
; LPWSTR __stdcall CharUpperW(LPWSTR lpsz)
extrn CharUpperW:dword
; LPSTR	__stdcall CharUpperA(LPSTR lpsz)
extrn CharUpperA:dword
; BOOL __stdcall KillTimer(HWND	hWnd, UINT_PTR uIDEvent)
extrn KillTimer:dword
; HCURSOR __stdcall SetCursor(HCURSOR hCursor)
extrn SetCursor:dword
; int wsprintfA(LPSTR, LPCSTR, ...)
extrn wsprintfA:dword
; BOOL __stdcall SetDlgItemTextA(HWND hDlg, int	nIDDlgItem, LPCSTR lpString)
extrn SetDlgItemTextA:dword
; BOOL __stdcall MapDialogRect(HWND hDlg, LPRECT lpRect)
extrn MapDialogRect:dword
; BOOL __stdcall ClientToScreen(HWND hWnd, LPPOINT lpPoint)
extrn ClientToScreen:dword
; int __stdcall	GetMenuItemCount(HMENU hMenu)
extrn GetMenuItemCount:dword
; BOOL __stdcall TrackPopupMenuEx(HMENU, UINT, int, int, HWND, LPTPMPARAMS)
extrn TrackPopupMenuEx:dword
; BOOL __stdcall GetCursorPos(LPPOINT lpPoint)
extrn GetCursorPos:dword
; BOOL __stdcall ScreenToClient(HWND hWnd, LPPOINT lpPoint)
extrn ScreenToClient:dword
; BOOL __stdcall IsWindowEnabled(HWND hWnd)
extrn IsWindowEnabled:dword
; HWND __stdcall ChildWindowFromPointEx(HWND hwnd, POINT pt, UINT flags)
extrn ChildWindowFromPointEx:dword
; HWND __stdcall WindowFromPoint(POINT Point)
extrn WindowFromPoint:dword
; UINT __stdcall RegisterClipboardFormatA(LPCSTR lpszFormat)
extrn RegisterClipboardFormatA:dword
; BOOL __stdcall PostMessageA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
extrn PostMessageA:dword
; LONG __stdcall SetWindowLongW(HWND hWnd, int nIndex, LONG dwNewLong)
extrn SetWindowLongW:dword
; BOOL __stdcall InvalidateRect(HWND hWnd, const RECT *lpRect, BOOL bErase)
extrn InvalidateRect:dword
; BOOL __stdcall UpdateWindow(HWND hWnd)
extrn UpdateWindow:dword
; UINT_PTR __stdcall SetTimer(HWND hWnd, UINT_PTR nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc)
extrn SetTimer:dword
; UINT __stdcall MapVirtualKeyA(UINT uCode, UINT uMapType)
extrn MapVirtualKeyA:dword
; LRESULT __stdcall CallWindowProcW(WNDPROC lpPrevWndFunc, HWND	hWnd, UINT Msg,	WPARAM wParam, LPARAM lParam)
extrn CallWindowProcW:dword
; LRESULT __stdcall CallWindowProcA(WNDPROC lpPrevWndFunc, HWND	hWnd, UINT Msg,	WPARAM wParam, LPARAM lParam)
extrn CallWindowProcA:dword
; SHORT	__stdcall GetKeyState(int nVirtKey)
extrn GetKeyState:dword
; BOOL __stdcall EnableMenuItem(HMENU hMenu, UINT uIDEnableItem, UINT uEnable)
extrn EnableMenuItem:dword
; BOOL __stdcall RemoveMenu(HMENU hMenu, UINT uPosition, UINT uFlags)
extrn RemoveMenu:dword
; BOOL __stdcall CheckMenuRadioItem(HMENU hmenu, UINT first, UINT last,	UINT check, UINT flags)
extrn CheckMenuRadioItem:dword
; DWORD	__stdcall CheckMenuItem(HMENU hMenu, UINT uIDCheckItem,	UINT uCheck)
extrn CheckMenuItem:dword
; HMENU	__stdcall GetMenu(HWND hWnd)
extrn GetMenu:dword
; HMENU	__stdcall LoadMenuA(HINSTANCE hInstance, LPCSTR	lpMenuName)
extrn LoadMenuA:dword
; BOOL __stdcall SetMenu(HWND hWnd, HMENU hMenu)
extrn SetMenu:dword
; BOOL __stdcall DrawMenuBar(HWND hWnd)
extrn DrawMenuBar:dword
; HMENU	__stdcall CreatePopupMenu()
extrn CreatePopupMenu:dword
; HMENU	__stdcall GetSubMenu(HMENU hMenu, int nPos)
extrn GetSubMenu:dword
; BOOL __stdcall DestroyMenu(HMENU hMenu)
extrn DestroyMenu:dword
; HWND __stdcall GetParent(HWND	hWnd)
extrn GetParent:dword
; UINT __stdcall IsDlgButtonChecked(HWND hDlg, int nIDButton)
extrn IsDlgButtonChecked:dword
; BOOL __stdcall CheckDlgButton(HWND hDlg, int nIDButton, UINT uCheck)
extrn CheckDlgButton:dword
; BOOL __stdcall CheckRadioButton(HWND hDlg, int nIDFirstButton, int nIDLastButton, int	nIDCheckButton)
extrn CheckRadioButton:dword
; HWND __stdcall GetDlgItem(HWND hDlg, int nIDDlgItem)
extrn GetDlgItem:dword
; BOOL __stdcall GetWindowRect(HWND hWnd, LPRECT lpRect)
extrn GetWindowRect:dword
; BOOL __stdcall MoveWindow(HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint)
extrn MoveWindow:dword
; BOOL __stdcall IsZoomed(HWND hWnd)
extrn IsZoomed:dword
; BOOL __stdcall GetClientRect(HWND hWnd, LPRECT lpRect)
extrn GetClientRect:dword
; int __stdcall	MessageBoxW(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType)
extrn MessageBoxW:dword
; BOOL __stdcall ReleaseCapture()
extrn ReleaseCapture:dword
; HWND __stdcall SetCapture(HWND hWnd)
extrn SetCapture:dword
; HWND __stdcall GetCapture()
extrn GetCapture:dword
; LRESULT __stdcall DefWindowProcW(HWND	hWnd, UINT Msg,	WPARAM wParam, LPARAM lParam)
extrn DefWindowProcW:dword
; LRESULT __stdcall DefWindowProcA(HWND	hWnd, UINT Msg,	WPARAM wParam, LPARAM lParam)
extrn DefWindowProcA:dword
; HACCEL __stdcall LoadAcceleratorsW(HINSTANCE hInstance, LPCWSTR lpTableName)
extrn LoadAcceleratorsW:dword
; BOOL __stdcall GetMessageW(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax)
extrn GetMessageW:dword
; int __stdcall	TranslateAcceleratorW(HWND hWnd, HACCEL	hAccTable, LPMSG lpMsg)
extrn TranslateAcceleratorW:dword
; BOOL __stdcall TranslateMessage(const	MSG *lpMsg)
extrn TranslateMessage:dword
; LRESULT __stdcall DispatchMessageW(const MSG *lpMsg)
extrn DispatchMessageW:dword
; HACCEL __stdcall LoadAcceleratorsA(HINSTANCE hInstance, LPCSTR lpTableName)
extrn LoadAcceleratorsA:dword
; BOOL __stdcall GetMessageA(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax)
extrn GetMessageA:dword
; int __stdcall	TranslateAcceleratorA(HWND hWnd, HACCEL	hAccTable, LPMSG lpMsg)
extrn TranslateAcceleratorA:dword
; LRESULT __stdcall DispatchMessageA(const MSG *lpMsg)
extrn DispatchMessageA:dword
; HICON	__stdcall LoadIconA(HINSTANCE hInstance, LPCSTR	lpIconName)
extrn LoadIconA:dword
; HCURSOR __stdcall LoadCursorA(HINSTANCE hInstance, LPCSTR lpCursorName)
extrn LoadCursorA:dword
; BOOL __stdcall GetWindowPlacement(HWND hWnd, WINDOWPLACEMENT *lpwndpl)
extrn GetWindowPlacement:dword
; BOOL __stdcall SetWindowPlacement(HWND hWnd, const WINDOWPLACEMENT *lpwndpl)
extrn SetWindowPlacement:dword
; void __stdcall PostQuitMessage(int nExitCode)
extrn PostQuitMessage:dword
; BOOL __stdcall EndDialog(HWND	hDlg, INT_PTR nResult)
extrn EndDialog:dword
; BOOL __stdcall EnableWindow(HWND hWnd, BOOL bEnable)
extrn EnableWindow:dword
; BOOL __stdcall ShowWindow(HWND hWnd, int nCmdShow)
extrn ShowWindow:dword
; HBITMAP __stdcall LoadBitmapA(HINSTANCE hInstance, LPCSTR lpBitmapName)
extrn LoadBitmapA:dword
; HWND __stdcall CreateWindowExA(DWORD dwExStyle, LPCSTR lpClassName, LPCSTR lpWindowName, DWORD dwStyle, int X, int Y,	int nWidth, int	nHeight, HWND hWndParent, HMENU	hMenu, HINSTANCE hInstance, LPVOID lpParam)
extrn CreateWindowExA:dword
; BOOL __stdcall DestroyWindow(HWND hWnd)
extrn DestroyWindow:dword
; LONG __stdcall GetWindowLongA(HWND hWnd, int nIndex)
extrn GetWindowLongA:dword
; LONG __stdcall SetWindowLongA(HWND hWnd, int nIndex, LONG dwNewLong)
extrn SetWindowLongA:dword
; HWND __stdcall SetFocus(HWND hWnd)
extrn SetFocus:dword
; LRESULT __stdcall SendMessageA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
extrn SendMessageA:dword
; INT_PTR __stdcall DialogBoxParamW(HINSTANCE hInstance, LPCWSTR lpTemplateName, HWND hWndParent, DLGPROC lpDialogFunc,	LPARAM dwInitParam)
extrn DialogBoxParamW:dword
; BOOL __stdcall GetClassInfoA(HINSTANCE hInstance, LPCSTR lpClassName,	LPWNDCLASSA lpWndClass)
extrn GetClassInfoA:dword
; BOOL __stdcall GetClassInfoW(HINSTANCE hInstance, LPCWSTR lpClassName, LPWNDCLASSW lpWndClass)
extrn GetClassInfoW:dword

;
; Imports from comdlg32.dll
;
; BOOL __stdcall GetOpenFileNameA(LPOPENFILENAMEA)
extrn GetOpenFileNameA:dword
; BOOL __stdcall GetOpenFileNameW(LPOPENFILENAMEW)
extrn GetOpenFileNameW:dword

;
; Imports from ole32.dll
;
; void __stdcall OleUninitialize()
extrn OleUninitialize:dword
; void __stdcall CoTaskMemFree(LPVOID pv)
extrn CoTaskMemFree:dword
; LPVOID __stdcall CoTaskMemAlloc(SIZE_T cb)
extrn CoTaskMemAlloc:dword
; HRESULT __stdcall OleInitialize(LPVOID pvReserved)
extrn OleInitialize:dword
; HRESULT __stdcall CoInitialize(LPVOID	pvReserved)
extrn CoInitialize:dword
; void __stdcall ReleaseStgMedium(LPSTGMEDIUM)
extrn ReleaseStgMedium:dword
; HRESULT __stdcall RegisterDragDrop(HWND hwnd,	LPDROPTARGET pDropTarget)
extrn RegisterDragDrop:dword
; HRESULT __stdcall RevokeDragDrop(HWND	hwnd)
extrn RevokeDragDrop:dword
; void __stdcall CoUninitialize()
extrn __imp_CoUninitialize:dword
; HRESULT __stdcall DoDragDrop(LPDATAOBJECT pDataObj, LPDROPSOURCE pDropSource,	DWORD dwOKEffects, LPDWORD pdwEffect)
extrn DoDragDrop:dword



; Segment type:	Pure data
; Segment permissions: Read
_rdata segment para public 'DATA' use32
assume cs:_rdata
;org 44B50Ch
align 10h
off_44B510 dd offset sub_40335F
dd offset sub_4032FB
off_44B518 dd offset sub_406E1E
dd offset sub_42847F
off_44B520 dd offset sub_4027B1
dd offset sub_42847F
off_44B528 dd offset sub_402CFB
dd offset sub_42FA35
dd offset sub_421839
dd offset sub_42FAC5
dd offset sub_42FAAB
dd offset sub_4218E5
dd offset nullsub_4
dd offset sub_421B02
dd offset sub_42181D
dd offset sub_402C61
dd offset sub_402C50
dd offset sub_402C50
off_44B558 dd offset sub_411B96
dd offset sub_42FA35
dd offset sub_402C48
dd offset sub_42FAC5
dd offset sub_42FAAB
dd offset sub_402C4B
dd offset nullsub_4
dd offset sub_42FAE0
dd offset sub_402C55
dd offset sub_402C61
dd offset sub_402C50
dd offset sub_402C50
off_44B588 dd offset unknown_libname_1 ; Microsoft VisualC 2-11/net runtime
dd offset sub_42FA35
dd offset sub_402C48
dd offset sub_42FAC5
dd offset sub_42FAAB
dd offset sub_402C4B
dd offset nullsub_4
dd offset sub_42FAE0
dd offset nullsub_4
dd offset nullsub_4
dd offset sub_402C50
dd offset sub_402C50
off_44B5B8 dd offset sub_406E1E
dd offset sub_42847F
unk_44B5C0 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    1
db    0
db  0Ch
db    0
db    0
unk_44B5D0 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    1
db    0
db  0Ah
db    0
db    0
unk_44B5E0 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    1
db    0
db  0Bh
db    0
db    0
unk_44B5F0 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    1
db    0
db  0Eh
db    0
db    0
unk_44B600 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    1
db    0
db    5
db    0
db    0
unk_44B610 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    1
db    0
db    7
db    0
db    0
unk_44B620 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    9
db    0
db    5
db    0
db    0
unk_44B630 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    8
db    0
db  11h
db    0
db    0
unk_44B640 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    8
db    0
db  10h
db    0
db    0
unk_44B650 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    8
db    0
db  0Eh
db    0
db    0
unk_44B660 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    8
db    0
db  0Ah
db    0
db    0
unk_44B670 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    8
db    0
db    9
db    0
db    0
unk_44B680 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    8
db    0
db    8
db    0
db    0
unk_44B690 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    8
db    0
db    7
db    0
db    0
unk_44B6A0 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    8
db    0
db    6
db    0
db    0
unk_44B6B0 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    8
db    0
db  0Bh
db    0
db    0
unk_44B6C0 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    8
db    0
db    4
db    0
db    0
unk_44B6D0 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    8
db    0
db    0
db    0
db    0
unk_44B6E0 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    4
db    0
db  61h	; a
db    0
db    0
unk_44B6F0 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    4
db    0
db  24h	; $
db    0
db    0
unk_44B700 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    4
db    0
db    4
db    0
db    0
unk_44B710 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    5
db    0
db  11h
db    0
db    0
unk_44B720 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    5
db    0
db  10h
db    0
db    0
unk_44B730 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    6
db    0
db    3
db    0
db    0
unk_44B740 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    6
db    0
db 0A0h	; †
db    0
db    0
unk_44B750 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    6
db    0
db  82h	; Ç
db    0
db    0
unk_44B760 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    6
db    0
db  61h	; a
db    0
db    0
unk_44B770 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    6
db    0
db  60h	; `
db    0
db    0
unk_44B780 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    6
db    0
db  50h	; P
db    0
db    0
unk_44B790 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    6
db    0
db  40h	; @
db    0
db    0
unk_44B7A0 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    6
db    0
db  30h	; 0
db    0
db    0
unk_44B7B0 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    6
db    0
db  10h
db    0
db    0
unk_44B7C0 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    3
db    0
db    6
db    0
db    0
unk_44B7D0 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    3
db    0
db    4
db    0
db    0
unk_44B7E0 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    3
db    0
db    3
db    0
db    0
unk_44B7F0 db  69h ; i
db  0Fh
db  17h
db  23h	; #
db 0C1h	; ¡
db  40h	; @
db  8Ah	; ä
db  27h	; '
db    0
db    0
db    0
db    0
db    0
db    5
db    0
db    0
off_44B800 dd offset sub_403616
dd offset sub_406711
dd offset sub_403660
dd offset sub_403701
dd offset sub_40375D
dd offset sub_403775
dd offset sub_403782
off_44B81C dd offset sub_4047BD
dd offset sub_4100A1
dd offset sub_4047C7
dd offset sub_404291
off_44B82C dd offset sub_4047A9
dd offset sub_410083
dd offset sub_4047B3
dd offset sub_403B21
off_44B83C dd offset sub_404781
dd offset sub_410065
dd offset sub_40478B
dd offset sub_404795
dd offset sub_40479F
dd offset sub_4043AE
dd offset sub_403DAE
dd offset sub_40402B
dd offset sub_4039C3
off_44B860 dd offset sub_403ACB
dd offset sub_403AD9
dd offset sub_403ADE
dd offset sub_403AEF
dd offset sub_403B00
dd offset sub_403B18
dd offset sub_403B1C
off_44B87C dd offset sub_403850
dd offset sub_403900
dd offset sub_40390D
dd offset sub_403A0D
dd offset sub_403A69
dd offset sub_403B83
dd offset sub_403D85
dd offset sub_403D9C
dd offset sub_403DC3
dd offset sub_403EF1
dd offset sub_404066
dd offset sub_440DC5
dd offset sub_4041B7
dd offset sub_40427C
off_44B8B4 dd offset sub_403D44
dd offset sub_42FA35
dd offset sub_422BA4
dd offset sub_42FAC5
dd offset sub_42FAAB
dd offset sub_402C4B
dd offset nullsub_4
dd offset sub_422C03
dd offset sub_402C55
dd offset sub_402C61
dd offset sub_402C50
dd offset sub_402C50
off_44B8E4 dd offset sub_404392
dd offset sub_42FA35
dd offset sub_422C3A
dd offset sub_42FAC5
dd offset sub_42FAAB
dd offset sub_402C4B
dd offset nullsub_4
dd offset sub_422C96
dd offset sub_422D2C
dd offset sub_402C61
dd offset sub_402C50
dd offset sub_402C50
off_44B914 dd offset sub_404D42
dd offset sub_4363AF
dd offset sub_404D8C
dd offset sub_4400B1
dd offset sub_44017E
dd offset sub_44024D
off_44B92C dd offset sub_40529F
dd offset sub_406B2F
off_44B934 dd offset sub_4052F7
dd offset sub_4100A1
dd offset sub_405301
dd offset sub_40D018
off_44B944 dd offset sub_4052E3
dd offset sub_410083
dd offset sub_4052ED
dd offset sub_40CDF2
dd offset sub_40CE1D
off_44B958 dd offset sub_4052CF
dd offset sub_410065
dd offset sub_4052D9
dd offset sub_404FBA
off_44B968 dd offset sub_4052BB
dd offset sub_410047
dd offset sub_4052C5
dd offset sub_40CE4D
dd offset sub_40CF10
off_44B97C dd offset sub_404EC5
dd offset sub_403900
dd offset sub_404F95
dd offset sub_40CCBA
dd offset sub_40CD82
off_44B990 dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44B9A0 dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44B9B4 dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44B9C4 dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44B9D8 dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44B9EC dd offset sub_406E1E
dd offset sub_42847F
off_44B9F4 dd offset sub_401000
dd offset sub_401031
dd offset sub_401086
dd offset sub_40109C
dd offset sub_4010A8
dd offset sub_4010B4
dd offset sub_4010D4
dd offset sub_4010FB
dd offset sub_401117
off_44BA18 dd offset sub_4059F2
dd offset sub_40DB5F
dd offset sub_40DE8B
dd offset sub_40E4B9
dd offset sub_4305AD
dd offset sub_40E3C8
dd offset sub_40E446
dd offset sub_40E2EA
dd offset sub_4059CD
off_44BA3C dd offset sub_405AE4
dd offset sub_406C0C
off_44BA44 dd offset sub_406D06
dd offset sub_43CEF6
off_44BA4C dd offset sub_406E3A
dd offset sub_406CA5
off_44BA54 dd offset sub_406E1E
dd offset sub_42847F
off_44BA5C dd offset unknown_libname_2 ; Microsoft VisualC 2-11/net runtime
dd offset sub_43050D
dd offset ??8_ContextCallback@details@Concurrency@@QBE_NABV012@@Z ; Concurrency::details::_ContextCallback::operator==(Concurrency::details::_ContextCallback const &)
dd offset sub_4305CB
dd offset sub_4305AD
dd offset sub_402C4B
dd offset sub_402C4B
dd offset sub_4059C4
dd offset sub_4059CD
off_44BA80 dd offset sub_406D5A
dd offset sub_406B2F
off_44BA88 dd offset sub_406D76
dd offset sub_406BAB
off_44BA90 dd offset sub_406DCA
dd offset sub_406C0C
off_44BA98 dd offset sub_4066C7
dd offset sub_406711
dd offset sub_406726
dd offset sub_412208
dd offset sub_412441
dd offset sub_41247A
dd offset sub_4124A6
; int nIDFirstButton
nIDFirstButton dd 3F3h
db 0F4h	; Ù
db    3
db    0
db    0
; int nIDLastButton
nIDLastButton dd 3F5h
off_44BAC0 dd offset sub_4097AE
dd offset sub_40960C
off_44BAC8 dd offset sub_409A80
dd offset sub_409A8A
dd offset sub_409A94
dd offset sub_4094FF
off_44BAD8 dd offset sub_409A62
dd offset sub_409A6C
dd offset sub_409A76
dd offset sub_40945A
off_44BAE8 dd offset sub_409A44
dd offset sub_409A4E
dd offset sub_409A58
dd offset sub_408CB2
off_44BAF8 dd offset sub_409A26
dd offset sub_409A30
dd offset sub_409A3A
dd offset sub_408EDF
off_44BB08 dd offset sub_409A08
dd offset sub_409A12
dd offset sub_409A1C
dd offset sub_408FFC
dd offset sub_409085
dd offset sub_409110
dd offset sub_4091D1
dd offset sub_409AE4
dd offset sub_40AAE5
dd offset sub_42717E
dd offset sub_4092BF
off_44BB34 dd offset sub_4099EA
dd offset sub_4099F4
dd offset sub_4099FE
dd offset sub_408C61
off_44BB44 dd offset sub_408311
dd offset sub_40841E
dd offset sub_40842B
dd offset sub_407B0F
dd offset sub_407E30
dd offset sub_407E45
dd offset sub_40868B
dd offset sub_40861D
dd offset sub_40869F
dd offset sub_408B7E
dd offset sub_408BA0
dd offset sub_408BDE
off_44BB74 dd offset sub_40975A
dd offset sub_427FFB
off_44BB7C dd offset sub_406E1E
dd offset sub_42847F
off_44BB84 dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44BB94 dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44BBA4 dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44BBB4 dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44BBC4 dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44BBF0 dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44BC00 dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44BC30 dd offset sub_414126
dd offset sub_414130
dd offset sub_409ADA
dd offset sub_427953
off_44BC40 dd offset sub_412A3B
dd offset sub_441007
dd offset sub_408957
dd offset sub_42743B
dd offset sub_4275F4
dd offset sub_427606
dd offset sub_4277BF
dd offset sub_4276A4
dd offset sub_4277C7
dd offset sub_41ED95
dd offset sub_4278AB
dd offset sub_4278E9
off_44BC70 dd offset sub_40986B
dd offset sub_4096A5
off_44BC78 dd offset sub_409ABC
dd offset sub_409AC6
dd offset sub_409AD0
dd offset sub_426B14
off_44BC88 dd offset sub_409A9E
dd offset sub_409AA8
dd offset sub_409AB2
dd offset sub_4277BF
dd offset sub_4277BF
dd offset sub_427176
dd offset sub_427176
dd offset sub_426CC5
dd offset sub_42717E
dd offset sub_42717E
dd offset sub_42717E
off_44BCB4 dd offset sub_408A9C
dd offset sub_408B11
dd offset sub_408B1E
dd offset sub_426554
dd offset sub_4267D8
dd offset sub_4267EA
dd offset sub_4269C4
dd offset sub_426994
dd offset sub_41F42B
dd offset sub_4269D8
dd offset sub_4269E7
dd offset sub_426A25
off_44BCE4 dd offset sub_409706
dd offset sub_409549
off_44BCEC dd offset sub_40B7A9
dd offset sub_40B64E
off_44BCF4 dd offset sub_40B7C5
dd offset sub_40B748
align 10h
unk_44BD00 db	 2
db    1
db    0
db    3
db    3
db    1
db    0
db    3
db    4
db    1
db    0
db    3
db    7
db    1
db    0
db    3
db    5
db    1
db    0
db    3
db    6
db    1
db    0
db    3
unk_44BD18 db 0D2h ; “
db    0
db    0
db    0
dword_44BD1C dd	3000210h
db 0D3h	; ”
db    0
db    0
db    0
db  11h
db    2
db    0
db    3
db 0D4h	; ‘
db    0
db    0
db    0
db  12h
db    2
db    0
db    3
db 0DCh	; ‹
db    0
db    0
db    0
db  20h
db    2
db    0
db    3
db 0DDh	; ›
db    0
db    0
db    0
db  21h	; !
db    2
db    0
db    3
db 0E6h	; Ê
db    0
db    0
db    0
db  30h	; 0
db    2
db    0
db    3
db 0E7h	; Á
db    0
db    0
db    0
db  31h	; 1
db    2
db    0
db    3
db 0E8h	; Ë
db    0
db    0
db    0
db  32h	; 2
db    2
db    0
db    3
db 0E9h	; È
db    0
db    0
db    0
db  33h	; 3
db    2
db    0
db    3
db 0F0h	; 
db    0
db    0
db    0
db  40h	; @
db    2
db    0
db    3
db 0F1h	; Ò
db    0
db    0
db    0
db  41h	; A
db    2
db    0
db    3
db 0F2h	; Ú
db    0
db    0
db    0
db  42h	; B
db    2
db    0
db    3
db 0F3h	; Û
db    0
db    0
db    0
db  43h	; C
db    2
db    0
db    3
db 0EEh	; Ó
db    0
db    0
db    0
db  70h	; p
db    2
db    0
db    3
db 0EFh	; Ô
db    0
db    0
db    0
db  71h	; q
db    2
db    0
db    3
db 0FAh	; ˙
db    0
db    0
db    0
db  50h	; P
db    2
db    0
db    3
db 0FBh	; ˚
db    0
db    0
db    0
db  51h	; Q
db    2
db    0
db    3
db    8
db    0
db    0
db    0
db  60h	; `
db    2
db    0
db    3
db  40h	; @
db    1
db    0
db    0
db  20h
db    3
db    0
db    3
db  41h	; A
db    1
db    0
db    0
db  21h	; !
db    3
db    0
db    3
db  42h	; B
db    1
db    0
db    0
db  22h	; "
db    3
db    0
db    3
db  4Ah	; J
db    1
db    0
db    0
db  30h	; 0
db    3
db    0
db    3
db  4Bh	; K
db    1
db    0
db    0
db  31h	; 1
db    3
db    0
db    3
db  4Ch	; L
db    1
db    0
db    0
db  32h	; 2
db    3
db    0
db    3
db  4Dh	; M
db    1
db    0
db    0
db  33h	; 3
db    3
db    0
db    3
db  4Eh	; N
db    1
db    0
db    0
db  34h	; 4
db    3
db    0
db    3
db  4Fh	; O
db    1
db    0
db    0
db  35h	; 5
db    3
db    0
db    3
db  50h	; P
db    1
db    0
db    0
db  36h	; 6
db    3
db    0
db    3
db  9Ah	; ö
db    1
db    0
db    0
db  10h
db    4
db    0
db    3
db  9Bh	; õ
db    1
db    0
db    0
db  11h
db    4
db    0
db    3
db  9Ch	; ú
db    1
db    0
db    0
db  12h
db    4
db    0
db    3
db  9Dh	; ù
db    1
db    0
db    0
db  13h
db    4
db    0
db    3
db 0A4h	; §
db    1
db    0
db    0
db    4
db    2
db    0
db    2
db 0A5h	; •
db    1
db    0
db    0
db  14h
db    2
db    0
db    2
db 0A6h	; ¶
db    1
db    0
db    0
db  0Ch
db    2
db    0
db    2
db 0A7h	; ß
db    1
db    0
db    0
db    7
db    2
db    0
db    2
db 0A8h	; ®
db    1
db    0
db    0
db  20h
db    4
db    0
db    3
db 0AEh	; Æ
db    1
db    0
db    0
db  30h	; 0
db    4
db    0
db    3
db 0AFh	; Ø
db    1
db    0
db    0
db  31h	; 1
db    4
db    0
db    3
db 0B0h	; ∞
db    1
db    0
db    0
db  32h	; 2
db    4
db    0
db    3
db 0B8h	; ∏
db    1
db    0
db    0
db  40h	; @
db    4
db    0
db    3
db 0C1h	; ¡
db    1
db    0
db    0
db  49h	; I
db    4
db    0
db    3
db 0C2h	; ¬
db    1
db    0
db    0
db  50h	; P
db    4
db    0
db    3
db 0CDh	; Õ
db    1
db    0
db    0
db  60h	; `
db    4
db    0
db    3
db 0CCh	; Ã
db    1
db    0
db    0
db  61h	; a
db    4
db    0
db    3
db 0CEh	; Œ
db    1
db    0
db    0
db  62h	; b
db    4
db    0
db    3
db 0CFh	; œ
db    1
db    0
db    0
db  63h	; c
db    4
db    0
db    3
db 0FEh	; ˛
db    1
db    0
db    0
db  10h
db    5
db    0
db    3
db 0FFh
db    1
db    0
db    0
db  11h
db    5
db    0
db    3
db  62h	; b
db    2
db    0
db    0
db  10h
db    6
db    0
db    3
db  6Ch	; l
db    2
db    0
db    0
db  20h
db    6
db    0
db    3
off_44BEB0 dd offset sub_411B96
dd offset sub_42FA35
dd offset sub_4215BE
dd offset sub_42FAC5
dd offset sub_42FAAB
dd offset sub_402C4B
dd offset sub_4215F3
dd offset sub_421600
dd offset sub_402C55
dd offset sub_402C61
dd offset sub_402C50
dd offset sub_402C50
off_44BEE0 dd offset sub_40D870
dd offset sub_40B64E
off_44BEE8 dd offset sub_411B96
dd offset sub_42FA35
dd offset sub_40B8E5
dd offset sub_42FAC5
dd offset sub_42FAAB
dd offset sub_402C4B
dd offset nullsub_4
dd offset sub_40BBBC
dd offset nullsub_4
dd offset nullsub_4
dd offset sub_40BBE9
dd offset sub_402C50
dd offset sub_40D498
dd offset sub_40D495
dd offset sub_40D4A0
dd offset sub_40D4A8
dd offset sub_40D4AB
dd offset sub_40BB12
dd offset sub_40D4B3
dd offset sub_40BBAF
dd offset sub_40D4BB
dd offset nullsub_4
dd offset sub_40BC0F
off_44BF44 dd offset sub_411B96
dd offset sub_42FA35
dd offset sub_4253AD
dd offset sub_42FAC5
dd offset sub_42FAAB
dd offset sub_402C4B
dd offset nullsub_4
dd offset sub_42557B
dd offset nullsub_4
dd offset nullsub_4
dd offset sub_42FF89
dd offset sub_402C50
dd offset sub_40D498
dd offset sub_40D495
dd offset sub_40D4A0
dd offset sub_40D4A8
dd offset sub_40D4AB
dd offset sub_4254A2
dd offset sub_40D4B3
dd offset sub_42556E
dd offset sub_40D4BB
dd offset nullsub_4
off_44BF9C dd offset sub_411B96
dd offset sub_42FA35
dd offset sub_402C48
dd offset sub_42FAC5
dd offset sub_42FAAB
dd offset sub_402C4B
dd offset nullsub_4
dd offset sub_42FAE0
dd offset nullsub_4
dd offset nullsub_4
dd offset sub_42FF89
dd offset sub_402C50
dd offset sub_40D498
dd offset sub_40D495
dd offset sub_40D4A0
dd offset sub_40D4A8
dd offset sub_40D4AB
dd offset sub_40D4A8
dd offset sub_40D4B3
dd offset nullsub_4
dd offset sub_40D4BB
dd offset nullsub_4
off_44BFF4 dd offset sub_40D4EE
dd offset sub_42FA35
dd offset sub_421E72
dd offset sub_422165
dd offset sub_42FAAB
dd offset sub_402C4B
dd offset nullsub_4
dd offset sub_42FAE0
dd offset nullsub_4
dd offset nullsub_4
dd offset sub_42FF89
dd offset sub_402C50
dd offset sub_40D498
dd offset sub_40D495
dd offset sub_40D4A0
dd offset sub_40D4A8
dd offset sub_40D4AB
dd offset sub_42211A
dd offset sub_40D4B3
dd offset sub_422158
dd offset sub_40D4BB
dd offset nullsub_4
off_44C04C dd offset sub_40D59E
dd offset sub_426319
dd offset sub_4259E3
dd offset sub_42FAC5
dd offset sub_42FAAB
dd offset sub_402C4B
dd offset nullsub_4
dd offset sub_42610D
dd offset nullsub_4
dd offset nullsub_4
dd offset sub_42613D
dd offset sub_402C50
dd offset sub_40D498
dd offset sub_40D495
dd offset sub_40D4A0
dd offset sub_40D4A8
dd offset sub_40D4AB
dd offset sub_425C8B
dd offset sub_40D4B3
dd offset sub_4260AB
dd offset sub_40D4BB
dd offset nullsub_4
dd offset sub_40BC0F
off_44C0A8 dd offset sub_40D854
dd offset sub_40D75C
off_44C0B0 dd offset sub_411B96
dd offset sub_42FA35
dd offset sub_421BF6
dd offset sub_421E39
dd offset sub_42FAAB
dd offset sub_402C4B
dd offset nullsub_4
dd offset sub_421D5C
dd offset nullsub_4
dd offset nullsub_4
dd offset sub_42FF89
dd offset sub_402C50
dd offset sub_40D498
dd offset sub_40D495
dd offset sub_40D4A0
dd offset sub_40D4A8
dd offset sub_40D4AB
dd offset sub_421CBE
dd offset sub_40D4B3
dd offset sub_421D4F
dd offset sub_40D4BB
dd offset nullsub_4
off_44C108 dd offset sub_404392
dd offset sub_42FA35
dd offset sub_4070DF
dd offset sub_4072A0
dd offset sub_42FAAB
dd offset sub_402C4B
dd offset nullsub_4
dd offset sub_40724E
dd offset nullsub_4
dd offset nullsub_4
dd offset sub_42FF89
dd offset sub_402C50
dd offset sub_40D498
dd offset sub_40D495
dd offset sub_40D4A0
dd offset sub_40D4A8
dd offset sub_40D4AB
dd offset sub_407389
dd offset sub_40D4B3
dd offset sub_40739E
dd offset sub_40D4BB
dd offset nullsub_4
off_44C160 dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44C170 dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44C194 dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44C1B0 dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44C1E8 dd offset sub_40EE03
off_44C1EC dd offset _purecall
off_44C1F0 dd offset sub_40F482
off_44C1F4 dd offset sub_410097
dd offset sub_4100A1
dd offset sub_4100AB
dd offset sub_4205F0
off_44C204 dd offset sub_410079
dd offset sub_410083
dd offset sub_41008D
dd offset sub_420726
dd offset sub_42072B
off_44C218 dd offset sub_41005B
dd offset sub_410065
dd offset sub_41006F
dd offset sub_420740
off_44C228 dd offset sub_41003D
dd offset sub_410047
dd offset sub_410051
dd offset sub_4206E3
off_44C238 dd offset sub_40FC0F
dd offset sub_403900
dd offset sub_40FCDF
dd offset sub_420596
dd offset sub_4205B9
dd offset sub_42060F
dd offset sub_420659
dd offset sub_4206A3
dd offset sub_4206C8
dd offset sub_4039C3
off_44C260 dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44C270 dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44C298 dd offset sub_406E1E
dd offset sub_42847F
off_44C2A0 dd offset sub_41062D
off_44C2A4 dd offset sub_41103B
dd offset sub_410FDA
off_44C2AC dd offset sub_4110C6
dd offset sub_406711
dd offset sub_411110
dd offset sub_41120D
dd offset sub_4112BC
dd offset sub_4112C4
dd offset sub_41113F
dd offset sub_411175
dd offset sub_4112F1
dd offset sub_41114F
dd offset sub_411157
dd offset sub_411157
off_44C2DC dd offset sub_411B96
dd offset sub_42FA35
dd offset sub_4225DC
dd offset sub_42FAC5
dd offset sub_42FAAB
dd offset sub_4226E5
dd offset nullsub_4
dd offset sub_42FAE0
dd offset sub_402C55
dd offset sub_402C61
dd offset sub_402C50
dd offset sub_402C50
off_44C30C dd offset sub_411865
dd offset sub_406711
dd offset sub_4118AF
dd offset sub_411314
dd offset sub_41137E
off_44C320 dd offset sub_412925
dd offset sub_4032FB
off_44C328 dd offset sub_414126
dd offset sub_414130
dd offset sub_41413A
dd offset sub_41F4E5
off_44C338 dd offset sub_412A3B
dd offset sub_441007
dd offset sub_412A90
dd offset sub_41ED87
dd offset sub_41ED95
dd offset sub_41EDA4
dd offset sub_41F08E
dd offset sub_41EF2B
dd offset sub_41F42B
dd offset sub_41F437
dd offset sub_41F446
dd offset sub_41F484
off_44C368 dd offset sub_413B7E
dd offset sub_42FA35
dd offset sub_4221E3
dd offset sub_42FAC5
dd offset sub_42FAAB
dd offset sub_4222CE
dd offset nullsub_4
dd offset sub_42FAE0
dd offset sub_4224D2
dd offset sub_402C61
dd offset sub_4223E9
dd offset sub_402C50
off_44C398 dd offset sub_4153B6
off_44C39C dd offset sub_406E1E
dd offset sub_42847F
off_44C3A4 dd offset sub_41B288
off_44C3A8 dd offset sub_41B26C
off_44C3AC dd offset sub_41B246
off_44C3B0 dd offset sub_41B22A
off_44C3B4 dd offset sub_419B55
off_44C3B8 dd offset sub_41AC0B
dd offset sub_42FA35
dd offset sub_421632
dd offset sub_42FAC5
dd offset sub_42FAAB
dd offset sub_4216B8
dd offset nullsub_4
dd offset sub_42FAE0
dd offset sub_42181D
dd offset sub_402C61
dd offset sub_402C50
dd offset sub_402C50
off_44C3E8 dd offset sub_41CAA2
dd offset sub_42FA35
dd offset sub_4255C8
dd offset sub_42FAC5
dd offset sub_42FAAB
dd offset sub_4256B3
dd offset nullsub_4
dd offset sub_42582A
dd offset sub_42591E
dd offset sub_402C61
dd offset sub_402C50
dd offset sub_402C50
off_44C418 dd offset sub_406E1E
dd offset sub_42847F
off_44C420 dd offset sub_41BF0B
off_44C424 dd offset sub_41CABE
db    0
db    0
db    0
db    0
dword_44C42C dd	4
db    8
db    0
db    0
db    0
off_44C434 dd offset sub_421598
off_44C438 dd offset sub_4230CD
dd offset sub_424982
dd offset sub_4232ED
dd offset sub_42FAC5
dd offset sub_42FAAB
dd offset sub_423643
dd offset nullsub_4
dd offset sub_424E7B
dd offset nullsub_2
dd offset sub_423A1D
dd offset sub_402C50
dd offset sub_4245FC
db    0
db    0
db    0
db    0
dword_44C46C dd	4
db    8
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db  11h
db    0
db    0
db  15h
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    1
db  11h
db    0
db    0
db  15h
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db  14h
db    0
db    0
db    0
db    8
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    3
db  11h
db    0
db    0
db    8
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db  18h
db    0
db    0
db    0
db    8
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    2
db  11h
db    0
db    0
db  15h
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
dword_44C4C4 dd	4
db    8
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db  12h
db    0
db    0
db    8
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db  1Ch
db    0
db    0
db    0
db    8
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    1
db  12h
db    0
db    0
db    8
db    0
db    0
db    0
off_44C4F0 dd offset sub_42805C
db 0FBh	; ˚
db  7Fh	; 
db  42h	; B
byte_44C4F7 db 0
byte_44C4F8 db 0C0h
db 0E0h	; ‡
db 0F0h	; 
db 0F8h	; ¯
db 0FCh	; ¸
db    0
db    0
db    0
off_44C500 dd offset sub_406E1E
dd offset sub_42847F
off_44C508 dd offset sub_406E1E
dd offset sub_42847F
off_44C510 dd offset sub_406E1E
dd offset sub_42847F
off_44C518 dd offset sub_430DAF
dd offset sub_414130
dd offset sub_430DB9
dd offset sub_430C4C
off_44C528 dd offset sub_430815
dd offset sub_441007
dd offset sub_43088A
dd offset sub_4308E4
dd offset sub_430BB3
dd offset sub_4308A6
off_44C540 dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44C550 dd offset sub_432116
dd offset sub_4363AF
dd offset sub_430DF1
dd offset sub_430E96
off_44C560 dd offset sub_432116
dd offset sub_4363AF
dd offset sub_432182
dd offset sub_430FC5
off_44C570 dd offset sub_432086
dd offset sub_4363AF
dd offset sub_4320D0
dd offset sub_430C75
dd offset sub_430CAD
dd offset sub_430CF2
dd offset sub_4320EC
off_44C58C dd offset sub_432116
dd offset sub_4363AF
dd offset sub_432149
dd offset sub_430D5A
dd offset unknown_libname_4 ; Microsoft	VisualC	2-11/net runtime
off_44C5A0 dd offset sub_430DAF
dd offset sub_414130
dd offset sub_430DB9
dd offset sub_430C4C
off_44C5B0 dd offset sub_430815
dd offset sub_441007
dd offset sub_43088A
dd offset sub_4308E4
dd offset sub_430BB3
dd offset sub_4329C2
off_44C5C8 dd offset sub_4354F8
dd offset sub_427FFB
off_44C5D0 dd offset sub_435514
dd offset sub_406C0C
unk_44C5D8 db	 0
db    0
db  40h	; @
db    0
db    0
db    0
db    0
db    0
off_44C5E0 dd offset sub_432116
dd offset sub_4363AF
dd offset sub_432149
dd offset sub_430B59
dd offset unknown_libname_5 ; Microsoft	VisualC	2-11/net runtime
off_44C5F4 dd offset sub_43716C
dd offset sub_437E74
dd offset sub_437176
dd offset sub_432A5A
off_44C604 dd offset sub_43714E
dd offset sub_437158
dd offset sub_437162
dd offset sub_436CFD
off_44C614 dd offset sub_437130
dd offset sub_43713A
dd offset sub_437144
dd offset sub_432713
dd offset sub_432823
off_44C628 dd offset sub_436C39
dd offset sub_436CCB
dd offset sub_436CD8
dd offset sub_43264B
dd offset sub_4326AF
byte_44C63C db 52h
aHs8dadntsrcone	db 'HS8DAdNTsrCOnE_',0
align 10h
byte_44C650 db 30h
db  70h	; p
db  63h	; c
db  33h	; 3
db  64h	; d
db  35h	; 5
db  62h	; b
db  37h	; 7
db  2Dh	; -
db  39h	; 9
db  6Ch	; l
db  42h	; B
db  73h	; s
db  44h	; D
db  45h	; E
db  46h	; F
unk_44C660 db	 1
db    0
db    0
db    0
db    1
db    0
db    0
db    0
db    2
db    0
db    0
db    0
db    2
db    0
db    0
db    0
db    2
db    0
db    0
db    0
db    2
db    0
db    0
db    0
db    2
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    1
db    0
db    0
db    0
db    1
db    0
db    0
db    0
db    2
db    0
db    0
db    0
db    1
db    0
db    0
db    0
db    2
db    0
db    0
db    0
db    1
db    0
db    0
db    0
db    2
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    1
db    0
db    0
db    0
db    1
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    1
db    0
db    0
db    0
db    2
db    0
db    0
db    0
db    1
db    0
db    0
db    0
db    2
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    1
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    2
db    0
db    0
db    0
db    1
db    0
db    0
db    0
db    2
db    0
db    0
db    0
db    1
db    0
db    0
db    0
db    2
db    0
db    0
db    0
db    0
db    0
db    0
db    0
unk_44C6E0 db	 1
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
off_44C6FC dd offset sub_437E6A
dd offset sub_437E74
dd offset sub_437E7E
dd offset sub_4377A7
off_44C70C dd offset sub_437E56
dd offset sub_437158
dd offset sub_437E60
dd offset sub_437E01
off_44C71C dd offset sub_437E42
dd offset sub_43713A
dd offset sub_437E4C
dd offset sub_437DBD
off_44C72C dd offset sub_4375FE
dd offset sub_436CCB
dd offset sub_4376AE
dd offset sub_437723
dd offset sub_437766
dd offset sub_4377EB
dd offset sub_437883
dd offset sub_437A24
dd offset sub_437BE5
dd offset sub_437C26
dd offset sub_437C5B
off_44C758 dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44C784 dd offset sub_43A896
dd offset sub_43A8A0
dd offset sub_43A8AA
dd offset sub_438C71
off_44C794 dd offset sub_438A37
dd offset sub_438AAC
dd offset sub_438AC1
dd offset sub_438E47
dd offset sub_43A380
dd offset sub_43A680
off_44C7AC dd offset sub_43A842
dd offset sub_43A7E1
off_44C7B4 dd offset sub_43D3AD
dd offset sub_43D3B7
dd offset sub_43D3C1
dd offset sub_43BB97
off_44C7C4 dd offset sub_43D38F
dd offset sub_43D399
dd offset sub_43D3A3
dd offset sub_440B06
dd offset sub_4277BF
dd offset sub_440C0D
dd offset sub_440A36
dd offset sub_43FE07
dd offset sub_42717E
dd offset sub_4408DE
dd offset sub_42717E
off_44C7F0 dd offset sub_43D371
dd offset sub_43D37B
dd offset sub_43D385
dd offset sub_43B7A9
off_44C800 dd offset sub_43D353
dd offset sub_43D35D
dd offset sub_43D367
dd offset sub_43AEF5
off_44C810 dd offset sub_43D335
dd offset sub_43D33F
dd offset sub_43D349
dd offset sub_43BC22
off_44C820 dd offset sub_43D317
dd offset sub_43D321
dd offset sub_43D32B
dd offset sub_43BB6E
off_44C830 dd offset sub_43D2F9
dd offset sub_43D303
dd offset sub_43D30D
dd offset sub_43BB2D
dd offset sub_43BB3C
off_44C844 dd offset sub_43B4CD
dd offset sub_43B5FA
dd offset sub_43B607
dd offset sub_43AF5D
dd offset sub_43AF90
dd offset sub_43B192
dd offset sub_43B6E8
dd offset sub_43B67B
dd offset sub_43B75F
dd offset sub_43B864
dd offset sub_43B8DD
dd offset sub_43B9C2
off_44C874 dd offset sub_406E1E
dd offset sub_42847F
off_44C87C dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44C88C dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44C89C dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44C8AC dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44C8BC dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44C8D0 dd offset sub_43D41B
dd offset sub_409AC6
dd offset sub_43D425
dd offset sub_431281
off_44C8E0 dd offset sub_43D407
dd offset sub_409AA8
dd offset sub_43D411
dd offset sub_4323FB
off_44C8F0 dd offset sub_43BF03
dd offset sub_408B11
dd offset sub_43BF78
dd offset sub_4310E7
dd offset sub_43114B
dd offset sub_431420
dd offset sub_4321B5
dd offset sub_43222D
off_44C910 dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44C930 dd offset sub_43D3F3
dd offset sub_437E74
dd offset sub_43D3FD
dd offset sub_43F14D
off_44C940 dd offset sub_43D3DF
dd offset sub_437158
dd offset sub_43D3E9
dd offset sub_43D42F
dd offset sub_43D63A
dd offset sub_43E723
dd offset sub_43D6D0
dd offset sub_43E551
off_44C960 dd offset sub_43D3CB
dd offset sub_43713A
dd offset sub_43D3D5
dd offset sub_43CC70
dd offset sub_43CC82
dd offset sub_43CD72
dd offset sub_43CD8F
dd offset sub_43CDB6
dd offset sub_43CDDF
dd offset sub_43CDFD
off_44C988 dd offset sub_43C22A
dd offset sub_436CCB
dd offset sub_43C2DA
dd offset sub_43C47B
dd offset sub_43C860
dd offset sub_43C8CF
dd offset sub_43CBAB
dd offset sub_43CC00
dd offset sub_43C9C4
dd offset sub_43CA55
off_44C9B0 dd offset sub_43D2DD
dd offset sub_43D164
off_44C9B8 dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44C9C8 dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44C9E8 dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44CA10 dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
off_44CA38 dd offset sub_43D251
dd offset sub_43CFE1
off_44CA40 dd offset sub_43D26D
dd offset sub_43D07A
off_44CA48 dd offset sub_43D289
dd offset sub_40B64E
off_44CA50 dd offset sub_432116
dd offset sub_4363AF
dd offset sub_43C78B
dd offset sub_43CC70
dd offset sub_43526A
dd offset sub_435317
dd offset sub_43534A
off_44CA6C dd offset sub_43D1FD
dd offset sub_43CF48
off_44CA74 dd offset sub_43D1E1
dd offset sub_43CEF6
off_44CA7C dd offset sub_43D1C5
dd offset sub_43CE5D
off_44CA84 dd offset sub_440D75
dd offset sub_440D91
dd offset sub_440DA9
dd offset sub_440DC5
dd offset sub_440DC5
dd offset sub_440D59
dd offset sub_440EC5
dd offset sub_440DC8
dd offset sub_440EDD
dd offset sub_440EF5
dd offset sub_440F3A
off_44CAB0 dd offset sub_43D6B3
off_44CAB4 dd offset sub_406E1E
dd offset sub_42847F
off_44CABC dd offset sub_406E1E
dd offset sub_42847F
off_44CAC4 dd offset sub_43F3EC
dd offset sub_43F31E
off_44CACC dd offset sub_406E1E
dd offset sub_42847F
off_44CAD4 dd offset sub_43F398
dd offset sub_43F1F7
off_44CADC dd offset sub_441194
dd offset sub_414130
dd offset sub_44119E
dd offset sub_4410F2
off_44CAEC dd offset sub_440FB2
dd offset sub_441007
dd offset sub_441014
dd offset sub_441039
off_44CAFC dd offset _purecall
dd offset _purecall
dd offset _purecall
dd offset _purecall
db  98h	; ò
db  2Fh	; /
db  8Ah	; ä
db  42h	; B
db  91h	; ë
db  44h	; D
db  37h	; 7
db  71h	; q
db 0CFh	; œ
db 0FBh	; ˚
db 0C0h	; ¿
db 0B5h	; µ
db 0A5h	; •
db 0DBh	; €
db 0B5h	; µ
db 0E9h	; È
db  5Bh	; [
db 0C2h	; ¬
db  56h	; V
db  39h	; 9
db 0F1h	; Ò
db  11h
db 0F1h	; Ò
db  59h	; Y
db 0A4h	; §
db  82h	; Ç
db  3Fh	; ?
db  92h	; í
db 0D5h	; ’
db  5Eh	; ^
db  1Ch
db 0ABh	; ´
db  98h	; ò
db 0AAh	; ™
db    7
db 0D8h	; ÿ
db    1
db  5Bh	; [
db  83h	; É
db  12h
db 0BEh	; æ
db  85h	; Ö
db  31h	; 1
db  24h	; $
db 0C3h	; √
db  7Dh	; }
db  0Ch
db  55h	; U
db  74h	; t
db  5Dh	; ]
db 0BEh	; æ
db  72h	; r
db 0FEh	; ˛
db 0B1h	; ±
db 0DEh	; ﬁ
db  80h	; Ä
db 0A7h	; ß
db    6
db 0DCh	; ‹
db  9Bh	; õ
db  74h	; t
db 0F1h	; Ò
db  9Bh	; õ
db 0C1h	; ¡
db 0C1h	; ¡
db  69h	; i
db  9Bh	; õ
db 0E4h	; ‰
db  86h	; Ü
db  47h	; G
db 0BEh	; æ
db 0EFh	; Ô
db 0C6h	; ∆
db  9Dh	; ù
db 0C1h	; ¡
db  0Fh
db 0CCh	; Ã
db 0A1h	; °
db  0Ch
db  24h	; $
db  6Fh	; o
db  2Ch	; ,
db 0E9h	; È
db  2Dh	; -
db 0AAh	; ™
db  84h	; Ñ
db  74h	; t
db  4Ah	; J
db 0DCh	; ‹
db 0A9h	; ©
db 0B0h	; ∞
db  5Ch	; \
db 0DAh	; ⁄
db  88h	; à
db 0F9h	; ˘
db  76h	; v
db  52h	; R
db  51h	; Q
db  3Eh	; >
db  98h	; ò
db  6Dh	; m
db 0C6h	; ∆
db  31h	; 1
db 0A8h	; ®
db 0C8h	; »
db  27h	; '
db    3
db 0B0h	; ∞
db 0C7h	; «
db  7Fh	; 
db  59h	; Y
db 0BFh	; ø
db 0F3h	; Û
db  0Bh
db 0E0h	; ‡
db 0C6h	; ∆
db  47h	; G
db  91h	; ë
db 0A7h	; ß
db 0D5h	; ’
db  51h	; Q
db  63h	; c
db 0CAh	;  
db    6
db  67h	; g
db  29h	; )
db  29h	; )
db  14h
db  85h	; Ö
db  0Ah
db 0B7h	; ∑
db  27h	; '
db  38h	; 8
db  21h	; !
db  1Bh
db  2Eh	; .
db 0FCh	; ¸
db  6Dh	; m
db  2Ch	; ,
db  4Dh	; M
db  13h
db  0Dh
db  38h	; 8
db  53h	; S
db  54h	; T
db  73h	; s
db  0Ah
db  65h	; e
db 0BBh	; ª
db  0Ah
db  6Ah	; j
db  76h	; v
db  2Eh	; .
db 0C9h	; …
db 0C2h	; ¬
db  81h	; Å
db  85h	; Ö
db  2Ch	; ,
db  72h	; r
db  92h	; í
db 0A1h	; °
db 0E8h	; Ë
db 0BFh	; ø
db 0A2h	; ¢
db  4Bh	; K
db  66h	; f
db  1Ah
db 0A8h	; ®
db  70h	; p
db  8Bh	; ã
db  4Bh	; K
db 0C2h	; ¬
db 0A3h	; £
db  51h	; Q
db  6Ch	; l
db 0C7h	; «
db  19h
db 0E8h	; Ë
db  92h	; í
db 0D1h	; —
db  24h	; $
db    6
db  99h	; ô
db 0D6h	; ÷
db  85h	; Ö
db  35h	; 5
db  0Eh
db 0F4h	; Ù
db  70h	; p
db 0A0h	; †
db  6Ah	; j
db  10h
db  16h
db 0C1h	; ¡
db 0A4h	; §
db  19h
db    8
db  6Ch	; l
db  37h	; 7
db  1Eh
db  4Ch	; L
db  77h	; w
db  48h	; H
db  27h	; '
db 0B5h	; µ
db 0BCh	; º
db 0B0h	; ∞
db  34h	; 4
db 0B3h	; ≥
db  0Ch
db  1Ch
db  39h	; 9
db  4Ah	; J
db 0AAh	; ™
db 0D8h	; ÿ
db  4Eh	; N
db  4Fh	; O
db 0CAh	;  
db  9Ch	; ú
db  5Bh	; [
db 0F3h	; Û
db  6Fh	; o
db  2Eh	; .
db  68h	; h
db 0EEh	; Ó
db  82h	; Ç
db  8Fh	; è
db  74h	; t
db  6Fh	; o
db  63h	; c
db 0A5h	; •
db  78h	; x
db  14h
db  78h	; x
db 0C8h	; »
db  84h	; Ñ
db    8
db    2
db 0C7h	; «
db  8Ch	; å
db 0FAh	; ˙
db 0FFh
db 0BEh	; æ
db  90h	; ê
db 0EBh	; Î
db  6Ch	; l
db  50h	; P
db 0A4h	; §
db 0F7h	; ˜
db 0A3h	; £
db 0F9h	; ˘
db 0BEh	; æ
db 0F2h	; Ú
db  78h	; x
db  71h	; q
db 0C6h	; ∆
db    0
db    0
db    0
db    0
stru_44CC10 _SCOPETABLE_ENTRY <0FFFFFFFFh, \ ; SEH scope table for function 441910
		   offset loc_44195E, \
		   offset loc_441964>
; char aHhctrl_ocx[]
aHhctrl_ocx db 'hhctrl.ocx',0
align 4
; char SubKey[]
SubKey db 'CLSID\{ADB880A6-D8FF-11CF-9377-00AA'
db '003B7A11}\InprocServer32',0
; char ValueName[4]
ValueName db 4 dup(0)
unk_44CC68 db 0E8h ; Ë
db  14h
db    2
db    0
db    0
db    0
db    0
db    0
db 0C0h	; ¿
db    0
db    0
db    0
db    0
db    0
db    0
db  46h	; F
unk_44CC78 db 0E6h ; Ê
db  14h
db    2
db    0
db    0
db    0
db    0
db    0
db 0C0h	; ¿
db    0
db    0
db    0
db    0
db    0
db    0
db  46h	; F
unk_44CC88 db 0E4h ; ‰
db  14h
db    2
db    0
db    0
db    0
db    0
db    0
db 0C0h	; ¿
db    0
db    0
db    0
db    0
db    0
db    0
db  46h	; F
unk_44CC98 db  0Eh
db    1
db    0
db    0
db    0
db    0
db    0
db    0
db 0C0h	; ¿
db    0
db    0
db    0
db    0
db    0
db    0
db  46h	; F
unk_44CCA8 db	 3
db    1
db    0
db    0
db    0
db    0
db    0
db    0
db 0C0h	; ¿
db    0
db    0
db    0
db    0
db    0
db    0
db  46h	; F
unk_44CCB8 db	 0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db 0C0h	; ¿
db    0
db    0
db    0
db    0
db    0
db    0
db  46h	; F
unk_44CCC8 db  22h ; "
db    1
db    0
db    0
db    0
db    0
db    0
db    0
db 0C0h	; ¿
db    0
db    0
db    0
db    0
db    0
db    0
db  46h	; F
unk_44CCD8 db  21h ; !
db    1
db    0
db    0
db    0
db    0
db    0
db    0
db 0C0h	; ¿
db    0
db    0
db    0
db    0
db    0
db    0
db  46h	; F
db  60h	; `
db 0CDh	; Õ
db  44h	; D
db    0
off_44CCEC dd offset sub_441BA6
stru_44CCF0 _SCOPETABLE_ENTRY <0FFFFFFFFh, 0, \	; SEH scope table for function 441C0C
		   offset loc_441C74>
align 10h
stru_44CD00 _SCOPETABLE_ENTRY <0FFFFFFFFh, \ ; SEH scope table for function 441C8C
		   offset loc_441CC8, \
		   offset loc_441CD2>
align 10h
stru_44CD10 _SCOPETABLE_ENTRY <0FFFFFFFFh, 0, \	; SEH scope table for function 441D00
		   offset loc_441D6A>
align 10h
stru_44CD20 _SCOPETABLE_ENTRY <0FFFFFFFFh, \ ; SEH scope table for function 441F02
		   offset loc_442040, \
		   offset loc_442054>
align 10h
dd offset aNtelauthentica+1Ch
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db  30h	; 0
db 0CDh	; Õ
db  44h	; D
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    1
db    0
db    0
db    0
db  48h	; H
db 0CDh	; Õ
db  44h	; D
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db  70h	; p
db 0D4h	; ‘
db  45h	; E
db    0
db  50h	; P
db 0CDh	; Õ
db  44h	; D
db    0
db    0
db    0
db    0
db    0
stru_44CD78 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44CD78.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44225C	; Info.Proc
stru_44CDA0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44CDA0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442270	; Info.Proc
stru_44CDC8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44CDC8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442294	; Info.Proc
stru_44CDF0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44CDF0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4422A8	; Info.Proc
stru_44CE18 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44CE18.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4422BC	; Info.Proc
dd 0			; Info.Id
dd offset sub_4422C4	; Info.Proc
stru_44CE48 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44CE48.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4422D8	; Info.Proc
dd 0			; Info.Id
dd offset sub_4422E0	; Info.Proc
stru_44CE78 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44CE78.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4422F4	; Info.Proc
stru_44CEA0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44CEA0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442308	; Info.Proc
stru_44CEC8 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_44CEC8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44231C	; Info.Proc
dd -1			; Info.Id
dd offset sub_442324	; Info.Proc
dd -1			; Info.Id
dd offset sub_44232C	; Info.Proc
stru_44CF00 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44CF00.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442340	; Info.Proc
stru_44CF28 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44CF28.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442354	; Info.Proc
dd 0			; Info.Id
dd offset sub_44235C	; Info.Proc
stru_44CF58 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44CF58.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442370	; Info.Proc
dd -1			; Info.Id
dd offset sub_442378	; Info.Proc
stru_44CF88 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44CF88.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44238C	; Info.Proc
stru_44CFB0 dd 19930520h	    ; Magic
dd 32			; Count
dd offset stru_44CFB0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4423A0	; Info.Proc
dd 0			; Info.Id
dd offset sub_4423A8	; Info.Proc
dd 1			; Info.Id
dd offset sub_4423B0	; Info.Proc
dd 2			; Info.Id
dd offset sub_4423B8	; Info.Proc
dd 3			; Info.Id
dd offset sub_4423C0	; Info.Proc
dd 3			; Info.Id
dd offset sub_4423C8	; Info.Proc
dd 5			; Info.Id
dd offset sub_4423D3	; Info.Proc
dd 6			; Info.Id
dd offset sub_4423DB	; Info.Proc
dd 7			; Info.Id
dd offset sub_4423F2	; Info.Proc
dd 6			; Info.Id
dd offset sub_442409	; Info.Proc
dd 9			; Info.Id
dd offset sub_442420	; Info.Proc
dd 6			; Info.Id
dd offset sub_442437	; Info.Proc
dd 5			; Info.Id
dd offset sub_44243F	; Info.Proc
dd 5			; Info.Id
dd offset sub_442447	; Info.Proc
dd 5			; Info.Id
dd offset sub_44244F	; Info.Proc
dd 6			; Info.Id
dd offset sub_442457	; Info.Proc
dd 5			; Info.Id
dd offset sub_44245F	; Info.Proc
dd 5			; Info.Id
dd offset sub_442477	; Info.Proc
dd 6			; Info.Id
dd offset sub_442467	; Info.Proc
dd 5			; Info.Id
dd offset sub_44246F	; Info.Proc
dd 5			; Info.Id
dd offset sub_44247F	; Info.Proc
dd 3			; Info.Id
dd offset sub_442487	; Info.Proc
dd 21			; Info.Id
dd offset sub_442492	; Info.Proc
dd 22			; Info.Id
dd offset sub_44249D	; Info.Proc
dd 23			; Info.Id
dd offset sub_4424A8	; Info.Proc
dd 24			; Info.Id
dd offset sub_4424B3	; Info.Proc
dd 23			; Info.Id
dd offset sub_4424BB	; Info.Proc
dd 22			; Info.Id
dd offset sub_4424C6	; Info.Proc
dd 3			; Info.Id
dd offset sub_4424D1	; Info.Proc
dd 24			; Info.Id
dd offset sub_4424DC	; Info.Proc
dd 29			; Info.Id
dd offset sub_4424E7	; Info.Proc
dd 30			; Info.Id
dd offset sub_4424EF	; Info.Proc
stru_44D0D0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44D0D0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442504	; Info.Proc
db    1
db    0
db    0
db    0
db  50h	; P
db 0B1h	; ±
db  45h	; E
db    0
db    0
db    0
db    0
db    0
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db    0
db    0
db    0
db    0
db    4
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    1
db    0
db    0
db    0
db 0F8h	; ¯
db 0D0h	; –
db  44h	; D
db    0
unk_44D120 db	 0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db  18h
db 0D1h	; —
db  44h	; D
db    0
stru_44D130 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44D130.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44251C	; Info.Proc
stru_44D158 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44D158.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442530	; Info.Proc
dd 0			; Info.Id
dd offset sub_44253B	; Info.Proc
stru_44D188 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44D188.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442550	; Info.Proc
dd -1			; Info.Id
dd offset sub_442558	; Info.Proc
stru_44D1B8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44D1B8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44256C	; Info.Proc
stru_44D1E0 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_44D1E0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442580	; Info.Proc
dd 0			; Info.Id
dd offset sub_442588	; Info.Proc
dd 1			; Info.Id
dd offset sub_442593	; Info.Proc
dd 2			; Info.Id
dd offset sub_44259E	; Info.Proc
stru_44D220 dd 19930520h	    ; Magic
dd 6			; Count
dd offset stru_44D220.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4425B4	; Info.Proc
dd 0			; Info.Id
dd offset sub_4425BC	; Info.Proc
dd 1			; Info.Id
dd offset sub_4425C7	; Info.Proc
dd 2			; Info.Id
dd offset sub_4425D2	; Info.Proc
dd 3			; Info.Id
dd offset sub_4425DD	; Info.Proc
dd 4			; Info.Id
dd offset sub_4425E8	; Info.Proc
stru_44D270 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44D270.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4425FC	; Info.Proc
stru_44D298 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44D298.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442610	; Info.Proc
stru_44D2C0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44D2C0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442624	; Info.Proc
stru_44D2E8 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44D2E8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442638	; Info.Proc
dd 0			; Info.Id
dd offset sub_442640	; Info.Proc
stru_44D318 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44D318.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442654	; Info.Proc
stru_44D340 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44D340.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442668	; Info.Proc
stru_44D368 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44D368.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44267C	; Info.Proc
stru_44D390 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44D390.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442690	; Info.Proc
stru_44D3B8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44D3B8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4426A4	; Info.Proc
stru_44D3E0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44D3E0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4426B8	; Info.Proc
dd 0			; Info.Id
dd offset sub_4426C0	; Info.Proc
stru_44D410 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44D410.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4426D4	; Info.Proc
stru_44D438 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44D438.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4426E8	; Info.Proc
dd 0			; Info.Id
dd offset sub_4426F0	; Info.Proc
stru_44D468 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44D468.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442708	; Info.Proc
stru_44D490 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44D490.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44271C	; Info.Proc
stru_44D4B8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44D4B8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442730	; Info.Proc
stru_44D4E0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44D4E0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442744	; Info.Proc
stru_44D508 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44D508.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442758	; Info.Proc
stru_44D530 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_44D530.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44276C	; Info.Proc
dd 0			; Info.Id
dd offset sub_442774	; Info.Proc
dd 1			; Info.Id
dd offset sub_44277C	; Info.Proc
dd 0			; Info.Id
dd offset sub_442784	; Info.Proc
dd 3			; Info.Id
dd offset sub_44278C	; Info.Proc
stru_44D578 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44D578.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4427A0	; Info.Proc
stru_44D5A0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44D5A0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4427B4	; Info.Proc
stru_44D5C8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44D5C8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4427C8	; Info.Proc
stru_44D5F0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44D5F0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4427DC	; Info.Proc
stru_44D618 dd 19930520h	    ; Magic
dd 24			; Count
dd offset stru_44D618.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4427F0	; Info.Proc
dd 0			; Info.Id
dd offset sub_4427F8	; Info.Proc
dd 1			; Info.Id
dd offset sub_442800	; Info.Proc
dd 2			; Info.Id
dd offset sub_442808	; Info.Proc
dd 3			; Info.Id
dd offset sub_442813	; Info.Proc
dd 4			; Info.Id
dd offset sub_44281B	; Info.Proc
dd 5			; Info.Id
dd offset sub_442823	; Info.Proc
dd 6			; Info.Id
dd offset sub_44282B	; Info.Proc
dd 3			; Info.Id
dd offset sub_44282B	; Info.Proc
dd 8			; Info.Id
dd offset sub_442823	; Info.Proc
dd 9			; Info.Id
dd offset sub_44281B	; Info.Proc
dd 3			; Info.Id
dd offset sub_442833	; Info.Proc
dd 11			; Info.Id
dd offset sub_44283B	; Info.Proc
dd 12			; Info.Id
dd offset sub_442843	; Info.Proc
dd 13			; Info.Id
dd offset sub_44284B	; Info.Proc
dd 3			; Info.Id
dd offset sub_44284B	; Info.Proc
dd 15			; Info.Id
dd offset sub_442843	; Info.Proc
dd 16			; Info.Id
dd offset sub_44283B	; Info.Proc
dd 3			; Info.Id
dd offset sub_442853	; Info.Proc
dd 18			; Info.Id
dd offset sub_44285B	; Info.Proc
dd 3			; Info.Id
dd offset sub_44285B	; Info.Proc
dd 3			; Info.Id
dd offset sub_442863	; Info.Proc
dd 21			; Info.Id
dd offset sub_44286B	; Info.Proc
dd 3			; Info.Id
dd offset sub_44286B	; Info.Proc
stru_44D6F8 dd 19930520h	    ; Magic
dd 17			; Count
dd offset stru_44D6F8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442880	; Info.Proc
dd 0			; Info.Id
dd offset sub_44288B	; Info.Proc
dd 1			; Info.Id
dd offset sub_442893	; Info.Proc
dd 2			; Info.Id
dd offset sub_44289B	; Info.Proc
dd 3			; Info.Id
dd offset sub_4428A3	; Info.Proc
dd 4			; Info.Id
dd offset sub_4428AB	; Info.Proc
dd 5			; Info.Id
dd offset sub_4428B3	; Info.Proc
dd 6			; Info.Id
dd offset sub_4428BB	; Info.Proc
dd 6			; Info.Id
dd offset sub_4428C3	; Info.Proc
dd 6			; Info.Id
dd offset sub_4428CB	; Info.Proc
dd 9			; Info.Id
dd offset sub_4428D3	; Info.Proc
dd 10			; Info.Id
dd offset sub_4428DE	; Info.Proc
dd 10			; Info.Id
dd offset sub_4428E8	; Info.Proc
dd 12			; Info.Id
dd offset sub_4428F0	; Info.Proc
dd 12			; Info.Id
dd offset sub_4428FB	; Info.Proc
dd 14			; Info.Id
dd offset sub_442906	; Info.Proc
dd 12			; Info.Id
dd offset sub_442911	; Info.Proc
stru_44D7A0 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_44D7A0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442924	; Info.Proc
dd 0			; Info.Id
dd offset sub_44292F	; Info.Proc
dd 1			; Info.Id
dd offset sub_44293A	; Info.Proc
dd 2			; Info.Id
dd offset sub_442945	; Info.Proc
dd 3			; Info.Id
dd offset sub_442950	; Info.Proc
stru_44D7E8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44D7E8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442968	; Info.Proc
stru_44D810 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_44D810.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44297C	; Info.Proc
dd 0			; Info.Id
dd offset sub_442987	; Info.Proc
dd 1			; Info.Id
dd offset sub_442992	; Info.Proc
dd 2			; Info.Id
dd offset sub_44299D	; Info.Proc
dd 3			; Info.Id
dd offset sub_4429A8	; Info.Proc
stru_44D858 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_44D858.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_44D890	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd 0			; Info.Id
dd offset sub_4429C0	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_44D890 dd 0, 1, 2		    ; _unk
dd 1			; Count
dd offset stru_44D8A8	; RttiBlkPtr
dd 0
stru_44D8A8 _msRttiDscr	<0, 0, 0, offset sub_405165>
stru_44D8B8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44D8B8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4429D4	; Info.Proc
stru_44D8E0 dd 19930520h	    ; Magic ; Microsoft	VisualC	2-11/net runtime
dd 5			; Count
dd offset stru_44D8E0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4429E8	; Info.Proc
dd 0			; Info.Id
dd offset sub_4429F0	; Info.Proc
dd 1			; Info.Id
dd offset sub_4429FB	; Info.Proc
dd 2			; Info.Id
dd offset sub_442A06	; Info.Proc
dd 3			; Info.Id
dd offset unknown_libname_10; Info.Proc
stru_44D928 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44D928.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442A28	; Info.Proc
stru_44D950 dd 19930520h	    ; Magic
dd 9			; Count
dd offset stru_44D950.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442A3C	; Info.Proc
dd 0			; Info.Id
dd offset sub_442A44	; Info.Proc
dd 1			; Info.Id
dd offset sub_442A4C	; Info.Proc
dd 2			; Info.Id
dd offset sub_442A54	; Info.Proc
dd 3			; Info.Id
dd offset sub_442A5C	; Info.Proc
dd 4			; Info.Id
dd offset sub_442A64	; Info.Proc
dd 4			; Info.Id
dd offset sub_442A6C	; Info.Proc
dd 4			; Info.Id
dd offset sub_442A74	; Info.Proc
dd 3			; Info.Id
dd offset sub_442A7C	; Info.Proc
stru_44D9B8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44D9B8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442A90	; Info.Proc
stru_44D9E0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44D9E0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442AA4	; Info.Proc
stru_44DA08 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44DA08.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442AB8	; Info.Proc
stru_44DA30 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44DA30.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442ACC	; Info.Proc
stru_44DA58 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_44DA58.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442AE0	; Info.Proc
dd 0			; Info.Id
dd offset sub_442AEB	; Info.Proc
dd 1			; Info.Id
dd offset sub_442B06	; Info.Proc
dd 2			; Info.Id
dd offset sub_442B14	; Info.Proc
stru_44DA98 dd 19930520h	    ; Magic
dd 14			; Count
dd offset stru_44DA98.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442B2C	; Info.Proc
dd 0			; Info.Id
dd offset sub_442B34	; Info.Proc
dd 0			; Info.Id
dd offset sub_442B3C	; Info.Proc
dd 2			; Info.Id
dd offset sub_442B47	; Info.Proc
dd 3			; Info.Id
dd offset sub_442B52	; Info.Proc
dd 4			; Info.Id
dd offset sub_442B60	; Info.Proc
dd 5			; Info.Id
dd offset sub_442B6E	; Info.Proc
dd 6			; Info.Id
dd offset sub_442B7C	; Info.Proc
dd 7			; Info.Id
dd offset sub_442B8A	; Info.Proc
dd 8			; Info.Id
dd offset sub_442B98	; Info.Proc
dd 9			; Info.Id
dd offset sub_442BA6	; Info.Proc
dd 10			; Info.Id
dd offset sub_442BB4	; Info.Proc
dd 11			; Info.Id
dd offset sub_442BC2	; Info.Proc
dd 12			; Info.Id
dd offset sub_442BD0	; Info.Proc
stru_44DB28 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_44DB28.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442BE8	; Info.Proc
dd 0			; Info.Id
dd offset sub_442BF0	; Info.Proc
dd -1			; Info.Id
dd offset sub_442BF8	; Info.Proc
stru_44DB60 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44DB60.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442C0C	; Info.Proc
stru_44DB88 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44DB88.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442C20	; Info.Proc
stru_44DBB0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44DBB0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442C34	; Info.Proc
stru_44DBD8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44DBD8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442C48	; Info.Proc
stru_44DC00 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44DC00.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442C5C	; Info.Proc
dd 0			; Info.Id
dd offset sub_442C64	; Info.Proc
stru_44DC30 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44DC30.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442C78	; Info.Proc
dd 0			; Info.Id
dd offset sub_442C80	; Info.Proc
stru_44DC60 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_44DC60.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442C94	; Info.Proc
dd 0			; Info.Id
dd offset sub_442C9F	; Info.Proc
dd 1			; Info.Id
dd offset sub_442CBA	; Info.Proc
dd -1			; Info.Id
dd offset sub_442CC8	; Info.Proc
stru_44DCA0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44DCA0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442CDC	; Info.Proc
stru_44DCC8 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_44DCC8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442CF0	; Info.Proc
dd 0			; Info.Id
dd offset sub_442D00	; Info.Proc
dd 0			; Info.Id
dd offset sub_442D08	; Info.Proc
dd 0			; Info.Id
dd offset sub_442CF8	; Info.Proc
stru_44DD08 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44DD08.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442D1C	; Info.Proc
stru_44DD30 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44DD30.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442D30	; Info.Proc
dd 0			; Info.Id
dd offset sub_442D3B	; Info.Proc
stru_44DD60 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44DD60.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442D50	; Info.Proc
dd 0			; Info.Id
dd offset sub_442D5B	; Info.Proc
stru_44DD90 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44DD90.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442D70	; Info.Proc
dd 0			; Info.Id
dd offset sub_442D78	; Info.Proc
stru_44DDC0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44DDC0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442D8C	; Info.Proc
stru_44DDE8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44DDE8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442DA0	; Info.Proc
stru_44DE10 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44DE10.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442DB4	; Info.Proc
stru_44DE38 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44DE38.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442DC8	; Info.Proc
stru_44DE60 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44DE60.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442DDC	; Info.Proc
stru_44DE88 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44DE88.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442DF0	; Info.Proc
dd 0			; Info.Id
dd offset sub_442DF8	; Info.Proc
stru_44DEB8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44DEB8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442E10	; Info.Proc
stru_44DEE0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44DEE0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442E24	; Info.Proc
stru_44DF08 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44DF08.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442E38	; Info.Proc
stru_44DF30 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_44DF30.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442E4C	; Info.Proc
dd 0			; Info.Id
dd offset sub_442E54	; Info.Proc
dd 1			; Info.Id
dd offset sub_442E5C	; Info.Proc
stru_44DF68 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44DF68.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442E70	; Info.Proc
dd 0			; Info.Id
dd offset sub_442E78	; Info.Proc
stru_44DF98 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44DF98.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442E8C	; Info.Proc
stru_44DFC0 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_44DFC0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442EA0	; Info.Proc
dd 0			; Info.Id
dd offset sub_442EA8	; Info.Proc
dd 1			; Info.Id
dd offset sub_442EB0	; Info.Proc
dd 2			; Info.Id
dd offset sub_442EB8	; Info.Proc
stru_44E000 dd 19930520h	    ; Magic
dd 10			; Count
dd offset stru_44E000.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442ECC	; Info.Proc
dd 0			; Info.Id
dd offset sub_442ED4	; Info.Proc
dd 1			; Info.Id
dd offset sub_442EDC	; Info.Proc
dd 1			; Info.Id
dd offset sub_442EE4	; Info.Proc
dd -1			; Info.Id
dd offset sub_442EE4	; Info.Proc
dd 4			; Info.Id
dd offset sub_442ED4	; Info.Proc
dd 4			; Info.Id
dd offset sub_442EEC	; Info.Proc
dd 6			; Info.Id
dd offset sub_442EF7	; Info.Proc
dd 7			; Info.Id
dd offset sub_442EFF	; Info.Proc
dd 8			; Info.Id
dd offset sub_442F07	; Info.Proc
stru_44E070 dd 19930520h	    ; Magic
dd 8			; Count
dd offset stru_44E070.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442F1C	; Info.Proc
dd 0			; Info.Id
dd offset sub_442F24	; Info.Proc
dd 0			; Info.Id
dd offset sub_442F2C	; Info.Proc
dd -1			; Info.Id
dd offset sub_442F2C	; Info.Proc
dd 3			; Info.Id
dd offset sub_442F34	; Info.Proc
dd 3			; Info.Id
dd offset sub_442F3F	; Info.Proc
dd -1			; Info.Id
dd offset sub_442F4A	; Info.Proc
dd 6			; Info.Id
dd offset sub_442F52	; Info.Proc
stru_44E0D0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44E0D0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442F64	; Info.Proc
dd 0			; Info.Id
dd offset sub_442F6C	; Info.Proc
stru_44E100 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_44E100.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442F80	; Info.Proc
dd 0			; Info.Id
dd offset sub_442F88	; Info.Proc
dd 0			; Info.Id
dd offset sub_442F90	; Info.Proc
dd 2			; Info.Id
dd offset sub_442F98	; Info.Proc
stru_44E140 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_44E140.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442FAC	; Info.Proc
dd 0			; Info.Id
dd offset sub_442FB4	; Info.Proc
dd 0			; Info.Id
dd offset sub_442FBC	; Info.Proc
dd 2			; Info.Id
dd offset sub_442FC4	; Info.Proc
stru_44E180 dd 19930520h	    ; Magic
dd 6			; Count
dd offset stru_44E180.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_442FD8	; Info.Proc
dd 0			; Info.Id
dd offset sub_442FE0	; Info.Proc
dd 1			; Info.Id
dd offset sub_442FE8	; Info.Proc
dd 0			; Info.Id
dd offset sub_442FF8	; Info.Proc
dd 3			; Info.Id
dd offset sub_443000	; Info.Proc
dd 0			; Info.Id
dd offset sub_442FF0	; Info.Proc
stru_44E1D0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44E1D0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443014	; Info.Proc
stru_44E1F8 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_44E1F8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443028	; Info.Proc
dd -1			; Info.Id
dd offset sub_443032	; Info.Proc
dd 1			; Info.Id
dd offset sub_44303A	; Info.Proc
dd 2			; Info.Id
dd offset sub_443042	; Info.Proc
dd 3			; Info.Id
dd offset sub_44304A	; Info.Proc
stru_44E240 dd 19930520h	    ; Magic ; Microsoft	VisualC	2-11/net runtime
dd 1			; Count
dd offset stru_44E240.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset unknown_libname_13; Info.Proc
stru_44E268 dd 19930520h	    ; Magic
dd 6			; Count
dd offset stru_44E268.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443074	; Info.Proc
dd 0			; Info.Id
dd offset sub_44307F	; Info.Proc
dd 1			; Info.Id
dd offset sub_44308A	; Info.Proc
dd 2			; Info.Id
dd offset sub_443098	; Info.Proc
dd 3			; Info.Id
dd offset sub_4430A6	; Info.Proc
dd 3			; Info.Id
dd offset sub_4430B4	; Info.Proc
stru_44E2B8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44E2B8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4430C8	; Info.Proc
stru_44E2E0 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_44E2E0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4430DC	; Info.Proc
dd 0			; Info.Id
dd offset sub_4430E4	; Info.Proc
dd 1			; Info.Id
dd offset sub_4430EC	; Info.Proc
dd 2			; Info.Id
dd offset sub_4430F4	; Info.Proc
stru_44E320 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44E320.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443108	; Info.Proc
stru_44E348 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44E348.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44311C	; Info.Proc
stru_44E370 dd 19930520h	    ; Magic
dd 8			; Count
dd offset stru_44E370.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443130	; Info.Proc
dd 0			; Info.Id
dd offset sub_443138	; Info.Proc
dd 0			; Info.Id
dd offset sub_443142	; Info.Proc
dd 2			; Info.Id
dd offset sub_44314A	; Info.Proc
dd 2			; Info.Id
dd offset sub_443152	; Info.Proc
dd 2			; Info.Id
dd offset sub_44315C	; Info.Proc
dd 2			; Info.Id
dd offset sub_443164	; Info.Proc
dd 2			; Info.Id
dd offset sub_44316E	; Info.Proc
stru_44E3D0 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_44E3D0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443180	; Info.Proc
dd 0			; Info.Id
dd offset sub_44318B	; Info.Proc
dd 1			; Info.Id
dd offset sub_443196	; Info.Proc
stru_44E408 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_44E408.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4431AC	; Info.Proc
dd 0			; Info.Id
dd offset sub_4431B7	; Info.Proc
dd 1			; Info.Id
dd offset sub_4431C2	; Info.Proc
stru_44E440 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_44E440.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4431D8	; Info.Proc
dd 0			; Info.Id
dd offset sub_4431E3	; Info.Proc
dd 0			; Info.Id
dd offset sub_4431EE	; Info.Proc
stru_44E478 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44E478.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443200	; Info.Proc
stru_44E4A0 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_44E4A0.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_44E4D8	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd 0			; Info.Id
dd offset sub_443214	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_44E4D8 dd 0, 1, 2		    ; _unk
dd 1			; Count
dd offset stru_44E4F0	; RttiBlkPtr
dd 0
stru_44E4F0 _msRttiDscr	<0, 0, 0, offset loc_408C45>
stru_44E500 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44E500.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443228	; Info.Proc
dd -1			; Info.Id
dd offset sub_443232	; Info.Proc
stru_44E530 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44E530.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443244	; Info.Proc
dd 0			; Info.Id
dd offset sub_44324C	; Info.Proc
stru_44E560 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44E560.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443260	; Info.Proc
dd 0			; Info.Id
dd offset sub_443268	; Info.Proc
stru_44E590 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44E590.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44327C	; Info.Proc
stru_44E5B8 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44E5B8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443290	; Info.Proc
dd 0			; Info.Id
dd offset sub_443298	; Info.Proc
stru_44E5E8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44E5E8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4432AC	; Info.Proc
stru_44E610 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44E610.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4432C0	; Info.Proc
dd 0			; Info.Id
dd offset sub_4432C8	; Info.Proc
stru_44E640 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_44E640.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4432DC	; Info.Proc
dd 0			; Info.Id
dd offset sub_4432E4	; Info.Proc
dd -1			; Info.Id
dd offset sub_4432E4	; Info.Proc
dd 2			; Info.Id
dd offset sub_4432EC	; Info.Proc
dd 3			; Info.Id
dd offset sub_4432F4	; Info.Proc
stru_44E688 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_44E688.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443308	; Info.Proc
dd 0			; Info.Id
dd offset sub_443310	; Info.Proc
dd -1			; Info.Id
dd offset sub_443310	; Info.Proc
stru_44E6C0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44E6C0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443324	; Info.Proc
dd 0			; Info.Id
dd offset sub_44332C	; Info.Proc
stru_44E6F0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44E6F0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443340	; Info.Proc
stru_44E718 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44E718.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443354	; Info.Proc
dd 0			; Info.Id
dd offset sub_44335C	; Info.Proc
stru_44E748 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44E748.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443370	; Info.Proc
stru_44E770 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44E770.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443384	; Info.Proc
stru_44E798 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44E798.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443398	; Info.Proc
stru_44E7C0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44E7C0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4433AC	; Info.Proc
stru_44E7E8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44E7E8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4433C0	; Info.Proc
stru_44E810 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44E810.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4433D4	; Info.Proc
stru_44E838 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44E838.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4433E8	; Info.Proc
stru_44E860 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44E860.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4433FC	; Info.Proc
stru_44E888 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44E888.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443410	; Info.Proc
stru_44E8B0 dd 19930520h	    ; Magic
dd 7			; Count
dd offset stru_44E8B0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443424	; Info.Proc
dd 0			; Info.Id
dd offset sub_44342C	; Info.Proc
dd 1			; Info.Id
dd offset sub_443434	; Info.Proc
dd 2			; Info.Id
dd offset sub_44343C	; Info.Proc
dd 3			; Info.Id
dd offset sub_443444	; Info.Proc
dd 1			; Info.Id
dd offset sub_443444	; Info.Proc
dd 5			; Info.Id
dd offset sub_44343C	; Info.Proc
stru_44E908 dd 19930520h	    ; Magic
dd 23			; Count
dd offset stru_44E908.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443458	; Info.Proc
dd 0			; Info.Id
dd offset sub_443460	; Info.Proc
dd 1			; Info.Id
dd offset sub_443468	; Info.Proc
dd 2			; Info.Id
dd offset sub_443470	; Info.Proc
dd 3			; Info.Id
dd offset sub_443478	; Info.Proc
dd 0			; Info.Id
dd offset sub_443478	; Info.Proc
dd 5			; Info.Id
dd offset sub_443470	; Info.Proc
dd 6			; Info.Id
dd offset sub_443468	; Info.Proc
dd 0			; Info.Id
dd offset sub_443480	; Info.Proc
dd 8			; Info.Id
dd offset sub_443488	; Info.Proc
dd 9			; Info.Id
dd offset sub_443490	; Info.Proc
dd 10			; Info.Id
dd offset sub_443498	; Info.Proc
dd 11			; Info.Id
dd offset sub_4434A0	; Info.Proc
dd 12			; Info.Id
dd offset sub_4434A8	; Info.Proc
dd 13			; Info.Id
dd offset sub_4434B0	; Info.Proc
dd 14			; Info.Id
dd offset sub_4434B8	; Info.Proc
dd 15			; Info.Id
dd offset sub_4434C0	; Info.Proc
dd 9			; Info.Id
dd offset sub_4434C0	; Info.Proc
dd 17			; Info.Id
dd offset sub_4434B8	; Info.Proc
dd 18			; Info.Id
dd offset sub_4434B0	; Info.Proc
dd 19			; Info.Id
dd offset sub_4434A8	; Info.Proc
dd 20			; Info.Id
dd offset sub_4434A0	; Info.Proc
dd 21			; Info.Id
dd offset sub_443498	; Info.Proc
stru_44E9E0 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_44E9E0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4434D4	; Info.Proc
dd 0			; Info.Id
dd offset sub_4434DC	; Info.Proc
dd -1			; Info.Id
dd offset sub_4434E4	; Info.Proc
dd 2			; Info.Id
dd offset sub_4434EC	; Info.Proc
dd -1			; Info.Id
dd offset sub_4434F4	; Info.Proc
stru_44EA28 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44EA28.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443508	; Info.Proc
stru_44EA50 dd 19930520h	    ; Magic
dd 21			; Count
dd offset stru_44EA50.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44351C	; Info.Proc
dd 0			; Info.Id
dd offset sub_443524	; Info.Proc
dd 0			; Info.Id
dd offset sub_44352C	; Info.Proc
dd 2			; Info.Id
dd offset sub_443534	; Info.Proc
dd 3			; Info.Id
dd offset sub_44353C	; Info.Proc
dd 4			; Info.Id
dd offset sub_443544	; Info.Proc
dd 0			; Info.Id
dd offset sub_443544	; Info.Proc
dd 6			; Info.Id
dd offset sub_44353C	; Info.Proc
dd 7			; Info.Id
dd offset sub_443534	; Info.Proc
dd 0			; Info.Id
dd offset sub_44354C	; Info.Proc
dd 9			; Info.Id
dd offset sub_443554	; Info.Proc
dd 0			; Info.Id
dd offset sub_443554	; Info.Proc
dd 0			; Info.Id
dd offset sub_44355C	; Info.Proc
dd 12			; Info.Id
dd offset sub_443564	; Info.Proc
dd 13			; Info.Id
dd offset sub_44356C	; Info.Proc
dd 13			; Info.Id
dd offset sub_443574	; Info.Proc
dd 0			; Info.Id
dd offset sub_443574	; Info.Proc
dd 16			; Info.Id
dd offset sub_443564	; Info.Proc
dd 16			; Info.Id
dd offset sub_44357C	; Info.Proc
dd 18			; Info.Id
dd offset sub_443587	; Info.Proc
dd 19			; Info.Id
dd offset sub_44358F	; Info.Proc
stru_44EB18 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44EB18.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4435A4	; Info.Proc
dd 0			; Info.Id
dd offset sub_4435AC	; Info.Proc
stru_44EB48 dd 19930520h	    ; Magic
dd 13			; Count
dd offset stru_44EB48.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4435C0	; Info.Proc
dd 0			; Info.Id
dd offset sub_4435C8	; Info.Proc
dd 1			; Info.Id
dd offset sub_4435D0	; Info.Proc
dd 2			; Info.Id
dd offset sub_4435D8	; Info.Proc
dd 3			; Info.Id
dd offset sub_4435E0	; Info.Proc
dd 0			; Info.Id
dd offset sub_4435E0	; Info.Proc
dd 5			; Info.Id
dd offset sub_4435D8	; Info.Proc
dd 6			; Info.Id
dd offset sub_4435D0	; Info.Proc
dd 0			; Info.Id
dd offset sub_4435E8	; Info.Proc
dd 8			; Info.Id
dd offset sub_4435F0	; Info.Proc
dd 9			; Info.Id
dd offset sub_4435F8	; Info.Proc
dd 10			; Info.Id
dd offset sub_443600	; Info.Proc
dd 9			; Info.Id
dd offset sub_443600	; Info.Proc
stru_44EBD0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44EBD0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443614	; Info.Proc
dd 0			; Info.Id
dd offset sub_44361C	; Info.Proc
stru_44EC00 dd 19930520h	    ; Magic
dd 24			; Count
dd offset stru_44EC00.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443630	; Info.Proc
dd 0			; Info.Id
dd offset sub_443638	; Info.Proc
dd 0			; Info.Id
dd offset sub_443640	; Info.Proc
dd 2			; Info.Id
dd offset sub_443648	; Info.Proc
dd 3			; Info.Id
dd offset sub_443650	; Info.Proc
dd 4			; Info.Id
dd offset sub_443658	; Info.Proc
dd 0			; Info.Id
dd offset sub_443658	; Info.Proc
dd 6			; Info.Id
dd offset sub_443650	; Info.Proc
dd 7			; Info.Id
dd offset sub_443648	; Info.Proc
dd 0			; Info.Id
dd offset sub_443660	; Info.Proc
dd 9			; Info.Id
dd offset sub_443668	; Info.Proc
dd 0			; Info.Id
dd offset sub_443668	; Info.Proc
dd 0			; Info.Id
dd offset sub_443670	; Info.Proc
dd 12			; Info.Id
dd offset sub_443678	; Info.Proc
dd 13			; Info.Id
dd offset sub_443680	; Info.Proc
dd 13			; Info.Id
dd offset sub_443688	; Info.Proc
dd 0			; Info.Id
dd offset sub_443688	; Info.Proc
dd 16			; Info.Id
dd offset sub_443678	; Info.Proc
dd 16			; Info.Id
dd offset sub_443690	; Info.Proc
dd 18			; Info.Id
dd offset sub_44369B	; Info.Proc
dd 19			; Info.Id
dd offset sub_4436A3	; Info.Proc
dd 0			; Info.Id
dd offset sub_4436AB	; Info.Proc
dd 21			; Info.Id
dd offset sub_4436B3	; Info.Proc
dd 0			; Info.Id
dd offset sub_4436B3	; Info.Proc
stru_44ECE0 dd 19930520h	    ; Magic
dd 10			; Count
dd offset stru_44ECE0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4436C8	; Info.Proc
dd 0			; Info.Id
dd offset sub_4436D0	; Info.Proc
dd 1			; Info.Id
dd offset sub_4436D8	; Info.Proc
dd 0			; Info.Id
dd offset sub_4436D8	; Info.Proc
dd 0			; Info.Id
dd offset sub_4436E0	; Info.Proc
dd 4			; Info.Id
dd offset sub_4436E8	; Info.Proc
dd 5			; Info.Id
dd offset sub_4436F0	; Info.Proc
dd 6			; Info.Id
dd offset sub_4436F8	; Info.Proc
dd 4			; Info.Id
dd offset sub_4436F8	; Info.Proc
dd 8			; Info.Id
dd offset sub_4436F0	; Info.Proc
stru_44ED50 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44ED50.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44370C	; Info.Proc
stru_44ED78 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44ED78.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443720	; Info.Proc
stru_44EDA0 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_44EDA0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443734	; Info.Proc
dd 0			; Info.Id
dd offset sub_44373C	; Info.Proc
dd 1			; Info.Id
dd offset sub_443744	; Info.Proc
dd 2			; Info.Id
dd offset sub_44374C	; Info.Proc
dd 3			; Info.Id
dd offset sub_443754	; Info.Proc
stru_44EDE8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44EDE8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443768	; Info.Proc
stru_44EE10 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44EE10.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44377C	; Info.Proc
stru_44EE38 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44EE38.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443790	; Info.Proc
stru_44EE60 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44EE60.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4437A4	; Info.Proc
stru_44EE88 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44EE88.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4437B8	; Info.Proc
stru_44EEB0 dd 19930520h	    ; Magic
dd 11			; Count
dd offset stru_44EEB0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4437CC	; Info.Proc
dd 0			; Info.Id
dd offset sub_4437D4	; Info.Proc
dd 1			; Info.Id
dd offset sub_4437DC	; Info.Proc
dd 1			; Info.Id
dd offset sub_4437E4	; Info.Proc
dd 0			; Info.Id
dd offset sub_4437E4	; Info.Proc
dd 4			; Info.Id
dd offset sub_4437EC	; Info.Proc
dd 5			; Info.Id
dd offset sub_4437F7	; Info.Proc
dd 5			; Info.Id
dd offset sub_4437FF	; Info.Proc
dd 7			; Info.Id
dd offset sub_443807	; Info.Proc
dd 8			; Info.Id
dd offset sub_44380F	; Info.Proc
dd 9			; Info.Id
dd offset sub_443817	; Info.Proc
stru_44EF28 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44EF28.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44382C	; Info.Proc
stru_44EF50 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_44EF50.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443840	; Info.Proc
dd 0			; Info.Id
dd offset sub_443848	; Info.Proc
dd -1			; Info.Id
dd offset sub_443858	; Info.Proc
dd -1			; Info.Id
dd offset sub_443850	; Info.Proc
stru_44EF90 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44EF90.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44386C	; Info.Proc
stru_44EFB8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44EFB8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443880	; Info.Proc
stru_44EFE0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44EFE0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443894	; Info.Proc
stru_44F008 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44F008.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4438A8	; Info.Proc
dd 0			; Info.Id
dd offset sub_4438B2	; Info.Proc
stru_44F038 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44F038.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4438C4	; Info.Proc
stru_44F060 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44F060.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4438D8	; Info.Proc
stru_44F088 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_44F088.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4438EC	; Info.Proc
dd 0			; Info.Id
dd offset sub_443904	; Info.Proc
dd 1			; Info.Id
dd offset sub_44390C	; Info.Proc
dd 0			; Info.Id
dd offset sub_4438F4	; Info.Proc
dd 3			; Info.Id
dd offset sub_4438FC	; Info.Proc
stru_44F0D0 dd 19930520h	    ; Magic
dd 6			; Count
dd offset stru_44F0D0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443920	; Info.Proc
dd 0			; Info.Id
dd offset sub_44392B	; Info.Proc
dd 1			; Info.Id
dd offset sub_443933	; Info.Proc
dd 1			; Info.Id
dd offset sub_44393B	; Info.Proc
dd 1			; Info.Id
dd offset sub_443943	; Info.Proc
dd 4			; Info.Id
dd offset sub_44394B	; Info.Proc
stru_44F120 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44F120.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443960	; Info.Proc
stru_44F148 dd 19930520h	    ; Magic
dd 8			; Count
dd offset stru_44F148.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443974	; Info.Proc
dd -1			; Info.Id
dd offset sub_44397C	; Info.Proc
dd 1			; Info.Id
dd offset sub_443984	; Info.Proc
dd 2			; Info.Id
dd offset sub_44398C	; Info.Proc
dd 3			; Info.Id
dd offset sub_443994	; Info.Proc
dd 4			; Info.Id
dd offset sub_44399C	; Info.Proc
dd 5			; Info.Id
dd offset sub_4439A4	; Info.Proc
dd 1			; Info.Id
dd offset sub_4439AC	; Info.Proc
stru_44F1A8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44F1A8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4439C0	; Info.Proc
stru_44F1D0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44F1D0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4439D4	; Info.Proc
dd 0			; Info.Id
dd offset sub_4439DC	; Info.Proc
stru_44F200 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_44F200.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4439F8	; Info.Proc
dd 0			; Info.Id
dd offset sub_443A00	; Info.Proc
dd -1			; Info.Id
dd offset sub_4439F0	; Info.Proc
stru_44F238 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44F238.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443A14	; Info.Proc
stru_44F260 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44F260.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443A28	; Info.Proc
stru_44F288 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44F288.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443A3C	; Info.Proc
stru_44F2B0 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_44F2B0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443A50	; Info.Proc
dd 0			; Info.Id
dd offset sub_443A58	; Info.Proc
dd 1			; Info.Id
dd offset sub_443A60	; Info.Proc
dd 1			; Info.Id
dd offset sub_443A6A	; Info.Proc
stru_44F2F0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44F2F0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443A7C	; Info.Proc
stru_44F318 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_44F318.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443A90	; Info.Proc
dd 0			; Info.Id
dd offset sub_443A98	; Info.Proc
dd 1			; Info.Id
dd offset sub_443AA0	; Info.Proc
dd 1			; Info.Id
dd offset sub_443AA8	; Info.Proc
stru_44F358 dd 19930520h	    ; Magic
dd 13			; Count
dd offset stru_44F358.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443ABC	; Info.Proc
dd 0			; Info.Id
dd offset sub_443AC7	; Info.Proc
dd 1			; Info.Id
dd offset sub_443AD2	; Info.Proc
dd 2			; Info.Id
dd offset sub_443ADA	; Info.Proc
dd 3			; Info.Id
dd offset sub_443AE5	; Info.Proc
dd 4			; Info.Id
dd offset sub_443AED	; Info.Proc
dd 5			; Info.Id
dd offset sub_443AF8	; Info.Proc
dd 6			; Info.Id
dd offset sub_443B00	; Info.Proc
dd 7			; Info.Id
dd offset sub_443B08	; Info.Proc
dd 6			; Info.Id
dd offset sub_443B10	; Info.Proc
dd 6			; Info.Id
dd offset sub_443B18	; Info.Proc
dd 5			; Info.Id
dd offset sub_443B20	; Info.Proc
dd 2			; Info.Id
dd offset sub_443B28	; Info.Proc
stru_44F3E0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44F3E0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443B40	; Info.Proc
dd 0			; Info.Id
dd offset sub_443B48	; Info.Proc
stru_44F410 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44F410.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443B5C	; Info.Proc
stru_44F438 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44F438.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443B70	; Info.Proc
stru_44F460 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_44F460.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443B84	; Info.Proc
dd 0			; Info.Id
dd offset sub_443B8C	; Info.Proc
dd -1			; Info.Id
dd offset sub_443B94	; Info.Proc
stru_44F498 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44F498.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443BA8	; Info.Proc
stru_44F4C0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44F4C0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443BBC	; Info.Proc
stru_44F4E8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44F4E8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443BD0	; Info.Proc
stru_44F510 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44F510.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443BE4	; Info.Proc
stru_44F538 dd 19930520h	    ; Magic
dd 22			; Count
dd offset stru_44F538.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443BF8	; Info.Proc
dd 0			; Info.Id
dd offset sub_443C00	; Info.Proc
dd 1			; Info.Id
dd offset sub_443C0B	; Info.Proc
dd 2			; Info.Id
dd offset sub_443C16	; Info.Proc
dd 3			; Info.Id
dd offset sub_443C24	; Info.Proc
dd 4			; Info.Id
dd offset sub_443C32	; Info.Proc
dd 5			; Info.Id
dd offset sub_443C40	; Info.Proc
dd 6			; Info.Id
dd offset sub_443C4E	; Info.Proc
dd 7			; Info.Id
dd offset sub_443C5C	; Info.Proc
dd 8			; Info.Id
dd offset sub_443C6A	; Info.Proc
dd 9			; Info.Id
dd offset sub_443C78	; Info.Proc
dd 10			; Info.Id
dd offset sub_443C86	; Info.Proc
dd 11			; Info.Id
dd offset sub_443C94	; Info.Proc
dd 12			; Info.Id
dd offset sub_443CA2	; Info.Proc
dd 13			; Info.Id
dd offset sub_443CB0	; Info.Proc
dd 14			; Info.Id
dd offset sub_443CBE	; Info.Proc
dd 12			; Info.Id
dd offset sub_443CCC	; Info.Proc
dd 11			; Info.Id
dd offset sub_443CD4	; Info.Proc
dd 10			; Info.Id
dd offset sub_443CDC	; Info.Proc
dd 8			; Info.Id
dd offset sub_443CE4	; Info.Proc
dd 5			; Info.Id
dd offset sub_443CEC	; Info.Proc
dd 1			; Info.Id
dd offset sub_443CF4	; Info.Proc
stru_44F608 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44F608.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443D08	; Info.Proc
stru_44F630 dd 19930520h	    ; Magic ; Microsoft	VisualC	2-11/net runtime
dd 2			; Count
dd offset stru_44F630.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443D24	; Info.Proc
dd 0			; Info.Id
dd offset unknown_libname_17; Info.Proc
stru_44F660 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44F660.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443D48	; Info.Proc
stru_44F688 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44F688.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443D5C	; Info.Proc
dd 0			; Info.Id
dd offset sub_443D64	; Info.Proc
stru_44F6B8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44F6B8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443D78	; Info.Proc
stru_44F6E0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44F6E0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443D8C	; Info.Proc
stru_44F708 dd 19930520h	    ; Magic
dd 9			; Count
dd offset stru_44F708.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443DA0	; Info.Proc
dd 0			; Info.Id
dd offset sub_443DA8	; Info.Proc
dd 1			; Info.Id
dd offset sub_443DB0	; Info.Proc
dd 2			; Info.Id
dd offset sub_443DB8	; Info.Proc
dd 3			; Info.Id
dd offset sub_443DC0	; Info.Proc
dd 4			; Info.Id
dd offset sub_443DC8	; Info.Proc
dd 3			; Info.Id
dd offset sub_443DD0	; Info.Proc
dd 6			; Info.Id
dd offset sub_443DD8	; Info.Proc
dd 0			; Info.Id
dd offset sub_443DE0	; Info.Proc
stru_44F770 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44F770.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443DF4	; Info.Proc
stru_44F798 dd 19930520h	    ; Magic
dd 10			; Count
dd offset stru_44F798.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443E08	; Info.Proc
dd 0			; Info.Id
dd offset sub_443E10	; Info.Proc
dd 0			; Info.Id
dd offset sub_443E18	; Info.Proc
dd 1			; Info.Id
dd offset sub_443E20	; Info.Proc
dd 3			; Info.Id
dd offset sub_443E28	; Info.Proc
dd 4			; Info.Id
dd offset sub_443E30	; Info.Proc
dd 3			; Info.Id
dd offset sub_443E38	; Info.Proc
dd 6			; Info.Id
dd offset sub_443E40	; Info.Proc
dd 7			; Info.Id
dd offset sub_443E48	; Info.Proc
dd 0			; Info.Id
dd offset sub_443E50	; Info.Proc
stru_44F808 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44F808.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443E6C	; Info.Proc
dd -1			; Info.Id
dd offset sub_443E64	; Info.Proc
stru_44F838 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44F838.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443E80	; Info.Proc
dd 0			; Info.Id
dd offset sub_443E88	; Info.Proc
stru_44F868 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44F868.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443E9C	; Info.Proc
stru_44F890 dd 19930520h	    ; Magic
dd 10			; Count
dd offset stru_44F890.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443EB0	; Info.Proc
dd 0			; Info.Id
dd offset sub_443EB8	; Info.Proc
dd 1			; Info.Id
dd offset sub_443EC0	; Info.Proc
dd 2			; Info.Id
dd offset sub_443ECB	; Info.Proc
dd 2			; Info.Id
dd offset sub_443ED5	; Info.Proc
dd 4			; Info.Id
dd offset sub_443EDD	; Info.Proc
dd 5			; Info.Id
dd offset sub_443EE5	; Info.Proc
dd 1			; Info.Id
dd offset sub_443EED	; Info.Proc
dd 1			; Info.Id
dd offset sub_443EF5	; Info.Proc
dd 1			; Info.Id
dd offset sub_443EFD	; Info.Proc
stru_44F900 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44F900.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443F10	; Info.Proc
dd 0			; Info.Id
dd offset sub_443F1B	; Info.Proc
stru_44F930 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_44F930.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443F30	; Info.Proc
dd 0			; Info.Id
dd offset sub_443F3B	; Info.Proc
dd 1			; Info.Id
dd offset sub_443F46	; Info.Proc
dd 2			; Info.Id
dd offset sub_443F51	; Info.Proc
dd 3			; Info.Id
dd offset sub_443F5C	; Info.Proc
stru_44F978 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_44F978.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443F74	; Info.Proc
dd 0			; Info.Id
dd offset sub_443F7C	; Info.Proc
dd 1			; Info.Id
dd offset sub_443F8A	; Info.Proc
stru_44F9B0 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_44F9B0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443FA4	; Info.Proc
dd 0			; Info.Id
dd offset sub_443FAF	; Info.Proc
dd 1			; Info.Id
dd offset sub_443FBA	; Info.Proc
dd 2			; Info.Id
dd offset sub_443FC5	; Info.Proc
dd 3			; Info.Id
dd offset sub_443FD0	; Info.Proc
stru_44F9F8 dd 19930520h	    ; Magic
dd 11			; Count
dd offset stru_44F9F8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_443FE8	; Info.Proc
dd 0			; Info.Id
dd offset sub_443FF0	; Info.Proc
dd 0			; Info.Id
dd offset sub_443FF8	; Info.Proc
dd 2			; Info.Id
dd offset sub_444003	; Info.Proc
dd 2			; Info.Id
dd offset sub_44400D	; Info.Proc
dd 4			; Info.Id
dd offset sub_444024	; Info.Proc
dd 5			; Info.Id
dd offset sub_44403B	; Info.Proc
dd 2			; Info.Id
dd offset sub_44403B	; Info.Proc
dd 7			; Info.Id
dd offset sub_444024	; Info.Proc
dd 7			; Info.Id
dd offset sub_444043	; Info.Proc
dd 9			; Info.Id
dd offset sub_44404B	; Info.Proc
stru_44FA70 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_44FA70.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444060	; Info.Proc
dd 0			; Info.Id
dd offset sub_444068	; Info.Proc
dd 1			; Info.Id
dd offset sub_444076	; Info.Proc
stru_44FAA8 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_44FAA8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444090	; Info.Proc
dd 0			; Info.Id
dd offset sub_444098	; Info.Proc
dd 1			; Info.Id
dd offset sub_4440A6	; Info.Proc
dd 2			; Info.Id
dd offset sub_4440B4	; Info.Proc
stru_44FAE8 dd 19930520h	    ; Magic
dd 10			; Count
dd offset stru_44FAE8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4440CC	; Info.Proc
dd 0			; Info.Id
dd offset sub_4440D4	; Info.Proc
dd 1			; Info.Id
dd offset sub_4440DF	; Info.Proc
dd 1			; Info.Id
dd offset sub_4440E9	; Info.Proc
dd 3			; Info.Id
dd offset sub_4440F1	; Info.Proc
dd 4			; Info.Id
dd offset sub_4440F9	; Info.Proc
dd 5			; Info.Id
dd offset sub_444101	; Info.Proc
dd 4			; Info.Id
dd offset sub_444109	; Info.Proc
dd 4			; Info.Id
dd offset sub_444111	; Info.Proc
dd 0			; Info.Id
dd offset sub_444119	; Info.Proc
stru_44FB58 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_44FB58.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_44FB90	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd 0			; Info.Id
dd offset sub_44412C	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_44FB90 dd 0, 1, 2		    ; _unk
dd 1			; Count
dd offset stru_44FBA8	; RttiBlkPtr
dd 0
stru_44FBA8 _msRttiDscr	<0, 0, 0, offset sub_40FD7D>
stru_44FBB8 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_44FBB8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444140	; Info.Proc
dd 0			; Info.Id
dd offset sub_444148	; Info.Proc
dd 1			; Info.Id
dd offset sub_444153	; Info.Proc
dd 2			; Info.Id
dd offset sub_44415E	; Info.Proc
stru_44FBF8 dd 19930520h	    ; Magic
dd 6			; Count
dd offset stru_44FBF8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444174	; Info.Proc
dd 0			; Info.Id
dd offset sub_44417C	; Info.Proc
dd 1			; Info.Id
dd offset sub_444187	; Info.Proc
dd 2			; Info.Id
dd offset sub_444192	; Info.Proc
dd 3			; Info.Id
dd offset sub_44419D	; Info.Proc
dd 1			; Info.Id
dd offset sub_4441A8	; Info.Proc
stru_44FC48 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_44FC48.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4441BC	; Info.Proc
dd 0			; Info.Id
dd offset sub_4441C4	; Info.Proc
dd 1			; Info.Id
dd offset sub_4441CC	; Info.Proc
stru_44FC80 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44FC80.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4441E0	; Info.Proc
dd 0			; Info.Id
dd offset sub_4441E8	; Info.Proc
stru_44FCB0 dd 19930520h	    ; Magic
dd 8			; Count
dd offset stru_44FCB0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4441FC	; Info.Proc
dd -1			; Info.Id
dd offset sub_444204	; Info.Proc
dd -1			; Info.Id
dd offset sub_44420C	; Info.Proc
dd 2			; Info.Id
dd offset sub_444214	; Info.Proc
dd 3			; Info.Id
dd offset sub_44421C	; Info.Proc
dd 4			; Info.Id
dd offset sub_444224	; Info.Proc
dd 5			; Info.Id
dd offset sub_44422C	; Info.Proc
dd 5			; Info.Id
dd offset sub_444234	; Info.Proc
stru_44FD10 dd 19930520h	    ; Magic
dd 8			; Count
dd offset stru_44FD10.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444248	; Info.Proc
dd 0			; Info.Id
dd offset sub_444250	; Info.Proc
dd 0			; Info.Id
dd offset sub_444258	; Info.Proc
dd 0			; Info.Id
dd offset sub_444260	; Info.Proc
dd 0			; Info.Id
dd offset sub_444268	; Info.Proc
dd 4			; Info.Id
dd offset sub_444270	; Info.Proc
dd 0			; Info.Id
dd offset sub_444278	; Info.Proc
dd 0			; Info.Id
dd offset sub_444280	; Info.Proc
stru_44FD70 dd 19930520h	    ; Magic
dd 11			; Count
dd offset stru_44FD70.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444294	; Info.Proc
dd 0			; Info.Id
dd offset sub_44429C	; Info.Proc
dd 1			; Info.Id
dd offset sub_4442A4	; Info.Proc
dd 2			; Info.Id
dd offset sub_4442AF	; Info.Proc
dd 3			; Info.Id
dd offset sub_4442B7	; Info.Proc
dd 1			; Info.Id
dd offset sub_4442BF	; Info.Proc
dd 5			; Info.Id
dd offset sub_4442CA	; Info.Proc
dd 6			; Info.Id
dd offset sub_4442D2	; Info.Proc
dd 7			; Info.Id
dd offset sub_4442DA	; Info.Proc
dd 1			; Info.Id
dd offset sub_4442E2	; Info.Proc
dd 1			; Info.Id
dd offset sub_4442EA	; Info.Proc
stru_44FDE8 dd 19930520h	    ; Magic
dd 11			; Count
dd offset stru_44FDE8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4442FC	; Info.Proc
dd 0			; Info.Id
dd offset sub_444304	; Info.Proc
dd 0			; Info.Id
dd offset sub_44430F	; Info.Proc
dd 2			; Info.Id
dd offset sub_44431A	; Info.Proc
dd 2			; Info.Id
dd offset sub_444322	; Info.Proc
dd 2			; Info.Id
dd offset sub_44432A	; Info.Proc
dd 5			; Info.Id
dd offset sub_444332	; Info.Proc
dd 5			; Info.Id
dd offset sub_44433A	; Info.Proc
dd 7			; Info.Id
dd offset sub_444342	; Info.Proc
dd 0			; Info.Id
dd offset sub_44434A	; Info.Proc
dd 0			; Info.Id
dd offset sub_444355	; Info.Proc
stru_44FE60 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44FE60.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44436C	; Info.Proc
stru_44FE88 dd 19930520h	    ; Magic
dd 6			; Count
dd offset stru_44FE88.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444380	; Info.Proc
dd 0			; Info.Id
dd offset sub_44438B	; Info.Proc
dd 1			; Info.Id
dd offset sub_444396	; Info.Proc
dd 2			; Info.Id
dd offset sub_4443A1	; Info.Proc
dd 1			; Info.Id
dd offset sub_4443A9	; Info.Proc
dd 0			; Info.Id
dd offset sub_4443B1	; Info.Proc
stru_44FED8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_44FED8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4443C4	; Info.Proc
stru_44FF00 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_44FF00.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4443D8	; Info.Proc
dd 0			; Info.Id
dd offset sub_4443E2	; Info.Proc
stru_44FF30 dd 19930520h	    ; Magic ; Microsoft	VisualC	2-11/net runtime
dd 1			; Count
dd offset stru_44FF30.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset unknown_libname_18; Info.Proc
stru_44FF58 dd 19930520h	    ; Magic
dd 18			; Count
dd offset stru_44FF58.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44440C	; Info.Proc
dd 0			; Info.Id
dd offset sub_444414	; Info.Proc
dd 1			; Info.Id
dd offset sub_44441C	; Info.Proc
dd 2			; Info.Id
dd offset sub_444424	; Info.Proc
dd 3			; Info.Id
dd offset sub_44442C	; Info.Proc
dd 3			; Info.Id
dd offset sub_444436	; Info.Proc
dd 5			; Info.Id
dd offset sub_444441	; Info.Proc
dd 6			; Info.Id
dd offset sub_444449	; Info.Proc
dd 7			; Info.Id
dd offset sub_444451	; Info.Proc
dd 7			; Info.Id
dd offset sub_44445C	; Info.Proc
dd 7			; Info.Id
dd offset sub_444467	; Info.Proc
dd 5			; Info.Id
dd offset sub_44446F	; Info.Proc
dd 2			; Info.Id
dd offset sub_444477	; Info.Proc
dd 5			; Info.Id
dd offset sub_44447F	; Info.Proc
dd 5			; Info.Id
dd offset sub_444487	; Info.Proc
dd 5			; Info.Id
dd offset sub_444491	; Info.Proc
dd 15			; Info.Id
dd offset sub_44449C	; Info.Proc
dd 2			; Info.Id
dd offset sub_4444A7	; Info.Proc
stru_450008 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_450008.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4444BC	; Info.Proc
stru_450030 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_450030.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4444D4	; Info.Proc
dd 0			; Info.Id
dd offset sub_4444DF	; Info.Proc
dd 1			; Info.Id
dd offset sub_4444EA	; Info.Proc
dd 2			; Info.Id
dd offset sub_4444F5	; Info.Proc
stru_450070 dd 19930520h	    ; Magic
dd 6			; Count
dd offset stru_450070.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444508	; Info.Proc
dd 0			; Info.Id
dd offset sub_444510	; Info.Proc
dd -1			; Info.Id
dd offset sub_444518	; Info.Proc
dd 0			; Info.Id
dd offset sub_444520	; Info.Proc
dd -1			; Info.Id
dd offset sub_444528	; Info.Proc
dd -1			; Info.Id
dd offset sub_444530	; Info.Proc
stru_4500C0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4500C0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444544	; Info.Proc
stru_4500E8 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_4500E8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444558	; Info.Proc
dd 0			; Info.Id
dd offset sub_444560	; Info.Proc
dd 0			; Info.Id
dd offset sub_444568	; Info.Proc
dd 0			; Info.Id
dd offset sub_444570	; Info.Proc
stru_450128 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_450128.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444584	; Info.Proc
stru_450150 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_450150.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444598	; Info.Proc
dd 0			; Info.Id
dd offset sub_4445A0	; Info.Proc
stru_450180 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_450180.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4445B4	; Info.Proc
dd 0			; Info.Id
dd offset sub_4445BC	; Info.Proc
stru_4501B0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4501B0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4445D0	; Info.Proc
stru_4501D8 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_4501D8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4445E4	; Info.Proc
dd 0			; Info.Id
dd offset sub_4445EC	; Info.Proc
stru_450208 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_450208.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444600	; Info.Proc
stru_450230 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_450230.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444614	; Info.Proc
dd -1			; Info.Id
dd offset sub_44461C	; Info.Proc
stru_450260 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_450260.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444630	; Info.Proc
dd 0			; Info.Id
dd offset sub_444638	; Info.Proc
dd 1			; Info.Id
dd offset sub_444640	; Info.Proc
stru_450298 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_450298.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444654	; Info.Proc
dd 0			; Info.Id
dd offset sub_44465C	; Info.Proc
stru_4502C8 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_4502C8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444670	; Info.Proc
dd 0			; Info.Id
dd offset sub_444678	; Info.Proc
stru_4502F8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4502F8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44468C	; Info.Proc
stru_450320 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_450320.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4446A0	; Info.Proc
stru_450348 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_450348.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4446B4	; Info.Proc
stru_450370 dd 19930520h	    ; Magic
dd 18			; Count
dd offset stru_450370.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4446C8	; Info.Proc
dd 0			; Info.Id
dd offset sub_4446D0	; Info.Proc
dd 0			; Info.Id
dd offset sub_4446D8	; Info.Proc
dd 0			; Info.Id
dd offset sub_4446E0	; Info.Proc
dd 3			; Info.Id
dd offset sub_4446E8	; Info.Proc
dd 3			; Info.Id
dd offset sub_4446F0	; Info.Proc
dd 0			; Info.Id
dd offset sub_4446F8	; Info.Proc
dd 0			; Info.Id
dd offset sub_444700	; Info.Proc
dd 7			; Info.Id
dd offset sub_444708	; Info.Proc
dd 8			; Info.Id
dd offset sub_444713	; Info.Proc
dd 9			; Info.Id
dd offset sub_44471B	; Info.Proc
dd 9			; Info.Id
dd offset sub_444723	; Info.Proc
dd 9			; Info.Id
dd offset sub_44472B	; Info.Proc
dd 12			; Info.Id
dd offset sub_444733	; Info.Proc
dd 13			; Info.Id
dd offset sub_44473B	; Info.Proc
dd 8			; Info.Id
dd offset sub_444743	; Info.Proc
dd 14			; Info.Id
dd offset sub_44474B	; Info.Proc
dd 8			; Info.Id
dd offset sub_444753	; Info.Proc
stru_450420 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_450420.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444768	; Info.Proc
dd 0			; Info.Id
dd offset sub_444770	; Info.Proc
dd 0			; Info.Id
dd offset sub_444778	; Info.Proc
dd 2			; Info.Id
dd offset sub_444780	; Info.Proc
dd 0			; Info.Id
dd offset sub_444788	; Info.Proc
stru_450468 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_450468.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44479C	; Info.Proc
dd 0			; Info.Id
dd offset sub_4447A4	; Info.Proc
stru_450498 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_450498.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4447B8	; Info.Proc
stru_4504C0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_4504C0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4447D4	; Info.Proc
dd 0			; Info.Id
dd offset sub_4447CC	; Info.Proc
stru_4504F0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_4504F0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4447F8	; Info.Proc
dd -1			; Info.Id
dd offset sub_444800	; Info.Proc
stru_450520 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_450520.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444814	; Info.Proc
dd 0			; Info.Id
dd offset sub_44481C	; Info.Proc
stru_450550 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_450550.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444830	; Info.Proc
stru_450578 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_450578.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444844	; Info.Proc
stru_4505A0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4505A0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444858	; Info.Proc
stru_4505C8 dd 19930520h	    ; Magic
dd 14			; Count
dd offset stru_4505C8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444874	; Info.Proc
dd 0			; Info.Id
dd offset sub_44487C	; Info.Proc
dd 1			; Info.Id
dd offset sub_444884	; Info.Proc
dd 2			; Info.Id
dd offset sub_44488C	; Info.Proc
dd 3			; Info.Id
dd offset sub_444897	; Info.Proc
dd 1			; Info.Id
dd offset sub_4448AE	; Info.Proc
dd 5			; Info.Id
dd offset sub_4448B6	; Info.Proc
dd 5			; Info.Id
dd offset sub_4448BE	; Info.Proc
dd 5			; Info.Id
dd offset sub_4448C9	; Info.Proc
dd 8			; Info.Id
dd offset sub_4448D1	; Info.Proc
dd 8			; Info.Id
dd offset sub_4448D9	; Info.Proc
dd 5			; Info.Id
dd offset sub_4448E4	; Info.Proc
dd -1			; Info.Id
dd offset sub_4448EC	; Info.Proc
dd -1			; Info.Id
dd offset sub_44486C	; Info.Proc
stru_450658 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_450658.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444900	; Info.Proc
dd 0			; Info.Id
dd offset sub_444908	; Info.Proc
dd 0			; Info.Id
dd offset sub_444910	; Info.Proc
stru_450690 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_450690.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444924	; Info.Proc
stru_4506B8 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_4506B8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444938	; Info.Proc
dd 0			; Info.Id
dd offset sub_444940	; Info.Proc
dd 1			; Info.Id
dd offset sub_44494B	; Info.Proc
stru_4506F0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4506F0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444960	; Info.Proc
stru_450718 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_450718.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444974	; Info.Proc
stru_450740 dd 19930520h	    ; Magic
dd 7			; Count
dd offset stru_450740.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444988	; Info.Proc
dd 0			; Info.Id
dd offset sub_444990	; Info.Proc
dd 0			; Info.Id
dd offset sub_444998	; Info.Proc
dd 2			; Info.Id
dd offset sub_4449A0	; Info.Proc
dd 3			; Info.Id
dd offset sub_4449A8	; Info.Proc
dd 3			; Info.Id
dd offset sub_4449B0	; Info.Proc
dd 3			; Info.Id
dd offset sub_4449B8	; Info.Proc
stru_450798 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_450798.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4449CC	; Info.Proc
stru_4507C0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4507C0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4449E0	; Info.Proc
stru_4507E8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4507E8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4449F4	; Info.Proc
stru_450810 dd 19930520h	    ; Magic
dd 10			; Count
dd offset stru_450810.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444A08	; Info.Proc
dd 0			; Info.Id
dd offset sub_444A13	; Info.Proc
dd 1			; Info.Id
dd offset sub_444A1B	; Info.Proc
dd 2			; Info.Id
dd offset sub_444A23	; Info.Proc
dd 3			; Info.Id
dd offset sub_444A2B	; Info.Proc
dd 4			; Info.Id
dd offset sub_444A33	; Info.Proc
dd 5			; Info.Id
dd offset sub_444A3B	; Info.Proc
dd 6			; Info.Id
dd offset sub_444A43	; Info.Proc
dd 7			; Info.Id
dd offset sub_444A56	; Info.Proc
dd 8			; Info.Id
dd offset sub_444A5E	; Info.Proc
stru_450880 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_450880.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444A70	; Info.Proc
dd 0			; Info.Id
dd offset sub_444A78	; Info.Proc
dd 1			; Info.Id
dd offset sub_444A83	; Info.Proc
dd 2			; Info.Id
dd offset sub_444A8E	; Info.Proc
stru_4508C0 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_4508C0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444AA4	; Info.Proc
dd 0			; Info.Id
dd offset sub_444AAC	; Info.Proc
dd 1			; Info.Id
dd offset sub_444AB7	; Info.Proc
stru_4508F8 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_4508F8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444ACC	; Info.Proc
dd 0			; Info.Id
dd offset sub_444AD4	; Info.Proc
dd 0			; Info.Id
dd offset sub_444ADC	; Info.Proc
stru_450930 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_450930.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444AF0	; Info.Proc
dd 0			; Info.Id
dd offset sub_444AF8	; Info.Proc
dd 1			; Info.Id
dd offset sub_444B00	; Info.Proc
stru_450968 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_450968.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444B14	; Info.Proc
dd 0			; Info.Id
dd offset sub_444B1C	; Info.Proc
dd 1			; Info.Id
dd offset sub_444B24	; Info.Proc
stru_4509A0 dd 19930520h	    ; Magic
dd 18			; Count
dd offset stru_4509A0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444B38	; Info.Proc
dd 0			; Info.Id
dd offset sub_444B43	; Info.Proc
dd 1			; Info.Id
dd offset sub_444B4B	; Info.Proc
dd 2			; Info.Id
dd offset sub_444B53	; Info.Proc
dd 2			; Info.Id
dd offset sub_444B5B	; Info.Proc
dd 2			; Info.Id
dd offset sub_444B63	; Info.Proc
dd 2			; Info.Id
dd offset sub_444B6B	; Info.Proc
dd 6			; Info.Id
dd offset sub_444B73	; Info.Proc
dd 7			; Info.Id
dd offset sub_444B7B	; Info.Proc
dd 7			; Info.Id
dd offset sub_444B83	; Info.Proc
dd 2			; Info.Id
dd offset sub_444B8B	; Info.Proc
dd 10			; Info.Id
dd offset sub_444B93	; Info.Proc
dd 11			; Info.Id
dd offset sub_444B9B	; Info.Proc
dd 12			; Info.Id
dd offset sub_444BA3	; Info.Proc
dd 13			; Info.Id
dd offset sub_444BAB	; Info.Proc
dd 10			; Info.Id
dd offset sub_444BAB	; Info.Proc
dd 15			; Info.Id
dd offset sub_444BA3	; Info.Proc
dd 16			; Info.Id
dd offset sub_444B9B	; Info.Proc
stru_450A50 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_450A50.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444BC0	; Info.Proc
dd 0			; Info.Id
dd offset sub_444BC8	; Info.Proc
dd 1			; Info.Id
dd offset sub_444BD0	; Info.Proc
stru_450A88 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_450A88.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444BE4	; Info.Proc
dd 0			; Info.Id
dd offset sub_444BEC	; Info.Proc
stru_450AB8 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_450AB8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444C00	; Info.Proc
dd 0			; Info.Id
dd offset sub_444C08	; Info.Proc
stru_450AE8 dd 19930520h	    ; Magic
dd 7			; Count
dd offset stru_450AE8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444C1C	; Info.Proc
dd 0			; Info.Id
dd offset sub_444C24	; Info.Proc
dd 1			; Info.Id
dd offset sub_444C2C	; Info.Proc
dd 2			; Info.Id
dd offset sub_444C34	; Info.Proc
dd 1			; Info.Id
dd offset sub_444C3C	; Info.Proc
dd 4			; Info.Id
dd offset sub_444C44	; Info.Proc
dd 5			; Info.Id
dd offset sub_444C4C	; Info.Proc
stru_450B40 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_450B40.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444C60	; Info.Proc
stru_450B68 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_450B68.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444C74	; Info.Proc
stru_450B90 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_450B90.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444C88	; Info.Proc
dd 0			; Info.Id
dd offset sub_444C90	; Info.Proc
dd 1			; Info.Id
dd offset sub_444C98	; Info.Proc
dd 2			; Info.Id
dd offset sub_444CA0	; Info.Proc
stru_450BD0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_450BD0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444CB4	; Info.Proc
stru_450BF8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_450BF8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444CC8	; Info.Proc
stru_450C20 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_450C20.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444CDC	; Info.Proc
dd 0			; Info.Id
dd offset sub_444CE4	; Info.Proc
dd -1			; Info.Id
dd offset sub_444CEC	; Info.Proc
stru_450C58 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_450C58.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444D00	; Info.Proc
dd 0			; Info.Id
dd offset sub_444D08	; Info.Proc
dd 1			; Info.Id
dd offset sub_444D13	; Info.Proc
stru_450C90 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_450C90.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444D28	; Info.Proc
dd 0			; Info.Id
dd offset sub_444D30	; Info.Proc
stru_450CC0 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_450CC0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444D48	; Info.Proc
dd 0			; Info.Id
dd offset sub_444D50	; Info.Proc
dd 1			; Info.Id
dd offset sub_444D5E	; Info.Proc
dd 2			; Info.Id
dd offset sub_444D6C	; Info.Proc
stru_450D00 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_450D00.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444D84	; Info.Proc
stru_450D28 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_450D28.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444D98	; Info.Proc
stru_450D50 dd 19930520h	    ; Magic
dd 32			; Count
dd offset stru_450D50.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444DAC	; Info.Proc
dd 0			; Info.Id
dd offset sub_444DB4	; Info.Proc
dd 1			; Info.Id
dd offset sub_444DBC	; Info.Proc
dd 2			; Info.Id
dd offset sub_444DC7	; Info.Proc
dd 3			; Info.Id
dd offset sub_444DCF	; Info.Proc
dd 4			; Info.Id
dd offset sub_444DDA	; Info.Proc
dd 5			; Info.Id
dd offset sub_444DE2	; Info.Proc
dd 6			; Info.Id
dd offset sub_444DEA	; Info.Proc
dd 5			; Info.Id
dd offset sub_444DEA	; Info.Proc
dd 8			; Info.Id
dd offset sub_444DF2	; Info.Proc
dd 9			; Info.Id
dd offset sub_444DFD	; Info.Proc
dd 10			; Info.Id
dd offset sub_444E05	; Info.Proc
dd 11			; Info.Id
dd offset sub_444E0D	; Info.Proc
dd 12			; Info.Id
dd offset sub_444E15	; Info.Proc
dd 2			; Info.Id
dd offset sub_444E1D	; Info.Proc
dd 9			; Info.Id
dd offset sub_444E25	; Info.Proc
dd 15			; Info.Id
dd offset sub_444E30	; Info.Proc
dd 16			; Info.Id
dd offset sub_444E3B	; Info.Proc
dd 15			; Info.Id
dd offset sub_444E43	; Info.Proc
dd 2			; Info.Id
dd offset sub_444E4E	; Info.Proc
dd 15			; Info.Id
dd offset sub_444E56	; Info.Proc
dd 2			; Info.Id
dd offset sub_444E61	; Info.Proc
dd 17			; Info.Id
dd offset sub_444E69	; Info.Proc
dd 15			; Info.Id
dd offset sub_444E71	; Info.Proc
dd 2			; Info.Id
dd offset sub_444E7C	; Info.Proc
dd 17			; Info.Id
dd offset sub_444E84	; Info.Proc
dd 17			; Info.Id
dd offset sub_444E8E	; Info.Proc
dd 15			; Info.Id
dd offset sub_444E96	; Info.Proc
dd 2			; Info.Id
dd offset sub_444EA1	; Info.Proc
dd 26			; Info.Id
dd offset sub_444EA9	; Info.Proc
dd 29			; Info.Id
dd offset sub_444EB4	; Info.Proc
dd 30			; Info.Id
dd offset sub_444EBC	; Info.Proc
stru_450E70 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_450E70.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444ED4	; Info.Proc
dd 0			; Info.Id
dd offset sub_444EDC	; Info.Proc
stru_450EA0 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_450EA0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444EF4	; Info.Proc
dd 0			; Info.Id
dd offset sub_444EFC	; Info.Proc
dd 1			; Info.Id
dd offset sub_444F04	; Info.Proc
stru_450ED8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_450ED8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444F18	; Info.Proc
stru_450F00 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_450F00.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444F2C	; Info.Proc
dd 0			; Info.Id
dd offset sub_444F34	; Info.Proc
dd 1			; Info.Id
dd offset sub_444F3F	; Info.Proc
dd 2			; Info.Id
dd offset sub_444F4A	; Info.Proc
stru_450F40 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_450F40.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444F60	; Info.Proc
dd 0			; Info.Id
dd offset sub_444F68	; Info.Proc
dd 1			; Info.Id
dd offset sub_444F73	; Info.Proc
stru_450F78 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_450F78.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444F88	; Info.Proc
dd 0			; Info.Id
dd offset sub_444F90	; Info.Proc
dd 1			; Info.Id
dd offset sub_444F98	; Info.Proc
stru_450FB0 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_450FB0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444FAC	; Info.Proc
dd 0			; Info.Id
dd offset sub_444FB4	; Info.Proc
dd -1			; Info.Id
dd offset sub_444FBC	; Info.Proc
stru_450FE8 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_450FE8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444FD0	; Info.Proc
dd 0			; Info.Id
dd offset sub_444FD8	; Info.Proc
stru_451018 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_451018.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_444FEC	; Info.Proc
stru_451040 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_451040.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445000	; Info.Proc
stru_451068 dd 19930520h	    ; Magic
dd 13			; Count
dd offset stru_451068.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445014	; Info.Proc
dd 0			; Info.Id
dd offset sub_44501C	; Info.Proc
dd 1			; Info.Id
dd offset sub_445024	; Info.Proc
dd 2			; Info.Id
dd offset sub_44502C	; Info.Proc
dd 2			; Info.Id
dd offset sub_445034	; Info.Proc
dd 4			; Info.Id
dd offset sub_44503C	; Info.Proc
dd 5			; Info.Id
dd offset sub_445047	; Info.Proc
dd 6			; Info.Id
dd offset sub_44504F	; Info.Proc
dd 6			; Info.Id
dd offset sub_44505A	; Info.Proc
dd 6			; Info.Id
dd offset sub_445070	; Info.Proc
dd 6			; Info.Id
dd offset sub_445065	; Info.Proc
dd 6			; Info.Id
dd offset sub_44507B	; Info.Proc
dd 11			; Info.Id
dd offset sub_445086	; Info.Proc
stru_4510F0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4510F0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44509C	; Info.Proc
stru_451118 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_451118.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4450B0	; Info.Proc
dd 0			; Info.Id
dd offset sub_4450C7	; Info.Proc
stru_451148 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_451148.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4450DC	; Info.Proc
dd 0			; Info.Id
dd offset sub_4450F3	; Info.Proc
dd 1			; Info.Id
dd offset sub_4450FB	; Info.Proc
stru_451180 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_451180.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445110	; Info.Proc
dd 0			; Info.Id
dd offset sub_445118	; Info.Proc
stru_4511B0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4511B0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44512C	; Info.Proc
stru_4511D8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4511D8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445140	; Info.Proc
stru_451200 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_451200.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445154	; Info.Proc
stru_451228 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_451228.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445168	; Info.Proc
stru_451250 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_451250.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44517C	; Info.Proc
dd -1			; Info.Id
dd offset sub_445184	; Info.Proc
stru_451280 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_451280.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445198	; Info.Proc
stru_4512A8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4512A8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4451AC	; Info.Proc
stru_4512D0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4512D0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4451C0	; Info.Proc
stru_4512F8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4512F8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4451D4	; Info.Proc
stru_451320 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_451320.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4451E8	; Info.Proc
stru_451348 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_451348.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4451FC	; Info.Proc
dd 0			; Info.Id
dd offset sub_445204	; Info.Proc
stru_451378 dd 19930520h	    ; Magic
dd 8			; Count
dd offset stru_451378.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445218	; Info.Proc
dd 0			; Info.Id
dd offset sub_445220	; Info.Proc
dd 1			; Info.Id
dd offset sub_445228	; Info.Proc
dd 2			; Info.Id
dd offset sub_445230	; Info.Proc
dd 3			; Info.Id
dd offset sub_445238	; Info.Proc
dd 1			; Info.Id
dd offset sub_445248	; Info.Proc
dd 1			; Info.Id
dd offset sub_445240	; Info.Proc
dd 1			; Info.Id
dd offset sub_445250	; Info.Proc
stru_4513D8 dd 19930520h	    ; Magic
dd 10			; Count
dd offset stru_4513D8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445264	; Info.Proc
dd 0			; Info.Id
dd offset sub_44526C	; Info.Proc
dd 1			; Info.Id
dd offset sub_445274	; Info.Proc
dd 0			; Info.Id
dd offset sub_44527C	; Info.Proc
dd 3			; Info.Id
dd offset sub_445284	; Info.Proc
dd 3			; Info.Id
dd offset sub_44528C	; Info.Proc
dd 5			; Info.Id
dd offset sub_445294	; Info.Proc
dd 6			; Info.Id
dd offset sub_44529C	; Info.Proc
dd 6			; Info.Id
dd offset sub_4452A4	; Info.Proc
dd 8			; Info.Id
dd offset sub_4452AC	; Info.Proc
stru_451448 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_451448.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4452C0	; Info.Proc
dd 0			; Info.Id
dd offset sub_4452C8	; Info.Proc
dd 1			; Info.Id
dd offset sub_4452D0	; Info.Proc
stru_451480 dd 19930520h	    ; Magic
dd 15			; Count
dd offset stru_451480.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4452E4	; Info.Proc
dd 0			; Info.Id
dd offset sub_4452EC	; Info.Proc
dd 1			; Info.Id
dd offset sub_4452F4	; Info.Proc
dd 2			; Info.Id
dd offset sub_4452FF	; Info.Proc
dd 3			; Info.Id
dd offset sub_445307	; Info.Proc
dd 2			; Info.Id
dd offset sub_44530F	; Info.Proc
dd 2			; Info.Id
dd offset sub_445317	; Info.Proc
dd 6			; Info.Id
dd offset sub_44531F	; Info.Proc
dd 7			; Info.Id
dd offset sub_445327	; Info.Proc
dd 6			; Info.Id
dd offset sub_44532F	; Info.Proc
dd 9			; Info.Id
dd offset sub_445337	; Info.Proc
dd 10			; Info.Id
dd offset sub_44533F	; Info.Proc
dd 11			; Info.Id
dd offset sub_445347	; Info.Proc
dd 10			; Info.Id
dd offset sub_44534F	; Info.Proc
dd 13			; Info.Id
dd offset sub_445357	; Info.Proc
stru_451518 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_451518.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44536C	; Info.Proc
dd 0			; Info.Id
dd offset sub_44537C	; Info.Proc
dd 0			; Info.Id
dd offset sub_445374	; Info.Proc
dd 0			; Info.Id
dd offset sub_445384	; Info.Proc
stru_451558 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_451558.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445398	; Info.Proc
dd 0			; Info.Id
dd offset sub_4453A0	; Info.Proc
dd 1			; Info.Id
dd offset sub_4453A8	; Info.Proc
stru_451590 dd 19930520h	    ; Magic
dd 6			; Count
dd offset stru_451590.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4453BC	; Info.Proc
dd 0			; Info.Id
dd offset sub_4453C4	; Info.Proc
dd 1			; Info.Id
dd offset sub_4453CC	; Info.Proc
dd 2			; Info.Id
dd offset sub_4453D4	; Info.Proc
dd 3			; Info.Id
dd offset sub_4453DC	; Info.Proc
dd 3			; Info.Id
dd offset sub_4453E4	; Info.Proc
stru_4515E0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_4515E0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4453F8	; Info.Proc
dd 0			; Info.Id
dd offset sub_445400	; Info.Proc
stru_451610 dd 19930520h	    ; Magic
dd 8			; Count
dd offset stru_451610.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445414	; Info.Proc
dd -1			; Info.Id
dd offset sub_44541E	; Info.Proc
dd 1			; Info.Id
dd offset sub_445426	; Info.Proc
dd 2			; Info.Id
dd offset sub_44542E	; Info.Proc
dd 3			; Info.Id
dd offset sub_445436	; Info.Proc
dd 4			; Info.Id
dd offset sub_44543E	; Info.Proc
dd 3			; Info.Id
dd offset sub_445446	; Info.Proc
dd 2			; Info.Id
dd offset sub_44544E	; Info.Proc
stru_451670 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_451670.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445460	; Info.Proc
stru_451698 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_451698.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445474	; Info.Proc
dd 0			; Info.Id
dd offset sub_44547C	; Info.Proc
stru_4516C8 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_4516C8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445490	; Info.Proc
dd 0			; Info.Id
dd offset sub_445498	; Info.Proc
dd 1			; Info.Id
dd offset sub_4454A0	; Info.Proc
dd 2			; Info.Id
dd offset sub_4454A8	; Info.Proc
stru_451708 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_451708.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4454BC	; Info.Proc
stru_451730 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_451730.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4454D0	; Info.Proc
dd -1			; Info.Id
dd offset sub_4454DA	; Info.Proc
dd 1			; Info.Id
dd offset sub_4454E2	; Info.Proc
dd 1			; Info.Id
dd offset sub_4454EA	; Info.Proc
dd 3			; Info.Id
dd offset sub_4454F2	; Info.Proc
stru_451778 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_451778.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445504	; Info.Proc
stru_4517A0 dd 19930520h	    ; Magic
dd 17			; Count
dd offset stru_4517A0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445518	; Info.Proc
dd 0			; Info.Id
dd offset sub_445520	; Info.Proc
dd 1			; Info.Id
dd offset sub_445528	; Info.Proc
dd 2			; Info.Id
dd offset sub_445533	; Info.Proc
dd 3			; Info.Id
dd offset sub_44553B	; Info.Proc
dd 4			; Info.Id
dd offset sub_445543	; Info.Proc
dd 5			; Info.Id
dd offset sub_44554B	; Info.Proc
dd 6			; Info.Id
dd offset sub_445556	; Info.Proc
dd 3			; Info.Id
dd offset sub_445556	; Info.Proc
dd 8			; Info.Id
dd offset sub_44554B	; Info.Proc
dd 9			; Info.Id
dd offset sub_445543	; Info.Proc
dd 2			; Info.Id
dd offset sub_44555E	; Info.Proc
dd 11			; Info.Id
dd offset sub_445566	; Info.Proc
dd 12			; Info.Id
dd offset sub_44556E	; Info.Proc
dd 13			; Info.Id
dd offset sub_445576	; Info.Proc
dd 11			; Info.Id
dd offset sub_445576	; Info.Proc
dd 15			; Info.Id
dd offset sub_44556E	; Info.Proc
stru_451848 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_451848.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445588	; Info.Proc
stru_451870 dd 19930520h	    ; Magic
dd 14			; Count
dd offset stru_451870.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44559C	; Info.Proc
dd 0			; Info.Id
dd offset sub_4455A4	; Info.Proc
dd 1			; Info.Id
dd offset sub_4455AC	; Info.Proc
dd 2			; Info.Id
dd offset sub_4455B4	; Info.Proc
dd 3			; Info.Id
dd offset sub_4455BC	; Info.Proc
dd 3			; Info.Id
dd offset sub_4455C4	; Info.Proc
dd 3			; Info.Id
dd offset sub_4455CC	; Info.Proc
dd 3			; Info.Id
dd offset sub_4455D4	; Info.Proc
dd 2			; Info.Id
dd offset sub_4455DC	; Info.Proc
dd 2			; Info.Id
dd offset sub_4455E4	; Info.Proc
dd 9			; Info.Id
dd offset sub_4455EC	; Info.Proc
dd 2			; Info.Id
dd offset sub_4455F4	; Info.Proc
dd 11			; Info.Id
dd offset sub_4455FF	; Info.Proc
dd 12			; Info.Id
dd offset sub_445607	; Info.Proc
stru_451900 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_451900.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44561C	; Info.Proc
stru_451928 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_451928.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445630	; Info.Proc
dd 0			; Info.Id
dd offset sub_445638	; Info.Proc
dd 1			; Info.Id
dd offset sub_445646	; Info.Proc
dd 2			; Info.Id
dd offset sub_445654	; Info.Proc
stru_451968 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_451968.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44566C	; Info.Proc
stru_451990 dd 19930520h	    ; Magic
dd 8			; Count
dd offset stru_451990.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445680	; Info.Proc
dd 0			; Info.Id
dd offset sub_445688	; Info.Proc
dd 1			; Info.Id
dd offset sub_445690	; Info.Proc
dd 2			; Info.Id
dd offset sub_445698	; Info.Proc
dd 3			; Info.Id
dd offset sub_4456A0	; Info.Proc
dd 4			; Info.Id
dd offset sub_4456AB	; Info.Proc
dd 5			; Info.Id
dd offset sub_4456B3	; Info.Proc
dd 3			; Info.Id
dd offset sub_4456BB	; Info.Proc
stru_4519F0 dd 19930520h	    ; Magic
dd 14			; Count
dd offset stru_4519F0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4456D0	; Info.Proc
dd 0			; Info.Id
dd offset sub_4456D8	; Info.Proc
dd 1			; Info.Id
dd offset sub_4456E0	; Info.Proc
dd 2			; Info.Id
dd offset sub_4456E8	; Info.Proc
dd 3			; Info.Id
dd offset sub_4456F3	; Info.Proc
dd 3			; Info.Id
dd offset sub_4456FB	; Info.Proc
dd 3			; Info.Id
dd offset sub_445703	; Info.Proc
dd 1			; Info.Id
dd offset sub_44570B	; Info.Proc
dd 3			; Info.Id
dd offset sub_445713	; Info.Proc
dd 8			; Info.Id
dd offset sub_44571B	; Info.Proc
dd 9			; Info.Id
dd offset sub_445726	; Info.Proc
dd 10			; Info.Id
dd offset sub_44572E	; Info.Proc
dd 1			; Info.Id
dd offset sub_445736	; Info.Proc
dd 8			; Info.Id
dd offset sub_44573E	; Info.Proc
stru_451A80 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_451A80.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445750	; Info.Proc
dd 0			; Info.Id
dd offset sub_445758	; Info.Proc
dd 1			; Info.Id
dd offset sub_445763	; Info.Proc
stru_451AB8 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_451AB8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445778	; Info.Proc
dd 0			; Info.Id
dd offset sub_445780	; Info.Proc
dd 1			; Info.Id
dd offset sub_44578B	; Info.Proc
dd 2			; Info.Id
dd offset sub_445796	; Info.Proc
dd 3			; Info.Id
dd offset sub_4457A1	; Info.Proc
stru_451B00 dd 19930520h	    ; Magic
dd 11			; Count
dd offset stru_451B00.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4457B4	; Info.Proc
dd 0			; Info.Id
dd offset sub_4457BC	; Info.Proc
dd 1			; Info.Id
dd offset sub_4457C4	; Info.Proc
dd 2			; Info.Id
dd offset sub_4457CC	; Info.Proc
dd 3			; Info.Id
dd offset sub_4457D7	; Info.Proc
dd 3			; Info.Id
dd offset sub_4457DF	; Info.Proc
dd 3			; Info.Id
dd offset sub_4457E7	; Info.Proc
dd 1			; Info.Id
dd offset sub_4457EF	; Info.Proc
dd 3			; Info.Id
dd offset sub_4457F7	; Info.Proc
dd 1			; Info.Id
dd offset sub_4457FF	; Info.Proc
dd 8			; Info.Id
dd offset sub_445807	; Info.Proc
stru_451B78 dd 19930520h	    ; Magic
dd 16			; Count
dd offset stru_451B78.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44581C	; Info.Proc
dd 0			; Info.Id
dd offset sub_445824	; Info.Proc
dd 1			; Info.Id
dd offset sub_44582C	; Info.Proc
dd 0			; Info.Id
dd offset sub_445834	; Info.Proc
dd 2			; Info.Id
dd offset sub_44583C	; Info.Proc
dd 4			; Info.Id
dd offset sub_445844	; Info.Proc
dd 0			; Info.Id
dd offset sub_44584C	; Info.Proc
dd 0			; Info.Id
dd offset sub_445895	; Info.Proc
dd 4			; Info.Id
dd offset sub_445854	; Info.Proc
dd 8			; Info.Id
dd offset sub_44585C	; Info.Proc
dd 9			; Info.Id
dd offset sub_445867	; Info.Proc
dd 10			; Info.Id
dd offset sub_44586F	; Info.Proc
dd 11			; Info.Id
dd offset sub_44587A	; Info.Proc
dd 9			; Info.Id
dd offset sub_445885	; Info.Proc
dd 0			; Info.Id
dd offset sub_44588D	; Info.Proc
dd 9			; Info.Id
dd offset sub_44589D	; Info.Proc
stru_451C18 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_451C18.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4458B0	; Info.Proc
dd 0			; Info.Id
dd offset sub_4458B8	; Info.Proc
dd 1			; Info.Id
dd offset sub_4458CF	; Info.Proc
dd 0			; Info.Id
dd offset sub_4458E6	; Info.Proc
dd 0			; Info.Id
dd offset sub_4458EE	; Info.Proc
stru_451C60 dd 19930520h	    ; Magic
dd 7			; Count
dd offset stru_451C60.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445900	; Info.Proc
dd 0			; Info.Id
dd offset sub_445908	; Info.Proc
dd 1			; Info.Id
dd offset sub_445910	; Info.Proc
dd 2			; Info.Id
dd offset sub_445918	; Info.Proc
dd 0			; Info.Id
dd offset sub_445918	; Info.Proc
dd 4			; Info.Id
dd offset sub_445910	; Info.Proc
dd 4			; Info.Id
dd offset sub_445920	; Info.Proc
stru_451CB8 dd 19930520h	    ; Magic
dd 10			; Count
dd offset stru_451CB8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445964	; Info.Proc
dd 0			; Info.Id
dd offset sub_44596C	; Info.Proc
dd -1			; Info.Id
dd offset sub_445944	; Info.Proc
dd 2			; Info.Id
dd offset sub_44594C	; Info.Proc
dd -1			; Info.Id
dd offset sub_44594C	; Info.Proc
dd 4			; Info.Id
dd offset sub_445954	; Info.Proc
dd 5			; Info.Id
dd offset sub_44595C	; Info.Proc
dd 4			; Info.Id
dd offset sub_44595C	; Info.Proc
dd -1			; Info.Id
dd offset sub_445934	; Info.Proc
dd 8			; Info.Id
dd offset sub_44593C	; Info.Proc
db    1
db    0
db    0
db    0
db  98h	; ò
db 0BBh	; ª
db  45h	; E
db    0
db    0
db    0
db    0
db    0
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db    0
db    0
db    0
db    0
db    4
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    1
db    0
db    0
db    0
db 0A8h	; ®
db 0BBh	; ª
db  45h	; E
db    0
db    0
db    0
db    0
db    0
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db    0
db    0
db    0
db    0
db    4
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    2
db    0
db    0
db    0
db  48h	; H
db  1Dh
db  45h	; E
db    0
db  28h	; (
db  1Dh
db  45h	; E
db    0
db    0
db    0
db    0
db    0
unk_451D78 db	 1
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db  68h	; h
db  1Dh
db  45h	; E
db    0
stru_451D88 dd 19930520h	    ; Magic
dd 7			; Count
dd offset stru_451D88.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445980	; Info.Proc
dd 0			; Info.Id
dd offset sub_445988	; Info.Proc
dd 1			; Info.Id
dd offset sub_445993	; Info.Proc
dd 2			; Info.Id
dd offset sub_44599B	; Info.Proc
dd 2			; Info.Id
dd offset sub_4459A3	; Info.Proc
dd 4			; Info.Id
dd offset sub_4459AB	; Info.Proc
dd 5			; Info.Id
dd offset sub_4459B3	; Info.Proc
stru_451DE0 dd 19930520h	    ; Magic
dd 6			; Count
dd offset stru_451DE0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4459C8	; Info.Proc
dd 0			; Info.Id
dd offset sub_4459D0	; Info.Proc
dd 0			; Info.Id
dd offset sub_4459D8	; Info.Proc
dd 2			; Info.Id
dd offset sub_4459E0	; Info.Proc
dd 0			; Info.Id
dd offset sub_4459E8	; Info.Proc
dd 0			; Info.Id
dd offset sub_4459F0	; Info.Proc
stru_451E30 dd 19930520h	    ; Magic
dd 20			; Count
dd offset stru_451E30.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445A04	; Info.Proc
dd 0			; Info.Id
dd offset sub_445A0C	; Info.Proc
dd 1			; Info.Id
dd offset sub_445A14	; Info.Proc
dd 2			; Info.Id
dd offset sub_445A1C	; Info.Proc
dd 1			; Info.Id
dd offset sub_445A1C	; Info.Proc
dd 4			; Info.Id
dd offset sub_445A24	; Info.Proc
dd 5			; Info.Id
dd offset sub_445A2C	; Info.Proc
dd 6			; Info.Id
dd offset sub_445A37	; Info.Proc
dd 6			; Info.Id
dd offset sub_445A3F	; Info.Proc
dd 8			; Info.Id
dd offset sub_445A4A	; Info.Proc
dd 8			; Info.Id
dd offset sub_445A52	; Info.Proc
dd 10			; Info.Id
dd offset sub_445A5A	; Info.Proc
dd 8			; Info.Id
dd offset sub_445A62	; Info.Proc
dd 8			; Info.Id
dd offset sub_445A6A	; Info.Proc
dd 13			; Info.Id
dd offset sub_445A75	; Info.Proc
dd 14			; Info.Id
dd offset sub_445A7D	; Info.Proc
dd 15			; Info.Id
dd offset sub_445A85	; Info.Proc
dd 16			; Info.Id
dd offset sub_445A8D	; Info.Proc
dd 15			; Info.Id
dd offset sub_445A95	; Info.Proc
dd 15			; Info.Id
dd offset sub_445A9D	; Info.Proc
stru_451EF0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_451EF0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445AB0	; Info.Proc
dd 0			; Info.Id
dd offset sub_445AB8	; Info.Proc
stru_451F20 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_451F20.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445AD0	; Info.Proc
dd 0			; Info.Id
dd offset sub_445AD8	; Info.Proc
dd 1			; Info.Id
dd offset sub_445AE3	; Info.Proc
stru_451F58 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_451F58.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445AF8	; Info.Proc
dd 0			; Info.Id
dd offset sub_445B00	; Info.Proc
stru_451F88 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_451F88.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445B18	; Info.Proc
dd 0			; Info.Id
dd offset sub_445B20	; Info.Proc
dd 1			; Info.Id
dd offset sub_445B2E	; Info.Proc
stru_451FC0 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_451FC0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445B48	; Info.Proc
dd 0			; Info.Id
dd offset sub_445B50	; Info.Proc
dd 1			; Info.Id
dd offset sub_445B58	; Info.Proc
dd 2			; Info.Id
dd offset sub_445B60	; Info.Proc
stru_452000 dd 19930520h	    ; Magic
dd 28			; Count
dd offset stru_452000.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445B74	; Info.Proc
dd 0			; Info.Id
dd offset sub_445B7C	; Info.Proc
dd 1			; Info.Id
dd offset sub_445B84	; Info.Proc
dd 2			; Info.Id
dd offset sub_445B8F	; Info.Proc
dd 1			; Info.Id
dd offset sub_445B8F	; Info.Proc
dd 4			; Info.Id
dd offset sub_445B97	; Info.Proc
dd 5			; Info.Id
dd offset sub_445B9F	; Info.Proc
dd 5			; Info.Id
dd offset sub_445BAA	; Info.Proc
dd 7			; Info.Id
dd offset sub_445BB5	; Info.Proc
dd 8			; Info.Id
dd offset sub_445BC0	; Info.Proc
dd 9			; Info.Id
dd offset sub_445BC8	; Info.Proc
dd 10			; Info.Id
dd offset sub_445BD3	; Info.Proc
dd 10			; Info.Id
dd offset sub_445BDE	; Info.Proc
dd 9			; Info.Id
dd offset sub_445BE6	; Info.Proc
dd 13			; Info.Id
dd offset sub_445BEE	; Info.Proc
dd 13			; Info.Id
dd offset sub_445BF9	; Info.Proc
dd 15			; Info.Id
dd offset sub_445C04	; Info.Proc
dd 15			; Info.Id
dd offset sub_445C0C	; Info.Proc
dd 15			; Info.Id
dd offset sub_445C14	; Info.Proc
dd 13			; Info.Id
dd offset sub_445C1C	; Info.Proc
dd 13			; Info.Id
dd offset sub_445C24	; Info.Proc
dd 20			; Info.Id
dd offset sub_445C2C	; Info.Proc
dd 21			; Info.Id
dd offset sub_445C37	; Info.Proc
dd 22			; Info.Id
dd offset sub_445C42	; Info.Proc
dd 22			; Info.Id
dd offset sub_445C4A	; Info.Proc
dd 24			; Info.Id
dd offset sub_445C55	; Info.Proc
dd 25			; Info.Id
dd offset sub_445C60	; Info.Proc
dd 26			; Info.Id
dd offset sub_445C6B	; Info.Proc
stru_452100 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_452100.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445C80	; Info.Proc
dd -1			; Info.Id
dd offset sub_445C88	; Info.Proc
dd -1			; Info.Id
dd offset sub_445C90	; Info.Proc
stru_452138 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_452138.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445CA4	; Info.Proc
dd 0			; Info.Id
dd offset sub_445CAC	; Info.Proc
dd 1			; Info.Id
dd offset sub_445CBA	; Info.Proc
stru_452170 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_452170.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445CD4	; Info.Proc
dd 0			; Info.Id
dd offset sub_445CDC	; Info.Proc
dd 1			; Info.Id
dd offset sub_445CEA	; Info.Proc
stru_4521A8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4521A8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445CFC	; Info.Proc
stru_4521D0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4521D0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445D10	; Info.Proc
stru_4521F8 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_4521F8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445D24	; Info.Proc
dd 0			; Info.Id
dd offset sub_445D2C	; Info.Proc
dd 1			; Info.Id
dd offset sub_445D34	; Info.Proc
stru_452230 dd 19930520h	    ; Magic
dd 15			; Count
dd offset stru_452230.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445D48	; Info.Proc
dd 0			; Info.Id
dd offset sub_445D50	; Info.Proc
dd 1			; Info.Id
dd offset sub_445D58	; Info.Proc
dd 2			; Info.Id
dd offset sub_445D60	; Info.Proc
dd 2			; Info.Id
dd offset sub_445D68	; Info.Proc
dd 4			; Info.Id
dd offset sub_445D70	; Info.Proc
dd 2			; Info.Id
dd offset sub_445D70	; Info.Proc
dd 6			; Info.Id
dd offset sub_445D78	; Info.Proc
dd 7			; Info.Id
dd offset sub_445D80	; Info.Proc
dd 6			; Info.Id
dd offset sub_445D88	; Info.Proc
dd 9			; Info.Id
dd offset sub_445D90	; Info.Proc
dd 10			; Info.Id
dd offset sub_445D98	; Info.Proc
dd 11			; Info.Id
dd offset sub_445DA0	; Info.Proc
dd 9			; Info.Id
dd offset sub_445DA8	; Info.Proc
dd 13			; Info.Id
dd offset sub_445DB0	; Info.Proc
stru_4522C8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4522C8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445DC4	; Info.Proc
stru_4522F0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_4522F0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445DD8	; Info.Proc
dd 0			; Info.Id
dd offset sub_445DE0	; Info.Proc
stru_452320 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_452320.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445DF4	; Info.Proc
dd 0			; Info.Id
dd offset sub_445DFC	; Info.Proc
dd 1			; Info.Id
dd offset sub_445E04	; Info.Proc
stru_452358 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_452358.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445E18	; Info.Proc
dd 0			; Info.Id
dd offset sub_445E20	; Info.Proc
dd 1			; Info.Id
dd offset sub_445E28	; Info.Proc
stru_452390 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_452390.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445E3C	; Info.Proc
stru_4523B8 dd 19930520h	    ; Magic
dd 13			; Count
dd offset stru_4523B8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445E50	; Info.Proc
dd 0			; Info.Id
dd offset sub_445E58	; Info.Proc
dd 1			; Info.Id
dd offset sub_445E60	; Info.Proc
dd 2			; Info.Id
dd offset sub_445E68	; Info.Proc
dd 1			; Info.Id
dd offset sub_445E70	; Info.Proc
dd 4			; Info.Id
dd offset sub_445E78	; Info.Proc
dd 4			; Info.Id
dd offset sub_445E80	; Info.Proc
dd 1			; Info.Id
dd offset sub_445E88	; Info.Proc
dd 7			; Info.Id
dd offset sub_445E90	; Info.Proc
dd 8			; Info.Id
dd offset sub_445E98	; Info.Proc
dd 7			; Info.Id
dd offset sub_445EA0	; Info.Proc
dd 10			; Info.Id
dd offset sub_445EA8	; Info.Proc
dd 11			; Info.Id
dd offset sub_445EB0	; Info.Proc
stru_452440 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_452440.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445EC4	; Info.Proc
stru_452468 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_452468.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445ED8	; Info.Proc
stru_452490 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_452490.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445EEC	; Info.Proc
stru_4524B8 dd 19930520h	    ; Magic
dd 13			; Count
dd offset stru_4524B8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445F00	; Info.Proc
dd 0			; Info.Id
dd offset sub_445F08	; Info.Proc
dd 0			; Info.Id
dd offset sub_445F10	; Info.Proc
dd 2			; Info.Id
dd offset sub_445F18	; Info.Proc
dd 0			; Info.Id
dd offset sub_445F20	; Info.Proc
dd 4			; Info.Id
dd offset sub_445F28	; Info.Proc
dd 5			; Info.Id
dd offset sub_445F30	; Info.Proc
dd 5			; Info.Id
dd offset sub_445F38	; Info.Proc
dd 4			; Info.Id
dd offset sub_445F38	; Info.Proc
dd 8			; Info.Id
dd offset sub_445F40	; Info.Proc
dd 9			; Info.Id
dd offset sub_445F4B	; Info.Proc
dd 9			; Info.Id
dd offset sub_445F53	; Info.Proc
dd 11			; Info.Id
dd offset sub_445F5B	; Info.Proc
stru_452540 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_452540.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445F70	; Info.Proc
dd -1			; Info.Id
dd offset sub_445F78	; Info.Proc
dd 1			; Info.Id
dd offset sub_445F80	; Info.Proc
stru_452578 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_452578.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445F94	; Info.Proc
stru_4525A0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4525A0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445FA8	; Info.Proc
stru_4525C8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4525C8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445FBC	; Info.Proc
stru_4525F0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4525F0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445FD0	; Info.Proc
stru_452618 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_452618.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445FE4	; Info.Proc
stru_452640 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_452640.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_445FF8	; Info.Proc
stru_452668 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_452668.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44600C	; Info.Proc
stru_452690 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_452690.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446020	; Info.Proc
stru_4526B8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4526B8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446034	; Info.Proc
stru_4526E0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4526E0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446048	; Info.Proc
stru_452708 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_452708.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44605C	; Info.Proc
stru_452730 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_452730.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446070	; Info.Proc
stru_452758 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_452758.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446084	; Info.Proc
stru_452780 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_452780.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446098	; Info.Proc
dd -1			; Info.Id
dd offset sub_4460A0	; Info.Proc
dd -1			; Info.Id
dd offset sub_4460A8	; Info.Proc
stru_4527B8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4527B8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4460BC	; Info.Proc
stru_4527E0 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_4527E0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4460D0	; Info.Proc
dd 0			; Info.Id
dd offset sub_4460D8	; Info.Proc
dd 1			; Info.Id
dd offset sub_4460E0	; Info.Proc
stru_452818 dd 19930520h	    ; Magic
dd 6			; Count
dd offset stru_452818.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4460F4	; Info.Proc
dd 0			; Info.Id
dd offset sub_446120	; Info.Proc
dd 0			; Info.Id
dd offset sub_4460FC	; Info.Proc
dd 0			; Info.Id
dd offset sub_446106	; Info.Proc
dd 0			; Info.Id
dd offset sub_44610E	; Info.Proc
dd 4			; Info.Id
dd offset sub_446116	; Info.Proc
stru_452868 dd 19930520h	    ; Magic
dd 12			; Count
dd offset stru_452868.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446134	; Info.Proc
dd 0			; Info.Id
dd offset sub_44613C	; Info.Proc
dd 0			; Info.Id
dd offset sub_446146	; Info.Proc
dd 0			; Info.Id
dd offset sub_44614E	; Info.Proc
dd 3			; Info.Id
dd offset sub_446156	; Info.Proc
dd 0			; Info.Id
dd offset sub_44615E	; Info.Proc
dd 5			; Info.Id
dd offset sub_446166	; Info.Proc
dd 0			; Info.Id
dd offset sub_44616E	; Info.Proc
dd 0			; Info.Id
dd offset sub_446176	; Info.Proc
dd 8			; Info.Id
dd offset sub_44617E	; Info.Proc
dd 8			; Info.Id
dd offset sub_446186	; Info.Proc
dd 8			; Info.Id
dd offset sub_446190	; Info.Proc
stru_4528E8 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_4528E8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4461A4	; Info.Proc
dd 0			; Info.Id
dd offset sub_4461AC	; Info.Proc
stru_452918 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_452918.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4461C0	; Info.Proc
stru_452940 dd 19930520h	    ; Magic
dd 8			; Count
dd offset stru_452940.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4461D4	; Info.Proc
dd 0			; Info.Id
dd offset sub_4461DC	; Info.Proc
dd -1			; Info.Id
dd offset sub_4461F4	; Info.Proc
dd -1			; Info.Id
dd offset sub_4461FC	; Info.Proc
dd -1			; Info.Id
dd offset sub_446204	; Info.Proc
dd -1			; Info.Id
dd offset sub_44620C	; Info.Proc
dd 1			; Info.Id
dd offset sub_4461E4	; Info.Proc
dd -1			; Info.Id
dd offset sub_4461EC	; Info.Proc
stru_4529A0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4529A0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446220	; Info.Proc
stru_4529C8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4529C8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446234	; Info.Proc
stru_4529F0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4529F0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446248	; Info.Proc
stru_452A18 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_452A18.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44625C	; Info.Proc
dd 0			; Info.Id
dd offset sub_446264	; Info.Proc
stru_452A48 dd 19930520h	    ; Magic
dd 6			; Count
dd offset stru_452A48.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446298	; Info.Proc
dd 0			; Info.Id
dd offset sub_4462A0	; Info.Proc
dd -1			; Info.Id
dd offset sub_446278	; Info.Proc
dd -1			; Info.Id
dd offset sub_446280	; Info.Proc
dd 3			; Info.Id
dd offset sub_446288	; Info.Proc
dd 3			; Info.Id
dd offset sub_446290	; Info.Proc
stru_452A98 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_452A98.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4462B4	; Info.Proc
stru_452AC0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_452AC0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4462C8	; Info.Proc
stru_452AE8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_452AE8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4462DC	; Info.Proc
stru_452B10 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_452B10.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4462F0	; Info.Proc
stru_452B38 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_452B38.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446304	; Info.Proc
dd 0			; Info.Id
dd offset sub_44630C	; Info.Proc
dd 1			; Info.Id
dd offset sub_446314	; Info.Proc
stru_452B70 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_452B70.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446328	; Info.Proc
stru_452B98 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_452B98.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44633C	; Info.Proc
dd 0			; Info.Id
dd offset sub_446344	; Info.Proc
stru_452BC8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_452BC8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446358	; Info.Proc
stru_452BF0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_452BF0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44636C	; Info.Proc
dd 0			; Info.Id
dd offset sub_446376	; Info.Proc
stru_452C20 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_452C20.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446388	; Info.Proc
dd 0			; Info.Id
dd offset sub_446392	; Info.Proc
stru_452C50 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_452C50.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4463A4	; Info.Proc
stru_452C78 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_452C78.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4463B8	; Info.Proc
stru_452CA0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_452CA0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4463CC	; Info.Proc
stru_452CC8 dd 19930520h	    ; Magic ; Microsoft	VisualC	2-11/net runtime
dd 4			; Count
dd offset stru_452CC8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4463E0	; Info.Proc
dd 0			; Info.Id
dd offset sub_4463E8	; Info.Proc
dd 1			; Info.Id
dd offset unknown_libname_28; Info.Proc
dd 2			; Info.Id
dd offset sub_4463F8	; Info.Proc
db    1
db    0
db    0
db    0
db  10h
db 0C2h	; ¬
db  45h	; E
db    0
db    0
db    0
db    0
db    0
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db    0
db    0
db    0
db    0
db    4
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    2
db    0
db    0
db    0
db    8
db  2Dh	; -
db  45h	; E
db    0
db  28h	; (
db  1Dh
db  45h	; E
db    0
db    0
db    0
db    0
db    0
unk_452D38 db	 0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db  28h	; (
db  2Dh	; -
db  45h	; E
db    0
stru_452D48 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_452D48.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44640C	; Info.Proc
dd 0			; Info.Id
dd offset sub_446414	; Info.Proc
dd 1			; Info.Id
dd offset sub_44641C	; Info.Proc
dd 2			; Info.Id
dd offset sub_446424	; Info.Proc
stru_452D88 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_452D88.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446438	; Info.Proc
dd 0			; Info.Id
dd offset sub_446440	; Info.Proc
dd 1			; Info.Id
dd offset sub_446448	; Info.Proc
dd 2			; Info.Id
dd offset sub_446450	; Info.Proc
stru_452DC8 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_452DC8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446464	; Info.Proc
dd 0			; Info.Id
dd offset sub_44646C	; Info.Proc
dd 1			; Info.Id
dd offset sub_446474	; Info.Proc
dd 2			; Info.Id
dd offset sub_44647C	; Info.Proc
stru_452E08 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_452E08.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446490	; Info.Proc
dd 0			; Info.Id
dd offset sub_446498	; Info.Proc
dd 1			; Info.Id
dd offset sub_4464A0	; Info.Proc
dd 2			; Info.Id
dd offset sub_4464A8	; Info.Proc
stru_452E48 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_452E48.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4464BC	; Info.Proc
dd 0			; Info.Id
dd offset sub_4464C4	; Info.Proc
dd 1			; Info.Id
dd offset sub_4464CC	; Info.Proc
dd 2			; Info.Id
dd offset sub_4464D4	; Info.Proc
stru_452E88 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_452E88.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4464E8	; Info.Proc
stru_452EB0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_452EB0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4464FC	; Info.Proc
stru_452ED8 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_452ED8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446510	; Info.Proc
dd 0			; Info.Id
dd offset sub_446518	; Info.Proc
dd 1			; Info.Id
dd offset sub_446520	; Info.Proc
stru_452F10 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_452F10.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446534	; Info.Proc
stru_452F38 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_452F38.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446548	; Info.Proc
dd 0			; Info.Id
dd offset sub_446550	; Info.Proc
dd 1			; Info.Id
dd offset sub_446558	; Info.Proc
stru_452F70 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_452F70.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44656C	; Info.Proc
stru_452F98 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_452F98.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446580	; Info.Proc
stru_452FC0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_452FC0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446594	; Info.Proc
dd 0			; Info.Id
dd offset sub_44659C	; Info.Proc
stru_452FF0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_452FF0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4465B0	; Info.Proc
dd 0			; Info.Id
dd offset sub_4465B8	; Info.Proc
stru_453020 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_453020.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4465CC	; Info.Proc
dd 0			; Info.Id
dd offset sub_4465D4	; Info.Proc
dd 1			; Info.Id
dd offset sub_4465DC	; Info.Proc
stru_453058 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_453058.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4465F0	; Info.Proc
dd -1			; Info.Id
dd offset sub_4465F8	; Info.Proc
stru_453088 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_453088.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44660C	; Info.Proc
dd -1			; Info.Id
dd offset sub_446614	; Info.Proc
stru_4530B8 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_4530B8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446628	; Info.Proc
dd 0			; Info.Id
dd offset sub_446630	; Info.Proc
stru_4530E8 dd 19930520h	    ; Magic
dd 13			; Count
dd offset stru_4530E8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446644	; Info.Proc
dd 0			; Info.Id
dd offset sub_44664C	; Info.Proc
dd 1			; Info.Id
dd offset sub_446654	; Info.Proc
dd 2			; Info.Id
dd offset sub_44665C	; Info.Proc
dd -1			; Info.Id
dd offset sub_44665C	; Info.Proc
dd 4			; Info.Id
dd offset sub_446654	; Info.Proc
dd 5			; Info.Id
dd offset sub_44664C	; Info.Proc
dd 4			; Info.Id
dd offset sub_446664	; Info.Proc
dd 4			; Info.Id
dd offset sub_44666C	; Info.Proc
dd 8			; Info.Id
dd offset sub_446674	; Info.Proc
dd 9			; Info.Id
dd offset sub_44667C	; Info.Proc
dd 10			; Info.Id
dd offset sub_446684	; Info.Proc
dd 4			; Info.Id
dd offset sub_44668C	; Info.Proc
stru_453170 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_453170.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4466A0	; Info.Proc
stru_453198 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_453198.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4466B4	; Info.Proc
stru_4531C0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_4531C0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4466C8	; Info.Proc
dd 0			; Info.Id
dd offset sub_4466D0	; Info.Proc
stru_4531F0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4531F0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4466E4	; Info.Proc
stru_453218 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_453218.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4466F8	; Info.Proc
dd 0			; Info.Id
dd offset sub_446700	; Info.Proc
dd 1			; Info.Id
dd offset sub_446708	; Info.Proc
dd 2			; Info.Id
dd offset sub_446710	; Info.Proc
dd 3			; Info.Id
dd offset sub_446718	; Info.Proc
stru_453260 dd 19930520h	    ; Magic
dd 13			; Count
dd offset stru_453260.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44672C	; Info.Proc
dd 0			; Info.Id
dd offset sub_446734	; Info.Proc
dd 1			; Info.Id
dd offset sub_44673C	; Info.Proc
dd 0			; Info.Id
dd offset sub_446744	; Info.Proc
dd 3			; Info.Id
dd offset sub_44674C	; Info.Proc
dd 4			; Info.Id
dd offset sub_446754	; Info.Proc
dd 4			; Info.Id
dd offset sub_44675C	; Info.Proc
dd 4			; Info.Id
dd offset sub_446764	; Info.Proc
dd 7			; Info.Id
dd offset sub_44676C	; Info.Proc
dd 4			; Info.Id
dd offset sub_44676C	; Info.Proc
dd 9			; Info.Id
dd offset sub_446774	; Info.Proc
dd 10			; Info.Id
dd offset sub_44677C	; Info.Proc
dd 10			; Info.Id
dd offset sub_446784	; Info.Proc
stru_4532E8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4532E8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446798	; Info.Proc
stru_453310 dd 19930520h	    ; Magic
dd 15			; Count
dd offset stru_453310.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4467AC	; Info.Proc
dd 0			; Info.Id
dd offset sub_4467B4	; Info.Proc
dd 1			; Info.Id
dd offset sub_4467BF	; Info.Proc
dd 2			; Info.Id
dd offset sub_4467CA	; Info.Proc
dd 3			; Info.Id
dd offset sub_4467D5	; Info.Proc
dd 4			; Info.Id
dd offset sub_4467E0	; Info.Proc
dd 5			; Info.Id
dd offset sub_4467EB	; Info.Proc
dd 6			; Info.Id
dd offset sub_4467F6	; Info.Proc
dd 7			; Info.Id
dd offset sub_446801	; Info.Proc
dd 8			; Info.Id
dd offset sub_44680C	; Info.Proc
dd 9			; Info.Id
dd offset sub_446817	; Info.Proc
dd 10			; Info.Id
dd offset sub_446825	; Info.Proc
dd 11			; Info.Id
dd offset sub_446833	; Info.Proc
dd 12			; Info.Id
dd offset sub_446841	; Info.Proc
dd 13			; Info.Id
dd offset sub_44684F	; Info.Proc
stru_4533A8 dd 19930520h	    ; Magic
dd 6			; Count
dd offset stru_4533A8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446868	; Info.Proc
dd 0			; Info.Id
dd offset sub_446873	; Info.Proc
dd 1			; Info.Id
dd offset sub_44687E	; Info.Proc
dd 2			; Info.Id
dd offset sub_446889	; Info.Proc
dd 3			; Info.Id
dd offset sub_446894	; Info.Proc
dd 4			; Info.Id
dd offset sub_44689F	; Info.Proc
stru_4533F8 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_4533F8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4468B4	; Info.Proc
dd 0			; Info.Id
dd offset sub_4468BF	; Info.Proc
dd 1			; Info.Id
dd offset sub_4468CA	; Info.Proc
stru_453430 dd 19930520h	    ; Magic
dd 15			; Count
dd offset stru_453430.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4468DC	; Info.Proc
dd 0			; Info.Id
dd offset sub_4468E4	; Info.Proc
dd 1			; Info.Id
dd offset sub_4468EF	; Info.Proc
dd 2			; Info.Id
dd offset sub_4468FA	; Info.Proc
dd 3			; Info.Id
dd offset sub_446905	; Info.Proc
dd 4			; Info.Id
dd offset sub_446910	; Info.Proc
dd 5			; Info.Id
dd offset sub_44691B	; Info.Proc
dd 6			; Info.Id
dd offset sub_446926	; Info.Proc
dd 7			; Info.Id
dd offset sub_446931	; Info.Proc
dd 8			; Info.Id
dd offset sub_44693C	; Info.Proc
dd 9			; Info.Id
dd offset sub_446947	; Info.Proc
dd 10			; Info.Id
dd offset sub_446955	; Info.Proc
dd 11			; Info.Id
dd offset sub_446963	; Info.Proc
dd 12			; Info.Id
dd offset sub_446971	; Info.Proc
dd 13			; Info.Id
dd offset sub_44697F	; Info.Proc
stru_4534C8 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_4534C8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446998	; Info.Proc
dd 0			; Info.Id
dd offset sub_4469A0	; Info.Proc
stru_4534F8 dd 19930520h	    ; Magic
dd 6			; Count
dd offset stru_4534F8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4469B4	; Info.Proc
dd 0			; Info.Id
dd offset sub_4469BC	; Info.Proc
dd -1			; Info.Id
dd offset sub_4469C4	; Info.Proc
dd -1			; Info.Id
dd offset sub_4469CC	; Info.Proc
dd -1			; Info.Id
dd offset sub_4469D4	; Info.Proc
dd -1			; Info.Id
dd offset sub_4469DC	; Info.Proc
stru_453548 dd 19930520h	    ; Magic
dd 9			; Count
dd offset stru_453548.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4469F0	; Info.Proc
dd -1			; Info.Id
dd offset sub_4469F8	; Info.Proc
dd 1			; Info.Id
dd offset sub_446A00	; Info.Proc
dd 2			; Info.Id
dd offset sub_446A08	; Info.Proc
dd 3			; Info.Id
dd offset sub_446A10	; Info.Proc
dd 3			; Info.Id
dd offset sub_446A18	; Info.Proc
dd 3			; Info.Id
dd offset sub_446A20	; Info.Proc
dd 6			; Info.Id
dd offset sub_446A28	; Info.Proc
dd 3			; Info.Id
dd offset sub_446A28	; Info.Proc
stru_4535B0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4535B0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446A3C	; Info.Proc
stru_4535D8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4535D8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446A50	; Info.Proc
stru_453600 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_453600.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446A64	; Info.Proc
dd 0			; Info.Id
dd offset sub_446A6C	; Info.Proc
dd 1			; Info.Id
dd offset sub_446A74	; Info.Proc
dd 2			; Info.Id
dd offset sub_446A7C	; Info.Proc
dd 3			; Info.Id
dd offset sub_446A84	; Info.Proc
stru_453648 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_453648.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_453680	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd 0			; Info.Id
dd offset sub_446A98	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_453680 dd 0, 1, 2		    ; _unk
dd 1			; Count
dd offset stru_453698	; RttiBlkPtr
dd 0
stru_453698 _msRttiDscr	<0, 0, 0, offset loc_4246D0>
stru_4536A8 dd 19930520h	    ; Magic
dd 6			; Count
dd offset stru_4536A8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446AAC	; Info.Proc
dd -1			; Info.Id
dd offset sub_446AB4	; Info.Proc
dd 1			; Info.Id
dd offset sub_446ABC	; Info.Proc
dd 2			; Info.Id
dd offset sub_446AC4	; Info.Proc
dd 3			; Info.Id
dd offset sub_446ACC	; Info.Proc
dd 4			; Info.Id
dd offset sub_446AD4	; Info.Proc
stru_4536F8 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_4536F8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446AE8	; Info.Proc
dd 0			; Info.Id
dd offset sub_446AF0	; Info.Proc
dd 1			; Info.Id
dd offset sub_446AF8	; Info.Proc
dd 2			; Info.Id
dd offset sub_446B00	; Info.Proc
stru_453738 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_453738.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446B14	; Info.Proc
dd 0			; Info.Id
dd offset sub_446B1C	; Info.Proc
stru_453768 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_453768.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446B30	; Info.Proc
dd 0			; Info.Id
dd offset sub_446B38	; Info.Proc
dd -1			; Info.Id
dd offset sub_446B40	; Info.Proc
stru_4537A0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4537A0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446B54	; Info.Proc
stru_4537C8 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_4537C8.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_4537F8	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_4537F8 dd 0, 0, 1		    ; _unk
dd 1			; Count
dd offset stru_453810	; RttiBlkPtr
dd 0
stru_453810 _msRttiDscr	<0, 0, 0, offset sub_425078>
stru_453820 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_453820.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446B74	; Info.Proc
dd 0			; Info.Id
dd offset sub_446B7C	; Info.Proc
unk_453850 db  20h
db    5
db  93h	; ì
db  19h
db    7
db    0
db    0
db    0
db  70h	; p
db  38h	; 8
db  45h	; E
db    0
db    1
db    0
db    0
db    0
db 0A8h	; ®
db  38h	; 8
db  45h	; E
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db  90h	; ê
db  6Bh	; k
db  44h	; D
db    0
db    0
db    0
db    0
db    0
db  98h	; ò
db  6Bh	; k
db  44h	; D
db    0
db    1
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    1
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    3
db    0
db    0
db    0
db 0A0h	; †
db  6Bh	; k
db  44h	; D
db    0
db    4
db    0
db    0
db    0
db 0A8h	; ®
db  6Bh	; k
db  44h	; D
db    0
db    1
db    0
db    0
db    0
db 0B0h	; ∞
db  6Bh	; k
db  44h	; D
db    0
db    2
db    0
db    0
db    0
db    2
db    0
db    0
db    0
db    5
db    0
db    0
db    0
db    4
db    0
db    0
db    0
db 0C0h	; ¿
db  38h	; 8
db  45h	; E
db    0
db    0
db    0
db    0
db    0
db    1
db    0
db    0
db    0
db 0A8h	; ®
db 0BBh	; ª
db  45h	; E
db    0
db 0E4h	; ‰
db 0FFh
db 0FFh
db 0FFh
db  7Dh	; }
db  51h	; Q
db  42h	; B
db    0
db    9
db    0
db    0
db    0
db  90h	; ê
db 0C4h	; ƒ
db  45h	; E
db    0
db 0E0h	; ‡
db 0FFh
db 0FFh
db 0FFh
db  8Eh	; é
db  51h	; Q
db  42h	; B
db    0
db    1
db    0
db    0
db    0
db  10h
db 0C2h	; ¬
db  45h	; E
db    0
db 0DCh	; ‹
db 0FFh
db 0FFh
db 0FFh
db  9Fh	; ü
db  51h	; Q
db  42h	; B
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db 0DEh	; ﬁ
db  51h	; Q
db  42h	; B
db    0
stru_453900 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_453900.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446BC4	; Info.Proc
stru_453928 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_453928.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446BD8	; Info.Proc
stru_453950 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_453950.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446BEC	; Info.Proc
stru_453978 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_453978.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446C00	; Info.Proc
stru_4539A0 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_4539A0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446C14	; Info.Proc
dd 0			; Info.Id
dd offset sub_446C1C	; Info.Proc
dd 1			; Info.Id
dd offset sub_446C24	; Info.Proc
stru_4539D8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4539D8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446C38	; Info.Proc
stru_453A00 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_453A00.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446C4C	; Info.Proc
dd -1			; Info.Id
dd offset sub_446C54	; Info.Proc
dd 1			; Info.Id
dd offset sub_446C5C	; Info.Proc
dd 2			; Info.Id
dd offset sub_446C64	; Info.Proc
stru_453A40 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_453A40.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446C78	; Info.Proc
stru_453A68 dd 19930520h	    ; Magic
dd 9			; Count
dd offset stru_453A68.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446C8C	; Info.Proc
dd 0			; Info.Id
dd offset sub_446C94	; Info.Proc
dd 1			; Info.Id
dd offset sub_446C9C	; Info.Proc
dd 0			; Info.Id
dd offset sub_446C9C	; Info.Proc
dd 3			; Info.Id
dd offset sub_446CA4	; Info.Proc
dd 4			; Info.Id
dd offset sub_446CAC	; Info.Proc
dd 5			; Info.Id
dd offset sub_446CB4	; Info.Proc
dd 5			; Info.Id
dd offset sub_446CBC	; Info.Proc
dd 0			; Info.Id
dd offset sub_446CC4	; Info.Proc
stru_453AD0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_453AD0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446CD8	; Info.Proc
dd 0			; Info.Id
dd offset sub_446CE0	; Info.Proc
stru_453B00 dd 19930520h	    ; Magic
dd 10			; Count
dd offset stru_453B00.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446D14	; Info.Proc
dd 0			; Info.Id
dd offset sub_446CF4	; Info.Proc
dd 1			; Info.Id
dd offset sub_446CFC	; Info.Proc
dd 2			; Info.Id
dd offset sub_446D04	; Info.Proc
dd 3			; Info.Id
dd offset sub_446D0C	; Info.Proc
dd 4			; Info.Id
dd offset sub_446D2B	; Info.Proc
dd 5			; Info.Id
dd offset sub_446D33	; Info.Proc
dd 6			; Info.Id
dd offset sub_446D3B	; Info.Proc
dd 5			; Info.Id
dd offset sub_446D4B	; Info.Proc
dd 5			; Info.Id
dd offset sub_446D43	; Info.Proc
stru_453B70 dd 19930520h	    ; Magic
dd 6			; Count
dd offset stru_453B70.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446D60	; Info.Proc
dd 0			; Info.Id
dd offset sub_446D68	; Info.Proc
dd 1			; Info.Id
dd offset sub_446D73	; Info.Proc
dd 1			; Info.Id
dd offset sub_446D7E	; Info.Proc
dd 3			; Info.Id
dd offset sub_446D86	; Info.Proc
dd -1			; Info.Id
dd offset sub_446D8E	; Info.Proc
stru_453BC0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_453BC0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446DA0	; Info.Proc
stru_453BE8 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_453BE8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446DB4	; Info.Proc
dd 0			; Info.Id
dd offset sub_446DBC	; Info.Proc
dd 1			; Info.Id
dd offset sub_446DC7	; Info.Proc
stru_453C20 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_453C20.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446DDC	; Info.Proc
stru_453C48 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_453C48.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446DF0	; Info.Proc
dd -1			; Info.Id
dd offset sub_446DFA	; Info.Proc
dd 1			; Info.Id
dd offset sub_446E02	; Info.Proc
stru_453C80 dd 19930520h	    ; Magic
dd 6			; Count
dd offset stru_453C80.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_453CD0	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd 0			; Info.Id
dd offset sub_446E14	; Info.Proc
dd 1			; Info.Id
dd offset sub_446E1C	; Info.Proc
dd 2			; Info.Id
dd offset sub_446E24	; Info.Proc
dd 3			; Info.Id
dd offset sub_446E2C	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_453CD0 dd 0, 4, 5		    ; _unk
dd 1			; Count
dd offset stru_453CE8	; RttiBlkPtr
dd 0
stru_453CE8 _msRttiDscr	<0, 0, 0, offset loc_426AF8>
stru_453CF8 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_453CF8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446E40	; Info.Proc
dd -1			; Info.Id
dd offset sub_446E48	; Info.Proc
dd -1			; Info.Id
dd offset sub_446E50	; Info.Proc
stru_453D30 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_453D30.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446E64	; Info.Proc
dd 0			; Info.Id
dd offset sub_446E6C	; Info.Proc
stru_453D60 dd 19930520h	    ; Magic
dd 7			; Count
dd offset stru_453D60.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446E80	; Info.Proc
dd 0			; Info.Id
dd offset sub_446E88	; Info.Proc
dd 1			; Info.Id
dd offset sub_446E90	; Info.Proc
dd 2			; Info.Id
dd offset sub_446E98	; Info.Proc
dd 3			; Info.Id
dd offset sub_446EA0	; Info.Proc
dd 2			; Info.Id
dd offset sub_446EA8	; Info.Proc
dd 5			; Info.Id
dd offset sub_446EB0	; Info.Proc
stru_453DB8 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_453DB8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446EC4	; Info.Proc
dd 0			; Info.Id
dd offset sub_446ECC	; Info.Proc
dd 1			; Info.Id
dd offset sub_446ED4	; Info.Proc
stru_453DF0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_453DF0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446EE8	; Info.Proc
stru_453E18 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_453E18.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446EFC	; Info.Proc
dd 0			; Info.Id
dd offset sub_446F04	; Info.Proc
dd 1			; Info.Id
dd offset sub_446F0F	; Info.Proc
stru_453E50 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_453E50.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446F24	; Info.Proc
dd 0			; Info.Id
dd offset sub_446F2C	; Info.Proc
dd 0			; Info.Id
dd offset sub_446F34	; Info.Proc
dd 2			; Info.Id
dd offset sub_446F3F	; Info.Proc
dd 3			; Info.Id
dd offset sub_446F47	; Info.Proc
stru_453E98 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_453E98.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446F5C	; Info.Proc
stru_453EC0 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_453EC0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446F70	; Info.Proc
dd 0			; Info.Id
dd offset sub_446F78	; Info.Proc
dd 1			; Info.Id
dd offset sub_446F80	; Info.Proc
stru_453EF8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_453EF8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446F94	; Info.Proc
stru_453F20 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_453F20.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446FA8	; Info.Proc
stru_453F48 dd 19930520h	    ; Magic
dd 6			; Count
dd offset stru_453F48.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446FD6	; Info.Proc
dd -1			; Info.Id
dd offset sub_446FE0	; Info.Proc
dd 1			; Info.Id
dd offset sub_446FE8	; Info.Proc
dd -1			; Info.Id
dd offset sub_446FBC	; Info.Proc
dd -1			; Info.Id
dd offset sub_446FC6	; Info.Proc
dd 4			; Info.Id
dd offset sub_446FCE	; Info.Proc
stru_453F98 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_453F98.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_446FFC	; Info.Proc
dd 0			; Info.Id
dd offset sub_447004	; Info.Proc
dd 0			; Info.Id
dd offset sub_44700E	; Info.Proc
dd 2			; Info.Id
dd offset sub_447016	; Info.Proc
stru_453FD8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_453FD8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447028	; Info.Proc
stru_454000 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_454000.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44703C	; Info.Proc
dd 0			; Info.Id
dd offset sub_447046	; Info.Proc
stru_454030 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_454030.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447058	; Info.Proc
dd 0			; Info.Id
dd offset sub_447063	; Info.Proc
dd 1			; Info.Id
dd offset sub_44706E	; Info.Proc
stru_454068 dd 19930520h	    ; Magic
dd 12			; Count
dd offset stru_454068.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447084	; Info.Proc
dd 0			; Info.Id
dd offset sub_44708C	; Info.Proc
dd 1			; Info.Id
dd offset sub_447094	; Info.Proc
dd 2			; Info.Id
dd offset sub_44709C	; Info.Proc
dd 2			; Info.Id
dd offset sub_4470A4	; Info.Proc
dd 4			; Info.Id
dd offset sub_4470AC	; Info.Proc
dd 2			; Info.Id
dd offset sub_4470B4	; Info.Proc
dd 4			; Info.Id
dd offset sub_4470BC	; Info.Proc
dd 4			; Info.Id
dd offset sub_4470C7	; Info.Proc
dd 8			; Info.Id
dd offset sub_4470D2	; Info.Proc
dd 2			; Info.Id
dd offset sub_4470E2	; Info.Proc
dd 2			; Info.Id
dd offset sub_4470DA	; Info.Proc
stru_4540E8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4540E8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4470F4	; Info.Proc
stru_454110 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_454110.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447108	; Info.Proc
dd 0			; Info.Id
dd offset sub_447110	; Info.Proc
dd -1			; Info.Id
dd offset sub_447110	; Info.Proc
stru_454148 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_454148.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447124	; Info.Proc
dd 0			; Info.Id
dd offset sub_44712C	; Info.Proc
dd -1			; Info.Id
dd offset sub_44712C	; Info.Proc
db    0
db    0
db    0
db    0
db  70h	; p
db 0C6h	; ∆
db  45h	; E
db    0
db    0
db    0
db    0
db    0
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db    0
db    0
db    0
db    0
db    1
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    1
db    0
db    0
db    0
db  80h	; Ä
db  41h	; A
db  45h	; E
db    0
unk_4541A8 db	 0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db 0A0h	; †
db  41h	; A
db  45h	; E
db    0
stru_4541B8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4541B8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447140	; Info.Proc
stru_4541E0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4541E0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447154	; Info.Proc
stru_454208 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_454208.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447168	; Info.Proc
dd -1			; Info.Id
dd offset sub_447170	; Info.Proc
dd 1			; Info.Id
dd offset sub_447178	; Info.Proc
dd 2			; Info.Id
dd offset sub_447180	; Info.Proc
stru_454248 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_454248.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447194	; Info.Proc
stru_454270 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_454270.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4471A8	; Info.Proc
dd 0			; Info.Id
dd offset sub_4471B2	; Info.Proc
stru_4542A0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4542A0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4471C4	; Info.Proc
stru_4542C8 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_4542C8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4471D8	; Info.Proc
dd -1			; Info.Id
dd offset sub_4471E0	; Info.Proc
dd -1			; Info.Id
dd offset sub_4471E8	; Info.Proc
stru_454300 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_454300.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4471FC	; Info.Proc
dd -1			; Info.Id
dd offset sub_447204	; Info.Proc
stru_454330 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_454330.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447218	; Info.Proc
stru_454358 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_454358.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44722C	; Info.Proc
dd 0			; Info.Id
dd offset sub_447234	; Info.Proc
dd 1			; Info.Id
dd offset sub_44723C	; Info.Proc
dd 1			; Info.Id
dd offset sub_447244	; Info.Proc
stru_454398 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_454398.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447258	; Info.Proc
dd 0			; Info.Id
dd offset sub_447260	; Info.Proc
stru_4543C8 dd 19930520h	    ; Magic
dd 11			; Count
dd offset stru_4543C8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447274	; Info.Proc
dd -1			; Info.Id
dd offset sub_44727C	; Info.Proc
dd -1			; Info.Id
dd offset sub_447287	; Info.Proc
dd 2			; Info.Id
dd offset sub_447292	; Info.Proc
dd 3			; Info.Id
dd offset sub_44729A	; Info.Proc
dd 2			; Info.Id
dd offset sub_4472A2	; Info.Proc
dd 5			; Info.Id
dd offset sub_4472AA	; Info.Proc
dd 6			; Info.Id
dd offset sub_4472B2	; Info.Proc
dd 5			; Info.Id
dd offset sub_4472BA	; Info.Proc
dd 8			; Info.Id
dd offset sub_4472C2	; Info.Proc
dd -1			; Info.Id
dd offset sub_4472CA	; Info.Proc
stru_454440 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_454440.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4472E0	; Info.Proc
stru_454468 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_454468.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4472F4	; Info.Proc
stru_454490 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_454490.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447308	; Info.Proc
dd 0			; Info.Id
dd offset sub_447310	; Info.Proc
stru_4544C0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_4544C0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447324	; Info.Proc
dd 0			; Info.Id
dd offset sub_44732C	; Info.Proc
stru_4544F0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_4544F0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447340	; Info.Proc
dd 0			; Info.Id
dd offset sub_447348	; Info.Proc
stru_454520 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_454520.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44735C	; Info.Proc
stru_454548 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_454548.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447370	; Info.Proc
stru_454570 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_454570.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447384	; Info.Proc
stru_454598 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_454598.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447398	; Info.Proc
stru_4545C0 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_4545C0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4473AC	; Info.Proc
dd -1			; Info.Id
dd offset sub_4473B4	; Info.Proc
dd 1			; Info.Id
dd offset sub_4473BC	; Info.Proc
stru_4545F8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4545F8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4473D0	; Info.Proc
stru_454620 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_454620.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4473E4	; Info.Proc
dd 0			; Info.Id
dd offset sub_4473EC	; Info.Proc
dd 1			; Info.Id
dd offset sub_4473FC	; Info.Proc
dd 1			; Info.Id
dd offset sub_4473F4	; Info.Proc
dd 1			; Info.Id
dd offset sub_447404	; Info.Proc
stru_454668 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_454668.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447418	; Info.Proc
stru_454690 dd 19930520h	    ; Magic
dd 10			; Count
dd offset stru_454690.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44742C	; Info.Proc
dd 0			; Info.Id
dd offset sub_447437	; Info.Proc
dd 1			; Info.Id
dd offset sub_44743F	; Info.Proc
dd 0			; Info.Id
dd offset sub_44743F	; Info.Proc
dd 3			; Info.Id
dd offset sub_447447	; Info.Proc
dd 4			; Info.Id
dd offset sub_44744F	; Info.Proc
dd 5			; Info.Id
dd offset sub_447457	; Info.Proc
dd 5			; Info.Id
dd offset sub_44745F	; Info.Proc
dd 3			; Info.Id
dd offset sub_44745F	; Info.Proc
dd 8			; Info.Id
dd offset sub_44744F	; Info.Proc
stru_454700 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_454700.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447474	; Info.Proc
dd 0			; Info.Id
dd offset sub_44747C	; Info.Proc
dd 0			; Info.Id
dd offset sub_447484	; Info.Proc
stru_454738 dd 19930520h	    ; Magic
dd 9			; Count
dd offset stru_454738.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447498	; Info.Proc
dd 0			; Info.Id
dd offset sub_4474A0	; Info.Proc
dd 0			; Info.Id
dd offset sub_4474A8	; Info.Proc
dd 2			; Info.Id
dd offset sub_4474B0	; Info.Proc
dd 0			; Info.Id
dd offset sub_4474B0	; Info.Proc
dd 4			; Info.Id
dd offset sub_4474B8	; Info.Proc
dd 5			; Info.Id
dd offset sub_4474C0	; Info.Proc
dd 4			; Info.Id
dd offset sub_4474C0	; Info.Proc
dd 7			; Info.Id
dd offset sub_4474C8	; Info.Proc
stru_4547A0 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_4547A0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4474DC	; Info.Proc
dd 0			; Info.Id
dd offset sub_4474E4	; Info.Proc
dd 1			; Info.Id
dd offset sub_4474EC	; Info.Proc
stru_4547D8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4547D8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447500	; Info.Proc
stru_454800 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_454800.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447514	; Info.Proc
stru_454828 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_454828.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447528	; Info.Proc
dd 0			; Info.Id
dd offset sub_447530	; Info.Proc
stru_454858 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_454858.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447544	; Info.Proc
dd 0			; Info.Id
dd offset sub_44754C	; Info.Proc
dd 1			; Info.Id
dd offset sub_447563	; Info.Proc
dd 0			; Info.Id
dd offset sub_44757A	; Info.Proc
stru_454898 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_454898.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44758C	; Info.Proc
stru_4548C0 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_4548C0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4475A0	; Info.Proc
dd -1			; Info.Id
dd offset sub_4475B0	; Info.Proc
dd -1			; Info.Id
dd offset sub_4475B8	; Info.Proc
dd -1			; Info.Id
dd offset sub_4475A8	; Info.Proc
stru_454900 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_454900.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4475CC	; Info.Proc
stru_454928 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_454928.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4475E4	; Info.Proc
dd -1			; Info.Id
dd offset sub_4475EC	; Info.Proc
stru_454958 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_454958.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447600	; Info.Proc
dd 0			; Info.Id
dd offset sub_447608	; Info.Proc
stru_454988 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_454988.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44761C	; Info.Proc
dd -1			; Info.Id
dd offset sub_447624	; Info.Proc
stru_4549B8 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_4549B8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447638	; Info.Proc
dd -1			; Info.Id
dd offset sub_447640	; Info.Proc
stru_4549E8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4549E8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447654	; Info.Proc
stru_454A10 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_454A10.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447668	; Info.Proc
stru_454A38 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_454A38.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44767C	; Info.Proc
stru_454A60 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_454A60.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447690	; Info.Proc
stru_454A88 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_454A88.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4476A4	; Info.Proc
stru_454AB0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_454AB0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4476B8	; Info.Proc
dd -1			; Info.Id
dd offset sub_4476C0	; Info.Proc
stru_454AE0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_454AE0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4476D4	; Info.Proc
dd 0			; Info.Id
dd offset sub_4476DC	; Info.Proc
stru_454B10 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_454B10.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4476F0	; Info.Proc
dd 0			; Info.Id
dd offset sub_4476F8	; Info.Proc
dd -1			; Info.Id
dd offset sub_447700	; Info.Proc
dd 2			; Info.Id
dd offset sub_447708	; Info.Proc
dd -1			; Info.Id
dd offset sub_447710	; Info.Proc
stru_454B58 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_454B58.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447724	; Info.Proc
dd 0			; Info.Id
dd offset sub_44772C	; Info.Proc
dd 1			; Info.Id
dd offset sub_447734	; Info.Proc
dd 2			; Info.Id
dd offset sub_44773C	; Info.Proc
stru_454B98 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_454B98.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447750	; Info.Proc
dd 0			; Info.Id
dd offset sub_447758	; Info.Proc
dd -1			; Info.Id
dd offset sub_447760	; Info.Proc
stru_454BD0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_454BD0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447774	; Info.Proc
dd -1			; Info.Id
dd offset sub_44777C	; Info.Proc
stru_454C00 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_454C00.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447790	; Info.Proc
dd 0			; Info.Id
dd offset sub_447798	; Info.Proc
stru_454C30 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_454C30.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4477AC	; Info.Proc
dd 0			; Info.Id
dd offset sub_4477B4	; Info.Proc
stru_454C60 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_454C60.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4477C8	; Info.Proc
dd 0			; Info.Id
dd offset sub_4477D0	; Info.Proc
stru_454C90 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_454C90.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4477E4	; Info.Proc
stru_454CB8 dd 19930520h	    ; Magic
dd 10			; Count
dd offset stru_454CB8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4477F8	; Info.Proc
dd 0			; Info.Id
dd offset sub_447800	; Info.Proc
dd 1			; Info.Id
dd offset sub_447808	; Info.Proc
dd 2			; Info.Id
dd offset sub_447813	; Info.Proc
dd -1			; Info.Id
dd offset sub_447813	; Info.Proc
dd 4			; Info.Id
dd offset sub_447808	; Info.Proc
dd 5			; Info.Id
dd offset sub_447800	; Info.Proc
dd 4			; Info.Id
dd offset sub_44781B	; Info.Proc
dd 7			; Info.Id
dd offset sub_447823	; Info.Proc
dd 8			; Info.Id
dd offset sub_44782B	; Info.Proc
stru_454D28 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_454D28.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447840	; Info.Proc
dd 0			; Info.Id
dd offset sub_447848	; Info.Proc
dd 1			; Info.Id
dd offset sub_447850	; Info.Proc
stru_454D60 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_454D60.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447864	; Info.Proc
unk_454D88 db	 1
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db  28h	; (
db  2Dh	; -
db  45h	; E
db    0
stru_454D98 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_454D98.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447878	; Info.Proc
stru_454DC0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_454DC0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44788C	; Info.Proc
stru_454DE8 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_454DE8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4478A0	; Info.Proc
dd 0			; Info.Id
dd offset sub_4478B7	; Info.Proc
dd 1			; Info.Id
dd offset sub_4478CE	; Info.Proc
stru_454E20 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_454E20.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4478F0	; Info.Proc
dd 0			; Info.Id
dd offset sub_4478F8	; Info.Proc
dd 1			; Info.Id
dd offset sub_44790F	; Info.Proc
dd 0			; Info.Id
dd offset sub_447926	; Info.Proc
stru_454E60 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_454E60.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447938	; Info.Proc
stru_454E88 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_454E88.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44794C	; Info.Proc
dd 0			; Info.Id
dd offset sub_447954	; Info.Proc
stru_454EB8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_454EB8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447968	; Info.Proc
stru_454EE0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_454EE0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44797C	; Info.Proc
dd -1			; Info.Id
dd offset sub_447984	; Info.Proc
stru_454F10 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_454F10.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447998	; Info.Proc
stru_454F38 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_454F38.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4479AC	; Info.Proc
dd 0			; Info.Id
dd offset sub_4479B4	; Info.Proc
dd 1			; Info.Id
dd offset sub_4479BC	; Info.Proc
stru_454F70 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_454F70.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4479D0	; Info.Proc
stru_454F98 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_454F98.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4479E4	; Info.Proc
dd 0			; Info.Id
dd offset sub_4479EC	; Info.Proc
stru_454FC8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_454FC8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447A00	; Info.Proc
stru_454FF0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_454FF0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447A14	; Info.Proc
dd 0			; Info.Id
dd offset sub_447A1C	; Info.Proc
stru_455020 dd 19930520h	    ; Magic
dd 6			; Count
dd offset stru_455020.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447A30	; Info.Proc
dd 0			; Info.Id
dd offset sub_447A38	; Info.Proc
dd 1			; Info.Id
dd offset sub_447A40	; Info.Proc
dd 2			; Info.Id
dd offset sub_447A48	; Info.Proc
dd 3			; Info.Id
dd offset sub_447A50	; Info.Proc
dd 0			; Info.Id
dd offset sub_447A58	; Info.Proc
stru_455070 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_455070.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447A6C	; Info.Proc
stru_455098 dd 19930520h	    ; Magic
dd 6			; Count
dd offset stru_455098.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447A80	; Info.Proc
dd 0			; Info.Id
dd offset sub_447A88	; Info.Proc
dd 1			; Info.Id
dd offset sub_447A90	; Info.Proc
dd 2			; Info.Id
dd offset sub_447A98	; Info.Proc
dd 1			; Info.Id
dd offset sub_447AA0	; Info.Proc
dd 4			; Info.Id
dd offset sub_447AA8	; Info.Proc
stru_4550E8 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_4550E8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447ABC	; Info.Proc
dd 0			; Info.Id
dd offset sub_447AC4	; Info.Proc
dd 1			; Info.Id
dd offset sub_447ACC	; Info.Proc
stru_455120 dd 19930520h	    ; Magic
dd 6			; Count
dd offset stru_455120.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447AE0	; Info.Proc
dd 0			; Info.Id
dd offset sub_447AE8	; Info.Proc
dd 1			; Info.Id
dd offset sub_447AF0	; Info.Proc
dd 0			; Info.Id
dd offset sub_447AF8	; Info.Proc
dd 3			; Info.Id
dd offset sub_447B00	; Info.Proc
dd 4			; Info.Id
dd offset sub_447B08	; Info.Proc
stru_455170 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_455170.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447B1C	; Info.Proc
stru_455198 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_455198.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447B30	; Info.Proc
dd 0			; Info.Id
dd offset sub_447B38	; Info.Proc
stru_4551C8 dd 19930520h	    ; Magic
dd 6			; Count
dd offset stru_4551C8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447B4C	; Info.Proc
dd 0			; Info.Id
dd offset sub_447B54	; Info.Proc
dd 1			; Info.Id
dd offset sub_447B5C	; Info.Proc
dd 2			; Info.Id
dd offset sub_447B64	; Info.Proc
dd 1			; Info.Id
dd offset sub_447B6C	; Info.Proc
dd 1			; Info.Id
dd offset sub_447B74	; Info.Proc
stru_455218 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_455218.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447B88	; Info.Proc
dd 0			; Info.Id
dd offset sub_447B90	; Info.Proc
stru_455248 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_455248.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447BA4	; Info.Proc
stru_455270 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_455270.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447BB8	; Info.Proc
dd -1			; Info.Id
dd offset sub_447BC0	; Info.Proc
dd -1			; Info.Id
dd offset sub_447BC8	; Info.Proc
dd -1			; Info.Id
dd offset sub_447BD0	; Info.Proc
stru_4552B0 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_4552B0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447BE4	; Info.Proc
dd 0			; Info.Id
dd offset sub_447BEF	; Info.Proc
dd 1			; Info.Id
dd offset sub_447BFA	; Info.Proc
stru_4552E8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4552E8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447C10	; Info.Proc
stru_455310 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_455310.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447C24	; Info.Proc
dd -1			; Info.Id
dd offset sub_447C2C	; Info.Proc
stru_455340 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_455340.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447C40	; Info.Proc
dd -1			; Info.Id
dd offset sub_447C48	; Info.Proc
dd -1			; Info.Id
dd offset sub_447C50	; Info.Proc
dd -1			; Info.Id
dd offset sub_447C58	; Info.Proc
stru_455380 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_455380.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447C6C	; Info.Proc
stru_4553A8 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_4553A8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447C80	; Info.Proc
dd -1			; Info.Id
dd offset sub_447C88	; Info.Proc
dd 1			; Info.Id
dd offset sub_447C93	; Info.Proc
stru_4553E0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4553E0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447CA8	; Info.Proc
stru_455408 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_455408.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447CBC	; Info.Proc
dd -1			; Info.Id
dd offset sub_447CC4	; Info.Proc
dd 1			; Info.Id
dd offset sub_447CCF	; Info.Proc
dd 2			; Info.Id
dd offset sub_447CDA	; Info.Proc
dd 3			; Info.Id
dd offset sub_447CE2	; Info.Proc
stru_455450 dd 19930520h	    ; Magic
dd 7			; Count
dd offset stru_455450.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447CF4	; Info.Proc
dd 0			; Info.Id
dd offset sub_447CFF	; Info.Proc
dd 1			; Info.Id
dd offset sub_447D07	; Info.Proc
dd 0			; Info.Id
dd offset sub_447D07	; Info.Proc
dd 3			; Info.Id
dd offset sub_447D0F	; Info.Proc
dd 4			; Info.Id
dd offset sub_447D17	; Info.Proc
dd 3			; Info.Id
dd offset sub_447D17	; Info.Proc
stru_4554A8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4554A8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447D2C	; Info.Proc
stru_4554D0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4554D0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447D40	; Info.Proc
stru_4554F8 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_4554F8.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_455528	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_455528 dd 0, 0, 1		    ; _unk
dd 1			; Count
dd offset stru_455540	; RttiBlkPtr
dd 0
stru_455540 _msRttiDscr	<0, 0, 0, offset loc_42FCDD>
stru_455550 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_455550.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447D60	; Info.Proc
dd 0			; Info.Id
dd offset sub_447D68	; Info.Proc
dd 1			; Info.Id
dd offset sub_447D70	; Info.Proc
stru_455588 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_455588.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447D84	; Info.Proc
stru_4555B0 dd 19930520h	    ; Magic
dd 7			; Count
dd offset stru_4555B0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447D98	; Info.Proc
dd 0			; Info.Id
dd offset sub_447DA0	; Info.Proc
dd 1			; Info.Id
dd offset sub_447DAB	; Info.Proc
dd 2			; Info.Id
dd offset sub_447DB6	; Info.Proc
dd -1			; Info.Id
dd offset sub_447DC1	; Info.Proc
dd -1			; Info.Id
dd offset sub_447DC9	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_455608 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_455608.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447DDC	; Info.Proc
dd 0			; Info.Id
dd offset sub_447DE4	; Info.Proc
dd 1			; Info.Id
dd offset sub_447DEC	; Info.Proc
stru_455640 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_455640.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447E00	; Info.Proc
dd 0			; Info.Id
dd offset sub_447E08	; Info.Proc
dd 1			; Info.Id
dd offset sub_447E10	; Info.Proc
dd 2			; Info.Id
dd offset sub_447E18	; Info.Proc
dd 2			; Info.Id
dd offset sub_447E20	; Info.Proc
stru_455688 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_455688.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447E34	; Info.Proc
stru_4556B0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_4556B0.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_4556E0	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_4556E0 dd 0, 0, 1		    ; _unk
dd 1			; Count
dd offset stru_4556F8	; RttiBlkPtr
dd 0
stru_4556F8 _msRttiDscr	<0, 0, 0, offset loc_43112B>
stru_455708 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_455708.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_455738	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_455738 dd 0, 0, 1		    ; _unk
dd 1			; Count
dd offset stru_455750	; RttiBlkPtr
dd 0
stru_455750 _msRttiDscr	<0, 0, 0, offset loc_4311D0>
stru_455760 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_455760.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_455790	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_455790 dd 0, 0, 1		    ; _unk
dd 1			; Count
dd offset stru_4557A8	; RttiBlkPtr
dd 0
stru_4557A8 _msRttiDscr	<0, 0, 0, offset loc_4312AD>
stru_4557B8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4557B8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447E70	; Info.Proc
stru_4557E0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4557E0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_447E84	; Info.Proc
stru_455808 dd 19930520h	    ; Magic
dd 46			; Count
dd offset stru_455808.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_455998	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd 0			; Info.Id
dd offset sub_447E98	; Info.Proc
dd 1			; Info.Id
dd offset sub_447EA0	; Info.Proc
dd 1			; Info.Id
dd offset sub_447EA8	; Info.Proc
dd 1			; Info.Id
dd offset sub_447EB0	; Info.Proc
dd 1			; Info.Id
dd offset sub_447EB8	; Info.Proc
dd 1			; Info.Id
dd offset sub_447EC0	; Info.Proc
dd 1			; Info.Id
dd offset sub_447EC8	; Info.Proc
dd 4			; Info.Id
dd offset sub_447ED0	; Info.Proc
dd 8			; Info.Id
dd offset sub_447ED8	; Info.Proc
dd 8			; Info.Id
dd offset sub_447EE0	; Info.Proc
dd 1			; Info.Id
dd offset sub_447EE8	; Info.Proc
dd 10			; Info.Id
dd offset sub_447EF0	; Info.Proc
dd 1			; Info.Id
dd offset sub_447EFB	; Info.Proc
dd 1			; Info.Id
dd offset sub_447F03	; Info.Proc
dd 1			; Info.Id
dd offset sub_447F13	; Info.Proc
dd 1			; Info.Id
dd offset sub_447F23	; Info.Proc
dd 1			; Info.Id
dd offset sub_447F1B	; Info.Proc
dd 1			; Info.Id
dd offset sub_447F0B	; Info.Proc
dd 12			; Info.Id
dd offset sub_447F2B	; Info.Proc
dd 19			; Info.Id
dd offset sub_447F33	; Info.Proc
dd 12			; Info.Id
dd offset sub_447F33	; Info.Proc
dd 1			; Info.Id
dd offset sub_447F3B	; Info.Proc
dd 1			; Info.Id
dd offset sub_447F43	; Info.Proc
dd 12			; Info.Id
dd offset sub_447F4B	; Info.Proc
dd 24			; Info.Id
dd offset sub_447F53	; Info.Proc
dd 1			; Info.Id
dd offset sub_447F5B	; Info.Proc
dd 1			; Info.Id
dd offset sub_447F63	; Info.Proc
dd 24			; Info.Id
dd offset sub_447F6B	; Info.Proc
dd 28			; Info.Id
dd offset sub_447F73	; Info.Proc
dd 24			; Info.Id
dd offset sub_447F73	; Info.Proc
dd 1			; Info.Id
dd offset sub_447F7B	; Info.Proc
dd 1			; Info.Id
dd offset sub_447F83	; Info.Proc
dd 12			; Info.Id
dd offset sub_447F8B	; Info.Proc
dd 33			; Info.Id
dd offset sub_447F93	; Info.Proc
dd 12			; Info.Id
dd offset sub_447F93	; Info.Proc
dd 1			; Info.Id
dd offset sub_447F9B	; Info.Proc
dd 1			; Info.Id
dd offset sub_447FA3	; Info.Proc
dd 10			; Info.Id
dd offset sub_447FAB	; Info.Proc
dd 38			; Info.Id
dd offset sub_447FB3	; Info.Proc
dd 1			; Info.Id
dd offset sub_447FBB	; Info.Proc
dd 1			; Info.Id
dd offset sub_447FC3	; Info.Proc
dd 1			; Info.Id
dd offset sub_447FCB	; Info.Proc
dd 1			; Info.Id
dd offset sub_447FD3	; Info.Proc
dd 1			; Info.Id
dd offset sub_447FDB	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_455998 dd 0, 2Ch, 2Dh	    ; _unk
dd 1			; Count
dd offset stru_4559B0	; RttiBlkPtr
dd 0
stru_4559B0 _msRttiDscr	<0, 0, 0, offset loc_43206A>
stru_4559C0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_4559C0.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_4559F0	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_4559F0 dd 0, 0, 1		    ; _unk
dd 1			; Count
dd offset stru_455A08	; RttiBlkPtr
dd 0
stru_455A08 _msRttiDscr	<0, 0, 0, offset loc_432211>
stru_455A18 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_455A18.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_455A48	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_455A48 dd 0, 0, 1		    ; _unk
dd 1			; Count
dd offset stru_455A60	; RttiBlkPtr
dd 0
stru_455A60 _msRttiDscr	<0, 0, 0, offset sub_4323EE>
stru_455A70 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_455A70.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_455AA0	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_455AA0 dd 0, 0, 1		    ; _unk
dd 1			; Count
dd offset stru_455AB8	; RttiBlkPtr
dd 0
stru_455AB8 _msRttiDscr	<0, 0, 0, offset loc_43243B>
stru_455AC8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_455AC8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448014	; Info.Proc
stru_455AF0 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_455AF0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448028	; Info.Proc
dd 0			; Info.Id
dd offset sub_448030	; Info.Proc
dd 1			; Info.Id
dd offset sub_448038	; Info.Proc
dd 0			; Info.Id
dd offset sub_448040	; Info.Proc
dd 3			; Info.Id
dd offset sub_448048	; Info.Proc
stru_455B38 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_455B38.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_455B68	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_455B68 dd 0, 0, 1		    ; _unk
dd 1			; Count
dd offset stru_455B80	; RttiBlkPtr
dd 0
stru_455B80 _msRttiDscr	<0, 0, 0, offset loc_432693>
stru_455B90 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_455B90.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_455BC0	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_455BC0 dd 0, 0, 1		    ; _unk
dd 1			; Count
dd offset stru_455BD8	; RttiBlkPtr
dd 0
stru_455BD8 _msRttiDscr	<0, 0, 0, offset loc_4326F7>
stru_455BE8 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_455BE8.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_455C20	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd 0			; Info.Id
dd offset sub_448074	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_455C20 dd 0, 1, 2		    ; _unk
dd 1			; Count
dd offset stru_455C38	; RttiBlkPtr
dd 0
stru_455C38 _msRttiDscr	<0, 0, 0, offset loc_4327D3>
stru_455C48 dd 19930520h	    ; Magic
dd 6			; Count
dd offset stru_455C48.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_455C98	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd 0			; Info.Id
dd offset sub_448088	; Info.Proc
dd 1			; Info.Id
dd offset sub_448090	; Info.Proc
dd 1			; Info.Id
dd offset sub_44809A	; Info.Proc
dd 3			; Info.Id
dd offset sub_4480A2	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_455C98 dd 0, 4, 5		    ; _unk
dd 1			; Count
dd offset stru_455CB0	; RttiBlkPtr
dd 0
stru_455CB0 _msRttiDscr	<0, 0, 0, offset loc_432958>
stru_455CC0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_455CC0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4480B4	; Info.Proc
stru_455CE8 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_455CE8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4480C8	; Info.Proc
dd 0			; Info.Id
dd offset sub_4480D0	; Info.Proc
dd 1			; Info.Id
dd offset sub_4480DB	; Info.Proc
stru_455D20 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_455D20.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_455D58	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd 0			; Info.Id
dd offset sub_4480F0	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_455D58 dd 0, 1, 2		    ; _unk
dd 1			; Count
dd offset stru_455D70	; RttiBlkPtr
dd 0
stru_455D70 _msRttiDscr	<0, 0, 0, offset loc_432AD1>
stru_455D80 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_455D80.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448104	; Info.Proc
dd 0			; Info.Id
dd offset sub_44810C	; Info.Proc
dd 1			; Info.Id
dd offset sub_448114	; Info.Proc
stru_455DB8 dd 19930520h	    ; Magic
dd 7			; Count
dd offset stru_455DB8.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_455E10	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd 0			; Info.Id
dd offset sub_448128	; Info.Proc
dd 1			; Info.Id
dd offset sub_448130	; Info.Proc
dd 2			; Info.Id
dd offset sub_448138	; Info.Proc
dd 3			; Info.Id
dd offset sub_448140	; Info.Proc
dd 3			; Info.Id
dd offset sub_448148	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_455E10 dd 0, 5, 6		    ; _unk
dd 1			; Count
dd offset stru_455E28	; RttiBlkPtr
dd 0
stru_455E28 _msRttiDscr	<0, 0, 0, offset loc_432CC1>
stru_455E38 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_455E38.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44815C	; Info.Proc
stru_455E60 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_455E60.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448170	; Info.Proc
stru_455E88 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_455E88.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448184	; Info.Proc
stru_455EB0 dd 19930520h	    ; Magic
dd 7			; Count
dd offset stru_455EB0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448198	; Info.Proc
dd 0			; Info.Id
dd offset sub_4481A0	; Info.Proc
dd 1			; Info.Id
dd offset sub_4481A8	; Info.Proc
dd 0			; Info.Id
dd offset sub_4481B0	; Info.Proc
dd 3			; Info.Id
dd offset sub_4481B8	; Info.Proc
dd 4			; Info.Id
dd offset sub_4481C0	; Info.Proc
dd 3			; Info.Id
dd offset sub_4481C8	; Info.Proc
stru_455F08 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_455F08.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_455F48	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd 0			; Info.Id
dd offset sub_4481DC	; Info.Proc
dd 1			; Info.Id
dd offset sub_4481E4	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_455F48 dd 0, 2, 3		    ; _unk
dd 1			; Count
dd offset stru_455F60	; RttiBlkPtr
dd 0
stru_455F60 _msRttiDscr	<0, 0, 0, offset loc_433212>
stru_455F70 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_455F70.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4481F8	; Info.Proc
dd 0			; Info.Id
dd offset sub_448200	; Info.Proc
dd 1			; Info.Id
dd offset sub_448208	; Info.Proc
stru_455FA8 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_455FA8.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_455FE0	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd 0			; Info.Id
dd offset sub_44821C	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_455FE0 dd 0, 1, 2		    ; _unk
dd 1			; Count
dd offset stru_455FF8	; RttiBlkPtr
dd 0
stru_455FF8 _msRttiDscr	<0, 0, 0, offset loc_43332F>
stru_456008 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_456008.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_456048	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd 0			; Info.Id
dd offset sub_448230	; Info.Proc
dd 1			; Info.Id
dd offset sub_448238	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_456048 dd 0, 2, 3		    ; _unk
dd 1			; Count
dd offset stru_456060	; RttiBlkPtr
dd 0
stru_456060 _msRttiDscr	<0, 0, 0, offset loc_4333AC>
stru_456070 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_456070.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44824C	; Info.Proc
stru_456098 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_456098.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448260	; Info.Proc
dd -1			; Info.Id
dd offset sub_448268	; Info.Proc
dd -1			; Info.Id
dd offset sub_448270	; Info.Proc
stru_4560D0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4560D0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448284	; Info.Proc
stru_4560F8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4560F8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448298	; Info.Proc
stru_456120 dd 19930520h	    ; Magic ; Microsoft	VisualC	2-11/net runtime
dd 7			; Count
dd offset stru_456120.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4482AC	; Info.Proc
dd 0			; Info.Id
dd offset sub_4482B4	; Info.Proc
dd 0			; Info.Id
dd offset sub_4482BC	; Info.Proc
dd -1			; Info.Id
dd offset sub_4482BC	; Info.Proc
dd 3			; Info.Id
dd offset sub_4482C4	; Info.Proc
dd 4			; Info.Id
dd offset unknown_libname_31; Info.Proc
dd 5			; Info.Id
dd offset sub_4482D4	; Info.Proc
stru_456178 dd 19930520h	    ; Magic
dd 7			; Count
dd offset stru_456178.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4482E8	; Info.Proc
dd 0			; Info.Id
dd offset sub_4482F3	; Info.Proc
dd 1			; Info.Id
dd offset sub_4482FB	; Info.Proc
dd 2			; Info.Id
dd offset sub_448303	; Info.Proc
dd 2			; Info.Id
dd offset sub_44830B	; Info.Proc
dd 4			; Info.Id
dd offset sub_448313	; Info.Proc
dd 5			; Info.Id
dd offset sub_44831B	; Info.Proc
stru_4561D0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4561D0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448330	; Info.Proc
stru_4561F8 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_4561F8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448344	; Info.Proc
dd -1			; Info.Id
dd offset sub_44834C	; Info.Proc
dd 1			; Info.Id
dd offset sub_448354	; Info.Proc
stru_456230 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_456230.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448368	; Info.Proc
stru_456258 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_456258.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44837C	; Info.Proc
stru_456280 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_456280.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448390	; Info.Proc
stru_4562A8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4562A8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4483A4	; Info.Proc
stru_4562D0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4562D0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4483B8	; Info.Proc
stru_4562F8 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_4562F8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4483CC	; Info.Proc
dd 0			; Info.Id
dd offset sub_4483D4	; Info.Proc
dd 1			; Info.Id
dd offset sub_4483DC	; Info.Proc
stru_456330 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_456330.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448408	; Info.Proc
dd 0			; Info.Id
dd offset sub_4483F0	; Info.Proc
dd 1			; Info.Id
dd offset sub_4483F8	; Info.Proc
dd 2			; Info.Id
dd offset sub_448400	; Info.Proc
dd 0			; Info.Id
dd offset sub_44841F	; Info.Proc
stru_456378 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_456378.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448434	; Info.Proc
dd 0			; Info.Id
dd offset sub_44843C	; Info.Proc
dd 1			; Info.Id
dd offset sub_448444	; Info.Proc
dd 1			; Info.Id
dd offset sub_44844C	; Info.Proc
dd 0			; Info.Id
dd offset sub_448454	; Info.Proc
stru_4563C0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4563C0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448468	; Info.Proc
stru_4563E8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4563E8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44847C	; Info.Proc
stru_456410 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_456410.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448490	; Info.Proc
stru_456438 dd 19930520h	    ; Magic
dd 8			; Count
dd offset stru_456438.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4484A4	; Info.Proc
dd 0			; Info.Id
dd offset sub_4484AC	; Info.Proc
dd 1			; Info.Id
dd offset sub_4484B4	; Info.Proc
dd 1			; Info.Id
dd offset sub_4484BC	; Info.Proc
dd 1			; Info.Id
dd offset sub_4484C4	; Info.Proc
dd 1			; Info.Id
dd offset sub_4484CC	; Info.Proc
dd 0			; Info.Id
dd offset sub_4484D4	; Info.Proc
dd -1			; Info.Id
dd offset sub_4484DC	; Info.Proc
stru_456498 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_456498.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4484F0	; Info.Proc
stru_4564C0 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_4564C0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448504	; Info.Proc
dd 0			; Info.Id
dd offset sub_44850F	; Info.Proc
dd 1			; Info.Id
dd offset sub_448517	; Info.Proc
dd 2			; Info.Id
dd offset sub_44851F	; Info.Proc
stru_456500 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_456500.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448534	; Info.Proc
stru_456528 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_456528.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448548	; Info.Proc
stru_456550 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_456550.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44855C	; Info.Proc
dd 0			; Info.Id
dd offset sub_448567	; Info.Proc
dd 1			; Info.Id
dd offset sub_448572	; Info.Proc
dd 2			; Info.Id
dd offset sub_44857D	; Info.Proc
dd 0			; Info.Id
dd offset sub_448585	; Info.Proc
stru_456598 dd 19930520h	    ; Magic
dd 6			; Count
dd offset stru_456598.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448598	; Info.Proc
dd 0			; Info.Id
dd offset sub_4485A0	; Info.Proc
dd 1			; Info.Id
dd offset sub_4485A8	; Info.Proc
dd 2			; Info.Id
dd offset sub_4485B0	; Info.Proc
dd 2			; Info.Id
dd offset sub_4485B8	; Info.Proc
dd 0			; Info.Id
dd offset sub_4485C0	; Info.Proc
stru_4565E8 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_4565E8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4485D4	; Info.Proc
dd -1			; Info.Id
dd offset sub_4485DC	; Info.Proc
stru_456618 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_456618.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4485F0	; Info.Proc
dd 0			; Info.Id
dd offset sub_4485F8	; Info.Proc
stru_456648 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_456648.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448610	; Info.Proc
stru_456670 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_456670.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448624	; Info.Proc
dd -1			; Info.Id
dd offset sub_44862C	; Info.Proc
stru_4566A0 dd 19930520h	    ; Magic
dd 8			; Count
dd offset stru_4566A0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448640	; Info.Proc
dd 0			; Info.Id
dd offset sub_448648	; Info.Proc
dd 1			; Info.Id
dd offset sub_448650	; Info.Proc
dd 1			; Info.Id
dd offset sub_448658	; Info.Proc
dd -1			; Info.Id
dd offset sub_448658	; Info.Proc
dd 4			; Info.Id
dd offset sub_448648	; Info.Proc
dd 4			; Info.Id
dd offset sub_448660	; Info.Proc
dd 6			; Info.Id
dd offset sub_448668	; Info.Proc
stru_456700 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_456700.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44867C	; Info.Proc
dd -1			; Info.Id
dd offset sub_448687	; Info.Proc
dd 1			; Info.Id
dd offset sub_44868F	; Info.Proc
dd 1			; Info.Id
dd offset sub_448697	; Info.Proc
dd 1			; Info.Id
dd offset sub_44869F	; Info.Proc
stru_456748 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_456748.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4486B4	; Info.Proc
stru_456770 dd 19930520h	    ; Magic ; Microsoft	VisualC	2-11/net runtime
dd 2			; Count
dd offset stru_456770.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset unknown_libname_34; Info.Proc
dd -1			; Info.Id
dd offset sub_4486D0	; Info.Proc
stru_4567A0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4567A0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4486E4	; Info.Proc
stru_4567C8 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_4567C8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4486F8	; Info.Proc
dd 0			; Info.Id
dd offset sub_448702	; Info.Proc
stru_4567F8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4567F8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448714	; Info.Proc
stru_456820 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_456820.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448728	; Info.Proc
stru_456848 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_456848.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44873C	; Info.Proc
stru_456870 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_456870.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448750	; Info.Proc
stru_456898 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_456898.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448764	; Info.Proc
dd 0			; Info.Id
dd offset sub_44876C	; Info.Proc
stru_4568C8 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_4568C8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448784	; Info.Proc
dd 0			; Info.Id
dd offset sub_44878F	; Info.Proc
dd 1			; Info.Id
dd offset sub_44879A	; Info.Proc
stru_456900 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_456900.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4487B0	; Info.Proc
stru_456928 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_456928.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4487C4	; Info.Proc
stru_456950 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_456950.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4487D8	; Info.Proc
stru_456978 dd 19930520h	    ; Magic ; Microsoft	VisualC	2-11/net runtime
dd 2			; Count
dd offset stru_456978.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset unknown_libname_38; Info.Proc
dd -1			; Info.Id
dd offset sub_4487F4	; Info.Proc
stru_4569A8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4569A8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448808	; Info.Proc
stru_4569D0 dd 19930520h	    ; Magic
dd 18			; Count
dd offset stru_4569D0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44881C	; Info.Proc
dd 0			; Info.Id
dd offset sub_448824	; Info.Proc
dd 1			; Info.Id
dd offset sub_44882C	; Info.Proc
dd 1			; Info.Id
dd offset sub_448834	; Info.Proc
dd 3			; Info.Id
dd offset sub_44883C	; Info.Proc
dd 4			; Info.Id
dd offset sub_448847	; Info.Proc
dd 5			; Info.Id
dd offset sub_44884F	; Info.Proc
dd 3			; Info.Id
dd offset sub_448857	; Info.Proc
dd 3			; Info.Id
dd offset sub_44885F	; Info.Proc
dd 3			; Info.Id
dd offset sub_448867	; Info.Proc
dd 3			; Info.Id
dd offset sub_44886F	; Info.Proc
dd 10			; Info.Id
dd offset sub_448877	; Info.Proc
dd 10			; Info.Id
dd offset sub_44887F	; Info.Proc
dd 10			; Info.Id
dd offset sub_448887	; Info.Proc
dd 10			; Info.Id
dd offset sub_44888F	; Info.Proc
dd 14			; Info.Id
dd offset sub_448897	; Info.Proc
dd 15			; Info.Id
dd offset sub_44889F	; Info.Proc
dd 10			; Info.Id
dd offset sub_4488A7	; Info.Proc
stru_456A80 dd 19930520h	    ; Magic ; Microsoft	VisualC	2-11/net runtime
dd 3			; Count
dd offset stru_456A80.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4488BC	; Info.Proc
dd 0			; Info.Id
dd offset unknown_libname_39; Info.Proc
dd 1			; Info.Id
dd offset sub_4488CC	; Info.Proc
stru_456AB8 dd 19930520h	    ; Magic
dd 7			; Count
dd offset stru_456AB8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4488E0	; Info.Proc
dd -1			; Info.Id
dd offset sub_4488EB	; Info.Proc
dd -1			; Info.Id
dd offset sub_4488F3	; Info.Proc
dd 2			; Info.Id
dd offset sub_4488FB	; Info.Proc
dd 3			; Info.Id
dd offset sub_448903	; Info.Proc
dd 4			; Info.Id
dd offset sub_44890B	; Info.Proc
dd 5			; Info.Id
dd offset sub_448913	; Info.Proc
stru_456B10 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_456B10.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448928	; Info.Proc
dd 0			; Info.Id
dd offset sub_448930	; Info.Proc
dd 1			; Info.Id
dd offset sub_44893B	; Info.Proc
stru_456B48 dd 19930520h	    ; Magic
dd 9			; Count
dd offset stru_456B48.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448950	; Info.Proc
dd -1			; Info.Id
dd offset sub_44895A	; Info.Proc
dd 1			; Info.Id
dd offset sub_448962	; Info.Proc
dd 2			; Info.Id
dd offset sub_44896A	; Info.Proc
dd 3			; Info.Id
dd offset sub_448972	; Info.Proc
dd 4			; Info.Id
dd offset sub_44897A	; Info.Proc
dd 4			; Info.Id
dd offset sub_448982	; Info.Proc
dd 4			; Info.Id
dd offset sub_44898A	; Info.Proc
dd 4			; Info.Id
dd offset sub_448992	; Info.Proc
stru_456BB0 dd 19930520h	    ; Magic ; Microsoft	VisualC	2-11/net runtime
dd 2			; Count
dd offset stru_456BB0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4489A4	; Info.Proc
dd 0			; Info.Id
dd offset unknown_libname_40; Info.Proc
stru_456BE0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_456BE0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4489C4	; Info.Proc
stru_456C08 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_456C08.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4489D8	; Info.Proc
dd 0			; Info.Id
dd offset sub_4489E3	; Info.Proc
dd 1			; Info.Id
dd offset sub_4489EE	; Info.Proc
dd 2			; Info.Id
dd offset sub_4489F9	; Info.Proc
dd 2			; Info.Id
dd offset sub_448A04	; Info.Proc
stru_456C50 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_456C50.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448A18	; Info.Proc
dd -1			; Info.Id
dd offset sub_448A20	; Info.Proc
dd 1			; Info.Id
dd offset sub_448A28	; Info.Proc
dd 1			; Info.Id
dd offset sub_448A32	; Info.Proc
stru_456C90 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_456C90.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448A44	; Info.Proc
dd -1			; Info.Id
dd offset sub_448A4E	; Info.Proc
dd 1			; Info.Id
dd offset sub_448A56	; Info.Proc
dd 2			; Info.Id
dd offset sub_448A5E	; Info.Proc
stru_456CD0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_456CD0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448A70	; Info.Proc
stru_456CF8 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_456CF8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448A84	; Info.Proc
dd 0			; Info.Id
dd offset sub_448A8C	; Info.Proc
dd 1			; Info.Id
dd offset sub_448A97	; Info.Proc
stru_456D30 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_456D30.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448AAC	; Info.Proc
dd 0			; Info.Id
dd offset sub_448AB4	; Info.Proc
dd 1			; Info.Id
dd offset sub_448ABC	; Info.Proc
dd 2			; Info.Id
dd offset sub_448AC4	; Info.Proc
stru_456D70 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_456D70.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448AD8	; Info.Proc
dd 0			; Info.Id
dd offset sub_448AE3	; Info.Proc
stru_456DA0 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_456DA0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448AF8	; Info.Proc
dd 0			; Info.Id
dd offset sub_448B03	; Info.Proc
dd 1			; Info.Id
dd offset sub_448B0E	; Info.Proc
stru_456DD8 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_456DD8.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_456E08	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_456E08 dd 0, 0, 1		    ; _unk
dd 1			; Count
dd offset stru_456E20	; RttiBlkPtr
dd 0
stru_456E20 _msRttiDscr	<0, 0, 0, offset loc_43774A>
stru_456E30 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_456E30.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_456E60	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_456E60 dd 0, 0, 1		    ; _unk
dd 1			; Count
dd offset stru_456E78	; RttiBlkPtr
dd 0
stru_456E78 _msRttiDscr	<0, 0, 0, offset loc_43778B>
stru_456E88 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_456E88.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_456EB8	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_456EB8 dd 0, 0, 1		    ; _unk
dd 1			; Count
dd offset stru_456ED0	; RttiBlkPtr
dd 0
stru_456ED0 _msRttiDscr	<0, 0, 0, offset loc_4377CF>
stru_456EE0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_456EE0.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_456F10	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_456F10 dd 0, 0, 1		    ; _unk
dd 1			; Count
dd offset stru_456F28	; RttiBlkPtr
dd 0
stru_456F28 _msRttiDscr	<0, 0, 0, offset loc_437867>
stru_456F38 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_456F38.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_456F78	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd 0			; Info.Id
dd offset sub_448B54	; Info.Proc
dd 1			; Info.Id
dd offset sub_448B5C	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_456F78 dd 0, 2, 3		    ; _unk
dd 1			; Count
dd offset stru_456F90	; RttiBlkPtr
dd 0
stru_456F90 _msRttiDscr	<0, 0, 0, offset loc_437A08>
stru_456FA0 dd 19930520h	    ; Magic
dd 6			; Count
dd offset stru_456FA0.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_456FF0	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd 0			; Info.Id
dd offset sub_448B70	; Info.Proc
dd 0			; Info.Id
dd offset sub_448B78	; Info.Proc
dd 0			; Info.Id
dd offset sub_448B82	; Info.Proc
dd 3			; Info.Id
dd offset sub_448B8A	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_456FF0 dd 0, 4, 5		    ; _unk
dd 1			; Count
dd offset stru_457008	; RttiBlkPtr
dd 0
stru_457008 _msRttiDscr	<0, 0, 0, offset loc_437BC9>
stru_457018 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_457018.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_457048	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_457048 dd 0, 0, 1		    ; _unk
dd 1			; Count
dd offset stru_457060	; RttiBlkPtr
dd 0
stru_457060 _msRttiDscr	<0, 0, 0, offset loc_437C0A>
stru_457070 dd 19930520h	    ; Magic
dd 8			; Count
dd offset stru_457070.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_4570D0	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd 0			; Info.Id
dd offset sub_448BA8	; Info.Proc
dd 1			; Info.Id
dd offset sub_448BB0	; Info.Proc
dd 2			; Info.Id
dd offset sub_448BB8	; Info.Proc
dd 1			; Info.Id
dd offset sub_448BC0	; Info.Proc
dd 4			; Info.Id
dd offset sub_448BC8	; Info.Proc
dd 4			; Info.Id
dd offset sub_448BD2	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_4570D0 dd 0, 6, 7		    ; _unk
dd 1			; Count
dd offset stru_4570E8	; RttiBlkPtr
dd 0
stru_4570E8 _msRttiDscr	<0, 0, 0, offset loc_437D90>
stru_4570F8 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_4570F8.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_457128	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_457128 dd 0, 0, 1		    ; _unk
dd 1			; Count
dd offset stru_457140	; RttiBlkPtr
dd 0
stru_457140 _msRttiDscr	<0, 0, 0, offset loc_437DE5>
stru_457150 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_457150.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_457180	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_457180 dd 0, 0, 1		    ; _unk
dd 1			; Count
dd offset stru_457198	; RttiBlkPtr
dd 0
stru_457198 _msRttiDscr	<0, 0, 0, offset loc_437E26>
stru_4571A8 dd 19930520h	    ; Magic
dd 8			; Count
dd offset stru_4571A8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448BFC	; Info.Proc
dd 0			; Info.Id
dd offset sub_448C07	; Info.Proc
dd 1			; Info.Id
dd offset sub_448C0F	; Info.Proc
dd 1			; Info.Id
dd offset sub_448C17	; Info.Proc
dd 1			; Info.Id
dd offset sub_448C1F	; Info.Proc
dd 4			; Info.Id
dd offset sub_448C27	; Info.Proc
dd 4			; Info.Id
dd offset sub_448C2F	; Info.Proc
dd 1			; Info.Id
dd offset sub_448C37	; Info.Proc
db    0
db    0
db    0
db    0
db  90h	; ê
db 0C4h	; ƒ
db  45h	; E
db    0
db    0
db    0
db    0
db    0
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db    0
db    0
db    0
db    0
db  0Ch
db    0
db    0
db    0
db 0F2h	; Ú
db  30h	; 0
db  40h	; @
db    0
db    0
db    0
db    0
db    0
db    1
db    0
db    0
db    0
db    8
db  72h	; r
db  45h	; E
db    0
unk_457230 db	 0
db    0
db    0
db    0
db  76h	; v
db  6Eh	; n
db  40h	; @
db    0
db    0
db    0
db    0
db    0
db  28h	; (
db  72h	; r
db  45h	; E
db    0
stru_457240 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_457240.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448C4C	; Info.Proc
stru_457268 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_457268.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448C60	; Info.Proc
stru_457290 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_457290.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448C74	; Info.Proc
dd -1			; Info.Id
dd offset sub_448C84	; Info.Proc
dd -1			; Info.Id
dd offset sub_448C7C	; Info.Proc
stru_4572C8 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_4572C8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448C98	; Info.Proc
dd 0			; Info.Id
dd offset sub_448CA0	; Info.Proc
stru_4572F8 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_4572F8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448CB4	; Info.Proc
dd 0			; Info.Id
dd offset sub_448CBC	; Info.Proc
stru_457328 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_457328.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448CD0	; Info.Proc
dd 0			; Info.Id
dd offset sub_448CD8	; Info.Proc
stru_457358 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_457358.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448CEC	; Info.Proc
dd 0			; Info.Id
dd offset sub_448CF4	; Info.Proc
stru_457388 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_457388.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448D08	; Info.Proc
dd 0			; Info.Id
dd offset sub_448D10	; Info.Proc
stru_4573B8 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_4573B8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448D24	; Info.Proc
dd 0			; Info.Id
dd offset sub_448D2C	; Info.Proc
stru_4573E8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4573E8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448D40	; Info.Proc
stru_457410 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_457410.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448D54	; Info.Proc
stru_457438 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_457438.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448D6C	; Info.Proc
dd 0			; Info.Id
dd offset sub_448D77	; Info.Proc
dd 1			; Info.Id
dd offset sub_448D82	; Info.Proc
dd -1			; Info.Id
dd offset sub_448D8A	; Info.Proc
stru_457478 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_457478.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448D9C	; Info.Proc
dd 0			; Info.Id
dd offset sub_448DA4	; Info.Proc
dd 1			; Info.Id
dd offset sub_448DAC	; Info.Proc
stru_4574B0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4574B0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448DC0	; Info.Proc
stru_4574D8 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_4574D8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448DD4	; Info.Proc
dd 0			; Info.Id
dd offset sub_448DDC	; Info.Proc
dd 1			; Info.Id
dd offset sub_448DE4	; Info.Proc
dd -1			; Info.Id
dd offset sub_448DEC	; Info.Proc
dd -1			; Info.Id
dd offset sub_448DF4	; Info.Proc
stru_457520 dd 19930520h	    ; Magic
dd 56			; Count
dd offset stru_457520.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_448E08	; Info.Proc
dd 0			; Info.Id
dd offset sub_448E10	; Info.Proc
dd 1			; Info.Id
dd offset sub_448E1B	; Info.Proc
dd 0			; Info.Id
dd offset sub_448E23	; Info.Proc
dd 3			; Info.Id
dd offset sub_448E2B	; Info.Proc
dd 4			; Info.Id
dd offset sub_448E33	; Info.Proc
dd 5			; Info.Id
dd offset sub_448E3E	; Info.Proc
dd 5			; Info.Id
dd offset sub_448E49	; Info.Proc
dd 7			; Info.Id
dd offset sub_448E54	; Info.Proc
dd 8			; Info.Id
dd offset sub_448E5F	; Info.Proc
dd 8			; Info.Id
dd offset sub_448E67	; Info.Proc
dd 8			; Info.Id
dd offset sub_448E6F	; Info.Proc
dd 11			; Info.Id
dd offset sub_448E7A	; Info.Proc
dd 12			; Info.Id
dd offset sub_448E85	; Info.Proc
dd 13			; Info.Id
dd offset sub_448E90	; Info.Proc
dd 3			; Info.Id
dd offset sub_448E98	; Info.Proc
dd 3			; Info.Id
dd offset sub_448EA3	; Info.Proc
dd 16			; Info.Id
dd offset sub_448EAB	; Info.Proc
dd 17			; Info.Id
dd offset sub_448EB6	; Info.Proc
dd 18			; Info.Id
dd offset sub_448EC1	; Info.Proc
dd 19			; Info.Id
dd offset sub_448ECC	; Info.Proc
dd 20			; Info.Id
dd offset sub_448ED4	; Info.Proc
dd 17			; Info.Id
dd offset sub_448EDC	; Info.Proc
dd 17			; Info.Id
dd offset sub_448EE7	; Info.Proc
dd 23			; Info.Id
dd offset sub_448EF2	; Info.Proc
dd 24			; Info.Id
dd offset sub_448EFA	; Info.Proc
dd 25			; Info.Id
dd offset sub_448F02	; Info.Proc
dd 25			; Info.Id
dd offset sub_448F0D	; Info.Proc
dd 27			; Info.Id
dd offset sub_448F18	; Info.Proc
dd 28			; Info.Id
dd offset sub_448F20	; Info.Proc
dd 29			; Info.Id
dd offset sub_448F2B	; Info.Proc
dd 17			; Info.Id
dd offset sub_448F36	; Info.Proc
dd 3			; Info.Id
dd offset sub_448F41	; Info.Proc
dd 32			; Info.Id
dd offset sub_448F49	; Info.Proc
dd 33			; Info.Id
dd offset sub_448F54	; Info.Proc
dd 34			; Info.Id
dd offset sub_448F5F	; Info.Proc
dd 35			; Info.Id
dd offset sub_448F67	; Info.Proc
dd 35			; Info.Id
dd offset sub_448F72	; Info.Proc
dd 35			; Info.Id
dd offset sub_448F7D	; Info.Proc
dd 38			; Info.Id
dd offset sub_448F88	; Info.Proc
dd 39			; Info.Id
dd offset sub_448F90	; Info.Proc
dd 40			; Info.Id
dd offset sub_448F98	; Info.Proc
dd 35			; Info.Id
dd offset sub_448FA3	; Info.Proc
dd 42			; Info.Id
dd offset sub_448FAE	; Info.Proc
dd 43			; Info.Id
dd offset sub_448FB6	; Info.Proc
dd 44			; Info.Id
dd offset sub_448FBE	; Info.Proc
dd 35			; Info.Id
dd offset sub_448FC9	; Info.Proc
dd 46			; Info.Id
dd offset sub_448FD4	; Info.Proc
dd 47			; Info.Id
dd offset sub_448FDC	; Info.Proc
dd 48			; Info.Id
dd offset sub_448FE4	; Info.Proc
dd 35			; Info.Id
dd offset sub_448FEF	; Info.Proc
dd 50			; Info.Id
dd offset sub_448FFA	; Info.Proc
dd 51			; Info.Id
dd offset sub_449002	; Info.Proc
dd 52			; Info.Id
dd offset sub_44900A	; Info.Proc
dd 3			; Info.Id
dd offset sub_449015	; Info.Proc
dd 54			; Info.Id
dd offset sub_449020	; Info.Proc
stru_457700 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_457700.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449038	; Info.Proc
stru_457728 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_457728.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44904C	; Info.Proc
dd -1			; Info.Id
dd offset sub_449054	; Info.Proc
dd 1			; Info.Id
dd offset sub_44905C	; Info.Proc
dd 2			; Info.Id
dd offset sub_449064	; Info.Proc
dd 3			; Info.Id
dd offset sub_44906C	; Info.Proc
stru_457770 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_457770.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449080	; Info.Proc
stru_457798 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_457798.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449094	; Info.Proc
dd 0			; Info.Id
dd offset sub_44909C	; Info.Proc
dd 1			; Info.Id
dd offset sub_4490A4	; Info.Proc
stru_4577D0 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_4577D0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4490B8	; Info.Proc
dd 0			; Info.Id
dd offset sub_4490C0	; Info.Proc
dd 1			; Info.Id
dd offset sub_4490C8	; Info.Proc
dd 2			; Info.Id
dd offset sub_4490D0	; Info.Proc
stru_457810 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_457810.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4490E4	; Info.Proc
stru_457838 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_457838.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4490F8	; Info.Proc
dd 0			; Info.Id
dd offset sub_449103	; Info.Proc
dd 1			; Info.Id
dd offset sub_44910E	; Info.Proc
dd 2			; Info.Id
dd offset sub_449119	; Info.Proc
stru_457878 dd 19930520h	    ; Magic
dd 9			; Count
dd offset stru_457878.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_4578E0	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449130	; Info.Proc
dd -1			; Info.Id
dd offset sub_449138	; Info.Proc
dd 1			; Info.Id
dd offset sub_449140	; Info.Proc
dd -1			; Info.Id
dd offset sub_449148	; Info.Proc
dd 3			; Info.Id
dd 0			; Info.Proc
dd 4			; Info.Id
dd offset sub_449153	; Info.Proc
dd 5			; Info.Id
dd offset sub_44915B	; Info.Proc
dd 5			; Info.Id
dd offset sub_449163	; Info.Proc
dd 3			; Info.Id
dd 0			; Info.Proc
stru_4578E0 dd 4, 7, 8		    ; _unk
dd 1			; Count
dd offset stru_4578F8	; RttiBlkPtr
dd 0
stru_4578F8 _msRttiDscr	<0, 0, 0, offset loc_43A57D>
stru_457908 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_457908.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449178	; Info.Proc
stru_457930 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_457930.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44918C	; Info.Proc
dd 0			; Info.Id
dd offset sub_449197	; Info.Proc
dd 1			; Info.Id
dd offset sub_4491A2	; Info.Proc
dd 2			; Info.Id
dd offset sub_4491AD	; Info.Proc
stru_457970 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_457970.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4491C4	; Info.Proc
stru_457998 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_457998.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4491D8	; Info.Proc
stru_4579C0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4579C0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4491EC	; Info.Proc
stru_4579E8 dd 19930520h	    ; Magic
dd 8			; Count
dd offset stru_4579E8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449200	; Info.Proc
dd 0			; Info.Id
dd offset sub_449208	; Info.Proc
dd 1			; Info.Id
dd offset sub_449210	; Info.Proc
dd 2			; Info.Id
dd offset sub_449218	; Info.Proc
dd 1			; Info.Id
dd offset sub_449220	; Info.Proc
dd 4			; Info.Id
dd offset sub_449228	; Info.Proc
dd 1			; Info.Id
dd offset sub_449230	; Info.Proc
dd 6			; Info.Id
dd offset sub_449238	; Info.Proc
stru_457A48 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_457A48.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44924C	; Info.Proc
dd 0			; Info.Id
dd offset sub_449254	; Info.Proc
dd 1			; Info.Id
dd offset sub_44925C	; Info.Proc
stru_457A80 dd 19930520h	    ; Magic
dd 8			; Count
dd offset stru_457A80.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449270	; Info.Proc
dd -1			; Info.Id
dd offset sub_449278	; Info.Proc
dd -1			; Info.Id
dd offset sub_449280	; Info.Proc
dd -1			; Info.Id
dd offset sub_449288	; Info.Proc
dd -1			; Info.Id
dd offset sub_449290	; Info.Proc
dd -1			; Info.Id
dd offset sub_449298	; Info.Proc
dd -1			; Info.Id
dd offset sub_4492A0	; Info.Proc
dd -1			; Info.Id
dd offset sub_4492A8	; Info.Proc
stru_457AE0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_457AE0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4492BC	; Info.Proc
dd 0			; Info.Id
dd offset sub_4492C4	; Info.Proc
stru_457B10 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_457B10.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4492D8	; Info.Proc
dd 0			; Info.Id
dd offset sub_4492E0	; Info.Proc
stru_457B40 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_457B40.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4492F4	; Info.Proc
dd -1			; Info.Id
dd offset sub_4492FC	; Info.Proc
dd -1			; Info.Id
dd offset sub_449304	; Info.Proc
dd -1			; Info.Id
dd offset sub_44930C	; Info.Proc
stru_457B80 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_457B80.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449320	; Info.Proc
dd 0			; Info.Id
dd offset sub_449328	; Info.Proc
dd 1			; Info.Id
dd offset sub_449330	; Info.Proc
stru_457BB8 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_457BB8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449344	; Info.Proc
dd 0			; Info.Id
dd offset sub_44934C	; Info.Proc
dd 1			; Info.Id
dd offset sub_449354	; Info.Proc
stru_457BF0 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_457BF0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449368	; Info.Proc
dd 0			; Info.Id
dd offset sub_449370	; Info.Proc
dd 1			; Info.Id
dd offset sub_449378	; Info.Proc
dd 2			; Info.Id
dd offset sub_449380	; Info.Proc
stru_457C30 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_457C30.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449394	; Info.Proc
dd 0			; Info.Id
dd offset sub_44939C	; Info.Proc
stru_457C60 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_457C60.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4493B0	; Info.Proc
stru_457C88 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_457C88.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4493C4	; Info.Proc
stru_457CB0 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_457CB0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4493D8	; Info.Proc
dd 0			; Info.Id
dd offset sub_4493E0	; Info.Proc
dd 0			; Info.Id
dd offset sub_4493EA	; Info.Proc
stru_457CE8 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_457CE8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4493FC	; Info.Proc
dd 0			; Info.Id
dd offset sub_449407	; Info.Proc
stru_457D18 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_457D18.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_457D48	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_457D48 dd 0, 0, 1		    ; _unk
dd 1			; Count
dd offset stru_457D60	; RttiBlkPtr
dd 0
stru_457D60 _msRttiDscr	<0, 0, 0, offset loc_43B6CC>
stru_457D70 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_457D70.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_457DA8	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd 0			; Info.Id
dd offset sub_449428	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_457DA8 dd 0, 1, 2		    ; _unk
dd 1			; Count
dd offset stru_457DC0	; RttiBlkPtr
dd 0
stru_457DC0 _msRttiDscr	<0, 0, 0, offset loc_43B743>
stru_457DD0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_457DD0.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_457E00	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_457E00 dd 0, 0, 1		    ; _unk
dd 1			; Count
dd offset stru_457E18	; RttiBlkPtr
dd 0
stru_457E18 _msRttiDscr	<0, 0, 0, offset sub_43B79C>
stru_457E28 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_457E28.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449448	; Info.Proc
stru_457E50 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_457E50.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_457E80	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_457E80 dd 0, 0, 1		    ; _unk
dd 1			; Count
dd offset stru_457E98	; RttiBlkPtr
dd 0
stru_457E98 _msRttiDscr	<0, 0, 0, offset loc_43B8C1>
stru_457EA8 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_457EA8.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_457ED8	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_457ED8 dd 0, 0, 1		    ; _unk
dd 1			; Count
dd offset stru_457EF0	; RttiBlkPtr
dd 0
stru_457EF0 _msRttiDscr	<0, 0, 0, offset loc_43B9A6>
stru_457F00 dd 19930520h	    ; Magic
dd 6			; Count
dd offset stru_457F00.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_457F50	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd 0			; Info.Id
dd offset sub_449474	; Info.Proc
dd 1			; Info.Id
dd offset sub_44947C	; Info.Proc
dd 1			; Info.Id
dd offset sub_449484	; Info.Proc
dd 3			; Info.Id
dd offset sub_44948C	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_457F50 dd 0, 4, 5		    ; _unk
dd 1			; Count
dd offset stru_457F68	; RttiBlkPtr
dd 0
stru_457F68 _msRttiDscr	<0, 0, 0, offset loc_43BB11>
stru_457F78 dd 19930520h	    ; Magic
dd 8			; Count
dd offset stru_457F78.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_457FD8	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd 0			; Info.Id
dd offset sub_4494A0	; Info.Proc
dd 0			; Info.Id
dd offset sub_4494AA	; Info.Proc
dd 2			; Info.Id
dd offset sub_4494B2	; Info.Proc
dd 3			; Info.Id
dd offset sub_4494BA	; Info.Proc
dd 3			; Info.Id
dd offset sub_4494C2	; Info.Proc
dd 2			; Info.Id
dd offset sub_4494CA	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_457FD8 dd 0, 6, 7		    ; _unk
dd 1			; Count
dd offset stru_457FF0	; RttiBlkPtr
dd 0
stru_457FF0 _msRttiDscr	<0, 0, 0, offset loc_43BDD1>
stru_458000 dd 19930520h	    ; Magic
dd 11			; Count
dd offset stru_458000.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4494DC	; Info.Proc
dd 0			; Info.Id
dd offset sub_4494E7	; Info.Proc
dd 1			; Info.Id
dd offset sub_4494F2	; Info.Proc
dd 2			; Info.Id
dd offset sub_4494FD	; Info.Proc
dd 3			; Info.Id
dd offset sub_449508	; Info.Proc
dd 4			; Info.Id
dd offset sub_449513	; Info.Proc
dd 5			; Info.Id
dd offset sub_44951E	; Info.Proc
dd 6			; Info.Id
dd offset sub_44952C	; Info.Proc
dd 7			; Info.Id
dd offset sub_44953A	; Info.Proc
dd 8			; Info.Id
dd offset sub_449548	; Info.Proc
dd 9			; Info.Id
dd offset sub_449556	; Info.Proc
stru_458078 dd 19930520h	    ; Magic
dd 10			; Count
dd offset stru_458078.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44956C	; Info.Proc
dd 0			; Info.Id
dd offset sub_449577	; Info.Proc
dd 1			; Info.Id
dd offset sub_449582	; Info.Proc
dd 2			; Info.Id
dd offset sub_44958D	; Info.Proc
dd 3			; Info.Id
dd offset sub_449598	; Info.Proc
dd 4			; Info.Id
dd offset sub_4495A3	; Info.Proc
dd 5			; Info.Id
dd offset sub_4495AE	; Info.Proc
dd 6			; Info.Id
dd offset sub_4495BC	; Info.Proc
dd 7			; Info.Id
dd offset sub_4495CA	; Info.Proc
dd 7			; Info.Id
dd offset sub_4495D8	; Info.Proc
stru_4580E8 dd 19930520h	    ; Magic
dd 6			; Count
dd offset stru_4580E8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4495EC	; Info.Proc
dd 0			; Info.Id
dd offset sub_4495F7	; Info.Proc
dd 1			; Info.Id
dd offset sub_449602	; Info.Proc
dd 2			; Info.Id
dd offset sub_44960D	; Info.Proc
dd 3			; Info.Id
dd offset sub_449618	; Info.Proc
dd 4			; Info.Id
dd offset sub_449623	; Info.Proc
stru_458138 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_458138.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44963C	; Info.Proc
dd 0			; Info.Id
dd offset sub_449644	; Info.Proc
dd 0			; Info.Id
dd offset sub_44964F	; Info.Proc
dd -1			; Info.Id
dd offset sub_449657	; Info.Proc
stru_458178 dd 19930520h	    ; Magic
dd 12			; Count
dd offset stru_458178.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44966C	; Info.Proc
dd 0			; Info.Id
dd offset sub_449677	; Info.Proc
dd 1			; Info.Id
dd offset sub_449682	; Info.Proc
dd 2			; Info.Id
dd offset sub_44968D	; Info.Proc
dd 3			; Info.Id
dd offset sub_449698	; Info.Proc
dd 4			; Info.Id
dd offset sub_4496A3	; Info.Proc
dd 5			; Info.Id
dd offset sub_4496B1	; Info.Proc
dd 6			; Info.Id
dd offset sub_4496BF	; Info.Proc
dd 7			; Info.Id
dd offset sub_4496CD	; Info.Proc
dd 7			; Info.Id
dd offset sub_4496DB	; Info.Proc
dd 6			; Info.Id
dd offset sub_4496E3	; Info.Proc
dd 2			; Info.Id
dd offset sub_4496EB	; Info.Proc
stru_4581F8 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_4581F8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449700	; Info.Proc
dd 0			; Info.Id
dd offset sub_449708	; Info.Proc
dd 1			; Info.Id
dd offset sub_449713	; Info.Proc
dd 0			; Info.Id
dd offset sub_44971B	; Info.Proc
stru_458238 dd 19930520h	    ; Magic
dd 8			; Count
dd offset stru_458238.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_458298	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd 0			; Info.Id
dd offset sub_449730	; Info.Proc
dd 1			; Info.Id
dd offset sub_449738	; Info.Proc
dd 2			; Info.Id
dd offset sub_449743	; Info.Proc
dd 3			; Info.Id
dd offset sub_44974E	; Info.Proc
dd 3			; Info.Id
dd offset sub_449758	; Info.Proc
dd 5			; Info.Id
dd offset sub_449760	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_458298 dd 0, 6, 7		    ; _unk
dd 1			; Count
dd offset stru_4582B0	; RttiBlkPtr
dd 0
stru_4582B0 _msRttiDscr	<0, 0, 0, offset loc_43C712>
stru_4582C0 dd 19930520h	    ; Magic
dd 7			; Count
dd offset stru_4582C0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449774	; Info.Proc
dd 0			; Info.Id
dd offset sub_44977F	; Info.Proc
dd 1			; Info.Id
dd offset sub_44978A	; Info.Proc
dd 2			; Info.Id
dd offset sub_449795	; Info.Proc
dd 1			; Info.Id
dd offset sub_44979D	; Info.Proc
dd 0			; Info.Id
dd offset sub_4497A5	; Info.Proc
dd -1			; Info.Id
dd offset sub_4497AD	; Info.Proc
stru_458318 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_458318.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_458348	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_458348 dd 0, 0, 1		    ; _unk
dd 1			; Count
dd offset stru_458360	; RttiBlkPtr
dd 0
stru_458360 _msRttiDscr	<0, 0, 0, offset loc_43C8B3>
stru_458370 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_458370.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_4583A0	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_4583A0 dd 0, 0, 1		    ; _unk
dd 1			; Count
dd offset stru_4583B8	; RttiBlkPtr
dd 0
stru_4583B8 _msRttiDscr	<0, 0, 0, offset loc_43C8F1>
stru_4583C8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4583C8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4497D8	; Info.Proc
stru_4583F0 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_4583F0.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_458428	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd 0			; Info.Id
dd offset sub_4497EC	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_458428 dd 0, 1, 2		    ; _unk
dd 1			; Count
dd offset stru_458440	; RttiBlkPtr
dd 0
stru_458440 _msRttiDscr	<0, 0, 0, offset loc_43CA39>
stru_458450 dd 19930520h	    ; Magic
dd 7			; Count
dd offset stru_458450.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_4584A8	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd 0			; Info.Id
dd offset sub_449800	; Info.Proc
dd 0			; Info.Id
dd offset sub_44980A	; Info.Proc
dd 2			; Info.Id
dd offset sub_449812	; Info.Proc
dd 3			; Info.Id
dd offset sub_44981A	; Info.Proc
dd 3			; Info.Id
dd offset sub_449822	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_4584A8 dd 0, 5, 6		    ; _unk
dd 1			; Count
dd offset stru_4584C0	; RttiBlkPtr
dd 0
stru_4584C0 _msRttiDscr	<0, 0, 0, offset loc_43CB8F>
stru_4584D0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_4584D0.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_458500	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_458500 dd 0, 0, 1		    ; _unk
dd 1			; Count
dd offset stru_458518	; RttiBlkPtr
dd 0
stru_458518 _msRttiDscr	<0, 0, 0, offset loc_43CBE4>
stru_458528 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_458528.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_458558	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_458558 dd 0, 0, 1		    ; _unk
dd 1			; Count
dd offset stru_458570	; RttiBlkPtr
dd 0
stru_458570 _msRttiDscr	<0, 0, 0, offset loc_43CC54>
stru_458580 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_458580.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_4585C0	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd 0			; Info.Id
dd offset sub_44984C	; Info.Proc
dd 1			; Info.Id
dd offset sub_449854	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_4585C0 dd 0, 2, 3		    ; _unk
dd 1			; Count
dd offset stru_4585D8	; RttiBlkPtr
dd 0
stru_4585D8 _msRttiDscr	<0, 0, 0, offset loc_43CD2C>
stru_4585E8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4585E8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449868	; Info.Proc
stru_458610 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_458610.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44987C	; Info.Proc
stru_458638 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_458638.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449890	; Info.Proc
stru_458660 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_458660.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4498A4	; Info.Proc
stru_458688 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_458688.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4498B8	; Info.Proc
stru_4586B0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4586B0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4498CC	; Info.Proc
stru_4586D8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_4586D8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4498E0	; Info.Proc
stru_458700 dd 19930520h	    ; Magic
dd 8			; Count
dd offset stru_458700.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_4498F4	; Info.Proc
dd 0			; Info.Id
dd offset sub_4498FC	; Info.Proc
dd -1			; Info.Id
dd offset sub_449904	; Info.Proc
dd 2			; Info.Id
dd offset sub_44990C	; Info.Proc
dd 3			; Info.Id
dd offset sub_449914	; Info.Proc
dd 4			; Info.Id
dd offset sub_44991C	; Info.Proc
dd 5			; Info.Id
dd offset sub_449924	; Info.Proc
dd -1			; Info.Id
dd offset sub_44992C	; Info.Proc
stru_458760 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_458760.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449940	; Info.Proc
stru_458788 dd 19930520h	    ; Magic
dd 32			; Count
dd offset stru_458788.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_4588A8	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449954	; Info.Proc
dd 0			; Info.Id
dd offset sub_44995F	; Info.Proc
dd 1			; Info.Id
dd offset sub_449967	; Info.Proc
dd 2			; Info.Id
dd offset sub_44996F	; Info.Proc
dd 1			; Info.Id
dd offset sub_44997A	; Info.Proc
dd 1			; Info.Id
dd offset sub_449982	; Info.Proc
dd 0			; Info.Id
dd offset sub_44998A	; Info.Proc
dd 6			; Info.Id
dd offset sub_449992	; Info.Proc
dd 6			; Info.Id
dd offset sub_44999A	; Info.Proc
dd 6			; Info.Id
dd offset sub_4499A2	; Info.Proc
dd 8			; Info.Id
dd offset sub_4499AA	; Info.Proc
dd 8			; Info.Id
dd offset sub_4499B2	; Info.Proc
dd 11			; Info.Id
dd offset sub_4499BA	; Info.Proc
dd 6			; Info.Id
dd offset sub_4499C5	; Info.Proc
dd 11			; Info.Id
dd offset sub_4499CD	; Info.Proc
dd 14			; Info.Id
dd offset sub_4499D5	; Info.Proc
dd 14			; Info.Id
dd offset sub_4499DF	; Info.Proc
dd 16			; Info.Id
dd offset sub_4499E7	; Info.Proc
dd 16			; Info.Id
dd offset sub_4499F1	; Info.Proc
dd 18			; Info.Id
dd offset sub_4499F9	; Info.Proc
dd 19			; Info.Id
dd offset sub_449A01	; Info.Proc
dd 6			; Info.Id
dd offset sub_449A09	; Info.Proc
dd 20			; Info.Id
dd offset sub_449A11	; Info.Proc
dd 6			; Info.Id
dd offset sub_449A19	; Info.Proc
dd 19			; Info.Id
dd offset sub_449A21	; Info.Proc
dd 6			; Info.Id
dd offset sub_449A29	; Info.Proc
dd 24			; Info.Id
dd offset sub_449A31	; Info.Proc
dd 26			; Info.Id
dd offset sub_449A39	; Info.Proc
dd 26			; Info.Id
dd 0			; Info.Proc
dd 26			; Info.Id
dd 0			; Info.Proc
dd 24			; Info.Id
dd offset sub_449A43	; Info.Proc
dd 24			; Info.Id
dd offset sub_449A4D	; Info.Proc
stru_4588A8 dd 1Ch, 1Ch, 1Dh	    ; _unk
dd 1			; Count
dd offset stru_4588C0	; RttiBlkPtr
dd 0
stru_4588C0 _msRttiDscr	<0, 0, 0, offset loc_43DF9C>
stru_4588D0 dd 19930520h	    ; Magic
dd 7			; Count
dd offset stru_4588D0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449A60	; Info.Proc
dd 0			; Info.Id
dd offset sub_449A68	; Info.Proc
dd 1			; Info.Id
dd offset sub_449A70	; Info.Proc
dd -1			; Info.Id
dd offset sub_449A78	; Info.Proc
dd 3			; Info.Id
dd offset sub_449A80	; Info.Proc
dd 3			; Info.Id
dd offset sub_449A88	; Info.Proc
dd 5			; Info.Id
dd offset sub_449A90	; Info.Proc
stru_458928 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_458928.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449AA4	; Info.Proc
dd 0			; Info.Id
dd offset sub_449AAC	; Info.Proc
dd 1			; Info.Id
dd offset sub_449AB7	; Info.Proc
dd 2			; Info.Id
dd offset sub_449AC2	; Info.Proc
dd -1			; Info.Id
dd offset sub_449ACA	; Info.Proc
stru_458970 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_458970.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449ADC	; Info.Proc
dd 0			; Info.Id
dd offset sub_449AE7	; Info.Proc
stru_4589A0 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_4589A0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449AFC	; Info.Proc
dd 0			; Info.Id
dd offset sub_449B04	; Info.Proc
dd 1			; Info.Id
dd offset sub_449B0C	; Info.Proc
dd 2			; Info.Id
dd offset sub_449B14	; Info.Proc
dd 3			; Info.Id
dd offset sub_449B1C	; Info.Proc
stru_4589E8 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_4589E8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449B30	; Info.Proc
dd 0			; Info.Id
dd offset sub_449B38	; Info.Proc
dd 0			; Info.Id
dd offset sub_449B42	; Info.Proc
dd 2			; Info.Id
dd offset sub_449B4A	; Info.Proc
dd 3			; Info.Id
dd offset sub_449B52	; Info.Proc
stru_458A30 dd 19930520h	    ; Magic
dd 8			; Count
dd offset stru_458A30.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449B64	; Info.Proc
dd 0			; Info.Id
dd offset sub_449B6C	; Info.Proc
dd 0			; Info.Id
dd offset sub_449B76	; Info.Proc
dd 2			; Info.Id
dd offset sub_449B7E	; Info.Proc
dd 3			; Info.Id
dd offset sub_449B86	; Info.Proc
dd 4			; Info.Id
dd offset sub_449B91	; Info.Proc
dd 5			; Info.Id
dd offset sub_449B9C	; Info.Proc
dd 6			; Info.Id
dd offset sub_449BA4	; Info.Proc
stru_458A90 dd 19930520h	    ; Magic
dd 19			; Count
dd offset stru_458A90.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449BBC	; Info.Proc
dd 0			; Info.Id
dd offset sub_449BC7	; Info.Proc
dd 0			; Info.Id
dd offset sub_449BD1	; Info.Proc
dd 2			; Info.Id
dd offset sub_449BDC	; Info.Proc
dd 3			; Info.Id
dd offset sub_449BE7	; Info.Proc
dd 4			; Info.Id
dd offset sub_449BEF	; Info.Proc
dd 5			; Info.Id
dd offset sub_449BF7	; Info.Proc
dd 4			; Info.Id
dd offset sub_449BF7	; Info.Proc
dd 7			; Info.Id
dd offset sub_449BFF	; Info.Proc
dd 8			; Info.Id
dd offset sub_449C07	; Info.Proc
dd 9			; Info.Id
dd offset sub_449C0F	; Info.Proc
dd 9			; Info.Id
dd offset sub_449C17	; Info.Proc
dd 9			; Info.Id
dd offset sub_449C48	; Info.Proc
dd 10			; Info.Id
dd offset sub_449C1F	; Info.Proc
dd 9			; Info.Id
dd offset sub_449C50	; Info.Proc
dd 13			; Info.Id
dd offset sub_449C27	; Info.Proc
dd 9			; Info.Id
dd offset sub_449C58	; Info.Proc
dd 13			; Info.Id
dd offset sub_449C32	; Info.Proc
dd 17			; Info.Id
dd offset sub_449C3D	; Info.Proc
stru_458B48 dd 19930520h	    ; Magic ; Microsoft	VisualC	2-11/net runtime
dd 2			; Count
dd offset stru_458B48.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset unknown_libname_44; Info.Proc
dd -1			; Info.Id
dd offset sub_449C74	; Info.Proc
stru_458B78 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_458B78.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449C88	; Info.Proc
stru_458BA0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_458BA0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449C9C	; Info.Proc
stru_458BC8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_458BC8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449CB0	; Info.Proc
stru_458BF0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_458BF0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449CC4	; Info.Proc
stru_458C18 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_458C18.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449CD8	; Info.Proc
stru_458C40 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_458C40.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449CEC	; Info.Proc
stru_458C68 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_458C68.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449D00	; Info.Proc
dd 0			; Info.Id
dd offset sub_449D08	; Info.Proc
stru_458C98 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_458C98.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449D1C	; Info.Proc
dd 0			; Info.Id
dd offset sub_449D24	; Info.Proc
dd 1			; Info.Id
dd offset sub_449D2C	; Info.Proc
dd 2			; Info.Id
dd offset sub_449D34	; Info.Proc
stru_458CD8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_458CD8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449D48	; Info.Proc
stru_458D00 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_458D00.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449D5C	; Info.Proc
stru_458D28 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_458D28.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449D70	; Info.Proc
dd -1			; Info.Id
dd offset sub_449D78	; Info.Proc
dd 1			; Info.Id
dd offset sub_449D80	; Info.Proc
stru_458D60 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_458D60.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449D94	; Info.Proc
stru_458D88 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_458D88.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449DA8	; Info.Proc
stru_458DB0 dd 19930520h	    ; Magic
dd 2			; Count
dd offset stru_458DB0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449DBC	; Info.Proc
dd 0			; Info.Id
dd offset sub_449DC4	; Info.Proc
stru_458DE0 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_458DE0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449DDC	; Info.Proc
stru_458E08 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_458E08.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449DF0	; Info.Proc
stru_458E30 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_458E30.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449E04	; Info.Proc
stru_458E58 dd 19930520h	    ; Magic
dd 11			; Count
dd offset stru_458E58.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_458ED0	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd 0			; Info.Id
dd offset sub_449E18	; Info.Proc
dd 0			; Info.Id
dd offset sub_449E22	; Info.Proc
dd 2			; Info.Id
dd offset sub_449E2A	; Info.Proc
dd 3			; Info.Id
dd offset sub_449E32	; Info.Proc
dd 4			; Info.Id
dd offset sub_449E3A	; Info.Proc
dd 2			; Info.Id
dd offset sub_449E42	; Info.Proc
dd 4			; Info.Id
dd offset sub_449E4A	; Info.Proc
dd 4			; Info.Id
dd offset sub_449E52	; Info.Proc
dd 2			; Info.Id
dd offset sub_449E5A	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_458ED0 dd 0, 9, 0Ah	    ; _unk
dd 1			; Count
dd offset stru_458EE8	; RttiBlkPtr
dd 0
stru_458EE8 _msRttiDscr	<0, 0, 0, offset loc_44003E>
stru_458EF8 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_458EF8.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449E6C	; Info.Proc
stru_458F20 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_458F20.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449E80	; Info.Proc
dd 0			; Info.Id
dd offset sub_449E88	; Info.Proc
dd 0			; Info.Id
dd offset sub_449E90	; Info.Proc
dd 0			; Info.Id
dd offset sub_449E9A	; Info.Proc
stru_458F60 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_458F60.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449EAC	; Info.Proc
stru_458F88 dd 19930520h	    ; Magic
dd 3			; Count
dd offset stru_458F88.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449EC0	; Info.Proc
dd -1			; Info.Id
dd offset sub_449EC8	; Info.Proc
dd -1			; Info.Id
dd offset sub_449ED0	; Info.Proc
stru_458FC0 dd 19930520h	    ; Magic
dd 29			; Count
dd offset stru_458FC0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_449EE4	; Info.Proc
dd 0			; Info.Id
dd offset sub_449EEC	; Info.Proc
dd 1			; Info.Id
dd offset sub_449EF4	; Info.Proc
dd 2			; Info.Id
dd offset sub_449EFC	; Info.Proc
dd 3			; Info.Id
dd offset sub_449F04	; Info.Proc
dd 2			; Info.Id
dd offset sub_449F0C	; Info.Proc
dd 4			; Info.Id
dd offset sub_449F14	; Info.Proc
dd 4			; Info.Id
dd offset sub_449F1C	; Info.Proc
dd 2			; Info.Id
dd offset sub_449F24	; Info.Proc
dd 4			; Info.Id
dd offset sub_449F2C	; Info.Proc
dd 2			; Info.Id
dd offset sub_449F34	; Info.Proc
dd 4			; Info.Id
dd offset sub_449F3C	; Info.Proc
dd 2			; Info.Id
dd offset sub_449F44	; Info.Proc
dd 6			; Info.Id
dd offset sub_449F4C	; Info.Proc
dd 4			; Info.Id
dd offset sub_449F54	; Info.Proc
dd 2			; Info.Id
dd offset sub_449F5C	; Info.Proc
dd 4			; Info.Id
dd offset sub_449F64	; Info.Proc
dd 2			; Info.Id
dd offset sub_449F6C	; Info.Proc
dd 6			; Info.Id
dd offset sub_449F74	; Info.Proc
dd 4			; Info.Id
dd offset sub_449F7C	; Info.Proc
dd 2			; Info.Id
dd offset sub_449F84	; Info.Proc
dd 18			; Info.Id
dd offset sub_449F8C	; Info.Proc
dd 18			; Info.Id
dd offset sub_449F94	; Info.Proc
dd 4			; Info.Id
dd offset sub_449F9C	; Info.Proc
dd 2			; Info.Id
dd offset sub_449FA4	; Info.Proc
dd 4			; Info.Id
dd offset sub_449FAC	; Info.Proc
dd 2			; Info.Id
dd offset sub_449FB4	; Info.Proc
dd 4			; Info.Id
dd offset sub_449FBC	; Info.Proc
dd 2			; Info.Id
dd offset sub_449FC4	; Info.Proc
unk_4590C8 db  20h
db    5
db  93h	; ì
db  19h
db    7
db    0
db    0
db    0
db 0E8h	; Ë
db  90h	; ê
db  45h	; E
db    0
db    2
db    0
db    0
db    0
db  20h
db  91h	; ë
db  45h	; E
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db 0D8h	; ÿ
db  9Fh	; ü
db  44h	; D
db    0
db    1
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    1
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    3
db    0
db    0
db    0
db 0E0h	; ‡
db  9Fh	; ü
db  44h	; D
db    0
db    4
db    0
db    0
db    0
db 0E8h	; Ë
db  9Fh	; ü
db  44h	; D
db    0
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db    0
db    0
db    0
db    0
db    2
db    0
db    0
db    0
db    2
db    0
db    0
db    0
db    5
db    0
db    0
db    0
db    1
db    0
db    0
db    0
db  48h	; H
db  91h	; ë
db  45h	; E
db    0
db    0
db    0
db    0
db    0
db    5
db    0
db    0
db    0
db    6
db    0
db    0
db    0
db    1
db    0
db    0
db    0
db  58h	; X
db  91h	; ë
db  45h	; E
db    0
db    9
db    0
db    0
db    0
db  90h	; ê
db 0C4h	; ƒ
db  45h	; E
db    0
db  18h
db    0
db    0
db    0
db  95h	; ï
db    9
db  44h	; D
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db  1Ah
db  0Ah
db  44h	; D
db    0
stru_459168 dd 19930520h	    ; Magic
dd 4			; Count
dd offset stru_459168.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_4591A8	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd 0			; Info.Id
dd offset sub_449FFC	; Info.Proc
dd 1			; Info.Id
dd offset sub_44A004	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_4591A8 dd 0, 2, 3		    ; _unk
dd 1			; Count
dd offset stru_4591C0	; RttiBlkPtr
dd 0
stru_4591C0 _msRttiDscr	<0, 0, 0, offset loc_440AEA>
stru_4591D0 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_4591D0.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_459218	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd 0			; Info.Id
dd offset sub_44A018	; Info.Proc
dd 0			; Info.Id
dd offset sub_44A020	; Info.Proc
dd 2			; Info.Id
dd offset sub_44A028	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_459218 dd 0, 3, 4		    ; _unk
dd 1			; Count
dd offset stru_459230	; RttiBlkPtr
dd 0
stru_459230 _msRttiDscr	<0, 0, 0, offset loc_440BF1>
stru_459240 dd 19930520h	    ; Magic
dd 5			; Count
dd offset stru_459240.Info; InfoPtr
dd 1			; CountDtr
dd offset stru_459288	; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd 0			; Info.Proc
dd 0			; Info.Id
dd offset sub_44A03C	; Info.Proc
dd 1			; Info.Id
dd offset sub_44A044	; Info.Proc
dd 2			; Info.Id
dd offset sub_44A04C	; Info.Proc
dd -1			; Info.Id
dd 0			; Info.Proc
stru_459288 dd 0, 3, 4		    ; _unk
dd 1			; Count
dd offset stru_4592A0	; RttiBlkPtr
dd 0
stru_4592A0 _msRttiDscr	<0, 0, 0, offset loc_440D01>
stru_4592B0 dd 19930520h	    ; Magic
dd 7			; Count
dd offset stru_4592B0.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44A060	; Info.Proc
dd 0			; Info.Id
dd offset sub_44A068	; Info.Proc
dd 1			; Info.Id
dd offset sub_44A070	; Info.Proc
dd 2			; Info.Id
dd offset sub_44A078	; Info.Proc
dd 3			; Info.Id
dd offset sub_44A080	; Info.Proc
dd 4			; Info.Id
dd offset sub_44A088	; Info.Proc
dd 5			; Info.Id
dd offset sub_44A090	; Info.Proc
stru_459308 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_459308.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44A0A4	; Info.Proc
stru_459330 dd 19930520h	    ; Magic
dd 1			; Count
dd offset stru_459330.Info; InfoPtr
dd 0			; CountDtr
dd 0			; DtrPtr
dd 3 dup(0)		; _unk
dd -1			; Info.Id
dd offset sub_44A0B8	; Info.Proc
__IMPORT_DESCRIPTOR_COMCTL32 dd	rva off_459474 ; Import	Name Table
dd 0			; Time stamp
dd 0			; Forwarder Chain
dd rva aComctl32_dll	; DLL Name
dd rva PropertySheetA	; Import Address Table
__IMPORT_DESCRIPTOR_comdlg32 dd	rva off_45991C ; Import	Name Table
dd 0			; Time stamp
dd 0			; Forwarder Chain
dd rva aComdlg32_dll	; DLL Name
dd rva GetOpenFileNameA	; Import Address Table
__IMPORT_DESCRIPTOR_MPR	dd rva off_45965C ; Import Name	Table
dd 0			; Time stamp
dd 0			; Forwarder Chain
dd rva aMpr_dll		; DLL Name
dd rva __imp_WNetAddConnection2W ; Import Address Table
__IMPORT_DESCRIPTOR_GDI32 dd rva off_4594A0 ; Import Name Table
dd 0			; Time stamp
dd 0			; Forwarder Chain
dd rva aGdi32_dll	; DLL Name
dd rva DeleteObject	; Import Address Table
__IMPORT_DESCRIPTOR_OLEAUT32 dd	rva dword_459714 ; Import Name Table
dd 0			; Time stamp
dd 0			; Forwarder Chain
dd rva aOleaut32_dll	; DLL Name
dd rva VariantCopy	; Import Address Table
__IMPORT_DESCRIPTOR_ole32 dd rva off_459928 ; Import Name Table
dd 0			; Time stamp
dd 0			; Forwarder Chain
dd rva aOle32_dll	; DLL Name
dd rva OleUninitialize	; Import Address Table
__IMPORT_DESCRIPTOR_USER32 dd rva off_459768 ; Import Name Table
dd 0			; Time stamp
dd 0			; Forwarder Chain
dd rva aUser32_dll	; DLL Name
dd rva GetWindowTextLengthW ; Import Address Table
__IMPORT_DESCRIPTOR_ADVAPI32 dd	rva off_459448 ; Import	Name Table
dd 0			; Time stamp
dd 0			; Forwarder Chain
dd rva aAdvapi32_dll	; DLL Name
dd rva RegOpenKeyExA	; Import Address Table
__IMPORT_DESCRIPTOR_SHELL32 dd rva off_459730 ;	Import Name Table
dd 0			; Time stamp
dd 0			; Forwarder Chain
dd rva aShell32_dll	; DLL Name
dd rva SHGetSpecialFolderLocation ; Import Address Table
__IMPORT_DESCRIPTOR_MSVCRT dd rva off_45968C ; Import Name Table
dd 0			; Time stamp
dd 0			; Forwarder Chain
dd rva aMsvcrt_dll	; DLL Name
dd rva __imp_memcmp	; Import Address Table
__IMPORT_DESCRIPTOR_KERNEL32 dd	rva off_4594A8 ; Import	Name Table
dd 0			; Time stamp
dd 0			; Forwarder Chain
dd rva aKernel32_dll	; DLL Name
dd rva EnterCriticalSection ; Import Address Table
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
;
; Import names for ADVAPI32.dll
;
off_459448 dd rva word_45A37A
dd rva word_45A38A
dd rva word_45A398
dd rva word_45A3A8
dd rva word_45A3B8
dd rva word_45A3CA
dd rva word_45A3DC
dd rva word_45A3F0
dd rva word_45A404
dd rva word_45A368
dd 0
;
; Import names for COMCTL32.dll
;
off_459474 dd rva word_4599FE
dd rva word_4599EC
dd rva word_4599D4
dd rva word_4599C2
dd rva word_4599AC
dd 80000011h
dd rva word_459992
dd rva word_45997C
dd rva word_459968
dd rva word_459954
dd 0
;
; Import names for GDI32.dll
;
off_4594A0 dd rva word_459B50
dd 0
;
; Import names for KERNEL32.dll
;
off_4594A8 dd rva word_45A708
dd rva word_45AEC2
dd rva word_45AEA6
dd rva word_45AE9A
dd rva word_45AE8C
dd rva word_45AE7C
dd rva word_45AE6C
dd rva word_45AE56
dd rva word_45AE46
dd rva word_45AE34
dd rva word_45AE24
dd rva word_45AE18
dd rva word_45AE06
dd rva word_45ADFA
dd rva word_45ADE6
dd rva word_45ADCE
dd rva word_45ADB6
dd rva word_45ADA6
dd rva word_45AD8E
dd rva word_45AD76
dd rva word_45AD5E
dd rva word_45AD4C
dd rva word_45AD3A
dd rva word_45AD2A
dd rva word_45AD1E
dd rva word_45AD12
dd rva word_45AD00
dd rva word_45ACEE
dd rva word_45ACE0
dd rva word_45ACD2
dd rva word_45ACB8
dd rva word_45AC9E
dd rva word_45AC7E
dd rva word_45AC5E
dd rva word_45AC40
dd rva word_45AC30
dd rva word_45AC20
dd rva word_45AC0E
dd rva word_45ABFC
dd rva word_45ABF0
dd rva word_45ABDC
dd rva word_45ABC8
dd rva word_45ABB8
dd rva word_45ABA8
dd rva word_45AB90
dd rva word_45AB7C
dd rva word_45AB68
dd rva word_45AB5A
dd rva word_45AB4C
dd rva word_45AB38
dd rva word_45AB24
dd rva word_45AB18
dd rva word_45AB04
dd rva word_45AAEE
dd rva word_45AAE2
dd rva word_45AACE
dd rva word_45AAB8
dd rva word_45AAA8
dd rva word_45AA9A
dd rva word_45AA8C
dd rva word_45AA74
dd rva word_45AA5C
dd rva word_45AA4A
dd rva word_45AA38
dd rva word_45AA2C
dd rva word_45AA16
dd rva word_45AA00
dd rva word_45A9F0
dd rva word_45A9DE
dd rva word_45A9CC
dd rva word_45A9B6
dd rva word_45A9A0
dd rva word_45A990
dd rva word_45A97C
dd rva word_45A968
dd rva word_45A95C
dd rva word_45A950
dd rva word_45A940
dd rva word_45A926
dd rva word_45A90C
dd rva word_45A904
dd rva word_45A8F6
dd rva word_45A8E4
dd rva word_45A8D6
dd rva word_45A8C8
dd rva word_45A8BA
dd rva word_45A8AC
dd rva word_45A89C
dd rva word_45A882
dd rva word_45A86A
dd rva word_45A858
dd rva word_45A844
dd rva word_45A838
dd rva word_45A824
dd rva word_45A818
dd rva word_45A802
dd rva word_45A7E4
dd rva word_45A7CA
dd rva word_45A7BA
dd rva word_45A7AC
dd rva word_45A79A
dd rva word_45A78A
dd rva word_45A778
dd rva word_45A760
dd rva word_45A750
dd rva word_45A738
dd rva word_45A720
dd rva word_45A6F0
dd 0
;
; Import names for MPR.dll
;
off_45965C dd rva word_459B32
dd rva word_459A54
dd rva word_459A64
dd rva word_459A74
dd rva word_459A84
dd rva word_459A98
dd rva word_459AAC
dd rva word_459AC6
dd rva word_459AE0
dd rva word_459AFE
dd rva word_459B1C
dd 0
;
; Import names for MSVCRT.dll
;
off_45968C dd rva word_45A554
dd rva word_45A68E
dd rva word_45A682
dd rva word_45A672
dd rva word_45A668
dd rva word_45A6E2
dd rva word_45A6D0
dd rva word_45A6C2
dd rva word_45A660
dd rva word_45A652
dd rva word_45A64A
dd rva word_45A636
dd rva word_45A62C
dd rva word_45A61E
dd rva word_45A606
dd rva word_45A5E6
dd rva word_45A5D4
dd rva word_45A5CA
dd rva word_45A5C0
dd rva word_45A5B8
dd rva word_45A5B0
dd rva word_45A6B2
dd rva word_45A5A8
dd rva word_45A59E
dd rva word_45A52A
dd rva word_45A53E
dd rva word_45A6A2
dd rva word_45A55E
dd rva word_45A56A
dd rva word_45A574
dd rva word_45A57E
dd rva word_45A588
dd rva word_45A594
dd 0
;
; Import names for OLEAUT32.dll
;
dword_459714 dd	8000000Ah
dd 80000009h
dd 80000002h
dd 80000006h
dd 80000096h
dd 80000095h
dd 0
;
; Import names for SHELL32.dll
;
off_459730 dd rva word_45A47E
dd rva word_45A470
dd rva word_45A45C
dd rva word_45A49C
dd rva word_45A434
dd rva word_45A422
dd rva word_45A4AC
dd rva word_45A4BE
dd rva word_45A4CC
dd rva word_45A4F0
dd rva word_45A4DE
dd rva word_45A508
dd rva word_45A446
dd 0
;
; Import names for USER32.dll
;
off_459768 dd rva word_45A2D2
dd rva word_45A2EA
dd rva word_45A300
dd rva word_45A318
dd rva word_45A2C0
dd rva word_45A2A8
dd rva word_45A296
dd rva word_45A284
dd rva word_45A272
dd rva word_45A260
dd rva word_45A24E
dd rva word_45A23C
dd rva word_45A22C
dd rva word_45A21E
dd rva word_45A210
dd rva word_45A202
dd rva word_45A1F4
dd rva word_45A1E2
dd rva word_45A1D0
dd rva word_45A1BC
dd rva word_45A1A8
dd rva word_45A194
dd rva word_45A180
dd rva word_45A174
dd rva word_45A160
dd rva word_45A14E
dd rva word_45A13C
dd rva word_45A12C
dd rva word_45A11E
dd rva word_45A110
dd rva word_45A102
dd rva word_45A0F4
dd rva word_45A0E8
dd rva word_45A0DC
dd rva word_45A0D0
dd rva word_45A0BE
dd rva word_45A0AE
dd rva word_45A09C
dd rva word_45A088
dd rva word_45A074
dd rva word_45A064
dd rva word_45A052
dd rva word_45A040
dd rva word_45A026
dd rva word_45A014
dd rva word_459FF8
dd rva word_459FE8
dd rva word_459FD6
dd rva word_459FC4
dd rva word_459FB4
dd rva word_459FA8
dd rva word_459F96
dd rva word_459F84
dd rva word_459F72
dd rva word_459F64
dd rva word_459F52
dd rva word_459F44
dd rva word_459F2E
dd rva word_459F1E
dd rva word_459F14
dd rva word_459F08
dd rva word_459EFE
dd rva word_459EF0
dd rva word_459EDE
dd rva word_459ED0
dd rva word_459EC2
dd rva word_459EB6
dd rva word_459EA0
dd rva word_459E8E
dd rva word_459E7A
dd rva word_459E6C
dd rva word_459E5C
dd rva word_459E4E
dd rva word_459E42
dd rva word_459E32
dd rva word_459E24
dd rva word_459E12
dd rva word_459E04
dd rva word_459DF6
dd rva word_459DE4
dd rva word_459DD2
dd rva word_459DBE
dd rva word_459DB0
dd rva word_459D98
dd rva word_459D84
dd rva word_459D70
dd rva word_459D5C
dd rva word_459D4E
dd rva word_459D36
dd rva word_459D22
dd rva word_459D16
dd rva word_459D08
dd rva word_459CF2
dd rva word_459CDC
dd rva word_459CCA
dd rva word_459CBE
dd rva word_459CAE
dd rva word_459CA0
dd rva word_459C92
dd rva word_459C80
dd rva word_459C70
dd rva word_459C5E
dd rva word_459C4C
dd rva word_459C40
dd rva word_459C30
dd rva word_45A32A
dd rva word_45A33C
dd rva word_45A34C
dd 0
;
; Import names for comdlg32.dll
;
off_45991C dd rva word_459A32
dd rva word_459A1E
dd 0
;
; Import names for ole32.dll
;
off_459928 dd rva word_459B9A
dd rva word_459B8A
dd rva word_459B78
dd rva word_459BAC
dd rva word_459C02
dd rva word_459C12
dd rva word_459BBC
dd rva word_459BD0
dd rva word_459BF0
dd rva word_459BE2
dd 0
word_459954 dw 38h
db 'ImageList_Destroy',0
word_459968 dw 37h
db 'ImageList_Create',0
align 4
word_45997C dw 34h
db 'ImageList_AddMasked',0
word_459992 dw 47h
db 'ImageList_GetImageCount',0
word_4599AC dw 8
db 'CreateStatusWindowW',0
word_4599C2 dw 0Ah
db 'CreateToolbarEx',0
word_4599D4 dw 5Dh
db 'InitCommonControlsEx',0
align 4
word_4599EC dw 65h
db 'PropertySheetW',0
align 2
word_4599FE dw 64h
db 'PropertySheetA',0
align 10h
aComctl32_dll db 'COMCTL32.dll',0
align 2
word_459A1E dw 0Ah
db 'GetOpenFileNameW',0
align 2
word_459A32 dw 9
db 'GetOpenFileNameA',0
align 2
aComdlg32_dll db 'comdlg32.dll',0
align 4
word_459A54 dw 40h
db 'WNetOpenEnumA',0
word_459A64 dw 41h
db 'WNetOpenEnumW',0
word_459A74 dw 11h
db 'WNetCloseEnum',0
word_459A84 dw 1Ch
db 'WNetEnumResourceA',0
word_459A98 dw 1Dh
db 'WNetEnumResourceW',0
word_459AAC dw 38h
db 'WNetGetResourceParentA',0
align 2
word_459AC6 dw 39h
db 'WNetGetResourceParentW',0
align 10h
word_459AE0 dw 36h
db 'WNetGetResourceInformationA',0
word_459AFE dw 37h
db 'WNetGetResourceInformationW',0
word_459B1C dw 6
db 'WNetAddConnection2A',0
word_459B32 dw 7
db 'WNetAddConnection2W',0
aMpr_dll db 'MPR.dll',0
word_459B50 dw 8Fh
db 'DeleteObject',0
align 10h
aGdi32_dll db 'GDI32.dll',0
aOleaut32_dll db 'OLEAUT32.dll',0
align 4
word_459B78 dw 63h
db 'CoTaskMemAlloc',0
align 2
word_459B8A dw 64h
db 'CoTaskMemFree',0
word_459B9A dw 104h
db 'OleUninitialize',0
word_459BAC dw 0EDh
db 'OleInitialize',0
word_459BBC dw 112h
db 'RegisterDragDrop',0
align 10h
word_459BD0 dw 114h
db 'RevokeDragDrop',0
align 2
word_459BE2 dw 88h
db 'DoDragDrop',0
align 10h
word_459BF0 dw 68h
db 'CoUninitialize',0
align 2
word_459C02 dw 3Ah
db 'CoInitialize',0
align 2
word_459C12 dw 113h
db 'ReleaseStgMedium',0
align 2
aOle32_dll db 'ole32.dll',0
word_459C30 dw 23Ah
db 'SendMessageA',0
align 10h
word_459C40 dw 255h
db 'SetFocus',0
align 4
word_459C4C dw 27Fh
db 'SetWindowLongA',0
align 2
word_459C5E dw 16Eh
db 'GetWindowLongA',0
align 10h
word_459C70 dw 99h
db 'DestroyWindow',0
word_459C80 dw 60h
db 'CreateWindowExA',0
word_459C92 dw 1B7h
db 'LoadBitmapA',0
word_459CA0 dw 291h
db 'ShowWindow',0
align 2
word_459CAE dw 0C4h
db 'EnableWindow',0
align 2
word_459CBE dw 0C6h
db 'EndDialog',0
word_459CCA dw 203h
db 'PostQuitMessage',0
word_459CDC dw 281h
db 'SetWindowPlacement',0
align 2
word_459CF2 dw 173h
db 'GetWindowPlacement',0
align 4
word_459D08 dw 1B9h
db 'LoadCursorA',0
word_459D16 dw 1BDh
db 'LoadIconA',0
word_459D22 dw 0A1h
db 'DispatchMessageA',0
align 2
word_459D36 dw 2A6h
db 'TranslateAcceleratorA',0
word_459D4E dw 13Ah
db 'GetMessageA',0
word_459D5C dw 1B5h
db 'LoadAcceleratorsA',0
word_459D70 dw 0A2h
db 'DispatchMessageW',0
align 4
word_459D84 dw 2A9h
db 'TranslateMessage',0
align 4
word_459D98 dw 2A7h
db 'TranslateAcceleratorW',0
word_459DB0 dw 13Eh
db 'GetMessageW',0
word_459DBE dw 1B6h
db 'LoadAcceleratorsW',0
word_459DD2 dw 8Eh
db 'DefWindowProcA',0
align 4
word_459DE4 dw 8Fh
db 'DefWindowProcW',0
align 2
word_459DF6 dw 0F3h
db 'GetCapture',0
align 4
word_459E04 dw 243h
db 'SetCapture',0
align 2
word_459E12 dw 228h
db 'ReleaseCapture',0
align 4
word_459E24 dw 1E5h
db 'MessageBoxW',0
word_459E32 dw 0FFh
db 'GetClientRect',0
word_459E42 dw 1B2h
db 'IsZoomed',0
align 2
word_459E4E dw 1EBh
db 'MoveWindow',0
align 4
word_459E5C dw 174h
db 'GetWindowRect',0
word_459E6C dw 111h
db 'GetDlgItem',0
align 2
word_459E7A dw 3Bh
db 'CheckRadioButton',0
align 2
word_459E8E dw 38h
db 'CheckDlgButton',0
align 10h
word_459EA0 dw 1A3h
db 'IsDlgButtonChecked',0
align 2
word_459EB6 dw 145h
db 'GetParent',0
word_459EC2 dw 97h
db 'DestroyMenu',0
word_459ED0 dw 159h
db 'GetSubMenu',0
align 2
word_459EDE dw 5Eh
db 'CreatePopupMenu',0
word_459EF0 dw 0B8h
db 'DrawMenuBar',0
word_459EFE dw 25Ch
db 'SetMenu',0
word_459F08 dw 1C5h
db 'LoadMenuA',0
word_459F14 dw 12Ch
db 'GetMenu',0
word_459F1E dw 39h
db 'CheckMenuItem',0
word_459F2E dw 3Ah
db 'CheckMenuRadioItem',0
align 4
word_459F44 dw 22Ah
db 'RemoveMenu',0
align 2
word_459F52 dw 0C2h
db 'EnableMenuItem',0
align 4
word_459F64 dw 121h
db 'GetKeyState',0
word_459F72 dw 1Bh
db 'CallWindowProcA',0
word_459F84 dw 1Ch
db 'CallWindowProcW',0
word_459F96 dw 1D5h
db 'MapVirtualKeyA',0
align 4
word_459FA8 dw 279h
db 'SetTimer',0
align 4
word_459FB4 dw 2BAh
db 'UpdateWindow',0
align 4
word_459FC4 dw 193h
db 'InvalidateRect',0
align 2
word_459FD6 dw 280h
db 'SetWindowLongW',0
align 4
word_459FE8 dw 201h
db 'PostMessageA',0
align 4
word_459FF8 dw 219h
db 'RegisterClipboardFormatA',0
align 4
word_45A014 dw 2D2h
db 'WindowFromPoint',0
word_45A026 dw 3Dh
db 'ChildWindowFromPointEx',0
align 10h
word_45A040 dw 1AEh
db 'IsWindowEnabled',0
word_45A052 dw 230h
db 'ScreenToClient',0
align 4
word_45A064 dw 10Bh
db 'GetCursorPos',0
align 4
word_45A074 dw 2A4h
db 'TrackPopupMenuEx',0
align 4
word_45A088 dw 132h
db 'GetMenuItemCount',0
align 4
word_45A09C dw 40h
db 'ClientToScreen',0
align 2
word_45A0AE dw 1D4h
db 'MapDialogRect',0
word_45A0BE dw 252h
db 'SetDlgItemTextA',0
word_45A0D0 dw 2D5h
db 'wsprintfA',0
word_45A0DC dw 24Ch
db 'SetCursor',0
word_45A0E8 dw 1B4h
db 'KillTimer',0
word_45A0F4 dw 34h
db 'CharUpperA',0
align 2
word_45A102 dw 37h
db 'CharUpperW',0
align 10h
word_45A110 dw 26h
db 'CharLowerA',0
align 2
word_45A11E dw 29h
db 'CharLowerW',0
align 4
word_45A12C dw 1F5h
db 'OpenClipboard',0
word_45A13C dw 42h
db 'CloseClipboard',0
align 2
word_45A14E dw 0C1h
db 'EmptyClipboard',0
align 10h
word_45A160 dw 249h
db 'SetClipboardData',0
align 4
word_45A174 dw 2Dh
db 'CharPrevA',0
word_45A180 dw 135h
db 'GetMenuItemInfoW',0
align 4
word_45A194 dw 134h
db 'GetMenuItemInfoA',0
align 4
word_45A1A8 dw 262h
db 'SetMenuItemInfoW',0
align 4
word_45A1BC dw 261h
db 'SetMenuItemInfoA',0
align 10h
word_45A1D0 dw 18Fh
db 'InsertMenuItemW',0
word_45A1E2 dw 18Eh
db 'InsertMenuItemA',0
word_45A1F4 dw 8
db 'AppendMenuA',0
word_45A202 dw 9
db 'AppendMenuW',0
word_45A210 dw 1CAh
db 'LoadStringA',0
word_45A21E dw 1CBh
db 'LoadStringW',0
word_45A22C dw 23Fh
db 'SendMessageW',0
align 4
word_45A23C dw 215h
db 'RegisterClassA',0
align 2
word_45A24E dw 218h
db 'RegisterClassW',0
align 10h
word_45A260 dw 61h
db 'CreateWindowExW',0
word_45A272 dw 285h
db 'SetWindowTextA',0
align 4
word_45A284 dw 286h
db 'SetWindowTextW',0
align 2
word_45A296 dw 177h
db 'GetWindowTextA',0
align 4
word_45A2A8 dw 178h
db 'GetWindowTextLengthA',0
align 10h
word_45A2C0 dw 17Ah
db 'GetWindowTextW',0
align 2
word_45A2D2 dw 179h
db 'GetWindowTextLengthW',0
align 2
word_45A2EA dw 10Fh
db 'GetDialogBaseUnits',0
align 10h
word_45A300 dw 298h
db 'SystemParametersInfoA',0
word_45A318 dw 9Eh
db 'DialogBoxParamA',0
word_45A32A dw 9Fh
db 'DialogBoxParamW',0
word_45A33C dw 0F6h
db 'GetClassInfoA',0
word_45A34C dw 0F9h
db 'GetClassInfoW',0
aUser32_dll db 'USER32.dll',0
align 4
word_45A368 dw 1CDh
db 'RegCreateKeyExA',0
word_45A37A dw 1E2h
db 'RegOpenKeyExA',0
word_45A38A dw 1C9h
db 'RegCloseKey',0
word_45A398 dw 1D0h
db 'RegDeleteKeyA',0
word_45A3A8 dw 1D6h
db 'RegEnumKeyExA',0
word_45A3B8 dw 1F9h
db 'RegSetValueExA',0
align 2
word_45A3CA dw 1FAh
db 'RegSetValueExW',0
align 4
word_45A3DC dw 1ECh
db 'RegQueryValueExA',0
align 10h
word_45A3F0 dw 1EDh
db 'RegQueryValueExW',0
align 4
word_45A404 dw 124h
db 'GetUserNameW',0
align 4
aAdvapi32_dll db 'ADVAPI32.dll',0
align 2
word_45A422 dw 0ACh
db 'SHGetFileInfoA',0
align 4
word_45A434 dw 109h
db 'ShellExecuteExA',0
word_45A446 dw 0A7h
db 'SHGetDesktopFolder',0
align 4
word_45A45C dw 9Ah
db 'SHFileOperationA',0
align 10h
word_45A470 dw 0B7h
db 'SHGetMalloc',0
word_45A47E dw 0C3h
db 'SHGetSpecialFolderLocation',0
align 4
word_45A49C dw 107h
db 'ShellExecuteA',0
word_45A4AC dw 7Eh
db 'SHChangeNotify',0
align 2
word_45A4BE dw 1Fh
db 'DragFinish',0
align 4
word_45A4CC dw 21h
db 'DragQueryFileA',0
align 2
word_45A4DE dw 23h
db 'DragQueryFileW',0
align 10h
word_45A4F0 dw 0BCh
db 'SHGetPathFromIDListA',0
align 4
word_45A508 dw 79h
db 'SHBrowseForFolderA',0
align 2
aShell32_dll db	'SHELL32.dll',0
word_45A52A dw 49h
db '__CxxFrameHandler',0
word_45A53E dw 41h
db '_CxxThrowException',0
align 4
word_45A554 dw 296h
db 'memcmp',0
align 2
word_45A55E dw 192h
db '_purecall',0
word_45A56A dw 299h
db 'memset',0
align 4
word_45A574 dw 298h
db 'memmove',0
word_45A57E dw 297h
db 'memcpy',0
align 4
word_45A588 dw 1EAh
db '_wcsicmp',0
align 4
word_45A594 dw 2E6h
db 'wcslen',0
align 2
word_45A59E dw 291h
db 'malloc',0
align 4
word_45A5A8 dw 25Eh
db 'free',0
align 10h
word_45A5B0 dw 2B4h
db 'srand',0
word_45A5B8 dw 2A6h
db 'rand',0
align 10h
word_45A5C0 dw 2E8h
db 'wcsncmp',0
word_45A5CA dw 2BEh
db 'strlen',0
align 4
word_45A5D4 dw 0A6h
db '_beginthreadex',0
align 2
word_45A5E6 dw 0CAh
db '_except_handler3',0
align 2
aMsvcrt_dll db 'MSVCRT.dll',0
align 2
word_45A606 dw 0Eh
db '??1type_info@@UAE@XZ',0
align 2
word_45A61E dw 55h
db '__dllonexit',0
word_45A62C dw 186h
db '_onexit',0
word_45A636 dw 2Eh
db '?terminate@@YAXXZ',0
word_45A64A dw 0D3h
db '_exit',0
word_45A652 dw 48h
db '_XcptFilter',0
word_45A660 dw 249h
db 'exit',0
align 4
word_45A668 dw 8Fh
db '_acmdln',0
word_45A672 dw 58h
db '__getmainargs',0
word_45A682 dw 10Fh
db '_initterm',0
word_45A68E dw 83h
db '__setusermatherr',0
align 2
word_45A6A2 dw 9Dh
db '_adjust_fdiv',0
align 2
word_45A6B2 dw 6Ah
db '__p__commode',0
align 2
word_45A6C2 dw 6Fh
db '__p__fmode',0
align 10h
word_45A6D0 dw 81h
db '__set_app_type',0
align 2
word_45A6E2 dw 0B7h
db '_controlfp',0
align 10h
word_45A6F0 dw 247h
db 'LeaveCriticalSection',0
align 4
word_45A708 dw 8Fh
db 'EnterCriticalSection',0
align 10h
word_45A720 dw 222h
db 'InterlockedIncrement',0
align 4
word_45A738 dw 21Eh
db 'InterlockedDecrement',0
align 10h
word_45A750 dw 169h
db 'GetLastError',0
align 10h
word_45A760 dw 7Ah
db 'DeleteCriticalSection',0
word_45A778 dw 198h
db 'GetProcAddress',0
align 2
word_45A78A dw 1DFh
db 'GetVersionExA',0
word_45A79A dw 109h
db 'GetCommandLineW',0
word_45A7AC dw 0EFh
db 'FreeLibrary',0
word_45A7BA dw 248h
db 'LoadLibraryA',0
align 2
word_45A7CA dw 10Bh
db 'GetCompressedFileSizeW',0
align 4
word_45A7E4 dw 0D2h
db 'FindNextChangeNotification',0
align 2
word_45A802 dw 385h
db 'WaitForSingleObject',0
word_45A818 dw 3Dh
db 'CopyFileA',0
word_45A824 dw 177h
db 'GetModuleHandleA',0
align 4
word_45A838 dw 40h
db 'CopyFileW',0
word_45A844 dw 17Ah
db 'GetModuleHandleW',0
align 4
word_45A858 dw 0Bh
db 'AreFileApisANSI',0
word_45A86A dw 1DAh
db 'GetUserDefaultLangID',0
align 2
word_45A882 dw 1B7h
db 'GetSystemDefaultLangID',0
align 4
word_45A89C dw 200h
db 'GlobalUnlock',0
align 4
word_45A8AC dw 1F9h
db 'GlobalLock',0
align 2
word_45A8BA dw 1FDh
db 'GlobalSize',0
align 4
word_45A8C8 dw 1F5h
db 'GlobalFree',0
align 2
word_45A8D6 dw 1EEh
db 'GlobalAlloc',0
word_45A8E4 dw 33h
db 'CompareFileTime',0
word_45A8F6 dw 2Eh
db 'CloseHandle',0
word_45A904 dw 349h
db 'Sleep',0
word_45A90C dw 383h
db 'WaitForMultipleObjects',0
align 2
word_45A926 dw 0BBh
db 'FileTimeToLocalFileTime',0
word_45A940 dw 1D5h
db 'GetTickCount',0
align 10h
word_45A950 dw 3BFh
db 'lstrlenA',0
align 4
word_45A95C dw 3B0h
db 'lstrcatA',0
align 4
word_45A968 dw 326h
db 'SetPriorityClass',0
align 4
word_45A97C dw 13Ah
db 'GetCurrentProcess',0
word_45A990 dw 14Bh
db 'GetDriveTypeA',0
word_45A9A0 dw 26Bh
db 'MultiByteToWideChar',0
word_45A9B6 dw 389h
db 'WideCharToMultiByte',0
word_45A9CC dw 249h
db 'LoadLibraryExA',0
align 2
word_45A9DE dw 24Ah
db 'LoadLibraryExW',0
align 10h
word_45A9F0 dw 24Bh
db 'LoadLibraryW',0
align 10h
word_45AA00 dw 175h
db 'GetModuleFileNameA',0
align 2
word_45AA16 dw 176h
db 'GetModuleFileNameW',0
align 4
word_45AA2C dw 252h
db 'LocalFree',0
word_45AA38 dw 0EAh
db 'FormatMessageA',0
align 2
word_45AA4A dw 0EBh
db 'FormatMessageW',0
align 4
word_45AA5C dw 1E9h
db 'GetWindowsDirectoryA',0
align 4
word_45AA74 dw 1EAh
db 'GetWindowsDirectoryW',0
align 4
word_45AA8C dw 314h
db 'SetFileTime',0
word_45AA9A dw 50h
db 'CreateFileW',0
word_45AAA8 dw 31Dh
db 'SetLastError',0
align 4
word_45AAB8 dw 30Eh
db 'SetFileAttributesA',0
align 2
word_45AACE dw 2BAh
db 'RemoveDirectoryA',0
align 2
word_45AAE2 dw 264h
db 'MoveFileA',0
word_45AAEE dw 30Fh
db 'SetFileAttributesW',0
align 4
word_45AB04 dw 2BBh
db 'RemoveDirectoryW',0
align 4
word_45AB18 dw 267h
db 'MoveFileW',0
word_45AB24 dw 45h
db 'CreateDirectoryA',0
align 4
word_45AB38 dw 48h
db 'CreateDirectoryW',0
align 4
word_45AB4C dw 7Ch
db 'DeleteFileA',0
word_45AB5A dw 7Dh
db 'DeleteFileW',0
word_45AB68 dw 161h
db 'GetFullPathNameA',0
align 4
word_45AB7C dw 162h
db 'GetFullPathNameW',0
align 10h
word_45AB90 dw 139h
db 'GetCurrentDirectoryW',0
align 4
word_45ABA8 dw 1CBh
db 'GetTempPathA',0
align 4
word_45ABB8 dw 1CCh
db 'GetTempPathW',0
align 4
word_45ABC8 dw 1C9h
db 'GetTempFileNameA',0
align 4
word_45ABDC dw 1CAh
db 'GetTempFileNameW',0
align 10h
word_45ABF0 dw 0C5h
db 'FindClose',0
word_45ABFC dw 0C9h
db 'FindFirstFileA',0
align 2
word_45AC0E dw 0CCh
db 'FindFirstFileW',0
align 10h
word_45AC20 dw 0D3h
db 'FindNextFileA',0
word_45AC30 dw 0D4h
db 'FindNextFileW',0
word_45AC40 dw 0C6h
db 'FindCloseChangeNotification',0
word_45AC5E dw 0C7h
db 'FindFirstChangeNotificationA',0
align 2
word_45AC7E dw 0C8h
db 'FindFirstChangeNotificationW',0
align 2
word_45AC9E dw 16Eh
db 'GetLogicalDriveStringsA',0
word_45ACB8 dw 16Fh
db 'GetLogicalDriveStringsW',0
word_45ACD2 dw 4Dh
db 'CreateFileA',0
word_45ACE0 dw 15Bh
db 'GetFileSize',0
word_45ACEE dw 310h
db 'SetFilePointer',0
align 10h
word_45AD00 dw 83h
db 'DeviceIoControl',0
word_45AD12 dw 2ABh
db 'ReadFile',0
align 2
word_45AD1E dw 397h
db 'WriteFile',0
word_45AD2A dw 305h
db 'SetEndOfFile',0
align 2
word_45AD3A dw 63h
db 'CreateProcessW',0
align 4
word_45AD4C dw 60h
db 'CreateProcessA',0
align 2
word_45AD5E dw 0BCh
db 'FileTimeToSystemTime',0
align 2
word_45AD76 dw 0BAh
db 'FileTimeToDosDateTime',0
word_45AD8E dw 34Eh
db 'SystemTimeToFileTime',0
align 2
word_45ADA6 dw 1BEh
db 'GetSystemTime',0
word_45ADB6 dw 1E1h
db 'GetVolumeInformationA',0
word_45ADCE dw 1E2h
db 'GetVolumeInformationW',0
word_45ADE6 dw 145h
db 'GetDiskFreeSpaceA',0
word_45ADFA dw 20Ch
db 'HeapFree',0
align 2
word_45AE06 dw 19Bh
db 'GetProcessHeap',0
align 4
word_45AE18 dw 206h
db 'HeapAlloc',0
word_45AE24 dw 1B1h
db 'GetStdHandle',0
align 4
word_45AE34 dw 365h
db 'UnmapViewOfFile',0
word_45AE46 dw 25Eh
db 'MapViewOfFile',0
word_45AE56 dw 4Eh
db 'CreateFileMappingA',0
align 4
word_45AE6C dw 49h
db 'CreateEventA',0
align 4
word_45AE7C dw 375h
db 'VirtualAlloc',0
align 4
word_45AE8C dw 378h
db 'VirtualFree',0
word_45AE9A dw 30Bh
db 'SetEvent',0
align 2
word_45AEA6 dw 219h
db 'InitializeCriticalSection',0
word_45AEC2 dw 1AFh
db 'GetStartupInfoA',0
aKernel32_dll db 'KERNEL32.dll',0
align 200h
_rdata ends

; Section 3. (virtual address 0005B000)
; Virtual size			: 00004AAC (  19116.)
; Section size in file		: 00002600 (   9728.)
; Offset to raw	data for section: 00059600
; Flags	C0000040: Data Readable	Writable
; Alignment	: default

; Segment type:	Pure data
; Segment permissions: Read/Write
_data segment para public 'DATA' use32
assume cs:_data
;org 45B000h
unk_45B000 db	 0
db    0
db    0
db    0
db  0Ah
db  2Eh	; .
db  40h	; @
db    0
db  4Bh	; K
db  2Eh	; .
db  40h	; @
db    0
db 0B2h	; ≤
db  56h	; V
db  40h	; @
db    0
db 0F3h	; Û
db  56h	; V
db  40h	; @
db    0
db  34h	; 4
db  57h	; W
db  40h	; @
db    0
db 0AAh	; ™
db 0ADh	; ≠
db  40h	; @
db    0
db  27h	; '
db 0AEh	; Æ
db  40h	; @
db    0
db  99h	; ô
db 0AFh	; Ø
db  40h	; @
db    0
db  34h	; 4
db 0BCh	; º
db  40h	; @
db    0
db  41h	; A
db 0BCh	; º
db  40h	; @
db    0
db  1Eh
db  57h	; W
db  41h	; A
db    0
db  99h	; ô
db 0D8h	; ÿ
db  41h	; A
db    0
db 0EEh	; Ó
db 0F9h	; ˘
db  41h	; A
db    0
db 0F9h	; ˘
db    7
db  42h	; B
db    0
db  8Eh	; é
db  7Ah	; z
db  42h	; B
db    0
db  3Eh	; >
db  8Dh	; ç
db  42h	; B
db    0
db  71h	; q
db  8Dh	; ç
db  42h	; B
db    0
db 0F5h	; ı
db  85h	; Ö
db  43h	; C
db    0
db 0B4h	; ¥
db 0A8h	; ®
db  43h	; C
db    0
unk_45B050 db	 0
db    0
db    0
db    0
unk_45B054 db	 0
db    0
db    0
db    0
unk_45B058 db	 0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
off_45B060 dd offset a7ze ; "7zE"
align 8
unk_45B068 db 0E7h ; Á
db    0
db    0
db    0
db 0DAh	; ⁄
db    7
db    0
db    0
db  2Ah	; *
db    8
db    0
db    0
db  74h	; t
db    9
db    0
db    0
db  20h
db    4
db    2
db    3
db 0E8h	; Ë
db    0
db    0
db    0
db 0DBh	; €
db    7
db    0
db    0
db  2Bh	; +
db    8
db    0
db    0
db  75h	; u
db    9
db    0
db    0
db  21h	; !
db    4
db    2
db    3
db 0E9h	; È
db    0
db    0
db    0
db 0DCh	; ‹
db    7
db    0
db    0
db  2Ch	; ,
db    8
db    0
db    0
db  76h	; v
db    9
db    0
db    0
db  22h	; "
db    4
db    2
db    3
db 0F0h	; 
db    0
db    0
db    0
db 0DDh	; ›
db    7
db    0
db    0
db  2Dh	; -
db    8
db    0
db    0
db  77h	; w
db    9
db    0
db    0
db  23h	; #
db    4
db    2
db    3
unk_45B0B8 db 0D0h ; –
db    7
db    0
db    0
db 0D2h	; “
db    7
db    0
db    0
db  22h	; "
db    8
db    0
db    0
db  60h	; `
db    9
db    0
db    0
db    0
db    4
db    2
db    3
db 0D1h	; —
db    7
db    0
db    0
db 0D3h	; ”
db    7
db    0
db    0
db  23h	; #
db    8
db    0
db    0
db  61h	; a
db    9
db    0
db    0
db    1
db    4
db    2
db    3
db 0D2h	; “
db    7
db    0
db    0
db 0D4h	; ‘
db    7
db    0
db    0
db  24h	; $
db    8
db    0
db    0
db  62h	; b
db    9
db    0
db    0
db    2
db    4
db    2
db    3
a7ze:
unicode	0, <7zE>,0
; char ClassName[]
ClassName db 'ToolbarWindow32',0
asc_45B10C db 0Ah,0
align 10h
asc_45B110:
unicode	0, < )>,0
align 4
asc_45B118:
unicode	0, <	( >,0
align 4
asc_45B128:
unicode	0, < >,0
a____0:
dw 0Ah
unicode	0, <  ...>,0
align 4
asc_45B13C:
dw 0Ah
unicode	0, <  >,0
; const	WCHAR aError_0
aError_0:
unicode	0, <Error>,0
dd offset off_44CCEC
align 8
db  2Eh	; .
db  48h	; H
db    0
db    0
asc_45B15C:
unicode	0, <: >,0
align 4
aCanNotDeleteOu:
unicode	0, <can	not delete output file >
aCanNotCreateNa:
unicode	0, <can	not create name	of file>
unicode	0, < >,0
align 4
aCanNotReplac_0:
unicode	0, <can	not replace folder >
dw 27h,	0
align 4
aWithFileWithSa:
dw 27h
unicode	0, < with file with same name>,0
align 4
aCanNotReplaceF:
unicode	0, <can	not replace file >
dw 27h,	0
align 4
aWithFolderWith:
dw 27h
unicode	0, < with folder with same name>
align 10h
; char ProcName[]
ProcName db 'CreateObject',0
align 10h
byte_45B2C0 db 1
align 4
dword_45B2C4 dd	10000h
dword_45B2C8 dd	78h
; LPCWSTR lpClassName
lpClassName dd offset aFm ; "FM"
aFm:
unicode	0, <FM>,0
align 4
aT:
unicode	0, <-t>,0
align 10h
; char aComctl32_dll_0[]
aComctl32_dll_0	db 'comctl32.dll',0
align 10h
; char aDllgetversion[]
aDllgetversion db 'DllGetVersion',0
align 10h
; const	WCHAR Caption
Caption:
unicode	0, <7-zip>,0
align 10h
unk_45B310 db 0E9h ; È
db    3
db    0
db    0
db  10h
db    2
db    0
db    1
db 0F3h	; Û
db    3
db    0
db    0
db  11h
db    2
db    0
db    1
db 0F4h	; Ù
db    3
db    0
db    0
db  12h
db    2
db    0
db    1
db 0F5h	; ı
db    3
db    0
db    0
db  13h
db    2
db    0
db    1
db 0F9h	; ˘
db    3
db    0
db    0
db  14h
db    2
db    0
db    1
off_45B338 dd offset aFmPlugins7ZipO ; "fm/plugins/7-zip/options.htm#folders"
aFmPlugins7ZipO:
unicode	0, <fm/plugins/7-zip/options.ht>
unicode	0, <m#folders>,0
align 4
a0:
unicode	0, <{0}>,0
db    0
db    0
db    0
db    0
dword_45B394 dd	4
db    8
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    7
db    0
db    0
db    0
db  15h
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db  0Ch
db    0
db    0
db    0
db  40h	; @
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db  0Ah
db    0
db    0
db    0
db  40h	; @
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db  0Bh
db    0
db    0
db    0
db  40h	; @
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    9
db    0
db    0
db    0
db  13h
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    8
db    0
db    0
db    0
db  15h
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db  1Ch
db    0
db    0
db    0
db    8
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db  1Eh
db    0
db    0
db    0
db    8
db    0
db    0
db    0
off_45B3FC dd offset aDescript_ion ; "descript.ion"
aDescript_ion:
unicode	0, <descript.ion>,0
align 4
asc_45B41C:
unicode	0, <*>,0
asc_45B420:
unicode	0, <\*>,0
align 4
; OLECHAR aFsfolder
aFsfolder:
unicode	0, <FSFolder>,0
align 4
asc_45B43C:
unicode	0, < >
dw 27h,	0
align 4
asc_45B444:
dw 27h,	0
aCanNotMoveFile:
unicode	0, <can	not move file >
dw 27h,	0
aOntoItself:
dw 27h
unicode	0, < onto itself>,0
; char aKernel32_dll_0[]
aKernel32_dll_0	db 'kernel32.dll',0
align 4
; char aCopyfileexa[]
aCopyfileexa db	'CopyFileExA',0
; const	WCHAR aKernel32_dll_1
aKernel32_dll_1:
unicode	0, <kernel32.dll>,0
align 4
; char aCopyfileexw[]
aCopyfileexw db	'CopyFileExW',0
aCanNotCreateFo:
unicode	0, <can	not create folder >,0
align 10h
aCanNotCopyFold:
unicode	0, <can	not copy folder	>
dw 27h,	0
aCanNotMoveToFi:
unicode	0, <can	not move to file >,0
; char aMovefilewithpr[]
aMovefilewithpr	db 'MoveFileWithProgressW',0
align 10h
aCanNotRemoveFo:
unicode	0, <can	not remove folder>,0
aCanNotMoveFold:
unicode	0, <can	not move folder	>
dw 27h,	0
off_45B5C8 dd offset a7Zip_chm ; "7-zip.chm::/"
a7Zip_chm:
unicode	0, <7-zip.chm::/>,0
align 4
aLang:
unicode	0, <Lang\>,0
a_txt_0:
unicode	0, <.txt>,0
align 10h
asc_45B600:
unicode	0, <->,0
a_txt:
unicode	0, <*.txt>,0
unk_45B610 db 0F2h ; Ú
db    3
db    0
db    0
db    1
db    3
db    0
db    1
db 0F3h	; Û
db    3
db    0
db    0
db    2
db    3
db    0
db    1
db 0FCh	; ¸
db    3
db    0
db    0
db  10h
db    3
db    0
db    1
off_45B628 dd offset aFmP ; "fm/p"
align 10h
db  92h	; í
db    0
db    0
db    0
db    3
db    1
db    0
db    2
unk_45B638 db  20h
db    0
db    0
db    0
db  92h	; í
db    0
db    0
db    0
db    3
db    1
db    0
db    2
db  40h	; @
db    0
db    0
db    0
db  8Eh	; é
db    0
db    0
db    0
db    5
db    1
db    0
db    2
db    1
db    0
db    0
db    0
db  98h	; ò
db    0
db    0
db    0
db  0Bh
db    1
db    0
db    2
db    2
db    0
db    0
db    0
db  9Ah	; ö
db    0
db    0
db    0
db  0Dh
db    1
db    0
db    2
db    4
db    0
db    0
db    0
db  94h	; î
db    0
db    0
db    0
db    9
db    1
db    0
db    2
db  10h
db    0
db    0
db    0
db  90h	; ê
db    0
db    0
db    0
db    7
db    1
db    0
db    2
db    0
db    1
db    0
db    0
db  9Ch	; ú
db    0
db    0
db    0
db  0Fh
db    1
db    0
db    2
db    0
db    2
db    0
db    0
db  9Ch	; ú
db    0
db    0
db    0
db  0Fh
db    1
db    0
db    2
db    0
db  10h
db    0
db    0
db  9Eh	; û
db    0
db    0
db    0
db  11h
db    1
db    0
db    2
db    0
db    4
db    0
db    0
db 0A0h	; †
db    0
db    0
db    0
db  13h
db    1
db    0
db    2
db    0
db    8
db    0
db    0
db 0A0h	; †
db    0
db    0
db    0
db  13h
db    1
db    0
db    2
db    0
db  20h
db    0
db    0
aFmP:
unicode	0, <fm/p>
aLugins7ZipOpti:
unicode	0, <lugins/7-zip/options.htm#sy>
unicode	0, <stem>,0
a_7z:
unicode	0, <.7z>,0
a_zip:
unicode	0, <.zip>,0
align 4
asc_45B71C:
unicode	0, < >
dw 3Eh,	0
align 4
off_45B724 dd offset aFmIndex_htm ; "FM/index.htm"
aFmIndex_htm:
unicode	0, <FM/index.htm>,0
align 4
off_45B744 dd offset off_410009
aLt:
unicode	0, <lt+>,0
a___:
unicode	0, < ... >,0
off_45B75C dd offset off_410009
aLtShift:
unicode	0, <lt+Shift+>,0
aDllregisterser	db 'DllRegisterServer',0
align 4
aIncorrectPlugi:
unicode	0, <Incorrect plugin>,0
align 4
; const	WCHAR a7ZipCannotLoad
a7ZipCannotLoad:
unicode	0, <7-Zip cannot load 7-zip.dll>
a7Zip_dll:
unicode	0, <7-zip.dll>,0
; const	WCHAR a7Zip
a7Zip:
unicode	0, <7-Zip>,0
aDllunregisters	db 'DllUnregisterServer',0
dword_45B818 dd	0
db    2
db    0
db    0
db    0
db    3
db    0
db    0
db    0
db    1
db    0
db    0
db    0
; LPCWSTR off_45B828
off_45B828 dd offset a7ZipPanel	; "7-Zip::Panel"
a7ZipPanel:
unicode	0, <7-Zip::Panel>,0
align 4
; const	WCHAR szText
szText:
unicode	0, <Status>,0
align 4
; const	WCHAR aComboboxex32
aComboboxex32:
unicode	0, <ComboBoxEx32>,0
align 4
; char aRebarwindow32[]
aRebarwindow32 db 'ReBarWindow32',0
align 4
aRootfolder:
unicode	0, <RootFolder>,0
align 4
; OLECHAR aFsdrives
aFsdrives:
unicode	0, <FSDrives>,0
align 10h
a_:
unicode	0, <\\.\>,0
align 4
aC:
unicode	0, <C:\\>,0
align 4
asc_45B8C8:
unicode	0, <~>,0
a?_1:
dw 27h
unicode	0, < ?>,0
asc_45B8D4:
dw 0Ah,	27h, 0
align 4
aSha256:
unicode	0, <SHA-256: >,0
off_45B8F0 dd offset a7ze ; "7zE"
; LPCSTR lpszFormat
lpszFormat dd offset a7ZipSettargetf ; "7-Zip::SetTargetFolder"
a7ZipSettargetf	db '7-Zip::SetTargetFolder',0
align 10h
asc_45B910 db '\',0
align 4
a__0:
unicode	0, <\\.>,0
off_45B91C dd offset a7zo ; "7zO"
off_45B920 dd offset aExeBatComChmMs ; " exe bat com chm msi doc xls ppt pps wp"...
aExeBatComChmMs	db ' exe bat com chm msi doc xls ppt pp'
db 's wps wpt wks xlr wdb vsd pub docx '
db 'docm dotx dotm xlsx xlsm xltx xltm '
db 'xlsb xps xlam pptx pptm potx potm p'
db 'pam ppsx ppsm xsn mpp msg dwf flv s'
db 'wf odt ods wb3 pdf ',0
align 4
a7zo:
unicode	0, <7zO>,0
asc_45B9F0:
unicode	0, <] >,0
align 4
asc_45B9F8:
dw 2 dup(0Ah)
unicode	0, <[>,0
asc_45BA00:
unicode	0, <-------------------->
dw 0Ah,	0
a?_0:
unicode	0, <?>,0
aNotepad_exe:
unicode	0, <notepad.exe>,0
; const	WCHAR ModuleName
ModuleName:
unicode	0, <shell32.dll>,0
; char aShellexecuteex[]
aShellexecuteex	db 'ShellExecuteExW',0
asc_45BA70:
unicode	0, <	 >,0
a__:
unicode	0, <..>,0
align 8
aR:
unicode	0, <r>,0
; int dword_45BA8C
dword_45BA8C dd	4
db  73h	; s
db    0
db    0
db    0
db    5
db    0
db    0
db    0
db  74h	; t
db    0
db    0
db    0
db  0Ch
db    0
db    0
db    0
db  75h	; u
db    0
db    0
db    0
db    7
db    0
db    0
db    0
db  76h	; v
db    0
db    0
db    0
db    0
db    0
db    0
db    0
aError:
unicode	0, <Error: >,0
off_45BAC0 dd offset asc_45BAD8	; "----------------------------\n"
off_45BAC4 dd offset asc_45BACC	; "----\n"
off_45BAC8 dd offset asc_45B15C	; ": "
asc_45BACC:
unicode	0, <---->
dw 0Ah,	0
asc_45BAD8:
unicode	0, <--------------------------->
unicode	0, <->
dw 0Ah,	0
aPath:
unicode	0, <Path>,0
align 10h
aProperties db 'properties',0
align 4
asc_45BB2C:
dw 0Dh,	0Ah, 0
align 4
; char aShfileoperatio[]
aShfileoperatio	db 'SHFileOperationW',0
align 4
; const	WCHAR aSetCommentErro
aSetCommentErro:
unicode	0, <Set	Comment	Error>,0
off_45BB6C dd offset aFileWriteError ; "File write error"
aFileWriteError:
unicode	0, <File write error>,0
align 8
dd offset off_44CCEC
align 10h
a_pax db '.PAX',0
align 4
dq offset off_44CCEC	; getInfoPtr
db '.PAG',0             ; Name
align 4
a000:
unicode	0, <000>,0
; const	WCHAR aCanNotFindFile
aCanNotFindFile:
unicode	0, <Can	not find file>,0
aFile:
unicode	0, <file>,0
align 10h
a____1:
unicode	0, <...>,0
; const	WCHAR aNoData
aNoData:
unicode	0, <No data>,0
a01:
unicode	0, <01>,0
align 10h
unk_45BC10 db	 3
db    0
db    0
db    0
dword_45BC14 dd	3
dword_45BC18 dd	2000203h
db    4
db    0
db    0
db    0
db    4
db    0
db    0
db    0
db    4
db    2
db    0
db    2
db    5
db    0
db    0
db    0
db    5
db    0
db    0
db    0
db    5
db    2
db    0
db    2
db    6
db    0
db    0
db    0
db    6
db    0
db    0
db    0
db    6
db    2
db    0
db    2
db    7
db    0
db    0
db    0
db    7
db    0
db    0
db    0
db    7
db    2
db    0
db    2
db    8
db    0
db    0
db    0
db    8
db    0
db    0
db    0
db    8
db    2
db    0
db    2
db    9
db    0
db    0
db    0
db    9
db    0
db    0
db    0
db    9
db    2
db    0
db    2
db  0Ah
db    0
db    0
db    0
db  0Ah
db    0
db    0
db    0
db  0Ah
db    2
db    0
db    2
db  0Bh
db    0
db    0
db    0
db  0Bh
db    0
db    0
db    0
db  0Bh
db    2
db    0
db    2
db  0Ch
db    0
db    0
db    0
db  0Ch
db    0
db    0
db    0
db  0Ch
db    2
db    0
db    2
db  0Dh
db    0
db    0
db    0
db  0Dh
db    0
db    0
db    0
db  0Dh
db    2
db    0
db    2
db  0Eh
db    0
db    0
db    0
db  0Eh
db    0
db    0
db    0
db  0Eh
db    2
db    0
db    2
db  0Fh
db    0
db    0
db    0
db  0Fh
db    0
db    0
db    0
db  0Fh
db    2
db    0
db    2
db  10h
db    0
db    0
db    0
db  11h
db    0
db    0
db    0
db  10h
db    2
db    0
db    2
db  11h
db    0
db    0
db    0
db  12h
db    0
db    0
db    0
db  11h
db    2
db    0
db    2
db  12h
db    0
db    0
db    0
db  10h
db    0
db    0
db    0
db  12h
db    2
db    0
db    2
db  13h
db    0
db    0
db    0
db  13h
db    0
db    0
db    0
db  13h
db    2
db    0
db    2
db  14h
db    0
db    0
db    0
db  14h
db    0
db    0
db    0
db  14h
db    2
db    0
db    2
db  15h
db    0
db    0
db    0
db  15h
db    0
db    0
db    0
db  15h
db    2
db    0
db    2
db  16h
db    0
db    0
db    0
db  16h
db    0
db    0
db    0
db  16h
db    2
db    0
db    2
db  17h
db    0
db    0
db    0
db  17h
db    0
db    0
db    0
db  17h
db    2
db    0
db    2
db  18h
db    0
db    0
db    0
db  18h
db    0
db    0
db    0
db  18h
db    2
db    0
db    2
db  19h
db    0
db    0
db    0
db  19h
db    0
db    0
db    0
db  19h
db    2
db    0
db    2
db  1Ah
db    0
db    0
db    0
db  1Ah
db    0
db    0
db    0
db  1Ah
db    2
db    0
db    2
db  1Bh
db    0
db    0
db    0
db  1Bh
db    0
db    0
db    0
db  1Bh
db    2
db    0
db    2
db  1Ch
db    0
db    0
db    0
db  1Ch
db    0
db    0
db    0
db  1Ch
db    2
db    0
db    2
db  1Dh
db    0
db    0
db    0
db  1Dh
db    0
db    0
db    0
db  1Dh
db    2
db    0
db    2
db  1Eh
db    0
db    0
db    0
db  1Eh
db    0
db    0
db    0
db  1Eh
db    2
db    0
db    2
db  1Fh
db    0
db    0
db    0
db  1Fh
db    0
db    0
db    0
db  1Fh
db    2
db    0
db    2
db  20h
db    0
db    0
db    0
db  20h
db    0
db    0
db    0
db  20h
db    2
db    0
db    2
db  21h	; !
db    0
db    0
db    0
db  21h	; !
db    0
db    0
db    0
db  21h	; !
db    2
db    0
db    2
db  22h	; "
db    0
db    0
db    0
db  22h	; "
db    0
db    0
db    0
db  22h	; "
db    2
db    0
db    2
db  23h	; #
db    0
db    0
db    0
db  23h	; #
db    0
db    0
db    0
db  23h	; #
db    2
db    0
db    2
db  24h	; $
db    0
db    0
db    0
db  24h	; $
db    0
db    0
db    0
db  24h	; $
db    2
db    0
db    2
db  25h	; %
db    0
db    0
db    0
db  25h	; %
db    0
db    0
db    0
db  25h	; %
db    2
db    0
db    2
db  26h	; &
db    0
db    0
db    0
db  26h	; &
db    0
db    0
db    0
db  26h	; &
db    2
db    0
db    2
db  27h	; '
db    0
db    0
db    0
db  27h	; '
db    0
db    0
db    0
db  27h	; '
db    2
db    0
db    2
db  29h	; )
db    0
db    0
db    0
db  29h	; )
db    0
db    0
db    0
db  29h	; )
db    2
db    0
db    2
db  2Ah	; *
db    0
db    0
db    0
db  2Ah	; *
db    0
db    0
db    0
db  2Ah	; *
db    2
db    0
db    2
db  2Bh	; +
db    0
db    0
db    0
db  2Bh	; +
db    0
db    0
db    0
db  2Bh	; +
db    2
db    0
db    2
db  2Ch	; ,
db    0
db    0
db    0
db  2Ch	; ,
db    0
db    0
db    0
db  2Ch	; ,
db    2
db    0
db    2
db  2Dh	; -
db    0
db    0
db    0
db  2Dh	; -
db    0
db    0
db    0
db  2Dh	; -
db    2
db    0
db    2
db  2Eh	; .
db    0
db    0
db    0
db  2Eh	; .
db    0
db    0
db    0
db  2Eh	; .
db    2
db    0
db    2
db  2Fh	; /
db    0
db    0
db    0
db  2Fh	; /
db    0
db    0
db    0
db  2Fh	; /
db    2
db    0
db    2
db  30h	; 0
db    0
db    0
db    0
db  30h	; 0
db    0
db    0
db    0
db  30h	; 0
db    2
db    0
db    2
db  31h	; 1
db    0
db    0
db    0
db  31h	; 1
db    0
db    0
db    0
db  31h	; 1
db    2
db    0
db    2
db  32h	; 2
db    0
db    0
db    0
db  32h	; 2
db    0
db    0
db    0
db  32h	; 2
db    2
db    0
db    2
db  33h	; 3
db    0
db    0
db    0
db  33h	; 3
db    0
db    0
db    0
db  33h	; 3
db    2
db    0
db    2
db  34h	; 4
db    0
db    0
db    0
db  34h	; 4
db    0
db    0
db    0
db  34h	; 4
db    2
db    0
db    2
db  35h	; 5
db    0
db    0
db    0
db  35h	; 5
db    0
db    0
db    0
db  35h	; 5
db    2
db    0
db    2
db  36h	; 6
db    0
db    0
db    0
db  36h	; 6
db    0
db    0
db    0
db  36h	; 6
db    2
db    0
db    2
db  37h	; 7
db    0
db    0
db    0
db  37h	; 7
db    0
db    0
db    0
db    5
db    6
db    0
db    2
db    0
db  11h
db    0
db    0
db  1Ch
db  0Ch
db    0
db    0
db    0
db  11h
db    3
db    3
db    1
db  11h
db    0
db    0
db  1Dh
db  0Ch
db    0
db    0
db    1
db  11h
db    3
db    3
db    2
db  11h
db    0
db    0
db  1Eh
db  0Ch
db    0
db    0
db    2
db  11h
db    3
db    3
db    3
db  11h
db    0
db    0
db  1Fh
db  0Ch
db    0
db    0
db    3
db  11h
db    3
db    3
db    0
db  12h
db    0
db    0
db  80h	; Ä
db  0Ch
db    0
db    0
db    0
db  12h
db    3
db    3
db    1
db  12h
db    0
db    0
db  81h	; Å
db  0Ch
db    0
db    0
db    1
db  12h
db    3
db    3
; LPCSTR lpSubKey
lpSubKey dd offset aShellnew ; "ShellNew"
; LPCSTR off_45BECC
off_45BECC dd offset aData ; "Data"
; LPCSTR off_45BED0
off_45BED0 dd offset aDefaulticon ; "DefaultIcon"
; LPCSTR off_45BED4
off_45BED4 dd offset aShell ; "shell"
; LPCSTR off_45BED8
off_45BED8 dd offset aOpen ; "open"
; LPCSTR off_45BEDC
off_45BEDC dd offset aCommand ;	"command"
off_45BEE0 dd offset a7Zip_ ; "7-Zip."
a7Zip_ db '7-Zip.',0
align 4
aCommand db 'command',0
aOpen db 'open',0
align 4
aShell db 'shell',0
align 4
aDefaulticon db	'DefaultIcon',0
aData db 'Data',0
align 4
aShellnew db 'ShellNew',0
align 4
a__2 db	'.',0
align 4
asc_45BF28 db ',',0
align 4
asc_45BF2C db '*',0
align 10h
aPlugins:
unicode	0, <Plugins\>,0
align 4
; char aGetpluginprope[]
aGetpluginprope	db 'GetPluginProperty',0
align 4
; LPCSTR off_45BF58
off_45BF58 dd offset aSoftware7Zip ; "Software\\7-Zip"
; LPCSTR off_45BF5C
off_45BF5C dd offset aSoftware7ZipFm ; "Software\\7-Zip\\FM"
off_45BF60 dd offset aLang_0 ; "Lang"
off_45BF64 dd offset aEditor ; "Editor"
off_45BF68 dd offset aDiff ; "Diff"
off_45BF6C dd offset aShowdots ; "ShowDots"
off_45BF70 dd offset aShowrealfileic ; "ShowRealFileIcons"
off_45BF74 dd offset aShowsystemmenu ; "ShowSystemMenu"
off_45BF78 dd offset aFullrow ;	"FullRow"
off_45BF7C dd offset aShowgrid ; "ShowGrid"
off_45BF80 dd offset aAlternativesel ; "AlternativeSelection"
off_45BF84 dd offset aLargepages ; "LargePages"
off_45BF88 dd offset aSingleclick ; "SingleClick"
off_45BF8C dd offset aFlatviewarc ; "FlatViewArc"
aFlatviewarc db	'FlatViewArc',0
aSingleclick db	'SingleClick',0
aLargepages db 'LargePages',0
align 4
aAlternativesel	db 'AlternativeSelection',0
align 4
aShowgrid db 'ShowGrid',0
align 4
aFullrow db 'FullRow',0
aShowsystemmenu	db 'ShowSystemMenu',0
align 10h
aShowrealfileic	db 'ShowRealFileIcons',0
align 4
aShowdots db 'ShowDots',0
align 10h
aDiff:
unicode	0, <Diff>,0
align 4
aEditor:
unicode	0, <Editor>,0
align 4
aLang_0:
unicode	0, <Lang>,0
align 4
aSoftware7ZipFm	db 'Software\7-Zip\FM',0
align 4
aSoftware7Zip db 'Software\7-Zip',0
align 4
off_45C05C dd offset a__0 ; "\\\\."
; char aShgetspecial_0[]
aShgetspecial_0	db 'SHGetSpecialFolderPathA',0
; char aShell32_dll_0[]
aShell32_dll_0 db 'shell32.dll',0
; char aShgetspecialfo[]
aShgetspecialfo	db 'SHGetSpecialFolderPathW',0
aComputer:
unicode	0, <Computer>,0
align 10h
aMyComputer:
unicode	0, <My Computer>,0
aDocuments:
unicode	0, <Documents>,0
aMyDocuments:
unicode	0, <My Documents>,0
align 4
a14576643_5Flop	db '1457664 - 3.5" floppy',0
align 10h
a4480mDvd db '4480M - DVD',0
a700mCd	db '700M - CD',0
align 4
a650mCd	db '650M - CD',0
align 4
a10m db	'10M',0
aShgetfileinfow	db 'SHGetFileInfoW',0
align 4
a__file__:
unicode	0, <__File__>,0
align 4
asc_45C15C:
dw 0Dh,	0
; LPCSTR off_45C160
off_45C160 dd offset aSoftware7ZipFm ; "Software\\7-Zip\\FM"
; LPCSTR off_45C164
off_45C164 dd offset aSoftware7Zip_0 ; "Software\\7-Zip\\FM\\Columns"
; LPCSTR off_45C168
off_45C168 dd offset aPosition ; "Position"
; LPCSTR off_45C16C
off_45C16C dd offset aPanels ; "Panels"
; LPCSTR lpValueName
lpValueName dd offset aToolbars	; "Toolbars"
off_45C174 dd offset aPanelpath	; "PanelPath"
; LPCSTR off_45C178
off_45C178 dd offset aListmode ; "ListMode"
off_45C17C dd offset aFolderhistory ; "FolderHistory"
off_45C180 dd offset aFoldershortcut ; "FolderShortcuts"
off_45C184 dd offset aCopyhistory ; "CopyHistory"
aCopyhistory db	'CopyHistory',0
aFoldershortcut	db 'FolderShortcuts',0
aFolderhistory db 'FolderHistory',0
align 4
aListmode db 'ListMode',0
align 10h
aPanelpath:
unicode	0, <PanelPath>,0
aToolbars db 'Toolbars',0
align 10h
aPanels	db 'Panels',0
align 4
aPosition db 'Position',0
align 4
aSoftware7Zip_0	db 'Software\7-Zip\FM\Columns',0
align 10h
dd offset off_44CCEC
align 8
a_pad db '.PAD',0
align 10h
aOverflow db 'overflow',0
align 10h
unk_45C230 db 0F2h ; Ú
db    3
db    0
db    0
db    3
db    1
db    0
db    1
db 0FDh	; ˝
db    3
db    0
db    0
db    4
db    1
db    0
db    1
db 0FEh	; ˛
db    3
db    0
db    0
db    5
db    1
db    0
db    1
db    1
db    0
db    0
db    0
db    2
db    7
db    0
db    2
; LPCSTR lpFile
lpFile dd offset aHttpWww_7Zip_o ; "http://www.7-zip.org/"
off_45C254 dd offset aStart_htm	; "start.htm"
aStart_htm:
unicode	0, <start.htm>,0
aHttpWww_7Zip_o	db 'http://www.7-zip.org/',0
align 8
unk_45C288 db	 1
db    0
db    0
db    0
db    2
db    7
db    0
db    2
db    2
db    0
db    0
db    0
db  10h
db    7
db    0
db    2
unk_45C298 db	 1
db    0
db    0
db    0
db    2
db    7
db    0
db    2
db    2
db    0
db    0
db    0
db  10h
db    7
db    0
db    2
unk_45C2A8 db 0E8h ; Ë
db    3
db    0
db    0
db    1
db    2
db    1
db    3
db 0F2h	; Ú
db    3
db    0
db    0
db    2
db    2
db    1
db    3
off_45C2B8 dd offset aFmOptions_htmE ; "FM/options.htm#editor"
aFmOptions_htmE:
unicode	0, <FM/options.htm#editor>,0
a_exe:
unicode	0, <*.exe>,0
align 8
unk_45C2F8 db 0E8h ; Ë
db    3
db    0
db    0
db    1
db    4
db    0
db    1
off_45C300 dd offset aFmOptions_htmL ; "fm/options.htm#language"
aFmOptions_htmL:
unicode	0, <fm/options.htm#language>,0
asc_45C334:
unicode	0, < (>,0
align 10h
unk_45C340 db	 1
db    0
db    0
db    0
db    2
db    7
db    0
db    2
db    2
db    0
db    0
db    0
db  10h
db    7
db    0
db    2
unk_45C350 db	 1
db    0
db    0
db    0
db  13h
db    7
db    0
db    2
unk_45C358 db 0E8h ; Ë
db    3
db    0
db    0
db    1
db    9
db    0
db    2
db 0E9h	; È
db    3
db    0
db    0
db    2
db    9
db    0
db    2
db 0EAh	; Í
db    3
db    0
db    0
db    3
db    9
db    0
db    2
db    6
db    0
db    0
db    0
db    5
db    7
db    0
db    2
db 0F2h	; Ú
db    3
db    0
db    0
db    7
db    7
db    0
db    2
db    7
db    0
db    0
db    0
db    9
db    7
db    0
db    2
db 0F3h	; Û
db    3
db    0
db    0
db  0Bh
db    7
db    0
db    2
db 0F4h	; Ù
db    3
db    0
db    0
db  11h
db    9
db    0
db    2
db    2
db    0
db    0
db    0
db  11h
db    7
db    0
db    2
unk_45C3A0 db 0E8h ; Ë
db    3
db    0
db    0
db    1
db  0Bh
db    0
db    2
db 0EAh	; Í
db    3
db    0
db    0
db    2
db  0Bh
db    0
db    2
db    1
db    0
db    0
db    0
db    2
db    7
db    0
db    2
db    2
db    0
db    0
db    0
db  10h
db    7
db    0
db    2
unk_45C3C0 db	 2
db    0
db    0
db    0
db    0
db  0Ch
db    0
db    2
db 0EAh	; Í
db    3
db    0
db    0
db    1
db  0Ch
db    0
db    2
db 0ECh	; Ï
db    3
db    0
db    0
db    2
db  0Ch
db    0
db    2
db 0F0h	; 
db    3
db    0
db    0
db    3
db  0Ch
db    0
db    2
db 0EEh	; Ó
db    3
db    0
db    0
db    4
db  0Ch
db    0
db    2
db 0FAh	; ˙
db    3
db    0
db    0
db    5
db  0Ch
db    0
db    2
db 0F8h	; ¯
db    3
db    0
db    0
db  23h	; #
db    3
db    0
db    2
db 0F6h	; ˆ
db    3
db    0
db    0
db    6
db  0Ch
db    0
db    2
db 0EEh	; Ó
db    3
db    0
db    0
db    4
db  0Ch
db    0
db    2
db 0F4h	; Ù
db    3
db    0
db    0
db  20h
db    3
db    0
db    2
db    6
db    4
db    0
db    0
db  0Ah
db    0
db    8
db    3
db  33h	; 3
db    0
db    0
db    0
db  10h
db  0Ch
db    0
db    2
db  32h	; 2
db    0
db    0
db    0
db  12h
db  0Ch
db    0
db    2
db    2
db    0
db    0
db    0
db  11h
db    7
db    0
db    2
unk_45C430 db  26h ; &
db    0
db    0
db    0
word_45C434 dw 20h
db  4Bh	; K
db    0
db  4Dh	; M
db    0
db    0
db    0
; char asc_45C43C[]
asc_45C43C db '%',0
align 10h
; char asc_45C440[]
asc_45C440 db ' / ',0
; char aBS[]
aBS db ' B/s',0
align 4
; char aKbS[]
aKbS db	' KB/s',0
align 4
; char String2[]
String2	db ' MB/s',0
align 4
; char a02d02d02d[]
a02d02d02d db '%02d:%02d:%02d',0
align 4
; const	WCHAR Text
Text:
unicode	0, <Progress Error>,0
align 10h
dd offset off_44CCEC
align 8
a_?av?Cstringba	db '.?AV?$CStringBase@G@@',0
align 10h
unk_45C4B0 db 0E8h ; Ë
db    3
db    0
db    0
db    1
db    4
db    1
db    3
db 0E9h	; È
db    3
db    0
db    0
db    2
db    4
db    1
db    3
db 0F2h	; Ú
db    3
db    0
db    0
db  10h
db    4
db    1
db    3
db 0F3h	; Û
db    3
db    0
db    0
db  20h
db    4
db    1
db    3
db 0F5h	; ı
db    3
db    0
db    0
db  21h	; !
db    4
db    1
db    3
db 0F6h	; ˆ
db    3
db    0
db    0
db  22h	; "
db    4
db    1
db    3
db 0F8h	; ¯
db    3
db    0
db    0
db  30h	; 0
db    4
db    1
db    3
db 0F9h	; ˘
db    3
db    0
db    0
db  40h	; @
db    4
db    1
db    3
off_45C4F0 dd offset aFmOptions_htmS ; "FM/options.htm#settings"
aFmOptions_htmS:
unicode	0, <FM/options.htm#settings>,0
align 8
unk_45C528 db 0E8h ; Ë
db    3
db    0
db    0
db    1
db    5
db    2
db    3
db 0F2h	; Ú
db    3
db    0
db    0
db  40h	; @
db  0Dh
db    0
db    2
unk_45C538 db 0FCh ; ¸
db    3
db    0
db    0
db    2
db    3
db    1
db    3
db 0FFh
db    3
db    0
db    0
db  30h	; 0
db    3
db    0
db    3
off_45C548 dd offset aFmOptions_ht_0 ; "FM/options.htm#system"
aFmOptions_ht_0:
unicode	0, <FM/options.htm#system>,0
off_45C578 dd offset loc_41001F+1
aRchive:
unicode	0, <rchive>,0
align 4
a7zfm_exe1:
unicode	0, <7zFM.exe" "%1">,0
align 4
asc_45C5AC:
unicode	0, <">,0
; OLECHAR *psz
psz dd offset a_	; "\\\\.\\"
; char *Str
Str dd offset aUnknown	; "Unknown"
dd offset aNoRootDir	; "No Root Dir"
dd offset aRemovable	; "Removable"
dd offset aFixed	; "Fixed"
dd offset aRemote	; "Remote"
dd offset aCdRom	; "CD-ROM"
dd offset aRamDisk	; "RAM disk"
aRamDisk db 'RAM disk',0
align 4
aCdRom db 'CD-ROM',0
align 4
aRemote	db 'Remote',0
align 4
aFixed db 'Fixed',0
align 4
aRemovable db 'Removable',0
align 10h
aNoRootDir db 'No Root Dir',0
aUnknown db 'Unknown',0
aImg:
unicode	0, <img>,0
aFat:
unicode	0, <fat>,0
off_45C624 dd offset loc_410042+4
db  54h	; T
db    0
db    0
db    0
aNtfs_0:
unicode	0, <ntfs>,0
align 4
aNtfs:
unicode	0, <NTFS>,0
align 4
aIso:
unicode	0, <iso>,0
; OLECHAR aNetfolder
aNetfolder:
unicode	0, <NetFolder>,0
a@lang@Utf8 db ';!@Lang@!UTF-8!',0
dd offset off_44CCEC
align 8
a_?avcnewexcept	db '.?AVCNewException@@',0
a?_2:
unicode	0, <?*>,0
align 4
unk_45C694 db	 1
db    0
db    2
db    0
db    3
db    0
db    4
db    0
db    5
db    0
db    6
db    0
db    7
db    0
db    8
db    0
db    9
db    0
db  0Ah
db    0
db  0Bh
db    0
db  0Ch
db    0
db  0Dh
db    0
db  0Eh
db    0
db  0Fh
db    0
db  10h
db    0
db  11h
db    0
db  12h
db    0
db  13h
db    0
db  14h
db    0
db  15h
db    0
db  16h
db    0
db  17h
db    0
db  18h
db    0
db  19h
db    0
db  1Ah
db    0
db  1Bh
db    0
db  1Ch
db    0
db  1Dh
db    0
db  1Eh
db    0
db  1Fh
db    0
db  22h	; "
db    0
db  2Fh	; /
db    0
db  3Ah	; :
db    0
db  3Ch	; <
db    0
db  3Eh	; >
db    0
db  5Ch	; \
db    0
db  7Ch	; |
db    0
db    0
db    0
db    0
db    0
unk_45C6E4 db  2Eh ; .
db    0
db    0
db    0
a__3:
unicode	0, <*.*>,0
a__4 db	'*.*',0
dword_45C6F4 dd	400000h
aPhysicaldriv_0	db 'PhysicalDrive',0
align 4
; wchar_t Str2
Str2:
unicode	0, <PhysicalDrive>,0
a?:
unicode	0, <\\?\>,0
align 10h
; char LibFileName[]
LibFileName db 'Advapi32.dll',0
align 10h
aSelockmemorypr	db 'SeLockMemoryPrivilege',0
align 4
; char aAdjusttokenpri[]
aAdjusttokenpri	db 'AdjustTokenPrivileges',0
align 10h
; char aLookupprivileg[]
aLookupprivileg	db 'LookupPrivilegeValueA',0
align 4
; char aOpenprocesstok[]
aOpenprocesstok	db 'OpenProcessToken',0
align 4
off_45C79C dd offset aOutOfMemory ; "out of memory"
aOutOfMemory db	'out of memory',0
align 10h
asc_45C7B0 db '+',0
align 4
; char aShgetpathfromi[]
aShgetpathfromi	db 'SHGetPathFromIDListW',0
align 4
; char aShbrowseforfol[]
aShbrowseforfol	db 'SHBrowseForFolderW',0
align 10h
; char aGetdiskfreespa[]
aGetdiskfreespa	db 'GetDiskFreeSpaceExA',0
aSelockmemory_0:
unicode	0, <SeLockMemoryPrivilege>,0
; char aLsaopenpolicy[]
aLsaopenpolicy db 'LsaOpenPolicy',0
align 10h
; char aLsaclose[]
aLsaclose db 'LsaClose',0
align 4
; char aLsaaddaccountr[]
aLsaaddaccountr	db 'LsaAddAccountRights',0
; char aLookupaccountn[]
aLookupaccountn	db 'LookupAccountNameW',0
align 4
; char aSyslistview32[]
aSyslistview32 db 'SysListView32',0
align 4
off_45C874 dd offset aErrorCanNotCre ; "ERROR: Can not create file with	auto na"...
off_45C878 dd offset aErrorCanNotRen ; "ERROR: Can not rename existing file "
off_45C87C dd offset aErrorCanNotDel ; "ERROR: Can not delete output file "
aErrorCanNotDel:
unicode	0, <ERROR: Can not delete outpu>
unicode	0, <t file >,0
align 4
aErrorCanNotRen:
unicode	0, <ERROR: Can not rename exist>
unicode	0, <ing	file >,0
align 4
aErrorCanNotCre:
unicode	0, <ERROR: Can not create file >
unicode	0, <with auto name>,0
aCanNotOpenOutp:
unicode	0, <can	not open output	file >,0
aArchive:
unicode	0, <Archive>,0
off_45C9AC dd offset aAd ; " -ad"
off_45C9B0 dd offset aSeml_ ; "	-seml."
off_45C9B4 dd offset aI	; " -i"
off_45C9B8 dd offset aT_0 ; " -t"
off_45C9BC dd offset aAnAi ; " -an -ai"
off_45C9C0 dd offset asc_45C9D8	; " --"
off_45C9C4 dd offset aSlp ; " -slp-"
aSlp:
unicode	0, < -slp->,0
align 4
asc_45C9D8:
unicode	0, < -->,0
aAnAi:
unicode	0, < -an -ai>,0
align 4
aT_0:
unicode	0, < -t>,0
aI:
unicode	0, < -i>,0
aSeml_:
unicode	0, < -seml.>,0
aAd:
unicode	0, < -ad>,0
align 10h
a7zg_exe:
unicode	0, <7zG.exe>,0
a7zevent:
unicode	0, <7zEvent>,0
a7zmap:
unicode	0, <7zMap>,0
aO:
unicode	0, < -o>,0
off_45CA54 dd offset aCon ; "CON"
dd offset aPrn		; "PRN"
dd offset aAux		; "AUX"
dd offset aNul		; "NUL"
aNul:
unicode	0, <NUL>,0
aAux:
unicode	0, <AUX>,0
aPrn:
unicode	0, <PRN>,0
aCon:
unicode	0, <CON>,0
a__1:
unicode	0, <_>,0
aLpt:
unicode	0, <LPT>,0
aCom:
unicode	0, <COM>,0
off_45CA98 dd offset a7z_dll ; "7z.dll"
; LPCSTR off_45CA9C
off_45CA9C dd offset aSoftware7Zip_2 ; "Software\\7-zip"
; LPCSTR off_45CAA0
off_45CAA0 dd offset aPath_0 ; "Path"
aPath_0	db 'Path',0
align 4
aSoftware7Zip_2	db 'Software\7-zip',0
align 4
a7z_dll	db '7z.dll',0
align 4
aFormats db 'Formats',0
aCodecs	db 'Codecs',0
align 4
; char aGetnumberofmet[]
aGetnumberofmet	db 'GetNumberOfMethods',0
align 4
; char aGetmethodprope[]
aGetmethodprope	db 'GetMethodProperty',0
align 4
; char aGetnumberoffor[]
aGetnumberoffor	db 'GetNumberOfFormats',0
align 10h
; char aGethandlerpr_0[]
aGethandlerpr_0	db 'GetHandlerProperty',0
align 4
; char aGethandlerprop[]
aGethandlerprop	db 'GetHandlerProperty2',0
aFormats_0 db 'Formats\',0
align 4
aCodecs_0 db 'Codecs\',0
aUnknownError:
unicode	0, <Unknown error>,0
aUdf:
unicode	0, <udf>,0
aRar:
unicode	0, <rar>,0
a001:
unicode	0, <001>,0
aExe:
unicode	0, <exe>,0
off_45CB88 dd offset aDuplicateFilen ; "Duplicate filename:"
off_45CB8C dd offset aInternalFileNa ; "Internal file name collision (file on d"...
aInternalFileNa:
unicode	0, <Internal file name collisio>
unicode	0, <n (file on disk, file in ar>
unicode	0, <chive):>,0
aDuplicateFilen:
unicode	0, <Duplicate filename:>,0
off_45CC34 dd offset aInternalCollis ; "Internal collision in update action set"...
aInternalCollis	db 'Internal collision in update action'
db ' set',0
off_45CC60 dd offset aSoftware7Zip_1 ; "Software\\7-Zip\\"
dd offset aExtraction	; "Extraction"
dd offset aExtractmode	; "ExtractMode"
dd offset aOverwritemode ; "OverwriteMode"
dd offset aShowpassword	; "ShowPassword"
dd offset aPathhistory	; "PathHistory"
dd offset aCompression	; "Compression"
dd offset aArchistory	; "ArcHistory"
dd offset aArchiver	; "Archiver"
dd offset aShowpassword	; "ShowPassword"
dd offset aEncryptheaders ; "EncryptHeaders"
dd offset aOptions	; "Options"
dd offset aLevel	; "Level"
dd offset aDictionary	; "Dictionary"
dd offset aOrder	; "Order"
dd offset aBlocksize	; "BlockSize"
dd offset aNumthreads	; "NumThreads"
dd offset aMethod	; "Method"
dd offset aOptions_0	; "Options"
dd offset aEncryptionmeth ; "EncryptionMethod"
off_45CCB0 dd offset aOptions ;	"Options"
; LPCSTR off_45CCB4
off_45CCB4 dd offset aWorkdirtype ; "WorkDirType"
; LPCWSTR off_45CCB8
off_45CCB8 dd offset aWorkdirpath ; "WorkDirPath"
; LPCSTR off_45CCBC
off_45CCBC dd offset aTempremovableo ; "TempRemovableOnly"
; LPCSTR off_45CCC0
off_45CCC0 dd offset aCascadedmenu ; "CascadedMenu"
; LPCSTR off_45CCC4
off_45CCC4 dd offset aContextmenu ; "ContextMenu"
aContextmenu db	'ContextMenu',0
aCascadedmenu db 'CascadedMenu',0
align 4
aTempremovableo	db 'TempRemovableOnly',0
align 4
aWorkdirpath:
unicode	0, <WorkDirPath>,0
aWorkdirtype db	'WorkDirType',0
aEncryptionmeth:
unicode	0, <EncryptionMethod>,0
align 10h
aOptions_0:
unicode	0, <Options>,0
aMethod:
unicode	0, <Method>,0
align 10h
aNumthreads db 'NumThreads',0
align 4
aBlocksize db 'BlockSize',0
align 4
aOrder db 'Order',0
align 10h
aDictionary db 'Dictionary',0
align 4
aLevel db 'Level',0
align 4
aOptions db 'Options',0
aEncryptheaders	db 'EncryptHeaders',0
align 4
aArchiver:
unicode	0, <Archiver>,0
align 10h
aArchistory db 'ArcHistory',0
align 4
aCompression db	'Compression',0
aPathhistory db	'PathHistory',0
aShowpassword db 'ShowPassword',0
align 4
aOverwritemode db 'OverwriteMode',0
align 4
aExtractmode db	'ExtractMode',0
aExtraction db 'Extraction',0
align 4
aSoftware7Zip_1	db 'Software\7-Zip\',0
a7z:
unicode	0, <7z>,0
align 8
off_45CE38 dd offset aSevenzip ; "SevenZip"
align 10h
db  20h
db    0
db    0
db    0
unk_45CE44 db	 1
db    0
db    0
db    0
db  90h	; ê
db 0D2h	; “
db  45h	; E
db    0
db  92h	; í
db    0
db    0
db    0
db  93h	; ì
db    0
db    0
db    0
db    3
db    1
db    0
db    2
db    1
db    0
db    0
db    0
db    2
db    0
db    0
db    0
db  80h	; Ä
db 0D2h	; “
db  45h	; E
db    0
db  8Eh	; é
db    0
db    0
db    0
db  8Fh	; è
db    0
db    0
db    0
db    5
db    1
db    0
db    2
db    2
db    0
db    0
db    0
db    3
db    0
db    0
db    0
db  68h	; h
db 0D2h	; “
db  45h	; E
db    0
db  98h	; ò
db    0
db    0
db    0
db  99h	; ô
db    0
db    0
db    0
db  0Bh
db    1
db    0
db    2
db    4
db    0
db    0
db    0
db    4
db    0
db    0
db    0
db  54h	; T
db 0D2h	; “
db  45h	; E
db    0
db  9Ah	; ö
db    0
db    0
db    0
db  9Bh	; õ
db    0
db    0
db    0
db  0Dh
db    1
db    0
db    2
db  10h
db    0
db    0
db    0
db    5
db    0
db    0
db    0
db  48h	; H
db 0D2h	; “
db  45h	; E
db    0
db  94h	; î
db    0
db    0
db    0
db  95h	; ï
db    0
db    0
db    0
db    9
db    1
db    0
db    2
db    0
db    1
db    0
db    0
db    6
db    0
db    0
db    0
db  34h	; 4
db 0D2h	; “
db  45h	; E
db    0
db  90h	; ê
db    0
db    0
db    0
db  91h	; ë
db    0
db    0
db    0
db    7
db    1
db    0
db    2
db    0
db    4
db    0
db    0
db    7
db    0
db    0
db    0
db  18h
db 0D2h	; “
db  45h	; E
db    0
db  9Eh	; û
db    0
db    0
db    0
db  9Fh	; ü
db    0
db    0
db    0
db  11h
db    1
db    0
db    2
db    0
db    2
db    0
db    0
db    8
db    0
db    0
db    0
db 0FCh	; ¸
db 0D1h	; —
db  45h	; E
db    0
db  9Ch	; ú
db    0
db    0
db    0
db  9Dh	; ù
db    0
db    0
db    0
db  0Fh
db    1
db    0
db    2
db    0
db    8
db    0
db    0
db    9
db    0
db    0
db    0
db 0D8h	; ÿ
db 0D1h	; —
db  45h	; E
db    0
db 0A0h	; †
db    0
db    0
db    0
db 0A1h	; °
db    0
db    0
db    0
db  13h
db    1
db    0
db    2
db    0
db  10h
db    0
db    0
db  0Ah
db    0
db    0
db    0
db 0BCh	; º
db 0D1h	; —
db  45h	; E
db    0
db  9Ch	; ú
db    0
db    0
db    0
db  9Dh	; ù
db    0
db    0
db    0
db  0Fh
db    1
db    0
db    2
db    0
db  20h
db    0
db    0
db  0Bh
db    0
db    0
db    0
db  94h	; î
db 0D1h	; —
db  45h	; E
db    0
db 0A0h	; †
db    0
db    0
db    0
db 0A1h	; °
db    0
db    0
db    0
db  13h
db    1
db    0
db    2
off_45CF48 dd offset a7z ; "7z"
off_45CF4C dd offset aBz2 ; "bz2"
dd offset aGz		; "gz"
dd offset aRar		; "rar"
dd offset aZip		; "zip"
off_45CF5C dd offset a3gpAacAnsApeAs ; " 3gp aac ans ape asc asm asp aspx avi a"...
off_45CF60 dd offset a7zArjBz2CabChm ; " 7z arj	bz2 cab	chm cpio dmg flv gz lha"...
a7zArjBz2CabChm	db ' 7z arj bz2 cab chm cpio dmg flv gz'
db ' lha lzh lzma rar swm tar tbz2 tgz '
db 'wim xar xz z zip ',0
a3gpAacAnsApeAs	db ' 3gp aac ans ape asc asm asp aspx a'
db 'vi awk bas bat bmp c cs cls clw cmd'
db ' cpp csproj css ctl cxx def dep dlg'
db ' dsp dsw eps f f77 f90 f95 fla flac'
db ' frm gif h hpp hta htm html hxx ico'
db ' idl inc ini inl java jpeg jpg js l'
db 'a mak manifest wmv mov mp3 mp4 mpe '
db 'mpeg mpg m4a ofr ogg pac pas pdf ph'
db 'p php3 php4 php5 phptml pl pm png p'
db 's py pyo ra rb rc reg rka rm rtf se'
db 'd sh shn shtml sln sql srt swa tcl '
db 'tex tiff tta txt vb vcproj vbs wav '
db 'wma wv xml xsd xsl xslt ',0
align 4
aZip:
unicode	0, <zip>,0
aGz:
unicode	0, <gz>,0
align 4
aBz2:
unicode	0, <bz2>,0
aCompresstozipe:
unicode	0, <CompressToZipEmail>,0
align 4
aCompresstozip:
unicode	0, <CompressToZip>,0
aCompressto7zem:
unicode	0, <CompressTo7zEmail>,0
aCompressto7z:
unicode	0, <CompressTo7z>,0
align 4
aCompressemail:
unicode	0, <CompressEmail>,0
aCompress:
unicode	0, <Compress>,0
align 4
aTest:
unicode	0, <Test>,0
align 4
aExtractto:
unicode	0, <ExtractTo>,0
aExtracthere:
unicode	0, <ExtractHere>,0
aExtract:
unicode	0, <Extract>,0
aOpen_0:
unicode	0, <Open>,0
align 4
aSevenzip:
unicode	0, <SevenZip>,0
align 10h
a_open_:
unicode	0, <.Open.>,0
align 10h
aCab:
unicode	0, <cab>,0
aPart1:
unicode	0, <part1>,0
aPart01:
unicode	0, <part01>,0
align 4
aPart001:
unicode	0, <part001>,0
asc_45D2F4:
unicode	0, <&&>,0
align 4
a7zfm_exe:
unicode	0, <7zFM.exe>,0
align 10h
off_45D310 dd offset aShellexContext ; "\\shellex\\ContextMenuHandlers\\7-Zip"
off_45D314 dd offset aShellexDragdro ; "\\shellex\\DragDropHandlers\\7-Zip"
; LPCSTR lpData
lpData dd offset a23170f6940c127 ; "{23170F69-40C1-278A-1000-000100020000}"
off_45D31C dd offset asc_45BF2C	; "*"
off_45D320 dd offset aFolder ; "Folder"
off_45D324 dd offset aDirectory	; "Directory"
off_45D328 dd offset aDrive ; "Drive"
aDrive db 'Drive',0
align 4
aDirectory db 'Directory',0
align 10h
aFolder	db 'Folder',0
align 4
a23170f6940c127	db '{23170F69-40C1-278A-1000-0001000200'
db '00}',0
align 10h
aShellexDragdro	db '\shellex\DragDropHandlers\7-Zip',0
aShellexContext	db '\shellex\ContextMenuHandlers\7-Zip',0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
dword_45D3BC dd	1Fh
db  13h
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db  20h
db    0
db    0
db    0
db  13h
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db  1Eh
db    0
db    0
db    0
db    8
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
dword_45D3E4 dd	7
db  15h
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    8
db    0
db    0
db    0
db  15h
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db  1Fh
db    0
db    0
db    0
db  13h
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db  20h
db    0
db    0
db    0
db  13h
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db  13h
db    0
db    0
db    0
db  13h
db    0
db    0
db    0
a7Zip__0:
unicode	0, <7-Zip.>,0
align 4
off_45D42C dd offset a7za ; "7zA"
a7za:
unicode	0, <7zA>,0
off_45D438 dd offset loc_410056+1
aRning:
unicode	0, <RNING: >,0
db  47h	; G
db  65h	; e
db  6Eh	; n
db  75h	; u
db  69h	; i
db  6Eh	; n
db  65h	; e
db  49h	; I
aNtelauthentica	db 'ntelAuthenticAMDCentaurHaulsÏÃD',0
align 8
a_?avtype_info@	db '.?AVtype_info@@',0
align 10h
dword_45D490 dd	1
align 8
; OLECHAR word_45D498
word_45D498 dw 0
db    0
db    0
db    0
db    0
db    0
db    0
dword_45D4A0 dd	0
dword_45D4A4 dd	0
dword_45D4A8 dd	0
align 10h
dword_45D4B0 dd	0
dword_45D4B4 dd	0
dword_45D4B8 dd	0
align 10h
dword_45D4C0 dd	0
byte_45D4C4 db 0
align 4
dword_45D4C8 dd	0
dword_45D4CC dd	0
byte_45D4D0 db 0
byte_45D4D1 db 0
byte_45D4D2 db 0
byte_45D4D3 db 0
unk_45D4D4 db	 0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
unk_45D544 db	 0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    0
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
dword_45D610 dd	?
align 8
byte_45D618 db ?
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
dword_45D6AC dd	?
db    ?	;
db    ?	;
db    ?	;
db    ?	;
unk_45D6B4 db	 ? ;
db    ?	;
db    ?	;
db    ?	;
unk_45D6B8 db	 ? ;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
byte_45D6C8 db ?
byte_45D6C9 db ?
align 4
unk_45D6CC db	 ? ;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
byte_45D850 db ?
byte_45D851 db ?
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
; LPDROPTARGET pDropTarget
pDropTarget dd ?
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
dword_45D874 dd	?
dword_45D878 dd	?
align 10h
dword_45D880 dd	?
; int nWidth
nWidth dd ?
db    ?	;
db    ?	;
db    ?	;
db    ?	;
dword_45D88C dd	?
dword_45D890 dd	?
dword_45D894 dd	?
dword_45D898 dd	?
align 10h
dword_45D8A0 dd	?
dword_45D8A4 dd	?
dword_45D8A8 dd	?
; HWND hWnd
hWnd dd	?
; HINSTANCE hInstance
hInstance dd ?
byte_45D8B4 db ?
align 2
byte_45D8B6 db ?
byte_45D8B7 db ?
byte_45D8B8 db ?
align 4
; int dword_45D8BC
dword_45D8BC dd	?
byte_45D8C0 db ?
align 8
; struct _RTL_CRITICAL_SECTION stru_45D8C8
stru_45D8C8 _RTL_CRITICAL_SECTION <?>
dword_45D8E0 dd	?
dword_45D8E4 dd	?
dword_45D8E8 dd	?
align 10h
unk_45D8F0 db	 ? ;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
byte_45D904 db ?
align 4
; HWND dword_45D908
dword_45D908 dd	?
align 10h
; HMENU	hMenu
hMenu dd ?
; char pszPath[]
pszPath	db 4 dup(?)
dword_45D918 dd	?
; volatile LONG	Addend
Addend dd ?
; struct _RTL_CRITICAL_SECTION stru_45D920
stru_45D920 _RTL_CRITICAL_SECTION <?>
dword_45D938 dd	?
align 10h
; struct _RTL_CRITICAL_SECTION CriticalSection
CriticalSection	_RTL_CRITICAL_SECTION <?>
align 10h
dword_45D960 dd	?
align 10h
dword_45D970 dd	?
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
byte_45D97C db ?
align 10h
unk_45D980 db	 ? ;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
dword_45DA40 dd	?
align 8
; struct _RTL_CRITICAL_SECTION stru_45DA48
stru_45DA48 _RTL_CRITICAL_SECTION <?>
; struct _RTL_CRITICAL_SECTION stru_45DA60
stru_45DA60 _RTL_CRITICAL_SECTION <?>
dword_45DA78 dd	?
dword_45DA7C dd	?
db    ?	;
db    ?	;
db    ?	;
db    ?	;
dword_45DA84 dd	?
; HMODULE hModule
hModule	dd ?
dword_45DA8C dd	?
dword_45DA90 dd	?
dword_45DA94 dd	?
dword_45DA98 dd	?
align 10h
dword_45DAA0 dd	?
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
unk_45DEA0 db	 ? ;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
db    ?	;
dword_45FAA0 dd	?
dword_45FAA4 dd	?
dword_45FAA8 dd	?
align 800h
_data ends


end start
