Function at 0x1005bbe0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101d8f8d
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push esi
push edi
mov eax, dword [0x10268bac]
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 0x1005d5ca
mov edx, dword [eax]
mov dword [ebp - 0x10], edx
test edx, edx
je 0x1005d5ca
mov esi, 0x1024e6b0
mov dword [ebp - 0x18], 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005bc44
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005bc30
jmp 0x1005bc95
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024e6b0
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005bc68
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005bc52
xor eax, eax
jmp 0x1005bc8d
cmp al, byte [esi]
jne 0x1005bc88
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005bc88
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005bc88
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005bc88
xor eax, eax
jmp 0x1005bc8d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005bd63
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, 0x10794318
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.10054ea0
mov edx, dword [0x1079431c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x1079431c]
je 0x1005bd0b
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005bd5e
push 0xc
call fcn.101d3dfe
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, 0x10794318
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.10054a60
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, 0x1024e6a0
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005bd85
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005bd71
jmp 0x1005bdd6
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024e6a0
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005bda9
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005bd93
xor eax, eax
jmp 0x1005bdce
cmp al, byte [esi]
jne 0x1005bdc9
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005bdc9
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005bdc9
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005bdc9
xor eax, eax
jmp 0x1005bdce
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005bebe
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 0x1005bdfa
mov dword [ebp - 0x10], edx
jmp 0x1005beb9
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, 0x10794338
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054ea0
mov edx, dword [0x1079433c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x1079433c]
je 0x1005be66
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005beb9
push 0xc
call fcn.101d3dfe
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, 0x10794338
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.10054a60
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, 0x1024e660
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005bee4
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005bed0
jmp 0x1005bf35
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024e670
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005bf08
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005bef2
xor eax, eax
jmp 0x1005bf2d
cmp al, byte [esi]
jne 0x1005bf28
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005bf28
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005bf28
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005bf28
xor eax, eax
jmp 0x1005bf2d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005c01d
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 0x1005bf59
mov dword [ebp - 0x10], edx
jmp 0x1005c018
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, 0x107942f8
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054ea0
mov edx, dword [0x107942fc]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x107942fc]
je 0x1005bfc5
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005c018
push 0xc
call fcn.101d3dfe
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, 0x107942f8
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.10054a60
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, 0x1024e680
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c044
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c030
jmp 0x1005c095
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024e690
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c068
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c052
xor eax, eax
jmp 0x1005c08d
cmp al, byte [esi]
jne 0x1005c088
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005c088
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005c088
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005c088
xor eax, eax
jmp 0x1005c08d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005c17d
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 0x1005c0b9
mov dword [ebp - 0x10], edx
jmp 0x1005c178
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, 0x10794358
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054ea0
mov edx, dword [0x1079435c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x1079435c]
je 0x1005c125
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005c178
push 0xc
call fcn.101d3dfe
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, 0x10794358
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.10054a60
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, 0x1024e6c0
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c1a4
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c190
jmp 0x1005c1f5
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024e6c0
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c1c8
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c1b2
xor eax, eax
jmp 0x1005c1ed
cmp al, byte [esi]
jne 0x1005c1e8
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005c1e8
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005c1e8
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005c1e8
xor eax, eax
jmp 0x1005c1ed
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005c2dd
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 0x1005c219
mov dword [ebp - 0x10], edx
jmp 0x1005c2d8
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, 0x10794378
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054ea0
mov edx, dword [0x1079437c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x1079437c]
je 0x1005c285
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005c2d8
push 0xc
call fcn.101d3dfe
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, 0x10794378
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.10054a60
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, 0x1024e6d0
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c304
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c2f0
jmp 0x1005c355
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024e6e0
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c328
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c312
xor eax, eax
jmp 0x1005c34d
cmp al, byte [esi]
jne 0x1005c348
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005c348
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005c348
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005c348
xor eax, eax
jmp 0x1005c34d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005c43d
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 0x1005c379
mov dword [ebp - 0x10], edx
jmp 0x1005c438
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, 0x10794398
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054ea0
mov edx, dword [0x1079439c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x1079439c]
je 0x1005c3e5
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005c438
push 0xc
call fcn.101d3dfe
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, 0x10794398
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.10054a60
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, 0x1024e7a0
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c464
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c450
jmp 0x1005c4b5
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024e7a0
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c488
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c472
xor eax, eax
jmp 0x1005c4ad
cmp al, byte [esi]
jne 0x1005c4a8
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005c4a8
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005c4a8
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005c4a8
xor eax, eax
jmp 0x1005c4ad
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005c59d
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 0x1005c4d9
mov dword [ebp - 0x10], edx
jmp 0x1005c598
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, 0x107943b8
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054ea0
mov edx, dword [0x107943bc]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x107943bc]
je 0x1005c545
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005c598
push 0xc
call fcn.101d3dfe
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, 0x107943b8
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.10054a60
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, 0x1024e7b0
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c5c4
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c5b0
jmp 0x1005c615
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024e7b0
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c5e8
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c5d2
xor eax, eax
jmp 0x1005c60d
cmp al, byte [esi]
jne 0x1005c608
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005c608
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005c608
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005c608
xor eax, eax
jmp 0x1005c60d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005c6fd
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 0x1005c639
mov dword [ebp - 0x10], edx
jmp 0x1005c6f8
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, 0x107943d8
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054ea0
mov edx, dword [0x107943dc]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x107943dc]
je 0x1005c6a5
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005c6f8
push 0xc
call fcn.101d3dfe
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, 0x107943d8
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.10054a60
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, 0x1024e7c0
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c724
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c710
jmp 0x1005c775
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024e7c0
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c748
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c732
xor eax, eax
jmp 0x1005c76d
cmp al, byte [esi]
jne 0x1005c768
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005c768
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005c768
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005c768
xor eax, eax
jmp 0x1005c76d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005c85d
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 0x1005c799
mov dword [ebp - 0x10], edx
jmp 0x1005c858
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, 0x107943f8
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054ea0
mov edx, dword [0x107943fc]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x107943fc]
je 0x1005c805
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005c858
push 0xc
call fcn.101d3dfe
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, 0x107943f8
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.10054a60
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, 0x1024e720
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c884
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c870
jmp 0x1005c8d5
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024e720
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c8a8
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c892
xor eax, eax
jmp 0x1005c8cd
cmp al, byte [esi]
jne 0x1005c8c8
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005c8c8
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005c8c8
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005c8c8
xor eax, eax
jmp 0x1005c8cd
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005c9bd
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 0x1005c8f9
mov dword [ebp - 0x10], edx
jmp 0x1005c9b8
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, 0x10794418
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054ea0
mov edx, dword [0x1079441c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x1079441c]
je 0x1005c965
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005c9b8
push 0xc
call fcn.101d3dfe
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, 0x10794418
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.10054a60
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, 0x1024e760
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005c9e4
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c9d0
jmp 0x1005ca35
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024e760
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005ca08
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005c9f2
xor eax, eax
jmp 0x1005ca2d
cmp al, byte [esi]
jne 0x1005ca28
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005ca28
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005ca28
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005ca28
xor eax, eax
jmp 0x1005ca2d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005cb1d
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 0x1005ca59
mov dword [ebp - 0x10], edx
jmp 0x1005cb18
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, 0x10794438
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054ea0
mov edx, dword [0x1079443c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x1079443c]
je 0x1005cac5
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005cb18
push 0xc
call fcn.101d3dfe
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, 0x10794438
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.10054a60
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, 0x1024e750
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005cb44
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005cb30
jmp 0x1005cb95
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024e750
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005cb68
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005cb52
xor eax, eax
jmp 0x1005cb8d
cmp al, byte [esi]
jne 0x1005cb88
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005cb88
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005cb88
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005cb88
xor eax, eax
jmp 0x1005cb8d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005cc7d
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 0x1005cbb9
mov dword [ebp - 0x10], edx
jmp 0x1005cc78
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, 0x10794458
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054ea0
mov edx, dword [0x1079445c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x1079445c]
je 0x1005cc25
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005cc78
push 0xc
call fcn.101d3dfe
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, 0x10794458
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.10054a60
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, 0x1024e740
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005cca4
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005cc90
jmp 0x1005ccf5
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024e740
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005ccc8
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005ccb2
xor eax, eax
jmp 0x1005cced
cmp al, byte [esi]
jne 0x1005cce8
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005cce8
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005cce8
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005cce8
xor eax, eax
jmp 0x1005cced
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005cddd
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 0x1005cd19
mov dword [ebp - 0x10], edx
jmp 0x1005cdd8
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, 0x10794478
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054ea0
mov edx, dword [0x1079447c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x1079447c]
je 0x1005cd85
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005cdd8
push 0xc
call fcn.101d3dfe
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, 0x10794478
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.10054a60
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, 0x1024e730
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005ce04
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005cdf0
jmp 0x1005ce55
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024e730
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005ce28
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005ce12
xor eax, eax
jmp 0x1005ce4d
cmp al, byte [esi]
jne 0x1005ce48
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005ce48
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005ce48
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005ce48
xor eax, eax
jmp 0x1005ce4d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005cf3d
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 0x1005ce79
mov dword [ebp - 0x10], edx
jmp 0x1005cf38
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, 0x10794498
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054ea0
mov edx, dword [0x1079449c]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x1079449c]
je 0x1005cee5
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005cf38
push 0xc
call fcn.101d3dfe
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, 0x10794498
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.10054a60
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, 0x1024e710
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005cf64
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005cf50
jmp 0x1005cfb5
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024e710
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005cf88
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005cf72
xor eax, eax
jmp 0x1005cfad
cmp al, byte [esi]
jne 0x1005cfa8
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005cfa8
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005cfa8
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005cfa8
xor eax, eax
jmp 0x1005cfad
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005d04a
mov dword [ebp - 0x18], edx
test edx, edx
jne 0x1005cfc4
mov dword [ebp - 0x10], edx
jmp 0x1005d045
lea eax, [ebp - 0x18]
mov ecx, 0x107944b8
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.1005d5e0
mov eax, dword [ebp - 0x1c]
cmp eax, dword [0x107944bc]
je 0x1005cff2
mov edx, dword [eax + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005d045
push 0xc
call fcn.101d3dfe
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, 0x107944b8
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.10054a60
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, 0x1024e780
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005d06c
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005d058
jmp 0x1005d0c3
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024e780
nop word [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005d096
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005d080
xor eax, eax
jmp 0x1005d0bb
cmp al, byte [esi]
jne 0x1005d0b6
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005d0b6
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005d0b6
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005d0b6
xor eax, eax
jmp 0x1005d0bb
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005d1ab
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 0x1005d0e7
mov dword [ebp - 0x10], edx
jmp 0x1005d1a6
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, 0x107944d8
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054ea0
mov edx, dword [0x107944dc]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x107944dc]
je 0x1005d153
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005d1a6
push 0xc
call fcn.101d3dfe
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, 0x107944d8
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.10054a60
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, 0x1024e770
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005d1d4
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005d1c0
jmp 0x1005d225
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024e770
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005d1f8
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005d1e2
xor eax, eax
jmp 0x1005d21d
cmp al, byte [esi]
jne 0x1005d218
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005d218
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005d218
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005d218
xor eax, eax
jmp 0x1005d21d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005d30d
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 0x1005d249
mov dword [ebp - 0x10], edx
jmp 0x1005d308
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, 0x107944f8
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10054ea0
mov edx, dword [0x107944fc]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x107944fc]
je 0x1005d2b5
mov edx, dword [edx + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005d308
push 0xc
call fcn.101d3dfe
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, 0x107944f8
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.10054a60
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, 0x1024e790
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005d334
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005d320
jmp 0x1005d385
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024e790
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005d358
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005d342
xor eax, eax
jmp 0x1005d37d
cmp al, byte [esi]
jne 0x1005d378
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005d378
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005d378
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005d378
xor eax, eax
jmp 0x1005d37d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005d41a
mov dword [ebp - 0x18], edx
test edx, edx
jne 0x1005d394
mov dword [ebp - 0x10], edx
jmp 0x1005d415
lea eax, [ebp - 0x18]
mov ecx, 0x10794518
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.1005d5e0
mov eax, dword [ebp - 0x1c]
cmp eax, dword [0x1079451c]
je 0x1005d3c2
mov edx, dword [eax + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005d415
push 0xc
call fcn.101d3dfe
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, 0x10794518
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.10054a60
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, 0x1024e6f0
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005d43c
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005d428
jmp 0x1005d493
mov ecx, edi
mov dword [ebp - 0x18], 0xc
mov esi, 0x1024e6f0
nop word [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1005d466
add ecx, 4
add esi, 4
sub dword [ebp - 0x18], 4
jae 0x1005d450
xor eax, eax
jmp 0x1005d48b
cmp al, byte [esi]
jne 0x1005d486
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1005d486
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1005d486
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
jne 0x1005d486
xor eax, eax
jmp 0x1005d48b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1005d528
mov dword [ebp - 0x18], edx
test edx, edx
jne 0x1005d4a2
mov dword [ebp - 0x10], edx
jmp 0x1005d523
lea eax, [ebp - 0x18]
mov ecx, 0x10794538
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.1005d5e0
mov eax, dword [ebp - 0x1c]
cmp eax, dword [0x1079453c]
je 0x1005d4d0
mov edx, dword [eax + 0xc]
lea eax, [edx - 4]
neg edx
sbb edx, edx
and edx, eax
mov dword [ebp - 0x10], edx
jmp 0x1005d523
push 0xc
call fcn.101d3dfe
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, 0x10794538
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.10054a60
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, 0x1024e700
mov esi, 0xc
mov eax, dword [edi]
cmp eax, dword [ecx]
jne 0x1005d5ca
add edi, 4
add ecx, 4
sub esi, 4
jae 0x1005d532
mov dword [ebp - 0x1c], edx
test edx, edx
jne 0x1005d552
xor edi, edi
jmp 0x1005d5c5
lea eax, [ebp - 0x1c]
mov ecx, 0x10794558
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.1005d5e0
mov eax, dword [ebp - 0x18]
cmp eax, dword [0x1079455c]
je 0x1005d57d
mov edi, dword [eax + 0xc]
lea eax, [edi - 4]
neg edi
sbb edi, edi
and edi, eax
jmp 0x1005d5c5
push 0xc
call fcn.101d3dfe
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, 0x10794558
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.10054a60
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