Function at 0x40272c
Capabilities:
Read file on windows
Terminate process

Disassembly:
push edi
push esi
push ebp
push ebx
push ecx
push edx
push eax
mov eax, 0x3e14
call fcn.004475a0
mov ecx, dword [esp + 0x3e1c]
mov edx, dword [esp + 0x3e18]
mov eax, dword [esp + 0x3e14]
mov dword [esp + 0x3e18], ecx
mov esi, edx
mov edi, eax
mov eax, dword [0x482908]
mov dword [esp + 0x3e1c], eax
push edi
call fcn.0040ea24
mov dword [esp + 0x3e18], eax
push edi
call fcn.0040e398
mov ebx, eax
push edi
call fcn.0040ea64
add esp, 0xc
mov ebp, eax
mov eax, dword [0x4844e0]
test eax, eax
je 0x4027ab
mov eax, dword [0x4844f0]
cmp ebp, eax
jae 0x40279d
mov eax, ebp
neg eax
add eax, ebp
cmp eax, ebx
jae 0x4027ab
test ebp, ebp
je 0x4027ab
mov ebx, eax
mov eax, dword [0x49e864]
cmp eax, 4
je 0x40296a
cmp eax, 5
je 0x40296a
cmp eax, 6
je 0x40296a
cmp eax, 7
je 0x40296a
imul ebx, dword [esp + 0x3e14]
mov eax, dword [0x4844f4]
mov ecx, dword [0x4844e4]
mov dword [esp + 0x41c], eax
cmp ecx, 0x10
je 0x40283e
cmp ecx, 0x18
je 0x40283e
cmp ecx, 0x20
je 0x40283e
cmp ecx, 8
jne 0x402828
mov ecx, dword [0x4844ec]
lea edi, [esp + 0x1a14]
mov dword [esp + 0xc], edi
mov edx, 1
mov dword [esp + 0x10], eax
mov eax, ebx
call fcn.00402e70
jmp 0x4028a8
mov eax, dword [0x49e848]
cmp eax, 0xa
jl 0x402b0f
push 1
call fcn.004471f7
pop ecx
mov eax, dword [section..data]
test eax, eax
je 0x402bde
mov edx, dword [0x4844fc]
mov edi, dword [0x4844e8]
xor eax, eax
test edx, edx
setne al
mov dword [esp + 0x418], eax
test edi, edi
je 0x402877
xor edx, edx
test eax, eax
sete dl
mov dword [esp + 0x418], edx
mov eax, dword [esp + 0x41c]
lea edi, [esp + 0x1a14]
mov dword [esp + 0xc], edi
mov edx, ecx
sar edx, 2
mov dword [esp + 0x10], eax
shr edx, 0x1d
add edx, ecx
sar edx, 3
mov eax, ebx
mov ecx, dword [esp + 0x418]
call fcn.00402e70
mov edi, eax
mov eax, dword [esp + 0x41c]
push eax
call fcn.00447af2
pop ecx
test eax, eax
jne 0x402bbf
test edi, edi
jl 0x402e55
mov ebx, dword [esp + 0x3e14]
lea ecx, [esp + edi*4 + 0x1a14]
mov dword [esp + 0x41c], ecx
mov eax, edi
cdq
idiv ebx
test esi, esi
mov ebx, eax
je 0x402b1f
mov edx, dword [esp + 0x3e14]
cmp edx, 2
jne 0x402926
mov edx, ebx
add edx, 0xffffffff
js 0x402a6c
lea edx, [esi + ebx*4]
lea eax, [esi + 4]
mov edi, dword [ecx - 4]
mov dword [edx + 0x11fc], edi
add ecx, 0xfffffff8
mov edi, dword [ecx]
mov dword [edx - 4], edi
add edx, 0xfffffffc
cmp eax, edx
jbe 0x402909
jmp 0x402a6c
cmp edx, 1
jne 0x402a6c
lea ecx, [esi + 0x1200]
mov edx, ebx
shl edx, 2
push edx
push 0
push ecx
call fcn.0040a02c
add esp, 0xc
mov edx, ebx
add edx, 0xffffffff
js 0x402a6c
mov edi, dword [esp + 0x41c]
add edi, 0xfffffffc
mov ecx, dword [edi]
mov dword [esi + edx*4], ecx
add edx, 0xffffffff
jns 0x402958
jmp 0x402a6c
test esi, esi
je 0x402c9a
mov edx, dword [0x4844f4]
lea eax, [esp + 0xd14]
lea ebx, [esp + 0x1614]
lea ecx, [esp + 0x414]
push 0x49e820
push eax
push ecx
push 0
push ebx
mov dword [esp + 0x3e2c], edx
call fcn.0040ee30
mov edx, dword [esp + 0x3e2c]
add esp, 0x14
mov ebx, eax
test ebx, ebx
jne 0x402a18
mov dword [esp + 0x1a14], esi
lea esi, [esp + 0xd14]
mov ebx, edx
lea eax, [esp + 0x1614]
push ebx
push 0x400
push 1
push eax
call fcn.00446f60
add esp, 0x10
test eax, eax
je 0x402c54
lea edx, [esp + 0x1614]
lea ecx, [esp + 0x414]
push 0x49e820
push esi
push ecx
push eax
push edx
call fcn.0040ee30
add esp, 0x14
cmp eax, 0xffffffff
je 0x402c3e
test eax, eax
jle 0x4029c3
mov esi, dword [esp + 0x1a14]
mov ebx, eax
test ebx, ebx
jl 0x402c20
push edi
call fcn.0040ea24
pop ecx
cmp eax, dword [0x49e824]
je 0x402a42
mov eax, dword [0x49e848]
cmp eax, 0xa
jl 0x402bf2
mov ebx, 0xffffffff
push edi
call fcn.0040ea4c
pop ecx
cmp eax, dword [0x49e828]
je 0x402a64
mov eax, dword [0x49e848]
cmp eax, 0xa
jl 0x402c09
mov ebx, 0xffffffff
test ebx, ebx
jl 0x402e3c
mov edx, dword [0x49e864]
cmp edx, 4
je 0x402a86
cmp edx, 5
je 0x402a86
cmp edx, 6
je 0x402a86
cmp edx, 7
jne 0x402aeb
test esi, esi
je 0x402aeb
mov eax, ebx
add eax, 0xffffffff
mov edx, eax
js 0x402aa6
movzx ecx, word [esp + edx*2 + 0x414]
shl ecx, 0x10
mov dword [esi + edx*4], ecx
add edx, 0xffffffff
jns 0x402a93
mov edx, dword [esp + 0x3e14]
cmp edx, 2
jne 0x402acf
test eax, eax
jl 0x402aeb
movzx edx, word [esp + eax*2 + 0xd14]
shl edx, 0x10
mov dword [esi + eax*4 + 0x1200], edx
add eax, 0xffffffff
jns 0x402ab6
jmp 0x402aeb
cmp edx, 1
jne 0x402aeb
add esi, 0x1200
mov edx, ebx
shl edx, 2
push edx
push 0
push esi
call fcn.0040a02c
add esp, 0xc
cmp ebp, 0xffffffff
je 0x402af6
add dword [0x4844f0], ebx
mov ecx, dword [esp + 0x3e1c]
call fcn.00446571
mov eax, ebx
add esp, 0x3e20
pop ebx
pop ebp
pop esi
pop edi
ret
push str.Only_8__16__24_and_32_bit_input_files_supported__n
call fcn.00401d80
pop ecx
jmp 0x402836
mov edx, dword [esp + 0x3e14]
cmp edx, 2
jne 0x402b6c
mov edx, ebx
add edx, 0xffffffff
js 0x402a6c
mov edx, dword [esp + 0x3e18]
lea eax, [edx + ebx*2]
add edx, 2
mov dword [esp + 0x3e18], edx
movzx edi, word [ecx - 2]
mov word [eax + 0x8fe], di
add ecx, 0xfffffff8
movzx edi, word [ecx + 2]
mov word [eax - 2], di
add eax, 0xfffffffe
cmp edx, eax
jbe 0x402b4a
jmp 0x402a6c
cmp edx, 1
jne 0x402a6c
mov edx, dword [esp + 0x3e18]
lea edi, [edx + 0x900]
lea ecx, [ebx + ebx]
push ecx
push 0
push edi
call fcn.0040a02c
add esp, 0xc
mov eax, ebx
add eax, 0xffffffff
js 0x402a6c
mov ecx, dword [esp + 0x3e18]
mov edi, dword [esp + 0x41c]
add edi, 0xfffffffc
movzx edx, word [edi + 2]
mov word [ecx + eax*2], dx
add eax, 0xffffffff
jns 0x402baa
jmp 0x402a6c
mov eax, dword [0x49e848]
cmp eax, 0xa
jl 0x402bd1
push 1
call fcn.004471f7
pop ecx
push str.Error_reading_input_file_n
call fcn.00401d80
pop ecx
jmp 0x402bc9
push str.Unsigned_input_only_supported_with_bitwidth_8_n
call fcn.00401d80
push 1
call fcn.004471f7
add esp, 8
push 0x45a360
push str.Error:_number_of_channels_has_changed_in__s___not_supported_n
call fcn.00401d80
add esp, 8
jmp 0x402a3d
push 0x45a360
push str.Error:_sample_frequency_has_changed_in__s___not_supported_n
call fcn.00401d80
add esp, 8
jmp 0x402a5f
lea eax, [esp + 0x414]
push 0x1200
push 0
push eax
call fcn.0040a02c
add esp, 0xc
xor ebx, ebx
jmp 0x402a64
mov esi, dword [esp + 0x1a14]
call fcn.0040eec0
mov ebx, 0xffffffff
jmp 0x402a18
mov esi, dword [esp + 0x1a14]
lea ebx, [esp + 0x1614]
lea ecx, [esp + 0x414]
push 0x49e820
lea edx, [esp + 0xd18]
push edx
push ecx
push eax
push ebx
call fcn.0040ee30
add esp, 0x14
mov ebx, eax
test ebx, ebx
jg 0x402a18
call fcn.0040eec0
mov ebx, 0xffffffff
jmp 0x402a18
mov eax, dword [0x4844f4]
mov ecx, dword [esp + 0x3e18]
mov dword [esp + 0x418], eax
lea ebx, [esp + 0x14]
lea edx, [ecx + 0x900]
mov dword [esp + 0x41c], edx
push 0x49e820
push edx
push ecx
push 0
push ebx
call fcn.0040ee30
add esp, 0x14
mov ebx, eax
test ebx, ebx
jne 0x402d48
mov ebx, dword [esp + 0x41c]
mov dword [esp + 0x414], edi
mov edi, dword [esp + 0x3e18]
mov dword [esp + 0x1a14], esi
mov esi, dword [esp + 0x418]
lea eax, [esp + 0x14]
push esi
push 0x400
push 1
push eax
call fcn.00446f60
add esp, 0x10
test eax, eax
je 0x402df2
lea edx, [esp + 0x14]
push 0x49e820
push ebx
push edi
push eax
push edx
call fcn.0040ee30
add esp, 0x14
cmp eax, 0xffffffff
je 0x402dd5
test eax, eax
jle 0x402cf9
mov edi, dword [esp + 0x414]
mov esi, dword [esp + 0x1a14]
mov ebx, eax
test ebx, ebx
jl 0x402db7
push edi
call fcn.0040ea24
pop ecx
cmp eax, dword [0x49e824]
je 0x402d6a
mov eax, dword [0x49e848]
cmp eax, 0xa
jl 0x402d8c
mov ebx, 0xffffffff
push edi
call fcn.0040ea4c
pop ecx
cmp eax, dword [0x49e828]
je 0x402a64
mov eax, dword [0x49e848]
cmp eax, 0xa
jl 0x402da0
jmp 0x402a5f
push 0x45a360
push str.Error:_number_of_channels_has_changed_in__s___not_supported_n
call fcn.00401d80
add esp, 8
jmp 0x402d65
push 0x45a360
push str.Error:_sample_frequency_has_changed_in__s___not_supported_n
call fcn.00401d80
add esp, 8
jmp 0x402a5f
push 0x1200
push 0
mov eax, dword [esp + 0x3e20]
push eax
call fcn.0040a02c
add esp, 0xc
xor ebx, ebx
jmp 0x402a64
mov edi, dword [esp + 0x414]
mov esi, dword [esp + 0x1a14]
call fcn.0040eec0
mov ebx, 0xffffffff
jmp 0x402d48
mov edi, dword [esp + 0x414]
mov esi, dword [esp + 0x1a14]
lea ebx, [esp + 0x14]
push 0x49e820
mov edx, dword [esp + 0x420]
push edx
mov ecx, dword [esp + 0x3e20]
push ecx
push eax
push ebx
call fcn.0040ee30
add esp, 0x14
mov ebx, eax
test ebx, ebx
jg 0x402d48
call fcn.0040eec0
mov ebx, 0xffffffff
jmp 0x402d48
mov ecx, dword [esp + 0x3e1c]
call fcn.00446571
mov eax, ebx
add esp, 0x3e20
pop ebx
pop ebp
pop esi
pop edi
ret
mov ecx, dword [esp + 0x3e1c]
call fcn.00446571
mov eax, edi
add esp, 0x3e20
pop ebx
pop ebp
pop esi
pop edi
ret