449dc2:	f7 da                	neg    %edx
449dc4:	f7 d8                	neg    %eax
449dc6:	83 da 00             	sbb    $0x0,%edx
449dc9:	5d                   	pop    %ebp
449dca:	5e                   	pop    %esi
449dcb:	5f                   	pop    %edi
449dcc:	c2 10 00             	ret    $0x10
449dcf:	cc                   	int3
449dd0:	80 f9 40             	cmp    $0x40,%cl
449dd3:	73 15                	jae    0x449dea
449dd5:	80 f9 20             	cmp    $0x20,%cl
449dd8:	73 06                	jae    0x449de0
449dda:	0f ad d0             	shrd   %cl,%edx,%eax
449ddd:	d3 ea                	shr    %cl,%edx
449ddf:	c3                   	ret
449de0:	8b c2                	mov    %edx,%eax
449de2:	33 d2                	xor    %edx,%edx
449de4:	80 e1 1f             	and    $0x1f,%cl
449de7:	d3 e8                	shr    %cl,%eax
449de9:	c3                   	ret
449dea:	33 c0                	xor    %eax,%eax
449dec:	33 d2                	xor    %edx,%edx
449dee:	c3                   	ret
449def:	cc                   	int3
449df0:	51                   	push   %ecx
449df1:	8d 4c 24 08          	lea    0x8(%esp),%ecx
449df5:	2b c8                	sub    %eax,%ecx
449df7:	83 e1 0f             	and    $0xf,%ecx
449dfa:	03 c1                	add    %ecx,%eax
449dfc:	1b c9                	sbb    %ecx,%ecx
449dfe:	0b c1                	or     %ecx,%eax
449e00:	59                   	pop    %ecx
449e01:	e9 fa 00 00 00       	jmp    0x449f00
449e06:	51                   	push   %ecx
449e07:	8d 4c 24 08          	lea    0x8(%esp),%ecx
449e0b:	2b c8                	sub    %eax,%ecx
449e0d:	83 e1 07             	and    $0x7,%ecx
449e10:	03 c1                	add    %ecx,%eax
449e12:	1b c9                	sbb    %ecx,%ecx
449e14:	0b c1                	or     %ecx,%eax
449e16:	59                   	pop    %ecx
449e17:	e9 e4 00 00 00       	jmp    0x449f00
449e1c:	cc                   	int3
449e1d:	cc                   	int3
449e1e:	cc                   	int3
449e1f:	cc                   	int3
449e20:	80 f9 40             	cmp    $0x40,%cl
449e23:	73 15                	jae    0x449e3a
449e25:	80 f9 20             	cmp    $0x20,%cl
449e28:	73 06                	jae    0x449e30
449e2a:	0f a5 c2             	shld   %cl,%eax,%edx
449e2d:	d3 e0                	shl    %cl,%eax
449e2f:	c3                   	ret
449e30:	8b d0                	mov    %eax,%edx
449e32:	33 c0                	xor    %eax,%eax
449e34:	80 e1 1f             	and    $0x1f,%cl
449e37:	d3 e2                	shl    %cl,%edx
449e39:	c3                   	ret
449e3a:	33 c0                	xor    %eax,%eax
449e3c:	33 d2                	xor    %edx,%edx
449e3e:	c3                   	ret
449e3f:	cc                   	int3
449e40:	83 3d 1c ae 46 00 00 	cmpl   $0x0,0x46ae1c
449e47:	74 37                	je     0x449e80
449e49:	55                   	push   %ebp
449e4a:	8b ec                	mov    %esp,%ebp
449e4c:	83 ec 08             	sub    $0x8,%esp
449e4f:	83 e4 f8             	and    $0xfffffff8,%esp
449e52:	dd 1c 24             	fstpl  (%esp)
449e55:	f2 0f 2c 04 24       	cvttsd2si (%esp),%eax
449e5a:	c9                   	leave
449e5b:	c3                   	ret
449e5c:	83 3d 1c ae 46 00 00 	cmpl   $0x0,0x46ae1c
449e63:	74 1b                	je     0x449e80
449e65:	83 ec 04             	sub    $0x4,%esp
449e68:	d9 3c 24             	fnstcw (%esp)
449e6b:	58                   	pop    %eax
449e6c:	66 83 e0 7f          	and    $0x7f,%ax
449e70:	66 83 f8 7f          	cmp    $0x7f,%ax
449e74:	74 d3                	je     0x449e49
449e76:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
449e7d:	8d 49 00             	lea    0x0(%ecx),%ecx
449e80:	55                   	push   %ebp
449e81:	8b ec                	mov    %esp,%ebp
449e83:	83 ec 20             	sub    $0x20,%esp
449e86:	83 e4 f0             	and    $0xfffffff0,%esp
449e89:	d9 c0                	fld    %st(0)
449e8b:	d9 54 24 18          	fsts   0x18(%esp)
449e8f:	df 7c 24 10          	fistpll 0x10(%esp)
449e93:	df 6c 24 10          	fildll 0x10(%esp)
449e97:	8b 54 24 18          	mov    0x18(%esp),%edx
449e9b:	8b 44 24 10          	mov    0x10(%esp),%eax
449e9f:	85 c0                	test   %eax,%eax
449ea1:	74 3c                	je     0x449edf
449ea3:	de e9                	fsubrp %st,%st(1)
449ea5:	85 d2                	test   %edx,%edx
449ea7:	79 1e                	jns    0x449ec7
449ea9:	d9 1c 24             	fstps  (%esp)
449eac:	8b 0c 24             	mov    (%esp),%ecx
449eaf:	81 f1 00 00 00 80    	xor    $0x80000000,%ecx
449eb5:	81 c1 ff ff ff 7f    	add    $0x7fffffff,%ecx
449ebb:	83 d0 00             	adc    $0x0,%eax
449ebe:	8b 54 24 14          	mov    0x14(%esp),%edx
449ec2:	83 d2 00             	adc    $0x0,%edx
449ec5:	eb 2c                	jmp    0x449ef3
449ec7:	d9 1c 24             	fstps  (%esp)
449eca:	8b 0c 24             	mov    (%esp),%ecx
449ecd:	81 c1 ff ff ff 7f    	add    $0x7fffffff,%ecx
449ed3:	83 d8 00             	sbb    $0x0,%eax
449ed6:	8b 54 24 14          	mov    0x14(%esp),%edx
449eda:	83 da 00             	sbb    $0x0,%edx
449edd:	eb 14                	jmp    0x449ef3
449edf:	8b 54 24 14          	mov    0x14(%esp),%edx
449ee3:	f7 c2 ff ff ff 7f    	test   $0x7fffffff,%edx
449ee9:	75 b8                	jne    0x449ea3
449eeb:	d9 5c 24 18          	fstps  0x18(%esp)
449eef:	d9 5c 24 18          	fstps  0x18(%esp)
449ef3:	c9                   	leave
449ef4:	c3                   	ret
449ef5:	cc                   	int3
449ef6:	cc                   	int3
449ef7:	cc                   	int3
449ef8:	cc                   	int3
449ef9:	cc                   	int3
449efa:	cc                   	int3
449efb:	cc                   	int3
449efc:	cc                   	int3
449efd:	cc                   	int3
449efe:	cc                   	int3
449eff:	cc                   	int3
449f00:	51                   	push   %ecx
449f01:	8d 4c 24 04          	lea    0x4(%esp),%ecx
449f05:	2b c8                	sub    %eax,%ecx
449f07:	1b c0                	sbb    %eax,%eax
449f09:	f7 d0                	not    %eax
449f0b:	23 c8                	and    %eax,%ecx
449f0d:	8b c4                	mov    %esp,%eax
449f0f:	25 00 f0 ff ff       	and    $0xfffff000,%eax
449f14:	3b c8                	cmp    %eax,%ecx
449f16:	f2 72 0b             	bnd jb 0x449f24
449f19:	8b c1                	mov    %ecx,%eax
449f1b:	59                   	pop    %ecx
449f1c:	94                   	xchg   %eax,%esp
449f1d:	8b 00                	mov    (%eax),%eax
449f1f:	89 04 24             	mov    %eax,(%esp)
449f22:	f2 c3                	bnd ret
449f24:	2d 00 10 00 00       	sub    $0x1000,%eax
449f29:	85 00                	test   %eax,(%eax)
449f2b:	eb e7                	jmp    0x449f14
449f2d:	cc                   	int3
449f2e:	cc                   	int3
449f2f:	cc                   	int3
449f30:	55                   	push   %ebp
449f31:	8b ec                	mov    %esp,%ebp
449f33:	57                   	push   %edi
449f34:	83 3d 1c ae 46 00 01 	cmpl   $0x1,0x46ae1c
449f3b:	0f 82 fd 00 00 00    	jb     0x44a03e
449f41:	8b 7d 08             	mov    0x8(%ebp),%edi
449f44:	77 77                	ja     0x449fbd
449f46:	0f b6 55 0c          	movzbl 0xc(%ebp),%edx
449f4a:	8b c2                	mov    %edx,%eax
449f4c:	c1 e2 08             	shl    $0x8,%edx
449f4f:	0b d0                	or     %eax,%edx
449f51:	66 0f 6e da          	movd   %edx,%xmm3
449f55:	f2 0f 70 db 00       	pshuflw $0x0,%xmm3,%xmm3
449f5a:	0f 16 db             	movlhps %xmm3,%xmm3
449f5d:	b9 0f 00 00 00       	mov    $0xf,%ecx
449f62:	23 cf                	and    %edi,%ecx
449f64:	83 c8 ff             	or     $0xffffffff,%eax
449f67:	d3 e0                	shl    %cl,%eax
449f69:	2b f9                	sub    %ecx,%edi
449f6b:	33 d2                	xor    %edx,%edx
449f6d:	f3 0f 6f 0f          	movdqu (%edi),%xmm1
449f71:	66 0f ef d2          	pxor   %xmm2,%xmm2
449f75:	66 0f 74 d1          	pcmpeqb %xmm1,%xmm2
449f79:	66 0f 74 cb          	pcmpeqb %xmm3,%xmm1
449f7d:	66 0f d7 ca          	pmovmskb %xmm2,%ecx
449f81:	23 c8                	and    %eax,%ecx
449f83:	75 18                	jne    0x449f9d
449f85:	66 0f d7 c9          	pmovmskb %xmm1,%ecx
449f89:	23 c8                	and    %eax,%ecx
449f8b:	0f bd c1             	bsr    %ecx,%eax
449f8e:	03 c7                	add    %edi,%eax
449f90:	85 c9                	test   %ecx,%ecx
449f92:	0f 45 d0             	cmovne %eax,%edx
449f95:	83 c8 ff             	or     $0xffffffff,%eax
449f98:	83 c7 10             	add    $0x10,%edi
449f9b:	eb d0                	jmp    0x449f6d
449f9d:	53                   	push   %ebx
449f9e:	66 0f d7 d9          	pmovmskb %xmm1,%ebx
449fa2:	23 d8                	and    %eax,%ebx
449fa4:	d1 e1                	shl    $1,%ecx
449fa6:	33 c0                	xor    %eax,%eax
449fa8:	2b c1                	sub    %ecx,%eax
449faa:	23 c8                	and    %eax,%ecx
449fac:	49                   	dec    %ecx
449fad:	23 cb                	and    %ebx,%ecx
449faf:	5b                   	pop    %ebx
449fb0:	0f bd c1             	bsr    %ecx,%eax
449fb3:	03 c7                	add    %edi,%eax
449fb5:	85 c9                	test   %ecx,%ecx
449fb7:	0f 44 c2             	cmove  %edx,%eax
449fba:	5f                   	pop    %edi
449fbb:	c9                   	leave
449fbc:	c3                   	ret
449fbd:	0f b6 55 0c          	movzbl 0xc(%ebp),%edx
449fc1:	85 d2                	test   %edx,%edx
449fc3:	74 39                	je     0x449ffe
449fc5:	33 c0                	xor    %eax,%eax
449fc7:	f7 c7 0f 00 00 00    	test   $0xf,%edi
449fcd:	74 15                	je     0x449fe4
449fcf:	0f b6 0f             	movzbl (%edi),%ecx
449fd2:	3b ca                	cmp    %edx,%ecx
449fd4:	0f 44 c7             	cmove  %edi,%eax
449fd7:	85 c9                	test   %ecx,%ecx
449fd9:	74 20                	je     0x449ffb
449fdb:	47                   	inc    %edi
449fdc:	f7 c7 0f 00 00 00    	test   $0xf,%edi
449fe2:	75 eb                	jne    0x449fcf
449fe4:	66 0f 6e c2          	movd   %edx,%xmm0
449fe8:	83 c7 10             	add    $0x10,%edi
449feb:	66 0f 3a 63 47 f0 40 	pcmpistri $0x40,-0x10(%edi),%xmm0
449ff2:	8d 4c 0f f0          	lea    -0x10(%edi,%ecx,1),%ecx
449ff6:	0f 42 c1             	cmovb  %ecx,%eax
449ff9:	75 ed                	jne    0x449fe8
449ffb:	5f                   	pop    %edi
449ffc:	c9                   	leave
449ffd:	c3                   	ret
449ffe:	b8 f0 ff ff ff       	mov    $0xfffffff0,%eax
44a003:	23 c7                	and    %edi,%eax
44a005:	66 0f ef c0          	pxor   %xmm0,%xmm0
44a009:	66 0f 74 00          	pcmpeqb (%eax),%xmm0
44a00d:	b9 0f 00 00 00       	mov    $0xf,%ecx
44a012:	23 cf                	and    %edi,%ecx
44a014:	ba ff ff ff ff       	mov    $0xffffffff,%edx
44a019:	d3 e2                	shl    %cl,%edx
44a01b:	66 0f d7 f8          	pmovmskb %xmm0,%edi
44a01f:	23 fa                	and    %edx,%edi
44a021:	75 14                	jne    0x44a037
44a023:	66 0f ef c0          	pxor   %xmm0,%xmm0
44a027:	66 0f 74 40 10       	pcmpeqb 0x10(%eax),%xmm0
44a02c:	83 c0 10             	add    $0x10,%eax
44a02f:	66 0f d7 f8          	pmovmskb %xmm0,%edi
44a033:	85 ff                	test   %edi,%edi
44a035:	74 ec                	je     0x44a023
44a037:	0f bc d7             	bsf    %edi,%edx
44a03a:	03 c2                	add    %edx,%eax
44a03c:	eb bd                	jmp    0x449ffb
44a03e:	8b 7d 08             	mov    0x8(%ebp),%edi
44a041:	33 c0                	xor    %eax,%eax
44a043:	83 c9 ff             	or     $0xffffffff,%ecx
44a046:	f2 ae                	repnz scas %es:(%edi),%al
44a048:	83 c1 01             	add    $0x1,%ecx
44a04b:	f7 d9                	neg    %ecx
44a04d:	83 ef 01             	sub    $0x1,%edi
44a050:	8a 45 0c             	mov    0xc(%ebp),%al
44a053:	fd                   	std
44a054:	f2 ae                	repnz scas %es:(%edi),%al
44a056:	83 c7 01             	add    $0x1,%edi
44a059:	38 07                	cmp    %al,(%edi)
44a05b:	74 04                	je     0x44a061
44a05d:	33 c0                	xor    %eax,%eax
44a05f:	eb 02                	jmp    0x44a063
44a061:	8b c7                	mov    %edi,%eax
44a063:	fc                   	cld
44a064:	5f                   	pop    %edi
44a065:	c9                   	leave
44a066:	c3                   	ret
44a067:	cc                   	int3
44a068:	cc                   	int3
44a069:	cc                   	int3
44a06a:	cc                   	int3
44a06b:	cc                   	int3
44a06c:	cc                   	int3
44a06d:	cc                   	int3
44a06e:	cc                   	int3
44a06f:	cc                   	int3
44a070:	83 3d 1c ae 46 00 01 	cmpl   $0x1,0x46ae1c
44a077:	72 5f                	jb     0x44a0d8
44a079:	0f b6 44 24 08       	movzbl 0x8(%esp),%eax
44a07e:	8b d0                	mov    %eax,%edx
44a080:	c1 e0 08             	shl    $0x8,%eax
44a083:	0b d0                	or     %eax,%edx
44a085:	66 0f 6e da          	movd   %edx,%xmm3
44a089:	f2 0f 70 db 00       	pshuflw $0x0,%xmm3,%xmm3
44a08e:	0f 16 db             	movlhps %xmm3,%xmm3
44a091:	8b 54 24 04          	mov    0x4(%esp),%edx
44a095:	b9 0f 00 00 00       	mov    $0xf,%ecx
44a09a:	83 c8 ff             	or     $0xffffffff,%eax
44a09d:	23 ca                	and    %edx,%ecx
44a09f:	d3 e0                	shl    %cl,%eax
44a0a1:	2b d1                	sub    %ecx,%edx
44a0a3:	f3 0f 6f 0a          	movdqu (%edx),%xmm1
44a0a7:	66 0f ef d2          	pxor   %xmm2,%xmm2
44a0ab:	66 0f 74 d1          	pcmpeqb %xmm1,%xmm2
44a0af:	66 0f 74 cb          	pcmpeqb %xmm3,%xmm1
44a0b3:	66 0f eb d1          	por    %xmm1,%xmm2
44a0b7:	66 0f d7 ca          	pmovmskb %xmm2,%ecx
44a0bb:	23 c8                	and    %eax,%ecx
44a0bd:	75 08                	jne    0x44a0c7
44a0bf:	83 c8 ff             	or     $0xffffffff,%eax
44a0c2:	83 c2 10             	add    $0x10,%edx
44a0c5:	eb dc                	jmp    0x44a0a3
44a0c7:	0f bc c1             	bsf    %ecx,%eax
44a0ca:	03 c2                	add    %edx,%eax
44a0cc:	66 0f 7e da          	movd   %xmm3,%edx
44a0d0:	33 c9                	xor    %ecx,%ecx
44a0d2:	3a 10                	cmp    (%eax),%dl
44a0d4:	0f 45 c1             	cmovne %ecx,%eax
44a0d7:	c3                   	ret
44a0d8:	33 c0                	xor    %eax,%eax
44a0da:	8a 44 24 08          	mov    0x8(%esp),%al
44a0de:	53                   	push   %ebx
44a0df:	8b d8                	mov    %eax,%ebx
44a0e1:	c1 e0 08             	shl    $0x8,%eax
44a0e4:	8b 54 24 08          	mov    0x8(%esp),%edx
44a0e8:	f7 c2 03 00 00 00    	test   $0x3,%edx
44a0ee:	74 15                	je     0x44a105
44a0f0:	8a 0a                	mov    (%edx),%cl
44a0f2:	83 c2 01             	add    $0x1,%edx
44a0f5:	3a cb                	cmp    %bl,%cl
44a0f7:	74 59                	je     0x44a152
44a0f9:	84 c9                	test   %cl,%cl
44a0fb:	74 51                	je     0x44a14e
44a0fd:	f7 c2 03 00 00 00    	test   $0x3,%edx
44a103:	75 eb                	jne    0x44a0f0
44a105:	0b d8                	or     %eax,%ebx
44a107:	57                   	push   %edi
44a108:	8b c3                	mov    %ebx,%eax
44a10a:	c1 e3 10             	shl    $0x10,%ebx
44a10d:	56                   	push   %esi
44a10e:	0b d8                	or     %eax,%ebx
44a110:	8b 0a                	mov    (%edx),%ecx
44a112:	bf ff fe fe 7e       	mov    $0x7efefeff,%edi
44a117:	8b c1                	mov    %ecx,%eax
44a119:	8b f7                	mov    %edi,%esi
44a11b:	33 cb                	xor    %ebx,%ecx
44a11d:	03 f0                	add    %eax,%esi
44a11f:	03 f9                	add    %ecx,%edi
44a121:	83 f1 ff             	xor    $0xffffffff,%ecx
44a124:	83 f0 ff             	xor    $0xffffffff,%eax
44a127:	33 cf                	xor    %edi,%ecx
44a129:	33 c6                	xor    %esi,%eax
44a12b:	83 c2 04             	add    $0x4,%edx
44a12e:	81 e1 00 01 01 81    	and    $0x81010100,%ecx
44a134:	75 21                	jne    0x44a157
44a136:	25 00 01 01 81       	and    $0x81010100,%eax
44a13b:	74 d3                	je     0x44a110
44a13d:	25 00 01 01 01       	and    $0x1010100,%eax
44a142:	75 08                	jne    0x44a14c