Function at 0x403b33
Capabilities:
Copy file
Get common file path
Get disk information
Get file attributes
Get hostname
Manipulate console buffer
Move file
Read .ini file
Read file on windows
Read pipe
Write pipe

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x3880
call fcn.00405c90
push ebx
push esi
xor ebx, ebx
push edi
xor esi, esi
cmp esi, 0x13e6
jne 0x403b5a
mov eax, 0x38d6
add dword [0x45ec34], eax
cmp dword [0x45ec34], 0xbc4
jne 0x403b71
push 0x4013e4
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
inc esi
cmp esi, 0x31a4c2
jl 0x403b47
call fcn.00403b1f
xor esi, esi
cmp dword [0x45ec34], ebx
jbe 0x403bcd
push esi
call fcn.004038b0
cmp dword [0x45ec34], 0x1af
jne 0x403bc4
push ebx
lea eax, [ebp - 0x880]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x14]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetNamedPipeHandleStateW]
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
inc esi
cmp esi, dword [0x45ec34]
jb 0x403b89
mov esi, dword [sym.imp.KERNEL32.dll_GetConsoleFontSize]
mov dword [ebp - 4], 0x91973f
cmp dword [0x45ec34], 0x465
jne 0x403ddd
call dword [sym.imp.KERNEL32.dll_GetConsoleAliasExesLengthA]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_EnumCalendarInfoA]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetConsoleMode]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_EnumDateFormatsA]
push ebx
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
push ebx
push ebx
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedCompareExchange]
push ebx
call dword [sym.imp.KERNEL32.dll_ConvertThreadToFiber]
push ebx
push ebx
lea eax, [ebp - 0x1c80]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStructA]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetOverlappedResult]
push ebx
lea eax, [ebp - 0x58]
push eax
call esi
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
push ebx
call dword [sym.imp.KERNEL32.dll_InitAtomTable]
lea eax, [ebp - 0x28]
push eax
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WriteConsoleInputW]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SetCommState]
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalUnfix]
push ebx
call dword [sym.imp.KERNEL32.dll_LocalLock]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
push ebx
call dword [sym.imp.KERNEL32.dll_LocalCompact]
lea eax, [ebp - 0x70]
push eax
call dword [sym.imp.KERNEL32.dll_ResetEvent]
lea eax, [ebp - 0x1880]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsA]
push 0x4013f8
push 0x401400
call dword [sym.imp.KERNEL32.dll_MoveFileA]
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
lea eax, [ebp - 0x2c80]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
push ebx
lea eax, [ebp - 0x3880]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetVolumePathNameW]
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x2080]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetComputerNameExA]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x2480]
push eax
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SearchPathA]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_ActivateActCtx]
xor eax, eax
mov dword [ebp - 0x48], ebx
lea edi, [ebp - 0x44]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x2c]
push eax
push ebx
lea eax, [ebp - 0x1080]
push eax
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_TransactNamedPipe]
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
push ebx
push ebx
lea eax, [ebp - 0x3080]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionNamesA]
lea eax, [ebp - 0x10]
push eax
push ebx
push 0x401408
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetStringTypeExA]
push ebx
push ebx
lea eax, [ebp - 0x1480]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStructA]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileSectionA]
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedFlushSList]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_EnumSystemLocalesW]
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0xc80]
push eax
call dword [sym.imp.KERNEL32.dll_GetComputerNameA]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
push ebx
lea eax, [ebp - 0x480]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea eax, [ebp - 0xc]
push eax
push ebx
push ebx
lea eax, [ebp - 8]
push eax
push ebx
push ebx
push ebx
mov dword [ebp - 0xc], ebx
call dword [sym.imp.KERNEL32.dll_BackupWrite]
dec dword [ebp - 4]
jne 0x403bda
xor edi, edi
cmp edi, 0x1c860
jge 0x403df6
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp edi, 0x1e97427b
jle 0x403e10
cmp dword [ebp - 8], 0xace7c8
je 0x403e10
cmp dword [ebp - 0x74], 0xad642ec
jne 0x403e19
inc edi
cmp edi, 0x8e2a6250
jb 0x403de8
xor edi, edi
cmp dword [0x45ec34], 0x92
jne 0x403e34
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_DuplicateHandle]
cmp edi, 0xa9a9
jne 0x403e4c
push 0x4459e8
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [0x45ec30], eax
inc edi
cmp edi, 0x25563
jl 0x403e1b
mov byte [0x4459e8], bl
xor edi, edi
cmp edi, 0x148
jne 0x403e6a
call fcn.00403a21
inc edi
cmp edi, 0x427fa7
jl 0x403e5d
push 0x419010
push dword [0x45ec34]
push dword [0x45e7e0]
call fcn.0040384a
xor edi, edi
cmp dword [0x45ec34], 0x10
jne 0x403e9b
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp edi, 0x2f7e4
jne 0x403ea8
call fcn.00403a13
inc edi
cmp edi, 0x48122
jl 0x403e8b
call fcn.00403648
cmp dword [0x45ec34], 0x58c
jne 0x403f41
push ebx
call dword [sym.imp.KERNEL32.dll_LocalFlags]
push ebx
lea eax, [ebp - 0x480]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstVolumeA]
push ebx
push ebx
call esi
xor eax, eax
mov word [ebp - 4], ax
lea edi, [ebp - 2]
stosw word es:[edi], ax
lea eax, [ebp - 8]
push eax
push dword [ebp - 4]
lea eax, [ebp - 0x10]
push ebx
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadConsoleOutputAttribute]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateJobObjectW]
push 0x401414
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push ebx
push ebx
lea eax, [ebp - 0xc80]
push eax
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
push ebx
push dword [ebp - 8]
push ebx
call dword [sym.imp.KERNEL32.dll_SetHandleInformation]
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteTimerQueue]
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
call fcn.00403a0d
pop edi
pop esi
xor eax, eax
pop ebx
leave
ret