Function at 0x41055d
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.004074a2
lea eax, [ebp - 0x7c]
lea ecx, [ebp - 0x9c]
push eax
call fcn.004076e2
push 0x4020
call fcn.00415eff
xor ebx, ebx
pop ecx
cmp eax, ebx
je 0x4105a1
mov ecx, eax
call fcn.00403e4f
mov edi, eax
jmp 0x4105a3
xor edi, edi
lea eax, [ebp - 0x60]
push 5
push eax
call fcn.0040d206
pop ecx
pop ecx
lea ecx, [ebp - 0x48]
call fcn.004016ed
push dword [0x421930]
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x48], 0x41b3cc
push 0x60
call fcn.00401d20
cmp dword [ebp - 0x3c], ebx
je 0x4105e1
push dword [ebp - 0x3c]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
jne 0x410616
push str.Downloaded_Program_Updates
lea ecx, [ebp - 0x24]
call fcn.0040908f
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x48]
push eax
mov dword [ebp - 0x24], 0x41b3cc
mov dword [ebp - 0x14], 0x409
call fcn.00402125
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x38], eax
call fcn.00401701
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x60]
call fcn.00402825
push 0x421924
lea ecx, [ebp - 0x60]
call fcn.00402825
lea eax, [ebp - 0x60]
lea ecx, [edi + 8]
push eax
call fcn.00402125
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 0x410943
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.0040431e
cmp edi, ebx
mov dword [ebp - 0x10], eax
je 0x41068b
push 1
mov ecx, edi
call fcn.004077b4
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 0x4108d1
cmp dword [ebp - 0x10], 0xffffffff
je 0x41084c
cmp dword [ebp - 0x10], 2
je 0x41082f
mov eax, dword [esi + 0x84]
cmp dword [eax + 0x1000], ebx
jne 0x4106f8
push 1
lea ecx, [ebp - 0xf4]
call fcn.00405765
push ebx
push ebx
push ebx
lea ecx, [ebp - 0xf4]
push dword [ebp - 8]
call fcn.00410e30
lea ecx, [ebp - 0xf4]
call fcn.00405807
jmp 0x41080b
push ebx
mov ecx, 0x421938
call fcn.004087c7
mov byte [ebp - 1], bl
push dword [esi + 0x84]
lea ecx, [ebp - 0x320]
call fcn.00412ac3
push ebx
push ebx
push ebx
lea ecx, [ebp - 0x320]
push dword [ebp - 8]
mov byte [ebp - 0x1fc], 1
call fcn.004114c1
cmp eax, 1
mov dword [ebp - 0x10], eax
je 0x410793
cmp eax, 4
je 0x410793
mov eax, dword [ebp - 0x200]
lea ecx, [eax - 0x2c]
neg eax
sbb eax, eax
and eax, ecx
mov dword [ebp - 0xc], eax
je 0x410797
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.00407f21
add esp, 0xc
cmp eax, 1
je 0x410797
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.0040ecb6
jmp 0x410797
mov byte [ebp - 1], 1
lea ecx, [ebp - 0x320]
call fcn.00412e5f
cmp byte [ebp - 1], bl
je 0x410706
mov eax, dword [esi + 0x84]
mov dword [esi + 0xa4], ebx
xor edi, edi
cmp dword [eax + 0x1000], ebx
jle 0x4107ec
mov eax, dword [eax + edi*4]
mov ecx, eax
mov dword [ebp - 0xc], eax
call fcn.00403cfd
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 0x4107c1
mov ecx, esi
call fcn.004109d0
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, 0x421938
push eax
call fcn.00407446
mov ecx, esi
call fcn.00410a6d
jmp 0x410909
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 0x410909
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], 0x41b3d8
mov dword [ebp - 0x20], 0x64
mov byte [ebp - 0x1c], bl
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], ebx
call fcn.004016d7
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [ebp - 0x20]
call fcn.004065c7
lea eax, [ebp - 0x34]
lea ecx, [ebp - 0x14c]
push eax
call fcn.004063a2
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp - 0x14c]
call fcn.00409625
lea ecx, [ebp - 0xec]
call fcn.00411c23
lea ecx, [ebp - 0xfc]
call fcn.00401701
lea ecx, [ebp - 0x34]
jmp 0x410904
push 0x61
lea ecx, [ebp - 0x14c]
call fcn.00406297
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp - 0x14c]
call fcn.00409625
lea ecx, [ebp - 0xec]
call fcn.00411c23
lea ecx, [ebp - 0xfc]
call fcn.00401701
lea eax, [ebp - 0x68]
mov ecx, esi
push eax
push ebx
push 1
push ebx
call fcn.0040ecb6
push 1
push dword [ebp - 8]
call dword [sym.imp.USER32.dll_EnableWindow]
lea ecx, [ebp - 0x48]
call fcn.00401701
lea ecx, [ebp - 0x60]
call fcn.00401672
lea ecx, [ebp - 0x9c]
call fcn.0040777b
pop edi
pop esi
pop ebx
leave
ret