Function at 0x5e7680
Capabilities:
Delete registry key
Delete registry value

Disassembly:
sub esp, 0x220
mov eax, dword [esp + 0x230]
push ebx
push esi
push edi
mov edi, dword [esp + 0x230]
xor ebx, ebx
push edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x20], eax
call fcn.005e7150
mov esi, eax
cmp esi, ebx
jge 0x5e76c8
lea ecx, [esp + 0x10]
call fcn.005e7cd0
pop edi
mov eax, esi
pop esi
pop ebx
add esp, 0x220
ret 0x10
cmp byte [edi], 0x7d
push ebp
je 0x5e7c90
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
push str.Delete
push edi
mov dword [esp + 0x18], 1
call esi
mov ebp, eax
neg ebp
push str.ForceRemove
sbb ebp, ebp
push edi
inc ebp
call esi
test eax, eax
je 0x5e7703
cmp ebp, ebx
je 0x5e7826
mov ecx, dword [esp + 0x1c]
push edi
call fcn.005e7150
mov esi, eax
cmp esi, ebx
jl 0x5e7c90
cmp dword [esp + 0x23c], ebx
je 0x5e7826
mov dword [esp + 0x18], ebx
mov cl, byte [edi]
cmp cl, bl
mov eax, edi
je 0x5e774e
mov esi, dword [sym.imp.USER32.dll_CharNextA]
cmp cl, 0x5c
je 0x5e7746
push eax
call esi
mov cl, byte [eax]
cmp cl, bl
jne 0x5e7736
jmp 0x5e774e
cmp eax, ebx
jne 0x5e7c18
mov esi, 0x851abc
mov ecx, dword [esi]
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x5e7789
add esi, 4
cmp esi, str.TypeLib
jl 0x5e7753
mov edx, dword [esp + 0x238]
push edi
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], edx
call fcn.005e7dd0
xor eax, eax
mov dword [esp + 0x18], eax
jmp 0x5e778d
mov eax, dword [esp + 0x18]
cmp ebp, ebx
je 0x5e781b
mov ebp, dword [esp + 0x1c]
push edi
mov ecx, ebp
call fcn.005e7150
mov esi, eax
cmp esi, ebx
jl 0x5e7c3c
push edi
mov ecx, ebp
call fcn.005e7d40
mov esi, eax
lea ecx, [esp + 0x18]
call fcn.005e7cd0
cmp esi, ebx
jl 0x5e7c90
cmp byte [edi], 0x7b
jne 0x5e780d
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 1
jne 0x5e780d
mov eax, dword [esp + 0x23c]
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
push ebx
push eax
push ecx
push edi
mov ecx, ebp
call fcn.005e7680
mov esi, eax
cmp esi, ebx
jl 0x5e7c90
push edi
mov ecx, ebp
call fcn.005e7150
mov esi, eax
cmp esi, ebx
jl 0x5e7c90
cmp byte [edi], 0x7d
jne 0x5e76d2
jmp 0x5e7c90
cmp eax, ebx
je 0x5e7826
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push str.NoRemove
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x5e784e
mov ecx, dword [esp + 0x1c]
push edi
mov dword [esp + 0x14], ebx
call fcn.005e7150
mov esi, eax
cmp esi, ebx
jl 0x5e7c90
push 0x851b8c
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x5e795c
mov ebp, dword [esp + 0x1c]
lea eax, [esp + 0x12c]
push eax
mov ecx, ebp
call fcn.005e7150
mov esi, eax
cmp esi, ebx
jl 0x5e7c90
push edi
mov ecx, ebp
call fcn.005e7150
mov esi, eax
cmp esi, ebx
jl 0x5e7c90
cmp byte [edi], 0x3d
jne 0x5e7c42
cmp dword [esp + 0x23c], ebx
je 0x5e78d2
mov ecx, dword [esp + 0x238]
push edi
lea edx, [esp + 0x130]
push edx
lea eax, [esp + 0x18]
mov dword [esp + 0x18], ecx
push eax
mov ecx, ebp
call fcn.005e7ef0
mov esi, eax
mov dword [esp + 0x10], ebx
lea ecx, [esp + 0x10]
jmp 0x5e77b9
cmp dword [esp + 0x240], ebx
jne 0x5e794f
cmp dword [esp + 0x10], ebx
je 0x5e794f
mov edx, dword [esp + 0x238]
lea ecx, [esp + 0x10]
push ecx
push 0x20006
push ebx
push ebx
push edx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x24], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp eax, ebx
jne 0x5e7c63
lea ecx, [esp + 0x18]
call fcn.005e7cd0
cmp eax, ebx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], ecx
jne 0x5e7c63
lea eax, [esp + 0x12c]
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
cmp eax, ebx
je 0x5e7940
cmp eax, 2
jne 0x5e7c63
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x5e794f
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push edi
mov ecx, ebp
call fcn.005e7d40
jmp 0x5e7803
mov cl, byte [edi]
cmp cl, bl
mov eax, edi
je 0x5e7988
mov esi, dword [sym.imp.USER32.dll_CharNextA]
lea ebx, [ebx]
cmp cl, 0x5c
je 0x5e7980
push eax
call esi
mov cl, byte [eax]
cmp cl, bl
jne 0x5e7970
jmp 0x5e7988
cmp eax, ebx
jne 0x5e7c21
cmp dword [esp + 0x23c], ebx
je 0x5e7a6e
mov esi, dword [esp + 0x238]
mov ebp, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
lea ecx, [esp + 0x10]
push ecx
push 0x2001f
push ebx
push edi
push esi
mov dword [esp + 0x24], ebx
call ebp
cmp eax, ebx
jne 0x5e79ce
lea ecx, [esp + 0x14]
call fcn.005e7cd0
cmp eax, ebx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x14], edx
je 0x5e7a3a
lea eax, [esp + 0x10]
push eax
push 0x20019
push ebx
push edi
push esi
mov dword [esp + 0x24], ebx
call ebp
cmp eax, ebx
jne 0x5e79fa
lea ecx, [esp + 0x14]
call fcn.005e7cd0
cmp eax, ebx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], ecx
je 0x5e7a3a
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x14]
push eax
push ebx
push 0x2001f
push ebx
push ebx
push ebx
push edi
push esi
mov dword [esp + 0x34], ebx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
cmp eax, ebx
jne 0x5e7c6f
lea ecx, [esp + 0x14]
call fcn.005e7cd0
cmp eax, ebx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], ecx
jne 0x5e7c6f
mov ecx, dword [esp + 0x1c]
push edi
call fcn.005e7150
mov esi, eax
cmp esi, ebx
jl 0x5e7c90
cmp byte [edi], 0x3d
jne 0x5e77c6
mov ecx, dword [esp + 0x1c]
push edi
push ebx
lea edx, [esp + 0x1c]
push edx
call fcn.005e7ef0
mov esi, eax
jmp 0x5e77be
cmp dword [esp + 0x240], ebx
jne 0x5e7b6c
mov ecx, dword [esp + 0x238]
lea eax, [esp + 0x18]
push eax
push 0x20019
push ebx
push edi
push ecx
mov dword [esp + 0x2c], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp eax, ebx
jne 0x5e7aae
lea ecx, [esp + 0x14]
call fcn.005e7cd0
mov edx, dword [esp + 0x18]
mov dword [esp + 0x14], edx
cmp eax, ebx
mov ebp, eax
je 0x5e7abf
mov dword [esp + 0x240], 1
push 0x104
push edi
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov ecx, dword [esp + 0x1c]
push edi
call fcn.005e7150
mov esi, eax
cmp esi, ebx
jl 0x5e7c90
mov ecx, dword [esp + 0x1c]
push edi
call fcn.005e7d40
mov esi, eax
cmp esi, ebx
jl 0x5e7c90
cmp byte [edi], 0x7b
jne 0x5e7b3c
mov ecx, dword [esp + 0x240]
mov edx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x20]
push ebx
push edx
push edi
call fcn.005e7680
mov esi, eax
cmp esi, ebx
jge 0x5e7b28
cmp dword [esp + 0x240], ebx
je 0x5e7c90
mov ecx, dword [esp + 0x1c]
push edi
call fcn.005e7150
mov esi, eax
cmp esi, ebx
jl 0x5e7c90
cmp ebp, 2
mov eax, dword [esp + 0x20]
mov dword [esp + 0x240], eax
je 0x5e780d
cmp ebp, ebx
je 0x5e7b76
cmp eax, ebx
jne 0x5e780d
push ebp
call fcn.005e7cb0
add esp, 4
mov esi, eax
jmp 0x5e7c90
mov ebp, 2
jmp 0x5e7ab4
cmp eax, ebx
je 0x5e7bd0
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x20]
call fcn.005e7cf0
test eax, eax
je 0x5e7bd0
mov ebp, 0x851abc
mov edx, dword [ebp]
push edx
lea eax, [esp + 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x5e780d
add ebp, 4
cmp ebp, str.TypeLib
jl 0x5e7b91
cmp dword [esp + 0x10], ebx
je 0x5e780d
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x18]
call fcn.005e7dd0
jmp 0x5e780d
lea ecx, [esp + 0x14]
call fcn.005e7cd0
cmp eax, ebx
jne 0x5e7c6f
cmp dword [esp + 0x10], ebx
je 0x5e780d
mov eax, dword [esp + 0x238]
lea edx, [esp + 0x28]
push edx
push eax
mov dword [esp + 0x18], eax
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
cmp eax, ebx
mov dword [esp + 0x10], ebx
jne 0x5e7c7c
lea ecx, [esp + 0x10]
call fcn.005e7cd0
jmp 0x5e780d
lea ecx, [esp + 0x18]
call fcn.005e7cd0
lea ecx, [esp + 0x14]
call fcn.005e7cd0
pop ebp
pop edi
pop esi
mov eax, 0x80020009
pop ebx
add esp, 0x220
ret 0x10
lea ecx, [esp + 0x18]
jmp 0x5e7c8b
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x5e7c51
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop ebp
pop edi
pop esi
mov eax, 0x80020009
pop ebx
add esp, 0x220
ret 0x10
push eax
call fcn.005e7cb0
lea ecx, [esp + 0x1c]
jmp 0x5e7c86
push eax
call fcn.005e7cb0
add esp, 4
mov esi, eax
jmp 0x5e7c90
push eax
call fcn.005e7cb0
lea ecx, [esp + 0x14]
add esp, 4
mov esi, eax
call fcn.005e7cd0
lea ecx, [esp + 0x14]
call fcn.005e7cd0
pop ebp
pop edi
mov eax, esi
pop esi
pop ebx
add esp, 0x220
ret 0x10