Function at 0x140004560
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x50
xor r13d, r13d
lea rcx, [rbp + 0x58]
mov rdi, rdx
mov word [rbp - 0xc], r13w
mov r9, rdx
mov dword [rbp + 0x58], r13d
mov edx, 1
mov r8d, 4
mov r15d, r13d
movzx esi, r13w
movzx r12d, r13w
call fcn.14003bcb0
mov r9, rdi
mov dword [rbp + 0x50], r13d
mov edx, 1
lea rcx, [rbp + 0x50]
mov r8d, 4
call fcn.14003bcb0
movzx eax, byte [rbp + 0x51]
movzx ecx, byte [rbp + 0x50]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0x52]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0x53]
shl ecx, 8
or ecx, eax
cmp ecx, 0x57415645
jne 0x1400048a7
movzx eax, byte [rbp + 0x59]
movzx ecx, byte [rbp + 0x58]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0x5a]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0x5b]
shl ecx, 8
or ecx, eax
cmp ecx, 1
jb 0x1400048a7
mov r14d, r13d
nop
mov r9, rdi
mov dword [rbp - 0x28], r13d
mov edx, 1
lea rcx, [rbp - 0x28]
mov r8d, 4
call fcn.14003bcb0
movzx eax, byte [rbp - 0x27]
mov r9, rdi
movzx ecx, byte [rbp - 0x28]
mov edx, 1
shl ecx, 8
mov r8d, 4
or ecx, eax
movzx eax, byte [rbp - 0x26]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp - 0x25]
shl ecx, 8
or ecx, eax
cmp ecx, 0x666d7420
jne 0x140004853
lea rcx, [rbp - 0x24]
mov dword [rbp - 0x24], r13d
call fcn.14003bcb0
movzx eax, byte [rbp - 0x22]
movzx ebx, byte [rbp - 0x21]
shl ebx, 8
or ebx, eax
movzx eax, byte [rbp - 0x23]
shl ebx, 8
or ebx, eax
movzx eax, byte [rbp - 0x24]
shl ebx, 8
or ebx, eax
mov eax, ebx
and eax, 1
add ebx, eax
cmp ebx, 0x10
jb 0x1400048a7
mov r9, rdi
mov word [rbp + 0x50], r13w
mov edx, 1
lea rcx, [rbp + 0x50]
mov r8d, 2
call fcn.14003bcb0
movzx eax, byte [rbp + 0x50]
lea rcx, [rbp + 0x58]
movzx esi, byte [rbp + 0x51]
mov r9, rdi
shl si, 8
mov edx, 1
mov r8d, 2
mov word [rbp + 0x58], r13w
or si, ax
call fcn.14003bcb0
movzx ecx, byte [rbp + 0x59]
mov r9, rdi
movzx eax, byte [rbp + 0x58]
mov edx, 1
shl cx, 8
mov r8d, 4
or cx, ax
mov dword [rbp - 0x20], r13d
mov word [rbp - 0xc], cx
lea rcx, [rbp - 0x20]
call fcn.14003bcb0
movzx eax, byte [rbp - 0x1e]
lea rcx, [rbp - 8]
movzx r15d, byte [rbp - 0x1d]
mov r9, rdi
shl r15d, 8
mov edx, 1
or r15d, eax
mov dword [rbp - 8], r13d
movzx eax, byte [rbp - 0x1f]
mov r8d, 4
shl r15d, 8
or r15d, eax
movzx eax, byte [rbp - 0x20]
shl r15d, 8
or r15d, eax
call fcn.14003bcb0
mov r9, rdi
mov word [rbp - 0x18], r13w
mov edx, 1
lea rcx, [rbp - 0x18]
mov r8d, 2
call fcn.14003bcb0
mov r9, rdi
mov word [rbp - 0x30], r13w
mov edx, 1
lea rcx, [rbp - 0x30]
mov r8d, 2
call fcn.14003bcb0
movzx r12d, byte [rbp - 0x2f]
add ebx, 0xfffffff0
movzx eax, byte [rbp - 0x30]
shl r12w, 8
or r12w, ax
cmp ebx, 9
jbe 0x14000484b
mov eax, 0xfffe
cmp si, ax
jne 0x14000484f
mov r9, rdi
mov word [rbp - 0x14], r13w
mov edx, 1
lea rcx, [rbp - 0x14]
mov r8d, 2
call fcn.14003bcb0
mov r9, rdi
mov word [rbp - 0x10], r13w
mov edx, 1
lea rcx, [rbp - 0x10]
mov r8d, 2
call fcn.14003bcb0
mov r9, rdi
mov dword [rbp - 4], r13d
mov edx, 1
lea rcx, [rbp - 4]
mov r8d, 4
call fcn.14003bcb0
mov r9, rdi
mov word [rbp - 0x2c], r13w
mov edx, 1
lea rcx, [rbp - 0x2c]
mov r8d, 2
call fcn.14003bcb0
movzx esi, byte [rbp - 0x2b]
add ebx, 0xfffffff6
movzx eax, byte [rbp - 0x2c]
shl si, 8
or si, ax
test ebx, ebx
je 0x14000489a
mov edx, ebx
jmp 0x14000488e
cmp ecx, 0x64617461
je 0x1400048c4
lea rcx, [rbp - 0x1c]
mov dword [rbp - 0x1c], r13d
call fcn.14003bcb0
movzx eax, byte [rbp - 0x1a]
movzx ecx, byte [rbp - 0x19]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp - 0x1b]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp - 0x1c]
shl ecx, 8
or ecx, eax
mov edx, ecx
and edx, 1
add edx, ecx
mov rcx, rdi
call fcn.1400024e0
test eax, eax
jne 0x1400048a7
inc r14d
cmp r14d, 0x14
jl 0x140004620
mov eax, 0xffffffff
mov rbx, qword [rsp + 0x98]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rcx, [rbp + 0x50]
mov dword [rbp + 0x50], r13d
call fcn.14003bcb0
movzx eax, byte [rbp + 0x52]
movzx ebx, byte [rbp + 0x53]
shl ebx, 8
or ebx, eax
movzx eax, byte [rbp + 0x51]
shl ebx, 8
or ebx, eax
movzx eax, byte [rbp + 0x50]
shl ebx, 8
or ebx, eax
cmp si, 0x50
je 0x140004a26
cmp si, 0x55
je 0x140004a26
lea eax, [rsi - 1]
mov ecx, 0xfffd
test cx, ax
je 0x140004934
cmp dword [0x14007b4c0], 0xa
jge 0x1400049a7
movzx edx, si
lea rcx, str.Unsupported_data_format:_0x_04X_n
call fcn.140001e20
xor eax, eax
jmp 0x1400048ac
mov r14, qword [rbp + 0x40]
movzx edi, word [rbp - 0xc]
test r14, r14
je 0x1400049ae
mov edx, edi
mov rcx, r14
call fcn.14000d610
cmp eax, 0xffffffff
jne 0x14000496e
cmp dword [0x14007b4c0], 0xa
jge 0x1400049a7
mov edx, edi
lea rcx, str.Unsupported_number_of_channels:__d_n
call fcn.140001e20
xor eax, eax
jmp 0x1400048ac
test r14, r14
je 0x1400049ae
mov eax, dword [0x14007b4b4]
mov rcx, r14
test eax, eax
cmovne r15d, eax
mov edx, r15d
call fcn.14000d340
cmp eax, 0xffffffff
jne 0x1400049ae
cmp dword [0x14007b4c0], 0xa
jge 0x1400049a7
mov edx, r15d
lea rcx, str.Unsupported_sample_rate:__d_n
call fcn.140001e20
xor eax, eax
jmp 0x1400048ac
cmp r12w, 1
jae 0x1400049d7
cmp dword [0x14007b4c0], 0xa
jge 0x1400048a7
movzx edx, r12w
lea rcx, str.Unsupported_bits_per_sample:__d_n
call fcn.140001e20
jmp 0x1400048a7
cmp si, 3
movzx ecx, r12w
mov eax, 0xffffffff
mov dword [0x14007b414], ecx
sete r13b
mov dword [0x14007b41c], 1
mov dword [0x14007b420], r13d
cmp ebx, eax
je 0x140004a12
add ecx, 7
xor edx, edx
shr ecx, 3
mov eax, ebx
imul ecx, edi
div ecx
mov edx, eax
mov rcx, r14
call fcn.14000d650
mov eax, 1
jmp 0x1400048ac
mov eax, 7
jmp 0x1400048ac