Function at 0x431c60
Capabilities:
Query or enumerate registry key

Disassembly:
sub esp, 0x5c4
mov eax, dword [0x445030]
xor eax, esp
mov dword [esp + 0x5bc], eax
push ebx
push ebp
mov eax, fcn.004318d0
push esi
push edi
test eax, eax
je 0x431cb0
lea ebx, [esp + 0x14]
call fcn.004317c0
mov esi, dword [esp + 0x14]
cmp dword [esi - 0xc], 0
jne 0x431cb7
lea eax, [esi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431cb0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x431f1d
mov eax, esi
call fcn.00431250
mov edi, eax
add esi, 0xfffffff0
mov eax, esi
mov dword [esp + 0x34], edi
mov dword [esp + 0x20], esi
call fcn.00401980
push 0xf
push str.Catalog_Entries
lea ecx, [esp + 0x18]
add eax, 0x10
push ecx
mov dword [esp + 0x1c], eax
call fcn.00402520
mov ebx, dword [esp + 0x10]
lea edx, [esp + 0x24]
push edx
push 0x20019
push 0
push ebx
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [esp + 0x38], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x431f36
mov eax, dword [esp + 0x24]
mov dword [esp + 0x38], eax
mov eax, dword [0x448804]
mov edx, dword [eax + 0xc]
mov ecx, 0x448804
call edx
mov ebp, eax
mov eax, dword [0x448804]
mov edx, dword [eax + 0xc]
add ebp, 0x10
mov ecx, 0x448804
mov dword [esp + 0x1c], ebp
call edx
add eax, 0x10
xor ebx, ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ebx
test edi, edi
jle 0x431e97
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x3ca]
push ecx
mov word [esp + 0x3cc], ax
call fcn.0041c990
add esp, 0xc
lea edx, [esp + 0x40]
push edx
mov edx, dword [esp + 0x3c]
push 0
push 0
push 0
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x3d4]
push ecx
push ebx
push edx
mov dword [esp + 0x48], 0x208
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x431e84
push 0x378
push eax
lea eax, [esp + 0x50]
push eax
call fcn.0041c990
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x54]
add esp, 0xc
push ecx
lea ecx, [esp + 0x3c4]
call fcn.00431b00
add esp, 4
test eax, eax
je 0x431e84
lea esi, [esp + 0x1c]
call fcn.00401de0
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x4c]
call fcn.00431bb0
add esp, 4
mov edi, esi
call fcn.00401790
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431e22
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebp, dword [esp + 0x1c]
cmp dword [ebp - 0xc], 0
je 0x431e80
lea esi, [esp + 0x18]
call fcn.00401de0
lea ecx, [esp + 0x48]
lea ebx, [esp + 0x2c]
call fcn.00431730
mov edi, esi
call fcn.00401790
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431e69
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x18]
push ecx
push ebp
lea edx, [esp + 0x1c8]
push edx
call fcn.004318d0
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x20]
inc ebx
cmp ebx, dword [esp + 0x34]
mov dword [esp + 0x14], ebx
jl 0x431d5a
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431eb3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add ebp, 0xfffffff0
lea ecx, [ebp + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431ed0
mov ecx, dword [ebp]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebp
call edx
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431ef0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x38]
test eax, eax
je 0x431eff
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431f18
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov eax, 1
mov ecx, dword [esp + 0x5cc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0041b3f1
add esp, 0x5c4
ret
lea eax, [ebx - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431f52
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431f6b
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
xor eax, eax
jmp 0x431f1d