Function at 0x43d273
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, SysReAllocStringLen
mov dword [esp + 0x10], edi
je 0x43d397
push 0x40de4c
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHDeleteKeyA]
mov esi, 0x45e298
mov ebp, 0x40de28
push esi
push ebp
push SysReAllocStringLen
call dword [sym.imp.SHLWAPI.dll_SHDeleteValueA]
push 0xc
push 0x40de18
push 1
push esi
push ebp
mov ebp, dword [sym.imp.SHLWAPI.dll_SHSetValueA]
push reloc.OLEAUT32.dll_SysReAllocString
call ebp
cmp dword [0x472a98], 0
je 0x43d41f
call fcn.0043cf58
test eax, eax
jne 0x43d41f
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x1c]
push eax
push esi
push 0x40b044
push ebx
call dword [sym.imp.SHLWAPI.dll_SHGetValueA]
test eax, eax
jne 0x43d36c
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 0x40b040
push 0x40b044
push ebx
call ebp
mov edi, 0x104
lea eax, [esp + 0x120]
push edi
push eax
push dword [0x531f10]
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 0x43d400
lea eax, [esp + 0x1c]
push edi
push eax
call fcn.0043d0c9
pop ecx
mov esi, 0x45e298
pop ecx
mov ebp, 0x40de28
push esi
push ebp
push SysReAllocStringLen
call dword [sym.imp.SHLWAPI.dll_SHDeleteValueA]
push 0xc
push 0x40de08
push 1
push esi
push ebp
mov ebp, dword [sym.imp.SHLWAPI.dll_SHSetValueA]
push reloc.OLEAUT32.dll_SysReAllocString
call ebp
call fcn.0043cf58
test eax, eax
je 0x43d41f
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x1c]
push eax
push 0x40b040
push 0x40b044
push ebx
call dword [sym.imp.SHLWAPI.dll_SHGetValueA]
test eax, eax
jne 0x43d41f
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 0x40b044
push ebx
call ebp
mov edi, 0x40ddfc
push 8
push edi
push 1
push esi
push 0x40ddf4
push ebx
call ebp
push 8
push edi
push 1
push esi
push 0x40a7f0
push ebx
call ebp
push 8
push edi
push 1
push esi
push 0x40ddec
push ebx
call ebp
push 8
push edi
push 1
push esi
push 0x40dde4
push ebx
call ebp
push 4
push 0x40a814
push 1
push esi
push 0x40ddd4
push ebx
call ebp
push dword [esp + 0x230]
mov edi, dword [esp + 0x230]
push edi
push 0x40ddd4
call fcn.0043d10d
add esp, 0xc
push 0x10
push 0x40aa78
push 1
push esi
push 0x40ddcc
push ebx
call ebp
push dword [esp + 0x230]
push edi
push 0x40ddb4
call fcn.0043d10d
add esp, 0xc
push 9
push 0x40dda8
push 1
push esi
push 0x40dda0
push ebx
call ebp
push 9
push 0x40dda8
push 1
push esi
push 0x40dd98
push ebx
call ebp
mov esi, dword [esp + 0x230]
push esi
push edi
push 0x40dd88
call fcn.0043d10d
push esi
push edi
push 0x40dd7c
call fcn.0043d10d
push esi
push edi
push 0x40dd70
call fcn.0043d10d
push esi
push edi
push 0x40dd64
call fcn.0043d10d
add esp, 0x30
lea eax, [esp + 0x18]
xor esi, esi
push eax
push 0xa
push 2
push 0x40dd40
push esi
push 0x1a
push 0xffff
call dword [sym.imp.USER32.dll_SendMessageTimeoutA]
cmp edi, esi
je 0x43d53d
cmp dword [0x472a98], esi
je 0x43d544
push 1
jmp 0x43d53e
push esi
call fcn.0043e6ff
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x214
ret