56f811:	8b fa                	mov    %edx,%edi
56f813:	33 db                	xor    %ebx,%ebx
56f815:	56                   	push   %esi
56f816:	ff 75 10             	push   0x10(%ebp)
56f819:	e8 22 3a f4 ff       	call   0x4b3240
56f81e:	83 c4 08             	add    $0x8,%esp
56f821:	4e                   	dec    %esi
56f822:	83 ef 01             	sub    $0x1,%edi
56f825:	8d 1c 58             	lea    (%eax,%ebx,2),%ebx
56f828:	79 eb                	jns    0x56f815
56f82a:	8b 7d ec             	mov    -0x14(%ebp),%edi
56f82d:	89 5d d8             	mov    %ebx,-0x28(%ebp)
56f830:	8b 5d f0             	mov    -0x10(%ebp),%ebx
56f833:	8b 4d d8             	mov    -0x28(%ebp),%ecx
56f836:	53                   	push   %ebx
56f837:	51                   	push   %ecx
56f838:	ff 75 f4             	push   -0xc(%ebp)
56f83b:	8d 45 c0             	lea    -0x40(%ebp),%eax
56f83e:	ff 75 f8             	push   -0x8(%ebp)
56f841:	50                   	push   %eax
56f842:	e8 c9 08 00 00       	call   0x570110
56f847:	83 c4 14             	add    $0x14,%esp
56f84a:	85 c0                	test   %eax,%eax
56f84c:	0f 84 a8 00 00 00    	je     0x56f8fa
56f852:	85 f6                	test   %esi,%esi
56f854:	0f 88 7e 00 00 00    	js     0x56f8d8
56f85a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
56f860:	8b 45 f0             	mov    -0x10(%ebp),%eax
56f863:	33 db                	xor    %ebx,%ebx
56f865:	33 ff                	xor    %edi,%edi
56f867:	85 c0                	test   %eax,%eax
56f869:	7e 35                	jle    0x56f8a0
56f86b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
56f870:	ff 75 18             	push   0x18(%ebp)
56f873:	8d 45 c0             	lea    -0x40(%ebp),%eax
56f876:	ff 75 ec             	push   -0x14(%ebp)
56f879:	50                   	push   %eax
56f87a:	50                   	push   %eax
56f87b:	50                   	push   %eax
56f87c:	e8 9f 16 00 00       	call   0x570f20
56f881:	83 c4 14             	add    $0x14,%esp
56f884:	85 c0                	test   %eax,%eax
56f886:	74 72                	je     0x56f8fa
56f888:	56                   	push   %esi
56f889:	ff 75 10             	push   0x10(%ebp)
56f88c:	e8 af 39 f4 ff       	call   0x4b3240
56f891:	47                   	inc    %edi
56f892:	83 c4 08             	add    $0x8,%esp
56f895:	4e                   	dec    %esi
56f896:	8d 1c 58             	lea    (%eax,%ebx,2),%ebx
56f899:	8b 45 f0             	mov    -0x10(%ebp),%eax
56f89c:	3b f8                	cmp    %eax,%edi
56f89e:	7c d0                	jl     0x56f870
56f8a0:	50                   	push   %eax
56f8a1:	53                   	push   %ebx
56f8a2:	ff 75 f4             	push   -0xc(%ebp)
56f8a5:	8d 45 a0             	lea    -0x60(%ebp),%eax
56f8a8:	ff 75 f8             	push   -0x8(%ebp)
56f8ab:	50                   	push   %eax
56f8ac:	e8 5f 08 00 00       	call   0x570110
56f8b1:	83 c4 14             	add    $0x14,%esp
56f8b4:	85 c0                	test   %eax,%eax
56f8b6:	74 42                	je     0x56f8fa
56f8b8:	ff 75 18             	push   0x18(%ebp)
56f8bb:	8b 7d ec             	mov    -0x14(%ebp),%edi
56f8be:	8d 45 a0             	lea    -0x60(%ebp),%eax
56f8c1:	57                   	push   %edi
56f8c2:	50                   	push   %eax
56f8c3:	8d 45 c0             	lea    -0x40(%ebp),%eax
56f8c6:	50                   	push   %eax
56f8c7:	50                   	push   %eax
56f8c8:	e8 53 16 00 00       	call   0x570f20
56f8cd:	83 c4 14             	add    $0x14,%esp
56f8d0:	85 c0                	test   %eax,%eax
56f8d2:	74 26                	je     0x56f8fa
56f8d4:	85 f6                	test   %esi,%esi
56f8d6:	79 88                	jns    0x56f860
56f8d8:	ff 75 18             	push   0x18(%ebp)
56f8db:	8d 45 c0             	lea    -0x40(%ebp),%eax
56f8de:	57                   	push   %edi
56f8df:	50                   	push   %eax
56f8e0:	ff 75 08             	push   0x8(%ebp)
56f8e3:	e8 38 13 00 00       	call   0x570c20
56f8e8:	33 c9                	xor    %ecx,%ecx
56f8ea:	83 c4 10             	add    $0x10,%esp
56f8ed:	85 c0                	test   %eax,%eax
56f8ef:	b8 01 00 00 00       	mov    $0x1,%eax
56f8f4:	0f 45 c8             	cmovne %eax,%ecx
56f8f7:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
56f8fa:	83 7d 1c 00          	cmpl   $0x0,0x1c(%ebp)
56f8fe:	75 10                	jne    0x56f910
56f900:	8b 7d ec             	mov    -0x14(%ebp),%edi
56f903:	85 ff                	test   %edi,%edi
56f905:	74 09                	je     0x56f910
56f907:	57                   	push   %edi
56f908:	e8 33 10 00 00       	call   0x570940
56f90d:	83 c4 04             	add    $0x4,%esp
56f910:	8b 45 f4             	mov    -0xc(%ebp),%eax
56f913:	85 c0                	test   %eax,%eax
56f915:	74 1c                	je     0x56f933
56f917:	ff 75 d4             	push   -0x2c(%ebp)
56f91a:	50                   	push   %eax
56f91b:	e8 30 0a f3 ff       	call   0x4a0350
56f920:	8b 45 dc             	mov    -0x24(%ebp),%eax
56f923:	83 c4 08             	add    $0x8,%esp
56f926:	85 c0                	test   %eax,%eax
56f928:	74 09                	je     0x56f933
56f92a:	50                   	push   %eax
56f92b:	e8 00 08 f3 ff       	call   0x4a0130
56f930:	83 c4 04             	add    $0x4,%esp
56f933:	ff 75 18             	push   0x18(%ebp)
56f936:	e8 15 84 f6 ff       	call   0x4d7d50
56f93b:	8b 45 b4             	mov    -0x4c(%ebp),%eax
56f93e:	83 c4 04             	add    $0x4,%esp
56f941:	8d 65 94             	lea    -0x6c(%ebp),%esp
56f944:	5f                   	pop    %edi
56f945:	5e                   	pop    %esi
56f946:	5b                   	pop    %ebx
56f947:	8b 4d fc             	mov    -0x4(%ebp),%ecx
56f94a:	33 cd                	xor    %ebp,%ecx
56f94c:	e8 89 1b 07 00       	call   0x5e14da
56f951:	8b e5                	mov    %ebp,%esp
56f953:	5d                   	pop    %ebp
56f954:	c3                   	ret
56f955:	68 cd 02 00 00       	push   $0x2cd
56f95a:	68 88 c9 6b 00       	push   $0x6bc988
56f95f:	6a 66                	push   $0x66
56f961:	6a 7c                	push   $0x7c
56f963:	6a 03                	push   $0x3
56f965:	e8 36 1b f3 ff       	call   0x4a14a0
56f96a:	83 c4 14             	add    $0x14,%esp
56f96d:	33 c0                	xor    %eax,%eax
56f96f:	8d 65 94             	lea    -0x6c(%ebp),%esp
56f972:	5f                   	pop    %edi
56f973:	5e                   	pop    %esi
56f974:	5b                   	pop    %ebx
56f975:	8b 4d fc             	mov    -0x4(%ebp),%ecx
56f978:	33 cd                	xor    %ebp,%ecx
56f97a:	e8 5b 1b 07 00       	call   0x5e14da
56f97f:	8b e5                	mov    %ebp,%esp
56f981:	5d                   	pop    %ebp
56f982:	c3                   	ret
56f983:	cc                   	int3
56f984:	cc                   	int3
56f985:	cc                   	int3
56f986:	cc                   	int3
56f987:	cc                   	int3
56f988:	cc                   	int3
56f989:	cc                   	int3
56f98a:	cc                   	int3
56f98b:	cc                   	int3
56f98c:	cc                   	int3
56f98d:	cc                   	int3
56f98e:	cc                   	int3
56f98f:	cc                   	int3
56f990:	b8 14 00 00 00       	mov    $0x14,%eax
56f995:	e8 56 1b 07 00       	call   0x5e14f0
56f99a:	55                   	push   %ebp
56f99b:	57                   	push   %edi
56f99c:	8b 7c 24 28          	mov    0x28(%esp),%edi
56f9a0:	33 ed                	xor    %ebp,%ebp
56f9a2:	89 6c 24 18          	mov    %ebp,0x18(%esp)
56f9a6:	f6 47 10 04          	testb  $0x4,0x10(%edi)
56f9aa:	74 21                	je     0x56f9cd
56f9ac:	68 c6 04 00 00       	push   $0x4c6
56f9b1:	68 88 c9 6b 00       	push   $0x6bc988
56f9b6:	6a 42                	push   $0x42
56f9b8:	6a 75                	push   $0x75
56f9ba:	6a 03                	push   $0x3
56f9bc:	e8 df 1a f3 ff       	call   0x4a14a0
56f9c1:	83 c4 14             	add    $0x14,%esp
56f9c4:	83 c8 ff             	or     $0xffffffff,%eax
56f9c7:	5f                   	pop    %edi
56f9c8:	5d                   	pop    %ebp
56f9c9:	83 c4 14             	add    $0x14,%esp
56f9cc:	c3                   	ret
56f9cd:	53                   	push   %ebx
56f9ce:	8b 5c 24 30          	mov    0x30(%esp),%ebx
56f9d2:	8b 4b 04             	mov    0x4(%ebx),%ecx
56f9d5:	85 c9                	test   %ecx,%ecx
56f9d7:	0f 8e 41 03 00 00    	jle    0x56fd1e
56f9dd:	8b 03                	mov    (%ebx),%eax
56f9df:	8b 00                	mov    (%eax),%eax
56f9e1:	89 44 24 18          	mov    %eax,0x18(%esp)
56f9e5:	a8 01                	test   $0x1,%al
56f9e7:	0f 84 31 03 00 00    	je     0x56fd1e
56f9ed:	56                   	push   %esi
56f9ee:	83 f9 01             	cmp    $0x1,%ecx
56f9f1:	75 12                	jne    0x56fa05
56f9f3:	8b 44 24 2c          	mov    0x2c(%esp),%eax
56f9f7:	33 d2                	xor    %edx,%edx
56f9f9:	f7 74 24 1c          	divl   0x1c(%esp)
56f9fd:	8b f2                	mov    %edx,%esi
56f9ff:	89 54 24 18          	mov    %edx,0x18(%esp)
56fa03:	eb 08                	jmp    0x56fa0d
56fa05:	8b 74 24 2c          	mov    0x2c(%esp),%esi
56fa09:	89 74 24 18          	mov    %esi,0x18(%esp)
56fa0d:	57                   	push   %edi
56fa0e:	e8 5d 39 f4 ff       	call   0x4b3370
56fa13:	83 c4 04             	add    $0x4,%esp
56fa16:	89 44 24 1c          	mov    %eax,0x1c(%esp)
56fa1a:	85 c0                	test   %eax,%eax
56fa1c:	75 47                	jne    0x56fa65
56fa1e:	83 7b 04 01          	cmpl   $0x1,0x4(%ebx)
56fa22:	75 29                	jne    0x56fa4d
56fa24:	8b 03                	mov    (%ebx),%eax
56fa26:	83 38 01             	cmpl   $0x1,(%eax)
56fa29:	75 22                	jne    0x56fa4d
56fa2b:	39 6b 0c             	cmp    %ebp,0xc(%ebx)
56fa2e:	75 1d                	jne    0x56fa4d
56fa30:	6a 00                	push   $0x0
56fa32:	ff 74 24 2c          	push   0x2c(%esp)
56fa36:	be 01 00 00 00       	mov    $0x1,%esi
56fa3b:	e8 b0 3a f4 ff       	call   0x4b34f0
56fa40:	83 c4 08             	add    $0x8,%esp
56fa43:	8b c6                	mov    %esi,%eax
56fa45:	5e                   	pop    %esi
56fa46:	5b                   	pop    %ebx
56fa47:	5f                   	pop    %edi
56fa48:	5d                   	pop    %ebp
56fa49:	83 c4 14             	add    $0x14,%esp
56fa4c:	c3                   	ret
56fa4d:	6a 01                	push   $0x1
56fa4f:	ff 74 24 2c          	push   0x2c(%esp)
56fa53:	e8 98 3a f4 ff       	call   0x4b34f0
56fa58:	83 c4 08             	add    $0x8,%esp
56fa5b:	8b f0                	mov    %eax,%esi
56fa5d:	5e                   	pop    %esi
56fa5e:	5b                   	pop    %ebx
56fa5f:	5f                   	pop    %edi
56fa60:	5d                   	pop    %ebp
56fa61:	83 c4 14             	add    $0x14,%esp
56fa64:	c3                   	ret
56fa65:	85 f6                	test   %esi,%esi
56fa67:	75 18                	jne    0x56fa81
56fa69:	56                   	push   %esi
56fa6a:	ff 74 24 2c          	push   0x2c(%esp)
56fa6e:	e8 7d 3a f4 ff       	call   0x4b34f0
56fa73:	83 c4 08             	add    $0x8,%esp
56fa76:	8d 46 01             	lea    0x1(%esi),%eax
56fa79:	5e                   	pop    %esi
56fa7a:	5b                   	pop    %ebx
56fa7b:	5f                   	pop    %edi
56fa7c:	5d                   	pop    %ebp
56fa7d:	83 c4 14             	add    $0x14,%esp
56fa80:	c3                   	ret
56fa81:	8b 5c 24 38          	mov    0x38(%esp),%ebx
56fa85:	53                   	push   %ebx
56fa86:	e8 15 84 f6 ff       	call   0x4d7ea0
56fa8b:	53                   	push   %ebx
56fa8c:	e8 2f 83 f6 ff       	call   0x4d7dc0
56fa91:	53                   	push   %ebx
56fa92:	8b f0                	mov    %eax,%esi
56fa94:	e8 27 83 f6 ff       	call   0x4d7dc0
56fa99:	53                   	push   %ebx
56fa9a:	8b f8                	mov    %eax,%edi
56fa9c:	e8 1f 83 f6 ff       	call   0x4d7dc0
56faa1:	83 c4 10             	add    $0x10,%esp
56faa4:	89 44 24 14          	mov    %eax,0x14(%esp)
56faa8:	85 f6                	test   %esi,%esi
56faaa:	0f 84 45 02 00 00    	je     0x56fcf5
56fab0:	85 ff                	test   %edi,%edi
56fab2:	0f 84 3d 02 00 00    	je     0x56fcf5
56fab8:	85 c0                	test   %eax,%eax
56faba:	0f 84 35 02 00 00    	je     0x56fcf5
56fac0:	8b 44 24 3c          	mov    0x3c(%esp),%eax
56fac4:	85 c0                	test   %eax,%eax
56fac6:	74 04                	je     0x56facc
56fac8:	8b e8                	mov    %eax,%ebp
56faca:	eb 25                	jmp    0x56faf1
56facc:	e8 af 0e 00 00       	call   0x570980
56fad1:	8b e8                	mov    %eax,%ebp
56fad3:	85 ed                	test   %ebp,%ebp
56fad5:	0f 84 2e 02 00 00    	je     0x56fd09
56fadb:	53                   	push   %ebx
56fadc:	ff 74 24 38          	push   0x38(%esp)
56fae0:	55                   	push   %ebp
56fae1:	e8 fa 0e 00 00       	call   0x5709e0
56fae6:	83 c4 0c             	add    $0xc,%esp
56fae9:	85 c0                	test   %eax,%eax
56faeb:	0f 84 0b 02 00 00    	je     0x56fcfc
56faf1:	83 44 24 1c fe       	addl   $0xfffffffe,0x1c(%esp)
56faf6:	b9 01 00 00 00       	mov    $0x1,%ecx
56fafb:	8b 74 24 18          	mov    0x18(%esp),%esi
56faff:	89 4c 24 10          	mov    %ecx,0x10(%esp)
56fb03:	0f 88 65 01 00 00    	js     0x56fc6e
56fb09:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
56fb10:	8b de                	mov    %esi,%ebx
56fb12:	33 d2                	xor    %edx,%edx
56fb14:	0f af de             	imul   %esi,%ebx
56fb17:	8b c3                	mov    %ebx,%eax
56fb19:	f7 f6                	div    %esi
56fb1b:	3b c6                	cmp    %esi,%eax
56fb1d:	74 7a                	je     0x56fb99
56fb1f:	56                   	push   %esi
56fb20:	57                   	push   %edi
56fb21:	85 c9                	test   %ecx,%ecx
56fb23:	74 34                	je     0x56fb59
56fb25:	e8 c6 39 f4 ff       	call   0x4b34f0
56fb2a:	8b 5c 24 40          	mov    0x40(%esp),%ebx
56fb2e:	83 c4 08             	add    $0x8,%esp
56fb31:	85 c0                	test   %eax,%eax
56fb33:	0f 84 bc 01 00 00    	je     0x56fcf5
56fb39:	53                   	push   %ebx
56fb3a:	55                   	push   %ebp
56fb3b:	8d 45 04             	lea    0x4(%ebp),%eax
56fb3e:	50                   	push   %eax
56fb3f:	57                   	push   %edi
56fb40:	57                   	push   %edi
56fb41:	e8 da 13 00 00       	call   0x570f20
56fb46:	83 c4 14             	add    $0x14,%esp
56fb49:	85 c0                	test   %eax,%eax
56fb4b:	0f 84 a4 01 00 00    	je     0x56fcf5
56fb51:	33 c9                	xor    %ecx,%ecx
56fb53:	89 4c 24 10          	mov    %ecx,0x10(%esp)
56fb57:	eb 3b                	jmp    0x56fb94
56fb59:	e8 62 3e f4 ff       	call   0x4b39c0
56fb5e:	8b 5c 24 40          	mov    0x40(%esp),%ebx
56fb62:	83 c4 08             	add    $0x8,%esp
56fb65:	85 c0                	test   %eax,%eax
56fb67:	0f 84 88 01 00 00    	je     0x56fcf5
56fb6d:	8b 74 24 14          	mov    0x14(%esp),%esi
56fb71:	53                   	push   %ebx
56fb72:	ff 74 24 38          	push   0x38(%esp)
56fb76:	57                   	push   %edi
56fb77:	56                   	push   %esi
56fb78:	6a 00                	push   $0x0
56fb7a:	e8 21 08 00 00       	call   0x5703a0
56fb7f:	83 c4 14             	add    $0x14,%esp
56fb82:	85 c0                	test   %eax,%eax
56fb84:	0f 84 6b 01 00 00    	je     0x56fcf5
56fb8a:	8b 4c 24 10          	mov    0x10(%esp),%ecx
56fb8e:	89 7c 24 14          	mov    %edi,0x14(%esp)
56fb92:	8b fe                	mov    %esi,%edi
56fb94:	bb 01 00 00 00       	mov    $0x1,%ebx
56fb99:	8b f3                	mov    %ebx,%esi
56fb9b:	85 c9                	test   %ecx,%ecx
56fb9d:	75 18                	jne    0x56fbb7
56fb9f:	ff 74 24 38          	push   0x38(%esp)
56fba3:	55                   	push   %ebp
56fba4:	57                   	push   %edi
56fba5:	57                   	push   %edi
56fba6:	57                   	push   %edi
56fba7:	e8 74 13 00 00       	call   0x570f20
56fbac:	83 c4 14             	add    $0x14,%esp
56fbaf:	85 c0                	test   %eax,%eax
56fbb1:	0f 84 3a 01 00 00    	je     0x56fcf1
56fbb7:	ff 74 24 1c          	push   0x1c(%esp)
56fbbb:	ff 74 24 34          	push   0x34(%esp)
56fbbf:	e8 7c 36 f4 ff       	call   0x4b3240