Function at 0x401c57
Capabilities:
Delete registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x450
mov edx, dword [str.CLSID23170F69_40C1_278A_1000_000100020000InprocServer32]
push ebx
push esi
lea eax, [ebp - 0x248]
push edi
mov esi, 0x80000000
push eax
push 0
mov ecx, esi
call fcn.00401e8a
test eax, eax
mov ebx, 0x403140
je 0x401d2f
push str.7_zip.dll
mov edx, 0x404f28
lea ecx, [ebp - 0x248]
call fcn.00401f8b
test eax, eax
je 0x401d2f
mov edx, dword [str.CLSID23170F69_40C1_278A_1000_000100020000InprocServer32]
mov ecx, esi
call fcn.00401ece
test eax, eax
jne 0x401cc6
mov edx, dword [str.CLSID23170F69_40C1_278A_1000_000100020000]
mov ecx, esi
call fcn.00401ece
mov edi, 0x40312c
mov edx, dword [edi]
lea ecx, [ebp - 0x450]
call fcn.0040151a
mov edx, str.7_Zip
lea ecx, [ebp - 0x450]
call fcn.0040152d
lea edx, [ebp - 0x450]
mov ecx, esi
call fcn.00401ece
add edi, 4
cmp edi, ebx
jb 0x401ccb
mov edx, dword [str.SoftwareMicrosoftWindowsCurrentVersionShell_ExtensionsApproved]
and dword [ebp - 4], 0
lea eax, [ebp - 4]
mov ecx, 0x80000002
push eax
call fcn.00401a0b
test eax, eax
jne 0x401d2f
push str.23170F69_40C1_278A_1000_000100020000
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, dword [str.CLSID23170F69_40C1_278A_1000_000100020000InprocServer32]
lea eax, [ebp - 0x248]
push eax
push 0
mov ecx, esi
call fcn.00401ee9
test eax, eax
je 0x401df1
push str.7_zip32.dll
mov edx, 0x404f28
lea ecx, [ebp - 0x248]
call fcn.00401f8b
test eax, eax
je 0x401df1
mov edx, dword [str.CLSID23170F69_40C1_278A_1000_000100020000InprocServer32]
mov ecx, esi
call fcn.00401f43
test eax, eax
jne 0x401d88
mov edx, dword [str.CLSID23170F69_40C1_278A_1000_000100020000]
mov ecx, esi
call fcn.00401f43
mov edi, 0x40312c
mov edx, dword [edi]
lea ecx, [ebp - 0x450]
call fcn.0040151a
mov edx, str.7_Zip
lea ecx, [ebp - 0x450]
call fcn.0040152d
lea edx, [ebp - 0x450]
mov ecx, esi
call fcn.00401f43
add edi, 4
cmp edi, ebx
jb 0x401d8d
mov edx, dword [str.SoftwareMicrosoftWindowsCurrentVersionShell_ExtensionsApproved]
and dword [ebp - 4], 0
lea eax, [ebp - 4]
mov ecx, 0x80000002
push eax
call fcn.00401f2d
test eax, eax
jne 0x401df1
push str.23170F69_40C1_278A_1000_000100020000
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, dword [str.SoftwareMicrosoftWindowsCurrentVersionApp_Paths7zFM.exe]
lea eax, [ebp - 0x248]
mov esi, 0x80000002
push eax
push 0
mov ecx, esi
call fcn.00401e8a
test eax, eax
je 0x401e36
push str.7zFM.exe
mov edx, 0x404f28
lea ecx, [ebp - 0x248]
call fcn.00401f8b
test eax, eax
je 0x401e36
mov edx, dword [str.SoftwareMicrosoftWindowsCurrentVersionApp_Paths7zFM.exe]
mov ecx, esi
call fcn.00401ece
mov edx, dword [str.SoftwareMicrosoftWindowsCurrentVersionUninstall7_Zip]
lea eax, [ebp - 0x248]
push eax
push str.UninstallString
mov ecx, esi
call fcn.00401e8a
test eax, eax
je 0x401e85
lea ecx, [ebp - 0x248]
call fcn.00401f4c
mov edx, 0x404f28
lea ecx, [ebp - 0x248]
push dword [0x403128]
call fcn.00401f8b
test eax, eax
je 0x401e85
mov edx, dword [str.SoftwareMicrosoftWindowsCurrentVersionUninstall7_Zip]
mov ecx, esi
call fcn.00401ece
pop edi
pop esi
pop ebx
leave
ret