Function at 0x1005bc60
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101d990d
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push esi
push edi
mov eax, dword [0x10269bac]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, edx
mov dword [ebp - 0x14], eax
mov edi, ecx
test eax, eax
je 0x1005d64a
mov edx, dword [eax]
mov dword [ebp - 0x10], edx
test edx, edx
je 0x1005d64a
mov esi, 0x1024f690
mov dword [ebp - 0x18], 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005bcc4
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005bcb0
jmp 0x1005bd15
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f690
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005bce8
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005bcd2
xor eax, eax
jmp 0x1005bd0d
cmp al, byte [esi]
jne 0x1005bd08
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005bd08
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005bd08
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005bd08
xor eax, eax
jmp 0x1005bd0d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005bde3
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 8
movzx ecx, al
movzx eax, dl
xor eax, 0x811c9dc5
imul eax, eax, 0x1000193
xor ecx, eax
mov eax, edx
shr eax, 0x10
imul ecx, ecx, 0x1000193
movzx eax, al
shr edx, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x102ec288
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.10054f30
mov edx, dword [0x102ec28c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x102ec28c]
je 0x1005bd8b
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005bdde
push 0xc
call fcn.101d477e
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x1c], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 1
mov ecx, 0x102ec288
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSound3DBuffer8.1.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x18]
push eax
mov dword [esi], vtable.m_IDirectSound3DBuffer8.0
mov dword [ebp - 0x18], edx
call fcn.10054af0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f680
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005be05
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005bdf1
jmp 0x1005be56
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f680
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005be29
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005be13
xor eax, eax
jmp 0x1005be4e
cmp al, byte [esi]
jne 0x1005be49
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005be49
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005be49
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005be49
xor eax, eax
jmp 0x1005be4e
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005bf3e
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x1c], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x10], eax
test edx, edx
jne 0x1005be7a
mov dword [ebp - 0x10], edx
jmp 0x1005bf39
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x10]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x1c]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x102ec2a8
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054f30
mov edx, dword [0x102ec2ac]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x102ec2ac]
je 0x1005bee6
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005bf39
push 0xc
call fcn.101d477e
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 2
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 3
mov ecx, 0x102ec2a8
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSound3DListener8.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSound3DListener8.1.0
mov dword [ebp - 0x1c], edx
call fcn.10054af0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f640
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005bf64
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005bf50
jmp 0x1005bfb5
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f650
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005bf88
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005bf72
xor eax, eax
jmp 0x1005bfad
cmp al, byte [esi]
jne 0x1005bfa8
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005bfa8
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005bfa8
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005bfa8
xor eax, eax
jmp 0x1005bfad
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005c09d
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x1005bfd9
mov dword [ebp - 0x10], edx
jmp 0x1005c098
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x102ec268
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054f30
mov edx, dword [0x102ec26c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x102ec26c]
je 0x1005c045
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005c098
push 0xc
call fcn.101d477e
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 4
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 5
mov ecx, 0x102ec268
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSound8.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSound8.1.0
mov dword [ebp - 0x1c], edx
call fcn.10054af0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f660
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c0c4
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c0b0
jmp 0x1005c115
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f670
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c0e8
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c0d2
xor eax, eax
jmp 0x1005c10d
cmp al, byte [esi]
jne 0x1005c108
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005c108
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005c108
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005c108
xor eax, eax
jmp 0x1005c10d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005c1fd
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x1005c139
mov dword [ebp - 0x10], edx
jmp 0x1005c1f8
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x102ec2c8
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054f30
mov edx, dword [0x102ec2cc]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x102ec2cc]
je 0x1005c1a5
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005c1f8
push 0xc
call fcn.101d477e
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 6
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 7
mov ecx, 0x102ec2c8
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundBuffer8.1.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundBuffer8.0
mov dword [ebp - 0x1c], edx
call fcn.10054af0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f6a0
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c224
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c210
jmp 0x1005c275
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f6a0
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c248
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c232
xor eax, eax
jmp 0x1005c26d
cmp al, byte [esi]
jne 0x1005c268
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005c268
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005c268
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005c268
xor eax, eax
jmp 0x1005c26d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005c35d
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x1005c299
mov dword [ebp - 0x10], edx
jmp 0x1005c358
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x102ec2e8
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054f30
mov edx, dword [0x102ec2ec]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x102ec2ec]
je 0x1005c305
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005c358
push 0xc
call fcn.101d477e
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 8
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 9
mov ecx, 0x102ec2e8
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundCapture8.1.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundCapture8.0
mov dword [ebp - 0x1c], edx
call fcn.10054af0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f6b0
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c384
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c370
jmp 0x1005c3d5
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f6c0
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c3a8
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c392
xor eax, eax
jmp 0x1005c3cd
cmp al, byte [esi]
jne 0x1005c3c8
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005c3c8
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005c3c8
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005c3c8
xor eax, eax
jmp 0x1005c3cd
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005c4bd
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x1005c3f9
mov dword [ebp - 0x10], edx
jmp 0x1005c4b8
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x102ec308
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054f30
mov edx, dword [0x102ec30c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x102ec30c]
je 0x1005c465
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005c4b8
push 0xc
call fcn.101d477e
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0xa
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0xb
mov ecx, 0x102ec308
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundCaptureBuffer8.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundCaptureBuffer8.1.0
mov dword [ebp - 0x1c], edx
call fcn.10054af0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f780
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c4e4
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c4d0
jmp 0x1005c535
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f780
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c508
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c4f2
xor eax, eax
jmp 0x1005c52d
cmp al, byte [esi]
jne 0x1005c528
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005c528
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005c528
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005c528
xor eax, eax
jmp 0x1005c52d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005c61d
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x1005c559
mov dword [ebp - 0x10], edx
jmp 0x1005c618
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x102ec328
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054f30
mov edx, dword [0x102ec32c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x102ec32c]
je 0x1005c5c5
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005c618
push 0xc
call fcn.101d477e
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0xc
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0xd
mov ecx, 0x102ec328
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundCaptureFXAec8.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundCaptureFXAec8.1.0
mov dword [ebp - 0x1c], edx
call fcn.10054af0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f790
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c644
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c630
jmp 0x1005c695
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f790
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c668
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c652
xor eax, eax
jmp 0x1005c68d
cmp al, byte [esi]
jne 0x1005c688
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005c688
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005c688
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005c688
xor eax, eax
jmp 0x1005c68d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005c77d
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x1005c6b9
mov dword [ebp - 0x10], edx
jmp 0x1005c778
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x102ec348
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054f30
mov edx, dword [0x102ec34c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x102ec34c]
je 0x1005c725
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005c778
push 0xc
call fcn.101d477e
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0xe
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0xf
mov ecx, 0x102ec348
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundCaptureFXNoiseSuppress8.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundCaptureFXNoiseSuppress8.1.0
mov dword [ebp - 0x1c], edx
call fcn.10054af0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f7a0
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c7a4
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c790
jmp 0x1005c7f5
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f7a0
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c7c8
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c7b2
xor eax, eax
jmp 0x1005c7ed
cmp al, byte [esi]
jne 0x1005c7e8
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005c7e8
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005c7e8
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005c7e8
xor eax, eax
jmp 0x1005c7ed
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005c8dd
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x1005c819
mov dword [ebp - 0x10], edx
jmp 0x1005c8d8
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x102ec368
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054f30
mov edx, dword [0x102ec36c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x102ec36c]
je 0x1005c885
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005c8d8
push 0xc
call fcn.101d477e
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0x10
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x11
mov ecx, 0x102ec368
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundFullDuplex8.1.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundFullDuplex8.0
mov dword [ebp - 0x1c], edx
call fcn.10054af0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f700
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c904
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c8f0
jmp 0x1005c955
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f700
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c928
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c912
xor eax, eax
jmp 0x1005c94d
cmp al, byte [esi]
jne 0x1005c948
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005c948
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005c948
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005c948
xor eax, eax
jmp 0x1005c94d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005ca3d
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x1005c979
mov dword [ebp - 0x10], edx
jmp 0x1005ca38
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x102ec388
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054f30
mov edx, dword [0x102ec38c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x102ec38c]
je 0x1005c9e5
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005ca38
push 0xc
call fcn.101d477e
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0x12
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x13
mov ecx, 0x102ec388
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundFXChorus8.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundFXChorus8.1.0
mov dword [ebp - 0x1c], edx
call fcn.10054af0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f740
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005ca64
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005ca50
jmp 0x1005cab5
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f740
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005ca88
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005ca72
xor eax, eax
jmp 0x1005caad
cmp al, byte [esi]
jne 0x1005caa8
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005caa8
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005caa8
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005caa8
xor eax, eax
jmp 0x1005caad
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005cb9d
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x1005cad9
mov dword [ebp - 0x10], edx
jmp 0x1005cb98
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x102ec3a8
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054f30
mov edx, dword [0x102ec3ac]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x102ec3ac]
je 0x1005cb45
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005cb98
push 0xc
call fcn.101d477e
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0x14
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x15
mov ecx, 0x102ec3a8
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundFXCompressor8.1.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundFXCompressor8.0
mov dword [ebp - 0x1c], edx
call fcn.10054af0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f730
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005cbc4
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005cbb0
jmp 0x1005cc15
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f730
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005cbe8
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005cbd2
xor eax, eax
jmp 0x1005cc0d
cmp al, byte [esi]
jne 0x1005cc08
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005cc08
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005cc08
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005cc08
xor eax, eax
jmp 0x1005cc0d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005ccfd
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x1005cc39
mov dword [ebp - 0x10], edx
jmp 0x1005ccf8
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x102ec3c8
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054f30
mov edx, dword [0x102ec3cc]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x102ec3cc]
je 0x1005cca5
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005ccf8
push 0xc
call fcn.101d477e
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0x16
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x17
mov ecx, 0x102ec3c8
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundFXDistortion8.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundFXDistortion8.1.0
mov dword [ebp - 0x1c], edx
call fcn.10054af0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f720
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005cd24
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005cd10
jmp 0x1005cd75
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f720
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005cd48
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005cd32
xor eax, eax
jmp 0x1005cd6d
cmp al, byte [esi]
jne 0x1005cd68
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005cd68
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005cd68
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005cd68
xor eax, eax
jmp 0x1005cd6d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005ce5d
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x1005cd99
mov dword [ebp - 0x10], edx
jmp 0x1005ce58
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x102ec3e8
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054f30
mov edx, dword [0x102ec3ec]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x102ec3ec]
je 0x1005ce05
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005ce58
push 0xc
call fcn.101d477e
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0x18
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x19
mov ecx, 0x102ec3e8
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundFXEcho8.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundFXEcho8.1.0
mov dword [ebp - 0x1c], edx
call fcn.10054af0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f710
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005ce84
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005ce70
jmp 0x1005ced5
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f710
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005cea8
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005ce92
xor eax, eax
jmp 0x1005cecd
cmp al, byte [esi]
jne 0x1005cec8
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005cec8
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005cec8
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005cec8
xor eax, eax
jmp 0x1005cecd
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005cfbd
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x1005cef9
mov dword [ebp - 0x10], edx
jmp 0x1005cfb8
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x102ec408
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054f30
mov edx, dword [0x102ec40c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x102ec40c]
je 0x1005cf65
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005cfb8
push 0xc
call fcn.101d477e
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0x1a
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x1b
mov ecx, 0x102ec408
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundFXFlanger8.1.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundFXFlanger8.0
mov dword [ebp - 0x1c], edx
call fcn.10054af0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f6f0
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005cfe4
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005cfd0
jmp 0x1005d035
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f6f0
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005d008
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005cff2
xor eax, eax
jmp 0x1005d02d
cmp al, byte [esi]
jne 0x1005d028
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005d028
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005d028
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005d028
xor eax, eax
jmp 0x1005d02d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005d0ca
mov dword [ebp - 0x18], edx
test edx, edx
jne 0x1005d044
mov dword [ebp - 0x10], edx
jmp 0x1005d0c5
lea eax, [ebp - 0x18]
mov ecx, 0x102ec428
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.1005d660
mov eax, dword [ebp - 0x1c]
cmp eax, dword [0x102ec42c]
je 0x1005d072
mov edx, dword [eax + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005d0c5
push 0xc
call fcn.101d477e
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0x1c
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x1d
mov ecx, 0x102ec428
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundFXGargle8.1.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundFXGargle8.0
mov dword [ebp - 0x1c], edx
call fcn.10054af0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f760
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005d0ec
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005d0d8
jmp 0x1005d143
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f760
nop word [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005d116
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005d100
xor eax, eax
jmp 0x1005d13b
cmp al, byte [esi]
jne 0x1005d136
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005d136
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005d136
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005d136
xor eax, eax
jmp 0x1005d13b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005d22b
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x1005d167
mov dword [ebp - 0x10], edx
jmp 0x1005d226
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x102ec448
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054f30
mov edx, dword [0x102ec44c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x102ec44c]
je 0x1005d1d3
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005d226
push 0xc
call fcn.101d477e
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0x1e
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x1f
mov ecx, 0x102ec448
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundFXI3DL2Reverb8.1.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundFXI3DL2Reverb8.0
mov dword [ebp - 0x1c], edx
call fcn.10054af0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f750
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005d254
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005d240
jmp 0x1005d2a5
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f750
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005d278
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005d262
xor eax, eax
jmp 0x1005d29d
cmp al, byte [esi]
jne 0x1005d298
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005d298
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005d298
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005d298
xor eax, eax
jmp 0x1005d29d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005d38d
mov eax, edx
mov dword [ebp - 0x18], edx
shr eax, 0x10
mov esi, edx
mov dword [ebp - 0x10], eax
mov eax, edx
shr eax, 8
shr esi, 0x18
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x1005d2c9
mov dword [ebp - 0x10], edx
jmp 0x1005d388
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x1c]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x102ec468
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054f30
mov edx, dword [0x102ec46c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x102ec46c]
je 0x1005d335
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005d388
push 0xc
call fcn.101d477e
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0x20
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x21
mov ecx, 0x102ec468
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundFXParamEq8.1.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundFXParamEq8.0
mov dword [ebp - 0x1c], edx
call fcn.10054af0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f770
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005d3b4
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005d3a0
jmp 0x1005d405
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f770
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005d3d8
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005d3c2
xor eax, eax
jmp 0x1005d3fd
cmp al, byte [esi]
jne 0x1005d3f8
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005d3f8
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005d3f8
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005d3f8
xor eax, eax
jmp 0x1005d3fd
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005d49a
mov dword [ebp - 0x18], edx
test edx, edx
jne 0x1005d414
mov dword [ebp - 0x10], edx
jmp 0x1005d495
lea eax, [ebp - 0x18]
mov ecx, 0x102ec488
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.1005d660
mov eax, dword [ebp - 0x1c]
cmp eax, dword [0x102ec48c]
je 0x1005d442
mov edx, dword [eax + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005d495
push 0xc
call fcn.101d477e
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0x22
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x23
mov ecx, 0x102ec488
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundFXWavesReverb8.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundFXWavesReverb8.1.0
mov dword [ebp - 0x1c], edx
call fcn.10054af0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f6d0
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005d4bc
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005d4a8
jmp 0x1005d513
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024f6d0
nop word [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005d4e6
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005d4d0
xor eax, eax
jmp 0x1005d50b
cmp al, byte [esi]
jne 0x1005d506
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005d506
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005d506
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005d506
xor eax, eax
jmp 0x1005d50b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005d5a8
mov dword [ebp - 0x18], edx
test edx, edx
jne 0x1005d522
mov dword [ebp - 0x10], edx
jmp 0x1005d5a3
lea eax, [ebp - 0x18]
mov ecx, 0x102ec4a8
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.1005d660
mov eax, dword [ebp - 0x1c]
cmp eax, dword [0x102ec4ac]
je 0x1005d550
mov edx, dword [eax + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005d5a3
push 0xc
call fcn.101d477e
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], eax
lea esi, [eax + 4]
mov dword [ebp - 4], 0x24
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x25
mov ecx, 0x102ec4a8
mov edx, dword [ebp - 0x18]
mov dword [eax], vtable.m_IDirectSoundNotify8.1.0
mov dword [eax + 8], edx
lea eax, [ebp - 0x1c]
push eax
mov dword [esi], vtable.m_IDirectSoundNotify8.0
mov dword [ebp - 0x1c], edx
call fcn.10054af0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edx
mov ecx, 0x1024f6e0
mov esi, 0xc
mov eax, dword [edi]
cmp eax, dword [ecx]
jne 0x1005d64a
add edi, 4
add ecx, 4
sub esi, 4
jae 0x1005d5b2
mov dword [ebp - 0x1c], edx
test edx, edx
jne 0x1005d5d2
xor edi, edi
jmp 0x1005d645
lea eax, [ebp - 0x1c]
mov ecx, 0x102ec4c8
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.1005d660
mov eax, dword [ebp - 0x18]
cmp eax, dword [0x102ec4cc]
je 0x1005d5fd
mov edi, dword [eax + 0xc]
lea eax, [edi - 4]
neg edi
sbb edi, edi
and edi, eax
jmp 0x1005d645
push 0xc
call fcn.101d477e
mov edi, eax
add esp, 4
mov dword [ebp - 0x20], edi
lea esi, [edi + 4]
mov dword [ebp - 4], 0x26
mov dword [esi], vtable.AddressLookupTableObject.0
mov byte [ebp - 4], 0x27
mov ecx, 0x102ec4c8
mov eax, dword [ebp - 0x10]
mov dword [edi + 8], eax
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x1c]
push eax
mov dword [edi], vtable.m_IKsPropertySet.0
mov dword [esi], vtable.m_IKsPropertySet.1.0
call fcn.10054af0
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [eax], edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret