Function at 0x4e5cd8
Capabilities:
Set registry value

Disassembly:
push 0x74c
mov eax, 0x56119d
call fcn.0050b5da
mov eax, ecx
mov dword [ebp - 0x758], eax
mov ebx, dword [ebp + 8]
xor ecx, ecx
mov dword [ebp - 0x744], ebx
cmp dword [eax + 0x20], ecx
jne 0x4e5d22
push str.ORegistryKey.SetValue_failure:_Cannot_set_multistring._The_registry_key_is_closed_or_not_set
push 0x3a
lea ecx, [ebp - 0x3b0]
call fcn.00407968
push 0x5e5eac
lea eax, [ebp - 0x3b0]
push eax
call fcn.0050ce64
cmp dword [ebx + 0x10], 0x3fff
jbe 0x4e5d3f
push str.ORegistryKey.SetValue_failure:_Cannot_set_multistring._The_registry_value_name_is_too_long
push 0x21
lea ecx, [ebp - 0x3b0]
call fcn.004e5207
jmp 0x4e5d11
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x740], 0x18
mov edi, dword [esi + 4]
mov eax, edi
mov esi, dword [esi]
sub eax, esi
cdq
idiv dword [ebp - 0x740]
test eax, eax
jne 0x4e5d74
push str.ORegistryKey.SetValue_failure:_Cannot_set_multistring._The_multistring_value_is_null__empty_vector_
push 0x1d
lea ecx, [ebp - 0x3b0]
call fcn.004e53fb
jmp 0x4e5d11
xor eax, eax
inc eax
cmp esi, edi
je 0x4e5db6
mov ebx, eax
push esi
lea ecx, [ebp - 0x28]
call fcn.00405700
mov eax, dword [ebp - 0x18]
lea ecx, [ebp - 0x28]
push 0
inc eax
push 1
add ebx, eax
call fcn.004069fb
add esi, dword [ebp - 0x740]
cmp esi, edi
jne 0x4e5d7d
mov dword [ebp - 0x73c], ebx
xor ecx, ecx
mov ebx, dword [ebp - 0x744]
mov eax, dword [ebp - 0x73c]
mov dword [ebp - 0x750], ecx
mov dword [ebp - 0x74c], ecx
mov dword [ebp - 0x748], ecx
add eax, eax
mov dword [ebp - 4], ecx
push eax
lea ecx, [ebp - 0x750]
mov dword [ebp - 0x754], eax
call fcn.004529a7
mov eax, dword [ebp + 0xc]
and dword [ebp - 0x73c], 0
mov dword [ebp - 4], 1
mov edi, dword [eax + 4]
mov esi, dword [eax]
mov eax, dword [ebp - 0x74c]
cmp esi, edi
je 0x4e5e73
mov ebx, eax
sub ebx, dword [ebp - 0x750]
push esi
lea ecx, [ebp - 0x28]
call fcn.00405700
mov ecx, dword [ebp - 0x750]
xor eax, eax
test ebx, ebx
mov byte [ebp - 4], 2
cmove ecx, eax
mov eax, dword [ebp - 0x18]
inc eax
push eax
mov eax, dword [ebp - 0x73c]
add eax, ecx
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00417826
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x73c]
push 0
push 1
mov byte [ebp - 4], 1
lea ecx, [ecx + eax*2]
add ecx, 2
mov dword [ebp - 0x73c], ecx
lea ecx, [ebp - 0x28]
call fcn.004069fb
add esi, dword [ebp - 0x740]
cmp esi, edi
jne 0x4e5e07
mov ebx, dword [ebp - 0x744]
mov eax, dword [ebp - 0x74c]
xor edi, edi
mov dword [ebp - 0x14], 7
xor ecx, ecx
mov dword [ebp - 0x18], edi
mov word [ebp - 0x28], cx
mov esi, dword [ebp - 0x750]
sub eax, esi
mov dword [ebp - 0x744], eax
mov eax, esi
cmove eax, ecx
mov byte [ebp - 4], 3
add eax, dword [ebp - 0x73c]
push 1
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0041784a
push edi
push 1
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 1
call fcn.004069fb
xor eax, eax
cmp dword [ebp - 0x744], eax
cmove esi, eax
cmp dword [ebx + 0x14], 8
jb 0x4e5ed2
mov eax, dword [ebx]
jmp 0x4e5ed4
mov eax, ebx
push dword [ebp - 0x754]
push esi
mov esi, dword [ebp - 0x758]
push 7
push edi
push eax
push dword [esi + 0x20]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x4e5f1a
lea ecx, [esi + 8]
push ecx
push ebx
push str.ORegistryKey.SetValue_failure:_Cannot_set_multistring_name___s__into_in_registry_key__s
push eax
push 0xf
lea ecx, [ebp - 0x738]
call fcn.004e516e
push 0x5e5eac
lea eax, [ebp - 0x738]
jmp 0x4e5d1c
lea ecx, [ebp - 0x750]
call fcn.0041d6d2
call fcn.0050b58c
ret 8