Function at 0x402432
Capabilities:
Check if file exists
Get common file path
Get startup folder

Disassembly:
push 0x2b0
mov eax, 0x414b56
call fcn.00404134
push 7
pop ecx
xor ebx, ebx
mov dword [ebp - 0x27c], ecx
xor eax, eax
mov dword [ebp - 0x280], ebx
mov word [ebp - 0x290], ax
mov dword [ebp - 4], ebx
mov dword [ebp - 0x24c], ecx
mov dword [ebp - 0x250], ebx
mov word [ebp - 0x260], ax
push 0x208
lea eax, [ebp - 0x218]
mov byte [ebp - 4], 1
push ebx
push eax
call fcn.004054a0
add esp, 0xc
lea eax, [ebp - 0x218]
push eax
push ebx
push ebx
push 0x25
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x4024e6
cmp word [ebp - 0x218], bx
jne 0x4024ad
mov eax, ebx
jmp 0x4024ba
lea eax, [ebp - 0x218]
push eax
call fcn.00409098
pop ecx
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x260]
call fcn.0040365f
mov esi, str.MMInstaller.dll
push esi
call fcn.00409098
pop ecx
push eax
push esi
lea ecx, [ebp - 0x260]
call fcn.00403526
cmp dword [ebp - 0x24c], 8
lea eax, [ebp - 0x260]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmovae eax, dword [ebp - 0x260]
push 2
pop esi
push eax
call edi
test eax, eax
je 0x4027d6
cmp dword [ebp - 0x24c], 8
lea ecx, [ebp - 0x260]
push 0x4152ac
cmovae ecx, dword [ebp - 0x260]
cmp byte [ebp + 8], 0
push ecx
sete al
push eax
mov dword [ebp - 0x2b0], eax
call fcn.004031e1
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4027d6
push 7
pop ecx
mov dword [ebp - 0x234], ecx
mov dword [ebp - 0x238], ebx
mov word [ebp - 0x248], ax
mov dword [ebp - 0x21c], ecx
mov dword [ebp - 0x220], ebx
mov word [ebp - 0x230], ax
mov dword [ebp - 0x2bc], ebx
mov dword [ebp - 0x2b8], ebx
mov dword [ebp - 0x2b4], ebx
lea eax, [ebp - 0x2ac]
mov byte [ebp - 4], 4
push eax
call fcn.0040295e
pop ecx
inc esi
lea ecx, [ebp - 0x2bc]
push esi
push dword [eax]
push 0x80000002
call fcn.00402c25
mov ecx, dword [ebp - 0x2ac]
mov ebx, eax
neg ebx
sbb bl, bl
add ecx, 0xfffffff0
call fcn.00401bf4
add bl, 1
je 0x40268e
lea eax, [ebp - 0x2ac]
xor ebx, ebx
push eax
push ebx
push str.install
lea ecx, [ebp - 0x2bc]
mov dword [ebp - 0x2ac], ebx
call fcn.00402e17
cmp dword [ebp - 0x2ac], ebx
jbe 0x402690
push ebx
push dword [ebp - 0x2ac]
lea ecx, [ebp - 0x230]
call fcn.004038bb
cmp dword [ebp - 0x21c], 8
lea ecx, [ebp - 0x2ac]
push ecx
lea eax, [ebp - 0x230]
cmovae eax, dword [ebp - 0x230]
lea ecx, [ebp - 0x2bc]
push eax
push str.install
call fcn.00402e17
push esi
push ebx
lea eax, [ebp - 0x2ac]
mov dword [ebp - 0x2ac], ebx
push eax
lea ecx, [ebp - 0x230]
call fcn.004037a2
cmp eax, 0xffffffff
je 0x40265b
push ebx
push eax
lea ecx, [ebp - 0x230]
call fcn.004038bb
cmp dword [ebp - 0x21c], 8
lea ecx, [ebp - 0x230]
mov eax, dword [ebp - 0x220]
cmovae ecx, dword [ebp - 0x230]
push 0x5c
pop edx
cmp dx, word [ecx + eax*2 - 2]
je 0x402690
push edx
push esi
lea ecx, [ebp - 0x230]
call fcn.0040349d
jmp 0x402690
xor ebx, ebx
push str.LiveOcx.dll
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x2a8]
push eax
call fcn.00402145
add esp, 0xc
lea ecx, [ebp - 0x248]
push eax
call fcn.004021d0
push ebx
push esi
lea ecx, [ebp - 0x2a8]
call fcn.004033a7
cmp dword [ebp - 0x234], 8
lea eax, [ebp - 0x248]
cmovae eax, dword [ebp - 0x248]
push eax
call edi
mov edi, dword [ebp - 0x2b0]
test eax, eax
je 0x40273b
cmp dword [ebp - 0x234], 8
lea eax, [ebp - 0x248]
push 0x4152bc
cmovae eax, dword [ebp - 0x248]
push eax
push edi
call fcn.004031e1
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4027af
cmp dword [ebp - 0x234], 8
lea eax, [ebp - 0x248]
push 0x4152cc
cmovae eax, dword [ebp - 0x248]
push eax
push edi
call fcn.004031e1
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4027af
push str.LiveApi.dll
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x278]
push eax
call fcn.00402145
add esp, 0xc
cmp dword [ebp - 0x264], 8
lea eax, [ebp - 0x278]
push 2
cmovae eax, dword [ebp - 0x278]
pop esi
push eax
mov byte [ebp - 4], 5
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4027a1
cmp dword [ebp - 0x264], 8
lea eax, [ebp - 0x278]
push 0x4152dc
cmovae eax, dword [ebp - 0x278]
push eax
push edi
call fcn.004031e1
add esp, 0xc
mov esi, eax
push ebx
push 1
lea ecx, [ebp - 0x278]
call fcn.004033a7
lea ecx, [ebp - 0x2bc]
call fcn.00402221
push ebx
push 1
lea ecx, [ebp - 0x230]
call fcn.004033a7
push ebx
push 1
lea ecx, [ebp - 0x248]
call fcn.004033a7
push ebx
push 1
lea ecx, [ebp - 0x260]
call fcn.004033a7
push ebx
push 1
lea ecx, [ebp - 0x290]
call fcn.004033a7
mov eax, esi
call fcn.004040ef
ret