557824:	56                   	push   %esi
557825:	e8 86 ef fc ff       	call   0x5267b0
55782a:	83 c4 08             	add    $0x8,%esp
55782d:	8b 4f 08             	mov    0x8(%edi),%ecx
557830:	85 c9                	test   %ecx,%ecx
557832:	74 56                	je     0x55788a
557834:	83 be f8 01 00 00 00 	cmpl   $0x0,0x1f8(%esi)
55783b:	74 0c                	je     0x557849
55783d:	51                   	push   %ecx
55783e:	56                   	push   %esi
55783f:	e8 2c 1c fb ff       	call   0x509470
557844:	83 c4 08             	add    $0x8,%esp
557847:	eb 41                	jmp    0x55788a
557849:	3b 8e 4c 01 00 00    	cmp    0x14c(%esi),%ecx
55784f:	73 30                	jae    0x557881
557851:	3b 8e 44 01 00 00    	cmp    0x144(%esi),%ecx
557857:	72 10                	jb     0x557869
557859:	8b 86 40 01 00 00    	mov    0x140(%esi),%eax
55785f:	89 01                	mov    %eax,(%ecx)
557861:	89 8e 40 01 00 00    	mov    %ecx,0x140(%esi)
557867:	eb 21                	jmp    0x55788a
557869:	3b 8e 48 01 00 00    	cmp    0x148(%esi),%ecx
55786f:	72 10                	jb     0x557881
557871:	8b 86 38 01 00 00    	mov    0x138(%esi),%eax
557877:	89 01                	mov    %eax,(%ecx)
557879:	89 8e 38 01 00 00    	mov    %ecx,0x138(%esi)
55787f:	eb 09                	jmp    0x55788a
557881:	51                   	push   %ecx
557882:	e8 09 35 f9 ff       	call   0x4ead90
557887:	83 c4 04             	add    $0x4,%esp
55788a:	8b 55 fc             	mov    -0x4(%ebp),%edx
55788d:	83 c7 14             	add    $0x14,%edi
557890:	0f bf 43 2a          	movswl 0x2a(%ebx),%eax
557894:	42                   	inc    %edx
557895:	89 55 fc             	mov    %edx,-0x4(%ebp)
557898:	3b d0                	cmp    %eax,%edx
55789a:	0f 8c 20 ff ff ff    	jl     0x5577c0
5578a0:	8b 4b 04             	mov    0x4(%ebx),%ecx
5578a3:	85 c9                	test   %ecx,%ecx
5578a5:	74 56                	je     0x5578fd
5578a7:	83 be f8 01 00 00 00 	cmpl   $0x0,0x1f8(%esi)
5578ae:	74 0c                	je     0x5578bc
5578b0:	51                   	push   %ecx
5578b1:	56                   	push   %esi
5578b2:	e8 b9 1b fb ff       	call   0x509470
5578b7:	83 c4 08             	add    $0x8,%esp
5578ba:	eb 41                	jmp    0x5578fd
5578bc:	3b 8e 4c 01 00 00    	cmp    0x14c(%esi),%ecx
5578c2:	73 30                	jae    0x5578f4
5578c4:	3b 8e 44 01 00 00    	cmp    0x144(%esi),%ecx
5578ca:	72 10                	jb     0x5578dc
5578cc:	8b 86 40 01 00 00    	mov    0x140(%esi),%eax
5578d2:	89 01                	mov    %eax,(%ecx)
5578d4:	89 8e 40 01 00 00    	mov    %ecx,0x140(%esi)
5578da:	eb 21                	jmp    0x5578fd
5578dc:	3b 8e 48 01 00 00    	cmp    0x148(%esi),%ecx
5578e2:	72 10                	jb     0x5578f4
5578e4:	8b 86 38 01 00 00    	mov    0x138(%esi),%eax
5578ea:	89 01                	mov    %eax,(%ecx)
5578ec:	89 8e 38 01 00 00    	mov    %ecx,0x138(%esi)
5578f2:	eb 09                	jmp    0x5578fd
5578f4:	51                   	push   %ecx
5578f5:	e8 96 34 f9 ff       	call   0x4ead90
5578fa:	83 c4 04             	add    $0x4,%esp
5578fd:	8b 4d 08             	mov    0x8(%ebp),%ecx
557900:	33 c0                	xor    %eax,%eax
557902:	c7 43 04 00 00 00 00 	movl   $0x0,0x4(%ebx)
557909:	66 89 43 2a          	mov    %ax,0x2a(%ebx)
55790d:	8b 09                	mov    (%ecx),%ecx
55790f:	89 4d 08             	mov    %ecx,0x8(%ebp)
557912:	85 c9                	test   %ecx,%ecx
557914:	0f 85 78 fe ff ff    	jne    0x557792
55791a:	5f                   	pop    %edi
55791b:	5b                   	pop    %ebx
55791c:	8b 46 10             	mov    0x10(%esi),%eax
55791f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
557922:	8b 44 01 0c          	mov    0xc(%ecx,%eax,1),%eax
557926:	b9 fd ff 00 00       	mov    $0xfffd,%ecx
55792b:	66 21 48 4e          	and    %cx,0x4e(%eax)
55792f:	5e                   	pop    %esi
557930:	8b e5                	mov    %ebp,%esp
557932:	5d                   	pop    %ebp
557933:	c3                   	ret
557934:	cc                   	int3
557935:	cc                   	int3
557936:	cc                   	int3
557937:	cc                   	int3
557938:	cc                   	int3
557939:	cc                   	int3
55793a:	cc                   	int3
55793b:	cc                   	int3
55793c:	cc                   	int3
55793d:	cc                   	int3
55793e:	cc                   	int3
55793f:	cc                   	int3
557940:	55                   	push   %ebp
557941:	8b ec                	mov    %esp,%ebp
557943:	8b 45 08             	mov    0x8(%ebp),%eax
557946:	85 c0                	test   %eax,%eax
557948:	74 0c                	je     0x557956
55794a:	50                   	push   %eax
55794b:	ff 70 38             	push   0x38(%eax)
55794e:	e8 1d 9a fc ff       	call   0x521370
557953:	83 c4 08             	add    $0x8,%esp
557956:	5d                   	pop    %ebp
557957:	c3                   	ret
557958:	cc                   	int3
557959:	cc                   	int3
55795a:	cc                   	int3
55795b:	cc                   	int3
55795c:	cc                   	int3
55795d:	cc                   	int3
55795e:	cc                   	int3
55795f:	cc                   	int3
557960:	55                   	push   %ebp
557961:	8b ec                	mov    %esp,%ebp
557963:	56                   	push   %esi
557964:	8b 75 08             	mov    0x8(%ebp),%esi
557967:	57                   	push   %edi
557968:	6a 00                	push   $0x0
55796a:	8b 46 10             	mov    0x10(%esi),%eax
55796d:	8b 0e                	mov    (%esi),%ecx
55796f:	40                   	inc    %eax
557970:	50                   	push   %eax
557971:	85 c9                	test   %ecx,%ecx
557973:	74 0b                	je     0x557980
557975:	51                   	push   %ecx
557976:	e8 65 9a fc ff       	call   0x5213e0
55797b:	83 c4 0c             	add    $0xc,%esp
55797e:	eb 08                	jmp    0x557988
557980:	e8 db 95 fd ff       	call   0x530f60
557985:	83 c4 08             	add    $0x8,%esp
557988:	8b f8                	mov    %eax,%edi
55798a:	85 ff                	test   %edi,%edi
55798c:	74 1e                	je     0x5579ac
55798e:	8b 46 10             	mov    0x10(%esi),%eax
557991:	40                   	inc    %eax
557992:	50                   	push   %eax
557993:	ff 76 04             	push   0x4(%esi)
557996:	57                   	push   %edi
557997:	e8 64 b5 08 00       	call   0x5e2f00
55799c:	83 c4 0c             	add    $0xc,%esp
55799f:	89 7e 04             	mov    %edi,0x4(%esi)
5579a2:	80 4e 15 04          	orb    $0x4,0x15(%esi)
5579a6:	8b c7                	mov    %edi,%eax
5579a8:	5f                   	pop    %edi
5579a9:	5e                   	pop    %esi
5579aa:	5d                   	pop    %ebp
5579ab:	c3                   	ret
5579ac:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
5579b0:	c6 46 14 07          	movb   $0x7,0x14(%esi)
5579b4:	74 31                	je     0x5579e7
5579b6:	f6 46 15 04          	testb  $0x4,0x15(%esi)
5579ba:	74 16                	je     0x5579d2
5579bc:	8b 46 04             	mov    0x4(%esi),%eax
5579bf:	85 c0                	test   %eax,%eax
5579c1:	74 0b                	je     0x5579ce
5579c3:	50                   	push   %eax
5579c4:	ff 36                	push   (%esi)
5579c6:	e8 a5 99 fc ff       	call   0x521370
5579cb:	83 c4 08             	add    $0x8,%esp
5579ce:	80 66 15 fb          	andb   $0xfb,0x15(%esi)
5579d2:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
5579d9:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
5579e0:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
5579e7:	89 7e 04             	mov    %edi,0x4(%esi)
5579ea:	8b c7                	mov    %edi,%eax
5579ec:	5f                   	pop    %edi
5579ed:	5e                   	pop    %esi
5579ee:	5d                   	pop    %ebp
5579ef:	c3                   	ret
5579f0:	55                   	push   %ebp
5579f1:	8b ec                	mov    %esp,%ebp
5579f3:	8b 4d 08             	mov    0x8(%ebp),%ecx
5579f6:	33 d2                	xor    %edx,%edx
5579f8:	8a 01                	mov    (%ecx),%al
5579fa:	84 c0                	test   %al,%al
5579fc:	74 1d                	je     0x557a1b
5579fe:	66 90                	xchg   %ax,%ax
557a00:	0f b6 c0             	movzbl %al,%eax
557a03:	8d 49 01             	lea    0x1(%ecx),%ecx
557a06:	0f b6 80 20 2a 6b 00 	movzbl 0x6b2a20(%eax),%eax
557a0d:	03 c2                	add    %edx,%eax
557a0f:	69 d0 b1 79 37 9e    	imul   $0x9e3779b1,%eax,%edx
557a15:	8a 01                	mov    (%ecx),%al
557a17:	84 c0                	test   %al,%al
557a19:	75 e5                	jne    0x557a00
557a1b:	8b c2                	mov    %edx,%eax
557a1d:	5d                   	pop    %ebp
557a1e:	c3                   	ret
557a1f:	cc                   	int3
557a20:	55                   	push   %ebp
557a21:	8b ec                	mov    %esp,%ebp
557a23:	83 ec 08             	sub    $0x8,%esp
557a26:	8b 45 08             	mov    0x8(%ebp),%eax
557a29:	33 d2                	xor    %edx,%edx
557a2b:	53                   	push   %ebx
557a2c:	56                   	push   %esi
557a2d:	57                   	push   %edi
557a2e:	8b 58 14             	mov    0x14(%eax),%ebx
557a31:	8b 40 18             	mov    0x18(%eax),%eax
557a34:	89 45 fc             	mov    %eax,-0x4(%ebp)
557a37:	89 55 08             	mov    %edx,0x8(%ebp)
557a3a:	8b 4b 60             	mov    0x60(%ebx),%ecx
557a3d:	89 4d f8             	mov    %ecx,-0x8(%ebp)
557a40:	85 c9                	test   %ecx,%ecx
557a42:	0f 8e cf 00 00 00    	jle    0x557b17
557a48:	8b 5b 5c             	mov    0x5c(%ebx),%ebx
557a4b:	83 c3 10             	add    $0x10,%ebx
557a4e:	66 90                	xchg   %ax,%ax
557a50:	39 43 04             	cmp    %eax,0x4(%ebx)
557a53:	0f 82 af 00 00 00    	jb     0x557b08
557a59:	8b 33                	mov    (%ebx),%esi
557a5b:	8d 78 ff             	lea    -0x1(%eax),%edi
557a5e:	3b 3e                	cmp    (%esi),%edi
557a60:	73 4f                	jae    0x557ab1
557a62:	8b 4e 08             	mov    0x8(%esi),%ecx
557a65:	85 c9                	test   %ecx,%ecx
557a67:	74 21                	je     0x557a8a
557a69:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
557a70:	8b c7                	mov    %edi,%eax
557a72:	33 d2                	xor    %edx,%edx
557a74:	f7 f1                	div    %ecx
557a76:	8b fa                	mov    %edx,%edi
557a78:	8b 74 86 0c          	mov    0xc(%esi,%eax,4),%esi
557a7c:	85 f6                	test   %esi,%esi
557a7e:	74 31                	je     0x557ab1
557a80:	8b 4e 08             	mov    0x8(%esi),%ecx
557a83:	85 c9                	test   %ecx,%ecx
557a85:	75 e9                	jne    0x557a70
557a87:	8b 55 08             	mov    0x8(%ebp),%edx
557a8a:	81 3e a0 0f 00 00    	cmpl   $0xfa0,(%esi)
557a90:	77 2b                	ja     0x557abd
557a92:	8b cf                	mov    %edi,%ecx
557a94:	b8 01 00 00 00       	mov    $0x1,%eax
557a99:	83 e1 07             	and    $0x7,%ecx
557a9c:	c1 ef 03             	shr    $0x3,%edi
557a9f:	d3 e0                	shl    %cl,%eax
557aa1:	84 44 37 0c          	test   %al,0xc(%edi,%esi,1)
557aa5:	b8 00 00 00 00       	mov    $0x0,%eax
557aaa:	0f 95 c0             	setne  %al
557aad:	85 c0                	test   %eax,%eax
557aaf:	75 51                	jne    0x557b02
557ab1:	5f                   	pop    %edi
557ab2:	5e                   	pop    %esi
557ab3:	b8 01 00 00 00       	mov    $0x1,%eax
557ab8:	5b                   	pop    %ebx
557ab9:	8b e5                	mov    %ebp,%esp
557abb:	5d                   	pop    %ebp
557abc:	c3                   	ret
557abd:	b8 d3 4d 62 10       	mov    $0x10624dd3,%eax
557ac2:	f7 e7                	mul    %edi
557ac4:	c1 ea 03             	shr    $0x3,%edx
557ac7:	6b c2 7d             	imul   $0x7d,%edx,%eax
557aca:	8b d7                	mov    %edi,%edx
557acc:	47                   	inc    %edi
557acd:	2b d0                	sub    %eax,%edx
557acf:	8b 44 96 0c          	mov    0xc(%esi,%edx,4),%eax
557ad3:	85 c0                	test   %eax,%eax
557ad5:	74 da                	je     0x557ab1
557ad7:	b9 7d 00 00 00       	mov    $0x7d,%ecx
557adc:	0f 1f 40 00          	nopl   0x0(%eax)
557ae0:	3b c7                	cmp    %edi,%eax
557ae2:	74 1b                	je     0x557aff
557ae4:	8d 42 01             	lea    0x1(%edx),%eax
557ae7:	33 d2                	xor    %edx,%edx
557ae9:	f7 f1                	div    %ecx
557aeb:	8b 44 96 0c          	mov    0xc(%esi,%edx,4),%eax
557aef:	85 c0                	test   %eax,%eax
557af1:	75 ed                	jne    0x557ae0
557af3:	5f                   	pop    %edi
557af4:	5e                   	pop    %esi
557af5:	b8 01 00 00 00       	mov    $0x1,%eax
557afa:	5b                   	pop    %ebx
557afb:	8b e5                	mov    %ebp,%esp
557afd:	5d                   	pop    %ebp
557afe:	c3                   	ret
557aff:	8b 55 08             	mov    0x8(%ebp),%edx
557b02:	8b 4d f8             	mov    -0x8(%ebp),%ecx
557b05:	8b 45 fc             	mov    -0x4(%ebp),%eax
557b08:	42                   	inc    %edx
557b09:	83 c3 30             	add    $0x30,%ebx
557b0c:	89 55 08             	mov    %edx,0x8(%ebp)
557b0f:	3b d1                	cmp    %ecx,%edx
557b11:	0f 8c 39 ff ff ff    	jl     0x557a50
557b17:	5f                   	pop    %edi
557b18:	5e                   	pop    %esi
557b19:	33 c0                	xor    %eax,%eax
557b1b:	5b                   	pop    %ebx
557b1c:	8b e5                	mov    %ebp,%esp
557b1e:	5d                   	pop    %ebp
557b1f:	c3                   	ret
557b20:	55                   	push   %ebp
557b21:	8b ec                	mov    %esp,%ebp
557b23:	83 ec 14             	sub    $0x14,%esp
557b26:	a1 d4 89 72 00       	mov    0x7289d4,%eax
557b2b:	33 c5                	xor    %ebp,%eax
557b2d:	89 45 fc             	mov    %eax,-0x4(%ebp)
557b30:	53                   	push   %ebx
557b31:	8b 5d 08             	mov    0x8(%ebp),%ebx
557b34:	56                   	push   %esi
557b35:	57                   	push   %edi
557b36:	8b 7b 14             	mov    0x14(%ebx),%edi
557b39:	8a 4f 05             	mov    0x5(%edi),%cl
557b3c:	80 f9 02             	cmp    $0x2,%cl
557b3f:	0f 84 a2 00 00 00    	je     0x557be7
557b45:	8b 57 44             	mov    0x44(%edi),%edx
557b48:	33 c0                	xor    %eax,%eax
557b4a:	39 02                	cmp    %eax,(%edx)
557b4c:	75 26                	jne    0x557b74
557b4e:	a1 2c 18 72 00       	mov    0x72182c,%eax
557b53:	80 f9 04             	cmp    $0x4,%cl
557b56:	74 06                	je     0x557b5e
557b58:	80 7f 15 00          	cmpb   $0x0,0x15(%edi)
557b5c:	74 03                	je     0x557b61
557b5e:	83 c8 ff             	or     $0xffffffff,%eax
557b61:	50                   	push   %eax
557b62:	68 1e 20 00 00       	push   $0x201e
557b67:	52                   	push   %edx
557b68:	6a 00                	push   $0x0
557b6a:	ff 37                	push   (%edi)
557b6c:	e8 cf 7f fd ff       	call   0x52fb40
557b71:	83 c4 14             	add    $0x14,%esp
557b74:	85 c0                	test   %eax,%eax
557b76:	75 7e                	jne    0x557bf6
557b78:	8b 87 98 00 00 00    	mov    0x98(%edi),%eax
557b7e:	6a 00                	push   $0x0
557b80:	ff 77 34             	push   0x34(%edi)
557b83:	83 c0 04             	add    $0x4,%eax
557b86:	99                   	cltd
557b87:	52                   	push   %edx
557b88:	50                   	push   %eax
557b89:	e8 72 9f 08 00       	call   0x5e1b00
557b8e:	8b 77 44             	mov    0x44(%edi),%esi
557b91:	8b 4b 18             	mov    0x18(%ebx),%ecx
557b94:	89 45 f4             	mov    %eax,-0xc(%ebp)
557b97:	8b 43 04             	mov    0x4(%ebx),%eax
557b9a:	52                   	push   %edx
557b9b:	ff 75 f4             	push   -0xc(%ebp)
557b9e:	0f c9                	bswap  %ecx
557ba0:	89 45 ec             	mov    %eax,-0x14(%ebp)
557ba3:	8b 06                	mov    (%esi),%eax
557ba5:	89 4d f8             	mov    %ecx,-0x8(%ebp)
557ba8:	8d 4d f8             	lea    -0x8(%ebp),%ecx
557bab:	6a 04                	push   $0x4
557bad:	51                   	push   %ecx
557bae:	8b 40 0c             	mov    0xc(%eax),%eax
557bb1:	56                   	push   %esi
557bb2:	89 55 f0             	mov    %edx,-0x10(%ebp)
557bb5:	ff d0                	call   *%eax