Function at 0x434770
Capabilities:
Delete registry key
Delete registry value
Set registry value

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4495a2
push eax
mov dword fs:[0], esp
sub esp, 0x20
push ebx
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 4]
test eax, eax
jne 0x4347aa
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
add esp, 0x2c
ret 8
mov ebx, dword [esp + 0x3c]
test ebx, ebx
jne 0x434893
lea edi, [esi + 8]
lea eax, [esp + 0x1c]
push edi
push eax
call fcn.0040dab0
lea ecx, [esp + 0x14]
push edi
push ecx
mov dword [esp + 0x44], ebx
call fcn.004061a0
add esp, 0x10
mov edi, dword [esp + 0x10]
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
test edi, edi
mov byte [esp + 0x34], 1
jne 0x4347eb
mov edi, ecx
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x4347f5
mov eax, ecx
mov ecx, dword [esi]
test eax, eax
jne 0x4347ff
xor bl, bl
jmp 0x434858
test edi, edi
jne 0x434807
xor bl, bl
jmp 0x434858
push 0
push 0x2001f
push eax
push ecx
mov ecx, esi
call fcn.004349a0
test al, al
jne 0x43481f
xor bl, bl
jmp 0x434858
mov edx, dword [esi + 4]
push edi
push edx
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
test eax, eax
je 0x434856
mov eax, dword [sym.imp.MSVCP60.dll_class_std::basic_ostream_unsigned_short_int__struct_std::char_traits_unsigned_short_int___std::wcerr]
mov esi, dword [sym.imp.MSVCP60.dll_class_std::basic_ostream_unsigned_short_int__struct_std::char_traits_unsigned_short_int______cdecl_std::operator___class_std::basic_ostream_unsigned_short_int__struct_std::char_traits_unsigned_short_int_____unsigned_short_int_const__]
push edi
push str.delete_key_error
push eax
call esi
add esp, 8
push eax
call esi
push eax
call dword [sym.imp.MSVCP60.dll_class_std::basic_ostream_unsigned_short_int__struct_std::char_traits_unsigned_short_int______cdecl_std::endl_class_std::basic_ostream_unsigned_short_int__struct_std::char_traits_unsigned_short_int____]
add esp, 0xc
xor bl, bl
jmp 0x434858
mov bl, 1
push 1
lea ecx, [esp + 0x10]
mov byte [esp + 0x38], 0
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
push 1
lea ecx, [esp + 0x20]
mov dword [esp + 0x38], 0xffffffff
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
pop edi
mov al, bl
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
add esp, 0x2c
ret 8
mov edi, dword [esp + 0x40]
test edi, edi
jne 0x434913
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x4348a7
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
mov ecx, dword [esi]
test eax, eax
jne 0x4348c3
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
add esp, 0x2c
ret 8
push 0
push 0x2001f
push eax
push ecx
mov ecx, esi
call fcn.004349a0
test al, al
jne 0x4348eb
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
add esp, 0x2c
ret 8
mov ecx, dword [esi + 4]
push ebx
push ecx
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
test eax, eax
je 0x434986
mov edx, dword [sym.imp.MSVCP60.dll_class_std::basic_ostream_unsigned_short_int__struct_std::char_traits_unsigned_short_int___std::wcerr]
mov esi, dword [sym.imp.MSVCP60.dll_class_std::basic_ostream_unsigned_short_int__struct_std::char_traits_unsigned_short_int______cdecl_std::operator___class_std::basic_ostream_unsigned_short_int__struct_std::char_traits_unsigned_short_int_____unsigned_short_int_const__]
push ebx
push str.delete_value_error
push edx
jmp 0x43495e
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ecx, dword [esi + 4]
lea eax, [eax + eax + 2]
push eax
push edi
push 1
push 0
push ebx
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x434986
mov edx, dword [sym.imp.MSVCP60.dll_class_std::basic_ostream_unsigned_short_int__struct_std::char_traits_unsigned_short_int___std::wcerr]
push ebx
add esi, 8
push 0x459a7c
push esi
mov esi, dword [sym.imp.MSVCP60.dll_class_std::basic_ostream_unsigned_short_int__struct_std::char_traits_unsigned_short_int______cdecl_std::operator___class_std::basic_ostream_unsigned_short_int__struct_std::char_traits_unsigned_short_int_____unsigned_short_int_const__]
push str.REG_set_error
push edx
call esi
add esp, 8
push eax
call sub.MSVCP60.dll_class_std::basic_ostream_unsigned_short_int__struct_std::char_traits_unsigned_short_int______cdecl_std::operator___class_std::basic_ostream_unsigned_short_int__struct_std::char_traits_unsigned_short_int_____class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const__
add esp, 8
push eax
call esi
add esp, 8
push eax
call esi
push eax
call dword [sym.imp.MSVCP60.dll_class_std::basic_ostream_unsigned_short_int__struct_std::char_traits_unsigned_short_int______cdecl_std::endl_class_std::basic_ostream_unsigned_short_int__struct_std::char_traits_unsigned_short_int____]
add esp, 0xc
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
add esp, 0x2c
ret 8
mov ecx, dword [esp + 0x2c]
pop edi
pop esi
mov al, 1
pop ebx
mov dword fs:[0], ecx
add esp, 0x2c
ret 8