Function at 0x402e99
Capabilities:
Accept command line arguments
Copy file
Create pipe
Manipulate console buffer
Move file
Terminate thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xcec
push ebx
push esi
xor ebx, ebx
push edi
xor esi, esi
cmp esi, 0xc18
jne 0x402ebc
mov eax, 0x38d6
add dword [0xacf704], eax
cmp dword [0xacf704], 0xbc4
jne 0x402ed3
push 0x401450
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
inc esi
cmp esi, 0x319c8e
jl 0x402ea9
call fcn.00402e85
xor esi, esi
cmp dword [0xacf704], ebx
jbe 0x402f2d
push esi
call fcn.00402bcc
cmp dword [0xacf704], 0x1af
jne 0x402f24
push ebx
lea eax, [ebp - 0x4ec]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 8]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetNamedPipeHandleStateA]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
inc esi
cmp esi, dword [0xacf704]
jb 0x402eeb
mov esi, 0x91973f
cmp dword [0xacf704], 0x465
jne 0x402f86
call dword [sym.imp.KERNEL32.dll_GetConsoleAliasExesLengthW]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_EnumCalendarInfoA]
push ebx
lea eax, [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetConsoleTitleW]
push ebx
call dword [sym.imp.KERNEL32.dll_HeapLock]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetTapeParameters]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WriteTapemark]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
dec esi
jne 0x402f32
cmp esi, 0x1c86b
jge 0x402fb9
push ebx
push ebx
call dword [sym.imp.USER32.dll_GetMenuInfo]
push ebx
push ebx
call dword [sym.imp.USER32.dll_GetComboBoxInfo]
push ebx
push ebx
call dword [sym.imp.USER32.dll_CharUpperBuffA]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.GDI32.dll_GetCharABCWidthsA]
cmp esi, 0x1e9d5c97
jle 0x402fd3
cmp dword [ebp - 8], 0xace7c8
je 0x402fd3
cmp dword [ebp - 0x44], 0xad642ec
jne 0x402fdc
inc esi
cmp esi, 0x8e2a3b3f
jb 0x402f89
xor esi, esi
cmp dword [0xacf704], 0x92
jne 0x402ff1
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
cmp esi, 0xa9a9
jne 0x403009
push 0x423308
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [0xacf700], eax
inc esi
cmp esi, 0x25563
jl 0x402fde
mov byte [0x423308], bl
xor esi, esi
cmp esi, 0x148
jne 0x403027
call fcn.00402d87
inc esi
cmp esi, 0x427fa7
jl 0x40301a
push 0x412010
push dword [0xacf704]
push dword [0xac1fc0]
call fcn.00402b1f
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
xor edi, edi
cmp dword [0xacf704], 0x10
jne 0x40305a
push ebx
call esi
cmp edi, 0x1e674
jne 0x403067
call fcn.00402d79
inc edi
cmp edi, 0x3e4e2
jl 0x40304e
mov edi, 0xdd7b3
cmp dword [0xacf704], 0x21
jne 0x403096
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateNamedPipeW]
dec edi
jne 0x403075
call fcn.0040291b
cmp dword [0xacf704], 0x58c
jne 0x403199
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFlags]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindFirstVolumeW]
push 0x4014b0
push ebx
call dword [sym.imp.KERNEL32.dll_CreateJobObjectW]
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceA]
lea eax, [ebp - 8]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetHandleInformation]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xcec]
push eax
push ebx
push 0x4014ec
push 0x401528
push 0x401574
call dword [sym.imp.KERNEL32.dll_SearchPathW]
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteTimerQueue]
push ebx
push ebx
push ebx
lea eax, [ebp - 0xec]
push eax
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoA]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindFirstChangeNotificationA]
lea eax, [ebp - 0x18]
push eax
call esi
push ebx
call esi
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x4ec]
push eax
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SearchPathA]
xor eax, eax
mov word [ebp - 4], ax
lea edi, [ebp - 2]
stosw word es:[edi], ax
mov word [ebp - 0xc], ax
lea edi, [ebp - 0xa]
stosw word es:[edi], ax
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 0xc]
lea eax, [ebp - 0x14]
push dword [ebp - 4]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_WriteConsoleOutputA]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_TerminateThread]
lea eax, [ebp - 0x20]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetBinaryTypeA]
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MoveFileWithProgressW]
call fcn.00402d73
pop edi
pop esi
xor eax, eax
pop ebx
leave
ret