Function at 0x100dc310
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x102368cd
mov eax, dword fs:[0]
push eax
sub esp, 0x28
mov eax, dword [0x1033bbac]
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 0x100dde59
mov ebx, dword [eax]
test ebx, ebx
je 0x100dde59
mov edx, 0x102a7b4c
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dc373
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dc360
jmp 0x100dc3c2
mov ecx, edi
mov edx, 0x102a7b4c
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dc395
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dc380
xor eax, eax
jmp 0x100dc3ba
cmp al, byte [edx]
jne 0x100dc3b5
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100dc3b5
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100dc3b5
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100dc3b5
xor eax, eax
jmp 0x100dc3ba
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100dc497
mov eax, ebx
mov dword [ebp - 0x18], ebx
shr eax, 8
movzx ecx, al
movzx eax, bl
xor eax, 0x811c9dc5
imul eax, eax, 0x1000193
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, 0x1048a7a0
xor eax, ebx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.10063530
mov ebx, dword [0x1048a7a4]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1048a7a4]
je 0x100dc435
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100dc492
push 0xc
call fcn.1022fe7a
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, 0x1048a7a0
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.10062bd0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x102a7b3c
mov esi, 0xc
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dc4b6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dc4a3
jmp 0x100dc504
mov ecx, edi
mov edx, 0x102a7b3c
mov esi, 0xc
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dc4d7
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dc4c2
xor eax, eax
jmp 0x100dc4fc
cmp al, byte [edx]
jne 0x100dc4f7
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100dc4f7
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100dc4f7
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100dc4f7
xor eax, eax
jmp 0x100dc4fc
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100dc5ef
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 0x100dc5ea
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, 0x1048a7c0
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10063530
mov ebx, dword [0x1048a7c4]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1048a7c4]
je 0x100dc58d
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100dc5ea
push 0xc
call fcn.1022fe7a
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, 0x1048a7c0
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.10062bd0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x102a7afc
mov esi, 0xc
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dc613
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dc600
jmp 0x100dc662
mov ecx, edi
mov edx, 0x102a7b0c
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dc635
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dc620
xor eax, eax
jmp 0x100dc65a
cmp al, byte [edx]
jne 0x100dc655
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100dc655
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100dc655
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100dc655
xor eax, eax
jmp 0x100dc65a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100dc74d
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 0x100dc748
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, 0x1048a780
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10063530
mov ebx, dword [0x1048a784]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1048a784]
je 0x100dc6eb
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100dc748
push 0xc
call fcn.1022fe7a
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, 0x1048a780
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.10062bd0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x102a7b1c
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dc773
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dc760
jmp 0x100dc7c2
mov ecx, edi
mov edx, 0x102a7b2c
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dc795
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dc780
xor eax, eax
jmp 0x100dc7ba
cmp al, byte [edx]
jne 0x100dc7b5
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100dc7b5
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100dc7b5
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100dc7b5
xor eax, eax
jmp 0x100dc7ba
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100dc8ad
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 0x100dc8a8
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, 0x1048a7e0
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10063530
mov ebx, dword [0x1048a7e4]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1048a7e4]
je 0x100dc84b
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100dc8a8
push 0xc
call fcn.1022fe7a
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, 0x1048a7e0
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.10062bd0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x102a7b5c
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dc8d3
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dc8c0
jmp 0x100dc922
mov ecx, edi
mov edx, 0x102a7b5c
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dc8f5
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dc8e0
xor eax, eax
jmp 0x100dc91a
cmp al, byte [edx]
jne 0x100dc915
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100dc915
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100dc915
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100dc915
xor eax, eax
jmp 0x100dc91a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100dca0d
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 0x100dca08
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, 0x1048a800
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10063530
mov ebx, dword [0x1048a804]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1048a804]
je 0x100dc9ab
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100dca08
push 0xc
call fcn.1022fe7a
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, 0x1048a800
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.10062bd0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x102a7b6c
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dca33
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dca20
jmp 0x100dca82
mov ecx, edi
mov edx, 0x102a7b7c
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dca55
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dca40
xor eax, eax
jmp 0x100dca7a
cmp al, byte [edx]
jne 0x100dca75
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100dca75
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100dca75
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100dca75
xor eax, eax
jmp 0x100dca7a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100dcb6d
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 0x100dcb68
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, 0x1048a820
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10063530
mov ebx, dword [0x1048a824]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1048a824]
je 0x100dcb0b
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100dcb68
push 0xc
call fcn.1022fe7a
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, 0x1048a820
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.10062bd0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x102a7c3c
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dcb93
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dcb80
jmp 0x100dcbe2
mov ecx, edi
mov edx, 0x102a7c3c
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dcbb5
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dcba0
xor eax, eax
jmp 0x100dcbda
cmp al, byte [edx]
jne 0x100dcbd5
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100dcbd5
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100dcbd5
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100dcbd5
xor eax, eax
jmp 0x100dcbda
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100dcccd
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 0x100dccc8
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, 0x1048a840
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10063530
mov ebx, dword [0x1048a844]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1048a844]
je 0x100dcc6b
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100dccc8
push 0xc
call fcn.1022fe7a
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, 0x1048a840
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.10062bd0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x102a7c4c
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dccf3
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dcce0
jmp 0x100dcd42
mov ecx, edi
mov edx, 0x102a7c4c
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dcd15
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dcd00
xor eax, eax
jmp 0x100dcd3a
cmp al, byte [edx]
jne 0x100dcd35
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100dcd35
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100dcd35
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100dcd35
xor eax, eax
jmp 0x100dcd3a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100dce2d
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 0x100dce28
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, 0x1048a860
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10063530
mov ebx, dword [0x1048a864]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1048a864]
je 0x100dcdcb
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100dce28
push 0xc
call fcn.1022fe7a
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, 0x1048a860
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.10062bd0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x102a7c5c
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dce53
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dce40
jmp 0x100dcea2
mov ecx, edi
mov edx, 0x102a7c5c
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dce75
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dce60
xor eax, eax
jmp 0x100dce9a
cmp al, byte [edx]
jne 0x100dce95
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100dce95
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100dce95
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100dce95
xor eax, eax
jmp 0x100dce9a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100dcf8d
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 0x100dcf88
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, 0x1048a880
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10063530
mov ebx, dword [0x1048a884]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1048a884]
je 0x100dcf2b
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100dcf88
push 0xc
call fcn.1022fe7a
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, 0x1048a880
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.10062bd0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x102a7bbc
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dcfb3
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dcfa0
jmp 0x100dd002
mov ecx, edi
mov edx, 0x102a7bbc
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dcfd5
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dcfc0
xor eax, eax
jmp 0x100dcffa
cmp al, byte [edx]
jne 0x100dcff5
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100dcff5
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100dcff5
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100dcff5
xor eax, eax
jmp 0x100dcffa
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100dd0ed
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 0x100dd0e8
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, 0x1048a8a0
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10063530
mov ebx, dword [0x1048a8a4]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1048a8a4]
je 0x100dd08b
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100dd0e8
push 0xc
call fcn.1022fe7a
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, 0x1048a8a0
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.10062bd0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x102a7bfc
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dd113
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dd100
jmp 0x100dd162
mov ecx, edi
mov edx, 0x102a7bfc
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dd135
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dd120
xor eax, eax
jmp 0x100dd15a
cmp al, byte [edx]
jne 0x100dd155
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100dd155
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100dd155
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100dd155
xor eax, eax
jmp 0x100dd15a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100dd24d
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 0x100dd248
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, 0x1048a8c0
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10063530
mov ebx, dword [0x1048a8c4]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1048a8c4]
je 0x100dd1eb
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100dd248
push 0xc
call fcn.1022fe7a
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, 0x1048a8c0
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.10062bd0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x102a7bec
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dd273
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dd260
jmp 0x100dd2c2
mov ecx, edi
mov edx, 0x102a7bec
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dd295
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dd280
xor eax, eax
jmp 0x100dd2ba
cmp al, byte [edx]
jne 0x100dd2b5
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100dd2b5
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100dd2b5
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100dd2b5
xor eax, eax
jmp 0x100dd2ba
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100dd3ad
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 0x100dd3a8
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, 0x1048a8e0
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10063530
mov ebx, dword [0x1048a8e4]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1048a8e4]
je 0x100dd34b
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100dd3a8
push 0xc
call fcn.1022fe7a
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, 0x1048a8e0
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.10062bd0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x102a7bdc
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dd3d3
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dd3c0
jmp 0x100dd422
mov ecx, edi
mov edx, 0x102a7bdc
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dd3f5
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dd3e0
xor eax, eax
jmp 0x100dd41a
cmp al, byte [edx]
jne 0x100dd415
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100dd415
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100dd415
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100dd415
xor eax, eax
jmp 0x100dd41a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100dd50d
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 0x100dd508
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, 0x1048a900
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10063530
mov ebx, dword [0x1048a904]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1048a904]
je 0x100dd4ab
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100dd508
push 0xc
call fcn.1022fe7a
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, 0x1048a900
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.10062bd0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x102a7bcc
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dd533
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dd520
jmp 0x100dd582
mov ecx, edi
mov edx, 0x102a7bcc
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dd555
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dd540
xor eax, eax
jmp 0x100dd57a
cmp al, byte [edx]
jne 0x100dd575
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100dd575
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100dd575
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100dd575
xor eax, eax
jmp 0x100dd57a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100dd66d
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 0x100dd668
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, 0x1048a920
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10063530
mov ebx, dword [0x1048a924]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1048a924]
je 0x100dd60b
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100dd668
push 0xc
call fcn.1022fe7a
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, 0x1048a920
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.10062bd0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x102a7bac
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dd693
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dd680
jmp 0x100dd6e2
mov ecx, edi
mov edx, 0x102a7bac
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dd6b5
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dd6a0
xor eax, eax
jmp 0x100dd6da
cmp al, byte [edx]
jne 0x100dd6d5
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100dd6d5
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100dd6d5
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100dd6d5
xor eax, eax
jmp 0x100dd6da
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100dd7cd
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 0x100dd7c8
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, 0x1048a940
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10063530
mov ebx, dword [0x1048a944]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1048a944]
je 0x100dd76b
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100dd7c8
push 0xc
call fcn.1022fe7a
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, 0x1048a940
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.10062bd0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x102a7c1c
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dd7f3
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dd7e0
jmp 0x100dd842
mov ecx, edi
mov edx, 0x102a7c1c
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dd815
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dd800
xor eax, eax
jmp 0x100dd83a
cmp al, byte [edx]
jne 0x100dd835
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100dd835
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100dd835
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100dd835
xor eax, eax
jmp 0x100dd83a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100dd92d
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 0x100dd928
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, 0x1048a960
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10063530
mov ebx, dword [0x1048a964]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1048a964]
je 0x100dd8cb
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100dd928
push 0xc
call fcn.1022fe7a
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, 0x1048a960
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.10062bd0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x102a7c0c
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dd953
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dd940
jmp 0x100dd9a2
mov ecx, edi
mov edx, 0x102a7c0c
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100dd975
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100dd960
xor eax, eax
jmp 0x100dd99a
cmp al, byte [edx]
jne 0x100dd995
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100dd995
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100dd995
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100dd995
xor eax, eax
jmp 0x100dd99a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100dda8d
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 0x100dda88
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, 0x1048a980
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10063530
mov ebx, dword [0x1048a984]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1048a984]
je 0x100dda2b
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100dda88
push 0xc
call fcn.1022fe7a
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, 0x1048a980
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.10062bd0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x102a7c2c
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100ddab3
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100ddaa0
jmp 0x100ddb02
mov ecx, edi
mov edx, 0x102a7c2c
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100ddad5
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100ddac0
xor eax, eax
jmp 0x100ddafa
cmp al, byte [edx]
jne 0x100ddaf5
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100ddaf5
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100ddaf5
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100ddaf5
xor eax, eax
jmp 0x100ddafa
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100ddbed
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 0x100ddbe8
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, 0x1048a9a0
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10063530
mov ebx, dword [0x1048a9a4]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1048a9a4]
je 0x100ddb8b
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100ddbe8
push 0xc
call fcn.1022fe7a
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, 0x1048a9a0
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.10062bd0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x102a7b8c
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100ddc13
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100ddc00
jmp 0x100ddc62
mov ecx, edi
mov edx, 0x102a7b8c
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100ddc35
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100ddc20
xor eax, eax
jmp 0x100ddc5a
cmp al, byte [edx]
jne 0x100ddc55
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100ddc55
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100ddc55
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100ddc55
xor eax, eax
jmp 0x100ddc5a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100ddd4d
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 0x100ddd48
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, 0x1048a9c0
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10063530
mov ebx, dword [0x1048a9c4]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1048a9c4]
je 0x100ddceb
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100ddd48
push 0xc
call fcn.1022fe7a
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, 0x1048a9c0
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.10062bd0
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, 0x102a7b9c
mov edx, 0xc
nop word [eax + eax]
mov eax, dword [edi]
cmp eax, dword [ecx]
jne 0x100dde59
add edi, 4
add ecx, 4
sub edx, 4
jae 0x100ddd60
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 0x100ddd98
xor edi, edi
jmp 0x100dde54
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, 0x1048a9e0
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.10063530
mov edi, dword [0x1048a9e4]
mov eax, dword [eax + 4]
test eax, eax
cmovne edi, eax
cmp edi, dword [0x1048a9e4]
je 0x100dde01
mov edi, dword [edi + 0xc]
lea eax, [edi - 4]
neg edi
sbb edi, edi
and edi, eax
jmp 0x100dde54
push 0xc
call fcn.1022fe7a
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, 0x1048a9e0
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.10062bd0
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.1022fc6a
mov esp, ebp
pop ebp
ret