Function at 0x10086fd0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100948ad
mov eax, dword fs:[0]
push eax
sub esp, 0x28
mov eax, dword [0x101a400c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, edx
mov dword [ebp - 0x24], eax
mov edi, ecx
test eax, eax
je 0x10088b19
mov ebx, dword [eax]
test ebx, ebx
je 0x10088b19
mov edx, 0x1009675c
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10087033
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10087020
jmp 0x10087082
mov ecx, edi
mov edx, 0x1009675c
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10087055
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10087040
xor eax, eax
jmp 0x1008707a
cmp al, byte [edx]
jne 0x10087075
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10087075
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10087075
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x10087075
xor eax, eax
jmp 0x1008707a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10087157
movzx eax, bl
xor eax, 0x811c9dc5
mov dword [ebp - 0x18], ebx
imul ecx, eax, 0x1000193
mov eax, ebx
shr eax, 8
movzx eax, al
xor ecx, eax
mov eax, ebx
shr eax, 0x10
imul ecx, ecx, 0x1000193
movzx eax, al
shr ebx, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x101d9178
xor eax, ebx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.10010fa0
mov ebx, dword [0x101d917c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x101d917c]
je 0x100870f5
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x10087152
push 0xc
call fcn.1008f015
mov ebx, eax
add esp, 4
mov dword [ebp - 0x14], ebx
mov dword [ebp - 4], 0
lea esi, [ebx + 4]
xorps xmm0, xmm0
movq qword [ebx], xmm0
mov dword [ebx + 8], 0
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 1
mov ecx, 0x101d9178
mov eax, dword [ebp - 0x18]
mov dword [ebx + 8], eax
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
push eax
mov dword [ebx], vtable.m_IDirectSound3DBuffer8.1.0
mov dword [esi], vtable.m_IDirectSound3DBuffer8.0
call fcn.10010ad0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x1009674c
mov esi, 0xc
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10087176
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10087163
jmp 0x100871c4
mov ecx, edi
mov edx, 0x1009674c
mov esi, 0xc
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10087197
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10087182
xor eax, eax
jmp 0x100871bc
cmp al, byte [edx]
jne 0x100871b7
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100871b7
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100871b7
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100871b7
xor eax, eax
jmp 0x100871bc
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100872af
mov eax, ebx
mov dword [ebp - 0x18], ebx
shr eax, 0x10
mov edx, ebx
mov dword [ebp - 0x14], eax
mov eax, ebx
shr eax, 8
shr edx, 0x18
mov dword [ebp - 0x1c], eax
test ebx, ebx
je 0x100872aa
movzx eax, bl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x14]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x101d9198
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10010fa0
mov ebx, dword [0x101d919c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x101d919c]
je 0x1008724d
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100872aa
push 0xc
call fcn.1008f015
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], 2
lea esi, [ebx + 4]
xorps xmm0, xmm0
movq qword [ebx], xmm0
mov dword [ebx + 8], 0
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 3
mov ecx, 0x101d9198
mov eax, dword [ebp - 0x18]
mov dword [ebx + 8], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
mov dword [ebx], vtable.m_IDirectSound3DListener8.0
mov dword [esi], vtable.m_IDirectSound3DListener8.1.0
call fcn.10010ad0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x1009670c
mov esi, 0xc
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100872d3
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100872c0
jmp 0x10087322
mov ecx, edi
mov edx, 0x1009671c
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100872f5
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100872e0
xor eax, eax
jmp 0x1008731a
cmp al, byte [edx]
jne 0x10087315
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10087315
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10087315
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x10087315
xor eax, eax
jmp 0x1008731a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1008740d
mov eax, ebx
mov dword [ebp - 0x18], ebx
shr eax, 0x10
mov edx, ebx
mov dword [ebp - 0x1c], eax
mov eax, ebx
shr eax, 8
shr edx, 0x18
mov dword [ebp - 0x14], eax
test ebx, ebx
je 0x10087408
movzx eax, bl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x14]
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, 0x101d9158
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10010fa0
mov ebx, dword [0x101d915c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x101d915c]
je 0x100873ab
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x10087408
push 0xc
call fcn.1008f015
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], 4
lea esi, [ebx + 4]
xorps xmm0, xmm0
movq qword [ebx], xmm0
mov dword [ebx + 8], 0
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 5
mov ecx, 0x101d9158
mov eax, dword [ebp - 0x18]
mov dword [ebx + 8], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
mov dword [ebx], vtable.m_IDirectSound8.0
mov dword [esi], vtable.m_IDirectSound8.1.0
call fcn.10010ad0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x1009672c
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10087433
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10087420
jmp 0x10087482
mov ecx, edi
mov edx, 0x1009673c
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10087455
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10087440
xor eax, eax
jmp 0x1008747a
cmp al, byte [edx]
jne 0x10087475
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10087475
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10087475
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x10087475
xor eax, eax
jmp 0x1008747a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1008756d
mov eax, ebx
mov dword [ebp - 0x18], ebx
shr eax, 0x10
mov edx, ebx
mov dword [ebp - 0x1c], eax
mov eax, ebx
shr eax, 8
shr edx, 0x18
mov dword [ebp - 0x14], eax
test ebx, ebx
je 0x10087568
movzx eax, bl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x14]
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, 0x101d91b8
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10010fa0
mov ebx, dword [0x101d91bc]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x101d91bc]
je 0x1008750b
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x10087568
push 0xc
call fcn.1008f015
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], 6
lea esi, [ebx + 4]
xorps xmm0, xmm0
movq qword [ebx], xmm0
mov dword [ebx + 8], 0
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 7
mov ecx, 0x101d91b8
mov eax, dword [ebp - 0x18]
mov dword [ebx + 8], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
mov dword [ebx], vtable.m_IDirectSoundBuffer8.1.0
mov dword [esi], vtable.m_IDirectSoundBuffer8.0
call fcn.10010ad0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x1009676c
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10087593
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10087580
jmp 0x100875e2
mov ecx, edi
mov edx, 0x1009676c
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100875b5
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100875a0
xor eax, eax
jmp 0x100875da
cmp al, byte [edx]
jne 0x100875d5
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100875d5
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100875d5
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100875d5
xor eax, eax
jmp 0x100875da
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100876cd
mov eax, ebx
mov dword [ebp - 0x18], ebx
shr eax, 0x10
mov edx, ebx
mov dword [ebp - 0x1c], eax
mov eax, ebx
shr eax, 8
shr edx, 0x18
mov dword [ebp - 0x14], eax
test ebx, ebx
je 0x100876c8
movzx eax, bl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x14]
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, 0x101d91d8
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10010fa0
mov ebx, dword [0x101d91dc]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x101d91dc]
je 0x1008766b
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100876c8
push 0xc
call fcn.1008f015
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], 8
lea esi, [ebx + 4]
xorps xmm0, xmm0
movq qword [ebx], xmm0
mov dword [ebx + 8], 0
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 9
mov ecx, 0x101d91d8
mov eax, dword [ebp - 0x18]
mov dword [ebx + 8], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
mov dword [ebx], vtable.m_IDirectSoundCapture8.1.0
mov dword [esi], vtable.m_IDirectSoundCapture8.0
call fcn.10010ad0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x1009677c
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100876f3
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100876e0
jmp 0x10087742
mov ecx, edi
mov edx, 0x1009678c
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10087715
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10087700
xor eax, eax
jmp 0x1008773a
cmp al, byte [edx]
jne 0x10087735
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10087735
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10087735
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x10087735
xor eax, eax
jmp 0x1008773a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1008782d
mov eax, ebx
mov dword [ebp - 0x18], ebx
shr eax, 0x10
mov edx, ebx
mov dword [ebp - 0x1c], eax
mov eax, ebx
shr eax, 8
shr edx, 0x18
mov dword [ebp - 0x14], eax
test ebx, ebx
je 0x10087828
movzx eax, bl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x14]
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, 0x101d91f8
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10010fa0
mov ebx, dword [0x101d91fc]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x101d91fc]
je 0x100877cb
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x10087828
push 0xc
call fcn.1008f015
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], 0xa
lea esi, [ebx + 4]
xorps xmm0, xmm0
movq qword [ebx], xmm0
mov dword [ebx + 8], 0
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0xb
mov ecx, 0x101d91f8
mov eax, dword [ebp - 0x18]
mov dword [ebx + 8], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
mov dword [ebx], vtable.m_IDirectSoundCaptureBuffer8.0
mov dword [esi], vtable.m_IDirectSoundCaptureBuffer8.1.0
call fcn.10010ad0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x1009684c
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10087853
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10087840
jmp 0x100878a2
mov ecx, edi
mov edx, 0x1009684c
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10087875
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10087860
xor eax, eax
jmp 0x1008789a
cmp al, byte [edx]
jne 0x10087895
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10087895
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10087895
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x10087895
xor eax, eax
jmp 0x1008789a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1008798d
mov eax, ebx
mov dword [ebp - 0x18], ebx
shr eax, 0x10
mov edx, ebx
mov dword [ebp - 0x1c], eax
mov eax, ebx
shr eax, 8
shr edx, 0x18
mov dword [ebp - 0x14], eax
test ebx, ebx
je 0x10087988
movzx eax, bl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x14]
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, 0x101d9218
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10010fa0
mov ebx, dword [0x101d921c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x101d921c]
je 0x1008792b
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x10087988
push 0xc
call fcn.1008f015
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], 0xc
lea esi, [ebx + 4]
xorps xmm0, xmm0
movq qword [ebx], xmm0
mov dword [ebx + 8], 0
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0xd
mov ecx, 0x101d9218
mov eax, dword [ebp - 0x18]
mov dword [ebx + 8], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
mov dword [ebx], vtable.m_IDirectSoundCaptureFXAec8.0
mov dword [esi], vtable.m_IDirectSoundCaptureFXAec8.1.0
call fcn.10010ad0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x1009685c
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100879b3
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100879a0
jmp 0x10087a02
mov ecx, edi
mov edx, 0x1009685c
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100879d5
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100879c0
xor eax, eax
jmp 0x100879fa
cmp al, byte [edx]
jne 0x100879f5
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100879f5
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100879f5
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100879f5
xor eax, eax
jmp 0x100879fa
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10087aed
mov eax, ebx
mov dword [ebp - 0x18], ebx
shr eax, 0x10
mov edx, ebx
mov dword [ebp - 0x1c], eax
mov eax, ebx
shr eax, 8
shr edx, 0x18
mov dword [ebp - 0x14], eax
test ebx, ebx
je 0x10087ae8
movzx eax, bl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x14]
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, 0x101d9238
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10010fa0
mov ebx, dword [0x101d923c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x101d923c]
je 0x10087a8b
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x10087ae8
push 0xc
call fcn.1008f015
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], 0xe
lea esi, [ebx + 4]
xorps xmm0, xmm0
movq qword [ebx], xmm0
mov dword [ebx + 8], 0
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0xf
mov ecx, 0x101d9238
mov eax, dword [ebp - 0x18]
mov dword [ebx + 8], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
mov dword [ebx], vtable.m_IDirectSoundCaptureFXNoiseSuppress8.0
mov dword [esi], vtable.m_IDirectSoundCaptureFXNoiseSuppress8.1.0
call fcn.10010ad0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x1009686c
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10087b13
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10087b00
jmp 0x10087b62
mov ecx, edi
mov edx, 0x1009686c
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10087b35
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10087b20
xor eax, eax
jmp 0x10087b5a
cmp al, byte [edx]
jne 0x10087b55
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10087b55
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10087b55
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x10087b55
xor eax, eax
jmp 0x10087b5a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10087c4d
mov eax, ebx
mov dword [ebp - 0x18], ebx
shr eax, 0x10
mov edx, ebx
mov dword [ebp - 0x1c], eax
mov eax, ebx
shr eax, 8
shr edx, 0x18
mov dword [ebp - 0x14], eax
test ebx, ebx
je 0x10087c48
movzx eax, bl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x14]
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, 0x101d9258
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10010fa0
mov ebx, dword [0x101d925c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x101d925c]
je 0x10087beb
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x10087c48
push 0xc
call fcn.1008f015
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], 0x10
lea esi, [ebx + 4]
xorps xmm0, xmm0
movq qword [ebx], xmm0
mov dword [ebx + 8], 0
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x11
mov ecx, 0x101d9258
mov eax, dword [ebp - 0x18]
mov dword [ebx + 8], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
mov dword [ebx], vtable.m_IDirectSoundFullDuplex8.1.0
mov dword [esi], vtable.m_IDirectSoundFullDuplex8.0
call fcn.10010ad0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x100967cc
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10087c73
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10087c60
jmp 0x10087cc2
mov ecx, edi
mov edx, 0x100967cc
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10087c95
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10087c80
xor eax, eax
jmp 0x10087cba
cmp al, byte [edx]
jne 0x10087cb5
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10087cb5
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10087cb5
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x10087cb5
xor eax, eax
jmp 0x10087cba
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10087dad
mov eax, ebx
mov dword [ebp - 0x18], ebx
shr eax, 0x10
mov edx, ebx
mov dword [ebp - 0x1c], eax
mov eax, ebx
shr eax, 8
shr edx, 0x18
mov dword [ebp - 0x14], eax
test ebx, ebx
je 0x10087da8
movzx eax, bl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x14]
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, 0x101d9278
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10010fa0
mov ebx, dword [0x101d927c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x101d927c]
je 0x10087d4b
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x10087da8
push 0xc
call fcn.1008f015
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], 0x12
lea esi, [ebx + 4]
xorps xmm0, xmm0
movq qword [ebx], xmm0
mov dword [ebx + 8], 0
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x13
mov ecx, 0x101d9278
mov eax, dword [ebp - 0x18]
mov dword [ebx + 8], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
mov dword [ebx], vtable.m_IDirectSoundFXChorus8.0
mov dword [esi], vtable.m_IDirectSoundFXChorus8.1.0
call fcn.10010ad0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x1009680c
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10087dd3
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10087dc0
jmp 0x10087e22
mov ecx, edi
mov edx, 0x1009680c
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10087df5
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10087de0
xor eax, eax
jmp 0x10087e1a
cmp al, byte [edx]
jne 0x10087e15
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10087e15
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10087e15
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x10087e15
xor eax, eax
jmp 0x10087e1a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10087f0d
mov eax, ebx
mov dword [ebp - 0x18], ebx
shr eax, 0x10
mov edx, ebx
mov dword [ebp - 0x1c], eax
mov eax, ebx
shr eax, 8
shr edx, 0x18
mov dword [ebp - 0x14], eax
test ebx, ebx
je 0x10087f08
movzx eax, bl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x14]
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, 0x101d9298
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10010fa0
mov ebx, dword [0x101d929c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x101d929c]
je 0x10087eab
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x10087f08
push 0xc
call fcn.1008f015
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], 0x14
lea esi, [ebx + 4]
xorps xmm0, xmm0
movq qword [ebx], xmm0
mov dword [ebx + 8], 0
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x15
mov ecx, 0x101d9298
mov eax, dword [ebp - 0x18]
mov dword [ebx + 8], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
mov dword [ebx], vtable.m_IDirectSoundFXCompressor8.1.0
mov dword [esi], vtable.m_IDirectSoundFXCompressor8.0
call fcn.10010ad0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x100967fc
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10087f33
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10087f20
jmp 0x10087f82
mov ecx, edi
mov edx, 0x100967fc
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10087f55
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10087f40
xor eax, eax
jmp 0x10087f7a
cmp al, byte [edx]
jne 0x10087f75
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10087f75
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10087f75
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x10087f75
xor eax, eax
jmp 0x10087f7a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1008806d
mov eax, ebx
mov dword [ebp - 0x18], ebx
shr eax, 0x10
mov edx, ebx
mov dword [ebp - 0x1c], eax
mov eax, ebx
shr eax, 8
shr edx, 0x18
mov dword [ebp - 0x14], eax
test ebx, ebx
je 0x10088068
movzx eax, bl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x14]
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, 0x101d92b8
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10010fa0
mov ebx, dword [0x101d92bc]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x101d92bc]
je 0x1008800b
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x10088068
push 0xc
call fcn.1008f015
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], 0x16
lea esi, [ebx + 4]
xorps xmm0, xmm0
movq qword [ebx], xmm0
mov dword [ebx + 8], 0
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x17
mov ecx, 0x101d92b8
mov eax, dword [ebp - 0x18]
mov dword [ebx + 8], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
mov dword [ebx], vtable.m_IDirectSoundFXDistortion8.0
mov dword [esi], vtable.m_IDirectSoundFXDistortion8.1.0
call fcn.10010ad0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x100967ec
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10088093
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10088080
jmp 0x100880e2
mov ecx, edi
mov edx, 0x100967ec
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100880b5
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100880a0
xor eax, eax
jmp 0x100880da
cmp al, byte [edx]
jne 0x100880d5
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100880d5
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100880d5
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100880d5
xor eax, eax
jmp 0x100880da
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100881cd
mov eax, ebx
mov dword [ebp - 0x18], ebx
shr eax, 0x10
mov edx, ebx
mov dword [ebp - 0x1c], eax
mov eax, ebx
shr eax, 8
shr edx, 0x18
mov dword [ebp - 0x14], eax
test ebx, ebx
je 0x100881c8
movzx eax, bl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x14]
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, 0x101d92d8
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10010fa0
mov ebx, dword [0x101d92dc]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x101d92dc]
je 0x1008816b
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100881c8
push 0xc
call fcn.1008f015
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], 0x18
lea esi, [ebx + 4]
xorps xmm0, xmm0
movq qword [ebx], xmm0
mov dword [ebx + 8], 0
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x19
mov ecx, 0x101d92d8
mov eax, dword [ebp - 0x18]
mov dword [ebx + 8], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
mov dword [ebx], vtable.m_IDirectSoundFXEcho8.0
mov dword [esi], vtable.m_IDirectSoundFXEcho8.1.0
call fcn.10010ad0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x100967dc
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100881f3
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100881e0
jmp 0x10088242
mov ecx, edi
mov edx, 0x100967dc
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10088215
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10088200
xor eax, eax
jmp 0x1008823a
cmp al, byte [edx]
jne 0x10088235
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10088235
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10088235
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x10088235
xor eax, eax
jmp 0x1008823a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1008832d
mov eax, ebx
mov dword [ebp - 0x18], ebx
shr eax, 0x10
mov edx, ebx
mov dword [ebp - 0x1c], eax
mov eax, ebx
shr eax, 8
shr edx, 0x18
mov dword [ebp - 0x14], eax
test ebx, ebx
je 0x10088328
movzx eax, bl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x14]
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, 0x101d92f8
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10010fa0
mov ebx, dword [0x101d92fc]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x101d92fc]
je 0x100882cb
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x10088328
push 0xc
call fcn.1008f015
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], 0x1a
lea esi, [ebx + 4]
xorps xmm0, xmm0
movq qword [ebx], xmm0
mov dword [ebx + 8], 0
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x1b
mov ecx, 0x101d92f8
mov eax, dword [ebp - 0x18]
mov dword [ebx + 8], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
mov dword [ebx], vtable.m_IDirectSoundFXFlanger8.1.0
mov dword [esi], vtable.m_IDirectSoundFXFlanger8.0
call fcn.10010ad0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x100967bc
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10088353
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10088340
jmp 0x100883a2
mov ecx, edi
mov edx, 0x100967bc
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10088375
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10088360
xor eax, eax
jmp 0x1008839a
cmp al, byte [edx]
jne 0x10088395
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10088395
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10088395
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x10088395
xor eax, eax
jmp 0x1008839a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1008848d
mov eax, ebx
mov dword [ebp - 0x18], ebx
shr eax, 0x10
mov edx, ebx
mov dword [ebp - 0x1c], eax
mov eax, ebx
shr eax, 8
shr edx, 0x18
mov dword [ebp - 0x14], eax
test ebx, ebx
je 0x10088488
movzx eax, bl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x14]
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, 0x101d9318
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10010fa0
mov ebx, dword [0x101d931c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x101d931c]
je 0x1008842b
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x10088488
push 0xc
call fcn.1008f015
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], 0x1c
lea esi, [ebx + 4]
xorps xmm0, xmm0
movq qword [ebx], xmm0
mov dword [ebx + 8], 0
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x1d
mov ecx, 0x101d9318
mov eax, dword [ebp - 0x18]
mov dword [ebx + 8], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
mov dword [ebx], vtable.m_IDirectSoundFXGargle8.1.0
mov dword [esi], vtable.m_IDirectSoundFXGargle8.0
call fcn.10010ad0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x1009682c
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100884b3
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100884a0
jmp 0x10088502
mov ecx, edi
mov edx, 0x1009682c
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100884d5
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100884c0
xor eax, eax
jmp 0x100884fa
cmp al, byte [edx]
jne 0x100884f5
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100884f5
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100884f5
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100884f5
xor eax, eax
jmp 0x100884fa
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100885ed
mov eax, ebx
mov dword [ebp - 0x18], ebx
shr eax, 0x10
mov edx, ebx
mov dword [ebp - 0x1c], eax
mov eax, ebx
shr eax, 8
shr edx, 0x18
mov dword [ebp - 0x14], eax
test ebx, ebx
je 0x100885e8
movzx eax, bl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x14]
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, 0x101d9338
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10010fa0
mov ebx, dword [0x101d933c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x101d933c]
je 0x1008858b
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100885e8
push 0xc
call fcn.1008f015
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], 0x1e
lea esi, [ebx + 4]
xorps xmm0, xmm0
movq qword [ebx], xmm0
mov dword [ebx + 8], 0
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x1f
mov ecx, 0x101d9338
mov eax, dword [ebp - 0x18]
mov dword [ebx + 8], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
mov dword [ebx], vtable.m_IDirectSoundFXI3DL2Reverb8.1.0
mov dword [esi], vtable.m_IDirectSoundFXI3DL2Reverb8.0
call fcn.10010ad0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x1009681c
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10088613
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10088600
jmp 0x10088662
mov ecx, edi
mov edx, 0x1009681c
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10088635
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10088620
xor eax, eax
jmp 0x1008865a
cmp al, byte [edx]
jne 0x10088655
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10088655
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10088655
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x10088655
xor eax, eax
jmp 0x1008865a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1008874d
mov eax, ebx
mov dword [ebp - 0x18], ebx
shr eax, 0x10
mov edx, ebx
mov dword [ebp - 0x1c], eax
mov eax, ebx
shr eax, 8
shr edx, 0x18
mov dword [ebp - 0x14], eax
test ebx, ebx
je 0x10088748
movzx eax, bl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x14]
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, 0x101d9358
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10010fa0
mov ebx, dword [0x101d935c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x101d935c]
je 0x100886eb
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x10088748
push 0xc
call fcn.1008f015
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], 0x20
lea esi, [ebx + 4]
xorps xmm0, xmm0
movq qword [ebx], xmm0
mov dword [ebx + 8], 0
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x21
mov ecx, 0x101d9358
mov eax, dword [ebp - 0x18]
mov dword [ebx + 8], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
mov dword [ebx], vtable.m_IDirectSoundFXParamEq8.1.0
mov dword [esi], vtable.m_IDirectSoundFXParamEq8.0
call fcn.10010ad0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x1009683c
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10088773
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10088760
jmp 0x100887c2
mov ecx, edi
mov edx, 0x1009683c
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10088795
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10088780
xor eax, eax
jmp 0x100887ba
cmp al, byte [edx]
jne 0x100887b5
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100887b5
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100887b5
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100887b5
xor eax, eax
jmp 0x100887ba
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100888ad
mov eax, ebx
mov dword [ebp - 0x18], ebx
shr eax, 0x10
mov edx, ebx
mov dword [ebp - 0x1c], eax
mov eax, ebx
shr eax, 8
shr edx, 0x18
mov dword [ebp - 0x14], eax
test ebx, ebx
je 0x100888a8
movzx eax, bl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x14]
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, 0x101d9378
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10010fa0
mov ebx, dword [0x101d937c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x101d937c]
je 0x1008884b
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100888a8
push 0xc
call fcn.1008f015
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], 0x22
lea esi, [ebx + 4]
xorps xmm0, xmm0
movq qword [ebx], xmm0
mov dword [ebx + 8], 0
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x23
mov ecx, 0x101d9378
mov eax, dword [ebp - 0x18]
mov dword [ebx + 8], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
mov dword [ebx], vtable.m_IDirectSoundFXWavesReverb8.0
mov dword [esi], vtable.m_IDirectSoundFXWavesReverb8.1.0
call fcn.10010ad0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x1009679c
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100888d3
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100888c0
jmp 0x10088922
mov ecx, edi
mov edx, 0x1009679c
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100888f5
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100888e0
xor eax, eax
jmp 0x1008891a
cmp al, byte [edx]
jne 0x10088915
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10088915
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10088915
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x10088915
xor eax, eax
jmp 0x1008891a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10088a0d
mov eax, ebx
mov dword [ebp - 0x18], ebx
shr eax, 0x10
mov edx, ebx
mov dword [ebp - 0x1c], eax
mov eax, ebx
shr eax, 8
shr edx, 0x18
mov dword [ebp - 0x14], eax
test ebx, ebx
je 0x10088a08
movzx eax, bl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x14]
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, 0x101d9398
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10010fa0
mov ebx, dword [0x101d939c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x101d939c]
je 0x100889ab
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x10088a08
push 0xc
call fcn.1008f015
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], 0x24
lea esi, [ebx + 4]
xorps xmm0, xmm0
movq qword [ebx], xmm0
mov dword [ebx + 8], 0
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x25
mov ecx, 0x101d9398
mov eax, dword [ebp - 0x18]
mov dword [ebx + 8], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
mov dword [ebx], vtable.m_IDirectSoundNotify8.1.0
mov dword [esi], vtable.m_IDirectSoundNotify8.0
call fcn.10010ad0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, 0x100967ac
mov edx, 0xc
nop word [eax + eax]
mov eax, dword [edi]
cmp eax, dword [ecx]
jne 0x10088b19
add edi, 4
add ecx, 4
sub edx, 4
jae 0x10088a20
mov eax, ebx
mov dword [ebp - 0x18], ebx
shr eax, 0x10
mov edx, ebx
mov dword [ebp - 0x1c], eax
mov eax, ebx
shr eax, 8
shr edx, 0x18
mov dword [ebp - 0x14], eax
test ebx, ebx
jne 0x10088a58
xor edi, edi
jmp 0x10088b14
movzx eax, bl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x14]
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, 0x101d93b8
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.10010fa0
mov edi, dword [0x101d93bc]
mov eax, dword [eax + 4]
test eax, eax
cmovne edi, eax
cmp edi, dword [0x101d93bc]
je 0x10088ac1
mov edi, dword [edi + 0xc]
lea eax, [edi - 4]
neg edi
sbb edi, edi
and edi, eax
jmp 0x10088b14
push 0xc
call fcn.1008f015
mov edi, eax
add esp, 4
mov dword [ebp - 0x1c], edi
mov dword [ebp - 4], 0x26
lea esi, [edi + 4]
xorps xmm0, xmm0
movq qword [edi], xmm0
mov dword [edi + 8], 0
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x27
lea eax, [ebp - 0x14]
push eax
mov ecx, 0x101d93b8
mov dword [edi], vtable.m_IKsPropertySet.0
mov dword [esi], vtable.m_IKsPropertySet.1.0
mov dword [edi + 8], ebx
mov dword [ebp - 0x14], ebx
call fcn.10010ad0
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1008edee
mov esp, ebp
pop ebp
ret