Function at 0x40feef
Capabilities:
Copy file
Create process on windows
Delete file
Get common file path
Move file
Terminate process

Disassembly:
push ebp
lea ebp, [esp - 0xa84]
sub esp, 0xb04
mov eax, dword [0x4377f4]
push ebx
push esi
mov esi, dword [ebp + 0xa8c]
push edi
mov edi, dword [ebp + 0xa94]
xor eax, ebp
xor ebx, ebx
push ebx
mov dword [ebp + 0xa80], eax
call dword [sym.imp.ole32.dll_CoInitialize]
push ebx
push ebx
push ebx
push ebx
mov dword [0x438870], esi
call dword [sym.imp.USER32.dll_DefWindowProcA]
push 4
call fcn.0040db52
pop ecx
push ebx
push esi
push ebx
mov ecx, 0x438874
call fcn.0040dc56
cmp edi, ebx
mov byte [ebp + 0x2b], bl
je 0x41017b
push str._silent
push edi
call fcn.0041c4e0
test eax, eax
pop ecx
pop ecx
jne 0x40ff67
mov byte [ebp + 0x2b], 1
push str._uninstall
push edi
call fcn.0041c4e0
test eax, eax
pop ecx
pop ecx
jne 0x41017b
mov esi, 0x200
push esi
lea eax, [ebp + 0x880]
push ebx
push eax
call fcn.0041c310
add esp, 0xc
push esi
lea eax, [ebp + 0x880]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp + 0x880]
push eax
lea ecx, [ebp + 0x48]
call fcn.0040299a
push esi
lea eax, [ebp + 0x680]
push ebx
push eax
call fcn.0041c310
add esp, 0xc
lea eax, [ebp + 0x680]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
push 0xffffffffffffffff
push 0x42c6fc
lea ecx, [ebp + 0x48]
call fcn.0040224b
inc eax
push 0xffffffffffffffff
push eax
lea eax, [ebp + 0x48]
push eax
lea ecx, [ebp + 0x2c]
call fcn.004028f4
lea eax, [ebp + 0x2c]
push eax
push str.temp
lea ecx, [ebp - 0x80]
call fcn.0040299a
push eax
lea eax, [ebp + 0x680]
push eax
lea ecx, [ebp - 0x48]
call fcn.0040299a
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.00402a92
add esp, 0xc
push eax
lea eax, [ebp + 0x64]
push eax
call fcn.00402a92
add esp, 0xc
xor edi, edi
push ebx
inc edi
push edi
lea ecx, [ebp - 0x64]
call fcn.00402285
push ebx
push edi
lea ecx, [ebp - 0x48]
call fcn.00402285
push ebx
push edi
lea ecx, [ebp - 0x80]
call fcn.00402285
cmp dword [ebp + 0x7c], 0x10
mov eax, dword [ebp + 0x68]
jae 0x410056
lea eax, [ebp + 0x68]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [ebp + 0x7c], 0x10
mov eax, dword [ebp + 0x68]
jae 0x410069
lea eax, [ebp + 0x68]
push ebx
push eax
lea eax, [ebp + 0x880]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
push 0x44
lea eax, [ebp - 0x2c]
push ebx
push eax
call fcn.0041c310
push 0x10
lea eax, [ebp + 0x18]
push ebx
push eax
call fcn.0041c310
push esi
lea eax, [ebp + 0x80]
push ebx
push eax
mov dword [ebp - 0x2c], 0x44
mov dword [ebp - 0x24], ebx
mov dword [ebp], edi
mov word [ebp + 4], di
call fcn.0041c310
push esi
lea eax, [ebp + 0x280]
push ebx
push eax
call fcn.0041c310
push esi
lea eax, [ebp + 0x480]
push ebx
push eax
call fcn.0041c310
mov eax, dword [ebp + 0x68]
add esp, 0x3c
cmp dword [ebp + 0x7c], 0x10
jae 0x4100da
lea eax, [ebp + 0x68]
push eax
lea eax, [ebp + 0x480]
push 0x42c73c
push eax
call fcn.0041da3b
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
lea eax, [ebp + 0x280]
push str._uninstall2__u
push eax
call fcn.0041da3b
lea eax, [ebp + 0x280]
push eax
lea eax, [ebp + 0x480]
push eax
lea eax, [ebp + 0x80]
push str._s__s
push eax
call fcn.0041da3b
add esp, 0x1c
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp + 0x680]
push eax
push ebx
push 0x20
push edi
push ebx
push ebx
lea eax, [ebp + 0x80]
push eax
lea eax, [ebp + 0x480]
push eax
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
push 0x3e8
mov esi, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [ebp + 0x7c], 0x10
mov eax, dword [ebp + 0x68]
jae 0x41016b
lea eax, [ebp + 0x68]
push 4
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExA]
push esi
call fcn.0041dc1a
lea ecx, [ebp + 0x8ec]
call fcn.0040de2a
mov al, byte [ebp + 0x2b]
mov esi, str._uninstall2
push esi
mov byte [ebp + 0xa7c], bl
mov byte [ebp + 0xa7e], al
call fcn.0041cac0
push eax
push esi
push edi
call fcn.0041e7b0
add esp, 0x10
test eax, eax
jne 0x41023f
push esi
push edi
mov byte [ebp + 0xa7c], 1
call fcn.0041c4e0
test eax, eax
pop ecx
pop ecx
je 0x41023f
push esi
call fcn.0041cac0
lea eax, [eax + edi + 1]
push eax
call fcn.0041da36
pop ecx
pop ecx
mov esi, eax
push esi
push ebx
push 0x100400
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov edi, eax
cmp edi, ebx
jne 0x41022f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
lea eax, [ebp + 0x75c]
push str.Failed_to_open_process___u___d
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x40
push str.Uninstaller
lea eax, [ebp + 0x75c]
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [ebp + 0x8ec]
call fcn.0040e115
xor eax, eax
jmp 0x410271
push 0xffffffffffffffff
push edi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp + 0x8ec]
call fcn.0040e151
lea ecx, [ebp + 0x8ec]
mov esi, eax
call fcn.0040e115
mov ecx, 0x438874
call fcn.0040de03
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, esi
mov ecx, dword [ebp + 0xa80]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041c2f6
add ebp, 0xa84
leave
ret 0x10