Function at 0x41d627
Capabilities:
Set registry value

Disassembly:
push 0x88
mov eax, 0x48bf30
call fcn.0045cda0
mov ebx, ecx
mov dword [ebp - 0x64], ebx
call fcn.0041a7e7
mov dword [ebp - 0x60], 1
xor esi, esi
lea ecx, [ebp - 0x7c]
push esi
push 0xffffffffffffffff
push 0x49ff20
mov dword [ebp - 4], esi
call fcn.00417813
push dword [ebp + 8]
lea eax, [ebp - 0x7c]
mov byte [ebp - 4], 1
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.00413e39
add esp, 0xc
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 3
call fcn.0041394e
lea ecx, [ebp - 0x74]
call fcn.0041394e
cmp dword [ebx + 8], esi
jne 0x41d6d9
push esi
push 0xffffffffffffffff
push str.error_setting_key
lea ecx, [ebp - 0x5c]
call fcn.00417813
lea eax, [ebp - 0x44]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x94]
push eax
call fcn.00413e39
add esp, 0xc
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x2c], vtable.RSException.0
call fcn.00413841
push 0x4b0a7c
lea eax, [ebp - 0x2c]
push eax
call sub.MSVCR120.dll__CxxThrowException
push 1
mov ecx, ebx
call fcn.0041d886
test eax, eax
je 0x41d818
cmp dword [ebx + 0xc], esi
je 0x41d7f5
lea ecx, [ebp - 0x44]
call fcn.00418bd8
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, dword [ebp + 0xc]
mov edi, eax
mov ecx, esi
call fcn.00418bd8
mov ecx, dword [esi + 4]
lea eax, [ecx*2 + 2]
push eax
push 0
push 0x11
mov dword [ebp + 8], eax
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopyData]
mov esi, eax
test esi, esi
jne 0x41d760
push eax
push 0xffffffffffffffff
push str.out_of_memory_while_setting_key
lea ecx, [ebp - 0x5c]
call fcn.00417813
lea eax, [ebp - 0x44]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x94]
push eax
call fcn.00413e39
add esp, 0xc
mov byte [ebp - 4], 7
jmp 0x41d6bb
lea eax, [ebp - 0x10]
push eax
push esi
call dword [sym.imp.OLEAUT32.dll_SafeArrayUnaccessData]
test eax, eax
jne 0x41d790
mov ecx, dword [ebp + 0xc]
call fcn.00418bd8
mov ecx, dword [ebp + 8]
push ecx
push eax
push ecx
push dword [ebp - 0x10]
call dword [sym.imp.MSVCR120.dll_memcpy_s]
add esp, 0x10
push esi
call dword [sym.imp.OLEAUT32.dll_SafeArrayGetElement]
push dword [ebp + 8]
mov eax, dword [ebx + 0xc]
push esi
push edi
push dword [ebx + 8]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x7c]
push esi
test eax, eax
je 0x41d7e8
call dword [sym.imp.OLEAUT32.dll_SafeArrayGetDim]
push edi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
push 0
push 0xffffffffffffffff
push str.error_setting_key
lea ecx, [ebp - 0x5c]
call fcn.00417813
lea eax, [ebp - 0x44]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x94]
push eax
call fcn.00413e39
add esp, 0xc
mov byte [ebp - 4], 9
jmp 0x41d6bb
call dword [sym.imp.OLEAUT32.dll_SafeArrayGetDim]
push edi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
lea ecx, [ebp - 0x34]
call fcn.0041394e
lea ecx, [ebp - 0x3c]
call fcn.0041394e
or dword [ebp - 4], 0xffffffff
mov ecx, ebx
call fcn.0041a81e
call fcn.0045cd6e
ret 8
mov esi, dword [ebp + 0xc]
mov ecx, esi
call fcn.00418bd8
mov edi, dword [esi + 4]
mov ecx, esi
call fcn.00418bd8
lea ecx, [ebp - 0x44]
mov esi, eax
call fcn.00418bd8
lea ecx, [edi*2 + 2]
push ecx
push esi
push 1
push 0
push eax
push dword [ebx + 8]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x41d7f5
push 0
push 0xffffffffffffffff
push str.error_setting_key
lea ecx, [ebp - 0x5c]
call fcn.00417813
lea eax, [ebp - 0x44]
mov byte [ebp - 4], 0xa
push eax
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x94]
push eax
call fcn.00413e39
add esp, 0xc
mov byte [ebp - 4], 0xb
jmp 0x41d6bb