Function at 0x4031e0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
push ebx
push esi
push edi
push str.CWavesSysSvcService::OnStart.
push 0x43c6f0
push 0
push 0x5d
mov ebx, 2
mov edi, str.C:p4clientConsumerdev_dadiConsumerPlatformVistaWavesSysSvcWavesSysSvcService.cpp
mov dword [esp + 0x28], ecx
call fcn.004010b0
add esp, 0x10
xor esi, esi
mov eax, dword [esi + 0x4493a0]
push str.GlobalWaves_MVBuf
push eax
call fcn.00412310
add esp, 8
test eax, eax
jne 0x40326d
call fcn.00403010
test eax, eax
setne al
mov byte [esp + 0x13], al
test al, al
mov eax, 0x43d62c
jne 0x403246
mov eax, 0x43d634
push eax
push str.Is_Echo_Cancellation_Active_:___s_.
push 0
push 0x66
mov ebx, 2
mov edi, str.C:p4clientConsumerdev_dadiConsumerPlatformVistaWavesSysSvcWavesSysSvcService.cpp
call fcn.004010b0
add esp, 0x10
cmp byte [esp + 0x13], 0
je 0x4033cc
mov ecx, dword [esi + 0x4493a0]
mov edx, dword [esi + 0x4493a4]
mov eax, dword [esp + 0x18]
push ecx
push edx
push 0
push 4
add eax, 0x64
push eax
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov ebx, eax
mov dword [esp + 0x14], ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
cmp eax, 0xb7
sete cl
mov dword [esp + 0x1c], 0x43d634
mov edi, ecx
test edi, edi
jne 0x4032bb
mov dword [esp + 0x1c], 0x43d62c
test ebx, ebx
je 0x403399
mov edx, dword [esi + 0x4493a4]
push edx
push 0
push 0
push 0xf001f
push ebx
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [esp + 0x20], eax
test edi, edi
jne 0x403307
test eax, eax
je 0x403307
mov ecx, dword [esi + 0x4493a4]
push ecx
push edi
push eax
call fcn.00416250
mov edi, dword [esp + 0x24]
add esp, 0xc
add edi, 0x40
lea eax, [esp + 0x20]
call fcn.0040cf00
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0x34]
lea edx, [esp + 0x14]
cmp edx, eax
jae 0x403346
mov ecx, dword [edi + 0x30]
cmp ecx, edx
ja 0x403346
mov ebx, edx
sub ebx, ecx
sar ebx, 2
cmp eax, dword [edi + 0x38]
jne 0x403331
lea eax, [edi + 0x30]
call fcn.0040d2c0
mov eax, dword [edi + 0x34]
test eax, eax
je 0x403340
mov ecx, dword [edi + 0x30]
mov edx, dword [ecx + ebx*4]
mov dword [eax], edx
mov ebx, dword [esp + 0x14]
jmp 0x40335c
cmp eax, dword [edi + 0x38]
jne 0x403353
lea eax, [edi + 0x30]
call fcn.0040d2c0
mov eax, dword [edi + 0x34]
test eax, eax
je 0x40335c
mov dword [eax], ebx
mov eax, dword [esp + 0x1c]
add dword [edi + 0x34], 4
mov ecx, dword [esp + 0x20]
mov edx, dword [esi + 0x4493a4]
push eax
mov eax, dword [esi + 0x4493a0]
push ebx
push ecx
push edx
push eax
push str._s__size___u__location__0x_08X__shared_memory_has_been_created_at_m_hFileMapping__0x_08X._New_Allocation___s.
push 0
push 0x8e
mov ebx, 2
mov edi, str.C:p4clientConsumerdev_dadiConsumerPlatformVistaWavesSysSvcWavesSysSvcService.cpp
call fcn.004010b0
add esp, 0x20
jmp 0x4033cc
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esi + 0x4493a4]
mov edx, dword [esi + 0x4493a0]
push eax
push ecx
push edx
push str.CreateFileMapping_failed_for___s___size___d_._Error_code___d.
push 0
push 0x92
mov ebx, 1
mov edi, str.C:p4clientConsumerdev_dadiConsumerPlatformVistaWavesSysSvcWavesSysSvcService.cpp
call fcn.004010b0
add esp, 0x18
add esi, 8
cmp esi, 0x60
jb 0x403212
lea eax, [esp + 0x14]
push eax
push 0x43d210
xor edi, edi
push 0x80000002
mov dword [esp + 0x2c], edi
mov dword [esp + 0x20], edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
mov eax, dword [esp + 0x14]
cmp eax, edi
je 0x40342e
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x24]
push edx
lea ecx, [esp + 0x2c]
push ecx
push edi
push str.MaxxAudioOptions
push eax
mov dword [esp + 0x34], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test byte [esp + 0x20], 0x80
je 0x403476
mov esi, dword [esp + 0x18]
cmp dword [esi + 0xac], edi
jne 0x40344d
call dword [sym.imp.KERNEL32.dll_CreateTimerQueue]
mov dword [esi + 0xac], eax
mov eax, dword [esi + 0xac]
cmp eax, edi
je 0x403476
push edi
push 0x1f4
push 0x1f4
push esi
push 0x402ff0
push eax
add esi, 0xa8
push esi
call dword [sym.imp.KERNEL32.dll_CreateTimerQueueTimer]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8