Function at 0x423d70
Capabilities:
Check if file exists
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24c
mov dword [ebp - 0xc], 1
xor eax, eax
mov byte [ebp - 1], al
lea ecx, [ebp - 0x10]
push ecx
lea ecx, [ebp - 1]
call fcn.00423660
mov dword [ebp - 0x20], 4
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x1c], 4
push 0x208
push 0
lea edx, [ebp - 0x24c]
push edx
call fcn.004dcf80
add esp, 0xc
mov dword [ebp - 0x20], 1
mov dword [ebp - 0x1c], 0x104
xor eax, eax
mov byte [ebp - 2], al
xor ecx, ecx
mov byte [ebp - 3], cl
lea edx, [ebp - 0x1c]
push edx
lea eax, [ebp - 0x24c]
push eax
lea ecx, [ebp - 0x20]
push ecx
lea edx, [ebp - 0x34]
push edx
lea ecx, [ebp - 2]
call fcn.00421f80
mov ecx, eax
call fcn.00408bc0
push eax
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 3]
call fcn.0041c500
mov ecx, eax
call fcn.00408bc0
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
test eax, eax
je 0x423e23
mov dword [ebp - 0x24], 1
jmp 0x423e2a
mov dword [ebp - 0x24], 0
mov cl, byte [ebp - 0x24]
mov byte [ebp - 4], cl
lea ecx, [ebp - 0x30]
call fcn.00408870
lea ecx, [ebp - 0x34]
call fcn.00408870
movzx edx, byte [ebp - 4]
test edx, edx
je 0x423e54
mov dword [ebp - 0xc], 2
jmp 0x423faa
xor eax, eax
mov byte [ebp - 5], al
lea ecx, [ebp - 0x38]
push ecx
lea ecx, [ebp - 5]
call fcn.00422060
mov ecx, eax
call fcn.00408bc0
push eax
lea edx, [ebp - 0x24c]
push edx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea ecx, [ebp - 0x38]
call fcn.00408870
lea eax, [ebp - 0x24c]
push eax
mov ecx, dword [ebp + 8]
call fcn.004087c0
lea ecx, [ebp - 0x24c]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x423eae
mov dword [ebp - 0xc], 2
jmp 0x423faa
lea ecx, [ebp - 0x18]
call fcn.004089d0
lea edx, [ebp - 0x24c]
push edx
lea ecx, [ebp - 0x28]
call fcn.004088f0
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x28]
push ecx
call fcn.004052b0
add esp, 8
lea ecx, [ebp - 0x28]
call fcn.00408870
lea edx, [ebp - 0x14]
push edx
call fcn.004059f0
add esp, 4
lea ecx, [ebp - 0x14]
call fcn.00408b60
movzx eax, al
test eax, eax
je 0x423f14
mov dword [ebp - 0xc], 2
lea ecx, [ebp - 0x14]
call fcn.00408870
lea ecx, [ebp - 0x18]
call fcn.00408870
jmp 0x423faa
lea ecx, [ebp - 0x18]
call fcn.00408bc0
push eax
lea ecx, [ebp - 0x14]
call fcn.00408bc0
push eax
call fcn.00406410
add esp, 8
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jge 0x423f4d
push 0x525e3c
lea ecx, [ebp - 0x10]
call fcn.004087c0
mov dword [ebp - 0xc], 0xffffffff
jmp 0x423f92
cmp dword [ebp - 0x2c], 0
jne 0x423f69
push 0x525e40
lea ecx, [ebp - 0x10]
call fcn.004087c0
mov dword [ebp - 0xc], 0
jmp 0x423f92
mov dword [ebp - 0xc], 1
xor ecx, ecx
mov byte [ebp - 6], cl
lea edx, [ebp - 0x3c]
push edx
lea ecx, [ebp - 6]
call fcn.00422fd0
push eax
lea ecx, [ebp - 0x10]
call fcn.00408810
lea ecx, [ebp - 0x3c]
call fcn.00408870
lea ecx, [ebp - 0x14]
call fcn.00408870
lea ecx, [ebp - 0x18]
call fcn.00408870
xor eax, eax
jne 0x423d91
lea ecx, [ebp - 0x10]
call fcn.00423fe0
push eax
call fcn.00424110
mov ecx, eax
call fcn.004252d0
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x40], ecx
lea ecx, [ebp - 0x10]
call fcn.00408870
mov eax, dword [ebp - 0x40]
mov esp, ebp
pop ebp
ret