Function at 0x40508a
Capabilities:
Create process on windows

Disassembly:
push 0x588
mov eax, 0x45ecb8
call fcn.0043a499
mov esi, edx
mov dword [ebp - 0x588], esi
mov ebx, ecx
mov dword [ebp - 0x578], ebx
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x57c], eax
mov eax, dword [ebp + 0x1c]
push 0x100
mov dword [ebp - 0x594], eax
lea eax, [ebp - 0x110]
push 0
push eax
call fcn.0043c110
and dword [ebp - 0x580], 0
lea eax, [ebp - 0x110]
mov edi, dword [sym.imp.user32.dll_wsprintfA]
add esp, 0xc
mov byte [esi], 0
push str._auto
push eax
call edi
mov esi, dword [sym.imp.kernel32.dll_lstrcatA]
pop ecx
pop ecx
test ebx, ebx
je 0x405109
push str.__scheduled
lea eax, [ebp - 0x110]
push eax
call esi
cmp dword [ebp + 0x20], 0
je 0x40511d
push 0x4730ec
lea eax, [ebp - 0x110]
push eax
call esi
push 1
push 0
lea eax, [ebp - 0x110]
push eax
push dword [ebp - 0x57c]
push str.open
push 0
call dword [sym.imp.shell32.dll_ShellExecuteA]
xor ecx, ecx
cmp eax, 0x20
setg cl
mov dword [ebp - 0x574], ecx
jg 0x405327
call dword [sym.imp.kernel32.dll_GetLastError]
mov ebx, eax
cmp ebx, 0x4c7
jne 0x40531b
push ecx
lea ecx, [ebp - 0x570]
call fcn.00406928
and dword [ebp - 4], 0
lea eax, [ebp - 0x110]
cmp dword [ebp - 0x578], 0
je 0x405189
push str.__scheduled
jmp 0x40518e
push 0x472e86
push eax
call edi
cmp dword [ebp + 0x20], 0
pop ecx
pop ecx
je 0x4051a7
push 0x4730ec
lea eax, [ebp - 0x110]
push eax
call esi
mov esi, dword [ebp - 0x588]
push 0x100
lea eax, [ebp - 0x210]
xorps xmm0, xmm0
push 0
push eax
movlpd qword [ebp - 0x590], xmm0
call fcn.0043c110
add esp, 0xc
lea eax, [ebp - 0x210]
push ebx
push str.Failed_to_start_UpdateChecker_process:_d_n
push eax
call edi
add esp, 0xc
lea ecx, [ebp - 0x210]
call fcn.0041781b
push dword [ebp + 0x20]
lea edx, [ebp - 0x580]
push dword [ebp + 0x14]
lea ecx, [ebp - 0x590]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call main
mov eax, dword [ebp - 0x580]
add esp, 0x14
mov dword [ebp - 0x53c], eax
lea eax, [ebp - 0x570]
push 1
push 1
push eax
call main
cmp dword [ebp - 0x544], 0
jne 0x4052df
cmp eax, 0x2ee2
jne 0x405254
push dword [ebp + 0x20]
mov ecx, esi
call fcn.00404fda
pop ecx
test eax, eax
jne 0x40529c
mov ebx, 0x4c7
jmp 0x40528e
push 1
push 0
lea eax, [ebp - 0x110]
push eax
push dword [ebp - 0x57c]
push str.open
push 0
call dword [sym.imp.shell32.dll_ShellExecuteA]
xor ecx, ecx
cmp eax, 0x20
setg cl
mov dword [ebp - 0x574], ecx
jle 0x405286
xor ebx, ebx
jmp 0x40528e
call dword [sym.imp.kernel32.dll_GetLastError]
mov ebx, eax
cmp ebx, 0x4c7
je 0x4051ad
jmp 0x4052f2
push 0x100
lea eax, [ebp - 0x310]
push 0
push eax
call fcn.0043c110
add esp, 0xc
lea eax, [ebp - 0x310]
push str.New_Update_Available_n
push eax
call edi
pop ecx
pop ecx
lea ecx, [ebp - 0x310]
call fcn.0041781b
lea ecx, [ebp - 0x570]
call fcn.00406903
xor eax, eax
jmp 0x4053c7
mov ecx, str.Cancelled_by_user_or_Received_shutdown_signal_n
call fcn.0041781b
mov eax, dword [ebp - 0x594]
and dword [eax], 0
push 0
lea ecx, [ebp - 0x570]
call main
test eax, eax
je 0x40530c
push 2
mov ecx, eax
call fcn.00407e61
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x570]
call fcn.00406903
mov ebx, dword [ebp - 0x578]
mov ecx, dword [ebp - 0x574]
test ecx, ecx
je 0x40538a
push 0x100
lea eax, [ebp - 0x310]
push 0
push eax
call fcn.0043c110
add esp, 0xc
lea eax, [ebp - 0x310]
push dword [ebp - 0x57c]
push str.Started_UpdateChecker_process_Successfully:_s_n
push eax
call edi
add esp, 0xc
test ebx, ebx
je 0x40537a
push ecx
lea ecx, [ebp - 0x590]
call main
mov ecx, eax
call fcn.00413d96
lea ecx, [ebp - 0x590]
call fcn.004139d7
lea ecx, [ebp - 0x310]
call fcn.0041781b
jmp 0x4052d8
call dword [sym.imp.kernel32.dll_GetLastError]
push 0x100
mov esi, eax
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.0043c110
add esp, 0xc
lea eax, [ebp - 0x210]
push esi
push str.Failed_to_start_UpdateChecker_process:_d_n
push eax
call edi
add esp, 0xc
lea ecx, [ebp - 0x210]
call fcn.0041781b
mov eax, esi
call fcn.0043a443
ret