55c4d6:	33 d2                	xor    %edx,%edx
55c4d8:	33 c9                	xor    %ecx,%ecx
55c4da:	89 53 14             	mov    %edx,0x14(%ebx)
55c4dd:	89 4b 18             	mov    %ecx,0x18(%ebx)
55c4e0:	8b c3                	mov    %ebx,%eax
55c4e2:	eb 0d                	jmp    0x55c4f1
55c4e4:	85 db                	test   %ebx,%ebx
55c4e6:	74 07                	je     0x55c4ef
55c4e8:	8b c3                	mov    %ebx,%eax
55c4ea:	e8 09 00 00 00       	call   0x55c4f8
55c4ef:	33 c0                	xor    %eax,%eax
55c4f1:	5d                   	pop    %ebp
55c4f2:	5f                   	pop    %edi
55c4f3:	5e                   	pop    %esi
55c4f4:	5b                   	pop    %ebx
55c4f5:	c3                   	ret
55c4f6:	90                   	nop
55c4f7:	90                   	nop
55c4f8:	53                   	push   %ebx
55c4f9:	8b d8                	mov    %eax,%ebx
55c4fb:	8b 43 0c             	mov    0xc(%ebx),%eax
55c4fe:	85 c0                	test   %eax,%eax
55c500:	74 05                	je     0x55c507
55c502:	e8 71 24 00 00       	call   0x55e978
55c507:	8b 43 08             	mov    0x8(%ebx),%eax
55c50a:	85 c0                	test   %eax,%eax
55c50c:	74 05                	je     0x55c513
55c50e:	e8 d5 fe ff ff       	call   0x55c3e8
55c513:	8b 43 10             	mov    0x10(%ebx),%eax
55c516:	85 c0                	test   %eax,%eax
55c518:	74 05                	je     0x55c51f
55c51a:	e8 11 98 01 00       	call   0x575d30
55c51f:	8b 43 20             	mov    0x20(%ebx),%eax
55c522:	85 c0                	test   %eax,%eax
55c524:	74 05                	je     0x55c52b
55c526:	e8 11 c2 01 00       	call   0x57873c
55c52b:	8b c3                	mov    %ebx,%eax
55c52d:	e8 52 be 01 00       	call   0x578384
55c532:	5b                   	pop    %ebx
55c533:	c3                   	ret
55c534:	53                   	push   %ebx
55c535:	8b d8                	mov    %eax,%ebx
55c537:	8b c3                	mov    %ebx,%eax
55c539:	e8 26 d0 01 00       	call   0x579564
55c53e:	83 f8 0b             	cmp    $0xb,%eax
55c541:	7c 0f                	jl     0x55c552
55c543:	8d 48 f5             	lea    -0xb(%eax),%ecx
55c546:	d3 fb                	sar    %cl,%ebx
55c548:	81 e3 ff 07 00 00    	and    $0x7ff,%ebx
55c54e:	8b c3                	mov    %ebx,%eax
55c550:	eb 17                	jmp    0x55c569
55c552:	8b c8                	mov    %eax,%ecx
55c554:	ba 01 00 00 00       	mov    $0x1,%edx
55c559:	d3 e2                	shl    %cl,%edx
55c55b:	4a                   	dec    %edx
55c55c:	b9 0b 00 00 00       	mov    $0xb,%ecx
55c561:	2b c8                	sub    %eax,%ecx
55c563:	23 da                	and    %edx,%ebx
55c565:	d3 e3                	shl    %cl,%ebx
55c567:	8b c3                	mov    %ebx,%eax
55c569:	5b                   	pop    %ebx
55c56a:	c3                   	ret
55c56b:	90                   	nop
55c56c:	53                   	push   %ebx
55c56d:	8b d8                	mov    %eax,%ebx
55c56f:	8b c3                	mov    %ebx,%eax
55c571:	e8 ee cf 01 00       	call   0x579564
55c576:	83 c0 f3             	add    $0xfffffff3,%eax
55c579:	5b                   	pop    %ebx
55c57a:	c3                   	ret
55c57b:	90                   	nop
55c57c:	53                   	push   %ebx
55c57d:	56                   	push   %esi
55c57e:	57                   	push   %edi
55c57f:	55                   	push   %ebp
55c580:	81 c4 04 f0 ff ff    	add    $0xfffff004,%esp
55c586:	8b e8                	mov    %eax,%ebp
55c588:	50                   	push   %eax
55c589:	81 c4 40 fc ff ff    	add    $0xfffffc40,%esp
55c58f:	8b 45 04             	mov    0x4(%ebp),%eax
55c592:	8b 5d 08             	mov    0x8(%ebp),%ebx
55c595:	8b 50 3c             	mov    0x3c(%eax),%edx
55c598:	b8 4f ff 00 00       	mov    $0xff4f,%eax
55c59d:	89 14 24             	mov    %edx,(%esp)
55c5a0:	e8 3b 9a 01 00       	call   0x575fe0
55c5a5:	8b f0                	mov    %eax,%esi
55c5a7:	89 75 1c             	mov    %esi,0x1c(%ebp)
55c5aa:	85 f6                	test   %esi,%esi
55c5ac:	75 08                	jne    0x55c5b6
55c5ae:	83 c8 ff             	or     $0xffffffff,%eax
55c5b1:	e9 e5 05 00 00       	jmp    0x55cb9b
55c5b6:	8b ce                	mov    %esi,%ecx
55c5b8:	8b 55 10             	mov    0x10(%ebp),%edx
55c5bb:	8b 45 04             	mov    0x4(%ebp),%eax
55c5be:	e8 25 99 01 00       	call   0x575ee8
55c5c3:	85 c0                	test   %eax,%eax
55c5c5:	74 1a                	je     0x55c5e1
55c5c7:	68 18 dd 69 00       	push   $0x69dd18
55c5cc:	68 80 2e 6a 00       	push   $0x6a2e80
55c5d1:	e8 f6 da 01 00       	call   0x57a0cc
55c5d6:	83 c4 08             	add    $0x8,%esp
55c5d9:	83 c8 ff             	or     $0xffffffff,%eax
55c5dc:	e9 ba 05 00 00       	jmp    0x55cb9b
55c5e1:	8b 45 1c             	mov    0x1c(%ebp),%eax
55c5e4:	e8 3f 9a 01 00       	call   0x576028
55c5e9:	33 d2                	xor    %edx,%edx
55c5eb:	b8 51 ff 00 00       	mov    $0xff51,%eax
55c5f0:	89 55 1c             	mov    %edx,0x1c(%ebp)
55c5f3:	e8 e8 99 01 00       	call   0x575fe0
55c5f8:	8b f0                	mov    %eax,%esi
55c5fa:	89 75 1c             	mov    %esi,0x1c(%ebp)
55c5fd:	85 f6                	test   %esi,%esi
55c5ff:	75 08                	jne    0x55c609
55c601:	83 c8 ff             	or     $0xffffffff,%eax
55c604:	e9 92 05 00 00       	jmp    0x55cb9b
55c609:	83 c6 08             	add    $0x8,%esi
55c60c:	66 c7 06 00 00       	movw   $0x0,(%esi)
55c611:	8b 53 04             	mov    0x4(%ebx),%edx
55c614:	89 56 0c             	mov    %edx,0xc(%esi)
55c617:	8b 4b 08             	mov    0x8(%ebx),%ecx
55c61a:	89 4e 10             	mov    %ecx,0x10(%esi)
55c61d:	8b 43 0c             	mov    0xc(%ebx),%eax
55c620:	89 46 04             	mov    %eax,0x4(%esi)
55c623:	8b 53 10             	mov    0x10(%ebx),%edx
55c626:	89 56 08             	mov    %edx,0x8(%esi)
55c629:	8b 4b 14             	mov    0x14(%ebx),%ecx
55c62c:	89 4e 1c             	mov    %ecx,0x1c(%esi)
55c62f:	8b 43 18             	mov    0x18(%ebx),%eax
55c632:	89 46 20             	mov    %eax,0x20(%esi)
55c635:	8b 53 1c             	mov    0x1c(%ebx),%edx
55c638:	89 56 14             	mov    %edx,0x14(%esi)
55c63b:	8b 4b 20             	mov    0x20(%ebx),%ecx
55c63e:	89 4e 18             	mov    %ecx,0x18(%esi)
55c641:	66 8b 43 30          	mov    0x30(%ebx),%ax
55c645:	66 89 46 24          	mov    %ax,0x24(%esi)
55c649:	0f b7 46 24          	movzwl 0x24(%esi),%eax
55c64d:	c1 e0 02             	shl    $0x2,%eax
55c650:	e8 27 bd 01 00       	call   0x57837c
55c655:	89 46 28             	mov    %eax,0x28(%esi)
55c658:	8b 56 28             	mov    0x28(%esi),%edx
55c65b:	85 d2                	test   %edx,%edx
55c65d:	75 17                	jne    0x55c676
55c65f:	68 de 03 00 00       	push   $0x3de
55c664:	68 3c dd 69 00       	push   $0x69dd3c
55c669:	68 31 dd 69 00       	push   $0x69dd31
55c66e:	e8 cd e4 ff ff       	call   0x55ab40
55c673:	83 c4 0c             	add    $0xc,%esp
55c676:	33 c0                	xor    %eax,%eax
55c678:	eb 4b                	jmp    0x55c6c5
55c67a:	8d 14 40             	lea    (%eax,%eax,2),%edx
55c67d:	8d 14 d2             	lea    (%edx,%edx,8),%edx
55c680:	8b 4b 34             	mov    0x34(%ebx),%ecx
55c683:	8a 4c d1 04          	mov    0x4(%ecx,%edx,8),%cl
55c687:	51                   	push   %ecx
55c688:	8b 4e 28             	mov    0x28(%esi),%ecx
55c68b:	8d 3c 81             	lea    (%ecx,%eax,4),%edi
55c68e:	59                   	pop    %ecx
55c68f:	88 0f                	mov    %cl,(%edi)
55c691:	8b 4b 34             	mov    0x34(%ebx),%ecx
55c694:	8a 4c d1 08          	mov    0x8(%ecx,%edx,8),%cl
55c698:	51                   	push   %ecx
55c699:	8b 4e 28             	mov    0x28(%esi),%ecx
55c69c:	8d 7c 81 01          	lea    0x1(%ecx,%eax,4),%edi
55c6a0:	59                   	pop    %ecx
55c6a1:	88 0f                	mov    %cl,(%edi)
55c6a3:	8b 4b 34             	mov    0x34(%ebx),%ecx
55c6a6:	8a 0c d1             	mov    (%ecx,%edx,8),%cl
55c6a9:	51                   	push   %ecx
55c6aa:	8b 4e 28             	mov    0x28(%esi),%ecx
55c6ad:	8d 7c 81 02          	lea    0x2(%ecx,%eax,4),%edi
55c6b1:	59                   	pop    %ecx
55c6b2:	88 0f                	mov    %cl,(%edi)
55c6b4:	8b 4b 34             	mov    0x34(%ebx),%ecx
55c6b7:	8a 54 d1 01          	mov    0x1(%ecx,%edx,8),%dl
55c6bb:	52                   	push   %edx
55c6bc:	8b 56 28             	mov    0x28(%esi),%edx
55c6bf:	59                   	pop    %ecx
55c6c0:	88 4c 82 03          	mov    %cl,0x3(%edx,%eax,4)
55c6c4:	40                   	inc    %eax
55c6c5:	0f b7 53 30          	movzwl 0x30(%ebx),%edx
55c6c9:	3b c2                	cmp    %edx,%eax
55c6cb:	7c ad                	jl     0x55c67a
55c6cd:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
55c6d0:	8b 55 10             	mov    0x10(%ebp),%edx
55c6d3:	8b 45 04             	mov    0x4(%ebp),%eax
55c6d6:	e8 0d 98 01 00       	call   0x575ee8
55c6db:	85 c0                	test   %eax,%eax
55c6dd:	74 1a                	je     0x55c6f9
55c6df:	68 46 dd 69 00       	push   $0x69dd46
55c6e4:	68 80 2e 6a 00       	push   $0x6a2e80
55c6e9:	e8 de d9 01 00       	call   0x57a0cc
55c6ee:	83 c4 08             	add    $0x8,%esp
55c6f1:	83 c8 ff             	or     $0xffffffff,%eax
55c6f4:	e9 a2 04 00 00       	jmp    0x55cb9b
55c6f9:	8b 45 1c             	mov    0x1c(%ebp),%eax
55c6fc:	e8 27 99 01 00       	call   0x576028
55c701:	33 d2                	xor    %edx,%edx
55c703:	b8 64 ff 00 00       	mov    $0xff64,%eax
55c708:	89 55 1c             	mov    %edx,0x1c(%ebp)
55c70b:	e8 d0 98 01 00       	call   0x575fe0
55c710:	89 45 1c             	mov    %eax,0x1c(%ebp)
55c713:	85 c0                	test   %eax,%eax
55c715:	75 08                	jne    0x55c71f
55c717:	83 c8 ff             	or     $0xffffffff,%eax
55c71a:	e9 7c 04 00 00       	jmp    0x55cb9b
55c71f:	e8 08 ce 01 00       	call   0x57952c
55c724:	50                   	push   %eax
55c725:	68 5f dd 69 00       	push   $0x69dd5f
55c72a:	8d 94 24 c8 0f 00 00 	lea    0xfc8(%esp),%edx
55c731:	52                   	push   %edx
55c732:	e8 7d d9 01 00       	call   0x57a0b4
55c737:	83 c4 0c             	add    $0xc,%esp
55c73a:	8b 75 1c             	mov    0x1c(%ebp),%esi
55c73d:	83 c6 08             	add    $0x8,%esi
55c740:	8d 84 24 c0 0f 00 00 	lea    0xfc0(%esp),%eax
55c747:	50                   	push   %eax
55c748:	e8 23 e4 ff ff       	call   0x55ab70
55c74d:	59                   	pop    %ecx
55c74e:	66 89 46 02          	mov    %ax,0x2(%esi)
55c752:	8d 84 24 c0 0f 00 00 	lea    0xfc0(%esp),%eax
55c759:	66 c7 06 01 00       	movw   $0x1,(%esi)
55c75e:	e8 7d cd 01 00       	call   0x5794e0
55c763:	89 46 04             	mov    %eax,0x4(%esi)
55c766:	85 c0                	test   %eax,%eax
55c768:	75 05                	jne    0x55c76f
55c76a:	e8 d9 e3 ff ff       	call   0x55ab48
55c76f:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
55c772:	8b 55 10             	mov    0x10(%ebp),%edx
55c775:	8b 45 04             	mov    0x4(%ebp),%eax
55c778:	e8 6b 97 01 00       	call   0x575ee8
55c77d:	85 c0                	test   %eax,%eax
55c77f:	74 1a                	je     0x55c79b
55c781:	68 7a dd 69 00       	push   $0x69dd7a
55c786:	68 80 2e 6a 00       	push   $0x6a2e80
55c78b:	e8 3c d9 01 00       	call   0x57a0cc
55c790:	83 c4 08             	add    $0x8,%esp
55c793:	83 c8 ff             	or     $0xffffffff,%eax
55c796:	e9 00 04 00 00       	jmp    0x55cb9b
55c79b:	8b 45 1c             	mov    0x1c(%ebp),%eax
55c79e:	e8 85 98 01 00       	call   0x576028
55c7a3:	33 d2                	xor    %edx,%edx
55c7a5:	8d 4b 38             	lea    0x38(%ebx),%ecx
55c7a8:	89 55 1c             	mov    %edx,0x1c(%ebp)
55c7ab:	89 4c 24 08          	mov    %ecx,0x8(%esp)
55c7af:	8d 43 48             	lea    0x48(%ebx),%eax
55c7b2:	33 ff                	xor    %edi,%edi
55c7b4:	89 44 24 04          	mov    %eax,0x4(%esp)
55c7b8:	e9 61 01 00 00       	jmp    0x55c91e
55c7bd:	8b 44 24 04          	mov    0x4(%esp),%eax
55c7c1:	33 d2                	xor    %edx,%edx
55c7c3:	8b 4c 24 04          	mov    0x4(%esp),%ecx
55c7c7:	8a 50 01             	mov    0x1(%eax),%dl
55c7ca:	4a                   	dec    %edx
55c7cb:	33 c0                	xor    %eax,%eax
55c7cd:	8a 41 07             	mov    0x7(%ecx),%al
55c7d0:	e8 7b 1b 01 00       	call   0x56e350
55c7d5:	8b f0                	mov    %eax,%esi
55c7d7:	8b 44 24 04          	mov    0x4(%esp),%eax
55c7db:	8a 48 01             	mov    0x1(%eax),%cl
55c7de:	b8 01 00 00 00       	mov    $0x1,%eax
55c7e3:	d3 e0                	shl    %cl,%eax
55c7e5:	50                   	push   %eax
55c7e6:	50                   	push   %eax
55c7e7:	8d 54 24 28          	lea    0x28(%esp),%edx
55c7eb:	33 c9                	xor    %ecx,%ecx
55c7ed:	52                   	push   %edx
55c7ee:	33 d2                	xor    %edx,%edx
55c7f0:	8b c6                	mov    %esi,%eax
55c7f2:	e8 9d 14 01 00       	call   0x56dc94
55c7f7:	8b c6                	mov    %esi,%eax
55c7f9:	e8 ee 11 01 00       	call   0x56d9ec
55c7fe:	0f b7 d7             	movzwl %di,%edx
55c801:	8b 4c 24 08          	mov    0x8(%esp),%ecx
55c805:	33 c0                	xor    %eax,%eax
55c807:	8a 41 06             	mov    0x6(%ecx),%al
55c80a:	e8 cd 3e 01 00       	call   0x5706dc
55c80f:	8b 54 24 04          	mov    0x4(%esp),%edx
55c813:	33 c9                	xor    %ecx,%ecx
55c815:	33 f6                	xor    %esi,%esi
55c817:	8a 4a 01             	mov    0x1(%edx),%cl
55c81a:	8d 04 49             	lea    (%ecx,%ecx,2),%eax
55c81d:	66 05 fe ff          	add    $0xfffe,%ax
55c821:	66 89 44 24 10       	mov    %ax,0x10(%esp)
55c826:	8d 44 24 20          	lea    0x20(%esp),%eax
55c82a:	89 44 24 0c          	mov    %eax,0xc(%esp)
55c82e:	66 3b 74 24 10       	cmp    0x10(%esp),%si
55c833:	0f 83 ce 00 00 00    	jae    0x55c907
55c839:	66 85 f6             	test   %si,%si
55c83c:	74 0f                	je     0x55c84d
55c83e:	0f b7 c6             	movzwl %si,%eax
55c841:	48                   	dec    %eax
55c842:	b9 03 00 00 00       	mov    $0x3,%ecx
55c847:	99                   	cltd
55c848:	f7 f9                	idiv   %ecx
55c84a:	40                   	inc    %eax
55c84b:	eb 02                	jmp    0x55c84f
55c84d:	33 c0                	xor    %eax,%eax
55c84f:	66 89 44 24 12       	mov    %ax,0x12(%esp)
55c854:	8b 54 24 0c          	mov    0xc(%esp),%edx
55c858:	8b 4a 10             	mov    0x10(%edx),%ecx
55c85b:	51                   	push   %ecx
55c85c:	0f b7 4c 24 16       	movzwl 0x16(%esp),%ecx
55c861:	8b 44 24 08          	mov    0x8(%esp),%eax
55c865:	33 d2                	xor    %edx,%edx
55c867:	8a 50 01             	mov    0x1(%eax),%dl
55c86a:	8b 44 24 08          	mov    0x8(%esp),%eax
55c86e:	0f b6 40 07          	movzbl 0x7(%eax),%eax
55c872:	e8 01 06 01 00       	call   0x56ce78
55c877:	66 89 44 24 14       	mov    %ax,0x14(%esp)
55c87c:	8b 54 24 08          	mov    0x8(%esp),%edx
55c880:	8b 0a                	mov    (%edx),%ecx
55c882:	85 c9                	test   %ecx,%ecx
55c884:	75 2d                	jne    0x55c8b3
55c886:	8b 44 24 0c          	mov    0xc(%esp),%eax
55c88a:	8b 40 24             	mov    0x24(%eax),%eax
55c88d:	99                   	cltd
55c88e:	52                   	push   %edx
55c88f:	50                   	push   %eax
55c890:	0f b7 4c 24 1c       	movzwl 0x1c(%esp),%ecx
55c895:	41                   	inc    %ecx
55c896:	b8 01 00 00 00       	mov    $0x1,%eax
55c89b:	d3 e0                	shl    %cl,%eax
55c89d:	c1 e0 0d             	shl    $0xd,%eax
55c8a0:	99                   	cltd
55c8a1:	0f a4 c2 0d          	shld   $0xd,%eax,%edx
55c8a5:	c1 e0 0d             	shl    $0xd,%eax
55c8a8:	e8 fb e7 ff ff       	call   0x55b0a8
55c8ad:	89 44 24 18          	mov    %eax,0x18(%esp)
55c8b1:	eb 08                	jmp    0x55c8bb
55c8b3:	c7 44 24 18 00 20 00 	movl   $0x2000,0x18(%esp)
55c8ba:	00
55c8bb:	0f b7 d7             	movzwl %di,%edx
55c8be:	8b 43 34             	mov    0x34(%ebx),%eax
55c8c1:	8d 0c 52             	lea    (%edx,%edx,2),%ecx
55c8c4:	33 d2                	xor    %edx,%edx
55c8c6:	8d 0c c9             	lea    (%ecx,%ecx,8),%ecx
55c8c9:	8a 54 c8 04          	mov    0x4(%eax,%ecx,8),%dl
55c8cd:	8b 44 24 18          	mov    0x18(%esp),%eax
55c8d1:	0f b7 4c 24 14       	movzwl 0x14(%esp),%ecx
55c8d6:	03 d1                	add    %ecx,%edx
55c8d8:	e8 1f ed ff ff       	call   0x55b5fc
55c8dd:	0f b7 d7             	movzwl %di,%edx
55c8e0:	8d 0c 52             	lea    (%edx,%edx,2),%ecx
55c8e3:	8d 0c c9             	lea    (%ecx,%ecx,8),%ecx
55c8e6:	8b 53 34             	mov    0x34(%ebx),%edx
55c8e9:	8d 0c ca             	lea    (%edx,%ecx,8),%ecx
55c8ec:	51                   	push   %ecx
55c8ed:	0f b7 d6             	movzwl %si,%edx
55c8f0:	59                   	pop    %ecx
55c8f1:	66 89 44 51 0e       	mov    %ax,0xe(%ecx,%edx,2)