551402:	83 f8 03             	cmp    $0x3,%eax
551405:	74 08                	je     0x55140f
551407:	8b 55 fc             	mov    -0x4(%ebp),%edx
55140a:	83 fa 02             	cmp    $0x2,%edx
55140d:	75 09                	jne    0x551418
55140f:	81 4b 2c 00 80 00 00 	orl    $0x8000,0x2c(%ebx)
551416:	eb 07                	jmp    0x55141f
551418:	81 63 2c ff 7f ff ff 	andl   $0xffff7fff,0x2c(%ebx)
55141f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
551422:	83 f9 03             	cmp    $0x3,%ecx
551425:	75 0c                	jne    0x551433
551427:	81 4b 2c 00 00 01 00 	orl    $0x10000,0x2c(%ebx)
55142e:	e9 ba 00 00 00       	jmp    0x5514ed
551433:	81 63 2c ff ff fe ff 	andl   $0xfffeffff,0x2c(%ebx)
55143a:	e9 ae 00 00 00       	jmp    0x5514ed
55143f:	85 ff                	test   %edi,%edi
551441:	0f 84 a6 00 00 00    	je     0x5514ed
551447:	8b 83 dc 01 00 00    	mov    0x1dc(%ebx),%eax
55144d:	89 45 f4             	mov    %eax,-0xc(%ebp)
551450:	8b c3                	mov    %ebx,%eax
551452:	8b 55 f4             	mov    -0xc(%ebp),%edx
551455:	03 d6                	add    %esi,%edx
551457:	8d 14 92             	lea    (%edx,%edx,4),%edx
55145a:	e8 95 06 00 00       	call   0x551af4
55145f:	89 45 f8             	mov    %eax,-0x8(%ebp)
551462:	8b 83 e0 01 00 00    	mov    0x1e0(%ebx),%eax
551468:	85 c0                	test   %eax,%eax
55146a:	74 29                	je     0x551495
55146c:	8b 55 f4             	mov    -0xc(%ebp),%edx
55146f:	8d 14 92             	lea    (%edx,%edx,4),%edx
551472:	52                   	push   %edx
551473:	50                   	push   %eax
551474:	8b 4d f8             	mov    -0x8(%ebp),%ecx
551477:	51                   	push   %ecx
551478:	e8 63 4f fd ff       	call   0x5263e0
55147d:	83 c4 0c             	add    $0xc,%esp
551480:	8b 93 e0 01 00 00    	mov    0x1e0(%ebx),%edx
551486:	8b c3                	mov    %ebx,%eax
551488:	e8 db 06 00 00       	call   0x551b68
55148d:	33 c9                	xor    %ecx,%ecx
55148f:	89 8b e0 01 00 00    	mov    %ecx,0x1e0(%ebx)
551495:	8d 04 b6             	lea    (%esi,%esi,4),%eax
551498:	50                   	push   %eax
551499:	57                   	push   %edi
55149a:	8b 55 f4             	mov    -0xc(%ebp),%edx
55149d:	8d 14 92             	lea    (%edx,%edx,4),%edx
5514a0:	8b 4d f8             	mov    -0x8(%ebp),%ecx
5514a3:	03 d1                	add    %ecx,%edx
5514a5:	52                   	push   %edx
5514a6:	e8 35 4f fd ff       	call   0x5263e0
5514ab:	83 c4 0c             	add    $0xc,%esp
5514ae:	8b 45 f4             	mov    -0xc(%ebp),%eax
5514b1:	8d 04 80             	lea    (%eax,%eax,4),%eax
5514b4:	8b 55 f8             	mov    -0x8(%ebp),%edx
5514b7:	03 c2                	add    %edx,%eax
5514b9:	83 c0 04             	add    $0x4,%eax
5514bc:	33 d2                	xor    %edx,%edx
5514be:	3b f2                	cmp    %edx,%esi
5514c0:	7e 0d                	jle    0x5514cf
5514c2:	8a 4d fc             	mov    -0x4(%ebp),%cl
5514c5:	42                   	inc    %edx
5514c6:	88 08                	mov    %cl,(%eax)
5514c8:	83 c0 05             	add    $0x5,%eax
5514cb:	3b f2                	cmp    %edx,%esi
5514cd:	7f f3                	jg     0x5514c2
5514cf:	8b 45 f4             	mov    -0xc(%ebp),%eax
5514d2:	03 f0                	add    %eax,%esi
5514d4:	89 b3 dc 01 00 00    	mov    %esi,0x1dc(%ebx)
5514da:	8b 45 f8             	mov    -0x8(%ebp),%eax
5514dd:	89 83 e0 01 00 00    	mov    %eax,0x1e0(%ebx)
5514e3:	81 8b d0 01 00 00 00 	orl    $0x400,0x1d0(%ebx)
5514ea:	04 00 00
5514ed:	5f                   	pop    %edi
5514ee:	5e                   	pop    %esi
5514ef:	5b                   	pop    %ebx
5514f0:	8b e5                	mov    %ebp,%esp
5514f2:	5d                   	pop    %ebp
5514f3:	c2 04 00             	ret    $0x4
5514f6:	90                   	nop
5514f7:	90                   	nop
5514f8:	89 88 d8 01 00 00    	mov    %ecx,0x1d8(%eax)
5514fe:	89 90 d4 01 00 00    	mov    %edx,0x1d4(%eax)
551504:	c3                   	ret
551505:	90                   	nop
551506:	90                   	nop
551507:	90                   	nop
551508:	53                   	push   %ebx
551509:	56                   	push   %esi
55150a:	8b f1                	mov    %ecx,%esi
55150c:	8b da                	mov    %edx,%ebx
55150e:	85 c0                	test   %eax,%eax
551510:	74 31                	je     0x551543
551512:	85 db                	test   %ebx,%ebx
551514:	74 2d                	je     0x551543
551516:	8b 93 f8 00 00 00    	mov    0xf8(%ebx),%edx
55151c:	85 d2                	test   %edx,%edx
55151e:	74 12                	je     0x551532
551520:	3b f2                	cmp    %edx,%esi
551522:	74 0e                	je     0x551532
551524:	6a 00                	push   $0x0
551526:	b9 40 00 00 00       	mov    $0x40,%ecx
55152b:	8b d3                	mov    %ebx,%edx
55152d:	e8 ee 58 00 00       	call   0x556e20
551532:	89 b3 f8 00 00 00    	mov    %esi,0xf8(%ebx)
551538:	85 f6                	test   %esi,%esi
55153a:	74 07                	je     0x551543
55153c:	81 4b 08 00 80 00 00 	orl    $0x8000,0x8(%ebx)
551543:	5e                   	pop    %esi
551544:	5b                   	pop    %ebx
551545:	c3                   	ret
551546:	90                   	nop
551547:	90                   	nop
551548:	53                   	push   %ebx
551549:	8b d8                	mov    %eax,%ebx
55154b:	56                   	push   %esi
55154c:	57                   	push   %edi
55154d:	8b 43 6c             	mov    0x6c(%ebx),%eax
551550:	8b f2                	mov    %edx,%esi
551552:	85 c0                	test   %eax,%eax
551554:	74 09                	je     0x55155f
551556:	8b d0                	mov    %eax,%edx
551558:	8b c3                	mov    %ebx,%eax
55155a:	e8 09 06 00 00       	call   0x551b68
55155f:	89 73 70             	mov    %esi,0x70(%ebx)
551562:	8b d6                	mov    %esi,%edx
551564:	8b c3                	mov    %ebx,%eax
551566:	e8 89 05 00 00       	call   0x551af4
55156b:	8b f8                	mov    %eax,%edi
55156d:	89 7b 6c             	mov    %edi,0x6c(%ebx)
551570:	89 7b 40             	mov    %edi,0x40(%ebx)
551573:	8b 43 70             	mov    0x70(%ebx),%eax
551576:	89 43 44             	mov    %eax,0x44(%ebx)
551579:	5f                   	pop    %edi
55157a:	5e                   	pop    %esi
55157b:	5b                   	pop    %ebx
55157c:	c3                   	ret
55157d:	90                   	nop
55157e:	90                   	nop
55157f:	90                   	nop
551580:	85 c0                	test   %eax,%eax
551582:	74 09                	je     0x55158d
551584:	85 d2                	test   %edx,%edx
551586:	74 05                	je     0x55158d
551588:	f7 d1                	not    %ecx
55158a:	21 4a 08             	and    %ecx,0x8(%edx)
55158d:	c3                   	ret
55158e:	90                   	nop
55158f:	90                   	nop
551590:	53                   	push   %ebx
551591:	56                   	push   %esi
551592:	33 db                	xor    %ebx,%ebx
551594:	8b b0 fc 01 00 00    	mov    0x1fc(%eax),%esi
55159a:	f7 c6 01 00 00 00    	test   $0x1,%esi
5515a0:	8b cb                	mov    %ebx,%ecx
5515a2:	74 08                	je     0x5515ac
5515a4:	f7 c6 02 00 00 00    	test   $0x2,%esi
5515aa:	75 0e                	jne    0x5515ba
5515ac:	8b f3                	mov    %ebx,%esi
5515ae:	f7 d6                	not    %esi
5515b0:	23 ce                	and    %esi,%ecx
5515b2:	f7 d3                	not    %ebx
5515b4:	21 b0 fc 01 00 00    	and    %esi,0x1fc(%eax)
5515ba:	8b d9                	mov    %ecx,%ebx
5515bc:	f7 d3                	not    %ebx
5515be:	21 98 fc 01 00 00    	and    %ebx,0x1fc(%eax)
5515c4:	23 d1                	and    %ecx,%edx
5515c6:	09 90 fc 01 00 00    	or     %edx,0x1fc(%eax)
5515cc:	5e                   	pop    %esi
5515cd:	5b                   	pop    %ebx
5515ce:	c3                   	ret
5515cf:	90                   	nop
5515d0:	88 90 f5 01 00 00    	mov    %dl,0x1f5(%eax)
5515d6:	89 88 f8 01 00 00    	mov    %ecx,0x1f8(%eax)
5515dc:	c3                   	ret
5515dd:	8d 40 00             	lea    0x0(%eax),%eax
5515e0:	83 48 30 01          	orl    $0x1,0x30(%eax)
5515e4:	c3                   	ret
5515e5:	90                   	nop
5515e6:	90                   	nop
5515e7:	90                   	nop
5515e8:	8a 90 e7 00 00 00    	mov    0xe7(%eax),%dl
5515ee:	80 fa 10             	cmp    $0x10,%dl
5515f1:	75 04                	jne    0x5515f7
5515f3:	83 48 30 10          	orl    $0x10,0x30(%eax)
5515f7:	c3                   	ret
5515f8:	8a 90 e7 00 00 00    	mov    0xe7(%eax),%dl
5515fe:	80 fa 08             	cmp    $0x8,%dl
551601:	73 0b                	jae    0x55160e
551603:	83 48 30 04          	orl    $0x4,0x30(%eax)
551607:	c6 80 e8 00 00 00 08 	movb   $0x8,0xe8(%eax)
55160e:	c3                   	ret
55160f:	90                   	nop
551610:	8a 90 e7 00 00 00    	mov    0xe7(%eax),%dl
551616:	80 fa 08             	cmp    $0x8,%dl
551619:	73 07                	jae    0x551622
55161b:	81 48 30 00 00 01 00 	orl    $0x10000,0x30(%eax)
551622:	c3                   	ret
551623:	90                   	nop
551624:	83 48 30 08          	orl    $0x8,0x30(%eax)
551628:	8b 0a                	mov    (%edx),%ecx
55162a:	89 88 41 01 00 00    	mov    %ecx,0x141(%eax)
551630:	8a 4a 04             	mov    0x4(%edx),%cl
551633:	88 88 45 01 00 00    	mov    %cl,0x145(%eax)
551639:	c3                   	ret
55163a:	90                   	nop
55163b:	90                   	nop
55163c:	8a 90 e3 00 00 00    	mov    0xe3(%eax),%dl
551642:	84 d2                	test   %dl,%dl
551644:	74 0a                	je     0x551650
551646:	83 48 30 02          	orl    $0x2,0x30(%eax)
55164a:	b8 07 00 00 00       	mov    $0x7,%eax
55164f:	c3                   	ret
551650:	b8 01 00 00 00       	mov    $0x1,%eax
551655:	c3                   	ret
551656:	90                   	nop
551657:	90                   	nop
551658:	81 48 30 00 80 00 00 	orl    $0x8000,0x30(%eax)
55165f:	81 e2 ff 00 00 00    	and    $0xff,%edx
551665:	49                   	dec    %ecx
551666:	66 89 90 ee 00 00 00 	mov    %dx,0xee(%eax)
55166d:	75 09                	jne    0x551678
55166f:	81 48 2c 80 00 00 00 	orl    $0x80,0x2c(%eax)
551676:	eb 07                	jmp    0x55167f
551678:	81 60 2c 7f ff ff ff 	andl   $0xffffff7f,0x2c(%eax)
55167f:	8a 88 e6 00 00 00    	mov    0xe6(%eax),%cl
551685:	80 f9 02             	cmp    $0x2,%cl
551688:	75 07                	jne    0x551691
55168a:	c6 80 eb 00 00 00 04 	movb   $0x4,0xeb(%eax)
551691:	8a 90 e6 00 00 00    	mov    0xe6(%eax),%dl
551697:	84 d2                	test   %dl,%dl
551699:	75 12                	jne    0x5516ad
55169b:	8a 88 e7 00 00 00    	mov    0xe7(%eax),%cl
5516a1:	80 f9 08             	cmp    $0x8,%cl
5516a4:	72 07                	jb     0x5516ad
5516a6:	c6 80 eb 00 00 00 02 	movb   $0x2,0xeb(%eax)
5516ad:	c3                   	ret
5516ae:	90                   	nop
5516af:	90                   	nop
5516b0:	81 48 30 00 00 02 00 	orl    $0x20000,0x30(%eax)
5516b7:	c3                   	ret
5516b8:	81 48 30 00 00 08 00 	orl    $0x80000,0x30(%eax)
5516bf:	c3                   	ret
5516c0:	83 48 30 20          	orl    $0x20,0x30(%eax)
5516c4:	c3                   	ret
5516c5:	90                   	nop
5516c6:	90                   	nop
5516c7:	90                   	nop
5516c8:	8a 48 08             	mov    0x8(%eax),%cl
5516cb:	84 c9                	test   %cl,%cl
5516cd:	75 12                	jne    0x5516e1
5516cf:	8b 48 04             	mov    0x4(%eax),%ecx
5516d2:	33 c0                	xor    %eax,%eax
5516d4:	3b c8                	cmp    %eax,%ecx
5516d6:	76 57                	jbe    0x55172f
5516d8:	f6 12                	notb   (%edx)
5516da:	42                   	inc    %edx
5516db:	40                   	inc    %eax
5516dc:	3b c8                	cmp    %eax,%ecx
5516de:	77 f8                	ja     0x5516d8
5516e0:	c3                   	ret
5516e1:	8a 48 08             	mov    0x8(%eax),%cl
5516e4:	80 f9 04             	cmp    $0x4,%cl
5516e7:	75 1e                	jne    0x551707
5516e9:	8a 48 09             	mov    0x9(%eax),%cl
5516ec:	80 f9 08             	cmp    $0x8,%cl
5516ef:	75 16                	jne    0x551707
5516f1:	8b 48 04             	mov    0x4(%eax),%ecx
5516f4:	33 c0                	xor    %eax,%eax
5516f6:	3b c8                	cmp    %eax,%ecx
5516f8:	76 35                	jbe    0x55172f
5516fa:	f6 12                	notb   (%edx)
5516fc:	83 c2 02             	add    $0x2,%edx
5516ff:	83 c0 02             	add    $0x2,%eax
551702:	3b c8                	cmp    %eax,%ecx
551704:	77 f4                	ja     0x5516fa
551706:	c3                   	ret
551707:	8a 48 08             	mov    0x8(%eax),%cl
55170a:	80 f9 04             	cmp    $0x4,%cl
55170d:	75 20                	jne    0x55172f
55170f:	8a 48 09             	mov    0x9(%eax),%cl
551712:	80 f9 10             	cmp    $0x10,%cl
551715:	75 18                	jne    0x55172f
551717:	8b 48 04             	mov    0x4(%eax),%ecx
55171a:	33 c0                	xor    %eax,%eax
55171c:	3b c8                	cmp    %eax,%ecx
55171e:	76 0f                	jbe    0x55172f
551720:	f6 12                	notb   (%edx)
551722:	f6 52 01             	notb   0x1(%edx)
551725:	83 c2 04             	add    $0x4,%edx
551728:	83 c0 04             	add    $0x4,%eax
55172b:	3b c8                	cmp    %eax,%ecx
55172d:	77 f1                	ja     0x551720
55172f:	c3                   	ret
551730:	53                   	push   %ebx
551731:	56                   	push   %esi
551732:	8a 48 09             	mov    0x9(%eax),%cl
551735:	80 f9 10             	cmp    $0x10,%cl
551738:	75 21                	jne    0x55175b
55173a:	8b 30                	mov    (%eax),%esi
55173c:	0f b6 40 0a          	movzbl 0xa(%eax),%eax
551740:	0f af f0             	imul   %eax,%esi
551743:	33 c0                	xor    %eax,%eax
551745:	3b f0                	cmp    %eax,%esi
551747:	76 12                	jbe    0x55175b
551749:	8a 0a                	mov    (%edx),%cl
55174b:	8a 5a 01             	mov    0x1(%edx),%bl
55174e:	88 1a                	mov    %bl,(%edx)
551750:	88 4a 01             	mov    %cl,0x1(%edx)
551753:	40                   	inc    %eax
551754:	83 c2 02             	add    $0x2,%edx
551757:	3b f0                	cmp    %eax,%esi
551759:	77 ee                	ja     0x551749
55175b:	5e                   	pop    %esi
55175c:	5b                   	pop    %ebx
55175d:	c3                   	ret
55175e:	90                   	nop
55175f:	90                   	nop
551760:	56                   	push   %esi
551761:	8a 48 09             	mov    0x9(%eax),%cl
551764:	80 f9 08             	cmp    $0x8,%cl
551767:	73 3b                	jae    0x5517a4
551769:	8b 70 04             	mov    0x4(%eax),%esi
55176c:	03 f2                	add    %edx,%esi
55176e:	80 f9 01             	cmp    $0x1,%cl
551771:	75 07                	jne    0x55177a
551773:	b9 c0 c4 69 00       	mov    $0x69c4c0,%ecx
551778:	eb 16                	jmp    0x551790
55177a:	80 f9 02             	cmp    $0x2,%cl
55177d:	75 07                	jne    0x551786
55177f:	b9 c0 c5 69 00       	mov    $0x69c5c0,%ecx
551784:	eb 0a                	jmp    0x551790
551786:	80 f9 04             	cmp    $0x4,%cl
551789:	75 19                	jne    0x5517a4
55178b:	b9 c0 c6 69 00       	mov    $0x69c6c0,%ecx
551790:	8b c2                	mov    %edx,%eax
551792:	3b f0                	cmp    %eax,%esi
551794:	76 0e                	jbe    0x5517a4
551796:	33 d2                	xor    %edx,%edx
551798:	8a 10                	mov    (%eax),%dl
55179a:	8a 14 11             	mov    (%ecx,%edx,1),%dl
55179d:	88 10                	mov    %dl,(%eax)
55179f:	40                   	inc    %eax
5517a0:	3b f0                	cmp    %eax,%esi
5517a2:	77 f2                	ja     0x551796
5517a4:	5e                   	pop    %esi
5517a5:	c3                   	ret
5517a6:	90                   	nop
5517a7:	90                   	nop
5517a8:	53                   	push   %ebx
5517a9:	56                   	push   %esi