Function at 0x498ad0
Capabilities:
Link many functions at runtime

Disassembly:
mov eax, dword [0x992300]
sub esp, 0x100
test eax, eax
push ebx
push esi
push edi
je 0x498af1
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x100
ret
push 0x10
call fcn.0048f5b0
push eax
push str.fs_basepath
call fcn.0045d890
mov ebx, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
mov edx, dword [ebx + 4]
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, str._snddrivers_mss32.dll
mov esi, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
cmp esi, 0x100
jae 0x498b5c
mov ecx, edx
lea edx, [esp + 0xc]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x498b36
lea edi, [esp + 0xc]
or ecx, 0xffffffff
xor eax, eax
mov esi, str._snddrivers_mss32.dll
repne scasb al, byte es:[edi]
dec edi
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x498b6d
xor eax, eax
mov cl, byte [eax + str._snddrivers_mss32.dll]
mov byte [esp + eax + 0xc], cl
inc eax
test cl, cl
jne 0x498b5e
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea eax, [esp + 0xc]
push eax
call esi
test eax, eax
mov dword [0x992300], eax
jne 0x498c14
mov edx, dword [ebx + 4]
or ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, str._snddrivers_mss32.dll
mov ebx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ebx, ecx
cmp ebx, 0x100
jae 0x498bef
mov ecx, edx
lea edx, [esp + 0xc]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x498bb3
lea edi, [esp + 0xc]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [0x574a48]
repne scasb al, byte es:[edi]
mov ecx, dword [str._mss32.dll]
mov ax, word [0x574a4c]
dec edi
mov dword [edi], ecx
mov cl, byte [0x574a4e]
mov dword [edi + 4], edx
mov word [edi + 8], ax
mov byte [edi + 0xa], cl
jmp 0x498c00
xor eax, eax
mov cl, byte [eax + str._mss32.dll]
mov byte [esp + eax + 0xc], cl
inc eax
test cl, cl
jne 0x498bf1
lea edx, [esp + 0xc]
push edx
call esi
test eax, eax
mov dword [0x992300], eax
je 0x49965f
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str._AIL_startup_0
push eax
call esi
test eax, eax
mov dword [0x99bbe0], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_shutdown_0
push eax
call esi
test eax, eax
mov dword [0x99bbe4], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_set_preference_8
push ecx
call esi
test eax, eax
mov dword [0x99bbe8], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_last_error_0
push edx
call esi
test eax, eax
mov dword [0x99bbec], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_waveOutOpen_16
push eax
call esi
test eax, eax
mov dword [0x99bbf0], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_waveOutClose_4
push ecx
call esi
test eax, eax
mov dword [0x99bbf4], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_set_digital_master_volume_8
push edx
call esi
test eax, eax
mov dword [0x99bbf8], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_allocate_sample_handle_4
push eax
call esi
test eax, eax
mov dword [0x99bbfc], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_release_sample_handle_4
push ecx
call esi
test eax, eax
mov dword [0x99bc00], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_init_sample_4
push edx
call esi
test eax, eax
mov dword [0x99bc04], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_set_sample_file_12
push eax
call esi
test eax, eax
mov dword [0x99bc08], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_set_named_sample_file_20
push ecx
call esi
test eax, eax
mov dword [0x99bc0c], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_start_sample_4
push edx
call esi
test eax, eax
mov dword [0x99bc10], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_stop_sample_4
push eax
call esi
test eax, eax
mov dword [0x99bc14], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_resume_sample_4
push ecx
call esi
test eax, eax
mov dword [0x99bc18], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_end_sample_4
push edx
call esi
test eax, eax
mov dword [0x99bc1c], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_set_sample_playback_rate_8
push eax
call esi
test eax, eax
mov dword [0x99bc20], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_set_sample_volume_8
push ecx
call esi
test eax, eax
mov dword [0x99bc24], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_set_sample_pan_8
push edx
call esi
test eax, eax
mov dword [0x99bc28], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_set_sample_reverb_16
push eax
call esi
test eax, eax
mov dword [0x99bc2c], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_set_sample_loop_count_8
push ecx
call esi
test eax, eax
mov dword [0x99bc30], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_set_sample_loop_block_12
push edx
call esi
test eax, eax
mov dword [0x99bc34], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_sample_status_4
push eax
call esi
test eax, eax
mov dword [0x99bc38], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_sample_playback_rate_4
push ecx
call esi
test eax, eax
mov dword [0x99bc3c], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_sample_volume_4
push edx
call esi
test eax, eax
mov dword [0x99bc40], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_set_sample_position_8
push eax
call esi
test eax, eax
mov dword [0x99bc44], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_sample_position_4
push ecx
call esi
test eax, eax
mov dword [0x99bc48], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_sample_loop_count_4
push edx
call esi
test eax, eax
mov dword [0x99bc4c], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_set_sample_ms_position_8
push eax
call esi
test eax, eax
mov dword [0x99bc50], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_sample_ms_position_12
push ecx
call esi
test eax, eax
mov dword [0x99bc54], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_sample_granularity_4
push edx
call esi
test eax, eax
mov dword [0x99bc58], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_digital_CPU_percent_4
push eax
call esi
test eax, eax
mov dword [0x99bc5c], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_digital_configuration_16
push ecx
call esi
test eax, eax
mov dword [0x99bc60], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_enumerate_3D_providers_12
push edx
call esi
test eax, eax
mov dword [0x99bc64], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_open_3D_provider_4
push eax
call esi
test eax, eax
mov dword [0x99bc68], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_close_3D_provider_4
push ecx
call esi
test eax, eax
mov dword [0x99bc6c], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_allocate_3D_sample_handle_4
push edx
call esi
test eax, eax
mov dword [0x99bc70], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_release_3D_sample_handle_4
push eax
call esi
test eax, eax
mov dword [0x99bc74], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_set_3D_sample_file_8
push ecx
call esi
test eax, eax
mov dword [0x99bc78], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_start_3D_sample_4
push edx
call esi
test eax, eax
mov dword [0x99bc7c], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_stop_3D_sample_4
push eax
call esi
test eax, eax
mov dword [0x99bc80], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_resume_3D_sample_4
push ecx
call esi
test eax, eax
mov dword [0x99bc84], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_end_3D_sample_4
push edx
call esi
test eax, eax
mov dword [0x99bc88], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_set_3D_sample_volume_8
push eax
call esi
test eax, eax
mov dword [0x99bc8c], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_set_3D_sample_playback_rate_8
push ecx
call esi
test eax, eax
mov dword [0x99bc90], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_set_3D_sample_offset_8
push edx
call esi
test eax, eax
mov dword [0x99bc94], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_set_3D_sample_loop_count_8
push eax
call esi
test eax, eax
mov dword [0x99bc98], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_set_3D_sample_loop_block_12
push ecx
call esi
test eax, eax
mov dword [0x99bc9c], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_set_3D_sample_occlusion_8
push edx
call esi
test eax, eax
mov dword [0x99bca0], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_set_3D_sample_obstruction_8
push eax
call esi
test eax, eax
mov dword [0x99bca4], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_set_3D_sample_effects_level_8
push ecx
call esi
test eax, eax
mov dword [0x99bca8], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_3D_sample_status_4
push edx
call esi
test eax, eax
mov dword [0x99bcac], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_3D_sample_playback_rate_4
push eax
call esi
test eax, eax
mov dword [0x99bcb0], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_3D_sample_volume_4
push ecx
call esi
test eax, eax
mov dword [0x99bcb4], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_3D_sample_length_4
push edx
call esi
test eax, eax
mov dword [0x99bcb8], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_3D_sample_offset_4
push eax
call esi
test eax, eax
mov dword [0x99bcbc], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_3D_sample_loop_count_4
push ecx
call esi
test eax, eax
mov dword [0x99bcc0], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_set_3D_sample_distances_12
push edx
call esi
test eax, eax
mov dword [0x99bcc4], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_open_3D_listener_4
push eax
call esi
test eax, eax
mov dword [0x99bcc8], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_close_3D_listener_4
push ecx
call esi
test eax, eax
mov dword [0x99bccc], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_set_3D_position_16
push edx
call esi
test eax, eax
mov dword [0x99bcd0], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_set_3D_velocity_vector_16
push eax
call esi
test eax, eax
mov dword [0x99bcd4], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_set_3D_orientation_28
push ecx
call esi
test eax, eax
mov dword [0x99bcd8], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_set_3D_room_type_8
push edx
call esi
test eax, eax
mov dword [0x99bcdc], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_set_3D_speaker_type_8
push eax
call esi
test eax, eax
mov dword [0x99bce0], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_3D_position_16
push ecx
call esi
test eax, eax
mov dword [0x99bce4], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_3D_provider_attribute_12
push edx
call esi
test eax, eax
mov dword [0x99bce8], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_set_3D_provider_preference_12
push eax
call esi
test eax, eax
mov dword [0x99bcec], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_3D_sample_attribute_12
push ecx
call esi
test eax, eax
mov dword [0x99bcf0], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_set_3D_sample_preference_12
push edx
call esi
test eax, eax
mov dword [0x99bcf4], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_open_stream_12
push eax
call esi
test eax, eax
mov dword [0x99bcf8], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_close_stream_4
push ecx
call esi
test eax, eax
mov dword [0x99bcfc], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_service_stream_8
push edx
call esi
test eax, eax
mov dword [0x99bd00], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_auto_service_stream_8
push eax
call esi
test eax, eax
mov dword [0x99bd04], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_start_stream_4
push ecx
call esi
test eax, eax
mov dword [0x99bd08], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_pause_stream_8
push edx
call esi
test eax, eax
mov dword [0x99bd0c], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_set_stream_playback_rate_8
push eax
call esi
test eax, eax
mov dword [0x99bd10], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_set_stream_volume_8
push ecx
call esi
test eax, eax
mov dword [0x99bd14], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_set_stream_pan_8
push edx
call esi
test eax, eax
mov dword [0x99bd18], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_set_stream_reverb_16
push eax
call esi
test eax, eax
mov dword [0x99bd1c], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_set_stream_loop_count_8
push ecx
call esi
test eax, eax
mov dword [0x99bd20], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_set_stream_loop_block_12
push edx
call esi
test eax, eax
mov dword [0x99bd24], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_set_stream_position_8
push eax
call esi
test eax, eax
mov dword [0x99bd28], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_set_stream_ms_position_8
push ecx
call esi
test eax, eax
mov dword [0x99bd2c], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_stream_status_4
push edx
call esi
test eax, eax
mov dword [0x99bd30], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_stream_playback_rate_4
push eax
call esi
test eax, eax
mov dword [0x99bd34], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_stream_volume_4
push ecx
call esi
test eax, eax
mov dword [0x99bd38], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_stream_pan_4
push edx
call esi
test eax, eax
mov dword [0x99bd3c], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_stream_reverb_16
push eax
call esi
test eax, eax
mov dword [0x99bd40], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_stream_loop_count_4
push ecx
call esi
test eax, eax
mov dword [0x99bd44], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_stream_position_4
push edx
call esi
test eax, eax
mov dword [0x99bd48], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_stream_ms_position_12
push eax
call esi
test eax, eax
mov dword [0x99bd4c], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_stream_info_20
push ecx
call esi
test eax, eax
mov dword [0x99bd50], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_set_stream_user_data_12
push edx
call esi
test eax, eax
mov dword [0x99bd54], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_stream_user_data_8
push eax
call esi
test eax, eax
mov dword [0x99bd58], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_register_stream_callback_8
push ecx
call esi
test eax, eax
mov dword [0x99bd5c], eax
je 0x49965f
mov edx, dword [0x992300]
push str._AIL_WAV_info_8
push edx
call esi
test eax, eax
mov dword [0x99bd60], eax
je 0x49965f
mov eax, dword [0x992300]
push str._AIL_process_digital_audio_24
push eax
call esi
test eax, eax
mov dword [0x99bd64], eax
je 0x49965f
mov ecx, dword [0x992300]
push str._AIL_size_processed_digital_audio_16
push ecx
call esi
xor edx, edx
pop edi
test eax, eax
setne dl
mov dword [0x99bd68], eax
pop esi
mov eax, edx
pop ebx
add esp, 0x100
ret
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x100
ret