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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x46ced3
mov eax, dword fs:[0]
push eax
sub esp, 0x100
mov eax, dword [0x48b370]
xor eax, esp
mov dword [esp + 0xf8], eax
push ebx
push esi
push edi
mov eax, dword [0x48b370]
xor eax, esp
push eax
lea eax, [esp + 0x110]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov edi, ecx
cmp dword [edi + 0x14], 8
mov esi, edx
jb 0x447a4f
mov ecx, dword [edi]
lea edx, [esp + 0x18]
push edx
push 0xf003f
xor ebx, ebx
push ebx
push ecx
push dword [eax]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov dword [esp + 0x14], eax
cmp eax, ebx
je 0x447bd9
lea eax, [esp + 0x1c]
push eax
call fcn.00402ec2
mov dword [esp + 0x118], ebx
push str.__strKeyName:
push ecx
push str.._strSubKey:
push ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push ecx
lea eax, [esp + 0x34]
push str.RegOpenKeyExW_Failed._GetLastError:
push eax
call fcn.004064bf
add esp, 0xc
push eax
call fcn.0042aa60
pop ecx
push eax
call fcn.004064bf
push eax
mov ecx, edi
call fcn.0040632c
add esp, 0x10
push eax
call fcn.004064bf
push eax
mov ecx, esi
call fcn.0040632c
add esp, 0xc
push 0xf
pop esi
push 0x1a
push str.CRegCommon::DeleteRegValue
lea ecx, [esp + 0xd8]
mov dword [esp + 0xec], esi
mov dword [esp + 0xe8], ebx
mov byte [esp + 0xd8], bl
call fcn.00403e19
mov byte [esp + 0x118], 1
push 0x14
push str.commonRegCommon.cpp
lea ecx, [esp + 0xbc]
mov dword [esp + 0xd0], esi
mov dword [esp + 0xcc], ebx
mov byte [esp + 0xbc], bl
call fcn.00403e19
mov byte [esp + 0x118], 2
lea eax, [esp + 0xec]
push eax
lea ecx, [esp + 0x20]
call fcn.00402f86
mov byte [esp + 0x118], 3
push eax
lea eax, [esp + 0xd4]
push eax
push 0xd2
lea eax, [esp + 0xc0]
push eax
push ebx
push ecx
call fcn.00439dc3
pop ecx
push eax
call fcn.0043a160
mov byte [esp + 0x118], 2
push 1
xor edi, edi
lea esi, [esp + 0xf0]
call fcn.004041e3
mov byte [esp + 0x118], 1
push ebx
push 1
lea ecx, [esp + 0xbc]
call fcn.00403eaf
mov byte [esp + 0x118], bl
lea ecx, [esp + 0xd0]
push ebx
push 1
call fcn.00403eaf
or dword [esp + 0x118], 0xffffffff
lea ecx, [esp + 0x6c]
call fcn.00402f43
lea ecx, [esp + 0x6c]
call fcn.004029cc
mov eax, dword [esp + 0x14]
jmp 0x447eb1
cmp byte [ebp + 0xc], bl
je 0x447d4c
cmp dword [esi + 0x14], 8
jb 0x447bec
mov eax, dword [esi]
jmp 0x447bee
mov eax, esi
push eax
push dword [esp + 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov dword [esp + 0x14], eax
cmp eax, ebx
je 0x447eaf
lea eax, [esp + 0x1c]
push eax
call fcn.00402ec2
mov dword [esp + 0x118], 4
push str.__strKeyName:
push ecx
push str.._strSubKey:
push ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push ecx
lea eax, [esp + 0x34]
push str.RegDeleteKey_Failed._GetLastError:
push eax
call fcn.004064bf
add esp, 0xc
push eax
call fcn.0042aa60
pop ecx
push eax
call fcn.004064bf
push eax
mov ecx, edi
call fcn.0040632c
add esp, 0x10
push eax
call fcn.004064bf
push eax
mov ecx, esi
call fcn.0040632c
add esp, 0xc
push 0xf
pop esi
push 0x1a
push str.CRegCommon::DeleteRegValue
lea ecx, [esp + 0xbc]
mov dword [esp + 0xd0], esi
mov dword [esp + 0xcc], ebx
mov byte [esp + 0xbc], bl
call fcn.00403e19
mov byte [esp + 0x118], 5
push 0x14
push str.commonRegCommon.cpp
lea ecx, [esp + 0xd8]
mov dword [esp + 0xec], esi
mov dword [esp + 0xe8], ebx
mov byte [esp + 0xd8], bl
call fcn.00403e19
mov byte [esp + 0x118], 6
lea eax, [esp + 0xec]
push eax
lea ecx, [esp + 0x20]
call fcn.00402f86
mov byte [esp + 0x118], 7
push eax
lea eax, [esp + 0xb8]
push eax
push 0xdb
lea eax, [esp + 0xdc]
push eax
push ebx
push ecx
call fcn.00439dc3
pop ecx
push eax
call fcn.0043a160
mov byte [esp + 0x118], 6
push 1
xor edi, edi
lea esi, [esp + 0xf0]
call fcn.004041e3
mov byte [esp + 0x118], 5
push ebx
push 1
lea ecx, [esp + 0xd8]
call fcn.00403eaf
mov byte [esp + 0x118], 4
lea ecx, [esp + 0xb4]
jmp 0x447bae
cmp dword [esi + 0x14], 8
jb 0x447d56
mov eax, dword [esi]
jmp 0x447d58
mov eax, esi
push eax
push dword [esp + 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov dword [esp + 0x14], eax
cmp eax, ebx
je 0x447eaf
lea eax, [esp + 0x1c]
push eax
call fcn.00402ec2
mov dword [esp + 0x118], 8
push str.__strKeyName:
push ecx
push str.._strSubKey:
push ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push ecx
lea eax, [esp + 0x34]
push str.RegDeleteValue_Failed._GetLastError:
push eax
call fcn.004064bf
add esp, 0xc
push eax
call fcn.0042aa60
pop ecx
push eax
call fcn.004064bf
push eax
mov ecx, edi
call fcn.0040632c
add esp, 0x10
push eax
call fcn.004064bf
push eax
mov ecx, esi
call fcn.0040632c
add esp, 0xc
push 0xf
pop esi
push 0x1a
push str.CRegCommon::DeleteRegValue
lea ecx, [esp + 0xbc]
mov dword [esp + 0xd0], esi
mov dword [esp + 0xcc], ebx
mov byte [esp + 0xbc], bl
call fcn.00403e19
mov byte [esp + 0x118], 9
push 0x14
push str.commonRegCommon.cpp
lea ecx, [esp + 0xd8]
mov dword [esp + 0xec], esi
mov dword [esp + 0xe8], ebx
mov byte [esp + 0xd8], bl
call fcn.00403e19
mov byte [esp + 0x118], 0xa
lea eax, [esp + 0xec]
push eax
lea ecx, [esp + 0x20]
call fcn.00402f86
mov byte [esp + 0x118], 0xb
push eax
lea eax, [esp + 0xb8]
push eax
push 0xe4
lea eax, [esp + 0xdc]
push eax
push ebx
push ecx
call fcn.00439dc3
pop ecx
push eax
call fcn.0043a160
mov byte [esp + 0x118], 0xa
push 1
xor edi, edi
lea esi, [esp + 0xf0]
call fcn.004041e3
mov byte [esp + 0x118], 9
push ebx
push 1
lea ecx, [esp + 0xd8]
call fcn.00403eaf
mov byte [esp + 0x118], 8
jmp 0x447d40
xor eax, eax
mov ecx, dword [esp + 0x110]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xf8]
xor ecx, esp
call fcn.0044cdc7
mov esp, ebp
pop ebp
ret 8