56c7a3:	8b 53 38             	mov    0x38(%ebx),%edx
56c7a6:	03 c2                	add    %edx,%eax
56c7a8:	48                   	dec    %eax
56c7a9:	99                   	cltd
56c7aa:	f7 fd                	idiv   %ebp
56c7ac:	89 04 24             	mov    %eax,(%esp)
56c7af:	8b 43 3c             	mov    0x3c(%ebx),%eax
56c7b2:	85 c0                	test   %eax,%eax
56c7b4:	7c 0e                	jl     0x56c7c4
56c7b6:	8b ce                	mov    %esi,%ecx
56c7b8:	8b 43 10             	mov    0x10(%ebx),%eax
56c7bb:	8b 50 0c             	mov    0xc(%eax),%edx
56c7be:	d3 e2                	shl    %cl,%edx
56c7c0:	85 d2                	test   %edx,%edx
56c7c2:	7f 17                	jg     0x56c7db
56c7c4:	68 fe 01 00 00       	push   $0x1fe
56c7c9:	68 cc 06 6a 00       	push   $0x6a06cc
56c7ce:	68 9e 06 6a 00       	push   $0x6a069e
56c7d3:	e8 68 e3 fe ff       	call   0x55ab40
56c7d8:	83 c4 0c             	add    $0xc,%esp
56c7db:	8b 43 10             	mov    0x10(%ebx),%eax
56c7de:	8b ce                	mov    %esi,%ecx
56c7e0:	8b 53 3c             	mov    0x3c(%ebx),%edx
56c7e3:	8b 68 0c             	mov    0xc(%eax),%ebp
56c7e6:	d3 e5                	shl    %cl,%ebp
56c7e8:	8b c5                	mov    %ebp,%eax
56c7ea:	03 c2                	add    %edx,%eax
56c7ec:	48                   	dec    %eax
56c7ed:	99                   	cltd
56c7ee:	f7 fd                	idiv   %ebp
56c7f0:	89 44 24 04          	mov    %eax,0x4(%esp)
56c7f4:	8b 43 14             	mov    0x14(%ebx),%eax
56c7f7:	8b 68 08             	mov    0x8(%eax),%ebp
56c7fa:	8b 40 0c             	mov    0xc(%eax),%eax
56c7fd:	03 c6                	add    %esi,%eax
56c7ff:	03 ee                	add    %esi,%ebp
56c801:	89 44 24 08          	mov    %eax,0x8(%esp)
56c805:	8b 53 28             	mov    0x28(%ebx),%edx
56c808:	8b 4b 38             	mov    0x38(%ebx),%ecx
56c80b:	3b d1                	cmp    %ecx,%edx
56c80d:	75 1a                	jne    0x56c829
56c80f:	8b ce                	mov    %esi,%ecx
56c811:	8b 04 24             	mov    (%esp),%eax
56c814:	d3 e0                	shl    %cl,%eax
56c816:	8b cd                	mov    %ebp,%ecx
56c818:	ba 01 00 00 00       	mov    $0x1,%edx
56c81d:	d3 e2                	shl    %cl,%edx
56c81f:	8b ca                	mov    %edx,%ecx
56c821:	33 d2                	xor    %edx,%edx
56c823:	f7 f1                	div    %ecx
56c825:	85 d2                	test   %edx,%edx
56c827:	75 1a                	jne    0x56c843
56c829:	8b cd                	mov    %ebp,%ecx
56c82b:	8b 43 10             	mov    0x10(%ebx),%eax
56c82e:	8b 50 08             	mov    0x8(%eax),%edx
56c831:	d3 e2                	shl    %cl,%edx
56c833:	8b 43 28             	mov    0x28(%ebx),%eax
56c836:	8b ca                	mov    %edx,%ecx
56c838:	99                   	cltd
56c839:	f7 f9                	idiv   %ecx
56c83b:	85 d2                	test   %edx,%edx
56c83d:	0f 85 89 02 00 00    	jne    0x56cacc
56c843:	8b 6b 2c             	mov    0x2c(%ebx),%ebp
56c846:	8b 43 3c             	mov    0x3c(%ebx),%eax
56c849:	3b e8                	cmp    %eax,%ebp
56c84b:	75 1d                	jne    0x56c86a
56c84d:	8b ce                	mov    %esi,%ecx
56c84f:	8b 44 24 04          	mov    0x4(%esp),%eax
56c853:	d3 e0                	shl    %cl,%eax
56c855:	8b 4c 24 08          	mov    0x8(%esp),%ecx
56c859:	ba 01 00 00 00       	mov    $0x1,%edx
56c85e:	d3 e2                	shl    %cl,%edx
56c860:	8b ca                	mov    %edx,%ecx
56c862:	33 d2                	xor    %edx,%edx
56c864:	f7 f1                	div    %ecx
56c866:	85 d2                	test   %edx,%edx
56c868:	75 1b                	jne    0x56c885
56c86a:	8b 4c 24 08          	mov    0x8(%esp),%ecx
56c86e:	8b 43 10             	mov    0x10(%ebx),%eax
56c871:	8b 50 0c             	mov    0xc(%eax),%edx
56c874:	d3 e2                	shl    %cl,%edx
56c876:	8b c5                	mov    %ebp,%eax
56c878:	8b ca                	mov    %edx,%ecx
56c87a:	99                   	cltd
56c87b:	f7 f9                	idiv   %ecx
56c87d:	85 d2                	test   %edx,%edx
56c87f:	0f 85 47 02 00 00    	jne    0x56cacc
56c885:	8b 43 28             	mov    0x28(%ebx),%eax
56c888:	85 c0                	test   %eax,%eax
56c88a:	7c 0e                	jl     0x56c89a
56c88c:	8b ce                	mov    %esi,%ecx
56c88e:	8b 53 10             	mov    0x10(%ebx),%edx
56c891:	8b 42 08             	mov    0x8(%edx),%eax
56c894:	d3 e0                	shl    %cl,%eax
56c896:	85 c0                	test   %eax,%eax
56c898:	7f 17                	jg     0x56c8b1
56c89a:	68 06 02 00 00       	push   $0x206
56c89f:	68 01 07 6a 00       	push   $0x6a0701
56c8a4:	68 d8 06 6a 00       	push   $0x6a06d8
56c8a9:	e8 92 e2 fe ff       	call   0x55ab40
56c8ae:	83 c4 0c             	add    $0xc,%esp
56c8b1:	8b ce                	mov    %esi,%ecx
56c8b3:	8b 53 10             	mov    0x10(%ebx),%edx
56c8b6:	8b 6a 08             	mov    0x8(%edx),%ebp
56c8b9:	d3 e5                	shl    %cl,%ebp
56c8bb:	8b c5                	mov    %ebp,%eax
56c8bd:	8b 53 28             	mov    0x28(%ebx),%edx
56c8c0:	03 c2                	add    %edx,%eax
56c8c2:	48                   	dec    %eax
56c8c3:	99                   	cltd
56c8c4:	f7 fd                	idiv   %ebp
56c8c6:	85 c0                	test   %eax,%eax
56c8c8:	7c 0a                	jl     0x56c8d4
56c8ca:	8b 43 14             	mov    0x14(%ebx),%eax
56c8cd:	8b 48 08             	mov    0x8(%eax),%ecx
56c8d0:	85 c9                	test   %ecx,%ecx
56c8d2:	7f 17                	jg     0x56c8eb
56c8d4:	68 06 02 00 00       	push   $0x206
56c8d9:	68 fb 07 6a 00       	push   $0x6a07fb
56c8de:	68 0d 07 6a 00       	push   $0x6a070d
56c8e3:	e8 58 e2 fe ff       	call   0x55ab40
56c8e8:	83 c4 0c             	add    $0xc,%esp
56c8eb:	8b 43 28             	mov    0x28(%ebx),%eax
56c8ee:	85 c0                	test   %eax,%eax
56c8f0:	7c 0e                	jl     0x56c900
56c8f2:	8b ce                	mov    %esi,%ecx
56c8f4:	8b 53 10             	mov    0x10(%ebx),%edx
56c8f7:	8b 42 08             	mov    0x8(%edx),%eax
56c8fa:	d3 e0                	shl    %cl,%eax
56c8fc:	85 c0                	test   %eax,%eax
56c8fe:	7f 17                	jg     0x56c917
56c900:	68 06 02 00 00       	push   $0x206
56c905:	68 30 08 6a 00       	push   $0x6a0830
56c90a:	68 07 08 6a 00       	push   $0x6a0807
56c90f:	e8 2c e2 fe ff       	call   0x55ab40
56c914:	83 c4 0c             	add    $0xc,%esp
56c917:	8b 53 10             	mov    0x10(%ebx),%edx
56c91a:	8b ce                	mov    %esi,%ecx
56c91c:	8b 42 08             	mov    0x8(%edx),%eax
56c91f:	8b 53 28             	mov    0x28(%ebx),%edx
56c922:	d3 e0                	shl    %cl,%eax
56c924:	03 c2                	add    %edx,%eax
56c926:	8b 53 10             	mov    0x10(%ebx),%edx
56c929:	8b ce                	mov    %esi,%ecx
56c92b:	48                   	dec    %eax
56c92c:	8b 52 08             	mov    0x8(%edx),%edx
56c92f:	d3 e2                	shl    %cl,%edx
56c931:	8b ca                	mov    %edx,%ecx
56c933:	99                   	cltd
56c934:	f7 f9                	idiv   %ecx
56c936:	8b 53 14             	mov    0x14(%ebx),%edx
56c939:	8b 4a 08             	mov    0x8(%edx),%ecx
56c93c:	d3 f8                	sar    %cl,%eax
56c93e:	50                   	push   %eax
56c93f:	8b 43 14             	mov    0x14(%ebx),%eax
56c942:	8b 40 08             	mov    0x8(%eax),%eax
56c945:	85 c0                	test   %eax,%eax
56c947:	7f 17                	jg     0x56c960
56c949:	68 07 02 00 00       	push   $0x207
56c94e:	68 66 08 6a 00       	push   $0x6a0866
56c953:	68 3c 08 6a 00       	push   $0x6a083c
56c958:	e8 e3 e1 fe ff       	call   0x55ab40
56c95d:	83 c4 0c             	add    $0xc,%esp
56c960:	8b 53 14             	mov    0x14(%ebx),%edx
56c963:	8b 44 24 04          	mov    0x4(%esp),%eax
56c967:	8b 4a 08             	mov    0x8(%edx),%ecx
56c96a:	5a                   	pop    %edx
56c96b:	d3 e8                	shr    %cl,%eax
56c96d:	2b d0                	sub    %eax,%edx
56c96f:	8b 4b 2c             	mov    0x2c(%ebx),%ecx
56c972:	85 c9                	test   %ecx,%ecx
56c974:	8b ea                	mov    %edx,%ebp
56c976:	7c 0e                	jl     0x56c986
56c978:	8b ce                	mov    %esi,%ecx
56c97a:	8b 43 10             	mov    0x10(%ebx),%eax
56c97d:	8b 50 0c             	mov    0xc(%eax),%edx
56c980:	d3 e2                	shl    %cl,%edx
56c982:	85 d2                	test   %edx,%edx
56c984:	7f 17                	jg     0x56c99d
56c986:	68 09 02 00 00       	push   $0x209
56c98b:	68 9b 08 6a 00       	push   $0x6a089b
56c990:	68 72 08 6a 00       	push   $0x6a0872
56c995:	e8 a6 e1 fe ff       	call   0x55ab40
56c99a:	83 c4 0c             	add    $0xc,%esp
56c99d:	8b 43 10             	mov    0x10(%ebx),%eax
56c9a0:	8b ce                	mov    %esi,%ecx
56c9a2:	8b 53 2c             	mov    0x2c(%ebx),%edx
56c9a5:	8b 40 0c             	mov    0xc(%eax),%eax
56c9a8:	d3 e0                	shl    %cl,%eax
56c9aa:	03 c2                	add    %edx,%eax
56c9ac:	8b 53 10             	mov    0x10(%ebx),%edx
56c9af:	8b ce                	mov    %esi,%ecx
56c9b1:	48                   	dec    %eax
56c9b2:	8b 52 0c             	mov    0xc(%edx),%edx
56c9b5:	d3 e2                	shl    %cl,%edx
56c9b7:	8b ca                	mov    %edx,%ecx
56c9b9:	99                   	cltd
56c9ba:	f7 f9                	idiv   %ecx
56c9bc:	85 c0                	test   %eax,%eax
56c9be:	7c 0a                	jl     0x56c9ca
56c9c0:	8b 43 14             	mov    0x14(%ebx),%eax
56c9c3:	8b 40 0c             	mov    0xc(%eax),%eax
56c9c6:	85 c0                	test   %eax,%eax
56c9c8:	7f 17                	jg     0x56c9e1
56c9ca:	68 09 02 00 00       	push   $0x209
56c9cf:	68 96 09 6a 00       	push   $0x6a0996
56c9d4:	68 a7 08 6a 00       	push   $0x6a08a7
56c9d9:	e8 62 e1 fe ff       	call   0x55ab40
56c9de:	83 c4 0c             	add    $0xc,%esp
56c9e1:	8b 53 2c             	mov    0x2c(%ebx),%edx
56c9e4:	85 d2                	test   %edx,%edx
56c9e6:	7c 0e                	jl     0x56c9f6
56c9e8:	8b ce                	mov    %esi,%ecx
56c9ea:	8b 43 10             	mov    0x10(%ebx),%eax
56c9ed:	8b 50 0c             	mov    0xc(%eax),%edx
56c9f0:	d3 e2                	shl    %cl,%edx
56c9f2:	85 d2                	test   %edx,%edx
56c9f4:	7f 17                	jg     0x56ca0d
56c9f6:	68 09 02 00 00       	push   $0x209
56c9fb:	68 cb 09 6a 00       	push   $0x6a09cb
56ca00:	68 a2 09 6a 00       	push   $0x6a09a2
56ca05:	e8 36 e1 fe ff       	call   0x55ab40
56ca0a:	83 c4 0c             	add    $0xc,%esp
56ca0d:	8b 43 10             	mov    0x10(%ebx),%eax
56ca10:	8b ce                	mov    %esi,%ecx
56ca12:	8b 53 2c             	mov    0x2c(%ebx),%edx
56ca15:	8b 40 0c             	mov    0xc(%eax),%eax
56ca18:	d3 e0                	shl    %cl,%eax
56ca1a:	03 c2                	add    %edx,%eax
56ca1c:	8b 53 10             	mov    0x10(%ebx),%edx
56ca1f:	8b ce                	mov    %esi,%ecx
56ca21:	48                   	dec    %eax
56ca22:	8b 52 0c             	mov    0xc(%edx),%edx
56ca25:	d3 e2                	shl    %cl,%edx
56ca27:	8b ca                	mov    %edx,%ecx
56ca29:	99                   	cltd
56ca2a:	f7 f9                	idiv   %ecx
56ca2c:	8b 53 14             	mov    0x14(%ebx),%edx
56ca2f:	8b 4a 0c             	mov    0xc(%edx),%ecx
56ca32:	d3 f8                	sar    %cl,%eax
56ca34:	50                   	push   %eax
56ca35:	8b 43 14             	mov    0x14(%ebx),%eax
56ca38:	8b 40 0c             	mov    0xc(%eax),%eax
56ca3b:	85 c0                	test   %eax,%eax
56ca3d:	7f 17                	jg     0x56ca56
56ca3f:	68 0a 02 00 00       	push   $0x20a
56ca44:	68 02 0a 6a 00       	push   $0x6a0a02
56ca49:	68 d7 09 6a 00       	push   $0x6a09d7
56ca4e:	e8 ed e0 fe ff       	call   0x55ab40
56ca53:	83 c4 0c             	add    $0xc,%esp
56ca56:	8b 53 14             	mov    0x14(%ebx),%edx
56ca59:	8b 44 24 08          	mov    0x8(%esp),%eax
56ca5d:	8b 4a 0c             	mov    0xc(%edx),%ecx
56ca60:	5a                   	pop    %edx
56ca61:	d3 e8                	shr    %cl,%eax
56ca63:	92                   	xchg   %eax,%edx
56ca64:	2b c2                	sub    %edx,%eax
56ca66:	8b 53 14             	mov    0x14(%ebx),%edx
56ca69:	8b 52 10             	mov    0x10(%edx),%edx
56ca6c:	0f af d0             	imul   %eax,%edx
56ca6f:	03 d5                	add    %ebp,%edx
56ca71:	89 53 20             	mov    %edx,0x20(%ebx)
56ca74:	8b 43 14             	mov    0x14(%ebx),%eax
56ca77:	8b 08                	mov    (%eax),%ecx
56ca79:	3b d1                	cmp    %ecx,%edx
56ca7b:	7c 17                	jl     0x56ca94
56ca7d:	68 0f 02 00 00       	push   $0x20f
56ca82:	68 2e 0a 6a 00       	push   $0x6a0a2e
56ca87:	68 0e 0a 6a 00       	push   $0x6a0a0e
56ca8c:	e8 af e0 fe ff       	call   0x55ab40
56ca91:	83 c4 0c             	add    $0xc,%esp
56ca94:	33 c0                	xor    %eax,%eax
56ca96:	89 43 24             	mov    %eax,0x24(%ebx)
56ca99:	eb 20                	jmp    0x56cabb
56ca9b:	8b 53 14             	mov    0x14(%ebx),%edx
56ca9e:	8b 4b 20             	mov    0x20(%ebx),%ecx
56caa1:	c1 e1 02             	shl    $0x2,%ecx
56caa4:	8b 52 04             	mov    0x4(%edx),%edx
56caa7:	03 d1                	add    %ecx,%edx
56caa9:	8b 0a                	mov    (%edx),%ecx
56caab:	3b c1                	cmp    %ecx,%eax
56caad:	7c 09                	jl     0x56cab8
56caaf:	ff 02                	incl   (%edx)
56cab1:	33 c0                	xor    %eax,%eax
56cab3:	e9 88 00 00 00       	jmp    0x56cb40
56cab8:	ff 43 24             	incl   0x24(%ebx)
56cabb:	8b 43 24             	mov    0x24(%ebx),%eax
56cabe:	8b 13                	mov    (%ebx),%edx
56cac0:	3b c2                	cmp    %edx,%eax
56cac2:	7d 08                	jge    0x56cacc
56cac4:	0f b7 4f 08          	movzwl 0x8(%edi),%ecx
56cac8:	3b c1                	cmp    %ecx,%eax
56caca:	7c cf                	jl     0x56ca9b
56cacc:	ff 43 1c             	incl   0x1c(%ebx)
56cacf:	83 43 14 14          	addl   $0x14,0x14(%ebx)
56cad3:	8b 53 10             	mov    0x10(%ebx),%edx
56cad6:	8b 12                	mov    (%edx),%edx
56cad8:	8b 43 1c             	mov    0x1c(%ebx),%eax
56cadb:	3b d0                	cmp    %eax,%edx
56cadd:	7e 0d                	jle    0x56caec
56cadf:	33 c9                	xor    %ecx,%ecx
56cae1:	8a 4f 02             	mov    0x2(%edi),%cl
56cae4:	3b c1                	cmp    %ecx,%eax
56cae6:	0f 8c 6d fc ff ff    	jl     0x56c759
56caec:	8b 43 28             	mov    0x28(%ebx),%eax
56caef:	8b 4b 30             	mov    0x30(%ebx),%ecx
56caf2:	99                   	cltd
56caf3:	f7 f9                	idiv   %ecx
56caf5:	2b ca                	sub    %edx,%ecx
56caf7:	01 4b 28             	add    %ecx,0x28(%ebx)
56cafa:	8b 43 28             	mov    0x28(%ebx),%eax
56cafd:	8b 53 40             	mov    0x40(%ebx),%edx
56cb00:	3b c2                	cmp    %edx,%eax
56cb02:	0f 8c 33 fc ff ff    	jl     0x56c73b
56cb08:	8b 43 2c             	mov    0x2c(%ebx),%eax
56cb0b:	8b 4b 34             	mov    0x34(%ebx),%ecx
56cb0e:	99                   	cltd
56cb0f:	f7 7b 34             	idivl  0x34(%ebx)
56cb12:	2b ca                	sub    %edx,%ecx
56cb14:	01 4b 2c             	add    %ecx,0x2c(%ebx)
56cb17:	8b 43 2c             	mov    0x2c(%ebx),%eax
56cb1a:	8b 53 44             	mov    0x44(%ebx),%edx
56cb1d:	3b c2                	cmp    %edx,%eax
56cb1f:	0f 8c 0b fc ff ff    	jl     0x56c730
56cb25:	ff 43 18             	incl   0x18(%ebx)
56cb28:	83 43 10 10          	addl   $0x10,0x10(%ebx)
56cb2c:	0f b7 4f 06          	movzwl 0x6(%edi),%ecx
56cb30:	8b 43 18             	mov    0x18(%ebx),%eax
56cb33:	3b c8                	cmp    %eax,%ecx
56cb35:	0f 8f fb fa ff ff    	jg     0x56c636
56cb3b:	b8 01 00 00 00       	mov    $0x1,%eax
56cb40:	83 c4 0c             	add    $0xc,%esp
56cb43:	5d                   	pop    %ebp
56cb44:	5f                   	pop    %edi
56cb45:	5e                   	pop    %esi
56cb46:	5b                   	pop    %ebx
56cb47:	c3                   	ret
56cb48:	8b 50 04             	mov    0x4(%eax),%edx
56cb4b:	85 d2                	test   %edx,%edx
56cb4d:	74 07                	je     0x56cb56
56cb4f:	8b c2                	mov    %edx,%eax
56cb51:	e8 2e b8 00 00       	call   0x578384
56cb56:	c3                   	ret
56cb57:	90                   	nop
56cb58:	53                   	push   %ebx
56cb59:	56                   	push   %esi
56cb5a:	57                   	push   %edi
56cb5b:	8b f8                	mov    %eax,%edi
56cb5d:	8b 47 04             	mov    0x4(%edi),%eax
56cb60:	85 c0                	test   %eax,%eax