Function at 0x4089b0
Capabilities:
Delete registry value

Disassembly:
sub esp, 0x214
xor eax, eax
push ebx
push ebp
push esi
mov ebx, ecx
push edi
mov ecx, 0x41
lea edi, [esp + 0x1c]
push str.SoftwareSSPrint_
rep stosd dword es:[edi], eax
lea eax, [esp + 0x20]
push 0x416a00
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea edi, [esp + 0x28]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x120]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x1c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebx + 0x86f4]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov ebp, dword [esp + 0x228]
mov esi, str.RcpCntCode
mov eax, ebp
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x408a4d
test cl, cl
je 0x408a49
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x408a4d
add eax, 2
add esi, 2
test cl, cl
jne 0x408a29
xor eax, eax
jmp 0x408a52
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408a8f
mov eax, dword [esp + 0x230]
lea edx, [esp + 0x10]
cmp eax, 0x80000001
mov edi, str.HKCU
je 0x408a72
mov edi, str.HKLM
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, str.SmCntCode
mov eax, ebp
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x408aba
test cl, cl
je 0x408ab6
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x408aba
add eax, 2
add esi, 2
test cl, cl
jne 0x408a96
xor eax, eax
jmp 0x408abf
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408ae7
mov edi, str.HKLM
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x10]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, str.RcpCntCode
mov eax, ebp
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x408b12
test cl, cl
je 0x408b0e
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x408b12
add eax, 2
add esi, 2
test cl, cl
jne 0x408aee
xor eax, eax
jmp 0x408b17
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x408b53
mov esi, str.SmCntCode
mov eax, ebp
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x408b46
test cl, cl
je 0x408b42
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x408b46
add eax, 2
add esi, 2
test cl, cl
jne 0x408b22
xor eax, eax
jmp 0x408b4b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408be6
mov edi, dword [esp + 0x230]
lea eax, [esp + 0x18]
push eax
push 0xf003f
lea ecx, [esp + 0x24]
push 0
push ecx
push edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov esi, eax
test esi, esi
jne 0x408ba1
mov edx, dword [esp + 0x18]
push ebp
push edx
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
test eax, eax
push ebp
je 0x408b95
lea eax, [esp + 0x20]
push eax
push str.Cant_Delete_REG_KEY__s_s_
jmp 0x408bb2
lea ecx, [esp + 0x20]
push ecx
push str.REG_KEY__s_s__is_removed
jmp 0x408bb2
lea edx, [ebx + 0x8460]
lea eax, [esp + 0x10]
push edx
push eax
push str.Cant_open_registry_key_for_multilang__s:_s_
push 0
push ebx
call fcn.004044c0
mov ecx, dword [esp + 0x2c]
add esp, 0x14
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea edx, [esp + 0x1c]
push 0
push edx
push edi
mov ecx, ebx
call fcn.004087b0
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x214
ret 0xc
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x214
ret 0xc