495dfb:	8b 5d e0             	mov    -0x20(%ebp),%ebx
495dfe:	8a 45 e7             	mov    -0x19(%ebp),%al
495e01:	84 c0                	test   %al,%al
495e03:	75 0f                	jne    0x495e14
495e05:	ff 75 18             	push   0x18(%ebp)
495e08:	53                   	push   %ebx
495e09:	ff 75 0c             	push   0xc(%ebp)
495e0c:	ff 75 08             	push   0x8(%ebp)
495e0f:	e8 fd fe ff ff       	call   0x495d11
495e14:	c3                   	ret
495e15:	cc                   	int3
495e16:	cc                   	int3
495e17:	cc                   	int3
495e18:	cc                   	int3
495e19:	cc                   	int3
495e1a:	cc                   	int3
495e1b:	cc                   	int3
495e1c:	cc                   	int3
495e1d:	cc                   	int3
495e1e:	cc                   	int3
495e1f:	cc                   	int3
495e20:	55                   	push   %ebp
495e21:	8b ec                	mov    %esp,%ebp
495e23:	57                   	push   %edi
495e24:	83 3d fc 82 4c 00 01 	cmpl   $0x1,0x4c82fc
495e2b:	0f 82 fd 00 00 00    	jb     0x495f2e
495e31:	8b 7d 08             	mov    0x8(%ebp),%edi
495e34:	77 77                	ja     0x495ead
495e36:	0f b6 55 0c          	movzbl 0xc(%ebp),%edx
495e3a:	8b c2                	mov    %edx,%eax
495e3c:	c1 e2 08             	shl    $0x8,%edx
495e3f:	0b d0                	or     %eax,%edx
495e41:	66 0f 6e da          	movd   %edx,%xmm3
495e45:	f2 0f 70 db 00       	pshuflw $0x0,%xmm3,%xmm3
495e4a:	0f 16 db             	movlhps %xmm3,%xmm3
495e4d:	b9 0f 00 00 00       	mov    $0xf,%ecx
495e52:	23 cf                	and    %edi,%ecx
495e54:	83 c8 ff             	or     $0xffffffff,%eax
495e57:	d3 e0                	shl    %cl,%eax
495e59:	2b f9                	sub    %ecx,%edi
495e5b:	33 d2                	xor    %edx,%edx
495e5d:	f3 0f 6f 0f          	movdqu (%edi),%xmm1
495e61:	66 0f ef d2          	pxor   %xmm2,%xmm2
495e65:	66 0f 74 d1          	pcmpeqb %xmm1,%xmm2
495e69:	66 0f 74 cb          	pcmpeqb %xmm3,%xmm1
495e6d:	66 0f d7 ca          	pmovmskb %xmm2,%ecx
495e71:	23 c8                	and    %eax,%ecx
495e73:	75 18                	jne    0x495e8d
495e75:	66 0f d7 c9          	pmovmskb %xmm1,%ecx
495e79:	23 c8                	and    %eax,%ecx
495e7b:	0f bd c1             	bsr    %ecx,%eax
495e7e:	03 c7                	add    %edi,%eax
495e80:	85 c9                	test   %ecx,%ecx
495e82:	0f 45 d0             	cmovne %eax,%edx
495e85:	83 c8 ff             	or     $0xffffffff,%eax
495e88:	83 c7 10             	add    $0x10,%edi
495e8b:	eb d0                	jmp    0x495e5d
495e8d:	53                   	push   %ebx
495e8e:	66 0f d7 d9          	pmovmskb %xmm1,%ebx
495e92:	23 d8                	and    %eax,%ebx
495e94:	d1 e1                	shl    $1,%ecx
495e96:	33 c0                	xor    %eax,%eax
495e98:	2b c1                	sub    %ecx,%eax
495e9a:	23 c8                	and    %eax,%ecx
495e9c:	49                   	dec    %ecx
495e9d:	23 cb                	and    %ebx,%ecx
495e9f:	5b                   	pop    %ebx
495ea0:	0f bd c1             	bsr    %ecx,%eax
495ea3:	03 c7                	add    %edi,%eax
495ea5:	85 c9                	test   %ecx,%ecx
495ea7:	0f 44 c2             	cmove  %edx,%eax
495eaa:	5f                   	pop    %edi
495eab:	c9                   	leave
495eac:	c3                   	ret
495ead:	0f b6 55 0c          	movzbl 0xc(%ebp),%edx
495eb1:	85 d2                	test   %edx,%edx
495eb3:	74 39                	je     0x495eee
495eb5:	33 c0                	xor    %eax,%eax
495eb7:	f7 c7 0f 00 00 00    	test   $0xf,%edi
495ebd:	74 15                	je     0x495ed4
495ebf:	0f b6 0f             	movzbl (%edi),%ecx
495ec2:	3b ca                	cmp    %edx,%ecx
495ec4:	0f 44 c7             	cmove  %edi,%eax
495ec7:	85 c9                	test   %ecx,%ecx
495ec9:	74 20                	je     0x495eeb
495ecb:	47                   	inc    %edi
495ecc:	f7 c7 0f 00 00 00    	test   $0xf,%edi
495ed2:	75 eb                	jne    0x495ebf
495ed4:	66 0f 6e c2          	movd   %edx,%xmm0
495ed8:	83 c7 10             	add    $0x10,%edi
495edb:	66 0f 3a 63 47 f0 40 	pcmpistri $0x40,-0x10(%edi),%xmm0
495ee2:	8d 4c 39 f0          	lea    -0x10(%ecx,%edi,1),%ecx
495ee6:	0f 42 c1             	cmovb  %ecx,%eax
495ee9:	75 ed                	jne    0x495ed8
495eeb:	5f                   	pop    %edi
495eec:	c9                   	leave
495eed:	c3                   	ret
495eee:	b8 f0 ff ff ff       	mov    $0xfffffff0,%eax
495ef3:	23 c7                	and    %edi,%eax
495ef5:	66 0f ef c0          	pxor   %xmm0,%xmm0
495ef9:	66 0f 74 00          	pcmpeqb (%eax),%xmm0
495efd:	b9 0f 00 00 00       	mov    $0xf,%ecx
495f02:	23 cf                	and    %edi,%ecx
495f04:	ba ff ff ff ff       	mov    $0xffffffff,%edx
495f09:	d3 e2                	shl    %cl,%edx
495f0b:	66 0f d7 f8          	pmovmskb %xmm0,%edi
495f0f:	23 fa                	and    %edx,%edi
495f11:	75 14                	jne    0x495f27
495f13:	66 0f ef c0          	pxor   %xmm0,%xmm0
495f17:	66 0f 74 40 10       	pcmpeqb 0x10(%eax),%xmm0
495f1c:	83 c0 10             	add    $0x10,%eax
495f1f:	66 0f d7 f8          	pmovmskb %xmm0,%edi
495f23:	85 ff                	test   %edi,%edi
495f25:	74 ec                	je     0x495f13
495f27:	0f bc d7             	bsf    %edi,%edx
495f2a:	03 c2                	add    %edx,%eax
495f2c:	eb bd                	jmp    0x495eeb
495f2e:	8b 7d 08             	mov    0x8(%ebp),%edi
495f31:	33 c0                	xor    %eax,%eax
495f33:	83 c9 ff             	or     $0xffffffff,%ecx
495f36:	f2 ae                	repnz scas %es:(%edi),%al
495f38:	83 c1 01             	add    $0x1,%ecx
495f3b:	f7 d9                	neg    %ecx
495f3d:	83 ef 01             	sub    $0x1,%edi
495f40:	8a 45 0c             	mov    0xc(%ebp),%al
495f43:	fd                   	std
495f44:	f2 ae                	repnz scas %es:(%edi),%al
495f46:	83 c7 01             	add    $0x1,%edi
495f49:	38 07                	cmp    %al,(%edi)
495f4b:	74 04                	je     0x495f51
495f4d:	33 c0                	xor    %eax,%eax
495f4f:	eb 02                	jmp    0x495f53
495f51:	8b c7                	mov    %edi,%eax
495f53:	fc                   	cld
495f54:	5f                   	pop    %edi
495f55:	c9                   	leave
495f56:	c3                   	ret
495f57:	cc                   	int3
495f58:	cc                   	int3
495f59:	cc                   	int3
495f5a:	cc                   	int3
495f5b:	cc                   	int3
495f5c:	cc                   	int3
495f5d:	cc                   	int3
495f5e:	cc                   	int3
495f5f:	cc                   	int3
495f60:	8b ff                	mov    %edi,%edi
495f62:	55                   	push   %ebp
495f63:	8b ec                	mov    %esp,%ebp
495f65:	8b 45 08             	mov    0x8(%ebp),%eax
495f68:	85 c0                	test   %eax,%eax
495f6a:	74 0c                	je     0x495f78
495f6c:	83 e0 fc             	and    $0xfffffffc,%eax
495f6f:	ff 70 fc             	push   -0x4(%eax)
495f72:	e8 0b 37 fe ff       	call   0x479682
495f77:	59                   	pop    %ecx
495f78:	5d                   	pop    %ebp
495f79:	c3                   	ret
495f7a:	8b ff                	mov    %edi,%edi
495f7c:	55                   	push   %ebp
495f7d:	8b ec                	mov    %esp,%ebp
495f7f:	56                   	push   %esi
495f80:	8b 75 0c             	mov    0xc(%ebp),%esi
495f83:	85 f6                	test   %esi,%esi
495f85:	74 43                	je     0x495fca
495f87:	8d 46 ff             	lea    -0x1(%esi),%eax
495f8a:	85 c6                	test   %eax,%esi
495f8c:	75 3c                	jne    0x495fca
495f8e:	83 fe 04             	cmp    $0x4,%esi
495f91:	77 03                	ja     0x495f96
495f93:	6a 04                	push   $0x4
495f95:	5e                   	pop    %esi
495f96:	8b 45 08             	mov    0x8(%ebp),%eax
495f99:	8d 48 03             	lea    0x3(%eax),%ecx
495f9c:	03 ce                	add    %esi,%ecx
495f9e:	3b c1                	cmp    %ecx,%eax
495fa0:	76 0d                	jbe    0x495faf
495fa2:	e8 8e 3f fe ff       	call   0x479f35
495fa7:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
495fad:	eb 2b                	jmp    0x495fda
495faf:	51                   	push   %ecx
495fb0:	e8 4c 37 fe ff       	call   0x479701
495fb5:	59                   	pop    %ecx
495fb6:	8b c8                	mov    %eax,%ecx
495fb8:	85 c9                	test   %ecx,%ecx
495fba:	74 1e                	je     0x495fda
495fbc:	8d 41 03             	lea    0x3(%ecx),%eax
495fbf:	03 c6                	add    %esi,%eax
495fc1:	f7 de                	neg    %esi
495fc3:	23 c6                	and    %esi,%eax
495fc5:	89 48 fc             	mov    %ecx,-0x4(%eax)
495fc8:	eb 12                	jmp    0x495fdc
495fca:	e8 66 3f fe ff       	call   0x479f35
495fcf:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
495fd5:	e8 47 36 fe ff       	call   0x479621
495fda:	33 c0                	xor    %eax,%eax
495fdc:	5e                   	pop    %esi
495fdd:	5d                   	pop    %ebp
495fde:	c3                   	ret
495fdf:	cc                   	int3
495fe0:	8b ff                	mov    %edi,%edi
495fe2:	55                   	push   %ebp
495fe3:	8b ec                	mov    %esp,%ebp
495fe5:	83 ec 10             	sub    $0x10,%esp
495fe8:	8d 45 f8             	lea    -0x8(%ebp),%eax
495feb:	50                   	push   %eax
495fec:	ff 15 5c e0 49 00    	call   *0x49e05c
495ff2:	85 c0                	test   %eax,%eax
495ff4:	74 34                	je     0x49602a
495ff6:	8d 45 f0             	lea    -0x10(%ebp),%eax
495ff9:	50                   	push   %eax
495ffa:	ff 15 20 e2 49 00    	call   *0x49e220
496000:	85 c0                	test   %eax,%eax
496002:	74 26                	je     0x49602a
496004:	8b 4d f8             	mov    -0x8(%ebp),%ecx
496007:	8b c1                	mov    %ecx,%eax
496009:	8b 55 fc             	mov    -0x4(%ebp),%edx
49600c:	0b c2                	or     %edx,%eax
49600e:	74 1a                	je     0x49602a
496010:	8b 45 f0             	mov    -0x10(%ebp),%eax
496013:	89 0d 48 8c 4c 00    	mov    %ecx,0x4c8c48
496019:	8b 4d f4             	mov    -0xc(%ebp),%ecx
49601c:	89 15 4c 8c 4c 00    	mov    %edx,0x4c8c4c
496022:	89 0d 54 8c 4c 00    	mov    %ecx,0x4c8c54
496028:	eb 12                	jmp    0x49603c
49602a:	83 c8 ff             	or     $0xffffffff,%eax
49602d:	a3 48 8c 4c 00       	mov    %eax,0x4c8c48
496032:	a3 4c 8c 4c 00       	mov    %eax,0x4c8c4c
496037:	a3 54 8c 4c 00       	mov    %eax,0x4c8c54
49603c:	a3 50 8c 4c 00       	mov    %eax,0x4c8c50
496041:	33 c0                	xor    %eax,%eax
496043:	c9                   	leave
496044:	c3                   	ret
496045:	55                   	push   %ebp
496046:	8b ec                	mov    %esp,%ebp
496048:	51                   	push   %ecx
496049:	83 3d fc 82 4c 00 01 	cmpl   $0x1,0x4c82fc
496050:	7c 66                	jl     0x4960b8
496052:	81 7d 08 b4 02 00 c0 	cmpl   $0xc00002b4,0x8(%ebp)
496059:	74 09                	je     0x496064
49605b:	81 7d 08 b5 02 00 c0 	cmpl   $0xc00002b5,0x8(%ebp)
496062:	75 54                	jne    0x4960b8
496064:	0f ae 5d fc          	stmxcsr -0x4(%ebp)
496068:	8b 45 fc             	mov    -0x4(%ebp),%eax
49606b:	83 f0 3f             	xor    $0x3f,%eax
49606e:	a8 81                	test   $0x81,%al
496070:	74 3f                	je     0x4960b1
496072:	a9 04 02 00 00       	test   $0x204,%eax
496077:	75 07                	jne    0x496080
496079:	b8 8e 00 00 c0       	mov    $0xc000008e,%eax
49607e:	c9                   	leave
49607f:	c3                   	ret
496080:	a9 02 01 00 00       	test   $0x102,%eax
496085:	74 2a                	je     0x4960b1
496087:	a9 08 04 00 00       	test   $0x408,%eax
49608c:	75 07                	jne    0x496095
49608e:	b8 91 00 00 c0       	mov    $0xc0000091,%eax
496093:	c9                   	leave
496094:	c3                   	ret
496095:	a9 10 08 00 00       	test   $0x810,%eax
49609a:	75 07                	jne    0x4960a3
49609c:	b8 93 00 00 c0       	mov    $0xc0000093,%eax
4960a1:	c9                   	leave
4960a2:	c3                   	ret
4960a3:	a9 20 10 00 00       	test   $0x1020,%eax
4960a8:	75 0e                	jne    0x4960b8
4960aa:	b8 8f 00 00 c0       	mov    $0xc000008f,%eax
4960af:	c9                   	leave
4960b0:	c3                   	ret
4960b1:	b8 90 00 00 c0       	mov    $0xc0000090,%eax
4960b6:	c9                   	leave
4960b7:	c3                   	ret
4960b8:	8b 45 08             	mov    0x8(%ebp),%eax
4960bb:	c9                   	leave
4960bc:	c3                   	ret
4960bd:	cc                   	int3
4960be:	cc                   	int3
4960bf:	cc                   	int3
4960c0:	83 3d fc 82 4c 00 06 	cmpl   $0x6,0x4c82fc
4960c7:	7c 15                	jl     0x4960de
4960c9:	c5 fa 7e c0          	vmovq  %xmm0,%xmm0
4960cd:	62 f1 fd 08 7a c0    	vcvttpd2qq %xmm0,%xmm0
4960d3:	c5 f9 7e c0          	vmovd  %xmm0,%eax
4960d7:	c4 e3 79 16 c2 01    	vpextrd $0x1,%xmm0,%edx
4960dd:	c3                   	ret
4960de:	8b cc                	mov    %esp,%ecx
4960e0:	83 c4 f8             	add    $0xfffffff8,%esp
4960e3:	83 e4 f8             	and    $0xfffffff8,%esp
4960e6:	f2 0f 11 04 24       	movsd  %xmm0,(%esp)
4960eb:	8b 04 24             	mov    (%esp),%eax
4960ee:	8b 54 24 04          	mov    0x4(%esp),%edx
4960f2:	8b e1                	mov    %ecx,%esp
4960f4:	0f ba f2 1f          	btr    $0x1f,%edx
4960f8:	1b c9                	sbb    %ecx,%ecx
4960fa:	81 fa 00 00 e0 41    	cmp    $0x41e00000,%edx
496100:	73 3c                	jae    0x49613e
496102:	f2 0f 2c c0          	cvttsd2si %xmm0,%eax
496106:	99                   	cltd
496107:	c3                   	ret
496108:	8b ca                	mov    %edx,%ecx
49610a:	0f ba ea 14          	bts    $0x14,%edx
49610e:	c1 e9 14             	shr    $0x14,%ecx
496111:	81 e2 ff ff 1f 00    	and    $0x1fffff,%edx
496117:	81 e9 33 04 00 00    	sub    $0x433,%ecx
49611d:	7d 19                	jge    0x496138
49611f:	f7 d9                	neg    %ecx
496121:	53                   	push   %ebx
496122:	33 db                	xor    %ebx,%ebx
496124:	0f ad c3             	shrd   %cl,%eax,%ebx
496127:	74 08                	je     0x496131
496129:	f3 0f 2c 1d 94 74 4b 	cvttss2si 0x4b7494,%ebx
496130:	00
496131:	5b                   	pop    %ebx
496132:	0f ad d0             	shrd   %cl,%edx,%eax
496135:	d3 ea                	shr    %cl,%edx
496137:	c3                   	ret
496138:	0f a5 c2             	shld   %cl,%eax,%edx
49613b:	d3 e0                	shl    %cl,%eax
49613d:	c3                   	ret
49613e:	81 fa 00 00 e0 43    	cmp    $0x43e00000,%edx
496144:	73 11                	jae    0x496157
496146:	85 c9                	test   %ecx,%ecx
496148:	74 be                	je     0x496108
49614a:	e8 b9 ff ff ff       	call   0x496108
49614f:	f7 d8                	neg    %eax
496151:	83 d2 00             	adc    $0x0,%edx
496154:	f7 da                	neg    %edx
496156:	c3                   	ret
496157:	e3 06                	jecxz  0x49615f
496159:	77 04                	ja     0x49615f
49615b:	85 c0                	test   %eax,%eax
49615d:	74 08                	je     0x496167
49615f:	f3 0f 2c 0d 90 74 4b 	cvttss2si 0x4b7490,%ecx
496166:	00
496167:	ba 00 00 00 80       	mov    $0x80000000,%edx
49616c:	33 c0                	xor    %eax,%eax
49616e:	c3                   	ret
49616f:	cc                   	int3
496170:	83 3d fc 82 4c 00 06 	cmpl   $0x6,0x4c82fc
496177:	7c 11                	jl     0x49618a
496179:	c5 f9 6e c1          	vmovd  %ecx,%xmm0
49617d:	c4 e3 79 22 c2 01    	vpinsrd $0x1,%edx,%xmm0,%xmm0
496183:	62 f1 fe 08 7a c0    	vcvtuqq2pd %xmm0,%xmm0
496189:	c3                   	ret
49618a:	0f 57 c0             	xorps  %xmm0,%xmm0
49618d:	f2 0f 2a c1          	cvtsi2sd %ecx,%xmm0
496191:	c1 e9 1f             	shr    $0x1f,%ecx
496194:	f2 0f 58 04 cd 98 74 	addsd  0x4b7498(,%ecx,8),%xmm0
49619b:	4b 00
49619d:	85 d2                	test   %edx,%edx