Function at 0x40c2eb
Capabilities:
Create process on windows
Get common file path
Write and execute a file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x844
push ebx
push esi
push edi
push str.:RepeatDEL___s_if_exist___s__goto_RepeatDEL___s_DEL___s_
lea ecx, [ebp - 0x14]
call fcn.00401075
mov eax, dword [0x42619c]
mov dword [ebp - 0x844], eax
mov ebx, 0x81
xor eax, eax
mov ecx, ebx
lea edi, [ebp - 0x840]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov esi, 0x104
push esi
lea eax, [ebp - 0x844]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea ecx, [ebp - 0xc]
call fcn.0040102a
push 0x8ae
lea ecx, [ebp - 0xc]
call fcn.00401863
push eax
lea eax, [ebp - 0x844]
push eax
call fcn.0040c23e
pop ecx
pop ecx
push 0xffffffffffffffff
lea ecx, [ebp - 0xc]
call fcn.004018df
lea eax, [ebp - 0xc]
push eax
lea ecx, [ebp - 4]
call fcn.00401036
push str._selfdestruct.bat
lea ecx, [ebp - 4]
call fcn.00401221
mov edx, dword [0x42619c]
xor eax, eax
mov dword [ebp - 0x638], edx
mov ecx, ebx
lea edi, [ebp - 0x634]
rep stosd dword es:[edi], eax
mov dword [ebp - 0x228], edx
mov ecx, ebx
lea edi, [ebp - 0x224]
rep stosd dword es:[edi], eax
mov dword [ebp - 0x430], edx
mov ecx, ebx
lea edi, [ebp - 0x42c]
rep stosd dword es:[edi], eax
mov edi, dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea eax, [ebp - 0x228]
push eax
push esi
call edi
lea eax, [ebp - 0x430]
push eax
push esi
call edi
push dword [ebp - 4]
lea eax, [ebp - 0x228]
push eax
call sub.MSVCRT.dll_wcscat
push dword [ebp - 4]
lea eax, [ebp - 0x430]
push eax
call sub.MSVCRT.dll_wcscat
add esp, 0x10
push esi
lea eax, [ebp - 0x638]
push eax
xor esi, esi
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x638]
push eax
lea ecx, [ebp - 0x10]
call fcn.00401075
push esi
push 0x80
push 2
push esi
push esi
push 0x40000000
lea eax, [ebp - 0x228]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
mov dword [ebp - 0x18], eax
je 0x40c4f1
lea ecx, [ebp - 8]
call fcn.0040102a
push 0x42598c
push dword [ebp - 4]
lea eax, [ebp - 8]
push dword [ebp - 0x10]
push dword [ebp - 0x10]
push dword [ebp - 0x14]
push eax
call fcn.0040147c
add esp, 0x18
push 0x415cc4
push 0x416c54
lea ecx, [ebp - 8]
call fcn.0040129c
mov eax, dword [ebp - 8]
cmp eax, esi
mov dword [ebp - 0x1c], eax
jne 0x40c47e
xor edi, edi
jmp 0x40c4ac
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea ebx, [eax + eax + 2]
mov eax, ebx
add eax, 3
and eax, 0xfffffffc
call fcn.0040c620
mov edi, esp
and byte [edi], 0
push esi
push esi
push ebx
push edi
push 0xffffffffffffffff
push dword [ebp - 0x1c]
push esi
push esi
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push esi
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 8]
call fcn.00401120
push eax
push edi
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
lea eax, [ebp - 0x430]
push eax
push esi
lea eax, [ebp - 0x228]
push eax
push str.open
push esi
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea ecx, [ebp - 8]
call fcn.00401911
lea ecx, [ebp - 0x10]
call fcn.00401911
lea ecx, [ebp - 4]
call fcn.00401911
lea ecx, [ebp - 0xc]
call fcn.00401911
lea ecx, [ebp - 0x14]
call fcn.00401911
lea esp, [ebp - 0x850]
pop edi
pop esi
pop ebx
leave
ret