Function at 0x426f50
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x818
mov eax, dword [0x4ae44c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, ecx
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x808], eax
xor eax, eax
push edi
mov dword [ebp - 0x818], ecx
mov dword [ebp - 0x814], eax
mov dword [ebp - 0x810], eax
call fcn.0040bff0
mov edx, dword [ebp - 0x818]
mov ecx, dword [ebp - 0x808]
add esp, 4
push 0x4859cc
mov esi, dword [esi + 0x194]
mov dword [ebp - 0x80c], eax
mov eax, dword [edx]
mov edx, dword [ecx]
mov ecx, dword [edi]
push eax
mov eax, dword [ebx]
push str.Value:_t_t_
push str.__r_n_t_t_t_t
push edx
push str.ValueName:_t_
push str.__r_n_t_t_t_t
push eax
push str.Key:_t_t_
push str.__r_n_t_t_t_t
push ecx
push str.Class:_t_t_
push str._r_n_t_t_t_t
neg esi
sbb esi, esi
push str.AddRegistryKey:_Begin:
push str.ssssssssssssss
and esi, 0x100
call fcn.00459000
push eax
call fcn.0045a050
mov edx, dword [edi]
add esp, 0x40
push 0x4859cc
push edx
push str.About_to_open_registry_key_in_class__
push 0x484c3c
call fcn.00459000
push eax
call fcn.0045a050
mov ecx, dword [ebp - 0x80c]
add esp, 0x14
lea eax, [ebp - 0x814]
push eax
or esi, 0x2001f
push esi
push 0
push 0
push ecx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov edi, eax
test edi, edi
jne 0x427210
mov edx, dword [ebx]
push 0x4859cc
push edx
push str.About_to_create_registry_key__
push 0x484c3c
call fcn.00459000
push eax
call fcn.0045a050
add esp, 0x14
lea eax, [ebp - 0x80c]
push eax
lea ecx, [ebp - 0x810]
push ecx
push edi
push esi
push edi
push edi
push edi
mov ecx, ebx
mov dword [ebp - 0x80c], edi
call dword [sym.imp.mfc100u.dll_]
mov edx, dword [ebp - 0x814]
push eax
push edx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov edi, eax
test edi, edi
jne 0x427210
mov eax, dword [ebp - 0x80c]
cmp eax, 1
jne 0x4270c6
mov eax, dword [ebx]
push 0x4859cc
push eax
push str.Registry_key_was_created_successfully__
jmp 0x4270d8
cmp eax, 2
jne 0x4270eb
mov ecx, dword [ebx]
push 0x4859cc
push ecx
push str.Registry_key_already_existed__
push 0x484c3c
call fcn.00459000
push eax
call fcn.0045a050
add esp, 0x14
mov esi, dword [ebp - 0x818]
mov edx, dword [esi]
mov edi, dword [ebp - 0x808]
mov eax, dword [edi]
push 0x4859cc
push edx
push str.__to__
push eax
push str.About_to_set_registry_key_value__
push 0x484eac
call fcn.00459000
push eax
call fcn.0045a050
add esp, 0x1c
cmp byte [ebp + 0x18], 0
je 0x427182
push 0x48a564
push esi
call fcn.004250f0
add esp, 8
test al, al
je 0x427151
mov ecx, esi
call dword [sym.imp.mfc100u.dll_]
push eax
call dword [sym.imp.MSVCR100.dll__wtoi]
add esp, 4
mov dword [ebp - 0x808], eax
jmp 0x42715b
mov dword [ebp - 0x808], 0
push 4
lea ecx, [ebp - 0x808]
push ecx
push 4
push 0
mov ecx, edi
call dword [sym.imp.mfc100u.dll_]
mov edx, dword [ebp - 0x810]
push eax
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov edi, eax
jmp 0x4271f4
mov ecx, esi
call dword [sym.imp.mfc100u.dll_ATL::CSimpleStringT_wchar_t_1_::GetLength]
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.mfc100u.dll_new__
add esp, 4
mov ecx, esi
mov ebx, eax
call dword [sym.imp.mfc100u.dll_]
mov edx, ebx
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4271b2
mov ecx, esi
call dword [sym.imp.mfc100u.dll_ATL::CSimpleStringT_wchar_t_1_::GetLength]
lea eax, [eax + eax + 2]
push eax
push ebx
push 1
push 0
mov ecx, edi
call dword [sym.imp.mfc100u.dll_]
mov ecx, dword [ebp - 0x810]
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push ebx
mov edi, eax
call sub.mfc100u.dll_delete__
add esp, 4
test edi, edi
jne 0x427210
push str.Registry_key_value_was_created_and_set_r_n
push 0x484d84
call fcn.00459000
push eax
call fcn.0045a050
add esp, 0xc
mov eax, dword [ebp - 0x810]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
je 0x427223
push eax
call esi
mov eax, dword [ebp - 0x814]
test eax, eax
je 0x427230
push eax
call esi
test edi, edi
je 0x4272c2
jle 0x427248
and edi, 0xffff
or edi, 0x80070000
test edi, edi
je 0x4272c2
push 0x800
lea edx, [ebp - 0x804]
push 0
push edx
xor bl, bl
call sub.MSVCR100.dll_memset
add esp, 0xc
push 0
push 0x800
lea eax, [ebp - 0x804]
push eax
push 0x400
push edi
push 0
push 0x1000
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
push 0x483b88
lea ecx, [ebp - 0x804]
push ecx
push 0x485024
push edi
push str.Error_while_performing_action_on_registry_key:
push 0x489638
call fcn.00459000
push eax
call fcn.0045a050
add esp, 0x1c
pop edi
pop esi
mov al, bl
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046b17c
mov esp, ebp
pop ebp
ret 0x14
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
mov al, 1
pop ebx
call fcn.0046b17c
mov esp, ebp
pop ebp
ret 0x14