Function at 0x4a8316
Capabilities:
Set registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, dword [ebp + 0x10]
push ebx
push esi
push edi
xor edi, edi
and eax, 0xfff0
mov dword [ebp - 8], edi
mov ebx, ecx
mov dword [ebp - 4], edi
mov esi, edi
cmp eax, 0x10
jne 0x4a856e
xor eax, eax
cmp dword [ebx + 0x98], edi
push edi
push dword [ebx + 0x44]
sete al
mov dword [ebx + 0x98], eax
call dword [sym.imp.USER32.dll_GetSystemMenu]
mov ecx, eax
test ecx, ecx
jne 0x4a83be
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [section..data]
cmp eax, section..data
je 0x4a839f
test byte [eax + 0x1c], 8
je 0x4a839f
cmp byte [eax + 0x19], 2
jb 0x4a839f
call fcn.0042386b
push esi
push eax
mov eax, dword [section..data]
mov edx, 0x417cf0
mov ecx, 0xb3
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.00421fda
test esi, esi
jle 0x4a83ae
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x4a8582
mov esi, 0x80004005
jmp 0x4a8582
mov eax, dword [ebx + 0x98]
neg eax
sbb eax, eax
and eax, 8
push eax
push 0x10
push ecx
call dword [sym.imp.USER32.dll_CheckMenuItem]
mov ecx, dword [ebx + 0x28]
mov eax, dword [ecx]
mov esi, dword [eax + 0x34]
mov eax, dword [ebx + 0x98]
neg eax
sbb eax, eax
movzx eax, ax
push eax
push ecx
mov ecx, esi
call dword [0x5035f0]
call esi
mov esi, eax
test esi, esi
jns 0x4a844d
mov ecx, dword [section..data]
cmp ecx, section..data
je 0x4a8582
test byte [ecx + 0x1c], 8
je 0x4a8582
cmp byte [ecx + 0x19], 2
jb 0x4a8582
call fcn.0042386b
push esi
push 0x417a2c
mov ecx, 0xb4
push eax
mov eax, dword [section..data]
mov edx, 0x417cf0
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0042371b
jmp 0x4a8582
mov ecx, ebx
call fcn.004a6e3e
mov esi, eax
test esi, esi
jns 0x4a8490
mov eax, dword [section..data]
cmp eax, section..data
je 0x4a8582
test byte [eax + 0x1c], 8
je 0x4a8582
cmp byte [eax + 0x19], 2
jb 0x4a8582
call fcn.0042386b
push esi
push 0x4179bc
mov ecx, 0xb5
jmp 0x4a8432
mov eax, dword [ebx + 0x98]
push edi
mov dword [ebp - 8], eax
lea eax, [ebp - 4]
push eax
push edi
push 0x20006
push edi
push edi
push edi
push 0x417c78
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov ebx, eax
test ebx, ebx
je 0x4a851c
mov ecx, dword [section..data]
cmp ecx, section..data
je 0x4a8509
test byte [ecx + 0x1c], 8
je 0x4a8509
cmp byte [ecx + 0x19], 2
jb 0x4a8509
test ebx, ebx
jg 0x4a84df
mov esi, ebx
jmp 0x4a84e8
movzx esi, bx
or esi, 0x80070000
call fcn.0042386b
mov ecx, 0xb6
push esi
push eax
mov eax, dword [section..data]
mov edx, 0x417cf0
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.00421fda
test ebx, ebx
jg 0x4a8511
mov esi, ebx
jmp 0x4a8582
movzx esi, bx
or esi, 0x80070000
jmp 0x4a8582
push 4
lea eax, [ebp - 8]
push eax
push 4
push edi
push 0x417ccc
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov ebx, eax
test ebx, ebx
je 0x4a8582
mov eax, dword [section..data]
cmp eax, section..data
je 0x4a8509
test byte [eax + 0x1c], 8
je 0x4a8509
cmp byte [eax + 0x19], 2
jb 0x4a8509
test ebx, ebx
jg 0x4a8559
mov esi, ebx
jmp 0x4a8562
movzx esi, bx
or esi, 0x80070000
call fcn.0042386b
mov ecx, 0xb7
jmp 0x4a84f2
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_DefWindowProcW]
mov edi, eax
cmp dword [ebp - 4], 0
je 0x4a8591
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp + 0x18]
mov dword [eax], edi
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret 0x14