Function at 0x408f9e
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x80
mov eax, dword [0x45a06c]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, ecx
call fcn.0041f106
push eax
mov ecx, edi
call fcn.0041f59c
cmp dword [ebx + 0x14], 8
jb 0x408fd1
mov ebx, dword [ebx]
push ebx
lea ecx, [ebp - 0x20]
call fcn.00406783
push edi
lea ecx, [ebp - 0x20]
call fcn.0041ebf9
pop ecx
lea ecx, [ebp - 0x20]
call fcn.00402499
mov ecx, dword [esi + 0x10]
xor ebx, ebx
test ecx, ecx
je 0x408ffc
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ebx, eax
cmp byte [esi + 0x104], 0
push 0xf
pop eax
je 0x409038
and dword [ebp - 0x28], 0
lea ecx, [ebp - 0x38]
push 0xb
push str.disable_uac
mov dword [ebp - 0x24], eax
mov byte [ebp - 0x38], 0
call fcn.0040256f
lea eax, [ebp - 0x38]
mov ecx, edi
push eax
call fcn.0041f155
lea ecx, [ebp - 0x38]
call fcn.00402525
push 0xf
pop eax
and dword [ebp - 0x10], 0
lea ecx, [ebp - 0x20]
push eax
push str.progress_window
mov dword [ebp - 0xc], eax
mov byte [ebp - 0x20], 0
call fcn.0040256f
push 0xa
lea eax, [ebp - 0x34]
push eax
mov eax, ebx
cdq
push edx
push eax
call fcn.0042cb05
mov edx, eax
mov dword [ebp - 0x3c], 0xf
mov ecx, edx
mov byte [ebp - 0x50], 0
add esp, 0x10
and dword [ebp - 0x40], 0
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40907a
sub ecx, ebx
push ecx
push edx
lea ecx, [ebp - 0x50]
call fcn.0040256f
lea eax, [ebp - 0x50]
mov ecx, edi
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0041f19b
lea ecx, [ebp - 0x50]
call fcn.00402525
lea ecx, [ebp - 0x20]
call fcn.00402525
push 0xf
pop eax
push eax
xor ebx, ebx
mov dword [ebp - 0xc], eax
push str.verbose_logging
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x10], ebx
mov byte [ebp - 0x20], bl
call fcn.0040256f
lea eax, [ebp - 0x20]
mov ecx, edi
push eax
call fcn.0041f155
lea ecx, [ebp - 0x20]
call fcn.00402525
push 0xa
push 0x453d38
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], 0xf
mov byte [ebp - 0x20], bl
call fcn.0040256f
mov eax, dword [esi + 0x14]
mov ecx, edi
add eax, 0x34
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0041f19b
lea ecx, [ebp - 0x20]
call fcn.00402525
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x14], ebx
je 0x40914d
push 0xf
pop eax
push eax
push str.distr_info_file
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], eax
mov byte [ebp - 0x20], bl
call fcn.0040256f
mov eax, dword [esi + 0x18]
mov ecx, edi
add eax, 4
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0041f1e0
lea ecx, [ebp - 0x20]
call fcn.00402525
push 0x21
push str.make_browser_default_after_import
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], bl
call fcn.0040256f
cmp byte [esi + 0x1c], bl
je 0x40917b
lea eax, [ebp - 0x38]
mov ecx, edi
push eax
call fcn.0041f155
jmp 0x4091b8
lea ecx, [ebp - 0x38]
push ecx
lea ecx, [ebp - 0x7c]
push ecx
lea ecx, [edi + 0x18]
call fcn.0041f8f7
mov eax, dword [ebp - 0x7c]
mov ebx, dword [ebp - 0x78]
mov dword [ebp - 0x70], eax
cmp eax, ebx
je 0x4091a8
lea ecx, [ebp - 0x70]
call fcn.004034d9
cmp dword [ebp - 0x70], ebx
jne 0x409198
mov eax, dword [ebp - 0x7c]
push ebx
push eax
lea eax, [ebp - 0x70]
push eax
lea ecx, [edi + 0x18]
call fcn.0040ac81
xor ebx, ebx
lea ecx, [ebp - 0x38]
call fcn.00402525
push 0xf
pop eax
push eax
push str.send_statistics
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], eax
mov byte [ebp - 0x38], bl
call fcn.0040256f
cmp byte [esi + 0x1d], 0
je 0x4091ed
lea eax, [ebp - 0x38]
mov ecx, edi
push eax
call fcn.0041f155
jmp 0x40922a
lea ecx, [ebp - 0x38]
push ecx
lea ecx, [ebp - 0x7c]
push ecx
lea ecx, [edi + 0x18]
call fcn.0041f8f7
mov eax, dword [ebp - 0x7c]
mov ebx, dword [ebp - 0x78]
mov dword [ebp - 0x70], eax
cmp eax, ebx
je 0x40921a
lea ecx, [ebp - 0x70]
call fcn.004034d9
cmp dword [ebp - 0x70], ebx
jne 0x40920a
mov eax, dword [ebp - 0x7c]
push ebx
push eax
lea eax, [ebp - 0x70]
push eax
lea ecx, [edi + 0x18]
call fcn.0040ac81
xor ebx, ebx
lea ecx, [ebp - 0x38]
call fcn.00402525
xor eax, eax
mov dword [ebp - 0x58], ebx
push 0x450878
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x54], 7
mov word [ebp - 0x68], ax
call fcn.004067a8
cmp dword [ebp - 0x58], 0
je 0x409288
push 0x14
push str.distribution_channel
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], 0xf
mov byte [ebp - 0x20], bl
call fcn.0040256f
lea eax, [ebp - 0x68]
mov ecx, edi
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0041f1e0
lea ecx, [ebp - 0x20]
call fcn.00402525
mov eax, dword [esi + 0xa0]
or eax, dword [esi + 0xa4]
je 0x4092e4
push 0x17
push str.histogram_download_time
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], 0xf
mov byte [ebp - 0x20], bl
call fcn.0040256f
push dword [esi + 0xa4]
lea ecx, [ebp - 0x50]
push dword [esi + 0xa0]
call fcn.00406f07
pop ecx
pop ecx
push eax
lea eax, [ebp - 0x20]
mov ecx, edi
push eax
call fcn.0041f1e0
lea ecx, [ebp - 0x50]
call fcn.00402499
lea ecx, [ebp - 0x20]
call fcn.00402525
mov eax, dword [esi + 0xb0]
or eax, dword [esi + 0xb4]
je 0x40940b
push 0x16
push str.ok_button_pressed_time
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], 0xf
mov byte [ebp - 0x20], bl
call fcn.0040256f
push dword [esi + 0xb4]
lea ecx, [ebp - 0x50]
push dword [esi + 0xb0]
call fcn.00406e83
pop ecx
pop ecx
push eax
lea eax, [ebp - 0x20]
mov ecx, edi
push eax
call fcn.0041f1e0
lea ecx, [ebp - 0x50]
call fcn.00402499
lea ecx, [ebp - 0x20]
call fcn.00402525
mov eax, dword [esi + 0xc0]
or eax, dword [esi + 0xc4]
je 0x40940b
mov ecx, dword [esi + 0xc8]
mov eax, ecx
mov edx, dword [esi + 0xcc]
or eax, edx
jne 0x409378
xorps xmm0, xmm0
movlpd qword [ebp - 0x74], xmm0
mov eax, dword [ebp - 0x70]
mov ebx, dword [ebp - 0x74]
jmp 0x4093b2
mov eax, dword [esi + 0xc4]
mov ebx, dword [esi + 0xc0]
cmp edx, eax
jl 0x40938e
jg 0x409368
cmp ecx, ebx
jae 0x409368
cmp edx, dword [esi + 0xbc]
jg 0x4093ae
jl 0x4093a0
cmp ecx, dword [esi + 0xb8]
ja 0x4093ae
sub ebx, dword [esi + 0xb8]
sbb eax, dword [esi + 0xbc]
jmp 0x4093b2
sub ebx, ecx
sbb eax, edx
add ebx, dword [esi + 0xb0]
lea ecx, [ebp - 0x20]
push 0x19
adc eax, dword [esi + 0xb4]
and dword [ebp - 0x10], 0
push str.install_start_time_no_uac
mov dword [ebp - 0x70], eax
mov dword [ebp - 0xc], 0xf
mov byte [ebp - 0x20], 0
call fcn.0040256f
push dword [ebp - 0x70]
lea ecx, [ebp - 0x50]
push ebx
call fcn.00406e83
pop ecx
pop ecx
push eax
lea eax, [ebp - 0x20]
mov ecx, edi
push eax
call fcn.0041f1e0
lea ecx, [ebp - 0x50]
call fcn.00402499
lea ecx, [ebp - 0x20]
call fcn.00402525
xor ebx, ebx
cmp byte [ebp + 0x10], 0
je 0x40957d
push 0xd
push str.installerdata
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], 0xf
mov byte [ebp - 0x20], bl
call fcn.0040256f
lea eax, [esi + 0x38]
mov ecx, edi
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0041f1e0
lea ecx, [ebp - 0x20]
call fcn.00402525
push 0xa
push str.clids_file
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], 0xf
mov byte [ebp - 0x20], bl
call fcn.0040256f
lea eax, [esi + 0x50]
mov ecx, edi
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0041f1e0
lea ecx, [ebp - 0x20]
call fcn.00402525
mov eax, dword [esi + 0x14]
cmp byte [eax + 0xf8], 0
je 0x4094bf
push 0xd
push str.brand_package
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], 0xf
mov byte [ebp - 0x20], bl
call fcn.0040256f
mov eax, dword [esi + 0x14]
mov ecx, edi
add eax, 0xb0
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0041f1e0
lea ecx, [ebp - 0x20]
call fcn.00402525
mov eax, dword [esi + 0x14]
cmp byte [eax + 0xf9], 0
je 0x409501
push 0xf
pop eax
push eax
push str.partner_package
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], eax
mov byte [ebp - 0x20], bl
call fcn.0040256f
mov eax, dword [esi + 0x14]
mov ecx, edi
add eax, 0xc8
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0041f1e0
lea ecx, [ebp - 0x20]
call fcn.00402525
cmp dword [esi + 0x130], ebx
je 0x40953f
push 0x18
push str.override_partner_package
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], 0xf
mov byte [ebp - 0x20], bl
call fcn.0040256f
lea eax, [esi + 0x120]
mov ecx, edi
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0041f1e0
lea ecx, [ebp - 0x20]
call fcn.00402525
cmp dword [esi + 0xf8], ebx
je 0x40957d
push 0xc
push str.country_code
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], 0xf
mov byte [ebp - 0x20], bl
call fcn.0040256f
lea eax, [esi + 0xe8]
mov ecx, edi
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0041f19b
lea ecx, [ebp - 0x20]
call fcn.00402525
call fcn.0041f106
mov ecx, dword [esi + 0x18]
mov edx, eax
call fcn.0040d8c8
cmp eax, 2
jne 0x4095c0
push 0x19
push str.show_uac_at_browser_start
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], 0xf
mov byte [ebp - 0x20], bl
call fcn.0040256f
lea eax, [ebp - 0x20]
mov ecx, edi
push eax
call fcn.0041f155
lea ecx, [ebp - 0x20]
call fcn.00402525
lea ecx, [ebp - 0x68]
call fcn.00402499
mov ecx, dword [ebp - 8]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00427412
mov esp, ebp
pop ebp
ret 0xc