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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x528768
mov eax, dword fs:[0]
push eax
sub esp, 0x240
mov eax, dword [0x5898bc]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ecx, dword [0x5916f0]
test ecx, ecx
jne 0x437513
push 0x588310
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [0x5916f0], 0
jne 0x4374fa
push 0x1c
call fcn.004436d0
mov esi, eax
add esp, 4
mov dword [ebp - 0x220], esi
test esi, esi
je 0x4374f2
lea ecx, [esi + 4]
mov dword [esi], vtable._BaseModule::CCriticalSection.0
push ecx
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
jmp 0x4374f4
xor esi, esi
mov dword [0x5916f0], esi
push 0x588310
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [0x5916f0]
test ecx, ecx
jne 0x437513
xor eax, eax
jmp 0x437575
mov eax, dword [0x5916ec]
test eax, eax
jne 0x437575
mov eax, dword [ecx]
push ecx
call dword [eax]
cmp dword [0x5916ec], 0
jne 0x437565
push 0x64
call fcn.004436d0
add esp, 4
mov dword [ebp - 0x220], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x437550
mov ecx, eax
call fcn.00421cf0
mov ecx, eax
jmp 0x437552
xor ecx, ecx
mov dword [ebp - 4], 0xffffffff
xchg dword [ebp - 0x220], eax
mov dword [0x5916ec], ecx
mov eax, dword [0x5916f0]
push eax
mov ecx, dword [eax]
call dword [ecx + 4]
mov eax, dword [0x5916ec]
mov ecx, eax
call fcn.004242d0
test eax, eax
je 0x43775b
mov eax, dword [0x5920e0]
mov dword [ebp - 0x234], 0
test al, 1
jne 0x4375a9
or eax, 1
mov dword [0x5920dc], 0
mov dword [0x5920e0], eax
mov byte [ebp - 0x219], 0
lea eax, [ebp - 0x230]
mov dword [ebp - 4], 1
push eax
call fcn.00472b55
lea eax, [ebp - 0x230]
mov dword [ebp - 4], 2
mov dword [ebp - 0x244], eax
lea eax, [ebp - 0x219]
mov dword [ebp - 0x240], eax
lea eax, [ebp - 0x244]
push eax
push 0x4326b0
push 0x5920dc
call fcn.00473b2b
add esp, 0x10
test eax, eax
je 0x437792
lea eax, [ebp - 0x230]
mov dword [ebp - 4], 3
push eax
call fcn.00472b8f
add esp, 4
lea eax, [ebp - 0x234]
push 4
push eax
push 4
push str.navigation
push 0x5920e4
push SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.004b2720
mov eax, dword [0x592110]
add esp, 0xc
mov dword [ebp - 0x23c], 1
mov dword [ebp - 0x238], 0x104
test al, 1
jne 0x43767e
or eax, 1
mov dword [0x59210c], 0
mov dword [0x592110], eax
mov byte [ebp - 0x21a], 0
lea eax, [ebp - 0x228]
mov dword [ebp - 4], 6
push eax
call fcn.00472b55
lea eax, [ebp - 0x228]
mov dword [ebp - 4], 7
mov dword [ebp - 0x24c], eax
lea eax, [ebp - 0x21a]
mov dword [ebp - 0x248], eax
lea eax, [ebp - 0x24c]
push eax
push 0x4325c0
push 0x59210c
call fcn.00473b2b
add esp, 0x10
test eax, eax
je 0x437775
lea eax, [ebp - 0x228]
mov dword [ebp - 4], 8
push eax
call fcn.00472b8f
add esp, 4
lea eax, [ebp - 0x238]
push eax
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x23c]
push eax
push 0x53ec84
push 0x592118
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
test eax, eax
jne 0x43775b
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x43775b
push str.ComputerZ.set
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x218]
push eax
push 0x53f6cc
push 0x5431e8
push str.three_end
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00498678
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x228]
mov byte [ebp - 4], 9
push eax
call fcn.00472bd1
add esp, 4
mov byte [ebp - 4], 7
test al, al
je 0x4377d9
jmp 0x4377c3
lea eax, [ebp - 0x230]
mov byte [ebp - 4], 4
push eax
call fcn.00472bd1
add esp, 4
mov byte [ebp - 4], 2
test al, al
je 0x4377d9
sub esp, 8
lea eax, [ebp - 0x230]
mov ecx, esp
push eax
call fcn.00408860
call fcn.0040ae00
sub esp, 8
lea eax, [ebp - 0x228]
mov ecx, esp
push eax
call fcn.00408860
call fcn.0040ae00
call fcn.00473bfc
int3