Function at 0x402cc0
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x10
push ebx
push ebp
push esi
mov esi, ecx
push edi
or ebp, 0xffffffff
lea edi, [esi + 0x72f4a]
mov eax, ebp
mov ecx, edi
mov word [esi + 0x72f04], bp
mov word [esi + 0x72f48], bp
lea edx, [esp + 0x1c]
mov dword [ecx], eax
push edx
mov dword [esp + 0x1c], 4
mov dword [ecx + 4], eax
mov word [ecx + 8], ax
lea eax, [esp + 0x14]
push eax
push 0
push 0xf003f
push 0
push 0
push 0
push 0x4bc690
push reloc.dsound.dll_DirectSoundCreate
call dword [sym.imp.advapi32.dll_RegCreateKeyExA]
test eax, eax
jne 0x402f02
lea ecx, [esp + 0x18]
mov ebx, dword [sym.imp.advapi32.dll_RegQueryValueExA]
lea edx, [esp + 0x14]
push ecx
push edx
push eax
push eax
mov eax, dword [esp + 0x20]
push 0x4bc688
push eax
call ebx
test eax, eax
jne 0x402ef7
mov eax, dword [esp + 0x14]
test eax, eax
jbe 0x402d61
cmp eax, 0x65
jae 0x402d61
dec eax
mov word [esi + 0x72f04], ax
jmp 0x402d68
mov word [esi + 0x72f04], bp
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x18]
lea eax, [esp + 0x14]
push edx
push eax
push 0
push 0
push 0x4bc67c
push ecx
call ebx
test eax, eax
je 0x402d99
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.advapi32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
mov eax, dword [esp + 0x14]
test eax, eax
jbe 0x402dae
cmp eax, 0xc9
jae 0x402dae
dec eax
mov word [edi], ax
jmp 0x402db1
mov word [edi], bp
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x18]
lea ecx, [esp + 0x14]
push eax
push ecx
push 0
push 0
push 0x4bc670
push edx
call ebx
test eax, eax
je 0x402de2
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
mov eax, dword [esp + 0x14]
test eax, eax
jbe 0x402dfb
cmp eax, 0xc9
jae 0x402dfb
dec eax
mov word [esi + 0x72f4c], ax
jmp 0x402e02
mov word [esi + 0x72f4c], bp
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x18]
lea edx, [esp + 0x14]
push ecx
push edx
push 0
push 0
push 0x4bc664
push eax
call ebx
test eax, eax
jne 0x402ef7
mov eax, dword [esp + 0x14]
test eax, eax
jbe 0x402e3d
cmp eax, 0xc9
jae 0x402e3d
dec eax
mov word [esi + 0x72f4e], ax
jmp 0x402e44
mov word [esi + 0x72f4e], bp
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x18]
lea eax, [esp + 0x14]
push edx
push eax
push 0
push 0
push 0x4bc658
push ecx
call ebx
test eax, eax
je 0x402e75
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.advapi32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
mov eax, dword [esp + 0x14]
test eax, eax
jbe 0x402e8e
cmp eax, 0xc9
jae 0x402e8e
dec eax
mov word [esi + 0x72f50], ax
jmp 0x402e95
mov word [esi + 0x72f50], bp
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x18]
lea ecx, [esp + 0x14]
push eax
push ecx
push 0
push 0
push 0x4bc64c
push edx
call ebx
test eax, eax
je 0x402ec6
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
mov eax, dword [esp + 0x14]
test eax, eax
jbe 0x402ef0
cmp eax, 0xc9
jae 0x402ef0
mov ecx, dword [esp + 0x10]
dec eax
push ecx
mov word [esi + 0x72f52], ax
call dword [sym.imp.advapi32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
mov word [esi + 0x72f52], bp
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.advapi32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret