Function at 0x100027e2
Capabilities:
Get common file path
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x624
mov dl, byte [0x10008acc]
push ebx
push esi
push edi
push 0x40
xor eax, eax
pop esi
lea edi, [ebp - 0x213]
mov ecx, esi
mov byte [ebp - 0x214], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, esi
xor eax, eax
lea edi, [ebp - 0x51f]
mov byte [ebp - 0x520], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, esi
xor eax, eax
lea edi, [ebp - 0x317]
mov byte [ebp - 0x318], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, esi
xor eax, eax
lea edi, [ebp - 0x41b]
mov byte [ebp - 0x41c], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, esi
xor eax, eax
lea edi, [ebp - 0x623]
mov byte [ebp - 0x624], dl
rep stosd dword es:[edi], eax
mov ebx, dword [sym.imp.SHELL32.dll_SHGetMalloc]
and dword [ebp - 8], 0
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0xc]
push eax
call ebx
test eax, eax
jge 0x1000287b
xor eax, eax
jmp 0x10002a31
lea eax, [ebp - 8]
push eax
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jl 0x100028a9
lea eax, [ebp - 0x214]
push eax
push dword [ebp - 8]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
mov eax, dword [ebp - 0xc]
push dword [ebp - 8]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov esi, dword [sym.imp.MSVCRT.dll__snprintf]
lea eax, [ebp - 0x214]
push str.MicrosoftInternet_ExplorerQuick_Launch
push eax
mov edi, 0x103
push 0x10008090
lea eax, [ebp - 0x520]
push edi
push eax
call esi
add esp, 0x14
lea eax, [ebp - 0xc]
push eax
call ebx
test eax, eax
jl 0x10002874
lea eax, [ebp - 8]
push eax
push 2
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jl 0x10002913
lea eax, [ebp - 0x214]
push eax
push dword [ebp - 8]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
mov eax, dword [ebp - 0xc]
push dword [ebp - 8]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
lea eax, [ebp - 0x214]
push eax
push 0x100081ac
lea eax, [ebp - 0x41c]
push edi
push eax
call esi
lea eax, [ebp - 0x318]
mov esi, str.Internet_Explorer
push eax
lea eax, [ebp - 0x520]
push esi
push eax
call fcn.10002a75
lea eax, [ebp - 0x318]
push eax
call fcn.10002c94
add esp, 0x20
test eax, eax
je 0x10002966
push 1
pop eax
jmp 0x10002a31
lea eax, [ebp - 0x624]
push eax
lea eax, [ebp - 0x41c]
push esi
push eax
call fcn.10002a75
lea eax, [ebp - 0x624]
push eax
call fcn.10002c94
add esp, 0x10
test eax, eax
jne 0x1000295e
mov al, byte [0x10008acc]
push 0x40
mov byte [ebp - 0x110], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x10f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 4]
mov esi, dword [sym.imp.SHLWAPI.dll_SHGetValueA]
push eax
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 4]
mov ebx, str.Start_Page
push eax
mov edi, str.SoftwareMicrosoftInternet_ExplorerMain_
push ebx
push edi
push SysReAllocStringLen
mov dword [ebp - 4], 0x104
call esi
lea eax, [ebp - 0x110]
push eax
call fcn.10002c94
test eax, eax
pop ecx
jne 0x1000295e
push dword [ebp - 4]
push eax
lea eax, [ebp - 0x110]
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
lea eax, [ebp - 4]
mov dword [ebp - 4], 0x104
push eax
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 4]
push eax
push ebx
push edi
push SysReAllocStringLen
call esi
lea eax, [ebp - 0x110]
push eax
call fcn.10002c94
neg eax
sbb eax, eax
pop ecx
neg eax
pop edi
pop esi
pop ebx
leave
ret