Function at 0x43f103
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 0x43f227
push 0x40e884
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHDeleteKeyA]
mov esi, 0x460a68
mov ebp, 0x40e860
push esi
push ebp
push SysReAllocStringLen
call dword [sym.imp.SHLWAPI.dll_SHDeleteValueA]
push 0xc
push 0x40e850
push 1
push esi
push ebp
mov ebp, dword [sym.imp.SHLWAPI.dll_SHSetValueA]
push reloc.OLEAUT32.dll_SysReAllocString
call ebp
cmp dword [0x476904], 0
je 0x43f2af
call fcn.0043ede8
test eax, eax
jne 0x43f2af
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x1c]
push eax
push esi
push 0x40b050
push ebx
call dword [sym.imp.SHLWAPI.dll_SHGetValueA]
test eax, eax
jne 0x43f1fc
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 0x40b08c
push 0x40b050
push ebx
call ebp
mov edi, 0x104
lea eax, [esp + 0x120]
push edi
push eax
push dword [0x536190]
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 0x43f290
lea eax, [esp + 0x1c]
push edi
push eax
call fcn.0043ef59
pop ecx
mov esi, 0x460a68
pop ecx
mov ebp, 0x40e860
push esi
push ebp
push SysReAllocStringLen
call dword [sym.imp.SHLWAPI.dll_SHDeleteValueA]
push 0xc
push 0x40e840
push 1
push esi
push ebp
mov ebp, dword [sym.imp.SHLWAPI.dll_SHSetValueA]
push reloc.OLEAUT32.dll_SysReAllocString
call ebp
call fcn.0043ede8
test eax, eax
je 0x43f2af
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x1c]
push eax
push 0x40b08c
push 0x40b050
push ebx
call dword [sym.imp.SHLWAPI.dll_SHGetValueA]
test eax, eax
jne 0x43f2af
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 0x40b050
push ebx
call ebp
mov edi, 0x40e834
push 8
push edi
push 1
push esi
push 0x40e82c
push ebx
call ebp
push 8
push edi
push 1
push esi
push 0x40a7bc
push ebx
call ebp
push 8
push edi
push 1
push esi
push 0x40e824
push ebx
call ebp
push 8
push edi
push 1
push esi
push 0x40e81c
push ebx
call ebp
push 4
push 0x40a7e0
push 1
push esi
push 0x40e80c
push ebx
call ebp
push dword [esp + 0x230]
mov edi, dword [esp + 0x230]
push edi
push 0x40e80c
call fcn.0043ef9d
add esp, 0xc
push 0x10
push 0x40aa54
push 1
push esi
push 0x40e804
push ebx
call ebp
push dword [esp + 0x230]
push edi
push 0x40e7ec
call fcn.0043ef9d
add esp, 0xc
push 9
push 0x40e7e0
push 1
push esi
push 0x40e7d8
push ebx
call ebp
push 9
push 0x40e7e0
push 1
push esi
push 0x40e7d0
push ebx
call ebp
mov esi, dword [esp + 0x230]
push esi
push edi
push 0x40e7c0
call fcn.0043ef9d
push esi
push edi
push 0x40e7b4
call fcn.0043ef9d
push esi
push edi
push 0x40e7a8
call fcn.0043ef9d
push esi
push edi
push 0x40e79c
call fcn.0043ef9d
add esp, 0x30
lea eax, [esp + 0x18]
xor esi, esi
push eax
push 0xa
push 2
push 0x40e778
push esi
push 0x1a
push 0xffff
call dword [sym.imp.USER32.dll_SendMessageTimeoutA]
cmp edi, esi
je 0x43f3cd
cmp dword [0x476904], esi
je 0x43f3d4
push 1
jmp 0x43f3ce
push esi
call fcn.0044058f
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x214
ret