Function at 0x43fbb2
Capabilities:
Check for time delay via gettickcount

Disassembly:
mov eax, 0x546993
call fcn.0054565c
sub esp, 0x158
push ebx
push esi
push edi
mov edi, ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, 0x21
ja 0x43fdd5
xor ebp, dword [ebp - 0x16]
invalid
xor ebx, ebx
push 0x553ec0
mov dword [edi + 0x50], ebx
mov dword [edi + 0x74], ebx
mov dword [edi + 0x78], ebx
call fcn.0041b53d
pop ecx
push eax
push 0x553ec0
lea ecx, [edi + 0x54]
call fcn.00402590
push ebx
mov esi, 0x553ec0
push esi
lea ecx, [edi + 0x5c]
mov dword [edi + 0x58], ebx
call fcn.00402a1d
push ebx
xor eax, eax
push esi
lea ecx, [ebp - 0xbc]
mov dword [ebp - 0xa8], 7
mov dword [ebp - 0xac], ebx
mov word [ebp - 0xbc], ax
call fcn.00402a1d
lea esi, [edi + 0x10]
push 0x554478
mov ecx, esi
mov dword [ebp - 4], ebx
call fcn.00440fe0
push str.install
mov ecx, esi
mov byte [ebp - 0x40], al
call fcn.00440fe0
sub esp, 0x18
mov ecx, esp
mov byte [edi + 0x120], bl
mov byte [ebp - 0x44], bl
push str.masive_update
mov byte [ebp - 0x21], al
lea ebx, [edi + 0x7c]
call fcn.004018f6
mov edx, ebx
lea ecx, [ebp - 0xd4]
call fcn.0044267e
xor eax, eax
inc eax
mov ecx, esp
push str.masive_update
mov byte [ebp - 4], al
call fcn.004018f6
xor edx, edx
mov ecx, ebx
call fcn.004423c1
mov ecx, esp
push str.masive_update_product
mov byte [ebp - 0x15], al
call fcn.004018f6
mov edx, ebx
lea ecx, [ebp - 0x104]
call fcn.0044267e
add esp, 0x18
cmp byte [ebp - 0x15], 0
mov byte [ebp - 4], 2
je 0x43fec8
mov ecx, edi
call fcn.0043762e
sub esp, 0x18
mov ecx, esp
push str.ReadStamp
call fcn.004018f6
push 0x64
mov ecx, edi
call fcn.004389fa
lea ebx, [edi + 0x28]
push ebx
call fcn.0043daba
test al, al
je 0x44082b
sub esp, 0x18
lea eax, [ebp - 0x104]
mov ecx, esp
push eax
call fcn.004018ce
push ebx
mov ecx, edi
call fcn.0043e850
sub esp, 0x18
mov ecx, esp
push str.ReadConfigJson
call fcn.004018f6
push 0xc8
mov ecx, edi
call fcn.004389fa
lea eax, [edi + 0x38]
push eax
mov ecx, edi
call fcn.0043d492
test al, al
je 0x44082b
push str.uninstall
mov ecx, esi
call fcn.00440fe0
cmp byte [ebp - 0x40], 0
mov byte [edi + 0x48], al
je 0x43ff5e
push ecx
push 0x927c0
lea ecx, [edi + 0xb4]
call fcn.004a50ff
sub esp, 0x18
mov ecx, esp
push str.ReadProperties
call fcn.004018f6
push 0x12c
mov ecx, edi
call fcn.004389fa
lea esi, [edi + 0xf8]
push esi
lea eax, [edi + 0x7c]
push eax
call fcn.0043d1c1
sub esp, 0x18
mov ecx, esp
push str.APPINSTANCEUID
call fcn.004018f6
mov ecx, esi
call fcn.004447bc
mov edx, str.PROPERTIES
lea ecx, [edi + 0x38]
call int.0049e2dc
test al, al
je 0x43ffd6
xor eax, eax
inc eax
push eax
push 0
push eax
push ecx
push str.PROPERTIES
lea ecx, [edi + 0x38]
call fcn.0046dc01
pop ecx
push eax
mov ecx, esi
call fcn.00446c03
test al, al
je 0x44082b
sub esp, 0x18
mov ecx, esp
push 0x554010
call fcn.004018f6
lea eax, [ebp - 0x3c]
push eax
mov ecx, esi
call fcn.004459ac
push eax
mov edx, str.HKCUSOFTWARE_
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 3
call fcn.004039ea
pop ecx
push 0
push 1
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 5
call fcn.004023ba
lea eax, [ebp - 0xd4]
push eax
push 0x554474
sub esp, 0x18
mov ecx, esp
push str.PRODUCTNAME
call fcn.004018f6
lea eax, [ebp - 0x14c]
push eax
mov ecx, esi
call fcn.004459ac
push eax
mov edx, str.HKCUSOFTWARE_
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 6
call fcn.004039ea
pop ecx
mov edx, eax
lea ecx, [ebp - 0x11c]
mov byte [ebp - 4], 7
call fcn.004033aa
pop ecx
mov edx, eax
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 8
call fcn.004037a6
pop ecx
push 0
push 1
lea ecx, [ebp - 0x11c]
call fcn.004023ba
push 0
push 1
lea ecx, [ebp - 0x134]
call fcn.004023ba
push 0
push 1
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 0xc
call fcn.004023ba
cmp byte [ebp - 0x15], 0
jne 0x4400b7
cmp byte [edi + 0x48], 0
je 0x44014a
sub esp, 0x18
lea eax, [ebp - 0x74]
mov ecx, esp
mov dword [ebp - 0x1c], esp
push eax
call fcn.004018ce
sub esp, 0x18
mov ecx, esp
push 0x55406c
mov byte [ebp - 4], 0xd
call fcn.004018f6
mov ecx, edi
mov byte [ebp - 4], 0xc
call fcn.00436e46
sub esp, 0x18
lea eax, [ebp - 0x74]
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
call fcn.004018ce
sub esp, 0x18
mov ecx, esp
push str.StampData
mov byte [ebp - 4], 0xe
call fcn.004018f6
push ebx
lea eax, [edi + 0x10c]
push eax
mov byte [ebp - 4], 0xc
call fcn.00437664
mov ecx, esi
call fcn.00444bc7
push esi
lea eax, [edi + 0x7c]
push eax
call fcn.0043d1c1
xor eax, eax
inc eax
push eax
push 0
push eax
push ecx
push str.PROPERTIES
lea ecx, [edi + 0x38]
call fcn.0046dc01
pop ecx
push eax
mov ecx, esi
call fcn.00446c03
sub esp, 0x18
mov ecx, esp
push str.STAMP_IS_CRITICAL
call fcn.004018f6
mov ecx, esi
call fcn.00445912
test al, al
je 0x4401ba
sub esp, 0x18
mov ecx, esp
push str.Stamp_Empty
call fcn.004018f6
push 0x12d
mov ecx, edi
call fcn.004389fa
mov ecx, ebx
call fcn.0046e6dc
test al, al
jne 0x440195
mov ecx, ebx
call fcn.0046d46a
test al, al
je 0x4401ba
xor esi, esi
xor ebx, ebx
inc esi
push ebx
push esi
lea ecx, [ebp - 0x8c]
call fcn.004023ba
push ebx
push esi
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 2
call fcn.004023ba
jmp 0x440830
xor ecx, ecx
inc ecx
push ecx
push ecx
push ecx
push ebx
lea ecx, [edi + 0x10c]
call fcn.00446c03
lea eax, [edi + 0x10c]
push eax
lea eax, [edi + 0x7c]
push eax
call fcn.0043d1c1
mov ecx, edi
call fcn.0043c86f
sub esp, 0x18
mov ecx, esp
push str.USE_APPSCION_EVENTS
mov byte [edi + 0x49], al
call fcn.004018f6
mov ecx, esi
call fcn.00445912
xor ebx, ebx
push 1
test al, al
pop eax
movzx ecx, bl
cmovne ecx, eax
sub esp, 0x18
mov byte [ebp - 0x44], cl
mov ecx, esp
push str.LAZYINSTALL
call fcn.004018f6
mov ecx, esi
call fcn.00445912
test al, al
je 0x440337
cmp byte [edi + 0x48], bl
jne 0x440337
cmp byte [ebp - 0x21], bl
jne 0x440337
cmp byte [ebp - 0x15], bl
jne 0x440337
sub esp, 0x18
mov ecx, esp
push str.Run_lazy
call fcn.004018f6
push 0x12e
mov ecx, edi
call fcn.004389fa
push str.__INSTALL
sub esp, 0x18
lea eax, [edi + 0x84]
mov ecx, esp
push eax
call fcn.004018ce
lea ecx, [ebp - 0xec]
call fcn.00442095
add esp, 0x18
mov edx, eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0xf
call fcn.004033aa
pop ecx
xor eax, eax
push ebx
inc eax
push eax
lea ecx, [ebp - 0xec]
mov byte [ebp - 4], 0x11
call fcn.004023ba
cmp dword [ebp - 0x28], 8
lea eax, [ebp - 0x3c]
cmovae eax, dword [ebp - 0x3c]
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
call fcn.004018f6
sub esp, 0x18
mov ecx, esp
push 0x553ec0
mov byte [ebp - 4], 0x12
call fcn.004018f6
xor eax, eax
push 0x4e20
xor edx, edx
lea ecx, [eax + 1]
mov byte [ebp - 4], 0x11
call fcn.0049c74e
add esp, 0x34
push ebx
test eax, eax
je 0x440327
push ebx
push 0x403
push dword [edi]
call dword [sym.imp.USER32.dll_PostMessageW]
xor esi, esi
push ebx
inc esi
push esi
lea ecx, [ebp - 0x3c]
call fcn.004023ba
push ebx
push esi
lea ecx, [ebp - 0x8c]
call fcn.004023ba
push ebx
push esi
lea ecx, [ebp - 0x74]
call fcn.004023ba
jmp 0x440885
xor eax, eax
inc eax
push eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0xc
call fcn.004023ba
mov ecx, edi
call fcn.0043836d
mov bl, byte [ebp - 0x40]
test bl, bl
je 0x44039d
sub esp, 0x18
mov ecx, esp
push str.EXTRA_WAITTIME
call fcn.004018f6
lea eax, [ebp - 0x3c]
push eax
mov ecx, esi
call fcn.004459ac
mov byte [ebp - 4], 0x13
cmp dword [ebp - 0x2c], 0
je 0x44038c
cmp dword [ebp - 0x28], 8
lea eax, [ebp - 0x3c]
cmovae eax, dword [ebp - 0x3c]
push eax
call fcn.0041bf02
pop ecx
test eax, eax
jle 0x44038c
push ecx
push eax
lea ecx, [edi + 0xb4]
call fcn.004a50ff
xor eax, eax
push eax
inc eax
push eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0xc
call fcn.004023ba
sub esp, 0x18
mov ecx, esp
push str.ProcessTrackingInfo
call fcn.004018f6
push 0x12f
mov ecx, edi
call fcn.004389fa
movzx eax, byte [edi + 0x48]
push eax
mov ecx, edi
call fcn.0043a1fb
sub esp, 0x18
mov ecx, esp
push str.dump_dataProperties
call fcn.004018f6
mov ecx, esi
call fcn.00444a6f
sub esp, 0x18
mov ecx, esp
push str.dump_stampProperties
call fcn.004018f6
lea ecx, [edi + 0x10c]
call fcn.00444a6f
sub esp, 0x18
mov ecx, esp
push str.SEND_FINAL_EVENT_ONLY
call fcn.004018f6
mov ecx, esi
call fcn.00445912
mov byte [edi + 0x120], al
test bl, bl
je 0x44046c
push ecx
lea ecx, [edi + 0x10]
call fcn.00440da0
test al, al
je 0x440493
push ecx
lea ecx, [edi + 0x10]
call fcn.00440b67
push eax
lea ecx, [ebp - 0x3c]
call fcn.004018f6
cmp dword [ebp - 0x28], 8
lea eax, [ebp - 0x3c]
cmovae eax, dword [ebp - 0x3c]
push eax
call fcn.0041bf02
pop ecx
xor ecx, ecx
inc ecx
cmp eax, ecx
je 0x44045b
cmp eax, 2
je 0x44045b
cmp eax, 5
je 0x44045b
cmp eax, 4
jne 0x44045e
mov dword [edi + 0x4c], eax
xor eax, eax
push eax
push ecx
lea ecx, [ebp - 0x3c]
call fcn.004023ba
jmp 0x440493
sub esp, 0x18
mov ecx, esp
push str.SendEventFirst
call fcn.004018f6
xor eax, eax
push eax
mov ecx, edi
call fcn.004389fa
push dword [ebp - 0x44]
xor eax, eax
push eax
push eax
mov ecx, edi
call int.00439037
cmp byte [edi + 0x48], 0
mov ecx, str.Installer
mov eax, str.Uninstaller
cmove eax, ecx
push eax
xor eax, eax
push 0x553f44
mov dword [ebp - 0x28], 7
mov dword [ebp - 0x2c], eax
mov word [ebp - 0x3c], ax
call fcn.0041b53d
pop ecx
push eax
push 0x553f44
lea ecx, [ebp - 0x3c]
call fcn.00402a1d
lea eax, [ebp - 0x3c]
push eax
sub esp, 0x18
mov ecx, esp
push str.PRODUCTNAME
mov byte [ebp - 4], 0x14
call fcn.004018f6
lea eax, [ebp - 0x164]
push eax
mov ecx, esi
call fcn.004459ac
mov edx, eax
lea ecx, [ebp - 0xec]
mov byte [ebp - 4], 0x15
call fcn.004033e1
pop ecx
mov edx, eax
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 0x16
call fcn.004033aa
pop ecx
xor eax, eax
push eax
inc eax
push eax
lea ecx, [ebp - 0xec]
call fcn.004023ba
xor eax, eax
push eax
inc eax
push eax
lea ecx, [ebp - 0x164]
call fcn.004023ba
xor eax, eax
push eax
inc eax
push eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x1a
call fcn.004023ba
cmp dword [ebp - 0x48], 8
lea eax, [ebp - 0x5c]
cmovae eax, dword [ebp - 0x5c]
push eax
push dword [edi]
call dword [sym.imp.USER32.dll_SetWindowTextW]
cmp byte [edi + 0x48], 0
je 0x4405b7
cmp byte [edi + 0x49], 0
jne 0x4405b7
cmp dword [ebp - 0x48], 8
push 0x1124
lea eax, [ebp - 0x5c]
cmovae eax, dword [ebp - 0x5c]
push eax
push str.Are_you_sure_you_want_to_uninstall_the_product_
push dword [edi]
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 7
jne 0x4405b7
sub esp, 0x18
mov ecx, esp
push str.Uninstall_denied
call fcn.004018f6
push 0x320
mov ecx, edi
call fcn.004389fa
xor esi, esi
xor ebx, ebx
inc esi
push ebx
push esi
lea ecx, [ebp - 0x5c]
call fcn.004023ba
jmp 0x44019a
sub esp, 0x18
mov ecx, esp
push str.PostMessage_UI
call fcn.004018f6
push 0x130
mov ecx, edi
call fcn.004389fa
cmp byte [edi + 0x49], 0
jne 0x4405e2
test bl, bl
jne 0x4405e2
xor eax, eax
mov ecx, eax
jmp 0x4405e7
xor eax, eax
lea ecx, [eax + 1]
xor eax, eax
cmp byte [edi + 0x48], al
setne al
push eax
push ecx
push 0x401
push dword [edi]
call dword [sym.imp.USER32.dll_PostMessageW]
sub esp, 0x18
mov ecx, esp
push str.AVEVADE
call fcn.004018f6
mov ecx, esi
call fcn.00445912
test al, al
je 0x44062d
test bl, bl
jne 0x44062d
push ecx
push 0x4e20
lea ecx, [edi + 0xb4]
call fcn.004a50ff
sub esp, 0x18
mov ecx, esp
push str.AUTOHIDEUI
call fcn.004018f6
lea eax, [ebp - 0xa4]
push eax
mov ecx, esi
call fcn.004459ac
mov byte [ebp - 4], 0x1b
cmp dword [ebp - 0x94], 0
je 0x44068f
cmp dword [ebp - 0x90], 8
lea eax, [ebp - 0xa4]
cmovae eax, dword [ebp - 0xa4]
push eax
call fcn.0041bf02
xor esi, esi
pop ecx
test eax, eax
jle 0x440691
cmp byte [edi + 0x48], 0
jne 0x440691
push esi
push eax
push 0x578
push dword [edi]
call dword [sym.imp.USER32.dll_SetTimer]
jmp 0x440691
xor esi, esi
cmp byte [edi + 0x48], 0
lea ecx, [edi + 0x38]
je 0x4407af
mov edx, str.Uninstall
call int.0049e2dc
test al, al
je 0x44070a
push esi
push esi
mov dword [ebp - 0x1c], esi
call fcn.00404499
mov dword [ebp - 0x20], eax
sub esp, 0x18
mov ecx, esp
push str.ParseActionJson
mov byte [ebp - 4], 0x1c
call fcn.004018f6
push 0x190
mov ecx, edi
call fcn.004389fa
lea eax, [edi + 0x50]
push eax
lea eax, [ebp - 0x20]
push eax
push str.Uninstall
lea ecx, [edi + 0x38]
call fcn.0046dc01
push eax
mov ecx, edi
call fcn.0043c294
test al, al
jne 0x440721
lea ecx, [ebp - 0x20]
call fcn.00401f46
push dword [ebp - 0x20]
call fcn.00418a9a
pop ecx
xor ebx, ebx
xor esi, esi
push ebx
inc esi
push esi
lea ecx, [ebp - 0xa4]
call fcn.004023ba
jmp 0x4405a8
sub esp, 0x18
mov ecx, esp
push str.ProceedWithAction
call fcn.004018f6
push 0x1f4
mov ecx, edi
call fcn.004389fa
lea eax, [ebp - 0x20]
push eax
movzx eax, byte [edi + 0x48]
push eax
mov ecx, edi
call fcn.0043bf5d
lea ecx, [ebp - 0x20]
test al, al
je 0x4406fc
mov byte [ebp - 4], 0x1b
call fcn.00401f46
push dword [ebp - 0x20]
call fcn.00418a9a
cmp byte [ebp - 0x15], 0
pop ecx
je 0x440791
cmp dword [ebp - 0xc4], 0
je 0x440791
sub esp, 0x18
lea eax, [ebp - 0x8c]
mov ecx, esp
push eax
call fcn.004018ce
lea eax, [edi + 0x10c]
push eax
call fcn.00437931
sub esp, 0x18
mov ecx, esp
push 0x553ec0
call fcn.004018f6
xor ebx, ebx
push ebx
mov ecx, edi
call fcn.004389fa
jmp 0x44070c
mov edx, str.Install
call int.0049e2dc
test al, al
je 0x44070a
push esi
push esi
mov dword [ebp - 0x1c], esi
call fcn.00404499
mov dword [ebp - 0x20], eax
sub esp, 0x18
mov ecx, esp
push str.ParseActionJson
mov byte [ebp - 4], 0x1d
call fcn.004018f6
push 0x258
mov ecx, edi
call fcn.004389fa
lea eax, [edi + 0x50]
push eax
lea eax, [ebp - 0x20]
push eax
push str.Install
lea ecx, [edi + 0x38]
call fcn.0046dc01
push eax
mov ecx, edi
call fcn.0043c294
test al, al
je 0x4406f9
sub esp, 0x18
mov ecx, esp
push str.ProceedWithAction
call fcn.004018f6
push 0x2bc
jmp 0x440735
xor esi, esi
xor ebx, ebx
inc esi
push dword [ebp - 0x44]
mov ecx, edi
push dword [ebp - 0x40]
push esi
call int.00439037
push ecx
push 0x5dc
lea ecx, [edi + 0xb4]
call fcn.004a50ff
mov edx, str.are_you_really_sure
mov ecx, str.are_you_sure
call fcn.004a4ed3
push ebx
push ebx
push 0x403
push dword [edi]
call dword [sym.imp.USER32.dll_PostMessageW]
call fcn.004ae8cf
push ebx
lea esi, [eax + 0x3a4]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [esi]
xor esi, esi
inc esi
push ebx
push esi
lea ecx, [ebp - 0x104]
call fcn.004023ba
push ebx
push esi
lea ecx, [ebp - 0xd4]
call fcn.004023ba
push ebx
push esi
lea ecx, [ebp - 0xbc]
call fcn.004023ba
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret