Function at 0x40c819
Capabilities:
Create process on windows

Disassembly:
push 0x26c
mov eax, 0x487a4d
call fcn.0046c611
mov eax, ecx
mov dword [ebp - 0x248], eax
lea ecx, [ebp - 0x23c]
xor ebx, ebx
push ecx
mov ecx, eax
mov dword [ebp - 0x244], ebx
call fcn.0042c389
and dword [ebp - 4], ebx
lea ecx, [ebp - 0x254]
push eax
call fcn.0040d52b
lea ecx, [ebp - 0x23c]
mov byte [ebp - 4], 2
call fcn.004045c4
mov edi, dword [ebp - 0x254]
cmp edi, dword [ebp - 0x250]
je 0x40cb7f
add edi, 0x58
push ecx
push 0x4a1ba0
lea ecx, [ebp - 0x60]
call fcn.00410317
mov byte [ebp - 4], 3
lea ecx, [edi + 0xec]
or ebx, 1
lea edx, [ebp - 0x60]
mov dword [ebp - 0x244], ebx
call fcn.004114f8
test al, al
je 0x40c8d2
mov eax, dword [ebp - 0x248]
sub esp, 0xc
add eax, 0xd84
mov ecx, esp
push eax
call fcn.00404fc5
lea ecx, [edi - 0x58]
call fcn.00431eec
add esp, 0xc
mov byte [ebp - 0x23d], 1
test al, al
jne 0x40c8d9
mov byte [ebp - 0x23d], 0
mov dword [ebp - 4], 2
test bl, 1
je 0x40c8f0
lea ecx, [ebp - 0x60]
and ebx, 0xfffffffe
call fcn.00410512
cmp byte [ebp - 0x23d], 0
je 0x40cb6a
and dword [ebp - 0x1c], 0
xor eax, eax
mov dword [ebp - 0x18], 7
mov word [ebp - 0x2c], ax
push ecx
push str.InstallLocation
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 4
call fcn.00410317
push ecx
push str.HKCUSoftwareMicrosoftWindowsCurrentVersionUninstallAmigo
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 5
call fcn.00410317
lea eax, [ebp - 0x158]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0xdc]
call fcn.00426851
lea ecx, [ebp - 0x60]
call fcn.00410512
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 9
call fcn.00410512
lea eax, [ebp - 0x264]
push eax
lea ecx, [ebp - 0xdc]
call fcn.00426ba3
lea ecx, [ebp - 0x264]
mov esi, dword [eax + 4]
call fcn.0040363e
test esi, esi
je 0x40c9d4
lea eax, [ebp - 0x26c]
push eax
lea ecx, [ebp - 0xdc]
call fcn.00426ba3
mov byte [ebp - 4], 0xa
mov eax, dword [eax]
mov esi, dword [eax]
add esi, 0x28
cmp dword [esi + 0x14], 8
jb 0x40c9af
mov esi, dword [esi]
push esi
call fcn.00403def
pop ecx
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.004053bd
lea ecx, [ebp - 0x26c]
mov byte [ebp - 4], 9
call fcn.0040363e
jmp 0x40caa5
push ecx
push str.InstallLocation
lea ecx, [ebp - 0x1c0]
call fcn.00410317
push ecx
push str.HKLMSoftwareMicrosoftWindowsCurrentVersionUninstallAmigo
lea ecx, [ebp - 0x18c]
mov byte [ebp - 4], 0xb
call fcn.00410317
lea eax, [ebp - 0x1c0]
mov byte [ebp - 4], 0xc
push eax
lea eax, [ebp - 0x18c]
push eax
lea ecx, [ebp - 0x124]
call fcn.00426851
lea ecx, [ebp - 0x18c]
call fcn.00410512
lea ecx, [ebp - 0x1c0]
mov byte [ebp - 4], 0xf
call fcn.00410512
lea eax, [ebp - 0x25c]
push eax
lea ecx, [ebp - 0x124]
call fcn.00426ba3
lea ecx, [ebp - 0x25c]
mov esi, dword [eax + 4]
call fcn.0040363e
test esi, esi
je 0x40ca96
lea eax, [ebp - 0x274]
push eax
lea ecx, [ebp - 0x124]
call fcn.00426ba3
mov byte [ebp - 4], 0x10
mov eax, dword [eax]
mov esi, dword [eax]
add esi, 0x28
cmp dword [esi + 0x14], 8
jb 0x40ca7a
mov esi, dword [esi]
push esi
call fcn.00403def
pop ecx
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.004053bd
lea ecx, [ebp - 0x274]
call fcn.0040363e
lea ecx, [ebp - 0x124]
mov byte [ebp - 4], 9
call fcn.00426978
cmp dword [ebp - 0x1c], 0
je 0x40cb30
mov esi, str._amigo.exe
push esi
call fcn.00403def
pop ecx
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.0040531a
lea eax, [ebp - 0x2c]
mov esi, 0x4a1d84
push eax
mov edx, esi
lea ecx, [ebp - 0x78]
call fcn.0040e372
pop ecx
push esi
mov edx, eax
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x90]
call fcn.0040e31e
cmp dword [edi + 0x14], 8
pop ecx
jb 0x40caf6
mov ecx, dword [edi]
jmp 0x40caf8
mov ecx, edi
cmp dword [eax + 0x14], 8
jb 0x40cb00
mov eax, dword [eax]
push 1
push 0
push ecx
push eax
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
push 0
push 1
lea ecx, [ebp - 0x90]
call fcn.00405131
push 0
push 1
lea ecx, [ebp - 0x78]
call fcn.00405131
jmp 0x40cb4f
cmp dword [edi + 0x14], 8
jb 0x40cb3a
mov eax, dword [edi]
jmp 0x40cb3c
mov eax, edi
push 1
xor ecx, ecx
push ecx
push ecx
push eax
push str.open
push ecx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea ecx, [ebp - 0xdc]
call fcn.00426978
push 0
push 1
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 2
call fcn.00405131
add edi, 0x26c
lea eax, [edi - 0x58]
cmp eax, dword [ebp - 0x250]
jne 0x40c879
lea ecx, [ebp - 0x254]
call fcn.004051e5
call fcn.0046c5c0
ret