Function at 0x41d45e
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x114
mov eax, dword [0x492110]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 8]
mov ebx, 0x49418c
push edi
push eax
push str.Entering_Register___s__
push ebx
mov dword [ebp - 0x110], eax
call fcn.00406b1a
mov eax, dword [0x49418c]
add esp, 0xc
cmp dword [eax - 4], 1
jle 0x41d4ae
push dword [eax - 0xc]
mov ecx, ebx
call fcn.00406aae
mov eax, dword [0x49418c]
push eax
mov ecx, 0x493f4c
call fcn.0040c5a7
and dword [ebp - 0x10c], 0
xor edi, edi
xor ebx, ebx
mov dword [ebp - 0x114], edi
cmp dword [ebp + 0x10], ebx
je 0x41d522
push ebx
push esi
push SysReAllocString
call fcn.0041d99f
mov edi, eax
add esp, 0xc
mov dword [ebp - 0x114], edi
test edi, edi
jne 0x41d4fb
push 5
push str.SetOwnership___32_bit_failed.
mov ecx, 0x493f4c
call fcn.0040c5b8
push 0
push esi
push SysReAllocString
call fcn.0041d052
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x41d522
push 5
push str.GrantAccess___32_bit_failed.
mov ecx, 0x493f4c
call fcn.0040c5b8
lea eax, [ebp - 0x10c]
push eax
push 0x202
push 0
push esi
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x41d5b8
push dword [ebp - 0x110]
call fcn.00436130
pop ecx
inc eax
push eax
push dword [ebp - 0x110]
push 1
push 0
push 0x487527
push dword [ebp - 0x10c]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
je 0x41d5aa
push eax
push str.Register:_RegSetValueEx___32_bit_failed._Error:__d
push 0x49418c
call fcn.00406b1a
mov eax, dword [0x49418c]
add esp, 0xc
cmp dword [eax - 4], 1
jle 0x41d59d
push dword [eax - 0xc]
mov ecx, 0x49418c
call fcn.00406aae
mov eax, dword [0x49418c]
push 3
push eax
mov ecx, 0x493f4c
call fcn.0040c5b8
push dword [ebp - 0x10c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x41d5f5
push eax
push str.Register:_RegOpenKeyEx___32_bit_failed._Error:__d
push 0x49418c
call fcn.00406b1a
mov eax, dword [0x49418c]
add esp, 0xc
cmp dword [eax - 4], 1
jle 0x41d5e8
push dword [eax - 0xc]
mov ecx, 0x49418c
call fcn.00406aae
mov eax, dword [0x49418c]
push 7
push eax
mov ecx, 0x493f4c
call fcn.0040c5b8
cmp dword [ebp + 0x10], 0
je 0x41d65e
push 0
push ebx
push esi
mov ebx, SysReAllocString
push ebx
call fcn.0041d7b7
push 0
push edi
push esi
push ebx
call fcn.0041d8aa
push 1
push esi
push ebx
call fcn.0041d99f
add esp, 0x2c
mov dword [ebp - 0x114], eax
test eax, eax
jne 0x41d63b
push 5
push str.SetOwnership___64_bit_failed.
mov ecx, 0x493f4c
call fcn.0040c5b8
push 1
push esi
push ebx
call fcn.0041d052
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x41d65e
push 5
push str.GrantAccess___64_bit_failed.
mov ecx, 0x493f4c
call fcn.0040c5b8
lea eax, [ebp - 0x10c]
push eax
push 0x102
push 0
push esi
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov edi, eax
test edi, edi
jne 0x41d726
mov edi, 0x104
push edi
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.0042f1f0
push dword [ebp - 0x110]
lea eax, [ebp - 0x108]
push edi
push eax
call fcn.004360d6
lea eax, [ebp - 0x108]
push eax
call fcn.00436130
add esp, 0x1c
inc eax
push eax
lea eax, [ebp - 0x108]
push eax
push 1
push 0
push 0x487527
push dword [ebp - 0x10c]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov edi, eax
test edi, edi
je 0x41d718
push edi
push str.Register:_RegSetValueEx___64_bit_failed._Error:__d
push 0x49418c
call fcn.00406b1a
mov eax, dword [0x49418c]
add esp, 0xc
cmp dword [eax - 4], 1
jle 0x41d70b
push dword [eax - 0xc]
mov ecx, 0x49418c
call fcn.00406aae
mov eax, dword [0x49418c]
push 3
push eax
mov ecx, 0x493f4c
call fcn.0040c5b8
push dword [ebp - 0x10c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x41d763
push edi
push str.Register:_RegOpenKeyEx___64_bit_failed._Error:__d
push 0x49418c
call fcn.00406b1a
mov eax, dword [0x49418c]
add esp, 0xc
cmp dword [eax - 4], 1
jle 0x41d756
push dword [eax - 0xc]
mov ecx, 0x49418c
call fcn.00406aae
mov eax, dword [0x49418c]
push 7
push eax
mov ecx, 0x493f4c
call fcn.0040c5b8
cmp dword [ebp + 0x10], 0
je 0x41d78a
push 1
push ebx
push esi
mov ebx, SysReAllocString
push ebx
call fcn.0041d7b7
push 1
push dword [ebp - 0x114]
push esi
push ebx
call fcn.0041d8aa
add esp, 0x20
push str.Exiting_Register__
mov ecx, 0x493f4c
call fcn.0040c5a7
test edi, edi
je 0x41d7a6
cmp edi, 2
je 0x41d7a6
xor al, al
jmp 0x41d7a8
mov al, 1
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0042db8f
leave
ret