Function at 0x405da0
Capabilities:
Check for time delay via gettickcount
Identify system language via api

Disassembly:
push 0xffffffffffffffff
push 0x456ed5
mov eax, dword fs:[0]
push eax
sub esp, 0x84
push ebx
push ebp
push esi
push edi
mov eax, dword [0x46bd84]
xor eax, esp
push eax
lea eax, [esp + 0x98]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x40], 0xffffffff
call fcn.0042d67b
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x405df5
push 0x80004005
call fcn.00401f60
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
mov dword [esp + 0xa0], ebx
call fcn.0042d67b
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x405e26
push 0x80004005
call fcn.00401f60
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x30], eax
mov byte [esp + 0xa0], 1
call fcn.0042d67b
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x405e58
push 0x80004005
call fcn.00401f60
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0xa0], 2
call fcn.0042d67b
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x405e8a
push 0x80004005
call fcn.00401f60
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
mov byte [esp + 0xa0], 3
call fcn.0042d67b
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x405ebc
push 0x80004005
call fcn.00401f60
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
mov byte [esp + 0xa0], 4
call fcn.0042d67b
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x405eee
push 0x80004005
call fcn.00401f60
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
push str.Setup.ini
lea ecx, [esp + 0x2c]
push ecx
push 0x470130
xor ecx, ecx
mov byte [esp + 0xac], 5
call fcn.00405060
lea esi, [esp + 0x48]
call fcn.00406c30
mov byte [esp + 0xa0], 7
call fcn.0042d67b
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x405f47
push 0x80004005
call fcn.00401f60
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x34], eax
call fcn.0042d67b
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x405f71
push 0x80004005
call fcn.00401f60
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ebx
push 0x4701d8
lea ecx, [esp + 0x4c]
mov byte [esp + 0xa4], 8
call fcn.0040f0a0
lea ecx, [esp + 0x4c]
push ecx
call fcn.004183b0
lea edx, [esp + 0x18]
add esp, 4
push edx
call fcn.00419be0
add esp, 4
push eax
lea ecx, [esp + 0x64]
mov byte [esp + 0xa4], 9
call fcn.0040f0a0
mov byte [esp + 0xa0], 8
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405fef
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
lea ecx, [esp + 0x6c]
push ecx
push str._platform
push 0x470130
mov word [esp + 0x70], ax
call fcn.00403330
lea edx, [esp + 0x70]
push edx
push str._cbid
push 0x470130
call fcn.00403330
lea eax, [esp + 0x68]
push eax
push str._dtid
push 0x470130
call fcn.00403330
mov eax, dword [0x4701e0]
cmp eax, ebx
je 0x40604f
push str.Make_Update_API_call
push 1
push eax
call fcn.00417320
add esp, 0xc
lea ecx, [esp + 0x34]
push ecx
lea ecx, [esp + 0x4c]
call fcn.00409bc0
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x3c]
mov edi, eax
mov eax, dword [0x4701e0]
cmp eax, ebx
je 0x4060e9
mov ecx, str.succeeded
test edi, edi
jne 0x40607e
mov ecx, str.failed
push ecx
push str.Update_API_call__s
push 1
push eax
call fcn.00417320
add esp, 0x10
test edi, edi
je 0x4060f1
mov ebx, esi
shr ebx, 0x10
test bl, bl
je 0x4060bb
mov edx, dword [0x4701e0]
push 0x45d0f8
push str._t_t_t_t___Server_proceed_flag:__s
push 0
push edx
call fcn.00417320
add esp, 0x10
test bl, bl
jne 0x4060e9
mov eax, dword [0x4701e0]
push ebp
push str._t_t_t_t___Manifest_URL:__s
push 0
push eax
call fcn.00417320
mov ecx, dword [esp + 0x48]
mov edx, dword [0x4701e0]
push ecx
push str._t_t_t_t___MSI_Arguments:__s
push 0
push edx
call fcn.00417320
add esp, 0x20
test edi, edi
jne 0x4062a3
push 0x14
push str.installAPICallFailed
mov ecx, 0x4701f0
call fcn.00401d70
test edi, edi
jne 0x40634c
mov eax, dword [0x4701e0]
test eax, eax
je 0x40612a
mov ecx, dword [0x4701f0]
push ecx
push str.UdateCheck_Failed__reason:__s_
push 1
push eax
call fcn.00417320
add esp, 0x10
mov byte [esp + 0xa0], 7
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x406152
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebp - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40616e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x48]
push ecx
mov byte [esp + 0xa4], 6
call fcn.00406d00
mov byte [esp + 0xa0], 5
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
or ecx, 0xffffffff
lea edx, [eax + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4061a8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xa0], 4
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4061d0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xa0], 3
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4061f8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xa0], 2
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406220
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xa0], 1
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406248
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xa0], 0
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406270
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0xa0], 0xffffffff
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40629b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
or eax, 0xffffffff
jmp 0x406844
mov eax, esi
shr eax, 0x10
test al, al
je 0x4062c2
push 0xf
push str.blockedByServer
mov ecx, 0x4701f0
call fcn.00401d70
jmp 0x40610a
cmp dword [ebp - 0xc], 0
jne 0x4062dc
push str.manifestDownloadFailed
mov ecx, 0x4701f0
call fcn.00401e60
jmp 0x40610a
lea eax, [ebp - 0x10]
push eax
call fcn.00401f90
add esp, 4
push 0
lea esi, [eax + 0x10]
push esi
push 0
call sub.urlmon.dll_IsValidURL
test eax, eax
lea eax, [esi - 0x10]
setne bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406316
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x406102
mov eax, dword [0x4701e0]
test eax, eax
je 0x406338
push ebp
push str.Remote_Manifest_Path___s__is_invalid_URL_
push 1
push eax
call fcn.00417320
add esp, 0x10
push str.manifestDownloadFailed
mov ecx, 0x4701f0
call fcn.00401e60
jmp 0x40610a
mov esi, dword [0x470110]
test esi, esi
jne 0x406377
push 0x28
call fcn.0042d2aa
add esp, 4
test eax, eax
je 0x40636d
mov esi, eax
call fcn.00411010
jmp 0x40636f
xor eax, eax
mov esi, eax
mov dword [0x470110], esi
mov ecx, dword [esi + 8]
cmp dword [ecx - 0xc], 0
jne 0x406384
test esi, esi
jne 0x4063ea
push 0x16
push str.manifestDownloadFailed
mov ecx, 0x4701f0
call fcn.00401d70
mov eax, dword [0x4701e0]
test eax, eax
je 0x4063ae
push str.Failed_to_download_manifest_file__Downloader_instance_unavailable_
push 1
push eax
call fcn.00417320
add esp, 0xc
lea esi, [esp + 0x34]
call fcn.00406df0
lea edx, [esp + 0x48]
push edx
mov byte [esp + 0xa4], 6
call fcn.00406d00
mov byte [esp + 0xa0], 5
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x40619c
mov eax, dword [0x4701e0]
test eax, eax
je 0x406403
push str.Begin_downloads_of_Manifest.
push 1
push eax
call fcn.00417320
add esp, 0xc
push 0
lea ecx, [esp + 0x18]
push ecx
call fcn.00409950
push 0
mov byte [esp + 0xa4], 0xa
mov edx, dword [0x4701d4]
mov edi, dword [esp + 0x2c]
mov eax, dword [eax]
push edx
push 0x402170
push 0x3a98
push 1
push edi
push ebp
push eax
mov eax, esi
call fcn.00411090
mov esi, eax
mov byte [esp + 0xa0], 8
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406466
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [0x4701e0]
test ecx, ecx
je 0x40648f
mov eax, str.succeeded
test esi, esi
jne 0x40647e
mov eax, str.failed
push eax
push str.Download_of_Manifest__s
push 1
push ecx
call fcn.00417320
add esp, 0x10
test esi, esi
jne 0x4064be
lea esi, [esp + 0x34]
call fcn.00406df0
lea ecx, [esp + 0x48]
push ecx
mov byte [esp + 0xa4], 6
call fcn.00406d00
mov byte [esp + 0xa0], 5
lea eax, [edi - 0x10]
jmp 0x40618f
push 0x45d474
push str.Reporting
lea ecx, [esp + 0x1c]
push edi
push ecx
call fcn.00420b30
add esp, 0x10
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0xa4], 0xb
call fcn.0040f0a0
mov byte [esp + 0xa0], 8
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x406510
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.CmdLine
push str.Product
lea ecx, [esp + 0x1c]
push edi
push ecx
call fcn.00420b30
add esp, 0x10
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0xa4], 0xc
call fcn.0040f0a0
mov byte [esp + 0xa0], 8
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x406562
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x38]
mov eax, dword [esi - 0xc]
test eax, eax
je 0x406593
mov ecx, dword [esp + 0x18]
cmp dword [ecx - 0xc], 0
je 0x406585
push 0x45c8c0
lea ecx, [esp + 0x1c]
call fcn.0040d630
mov eax, dword [esi - 0xc]
push eax
push esi
lea ecx, [esp + 0x20]
call fcn.00401630
mov esi, dword [esp + 0x24]
cmp dword [esi - 0xc], 0
jne 0x4065bc
mov eax, dword [0x4701e0]
test eax, eax
je 0x40662e
push str.Warning:_Manifest_doesn
push 1
push eax
call fcn.00417320
add esp, 0xc
jmp 0x40662e
lea ecx, [esp + 0x14]
call fcn.0040f140
push esi
lea edx, [esp + 0x18]
push str.REPORTINGURL__s_
push edx
mov byte [esp + 0xac], 0xd
call fcn.0040f030
mov eax, dword [esp + 0x24]
add esp, 0xc
cmp dword [eax - 0xc], 0
je 0x4065f8
push 0x45c8c0
lea ecx, [esp + 0x1c]
call fcn.0040d630
mov esi, dword [esp + 0x14]
mov eax, dword [esi - 0xc]
push eax
push esi
lea ecx, [esp + 0x20]
call fcn.00401630
lea eax, [esi - 0x10]
mov byte [esp + 0xa0], 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40662e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
push ebp
push ecx
push str.CmdLine
push str.Product
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea edx, [esp + 0x78]
push edx
mov edi, ebp
call fcn.004219d0
push eax
mov ebx, str.Product
mov byte [esp + 0xa4], 0xe
call fcn.00428270
mov esi, eax
add esp, 4
test esi, esi
je 0x4066aa
mov eax, dword [esi]
mov edx, dword [eax + 4]
mov ecx, esi
call edx
test eax, eax
je 0x4066aa
cmp dword [esi + 0x58], 0
jne 0x406696
mov eax, dword [esi]
mov edx, dword [eax + 0xc]
mov ecx, esi
call edx
neg eax
sbb eax, eax
neg eax
inc eax
mov dword [esi + 0x58], eax
xor eax, eax
cmp dword [esi + 0x58], 2
sete al
push eax
push esi
call fcn.00428990
mov edi, eax
jmp 0x4066ac
xor edi, edi
test esi, esi
je 0x4066ba
mov edx, dword [esi]
mov eax, dword [edx]
push 1
mov ecx, esi
call eax
mov byte [esp + 0xa0], 8
lea ecx, [esp + 0x7c]
mov dword [esp + 0x78], vtable.CDataINI.0
call fcn.0042f7a1
test edi, edi
je 0x40685e
push str.sameToolbarInstalled
mov ecx, 0x4701f0
call fcn.00401e60
mov eax, dword [0x4701e0]
test eax, eax
je 0x40670a
mov ecx, dword [0x4701d8]
push ecx
push str.We_detect_that_the_same_version_of_Toolbar__s_already_installed.
push 1
push eax
call fcn.00417320
add esp, 0x10
mov ebp, dword [esp + 0x1c]
lea esi, [esp + 0x34]
call fcn.00406df0
lea edx, [esp + 0x48]
push edx
mov byte [esp + 0xa4], 6
call fcn.00406d00
mov byte [esp + 0xa0], 5
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406751
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xa0], 4
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406779
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebp - 0x10]
mov byte [esp + 0xa0], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40679d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xa0], 2
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4067c5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xa0], 1
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4067ed
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xa0], 0
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406815
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0xa0], 0xffffffff
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406840
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x98]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
ret
push 0x45d5ac
push str.Product
lea edx, [esp + 0x1c]
push ebp
push edx
call fcn.00420b30
add esp, 0x10
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0xa4], 0x12
call fcn.0040f0a0
mov byte [esp + 0xa0], 8
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4068b0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebp, dword [esp + 0x1c]
cmp dword [ebp - 0xc], 0
jne 0x4068e7
mov eax, dword [0x4701e0]
test eax, eax
je 0x4068d3
push 0x45d5b8
push 1
push eax
call fcn.00417320
add esp, 0xc
push str.internalError
mov ecx, 0x4701f0
call fcn.00401e60
jmp 0x40670e
push 0
push ebp
push 0
call sub.urlmon.dll_IsValidURL
test eax, eax
je 0x406923
mov eax, dword [0x4701e0]
test eax, eax
je 0x40690f
push ebp
push str.Remote_Payload_Path___s__is_invalid_URL_
push 1
push eax
call fcn.00417320
add esp, 0x10
push str.payloadUrlInvalid
mov ecx, 0x4701f0
call fcn.00401e60
jmp 0x40670e
call fcn.00411050
mov esi, eax
test esi, esi
jne 0x40695b
mov eax, dword [0x4701e0]
test eax, eax
je 0x406947
push str.Failed_to_download_Payload_file__Downloader_instance_unavailable_
push 1
push eax
call fcn.00417320
add esp, 0xc
push str.payloadDownloadFailed
mov ecx, 0x4701f0
call fcn.00401e60
jmp 0x40670e
push str.AskToolbar.7z
lea ecx, [esp + 0x18]
push ecx
push 0x470130
xor ecx, ecx
call fcn.00405060
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0xa4], 0x13
call fcn.0040f0a0
lea ecx, [esp + 0x14]
mov byte [esp + 0xa0], 8
call fcn.00402040
mov eax, dword [0x4701e0]
test eax, eax
je 0x4069ad
push str.Begin_downloads_of_Payload.
push 1
push eax
call fcn.00417320
add esp, 0xc
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
push 1
lea edx, [esp + 0x18]
push edx
call fcn.00409950
push 0
push 0
push 0
push 0x2bf20
mov byte [esp + 0xb0], 0x14
mov ecx, dword [esp + 0x30]
mov eax, dword [eax]
push 1
push ecx
push ebp
push eax
mov eax, esi
call fcn.00411090
lea ecx, [esp + 0x14]
mov esi, eax
mov byte [esp + 0xa0], 8
call fcn.00402040
call edi
test esi, esi
je 0x406a42
mov eax, dword [0x4701e0]
test eax, eax
je 0x406a18
push str.Download_of_Payload_succeeded.
push 1
push eax
call fcn.00417320
add esp, 0xc
lea ecx, [esp + 0x20]
call fcn.00421480
test eax, eax
jne 0x406a59
mov eax, dword [0x4701e0]
test eax, eax
je 0x406947
push str.Error:_Local_Compressed_Payload_not_found_
push 1
push eax
call fcn.00417320
add esp, 0xc
mov eax, dword [0x4701e0]
test eax, eax
je 0x406947
push str.Error:_Download_of_Payload_failed_
jmp 0x40693c
call edi
push 0x20
call fcn.0042d2aa
mov esi, eax
add esp, 4
mov dword [esp + 0x74], esi
mov byte [esp + 0xa0], 0x15
test esi, esi
je 0x406aa8
lea edx, [esp + 0x14]
push edx
mov ecx, 0x470130
call fcn.004051a0
mov byte [esp + 0xa0], 0x16
mov eax, dword [eax]
push eax
mov eax, dword [esp + 0x24]
push eax
push esi
mov dword [esp + 0x50], 1
call fcn.0041dfe0
mov esi, eax
jmp 0x406aaa
xor esi, esi
mov dword [esp + 0xa0], 8
test byte [esp + 0x44], 1
je 0x406ac5
lea ecx, [esp + 0x14]
call fcn.00402040
test esi, esi
jne 0x406af6
mov eax, dword [0x4701e0]
test eax, eax
je 0x406ae2
push str.Error:_Unable_to_instantiate_CUnzipper7z_object_
push 1
push eax
call fcn.00417320
add esp, 0xc
push str.extract7zFailed
mov ecx, 0x4701f0
call fcn.00401e60
jmp 0x40670e
push 0
push 0
call fcn.0041e0d0
mov edx, dword [esi]
mov ebx, eax
mov eax, dword [edx]
push 1
mov ecx, esi
call eax
call edi
test ebx, ebx
je 0x406b3f
mov eax, dword [0x4701e0]
test eax, eax
je 0x406b2b
push ebx
push str.Error:_Unable_to_unzip_payload__error_d_
push 1
push eax
call fcn.00417320
add esp, 0x10
push str.extract7zFailed
mov ecx, 0x4701f0
call fcn.00401e60
jmp 0x40670e
lea ecx, [esp + 0x14]
push ecx
mov ecx, 0x470130
call fcn.004051a0
mov byte [esp + 0xa0], 0x18
mov edx, dword [eax]
push str..msi
push edx
lea eax, [esp + 0x24]
push 0x45c72c
push eax
call fcn.0040f030
add esp, 0x10
lea ecx, [esp + 0x14]
mov byte [esp + 0xa0], 8
call fcn.00402040
lea ecx, [esp + 0x1c]
call fcn.00421480
mov ebp, dword [esp + 0x1c]
test eax, eax
je 0x406bfd
mov ecx, dword [esp + 0x28]
push ecx
push ebp
push 0x45d5ac
push str.Product
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov eax, dword [0x4701e0]
test eax, eax
je 0x406bc1
push str.Validate_MSI_file_Digital_Signature.
push 1
push eax
call fcn.00417320
add esp, 0xc
push ebp
call fcn.00419f60
add esp, 4
test eax, eax
jne 0x406be2
push str.digitalSignatureValidationFailure
mov ecx, 0x4701f0
call fcn.00401e60
jmp 0x40670e
push 1
push 1
mov ecx, 0x470130
call fcn.00404720
mov dword [esp + 0x40], 0
jmp 0x40670e
mov eax, dword [0x4701e0]
test eax, eax
je 0x406c17
push ebp
push str.Error:_Unable_to_find_file___s__
push 1
push eax
call fcn.00417320
add esp, 0x10
push str.internalError
mov ecx, 0x4701f0
call fcn.00401e60
jmp 0x40670e