Function at 0x4016c8
Capabilities:
Delete registry key
Delete registry value
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
push edi
mov ebx, 0x4070e0
push 0x1194
push 0
push ebx
call fcn.00402d30
add esp, 0xc
push 0x408970
push 0xfa0
push ebx
push 0x40606c
push 0
push str.Registry
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push ebx
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
call esi
test eax, eax
je 0x401949
push 0x4082d8
push 0xf1
call fcn.00401153
add esp, 8
lea eax, [0x4082d8]
push eax
push 0
push 0x180
xor edi, edi
push 0x3ed
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
push ebx
mov dword [ebp - 0xc], eax
call esi
test eax, eax
je 0x401768
lea eax, [edi + 0x4070e0]
push eax
call esi
lea edi, [eax + edi + 1]
lea eax, [edi + 0x4070e0]
push eax
call esi
test eax, eax
jne 0x40174e
test edi, edi
jle 0x4018e9
mov esi, 0x408080
mov ebx, 0x4081ac
dec edi
test edi, edi
jle 0x40178d
cmp byte [edi + 0x4070df], 0
je 0x40178d
dec edi
test edi, edi
jg 0x40177f
push 0x408970
lea eax, [edi + 0x4070e0]
push 0x100
push ebx
push 0x40606c
push eax
push str.Registry
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push 1
push esi
push ebx
call fcn.00401079
add esp, 0xc
push 0xffffffffffffffff
push str.HKEY_CLASSES_ROOT
push 0xffffffffffffffff
push esi
push 1
push 0x400
call dword [sym.imp.KERNEL32.dll_CompareStringA]
cmp eax, 2
jne 0x4017e0
mov dword [ebp - 4], 0x80000000
jmp 0x40182f
push 0xffffffffffffffff
push str.HKEY_LOCAL_MACHINE
push 0xffffffffffffffff
push esi
push 1
push 0x400
call dword [sym.imp.KERNEL32.dll_CompareStringA]
cmp eax, 2
jne 0x401805
mov dword [ebp - 4], 0x80000002
jmp 0x40182f
push 0xffffffffffffffff
push str.HKEY_USERS
push 0xffffffffffffffff
push esi
push 1
push 0x400
call dword [sym.imp.KERNEL32.dll_CompareStringA]
sub eax, 2
cmp eax, 1
sbb eax, eax
and eax, 2
sub eax, 0x7fffffff
mov dword [ebp - 4], eax
push 2
push 0x4080b2
push ebx
call fcn.00401079
add esp, 0xc
push 0
push 0x4080b2
call fcn.0040102f
add esp, 8
push 0
push esi
push ebx
call fcn.00401079
add esp, 0xc
push esi
call fcn.00402ec0
add esp, 4
cmp eax, 1
jne 0x401878
push 0x4080b2
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
jmp 0x4018e1
lea eax, [ebp - 0x10]
lea ecx, [ebp - 8]
push eax
push ecx
push 0
push 0x20006
push 0
push 0
push 0
push 0x4080b2
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x4018e1
push 3
push esi
push ebx
call fcn.00401079
add esp, 0xc
push 0xffffffffffffffff
push str.default
push 0xffffffffffffffff
push esi
push 1
push 0x400
call dword [sym.imp.KERNEL32.dll_CompareStringA]
cmp eax, 2
jne 0x4018ce
mov byte [0x408080], 0
push esi
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
jg 0x40177a
push 0x4072d4
push 0xa1
xor esi, esi
call fcn.00401153
add esp, 8
mov edi, 0x3ed
push eax
push 0x4082d8
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push esi
push dword [ebp - 0xc]
push 0x182
push edi
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
lea eax, [0x4082d8]
push eax
push esi
push 0x180
push edi
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
push esi
push eax
push 0x186
push edi
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret