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

Disassembly:
sub esp, 0xd0
mov ecx, dword [esp + 0xf8]
mov eax, 1
push esi
mov esi, dword [esp + 0xe8]
and ecx, 1
add ecx, 2
shl eax, cl
mov dword [esp + 0x78], 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 + 0xc], xmm0
movaps xmm0, xmm2
subsd xmm0, xmm3
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0xec]
shr eax, 2
and eax, 0xffffff01
movsd qword [esp + 0x50], xmm1
push edi
mov ecx, dword [ecx + 0x14]
movsd qword [esp + 0x64], xmm0
movsd xmm0, qword [0x101f33a8]
movsd qword [esp + 0x90], xmm0
movsd qword [esp + 0x28], xmm0
movsd xmm0, qword [esp + 0xe4]
movsd qword [esp + 0xac], xmm0
movaps xmm0, xmm1
minsd xmm0, qword [0x10205c98]
mov dword [esp + 0xbc], ecx
and ecx, 3
dec ecx
movsd qword [esp + 0x38], xmm3
mov dword [esp + 0x40], ecx
movsd qword [esp + 0x5c], xmm2
movsd qword [esp + 0x6c], xmm0
movsd qword [esp + 0x80], xmm0
movsd xmm0, qword [0x102d2bb8]
mov dword [esp + 0xc8], eax
movsd qword [esp + 0x18], xmm3
movsd qword [esp + 0x30], xmm2
call fcn.10122590
movsd xmm1, qword [esp + 0x6c]
mov edi, 1
movsd xmm5, qword [esp + 0x90]
mulsd xmm0, qword [0x10204150]
addsd xmm1, xmm5
mov eax, dword [esp + 0xbc]
shr eax, 3
not al
mov dword [esp + 0xa8], 1
and eax, 0xffffff01
mov dword [esp + 0xb4], 1
test byte [esi + 0x24], 0x40
mulsd xmm1, xmm0
mov dword [esp + 0xa0], 0
movsd qword [esp + 0x98], xmm0
mov dword [esp + 0xd0], 1
mov dword [esp + 0xb8], edi
movsd qword [esp + 0x6c], xmm1
movsd qword [esp + 0x4c], xmm1
mov dword [esp + 0xa4], edi
mov byte [esp + 0xd6], 0
mov byte [esp + 0xd7], 0
mov dword [esp + 0xbc], eax
je 0x100da56b
movsd xmm0, qword [0x10205c90]
xor edx, edx
comisd xmm0, xmmword [esp + 0x54]
movsd xmm0, qword [0x10204148]
setae dl
xor ecx, ecx
comisd xmm0, xmmword [esp + 0x38]
setae cl
jmp 0x100da59e
movsd xmm1, qword [esp + 0x54]
ucomisd xmm1, qword [0x10205c90]
lahf
test ah, 0x44
jp 0x100da583
mov dl, 1
jmp 0x100da585
xor dl, dl
movsd xmm2, qword [esp + 0x38]
ucomisd xmm2, qword [0x10204148]
lahf
xor ecx, ecx
test ah, 0x44
mov eax, edi
cmovnp ecx, eax
xor esi, esi
test dl, dl
je 0x100da5ec
cmp dword [esp + 0xcc], edi
jne 0x100da5ec
movsd xmm2, qword [esp + 0xe4]
comisd xmm2, xmm5
ja 0x100da5e8
movsd xmm0, qword [esp + 0x10]
ucomisd xmm0, qword [0x10203218]
lahf
test ah, 0x44
jp 0x100da5e8
test ecx, ecx
je 0x100da5e8
movsd xmm4, qword [esp + 0x5c]
ucomisd xmm4, xmm5
lahf
test ah, 0x44
jp 0x100da5e8
xor ecx, ecx
jmp 0x100da630
mov ecx, edi
jmp 0x100da630
fld qword [esp + 0x80]
sub esp, 8
fstp qword [esp]
call fcn.1011d430
movsd xmm5, qword [esp + 0x98]
add esp, 8
movsd xmm2, qword [esp + 0xe4]
fstp qword [esp + 0x80]
cvttsd2si eax, qword [esp + 0x80]
sub eax, 6
cdq
and edx, 3
lea ecx, [edx + eax]
sar ecx, 2
comisd xmm5, xmm2
mov dword [esp + 0xc0], ecx
movsd xmm3, qword [esp + 0x5c]
movsd xmm4, qword [esp + 0x38]
jbe 0x100da67f
movaps xmm1, xmm4
movaps xmm2, xmm3
divsd xmm1, qword [0x10205c58]
movaps xmm0, xmm5
subsd xmm2, xmm5
subsd xmm0, xmm1
comisd xmm2, xmm0
jbe 0x100da676
pop edi
mov eax, str.imaging_greater_than_rolloff
pop esi
add esp, 0xd0
ret
movsd xmm2, qword [esp + 0xe4]
movsd xmm0, qword [0x10205c20]
movsd xmm1, qword [esp + 0x64]
comisd xmm0, xmm1
ja 0x100dbbff
comisd xmm1, xmmword [0x10205c48]
ja 0x100dbbff
movsd xmm0, qword [0x10205c40]
comisd xmm0, xmm4
ja 0x100dbbf1
comisd xmm3, xmmword [0x10205c70]
ja 0x100dbbf1
movsd xmm1, qword [esp + 0x54]
xorps xmm7, xmm7
ucomisd xmm1, xmm7
lahf
test ah, 0x44
jnp 0x100da6fe
movsd xmm0, qword [0x10204468]
comisd xmm0, xmm1
ja 0x100da6f0
comisd xmm1, xmmword [0x10205c98]
jbe 0x100da6fe
pop edi
mov eax, str.precision_not_in__15_33__bits
pop esi
add esp, 0xd0
ret
comisd xmm7, xmm2
jb 0x100da712
pop edi
mov eax, str.resampling_factor_not_positive
pop esi
add esp, 0xd0
ret
movsd xmm0, qword [esp + 0x10]
comisd xmm7, xmm0
ja 0x100dbbe3
comisd xmm0, xmmword [0x101f33b0]
ja 0x100dbbe3
mov eax, dword [esp + 0xdc]
mov edx, dword [esp + 0xfc]
movsd xmm6, qword [0x102d2bb0]
ucomisd xmm1, xmm7
mov dword [eax], edx
movsd qword [eax + 8], xmm2
lahf
test ah, 0x44
jnp 0x100dac52
imul eax, dword [esp + 0x7c], 0x2a
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsd qword [esp + 0x80], xmm1
inc esi
cmp dword [esp + 0x40], 0
mov dword [esp + 0xc4], esi
jle 0x100da787
mov edi, 1
jmp 0x100da7f2
test ecx, ecx
je 0x100da792
mov edi, 0x800
jmp 0x100da7f2
mov eax, dword [esp + 0xf0]
sub esp, 8
mov eax, dword [eax + 8]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101f36b0]
mulsd xmm0, qword [0x101f5f70]
divsd xmm0, xmm1
movsd qword [esp + 0x4c], xmm0
fld qword [esp + 0x4c]
fstp qword [esp]
call fcn.1011d430
movsd xmm5, qword [esp + 0x98]
add esp, 8
movsd xmm6, qword [0x102d2bb0]
xorps xmm7, xmm7
fstp qword [esp + 0x44]
cvttsd2si edi, qword [esp + 0x44]
movsd xmm1, qword [esp + 0xac]
movaps xmm4, xmm7
movaps xmm0, xmm1
movsd qword [esp + 0x20], xmm7
mulsd xmm0, xmm6
comisd xmm5, xmm1
cvttsd2si eax, xmm0
seta cl
xor edx, edx
mov byte [esp + 0xd6], cl
mov dword [esp + 0xa0], edx
sar eax, 1
je 0x100da840
nop word [eax + eax]
inc edx
mulsd xmm1, xmm6
sar eax, 1
jne 0x100da830
mov dword [esp + 0xa0], edx
movsd xmm2, qword [0x102d2bb8]
test cl, cl
jne 0x100da860
comisd xmm1, xmmword [0x10205c68]
jbe 0x100da85c
comisd xmm2, xmm1
ja 0x100da860
xor eax, eax
jmp 0x100da865
mov eax, 1
comisd xmm1, xmm5
mov dword [esp + 0xb4], eax
jbe 0x100da88d
test eax, eax
je 0x100da88d
mov dword [esp + 0xa4], 2
movsd qword [esp + 0x44], xmm2
divsd xmm1, xmm2
jmp 0x100da8b2
mov dword [esp + 0xa4], 1
movaps xmm0, xmm5
movsd qword [esp + 0x44], xmm0
divsd xmm1, xmm0
test eax, eax
jne 0x100da8b2
comisd xmm2, xmm1
lea ecx, [eax + 2]
ja 0x100da8b7
mov ecx, 1
cmp byte [esp + 0xd6], 0
je 0x100da8d2
cmp dword [esp + 0xc0], 0
je 0x100da8d2
mov eax, 1
jmp 0x100da8d4
xor eax, eax
add eax, ecx
mov dword [esp + 0xa8], eax
movd xmm0, eax
cvtdq2pd xmm2, xmm0
mulsd xmm2, xmm1
cvttsd2si eax, xmm2
movaps xmm3, xmm2
movsd qword [esp + 0xac], xmm2
movsd qword [esp + 0x74], xmm2
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm3, xmm0
ucomisd xmm3, xmm7
movsd qword [esp + 0x88], xmm3
lahf
test ah, 0x44
jnp 0x100da996
movaps xmm0, xmm3
sub esp, 8
mulsd xmm0, qword [0x102d2be8]
movsd qword [esp + 0x10], xmm0
addsd xmm0, xmm6
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
call fcn.101166f0
fstp qword [esp + 0x28]
movsd xmm4, qword [esp + 0x28]
add esp, 8
divsd xmm4, qword [esp + 8]
movsd xmm5, qword [esp + 0x90]
xorps xmm7, xmm7
movsd xmm2, qword [esp + 0xac]
subsd xmm4, xmm5
movsd xmm3, qword [esp + 0x88]
movsd xmm6, qword [0x102d2bb0]
andps xmm4, xmmword [0x101f33c0]
movsd qword [esp + 0x20], xmm4
ucomisd xmm3, xmm7
mov esi, 1
lahf
test ah, 0x44
jp 0x100da9a9
mov al, 1
jmp 0x100da9ab
xor al, al
mov byte [esp + 0xd7], al
cmp edi, 1
jl 0x100daaa9
nop dword [eax + eax]
test al, al
jne 0x100daa9d
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 [0x101f33c0]
comisd xmm4, xmm0
setae al
mov byte [esp + 0xd7], al
test al, al
je 0x100daa94
cmp ecx, esi
jne 0x100daa6f
fld qword [esp + 0x74]
sub esp, 8
fstp qword [esp]
call fcn.1011d430
xor eax, eax
movsd xmm3, qword [esp + 0x90]
fstp qword [esp + 0x7c]
movsd xmm2, qword [esp + 0x7c]
add esp, 8
comisd xmm2, xmmword [0x101f3690]
movsd xmm4, qword [esp + 0x20]
movsd xmm5, qword [esp + 0x90]
movsd xmm6, qword [0x102d2bb0]
seta al
add dword [esp + 0xa0], eax
inc eax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm2, xmm0
jmp 0x100daa87
cvttsd2si eax, xmm2
mov dword [esp + 0xd0], esi
imul eax, esi
add eax, ecx
movd xmm2, eax
cvtdq2pd xmm2, xmm2
mov al, byte [esp + 0xd7]
movsd qword [esp + 0x74], xmm2
inc esi
cmp esi, edi
jle 0x100da9c0
movsd qword [esp + 0xac], xmm2
xorps xmm7, xmm7
movsd xmm0, qword [esp + 0x44]
mov eax, dword [esp + 0xd0]
imul eax, dword [esp + 0xa8]
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 + 0xbc]
test cl, cl
je 0x100daba2
cmp dword [esp + 0xb8], 1
jne 0x100daba2
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm0, xmm2
comisd xmm0, xmmword [0x101f3698]
jbe 0x100daba2
ucomisd xmm0, qword [0x10205c88]
lahf
test ah, 0x44
jnp 0x100daba2
mulsd xmm0, qword [0x101ffda8]
mov edi, 4
mov dword [esp + 0xb8], edi
cvttsd2si eax, xmm0
sar eax, 1
je 0x100dab55
nop word [eax + eax]
cmp edi, 0x100
jge 0x100dab4e
add edi, edi
sar eax, 1
jne 0x100dab40
mov dword [esp + 0xb8], edi
movd xmm0, dword [esp + 0xd0]
xor esi, esi
movd xmm1, edi
cvtdq2pd xmm1, xmm1
mov al, byte [esp + 0xd7]
mov dword [esp + 0xd0], 1
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm2
divsd xmm1, xmm0
movd xmm0, dword [esp + 0xa8]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
movsd qword [esp + 0xac], xmm1
jmp 0x100dac12
mov al, byte [esp + 0xd7]
test al, al
je 0x100dac04
movzx edi, cl
cmp edx, esi
mov ecx, esi
cmovge ecx, edx
lea eax, [edi*2 + 3]
cmp ecx, eax
jl 0x100dabd0
mov ecx, esi
lea eax, [edi + edi*2]
imul ecx, edx
add eax, eax
cmp ecx, eax
jge 0x100dabfd
mov dword [esp + 0xa8], edx
mov dword [esp + 0xb4], esi
mov dword [esp + 0xa4], 1
mov dword [esp + 0xd0], 1
movsd qword [esp + 0xac], xmm5
mov al, byte [esp + 0xd7]
mov esi, dword [esp + 0xc4]
mov edi, dword [esp + 0xb8]
mov ecx, dword [esp + 0xc0]
test ecx, ecx
jne 0x100dac41
test al, al
je 0x100dac25
test esi, esi
jne 0x100dac52
movsd xmm1, qword [esp + 0x80]
mov ecx, 1
mov dword [esp + 0xc0], ecx
xor esi, esi
jmp 0x100da771
movsd xmm1, qword [esp + 0x80]
test esi, esi
je 0x100da771
movd xmm0, dword [esp + 0xd0]
cvtdq2pd xmm0, xmm0
mov esi, dword [esp + 0xa4]
mulsd xmm0, qword [esp + 0xac]
ucomisd xmm0, xmm5
lahf
xor edx, edx
test ah, 0x44
mov eax, 1
cmovp edx, eax
mov eax, dword [esp + 0xb4]
imul eax, dword [esp + 0xa8]
xor ecx, ecx
imul esi, edi
cmp eax, 1
mov dword [esp + 0x8c], eax
mov dword [esp + 0xbc], esi
setne cl
xor eax, eax
cmp esi, 1
mov esi, dword [esp + 0xdc]
setne al
add ecx, edx
add eax, ecx
mov ecx, dword [esp + 0xa0]
add ecx, eax
mov dword [esi + 0x20], ecx
mov edx, ecx
jne 0x100dacf6
movsd xmm0, qword [esp + 0xf4]
ucomisd xmm0, xmm5
lahf
test ah, 0x44
jnp 0x100dacf6
lea edx, [ecx + 1]
mov dword [esp + 0xd0], 0
movsd qword [esp + 0x54], xmm7
mov dword [esi + 0x20], edx
lea eax, [edx + 1]
push 0xa0
push eax
call fcn.101128c3
add esp, 8
mov dword [esi + 0x28], eax
test eax, eax
jne 0x100dad1c
pop edi
mov eax, str.out_of_memory
pop esi
add esp, 0xd0
ret
xor edx, edx
cmp dword [esi + 0x20], edx
jle 0x100dad76
mov esi, dword [esp + 0xe0]
xor ecx, ecx
mov edi, dword [esp + 0xdc]
nop dword [eax]
nop word [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 0x100dad40
mov edi, dword [esp + 0xb8]
mov esi, dword [esp + 0xdc]
movd xmm1, dword [esp + 0xa4]
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 + 0xe4]
divsd xmm1, xmm0
movsd qword [esp + 0x44], xmm1
cmp ecx, 1
jle 0x100dae1d
movd xmm0, dword [esp + 0xd0]
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [esp + 0xac]
ucomisd xmm0, qword [esp + 0x90]
lahf
test ah, 0x44
jnp 0x100dadea
movsd xmm0, qword [esp + 0x98]
dec ecx
addsd xmm0, qword [esp + 0x6c]
movsd qword [esp + 0x6c], xmm0
jmp 0x100dadf0
movsd xmm0, qword [esp + 0x6c]
movsd qword [esp + 0x4c], xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
call fcn.10122590
mulsd xmm0, qword [0x10204150]
movsd xmm1, qword [esp + 0x6c]
addsd xmm1, xmm0
movsd qword [esp + 0x6c], xmm1
jmp 0x100dae23
movsd xmm1, qword [esp + 0x6c]
mov eax, dword [esp + 0xfc]
xor edx, edx
mov edi, dword [eax + 0x10]
mov esi, dword [eax + 0xc]
cmp edi, 1
jbe 0x100dae56
lea ecx, [edx + 1]
lea eax, [esi + 0x10]
nop dword [eax]
movss xmm0, dword [eax]
cvtps2pd xmm0, xmm0
comisd xmm1, xmm0
jbe 0x100dae56
inc ecx
inc edx
add eax, 0x14
cmp ecx, edi
jb 0x100dae40
mov eax, dword [esp + 0xdc]
lea ecx, [edx + edx*4]
mov edi, dword [eax + 0x28]
mov eax, dword [esp + 0xa0]
test eax, eax
jle 0x100daea0
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 0x100dae70
cmp dword [esp + 0x8c], 1
je 0x100db0ad
cmp byte [esp + 0xc8], 0
je 0x100dafad
cmp dword [esp + 0xbc], 1
je 0x100dafad
movsd xmm0, qword [0x10204158]
sub esp, 0x10
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm0
call fcn.100c4ed0
movsd xmm0, qword [esp + 0x54]
movsd xmm1, qword [esp + 0x7c]
fmul qword [esp + 0x74]
movsd qword [esp + 8], xmm1
movaps xmm1, xmm0
addsd xmm1, xmm0
fstp qword [esp + 0xa8]
subsd xmm1, qword [esp + 0x6c]
maxsd xmm1, xmm0
movsd xmm0, qword [esp + 0xa8]
subsd xmm1, qword [esp + 0x48]
divsd xmm0, xmm1
movsd qword [esp], xmm0
call fcn.100c4280
fstp qword [esp + 0xa8]
movsd xmm1, qword [esp + 0xa8]
add esp, 0x10
xorps xmm1, xmmword [0x101f4c00]
comisd xmm1, xmmword [0x10205c30]
jbe 0x100dafad
cmp dword [0x1034ec08], 0
movaps xmm0, xmm1
mulsd xmm0, qword [0x10205c18]
movsd xmm2, qword [0x10205c28]
subsd xmm2, xmm0
mulsd xmm2, xmm1
subsd xmm2, qword [0x10205c38]
mulsd xmm2, xmm1
addsd xmm2, qword [0x10205c60]
movsd qword [esp + 0x28], xmm2
jle 0x100dafb3
sub esp, 0x10
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm2
push str.tbw_tighten_g___gdB_
call fcn.100bec10
add esp, 0x14
movsd xmm2, qword [esp + 0x28]
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xa8]
test ecx, ecx
je 0x100dafd6
cmp edx, ecx
mov eax, ecx
cmovge eax, edx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
jmp 0x100daff0
movd xmm0, dword [esp + 0xd0]
movsd xmm1, qword [esp + 0xac]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
mov eax, dword [esp + 0xfc]
movsd xmm0, qword [esp + 0x10]
movsd qword [esp + 0x80], xmm1
push dword [eax + 0x24]
mov eax, dword [esp + 0xf4]
push dword [esp + 0x104]
push dword [eax + 4]
push dword [eax]
lea eax, [esp + 0x104]
push eax
mov eax, 1
cmp ecx, eax
cmovge eax, ecx
push eax
push edx
push edi
sub esp, 0x28
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [esp + 0xb4]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [esp + 0xa4]
movsd qword [esp + 0x10], xmm1
movsd xmm1, qword [esp + 0xac]
mulsd xmm1, xmm2
movsd qword [esp + 8], xmm0
subsd xmm0, xmm1
movsd qword [esp], xmm0
push 0
call fcn.100dc400
movsd xmm5, qword [esp + 0x84]
add esp, 0x4c
divsd xmm5, qword [esp + 0x80]
add edi, 0xa0
movsd xmm4, qword [esp + 0x5c]
divsd xmm4, qword [esp + 0x80]
movsd qword [esp + 0x18], xmm5
jmp 0x100db0b9
movsd xmm4, qword [esp + 0x30]
movsd xmm5, qword [esp + 0x18]
movsd xmm1, qword [esp + 0x54]
ucomisd xmm1, qword [0x101f3390]
mov esi, dword [esp + 0xd0]
movsd xmm1, qword [esp + 0xac]
movsd xmm3, qword [esp + 0x90]
lahf
test ah, 0x44
jp 0x100db18f
movd xmm0, esi
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
ucomisd xmm0, xmm3
lahf
test ah, 0x44
jnp 0x100db18f
mov eax, dword [esp + 0xfc]
movsd xmm0, qword [esp + 0xf4]
movsd qword [esp + 0xf4], xmm3
mov eax, dword [eax + 0x1c]
movsd qword [edi + 0x90], xmm0
movaps xmm0, xmm1
mulsd xmm0, qword [0x102d2be8]
mov dword [edi + 8], eax
addsd xmm0, qword [0x102d2bb0]
call fcn.1010d660
mov ecx, eax
mov dword [esp + 0xec], 3
cmp edx, 3
mov dword [edi + 0x70], ecx
mov eax, edx
mov dword [edi + 0x74], edx
cmovle eax, dword [esp + 0xec]
mov dword [edi + 0x24], eax
mov dword [edi + 0x20], 1
mov dword [edi + 0x28], 1
call fcn.1010d760
movsd xmm1, qword [0x102d2be8]
divsd xmm1, xmm0
movsd qword [edi + 0x30], xmm1
jmp 0x100db970
movd xmm2, esi
cvtdq2pd xmm2, xmm2
movaps xmm0, xmm2
mulsd xmm0, xmm1
ucomisd xmm0, xmm3
lahf
test ah, 0x44
jnp 0x100db979
movzx eax, byte [esp + 0xd6]
xor ecx, ecx
cmp dword [esp + 0xb4], ecx
setne cl
add ecx, eax
movzx eax, byte [esp + 0xd6]
xor eax, 1
lea edx, [ecx + ecx*2]
add edx, edx
sub edx, eax
mov eax, dword [esp + 0xfc]
add edx, dword [esp + 0xc0]
mov eax, dword [eax + 0x20]
lea ecx, [edx*8]
sub ecx, edx
cmp byte [esp + 0xd6], 0
cvttss2si esi, dword [eax + ecx*4 + 4]
lea eax, [eax + ecx*4]
mov dword [esp + 0x8c], eax
mov dword [esp + 0xc8], esi
je 0x100db2d5
movsd qword [esp + 0x64], xmm3
mov eax, dword [esp + 0xc0]
movsd qword [esp + 0x54], xmm3
test eax, eax
je 0x100db23a
subsd xmm4, xmm5
mulsd xmm4, qword [0x10205c50]
addsd xmm4, xmm5
movaps xmm0, xmm4
movsd xmm4, qword [0x102d2bb8]
subsd xmm4, xmm0
movsd qword [esp + 0x30], xmm4
test eax, eax
je 0x100db2bf
mov eax, dword [esp + 0xcc]
subsd xmm4, xmm5
movsd xmm0, qword [esp + 0x4c]
sub esp, 0x10
movsd qword [esp + 8], xmm0
movss xmm0, dword [eax*4 + 0x10205a40]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x18], xmm4
movsd qword [esp], xmm0
call fcn.100c4ed0
movsd xmm0, qword [esp + 0xa0]
add esp, 0x10
movsd xmm1, qword [esp + 8]
fstp qword [esp + 0x98]
subsd xmm0, qword [esp + 0x98]
divsd xmm1, xmm0
movsd xmm0, qword [esp + 0x30]
subsd xmm0, xmm1
movsd qword [esp + 0x18], xmm0
mov ecx, dword [esp + 0x40]
xor eax, eax
test ecx, ecx
jns 0x100db322
cmp byte [esp + 0xd7], al
sete al
jmp 0x100db331
cmp dword [esp + 0xb4], 0
movaps xmm0, xmm1
divsd xmm0, xmm2
movsd qword [esp + 0x64], xmm0
je 0x100db219
mov eax, dword [esp + 0xc0]
subsd xmm4, xmm3
movaps xmm1, xmm0
movsd qword [esp + 0x64], xmm0
addsd xmm1, xmm0
andps xmm4, xmmword [0x101f33c0]
addsd xmm4, qword [0x101f3690]
movsd qword [esp + 0x54], xmm1
jmp 0x100db249
cmp byte [esp + 0xd7], al
sete al
cmp ecx, eax
cmovge eax, ecx
movsd xmm0, qword [esp + 0x64]
lea edx, [eax - 1]
mov dword [esp + 0xc4], edx
call fcn.1011e010
movsd qword [esp + 0x64], xmm0
movsd xmm0, qword [0x102d2bb8]
call fcn.1011e010
movsd xmm2, qword [esp + 0x64]
divsd xmm2, xmm0
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0xc4]
and eax, 2
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x8c]
lea eax, [eax + ecx*8]
add eax, 4
movsd qword [esp + 0x64], xmm2
jmp 0x100db39e
mov esi, dword [esp + 0xc8]
mov eax, dword [esp + 0xbc]
inc ecx
add eax, 8
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xbc], eax
test ecx, ecx
je 0x100db3e2
movd xmm0, dword [esp + 0xd0]
movsd xmm1, qword [esp + 0xac]
cvtdq2pd xmm0, xmm0
mov dword [esp + 0xd0], 1
divsd xmm1, xmm0
movsd qword [esp + 0xac], xmm1
movzx eax, byte [esp + 0xd7]
xor ecx, ecx
cmp dword [esp + 0xc4], ecx
cmove ecx, eax
mov eax, dword [esp + 0xbc]
sub esp, 8
mov byte [esp + 0xdf], cl
movss xmm0, dword [eax]
cvtps2pd xmm0, xmm0
subsd xmm0, xmm2
movsd qword [esp + 0xa0], xmm0
fld qword [esp + 0xa0]
fstp qword [esp]
call fcn.1011d430
fstp qword [esp + 0x88]
cvttsd2si ecx, qword [esp + 0x88]
mov edx, 1
add esp, 8
xorps xmm1, xmm1
shl edx, cl
mov ecx, dword [esp + 0x8c]
cmp byte [esp + 0xd7], 0
cmovne edx, dword [esp + 0xd0]
movss xmm0, dword [ecx + 4]
ucomiss xmm0, xmm1
mov dword [esp + 0xcc], edx
lahf
test ah, 0x44
jp 0x100db513
movss xmm0, dword [ecx]
lea eax, [esp + 0xc8]
cvtps2pd xmm0, xmm0
mov esi, 0x13
mov dword [esp + 0xc8], 0
cmp edx, esi
cmovge esi, edx
sub esp, 8
movsd qword [esp], xmm0
movsd xmm0, qword [esp + 0x54]
push esi
push eax
sub esp, 0x20
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [esp + 0x84]
xorps xmm0, xmmword [0x101f4c00]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0x60]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x48]
movsd qword [esp], xmm0
call fcn.100c3f20
mov eax, dword [esp + 0xf8]
xor ecx, ecx
cdq
add esp, 0x30
idiv esi
cmp dword [esp + 0xb4], ecx
mov edx, dword [esp + 0xcc]
sete cl
lea esi, [eax + 1]
and ecx, esi
add esi, ecx
mov dword [esp + 0xc8], esi
mov ecx, dword [esp + 0xd0]
mov eax, esi
mov dword [esp + 0xcc], edx
and eax, 1
je 0x100db56f
cmp byte [esp + 0xd7], 0
mov dword [esp + 0xcc], edx
je 0x100db56f
mov dword [esp + 0xcc], edx
test cl, 1
je 0x100db56f
movsd xmm0, qword [esp + 0xac]
add edx, edx
addsd xmm0, xmm0
mov dword [esp + 0xcc], edx
add ecx, ecx
mov dword [esp + 0xd0], ecx
movsd qword [esp + 0xac], xmm0
jmp 0x100db576
mov edx, dword [esp + 0xcc]
movsd xmm3, qword [0x102d2bb0]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movd xmm1, ecx
mov ecx, dword [esp + 0xc4]
mulsd xmm0, xmm3
cvtdq2pd xmm1, xmm1
movsd qword [edi + 0x98], xmm0
mulsd xmm1, xmm0
movsd qword [esp + 0x98], xmm1
test ecx, ecx
je 0x100db5c3
cmp dword [esp + 0xc0], 4
jle 0x100db5c3
mov eax, 1
jmp 0x100db5c5
xor eax, eax
add eax, ecx
cmp dword [esp + 0x78], 0
mov dword [esp + 0xc4], eax
je 0x100db5dd
lea eax, [esi + 3]
and eax, 0xfffffffc
jmp 0x100db5df
mov eax, esi
mov esi, dword [esp + 0xc4]
inc esi
imul esi, eax
imul esi, edx
imul esi, dword [esp + 0x7c]
cmp dword [esp + 0x40], 0
jge 0x100db632
cmp ecx, 2
jge 0x100db632
mov eax, dword [esp + 0xbc]
cmp dword [eax + 0xc], 0
je 0x100db632
movsd xmm2, qword [esp + 0x64]
mov eax, 0x10624dd3
mul esi
mov eax, dword [esp + 0xf0]
shr edx, 6
cmp edx, dword [eax + 8]
ja 0x100db390
mov edx, dword [esp + 0xcc]
mov eax, dword [edi + 0x44]
cmp dword [eax], 0
jne 0x100db765
mov eax, edx
sub esp, 8
imul eax, dword [esp + 0xd0]
dec eax
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x94]
movss xmm0, dword [eax]
lea eax, [esp + 0x80]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
movsd xmm0, qword [esp + 0x54]
push edx
push eax
sub esp, 0x20
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [esp + 0x84]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0x60]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x48]
movsd qword [esp], xmm0
call fcn.100c3f20
mov edx, dword [esp + 0x12c]
add esp, 0x30
movsd xmm0, qword [esp + 0xf4]
mov dword [esp + 0x8c], eax
push edx
push dword [esp + 0x104]
sub esp, 8
movsd qword [esp], xmm0
push dword [esp + 0xd4]
push dword [esp + 0xe0]
push dword [esp + 0xe0]
push eax
call fcn.100dc900
mov ecx, dword [edi + 0x44]
add esp, 0x20
mov dword [ecx], eax
cmp dword [0x1034ec08], 0
jle 0x100db745
movd xmm0, esi
sub esp, 8
cvtdq2pd xmm0, xmm0
shr esi, 0x1f
addsd xmm0, qword [esi*8 + 0x101f36b0]
divsd xmm0, qword [0x101f5f70]
movsd qword [esp], xmm0
push dword [esp + 0xcc]
push dword [esp + 0xd8]
push dword [esp + 0xd8]
push str.fir_len_i_phases_i_coef_interp_i_size_.3gk
call fcn.100bec10
add esp, 0x18
push dword [esp + 0x8c]
call fcn.10115694
movsd xmm1, qword [esp + 0x9c]
add esp, 4
movsd xmm3, qword [0x102d2bb0]
test byte [esp + 0x100], 2
mov eax, dword [esp + 0xbc]
movsd xmm0, qword [esp + 0x90]
mov edx, dword [esp + 0xc8]
movsd qword [esp + 0xf4], xmm0
mov eax, dword [eax + 4]
mov dword [edi + 8], eax
je 0x100db7b6
lea eax, [edx + 3]
and eax, 0xfffffffc
lea ecx, [edx + 3]
dec eax
and ecx, 0xfffffffc
mov dword [edi + 0x24], eax
lea eax, [edx - 1]
sar eax, 1
sub eax, edx
add edx, 3
add eax, ecx
and edx, 0xfffffffc
jmp 0x100db7c1
lea eax, [edx - 1]
mov dword [edi + 0x24], eax
lea eax, [edx - 1]
sar eax, 1
cmp dword [esp + 0xc0], 1
mov dword [edi + 0x28], eax
cvttsd2si eax, qword [esp + 0x80]
mov dword [edi + 0x84], edx
mov dword [edi + 0x88], eax
mov eax, dword [esp + 0xd0]
mov dword [edi + 0x7c], eax
jle 0x100db8e2
mov eax, dword [esp + 0xec]
test byte [eax + 0x24], 8
je 0x100db8e2
cmp byte [esp + 0xd7], 0
jne 0x100db8e2
mulsd xmm1, qword [0x102d2be8]
mov al, 1
mov byte [edi + 0x78], al
addsd xmm1, xmm3
movaps xmm0, xmm1
call fcn.1010d660
movsd xmm0, qword [esp + 0xac]
mulsd xmm0, qword [0x102d2be8]
mov dword [edi + 0x60], eax
mov dword [edi + 0x64], edx
mov dword [edi + 0x5c], 0x80000000
movsd qword [esp + 0x98], xmm0
call fcn.1010d660
mov ecx, eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x8c], edx
call fcn.1010d760
movsd xmm1, qword [esp + 0x98]
subsd xmm1, xmm0
xorps xmm0, xmm0
movlpd qword [esp + 0x4c], xmm0
movsd xmm0, qword [0x101f4920]
mulsd xmm1, qword [0x10205ca0]
comisd xmm1, xmm0
jb 0x100db8af
subsd xmm1, xmm0
comisd xmm0, xmm1
jbe 0x100db8af
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
add esi, 0
adc eax, 0x80000000
jmp 0x100db8b7
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x4c]
movaps xmm0, xmm1
mov dword [esp + 0xec], eax
call fcn.1010d660
mov ecx, dword [esp + 0x8c]
add eax, esi
mov dword [edi + 0x68], eax
adc edx, dword [esp + 0xec]
mov eax, dword [esp + 0x78]
mov dword [edi + 0x6c], edx
jmp 0x100db921
mulsd xmm1, qword [0x102d2be8]
xor al, al
mov byte [edi + 0x78], al
addsd xmm1, xmm3
movaps xmm0, xmm1
call fcn.1010d660
movsd xmm0, qword [esp + 0xac]
mulsd xmm0, qword [0x102d2be8]
mov dword [edi + 0x60], eax
mov dword [edi + 0x64], edx
addsd xmm0, qword [0x102d2bb0]
call fcn.1010d660
mov ecx, edx
mov esi, 0x70
mov edx, edi
mov dword [esi + edx], eax
mov dword [esi + edx + 4], ecx
mov edx, ecx
mov esi, dword [esp + 0xd0]
mov ecx, eax
movd xmm0, esi
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x102d2be8]
movsd qword [esp + 0x98], xmm0
call fcn.1010d760
movsd xmm1, qword [esp + 0x98]
divsd xmm1, xmm0
movsd qword [edi + 0x30], xmm1
add edi, 0xa0
movsd xmm3, qword [esp + 0x90]
mov edx, dword [esp + 0xa4]
mov eax, edx
mov ecx, dword [esp + 0xb8]
imul eax, ecx
cmp eax, 1
je 0x100dba6f
cmp byte [esp + 0xd6], 0
je 0x100db9c1
movsd xmm0, qword [esp + 0x5c]
movsd xmm1, qword [esp + 0x44]
divsd xmm0, xmm1
movsd xmm2, qword [0x102d2bb8]
subsd xmm2, xmm0
maxsd xmm2, xmm3
jmp 0x100db9ca
movsd xmm2, qword [esp + 0x5c]
movaps xmm1, xmm3
mov eax, dword [esp + 0xfc]
movsd xmm0, qword [esp + 0x10]
push dword [eax + 0x24]
mov eax, dword [esp + 0xf4]
push dword [esp + 0x104]
push dword [eax + 4]
push dword [eax]
lea eax, [esp + 0x104]
push eax
push edx
push ecx
push edi
sub esp, 0x28
mov eax, edx
cmp ecx, edx
cmovge eax, ecx
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [esp + 0xb4]
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 + 0x80]
divsd xmm2, xmm1
movsd xmm1, qword [esp + 0xa4]
movaps xmm0, xmm1
subsd xmm0, xmm2
mulsd xmm0, qword [esp + 0x70]
subsd xmm1, xmm0
movsd qword [esp], xmm1
push 1
call fcn.100dc400
mov ecx, dword [esp + 0x104]
add esp, 0x4c
mov edx, dword [esp + 0xa4]
cmp dword [0x1034ec08], 0
jle 0x100dbad0
push dword [esp + 0x100]
movsd xmm0, qword [esp + 0xb0]
push edx
push ecx
sub esp, 8
mov ecx, dword [esp + 0xb4]
movsd qword [esp], xmm0
movsd xmm0, qword [esp + 0xa4]
divsd xmm0, qword [esp + 0xf8]
push esi
push dword [esp + 0xcc]
push dword [esp + 0xc4]
push ecx
sub esp, 8
movsd qword [esp], xmm0
push str._g:____i__i__i__i__g__i__i___x_
call fcn.100bec10
add esp, 0x30
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x100], 0
cmp dword [eax + 0x20], 0
mov esi, dword [eax + 0x28]
mov dword [esp + 0xf0], esi
jle 0x100dbbac
lea edi, [esi + 0x10]
nop dword [eax]
mov eax, dword [esp + 0x7c]
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.10115a2f
mov dword [esi], eax
add esp, 4
mov ecx, dword [edi + 0x18]
mov eax, ecx
imul eax, dword [esp + 0x7c]
push eax
push 0
push ecx
push esi
call fcn.100c7470
add esp, 8
push eax
call fcn.1010f560
add esp, 0xc
cmp dword [0x1034ec08], 1
jle 0x100dbb73
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.100bec10
add esp, 0x14
mov eax, dword [esp + 0x100]
add edi, 0xa0
mov ecx, dword [esp + 0xdc]
inc eax
mov esi, dword [esp + 0xf0]
add esi, 0xa0
mov dword [esp + 0x100], eax
mov dword [esp + 0xf0], esi
cmp eax, dword [ecx + 0x20]
jl 0x100dbb00
mov eax, dword [esp + 0x7c]
push 0x4000
mov dword [esi + 0x14], eax
mov dword [esi + 0x10], 0x4000
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
call fcn.10115a2f
add esp, 4
mov dword [esi + 0xc], eax
xor eax, eax
pop edi
pop esi
add esp, 0xd0
ret
pop edi
mov eax, str.phase_response_not_in__0min_phase_100max_phase___
pop esi
add esp, 0xd0
ret
pop edi
mov eax, str.transition_band_not_within__50_150____of_nyquist
pop esi
add esp, 0xd0
ret
pop edi
mov eax, str.transition_bandwidth_not_in__0.2_50____of_nyquist
pop esi
add esp, 0xd0
ret