Function at 0x1000f9e0
Capabilities:
Check if file exists
Get common file path
Query or enumerate registry value
Read .ini file

Disassembly:
push ebp
lea ebp, [esp - 0x5bc]
sub esp, 0x63c
mov eax, dword [0x100598e8]
xor eax, ebp
mov dword [ebp + 0x5b8], eax
mov eax, dword [ebp + 0x5c8]
push ebx
mov ebx, dword [ebp + 0x5c4]
push esi
push edi
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], eax
test ebx, ebx
je 0x1000fb1e
test eax, eax
je 0x1000fb1e
xor ecx, ecx
mov word [eax], cx
mov esi, 0x1004b594
lea edi, [ebp + 0x5a8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 6
movsd dword es:[edi], dword [esi]
lea eax, [ebp + 0x5a8]
push eax
push ebx
movsw word es:[edi], word [esi]
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x1000fb38
add ebx, 0xc
push ebx
push 0x1004b564
mov esi, 0x208
lea eax, [ebp + 0x198]
push esi
push eax
mov dword [ebp - 0x78], ebx
call fcn.1000e4ec
mov edi, dword [sym.imp.SHLWAPI.dll_SHGetValueW]
add esp, 0x10
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp + 0x3a0]
push eax
lea eax, [ebp - 0x80]
push eax
push 0
lea eax, [ebp + 0x198]
xor ebx, ebx
push eax
inc ebx
push 0x80000000
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], esi
call edi
test eax, eax
jne 0x1000facc
lea eax, [ebp + 0x3a0]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
test eax, eax
je 0x1000facc
lea ecx, [ebp + 0x3a0]
sub eax, ecx
sar eax, 1
push eax
mov eax, ecx
push eax
push dword [ebp - 0x74]
call dword [sym.imp.SHLWAPI.dll_StrCpyNW]
mov eax, ebx
jmp 0x1000fb20
push dword [ebp - 0x78]
lea eax, [ebp + 0x198]
push 0x1004b534
push esi
push eax
call fcn.1000e4ec
add esp, 0x10
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp + 0x3a0]
push eax
lea eax, [ebp - 0x80]
push eax
push 0
lea eax, [ebp + 0x198]
push eax
push 0x80000000
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], esi
call edi
test eax, eax
jne 0x1000fb1e
lea eax, [ebp + 0x3a0]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
test eax, eax
jne 0x1000fab1
xor eax, eax
mov ecx, dword [ebp + 0x5b8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10031770
add ebp, 0x5bc
leave
ret
mov edi, dword [sym.imp.SHLWAPI.dll_StrCmpIW]
xor esi, esi
push ebx
push dword [esi*8 + 0x10059100]
call edi
test eax, eax
je 0x1000fb79
inc esi
cmp esi, 0x16
jb 0x1000fb40
mov esi, dword [ebp - 0x74]
push 0x1004b524
push ebx
call edi
test eax, eax
jne 0x1000fb97
push 0x104
push esi
call dword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
xor ecx, ecx
cmp ecx, eax
sbb eax, eax
neg eax
jmp 0x1000fb20
push 0
push dword [esi*8 + 0x10059104]
mov esi, dword [ebp - 0x74]
push esi
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x1000fb57
xor eax, eax
inc eax
jmp 0x1000fb20
push 0x1004b514
push ebx
call edi
test eax, eax
jne 0x1000fbb1
push 0x104
push esi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
jmp 0x1000fb6f
push 0x1004b4fc
push ebx
call edi
test eax, eax
jne 0x1000fbdd
push 0x104
push esi
call dword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
test eax, eax
je 0x1000fb1e
push esi
call dword [sym.imp.SHLWAPI.dll_PathStripToRootW]
jmp 0x1000fb20
push 0x1004b4f0
push ebx
call edi
test eax, eax
jne 0x1000fbfa
push esi
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
jmp 0x1000fb6f
push 0x1004b4d8
push ebx
call edi
test eax, eax
jne 0x1000fc20
push 0x1005bb14
push 0x104
push esi
call fcn.10009101
neg eax
sbb eax, eax
inc eax
jmp 0x1000fb20
push 0x1004b4c4
push ebx
call edi
test eax, eax
jne 0x1000fc69
cmp dword [0x1005ba00], eax
je 0x1000fc3b
push 0x1005b7f8
jmp 0x1000fc0b
push esi
call fcn.1000e9a7
mov edi, eax
pop ecx
test edi, edi
je 0x1000fc62
push esi
push 0x104
push 0x1005b7f8
call fcn.10009101
neg eax
sbb eax, eax
inc eax
mov dword [0x1005ba00], eax
mov eax, edi
jmp 0x1000fb20
push 0x1004b4a8
push ebx
call edi
test eax, eax
jne 0x1000fcad
cmp dword [0x1005b7f0], eax
je 0x1000fc84
push 0x1005b5e8
jmp 0x1000fc0b
push esi
call fcn.1000f34f
mov edi, eax
pop ecx
test edi, edi
je 0x1000fc62
push esi
push 0x104
push 0x1005b5e8
call fcn.10009101
neg eax
sbb eax, eax
inc eax
mov dword [0x1005b7f0], eax
jmp 0x1000fc62
push 0x1004b488
push ebx
call edi
test eax, eax
jne 0x1000fd42
push 0x206
push eax
mov word [ebp + 0x3a0], ax
lea eax, [ebp + 0x3a2]
push eax
call fcn.10031310
lea eax, [ebp + 0x3a0]
push eax
call fcn.1000eb32
add esp, 0x10
test eax, eax
je 0x1000fb1e
push 0x1004b474
lea eax, [ebp + 0x3a0]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp + 0x3a0]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1000fb1e
lea eax, [ebp + 0x3a0]
push eax
mov edi, 0x104
push edi
push esi
push 0
push 0x1004b460
push 0x1004b454
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
xor ecx, ecx
cmp eax, edi
setne cl
mov eax, ecx
jmp 0x1000fb20
push 0x1004b434
push ebx
call edi
test eax, eax
jne 0x1000fd5a
push esi
call fcn.1000eb32
pop ecx
jmp 0x1000fb20
push 0x1004b420
push ebx
call edi
test eax, eax
jne 0x1000fd97
lea eax, [ebp - 0x78]
push eax
push esi
lea eax, [ebp - 0x74]
push eax
push 0x1004b400
push 0x1004b3b8
mov dword [ebp - 0x78], 0x208
mov dword [ebp - 0x74], 1
push 0x80000002
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
jmp 0x1000fc16
push 0x1004b3a4
push ebx
call edi
test eax, eax
jne 0x1000fdb8
lea eax, [ebp - 0x78]
push eax
push esi
lea eax, [ebp - 0x74]
push eax
push 0x1004b400
push 0x1004b348
jmp 0x1000fd79
lea eax, [ebp - 0x7c]
push eax
push dword [ebp - 0x74]
lea eax, [ebp - 0x80]
push eax
push dword [ebp - 0x78]
xor ebx, ebx
push 0x1004b2c0
inc ebx
mov esi, 0x208
push 0x80000001
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], esi
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
test eax, eax
je 0x1000fac8
push 0x1004b2a4
push dword [ebp - 0x78]
call edi
test eax, eax
jne 0x1000fe1c
push dword [ebp - 0x7c]
push dword [ebp - 0x74]
push 0x1004b284
push 0x1004b230
push 0x80000002
call fcn.1000cb9c
add esp, 0x14
jmp 0x1000fb20
push 0x1004b218
push dword [ebp - 0x78]
call edi
test eax, eax
jne 0x1000fe37
push dword [ebp - 0x7c]
push dword [ebp - 0x74]
push 0x1004b1f8
jmp 0x1000fe05
push dword [ebp - 0x78]
lea eax, [ebp - 0x70]
push 0x1004b188
push esi
push eax
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], esi
call fcn.1000e4ec
add esp, 0x10
lea eax, [ebp - 0x7c]
push eax
push dword [ebp - 0x74]
lea eax, [ebp - 0x80]
push eax
push 0x1004ae98
lea eax, [ebp - 0x70]
push eax
jmp 0x1000fd87