Function at 0x405fa0
Capabilities:
Copy file
Create process on windows
Delete file

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe14
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x1ec], eax
mov dword [ebp - 0x1e8], eax
mov dword [ebp - 0x1e4], eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], eax
lea esi, [ebp - 0x1e0]
xor eax, eax
push ebp
push 0x40621e
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x14]
call fcn.00404860
push 0
mov eax, dword [ebp - 0x14]
call fcn.00402514
push eax
lea edx, [ebp - 0x1e4]
xor eax, eax
call fcn.004013a8
mov eax, dword [ebp - 0x1e4]
call fcn.00402514
push eax
call sub.kernel32.dll_CopyFileA
test eax, eax
je 0x4061f3
lea edx, [ebp - 4]
mov eax, dword [ebp - 0x14]
call fcn.00404734
mov eax, dword [ebp - 4]
call fcn.0040231c
mov ebx, eax
lea eax, [ebp - 8]
call fcn.004021f4
jmp 0x40605f
lea eax, [ebp - 0x1e8]
mov edx, dword [ebp - 4]
mov dl, byte [edx + ebx - 1]
call fcn.004022e8
mov edx, dword [ebp - 0x1e8]
lea eax, [ebp - 8]
mov ecx, dword [ebp - 8]
call fcn.00402368
dec ebx
test ebx, ebx
jle 0x40606d
mov eax, dword [ebp - 4]
cmp byte [eax + ebx - 1], 0
jne 0x40603b
cmp dword [ebp - 8], 0
jne 0x406086
mov eax, dword [ebp - 0x14]
call fcn.00402514
push eax
call sub.kernel32.dll_DeleteFileA
jmp 0x4061f3
mov eax, dword [ebp - 8]
call fcn.0040231c
mov ecx, eax
lea eax, [ebp - 4]
mov edx, ebx
call fcn.004025a8
jmp 0x4061d0
lea eax, [ebp - 0x10]
push eax
mov edx, dword [ebp - 8]
mov eax, 0x406234
call fcn.004025f0
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.00402568
mov edx, dword [ebp - 8]
mov eax, 0x406234
call fcn.004025f0
mov ecx, eax
lea eax, [ebp - 8]
mov edx, 1
call fcn.004025a8
lea eax, [ebp - 0xc]
push eax
mov edx, dword [ebp - 0x10]
mov eax, 0x406240
call fcn.004025f0
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.00402568
mov edx, dword [ebp - 0x10]
mov eax, 0x406240
call fcn.004025f0
mov ecx, eax
lea eax, [ebp - 0x10]
mov edx, 1
call fcn.004025a8
mov eax, dword [ebp - 0x10]
call fcn.004045b0
mov ebx, eax
xor eax, eax
push ebp
push 0x406191
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0xc]
mov eax, esi
call fcn.0040170c
mov eax, esi
call fcn.0040149c
call fcn.00401220
lea eax, [ebp - 0x1ec]
push eax
mov eax, dword [ebp - 4]
call fcn.0040231c
mov edx, eax
sub edx, ebx
mov ecx, ebx
mov eax, dword [ebp - 4]
call fcn.00402568
mov edx, dword [ebp - 0x1ec]
mov eax, esi
call fcn.0040269c
call fcn.004017bc
call fcn.00401220
mov eax, esi
call fcn.0040187c
call fcn.00401220
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4061a2
mov eax, dword [ebp - 4]
call fcn.0040231c
mov edx, eax
sub edx, ebx
lea eax, [ebp - 4]
mov ecx, ebx
call fcn.004025a8
push 1
push 0
push 0
mov eax, dword [ebp - 0xc]
call fcn.00402514
push eax
push 0
push 0
call sub.shell32.dll_ShellExecuteA
mov edx, dword [ebp - 8]
mov eax, 0x406234
call fcn.004025f0
test eax, eax
jg 0x40609f
mov eax, dword [ebp - 0x14]
call fcn.00402514
push eax
call sub.kernel32.dll_DeleteFileA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x406225
lea eax, [ebp - 0x1ec]
mov edx, 3
call fcn.00402218
lea eax, [ebp - 0x14]
mov edx, 5
call fcn.00402218
ret