Function at 0x43f130
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x485bd8
mov eax, dword fs:[0]
push eax
sub esp, 0x50
push ebx
push esi
push edi
mov eax, dword [0x4c600c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
cmp dword [ebx + 4], 0
jne 0x43f42a
push 0
push 0
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x18]
push eax
push 0
push 0
push 0
push dword [ebx + 0x70]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
js 0x43f43e
mov dword [ebx + 4], eax
je 0x43f1b5
push str.RegQueryInfoKeyW__
lea ecx, [ebx + 8]
call fcn.0043b900
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebp - 0x10]
mov ecx, 0x104
cmp eax, ecx
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
cmovb eax, ecx
mov dword [ebp - 0x2c], 0
add eax, 0xa
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x10], eax
inc eax
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x34]
push 0
push eax
call fcn.004164c0
mov dword [ebp - 4], 1
mov esi, dword [ebp + 8]
cmp dword [esi + 4], 0
lea ecx, [esi + 4]
jne 0x43f4c4
mov eax, dword [ebp - 0x18]
add eax, dword [ecx + 8]
cmp dword [esi], 0
jne 0x43f4b0
push eax
call fcn.0042a4e0
mov dword [esi], eax
xor edi, edi
jmp 0x43f230
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 0x30]
push 0
push 0
push 0
push 0
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
push esi
push edi
push dword [ebx + 0x70]
mov dword [ebp - 0x4c], 1
mov dword [ebp - 0x48], 0
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x43f3a4
push dword [ebp - 0x14]
lea ecx, [ebp - 0x34]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.004101ab
mov esi, eax
mov byte [ebp - 4], 5
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x24], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x5c], 0
test eax, eax
je 0x43f2de
mov ecx, dword [ebp - 0x54]
test ecx, ecx
je 0x43f2de
add ecx, ecx
je 0x43f2de
lea ecx, [ecx]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x43f2d0
mov eax, dword [ebp - 0x58]
push eax
call fcn.0043af60
mov eax, dword [ebp - 0x1c]
add esp, 4
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x50], eax
mov eax, dword [esi]
mov dword [ebp - 0x5c], eax
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x43f352
mov ecx, dword [ebp - 0x3c]
test ecx, ecx
je 0x43f352
add ecx, ecx
je 0x43f352
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x43f344
mov eax, dword [ebp - 0x40]
push eax
call fcn.0043af60
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x5c]
add esp, 4
push eax
call fcn.0043f6c0
mov byte [ebp - 4], 1
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x43f395
mov ecx, dword [ebp - 0x54]
test ecx, ecx
je 0x43f395
add ecx, ecx
je 0x43f395
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x43f387
mov eax, dword [ebp - 0x58]
push eax
call fcn.0043af60
add esp, 4
inc edi
jmp 0x43f230
cmp eax, 0x103
je 0x43f44f
test eax, eax
js 0x43f43e
push str.RegEnumKeyExW__
lea ecx, [ebx + 8]
mov dword [ebx + 4], eax
call fcn.00414544
mov byte [ebp - 4], 1
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x43f3f5
mov ecx, dword [ebp - 0x54]
test ecx, ecx
je 0x43f3f5
add ecx, ecx
je 0x43f3f5
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x43f3e7
mov eax, dword [ebp - 0x58]
push eax
call fcn.0043af60
add esp, 4
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x43f421
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x43f421
mov eax, esi
add ecx, ecx
je 0x43f421
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x43f416
push esi
call fcn.0043af60
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x46
mov edx, str.NumCast
mov ecx, str.value___0
call fcn.00417c20
mov byte [ebp - 4], 1
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x43f47e
mov ecx, dword [ebp - 0x54]
test ecx, ecx
je 0x43f47e
add ecx, ecx
je 0x43f47e
nop
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x43f470
mov eax, dword [ebp - 0x58]
push eax
call fcn.0043af60
add esp, 4
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x43f421
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x43f421
mov eax, esi
add ecx, ecx
je 0x43f421
nop
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x43f4a0
jmp 0x43f421
push 0x94
mov edx, str.ncvector_struct_WWLib::RegItem_::reserve
mov ecx, str._af_
call fcn.00417c20
push 0x1e7
mov edx, str.datavect_struct_WWLib::RegItem__::size
mov ecx, str._af_
call fcn.00417c20
int3