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

Disassembly:
sub esp, 0xf0
mov ecx, dword [esp + 0x118]
mov eax, 1
push esi
mov esi, dword [esp + 0x108]
and ecx, 1
add ecx, 2
shl eax, cl
mov dword [esp + 0xa0], eax
movsd xmm2, qword [esi + 0x18]
movsd xmm0, qword [esi + 8]
movsd xmm3, qword [esi + 0x10]
mov eax, dword [esi + 0x24]
mov ecx, eax
movsd xmm1, qword [esi]
and ecx, 3
movsd qword [esp + 4], xmm0
movaps xmm0, xmm2
subsd xmm0, xmm3
mov dword [esp + 0xbc], ecx
mov ecx, dword [esp + 0x10c]
shr eax, 2
and eax, 0xffffff01
movsd qword [esp + 0x98], xmm1
push edi
mov ecx, dword [ecx + 0x14]
movsd qword [esp + 0x74], xmm0
movsd qword [esp + 0xa8], xmm0
movsd xmm0, qword [0x52d780]
movsd qword [esp + 0xb0], xmm0
movsd qword [esp + 0x38], xmm0
movsd xmm0, qword [esp + 0x104]
movsd qword [esp + 0x10], xmm0
movsd qword [esp + 0xcc], xmm0
movaps xmm0, xmm1
minsd xmm0, qword [0x4f5e70]
mov dword [esp + 0xe8], ecx
and ecx, 3
dec ecx
movsd qword [esp + 0x58], xmm3
mov dword [esp + 0x60], ecx
movsd qword [esp + 0x8c], xmm2
movsd qword [esp + 0x94], xmm0
movsd qword [esp + 0x64], xmm0
movsd xmm0, qword [0x52d7b8]
mov dword [esp + 0xd4], eax
movsd qword [esp + 0x18], xmm3
movsd qword [esp + 0x50], xmm2
movsd qword [esp + 0x40], xmm0
call fcn.004d6680
movsd xmm1, qword [esp + 0x94]
mov edi, 1
movsd xmm5, qword [esp + 0xb0]
mulsd xmm0, qword [0x4f4348]
addsd xmm1, xmm5
mov eax, dword [esp + 0xe8]
shr eax, 3
not al
mov dword [esp + 0xd8], 1
and eax, 0xffffff01
mov dword [esp + 0xdc], 1
test byte [esi + 0x24], 0x40
mulsd xmm1, xmm0
mov dword [esp + 0xc4], 0
movsd qword [esp + 0x20], xmm0
mov dword [esp + 0xf0], 1
mov dword [esp + 0xe0], edi
movsd qword [esp + 0x94], xmm1
movsd qword [esp + 0x84], xmm1
mov dword [esp + 0xc8], edi
mov byte [esp + 0xf7], 0
mov byte [esp + 0x10b], 0
mov dword [esp + 0xe8], eax
je 0x487d92
movsd xmm0, qword [0x4f5e68]
xor edx, edx
comisd xmm0, xmmword [esp + 0x9c]
movsd xmm0, qword [0x4f4340]
setae dl
xor ecx, ecx
comisd xmm0, xmmword [esp + 0x58]
setae cl
jmp 0x487dc8
movsd xmm3, qword [esp + 0x9c]
ucomisd xmm3, qword [0x4f5e68]
lahf
test ah, 0x44
jp 0x487dad
mov dl, 1
jmp 0x487daf
xor dl, dl
movsd xmm2, qword [esp + 0x58]
ucomisd xmm2, qword [0x4f4340]
lahf
xor ecx, ecx
test ah, 0x44
mov eax, edi
cmovnp ecx, eax
xor esi, esi
test dl, dl
je 0x487e16
cmp dword [esp + 0xc0], edi
jne 0x487e16
movsd xmm2, qword [esp + 0x10]
comisd xmm2, xmm5
ja 0x487e12
movsd xmm1, qword [esp + 8]
ucomisd xmm1, qword [0x4f4678]
lahf
test ah, 0x44
jp 0x487e12
test ecx, ecx
je 0x487e12
movsd xmm4, qword [esp + 0x8c]
ucomisd xmm4, xmm5
lahf
test ah, 0x44
jp 0x487e12
xor ecx, ecx
jmp 0x487e4e
mov ecx, edi
jmp 0x487e4e
fld qword [esp + 0x64]
sub esp, 8
fstp qword [esp]
call fcn.004d6930
movsd xmm5, qword [esp + 0xb8]
add esp, 8
movsd xmm2, qword [esp + 0x10]
fstp qword [esp + 0x64]
cvttsd2si eax, qword [esp + 0x64]
sub eax, 6
cdq
and edx, 3
lea ecx, [edx + eax]
sar ecx, 2
comisd xmm5, xmm2
mov dword [esp + 0xe4], ecx
movsd xmm3, qword [esp + 0x8c]
movsd xmm4, qword [esp + 0x58]
jbe 0x487e9d
movaps xmm1, xmm4
movaps xmm2, xmm3
divsd xmm1, qword [0x4f5e28]
movaps xmm0, xmm5
subsd xmm2, xmm5
subsd xmm0, xmm1
comisd xmm2, xmm0
jbe 0x487e97
pop edi
mov eax, str.imaging_greater_than_rolloff
pop esi
add esp, 0xf0
ret
movsd xmm2, qword [esp + 0x10]
movsd xmm0, qword [0x4f5df0]
movsd xmm1, qword [esp + 0x74]
comisd xmm0, xmm1
ja 0x489408
comisd xmm1, xmmword [0x4f5e18]
ja 0x489408
movsd xmm0, qword [0x4f5e10]
comisd xmm0, xmm4
ja 0x4893fa
comisd xmm3, xmmword [0x4f5e40]
ja 0x4893fa
movsd xmm1, qword [esp + 0x9c]
xorps xmm7, xmm7
ucomisd xmm1, xmm7
lahf
test ah, 0x44
jnp 0x487f1f
movsd xmm0, qword [0x4f4668]
comisd xmm0, xmm1
ja 0x487f11
comisd xmm1, xmmword [0x4f5e70]
jbe 0x487f1f
pop edi
mov eax, str.precision_not_in__15_33__bits
pop esi
add esp, 0xf0
ret
comisd xmm7, xmm2
jb 0x487f33
pop edi
mov eax, str.resampling_factor_not_positive
pop esi
add esp, 0xf0
ret
movsd xmm0, qword [esp + 8]
comisd xmm7, xmm0
ja 0x4893ec
comisd xmm0, xmmword [0x52d7e8]
ja 0x4893ec
mov eax, dword [esp + 0xfc]
mov edx, dword [esp + 0x11c]
movsd xmm0, qword [0x4f5e78]
movsd xmm6, qword [0x52d750]
ucomisd xmm1, xmm7
mov dword [eax], edx
movsd qword [eax + 8], xmm2
movsd qword [esp + 0x48], xmm0
lahf
test ah, 0x44
jnp 0x488489
imul eax, dword [esp + 0xa4], 0x2a
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsd qword [esp + 0xb8], xmm1
inc esi
cmp dword [esp + 0x60], 0
mov dword [esp + 0xec], esi
jle 0x487fbc
mov edi, 1
jmp 0x488033
test ecx, ecx
je 0x487fc7
mov edi, 0x800
jmp 0x488033
mov eax, dword [esp + 0x110]
sub esp, 8
mov eax, dword [eax + 8]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x52dac0]
mulsd xmm0, qword [0x52d810]
divsd xmm0, xmm1
movsd qword [esp + 0x10c], xmm0
fld qword [esp + 0x10c]
fstp qword [esp]
call fcn.004d6930
movsd xmm5, qword [esp + 0xb8]
add esp, 8
movsd xmm6, qword [0x52d750]
xorps xmm7, xmm7
fstp qword [esp + 0x104]
cvttsd2si edi, qword [esp + 0x104]
movsd xmm1, qword [esp + 0xcc]
movaps xmm4, xmm7
movaps xmm0, xmm1
movsd qword [esp + 0x28], xmm7
mulsd xmm0, xmm6
comisd xmm5, xmm1
cvttsd2si eax, xmm0
seta cl
xor edx, edx
mov byte [esp + 0xf7], cl
mov dword [esp + 0xc4], edx
sar eax, 1
je 0x488080
nop dword [eax + eax]
inc edx
mulsd xmm1, xmm6
sar eax, 1
jne 0x488070
mov dword [esp + 0xc4], edx
movsd xmm2, qword [esp + 0x40]
test cl, cl
jne 0x48809e
comisd xmm1, xmmword [0x4f5e38]
jbe 0x48809a
comisd xmm2, xmm1
ja 0x48809e
xor eax, eax
jmp 0x4880a3
mov eax, 1
comisd xmm1, xmm5
mov dword [esp + 0xdc], eax
jbe 0x4880cb
test eax, eax
je 0x4880cb
mov dword [esp + 0xc8], 2
movsd qword [esp + 0x30], xmm2
divsd xmm1, xmm2
jmp 0x4880f0
mov dword [esp + 0xc8], 1
movaps xmm0, xmm5
movsd qword [esp + 0x30], xmm0
divsd xmm1, xmm0
test eax, eax
jne 0x4880f0
comisd xmm2, xmm1
lea ecx, [eax + 2]
ja 0x4880f5
mov ecx, 1
cmp byte [esp + 0xf7], 0
je 0x488110
cmp dword [esp + 0xe4], 0
je 0x488110
mov eax, 1
jmp 0x488112
xor eax, eax
add eax, ecx
mov dword [esp + 0xd8], eax
movd xmm0, eax
cvtdq2pd xmm2, xmm0
mulsd xmm2, xmm1
cvttsd2si eax, xmm2
movaps xmm3, xmm2
movsd qword [esp + 0xcc], xmm2
movsd qword [esp + 0x6c], xmm2
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm3, xmm0
ucomisd xmm3, xmm7
movsd qword [esp + 0x7c], xmm3
lahf
test ah, 0x44
jnp 0x4881d4
movaps xmm0, xmm3
sub esp, 8
mulsd xmm0, qword [esp + 0x50]
movsd qword [esp + 0x6c], xmm0
addsd xmm0, xmm6
movsd qword [esp + 0x10c], xmm0
fld qword [esp + 0x10c]
fstp qword [esp]
call fcn.004d8500
fstp qword [esp + 0x10c]
movsd xmm4, qword [esp + 0x10c]
add esp, 8
divsd xmm4, qword [esp + 0x64]
movsd xmm5, qword [esp + 0xb0]
xorps xmm7, xmm7
movsd xmm2, qword [esp + 0xcc]
subsd xmm4, xmm5
movsd xmm3, qword [esp + 0x7c]
movsd xmm6, qword [0x52d750]
andps xmm4, xmmword [0x52db10]
movsd qword [esp + 0x28], xmm4
ucomisd xmm3, xmm7
mov esi, 1
lahf
test ah, 0x44
jp 0x4881e7
mov al, 1
jmp 0x4881e9
xor al, al
mov byte [esp + 0x10b], al
cmp edi, 1
jl 0x4882e6
nop dword [eax]
test al, al
jne 0x4882da
movd xmm1, esi
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm3
movaps xmm0, xmm1
addsd xmm0, xmm6
cvttsd2si ecx, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
divsd xmm0, xmm1
subsd xmm0, xmm5
andps xmm0, xmmword [0x52db10]
comisd xmm4, xmm0
setae al
mov byte [esp + 0x10b], al
test al, al
je 0x4882d1
cmp ecx, esi
jne 0x4882ac
fld qword [esp + 0x6c]
sub esp, 8
fstp qword [esp]
call fcn.004d6930
fstp qword [esp + 0x74]
movsd xmm2, qword [esp + 0x74]
xor eax, eax
add esp, 8
movsd xmm3, qword [esp + 0x7c]
comisd xmm2, xmmword [0x4f5e58]
movsd xmm4, qword [esp + 0x28]
movsd xmm5, qword [esp + 0xb0]
movsd xmm6, qword [0x52d750]
seta al
add dword [esp + 0xc4], eax
inc eax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm2, xmm0
jmp 0x4882c4
cvttsd2si eax, xmm2
mov dword [esp + 0xf0], esi
imul eax, esi
add eax, ecx
movd xmm2, eax
cvtdq2pd xmm2, xmm2
mov al, byte [esp + 0x10b]
movsd qword [esp + 0x6c], xmm2
inc esi
cmp esi, edi
jle 0x488200
movsd qword [esp + 0xcc], xmm2
xorps xmm7, xmm7
movsd xmm0, qword [esp + 0x30]
mov eax, dword [esp + 0xf0]
imul eax, dword [esp + 0xd8]
mulsd xmm0, xmm2
mov edx, eax
cvttsd2si esi, xmm0
mov ecx, esi
or ecx, edx
not ecx
and ecx, 1
sar edx, cl
sar esi, cl
mov ecx, dword [esp + 0xe8]
test cl, cl
je 0x4883d9
cmp dword [esp + 0xe0], 1
jne 0x4883d9
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm0, xmm2
comisd xmm0, xmmword [0x4f49b8]
jbe 0x4883d9
ucomisd xmm0, qword [0x4f5e60]
lahf
test ah, 0x44
jnp 0x4883d9
mulsd xmm0, qword [0x52d6f8]
mov edi, 4
mov dword [esp + 0xe0], edi
cvttsd2si eax, xmm0
sar eax, 1
je 0x48838c
cmp edi, 0x100
jge 0x488385
add edi, edi
sar eax, 1
jne 0x488377
mov dword [esp + 0xe0], edi
movd xmm0, dword [esp + 0xf0]
xor esi, esi
movd xmm1, edi
cvtdq2pd xmm1, xmm1
mov al, byte [esp + 0x10b]
mov dword [esp + 0xf0], 1
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm2
divsd xmm1, xmm0
movd xmm0, dword [esp + 0xd8]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
movsd qword [esp + 0xcc], xmm1
jmp 0x488449
mov al, byte [esp + 0x10b]
test al, al
je 0x48843b
movzx edi, cl
cmp edx, esi
mov ecx, esi
cmovge ecx, edx
lea eax, [edi*2 + 3]
cmp ecx, eax
jl 0x488407
mov ecx, esi
lea eax, [edi + edi*2]
imul ecx, edx
add eax, eax
cmp ecx, eax
jge 0x488434
mov dword [esp + 0xd8], edx
mov dword [esp + 0xdc], esi
mov dword [esp + 0xc8], 1
mov dword [esp + 0xf0], 1
movsd qword [esp + 0xcc], xmm5
mov al, byte [esp + 0x10b]
mov esi, dword [esp + 0xec]
mov edi, dword [esp + 0xe0]
mov ecx, dword [esp + 0xe4]
test ecx, ecx
jne 0x488478
test al, al
je 0x48845c
test esi, esi
jne 0x488489
movsd xmm1, qword [esp + 0xb8]
mov ecx, 1
mov dword [esp + 0xe4], ecx
xor esi, esi
jmp 0x487fa3
movsd xmm1, qword [esp + 0xb8]
test esi, esi
je 0x487fa3
movd xmm0, dword [esp + 0xf0]
cvtdq2pd xmm0, xmm0
mov esi, dword [esp + 0xc8]
mulsd xmm0, qword [esp + 0xcc]
ucomisd xmm0, xmm5
lahf
xor edx, edx
test ah, 0x44
mov eax, 1
cmovp edx, eax
mov eax, dword [esp + 0xdc]
imul eax, dword [esp + 0xd8]
xor ecx, ecx
imul esi, edi
cmp eax, 1
mov dword [esp + 0xbc], eax
mov dword [esp + 0x70], esi
setne cl
xor eax, eax
cmp esi, 1
mov esi, dword [esp + 0xfc]
setne al
add edx, ecx
add edx, eax
add edx, dword [esp + 0xc4]
mov dword [esi + 0x20], edx
mov ecx, edx
jne 0x48852b
movsd xmm0, qword [esp + 0x114]
ucomisd xmm0, xmm5
lahf
test ah, 0x44
jnp 0x48852b
lea ecx, [edx + 1]
mov dword [esp + 0xf0], 0
movsd qword [esp + 0x9c], xmm7
mov dword [esi + 0x20], ecx
lea eax, [ecx + 1]
push 0xa0
push eax
call fcn.004d2198
add esp, 8
mov dword [esi + 0x28], eax
test eax, eax
jne 0x488551
pop edi
mov eax, str.out_of_memory
pop esi
add esp, 0xf0
ret
xor edx, edx
cmp dword [esi + 0x20], edx
jle 0x4885a6
mov esi, dword [esp + 0x100]
xor ecx, ecx
mov edi, dword [esp + 0xfc]
nop dword [eax + eax]
mov eax, dword [edi + 0x28]
lea ecx, [ecx + 0xa0]
mov dword [ecx + eax - 0xa0], edx
inc edx
mov eax, dword [edi + 0x28]
mov dword [ecx + eax - 0x5c], esi
mov eax, dword [edi + 0x28]
mov dword [ecx + eax - 0x68], 0x2000
cmp edx, dword [edi + 0x20]
jl 0x488570
mov edi, dword [esp + 0xe0]
mov esi, dword [esp + 0xfc]
movd xmm1, dword [esp + 0xc8]
movd xmm0, edi
cvtdq2pd xmm0, xmm0
mov eax, dword [esi + 0x28]
mov byte [eax + 0x3c], 1
cvtdq2pd xmm1, xmm1
mov ecx, dword [esi + 0x20]
mulsd xmm0, qword [esp + 0x10]
divsd xmm1, xmm0
movd xmm0, dword [esp + 0xf0]
movsd qword [esp + 0x64], xmm1
cvtdq2pd xmm0, xmm0
cmp ecx, 1
jle 0x488659
mulsd xmm0, qword [esp + 0xcc]
ucomisd xmm0, qword [esp + 0xb0]
lahf
test ah, 0x44
jnp 0x48861a
movsd xmm0, qword [esp + 0x20]
dec ecx
addsd xmm0, qword [esp + 0x94]
movsd qword [esp + 0x94], xmm0
jmp 0x488623
movsd xmm0, qword [esp + 0x94]
movsd qword [esp + 0x84], xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
call fcn.004d6680
mulsd xmm0, qword [0x4f4348]
movsd xmm1, qword [esp + 0x94]
addsd xmm1, xmm0
movsd qword [esp + 0x94], xmm1
jmp 0x488662
movsd xmm1, qword [esp + 0x94]
mov eax, dword [esp + 0x11c]
xor edx, edx
mov edi, dword [eax + 0x10]
mov esi, dword [eax + 0xc]
cmp edi, 1
jbe 0x488696
lea ecx, [edx + 1]
lea eax, [esi + 0x10]
nop dword [eax]
movss xmm0, dword [eax]
cvtps2pd xmm0, xmm0
comisd xmm1, xmm0
jbe 0x488696
inc ecx
inc edx
add eax, 0x14
cmp ecx, edi
jb 0x488680
mov eax, dword [esp + 0xfc]
lea ecx, [edx + edx*4]
mov edi, dword [eax + 0x28]
mov eax, dword [esp + 0xc4]
test eax, eax
jle 0x4886e0
mov edx, eax
mov eax, dword [esi + ecx*4 + 8]
mov dword [edi + 8], eax
mov eax, dword [esi + ecx*4 + 4]
mov dword [edi + 0x54], eax
mov eax, dword [esi + ecx*4]
mov dword [edi + 0x84], eax
shl eax, 2
mov dword [edi + 0x24], eax
sar eax, 1
mov dword [edi + 0x20], eax
mov dword [edi + 0x28], eax
add edi, 0xa0
sub edx, 1
jne 0x4886b0
cmp dword [esp + 0xbc], 1
je 0x4888ed
cmp byte [esp + 0xd4], 0
je 0x4887f3
cmp dword [esp + 0x70], 1
je 0x4887f3
movsd xmm0, qword [0x4f4358]
sub esp, 0x10
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm0
call fcn.00472050
movsd xmm0, qword [esp + 0xa4]
fmul qword [esp + 0xb8]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x74]
movaps xmm1, xmm0
addsd xmm1, xmm0
fstp qword [esp + 0xb8]
subsd xmm1, qword [esp + 0x9c]
maxsd xmm1, xmm0
movsd xmm0, qword [esp + 0xb8]
subsd xmm1, qword [esp + 0x68]
divsd xmm0, xmm1
movsd qword [esp], xmm0
call fcn.00471450
fstp qword [esp + 0xb8]
movsd xmm1, qword [esp + 0xb8]
add esp, 0x10
xorps xmm1, xmmword [0x52db20]
comisd xmm1, xmmword [0x4f5e00]
jbe 0x4887f3
cmp dword [0x59ca60], 0
movaps xmm0, xmm1
mulsd xmm0, qword [0x4f5de8]
movsd xmm2, qword [0x4f5df8]
subsd xmm2, xmm0
mulsd xmm2, xmm1
subsd xmm2, qword [0x4f5e08]
mulsd xmm2, xmm1
addsd xmm2, qword [0x4f5e30]
movsd qword [esp + 0x38], xmm2
jle 0x4887f9
sub esp, 0x10
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm2
push str.tbw_tighten_g___gdB_
call fcn.00471020
add esp, 0x14
movsd xmm2, qword [esp + 0x38]
mov esi, dword [esp + 0xdc]
mov ecx, dword [esp + 0xd8]
test esi, esi
je 0x48881c
cmp ecx, esi
mov eax, esi
cmovge eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
jmp 0x488836
movd xmm1, dword [esp + 0xf0]
movsd xmm0, qword [esp + 0xcc]
cvtdq2pd xmm1, xmm1
divsd xmm0, xmm1
mov edx, dword [esp + 0x11c]
mov eax, dword [esp + 0x110]
movsd xmm1, qword [esp + 8]
movsd qword [esp + 0x7c], xmm0
push dword [edx + 0x24]
push dword [esp + 0x124]
push dword [eax + 4]
push dword [eax]
lea eax, [esp + 0x124]
push eax
mov eax, 1
cmp esi, eax
cmovge eax, esi
push eax
push ecx
push edi
sub esp, 0x28
movsd qword [esp + 0x20], xmm1
movsd xmm1, qword [esp + 0xdc]
movsd qword [esp + 0x18], xmm1
movsd xmm1, qword [esp + 0xbc]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0xd4]
mulsd xmm1, xmm2
movsd qword [esp + 8], xmm0
subsd xmm0, xmm1
movsd qword [esp], xmm0
push 0
call fcn.00489c10
movsd xmm5, qword [esp + 0xa4]
add esp, 0x4c
divsd xmm5, qword [esp + 0x7c]
add edi, 0xa0
movsd xmm4, qword [esp + 0x8c]
divsd xmm4, qword [esp + 0x7c]
movsd qword [esp + 0x18], xmm5
jmp 0x488900
movsd xmm4, qword [esp + 0x50]
movsd xmm5, qword [esp + 0x18]
mov esi, dword [esp + 0xdc]
movsd xmm3, qword [esp + 0x9c]
ucomisd xmm3, qword [0x52d4e0]
movd xmm2, dword [esp + 0xf0]
movsd xmm0, qword [esp + 0xcc]
movsd xmm3, qword [esp + 0xb0]
cvtdq2pd xmm2, xmm2
lahf
movaps xmm1, xmm2
mulsd xmm1, xmm0
test ah, 0x44
jp 0x4889dc
ucomisd xmm1, xmm3
lahf
test ah, 0x44
jnp 0x4889dc
mulsd xmm0, qword [esp + 0x48]
mov esi, dword [esp + 0x11c]
movsd xmm1, qword [esp + 0x114]
movsd qword [esp + 0x114], xmm3
addsd xmm0, qword [0x52d750]
mov eax, dword [esi + 0x1c]
mov dword [edi + 8], eax
movsd qword [edi + 0x90], xmm1
call fcn.004c4f00
mov ecx, eax
mov dword [esp + 0x10c], 3
cmp edx, 3
mov dword [edi + 0x70], ecx
mov eax, edx
mov dword [edi + 0x74], edx
cmovle eax, dword [esp + 0x10c]
mov dword [edi + 0x24], eax
mov dword [edi + 0x20], 1
mov dword [edi + 0x28], 1
call fcn.004c4fb0
movsd xmm1, qword [esp + 0x48]
divsd xmm1, xmm0
movsd xmm3, qword [esp + 0xb0]
movsd qword [edi + 0x30], xmm1
jmp 0x48917b
ucomisd xmm1, xmm3
lahf
test ah, 0x44
jnp 0x489174
movzx eax, byte [esp + 0xf7]
xor ecx, ecx
test esi, esi
setne cl
add ecx, eax
movzx eax, byte [esp + 0xf7]
xor eax, 1
lea edx, [ecx + ecx*2]
add edx, edx
sub edx, eax
mov eax, dword [esp + 0x11c]
add edx, dword [esp + 0xe4]
mov eax, dword [eax + 0x20]
lea ecx, [edx*8]
sub ecx, edx
cmp byte [esp + 0xf7], 0
lea eax, [eax + ecx*4]
mov dword [esp + 0xa0], eax
cvttss2si eax, dword [eax + 4]
mov dword [esp + 0xe8], eax
je 0x488b11
movsd qword [esp + 0xb8], xmm3
mov eax, dword [esp + 0xe4]
movsd qword [esp + 0x28], xmm3
test eax, eax
je 0x488a75
subsd xmm4, xmm5
mulsd xmm4, qword [0x4f5e20]
addsd xmm4, xmm5
movaps xmm0, xmm4
movsd xmm4, qword [esp + 0x40]
subsd xmm4, xmm0
movsd qword [esp + 0x50], xmm4
test eax, eax
je 0x488afb
mov eax, dword [esp + 0xc0]
subsd xmm4, xmm5
movsd xmm0, qword [esp + 0x84]
sub esp, 0x10
movsd qword [esp + 8], xmm0
movss xmm0, dword [eax*4 + 0x4f5c10]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x30], xmm4
movsd qword [esp], xmm0
call fcn.00472050
movsd xmm0, qword [esp + 0xc0]
add esp, 0x10
movsd xmm1, qword [esp + 0x20]
fstp qword [esp + 0xa8]
subsd xmm0, qword [esp + 0xa8]
divsd xmm1, xmm0
movsd xmm0, qword [esp + 0x50]
subsd xmm0, xmm1
movsd qword [esp + 0x18], xmm0
mov ecx, dword [esp + 0x60]
xor eax, eax
test ecx, ecx
jns 0x488b5b
cmp byte [esp + 0x10b], al
sete al
jmp 0x488b6a
divsd xmm0, xmm2
movsd qword [esp + 0xb8], xmm0
test esi, esi
je 0x488a54
mov eax, dword [esp + 0xe4]
subsd xmm4, xmm3
movaps xmm1, xmm0
movsd qword [esp + 0xb8], xmm0
addsd xmm1, xmm0
andps xmm4, xmmword [0x52db10]
addsd xmm4, qword [0x4f5e58]
movsd qword [esp + 0x28], xmm1
jmp 0x488a82
cmp byte [esp + 0x10b], al
sete al
cmp ecx, eax
cmovge eax, ecx
movsd xmm0, qword [esp + 0xb8]
lea esi, [eax - 1]
call fcn.004d7450
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [esp + 0x40]
call fcn.004d7450
movsd xmm2, qword [esp + 0x30]
divsd xmm2, xmm0
mov eax, dword [esp + 0x120]
mov edx, dword [esp + 0xa0]
and eax, 2
add edx, 4
mov dword [esp + 0xbc], eax
lea edx, [edx + esi*8]
movsd qword [esp + 0x30], xmm2
jmp 0x488bcb
mov esi, dword [esp + 0x78]
mov edx, dword [esp + 0xc0]
inc esi
add edx, 8
mov dword [esp + 0x78], esi
mov dword [esp + 0xc0], edx
test esi, esi
je 0x488c0c
movd xmm0, dword [esp + 0xf0]
movsd xmm1, qword [esp + 0xcc]
cvtdq2pd xmm0, xmm0
mov dword [esp + 0xf0], 1
divsd xmm1, xmm0
movsd qword [esp + 0xcc], xmm1
movss xmm0, dword [edx]
xor ecx, ecx
movzx eax, byte [esp + 0x10b]
test esi, esi
cvtps2pd xmm0, xmm0
cmove ecx, eax
sub esp, 8
mov byte [esp + 0x113], cl
subsd xmm0, xmm2
movsd qword [esp + 0xb0], xmm0
fld qword [esp + 0xb0]
fstp qword [esp]
call fcn.004d6930
fstp qword [esp + 0x28]
cvttsd2si ecx, qword [esp + 0x28]
mov edx, 1
add esp, 8
xorps xmm1, xmm1
shl edx, cl
mov ecx, dword [esp + 0xa0]
cmp byte [esp + 0x10b], 0
cmovne edx, dword [esp + 0xf0]
movss xmm0, dword [ecx + 4]
ucomiss xmm0, xmm1
mov dword [esp + 0xec], edx
lahf
test ah, 0x44
jp 0x488d32
movss xmm0, dword [ecx]
lea eax, [esp + 0xd4]
cvtps2pd xmm0, xmm0
mov esi, 0x13
mov dword [esp + 0xd4], 0
cmp edx, esi
cmovge esi, edx
sub esp, 8
movsd qword [esp], xmm0
movsd xmm0, qword [esp + 0x8c]
push esi
push eax
sub esp, 0x20
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [esp + 0x58]
xorps xmm0, xmmword [0x52db20]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0x80]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x48]
movsd qword [esp], xmm0
call fcn.004710e0
mov eax, dword [esp + 0x104]
xor ecx, ecx
cdq
add esp, 0x30
idiv esi
mov edx, dword [esp + 0xec]
mov esi, dword [esp + 0x78]
inc eax
cmp dword [esp + 0xdc], ecx
sete cl
and ecx, eax
add eax, ecx
mov dword [esp + 0xe8], eax
jmp 0x488d39
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xf0]
mov dword [esp + 0xec], edx
and eax, 1
je 0x488d93
cmp byte [esp + 0x10b], 0
mov dword [esp + 0xec], edx
je 0x488d93
mov dword [esp + 0xec], edx
test cl, 1
je 0x488d93
movsd xmm0, qword [esp + 0xcc]
add edx, edx
addsd xmm0, xmm0
mov dword [esp + 0xec], edx
add ecx, ecx
mov dword [esp + 0xf0], ecx
movsd qword [esp + 0xcc], xmm0
jmp 0x488d9a
mov edx, dword [esp + 0xec]
movsd xmm3, qword [0x52d750]
movd xmm0, eax
movd xmm1, ecx
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm3
movsd qword [esp + 0x7c], xmm1
movsd qword [edi + 0x98], xmm0
mulsd xmm0, xmm1
movsd qword [esp + 0xa8], xmm0
test esi, esi
je 0x488de6
cmp dword [esp + 0xe4], 4
jle 0x488de6
mov eax, 1
jmp 0x488de8
xor eax, eax
add eax, esi
mov esi, dword [esp + 0xe8]
mov dword [esp + 0xd4], eax
mov eax, esi
lea ecx, [esi + 3]
mov esi, dword [esp + 0xd4]
and ecx, 0xfffffffc
cmp dword [esp + 0xbc], 0
cmovne eax, ecx
inc esi
imul esi, eax
imul esi, edx
imul esi, dword [esp + 0xa4]
cmp dword [esp + 0x60], 0
jge 0x488e63
cmp dword [esp + 0x78], 2
jge 0x488e63
mov eax, dword [esp + 0xc0]
cmp dword [eax + 0xc], 0
je 0x488e63
movsd xmm2, qword [esp + 0x30]
mov eax, 0x10624dd3
mul esi
mov eax, dword [esp + 0x110]
shr edx, 6
cmp edx, dword [eax + 8]
ja 0x488bc0
mov edx, dword [esp + 0xec]
mov eax, dword [edi + 0x44]
cmp dword [eax], 0
jne 0x488f99
mov eax, edx
sub esp, 8
imul eax, dword [esp + 0xf0]
dec eax
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0xa8]
movss xmm0, dword [eax]
lea eax, [esp + 0x80]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
movsd xmm0, qword [esp + 0x8c]
push edx
push eax
sub esp, 0x20
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [esp + 0x58]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0x80]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x48]
movsd qword [esp], xmm0
call fcn.004710e0
mov edx, dword [esp + 0x14c]
add esp, 0x30
movsd xmm0, qword [esp + 0x114]
mov dword [esp + 0xa0], eax
push edx
push dword [esp + 0x124]
sub esp, 8
movsd qword [esp], xmm0
push dword [esp + 0xe4]
push dword [esp + 0x100]
push dword [esp + 0x100]
push eax
call fcn.0048a120
mov ecx, dword [edi + 0x44]
add esp, 0x20
mov dword [ecx], eax
cmp dword [0x59ca60], 0
jle 0x488f79
movd xmm0, esi
sub esp, 8
cvtdq2pd xmm0, xmm0
shr esi, 0x1f
addsd xmm0, qword [esi*8 + 0x52dac0]
divsd xmm0, qword [0x52d810]
movsd qword [esp], xmm0
push dword [esp + 0xdc]
push dword [esp + 0xf8]
push dword [esp + 0xf8]
push str.fir_len_i_phases_i_coef_interp_i_size_.3gk
call fcn.00471020
add esp, 0x18
push dword [esp + 0xa0]
call fcn.004d0f81
movsd xmm0, qword [esp + 0xac]
add esp, 4
movsd xmm3, qword [0x52d750]
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xc0]
movsd xmm1, qword [esp + 0xb0]
movsd qword [esp + 0x114], xmm1
lea ecx, [edx + 3]
mov eax, dword [eax + 4]
and ecx, 0xfffffffc
cmp dword [esp + 0xbc], 0
mov dword [edi + 8], eax
je 0x488fe0
lea eax, [ecx - 1]
mov dword [edi + 0x24], eax
lea eax, [edx - 1]
sar eax, 1
sub eax, edx
add eax, ecx
jmp 0x488fed
lea eax, [edx - 1]
mov ecx, edx
mov dword [edi + 0x24], eax
lea eax, [edx - 1]
sar eax, 1
cmp dword [esp + 0xe4], 1
mov dword [edi + 0x28], eax
cvttsd2si eax, qword [esp + 0x20]
mov dword [edi + 0x84], ecx
mov dword [edi + 0x88], eax
mov eax, dword [esp + 0xf0]
mov dword [edi + 0x7c], eax
jle 0x489031
mov eax, dword [esp + 0x10c]
test byte [eax + 0x24], 8
je 0x489031
cmp byte [esp + 0x10b], 0
jne 0x489031
mov al, 1
jmp 0x489033
xor al, al
mulsd xmm0, qword [esp + 0x48]
mov byte [esp + 0x10f], al
mov byte [edi + 0x78], al
addsd xmm0, xmm3
call fcn.004c4f00
cmp byte [esp + 0x10f], 0
movsd xmm0, qword [esp + 0xcc]
mulsd xmm0, qword [esp + 0x48]
mov dword [edi + 0x60], eax
mov dword [edi + 0x64], edx
movsd qword [esp + 0xa8], xmm0
je 0x489126
mov dword [edi + 0x5c], 0x80000000
call fcn.004c4f00
mov ecx, eax
mov dword [esp + 0x108], eax
mov dword [esp + 0xbc], edx
call fcn.004c4fb0
movsd xmm1, qword [esp + 0xa8]
subsd xmm1, xmm0
xorps xmm0, xmm0
movlpd qword [esp + 0x84], xmm0
movsd xmm0, qword [0x4f5e80]
mulsd xmm1, qword [0x4f5e88]
comisd xmm1, xmm0
jb 0x4890ea
subsd xmm1, xmm0
comisd xmm0, xmm1
jbe 0x4890ea
mov esi, dword [esp + 0x84]
mov eax, dword [esp + 0x88]
add esi, 0
adc eax, 0x80000000
jmp 0x4890f8
mov eax, dword [esp + 0x88]
mov esi, dword [esp + 0x84]
movaps xmm0, xmm1
mov dword [esp + 0x10c], eax
call fcn.004c4f00
mov ecx, dword [esp + 0xbc]
add eax, esi
mov dword [edi + 0x68], eax
adc edx, dword [esp + 0x10c]
mov eax, dword [esp + 0x108]
mov dword [edi + 0x6c], edx
jmp 0x489135
addsd xmm0, qword [0x52d750]
call fcn.004c4f00
mov ecx, edx
movsd xmm0, qword [esp + 0x7c]
mov edx, ecx
mulsd xmm0, qword [esp + 0x48]
mov dword [edi + 0x70], eax
mov dword [edi + 0x74], ecx
mov ecx, eax
movsd qword [esp + 0x7c], xmm0
call fcn.004c4fb0
movsd xmm1, qword [esp + 0x7c]
divsd xmm1, xmm0
movsd xmm3, qword [esp + 0xb0]
movsd qword [edi + 0x30], xmm1
add edi, 0xa0
mov esi, dword [esp + 0x11c]
cmp dword [esp + 0x70], 1
je 0x489262
cmp byte [esp + 0xf7], 0
je 0x4891b3
movsd xmm0, qword [esp + 0x8c]
movsd xmm1, qword [esp + 0x64]
divsd xmm0, xmm1
movsd xmm2, qword [esp + 0x40]
subsd xmm2, xmm0
maxsd xmm2, xmm3
jmp 0x4891bf
movsd xmm2, qword [esp + 0x8c]
movaps xmm1, xmm3
push dword [esi + 0x24]
mov eax, dword [esp + 0x114]
push dword [esp + 0x124]
mov ecx, dword [esp + 0xd0]
mov esi, dword [esp + 0xe8]
push dword [eax + 4]
movsd xmm0, qword [esp + 0x14]
push dword [eax]
lea eax, [esp + 0x124]
push eax
push ecx
push esi
push edi
sub esp, 0x28
mov eax, ecx
cmp esi, ecx
cmovge eax, esi
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [esp + 0xdc]
movsd qword [esp + 0x18], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
movsd qword [esp + 8], xmm2
movsd xmm2, qword [esp + 0xa0]
divsd xmm2, xmm1
movsd xmm1, qword [esp + 0xd4]
movaps xmm0, xmm1
subsd xmm0, xmm2
mulsd xmm0, qword [esp + 0x80]
subsd xmm1, xmm0
movsd qword [esp], xmm1
push 1
call fcn.00489c10
add esp, 0x4c
jmp 0x489269
mov esi, dword [esp + 0xe0]
cmp dword [0x59ca60], 0
jle 0x4892d3
push dword [esp + 0x120]
movsd xmm0, qword [esp + 0xd0]
push dword [esp + 0xcc]
mov ecx, dword [esp + 0xcc]
push esi
sub esp, 8
movsd qword [esp], xmm0
movsd xmm0, qword [esp + 0xc4]
divsd xmm0, qword [esp + 0x24]
push dword [esp + 0x104]
push dword [esp + 0xf4]
push dword [esp + 0xf4]
push ecx
sub esp, 8
movsd qword [esp], xmm0
push str._g:____i__i__i__i__g__i__i___x_
call fcn.00471020
add esp, 0x30
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x120], 0
cmp dword [eax + 0x20], 0
mov esi, dword [eax + 0x28]
mov dword [esp + 0x110], esi
jle 0x4893b2
lea edi, [esi + 0x10]
nop dword [eax]
mov eax, dword [esp + 0xa4]
lea esi, [edi - 4]
push 0x4000
mov dword [edi + 4], eax
mov dword [edi], 0x4000
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
call fcn.004d23ef
mov dword [esi], eax
add esp, 4
mov ecx, dword [edi + 0x18]
mov eax, ecx
imul eax, dword [esp + 0xa4]
push eax
push 0
push ecx
push esi
call fcn.004746a0
add esp, 8
push eax
call fcn.004c62a0
add esp, 0xc
cmp dword [0x59ca60], 1
jle 0x489379
push dword [edi + 0x54]
mov ecx, dword [edi + 0x10]
push dword [edi + 0x18]
mov eax, dword [edi + 0x14]
sub eax, ecx
push eax
push ecx
push str._5i__5i_preload_i_remL_i
call fcn.00471020
add esp, 0x14
mov eax, dword [esp + 0x120]
add edi, 0xa0
mov ecx, dword [esp + 0xfc]
inc eax
mov esi, dword [esp + 0x110]
add esi, 0xa0
mov dword [esp + 0x120], eax
mov dword [esp + 0x110], esi
cmp eax, dword [ecx + 0x20]
jl 0x489300
mov eax, dword [esp + 0xa4]
push 0x4000
mov dword [esi + 0x14], eax
mov dword [esi + 0x10], 0x4000
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
call fcn.004d23ef
add esp, 4
mov dword [esi + 0xc], eax
xor eax, eax
pop edi
pop esi
add esp, 0xf0
ret
pop edi
mov eax, str.phase_response_not_in__0min_phase_100max_phase___
pop esi
add esp, 0xf0
ret
pop edi
mov eax, str.transition_band_not_within__50_150____of_nyquist
pop esi
add esp, 0xf0
ret
pop edi
mov eax, str.transition_bandwidth_not_in__0.2_50____of_nyquist
pop esi
add esp, 0xf0
ret