Function at 0x405f15
Capabilities:
Accept command line arguments
Copy file
Create directory
Delete file
Get common file path
Get file system object information
Set current directory
Shutdown system
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2d8
push ebx
push esi
xor esi, esi
lea ecx, [ebp - 1]
push edi
mov dword [ebp - 0x14], esi
call fcn.00405ad5
mov ebx, eax
mov ecx, ebx
call fcn.00405e5f
push 0x20
pop eax
mov dword [ebp - 8], esi
mov edi, eax
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
push 0x8001
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push esi
call dword [sym.imp.ole32.dll_OleInitialize]
push 8
mov dword [0x41dcdc], eax
call fcn.004097ed
push esi
push 0x2b4
mov dword [0x44e3d0], eax
lea eax, [ebp - 0x2d8]
push eax
push esi
push 0x416410
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
lea ecx, [ebp - 1]
call fcn.004058e0
mov esi, eax
mov ecx, esi
call fcn.00405e8b
push esi
push 0x4463b8
call fcn.00409ad1
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
mov esi, 0x4d60a0
push esi
call fcn.00409ad1
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push 0x22
pop ecx
mov dword [0x44e3cc], eax
mov eax, esi
cmp word [0x4d60a0], cx
jne 0x405fd1
mov edi, ecx
mov eax, 0x4d60a2
push edi
push eax
call fcn.00409523
push eax
call dword [sym.imp.USER32.dll_CharNextW]
mov ecx, eax
mov dword [ebp - 0xc], ecx
movzx eax, word [ecx]
test ax, ax
je 0x4060f4
push 0x22
mov esi, eax
pop edi
push 0x20
pop edx
movzx eax, si
cmp si, dx
jne 0x40600b
add ecx, 2
movzx eax, word [ecx]
cmp ax, dx
je 0x406000
mov dword [ebp - 0x10], edx
movzx esi, ax
movzx edx, ax
cmp ax, di
jne 0x406020
movzx edx, word [ecx + 2]
mov dword [ebp - 0x10], edi
push 0x22
pop eax
cmp si, ax
lea edi, [ecx + 2]
cmovne edi, ecx
cmp dx, 0x2f
jne 0x4060aa
add edi, 2
cmp word [edi], 0x53
jne 0x406050
movzx eax, word [edi + 2]
push 0x20
pop ecx
cmp ax, cx
je 0x40604c
test ax, ax
jne 0x406050
or dword [ebp - 8], 2
lea ecx, [ebp - 1]
call fcn.00405a35
mov esi, eax
mov ecx, esi
call fcn.00405da1
push 4
push esi
push edi
call fcn.00405eb1
add esp, 0xc
test eax, eax
jne 0x406086
movzx eax, word [edi + 8]
push 0x20
pop ecx
cmp ax, cx
je 0x406082
test ax, ax
jne 0x406086
or dword [ebp - 8], 4
lea ecx, [ebp - 1]
call fcn.00405c65
mov esi, eax
mov ecx, esi
call fcn.00405dc7
push 4
lea eax, [edi - 4]
push esi
push eax
call fcn.00405eb1
add esp, 0xc
test eax, eax
je 0x4060d6
push dword [ebp - 0x10]
push edi
call fcn.00409523
mov ecx, eax
push 0x22
pop edi
movzx eax, word [ecx]
mov edx, eax
cmp ax, di
jne 0x4060c8
add ecx, 2
movzx edx, word [ecx]
movzx esi, dx
test dx, dx
jne 0x405ff5
jmp 0x4060f4
push 8
lea eax, [edi - 4]
push 0
push eax
call fcn.00401050
add esp, 0xc
lea eax, [edi + 4]
push eax
push 0x4da0a8
call fcn.00409ad1
mov edi, 0x4ea0c8
push edi
push 0x2004
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
call fcn.00405d47
test eax, eax
jne 0x40613f
push 0x1fff
push edi
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea ecx, [ebp - 1]
call fcn.0040574a
mov esi, eax
mov ecx, esi
call fcn.00405ded
push esi
push edi
call fcn.00409ac7
call fcn.00405d47
test eax, eax
je 0x4061f8
push 0x4e60c0
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push dword [ebp - 8]
call fcn.00405237
mov ebx, eax
test ebx, ebx
jne 0x4061f8
cmp dword [0x431dbc], eax
je 0x4061e9
xor esi, esi
mov ebx, 0x4d60a0
push esi
push ebx
call fcn.00409523
mov edi, eax
cmp edi, ebx
jb 0x4061a6
lea ecx, [ebp - 1]
call fcn.00405995
mov esi, eax
mov ecx, esi
call fcn.00405d7b
push 4
push esi
push edi
call fcn.00405eb1
add esp, 0xc
test eax, eax
je 0x4061a4
sub edi, 2
cmp edi, ebx
jae 0x40617c
xor esi, esi
lea ecx, [ebp - 1]
call fcn.004057e8
mov ebx, eax
mov ecx, ebx
call fcn.00405e39
cmp edi, 0x4d60a0
jb 0x40621e
xor eax, eax
mov word [edi], ax
add edi, 8
push edi
call fcn.0040954e
test eax, eax
je 0x4061f8
push edi
push 0x4da0a8
call fcn.00409ad1
push edi
push 0x4de0b0
call fcn.00409ad1
mov ebx, esi
or dword [0x41dc94], 0xffffffff
call fcn.00408326
mov dword [ebp - 0x14], eax
call fcn.00405d05
call dword [sym.imp.ole32.dll_OleUninitialize]
test ebx, ebx
je 0x406320
push 0x200010
push ebx
call fcn.00409944
push 2
call dword [sym.imp.KERNEL32.dll_ExitProcess]
lea ecx, [ebp - 1]
call fcn.00405695
mov esi, eax
mov ecx, esi
call fcn.00405e13
push esi
mov esi, 0x4ea0c8
push esi
call fcn.00409ac7
push 0x4e20b8
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x4061f8
xor edi, edi
push edi
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push esi
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
cmp word [0x4da0a8], di
jne 0x406274
push 0x4e20b8
push 0x4da0a8
call fcn.00409ad1
push dword [ebp - 0xc]
push section..ndata
call fcn.00409ad1
push 0x416414
push 0x48a008
call fcn.00409ad1
push 0x1a
pop esi
mov eax, dword [0x431db0]
push dword [eax + 0x120]
push 0x44e520
call fcn.00408ecc
push 0x44e520
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test ebx, ebx
je 0x406304
push 1
push 0x44e520
push 0x4f20d8
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x406304
push edi
push 0x44e520
call fcn.004091a0
mov eax, dword [0x431db0]
push dword [eax + 0x124]
push 0x44e520
call fcn.00408ecc
push 0x44e520
call fcn.004095cd
test eax, eax
je 0x406304
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, edi
inc word [0x48a008]
sub esi, 1
jne 0x406293
push edi
push 0x4ea0c8
call fcn.004091a0
jmp 0x4061f8
cmp dword [0x41dc7c], 0
je 0x4063a4
push 3
call fcn.004097ed
push 4
mov ebx, eax
call fcn.004097ed
push 5
mov esi, eax
call fcn.004097ed
mov edi, eax
test ebx, ebx
je 0x40638e
test esi, esi
je 0x40638e
test edi, edi
je 0x40638e
lea eax, [ebp - 0xc]
push eax
push 0x28
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call ebx
test eax, eax
je 0x40638e
lea eax, [ebp - 0x20]
push eax
push 0x416418
xor eax, eax
push eax
call esi
xor ecx, ecx
mov dword [ebp - 0x24], 1
push ecx
push ecx
push ecx
lea eax, [ebp - 0x24]
mov dword [ebp - 0x18], 2
push eax
push ecx
push dword [ebp - 0xc]
call edi
xor eax, eax
push eax
push 2
call dword [sym.imp.USER32.dll_ExitWindowsEx]
test eax, eax
jne 0x4063a4
push 9
call fcn.00402184
cmp dword [0x41dc94], 0xffffffff
mov ecx, dword [ebp - 0x14]
cmovne ecx, dword [0x41dc94]
push ecx
jmp 0x406218