Function at 0x40a910
Capabilities:
Create process on windows
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x71c
push edi
mov edi, ecx
mov dword [ebp - 4], edi
mov eax, dword [edi + 4]
mov edx, dword [eax + 0x480]
test edx, edx
jg 0x40a936
mov eax, 1
pop edi
mov esp, ebp
pop ebp
ret
push ebx
push esi
xor esi, esi
xor ecx, ecx
test edx, edx
jle 0x40adb1
cmp edx, 8
jb 0x40aa39
mov ebx, dword [eax + 0x80]
mov eax, edx
and eax, 0x80000007
jns 0x40a961
dec eax
or eax, 0xfffffff8
inc eax
movaps xmm7, xmmword [0x42b210]
xorps xmm6, xmm6
mov esi, edx
movaps xmm5, xmm6
sub esi, eax
movaps xmm4, xmm5
xor eax, eax
nop word [eax + eax]
movd xmm2, dword [eax + ebx + 0x7c]
lea eax, [eax + 0x140]
movd xmm0, dword [eax + ebx - 0xec]
add ecx, 8
movd xmm1, dword [eax + ebx - 0x114]
movd xmm3, dword [eax + ebx - 0x13c]
punpckldq xmm3, xmm0
movaps xmm0, xmm7
punpckldq xmm1, xmm2
paddd xmm0, xmm5
movd xmm2, dword [eax + ebx - 0x24]
punpckldq xmm3, xmm1
pcmpeqd xmm3, xmm6
movaps xmm1, xmm3
pand xmm5, xmm3
movd xmm3, dword [eax + ebx - 0x9c]
pandn xmm1, xmm0
movd xmm0, dword [eax + ebx - 0x4c]
por xmm5, xmm1
movd xmm1, dword [eax + ebx - 0x74]
punpckldq xmm3, xmm0
movaps xmm0, xmm7
punpckldq xmm1, xmm2
paddd xmm0, xmm4
punpckldq xmm3, xmm1
pcmpeqd xmm3, xmm6
movaps xmm1, xmm3
pand xmm4, xmm3
pandn xmm1, xmm0
por xmm4, xmm1
cmp ecx, esi
jl 0x40a980
paddd xmm4, xmm5
movaps xmm0, xmm4
psrldq xmm0, 8
paddd xmm4, xmm0
movaps xmm0, xmm4
psrldq xmm0, 4
paddd xmm4, xmm0
movd esi, xmm4
cmp ecx, edx
jge 0x40aa69
mov eax, dword [edi + 4]
lea ebx, [ecx + ecx*4]
shl ebx, 3
sub edx, ecx
mov edi, dword [eax + 0x80]
nop
mov eax, dword [ebx + edi + 4]
lea ecx, [esi + 1]
test eax, eax
lea ebx, [ebx + 0x28]
cmove ecx, esi
mov esi, ecx
sub edx, 1
jne 0x40aa50
mov edi, dword [ebp - 4]
test esi, esi
jle 0x40adb1
push 0
push 0
push 0
push str.copy_files
push 0x200
lea eax, [ebp - 0x51c]
mov ecx, 0x434b58
push eax
call fcn.00401770
push 0
push 0
push 0
push str.install_plugin
push 0x200
lea eax, [ebp - 0x71c]
mov ecx, 0x434b58
push eax
call fcn.00401770
mov esi, dword [sym.imp.USER32.dll_SetDlgItemTextA]
lea eax, [ebp - 0x51c]
push eax
push 0x403
push dword [edi + 0x138]
call esi
lea eax, [ebp - 0x71c]
push eax
push 0x402
push dword [edi + 0x138]
call esi
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, edi
call fcn.00408490
test eax, eax
jne 0x40adbd
mov eax, dword [edi + 4]
mov ecx, edi
push 0x42a820
push dword [eax + 0x470]
add eax, 0x84
push eax
push dword [edi + 0x138]
call fcn.004095a0
test eax, eax
je 0x40adbd
lea eax, [edi + 0x13c]
push eax
mov eax, dword [edi + 4]
add eax, 0x84
push eax
push 0x42af24
push dword [0x434008]
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push 0x104
lea eax, [ebp - 0x31c]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 0x42af5c
lea eax, [ebp - 0x31c]
push 0x104
push eax
call fcn.00415b9d
mov eax, dword [edi + 4]
add esp, 0xc
mov dword [ebp - 4], 0
cmp dword [eax + 0x480], 0
jle 0x40adb1
xor ebx, ebx
nop dword [eax]
mov esi, dword [edi + 4]
mov esi, dword [esi + 0x80]
add esi, ebx
cmp dword [esi + 4], 0
je 0x40ad98
inc dword [edi + 0x264]
push 0
push dword [edi + 0x264]
push 0x402
push 0x401
push dword [edi + 0x138]
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov ecx, edi
call fcn.00408490
test eax, eax
jne 0x40adbd
test byte [esi + 0x18], 1
je 0x40ac04
mov ecx, dword [edi + 4]
push eax
push 0x17
push dword [esi + 0x14]
lea eax, [ecx + 0x84]
push eax
push dword [ecx + 0x458]
mov ecx, edi
push dword [esi + 0x10]
push dword [esi + 0xc]
push dword [esi + 8]
call fcn.0040afe0
test byte [esi + 0x18], 2
je 0x40ac2c
mov eax, dword [edi + 4]
mov ecx, edi
push 0
push 0x19
push dword [esi + 0x14]
add eax, 0x84
push eax
push 0
push dword [esi + 0x10]
push dword [esi + 0xc]
push dword [esi + 8]
call fcn.0040afe0
test byte [esi + 0x18], 4
je 0x40ac54
mov eax, dword [edi + 4]
mov ecx, edi
push 0
push 7
push dword [esi + 0x14]
add eax, 0x84
push eax
push 0
push dword [esi + 0x10]
push dword [esi + 0xc]
push dword [esi + 8]
call fcn.0040afe0
mov eax, dword [edi + 4]
add eax, 0x84
push eax
lea eax, [ebp - 0x218]
push 0x104
push eax
call fcn.00415b43
push 0x42a618
lea eax, [ebp - 0x218]
push 0x104
push eax
call fcn.00415b9d
push dword [esi + 0xc]
lea eax, [ebp - 0x218]
push 0x104
push eax
call fcn.00415b9d
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x114]
push 0x104
push eax
call fcn.00415b43
add esp, 0x30
cmp dword [esi + 0x14], 0
je 0x40ace6
push 0x42af68
lea eax, [ebp - 0x114]
push 0x104
push eax
call fcn.00415b9d
push dword [esi + 0x14]
lea eax, [ebp - 0x114]
push 0x104
push eax
call fcn.00415b9d
add esp, 0x18
push 0x42af38
lea eax, [ebp - 0x114]
push 0x104
push eax
call fcn.00415b9d
push dword [esi + 0x1c]
lea eax, [ebp - 0x114]
push 0x104
push eax
call fcn.00415b9d
add esp, 0x18
lea eax, [ebp - 0x31c]
push eax
lea eax, [ebp - 0x114]
push eax
push dword [esi + 0x20]
push 0x42af6c
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push 0xa
push 0xa
lea eax, [ebp - 0x10]
push eax
push dword [edi + 0x244]
call fcn.0041bde7
add esp, 0x10
lea eax, [edi + 0x13c]
push eax
push dword [esi + 0x20]
lea eax, [ebp - 0x10]
push eax
push 0x42af74
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
inc dword [edi + 0x244]
cmp dword [edi + 8], 0
jne 0x40ad98
cmp dword [esi + 0x24], 0
je 0x40ad98
push str.__property
lea eax, [ebp - 0x218]
push 0x104
push eax
call fcn.00415b9d
add esp, 0xc
lea eax, [ebp - 0x218]
push 5
push eax
call dword [sym.imp.KERNEL32.dll_WinExec]
mov esi, dword [ebp - 4]
add ebx, 0x28
mov eax, dword [edi + 4]
inc esi
mov dword [ebp - 4], esi
cmp esi, dword [eax + 0x480]
jl 0x40ab90
pop esi
pop ebx
mov eax, 1
pop edi
mov esp, ebp
pop ebp
ret
pop esi
pop ebx
xor eax, eax
pop edi
mov esp, ebp
pop ebp
ret