Function at 0x404e60
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
mov eax, 0x2834
call fcn.00466f60
mov eax, dword [0x4f6e34]
mov edi, dword [ebp + 8]
xor eax, esp
mov dword [esp + 0x282c], eax
push edi
call fcn.00415aa0
mov ebx, eax
push edi
call fcn.004169e0
mov esi, eax
add esp, 8
lea edx, [ebx - 1]
cmp edx, 1
ja 0x405377
lea edx, [esi - 1]
cmp edx, 0x47f
ja 0x405377
mov ecx, dword [0x4f8df0]
cmp dword [0x4f8d60], 0
je 0x404f11
cmp ecx, 4
je 0x404ee6
cmp ecx, 5
je 0x404ee6
cmp ecx, 6
je 0x404ee6
cmp ecx, 7
je 0x404ee6
push edi
call fcn.00415a00
add esp, 4
mov ecx, dword [0x4f8df0]
jmp 0x404eeb
mov eax, dword [0x514c08]
mov edx, eax
mov edi, dword [0x4f8d74]
sub edx, edi
cmp edi, eax
mov edi, 0
cmovb edi, edx
mov dword [esp + 0x20], edi
cmp edi, esi
mov edi, dword [ebp + 8]
jae 0x404f11
test eax, eax
cmovne esi, dword [esp + 0x20]
cmp ecx, 4
je 0x40521e
cmp ecx, 5
je 0x40521e
cmp ecx, 6
je 0x40521e
cmp ecx, 7
je 0x40521e
cmp dword [0x4f8d7c], 0
je 0x4053cd
xor edx, edx
mov eax, edx
lea esi, [esp + edx*4 + 0x2c]
cdq
idiv ebx
mov edx, eax
cmp ebx, 2
jne 0x404ff4
mov ecx, edx
dec ecx
js 0x405339
mov eax, edx
shr eax, 1
je 0x4053b6
mov ecx, dword [ebp + 0x10]
xor ebx, ebx
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edx
lea edi, [ecx + edx*2]
xor ecx, ecx
mov eax, ecx
movzx edx, word [eax + esi - 2]
inc ebx
mov word [ecx + edi + 0x8fe], dx
movzx edx, word [eax + esi - 6]
mov word [ecx + edi - 2], dx
movzx edx, word [eax + esi - 0xa]
mov word [ecx + edi + 0x8fc], dx
movzx edx, word [eax + esi - 0xe]
add eax, 0xfffffff0
mov word [ecx + edi - 4], dx
add ecx, 0xfffffffc
cmp ebx, dword [esp + 0x24]
jb 0x404f7f
mov edx, dword [esp + 0x20]
lea edi, [ebx + ebx + 1]
lea ecx, [edi - 1]
cmp ecx, edx
jae 0x405339
mov ecx, edx
sub ecx, edi
shl edi, 3
neg edi
mov ebx, dword [ebp + 0x10]
movzx eax, word [edi + esi + 6]
movzx esi, word [edi + esi + 2]
mov word [ebx + ecx*2 + 0x900], ax
mov word [ebx + ecx*2], si
jmp 0x405339
cmp ebx, 1
jne 0x405339
mov ecx, dword [ebp + 0x10]
lea ebx, [edx + edx]
push ebx
push 0
lea edi, [ecx + 0x900]
push edi
mov dword [esp + 0x2c], edx
call fcn.00449a20
mov edx, dword [esp + 0x2c]
add esp, 0xc
mov ecx, edx
dec ecx
js 0x405339
mov ecx, edx
neg ecx
dec ecx
neg ecx
dec ecx
cmp ecx, 0x20
jl 0x4053c0
mov eax, dword [ebp + 0x10]
and eax, 0xf
je 0x40504e
test al, 1
jne 0x4053c0
neg eax
add eax, 0x10
shr eax, 1
lea ebx, [eax + 0x20]
cmp ecx, ebx
jl 0x4053c0
mov ebx, ecx
sub ebx, eax
and ebx, 0x1f
neg ebx
add ebx, ecx
mov dword [esp + 0x28], ebx
lea ebx, [edx*4]
neg ebx
add ebx, esi
test eax, eax
jbe 0x40509a
mov dword [esp + 0x24], esi
xor edi, edi
mov dword [esp + 0x20], ecx
mov esi, dword [ebp + 0x10]
movzx ecx, word [ebx + edi*4 + 2]
mov word [esi + edi*2], cx
inc edi
cmp edi, eax
jb 0x405084
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
lea edi, [ebx + eax*4]
test edi, 0xf
je 0x405142
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x28]
mov edi, dword [ebp + 0x10]
movdqu xmm1, xmmword [ebx + eax*4]
movdqu xmm0, xmmword [ebx + eax*4 + 0x10]
movdqu xmm3, xmmword [ebx + eax*4 + 0x20]
movdqu xmm2, xmmword [ebx + eax*4 + 0x30]
movdqu xmm5, xmmword [ebx + eax*4 + 0x40]
movdqu xmm4, xmmword [ebx + eax*4 + 0x50]
movdqu xmm7, xmmword [ebx + eax*4 + 0x60]
movdqu xmm6, xmmword [ebx + eax*4 + 0x70]
psrad xmm1, 0x10
psrad xmm0, 0x10
psrad xmm3, 0x10
psrad xmm2, 0x10
psrad xmm5, 0x10
psrad xmm4, 0x10
psrad xmm7, 0x10
psrad xmm6, 0x10
packssdw xmm1, xmm0
packssdw xmm3, xmm2
packssdw xmm5, xmm4
packssdw xmm7, xmm6
movdqu xmmword [edi + eax*2], xmm1
movdqu xmmword [edi + eax*2 + 0x10], xmm3
movdqu xmmword [edi + eax*2 + 0x20], xmm5
movdqu xmmword [edi + eax*2 + 0x30], xmm7
add eax, 0x20
cmp eax, esi
jb 0x4050b4
jmp 0x4051d6
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x28]
mov edi, dword [ebp + 0x10]
movdqu xmm1, xmmword [ebx + eax*4]
movdqu xmm0, xmmword [ebx + eax*4 + 0x10]
psrad xmm1, 0x10
movdqu xmm3, xmmword [ebx + eax*4 + 0x20]
psrad xmm0, 0x10
movdqu xmm2, xmmword [ebx + eax*4 + 0x30]
psrad xmm3, 0x10
movdqu xmm5, xmmword [ebx + eax*4 + 0x40]
psrad xmm2, 0x10
movdqu xmm4, xmmword [ebx + eax*4 + 0x50]
psrad xmm5, 0x10
movdqu xmm7, xmmword [ebx + eax*4 + 0x60]
psrad xmm4, 0x10
movdqu xmm6, xmmword [ebx + eax*4 + 0x70]
psrad xmm7, 0x10
psrad xmm6, 0x10
packssdw xmm1, xmm0
packssdw xmm3, xmm2
packssdw xmm5, xmm4
packssdw xmm7, xmm6
movdqu xmmword [edi + eax*2], xmm1
movdqu xmmword [edi + eax*2 + 0x10], xmm3
movdqu xmmword [edi + eax*2 + 0x20], xmm5
movdqu xmmword [edi + eax*2 + 0x30], xmm7
add eax, 0x20
cmp eax, esi
jb 0x40514d
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
lea edi, [ebx + 1]
cmp edi, ecx
ja 0x405339
lea eax, [edx*4]
neg eax
sub ecx, ebx
add esi, eax
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
lea edi, [edi + ebx*2]
lea ebx, [esi + ebx*4]
movzx esi, word [ebx + eax*4 + 2]
mov word [edi + eax*2], si
inc eax
cmp eax, ecx
jb 0x40520b
jmp 0x405339
mov eax, dword [ebp + 0x10]
lea edx, [esp + 0x242c]
push 0x514bec
mov ebx, dword [0x4f8d78]
lea esi, [eax + 0x900]
push esi
push eax
push 0
push edx
push dword [0x4f8d80]
call fcn.004174b0
mov edx, eax
add esp, 0x18
test edx, edx
jne 0x40529d
lea edi, [esp + 0x242c]
push ebx
push 0x400
push 1
push edi
call fcn.0046b3d5
add esp, 0x10
test eax, eax
je 0x405570
push 0x514bec
push esi
push dword [ebp + 0x10]
push eax
push edi
push dword [0x4f8d80]
call fcn.004174b0
mov edx, eax
add esp, 0x18
cmp edx, 0xffffffff
je 0x405557
test edx, edx
jle 0x405259
mov edi, dword [ebp + 8]
jl 0x405557
push edi
mov dword [esp + 0x24], edx
call fcn.00415aa0
mov edx, dword [esp + 0x24]
add esp, 4
cmp eax, dword [0x514bf0]
je 0x4052ce
cmp dword [0x4f8e08], 0xa
jl 0x405540
mov edx, 0xffffffff
mov ebx, dword [0x4f8dfc]
test ebx, ebx
push edi
mov ecx, dword [0x514bf4]
cmove ebx, ecx
mov dword [esp + 0x24], edx
call fcn.00415a50
mov edx, dword [esp + 0x24]
add esp, 4
cmp eax, ebx
je 0x405335
cmp dword [0x4f8e08], 0xa
jl 0x405529
mov edx, 0xffffffff
mov ecx, dword [esp + 0x282c]
mov dword [esp + 0x282c], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x405506
mov eax, edx
add esp, 0x2834
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test edx, edx
jl 0x405306
cmp dword [0x4f8d60], 0
je 0x405348
add dword [0x4f8d74], edx
mov ecx, dword [esp + 0x282c]
mov dword [esp + 0x282c], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x405506
mov eax, edx
add esp, 0x2834
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [0x4f8e08], 0xa
jl 0x40559f
mov ecx, dword [esp + 0x282c]
mov dword [esp + 0x282c], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x405506
mov eax, 0xffffffff
add esp, 0x2834
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, 1
jmp 0x404fc2
mov dword [esp + 0x28], 0
jmp 0x4051da
imul esi, ebx
mov ecx, dword [0x4f8d64]
mov edi, dword [0x4f8d78]
cmp ecx, 0x10
je 0x40540e
cmp ecx, 0x18
je 0x40540e
cmp ecx, 0x20
je 0x40540e
cmp ecx, 8
je 0x405402
cmp dword [0x4f8e08], 0xa
jl 0x40551a
jmp 0x4054ae
mov edx, dword [0x4f8d6c]
mov dword [esp + 0x20], edx
jmp 0x405454
cmp dword [0x4f6004], 0
jne 0x405429
cmp dword [0x4f8e08], 0xa
jl 0x4054e7
jmp 0x4054ae
cmp dword [0x4f6008], 0
je 0x405444
xor edx, edx
cmp dword [0x4f8d68], 1
setb dl
mov dword [esp + 0x20], edx
jmp 0x405454
xor edx, edx
cmp dword [0x4f8d68], 0
seta dl
mov dword [esp + 0x20], edx
cmp esi, 0x900
jbe 0x40546b
cmp dword [0x4f8e08], 0xa
jl 0x4054f6
jmp 0x4054ae
mov edx, ecx
mov eax, esi
sar edx, 2
shr edx, 0x1d
add edx, ecx
lea ecx, [esp + 0x2c]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edi
sar edx, 3
mov ecx, dword [ecx - 0xc]
call fcn.00403c50
mov edx, eax
push edi
mov dword [esp + 0x24], edx
call fcn.0046b506
mov edx, dword [esp + 0x24]
add esp, 4
test eax, eax
je 0x4054de
cmp dword [0x4f8e08], 0xa
jl 0x40550b
mov edx, 0xffffffff
mov ecx, dword [esp + 0x282c]
mov dword [esp + 0x282c], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x405506
mov eax, edx
add esp, 0x2834
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test edx, edx
jl 0x4054b3
jmp 0x404f44
push str.Unsigned_input_only_supported_with_bitwidth_8_n
call fcn.004023b0
add esp, 4
jmp 0x4054ae
push esi
push str.Error:_unexpected_number_of_samples_to_read:__d_n
call fcn.004023b0
add esp, 8
jmp 0x4054ae
call fcn.00466f40
push str.Error_reading_input_file_n
call fcn.004023b0
add esp, 4
jmp 0x4054ae
push str.Only_8__16__24_and_32_bit_input_files_supported__n
call fcn.004023b0
add esp, 4
jmp 0x4054ae
push 0x4834b8
push str.Error:_sample_frequency_has_changed_in__s___not_supported_n
call fcn.004023b0
add esp, 8
jmp 0x405301
push 0x4834b8
push str.Error:_number_of_channels_has_changed_in__s___not_supported_n
call fcn.004023b0
add esp, 8
jmp 0x4052c9
push 0x1200
push 0
push dword [ebp + 0x10]
call fcn.00449a20
add esp, 0xc
xor edx, edx
jmp 0x405339
push 0x514bec
push esi
push dword [ebp + 0x10]
push 0
mov edi, dword [ebp + 8]
lea eax, [esp + 0x243c]
push eax
push dword [0x4f8d80]
call fcn.004174b0
mov edx, eax
add esp, 0x18
test edx, edx
jle 0x405557
jmp 0x40529d
push str.Error:_internal_problem__n
call fcn.004023b0
add esp, 4
jmp 0x405384