Function at 0x1002a22a
Capabilities:
Check if file exists
Get common file path

Disassembly:
push 0x668
mov eax, 0x1006f7e7
call fcn.100521f6
mov eax, dword [ebp + 8]
mov dword [ebp - 0x658], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x654], eax
xor ebx, ebx
xor eax, eax
mov dword [ebp - 0x638], 7
mov dword [ebp - 0x63c], ebx
mov word [ebp - 0x64c], ax
lea ecx, [ebp - 0x650]
mov dword [ebp - 4], ebx
call fcn.1002bcc0
test al, al
jne 0x1002a39f
cmp byte [0x100a60b8], bl
je 0x1002a382
cmp dword [0x10093f44], ebx
je 0x1002a382
mov al, byte [0x10093f48]
mov esi, SysReAllocString
cmp byte [0x10093f0a], bl
je 0x1002a2ae
cmp al, 4
jae 0x1002a2ec
cmp al, bl
jmp 0x1002a2e6
cmp al, 4
jae 0x1002a2ba
cmp al, bl
jne 0x1002a382
mov ecx, dword [0x10093f34]
and ecx, esi
xor eax, eax
or eax, ecx
je 0x1002a382
mov ecx, dword [0x10093f3c]
mov eax, ecx
xor edx, edx
and eax, esi
cmp edx, dword [0x10093f38]
jne 0x1002a382
cmp eax, ecx
jne 0x1002a382
mov edi, 0x3ff
push edi
lea eax, [ebp - 0x617]
push ebx
push eax
mov byte [ebp - 0x618], bl
call fcn.10051a60
add esp, 0xc
push str.AddToUserPinned_failed
push edi
lea eax, [ebp - 0x618]
push 0x400
push eax
call fcn.10050e28
add esp, 0x10
cmp byte [0x100a60b8], bl
je 0x1002a382
cmp dword [0x10093f44], ebx
je 0x1002a382
mov al, byte [0x10093f48]
cmp byte [0x10093f0a], bl
je 0x1002a347
cmp al, 4
jae 0x1002a375
cmp al, bl
jmp 0x1002a373
cmp al, 4
jae 0x1002a34f
cmp al, bl
jne 0x1002a382
mov ecx, dword [0x10093f34]
and ecx, esi
xor eax, eax
or eax, ecx
je 0x1002a382
mov ecx, dword [0x10093f3c]
mov eax, ecx
xor edx, edx
and eax, esi
cmp edx, dword [0x10093f38]
jne 0x1002a382
cmp eax, ecx
jne 0x1002a382
lea eax, [ebp - 0x618]
push eax
call fcn.1002c268
pop ecx
mov edi, 0x80004005
push ebx
push 1
lea esi, [ebp - 0x650]
call fcn.1000457f
mov eax, edi
call fcn.10052279
ret 0xc
xor eax, eax
push 0x206
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push ebx
push eax
call fcn.10051a60
add esp, 0xc
lea eax, [ebp - 0x218]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea eax, [ebp - 0x218]
push eax
lea esi, [ebp - 0x634]
call fcn.100040e3
push str.UserPinnedTemp
lea esi, [ebp - 0x674]
mov byte [ebp - 4], 1
call fcn.100040e3
lea eax, [ebp - 0x634]
push eax
mov eax, esi
mov byte [ebp - 4], 2
call fcn.1002770a
pop ecx
xor edi, edi
push ebx
inc edi
push edi
mov byte [ebp - 4], 1
call fcn.1000457f
cmp dword [ebp - 0x61c], 8
mov eax, dword [ebp - 0x630]
jae 0x1002a42b
lea eax, [ebp - 0x630]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
mov eax, dword [ebp - 0x630]
jne 0x1002a467
cmp dword [ebp - 0x61c], 8
jae 0x1002a44b
lea eax, [ebp - 0x630]
push eax
lea esi, [ebp - 0x674]
call fcn.100040e3
mov eax, esi
push edi
push eax
mov byte [ebp - 4], 3
call fcn.100277c7
pop ecx
jmp 0x1002a48e
cmp dword [ebp - 0x61c], 8
jae 0x1002a476
lea eax, [ebp - 0x630]
push eax
lea esi, [ebp - 0x674]
call fcn.100040e3
mov eax, esi
push eax
mov byte [ebp - 4], 4
call fcn.1002789f
pop ecx
push ebx
push edi
lea esi, [ebp - 0x674]
mov byte [ebp - 4], 1
call fcn.1000457f
mov edx, dword [ebp - 0x654]
mov ecx, dword [ebp - 0x658]
lea eax, [ebp - 0x634]
push eax
call fcn.1002b45b
mov edi, eax
cmp edi, ebx
jge 0x1002a4d1
push ebx
push 1
lea esi, [ebp - 0x634]
call fcn.1000457f
jmp 0x1002a387
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x634]
lea ecx, [ebp - 0x650]
call fcn.1000426a
lea eax, [ebp - 0x650]
push eax
mov eax, dword [ebp - 0x654]
call fcn.1002770a
mov eax, dword [ebp - 0x654]
mov dword [esp], 0x1007b80c
call fcn.10004b80
test eax, eax
jne 0x1002a52c
cmp dword [ebp - 0x638], 8
mov eax, dword [ebp - 0x64c]
jae 0x1002a522
lea eax, [ebp - 0x64c]
cmp eax, ebx
je 0x1002a52c
push eax
call fcn.1002bd8e
cmp dword [ebp + 0xc], ebx
mov ebx, str.StartPin
je 0x1002a53b
mov ebx, str.TaskbarPin
cmp dword [ebp - 0x638], 8
mov eax, dword [ebp - 0x64c]
jae 0x1002a550
lea eax, [ebp - 0x64c]
push eax
call fcn.1002bfdd
test eax, eax
jne 0x1002a680
xor ebx, ebx
cmp byte [0x100a60b8], bl
je 0x1002a666
cmp dword [0x10093f44], ebx
je 0x1002a666
mov al, byte [0x10093f48]
mov esi, SysReAllocString
cmp byte [0x10093f0a], bl
je 0x1002a592
cmp al, 4
jae 0x1002a5d0
cmp al, bl
jmp 0x1002a5ca
cmp al, 4
jae 0x1002a59e
cmp al, bl
jne 0x1002a666
mov ecx, dword [0x10093f34]
and ecx, esi
xor eax, eax
or eax, ecx
je 0x1002a666
mov ecx, dword [0x10093f3c]
mov eax, ecx
xor edx, edx
and eax, esi
cmp edx, dword [0x10093f38]
jne 0x1002a666
cmp eax, ecx
jne 0x1002a666
mov edi, 0x3ff
push edi
lea eax, [ebp - 0x617]
push ebx
push eax
mov byte [ebp - 0x618], bl
call fcn.10051a60
add esp, 0xc
push str.AddToUserPinned_Execute_failed
push edi
lea eax, [ebp - 0x618]
push 0x400
push eax
call fcn.10050e28
add esp, 0x10
cmp byte [0x100a60b8], bl
je 0x1002a666
cmp dword [0x10093f44], ebx
je 0x1002a666
mov al, byte [0x10093f48]
cmp byte [0x10093f0a], bl
je 0x1002a62b
cmp al, 4
jae 0x1002a659
cmp al, bl
jmp 0x1002a657
cmp al, 4
jae 0x1002a633
cmp al, bl
jne 0x1002a666
mov ecx, dword [0x10093f34]
and ecx, esi
xor eax, eax
or eax, ecx
je 0x1002a666
mov ecx, dword [0x10093f3c]
mov eax, ecx
xor edx, edx
and eax, esi
cmp edx, dword [0x10093f38]
jne 0x1002a666
cmp eax, ecx
jne 0x1002a666
lea eax, [ebp - 0x618]
push eax
call fcn.1002c268
pop ecx
push ebx
push 1
lea esi, [ebp - 0x634]
call fcn.1000457f
mov edi, 0x80004005
xor ebx, ebx
jmp 0x1002a387
cmp dword [ebp - 0x61c], 8
mov eax, dword [ebp - 0x630]
jae 0x1002a695
lea eax, [ebp - 0x630]
push eax
lea esi, [ebp - 0x674]
call fcn.100040e3
mov eax, esi
mov byte [ebp - 4], 5
call fcn.10027878
xor edi, edi
push edi
push 1
call fcn.1000457f
push edi
push 1
lea esi, [ebp - 0x634]
call fcn.1000457f
jmp 0x1002a679