Function at 0x67c14990
Capabilities:
Access peb ldr_data
Check os version
Get ntdll base address
Get process heap flags
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xec
mov dword [ebp - 0x94], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0xd8], edx
mov dword [ebp - 0xc0], ecx
mov dword [eax], 1
test byte [0x67c213a0], 8
jne 0x67c1585c
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x6c], 0
mov esi, dword [eax + 0xa4]
test esi, esi
jle 0x67c14e83
nop
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x6c]
mov eax, dword [eax + 0xa8]
mov esi, dword [eax + ecx*4]
test byte [0x67c213a0], 8
jne 0x67c14e90
mov eax, dword [esi + 0x48]
test eax, eax
je 0x67c14e6a
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x67c14e6a
test byte [0x67c213a0], 8
jne 0x67c14ec4
lea eax, [esi + 0x2c]
mov dword [ebp - 0xbc], eax
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_AcquireSRWLockShared]
mov eax, dword [esi + 0x3c]
sub esp, 4
test eax, eax
je 0x67c14e58
cmp eax, 1
jne 0x67c14a4e
mov dword [esi + 0x3c], 2
test byte [0x67c213a0], 8
jne 0x67c15713
mov eax, dword [esi + 0x40]
test eax, eax
je 0x67c14a73
cmp dword [esi + 0x3c], 1
je 0x67c15dc7
mov dword [esi + 0x40], 0
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x98], eax
mov eax, dword [esi + 0xc0]
mov ecx, dword [esi + 0x134]
mov dword [ebp - 0xc4], 1
mov ebx, dword [esi + 0x28]
mov dword [ebp - 0xd4], eax
test ecx, ecx
jg 0x67c14ab5
mov edx, dword [ebx + 0x144]
xor eax, eax
test edx, edx
setne al
mov dword [ebp - 0xc4], eax
mov eax, dword [esi + 0x12c]
mov edi, dword [ebp - 0x98]
mov dword [ebp - 0x50], eax
mov eax, dword [ebx + 0x7c]
movzx eax, word [eax + 2]
shl eax, 2
mov dword [ebp - 0xa4], eax
imul edi, eax
mov eax, dword [ebx + 0x108]
cmp edi, dword [ebx + 0x114]
ja 0x67c14efb
test eax, eax
je 0x67c15c45
cmp dword [esi + 0x130], 0x67c0d8c0
je 0x67c14f4b
mov edi, dword [ebp - 0xc4]
test edi, edi
je 0x67c14b7f
mov eax, dword [esi + 0x120]
mov edi, dword [ebp - 0x98]
mov ebx, dword [esi + 0x28]
shl eax, 2
mov dword [ebp - 0xa4], eax
imul edi, eax
mov eax, dword [ebx + 0x110]
cmp edi, dword [ebx + 0x11c]
jbe 0x67c15585
test eax, eax
je 0x67c1558d
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov edx, dword fs:[0x18]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapReAlloc]
mov dword [ebx + 0x110], eax
sub esp, 0x10
mov eax, dword [esi + 0x28]
mov dword [eax + 0x11c], edi
mov dword [ebp - 0x50], 0x67c13bc0
mov edx, dword [esi + 0x30]
mov ebx, dword [esi + 0xb4]
mov eax, dword [esi + 0xa8]
mov ecx, dword [esi + 0xb0]
mov dword [ebp - 0x58], edx
movzx edx, word [edx + 0xc]
mov edi, dword [esi + 0xac]
mov dword [ebp - 0x48], eax
xor eax, ecx
mov dword [ebp - 0x68], edx
mov edx, ebx
xor edx, edi
mov dword [ebp - 0x60], ecx
or edx, eax
mov dword [ebp - 0x5c], ebx
je 0x67c159fe
mov eax, dword [0x67c21318]
mov ebx, dword [ebp - 0x98]
mov edx, dword [esi + 0xbc]
mov dword [ebp - 0x80], eax
mov eax, dword [esi + 0xb8]
mov ecx, ebx
mov dword [ebp - 0xac], edx
imul ecx, edi
mov dword [ebp - 0xb0], eax
mov eax, ebx
mul dword [ebp - 0x48]
add edx, ecx
mov ecx, eax
lea eax, [ebp - 0x40]
add ecx, dword [ebp - 0xb0]
mov ebx, edx
mov edx, dword [esi + 0x120]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x60]
adc ebx, dword [ebp - 0xac]
mov dword [esp], ecx
mov dword [ebp - 0x78], edx
mov edx, dword [ebp - 0x5c]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [ebp - 0xb8], ecx
mov dword [ebp - 0xb4], ebx
call fcn.67c20120
mov ecx, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x3c]
mov dword [ebp - 0xa8], eax
mov eax, dword [esi + 0x28]
mov edx, dword [ebp - 0x80]
cmp dword [eax + 0xa4], edx
jle 0x67c14f73
mov ecx, dword [ebp - 0x98]
mov ebx, dword [esi + 0xc0]
test ecx, ecx
je 0x67c156a9
lea eax, [ecx - 1]
mov ecx, edi
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x48]
lea esi, [esi]
nop
fnstcw word [ebp - 0x42]
mov edx, dword [ebp - 0x8c]
imul ecx, dword [ebp - 0x90]
mov edi, dword [ebp - 0x78]
imul edx, eax
add ecx, edx
mul dword [ebp - 0x90]
add edx, ecx
add eax, dword [ebp - 0xb0]
adc edx, dword [ebp - 0xac]
mov dword [ebp - 0x58], eax
movzx eax, word [ebp - 0x42]
mov dword [ebp - 0x54], edx
fild qword [ebp - 0x58]
fild qword [ebp - 0x60]
or ah, 0xc
mov ecx, dword [ebp - 0x68]
mov word [ebp - 0x44], ax
fdivp st(1)
fld st(0)
fldcw word [ebp - 0x44]
fistp qword [ebp - 0x58]
fldcw word [ebp - 0x42]
fldcw word [ebp - 0x44]
fist dword [ebp - 0x48]
fldcw word [ebp - 0x42]
mov eax, dword [ebp - 0x58]
imul eax, ecx
fild dword [ebp - 0x48]
add eax, ebx
fsubp st(1)
mov dword [ebp - 0x58], eax
fst dword [ebp - 0x88]
fsubr dword [0x67c32bb8]
fstp dword [ebp - 0x70]
test edi, edi
je 0x67c155d8
add eax, ecx
xor ebx, ebx
mov dword [ebp - 0x60], eax
jmp 0x67c14db2
mov eax, dword [ebp - 0x58]
xor edx, edx
mov dword [esp + 8], ebx
mov dword [esp], esi
div ecx
add edx, edi
mov dword [esp + 4], edx
call dword [esi + 0x124]
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x48]
mov edi, dword [eax + 8]
cmp ecx, dword [ebp - 0x60]
ja 0x67c14d62
test byte [esi + 0x38], 1
je 0x67c15630
mov eax, dword [ebp - 0x60]
xor edx, edx
fstp dword [ebp - 0x48]
mov dword [esp + 8], ebx
div ecx
mov dword [esp], esi
add edx, edi
mov dword [esp + 4], edx
call dword [esi + 0x124]
fld dword [ebp - 0x48]
fmul dword [ebp - 0x70]
fxch st(1)
fmul dword [ebp - 0x88]
mov dword [esp + 8], ebx
add ebx, 1
mov eax, dword [ebp - 0x80]
mov dword [esp], esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x50]
faddp st(1)
fstp dword [esp + 0xc]
call eax
cmp ebx, dword [ebp - 0x78]
je 0x67c155c0
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x48]
mov edi, dword [eax + 8]
cmp dword [ebp - 0x58], ecx
jb 0x67c14d30
test byte [esi + 0x38], 1
jne 0x67c14d30
fldz
cmp ecx, dword [ebp - 0x60]
ja 0x67c14d62
fld st(0)
jmp 0x67c14d82
mov edx, dword [esi + 0x28]
mov eax, dword [edx + 0x108]
mov dword [esp], esi
mov dword [ebp - 0x78], eax
call fcn.67c05460
test eax, eax
jne 0x67c15889
test byte [esi + 0x79], 1
je 0x67c14e42
cmp dword [esi + 0x3c], 1
je 0x67c14e42
mov edi, dword [esi + 0xc0]
mov ebx, dword [esi + 0x48]
cmp edi, ebx
jae 0x67c15cc7
cmp dword [ebp - 0xd4], ebx
jae 0x67c15ca5
mov ecx, dword [ebp - 0xd4]
mov edx, edi
lea eax, [edi + ebx]
mov dword [esp], esi
sub edx, ecx
sub eax, ecx
cmp ecx, edi
mov dword [esp + 4], ecx
cmovbe eax, edx
mov dword [esp + 8], eax
call fcn.67c14600
test byte [0x67c213a0], 8
jne 0x67c156e0
mov eax, dword [ebp + 8]
mov dword [eax], 0
mov eax, dword [ebp - 0xbc]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_ReleaseSRWLockShared]
sub esp, 4
mov edi, dword [ebp - 0x94]
add dword [ebp - 0x6c], 1
mov eax, dword [ebp - 0x6c]
cmp dword [edi + 0xa4], eax
jg 0x67c149e0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esi + 0x3c]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.MixToPrimary_for__p__state_ld_n
mov dword [esp + 0x14], eax
mov dword [esp + 8], str.DSOUND_MixToPrimary
mov dword [esp + 4], 0x67c213a0
mov dword [esp], 3
call fcn.67c13c40
jmp 0x67c149ff
mov eax, dword [ebp - 0xc0]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.Checking__p__frames_ld_n
mov dword [esp + 0x14], eax
mov dword [esp + 8], str.DSOUND_MixToPrimary
mov dword [esp + 4], 0x67c213a0
mov dword [esp], 3
call fcn.67c13c40
jmp 0x67c14a22
test eax, eax
je 0x67c15c45
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov edx, dword fs:[0x18]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapReAlloc]
mov dword [ebx + 0x108], eax
sub esp, 0x10
mov eax, dword [esi + 0x28]
mov dword [eax + 0x114], edi
cmp dword [esi + 0x130], 0x67c0d8c0
jne 0x67c14b01
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0x108]
mov eax, dword [eax + 0x114]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov dword [esp], edx
call sub.ucrtbase.dll_memset
jmp 0x67c14b01
mov eax, dword [esi + 0x9c]
mov dword [esi + 0xb8], ecx
mov dword [esi + 0xbc], ebx
mov dword [esp], esi
mov dword [ebp - 0xc8], eax
call fcn.67c05460
test eax, eax
je 0x67c153a0
mov ecx, dword [ebp - 0xc8]
xor edx, edx
mov edi, dword [esi + 0x28]
lea eax, [ecx + 0x1ee1]
div ecx
mov ecx, eax
mov dword [ebp - 0xcc], eax
add eax, dword [ebp - 0xa8]
mov dword [ebp - 0x58], eax
imul eax, dword [ebp - 0x78]
mov ebx, eax
mov eax, dword [edi + 0x10c]
add ebx, ecx
mov dword [ebp - 0x70], eax
shl ebx, 2
test eax, eax
je 0x67c15e19
cmp ebx, dword [edi + 0x118]
ja 0x67c15ce9
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0xcc]
mov dword [ebp - 0x88], 0
mov edx, dword [esi + 0xc4]
lea eax, [eax + ecx*4]
mov dword [ebp - 0xa0], eax
test edx, edx
jne 0x67c15c74
mov eax, dword [ebp - 0x78]
test eax, eax
je 0x67c1515b
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x60], 0
shl eax, 2
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x80], eax
lea esi, [esi]
nop
mov eax, dword [ebp - 0x88]
xor edi, edi
xor ebx, ebx
test eax, eax
je 0x67c159ef
lea esi, [esi]
mov eax, dword [esi + 0xcc]
mov edx, dword [esi + 0xc8]
mov ecx, dword [esi + 0x44]
add eax, edi
mov dword [ebp - 0x48], edx
cmp eax, ecx
jb 0x67c1507a
fldz
test byte [esi + 0x38], 1
je 0x67c15095
fstp st(0)
mov edx, dword [ebp - 0x60]
mov dword [esp], esi
mov dword [esp + 8], edx
xor edx, edx
div ecx
add edx, dword [ebp - 0x48]
mov dword [esp + 4], edx
call dword [esi + 0x124]
mov eax, dword [ebp - 0x80]
add edi, dword [ebp - 0x68]
fstp dword [eax + ebx*4]
add ebx, 1
cmp ebx, dword [ebp - 0x88]
jne 0x67c15058
mov eax, dword [ebp - 0x88]
mov edi, dword [ebp - 0xd0]
add dword [ebp - 0x80], edi
mov dword [ebp - 0xb8], eax
mov ebx, dword [ebp - 0xb8]
cmp dword [ebp - 0x58], ebx
jbe 0x67c1514b
mov ecx, dword [ebp - 0x80]
mov edi, dword [ebp - 0x68]
lea eax, [ebx*4]
sub ecx, eax
imul edi, ebx
mov dword [ebp - 0x90], ecx
lea esi, [esi]
mov edx, dword [esi + 0x34]
mov eax, dword [esi + 0xc0]
mov ecx, dword [esi + 0x48]
mov edx, dword [edx + 8]
add eax, edi
mov dword [ebp - 0x48], edx
cmp eax, ecx
jb 0x67c1510a
fldz
test byte [esi + 0x38], 1
je 0x67c15125
fstp st(0)
mov edx, dword [ebp - 0x60]
mov dword [esp], esi
mov dword [esp + 8], edx
xor edx, edx
div ecx
add edx, dword [ebp - 0x48]
mov dword [esp + 4], edx
call dword [esi + 0x124]
mov eax, dword [ebp - 0x90]
add edi, dword [ebp - 0x68]
fstp dword [eax + ebx*4]
add ebx, 1
cmp dword [ebp - 0x58], ebx
jne 0x67c150e8
mov ecx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x58]
sub eax, dword [ebp - 0xb8]
lea eax, [ecx + eax*4]
mov dword [ebp - 0x80], eax
add dword [ebp - 0x60], 1
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0x78]
jne 0x67c15040
mov eax, dword [ebp - 0x98]
test eax, eax
je 0x67c153a0
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0
lea esi, [esi]
mov ecx, dword [esi + 0xa8]
mov edx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x78]
imul eax, dword [esi + 0xac]
imul ecx, edx
add ecx, eax
mov eax, dword [ebp - 0x78]
mul dword [esi + 0xa8]
add edx, ecx
add eax, dword [ebp - 0xb0]
adc edx, dword [ebp - 0xac]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x5c], edx
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x7c]
imul edx, dword [ebp - 0x60]
imul ecx, eax
mov eax, dword [ebp - 0x60]
add ecx, edx
mul dword [ebp - 0x80]
mov dword [ebp - 0x5c], edx
mov edx, dword [esi + 0xb4]
mov dword [ebp - 0x60], eax
mov eax, dword [esi + 0xb0]
add dword [ebp - 0x5c], ecx
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x60]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x5c]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.67c1fe30
mov edi, dword [ebp - 0xc8]
xor edx, edx
mov dword [ebp - 0xb4], 0
mov ecx, eax
div edi
mov dword [ebp - 0xb8], ecx
fild qword [ebp - 0xb8]
fld1
fadd st(1), st(0)
fild qword [ebp - 0x60]
fild qword [ebp - 0x68]
fdivp st(1)
mov dword [ebp - 0x90], eax
mov ebx, eax
lea eax, [eax + 1]
imul eax, edi
mov edx, eax
mov eax, ecx
not eax
add eax, edx
fsubp st(2)
fxch st(1)
fstp dword [ebp - 0x60]
fld dword [ebp - 0x60]
cmp eax, 0x1ee1
ja 0x67c159de
fsub st(1), st(0)
mov edx, dword [ebp - 0x70]
xor edi, edi
lea esi, [esi]
fld dword [eax*4 + 0x67c2b004]
add edi, 1
fmul st(1)
fld st(2)
fmul dword [eax*4 + 0x67c2b000]
faddp st(1)
fstp dword [edx + edi*4 - 4]
add eax, dword [esi + 0x9c]
cmp eax, 0x1ee1
jbe 0x67c15290
fstp st(0)
fstp st(0)
add ebx, edi
cmp dword [ebp - 0xcc], edi
jae 0x67c152e3
mov dword [esp + 8], 0x1a6
mov dword [esp + 4], str..._dlls_dsound_mixer.c
mov dword [esp], str.fir_used___fir_cachesize
call dword [sym.imp.ucrtbase.dll__assert]
cmp dword [ebp - 0x58], ebx
jb 0x67c15647
mov eax, dword [ebp - 0x70]
xor ecx, ecx
lea ebx, [eax + edi*4]
mov eax, dword [esi + 0x120]
test eax, eax
je 0x67c15371
mov dword [ebp - 0x68], edi
mov edi, ecx
mov ecx, dword [ebp - 0x90]
lea esi, [esi]
mov eax, dword [ebp - 0x68]
test eax, eax
je 0x67c15640
mov eax, dword [ebp - 0xa0]
fldz
lea edx, [eax + ecx*4]
mov eax, dword [ebp - 0x70]
lea esi, [esi]
fld dword [eax]
fmul dword [edx]
add eax, 4
add edx, 4
faddp st(1)
cmp ebx, eax
jne 0x67c15330
fmul dword [esi + 0xa0]
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x60], ecx
mov dword [esp + 8], edi
add edi, 1
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x50]
mov dword [esp], esi
fstp dword [esp + 0xc]
call eax
mov ecx, dword [ebp - 0x60]
add ecx, dword [ebp - 0x58]
cmp edi, dword [esi + 0x120]
jb 0x67c15310
add dword [ebp - 0x78], 1
mov eax, dword [ebp - 0x88]
adc dword [ebp - 0x74], 0
mov ecx, dword [ebp - 0x78]
mov ebx, dword [ebp - 0x74]
mov edx, dword [ebp - 0x84]
xor eax, ecx
mov edi, dword [ebp - 0xa4]
add dword [ebp - 0x48], edi
xor edx, ebx
or edx, eax
jne 0x67c151a8
mov eax, dword [esi + 0x30]
mov ebx, dword [esi + 0xc0]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x58]
mov ecx, dword [esi + 0x48]
movzx eax, word [eax + 0xc]
imul eax, dword [ebp - 0xa8]
add ebx, eax
cmp ebx, ecx
jb 0x67c153d5
test byte [esi + 0x38], 1
je 0x67c159d0
mov eax, ebx
xor edx, edx
div ecx
mov ebx, edx
mov edi, dword [esi + 0xc4]
mov dword [esi + 0xc0], ebx
test edi, edi
je 0x67c1540e
mov eax, dword [ebp - 0x58]
movzx eax, word [eax + 0xc]
imul eax, dword [ebp - 0xa8]
add eax, dword [esi + 0xcc]
mov dword [esi + 0xcc], eax
cmp eax, dword [esi + 0x44]
jb 0x67c1540e
mov dword [esi + 0xc4], 0
mov ebx, dword [ebp - 0xc4]
test ebx, ebx
je 0x67c14dd9
mov edi, dword [ebp - 0x98]
test edi, edi
je 0x67c1599d
mov ecx, dword [esi + 0x134]
test ecx, ecx
je 0x67c154de
xor ebx, ebx
jmp 0x67c1548f
mov ecx, dword [eax]
mov dword [esp + 0x14], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov edx, dword [esi + 0x28]
mov edx, dword [edx + 0x110]
mov dword [esp + 8], edx
mov edx, dword [esi + 0x120]
mov dword [esp], eax
imul edx, edi
shl edx, 2
mov dword [esp + 4], edx
call dword [ecx + 0xc]
sub esp, 0x18
test eax, eax
js 0x67c15669
add ebx, 1
cmp ebx, dword [esi + 0x134]
jae 0x67c154de
mov edx, dword [esi + 0x138]
lea eax, [ebx + ebx*2]
lea eax, [edx + eax*8]
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x67c1543c
test byte [0x67c213a0], 4
je 0x67c15484
mov dword [esp + 0x10], ebx
add ebx, 1
mov dword [esp + 0xc], str.filter__lu_has_no_inplace_object___unsupported_n
mov dword [esp + 8], str.DSOUND_MixToTemporary
mov dword [esp + 4], 0x67c213a0
mov dword [esp], 2
call fcn.67c13c40
cmp ebx, dword [esi + 0x134]
jb 0x67c1548f
mov edx, dword [esi + 0x28]
mov ebx, dword [edx + 0x144]
test ebx, ebx
jne 0x67c15e53
mov eax, dword [edx + 0x7c]
movzx eax, word [eax + 2]
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x60], 0
shl eax, 2
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x48], eax
lea esi, [esi]
mov ecx, dword [esi + 0x120]
mov ebx, dword [ebp - 0x60]
xor edi, edi
test ecx, ecx
je 0x67c15562
lea esi, [esi]
nop
mov edx, dword [edx + 0x110]
mov eax, dword [ebp - 0x50]
fld dword [edx + ebx]
mov dword [esp + 8], edi
add ebx, 4
add edi, 1
mov dword [esp + 4], eax
mov dword [esp], esi
fstp dword [esp + 0xc]
call dword [esi + 0x12c]
cmp edi, dword [esi + 0x120]
mov edx, dword [esi + 0x28]
jb 0x67c15530
add dword [ebp - 0x58], 1
mov edi, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x48]
add dword [ebp - 0x60], edi
add dword [ebp - 0x50], ecx
mov eax, dword [ebp - 0x58]
cmp eax, dword [ebp - 0x98]
jb 0x67c15518
jmp 0x67c14ddc
test eax, eax
jne 0x67c14b78
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [ebx + 0x110], eax
sub esp, 0xc
jmp 0x67c14b6f
mov eax, dword [esi + 0xb0]
mov edx, dword [esi + 0xb4]
mov ebx, dword [esi + 0xc0]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
mov ecx, dword [ebp - 0xa4]
mov edi, dword [ebp - 0x9c]
add dword [ebp - 0x80], ecx
mov ecx, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp - 0xa0]
xor edi, ecx
xor eax, edx
mov edx, edi
or edx, eax
je 0x67c156a3
add dword [ebp - 0x90], 1
mov eax, dword [esi + 0xa8]
adc dword [ebp - 0x8c], 0
mov ecx, dword [esi + 0xac]
jmp 0x67c14ca0
fldz
fxch st(1)
jmp 0x67c14d82
fldz
jmp 0x67c15340
mov dword [esp + 8], 0x1a7
mov dword [esp + 4], str..._dlls_dsound_mixer.c
mov dword [esp], str.ipos__fir_used___required_input
call dword [sym.imp.ucrtbase.dll__assert]
jmp 0x67c152ec
test byte [0x67c213a0], 4
je 0x67c15484
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], str.IMediaObjectInPlace_Process_failed_for_filter__lu_n
mov dword [esp + 8], str.DSOUND_MixToTemporary
mov dword [esp + 4], 0x67c213a0
mov dword [esp], 2
call fcn.67c13c40
jmp 0x67c15484
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xb8]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0xb4]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.67c1ff80
mov dword [esi + 0xb8], eax
mov dword [esi + 0xbc], edx
jmp 0x67c153ac
mov eax, dword [ebp - 0xc0]
mov dword [esp + 0xc], str.total_mixed_data_ld_n
mov dword [esp + 8], str.DSOUND_MixOne
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x67c213a0
mov dword [esp], 3
call fcn.67c13c40
jmp 0x67c14e4f
mov edi, dword [ebp - 0xc0]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.__p__frames_ld__n
mov dword [esp + 0x14], edi
mov dword [esp + 8], str.DSOUND_MixOne
mov dword [esp + 4], 0x67c213a0
mov dword [esp], 3
call fcn.67c13c40
test byte [0x67c213a0], 8
je 0x67c14a5b
mov eax, dword [esi + 0x40]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x38]
mov dword [esp + 0xc], str.looping_ld__leadin_ld_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.DSOUND_MixOne
mov dword [esp + 4], 0x67c213a0
mov dword [esp], 3
call fcn.67c13c40
mov dword [ebp - 0x98], edi
mov edi, dword [esi + 0x40]
movzx ebx, byte [0x67c213a0]
and ebx, 8
test edi, edi
jne 0x67c15bc6
mov dword [esi + 0x40], 0
test bl, bl
je 0x67c14a7f
mov edi, dword [ebp - 0x98]
mov dword [esp + 0xc], str.frames__primary____li_n
mov dword [esp + 8], str.DSOUND_MixOne
mov dword [esp + 0x10], edi
mov dword [esp + 4], 0x67c213a0
mov dword [esp], 3
call fcn.67c13c40
test byte [0x67c213a0], 8
je 0x67c14a7f
mov eax, dword [esi + 0x48]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0xc0]
mov dword [esp + 0xc], str.sec_mixpos_ld__ld_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.DSOUND_MixInBuffer
mov dword [esp + 4], 0x67c213a0
mov dword [esp], 3
call fcn.67c13c40
test byte [0x67c213a0], 8
je 0x67c14a7f
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.__p__frames_ld__n
mov dword [esp + 8], str.DSOUND_MixInBuffer
mov dword [esp + 4], 0x67c213a0
mov dword [esp], 3
call fcn.67c13c40
jmp 0x67c14a7f
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], str._frames__ld__n
mov dword [esp + 8], str.DSOUND_MixToPrimary
mov dword [esp + 4], 0x67c213a0
mov dword [esp], 3
call fcn.67c13c40
jmp 0x67c149c4
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0x7c]
movzx edi, word [eax + 2]
test byte [0x67c213a0], 8
jne 0x67c15d51
mov eax, dword [esi + 0x78]
test al, 0x40
je 0x67c1598b
mov edx, dword [esi + 0x70]
test edx, edx
je 0x67c1598b
cmp edi, 6
ja 0x67c15dce
xor eax, eax
test edi, edi
je 0x67c158e5
mov ecx, dword [esi + eax*4 + 0x54]
xor ebx, ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x50], ecx
fild qword [ebp - 0x50]
fdiv dword [0x67c32b94]
fstp dword [ebp + eax*4 - 0x30]
add eax, 1
cmp eax, edi
jne 0x67c158c5
mov ecx, dword [ebp - 0x98]
test ecx, ecx
jle 0x67c1595c
lea ecx, [edi*4]
mov dword [ebp - 0x50], 0
lea ebx, [ebp - 0x30]
mov eax, ecx
mov dword [ebp - 0x68], ecx
neg eax
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x48], eax
xor eax, eax
mov edi, eax
mov edx, dword [ebp - 0x58]
lea eax, [edi*4]
test edx, edx
je 0x67c15944
mov dword [ebp - 0x60], edi
lea esi, [esi]
mov edx, dword [esi + 0x28]
mov edi, dword [edx + 0x108]
add edi, eax
fld dword [edi]
fmul dword [ebx + eax]
add eax, 4
fstp dword [edi]
cmp eax, ecx
jne 0x67c15928
mov edi, dword [ebp - 0x60]
add dword [ebp - 0x50], 1
add edi, dword [ebp - 0x58]
mov eax, dword [ebp - 0x50]
add ebx, dword [ebp - 0x48]
add ecx, dword [ebp - 0x68]
cmp dword [ebp - 0x98], eax
jne 0x67c15911
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0x7c]
movzx eax, word [eax + 2]
imul eax, dword [ebp - 0x98]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xd8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x78]
mov dword [esp], eax
call fcn.67c0de30
jmp 0x67c14df5
test al, 0x80
jne 0x67c15c95
test al, 0x10
jne 0x67c158b6
jmp 0x67c1595c
mov edx, dword [esi + 0x28]
mov ecx, dword [edx + 0x144]
test ecx, ecx
je 0x67c14ddc
mov dword [esp + 8], 0
mov eax, dword [edx + 0x110]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.67c11860
mov edx, dword [esi + 0x28]
jmp 0x67c14ddc
mov dword [esi + 0x3c], 0
xor ebx, ebx
jmp 0x67c153d5
fstp st(0)
fstp st(0)
mov ebx, dword [ebp - 0x90]
xor edi, edi
jmp 0x67c152e3
mov dword [ebp - 0xb8], 0
jmp 0x67c150be
mov dword [esp], esi
call fcn.67c05460
test eax, eax
je 0x67c15d34
mov dword [ebp - 0xa8], 0
mov ebx, dword [esi + 0xc4]
test ebx, ebx
je 0x67c15af2
xor edx, edx
mov eax, dword [esi + 0x44]
sub eax, dword [esi + 0xcc]
mov dword [ebp - 0x60], 0
div dword [ebp - 0x68]
mov ecx, dword [ebp - 0x98]
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x78], 0
cmp eax, ecx
cmova eax, ecx
mov dword [ebp - 0xa8], eax
test eax, eax
je 0x67c15af2
mov ecx, dword [esi + 0x120]
xor ebx, ebx
test ecx, ecx
je 0x67c15ad0
nop
mov edx, dword [esi + 0xc8]
mov ecx, dword [esi + 0x44]
mov eax, dword [ebp - 0x60]
add eax, dword [esi + 0xcc]
mov dword [ebp - 0x58], edx
mov edi, dword [esi + 0x12c]
cmp eax, ecx
jb 0x67c15a99
fldz
test byte [esi + 0x38], 1
je 0x67c15ab1
fstp st(0)
xor edx, edx
mov dword [esp + 8], ebx
div ecx
mov dword [esp], esi
add edx, dword [ebp - 0x58]
mov dword [esp + 4], edx
call dword [esi + 0x124]
mov eax, dword [ebp - 0x48]
mov dword [esp + 8], ebx
add ebx, 1
mov dword [esp], esi
mov dword [esp + 4], eax
fstp dword [esp + 0xc]
call edi
cmp ebx, dword [esi + 0x120]
jb 0x67c15a70
add dword [ebp - 0x78], 1
mov ecx, dword [ebp - 0xa4]
mov edi, dword [ebp - 0x68]
add dword [ebp - 0x48], ecx
add dword [ebp - 0x60], edi
mov eax, dword [ebp - 0x78]
cmp dword [ebp - 0xa8], eax
jne 0x67c15a62
mov ebx, dword [esi + 0xc0]
mov ecx, dword [ebp - 0x98]
cmp dword [ebp - 0xa8], ecx
jae 0x67c15e42
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0xa4]
imul ecx, eax
imul eax, dword [ebp - 0x68]
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x58], eax
mov eax, ebx
mov edx, dword [esi + 0x120]
xor edi, edi
test edx, edx
je 0x67c15b91
lea esi, [esi]
mov edx, dword [esi + 0x34]
mov ecx, dword [esi + 0x48]
add eax, dword [ebp - 0x58]
mov ebx, dword [edx + 8]
cmp eax, ecx
jb 0x67c15b52
fldz
test byte [esi + 0x38], 1
je 0x67c15b69
fstp st(0)
xor edx, edx
mov dword [esp + 8], edi
div ecx
mov dword [esp], esi
add edx, ebx
mov dword [esp + 4], edx
call dword [esi + 0x124]
mov eax, dword [ebp - 0x60]
mov dword [esp + 8], edi
add edi, 1
mov dword [esp], esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x50]
fstp dword [esp + 0xc]
call eax
cmp edi, dword [esi + 0x120]
mov eax, dword [esi + 0xc0]
jb 0x67c15b38
mov ebx, dword [ebp - 0xa4]
add dword [ebp - 0xa8], 1
add dword [ebp - 0x60], ebx
mov ecx, dword [ebp - 0xa8]
mov ebx, dword [ebp - 0x68]
add dword [ebp - 0x58], ebx
cmp ecx, dword [ebp - 0x98]
jne 0x67c15b25
mov ebx, eax
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x58], eax
jmp 0x67c153ac
cmp dword [esi + 0x3c], 1
jne 0x67c1579f
mov eax, dword [esi + 0x28]
mov edi, dword [ebp - 0xc0]
mov eax, dword [eax + 0x94]
lea ecx, [eax + eax]
mov dword [ebp - 0x98], ecx
cmp edi, ecx
jbe 0x67c15e08
mov eax, dword [esi + 0x30]
sub edi, ecx
mov ecx, dword [esi + 0xac]
movzx eax, word [eax + 0xc]
imul eax, edi
imul ecx, eax
mul dword [esi + 0xa8]
mov dword [ebp - 0x4c], edx
mov edx, dword [esi + 0xb4]
mov dword [ebp - 0x50], eax
mov eax, dword [esi + 0xb0]
add dword [ebp - 0x4c], ecx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x50]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x4c]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.67c1fe30
add dword [esi + 0xc0], eax
jmp 0x67c1579f
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [ebx + 0x108], eax
sub esp, 0xc
jmp 0x67c14f32
xor edx, edx
mov eax, dword [esi + 0x44]
sub eax, dword [esi + 0xcc]
div dword [ebp - 0x68]
mov ecx, dword [ebp - 0x58]
cmp ecx, eax
cmovbe eax, ecx
mov dword [ebp - 0x88], eax
jmp 0x67c15011
mov ebx, dword [esi + 0x6c]
test ebx, ebx
jne 0x67c158b6
jmp 0x67c15993
mov dword [esp + 8], 0x1dd
mov dword [esp + 4], str..._dlls_dsound_mixer.c
mov dword [esp], str.ptr2___buflen
call dword [sym.imp.ucrtbase.dll__assert]
jmp 0x67c14e1e
mov dword [esp + 8], 0x1dc
mov dword [esp + 4], str..._dlls_dsound_mixer.c
mov dword [esp], str.ptr1___buflen
call dword [sym.imp.ucrtbase.dll__assert]
jmp 0x67c14e12
mov ecx, dword [ebp - 0x70]
mov dword [esp + 0xc], ebx
mov dword [esp + 4], 0
mov dword [esp + 8], ecx
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapReAlloc]
sub esp, 0x10
mov dword [edi + 0x10c], eax
mov eax, dword [esi + 0x28]
mov dword [eax + 0x118], ebx
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0x10c]
mov dword [ebp - 0x70], eax
jmp 0x67c14fe7
mov eax, dword [esi + 0x30]
mov ebx, dword [esi + 0xc0]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0xa8], eax
jmp 0x67c153ac
mov eax, dword [ebp - 0x98]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.__p__d__n
mov dword [esp + 0x14], eax
mov dword [esp + 8], str.DSOUND_MixerVol
mov dword [esp + 4], 0x67c213a0
mov dword [esp], 3
call fcn.67c13c40
test byte [0x67c213a0], 8
je 0x67c158a0
mov eax, dword [esi + 0x58]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x54]
mov dword [esp + 0xc], str.left___lx__right___lx_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.DSOUND_MixerVol
mov dword [esp + 4], 0x67c213a0
mov dword [esp], 3
call fcn.67c13c40
jmp 0x67c158a0
xor ebx, ebx
jmp 0x67c15bd0
test byte [0x67c213a0], 1
je 0x67c1595c
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.There_is_no_support_for__u_channels_n
mov dword [esp + 8], str.DSOUND_MixerVol
mov dword [esp + 4], 0x67c213a0
mov dword [esp], 0
call fcn.67c13c40
jmp 0x67c1595c
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x98], eax
jmp 0x67c1579f
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
sub esp, 0xc
jmp 0x67c15d14
mov eax, dword [esi + 0x30]
mov dword [ebp - 0xa8], ecx
mov dword [ebp - 0x58], eax
jmp 0x67c153ac
mov eax, dword [ebp - 0x98]
imul eax, dword [esi + 0x120]
mov dword [esp + 8], eax
mov eax, dword [edx + 0x110]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.67c11860
mov edx, dword [esi + 0x28]
jmp 0x67c154ef