Function at 0x4283b0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x6c
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
push ebp
mov ebp, dword [esp + 0x78]
push esi
xor esi, esi
mov dword [esp + 0xc], ebp
push edi
mov edi, dword [esp + 0x7c]
mov dword [esp + 0xc], esi
cmp dword [0x57dfd0], esi
jne 0x428404
push str.Audio_subsystem_is_not_initialized
call fcn.0041ad60
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.00401033
add esp, 0x6c
ret
test ebp, ebp
je 0x428431
cmp dword [0x57e018], esi
jne 0x428431
push str.No_capture_support
call fcn.0041ad60
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.00401033
add esp, 0x6c
ret
push ebx
test eax, eax
lea ebx, [esp + 0x20]
cmovne ebx, eax
push ebx
push ecx
call fcn.004289f0
add esp, 8
test eax, eax
je 0x4289cd
test edi, edi
jne 0x428460
push str.SDL_AUDIO_DEVICE_NAME
call fcn.00458200
add esp, 4
mov edi, eax
test ebp, ebp
je 0x4284e9
cmp dword [0x57e020], esi
je 0x428579
test edi, edi
je 0x42848e
push str.System_audio_capture_device
push edi
call fcn.0041c300
add esp, 8
test eax, eax
jne 0x42850b
push dword [0x57e02c]
xor edi, edi
call fcn.0044b4a0
add esp, 4
xor eax, eax
mov ecx, dword [eax + 0x57e048]
test ecx, ecx
je 0x4284af
cmp dword [ecx + 0x44], esi
jne 0x4284bc
add eax, 4
cmp eax, 0x40
jb 0x4284a0
jmp 0x4285be
push str.Audio_device_already_open
call fcn.0041ad60
push dword [0x57e02c]
call fcn.0044b4e0
add esp, 8
xor eax, eax
pop ebx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.00401033
add esp, 0x6c
ret
cmp dword [0x57e01c], esi
je 0x428579
test edi, edi
je 0x42851a
push str.System_audio_output_device
push edi
call fcn.0041c300
add esp, 8
test eax, eax
je 0x42851a
push str.No_such_device
call fcn.0041ad60
jmp 0x4289ca
push dword [0x57e02c]
xor edi, edi
call fcn.0044b4a0
add esp, 4
xor eax, eax
nop dword [eax]
mov ecx, dword [eax + 0x57e048]
test ecx, ecx
je 0x42853f
cmp dword [ecx + 0x44], esi
je 0x42854c
add eax, 4
cmp eax, 0x40
jb 0x428530
jmp 0x4285be
push dword [0x57e02c]
call fcn.0044b4e0
push str.Audio_device_already_open
call fcn.0041ad60
add esp, 8
xor eax, eax
pop ebx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.00401033
add esp, 0x6c
ret
test edi, edi
je 0x4285cc
push dword [0x57e02c]
call fcn.0044b4a0
mov esi, dword [0x57e040]
add esp, 4
test ebp, ebp
cmovne esi, dword [0x57e044]
test esi, esi
je 0x4285bc
nop
cmp dword [esi], 0
je 0x4285b5
push edi
push dword [esi + 4]
call fcn.0041c300
add esp, 8
test eax, eax
je 0x4285ec
mov esi, dword [esi + 0x28]
test esi, esi
jne 0x4285a0
xor esi, esi
push dword [0x57e02c]
call fcn.0044b4e0
add esp, 4
cmp dword [0x57e024], 0
jne 0x4285f4
test esi, esi
jne 0x4285f4
test edi, edi
je 0x4285f4
push str.No_such_device.
call fcn.0041ad60
jmp 0x4289ca
mov esi, dword [esi]
mov dword [esp + 0x10], esi
jmp 0x4285be
push 0x68
push 1
call fcn.00458110
add esp, 8
mov esi, eax
push 0
test esi, esi
jne 0x428612
call fcn.0041ac90
jmp 0x4289ca
movups xmm0, xmmword [ebx]
xor eax, eax
test ebp, ebp
setne al
movups xmmword [esi + 4], xmm0
movq xmm0, qword [ebx + 0x10]
mov dword [esi + 0x44], eax
mov eax, dword [esp + 0x14]
mov dword [esi + 0x64], eax
lea eax, [esi + 0x38]
push eax
movq qword [esi + 0x14], xmm0
call fcn.00426860
lea eax, [esi + 0x40]
push 1
push eax
call fcn.00426860
lea eax, [esi + 0x3c]
push 1
push eax
call fcn.00426860
add esp, 0x18
cmp dword [0x57e000], 0x426f10
jne 0x428696
call fcn.0044b3e0
mov dword [esi + 0x50], eax
test eax, eax
jne 0x428696
push esi
call fcn.00428290
push str.Couldnt_create_mixer_lock
call fcn.0041ad60
add esp, 8
xor eax, eax
pop ebx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.00401033
add esp, 0x6c
ret
cmp dword [0x57e028], 0
jne 0x4286b5
movzx eax, word [esi + 0xc]
test ax, ax
je 0x4286b5
push eax
call fcn.0047b7c0
add esp, 4
mov word [esi + 0xc], ax
push edi
push esi
call dword [0x57dfdc]
add esp, 8
test eax, eax
js 0x4289c4
mov ecx, dword [esi + 4]
xor edi, edi
mov eax, dword [esp + 0x90]
cmp dword [ebx], ecx
je 0x4286e5
test al, 1
je 0x4286e0
mov dword [ebx], ecx
jmp 0x4286e5
mov edi, 1
movzx ecx, word [esi + 8]
cmp word [ebx + 4], cx
je 0x4286fe
test al, 2
je 0x4286f9
mov word [ebx + 4], cx
jmp 0x4286fe
mov edi, 1
mov cl, byte [esi + 0xa]
cmp byte [ebx + 6], cl
je 0x428714
test al, 4
je 0x42870f
mov byte [ebx + 6], cl
jmp 0x428714
mov edi, 1
movzx ecx, word [esi + 0xc]
cmp cx, word [ebx + 8]
je 0x42872d
test al, 8
je 0x428728
mov word [ebx + 8], cx
jmp 0x42872d
mov edi, 1
push ebx
call fcn.00427060
movups xmm0, xmmword [ebx]
add esp, 4
movups xmmword [esi + 0x1c], xmm0
movq xmm0, qword [ebx + 0x10]
movq qword [esi + 0x2c], xmm0
test edi, edi
je 0x4287ae
lea ecx, [esi + 4]
test ebp, ebp
je 0x42876e
movzx eax, byte [esi + 0xa]
movzx edx, word [esi + 8]
movzx ebp, word [ebx + 4]
mov byte [esp + 0x1c], al
movzx eax, byte [ebx + 6]
mov byte [esp + 0x10], al
mov eax, dword [ebx]
jmp 0x42878a
movzx eax, byte [ebx + 6]
movzx edx, word [ebx + 4]
movzx ebp, word [esi + 8]
mov byte [esp + 0x1c], al
movzx eax, byte [esi + 0xa]
mov byte [esp + 0x10], al
mov eax, dword [ecx]
mov ecx, ebx
push eax
push dword [esp + 0x14]
push ebp
push dword [ecx]
push dword [esp + 0x2c]
push edx
call fcn.0042ee20
add esp, 0x18
mov dword [esi + 0x34], eax
test eax, eax
je 0x4289c4
mov ebp, dword [esp + 0x14]
cmp dword [esi + 0x14], 0
jne 0x42880b
mov eax, dword [ebx + 0xc]
add eax, eax
push eax
push 0x2000
call fcn.0047b500
add esp, 8
mov dword [esi + 0x5c], eax
test eax, eax
jne 0x4287f6
push esi
call fcn.00428290
push str.Couldnt_create_audio_buffer_queue
call fcn.0041ad60
add esp, 8
xor eax, eax
pop ebx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.00401033
add esp, 0x6c
ret
test ebp, ebp
mov dword [esi + 0x30], esi
mov eax, 0x427000
mov ecx, 0x427040
cmovne eax, ecx
mov dword [esi + 0x2c], eax
test edi, edi
je 0x428814
mov eax, dword [esi + 0x28]
jmp 0x428816
xor eax, eax
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x4c], eax
cmp ecx, eax
jbe 0x428825
mov dword [esi + 0x4c], ecx
mov eax, ecx
push eax
call fcn.00458170
add esp, 4
mov dword [esi + 0x48], eax
test eax, eax
jne 0x42885a
push esi
call fcn.00428290
push 0
call fcn.0041ac90
add esp, 8
xor eax, eax
pop ebx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.00401033
add esp, 0x6c
ret
push dword [0x57e02c]
call fcn.0044b4a0
mov ecx, dword [esp + 0x98]
add esp, 4
dec ecx
cmp ecx, 0x10
jae 0x428885
cmp dword [ecx*4 + 0x57e048], 0
je 0x4288ba
inc ecx
cmp ecx, 0x10
jb 0x428875
jne 0x4288ba
push esi
call fcn.00428290
push str.Too_many_open_audio_devices
call fcn.0041ad60
push dword [0x57e02c]
call fcn.0044b4e0
add esp, 0xc
xor eax, eax
pop ebx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.00401033
add esp, 0x6c
ret
lea eax, [ecx + 1]
mov dword [esi], eax
push dword [0x57e02c]
mov dword [ecx*4 + 0x57e048], esi
call fcn.0044b4e0
add esp, 4
cmp dword [0x57e014], 0
jne 0x4289af
push 0
mov dword [esp + 0x18], esi
call fcn.0044b980
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x42891f
push esi
call fcn.00428290
push str.Couldnt_create_audio_thread_startup_semaphore
call fcn.0041ad60
add esp, 8
xor eax, eax
pop ebx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.00401033
add esp, 0x6c
ret
push dword [esi]
mov ecx, 0x43
test ebp, ebp
mov eax, 0x50
cmovne eax, ecx
push eax
push str.SDLAudio_c_u
lea eax, [esp + 0x44]
push 0x40
push eax
call fcn.0041c250
lea eax, [esp + 0x28]
mov ecx, 0x4270a0
push eax
push 0
lea eax, [esp + 0x54]
test ebp, ebp
push eax
mov eax, 0x427e00
cmovne eax, ecx
push eax
call fcn.0041db90
add esp, 0x24
mov dword [esi + 0x54], eax
push dword [esp + 0x18]
test eax, eax
jne 0x42899e
call fcn.0044ba10
push esi
call fcn.00428290
push str.Couldnt_create_audio_thread
call fcn.0041ad60
add esp, 0xc
xor eax, eax
pop ebx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.00401033
add esp, 0x6c
ret
call fcn.0044ba60
push dword [esp + 0x1c]
call fcn.0044ba10
add esp, 8
mov eax, dword [esi]
pop ebx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.00401033
add esp, 0x6c
ret
push esi
call fcn.00428290
add esp, 4
mov ecx, dword [esp + 0x78]
xor eax, eax
pop ebx
pop edi
pop esi
pop ebp
xor ecx, esp
call fcn.00401033
add esp, 0x6c
ret