Function at 0x1005f420
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101deafd
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push esi
push edi
mov eax, dword [0x1026ebc4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, edx
mov dword [ebp - 0x14], eax
mov edi, ecx
test eax, eax
je 0x10060e5a
mov edx, dword [eax]
mov dword [ebp - 0x10], edx
test edx, edx
je 0x10060e5a
mov esi, 0x10253740
mov dword [ebp - 0x18], 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005f484
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005f470
jmp 0x1005f4d5
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x10253740
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005f4a8
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005f492
xor eax, eax
jmp 0x1005f4cd
cmp al, byte [esi]
jne 0x1005f4c8
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005f4c8
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005f4c8
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005f4c8
xor eax, eax
jmp 0x1005f4cd
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005f5a3
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 8
movzx ecx, al
movzx eax, dl
xor eax, 0x811c9dc5
imul eax, eax, 0x1000193
xor ecx, eax
mov eax, edx
shr eax, 0x10
imul ecx, ecx, 0x1000193
movzx eax, al
shr edx, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x10299d38
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.1005cc70
mov edx, dword [0x10299d3c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x10299d3c]
je 0x1005f54b
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005f59e
push 0xc
call fcn.101d9536
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x1c], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 1
mov ecx, 0x10299d38
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSound3DBuffer8.1.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x18]
push eax
mov dword [esi], vtable.m_IDirectSound3DBuffer8.0
mov dword [ebp - 0x18], edx
call fcn.1005c820
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x10253730
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005f5c5
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005f5b1
jmp 0x1005f616
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x10253730
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005f5e9
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005f5d3
xor eax, eax
jmp 0x1005f60e
cmp al, byte [esi]
jne 0x1005f609
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005f609
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005f609
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005f609
xor eax, eax
jmp 0x1005f60e
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005f6fe
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x1c], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x10], eax
test edx, edx
jne 0x1005f63a
mov dword [ebp - 0x10], edx
jmp 0x1005f6f9
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x10]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x1c]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x10299d58
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.1005cc70
mov edx, dword [0x10299d5c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x10299d5c]
je 0x1005f6a6
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005f6f9
push 0xc
call fcn.101d9536
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 2
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 3
mov ecx, 0x10299d58
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSound3DListener8.1.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSound3DListener8.0
mov dword [ebp - 0x1c], edx
call fcn.1005c820
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x102536f0
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005f724
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005f710
jmp 0x1005f775
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x10253700
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005f748
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005f732
xor eax, eax
jmp 0x1005f76d
cmp al, byte [esi]
jne 0x1005f768
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005f768
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005f768
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005f768
xor eax, eax
jmp 0x1005f76d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005f85d
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x1005f799
mov dword [ebp - 0x10], edx
jmp 0x1005f858
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x10299d18
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.1005cc70
mov edx, dword [0x10299d1c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x10299d1c]
je 0x1005f805
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005f858
push 0xc
call fcn.101d9536
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 4
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 5
mov ecx, 0x10299d18
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSound8.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSound8.1.0
mov dword [ebp - 0x1c], edx
call fcn.1005c820
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x10253710
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005f884
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005f870
jmp 0x1005f8d5
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x10253720
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005f8a8
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005f892
xor eax, eax
jmp 0x1005f8cd
cmp al, byte [esi]
jne 0x1005f8c8
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005f8c8
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005f8c8
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005f8c8
xor eax, eax
jmp 0x1005f8cd
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005f9bd
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x1005f8f9
mov dword [ebp - 0x10], edx
jmp 0x1005f9b8
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x10299d78
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.1005cc70
mov edx, dword [0x10299d7c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x10299d7c]
je 0x1005f965
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005f9b8
push 0xc
call fcn.101d9536
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 6
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 7
mov ecx, 0x10299d78
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundBuffer8.1.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundBuffer8.0
mov dword [ebp - 0x1c], edx
call fcn.1005c820
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x10253750
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005f9e4
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005f9d0
jmp 0x1005fa35
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x10253750
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005fa08
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005f9f2
xor eax, eax
jmp 0x1005fa2d
cmp al, byte [esi]
jne 0x1005fa28
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005fa28
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005fa28
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005fa28
xor eax, eax
jmp 0x1005fa2d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005fb1d
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x1005fa59
mov dword [ebp - 0x10], edx
jmp 0x1005fb18
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x10299d98
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.1005cc70
mov edx, dword [0x10299d9c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x10299d9c]
je 0x1005fac5
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005fb18
push 0xc
call fcn.101d9536
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 8
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 9
mov ecx, 0x10299d98
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundCapture8.1.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundCapture8.0
mov dword [ebp - 0x1c], edx
call fcn.1005c820
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x10253760
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005fb44
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005fb30
jmp 0x1005fb95
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x10253770
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005fb68
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005fb52
xor eax, eax
jmp 0x1005fb8d
cmp al, byte [esi]
jne 0x1005fb88
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005fb88
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005fb88
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005fb88
xor eax, eax
jmp 0x1005fb8d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005fc7d
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x1005fbb9
mov dword [ebp - 0x10], edx
jmp 0x1005fc78
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x10299db8
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.1005cc70
mov edx, dword [0x10299dbc]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x10299dbc]
je 0x1005fc25
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005fc78
push 0xc
call fcn.101d9536
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0xa
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0xb
mov ecx, 0x10299db8
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundCaptureBuffer8.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundCaptureBuffer8.1.0
mov dword [ebp - 0x1c], edx
call fcn.1005c820
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x10253830
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005fca4
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005fc90
jmp 0x1005fcf5
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x10253830
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005fcc8
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005fcb2
xor eax, eax
jmp 0x1005fced
cmp al, byte [esi]
jne 0x1005fce8
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005fce8
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005fce8
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005fce8
xor eax, eax
jmp 0x1005fced
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005fddd
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x1005fd19
mov dword [ebp - 0x10], edx
jmp 0x1005fdd8
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x10299dd8
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.1005cc70
mov edx, dword [0x10299ddc]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x10299ddc]
je 0x1005fd85
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005fdd8
push 0xc
call fcn.101d9536
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0xc
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0xd
mov ecx, 0x10299dd8
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundCaptureFXAec8.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundCaptureFXAec8.1.0
mov dword [ebp - 0x1c], edx
call fcn.1005c820
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x10253840
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005fe04
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005fdf0
jmp 0x1005fe55
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x10253840
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005fe28
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005fe12
xor eax, eax
jmp 0x1005fe4d
cmp al, byte [esi]
jne 0x1005fe48
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005fe48
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005fe48
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005fe48
xor eax, eax
jmp 0x1005fe4d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005ff3d
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x1005fe79
mov dword [ebp - 0x10], edx
jmp 0x1005ff38
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x10299df8
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.1005cc70
mov edx, dword [0x10299dfc]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x10299dfc]
je 0x1005fee5
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005ff38
push 0xc
call fcn.101d9536
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0xe
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0xf
mov ecx, 0x10299df8
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundCaptureFXNoiseSuppress8.1.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundCaptureFXNoiseSuppress8.0
mov dword [ebp - 0x1c], edx
call fcn.1005c820
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x10253850
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005ff64
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005ff50
jmp 0x1005ffb5
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x10253850
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005ff88
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005ff72
xor eax, eax
jmp 0x1005ffad
cmp al, byte [esi]
jne 0x1005ffa8
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005ffa8
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005ffa8
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005ffa8
xor eax, eax
jmp 0x1005ffad
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1006009d
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x1005ffd9
mov dword [ebp - 0x10], edx
jmp 0x10060098
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x10299e18
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.1005cc70
mov edx, dword [0x10299e1c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x10299e1c]
je 0x10060045
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x10060098
push 0xc
call fcn.101d9536
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0x10
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x11
mov ecx, 0x10299e18
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundFullDuplex8.1.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundFullDuplex8.0
mov dword [ebp - 0x1c], edx
call fcn.1005c820
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x102537b0
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x100600c4
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x100600b0
jmp 0x10060115
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x102537b0
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x100600e8
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x100600d2
xor eax, eax
jmp 0x1006010d
cmp al, byte [esi]
jne 0x10060108
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x10060108
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x10060108
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x10060108
xor eax, eax
jmp 0x1006010d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100601fd
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x10060139
mov dword [ebp - 0x10], edx
jmp 0x100601f8
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x10299e38
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.1005cc70
mov edx, dword [0x10299e3c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x10299e3c]
je 0x100601a5
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x100601f8
push 0xc
call fcn.101d9536
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0x12
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x13
mov ecx, 0x10299e38
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundFXChorus8.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundFXChorus8.1.0
mov dword [ebp - 0x1c], edx
call fcn.1005c820
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x102537f0
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x10060224
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x10060210
jmp 0x10060275
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x102537f0
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x10060248
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x10060232
xor eax, eax
jmp 0x1006026d
cmp al, byte [esi]
jne 0x10060268
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x10060268
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x10060268
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x10060268
xor eax, eax
jmp 0x1006026d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1006035d
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x10060299
mov dword [ebp - 0x10], edx
jmp 0x10060358
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x10299e58
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.1005cc70
mov edx, dword [0x10299e5c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x10299e5c]
je 0x10060305
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x10060358
push 0xc
call fcn.101d9536
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0x14
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x15
mov ecx, 0x10299e58
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundFXCompressor8.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundFXCompressor8.1.0
mov dword [ebp - 0x1c], edx
call fcn.1005c820
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x102537e0
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x10060384
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x10060370
jmp 0x100603d5
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x102537e0
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x100603a8
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x10060392
xor eax, eax
jmp 0x100603cd
cmp al, byte [esi]
jne 0x100603c8
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x100603c8
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x100603c8
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x100603c8
xor eax, eax
jmp 0x100603cd
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100604bd
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x100603f9
mov dword [ebp - 0x10], edx
jmp 0x100604b8
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x10299e78
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.1005cc70
mov edx, dword [0x10299e7c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x10299e7c]
je 0x10060465
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x100604b8
push 0xc
call fcn.101d9536
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0x16
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x17
mov ecx, 0x10299e78
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundFXDistortion8.1.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundFXDistortion8.0
mov dword [ebp - 0x1c], edx
call fcn.1005c820
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x102537d0
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x100604e4
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x100604d0
jmp 0x10060535
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x102537d0
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x10060508
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x100604f2
xor eax, eax
jmp 0x1006052d
cmp al, byte [esi]
jne 0x10060528
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x10060528
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x10060528
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x10060528
xor eax, eax
jmp 0x1006052d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1006061d
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x10060559
mov dword [ebp - 0x10], edx
jmp 0x10060618
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x10299e98
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.1005cc70
mov edx, dword [0x10299e9c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x10299e9c]
je 0x100605c5
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x10060618
push 0xc
call fcn.101d9536
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0x18
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x19
mov ecx, 0x10299e98
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundFXEcho8.1.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundFXEcho8.0
mov dword [ebp - 0x1c], edx
call fcn.1005c820
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x102537c0
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x10060644
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x10060630
jmp 0x10060695
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x102537c0
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x10060668
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x10060652
xor eax, eax
jmp 0x1006068d
cmp al, byte [esi]
jne 0x10060688
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x10060688
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x10060688
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x10060688
xor eax, eax
jmp 0x1006068d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1006077d
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x100606b9
mov dword [ebp - 0x10], edx
jmp 0x10060778
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x10299eb8
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.1005cc70
mov edx, dword [0x10299ebc]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x10299ebc]
je 0x10060725
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x10060778
push 0xc
call fcn.101d9536
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0x1a
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x1b
mov ecx, 0x10299eb8
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundFXFlanger8.1.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundFXFlanger8.0
mov dword [ebp - 0x1c], edx
call fcn.1005c820
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x102537a0
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x100607a4
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x10060790
jmp 0x100607f5
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x102537a0
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x100607c8
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x100607b2
xor eax, eax
jmp 0x100607ed
cmp al, byte [esi]
jne 0x100607e8
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x100607e8
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x100607e8
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x100607e8
xor eax, eax
jmp 0x100607ed
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100608dd
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x10060819
mov dword [ebp - 0x10], edx
jmp 0x100608d8
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x10299ed8
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.1005cc70
mov edx, dword [0x10299edc]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x10299edc]
je 0x10060885
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x100608d8
push 0xc
call fcn.101d9536
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0x1c
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x1d
mov ecx, 0x10299ed8
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundFXGargle8.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundFXGargle8.1.0
mov dword [ebp - 0x1c], edx
call fcn.1005c820
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x10253810
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x10060904
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x100608f0
jmp 0x10060955
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x10253810
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x10060928
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x10060912
xor eax, eax
jmp 0x1006094d
cmp al, byte [esi]
jne 0x10060948
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x10060948
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x10060948
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x10060948
xor eax, eax
jmp 0x1006094d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10060a3d
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x10060979
mov dword [ebp - 0x10], edx
jmp 0x10060a38
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x10299ef8
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.1005cc70
mov edx, dword [0x10299efc]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x10299efc]
je 0x100609e5
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x10060a38
push 0xc
call fcn.101d9536
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0x1e
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x1f
mov ecx, 0x10299ef8
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundFXI3DL2Reverb8.1.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundFXI3DL2Reverb8.0
mov dword [ebp - 0x1c], edx
call fcn.1005c820
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x10253800
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x10060a64
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x10060a50
jmp 0x10060ab5
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x10253800
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x10060a88
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x10060a72
xor eax, eax
jmp 0x10060aad
cmp al, byte [esi]
jne 0x10060aa8
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x10060aa8
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x10060aa8
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x10060aa8
xor eax, eax
jmp 0x10060aad
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10060b9d
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x10060ad9
mov dword [ebp - 0x10], edx
jmp 0x10060b98
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x10299f18
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.1005cc70
mov edx, dword [0x10299f1c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x10299f1c]
je 0x10060b45
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x10060b98
push 0xc
call fcn.101d9536
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0x20
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x21
mov ecx, 0x10299f18
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundFXParamEq8.1.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundFXParamEq8.0
mov dword [ebp - 0x1c], edx
call fcn.1005c820
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x10253820
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x10060bc4
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x10060bb0
jmp 0x10060c15
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x10253820
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x10060be8
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x10060bd2
xor eax, eax
jmp 0x10060c0d
cmp al, byte [esi]
jne 0x10060c08
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x10060c08
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x10060c08
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x10060c08
xor eax, eax
jmp 0x10060c0d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10060caa
mov dword [ebp - 0x18], edx
test edx, edx
jne 0x10060c24
mov dword [ebp - 0x10], edx
jmp 0x10060ca5
lea eax, [ebp - 0x18]
mov ecx, 0x10299f38
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.10060e70
mov eax, dword [ebp - 0x1c]
cmp eax, dword [0x10299f3c]
je 0x10060c52
mov edx, dword [eax + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x10060ca5
push 0xc
call fcn.101d9536
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0x22
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x23
mov ecx, 0x10299f38
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundFXWavesReverb8.1.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundFXWavesReverb8.0
mov dword [ebp - 0x1c], edx
call fcn.1005c820
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x10253780
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x10060ccc
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x10060cb8
jmp 0x10060d23
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x10253780
nop word [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x10060cf6
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x10060ce0
xor eax, eax
jmp 0x10060d1b
cmp al, byte [esi]
jne 0x10060d16
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x10060d16
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x10060d16
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x10060d16
xor eax, eax
jmp 0x10060d1b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10060db8
mov dword [ebp - 0x18], edx
test edx, edx
jne 0x10060d32
mov dword [ebp - 0x10], edx
jmp 0x10060db3
lea eax, [ebp - 0x18]
mov ecx, 0x10299f58
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.10060e70
mov eax, dword [ebp - 0x1c]
cmp eax, dword [0x10299f5c]
je 0x10060d60
mov edx, dword [eax + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x10060db3
push 0xc
call fcn.101d9536
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0x24
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x25
mov ecx, 0x10299f58
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundNotify8.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundNotify8.1.0
mov dword [ebp - 0x1c], edx
call fcn.1005c820
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, 0x10253790
mov esi, 0xc
mov eax, dword [edi]
cmp eax, dword [ecx]
jne 0x10060e5a
add edi, 4
add ecx, 4
sub esi, 4
jae 0x10060dc2
mov dword [ebp - 0x1c], edx
test edx, edx
jne 0x10060de2
xor edi, edi
jmp 0x10060e55
lea eax, [ebp - 0x1c]
mov ecx, 0x10299f78
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.10060e70
mov eax, dword [ebp - 0x18]
cmp eax, dword [0x10299f7c]
je 0x10060e0d
mov edi, dword [eax + 0xc]
lea eax, [edi - 4]
neg edi
sbb edi, edi
and edi, eax
jmp 0x10060e55
push 0xc
call fcn.101d9536
mov edi, eax
add esp, 4
mov dword [ebp - 0x20], edi
lea esi, [edi + 4]
mov dword [ebp - 4], 0x26
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x27
mov ecx, 0x10299f78
mov eax, dword [ebp - 0x10]
mov dword [edi + 8], eax
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x1c]
push eax
mov dword [edi], vtable.m_IKsPropertySet.0
mov dword [esi], vtable.m_IKsPropertySet.1.0
call fcn.1005c820
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret