Function at 0x20a57c4
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x168
push ebx
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
xor edi, edi
push 0x10
call dword [sym.imp.COMCTL32.dll_DPA_CreateEx]
mov dword [ebp - 8], eax
cmp eax, edi
je 0x20a5b88
mov esi, dword [0x20ab040]
push 1
call fcn.020a4074
push edi
push edi
push 0xb
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
push edi
push 9
push 0x110a
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x2c], edi
lea eax, [ebp - 0x168]
push edi
push edi
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x68], 1
mov dword [ebp - 0x54], 0x100
mov dword [ebp - 0x38], 0x48
push 0x110a
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x38]
push eax
push edi
push 0x110c
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
push edi
lea ecx, [ebp - 0x168]
push ecx
push dword [ebp - 0x34]
push esi
call fcn.020a5cef
test byte [ebp - 0x30], 0x20
mov ebx, eax
je 0x20a5adc
test ebx, ebx
je 0x20a5ad2
lea eax, [ebp - 0x10]
lea ecx, [ebp - 0x168]
push eax
push ecx
push ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x20a5ad2
push dword [ebp - 0x34]
push edi
push 0x1113
mov ebx, 0xff
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
lea eax, [ebp - 0x168]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
sub ebx, eax
lea ecx, [ebp - 0x168]
mov dword [ebp - 0xc], ebx
xor ebx, ebx
push dword [ebp - 0xc]
push ecx
push edi
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
jne 0x20a5915
lea eax, [ebp - 0x168]
lea ecx, [ebp - 4]
push eax
mov dword [ebp - 4], edi
push ecx
call dword [sym.imp.COMCTL32.dll_Ordinal_234]
push dword [ebp - 4]
push ebx
push dword [ebp - 8]
mov eax, ebx
inc ebx
call dword [sym.imp.COMCTL32.dll_DPA_InsertPtr]
push dword [ebp - 0xc]
lea edx, [ebp - 0x168]
push edx
push ebx
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
je 0x20a58d9
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push edi
push 0x20a5b91
push dword [ebp - 8]
call dword [sym.imp.COMCTL32.dll_DPA_Sort]
test ebx, ebx
jne 0x20a5956
push dword [ebp - 8]
call dword [sym.imp.COMCTL32.dll_DPA_DeleteAllPtrs]
push dword [ebp - 0x34]
push 0x8001
push 0x1102
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 0x18], edi
jmp 0x20a5b04
dec ebx
mov eax, dword [ebp - 8]
push dword [ebp - 0x34]
push 4
add eax, 4
push 0x110a
mov ecx, dword [eax]
push esi
mov dword [ebp - 0xc], eax
mov edx, dword [ecx + ebx*4]
mov dword [ebp - 4], edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 0x64], eax
lea eax, [ebp - 0x68]
push eax
push edi
push 0x110c
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
test ebx, ebx
jl 0x20a5a99
cmp dword [ebp - 0x64], edi
je 0x20a5a57
push dword [ebp - 4]
lea ecx, [ebp - 0x168]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x20a59d9
push dword [ebp - 0x64]
push 1
push 0x110a
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 0x64], eax
lea eax, [ebp - 0x68]
push eax
push edi
push 0x110c
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x20a59f9
jle 0x20a5a14
push edi
push dword [ebp - 4]
push dword [ebp - 0x10]
call fcn.020a5ef3
push eax
push dword [ebp - 4]
push 0xffff0003
push dword [ebp - 0x34]
push esi
call fcn.020a5db0
push edi
lea eax, [ebp - 4]
push eax
call dword [sym.imp.COMCTL32.dll_Ordinal_234]
dec ebx
js 0x20a5a4f
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
mov edx, dword [ecx + ebx*4]
mov dword [ebp - 4], edx
jmp 0x20a5a4f
push dword [ebp - 0x64]
push 1
push 0x110a
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
push dword [ebp - 0x64]
push edi
push 0x1101
mov dword [ebp - 0x40], eax
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [ebp - 0x40]
lea eax, [ebp - 0x68]
push eax
mov dword [ebp - 0x64], ecx
push edi
push 0x110c
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
test ebx, ebx
jge 0x20a5995
test ebx, ebx
jl 0x20a5a99
shl ebx, 2
push edi
push dword [ebp - 4]
push dword [ebp - 0x10]
call fcn.020a5ef3
push eax
push dword [ebp - 4]
push 0xffff0003
push dword [ebp - 0x34]
push esi
call fcn.020a5db0
push edi
lea ecx, [ebp - 4]
push ecx
call dword [sym.imp.COMCTL32.dll_Ordinal_234]
sub ebx, 4
js 0x20a5ac9
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
mov edx, dword [ecx + ebx]
mov dword [ebp - 4], edx
jmp 0x20a5a5e
cmp dword [ebp - 0x64], edi
je 0x20a5ac9
push dword [ebp - 0x64]
push 1
push 0x110a
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
push dword [ebp - 0x64]
push 0
mov ebx, eax
push 0x1101
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 0x64], ebx
test ebx, ebx
jne 0x20a5a9e
push dword [ebp - 8]
call dword [sym.imp.COMCTL32.dll_DPA_DeleteAllPtrs]
push dword [ebp - 0x34]
push 4
jmp 0x20a5839
test ebx, ebx
je 0x20a5b15
push dword [ebp - 0x34]
push 0x8001
push 0x1102
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
lea ecx, [ebp - 0x168]
push ecx
push ebx
call fcn.020a5ef3
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x38]
push eax
push edi
push 0x110d
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
mov ebx, 0x110a
push dword [ebp - 0x34]
push 1
push ebx
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
jne 0x20a5845
push dword [ebp - 0x34]
push 3
push ebx
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 0x34], eax
test eax, eax
jne 0x20a5b1a
push dword [ebp - 8]
call dword [sym.imp.COMCTL32.dll_DPA_Destroy]
xor edi, edi
push edi
push 1
push 0xb
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
push edi
push 9
push 0x110a
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, dword [ebp - 0x3c]
je 0x20a5b79
push edi
push dword [ebp + 8]
call fcn.020a4f22
jmp 0x20a5b81
push dword [ebp + 8]
call fcn.020a8b68
push 0
call fcn.020a4074
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4