Function at 0x40b6f0
Capabilities:
Create directory
Create process on windows
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x49c
mov eax, dword [0x40f050]
xor eax, ebp
mov dword [ebp - 4], eax
lea eax, [ebp - 0x228]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea ecx, [ebp - 0x488]
push ecx
push 0
push 0
lea edx, [ebp - 0x228]
push edx
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
jne 0x40b73c
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x40b9e8
lea eax, [ebp - 0x488]
push eax
call fcn.00401230
add esp, 4
movzx ecx, al
test ecx, ecx
je 0x40b76e
lea edx, [ebp - 0x488]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x40b76e
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x40b9e8
push 0
lea eax, [ebp - 0x488]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x40b78c
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x40b9e8
lea ecx, [ebp - 0x27c]
call fcn.00401270
lea ecx, [ebp - 0x27c]
push ecx
push str.executor.exe
lea edx, [ebp - 0x488]
push edx
call fcn.00401200
add esp, 0xc
lea ecx, [ebp - 0x27c]
call fcn.00401350
push eax
push str.EXECUTORFILE
mov eax, dword [ebp + 8]
push eax
call fcn.0040ba90
add esp, 0xc
movzx ecx, al
test ecx, ecx
jne 0x40b7f8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x48c], eax
lea ecx, [ebp - 0x27c]
call fcn.004012a0
mov eax, dword [ebp - 0x48c]
jmp 0x40b9e8
lea ecx, [ebp - 0x260]
call fcn.00401270
lea edx, [ebp - 0x260]
push edx
push 0x40db14
lea eax, [ebp - 0x488]
push eax
call fcn.00401200
add esp, 0xc
lea ecx, [ebp - 0x260]
call fcn.00401350
push eax
push str.MICROSOFTBOOTSTRAPPER
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040ba90
add esp, 0xc
movzx edx, al
test edx, edx
jne 0x40b86f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x490], eax
lea ecx, [ebp - 0x260]
call fcn.004012a0
lea ecx, [ebp - 0x27c]
call fcn.004012a0
mov eax, dword [ebp - 0x490]
jmp 0x40b9e8
lea ecx, [ebp - 0x244]
call fcn.00401270
lea eax, [ebp - 0x244]
push eax
push 0x40db54
push 0x40db6c
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040bbb0
add esp, 0x10
movzx edx, al
test edx, edx
jne 0x40b8d6
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x494], eax
lea ecx, [ebp - 0x244]
call fcn.004012a0
lea ecx, [ebp - 0x260]
call fcn.004012a0
lea ecx, [ebp - 0x27c]
call fcn.004012a0
mov eax, dword [ebp - 0x494]
jmp 0x40b9e8
lea ecx, [ebp - 0x20]
call fcn.00401270
lea eax, [ebp - 0x20]
push eax
push 0x40db8c
push 0x40dba4
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040bbb0
add esp, 0x10
movzx edx, al
test edx, edx
jne 0x40b93f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x498], eax
lea ecx, [ebp - 0x20]
call fcn.004012a0
lea ecx, [ebp - 0x244]
call fcn.004012a0
lea ecx, [ebp - 0x260]
call fcn.004012a0
lea ecx, [ebp - 0x27c]
call fcn.004012a0
mov eax, dword [ebp - 0x498]
jmp 0x40b9e8
lea ecx, [ebp - 0x244]
call fcn.00401350
push eax
push 0x40dbc4
push 0x40dbe4
lea ecx, [ebp - 0x27c]
call fcn.00401350
push eax
call fcn.0040b680
add esp, 0x10
lea ecx, [ebp - 0x20]
call fcn.00401350
push eax
push 0x40dbfc
push 0x40dc1c
lea ecx, [ebp - 0x27c]
call fcn.00401350
push eax
call fcn.0040b680
add esp, 0x10
push 1
push 0
push 0
lea ecx, [ebp - 0x260]
call fcn.00401350
push eax
push 0x40dc34
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov dword [ebp - 0x49c], 0
lea ecx, [ebp - 0x20]
call fcn.004012a0
lea ecx, [ebp - 0x244]
call fcn.004012a0
lea ecx, [ebp - 0x260]
call fcn.004012a0
lea ecx, [ebp - 0x27c]
call fcn.004012a0
mov eax, dword [ebp - 0x49c]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00403ee6
mov esp, ebp
pop ebp
ret 0x10