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
44a144:	81 e6 00 00 00 80    	and    $0x80000000,%esi
44a14a:	75 c4                	jne    0x44a110
44a14c:	5e                   	pop    %esi
44a14d:	5f                   	pop    %edi
44a14e:	5b                   	pop    %ebx
44a14f:	33 c0                	xor    %eax,%eax
44a151:	c3                   	ret
44a152:	8d 42 ff             	lea    -0x1(%edx),%eax
44a155:	5b                   	pop    %ebx
44a156:	c3                   	ret
44a157:	8b 42 fc             	mov    -0x4(%edx),%eax
44a15a:	3a c3                	cmp    %bl,%al
44a15c:	74 36                	je     0x44a194
44a15e:	84 c0                	test   %al,%al
44a160:	74 ea                	je     0x44a14c
44a162:	3a e3                	cmp    %bl,%ah
44a164:	74 27                	je     0x44a18d
44a166:	84 e4                	test   %ah,%ah
44a168:	74 e2                	je     0x44a14c
44a16a:	c1 e8 10             	shr    $0x10,%eax
44a16d:	3a c3                	cmp    %bl,%al
44a16f:	74 15                	je     0x44a186
44a171:	84 c0                	test   %al,%al
44a173:	74 d7                	je     0x44a14c
44a175:	3a e3                	cmp    %bl,%ah
44a177:	74 06                	je     0x44a17f
44a179:	84 e4                	test   %ah,%ah
44a17b:	74 cf                	je     0x44a14c
44a17d:	eb 91                	jmp    0x44a110
44a17f:	5e                   	pop    %esi
44a180:	5f                   	pop    %edi
44a181:	8d 42 ff             	lea    -0x1(%edx),%eax
44a184:	5b                   	pop    %ebx
44a185:	c3                   	ret
44a186:	8d 42 fe             	lea    -0x2(%edx),%eax
44a189:	5e                   	pop    %esi
44a18a:	5f                   	pop    %edi
44a18b:	5b                   	pop    %ebx
44a18c:	c3                   	ret
44a18d:	8d 42 fd             	lea    -0x3(%edx),%eax
44a190:	5e                   	pop    %esi
44a191:	5f                   	pop    %edi
44a192:	5b                   	pop    %ebx
44a193:	c3                   	ret
44a194:	8d 42 fc             	lea    -0x4(%edx),%eax
44a197:	5e                   	pop    %esi
44a198:	5f                   	pop    %edi
44a199:	5b                   	pop    %ebx
44a19a:	c3                   	ret
44a19b:	cc                   	int3
44a19c:	cc                   	int3
44a19d:	cc                   	int3
44a19e:	cc                   	int3
44a19f:	cc                   	int3
44a1a0:	8b ff                	mov    %edi,%edi
44a1a2:	55                   	push   %ebp
44a1a3:	8b ec                	mov    %esp,%ebp
44a1a5:	51                   	push   %ecx
44a1a6:	a1 08 a0 46 00       	mov    0x46a008,%eax
44a1ab:	33 c5                	xor    %ebp,%eax
44a1ad:	89 45 fc             	mov    %eax,-0x4(%ebp)
44a1b0:	8b 4d 08             	mov    0x8(%ebp),%ecx
44a1b3:	53                   	push   %ebx
44a1b4:	8b 5d 0c             	mov    0xc(%ebp),%ebx
44a1b7:	3b d9                	cmp    %ecx,%ebx
44a1b9:	76 6f                	jbe    0x44a22a
44a1bb:	8b 45 10             	mov    0x10(%ebp),%eax
44a1be:	56                   	push   %esi
44a1bf:	57                   	push   %edi
44a1c0:	8d 14 01             	lea    (%ecx,%eax,1),%edx
44a1c3:	8b f2                	mov    %edx,%esi
44a1c5:	8b f9                	mov    %ecx,%edi
44a1c7:	3b f3                	cmp    %ebx,%esi
44a1c9:	77 2b                	ja     0x44a1f6
44a1cb:	eb 03                	jmp    0x44a1d0
44a1cd:	8d 49 00             	lea    0x0(%ecx),%ecx
44a1d0:	8b 4d 14             	mov    0x14(%ebp),%ecx
44a1d3:	57                   	push   %edi
44a1d4:	56                   	push   %esi
44a1d5:	ff 75 18             	push   0x18(%ebp)
44a1d8:	ff 15 d0 b3 44 00    	call   *0x44b3d0
44a1de:	ff 55 14             	call   *0x14(%ebp)
44a1e1:	83 c4 0c             	add    $0xc,%esp
44a1e4:	85 c0                	test   %eax,%eax
44a1e6:	7e 02                	jle    0x44a1ea
44a1e8:	8b fe                	mov    %esi,%edi
44a1ea:	8b 45 10             	mov    0x10(%ebp),%eax
44a1ed:	03 f0                	add    %eax,%esi
44a1ef:	3b f3                	cmp    %ebx,%esi
44a1f1:	76 dd                	jbe    0x44a1d0
44a1f3:	8b 4d 08             	mov    0x8(%ebp),%ecx
44a1f6:	8b f0                	mov    %eax,%esi
44a1f8:	8b d3                	mov    %ebx,%edx
44a1fa:	3b fb                	cmp    %ebx,%edi
44a1fc:	74 21                	je     0x44a21f
44a1fe:	85 c0                	test   %eax,%eax
44a200:	74 1d                	je     0x44a21f
44a202:	2b fb                	sub    %ebx,%edi
44a204:	8a 02                	mov    (%edx),%al
44a206:	8d 52 01             	lea    0x1(%edx),%edx
44a209:	8a 4c 17 ff          	mov    -0x1(%edi,%edx,1),%cl
44a20d:	88 44 17 ff          	mov    %al,-0x1(%edi,%edx,1)
44a211:	88 4a ff             	mov    %cl,-0x1(%edx)
44a214:	83 ee 01             	sub    $0x1,%esi
44a217:	75 eb                	jne    0x44a204
44a219:	8b 45 10             	mov    0x10(%ebp),%eax
44a21c:	8b 4d 08             	mov    0x8(%ebp),%ecx
44a21f:	2b d8                	sub    %eax,%ebx
44a221:	8d 14 01             	lea    (%ecx,%eax,1),%edx
44a224:	3b d9                	cmp    %ecx,%ebx
44a226:	77 9b                	ja     0x44a1c3
44a228:	5f                   	pop    %edi
44a229:	5e                   	pop    %esi
44a22a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
44a22d:	33 cd                	xor    %ebp,%ecx
44a22f:	5b                   	pop    %ebx
44a230:	e8 01 3c fe ff       	call   0x42de36
44a235:	8b e5                	mov    %ebp,%esp
44a237:	5d                   	pop    %ebp
44a238:	c3                   	ret
44a239:	cc                   	int3
44a23a:	cc                   	int3
44a23b:	cc                   	int3
44a23c:	cc                   	int3
44a23d:	cc                   	int3
44a23e:	cc                   	int3
44a23f:	cc                   	int3
44a240:	8b ff                	mov    %edi,%edi
44a242:	55                   	push   %ebp
44a243:	8b ec                	mov    %esp,%ebp
44a245:	8b 45 0c             	mov    0xc(%ebp),%eax
44a248:	57                   	push   %edi
44a249:	8b 7d 08             	mov    0x8(%ebp),%edi
44a24c:	3b f8                	cmp    %eax,%edi
44a24e:	74 26                	je     0x44a276
44a250:	56                   	push   %esi
44a251:	8b 75 10             	mov    0x10(%ebp),%esi
44a254:	85 f6                	test   %esi,%esi
44a256:	74 1d                	je     0x44a275
44a258:	2b f8                	sub    %eax,%edi
44a25a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
44a260:	8a 08                	mov    (%eax),%cl
44a262:	8d 40 01             	lea    0x1(%eax),%eax
44a265:	8a 54 07 ff          	mov    -0x1(%edi,%eax,1),%dl
44a269:	88 4c 07 ff          	mov    %cl,-0x1(%edi,%eax,1)
44a26d:	88 50 ff             	mov    %dl,-0x1(%eax)
44a270:	83 ee 01             	sub    $0x1,%esi
44a273:	75 eb                	jne    0x44a260
44a275:	5e                   	pop    %esi
44a276:	5f                   	pop    %edi
44a277:	5d                   	pop    %ebp
44a278:	c3                   	ret
44a279:	cc                   	int3
44a27a:	cc                   	int3
44a27b:	cc                   	int3
44a27c:	cc                   	int3
44a27d:	cc                   	int3
44a27e:	cc                   	int3
44a27f:	cc                   	int3
44a280:	8b ff                	mov    %edi,%edi
44a282:	55                   	push   %ebp
44a283:	8b ec                	mov    %esp,%ebp
44a285:	81 ec 20 01 00 00    	sub    $0x120,%esp
44a28b:	a1 08 a0 46 00       	mov    0x46a008,%eax
44a290:	33 c5                	xor    %ebp,%eax
44a292:	89 45 fc             	mov    %eax,-0x4(%ebp)
44a295:	8b 4d 18             	mov    0x18(%ebp),%ecx
44a298:	8b 55 0c             	mov    0xc(%ebp),%edx
44a29b:	53                   	push   %ebx
44a29c:	8b 5d 08             	mov    0x8(%ebp),%ebx
44a29f:	89 9d fc fe ff ff    	mov    %ebx,-0x104(%ebp)
44a2a5:	89 8d f8 fe ff ff    	mov    %ecx,-0x108(%ebp)
44a2ab:	56                   	push   %esi
44a2ac:	8b 75 14             	mov    0x14(%ebp),%esi
44a2af:	89 b5 00 ff ff ff    	mov    %esi,-0x100(%ebp)