Function at 0x4151e0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5dc
mov eax, dword [0x45f758]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x5c0], 0
push 0x98
push 0
lea eax, [ebp - 0x5bc]
push eax
call fcn.00430db0
add esp, 0xc
mov dword [ebp - 0x5cc], 0
mov dword [ebp - 0x5c8], 0
mov dword [ebp - 0x5d4], 0
mov dword [ebp - 0x5c4], 0xffffffff
cmp dword [ebp + 0xc], 0
jne 0x415250
call fcn.004136c0
mov ecx, eax
call fcn.00413690
mov dword [ebp + 0xc], eax
push 0xff
lea ecx, [ebp - 0x514]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call fcn.0042e2e0
add esp, 4
add eax, 1
push eax
mov eax, dword [ebp + 0xc]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [ebp - 0x5c4], eax
cmp dword [ebp - 0x5c4], 0
jne 0x4152b5
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
push str.InstallLsp:_MultiByteToWideChar_failed_to_convert__s__Error___d_n
call fcn.00421c70
add esp, 0xc
mov dword [ebp - 0x5c4], 0xffffffff
jmp 0x4155fb
push 0x104
lea edx, [ebp - 0x314]
push edx
mov eax, dword [ebp + 0x10]
push eax
call fcn.0042e2e0
add esp, 4
add eax, 1
push eax
mov ecx, dword [ebp + 0x10]
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [ebp - 0x5c4], eax
cmp dword [ebp - 0x5c4], 0
jne 0x41531a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov edx, dword [ebp + 0x10]
push edx
push 0x450050
call fcn.00421c70
add esp, 0xc
mov dword [ebp - 0x5c4], 0xffffffff
jmp 0x4155fb
cmp dword [ebp + 0x14], 0
jne 0x415341
push str.InstallLsp:_Error__Must_specify_at_least_one_provider_to_layer_over__n_n
call fcn.00421c70
add esp, 4
mov dword [ebp - 0x5c4], 0xffffffff
jmp 0x4155fb
lea eax, [ebp - 0x514]
push eax
push str.LSP_name_is__S_n
call fcn.00421be0
add esp, 8
lea ecx, [ebp - 0x524]
push ecx
mov edx, dword [ebp + 0x10]
push edx
call fcn.00422fb0
add esp, 8
mov dword [ebp - 0x5d0], eax
cmp dword [ebp - 0x5d0], 0
je 0x415382
mov eax, dword [ebp - 0x5d0]
jmp 0x415649
cmp dword [ebp + 0x24], 0
je 0x4153ae
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp - 0x524]
mov dword [eax], ecx
mov edx, dword [ebp - 0x520]
mov dword [eax + 4], edx
mov ecx, dword [ebp - 0x51c]
mov dword [eax + 8], ecx
mov edx, dword [ebp - 0x518]
mov dword [eax + 0xc], edx
mov eax, 1
imul eax, eax, 0
mov dword [ebp - 0x5dc], eax
cmp dword [ebp - 0x5dc], 0x104
jae 0x4153ca
jmp 0x4153cf
call fcn.00430a28
mov ecx, dword [ebp - 0x5dc]
mov byte [ebp + ecx - 0x108], 0
lea edx, [ebp - 0x108]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
push 0x4500e0
push 0x104
lea eax, [ebp - 0x108]
push eax
call fcn.0040ea80
mov ecx, dword [ebp + 0x10]
push ecx
push 0x104
lea edx, [ebp - 0x108]
push edx
call fcn.0040ea80
push 0x4500e4
lea eax, [ebp - 0x108]
push eax
call fcn.0042f048
add esp, 8
mov dword [ebp - 0x5d8], eax
cmp dword [ebp - 0x5d8], 0
je 0x4154b7
mov ecx, dword [ebp - 0x5d8]
push ecx
call fcn.0042d95d
add esp, 4
push 0x104
lea edx, [ebp - 0x314]
push edx
lea eax, [ebp - 0x108]
push eax
call fcn.0042e2e0
add esp, 4
add eax, 1
push eax
lea ecx, [ebp - 0x108]
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [ebp - 0x5c4], eax
cmp dword [ebp - 0x5c4], 0
jne 0x4154b7
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov edx, dword [ebp + 0x10]
push edx
push str.InstallLsp:_MultiByteToWidechar_failed_to_convert__s:_Error___d_n
call fcn.00421c70
add esp, 0xc
mov dword [ebp - 0x5c4], 0xffffffff
jmp 0x4155fb
mov eax, dword [ebp + 0x1c]
push eax
lea ecx, [ebp - 0x514]
push ecx
mov edx, 4
imul edx, edx, 0
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax + edx]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00415a10
add esp, 0x10
mov dword [ebp - 0x5c8], eax
cmp dword [ebp - 0x5c8], 0
jne 0x41550d
push str.InstallLsp:_CreateDummyEntry_failed__n
call fcn.00421c70
add esp, 4
mov dword [ebp - 0x5c4], 0xffffffff
jmp 0x4155fb
push 1
mov eax, dword [ebp - 0x5c8]
push eax
lea ecx, [ebp - 0x314]
push ecx
lea edx, [ebp - 0x524]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00415660
add esp, 0x14
mov dword [ebp - 0x5c4], eax
cmp dword [ebp - 0x5c4], 0
je 0x415560
push str.InstallLsp:_Unable_to_install_the_dummy_LSP_entry__n
call fcn.00421c70
add esp, 4
mov dword [ebp - 0x5c4], 0xffffffff
jmp 0x4155fb
mov ecx, dword [ebp - 0x5c8]
push ecx
call fcn.00426ee0
add esp, 4
mov dword [ebp - 0x5c8], 0
cmp dword [ebp + 0x1c], 0
jne 0x4155b0
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x18]
push eax
lea ecx, [ebp - 0x314]
push ecx
lea edx, [ebp - 0x514]
push edx
lea eax, [ebp - 0x524]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00416950
add esp, 0x18
mov dword [ebp - 0x5c4], eax
jmp 0x4155df
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x18]
push eax
lea ecx, [ebp - 0x314]
push ecx
lea edx, [ebp - 0x514]
push edx
lea eax, [ebp - 0x524]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00415b70
add esp, 0x18
mov dword [ebp - 0x5c4], eax
cmp dword [ebp - 0x5c4], 0xffffffff
jne 0x4155fb
lea edx, [ebp - 0x524]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00419c40
add esp, 8
cmp dword [ebp - 0x5cc], 0
je 0x415613
mov ecx, dword [ebp - 0x5cc]
push ecx
call fcn.00426e80
add esp, 4
cmp dword [ebp - 0x5c8], 0
je 0x41562b
mov edx, dword [ebp - 0x5c8]
push edx
call fcn.00426ee0
add esp, 4
cmp dword [ebp - 0x5d4], 0
je 0x415643
mov eax, dword [ebp - 0x5d4]
push eax
call fcn.00426ee0
add esp, 4
mov eax, dword [ebp - 0x5c4]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0042e9cd
mov esp, ebp
pop ebp
ret