Function at 0x43ff18
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 6
push 0
push 0
dec ecx
jne 0x43ff21
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov byte [ebp - 2], dl
mov byte [ebp - 1], al
xor eax, eax
push ebp
push 0x440287
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
test cl, cl
je 0x43ff58
call fcn.0043fbfc
test al, al
je 0x43ff58
mov bl, 1
jmp 0x44025f
cmp byte [ebp - 1], 0
je 0x440167
mov dword [ebp - 0x14], 1
lea eax, [ebp - 0x10]
mov edx, 0x4402a0
call fcn.00403ea0
lea eax, [ebp - 8]
push eax
push 0x20019
push 0
mov eax, dword [ebp - 0x10]
call fcn.004042c8
push eax
push 0x80000002
call sub.advapi32.dll_RegOpenKeyExA_1
test eax, eax
jne 0x44002e
lea eax, [ebp - 0x18]
push eax
push 0
lea eax, [ebp - 0x14]
push eax
push 0
push 0x4402c8
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
test eax, eax
jne 0x44002e
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x18]
call fcn.004043f8
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0xc]
call fcn.004042c8
push eax
lea eax, [ebp - 0x14]
push eax
push 0
push 0x4402c8
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
xor edi, edi
mov esi, 0x4521f0
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 0xc]
call fcn.00407974
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x1c]
call fcn.00407774
mov eax, dword [ebp - 0x1c]
push eax
lea edx, [ebp - 0x24]
mov eax, dword [esi]
call fcn.00407774
mov eax, dword [ebp - 0x24]
pop edx
call fcn.0040be40
test eax, eax
jle 0x440025
mov bl, 1
jmp 0x44025f
inc edi
add esi, 4
cmp edi, 6
jne 0x43ffed
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegCloseKey_1
mov dword [ebp - 0x14], 1
lea eax, [ebp - 0x10]
mov edx, 0x4402d4
call fcn.00403ea0
lea eax, [ebp - 8]
push eax
push 0x20019
push 0
mov eax, dword [ebp - 0x10]
call fcn.004042c8
push eax
push 0x80000002
call sub.advapi32.dll_RegOpenKeyExA_1
test eax, eax
jne 0x440103
lea eax, [ebp - 0x18]
push eax
push 0
lea eax, [ebp - 0x14]
push eax
push 0
push 0x4402f0
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
test eax, eax
jne 0x440103
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x18]
call fcn.004043f8
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0xc]
call fcn.004042c8
push eax
lea eax, [ebp - 0x14]
push eax
push 0
push 0x4402c8
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
xor edi, edi
mov esi, 0x4521f0
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 0xc]
call fcn.00407974
mov eax, dword [ebp - 0x2c]
lea edx, [ebp - 0x28]
call fcn.00407774
mov eax, dword [ebp - 0x28]
push eax
lea edx, [ebp - 0x30]
mov eax, dword [esi]
call fcn.00407774
mov eax, dword [ebp - 0x30]
pop edx
call fcn.0040be40
test eax, eax
jle 0x4400fa
mov bl, 1
jmp 0x44025f
inc edi
add esi, 4
cmp edi, 4
jne 0x4400c2
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegCloseKey_1
xor edi, edi
mov esi, 0x452210
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
mov eax, dword [esi]
call fcn.004042c8
push eax
call sub.kernel32.dll_CreateFileA
cmp eax, 0xffffffff
je 0x44013e
mov bl, 1
jmp 0x44025f
inc edi
add esi, 4
cmp edi, 8
jne 0x440113
push 0x440304
push 0x440320
call sub.kernel32.dll_LoadLibraryA
push eax
call sub.kernel32.dll_GetProcAddress_1
test eax, eax
je 0x440167
mov bl, 1
jmp 0x44025f
cmp byte [ebp - 2], 0
je 0x44025f
mov dword [ebp - 0x14], 1
lea eax, [ebp - 0x10]
mov edx, 0x440334
call fcn.00403ea0
lea eax, [ebp - 8]
push eax
push 0x20019
push 0
mov eax, dword [ebp - 0x10]
call fcn.004042c8
push eax
push 0x80000002
call sub.advapi32.dll_RegOpenKeyExA_1
test eax, eax
jne 0x44021e
lea eax, [ebp - 0x18]
push eax
push 0
lea eax, [ebp - 0x14]
push eax
push 0
push 0x440360
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
test eax, eax
jne 0x44021e
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x18]
call fcn.004043f8
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0xc]
call fcn.004042c8
push eax
lea eax, [ebp - 0x14]
push eax
push 0
push 0x440360
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
xor edi, edi
mov esi, 0x452204
lea edx, [ebp - 0x34]
mov eax, dword [ebp - 0xc]
call fcn.00407974
mov edx, dword [ebp - 0x34]
mov eax, dword [esi]
call fcn.0040be40
test eax, eax
jle 0x440215
mov bl, 1
jmp 0x44025f
inc edi
add esi, 4
cmp edi, 3
jne 0x4401f8
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegCloseKey_1
xor edi, edi
mov esi, 0x45222c
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
mov eax, dword [esi]
call fcn.004042c8
push eax
call sub.kernel32.dll_CreateFileA
cmp eax, 0xffffffff
je 0x440256
mov bl, 1
jmp 0x44025f
inc edi
add esi, 4
cmp edi, 1
jne 0x44022e
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x44028e
lea eax, [ebp - 0x34]
mov edx, 7
call fcn.00403e2c
lea eax, [ebp - 0x10]
mov edx, 2
call fcn.00403e2c
ret