Function at 0x10029d10
Capabilities:
Check if file exists
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10050fcb
mov eax, dword fs:[0]
push eax
sub esp, 0x468
mov eax, dword [0x100668d8]
xor eax, ebp
mov dword [ebp - 0x1c], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
xor eax, eax
mov word [ebp - 0x224], ax
push 0x206
push 0
lea ecx, [ebp - 0x222]
push ecx
call fcn.1003ac40
add esp, 0xc
mov edx, dword [ebp + 8]
push edx
push 0x104
lea eax, [ebp - 0x224]
push eax
call fcn.1002b390
add esp, 0xc
test eax, eax
jne 0x10029d89
jmp 0x1002a08b
push str.CLSID871C5380_42A0_1069_A2EA_08002B30309D_shellOpenHomePageCommand
lea ecx, [ebp - 0x224]
push ecx
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
jne 0x10029da4
jmp 0x1002a08b
cmp dword [0x10068338], 0
jne 0x10029dea
xor ecx, ecx
mov eax, dword [0x10064748]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.100324f4
add esp, 4
mov dword [ebp - 0x458], eax
mov eax, dword [ebp - 0x458]
mov dword [0x10068338], eax
cmp dword [0x10068338], 0
jne 0x10029dea
jmp 0x1002a08b
mov ecx, dword [0x10064748]
push ecx
push 0
mov edx, dword [0x10068338]
push edx
call fcn.1003ac40
add esp, 0xc
lea eax, [ebp - 0x230]
push eax
call fcn.100135b0
mov ecx, eax
call fcn.10014b20
mov dword [ebp - 4], 0
call fcn.100135b0
mov ecx, eax
call fcn.10014d70
test eax, eax
jne 0x10029e43
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x230]
call fcn.10010310
jmp 0x1002a08b
lea ecx, [ebp - 0x230]
call fcn.10018c00
mov dword [ebp - 0x228], eax
cmp dword [ebp - 0x228], 0
jg 0x10029e74
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x230]
call fcn.10010310
jmp 0x1002a08b
mov cx, word [0x10055948]
mov word [ebp - 0x43c], cx
push 0x206
push 0
lea edx, [ebp - 0x43a]
push edx
call fcn.1003ac40
add esp, 0xc
push 0
push 0x26
lea eax, [ebp - 0x43c]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
jne 0x10029ec6
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x230]
call fcn.10010310
jmp 0x1002a08b
push str.Internet_Exploreriexplore.exe
lea ecx, [ebp - 0x43c]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea edx, [ebp - 0x43c]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x10029f00
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x230]
call fcn.10010310
jmp 0x1002a08b
call fcn.10001fa0
mov dword [ebp - 0x440], eax
lea ecx, [ebp - 0x230]
call fcn.10009170
mov dword [ebp - 0x444], eax
cmp dword [ebp - 0x444], 0
jne 0x10029f31
mov dword [ebp - 0x45c], 0
jmp 0x10029f99
mov eax, dword [ebp - 0x444]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0x3fffffff
jle 0x10029f59
mov dword [ebp - 0x460], 0
jmp 0x10029f8d
mov eax, dword [ebp - 0x18]
shl eax, 1
call fcn.1003a650
mov dword [ebp - 0x464], esp
mov ecx, dword [ebp - 0x440]
push ecx
mov edx, dword [ebp - 0x18]
push edx
mov eax, dword [ebp - 0x444]
push eax
mov ecx, dword [ebp - 0x464]
push ecx
call fcn.10001fb0
mov dword [ebp - 0x460], eax
mov edx, dword [ebp - 0x460]
mov dword [ebp - 0x45c], edx
mov eax, dword [ebp - 0x45c]
push eax
lea ecx, [ebp - 0x43c]
push ecx
push 0x1005598c
mov edx, dword [0x10064748]
push edx
mov eax, dword [0x10068338]
push eax
call fcn.10018c70
add esp, 0x14
mov ecx, dword [0x10068338]
mov dword [ebp - 0x468], ecx
mov edx, dword [ebp - 0x468]
add edx, 2
mov dword [ebp - 0x46c], edx
mov eax, dword [ebp - 0x468]
mov cx, word [eax]
mov word [ebp - 0x46e], cx
add dword [ebp - 0x468], 2
cmp word [ebp - 0x46e], 0
jne 0x10029fdc
mov edx, dword [ebp - 0x468]
sub edx, dword [ebp - 0x46c]
sar edx, 1
mov dword [ebp - 0x474], edx
mov eax, dword [ebp - 0x474]
add eax, 1
mov dword [ebp - 0x234], eax
mov ecx, dword [ebp - 0x234]
shl ecx, 1
cmp ecx, dword [ebp + 0x14]
ja 0x1002a071
call fcn.10001fa0
mov dword [ebp - 0x450], eax
mov edx, dword [0x10068338]
push edx
mov eax, dword [ebp - 0x234]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.10018c20
mov edx, dword [ebp - 0x234]
mov eax, dword [ebp + 0xc]
mov byte [eax + edx*2 - 2], 0
mov ecx, dword [ebp - 0x234]
shl ecx, 1
mov edx, dword [ebp + 0x10]
mov dword [edx], ecx
mov dword [ebp - 0x14], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x230]
call fcn.10010310
xor eax, eax
jne 0x10029d49
mov eax, dword [ebp - 0x14]
lea esp, [ebp - 0x478]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.1003a5ba
mov esp, ebp
pop ebp
ret