Function at 0x43daf0
Capabilities:
Delete registry key
Delete registry value
Query or enumerate registry value
Set registry value

Disassembly:
sub esp, 0x214
and byte [esp + 0xc], 0
push ebx
push ebp
push esi
push edi
push 0x40
pop ecx
xor eax, eax
lea edi, [esp + 0x1d]
and byte [esp + 0x120], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x40
xor eax, eax
pop ecx
lea edi, [esp + 0x121]
rep stosd dword es:[edi], eax
cmp dword [esp + 0x22c], 0
mov dword [esp + 0x14], 1
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, 0x104
mov ebx, SysReAllocString
mov dword [esp + 0x10], edi
je 0x43dc14
push 0x40e198
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHDeleteKeyA]
mov esi, 0x45f128
mov ebp, 0x40e174
push esi
push ebp
push SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHDeleteValueA]
push 0xc
push 0x40e164
push 1
push esi
push ebp
mov ebp, dword [sym.imp.SHLWAPI.dll_SHSetValueA]
push reloc.OLEAUT32.dll_SysReAllocString
call ebp
cmp dword [0x47392c], 0
je 0x43dc9c
call fcn.0043d7d5
test eax, eax
jne 0x43dc9c
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x1c]
push eax
push esi
push 0x40b0f4
push ebx
call dword [sym.imp.SHLWAPI.dll_SHGetValueA]
test eax, eax
jne 0x43dbe9
lea edi, [esp + 0x1c]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x1c]
push ecx
push eax
push 1
push 0x40b0f0
push 0x40b0f4
push ebx
call ebp
mov edi, 0x104
lea eax, [esp + 0x120]
push edi
push eax
push dword [0x532da0]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [esp + 0x1c]
push edi
push eax
lea eax, [esp + 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
jmp 0x43dc7d
lea eax, [esp + 0x1c]
push edi
push eax
call fcn.0043d946
pop ecx
mov esi, 0x45f128
pop ecx
mov ebp, 0x40e174
push esi
push ebp
push SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHDeleteValueA]
push 0xc
push 0x40e154
push 1
push esi
push ebp
mov ebp, dword [sym.imp.SHLWAPI.dll_SHSetValueA]
push reloc.OLEAUT32.dll_SysReAllocString
call ebp
call fcn.0043d7d5
test eax, eax
je 0x43dc9c
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x1c]
push eax
push 0x40b0f0
push 0x40b0f4
push ebx
call dword [sym.imp.SHLWAPI.dll_SHGetValueA]
test eax, eax
jne 0x43dc9c
lea edi, [esp + 0x1c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x1c]
push ecx
push eax
push 1
push esi
push 0x40b0f4
push ebx
call ebp
mov edi, 0x40e148
push 8
push edi
push 1
push esi
push 0x40e140
push ebx
call ebp
push 8
push edi
push 1
push esi
push 0x40a86c
push ebx
call ebp
push 8
push edi
push 1
push esi
push 0x40e138
push ebx
call ebp
push 8
push edi
push 1
push esi
push 0x40e130
push ebx
call ebp
push 4
push 0x40a890
push 1
push esi
push 0x40e120
push ebx
call ebp
push dword [esp + 0x230]
mov edi, dword [esp + 0x230]
push edi
push 0x40e120
call fcn.0043d98a
add esp, 0xc
push 0x10
push 0x40aaf0
push 1
push esi
push 0x40e118
push ebx
call ebp
push dword [esp + 0x230]
push edi
push 0x40e100
call fcn.0043d98a
add esp, 0xc
push 9
push 0x40e0f4
push 1
push esi
push 0x40e0ec
push ebx
call ebp
push 9
push 0x40e0f4
push 1
push esi
push 0x40e0e4
push ebx
call ebp
mov esi, dword [esp + 0x230]
push esi
push edi
push 0x40e0d4
call fcn.0043d98a
push esi
push edi
push 0x40e0c8
call fcn.0043d98a
push esi
push edi
push 0x40e0bc
call fcn.0043d98a
push esi
push edi
push 0x40e0b0
call fcn.0043d98a
add esp, 0x30
lea eax, [esp + 0x18]
xor esi, esi
push eax
push 0xa
push 2
push 0x40e08c
push esi
push 0x1a
push 0xffff
call dword [sym.imp.USER32.dll_SendMessageTimeoutA]
cmp edi, esi
je 0x43ddba
cmp dword [0x47392c], esi
je 0x43ddc1
push 1
jmp 0x43ddbb
push esi
call fcn.0043ef7c
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x214
ret