4706e0:	a8 01                	test   $0x1,%al
4706e2:	74 75                	je     0x470759
4706e4:	83 e1 fe             	and    $0xfffffffe,%ecx
4706e7:	83 f9 0c             	cmp    $0xc,%ecx
4706ea:	77 2e                	ja     0x47071a
4706ec:	74 28                	je     0x470716
4706ee:	83 e9 00             	sub    $0x0,%ecx
4706f1:	74 1f                	je     0x470712
4706f3:	2b ca                	sub    %edx,%ecx
4706f5:	74 18                	je     0x47070f
4706f7:	2b ca                	sub    %edx,%ecx
4706f9:	74 10                	je     0x47070b
4706fb:	2b ca                	sub    %edx,%ecx
4706fd:	74 08                	je     0x470707
4706ff:	2b ca                	sub    %edx,%ecx
470701:	75 56                	jne    0x470759
470703:	6a 05                	push   $0x5
470705:	eb 3a                	jmp    0x470741
470707:	6a 03                	push   $0x3
470709:	eb 36                	jmp    0x470741
47070b:	6a 04                	push   $0x4
47070d:	eb 32                	jmp    0x470741
47070f:	52                   	push   %edx
470710:	eb 2f                	jmp    0x470741
470712:	6a 01                	push   $0x1
470714:	eb 2b                	jmp    0x470741
470716:	6a 07                	push   $0x7
470718:	eb 27                	jmp    0x470741
47071a:	83 e9 0e             	sub    $0xe,%ecx
47071d:	74 20                	je     0x47073f
47071f:	2b ca                	sub    %edx,%ecx
470721:	74 18                	je     0x47073b
470723:	2b ca                	sub    %edx,%ecx
470725:	74 10                	je     0x470737
470727:	2b ca                	sub    %edx,%ecx
470729:	74 08                	je     0x470733
47072b:	2b ca                	sub    %edx,%ecx
47072d:	75 2a                	jne    0x470759
47072f:	6a 0b                	push   $0xb
470731:	eb 0e                	jmp    0x470741
470733:	6a 0a                	push   $0xa
470735:	eb 0a                	jmp    0x470741
470737:	6a 09                	push   $0x9
470739:	eb 06                	jmp    0x470741
47073b:	6a 06                	push   $0x6
47073d:	eb 02                	jmp    0x470741
47073f:	6a 08                	push   $0x8
470741:	e8 72 e6 ff ff       	call   0x46edb8
470746:	89 45 f0             	mov    %eax,-0x10(%ebp)
470749:	8d 45 f0             	lea    -0x10(%ebp),%eax
47074c:	59                   	pop    %ecx
47074d:	50                   	push   %eax
47074e:	8d 4d f8             	lea    -0x8(%ebp),%ecx
470751:	89 55 f4             	mov    %edx,-0xc(%ebp)
470754:	e8 04 e3 ff ff       	call   0x46ea5d
470759:	8b 45 08             	mov    0x8(%ebp),%eax
47075c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
47075f:	89 08                	mov    %ecx,(%eax)
470761:	8b 4d fc             	mov    -0x4(%ebp),%ecx
470764:	89 48 04             	mov    %ecx,0x4(%eax)
470767:	c9                   	leave
470768:	c3                   	ret
470769:	6a 01                	push   $0x1
47076b:	8b 4d 08             	mov    0x8(%ebp),%ecx
47076e:	e8 e3 e0 ff ff       	call   0x46e856
470773:	8b 45 08             	mov    0x8(%ebp),%eax
470776:	c9                   	leave
470777:	c3                   	ret
470778:	55                   	push   %ebp
470779:	8b ec                	mov    %esp,%ebp
47077b:	81 ec 84 00 00 00    	sub    $0x84,%esp
470781:	a1 8c 83 4c 00       	mov    0x4c838c,%eax
470786:	33 d2                	xor    %edx,%edx
470788:	53                   	push   %ebx
470789:	56                   	push   %esi
47078a:	57                   	push   %edi
47078b:	8a 00                	mov    (%eax),%al
47078d:	88 55 e7             	mov    %dl,-0x19(%ebp)
470790:	84 c0                	test   %al,%al
470792:	0f 84 04 07 00 00    	je     0x470e9c
470798:	3c 24                	cmp    $0x24,%al
47079a:	75 30                	jne    0x4707cc
47079c:	ff 75 18             	push   0x18(%ebp)
47079f:	8d 45 e7             	lea    -0x19(%ebp),%eax
4707a2:	50                   	push   %eax
4707a3:	8d 45 10             	lea    0x10(%ebp),%eax
4707a6:	50                   	push   %eax
4707a7:	8d 45 c4             	lea    -0x3c(%ebp),%eax
4707aa:	50                   	push   %eax
4707ab:	e8 c5 0e 00 00       	call   0x471675
4707b0:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
4707b3:	83 c4 10             	add    $0x10,%esp
4707b6:	85 c9                	test   %ecx,%ecx
4707b8:	74 10                	je     0x4707ca
4707ba:	8b 45 08             	mov    0x8(%ebp),%eax
4707bd:	89 08                	mov    %ecx,(%eax)
4707bf:	8b 4d c8             	mov    -0x38(%ebp),%ecx
4707c2:	89 48 04             	mov    %ecx,0x4(%eax)
4707c5:	e9 46 07 00 00       	jmp    0x470f10
4707ca:	33 d2                	xor    %edx,%edx
4707cc:	a1 8c 83 4c 00       	mov    0x4c838c,%eax
4707d1:	33 c9                	xor    %ecx,%ecx
4707d3:	8b f2                	mov    %edx,%esi
4707d5:	89 55 c0             	mov    %edx,-0x40(%ebp)
4707d8:	8b fa                	mov    %edx,%edi
4707da:	89 75 cc             	mov    %esi,-0x34(%ebp)
4707dd:	89 7d d0             	mov    %edi,-0x30(%ebp)
4707e0:	80 38 41             	cmpb   $0x41,(%eax)
4707e3:	0f be 18             	movsbl (%eax),%ebx
4707e6:	0f 9c c1             	setl   %cl
4707e9:	88 55 ff             	mov    %dl,-0x1(%ebp)
4707ec:	49                   	dec    %ecx
4707ed:	88 55 f3             	mov    %dl,-0xd(%ebp)
4707f0:	83 e1 2b             	and    $0x2b,%ecx
4707f3:	83 c1 16             	add    $0x16,%ecx
4707f6:	2b d9                	sub    %ecx,%ebx
4707f8:	8b ca                	mov    %edx,%ecx
4707fa:	89 4d bc             	mov    %ecx,-0x44(%ebp)
4707fd:	8b c3                	mov    %ebx,%eax
4707ff:	83 e8 04             	sub    $0x4,%eax
470802:	0f 84 18 01 00 00    	je     0x470920
470808:	83 e8 01             	sub    $0x1,%eax
47080b:	0f 84 9f 00 00 00    	je     0x4708b0
470811:	83 e8 01             	sub    $0x1,%eax
470814:	0f 84 85 00 00 00    	je     0x47089f
47081a:	83 e8 01             	sub    $0x1,%eax
47081d:	74 6d                	je     0x47088c
47081f:	83 e8 01             	sub    $0x1,%eax
470822:	0f 85 b5 01 00 00    	jne    0x4709dd
470828:	a1 94 83 4c 00       	mov    0x4c8394,%eax
47082d:	d1 e8                	shr    $1,%eax
47082f:	f7 d0                	not    %eax
470831:	a8 01                	test   $0x1,%al
470833:	0f 84 45 01 00 00    	je     0x47097e
470839:	6a 0d                	push   $0xd
47083b:	e8 78 e5 ff ff       	call   0x46edb8
470840:	59                   	pop    %ecx
470841:	85 f6                	test   %esi,%esi
470843:	74 39                	je     0x47087e
470845:	6a 20                	push   $0x20
470847:	8d 4d dc             	lea    -0x24(%ebp),%ecx
47084a:	89 45 a4             	mov    %eax,-0x5c(%ebp)
47084d:	89 55 a8             	mov    %edx,-0x58(%ebp)
470850:	89 75 dc             	mov    %esi,-0x24(%ebp)
470853:	89 7d e0             	mov    %edi,-0x20(%ebp)
470856:	e8 37 e4 ff ff       	call   0x46ec92
47085b:	8d 45 a4             	lea    -0x5c(%ebp),%eax
47085e:	50                   	push   %eax
47085f:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
470865:	8d 4d dc             	lea    -0x24(%ebp),%ecx
470868:	50                   	push   %eax
470869:	e8 ed e2 ff ff       	call   0x46eb5b
47086e:	8b 30                	mov    (%eax),%esi
470870:	8b 78 04             	mov    0x4(%eax),%edi
470873:	89 75 cc             	mov    %esi,-0x34(%ebp)
470876:	89 7d d0             	mov    %edi,-0x30(%ebp)
470879:	e9 00 01 00 00       	jmp    0x47097e
47087e:	89 45 9c             	mov    %eax,-0x64(%ebp)
470881:	8d 45 9c             	lea    -0x64(%ebp),%eax
470884:	89 55 a0             	mov    %edx,-0x60(%ebp)
470887:	e9 e3 00 00 00       	jmp    0x47096f
47088c:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
470890:	0f 84 f5 05 00 00    	je     0x470e8b
470896:	c6 45 f3 01          	movb   $0x1,-0xd(%ebp)
47089a:	e9 df 00 00 00       	jmp    0x47097e
47089f:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
4708a3:	0f 84 e2 05 00 00    	je     0x470e8b
4708a9:	b0 01                	mov    $0x1,%al
4708ab:	e9 d1 00 00 00       	jmp    0x470981
4708b0:	a1 94 83 4c 00       	mov    0x4c8394,%eax
4708b5:	d1 e8                	shr    $1,%eax
4708b7:	f7 d0                	not    %eax
4708b9:	a8 01                	test   $0x1,%al
4708bb:	0f 84 bd 00 00 00    	je     0x47097e
4708c1:	6a 0e                	push   $0xe
4708c3:	85 c9                	test   %ecx,%ecx
4708c5:	74 3f                	je     0x470906
4708c7:	e8 ec e4 ff ff       	call   0x46edb8
4708cc:	59                   	pop    %ecx
4708cd:	8b 4d bc             	mov    -0x44(%ebp),%ecx
4708d0:	89 45 94             	mov    %eax,-0x6c(%ebp)
4708d3:	8b 45 c0             	mov    -0x40(%ebp),%eax
4708d6:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4708d9:	8d 4d f4             	lea    -0xc(%ebp),%ecx
4708dc:	6a 20                	push   $0x20
4708de:	89 55 98             	mov    %edx,-0x68(%ebp)
4708e1:	89 45 f8             	mov    %eax,-0x8(%ebp)
4708e4:	e8 a9 e3 ff ff       	call   0x46ec92
4708e9:	8d 45 94             	lea    -0x6c(%ebp),%eax
4708ec:	50                   	push   %eax
4708ed:	8d 45 ac             	lea    -0x54(%ebp),%eax
4708f0:	50                   	push   %eax
4708f1:	8d 4d f4             	lea    -0xc(%ebp),%ecx
4708f4:	e8 62 e2 ff ff       	call   0x46eb5b
4708f9:	8b 08                	mov    (%eax),%ecx
4708fb:	8b 40 04             	mov    0x4(%eax),%eax
4708fe:	89 4d bc             	mov    %ecx,-0x44(%ebp)
470901:	89 45 c0             	mov    %eax,-0x40(%ebp)
470904:	eb 78                	jmp    0x47097e
470906:	e8 ad e4 ff ff       	call   0x46edb8
47090b:	59                   	pop    %ecx
47090c:	89 45 8c             	mov    %eax,-0x74(%ebp)
47090f:	8d 4d bc             	lea    -0x44(%ebp),%ecx
470912:	8d 45 8c             	lea    -0x74(%ebp),%eax
470915:	89 55 90             	mov    %edx,-0x70(%ebp)
470918:	50                   	push   %eax
470919:	e8 3f e1 ff ff       	call   0x46ea5d
47091e:	eb 5e                	jmp    0x47097e
470920:	0f b7 05 96 83 4c 00 	movzwl 0x4c8396,%eax
470927:	0b 05 94 83 4c 00    	or     0x4c8394,%eax
47092d:	d1 e8                	shr    $1,%eax
47092f:	f7 d0                	not    %eax
470931:	a8 01                	test   $0x1,%al
470933:	74 49                	je     0x47097e
470935:	6a 0c                	push   $0xc
470937:	e8 7c e4 ff ff       	call   0x46edb8
47093c:	59                   	pop    %ecx
47093d:	85 f6                	test   %esi,%esi
47093f:	74 25                	je     0x470966
470941:	6a 20                	push   $0x20
470943:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
470946:	89 45 84             	mov    %eax,-0x7c(%ebp)
470949:	89 55 88             	mov    %edx,-0x78(%ebp)
47094c:	89 75 c4             	mov    %esi,-0x3c(%ebp)
47094f:	89 7d c8             	mov    %edi,-0x38(%ebp)
470952:	e8 3b e3 ff ff       	call   0x46ec92
470957:	8d 45 84             	lea    -0x7c(%ebp),%eax
47095a:	50                   	push   %eax
47095b:	8d 45 d4             	lea    -0x2c(%ebp),%eax
47095e:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
470961:	e9 02 ff ff ff       	jmp    0x470868
470966:	89 45 e8             	mov    %eax,-0x18(%ebp)
470969:	8d 45 e8             	lea    -0x18(%ebp),%eax
47096c:	89 55 ec             	mov    %edx,-0x14(%ebp)
47096f:	50                   	push   %eax
470970:	8d 4d cc             	lea    -0x34(%ebp),%ecx
470973:	e8 e5 e0 ff ff       	call   0x46ea5d
470978:	8b 75 cc             	mov    -0x34(%ebp),%esi
47097b:	8b 7d d0             	mov    -0x30(%ebp),%edi
47097e:	8a 45 ff             	mov    -0x1(%ebp),%al
470981:	8a 4d f3             	mov    -0xd(%ebp),%cl
470984:	88 45 ff             	mov    %al,-0x1(%ebp)
470987:	a1 8c 83 4c 00       	mov    0x4c838c,%eax
47098c:	40                   	inc    %eax
47098d:	88 4d f3             	mov    %cl,-0xd(%ebp)
470990:	a3 8c 83 4c 00       	mov    %eax,0x4c838c
470995:	80 38 24             	cmpb   $0x24,(%eax)
470998:	75 22                	jne    0x4709bc
47099a:	ff 75 18             	push   0x18(%ebp)
47099d:	8d 45 e7             	lea    -0x19(%ebp),%eax
4709a0:	50                   	push   %eax
4709a1:	8d 45 10             	lea    0x10(%ebp),%eax
4709a4:	50                   	push   %eax
4709a5:	8d 45 b4             	lea    -0x4c(%ebp),%eax
4709a8:	50                   	push   %eax
4709a9:	e8 c7 0c 00 00       	call   0x471675
4709ae:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
4709b1:	83 c4 10             	add    $0x10,%esp
4709b4:	85 c9                	test   %ecx,%ecx
4709b6:	0f 85 d3 04 00 00    	jne    0x470e8f
4709bc:	a1 8c 83 4c 00       	mov    0x4c838c,%eax
4709c1:	33 c9                	xor    %ecx,%ecx
4709c3:	80 38 41             	cmpb   $0x41,(%eax)
4709c6:	0f be 18             	movsbl (%eax),%ebx
4709c9:	0f 9c c1             	setl   %cl
4709cc:	49                   	dec    %ecx
4709cd:	83 e1 2b             	and    $0x2b,%ecx
4709d0:	83 c1 16             	add    $0x16,%ecx
4709d3:	2b d9                	sub    %ecx,%ebx
4709d5:	8b 4d bc             	mov    -0x44(%ebp),%ecx
4709d8:	e9 20 fe ff ff       	jmp    0x4707fd
4709dd:	a1 8c 83 4c 00       	mov    0x4c838c,%eax
4709e2:	80 38 00             	cmpb   $0x0,(%eax)
4709e5:	74 06                	je     0x4709ed
4709e7:	ff 05 8c 83 4c 00    	incl   0x4c838c
4709ed:	83 fb 1f             	cmp    $0x1f,%ebx
4709f0:	0f 87 95 04 00 00    	ja     0x470e8b
4709f6:	8b 45 10             	mov    0x10(%ebp),%eax
4709f9:	8b 0c c5 b8 0b 4a 00 	mov    0x4a0bb8(,%eax,8),%ecx
470a00:	8b 3c c5 bc 0b 4a 00 	mov    0x4a0bbc(,%eax,8),%edi
470a07:	8d 45 e8             	lea    -0x18(%ebp),%eax
470a0a:	89 4d e8             	mov    %ecx,-0x18(%ebp)
470a0d:	8d 4d f4             	lea    -0xc(%ebp),%ecx
470a10:	50                   	push   %eax
470a11:	89 7d ec             	mov    %edi,-0x14(%ebp)
470a14:	e8 cd dd ff ff       	call   0x46e7e6
470a19:	83 65 dc 00          	andl   $0x0,-0x24(%ebp)
470a1d:	8d 45 f4             	lea    -0xc(%ebp),%eax
470a20:	83 65 e0 00          	andl   $0x0,-0x20(%ebp)
470a24:	8d 4d dc             	lea    -0x24(%ebp),%ecx
470a27:	50                   	push   %eax
470a28:	e8 0e e2 ff ff       	call   0x46ec3b
470a2d:	8b 45 dc             	mov    -0x24(%ebp),%eax
470a30:	8b 4d e0             	mov    -0x20(%ebp),%ecx
470a33:	89 45 f4             	mov    %eax,-0xc(%ebp)
470a36:	89 4d f8             	mov    %ecx,-0x8(%ebp)
470a39:	85 f6                	test   %esi,%esi
470a3b:	74 6c                	je     0x470aa9
470a3d:	89 45 dc             	mov    %eax,-0x24(%ebp)
470a40:	89 4d e0             	mov    %ecx,-0x20(%ebp)
470a43:	80 f9 01             	cmp    $0x1,%cl
470a46:	7f 46                	jg     0x470a8e
470a48:	85 c0                	test   %eax,%eax
470a4a:	75 12                	jne    0x470a5e
470a4c:	21 45 dc             	and    %eax,-0x24(%ebp)
470a4f:	8d 4d dc             	lea    -0x24(%ebp),%ecx
470a52:	21 45 e0             	and    %eax,-0x20(%ebp)
470a55:	6a 20                	push   $0x20
470a57:	e8 7b f0 ff ff       	call   0x46fad7
470a5c:	eb 30                	jmp    0x470a8e
470a5e:	6a 08                	push   $0x8
470a60:	b9 a8 83 4c 00       	mov    $0x4c83a8,%ecx
470a65:	e8 c9 13 00 00       	call   0x471e33
470a6a:	8b f0                	mov    %eax,%esi
470a6c:	85 f6                	test   %esi,%esi
470a6e:	74 13                	je     0x470a83
470a70:	8b ce                	mov    %esi,%ecx
470a72:	e8 24 df ff ff       	call   0x46e99b
470a77:	c7 06 58 16 4a 00    	movl   $0x4a1658,(%esi)
470a7d:	c6 46 04 20          	movb   $0x20,0x4(%esi)
470a81:	eb 02                	jmp    0x470a85
470a83:	33 f6                	xor    %esi,%esi
470a85:	56                   	push   %esi
470a86:	8d 4d dc             	lea    -0x24(%ebp),%ecx
470a89:	e8 ff da ff ff       	call   0x46e58d
470a8e:	8d 45 cc             	lea    -0x34(%ebp),%eax
470a91:	50                   	push   %eax
470a92:	8d 45 d4             	lea    -0x2c(%ebp),%eax
470a95:	50                   	push   %eax
470a96:	8d 4d dc             	lea    -0x24(%ebp),%ecx
470a99:	e8 df e0 ff ff       	call   0x46eb7d
470a9e:	8b 08                	mov    (%eax),%ecx
470aa0:	8b 40 04             	mov    0x4(%eax),%eax
470aa3:	89 4d f4             	mov    %ecx,-0xc(%ebp)
470aa6:	89 45 f8             	mov    %eax,-0x8(%ebp)
470aa9:	8b 4d bc             	mov    -0x44(%ebp),%ecx
470aac:	85 c9                	test   %ecx,%ecx
470aae:	74 2e                	je     0x470ade
470ab0:	8b 45 c0             	mov    -0x40(%ebp),%eax
470ab3:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
470ab6:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
470ab9:	6a 20                	push   $0x20
470abb:	89 45 c8             	mov    %eax,-0x38(%ebp)
470abe:	e8 cf e1 ff ff       	call   0x46ec92
470ac3:	8d 45 f4             	lea    -0xc(%ebp),%eax
470ac6:	50                   	push   %eax
470ac7:	8d 45 d4             	lea    -0x2c(%ebp),%eax
470aca:	50                   	push   %eax
470acb:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
470ace:	e8 aa e0 ff ff       	call   0x46eb7d