55c8ec:	83 f9 ff             	cmp    $0xffffffff,%ecx
55c8ef:	74 0f                	je     0x55c900
55c8f1:	8a 46 03             	mov    0x3(%esi),%al
55c8f4:	3a 47 03             	cmp    0x3(%edi),%al
55c8f7:	74 07                	je     0x55c900
55c8f9:	1b d2                	sbb    %edx,%edx
55c8fb:	83 ca 01             	or     $0x1,%edx
55c8fe:	eb 02                	jmp    0x55c902
55c900:	33 d2                	xor    %edx,%edx
55c902:	85 d2                	test   %edx,%edx
55c904:	75 4e                	jne    0x55c954
55c906:	8b 55 18             	mov    0x18(%ebp),%edx
55c909:	2b 55 fc             	sub    -0x4(%ebp),%edx
55c90c:	75 46                	jne    0x55c954
55c90e:	8b 4d 08             	mov    0x8(%ebp),%ecx
55c911:	8b 41 08             	mov    0x8(%ecx),%eax
55c914:	8b 40 1c             	mov    0x1c(%eax),%eax
55c917:	66 83 78 06 01       	cmpw   $0x1,0x6(%eax)
55c91c:	76 49                	jbe    0x55c967
55c91e:	8b 7d 0c             	mov    0xc(%ebp),%edi
55c921:	8b 71 0c             	mov    0xc(%ecx),%esi
55c924:	39 17                	cmp    %edx,(%edi)
55c926:	75 14                	jne    0x55c93c
55c928:	56                   	push   %esi
55c929:	53                   	push   %ebx
55c92a:	ff 75 1c             	push   0x1c(%ebp)
55c92d:	50                   	push   %eax
55c92e:	e8 8d 01 ff ff       	call   0x54cac0
55c933:	83 c4 10             	add    $0x10,%esp
55c936:	c7 07 01 00 00 00    	movl   $0x1,(%edi)
55c93c:	6a 01                	push   $0x1
55c93e:	56                   	push   %esi
55c93f:	ff 75 10             	push   0x10(%ebp)
55c942:	ff 75 14             	push   0x14(%ebp)
55c945:	e8 f6 fb fe ff       	call   0x54c540
55c94a:	83 c4 10             	add    $0x10,%esp
55c94d:	5f                   	pop    %edi
55c94e:	5e                   	pop    %esi
55c94f:	5b                   	pop    %ebx
55c950:	8b e5                	mov    %ebp,%esp
55c952:	5d                   	pop    %ebp
55c953:	c3                   	ret
55c954:	8b 4d 08             	mov    0x8(%ebp),%ecx
55c957:	8b 49 08             	mov    0x8(%ecx),%ecx
55c95a:	8b 49 1c             	mov    0x1c(%ecx),%ecx
55c95d:	8b 49 10             	mov    0x10(%ecx),%ecx
55c960:	80 39 00             	cmpb   $0x0,(%ecx)
55c963:	74 02                	je     0x55c967
55c965:	f7 da                	neg    %edx
55c967:	5f                   	pop    %edi
55c968:	5e                   	pop    %esi
55c969:	8b c2                	mov    %edx,%eax
55c96b:	5b                   	pop    %ebx
55c96c:	8b e5                	mov    %ebp,%esp
55c96e:	5d                   	pop    %ebp
55c96f:	c3                   	ret
55c970:	55                   	push   %ebp
55c971:	8b ec                	mov    %esp,%ebp
55c973:	83 ec 0c             	sub    $0xc,%esp
55c976:	a1 d4 89 72 00       	mov    0x7289d4,%eax
55c97b:	33 c5                	xor    %ebp,%eax
55c97d:	89 45 fc             	mov    %eax,-0x4(%ebp)
55c980:	8b 45 08             	mov    0x8(%ebp),%eax
55c983:	56                   	push   %esi
55c984:	8b 75 0c             	mov    0xc(%ebp),%esi
55c987:	8b 80 9c 00 00 00    	mov    0x9c(%eax),%eax
55c98d:	99                   	cltd
55c98e:	39 55 14             	cmp    %edx,0x14(%ebp)
55c991:	7f 69                	jg     0x55c9fc
55c993:	7c 05                	jl     0x55c99a
55c995:	39 45 10             	cmp    %eax,0x10(%ebp)
55c998:	77 62                	ja     0x55c9fc
55c99a:	8b 06                	mov    (%esi),%eax
55c99c:	83 38 03             	cmpl   $0x3,(%eax)
55c99f:	7c 5b                	jl     0x55c9fc
55c9a1:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
55c9a8:	c7 45 f8 00 10 00 00 	movl   $0x1000,-0x8(%ebp)
55c9af:	85 c0                	test   %eax,%eax
55c9b1:	74 24                	je     0x55c9d7
55c9b3:	8b 40 28             	mov    0x28(%eax),%eax
55c9b6:	8d 4d f8             	lea    -0x8(%ebp),%ecx
55c9b9:	51                   	push   %ecx
55c9ba:	6a 06                	push   $0x6
55c9bc:	56                   	push   %esi
55c9bd:	ff d0                	call   *%eax
55c9bf:	8b 06                	mov    (%esi),%eax
55c9c1:	83 c4 0c             	add    $0xc,%esp
55c9c4:	85 c0                	test   %eax,%eax
55c9c6:	74 0f                	je     0x55c9d7
55c9c8:	8b 40 28             	mov    0x28(%eax),%eax
55c9cb:	8d 4d 10             	lea    0x10(%ebp),%ecx
55c9ce:	51                   	push   %ecx
55c9cf:	6a 05                	push   $0x5
55c9d1:	56                   	push   %esi
55c9d2:	ff d0                	call   *%eax
55c9d4:	83 c4 0c             	add    $0xc,%esp
55c9d7:	8b 06                	mov    (%esi),%eax
55c9d9:	8d 4d f4             	lea    -0xc(%ebp),%ecx
55c9dc:	51                   	push   %ecx
55c9dd:	ff 75 10             	push   0x10(%ebp)
55c9e0:	8b 40 44             	mov    0x44(%eax),%eax
55c9e3:	6a 00                	push   $0x0
55c9e5:	6a 00                	push   $0x0
55c9e7:	56                   	push   %esi
55c9e8:	ff d0                	call   *%eax
55c9ea:	ff 75 f4             	push   -0xc(%ebp)
55c9ed:	8b 06                	mov    (%esi),%eax
55c9ef:	6a 00                	push   $0x0
55c9f1:	6a 00                	push   $0x0
55c9f3:	56                   	push   %esi
55c9f4:	8b 40 48             	mov    0x48(%eax),%eax
55c9f7:	ff d0                	call   *%eax
55c9f9:	83 c4 24             	add    $0x24,%esp
55c9fc:	8b 4d fc             	mov    -0x4(%ebp),%ecx
55c9ff:	33 cd                	xor    %ebp,%ecx
55ca01:	5e                   	pop    %esi
55ca02:	e8 d3 4a 08 00       	call   0x5e14da
55ca07:	8b e5                	mov    %ebp,%esp
55ca09:	5d                   	pop    %ebp
55ca0a:	c3                   	ret
55ca0b:	cc                   	int3
55ca0c:	cc                   	int3
55ca0d:	cc                   	int3
55ca0e:	cc                   	int3
55ca0f:	cc                   	int3
55ca10:	55                   	push   %ebp
55ca11:	8b ec                	mov    %esp,%ebp
55ca13:	51                   	push   %ecx
55ca14:	53                   	push   %ebx
55ca15:	8b 5d 08             	mov    0x8(%ebp),%ebx
55ca18:	56                   	push   %esi
55ca19:	57                   	push   %edi
55ca1a:	33 f6                	xor    %esi,%esi
55ca1c:	33 ff                	xor    %edi,%edi
55ca1e:	0f b6 4b 3b          	movzbl 0x3b(%ebx),%ecx
55ca22:	49                   	dec    %ecx
55ca23:	c6 43 38 01          	movb   $0x1,0x38(%ebx)
55ca27:	89 4d fc             	mov    %ecx,-0x4(%ebp)
55ca2a:	85 c9                	test   %ecx,%ecx
55ca2c:	7e 5d                	jle    0x55ca8b
55ca2e:	66 90                	xchg   %ax,%ax
55ca30:	0f b6 43 3a          	movzbl 0x3a(%ebx),%eax
55ca34:	40                   	inc    %eax
55ca35:	03 c7                	add    %edi,%eax
55ca37:	99                   	cltd
55ca38:	f7 f9                	idiv   %ecx
55ca3a:	8d 72 01             	lea    0x1(%edx),%esi
55ca3d:	8d 34 f2             	lea    (%edx,%esi,8),%esi
55ca40:	83 7c f3 04 00       	cmpl   $0x0,0x4(%ebx,%esi,8)
55ca45:	8d 34 f3             	lea    (%ebx,%esi,8),%esi
55ca48:	74 37                	je     0x55ca81
55ca4a:	8b 16                	mov    (%esi),%edx
55ca4c:	33 c0                	xor    %eax,%eax
55ca4e:	85 d2                	test   %edx,%edx
55ca50:	74 27                	je     0x55ca79
55ca52:	8d 45 08             	lea    0x8(%ebp),%eax
55ca55:	c7 45 08 01 00 00 00 	movl   $0x1,0x8(%ebp)
55ca5c:	50                   	push   %eax
55ca5d:	52                   	push   %edx
55ca5e:	e8 9d 16 fe ff       	call   0x53e100
55ca63:	8b 45 08             	mov    0x8(%ebp),%eax
55ca66:	83 c4 08             	add    $0x8,%esp
55ca69:	8b 4d fc             	mov    -0x4(%ebp),%ecx
55ca6c:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
55ca73:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
55ca79:	85 c0                	test   %eax,%eax
55ca7b:	0f 85 8a 00 00 00    	jne    0x55cb0b
55ca81:	83 3e 00             	cmpl   $0x0,(%esi)
55ca84:	74 05                	je     0x55ca8b
55ca86:	47                   	inc    %edi
55ca87:	3b f9                	cmp    %ecx,%edi
55ca89:	7c a5                	jl     0x55ca30
55ca8b:	3b f9                	cmp    %ecx,%edi
55ca8d:	75 1d                	jne    0x55caac
55ca8f:	8d 43 24             	lea    0x24(%ebx),%eax
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)