Function at 0x4805a5
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa98
push esi
push edi
mov dword [ebp - 0xa98], ecx
mov dword [ebp - 4], 0
mov dword [ebp - 8], 1
mov ecx, 0x16
mov esi, 0x510fd8
lea edi, [ebp - 0x418]
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x6c
xor eax, eax
lea edi, [ebp - 0x3c0]
rep stosd dword es:[edi], eax
lea eax, [ebp - 4]
push eax
push 0x2001f
push 0
lea ecx, [ebp - 0x418]
push ecx
push reloc.DSOUND.dll_DirectSoundCreate
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x48075b
push 0x104
lea edx, [ebp - 0x620]
push edx
mov ecx, dword [ebp - 0xa98]
add ecx, 0x737ec
call fcn.004cf903
push 0x511030
lea eax, [ebp - 0x620]
push eax
call fcn.004ba71e
add esp, 8
test eax, eax
jne 0x48064e
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x480aef
push 0x533048
lea edx, [ebp - 0x620]
push edx
call fcn.004ba71e
add esp, 8
test eax, eax
jne 0x48072d
call dword [sym.imp.WINMM.dll_mixerGetNumDevs]
mov dword [ebp - 0x67c], eax
mov dword [ebp - 0x678], 0
jmp 0x480691
mov eax, dword [ebp - 0x678]
add eax, 1
mov dword [ebp - 0x678], eax
mov ecx, dword [ebp - 0x678]
cmp ecx, dword [ebp - 0x67c]
jae 0x48072d
push 0x50
lea edx, [ebp - 0x674]
push edx
mov eax, dword [ebp - 0x678]
push eax
call dword [sym.imp.WINMM.dll_mixerGetDevCapsW]
mov dword [ebp - 0x624], eax
cmp dword [ebp - 0x624], 0
jne 0x480728
push 0x5309b8
lea ecx, [ebp - 0x66c]
push ecx
call fcn.004ba71e
add esp, 8
test eax, eax
je 0x480710
push 0x533248
lea edx, [ebp - 0x66c]
push edx
call fcn.004ba71e
add esp, 8
test eax, eax
je 0x480710
push 0x5329e8
lea eax, [ebp - 0x66c]
push eax
call fcn.004ba71e
add esp, 8
test eax, eax
jne 0x480728
lea ecx, [ebp - 0x66c]
push ecx
lea edx, [ebp - 0x620]
push edx
call fcn.004ba79a
add esp, 8
jmp 0x48072d
jmp 0x480682
lea eax, [ebp - 0x620]
push eax
call fcn.004ba753
add esp, 4
lea ecx, [eax + eax + 2]
push ecx
lea edx, [ebp - 0x620]
push edx
push 1
push 0
push str.Record
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x104
lea edx, [ebp - 0x210]
push edx
mov ecx, dword [ebp - 0xa98]
add ecx, 0x737ec
call fcn.004cf903
mov eax, dword [ebp - 0xa98]
cmp dword [eax + 0x11d8], 0
je 0x4808c2
mov dword [ebp - 0x680], 0
mov dword [ebp - 0x684], 0
jmp 0x4807ba
mov ecx, dword [ebp - 0x684]
add ecx, 1
mov dword [ebp - 0x684], ecx
mov ecx, dword [ebp - 0xa98]
add ecx, 0x737ec
call fcn.0040d5e0
cmp dword [ebp - 0x684], eax
jge 0x480818
lea edx, [ebp - 0x88c]
push edx
mov eax, dword [ebp - 0x684]
push eax
mov ecx, dword [ebp - 0xa98]
add ecx, 0x737ec
call fcn.00404820
push 0x5327e8
lea ecx, [ebp - 0x88c]
push ecx
call fcn.004ba71e
add esp, 8
test eax, eax
jne 0x480816
mov dword [ebp - 0x680], 1
jmp 0x480818
jmp 0x4807ab
cmp dword [ebp - 0x680], 0
je 0x4808c2
push 0x104
lea edx, [ebp - 0x210]
push edx
mov ecx, dword [ebp - 0xa98]
add ecx, 0x737ec
call fcn.004cf903
push 0x5327e8
lea eax, [ebp - 0x210]
push eax
call fcn.004ba71e
add esp, 8
test eax, eax
jne 0x48088f
cmp dword [0x50eeb0], 0
je 0x48086c
cmp dword [0x50eeb0], 0xffffffff
jne 0x48088d
push 0
push 9
push 0
mov ecx, dword [ebp - 0xa98]
add ecx, 0x141fc
call fcn.00482ee6
mov dword [0x50eeb0], 1
jmp 0x4808c2
cmp dword [0x50eeb0], 1
je 0x4808a1
cmp dword [0x50eeb0], 0xffffffff
jne 0x4808c2
push 1
push 9
push 0
mov ecx, dword [ebp - 0xa98]
add ecx, 0x141fc
call fcn.00482ee6
mov dword [0x50eeb0], 0
mov ecx, dword [ebp - 0xa98]
cmp dword [ecx + 0x19f8], 0
je 0x480aef
mov edx, dword [ebp - 0xa98]
cmp dword [edx + 0x1174], 0
jne 0x480aef
push 0x104
lea eax, [ebp - 0xa94]
push eax
mov ecx, dword [ebp - 0xa98]
add ecx, 0x737ec
call fcn.004cf903
push 0x533454
lea ecx, [ebp - 0xa94]
push ecx
call fcn.004ba71e
add esp, 8
test eax, eax
jne 0x480932
mov edx, dword [ebp - 0xa98]
mov dword [edx + 0x6e74c], 1
jmp 0x480abf
push 0x5309b8
lea eax, [ebp - 0xa94]
push eax
call fcn.004ba71e
add esp, 8
test eax, eax
je 0x480992
push 0x533248
lea ecx, [ebp - 0xa94]
push ecx
call fcn.004ba71e
add esp, 8
test eax, eax
je 0x480992
push 0x533048
lea edx, [ebp - 0xa94]
push edx
call fcn.004ba71e
add esp, 8
test eax, eax
je 0x480992
push 0x5329e8
lea eax, [ebp - 0xa94]
push eax
call fcn.004ba71e
add esp, 8
test eax, eax
jne 0x4809a7
mov ecx, dword [ebp - 0xa98]
mov dword [ecx + 0x6e74c], 3
jmp 0x480abf
push 0x5323e8
lea edx, [ebp - 0xa94]
push edx
call fcn.004ba71e
add esp, 8
test eax, eax
jne 0x4809d4
mov eax, dword [ebp - 0xa98]
mov dword [eax + 0x6e74c], 4
jmp 0x480abf
push 0x531fe0
lea ecx, [ebp - 0xa94]
push ecx
call fcn.004ba71e
add esp, 8
test eax, eax
je 0x480a04
push 0x533854
lea edx, [ebp - 0xa94]
push edx
call fcn.004ba71e
add esp, 8
test eax, eax
jne 0x480a19
mov eax, dword [ebp - 0xa98]
mov dword [eax + 0x6e74c], 5
jmp 0x480abf
push 0x5321e8
lea ecx, [ebp - 0xa94]
push ecx
call fcn.004ba71e
add esp, 8
test eax, eax
jne 0x480a43
mov edx, dword [ebp - 0xa98]
mov dword [edx + 0x6e74c], 6
jmp 0x480abf
push 0x532be8
lea eax, [ebp - 0xa94]
push eax
call fcn.004ba71e
add esp, 8
test eax, eax
jne 0x480a6d
mov ecx, dword [ebp - 0xa98]
mov dword [ecx + 0x6e74c], 7
jmp 0x480abf
push 0x5327e8
lea edx, [ebp - 0xa94]
push edx
call fcn.004ba71e
add esp, 8
test eax, eax
jne 0x480a97
mov eax, dword [ebp - 0xa98]
mov dword [eax + 0x6e74c], 8
jmp 0x480abf
push 0x533654
lea ecx, [ebp - 0xa94]
push ecx
call fcn.004ba71e
add esp, 8
test eax, eax
jne 0x480abf
mov edx, dword [ebp - 0xa98]
mov dword [edx + 0x6e74c], 9
mov ecx, dword [ebp - 0xa98]
call fcn.00481de4
mov ecx, dword [ebp - 0xa98]
call fcn.0046eca4
push 0x105
push 0
push 0
mov ecx, dword [ebp - 0xa98]
add ecx, 0x73bac
call fcn.00451ba0
pop edi
pop esi
mov esp, ebp
pop ebp
ret