555442:	4e                   	dec    %esi
555443:	75 a5                	jne    0x5553ea
555445:	8b 43 70             	mov    0x70(%ebx),%eax
555448:	8b 53 44             	mov    0x44(%ebx),%edx
55544b:	3b c2                	cmp    %edx,%eax
55544d:	76 0e                	jbe    0x55545d
55544f:	8b c8                	mov    %eax,%ecx
555451:	2b ca                	sub    %edx,%ecx
555453:	8b c3                	mov    %ebx,%eax
555455:	8b 53 6c             	mov    0x6c(%ebx),%edx
555458:	e8 f3 ec ff ff       	call   0x554150
55545d:	8d 43 34             	lea    0x34(%ebx),%eax
555460:	e8 43 17 fd ff       	call   0x526ba8
555465:	5e                   	pop    %esi
555466:	5b                   	pop    %ebx
555467:	c3                   	ret
555468:	53                   	push   %ebx
555469:	56                   	push   %esi
55546a:	57                   	push   %edi
55546b:	55                   	push   %ebp
55546c:	83 c4 a8             	add    $0xffffffa8,%esp
55546f:	8b f9                	mov    %ecx,%edi
555471:	8b ea                	mov    %edx,%ebp
555473:	8b f0                	mov    %eax,%esi
555475:	83 ff 06             	cmp    $0x6,%edi
555478:	0f 8d fb 02 00 00    	jge    0x555779
55547e:	8a 46 0b             	mov    0xb(%esi),%al
555481:	fe c8                	dec    %al
555483:	74 15                	je     0x55549a
555485:	fe c8                	dec    %al
555487:	0f 84 cb 00 00 00    	je     0x555558
55548d:	2c 02                	sub    $0x2,%al
55548f:	0f 84 86 01 00 00    	je     0x55561b
555495:	e9 3d 02 00 00       	jmp    0x5556d7
55549a:	8b 16                	mov    (%esi),%edx
55549c:	33 c9                	xor    %ecx,%ecx
55549e:	89 54 24 14          	mov    %edx,0x14(%esp)
5554a2:	89 6c 24 04          	mov    %ebp,0x4(%esp)
5554a6:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
5554aa:	8d 1c bd 50 d4 69 00 	lea    0x69d450(,%edi,4),%ebx
5554b1:	c7 44 24 08 07 00 00 	movl   $0x7,0x8(%esp)
5554b8:	00
5554b9:	8b 04 bd 34 d4 69 00 	mov    0x69d434(,%edi,4),%eax
5554c0:	89 44 24 10          	mov    %eax,0x10(%esp)
5554c4:	8b 44 24 10          	mov    0x10(%esp),%eax
5554c8:	8b 54 24 14          	mov    0x14(%esp),%edx
5554cc:	3b c2                	cmp    %edx,%eax
5554ce:	73 6c                	jae    0x55553c
5554d0:	8b 4c 24 10          	mov    0x10(%esp),%ecx
5554d4:	c1 e9 03             	shr    $0x3,%ecx
5554d7:	03 cd                	add    %ebp,%ecx
5554d9:	89 0c 24             	mov    %ecx,(%esp)
5554dc:	b9 07 00 00 00       	mov    $0x7,%ecx
5554e1:	8b 44 24 10          	mov    0x10(%esp),%eax
5554e5:	8b 14 24             	mov    (%esp),%edx
5554e8:	83 e0 07             	and    $0x7,%eax
5554eb:	2b c8                	sub    %eax,%ecx
5554ed:	33 c0                	xor    %eax,%eax
5554ef:	8a 02                	mov    (%edx),%al
5554f1:	d3 f8                	sar    %cl,%eax
5554f3:	8b 4c 24 08          	mov    0x8(%esp),%ecx
5554f7:	83 e0 01             	and    $0x1,%eax
5554fa:	d3 e0                	shl    %cl,%eax
5554fc:	09 44 24 0c          	or     %eax,0xc(%esp)
555500:	8b 54 24 08          	mov    0x8(%esp),%edx
555504:	85 d2                	test   %edx,%edx
555506:	75 1e                	jne    0x555526
555508:	c7 44 24 08 07 00 00 	movl   $0x7,0x8(%esp)
55550f:	00
555510:	8a 44 24 0c          	mov    0xc(%esp),%al
555514:	8b 54 24 04          	mov    0x4(%esp),%edx
555518:	88 02                	mov    %al,(%edx)
55551a:	ff 44 24 04          	incl   0x4(%esp)
55551e:	33 c9                	xor    %ecx,%ecx
555520:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
555524:	eb 04                	jmp    0x55552a
555526:	ff 4c 24 08          	decl   0x8(%esp)
55552a:	8b 03                	mov    (%ebx),%eax
55552c:	01 44 24 10          	add    %eax,0x10(%esp)
555530:	8b 54 24 10          	mov    0x10(%esp),%edx
555534:	8b 4c 24 14          	mov    0x14(%esp),%ecx
555538:	3b d1                	cmp    %ecx,%edx
55553a:	72 94                	jb     0x5554d0
55553c:	8b 44 24 08          	mov    0x8(%esp),%eax
555540:	83 f8 07             	cmp    $0x7,%eax
555543:	0f 84 01 02 00 00    	je     0x55574a
555549:	8a 54 24 0c          	mov    0xc(%esp),%dl
55554d:	8b 4c 24 04          	mov    0x4(%esp),%ecx
555551:	88 11                	mov    %dl,(%ecx)
555553:	e9 f2 01 00 00       	jmp    0x55574a
555558:	8b 06                	mov    (%esi),%eax
55555a:	33 d2                	xor    %edx,%edx
55555c:	89 44 24 2c          	mov    %eax,0x2c(%esp)
555560:	89 6c 24 1c          	mov    %ebp,0x1c(%esp)
555564:	c7 44 24 20 06 00 00 	movl   $0x6,0x20(%esp)
55556b:	00
55556c:	89 54 24 24          	mov    %edx,0x24(%esp)
555570:	8d 1c bd 50 d4 69 00 	lea    0x69d450(,%edi,4),%ebx
555577:	8b 0c bd 34 d4 69 00 	mov    0x69d434(,%edi,4),%ecx
55557e:	89 4c 24 28          	mov    %ecx,0x28(%esp)
555582:	8b 44 24 28          	mov    0x28(%esp),%eax
555586:	8b 54 24 2c          	mov    0x2c(%esp),%edx
55558a:	3b c2                	cmp    %edx,%eax
55558c:	73 71                	jae    0x5555ff
55558e:	8b 4c 24 28          	mov    0x28(%esp),%ecx
555592:	c1 e9 02             	shr    $0x2,%ecx
555595:	03 cd                	add    %ebp,%ecx
555597:	89 4c 24 18          	mov    %ecx,0x18(%esp)
55559b:	b9 03 00 00 00       	mov    $0x3,%ecx
5555a0:	8b 44 24 28          	mov    0x28(%esp),%eax
5555a4:	8b 54 24 18          	mov    0x18(%esp),%edx
5555a8:	83 e0 03             	and    $0x3,%eax
5555ab:	2b c8                	sub    %eax,%ecx
5555ad:	33 c0                	xor    %eax,%eax
5555af:	8a 02                	mov    (%edx),%al
5555b1:	03 c9                	add    %ecx,%ecx
5555b3:	d3 f8                	sar    %cl,%eax
5555b5:	8b 4c 24 20          	mov    0x20(%esp),%ecx
5555b9:	83 e0 03             	and    $0x3,%eax
5555bc:	d3 e0                	shl    %cl,%eax
5555be:	09 44 24 24          	or     %eax,0x24(%esp)
5555c2:	8b 54 24 20          	mov    0x20(%esp),%edx
5555c6:	85 d2                	test   %edx,%edx
5555c8:	75 1e                	jne    0x5555e8
5555ca:	c7 44 24 20 06 00 00 	movl   $0x6,0x20(%esp)
5555d1:	00
5555d2:	8a 44 24 24          	mov    0x24(%esp),%al
5555d6:	8b 54 24 1c          	mov    0x1c(%esp),%edx
5555da:	88 02                	mov    %al,(%edx)
5555dc:	ff 44 24 1c          	incl   0x1c(%esp)
5555e0:	33 c9                	xor    %ecx,%ecx
5555e2:	89 4c 24 24          	mov    %ecx,0x24(%esp)
5555e6:	eb 05                	jmp    0x5555ed
5555e8:	83 6c 24 20 02       	subl   $0x2,0x20(%esp)
5555ed:	8b 03                	mov    (%ebx),%eax
5555ef:	01 44 24 28          	add    %eax,0x28(%esp)
5555f3:	8b 54 24 28          	mov    0x28(%esp),%edx
5555f7:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
5555fb:	3b d1                	cmp    %ecx,%edx
5555fd:	72 8f                	jb     0x55558e
5555ff:	8b 44 24 20          	mov    0x20(%esp),%eax
555603:	83 f8 06             	cmp    $0x6,%eax
555606:	0f 84 3e 01 00 00    	je     0x55574a
55560c:	8a 54 24 24          	mov    0x24(%esp),%dl
555610:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
555614:	88 11                	mov    %dl,(%ecx)
555616:	e9 2f 01 00 00       	jmp    0x55574a
55561b:	8b 06                	mov    (%esi),%eax
55561d:	33 d2                	xor    %edx,%edx
55561f:	89 44 24 44          	mov    %eax,0x44(%esp)
555623:	89 6c 24 34          	mov    %ebp,0x34(%esp)
555627:	c7 44 24 38 04 00 00 	movl   $0x4,0x38(%esp)
55562e:	00
55562f:	89 54 24 3c          	mov    %edx,0x3c(%esp)
555633:	8d 1c bd 50 d4 69 00 	lea    0x69d450(,%edi,4),%ebx
55563a:	8b 0c bd 34 d4 69 00 	mov    0x69d434(,%edi,4),%ecx
555641:	89 4c 24 40          	mov    %ecx,0x40(%esp)
555645:	8b 44 24 40          	mov    0x40(%esp),%eax
555649:	8b 54 24 44          	mov    0x44(%esp),%edx
55564d:	3b c2                	cmp    %edx,%eax
55564f:	73 71                	jae    0x5556c2
555651:	8b 4c 24 40          	mov    0x40(%esp),%ecx
555655:	d1 e9                	shr    $1,%ecx
555657:	03 cd                	add    %ebp,%ecx
555659:	89 4c 24 30          	mov    %ecx,0x30(%esp)
55565d:	b9 01 00 00 00       	mov    $0x1,%ecx
555662:	8b 44 24 40          	mov    0x40(%esp),%eax
555666:	8b 54 24 30          	mov    0x30(%esp),%edx
55566a:	83 e0 01             	and    $0x1,%eax
55566d:	2b c8                	sub    %eax,%ecx
55566f:	33 c0                	xor    %eax,%eax
555671:	c1 e1 02             	shl    $0x2,%ecx
555674:	8a 02                	mov    (%edx),%al
555676:	d3 f8                	sar    %cl,%eax
555678:	8b 4c 24 38          	mov    0x38(%esp),%ecx
55567c:	83 e0 0f             	and    $0xf,%eax
55567f:	d3 e0                	shl    %cl,%eax
555681:	09 44 24 3c          	or     %eax,0x3c(%esp)
555685:	8b 54 24 38          	mov    0x38(%esp),%edx
555689:	85 d2                	test   %edx,%edx
55568b:	75 1e                	jne    0x5556ab
55568d:	c7 44 24 38 04 00 00 	movl   $0x4,0x38(%esp)
555694:	00
555695:	8a 44 24 3c          	mov    0x3c(%esp),%al
555699:	8b 54 24 34          	mov    0x34(%esp),%edx
55569d:	88 02                	mov    %al,(%edx)
55569f:	ff 44 24 34          	incl   0x34(%esp)
5556a3:	33 c9                	xor    %ecx,%ecx
5556a5:	89 4c 24 3c          	mov    %ecx,0x3c(%esp)
5556a9:	eb 05                	jmp    0x5556b0
5556ab:	83 6c 24 38 04       	subl   $0x4,0x38(%esp)
5556b0:	8b 03                	mov    (%ebx),%eax
5556b2:	01 44 24 40          	add    %eax,0x40(%esp)
5556b6:	8b 54 24 40          	mov    0x40(%esp),%edx
5556ba:	8b 4c 24 44          	mov    0x44(%esp),%ecx
5556be:	3b d1                	cmp    %ecx,%edx
5556c0:	72 8f                	jb     0x555651
5556c2:	8b 44 24 38          	mov    0x38(%esp),%eax
5556c6:	83 f8 04             	cmp    $0x4,%eax
5556c9:	74 7f                	je     0x55574a
5556cb:	8a 54 24 3c          	mov    0x3c(%esp),%dl
5556cf:	8b 4c 24 34          	mov    0x34(%esp),%ecx
5556d3:	88 11                	mov    %dl,(%ecx)
5556d5:	eb 73                	jmp    0x55574a
5556d7:	8b 06                	mov    (%esi),%eax
5556d9:	33 d2                	xor    %edx,%edx
5556db:	89 44 24 50          	mov    %eax,0x50(%esp)
5556df:	89 6c 24 48          	mov    %ebp,0x48(%esp)
5556e3:	8a 56 0b             	mov    0xb(%esi),%dl
5556e6:	8d 1c bd 50 d4 69 00 	lea    0x69d450(,%edi,4),%ebx
5556ed:	c1 fa 03             	sar    $0x3,%edx
5556f0:	89 54 24 54          	mov    %edx,0x54(%esp)
5556f4:	8b 0c bd 34 d4 69 00 	mov    0x69d434(,%edi,4),%ecx
5556fb:	89 4c 24 4c          	mov    %ecx,0x4c(%esp)
5556ff:	8b 44 24 4c          	mov    0x4c(%esp),%eax
555703:	8b 54 24 50          	mov    0x50(%esp),%edx
555707:	3b c2                	cmp    %edx,%eax
555709:	73 3f                	jae    0x55574a
55570b:	8b 44 24 4c          	mov    0x4c(%esp),%eax
55570f:	f7 6c 24 54          	imull  0x54(%esp)
555713:	03 c5                	add    %ebp,%eax
555715:	8b 54 24 48          	mov    0x48(%esp),%edx
555719:	3b c2                	cmp    %edx,%eax
55571b:	74 13                	je     0x555730
55571d:	8b 4c 24 54          	mov    0x54(%esp),%ecx
555721:	51                   	push   %ecx
555722:	50                   	push   %eax
555723:	8b 44 24 50          	mov    0x50(%esp),%eax
555727:	50                   	push   %eax
555728:	e8 b3 0c fd ff       	call   0x5263e0
55572d:	83 c4 0c             	add    $0xc,%esp
555730:	8b 54 24 54          	mov    0x54(%esp),%edx
555734:	01 54 24 48          	add    %edx,0x48(%esp)
555738:	8b 0b                	mov    (%ebx),%ecx
55573a:	01 4c 24 4c          	add    %ecx,0x4c(%esp)
55573e:	8b 44 24 4c          	mov    0x4c(%esp),%eax
555742:	8b 54 24 50          	mov    0x50(%esp),%edx
555746:	3b c2                	cmp    %edx,%eax
555748:	72 c1                	jb     0x55570b
55574a:	8b 0c bd 50 d4 69 00 	mov    0x69d450(,%edi,4),%ecx
555751:	8b c1                	mov    %ecx,%eax
555753:	8b 16                	mov    (%esi),%edx
555755:	03 c2                	add    %edx,%eax
555757:	48                   	dec    %eax
555758:	8b 14 bd 34 d4 69 00 	mov    0x69d434(,%edi,4),%edx
55575f:	2b c2                	sub    %edx,%eax
555761:	33 d2                	xor    %edx,%edx
555763:	f7 f1                	div    %ecx
555765:	8b d8                	mov    %eax,%ebx
555767:	89 1e                	mov    %ebx,(%esi)
555769:	33 c0                	xor    %eax,%eax
55576b:	8a 46 0b             	mov    0xb(%esi),%al
55576e:	f7 eb                	imul   %ebx
555770:	83 c0 07             	add    $0x7,%eax
555773:	c1 e8 03             	shr    $0x3,%eax
555776:	89 46 04             	mov    %eax,0x4(%esi)
555779:	83 c4 58             	add    $0x58,%esp
55577c:	5d                   	pop    %ebp
55577d:	5f                   	pop    %edi
55577e:	5e                   	pop    %esi
55577f:	5b                   	pop    %ebx
555780:	c3                   	ret
555781:	90                   	nop
555782:	90                   	nop
555783:	90                   	nop
555784:	53                   	push   %ebx
555785:	56                   	push   %esi
555786:	57                   	push   %edi
555787:	55                   	push   %ebp
555788:	81 c4 a8 fe ff ff    	add    $0xfffffea8,%esp
55578e:	8b d8                	mov    %eax,%ebx
555790:	89 14 24             	mov    %edx,(%esp)
555793:	8a 83 e5 00 00 00    	mov    0xe5(%ebx),%al
555799:	88 44 24 14          	mov    %al,0x14(%esp)
55579d:	0f b6 b3 b9 01 00 00 	movzbl 0x1b9(%ebx),%esi
5557a4:	8b 04 24             	mov    (%esp),%eax
5557a7:	8b 14 24             	mov    (%esp),%edx
5557aa:	0f b6 40 0b          	movzbl 0xb(%eax),%eax
5557ae:	83 c0 07             	add    $0x7,%eax
5557b1:	8b 6a 04             	mov    0x4(%edx),%ebp
5557b4:	85 c0                	test   %eax,%eax
5557b6:	79 03                	jns    0x5557bb
5557b8:	83 c0 07             	add    $0x7,%eax
5557bb:	c1 f8 03             	sar    $0x3,%eax
5557be:	8b 93 a8 00 00 00    	mov    0xa8(%ebx),%edx
5557c4:	89 54 24 04          	mov    %edx,0x4(%esp)
5557c8:	8b 8b ac 00 00 00    	mov    0xac(%ebx),%ecx
5557ce:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
5557d2:	89 4c 24 08          	mov    %ecx,0x8(%esp)
5557d6:	c7 44 24 10 ff ff ff 	movl   $0x7fffffff,0x10(%esp)
5557dd:	7f
5557de:	f6 44 24 14 08       	testb  $0x8,0x14(%esp)
5557e3:	0f 84 32 01 00 00    	je     0x55591b
5557e9:	8a 54 24 14          	mov    0x14(%esp),%dl
5557ed:	80 fa 08             	cmp    $0x8,%dl
5557f0:	0f 84 25 01 00 00    	je     0x55591b
5557f6:	33 d2                	xor    %edx,%edx
5557f8:	33 c9                	xor    %ecx,%ecx
5557fa:	89 54 24 1c          	mov    %edx,0x1c(%esp)
5557fe:	89 4c 24 20          	mov    %ecx,0x20(%esp)
555802:	8b 54 24 0c          	mov    0xc(%esp),%edx
555806:	42                   	inc    %edx
555807:	89 54 24 18          	mov    %edx,0x18(%esp)
55580b:	8b 4c 24 20          	mov    0x20(%esp),%ecx
55580f:	3b e9                	cmp    %ecx,%ebp
555811:	76 3d                	jbe    0x555850
555813:	8b 54 24 18          	mov    0x18(%esp),%edx
555817:	33 c9                	xor    %ecx,%ecx
555819:	8a 0a                	mov    (%edx),%cl
55581b:	89 4c 24 24          	mov    %ecx,0x24(%esp)
55581f:	8b 54 24 24          	mov    0x24(%esp),%edx
555823:	81 fa 80 00 00 00    	cmp    $0x80,%edx
555829:	7d 06                	jge    0x555831
55582b:	8b 4c 24 24          	mov    0x24(%esp),%ecx
55582f:	eb 0b                	jmp    0x55583c
555831:	b9 00 01 00 00       	mov    $0x100,%ecx
555836:	8b 54 24 24          	mov    0x24(%esp),%edx
55583a:	2b ca                	sub    %edx,%ecx
55583c:	01 4c 24 1c          	add    %ecx,0x1c(%esp)
555840:	ff 44 24 20          	incl   0x20(%esp)
555844:	ff 44 24 18          	incl   0x18(%esp)
555848:	8b 54 24 20          	mov    0x20(%esp),%edx
55584c:	3b ea                	cmp    %edx,%ebp
55584e:	77 c3                	ja     0x555813
555850:	8a 8b b8 01 00 00    	mov    0x1b8(%ebx),%cl
555856:	80 f9 02             	cmp    $0x2,%cl
555859:	0f 85 b4 00 00 00    	jne    0x555913
55585f:	8b 54 24 1c          	mov    0x1c(%esp),%edx
555863:	81 e2 ff ff 00 00    	and    $0xffff,%edx
555869:	89 54 24 2c          	mov    %edx,0x2c(%esp)
55586d:	33 d2                	xor    %edx,%edx
55586f:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
555873:	c1 e9 0a             	shr    $0xa,%ecx
555876:	81 e1 c0 ff 3f 00    	and    $0x3fffc0,%ecx
55587c:	3b f2                	cmp    %edx,%esi
55587e:	89 4c 24 28          	mov    %ecx,0x28(%esp)
555882:	7e 3e                	jle    0x5558c2
555884:	8b 8b bc 01 00 00    	mov    0x1bc(%ebx),%ecx
55588a:	8a 0c 11             	mov    (%ecx,%edx,1),%cl
55588d:	84 c9                	test   %cl,%cl
55588f:	75 2c                	jne    0x5558bd
555891:	8b 8b c0 01 00 00    	mov    0x1c0(%ebx),%ecx
555897:	0f b7 0c 51          	movzwl (%ecx,%edx,2),%ecx
55589b:	0f af 4c 24 2c       	imul   0x2c(%esp),%ecx
5558a0:	c1 e9 08             	shr    $0x8,%ecx
5558a3:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
5558a7:	8b 8b c0 01 00 00    	mov    0x1c0(%ebx),%ecx
5558ad:	0f b7 0c 51          	movzwl (%ecx,%edx,2),%ecx
5558b1:	0f af 4c 24 28       	imul   0x28(%esp),%ecx
5558b6:	c1 e9 08             	shr    $0x8,%ecx