Function at 0x1000636c
Capabilities:
Get common file path
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x96c
mov eax, dword [0x100216dc]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x944], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x948], eax
mov eax, dword [ebp + 0x14]
push ebx
push esi
mov dword [ebp - 0x940], eax
mov eax, dword [ebp + 0x18]
push edi
mov dword [ebp - 0x954], eax
mov eax, dword [ebp + 0x1c]
or dword [eax], 0xffffffff
xor edi, edi
push edi
mov dword [ebp - 0x964], eax
call dword [sym.imp.ole32.dll_CoInitialize]
mov esi, dword [sym.imp.ole32.dll_CoCreateInstance]
lea eax, [ebp - 0x950]
push eax
push 0x1001adc4
push 0x17
push edi
push 0x1001b634
mov dword [ebp - 0x960], edi
mov dword [ebp - 0x950], edi
call esi
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jne 0x1000669c
lea eax, [ebp - 0x94c]
push eax
push 0x1001b624
push 1
push edi
push 0x1001b1a4
mov dword [ebp - 0x94c], edi
call esi
test eax, eax
jne 0x10006680
mov esi, str.__xml_version_1.0__encoding_UTF_8____n_OpenSearchDescription_xmlns_http:__a9.com___spec_opensearch_1.1___xmlns:ie_http:__schemas.microsoft.com_Search_2008____n_ShortName_
push esi
mov dword [ebp - 0x938], edi
call ebx
push eax
push esi
lea ecx, [ebp - 0x938]
call fcn.10005e5f
push dword [ebp - 0x948]
call ebx
push eax
push dword [ebp - 0x948]
lea ecx, [ebp - 0x938]
call fcn.10005e5f
mov esi, str.__ShortName__n
push esi
call ebx
push eax
push esi
lea ecx, [ebp - 0x938]
call fcn.10005e5f
cmp dword [ebp - 0x940], edi
je 0x100064ab
mov esi, str._Image_height_16__width_16__type_image_icon__
push esi
call ebx
push eax
push esi
lea ecx, [ebp - 0x938]
call fcn.10005e5f
push dword [ebp - 0x940]
call ebx
push eax
push dword [ebp - 0x940]
lea ecx, [ebp - 0x938]
call fcn.10005e5f
mov esi, str.__Image__n
push esi
call ebx
push eax
push esi
lea ecx, [ebp - 0x938]
call fcn.10005e5f
mov esi, str._Url_type_text_html__template_
push esi
call ebx
push eax
push esi
lea ecx, [ebp - 0x938]
call fcn.10005e5f
push dword [ebp - 0x944]
call ebx
push eax
push dword [ebp - 0x944]
lea ecx, [ebp - 0x938]
call fcn.10005e5f
mov esi, str.____n__OpenSearchDescription__n
push esi
call ebx
push eax
push esi
lea ecx, [ebp - 0x938]
call fcn.10005e5f
mov eax, dword [ebp - 0x94c]
mov ecx, dword [eax]
lea edx, [ebp - 0x968]
push edx
push dword [ebp - 0x938]
push eax
call dword [ecx + 0x104]
lea eax, [ebp - 0x924]
push eax
mov esi, 0x410
push esi
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push str.metabar_search.xml
push esi
lea eax, [ebp - 0x924]
push eax
call fcn.10005cd9
lea eax, [ebp - 0x924]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [ebp - 0x93c], eax
cmp eax, edi
jne 0x10006551
push 0x8007000e
call fcn.100010f5
xor eax, eax
mov word [ebp - 0x934], ax
lea eax, [ebp - 0x93c]
push eax
lea ecx, [ebp - 0x934]
call fcn.10005fc7
mov eax, dword [ebp - 0x94c]
mov ecx, dword [eax]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x934]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x108]
lea eax, [ebp - 0x934]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0x950]
and dword [ebp - 0x958], 0
mov ecx, dword [eax]
lea edx, [ebp - 0x958]
push edx
push dword [ebp - 0x93c]
push eax
call dword [ecx + 0xc]
mov eax, dword [ebp - 0x958]
mov edi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
test eax, eax
je 0x1000666e
and dword [ebp - 0x95c], 0
mov ecx, dword [eax]
lea edx, [ebp - 0x95c]
push edx
push eax
call dword [ecx + 0x14]
push 0x1001af00
push dword [ebp - 0x95c]
call fcn.10008f33
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x10006656
push 0x7b
pop eax
add esi, 4
push 0x7d
mov word [esi], ax
pop eax
mov word [esi + 0x4a], ax
xor eax, eax
push str.iertutil.dll
mov word [esi + 0x4c], ax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [ebp - 0x96c], eax
test eax, eax
je 0x10006656
push 0x28e
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x1000664a
push 0x4e
push esi
push 2
push 2
push 0x1001ad78
call eax
mov dword [ebp - 0x960], 1
push dword [ebp - 0x96c]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push dword [ebp - 0x95c]
call edi
mov eax, dword [ebp - 0x958]
test eax, eax
je 0x1000666e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push dword [ebp - 0x93c]
call edi
push dword [ebp - 0x938]
call edi
xor edi, edi
mov eax, dword [ebp - 0x94c]
cmp eax, edi
je 0x10006690
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [ebp - 0x960], edi
jne 0x100067f4
lea eax, [ebp - 0x934]
push eax
call dword [sym.imp.ole32.dll_CoCreateGuid]
push 0x80
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x934]
push eax
call dword [sym.imp.ole32.dll_StringFromGUID2]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
push edi
lea eax, [ebp - 0x93c]
push eax
push edi
push 0x20006
push edi
push edi
push edi
push str.SoftwareMicrosoftInternet_ExplorerSearchScopes
push SysReAllocStringLen
call esi
test eax, eax
jne 0x100067f4
push edi
lea eax, [ebp - 0x938]
push eax
push edi
push 0x20006
push edi
push edi
push edi
lea eax, [ebp - 0x104]
push eax
push dword [ebp - 0x93c]
call esi
test eax, eax
jne 0x100067e8
push dword [ebp - 0x948]
call ebx
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
lea eax, [eax + eax + 2]
push eax
push dword [ebp - 0x948]
push 1
push edi
push str.DisplayName
push dword [ebp - 0x938]
call esi
push dword [ebp - 0x944]
call ebx
lea eax, [eax + eax + 2]
push eax
push dword [ebp - 0x944]
push 1
push edi
push 0x1001ae5c
push dword [ebp - 0x938]
call esi
cmp dword [ebp - 0x940], edi
je 0x1000678c
push dword [ebp - 0x940]
call ebx
lea eax, [eax + eax + 2]
push eax
push dword [ebp - 0x940]
push 1
push edi
push str.FaviconURL
push dword [ebp - 0x938]
call esi
cmp dword [ebp - 0x954], edi
je 0x100067b7
push dword [ebp - 0x954]
call ebx
lea eax, [eax + eax + 2]
push eax
push dword [ebp - 0x954]
push 1
push edi
push str.SuggestionsURL
push dword [ebp - 0x938]
call esi
push dword [ebp - 0x938]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0x104]
push eax
call ebx
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp - 0x104]
push eax
push 1
push edi
push str.DefaultScope
push dword [ebp - 0x93c]
call esi
push dword [ebp - 0x93c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x964]
mov dword [eax], edi
mov eax, dword [ebp - 0x950]
cmp eax, edi
je 0x1000680c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.1000a86c
leave
ret 0x18