Function at 0x14026fc00
Capabilities:
Link many functions at runtime

Disassembly:
mov qword [rsp + 0x18], rbp
push rsi
sub rsp, 0x20
lea rdx, [0x140326ff0]
lea rcx, str.sllog.txt
call sub.MSVCR90.dll_fopen
lea rsi, [0x1405649e0]
xor ebp, ebp
xor edx, edx
mov r8d, 0x2a8
mov rcx, rsi
mov qword [0x14037e210], rax
mov dword [0x1405649a8], ebp
call sub.MSVCR90.dll_memset
lea rcx, str.soft_oal.dll
mov qword [0x14037e218], rbp
mov qword [0x14037e228], rbp
mov dword [0x14037e238], ebp
mov qword [0x14037e250], rbp
mov qword [0x14037e230], rbp
mov qword [0x14037e220], rbp
mov qword [0x14037e258], rbp
mov qword [0x14037e268], rbp
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x14037e2d0], rax
test rax, rax
jne 0x14026fcba
lea rcx, str.openal32.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x14037e2d0], rax
test rax, rax
jne 0x14026fcba
lea eax, [rbp + 1]
mov rbp, qword [rsp + 0x40]
add rsp, 0x20
pop rsi
ret
lea rdx, str.alBufferData
mov rcx, rax
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alGenBuffers
mov qword [0x140564840], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alGenSources
mov qword [0x140564848], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alDeleteSources
mov qword [0x140564850], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alSourceStop
mov qword [0x140564858], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alSourcei
mov qword [0x140564860], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alSourceQueueBuffers
mov qword [0x140564868], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alSourcef
mov qword [0x140564870], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alSource3f
mov qword [0x140564878], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alSourcePlay
mov qword [0x140564880], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alSourceUnqueueBuffers
mov qword [0x140564888], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alDeleteBuffers
mov qword [0x140564890], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alGetSourcei
mov qword [0x140564898], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alGetSourcef
mov qword [0x1405648a0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alSourcePause
mov qword [0x1405648a8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alGetString
mov qword [0x1405648b0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alGetError
mov qword [0x1405648b8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alListener3f
mov qword [0x1405648c0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alListenerfv
mov qword [0x1405648c8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alSource3i
mov qword [0x1405648d0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alcOpenDevice
mov qword [0x1405648d8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alcIsExtensionPresent
mov qword [0x1405648e0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alcGetIntegerv
mov qword [0x1405648e8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alcCreateContext
mov qword [0x1405648f0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alcMakeContextCurrent
mov qword [0x1405648f8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alcGetError
mov qword [0x140564900], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alcDestroyContext
mov qword [0x140564908], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alcCloseDevice
mov qword [0x140564910], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alcGetString
mov qword [0x140564918], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alGetProcAddress
mov qword [0x140564920], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alGenEffects
mov qword [0x140564928], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alDeleteEffects
mov qword [0x140564930], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alIsEffect
mov qword [0x140564938], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alEffecti
mov qword [0x140564940], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alEffectf
mov qword [0x140564948], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alGenFilters
mov qword [0x140564950], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alDeleteFilters
mov qword [0x140564958], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alIsFilter
mov qword [0x140564960], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alFilteri
mov qword [0x140564968], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alFilterf
mov qword [0x140564970], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140564978], rax
mov rcx, qword [0x14037e2d0]
lea rdx, str.alGenAuxiliaryEffectSlots
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alDeleteAuxiliaryEffectSlots
mov qword [0x140564980], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alIsAuxiliaryEffectSlot
mov qword [0x140564988], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14037e2d0]
lea rdx, str.alAuxiliaryEffectSloti
mov qword [0x140564990], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ALC_ENUMERATION_EXT
xor ecx, ecx
mov qword [0x140564998], rax
call qword [0x1405648e8]
test al, al
je 0x140270238
mov edx, 0x1005
xor ecx, ecx
call qword [0x140564920]
mov edx, 0x1004
xor ecx, ecx
mov rbx, rax
call qword [0x140564920]
mov r11, rax
cmp byte [rbx], bpl
je 0x140270238
mov r8d, dword [0x1405649a8]
nop dword [rax + rax]
cmp r8d, 0xa
jge 0x14027023f
movsxd r9, r8d
mov rcx, rbx
mov rdx, r9
imul rdx, rdx, 0x44
sub rdx, rbx
add rdx, rsi
nop dword [rax]
movzx eax, byte [rcx]
inc rcx
mov byte [rdx + rcx - 1], al
test al, al
jne 0x1402701d0
mov rdi, r11
mov rax, rbx
sub rdi, rbx
nop word [rax + rax]
movzx edx, byte [rax]
movzx ecx, byte [rax + rdi]
sub edx, ecx
jne 0x140270202
inc rax
test ecx, ecx
jne 0x1402701f0
test edx, edx
jne 0x140270213
imul r9, r9, 0x44
mov dword [r9 + rsi + 0x40], 1
or rcx, 0xffffffffffffffff
inc r8d
xor eax, eax
mov rdi, rbx
mov dword [0x1405649a8], r8d
repne scasb al, byte [rdi]
not rcx
add rbx, rcx
cmp byte [rbx], al
jne 0x1402701b0
jmp 0x14027023f
mov r8d, dword [0x1405649a8]
mov r9, qword [0x14037e210]
mov rbx, qword [rsp + 0x30]
test r9, r9
je 0x1402702e7
mov edi, ebp
test r8d, r8d
jle 0x1402702a3
nop dword [rax + rax]
movsxd r8, edi
lea rdx, [0x140328968]
mov rcx, r9
imul r8, r8, 0x44
add r8, rsi
call sub.MSVCR90.dll_fprintf
mov rcx, qword [0x14037e210]
call sub.MSVCR90.dll_fflush
mov r8d, dword [0x1405649a8]
inc edi
cmp edi, r8d
jge 0x14027029c
mov r9, qword [0x14037e210]
jmp 0x140270260
mov r9, qword [0x14037e210]
mov eax, ebp
test r8d, r8d
jle 0x1402702e7
lea rcx, [0x140564a20]
cmp dword [rcx], ebp
jne 0x1402702c2
inc eax
add rcx, 0x44
cmp eax, r8d
jl 0x1402702b1
jmp 0x1402702e7
movsxd r8, eax
lea rdx, str._nDefault:__s_n
mov rcx, r9
imul r8, r8, 0x44
add r8, rsi
call sub.MSVCR90.dll_fprintf
mov rcx, qword [0x14037e210]
call sub.MSVCR90.dll_fflush
movss xmm0, dword [0x140339228]
mov dword [0x14037e23c], ebp
movss dword [0x14037e294], xmm0
call fcn.14026eee0
mov rdi, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
xor eax, eax
add rsp, 0x20
pop rsi
ret