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

Disassembly:
push 0x2dc
mov eax, 0x1006f6ec
call fcn.100521f6
push 0x10094c38
lea esi, [ebp - 0x2c8]
call fcn.100040e3
xor edi, edi
mov dword [ebp - 4], edi
call fcn.1000bca4
mov eax, esi
push eax
call fcn.1001ff5a
mov eax, esi
push eax
lea esi, [ebp - 0x290]
call fcn.10004103
push 1
lea eax, [ebp - 0x2cc]
push eax
mov byte [ebp - 4], 1
mov eax, esi
mov dword [ebp - 0x2cc], 0x5c
call fcn.1000441c
cmp eax, 0xffffffff
je 0x10009441
lea ebx, [eax + 1]
push 0xffffffffffffffff
mov eax, esi
push ebx
push eax
lea esi, [ebp - 0x2ac]
call fcn.10004135
mov byte [ebp - 4], 2
cmp dword [ebp - 0x298], edi
jne 0x10009345
push 0x100768d4
lea esi, [ebp - 0x2e8]
call fcn.100040e3
mov byte [ebp - 4], 3
jmp 0x100093f7
push 1
lea eax, [ebp - 0x2cc]
push eax
lea eax, [ebp - 0x2ac]
mov dword [ebp - 0x2cc], 0x28
call fcn.1000441c
mov dword [ebp - 0x2cc], eax
cmp eax, 0xffffffff
je 0x1000942d
push ebx
push edi
lea eax, [ebp - 0x290]
push eax
lea esi, [ebp - 0x2e8]
call fcn.10004135
push 0xffffffffffffffff
push edi
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 4
call fcn.1000426a
push edi
push 1
mov byte [ebp - 4], 2
call fcn.1000457f
push dword [ebp - 0x2cc]
lea eax, [ebp - 0x2ac]
push edi
push eax
lea esi, [ebp - 0x2e8]
call fcn.10004135
push 0xffffffffffffffff
push edi
lea ecx, [ebp - 0x2ac]
mov byte [ebp - 4], 5
call fcn.1000426a
push edi
push 1
mov byte [ebp - 4], 2
call fcn.1000457f
cmp dword [ebp - 0x298], edi
jne 0x1000941a
push 0x100768d4
lea esi, [ebp - 0x2e8]
call fcn.100040e3
mov byte [ebp - 4], 6
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x2e8]
call fcn.1002770a
pop ecx
push edi
push 1
lea esi, [ebp - 0x2e8]
call fcn.1000457f
jmp 0x1000942d
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x2ac]
call fcn.1002770a
pop ecx
push edi
push 1
lea esi, [ebp - 0x2ac]
mov byte [ebp - 4], 1
call fcn.1000457f
jmp 0x1000947d
lea eax, [ebp - 0x258]
push eax
push edi
push edi
push 0x26
push edi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
push 0x10076de4
lea eax, [ebp - 0x258]
push 0x104
push eax
call fcn.1004d464
add esp, 0xc
lea eax, [ebp - 0x258]
lea ecx, [ebp - 0x290]
call fcn.100042f6
lea eax, [ebp - 0x290]
push eax
lea esi, [ebp - 0x274]
call fcn.10004103
mov byte [ebp - 4], 7
cmp dword [ebp - 0x25c], 8
mov eax, dword [ebp - 0x270]
jae 0x100094a8
lea eax, [ebp - 0x270]
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push eax
call esi
test eax, eax
je 0x1000954a
xor ebx, ebx
inc ebx
push 0xffffffffffffffff
push edi
lea eax, [ebp - 0x290]
lea ecx, [ebp - 0x274]
call fcn.1000426a
xor eax, eax
push 0x3e
mov word [ebp - 0x50], ax
lea eax, [ebp - 0x4e]
push edi
push eax
call fcn.10051a60
add esp, 0xc
push 0xa
push 0x20
lea eax, [ebp - 0x50]
push eax
push ebx
call fcn.1004d273
add esp, 0x10
push 0x10076e0c
lea eax, [ebp - 0x274]
push eax
call fcn.10004241
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x274]
push eax
call fcn.10004241
push 0x100779c8
lea eax, [ebp - 0x274]
push eax
call fcn.10004241
cmp dword [ebp - 0x25c], 8
mov eax, dword [ebp - 0x270]
jae 0x1000953d
lea eax, [ebp - 0x270]
push eax
call esi
test eax, eax
je 0x1000954a
inc ebx
jmp 0x100094bc
cmp dword [ebp - 0x25c], 8
mov eax, dword [ebp - 0x270]
jae 0x1000955f
lea eax, [ebp - 0x270]
push eax
call fcn.100193b0
pop ecx
call fcn.1001a3c3
xor ebx, ebx
push edi
inc ebx
push ebx
lea esi, [ebp - 0x274]
call fcn.1000457f
push edi
push ebx
lea esi, [ebp - 0x290]
call fcn.1000457f
push edi
push ebx
lea esi, [ebp - 0x2c8]
call fcn.1000457f
mov eax, ebx
call fcn.10052279
ret