Function at 0x4029d0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
mov eax, 0x3e54
call fcn.00466f60
mov eax, dword [0x4f6e34]
mov edi, dword [ebp + 8]
xor eax, esp
mov dword [esp + 0x3e50], eax
push edi
call fcn.00415aa0
mov esi, eax
push edi
call fcn.004169e0
mov ebx, eax
add esp, 8
lea edx, [esi - 1]
cmp edx, 1
ja 0x40355a
lea edx, [ebx - 1]
cmp edx, 0x47f
ja 0x40355a
mov ecx, dword [0x4f8df0]
cmp dword [0x4f8d60], 0
je 0x402a81
cmp ecx, 4
je 0x402a56
cmp ecx, 5
je 0x402a56
cmp ecx, 6
je 0x402a56
cmp ecx, 7
je 0x402a56
push edi
call fcn.00415a00
add esp, 4
mov ecx, dword [0x4f8df0]
jmp 0x402a5b
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, ebx
mov edi, dword [ebp + 8]
jae 0x402a81
test eax, eax
cmovne ebx, dword [esp + 0x20]
cmp ecx, 4
je 0x402ccd
cmp ecx, 5
je 0x402ccd
cmp ecx, 6
je 0x402ccd
cmp ecx, 7
je 0x402ccd
cmp dword [0x4f8d7c], 0
je 0x40387c
xor edx, edx
mov eax, edx
lea edi, [esp + edx*4 + 0x44]
cdq
idiv esi
mov ebx, eax
cmp dword [ebp + 0xc], 0
je 0x4035b0
cmp esi, 2
jne 0x402b77
mov edx, ebx
dec edx
js 0x402c9e
mov eax, ebx
shr eax, 1
je 0x403599
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x30], ebx
mov dword [esp + 0x40], esi
lea ecx, [ecx + ebx*4]
mov dword [esp + 0x20], ecx
xor ecx, ecx
mov eax, ecx
mov ebx, dword [esp + 0x20]
inc edx
mov esi, dword [ecx + edi - 4]
mov dword [eax + ebx + 0x11fc], esi
mov esi, dword [ecx + edi - 8]
mov dword [eax + ebx - 4], esi
mov esi, dword [ecx + edi - 0xc]
mov dword [eax + ebx + 0x11f8], esi
mov esi, dword [ecx + edi - 0x10]
add ecx, 0xfffffff0
mov dword [eax + ebx - 8], esi
add eax, 0xfffffff8
cmp edx, dword [esp + 0x24]
jb 0x402b01
mov ebx, dword [esp + 0x30]
lea edx, [edx + edx + 1]
mov esi, dword [esp + 0x40]
lea ecx, [edx - 1]
cmp ecx, ebx
jae 0x402c9e
mov dword [esp + 0x30], ebx
sub ebx, edx
shl edx, 3
neg edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [edx + edi + 4]
mov edx, dword [edx + edi]
mov dword [eax + ebx*4 + 0x1200], ecx
mov dword [eax + ebx*4], edx
mov ebx, dword [esp + 0x30]
jmp 0x402c9e
cmp esi, 1
jne 0x402c9e
mov edx, dword [ebp + 0xc]
lea ecx, [ebx*4]
push ecx
push 0
lea edx, [edx + 0x1200]
push edx
call fcn.00449a20
add esp, 0xc
mov edx, ebx
dec edx
js 0x402c9e
mov edx, ebx
neg edx
dec edx
neg edx
dec edx
mov dword [esp + 0x28], edx
cmp edx, 4
jl 0x4035a3
mov eax, dword [ebp + 0xc]
and eax, 0xf
je 0x402bd2
test al, 3
jne 0x4035a3
neg eax
add eax, 0x10
shr eax, 2
lea edx, [eax + 4]
cmp edx, dword [esp + 0x28]
jg 0x4035a3
mov edx, dword [esp + 0x28]
mov ecx, edx
sub ecx, eax
and ecx, 3
neg ecx
add ecx, edx
mov dword [esp + 0x20], ecx
lea ecx, [ebx*4]
neg ecx
add ecx, edi
test eax, eax
jbe 0x402c21
mov dword [esp + 0x24], edi
xor edx, edx
mov dword [esp + 0x40], esi
mov edi, dword [ebp + 0xc]
mov esi, dword [ecx + edx*4]
mov dword [edi + edx*4], esi
inc edx
cmp edx, eax
jb 0x402c0e
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x40]
lea edx, [ecx + eax*4]
test dl, 0xf
je 0x402c47
mov dword [esp + 0x40], esi
mov edx, dword [esp + 0x20]
mov esi, dword [ebp + 0xc]
movdqu xmm0, xmmword [ecx + eax*4]
movdqu xmmword [esi + eax*4], xmm0
add eax, 4
cmp eax, edx
jb 0x402c34
jmp 0x402c63
mov dword [esp + 0x40], esi
mov edx, dword [esp + 0x20]
mov esi, dword [ebp + 0xc]
movdqu xmm0, xmmword [ecx + eax*4]
movdqu xmmword [esi + eax*4], xmm0
add eax, 4
cmp eax, edx
jb 0x402c52
mov dword [esp + 0x20], edx
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x28]
cmp edx, dword [esp + 0x20]
jbe 0x402c9e
mov dword [esp + 0x40], esi
lea edx, [ebx*4]
neg edx
mov ecx, dword [esp + 0x20]
add edi, edx
mov esi, dword [esp + 0x28]
mov eax, dword [ebp + 0xc]
mov edx, dword [edi + ecx*4]
mov dword [eax + ecx*4], edx
inc ecx
cmp ecx, esi
jb 0x402c8f
mov esi, dword [esp + 0x40]
mov edx, dword [0x4f8df0]
cmp edx, 4
je 0x402e03
cmp edx, 5
je 0x402e03
cmp edx, 6
je 0x402e03
cmp edx, 7
je 0x402e03
jmp 0x40351c
cmp dword [ebp + 0xc], 0
je 0x403ac8
mov eax, dword [0x4f8d78]
lea ecx, [esp + 0x2c50]
mov dword [esp + 0x20], eax
lea edx, [esp + 0x3550]
lea ebx, [esp + 0x2844]
push 0x514bec
push edx
push ecx
push 0
push ebx
push dword [0x4f8d80]
call fcn.004174b0
mov ebx, eax
add esp, 0x18
test ebx, ebx
jne 0x402d78
mov dword [esp + 0x40], esi
lea esi, [esp + 0x2c50]
mov ebx, dword [esp + 0x20]
lea edi, [esp + 0x2844]
push ebx
push 0x400
push 1
push edi
call fcn.0046b3d5
mov edx, eax
add esp, 0x10
test edx, edx
je 0x403a89
push 0x514bec
lea eax, [esp + 0x3554]
push eax
push esi
push edx
push edi
push dword [0x4f8d80]
call fcn.004174b0
add esp, 0x18
cmp eax, 0xffffffff
je 0x403a83
test eax, eax
jle 0x402d29
mov esi, dword [esp + 0x40]
mov ebx, eax
mov edi, dword [ebp + 8]
test ebx, ebx
jl 0x403a65
push edi
call fcn.00415aa0
add esp, 4
cmp eax, dword [0x514bf0]
je 0x402da3
cmp dword [0x4f8e08], 0xa
jl 0x403a4e
mov ebx, 0xffffffff
push edi
mov edi, dword [0x4f8dfc]
test edi, edi
mov edx, dword [0x514bf4]
cmove edi, edx
call fcn.00415a50
add esp, 4
cmp eax, edi
je 0x402dd3
cmp dword [0x4f8e08], 0xa
jl 0x403a37
mov ebx, 0xffffffff
test ebx, ebx
jl 0x403a16
mov edx, dword [0x4f8df0]
cmp edx, 4
je 0x402df9
cmp edx, 5
je 0x402df9
cmp edx, 6
je 0x402df9
cmp edx, 7
jne 0x40351c
cmp dword [ebp + 0xc], 0
je 0x40351c
lea ecx, [ebx - 1]
mov dword [esp + 0x38], ecx
mov edx, ecx
sar edx, 0x1f
not edx
and edx, ebx
mov dword [esp + 0x34], edx
test ecx, ecx
js 0x4034f6
neg edx
dec edx
neg edx
dec edx
cmp edx, 0x20
jl 0x4039f8
mov edi, ecx
sub edi, dword [esp + 0x34]
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx + edi*4 + 4]
and ecx, 0xf
je 0x402e51
test cl, 3
jne 0x4039f8
neg ecx
add ecx, 0x10
shr ecx, 2
lea eax, [ecx + 0x20]
cmp edx, eax
jl 0x4039f8
mov eax, edx
sub eax, ecx
and eax, 0x1f
neg eax
add eax, edx
mov dword [esp + 0x28], eax
lea eax, [esp + edi*2 + 0x2c50]
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 0xc]
lea eax, [eax + edi*4]
mov dword [esp + 0x2c], eax
test ecx, ecx
jbe 0x402ebf
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], edx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x40], esi
mov edx, dword [esp + 0x24]
mov ebx, eax
mov esi, dword [esp + 0x3c]
movzx eax, word [esi + edx*2 + 2]
shl eax, 0x10
mov dword [ebx + edx*4 + 4], eax
inc edx
cmp edx, ecx
jb 0x402ea2
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x40]
add edi, ecx
lea edi, [esp + edi*2 + 0x2c52]
test edi, 0xf
je 0x402fd0
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x3c]
movdqu xmm1, xmmword [eax + ecx*2 + 2]
movdqu xmm3, xmmword [eax + ecx*2 + 0x12]
movdqu xmm5, xmmword [eax + ecx*2 + 0x22]
movdqu xmm7, xmmword [eax + ecx*2 + 0x32]
movdqa xmm0, xmm1
movdqa xmm2, xmm3
movdqa xmm4, xmm5
movdqa xmm6, xmm7
punpcklwd xmm0, xmm1
psrldq xmm1, 8
psrad xmm0, 0x10
punpcklwd xmm2, xmm3
pslld xmm0, 0x10
psrldq xmm3, 8
psrad xmm2, 0x10
punpcklwd xmm4, xmm5
pslld xmm2, 0x10
psrldq xmm5, 8
psrad xmm4, 0x10
punpcklwd xmm6, xmm7
pslld xmm4, 0x10
psrldq xmm7, 8
psrad xmm6, 0x10
punpcklwd xmm1, xmm1
pslld xmm6, 0x10
punpcklwd xmm3, xmm3
psrad xmm1, 0x10
punpcklwd xmm5, xmm5
psrad xmm3, 0x10
punpcklwd xmm7, xmm7
psrad xmm5, 0x10
psrad xmm7, 0x10
pslld xmm1, 0x10
pslld xmm3, 0x10
pslld xmm5, 0x10
pslld xmm7, 0x10
movdqu xmmword [edi + ecx*4 + 4], xmm0
movdqu xmmword [edi + ecx*4 + 0x14], xmm1
movdqu xmmword [edi + ecx*4 + 0x24], xmm2
movdqu xmmword [edi + ecx*4 + 0x34], xmm3
movdqu xmmword [edi + ecx*4 + 0x44], xmm4
movdqu xmmword [edi + ecx*4 + 0x54], xmm5
movdqu xmmword [edi + ecx*4 + 0x64], xmm6
movdqu xmmword [edi + ecx*4 + 0x74], xmm7
add ecx, 0x20
cmp ecx, esi
jb 0x402ee4
jmp 0x4030c7
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x3c]
movdqu xmm1, xmmword [eax + ecx*2 + 2]
movdqu xmm3, xmmword [eax + ecx*2 + 0x12]
movdqa xmm0, xmm1
movdqu xmm5, xmmword [eax + ecx*2 + 0x22]
movdqa xmm2, xmm3
movdqu xmm7, xmmword [eax + ecx*2 + 0x32]
movdqa xmm4, xmm5
movdqa xmm6, xmm7
punpcklwd xmm0, xmm1
psrldq xmm1, 8
psrad xmm0, 0x10
punpcklwd xmm2, xmm3
pslld xmm0, 0x10
psrldq xmm3, 8
psrad xmm2, 0x10
punpcklwd xmm4, xmm5
pslld xmm2, 0x10
psrldq xmm5, 8
psrad xmm4, 0x10
punpcklwd xmm6, xmm7
pslld xmm4, 0x10
psrldq xmm7, 8
psrad xmm6, 0x10
punpcklwd xmm1, xmm1
pslld xmm6, 0x10
punpcklwd xmm3, xmm3
psrad xmm1, 0x10
punpcklwd xmm5, xmm5
psrad xmm3, 0x10
punpcklwd xmm7, xmm7
psrad xmm5, 0x10
psrad xmm7, 0x10
pslld xmm1, 0x10
pslld xmm3, 0x10
pslld xmm5, 0x10
pslld xmm7, 0x10
movdqu xmmword [edi + ecx*4 + 4], xmm0
movdqu xmmword [edi + ecx*4 + 0x14], xmm1
movdqu xmmword [edi + ecx*4 + 0x24], xmm2
movdqu xmmword [edi + ecx*4 + 0x34], xmm3
movdqu xmmword [edi + ecx*4 + 0x44], xmm4
movdqu xmmword [edi + ecx*4 + 0x54], xmm5
movdqu xmmword [edi + ecx*4 + 0x64], xmm6
movdqu xmmword [edi + ecx*4 + 0x74], xmm7
add ecx, 0x20
cmp ecx, esi
jb 0x402fe0
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
lea edi, [ecx + 1]
cmp edi, edx
ja 0x403179
sub edx, dword [esp + 0x28]
cmp edx, 4
jl 0x4039f1
mov eax, dword [esp + 0x3c]
mov ecx, edx
mov edi, dword [esp + 0x28]
and ecx, 0xfffffffc
mov dword [esp + 0x20], 0
mov dword [esp + 0x40], esi
lea eax, [eax + edi*2]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
lea edi, [eax + edi*4]
mov eax, dword [esp + 0x20]
movq xmm0, qword [esi + eax*2 + 2]
punpcklwd xmm0, xmm0
psrad xmm0, 0x10
pslld xmm0, 0x10
movdqu xmmword [edi + eax*4 + 4], xmm0
add eax, 4
cmp eax, ecx
jb 0x403116
mov esi, dword [esp + 0x40]
cmp ecx, edx
jae 0x403179
mov edi, dword [esp + 0x38]
sub edi, dword [esp + 0x34]
add edi, dword [esp + 0x28]
mov dword [esp + 0x40], esi
lea eax, [esp + edi*2 + 0x2c50]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0xc]
lea edi, [eax + edi*4]
mov eax, dword [esp + 0x20]
movzx esi, word [eax + ecx*2 + 2]
shl esi, 0x10
mov dword [edi + ecx*4 + 4], esi
inc ecx
cmp ecx, edx
jb 0x403164
mov esi, dword [esp + 0x40]
cmp esi, 2
jne 0x4034fb
mov esi, dword [esp + 0x34]
neg esi
dec esi
neg esi
dec esi
cmp esi, 0x20
jl 0x4039df
mov edx, dword [esp + 0x38]
sub edx, dword [esp + 0x34]
mov ecx, dword [ebp + 0xc]
lea eax, [ecx + edx*4 + 4]
and eax, 0xf
je 0x4031b9
test al, 3
jne 0x4039df
neg eax
add eax, 0x10
shr eax, 2
lea ecx, [eax + 0x20]
cmp esi, ecx
jl 0x4039df
mov ecx, esi
lea edi, [esp + edx*2 + 0x2c50]
sub ecx, eax
mov dword [esp + 0x28], edi
and ecx, 0x1f
mov edi, dword [ebp + 0xc]
neg ecx
add ecx, esi
lea edi, [edi + edx*4]
mov dword [esp + 0x2c], edi
test eax, eax
jbe 0x403221
mov dword [esp + 0x24], esi
xor edi, edi
mov dword [esp + 0x30], ebx
mov dword [esp + 0x20], edx
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
movzx edx, word [esi + edi*2 + 0x902]
shl edx, 0x10
mov dword [ebx + edi*4 + 0x1204], edx
inc edi
cmp edi, eax
jb 0x4031fe
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x30]
add edx, eax
lea edx, [esp + edx*2 + 0x2c52]
test dl, 0xf
je 0x40334b
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
movdqu xmm1, xmmword [edi + eax*2 + 0x902]
movdqu xmm3, xmmword [edi + eax*2 + 0x912]
movdqu xmm5, xmmword [edi + eax*2 + 0x922]
movdqu xmm7, xmmword [edi + eax*2 + 0x932]
movdqa xmm0, xmm1
movdqa xmm2, xmm3
movdqa xmm4, xmm5
movdqa xmm6, xmm7
punpcklwd xmm0, xmm1
psrldq xmm1, 8
psrad xmm0, 0x10
punpcklwd xmm2, xmm3
pslld xmm0, 0x10
psrldq xmm3, 8
psrad xmm2, 0x10
punpcklwd xmm4, xmm5
pslld xmm2, 0x10
psrldq xmm5, 8
psrad xmm4, 0x10
punpcklwd xmm6, xmm7
pslld xmm4, 0x10
psrldq xmm7, 8
psrad xmm6, 0x10
punpcklwd xmm1, xmm1
pslld xmm6, 0x10
punpcklwd xmm3, xmm3
psrad xmm1, 0x10
punpcklwd xmm5, xmm5
psrad xmm3, 0x10
punpcklwd xmm7, xmm7
psrad xmm5, 0x10
psrad xmm7, 0x10
pslld xmm1, 0x10
pslld xmm3, 0x10
pslld xmm5, 0x10
pslld xmm7, 0x10
movdqu xmmword [edx + eax*4 + 0x1204], xmm0
movdqu xmmword [edx + eax*4 + 0x1214], xmm1
movdqu xmmword [edx + eax*4 + 0x1224], xmm2
movdqu xmmword [edx + eax*4 + 0x1234], xmm3
movdqu xmmword [edx + eax*4 + 0x1244], xmm4
movdqu xmmword [edx + eax*4 + 0x1254], xmm5
movdqu xmmword [edx + eax*4 + 0x1264], xmm6
movdqu xmmword [edx + eax*4 + 0x1274], xmm7
add eax, 0x20
cmp eax, ecx
jb 0x40323b
jmp 0x40345e
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
movdqu xmm1, xmmword [edi + eax*2 + 0x902]
movdqu xmm3, xmmword [edi + eax*2 + 0x912]
movdqa xmm0, xmm1
movdqu xmm5, xmmword [edi + eax*2 + 0x922]
movdqa xmm2, xmm3
movdqu xmm7, xmmword [edi + eax*2 + 0x932]
movdqa xmm4, xmm5
movdqa xmm6, xmm7
punpcklwd xmm0, xmm1
psrldq xmm1, 8
psrad xmm0, 0x10
punpcklwd xmm2, xmm3
pslld xmm0, 0x10
psrldq xmm3, 8
psrad xmm2, 0x10
punpcklwd xmm4, xmm5
pslld xmm2, 0x10
psrldq xmm5, 8
psrad xmm4, 0x10
punpcklwd xmm6, xmm7
pslld xmm4, 0x10
psrldq xmm7, 8
psrad xmm6, 0x10
punpcklwd xmm1, xmm1
pslld xmm6, 0x10
punpcklwd xmm3, xmm3
psrad xmm1, 0x10
punpcklwd xmm5, xmm5
psrad xmm3, 0x10
punpcklwd xmm7, xmm7
psrad xmm5, 0x10
psrad xmm7, 0x10
pslld xmm1, 0x10
pslld xmm3, 0x10
pslld xmm5, 0x10
pslld xmm7, 0x10
movdqu xmmword [edx + eax*4 + 0x1204], xmm0
movdqu xmmword [edx + eax*4 + 0x1214], xmm1
movdqu xmmword [edx + eax*4 + 0x1224], xmm2
movdqu xmmword [edx + eax*4 + 0x1234], xmm3
movdqu xmmword [edx + eax*4 + 0x1244], xmm4
movdqu xmmword [edx + eax*4 + 0x1254], xmm5
movdqu xmmword [edx + eax*4 + 0x1264], xmm6
movdqu xmmword [edx + eax*4 + 0x1274], xmm7
add eax, 0x20
cmp eax, ecx
jb 0x403353
lea edx, [ecx + 1]
cmp edx, esi
ja 0x40351c
sub esi, ecx
cmp esi, 4
jl 0x4039d8
mov edi, dword [esp + 0x28]
mov edx, esi
mov dword [esp + 0x20], 0
and edx, 0xfffffffc
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x20]
lea eax, [edi + ecx*2]
mov edi, dword [esp + 0x2c]
lea edi, [edi + ecx*4]
movq xmm0, qword [eax + ebx*2 + 0x902]
punpcklwd xmm0, xmm0
psrad xmm0, 0x10
pslld xmm0, 0x10
movdqu xmmword [edi + ebx*4 + 0x1204], xmm0
add ebx, 4
cmp ebx, edx
jb 0x403497
mov ebx, dword [esp + 0x30]
cmp edx, esi
jae 0x40351c
mov edi, dword [esp + 0x38]
sub edi, dword [esp + 0x34]
add edi, ecx
mov eax, dword [ebp + 0xc]
lea ecx, [esp + edi*2 + 0x2c50]
lea edi, [eax + edi*4]
movzx eax, word [ecx + edx*2 + 0x902]
shl eax, 0x10
mov dword [edi + edx*4 + 0x1204], eax
inc edx
cmp edx, esi
jb 0x4034dd
jmp 0x40351c
cmp esi, 2
je 0x40351c
cmp esi, 1
jne 0x40351c
mov edx, dword [ebp + 0xc]
lea ecx, [ebx*4]
push ecx
push 0
lea esi, [edx + 0x1200]
push esi
call fcn.00449a20
add esp, 0xc
cmp dword [0x4f8d60], 0
je 0x40352b
add dword [0x4f8d74], ebx
mov ecx, dword [esp + 0x3e50]
mov dword [esp + 0x3e50], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x4039b5
mov eax, ebx
add esp, 0x3e54
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [0x4f8e08], 0xa
jl 0x403c30
mov ecx, dword [esp + 0x3e50]
mov dword [esp + 0x3e50], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x4039b5
mov eax, 0xffffffff
add esp, 0x3e54
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, 1
jmp 0x402b44
mov dword [esp + 0x20], 0
jmp 0x402c6b
cmp esi, 2
jne 0x403655
mov edx, ebx
dec edx
js 0x40351c
mov eax, ebx
shr eax, 1
je 0x403a0c
mov edx, dword [ebp + 0x10]
xor ecx, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], ebx
lea esi, [edx + ebx*2]
xor edx, edx
mov eax, edx
movzx ebx, word [eax + edi - 2]
inc ecx
mov word [edx + esi + 0x8fe], bx
movzx ebx, word [eax + edi - 6]
mov word [edx + esi - 2], bx
movzx ebx, word [eax + edi - 0xa]
mov word [edx + esi + 0x8fc], bx
movzx ebx, word [eax + edi - 0xe]
add eax, 0xfffffff0
mov word [edx + esi - 4], bx
add edx, 0xfffffffc
cmp ecx, dword [esp + 0x20]
jb 0x4035e0
mov ebx, dword [esp + 0x30]
lea esi, [ecx + ecx + 1]
lea edx, [esi - 1]
cmp edx, ebx
jae 0x40351c
mov edx, ebx
sub edx, esi
shl esi, 3
neg esi
mov ecx, dword [ebp + 0x10]
movzx eax, word [esi + edi + 6]
movzx esi, word [esi + edi + 2]
mov word [ecx + edx*2 + 0x900], ax
mov word [ecx + edx*2], si
jmp 0x40351c
cmp esi, 1
jne 0x40351c
mov edx, dword [ebp + 0x10]
lea ecx, [ebx + ebx]
push ecx
push 0
lea esi, [edx + 0x900]
push esi
call fcn.00449a20
add esp, 0xc
mov edx, ebx
dec edx
js 0x40351c
mov edx, ebx
neg edx
dec edx
neg edx
dec edx
cmp edx, 0x20
jl 0x403872
mov eax, dword [ebp + 0x10]
and eax, 0xf
je 0x4036a7
test al, 1
jne 0x403872
neg eax
add eax, 0x10
shr eax, 1
lea ecx, [eax + 0x20]
cmp edx, ecx
jl 0x403872
mov ecx, edx
lea esi, [ebx*4]
sub ecx, eax
neg esi
and ecx, 0x1f
add esi, edi
neg ecx
add ecx, edx
mov dword [esp + 0x20], ecx
test eax, eax
jbe 0x4036f3
mov dword [esp + 0x24], edi
xor ecx, ecx
mov dword [esp + 0x30], ebx
mov edi, dword [ebp + 0x10]
movzx ebx, word [esi + ecx*4 + 2]
mov word [edi + ecx*2], bx
inc ecx
cmp ecx, eax
jb 0x4036dd
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x24]
lea ecx, [esi + eax*4]
test cl, 0xf
je 0x403798
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x20]
mov edi, dword [ebp + 0x10]
movdqu xmm1, xmmword [esi + eax*4]
movdqu xmm0, xmmword [esi + eax*4 + 0x10]
movdqu xmm3, xmmword [esi + eax*4 + 0x20]
movdqu xmm2, xmmword [esi + eax*4 + 0x30]
movdqu xmm5, xmmword [esi + eax*4 + 0x40]
movdqu xmm4, xmmword [esi + eax*4 + 0x50]
movdqu xmm7, xmmword [esi + eax*4 + 0x60]
movdqu xmm6, xmmword [esi + 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, ecx
jb 0x40370a
jmp 0x40382c
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x20]
mov edi, dword [ebp + 0x10]
movdqu xmm1, xmmword [esi + eax*4]
movdqu xmm0, xmmword [esi + eax*4 + 0x10]
psrad xmm1, 0x10
movdqu xmm3, xmmword [esi + eax*4 + 0x20]
psrad xmm0, 0x10
movdqu xmm2, xmmword [esi + eax*4 + 0x30]
psrad xmm3, 0x10
movdqu xmm5, xmmword [esi + eax*4 + 0x40]
psrad xmm2, 0x10
movdqu xmm4, xmmword [esi + eax*4 + 0x50]
psrad xmm5, 0x10
movdqu xmm7, xmmword [esi + eax*4 + 0x60]
psrad xmm4, 0x10
movdqu xmm6, xmmword [esi + 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, ecx
jb 0x4037a3
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
lea esi, [ecx + 1]
cmp esi, edx
ja 0x40351c
xor esi, esi
mov eax, dword [ebp + 0x10]
sub edx, ecx
lea eax, [eax + ecx*2]
mov dword [esp + 0x20], eax
lea eax, [ebx*4]
neg eax
add edi, eax
mov eax, dword [esp + 0x20]
lea ecx, [edi + ecx*4]
movzx edi, word [ecx + esi*4 + 2]
mov word [eax + esi*2], di
inc esi
cmp esi, edx
jb 0x40385f
jmp 0x40351c
mov dword [esp + 0x20], 0
jmp 0x403830
imul ebx, esi
mov ecx, dword [0x4f8d64]
mov edi, dword [0x4f8d78]
cmp ecx, 0x10
je 0x4038bd
cmp ecx, 0x18
je 0x4038bd
cmp ecx, 0x20
je 0x4038bd
cmp ecx, 8
je 0x4038b1
cmp dword [0x4f8e08], 0xa
jl 0x4039c9
jmp 0x40395d
mov edx, dword [0x4f8d6c]
mov dword [esp + 0x20], edx
jmp 0x403903
cmp dword [0x4f6004], 0
jne 0x4038d8
cmp dword [0x4f8e08], 0xa
jl 0x403996
jmp 0x40395d
cmp dword [0x4f6008], 0
je 0x4038f3
xor edx, edx
cmp dword [0x4f8d68], 1
setb dl
mov dword [esp + 0x20], edx
jmp 0x403903
xor edx, edx
cmp dword [0x4f8d68], 0
seta dl
mov dword [esp + 0x20], edx
cmp ebx, 0x900
jbe 0x40391a
cmp dword [0x4f8e08], 0xa
jl 0x4039a5
jmp 0x40395d
mov edx, ecx
mov eax, ebx
sar edx, 2
shr edx, 0x1d
add edx, ecx
lea ecx, [esp + 0x44]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edi
sar edx, 3
mov ecx, dword [ecx - 0x24]
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 0x40398d
cmp dword [0x4f8e08], 0xa
jl 0x4039ba
mov edx, 0xffffffff
mov ecx, dword [esp + 0x3e50]
mov dword [esp + 0x3e50], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x4039b5
mov eax, edx
add esp, 0x3e54
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test edx, edx
jl 0x403962
jmp 0x402ab4
push str.Unsigned_input_only_supported_with_bitwidth_8_n
call fcn.004023b0
add esp, 4
jmp 0x40395d
push ebx
push str.Error:_unexpected_number_of_samples_to_read:__d_n
call fcn.004023b0
add esp, 8
jmp 0x40395d
call fcn.00466f40
push str.Error_reading_input_file_n
call fcn.004023b0
add esp, 4
jmp 0x40395d
push str.Only_8__16__24_and_32_bit_input_files_supported__n
call fcn.004023b0
add esp, 4
jmp 0x40395d
xor edx, edx
jmp 0x4034c2
cmp esi, 1
jb 0x40351c
xor ecx, ecx
xor edx, edx
jmp 0x4034c2
xor ecx, ecx
jmp 0x40313b
cmp edx, 1
jb 0x403179
xor ecx, ecx
mov dword [esp + 0x28], ecx
jmp 0x40313b
mov esi, 1
jmp 0x403623
mov ecx, dword [esp + 0x3e50]
mov dword [esp + 0x3e50], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x4039b5
jmp 0x40354b
push 0x4834b8
push str.Error:_sample_frequency_has_changed_in__s___not_supported_n
call fcn.004023b0
add esp, 8
jmp 0x402dce
push 0x4834b8
push str.Error:_number_of_channels_has_changed_in__s___not_supported_n
call fcn.004023b0
add esp, 8
jmp 0x402d9e
push 0x1200
push 0
lea eax, [esp + 0x2c58]
push eax
call fcn.00449a20
add esp, 0xc
xor ebx, ebx
jmp 0x402dd3
mov esi, dword [esp + 0x40]
jmp 0x403a65
mov esi, dword [esp + 0x40]
push 0x514bec
mov edi, dword [ebp + 8]
lea eax, [esp + 0x3554]
push eax
lea edx, [esp + 0x2c58]
push edx
push 0
lea ecx, [esp + 0x2854]
push ecx
push dword [0x4f8d80]
call fcn.004174b0
mov ebx, eax
add esp, 0x18
test ebx, ebx
jle 0x403a65
jmp 0x402d78
mov ecx, dword [ebp + 0x10]
lea ebx, [esp + 0x2444]
mov eax, dword [0x4f8d78]
mov dword [esp + 0x20], eax
lea edx, [ecx + 0x900]
mov dword [esp + 0x24], edx
push 0x514bec
push edx
push ecx
push 0
push ebx
push dword [0x4f8d80]
call fcn.004174b0
mov ebx, eax
add esp, 0x18
test ebx, ebx
jne 0x403b5e
mov dword [esp + 0x40], esi
lea esi, [esp + 0x2444]
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
push ebx
push 0x400
push 1
push esi
call fcn.0046b3d5
add esp, 0x10
test eax, eax
je 0x403bfa
push 0x514bec
push edi
push dword [ebp + 0x10]
push eax
push esi
push dword [0x4f8d80]
call fcn.004174b0
add esp, 0x18
cmp eax, 0xffffffff
je 0x403bf4
test eax, eax
jle 0x403b16
mov esi, dword [esp + 0x40]
mov ebx, eax
mov edi, dword [ebp + 8]
test ebx, ebx
jl 0x403bdb
push edi
call fcn.00415aa0
add esp, 4
cmp eax, dword [0x514bf0]
je 0x403b81
cmp dword [0x4f8e08], 0xa
jl 0x403bc7
mov ebx, 0xffffffff
push edi
mov edi, dword [0x4f8dfc]
test edi, edi
mov edx, dword [0x514bf4]
cmove edi, edx
call fcn.00415a50
add esp, 4
cmp eax, edi
je 0x402dd3
cmp dword [0x4f8e08], 0xa
jge 0x402dce
push 0x4834b8
push str.Error:_sample_frequency_has_changed_in__s___not_supported_n
call fcn.004023b0
add esp, 8
jmp 0x402dce
push 0x4834b8
push str.Error:_number_of_channels_has_changed_in__s___not_supported_n
call fcn.004023b0
add esp, 8
jmp 0x403b7c
push 0x1200
push 0
push dword [ebp + 0x10]
call fcn.00449a20
add esp, 0xc
xor ebx, ebx
jmp 0x402dd3
mov esi, dword [esp + 0x40]
jmp 0x403bdb
mov esi, dword [esp + 0x40]
push 0x514bec
push dword [esp + 0x28]
push dword [ebp + 0x10]
push 0
mov edi, dword [ebp + 8]
lea eax, [esp + 0x2454]
push eax
push dword [0x4f8d80]
call fcn.004174b0
mov ebx, eax
add esp, 0x18
test ebx, ebx
jle 0x403bdb
jmp 0x403b5e
push str.Error:_internal_problem__n
call fcn.004023b0
add esp, 4
jmp 0x403567