Function at 0x5d8c30
Capabilities:
Print debug messages

Disassembly:
push ebx
mov ebx, dword [esp + 8]
cmp dword [0x6a5400], ebx
push esi
push edi
push ebp
jne 0x5d8c47
pop ebp
mov al, 1
pop edi
pop esi
pop ebx
ret
xor ebp, ebp
mov dword [0x6a5400], ebx
jmp 0x5d8c6f
mov eax, dword [ebp*4 + 0x94b1a0]
test eax, eax
je 0x5d8c6e
push eax
call dword [0x6f2634]
mov dword [ebp*4 + 0x94b1a0], 0
inc ebp
cmp ebp, dword [0x980030]
jb 0x5d8c51
cmp dword [0xa0fc9c], 0
je 0x5d8c96
mov eax, dword [0xa0fc9c]
push eax
call dword [0x6f2638]
mov dword [0xa0fc9c], 0
cmp dword [0x6a5400], 0xffffffff
mov byte [0xa10b1b], 0
mov dword [0xa10690], 0
mov dword [0x97f2a0], 0
je 0x5d8f50
mov ebp, ebx
mov ebx, 0x8167e8
imul ebp, ebp, 0x54
mov ecx, 0xf
mov edi, str.Dolby_Surround
add ebx, ebp
add ebx, 4
mov esi, ebx
repe cmpsb byte [esi], byte es:[edi]
movzx edx, byte [esi - 1]
movzx eax, byte [edi - 1]
sub edx, eax
test edx, edx
jne 0x5d8cf5
mov dword [0x980030], 0x18
jmp 0x5d8cff
mov dword [0x980030], 0x1c
mov eax, dword [ebp + 0x8167e8]
push 0x980030
push str.Maximum_supported_samples
push eax
call dword [0x6f262c]
mov eax, dword [ebp + 0x8167e8]
push eax
call dword [0x6f2674]
test eax, eax
je 0x5d8db0
or dword [0x6a5400], 0xffffffff
call dword [0x6f25d8]
push eax
call dword [sym.imp.kernel32.dll_OutputDebugStringA]
xor esi, esi
jmp 0x5d8d61
mov eax, dword [esi*4 + 0x94b1a0]
test eax, eax
je 0x5d8d60
push eax
call dword [0x6f2634]
mov dword [esi*4 + 0x94b1a0], 0
inc esi
cmp esi, dword [0x980030]
jb 0x5d8d43
cmp dword [0xa0fc9c], 0
je 0x5d8d88
mov eax, dword [0xa0fc9c]
push eax
call dword [0x6f2638]
mov dword [0xa0fc9c], 0
xor al, al
mov byte [0xa10b1b], 0
pop ebp
mov dword [0x97f2a0], 0
pop edi
mov dword [0xa10690], 0
pop esi
pop ebx
ret
push ebx
mov eax, dword [ebp + 0x8167e8]
mov dword [0xa0fc9c], eax
call fcn.006424c0
mov esi, eax
pop ecx
mov ecx, 0x19
mov edi, str.CREATIVE_LABS_EAX_3__TM_
repe cmpsb byte [esi], byte es:[edi]
movzx ecx, byte [esi - 1]
movzx eax, byte [edi - 1]
sub ecx, eax
test ecx, ecx
jne 0x5d8df4
mov dword [0xa10684], 1
mov dword [0xa0fd48], 1
jmp 0x5d8e1d
mov eax, dword [0xa0fc9c]
mov dword [0xa0fd48], 0
push eax
call dword [0x6f2678]
cmp eax, 0xffffffff
je 0x5d8e16
mov eax, 1
jmp 0x5d8e18
xor eax, eax
mov dword [0xa10684], eax
cmp dword [0xa0fd48], 0
je 0x5d8e50
push str.DOING_SPECIAL_EAX_3_STUFF_
call dword [sym.imp.kernel32.dll_OutputDebugStringA]
mov eax, dword [0xa0fc9c]
push 0x6a542c
push 0x6a554c
push eax
call dword [0x6f262c]
jmp 0x5d8e8a
cmp dword [0xa10684], 0
je 0x5d8e8a
mov eax, dword [0xa0fc9c]
push 8
push eax
call dword [0x6f267c]
mov ecx, 0x1f
mov edi, str.Miles_Fast_2D_Positional_Audio
mov esi, ebx
repe cmpsb byte [esi], byte es:[edi]
movzx edx, byte [esi - 1]
movzx eax, byte [edi - 1]
sub edx, eax
test edx, edx
jne 0x5d8e8a
mov byte [0xa10b1b], 1
mov eax, dword [0xa0fc9c]
push 0x980030
push str.Maximum_supported_samples
push eax
call dword [0x6f2680]
cmp dword [0x980030], 0x1c
jbe 0x5d8eb3
mov dword [0x980030], 0x1c
mov ecx, dword [0x975204]
mov eax, ecx
cmp eax, 2
ja case.default.0x5d8ec0
jmp dword [eax*4 + 0x6a5730]
mov dword [0x975204], 0
jmp 0x5d8ee9
mov dword [0x975204], 1
jmp 0x5d8ee9
mov dword [0x975204], 3
cmp dword [0xa0fc9c], 0
je case.default.0x5d8ec0
mov eax, dword [0xa0fc9c]
mov edx, dword [0x975204]
push edx
push eax
call dword [0x6f2670]
xor esi, esi
jmp 0x5d8f3c
mov eax, dword [0xa0fc9c]
push eax
call dword [0x6f2684]
mov dword [esi*4 + 0x94b1a0], eax
mov eax, dword [esi*4 + 0x94b1a0]
test eax, eax
je 0x5d8f3b
push dword [0x6a5520]
push eax
call dword [0x6f2628]
inc esi
cmp esi, dword [0x980030]
jb 0x5d8f10
pop ebp
mov al, 1
pop edi
pop esi
pop ebx
ret
xor al, al
pop ebp
pop edi
pop esi
pop ebx
ret