;Imports of snd:
	extern _Z9I_stricmpPKcS0_
	extern _Z19SND_Is2DChannelFreei
	extern _Z17SND_Stop2DChanneli
	extern _Z19SND_Is3DChannelFreei
	extern _Z17SND_Stop3DChanneli
	extern _Z23SND_IsStreamChannelFreei
	extern _Z21SND_StopStreamChanneli
	extern _Z9Com_Error11errorParm_tPKcz
	extern _Z18SND_Pause2DChanneli
	extern _Z22SND_PauseStreamChanneli
	extern _Z18SND_Pause3DChanneli
	extern _Z20SND_Unpause2DChannelii
	extern _Z24SND_UnpauseStreamChannelii
	extern _Z20SND_Unpause3DChannelii
	extern cl_paused
	extern _Z20Com_GetSoundFileNamePK11snd_alias_tPci
	extern _Z7randomfv
	extern _Z29SND_StartAliasStreamOnChannelP17SndStartAliasInfoi
	extern cmd_args
	extern atoi
	extern _Z10Com_PrintfiPKcz
	extern atof
	extern _Z18Com_PickSoundAliasPKc
	extern _Z12AxisToAnglesPA3_KfPf
	extern _Z12AngleVectorsPKfPfS1_S1_
	extern _Z23CL_AddDebugStarWithTextPKfS0_S0_PKcfii
	extern colorLtCyan
	extern colorWhiteFaded
	extern _Z17CL_AddDebugStringPKfS0_fPKcii
	extern _Z15CL_AddDebugStarPKfS0_ii
	extern colorGreen
	extern _Z2vaPKcz
	extern memset
	extern floorf
	extern _Z28SND_Set2DChannelPlaybackRateii
	extern _Z25StreamFileNameIsNullSoundPK14StreamFileName
	extern _Z14Com_PrintErroriPKcz
	extern _Z32Com_AliasNameRefersToSingleAliasPKc
	extern _Z28SND_Set3DChannelPlaybackRateii
	extern _Z17SND_Set3DPositioniPKf
	extern _Z32SND_SetStreamChannelPlaybackRateii
	extern _Z11Com_DPrintfiPKcz
	extern _Z22SND_StartAlias2DSampleP17SndStartAliasInfoPi
	extern _Z22SND_StartAlias3DSampleP17SndStartAliasInfoPi
	extern _Z17MemFile_WriteDataP10MemoryFileiPKv
	extern _Z20MemFile_WriteCStringP10MemoryFilePKc
	extern _Z18SND_GetAliasOffsetPK11snd_alias_t
	extern _Z16MemFile_ReadDataP10MemoryFileiPv
	extern _Z19MemFile_ReadCStringP10MemoryFile
	extern _Z22SND_GetAliasWithOffsetPKci
	extern _Z32SND_SetStreamChannelFromSaveInfoiP17snd_save_stream_t
	extern _Z26SND_GetDriverCPUPercentagev
	extern com_statmon
	extern _Z16Sys_Millisecondsv
	extern _Z19SND_DriverPreUpdatei
	extern _Z22Com_GetTimescaleForSndv
	extern _Z24Sys_EnterCriticalSection15CriticalSection
	extern _Z24Sys_LeaveCriticalSection15CriticalSection
	extern _Z20SND_DriverPostUpdatei
	extern _Z18Dvar_ClearModifiedPK6dvar_s
	extern _Z19SND_Update3DChannelii
	extern clientUIActives
	extern _Z15StatMon_WarningiiPKc
	extern _Z22MemFile_InitForReadingP10MemoryFileiPvh
	extern _Z21MemFile_MoveToSegmentP10MemoryFilei
	extern _Z23SND_UpdateStreamChannelii
	extern _Z19SND_Update2DChannelii
	extern _Z28SND_Get2DChannelPlaybackRatei
	extern _Z26Com_PickSoundAliasFromListP16snd_alias_list_t
	extern _Z32SND_GetStreamChannelPlaybackRatei
	extern _Z28SND_Get3DChannelPlaybackRatei
	extern _Z13SND_RestoreEqP10MemoryFile
	extern _Z15SND_SetRoomtypei
	extern _Z28SND_Set2DChannelFromSaveInfoiP20snd_save_2D_sample_t
	extern _Z17SND_PrintEqParamsv
	extern snd_eqTypeStrings
	extern _Z15SND_SetEqParamsiii10SND_EQTYPEfff
	extern _Z10SND_SetEqQiiif
	extern _Z14Voice_Shutdownv
	extern _Z22Com_UnloadSoundAliases18snd_alias_system_t
	extern _Z18SND_ShutdownDriverv
	extern _Z17Cmd_RemoveCommandPKc
	extern _Z19DB_FindXAssetHeader10XAssetTypePKc
	extern _Z30Com_GetVolumeFalloffCurveValueP8SndCurvef
	extern _Z13SND_DisableEqiii
	extern _Z13SND_SetEqFreqiiif
	extern _Z13SND_SetEqGainiiif
	extern _Z13SND_SetEqTypeiii10SND_EQTYPE
	extern _Z8AxisCopyPA3_KfPA3_f
	extern memcpy
	extern _Z25SND_Update3DChannelReverbi
	extern _Z29SND_UpdateStreamChannelReverbi
	extern _Z25SND_Update2DChannelReverbi
	extern _Z16Com_PrintWarningiPKcz
	extern _Z26CG_SubtitleSndLengthNotifyiPv
	extern _Z11Com_sprintfPciPKcz
	extern _Z26SND_GetStreamChannelVolumei
	extern _Z22SND_Get2DChannelVolumei
	extern _Z22SND_Get3DChannelVolumei
	extern _Z28CG_GetSoundEntityOrientation12SndEntHandlePfPA3_f
	extern snd_roomStrings
	extern _Z17Dvar_RegisterBoolPKchtS0_
	extern _Z18Dvar_RegisterFloatPKcffftS0_
	extern _Z16Dvar_RegisterIntPKciiitS0_
	extern _Z17Dvar_RegisterEnumPKcPS0_itS0_
	extern _Z19Com_LoadRawTextFilePKc
	extern _Z21Com_BeginParseSessionPKc
	extern _Z10Com_SetCSVi
	extern _Z9Com_ParsePPKc
	extern strcpy
	extern _Z15Com_ParseOnLinePPKc
	extern _Z18Com_SkipRestOfLinePPKc
	extern _Z19Com_EndParseSessionv
	extern _Z21Com_UnloadRawTextFilePKc
	extern _Z27BG_RegisterShockVolumeDvarsv
	extern _Z22Cmd_AddCommandInternalPKcPFvvEP14cmd_function_s
	extern _Z10Voice_Initv
	extern _Z10SND_SaveEqP10MemoryFile
	extern _Z22SND_Get3DChannelLengthi
	extern _Z24SND_Get3DChannelSaveInfoiP20snd_save_3D_sample_t
	extern _Z22SND_Get2DChannelLengthi
	extern _Z24SND_Get2DChannelSaveInfoiP20snd_save_2D_sample_t
	extern _Z26SND_GetStreamChannelLengthi
	extern _Z28SND_GetStreamChannelSaveInfoiP17snd_save_stream_t

;Exports of snd:
	global g_sndPhysics
	global snd_draw3DNames
	global g_FXPlaySoundCount
	global g_FXPlaySounds
	global _Z21StopSoundAliasesOnEnt12SndEntHandlePKc
	global _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h
	global _Z15SND_PauseSoundsv
	global _Z17SND_UnpauseSoundsv
	global _Z19SND_StartBackgroundiiPK11snd_alias_tifh18snd_alias_system_t
	global _Z25SND_ParseChannelAndBand_fPiS_S_
	global _ZZ8SND_InitvE22SND_DeactivateEq_f_VAR
	global _ZZ8SND_InitvE19SND_SetEqType_f_VAR
	global _ZZ8SND_InitvE16SND_SetEqQ_f_VAR
	global _ZZ8SND_InitvE19SND_SetEqGain_f_VAR
	global _ZZ8SND_InitvE19SND_SetEqFreq_f_VAR
	global _ZZ8SND_InitvE15SND_SetEq_f_VAR
	global _ZZ8SND_InitvE19SND_PlayLocal_f_VAR
	global _ZZ8SND_InitvE38SND_DeactivateEnvironmentEffects_f_VAR
	global _ZZ8SND_InitvE31SND_SetEnvironmentEffects_f_VAR
	global _Z15SND_PlayLocal_fv
	global _Z21DebugDrawWorldSound3DiiPiS_Pf
	global _Z20DebugDrawWorldSoundsi
	global _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii
	global _Z20SND_StartAliasStreamP17SndStartAliasInfoPi
	global _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t
	global _ZZ15SND_PlayLocal_fvE7MYCOLOR
	global _Z16SND_SaveChanInfoPK18snd_channel_info_tP10MemoryFile
	global _Z19SND_RestoreChanInfoP18snd_channel_info_tP10MemoryFile
	global _Z24SND_RestoreStreamChanneliP10MemoryFile
	global _Z10SND_Updatev
	global _Z11SND_RestoreP10MemoryFile
	global _Z11SND_SetEq_fv
	global _Z12SND_AddVoicei
	global _Z12SND_SetEqQ_fv
	global _Z12SND_Shutdownv
	global _Z13DB_LoadSoundsv
	global _Z13DB_SaveSoundsv
	global _Z13SND_AttenuateP8SndCurvefff
	global _Z13SND_StopMusici
	global _Z14SND_StopSounds20snd_stopsounds_arg_t
	global _Z15SND_RemoveVoicei
	global _Z15SND_SetEqFreq_fv
	global _Z15SND_SetEqGain_fv
	global _Z15SND_SetEqType_fv
	global _Z15SND_SetListeneriiPKfPA3_S_
	global _Z15SND_StopAmbientii18snd_alias_system_t
	global _Z16SND_ErrorCleanupv
	global _Z16SND_HasFreeVoicei
	global _Z16SND_InitFXSoundsv
	global _Z16SND_PlayFXSoundsv
	global _Z17SND_FadeAllSoundsfi
	global _Z17SND_SaveListenersP12snd_listener
	global _Z17SND_UpdateReverbsv
	global _Z18SND_DeactivateEq_fv
	global _Z18SND_GetKnownLengthiPi
	global _Z18SND_PlayMusicAliasiPK11snd_alias_th18snd_alias_system_t
	global _Z18SND_PlaySoundAliasPK11snd_alias_t12SndEntHandlePKfi18snd_alias_system_t
	global _Z19SND_AddLengthNotifyiPv11SndLengthId
	global _Z19SND_AddPhysicsSoundP16snd_alias_list_tPKf
	global _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi
	global _Z19SND_StopSoundsOnEnt12SndEntHandle
	global _Z20SND_IsAliasChannel3Di
	global _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t
	global _Z20SND_ResetChannelInfoi
	global _Z20SND_RestoreListenersP12snd_listener
	global _Z20SND_ShutdownChannelsv
	global _Z21SND_AcquirePlaybackIdii
	global _Z21SND_FindFree2DChannelP17SndStartAliasInfoi
	global _Z21SND_FindFree3DChannelP17SndStartAliasInfoi
	global _Z21SND_GetEntChannelNamei
	global _Z21SND_SetChannelVolumesiPKfi
	global _Z22SND_AnyActiveListenersv
	global _Z22SND_DisconnectListeneri
	global _Z22SND_GetEntChannelCountv
	global _Z23SND_AddPlayFXSoundAliasP11snd_alias_t12SndEntHandlePKf
	global _Z23SND_GetVolumeNormalizedv
	global _Z23SND_SetChannelStartInfoiP17SndStartAliasInfo
	global _Z23SND_StopSoundAliasOnEnt12SndEntHandlePKc
	global _Z23SND_UpdateLoopingSoundsv
	global _Z24SND_GetCurrent3DPosition12SndEntHandlePKfPf
	global _Z25SND_SetEnvironmentEffectsiPKcffi
	global _Z26SND_PlaySoundAliasAsMasterPK11snd_alias_t12SndEntHandlePKfi18snd_alias_system_t
	global _Z26SND_SetPlaybackIdNotPlayedi
	global _Z26SND_UpdateBackgroundVolumeii
	global _Z27SND_PlayBlendedSoundAliasesPK11snd_alias_tS1_ff12SndEntHandlePKfi18snd_alias_system_t
	global _Z27SND_SetEnvironmentEffects_fv
	global _Z27SND_SetSoundFileChannelInfoiiiii19SndFileLoadingState
	global _Z28SND_DeactivateChannelVolumesii
	global _Z28SND_GetLerpedSlavePercentagef
	global _Z29SND_PlayLocalSoundAliasByNameiPKc18snd_alias_system_t
	global _Z32SND_DeactivateEnvironmentEffectsii
	global _Z32SND_StopChannelAndPlayChainAliasi
	global _Z34SND_DeactivateEnvironmentEffects_fv
	global _Z35SND_GetListenerIndexNearestToOriginPKf
	global _Z8SND_Initv
	global _Z8SND_SaveP10MemoryFile
	global snd_cinematicVolumeScale
	global snd_errorOnMissing
	global snd_touchStreamFilesOnLoad
	global g_snd
	global snd_enableReverb
	global snd_draw3D
	global snd_enable2D
	global snd_enable3D
	global snd_enableEq
	global snd_enableStream
	global snd_levelFadeTime
	global snd_slaveFadeTime
	global snd_volume


SECTION .text


;StopSoundAliasesOnEnt(SndEntHandle, char const*)
_Z21StopSoundAliasesOnEnt12SndEntHandlePKc:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov edi, eax
	mov [ebp-0x20], edx
	cmp byte [g_snd], 0x0
	jz _Z21StopSoundAliasesOnEnt12SndEntHandlePKc_10
	mov dword [ebp-0x1c], 0x0
	xor ebx, ebx
	mov esi, g_snd+0x61f0
	jmp _Z21StopSoundAliasesOnEnt12SndEntHandlePKc_20
_Z21StopSoundAliasesOnEnt12SndEntHandlePKc_30:
	add ebx, 0x1
	add esi, 0x8c
	cmp ebx, 0x35
	jz _Z21StopSoundAliasesOnEnt12SndEntHandlePKc_10
_Z21StopSoundAliasesOnEnt12SndEntHandlePKc_20:
	cmp [esi+0x10], edi
	jnz _Z21StopSoundAliasesOnEnt12SndEntHandlePKc_30
	test ebx, ebx
	js _Z21StopSoundAliasesOnEnt12SndEntHandlePKc_40
	cmp [g_snd+0x7eec], ebx
	jg _Z21StopSoundAliasesOnEnt12SndEntHandlePKc_50
_Z21StopSoundAliasesOnEnt12SndEntHandlePKc_40:
	cmp ebx, 0x7
	jle _Z21StopSoundAliasesOnEnt12SndEntHandlePKc_60
	mov eax, [g_snd+0x7ef0]
	add eax, 0x8
	cmp eax, ebx
	jg _Z21StopSoundAliasesOnEnt12SndEntHandlePKc_70
_Z21StopSoundAliasesOnEnt12SndEntHandlePKc_60:
	cmp ebx, 0x27
	jle _Z21StopSoundAliasesOnEnt12SndEntHandlePKc_80
	mov eax, [g_snd+0x7ef4]
	add eax, 0x28
	cmp eax, ebx
	jg _Z21StopSoundAliasesOnEnt12SndEntHandlePKc_90
_Z21StopSoundAliasesOnEnt12SndEntHandlePKc_80:
	mov eax, [ebp-0x20]
	test eax, eax
	jz _Z21StopSoundAliasesOnEnt12SndEntHandlePKc_100
	mov eax, [esi+0x58]
	test eax, eax
	jz _Z21StopSoundAliasesOnEnt12SndEntHandlePKc_110
	mov edx, [ebp-0x20]
	mov [esp+0x4], edx
	mov eax, [eax]
	mov [esp], eax
	call _Z9I_stricmpPKcS0_
	test eax, eax
	jz _Z21StopSoundAliasesOnEnt12SndEntHandlePKc_100
_Z21StopSoundAliasesOnEnt12SndEntHandlePKc_110:
	mov eax, [esi+0x5c]
	test eax, eax
	jz _Z21StopSoundAliasesOnEnt12SndEntHandlePKc_30
	mov edx, [ebp-0x20]
	mov [esp+0x4], edx
	mov eax, [eax]
	mov [esp], eax
	call _Z9I_stricmpPKcS0_
	test eax, eax
	jnz _Z21StopSoundAliasesOnEnt12SndEntHandlePKc_30
_Z21StopSoundAliasesOnEnt12SndEntHandlePKc_100:
	mov [esp], ebx
	call dword [ebp-0x1c]
	add ebx, 0x1
	add esi, 0x8c
	cmp ebx, 0x35
	jnz _Z21StopSoundAliasesOnEnt12SndEntHandlePKc_20
_Z21StopSoundAliasesOnEnt12SndEntHandlePKc_10:
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z21StopSoundAliasesOnEnt12SndEntHandlePKc_50:
	mov [esp], ebx
	call _Z19SND_Is2DChannelFreei
	test al, al
	jnz _Z21StopSoundAliasesOnEnt12SndEntHandlePKc_30
	mov eax, _Z17SND_Stop2DChanneli
	mov [ebp-0x1c], eax
	jmp _Z21StopSoundAliasesOnEnt12SndEntHandlePKc_80
_Z21StopSoundAliasesOnEnt12SndEntHandlePKc_70:
	mov [esp], ebx
	call _Z19SND_Is3DChannelFreei
	test al, al
	jnz _Z21StopSoundAliasesOnEnt12SndEntHandlePKc_30
	mov edx, _Z17SND_Stop3DChanneli
	mov [ebp-0x1c], edx
	jmp _Z21StopSoundAliasesOnEnt12SndEntHandlePKc_80
_Z21StopSoundAliasesOnEnt12SndEntHandlePKc_90:
	mov [esp], ebx
	call _Z23SND_IsStreamChannelFreei
	test al, al
	jnz _Z21StopSoundAliasesOnEnt12SndEntHandlePKc_30
	mov eax, _Z21SND_StopStreamChanneli
	mov [ebp-0x1c], eax
	jmp _Z21StopSoundAliasesOnEnt12SndEntHandlePKc_80


;SND_ValidateSoundAliasBlend(snd_alias_t const*, snd_alias_t const*, unsigned char)
_Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov esi, eax
	mov ebx, edx
	cmp eax, edx
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_10
	mov eax, [eax+0x10]
	cmp eax, [edx+0x10]
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_20
	test cl, cl
	jnz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_30
_Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_50:
	xor eax, eax
_Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_60:
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_30:
	mov eax, [edx]
	mov [esp+0xc], eax
	mov eax, [esi]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_tried_to_blend_b
	mov dword [esp], 0x2
	call _Z9Com_Error11errorParm_tPKcz
	xor eax, eax
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_20:
	mov eax, [esi+0x48]
	cmp eax, [edx+0x48]
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_40
	test cl, cl
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_50
	mov eax, [edx]
	mov [esp+0xc], eax
	mov eax, [esi]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_tried_to_blend_b1
	mov dword [esp], 0x2
	call _Z9Com_Error11errorParm_tPKcz
	xor eax, eax
	jmp _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_60
_Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_210:
	mov eax, [ebx+0x8]
	test eax, eax
	jnz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_70
_Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_10:
	mov eax, 0x1
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_40:
	mov eax, [esi+0x30]
	mov [ebp-0x20], eax
	and eax, 0x1
	mov [ebp-0x1c], eax
	mov edi, [edx+0x30]
	mov eax, edi
	and eax, 0x1
	cmp [ebp-0x1c], eax
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_80
	test cl, cl
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_50
	mov eax, [edx]
	mov [esp+0xc], eax
	mov eax, [esi]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_tried_to_blend_b2
	mov dword [esp], 0x2
	call _Z9Com_Error11errorParm_tPKcz
	xor eax, eax
	jmp _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_60
_Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_80:
	mov edx, [ebp-0x20]
	and edx, 0xc0
	mov eax, edi
	and eax, 0xc0
	cmp eax, edx
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_90
	test cl, cl
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_50
	mov eax, [ebx]
	mov [esp+0xc], eax
	mov eax, [esi]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_tried_to_blend_b3
	mov dword [esp], 0x2
	call _Z9Com_Error11errorParm_tPKcz
	xor eax, eax
	jmp _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_60
_Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_90:
	mov edx, [ebp-0x20]
	and edx, 0x3f00
	mov eax, edi
	and eax, 0x3f00
	cmp eax, edx
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_100
	test cl, cl
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_50
	mov eax, [ebx]
	mov [esp+0xc], eax
	mov eax, [esi]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_tried_to_blend_b4
	mov dword [esp], 0x2
	call _Z9Com_Error11errorParm_tPKcz
	xor eax, eax
	jmp _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_60
_Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_100:
	mov edx, [ebp-0x20]
	and edx, 0x2
	mov eax, edi
	and eax, 0x2
	cmp edx, eax
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_110
	test cl, cl
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_50
	mov eax, [ebx]
	mov [esp+0xc], eax
	mov eax, [esi]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_tried_to_blend_b5
	mov dword [esp], 0x2
	call _Z9Com_Error11errorParm_tPKcz
	xor eax, eax
	jmp _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_60
_Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_110:
	mov edx, [ebp-0x20]
	and edx, 0x4
	mov eax, edi
	and eax, 0x4
	cmp edx, eax
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_120
	test cl, cl
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_50
	mov eax, [ebx]
	mov [esp+0xc], eax
	mov eax, [esi]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_tried_to_blend_b6
	mov dword [esp], 0x2
	call _Z9Com_Error11errorParm_tPKcz
	xor eax, eax
	jmp _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_60
_Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_120:
	mov edx, [ebp-0x20]
	and edx, 0x8
	mov eax, edi
	and eax, 0x8
	cmp edx, eax
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_130
	test cl, cl
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_50
	mov eax, [ebx]
	mov [esp+0xc], eax
	mov eax, [esi]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_tried_to_blend_b7
	mov dword [esp], 0x2
	call _Z9Com_Error11errorParm_tPKcz
	xor eax, eax
	jmp _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_60
_Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_130:
	and dword [ebp-0x20], 0x10
	and edi, 0x10
	cmp [ebp-0x20], edi
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_140
	test cl, cl
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_50
	mov eax, [ebx]
	mov [esp+0xc], eax
	mov eax, [esi]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_tried_to_blend_b8
	mov dword [esp], 0x2
	call _Z9Com_Error11errorParm_tPKcz
	xor eax, eax
	jmp _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_60
_Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_140:
	movss xmm0, dword [esi+0x34]
	ucomiss xmm0, [ebx+0x34]
	jp _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_150
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_160
_Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_150:
	test cl, cl
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_50
	mov eax, [ebx]
	mov [esp+0xc], eax
	mov eax, [esi]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_tried_to_blend_b9
	mov dword [esp], 0x2
	call _Z9Com_Error11errorParm_tPKcz
	xor eax, eax
	jmp _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_60
_Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_160:
	mov eax, [esi+0x44]
	cmp eax, [ebx+0x44]
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_170
	test cl, cl
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_50
	mov eax, [ebx]
	mov [esp+0xc], eax
	mov eax, [esi]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_tried_to_blend_b10
	mov dword [esp], 0x2
	call _Z9Com_Error11errorParm_tPKcz
	xor eax, eax
	jmp _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_60
_Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_170:
	mov eax, [ebp-0x1c]
	test eax, eax
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_180
	movss xmm0, dword [esi+0x20]
	ucomiss xmm0, [esi+0x24]
	jnz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_190
	jp _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_190
	movss xmm0, dword [ebx+0x20]
	ucomiss xmm0, [ebx+0x24]
	jp _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_190
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_200
_Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_190:
	test cl, cl
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_50
	mov eax, [ebx]
	mov [esp+0xc], eax
	mov eax, [esi]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_tried_to_blend_b11
	mov dword [esp], 0x2
	call _Z9Com_Error11errorParm_tPKcz
	xor eax, eax
	jmp _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_60
_Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_180:
	mov eax, [esi+0x8]
	test eax, eax
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_210
_Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_70:
	test cl, cl
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_50
	mov eax, [ebx]
	mov [esp+0xc], eax
	mov eax, [esi]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_tried_to_blend_b12
	mov dword [esp], 0x2
	call _Z9Com_Error11errorParm_tPKcz
	xor eax, eax
	jmp _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_60
_Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_200:
	movss xmm0, dword [esi+0x18]
	ucomiss xmm0, [esi+0x1c]
	jnz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_220
	jp _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_220
	movss xmm0, dword [ebx+0x18]
	ucomiss xmm0, [ebx+0x1c]
	jp _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_220
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_180
_Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_220:
	test cl, cl
	jz _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_50
	mov eax, [ebx]
	mov [esp+0xc], eax
	mov eax, [esi]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_tried_to_blend_b13
	mov dword [esp], 0x2
	call _Z9Com_Error11errorParm_tPKcz
	xor eax, eax
	jmp _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h_60


;SND_PauseSounds()
_Z15SND_PauseSoundsv:
	push ebp
	mov ebp, esp
	push esi
	push ebx
	sub esp, 0x10
	cmp byte [g_snd], 0x0
	jz _Z15SND_PauseSoundsv_10
	cmp byte [g_snd+0x2], 0x0
	jnz _Z15SND_PauseSoundsv_10
	mov eax, [g_snd+0x7eec]
	test eax, eax
	jg _Z15SND_PauseSoundsv_20
_Z15SND_PauseSoundsv_60:
	mov eax, [g_snd+0x7ef0]
	add eax, 0x8
	cmp eax, 0x8
	jg _Z15SND_PauseSoundsv_30
_Z15SND_PauseSoundsv_120:
	mov eax, [g_snd+0x7ef4]
	add eax, 0x28
	cmp eax, 0x28
	jg _Z15SND_PauseSoundsv_40
_Z15SND_PauseSoundsv_90:
	mov byte [g_snd+0x2], 0x1
	mov eax, [g_snd+0x4dcc]
	mov [g_snd+0x14], eax
_Z15SND_PauseSoundsv_10:
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	ret
_Z15SND_PauseSoundsv_20:
	xor ebx, ebx
	mov esi, g_snd
	jmp _Z15SND_PauseSoundsv_50
_Z15SND_PauseSoundsv_70:
	add ebx, 0x1
	add esi, 0x8c
	cmp ebx, [g_snd+0x7eec]
	jge _Z15SND_PauseSoundsv_60
_Z15SND_PauseSoundsv_50:
	mov [esp], ebx
	call _Z19SND_Is2DChannelFreei
	test al, al
	jnz _Z15SND_PauseSoundsv_70
	mov eax, [esi+0x6248]
	mov eax, [eax+0x30]
	and eax, 0x3f00
	sar eax, 0x8
	cmp byte [eax+g_snd+0x4d1c], 0x0
	jz _Z15SND_PauseSoundsv_70
	mov [esp], ebx
	call _Z18SND_Pause2DChanneli
	jmp _Z15SND_PauseSoundsv_70
_Z15SND_PauseSoundsv_40:
	mov ebx, 0x28
	mov esi, g_snd
	jmp _Z15SND_PauseSoundsv_80
_Z15SND_PauseSoundsv_100:
	add ebx, 0x1
	add esi, 0x8c
	mov eax, [g_snd+0x7ef4]
	add eax, 0x28
	cmp ebx, eax
	jge _Z15SND_PauseSoundsv_90
_Z15SND_PauseSoundsv_80:
	mov [esp], ebx
	call _Z23SND_IsStreamChannelFreei
	test al, al
	jnz _Z15SND_PauseSoundsv_100
	mov eax, [esi+0x7828]
	mov eax, [eax+0x30]
	and eax, 0x3f00
	sar eax, 0x8
	cmp byte [eax+g_snd+0x4d1c], 0x0
	jz _Z15SND_PauseSoundsv_100
	mov [esp], ebx
	call _Z22SND_PauseStreamChanneli
	jmp _Z15SND_PauseSoundsv_100
_Z15SND_PauseSoundsv_30:
	mov ebx, 0x8
	mov esi, g_snd
	jmp _Z15SND_PauseSoundsv_110
_Z15SND_PauseSoundsv_130:
	add ebx, 0x1
	add esi, 0x8c
	mov eax, [g_snd+0x7ef0]
	add eax, 0x8
	cmp ebx, eax
	jge _Z15SND_PauseSoundsv_120
_Z15SND_PauseSoundsv_110:
	mov [esp], ebx
	call _Z19SND_Is3DChannelFreei
	test al, al
	jnz _Z15SND_PauseSoundsv_130
	mov eax, [esi+0x66a8]
	mov eax, [eax+0x30]
	and eax, 0x3f00
	sar eax, 0x8
	cmp byte [eax+g_snd+0x4d1c], 0x0
	jz _Z15SND_PauseSoundsv_130
	mov [esp], ebx
	call _Z18SND_Pause3DChanneli
	jmp _Z15SND_PauseSoundsv_130
	nop


;SND_UnpauseSounds()
_Z17SND_UnpauseSoundsv:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x1c
	cmp byte [g_snd], 0x0
	jz _Z17SND_UnpauseSoundsv_10
	cmp byte [g_snd+0x2], 0x0
	jz _Z17SND_UnpauseSoundsv_10
	mov edi, [g_snd+0x4dcc]
	sub edi, [g_snd+0x14]
	mov eax, [g_snd+0x7eec]
	test eax, eax
	jg _Z17SND_UnpauseSoundsv_20
_Z17SND_UnpauseSoundsv_60:
	mov eax, [g_snd+0x7ef0]
	add eax, 0x8
	cmp eax, 0x8
	jg _Z17SND_UnpauseSoundsv_30
_Z17SND_UnpauseSoundsv_120:
	mov eax, [g_snd+0x7ef4]
	add eax, 0x28
	cmp eax, 0x28
	jg _Z17SND_UnpauseSoundsv_40
_Z17SND_UnpauseSoundsv_90:
	mov byte [g_snd+0x2], 0x0
	mov dword [g_snd+0x14], 0x0
_Z17SND_UnpauseSoundsv_10:
	add esp, 0x1c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z17SND_UnpauseSoundsv_20:
	xor ebx, ebx
	mov esi, g_snd
	jmp _Z17SND_UnpauseSoundsv_50
_Z17SND_UnpauseSoundsv_70:
	add ebx, 0x1
	add esi, 0x8c
	cmp ebx, [g_snd+0x7eec]
	jge _Z17SND_UnpauseSoundsv_60
_Z17SND_UnpauseSoundsv_50:
	mov [esp], ebx
	call _Z19SND_Is2DChannelFreei
	test al, al
	jnz _Z17SND_UnpauseSoundsv_70
	cmp byte [esi+0x6274], 0x0
	jz _Z17SND_UnpauseSoundsv_70
	mov [esp+0x4], edi
	mov [esp], ebx
	call _Z20SND_Unpause2DChannelii
	jmp _Z17SND_UnpauseSoundsv_70
_Z17SND_UnpauseSoundsv_40:
	mov ebx, 0x28
	mov esi, g_snd
	jmp _Z17SND_UnpauseSoundsv_80
_Z17SND_UnpauseSoundsv_100:
	add ebx, 0x1
	add esi, 0x8c
	mov eax, [g_snd+0x7ef4]
	add eax, 0x28
	cmp ebx, eax
	jge _Z17SND_UnpauseSoundsv_90
_Z17SND_UnpauseSoundsv_80:
	mov [esp], ebx
	call _Z23SND_IsStreamChannelFreei
	test al, al
	jnz _Z17SND_UnpauseSoundsv_100
	cmp byte [esi+0x7854], 0x0
	jz _Z17SND_UnpauseSoundsv_100
	mov [esp+0x4], edi
	mov [esp], ebx
	call _Z24SND_UnpauseStreamChannelii
	jmp _Z17SND_UnpauseSoundsv_100
_Z17SND_UnpauseSoundsv_30:
	mov ebx, 0x8
	mov esi, g_snd
	jmp _Z17SND_UnpauseSoundsv_110
_Z17SND_UnpauseSoundsv_130:
	add ebx, 0x1
	add esi, 0x8c
	mov eax, [g_snd+0x7ef0]
	add eax, 0x8
	cmp ebx, eax
	jge _Z17SND_UnpauseSoundsv_120
_Z17SND_UnpauseSoundsv_110:
	mov [esp], ebx
	call _Z19SND_Is3DChannelFreei
	test al, al
	jnz _Z17SND_UnpauseSoundsv_130
	cmp byte [esi+0x66d4], 0x0
	jz _Z17SND_UnpauseSoundsv_130
	mov [esp+0x4], edi
	mov [esp], ebx
	call _Z20SND_Unpause3DChannelii
	jmp _Z17SND_UnpauseSoundsv_130


;SND_StartBackground(int, int, snd_alias_t const*, int, float, unsigned char, snd_alias_system_t)
_Z19SND_StartBackgroundiiPK11snd_alias_tifh18snd_alias_system_t:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x10c
	mov edi, eax
	mov [ebp-0xf4], edx
	mov esi, ecx
	movss [ebp-0xf8], xmm0
	movzx eax, byte [ebp+0xc]
	mov [ebp-0xf9], al
	mov eax, cl_paused
	mov eax, [eax]
	mov eax, [eax+0xc]
	test eax, eax
	setnz al
	cmp al, [g_snd+0x2]
	jz _Z19SND_StartBackgroundiiPK11snd_alias_tifh18snd_alias_system_t_10
	test al, al
	jnz _Z19SND_StartBackgroundiiPK11snd_alias_tifh18snd_alias_system_t_20
	call _Z17SND_UnpauseSoundsv
_Z19SND_StartBackgroundiiPK11snd_alias_tifh18snd_alias_system_t_10:
	mov edx, [esi+0x30]
	mov eax, edx
	and eax, 0x3f00
	sar eax, 0x8
	lea eax, [eax+eax*4]
	shl eax, 0x4
	cmp byte [eax+g_snd+0x4e30], 0x0
	jnz _Z19SND_StartBackgroundiiPK11snd_alias_tifh18snd_alias_system_t_30
_Z19SND_StartBackgroundiiPK11snd_alias_tifh18snd_alias_system_t_80:
	and edx, 0xc0
	add edx, 0xffffff80
	jz _Z19SND_StartBackgroundiiPK11snd_alias_tifh18snd_alias_system_t_40
	mov dword [esp+0x8], 0x80
	lea ebx, [ebp-0xd0]
	mov [esp+0x4], ebx
	mov [esp], esi
	call _Z20Com_GetSoundFileNamePK11snd_alias_tPci
	mov [esp+0xc], ebx
	mov eax, [esi]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_alias_s_sound_s_
	mov dword [esp], 0x2
	call _Z9Com_Error11errorParm_tPKcz
_Z19SND_StartBackgroundiiPK11snd_alias_tifh18snd_alias_system_t_40:
	movss xmm0, dword [esi+0x18]
	movss [ebp-0xf0], xmm0
	movss xmm0, dword [esi+0x1c]
	subss xmm0, [ebp-0xf0]
	movss [ebp-0xe0], xmm0
	call _Z7randomfv
	fstp dword [ebp-0xec]
	movss xmm0, dword [ebp-0xe0]
	mulss xmm0, [ebp-0xec]
	movss [ebp-0xe0], xmm0
	movss xmm0, dword [ebp-0xf0]
	addss xmm0, [ebp-0xe0]
	movss [ebp-0xe0], xmm0
	movss xmm0, dword [esi+0x20]
	movss [ebp-0xe8], xmm0
	movss xmm0, dword [esi+0x24]
	subss xmm0, [ebp-0xe8]
	movss [ebp-0xdc], xmm0
	call _Z7randomfv
	fstp dword [ebp-0xe4]
	movss xmm0, dword [ebp-0xdc]
	mulss xmm0, [ebp-0xe4]
	movss [ebp-0xdc], xmm0
	movss xmm0, dword [ebp-0xe8]
	addss xmm0, [ebp-0xdc]
	movss [ebp-0xdc], xmm0
	mov ebx, [ebp-0xf4]
	add ebx, 0x28
	mov [esp], ebx
	call _Z23SND_IsStreamChannelFreei
	test al, al
	jz _Z19SND_StartBackgroundiiPK11snd_alias_tifh18snd_alias_system_t_50
_Z19SND_StartBackgroundiiPK11snd_alias_tifh18snd_alias_system_t_90:
	lea edx, [ebx+ebx*4]
	lea eax, [edx*8]
	sub eax, edx
	shl eax, 0x2
	movss xmm0, dword [ebp-0xe0]
	movss [eax+g_snd+0x6240], xmm0
	mov edx, g_snd+0x4c40
	mov ecx, [ebp-0xf4]
	movss [edx+ecx*8+0x8], xmm0
	cmp dword [ebp+0x8], 0x0
	jle _Z19SND_StartBackgroundiiPK11snd_alias_tifh18snd_alias_system_t_60
	cvtsi2ss xmm1, dword [ebp+0x8]
	movss xmm0, dword [eax+g_snd+0x6240]
	divss xmm0, xmm1
	movss [edx+ecx*8+0xc], xmm0
	mov dword [eax+g_snd+0x6240], 0x0
_Z19SND_StartBackgroundiiPK11snd_alias_tifh18snd_alias_system_t_100:
	mov [ebp-0x50], esi
	mov [ebp-0x4c], esi
	mov dword [ebp-0x48], 0x0
	mov dword [ebp-0x44], 0xffff
	lea eax, [edi*8]
	shl edi, 0x6
	sub edi, eax
	lea eax, [edi+g_snd+0x4d50]
	lea edx, [eax+0xc]
	mov eax, [eax+0xc]
	mov [ebp-0x40], eax
	mov eax, [edx+0x4]
	mov [ebp-0x3c], eax
	mov eax, [edx+0x8]
	mov [ebp-0x38], eax
	lea edx, [ebx+ebx*4]
	lea eax, [edx*8]
	sub eax, edx
	mov eax, [eax*4+g_snd+0x6240]
	mov [ebp-0x34], eax
	movss xmm0, dword [ebp-0xdc]
	movss [ebp-0x30], xmm0
	mov dword [ebp-0x2c], 0x0
	movss xmm0, dword [ebp-0xf8]
	movss [ebp-0x28], xmm0
	mov eax, [esi+0x44]
	mov [ebp-0x24], eax
	mov eax, [esi+0x30]
	shr eax, 1
	and eax, 0x1
	mov [ebp-0x20], al
	mov eax, [ebp+0x10]
	mov [ebp-0x1c], eax
	movzx eax, byte [ebp-0xf9]
	mov [ebp-0x1f], al
	mov eax, [snd_enableStream]
	cmp byte [eax+0xc], 0x0
	jz _Z19SND_StartBackgroundiiPK11snd_alias_tifh18snd_alias_system_t_70
	mov [esp+0x4], ebx
	lea eax, [ebp-0x50]
	mov [esp], eax
	call _Z29SND_StartAliasStreamOnChannelP17SndStartAliasInfoi
_Z19SND_StartBackgroundiiPK11snd_alias_tifh18snd_alias_system_t_70:
	add esp, 0x10c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z19SND_StartBackgroundiiPK11snd_alias_tifh18snd_alias_system_t_20:
	call _Z15SND_PauseSoundsv
	mov edx, [esi+0x30]
	mov eax, edx
	and eax, 0x3f00
	sar eax, 0x8
	lea eax, [eax+eax*4]
	shl eax, 0x4
	cmp byte [eax+g_snd+0x4e30], 0x0
	jz _Z19SND_StartBackgroundiiPK11snd_alias_tifh18snd_alias_system_t_80
_Z19SND_StartBackgroundiiPK11snd_alias_tifh18snd_alias_system_t_30:
	mov dword [esp+0x8], 0x80
	lea ebx, [ebp-0xd0]
	mov [esp+0x4], ebx
	mov [esp], esi
	call _Z20Com_GetSoundFileNamePK11snd_alias_tPci
	mov [esp+0xc], ebx
	mov eax, [esi]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_alias_s_sound_s_1
	mov dword [esp], 0x2
	call _Z9Com_Error11errorParm_tPKcz
	mov edx, [esi+0x30]
	jmp _Z19SND_StartBackgroundiiPK11snd_alias_tifh18snd_alias_system_t_80
_Z19SND_StartBackgroundiiPK11snd_alias_tifh18snd_alias_system_t_50:
	mov [esp], ebx
	call _Z21SND_StopStreamChanneli
	jmp _Z19SND_StartBackgroundiiPK11snd_alias_tifh18snd_alias_system_t_90
_Z19SND_StartBackgroundiiPK11snd_alias_tifh18snd_alias_system_t_60:
	mov eax, [ebp-0xf4]
	mov dword [edx+eax*8+0xc], 0x0
	jmp _Z19SND_StartBackgroundiiPK11snd_alias_tifh18snd_alias_system_t_100


;SND_ParseChannelAndBand_f(int*, int*, int*)
_Z25SND_ParseChannelAndBand_fPiS_S_:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov [ebp-0x1c], eax
	mov [ebp-0x20], edx
	mov [ebp-0x24], ecx
	mov eax, cmd_args
	mov edx, [eax]
	cmp dword [eax+edx*4+0x44], 0x1
	jle _Z25SND_ParseChannelAndBand_fPiS_S__10
	mov eax, [eax+edx*4+0x64]
	mov edi, [eax+0x4]
_Z25SND_ParseChannelAndBand_fPiS_S__120:
	mov edx, [g_snd+0x61ec]
	test edx, edx
	jg _Z25SND_ParseChannelAndBand_fPiS_S__20
_Z25SND_ParseChannelAndBand_fPiS_S__110:
	mov ebx, 0xffffffff
_Z25SND_ParseChannelAndBand_fPiS_S__90:
	mov eax, [ebp-0x1c]
	mov [eax], ebx
	test ebx, ebx
	js _Z25SND_ParseChannelAndBand_fPiS_S__30
	mov eax, cmd_args
	mov edx, [eax]
	cmp dword [eax+edx*4+0x44], 0x2
	jg _Z25SND_ParseChannelAndBand_fPiS_S__40
	mov eax, _cstring_null
	mov [esp], eax
	call atoi
	mov edx, [ebp-0x20]
	mov [edx], eax
	cmp eax, 0x1
	jbe _Z25SND_ParseChannelAndBand_fPiS_S__50
_Z25SND_ParseChannelAndBand_fPiS_S__60:
	mov dword [esp+0xc], 0x2
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_invalid_eqindex_
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	xor eax, eax
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z25SND_ParseChannelAndBand_fPiS_S__40:
	mov eax, [eax+edx*4+0x64]
	mov eax, [eax+0x8]
	mov [esp], eax
	call atoi
	mov edx, [ebp-0x20]
	mov [edx], eax
	cmp eax, 0x1
	ja _Z25SND_ParseChannelAndBand_fPiS_S__60
_Z25SND_ParseChannelAndBand_fPiS_S__50:
	mov eax, cmd_args
	mov edx, [eax]
	cmp dword [eax+edx*4+0x44], 0x3
	jg _Z25SND_ParseChannelAndBand_fPiS_S__70
	mov eax, _cstring_null
	mov [esp], eax
	call atoi
	mov edx, [ebp-0x24]
	mov [edx], eax
	cmp eax, 0x2
	ja _Z25SND_ParseChannelAndBand_fPiS_S__80
_Z25SND_ParseChannelAndBand_fPiS_S__130:
	mov eax, 0x1
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z25SND_ParseChannelAndBand_fPiS_S__20:
	xor ebx, ebx
	mov esi, g_snd+0x4dec
_Z25SND_ParseChannelAndBand_fPiS_S__100:
	mov [esp+0x4], esi
	mov [esp], edi
	call _Z9I_stricmpPKcS0_
	test eax, eax
	jz _Z25SND_ParseChannelAndBand_fPiS_S__90
	add ebx, 0x1
	add esi, 0x50
	cmp ebx, [g_snd+0x61ec]
	jl _Z25SND_ParseChannelAndBand_fPiS_S__100
	jmp _Z25SND_ParseChannelAndBand_fPiS_S__110
_Z25SND_ParseChannelAndBand_fPiS_S__10:
	mov edi, _cstring_null
	jmp _Z25SND_ParseChannelAndBand_fPiS_S__120
_Z25SND_ParseChannelAndBand_fPiS_S__70:
	mov eax, [eax+edx*4+0x64]
	mov eax, [eax+0xc]
	mov [esp], eax
	call atoi
	mov edx, [ebp-0x24]
	mov [edx], eax
	cmp eax, 0x2
	jbe _Z25SND_ParseChannelAndBand_fPiS_S__130
_Z25SND_ParseChannelAndBand_fPiS_S__80:
	mov dword [esp+0xc], 0x3
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_invalid_band_i_m
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	xor eax, eax
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z25SND_ParseChannelAndBand_fPiS_S__30:
	mov [esp+0x8], edi
	mov dword [esp+0x4], _cstring_unknown_channel_
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	xor eax, eax
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret


;SND_PlayLocal_f()
_Z15SND_PlayLocal_fv:
	push ebp
	mov ebp, esp
	push esi
	push ebx
	sub esp, 0x90
	mov ecx, cmd_args
	mov edx, [ecx]
	mov eax, [ecx+edx*4+0x44]
	cmp eax, 0x3
	jz _Z15SND_PlayLocal_fv_10
	jg _Z15SND_PlayLocal_fv_20
	cmp eax, 0x2
	jz _Z15SND_PlayLocal_fv_30
_Z15SND_PlayLocal_fv_60:
	test eax, eax
	jle _Z15SND_PlayLocal_fv_40
	mov eax, [ecx+edx*4+0x64]
	mov eax, [eax]
_Z15SND_PlayLocal_fv_230:
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_usage_s_sndalias
	mov dword [esp], 0x0
	call _Z10Com_PrintfiPKcz
	add esp, 0x90
	pop ebx
	pop esi
	pop ebp
	ret
_Z15SND_PlayLocal_fv_20:
	cmp eax, 0x4
	jz _Z15SND_PlayLocal_fv_50
	cmp eax, 0x5
	jnz _Z15SND_PlayLocal_fv_60
	mov eax, [ecx+edx*4+0x64]
	mov eax, [eax+0x10]
	mov [esp], eax
	call atof
	fstp qword [ebp-0x60]
	cvtsd2ss xmm0, [ebp-0x60]
	movss [ebp-0x40], xmm0
	mov ecx, cmd_args
_Z15SND_PlayLocal_fv_210:
	mov eax, [ecx]
	cmp dword [ecx+eax*4+0x44], 0x3
	jg _Z15SND_PlayLocal_fv_70
	mov eax, _cstring_null
_Z15SND_PlayLocal_fv_240:
	mov [esp], eax
	call atof
	fstp qword [ebp-0x58]
	cvtsd2ss xmm1, [ebp-0x58]
	movss [ebp-0x44], xmm1
	mov ecx, cmd_args
	mov eax, [ecx]
	cmp dword [ecx+eax*4+0x44], 0x2
	jg _Z15SND_PlayLocal_fv_80
_Z15SND_PlayLocal_fv_150:
	mov eax, _cstring_null
_Z15SND_PlayLocal_fv_160:
	mov [esp], eax
	call atof
	fstp qword [ebp-0x50]
	cvtsd2ss xmm0, [ebp-0x50]
	movss [ebp-0x3c], xmm0
	mov ecx, cmd_args
_Z15SND_PlayLocal_fv_220:
	mov eax, [ecx]
	cmp dword [ecx+eax*4+0x44], 0x1
	jle _Z15SND_PlayLocal_fv_90
	mov eax, [ecx+eax*4+0x64]
	mov eax, [eax+0x4]
_Z15SND_PlayLocal_fv_200:
	mov [esp], eax
	call _Z18Com_PickSoundAliasPKc
	mov eax, cmd_args
	mov edx, [eax]
	cmp dword [eax+edx*4+0x44], 0x1
	jle _Z15SND_PlayLocal_fv_100
	mov eax, [eax+edx*4+0x64]
	mov eax, [eax+0x4]
_Z15SND_PlayLocal_fv_190:
	mov [esp], eax
	call _Z18Com_PickSoundAliasPKc
	mov ebx, eax
	test eax, eax
	jz _Z15SND_PlayLocal_fv_110
	xor dword [ebp-0x44], 0x80000000
	movss xmm1, dword [ebp-0x44]
	movss [ebp-0x1c], xmm1
	xor dword [ebp-0x40], 0x80000000
	movss xmm0, dword [ebp-0x40]
	movss [ebp-0x20], xmm0
	mov dword [ebp-0x18], 0x0
	lea eax, [ebp-0x2c]
	mov [esp+0x4], eax
	mov dword [esp], g_snd+0x4d68
	call _Z12AxisToAnglesPA3_KfPf
	movss xmm0, dword [ebp-0x1c]
	addss xmm0, [ebp-0x28]
	movss [ebp-0x1c], xmm0
	mov dword [esp+0xc], 0x0
	mov dword [esp+0x8], 0x0
	lea eax, [ebp-0x38]
	mov [esp+0x4], eax
	lea eax, [ebp-0x20]
	mov [esp], eax
	call _Z12AngleVectorsPKfPfS1_S1_
	movss xmm0, dword [ebp-0x3c]
	mulss xmm0, [ebp-0x38]
	movss [ebp-0x14], xmm0
	movss xmm0, dword [ebp-0x3c]
	mulss xmm0, [ebp-0x34]
	movss [ebp-0x10], xmm0
	movss xmm0, dword [ebp-0x3c]
	mulss xmm0, [ebp-0x30]
	movss [ebp-0xc], xmm0
	movss xmm0, dword [g_snd+0x4d5c]
	addss xmm0, [ebp-0x14]
	movss [ebp-0x14], xmm0
	movss xmm0, dword [g_snd+0x4d60]
	addss xmm0, [ebp-0x10]
	movss [ebp-0x10], xmm0
	movss xmm0, dword [g_snd+0x4d64]
	addss xmm0, [ebp-0xc]
	movss [ebp-0xc], xmm0
	mov dword [esp+0x14], 0x1
	mov dword [esp+0x10], 0x1
	mov dword [esp+0xc], 0x0
	mov dword [esp+0x8], 0x0
	mov dword [esp+0x4], 0x0
	lea esi, [ebp-0x14]
	mov [esp], esi
	xor ecx, ecx
	movss xmm1, dword [_float_1_00000000]
	pxor xmm0, xmm0
	mov edx, ebx
	mov eax, ebx
	call _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t
	cvtss2sd xmm2, [ebp-0xc]
	cvtss2sd xmm1, [ebp-0x10]
	cvtss2sd xmm0, [ebp-0x14]
	mov eax, cmd_args
	mov edx, [eax]
	cmp dword [eax+edx*4+0x44], 0x1
	jle _Z15SND_PlayLocal_fv_120
	mov eax, [eax+edx*4+0x64]
	mov eax, [eax+0x4]
_Z15SND_PlayLocal_fv_250:
	movsd [esp+0x1c], xmm2
	movsd [esp+0x14], xmm1
	movsd [esp+0xc], xmm0
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_playing_local_so
	mov dword [esp], 0xe
	call _Z10Com_PrintfiPKcz
	movss xmm1, dword [ebp-0x3c]
	ucomiss xmm1, [_float_400_00000000]
	jae _Z15SND_PlayLocal_fv_130
	jp _Z15SND_PlayLocal_fv_130
	mov ecx, 0x3f000000
_Z15SND_PlayLocal_fv_180:
	mov eax, cmd_args
	mov edx, [eax]
	cmp dword [eax+edx*4+0x44], 0x1
	jle _Z15SND_PlayLocal_fv_140
	mov eax, [eax+edx*4+0x64]
	mov eax, [eax+0x4]
_Z15SND_PlayLocal_fv_260:
	mov dword [esp+0x18], 0x0
	mov dword [esp+0x14], 0xc8
	mov [esp+0x10], ecx
	mov [esp+0xc], eax
	mov dword [esp+0x8], _ZZ15SND_PlayLocal_fvE7MYCOLOR
	mov dword [esp+0x4], _ZZ15SND_PlayLocal_fvE7MYCOLOR
	mov [esp], esi
	call _Z23CL_AddDebugStarWithTextPKfS0_S0_PKcfii
	add esp, 0x90
	pop ebx
	pop esi
	pop ebp
	ret
_Z15SND_PlayLocal_fv_10:
	pxor xmm0, xmm0
	movss [ebp-0x40], xmm0
	movss [ebp-0x44], xmm0
	mov eax, [ecx]
	cmp dword [ecx+eax*4+0x44], 0x2
	jle _Z15SND_PlayLocal_fv_150
_Z15SND_PlayLocal_fv_80:
	mov eax, [ecx+eax*4+0x64]
	mov eax, [eax+0x8]
	jmp _Z15SND_PlayLocal_fv_160
_Z15SND_PlayLocal_fv_110:
	mov eax, cmd_args
	mov edx, [eax]
	cmp dword [eax+edx*4+0x44], 0x1
	jle _Z15SND_PlayLocal_fv_170
	mov eax, [eax+edx*4+0x64]
	mov eax, [eax+0x4]
_Z15SND_PlayLocal_fv_270:
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_couldnt_find_sou
	mov dword [esp], 0xe
	call _Z10Com_PrintfiPKcz
	add esp, 0x90
	pop ebx
	pop esi
	pop ebp
	ret
_Z15SND_PlayLocal_fv_130:
	mov ecx, 0x3fc00000
	jmp _Z15SND_PlayLocal_fv_180
_Z15SND_PlayLocal_fv_100:
	mov eax, _cstring_null
	jmp _Z15SND_PlayLocal_fv_190
_Z15SND_PlayLocal_fv_90:
	mov eax, _cstring_null
	jmp _Z15SND_PlayLocal_fv_200
_Z15SND_PlayLocal_fv_50:
	pxor xmm1, xmm1
	movss [ebp-0x40], xmm1
	jmp _Z15SND_PlayLocal_fv_210
_Z15SND_PlayLocal_fv_30:
	movss xmm0, dword [_float_100_00000000]
	movss [ebp-0x3c], xmm0
	pxor xmm1, xmm1
	movss [ebp-0x40], xmm1
	movss [ebp-0x44], xmm1
	jmp _Z15SND_PlayLocal_fv_220
_Z15SND_PlayLocal_fv_40:
	mov eax, _cstring_null
	jmp _Z15SND_PlayLocal_fv_230
_Z15SND_PlayLocal_fv_70:
	mov eax, [ecx+eax*4+0x64]
	mov eax, [eax+0xc]
	jmp _Z15SND_PlayLocal_fv_240
_Z15SND_PlayLocal_fv_120:
	mov eax, _cstring_null
	jmp _Z15SND_PlayLocal_fv_250
_Z15SND_PlayLocal_fv_140:
	mov eax, _cstring_null
	jmp _Z15SND_PlayLocal_fv_260
_Z15SND_PlayLocal_fv_170:
	mov eax, _cstring_null
	jmp _Z15SND_PlayLocal_fv_270
	nop


;DebugDrawWorldSound3D(int, int, int*, int*, float*)
_Z21DebugDrawWorldSound3DiiPiS_Pf:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x16c
	mov edi, eax
	mov ebx, edx
	mov [ebp-0x14c], ecx
	lea edx, [eax+eax*4]
	lea eax, [edx*8]
	sub eax, edx
	lea esi, [eax*4+g_snd+0x61f0]
	mov edx, [esi+0x10]
	lea eax, [ebp-0x2c]
	mov [esp+0x8], eax
	lea eax, [esi+0x78]
	mov [esp+0x4], eax
	mov [esp], edx
	call _Z24SND_GetCurrent3DPosition12SndEntHandlePKfPf
	movss xmm4, dword [ebp-0x2c]
	movss xmm6, dword [ebp-0x28]
	movss xmm0, dword [ebp-0x24]
	movss [ebp-0x150], xmm0
	xor edx, edx
	mov ecx, g_snd
	movss xmm3, dword [_float_3402823466385288598117041]
	mov eax, g_snd+0x4d50
_Z21DebugDrawWorldSound3DiiPiS_Pf_20:
	cmp byte [ecx+0x4d90], 0x0
	jnz _Z21DebugDrawWorldSound3DiiPiS_Pf_10
	movaps xmm2, xmm3
_Z21DebugDrawWorldSound3DiiPiS_Pf_120:
	movss [ebp+edx*4-0x20], xmm2
	add edx, 0x1
	add eax, 0x38
	add ecx, 0x38
	cmp edx, 0x2
	jnz _Z21DebugDrawWorldSound3DiiPiS_Pf_20
	mov eax, [g_snd+0x4dd4]
	cmp byte [eax+0x34], 0x0
	jz _Z21DebugDrawWorldSound3DiiPiS_Pf_30
	mov eax, [g_snd+0x4ddc]
	imul eax, eax
	cvtsi2ss xmm0, eax
	movss xmm2, dword [ebp-0x1c]
	cmpss xmm0, xmm2, 0x5
	andps xmm2, xmm0
	movss xmm1, dword [_float_3402823466385288598117041]
	andnps xmm0, xmm1
	orps xmm0, xmm2
	movss [ebp-0x1c], xmm0
_Z21DebugDrawWorldSound3DiiPiS_Pf_30:
	movss xmm0, dword [ebp-0x20]
	xor ecx, ecx
	ucomiss xmm0, [ebp-0x1c]
	seta cl
	lea edx, [ecx*8]
	mov eax, ecx
	shl eax, 0x6
	sub eax, edx
	add eax, g_snd+0x4d50
	lea edx, [eax+0xc]
	movss xmm0, dword [eax+0xc]
	subss xmm0, xmm4
	movss xmm3, dword [edx+0x4]
	movaps xmm1, xmm3
	subss xmm1, xmm6
	movss xmm5, dword [edx+0x8]
	movaps xmm2, xmm5
	subss xmm2, [ebp-0x150]
	mulss xmm0, xmm0
	mulss xmm1, xmm1
	addss xmm0, xmm1
	mulss xmm2, xmm2
	addss xmm0, xmm2
	sqrtss xmm0, xmm0
	movss [ebp-0x144], xmm0
	ucomiss xmm0, [_float_10_00000000]
	jae _Z21DebugDrawWorldSound3DiiPiS_Pf_40
	jp _Z21DebugDrawWorldSound3DiiPiS_Pf_40
	movss xmm0, dword [_float_0_05000000]
	movss [ebp-0x140], xmm0
_Z21DebugDrawWorldSound3DiiPiS_Pf_140:
	mov eax, [g_snd+0x14]
	test eax, eax
	jz _Z21DebugDrawWorldSound3DiiPiS_Pf_50
	sub eax, [esi+0x1c]
	mov [ebp-0x13c], eax
_Z21DebugDrawWorldSound3DiiPiS_Pf_130:
	cmp ebx, 0x3
	jz _Z21DebugDrawWorldSound3DiiPiS_Pf_60
	subss xmm4, [edx]
	subss xmm6, xmm3
	movaps xmm3, xmm6
	movss xmm2, dword [ebp-0x150]
	subss xmm2, xmm5
	movaps xmm0, xmm4
	mulss xmm0, xmm4
	movaps xmm1, xmm6
	mulss xmm1, xmm6
	addss xmm0, xmm1
	movaps xmm1, xmm2
	mulss xmm1, xmm2
	addss xmm0, xmm1
	sqrtss xmm1, xmm0
	movaps xmm0, xmm1
	xorps xmm0, [_data16_80000000]
	ucomiss xmm0, [_float_0_00000000]
	jb _Z21DebugDrawWorldSound3DiiPiS_Pf_70
	movss xmm5, dword [_float_1_00000000]
_Z21DebugDrawWorldSound3DiiPiS_Pf_190:
	lea eax, [ecx*8]
	shl ecx, 0x6
	sub ecx, eax
	lea eax, [ecx+g_snd+0x4d50]
	lea edx, [eax+0x18]
	movaps xmm0, xmm5
	mulss xmm0, xmm4
	mulss xmm0, [eax+0x18]
	mulss xmm3, xmm5
	mulss xmm3, [edx+0x4]
	addss xmm0, xmm3
	mulss xmm5, xmm2
	mulss xmm5, [edx+0x8]
	addss xmm0, xmm5
	mov ecx, [ebp+0xc]
	ucomiss xmm0, [ecx]
	jbe _Z21DebugDrawWorldSound3DiiPiS_Pf_60
	mov eax, [ebp+0x8]
	mov [eax], edi
	movss [ecx], xmm0
_Z21DebugDrawWorldSound3DiiPiS_Pf_60:
	mov edx, [esi+0x10]
	cmp edx, 0x3fe
	jz _Z21DebugDrawWorldSound3DiiPiS_Pf_80
	mov ecx, [ebp-0x14c]
	cvtsi2ss xmm0, dword [ecx+edx*4]
	addss xmm0, [ebp-0x150]
	movss [ebp-0x24], xmm0
	mov edi, colorLtCyan
_Z21DebugDrawWorldSound3DiiPiS_Pf_160:
	cmp ebx, 0x2
	jz _Z21DebugDrawWorldSound3DiiPiS_Pf_90
	cmp ebx, 0x3
	jz _Z21DebugDrawWorldSound3DiiPiS_Pf_100
	sub ebx, 0x1
	jz _Z21DebugDrawWorldSound3DiiPiS_Pf_110
	mov ecx, [ebp-0x14c]
_Z21DebugDrawWorldSound3DiiPiS_Pf_150:
	movss xmm0, dword [ebp-0x140]
	mulss xmm0, [_float_1_25000000]
	mulss xmm0, [_float__12_00000000]
	addss xmm0, [ebp-0x24]
	movss [ebp-0x140], xmm0
	subss xmm0, [ebp-0x150]
	cvttss2si eax, xmm0
	mov [ecx+edx*4], eax
	add esp, 0x16c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z21DebugDrawWorldSound3DiiPiS_Pf_10:
	movss xmm2, dword [eax+0xc]
	subss xmm2, xmm4
	movss xmm0, dword [eax+0x10]
	subss xmm0, xmm6
	movss xmm1, dword [eax+0x14]
	subss xmm1, [ebp-0x150]
	mulss xmm2, xmm2
	mulss xmm0, xmm0
	addss xmm2, xmm0
	mulss xmm1, xmm1
	addss xmm2, xmm1
	jmp _Z21DebugDrawWorldSound3DiiPiS_Pf_120
_Z21DebugDrawWorldSound3DiiPiS_Pf_50:
	mov eax, [g_snd+0x4dcc]
	mov [ebp-0x13c], eax
	mov eax, [esi+0x1c]
	sub [ebp-0x13c], eax
	jmp _Z21DebugDrawWorldSound3DiiPiS_Pf_130
_Z21DebugDrawWorldSound3DiiPiS_Pf_40:
	divss xmm0, dword [_float_2000_00000000]
	mulss xmm0, [_float_3_50000000]
	movss [ebp-0x140], xmm0
	jmp _Z21DebugDrawWorldSound3DiiPiS_Pf_140
_Z21DebugDrawWorldSound3DiiPiS_Pf_90:
	mov dword [esp+0x14], 0x1
	mov dword [esp+0x10], 0x0
	mov eax, [esi+0x58]
	mov eax, [eax]
	mov [esp+0xc], eax
	movss xmm0, dword [ebp-0x140]
	movss [esp+0x8], xmm0
	mov eax, colorWhiteFaded
	mov [esp+0x4], eax
	lea eax, [ebp-0x2c]
	mov [esp], eax
	call _Z17CL_AddDebugStringPKfS0_fPKcii
	mov edx, [esi+0x10]
_Z21DebugDrawWorldSound3DiiPiS_Pf_110:
	mov ecx, [ebp-0x14c]
	mov eax, [ecx+edx*4]
	test eax, eax
	jnz _Z21DebugDrawWorldSound3DiiPiS_Pf_150
	mov dword [esp+0xc], 0x0
	mov dword [esp+0x8], 0x1
	mov [esp+0x4], edi
	lea edi, [ebp-0x2c]
	mov [esp], edi
	call _Z15CL_AddDebugStarPKfS0_ii
	mov edx, [esi+0x10]
	mov ecx, [ebp-0x14c]
	jmp _Z21DebugDrawWorldSound3DiiPiS_Pf_150
_Z21DebugDrawWorldSound3DiiPiS_Pf_80:
	mov edi, colorGreen
	jmp _Z21DebugDrawWorldSound3DiiPiS_Pf_160
_Z21DebugDrawWorldSound3DiiPiS_Pf_100:
	movss xmm0, dword [ebp-0x140]
	mulss xmm0, [_float_0_85000002]
	movss [ebp-0x140], xmm0
	mov [esp+0x8], edx
	mov eax, [esi+0x58]
	mov eax, [eax]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_details_s
	call _Z2vaPKcz
	mov edx, eax
	mov eax, [esi+0x10]
	mov ecx, [ebp-0x14c]
	mov ebx, [ecx+eax*4]
	test ebx, ebx
	jnz _Z21DebugDrawWorldSound3DiiPiS_Pf_170
	mov dword [esp+0x18], 0x0
	mov dword [esp+0x14], 0x1
	movss xmm0, dword [ebp-0x140]
	movss [esp+0x10], xmm0
	mov [esp+0xc], edx
	mov eax, colorWhiteFaded
	mov [esp+0x8], eax
	mov [esp+0x4], edi
	lea eax, [ebp-0x2c]
	mov [esp], eax
	call _Z23CL_AddDebugStarWithTextPKfS0_S0_PKcfii
_Z21DebugDrawWorldSound3DiiPiS_Pf_200:
	movss xmm0, dword [ebp-0x140]
	mulss xmm0, [_float__12_00000000]
	movss [ebp-0x148], xmm0
	addss xmm0, [ebp-0x24]
	movss [ebp-0x24], xmm0
	lea ebx, [ebp-0x12c]
	mov dword [ebp-0x12c], 0x656c6946
	mov word [ebp-0x128], 0x203a
	mov byte [ebp-0x126], 0x0
	cld
	mov ecx, 0xffffffff
	xor eax, eax
	mov edi, ebx
	repne scasb
	not ecx
	sub ecx, 0x1
	mov eax, 0x100
	sub eax, ecx
	mov [esp+0x8], eax
	lea ecx, [ebx+ecx]
	mov [esp+0x4], ecx
	mov eax, [esi+0x58]
	mov [esp], eax
	call _Z20Com_GetSoundFileNamePK11snd_alias_tPci
	mov dword [esp+0x14], 0x1
	mov dword [esp+0x10], 0x0
	mov [esp+0xc], ebx
	movss xmm0, dword [ebp-0x140]
	movss [esp+0x8], xmm0
	mov ebx, colorWhiteFaded
	mov [esp+0x4], ebx
	lea eax, [ebp-0x2c]
	mov [esp], eax
	call _Z17CL_AddDebugStringPKfS0_fPKcii
	mov eax, [esi+0x10]
	cmp eax, 0x3fe
	jz _Z21DebugDrawWorldSound3DiiPiS_Pf_180
	movss xmm0, dword [ebp-0x148]
	addss xmm0, [ebp-0x24]
	movss [ebp-0x24], xmm0
	mov [esp+0x4], eax
	mov dword [esp], _cstring_owner_entity_i
_Z21DebugDrawWorldSound3DiiPiS_Pf_210:
	call _Z2vaPKcz
	mov dword [esp+0x14], 0x1
	mov dword [esp+0x10], 0x0
	mov [esp+0xc], eax
	movss xmm0, dword [ebp-0x140]
	movss [esp+0x8], xmm0
	mov [esp+0x4], ebx
	lea eax, [ebp-0x2c]
	mov [esp], eax
	call _Z17CL_AddDebugStringPKfS0_fPKcii
	movss xmm0, dword [ebp-0x148]
	addss xmm0, [ebp-0x24]
	movss [ebp-0x24], xmm0
	mov eax, [esi+0x58]
	cvtss2sd xmm0, [eax+0x2c]
	movsd [esp+0xc], xmm0
	cvtss2sd xmm0, [ebp-0x144]
	movsd [esp+0x4], xmm0
	mov dword [esp], _cstring_distance_0f__0f
	call _Z2vaPKcz
	mov dword [esp+0x14], 0x1
	mov dword [esp+0x10], 0x0
	mov [esp+0xc], eax
	movss xmm0, dword [ebp-0x140]
	movss [esp+0x8], xmm0
	mov ebx, colorWhiteFaded
	mov [esp+0x4], ebx
	lea eax, [ebp-0x2c]
	mov [esp], eax
	call _Z17CL_AddDebugStringPKfS0_fPKcii
	movss xmm0, dword [ebp-0x148]
	addss xmm0, [ebp-0x24]
	movss [ebp-0x24], xmm0
	cvtsi2ss xmm0, dword [ebp-0x13c]
	divss xmm0, dword [_float_1000_00000000]
	cvtss2sd xmm0, xmm0
	movsd [esp+0x4], xmm0
	mov dword [esp], _cstring_time_3f
	call _Z2vaPKcz
	mov dword [esp+0x14], 0x1
	mov dword [esp+0x10], 0x0
	mov [esp+0xc], eax
	movss xmm0, dword [ebp-0x140]
	movss [esp+0x8], xmm0
	mov [esp+0x4], ebx
	lea eax, [ebp-0x2c]
	mov [esp], eax
	call _Z17CL_AddDebugStringPKfS0_fPKcii
	mov edx, [esi+0x10]
	mov ecx, [ebp-0x14c]
	jmp _Z21DebugDrawWorldSound3DiiPiS_Pf_150
_Z21DebugDrawWorldSound3DiiPiS_Pf_70:
	movss xmm5, dword [_float_1_00000000]
	divss xmm5, xmm1
	jmp _Z21DebugDrawWorldSound3DiiPiS_Pf_190
_Z21DebugDrawWorldSound3DiiPiS_Pf_170:
	mov dword [esp+0x14], 0x1
	mov dword [esp+0x10], 0x0
	mov [esp+0xc], edx
	movss xmm0, dword [ebp-0x140]
	movss [esp+0x8], xmm0
	mov eax, colorWhiteFaded
	mov [esp+0x4], eax
	lea eax, [ebp-0x2c]
	mov [esp], eax
	call _Z17CL_AddDebugStringPKfS0_fPKcii
	jmp _Z21DebugDrawWorldSound3DiiPiS_Pf_200
_Z21DebugDrawWorldSound3DiiPiS_Pf_180:
	movss xmm0, dword [ebp-0x148]
	addss xmm0, [ebp-0x24]
	movss [ebp-0x24], xmm0
	mov dword [esp], _cstring_owner_world
	jmp _Z21DebugDrawWorldSound3DiiPiS_Pf_210
	nop


;DebugDrawWorldSounds(int)
_Z20DebugDrawWorldSoundsi:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x122c
	mov edi, [ebp+0x8]
	test edi, edi
	jnz _Z20DebugDrawWorldSoundsi_10
_Z20DebugDrawWorldSoundsi_40:
	add esp, 0x122c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z20DebugDrawWorldSoundsi_10:
	mov dword [ebp-0x1c], 0xffffffff
	mov dword [ebp-0x20], 0xc0000000
	mov dword [esp+0x8], 0x1200
	mov dword [esp+0x4], 0x0
	lea eax, [ebp-0x1220]
	mov [esp], eax
	call memset
	mov eax, [g_snd+0x7ef0]
	add eax, 0x8
	cmp eax, 0x8
	jg _Z20DebugDrawWorldSoundsi_20
_Z20DebugDrawWorldSoundsi_90:
	mov eax, [g_snd+0x7ef4]
	add eax, 0x28
	cmp eax, 0x28
	jg _Z20DebugDrawWorldSoundsi_30
_Z20DebugDrawWorldSoundsi_60:
	mov eax, [ebp-0x1c]
	cmp eax, 0xffffffff
	jz _Z20DebugDrawWorldSoundsi_40
	movss xmm0, dword [ebp-0x20]
	ucomiss xmm0, [_float_0_93000001]
	jb _Z20DebugDrawWorldSoundsi_40
	mov dword [esp+0x4], 0x0
	mov dword [esp], 0x0
	lea ecx, [ebp-0x1220]
	mov edx, 0x3
	call _Z21DebugDrawWorldSound3DiiPiS_Pf
	add esp, 0x122c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z20DebugDrawWorldSoundsi_30:
	mov ebx, 0x28
	mov esi, g_snd
	jmp _Z20DebugDrawWorldSoundsi_50
_Z20DebugDrawWorldSoundsi_70:
	add ebx, 0x1
	add esi, 0x8c
	mov eax, [g_snd+0x7ef4]
	add eax, 0x28
	cmp ebx, eax
	jge _Z20DebugDrawWorldSoundsi_60
_Z20DebugDrawWorldSoundsi_50:
	mov [esp], ebx
	call _Z23SND_IsStreamChannelFreei
	test al, al
	jnz _Z20DebugDrawWorldSoundsi_70
	mov eax, [esi+0x7828]
	mov eax, [eax+0x30]
	and eax, 0x3f00
	sar eax, 0x8
	lea eax, [eax+eax*4]
	shl eax, 0x4
	cmp byte [eax+g_snd+0x4e30], 0x0
	jz _Z20DebugDrawWorldSoundsi_70
	lea eax, [ebp-0x20]
	mov [esp+0x4], eax
	lea eax, [ebp-0x1c]
	mov [esp], eax
	lea ecx, [ebp-0x1220]
	mov edx, edi
	mov eax, ebx
	call _Z21DebugDrawWorldSound3DiiPiS_Pf
	jmp _Z20DebugDrawWorldSoundsi_70
_Z20DebugDrawWorldSoundsi_20:
	mov ebx, 0x8
	lea esi, [ebp-0x1c]
	jmp _Z20DebugDrawWorldSoundsi_80
_Z20DebugDrawWorldSoundsi_100:
	add ebx, 0x1
	mov eax, [g_snd+0x7ef0]
	add eax, 0x8
	cmp ebx, eax
	jge _Z20DebugDrawWorldSoundsi_90
_Z20DebugDrawWorldSoundsi_80:
	mov [esp], ebx
	call _Z19SND_Is3DChannelFreei
	test al, al
	jnz _Z20DebugDrawWorldSoundsi_100
	lea eax, [ebp-0x20]
	mov [esp+0x4], eax
	mov [esp], esi
	lea ecx, [ebp-0x1220]
	mov edx, edi
	mov eax, ebx
	call _Z21DebugDrawWorldSound3DiiPiS_Pf
	jmp _Z20DebugDrawWorldSoundsi_100
	nop


;SND_FindReplaceableChannel(SndStartAliasInfo*, int, int, int)
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x6c
	mov [ebp-0x50], eax
	mov esi, edx
	mov [ebp-0x54], ecx
	lea eax, [edx+edx*4]
	shl eax, 0x4
	movzx edx, byte [eax+g_snd+0x4e30]
	mov [ebp-0x39], dl
	mov eax, [eax+g_snd+0x4e2c]
	mov [ebp-0x44], eax
	test dl, dl
	jz _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_10
	mov ebx, [ebp-0x50]
	add ebx, 0x10
	xor edx, edx
	mov ecx, g_snd
	movss xmm3, dword [_float_3402823466385288598117041]
	mov eax, g_snd+0x4d50
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_30:
	cmp byte [ecx+0x4d90], 0x0
	jnz _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_20
	movaps xmm2, xmm3
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_60:
	movss [ebp+edx*4-0x20], xmm2
	add edx, 0x1
	add eax, 0x38
	add ecx, 0x38
	cmp edx, 0x2
	jnz _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_30
	mov eax, [g_snd+0x4dd4]
	cmp byte [eax+0x34], 0x0
	jnz _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_40
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_210:
	movss xmm0, dword [ebp-0x20]
	xor eax, eax
	ucomiss xmm0, [ebp-0x1c]
	seta al
	lea edx, [eax*8]
	shl eax, 0x6
	sub eax, edx
	add eax, g_snd+0x4d50
	lea edx, [eax+0xc]
	movss xmm3, dword [eax+0xc]
	subss xmm3, [ebx]
	movss xmm0, dword [edx+0x4]
	subss xmm0, [ebx+0x4]
	movss xmm1, dword [edx+0x8]
	subss xmm1, [ebx+0x8]
	mulss xmm3, xmm3
	mulss xmm0, xmm0
	addss xmm3, xmm0
	mulss xmm1, xmm1
	addss xmm3, xmm1
	mov edx, [ebp-0x50]
	mov eax, [edx]
	mov eax, [eax+0x4]
	mov [ebp-0x4c], eax
	mov eax, [ebp-0x54]
	add eax, [ebp+0x8]
	mov [ebp-0x48], eax
	cmp [ebp-0x54], eax
	jl _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_50
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_70:
	mov edi, 0xffffffff
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_120:
	mov eax, edi
	add esp, 0x6c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_20:
	movss xmm2, dword [eax+0xc]
	subss xmm2, [ebx]
	movss xmm0, dword [eax+0x10]
	subss xmm0, [ebx+0x4]
	movss xmm1, dword [eax+0x14]
	subss xmm1, [ebx+0x8]
	mulss xmm2, xmm2
	mulss xmm0, xmm0
	addss xmm2, xmm0
	mulss xmm1, xmm1
	addss xmm2, xmm1
	jmp _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_60
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_10:
	mov eax, [ebp-0x50]
	movss xmm3, dword [eax+0x1c]
	xorps xmm3, [_data16_80000000]
	mov edx, eax
	mov eax, [edx]
	mov eax, [eax+0x4]
	mov [ebp-0x4c], eax
	mov eax, [ebp-0x54]
	add eax, [ebp+0x8]
	mov [ebp-0x48], eax
	cmp [ebp-0x54], eax
	jge _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_70
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_50:
	mov edi, [ebp-0x54]
	mov byte [ebp-0x3a], 0x0
	mov dword [ebp-0x40], 0xffffffff
	lea esi, [esi+esi*4]
	mov [ebp-0x58], esi
	shl dword [ebp-0x58], 0x4
	lea edx, [edi+edi*4]
	lea eax, [edx*8]
	sub eax, edx
	lea ebx, [eax*4+g_snd+0x61f0]
	jmp _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_80
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_150:
	mov edx, [ebx+0x10]
	mov eax, [ebp-0x50]
	cmp edx, [eax+0xc]
	jz _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_90
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_140:
	add edi, 0x1
	add ebx, 0x8c
	cmp edi, [ebp-0x48]
	jz _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_100
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_80:
	mov edx, [ebx+0x58]
	mov eax, [ebx+0x1c]
	add eax, [ebx+0x24]
	sub eax, [g_snd+0x4dcc]
	test byte [edx+0x30], 0x1
	jnz _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_110
	test eax, eax
	jle _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_120
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_110:
	mov eax, [ebp-0x4c]
	test eax, eax
	jz _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_130
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_190:
	mov eax, [ebx+0x14]
	lea eax, [eax+eax*4]
	shl eax, 0x4
	mov esi, [eax+g_snd+0x4e2c]
	mov edx, [ebp-0x58]
	cmp esi, [edx+g_snd+0x4e2c]
	jg _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_140
	cmp byte [ebp-0x3a], 0x0
	jnz _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_150
	mov edx, [ebx+0x10]
	mov eax, [ebp-0x50]
	cmp edx, [eax+0xc]
	jz _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_160
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_90:
	cmp [ebp-0x44], esi
	jg _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_170
	jnz _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_140
	cmp byte [ebp-0x39], 0x0
	jnz _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_180
	movss xmm2, dword [ebx+0x50]
	xorps xmm2, [_data16_80000000]
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_290:
	ucomiss xmm2, xmm3
	jbe _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_140
	movaps xmm3, xmm2
	mov [ebp-0x40], edi
	jmp _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_140
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_130:
	mov eax, [edx+0x4]
	test eax, eax
	jz _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_190
	add edi, 0x1
	add ebx, 0x8c
	cmp edi, [ebp-0x48]
	jnz _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_80
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_100:
	mov edi, [ebp-0x40]
	mov eax, edi
	add esp, 0x6c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_170:
	mov eax, [ebp-0x50]
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_160:
	cmp edx, [eax+0xc]
	setz byte [ebp-0x3a]
	cmp byte [ebp-0x39], 0x0
	jnz _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_200
	movss xmm3, dword [ebx+0x50]
	xorps xmm3, [_data16_80000000]
	mov [ebp-0x44], esi
	mov [ebp-0x40], edi
	jmp _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_140
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_40:
	mov eax, [g_snd+0x4ddc]
	imul eax, eax
	cvtsi2ss xmm0, eax
	movss xmm2, dword [ebp-0x1c]
	cmpss xmm0, xmm2, 0x5
	andps xmm2, xmm0
	movss xmm1, dword [_float_3402823466385288598117041]
	andnps xmm0, xmm1
	orps xmm0, xmm2
	movss [ebp-0x1c], xmm0
	jmp _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_210
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_200:
	lea eax, [ebp-0x2c]
	mov [esp+0x8], eax
	lea eax, [ebx+0x78]
	mov [esp+0x4], eax
	mov [esp], edx
	call _Z24SND_GetCurrent3DPosition12SndEntHandlePKfPf
	movss xmm5, dword [ebp-0x2c]
	movss xmm4, dword [ebp-0x28]
	movss xmm6, dword [ebp-0x24]
	xor eax, eax
	mov ecx, g_snd
	mov edx, g_snd+0x4d50
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_230:
	cmp byte [ecx+0x4d90], 0x0
	jnz _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_220
	movss xmm2, dword [_float_3402823466385288598117041]
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_250:
	movss [ebp+eax*4-0x20], xmm2
	add eax, 0x1
	add edx, 0x38
	add ecx, 0x38
	cmp eax, 0x2
	jnz _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_230
	mov eax, [g_snd+0x4dd4]
	cmp byte [eax+0x34], 0x0
	jz _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_240
	mov eax, [g_snd+0x4ddc]
	imul eax, eax
	cvtsi2ss xmm0, eax
	movss xmm2, dword [ebp-0x1c]
	cmpss xmm0, xmm2, 0x5
	andps xmm2, xmm0
	movss xmm1, dword [_float_3402823466385288598117041]
	andnps xmm0, xmm1
	orps xmm0, xmm2
	movss [ebp-0x1c], xmm0
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_240:
	movss xmm0, dword [ebp-0x20]
	xor eax, eax
	ucomiss xmm0, [ebp-0x1c]
	seta al
	lea edx, [eax*8]
	shl eax, 0x6
	sub eax, edx
	add eax, g_snd+0x4d50
	lea edx, [eax+0xc]
	movss xmm3, dword [eax+0xc]
	subss xmm3, xmm5
	movss xmm0, dword [edx+0x4]
	subss xmm0, xmm4
	movss xmm1, dword [edx+0x8]
	subss xmm1, xmm6
	mulss xmm3, xmm3
	mulss xmm0, xmm0
	addss xmm3, xmm0
	mulss xmm1, xmm1
	addss xmm3, xmm1
	mov [ebp-0x44], esi
	mov [ebp-0x40], edi
	jmp _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_140
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_220:
	movss xmm2, dword [edx+0xc]
	subss xmm2, xmm5
	movss xmm0, dword [edx+0x10]
	subss xmm0, xmm4
	movss xmm1, dword [edx+0x14]
	subss xmm1, xmm6
	mulss xmm2, xmm2
	mulss xmm0, xmm0
	addss xmm2, xmm0
	mulss xmm1, xmm1
	addss xmm2, xmm1
	jmp _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_250
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_180:
	lea eax, [ebp-0x2c]
	mov [esp+0x8], eax
	lea eax, [ebx+0x78]
	mov [esp+0x4], eax
	mov [esp], edx
	movss [ebp-0x68], xmm3
	call _Z24SND_GetCurrent3DPosition12SndEntHandlePKfPf
	movss xmm6, dword [ebp-0x2c]
	movss xmm5, dword [ebp-0x28]
	movss xmm4, dword [ebp-0x24]
	xor eax, eax
	mov ecx, g_snd
	mov edx, g_snd+0x4d50
	movss xmm3, dword [ebp-0x68]
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_270:
	cmp byte [ecx+0x4d90], 0x0
	jnz _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_260
	movss xmm2, dword [_float_3402823466385288598117041]
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_300:
	movss [ebp+eax*4-0x20], xmm2
	add eax, 0x1
	add edx, 0x38
	add ecx, 0x38
	cmp eax, 0x2
	jnz _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_270
	mov eax, [g_snd+0x4dd4]
	cmp byte [eax+0x34], 0x0
	jz _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_280
	mov eax, [g_snd+0x4ddc]
	imul eax, eax
	cvtsi2ss xmm0, eax
	movss xmm2, dword [ebp-0x1c]
	cmpss xmm0, xmm2, 0x5
	andps xmm2, xmm0
	movss xmm1, dword [_float_3402823466385288598117041]
	andnps xmm0, xmm1
	orps xmm0, xmm2
	movss [ebp-0x1c], xmm0
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_280:
	movss xmm0, dword [ebp-0x20]
	xor eax, eax
	ucomiss xmm0, [ebp-0x1c]
	seta al
	lea edx, [eax*8]
	shl eax, 0x6
	sub eax, edx
	add eax, g_snd+0x4d50
	lea edx, [eax+0xc]
	movss xmm2, dword [eax+0xc]
	subss xmm2, xmm6
	movss xmm0, dword [edx+0x4]
	subss xmm0, xmm5
	movss xmm1, dword [edx+0x8]
	subss xmm1, xmm4
	mulss xmm2, xmm2
	mulss xmm0, xmm0
	addss xmm2, xmm0
	mulss xmm1, xmm1
	addss xmm2, xmm1
	jmp _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_290
_Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_260:
	movss xmm2, dword [edx+0xc]
	subss xmm2, xmm6
	movss xmm0, dword [edx+0x10]
	subss xmm0, xmm5
	movss xmm1, dword [edx+0x14]
	subss xmm1, xmm4
	mulss xmm2, xmm2
	mulss xmm0, xmm0
	addss xmm2, xmm0
	mulss xmm1, xmm1
	addss xmm2, xmm1
	jmp _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii_300
	nop


;SND_StartAliasStream(SndStartAliasInfo*, int*)
_Z20SND_StartAliasStreamP17SndStartAliasInfoPi:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov [ebp-0x1c], eax
	mov [ebp-0x20], edx
	mov eax, [eax]
	mov esi, [eax+0x30]
	and esi, 0x3f00
	sar esi, 0x8
	xor ecx, ecx
	mov edx, g_snd
	mov ebx, g_snd+0x71c
_Z20SND_StartAliasStreamP17SndStartAliasInfoPi_20:
	cmp dword [edx+0x77d0], 0x1
	jnz _Z20SND_StartAliasStreamP17SndStartAliasInfoPi_10
	lea eax, [ecx+0x1]
	cmp esi, [edx+0x77e4]
	cmovz ecx, eax
_Z20SND_StartAliasStreamP17SndStartAliasInfoPi_10:
	add edx, 0x8c
	cmp ebx, edx
	jnz _Z20SND_StartAliasStreamP17SndStartAliasInfoPi_20
	lea eax, [esi+esi*4]
	shl eax, 0x4
	add ecx, [eax+g_snd+0x4e38]
	cmp ecx, [eax+g_snd+0x4e34]
	jge _Z20SND_StartAliasStreamP17SndStartAliasInfoPi_30
	mov eax, [g_snd+0x7ef4]
	cmp eax, 0x5
	jg _Z20SND_StartAliasStreamP17SndStartAliasInfoPi_40
_Z20SND_StartAliasStreamP17SndStartAliasInfoPi_110:
	sub eax, 0x5
	mov [esp], eax
	mov ecx, 0x2d
	mov edx, esi
	mov eax, [ebp-0x1c]
	call _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii
	mov edi, eax
	test eax, eax
	js _Z20SND_StartAliasStreamP17SndStartAliasInfoPi_50
	lea eax, [eax+eax*4]
	lea edx, [eax*8]
	sub edx, eax
	shl edx, 0x2
	mov eax, [edx+g_snd+0x6248]
	mov ecx, [ebp-0x1c]
	cmp eax, [ecx]
	jz _Z20SND_StartAliasStreamP17SndStartAliasInfoPi_60
_Z20SND_StartAliasStreamP17SndStartAliasInfoPi_70:
	mov [esp], edi
	call _Z21SND_StopStreamChanneli
	jmp _Z20SND_StartAliasStreamP17SndStartAliasInfoPi_50
_Z20SND_StartAliasStreamP17SndStartAliasInfoPi_60:
	mov eax, ecx
	add eax, 0x10
	movss xmm0, dword [g_snd+0x4d5c]
	movaps xmm3, xmm0
	mov ecx, [ebp-0x1c]
	subss xmm3, [ecx+0x10]
	movss xmm1, dword [g_snd+0x4d60]
	movaps xmm4, xmm1
	subss xmm4, [eax+0x4]
	movss xmm2, dword [g_snd+0x4d64]
	movaps xmm5, xmm2
	subss xmm5, [eax+0x8]
	lea eax, [edx+g_snd+0x6250]
	lea edx, [eax+0xc]
	subss xmm0, [eax+0xc]
	subss xmm1, [edx+0x4]
	subss xmm2, [edx+0x8]
	mulss xmm3, xmm3
	mulss xmm4, xmm4
	addss xmm3, xmm4
	mulss xmm5, xmm5
	addss xmm3, xmm5
	mulss xmm0, xmm0
	mulss xmm1, xmm1
	addss xmm0, xmm1
	mulss xmm2, xmm2
	addss xmm0, xmm2
	ucomiss xmm0, xmm3
	ja _Z20SND_StartAliasStreamP17SndStartAliasInfoPi_70
_Z20SND_StartAliasStreamP17SndStartAliasInfoPi_30:
	mov edi, 0xffffffff
_Z20SND_StartAliasStreamP17SndStartAliasInfoPi_50:
	mov eax, [ebp-0x20]
	test eax, eax
	jz _Z20SND_StartAliasStreamP17SndStartAliasInfoPi_80
	mov eax, [ebp-0x20]
	mov [eax], edi
_Z20SND_StartAliasStreamP17SndStartAliasInfoPi_80:
	test edi, edi
	jns _Z20SND_StartAliasStreamP17SndStartAliasInfoPi_90
_Z20SND_StartAliasStreamP17SndStartAliasInfoPi_120:
	mov eax, 0xffffffff
_Z20SND_StartAliasStreamP17SndStartAliasInfoPi_160:
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z20SND_StartAliasStreamP17SndStartAliasInfoPi_40:
	mov ebx, 0x5
_Z20SND_StartAliasStreamP17SndStartAliasInfoPi_100:
	lea edi, [ebx+0x28]
	mov [esp], edi
	call _Z23SND_IsStreamChannelFreei
	test al, al
	jnz _Z20SND_StartAliasStreamP17SndStartAliasInfoPi_50
	add ebx, 0x1
	mov eax, [g_snd+0x7ef4]
	cmp eax, ebx
	jg _Z20SND_StartAliasStreamP17SndStartAliasInfoPi_100
	jmp _Z20SND_StartAliasStreamP17SndStartAliasInfoPi_110
_Z20SND_StartAliasStreamP17SndStartAliasInfoPi_90:
	mov eax, [snd_enableStream]
	cmp byte [eax+0xc], 0x0
	jz _Z20SND_StartAliasStreamP17SndStartAliasInfoPi_120
	mov ecx, [ebp-0x1c]
	mov edx, [ecx]
	mov eax, [edx+0x30]
	and eax, 0x3f00
	sar eax, 0x8
	lea eax, [eax+eax*4]
	shl eax, 0x4
	cmp byte [eax+g_snd+0x4e30], 0x0
	jz _Z20SND_StartAliasStreamP17SndStartAliasInfoPi_130
	mov eax, g_snd
	mov ecx, g_snd+0x70
_Z20SND_StartAliasStreamP17SndStartAliasInfoPi_150:
	cmp byte [eax+0x4d90], 0x0
	jnz _Z20SND_StartAliasStreamP17SndStartAliasInfoPi_140
	add eax, 0x38
	cmp ecx, eax
	jnz _Z20SND_StartAliasStreamP17SndStartAliasInfoPi_150
	mov eax, [edx]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_attempted_to_pla
	mov dword [esp], 0x2
	call _Z9Com_Error11errorParm_tPKcz
	mov eax, [ebp-0x1c]
_Z20SND_StartAliasStreamP17SndStartAliasInfoPi_170:
	mov [esp+0x4], edi
	mov [esp], eax
	call _Z29SND_StartAliasStreamOnChannelP17SndStartAliasInfoi
	jmp _Z20SND_StartAliasStreamP17SndStartAliasInfoPi_160
_Z20SND_StartAliasStreamP17SndStartAliasInfoPi_130:
	mov eax, ecx
	jmp _Z20SND_StartAliasStreamP17SndStartAliasInfoPi_170
_Z20SND_StartAliasStreamP17SndStartAliasInfoPi_140:
	mov eax, [ebp-0x1c]
	jmp _Z20SND_StartAliasStreamP17SndStartAliasInfoPi_170
	nop


;SND_PlaySoundAlias_Internal(snd_alias_t const*, snd_alias_t const*, float, float, SndEntHandle, float const*, int*, int, unsigned char, unsigned char, snd_alias_system_t)
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t:
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_140:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x17c
	mov [ebp-0xf0], eax
	mov [ebp-0xf4], edx
	movss [ebp-0xf8], xmm0
	movss [ebp-0xfc], xmm1
	mov [ebp-0x100], ecx
	movzx eax, byte [ebp+0x14]
	mov [ebp-0x101], al
	movzx edx, byte [ebp+0x18]
	mov [ebp-0x102], dl
	cmp byte [g_snd], 0x0
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_10
	mov eax, [ebp+0xc]
	test eax, eax
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_20
	mov ebx, [ebp+0xc]
	mov dword [ebx], 0xffffffff
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_20:
	mov eax, [ebp-0xf0]
	mov edx, [eax+0x30]
	and edx, 0x3f00
	sar edx, 0x8
	mov [ebp-0xec], edx
	lea eax, [edx+edx*4]
	shl eax, 0x4
	cmp byte [eax+g_snd+0x4e30], 0x0
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_30
	movss xmm3, dword [_float_1_00000000]
	subss xmm3, [ebp-0xf8]
	mov ebx, [ebp-0xf0]
	mulss xmm3, [ebx+0x2c]
	movss xmm0, dword [ebp-0xf8]
	mov eax, [ebp-0xf4]
	mulss xmm0, [eax+0x2c]
	addss xmm3, xmm0
	xor edx, edx
	mov ecx, g_snd
	movss xmm4, dword [_float_3402823466385288598117041]
	mov eax, g_snd+0x4d50
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_50:
	cmp byte [ecx+0x4d90], 0x0
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_40
	movaps xmm2, xmm4
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_480:
	movss [ebp+edx*4-0xd0], xmm2
	add edx, 0x1
	add eax, 0x38
	add ecx, 0x38
	cmp edx, 0x2
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_50
	mov eax, [g_snd+0x4dd4]
	cmp byte [eax+0x34], 0x0
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_60
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_490:
	movss xmm0, dword [ebp-0xd0]
	xor eax, eax
	ucomiss xmm0, [ebp-0xcc]
	seta al
	lea edx, [eax*8]
	shl eax, 0x6
	sub eax, edx
	add eax, g_snd+0x4d50
	lea edx, [eax+0xc]
	movss xmm0, dword [eax+0xc]
	mov eax, [ebp+0x8]
	subss xmm0, [eax]
	movss xmm1, dword [edx+0x4]
	subss xmm1, [eax+0x4]
	movss xmm2, dword [edx+0x8]
	subss xmm2, [eax+0x8]
	mulss xmm0, xmm0
	mulss xmm1, xmm1
	addss xmm0, xmm1
	mulss xmm2, xmm2
	addss xmm0, xmm2
	mulss xmm3, xmm3
	ucomiss xmm0, xmm3
	jbe _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_30
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_520:
	mov dword [ebp-0xe8], 0xffffffff
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_530:
	mov edx, [ebp-0xf0]
	mov eax, [edx+0x8]
	test eax, eax
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_70
	mov [esp], eax
	call _Z18Com_PickSoundAliasPKc
	mov edi, eax
	test eax, eax
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_80
	mov ebx, [ebp-0xf0]
	test byte [ebx+0x30], 0x1
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_90
	test byte [eax+0x30], 0x1
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_100
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_500:
	mov ebx, edi
	xor esi, esi
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_130:
	mov eax, [ebx+0x8]
	test eax, eax
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_110
	cmp esi, 0xa
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_110
	mov [esp+0x4], eax
	mov edx, [ebp-0xf0]
	mov eax, [edx]
	mov [esp], eax
	call _Z9I_stricmpPKcS0_
	test eax, eax
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_120
	add esi, 0x1
	mov eax, [ebx+0x8]
	mov [esp], eax
	call _Z18Com_PickSoundAliasPKc
	mov ebx, eax
	test eax, eax
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_130
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_110:
	mov ebx, [ebp+0x1c]
	mov [esp+0x14], ebx
	movzx eax, byte [ebp-0x102]
	mov [esp+0x10], eax
	movzx eax, byte [ebp-0x101]
	mov [esp+0xc], eax
	mov eax, [ebp+0x10]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x0
	mov edx, [ebp+0x8]
	mov [esp], edx
	mov ecx, [ebp-0x100]
	movss xmm1, dword [ebp-0xfc]
	movss xmm0, dword [ebp-0xf8]
	mov edx, edi
	mov eax, edi
	call _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_140
	mov eax, [ebp-0xe8]
	add esp, 0x17c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_30:
	mov edx, [g_snd+0x7ef0]
	lea eax, [edx+0x8]
	cmp eax, 0x8
	jle _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_150
	mov esi, 0x8
	mov ebx, g_snd
	mov edi, 0x460
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_160
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_170:
	add esi, 0x1
	add edi, 0x8c
	add ebx, 0x8c
	lea eax, [edx+0x8]
	cmp esi, eax
	jge _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_150
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_160:
	mov eax, [ebp-0x100]
	cmp [ebx+0x6660], eax
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_170
	mov [esp], esi
	call _Z19SND_Is3DChannelFreei
	test al, al
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_180
	mov eax, [ebx+0x66a8]
	test byte [eax+0x30], 0x1
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_180
	mov eax, [eax]
	mov edx, [ebp-0xf0]
	cmp eax, [edx]
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_190
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_180:
	mov edx, [g_snd+0x7ef0]
	add esi, 0x1
	add edi, 0x8c
	add ebx, 0x8c
	lea eax, [edx+0x8]
	cmp esi, eax
	jl _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_160
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_150:
	mov ebx, [g_snd+0x7eec]
	test ebx, ebx
	jle _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_200
	xor edi, edi
	mov ebx, g_snd
	xor esi, esi
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_210
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_220:
	add edi, 0x1
	add esi, 0x8c
	add ebx, 0x8c
	cmp [g_snd+0x7eec], edi
	jle _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_200
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_210:
	mov eax, [ebp-0x100]
	cmp [ebx+0x6200], eax
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_220
	mov [esp], edi
	call _Z19SND_Is2DChannelFreei
	test al, al
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_220
	mov eax, [ebx+0x6248]
	test byte [eax+0x30], 0x1
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_220
	mov eax, [eax]
	mov edx, [ebp-0xf0]
	cmp eax, [edx]
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_220
	mov eax, [ebx+0x624c]
	mov eax, [eax]
	mov edx, [ebp-0xf4]
	cmp eax, [edx]
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_220
	movss xmm3, dword [_float_1_00000000]
	subss xmm3, [ebp-0xf8]
	mov eax, [esi+g_snd+0x6248]
	movaps xmm1, xmm3
	mulss xmm1, [eax+0x18]
	mov edx, [esi+g_snd+0x624c]
	movss xmm0, dword [ebp-0xf8]
	mulss xmm0, [edx+0x18]
	addss xmm1, xmm0
	mulss xmm1, [ebp-0xfc]
	movaps xmm0, xmm1
	subss xmm0, [_float_1_00000000]
	pxor xmm4, xmm4
	movaps xmm2, xmm4
	cmpss xmm2, xmm0, 0x6
	movaps xmm0, xmm2
	movaps xmm2, xmm1
	andps xmm2, xmm0
	movss xmm5, dword [_float_1_00000000]
	andnps xmm0, xmm5
	orps xmm0, xmm2
	movaps xmm2, xmm4
	subss xmm2, xmm1
	movaps xmm5, xmm4
	cmpss xmm5, xmm2, 0x6
	andps xmm0, xmm5
	orps xmm0, xmm4
	movss [esi+g_snd+0x6240], xmm0
	mulss xmm3, [eax+0x20]
	movss xmm0, dword [ebp-0xf8]
	mulss xmm0, [edx+0x20]
	addss xmm3, xmm0
	movss [esi+g_snd+0x6244], xmm3
	cmp byte [esi+g_snd+0x6276], 0x0
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_230
	cvtsi2ss xmm0, dword [esi+g_snd+0x61f8]
	mulss xmm3, xmm0
	mulss xmm3, [g_snd+0x10]
	addss xmm3, [_float_0_50000000]
	movss [esp], xmm3
	call floorf
	fstp dword [ebp-0x110]
	cvttss2si eax, [ebp-0x110]
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_680:
	mov [esp+0x4], eax
	mov [esp], edi
	call _Z28SND_Set2DChannelPlaybackRateii
	mov eax, [g_snd+0x4dd0]
	mov [esi+g_snd+0x6210], eax
	movss xmm0, dword [ebp-0xf8]
	movss [esi+g_snd+0x6258], xmm0
	mov ecx, [ebp+0xc]
	test ecx, ecx
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_240
	mov eax, [ebp+0xc]
	mov [eax], edi
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_240:
	mov edx, [ebp-0xf0]
	mov eax, [edx+0x8]
	test eax, eax
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_250
	mov [esp], eax
	call _Z18Com_PickSoundAliasPKc
	mov ebx, eax
	test eax, eax
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_250
	test byte [eax+0x30], 0x1
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_250
	mov eax, [ebp+0x1c]
	mov [esp+0x14], eax
	movzx eax, byte [ebp-0x102]
	mov [esp+0x10], eax
	movzx eax, byte [ebp-0x101]
	mov [esp+0xc], eax
	mov edx, [ebp+0x10]
	mov [esp+0x8], edx
	mov dword [esp+0x4], 0x0
	mov eax, [ebp+0x8]
	mov [esp], eax
	mov ecx, [ebp-0x100]
	movss xmm1, dword [ebp-0xfc]
	movss xmm0, dword [ebp-0xf8]
	mov edx, ebx
	mov eax, ebx
	call _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_140
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_250:
	mov dword [ebp-0xe8], 0x0
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_70
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_200:
	mov edx, [g_snd+0x7ef4]
	lea eax, [edx+0x28]
	cmp eax, 0x28
	jle _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_260
	mov edi, 0x28
	mov ebx, g_snd
	mov esi, 0x15e0
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_270
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_280:
	add edi, 0x1
	add esi, 0x8c
	add ebx, 0x8c
	lea eax, [edx+0x28]
	cmp eax, edi
	jle _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_260
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_270:
	mov eax, [ebp-0x100]
	cmp [ebx+0x77e0], eax
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_280
	mov [esp], edi
	call _Z23SND_IsStreamChannelFreei
	test al, al
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_290
	mov eax, [ebx+0x7828]
	test byte [eax+0x30], 0x1
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_290
	mov eax, [eax]
	mov edx, [ebp-0xf0]
	cmp eax, [edx]
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_300
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_290:
	mov edx, [g_snd+0x7ef4]
	add edi, 0x1
	add esi, 0x8c
	add ebx, 0x8c
	lea eax, [edx+0x28]
	cmp eax, edi
	jg _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_270
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_260:
	mov edx, [ebp-0xec]
	lea eax, [edx+edx*4]
	shl eax, 0x4
	cmp byte [eax+g_snd+0x4e31], 0x0
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_310
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_450:
	mov edx, [ebp-0xf0]
	mov eax, [edx+0x10]
	cmp byte [eax], 0x2
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_320
	mov eax, [eax+0x4]
	mov eax, [eax]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_nullwav
	call _Z9I_stricmpPKcS0_
	test eax, eax
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_330
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_10:
	mov dword [ebp-0xe8], 0xffffffff
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_70:
	mov eax, [ebp-0xe8]
	add esp, 0x17c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_310:
	mov edx, [g_snd+0x7ef0]
	lea eax, [edx+0x8]
	cmp eax, 0x8
	jle _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_340
	mov esi, 0x8
	mov ebx, g_snd
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_350
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_360:
	add esi, 0x1
	add ebx, 0x8c
	lea eax, [edx+0x8]
	cmp esi, eax
	jge _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_340
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_350:
	mov eax, [ebp-0x100]
	cmp [ebx+0x6660], eax
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_360
	mov eax, [ebp-0xec]
	cmp eax, [ebx+0x6664]
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_360
	mov [esp], esi
	call _Z19SND_Is3DChannelFreei
	test al, al
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_370
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_650:
	mov edx, [g_snd+0x7ef0]
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_360
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_320:
	add eax, 0x4
	mov [esp], eax
	call _Z25StreamFileNameIsNullSoundPK14StreamFileName
	test eax, eax
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_10
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_330:
	movss xmm0, dword [_float_1_00000000]
	subss xmm0, [ebp-0xf8]
	movaps xmm2, xmm0
	mov ebx, [ebp-0xf0]
	mulss xmm2, [ebx+0x18]
	movss xmm1, dword [ebp-0xf8]
	mov eax, [ebp-0xf4]
	mulss xmm1, [eax+0x18]
	addss xmm2, xmm1
	movaps xmm1, xmm0
	mulss xmm1, [ebx+0x20]
	movss [ebp-0xe0], xmm1
	movss xmm1, dword [ebp-0xf8]
	mulss xmm1, [eax+0x20]
	addss xmm1, [ebp-0xe0]
	movss [ebp-0xe0], xmm1
	movaps xmm3, xmm0
	mulss xmm3, [ebx+0x24]
	movss xmm1, dword [ebp-0xf8]
	mulss xmm1, [eax+0x24]
	addss xmm1, xmm3
	movss [ebp-0xdc], xmm1
	mulss xmm0, [ebx+0x1c]
	movss xmm1, dword [ebp-0xf8]
	mulss xmm1, [eax+0x1c]
	addss xmm0, xmm1
	subss xmm0, xmm2
	movss [ebp-0x138], xmm0
	movss [ebp-0x148], xmm2
	call _Z7randomfv
	fstp dword [ebp-0x15c]
	movss xmm1, dword [ebp-0x15c]
	movss xmm0, dword [ebp-0x138]
	mulss xmm1, xmm0
	movss xmm2, dword [ebp-0x148]
	addss xmm1, xmm2
	mulss xmm1, [ebp-0xfc]
	movaps xmm0, xmm1
	subss xmm0, [_float_1_00000000]
	pxor xmm4, xmm4
	movaps xmm5, xmm4
	cmpss xmm5, xmm0, 0x6
	movaps xmm0, xmm5
	movaps xmm2, xmm1
	andps xmm2, xmm5
	movss xmm3, dword [_float_1_00000000]
	andnps xmm0, xmm3
	orps xmm0, xmm2
	movaps xmm5, xmm4
	subss xmm5, xmm1
	movaps xmm2, xmm4
	cmpss xmm2, xmm5, 0x6
	andps xmm0, xmm2
	orps xmm0, xmm4
	movss [ebp-0x34], xmm0
	movss [ebp-0x158], xmm4
	call _Z7randomfv
	fstp dword [ebp-0xe4]
	movss xmm3, dword [ebp-0xdc]
	subss xmm3, [ebp-0xe0]
	movss [ebp-0xdc], xmm3
	mulss xmm3, [ebp-0xe4]
	movss xmm5, dword [ebp-0xe0]
	addss xmm5, xmm3
	movss [ebp-0x30], xmm5
	mov [ebp-0x50], ebx
	mov eax, [ebp-0xf4]
	mov [ebp-0x4c], eax
	movss xmm0, dword [ebp-0xf8]
	movss [ebp-0x48], xmm0
	mov eax, [ebp-0x100]
	mov [ebp-0x44], eax
	mov edx, [ebp+0x8]
	mov eax, [edx]
	mov [ebp-0x40], eax
	mov eax, [edx+0x4]
	mov [ebp-0x3c], eax
	mov eax, [edx+0x8]
	mov [ebp-0x38], eax
	mov ebx, [ebp+0x10]
	mov [ebp-0x2c], ebx
	movss xmm4, dword [ebp-0x158]
	movss [ebp-0x28], xmm4
	mov edx, [ebp-0xf0]
	mov eax, [edx+0x44]
	mov [ebp-0x24], eax
	cmp byte [ebp-0x101], 0x0
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_380
	mov eax, [edx+0x30]
	test al, 0x2
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_390
	xor edx, edx
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_400
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_340:
	mov edx, [g_snd+0x7ef4]
	lea eax, [edx+0x28]
	cmp eax, 0x28
	jle _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_410
	mov esi, 0x28
	mov ebx, g_snd
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_420
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_430:
	add esi, 0x1
	add ebx, 0x8c
	lea eax, [edx+0x28]
	cmp esi, eax
	jge _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_410
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_420:
	mov eax, [ebp-0x100]
	cmp [ebx+0x77e0], eax
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_430
	mov eax, [ebp-0xec]
	cmp eax, [ebx+0x77e4]
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_430
	mov [esp], esi
	call _Z23SND_IsStreamChannelFreei
	test al, al
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_440
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_640:
	mov edx, [g_snd+0x7ef4]
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_430
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_410:
	mov eax, [g_snd+0x7eec]
	test eax, eax
	jle _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_450
	xor esi, esi
	mov ebx, g_snd
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_460
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_470:
	add esi, 0x1
	add ebx, 0x8c
	cmp esi, [g_snd+0x7eec]
	jge _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_450
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_460:
	mov edx, [ebp-0x100]
	cmp [ebx+0x6200], edx
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_470
	mov eax, [ebp-0xec]
	cmp eax, [ebx+0x6204]
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_470
	mov [esp], esi
	call _Z19SND_Is2DChannelFreei
	test al, al
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_470
	mov [esp], esi
	call _Z17SND_Stop2DChanneli
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_470
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_40:
	movss xmm2, dword [eax+0xc]
	mov ebx, [ebp+0x8]
	subss xmm2, [ebx]
	movss xmm0, dword [eax+0x10]
	subss xmm0, [ebx+0x4]
	movss xmm1, dword [eax+0x14]
	subss xmm1, [ebx+0x8]
	mulss xmm2, xmm2
	mulss xmm0, xmm0
	addss xmm2, xmm0
	mulss xmm1, xmm1
	addss xmm2, xmm1
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_480
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_60:
	mov eax, [g_snd+0x4ddc]
	imul eax, eax
	cvtsi2ss xmm0, eax
	movss xmm2, dword [ebp-0xcc]
	cmpss xmm0, xmm2, 0x5
	andps xmm2, xmm0
	movss xmm1, dword [_float_3402823466385288598117041]
	andnps xmm0, xmm1
	orps xmm0, xmm2
	movss [ebp-0xcc], xmm0
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_490
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_90:
	test byte [eax+0x30], 0x1
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_500
	mov eax, [ebx+0x8]
	mov [esp+0xc], eax
	mov eax, [ebx]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_error_a_nonloopi
	mov dword [esp], 0x9
	call _Z14Com_PrintErroriPKcz
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_500
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_380:
	mov eax, [edx+0x30]
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_390:
	mov edx, 0x1
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_400:
	mov [ebp-0x20], dl
	movzx edx, byte [ebp-0x102]
	mov [ebp-0x1f], dl
	mov ebx, [ebp+0x1c]
	mov [ebp-0x1c], ebx
	and eax, 0xc0
	sar eax, 0x6
	cmp eax, 0x1
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_510
	cmp eax, 0x2
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_520
	lea eax, [ebp-0x50]
	mov edx, [ebp+0xc]
	call _Z20SND_StartAliasStreamP17SndStartAliasInfoPi
	mov [ebp-0xe8], eax
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_530
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_100:
	mov edx, [ebp-0xf0]
	mov eax, [edx+0x8]
	mov [esp], eax
	call _Z32Com_AliasNameRefersToSingleAliasPKc
	test al, al
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_500
	mov ebx, [ebp-0xf0]
	mov eax, [ebx+0x8]
	mov [esp+0xc], eax
	mov eax, [ebx]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_error_a_looping_
	mov dword [esp], 0x9
	call _Z14Com_PrintErroriPKcz
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_500
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_510:
	mov edx, [ebp-0x50]
	mov eax, [edx+0x10]
	cmp byte [eax+0x1], 0x0
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_540
	mov eax, [edx+0x30]
	and eax, 0x3f00
	sar eax, 0x8
	lea eax, [eax+eax*4]
	shl eax, 0x4
	cmp byte [eax+g_snd+0x4e30], 0x0
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_550
	mov eax, [snd_enable3D]
	cmp byte [eax+0xc], 0x0
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_560
	mov eax, g_snd
	mov ecx, g_snd+0x70
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_580:
	cmp byte [eax+0x4d90], 0x0
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_570
	add eax, 0x38
	cmp ecx, eax
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_580
	mov eax, [edx]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_attempted_to_pla
	mov dword [esp], 0x2
	call _Z9Com_Error11errorParm_tPKcz
	mov dword [ebp-0xe8], 0x0
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_530
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_550:
	mov eax, [snd_enable2D]
	cmp byte [eax+0xc], 0x0
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_590
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_560:
	mov dword [ebp-0xe8], 0x0
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_530
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_190:
	mov eax, [ebx+0x66ac]
	mov eax, [eax]
	mov edx, [ebp-0xf4]
	cmp eax, [edx]
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_180
	movss xmm3, dword [_float_1_00000000]
	subss xmm3, [ebp-0xf8]
	mov eax, [edi+g_snd+0x6248]
	movaps xmm1, xmm3
	mulss xmm1, [eax+0x18]
	mov edx, [edi+g_snd+0x624c]
	movss xmm0, dword [ebp-0xf8]
	mulss xmm0, [edx+0x18]
	addss xmm1, xmm0
	mulss xmm1, [ebp-0xfc]
	movaps xmm0, xmm1
	subss xmm0, [_float_1_00000000]
	pxor xmm4, xmm4
	movaps xmm2, xmm4
	cmpss xmm2, xmm0, 0x6
	movaps xmm0, xmm2
	movaps xmm2, xmm1
	andps xmm2, xmm0
	movss xmm5, dword [_float_1_00000000]
	andnps xmm0, xmm5
	orps xmm0, xmm2
	movaps xmm2, xmm4
	subss xmm2, xmm1
	movaps xmm5, xmm4
	cmpss xmm5, xmm2, 0x6
	andps xmm0, xmm5
	orps xmm0, xmm4
	movss [edi+g_snd+0x6240], xmm0
	mulss xmm3, [eax+0x20]
	movss xmm0, dword [ebp-0xf8]
	mulss xmm0, [edx+0x20]
	addss xmm3, xmm0
	movss [edi+g_snd+0x6244], xmm3
	cmp byte [edi+g_snd+0x6276], 0x0
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_600
	cvtsi2ss xmm0, dword [edi+g_snd+0x61f8]
	mulss xmm3, xmm0
	mulss xmm3, [g_snd+0x10]
	addss xmm3, [_float_0_50000000]
	movss [esp], xmm3
	call floorf
	fstp dword [ebp-0x108]
	cvttss2si eax, [ebp-0x108]
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_660:
	mov [esp+0x4], eax
	mov [esp], esi
	call _Z28SND_Set3DChannelPlaybackRateii
	mov eax, [g_snd+0x4dd0]
	mov [edi+g_snd+0x6210], eax
	movss xmm0, dword [ebp-0xf8]
	movss [edi+g_snd+0x6258], xmm0
	mov edi, [ebp+0xc]
	test edi, edi
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_610
	mov eax, [ebp+0xc]
	mov [eax], esi
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_610:
	mov edx, [ebp+0x8]
	mov [esp+0x4], edx
	mov [esp], esi
	call _Z17SND_Set3DPositioniPKf
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_240
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_300:
	mov eax, [ebx+0x782c]
	mov eax, [eax]
	mov edx, [ebp-0xf4]
	cmp eax, [edx]
	jnz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_290
	movss xmm3, dword [_float_1_00000000]
	subss xmm3, [ebp-0xf8]
	mov eax, [esi+g_snd+0x6248]
	movaps xmm1, xmm3
	mulss xmm1, [eax+0x18]
	mov edx, [esi+g_snd+0x624c]
	movss xmm0, dword [ebp-0xf8]
	mulss xmm0, [edx+0x18]
	addss xmm1, xmm0
	mulss xmm1, [ebp-0xfc]
	movaps xmm0, xmm1
	subss xmm0, [_float_1_00000000]
	pxor xmm4, xmm4
	movaps xmm2, xmm4
	cmpss xmm2, xmm0, 0x6
	movaps xmm0, xmm2
	movaps xmm2, xmm1
	andps xmm2, xmm0
	movss xmm5, dword [_float_1_00000000]
	andnps xmm0, xmm5
	orps xmm0, xmm2
	movaps xmm2, xmm4
	subss xmm2, xmm1
	movaps xmm5, xmm4
	cmpss xmm5, xmm2, 0x6
	andps xmm0, xmm5
	orps xmm0, xmm4
	movss [esi+g_snd+0x6240], xmm0
	mulss xmm3, [eax+0x20]
	movss xmm0, dword [ebp-0xf8]
	mulss xmm0, [edx+0x20]
	addss xmm3, xmm0
	movss [esi+g_snd+0x6244], xmm3
	cmp byte [esi+g_snd+0x6276], 0x0
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_620
	cvtsi2ss xmm0, dword [esi+g_snd+0x61f8]
	mulss xmm3, xmm0
	mulss xmm3, [g_snd+0x10]
	addss xmm3, [_float_0_50000000]
	movss [esp], xmm3
	call floorf
	fstp dword [ebp-0x118]
	cvttss2si eax, [ebp-0x118]
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_670:
	mov [esp+0x4], eax
	mov [esp], edi
	call _Z32SND_SetStreamChannelPlaybackRateii
	mov eax, [g_snd+0x4dd0]
	mov [esi+g_snd+0x6210], eax
	movss xmm0, dword [ebp-0xf8]
	movss [esi+g_snd+0x6258], xmm0
	mov edx, [ebp+0xc]
	test edx, edx
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_630
	mov eax, [ebp+0xc]
	mov [eax], edi
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_630:
	lea edx, [esi+g_snd+0x6250]
	lea ecx, [edx+0xc]
	mov ebx, [ebp+0x8]
	mov eax, [ebx]
	mov [edx+0xc], eax
	mov eax, [ebx+0x4]
	mov [ecx+0x4], eax
	mov eax, [ebx+0x8]
	mov [ecx+0x8], eax
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_240
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_80:
	mov ebx, [ebp-0xf0]
	mov eax, [ebx+0x8]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_error_unable_to_
	mov dword [esp], 0x9
	call _Z14Com_PrintErroriPKcz
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_70
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_120:
	mov edx, [ebp-0xf0]
	mov eax, [edx+0x8]
	mov [esp+0xc], eax
	mov eax, [edx]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_error_infinite_r
	mov dword [esp], 0x9
	call _Z14Com_PrintErroriPKcz
	mov dword [ebp-0xe8], 0xffffffff
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_70
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_540:
	mov dword [esp+0x8], 0x80
	lea ebx, [ebp-0xd0]
	mov [esp+0x4], ebx
	mov [esp], edx
	call _Z20Com_GetSoundFileNamePK11snd_alias_tPci
	mov eax, [ebp-0x50]
	mov eax, [eax]
	mov [esp+0xc], eax
	mov [esp+0x8], ebx
	mov dword [esp+0x4], _cstring_tried_to_play_so
	mov dword [esp], 0x9
	call _Z11Com_DPrintfiPKcz
	mov eax, [ebp+0xc]
	test eax, eax
	jz _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_560
	mov eax, [ebp+0xc]
	mov dword [eax], 0xffffffff
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_560
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_440:
	mov [esp], esi
	call _Z21SND_StopStreamChanneli
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_640
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_370:
	mov [esp], esi
	call _Z17SND_Stop3DChanneli
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_650
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_590:
	mov ebx, [ebp+0xc]
	mov [esp+0x4], ebx
	lea eax, [ebp-0x50]
	mov [esp], eax
	call _Z22SND_StartAlias2DSampleP17SndStartAliasInfoPi
	mov [ebp-0xe8], eax
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_530
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_570:
	mov edx, [ebp+0xc]
	mov [esp+0x4], edx
	lea eax, [ebp-0x50]
	mov [esp], eax
	call _Z22SND_StartAlias3DSampleP17SndStartAliasInfoPi
	mov [ebp-0xe8], eax
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_530
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_600:
	cvtsi2ss xmm0, dword [edi+g_snd+0x61f8]
	mulss xmm3, xmm0
	addss xmm3, [_float_0_50000000]
	movss [esp], xmm3
	call floorf
	fstp dword [ebp-0x10c]
	cvttss2si eax, [ebp-0x10c]
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_660
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_620:
	cvtsi2ss xmm0, dword [esi+g_snd+0x61f8]
	mulss xmm3, xmm0
	addss xmm3, [_float_0_50000000]
	movss [esp], xmm3
	call floorf
	fstp dword [ebp-0x11c]
	cvttss2si eax, [ebp-0x11c]
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_670
_Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_230:
	cvtsi2ss xmm0, dword [esi+g_snd+0x61f8]
	mulss xmm3, xmm0
	addss xmm3, [_float_0_50000000]
	movss [esp], xmm3
	call floorf
	fstp dword [ebp-0x114]
	cvttss2si eax, [ebp-0x114]
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t_680
	nop


;SND_SaveChanInfo(snd_channel_info_t const*, MemoryFile*)
_Z16SND_SaveChanInfoPK18snd_channel_info_tP10MemoryFile:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x3c
	mov ebx, eax
	mov edi, edx
	movsx eax, word [eax+0x10]
	mov [ebp-0x1c], ax
	lea eax, [ebp-0x1c]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x2
	mov [esp], edx
	call _Z17MemFile_WriteDataP10MemoryFileiPKv
	movzx eax, byte [ebx+0x14]
	mov [ebp-0x1c], al
	lea edx, [ebp-0x1c]
	mov [esp+0x8], edx
	mov dword [esp+0x4], 0x1
	mov [esp], edi
	call _Z17MemFile_WriteDataP10MemoryFileiPKv
	movzx eax, byte [ebx+0x85]
	mov [ebp-0x1c], al
	lea eax, [ebp-0x1c]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x1
	mov [esp], edi
	call _Z17MemFile_WriteDataP10MemoryFileiPKv
	movzx eax, byte [ebx+0x86]
	mov [ebp-0x1c], al
	lea edx, [ebp-0x1c]
	mov [esp+0x8], edx
	mov dword [esp+0x4], 0x1
	mov [esp], edi
	call _Z17MemFile_WriteDataP10MemoryFileiPKv
	mov eax, [ebx+0x18]
	mov [ebp-0x1c], eax
	lea eax, [ebp-0x1c]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x4
	mov [esp], edi
	call _Z17MemFile_WriteDataP10MemoryFileiPKv
	mov eax, [ebx+0x1c]
	mov [ebp-0x1c], eax
	lea edx, [ebp-0x1c]
	mov [esp+0x8], edx
	mov dword [esp+0x4], 0x4
	mov [esp], edi
	call _Z17MemFile_WriteDataP10MemoryFileiPKv
	mov eax, [ebx+0x50]
	mov [ebp-0x1c], eax
	lea eax, [ebp-0x1c]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x4
	mov [esp], edi
	call _Z17MemFile_WriteDataP10MemoryFileiPKv
	mov eax, [ebx+0x68]
	mov [ebp-0x1c], eax
	lea edx, [ebp-0x1c]
	mov [esp+0x8], edx
	mov dword [esp+0x4], 0x4
	mov [esp], edi
	call _Z17MemFile_WriteDataP10MemoryFileiPKv
	lea eax, [ebx+0x78]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0xc
	mov [esp], edi
	call _Z17MemFile_WriteDataP10MemoryFileiPKv
	add ebx, 0x2c
	mov [ebp-0x2c], ebx
	mov eax, [ebx+0x20]
	mov [ebp-0x1c], eax
	lea eax, [ebp-0x1c]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x4
	mov [esp], edi
	call _Z17MemFile_WriteDataP10MemoryFileiPKv
	mov edx, [ebp-0x2c]
	cmp dword [edx+0x20], 0x0
	jz _Z16SND_SaveChanInfoPK18snd_channel_info_tP10MemoryFile_10
	jg _Z16SND_SaveChanInfoPK18snd_channel_info_tP10MemoryFile_20
_Z16SND_SaveChanInfoPK18snd_channel_info_tP10MemoryFile_10:
	add esp, 0x3c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z16SND_SaveChanInfoPK18snd_channel_info_tP10MemoryFile_20:
	mov esi, [ebp-0x2c]
	mov dword [ebp-0x30], 0x0
	jmp _Z16SND_SaveChanInfoPK18snd_channel_info_tP10MemoryFile_30
_Z16SND_SaveChanInfoPK18snd_channel_info_tP10MemoryFile_50:
	sub eax, 0x1
	jz _Z16SND_SaveChanInfoPK18snd_channel_info_tP10MemoryFile_40
_Z16SND_SaveChanInfoPK18snd_channel_info_tP10MemoryFile_60:
	add dword [ebp-0x30], 0x1
	add esi, 0x4
	mov eax, [ebp-0x30]
	mov edx, [ebp-0x2c]
	cmp eax, [edx+0x20]
	jge _Z16SND_SaveChanInfoPK18snd_channel_info_tP10MemoryFile_10
_Z16SND_SaveChanInfoPK18snd_channel_info_tP10MemoryFile_30:
	movzx eax, byte [esi]
	mov [ebp-0x1c], al
	lea eax, [ebp-0x1c]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x1
	mov [esp], edi
	call _Z17MemFile_WriteDataP10MemoryFileiPKv
	mov eax, [esi]
	test eax, eax
	jnz _Z16SND_SaveChanInfoPK18snd_channel_info_tP10MemoryFile_50
	mov eax, [esi+0x10]
	mov [ebp-0x1c], eax
	lea edx, [ebp-0x1c]
	mov [esp+0x8], edx
	mov dword [esp+0x4], 0x4
	mov [esp], edi
	call _Z17MemFile_WriteDataP10MemoryFileiPKv
	jmp _Z16SND_SaveChanInfoPK18snd_channel_info_tP10MemoryFile_60
_Z16SND_SaveChanInfoPK18snd_channel_info_tP10MemoryFile_40:
	mov ebx, [esi+0x10]
	mov eax, [ebx]
	mov [esp+0x4], eax
	mov [esp], edi
	call _Z20MemFile_WriteCStringP10MemoryFilePKc
	mov [esp], ebx
	call _Z18SND_GetAliasOffsetPK11snd_alias_t
	mov [ebp-0x1c], ax
	lea eax, [ebp-0x1c]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x2
	mov [esp], edi
	call _Z17MemFile_WriteDataP10MemoryFileiPKv
	jmp _Z16SND_SaveChanInfoPK18snd_channel_info_tP10MemoryFile_60
	nop


;SND_RestoreChanInfo(snd_channel_info_t*, MemoryFile*)
_Z19SND_RestoreChanInfoP18snd_channel_info_tP10MemoryFile:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x3c
	mov ebx, eax
	mov edi, edx
	mov dword [esp+0x8], 0x8c
	mov dword [esp+0x4], 0x0
	mov [esp], eax
	call memset
	lea eax, [ebp-0x1c]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x2
	mov [esp], edi
	call _Z16MemFile_ReadDataP10MemoryFileiPv
	movzx eax, word [ebp-0x1c]
	mov [ebx+0x10], eax
	lea edx, [ebp-0x1c]
	mov [esp+0x8], edx
	mov dword [esp+0x4], 0x1
	mov [esp], edi
	call _Z16MemFile_ReadDataP10MemoryFileiPv
	movzx eax, byte [ebp-0x1c]
	mov [ebx+0x14], eax
	lea eax, [ebp-0x1c]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x1
	mov [esp], edi
	call _Z16MemFile_ReadDataP10MemoryFileiPv
	cmp byte [ebp-0x1c], 0x0
	setnz byte [ebx+0x85]
	lea edx, [ebp-0x1c]
	mov [esp+0x8], edx
	mov dword [esp+0x4], 0x1
	mov [esp], edi
	call _Z16MemFile_ReadDataP10MemoryFileiPv
	cmp byte [ebp-0x1c], 0x0
	setnz byte [ebx+0x86]
	lea eax, [ebp-0x1c]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x4
	mov [esp], edi
	call _Z16MemFile_ReadDataP10MemoryFileiPv
	mov eax, [ebp-0x1c]
	mov [ebx+0x18], eax
	lea edx, [ebp-0x1c]
	mov [esp+0x8], edx
	mov dword [esp+0x4], 0x4
	mov [esp], edi
	call _Z16MemFile_ReadDataP10MemoryFileiPv
	mov eax, [ebp-0x1c]
	mov [ebx+0x1c], eax
	lea eax, [ebp-0x1c]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x4
	mov [esp], edi
	call _Z16MemFile_ReadDataP10MemoryFileiPv
	mov eax, [ebp-0x1c]
	mov [ebx+0x50], eax
	lea edx, [ebp-0x1c]
	mov [esp+0x8], edx
	mov dword [esp+0x4], 0x4
	mov [esp], edi
	call _Z16MemFile_ReadDataP10MemoryFileiPv
	mov eax, [ebp-0x1c]
	mov [ebx+0x68], eax
	lea esi, [ebx+0x78]
	lea eax, [ebp-0x1c]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x4
	mov [esp], edi
	call _Z16MemFile_ReadDataP10MemoryFileiPv
	mov eax, [ebp-0x1c]
	mov [ebx+0x78], eax
	lea edx, [ebp-0x1c]
	mov [esp+0x8], edx
	mov dword [esp+0x4], 0x4
	mov [esp], edi
	call _Z16MemFile_ReadDataP10MemoryFileiPv
	mov eax, [ebp-0x1c]
	mov [esi+0x4], eax
	lea eax, [ebp-0x1c]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x4
	mov [esp], edi
	call _Z16MemFile_ReadDataP10MemoryFileiPv
	mov eax, [ebp-0x1c]
	mov [esi+0x8], eax
	add ebx, 0x2c
	mov [ebp-0x30], ebx
	lea edx, [ebp-0x1c]
	mov [esp+0x8], edx
	mov dword [esp+0x4], 0x4
	mov [esp], edi
	call _Z16MemFile_ReadDataP10MemoryFileiPv
	mov eax, [ebp-0x1c]
	mov edx, [ebp-0x30]
	mov [edx+0x20], eax
	cmp eax, 0x0
	jz _Z19SND_RestoreChanInfoP18snd_channel_info_tP10MemoryFile_10
	jg _Z19SND_RestoreChanInfoP18snd_channel_info_tP10MemoryFile_20
_Z19SND_RestoreChanInfoP18snd_channel_info_tP10MemoryFile_10:
	add esp, 0x3c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z19SND_RestoreChanInfoP18snd_channel_info_tP10MemoryFile_20:
	mov esi, [ebp-0x30]
	xor ebx, ebx
	jmp _Z19SND_RestoreChanInfoP18snd_channel_info_tP10MemoryFile_30
_Z19SND_RestoreChanInfoP18snd_channel_info_tP10MemoryFile_50:
	sub eax, 0x1
	jz _Z19SND_RestoreChanInfoP18snd_channel_info_tP10MemoryFile_40
_Z19SND_RestoreChanInfoP18snd_channel_info_tP10MemoryFile_60:
	add ebx, 0x1
	add esi, 0x4
	mov eax, [ebp-0x30]
	cmp ebx, [eax+0x20]
	jge _Z19SND_RestoreChanInfoP18snd_channel_info_tP10MemoryFile_10
_Z19SND_RestoreChanInfoP18snd_channel_info_tP10MemoryFile_30:
	lea eax, [ebp-0x1c]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x1
	mov [esp], edi
	call _Z16MemFile_ReadDataP10MemoryFileiPv
	movzx eax, byte [ebp-0x1c]
	mov [esi], eax
	test eax, eax
	jnz _Z19SND_RestoreChanInfoP18snd_channel_info_tP10MemoryFile_50
	lea edx, [ebp-0x1c]
	mov [esp+0x8], edx
	mov dword [esp+0x4], 0x4
	mov [esp], edi
	call _Z16MemFile_ReadDataP10MemoryFileiPv
	mov eax, [ebp-0x1c]
	mov [esi+0x10], eax
	jmp _Z19SND_RestoreChanInfoP18snd_channel_info_tP10MemoryFile_60
_Z19SND_RestoreChanInfoP18snd_channel_info_tP10MemoryFile_40:
	mov [esp], edi
	call _Z19MemFile_ReadCStringP10MemoryFile
	mov [ebp-0x2c], eax
	cmp byte [eax], 0x0
	jnz _Z19SND_RestoreChanInfoP18snd_channel_info_tP10MemoryFile_70
	xor eax, eax
	mov [esi+0x10], eax
	jmp _Z19SND_RestoreChanInfoP18snd_channel_info_tP10MemoryFile_60
_Z19SND_RestoreChanInfoP18snd_channel_info_tP10MemoryFile_70:
	lea eax, [ebp-0x1c]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x2
	mov [esp], edi
	call _Z16MemFile_ReadDataP10MemoryFileiPv
	movzx eax, word [ebp-0x1c]
	mov [esp+0x4], eax
	mov edx, [ebp-0x2c]
	mov [esp], edx
	call _Z22SND_GetAliasWithOffsetPKci
	mov [esi+0x10], eax
	jmp _Z19SND_RestoreChanInfoP18snd_channel_info_tP10MemoryFile_60
	nop


;SND_RestoreStreamChannel(int, MemoryFile*)
_Z24SND_RestoreStreamChanneliP10MemoryFile:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x11c
	mov [ebp-0x10c], eax
	mov esi, edx
	mov [esp], edx
	call _Z19MemFile_ReadCStringP10MemoryFile
	mov ebx, eax
	cmp byte [eax], 0x0
	jnz _Z24SND_RestoreStreamChanneliP10MemoryFile_10
_Z24SND_RestoreStreamChanneliP10MemoryFile_20:
	xor eax, eax
_Z24SND_RestoreStreamChanneliP10MemoryFile_80:
	add esp, 0x11c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z24SND_RestoreStreamChanneliP10MemoryFile_10:
	lea eax, [ebp-0x1a]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x2
	mov [esp], esi
	call _Z16MemFile_ReadDataP10MemoryFileiPv
	movzx eax, word [ebp-0x1a]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _Z22SND_GetAliasWithOffsetPKci
	mov edi, eax
	test eax, eax
	jz _Z24SND_RestoreStreamChanneliP10MemoryFile_20
	mov [esp], esi
	call _Z19MemFile_ReadCStringP10MemoryFile
	mov ebx, eax
	cmp byte [eax], 0x0
	jnz _Z24SND_RestoreStreamChanneliP10MemoryFile_30
	xor ebx, ebx
_Z24SND_RestoreStreamChanneliP10MemoryFile_90:
	lea eax, [ebp-0x100]
	mov edx, esi
	call _Z19SND_RestoreChanInfoP18snd_channel_info_tP10MemoryFile
	lea eax, [ebp-0x3c]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x20
	mov [esp], esi
	call _Z16MemFile_ReadDataP10MemoryFileiPv
	mov eax, [edi+0x30]
	and eax, 0xc0
	add eax, 0xffffff80
	jz _Z24SND_RestoreStreamChanneliP10MemoryFile_40
_Z24SND_RestoreStreamChanneliP10MemoryFile_50:
	mov eax, 0x1
	add esp, 0x11c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z24SND_RestoreStreamChanneliP10MemoryFile_40:
	mov eax, [ebx+0x30]
	and eax, 0xc0
	add eax, 0xffffff80
	jnz _Z24SND_RestoreStreamChanneliP10MemoryFile_50
	xor ecx, ecx
	mov edx, ebx
	mov eax, edi
	call _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h
	test al, al
	jz _Z24SND_RestoreStreamChanneliP10MemoryFile_50
	mov [ebp-0x74], edi
	mov [ebp-0x70], ebx
	mov eax, [ebp-0x98]
	mov [ebp-0x6c], eax
	mov eax, [ebp-0xf0]
	mov [ebp-0x68], eax
	mov eax, [ebp-0x28]
	mov [ebp-0x64], eax
	mov eax, [ebp-0x24]
	mov [ebp-0x60], eax
	mov eax, [ebp-0x20]
	mov [ebp-0x5c], eax
	mov eax, [ebp-0x34]
	mov [ebp-0x58], eax
	mov dword [ebp-0x54], 0x3f800000
	mov dword [ebp-0x50], 0x0
	mov eax, [ebp-0x3c]
	mov [ebp-0x4c], eax
	mov eax, [ebp-0xe8]
	mov [ebp-0x48], eax
	mov dword [ebp-0x40], 0x1
	movzx eax, byte [ebp-0x7a]
	mov [ebp-0x43], al
	mov edx, [ebp-0x10c]
	test edx, edx
	js _Z24SND_RestoreStreamChanneliP10MemoryFile_60
	mov eax, [snd_enableStream]
	cmp byte [eax+0xc], 0x0
	jz _Z24SND_RestoreStreamChanneliP10MemoryFile_50
	movzx eax, byte [ebp-0x7b]
	mov [ebp-0x44], al
	mov [esp+0x4], edx
	lea eax, [ebp-0x74]
	mov [esp], eax
	call _Z29SND_StartAliasStreamOnChannelP17SndStartAliasInfoi
_Z24SND_RestoreStreamChanneliP10MemoryFile_100:
	add eax, 0x1
	jz _Z24SND_RestoreStreamChanneliP10MemoryFile_50
	mov eax, [ebp-0x10c]
	mov [esp], eax
	call _Z23SND_IsStreamChannelFreei
	test al, al
	jnz _Z24SND_RestoreStreamChanneliP10MemoryFile_50
	lea eax, [ebp-0x3c]
	mov [esp+0x4], eax
	mov eax, [ebp-0x10c]
	mov [esp], eax
	call _Z32SND_SetStreamChannelFromSaveInfoiP17snd_save_stream_t
	mov ebx, [ebp-0x10c]
	lea edx, [ebx+ebx*4]
	lea eax, [edx*8]
	sub eax, edx
	shl eax, 0x2
	cmp byte [eax+g_snd+0x6276], 0x0
	jz _Z24SND_RestoreStreamChanneliP10MemoryFile_70
	cvtsi2ss xmm0, dword [ebp-0x38]
	mulss xmm0, [eax+g_snd+0x6244]
	mulss xmm0, [g_snd+0x10]
	addss xmm0, [_float_0_50000000]
	movss [esp], xmm0
	call floorf
	fstp dword [ebp-0x110]
	cvttss2si eax, [ebp-0x110]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _Z32SND_SetStreamChannelPlaybackRateii
_Z24SND_RestoreStreamChanneliP10MemoryFile_110:
	mov eax, [ebp-0x10c]
	lea eax, [eax+eax*4]
	lea edx, [eax*8]
	sub edx, eax
	shl edx, 0x2
	lea ecx, [edx+g_snd+0x6260]
	lea ebx, [ecx+0x8]
	mov eax, [ebp-0x88]
	mov [ecx+0x8], eax
	mov eax, [ebp-0x84]
	mov [ebx+0x4], eax
	mov eax, [ebp-0x80]
	mov [ebx+0x8], eax
	add edx, g_snd+0x6210
	lea ecx, [edx+0xc]
	mov eax, [ebp-0xd4]
	mov [edx+0xc], eax
	mov eax, [ebp-0xd0]
	mov [ecx+0x4], eax
	mov eax, [ebp-0xcc]
	mov [ecx+0x8], eax
	mov eax, [ebp-0xc8]
	mov [ecx+0xc], eax
	mov eax, [ebp-0xc4]
	mov [ecx+0x10], eax
	mov eax, [ebp-0xc0]
	mov [ecx+0x14], eax
	mov eax, [ebp-0xbc]
	mov [ecx+0x18], eax
	mov eax, [ebp-0xb8]
	mov [ecx+0x1c], eax
	mov eax, [ebp-0xb4]
	mov [ecx+0x20], eax
	mov eax, 0x1
	jmp _Z24SND_RestoreStreamChanneliP10MemoryFile_80
_Z24SND_RestoreStreamChanneliP10MemoryFile_30:
	lea eax, [ebp-0x1a]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x2
	mov [esp], esi
	call _Z16MemFile_ReadDataP10MemoryFileiPv
	movzx eax, word [ebp-0x1a]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _Z22SND_GetAliasWithOffsetPKci
	mov ebx, eax
	jmp _Z24SND_RestoreStreamChanneliP10MemoryFile_90
_Z24SND_RestoreStreamChanneliP10MemoryFile_60:
	mov byte [ebp-0x44], 0x0
	lea edx, [ebp-0x10c]
	lea eax, [ebp-0x74]
	call _Z20SND_StartAliasStreamP17SndStartAliasInfoPi
	jmp _Z24SND_RestoreStreamChanneliP10MemoryFile_100
_Z24SND_RestoreStreamChanneliP10MemoryFile_70:
	cvtsi2ss xmm0, dword [ebp-0x38]
	mulss xmm0, [eax+g_snd+0x6244]
	addss xmm0, [_float_0_50000000]
	movss [esp], xmm0
	call floorf
	fstp dword [ebp-0x114]
	cvttss2si eax, [ebp-0x114]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _Z32SND_SetStreamChannelPlaybackRateii
	jmp _Z24SND_RestoreStreamChanneliP10MemoryFile_110
	nop


;SND_Update()
_Z10SND_Updatev:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x7c
	cmp byte [g_snd], 0x0
	jnz _Z10SND_Updatev_10
	add esp, 0x7c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z10SND_Updatev_10:
	call _Z26SND_GetDriverCPUPercentagev
	mov edx, eax
	mov [g_snd+0x18], eax
	mov eax, com_statmon
	mov eax, [eax]
	cmp byte [eax+0xc], 0x0
	jz _Z10SND_Updatev_20
	cmp edx, 0x2
	jg _Z10SND_Updatev_30
_Z10SND_Updatev_20:
	call _Z16Sys_Millisecondsv
	mov edi, eax
	sub edi, [g_snd+0x4dcc]
	mov [g_snd+0x4dcc], eax
	mov [esp], edi
	call _Z19SND_DriverPreUpdatei
	mov eax, cl_paused
	mov eax, [eax]
	mov edx, [eax+0xc]
	test edx, edx
	setnz al
	cmp al, [g_snd+0x2]
	jz _Z10SND_Updatev_40
	test al, al
	jnz _Z10SND_Updatev_50
	call _Z17SND_UnpauseSoundsv
_Z10SND_Updatev_40:
	mov eax, [g_snd+0x61ec]
	pxor xmm4, xmm4
	test eax, eax
	jle _Z10SND_Updatev_60
	xor ecx, ecx
	mov ebx, g_snd
	pxor xmm4, xmm4
	cvtsi2ss xmm2, edi
	xor edx, edx
	jmp _Z10SND_Updatev_70
_Z10SND_Updatev_100:
	movss xmm1, dword [eax+0x4]
	ucomiss xmm0, xmm1
	jbe _Z10SND_Updatev_80
_Z10SND_Updatev_110:
	movss [eax], xmm1
	mov dword [eax+0x8], 0x0
_Z10SND_Updatev_80:
	add ecx, 0x1
	add edx, 0xc
	add ebx, 0x50
	cmp ecx, [g_snd+0x61ec]
	jge _Z10SND_Updatev_60
_Z10SND_Updatev_70:
	cmp byte [g_snd+0x2], 0x0
	jz _Z10SND_Updatev_90
	cmp byte [ebx+0x4e32], 0x0
	jnz _Z10SND_Updatev_80
_Z10SND_Updatev_90:
	mov eax, edx
	add eax, [g_snd+0x4c44]
	movaps xmm0, xmm2
	mulss xmm0, [eax+0x8]
	addss xmm0, [eax]
	movss [eax], xmm0
	ucomiss xmm4, [eax+0x8]
	jbe _Z10SND_Updatev_100
	movss xmm1, dword [eax+0x4]
	ucomiss xmm1, xmm0
	ja _Z10SND_Updatev_110
	add ecx, 0x1
	add edx, 0xc
	add ebx, 0x50
	cmp ecx, [g_snd+0x61ec]
	jl _Z10SND_Updatev_70
_Z10SND_Updatev_60:
	movss xmm1, dword [g_snd+0x4030]
	ucomiss xmm1, xmm4
	jnz _Z10SND_Updatev_120
	jp _Z10SND_Updatev_120
	mov eax, [snd_volume]
	cmp byte [eax+0xb], 0x0
	jnz _Z10SND_Updatev_130
_Z10SND_Updatev_380:
	cmp byte [g_snd+0x2], 0x0
	jnz _Z10SND_Updatev_140
	mov edx, [g_snd+0x401c]
	test edx, edx
	jnz _Z10SND_Updatev_150
_Z10SND_Updatev_540:
	call _Z22Com_GetTimescaleForSndv
	fstp dword [ebp-0x5c]
	movss xmm1, dword [ebp-0x5c]
	pxor xmm4, xmm4
	movaps xmm0, xmm1
	cmpss xmm0, xmm4, 0x6
	movaps xmm2, xmm1
	andps xmm2, xmm0
	movss xmm1, dword [_float_1_00000000]
	andnps xmm0, xmm1
	movaps xmm1, xmm0
	orps xmm1, xmm2
	movss xmm0, dword [g_snd+0x10]
	ucomiss xmm1, xmm0
	jp _Z10SND_Updatev_160
	jz _Z10SND_Updatev_170
_Z10SND_Updatev_160:
	movaps xmm2, xmm1
	divss xmm2, xmm0
	movss [ebp-0x40], xmm2
	movss [g_snd+0x10], xmm1
	mov eax, [g_snd+0x7ef0]
	add eax, 0x8
	cmp eax, 0x8
	jg _Z10SND_Updatev_180
_Z10SND_Updatev_880:
	mov eax, [g_snd+0x7ef4]
	add eax, 0x28
	cmp eax, 0x28
	jg _Z10SND_Updatev_190
_Z10SND_Updatev_850:
	mov eax, [g_snd+0x7eec]
	test eax, eax
	jg _Z10SND_Updatev_200
_Z10SND_Updatev_720:
	pxor xmm4, xmm4
_Z10SND_Updatev_170:
	mov eax, [g_snd+0x4cd8]
	movss xmm0, dword [eax+0xc]
	ucomiss xmm0, xmm4
	jnz _Z10SND_Updatev_210
	jp _Z10SND_Updatev_210
	movss xmm0, dword [eax+0x18]
	ucomiss xmm0, xmm4
	jp _Z10SND_Updatev_220
	jnz _Z10SND_Updatev_220
_Z10SND_Updatev_140:
	mov ebx, 0x8
	mov esi, g_snd
_Z10SND_Updatev_260:
	mov eax, [g_snd+0x7ef0]
	add eax, 0x8
	cmp eax, ebx
	jle _Z10SND_Updatev_230
_Z10SND_Updatev_420:
	mov [esp], ebx
	call _Z19SND_Is3DChannelFreei
	test al, al
	jz _Z10SND_Updatev_240
_Z10SND_Updatev_390:
	xor eax, eax
	test eax, eax
	jnz _Z10SND_Updatev_250
_Z10SND_Updatev_400:
	xor edx, edx
	add ebx, 0x1
	add esi, 0x8c
	test dl, dl
	jz _Z10SND_Updatev_260
_Z10SND_Updatev_410:
	mov eax, [snd_slaveFadeTime]
	mov eax, [eax+0xc]
	test eax, eax
	jnz _Z10SND_Updatev_270
_Z10SND_Updatev_450:
	mov eax, 0x3f800000
	test dl, dl
	jz _Z10SND_Updatev_280
	mov [g_snd+0x4c74], eax
	mov eax, [g_snd+0x7ef0]
	add eax, 0x8
	cmp eax, 0x8
	jg _Z10SND_Updatev_290
_Z10SND_Updatev_470:
	mov eax, [g_snd+0x7ef4]
	add eax, 0x28
	cmp eax, 0x28
	jg _Z10SND_Updatev_300
_Z10SND_Updatev_580:
	mov esi, [g_snd+0x7eec]
	test esi, esi
	jg _Z10SND_Updatev_310
_Z10SND_Updatev_610:
	mov dword [esp], 0xd
	call _Z24Sys_EnterCriticalSection15CriticalSection
	mov ebx, [g_sndPhysics+0x200]
	mov dword [g_sndPhysics+0x200], 0x0
	mov eax, g_snd
	mov edx, g_snd+0x70
_Z10SND_Updatev_330:
	cmp byte [eax+0x4d90], 0x0
	jnz _Z10SND_Updatev_320
	add eax, 0x38
	cmp edx, eax
	jnz _Z10SND_Updatev_330
_Z10SND_Updatev_810:
	mov dword [esp], 0xd
	call _Z24Sys_LeaveCriticalSection15CriticalSection
	mov [esp], edi
	call _Z20SND_DriverPostUpdatei
	mov eax, [snd_draw3D]
	mov eax, [eax+0xc]
	mov [esp], eax
	call _Z20DebugDrawWorldSoundsi
	add esp, 0x7c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z10SND_Updatev_120:
	cvtsi2ss xmm0, edi
	mulss xmm0, xmm1
	addss xmm0, [g_snd+0x4028]
	movss [g_snd+0x4028], xmm0
	ucomiss xmm4, [g_snd+0x4030]
	ja _Z10SND_Updatev_340
	movss xmm1, dword [g_snd+0x402c]
	ucomiss xmm0, xmm1
	jbe _Z10SND_Updatev_350
_Z10SND_Updatev_630:
	movss [g_snd+0x4028], xmm1
	mov dword [g_snd+0x4030], 0x0
_Z10SND_Updatev_350:
	ucomiss xmm4, [g_snd+0x4028]
	jnz _Z10SND_Updatev_360
	jp _Z10SND_Updatev_360
	ucomiss xmm4, [g_snd+0x4030]
	jz _Z10SND_Updatev_370
_Z10SND_Updatev_360:
	mov eax, [snd_volume]
_Z10SND_Updatev_130:
	mov [esp], eax
	call _Z18Dvar_ClearModifiedPK6dvar_s
	movss xmm0, dword [g_snd+0x4028]
	mov eax, [snd_volume]
	mulss xmm0, [eax+0xc]
	mulss xmm0, [_float_0_75000000]
	movss [g_snd+0x4024], xmm0
	jmp _Z10SND_Updatev_380
_Z10SND_Updatev_240:
	mov eax, [esi+0x6668]
	test eax, eax
	jnz _Z10SND_Updatev_390
	mov eax, 0x1
	test eax, eax
	jz _Z10SND_Updatev_400
_Z10SND_Updatev_250:
	cmp byte [esi+0x66d5], 0x0
	jz _Z10SND_Updatev_400
	mov edx, 0x1
	add ebx, 0x1
	add esi, 0x8c
	test dl, dl
	jnz _Z10SND_Updatev_410
	mov eax, [g_snd+0x7ef0]
	add eax, 0x8
	cmp eax, ebx
	jg _Z10SND_Updatev_420
_Z10SND_Updatev_230:
	mov eax, [g_snd+0x7ef4]
	add eax, 0x28
	cmp eax, 0x28
	jg _Z10SND_Updatev_430
_Z10SND_Updatev_780:
	mov eax, [g_snd+0x7eec]
	test eax, eax
	jg _Z10SND_Updatev_440
_Z10SND_Updatev_670:
	xor edx, edx
	mov eax, [snd_slaveFadeTime]
	mov eax, [eax+0xc]
	test eax, eax
	jz _Z10SND_Updatev_450
_Z10SND_Updatev_270:
	test dl, dl
	jnz _Z10SND_Updatev_460
	cvtsi2ss xmm0, edi
	cvtsi2ss xmm1, eax
	divss xmm0, xmm1
	movss xmm1, dword [g_snd+0x4c74]
	subss xmm1, xmm0
	movss [g_snd+0x4c74], xmm1
_Z10SND_Updatev_530:
	movss xmm3, dword [_float_1_00000000]
	movaps xmm0, xmm1
	subss xmm0, xmm3
	pxor xmm4, xmm4
	movaps xmm2, xmm4
	cmpss xmm2, xmm0, 0x6
	movaps xmm0, xmm2
	movaps xmm2, xmm1
	andps xmm2, xmm0
	andnps xmm0, xmm3
	orps xmm0, xmm2
	movaps xmm2, xmm4
	subss xmm2, xmm1
	movaps xmm1, xmm2
	movaps xmm2, xmm4
	cmpss xmm2, xmm1, 0x6
	andps xmm0, xmm2
	orps xmm0, xmm4
	movss [g_snd+0x4c74], xmm0
	mov eax, [g_snd+0x7ef0]
	add eax, 0x8
	cmp eax, 0x8
	jle _Z10SND_Updatev_470
_Z10SND_Updatev_290:
	mov ebx, 0x8
	jmp _Z10SND_Updatev_480
_Z10SND_Updatev_490:
	add ebx, 0x1
	mov eax, [g_snd+0x7ef0]
	add eax, 0x8
	cmp ebx, eax
	jge _Z10SND_Updatev_470
_Z10SND_Updatev_480:
	mov [esp], ebx
	call _Z19SND_Is3DChannelFreei
	test al, al
	jnz _Z10SND_Updatev_490
	mov [esp+0x4], edi
	mov [esp], ebx
	call _Z19SND_Update3DChannelii
	jmp _Z10SND_Updatev_490
_Z10SND_Updatev_50:
	call _Z15SND_PauseSoundsv
	jmp _Z10SND_Updatev_40
_Z10SND_Updatev_210:
	cvtsi2ss xmm1, edi
	mulss xmm0, xmm1
	addss xmm0, [eax+0x4]
	movss [eax+0x4], xmm0
	mov eax, [g_snd+0x4cd8]
	ucomiss xmm4, [eax+0xc]
	ja _Z10SND_Updatev_500
	movss xmm2, dword [eax+0x8]
	movss xmm0, dword [eax+0x4]
	ucomiss xmm0, xmm2
	jae _Z10SND_Updatev_510
_Z10SND_Updatev_640:
	movss xmm0, dword [eax+0x18]
	ucomiss xmm0, xmm4
	jp _Z10SND_Updatev_520
	jnz _Z10SND_Updatev_520
_Z10SND_Updatev_560:
	call _Z17SND_UpdateReverbsv
	jmp _Z10SND_Updatev_140
_Z10SND_Updatev_30:
	mov eax, clientUIActives
	cmp dword [eax+0xc], 0x8
	jle _Z10SND_Updatev_20
	mov dword [esp+0x8], _cstring_code_warning_sou
	mov dword [esp+0x4], 0xbb8
	mov dword [esp], 0x2
	call _Z15StatMon_WarningiiPKc
	jmp _Z10SND_Updatev_20
_Z10SND_Updatev_460:
	cvtsi2ss xmm0, edi
	cvtsi2ss xmm1, eax
	divss xmm0, xmm1
	addss xmm0, [g_snd+0x4c74]
	movss [g_snd+0x4c74], xmm0
	movaps xmm1, xmm0
	jmp _Z10SND_Updatev_530
_Z10SND_Updatev_280:
	xor eax, eax
	mov [g_snd+0x4c74], eax
	mov eax, [g_snd+0x7ef0]
	add eax, 0x8
	cmp eax, 0x8
	jle _Z10SND_Updatev_470
	jmp _Z10SND_Updatev_290
_Z10SND_Updatev_150:
	movzx eax, byte [g_snd+0x4020]
	mov [esp+0xc], eax
	mov dword [esp+0x8], g_snd+0x1c
	mov [esp+0x4], edx
	lea ebx, [ebp-0x34]
	mov [esp], ebx
	call _Z22MemFile_InitForReadingP10MemoryFileiPvh
	mov [esp], ebx
	call _Z11SND_RestoreP10MemoryFile
	mov dword [esp+0x4], 0xffffffff
	mov [esp], ebx
	call _Z21MemFile_MoveToSegmentP10MemoryFilei
	mov dword [g_snd+0x401c], 0x0
	jmp _Z10SND_Updatev_540
_Z10SND_Updatev_220:
	cvtsi2ss xmm1, edi
_Z10SND_Updatev_520:
	mulss xmm1, xmm0
	addss xmm1, [eax+0x10]
	movss [eax+0x10], xmm1
	mov eax, [g_snd+0x4cd8]
	ucomiss xmm4, [eax+0x18]
	ja _Z10SND_Updatev_550
	movss xmm1, dword [eax+0x14]
	movss xmm0, dword [eax+0x10]
	ucomiss xmm0, xmm1
	jb _Z10SND_Updatev_560
	movss [eax+0x10], xmm1
	mov eax, [g_snd+0x4cd8]
	mov dword [eax+0x18], 0x0
	call _Z17SND_UpdateReverbsv
	jmp _Z10SND_Updatev_140
_Z10SND_Updatev_300:
	mov ebx, 0x28
	jmp _Z10SND_Updatev_570
_Z10SND_Updatev_590:
	add ebx, 0x1
	mov eax, [g_snd+0x7ef4]
	add eax, 0x28
	cmp ebx, eax
	jge _Z10SND_Updatev_580
_Z10SND_Updatev_570:
	mov [esp], ebx
	call _Z23SND_IsStreamChannelFreei
	test al, al
	jnz _Z10SND_Updatev_590
	mov [esp+0x4], edi
	mov [esp], ebx
	call _Z23SND_UpdateStreamChannelii
	jmp _Z10SND_Updatev_590
_Z10SND_Updatev_310:
	xor ebx, ebx
	jmp _Z10SND_Updatev_600
_Z10SND_Updatev_620:
	add ebx, 0x1
	cmp ebx, [g_snd+0x7eec]
	jge _Z10SND_Updatev_610
_Z10SND_Updatev_600:
	mov [esp], ebx
	call _Z19SND_Is2DChannelFreei
	test al, al
	jnz _Z10SND_Updatev_620
	mov [esp+0x4], edi
	mov [esp], ebx
	call _Z19SND_Update2DChannelii
	jmp _Z10SND_Updatev_620
_Z10SND_Updatev_340:
	movss xmm1, dword [g_snd+0x402c]
	ucomiss xmm1, xmm0
	jbe _Z10SND_Updatev_350
	jmp _Z10SND_Updatev_630
_Z10SND_Updatev_510:
	movss [eax+0x4], xmm2
	mov eax, [g_snd+0x4cd8]
	mov dword [eax+0xc], 0x0
	mov eax, [g_snd+0x4cd8]
	jmp _Z10SND_Updatev_640
_Z10SND_Updatev_440:
	xor ebx, ebx
	mov esi, g_snd
	mov [esp], ebx
	call _Z19SND_Is2DChannelFreei
	test al, al
	jz _Z10SND_Updatev_650
_Z10SND_Updatev_680:
	xor eax, eax
	test eax, eax
	jnz _Z10SND_Updatev_660
_Z10SND_Updatev_690:
	xor edx, edx
_Z10SND_Updatev_700:
	add ebx, 0x1
	test dl, dl
	jnz _Z10SND_Updatev_410
	add esi, 0x8c
	cmp ebx, [g_snd+0x7eec]
	jge _Z10SND_Updatev_670
	mov [esp], ebx
	call _Z19SND_Is2DChannelFreei
	test al, al
	jnz _Z10SND_Updatev_680
_Z10SND_Updatev_650:
	mov eax, [esi+0x6208]
	test eax, eax
	jnz _Z10SND_Updatev_680
	mov eax, 0x1
	test eax, eax
	jz _Z10SND_Updatev_690
_Z10SND_Updatev_660:
	cmp byte [esi+0x6275], 0x0
	jz _Z10SND_Updatev_690
	mov edx, 0x1
	jmp _Z10SND_Updatev_700
_Z10SND_Updatev_200:
	xor ebx, ebx
	mov esi, g_snd
	jmp _Z10SND_Updatev_710
_Z10SND_Updatev_730:
	add ebx, 0x1
	add esi, 0x8c
	cmp ebx, [g_snd+0x7eec]
	jge _Z10SND_Updatev_720
_Z10SND_Updatev_710:
	mov [esp], ebx
	call _Z19SND_Is2DChannelFreei
	test al, al
	jnz _Z10SND_Updatev_730
	cmp byte [esi+0x6276], 0x0
	jz _Z10SND_Updatev_730
	mov [esp], ebx
	call _Z28SND_Get2DChannelPlaybackRatei
	cvtsi2ss xmm0, eax
	mulss xmm0, [ebp-0x40]
	addss xmm0, [_float_0_50000000]
	movss [esp], xmm0
	call floorf
	fstp dword [ebp-0x4c]
	cvttss2si eax, [ebp-0x4c]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _Z28SND_Set2DChannelPlaybackRateii
	jmp _Z10SND_Updatev_730
_Z10SND_Updatev_430:
	mov ebx, 0x28
	mov esi, g_snd
_Z10SND_Updatev_770:
	mov [esp], ebx
	call _Z23SND_IsStreamChannelFreei
	test al, al
	jnz _Z10SND_Updatev_740
	mov eax, [esi+0x77e8]
	test eax, eax
	jle _Z10SND_Updatev_750
_Z10SND_Updatev_740:
	xor eax, eax
_Z10SND_Updatev_790:
	test eax, eax
	jz _Z10SND_Updatev_760
	cmp byte [esi+0x7855], 0x0
	jz _Z10SND_Updatev_760
	mov edx, 0x1
_Z10SND_Updatev_800:
	add ebx, 0x1
	test dl, dl
	jnz _Z10SND_Updatev_410
	add esi, 0x8c
	mov eax, [g_snd+0x7ef4]
	add eax, 0x28
	cmp ebx, eax
	jl _Z10SND_Updatev_770
	jmp _Z10SND_Updatev_780
_Z10SND_Updatev_750:
	mov eax, 0x1
	jmp _Z10SND_Updatev_790
_Z10SND_Updatev_760:
	xor edx, edx
	jmp _Z10SND_Updatev_800
_Z10SND_Updatev_320:
	test ebx, ebx
	jle _Z10SND_Updatev_810
	mov dword [ebp-0x3c], 0x0
	mov esi, g_sndPhysics
	mov dword [ebp-0x50], g_sndPhysics+0x4
_Z10SND_Updatev_830:
	mov eax, [esi]
	mov [esp], eax
	call _Z26Com_PickSoundAliasFromListP16snd_alias_list_t
	test eax, eax
	jz _Z10SND_Updatev_820
	mov dword [esp+0x14], 0x1
	mov dword [esp+0x10], 0x1
	mov dword [esp+0xc], 0x0
	mov dword [esp+0x8], 0x0
	mov dword [esp+0x4], 0x0
	mov edx, [ebp-0x50]
	mov [esp], edx
	mov ecx, 0x3fe
	movss xmm1, dword [_float_1_00000000]
	pxor xmm0, xmm0
	mov edx, eax
	call _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t
_Z10SND_Updatev_820:
	add dword [ebp-0x3c], 0x1
	add dword [ebp-0x50], 0x10
	add esi, 0x10
	cmp ebx, [ebp-0x3c]
	jnz _Z10SND_Updatev_830
	jmp _Z10SND_Updatev_810
_Z10SND_Updatev_190:
	mov ebx, 0x28
	mov esi, g_snd
	jmp _Z10SND_Updatev_840
_Z10SND_Updatev_860:
	add ebx, 0x1
	add esi, 0x8c
	mov eax, [g_snd+0x7ef4]
	add eax, 0x28
	cmp eax, ebx
	jle _Z10SND_Updatev_850
_Z10SND_Updatev_840:
	mov [esp], ebx
	call _Z23SND_IsStreamChannelFreei
	test al, al
	jnz _Z10SND_Updatev_860
	cmp byte [esi+0x7856], 0x0
	jz _Z10SND_Updatev_860
	mov [esp], ebx
	call _Z32SND_GetStreamChannelPlaybackRatei
	cvtsi2ss xmm0, eax
	mulss xmm0, [ebp-0x40]
	addss xmm0, [_float_0_50000000]
	movss [esp], xmm0
	call floorf
	fstp dword [ebp-0x48]
	cvttss2si eax, [ebp-0x48]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _Z32SND_SetStreamChannelPlaybackRateii
	jmp _Z10SND_Updatev_860
_Z10SND_Updatev_370:
	jp _Z10SND_Updatev_360
	mov dword [esp], 0x0
	call _Z14SND_StopSounds20snd_stopsounds_arg_t
	mov eax, [snd_volume]
	jmp _Z10SND_Updatev_130
_Z10SND_Updatev_180:
	mov ebx, 0x8
	mov esi, g_snd
	jmp _Z10SND_Updatev_870
_Z10SND_Updatev_890:
	add ebx, 0x1
	add esi, 0x8c
	mov eax, [g_snd+0x7ef0]
	add eax, 0x8
	cmp ebx, eax
	jge _Z10SND_Updatev_880
_Z10SND_Updatev_870:
	mov [esp], ebx
	call _Z19SND_Is3DChannelFreei
	test al, al
	jnz _Z10SND_Updatev_890
	cmp byte [esi+0x66d6], 0x0
	jz _Z10SND_Updatev_890
	mov [esp], ebx
	call _Z28SND_Get3DChannelPlaybackRatei
	cvtsi2ss xmm0, eax
	mulss xmm0, [ebp-0x40]
	addss xmm0, [_float_0_50000000]
	movss [esp], xmm0
	call floorf
	fstp dword [ebp-0x44]
	cvttss2si eax, [ebp-0x44]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _Z28SND_Set3DChannelPlaybackRateii
	jmp _Z10SND_Updatev_890
_Z10SND_Updatev_550:
	movss xmm0, dword [eax+0x14]
	ucomiss xmm0, [eax+0x10]
	jb _Z10SND_Updatev_560
	movss [eax+0x10], xmm0
	mov eax, [g_snd+0x4cd8]
	mov dword [eax+0x18], 0x0
	call _Z17SND_UpdateReverbsv
	jmp _Z10SND_Updatev_140
_Z10SND_Updatev_500:
	movss xmm0, dword [eax+0x8]
	ucomiss xmm0, [eax+0x4]
	jb _Z10SND_Updatev_640
	movss [eax+0x4], xmm0
	mov eax, [g_snd+0x4cd8]
	mov dword [eax+0xc], 0x0
	mov eax, [g_snd+0x4cd8]
	jmp _Z10SND_Updatev_640
	add [eax], al


;SND_Restore(MemoryFile*)
_Z11SND_RestoreP10MemoryFile:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x10c
	mov edi, [ebp+0x8]
	cmp byte [g_snd], 0x0
	jnz _Z11SND_RestoreP10MemoryFile_10
_Z11SND_RestoreP10MemoryFile_110:
	add esp, 0x10c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z11SND_RestoreP10MemoryFile_10:
	mov ebx, 0x1
	mov esi, 0x303
_Z11SND_RestoreP10MemoryFile_20:
	lea eax, [esi+ebx+g_snd+0x4034]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x304
	mov [esp], edi
	call _Z16MemFile_ReadDataP10MemoryFileiPv
	add ebx, 0x1
	add esi, 0x303
	cmp ebx, 0x4
	jnz _Z11SND_RestoreP10MemoryFile_20
	xor edx, edx
	mov ecx, g_snd
	and ebx, 0xffffff00
_Z11SND_RestoreP10MemoryFile_40:
	cmp byte [ecx+0x4334], 0x0
	jz _Z11SND_RestoreP10MemoryFile_30
	lea eax, [ebx+edx+g_snd+0x4034]
	mov [g_snd+0x4c44], eax
_Z11SND_RestoreP10MemoryFile_30:
	add edx, 0x1
	add ebx, 0x303
	add ecx, 0x304
	cmp edx, 0x4
	jnz _Z11SND_RestoreP10MemoryFile_40
	mov esi, 0x1
	mov ebx, g_snd+0x4c98
_Z11SND_RestoreP10MemoryFile_50:
	mov [esp+0x8], ebx
	mov dword [esp+0x4], 0x20
	mov [esp], edi
	call _Z16MemFile_ReadDataP10MemoryFileiPv
	add esi, 0x1
	add ebx, 0x20
	cmp esi, 0x3
	jnz _Z11SND_RestoreP10MemoryFile_50
	mov [esp], edi
	call _Z13SND_RestoreEqP10MemoryFile
	xor ebx, ebx
	mov ecx, g_snd
	mov edx, g_snd+0x4c78
	mov eax, [g_snd+0x4cd8]
_Z11SND_RestoreP10MemoryFile_60:
	cmp byte [ecx+0x4c94], 0x0
	cmovnz eax, edx
	mov [g_snd+0x4cd8], eax
	add ebx, 0x1
	add edx, 0x20
	add ecx, 0x20
	cmp ebx, 0x3
	jnz _Z11SND_RestoreP10MemoryFile_60
	mov eax, [eax]
	mov [esp], eax
	call _Z15SND_SetRoomtypei
	mov dword [esp+0x8], g_snd+0x4c48
	mov dword [esp+0x4], 0x8
	mov [esp], edi
	call _Z16MemFile_ReadDataP10MemoryFileiPv
_Z11SND_RestoreP10MemoryFile_180:
	mov [esp], edi
	call _Z19MemFile_ReadCStringP10MemoryFile
	mov ebx, eax
	cmp byte [eax], 0x0
	jnz _Z11SND_RestoreP10MemoryFile_70
_Z11SND_RestoreP10MemoryFile_160:
	mov [esp], edi
	call _Z19MemFile_ReadCStringP10MemoryFile
	mov ebx, eax
	cmp byte [eax], 0x0
	jnz _Z11SND_RestoreP10MemoryFile_80
_Z11SND_RestoreP10MemoryFile_140:
	mov ebx, 0xffffffff
_Z11SND_RestoreP10MemoryFile_100:
	lea eax, [ebx+0x29]
	cmp ebx, 0x3
	ja _Z11SND_RestoreP10MemoryFile_90
_Z11SND_RestoreP10MemoryFile_130:
	add ebx, 0x1
	cmp ebx, 0x4
	jnz _Z11SND_RestoreP10MemoryFile_100
_Z11SND_RestoreP10MemoryFile_120:
	mov edx, edi
	mov eax, 0xffffffff
	call _Z24SND_RestoreStreamChanneliP10MemoryFile
	test al, al
	jz _Z11SND_RestoreP10MemoryFile_110
	mov edx, edi
	mov eax, 0xffffffff
	call _Z24SND_RestoreStreamChanneliP10MemoryFile
	test al, al
	jnz _Z11SND_RestoreP10MemoryFile_120
	jmp _Z11SND_RestoreP10MemoryFile_110
_Z11SND_RestoreP10MemoryFile_90:
	mov edx, edi
	call _Z24SND_RestoreStreamChanneliP10MemoryFile
	jmp _Z11SND_RestoreP10MemoryFile_130
_Z11SND_RestoreP10MemoryFile_80:
	lea eax, [ebp-0x1a]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x2
	mov [esp], edi
	call _Z16MemFile_ReadDataP10MemoryFileiPv
	movzx eax, word [ebp-0x1a]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _Z22SND_GetAliasWithOffsetPKci
	mov esi, eax
	test eax, eax
	jz _Z11SND_RestoreP10MemoryFile_140
	mov [esp], edi
	call _Z19MemFile_ReadCStringP10MemoryFile
	mov ebx, eax
	cmp byte [eax], 0x0
	jnz _Z11SND_RestoreP10MemoryFile_150
	xor ebx, ebx
_Z11SND_RestoreP10MemoryFile_200:
	mov edx, edi
	lea eax, [ebp-0xfc]
	call _Z19SND_RestoreChanInfoP18snd_channel_info_tP10MemoryFile
	lea eax, [ebp-0x38]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x10
	mov [esp], edi
	call _Z16MemFile_ReadDataP10MemoryFileiPv
	mov eax, [esi+0x10]
	cmp eax, [ebx+0x10]
	jnz _Z11SND_RestoreP10MemoryFile_160
	cmp byte [eax+0x1], 0x0
	jz _Z11SND_RestoreP10MemoryFile_160
	cmp byte [eax], 0x1
	jnz _Z11SND_RestoreP10MemoryFile_160
	xor ecx, ecx
	mov edx, ebx
	mov eax, esi
	call _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h
	test al, al
	jz _Z11SND_RestoreP10MemoryFile_160
	mov eax, [snd_enable2D]
	cmp byte [eax+0xc], 0x0
	jz _Z11SND_RestoreP10MemoryFile_160
	mov [ebp-0x70], esi
	mov [ebp-0x6c], ebx
	mov eax, [ebp-0x94]
	mov [ebp-0x68], eax
	mov eax, [ebp-0xec]
	mov [ebp-0x64], eax
	mov eax, [ebp-0xac]
	mov [ebp-0x54], eax
	mov eax, [ebp-0x34]
	mov [ebp-0x50], eax
	mov dword [ebp-0x4c], 0x0
	mov eax, [ebp-0x38]
	mov [ebp-0x48], eax
	mov eax, [ebp-0xe4]
	mov [ebp-0x44], eax
	movzx eax, byte [ebp-0x77]
	mov [ebp-0x40], al
	mov dword [ebp-0x3c], 0x1
	movzx eax, byte [ebp-0x76]
	mov [ebp-0x3f], al
	lea eax, [ebp-0x20]
	mov [esp+0x4], eax
	lea eax, [ebp-0x70]
	mov [esp], eax
	call _Z22SND_StartAlias2DSampleP17SndStartAliasInfoPi
	add eax, 0x1
	jz _Z11SND_RestoreP10MemoryFile_160
	lea eax, [ebp-0x38]
	mov [esp+0x4], eax
	mov eax, [ebp-0x20]
	mov [esp], eax
	call _Z28SND_Set2DChannelFromSaveInfoiP20snd_save_2D_sample_t
	mov eax, [ebp-0x20]
	lea eax, [eax+eax*4]
	lea edx, [eax*8]
	sub edx, eax
	shl edx, 0x2
	lea ecx, [edx+g_snd+0x6260]
	lea ebx, [ecx+0x8]
	mov eax, [ebp-0x84]
	mov [ecx+0x8], eax
	mov eax, [ebp-0x80]
	mov [ebx+0x4], eax
	mov eax, [ebp-0x7c]
	mov [ebx+0x8], eax
	add edx, g_snd+0x6210
	lea ecx, [edx+0xc]
	mov eax, [ebp-0xd0]
	mov [edx+0xc], eax
	mov eax, [ebp-0xcc]
	mov [ecx+0x4], eax
	mov eax, [ebp-0xc8]
	mov [ecx+0x8], eax
	mov eax, [ebp-0xc4]
	mov [ecx+0xc], eax
	mov eax, [ebp-0xc0]
	mov [ecx+0x10], eax
	mov eax, [ebp-0xbc]
	mov [ecx+0x14], eax
	mov eax, [ebp-0xb8]
	mov [ecx+0x18], eax
	mov eax, [ebp-0xb4]
	mov [ecx+0x1c], eax
	mov eax, [ebp-0xb0]
	mov [ecx+0x20], eax
	jmp _Z11SND_RestoreP10MemoryFile_160
_Z11SND_RestoreP10MemoryFile_70:
	lea eax, [ebp-0x1a]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x2
	mov [esp], edi
	call _Z16MemFile_ReadDataP10MemoryFileiPv
	movzx eax, word [ebp-0x1a]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _Z22SND_GetAliasWithOffsetPKci
	mov esi, eax
	test eax, eax
	jz _Z11SND_RestoreP10MemoryFile_160
	mov [esp], edi
	call _Z19MemFile_ReadCStringP10MemoryFile
	mov ebx, eax
	cmp byte [eax], 0x0
	jnz _Z11SND_RestoreP10MemoryFile_170
	xor ebx, ebx
_Z11SND_RestoreP10MemoryFile_190:
	mov edx, edi
	lea eax, [ebp-0xfc]
	call _Z19SND_RestoreChanInfoP18snd_channel_info_tP10MemoryFile
	lea eax, [ebp-0x38]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x18
	mov [esp], edi
	call _Z16MemFile_ReadDataP10MemoryFileiPv
	mov eax, [esi+0x10]
	cmp eax, [ebx+0x10]
	jnz _Z11SND_RestoreP10MemoryFile_180
	cmp byte [eax+0x1], 0x0
	jz _Z11SND_RestoreP10MemoryFile_180
	cmp byte [eax], 0x1
	jnz _Z11SND_RestoreP10MemoryFile_180
	xor ecx, ecx
	mov edx, ebx
	mov eax, esi
	call _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h
	test al, al
	jz _Z11SND_RestoreP10MemoryFile_180
	mov eax, [snd_enable3D]
	cmp byte [eax+0xc], 0x0
	jz _Z11SND_RestoreP10MemoryFile_180
	mov [ebp-0x70], esi
	mov [ebp-0x6c], ebx
	mov eax, [ebp-0x94]
	mov [ebp-0x68], eax
	mov eax, [ebp-0xec]
	mov [ebp-0x64], eax
	mov eax, [ebp-0x2c]
	mov [ebp-0x60], eax
	mov eax, [ebp-0x28]
	mov [ebp-0x5c], eax
	mov eax, [ebp-0x24]
	mov [ebp-0x58], eax
	mov eax, [ebp-0xac]
	mov [ebp-0x54], eax
	mov eax, [ebp-0x34]
	mov [ebp-0x50], eax
	mov dword [ebp-0x4c], 0x0
	mov eax, [ebp-0x38]
	mov [ebp-0x48], eax
	mov eax, [ebp-0xe4]
	mov [ebp-0x44], eax
	movzx eax, byte [ebp-0x77]
	mov [ebp-0x40], al
	mov dword [ebp-0x3c], 0x1
	movzx eax, byte [ebp-0x76]
	mov [ebp-0x3f], al
	lea eax, [ebp-0x20]
	mov [esp+0x4], eax
	lea eax, [ebp-0x70]
	mov [esp], eax
	call _Z22SND_StartAlias3DSampleP17SndStartAliasInfoPi
	add eax, 0x1
	jz _Z11SND_RestoreP10MemoryFile_180
	mov eax, [ebp-0x20]
	lea eax, [eax+eax*4]
	lea edx, [eax*8]
	sub edx, eax
	shl edx, 0x2
	lea ecx, [edx+g_snd+0x6260]
	lea ebx, [ecx+0x8]
	mov eax, [ebp-0x84]
	mov [ecx+0x8], eax
	mov eax, [ebp-0x80]
	mov [ebx+0x4], eax
	mov eax, [ebp-0x7c]
	mov [ebx+0x8], eax
	add edx, g_snd+0x6210
	lea ecx, [edx+0xc]
	mov eax, [ebp-0xd0]
	mov [edx+0xc], eax
	mov eax, [ebp-0xcc]
	mov [ecx+0x4], eax
	mov eax, [ebp-0xc8]
	mov [ecx+0x8], eax
	mov eax, [ebp-0xc4]
	mov [ecx+0xc], eax
	mov eax, [ebp-0xc0]
	mov [ecx+0x10], eax
	mov eax, [ebp-0xbc]
	mov [ecx+0x14], eax
	mov eax, [ebp-0xb8]
	mov [ecx+0x18], eax
	mov eax, [ebp-0xb4]
	mov [ecx+0x1c], eax
	mov eax, [ebp-0xb0]
	mov [ecx+0x20], eax
	jmp _Z11SND_RestoreP10MemoryFile_180
_Z11SND_RestoreP10MemoryFile_170:
	lea eax, [ebp-0x1a]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x2
	mov [esp], edi
	call _Z16MemFile_ReadDataP10MemoryFileiPv
	movzx eax, word [ebp-0x1a]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _Z22SND_GetAliasWithOffsetPKci
	mov ebx, eax
	jmp _Z11SND_RestoreP10MemoryFile_190
_Z11SND_RestoreP10MemoryFile_150:
	lea eax, [ebp-0x1a]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x2
	mov [esp], edi
	call _Z16MemFile_ReadDataP10MemoryFileiPv
	movzx eax, word [ebp-0x1a]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _Z22SND_GetAliasWithOffsetPKci
	mov ebx, eax
	jmp _Z11SND_RestoreP10MemoryFile_200


;SND_SetEq_f()
_Z11SND_SetEq_fv:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x6c
	mov ebx, cmd_args
	mov eax, [ebx]
	cmp dword [ebx+eax*4+0x44], 0x8
	jz _Z11SND_SetEq_fv_10
	mov dword [esp+0x4], _cstring_usage_snd_seteq_
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	call _Z17SND_PrintEqParamsv
_Z11SND_SetEq_fv_20:
	add esp, 0x6c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z11SND_SetEq_fv_10:
	lea ecx, [ebp-0x20]
	lea edx, [ebp-0x24]
	lea eax, [ebp-0x1c]
	call _Z25SND_ParseChannelAndBand_fPiS_S_
	test al, al
	jz _Z11SND_SetEq_fv_20
	mov eax, [ebx]
	cmp dword [ebx+eax*4+0x44], 0x4
	jg _Z11SND_SetEq_fv_30
	mov esi, _cstring_null
_Z11SND_SetEq_fv_90:
	mov edx, snd_eqTypeStrings
	mov eax, [edx]
	test eax, eax
	jz _Z11SND_SetEq_fv_40
	xor edi, edi
	mov ebx, edx
_Z11SND_SetEq_fv_60:
	mov [esp+0x4], eax
	mov [esp], esi
	call _Z9I_stricmpPKcS0_
	test eax, eax
	jz _Z11SND_SetEq_fv_50
	add edi, 0x1
	mov eax, [ebx+0x4]
	add ebx, 0x4
	test eax, eax
	jnz _Z11SND_SetEq_fv_60
_Z11SND_SetEq_fv_40:
	mov [esp+0x8], esi
	mov dword [esp+0x4], _cstring_invalid_eq_type_
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	mov edx, snd_eqTypeStrings
	mov eax, [edx]
	test eax, eax
	jz _Z11SND_SetEq_fv_20
	mov ebx, edx
	jmp _Z11SND_SetEq_fv_70
_Z11SND_SetEq_fv_80:
	mov eax, [ebx+0x4]
	add ebx, 0x4
	test eax, eax
	jz _Z11SND_SetEq_fv_20
_Z11SND_SetEq_fv_70:
	cmp byte [eax], 0x0
	jz _Z11SND_SetEq_fv_80
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring___s
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	jmp _Z11SND_SetEq_fv_80
_Z11SND_SetEq_fv_30:
	mov eax, [ebx+eax*4+0x64]
	mov esi, [eax+0x10]
	jmp _Z11SND_SetEq_fv_90
_Z11SND_SetEq_fv_50:
	cmp edi, 0x5
	jz _Z11SND_SetEq_fv_20
	mov edx, cmd_args
	mov eax, [edx]
	cmp dword [edx+eax*4+0x44], 0x5
	jle _Z11SND_SetEq_fv_100
	mov eax, [edx+eax*4+0x64]
	mov eax, [eax+0x14]
_Z11SND_SetEq_fv_160:
	mov [esp], eax
	call atof
	fstp qword [ebp-0x48]
	cvtsd2ss xmm0, [ebp-0x48]
	movss [ebp-0x2c], xmm0
	mov eax, cmd_args
	mov edx, [eax]
	cmp dword [eax+edx*4+0x44], 0x6
	jg _Z11SND_SetEq_fv_110
	mov eax, _cstring_null
_Z11SND_SetEq_fv_150:
	mov [esp], eax
	call atof
	fstp qword [ebp-0x40]
	cvtsd2ss xmm1, [ebp-0x40]
	ucomiss xmm1, [_float_0_00000000]
	jp _Z11SND_SetEq_fv_120
	jb _Z11SND_SetEq_fv_130
_Z11SND_SetEq_fv_120:
	ucomiss xmm1, [_float_20000_00000000]
	jbe _Z11SND_SetEq_fv_140
_Z11SND_SetEq_fv_130:
	mov dword [esp+0x10], 0x4e20
	cvtss2sd xmm1, xmm1
	movsd [esp+0x8], xmm1
	mov dword [esp+0x4], _cstring_invalid_freq_f_m
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	jmp _Z11SND_SetEq_fv_20
_Z11SND_SetEq_fv_110:
	mov eax, [eax+edx*4+0x64]
	mov eax, [eax+0x18]
	jmp _Z11SND_SetEq_fv_150
_Z11SND_SetEq_fv_100:
	mov eax, _cstring_null
	jmp _Z11SND_SetEq_fv_160
_Z11SND_SetEq_fv_140:
	mov eax, cmd_args
	mov edx, [eax]
	cmp dword [eax+edx*4+0x44], 0x7
	jg _Z11SND_SetEq_fv_170
	mov eax, _cstring_null
_Z11SND_SetEq_fv_190:
	mov [esp], eax
	movss [ebp-0x58], xmm1
	call atof
	fstp qword [ebp-0x38]
	cvtsd2ss xmm0, [ebp-0x38]
	movss xmm1, dword [ebp-0x58]
	ucomiss xmm0, [_float_0_00000000]
	jbe _Z11SND_SetEq_fv_180
_Z11SND_SetEq_fv_200:
	movss [esp+0x18], xmm0
	movss [esp+0x14], xmm1
	movss xmm0, dword [ebp-0x2c]
	movss [esp+0x10], xmm0
	mov [esp+0xc], edi
	mov eax, [ebp-0x20]
	mov [esp+0x8], eax
	mov eax, [ebp-0x24]
	mov [esp+0x4], eax
	mov eax, [ebp-0x1c]
	mov [esp], eax
	call _Z15SND_SetEqParamsiii10SND_EQTYPEfff
	jmp _Z11SND_SetEq_fv_20
_Z11SND_SetEq_fv_170:
	mov eax, [eax+edx*4+0x64]
	mov eax, [eax+0x1c]
	jmp _Z11SND_SetEq_fv_190
_Z11SND_SetEq_fv_180:
	jp _Z11SND_SetEq_fv_200
	cvtss2sd xmm0, xmm0
	movsd [esp+0x8], xmm0
	mov dword [esp+0x4], _cstring_invalid_q_f_must
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	jmp _Z11SND_SetEq_fv_20
	nop


;SND_AddVoice(int)
_Z12SND_AddVoicei:
	push ebp
	mov ebp, esp
	mov eax, [ebp+0x8]
	lea eax, [eax+eax*4]
	shl eax, 0x4
	add dword [eax+g_snd+0x4e38], 0x1
	pop ebp
	ret
	nop


;SND_SetEqQ_f()
_Z12SND_SetEqQ_fv:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x34
	mov ebx, cmd_args
	mov eax, [ebx]
	cmp dword [ebx+eax*4+0x44], 0x5
	jz _Z12SND_SetEqQ_fv_10
	mov dword [esp+0x4], _cstring_usage_snd_seteqq
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
_Z12SND_SetEqQ_fv_20:
	add esp, 0x34
	pop ebx
	pop ebp
	ret
_Z12SND_SetEqQ_fv_10:
	lea ecx, [ebp-0x10]
	lea edx, [ebp-0x14]
	lea eax, [ebp-0xc]
	call _Z25SND_ParseChannelAndBand_fPiS_S_
	test al, al
	jz _Z12SND_SetEqQ_fv_20
	mov eax, [ebx]
	cmp dword [ebx+eax*4+0x44], 0x4
	jg _Z12SND_SetEqQ_fv_30
	mov eax, _cstring_null
_Z12SND_SetEqQ_fv_50:
	mov [esp], eax
	call atof
	fstp qword [ebp-0x20]
	cvtsd2ss xmm0, [ebp-0x20]
	ucomiss xmm0, [_float_0_00000000]
	jbe _Z12SND_SetEqQ_fv_40
_Z12SND_SetEqQ_fv_60:
	movss [esp+0xc], xmm0
	mov eax, [ebp-0x10]
	mov [esp+0x8], eax
	mov eax, [ebp-0x14]
	mov [esp+0x4], eax
	mov eax, [ebp-0xc]
	mov [esp], eax
	call _Z10SND_SetEqQiiif
	add esp, 0x34
	pop ebx
	pop ebp
	ret
_Z12SND_SetEqQ_fv_30:
	mov eax, [ebx+eax*4+0x64]
	mov eax, [eax+0x10]
	jmp _Z12SND_SetEqQ_fv_50
_Z12SND_SetEqQ_fv_40:
	jp _Z12SND_SetEqQ_fv_60
	cvtss2sd xmm0, xmm0
	movsd [esp+0x8], xmm0
	mov dword [esp+0x4], _cstring_invalid_q_f_must
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	jmp _Z12SND_SetEqQ_fv_20


;SND_Shutdown()
_Z12SND_Shutdownv:
	push ebp
	mov ebp, esp
	sub esp, 0x18
	call _Z14Voice_Shutdownv
	cmp byte [g_snd], 0x0
	jnz _Z12SND_Shutdownv_10
	leave
	ret
_Z12SND_Shutdownv_10:
	mov dword [esp], 0x0
	call _Z14SND_StopSounds20snd_stopsounds_arg_t
	mov dword [esp], 0x1
	call _Z22Com_UnloadSoundAliases18snd_alias_system_t
	mov dword [esp], 0x0
	call _Z22Com_UnloadSoundAliases18snd_alias_system_t
	call _Z18SND_ShutdownDriverv
	mov dword [esp+0x8], 0x7ef8
	mov dword [esp+0x4], 0x0
	mov dword [esp], g_snd
	call memset
	mov dword [esp], _cstring_snd_setenvironme
	call _Z17Cmd_RemoveCommandPKc
	mov dword [esp], _cstring_snd_deactivateen
	call _Z17Cmd_RemoveCommandPKc
	mov dword [esp], _cstring_snd_playlocal
	call _Z17Cmd_RemoveCommandPKc
	mov dword [esp], _cstring_snd_seteq
	call _Z17Cmd_RemoveCommandPKc
	mov dword [esp], _cstring_snd_seteqfreq
	call _Z17Cmd_RemoveCommandPKc
	mov dword [esp], _cstring_snd_seteqgain
	call _Z17Cmd_RemoveCommandPKc
	mov dword [esp], _cstring_snd_seteqq
	call _Z17Cmd_RemoveCommandPKc
	mov dword [esp], _cstring_snd_seteqtype
	call _Z17Cmd_RemoveCommandPKc
	mov dword [esp], _cstring_snd_deactivateeq
	call _Z17Cmd_RemoveCommandPKc
	leave
	ret
	nop


;DB_LoadSounds()
_Z13DB_LoadSoundsv:
	push ebp
	mov ebp, esp
	push esi
	push ebx
	sub esp, 0x10
	xor esi, esi
	mov ebx, g_snd+0x61f0
_Z13DB_LoadSoundsv_30:
	mov edx, [ebx+0x58]
	test edx, edx
	jz _Z13DB_LoadSoundsv_10
	mov eax, [ebx+0x60]
	mov [esp+0x4], eax
	mov eax, [edx]
	mov [esp], eax
	call _Z22SND_GetAliasWithOffsetPKci
	mov [ebx+0x58], eax
_Z13DB_LoadSoundsv_10:
	mov edx, [ebx+0x5c]
	test edx, edx
	jz _Z13DB_LoadSoundsv_20
	mov eax, [ebx+0x64]
	mov [esp+0x4], eax
	mov eax, [edx]
	mov [esp], eax
	call _Z22SND_GetAliasWithOffsetPKci
	mov [ebx+0x5c], eax
_Z13DB_LoadSoundsv_20:
	add esi, 0x1
	add ebx, 0x8c
	cmp esi, 0x35
	jnz _Z13DB_LoadSoundsv_30
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	ret


;DB_SaveSounds()
_Z13DB_SaveSoundsv:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov dword [ebp-0x1c], 0x0
	mov edi, g_snd+0x61f0
_Z13DB_SaveSoundsv_30:
	mov esi, [edi+0x58]
	test esi, esi
	jz _Z13DB_SaveSoundsv_10
	mov eax, [esi]
	mov [esp+0x4], eax
	mov dword [esp], 0x7
	call _Z19DB_FindXAssetHeader10XAssetTypePKc
	mov ebx, eax
	mov [esp], esi
	call _Z18SND_GetAliasOffsetPK11snd_alias_t
	mov [edi+0x60], eax
	mov [edi+0x58], ebx
_Z13DB_SaveSoundsv_10:
	mov esi, [edi+0x5c]
	test esi, esi
	jz _Z13DB_SaveSoundsv_20
	mov eax, [esi]
	mov [esp+0x4], eax
	mov dword [esp], 0x7
	call _Z19DB_FindXAssetHeader10XAssetTypePKc
	mov ebx, eax
	mov [esp], esi
	call _Z18SND_GetAliasOffsetPK11snd_alias_t
	mov [edi+0x64], eax
	mov [edi+0x5c], ebx
_Z13DB_SaveSoundsv_20:
	add dword [ebp-0x1c], 0x1
	add edi, 0x8c
	cmp dword [ebp-0x1c], 0x35
	jnz _Z13DB_SaveSoundsv_30
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
	nop


;SND_Attenuate(SndCurve*, float, float, float)
_Z13SND_AttenuateP8SndCurvefff:
	push ebp
	mov ebp, esp
	mov eax, [ebp+0x8]
	movss xmm0, dword [ebp+0xc]
	movss xmm2, dword [ebp+0x10]
	movss xmm1, dword [ebp+0x14]
	subss xmm0, xmm2
	fldz
	ucomiss xmm0, [_float_0_00000000]
	jbe _Z13SND_AttenuateP8SndCurvefff_10
_Z13SND_AttenuateP8SndCurvefff_30:
	subss xmm1, xmm2
	divss xmm0, xmm1
	ucomiss xmm0, [_float_1_00000000]
	jb _Z13SND_AttenuateP8SndCurvefff_20
	pop ebp
	ret
_Z13SND_AttenuateP8SndCurvefff_20:
	fstp st0
	movss [ebp+0xc], xmm0
	mov [ebp+0x8], eax
	pop ebp
	jmp _Z30Com_GetVolumeFalloffCurveValueP8SndCurvef
_Z13SND_AttenuateP8SndCurvefff_10:
	jp _Z13SND_AttenuateP8SndCurvefff_30
	fstp st0
	fld1
	pop ebp
	ret
	nop


;SND_StopMusic(int)
_Z13SND_StopMusici:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x14
	mov ebx, [ebp+0x8]
	cmp byte [g_snd], 0x0
	jnz _Z13SND_StopMusici_10
_Z13SND_StopMusici_20:
	add esp, 0x14
	pop ebx
	pop ebp
	ret
_Z13SND_StopMusici_10:
	mov dword [esp], 0x28
	call _Z23SND_IsStreamChannelFreei
	test al, al
	jnz _Z13SND_StopMusici_20
	test ebx, ebx
	jz _Z13SND_StopMusici_30
	movss xmm1, dword [g_snd+0x4c48]
	pxor xmm2, xmm2
	ucomiss xmm1, xmm2
	jbe _Z13SND_StopMusici_20
	xorps xmm1, [_data16_80000000]
	cvtsi2ss xmm0, ebx
	divss xmm1, xmm0
	movss [g_snd+0x4c4c], xmm1
	movss [g_snd+0x4c48], xmm2
	add esp, 0x14
	pop ebx
	pop ebp
	ret
_Z13SND_StopMusici_30:
	mov dword [ebp+0x8], 0x28
	add esp, 0x14
	pop ebx
	pop ebp
	jmp _Z21SND_StopStreamChanneli


;SND_StopSounds(snd_stopsounds_arg_t)
_Z14SND_StopSounds20snd_stopsounds_arg_t:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	cmp byte [g_snd], 0x0
	jz _Z14SND_StopSounds20snd_stopsounds_arg_t_10
	test byte [ebp+0x8], 0x8
	jnz _Z14SND_StopSounds20snd_stopsounds_arg_t_20
	mov eax, [g_snd+0x7eec]
	test eax, eax
	jg _Z14SND_StopSounds20snd_stopsounds_arg_t_30
_Z14SND_StopSounds20snd_stopsounds_arg_t_290:
	mov eax, [g_snd+0x7ef0]
	add eax, 0x8
	cmp eax, 0x8
	jg _Z14SND_StopSounds20snd_stopsounds_arg_t_40
_Z14SND_StopSounds20snd_stopsounds_arg_t_20:
	mov eax, [g_snd+0x7ef4]
	add eax, 0x28
	cmp eax, 0x28
	jg _Z14SND_StopSounds20snd_stopsounds_arg_t_50
_Z14SND_StopSounds20snd_stopsounds_arg_t_220:
	test byte [ebp+0x8], 0x1
	jnz _Z14SND_StopSounds20snd_stopsounds_arg_t_60
	xor edi, edi
	mov dword [ebp-0x1c], g_snd
	lea eax, [edi+0x1]
	mov [ebp-0x20], eax
	shl eax, 0x5
	lea ebx, [eax+g_snd+0x4c78]
	mov byte [ebx+0x1c], 0x0
	cmp ebx, [g_snd+0x4cd8]
	jz _Z14SND_StopSounds20snd_stopsounds_arg_t_70
_Z14SND_StopSounds20snd_stopsounds_arg_t_80:
	add dword [ebp-0x1c], 0x20
	cmp dword [ebp-0x20], 0x2
	jz _Z14SND_StopSounds20snd_stopsounds_arg_t_60
_Z14SND_StopSounds20snd_stopsounds_arg_t_120:
	mov edi, [ebp-0x20]
	lea eax, [edi+0x1]
	mov [ebp-0x20], eax
	shl eax, 0x5
	lea ebx, [eax+g_snd+0x4c78]
	mov byte [ebx+0x1c], 0x0
	cmp ebx, [g_snd+0x4cd8]
	jnz _Z14SND_StopSounds20snd_stopsounds_arg_t_80
_Z14SND_StopSounds20snd_stopsounds_arg_t_70:
	mov edx, edi
	test edi, edi
	js _Z14SND_StopSounds20snd_stopsounds_arg_t_90
	mov eax, [ebp-0x1c]
	cmp byte [eax+0x4c94], 0x0
	jnz _Z14SND_StopSounds20snd_stopsounds_arg_t_90
	mov eax, edi
	shl eax, 0x5
	lea ecx, [eax+g_snd+0x4c58]
	xor esi, esi
	jmp _Z14SND_StopSounds20snd_stopsounds_arg_t_100
_Z14SND_StopSounds20snd_stopsounds_arg_t_110:
	movzx eax, byte [ecx+0x1c]
	add esi, 0x1
	sub ecx, 0x20
	test al, al
	jnz _Z14SND_StopSounds20snd_stopsounds_arg_t_90
_Z14SND_StopSounds20snd_stopsounds_arg_t_100:
	sub edx, 0x1
	cmp esi, edi
	jnz _Z14SND_StopSounds20snd_stopsounds_arg_t_110
_Z14SND_StopSounds20snd_stopsounds_arg_t_90:
	shl edx, 0x5
	add edx, g_snd+0x4c70
	lea eax, [edx+0x8]
	mov [g_snd+0x4cd8], eax
	mov eax, [edx+0x8]
	mov [esp], eax
	call _Z15SND_SetRoomtypei
	mov edx, [ebx+0x4]
	mov eax, [g_snd+0x4cd8]
	mov [eax+0x4], edx
	mov eax, [g_snd+0x4cd8]
	movss xmm0, dword [eax+0x8]
	subss xmm0, [ebx+0x4]
	movss [eax+0xc], xmm0
	mov edx, [ebx+0x10]
	mov eax, [g_snd+0x4cd8]
	mov [eax+0x10], edx
	mov eax, [g_snd+0x4cd8]
	movss xmm0, dword [eax+0x14]
	subss xmm0, [ebx+0x10]
	movss [eax+0x18], xmm0
	add dword [ebp-0x1c], 0x20
	cmp dword [ebp-0x20], 0x2
	jnz _Z14SND_StopSounds20snd_stopsounds_arg_t_120
_Z14SND_StopSounds20snd_stopsounds_arg_t_60:
	test byte [ebp+0x8], 0x10
	jnz _Z14SND_StopSounds20snd_stopsounds_arg_t_130
	xor esi, esi
	mov dword [ebp-0x24], g_snd
	lea ebx, [esi+0x1]
	cmp byte [g_snd], 0x0
	jz _Z14SND_StopSounds20snd_stopsounds_arg_t_140
_Z14SND_StopSounds20snd_stopsounds_arg_t_160:
	lea eax, [ebx+ebx*2]
	mov edx, eax
	shl edx, 0x8
	add eax, edx
	lea edi, [eax+ebx+g_snd+0x4034]
	mov byte [edi+0x300], 0x0
	cmp edi, [g_snd+0x4c44]
	jz _Z14SND_StopSounds20snd_stopsounds_arg_t_150
_Z14SND_StopSounds20snd_stopsounds_arg_t_140:
	add dword [ebp-0x24], 0x304
	cmp ebx, 0x3
	jz _Z14SND_StopSounds20snd_stopsounds_arg_t_130
_Z14SND_StopSounds20snd_stopsounds_arg_t_170:
	mov esi, ebx
	lea ebx, [esi+0x1]
	cmp byte [g_snd], 0x0
	jnz _Z14SND_StopSounds20snd_stopsounds_arg_t_160
	add dword [ebp-0x24], 0x304
	cmp ebx, 0x3
	jnz _Z14SND_StopSounds20snd_stopsounds_arg_t_170
_Z14SND_StopSounds20snd_stopsounds_arg_t_130:
	xor edi, edi
_Z14SND_StopSounds20snd_stopsounds_arg_t_200:
	xor esi, esi
_Z14SND_StopSounds20snd_stopsounds_arg_t_190:
	xor ebx, ebx
_Z14SND_StopSounds20snd_stopsounds_arg_t_180:
	mov [esp+0x8], ebx
	mov [esp+0x4], edi
	mov [esp], esi
	call _Z13SND_DisableEqiii
	add ebx, 0x1
	cmp ebx, 0x3
	jnz _Z14SND_StopSounds20snd_stopsounds_arg_t_180
	add esi, 0x1
	cmp esi, 0x40
	jnz _Z14SND_StopSounds20snd_stopsounds_arg_t_190
	add edi, 0x1
	cmp edi, 0x2
	jnz _Z14SND_StopSounds20snd_stopsounds_arg_t_200
_Z14SND_StopSounds20snd_stopsounds_arg_t_10:
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z14SND_StopSounds20snd_stopsounds_arg_t_50:
	mov edi, [ebp+0x8]
	shr edi, 1
	and edi, 0x1
	mov esi, [ebp+0x8]
	shr esi, 0x2
	and esi, 0x1
	mov ebx, 0x28
	jmp _Z14SND_StopSounds20snd_stopsounds_arg_t_210
_Z14SND_StopSounds20snd_stopsounds_arg_t_230:
	add ebx, 0x1
	mov eax, [g_snd+0x7ef4]
	add eax, 0x28
	cmp eax, ebx
	jle _Z14SND_StopSounds20snd_stopsounds_arg_t_220
_Z14SND_StopSounds20snd_stopsounds_arg_t_210:
	mov [esp], ebx
	call _Z23SND_IsStreamChannelFreei
	test al, al
	jnz _Z14SND_StopSounds20snd_stopsounds_arg_t_230
	test edi, edi
	jz _Z14SND_StopSounds20snd_stopsounds_arg_t_240
	cmp ebx, 0x28
	jz _Z14SND_StopSounds20snd_stopsounds_arg_t_230
_Z14SND_StopSounds20snd_stopsounds_arg_t_240:
	test esi, esi
	jz _Z14SND_StopSounds20snd_stopsounds_arg_t_250
	lea eax, [ebx-0x29]
	cmp eax, 0x3
	jbe _Z14SND_StopSounds20snd_stopsounds_arg_t_230
_Z14SND_StopSounds20snd_stopsounds_arg_t_250:
	mov [esp], ebx
	call _Z21SND_StopStreamChanneli
	jmp _Z14SND_StopSounds20snd_stopsounds_arg_t_230
_Z14SND_StopSounds20snd_stopsounds_arg_t_40:
	mov ebx, 0x8
	jmp _Z14SND_StopSounds20snd_stopsounds_arg_t_260
_Z14SND_StopSounds20snd_stopsounds_arg_t_270:
	add ebx, 0x1
	mov eax, [g_snd+0x7ef0]
	add eax, 0x8
	cmp eax, ebx
	jle _Z14SND_StopSounds20snd_stopsounds_arg_t_20
_Z14SND_StopSounds20snd_stopsounds_arg_t_260:
	mov [esp], ebx
	call _Z19SND_Is3DChannelFreei
	test al, al
	jnz _Z14SND_StopSounds20snd_stopsounds_arg_t_270
	mov [esp], ebx
	call _Z17SND_Stop3DChanneli
	jmp _Z14SND_StopSounds20snd_stopsounds_arg_t_270
_Z14SND_StopSounds20snd_stopsounds_arg_t_30:
	xor ebx, ebx
	jmp _Z14SND_StopSounds20snd_stopsounds_arg_t_280
_Z14SND_StopSounds20snd_stopsounds_arg_t_300:
	add ebx, 0x1
	cmp ebx, [g_snd+0x7eec]
	jge _Z14SND_StopSounds20snd_stopsounds_arg_t_290
_Z14SND_StopSounds20snd_stopsounds_arg_t_280:
	mov [esp], ebx
	call _Z19SND_Is2DChannelFreei
	test al, al
	jnz _Z14SND_StopSounds20snd_stopsounds_arg_t_300
	mov [esp], ebx
	call _Z17SND_Stop2DChanneli
	jmp _Z14SND_StopSounds20snd_stopsounds_arg_t_300
_Z14SND_StopSounds20snd_stopsounds_arg_t_150:
	mov ecx, esi
	test esi, esi
	js _Z14SND_StopSounds20snd_stopsounds_arg_t_310
	mov eax, [ebp-0x24]
	cmp byte [eax+0x4334], 0x0
	jnz _Z14SND_StopSounds20snd_stopsounds_arg_t_310
	lea eax, [esi+esi*2]
	mov edx, eax
	shl edx, 0x8
	add eax, edx
	lea edx, [eax+esi+g_snd+0x3d30]
	mov dword [ebp-0x28], 0x0
_Z14SND_StopSounds20snd_stopsounds_arg_t_320:
	sub ecx, 0x1
	cmp esi, [ebp-0x28]
	jz _Z14SND_StopSounds20snd_stopsounds_arg_t_310
	movzx eax, byte [edx+0x300]
	add dword [ebp-0x28], 0x1
	sub edx, 0x304
	test al, al
	jz _Z14SND_StopSounds20snd_stopsounds_arg_t_320
_Z14SND_StopSounds20snd_stopsounds_arg_t_310:
	lea eax, [ecx+ecx*2]
	mov edx, eax
	shl edx, 0x8
	add eax, edx
	lea eax, [eax+ecx+g_snd+0x4034]
	mov [g_snd+0x4c44], eax
	mov eax, [g_snd+0x61ec]
	test eax, eax
	jle _Z14SND_StopSounds20snd_stopsounds_arg_t_140
	mov ecx, edi
	xor edi, edi
	xor esi, esi
_Z14SND_StopSounds20snd_stopsounds_arg_t_330:
	mov edx, [ecx]
	mov eax, [g_snd+0x4c44]
	mov [esi+eax], edx
	mov eax, esi
	add eax, [g_snd+0x4c44]
	movss xmm0, dword [eax+0x4]
	subss xmm0, [ecx]
	movss [eax+0x8], xmm0
	add edi, 0x1
	add esi, 0xc
	add ecx, 0xc
	cmp edi, [g_snd+0x61ec]
	jl _Z14SND_StopSounds20snd_stopsounds_arg_t_330
	jmp _Z14SND_StopSounds20snd_stopsounds_arg_t_140
	nop


;SND_RemoveVoice(int)
_Z15SND_RemoveVoicei:
	push ebp
	mov ebp, esp
	mov eax, [ebp+0x8]
	lea eax, [eax+eax*4]
	shl eax, 0x4
	sub dword [eax+g_snd+0x4e38], 0x1
	pop ebp
	ret
	nop
	add [eax], al


;SND_SetEqFreq_f()
_Z15SND_SetEqFreq_fv:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x44
	mov ebx, cmd_args
	mov eax, [ebx]
	cmp dword [ebx+eax*4+0x44], 0x5
	jz _Z15SND_SetEqFreq_fv_10
	mov dword [esp+0x4], _cstring_usage_snd_seteqf
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
_Z15SND_SetEqFreq_fv_20:
	add esp, 0x44
	pop ebx
	pop ebp
	ret
_Z15SND_SetEqFreq_fv_10:
	lea ecx, [ebp-0x10]
	lea edx, [ebp-0x14]
	lea eax, [ebp-0xc]
	call _Z25SND_ParseChannelAndBand_fPiS_S_
	test al, al
	jz _Z15SND_SetEqFreq_fv_20
	mov eax, [ebx]
	cmp dword [ebx+eax*4+0x44], 0x4
	jg _Z15SND_SetEqFreq_fv_30
	mov eax, _cstring_null
_Z15SND_SetEqFreq_fv_70:
	mov [esp], eax
	call atof
	fstp qword [ebp-0x20]
	cvtsd2ss xmm0, [ebp-0x20]
	ucomiss xmm0, [_float_0_00000000]
	jp _Z15SND_SetEqFreq_fv_40
	jb _Z15SND_SetEqFreq_fv_50
_Z15SND_SetEqFreq_fv_40:
	ucomiss xmm0, [_float_20000_00000000]
	jbe _Z15SND_SetEqFreq_fv_60
_Z15SND_SetEqFreq_fv_50:
	mov dword [esp+0x10], 0x4e20
	cvtss2sd xmm0, xmm0
	movsd [esp+0x8], xmm0
	mov dword [esp+0x4], _cstring_invalid_freq_f_m1
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	add esp, 0x44
	pop ebx
	pop ebp
	ret
_Z15SND_SetEqFreq_fv_30:
	mov eax, [ebx+eax*4+0x64]
	mov eax, [eax+0x10]
	jmp _Z15SND_SetEqFreq_fv_70
_Z15SND_SetEqFreq_fv_60:
	movss [esp+0xc], xmm0
	mov eax, [ebp-0x10]
	mov [esp+0x8], eax
	mov eax, [ebp-0x14]
	mov [esp+0x4], eax
	mov eax, [ebp-0xc]
	mov [esp], eax
	call _Z13SND_SetEqFreqiiif
	jmp _Z15SND_SetEqFreq_fv_20
	nop


;SND_SetEqGain_f()
_Z15SND_SetEqGain_fv:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x34
	mov ebx, cmd_args
	mov eax, [ebx]
	cmp dword [ebx+eax*4+0x44], 0x5
	jz _Z15SND_SetEqGain_fv_10
	mov dword [esp+0x4], _cstring_usage_snd_seteqg
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
_Z15SND_SetEqGain_fv_20:
	add esp, 0x34
	pop ebx
	pop ebp
	ret
_Z15SND_SetEqGain_fv_10:
	lea ecx, [ebp-0x10]
	lea edx, [ebp-0x14]
	lea eax, [ebp-0xc]
	call _Z25SND_ParseChannelAndBand_fPiS_S_
	test al, al
	jz _Z15SND_SetEqGain_fv_20
	mov eax, [ebx]
	cmp dword [ebx+eax*4+0x44], 0x4
	jg _Z15SND_SetEqGain_fv_30
	mov eax, _cstring_null
_Z15SND_SetEqGain_fv_40:
	mov [esp], eax
	call atof
	fstp qword [ebp-0x20]
	cvtsd2ss xmm0, [ebp-0x20]
	movss [esp+0xc], xmm0
	mov eax, [ebp-0x10]
	mov [esp+0x8], eax
	mov eax, [ebp-0x14]
	mov [esp+0x4], eax
	mov eax, [ebp-0xc]
	mov [esp], eax
	call _Z13SND_SetEqGainiiif
	add esp, 0x34
	pop ebx
	pop ebp
	ret
_Z15SND_SetEqGain_fv_30:
	mov eax, [ebx+eax*4+0x64]
	mov eax, [eax+0x10]
	jmp _Z15SND_SetEqGain_fv_40


;SND_SetEqType_f()
_Z15SND_SetEqType_fv:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov ebx, cmd_args
	mov eax, [ebx]
	cmp dword [ebx+eax*4+0x44], 0x5
	jz _Z15SND_SetEqType_fv_10
	mov dword [esp+0x4], _cstring_usage_snd_seteqt
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
_Z15SND_SetEqType_fv_20:
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z15SND_SetEqType_fv_10:
	lea ecx, [ebp-0x20]
	lea edx, [ebp-0x24]
	lea eax, [ebp-0x1c]
	call _Z25SND_ParseChannelAndBand_fPiS_S_
	test al, al
	jz _Z15SND_SetEqType_fv_20
	mov eax, [ebx]
	cmp dword [ebx+eax*4+0x44], 0x4
	jg _Z15SND_SetEqType_fv_30
	mov edi, _cstring_null
_Z15SND_SetEqType_fv_90:
	mov edx, snd_eqTypeStrings
	mov eax, [edx]
	test eax, eax
	jz _Z15SND_SetEqType_fv_40
	xor esi, esi
	mov ebx, edx
_Z15SND_SetEqType_fv_60:
	mov [esp+0x4], eax
	mov [esp], edi
	call _Z9I_stricmpPKcS0_
	test eax, eax
	jz _Z15SND_SetEqType_fv_50
	add esi, 0x1
	mov eax, [ebx+0x4]
	add ebx, 0x4
	test eax, eax
	jnz _Z15SND_SetEqType_fv_60
_Z15SND_SetEqType_fv_40:
	mov [esp+0x8], edi
	mov dword [esp+0x4], _cstring_invalid_eq_type_
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	mov edx, snd_eqTypeStrings
	mov eax, [edx]
	test eax, eax
	jz _Z15SND_SetEqType_fv_20
	mov ebx, edx
	jmp _Z15SND_SetEqType_fv_70
_Z15SND_SetEqType_fv_80:
	mov eax, [ebx+0x4]
	add ebx, 0x4
	test eax, eax
	jz _Z15SND_SetEqType_fv_20
_Z15SND_SetEqType_fv_70:
	cmp byte [eax], 0x0
	jz _Z15SND_SetEqType_fv_80
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring___s
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	jmp _Z15SND_SetEqType_fv_80
_Z15SND_SetEqType_fv_30:
	mov eax, [ebx+eax*4+0x64]
	mov edi, [eax+0x10]
	jmp _Z15SND_SetEqType_fv_90
_Z15SND_SetEqType_fv_50:
	cmp esi, 0x5
	jz _Z15SND_SetEqType_fv_20
	mov [esp+0xc], esi
	mov eax, [ebp-0x20]
	mov [esp+0x8], eax
	mov eax, [ebp-0x24]
	mov [esp+0x4], eax
	mov eax, [ebp-0x1c]
	mov [esp], eax
	call _Z13SND_SetEqTypeiii10SND_EQTYPE
	jmp _Z15SND_SetEqType_fv_20
	nop


;SND_SetListener(int, int, float const*, float const (*) [3])
_Z15SND_SetListeneriiPKfPA3_S_:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov edx, [ebp+0x8]
	mov eax, [ebp+0xc]
	mov [ebp-0x1c], eax
	mov edi, [ebp+0x10]
	mov eax, [ebp+0x14]
	mov [ebp-0x20], eax
	cmp byte [g_snd], 0x0
	jnz _Z15SND_SetListeneriiPKfPA3_S__10
_Z15SND_SetListeneriiPKfPA3_S__20:
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z15SND_SetListeneriiPKfPA3_S__10:
	lea eax, [edx*8]
	mov esi, edx
	shl esi, 0x6
	sub esi, eax
	lea ebx, [esi+g_snd+0x4d50]
	lea eax, [ebx+0x18]
	mov [esp+0x4], eax
	mov edx, [ebp-0x20]
	mov [esp], edx
	call _Z8AxisCopyPA3_KfPA3_f
	lea edx, [ebx+0xc]
	mov eax, [edi]
	mov [ebx+0xc], eax
	mov eax, [edi+0x4]
	mov [edx+0x4], eax
	mov eax, [edi+0x8]
	mov [edx+0x8], eax
	mov eax, g_snd+0x4d80
	mov edx, [ebp-0x1c]
	mov [esi+eax+0xc], edx
	mov byte [esi+eax+0x10], 0x1
	mov eax, [g_snd+0x4dd4]
	cmp byte [eax+0x34], 0x0
	jz _Z15SND_SetListeneriiPKfPA3_S__20
	add eax, 0xc
	mov [ebp+0xc], eax
	mov eax, [ebp-0x20]
	mov [ebp+0x8], eax
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	jmp _Z8AxisCopyPA3_KfPA3_f


;SND_StopAmbient(int, int, snd_alias_system_t)
_Z15SND_StopAmbientii18snd_alias_system_t:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x14
	mov ebx, [ebp+0xc]
	cmp byte [g_snd], 0x0
	jnz _Z15SND_StopAmbientii18snd_alias_system_t_10
_Z15SND_StopAmbientii18snd_alias_system_t_80:
	add esp, 0x14
	pop ebx
	pop ebp
	ret
_Z15SND_StopAmbientii18snd_alias_system_t_10:
	mov dword [esp], 0x29
	call _Z23SND_IsStreamChannelFreei
	test al, al
	jnz _Z15SND_StopAmbientii18snd_alias_system_t_20
	test ebx, ebx
	jz _Z15SND_StopAmbientii18snd_alias_system_t_30
	movss xmm1, dword [g_snd+0x4c50]
	pxor xmm2, xmm2
	ucomiss xmm1, xmm2
	jbe _Z15SND_StopAmbientii18snd_alias_system_t_20
	xorps xmm1, [_data16_80000000]
	cvtsi2ss xmm0, ebx
	divss xmm1, xmm0
	movss [g_snd+0x4c54], xmm1
	movss [g_snd+0x4c50], xmm2
_Z15SND_StopAmbientii18snd_alias_system_t_20:
	mov dword [esp], 0x2a
	call _Z23SND_IsStreamChannelFreei
	test al, al
	jnz _Z15SND_StopAmbientii18snd_alias_system_t_40
	test ebx, ebx
	jz _Z15SND_StopAmbientii18snd_alias_system_t_50
	movss xmm1, dword [g_snd+0x4c58]
	pxor xmm2, xmm2
	ucomiss xmm1, xmm2
	jbe _Z15SND_StopAmbientii18snd_alias_system_t_40
	xorps xmm1, [_data16_80000000]
	cvtsi2ss xmm0, ebx
	divss xmm1, xmm0
	movss [g_snd+0x4c5c], xmm1
	movss [g_snd+0x4c58], xmm2
_Z15SND_StopAmbientii18snd_alias_system_t_40:
	mov dword [esp], 0x2b
	call _Z23SND_IsStreamChannelFreei
	test al, al
	jnz _Z15SND_StopAmbientii18snd_alias_system_t_60
	test ebx, ebx
	jz _Z15SND_StopAmbientii18snd_alias_system_t_70
	movss xmm1, dword [g_snd+0x4c60]
	pxor xmm2, xmm2
	ucomiss xmm1, xmm2
	jbe _Z15SND_StopAmbientii18snd_alias_system_t_60
	xorps xmm1, [_data16_80000000]
	cvtsi2ss xmm0, ebx
	divss xmm1, xmm0
	movss [g_snd+0x4c64], xmm1
	movss [g_snd+0x4c60], xmm2
_Z15SND_StopAmbientii18snd_alias_system_t_60:
	mov dword [esp], 0x2c
	call _Z23SND_IsStreamChannelFreei
	test al, al
	jnz _Z15SND_StopAmbientii18snd_alias_system_t_80
	test ebx, ebx
	jz _Z15SND_StopAmbientii18snd_alias_system_t_90
	movss xmm1, dword [g_snd+0x4c68]
	pxor xmm2, xmm2
	ucomiss xmm1, xmm2
	jbe _Z15SND_StopAmbientii18snd_alias_system_t_80
	xorps xmm1, [_data16_80000000]
	cvtsi2ss xmm0, ebx
	divss xmm1, xmm0
	movss [g_snd+0x4c6c], xmm1
	movss [g_snd+0x4c68], xmm2
	add esp, 0x14
	pop ebx
	pop ebp
	ret
_Z15SND_StopAmbientii18snd_alias_system_t_50:
	mov dword [esp], 0x2a
	call _Z21SND_StopStreamChanneli
	jmp _Z15SND_StopAmbientii18snd_alias_system_t_40
_Z15SND_StopAmbientii18snd_alias_system_t_30:
	mov dword [esp], 0x29
	call _Z21SND_StopStreamChanneli
	jmp _Z15SND_StopAmbientii18snd_alias_system_t_20
_Z15SND_StopAmbientii18snd_alias_system_t_70:
	mov dword [esp], 0x2b
	call _Z21SND_StopStreamChanneli
	jmp _Z15SND_StopAmbientii18snd_alias_system_t_60
_Z15SND_StopAmbientii18snd_alias_system_t_90:
	mov dword [ebp+0x8], 0x2c
	add esp, 0x14
	pop ebx
	pop ebp
	jmp _Z21SND_StopStreamChanneli
	nop


;SND_ErrorCleanup()
_Z16SND_ErrorCleanupv:
	push ebp
	mov ebp, esp
	mov dword [g_snd+0x401c], 0x0
	pop ebp
	ret
	nop


;SND_HasFreeVoice(int)
_Z16SND_HasFreeVoicei:
	push ebp
	mov ebp, esp
	push esi
	push ebx
	mov esi, [ebp+0x8]
	xor ecx, ecx
	mov edx, g_snd
	mov ebx, g_snd+0x71c
_Z16SND_HasFreeVoicei_20:
	cmp dword [edx+0x77d0], 0x1
	jnz _Z16SND_HasFreeVoicei_10
	lea eax, [ecx+0x1]
	cmp esi, [edx+0x77e4]
	cmovz ecx, eax
_Z16SND_HasFreeVoicei_10:
	add edx, 0x8c
	cmp ebx, edx
	jnz _Z16SND_HasFreeVoicei_20
	lea eax, [esi+esi*4]
	shl eax, 0x4
	add ecx, [eax+g_snd+0x4e38]
	cmp ecx, [eax+g_snd+0x4e34]
	setl al
	movzx eax, al
	pop ebx
	pop esi
	pop ebp
	ret
	nop


;SND_InitFXSounds()
_Z16SND_InitFXSoundsv:
	push ebp
	mov ebp, esp
	mov dword [g_FXPlaySoundCount], 0x0
	pop ebp
	ret
	nop


;SND_PlayFXSounds()
_Z16SND_PlayFXSoundsv:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov eax, [g_FXPlaySoundCount]
	test eax, eax
	jz _Z16SND_PlayFXSoundsv_10
	xor esi, esi
	xor ebx, ebx
	mov edi, g_FXPlaySounds+0x8
_Z16SND_PlayFXSoundsv_30:
	mov ecx, [ebx+g_FXPlaySounds+0x4]
	mov eax, [ebx+g_FXPlaySounds]
	test eax, eax
	jz _Z16SND_PlayFXSoundsv_20
	mov dword [esp+0x14], 0x1
	mov dword [esp+0x10], 0x1
	mov dword [esp+0xc], 0x0
	mov dword [esp+0x8], 0x0
	mov dword [esp+0x4], 0x0
	mov [esp], edi
	movss xmm1, dword [_float_1_00000000]
	pxor xmm0, xmm0
	mov edx, eax
	call _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t
_Z16SND_PlayFXSoundsv_20:
	add esi, 0x1
	add ebx, 0x14
	add edi, 0x14
	cmp [g_FXPlaySoundCount], esi
	ja _Z16SND_PlayFXSoundsv_30
_Z16SND_PlayFXSoundsv_10:
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret


;SND_FadeAllSounds(float, int)
_Z17SND_FadeAllSoundsfi:
	push ebp
	mov ebp, esp
	movss xmm0, dword [ebp+0x8]
	mov eax, [ebp+0xc]
	movss [g_snd+0x402c], xmm0
	movaps xmm1, xmm0
	subss xmm1, [g_snd+0x4028]
	movss [g_snd+0x4030], xmm1
	test eax, eax
	jz _Z17SND_FadeAllSoundsfi_10
	cvtsi2ss xmm0, eax
	divss xmm1, xmm0
	movss [g_snd+0x4030], xmm1
_Z17SND_FadeAllSoundsfi_20:
	pop ebp
	ret
_Z17SND_FadeAllSoundsfi_10:
	ucomiss xmm0, [_float_0_00000000]
	jnz _Z17SND_FadeAllSoundsfi_20
	jp _Z17SND_FadeAllSoundsfi_20
	mov dword [ebp+0x8], 0x0
	pop ebp
	jmp _Z14SND_StopSounds20snd_stopsounds_arg_t


;SND_SaveListeners(snd_listener*)
_Z17SND_SaveListenersP12snd_listener:
	push ebp
	mov ebp, esp
	sub esp, 0x18
	mov dword [esp+0x8], 0x70
	mov dword [esp+0x4], g_snd+0x4d5c
	mov eax, [ebp+0x8]
	mov [esp], eax
	call memcpy
	leave
	ret
	nop


;SND_UpdateReverbs()
_Z17SND_UpdateReverbsv:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x14
	mov eax, [g_snd+0x7ef0]
	add eax, 0x8
	cmp eax, 0x8
	jg _Z17SND_UpdateReverbsv_10
_Z17SND_UpdateReverbsv_50:
	mov eax, [g_snd+0x7eec]
	test eax, eax
	jg _Z17SND_UpdateReverbsv_20
_Z17SND_UpdateReverbsv_110:
	mov eax, [g_snd+0x7ef4]
	add eax, 0x28
	cmp eax, 0x28
	jg _Z17SND_UpdateReverbsv_30
_Z17SND_UpdateReverbsv_80:
	add esp, 0x14
	pop ebx
	pop ebp
	ret
_Z17SND_UpdateReverbsv_10:
	mov ebx, 0x8
	jmp _Z17SND_UpdateReverbsv_40
_Z17SND_UpdateReverbsv_60:
	add ebx, 0x1
	mov eax, [g_snd+0x7ef0]
	add eax, 0x8
	cmp ebx, eax
	jge _Z17SND_UpdateReverbsv_50
_Z17SND_UpdateReverbsv_40:
	mov [esp], ebx
	call _Z19SND_Is3DChannelFreei
	test al, al
	jnz _Z17SND_UpdateReverbsv_60
	mov [esp], ebx
	call _Z25SND_Update3DChannelReverbi
	jmp _Z17SND_UpdateReverbsv_60
_Z17SND_UpdateReverbsv_30:
	mov ebx, 0x28
	jmp _Z17SND_UpdateReverbsv_70
_Z17SND_UpdateReverbsv_90:
	add ebx, 0x1
	mov eax, [g_snd+0x7ef4]
	add eax, 0x28
	cmp ebx, eax
	jge _Z17SND_UpdateReverbsv_80
_Z17SND_UpdateReverbsv_70:
	mov [esp], ebx
	call _Z23SND_IsStreamChannelFreei
	test al, al
	jnz _Z17SND_UpdateReverbsv_90
	mov [esp], ebx
	call _Z29SND_UpdateStreamChannelReverbi
	jmp _Z17SND_UpdateReverbsv_90
_Z17SND_UpdateReverbsv_20:
	xor ebx, ebx
	jmp _Z17SND_UpdateReverbsv_100
_Z17SND_UpdateReverbsv_120:
	add ebx, 0x1
	cmp ebx, [g_snd+0x7eec]
	jge _Z17SND_UpdateReverbsv_110
_Z17SND_UpdateReverbsv_100:
	mov [esp], ebx
	call _Z19SND_Is2DChannelFreei
	test al, al
	jnz _Z17SND_UpdateReverbsv_120
	mov [esp], ebx
	call _Z25SND_Update2DChannelReverbi
	jmp _Z17SND_UpdateReverbsv_120
	nop


;SND_DeactivateEq_f()
_Z18SND_DeactivateEq_fv:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov edx, cmd_args
	mov ecx, [edx]
	mov ebx, [edx+ecx*4+0x44]
	lea eax, [ebx-0x2]
	cmp eax, 0x2
	ja _Z18SND_DeactivateEq_fv_10
	cmp ebx, 0x1
	jle _Z18SND_DeactivateEq_fv_20
	mov eax, [edx+ecx*4+0x64]
	mov eax, [eax+0x4]
_Z18SND_DeactivateEq_fv_140:
	mov [esp], eax
	call atoi
	mov edi, eax
	cmp eax, 0x1
	jbe _Z18SND_DeactivateEq_fv_30
	mov dword [esp+0xc], 0x2
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_invalid_eqindex_
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
_Z18SND_DeactivateEq_fv_60:
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z18SND_DeactivateEq_fv_30:
	cmp ebx, 0x3
	jz _Z18SND_DeactivateEq_fv_40
	cmp ebx, 0x4
	jz _Z18SND_DeactivateEq_fv_50
	cmp ebx, 0x2
	jnz _Z18SND_DeactivateEq_fv_60
	xor esi, esi
_Z18SND_DeactivateEq_fv_80:
	xor ebx, ebx
_Z18SND_DeactivateEq_fv_70:
	mov [esp+0x8], ebx
	mov [esp+0x4], edi
	mov [esp], esi
	call _Z13SND_DisableEqiii
	add ebx, 0x1
	cmp ebx, 0x3
	jnz _Z18SND_DeactivateEq_fv_70
	add esi, 0x1
	cmp esi, 0x40
	jnz _Z18SND_DeactivateEq_fv_80
	jmp _Z18SND_DeactivateEq_fv_60
_Z18SND_DeactivateEq_fv_10:
	mov dword [esp+0x4], _cstring_usage_snd_deacti
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z18SND_DeactivateEq_fv_40:
	mov eax, cmd_args
	mov edx, [eax]
	cmp dword [eax+edx*4+0x44], 0x2
	jg _Z18SND_DeactivateEq_fv_90
	mov esi, _cstring_null
_Z18SND_DeactivateEq_fv_210:
	mov dword [ebp-0x1c], 0x0
_Z18SND_DeactivateEq_fv_130:
	mov eax, [g_snd+0x61ec]
	test eax, eax
	jle _Z18SND_DeactivateEq_fv_100
	xor ebx, ebx
_Z18SND_DeactivateEq_fv_120:
	lea eax, [ebx+ebx*4]
	shl eax, 0x4
	add eax, g_snd+0x4dec
	mov [esp+0x4], eax
	mov [esp], esi
	call _Z9I_stricmpPKcS0_
	test eax, eax
	jz _Z18SND_DeactivateEq_fv_110
	add ebx, 0x1
	cmp [g_snd+0x61ec], ebx
	jg _Z18SND_DeactivateEq_fv_120
_Z18SND_DeactivateEq_fv_100:
	mov [esp+0x8], esi
	mov dword [esp+0x4], _cstring_unknown_channel_
	mov dword [esp], 0x9
	call _Z14Com_PrintErroriPKcz
_Z18SND_DeactivateEq_fv_230:
	add dword [ebp-0x1c], 0x1
	cmp dword [ebp-0x1c], 0x3
	jnz _Z18SND_DeactivateEq_fv_130
	jmp _Z18SND_DeactivateEq_fv_60
_Z18SND_DeactivateEq_fv_20:
	mov eax, _cstring_null
	jmp _Z18SND_DeactivateEq_fv_140
_Z18SND_DeactivateEq_fv_50:
	mov ebx, cmd_args
	mov edx, [ebx]
	mov ecx, [ebx+edx*4+0x44]
	cmp ecx, 0x2
	jg _Z18SND_DeactivateEq_fv_150
	mov dword [ebp-0x20], _cstring_null
_Z18SND_DeactivateEq_fv_220:
	cmp ecx, 0x3
	jg _Z18SND_DeactivateEq_fv_160
	mov eax, _cstring_null
_Z18SND_DeactivateEq_fv_240:
	mov [esp], eax
	call atoi
	mov esi, eax
	cmp eax, 0x2
	ja _Z18SND_DeactivateEq_fv_170
	mov eax, [g_snd+0x61ec]
	test eax, eax
	jle _Z18SND_DeactivateEq_fv_180
	xor ebx, ebx
_Z18SND_DeactivateEq_fv_200:
	lea eax, [ebx+ebx*4]
	shl eax, 0x4
	add eax, g_snd+0x4dec
	mov [esp+0x4], eax
	mov eax, [ebp-0x20]
	mov [esp], eax
	call _Z9I_stricmpPKcS0_
	test eax, eax
	jz _Z18SND_DeactivateEq_fv_190
	add ebx, 0x1
	cmp ebx, [g_snd+0x61ec]
	jl _Z18SND_DeactivateEq_fv_200
_Z18SND_DeactivateEq_fv_180:
	mov eax, [ebp-0x20]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_unknown_channel_
	mov dword [esp], 0x9
	call _Z14Com_PrintErroriPKcz
	jmp _Z18SND_DeactivateEq_fv_60
_Z18SND_DeactivateEq_fv_90:
	mov eax, [eax+edx*4+0x64]
	mov esi, [eax+0x8]
	jmp _Z18SND_DeactivateEq_fv_210
_Z18SND_DeactivateEq_fv_150:
	mov eax, [ebx+edx*4+0x64]
	mov eax, [eax+0x8]
	mov [ebp-0x20], eax
	jmp _Z18SND_DeactivateEq_fv_220
_Z18SND_DeactivateEq_fv_110:
	test ebx, ebx
	js _Z18SND_DeactivateEq_fv_100
	mov eax, [ebp-0x1c]
	mov [esp+0x8], eax
	mov [esp+0x4], edi
	mov [esp], ebx
	call _Z13SND_DisableEqiii
	jmp _Z18SND_DeactivateEq_fv_230
_Z18SND_DeactivateEq_fv_160:
	mov eax, [ebx+edx*4+0x64]
	mov eax, [eax+0xc]
	jmp _Z18SND_DeactivateEq_fv_240
_Z18SND_DeactivateEq_fv_170:
	mov dword [esp+0xc], 0x3
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_invalid_band_i_m
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	jmp _Z18SND_DeactivateEq_fv_60
_Z18SND_DeactivateEq_fv_190:
	test ebx, ebx
	js _Z18SND_DeactivateEq_fv_180
	mov [esp+0x8], esi
	mov [esp+0x4], edi
	mov [esp], ebx
	call _Z13SND_DisableEqiii
	jmp _Z18SND_DeactivateEq_fv_60
	nop


;SND_GetKnownLength(int, int*)
_Z18SND_GetKnownLengthiPi:
	push ebp
	mov ebp, esp
	push ebx
	mov ecx, [ebp+0x8]
	mov ebx, [ebp+0xc]
	mov dword [ebx], 0x0
	lea eax, [ecx+0x1]
	cmp eax, 0x1
	jbe _Z18SND_GetKnownLengthiPi_10
	xor edx, edx
	mov eax, g_snd
	jmp _Z18SND_GetKnownLengthiPi_20
_Z18SND_GetKnownLengthiPi_40:
	add edx, 0x1
	add eax, 0x8c
	cmp edx, 0x35
	jz _Z18SND_GetKnownLengthiPi_30
_Z18SND_GetKnownLengthiPi_20:
	cmp ecx, [eax+0x6218]
	jnz _Z18SND_GetKnownLengthiPi_40
	lea edx, [edx+edx*4]
	lea eax, [edx*8]
	sub eax, edx
	mov eax, [eax*4+g_snd+0x6214]
	test eax, eax
	js _Z18SND_GetKnownLengthiPi_30
	mov [ebx], eax
_Z18SND_GetKnownLengthiPi_10:
	mov eax, 0x1
	pop ebx
	pop ebp
	ret
_Z18SND_GetKnownLengthiPi_30:
	xor eax, eax
	pop ebx
	pop ebp
	ret
	add [eax], al


;SND_PlayMusicAlias(int, snd_alias_t const*, unsigned char, snd_alias_system_t)
_Z18SND_PlayMusicAliasiPK11snd_alias_th18snd_alias_system_t:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov eax, [ebp+0x8]
	mov [ebp-0x1c], eax
	mov ebx, [ebp+0xc]
	mov edi, [ebp+0x14]
	movzx esi, byte [ebp+0x10]
	cmp byte [g_snd], 0x0
	jz _Z18SND_PlayMusicAliasiPK11snd_alias_th18snd_alias_system_t_10
	test ebx, ebx
	jz _Z18SND_PlayMusicAliasiPK11snd_alias_th18snd_alias_system_t_10
	mov dword [esp], 0x28
	call _Z23SND_IsStreamChannelFreei
	test al, al
	jz _Z18SND_PlayMusicAliasiPK11snd_alias_th18snd_alias_system_t_20
	mov [ebp+0x10], edi
	mov edx, esi
	movzx eax, dl
	mov [ebp+0xc], eax
	mov dword [ebp+0x8], 0x0
	pxor xmm0, xmm0
	mov ecx, ebx
	xor edx, edx
	mov eax, [ebp-0x1c]
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	jmp _Z19SND_StartBackgroundiiPK11snd_alias_tifh18snd_alias_system_t
_Z18SND_PlayMusicAliasiPK11snd_alias_th18snd_alias_system_t_20:
	mov eax, [ebx]
	mov [ebp+0x10], eax
	mov dword [ebp+0xc], _cstring_unable_to_play_m
	mov dword [ebp+0x8], 0x9
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	jmp _Z16Com_PrintWarningiPKcz
_Z18SND_PlayMusicAliasiPK11snd_alias_th18snd_alias_system_t_10:
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret


;SND_PlaySoundAlias(snd_alias_t const*, SndEntHandle, float const*, int, snd_alias_system_t)
_Z18SND_PlaySoundAliasPK11snd_alias_t12SndEntHandlePKfi18snd_alias_system_t:
	push ebp
	mov ebp, esp
	sub esp, 0x28
	mov eax, [ebp+0x8]
	test eax, eax
	jz _Z18SND_PlaySoundAliasPK11snd_alias_t12SndEntHandlePKfi18snd_alias_system_t_10
	mov edx, [ebp+0x18]
	mov [esp+0x14], edx
	mov dword [esp+0x10], 0x1
	mov dword [esp+0xc], 0x0
	mov edx, [ebp+0x14]
	mov [esp+0x8], edx
	mov dword [esp+0x4], 0x0
	mov edx, [ebp+0x10]
	mov [esp], edx
	mov ecx, [ebp+0xc]
	movss xmm1, dword [_float_1_00000000]
	pxor xmm0, xmm0
	mov edx, eax
	call _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t
	leave
	ret
_Z18SND_PlaySoundAliasPK11snd_alias_t12SndEntHandlePKfi18snd_alias_system_t_10:
	mov eax, 0xffffffff
	leave
	ret


;SND_AddLengthNotify(int, void*, SndLengthId)
_Z19SND_AddLengthNotifyiPv11SndLengthId:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x1c
	mov ecx, [ebp+0x8]
	mov esi, [ebp+0x10]
	lea eax, [ecx+0x1]
	cmp eax, 0x1
	jbe _Z19SND_AddLengthNotifyiPv11SndLengthId_10
	xor edx, edx
	mov eax, g_snd
	jmp _Z19SND_AddLengthNotifyiPv11SndLengthId_20
_Z19SND_AddLengthNotifyiPv11SndLengthId_40:
	add edx, 0x1
	add eax, 0x8c
	cmp edx, 0x35
	jz _Z19SND_AddLengthNotifyiPv11SndLengthId_30
_Z19SND_AddLengthNotifyiPv11SndLengthId_20:
	cmp ecx, [eax+0x6218]
	jnz _Z19SND_AddLengthNotifyiPv11SndLengthId_40
	lea edx, [edx+edx*4]
	lea eax, [edx*8]
	sub eax, edx
	lea ebx, [eax*4+g_snd+0x61f0]
	mov eax, [ebx+0x24]
	test eax, eax
	js _Z19SND_AddLengthNotifyiPv11SndLengthId_50
	sub esi, 0x1
	jz _Z19SND_AddLengthNotifyiPv11SndLengthId_60
_Z19SND_AddLengthNotifyiPv11SndLengthId_70:
	mov eax, 0x1
_Z19SND_AddLengthNotifyiPv11SndLengthId_80:
	add esp, 0x1c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z19SND_AddLengthNotifyiPv11SndLengthId_10:
	sub esi, 0x1
	jnz _Z19SND_AddLengthNotifyiPv11SndLengthId_70
	mov eax, [ebp+0xc]
	mov [esp+0x4], eax
	mov dword [esp], 0x0
	call _Z26CG_SubtitleSndLengthNotifyiPv
	mov eax, 0x1
	jmp _Z19SND_AddLengthNotifyiPv11SndLengthId_80
_Z19SND_AddLengthNotifyiPv11SndLengthId_30:
	xor eax, eax
	add esp, 0x1c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z19SND_AddLengthNotifyiPv11SndLengthId_60:
	mov edx, [ebp+0xc]
	mov [esp+0x4], edx
	mov [esp], eax
	call _Z26CG_SubtitleSndLengthNotifyiPv
	mov eax, 0x1
	add esp, 0x1c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z19SND_AddLengthNotifyiPv11SndLengthId_50:
	mov eax, [ebx+0x4c]
	test eax, eax
	jg _Z19SND_AddLengthNotifyiPv11SndLengthId_90
	xor edx, edx
_Z19SND_AddLengthNotifyiPv11SndLengthId_130:
	add eax, 0x1
	mov [ebx+0x4c], eax
	mov [ebx+edx*4+0x2c], esi
	mov eax, [ebp+0xc]
	mov [ebx+edx*4+0x3c], eax
	mov eax, 0x1
	add esp, 0x1c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z19SND_AddLengthNotifyiPv11SndLengthId_90:
	mov edx, ebx
	xor ecx, ecx
	jmp _Z19SND_AddLengthNotifyiPv11SndLengthId_100
_Z19SND_AddLengthNotifyiPv11SndLengthId_120:
	add ecx, 0x1
	add edx, 0x4
	cmp eax, ecx
	jz _Z19SND_AddLengthNotifyiPv11SndLengthId_110
_Z19SND_AddLengthNotifyiPv11SndLengthId_100:
	cmp esi, [edx+0x2c]
	jnz _Z19SND_AddLengthNotifyiPv11SndLengthId_120
	mov edi, [ebp+0xc]
	cmp edi, [edx+0x3c]
	jnz _Z19SND_AddLengthNotifyiPv11SndLengthId_120
	jmp _Z19SND_AddLengthNotifyiPv11SndLengthId_70
_Z19SND_AddLengthNotifyiPv11SndLengthId_110:
	mov edx, ecx
	jmp _Z19SND_AddLengthNotifyiPv11SndLengthId_130
	nop


;SND_AddPhysicsSound(snd_alias_list_t*, float const*)
_Z19SND_AddPhysicsSoundP16snd_alias_list_tPKf:
	push ebp
	mov ebp, esp
	push esi
	push ebx
	sub esp, 0x10
	mov esi, [ebp+0x8]
	mov ebx, [ebp+0xc]
	mov dword [esp], 0xd
	call _Z24Sys_EnterCriticalSection15CriticalSection
	mov eax, [g_sndPhysics+0x200]
	cmp eax, 0x1f
	jg _Z19SND_AddPhysicsSoundP16snd_alias_list_tPKf_10
	shl eax, 0x4
	mov [eax+g_sndPhysics], esi
	mov eax, [g_sndPhysics+0x200]
	shl eax, 0x4
	add eax, g_sndPhysics
	lea ecx, [eax+0x4]
	mov edx, [ebx]
	mov [eax+0x4], edx
	mov eax, [ebx+0x4]
	mov [ecx+0x4], eax
	mov eax, [ebx+0x8]
	mov [ecx+0x8], eax
	add dword [g_sndPhysics+0x200], 0x1
_Z19SND_AddPhysicsSoundP16snd_alias_list_tPKf_10:
	mov dword [ebp+0x8], 0xd
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	jmp _Z24Sys_LeaveCriticalSection15CriticalSection
	nop


;SND_GetSoundOverlay(snd_overlay_type_t, snd_overlay_info_t*, int, int*)
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x6c
	mov edx, [ebp+0x8]
	mov ecx, [ebp+0x14]
	cmp byte [g_snd], 0x0
	jz _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_10
	test ecx, ecx
	jz _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_20
	mov eax, [g_snd+0x18]
	mov [ecx], eax
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_20:
	cmp edx, 0x2
	jz _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_30
	cmp edx, 0x3
	jz _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_40
	sub edx, 0x1
	jz _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_50
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_10:
	mov dword [ebp-0x3c], 0x0
	mov eax, [ebp-0x3c]
	add esp, 0x6c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_30:
	mov eax, [g_snd+0x7ef4]
	cmp [ebp+0x10], eax
	mov edx, [ebp+0x10]
	cmovg edx, eax
	mov [ebp-0x3c], edx
	test edx, edx
	jg _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_60
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_70:
	mov eax, edx
	add esp, 0x6c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_50:
	mov eax, [g_snd+0x7ef0]
	cmp [ebp+0x10], eax
	mov edx, [ebp+0x10]
	cmovg edx, eax
	mov [ebp-0x3c], edx
	test edx, edx
	jle _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_70
	mov esi, [ebp+0xc]
	mov dword [ebp-0x4c], 0x0
	mov edi, g_snd
	mov dword [ebp-0x5c], g_snd+0x66c8
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_100:
	mov ebx, [ebp-0x4c]
	add ebx, 0x8
	mov [esp], ebx
	call _Z19SND_Is3DChannelFreei
	test al, al
	jnz _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_80
	cmp dword [edi+0x6650], 0x2
	jz _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_90
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_80:
	mov byte [esi], 0x0
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_330:
	add dword [ebp-0x4c], 0x1
	add dword [ebp-0x5c], 0x8c
	add esi, 0x110
	add edi, 0x8c
	mov edx, [ebp-0x4c]
	cmp [ebp-0x3c], edx
	jnz _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_100
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_130:
	mov eax, [ebp-0x3c]
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_210:
	add esp, 0x6c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_60:
	mov esi, [ebp+0xc]
	mov dword [ebp-0x44], 0x0
	mov edi, g_snd
	mov dword [ebp-0x58], g_snd+0x7848
	mov ebx, [ebp-0x44]
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_140:
	add ebx, 0x28
	mov [esp], ebx
	call _Z23SND_IsStreamChannelFreei
	test al, al
	jnz _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_110
	cmp dword [edi+0x77d0], 0x2
	jz _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_120
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_110:
	mov byte [esi], 0x0
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_170:
	add dword [ebp-0x44], 0x1
	add dword [ebp-0x58], 0x8c
	add esi, 0x110
	add edi, 0x8c
	mov edx, [ebp-0x44]
	cmp [ebp-0x3c], edx
	jz _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_130
	mov ebx, edx
	jmp _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_140
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_120:
	lea eax, [edi+0x7828]
	mov [ebp-0x40], eax
	mov dword [esp+0x8], 0x80
	mov [esp+0x4], esi
	mov eax, [edi+0x7828]
	mov [esp], eax
	call _Z20Com_GetSoundFileNamePK11snd_alias_tPci
	mov eax, [edi+0x7828]
	mov eax, [eax]
	mov [esp+0xc], eax
	mov dword [esp+0x8], _cstring_s
	mov dword [esp+0x4], 0x40
	lea eax, [esi+0x80]
	mov [esp], eax
	call _Z11Com_sprintfPciPKcz
	mov eax, [edi+0x77e4]
	lea eax, [eax+eax*4]
	shl eax, 0x4
	add eax, g_snd+0x4dec
	mov [esp+0xc], eax
	mov dword [esp+0x8], _cstring_s
	mov dword [esp+0x4], 0x40
	lea eax, [esi+0xc0]
	mov [esp], eax
	call _Z11Com_sprintfPciPKcz
	mov [esp], ebx
	call _Z32SND_GetStreamChannelPlaybackRatei
	cvtsi2ss xmm0, eax
	cvtsi2ss xmm1, dword [edi+0x77d8]
	divss xmm0, xmm1
	movss [esi+0x10c], xmm0
	mov eax, [edi+0x7820]
	mov [esi+0x100], eax
	mov [esp], ebx
	call _Z26SND_GetStreamChannelVolumei
	fstp dword [ebp-0x48]
	movss xmm0, dword [ebp-0x48]
	movss [esi+0x104], xmm0
	movss xmm0, dword [g_snd+0x4024]
	ucomiss xmm0, [_float_0_00000000]
	jp _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_150
	jnz _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_150
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_260:
	mov edx, [ebp-0x40]
	mov eax, [edx]
	mov eax, [eax+0x30]
	and eax, 0x3f00
	sar eax, 0x8
	lea eax, [eax+eax*4]
	shl eax, 0x4
	cmp byte [eax+g_snd+0x4e30], 0x0
	jnz _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_160
	mov dword [esi+0x108], 0xffffffff
	jmp _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_170
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_40:
	mov eax, [g_snd+0x7eec]
	cmp [ebp+0x10], eax
	mov edx, [ebp+0x10]
	cmovg edx, eax
	mov [ebp-0x3c], edx
	test edx, edx
	jle _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_70
	mov ebx, [ebp+0xc]
	xor edi, edi
	mov esi, g_snd
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_200:
	mov [esp], edi
	call _Z19SND_Is2DChannelFreei
	test al, al
	jnz _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_180
	cmp dword [esi+0x61f0], 0x2
	jz _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_190
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_180:
	mov byte [ebx], 0x0
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_250:
	add edi, 0x1
	add ebx, 0x110
	add esi, 0x8c
	cmp [ebp-0x3c], edi
	jnz _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_200
	mov eax, [ebp-0x3c]
	jmp _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_210
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_190:
	mov dword [esp+0x8], 0x80
	mov [esp+0x4], ebx
	mov eax, [esi+0x6248]
	mov [esp], eax
	call _Z20Com_GetSoundFileNamePK11snd_alias_tPci
	mov eax, [esi+0x6248]
	mov eax, [eax]
	mov [esp+0xc], eax
	mov dword [esp+0x8], _cstring_s
	mov dword [esp+0x4], 0x40
	lea eax, [ebx+0x80]
	mov [esp], eax
	call _Z11Com_sprintfPciPKcz
	mov eax, [esi+0x6204]
	lea eax, [eax+eax*4]
	shl eax, 0x4
	add eax, g_snd+0x4dec
	mov [esp+0xc], eax
	mov dword [esp+0x8], _cstring_s
	mov dword [esp+0x4], 0x40
	lea eax, [ebx+0xc0]
	mov [esp], eax
	call _Z11Com_sprintfPciPKcz
	mov [esp], edi
	call _Z28SND_Get2DChannelPlaybackRatei
	test eax, eax
	jnz _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_220
	mov eax, [esi+0x61f8]
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_220:
	cvtsi2ss xmm0, eax
	cvtsi2ss xmm1, dword [esi+0x61f8]
	divss xmm0, xmm1
	movss [ebx+0x10c], xmm0
	mov eax, [esi+0x6240]
	mov [ebx+0x100], eax
	mov [esp], edi
	call _Z22SND_Get2DChannelVolumei
	fstp dword [ebp-0x54]
	movss xmm0, dword [ebp-0x54]
	movss [ebx+0x104], xmm0
	movss xmm0, dword [g_snd+0x4024]
	ucomiss xmm0, [_float_0_00000000]
	jp _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_230
	jz _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_240
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_230:
	movss xmm1, dword [ebp-0x54]
	divss xmm1, xmm0
	movss [ebx+0x104], xmm1
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_240:
	mov dword [ebx+0x108], 0xffffffff
	jmp _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_250
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_150:
	movss xmm1, dword [ebp-0x48]
	divss xmm1, xmm0
	movss [esi+0x104], xmm1
	jmp _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_260
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_90:
	mov dword [esp+0x8], 0x80
	mov [esp+0x4], esi
	mov eax, [edi+0x66a8]
	mov [esp], eax
	call _Z20Com_GetSoundFileNamePK11snd_alias_tPci
	mov eax, [edi+0x66a8]
	mov eax, [eax]
	mov [esp+0xc], eax
	mov dword [esp+0x8], _cstring_s
	mov dword [esp+0x4], 0x40
	lea eax, [esi+0x80]
	mov [esp], eax
	call _Z11Com_sprintfPciPKcz
	mov eax, [edi+0x6664]
	lea eax, [eax+eax*4]
	shl eax, 0x4
	add eax, g_snd+0x4dec
	mov [esp+0xc], eax
	mov dword [esp+0x8], _cstring_s
	mov dword [esp+0x4], 0x40
	lea eax, [esi+0xc0]
	mov [esp], eax
	call _Z11Com_sprintfPciPKcz
	mov [esp], ebx
	call _Z28SND_Get3DChannelPlaybackRatei
	test eax, eax
	jnz _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_270
	mov eax, [edi+0x6658]
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_270:
	cvtsi2ss xmm0, eax
	cvtsi2ss xmm1, dword [edi+0x6658]
	divss xmm0, xmm1
	movss [esi+0x10c], xmm0
	mov eax, [edi+0x66a0]
	mov [esi+0x100], eax
	mov [esp], ebx
	call _Z22SND_Get3DChannelVolumei
	fstp dword [ebp-0x50]
	movss xmm0, dword [ebp-0x50]
	movss [esi+0x104], xmm0
	movss xmm0, dword [g_snd+0x4024]
	ucomiss xmm0, [_float_0_00000000]
	jp _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_280
	jz _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_290
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_280:
	movss xmm1, dword [ebp-0x50]
	divss xmm1, xmm0
	movss [esi+0x104], xmm1
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_290:
	mov edx, [edi+0x6660]
	lea eax, [ebp-0x2c]
	mov [esp+0x8], eax
	mov eax, [ebp-0x5c]
	mov [esp+0x4], eax
	mov [esp], edx
	call _Z24SND_GetCurrent3DPosition12SndEntHandlePKfPf
	movss xmm5, dword [ebp-0x2c]
	movss xmm4, dword [ebp-0x28]
	movss xmm3, dword [ebp-0x24]
	xor eax, eax
	mov ecx, g_snd
	mov edx, g_snd+0x4d50
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_310:
	cmp byte [ecx+0x4d90], 0x0
	jnz _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_300
	movss xmm2, dword [_float_3402823466385288598117041]
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_370:
	movss [ebp+eax*4-0x20], xmm2
	add eax, 0x1
	add edx, 0x38
	add ecx, 0x38
	cmp eax, 0x2
	jnz _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_310
	mov eax, [g_snd+0x4dd4]
	cmp byte [eax+0x34], 0x0
	jz _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_320
	mov eax, [g_snd+0x4ddc]
	imul eax, eax
	cvtsi2ss xmm0, eax
	movss xmm2, dword [ebp-0x1c]
	cmpss xmm0, xmm2, 0x5
	andps xmm2, xmm0
	movss xmm1, dword [_float_3402823466385288598117041]
	andnps xmm0, xmm1
	orps xmm0, xmm2
	movss [ebp-0x1c], xmm0
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_320:
	movss xmm0, dword [ebp-0x20]
	xor eax, eax
	ucomiss xmm0, [ebp-0x1c]
	seta al
	lea edx, [eax*8]
	shl eax, 0x6
	sub eax, edx
	add eax, g_snd+0x4d50
	lea edx, [eax+0xc]
	movss xmm0, dword [eax+0xc]
	subss xmm0, xmm5
	movss xmm1, dword [edx+0x4]
	subss xmm1, xmm4
	movss xmm2, dword [edx+0x8]
	subss xmm2, xmm3
	mulss xmm0, xmm0
	mulss xmm1, xmm1
	addss xmm0, xmm1
	mulss xmm2, xmm2
	addss xmm0, xmm2
	sqrtss xmm0, xmm0
	cvttss2si eax, xmm0
	mov [esi+0x108], eax
	jmp _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_330
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_160:
	mov edx, [edi+0x77e0]
	lea eax, [ebp-0x2c]
	mov [esp+0x8], eax
	mov eax, [ebp-0x58]
	mov [esp+0x4], eax
	mov [esp], edx
	call _Z24SND_GetCurrent3DPosition12SndEntHandlePKfPf
	movss xmm5, dword [ebp-0x2c]
	movss xmm4, dword [ebp-0x28]
	movss xmm3, dword [ebp-0x24]
	xor eax, eax
	mov ecx, g_snd
	mov edx, g_snd+0x4d50
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_350:
	cmp byte [ecx+0x4d90], 0x0
	jnz _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_340
	movss xmm2, dword [_float_3402823466385288598117041]
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_380:
	movss [ebp+eax*4-0x20], xmm2
	add eax, 0x1
	add edx, 0x38
	add ecx, 0x38
	cmp eax, 0x2
	jnz _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_350
	mov eax, [g_snd+0x4dd4]
	cmp byte [eax+0x34], 0x0
	jz _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_360
	mov eax, [g_snd+0x4ddc]
	imul eax, eax
	cvtsi2ss xmm0, eax
	movss xmm2, dword [ebp-0x1c]
	cmpss xmm0, xmm2, 0x5
	andps xmm2, xmm0
	movss xmm1, dword [_float_3402823466385288598117041]
	andnps xmm0, xmm1
	orps xmm0, xmm2
	movss [ebp-0x1c], xmm0
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_360:
	movss xmm0, dword [ebp-0x20]
	xor eax, eax
	ucomiss xmm0, [ebp-0x1c]
	seta al
	lea edx, [eax*8]
	shl eax, 0x6
	sub eax, edx
	add eax, g_snd+0x4d50
	lea edx, [eax+0xc]
	movss xmm0, dword [eax+0xc]
	subss xmm0, xmm5
	movss xmm1, dword [edx+0x4]
	subss xmm1, xmm4
	movss xmm2, dword [edx+0x8]
	subss xmm2, xmm3
	mulss xmm0, xmm0
	mulss xmm1, xmm1
	addss xmm0, xmm1
	mulss xmm2, xmm2
	addss xmm0, xmm2
	sqrtss xmm0, xmm0
	cvttss2si eax, xmm0
	mov [esi+0x108], eax
	jmp _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_170
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_300:
	movss xmm2, dword [edx+0xc]
	subss xmm2, xmm5
	movss xmm0, dword [edx+0x10]
	subss xmm0, xmm4
	movss xmm1, dword [edx+0x14]
	subss xmm1, xmm3
	mulss xmm2, xmm2
	mulss xmm0, xmm0
	addss xmm2, xmm0
	mulss xmm1, xmm1
	addss xmm2, xmm1
	jmp _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_370
_Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_340:
	movss xmm2, dword [edx+0xc]
	subss xmm2, xmm5
	movss xmm0, dword [edx+0x10]
	subss xmm0, xmm4
	movss xmm1, dword [edx+0x14]
	subss xmm1, xmm3
	mulss xmm2, xmm2
	mulss xmm0, xmm0
	addss xmm2, xmm0
	mulss xmm1, xmm1
	addss xmm2, xmm1
	jmp _Z19SND_GetSoundOverlay18snd_overlay_type_tP18snd_overlay_info_tiPi_380


;SND_StopSoundsOnEnt(SndEntHandle)
_Z19SND_StopSoundsOnEnt12SndEntHandle:
	push ebp
	mov ebp, esp
	mov eax, [ebp+0x8]
	xor edx, edx
	pop ebp
	jmp _Z21StopSoundAliasesOnEnt12SndEntHandlePKc


;SND_IsAliasChannel3D(int)
_Z20SND_IsAliasChannel3Di:
	push ebp
	mov ebp, esp
	mov eax, [ebp+0x8]
	lea eax, [eax+eax*4]
	shl eax, 0x4
	movzx eax, byte [eax+g_snd+0x4e30]
	pop ebp
	ret
	nop
	add [eax], al


;SND_PlayAmbientAlias(int, snd_alias_t const*, int, snd_alias_system_t)
_Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x5c
	mov ebx, [ebp+0xc]
	cmp byte [g_snd], 0x0
	jz _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_10
	test ebx, ebx
	jz _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_10
	mov esi, [ebx+0x8]
	mov [ebp-0x20], ebx
	mov dword [ebp-0x1c], 0x0
	mov dword [ebp-0x2c], 0x4
	mov eax, [g_snd+0x4c70]
	sub [ebp-0x2c], eax
	test byte [ebx+0x30], 0x20
	jnz _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_20
	pxor xmm0, xmm0
	movss [ebp-0x38], xmm0
_Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_150:
	test esi, esi
	jz _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_30
	mov eax, [ebx+0x8]
	mov [esp], eax
	call _Z18Com_PickSoundAliasPKc
	mov [ebp-0x1c], eax
_Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_30:
	mov byte [ebp-0x31], 0x0
	mov dword [ebp-0x30], 0x0
_Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_120:
	mov eax, [g_snd+0x4c70]
	mov edx, [ebp-0x30]
	lea ebx, [edx+eax+0x28]
	mov edi, [ebp+edx*4-0x20]
	test edi, edi
	jz _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_40
	mov [esp], ebx
	call _Z23SND_IsStreamChannelFreei
	test al, al
	jnz _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_50
	lea eax, [ebx+ebx*4]
	lea edx, [eax*8]
	sub edx, eax
	lea ebx, [edx*4]
	mov ecx, [ebx+g_snd+0x6248]
	mov eax, [ecx]
	cmp eax, [edi]
	jz _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_60
	mov eax, [ecx+0x10]
	cmp eax, [edi+0x10]
	jz _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_70
_Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_50:
	mov eax, [g_snd+0x4c70]
	mov ebx, [ebp-0x30]
_Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_140:
	add ebx, eax
	lea esi, [ebx+0x28]
	mov [esp], esi
	call _Z23SND_IsStreamChannelFreei
	test al, al
	jnz _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_80
	mov eax, [ebp+0x10]
	test eax, eax
	jz _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_90
	mov eax, g_snd+0x4c40
	movss xmm1, dword [ebx*8+g_snd+0x4c48]
	pxor xmm0, xmm0
	ucomiss xmm1, xmm0
	jbe _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_80
	xorps xmm1, [_data16_80000000]
	cvtsi2ss xmm0, dword [ebp+0x10]
	divss xmm1, xmm0
	movss [eax+ebx*8+0xc], xmm1
	mov dword [eax+ebx*8+0x8], 0x0
_Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_80:
	test edi, edi
	jz _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_60
	mov eax, [ebp-0x30]
	test eax, eax
	jz _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_100
	cmp byte [ebp-0x31], 0x0
	jz _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_110
_Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_130:
	mov edx, [ebp-0x30]
	add edx, [ebp-0x2c]
_Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_160:
	mov eax, [ebp+0x14]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x1
	mov eax, [ebp+0x10]
	mov [esp], eax
	movss xmm0, dword [ebp-0x38]
	mov ecx, edi
	mov eax, [ebp+0x8]
	call _Z19SND_StartBackgroundiiPK11snd_alias_tifh18snd_alias_system_t
_Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_60:
	add dword [ebp-0x30], 0x1
	cmp dword [ebp-0x30], 0x2
	jnz _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_120
	cmp byte [ebp-0x31], 0x0
	mov eax, [ebp-0x2c]
	cmovz eax, [g_snd+0x4c70]
	mov [g_snd+0x4c70], eax
_Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_10:
	add esp, 0x5c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_100:
	mov byte [ebp-0x31], 0x1
	jmp _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_130
_Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_40:
	mov ebx, edx
	jmp _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_140
_Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_20:
	call _Z7randomfv
	fstp dword [ebp-0x38]
	jmp _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_150
_Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_110:
	mov edx, [ebp-0x30]
	add edx, [g_snd+0x4c70]
	jmp _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_160
_Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_90:
	mov [esp], esi
	call _Z21SND_StopStreamChanneli
	jmp _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_80
_Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_70:
	mov eax, [ecx+0x30]
	mov [ebp-0x44], eax
	mov esi, [edi+0x30]
	mov edx, eax
	and edx, 0x1
	mov eax, esi
	and eax, 0x1
	cmp edx, eax
	jnz _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_50
	movss xmm0, dword [ecx+0x20]
	ucomiss xmm0, [edi+0x20]
	jnz _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_50
	jp _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_50
	movss xmm0, dword [ecx+0x24]
	ucomiss xmm0, [edi+0x24]
	jnz _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_50
	jp _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_50
	and dword [ebp-0x44], 0x3f00
	and esi, 0x3f00
	cmp esi, [ebp-0x44]
	jnz _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_50
	mov [ebx+g_snd+0x6248], edi
	mov [ebx+g_snd+0x624c], edi
	movss xmm0, dword [edi+0x18]
	movss [ebp-0x40], xmm0
	movss xmm0, dword [edi+0x1c]
	subss xmm0, [ebp-0x40]
	movss [ebp-0x3c], xmm0
	call _Z7randomfv
	fstp dword [ebp-0x4c]
	movss xmm2, dword [ebp-0x4c]
	mulss xmm2, [ebp-0x3c]
	addss xmm2, [ebp-0x40]
	mov eax, [ebp-0x30]
	add eax, [g_snd+0x4c70]
	lea edx, [eax*8+g_snd+0x4c40]
	lea eax, [edx+0x8]
	mov ecx, [ebp+0x10]
	test ecx, ecx
	jz _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_170
	movaps xmm0, xmm2
	subss xmm0, [edx+0x8]
	cvtsi2ss xmm1, dword [ebp+0x10]
	divss xmm0, xmm1
	movss [eax+0x4], xmm0
	movss [eax], xmm2
	jmp _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_60
_Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_170:
	mov dword [eax+0x4], 0x0
	movss [eax], xmm2
	jmp _Z20SND_PlayAmbientAliasiPK11snd_alias_ti18snd_alias_system_t_60
	nop


;SND_ResetChannelInfo(int)
_Z20SND_ResetChannelInfoi:
	push ebp
	mov ebp, esp
	mov edx, [ebp+0x8]
	lea edx, [edx+edx*4]
	lea eax, [edx*8]
	sub eax, edx
	shl eax, 0x2
	mov byte [eax+g_snd+0x6274], 0x0
	mov dword [eax+g_snd+0x6208], 0x0
	mov dword [eax+g_snd+0x61f0], 0x0
	mov dword [eax+g_snd+0x6248], 0x0
	pop ebp
	ret


;SND_RestoreListeners(snd_listener*)
_Z20SND_RestoreListenersP12snd_listener:
	push ebp
	mov ebp, esp
	sub esp, 0x18
	mov dword [esp+0x8], 0x70
	mov eax, [ebp+0x8]
	mov [esp+0x4], eax
	mov dword [esp], g_snd+0x4d5c
	call memcpy
	leave
	ret
	nop


;SND_ShutdownChannels()
_Z20SND_ShutdownChannelsv:
	push ebp
	mov ebp, esp
	sub esp, 0x18
	mov dword [esp], 0x0
	call _Z14SND_StopSounds20snd_stopsounds_arg_t
	mov dword [esp+0x8], 0x1cfc
	mov dword [esp+0x4], 0x0
	mov dword [esp], g_snd+0x61f0
	call memset
	leave
	ret


;SND_AcquirePlaybackId(int, int)
_Z21SND_AcquirePlaybackIdii:
	push ebp
	mov ebp, esp
	mov eax, [ebp+0x8]
	lea eax, [eax+eax*4]
	lea edx, [eax*8]
	sub edx, eax
	lea edx, [edx*4+g_snd+0x61f0]
	mov eax, [edx+0x58]
	test byte [eax+0x30], 0x1
	jz _Z21SND_AcquirePlaybackIdii_10
	mov dword [edx+0x24], 0x0
	mov dword [edx+0x28], 0x0
	mov eax, 0x1
	mov ecx, [g_snd+0x4]
	test ecx, ecx
	cmovg eax, [g_snd+0x4]
	mov [g_snd+0x4], eax
	mov eax, [edx+0x28]
	pop ebp
	ret
_Z21SND_AcquirePlaybackIdii_10:
	mov eax, [ebp+0xc]
	mov [edx+0x24], eax
	mov eax, [g_snd+0x4]
	mov [edx+0x28], eax
	add eax, 0x1
	mov [g_snd+0x4], eax
	mov eax, 0x1
	mov ecx, [g_snd+0x4]
	test ecx, ecx
	cmovg eax, [g_snd+0x4]
	mov [g_snd+0x4], eax
	mov eax, [edx+0x28]
	pop ebp
	ret


;SND_FindFree2DChannel(SndStartAliasInfo*, int)
_Z21SND_FindFree2DChannelP17SndStartAliasInfoi:
	push ebp
	mov ebp, esp
	push esi
	push ebx
	sub esp, 0x10
	mov esi, [ebp+0xc]
	xor ecx, ecx
	mov edx, g_snd
_Z21SND_FindFree2DChannelP17SndStartAliasInfoi_20:
	cmp dword [edx+0x77d0], 0x1
	jnz _Z21SND_FindFree2DChannelP17SndStartAliasInfoi_10
	lea eax, [ecx+0x1]
	cmp esi, [edx+0x77e4]
	cmovz ecx, eax
_Z21SND_FindFree2DChannelP17SndStartAliasInfoi_10:
	add edx, 0x8c
	cmp edx, g_snd+0x71c
	jnz _Z21SND_FindFree2DChannelP17SndStartAliasInfoi_20
	lea eax, [esi+esi*4]
	shl eax, 0x4
	add ecx, [eax+g_snd+0x4e38]
	cmp ecx, [eax+g_snd+0x4e34]
	jge _Z21SND_FindFree2DChannelP17SndStartAliasInfoi_30
	mov eax, [g_snd+0x7eec]
	test eax, eax
	jle _Z21SND_FindFree2DChannelP17SndStartAliasInfoi_40
	xor ebx, ebx
_Z21SND_FindFree2DChannelP17SndStartAliasInfoi_60:
	mov [esp], ebx
	call _Z19SND_Is2DChannelFreei
	test al, al
	jnz _Z21SND_FindFree2DChannelP17SndStartAliasInfoi_50
	add ebx, 0x1
	mov eax, [g_snd+0x7eec]
	cmp eax, ebx
	jg _Z21SND_FindFree2DChannelP17SndStartAliasInfoi_60
_Z21SND_FindFree2DChannelP17SndStartAliasInfoi_40:
	mov [esp], eax
	xor ecx, ecx
	mov edx, esi
	mov eax, [ebp+0x8]
	call _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii
	mov ebx, eax
	test eax, eax
	js _Z21SND_FindFree2DChannelP17SndStartAliasInfoi_50
	mov [esp], eax
	call _Z17SND_Stop2DChanneli
_Z21SND_FindFree2DChannelP17SndStartAliasInfoi_50:
	mov eax, ebx
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	ret
_Z21SND_FindFree2DChannelP17SndStartAliasInfoi_30:
	mov ebx, 0xffffffff
	mov eax, ebx
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	ret


;SND_FindFree3DChannel(SndStartAliasInfo*, int)
_Z21SND_FindFree3DChannelP17SndStartAliasInfoi:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x1c
	mov esi, [ebp+0xc]
	xor ecx, ecx
	mov edx, g_snd
_Z21SND_FindFree3DChannelP17SndStartAliasInfoi_20:
	cmp dword [edx+0x77d0], 0x1
	jnz _Z21SND_FindFree3DChannelP17SndStartAliasInfoi_10
	lea eax, [ecx+0x1]
	cmp esi, [edx+0x77e4]
	cmovz ecx, eax
_Z21SND_FindFree3DChannelP17SndStartAliasInfoi_10:
	add edx, 0x8c
	cmp edx, g_snd+0x71c
	jnz _Z21SND_FindFree3DChannelP17SndStartAliasInfoi_20
	lea eax, [esi+esi*4]
	shl eax, 0x4
	add ecx, [eax+g_snd+0x4e38]
	cmp ecx, [eax+g_snd+0x4e34]
	jge _Z21SND_FindFree3DChannelP17SndStartAliasInfoi_30
	mov eax, [g_snd+0x7ef0]
	test eax, eax
	jle _Z21SND_FindFree3DChannelP17SndStartAliasInfoi_40
	xor ebx, ebx
_Z21SND_FindFree3DChannelP17SndStartAliasInfoi_60:
	lea edi, [ebx+0x8]
	mov [esp], edi
	call _Z19SND_Is3DChannelFreei
	test al, al
	jnz _Z21SND_FindFree3DChannelP17SndStartAliasInfoi_50
	add ebx, 0x1
	mov eax, [g_snd+0x7ef0]
	cmp eax, ebx
	jg _Z21SND_FindFree3DChannelP17SndStartAliasInfoi_60
_Z21SND_FindFree3DChannelP17SndStartAliasInfoi_40:
	mov [esp], eax
	mov ecx, 0x8
	mov edx, esi
	mov eax, [ebp+0x8]
	call _Z26SND_FindReplaceableChannelP17SndStartAliasInfoiii
	mov edi, eax
	test eax, eax
	js _Z21SND_FindFree3DChannelP17SndStartAliasInfoi_50
	mov [esp], eax
	call _Z17SND_Stop3DChanneli
_Z21SND_FindFree3DChannelP17SndStartAliasInfoi_50:
	mov eax, edi
	add esp, 0x1c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z21SND_FindFree3DChannelP17SndStartAliasInfoi_30:
	mov edi, 0xffffffff
	mov eax, edi
	add esp, 0x1c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
	nop


;SND_GetEntChannelName(int)
_Z21SND_GetEntChannelNamei:
	push ebp
	mov ebp, esp
	mov eax, [ebp+0x8]
	lea eax, [eax+eax*4]
	shl eax, 0x4
	add eax, g_snd+0x4dec
	pop ebp
	ret
	nop


;SND_SetChannelVolumes(int, float const*, int)
_Z21SND_SetChannelVolumesiPKfi:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x4
	mov edi, [ebp+0x8]
	mov ecx, [ebp+0x10]
	lea eax, [edi+edi*2]
	mov edx, eax
	shl edx, 0x8
	add eax, edx
	lea eax, [eax+edi+g_snd+0x4034]
	mov [ebp-0x10], eax
	mov byte [eax+0x300], 0x1
	test ecx, ecx
	mov eax, 0x1
	cmovle ecx, eax
	mov eax, [g_snd+0x61ec]
	test eax, eax
	jle _Z21SND_SetChannelVolumesiPKfi_10
	cvtsi2ss xmm2, ecx
	mov edx, [ebp-0x10]
	xor esi, esi
	xor ebx, ebx
	mov ecx, [ebp+0xc]
_Z21SND_SetChannelVolumesiPKfi_20:
	mov eax, [ecx]
	mov [edx+0x4], eax
	mov eax, [g_snd+0x4c44]
	movss xmm1, dword [ebx+eax]
	movss [edx], xmm1
	movss xmm0, dword [ecx]
	subss xmm0, xmm1
	divss xmm0, xmm2
	movss [edx+0x8], xmm0
	add esi, 0x1
	add ecx, 0x4
	add ebx, 0xc
	add edx, 0xc
	cmp [g_snd+0x61ec], esi
	jg _Z21SND_SetChannelVolumesiPKfi_20
_Z21SND_SetChannelVolumesiPKfi_10:
	mov eax, [ebp-0x10]
	cmp eax, [g_snd+0x4c44]
	jz _Z21SND_SetChannelVolumesiPKfi_30
	lea ecx, [edi+0x1]
	cmp ecx, 0x3
	jg _Z21SND_SetChannelVolumesiPKfi_40
	lea eax, [ecx+ecx*2]
	mov edx, eax
	shl edx, 0x8
	add eax, edx
	cmp byte [eax+ecx+g_snd+0x4334], 0x0
	jnz _Z21SND_SetChannelVolumesiPKfi_30
	lea eax, [edi+edi*2]
	mov edx, eax
	shl edx, 0x8
	add eax, edx
	lea edx, [eax+edi+g_snd+0x463c]
	jmp _Z21SND_SetChannelVolumesiPKfi_50
_Z21SND_SetChannelVolumesiPKfi_60:
	movzx eax, byte [edx+0x300]
	add edx, 0x304
	test al, al
	jnz _Z21SND_SetChannelVolumesiPKfi_30
_Z21SND_SetChannelVolumesiPKfi_50:
	add ecx, 0x1
	cmp ecx, 0x4
	jnz _Z21SND_SetChannelVolumesiPKfi_60
_Z21SND_SetChannelVolumesiPKfi_40:
	mov eax, [ebp-0x10]
	mov [g_snd+0x4c44], eax
_Z21SND_SetChannelVolumesiPKfi_30:
	add esp, 0x4
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret


;SND_AnyActiveListeners()
_Z22SND_AnyActiveListenersv:
	push ebp
	mov ebp, esp
	mov eax, g_snd
_Z22SND_AnyActiveListenersv_20:
	cmp byte [eax+0x4d90], 0x0
	jnz _Z22SND_AnyActiveListenersv_10
	add eax, 0x38
	cmp eax, g_snd+0x70
	jnz _Z22SND_AnyActiveListenersv_20
	xor eax, eax
	pop ebp
	ret
_Z22SND_AnyActiveListenersv_10:
	mov eax, 0x1
	pop ebp
	ret


;SND_DisconnectListener(int)
_Z22SND_DisconnectListeneri:
	push ebp
	mov ebp, esp
	push edi
	mov edi, [ebp+0x8]
	lea eax, [edi*8]
	shl edi, 0x6
	sub edi, eax
	add edi, g_snd+0x4d5c
	cld
	mov ecx, 0xe
	xor eax, eax
	rep stosd
	pop edi
	pop ebp
	ret


;SND_GetEntChannelCount()
_Z22SND_GetEntChannelCountv:
	push ebp
	mov ebp, esp
	mov eax, [g_snd+0x61ec]
	pop ebp
	ret
	add [eax], al


;SND_AddPlayFXSoundAlias(snd_alias_t*, SndEntHandle, float const*)
_Z23SND_AddPlayFXSoundAliasP11snd_alias_t12SndEntHandlePKf:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	mov ecx, [ebp+0x8]
	mov edi, [ebp+0xc]
	mov esi, [ebp+0x10]
	mov ebx, [g_FXPlaySoundCount]
	cmp ebx, 0x20
	jz _Z23SND_AddPlayFXSoundAliasP11snd_alias_t12SndEntHandlePKf_10
	lea eax, [ebx+ebx*4]
	shl eax, 0x2
	lea edx, [eax+g_FXPlaySounds]
	mov [eax+g_FXPlaySounds], ecx
	mov [edx+0x4], edi
	lea ecx, [edx+0x8]
	mov eax, [esi]
	mov [edx+0x8], eax
	mov eax, [esi+0x4]
	mov [ecx+0x4], eax
	mov eax, [esi+0x8]
	mov [ecx+0x8], eax
	lea eax, [ebx+0x1]
	mov [g_FXPlaySoundCount], eax
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z23SND_AddPlayFXSoundAliasP11snd_alias_t12SndEntHandlePKf_10:
	mov dword [ebp+0x10], 0x20
	mov dword [ebp+0xc], _cstring_error_too_many_f
	mov dword [ebp+0x8], 0x14
	pop ebx
	pop esi
	pop edi
	pop ebp
	jmp _Z14Com_PrintErroriPKcz


;SND_GetVolumeNormalized()
_Z23SND_GetVolumeNormalizedv:
	push ebp
	mov ebp, esp
	sub esp, 0x4
	movss xmm0, dword [_float_1_33333337]
	mulss xmm0, [g_snd+0x4024]
	movss [ebp-0x4], xmm0
	fld dword [ebp-0x4]
	leave
	ret


;SND_SetChannelStartInfo(int, SndStartAliasInfo*)
_Z23SND_SetChannelStartInfoiP17SndStartAliasInfo:
	push ebp
	mov ebp, esp
	push edi
	push ebx
	sub esp, 0x40
	mov edx, [ebp+0x8]
	mov ebx, [ebp+0xc]
	lea edx, [edx+edx*4]
	lea eax, [edx*8]
	sub eax, edx
	lea edi, [eax*4+g_snd+0x61f0]
	cmp dword [ebx+0xc], 0xffff
	jz _Z23SND_SetChannelStartInfoiP17SndStartAliasInfo_10
	mov eax, [ebx]
	mov eax, [eax+0x30]
	and eax, 0x3f00
	sar eax, 0x8
	lea eax, [eax+eax*4]
	shl eax, 0x4
	cmp byte [eax+g_snd+0x4e30], 0x0
	jnz _Z23SND_SetChannelStartInfoiP17SndStartAliasInfo_20
_Z23SND_SetChannelStartInfoiP17SndStartAliasInfo_10:
	lea edx, [edi+0x78]
	xor eax, eax
	mov [edi+0x78], eax
	mov [edx+0x4], eax
	mov [edx+0x8], eax
_Z23SND_SetChannelStartInfoiP17SndStartAliasInfo_50:
	mov edx, [ebx+0xc]
	mov [edi+0x10], edx
	mov eax, [ebx]
	mov eax, [eax+0x30]
	and eax, 0x3f00
	sar eax, 0x8
	mov [edi+0x14], eax
	mov eax, [ebx+0x1c]
	mov [edi+0x50], eax
	mov eax, [ebx+0x20]
	mov [edi+0x54], eax
	mov eax, [ebx]
	mov [edi+0x58], eax
	mov eax, [ebx+0x4]
	mov [edi+0x5c], eax
	mov eax, [ebx+0x8]
	mov [edi+0x68], eax
	mov eax, [ebx+0x2c]
	mov [edi+0x18], eax
	mov eax, [g_snd+0x4dd0]
	mov [edi+0x20], eax
	cmp byte [g_snd+0x2], 0x0
	jz _Z23SND_SetChannelStartInfoiP17SndStartAliasInfo_30
	mov eax, [ebx]
	mov eax, [eax+0x30]
	and eax, 0x3f00
	sar eax, 0x8
	cmp byte [eax+g_snd+0x4d1c], 0x0
	jz _Z23SND_SetChannelStartInfoiP17SndStartAliasInfo_30
	mov eax, 0x1
	jmp _Z23SND_SetChannelStartInfoiP17SndStartAliasInfo_40
_Z23SND_SetChannelStartInfoiP17SndStartAliasInfo_30:
	xor eax, eax
_Z23SND_SetChannelStartInfoiP17SndStartAliasInfo_40:
	mov [edi+0x84], al
	movzx eax, byte [ebx+0x30]
	mov [edi+0x85], al
	mov eax, [ebx+0x34]
	mov [edi+0x88], eax
	mov eax, [edi+0x18]
	add eax, [g_snd+0x4dcc]
	mov [edi+0x1c], eax
	movzx eax, byte [ebx+0x31]
	mov [edi+0x86], al
	add edi, 0x2c
	cld
	mov ecx, 0x9
	xor eax, eax
	rep stosd
	add esp, 0x40
	pop ebx
	pop edi
	pop ebp
	ret
_Z23SND_SetChannelStartInfoiP17SndStartAliasInfo_20:
	mov edx, [ebx+0xc]
	lea eax, [ebp-0x38]
	mov [esp+0x8], eax
	lea eax, [ebp-0x14]
	mov [esp+0x4], eax
	mov [esp], edx
	call _Z28CG_GetSoundEntityOrientation12SndEntHandlePfPA3_f
	lea eax, [ebx+0x10]
	movss xmm2, dword [ebx+0x10]
	subss xmm2, [ebp-0x14]
	movss xmm3, dword [eax+0x4]
	subss xmm3, [ebp-0x10]
	movss xmm4, dword [eax+0x8]
	subss xmm4, [ebp-0xc]
	movaps xmm0, xmm2
	mulss xmm0, [ebp-0x38]
	movaps xmm1, xmm3
	mulss xmm1, [ebp-0x34]
	addss xmm0, xmm1
	movaps xmm1, xmm4
	mulss xmm1, [ebp-0x30]
	addss xmm0, xmm1
	movss [edi+0x78], xmm0
	movaps xmm0, xmm2
	mulss xmm0, [ebp-0x2c]
	movaps xmm1, xmm3
	mulss xmm1, [ebp-0x28]
	addss xmm0, xmm1
	movaps xmm1, xmm4
	mulss xmm1, [ebp-0x24]
	addss xmm0, xmm1
	movss [edi+0x7c], xmm0
	mulss xmm2, [ebp-0x20]
	mulss xmm3, [ebp-0x1c]
	addss xmm2, xmm3
	mulss xmm4, [ebp-0x18]
	addss xmm2, xmm4
	movss [edi+0x80], xmm2
	jmp _Z23SND_SetChannelStartInfoiP17SndStartAliasInfo_50


;SND_StopSoundAliasOnEnt(SndEntHandle, char const*)
_Z23SND_StopSoundAliasOnEnt12SndEntHandlePKc:
	push ebp
	mov ebp, esp
	mov eax, [ebp+0x8]
	mov edx, [ebp+0xc]
	pop ebp
	jmp _Z21StopSoundAliasesOnEnt12SndEntHandlePKc
	nop


;SND_UpdateLoopingSounds()
_Z23SND_UpdateLoopingSoundsv:
	push ebp
	mov ebp, esp
	push esi
	push ebx
	sub esp, 0x10
	cmp byte [g_snd], 0x0
	jz _Z23SND_UpdateLoopingSoundsv_10
	cmp byte [g_snd+0x2], 0x0
	jnz _Z23SND_UpdateLoopingSoundsv_10
	mov eax, [g_snd+0x7ef0]
	add eax, 0x8
	cmp eax, 0x8
	jg _Z23SND_UpdateLoopingSoundsv_20
	mov edx, [g_snd+0x7eec]
	test edx, edx
	jg _Z23SND_UpdateLoopingSoundsv_30
_Z23SND_UpdateLoopingSoundsv_70:
	mov eax, [g_snd+0x7ef4]
	add eax, 0x28
	cmp eax, 0x28
	jg _Z23SND_UpdateLoopingSoundsv_40
_Z23SND_UpdateLoopingSoundsv_100:
	mov eax, [g_snd+0x4dcc]
	mov [g_snd+0x4dd0], eax
_Z23SND_UpdateLoopingSoundsv_10:
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	ret
_Z23SND_UpdateLoopingSoundsv_20:
	mov ebx, 0x8
	mov esi, g_snd
_Z23SND_UpdateLoopingSoundsv_60:
	mov [esp], ebx
	call _Z19SND_Is3DChannelFreei
	test al, al
	jnz _Z23SND_UpdateLoopingSoundsv_50
	mov eax, [esi+0x66a8]
	test byte [eax+0x30], 0x1
	jz _Z23SND_UpdateLoopingSoundsv_50
	mov eax, [esi+0x6670]
	cmp eax, [g_snd+0x4dd0]
	jz _Z23SND_UpdateLoopingSoundsv_50
	mov [esp], ebx
	call _Z17SND_Stop3DChanneli
_Z23SND_UpdateLoopingSoundsv_50:
	add ebx, 0x1
	add esi, 0x8c
	mov eax, [g_snd+0x7ef0]
	add eax, 0x8
	cmp ebx, eax
	jl _Z23SND_UpdateLoopingSoundsv_60
	mov edx, [g_snd+0x7eec]
	test edx, edx
	jle _Z23SND_UpdateLoopingSoundsv_70
_Z23SND_UpdateLoopingSoundsv_30:
	xor ebx, ebx
	mov esi, g_snd
_Z23SND_UpdateLoopingSoundsv_90:
	mov [esp], ebx
	call _Z19SND_Is2DChannelFreei
	test al, al
	jnz _Z23SND_UpdateLoopingSoundsv_80
	mov eax, [esi+0x6248]
	test byte [eax+0x30], 0x1
	jz _Z23SND_UpdateLoopingSoundsv_80
	mov eax, [esi+0x6210]
	cmp eax, [g_snd+0x4dd0]
	jz _Z23SND_UpdateLoopingSoundsv_80
	mov [esp], ebx
	call _Z17SND_Stop2DChanneli
_Z23SND_UpdateLoopingSoundsv_80:
	add ebx, 0x1
	add esi, 0x8c
	cmp ebx, [g_snd+0x7eec]
	jl _Z23SND_UpdateLoopingSoundsv_90
	mov eax, [g_snd+0x7ef4]
	add eax, 0x28
	cmp eax, 0x28
	jle _Z23SND_UpdateLoopingSoundsv_100
_Z23SND_UpdateLoopingSoundsv_40:
	mov ebx, 0x28
	mov esi, g_snd
_Z23SND_UpdateLoopingSoundsv_120:
	mov [esp], ebx
	call _Z23SND_IsStreamChannelFreei
	test al, al
	jnz _Z23SND_UpdateLoopingSoundsv_110
	mov eax, [esi+0x7828]
	test byte [eax+0x30], 0x1
	jz _Z23SND_UpdateLoopingSoundsv_110
	mov eax, [esi+0x77f0]
	cmp eax, [g_snd+0x4dd0]
	jz _Z23SND_UpdateLoopingSoundsv_110
	mov [esp], ebx
	call _Z21SND_StopStreamChanneli
_Z23SND_UpdateLoopingSoundsv_110:
	add ebx, 0x1
	add esi, 0x8c
	mov eax, [g_snd+0x7ef4]
	add eax, 0x28
	cmp ebx, eax
	jl _Z23SND_UpdateLoopingSoundsv_120
	jmp _Z23SND_UpdateLoopingSoundsv_100
	nop


;SND_GetCurrent3DPosition(SndEntHandle, float const*, float*)
_Z24SND_GetCurrent3DPosition12SndEntHandlePKfPf:
	push ebp
	mov ebp, esp
	push esi
	push ebx
	sub esp, 0x40
	mov ebx, [ebp+0xc]
	mov esi, [ebp+0x10]
	lea eax, [ebp-0x38]
	mov [esp+0x8], eax
	lea eax, [ebp-0x14]
	mov [esp+0x4], eax
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z28CG_GetSoundEntityOrientation12SndEntHandlePfPA3_f
	movss xmm1, dword [ebx]
	movaps xmm0, xmm1
	mulss xmm0, [ebp-0x38]
	addss xmm0, [ebp-0x14]
	movss [ebp-0x14], xmm0
	movaps xmm0, xmm1
	mulss xmm0, [ebp-0x34]
	addss xmm0, [ebp-0x10]
	movss [ebp-0x10], xmm0
	mulss xmm1, [ebp-0x30]
	addss xmm1, [ebp-0xc]
	movss [ebp-0xc], xmm1
	movss xmm1, dword [ebx+0x4]
	movaps xmm0, xmm1
	mulss xmm0, [ebp-0x2c]
	addss xmm0, [ebp-0x14]
	movss [ebp-0x14], xmm0
	movaps xmm0, xmm1
	mulss xmm0, [ebp-0x28]
	addss xmm0, [ebp-0x10]
	movss [ebp-0x10], xmm0
	mulss xmm1, [ebp-0x24]
	addss xmm1, [ebp-0xc]
	movss [ebp-0xc], xmm1
	movss xmm0, dword [ebx+0x8]
	movaps xmm2, xmm0
	mulss xmm2, [ebp-0x20]
	addss xmm2, [ebp-0x14]
	movaps xmm1, xmm0
	mulss xmm1, [ebp-0x1c]
	addss xmm1, [ebp-0x10]
	mulss xmm0, [ebp-0x18]
	addss xmm0, [ebp-0xc]
	movss [esi], xmm2
	movss [esi+0x4], xmm1
	movss [esi+0x8], xmm0
	add esp, 0x40
	pop ebx
	pop esi
	pop ebp
	ret


;SND_SetEnvironmentEffects(int, char const*, float, float, int)
_Z25SND_SetEnvironmentEffectsiPKcffi:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x3c
	mov eax, [ebp+0x8]
	mov [ebp-0x20], eax
	mov edi, [ebp+0xc]
	movss xmm0, dword [ebp+0x10]
	movss [ebp-0x24], xmm0
	movss xmm1, dword [ebp+0x14]
	movss [ebp-0x28], xmm1
	mov eax, [ebp+0x18]
	mov [ebp-0x2c], eax
	cmp byte [g_snd], 0x0
	jz _Z25SND_SetEnvironmentEffectsiPKcffi_10
	mov eax, [ebp-0x20]
	shl eax, 0x5
	lea esi, [eax+g_snd+0x4c78]
	mov byte [esi+0x1c], 0x1
	mov edx, snd_roomStrings
	mov eax, [edx]
	test eax, eax
	jz _Z25SND_SetEnvironmentEffectsiPKcffi_20
	mov dword [ebp-0x1c], 0x0
	mov ebx, edx
_Z25SND_SetEnvironmentEffectsiPKcffi_40:
	mov [esp+0x4], eax
	mov [esp], edi
	call _Z9I_stricmpPKcS0_
	test eax, eax
	jz _Z25SND_SetEnvironmentEffectsiPKcffi_30
	add dword [ebp-0x1c], 0x1
	mov eax, [ebx+0x4]
	add ebx, 0x4
	test eax, eax
	jnz _Z25SND_SetEnvironmentEffectsiPKcffi_40
_Z25SND_SetEnvironmentEffectsiPKcffi_20:
	mov [esp+0x8], edi
	mov dword [esp+0x4], _cstring_invalid_roomtype
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	mov edx, snd_roomStrings
	mov eax, [edx]
	test eax, eax
	jz _Z25SND_SetEnvironmentEffectsiPKcffi_50
	mov ebx, edx
	jmp _Z25SND_SetEnvironmentEffectsiPKcffi_60
_Z25SND_SetEnvironmentEffectsiPKcffi_70:
	mov eax, [ebx+0x4]
	add ebx, 0x4
	test eax, eax
	jz _Z25SND_SetEnvironmentEffectsiPKcffi_50
_Z25SND_SetEnvironmentEffectsiPKcffi_60:
	cmp byte [eax], 0x0
	jz _Z25SND_SetEnvironmentEffectsiPKcffi_70
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring___s
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	mov eax, [ebx+0x4]
	add ebx, 0x4
	test eax, eax
	jnz _Z25SND_SetEnvironmentEffectsiPKcffi_60
_Z25SND_SetEnvironmentEffectsiPKcffi_50:
	mov dword [ebp-0x1c], 0x0
_Z25SND_SetEnvironmentEffectsiPKcffi_30:
	mov eax, [ebp-0x1c]
	mov [esi], eax
	mov ebx, [ebp-0x2c]
	test ebx, ebx
	jle _Z25SND_SetEnvironmentEffectsiPKcffi_80
	cvtsi2ss xmm0, dword [ebp-0x2c]
_Z25SND_SetEnvironmentEffectsiPKcffi_120:
	movss xmm1, dword [ebp-0x24]
	movss [esi+0x8], xmm1
	mov eax, [g_snd+0x4cd8]
	mov eax, [eax+0x4]
	mov [esi+0x4], eax
	mov eax, [g_snd+0x4cd8]
	subss xmm1, [eax+0x4]
	movss [ebp-0x24], xmm1
	divss xmm1, xmm0
	movss [esi+0xc], xmm1
	movss xmm1, dword [ebp-0x28]
	movss [esi+0x14], xmm1
	mov eax, [g_snd+0x4cd8]
	mov eax, [eax+0x10]
	mov [esi+0x10], eax
	mov eax, [g_snd+0x4cd8]
	subss xmm1, [eax+0x10]
	movss [ebp-0x28], xmm1
	divss xmm1, xmm0
	movss [esi+0x18], xmm1
	cmp esi, [g_snd+0x4cd8]
	jz _Z25SND_SetEnvironmentEffectsiPKcffi_90
	mov ecx, [ebp-0x20]
	add ecx, 0x1
	cmp ecx, 0x2
	jg _Z25SND_SetEnvironmentEffectsiPKcffi_100
	mov eax, ecx
	shl eax, 0x5
	cmp byte [eax+g_snd+0x4c94], 0x0
	jnz _Z25SND_SetEnvironmentEffectsiPKcffi_10
	shl dword [ebp-0x20], 0x5
	mov edx, [ebp-0x20]
	add edx, g_snd+0x4cb8
_Z25SND_SetEnvironmentEffectsiPKcffi_110:
	add ecx, 0x1
	cmp ecx, 0x3
	jz _Z25SND_SetEnvironmentEffectsiPKcffi_100
	movzx eax, byte [edx+0x1c]
	add edx, 0x20
	test al, al
	jz _Z25SND_SetEnvironmentEffectsiPKcffi_110
_Z25SND_SetEnvironmentEffectsiPKcffi_10:
	add esp, 0x3c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z25SND_SetEnvironmentEffectsiPKcffi_100:
	mov [g_snd+0x4cd8], esi
_Z25SND_SetEnvironmentEffectsiPKcffi_90:
	mov eax, [ebp-0x1c]
	mov [ebp+0x8], eax
	add esp, 0x3c
	pop ebx
	pop esi
	pop edi
	pop ebp
	jmp _Z15SND_SetRoomtypei
_Z25SND_SetEnvironmentEffectsiPKcffi_80:
	movss xmm0, dword [_float_1_00000000]
	jmp _Z25SND_SetEnvironmentEffectsiPKcffi_120
	nop


;SND_PlaySoundAliasAsMaster(snd_alias_t const*, SndEntHandle, float const*, int, snd_alias_system_t)
_Z26SND_PlaySoundAliasAsMasterPK11snd_alias_t12SndEntHandlePKfi18snd_alias_system_t:
	push ebp
	mov ebp, esp
	sub esp, 0x28
	mov eax, [ebp+0x8]
	test eax, eax
	jz _Z26SND_PlaySoundAliasAsMasterPK11snd_alias_t12SndEntHandlePKfi18snd_alias_system_t_10
	mov edx, [ebp+0x18]
	mov [esp+0x14], edx
	mov dword [esp+0x10], 0x1
	mov dword [esp+0xc], 0x1
	mov edx, [ebp+0x14]
	mov [esp+0x8], edx
	mov dword [esp+0x4], 0x0
	mov edx, [ebp+0x10]
	mov [esp], edx
	mov ecx, [ebp+0xc]
	movss xmm1, dword [_float_1_00000000]
	pxor xmm0, xmm0
	mov edx, eax
	call _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t
	leave
	ret
_Z26SND_PlaySoundAliasAsMasterPK11snd_alias_t12SndEntHandlePKfi18snd_alias_system_t_10:
	mov eax, 0xffffffff
	leave
	ret


;SND_SetPlaybackIdNotPlayed(int)
_Z26SND_SetPlaybackIdNotPlayedi:
	push ebp
	mov ebp, esp
	mov eax, [ebp+0x8]
	lea eax, [eax+eax*4]
	lea edx, [eax*8]
	sub edx, eax
	mov dword [edx*4+g_snd+0x6218], 0xffffffff
	mov eax, 0xffffffff
	pop ebp
	ret


;SND_UpdateBackgroundVolume(int, int)
_Z26SND_UpdateBackgroundVolumeii:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x14
	mov ebx, [ebp+0x8]
	lea ecx, [ebx+0x28]
	movss xmm0, dword [ebx*8+g_snd+0x4c4c]
	lea edx, [ecx+ecx*4]
	lea eax, [edx*8]
	sub eax, edx
	cvtsi2ss xmm1, dword [ebp+0xc]
	mulss xmm1, xmm0
	addss xmm1, [eax*4+g_snd+0x6240]
	pxor xmm2, xmm2
	ucomiss xmm0, xmm2
	jbe _Z26SND_UpdateBackgroundVolumeii_10
	movss xmm0, dword [ebx*8+g_snd+0x4c48]
	ucomiss xmm1, xmm0
	ja _Z26SND_UpdateBackgroundVolumeii_20
_Z26SND_UpdateBackgroundVolumeii_30:
	lea eax, [ecx+ecx*4]
	lea edx, [eax*8]
	sub edx, eax
	shl edx, 0x2
	mov eax, [g_snd+0x4dd0]
	mov [edx+g_snd+0x6210], eax
	movss [edx+g_snd+0x6240], xmm1
	mov eax, 0x1
_Z26SND_UpdateBackgroundVolumeii_50:
	add esp, 0x14
	pop ebx
	pop ebp
	ret
_Z26SND_UpdateBackgroundVolumeii_10:
	movss xmm0, dword [ebx*8+g_snd+0x4c48]
	ucomiss xmm0, xmm1
	jbe _Z26SND_UpdateBackgroundVolumeii_30
	ucomiss xmm0, xmm2
	jz _Z26SND_UpdateBackgroundVolumeii_40
_Z26SND_UpdateBackgroundVolumeii_20:
	movaps xmm1, xmm0
	jmp _Z26SND_UpdateBackgroundVolumeii_30
_Z26SND_UpdateBackgroundVolumeii_40:
	jp _Z26SND_UpdateBackgroundVolumeii_20
	mov [esp], ecx
	call _Z21SND_StopStreamChanneli
	xor eax, eax
	jmp _Z26SND_UpdateBackgroundVolumeii_50


;SND_PlayBlendedSoundAliases(snd_alias_t const*, snd_alias_t const*, float, float, SndEntHandle, float const*, int, snd_alias_system_t)
_Z27SND_PlayBlendedSoundAliasesPK11snd_alias_tS1_ff12SndEntHandlePKfi18snd_alias_system_t:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov ebx, [ebp+0x8]
	mov edi, [ebp+0xc]
	movss xmm0, dword [ebp+0x10]
	movss [ebp-0x1c], xmm0
	movss xmm0, dword [ebp+0x14]
	movss [ebp-0x20], xmm0
	mov eax, [ebp+0x18]
	mov [ebp-0x24], eax
	mov eax, [ebp+0x1c]
	mov [ebp-0x28], eax
	mov eax, [ebp+0x20]
	mov [ebp-0x2c], eax
	mov esi, [ebp+0x24]
	test ebx, ebx
	jnz _Z27SND_PlayBlendedSoundAliasesPK11snd_alias_tS1_ff12SndEntHandlePKfi18snd_alias_system_t_10
_Z27SND_PlayBlendedSoundAliasesPK11snd_alias_tS1_ff12SndEntHandlePKfi18snd_alias_system_t_20:
	mov eax, 0xffffffff
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z27SND_PlayBlendedSoundAliasesPK11snd_alias_tS1_ff12SndEntHandlePKfi18snd_alias_system_t_10:
	test edi, edi
	jz _Z27SND_PlayBlendedSoundAliasesPK11snd_alias_tS1_ff12SndEntHandlePKfi18snd_alias_system_t_20
	mov ecx, 0x1
	mov edx, edi
	mov eax, ebx
	call _Z27SND_ValidateSoundAliasBlendPK11snd_alias_tS1_h
	mov [ebp+0x1c], esi
	mov dword [ebp+0x18], 0x1
	mov dword [ebp+0x14], 0x0
	mov eax, [ebp-0x2c]
	mov [ebp+0x10], eax
	mov dword [ebp+0xc], 0x0
	mov eax, [ebp-0x28]
	mov [ebp+0x8], eax
	mov ecx, [ebp-0x24]
	movss xmm1, dword [ebp-0x20]
	movss xmm0, dword [ebp-0x1c]
	mov edx, edi
	mov eax, ebx
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	jmp _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t


;SND_SetEnvironmentEffects_f()
_Z27SND_SetEnvironmentEffects_fv:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x6c
	mov eax, cmd_args
	mov edx, [eax]
	cmp dword [eax+edx*4+0x44], 0x6
	jz _Z27SND_SetEnvironmentEffects_fv_10
	mov dword [esp+0x4], _cstring_usage_snd_setenv
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
_Z27SND_SetEnvironmentEffects_fv_140:
	add esp, 0x6c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z27SND_SetEnvironmentEffects_fv_10:
	mov eax, [eax+edx*4+0x64]
	mov esi, [eax+0x4]
	mov dword [ebp-0x24], _cstring_none
	mov dword [ebp-0x20], _cstring_level
	mov dword [ebp-0x1c], _cstring_shellshock
	mov edi, 0x1
	lea ebx, [ebp-0x20]
_Z27SND_SetEnvironmentEffects_fv_30:
	mov eax, [ebx]
	mov [esp+0x4], eax
	mov [esp], esi
	call _Z9I_stricmpPKcS0_
	test eax, eax
	jz _Z27SND_SetEnvironmentEffects_fv_20
	add edi, 0x1
	add ebx, 0x4
	cmp edi, 0x3
	jnz _Z27SND_SetEnvironmentEffects_fv_30
	mov [esp+0x8], esi
	mov dword [esp+0x4], _cstring_invalid_priority
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	xor esi, esi
	lea ebx, [ebp-0x20]
_Z27SND_SetEnvironmentEffects_fv_40:
	mov eax, [ebx]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring___s
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	add esi, 0x1
	add ebx, 0x4
	cmp esi, 0x2
	jnz _Z27SND_SetEnvironmentEffects_fv_40
	add esp, 0x6c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z27SND_SetEnvironmentEffects_fv_20:
	mov eax, cmd_args
	mov edx, [eax]
	cmp dword [eax+edx*4+0x44], 0x2
	jg _Z27SND_SetEnvironmentEffects_fv_50
	mov dword [ebp-0x30], _cstring_null
_Z27SND_SetEnvironmentEffects_fv_190:
	mov edx, snd_roomStrings
	mov eax, [edx]
	test eax, eax
	jz _Z27SND_SetEnvironmentEffects_fv_60
	xor esi, esi
	mov ebx, edx
_Z27SND_SetEnvironmentEffects_fv_80:
	mov [esp+0x4], eax
	mov eax, [ebp-0x30]
	mov [esp], eax
	call _Z9I_stricmpPKcS0_
	test eax, eax
	jz _Z27SND_SetEnvironmentEffects_fv_70
	add esi, 0x1
	mov eax, [ebx+0x4]
	add ebx, 0x4
	test eax, eax
	jnz _Z27SND_SetEnvironmentEffects_fv_80
_Z27SND_SetEnvironmentEffects_fv_60:
	mov eax, [ebp-0x30]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_invalid_roomtype
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	mov eax, snd_roomStrings
	mov edx, [eax]
	test edx, edx
	jz _Z27SND_SetEnvironmentEffects_fv_90
	mov ebx, eax
	jmp _Z27SND_SetEnvironmentEffects_fv_100
_Z27SND_SetEnvironmentEffects_fv_120:
	mov edx, [ebx+0x4]
	add ebx, 0x4
	test edx, edx
	jz _Z27SND_SetEnvironmentEffects_fv_110
_Z27SND_SetEnvironmentEffects_fv_100:
	cmp byte [edx], 0x0
	jz _Z27SND_SetEnvironmentEffects_fv_120
	mov [esp+0x8], edx
	mov dword [esp+0x4], _cstring___s
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	jmp _Z27SND_SetEnvironmentEffects_fv_120
_Z27SND_SetEnvironmentEffects_fv_70:
	test esi, esi
	jnz _Z27SND_SetEnvironmentEffects_fv_130
_Z27SND_SetEnvironmentEffects_fv_110:
	mov eax, snd_roomStrings
	mov eax, [eax]
_Z27SND_SetEnvironmentEffects_fv_210:
	mov [esp+0x4], eax
	mov eax, [ebp-0x30]
	mov [esp], eax
	call _Z9I_stricmpPKcS0_
	test eax, eax
	jnz _Z27SND_SetEnvironmentEffects_fv_140
_Z27SND_SetEnvironmentEffects_fv_130:
	mov eax, cmd_args
	mov edx, [eax]
	cmp dword [eax+edx*4+0x44], 0x3
	jg _Z27SND_SetEnvironmentEffects_fv_150
	mov eax, _cstring_null
_Z27SND_SetEnvironmentEffects_fv_200:
	mov [esp], eax
	call atof
	fstp qword [ebp-0x40]
	cvtsd2ss xmm0, [ebp-0x40]
	movss [ebp-0x2c], xmm0
	ucomiss xmm0, [_float_0_00000000]
	jp _Z27SND_SetEnvironmentEffects_fv_160
	jb _Z27SND_SetEnvironmentEffects_fv_170
_Z27SND_SetEnvironmentEffects_fv_160:
	ucomiss xmm0, [_float_1_00000000]
	jbe _Z27SND_SetEnvironmentEffects_fv_180
_Z27SND_SetEnvironmentEffects_fv_170:
	cvtss2sd xmm0, [ebp-0x2c]
	movsd [esp+0x8], xmm0
	mov dword [esp+0x4], _cstring_invalid_drylevel
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	jmp _Z27SND_SetEnvironmentEffects_fv_140
_Z27SND_SetEnvironmentEffects_fv_50:
	mov eax, [eax+edx*4+0x64]
	mov eax, [eax+0x8]
	mov [ebp-0x30], eax
	jmp _Z27SND_SetEnvironmentEffects_fv_190
_Z27SND_SetEnvironmentEffects_fv_150:
	mov eax, [eax+edx*4+0x64]
	mov eax, [eax+0xc]
	jmp _Z27SND_SetEnvironmentEffects_fv_200
_Z27SND_SetEnvironmentEffects_fv_90:
	mov eax, edx
	jmp _Z27SND_SetEnvironmentEffects_fv_210
_Z27SND_SetEnvironmentEffects_fv_180:
	mov eax, cmd_args
	mov edx, [eax]
	cmp dword [eax+edx*4+0x44], 0x4
	jg _Z27SND_SetEnvironmentEffects_fv_220
	mov eax, _cstring_null
_Z27SND_SetEnvironmentEffects_fv_260:
	mov [esp], eax
	call atof
	fstp qword [ebp-0x38]
	cvtsd2ss xmm0, [ebp-0x38]
	ucomiss xmm0, [_float_0_00000000]
	jp _Z27SND_SetEnvironmentEffects_fv_230
	jb _Z27SND_SetEnvironmentEffects_fv_240
_Z27SND_SetEnvironmentEffects_fv_230:
	ucomiss xmm0, [_float_1_00000000]
	jbe _Z27SND_SetEnvironmentEffects_fv_250
_Z27SND_SetEnvironmentEffects_fv_240:
	cvtss2sd xmm0, xmm0
	movsd [esp+0x8], xmm0
	mov dword [esp+0x4], _cstring_invalid_wetlevel
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	jmp _Z27SND_SetEnvironmentEffects_fv_140
_Z27SND_SetEnvironmentEffects_fv_220:
	mov eax, [eax+edx*4+0x64]
	mov eax, [eax+0x10]
	jmp _Z27SND_SetEnvironmentEffects_fv_260
_Z27SND_SetEnvironmentEffects_fv_250:
	mov eax, cmd_args
	mov edx, [eax]
	cmp dword [eax+edx*4+0x44], 0x5
	jg _Z27SND_SetEnvironmentEffects_fv_270
	mov eax, _cstring_null
_Z27SND_SetEnvironmentEffects_fv_290:
	mov [esp], eax
	movss [ebp-0x58], xmm0
	call atoi
	test eax, eax
	movss xmm0, dword [ebp-0x58]
	js _Z27SND_SetEnvironmentEffects_fv_280
	mov [esp+0x10], eax
	movss [esp+0xc], xmm0
	movss xmm0, dword [ebp-0x2c]
	movss [esp+0x8], xmm0
	mov eax, [ebp-0x30]
	mov [esp+0x4], eax
	mov [esp], edi
	call _Z25SND_SetEnvironmentEffectsiPKcffi
	jmp _Z27SND_SetEnvironmentEffects_fv_140
_Z27SND_SetEnvironmentEffects_fv_270:
	mov eax, [eax+edx*4+0x64]
	mov eax, [eax+0x14]
	jmp _Z27SND_SetEnvironmentEffects_fv_290
_Z27SND_SetEnvironmentEffects_fv_280:
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_invalid_fademsec
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	jmp _Z27SND_SetEnvironmentEffects_fv_140


;SND_SetSoundFileChannelInfo(int, int, int, int, int, SndFileLoadingState)
_Z27SND_SetSoundFileChannelInfoiiiii19SndFileLoadingState:
	push ebp
	mov ebp, esp
	push ebx
	mov edx, [ebp+0x8]
	mov ecx, [ebp+0x14]
	mov ebx, g_snd+0x61f0
	lea edx, [edx+edx*4]
	lea eax, [edx*8]
	sub eax, edx
	shl eax, 0x2
	mov edx, [ebp+0x1c]
	mov [eax+g_snd+0x61f0], edx
	mov edx, [ebp+0xc]
	mov [eax+ebx+0x4], edx
	mov edx, [ebp+0x10]
	mov [eax+ebx+0x8], edx
	add ecx, [g_snd+0x4dcc]
	sub ecx, [ebp+0x18]
	mov [eax+ebx+0xc], ecx
	pop ebx
	pop ebp
	ret
	nop


;SND_DeactivateChannelVolumes(int, int)
_Z28SND_DeactivateChannelVolumesii:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	mov ecx, [ebp+0x8]
	cmp byte [g_snd], 0x0
	jz _Z28SND_DeactivateChannelVolumesii_10
	lea eax, [ecx+ecx*2]
	mov edx, eax
	shl edx, 0x8
	add eax, edx
	lea edi, [eax+ecx+g_snd+0x4034]
	mov byte [edi+0x300], 0x0
	cmp edi, [g_snd+0x4c44]
	jz _Z28SND_DeactivateChannelVolumesii_20
_Z28SND_DeactivateChannelVolumesii_10:
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z28SND_DeactivateChannelVolumesii_20:
	mov esi, ecx
	sub esi, 0x1
	js _Z28SND_DeactivateChannelVolumesii_30
	lea eax, [esi+esi*2]
	mov edx, eax
	shl edx, 0x8
	add eax, edx
	cmp byte [eax+esi+g_snd+0x4334], 0x0
	jnz _Z28SND_DeactivateChannelVolumesii_30
	lea eax, [ecx+ecx*2]
	mov edx, eax
	shl edx, 0x8
	add eax, edx
	lea ecx, [eax+ecx+g_snd+0x3a2c]
	mov ebx, esi
	xor edx, edx
_Z28SND_DeactivateChannelVolumesii_50:
	sub ebx, 0x1
	cmp edx, esi
	jz _Z28SND_DeactivateChannelVolumesii_40
	movzx eax, byte [ecx+0x300]
	add edx, 0x1
	sub ecx, 0x304
	test al, al
	jz _Z28SND_DeactivateChannelVolumesii_50
_Z28SND_DeactivateChannelVolumesii_40:
	mov eax, [ebp+0xc]
	test eax, eax
	jle _Z28SND_DeactivateChannelVolumesii_60
_Z28SND_DeactivateChannelVolumesii_80:
	lea eax, [ebx+ebx*2]
	mov edx, eax
	shl edx, 0x8
	add eax, edx
	lea eax, [eax+ebx+g_snd+0x4034]
	mov [g_snd+0x4c44], eax
	mov eax, [g_snd+0x61ec]
	test eax, eax
	jle _Z28SND_DeactivateChannelVolumesii_10
	cvtsi2ss xmm1, dword [ebp+0xc]
	mov ecx, edi
	xor esi, esi
	xor ebx, ebx
_Z28SND_DeactivateChannelVolumesii_70:
	mov edx, [ecx]
	mov eax, [g_snd+0x4c44]
	mov [ebx+eax], edx
	mov eax, ebx
	add eax, [g_snd+0x4c44]
	movss xmm0, dword [eax+0x4]
	subss xmm0, [ecx]
	divss xmm0, xmm1
	movss [eax+0x8], xmm0
	add esi, 0x1
	add ebx, 0xc
	add ecx, 0xc
	cmp esi, [g_snd+0x61ec]
	jl _Z28SND_DeactivateChannelVolumesii_70
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z28SND_DeactivateChannelVolumesii_30:
	mov ebx, esi
	jmp _Z28SND_DeactivateChannelVolumesii_40
_Z28SND_DeactivateChannelVolumesii_60:
	mov dword [ebp+0xc], 0x1
	jmp _Z28SND_DeactivateChannelVolumesii_80


;SND_GetLerpedSlavePercentage(float)
_Z28SND_GetLerpedSlavePercentagef:
	push ebp
	mov ebp, esp
	sub esp, 0x4
	movss xmm0, dword [_float_1_00000000]
	movaps xmm1, xmm0
	subss xmm1, [ebp+0x8]
	mulss xmm1, [g_snd+0x4c74]
	subss xmm0, xmm1
	movss [ebp-0x4], xmm0
	fld dword [ebp-0x4]
	leave
	ret


;SND_PlayLocalSoundAliasByName(int, char const*, snd_alias_system_t)
_Z29SND_PlayLocalSoundAliasByNameiPKc18snd_alias_system_t:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x24
	mov eax, [ebp+0xc]
	test eax, eax
	jnz _Z29SND_PlayLocalSoundAliasByNameiPKc18snd_alias_system_t_10
_Z29SND_PlayLocalSoundAliasByNameiPKc18snd_alias_system_t_20:
	mov eax, 0xffffffff
_Z29SND_PlayLocalSoundAliasByNameiPKc18snd_alias_system_t_30:
	add esp, 0x24
	pop ebx
	pop ebp
	ret
_Z29SND_PlayLocalSoundAliasByNameiPKc18snd_alias_system_t_10:
	mov [esp], eax
	call _Z18Com_PickSoundAliasPKc
	mov ebx, eax
	test eax, eax
	jz _Z29SND_PlayLocalSoundAliasByNameiPKc18snd_alias_system_t_20
	mov eax, [ebp+0x10]
	mov [esp+0x14], eax
	mov dword [esp+0x10], 0x1
	mov dword [esp+0xc], 0x0
	mov dword [esp+0x8], 0x0
	mov dword [esp+0x4], 0x0
	mov eax, [ebp+0x8]
	shl eax, 0x3
	shl dword [ebp+0x8], 0x6
	sub [ebp+0x8], eax
	mov eax, [ebp+0x8]
	add eax, g_snd+0x4d5c
	mov [esp], eax
	xor ecx, ecx
	movss xmm1, dword [_float_1_00000000]
	pxor xmm0, xmm0
	mov edx, ebx
	mov eax, ebx
	call _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t
	jmp _Z29SND_PlayLocalSoundAliasByNameiPKc18snd_alias_system_t_30
	nop


;SND_DeactivateEnvironmentEffects(int, int)
_Z32SND_DeactivateEnvironmentEffectsii:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov edx, [ebp+0x8]
	shl edx, 0x5
	lea edi, [edx+g_snd+0x4c78]
	mov byte [edi+0x1c], 0x0
	cmp edi, [g_snd+0x4cd8]
	jz _Z32SND_DeactivateEnvironmentEffectsii_10
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z32SND_DeactivateEnvironmentEffectsii_10:
	mov esi, [ebp+0x8]
	sub esi, 0x1
	js _Z32SND_DeactivateEnvironmentEffectsii_20
	mov eax, esi
	shl eax, 0x5
	cmp byte [eax+g_snd+0x4c94], 0x0
	jz _Z32SND_DeactivateEnvironmentEffectsii_30
_Z32SND_DeactivateEnvironmentEffectsii_20:
	mov ebx, esi
_Z32SND_DeactivateEnvironmentEffectsii_50:
	mov ecx, [ebp+0xc]
	test ecx, ecx
	jle _Z32SND_DeactivateEnvironmentEffectsii_40
	cvtsi2ss xmm0, dword [ebp+0xc]
	movss [ebp-0x1c], xmm0
_Z32SND_DeactivateEnvironmentEffectsii_70:
	shl ebx, 0x5
	lea edx, [ebx+g_snd+0x4c70]
	lea eax, [edx+0x8]
	mov [g_snd+0x4cd8], eax
	mov eax, [edx+0x8]
	mov [esp], eax
	call _Z15SND_SetRoomtypei
	mov edx, [edi+0x4]
	mov eax, [g_snd+0x4cd8]
	mov [eax+0x4], edx
	mov eax, [g_snd+0x4cd8]
	movss xmm0, dword [eax+0x8]
	subss xmm0, [edi+0x4]
	divss xmm0, dword [ebp-0x1c]
	movss [eax+0xc], xmm0
	mov edx, [edi+0x10]
	mov eax, [g_snd+0x4cd8]
	mov [eax+0x10], edx
	mov eax, [g_snd+0x4cd8]
	movss xmm0, dword [eax+0x14]
	subss xmm0, [edi+0x10]
	divss xmm0, dword [ebp-0x1c]
	movss [eax+0x18], xmm0
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z32SND_DeactivateEnvironmentEffectsii_30:
	add edx, g_snd+0x4c38
	mov ebx, esi
	xor ecx, ecx
_Z32SND_DeactivateEnvironmentEffectsii_60:
	sub ebx, 0x1
	cmp ecx, esi
	jz _Z32SND_DeactivateEnvironmentEffectsii_50
	movzx eax, byte [edx+0x1c]
	add ecx, 0x1
	sub edx, 0x20
	test al, al
	jz _Z32SND_DeactivateEnvironmentEffectsii_60
	jmp _Z32SND_DeactivateEnvironmentEffectsii_50
_Z32SND_DeactivateEnvironmentEffectsii_40:
	movss xmm0, dword [_float_1_00000000]
	movss [ebp-0x1c], xmm0
	jmp _Z32SND_DeactivateEnvironmentEffectsii_70


;SND_StopChannelAndPlayChainAlias(int)
_Z32SND_StopChannelAndPlayChainAliasi:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x4c
	mov esi, [ebp+0x8]
	lea eax, [esi+esi*4]
	lea edx, [eax*8]
	sub edx, eax
	lea ebx, [edx*4+g_snd+0x61f0]
	mov eax, [ebx+0x58]
	mov eax, [eax+0xc]
	test eax, eax
	jz _Z32SND_StopChannelAndPlayChainAliasi_10
	mov eax, [ebx+0x10]
	mov [ebp-0x2c], eax
	lea eax, [ebp-0x24]
	mov [esp+0x8], eax
	lea eax, [ebx+0x78]
	mov [esp+0x4], eax
	mov eax, [ebp-0x2c]
	mov [esp], eax
	call _Z24SND_GetCurrent3DPosition12SndEntHandlePKfPf
	mov eax, [ebx+0x58]
	mov eax, [eax+0xc]
	mov [esp], eax
	call _Z18Com_PickSoundAliasPKc
	mov edi, eax
	cmp eax, [ebx+0x58]
	jz _Z32SND_StopChannelAndPlayChainAliasi_20
	cmp esi, 0x27
	jg _Z32SND_StopChannelAndPlayChainAliasi_30
	cmp esi, 0x7
	jle _Z32SND_StopChannelAndPlayChainAliasi_40
	mov [esp], esi
	call _Z17SND_Stop3DChanneli
_Z32SND_StopChannelAndPlayChainAliasi_80:
	test edi, edi
	jz _Z32SND_StopChannelAndPlayChainAliasi_50
	mov dword [esp+0x14], 0x1
	mov dword [esp+0x10], 0x1
	mov dword [esp+0xc], 0x0
	mov dword [esp+0x8], 0x0
	mov dword [esp+0x4], 0x0
	lea eax, [ebp-0x24]
	mov [esp], eax
	mov ecx, [ebp-0x2c]
	movss xmm1, dword [_float_1_00000000]
	pxor xmm0, xmm0
	mov edx, edi
	mov eax, edi
	call _Z27SND_PlaySoundAlias_InternalPK11snd_alias_tS1_ff12SndEntHandlePKfPiihh18snd_alias_system_t
_Z32SND_StopChannelAndPlayChainAliasi_50:
	add esp, 0x4c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z32SND_StopChannelAndPlayChainAliasi_20:
	mov eax, [eax+0xc]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_soundalias_s_is_
	mov dword [esp], 0x9
	call _Z14Com_PrintErroriPKcz
_Z32SND_StopChannelAndPlayChainAliasi_10:
	cmp esi, 0x27
	jg _Z32SND_StopChannelAndPlayChainAliasi_60
	cmp esi, 0x7
	jg _Z32SND_StopChannelAndPlayChainAliasi_70
	mov [esp], esi
	call _Z17SND_Stop2DChanneli
	add esp, 0x4c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z32SND_StopChannelAndPlayChainAliasi_40:
	mov [esp], esi
	call _Z17SND_Stop2DChanneli
	jmp _Z32SND_StopChannelAndPlayChainAliasi_80
_Z32SND_StopChannelAndPlayChainAliasi_30:
	mov [esp], esi
	call _Z21SND_StopStreamChanneli
	jmp _Z32SND_StopChannelAndPlayChainAliasi_80
_Z32SND_StopChannelAndPlayChainAliasi_70:
	mov [esp], esi
	call _Z17SND_Stop3DChanneli
	add esp, 0x4c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z32SND_StopChannelAndPlayChainAliasi_60:
	mov [esp], esi
	call _Z21SND_StopStreamChanneli
	add esp, 0x4c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret


;SND_DeactivateEnvironmentEffects_f()
_Z34SND_DeactivateEnvironmentEffects_fv:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x3c
	mov eax, cmd_args
	mov edx, [eax]
	cmp dword [eax+edx*4+0x44], 0x3
	jz _Z34SND_DeactivateEnvironmentEffects_fv_10
	mov dword [esp+0x4], _cstring_usage_snd_deacti1
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
_Z34SND_DeactivateEnvironmentEffects_fv_70:
	add esp, 0x3c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z34SND_DeactivateEnvironmentEffects_fv_10:
	mov eax, [eax+edx*4+0x64]
	mov edi, [eax+0x4]
	mov dword [ebp-0x24], _cstring_none
	mov dword [ebp-0x20], _cstring_level
	mov dword [ebp-0x1c], _cstring_shellshock
	mov esi, 0x1
	lea ebx, [ebp-0x20]
_Z34SND_DeactivateEnvironmentEffects_fv_30:
	mov eax, [ebx]
	mov [esp+0x4], eax
	mov [esp], edi
	call _Z9I_stricmpPKcS0_
	test eax, eax
	jz _Z34SND_DeactivateEnvironmentEffects_fv_20
	add esi, 0x1
	add ebx, 0x4
	cmp esi, 0x3
	jnz _Z34SND_DeactivateEnvironmentEffects_fv_30
	mov [esp+0x8], edi
	mov dword [esp+0x4], _cstring_invalid_priority
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	xor si, si
	lea ebx, [ebp-0x20]
_Z34SND_DeactivateEnvironmentEffects_fv_40:
	mov eax, [ebx]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring___s
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	add esi, 0x1
	add ebx, 0x4
	cmp esi, 0x2
	jnz _Z34SND_DeactivateEnvironmentEffects_fv_40
	add esp, 0x3c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z34SND_DeactivateEnvironmentEffects_fv_20:
	mov ebx, esi
	mov eax, cmd_args
	mov edx, [eax]
	cmp dword [eax+edx*4+0x44], 0x2
	jg _Z34SND_DeactivateEnvironmentEffects_fv_50
	mov eax, _cstring_null
_Z34SND_DeactivateEnvironmentEffects_fv_120:
	mov [esp], eax
	call atoi
	mov edi, eax
	test eax, eax
	js _Z34SND_DeactivateEnvironmentEffects_fv_60
	mov edx, ebx
	shl edx, 0x5
	lea eax, [edx+g_snd+0x4c78]
	mov [ebp-0x30], eax
	mov byte [eax+0x1c], 0x0
	cmp eax, [g_snd+0x4cd8]
	jnz _Z34SND_DeactivateEnvironmentEffects_fv_70
	mov esi, ebx
	sub esi, 0x1
	js _Z34SND_DeactivateEnvironmentEffects_fv_80
	mov eax, esi
	shl eax, 0x5
	cmp byte [eax+g_snd+0x4c94], 0x0
	jnz _Z34SND_DeactivateEnvironmentEffects_fv_80
	lea ebx, [edx+g_snd+0x4c38]
	mov edx, esi
	xor ecx, ecx
_Z34SND_DeactivateEnvironmentEffects_fv_100:
	sub edx, 0x1
	cmp ecx, esi
	jz _Z34SND_DeactivateEnvironmentEffects_fv_90
	movzx eax, byte [ebx+0x1c]
	add ecx, 0x1
	sub ebx, 0x20
	test al, al
	jz _Z34SND_DeactivateEnvironmentEffects_fv_100
_Z34SND_DeactivateEnvironmentEffects_fv_90:
	test edi, edi
	jz _Z34SND_DeactivateEnvironmentEffects_fv_110
	cvtsi2ss xmm0, edi
	movss [ebp-0x2c], xmm0
_Z34SND_DeactivateEnvironmentEffects_fv_130:
	shl edx, 0x5
	add edx, g_snd+0x4c70
	lea eax, [edx+0x8]
	mov [g_snd+0x4cd8], eax
	mov eax, [edx+0x8]
	mov [esp], eax
	call _Z15SND_SetRoomtypei
	mov eax, [ebp-0x30]
	mov edx, [eax+0x4]
	mov eax, [g_snd+0x4cd8]
	mov [eax+0x4], edx
	mov eax, [g_snd+0x4cd8]
	movss xmm0, dword [eax+0x8]
	mov edx, [ebp-0x30]
	subss xmm0, [edx+0x4]
	divss xmm0, dword [ebp-0x2c]
	movss [eax+0xc], xmm0
	mov eax, [ebp-0x30]
	mov edx, [eax+0x10]
	mov eax, [g_snd+0x4cd8]
	mov [eax+0x10], edx
	mov eax, [g_snd+0x4cd8]
	movss xmm0, dword [eax+0x14]
	mov edx, [ebp-0x30]
	subss xmm0, [edx+0x10]
	divss xmm0, dword [ebp-0x2c]
	movss [eax+0x18], xmm0
	jmp _Z34SND_DeactivateEnvironmentEffects_fv_70
_Z34SND_DeactivateEnvironmentEffects_fv_50:
	mov eax, [eax+edx*4+0x64]
	mov eax, [eax+0x8]
	jmp _Z34SND_DeactivateEnvironmentEffects_fv_120
_Z34SND_DeactivateEnvironmentEffects_fv_80:
	mov edx, esi
	jmp _Z34SND_DeactivateEnvironmentEffects_fv_90
_Z34SND_DeactivateEnvironmentEffects_fv_110:
	movss xmm0, dword [_float_1_00000000]
	movss [ebp-0x2c], xmm0
	jmp _Z34SND_DeactivateEnvironmentEffects_fv_130
_Z34SND_DeactivateEnvironmentEffects_fv_60:
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_invalid_fademsec
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	jmp _Z34SND_DeactivateEnvironmentEffects_fv_70


;SND_GetListenerIndexNearestToOrigin(float const*)
_Z35SND_GetListenerIndexNearestToOriginPKf:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x14
	mov ebx, [ebp+0x8]
	xor edx, edx
	mov ecx, g_snd
	movss xmm3, dword [_float_3402823466385288598117041]
	mov eax, g_snd+0x4d50
_Z35SND_GetListenerIndexNearestToOriginPKf_20:
	cmp byte [ecx+0x4d90], 0x0
	jnz _Z35SND_GetListenerIndexNearestToOriginPKf_10
	movaps xmm2, xmm3
_Z35SND_GetListenerIndexNearestToOriginPKf_40:
	movss [ebp+edx*4-0x10], xmm2
	add edx, 0x1
	add eax, 0x38
	add ecx, 0x38
	cmp edx, 0x2
	jnz _Z35SND_GetListenerIndexNearestToOriginPKf_20
	mov eax, [g_snd+0x4dd4]
	cmp byte [eax+0x34], 0x0
	jz _Z35SND_GetListenerIndexNearestToOriginPKf_30
	mov eax, [g_snd+0x4ddc]
	imul eax, eax
	cvtsi2ss xmm0, eax
	movss xmm2, dword [ebp-0xc]
	cmpss xmm0, xmm2, 0x5
	andps xmm2, xmm0
	movss xmm1, dword [_float_3402823466385288598117041]
	andnps xmm0, xmm1
	orps xmm0, xmm2
	movss [ebp-0xc], xmm0
_Z35SND_GetListenerIndexNearestToOriginPKf_30:
	movss xmm0, dword [ebp-0x10]
	xor eax, eax
	ucomiss xmm0, [ebp-0xc]
	seta al
	add esp, 0x14
	pop ebx
	pop ebp
	ret
_Z35SND_GetListenerIndexNearestToOriginPKf_10:
	movss xmm2, dword [eax+0xc]
	subss xmm2, [ebx]
	movss xmm0, dword [eax+0x10]
	subss xmm0, [ebx+0x4]
	movss xmm1, dword [eax+0x14]
	subss xmm1, [ebx+0x8]
	mulss xmm2, xmm2
	mulss xmm0, xmm0
	addss xmm2, xmm0
	mulss xmm1, xmm1
	addss xmm2, xmm1
	jmp _Z35SND_GetListenerIndexNearestToOriginPKf_40
	nop


;SND_Init()
_Z8SND_Initv:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x8c
	mov dword [esp+0x4], _cstring__sound_system_in
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	mov dword [esp+0xc], _cstring_cause_a_com_erro
	mov dword [esp+0x8], 0x1
	mov dword [esp+0x4], 0x0
	mov dword [esp], _cstring_snd_erroronmissi
	call _Z17Dvar_RegisterBoolPKchtS0_
	mov [snd_errorOnMissing], eax
	mov dword [esp+0x14], _cstring_game_sound_maste
	mov dword [esp+0x10], 0x1
	mov esi, 0x3f800000
	mov [esp+0xc], esi
	xor ebx, ebx
	mov [esp+0x8], ebx
	mov dword [esp+0x4], 0x3f4ccccd
	mov dword [esp], _cstring_snd_volume
	call _Z18Dvar_RegisterFloatPKcffftS0_
	mov [snd_volume], eax
	mov dword [esp+0x14], _cstring_the_amount_of_ti
	mov dword [esp+0x10], 0x81
	mov dword [esp+0xc], 0x1388
	mov dword [esp+0x8], 0x0
	mov dword [esp+0x4], 0x1f4
	mov dword [esp], _cstring_snd_slavefadetim
	call _Z16Dvar_RegisterIntPKciiitS0_
	mov [snd_slaveFadeTime], eax
	mov dword [esp+0xc], _cstring_enable_2d_sounds
	mov dword [esp+0x8], 0x80
	mov dword [esp+0x4], 0x1
	mov dword [esp], _cstring_snd_enable2d
	call _Z17Dvar_RegisterBoolPKchtS0_
	mov [snd_enable2D], eax
	mov dword [esp+0xc], _cstring_enable_3d_sounds
	mov dword [esp+0x8], 0x80
	mov dword [esp+0x4], 0x1
	mov dword [esp], _cstring_snd_enable3d
	call _Z17Dvar_RegisterBoolPKchtS0_
	mov [snd_enable3D], eax
	mov dword [esp+0xc], _cstring_enable_streamed_
	mov dword [esp+0x8], 0x80
	mov dword [esp+0x4], 0x1
	mov dword [esp], _cstring_snd_enablestream
	call _Z17Dvar_RegisterBoolPKchtS0_
	mov [snd_enableStream], eax
	mov dword [esp+0xc], _cstring_enable_sound_rev
	mov dword [esp+0x8], 0x80
	mov dword [esp+0x4], 0x1
	mov dword [esp], _cstring_snd_enablereverb
	call _Z17Dvar_RegisterBoolPKchtS0_
	mov [snd_enableReverb], eax
	mov dword [esp+0xc], _cstring_enable_equalizat
	mov dword [esp+0x8], 0x1
	mov dword [esp+0x4], 0x1
	mov dword [esp], _cstring_snd_enableeq
	call _Z17Dvar_RegisterBoolPKchtS0_
	mov [snd_enableEq], eax
	mov dword [esp+0x10], _cstring_draw_the_positio
	mov dword [esp+0xc], 0x80
	mov dword [esp+0x8], 0x0
	mov dword [esp+0x4], snd_draw3DNames
	mov dword [esp], _cstring_snd_draw3d
	call _Z17Dvar_RegisterEnumPKcPS0_itS0_
	mov [snd_draw3D], eax
	mov dword [esp+0x14], _cstring_the_amout_of_tim
	mov dword [esp+0x10], 0x81
	mov dword [esp+0xc], 0x1388
	mov dword [esp+0x8], 0x0
	mov dword [esp+0x4], 0xfa
	mov dword [esp], _cstring_snd_levelfadetim
	call _Z16Dvar_RegisterIntPKciiitS0_
	mov [snd_levelFadeTime], eax
	mov dword [esp+0x14], _cstring_scales_the_volum
	mov dword [esp+0x10], 0x1
	mov [esp+0xc], esi
	mov [esp+0x8], ebx
	mov dword [esp+0x4], 0x3f59999a
	mov dword [esp], _cstring_snd_cinematicvol
	call _Z18Dvar_RegisterFloatPKcffftS0_
	mov [snd_cinematicVolumeScale], eax
	mov dword [esp+0xc], _cstring_check_whether_st
	mov dword [esp+0x8], 0x1
	mov dword [esp+0x4], 0x0
	mov dword [esp], _cstring_snd_touchstreamf
	call _Z17Dvar_RegisterBoolPKchtS0_
	mov [snd_touchStreamFilesOnLoad], eax
	mov dword [g_snd+0x4cd8], g_snd+0x4c78
	mov dword [g_snd+0x4c78], 0x0
	mov [g_snd+0x4c7c], esi
	mov [g_snd+0x4c80], esi
	mov [g_snd+0x4c84], ebx
	mov [g_snd+0x4c88], ebx
	mov [g_snd+0x4c8c], ebx
	mov [g_snd+0x4c90], ebx
	mov byte [g_snd+0x4c94], 0x1
	mov dword [g_snd+0x4dd4], g_snd+0x4d94
	mov dword [esp], _cstring_soundaliaseschan
	call _Z19Com_LoadRawTextFilePKc
	mov [ebp-0x6c], eax
	test eax, eax
	jz _Z8SND_Initv_10
_Z8SND_Initv_310:
	mov [ebp-0x1c], eax
	mov dword [g_snd+0x61ec], 0x0
	mov dword [esp], _cstring_soundaliaseschan
	call _Z21Com_BeginParseSessionPKc
	mov dword [esp], 0x1
	call _Z10Com_SetCSVi
	lea eax, [ebp-0x1c]
	mov [esp], eax
	call _Z9Com_ParsePPKc
	mov ebx, eax
	mov eax, [ebp-0x1c]
	test eax, eax
	jz _Z8SND_Initv_20
_Z8SND_Initv_110:
	movzx eax, byte [ebx]
	test al, al
	jz _Z8SND_Initv_30
	cmp al, 0x23
	jz _Z8SND_Initv_30
	cld
	mov ecx, 0xffffffff
	xor eax, eax
	mov edi, ebx
	repne scasb
	not ecx
	sub ecx, 0x1
	cmp ecx, 0x40
	ja _Z8SND_Initv_40
_Z8SND_Initv_280:
	mov [esp+0x4], ebx
	lea eax, [ebp-0x5c]
	mov [esp], eax
	call strcpy
	lea eax, [ebp-0x1c]
	mov [esp], eax
	call _Z15Com_ParseOnLinePPKc
	cmp byte [eax], 0x0
	jnz _Z8SND_Initv_50
	mov eax, [g_snd+0x61ec]
	mov edi, g_snd+0x4e20
	lea eax, [eax+eax*4]
	shl eax, 0x4
	mov dword [eax+edi+0xc], 0x0
_Z8SND_Initv_270:
	lea eax, [ebp-0x1c]
	mov [esp], eax
	call _Z15Com_ParseOnLinePPKc
	mov ebx, eax
	mov esi, [g_snd+0x61ec]
	cmp byte [eax], 0x0
	jnz _Z8SND_Initv_60
_Z8SND_Initv_290:
	xor edx, edx
_Z8SND_Initv_300:
	lea eax, [esi+esi*4]
	shl eax, 0x4
	mov [eax+edi+0x10], dl
	lea eax, [ebp-0x1c]
	mov [esp], eax
	call _Z15Com_ParseOnLinePPKc
	mov ebx, eax
	mov esi, [g_snd+0x61ec]
	cmp byte [eax], 0x0
	jnz _Z8SND_Initv_70
_Z8SND_Initv_240:
	mov edx, 0x1
_Z8SND_Initv_260:
	lea eax, [esi+esi*4]
	shl eax, 0x4
	mov [eax+edi+0x11], dl
	lea eax, [ebp-0x1c]
	mov [esp], eax
	call _Z15Com_ParseOnLinePPKc
	mov ebx, eax
	mov esi, [g_snd+0x61ec]
	cmp byte [eax], 0x0
	jnz _Z8SND_Initv_80
_Z8SND_Initv_200:
	mov edx, 0x1
_Z8SND_Initv_220:
	lea eax, [esi+esi*4]
	shl eax, 0x4
	mov [eax+edi+0x12], dl
	lea eax, [ebp-0x1c]
	mov [esp], eax
	call _Z15Com_ParseOnLinePPKc
	mov ebx, eax
	cmp byte [eax], 0x0
	jnz _Z8SND_Initv_90
_Z8SND_Initv_190:
	mov esi, 0x35
_Z8SND_Initv_180:
	lea eax, [ebp-0x5c]
	mov [esp+0x4], eax
	mov eax, [g_snd+0x61ec]
	lea eax, [eax+eax*4]
	shl eax, 0x4
	add eax, g_snd+0x4dec
	mov [esp], eax
	call strcpy
	mov eax, [g_snd+0x61ec]
	lea eax, [eax+eax*4]
	shl eax, 0x4
	mov [eax+edi+0x14], esi
	mov eax, [g_snd+0x61ec]
	lea eax, [eax+eax*4]
	shl eax, 0x4
	mov dword [eax+edi+0x18], 0x0
	mov eax, [g_snd+0x61ec]
	add eax, 0x1
	mov [g_snd+0x61ec], eax
	cmp eax, 0x40
	jg _Z8SND_Initv_100
_Z8SND_Initv_30:
	lea eax, [ebp-0x1c]
	mov [esp], eax
	call _Z18Com_SkipRestOfLinePPKc
	lea eax, [ebp-0x1c]
	mov [esp], eax
	call _Z9Com_ParsePPKc
	mov ebx, eax
	mov eax, [ebp-0x1c]
	test eax, eax
	jnz _Z8SND_Initv_110
_Z8SND_Initv_20:
	call _Z19Com_EndParseSessionv
	mov eax, [ebp-0x6c]
	mov [esp], eax
	call _Z21Com_UnloadRawTextFilePKc
	call _Z27BG_RegisterShockVolumeDvarsv
	mov dword [g_snd+0x4], 0x1
	mov eax, 0x3f800000
	mov [g_snd+0x4028], eax
	mov [g_snd+0x402c], eax
	mov dword [g_snd+0x4030], 0x0
	mov dword [g_snd+0x4c44], g_snd+0x4034
	mov edi, [g_snd+0x61ec]
	test edi, edi
	jle _Z8SND_Initv_120
	xor ecx, ecx
	xor edx, edx
_Z8SND_Initv_130:
	mov eax, [g_snd+0x4c44]
	mov dword [edx+eax], 0x3f800000
	mov eax, edx
	add eax, [g_snd+0x4c44]
	mov dword [eax+0x4], 0x3f800000
	mov eax, edx
	add eax, [g_snd+0x4c44]
	mov dword [eax+0x8], 0x0
	add ecx, 0x1
	add edx, 0xc
	cmp ecx, [g_snd+0x61ec]
	jl _Z8SND_Initv_130
_Z8SND_Initv_120:
	mov eax, [g_snd+0x4c44]
	mov byte [eax+0x300], 0x1
	call _Z16Sys_Millisecondsv
	mov [g_snd+0x4dcc], eax
	mov [g_snd+0x4dd0], eax
	mov dword [g_snd+0x4c74], 0x0
	movss xmm0, dword [_float_0_75000000]
	mov eax, [snd_volume]
	mulss xmm0, [eax+0xc]
	movss [g_snd+0x4024], xmm0
	mov esi, [g_snd+0x61ec]
	test esi, esi
	jle _Z8SND_Initv_140
	xor ebx, ebx
	mov ecx, g_snd
	mov edx, g_snd
_Z8SND_Initv_150:
	movzx eax, byte [ecx+0x4e32]
	mov [edx+0x4cdc], al
	add ebx, 0x1
	add ecx, 0x50
	add edx, 0x1
	cmp ebx, [g_snd+0x61ec]
	jl _Z8SND_Initv_150
_Z8SND_Initv_140:
	mov edx, g_snd
	mov ecx, g_snd+0x40
_Z8SND_Initv_160:
	movzx eax, byte [edx+0x4cdc]
	mov [edx+0x4d1c], al
	add edx, 0x1
	cmp ecx, edx
	jnz _Z8SND_Initv_160
	mov dword [g_sndPhysics+0x200], 0x0
	mov dword [esp+0x8], _ZZ8SND_InitvE31SND_SetEnvironmentEffects_f_VAR
	mov dword [esp+0x4], _Z27SND_SetEnvironmentEffects_fv
	mov dword [esp], _cstring_snd_setenvironme
	call _Z22Cmd_AddCommandInternalPKcPFvvEP14cmd_function_s
	mov dword [esp+0x8], _ZZ8SND_InitvE38SND_DeactivateEnvironmentEffects_f_VAR
	mov dword [esp+0x4], _Z34SND_DeactivateEnvironmentEffects_fv
	mov dword [esp], _cstring_snd_deactivateen
	call _Z22Cmd_AddCommandInternalPKcPFvvEP14cmd_function_s
	mov dword [esp+0x8], _ZZ8SND_InitvE19SND_PlayLocal_f_VAR
	mov dword [esp+0x4], _Z15SND_PlayLocal_fv
	mov dword [esp], _cstring_snd_playlocal
	call _Z22Cmd_AddCommandInternalPKcPFvvEP14cmd_function_s
	mov dword [esp+0x8], _ZZ8SND_InitvE15SND_SetEq_f_VAR
	mov dword [esp+0x4], _Z11SND_SetEq_fv
	mov dword [esp], _cstring_snd_seteq
	call _Z22Cmd_AddCommandInternalPKcPFvvEP14cmd_function_s
	mov dword [esp+0x8], _ZZ8SND_InitvE19SND_SetEqFreq_f_VAR
	mov dword [esp+0x4], _Z15SND_SetEqFreq_fv
	mov dword [esp], _cstring_snd_seteqfreq
	call _Z22Cmd_AddCommandInternalPKcPFvvEP14cmd_function_s
	mov dword [esp+0x8], _ZZ8SND_InitvE19SND_SetEqGain_f_VAR
	mov dword [esp+0x4], _Z15SND_SetEqGain_fv
	mov dword [esp], _cstring_snd_seteqgain
	call _Z22Cmd_AddCommandInternalPKcPFvvEP14cmd_function_s
	mov dword [esp+0x8], _ZZ8SND_InitvE16SND_SetEqQ_f_VAR
	mov dword [esp+0x4], _Z12SND_SetEqQ_fv
	mov dword [esp], _cstring_snd_seteqq
	call _Z22Cmd_AddCommandInternalPKcPFvvEP14cmd_function_s
	mov dword [esp+0x8], _ZZ8SND_InitvE19SND_SetEqType_f_VAR
	mov dword [esp+0x4], _Z15SND_SetEqType_fv
	mov dword [esp], _cstring_snd_seteqtype
	call _Z22Cmd_AddCommandInternalPKcPFvvEP14cmd_function_s
	mov dword [esp+0x8], _ZZ8SND_InitvE22SND_DeactivateEq_f_VAR
	mov dword [esp+0x4], _Z18SND_DeactivateEq_fv
	mov dword [esp], _cstring_snd_deactivateeq
	call _Z22Cmd_AddCommandInternalPKcPFvvEP14cmd_function_s
	mov dword [esp+0x4], _cstring__sound_system_su
	mov dword [esp], 0x9
	call _Z10Com_PrintfiPKcz
	call _Z10Voice_Initv
	add esp, 0x8c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z8SND_Initv_90:
	mov [esp], eax
	call atoi
	mov esi, eax
	test eax, eax
	jle _Z8SND_Initv_170
	cmp eax, 0x35
	jle _Z8SND_Initv_180
	mov dword [esp+0x14], 0x35
	mov dword [esp+0x10], _cstring_soundaliaseschan
	lea eax, [ebp-0x5c]
	mov [esp+0xc], eax
	mov dword [esp+0x8], 0x35
	mov dword [esp+0x4], _cstring_max_number_d_of_
	mov dword [esp], 0x9
	call _Z14Com_PrintErroriPKcz
	jmp _Z8SND_Initv_190
_Z8SND_Initv_80:
	mov dword [esp+0x4], _cstring_pause
	mov [esp], eax
	call _Z9I_stricmpPKcS0_
	test eax, eax
	jz _Z8SND_Initv_200
	mov dword [esp+0x4], _cstring_nopause
	mov [esp], ebx
	call _Z9I_stricmpPKcS0_
	test eax, eax
	jnz _Z8SND_Initv_210
	xor edx, edx
	jmp _Z8SND_Initv_220
_Z8SND_Initv_60:
	mov dword [esp+0x4], _cstring_3d
	mov [esp], eax
	call _Z9I_stricmpPKcS0_
	test eax, eax
	jnz _Z8SND_Initv_230
	mov edx, 0x1
	lea eax, [esi+esi*4]
	shl eax, 0x4
	mov [eax+edi+0x10], dl
	lea eax, [ebp-0x1c]
	mov [esp], eax
	call _Z15Com_ParseOnLinePPKc
	mov ebx, eax
	mov esi, [g_snd+0x61ec]
	cmp byte [eax], 0x0
	jz _Z8SND_Initv_240
_Z8SND_Initv_70:
	mov dword [esp+0x4], _cstring_restricted
	mov [esp], eax
	call _Z9I_stricmpPKcS0_
	test eax, eax
	jz _Z8SND_Initv_240
	mov dword [esp+0x4], _cstring_unrestricted
	mov [esp], ebx
	call _Z9I_stricmpPKcS0_
	test eax, eax
	jnz _Z8SND_Initv_250
	xor edx, edx
	jmp _Z8SND_Initv_260
_Z8SND_Initv_50:
	mov ebx, [g_snd+0x61ec]
	mov [esp], eax
	call atoi
	mov edi, g_snd+0x4e20
	lea ebx, [ebx+ebx*4]
	shl ebx, 0x4
	mov [ebx+edi+0xc], eax
	jmp _Z8SND_Initv_270
_Z8SND_Initv_100:
	call _Z19Com_EndParseSessionv
	mov dword [esp+0x8], 0x40
	mov dword [esp+0x4], _cstring_channel_definiti
	mov dword [esp], 0x2
	call _Z9Com_Error11errorParm_tPKcz
	jmp _Z8SND_Initv_30
_Z8SND_Initv_40:
	call _Z19Com_EndParseSessionv
	mov dword [esp+0x10], _cstring_soundaliaseschan
	mov [esp+0xc], ebx
	mov dword [esp+0x8], 0x40
	mov dword [esp+0x4], _cstring_channel_name_too
	mov dword [esp], 0x2
	call _Z9Com_Error11errorParm_tPKcz
	jmp _Z8SND_Initv_280
_Z8SND_Initv_230:
	mov dword [esp+0x4], _cstring_2d
	mov [esp], ebx
	call _Z9I_stricmpPKcS0_
	test eax, eax
	jz _Z8SND_Initv_290
	mov dword [esp+0x14], 0x0
	mov dword [esp+0x10], _cstring_2d
	mov dword [esp+0xc], _cstring_3d
	mov [esp+0x8], ebx
	mov dword [esp+0x4], _cstring_unknown_value_s_
	mov dword [esp], 0x9
	call _Z14Com_PrintErroriPKcz
	xor edx, edx
	jmp _Z8SND_Initv_300
_Z8SND_Initv_170:
	mov dword [esp+0x14], 0x35
	mov dword [esp+0x10], _cstring_soundaliaseschan
	mov [esp+0xc], ebx
	lea eax, [ebp-0x5c]
	mov [esp+0x8], eax
	mov dword [esp+0x4], _cstring_channel_s_has_no
	mov dword [esp], 0x9
	call _Z14Com_PrintErroriPKcz
	mov esi, 0x35
	jmp _Z8SND_Initv_180
_Z8SND_Initv_10:
	mov dword [esp+0x8], _cstring_soundaliaseschan
	mov dword [esp+0x4], _cstring_unable_to_load_e
	mov dword [esp], 0x2
	call _Z9Com_Error11errorParm_tPKcz
	mov eax, [ebp-0x6c]
	jmp _Z8SND_Initv_310
_Z8SND_Initv_210:
	mov dword [esp+0x14], 0x1
	mov dword [esp+0x10], _cstring_nopause
	mov dword [esp+0xc], _cstring_pause
	mov [esp+0x8], ebx
	mov dword [esp+0x4], _cstring_unknown_value_s_
	mov dword [esp], 0x9
	call _Z14Com_PrintErroriPKcz
	mov edx, 0x1
	jmp _Z8SND_Initv_220
_Z8SND_Initv_250:
	mov dword [esp+0x14], 0x1
	mov dword [esp+0x10], _cstring_unrestricted
	mov dword [esp+0xc], _cstring_restricted
	mov [esp+0x8], ebx
	mov dword [esp+0x4], _cstring_unknown_value_s_
	mov dword [esp], 0x9
	call _Z14Com_PrintErroriPKcz
	mov edx, 0x1
	jmp _Z8SND_Initv_260


;SND_Save(MemoryFile*)
_Z8SND_SaveP10MemoryFile:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x6c
	mov ebx, 0x1
	mov esi, 0x303
_Z8SND_SaveP10MemoryFile_10:
	lea eax, [esi+ebx+g_snd+0x4034]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x304
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z17MemFile_WriteDataP10MemoryFileiPKv
	add ebx, 0x1
	add esi, 0x303
	cmp ebx, 0x4
	jnz _Z8SND_SaveP10MemoryFile_10
	mov esi, 0x1
	mov ebx, g_snd+0x4c98
_Z8SND_SaveP10MemoryFile_20:
	mov [esp+0x8], ebx
	mov dword [esp+0x4], 0x20
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z17MemFile_WriteDataP10MemoryFileiPKv
	add esi, 0x1
	add ebx, 0x20
	cmp esi, 0x3
	jnz _Z8SND_SaveP10MemoryFile_20
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z10SND_SaveEqP10MemoryFile
	mov dword [esp+0x8], g_snd+0x4c48
	mov dword [esp+0x4], 0x8
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z17MemFile_WriteDataP10MemoryFileiPKv
	cmp byte [g_snd], 0x0
	jz _Z8SND_SaveP10MemoryFile_30
	mov eax, [g_snd+0x7ef0]
	add eax, 0x8
	cmp eax, 0x8
	jg _Z8SND_SaveP10MemoryFile_40
_Z8SND_SaveP10MemoryFile_30:
	mov dword [esp+0x4], _cstring_null
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z20MemFile_WriteCStringP10MemoryFilePKc
	cmp byte [g_snd], 0x0
	jz _Z8SND_SaveP10MemoryFile_50
	mov ebx, [g_snd+0x7eec]
	test ebx, ebx
	jg _Z8SND_SaveP10MemoryFile_60
_Z8SND_SaveP10MemoryFile_50:
	mov dword [esp+0x4], _cstring_null
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z20MemFile_WriteCStringP10MemoryFilePKc
	cmp byte [g_snd], 0x0
	jz _Z8SND_SaveP10MemoryFile_70
	mov edx, [g_snd+0x7ef4]
	lea eax, [edx+0x28]
	cmp eax, 0x28
	jle _Z8SND_SaveP10MemoryFile_70
	mov dword [ebp-0x4c], 0x28
_Z8SND_SaveP10MemoryFile_90:
	mov eax, [ebp-0x4c]
	sub eax, 0x29
	cmp eax, 0x3
	ja _Z8SND_SaveP10MemoryFile_80
_Z8SND_SaveP10MemoryFile_130:
	add dword [ebp-0x4c], 0x1
	lea eax, [edx+0x28]
	cmp [ebp-0x4c], eax
	jge _Z8SND_SaveP10MemoryFile_70
	cmp dword [ebp-0x4c], 0x2c
	jle _Z8SND_SaveP10MemoryFile_90
	mov eax, [ebp-0x4c]
	mov [esp], eax
	call _Z23SND_IsStreamChannelFreei
	test al, al
	jnz _Z8SND_SaveP10MemoryFile_100
_Z8SND_SaveP10MemoryFile_140:
	mov eax, [ebp-0x4c]
	lea edx, [eax+eax*4]
	lea eax, [edx*8]
	sub eax, edx
	shl eax, 0x2
	mov [ebp-0x5c], eax
	cmp dword [eax+g_snd+0x6278], 0x1
	jz _Z8SND_SaveP10MemoryFile_110
_Z8SND_SaveP10MemoryFile_220:
	cmp dword [ebp-0x4c], 0x2c
	jle _Z8SND_SaveP10MemoryFile_120
_Z8SND_SaveP10MemoryFile_100:
	mov edx, [g_snd+0x7ef4]
	jmp _Z8SND_SaveP10MemoryFile_130
_Z8SND_SaveP10MemoryFile_70:
	mov dword [esp+0x4], _cstring_null
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z20MemFile_WriteCStringP10MemoryFilePKc
	add esp, 0x6c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z8SND_SaveP10MemoryFile_80:
	mov eax, [ebp-0x4c]
	mov [esp], eax
	call _Z23SND_IsStreamChannelFreei
	test al, al
	jz _Z8SND_SaveP10MemoryFile_140
_Z8SND_SaveP10MemoryFile_210:
	mov dword [esp+0x4], _cstring_null
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z20MemFile_WriteCStringP10MemoryFilePKc
	mov edx, [g_snd+0x7ef4]
	jmp _Z8SND_SaveP10MemoryFile_130
_Z8SND_SaveP10MemoryFile_60:
	xor edi, edi
	mov dword [ebp-0x54], g_snd
_Z8SND_SaveP10MemoryFile_170:
	mov [esp], edi
	call _Z19SND_Is2DChannelFreei
	test al, al
	jnz _Z8SND_SaveP10MemoryFile_150
	mov eax, [ebp-0x54]
	cmp dword [eax+0x6278], 0x1
	jz _Z8SND_SaveP10MemoryFile_160
_Z8SND_SaveP10MemoryFile_150:
	add edi, 0x1
	add dword [ebp-0x54], 0x8c
	cmp edi, [g_snd+0x7eec]
	jl _Z8SND_SaveP10MemoryFile_170
	jmp _Z8SND_SaveP10MemoryFile_50
_Z8SND_SaveP10MemoryFile_40:
	mov dword [ebp-0x58], 0x8
	mov dword [ebp-0x50], g_snd
_Z8SND_SaveP10MemoryFile_200:
	mov eax, [ebp-0x58]
	mov [esp], eax
	call _Z19SND_Is3DChannelFreei
	test al, al
	jnz _Z8SND_SaveP10MemoryFile_180
	mov eax, [ebp-0x50]
	cmp dword [eax+0x66d8], 0x1
	jz _Z8SND_SaveP10MemoryFile_190
_Z8SND_SaveP10MemoryFile_180:
	add dword [ebp-0x58], 0x1
	add dword [ebp-0x50], 0x8c
	mov eax, [g_snd+0x7ef0]
	add eax, 0x8
	cmp [ebp-0x58], eax
	jl _Z8SND_SaveP10MemoryFile_200
	jmp _Z8SND_SaveP10MemoryFile_30
_Z8SND_SaveP10MemoryFile_120:
	mov eax, [ebp-0x4c]
	sub eax, 0x29
	cmp eax, 0x3
	jbe _Z8SND_SaveP10MemoryFile_100
	jmp _Z8SND_SaveP10MemoryFile_210
_Z8SND_SaveP10MemoryFile_190:
	mov eax, [ebp-0x58]
	mov [esp], eax
	call _Z22SND_Get3DChannelLengthi
	test eax, eax
	jz _Z8SND_SaveP10MemoryFile_180
	mov eax, [ebp-0x58]
	mov [esp], eax
	call _Z28SND_Get3DChannelPlaybackRatei
	test eax, eax
	jz _Z8SND_SaveP10MemoryFile_180
	lea eax, [ebp-0x3c]
	mov [esp+0x4], eax
	mov eax, [ebp-0x58]
	mov [esp], eax
	call _Z24SND_Get3DChannelSaveInfoiP20snd_save_3D_sample_t
	mov eax, [ebp-0x50]
	mov ebx, [eax+0x66a8]
	mov eax, [ebx]
	mov [esp+0x4], eax
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z20MemFile_WriteCStringP10MemoryFilePKc
	mov [esp], ebx
	call _Z18SND_GetAliasOffsetPK11snd_alias_t
	mov [ebp-0x1a], ax
	lea esi, [ebp-0x1a]
	mov [esp+0x8], esi
	mov dword [esp+0x4], 0x2
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z17MemFile_WriteDataP10MemoryFileiPKv
	mov eax, [ebp-0x50]
	mov ebx, [eax+0x66ac]
	mov eax, [ebx]
	mov [esp+0x4], eax
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z20MemFile_WriteCStringP10MemoryFilePKc
	mov [esp], ebx
	call _Z18SND_GetAliasOffsetPK11snd_alias_t
	mov [ebp-0x1a], ax
	mov [esp+0x8], esi
	mov dword [esp+0x4], 0x2
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z17MemFile_WriteDataP10MemoryFileiPKv
	mov eax, [ebp-0x58]
	lea edx, [eax+eax*4]
	lea eax, [edx*8]
	sub eax, edx
	lea eax, [eax*4+g_snd+0x61f0]
	mov edx, [ebp+0x8]
	call _Z16SND_SaveChanInfoPK18snd_channel_info_tP10MemoryFile
	lea eax, [ebp-0x3c]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x18
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z17MemFile_WriteDataP10MemoryFileiPKv
	jmp _Z8SND_SaveP10MemoryFile_180
_Z8SND_SaveP10MemoryFile_160:
	mov [esp], edi
	call _Z22SND_Get2DChannelLengthi
	test eax, eax
	jz _Z8SND_SaveP10MemoryFile_150
	mov [esp], edi
	call _Z28SND_Get2DChannelPlaybackRatei
	test eax, eax
	jz _Z8SND_SaveP10MemoryFile_150
	lea eax, [ebp-0x3c]
	mov [esp+0x4], eax
	mov [esp], edi
	call _Z24SND_Get2DChannelSaveInfoiP20snd_save_2D_sample_t
	mov eax, [ebp-0x54]
	mov ebx, [eax+0x6248]
	mov eax, [ebx]
	mov [esp+0x4], eax
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z20MemFile_WriteCStringP10MemoryFilePKc
	mov [esp], ebx
	call _Z18SND_GetAliasOffsetPK11snd_alias_t
	mov [ebp-0x1a], ax
	lea esi, [ebp-0x1a]
	mov [esp+0x8], esi
	mov dword [esp+0x4], 0x2
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z17MemFile_WriteDataP10MemoryFileiPKv
	mov eax, [ebp-0x54]
	mov ebx, [eax+0x624c]
	mov eax, [ebx]
	mov [esp+0x4], eax
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z20MemFile_WriteCStringP10MemoryFilePKc
	mov [esp], ebx
	call _Z18SND_GetAliasOffsetPK11snd_alias_t
	mov [ebp-0x1a], ax
	mov [esp+0x8], esi
	mov dword [esp+0x4], 0x2
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z17MemFile_WriteDataP10MemoryFileiPKv
	lea edx, [edi+edi*4]
	lea eax, [edx*8]
	sub eax, edx
	lea eax, [eax*4+g_snd+0x61f0]
	mov edx, [ebp+0x8]
	call _Z16SND_SaveChanInfoPK18snd_channel_info_tP10MemoryFile
	lea eax, [ebp-0x3c]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x10
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z17MemFile_WriteDataP10MemoryFileiPKv
	jmp _Z8SND_SaveP10MemoryFile_150
_Z8SND_SaveP10MemoryFile_110:
	mov eax, [ebp-0x4c]
	mov [esp], eax
	call _Z26SND_GetStreamChannelLengthi
	test eax, eax
	jz _Z8SND_SaveP10MemoryFile_220
	lea eax, [ebp-0x3c]
	mov [esp+0x4], eax
	mov eax, [ebp-0x4c]
	mov [esp], eax
	call _Z28SND_GetStreamChannelSaveInfoiP17snd_save_stream_t
	mov eax, [ebp-0x5c]
	mov ebx, [eax+g_snd+0x6248]
	mov eax, [ebx]
	mov [esp+0x4], eax
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z20MemFile_WriteCStringP10MemoryFilePKc
	mov [esp], ebx
	call _Z18SND_GetAliasOffsetPK11snd_alias_t
	mov [ebp-0x1a], ax
	lea esi, [ebp-0x1a]
	mov [esp+0x8], esi
	mov dword [esp+0x4], 0x2
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z17MemFile_WriteDataP10MemoryFileiPKv
	mov eax, [ebp-0x5c]
	mov ebx, [eax+g_snd+0x624c]
	mov eax, [ebx]
	mov [esp+0x4], eax
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z20MemFile_WriteCStringP10MemoryFilePKc
	mov [esp], ebx
	call _Z18SND_GetAliasOffsetPK11snd_alias_t
	mov [ebp-0x1a], ax
	mov [esp+0x8], esi
	mov dword [esp+0x4], 0x2
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z17MemFile_WriteDataP10MemoryFileiPKv
	mov eax, [ebp-0x5c]
	add eax, g_snd+0x61f0
	mov edx, [ebp+0x8]
	call _Z16SND_SaveChanInfoPK18snd_channel_info_tP10MemoryFile
	lea eax, [ebp-0x3c]
	mov [esp+0x8], eax
	mov dword [esp+0x4], 0x20
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z17MemFile_WriteDataP10MemoryFileiPKv
	mov edx, [g_snd+0x7ef4]
	jmp _Z8SND_SaveP10MemoryFile_130
	nop


;Initialized global or static variables of snd:
SECTION .data
snd_draw3DNames: dd _cstring_off, _cstring_targets, _cstring_names, _cstring_verbose, 0x0, 0x0, 0x0, 0x0


;Initialized constant data of snd:
SECTION .rdata
_ZZ15SND_PlayLocal_fvE7MYCOLOR: dd 0x3f333333, 0x3f333333, 0x3f800000, 0x3f800000, 0x80000000, 0x0, 0x0, 0x0, 0x80000000, 0x0, 0x0, 0x0, 0x80000000, 0x0, 0x0, 0x0, 0x4f000000, 0x0, 0x0, 0x0, 0x4f800000, 0x0, 0x0, 0x0, 0x4f000000, 0x0, 0x0, 0x0, 0x4f800000, 0x0, 0x0, 0x0, 0x4f000000, 0x0, 0x0, 0x0, 0x4f800000, 0x0, 0x0, 0x0, 0x4f000000, 0x0, 0x0, 0x0, 0x4f800000, 0x0, 0x0, 0x0


;Zero initialized global or static variables of snd:
SECTION .bss
g_sndPhysics: resb 0x204
g_FXPlaySoundCount: resb 0x1c
g_FXPlaySounds: resb 0x280
_ZZ8SND_InitvE22SND_DeactivateEq_f_VAR: resb 0x14
_ZZ8SND_InitvE19SND_SetEqType_f_VAR: resb 0x14
_ZZ8SND_InitvE16SND_SetEqQ_f_VAR: resb 0x14
_ZZ8SND_InitvE19SND_SetEqGain_f_VAR: resb 0x14
_ZZ8SND_InitvE19SND_SetEqFreq_f_VAR: resb 0x14
_ZZ8SND_InitvE15SND_SetEq_f_VAR: resb 0x14
_ZZ8SND_InitvE19SND_PlayLocal_f_VAR: resb 0x14
_ZZ8SND_InitvE38SND_DeactivateEnvironmentEffects_f_VAR: resb 0x14
_ZZ8SND_InitvE31SND_SetEnvironmentEffects_f_VAR: resb 0x40
snd_cinematicVolumeScale: resb 0x4
snd_errorOnMissing: resb 0x8
snd_touchStreamFilesOnLoad: resb 0x4
g_snd: resb 0x7f40
snd_enableReverb: resb 0x4
snd_draw3D: resb 0x4
snd_enable2D: resb 0x4
snd_enable3D: resb 0x4
snd_enableEq: resb 0x4
snd_enableStream: resb 0x4
snd_levelFadeTime: resb 0x4
snd_slaveFadeTime: resb 0x4
snd_volume: resb 0xc


;All cstrings:
SECTION .rdata
_cstring_tried_to_blend_b:		db 015h,"tried to blend between sound aliases ",27h,"%s",27h," and ",27h,"%s",27h,", but they don",27h,"t use the same sound file",0ah,0
_cstring_tried_to_blend_b1:		db 015h,"tried to blend between sound aliases ",27h,"%s",27h," and ",27h,"%s",27h,", but they do not have the same volume falloff curve",0ah,0
_cstring_tried_to_blend_b2:		db 015h,"tried to blend between sound aliases ",27h,"%s",27h," and ",27h,"%s",27h,", but they do not have the same looping status",0ah,0
_cstring_tried_to_blend_b3:		db 015h,"tried to blend between sound aliases ",27h,"%s",27h," and ",27h,"%s",27h,", but they are not both loaded or both streamed",0ah,0
_cstring_tried_to_blend_b4:		db 015h,"tried to blend between sound aliases ",27h,"%s",27h," and ",27h,"%s",27h,", but they don",27h,"t use the same channel",0ah,0
_cstring_tried_to_blend_b5:		db 015h,"tried to blend between sound aliases ",27h,"%s",27h," and ",27h,"%s",27h,", but only one of them is a ",27h,"master",27h," alias",0ah,0
_cstring_tried_to_blend_b6:		db 015h,"tried to blend between sound aliases ",27h,"%s",27h," and ",27h,"%s",27h,", but only one of them is a ",27h,"slave",27h," alias",0ah,0
_cstring_tried_to_blend_b7:		db 015h,"tried to blend between sound aliases ",27h,"%s",27h," and ",27h,"%s",27h,", but they don",27h,"t use the same fulldrylevel setting",0ah,0
_cstring_tried_to_blend_b8:		db 015h,"tried to blend between sound aliases ",27h,"%s",27h," and ",27h,"%s",27h,", but they don",27h,"t use the same nowetlevel setting",0ah,0
_cstring_tried_to_blend_b9:		db 015h,"tried to blend between sound aliases ",27h,"%s",27h," and ",27h,"%s",27h,", but they do not have the same slave percentages.",0ah,0
_cstring_tried_to_blend_b10:		db 015h,"tried to blend between sound aliases ",27h,"%s",27h," and ",27h,"%s",27h,", but they do not have the same start delay.",0ah,0
_cstring_tried_to_blend_b11:		db 015h,"tried to blend between sound aliases ",27h,"%s",27h," and ",27h,"%s",27h,", but they are looping and at least one of them has a random pitch",0ah,0
_cstring_tried_to_blend_b12:		db 015h,"tried to blend between sound aliases ",27h,"%s",27h," and ",27h,"%s",27h,", but one or both has a secondary alias.",0ah,0
_cstring_tried_to_blend_b13:		db 015h,"tried to blend between sound aliases ",27h,"%s",27h," and ",27h,"%s",27h,", but they are looping and at least one of them has a random volume",0ah,0
_cstring_alias_s_sound_s_:		db 015h,"alias %s sound %s played as an ambient / music track is not streamed; type must be ",27h,"streamed",27h,0ah,0
_cstring_alias_s_sound_s_1:		db 015h,"alias %s sound %s played as an ambient / music track uses a 3D channel type; should probably be channel ",27h,"local",27h,0ah,0
_cstring_null:		db 0
_cstring_invalid_eqindex_:		db "invalid ",27h,"eqIndex",27h," %i, must be >= 0 and < %i",0ah,0
_cstring_invalid_band_i_m:		db "invalid ",27h,"band",27h," %i, must be >= 0 and < %i",0ah,0
_cstring_unknown_channel_:		db "Unknown channel name (%s), please check channel definitions file",0ah,0
_cstring_usage_s_sndalias:		db "USAGE: %s <sndalias> [<dist> <yaw> <pitch>]",0ah,0
_cstring_playing_local_so:		db "Playing local sound alias ",22h,"%s",22h," at (%.2f, %.2f, %.2f).",0ah,0
_cstring_couldnt_find_sou:		db "Couldn",27h,"t find sound alias ",22h,"%s",22h,".",0ah,0
_cstring_details_s:		db "Details: %s",0
_cstring_owner_entity_i:		db "Owner: entity #%i",0
_cstring_distance_0f__0f:		db "Distance: %.0f / %.0f",0
_cstring_time_3f:		db "Time: %.3f",0
_cstring_owner_world:		db "Owner: World",0
_cstring_attempted_to_pla:		db "attempted to play spatialized alias ",27h,"%s",27h," while there is no active listener. Most likely this means you tried to play a spatialized sound while not in a level.",0ah,0
_cstring_nullwav:		db "null.wav",0
_cstring_error_a_nonloopi:		db "Error: a non-looping alias cannot have a looping secondary alias.",0ah,"Alias sequence: ",27h,"%s",27h,"->",27h,"%s",27h,0ah,0
_cstring_error_a_looping_:		db "Error: a looping alias cannot have a looping secondary aliasName that refers to multiple aliases.",0ah,"Alias sequence: ",27h,"%s",27h,"->",27h,"%s",27h,0ah,0
_cstring_error_unable_to_:		db "Error: unable to find ",27h,"%s",27h," alias",0ah,0
_cstring_error_infinite_r:		db "Error: Infinite recursion in secondary aliases sequenced together.",0ah,"Alias sequence start: ",27h,"%s",27h,"->",27h,"%s",27h,0ah,0
_cstring_tried_to_play_so:		db "Tried to play sound ",27h,"%s",27h," from alias ",27h,"%s",27h,", but it was not successfully loaded.",0ah,0
_cstring_code_warning_sou:		db "code_warning_soundcpu",0
_cstring_usage_snd_seteq_:		db "USAGE: snd_setEq <const char *channelName> <int eqIndex> <int band> <const char *type> <float gain> <float freq> <float q>",0ah,0
_cstring_invalid_eq_type_:		db "invalid eq type string ",27h,"%s",27h,", it must be one of the following strings:",0ah,0
_cstring___s:		db "  %s",0ah,0
_cstring_invalid_freq_f_m:		db "invalid ",27h,"freq",27h," %f, must be >= 0 and <= %i",0ah,0
_cstring_invalid_q_f_must:		db "invalid ",27h,"q",27h," %f, must be > 0",0ah,0
_cstring_usage_snd_seteqq:		db "USAGE: snd_setEqQ <const char *channelName> <int eqIndex> <int band> <float q>",0ah,0
_cstring_snd_setenvironme:		db "snd_setEnvironmentEffects",0
_cstring_snd_deactivateen:		db "snd_deactivateEnvironmentEffects",0
_cstring_snd_playlocal:		db "snd_playLocal",0
_cstring_snd_seteq:		db "snd_setEq",0
_cstring_snd_seteqfreq:		db "snd_setEqFreq",0
_cstring_snd_seteqgain:		db "snd_setEqGain",0
_cstring_snd_seteqq:		db "snd_setEqQ",0
_cstring_snd_seteqtype:		db "snd_setEqType",0
_cstring_snd_deactivateeq:		db "snd_deactivateEq",0
_cstring_usage_snd_seteqf:		db "USAGE: snd_setEqFreq <const char *channelName> <int eqIndex> <int band> <float freq>",0ah,0
_cstring_invalid_freq_f_m1:		db "invalid ",27h,"freq",27h," %f, must be >= 0 and < %i",0ah,0
_cstring_usage_snd_seteqg:		db "USAGE: snd_setEqGain <const char *channelName> <int eqIndex> <int band> <float gain>",0ah,0
_cstring_usage_snd_seteqt:		db "USAGE: snd_setEqType <const char *channelName> <int eqIndex> <int band> <const char *type>",0ah,0
_cstring_usage_snd_deacti:		db "USAGE: snd_deactivateEq <int eqIndex> [(optional) const char *channelName] [(optional) int band]",0ah,0
_cstring_unable_to_play_m:		db "Unable to play music alias %s",0ah,0
_cstring_s:		db "%s",0
_cstring_error_too_many_f:		db "ERROR: too many FX sounds %d",0ah,0
_cstring_invalid_roomtype:		db "invalid roomtype string ",27h,"%s",27h,", it must be one of the following strings:",0ah,0
_cstring_usage_snd_setenv:		db "USAGE: snd_setEnvironmentEffects <const char *priority> <const char *roomstring> <float drylevel> <float wetlevel> <int fademsec>",0ah,0
_cstring_none:		db "none",0
_cstring_level:		db "level",0
_cstring_shellshock:		db "shellshock",0
_cstring_invalid_priority:		db "invalid priority string ",27h,"%s",27h,", it must be one of the following strings:",0ah,0
_cstring_invalid_drylevel:		db "invalid ",27h,"drylevel",27h," %g, must be in the range of 0.0-1.0",0ah,0
_cstring_invalid_wetlevel:		db "invalid ",27h,"wetlevel",27h," %g, must be in the range of 0.0-1.0",0ah,0
_cstring_invalid_fademsec:		db "invalid ",27h,"fademsec",27h," %i, must be greater than or equal to zero",0ah,0
_cstring_soundalias_s_is_:		db "Soundalias ",22h,"%s",22h," is trying to chain to itself - check sound .csv files and correct.",0ah,0
_cstring_usage_snd_deacti1:		db "USAGE: snd_deactivateEnvironmentEffects <int priority> <int fademsec>",0ah,0
_cstring__sound_system_in:		db 0ah,"------- sound system initialization -------",0ah,0
_cstring_cause_a_com_erro:		db "Cause a Com_Error if a sound file is missing.",0
_cstring_snd_erroronmissi:		db "snd_errorOnMissing",0
_cstring_game_sound_maste:		db "Game sound master volume",0
_cstring_snd_volume:		db "snd_volume",0
_cstring_the_amount_of_ti:		db "The amount of time in milliseconds for a ",27h,"slave",27h," sound",0ah,"to fade its volumes when a master sound starts or stops",0
_cstring_snd_slavefadetim:		db "snd_slaveFadeTime",0
_cstring_enable_2d_sounds:		db "Enable 2D sounds",0
_cstring_snd_enable2d:		db "snd_enable2D",0
_cstring_enable_3d_sounds:		db "Enable 3D sounds",0
_cstring_snd_enable3d:		db "snd_enable3D",0
_cstring_enable_streamed_:		db "Enable streamed sounds",0
_cstring_snd_enablestream:		db "snd_enableStream",0
_cstring_enable_sound_rev:		db "Enable sound reverberation",0
_cstring_snd_enablereverb:		db "snd_enableReverb",0
_cstring_enable_equalizat:		db "Enable equalization filter",0
_cstring_snd_enableeq:		db "snd_enableEq",0
_cstring_draw_the_positio:		db "Draw the position and info of world sounds",0
_cstring_snd_draw3d:		db "snd_draw3D",0
_cstring_the_amout_of_tim:		db "The amout of time in milliseconds for all audio to fade in at the start of a level",0
_cstring_snd_levelfadetim:		db "snd_levelFadeTime",0
_cstring_scales_the_volum:		db "Scales the volume of Bink videos.",0
_cstring_snd_cinematicvol:		db "snd_cinematicVolumeScale",0
_cstring_check_whether_st:		db "Check whether stream sound files exist while loading",0
_cstring_snd_touchstreamf:		db "snd_touchStreamFilesOnLoad",0
_cstring_soundaliaseschan:		db "soundaliases/channels.def",0
_cstring__sound_system_su:		db "------- sound system successfully initialized -------",0ah,0
_cstring_max_number_d_of_:		db "max number (%d) of voices exceeded for channel ",27h,"%s",27h," in file [%s], defaulting to max (%i).",0ah,0
_cstring_pause:		db "pause",0
_cstring_nopause:		db "nopause",0
_cstring_3d:		db "3d",0
_cstring_restricted:		db "restricted",0
_cstring_unrestricted:		db "unrestricted",0
_cstring_channel_definiti:		db "channel definition file exceeded max number of channels (%d).",0ah,0
_cstring_channel_name_too:		db "channel name too long (max chars %d): %s in file [%s].",0ah,0
_cstring_2d:		db "2d",0
_cstring_unknown_value_s_:		db "unknown value (%s), should be either ",27h,"%s",27h," or ",27h,"%s",27h,".  using default: %d.",0ah,0
_cstring_channel_s_has_no:		db "channel ",27h,"%s",27h," has nonnumeric or negative value (%s) in file [%s], defaulting to max (%i).",0ah,0
_cstring_unable_to_load_e:		db "unable to load entity channel file [%s].",0ah,0
_cstring_off:		db "Off",0
_cstring_targets:		db "Targets",0
_cstring_names:		db "Names",0
_cstring_verbose:		db "Verbose",0



;All constant floats and doubles:
SECTION .rdata
_float_1_00000000:		dd 0x3f800000	; 1
_float_400_00000000:		dd 0x43c80000	; 400
_float_100_00000000:		dd 0x42c80000	; 100
_float_3402823466385288598117041:		dd 0x7f7fffff	; 3.40282e+38
_float_10_00000000:		dd 0x41200000	; 10
_float_0_05000000:		dd 0x3d4ccccd	; 0.05
_data16_80000000:		dd 0x80000000, 0x0, 0x0, 0x0	; OWORD
_float_0_00000000:		dd 0x0	; 0
_float_1_25000000:		dd 0x3fa00000	; 1.25
_float__12_00000000:		dd 0xc1400000	; -12
_float_2000_00000000:		dd 0x44fa0000	; 2000
_float_3_50000000:		dd 0x40600000	; 3.5
_float_0_85000002:		dd 0x3f59999a	; 0.85
_float_1000_00000000:		dd 0x447a0000	; 1000
_float_0_93000001:		dd 0x3f6e147b	; 0.93
_float_0_50000000:		dd 0x3f000000	; 0.5
_float_0_75000000:		dd 0x3f400000	; 0.75
_float_20000_00000000:		dd 0x469c4000	; 20000
_float_1_33333337:		dd 0x3faaaaab	; 1.33333

