Function at 0x4164ba
Capabilities:
Set registry value

Disassembly:
push 8
mov eax, 0x46b45d
call fcn.0042dbd7
lea ecx, [ebp - 0x10]
xor bl, bl
call fcn.0040699e
and dword [ebp - 4], 0
cmp dword [ebp + 0x10], 0
je 0x4164e0
cmp dword [ebp + 0xc], 0
jne 0x4164f3
push 4
push str.IN_Operations::_ModifyRegValue_:_valueType_or_szSubKey_is_NULL__returning
mov ecx, 0x493f4c
call fcn.0040c5b8
mov bl, 1
mov edi, dword [ebp + 0x1c]
test edi, edi
jne 0x416515
push 5
push str.IN_Operations::_ModifyRegValue_:_szValueName_is_NULL__returning
mov ecx, 0x493f4c
call fcn.0040c5b8
mov esi, dword [ebp - 0x10]
xor bl, bl
jmp 0x416727
push edi
push dword [ebp + 0x10]
lea eax, [ebp - 0x10]
push dword [ebp + 0xc]
push str.IN_Operations::_ModifyRegValue_:_Entering__ModifyRegValue___parameters:__s___s___s
push eax
call fcn.00406b1a
mov esi, dword [ebp - 0x10]
add esp, 0x14
cmp dword [esi - 4], 1
jle 0x416544
push dword [esi - 0xc]
lea ecx, [ebp - 0x10]
call fcn.00406aae
mov esi, dword [ebp - 0x10]
push 4
push esi
mov ecx, 0x493f4c
call fcn.0040c5b8
cmp dword [ebp + 0x20], 0
lea eax, [ebp - 0x14]
push eax
push 2
pop ecx
mov eax, 0x102
cmove eax, ecx
push eax
push 0
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4166ba
push str.REG_DWORD
push dword [ebp + 0x10]
call fcn.00435a9e
pop ecx
pop ecx
test eax, eax
jne 0x4165ee
push 4
lea eax, [ebp + 0x14]
push eax
push 4
push 0
push edi
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
je 0x4166ad
push eax
lea eax, [ebp - 0x10]
push str.RegSetValueEx___failed._Error:__d
push eax
call fcn.00406b1a
mov eax, dword [ebp - 0x10]
add esp, 0xc
cmp dword [eax - 4], 1
jle 0x4165d3
push dword [eax - 0xc]
lea ecx, [ebp - 0x10]
call fcn.00406aae
mov eax, dword [ebp - 0x10]
push 7
push eax
mov ecx, 0x493f4c
call fcn.0040c5b8
push dword [ebp + 0x14]
push edi
push dword [ebp + 0xc]
push str.IN_Operations::_ModifyRegValue_:_Failed_to_set_value__s_s_to__i
jmp 0x41666a
push str.REG_SZ
push dword [ebp + 0x10]
call fcn.00435a9e
pop ecx
pop ecx
test eax, eax
jne 0x41669c
push dword [ebp + 0x18]
call fcn.00436130
pop ecx
push eax
push dword [ebp + 0x18]
push 1
push 0
push edi
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
je 0x4166ad
push eax
lea eax, [ebp - 0x10]
push str.RegSetValueEx___failed._Error:__d
push eax
call fcn.00406b1a
mov eax, dword [ebp - 0x10]
add esp, 0xc
cmp dword [eax - 4], 1
jle 0x416651
push dword [eax - 0xc]
lea ecx, [ebp - 0x10]
call fcn.00406aae
mov eax, dword [ebp - 0x10]
push 7
push eax
mov ecx, 0x493f4c
call fcn.0040c5b8
push dword [ebp + 0x18]
push edi
push dword [ebp + 0xc]
push str.IN_Operations::_ModifyRegValue_:_Failed_to_set_value__s_s_to__s
lea eax, [ebp - 0x10]
push eax
call fcn.00406b1a
mov esi, dword [ebp - 0x10]
add esp, 0x14
cmp dword [esi - 4], 1
jle 0x41668d
push dword [esi - 0xc]
lea ecx, [ebp - 0x10]
call fcn.00406aae
mov esi, dword [ebp - 0x10]
push 4
push esi
mov ecx, 0x493f4c
call fcn.0040c5b8
jmp 0x4166af
push 4
push str.IN_Operations::_ModifyRegValue_:_Invalid_value_type
mov ecx, 0x493f4c
call fcn.0040c5b8
mov bl, 1
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x416727
push eax
lea eax, [ebp - 0x10]
push str.RegOpenKeyEx___failed._Error:__d
push eax
call fcn.00406b1a
mov eax, dword [ebp - 0x10]
add esp, 0xc
cmp dword [eax - 4], 1
jle 0x4166e3
push dword [eax - 0xc]
lea ecx, [ebp - 0x10]
call fcn.00406aae
mov eax, dword [ebp - 0x10]
push 7
mov edi, 0x493f4c
push eax
mov ecx, edi
call fcn.0040c5b8
push dword [ebp + 0xc]
lea eax, [ebp - 0x10]
push str.IN_Operations::_ModifyRegValue_:_Failed_to_open_regkey__s
push eax
call fcn.00406b1a
mov esi, dword [ebp - 0x10]
add esp, 0xc
cmp dword [esi - 4], 1
jle 0x41671d
push dword [esi - 0xc]
lea ecx, [ebp - 0x10]
call fcn.00406aae
mov esi, dword [ebp - 0x10]
push 4
push esi
mov ecx, edi
call fcn.0040c5b8
lea ecx, [esi - 0x10]
call fcn.00406c57
mov al, bl
call fcn.0042dba0
ret