Function at 0x40f5a5
Capabilities:
Create thread
Terminate thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2a8
push ebx
push esi
mov esi, ecx
push edi
lea ecx, [ebp - 0xbc]
call fcn.00407177
lea eax, [ebp - 0x9c]
lea ecx, [ebp - 0xbc]
push eax
call fcn.004073b7
push 0x4020
call fcn.0041577f
xor ebx, ebx
pop ecx
cmp eax, ebx
je 0x40f5ec
mov ecx, eax
call fcn.00403bce
mov edi, eax
jmp 0x40f5ee
xor edi, edi
lea eax, [ebp - 0x60]
push 5
push eax
call fcn.0040c71f
pop ecx
pop ecx
lea ecx, [ebp - 0x48]
call fcn.00401794
push dword [0x41e778]
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x48], 0x41a3e0
push 0x60
call fcn.00401af1
cmp dword [ebp - 0x3c], ebx
je 0x40f62c
push dword [ebp - 0x3c]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
jne 0x40f661
push str.Downloaded_Program_Updates
lea ecx, [ebp - 0x24]
call fcn.00408dac
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x48]
push eax
mov dword [ebp - 0x24], 0x41a3e0
mov dword [ebp - 0x14], 0x409
call fcn.00401ec0
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x38], eax
call fcn.004017a8
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x60]
call fcn.004025c0
push 0x41e76c
lea ecx, [ebp - 0x60]
call fcn.004025c0
lea eax, [ebp - 0x60]
lea ecx, [edi + 8]
push eax
call fcn.00401ec0
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetParent]
mov dword [ebp - 8], eax
mov dword [edi], eax
lea eax, [ebp - 0x68]
mov dword [ebp - 0x4c], edi
push eax
lea eax, [ebp - 0x50]
push ebx
push eax
push 0x40fa0d
push ebx
push ebx
mov dword [ebp - 0x50], esi
call dword [sym.imp.KERNEL32.dll_CreateThread]
push dword [esi + 0x8c]
mov ecx, edi
mov dword [ebp - 0x10], eax
call fcn.0040409d
cmp edi, ebx
mov dword [ebp - 0xc], eax
je 0x40f6cf
push 1
mov ecx, edi
call fcn.0040746c
push ebx
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_TerminateThread]
push dword [ebp - 8]
call dword [sym.imp.USER32.dll_SetForegroundWindow]
cmp dword [ebp - 0xc], 0xfffffffe
je 0x40f950
cmp dword [ebp - 0xc], 0xffffffff
je 0x40f8a8
cmp dword [ebp - 0xc], 2
je 0x40f88b
mov eax, dword [esi + 0x8c]
cmp dword [eax + 0x1000], ebx
jne 0x40f75d
push 1
lea ecx, [ebp - 0x8c]
call fcn.004054a6
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x84]
push eax
push 0x41e790
call fcn.004086c4
push ebx
push 0x40da37
push dword [ebp - 8]
push 0xd8
push dword [0x41e798]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
lea ecx, [ebp - 0x8c]
call fcn.00405547
jmp 0x40f867
push ebx
mov ecx, 0x41e780
call fcn.0040848c
mov byte [ebp - 1], bl
push dword [esi + 0x8c]
lea ecx, [ebp - 0x2a8]
call fcn.00411ec2
push ebx
lea ecx, [ebp - 0x2a8]
push dword [ebp - 8]
call fcn.0040f9d6
cmp eax, 1
mov dword [ebp - 0xc], eax
je 0x40f7ef
cmp eax, 4
je 0x40f7ef
mov eax, dword [ebp - 0x1bc]
lea ecx, [eax - 0x2c]
neg eax
sbb eax, eax
and eax, ecx
mov dword [ebp - 0x10], eax
je 0x40f7f3
mov edi, dword [sym.imp.USER32.dll_EnableWindow]
push ebx
push dword [ebp - 8]
call edi
push dword [ebp - 8]
cmp dword [ebp - 0xc], 3
push dword [ebp - 0x10]
sete al
push eax
call fcn.00407b84
add esp, 0xc
cmp eax, 1
je 0x40f7f3
push 1
mov byte [ebp - 1], 1
push dword [ebp - 8]
call edi
lea eax, [ebp - 0x64]
mov ecx, esi
push eax
push ebx
push 1
push ebx
call fcn.0040dfcd
jmp 0x40f7f3
mov byte [ebp - 1], 1
lea ecx, [ebp - 0x2a8]
call fcn.0041224c
cmp byte [ebp - 1], bl
je 0x40f76b
mov eax, dword [esi + 0x8c]
mov dword [esi + 0xac], ebx
xor edi, edi
cmp dword [eax + 0x1000], ebx
jle 0x40f848
mov eax, dword [eax + edi*4]
mov ecx, eax
mov dword [ebp - 0x10], eax
call fcn.00403a7c
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x2004]
add dword [esi + 0xac], eax
mov eax, dword [esi + 0x8c]
inc edi
cmp edi, dword [eax + 0x1000]
jl 0x40f81d
mov ecx, esi
call fcn.0040faa8
mov eax, dword [esi + 0xa0]
xor edx, edx
cmp dword [esi + 0xac], ebx
mov ecx, dword [eax]
sete dl
push edx
push eax
call dword [ecx + 0x38]
lea eax, [ebp - 0x34]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
lea eax, [ebp - 0x34]
mov ecx, 0x41e780
push eax
call fcn.0040711b
mov ecx, esi
call fcn.0040fb45
jmp 0x40f9ab
push 0x7f00
push ebx
call dword [sym.imp.USER32.dll_LoadCursorA]
push eax
push 0xfffffffffffffff4
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SetClassLongA]
jmp 0x40f9ab
mov edi, dword [edi + 0x18]
lea eax, [ebp - 0x34]
push edi
push 0x41d5b8
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x34], 0x41a3dc
mov dword [ebp - 0x20], 0x64
mov byte [ebp - 0x1c], bl
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], ebx
call fcn.004062bc
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [ebp - 0x20]
call fcn.00406295
lea eax, [ebp - 0x34]
lea ecx, [ebp - 0x138]
push eax
call fcn.0040606e
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov esi, eax
lea eax, [ebp - 0x138]
push eax
lea eax, [ebp - 0x130]
push eax
push 0x41e790
call fcn.004086c4
push ebx
push 0x40da37
push esi
push 0x408
push dword [0x41e798]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
lea ecx, [ebp - 0x10c]
call fcn.0041108b
lea ecx, [ebp - 0x11c]
call fcn.004017a8
lea ecx, [ebp - 0x34]
jmp 0x40f9a6
push 0x61
lea ecx, [ebp - 0x138]
call fcn.00405f62
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov esi, eax
lea eax, [ebp - 0x138]
push eax
lea eax, [ebp - 0x130]
push eax
push 0x41e790
call fcn.004086c4
push ebx
push 0x40da37
push esi
push 0x408
push dword [0x41e798]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
lea ecx, [ebp - 0x10c]
call fcn.0041108b
lea ecx, [ebp - 0x11c]
call fcn.004017a8
push 1
push dword [ebp - 8]
call dword [sym.imp.USER32.dll_EnableWindow]
lea ecx, [ebp - 0x48]
call fcn.004017a8
lea ecx, [ebp - 0x60]
call fcn.0040172f
lea ecx, [ebp - 0xbc]
call fcn.00407450
pop edi
pop esi
pop ebx
leave
ret