Function at 0x410531
Capabilities:
Create thread
Terminate thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x320
push ebx
push esi
mov esi, ecx
push edi
lea ecx, [ebp - 0x9c]
call fcn.004074ff
lea eax, [ebp - 0x7c]
lea ecx, [ebp - 0x9c]
push eax
call fcn.0040773f
push 0x4020
call fcn.004161bf
xor ebx, ebx
pop ecx
cmp eax, ebx
je 0x410575
mov ecx, eax
call fcn.00403c8a
mov edi, eax
jmp 0x410577
xor edi, edi
lea eax, [ebp - 0x60]
push 5
push eax
call fcn.0040d1e8
pop ecx
pop ecx
lea ecx, [ebp - 0x48]
call fcn.004016ab
push dword [0x421950]
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x48], 0x41b3d0
push 0x60
call fcn.00401b77
cmp dword [ebp - 0x3c], ebx
je 0x4105b5
push dword [ebp - 0x3c]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
jne 0x4105ea
push str.Downloaded_Program_Updates
lea ecx, [ebp - 0x24]
call fcn.004090a9
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x48]
push eax
mov dword [ebp - 0x24], 0x41b3d0
mov dword [ebp - 0x14], 0x409
call fcn.00401f7c
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x38], eax
call fcn.004016bf
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x60]
call fcn.0040267c
push 0x421944
lea ecx, [ebp - 0x60]
call fcn.0040267c
lea eax, [ebp - 0x60]
lea ecx, [edi + 8]
push eax
call fcn.00401f7c
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetParent]
push eax
call dword [sym.imp.USER32.dll_GetParent]
mov dword [ebp - 8], eax
mov dword [edi], eax
lea eax, [ebp - 0x64]
mov dword [ebp - 0x4c], edi
push eax
lea eax, [ebp - 0x50]
push ebx
push eax
push 0x410917
push ebx
push ebx
mov dword [ebp - 0x50], esi
call dword [sym.imp.KERNEL32.dll_CreateThread]
push dword [esi + 0x84]
mov ecx, edi
mov dword [ebp - 0xc], eax
call fcn.00404159
cmp edi, ebx
mov dword [ebp - 0x10], eax
je 0x41065f
push 1
mov ecx, edi
call fcn.00407811
push ebx
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_TerminateThread]
push dword [ebp - 8]
call dword [sym.imp.USER32.dll_SetForegroundWindow]
cmp dword [ebp - 0x10], 0xfffffffe
je 0x4108a5
cmp dword [ebp - 0x10], 0xffffffff
je 0x410820
cmp dword [ebp - 0x10], 2
je 0x410803
mov eax, dword [esi + 0x84]
cmp dword [eax + 0x1000], ebx
jne 0x4106cc
push 1
lea ecx, [ebp - 0xf4]
call fcn.0040556f
push ebx
push ebx
push ebx
lea ecx, [ebp - 0xf4]
push dword [ebp - 8]
call fcn.00410e04
lea ecx, [ebp - 0xf4]
call fcn.00405611
jmp 0x4107df
push ebx
mov ecx, 0x421958
call fcn.004087e1
mov byte [ebp - 1], bl
push dword [esi + 0x84]
lea ecx, [ebp - 0x320]
call fcn.00412acf
push ebx
push ebx
push ebx
lea ecx, [ebp - 0x320]
push dword [ebp - 8]
mov byte [ebp - 0x1fc], 1
call fcn.0041149b
cmp eax, 1
mov dword [ebp - 0x10], eax
je 0x410767
cmp eax, 4
je 0x410767
mov eax, dword [ebp - 0x200]
lea ecx, [eax - 0x2c]
neg eax
sbb eax, eax
and eax, ecx
mov dword [ebp - 0xc], eax
je 0x41076b
mov edi, dword [sym.imp.USER32.dll_EnableWindow]
push ebx
push dword [ebp - 8]
call edi
push dword [ebp - 8]
cmp dword [ebp - 0x10], 3
push dword [ebp - 0xc]
sete al
push eax
call fcn.00407f3b
add esp, 0xc
cmp eax, 1
je 0x41076b
push 1
mov byte [ebp - 1], 1
push dword [ebp - 8]
call edi
lea eax, [ebp - 0x6c]
mov ecx, esi
push eax
push ebx
push 1
push ebx
call fcn.0040ec52
jmp 0x41076b
mov byte [ebp - 1], 1
lea ecx, [ebp - 0x320]
call fcn.00412e6b
cmp byte [ebp - 1], bl
je 0x4106da
mov eax, dword [esi + 0x84]
mov dword [esi + 0xa4], ebx
xor edi, edi
cmp dword [eax + 0x1000], ebx
jle 0x4107c0
mov eax, dword [eax + edi*4]
mov ecx, eax
mov dword [ebp - 0xc], eax
call fcn.00403b38
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x2004]
add dword [esi + 0xa4], eax
mov eax, dword [esi + 0x84]
inc edi
cmp edi, dword [eax + 0x1000]
jl 0x410795
mov ecx, esi
call fcn.004109a4
mov eax, dword [esi + 0x98]
xor edx, edx
cmp dword [esi + 0xa4], ebx
mov ecx, dword [eax]
sete dl
push edx
push eax
call dword [ecx + 0x3c]
lea eax, [ebp - 0x34]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
lea eax, [ebp - 0x34]
mov ecx, 0x421958
push eax
call fcn.004074a3
mov ecx, esi
call fcn.00410a41
jmp 0x4108dd
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 0x4108dd
mov edi, dword [edi + 0x18]
lea eax, [ebp - 0x34]
push edi
push 0x41e610
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x34], 0x41b3cc
mov dword [ebp - 0x20], 0x64
mov byte [ebp - 0x1c], bl
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], ebx
call fcn.004066a9
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [ebp - 0x20]
call fcn.00406682
lea eax, [ebp - 0x34]
lea ecx, [ebp - 0x14c]
push eax
call fcn.00406471
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp - 0x14c]
call fcn.0040963f
lea ecx, [ebp - 0xec]
call fcn.00411ce4
lea ecx, [ebp - 0xfc]
call fcn.004016bf
lea ecx, [ebp - 0x34]
jmp 0x4108d8
push 0x61
lea ecx, [ebp - 0x14c]
call fcn.00406366
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp - 0x14c]
call fcn.0040963f
lea ecx, [ebp - 0xec]
call fcn.00411ce4
lea ecx, [ebp - 0xfc]
call fcn.004016bf
lea eax, [ebp - 0x68]
mov ecx, esi
push eax
push ebx
push 1
push ebx
call fcn.0040ec52
push 1
push dword [ebp - 8]
call dword [sym.imp.USER32.dll_EnableWindow]
lea ecx, [ebp - 0x48]
call fcn.004016bf
lea ecx, [ebp - 0x60]
call fcn.00401646
lea ecx, [ebp - 0x9c]
call fcn.004077d8
pop edi
pop esi
pop ebx
leave
ret