Function at 0x466596
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x515303
mov eax, dword fs:[0]
push eax
sub esp, 0x88
push ebx
push esi
push edi
mov eax, dword [0x56d790]
xor eax, esp
push eax
lea eax, [esp + 0x98]
mov dword fs:[0], eax
mov ebx, ecx
push 0x2e
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
mov edi, str.CIQOfferFreezeToolbar::OnInstall
push edi
call fcn.00401769
and dword [esp + 0xa8], 0
or dword [esp + 0xa8], 0xffffffff
call fcn.00412190
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x104]
lea esi, [eax + 0x150]
lea eax, [esp + 0x10]
push eax
push esi
call fcn.0045cef4
mov dword [esp + 0x1c], eax
mov dword [esp + 0xa0], 1
lea eax, [esp + 0x14]
push eax
push esi
call fcn.0043b477
mov dword [esp + 0x20], eax
mov byte [esp + 0xa0], 2
lea eax, [esp + 0x18]
push eax
push esi
call fcn.0043a4f8
mov byte [esp + 0xa0], 3
push dword [esp + 0x20]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.0040403d
add esp, 0xc
mov byte [esp + 0xa0], 4
push dword [esp + 0x1c]
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.0040403d
add esp, 0xc
mov byte [esp + 0xa0], 6
lea ecx, [esp + 0x28]
call fcn.00401898
mov byte [esp + 0xa0], 7
lea ecx, [esp + 0x18]
call fcn.00401898
mov byte [esp + 0xa0], 8
lea ecx, [esp + 0x14]
call fcn.00401898
mov byte [esp + 0xa0], 9
lea ecx, [esp + 0x10]
call fcn.00401898
mov eax, dword [ebx]
push 0x20000
mov ecx, ebx
call dword [eax + 0x4c]
test eax, eax
je 0x466a32
lea eax, [ebx + 0x27c]
mov ecx, dword [eax]
cmp dword [ecx - 0xc], 0
je 0x46693f
lea esi, [ebx + 0x288]
mov ecx, dword [esi]
cmp dword [ecx - 0xc], 0
je 0x46693f
lea eax, [esp + 0x60]
push eax
call fcn.004810dd
mov byte [esp + 0xa0], 0x12
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x54]
mov dword [esp + 0x10], eax
mov byte [esp + 0xa0], 9
lea ecx, [esp + 0x60]
call fcn.0048114e
lea eax, [esp + 0x2c]
push eax
call fcn.004810dd
mov byte [esp + 0xa0], 0x13
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x1c4]
test eax, eax
jne 0x4667b3
push 0x45
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push edi
call fcn.00401769
mov byte [esp + 0xa8], 0x14
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.User_canceled_during_Firefox_shutdown_
call fcn.00401769
mov byte [esp + 0xac], 0x15
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push str.ffcancel
call fcn.00401769
mov byte [esp + 0xb0], 0x16
mov eax, dword [ebx]
push 0x4c7
mov byte [esp + 0xb4], 0x13
mov ecx, ebx
call dword [eax + 0x1b4]
mov byte [esp + 0xa0], 9
lea ecx, [esp + 0x2c]
call fcn.0048114e
jmp 0x466a1a
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push esi
call fcn.0040184e
mov byte [esp + 0xa4], 0x17
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str..guid
lea eax, [ebx + 0x27c]
push eax
push ecx
call fcn.00404094
mov byte [esp + 0xb4], 0x18
add esp, 8
mov ecx, esp
mov dword [esp + 0x34], esp
mov esi, 0x51d067
push esi
call fcn.00401769
mov byte [esp + 0xac], 0x19
mov byte [esp + 0xac], 0x13
lea ecx, [esp + 0x38]
call fcn.0048368f
test eax, eax
jne 0x4668b7
push 0x4a
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push edi
call fcn.00401769
mov byte [esp + 0xa8], 0x1a
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.Failed_to_write_Firefox_pref__GUID__
call fcn.00401769
mov byte [esp + 0xac], 0x1b
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push str.fffail
call fcn.00401769
mov byte [esp + 0xb0], 0x1c
mov eax, dword [ebx]
push 1
mov byte [esp + 0xb4], 0x13
mov ecx, ebx
call dword [eax + 0x1b4]
mov byte [esp + 0xa0], 9
lea ecx, [esp + 0x2c]
call fcn.0048114e
xor esi, esi
or dword [esp + 0xa0], 0xffffffff
lea ecx, [esp + 0x24]
call fcn.00401898
mov eax, esi
mov ecx, dword [esp + 0x98]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ecx
lea eax, [esp + 0x28]
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
call fcn.0040184e
mov byte [esp + 0xa4], 0x1d
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str..Var1
lea eax, [ebx + 0x27c]
push eax
push ecx
call fcn.00404094
mov byte [esp + 0xb4], 0x1e
add esp, 8
mov ecx, esp
mov dword [esp + 0x34], esp
push esi
call fcn.00401769
mov byte [esp + 0xac], 0x1f
mov byte [esp + 0xac], 0x13
lea ecx, [esp + 0x38]
call fcn.0048368f
mov eax, dword [ebx]
push 0
push dword [esp + 0x14]
mov ecx, ebx
call dword [eax + 0x22c]
mov byte [esp + 0xa0], 9
lea ecx, [esp + 0x2c]
call fcn.0048114e
jmp 0x466dc6
push eax
lea eax, [esp + 0x18]
push str.Missing_data_for_firefox_toolbar_install__Name:
push eax
call fcn.004040f8
add esp, 0xc
mov byte [esp + 0xa0], 0xa
push str.__ID:
push eax
lea eax, [esp + 0x18]
push eax
call fcn.00404094
add esp, 0xc
mov byte [esp + 0xa0], 0xb
lea ecx, [ebx + 0x288]
push ecx
push eax
lea eax, [esp + 0x28]
push eax
call fcn.0040403d
add esp, 0xc
mov byte [esp + 0xa0], 0xd
lea ecx, [esp + 0x10]
call fcn.00401898
mov byte [esp + 0xa0], 0xe
lea ecx, [esp + 0x14]
call fcn.00401898
push 0x3b
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push edi
call fcn.00401769
mov byte [esp + 0xa8], 0xf
push ecx
lea eax, [esp + 0x2c]
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.0040184e
mov byte [esp + 0xac], 0x10
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push str.tbfail
call fcn.00401769
mov byte [esp + 0xb0], 0x11
mov eax, dword [ebx]
push 1
mov byte [esp + 0xb4], 0xe
mov ecx, ebx
call dword [eax + 0x1b4]
mov byte [esp + 0xa0], 9
lea ecx, [esp + 0x20]
call fcn.00401898
or dword [esp + 0xa0], 0xffffffff
lea ecx, [esp + 0x24]
call fcn.00401898
xor eax, eax
jmp 0x4668a1
push str.SoftwareXBTB03021Toolbar
lea ecx, [esp + 0x20]
call fcn.00401769
mov byte [esp + 0xa0], 0x20
lea eax, [esp + 0x20]
push eax
call fcn.0041e27b
pop ecx
mov byte [esp + 0xa0], 0x21
lea eax, [ebx + 0x280]
mov ecx, dword [eax]
cmp dword [ecx - 0xc], 0
je 0x466a7c
push ecx
lea eax, [esp + 0x20]
push str.Software_sToolbar
push eax
call fcn.004042ff
add esp, 0xc
push ecx
lea eax, [esp + 0x28]
mov ecx, esp
mov dword [esp + 0x14], esp
xor edi, edi
push eax
inc edi
call fcn.0040184e
mov byte [esp + 0xa4], 0x22
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.PromoCode
call fcn.00401769
mov byte [esp + 0xa8], 0x23
push ecx
lea eax, [esp + 0x28]
mov ecx, esp
mov dword [esp + 0x24], esp
push eax
call fcn.0040184e
mov byte [esp + 0xac], 0x24
mov esi, SysReAllocString
push esi
mov byte [esp + 0xb0], 0x21
call fcn.0041ec3b
add esp, 0x10
call fcn.0041b155
cmp eax, 6
jl 0x466b4f
push ecx
lea eax, [esp + 0x28]
mov ecx, esp
mov dword [esp + 0x14], esp
push eax
call fcn.0040184e
mov byte [esp + 0xa4], 0x25
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.PromoCode
call fcn.00401769
mov byte [esp + 0xa8], 0x26
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x30]
push ecx
push eax
call fcn.0040403d
add esp, 0xc
mov byte [esp + 0xac], 0x27
push esi
mov byte [esp + 0xb0], 0x21
call fcn.0041ec3b
add esp, 0x10
lea edi, [ebx + 0x284]
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
je 0x466cc6
push 0x5382f4
xor ecx, ecx
mov esi, edi
call fcn.0041271e
test eax, eax
jge 0x466bf0
push ecx
lea eax, [esp + 0x28]
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
call fcn.0040184e
mov byte [esp + 0xa4], 0x28
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.vintage
call fcn.00401769
mov byte [esp + 0xa8], 0x29
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push edi
call fcn.0040184e
mov byte [esp + 0xac], 0x2a
lea eax, [esp + 0x1c]
push eax
mov byte [esp + 0xb0], 0x21
call fcn.00415b26
add esp, 0x10
mov byte [esp + 0xa0], 0x2b
push eax
mov ecx, edi
call fcn.004043ce
mov byte [esp + 0xa0], 0x21
lea ecx, [esp + 0x10]
call fcn.00401898
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push edi
call fcn.0040184e
mov byte [esp + 0xa4], 0x2c
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
mov esi, str.heartbeat_url
push esi
call fcn.00401769
mov byte [esp + 0xa8], 0x2d
push ecx
lea eax, [esp + 0x28]
mov ecx, esp
mov dword [esp + 0x24], esp
push eax
call fcn.0040184e
mov byte [esp + 0xac], 0x2e
push SysReAllocString
mov byte [esp + 0xb0], 0x21
xor edi, edi
inc edi
call fcn.0041ec3b
add esp, 0x10
call fcn.0041b155
cmp eax, 6
jl 0x466cc1
push ecx
lea eax, [ebx + 0x284]
mov ecx, esp
mov dword [esp + 0x14], esp
push eax
call fcn.0040184e
mov byte [esp + 0xa4], 0x2f
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push esi
call fcn.00401769
mov byte [esp + 0xa8], 0x30
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x30]
push ecx
push eax
call fcn.0040403d
add esp, 0xc
mov byte [esp + 0xac], 0x31
push SysReAllocString
mov byte [esp + 0xb0], 0x21
call fcn.0041ec3b
add esp, 0x10
mov esi, SysReAllocString
lea eax, [ebx + 0x288]
mov ecx, dword [eax]
cmp dword [ecx - 0xc], 0
je 0x466da4
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
xor edi, edi
push eax
inc edi
call fcn.0040184e
mov byte [esp + 0xa4], 0x32
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.toolbar_id
call fcn.00401769
mov byte [esp + 0xa8], 0x33
push ecx
lea eax, [esp + 0x28]
mov ecx, esp
mov dword [esp + 0x24], esp
push eax
call fcn.0040184e
mov byte [esp + 0xac], 0x34
push esi
mov byte [esp + 0xb0], 0x21
call fcn.0041ec3b
add esp, 0x10
call fcn.0041b155
cmp eax, 6
jl 0x466da4
push ecx
lea eax, [ebx + 0x288]
mov ecx, esp
mov dword [esp + 0x14], esp
push eax
call fcn.0040184e
mov byte [esp + 0xa4], 0x35
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.toolbar_id
call fcn.00401769
mov byte [esp + 0xa8], 0x36
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x30]
push ecx
push eax
call fcn.0040403d
add esp, 0xc
mov byte [esp + 0xac], 0x37
push esi
mov byte [esp + 0xb0], 0x21
call fcn.0041ec3b
add esp, 0x10
mov byte [esp + 0xa0], 0x20
lea ecx, [esp + 0x20]
call fcn.00401898
mov byte [esp + 0xa0], 9
lea ecx, [esp + 0x1c]
call fcn.00401898
mov ecx, ebx
call fcn.00458c2d
mov esi, eax
jmp 0x46688e