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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x52e5f1
mov eax, dword fs:[0]
push eax
sub esp, 0x240
mov eax, dword [0x5867ec]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov byte [ebp - 0x219], 0
lea eax, [ebp - 0x224]
mov dword [ebp - 4], 0
push eax
call fcn.00473ac5
lea eax, [ebp - 0x224]
mov dword [ebp - 4], 1
mov dword [ebp - 0x230], eax
lea eax, [ebp - 0x219]
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x230]
push eax
push 0x42cb60
push 0x58e5d0
call fcn.00474a9b
add esp, 0x10
test eax, eax
je 0x438eef
lea eax, [ebp - 0x224]
mov dword [ebp - 4], 2
push eax
call fcn.00473aff
mov ecx, dword [0x58e5cc]
add esp, 4
mov dword [ebp - 4], 0xffffffff
call fcn.00425aa0
test eax, eax
je 0x438e9c
mov eax, dword [0x58eff8]
mov dword [ebp - 0x23c], 0
test al, 1
jne 0x438cea
or eax, 1
mov dword [0x58eff4], 0
mov dword [0x58eff8], eax
mov byte [ebp - 0x219], 0
lea eax, [ebp - 0x224]
mov dword [ebp - 4], 5
push eax
call fcn.00473ac5
lea eax, [ebp - 0x224]
mov dword [ebp - 4], 6
mov dword [ebp - 0x230], eax
lea eax, [ebp - 0x219]
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x230]
push eax
push 0x433ea0
push 0x58eff4
call fcn.00474a9b
add esp, 0x10
test eax, eax
je 0x438ed2
lea eax, [ebp - 0x224]
mov dword [ebp - 4], 7
push eax
call fcn.00473aff
add esp, 4
lea eax, [ebp - 0x23c]
push 4
push eax
push 4
push str.navigation
push 0x58effc
push SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.004b8590
mov eax, dword [0x58f028]
add esp, 0xc
mov dword [ebp - 0x244], 1
mov dword [ebp - 0x240], 0x104
test al, 1
jne 0x438dbf
or eax, 1
mov dword [0x58f024], 0
mov dword [0x58f028], eax
mov byte [ebp - 0x21a], 0
lea eax, [ebp - 0x238]
mov dword [ebp - 4], 0xa
push eax
call fcn.00473ac5
lea eax, [ebp - 0x238]
mov dword [ebp - 4], 0xb
mov dword [ebp - 0x24c], eax
lea eax, [ebp - 0x21a]
mov dword [ebp - 0x248], eax
lea eax, [ebp - 0x24c]
push eax
push 0x433db0
push 0x58f024
call fcn.00474a9b
add esp, 0x10
test eax, eax
je 0x438eb5
lea eax, [ebp - 0x238]
mov dword [ebp - 4], 0xc
push eax
call fcn.00473aff
add esp, 4
lea eax, [ebp - 0x240]
push eax
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x244]
push eax
push 0x543334
push 0x58f030
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
test eax, eax
jne 0x438e9c
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x438e9c
push str.ComputerZ.set
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x218]
push eax
push 0x543d78
push 0x547900
push str.three_end
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004994d8
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x238]
mov byte [ebp - 4], 0xd
push eax
call fcn.00473b41
add esp, 4
mov byte [ebp - 4], 0xb
test al, al
je 0x438f1e
jmp 0x438f08
lea eax, [ebp - 0x224]
mov byte [ebp - 4], 8
push eax
call fcn.00473b41
add esp, 4
mov byte [ebp - 4], 6
test al, al
jne 0x438f23
jmp 0x438f1e
lea eax, [ebp - 0x224]
mov byte [ebp - 4], 3
push eax
call fcn.00473b41
add esp, 4
mov byte [ebp - 4], 1
jmp 0x438ee9
sub esp, 8
lea eax, [ebp - 0x238]
mov ecx, esp
push eax
call fcn.0040a040
call fcn.0040c450
call fcn.00474b6c
sub esp, 8
lea eax, [ebp - 0x224]
mov ecx, esp
push eax
call fcn.0040a040
call fcn.0040c450
int3