Function at 0x415750
Capabilities:
Delete registry key
Delete registry value
Set registry value

Disassembly:
push 0xffffffffffffffff
push 0x442b06
mov eax, dword fs:[0]
push eax
sub esp, 0xa0
push ebp
push esi
mov eax, dword [0x45d018]
xor eax, esp
push eax
lea eax, [esp + 0xac]
mov dword fs:[0], eax
mov ebp, dword [esp + 0xbc]
mov esi, ecx
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC80U.DLL_Ordinal_293]
lea ecx, [esp + 0x10]
mov dword [esp + 0xb4], 0
call dword [sym.imp.MFC80U.DLL_Ordinal_293]
test edi, edi
mov byte [esp + 0xb4], 1
jne 0x4158ea
lea ecx, [esp + 0x1c]
call sub.MFC80U.DLL_Ordinal_557
push 0x4487ac
lea ecx, [esp + 0x74]
mov byte [esp + 0xb8], 2
call sub.acdb17.dll_public:_void___thiscall_AdString::constructor_wchar_t_const__
push esi
lea ecx, [esp + 0x38]
mov byte [esp + 0xb8], 3
call sub.acdb17.dll_public:_void___thiscall_AdString::constructor_wchar_t_const__
lea eax, [esp + 0x1c]
push eax
lea edx, [esp + 0x74]
lea ecx, [esp + 0x38]
mov byte [esp + 0xb8], 4
call fcn.00414bc0
add esp, 4
lea ecx, [esp + 0x34]
mov byte [esp + 0xb4], 3
call sub.acdb17.dll_public_virtual:_void___thiscall_AdString::destructor_void_
lea ecx, [esp + 0x70]
mov byte [esp + 0xb4], 2
call sub.acdb17.dll_public_virtual:_void___thiscall_AdString::destructor_void_
mov ecx, dword [esp + 0x24]
cmp ecx, 2
jge 0x41586b
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb4], 1
call sub.MFC80U.DLL_Ordinal_745
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
xor eax, eax
mov ecx, dword [esp + 0xac]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebp
add esp, 0xac
ret
lea eax, [ecx - 1]
test eax, eax
jl 0x4158e5
cmp eax, ecx
jge 0x4158e5
mov ecx, dword [esp + 0x20]
lea eax, [ecx + eax*4]
push eax
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC80U.DLL_Ordinal_774]
mov edx, dword [esp + 0x24]
add edx, 0xffffffff
xor esi, esi
test edx, edx
jle 0x4158d2
test esi, esi
jle 0x4158aa
push 0x4487ac
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC80U.DLL_Ordinal_899]
test esi, esi
jl 0x4158e5
cmp esi, dword [esp + 0x24]
jge 0x4158e5
mov eax, dword [esp + 0x20]
lea eax, [eax + esi*4]
push eax
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC80U.DLL_Ordinal_896]
mov ecx, dword [esp + 0x24]
add esi, 1
add ecx, 0xffffffff
cmp esi, ecx
jl 0x415895
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb4], 1
call sub.MFC80U.DLL_Ordinal_745
jmp 0x4158f5
jmp fcn.0043ebfa
push esi
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC80U.DLL_Ordinal_776]
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x1c]
push eax
push 0
push 0x20006
push 0
push 0
push 0
push ecx
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x41583d
test edi, edi
jne 0x41593a
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
jmp 0x415969
test ebp, ebp
jne 0x41594c
mov ecx, dword [esp + 0x18]
push edi
push ecx
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
jmp 0x415969
push ebp
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edx, [eax + eax + 2]
mov eax, dword [esp + 0x18]
push edx
push ebp
push 1
push 0
push edi
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov ecx, dword [esp + 0x18]
push ecx
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
xor eax, eax
test esi, esi
sete al
mov ecx, dword [esp + 0xac]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebp
add esp, 0xac
ret