Function at 0x431510
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x100
push 1
push str....initializing_QAL_n
call fcn.0041ac50
mov eax, dword [ebp + 8]
push eax
push str._s.dll
lea ecx, [ebp - 0x80]
push 0x80
push ecx
call fcn.004307f0
add esp, 0x18
push 0
lea edx, [ebp - 0x100]
push edx
push 0x80
push 0
lea eax, [ebp - 0x80]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_SearchPathA]
test eax, eax
jne 0x431578
lea ecx, [ebp - 0x80]
push ecx
push 1
push str....WARNING:_couldnt_find_OpenAL_driver__s_n
call fcn.0041ac50
add esp, 0xc
xor eax, eax
mov esp, ebp
pop ebp
ret
lea edx, [ebp - 0x100]
push edx
push 1
push str....calling_LoadLibrary___s__:
call fcn.0041ac50
add esp, 0xc
lea eax, [ebp - 0x100]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
mov dword [0xcc05b0], eax
jne 0x4315b9
push 1
push str.failed_n
call fcn.0041ac50
add esp, 8
xor eax, eax
mov esp, ebp
pop ebp
ret
push esi
push 1
push str.succeeded_n
call fcn.0041ac50
mov ecx, dword [0xcc05b0]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
add esp, 8
push str.alcOpenDevice
push ecx
call esi
mov edx, dword [0xcc05b0]
push str.alcCloseDevice
push edx
mov dword [0x91fa54], eax
call esi
mov dword [0x91fa30], eax
mov eax, dword [0xcc05b0]
push str.alcCreateContext
push eax
call esi
mov ecx, dword [0xcc05b0]
push str.alcDestroyContext
push ecx
mov dword [0x91fa00], eax
call esi
mov edx, dword [0xcc05b0]
push str.alcMakeContextCurrent
push edx
mov dword [0x91fa64], eax
call esi
mov dword [0x91f9fc], eax
mov eax, dword [0xcc05b0]
push str.alcProcessContext
push eax
call esi
mov ecx, dword [0xcc05b0]
push str.alcSuspendContext
push ecx
mov dword [0x91f9c4], eax
call esi
mov edx, dword [0xcc05b0]
push str.alcGetCurrentContext
push edx
mov dword [0x91f9dc], eax
call esi
mov dword [0x91fa74], eax
mov eax, dword [0xcc05b0]
push str.alcGetContextsDevice
push eax
call esi
mov ecx, dword [0xcc05b0]
push str.alcGetString
push ecx
mov dword [0x91fa78], eax
call esi
mov edx, dword [0xcc05b0]
push str.alcGetIntegerv
push edx
mov dword [0x91fa24], eax
call esi
mov dword [0x91f9f4], eax
mov eax, dword [0xcc05b0]
push str.alcGetError
push eax
call esi
mov ecx, dword [0xcc05b0]
push str.alcIsExtensionPresent
push ecx
mov dword [0x91fa48], eax
call esi
mov edx, dword [0xcc05b0]
push str.alcGetProcAddress
push edx
mov dword [0x91f9bc], eax
call esi
mov dword [0x91fa18], eax
mov eax, dword [0xcc05b0]
push str.alcGetEnumValue
push eax
call esi
mov dword [0x91fad0], eax
mov ecx, dword [0xcc05b0]
push str.alBufferData
push ecx
call esi
mov edx, dword [0xcc05b0]
push str.alDeleteBuffers
push edx
mov dword [0x91fa10], eax
call esi
mov dword [0x91fa58], eax
mov eax, dword [0xcc05b0]
push str.alDeleteSources
push eax
call esi
mov ecx, dword [0xcc05b0]
push str.alDisable
push ecx
mov dword [0x91fa98], eax
call esi
mov edx, dword [0xcc05b0]
push str.alDistanceModel
push edx
mov dword [0x91faa4], eax
call esi
mov dword [0x91fa7c], eax
mov eax, dword [0xcc05b0]
push str.alDopplerFactor
push eax
call esi
mov ecx, dword [0xcc05b0]
push str.alDopplerVelocity
push ecx
mov dword [0x91fa88], eax
call esi
mov edx, dword [0xcc05b0]
push str.alEnable
push edx
mov dword [0x91fa08], eax
call esi
mov dword [0x91fab8], eax
mov eax, dword [0xcc05b0]
push str.alGenBuffers
push eax
call esi
mov ecx, dword [0xcc05b0]
push str.alGenSources
push ecx
mov dword [0x91fa20], eax
call esi
mov edx, dword [0xcc05b0]
push str.alGetBoolean
push edx
mov dword [0x91fa3c], eax
call esi
mov dword [0x91fa4c], eax
mov eax, dword [0xcc05b0]
push str.alGetBooleanv
push eax
call esi
mov ecx, dword [0xcc05b0]
push str.alGetBufferf
push ecx
mov dword [0x91fa70], eax
call esi
mov edx, dword [0xcc05b0]
push str.alGetBufferi
push edx
mov dword [0x91fa40], eax
call esi
mov dword [0x91facc], eax
mov eax, dword [0xcc05b0]
push str.alGetDouble
push eax
call esi
mov ecx, dword [0xcc05b0]
push str.alGetDoublev
push ecx
mov dword [0x91f9e8], eax
call esi
mov dword [0x91fa94], eax
push str.alGetEnumValue
mov edx, dword [0xcc05b0]
push edx
call esi
mov dword [0x91f9c8], eax
mov eax, dword [0xcc05b0]
push str.alGetError
push eax
call esi
mov ecx, dword [0xcc05b0]
push str.alGetFloat
push ecx
mov dword [0x91fab0], eax
call esi
mov edx, dword [0xcc05b0]
push str.alGetFloatv
push edx
mov dword [0x91fac8], eax
call esi
mov dword [0x91fa28], eax
mov eax, dword [0xcc05b0]
push str.alGetInteger
push eax
call esi
mov ecx, dword [0xcc05b0]
push str.alGetIntegerv
push ecx
mov dword [0x91fa84], eax
call esi
mov edx, dword [0xcc05b0]
push str.alGetListener3f
push edx
mov dword [0x91fa8c], eax
call esi
mov dword [0x91fa34], eax
mov eax, dword [0xcc05b0]
push str.alGetListenerf
push eax
call esi
mov ecx, dword [0xcc05b0]
push str.alGetListenerfv
push ecx
mov dword [0x91fa44], eax
call esi
mov edx, dword [0xcc05b0]
push str.alGetListeneri
push edx
mov dword [0x91fa9c], eax
call esi
mov dword [0x91faa0], eax
mov eax, dword [0xcc05b0]
push str.alGetProcAddress
push eax
call esi
mov ecx, dword [0xcc05b0]
push str.alGetSource3f
push ecx
mov dword [0x91f9ec], eax
call esi
mov edx, dword [0xcc05b0]
push str.alGetSourcef
push edx
mov dword [0x91fad8], eax
call esi
mov dword [0x91fa60], eax
mov eax, dword [0xcc05b0]
push str.alGetSourcefv
push eax
call esi
mov ecx, dword [0xcc05b0]
push str.alGetSourcei
push ecx
mov dword [0x91faa8], eax
call esi
mov edx, dword [0xcc05b0]
push str.alGetString
push edx
mov dword [0x91fa04], eax
call esi
mov dword [0x91f9d0], eax
mov eax, dword [0xcc05b0]
push str.alHint
push eax
call esi
mov ecx, dword [0xcc05b0]
push str.alIsBuffer
push ecx
mov dword [0x91f9f0], eax
call esi
mov edx, dword [0xcc05b0]
push str.alIsEnabled
push edx
mov dword [0x91fa68], eax
call esi
mov dword [0x91fab4], eax
mov eax, dword [0xcc05b0]
push str.alIsExtensionPresent
push eax
call esi
mov ecx, dword [0xcc05b0]
push str.alIsSource
push ecx
mov dword [0x91fa2c], eax
call esi
mov edx, dword [0xcc05b0]
push str.alListener3f
push edx
mov dword [0x91f9c0], eax
call esi
mov dword [0x91fac4], eax
mov eax, dword [0xcc05b0]
push str.alListenerf
push eax
call esi
mov ecx, dword [0xcc05b0]
push str.alListenerfv
push ecx
mov dword [0x91fa38], eax
call esi
mov edx, dword [0xcc05b0]
push str.alListeneri
push edx
mov dword [0x91fad4], eax
call esi
mov dword [0x91f9f8], eax
mov eax, dword [0xcc05b0]
push str.alSource3f
push eax
call esi
mov ecx, dword [0xcc05b0]
push str.alSourcef
push ecx
mov dword [0x91fadc], eax
call esi
mov edx, dword [0xcc05b0]
push str.alSourcefv
push edx
mov dword [0x91f9d8], eax
call esi
mov dword [0x91fa14], eax
mov eax, dword [0xcc05b0]
push str.alSourcei
push eax
call esi
mov ecx, dword [0xcc05b0]
push str.alSourcePause
push ecx
mov dword [0x91f9e4], eax
call esi
mov edx, dword [0xcc05b0]
push str.alSourcePausev
push edx
mov dword [0x91fa0c], eax
call esi
mov dword [0x91fa90], eax
mov eax, dword [0xcc05b0]
push str.alSourcePlay
push eax
call esi
mov ecx, dword [0xcc05b0]
push str.alSourcePlayv
mov dword [0x91fabc], eax
push ecx
call esi
mov edx, dword [0xcc05b0]
push str.alSourceQueueBuffers
push edx
mov dword [0x91fa1c], eax
call esi
mov dword [0x91f9e0], eax
mov eax, dword [0xcc05b0]
push str.alSourceRewind
push eax
call esi
mov ecx, dword [0xcc05b0]
push str.alSourceRewindv
push ecx
mov dword [0x91f9d4], eax
call esi
mov edx, dword [0xcc05b0]
push str.alSourceStop
push edx
mov dword [0x91faac], eax
call esi
mov dword [0x91fa5c], eax
mov eax, dword [0xcc05b0]
push str.alSourceStopv
push eax
call esi
mov ecx, dword [0xcc05b0]
push str.alSourceUnqueueBuffers
push ecx
mov dword [0x91fac0], eax
call esi
mov dword [0x91f9cc], eax
mov dword [0x91fa80], 0
mov dword [0x91fa6c], 0
mov dword [0x91fa50], 1
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret