Function at 0x412820
Capabilities:
Delete registry key

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x452d88
mov eax, dword fs:[0]
push eax
sub esp, 0x70
mov eax, dword [0x469738]
xor eax, esp
mov dword [esp + 0x68], eax
push ebx
push esi
push edi
mov eax, dword [0x469738]
xor eax, esp
push eax
lea eax, [esp + 0x80]
mov dword fs:[0], eax
mov edi, ecx
mov ebx, edx
push 0x45747c
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], ebx
mov byte [esp + 0x17], 0
call fcn.00402130
test eax, eax
setne al
mov byte [edi + 0x40], al
mov eax, ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x412882
sub eax, edx
sar eax, 1
push eax
lea esi, [edi + 0x1c]
mov eax, ebx
call fcn.004065b0
cmp byte [edi + 0x40], 0
jne 0x4128b4
cmp byte [edi + 0x42], 0
je 0x4128b4
push ebx
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHDeleteKeyW]
push str.Filtering_components_per_group
push str.__s_
push 0x46a9d4
xor eax, eax
call fcn.0042d150
inc dword [0x46a9f4]
mov eax, dword [edi]
mov ecx, dword [eax]
add esp, 0xc
mov dword [esp + 0x14], ecx
cmp ecx, eax
je 0x412a4d
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x40]
push edx
add ecx, 8
mov edx, 0x459538
call fcn.00410f80
mov dword [esp + 0x88], 0
mov edx, dword [esp + 0x50]
test edx, edx
je 0x412a18
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x40]
mov edi, ecx
cmp eax, 8
jae 0x4129a5
lea edi, [esp + 0x40]
mov ebx, edi
lea ebx, [ebx + edx*2]
mov esi, ecx
cmp eax, 8
jae 0x412937
lea esi, [esp + 0x40]
cmp esi, ebx
je 0x41295f
sub edi, esi
lea ecx, [ecx]
movzx eax, word [esi]
push eax
call fcn.0043cba5
mov word [edi + esi], ax
add esi, 2
add esp, 4
cmp esi, ebx
jne 0x412940
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x40]
cmp eax, 8
jae 0x412968
lea ecx, [esp + 0x40]
mov edx, dword [esp + 0x18]
add edx, 0x44
push edx
call fcn.004113c0
test al, al
jne 0x412a18
cmp dword [esp + 0x54], 8
mov esi, dword [esp + 0x40]
jae 0x41298c
lea esi, [esp + 0x40]
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 8]
dec ecx
mov eax, 0x45934c
cmp ecx, 0xb
ja case.default.0x41299e
jmp dword [ecx*4 + 0x412d80]
mov ebx, ecx
jmp 0x412929
mov eax, str.File
jmp case.default.0x41299e
mov eax, str.Folder
jmp case.default.0x41299e
mov eax, str.Shortcut
jmp case.default.0x41299e
mov eax, str.Registry
jmp case.default.0x41299e
mov eax, str.Service
jmp case.default.0x41299e
mov eax, str.Process
jmp case.default.0x41299e
mov eax, str.RegisterCOM
jmp case.default.0x41299e
mov eax, 0x459360
jmp case.default.0x41299e
mov eax, 0x459374
jmp case.default.0x41299e
mov eax, str.Pause
jmp case.default.0x41299e
mov eax, str.EnvVar
jmp case.default.0x41299e
mov eax, str.Custom
mov ecx, dword [edx + 0x28]
push esi
push ecx
push eax
push str._s_at_line__d._Group___s
push 0x46a9d4
xor eax, eax
call fcn.0042d150
add esp, 0x14
mov edx, dword [esp + 0x14]
mov esi, dword [edx]
mov dword [esp + 0x88], 0xffffffff
cmp dword [esp + 0x54], 8
mov dword [esp + 0x14], esi
jb 0x412a41
mov eax, dword [esp + 0x40]
push eax
call fcn.004396db
add esp, 4
mov ecx, dword [esp + 0x18]
cmp esi, dword [ecx]
jne 0x4128e3
mov esi, dword [esp + 0x18]
dec dword [0x46a9f4]
mov ecx, esi
call fcn.004124c0
push str.Sorting_action_list_for_installation
push 0x46a9d4
xor eax, eax
call fcn.0042d150
mov edx, dword [esp + 0x28]
add esp, 8
push edx
mov ecx, esi
call fcn.004218d0
push str.dump
call fcn.00402130
test eax, eax
je 0x412abe
mov ecx, str.dump
call fcn.00402200
push eax
push str.Dumping_action_list_to__s
push 0x46a9d4
xor eax, eax
call fcn.0042d150
add esp, 0xc
mov ecx, str.dump
call fcn.00402200
mov edx, eax
mov ecx, esi
call fcn.0041f100
mov eax, dword [esi]
mov ecx, dword [eax]
mov dword [esp + 0x14], ecx
cmp ecx, eax
je 0x412d51
mov edi, edi
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x24]
add ecx, 8
push eax
mov edx, 0x459538
call fcn.00410f80
mov dword [esp + 0x88], 1
mov edx, dword [esp + 0x34]
test edx, edx
je 0x412b83
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x24]
cmp ecx, 8
jb 0x412b10
mov dword [esp + 0x1c], edi
jmp 0x412b18
lea eax, [esp + 0x24]
mov dword [esp + 0x1c], eax
mov eax, edi
cmp ecx, 8
jae 0x412b23
lea eax, [esp + 0x24]
lea ebx, [eax + edx*2]
mov esi, edi
cmp ecx, 8
jae 0x412b31
lea esi, [esp + 0x24]
cmp esi, ebx
je 0x412b5f
mov edi, dword [esp + 0x1c]
sub edi, esi
jmp 0x412b40
movzx ecx, word [esi]
push ecx
call fcn.0043cba5
mov word [esi + edi], ax
add esi, 2
add esp, 4
cmp esi, ebx
jne 0x412b40
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x24]
cmp ecx, 8
mov ecx, edi
jae 0x412b6a
lea ecx, [esp + 0x24]
mov edx, dword [esp + 0x18]
add edx, 0x44
push edx
call fcn.004113c0
test al, al
jne 0x412b83
mov eax, dword [esp + 0x14]
mov byte [eax + 0x20], 1
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x20], 0
mov edi, dword [esp + 0x18]
jne 0x412cd0
lea edx, [esp + 0x5c]
push edx
mov edx, 0x4595d8
add ecx, 8
mov dword [edi + 0x3c], 0
call fcn.00410f80
mov esi, dword [eax + 0x10]
mov ecx, esi
cmp ecx, esi
jae 0x412bb7
mov edx, esi
cmp esi, 6
jb 0x412bc3
mov edx, 6
cmp dword [eax + 0x14], 8
jb 0x412bcd
mov ecx, dword [eax]
jmp 0x412bcf
mov ecx, eax
mov eax, str.ignore
test edx, edx
je 0x412bf3
mov bx, word [ecx]
cmp bx, word [eax]
jne 0x412beb
add ecx, 2
add eax, 2
dec edx
jne 0x412bd8
jmp 0x412bf3
sbb eax, eax
and eax, 0xfffffffe
inc eax
jne 0x412c05
cmp esi, 6
jae 0x412bfd
or eax, 0xffffffff
jmp 0x412c05
xor eax, eax
cmp esi, 6
setne al
test eax, eax
sete al
mov byte [esp + 0x88], 1
cmp dword [esp + 0x70], 8
mov byte [edi + 0x41], al
jb 0x412c29
mov edx, dword [esp + 0x5c]
push edx
call fcn.004396db
add esp, 4
mov ecx, dword [esp + 0x14]
xor eax, eax
add ecx, 8
mov word [esp + 0x5c], ax
mov eax, dword [ecx]
dec eax
mov ebx, 7
mov dword [esp + 0x70], ebx
mov dword [esp + 0x6c], 0
cmp eax, 0xb
ja case.default.0x412c50
jmp dword [eax*4 + 0x412db0]
push edi
call fcn.004138d0
jmp 0x412cb9
push edi
call fcn.00414340
jmp 0x412cb9
mov edx, ecx
mov ecx, edi
call fcn.00414dd0
jmp 0x412cb9
push edi
call fcn.00415700
jmp 0x412cb9
push edi
call fcn.00416740
jmp 0x412cb9
push edi
call fcn.00417320
jmp 0x412cb9
push edi
call fcn.004182a0
jmp 0x412cb9
push edi
call fcn.00418810
jmp 0x412cb9
push edi
call fcn.004195c0
jmp 0x412cb9
mov esi, ecx
call fcn.0041a8a0
jmp 0x412cb9
push edi
call fcn.00419da0
jmp 0x412cb9
push edi
call fcn.0041a200
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
jne 0x412cca
cmp byte [edi + 0x41], 0
je 0x412d1b
mov byte [edi + 0x41], 0
jmp 0x412cd5
mov ebx, 7
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx]
mov dword [esp + 0x88], 0xffffffff
cmp dword [esp + 0x38], 8
mov dword [esp + 0x14], esi
jb 0x412cfe
mov edx, dword [esp + 0x24]
push edx
call fcn.004396db
add esp, 4
xor eax, eax
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], 0
mov word [esp + 0x24], ax
cmp esi, dword [edi]
jne 0x412ad0
jmp 0x412d4d
mov dword [esp + 0x88], 0xffffffff
cmp dword [esp + 0x38], 8
jb 0x412d3a
mov ecx, dword [esp + 0x24]
push ecx
call fcn.004396db
add esp, 4
xor edx, edx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], 0
mov word [esp + 0x24], dx
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
push eax
mov ecx, esi
call fcn.00412de0
mov ecx, dword [esp + 0x80]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.00438351
mov esp, ebp
pop ebp
ret