Function at 0x49ccda
Capabilities:
Clear file content
Get common file path
Get disk information
Get hostname
Manipulate console buffer
Read .ini file
Read file on windows
Set current directory
Terminate thread

Disassembly:
mov eax, 0x1c58
call fcn.0049dc80
push esi
xor esi, esi
cmp dword [0x4ce27c], 0x177
push edi
jne 0x49cd3b
push esi
push esi
push esi
push 0xa04
push 0x4cd878
call fcn.0049d490
push esi
push esi
push esi
push 0x4bf248
call fcn.0049e2b0
push esi
call fcn.0049dee0
push esi
push esi
call fcn.0049de90
call fcn.0049dd50
push esi
call fcn.0049dd20
push esi
push esi
call fcn.0049dcf0
push esi
call fcn.0049dcd0
add esp, 0x40
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_OpenMutexA]
push ebp
xor ebp, ebp
cmp dword [0x4ce27c], 0x47
jne 0x49ce99
lea eax, [esp + 0x14]
push eax
push 0x4015dc
call dword [sym.imp.KERNEL32.dll_GetBinaryTypeW]
push 0x4015fc
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push esi
push esi
call sub.KERNEL32.dll_Process32FirstW
push esi
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push esi
lea eax, [esp + 0xc6c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
push dword [esp + 0x14]
push esi
call dword [sym.imp.KERNEL32.dll_TerminateJobObject]
push 0x40162c
call dword [sym.imp.KERNEL32.dll_GlobalAddAtomA]
push esi
call dword [sym.imp.KERNEL32.dll_SetHandleCount]
push 0x401640
push 0x40165c
push 0x401670
call dword [sym.imp.KERNEL32.dll_WriteProfileStringW]
push esi
lea eax, [esp + 0x146c]
push eax
push esi
push esi
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
push esi
lea eax, [esp + 0x6c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindNextVolumeMountPointA]
lea eax, [esp + 0x1c]
push eax
push 0x4016e0
call dword [sym.imp.KERNEL32.dll_GetCompressedFileSizeA]
xor eax, eax
mov word [esp + 0x10], ax
lea edi, [esp + 0x12]
stosw word es:[edi], ax
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x14]
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterW]
push esi
push esi
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_GetNamedPipeInfo]
push esi
push 0x4016e8
lea eax, [esp + 0x470]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
push 0x401714
push esi
call dword [sym.imp.KERNEL32.dll_FatalAppExitW]
push esi
call dword [sym.imp.KERNEL32.dll_GetConsoleAliasesLengthW]
push esi
push esi
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_GetProcessTimes]
push esi
push esi
push 0x40172c
push esi
call dword [sym.imp.KERNEL32.dll_EnumResourceNamesW]
push esi
push esi
push esi
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_SetWaitableTimer]
call dword [sym.imp.KERNEL32.dll_AreFileApisANSI]
push esi
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
push esi
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
push esi
push esi
call dword [sym.imp.KERNEL32.dll_SetCommMask]
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_LocalReAlloc]
push 0x401754
push esi
push esi
call ebx
cmp ebp, 0x69d
je 0x49ceb0
inc ebp
cmp ebp, 0x1133661
jl 0x49cd45
jmp 0x49ceba
mov eax, dword [0x4be160]
mov dword [0x4ce27c], eax
xor edi, edi
cmp edi, 0x5e3
jge 0x49ceca
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [0x4ce27c], 0x6b
jne 0x49cedc
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp edi, 0x26e5d
mov dword [0x4cd868], esi
jle 0x49cf23
cmp dword [esp + 0x18], 0xdfe5c2
je 0x49cf23
cmp dword [esp + 0x4c], 0xdf5922
je 0x49cf23
cmp dword [0x4ce27c], 0x28
jne 0x49cf23
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x46c]
push eax
call dword [sym.imp.KERNEL32.dll_GetComputerNameW]
push 0x401770
push esi
push esi
call ebx
inc edi
cmp edi, 0x17635b17
jl 0x49cebc
mov ebp, dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsA]
mov ebx, dword [sym.imp.KERNEL32.dll_GetConsoleAliasExesLengthW]
mov dword [esp + 0x10], esi
cmp dword [esp + 0x10], 0x3fa
jne 0x49cf50
push 0x4ce27c
call fcn.0049ae24
cmp dword [0x4ce27c], 0x44d
jne 0x49cff7
xor eax, eax
mov word [esp + 0x14], ax
lea edi, [esp + 0x16]
stosw word es:[edi], ax
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x18]
push esi
push 0x40177c
push esi
call dword [sym.imp.KERNEL32.dll_WriteConsoleOutputCharacterA]
push 0x4017ac
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push esi
push esi
call dword [sym.imp.KERNEL32.dll_GetNumberOfConsoleInputEvents]
push esi
call ebp
push esi
push esi
call dword [sym.imp.KERNEL32.dll_ResetWriteWatch]
call ebx
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_EnumDateFormatsW]
call ebx
push esi
push esi
lea eax, [esp + 0x70]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetConsoleAliasA]
call dword [sym.imp.KERNEL32.dll_GetConsoleCP]
push esi
push esi
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_UnlockFile]
push esi
lea eax, [esp + 0x46c]
push eax
push esi
call sub.KERNEL32.dll_VerLanguageNameW
push 0x4017c0
lea eax, [esp + 0xc6c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push esi
push esi
call dword [sym.imp.KERNEL32.dll_SetFileShortNameA]
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x485ceb
jl 0x49cf3c
call fcn.0049ca57
mov edi, 0x56a5e7
cmp dword [0x4ce27c], 0x15
jne 0x49d023
push esi
call dword [sym.imp.KERNEL32.dll_SetThreadLocale]
dec edi
jne 0x49d013
mov edi, dword [sym.imp.KERNEL32.dll_CreateSemaphoreW]
mov ebx, dword [sym.imp.KERNEL32.dll_GetOverlappedResult]
mov dword [esp + 0x10], esi
cmp dword [0x4ce27c], 0xfd
jne 0x49d045
push esi
call ebp
cmp dword [esp + 0x10], 0x3c58
jne 0x49d059
mov eax, dword [0x4be008]
mov dword [0x4ce280], eax
cmp dword [0x4ce27c], 0x23
jne 0x49d0f8
push 0x401808
push esi
push esi
push esi
call edi
push esi
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push esi
push 0x40184c
push 0x40186c
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceExA]
push esi
push esi
push esi
push esi
call ebx
push esi
push esi
call dword [sym.imp.KERNEL32.dll_WaitNamedPipeW]
push esi
push esi
call dword [sym.imp.KERNEL32.dll_TransmitCommChar]
push esi
push esi
push esi
push esi
call edi
push esi
call dword [sym.imp.KERNEL32.dll_GetTapeStatus]
lea eax, [esp + 0x18]
push eax
push esi
lea eax, [esp + 0x2c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_PeekConsoleInputW]
push esi
push esi
push esi
push esi
call ebx
push esi
call dword [sym.imp.KERNEL32.dll_DisableThreadLibraryCalls]
push esi
call dword [sym.imp.KERNEL32.dll_HeapLock]
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_TryEnterCriticalSection]
push 0x401894
push esi
lea eax, [esp + 0x70]
push eax
push 0x4018bc
push 0x4018d4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStructW]
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0xe6a95
jl 0x49d036
xor edi, edi
pop ebp
pop ebx
cmp dword [0x4ce27c], esi
jbe 0x49d125
push edi
call fcn.0049ace8
inc edi
cmp edi, dword [0x4ce27c]
jb 0x49d116
xor edi, edi
cmp edi, 0x26
jne 0x49d131
call fcn.0049ae31
inc edi
cmp edi, 0x3dc4b7
jl 0x49d127
call fcn.0049ca6b
cmp dword [0x4ce27c], 0x1d
jne 0x49d23e
push esi
lea eax, [esp + 0x14]
push eax
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_WriteConsoleA]
push esi
push esi
call dword [sym.imp.KERNEL32.dll_EndUpdateResourceW]
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_DefineDosDeviceW]
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAdjustment]
push esi
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
push esi
push esi
call dword [sym.imp.KERNEL32.dll_SetMailslotInfo]
lea eax, [esp + 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_CreateActCtxW]
push 0x4018fc
lea eax, [esp + 0x64]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [esp + 0x30]
push eax
push esi
push esi
call dword [sym.imp.KERNEL32.dll_GetThreadSelectorEntry]
push esi
push esi
call dword [sym.imp.KERNEL32.dll_TerminateThread]
push esi
lea eax, [esp + 0x464]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemWow64DirectoryW]
push esi
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetConsoleMode]
xor eax, eax
mov dword [esp + 0x1c], esi
lea edi, [esp + 0x20]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x1c]
push eax
push esi
lea eax, [esp + 0x146c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
push 0x401910
push 0x401964
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
push 0x40198c
push esi
lea eax, [esp + 0xc68]
push eax
push 0x4019bc
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionA]
call dword [sym.imp.KERNEL32.dll_DebugBreak]
lea eax, [esp + 8]
push eax
push esi
push 0x4019f4
push esi
push esi
call dword [sym.imp.KERNEL32.dll_GetStringTypeExA]
pop edi
xor eax, eax
pop esi
add esp, 0x1c58
ret 0x10