5598c3:	ff 75 e8             	push   -0x18(%ebp)
5598c6:	8b 75 14             	mov    0x14(%ebp),%esi
5598c9:	8d 4d f8             	lea    -0x8(%ebp),%ecx
5598cc:	51                   	push   %ecx
5598cd:	56                   	push   %esi
5598ce:	ff 75 10             	push   0x10(%ebp)
5598d1:	ff 77 0c             	push   0xc(%edi)
5598d4:	50                   	push   %eax
5598d5:	e8 c6 fe ff ff       	call   0x5597a0
5598da:	8b 4d f8             	mov    -0x8(%ebp),%ecx
5598dd:	83 c4 18             	add    $0x18,%esp
5598e0:	85 c0                	test   %eax,%eax
5598e2:	75 7b                	jne    0x55995f
5598e4:	85 c9                	test   %ecx,%ecx
5598e6:	74 77                	je     0x55995f
5598e8:	51                   	push   %ecx
5598e9:	e8 52 1f ff ff       	call   0x54b840
5598ee:	8b 45 f8             	mov    -0x8(%ebp),%eax
5598f1:	83 c4 04             	add    $0x4,%esp
5598f4:	f6 40 08 08          	testb  $0x8,0x8(%eax)
5598f8:	74 11                	je     0x55990b
5598fa:	f2 0f 10 00          	movsd  (%eax),%xmm0
5598fe:	0f 57 05 10 9c 6a 00 	xorps  0x6a9c10,%xmm0
559905:	f2 0f 11 00          	movsd  %xmm0,(%eax)
559909:	eb 42                	jmp    0x55994d
55990b:	8b 10                	mov    (%eax),%edx
55990d:	8b 48 04             	mov    0x4(%eax),%ecx
559910:	85 d2                	test   %edx,%edx
559912:	75 2d                	jne    0x559941
559914:	81 f9 00 00 00 80    	cmp    $0x80000000,%ecx
55991a:	75 25                	jne    0x559941
55991c:	f2 0f 10 05 00 c6 6b 	movsd  0x6bc600,%xmm0
559923:	00
559924:	ba 40 3e 00 00       	mov    $0x3e40,%edx
559929:	f2 0f 11 00          	movsd  %xmm0,(%eax)
55992d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
559930:	66 8b 41 08          	mov    0x8(%ecx),%ax
559934:	66 23 c2             	and    %dx,%ax
559937:	66 83 c8 08          	or     $0x8,%ax
55993b:	66 89 41 08          	mov    %ax,0x8(%ecx)
55993f:	eb 0c                	jmp    0x55994d
559941:	f7 da                	neg    %edx
559943:	89 10                	mov    %edx,(%eax)
559945:	83 d1 00             	adc    $0x0,%ecx
559948:	f7 d9                	neg    %ecx
55994a:	89 48 04             	mov    %ecx,0x4(%eax)
55994d:	ff 75 10             	push   0x10(%ebp)
559950:	56                   	push   %esi
559951:	ff 75 f8             	push   -0x8(%ebp)
559954:	e8 87 a1 f9 ff       	call   0x4f3ae0
559959:	83 c4 0c             	add    $0xc,%esp
55995c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
55995f:	33 c0                	xor    %eax,%eax
559961:	8b 55 ec             	mov    -0x14(%ebp),%edx
559964:	5f                   	pop    %edi
559965:	5e                   	pop    %esi
559966:	89 0a                	mov    %ecx,(%edx)
559968:	8b 4d fc             	mov    -0x4(%ebp),%ecx
55996b:	33 cd                	xor    %ebp,%ecx
55996d:	e8 68 7b 08 00       	call   0x5e14da
559972:	8b e5                	mov    %ebp,%esp
559974:	5d                   	pop    %ebp
559975:	c3                   	ret
559976:	83 fe 77             	cmp    $0x77,%esi
559979:	75 1f                	jne    0x55999a
55997b:	50                   	push   %eax
55997c:	e8 2f 7f fe ff       	call   0x5418b0
559981:	83 c4 04             	add    $0x4,%esp
559984:	89 45 f8             	mov    %eax,-0x8(%ebp)
559987:	85 c0                	test   %eax,%eax
559989:	0f 84 9b 01 00 00    	je     0x559b2a
55998f:	50                   	push   %eax
559990:	e8 bb 20 ff ff       	call   0x54ba50
559995:	83 c4 04             	add    $0x4,%esp
559998:	eb c2                	jmp    0x55995c
55999a:	81 fe 97 00 00 00    	cmp    $0x97,%esi
5599a0:	75 54                	jne    0x5599f6
5599a2:	50                   	push   %eax
5599a3:	e8 08 7f fe ff       	call   0x5418b0
5599a8:	83 c4 04             	add    $0x4,%esp
5599ab:	89 45 f8             	mov    %eax,-0x8(%ebp)
5599ae:	85 c0                	test   %eax,%eax
5599b0:	0f 84 74 01 00 00    	je     0x559b2a
5599b6:	8b 77 08             	mov    0x8(%edi),%esi
5599b9:	83 c6 02             	add    $0x2,%esi
5599bc:	56                   	push   %esi
5599bd:	e8 ce 42 fe ff       	call   0x53dc90
5599c2:	8b 7d f4             	mov    -0xc(%ebp),%edi
5599c5:	83 c4 04             	add    $0x4,%esp
5599c8:	8d 48 ff             	lea    -0x1(%eax),%ecx
5599cb:	8b c1                	mov    %ecx,%eax
5599cd:	68 c0 10 53 00       	push   $0x5310c0
5599d2:	99                   	cltd
5599d3:	6a 00                	push   $0x0
5599d5:	2b c2                	sub    %edx,%eax
5599d7:	d1 f8                	sar    $1,%eax
5599d9:	50                   	push   %eax
5599da:	51                   	push   %ecx
5599db:	56                   	push   %esi
5599dc:	57                   	push   %edi
5599dd:	e8 ee 41 fd ff       	call   0x52dbd0
5599e2:	83 c4 0c             	add    $0xc,%esp
5599e5:	50                   	push   %eax
5599e6:	ff 75 f8             	push   -0x8(%ebp)
5599e9:	e8 f2 20 ff ff       	call   0x54bae0
5599ee:	83 c4 14             	add    $0x14,%esp
5599f1:	e9 66 ff ff ff       	jmp    0x55995c
5599f6:	81 fe a7 00 00 00    	cmp    $0xa7,%esi
5599fc:	0f 85 5d ff ff ff    	jne    0x55995f
559a02:	50                   	push   %eax
559a03:	e8 a8 7e fe ff       	call   0x5418b0
559a08:	8b c8                	mov    %eax,%ecx
559a0a:	83 c4 04             	add    $0x4,%esp
559a0d:	89 4d f8             	mov    %ecx,-0x8(%ebp)
559a10:	85 c9                	test   %ecx,%ecx
559a12:	0f 84 47 ff ff ff    	je     0x55995f
559a18:	b8 04 00 00 00       	mov    $0x4,%eax
559a1d:	66 89 41 08          	mov    %ax,0x8(%ecx)
559a21:	33 c9                	xor    %ecx,%ecx
559a23:	8b 47 08             	mov    0x8(%edi),%eax
559a26:	38 48 04             	cmp    %cl,0x4(%eax)
559a29:	8b 45 f8             	mov    -0x8(%ebp),%eax
559a2c:	0f 94 c1             	sete   %cl
559a2f:	89 08                	mov    %ecx,(%eax)
559a31:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
559a38:	e9 1f ff ff ff       	jmp    0x55995c
559a3d:	50                   	push   %eax
559a3e:	e8 6d 7e fe ff       	call   0x5418b0
559a43:	8b c8                	mov    %eax,%ecx
559a45:	83 c4 04             	add    $0x4,%esp
559a48:	89 4d f8             	mov    %ecx,-0x8(%ebp)
559a4b:	85 c9                	test   %ecx,%ecx
559a4d:	0f 84 d7 00 00 00    	je     0x559b2a
559a53:	f7 47 04 00 04 00 00 	testl  $0x400,0x4(%edi)
559a5a:	74 13                	je     0x559a6f
559a5c:	8b 45 e4             	mov    -0x1c(%ebp),%eax
559a5f:	f7 6f 08             	imull  0x8(%edi)
559a62:	52                   	push   %edx
559a63:	50                   	push   %eax
559a64:	51                   	push   %ecx
559a65:	e8 a6 1f ff ff       	call   0x54ba10
559a6a:	83 c4 0c             	add    $0xc,%esp
559a6d:	eb 3e                	jmp    0x559aad
559a6f:	ff 77 08             	push   0x8(%edi)
559a72:	8b 7d f4             	mov    -0xc(%ebp),%edi
559a75:	ff 75 e0             	push   -0x20(%ebp)
559a78:	68 50 86 6b 00       	push   $0x6b8650
559a7d:	57                   	push   %edi
559a7e:	e8 bd 74 fd ff       	call   0x530f40
559a83:	8b c8                	mov    %eax,%ecx
559a85:	83 c4 10             	add    $0x10,%esp
559a88:	89 4d f0             	mov    %ecx,-0x10(%ebp)
559a8b:	85 c9                	test   %ecx,%ecx
559a8d:	0f 84 9a 00 00 00    	je     0x559b2d
559a93:	8b 45 f8             	mov    -0x8(%ebp),%eax
559a96:	85 c0                	test   %eax,%eax
559a98:	74 16                	je     0x559ab0
559a9a:	68 c0 10 53 00       	push   $0x5310c0
559a9f:	6a 01                	push   $0x1
559aa1:	6a ff                	push   $0xffffffff
559aa3:	51                   	push   %ecx
559aa4:	50                   	push   %eax
559aa5:	e8 36 20 ff ff       	call   0x54bae0
559aaa:	83 c4 14             	add    $0x14,%esp
559aad:	8b 45 f8             	mov    -0x8(%ebp),%eax
559ab0:	8b 4d 14             	mov    0x14(%ebp),%ecx
559ab3:	81 fe 98 00 00 00    	cmp    $0x98,%esi
559ab9:	74 08                	je     0x559ac3
559abb:	81 fe 96 00 00 00    	cmp    $0x96,%esi
559ac1:	75 0b                	jne    0x559ace
559ac3:	80 f9 41             	cmp    $0x41,%cl
559ac6:	75 06                	jne    0x559ace
559ac8:	6a 01                	push   $0x1
559aca:	6a 43                	push   $0x43
559acc:	eb 03                	jmp    0x559ad1
559ace:	6a 01                	push   $0x1
559ad0:	51                   	push   %ecx
559ad1:	50                   	push   %eax
559ad2:	e8 09 a0 f9 ff       	call   0x4f3ae0
559ad7:	8b 4d f8             	mov    -0x8(%ebp),%ecx
559ada:	83 c4 0c             	add    $0xc,%esp
559add:	0f b7 41 08          	movzwl 0x8(%ecx),%eax
559ae1:	a8 2c                	test   $0x2c,%al
559ae3:	74 0c                	je     0x559af1
559ae5:	25 fd ff 00 00       	and    $0xfffd,%eax
559aea:	66 89 41 08          	mov    %ax,0x8(%ecx)
559aee:	8b 4d f8             	mov    -0x8(%ebp),%ecx
559af1:	8b 45 10             	mov    0x10(%ebp),%eax
559af4:	3c 01                	cmp    $0x1,%al
559af6:	0f 84 63 fe ff ff    	je     0x55995f
559afc:	f6 41 08 02          	testb  $0x2,0x8(%ecx)
559b00:	0f b6 d0             	movzbl %al,%edx
559b03:	0f 84 56 fe ff ff    	je     0x55995f
559b09:	0f b6 41 0a          	movzbl 0xa(%ecx),%eax
559b0d:	3b c2                	cmp    %edx,%eax
559b0f:	0f 84 4a fe ff ff    	je     0x55995f
559b15:	52                   	push   %edx
559b16:	51                   	push   %ecx
559b17:	e8 24 23 ff ff       	call   0x54be40
559b1c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
559b1f:	83 c4 08             	add    $0x8,%esp
559b22:	89 45 f0             	mov    %eax,-0x10(%ebp)
559b25:	e9 37 fe ff ff       	jmp    0x559961
559b2a:	8b 7d f4             	mov    -0xc(%ebp),%edi
559b2d:	57                   	push   %edi
559b2e:	e8 5d 7d fd ff       	call   0x531890
559b33:	8b 45 f0             	mov    -0x10(%ebp),%eax
559b36:	83 c4 04             	add    $0x4,%esp
559b39:	85 c0                	test   %eax,%eax
559b3b:	74 0a                	je     0x559b47
559b3d:	50                   	push   %eax
559b3e:	57                   	push   %edi
559b3f:	e8 2c 78 fc ff       	call   0x521370
559b44:	83 c4 08             	add    $0x8,%esp
559b47:	8b 75 f8             	mov    -0x8(%ebp),%esi
559b4a:	85 f6                	test   %esi,%esi
559b4c:	74 26                	je     0x559b74
559b4e:	b8 00 24 00 00       	mov    $0x2400,%eax
559b53:	66 85 46 08          	test   %ax,0x8(%esi)
559b57:	75 06                	jne    0x559b5f
559b59:	83 7e 18 00          	cmpl   $0x0,0x18(%esi)
559b5d:	74 09                	je     0x559b68
559b5f:	56                   	push   %esi
559b60:	e8 ab 12 00 00       	call   0x55ae10
559b65:	83 c4 04             	add    $0x4,%esp
559b68:	56                   	push   %esi
559b69:	ff 76 20             	push   0x20(%esi)
559b6c:	e8 ff 77 fc ff       	call   0x521370
559b71:	83 c4 08             	add    $0x8,%esp
559b74:	8b 4d fc             	mov    -0x4(%ebp),%ecx
559b77:	b8 07 00 00 00       	mov    $0x7,%eax
559b7c:	5f                   	pop    %edi
559b7d:	33 cd                	xor    %ebp,%ecx
559b7f:	5e                   	pop    %esi
559b80:	e8 55 79 08 00       	call   0x5e14da
559b85:	8b e5                	mov    %ebp,%esp
559b87:	5d                   	pop    %ebp
559b88:	c3                   	ret
559b89:	cc                   	int3
559b8a:	cc                   	int3
559b8b:	cc                   	int3
559b8c:	cc                   	int3
559b8d:	cc                   	int3
559b8e:	cc                   	int3
559b8f:	cc                   	int3
559b90:	55                   	push   %ebp
559b91:	8b ec                	mov    %esp,%ebp
559b93:	53                   	push   %ebx
559b94:	56                   	push   %esi
559b95:	8b 75 08             	mov    0x8(%ebp),%esi
559b98:	0f b7 46 08          	movzwl 0x8(%esi),%eax
559b9c:	a8 12                	test   $0x12,%al
559b9e:	74 72                	je     0x559c12
559ba0:	a9 00 40 00 00       	test   $0x4000,%eax
559ba5:	74 0d                	je     0x559bb4
559ba7:	56                   	push   %esi
559ba8:	e8 d3 17 ff ff       	call   0x54b380
559bad:	83 c4 04             	add    $0x4,%esp
559bb0:	85 c0                	test   %eax,%eax
559bb2:	75 7f                	jne    0x559c33
559bb4:	8b 5d 0c             	mov    0xc(%ebp),%ebx
559bb7:	0f b6 46 0a          	movzbl 0xa(%esi),%eax
559bbb:	66 83 4e 08 02       	orw    $0x2,0x8(%esi)
559bc0:	0f b6 cb             	movzbl %bl,%ecx
559bc3:	83 e1 f7             	and    $0xfffffff7,%ecx
559bc6:	3b c1                	cmp    %ecx,%eax
559bc8:	74 10                	je     0x559bda
559bca:	f6 46 08 02          	testb  $0x2,0x8(%esi)
559bce:	74 0a                	je     0x559bda
559bd0:	51                   	push   %ecx
559bd1:	56                   	push   %esi
559bd2:	e8 69 22 ff ff       	call   0x54be40
559bd7:	83 c4 08             	add    $0x8,%esp
559bda:	f6 c3 08             	test   $0x8,%bl
559bdd:	74 16                	je     0x559bf5
559bdf:	f7 46 10 01 00 00 00 	testl  $0x1,0x10(%esi)
559be6:	74 0d                	je     0x559bf5
559be8:	56                   	push   %esi
559be9:	e8 72 1b ff ff       	call   0x54b760
559bee:	83 c4 04             	add    $0x4,%esp
559bf1:	85 c0                	test   %eax,%eax
559bf3:	75 3e                	jne    0x559c33
559bf5:	66 8b 46 08          	mov    0x8(%esi),%ax
559bf9:	b9 02 02 00 00       	mov    $0x202,%ecx
559bfe:	66 23 c1             	and    %cx,%ax
559c01:	66 83 f8 02          	cmp    $0x2,%ax
559c05:	75 1a                	jne    0x559c21
559c07:	56                   	push   %esi
559c08:	e8 a3 11 00 00       	call   0x55adb0
559c0d:	83 c4 04             	add    $0x4,%esp
559c10:	eb 0f                	jmp    0x559c21
559c12:	8b 5d 0c             	mov    0xc(%ebp),%ebx
559c15:	6a 00                	push   $0x0
559c17:	53                   	push   %ebx
559c18:	56                   	push   %esi
559c19:	e8 52 21 ff ff       	call   0x54bd70
559c1e:	83 c4 0c             	add    $0xc,%esp
559c21:	0f b6 cb             	movzbl %bl,%ecx
559c24:	80 e1 f7             	and    $0xf7,%cl
559c27:	38 4e 0a             	cmp    %cl,0xa(%esi)
559c2a:	75 07                	jne    0x559c33
559c2c:	8b 46 10             	mov    0x10(%esi),%eax
559c2f:	5e                   	pop    %esi
559c30:	5b                   	pop    %ebx
559c31:	5d                   	pop    %ebp
559c32:	c3                   	ret
559c33:	5e                   	pop    %esi
559c34:	33 c0                	xor    %eax,%eax
559c36:	5b                   	pop    %ebx
559c37:	5d                   	pop    %ebp
559c38:	c3                   	ret
559c39:	cc                   	int3
559c3a:	cc                   	int3
559c3b:	cc                   	int3
559c3c:	cc                   	int3
559c3d:	cc                   	int3
559c3e:	cc                   	int3
559c3f:	cc                   	int3
559c40:	55                   	push   %ebp
559c41:	8b ec                	mov    %esp,%ebp
559c43:	56                   	push   %esi
559c44:	8b 75 0c             	mov    0xc(%ebp),%esi
559c47:	57                   	push   %edi
559c48:	8b 7d 08             	mov    0x8(%ebp),%edi
559c4b:	8a 46 01             	mov    0x1(%esi),%al
559c4e:	84 c0                	test   %al,%al
559c50:	74 1c                	je     0x559c6e
559c52:	ff 76 10             	push   0x10(%esi)
559c55:	0f be c0             	movsbl %al,%eax
559c58:	50                   	push   %eax
559c59:	ff 37                	push   (%edi)
559c5b:	e8 50 a0 fa ff       	call   0x503cb0
559c60:	83 c4 0c             	add    $0xc,%esp
559c63:	c6 46 01 00          	movb   $0x0,0x1(%esi)
559c67:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
559c6e:	8b 4d 14             	mov    0x14(%ebp),%ecx
559c71:	85 c9                	test   %ecx,%ecx
559c73:	79 26                	jns    0x559c9b
559c75:	2b 77 68             	sub    0x68(%edi),%esi
559c78:	b8 67 66 66 66       	mov    $0x66666667,%eax
559c7d:	f7 ee                	imul   %esi
559c7f:	51                   	push   %ecx
559c80:	ff 75 10             	push   0x10(%ebp)
559c83:	c1 fa 03             	sar    $0x3,%edx
559c86:	8b c2                	mov    %edx,%eax
559c88:	c1 e8 1f             	shr    $0x1f,%eax
559c8b:	03 c2                	add    %edx,%eax
559c8d:	50                   	push   %eax
559c8e:	57                   	push   %edi
559c8f:	e8 1c 83 fe ff       	call   0x541fb0