Function at 0x4096a0
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xf8
mov eax, dword [0x457880]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
lea eax, [ebp - 0xf4]
push eax
xor ebx, ebx
lea ecx, [ebp - 0xd8]
push ecx
push ebx
push 0xf003f
push ebx
push ebx
push ebx
push str.SoftwareNVIDIA_CorporationGlobal_nViewKeystone
mov dword [ebp - 0xd8], ebx
call fcn.00403110
push eax
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x409a24
push 0x27
lea edx, [ebp - 0x2b]
push ebx
push edx
mov byte [ebp - 0x2c], bl
call sub.MSVCR90.dll_memset
add esp, 0xc
push 0x4e
lea ecx, [ebp - 0xce]
xor eax, eax
push ebx
push ecx
mov word [ebp - 0xd0], ax
call sub.MSVCR90.dll_memset
add esp, 0xc
push 0x4e
lea eax, [ebp - 0x7e]
xor edx, edx
push ebx
push eax
mov word [ebp - 0x80], dx
call sub.MSVCR90.dll_memset
mov eax, 1
add esp, 0xc
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xe0], ebx
mov dword [ebp - 0xdc], ebx
cmp dword [edi + 0x2be3c], eax
jne 0x409758
mov dword [ebp - 0xec], 2
mov dword [ebp - 0xe4], ebx
cmp dword [ebp - 0xec], ebx
jbe 0x409916
xor esi, esi
jmp 0x409785
mov eax, 1
xor esi, esi
jmp 0x409785
mov eax, 1
push esi
lea ebx, [ebp - 0x80]
cmp dword [edi + 0x2be3c], eax
jne 0x4097cc
cmp dword [ebp - 0xe4], 0
jne 0x4097b1
mov dword [ebp - 0xe0], 4
mov dword [ebp - 0xdc], eax
push str.KeystoneDirectA_d
jmp 0x4097d1
mov dword [ebp - 0xe0], 8
mov dword [ebp - 0xdc], 2
push str.KeystoneDirectB_d
jmp 0x4097d1
push str.KeystoneDirect_d
mov eax, 0x50
call fcn.004031d0
add esp, 8
cmp esi, 4
jae 0x4097fb
mov ecx, dword [ebp - 0xe0]
lea eax, [ecx + esi + 0x3a38]
lea edx, [eax + eax*2]
fld dword [edi + edx*4]
jmp 0x40987c
jmp 0x4c19c8
push 0x28
sub esp, 8
fstp qword [esp]
push 0x28
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.MSVCR90.dll__gcvt_s]
add esp, 0x14
lea edx, [ebp - 0x2c]
mov ebx, 0x28
lea eax, [ebp - 0xd0]
mov cl, byte [edx]
test cl, cl
je 0x4098b7
movsx cx, cl
mov word [eax], cx
add eax, 2
inc edx
sub ebx, 1
jne 0x4098a1
mov ecx, 0x28
lea eax, [ebp - 0xd0]
cmp word [eax], 0
je 0x409a34
add eax, 2
sub ecx, 1
jne 0x4098c2
xor eax, eax
mov ecx, dword [ebp - 0xd8]
push eax
lea edx, [ebp - 0xd0]
push edx
push 1
push 0
lea eax, [ebp - 0x80]
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
inc esi
cmp esi, 0xc
jb 0x409780
mov eax, dword [ebp - 0xe4]
inc eax
mov dword [ebp - 0xe4], eax
cmp eax, dword [ebp - 0xec]
jb 0x409770
mov ecx, dword [ebp - 0xd8]
mov edx, dword [0x457d88]
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push 4
lea eax, [ebp - 0xd4]
push eax
push 4
push 0
push str.LockCorners
push ecx
mov dword [ebp - 0xd4], edx
call esi
mov ecx, dword [ebp - 0xd8]
mov edx, dword [edi + 0x2ba58]
push 4
lea eax, [ebp - 0xd4]
push eax
push 4
push 0
push str.Filter
push ecx
mov dword [ebp - 0xd4], edx
call esi
mov ecx, dword [ebp - 0xd8]
mov edx, dword [edi + 0x2be40]
push 4
lea eax, [ebp - 0xd4]
push eax
push 4
push 0
push str.VSpanAtSave
push ecx
mov dword [ebp - 0xd4], edx
call esi
fld dword [edi + 0x2be34]
fld qword [0x451710]
mov ecx, dword [ebp - 0xd8]
fnstcw word [ebp - 0xd2]
movzx eax, word [ebp - 0xd2]
fmul st(1), st(0)
or eax, 0xc00
mov dword [ebp - 0xec], eax
push 4
lea eax, [ebp - 0xd4]
fsubrp st(1)
push eax
fldcw word [ebp - 0xec]
push 4
push 0
push str.QuickZoomFactor
push ecx
fistp qword [ebp - 0xf0]
mov edx, dword [ebp - 0xf0]
fldcw word [ebp - 0xd2]
mov dword [ebp - 0xd4], edx
call esi
mov eax, dword [ebp - 0xd8]
push 4
lea edx, [ebp - 0xd4]
push edx
push 4
push 0
push str.KeystoneRegSemiphore
push eax
mov dword [ebp - 0xd4], 0
call esi
mov ecx, dword [ebp - 0xd8]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
pop ebx
call fcn.0044d16e
mov esp, ebp
pop ebp
ret
test ecx, ecx
je 0x4098d4
mov eax, 0x28
sub eax, ecx
jmp 0x4098d6