Function at 0x4c7d18
Capabilities:
Copy file
Create process on windows
Delete file
Get common file path
Get program files directory
Set console window title

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x44
push 0
push 0
dec ecx
jne 0x4c7d20
push ebx
push esi
push edi
mov eax, dword [0x4cc79c]
mov byte [eax], 1
mov eax, 0x4c1028
call fcn.0040b1a0
xor eax, eax
push ebp
push 0x4c8340
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.004045d0
cmp eax, 2
jne 0x4c7dbb
xor eax, eax
mov dword [0x4cc3c0], eax
lea edx, [ebp - 0x14]
mov eax, 1
call fcn.00404630
mov eax, dword [ebp - 0x14]
mov edx, 0x4c8360
call fcn.00411b58
test al, al
je 0x4c7d93
lea edx, [ebp - 0x18]
mov eax, 2
call fcn.00404630
mov eax, dword [ebp - 0x18]
call fcn.004125f4
mov dword [0x4cc3c0], eax
lea eax, [ebp - 0x28]
mov edx, dword [0x4cc3c0]
mov cl, 0xfc
call fcn.0042287c
lea eax, [ebp - 0x28]
call fcn.004b77c0
test eax, eax
jne 0x4c7dbb
xor edx, edx
mov eax, 0x4c8380
call fcn.004b7a10
xor edx, edx
push ebp
push 0x4c8240
push dword fs:[edx]
mov dword fs:[edx], esp
push 0x4c83bc
lea edx, [ebp - 0x30]
mov eax, dword [0x4cc3c0]
inc eax
call fcn.00412398
push dword [ebp - 0x30]
push 0x4c83d4
lea eax, [ebp - 0x2c]
mov edx, 3
call fcn.00407b6c
mov edx, dword [ebp - 0x2c]
mov eax, 0x4d23f4
call fcn.00407830
mov eax, dword [0x4d23f4]
call fcn.0040746c
push eax
push 0
call sub.user32.dll_FindWindowW
test eax, eax
je 0x4c7e40
push 0x40
mov eax, dword [0x4d23f4]
call fcn.0040746c
mov ecx, eax
mov edx, 0x4c8430
mov eax, dword [0x4cc724]
mov eax, dword [eax]
call fcn.00475394
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4c82b4
call fcn.004b7844
mov eax, dword [0x4d23f4]
call fcn.0040746c
push eax
call sub.kernel32.dll_SetConsoleTitleW
call fcn.004b7bcc
lea edx, [ebp - 0x38]
xor eax, eax
call fcn.00404630
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x34]
call fcn.00412f84
mov eax, dword [ebp - 0x34]
call fcn.00413114
lea eax, [ebp - 0x1c0]
call fcn.0045448c
lea edx, [ebp - 0x1c0]
mov eax, 0x4d23f8
mov ecx, dword [0x4541ec]
call fcn.0040865c
lea edx, [ebp - 0x1c8]
xor eax, eax
call fcn.00404630
mov eax, dword [ebp - 0x1c8]
lea edx, [ebp - 0x1c4]
call fcn.00412f84
mov edx, dword [ebp - 0x1c4]
mov eax, 0x4d23f0
call fcn.004075cc
cmp dword [0x4d2548], 6
jne 0x4c7f23
cmp dword [0x4d254c], 2
jne 0x4c7f23
mov eax, 0x4d23f0
mov edx, 0x4c8448
call fcn.004079c8
mov eax, dword [0x4d23f0]
call fcn.00412c34
test al, al
jne 0x4c7f23
lea edx, [ebp - 0x1d0]
xor eax, eax
call fcn.00404630
mov eax, dword [ebp - 0x1d0]
lea edx, [ebp - 0x1cc]
call fcn.00412f84
mov edx, dword [ebp - 0x1cc]
mov eax, 0x4d23f0
call fcn.004075cc
push 0
mov eax, dword [0x4d2548]
mov dword [ebp - 0x1e8], eax
mov byte [ebp - 0x1e4], 0
mov eax, dword [0x4d254c]
mov dword [ebp - 0x1e0], eax
mov byte [ebp - 0x1dc], 0
mov eax, dword [0x4d2550]
mov dword [ebp - 0x1d8], eax
mov byte [ebp - 0x1d4], 0
lea edx, [ebp - 0x1e8]
mov ecx, 2
mov eax, 0x4c8464
call fcn.004b7a8c
push 0
mov eax, dword [0x4d23f0]
mov dword [ebp - 0x1f0], eax
mov byte [ebp - 0x1ec], 0x11
lea edx, [ebp - 0x1f0]
xor ecx, ecx
mov eax, 0x4c84a0
call fcn.004b7a8c
lea eax, [ebp - 0x1f4]
mov ecx, 0x4c84d4
mov edx, dword [0x4d23f0]
call fcn.00407a88
mov eax, dword [ebp - 0x1f4]
call fcn.00412bec
test al, al
jne 0x4c8004
mov edx, 4
mov eax, 0x4c84f8
call fcn.004b7a10
mov edx, 4
mov eax, 0x4c8540
call fcn.004b7a10
mov edx, 0x4d23e4
mov eax, dword [0x4cc6c0]
call fcn.00408004
mov eax, dword [0x4cc6c0]
call fcn.00404ebc
call fcn.004043c4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4c82b4
mov eax, 0x4c8578
call fcn.004beacc
mov eax, 0x4c85a0
call fcn.004beacc
mov eax, 0x4c85c8
call fcn.004beacc
push 0
push 0
push 0x4c85e0
push 0x4c864c
push 0
push 0
call sub.shell32.dll_ShellExecuteW
mov eax, 0x4c866c
call fcn.0041919c
mov byte [0x4d23e0], al
lea edx, [ebp - 0x1fc]
xor eax, eax
call fcn.00404630
mov eax, dword [ebp - 0x1fc]
lea edx, [ebp - 0x1f8]
call fcn.00412f84
mov eax, dword [ebp - 0x1f8]
call fcn.00413114
mov edx, 7
mov eax, 0x4c8684
call fcn.004b7a10
call fcn.004becbc
call fcn.004c0cd8
call fcn.004be9d4
mov eax, 0x4c86c8
call fcn.00412bec
test al, al
je 0x4c8178
mov eax, 0x4c86c8
call fcn.004beacc
mov eax, 0x4c86ec
call fcn.004beacc
lea eax, [ebp - 0x200]
call fcn.004beca8
lea eax, [ebp - 0x200]
mov edx, 0x4c8710
call fcn.004079c8
mov ebx, dword [ebp - 0x200]
mov dword [ebp - 0x204], ebx
mov eax, dword [ebp - 0x204]
call fcn.00407658
push eax
call sub.kernel32.dll_DeleteFileW
cmp eax, 1
sbb eax, eax
inc eax
push 0
lea eax, [ebp - 0x208]
call fcn.004beca8
lea eax, [ebp - 0x208]
mov edx, 0x4c8710
call fcn.004079c8
mov eax, dword [ebp - 0x208]
call fcn.00407658
push eax
push 0x4c8740
call sub.kernel32.dll_CopyFileW
push 0x64
call sub.kernel32.dll_Sleep_1
push 0
lea eax, [ebp - 0x20c]
call fcn.004beca8
mov eax, dword [ebp - 0x20c]
call fcn.00407658
push eax
push 0
lea eax, [ebp - 0x210]
call fcn.004beca8
lea eax, [ebp - 0x210]
mov edx, 0x4c8710
call fcn.004079c8
mov eax, dword [ebp - 0x210]
call fcn.00407658
push eax
push 0
push 0
call sub.shell32.dll_ShellExecuteW
mov eax, 0x4c8764
call fcn.004c0c50
test eax, eax
je 0x4c819c
xor edx, edx
mov eax, 0x4c8784
call fcn.004b7a10
push 0x1388
call sub.kernel32.dll_Sleep_1
call fcn.004bdfcc
mov eax, dword [0x4cc7bc]
cmp byte [eax], 0
je 0x4c81c6
push 0x40030
mov ecx, 0x4c879c
mov edx, 0x4c87a4
mov eax, dword [0x4cc724]
mov eax, dword [eax]
call fcn.00475394
push 0
push 0x26
push 0x4d2584
push 0
call sub.shell32.dll_SHGetSpecialFolderPathW
lea eax, [ebp - 0x214]
mov edx, 0x4d2584
mov ecx, 0x105
call fcn.004077b4
mov edx, dword [ebp - 0x214]
mov eax, 0x4d2580
mov ecx, 0x4c88f8
call fcn.00407a88
push 0
push 0
push 0
lea eax, [ebp - 0x218]
mov edx, dword [0x4d2580]
mov ecx, 0
call fcn.004077f8
mov eax, dword [ebp - 0x218]
call fcn.00406edc
push eax
push 0
push 0
call sub.shell32.dll_ShellExecuteA
call fcn.004b7d1c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4c82b4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4c834a
lea eax, [ebp - 0x220]
mov edx, 2
call fcn.004075c4
lea eax, [ebp - 0x218]
call fcn.0040695c
lea eax, [ebp - 0x214]
mov edx, 4
call fcn.004075c4
lea eax, [ebp - 0x200]
mov edx, 4
call fcn.004075c4
lea eax, [ebp - 0x1d0]
mov edx, 4
call fcn.004075c4
lea eax, [ebp - 0x1c0]
mov edx, dword [0x4541ec]
call fcn.004084d8
lea eax, [ebp - 0x38]
mov edx, 4
call fcn.004075c4
lea eax, [ebp - 0x28]
call fcn.0041d7b8
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.004075c4
ret