Function at 0x41ca20
Capabilities:
Delete registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x450a2a
mov eax, dword fs:[0]
push eax
sub esp, 0x16c
mov eax, dword [0x468738]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor edi, edi
mov dword [ebp - 0xbc], edi
mov esi, ecx
mov dword [ebp - 0xc4], edi
mov dword [ebp - 4], edi
mov dword [ebp - 0x170], 0x456580
mov dword [ebp - 0x160], 0x456588
mov dword [ebp - method.std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__.virtual_0], vtable.std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__.0
lea eax, [ebp - 0x158]
push eax
lea ecx, [ebp - 0x170]
mov byte [ebp - 4], 1
push ecx
mov dword [ebp - 0xbc], 1
call fcn.00403390
mov dword [ebp - 4], 2
mov edx, dword [ebp - 0x170]
mov eax, dword [edx + 4]
lea ecx, [ebp - 0x158]
push ecx
mov dword [ebp + eax - method.std::basic_stringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.virtual_0], vtable.std::basic_stringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
call fcn.004035a0
mov dword [ebp - method.std::basic_stringbuf_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.virtual_0], vtable.std::basic_stringbuf_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
mov dword [ebp - 0x11c], edi
mov dword [ebp - 0x118], edi
lea edx, [ebp - 0x2c]
push edx
mov edx, 0x458d28
mov ecx, esi
mov byte [ebp - 4], 4
call fcn.00410e40
lea eax, [ebp - 0x64]
push eax
mov edx, 0x458d34
mov ecx, esi
mov byte [ebp - 4], 5
call fcn.00410e40
lea ecx, [ebp - 0x48]
push ecx
mov edx, str.path
mov ecx, esi
mov byte [ebp - 4], 6
call fcn.00410e40
lea edx, [ebp - 0x9c]
push edx
mov edx, 0x458d58
mov ecx, esi
mov byte [ebp - 4], 7
call fcn.00410e40
lea eax, [ebp - 0x80]
push eax
mov edx, 0x458a9c
mov ecx, esi
mov byte [ebp - 4], 8
call fcn.00410e40
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x8c]
push 0x456a7c
mov edi, 2
lea ecx, [ebp - 0x9c]
call fcn.00404ab0
mov esi, dword [esi + 4]
mov ebx, eax
push esi
neg ebx
push str.Registry
sbb ebx, ebx
inc ebx
push str.__s____d_
mov dword [ebp - 0xc8], ebx
push 0x4699dc
xor eax, eax
call fcn.0042c820
inc dword [0x4699fc]
add esp, 0x10
lea ecx, [ebp - 0x64]
push ecx
push ecx
push 0x4566d8
push ecx
lea edx, [ebp - 0x48]
push edx
push ecx
push 0x4566d8
push ecx
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x160]
push ecx
call fcn.004043a0
add esp, 0xc
push eax
call fcn.00404630
add esp, 0xc
push eax
call fcn.004043a0
add esp, 0xc
push eax
call fcn.00404630
add esp, 0xc
push eax
call fcn.004043a0
add esp, 8
lea ecx, [ebp - 0xb8]
lea eax, [ebp - 0x170]
call fcn.004027b0
mov esi, 8
mov byte [ebp - 4], 0xa
cmp dword [eax + 0x14], esi
jb 0x41cc01
mov eax, dword [eax]
push eax
push str.Deleting___s_
push 0x4699dc
xor eax, eax
call fcn.0042c820
add esp, 0xc
mov byte [ebp - 4], 9
cmp dword [ebp - 0xa4], esi
jb 0x41cc31
mov edx, dword [ebp - 0xb8]
push edx
call fcn.00438b4b
add esp, 4
mov eax, dword [ebp - 0x1c]
push 0x458d68
mov edi, 4
lea ecx, [ebp - 0x2c]
call fcn.00404ab0
test eax, eax
jne 0x41cc56
mov dword [ebp - 0xbc], reloc.OLEAUT32.dll_SysReAllocString
jmp 0x41cc98
mov eax, dword [ebp - 0x1c]
push str.HKCU
lea ecx, [ebp - 0x2c]
call fcn.00404ab0
test eax, eax
jne 0x41cc76
mov dword [ebp - 0xbc], SysStringLen
jmp 0x41cc98
mov eax, dword [ebp - 0x1c]
push str.HKCR
lea ecx, [ebp - 0x2c]
call fcn.00404ab0
test eax, eax
jne 0x41ced3
mov dword [ebp - 0xbc], SysStringLen
lea ecx, [ebp - 0xb8]
lea eax, [ebp - 0x170]
call fcn.004027b0
mov byte [ebp - 4], 0xb
cmp dword [eax + 0x14], esi
jb 0x41ccb4
mov eax, dword [eax]
mov edi, eax
mov ecx, 0xbbf
call fcn.00434da0
mov byte [ebp - 4], 9
cmp dword [ebp - 0xa4], esi
jb 0x41ccdb
mov eax, dword [ebp - 0xb8]
push eax
call fcn.00438b4b
add esp, 4
cmp dword [ebp - 0x54], 0
jne 0x41cd21
mov eax, dword [ebp - 0x70]
push 0x458e60
mov edi, 3
lea ecx, [ebp - 0x80]
call fcn.00404ab0
mov ecx, dword [ebp - 0x48]
test eax, eax
sete al
cmp dword [ebp - 0x34], esi
jae 0x41cd06
lea ecx, [ebp - 0x48]
movzx edx, al
push edx
mov edx, dword [ebp - 0xbc]
mov eax, ebx
call fcn.0042ce30
add esp, 4
mov edi, eax
jmp 0x41cdc1
cmp dword [ebp - 0x34], esi
mov esi, dword [ebp - 0x48]
jae 0x41cd2c
lea esi, [ebp - 0x48]
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x41cd3d
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0xc8]
lea ebx, [ebp - 0xc0]
mov dword [ebp - 0xc4], 0
call fcn.0042ca30
test eax, eax
jne 0x41cd7f
mov eax, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xbc]
lea ecx, [ebp - 0xc4]
push ecx
or eax, 0xf003f
push eax
push 0
push esi
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov edi, eax
test eax, eax
jne 0x41cdc9
cmp dword [ebp - 0x50], 8
mov eax, dword [ebp - 0x64]
jae 0x41cd91
lea eax, [ebp - 0x64]
push eax
mov eax, dword [ebp - 0xc4]
push eax
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov edi, eax
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x41cdb2
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0xc4], 0
mov esi, 8
xor ebx, ebx
cmp edi, ebx
je 0x41ce26
jmp 0x41cdd0
mov esi, 8
xor ebx, ebx
cmp edi, 2
je 0x41ce26
cmp edi, 3
je 0x41ce26
lea ecx, [ebp - 0xb8]
lea eax, [ebp - 0x170]
call fcn.004027b0
mov byte [ebp - 4], 0xc
cmp dword [eax + 0x14], esi
jb 0x41cdf6
mov eax, dword [eax]
push eax
push edi
push str.Error_0x_X_deleting__s
push 0x4699dc
mov eax, 2
call fcn.0042c820
add esp, 0x10
cmp dword [ebp - 0xa4], esi
jb 0x41ce26
mov ecx, dword [ebp - 0xb8]
push ecx
call fcn.00438b4b
add esp, 4
dec dword [0x4699fc]
cmp dword [ebp - 0x6c], esi
jb 0x41ce3d
mov edx, dword [ebp - 0x80]
push edx
call fcn.00438b4b
add esp, 4
xor eax, eax
mov edi, 7
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x70], ebx
mov word [ebp - 0x80], ax
cmp dword [ebp - 0x88], esi
jb 0x41ce65
mov ecx, dword [ebp - 0x9c]
push ecx
call fcn.00438b4b
add esp, 4
xor edx, edx
mov dword [ebp - 0x88], edi
mov dword [ebp - 0x8c], ebx
mov word [ebp - 0x9c], dx
cmp dword [ebp - 0x34], esi
jb 0x41ce8b
mov eax, dword [ebp - 0x48]
push eax
call fcn.00438b4b
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x38], ebx
mov word [ebp - 0x48], cx
cmp dword [ebp - 0x50], esi
jb 0x41cea8
mov edx, dword [ebp - 0x64]
push edx
call fcn.00438b4b
add esp, 4
xor eax, eax
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x54], ebx
mov word [ebp - 0x64], ax
cmp dword [ebp - 0x18], esi
jb 0x41cec5
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.00438b4b
add esp, 4
xor edx, edx
mov word [ebp - 0x2c], dx
mov byte [ebp - 4], dl
jmp 0x41cf94
push str.Uninstall_key_format_error
push 0x4699dc
mov eax, 2
call fcn.0042c820
dec dword [0x4699fc]
add esp, 8
cmp dword [ebp - 0x6c], esi
jb 0x41cf01
mov eax, dword [ebp - 0x80]
push eax
call fcn.00438b4b
add esp, 4
xor ebx, ebx
xor ecx, ecx
mov edi, 7
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x70], ebx
mov word [ebp - 0x80], cx
cmp dword [ebp - 0x88], esi
jb 0x41cf2b
mov edx, dword [ebp - 0x9c]
push edx
call fcn.00438b4b
add esp, 4
xor eax, eax
mov dword [ebp - 0x88], edi
mov dword [ebp - 0x8c], ebx
mov word [ebp - 0x9c], ax
cmp dword [ebp - 0x34], esi
jb 0x41cf51
mov ecx, dword [ebp - 0x48]
push ecx
call fcn.00438b4b
add esp, 4
xor edx, edx
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x38], ebx
mov word [ebp - 0x48], dx
cmp dword [ebp - 0x50], esi
jb 0x41cf6e
mov eax, dword [ebp - 0x64]
push eax
call fcn.00438b4b
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x54], ebx
mov word [ebp - 0x64], cx
cmp dword [ebp - 0x18], esi
jb 0x41cf8b
mov edx, dword [ebp - 0x2c]
push edx
call fcn.00438b4b
add esp, 4
xor eax, eax
mov word [ebp - 0x2c], ax
mov byte [ebp - 4], al
lea ecx, [ebp - 0x170]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], ebx
call fcn.00401bf0
mov eax, dword [ebp - 0xc4]
cmp eax, ebx
je 0x41cfb6
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004377c1
mov esp, ebp
pop ebp
ret