Function at 0x480af5
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x680
push esi
push edi
mov dword [ebp - 0x680], ecx
mov dword [ebp - 4], 0
mov dword [ebp - 8], 1
mov ecx, 0x16
mov esi, str.SoftwareMicrosoftMultimediaSound_Mapper_
lea edi, [ebp - 0x210]
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x6c
xor eax, eax
lea edi, [ebp - 0x1b8]
rep stosd dword es:[edi], eax
lea eax, [ebp - 4]
push eax
push 0x2001f
push 0
lea ecx, [ebp - 0x210]
push ecx
push reloc.DSOUND.dll_DirectSoundCreate
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x480cc3
push 0x104
lea edx, [ebp - 0x418]
push edx
mov ecx, dword [ebp - 0x680]
add ecx, 0x73828
call fcn.004cf903
push 0x5325e8
lea eax, [ebp - 0x418]
push eax
call fcn.004ba71e
add esp, 8
test eax, eax
jne 0x480c42
mov ecx, dword [ebp - 0x680]
cmp dword [ecx + 0x70d6c], 0
je 0x480c42
call dword [sym.imp.WINMM.dll_waveOutGetNumDevs]
mov dword [ebp - 0x41c], eax
mov dword [ebp - 0x420], 0
jmp 0x480bcd
mov edx, dword [ebp - 0x420]
add edx, 1
mov dword [ebp - 0x420], edx
mov eax, dword [ebp - 0x420]
cmp eax, dword [ebp - 0x41c]
jge 0x480c42
push 0x54
lea ecx, [ebp - 0x474]
push ecx
mov edx, dword [ebp - 0x420]
push edx
call dword [sym.imp.WINMM.dll_waveOutGetDevCapsW]
test eax, eax
jne 0x480c3d
lea eax, [ebp - 0x46c]
push eax
push 0x5325e8
call fcn.004ba71e
add esp, 8
test eax, eax
jne 0x480c0f
jmp 0x480c42
lea ecx, [ebp - 0x46c]
push ecx
push 0x532e08
call fcn.004ba71e
add esp, 8
test eax, eax
jne 0x480c3d
push 0x532e08
lea edx, [ebp - 0x418]
push edx
call fcn.004ba79a
add esp, 8
jmp 0x480c42
jmp 0x480bbe
push 0x5307b8
lea eax, [ebp - 0x418]
push eax
call fcn.004ba71e
add esp, 8
test eax, eax
jne 0x480c6e
push 0x533a54
lea ecx, [ebp - 0x418]
push ecx
call fcn.004ba79a
add esp, 8
push str.Others
lea edx, [ebp - 0x418]
push edx
call fcn.004ba71e
add esp, 8
test eax, eax
jne 0x480c95
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x480dd5
lea ecx, [ebp - 0x418]
push ecx
call fcn.004ba753
add esp, 4
lea edx, [eax + eax + 2]
push edx
lea eax, [ebp - 0x418]
push eax
push 1
push 0
push str.Playback
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x680]
cmp dword [eax + 0x19f8], 0
je 0x480dd5
push 0x104
lea ecx, [ebp - 0x67c]
push ecx
mov ecx, dword [ebp - 0x680]
add ecx, 0x73828
call fcn.004cf903
push 0x5325e8
lea edx, [ebp - 0x67c]
push edx
call fcn.004ba71e
add esp, 8
test eax, eax
je 0x480d2d
push 0x532e08
lea eax, [ebp - 0x67c]
push eax
call fcn.004ba71e
add esp, 8
test eax, eax
jne 0x480d3f
mov ecx, dword [ebp - 0x680]
mov dword [ecx + 0x6e74c], 0
jmp 0x480da5
push 1
mov ecx, dword [ebp - 0x680]
add ecx, 0x141fc
call fcn.00482917
test eax, eax
je 0x480da5
mov edx, dword [ebp - 0x680]
cmp dword [edx + 0x70d6c], 0
je 0x480da5
push 0x533a54
lea eax, [ebp - 0x67c]
push eax
call fcn.004ba71e
add esp, 8
test eax, eax
je 0x480d95
push 0x5307b8
lea ecx, [ebp - 0x67c]
push ecx
call fcn.004ba71e
add esp, 8
test eax, eax
jne 0x480da5
mov edx, dword [ebp - 0x680]
mov dword [edx + 0x6e74c], 2
mov ecx, dword [ebp - 0x680]
call fcn.00481de4
mov ecx, dword [ebp - 0x680]
call fcn.0046eca4
push 0x105
push 0
push 0
mov ecx, dword [ebp - 0x680]
add ecx, 0x73bac
call fcn.00451ba0
pop edi
pop esi
mov esp, ebp
pop ebp
ret