55b596:	83 ea 01             	sub    $0x1,%edx
55b599:	72 07                	jb     0x55b5a2
55b59b:	74 0e                	je     0x55b5ab
55b59d:	4a                   	dec    %edx
55b59e:	74 14                	je     0x55b5b4
55b5a0:	eb 4f                	jmp    0x55b5f1
55b5a2:	33 c9                	xor    %ecx,%ecx
55b5a4:	bb 01 00 00 00       	mov    $0x1,%ebx
55b5a9:	eb 46                	jmp    0x55b5f1
55b5ab:	33 c9                	xor    %ecx,%ecx
55b5ad:	bb 02 00 00 00       	mov    $0x2,%ebx
55b5b2:	eb 3d                	jmp    0x55b5f1
55b5b4:	33 c9                	xor    %ecx,%ecx
55b5b6:	bb 03 00 00 00       	mov    $0x3,%ebx
55b5bb:	eb 34                	jmp    0x55b5f1
55b5bd:	81 e2 ff 7f 00 00    	and    $0x7fff,%edx
55b5c3:	83 ea 01             	sub    $0x1,%edx
55b5c6:	72 07                	jb     0x55b5cf
55b5c8:	74 0e                	je     0x55b5d8
55b5ca:	4a                   	dec    %edx
55b5cb:	74 14                	je     0x55b5e1
55b5cd:	eb 22                	jmp    0x55b5f1
55b5cf:	33 c9                	xor    %ecx,%ecx
55b5d1:	bb 01 00 00 00       	mov    $0x1,%ebx
55b5d6:	eb 19                	jmp    0x55b5f1
55b5d8:	33 c9                	xor    %ecx,%ecx
55b5da:	bb 02 00 00 00       	mov    $0x2,%ebx
55b5df:	eb 10                	jmp    0x55b5f1
55b5e1:	33 c9                	xor    %ecx,%ecx
55b5e3:	bb 03 00 00 00       	mov    $0x3,%ebx
55b5e8:	eb 07                	jmp    0x55b5f1
55b5ea:	33 c9                	xor    %ecx,%ecx
55b5ec:	bb 01 00 00 00       	mov    $0x1,%ebx
55b5f1:	8b c1                	mov    %ecx,%eax
55b5f3:	c1 e0 10             	shl    $0x10,%eax
55b5f6:	0b c3                	or     %ebx,%eax
55b5f8:	5b                   	pop    %ebx
55b5f9:	c3                   	ret
55b5fa:	8b c0                	mov    %eax,%eax
55b5fc:	53                   	push   %ebx
55b5fd:	56                   	push   %esi
55b5fe:	57                   	push   %edi
55b5ff:	55                   	push   %ebp
55b600:	8b ea                	mov    %edx,%ebp
55b602:	8b d8                	mov    %eax,%ebx
55b604:	85 db                	test   %ebx,%ebx
55b606:	7d 05                	jge    0x55b60d
55b608:	e8 3b f5 ff ff       	call   0x55ab48
55b60d:	8b c3                	mov    %ebx,%eax
55b60f:	e8 50 df 01 00       	call   0x579564
55b614:	8b f0                	mov    %eax,%esi
55b616:	8b c3                	mov    %ebx,%eax
55b618:	83 c6 f3             	add    $0xfffffff3,%esi
55b61b:	e8 44 df 01 00       	call   0x579564
55b620:	50                   	push   %eax
55b621:	b8 0b 00 00 00       	mov    $0xb,%eax
55b626:	5a                   	pop    %edx
55b627:	2b c2                	sub    %edx,%eax
55b629:	85 c0                	test   %eax,%eax
55b62b:	7d 0a                	jge    0x55b637
55b62d:	8b c8                	mov    %eax,%ecx
55b62f:	8b d3                	mov    %ebx,%edx
55b631:	f7 d9                	neg    %ecx
55b633:	d3 fa                	sar    %cl,%edx
55b635:	eb 06                	jmp    0x55b63d
55b637:	8b c8                	mov    %eax,%ecx
55b639:	8b d3                	mov    %ebx,%edx
55b63b:	d3 e2                	shl    %cl,%edx
55b63d:	8b fd                	mov    %ebp,%edi
55b63f:	81 e2 ff 07 00 00    	and    $0x7ff,%edx
55b645:	2b fe                	sub    %esi,%edi
55b647:	3b f5                	cmp    %ebp,%esi
55b649:	8b da                	mov    %edx,%ebx
55b64b:	7e 05                	jle    0x55b652
55b64d:	e8 f6 f4 ff ff       	call   0x55ab48
55b652:	f7 c7 e0 ff ff ff    	test   $0xffffffe0,%edi
55b658:	74 17                	je     0x55b671
55b65a:	68 e4 00 00 00       	push   $0xe4
55b65f:	68 c4 d7 69 00       	push   $0x69d7c4
55b664:	68 b0 d7 69 00       	push   $0x69d7b0
55b669:	e8 d2 f4 ff ff       	call   0x55ab40
55b66e:	83 c4 0c             	add    $0xc,%esp
55b671:	83 e7 1f             	and    $0x1f,%edi
55b674:	c1 e7 0b             	shl    $0xb,%edi
55b677:	f7 c3 00 f8 ff ff    	test   $0xfffff800,%ebx
55b67d:	74 17                	je     0x55b696
55b67f:	68 e4 00 00 00       	push   $0xe4
55b684:	68 e3 d7 69 00       	push   $0x69d7e3
55b689:	68 ce d7 69 00       	push   $0x69d7ce
55b68e:	e8 ad f4 ff ff       	call   0x55ab40
55b693:	83 c4 0c             	add    $0xc,%esp
55b696:	81 e3 ff 07 00 00    	and    $0x7ff,%ebx
55b69c:	0b fb                	or     %ebx,%edi
55b69e:	8b c7                	mov    %edi,%eax
55b6a0:	5d                   	pop    %ebp
55b6a1:	5f                   	pop    %edi
55b6a2:	5e                   	pop    %esi
55b6a3:	5b                   	pop    %ebx
55b6a4:	c3                   	ret
55b6a5:	90                   	nop
55b6a6:	90                   	nop
55b6a7:	90                   	nop
55b6a8:	53                   	push   %ebx
55b6a9:	56                   	push   %esi
55b6aa:	57                   	push   %edi
55b6ab:	55                   	push   %ebp
55b6ac:	51                   	push   %ecx
55b6ad:	89 0c 24             	mov    %ecx,(%esp)
55b6b0:	8b ea                	mov    %edx,%ebp
55b6b2:	8b f8                	mov    %eax,%edi
55b6b4:	33 db                	xor    %ebx,%ebx
55b6b6:	e8 39 19 01 00       	call   0x56cff4
55b6bb:	8b d7                	mov    %edi,%edx
55b6bd:	8b 04 24             	mov    (%esp),%eax
55b6c0:	e8 c3 00 00 00       	call   0x55b788
55b6c5:	8b f0                	mov    %eax,%esi
55b6c7:	85 c0                	test   %eax,%eax
55b6c9:	75 17                	jne    0x55b6e2
55b6cb:	68 ef d8 69 00       	push   $0x69d8ef
55b6d0:	68 80 2e 6a 00       	push   $0x6a2e80
55b6d5:	e8 f2 e9 01 00       	call   0x57a0cc
55b6da:	83 c4 08             	add    $0x8,%esp
55b6dd:	e9 85 00 00 00       	jmp    0x55b767
55b6e2:	8b cf                	mov    %edi,%ecx
55b6e4:	8b d5                	mov    %ebp,%edx
55b6e6:	8b c6                	mov    %esi,%eax
55b6e8:	e8 a7 0d 00 00       	call   0x55c494
55b6ed:	8b d8                	mov    %eax,%ebx
55b6ef:	85 c0                	test   %eax,%eax
55b6f1:	74 74                	je     0x55b767
55b6f3:	33 f6                	xor    %esi,%esi
55b6f5:	8b c3                	mov    %ebx,%eax
55b6f7:	e8 80 0e 00 00       	call   0x55c57c
55b6fc:	85 c0                	test   %eax,%eax
55b6fe:	75 67                	jne    0x55b767
55b700:	8b c3                	mov    %ebx,%eax
55b702:	e8 a1 14 00 00       	call   0x55cba8
55b707:	85 c0                	test   %eax,%eax
55b709:	75 5c                	jne    0x55b767
55b70b:	b8 d9 ff 00 00       	mov    $0xffd9,%eax
55b710:	e8 cb a8 01 00       	call   0x575fe0
55b715:	8b f8                	mov    %eax,%edi
55b717:	89 7b 1c             	mov    %edi,0x1c(%ebx)
55b71a:	85 ff                	test   %edi,%edi
55b71c:	74 49                	je     0x55b767
55b71e:	8b cf                	mov    %edi,%ecx
55b720:	8b 53 10             	mov    0x10(%ebx),%edx
55b723:	8b 43 04             	mov    0x4(%ebx),%eax
55b726:	e8 bd a7 01 00       	call   0x575ee8
55b72b:	85 c0                	test   %eax,%eax
55b72d:	74 14                	je     0x55b743
55b72f:	68 0b d9 69 00       	push   $0x69d90b
55b734:	68 80 2e 6a 00       	push   $0x6a2e80
55b739:	e8 8e e9 01 00       	call   0x57a0cc
55b73e:	83 c4 08             	add    $0x8,%esp
55b741:	eb 24                	jmp    0x55b767
55b743:	8b 43 1c             	mov    0x1c(%ebx),%eax
55b746:	e8 dd a8 01 00       	call   0x576028
55b74b:	33 d2                	xor    %edx,%edx
55b74d:	89 53 1c             	mov    %edx,0x1c(%ebx)
55b750:	8b 43 04             	mov    0x4(%ebx),%eax
55b753:	e8 bc d5 01 00       	call   0x578d14
55b758:	85 c0                	test   %eax,%eax
55b75a:	75 0b                	jne    0x55b767
55b75c:	8b c3                	mov    %ebx,%eax
55b75e:	e8 95 0d 00 00       	call   0x55c4f8
55b763:	33 c0                	xor    %eax,%eax
55b765:	eb 19                	jmp    0x55b780
55b767:	85 f6                	test   %esi,%esi
55b769:	74 07                	je     0x55b772
55b76b:	8b c6                	mov    %esi,%eax
55b76d:	e8 76 0c 00 00       	call   0x55c3e8
55b772:	85 db                	test   %ebx,%ebx
55b774:	74 07                	je     0x55b77d
55b776:	8b c3                	mov    %ebx,%eax
55b778:	e8 7b 0d 00 00       	call   0x55c4f8
55b77d:	83 c8 ff             	or     $0xffffffff,%eax
55b780:	5a                   	pop    %edx
55b781:	5d                   	pop    %ebp
55b782:	5f                   	pop    %edi
55b783:	5e                   	pop    %esi
55b784:	5b                   	pop    %ebx
55b785:	c3                   	ret
55b786:	90                   	nop
55b787:	90                   	nop
55b788:	53                   	push   %ebx
55b789:	56                   	push   %esi
55b78a:	57                   	push   %edi
55b78b:	55                   	push   %ebp
55b78c:	83 c4 c0             	add    $0xffffffc0,%esp
55b78f:	8b f2                	mov    %edx,%esi
55b791:	89 04 24             	mov    %eax,(%esp)
55b794:	33 c0                	xor    %eax,%eax
55b796:	89 44 24 04          	mov    %eax,0x4(%esp)
55b79a:	33 d2                	xor    %edx,%edx
55b79c:	89 54 24 0c          	mov    %edx,0xc(%esp)
55b7a0:	33 c9                	xor    %ecx,%ecx
55b7a2:	89 4c 24 08          	mov    %ecx,0x8(%esp)
55b7a6:	b8 e0 00 00 00       	mov    $0xe0,%eax
55b7ab:	e8 cc cb 01 00       	call   0x57837c
55b7b0:	8b d8                	mov    %eax,%ebx
55b7b2:	85 c0                	test   %eax,%eax
55b7b4:	0f 84 ee 0b 00 00    	je     0x55c3a8
55b7ba:	66 c7 44 24 18 0f 00 	movw   $0xf,0x18(%esp)
55b7c1:	66 c7 44 24 1a 0f 00 	movw   $0xf,0x1a(%esp)
55b7c8:	c7 44 24 1c 01 00 00 	movl   $0x1,0x1c(%esp)
55b7cf:	00
55b7d0:	33 d2                	xor    %edx,%edx
55b7d2:	33 c9                	xor    %ecx,%ecx
55b7d4:	89 54 24 20          	mov    %edx,0x20(%esp)
55b7d8:	89 4b 34             	mov    %ecx,0x34(%ebx)
55b7db:	33 c0                	xor    %eax,%eax
55b7dd:	33 d2                	xor    %edx,%edx
55b7df:	89 03                	mov    %eax,(%ebx)
55b7e1:	33 c9                	xor    %ecx,%ecx
55b7e3:	c7 43 04 ff ff ff ff 	movl   $0xffffffff,0x4(%ebx)
55b7ea:	c7 43 08 ff ff ff ff 	movl   $0xffffffff,0x8(%ebx)
55b7f1:	89 53 0c             	mov    %edx,0xc(%ebx)
55b7f4:	89 4b 10             	mov    %ecx,0x10(%ebx)
55b7f7:	c7 43 14 ff ff ff ff 	movl   $0xffffffff,0x14(%ebx)
55b7fe:	c7 43 18 ff ff ff ff 	movl   $0xffffffff,0x18(%ebx)
55b805:	33 c0                	xor    %eax,%eax
55b807:	33 d2                	xor    %edx,%edx
55b809:	89 43 1c             	mov    %eax,0x1c(%ebx)
55b80c:	89 53 20             	mov    %edx,0x20(%ebx)
55b80f:	66 8b 4e 10          	mov    0x10(%esi),%cx
55b813:	33 ff                	xor    %edi,%edi
55b815:	66 89 4b 30          	mov    %cx,0x30(%ebx)
55b819:	c7 44 24 24 01 00 00 	movl   $0x1,0x24(%esp)
55b820:	00
55b821:	c7 44 24 28 01 00 00 	movl   $0x1,0x28(%esp)
55b828:	00
55b829:	e9 ab 00 00 00       	jmp    0x55b8d9
55b82e:	0f b7 c7             	movzwl %di,%eax
55b831:	8b 56 14             	mov    0x14(%esi),%edx
55b834:	8b 6e 14             	mov    0x14(%esi),%ebp
55b837:	0f b7 cf             	movzwl %di,%ecx
55b83a:	8b 04 82             	mov    (%edx,%eax,4),%eax
55b83d:	8b 6e 14             	mov    0x14(%esi),%ebp
55b840:	0f b7 cf             	movzwl %di,%ecx
55b843:	8b 50 10             	mov    0x10(%eax),%edx
55b846:	8b 08                	mov    (%eax),%ecx
55b848:	0f af 50 08          	imul   0x8(%eax),%edx
55b84c:	03 d1                	add    %ecx,%edx
55b84e:	8b 6e 14             	mov    0x14(%esi),%ebp
55b851:	0f b7 cf             	movzwl %di,%ecx
55b854:	8b 4c 8d 00          	mov    0x0(%ebp,%ecx,4),%ecx
55b858:	8b 49 08             	mov    0x8(%ecx),%ecx
55b85b:	03 d1                	add    %ecx,%edx
55b85d:	8b 4e 08             	mov    0x8(%esi),%ecx
55b860:	3b d1                	cmp    %ecx,%edx
55b862:	76 33                	jbe    0x55b897
55b864:	0f b7 d7             	movzwl %di,%edx
55b867:	8b 50 14             	mov    0x14(%eax),%edx
55b86a:	8b 4e 14             	mov    0x14(%esi),%ecx
55b86d:	0f af 50 0c          	imul   0xc(%eax),%edx
55b871:	0f b7 cf             	movzwl %di,%ecx
55b874:	0f b7 cf             	movzwl %di,%ecx
55b877:	0f b7 cf             	movzwl %di,%ecx
55b87a:	8b 40 04             	mov    0x4(%eax),%eax
55b87d:	8b 6e 14             	mov    0x14(%esi),%ebp
55b880:	03 d0                	add    %eax,%edx
55b882:	8b 46 14             	mov    0x14(%esi),%eax
55b885:	8b 6e 14             	mov    0x14(%esi),%ebp
55b888:	8b 0c 88             	mov    (%eax,%ecx,4),%ecx
55b88b:	8b 41 0c             	mov    0xc(%ecx),%eax
55b88e:	8b 4e 0c             	mov    0xc(%esi),%ecx
55b891:	03 d0                	add    %eax,%edx
55b893:	3b d1                	cmp    %ecx,%edx
55b895:	77 17                	ja     0x55b8ae
55b897:	68 24 d9 69 00       	push   $0x69d924
55b89c:	68 80 2e 6a 00       	push   $0x6a2e80
55b8a1:	e8 26 e8 01 00       	call   0x57a0cc
55b8a6:	83 c4 08             	add    $0x8,%esp
55b8a9:	e9 fa 0a 00 00       	jmp    0x55c3a8
55b8ae:	0f b7 d7             	movzwl %di,%edx
55b8b1:	8b 46 14             	mov    0x14(%esi),%eax
55b8b4:	8b 14 90             	mov    (%eax,%edx,4),%edx
55b8b7:	0f b7 c7             	movzwl %di,%eax
55b8ba:	8b 4a 08             	mov    0x8(%edx),%ecx
55b8bd:	0f af 4c 24 24       	imul   0x24(%esp),%ecx
55b8c2:	89 4c 24 24          	mov    %ecx,0x24(%esp)
55b8c6:	8b 56 14             	mov    0x14(%esi),%edx
55b8c9:	8b 0c 82             	mov    (%edx,%eax,4),%ecx
55b8cc:	8b 41 0c             	mov    0xc(%ecx),%eax
55b8cf:	0f af 44 24 28       	imul   0x28(%esp),%eax
55b8d4:	89 44 24 28          	mov    %eax,0x28(%esp)
55b8d8:	47                   	inc    %edi
55b8d9:	66 3b 7e 10          	cmp    0x10(%esi),%di
55b8dd:	0f 82 4b ff ff ff    	jb     0x55b82e
55b8e3:	0f b7 53 30          	movzwl 0x30(%ebx),%edx
55b8e7:	8b c2                	mov    %edx,%eax
55b8e9:	c1 e0 03             	shl    $0x3,%eax
55b8ec:	8d 04 40             	lea    (%eax,%eax,2),%eax
55b8ef:	8d 04 c0             	lea    (%eax,%eax,8),%eax
55b8f2:	e8 85 ca 01 00       	call   0x57837c
55b8f7:	89 43 34             	mov    %eax,0x34(%ebx)
55b8fa:	85 c0                	test   %eax,%eax
55b8fc:	0f 84 a6 0a 00 00    	je     0x55c3a8
55b902:	33 ff                	xor    %edi,%edi
55b904:	8b 6b 34             	mov    0x34(%ebx),%ebp
55b907:	eb 5c                	jmp    0x55b965
55b909:	0f b7 c7             	movzwl %di,%eax
55b90c:	8b 56 14             	mov    0x14(%esi),%edx
55b90f:	8b 0c 82             	mov    (%edx,%eax,4),%ecx
55b912:	8a 51 08             	mov    0x8(%ecx),%dl
55b915:	88 55 00             	mov    %dl,0x0(%ebp)
55b918:	8b 4e 14             	mov    0x14(%esi),%ecx
55b91b:	8b 14 81             	mov    (%ecx,%eax,4),%edx
55b91e:	8a 4a 0c             	mov    0xc(%edx),%cl
55b921:	88 4d 01             	mov    %cl,0x1(%ebp)
55b924:	c6 45 02 00          	movb   $0x0,0x2(%ebp)
55b928:	c6 45 02 00          	movb   $0x0,0x2(%ebp)
55b92c:	8b 56 14             	mov    0x14(%esi),%edx
55b92f:	8b 0c 82             	mov    (%edx,%eax,4),%ecx
55b932:	8a 51 18             	mov    0x18(%ecx),%dl
55b935:	88 55 04             	mov    %dl,0x4(%ebp)
55b938:	8d 55 0e             	lea    0xe(%ebp),%edx
55b93b:	8b 4e 14             	mov    0x14(%esi),%ecx
55b93e:	8b 04 81             	mov    (%ecx,%eax,4),%eax
55b941:	0f b6 40 1a          	movzbl 0x1a(%eax),%eax
55b945:	89 45 08             	mov    %eax,0x8(%ebp)
55b948:	66 c7 45 0c 00 00    	movw   $0x0,0xc(%ebp)
55b94e:	68 c8 00 00 00       	push   $0xc8
55b953:	6a 00                	push   $0x0
55b955:	52                   	push   %edx
55b956:	e8 4d f1 ff ff       	call   0x55aaa8
55b95b:	83 c4 0c             	add    $0xc,%esp
55b95e:	47                   	inc    %edi
55b95f:	81 c5 d8 00 00 00    	add    $0xd8,%ebp
55b965:	66 3b 7b 30          	cmp    0x30(%ebx),%di
55b969:	72 9e                	jb     0x55b909
55b96b:	8b c6                	mov    %esi,%eax
55b96d:	e8 42 9c 01 00       	call   0x5755b4
55b972:	8d 6b 38             	lea    0x38(%ebx),%ebp
55b975:	89 83 dc 00 00 00    	mov    %eax,0xdc(%ebx)
55b97b:	c7 83 d8 00 00 00 ff 	movl   $0xffffffff,0xd8(%ebx)
55b982:	ff ff ff
55b985:	c6 45 04 00          	movb   $0x0,0x4(%ebp)
55b989:	c7 45 00 01 00 00 00 	movl   $0x1,0x0(%ebp)
55b990:	c6 45 05 00          	movb   $0x0,0x5(%ebp)
55b994:	66 c7 45 08 01 00    	movw   $0x1,0x8(%ebp)
55b99a:	33 c0                	xor    %eax,%eax
55b99c:	8d 53 48             	lea    0x48(%ebx),%edx
55b99f:	89 45 0c             	mov    %eax,0xc(%ebp)
55b9a2:	89 54 24 14          	mov    %edx,0x14(%esp)
55b9a6:	8b 4c 24 14          	mov    0x14(%esp),%ecx
55b9aa:	c6 01 00             	movb   $0x0,(%ecx)
55b9ad:	8b 44 24 14          	mov    0x14(%esp),%eax
55b9b1:	c6 40 01 06          	movb   $0x6,0x1(%eax)