Function at 0x29d90
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe4
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], edx
mov ebx, eax
lea esi, [ebp - 0xc]
lea edi, [ebp - 0x14]
xor eax, eax
push ebp
push 0x2a1e5
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
call fcn.00029948
lea eax, [ebp - 0x18]
call fcn.00025330
xor eax, eax
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x2a1c3
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 8]
push eax
mov eax, dword [0x1b3998]
add eax, 0x20019
push eax
push 0
lea eax, [ebp - 0x1c]
call fcn.00025330
mov eax, dword [ebp - 0x1c]
call fcn.00014090
push eax
push 0x80000002
call sub.advapi32.dll_RegOpenKeyExA_1
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x2a1a1
mov dword [ebp - 0x10], 4
xor eax, eax
mov dword [esi], eax
xor eax, eax
mov dword [edi], eax
lea eax, [ebp - 0x10]
push eax
push edi
push esi
push 0
push 0x2a1f8
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x29e4d
cmp dword [esi], 4
jne 0x29e4d
cmp dword [edi], 1
sete al
mov byte [ebx], al
mov dword [ebp - 0x10], 4
xor eax, eax
mov dword [esi], eax
xor eax, eax
mov dword [edi], eax
lea eax, [ebp - 0x10]
push eax
push edi
push esi
push 0
push 0x2a210
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x29e8f
cmp dword [esi], 4
jne 0x29e8f
cmp dword [edi], 0
jb 0x29e8f
cmp dword [edi], 0x17
ja 0x29e8f
mov al, byte [edi]
mov byte [ebx + 2], al
mov dword [ebp - 0x10], 4
xor eax, eax
mov dword [esi], eax
xor eax, eax
mov dword [edi], eax
lea eax, [ebp - 0x10]
push eax
push edi
push esi
push 0
push 0x2a234
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x29ecb
cmp dword [esi], 4
jne 0x29ecb
cmp dword [edi], 1
sete al
mov byte [ebx + 0xa], al
mov dword [ebp - 0x10], 4
xor eax, eax
mov dword [esi], eax
xor eax, eax
mov dword [edi], eax
lea eax, [ebp - 0x10]
push eax
push edi
push esi
push 0
push 0x2a258
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x29f07
cmp dword [esi], 4
jne 0x29f07
cmp dword [edi], 1
sete al
mov byte [ebx + 1], al
mov dword [ebp - 0x10], 4
xor eax, eax
mov dword [esi], eax
xor eax, eax
mov dword [edi], eax
lea eax, [ebp - 0x10]
push eax
push edi
push esi
push 0
push 0x2a27c
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x29f53
cmp dword [esi], 4
jne 0x29f53
cmp dword [edi], 0
je 0x29f4e
cmp dword [edi], 0xf
je 0x29f4e
cmp dword [edi], 0x1e
je 0x29f4e
cmp dword [edi], 0x2d
jne 0x29f53
mov al, byte [edi]
mov byte [ebx + 3], al
mov dword [ebp - 0x10], 4
xor eax, eax
mov dword [esi], eax
xor eax, eax
mov dword [edi], eax
lea eax, [ebp - 0x10]
push eax
push edi
push esi
push 0
push 0x2a2a0
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x29f8f
cmp dword [esi], 4
jne 0x29f8f
cmp dword [edi], 1
sete al
mov byte [ebx + 7], al
mov dword [ebp - 0x10], 4
xor eax, eax
mov dword [esi], eax
xor eax, eax
mov dword [edi], eax
lea eax, [ebp - 0x10]
push eax
push edi
push esi
push 0
push 0x2a2c4
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x29fdb
cmp dword [esi], 4
jne 0x29fdb
cmp dword [edi], 0
je 0x29fd6
cmp dword [edi], 0xf
je 0x29fd6
cmp dword [edi], 0x1e
je 0x29fd6
cmp dword [edi], 0x2d
jne 0x29fdb
mov al, byte [edi]
mov byte [ebx + 5], al
mov dword [ebp - 0x10], 4
xor eax, eax
mov dword [esi], eax
xor eax, eax
mov dword [edi], eax
lea eax, [ebp - 0x10]
push eax
push edi
push esi
push 0
push 0x2a2e8
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x2a017
cmp dword [esi], 4
jne 0x2a017
cmp dword [edi], 1
sete al
mov byte [ebx + 0xc], al
mov dword [ebp - 0x10], 4
xor eax, eax
mov dword [esi], eax
xor eax, eax
mov dword [edi], eax
lea eax, [ebp - 0x10]
push eax
push edi
push esi
push 0
push 0x2a30c
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x2a053
cmp dword [esi], 4
jne 0x2a053
cmp dword [edi], 1
sete al
mov byte [ebx + 0xb], al
mov dword [ebp - 0x10], 4
xor eax, eax
mov dword [esi], eax
xor eax, eax
mov dword [edi], eax
lea eax, [ebp - 0x10]
push eax
push edi
push esi
push 0
push 0x2a330
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x2a095
cmp dword [esi], 4
jne 0x2a095
cmp dword [edi], 0
jb 0x2a095
cmp dword [edi], 0x17
ja 0x2a095
mov al, byte [edi]
mov byte [ebx + 4], al
mov dword [ebp - 0x10], 4
xor eax, eax
mov dword [esi], eax
xor eax, eax
mov dword [edi], eax
lea eax, [ebp - 0x10]
push eax
push edi
push esi
push 0
push 0x2a354
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x2a0d1
cmp dword [esi], 4
jne 0x2a0d1
cmp dword [edi], 1
sete al
mov byte [ebx + 6], al
mov dword [ebp - 0x10], 4
xor eax, eax
mov dword [esi], eax
xor eax, eax
mov dword [edi], eax
lea eax, [ebp - 0x10]
push eax
push edi
push esi
push 0
push 0x2a378
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x2a10d
cmp dword [esi], 4
jne 0x2a10d
cmp dword [edi], 1
sete al
mov byte [ebx + 8], al
mov dword [ebp - 0x10], 4
xor eax, eax
mov dword [esi], eax
xor eax, eax
mov dword [edi], eax
lea eax, [ebp - 0x10]
push eax
push edi
push esi
push 0
push 0x2a39c
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x2a149
cmp dword [esi], 4
jne 0x2a149
cmp dword [edi], 1
sete al
mov byte [ebx + 9], al
mov al, byte [ebx + 2]
cmp al, byte [ebx + 4]
jb 0x2a168
mov byte [ebx + 2], 7
mov byte [ebx + 3], 0
mov byte [ebx + 4], 0x13
mov byte [ebx + 5], 0
mov dword [ebp - 4], 0xd
cmp byte [ebx + 6], 0
jne 0x2a1a1
cmp byte [ebx + 7], 0
jne 0x2a1a1
cmp byte [ebx + 8], 0
jne 0x2a1a1
cmp byte [ebx + 9], 0
jne 0x2a1a1
cmp byte [ebx + 0xa], 0
jne 0x2a1a1
cmp byte [ebx + 0xb], 0
jne 0x2a1a1
cmp byte [ebx + 0xc], 0
jne 0x2a1a1
cmp byte [ebx], 0
je 0x2a1a1
mov byte [ebx], 0
mov dword [ebp - 4], 0xd
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x2a1ca
cmp dword [ebp - 8], 0
je 0x2a1bd
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegCloseKey_1
xor eax, eax
mov dword [ebp - 8], eax
ret