Function at 0x41ca10
Capabilities:
Delete registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x450a3a
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.00410e30
lea eax, [ebp - 0x64]
push eax
mov edx, 0x458d34
mov ecx, esi
mov byte [ebp - 4], 5
call fcn.00410e30
lea ecx, [ebp - 0x48]
push ecx
mov edx, str.path
mov ecx, esi
mov byte [ebp - 4], 6
call fcn.00410e30
lea edx, [ebp - 0x9c]
push edx
mov edx, 0x458d58
mov ecx, esi
mov byte [ebp - 4], 7
call fcn.00410e30
lea eax, [ebp - 0x80]
push eax
mov edx, 0x458a9c
mov ecx, esi
mov byte [ebp - 4], 8
call fcn.00410e30
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 0x41cbf1
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 0x41cc21
mov edx, dword [ebp - 0xb8]
push edx
call fcn.00438b5b
add esp, 4
mov eax, dword [ebp - 0x1c]
push 0x458d68
mov edi, 4
lea ecx, [ebp - 0x2c]
call fcn.00404ab0
test eax, eax
jne 0x41cc46
mov dword [ebp - 0xbc], reloc.OLEAUT32.dll_SysReAllocString
jmp 0x41cc88
mov eax, dword [ebp - 0x1c]
push str.HKCU
lea ecx, [ebp - 0x2c]
call fcn.00404ab0
test eax, eax
jne 0x41cc66
mov dword [ebp - 0xbc], SysStringLen
jmp 0x41cc88
mov eax, dword [ebp - 0x1c]
push str.HKCR
lea ecx, [ebp - 0x2c]
call fcn.00404ab0
test eax, eax
jne 0x41cec3
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 0x41cca4
mov eax, dword [eax]
mov edi, eax
mov ecx, 0xbbf
call fcn.00434db0
mov byte [ebp - 4], 9
cmp dword [ebp - 0xa4], esi
jb 0x41cccb
mov eax, dword [ebp - 0xb8]
push eax
call fcn.00438b5b
add esp, 4
cmp dword [ebp - 0x54], 0
jne 0x41cd11
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 0x41ccf6
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 0x41cdb1
cmp dword [ebp - 0x34], esi
mov esi, dword [ebp - 0x48]
jae 0x41cd1c
lea esi, [ebp - 0x48]
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x41cd2d
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 0x41cd6f
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 0x41cdb9
cmp dword [ebp - 0x50], 8
mov eax, dword [ebp - 0x64]
jae 0x41cd81
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 0x41cda2
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0xc4], 0
mov esi, 8
xor ebx, ebx
cmp edi, ebx
je 0x41ce16
jmp 0x41cdc0
mov esi, 8
xor ebx, ebx
cmp edi, 2
je 0x41ce16
cmp edi, 3
je 0x41ce16
lea ecx, [ebp - 0xb8]
lea eax, [ebp - 0x170]
call fcn.004027b0
mov byte [ebp - 4], 0xc
cmp dword [eax + 0x14], esi
jb 0x41cde6
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 0x41ce16
mov ecx, dword [ebp - 0xb8]
push ecx
call fcn.00438b5b
add esp, 4
dec dword [0x4699fc]
cmp dword [ebp - 0x6c], esi
jb 0x41ce2d
mov edx, dword [ebp - 0x80]
push edx
call fcn.00438b5b
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 0x41ce55
mov ecx, dword [ebp - 0x9c]
push ecx
call fcn.00438b5b
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 0x41ce7b
mov eax, dword [ebp - 0x48]
push eax
call fcn.00438b5b
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 0x41ce98
mov edx, dword [ebp - 0x64]
push edx
call fcn.00438b5b
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 0x41ceb5
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.00438b5b
add esp, 4
xor edx, edx
mov word [ebp - 0x2c], dx
mov byte [ebp - 4], dl
jmp 0x41cf84
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 0x41cef1
mov eax, dword [ebp - 0x80]
push eax
call fcn.00438b5b
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 0x41cf1b
mov edx, dword [ebp - 0x9c]
push edx
call fcn.00438b5b
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 0x41cf41
mov ecx, dword [ebp - 0x48]
push ecx
call fcn.00438b5b
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 0x41cf5e
mov eax, dword [ebp - 0x64]
push eax
call fcn.00438b5b
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 0x41cf7b
mov edx, dword [ebp - 0x2c]
push edx
call fcn.00438b5b
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 0x41cfa6
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.004377d1
mov esp, ebp
pop ebp
ret