Function at 0x10007b10
Capabilities:
Delete registry key
Delete registry value
Get common file path
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc90
mov dword [ebp - 0xc90], ecx
mov dword [ebp - 0x1e8], 0
mov dword [ebp - 0x1e4], 0
mov dword [ebp - 0x38c], 0
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0x69c], str.Forth
mov dword [ebp - 0x6b0], 0
mov dword [ebp - 0x6a8], 0
mov dword [ebp - 0x6ac], 0
mov dword [ebp - 0x6a4], 0
mov dword [ebp - 0x2f4], 0
mov byte [ebp - 0x391], 1
mov dword [ebp - 0x100], 0
lea eax, [ebp - 0x1e8]
push eax
push 0
call dword [sym.imp.USER32.dll_ClientToScreen]
mov dword [ebp - 0x1e4], eax
mov ecx, dword [ebp - 0x1e8]
mov dword [ebp - 0x38c], ecx
mov dword [ebp - 0x6a0], 0
mov edx, dword [ebp - 0x69c]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [ebp - 0xfc]
lea edx, [ecx + eax + 1]
mov dword [ebp - 0xfc], edx
mov dword [ebp - 0x390], 0x104
mov eax, dword [ebp - 0xc90]
movzx ecx, byte [eax + 8]
test ecx, ecx
je 0x1000810a
push 0
call dword [sym.imp.KERNEL32.dll_FindAtomA]
movzx edx, ax
mov dword [ebp - 0x38c], edx
mov eax, 0x3d
sub eax, dword [ebp - 0x1e8]
imul eax, dword [ebp - 0x38c]
mov dword [ebp - 0x38c], eax
mov ecx, dword [ebp - 0xc90]
movzx edx, byte [ecx + 9]
test edx, edx
je 0x10007cb6
push 0x1001a254
lea ecx, [ebp - 0x698]
call fcn.10001980
mov dword [ebp - 0xb38], eax
mov dword [ebp - 0x6b8], 0x80000001
cmp dword [ebp - 0xb38], 0
je 0x10007c70
mov eax, dword [ebp - 0xb38]
push eax
lea ecx, [ebp - 0x7b8]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x1001a4a4
lea ecx, [ebp - 0x698]
call fcn.10001980
mov dword [ebp - 0xb60], eax
mov dword [ebp - 0xb5c], 0
mov edx, dword [ebp - 0xb60]
push edx
lea eax, [ebp - 0x7b8]
push eax
mov ecx, dword [ebp - 0x6b8]
push ecx
call dword [sym.imp.SHLWAPI.dll_SHDeleteValueA]
mov dword [ebp - 0xb5c], eax
jmp 0x1000810a
push 0
call dword [sym.imp.KERNEL32.dll_FindAtomA]
movzx edx, ax
mov dword [ebp - 0x38c], edx
mov eax, 0x3d
sub eax, dword [ebp - 0x1e8]
imul eax, dword [ebp - 0x38c]
mov dword [ebp - 0x38c], eax
mov ecx, dword [ebp - 0xc90]
movzx edx, byte [ecx + 0x1c]
test edx, edx
je 0x10007d95
push 0x1001a254
lea ecx, [ebp - 0x698]
call fcn.10001980
mov dword [ebp - 0xb84], eax
mov dword [ebp - 0x7c0], 0x80000001
cmp dword [ebp - 0xb84], 0
je 0x10007d2e
mov eax, dword [ebp - 0xb84]
push eax
lea ecx, [ebp - 0x8c0]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edx, [ebp - 0x1e8]
push edx
push 0
call dword [sym.imp.USER32.dll_ClientToScreen]
mov dword [ebp - 0x1e4], eax
mov eax, dword [ebp - 0x1e8]
mov dword [ebp - 0x38c], eax
push 0x1001a4a4
lea ecx, [ebp - 0x698]
call fcn.10001980
mov dword [ebp - 0xbac], eax
mov dword [ebp - 0xba8], 0
mov ecx, dword [ebp - 0xbac]
push ecx
lea edx, [ebp - 0x8c0]
push edx
mov eax, dword [ebp - 0x7c0]
push eax
call dword [sym.imp.SHLWAPI.dll_SHDeleteValueA]
mov dword [ebp - 0xba8], eax
jmp 0x1000810a
lea ecx, [ebp - 0x100]
push ecx
push 0x20019
push 0
push 0x1001a104
lea ecx, [ebp - 0x698]
call fcn.10001980
push eax
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x10007dca
xor al, al
jmp 0x10008304
lea edx, [ebp - 0x8c8]
push edx
push 0
push 0
push 0
lea eax, [ebp - 0x390]
push eax
lea ecx, [ebp - 0x2f0]
push ecx
mov edx, dword [ebp - 0x6a0]
push edx
mov eax, dword [ebp - 0x100]
push eax
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
test eax, eax
jne 0x100080fd
mov ecx, dword [ebp - 0x6a0]
add ecx, 1
mov dword [ebp - 0x6a0], ecx
mov dword [ebp - 0x390], 0x104
lea edx, [ebp - 0x2f0]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 8
jne 0x10007e68
movsx eax, byte [ebp - 0x2f0]
cmp eax, 0x77
jne 0x10007e68
movsx ecx, byte [ebp - 0x2ef]
cmp ecx, 0x69
jne 0x10007e68
movsx edx, byte [ebp - 0x2ee]
cmp edx, 0x6e
jne 0x10007e68
movsx eax, byte [ebp - 0x2ea]
cmp eax, 0x33
jne 0x10007e68
movsx ecx, byte [ebp - 0x2e9]
cmp ecx, 0x32
je 0x10007e6d
jmp 0x10007dca
mov dword [ebp - 0xb04], 0
lea edx, [ebp - 0x1e0]
push edx
lea eax, [ebp - 0x388]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ecx, dword [ebp - 0xfc]
push ecx
push 0x100172a0
lea edx, [ebp - 0x1e0]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0xb04]
push eax
push 0x20019
push 0
lea ecx, [ebp - 0x2f0]
push ecx
mov edx, dword [ebp - 0x100]
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x10007ed2
jmp 0x10007dca
mov dword [ebp - 0xb14], 0x20
call dword [sym.imp.USER32.dll_GetFocus]
mov dword [ebp - 0x38c], eax
mov eax, dword [ebp - 0x38c]
add eax, dword [ebp - 0x6b0]
mov dword [ebp - 0x38c], eax
lea ecx, [ebp - 0xb14]
push ecx
lea edx, [ebp - 0x8e8]
push edx
push 0
push 0
push 0x1001a294
lea ecx, [ebp - 0x698]
call fcn.10001980
push eax
mov eax, dword [ebp - 0xb04]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
je 0x10007f98
lea ecx, [ebp - 0x1e8]
push ecx
push 0
call dword [sym.imp.USER32.dll_ClientToScreen]
mov dword [ebp - 0x1e4], eax
mov edx, dword [ebp - 0x1e8]
mov dword [ebp - 0x38c], edx
mov eax, dword [ebp - 0xb04]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0
call dword [sym.imp.KERNEL32.dll_FindAtomA]
movzx ecx, ax
mov dword [ebp - 0x38c], ecx
mov edx, 0x3d
sub edx, dword [ebp - 0x1e8]
imul edx, dword [ebp - 0x38c]
mov dword [ebp - 0x38c], edx
jmp 0x10007dca
mov eax, dword [ebp - 0xb04]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [ebp - 0x1e8]
push ecx
push 0
call dword [sym.imp.USER32.dll_ClientToScreen]
mov dword [ebp - 0x1e4], eax
mov edx, dword [ebp - 0x1e8]
mov dword [ebp - 0x38c], edx
lea eax, [ebp - 0x1e0]
push eax
lea ecx, [ebp - 0x388]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov edx, dword [ebp - 0xfc]
push edx
push 0x100172a0
lea eax, [ebp - 0x1e0]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push 0x104
lea ecx, [ebp - 0xaf8]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
jne 0x10008011
jmp 0x10007dca
mov edx, dword [ebp - 0x69c]
push edx
lea eax, [ebp - 0xf8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ecx, dword [ebp - 0x69c]
push ecx
lea edx, [ebp - 0xf8]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x8e8]
push eax
lea ecx, [ebp - 0xaf8]
push ecx
push str._s_s
lea edx, [ebp - 0x9f0]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp - 0x9f0]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0xb00], eax
cmp dword [ebp - 0xb00], 0
jne 0x1000807d
jmp 0x10007dca
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0xb10], str.inst
mov dword [ebp - 0xb0c], 0x10017420
mov dword [ebp - 0xb08], 0x1001741c
mov byte [ebp - 0xaf9], 1
mov ecx, dword [ebp - 0x2f4]
push ecx
call dword [sym.imp.GDI32.dll_GetBkMode]
mov edx, dword [ebp - 0xb00]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
movzx eax, byte [ebp - 0xaf9]
test eax, eax
je 0x100080f8
lea ecx, [ebp - 0x2f0]
push ecx
mov edx, dword [ebp - 0x100]
push edx
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
test eax, eax
jne 0x100080f1
mov dword [ebp - 0x6a0], 0
jmp 0x100080f8
mov byte [ebp - 0x391], 0
jmp 0x10007dca
mov eax, dword [ebp - 0x100]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0xc90]
movzx edx, byte [ecx + 0x1c]
test edx, edx
je 0x1000814f
lea eax, [ebp - 0x100]
push eax
push 0x2001f
push 0
push 0x1001a078
lea ecx, [ebp - 0x698]
call fcn.10001980
push eax
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x1000814d
xor al, al
jmp 0x10008304
jmp 0x10008184
lea ecx, [ebp - 0x100]
push ecx
push 0x2001f
push 0
push 0x1001a078
lea ecx, [ebp - 0x698]
call fcn.10001980
push eax
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x10008184
xor al, al
jmp 0x10008304
mov dword [ebp - 0x6a0], 0
mov dword [ebp - 0x390], 0x104
push 0
push 0
push 0
push 0
lea edx, [ebp - 0x390]
push edx
lea eax, [ebp - 0x2f0]
push eax
mov ecx, dword [ebp - 0x6a0]
push ecx
mov edx, dword [ebp - 0x100]
push edx
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
test eax, eax
jne 0x100082d3
mov eax, dword [ebp - 0x6a0]
add eax, 1
mov dword [ebp - 0x6a0], eax
mov ecx, dword [ebp - 0x69c]
push ecx
lea edx, [ebp - 0xf8]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [ebp - 0x69c]
push eax
lea ecx, [ebp - 0xf8]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov dword [ebp - 0x390], 0x104
push 0x1001a2cc
lea ecx, [ebp - 0x698]
call fcn.10001980
push eax
lea edx, [ebp - 0x2f0]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x1000827d
push 0x1001a374
mov ecx, dword [ebp - 0xc90]
add ecx, 0x128
call fcn.10001980
push eax
lea eax, [ebp - 0x2f0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x1000827d
push 0x1001a37c
mov ecx, dword [ebp - 0xc90]
add ecx, 0x128
call fcn.10001980
push eax
lea ecx, [ebp - 0x2f0]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x10008282
jmp 0x10008198
lea edx, [ebp - 0x2f0]
push edx
mov eax, dword [ebp - 0x100]
push eax
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
test eax, eax
jne 0x100082a6
mov dword [ebp - 0x6a0], 0
jmp 0x100082ce
mov byte [ebp - 0x391], 0
lea ecx, [ebp - 0x1e8]
push ecx
push 0
call dword [sym.imp.USER32.dll_ClientToScreen]
mov dword [ebp - 0x1e4], eax
mov edx, dword [ebp - 0x1e8]
mov dword [ebp - 0x38c], edx
jmp 0x10008198
mov eax, dword [ebp - 0x100]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call dword [sym.imp.USER32.dll_GetFocus]
mov dword [ebp - 0x38c], eax
mov ecx, dword [ebp - 0x38c]
add ecx, dword [ebp - 0x6b0]
mov dword [ebp - 0x38c], ecx
mov al, byte [ebp - 0x391]
mov esp, ebp
pop ebp
ret