Function at 0x4283d0
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 [0x57dfe0], esi
jne 0x428424
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 0x428451
cmp dword [0x57e028], esi
jne 0x428451
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.00428a10
add esp, 8
test eax, eax
je 0x4289ed
test edi, edi
jne 0x428480
push str.SDL_AUDIO_DEVICE_NAME
call fcn.00458300
add esp, 4
mov edi, eax
test ebp, ebp
je 0x428509
cmp dword [0x57e030], esi
je 0x428599
test edi, edi
je 0x4284ae
push str.System_audio_capture_device
push edi
call fcn.0041c300
add esp, 8
test eax, eax
jne 0x42852b
push dword [0x57e03c]
xor edi, edi
call fcn.0044b4e0
add esp, 4
xor eax, eax
mov ecx, dword [eax + 0x57e058]
test ecx, ecx
je 0x4284cf
cmp dword [ecx + 0x44], esi
jne 0x4284dc
add eax, 4
cmp eax, 0x40
jb 0x4284c0
jmp 0x4285de
push str.Audio_device_already_open
call fcn.0041ad60
push dword [0x57e03c]
call fcn.0044b520
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 [0x57e02c], esi
je 0x428599
test edi, edi
je 0x42853a
push str.System_audio_output_device
push edi
call fcn.0041c300
add esp, 8
test eax, eax
je 0x42853a
push str.No_such_device
call fcn.0041ad60
jmp 0x4289ea
push dword [0x57e03c]
xor edi, edi
call fcn.0044b4e0
add esp, 4
xor eax, eax
nop dword [eax]
mov ecx, dword [eax + 0x57e058]
test ecx, ecx
je 0x42855f
cmp dword [ecx + 0x44], esi
je 0x42856c
add eax, 4
cmp eax, 0x40
jb 0x428550
jmp 0x4285de
push dword [0x57e03c]
call fcn.0044b520
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 0x4285ec
push dword [0x57e03c]
call fcn.0044b4e0
mov esi, dword [0x57e050]
add esp, 4
test ebp, ebp
cmovne esi, dword [0x57e054]
test esi, esi
je 0x4285dc
nop
cmp dword [esi], 0
je 0x4285d5
push edi
push dword [esi + 4]
call fcn.0041c300
add esp, 8
test eax, eax
je 0x42860c
mov esi, dword [esi + 0x28]
test esi, esi
jne 0x4285c0
xor esi, esi
push dword [0x57e03c]
call fcn.0044b520
add esp, 4
cmp dword [0x57e034], 0
jne 0x428614
test esi, esi
jne 0x428614
test edi, edi
je 0x428614
push str.No_such_device.
call fcn.0041ad60
jmp 0x4289ea
mov esi, dword [esi]
mov dword [esp + 0x10], esi
jmp 0x4285de
push 0x68
push 1
call fcn.00458210
add esp, 8
mov esi, eax
push 0
test esi, esi
jne 0x428632
call fcn.0041ac90
jmp 0x4289ea
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.00426870
lea eax, [esi + 0x40]
push 1
push eax
call fcn.00426870
lea eax, [esi + 0x3c]
push 1
push eax
call fcn.00426870
add esp, 0x18
cmp dword [0x57e010], 0x426f20
jne 0x4286b6
call fcn.0044b420
mov dword [esi + 0x50], eax
test eax, eax
jne 0x4286b6
push esi
call fcn.004282b0
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 [0x57e038], 0
jne 0x4286d5
movzx eax, word [esi + 0xc]
test ax, ax
je 0x4286d5
push eax
call fcn.0047b8d0
add esp, 4
mov word [esi + 0xc], ax
push edi
push esi
call dword [0x57dfec]
add esp, 8
test eax, eax
js 0x4289e4
mov ecx, dword [esi + 4]
xor edi, edi
mov eax, dword [esp + 0x90]
cmp dword [ebx], ecx
je 0x428705
test al, 1
je 0x428700
mov dword [ebx], ecx
jmp 0x428705
mov edi, 1
movzx ecx, word [esi + 8]
cmp word [ebx + 4], cx
je 0x42871e
test al, 2
je 0x428719
mov word [ebx + 4], cx
jmp 0x42871e
mov edi, 1
mov cl, byte [esi + 0xa]
cmp byte [ebx + 6], cl
je 0x428734
test al, 4
je 0x42872f
mov byte [ebx + 6], cl
jmp 0x428734
mov edi, 1
movzx ecx, word [esi + 0xc]
cmp cx, word [ebx + 8]
je 0x42874d
test al, 8
je 0x428748
mov word [ebx + 8], cx
jmp 0x42874d
mov edi, 1
push ebx
call fcn.00427070
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 0x4287ce
lea ecx, [esi + 4]
test ebp, ebp
je 0x42878e
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 0x4287aa
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.0042ee40
add esp, 0x18
mov dword [esi + 0x34], eax
test eax, eax
je 0x4289e4
mov ebp, dword [esp + 0x14]
cmp dword [esi + 0x14], 0
jne 0x42882b
mov eax, dword [ebx + 0xc]
add eax, eax
push eax
push 0x2000
call fcn.0047b610
add esp, 8
mov dword [esi + 0x5c], eax
test eax, eax
jne 0x428816
push esi
call fcn.004282b0
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, 0x427010
mov ecx, 0x427050
cmovne eax, ecx
mov dword [esi + 0x2c], eax
test edi, edi
je 0x428834
mov eax, dword [esi + 0x28]
jmp 0x428836
xor eax, eax
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x4c], eax
cmp ecx, eax
jbe 0x428845
mov dword [esi + 0x4c], ecx
mov eax, ecx
push eax
call fcn.00458270
add esp, 4
mov dword [esi + 0x48], eax
test eax, eax
jne 0x42887a
push esi
call fcn.004282b0
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 [0x57e03c]
call fcn.0044b4e0
mov ecx, dword [esp + 0x98]
add esp, 4
dec ecx
cmp ecx, 0x10
jae 0x4288a5
cmp dword [ecx*4 + 0x57e058], 0
je 0x4288da
inc ecx
cmp ecx, 0x10
jb 0x428895
jne 0x4288da
push esi
call fcn.004282b0
push str.Too_many_open_audio_devices
call fcn.0041ad60
push dword [0x57e03c]
call fcn.0044b520
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 [0x57e03c]
mov dword [ecx*4 + 0x57e058], esi
call fcn.0044b520
add esp, 4
cmp dword [0x57e024], 0
jne 0x4289cf
push 0
mov dword [esp + 0x18], esi
call fcn.0044b9c0
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x42893f
push esi
call fcn.004282b0
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, 0x4270b0
push eax
push 0
lea eax, [esp + 0x54]
test ebp, ebp
push eax
mov eax, 0x427e20
cmovne eax, ecx
push eax
call fcn.0041db90
add esp, 0x24
mov dword [esi + 0x54], eax
push dword [esp + 0x18]
test eax, eax
jne 0x4289be
call fcn.0044ba50
push esi
call fcn.004282b0
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.0044baa0
push dword [esp + 0x1c]
call fcn.0044ba50
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.004282b0
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