Function at 0x452820
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x134
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x124], eax
push ebx
mov ebx, dword [ebp + 0x18]
mov dword [ebp - 0x134], ebx
push esi
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x118], esi
push edi
test eax, eax
je 0x452af8
test esi, esi
je 0x452af8
mov esi, dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov edi, 0x80004005
push eax
call esi
push dword [ebp - 0x118]
mov dword [ebp - 0x12c], eax
call esi
cmp dword [ebp - 0x12c], 0
movdqu xmm0, xmmword [0x471c00]
mov dword [ebp - 0x130], eax
movdqu xmmword [ebp - 0x114], xmm0
je 0x452ac5
test eax, eax
je 0x452ac5
cmp dword [ebp + 0x10], 2
lea eax, [ebp - 0x128]
push eax
lea eax, [ebp - 0x120]
mov dword [ebp - 0x120], 0
push eax
push 0
push 0x20006
push 0
push 0
mov dword [ebp - 0x11c], 0
push 0
jne 0x4528e9
push str.SoftwareClassesSoftwareMicrosoftWindowsCurrentVersionGameUXGamesToFindOnWindowsUpgrade
push SysReAllocString
jmp 0x4528f3
push str.SoftwareMicrosoftWindowsCurrentVersionGameUXGamesToFindOnWindowsUpgrade
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov edi, eax
test edi, edi
jle 0x45290a
movzx edi, di
or edi, 0x80070000
test edi, edi
js 0x452a7d
lea eax, [ebp - 0x114]
push eax
push dword [ebp - 0x124]
call fcn.004536b0
add esp, 8
lea ecx, [ebp - 0x114]
mov edx, 0x471c00
mov esi, 0xc
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x452955
add ecx, 4
add edx, 4
sub esi, 4
jae 0x452935
lea eax, [ebp - 0x114]
push eax
call fcn.00453060
add esp, 4
xor eax, eax
push 0xfe
push eax
mov word [ebp - 0x104], ax
lea eax, [ebp - 0x102]
push eax
call fcn.0043a7a0
add esp, 0xc
lea eax, [ebp - 0x104]
push 0x80
push eax
lea eax, [ebp - 0x114]
push eax
call dword [sym.imp.ole32.dll_StringFromGUID2]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
je 0x452a75
lea eax, [ebp - 0x128]
push eax
lea eax, [ebp - 0x11c]
push eax
push 0
push 0x20006
push 0
push 0
push 0
lea eax, [ebp - 0x104]
push eax
push dword [ebp - 0x120]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov edi, eax
test edi, edi
jle 0x4529d9
movzx edi, di
or edi, 0x80070000
test edi, edi
js 0x452a75
mov edx, dword [ebp - 0x124]
mov ecx, 0x104
mov eax, edx
lea esp, [esp]
cmp word [eax], 0
mov ebx, 0x104
je 0x452ad8
add eax, 2
dec ecx
jne 0x4529f0
xor esi, esi
mov eax, dword [ebp - 0x118]
mov ecx, ebx
nop
cmp word [eax], 0
je 0x452ae9
add eax, 2
dec ecx
jne 0x452a10
xor ebx, ebx
lea eax, [esi*2 + 2]
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push eax
push edx
push 1
push 0
push str.GDFBinaryPath
push dword [ebp - 0x11c]
call esi
lea eax, [ebx*2 + 2]
push eax
push dword [ebp - 0x118]
push 1
push 0
push str.GameInstallPath
push dword [ebp - 0x11c]
call esi
push dword [ebp - 0x11c]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
mov ebx, dword [ebp - 0x134]
push dword [ebp - 0x120]
call esi
push dword [ebp - 0x12c]
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
call esi
push dword [ebp - 0x130]
call esi
test edi, edi
js 0x452ac5
movdqu xmm0, xmmword [ebp - 0x114]
sub esp, 0x10
mov eax, esp
push ebx
push dword [ebp + 0x14]
movdqu xmmword [eax], xmm0
push dword [ebp + 0x10]
push dword [ebp - 0x118]
push dword [ebp - 0x124]
call fcn.00452270
add esp, 0x24
mov edi, eax
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00438f17
mov esp, ebp
pop ebp
ret
test ecx, ecx
je 0x452a05
mov esi, ebx
sub esi, ecx
jmp 0x452a07
test ecx, ecx
je 0x452a20
sub ebx, ecx
jmp 0x452a22
test ebx, ebx
je 0x452b27
test eax, eax
jne 0x452b0e
push str.Error:_GDF_DLL_path_information_is_missing.
push ebx
call fcn.00438440
add esp, 8
test esi, esi
jne 0x452b20
push str.Error:_Game_installation_path_information_is_missing.
push ebx
call fcn.00438440
add esp, 8
mov ecx, ebx
call fcn.00437480
mov ecx, dword [ebp - 4]
mov eax, 0x80070057
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00438f17
mov esp, ebp
pop ebp
ret