Function at 0x4ecec0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x88
mov eax, dword [0x641a90]
xor eax, esp
mov dword [esp + 0x84], eax
push esi
push edi
mov edi, ecx
xor esi, esi
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], esi
lea ecx, [esi + 1]
cmp dword [edi + 0x24610], esi
je 0x4ecf0c
push 0x5df7c4
call fcn.00592f31
add eax, 0x40
push eax
call fcn.0059320e
add esp, 8
lea ecx, [esi + 1]
mov edx, dword [edi + 0x43f4]
mov eax, edx
and eax, 0x7fffffff
cmp eax, 0x8000
jae 0x4ecf2c
inc ecx
mov eax, edx
shl eax, cl
cmp eax, 0x10000
jb 0x4ecf20
dec ecx
shl dword [edi + 0x3d8], cl
shl edx, cl
mov dword [edi + 0x43f4], edx
shl dword [edi + 0x3dc], cl
shl dword [edi + 0x3e0], cl
shl dword [edi + 0x3e4], cl
shl dword [edi + 0x3e8], cl
movzx eax, word [edi + 0x44b2]
mov dword [esp + 0x3c], ecx
mov edx, eax
movzx ecx, word [edi + 0x44b4]
imul edx, ecx
mov dword [esp + 0x10], edx
cmp edx, 0x15550000
jge 0x4ecf8f
lea eax, [eax + edx*2]
add eax, edx
add eax, ecx
shl eax, 2
push eax
call fcn.00593e38
add esp, 4
mov dword [esp + 0x30], eax
mov esi, eax
movd xmm0, esi
mov ecx, edi
push str.wavelet_denoise__
pshufd xmm0, xmm0, 0
push esi
movdqa xmmword [esp + 0x78], xmm0
call fcn.004dc800
mov ecx, dword [esp + 0x10]
mov edx, dword [edi + 0x245dc]
mov dword [esp + 0x2c], edx
lea eax, [ecx + ecx*2]
lea eax, [esi + eax*4]
mov dword [esp + 0x24], eax
cmp edx, 3
jne 0x4ecfdb
cmp dword [edi + 0x388], 0
mov eax, 4
cmovne edx, eax
mov dword [esp + 0x2c], edx
movss xmm4, dword [0x5d9110]
test edx, edx
jle 0x4ed33e
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], 0
test ecx, ecx
jle 0x4ed05c
mov ecx, eax
mov dword [esp + 8], eax
jmp 0x4ed010
mov eax, dword [edi + 0x44c0]
movzx eax, word [ecx + eax]
mov ecx, dword [esp + 0x3c]
shl eax, cl
movd xmm0, eax
cvtdq2pd xmm0, xmm0
call fcn.00595530
mulsd xmm0, qword [0x5dbf90]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 8]
add ecx, 8
mov dword [esp + 8], ecx
cvtsd2ss xmm0, xmm0
movss dword [esi + eax*4], xmm0
inc eax
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x10]
jl 0x4ed010
mov ecx, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], edx
mov eax, edx
xor esi, esi
and eax, 1
xor edx, edx
inc eax
mov dword [esp + 8], edx
imul eax, ecx
cmp si, word [edi + 0x44b2]
mov esi, dword [esp + 0x30]
mov dword [esp + 0xc], eax
jae 0x4ed135
mov ecx, dword [esp + 0x1c]
mov eax, 1
shl eax, cl
mov dword [esp + 0x14], eax
jmp 0x4ed0a0
push dword [esp + 0x14]
movzx eax, word [edi + 0x44b4]
mov ecx, edi
push eax
imul eax, edx
push 1
add eax, dword [esp + 0x2c]
lea eax, [esi + eax*4]
push eax
push dword [esp + 0x34]
call fcn.004d3880
xor eax, eax
xor ecx, ecx
cmp ax, word [edi + 0x44b4]
jae 0x4ed115
movsd xmm1, qword [0x5dc298]
mov edx, dword [esp + 0xc]
lea ecx, [ecx]
mov eax, dword [esp + 0x24]
movss xmm0, dword [eax + ecx*4]
movzx eax, word [edi + 0x44b4]
imul eax, dword [esp + 8]
cvtps2pd xmm0, xmm0
add eax, ecx
inc ecx
add eax, edx
mulsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esi + eax*4], xmm0
movzx eax, word [edi + 0x44b4]
cmp ecx, eax
jl 0x4ed0e0
mov edx, dword [esp + 8]
movzx eax, word [edi + 0x44b2]
inc edx
mov dword [esp + 8], edx
cmp edx, eax
jl 0x4ed0a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 8], 0
cmp dx, word [edi + 0x44b4]
jae 0x4ed1fc
mov ecx, dword [esp + 0x1c]
mov edx, 1
shl edx, cl
mov dword [esp + 0x14], edx
lea edx, [esi + eax*4]
mov dword [esp + 0x18], edx
push dword [esp + 0x14]
movzx eax, word [edi + 0x44b2]
mov ecx, edi
push eax
movzx eax, word [edi + 0x44b4]
push eax
push edx
push dword [esp + 0x34]
call fcn.004d3880
xor eax, eax
xor ecx, ecx
cmp ax, word [edi + 0x44b2]
jae 0x4ed1d5
movsd xmm1, qword [0x5dc298]
mov edx, dword [esp + 0xc]
jmp 0x4ed1a0
mov eax, dword [esp + 0x24]
movss xmm0, dword [eax + ecx*4]
movzx eax, word [edi + 0x44b4]
cvtps2pd xmm0, xmm0
imul eax, ecx
inc ecx
mulsd xmm0, xmm1
add eax, dword [esp + 8]
cvtpd2ps xmm0, xmm0
add eax, edx
movss dword [esi + eax*4], xmm0
movzx eax, word [edi + 0x44b2]
cmp ecx, eax
jl 0x4ed1a0
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x18]
inc ecx
movzx eax, word [edi + 0x44b4]
add edx, 4
mov dword [esp + 8], ecx
mov dword [esp + 0x18], edx
cmp ecx, eax
jl 0x4ed162
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
xor edx, edx
movss xmm4, dword [0x5d9110]
movss xmm1, dword [eax*4 + 0x5df7a4]
mulss xmm1, dword [edi + 0x245fc]
test ecx, ecx
jle 0x4ed296
mov eax, dword [esp + 0x20]
movaps xmm2, xmm1
xorps xmm2, xmm4
lea ecx, [esi + eax*4]
mov eax, dword [esp + 0xc]
lea edi, [esi + eax*4]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
nop
movss xmm0, dword [ecx]
subss xmm0, dword [eax]
comiss xmm2, xmm0
movss dword [ecx], xmm0
jbe 0x4ed25b
addss xmm0, xmm1
movss dword [ecx], xmm0
jmp 0x4ed270
comiss xmm0, xmm1
jbe 0x4ed26a
subss xmm0, xmm1
movss dword [ecx], xmm0
jmp 0x4ed270
mov dword [ecx], 0
cmp dword [esp + 0x20], 0
je 0x4ed285
movss xmm0, dword [ecx]
addss xmm0, dword [esi + edx*4]
movss dword [esi + edx*4], xmm0
inc edx
add eax, 4
add ecx, 4
cmp edx, dword [esp + 0x10]
jl 0x4ed240
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
inc edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], edx
cmp edx, 5
jl 0x4ed066
xor edx, edx
test ecx, ecx
jle 0x4ed329
mov ecx, dword [esp + 0x28]
lea eax, [esi + eax*4]
movss xmm1, dword [0x5e9060]
mov dword [esp + 8], ecx
mov dword [esp + 0x18], eax
lea ecx, [ecx]
movss xmm0, dword [esi + edx*4]
addss xmm0, dword [eax]
mulss xmm0, xmm0
mulss xmm0, xmm1
cvttss2si eax, xmm0
cmp eax, 0xffff
jge 0x4ed2f4
test eax, eax
jns 0x4ed2f4
xor ecx, ecx
jmp 0x4ed2fe
mov ecx, 0xffff
cmp eax, ecx
cmovl ecx, eax
mov esi, dword [esp + 8]
inc edx
mov eax, dword [edi + 0x44c0]
add dword [esp + 8], 8
mov word [esi + eax], cx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
add eax, 4
mov esi, dword [esp + 0x30]
mov dword [esp + 0x18], eax
cmp edx, ecx
jl 0x4ed2d0
mov eax, dword [esp + 0x28]
add eax, 2
dec dword [esp + 0x2c]
mov dword [esp + 0x28], eax
jne 0x4ecff1
mov edx, dword [edi + 0x388]
test edx, edx
je 0x4ed7e0
cmp dword [edi + 0x245dc], 3
jne 0x4ed7e0
mov ecx, edx
mov eax, edx
and ecx, 0x20
and eax, 2
or ecx, 0x10
or eax, 1
shr ecx, 4
and edx, 0x200
or edx, 0x100
shr edx, 8
movss xmm0, dword [edi + eax*4 + 0x24654]
movss xmm3, dword [edi + ecx*4 + 0x24654]
cvtps2pd xmm1, xmm3
mov eax, dword [edi + eax*4 + 0x3dc]
mov dword [esp + 0x58], eax
mov eax, dword [edi + ecx*4 + 0x3dc]
xor ecx, ecx
cmp dword [0x685d48], 2
mov dword [esp + 0x5c], eax
cvtps2pd xmm0, xmm0
mulsd xmm1, qword [0x5c3628]
divsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss xmm1, dword [edi + edx*4 + 0x24654]
cvtps2pd xmm1, xmm1
movss dword [esp + 0x68], xmm0
mulsd xmm1, qword [0x5c3628]
cvtps2pd xmm0, xmm3
divsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [esp + 0x6c], xmm0
jl 0x4ed42f
movsx eax, word [edi + 0x44aa]
movdqa xmm1, xmmword [0x62d410]
paddd xmm1, xmmword [0x5e92a0]
movd xmm0, eax
punpcklwd xmm0, xmm0
pshufd xmm0, xmm0, 0
pmovzxwd xmm0, xmm0
pmulld xmm0, xmm1
paddd xmm0, xmm0
paddd xmm0, xmmword [esp + 0x70]
movdqu xmmword [esp + 0x70], xmm0
jmp 0x4ed44c
movzx edx, word [edi + 0x44aa]
mov eax, esi
add edx, edx
lea ebx, [ebx]
mov dword [esp + ecx*4 + 0x70], eax
inc ecx
add eax, edx
cmp ecx, 4
jl 0x4ed440
movzx eax, word [edi + 0x44a8]
or edx, 0xffffffff
dec eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x1c], 1
cmp eax, 1
jle 0x4ed7e0
mov esi, dword [esp + 0x78]
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
movsd xmm2, qword [0x5c3638]
mov dword [esp + 8], esi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], eax
lea esp, [esp]
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x3c], eax
cmp edx, eax
jge 0x4ed560
jmp 0x4ed4ab
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x20]
inc edx
mov dword [esp + 0x38], eax
mov dword [esp + 8], eax
mov eax, edx
and eax, 7
mov dword [esp + 0x28], esi
mov esi, dword [edi + 0x388]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], eax
lea ecx, [eax*4 + 2]
mov dword [esp + 0x2c], edx
movzx eax, word [edi + 0x44aa]
shr esi, cl
and esi, 1
cmp esi, eax
jge 0x4ed556
mov eax, dword [esp + 0x14]
add eax, eax
mov dword [esp + 0x14], eax
jmp 0x4ed500
movzx ecx, word [edi + 0x44b0]
movzx eax, word [edi + 0x44b4]
sar edx, cl
imul edx, eax
mov eax, esi
sar eax, cl
mov ecx, esi
and ecx, 1
add ecx, dword [esp + 0x14]
add ecx, ecx
add edx, eax
mov eax, dword [edi + 0x388]
shr eax, cl
and eax, 3
lea ecx, [eax + edx*4]
mov eax, dword [edi + 0x44c0]
mov edx, dword [esp + 0x2c]
mov ax, word [eax + ecx*2]
mov ecx, dword [esp + 0x38]
mov word [ecx + esi*2], ax
add esi, 2
movzx eax, word [edi + 0x44aa]
cmp esi, eax
jl 0x4ed500
cmp edx, dword [esp + 0x3c]
jl 0x4ed4a3
mov eax, dword [esp + 0x1c]
mov esi, dword [edi + 0x388]
and eax, 7
movss xmm3, dword [edi + 0x245fc]
mulss xmm3, dword [0x5e9064]
mov dword [esp + 0x4c], eax
lea ecx, [eax*4]
movzx eax, word [edi + 0x44aa]
shr esi, cl
dec eax
and esi, 1
movss dword [esp + 0x14], xmm3
inc esi
mov dword [esp + 0x24], esi
cmp esi, eax
jge 0x4ed7b4
mov ecx, dword [esp + 0x1c]
movaps xmm0, xmm3
mov edx, dword [esp + 0x24]
mov esi, ecx
mov edi, dword [esp + 0x20]
mov eax, ecx
and eax, 7
not ecx
mov dword [esp + 0x44], eax
and ecx, 1
and esi, 1
xorps xmm0, xmm4
movss dword [esp + 0x60], xmm0
mov eax, dword [esp + ecx*4 + 0x58]
mov ecx, dword [esp + 8]
shl eax, 2
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x20]
lea eax, [eax + edx*2]
add eax, 2
sub edi, ecx
mov dword [esp + 0x18], eax
lea eax, [edx - 1]
lea eax, [ecx + eax*2]
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x34]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x40]
movzx ecx, word [ecx + eax]
movzx eax, word [eax + 4]
add ecx, eax
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
add ecx, eax
mov eax, dword [esp + 0x18]
sub ecx, dword [esp + 0x64]
movzx eax, word [eax]
add ecx, eax
mov eax, dword [esp + 0x28]
movzx eax, word [eax + edx*2]
add eax, dword [esp + esi*4 + 0x58]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [esp + esi*4 + 0x68]
cvtps2pd xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm2
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
xorps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x4ed668
movss dword [esp + 0x38], xmm1
jmp 0x4ed67e
cvtps2pd xmm0, xmm0
call fcn.00595530
mov edx, dword [esp + 0x24]
cvtsd2ss xmm0, xmm0
movss dword [esp + 0x38], xmm0
movzx ecx, word [edi + 0x44b0]
mov eax, dword [esp + 0x1c]
sar eax, cl
mov dword [esp + 0xc], eax
movzx eax, word [edi + 0x44b4]
mov edi, dword [esp + 0xc]
imul edi, eax
mov eax, edx
sar eax, cl
mov ecx, edi
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x34]
add ecx, eax
shl ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, edx
and ecx, 1
mov edx, dword [edi + 0x44c0]
mov eax, dword [edi + 0x388]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x50], edx
lea ecx, [ecx + edi*2]
add ecx, ecx
shr eax, cl
and eax, 3
add eax, dword [esp + 0xc]
movzx eax, word [edx + eax*2]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
call fcn.00595530
movss xmm2, dword [esp + 0x38]
cvtps2pd xmm1, xmm2
subsd xmm0, xmm1
movss xmm1, dword [esp + 0x60]
cvtsd2ss xmm0, xmm0
comiss xmm1, xmm0
jbe 0x4ed718
addss xmm0, dword [esp + 0x14]
jmp 0x4ed72c
movss xmm3, dword [esp + 0x14]
comiss xmm0, xmm3
jbe 0x4ed729
subss xmm0, xmm3
jmp 0x4ed72c
xorps xmm0, xmm0
addss xmm0, xmm2
mov edi, dword [esp + 0x34]
movsd xmm2, qword [0x5c3638]
mulss xmm0, xmm0
cvtss2sd xmm0, xmm0
addsd xmm0, xmm2
cvttsd2si eax, xmm0
cmp eax, 0xffff
jge 0x4ed75b
test eax, eax
jns 0x4ed75b
xor edx, edx
jmp 0x4ed765
mov edx, 0xffff
cmp eax, edx
cmovl edx, eax
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x44]
add dword [esp + 0x10], 4
add dword [esp + 0x18], 4
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x48]
add ecx, ecx
shr eax, cl
mov ecx, dword [esp + 0x50]
and eax, 3
add eax, dword [esp + 0xc]
mov word [ecx + eax*2], dx
mov edx, dword [esp + 0x24]
movzx eax, word [edi + 0x44aa]
add edx, 2
dec eax
mov dword [esp + 0x24], edx
cmp edx, eax
mov eax, dword [esp + 0x10]
jl 0x4ed604
mov edx, dword [esp + 0x2c]
movzx eax, word [edi + 0x44a8]
mov ecx, dword [esp + 0x3c]
dec eax
movss xmm4, dword [0x5d9110]
cmp ecx, eax
mov esi, dword [esp + 8]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x28]
jl 0x4ed490
mov esi, dword [esp + 0x30]
push esi
call fcn.00592c4b
mov ecx, dword [esp + 0x90]
add esp, 4
pop edi
pop esi
xor ecx, esp
call fcn.005920c1
mov esp, ebp
pop ebp
ret