55067d:	85 ff                	test   %edi,%edi
55067f:	0f 84 eb 01 00 00    	je     0x550870
550685:	85 db                	test   %ebx,%ebx
550687:	0f 84 e3 01 00 00    	je     0x550870
55068d:	8b 45 fc             	mov    -0x4(%ebp),%eax
550690:	85 c0                	test   %eax,%eax
550692:	74 07                	je     0x55069b
550694:	8b 55 1c             	mov    0x1c(%ebp),%edx
550697:	85 d2                	test   %edx,%edx
550699:	75 0c                	jne    0x5506a7
55069b:	ba c3 c1 69 00       	mov    $0x69c1c3,%edx
5506a0:	8b c7                	mov    %edi,%eax
5506a2:	e8 a5 15 00 00       	call   0x551c4c
5506a7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5506aa:	81 f9 ff ff ff 7f    	cmp    $0x7fffffff,%ecx
5506b0:	77 0a                	ja     0x5506bc
5506b2:	8b 45 1c             	mov    0x1c(%ebp),%eax
5506b5:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
5506ba:	76 0c                	jbe    0x5506c8
5506bc:	ba e9 c1 69 00       	mov    $0x69c1e9,%edx
5506c1:	8b c7                	mov    %edi,%eax
5506c3:	e8 84 15 00 00       	call   0x551c4c
5506c8:	8b 55 18             	mov    0x18(%ebp),%edx
5506cb:	4a                   	dec    %edx
5506cc:	74 2c                	je     0x5506fa
5506ce:	8b 4d 18             	mov    0x18(%ebp),%ecx
5506d1:	83 f9 02             	cmp    $0x2,%ecx
5506d4:	74 24                	je     0x5506fa
5506d6:	8b 45 18             	mov    0x18(%ebp),%eax
5506d9:	83 f8 04             	cmp    $0x4,%eax
5506dc:	74 1c                	je     0x5506fa
5506de:	8b 55 18             	mov    0x18(%ebp),%edx
5506e1:	83 fa 08             	cmp    $0x8,%edx
5506e4:	74 14                	je     0x5506fa
5506e6:	8b 4d 18             	mov    0x18(%ebp),%ecx
5506e9:	83 f9 10             	cmp    $0x10,%ecx
5506ec:	74 0c                	je     0x5506fa
5506ee:	ba 04 c2 69 00       	mov    $0x69c204,%edx
5506f3:	8b c7                	mov    %edi,%eax
5506f5:	e8 52 15 00 00       	call   0x551c4c
5506fa:	85 f6                	test   %esi,%esi
5506fc:	7c 0f                	jl     0x55070d
5506fe:	83 fe 01             	cmp    $0x1,%esi
550701:	74 0a                	je     0x55070d
550703:	83 fe 05             	cmp    $0x5,%esi
550706:	74 05                	je     0x55070d
550708:	83 fe 06             	cmp    $0x6,%esi
55070b:	7e 0c                	jle    0x550719
55070d:	ba 1e c2 69 00       	mov    $0x69c21e,%edx
550712:	8b c7                	mov    %edi,%eax
550714:	e8 33 15 00 00       	call   0x551c4c
550719:	83 fe 03             	cmp    $0x3,%esi
55071c:	75 08                	jne    0x550726
55071e:	8b 4d 18             	mov    0x18(%ebp),%ecx
550721:	83 f9 08             	cmp    $0x8,%ecx
550724:	7f 17                	jg     0x55073d
550726:	83 fe 02             	cmp    $0x2,%esi
550729:	74 0a                	je     0x550735
55072b:	83 fe 04             	cmp    $0x4,%esi
55072e:	74 05                	je     0x550735
550730:	83 fe 06             	cmp    $0x6,%esi
550733:	75 14                	jne    0x550749
550735:	8b 45 18             	mov    0x18(%ebp),%eax
550738:	83 f8 08             	cmp    $0x8,%eax
55073b:	7d 0c                	jge    0x550749
55073d:	ba 39 c2 69 00       	mov    $0x69c239,%edx
550742:	8b c7                	mov    %edi,%eax
550744:	e8 03 15 00 00       	call   0x551c4c
550749:	8b 55 10             	mov    0x10(%ebp),%edx
55074c:	83 fa 02             	cmp    $0x2,%edx
55074f:	7c 0c                	jl     0x55075d
550751:	ba 6a c2 69 00       	mov    $0x69c26a,%edx
550756:	8b c7                	mov    %edi,%eax
550758:	e8 ef 14 00 00       	call   0x551c4c
55075d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
550760:	85 c9                	test   %ecx,%ecx
550762:	74 0c                	je     0x550770
550764:	ba 8b c2 69 00       	mov    $0x69c28b,%edx
550769:	8b c7                	mov    %edi,%eax
55076b:	e8 dc 14 00 00       	call   0x551c4c
550770:	f6 47 29 10          	testb  $0x10,0x29(%edi)
550774:	74 16                	je     0x55078c
550776:	8b 8f ec 01 00 00    	mov    0x1ec(%edi),%ecx
55077c:	85 c9                	test   %ecx,%ecx
55077e:	74 0c                	je     0x55078c
550780:	ba ae c2 69 00       	mov    $0x69c2ae,%edx
550785:	8b c7                	mov    %edi,%eax
550787:	e8 5c 15 00 00       	call   0x551ce8
55078c:	8b 4d 08             	mov    0x8(%ebp),%ecx
55078f:	85 c9                	test   %ecx,%ecx
550791:	74 3f                	je     0x5507d2
550793:	f6 87 ec 01 00 00 04 	testb  $0x4,0x1ec(%edi)
55079a:	74 18                	je     0x5507b4
55079c:	8b 45 08             	mov    0x8(%ebp),%eax
55079f:	83 f8 40             	cmp    $0x40,%eax
5507a2:	75 10                	jne    0x5507b4
5507a4:	f6 47 29 10          	testb  $0x10,0x29(%edi)
5507a8:	75 0a                	jne    0x5507b4
5507aa:	83 fe 02             	cmp    $0x2,%esi
5507ad:	74 11                	je     0x5507c0
5507af:	83 fe 06             	cmp    $0x6,%esi
5507b2:	74 0c                	je     0x5507c0
5507b4:	ba e0 c2 69 00       	mov    $0x69c2e0,%edx
5507b9:	8b c7                	mov    %edi,%eax
5507bb:	e8 8c 14 00 00       	call   0x551c4c
5507c0:	f6 47 29 10          	testb  $0x10,0x29(%edi)
5507c4:	74 0c                	je     0x5507d2
5507c6:	ba fe c2 69 00       	mov    $0x69c2fe,%edx
5507cb:	8b c7                	mov    %edi,%eax
5507cd:	e8 16 15 00 00       	call   0x551ce8
5507d2:	8b 55 fc             	mov    -0x4(%ebp),%edx
5507d5:	89 13                	mov    %edx,(%ebx)
5507d7:	8b d6                	mov    %esi,%edx
5507d9:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
5507dc:	89 4b 04             	mov    %ecx,0x4(%ebx)
5507df:	8a 45 18             	mov    0x18(%ebp),%al
5507e2:	88 43 18             	mov    %al,0x18(%ebx)
5507e5:	88 53 19             	mov    %dl,0x19(%ebx)
5507e8:	8a 4d 0c             	mov    0xc(%ebp),%cl
5507eb:	88 4b 1a             	mov    %cl,0x1a(%ebx)
5507ee:	8a 45 08             	mov    0x8(%ebp),%al
5507f1:	88 43 1b             	mov    %al,0x1b(%ebx)
5507f4:	8a 55 10             	mov    0x10(%ebp),%dl
5507f7:	88 53 1c             	mov    %dl,0x1c(%ebx)
5507fa:	8a 4b 19             	mov    0x19(%ebx),%cl
5507fd:	80 f9 03             	cmp    $0x3,%cl
550800:	75 06                	jne    0x550808
550802:	c6 43 1d 01          	movb   $0x1,0x1d(%ebx)
550806:	eb 10                	jmp    0x550818
550808:	f6 43 19 02          	testb  $0x2,0x19(%ebx)
55080c:	74 06                	je     0x550814
55080e:	c6 43 1d 03          	movb   $0x3,0x1d(%ebx)
550812:	eb 04                	jmp    0x550818
550814:	c6 43 1d 01          	movb   $0x1,0x1d(%ebx)
550818:	f6 43 19 04          	testb  $0x4,0x19(%ebx)
55081c:	74 03                	je     0x550821
55081e:	fe 43 1d             	incb   0x1d(%ebx)
550821:	33 c0                	xor    %eax,%eax
550823:	33 d2                	xor    %edx,%edx
550825:	8a 53 18             	mov    0x18(%ebx),%dl
550828:	8a 43 1d             	mov    0x1d(%ebx),%al
55082b:	f7 ea                	imul   %edx
55082d:	33 c9                	xor    %ecx,%ecx
55082f:	88 43 1e             	mov    %al,0x1e(%ebx)
550832:	8a c8                	mov    %al,%cl
550834:	33 d2                	xor    %edx,%edx
550836:	83 c1 07             	add    $0x7,%ecx
550839:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
55083e:	c1 f9 03             	sar    $0x3,%ecx
550841:	f7 f1                	div    %ecx
550843:	83 e8 40             	sub    $0x40,%eax
550846:	8b 4d fc             	mov    -0x4(%ebp),%ecx
550849:	3b c1                	cmp    %ecx,%eax
55084b:	73 13                	jae    0x550860
55084d:	ba 1c c3 69 00       	mov    $0x69c31c,%edx
550852:	8b c7                	mov    %edi,%eax
550854:	e8 8f 14 00 00       	call   0x551ce8
550859:	33 c9                	xor    %ecx,%ecx
55085b:	89 4b 0c             	mov    %ecx,0xc(%ebx)
55085e:	eb 10                	jmp    0x550870
550860:	33 c0                	xor    %eax,%eax
550862:	8a 43 1e             	mov    0x1e(%ebx),%al
550865:	f7 2b                	imull  (%ebx)
550867:	83 c0 07             	add    $0x7,%eax
55086a:	c1 e8 03             	shr    $0x3,%eax
55086d:	89 43 0c             	mov    %eax,0xc(%ebx)
550870:	5f                   	pop    %edi
550871:	5e                   	pop    %esi
550872:	5b                   	pop    %ebx
550873:	59                   	pop    %ecx
550874:	5d                   	pop    %ebp
550875:	c2 18 00             	ret    $0x18
550878:	55                   	push   %ebp
550879:	8b ec                	mov    %esp,%ebp
55087b:	85 c0                	test   %eax,%eax
55087d:	74 1a                	je     0x550899
55087f:	85 d2                	test   %edx,%edx
550881:	74 16                	je     0x550899
550883:	89 4a 64             	mov    %ecx,0x64(%edx)
550886:	8b 45 0c             	mov    0xc(%ebp),%eax
550889:	89 42 68             	mov    %eax,0x68(%edx)
55088c:	8a 4d 08             	mov    0x8(%ebp),%cl
55088f:	88 4a 6c             	mov    %cl,0x6c(%edx)
550892:	81 4a 08 00 01 00 00 	orl    $0x100,0x8(%edx)
550899:	5d                   	pop    %ebp
55089a:	c2 08 00             	ret    $0x8
55089d:	90                   	nop
55089e:	90                   	nop
55089f:	90                   	nop
5508a0:	55                   	push   %ebp
5508a1:	8b ec                	mov    %esp,%ebp
5508a3:	83 c4 f8             	add    $0xfffffff8,%esp
5508a6:	53                   	push   %ebx
5508a7:	56                   	push   %esi
5508a8:	57                   	push   %edi
5508a9:	8b f1                	mov    %ecx,%esi
5508ab:	8b da                	mov    %edx,%ebx
5508ad:	89 45 fc             	mov    %eax,-0x4(%ebp)
5508b0:	8b 45 fc             	mov    -0x4(%ebp),%eax
5508b3:	85 c0                	test   %eax,%eax
5508b5:	0f 84 7c 01 00 00    	je     0x550a37
5508bb:	85 db                	test   %ebx,%ebx
5508bd:	0f 84 74 01 00 00    	je     0x550a37
5508c3:	56                   	push   %esi
5508c4:	e8 67 5c fd ff       	call   0x526530
5508c9:	8b f8                	mov    %eax,%edi
5508cb:	8b 45 fc             	mov    -0x4(%ebp),%eax
5508ce:	47                   	inc    %edi
5508cf:	59                   	pop    %ecx
5508d0:	8b d7                	mov    %edi,%edx
5508d2:	e8 c5 12 00 00       	call   0x551b9c
5508d7:	89 83 a0 00 00 00    	mov    %eax,0xa0(%ebx)
5508dd:	8b 8b a0 00 00 00    	mov    0xa0(%ebx),%ecx
5508e3:	85 c9                	test   %ecx,%ecx
5508e5:	75 12                	jne    0x5508f9
5508e7:	ba 5b c3 69 00       	mov    $0x69c35b,%edx
5508ec:	8b 45 fc             	mov    -0x4(%ebp),%eax
5508ef:	e8 f4 13 00 00       	call   0x551ce8
5508f4:	e9 3e 01 00 00       	jmp    0x550a37
5508f9:	57                   	push   %edi
5508fa:	56                   	push   %esi
5508fb:	8b 8b a0 00 00 00    	mov    0xa0(%ebx),%ecx
550901:	51                   	push   %ecx
550902:	e8 d9 5a fd ff       	call   0x5263e0
550907:	83 c4 0c             	add    $0xc,%esp
55090a:	8b 45 1c             	mov    0x1c(%ebp),%eax
55090d:	89 83 a4 00 00 00    	mov    %eax,0xa4(%ebx)
550913:	8b 55 18             	mov    0x18(%ebp),%edx
550916:	89 93 a8 00 00 00    	mov    %edx,0xa8(%ebx)
55091c:	8a 4d 14             	mov    0x14(%ebp),%cl
55091f:	88 8b b4 00 00 00    	mov    %cl,0xb4(%ebx)
550925:	8a 45 10             	mov    0x10(%ebp),%al
550928:	88 83 b5 00 00 00    	mov    %al,0xb5(%ebx)
55092e:	8b 55 0c             	mov    0xc(%ebp),%edx
550931:	52                   	push   %edx
550932:	e8 f9 5b fd ff       	call   0x526530
550937:	8b f8                	mov    %eax,%edi
550939:	8b 45 fc             	mov    -0x4(%ebp),%eax
55093c:	47                   	inc    %edi
55093d:	59                   	pop    %ecx
55093e:	8b d7                	mov    %edi,%edx
550940:	e8 57 12 00 00       	call   0x551b9c
550945:	8b f0                	mov    %eax,%esi
550947:	89 b3 ac 00 00 00    	mov    %esi,0xac(%ebx)
55094d:	85 f6                	test   %esi,%esi
55094f:	75 12                	jne    0x550963
550951:	ba 81 c3 69 00       	mov    $0x69c381,%edx
550956:	8b 45 fc             	mov    -0x4(%ebp),%eax
550959:	e8 8a 13 00 00       	call   0x551ce8
55095e:	e9 d4 00 00 00       	jmp    0x550a37
550963:	57                   	push   %edi
550964:	8b 4d 0c             	mov    0xc(%ebp),%ecx
550967:	51                   	push   %ecx
550968:	8b 83 ac 00 00 00    	mov    0xac(%ebx),%eax
55096e:	50                   	push   %eax
55096f:	e8 6c 5a fd ff       	call   0x5263e0
550974:	8b 55 10             	mov    0x10(%ebp),%edx
550977:	83 c4 0c             	add    $0xc,%esp
55097a:	42                   	inc    %edx
55097b:	8b 45 fc             	mov    -0x4(%ebp),%eax
55097e:	c1 e2 02             	shl    $0x2,%edx
550981:	e8 16 12 00 00       	call   0x551b9c
550986:	8b f0                	mov    %eax,%esi
550988:	89 b3 b0 00 00 00    	mov    %esi,0xb0(%ebx)
55098e:	85 f6                	test   %esi,%esi
550990:	75 12                	jne    0x5509a4
550992:	ba a5 c3 69 00       	mov    $0x69c3a5,%edx
550997:	8b 45 fc             	mov    -0x4(%ebp),%eax
55099a:	e8 49 13 00 00       	call   0x551ce8
55099f:	e9 93 00 00 00       	jmp    0x550a37
5509a4:	8b 8b b0 00 00 00    	mov    0xb0(%ebx),%ecx
5509aa:	8b 45 10             	mov    0x10(%ebp),%eax
5509ad:	33 d2                	xor    %edx,%edx
5509af:	89 14 81             	mov    %edx,(%ecx,%eax,4)
5509b2:	33 f6                	xor    %esi,%esi
5509b4:	8b 45 08             	mov    0x8(%ebp),%eax
5509b7:	8b d0                	mov    %eax,%edx
5509b9:	89 55 f8             	mov    %edx,-0x8(%ebp)
5509bc:	8b 4d 10             	mov    0x10(%ebp),%ecx
5509bf:	3b f1                	cmp    %ecx,%esi
5509c1:	7d 63                	jge    0x550a26
5509c3:	8b 45 f8             	mov    -0x8(%ebp),%eax
5509c6:	8b 10                	mov    (%eax),%edx
5509c8:	52                   	push   %edx
5509c9:	e8 62 5b fd ff       	call   0x526530
5509ce:	8b f8                	mov    %eax,%edi
5509d0:	8b 45 fc             	mov    -0x4(%ebp),%eax
5509d3:	47                   	inc    %edi
5509d4:	59                   	pop    %ecx
5509d5:	8b d7                	mov    %edi,%edx
5509d7:	e8 c0 11 00 00       	call   0x551b9c
5509dc:	8b 8b b0 00 00 00    	mov    0xb0(%ebx),%ecx
5509e2:	89 04 b1             	mov    %eax,(%ecx,%esi,4)
5509e5:	8b 83 b0 00 00 00    	mov    0xb0(%ebx),%eax
5509eb:	8b 14 b0             	mov    (%eax,%esi,4),%edx
5509ee:	85 d2                	test   %edx,%edx
5509f0:	75 0f                	jne    0x550a01
5509f2:	ba ca c3 69 00       	mov    $0x69c3ca,%edx
5509f7:	8b 45 fc             	mov    -0x4(%ebp),%eax
5509fa:	e8 e9 12 00 00       	call   0x551ce8
5509ff:	eb 36                	jmp    0x550a37
550a01:	57                   	push   %edi
550a02:	8b 4d f8             	mov    -0x8(%ebp),%ecx
550a05:	8b 01                	mov    (%ecx),%eax
550a07:	50                   	push   %eax
550a08:	8b 93 b0 00 00 00    	mov    0xb0(%ebx),%edx
550a0e:	8b 0c b2             	mov    (%edx,%esi,4),%ecx
550a11:	51                   	push   %ecx
550a12:	e8 c9 59 fd ff       	call   0x5263e0
550a17:	83 c4 0c             	add    $0xc,%esp
550a1a:	46                   	inc    %esi
550a1b:	83 45 f8 04          	addl   $0x4,-0x8(%ebp)
550a1f:	8b 45 10             	mov    0x10(%ebp),%eax
550a22:	3b f0                	cmp    %eax,%esi
550a24:	7c 9d                	jl     0x5509c3
550a26:	81 4b 08 00 04 00 00 	orl    $0x400,0x8(%ebx)
550a2d:	81 8b b8 00 00 00 80 	orl    $0x80,0xb8(%ebx)
550a34:	00 00 00
550a37:	5f                   	pop    %edi
550a38:	5e                   	pop    %esi
550a39:	5b                   	pop    %ebx
550a3a:	59                   	pop    %ecx
550a3b:	59                   	pop    %ecx
550a3c:	5d                   	pop    %ebp
550a3d:	c2 18 00             	ret    $0x18
550a40:	55                   	push   %ebp
550a41:	8b ec                	mov    %esp,%ebp
550a43:	85 c0                	test   %eax,%eax
550a45:	74 35                	je     0x550a7c
550a47:	85 d2                	test   %edx,%edx
550a49:	74 31                	je     0x550a7c
550a4b:	88 8a dc 00 00 00    	mov    %cl,0xdc(%edx)
550a51:	8b 45 10             	mov    0x10(%ebp),%eax
550a54:	89 82 e0 00 00 00    	mov    %eax,0xe0(%edx)
550a5a:	8b 45 14             	mov    0x14(%ebp),%eax
550a5d:	89 82 e4 00 00 00    	mov    %eax,0xe4(%edx)
550a63:	8b 4d 08             	mov    0x8(%ebp),%ecx
550a66:	89 8a e8 00 00 00    	mov    %ecx,0xe8(%edx)
550a6c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
550a6f:	89 8a ec 00 00 00    	mov    %ecx,0xec(%edx)
550a75:	81 4a 08 00 40 00 00 	orl    $0x4000,0x8(%edx)
550a7c:	5d                   	pop    %ebp
550a7d:	c2 10 00             	ret    $0x10
550a80:	55                   	push   %ebp
550a81:	8b ec                	mov    %esp,%ebp
550a83:	85 c0                	test   %eax,%eax
550a85:	74 1a                	je     0x550aa1
550a87:	85 d2                	test   %edx,%edx
550a89:	74 16                	je     0x550aa1
550a8b:	89 4a 70             	mov    %ecx,0x70(%edx)