Function at 0x40a680
Capabilities:
Check for debugger via api
Check for unexpected memory writes
Copy file
Create mailslot
Enumerate gui resources
Identify system language via api
Manipulate console buffer
Move file
Print debug messages
Read .ini file

Disassembly:
mov eax, 0x1450
call fcn.0040b1f0
cmp dword [0x2e913d4], 0x177
jne 0x40a6c8
push 0x4014a8
push 0
call fcn.0040b6b0
push 0
call fcn.0040b660
push 0
push 0
call fcn.0040b410
call fcn.0040b2d0
push 0
call fcn.0040b2a0
push 0
call fcn.0040b220
add esp, 0x1c
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_SetThreadPriority]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetBinaryTypeA]
xor eax, eax
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetConsoleAliasExesA]
mov dword [esp + 0x10], eax
lea ebx, [ebx]
cmp dword [0x2e913d4], 0x47
jne 0x40a7f8
lea eax, [esp + 0x24]
push eax
push 0
call esi
push 0
lea ecx, [esp + 0x64]
push ecx
call edi
lea edx, [esp + 0x48]
push edx
call ebx
xor ecx, ecx
xor eax, eax
lea edx, [esp + 0x1c]
push edx
mov word [esp + 0x24], ax
mov word [esp + 0x26], cx
mov eax, dword [esp + 0x24]
push eax
push ecx
push ecx
push ecx
call dword [sym.imp.KERNEL32.dll_WriteConsoleOutputCharacterW]
push 0
call dword [sym.imp.KERNEL32.dll_AddAtomW]
push 0
call dword [sym.imp.KERNEL32.dll_InitAtomTable]
push 0
push 0
call ebp
push 0
lea ecx, [esp + 0x464]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_FindNextVolumeMountPointW]
xor eax, eax
xor edx, edx
lea ecx, [esp + 0x18]
push ecx
mov word [esp + 0x18], dx
mov word [esp + 0x1a], ax
mov edx, dword [esp + 0x18]
push edx
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterA]
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_PeekNamedPipe]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_SetProcessShutdownParameters]
push 0
call dword [sym.imp.KERNEL32.dll_GetConsoleAliasesLengthW]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_SetProcessAffinityMask]
push 0x4014b4
push 0
push 0
call dword [sym.imp.KERNEL32.dll_OpenFileMappingW]
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_OpenWaitableTimerA]
call dword [sym.imp.KERNEL32.dll_AreFileApisANSI]
push 0
call dword [sym.imp.KERNEL32.dll_CancelDeviceWakeupRequest]
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateJobSet]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_CreateActCtxW]
mov eax, dword [esp + 0x10]
cmp eax, 0x6a1
je 0x40a811
inc eax
cmp eax, 0x1137e56
mov dword [esp + 0x10], eax
jl 0x40a6f0
jmp 0x40a81d
mov ecx, dword [0x430100]
mov dword [0x2e913d4], ecx
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, dword [sym.imp.GDI32.dll_GetBitmapBits]
xor edi, edi
xor esi, esi
lea ecx, [ecx]
cmp esi, 0x4d13
jge 0x40a83f
call ebx
push edi
push edi
push edi
call ebp
cmp dword [0x2e913d4], 0x6b
jne 0x40a853
push edi
push edi
push edi
push edi
push edi
call dword [sym.imp.KERNEL32.dll_GetProfileStringW]
inc esi
cmp esi, 0x180c14c3
mov dword [0x2e90a60], edi
jl 0x40a830
mov edi, dword [sym.imp.KERNEL32.dll_TlsFree]
mov ebx, dword [sym.imp.KERNEL32.dll_DeleteAtom]
mov ebp, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
xor ecx, ecx
mov dword [esp + 0x14], ecx
cmp ecx, 0x40d
jne 0x40a892
push 0x2e913d4
call fcn.0040a300
cmp dword [0x2e913d4], 0x78
jne 0x40aa26
push 0
call edi
xor eax, eax
xor edx, edx
lea ecx, [esp + 0x18]
push ecx
mov word [esp + 0x14], dx
mov word [esp + 0x16], ax
mov edx, dword [esp + 0x14]
push edx
push eax
push 0x4014e8
push eax
call dword [sym.imp.KERNEL32.dll_WriteConsoleOutputCharacterW]
push 0
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push 0
call ebx
push 0x401568
call ebp
push 0
push 0
lea eax, [esp + 0x468]
push eax
push 0
push 0
push 0
call esi
push 0x4015e8
push 0
push 0
call dword [sym.imp.KERNEL32.dll_OpenSemaphoreW]
push 0
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsA]
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetWriteWatch]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MoveFileW]
call dword [sym.imp.KERNEL32.dll_GetConsoleAliasExesLengthA]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_EnumSystemLocalesW]
push 0
push 0
call dword [sym.imp.KERNEL32.dll__lopen]
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll__lwrite]
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAdjustment]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CheckRemoteDebuggerPresent]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_SetThreadContext]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetCommState]
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_EnumDateFormatsA]
mov ecx, dword [esp + 0x18]
push 0
push 0
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_CreateMailslotW]
lea edx, [esp + 0x1c]
push edx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WriteConsoleInputW]
call dword [sym.imp.KERNEL32.dll_GetConsoleAliasExesLengthW]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetNumaNodeProcessorMask]
push 0
call dword [sym.imp.KERNEL32.dll_AddAtomW]
call dword [sym.imp.KERNEL32.dll_AllocConsole]
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateIoCompletionPort]
push 0
lea eax, [esp + 0x64]
push eax
push 0x401628
push 0x40163c
push 0x401650
call dword [sym.imp.KERNEL32.dll_GetProfileStringA]
push 0
lea ecx, [esp + 0xc64]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateConsoleScreenBuffer]
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_EnumDateFormatsExW]
mov ecx, dword [esp + 0x14]
inc ecx
cmp ecx, 0x40bd22
mov dword [esp + 0x14], ecx
jl 0x40a880
call fcn.0040a3d0
mov ebx, dword [sym.imp.KERNEL32.dll_SetThreadIdealProcessor]
xor edi, edi
cmp dword [0x2e913d4], 0x15
jne 0x40aa53
push 0
push 0
call ebx
cmp edi, 0x1550
jne 0x40aa67
mov edx, dword [0x42f008]
mov dword [0x2e913d8], edx
inc edi
cmp edi, 0x56a5e7
jl 0x40aa44
mov edi, dword [sym.imp.KERNEL32.dll_EnumCalendarInfoA]
mov ebx, dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov ebp, dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [esp + 0x10], 0x80dec7
lea ebx, [ebx]
cmp dword [0x2e913d4], 0xfd
jne 0x40aaa4
push 0
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsA]
cmp dword [0x2e913d4], 0x23
jne 0x40ab2b
push 0
push 0
push 0
push 0
call edi
push 0
call ebx
push 0
push 0
call ebp
push 0
push 0
lea eax, [esp + 0x68]
push eax
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push 0
call dword [sym.imp.KERNEL32.dll_InitAtomTable]
lea ecx, [esp + 0x18]
push ecx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WriteConsoleInputA]
push 0
call dword [sym.imp.KERNEL32.dll_GlobalWire]
push 0
push 0
lea edx, [esp + 0xc68]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionNamesW]
push 0x40166c
push 0
lea eax, [esp + 0x468]
push eax
push 0x401698
push 0x4016b8
push 0x4016f8
call esi
sub dword [esp + 0x10], 1
jne 0x40aa90
xor edi, edi
cmp dword [0x2e913d4], edi
jbe 0x40ab4f
push edi
call fcn.0040a190
inc edi
cmp edi, dword [0x2e913d4]
jb 0x40ab40
call fcn.0040a310
call fcn.0040a3f0
cmp dword [0x2e913d4], 0x1d
jne 0x40ac45
push 0
lea ecx, [esp + 0x1c]
push ecx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WriteConsoleA]
push 0
lea edx, [esp + 0x20]
push edx
push 0
lea eax, [esp + 0x6c]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_ReadConsoleA]
call dword [sym.imp.KERNEL32.dll_DebugBreak]
push 0x401734
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push 0
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_EnumResourceTypesA]
push 0
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll__lwrite]
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetConsoleAliasW]
lea ecx, [esp + 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateActCtxW]
push 0
push 0
push 0
push 0
push 0
push 0
call esi
call dword [sym.imp.KERNEL32.dll_GetOEMCP]
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0
lea edx, [esp + 0xc64]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
push 0
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_ContinueDebugEvent]
push 0x401758
push 0
lea ecx, [esp + 0x468]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionNamesA]
call dword [sym.imp.KERNEL32.dll_GetConsoleAliasExesLengthW]
call fcn.0040a2e0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1450
ret 0x10