Function at 0x42f250
Capabilities:
Check if file exists
Get common file path
Get file attributes
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x471f8a
mov eax, dword fs:[0]
push eax
mov eax, 0x2104
call fcn.0045a630
mov eax, dword [0x485c44]
xor eax, ebp
mov dword [ebp - 0x14], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x20b4], ecx
mov ecx, dword [ebp - 0x20b4]
call fcn.00430410
mov ecx, dword [ebp - 0x20b4]
call fcn.0042f780
mov ecx, dword [ebp - 0x20b4]
call fcn.0041df70
mov eax, dword [ebp - 0x20b4]
mov ecx, dword [eax + 0xc8]
mov edx, dword [ecx + 0x2bc]
push edx
mov ecx, dword [ebp - 0x20b4]
call fcn.0041e020
mov eax, dword [ebp - 0x20b4]
mov ecx, dword [eax + 0xc8]
add ecx, 0x2a4
push ecx
mov ecx, dword [ebp - 0x20b4]
call fcn.0041e110
xor edx, edx
mov word [ebp - 0x2014], dx
push 0x1ffe
push 0
lea eax, [ebp - 0x2012]
push eax
call fcn.0045a140
add esp, 0xc
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x10]
push ecx
push 0x20019
push 0
push str.SoftwareMicrosoftWindowsCurrentVersionExplorerUser_Shell_Folders
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x42f643
mov dword [ebp - 0x201c], 0
mov dword [ebp - 0x203c], 0x2000
push str.123374DE290_123F_4565_9164_39C4925E467B
lea ecx, [ebp - 0x2038]
call fcn.0040d830
mov dword [ebp - 4], 0
mov dword [ebp - 0x20b8], 0x47894c
mov edx, dword [ebp - 0x20b8]
add edx, 2
mov dword [ebp - 0x20bc], edx
mov eax, dword [ebp - 0x20b8]
mov cx, word [eax]
mov word [ebp - 0x20be], cx
add dword [ebp - 0x20b8], 2
cmp word [ebp - 0x20be], 0
jne 0x42f36f
mov edx, dword [ebp - 0x20b8]
sub edx, dword [ebp - 0x20bc]
sar edx, 1
mov dword [ebp - 0x20c4], edx
mov eax, dword [ebp - 0x20c4]
push eax
push 0x47894c
push 3
push 1
lea ecx, [ebp - 0x2038]
call fcn.0040edc0
cmp dword [ebp - 0x2020], 8
jb 0x42f3d6
mov ecx, dword [ebp - 0x2034]
mov dword [ebp - 0x20c8], ecx
jmp 0x42f3e2
lea edx, [ebp - 0x2034]
mov dword [ebp - 0x20c8], edx
lea eax, [ebp - 0x203c]
push eax
lea ecx, [ebp - 0x2014]
push ecx
lea edx, [ebp - 0x201c]
push edx
push 0
mov eax, dword [ebp - 0x20c8]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x42f62d
mov dword [ebp - 0x2040], str._USERPROFILE_
lea edx, [ebp - 0x2014]
mov dword [ebp - 0x20cc], edx
mov eax, dword [ebp - 0x20cc]
add eax, 2
mov dword [ebp - 0x20d0], eax
mov ecx, dword [ebp - 0x20cc]
mov dx, word [ecx]
mov word [ebp - 0x20d2], dx
add dword [ebp - 0x20cc], 2
cmp word [ebp - 0x20d2], 0
jne 0x42f437
mov eax, dword [ebp - 0x20cc]
sub eax, dword [ebp - 0x20d0]
sar eax, 1
mov dword [ebp - 0x20d8], eax
mov ecx, dword [ebp - 0x20d8]
push ecx
lea edx, [ebp - 0x2014]
push edx
mov ecx, dword [ebp - 0x20b4]
add ecx, 0xac
call fcn.0040d960
mov eax, dword [ebp - 0x2040]
mov dword [ebp - 0x20dc], eax
mov ecx, dword [ebp - 0x20dc]
add ecx, 2
mov dword [ebp - 0x20e0], ecx
mov edx, dword [ebp - 0x20dc]
mov ax, word [edx]
mov word [ebp - 0x20e2], ax
add dword [ebp - 0x20dc], 2
cmp word [ebp - 0x20e2], 0
jne 0x42f4a6
mov ecx, dword [ebp - 0x20dc]
sub ecx, dword [ebp - 0x20e0]
sar ecx, 1
mov dword [ebp - 0x20e8], ecx
mov edx, dword [ebp - 0x20e8]
push edx
push 0
mov eax, dword [ebp - 0x2040]
push eax
mov ecx, dword [ebp - 0x20b4]
add ecx, 0xac
call fcn.0041acf0
mov dword [ebp - 0x2044], eax
mov ecx, dword [0x4764d8]
cmp ecx, dword [ebp - 0x2044]
je 0x42f62d
push 0
push 0x28
lea edx, [ebp - 0x2014]
push edx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
mov eax, dword [ebp - 0x2040]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp - 0x2058], eax
lea ecx, [ebp - 0x2014]
mov dword [ebp - 0x20ec], ecx
mov edx, dword [ebp - 0x20ec]
add edx, 2
mov dword [ebp - 0x20f0], edx
mov eax, dword [ebp - 0x20ec]
mov cx, word [eax]
mov word [ebp - 0x20f2], cx
add dword [ebp - 0x20ec], 2
cmp word [ebp - 0x20f2], 0
jne 0x42f555
mov edx, dword [ebp - 0x20ec]
sub edx, dword [ebp - 0x20f0]
sar edx, 1
mov dword [ebp - 0x20f8], edx
mov eax, dword [ebp - 0x20f8]
push eax
lea ecx, [ebp - 0x2014]
push ecx
mov edx, dword [ebp - 0x2058]
push edx
mov eax, dword [ebp - 0x2044]
push eax
mov ecx, dword [ebp - 0x20b4]
add ecx, 0xac
call fcn.0040edc0
mov ecx, dword [ebp - 0x20b4]
add ecx, 0xac
mov dword [ebp - 0x205c], ecx
mov edx, dword [ebp - 0x205c]
cmp dword [edx + 0x18], 8
jb 0x42f5e6
mov eax, dword [ebp - 0x205c]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x20fc], ecx
jmp 0x42f5f5
mov edx, dword [ebp - 0x205c]
add edx, 4
mov dword [ebp - 0x20fc], edx
mov eax, dword [ebp - 0x20fc]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [ebp - 0x2048], eax
cmp dword [ebp - 0x2048], 0xffffffff
je 0x42f61c
mov ecx, dword [ebp - 0x2048]
and ecx, 0x10
jne 0x42f62d
mov ecx, dword [ebp - 0x20b4]
add ecx, 0xac
call fcn.00412550
mov dword [ebp - 4], 0xffffffff
push 0
push 1
lea ecx, [ebp - 0x2038]
call fcn.0040d8a0
mov edx, dword [ebp - 0x20b4]
xor eax, eax
cmp dword [edx + 0xc0], 0
sete al
movzx ecx, al
test ecx, ecx
je 0x42f6e2
push 0
push 0x10
lea edx, [ebp - 0x2014]
push edx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea eax, [ebp - 0x2014]
mov dword [ebp - 0x2100], eax
mov ecx, dword [ebp - 0x2100]
add ecx, 2
mov dword [ebp - 0x2104], ecx
mov edx, dword [ebp - 0x2100]
mov ax, word [edx]
mov word [ebp - 0x2106], ax
add dword [ebp - 0x2100], 2
cmp word [ebp - 0x2106], 0
jne 0x42f68e
mov ecx, dword [ebp - 0x2100]
sub ecx, dword [ebp - 0x2104]
sar ecx, 1
mov dword [ebp - 0x210c], ecx
mov edx, dword [ebp - 0x210c]
push edx
lea eax, [ebp - 0x2014]
push eax
mov ecx, dword [ebp - 0x20b4]
add ecx, 0xac
call fcn.0040d960
mov dword [ebp - method.tinyxml2::XMLNode.virtual_48], vtable.ITextWidther.0
mov dword [ebp - method.LabelTextSetter.virtual_0], vtable.LabelTextSetter.0
mov ecx, dword [ebp - 0x20b4]
add ecx, 0xac
mov dword [ebp - 0x20ac], ecx
mov edx, dword [ebp - 0x20ac]
cmp dword [edx + 0x18], 8
jb 0x42f725
mov eax, dword [ebp - 0x20ac]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x2110], ecx
jmp 0x42f734
mov edx, dword [ebp - 0x20ac]
add edx, 4
mov dword [ebp - 0x2110], edx
mov eax, dword [ebp - 0x20b4]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x20b0], ecx
mov edx, dword [ebp - 0x2110]
push edx
push 0xf
mov eax, dword [ebp - 0x20b0]
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00458357
mov esp, ebp
pop ebp
ret