55ca92:	50                   	push   %eax
55ca93:	8d 41 01             	lea    0x1(%ecx),%eax
55ca96:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
55ca99:	8d 04 c3             	lea    (%ebx,%eax,8),%eax
55ca9c:	50                   	push   %eax
55ca9d:	e8 1e 01 00 00       	call   0x55cbc0
55caa2:	83 c4 08             	add    $0x8,%esp
55caa5:	5f                   	pop    %edi
55caa6:	5e                   	pop    %esi
55caa7:	5b                   	pop    %ebx
55caa8:	8b e5                	mov    %ebp,%esp
55caaa:	5d                   	pop    %ebp
55caab:	c3                   	ret
55caac:	8b 7e 14             	mov    0x14(%esi),%edi
55caaf:	8b ce                	mov    %esi,%ecx
55cab1:	f3 0f 7e 43 24       	movq   0x24(%ebx),%xmm0
55cab6:	2b cb                	sub    %ebx,%ecx
55cab8:	83 e9 40             	sub    $0x40,%ecx
55cabb:	b8 39 8e e3 38       	mov    $0x38e38e39,%eax
55cac0:	f7 e9                	imul   %ecx
55cac2:	c1 fa 04             	sar    $0x4,%edx
55cac5:	8b c2                	mov    %edx,%eax
55cac7:	c1 e8 1f             	shr    $0x1f,%eax
55caca:	03 c2                	add    %edx,%eax
55cacc:	88 43 3a             	mov    %al,0x3a(%ebx)
55cacf:	66 0f d6 46 10       	movq   %xmm0,0x10(%esi)
55cad4:	8b 43 2c             	mov    0x2c(%ebx),%eax
55cad7:	89 46 18             	mov    %eax,0x18(%esi)
55cada:	c7 43 24 00 00 00 00 	movl   $0x0,0x24(%ebx)
55cae1:	c7 43 2c 00 00 00 00 	movl   $0x0,0x2c(%ebx)
55cae8:	85 ff                	test   %edi,%edi
55caea:	74 26                	je     0x55cb12
55caec:	57                   	push   %edi
55caed:	89 7b 28             	mov    %edi,0x28(%ebx)
55caf0:	ff 15 3c 18 72 00    	call   *0x72183c
55caf6:	83 c4 04             	add    $0x4,%esp
55caf9:	89 43 34             	mov    %eax,0x34(%ebx)
55cafc:	56                   	push   %esi
55cafd:	68 40 cb 55 00       	push   $0x55cb40
55cb02:	56                   	push   %esi
55cb03:	e8 08 15 fe ff       	call   0x53e010
55cb08:	83 c4 0c             	add    $0xc,%esp
55cb0b:	5f                   	pop    %edi
55cb0c:	5e                   	pop    %esi
55cb0d:	5b                   	pop    %ebx
55cb0e:	8b e5                	mov    %ebp,%esp
55cb10:	5d                   	pop    %ebp
55cb11:	c3                   	ret
55cb12:	83 7b 28 00          	cmpl   $0x0,0x28(%ebx)
55cb16:	74 e4                	je     0x55cafc
55cb18:	8b 43 34             	mov    0x34(%ebx),%eax
55cb1b:	99                   	cltd
55cb1c:	52                   	push   %edx
55cb1d:	50                   	push   %eax
55cb1e:	e8 3d 44 fd ff       	call   0x530f60
55cb23:	83 c4 08             	add    $0x8,%esp
55cb26:	89 43 28             	mov    %eax,0x28(%ebx)
55cb29:	85 c0                	test   %eax,%eax
55cb2b:	75 cf                	jne    0x55cafc
55cb2d:	5f                   	pop    %edi
55cb2e:	5e                   	pop    %esi
55cb2f:	b8 07 00 00 00       	mov    $0x7,%eax
55cb34:	5b                   	pop    %ebx
55cb35:	8b e5                	mov    %ebp,%esp
55cb37:	5d                   	pop    %ebp
55cb38:	c3                   	ret
55cb39:	cc                   	int3
55cb3a:	cc                   	int3
55cb3b:	cc                   	int3
55cb3c:	cc                   	int3
55cb3d:	cc                   	int3
55cb3e:	cc                   	int3
55cb3f:	cc                   	int3
55cb40:	55                   	push   %ebp
55cb41:	8b ec                	mov    %esp,%ebp
55cb43:	56                   	push   %esi
55cb44:	8b 75 08             	mov    0x8(%ebp),%esi
55cb47:	8d 46 10             	lea    0x10(%esi),%eax
55cb4a:	50                   	push   %eax
55cb4b:	56                   	push   %esi
55cb4c:	e8 6f 00 00 00       	call   0x55cbc0
55cb51:	83 c4 08             	add    $0x8,%esp
55cb54:	c7 46 04 01 00 00 00 	movl   $0x1,0x4(%esi)
55cb5b:	5e                   	pop    %esi
55cb5c:	5d                   	pop    %ebp
55cb5d:	c3                   	ret
55cb5e:	cc                   	int3
55cb5f:	cc                   	int3
55cb60:	55                   	push   %ebp
55cb61:	8b ec                	mov    %esp,%ebp
55cb63:	8b 4d 08             	mov    0x8(%ebp),%ecx
55cb66:	53                   	push   %ebx
55cb67:	56                   	push   %esi
55cb68:	8b 75 0c             	mov    0xc(%ebp),%esi
55cb6b:	0f b6 59 3b          	movzbl 0x3b(%ecx),%ebx
55cb6f:	83 eb 01             	sub    $0x1,%ebx
55cb72:	78 46                	js     0x55cbba
55cb74:	57                   	push   %edi
55cb75:	8d 7b 01             	lea    0x1(%ebx),%edi
55cb78:	8d 3c fb             	lea    (%ebx,%edi,8),%edi
55cb7b:	8d 3c f9             	lea    (%ecx,%edi,8),%edi
55cb7e:	66 90                	xchg   %ax,%ax
55cb80:	8b 07                	mov    (%edi),%eax
55cb82:	33 c9                	xor    %ecx,%ecx
55cb84:	85 c0                	test   %eax,%eax
55cb86:	74 24                	je     0x55cbac
55cb88:	8d 4d 0c             	lea    0xc(%ebp),%ecx
55cb8b:	c7 45 0c 01 00 00 00 	movl   $0x1,0xc(%ebp)
55cb92:	51                   	push   %ecx
55cb93:	50                   	push   %eax
55cb94:	e8 67 15 fe ff       	call   0x53e100
55cb99:	8b 4d 0c             	mov    0xc(%ebp),%ecx
55cb9c:	83 c4 08             	add    $0x8,%esp
55cb9f:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)
55cba6:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
55cbac:	85 f6                	test   %esi,%esi
55cbae:	0f 44 f1             	cmove  %ecx,%esi
55cbb1:	83 ef 48             	sub    $0x48,%edi
55cbb4:	83 eb 01             	sub    $0x1,%ebx
55cbb7:	79 c7                	jns    0x55cb80
55cbb9:	5f                   	pop    %edi
55cbba:	8b c6                	mov    %esi,%eax
55cbbc:	5e                   	pop    %esi
55cbbd:	5b                   	pop    %ebx
55cbbe:	5d                   	pop    %ebp
55cbbf:	c3                   	ret
55cbc0:	55                   	push   %ebp
55cbc1:	8b ec                	mov    %esp,%ebp
55cbc3:	83 ec 40             	sub    $0x40,%esp
55cbc6:	a1 d4 89 72 00       	mov    0x7289d4,%eax
55cbcb:	33 c5                	xor    %ebp,%eax
55cbcd:	89 45 fc             	mov    %eax,-0x4(%ebp)
55cbd0:	53                   	push   %ebx
55cbd1:	8b 5d 0c             	mov    0xc(%ebp),%ebx
55cbd4:	0f 57 c0             	xorps  %xmm0,%xmm0
55cbd7:	56                   	push   %esi
55cbd8:	8b 75 08             	mov    0x8(%ebp),%esi
55cbdb:	83 7e 28 00          	cmpl   $0x0,0x28(%esi)
55cbdf:	57                   	push   %edi
55cbe0:	8d 7e 28             	lea    0x28(%esi),%edi
55cbe3:	66 0f d6 45 e0       	movq   %xmm0,-0x20(%ebp)
55cbe8:	8b 46 08             	mov    0x8(%esi),%eax
55cbeb:	0f 11 45 c0          	movups %xmm0,-0x40(%ebp)
55cbef:	0f 11 45 d0          	movups %xmm0,-0x30(%ebp)
55cbf3:	8b 40 18             	mov    0x18(%eax),%eax
55cbf6:	89 45 ec             	mov    %eax,-0x14(%ebp)
55cbf9:	75 16                	jne    0x55cc11
55cbfb:	57                   	push   %edi
55cbfc:	6a 00                	push   $0x0
55cbfe:	6a 00                	push   $0x0
55cc00:	50                   	push   %eax
55cc01:	e8 aa 03 00 00       	call   0x55cfb0
55cc06:	83 c4 10             	add    $0x10,%esp
55cc09:	85 c0                	test   %eax,%eax
55cc0b:	0f 85 0c 01 00 00    	jne    0x55cd1d
55cc11:	8b 43 08             	mov    0x8(%ebx),%eax
55cc14:	8d 4e 30             	lea    0x30(%esi),%ecx
55cc17:	99                   	cltd
55cc18:	03 01                	add    (%ecx),%eax
55cc1a:	89 4d e8             	mov    %ecx,-0x18(%ebp)
55cc1d:	13 51 04             	adc    0x4(%ecx),%edx
55cc20:	83 c0 09             	add    $0x9,%eax
55cc23:	83 d2 00             	adc    $0x0,%edx
55cc26:	52                   	push   %edx
55cc27:	50                   	push   %eax
55cc28:	ff 37                	push   (%edi)
55cc2a:	ff 75 ec             	push   -0x14(%ebp)
55cc2d:	e8 3e fd ff ff       	call   0x55c970
55cc32:	53                   	push   %ebx
55cc33:	56                   	push   %esi
55cc34:	e8 b7 07 00 00       	call   0x55d3f0
55cc39:	83 c4 18             	add    $0x18,%esp
55cc3c:	85 c0                	test   %eax,%eax
55cc3e:	0f 85 d9 00 00 00    	jne    0x55cd1d
55cc44:	ff 76 34             	push   0x34(%esi)
55cc47:	8b 46 08             	mov    0x8(%esi),%eax
55cc4a:	ff 76 30             	push   0x30(%esi)
55cc4d:	ff 70 0c             	push   0xc(%eax)
55cc50:	8d 45 c0             	lea    -0x40(%ebp),%eax
55cc53:	50                   	push   %eax
55cc54:	ff 37                	push   (%edi)
55cc56:	e8 15 f2 ff ff       	call   0x55be70
55cc5b:	ff 46 1c             	incl   0x1c(%esi)
55cc5e:	8b 43 08             	mov    0x8(%ebx),%eax
55cc61:	99                   	cltd
55cc62:	52                   	push   %edx
55cc63:	50                   	push   %eax
55cc64:	8d 45 c0             	lea    -0x40(%ebp),%eax
55cc67:	50                   	push   %eax
55cc68:	e8 f3 f0 ff ff       	call   0x55bd60
55cc6d:	8b 33                	mov    (%ebx),%esi
55cc6f:	83 c4 20             	add    $0x20,%esp
55cc72:	85 f6                	test   %esi,%esi
55cc74:	0f 84 92 00 00 00    	je     0x55cd0c
55cc7a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
55cc80:	8b 06                	mov    (%esi),%eax
55cc82:	8b 7e 04             	mov    0x4(%esi),%edi
55cc85:	99                   	cltd
55cc86:	85 d2                	test   %edx,%edx
55cc88:	77 3b                	ja     0x55ccc5
55cc8a:	72 05                	jb     0x55cc91
55cc8c:	83 f8 7f             	cmp    $0x7f,%eax
55cc8f:	77 0c                	ja     0x55cc9d
55cc91:	24 7f                	and    $0x7f,%al
55cc93:	88 45 f0             	mov    %al,-0x10(%ebp)
55cc96:	b8 01 00 00 00       	mov    $0x1,%eax
55cc9b:	eb 36                	jmp    0x55ccd3
55cc9d:	85 d2                	test   %edx,%edx
55cc9f:	77 24                	ja     0x55ccc5
55cca1:	72 07                	jb     0x55ccaa
55cca3:	3d ff 3f 00 00       	cmp    $0x3fff,%eax
55cca8:	77 1b                	ja     0x55ccc5
55ccaa:	8b c8                	mov    %eax,%ecx
55ccac:	0f ac d1 07          	shrd   $0x7,%edx,%ecx
55ccb0:	80 c9 80             	or     $0x80,%cl
55ccb3:	c1 ea 07             	shr    $0x7,%edx
55ccb6:	24 7f                	and    $0x7f,%al
55ccb8:	88 4d f0             	mov    %cl,-0x10(%ebp)
55ccbb:	88 45 f1             	mov    %al,-0xf(%ebp)
55ccbe:	b8 02 00 00 00       	mov    $0x2,%eax
55ccc3:	eb 0e                	jmp    0x55ccd3
55ccc5:	52                   	push   %edx
55ccc6:	50                   	push   %eax
55ccc7:	8d 45 f0             	lea    -0x10(%ebp),%eax
55ccca:	50                   	push   %eax
55cccb:	e8 70 45 fb ff       	call   0x511240
55ccd0:	83 c4 0c             	add    $0xc,%esp
55ccd3:	50                   	push   %eax
55ccd4:	8d 45 f0             	lea    -0x10(%ebp),%eax
55ccd7:	50                   	push   %eax
55ccd8:	8d 45 c0             	lea    -0x40(%ebp),%eax
55ccdb:	50                   	push   %eax
55ccdc:	e8 bf ef ff ff       	call   0x55bca0
55cce1:	ff 36                	push   (%esi)
55cce3:	8d 46 08             	lea    0x8(%esi),%eax
55cce6:	50                   	push   %eax
55cce7:	8d 45 c0             	lea    -0x40(%ebp),%eax
55ccea:	50                   	push   %eax
55cceb:	e8 b0 ef ff ff       	call   0x55bca0
55ccf0:	83 c4 18             	add    $0x18,%esp
55ccf3:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
55ccf7:	75 09                	jne    0x55cd02
55ccf9:	56                   	push   %esi
55ccfa:	e8 91 e0 f8 ff       	call   0x4ead90
55ccff:	83 c4 04             	add    $0x4,%esp
55cd02:	8b f7                	mov    %edi,%esi
55cd04:	85 ff                	test   %edi,%edi
55cd06:	0f 85 74 ff ff ff    	jne    0x55cc80
55cd0c:	ff 75 e8             	push   -0x18(%ebp)
55cd0f:	8d 45 c0             	lea    -0x40(%ebp),%eax
55cd12:	89 33                	mov    %esi,(%ebx)
55cd14:	50                   	push   %eax
55cd15:	e8 d6 f0 ff ff       	call   0x55bdf0
55cd1a:	83 c4 08             	add    $0x8,%esp
55cd1d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
55cd20:	5f                   	pop    %edi
55cd21:	5e                   	pop    %esi
55cd22:	33 cd                	xor    %ebp,%ecx
55cd24:	5b                   	pop    %ebx
55cd25:	e8 b0 47 08 00       	call   0x5e14da
55cd2a:	8b e5                	mov    %ebp,%esp
55cd2c:	5d                   	pop    %ebp
55cd2d:	c3                   	ret
55cd2e:	cc                   	int3
55cd2f:	cc                   	int3
55cd30:	55                   	push   %ebp
55cd31:	8b ec                	mov    %esp,%ebp
55cd33:	83 ec 10             	sub    $0x10,%esp
55cd36:	a1 d4 89 72 00       	mov    0x7289d4,%eax
55cd3b:	33 c5                	xor    %ebp,%eax
55cd3d:	89 45 fc             	mov    %eax,-0x4(%ebp)
55cd40:	8b 4d 08             	mov    0x8(%ebp),%ecx
55cd43:	53                   	push   %ebx
55cd44:	8b 5d 10             	mov    0x10(%ebp),%ebx
55cd47:	56                   	push   %esi
55cd48:	57                   	push   %edi
55cd49:	8b 7d 0c             	mov    0xc(%ebp),%edi
55cd4c:	8d 75 f4             	lea    -0xc(%ebp),%esi
55cd4f:	89 4d f0             	mov    %ecx,-0x10(%ebp)
55cd52:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
55cd59:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
55cd60:	ff 33                	push   (%ebx)
55cd62:	8d 43 08             	lea    0x8(%ebx),%eax
55cd65:	50                   	push   %eax
55cd66:	ff 37                	push   (%edi)
55cd68:	8d 47 08             	lea    0x8(%edi),%eax
55cd6b:	50                   	push   %eax
55cd6c:	8d 45 f8             	lea    -0x8(%ebp),%eax
55cd6f:	50                   	push   %eax
55cd70:	8b 41 20             	mov    0x20(%ecx),%eax
55cd73:	51                   	push   %ecx
55cd74:	ff d0                	call   *%eax
55cd76:	83 c4 18             	add    $0x18,%esp
55cd79:	85 c0                	test   %eax,%eax
55cd7b:	7f 10                	jg     0x55cd8d
55cd7d:	89 3e                	mov    %edi,(%esi)
55cd7f:	8d 77 04             	lea    0x4(%edi),%esi
55cd82:	8b 3e                	mov    (%esi),%edi
55cd84:	85 ff                	test   %edi,%edi
55cd86:	74 1c                	je     0x55cda4
55cd88:	8b 4d f0             	mov    -0x10(%ebp),%ecx
55cd8b:	eb d3                	jmp    0x55cd60
55cd8d:	89 1e                	mov    %ebx,(%esi)
55cd8f:	8d 73 04             	lea    0x4(%ebx),%esi
55cd92:	8b 1e                	mov    (%esi),%ebx
55cd94:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
55cd9b:	85 db                	test   %ebx,%ebx
55cd9d:	74 1b                	je     0x55cdba
55cd9f:	8b 4d f0             	mov    -0x10(%ebp),%ecx
55cda2:	eb bc                	jmp    0x55cd60
55cda4:	8b 45 f4             	mov    -0xc(%ebp),%eax
55cda7:	5f                   	pop    %edi
55cda8:	89 1e                	mov    %ebx,(%esi)
55cdaa:	5e                   	pop    %esi
55cdab:	5b                   	pop    %ebx
55cdac:	8b 4d fc             	mov    -0x4(%ebp),%ecx
55cdaf:	33 cd                	xor    %ebp,%ecx
55cdb1:	e8 24 47 08 00       	call   0x5e14da
55cdb6:	8b e5                	mov    %ebp,%esp
55cdb8:	5d                   	pop    %ebp
55cdb9:	c3                   	ret
55cdba:	8b 4d fc             	mov    -0x4(%ebp),%ecx
55cdbd:	8b 45 f4             	mov    -0xc(%ebp),%eax
55cdc0:	33 cd                	xor    %ebp,%ecx
55cdc2:	89 3e                	mov    %edi,(%esi)
55cdc4:	5f                   	pop    %edi
55cdc5:	5e                   	pop    %esi
55cdc6:	5b                   	pop    %ebx
55cdc7:	e8 0e 47 08 00       	call   0x5e14da
55cdcc:	8b e5                	mov    %ebp,%esp
55cdce:	5d                   	pop    %ebp
55cdcf:	c3                   	ret
55cdd0:	55                   	push   %ebp
55cdd1:	8b ec                	mov    %esp,%ebp
55cdd3:	83 ec 24             	sub    $0x24,%esp
55cdd6:	8b 55 08             	mov    0x8(%ebp),%edx
55cdd9:	53                   	push   %ebx
55cdda:	56                   	push   %esi
55cddb:	57                   	push   %edi
55cddc:	8a 42 3b             	mov    0x3b(%edx),%al
55cddf:	33 ff                	xor    %edi,%edi
55cde1:	33 f6                	xor    %esi,%esi
55cde3:	89 7d fc             	mov    %edi,-0x4(%ebp)
55cde6:	8d 5f 07             	lea    0x7(%edi),%ebx
55cde9:	3c 01                	cmp    $0x1,%al
55cdeb:	76 19                	jbe    0x55ce06
55cded:	0f b6 c0             	movzbl %al,%eax
55cdf0:	50                   	push   %eax
55cdf1:	e8 4a e6 ff ff       	call   0x55b440
55cdf6:	8b 55 08             	mov    0x8(%ebp),%edx