Function at 0x100c5c00
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x102203bd
mov eax, dword fs:[0]
push eax
sub esp, 0x28
mov eax, dword [0x10320bc0]
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 0x100c7749
mov ebx, dword [eax]
test ebx, ebx
je 0x100c7749
mov edx, 0x10290990
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c5c63
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c5c50
jmp 0x100c5cb4
mov ecx, edi
mov edx, 0x10290990
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c5c85
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c5c70
xor eax, eax
jmp 0x100c5cac
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100c5ca7
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100c5ca7
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100c5ca7
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100c5ca7
xor eax, eax
jmp 0x100c5cac
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100c5d89
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, 0x1041fb38
xor eax, ebx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.10054670
mov ebx, dword [0x1041fb3c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1041fb3c]
je 0x100c5d27
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100c5d84
push 0xc
call fcn.1021a0d0
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, 0x1041fb38
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.10054040
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x10290980
mov esi, 0xc
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c5da8
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c5d95
jmp 0x100c5df8
mov ecx, edi
mov edx, 0x10290980
mov esi, 0xc
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c5dc9
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c5db4
xor eax, eax
jmp 0x100c5df0
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100c5deb
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100c5deb
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100c5deb
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100c5deb
xor eax, eax
jmp 0x100c5df0
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100c5ee3
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 0x100c5ede
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, 0x1041fb58
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054670
mov ebx, dword [0x1041fb5c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1041fb5c]
je 0x100c5e81
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100c5ede
push 0xc
call fcn.1021a0d0
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, 0x1041fb58
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.10054040
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x10290940
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c5f03
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c5ef0
jmp 0x100c5f54
mov ecx, edi
mov edx, 0x10290950
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c5f25
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c5f10
xor eax, eax
jmp 0x100c5f4c
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100c5f47
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100c5f47
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100c5f47
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100c5f47
xor eax, eax
jmp 0x100c5f4c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100c603f
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 0x100c603a
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, 0x1041fb18
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054670
mov ebx, dword [0x1041fb1c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1041fb1c]
je 0x100c5fdd
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100c603a
push 0xc
call fcn.1021a0d0
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, 0x1041fb18
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.10054040
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x10290960
mov esi, 0xc
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c6063
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c6050
jmp 0x100c60b4
mov ecx, edi
mov edx, 0x10290970
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c6085
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c6070
xor eax, eax
jmp 0x100c60ac
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100c60a7
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100c60a7
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100c60a7
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100c60a7
xor eax, eax
jmp 0x100c60ac
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100c619f
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 0x100c619a
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, 0x1041fb78
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054670
mov ebx, dword [0x1041fb7c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1041fb7c]
je 0x100c613d
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100c619a
push 0xc
call fcn.1021a0d0
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, 0x1041fb78
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.10054040
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x102909a0
mov esi, 0xc
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c61c3
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c61b0
jmp 0x100c6214
mov ecx, edi
mov edx, 0x102909a0
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c61e5
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c61d0
xor eax, eax
jmp 0x100c620c
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100c6207
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100c6207
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100c6207
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100c6207
xor eax, eax
jmp 0x100c620c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100c62ff
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 0x100c62fa
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, 0x1041fb98
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054670
mov ebx, dword [0x1041fb9c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1041fb9c]
je 0x100c629d
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100c62fa
push 0xc
call fcn.1021a0d0
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, 0x1041fb98
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.10054040
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x102909b0
mov esi, 0xc
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c6323
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c6310
jmp 0x100c6374
mov ecx, edi
mov edx, 0x102909c0
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c6345
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c6330
xor eax, eax
jmp 0x100c636c
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100c6367
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100c6367
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100c6367
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100c6367
xor eax, eax
jmp 0x100c636c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100c645f
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 0x100c645a
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, 0x1041fbb8
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054670
mov ebx, dword [0x1041fbbc]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1041fbbc]
je 0x100c63fd
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100c645a
push 0xc
call fcn.1021a0d0
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, 0x1041fbb8
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.10054040
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x10290a80
mov esi, 0xc
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c6483
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c6470
jmp 0x100c64d4
mov ecx, edi
mov edx, 0x10290a80
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c64a5
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c6490
xor eax, eax
jmp 0x100c64cc
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100c64c7
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100c64c7
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100c64c7
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100c64c7
xor eax, eax
jmp 0x100c64cc
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100c65bf
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 0x100c65ba
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, 0x1041fbd8
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054670
mov ebx, dword [0x1041fbdc]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1041fbdc]
je 0x100c655d
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100c65ba
push 0xc
call fcn.1021a0d0
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, 0x1041fbd8
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.10054040
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x10290a90
mov esi, 0xc
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c65e3
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c65d0
jmp 0x100c6634
mov ecx, edi
mov edx, 0x10290a90
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c6605
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c65f0
xor eax, eax
jmp 0x100c662c
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100c6627
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100c6627
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100c6627
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100c6627
xor eax, eax
jmp 0x100c662c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100c671f
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 0x100c671a
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, 0x1041fbf8
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054670
mov ebx, dword [0x1041fbfc]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1041fbfc]
je 0x100c66bd
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100c671a
push 0xc
call fcn.1021a0d0
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, 0x1041fbf8
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.10054040
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x10290aa0
mov esi, 0xc
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c6743
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c6730
jmp 0x100c6794
mov ecx, edi
mov edx, 0x10290aa0
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c6765
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c6750
xor eax, eax
jmp 0x100c678c
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100c6787
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100c6787
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100c6787
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100c6787
xor eax, eax
jmp 0x100c678c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100c687f
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 0x100c687a
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, 0x1041fc18
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054670
mov ebx, dword [0x1041fc1c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1041fc1c]
je 0x100c681d
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100c687a
push 0xc
call fcn.1021a0d0
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, 0x1041fc18
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.10054040
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x10290a00
mov esi, 0xc
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c68a3
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c6890
jmp 0x100c68f4
mov ecx, edi
mov edx, 0x10290a00
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c68c5
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c68b0
xor eax, eax
jmp 0x100c68ec
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100c68e7
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100c68e7
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100c68e7
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100c68e7
xor eax, eax
jmp 0x100c68ec
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100c69df
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 0x100c69da
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, 0x1041fc38
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054670
mov ebx, dword [0x1041fc3c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1041fc3c]
je 0x100c697d
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100c69da
push 0xc
call fcn.1021a0d0
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, 0x1041fc38
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.10054040
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x10290a40
mov esi, 0xc
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c6a03
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c69f0
jmp 0x100c6a54
mov ecx, edi
mov edx, 0x10290a40
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c6a25
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c6a10
xor eax, eax
jmp 0x100c6a4c
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100c6a47
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100c6a47
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100c6a47
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100c6a47
xor eax, eax
jmp 0x100c6a4c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100c6b3f
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 0x100c6b3a
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, 0x1041fc58
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054670
mov ebx, dword [0x1041fc5c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1041fc5c]
je 0x100c6add
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100c6b3a
push 0xc
call fcn.1021a0d0
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, 0x1041fc58
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.10054040
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x10290a30
mov esi, 0xc
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c6b63
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c6b50
jmp 0x100c6bb4
mov ecx, edi
mov edx, 0x10290a30
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c6b85
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c6b70
xor eax, eax
jmp 0x100c6bac
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100c6ba7
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100c6ba7
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100c6ba7
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100c6ba7
xor eax, eax
jmp 0x100c6bac
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100c6c9f
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 0x100c6c9a
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, 0x1041fc78
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054670
mov ebx, dword [0x1041fc7c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1041fc7c]
je 0x100c6c3d
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100c6c9a
push 0xc
call fcn.1021a0d0
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, 0x1041fc78
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.10054040
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x10290a20
mov esi, 0xc
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c6cc3
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c6cb0
jmp 0x100c6d14
mov ecx, edi
mov edx, 0x10290a20
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c6ce5
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c6cd0
xor eax, eax
jmp 0x100c6d0c
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100c6d07
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100c6d07
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100c6d07
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100c6d07
xor eax, eax
jmp 0x100c6d0c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100c6dff
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 0x100c6dfa
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, 0x1041fc98
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054670
mov ebx, dword [0x1041fc9c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1041fc9c]
je 0x100c6d9d
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100c6dfa
push 0xc
call fcn.1021a0d0
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, 0x1041fc98
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.10054040
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x10290a10
mov esi, 0xc
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c6e23
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c6e10
jmp 0x100c6e74
mov ecx, edi
mov edx, 0x10290a10
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c6e45
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c6e30
xor eax, eax
jmp 0x100c6e6c
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100c6e67
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100c6e67
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100c6e67
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100c6e67
xor eax, eax
jmp 0x100c6e6c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100c6f5f
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 0x100c6f5a
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, 0x1041fcb8
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054670
mov ebx, dword [0x1041fcbc]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1041fcbc]
je 0x100c6efd
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100c6f5a
push 0xc
call fcn.1021a0d0
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, 0x1041fcb8
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.10054040
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x102909f0
mov esi, 0xc
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c6f83
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c6f70
jmp 0x100c6fd4
mov ecx, edi
mov edx, 0x102909f0
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c6fa5
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c6f90
xor eax, eax
jmp 0x100c6fcc
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100c6fc7
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100c6fc7
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100c6fc7
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100c6fc7
xor eax, eax
jmp 0x100c6fcc
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100c70bf
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 0x100c70ba
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, 0x1041fcd8
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054670
mov ebx, dword [0x1041fcdc]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1041fcdc]
je 0x100c705d
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100c70ba
push 0xc
call fcn.1021a0d0
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, 0x1041fcd8
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.10054040
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x10290a60
mov esi, 0xc
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c70e3
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c70d0
jmp 0x100c7134
mov ecx, edi
mov edx, 0x10290a60
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c7105
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c70f0
xor eax, eax
jmp 0x100c712c
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100c7127
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100c7127
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100c7127
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100c7127
xor eax, eax
jmp 0x100c712c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100c721f
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 0x100c721a
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, 0x1041fcf8
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054670
mov ebx, dword [0x1041fcfc]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1041fcfc]
je 0x100c71bd
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100c721a
push 0xc
call fcn.1021a0d0
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, 0x1041fcf8
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.10054040
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x10290a50
mov esi, 0xc
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c7243
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c7230
jmp 0x100c7294
mov ecx, edi
mov edx, 0x10290a50
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c7265
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c7250
xor eax, eax
jmp 0x100c728c
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100c7287
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100c7287
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100c7287
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100c7287
xor eax, eax
jmp 0x100c728c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100c737f
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 0x100c737a
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, 0x1041fd18
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054670
mov ebx, dword [0x1041fd1c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1041fd1c]
je 0x100c731d
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100c737a
push 0xc
call fcn.1021a0d0
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, 0x1041fd18
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.10054040
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x10290a70
mov esi, 0xc
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c73a3
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c7390
jmp 0x100c73f4
mov ecx, edi
mov edx, 0x10290a70
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c73c5
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c73b0
xor eax, eax
jmp 0x100c73ec
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100c73e7
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100c73e7
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100c73e7
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100c73e7
xor eax, eax
jmp 0x100c73ec
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100c74df
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 0x100c74da
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, 0x1041fd38
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054670
mov ebx, dword [0x1041fd3c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1041fd3c]
je 0x100c747d
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100c74da
push 0xc
call fcn.1021a0d0
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, 0x1041fd38
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.10054040
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, edi
mov edx, 0x102909d0
mov esi, 0xc
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c7503
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c74f0
jmp 0x100c7554
mov ecx, edi
mov edx, 0x102909d0
mov esi, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100c7525
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100c7510
xor eax, eax
jmp 0x100c754c
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100c7547
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100c7547
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100c7547
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100c7547
xor eax, eax
jmp 0x100c754c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100c763f
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 0x100c763a
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, 0x1041fd58
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054670
mov ebx, dword [0x1041fd5c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
cmp ebx, dword [0x1041fd5c]
je 0x100c75dd
mov ebx, dword [ebx + 0xc]
lea eax, [ebx - 4]
neg ebx
sbb ebx, ebx
and ebx, eax
jmp 0x100c763a
push 0xc
call fcn.1021a0d0
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, 0x1041fd58
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.10054040
mov dword [ebp - 4], 0xffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov dword [eax], ebx
mov ecx, 0x102909e0
mov edx, 0xc
nop dword [eax]
mov eax, dword [edi]
cmp eax, dword [ecx]
jne 0x100c7749
add edi, 4
add ecx, 4
sub edx, 4
jae 0x100c7650
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 0x100c7688
xor edi, edi
jmp 0x100c7744
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, 0x1041fd78
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.10054670
mov edi, dword [0x1041fd7c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edi, eax
cmp edi, dword [0x1041fd7c]
je 0x100c76f1
mov edi, dword [edi + 0xc]
lea eax, [edi - 4]
neg edi
sbb edi, edi
and edi, eax
jmp 0x100c7744
push 0xc
call fcn.1021a0d0
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, 0x1041fd78
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.10054040
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.10219ec0
mov esp, ebp
pop ebp
ret