56564b:	74 0b                	je     0x565658
56564d:	8b 53 0c             	mov    0xc(%ebx),%edx
565650:	8b 0a                	mov    (%edx),%ecx
565652:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
565656:	eb 10                	jmp    0x565668
565658:	8b c3                	mov    %ebx,%eax
56565a:	e8 51 c6 00 00       	call   0x571cb0
56565f:	eb 07                	jmp    0x565668
565661:	8b c3                	mov    %ebx,%eax
565663:	e8 68 c7 00 00       	call   0x571dd0
565668:	8b 55 a8             	mov    -0x58(%ebp),%edx
56566b:	83 e0 01             	and    $0x1,%eax
56566e:	03 d2                	add    %edx,%edx
565670:	0b d0                	or     %eax,%edx
565672:	89 55 a8             	mov    %edx,-0x58(%ebp)
565675:	8b 4b 0c             	mov    0xc(%ebx),%ecx
565678:	8b 01                	mov    (%ecx),%eax
56567a:	0f b7 10             	movzwl (%eax),%edx
56567d:	29 53 04             	sub    %edx,0x4(%ebx)
565680:	8b 43 0c             	mov    0xc(%ebx),%eax
565683:	8b 0b                	mov    (%ebx),%ecx
565685:	c1 e9 10             	shr    $0x10,%ecx
565688:	8b 10                	mov    (%eax),%edx
56568a:	0f b7 02             	movzwl (%edx),%eax
56568d:	3b c8                	cmp    %eax,%ecx
56568f:	72 27                	jb     0x5656b8
565691:	8b 53 0c             	mov    0xc(%ebx),%edx
565694:	8b 0a                	mov    (%edx),%ecx
565696:	0f b7 01             	movzwl (%ecx),%eax
565699:	c1 e0 10             	shl    $0x10,%eax
56569c:	29 03                	sub    %eax,(%ebx)
56569e:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
5656a2:	74 0b                	je     0x5656af
5656a4:	8b 53 0c             	mov    0xc(%ebx),%edx
5656a7:	8b 0a                	mov    (%edx),%ecx
5656a9:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
5656ad:	eb 10                	jmp    0x5656bf
5656af:	8b c3                	mov    %ebx,%eax
5656b1:	e8 fa c5 00 00       	call   0x571cb0
5656b6:	eb 07                	jmp    0x5656bf
5656b8:	8b c3                	mov    %ebx,%eax
5656ba:	e8 11 c7 00 00       	call   0x571dd0
5656bf:	8b 55 a8             	mov    -0x58(%ebp),%edx
5656c2:	03 d2                	add    %edx,%edx
5656c4:	83 e0 01             	and    $0x1,%eax
5656c7:	0b d0                	or     %eax,%edx
5656c9:	89 55 a8             	mov    %edx,-0x58(%ebp)
5656cc:	8b 4d a8             	mov    -0x58(%ebp),%ecx
5656cf:	83 f9 0a             	cmp    $0xa,%ecx
5656d2:	74 12                	je     0x5656e6
5656d4:	68 19 f5 69 00       	push   $0x69f519
5656d9:	68 80 2e 6a 00       	push   $0x6a2e80
5656de:	e8 e9 49 01 00       	call   0x57a0cc
5656e3:	83 c4 08             	add    $0x8,%esp
5656e6:	33 c0                	xor    %eax,%eax
5656e8:	5f                   	pop    %edi
5656e9:	5e                   	pop    %esi
5656ea:	5b                   	pop    %ebx
5656eb:	8b e5                	mov    %ebp,%esp
5656ed:	5d                   	pop    %ebp
5656ee:	c2 14 00             	ret    $0x14
5656f1:	8d 40 00             	lea    0x0(%eax),%eax
5656f4:	53                   	push   %ebx
5656f5:	56                   	push   %esi
5656f6:	57                   	push   %edi
5656f7:	83 c4 d0             	add    $0xffffffd0,%esp
5656fa:	89 04 24             	mov    %eax,(%esp)
5656fd:	8b 04 24             	mov    (%esp),%eax
565700:	8b 40 0c             	mov    0xc(%eax),%eax
565703:	8b 58 28             	mov    0x28(%eax),%ebx
565706:	8b 50 2c             	mov    0x2c(%eax),%edx
565709:	8b f3                	mov    %ebx,%esi
56570b:	8b ca                	mov    %edx,%ecx
56570d:	c1 e3 07             	shl    $0x7,%ebx
565710:	03 de                	add    %esi,%ebx
565712:	c1 e3 02             	shl    $0x2,%ebx
565715:	03 cb                	add    %ebx,%ecx
565717:	89 4c 24 08          	mov    %ecx,0x8(%esp)
56571b:	89 54 24 04          	mov    %edx,0x4(%esp)
56571f:	8b 54 24 08          	mov    0x8(%esp),%edx
565723:	8b 44 24 04          	mov    0x4(%esp),%eax
565727:	3b c2                	cmp    %edx,%eax
565729:	0f 84 1a 02 00 00    	je     0x565949
56572f:	8b 4c 24 04          	mov    0x4(%esp),%ecx
565733:	8b 41 04             	mov    0x4(%ecx),%eax
565736:	8b 4c 24 04          	mov    0x4(%esp),%ecx
56573a:	8b d0                	mov    %eax,%edx
56573c:	0f b7 09             	movzwl (%ecx),%ecx
56573f:	c1 e1 02             	shl    $0x2,%ecx
565742:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
565745:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
565748:	03 d1                	add    %ecx,%edx
56574a:	89 54 24 10          	mov    %edx,0x10(%esp)
56574e:	89 44 24 0c          	mov    %eax,0xc(%esp)
565752:	8b 44 24 0c          	mov    0xc(%esp),%eax
565756:	8b 54 24 10          	mov    0x10(%esp),%edx
56575a:	3b c2                	cmp    %edx,%eax
56575c:	0f 84 cf 01 00 00    	je     0x565931
565762:	8b 44 24 0c          	mov    0xc(%esp),%eax
565766:	8b 40 34             	mov    0x34(%eax),%eax
565769:	85 c0                	test   %eax,%eax
56576b:	0f 84 ab 01 00 00    	je     0x56591c
565771:	8b d0                	mov    %eax,%edx
565773:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
565777:	8b 49 30             	mov    0x30(%ecx),%ecx
56577a:	c1 e1 02             	shl    $0x2,%ecx
56577d:	8d 0c c9             	lea    (%ecx,%ecx,8),%ecx
565780:	03 d1                	add    %ecx,%edx
565782:	89 54 24 18          	mov    %edx,0x18(%esp)
565786:	89 44 24 14          	mov    %eax,0x14(%esp)
56578a:	8b 44 24 14          	mov    0x14(%esp),%eax
56578e:	8b 54 24 18          	mov    0x18(%esp),%edx
565792:	3b c2                	cmp    %edx,%eax
565794:	0f 84 82 01 00 00    	je     0x56591c
56579a:	8b 44 24 14          	mov    0x14(%esp),%eax
56579e:	8b 50 04             	mov    0x4(%eax),%edx
5657a1:	85 d2                	test   %edx,%edx
5657a3:	0f 84 5e 01 00 00    	je     0x565907
5657a9:	33 c9                	xor    %ecx,%ecx
5657ab:	89 4c 24 28          	mov    %ecx,0x28(%esp)
5657af:	8b 44 24 14          	mov    0x14(%esp),%eax
5657b3:	8b 10                	mov    (%eax),%edx
5657b5:	89 54 24 2c          	mov    %edx,0x2c(%esp)
5657b9:	e9 36 01 00 00       	jmp    0x5658f4
5657be:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
5657c2:	8b 41 1c             	mov    0x1c(%ecx),%eax
5657c5:	85 c0                	test   %eax,%eax
5657c7:	0f 84 1e 01 00 00    	je     0x5658eb
5657cd:	33 d2                	xor    %edx,%edx
5657cf:	89 54 24 24          	mov    %edx,0x24(%esp)
5657d3:	8b c8                	mov    %eax,%ecx
5657d5:	8b 54 24 2c          	mov    0x2c(%esp),%edx
5657d9:	8b 52 18             	mov    0x18(%edx),%edx
5657dc:	c1 e2 02             	shl    $0x2,%edx
5657df:	8d 14 52             	lea    (%edx,%edx,2),%edx
5657e2:	8d 14 92             	lea    (%edx,%edx,4),%edx
5657e5:	03 ca                	add    %edx,%ecx
5657e7:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
5657eb:	8b d8                	mov    %eax,%ebx
5657ed:	8b 44 24 1c          	mov    0x1c(%esp),%eax
5657f1:	3b d8                	cmp    %eax,%ebx
5657f3:	74 79                	je     0x56586e
5657f5:	33 f6                	xor    %esi,%esi
5657f7:	33 c0                	xor    %eax,%eax
5657f9:	89 44 24 20          	mov    %eax,0x20(%esp)
5657fd:	eb 2b                	jmp    0x56582a
5657ff:	33 c9                	xor    %ecx,%ecx
565801:	eb 19                	jmp    0x56581c
565803:	8b 57 1c             	mov    0x1c(%edi),%edx
565806:	8b 44 24 20          	mov    0x20(%esp),%eax
56580a:	8b 14 82             	mov    (%edx,%eax,4),%edx
56580d:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
565810:	99                   	cltd
565811:	33 c2                	xor    %edx,%eax
565813:	2b c2                	sub    %edx,%eax
565815:	3b f0                	cmp    %eax,%esi
565817:	7d 02                	jge    0x56581b
565819:	8b f0                	mov    %eax,%esi
56581b:	41                   	inc    %ecx
56581c:	8b 7b 1c             	mov    0x1c(%ebx),%edi
56581f:	8b 47 18             	mov    0x18(%edi),%eax
565822:	3b c8                	cmp    %eax,%ecx
565824:	7c dd                	jl     0x565803
565826:	ff 44 24 20          	incl   0x20(%esp)
56582a:	8b 53 1c             	mov    0x1c(%ebx),%edx
56582d:	8b 4a 14             	mov    0x14(%edx),%ecx
565830:	8b 44 24 20          	mov    0x20(%esp),%eax
565834:	3b c8                	cmp    %eax,%ecx
565836:	7f c7                	jg     0x5657ff
565838:	8b 54 24 24          	mov    0x24(%esp),%edx
56583c:	3b f2                	cmp    %edx,%esi
56583e:	7e 04                	jle    0x565844
565840:	89 74 24 24          	mov    %esi,0x24(%esp)
565844:	8b c6                	mov    %esi,%eax
565846:	e8 19 3d 01 00       	call   0x579564
56584b:	83 c0 fb             	add    $0xfffffffb,%eax
56584e:	85 c0                	test   %eax,%eax
565850:	7e 0c                	jle    0x56585e
565852:	8b c6                	mov    %esi,%eax
565854:	e8 0b 3d 01 00       	call   0x579564
565859:	83 c0 fb             	add    $0xfffffffb,%eax
56585c:	eb 02                	jmp    0x565860
56585e:	33 c0                	xor    %eax,%eax
565860:	89 43 24             	mov    %eax,0x24(%ebx)
565863:	83 c3 3c             	add    $0x3c,%ebx
565866:	8b 54 24 1c          	mov    0x1c(%esp),%edx
56586a:	3b da                	cmp    %edx,%ebx
56586c:	75 87                	jne    0x5657f5
56586e:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
565872:	8b 59 1c             	mov    0x1c(%ecx),%ebx
565875:	8b 44 24 1c          	mov    0x1c(%esp),%eax
565879:	3b d8                	cmp    %eax,%ebx
56587b:	74 35                	je     0x5658b2
56587d:	8b 54 24 14          	mov    0x14(%esp),%edx
565881:	8b 42 0c             	mov    0xc(%edx),%eax
565884:	8b 53 24             	mov    0x24(%ebx),%edx
565887:	2b c2                	sub    %edx,%eax
565889:	89 43 0c             	mov    %eax,0xc(%ebx)
56588c:	85 c0                	test   %eax,%eax
56588e:	7d 17                	jge    0x5658a7
565890:	68 d6 00 00 00       	push   $0xd6
565895:	68 50 f5 69 00       	push   $0x69f550
56589a:	68 3c f5 69 00       	push   $0x69f53c
56589f:	e8 9c 52 ff ff       	call   0x55ab40
5658a4:	83 c4 0c             	add    $0xc,%esp
5658a7:	83 c3 3c             	add    $0x3c,%ebx
5658aa:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
5658ae:	3b d9                	cmp    %ecx,%ebx
5658b0:	75 cb                	jne    0x56587d
5658b2:	8b 44 24 2c          	mov    0x2c(%esp),%eax
5658b6:	8b 58 1c             	mov    0x1c(%eax),%ebx
5658b9:	8b 44 24 1c          	mov    0x1c(%esp),%eax
5658bd:	3b d8                	cmp    %eax,%ebx
5658bf:	74 2a                	je     0x5658eb
5658c1:	8b 54 24 14          	mov    0x14(%esp),%edx
5658c5:	52                   	push   %edx
5658c6:	53                   	push   %ebx
5658c7:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
5658cb:	8b 53 14             	mov    0x14(%ebx),%edx
5658ce:	8b 44 24 08          	mov    0x8(%esp),%eax
5658d2:	e8 e1 00 00 00       	call   0x5659b8
5658d7:	85 c0                	test   %eax,%eax
5658d9:	74 05                	je     0x5658e0
5658db:	83 c8 ff             	or     $0xffffffff,%eax
5658de:	eb 6b                	jmp    0x56594b
5658e0:	83 c3 3c             	add    $0x3c,%ebx
5658e3:	8b 54 24 1c          	mov    0x1c(%esp),%edx
5658e7:	3b da                	cmp    %edx,%ebx
5658e9:	75 d6                	jne    0x5658c1
5658eb:	ff 44 24 28          	incl   0x28(%esp)
5658ef:	83 44 24 2c 34       	addl   $0x34,0x2c(%esp)
5658f4:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
5658f8:	8b 41 20             	mov    0x20(%ecx),%eax
5658fb:	8b 54 24 28          	mov    0x28(%esp),%edx
5658ff:	3b c2                	cmp    %edx,%eax
565901:	0f 87 b7 fe ff ff    	ja     0x5657be
565907:	83 44 24 14 24       	addl   $0x24,0x14(%esp)
56590c:	8b 4c 24 14          	mov    0x14(%esp),%ecx
565910:	8b 44 24 18          	mov    0x18(%esp),%eax
565914:	3b c8                	cmp    %eax,%ecx
565916:	0f 85 7e fe ff ff    	jne    0x56579a
56591c:	83 44 24 0c 3c       	addl   $0x3c,0xc(%esp)
565921:	8b 54 24 0c          	mov    0xc(%esp),%edx
565925:	8b 4c 24 10          	mov    0x10(%esp),%ecx
565929:	3b d1                	cmp    %ecx,%edx
56592b:	0f 85 31 fe ff ff    	jne    0x565762
565931:	81 44 24 04 04 02 00 	addl   $0x204,0x4(%esp)
565938:	00
565939:	8b 44 24 04          	mov    0x4(%esp),%eax
56593d:	8b 54 24 08          	mov    0x8(%esp),%edx
565941:	3b c2                	cmp    %edx,%eax
565943:	0f 85 e6 fd ff ff    	jne    0x56572f
565949:	33 c0                	xor    %eax,%eax
56594b:	83 c4 30             	add    $0x30,%esp
56594e:	5f                   	pop    %edi
56594f:	5e                   	pop    %esi
565950:	5b                   	pop    %ebx
565951:	c3                   	ret
565952:	90                   	nop
565953:	90                   	nop
565954:	53                   	push   %ebx
565955:	56                   	push   %esi
565956:	57                   	push   %edi
565957:	8b fa                	mov    %edx,%edi
565959:	8b d8                	mov    %eax,%ebx
56595b:	8b c3                	mov    %ebx,%eax
56595d:	e8 96 32 01 00       	call   0x578bf8
565962:	8b f0                	mov    %eax,%esi
565964:	85 f6                	test   %esi,%esi
565966:	7d 17                	jge    0x56597f
565968:	68 ea 00 00 00       	push   $0xea
56596d:	68 68 f5 69 00       	push   $0x69f568
565972:	68 5c f5 69 00       	push   $0x69f55c
565977:	e8 c4 51 ff ff       	call   0x55ab40
56597c:	83 c4 0c             	add    $0xc,%esp
56597f:	33 c9                	xor    %ecx,%ecx
565981:	8b d7                	mov    %edi,%edx
565983:	8b c3                	mov    %ebx,%eax
565985:	e8 de 31 01 00       	call   0x578b68
56598a:	8b 43 1c             	mov    0x1c(%ebx),%eax
56598d:	85 c0                	test   %eax,%eax
56598f:	7f 0d                	jg     0x56599e
565991:	33 d2                	xor    %edx,%edx
565993:	8b c3                	mov    %ebx,%eax
565995:	e8 8e 33 01 00       	call   0x578d28
56599a:	8b f8                	mov    %eax,%edi
56599c:	eb 06                	jmp    0x5659a4
56599e:	8b 43 18             	mov    0x18(%ebx),%eax
5659a1:	0f b6 38             	movzbl (%eax),%edi
5659a4:	33 c9                	xor    %ecx,%ecx
5659a6:	8b d6                	mov    %esi,%edx
5659a8:	8b c3                	mov    %ebx,%eax
5659aa:	e8 b9 31 01 00       	call   0x578b68
5659af:	8b c7                	mov    %edi,%eax
5659b1:	5f                   	pop    %edi
5659b2:	5e                   	pop    %esi
5659b3:	5b                   	pop    %ebx
5659b4:	c3                   	ret
5659b5:	90                   	nop
5659b6:	90                   	nop
5659b7:	90                   	nop
5659b8:	55                   	push   %ebp
5659b9:	8b ec                	mov    %esp,%ebp
5659bb:	83 c4 cc             	add    $0xffffffcc,%esp
5659be:	53                   	push   %ebx
5659bf:	56                   	push   %esi
5659c0:	57                   	push   %edi
5659c1:	89 4d f4             	mov    %ecx,-0xc(%ebp)
5659c4:	89 55 f8             	mov    %edx,-0x8(%ebp)
5659c7:	89 45 fc             	mov    %eax,-0x4(%ebp)
5659ca:	8b 75 08             	mov    0x8(%ebp),%esi
5659cd:	8b 7d 0c             	mov    0xc(%ebp),%edi
5659d0:	33 c0                	xor    %eax,%eax
5659d2:	89 45 e0             	mov    %eax,-0x20(%ebp)
5659d5:	33 d2                	xor    %edx,%edx
5659d7:	33 c0                	xor    %eax,%eax
5659d9:	e8 3e 2a 01 00       	call   0x57841c
5659de:	8b d8                	mov    %eax,%ebx
5659e0:	89 5e 14             	mov    %ebx,0x14(%esi)
5659e3:	85 db                	test   %ebx,%ebx
5659e5:	75 17                	jne    0x5659fe
5659e7:	68 08 01 00 00       	push   $0x108
5659ec:	68 81 f5 69 00       	push   $0x69f581
5659f1:	68 74 f5 69 00       	push   $0x69f574
5659f6:	e8 45 51 ff ff       	call   0x55ab40
5659fb:	83 c4 0c             	add    $0xc,%esp
5659fe:	8b 56 14             	mov    0x14(%esi),%edx
565a01:	b8 13 00 00 00       	mov    $0x13,%eax
565a06:	e8 31 c6 00 00       	call   0x57203c
565a0b:	8b d8                	mov    %eax,%ebx
565a0d:	89 5e 18             	mov    %ebx,0x18(%esi)
565a10:	85 db                	test   %ebx,%ebx
565a12:	75 17                	jne    0x565a2b
565a14:	68 0a 01 00 00       	push   $0x10a
565a19:	68 99 f5 69 00       	push   $0x69f599
565a1e:	68 8d f5 69 00       	push   $0x69f58d
565a23:	e8 18 51 ff ff       	call   0x55ab40
565a28:	83 c4 0c             	add    $0xc,%esp
565a2b:	b9 30 14 6b 00       	mov    $0x6b1430,%ecx
565a30:	ba 13 00 00 00       	mov    $0x13,%edx
565a35:	8b 46 18             	mov    0x18(%esi),%eax
565a38:	e8 97 c6 00 00       	call   0x5720d4
565a3d:	8b 46 24             	mov    0x24(%esi),%eax
565a40:	85 c0                	test   %eax,%eax
565a42:	7e 0b                	jle    0x565a4f
565a44:	8b 5e 24             	mov    0x24(%esi),%ebx
565a47:	8d 1c 5b             	lea    (%ebx,%ebx,2),%ebx
565a4a:	83 c3 fe             	add    $0xfffffffe,%ebx
565a4d:	eb 02                	jmp    0x565a51
565a4f:	33 db                	xor    %ebx,%ebx