56d667:	81 fa 80 08 00 00    	cmp    $0x880,%edx
56d66d:	0f 94 c2             	sete   %dl
56d670:	83 e2 01             	and    $0x1,%edx
56d673:	03 ca                	add    %edx,%ecx
56d675:	49                   	dec    %ecx
56d676:	7d 2c                	jge    0x56d6a4
56d678:	8b c8                	mov    %eax,%ecx
56d67a:	81 e1 20 02 00 00    	and    $0x220,%ecx
56d680:	81 f9 20 02 00 00    	cmp    $0x220,%ecx
56d686:	8b c8                	mov    %eax,%ecx
56d688:	0f 94 c2             	sete   %dl
56d68b:	83 e2 01             	and    $0x1,%edx
56d68e:	81 e1 80 08 00 00    	and    $0x880,%ecx
56d694:	81 f9 80 08 00 00    	cmp    $0x880,%ecx
56d69a:	0f 94 c1             	sete   %cl
56d69d:	83 e1 01             	and    $0x1,%ecx
56d6a0:	03 d1                	add    %ecx,%edx
56d6a2:	eb 05                	jmp    0x56d6a9
56d6a4:	ba 01 00 00 00       	mov    $0x1,%edx
56d6a9:	2b f2                	sub    %edx,%esi
56d6ab:	8b d0                	mov    %eax,%edx
56d6ad:	81 e2 10 01 00 00    	and    $0x110,%edx
56d6b3:	83 fa 10             	cmp    $0x10,%edx
56d6b6:	8b d0                	mov    %eax,%edx
56d6b8:	0f 94 c1             	sete   %cl
56d6bb:	83 e1 01             	and    $0x1,%ecx
56d6be:	81 e2 40 04 00 00    	and    $0x440,%edx
56d6c4:	83 fa 40             	cmp    $0x40,%edx
56d6c7:	0f 94 c2             	sete   %dl
56d6ca:	83 e2 01             	and    $0x1,%edx
56d6cd:	03 ca                	add    %edx,%ecx
56d6cf:	49                   	dec    %ecx
56d6d0:	7d 26                	jge    0x56d6f8
56d6d2:	8b c8                	mov    %eax,%ecx
56d6d4:	8b d0                	mov    %eax,%edx
56d6d6:	81 e1 10 01 00 00    	and    $0x110,%ecx
56d6dc:	83 f9 10             	cmp    $0x10,%ecx
56d6df:	0f 94 c3             	sete   %bl
56d6e2:	83 e3 01             	and    $0x1,%ebx
56d6e5:	81 e2 40 04 00 00    	and    $0x440,%edx
56d6eb:	83 fa 40             	cmp    $0x40,%edx
56d6ee:	0f 94 c1             	sete   %cl
56d6f1:	83 e1 01             	and    $0x1,%ecx
56d6f4:	03 d9                	add    %ecx,%ebx
56d6f6:	eb 05                	jmp    0x56d6fd
56d6f8:	bb 01 00 00 00       	mov    $0x1,%ebx
56d6fd:	8b d0                	mov    %eax,%edx
56d6ff:	81 e2 10 01 00 00    	and    $0x110,%edx
56d705:	81 fa 10 01 00 00    	cmp    $0x110,%edx
56d70b:	8b d0                	mov    %eax,%edx
56d70d:	0f 94 c1             	sete   %cl
56d710:	83 e1 01             	and    $0x1,%ecx
56d713:	81 e2 40 04 00 00    	and    $0x440,%edx
56d719:	81 fa 40 04 00 00    	cmp    $0x440,%edx
56d71f:	0f 94 c2             	sete   %dl
56d722:	83 e2 01             	and    $0x1,%edx
56d725:	03 ca                	add    %edx,%ecx
56d727:	49                   	dec    %ecx
56d728:	7d 28                	jge    0x56d752
56d72a:	8b c8                	mov    %eax,%ecx
56d72c:	81 e1 10 01 00 00    	and    $0x110,%ecx
56d732:	81 f9 10 01 00 00    	cmp    $0x110,%ecx
56d738:	0f 94 c2             	sete   %dl
56d73b:	83 e2 01             	and    $0x1,%edx
56d73e:	25 40 04 00 00       	and    $0x440,%eax
56d743:	3d 40 04 00 00       	cmp    $0x440,%eax
56d748:	0f 94 c0             	sete   %al
56d74b:	83 e0 01             	and    $0x1,%eax
56d74e:	03 d0                	add    %eax,%edx
56d750:	eb 05                	jmp    0x56d757
56d752:	ba 01 00 00 00       	mov    $0x1,%edx
56d757:	2b da                	sub    %edx,%ebx
56d759:	83 fe ff             	cmp    $0xffffffff,%esi
56d75c:	7c 0f                	jl     0x56d76d
56d75e:	83 fe 01             	cmp    $0x1,%esi
56d761:	7f 0a                	jg     0x56d76d
56d763:	83 fb ff             	cmp    $0xffffffff,%ebx
56d766:	7c 05                	jl     0x56d76d
56d768:	83 fb 01             	cmp    $0x1,%ebx
56d76b:	7e 17                	jle    0x56d784
56d76d:	68 c7 01 00 00       	push   $0x1c7
56d772:	68 38 0b 6a 00       	push   $0x6a0b38
56d777:	68 0d 0b 6a 00       	push   $0x6a0b0d
56d77c:	e8 bf d3 fe ff       	call   0x55ab40
56d781:	83 c4 0c             	add    $0xc,%esp
56d784:	85 f6                	test   %esi,%esi
56d786:	7d 04                	jge    0x56d78c
56d788:	f7 de                	neg    %esi
56d78a:	f7 db                	neg    %ebx
56d78c:	85 f6                	test   %esi,%esi
56d78e:	75 1b                	jne    0x56d7ab
56d790:	83 fb ff             	cmp    $0xffffffff,%ebx
56d793:	75 07                	jne    0x56d79c
56d795:	bf 01 00 00 00       	mov    $0x1,%edi
56d79a:	eb 2e                	jmp    0x56d7ca
56d79c:	85 db                	test   %ebx,%ebx
56d79e:	75 04                	jne    0x56d7a4
56d7a0:	33 ff                	xor    %edi,%edi
56d7a2:	eb 26                	jmp    0x56d7ca
56d7a4:	bf 01 00 00 00       	mov    $0x1,%edi
56d7a9:	eb 1f                	jmp    0x56d7ca
56d7ab:	4e                   	dec    %esi
56d7ac:	75 1c                	jne    0x56d7ca
56d7ae:	83 fb ff             	cmp    $0xffffffff,%ebx
56d7b1:	75 07                	jne    0x56d7ba
56d7b3:	bf 02 00 00 00       	mov    $0x2,%edi
56d7b8:	eb 10                	jmp    0x56d7ca
56d7ba:	85 db                	test   %ebx,%ebx
56d7bc:	75 07                	jne    0x56d7c5
56d7be:	bf 03 00 00 00       	mov    $0x3,%edi
56d7c3:	eb 05                	jmp    0x56d7ca
56d7c5:	bf 04 00 00 00       	mov    $0x4,%edi
56d7ca:	83 ff 05             	cmp    $0x5,%edi
56d7cd:	7c 17                	jl     0x56d7e6
56d7cf:	68 dd 01 00 00       	push   $0x1dd
56d7d4:	68 56 0b 6a 00       	push   $0x6a0b56
56d7d9:	68 44 0b 6a 00       	push   $0x6a0b44
56d7de:	e8 5d d3 fe ff       	call   0x55ab40
56d7e3:	83 c4 0c             	add    $0xc,%esp
56d7e6:	8d 47 0d             	lea    0xd(%edi),%eax
56d7e9:	5f                   	pop    %edi
56d7ea:	5e                   	pop    %esi
56d7eb:	5b                   	pop    %ebx
56d7ec:	c3                   	ret
56d7ed:	90                   	nop
56d7ee:	90                   	nop
56d7ef:	90                   	nop
56d7f0:	f6 c4 20             	test   $0x20,%ah
56d7f3:	53                   	push   %ebx
56d7f4:	75 0f                	jne    0x56d805
56d7f6:	a8 ff                	test   $0xff,%al
56d7f8:	74 07                	je     0x56d801
56d7fa:	bb 01 00 00 00       	mov    $0x1,%ebx
56d7ff:	eb 09                	jmp    0x56d80a
56d801:	33 db                	xor    %ebx,%ebx
56d803:	eb 05                	jmp    0x56d80a
56d805:	bb 02 00 00 00       	mov    $0x2,%ebx
56d80a:	83 fb 03             	cmp    $0x3,%ebx
56d80d:	7c 17                	jl     0x56d826
56d80f:	68 eb 01 00 00       	push   $0x1eb
56d814:	68 75 0b 6a 00       	push   $0x6a0b75
56d819:	68 62 0b 6a 00       	push   $0x6a0b62
56d81e:	e8 1d d3 fe ff       	call   0x55ab40
56d823:	83 c4 0c             	add    $0xc,%esp
56d826:	8d 43 0a             	lea    0xa(%ebx),%eax
56d829:	5b                   	pop    %ebx
56d82a:	c3                   	ret
56d82b:	90                   	nop
56d82c:	33 d2                	xor    %edx,%edx
56d82e:	33 c9                	xor    %ecx,%ecx
56d830:	89 08                	mov    %ecx,(%eax)
56d832:	8b ca                	mov    %edx,%ecx
56d834:	83 e9 01             	sub    $0x1,%ecx
56d837:	72 17                	jb     0x56d850
56d839:	74 0d                	je     0x56d848
56d83b:	83 e9 11             	sub    $0x11,%ecx
56d83e:	75 18                	jne    0x56d858
56d840:	66 c7 40 04 2e 00    	movw   $0x2e,0x4(%eax)
56d846:	eb 16                	jmp    0x56d85e
56d848:	66 c7 40 04 04 00    	movw   $0x4,0x4(%eax)
56d84e:	eb 0e                	jmp    0x56d85e
56d850:	66 c7 40 04 03 00    	movw   $0x3,0x4(%eax)
56d856:	eb 06                	jmp    0x56d85e
56d858:	66 c7 40 04 00 00    	movw   $0x0,0x4(%eax)
56d85e:	83 c0 08             	add    $0x8,%eax
56d861:	42                   	inc    %edx
56d862:	83 fa 13             	cmp    $0x13,%edx
56d865:	7c c7                	jl     0x56d82e
56d867:	c3                   	ret
56d868:	b8 30 14 6b 00       	mov    $0x6b1430,%eax
56d86d:	e8 ba ff ff ff       	call   0x56d82c
56d872:	c3                   	ret
56d873:	90                   	nop
56d874:	83 c4 f0             	add    $0xfffffff0,%esp
56d877:	33 d2                	xor    %edx,%edx
56d879:	89 14 24             	mov    %edx,(%esp)
56d87c:	c7 44 24 04 00 00 f0 	movl   $0x3ff00000,0x4(%esp)
56d883:	3f
56d884:	85 c0                	test   %eax,%eax
56d886:	7d 12                	jge    0x56d89a
56d888:	33 c9                	xor    %ecx,%ecx
56d88a:	89 4c 24 08          	mov    %ecx,0x8(%esp)
56d88e:	c7 44 24 0c 00 00 e0 	movl   $0x3fe00000,0xc(%esp)
56d895:	3f
56d896:	f7 d8                	neg    %eax
56d898:	eb 1a                	jmp    0x56d8b4
56d89a:	33 d2                	xor    %edx,%edx
56d89c:	89 54 24 08          	mov    %edx,0x8(%esp)
56d8a0:	c7 44 24 0c 00 00 00 	movl   $0x40000000,0xc(%esp)
56d8a7:	40
56d8a8:	eb 0a                	jmp    0x56d8b4
56d8aa:	dd 44 24 08          	fldl   0x8(%esp)
56d8ae:	dc 0c 24             	fmull  (%esp)
56d8b1:	dd 1c 24             	fstpl  (%esp)
56d8b4:	48                   	dec    %eax
56d8b5:	79 f3                	jns    0x56d8aa
56d8b7:	dd 04 24             	fldl   (%esp)
56d8ba:	83 c4 10             	add    $0x10,%esp
56d8bd:	c3                   	ret
56d8be:	8b c0                	mov    %eax,%eax
56d8c0:	53                   	push   %ebx
56d8c1:	56                   	push   %esi
56d8c2:	57                   	push   %edi
56d8c3:	55                   	push   %ebp
56d8c4:	83 c4 f4             	add    $0xfffffff4,%esp
56d8c7:	89 4c 24 08          	mov    %ecx,0x8(%esp)
56d8cb:	89 54 24 04          	mov    %edx,0x4(%esp)
56d8cf:	89 04 24             	mov    %eax,(%esp)
56d8d2:	e8 f5 00 00 00       	call   0x56d9cc
56d8d7:	8b f8                	mov    %eax,%edi
56d8d9:	85 c0                	test   %eax,%eax
56d8db:	75 07                	jne    0x56d8e4
56d8dd:	33 c0                	xor    %eax,%eax
56d8df:	e9 e0 00 00 00       	jmp    0x56d9c4
56d8e4:	33 f6                	xor    %esi,%esi
56d8e6:	33 ed                	xor    %ebp,%ebp
56d8e8:	8b 44 24 08          	mov    0x8(%esp),%eax
56d8ec:	3b e8                	cmp    %eax,%ebp
56d8ee:	0f 8d ce 00 00 00    	jge    0x56d9c2
56d8f4:	e8 67 06 00 00       	call   0x56df60
56d8f9:	8b d8                	mov    %eax,%ebx
56d8fb:	85 c0                	test   %eax,%eax
56d8fd:	75 0e                	jne    0x56d90d
56d8ff:	8b c7                	mov    %edi,%eax
56d901:	e8 e6 00 00 00       	call   0x56d9ec
56d906:	33 c0                	xor    %eax,%eax
56d908:	e9 b7 00 00 00       	jmp    0x56d9c4
56d90d:	85 f6                	test   %esi,%esi
56d90f:	74 0b                	je     0x56d91c
56d911:	89 5e 18             	mov    %ebx,0x18(%esi)
56d914:	ff 46 14             	incl   0x14(%esi)
56d917:	89 73 28             	mov    %esi,0x28(%ebx)
56d91a:	eb 07                	jmp    0x56d923
56d91c:	89 1f                	mov    %ebx,(%edi)
56d91e:	33 d2                	xor    %edx,%edx
56d920:	89 53 28             	mov    %edx,0x28(%ebx)
56d923:	8b 0c 24             	mov    (%esp),%ecx
56d926:	85 c9                	test   %ecx,%ecx
56d928:	74 24                	je     0x56d94e
56d92a:	8b 04 24             	mov    (%esp),%eax
56d92d:	e8 3a 27 00 00       	call   0x57006c
56d932:	89 03                	mov    %eax,(%ebx)
56d934:	8b 04 24             	mov    (%esp),%eax
56d937:	e8 d8 25 00 00       	call   0x56ff14
56d93c:	89 43 08             	mov    %eax,0x8(%ebx)
56d93f:	85 c0                	test   %eax,%eax
56d941:	75 16                	jne    0x56d959
56d943:	8b c7                	mov    %edi,%eax
56d945:	e8 a2 00 00 00       	call   0x56d9ec
56d94a:	33 c0                	xor    %eax,%eax
56d94c:	eb 76                	jmp    0x56d9c4
56d94e:	33 d2                	xor    %edx,%edx
56d950:	89 53 08             	mov    %edx,0x8(%ebx)
56d953:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)
56d959:	8b 4c 24 04          	mov    0x4(%esp),%ecx
56d95d:	85 c9                	test   %ecx,%ecx
56d95f:	74 27                	je     0x56d988
56d961:	8b 44 24 04          	mov    0x4(%esp),%eax
56d965:	e8 02 27 00 00       	call   0x57006c
56d96a:	89 43 04             	mov    %eax,0x4(%ebx)
56d96d:	8b 44 24 04          	mov    0x4(%esp),%eax
56d971:	e8 9e 25 00 00       	call   0x56ff14
56d976:	89 43 0c             	mov    %eax,0xc(%ebx)
56d979:	85 c0                	test   %eax,%eax
56d97b:	75 17                	jne    0x56d994
56d97d:	8b c7                	mov    %edi,%eax
56d97f:	e8 68 00 00 00       	call   0x56d9ec
56d984:	33 c0                	xor    %eax,%eax
56d986:	eb 3c                	jmp    0x56d9c4
56d988:	33 d2                	xor    %edx,%edx
56d98a:	89 53 0c             	mov    %edx,0xc(%ebx)
56d98d:	c7 43 04 01 00 00 00 	movl   $0x1,0x4(%ebx)
56d994:	8b 0b                	mov    (%ebx),%ecx
56d996:	0f af 4b 04          	imul   0x4(%ebx),%ecx
56d99a:	89 4b 10             	mov    %ecx,0x10(%ebx)
56d99d:	33 d2                	xor    %edx,%edx
56d99f:	8d 43 18             	lea    0x18(%ebx),%eax
56d9a2:	eb 08                	jmp    0x56d9ac
56d9a4:	33 c9                	xor    %ecx,%ecx
56d9a6:	42                   	inc    %edx
56d9a7:	89 08                	mov    %ecx,(%eax)
56d9a9:	83 c0 04             	add    $0x4,%eax
56d9ac:	8b 4b 10             	mov    0x10(%ebx),%ecx
56d9af:	3b d1                	cmp    %ecx,%edx
56d9b1:	7c f1                	jl     0x56d9a4
56d9b3:	8b f3                	mov    %ebx,%esi
56d9b5:	45                   	inc    %ebp
56d9b6:	8b 44 24 08          	mov    0x8(%esp),%eax
56d9ba:	3b e8                	cmp    %eax,%ebp
56d9bc:	0f 8c 32 ff ff ff    	jl     0x56d8f4
56d9c2:	8b c7                	mov    %edi,%eax
56d9c4:	83 c4 0c             	add    $0xc,%esp
56d9c7:	5d                   	pop    %ebp
56d9c8:	5f                   	pop    %edi
56d9c9:	5e                   	pop    %esi
56d9ca:	5b                   	pop    %ebx
56d9cb:	c3                   	ret
56d9cc:	53                   	push   %ebx
56d9cd:	b8 04 00 00 00       	mov    $0x4,%eax
56d9d2:	e8 a5 a9 00 00       	call   0x57837c
56d9d7:	8b d8                	mov    %eax,%ebx
56d9d9:	85 c0                	test   %eax,%eax
56d9db:	75 04                	jne    0x56d9e1
56d9dd:	33 c0                	xor    %eax,%eax
56d9df:	5b                   	pop    %ebx
56d9e0:	c3                   	ret
56d9e1:	33 d2                	xor    %edx,%edx
56d9e3:	8b c3                	mov    %ebx,%eax
56d9e5:	89 13                	mov    %edx,(%ebx)
56d9e7:	5b                   	pop    %ebx
56d9e8:	c3                   	ret
56d9e9:	90                   	nop
56d9ea:	90                   	nop
56d9eb:	90                   	nop
56d9ec:	53                   	push   %ebx
56d9ed:	8b d8                	mov    %eax,%ebx
56d9ef:	8b 03                	mov    (%ebx),%eax
56d9f1:	85 c0                	test   %eax,%eax
56d9f3:	74 05                	je     0x56d9fa
56d9f5:	e8 a2 05 00 00       	call   0x56df9c
56d9fa:	8b c3                	mov    %ebx,%eax
56d9fc:	e8 83 a9 00 00       	call   0x578384
56da01:	5b                   	pop    %ebx
56da02:	c3                   	ret
56da03:	90                   	nop
56da04:	56                   	push   %esi
56da05:	8b 30                	mov    (%eax),%esi
56da07:	85 f6                	test   %esi,%esi
56da09:	74 07                	je     0x56da12
56da0b:	8b c6                	mov    %esi,%eax
56da0d:	e8 02 00 00 00       	call   0x56da14
56da12:	5e                   	pop    %esi
56da13:	c3                   	ret
56da14:	53                   	push   %ebx
56da15:	56                   	push   %esi
56da16:	57                   	push   %edi
56da17:	55                   	push   %ebp
56da18:	81 c4 74 ff ff ff    	add    $0xffffff74,%esp
56da1e:	8b f8                	mov    %eax,%edi
56da20:	89 4c 24 04          	mov    %ecx,0x4(%esp)
56da24:	89 14 24             	mov    %edx,(%esp)
56da27:	8b 47 0c             	mov    0xc(%edi),%eax
56da2a:	85 c0                	test   %eax,%eax
56da2c:	74 12                	je     0x56da40
56da2e:	8b 14 24             	mov    (%esp),%edx
56da31:	8b 4c 24 04          	mov    0x4(%esp),%ecx
56da35:	81 ca 00 00 01 00    	or     $0x10000,%edx
56da3b:	e8 44 26 00 00       	call   0x570084
56da40:	8b 47 08             	mov    0x8(%edi),%eax
56da43:	85 c0                	test   %eax,%eax