Function at 0x10011f92
Capabilities:
Check if file exists
Create process on windows
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x63c
mov eax, dword [0x1002b1f0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 0x10]
push edi
xor edi, edi
mov dword [ebp - 0x624], esi
mov dword [ebp - 0x620], edi
mov dword [ebp - 0x620], ebp
push 1
push dword [ebp - 0x620]
push str.int___cdecl_PinShortCut_bool_int_const_wchar_t__
call fcn.1000b484
mov ebx, eax
add esp, 0xc
mov eax, 0x10023468
cmp ebx, edi
jne 0x10011fe1
mov ebx, eax
push edi
push edi
push edi
push edi
push eax
push 0x1002344c
push ebx
lea ecx, [ebp - 0x63c]
call fcn.1000a370
cmp ebx, edi
jne 0x10011ffd
push ebp
pop ebp
mov ebx, 0x10023434
push ebx
call fcn.10005425
pop ecx
test eax, eax
jne 0x1001204b
push 1
push dword [ebp + 0xc]
push str._iDest_
push dword [ebp + 8]
push str.bPin_
push edi
push ebx
call fcn.10009855
pop ecx
pop ecx
mov ecx, eax
call fcn.1000bba2
mov ecx, eax
call fcn.100014a2
mov ecx, eax
call fcn.1000bba2
mov ecx, eax
call fcn.1000152a
mov ecx, eax
call fcn.1000a33f
cmp esi, edi
jne 0x1001206a
push ebx
call fcn.10005425
pop ecx
test eax, eax
jne 0x10012530
push 1
push str.LnkPath_cannt_be_null
jmp 0x10012519
xor eax, eax
push 0x206
mov word [ebp - 0x414], ax
lea eax, [ebp - 0x412]
push edi
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
push esi
mov esi, dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
call esi
push 0x104
push dword [ebp - 0x624]
call esi
push eax
lea eax, [ebp - 0x414]
push eax
call dword [sym.imp.MSVCR90.dll_wcsncpy]
add esp, 0xc
cmp dword [ebp + 0xc], edi
jne 0x1001229b
push 5
pop ecx
mov esi, str.startunpin
lea edi, [ebp - 0x61c]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 0x1f2
xor esi, esi
lea eax, [ebp - 0x606]
push esi
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
call fcn.10003afe
xor edi, edi
inc edi
push 0x206
push esi
cmp eax, edi
jne 0x1001218a
xor eax, eax
mov word [ebp - 0x20c], ax
lea eax, [ebp - 0x20a]
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
push esi
push 0x1a
lea eax, [ebp - 0x20c]
push eax
push esi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
cmp eax, edi
jne 0x10012228
mov edi, dword [sym.imp.SHLWAPI.dll_PathAppendW]
push str.MicrosoftInternet_ExplorerQuick_LaunchUser_PinnedStartMenu
lea eax, [ebp - 0x20c]
push eax
call edi
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x20c]
push eax
call edi
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x10012228
push esi
push esi
push esi
lea eax, [ebp - 0x20c]
push eax
push str.startunpin
push esi
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
push ebx
call fcn.10005425
pop ecx
test eax, eax
jne 0x10012228
push 1
jmp 0x100121fe
xor eax, eax
mov word [ebp - 0x20c], ax
lea eax, [ebp - 0x20a]
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
push esi
push 0x16
lea eax, [ebp - 0x20c]
push eax
push esi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
cmp eax, edi
jne 0x10012228
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x10012228
push esi
push esi
push esi
lea eax, [ebp - 0x20c]
push eax
push str.startunpin
push esi
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
push ebx
call fcn.10005425
pop ecx
test eax, eax
jne 0x10012228
push edi
lea eax, [ebp - 0x20c]
push eax
push str.startunpin__startpath
push esi
push ebx
call fcn.10009855
pop ecx
pop ecx
mov ecx, eax
call fcn.1000bba2
mov ecx, eax
call fcn.100016a4
mov ecx, eax
call fcn.1000a33f
push ebx
call fcn.10005425
pop ecx
test eax, eax
jne 0x10012403
push 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str._ErrorCode_
push dword [ebp - 0x624]
lea eax, [ebp - 0x61c]
push str._LnkPath_is
push eax
push str.DestPin_is
push esi
push ebx
call fcn.10009855
pop ecx
pop ecx
mov ecx, eax
call fcn.1000bba2
mov ecx, eax
call fcn.100016a4
mov ecx, eax
call fcn.1000bba2
mov ecx, eax
call fcn.100016a4
mov ecx, eax
call fcn.1000bba2
mov ecx, eax
call fcn.10001626
mov ecx, eax
call fcn.1000a33f
jmp 0x10012403
cmp dword [ebp + 0xc], 1
jne 0x10012507
push 6
pop ecx
mov esi, str.taskbarunpin
lea edi, [ebp - 0x61c]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 0x1ee
xor esi, esi
lea eax, [ebp - 0x602]
push esi
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
call fcn.10003afe
cmp eax, 1
jne 0x10012396
xor eax, eax
push 0x206
mov word [ebp - 0x20c], ax
lea eax, [ebp - 0x20a]
push esi
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
push esi
push 0x1a
lea eax, [ebp - 0x20c]
push eax
push esi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
cmp eax, 1
jne 0x10012396
mov edi, dword [sym.imp.SHLWAPI.dll_PathAppendW]
push str.MicrosoftInternet_ExplorerQuick_LaunchUser_PinnedTaskBar
lea eax, [ebp - 0x20c]
push eax
call edi
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x20c]
push eax
call edi
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x10012396
push esi
push esi
push esi
lea eax, [ebp - 0x20c]
push eax
push str.taskbarunpin
push esi
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
push ebx
call fcn.10005425
pop ecx
test eax, eax
jne 0x10012396
push 1
lea eax, [ebp - 0x20c]
push eax
push str.taskbarunpin__TaskBarPath
push esi
push ebx
call fcn.10009855
pop ecx
pop ecx
mov ecx, eax
call fcn.1000bba2
mov ecx, eax
call fcn.100016a4
mov ecx, eax
call fcn.1000a33f
push ebx
call fcn.10005425
pop ecx
test eax, eax
jne 0x10012401
push 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str._ErrorCode_
push dword [ebp - 0x624]
lea eax, [ebp - 0x61c]
push str._LnkPath_is
push eax
push str.DestPin_is
push 0
push ebx
call fcn.10009855
pop ecx
pop ecx
mov ecx, eax
call fcn.1000bba2
mov ecx, eax
call fcn.100016a4
mov ecx, eax
call fcn.1000bba2
mov ecx, eax
call fcn.100016a4
mov ecx, eax
call fcn.1000bba2
mov ecx, eax
call fcn.10001626
mov ecx, eax
call fcn.1000a33f
xor esi, esi
cmp byte [ebp + 8], 1
jne 0x100124e2
cmp dword [ebp + 0xc], esi
jne 0x1001242e
mov esi, str.startpin
lea edi, [ebp - 0x20c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0x1f6
lea eax, [ebp - 0x1fa]
jmp 0x10012453
cmp dword [ebp + 0xc], 1
jne 0x100124f2
push 5
pop ecx
mov esi, str.taskbarpin
lea edi, [ebp - 0x20c]
rep movsd dword es:[edi], dword [esi]
push 0x1f2
lea eax, [ebp - 0x1f6]
movsw word es:[edi], word [esi]
xor esi, esi
push esi
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
push esi
push esi
push esi
push dword [ebp - 0x624]
lea eax, [ebp - 0x20c]
push eax
push esi
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
push ebx
call fcn.10005425
pop ecx
test eax, eax
jne 0x100124e2
push 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str._ErrorCode_
push dword [ebp - 0x624]
lea eax, [ebp - 0x20c]
push str._LnkPath_is
push eax
push str.DestPin_is
push esi
push ebx
call fcn.10009855
pop ecx
pop ecx
mov ecx, eax
call fcn.1000bba2
mov ecx, eax
call fcn.100016a4
mov ecx, eax
call fcn.1000bba2
mov ecx, eax
call fcn.100016a4
mov ecx, eax
call fcn.1000bba2
mov ecx, eax
call fcn.10001626
mov ecx, eax
call fcn.1000a33f
lea ecx, [ebp - 0x63c]
call fcn.1000be71
xor eax, eax
inc eax
jmp 0x1001253d
push ebx
call fcn.10005425
pop ecx
test eax, eax
jne 0x10012530
push 1
push str.iDest_is_invalid
push esi
jmp 0x1001251a
push ebx
call fcn.10005425
pop ecx
test eax, eax
jne 0x10012530
push 1
push str.iDest_is_invalid
push edi
push ebx
call fcn.10009855
pop ecx
pop ecx
mov ecx, eax
call fcn.1000bba2
mov ecx, eax
call fcn.1000a33f
lea ecx, [ebp - 0x63c]
call fcn.1000be71
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10018dd2
leave
ret