Function at 0x407441
Capabilities:
Create thread
Get common file path

Disassembly:
mov eax, 0x40ebed
call fcn.0040e2c0
sub esp, 0x11c
mov eax, dword [0x415f54]
xor eax, dword [ebp + 4]
push ebx
push esi
mov esi, ecx
push edi
push dword [ebp + 8]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x14]
lea ecx, [esi + 0x30]
mov dword [esi + 0x3c], 0x80070057
mov dword [esi + 0x38], eax
call fcn.00401974
lea eax, [ebp - 0x128]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea eax, [ebp - 0x128]
push eax
xor edi, edi
push edi
push 0x410bb4
lea eax, [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
lea eax, [ebp - 0x128]
push eax
lea ecx, [ebp + 8]
call fcn.00406671
push 0x2f
lea ecx, [ebp + 8]
mov dword [ebp - 4], edi
call fcn.00401ccc
cmp eax, 0xffffffff
mov dword [ebp - 0x14], eax
jne 0x4074e1
push 0x5c
lea ecx, [ebp + 8]
call fcn.00401ccc
cmp eax, 0xffffffff
mov dword [ebp - 0x14], eax
je 0x407692
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc]
sub eax, dword [ebp - 0x14]
lea ecx, [ebp + 8]
dec eax
push eax
lea eax, [ebp + 0x14]
push eax
call fcn.00401fef
push str..exe
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 1
call fcn.00406671
mov ebx, eax
push edi
push 0x2e
lea ecx, [ebp + 0x14]
mov byte [ebp - 4], 2
call fcn.00401c9d
push eax
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp + 0x14]
call fcn.00402032
push ebx
push eax
lea eax, [ebp - 0x20]
push eax
mov byte [ebp - 4], 3
call fcn.00406116
add esp, 0xc
push eax
lea ecx, [ebp + 0x14]
mov byte [ebp - 4], 4
call fcn.004058be
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.00401441
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.00401441
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
mov byte [ebp - 4], 1
call fcn.00401441
mov ebx, dword [ebp + 0x10]
push dword [ebp + 0x14]
mov ecx, ebx
call fcn.00401321
push dword [ebp - 0x14]
lea eax, [ebp + 0x10]
push eax
lea ecx, [ebp + 8]
call fcn.00402032
push dword [eax]
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 5
call fcn.00401321
mov ecx, dword [ebp + 0x10]
add ecx, 0xfffffff0
mov byte [ebp - 4], 1
call fcn.00401441
push dword [ebx]
lea ecx, [ebp - 0x14]
call fcn.00406621
mov ebx, eax
push 0x410ba8
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 6
call fcn.00406671
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0xc]
push dword [eax]
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x18]
call fcn.00406621
push dword [ebp + 0x10]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.00406116
push ebx
push eax
lea eax, [ebp + 0xc]
push eax
mov byte [ebp - 4], 9
call fcn.00406116
add esp, 0x18
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.00401441
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.00401441
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.00401441
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xb
call fcn.00401441
mov ebx, dword [ebp + 0xc]
push ebx
lea ecx, [esi + 0x34]
call fcn.00401321
lea eax, [ebp - 0x24]
push eax
push edi
push esi
push 0x401c41
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateThread]
cmp eax, 0xffffffff
mov dword [esi + 0x2c], eax
jne 0x407669
lea ecx, [ebx - 0x10]
call fcn.00401441
mov ecx, dword [ebp + 0x14]
add ecx, 0xfffffff0
call fcn.00401441
mov esi, 0x80004005
jmp 0x407695
push edi
push dword [esi]
lea ecx, [esi + 8]
call fcn.0040740f
push 0xffffffffffffffff
push dword [esi + 0x2c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea ecx, [ebx - 0x10]
call fcn.00401441
mov ecx, dword [ebp + 0x14]
add ecx, 0xfffffff0
call fcn.00401441
mov esi, dword [esi + 0x3c]
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.00401441
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, dword [ebp + 4]
pop edi
mov eax, esi
pop esi
pop ebx
call fcn.0040e207
leave
ret 0x10