4086cc:	8b ff                	mov    %edi,%edi
4086ce:	55                   	push   %ebp
4086cf:	8b ec                	mov    %esp,%ebp
4086d1:	56                   	push   %esi
4086d2:	8b 75 08             	mov    0x8(%ebp),%esi
4086d5:	56                   	push   %esi
4086d6:	e8 9a a9 ff ff       	call   0x403075
4086db:	59                   	pop    %ecx
4086dc:	83 f8 ff             	cmp    $0xffffffff,%eax
4086df:	75 10                	jne    0x4086f1
4086e1:	e8 41 ba ff ff       	call   0x404127
4086e6:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
4086ec:	83 c8 ff             	or     $0xffffffff,%eax
4086ef:	eb 4d                	jmp    0x40873e
4086f1:	57                   	push   %edi
4086f2:	ff 75 10             	push   0x10(%ebp)
4086f5:	6a 00                	push   $0x0
4086f7:	ff 75 0c             	push   0xc(%ebp)
4086fa:	50                   	push   %eax
4086fb:	ff 15 00 f1 40 00    	call   *0x40f100
408701:	8b f8                	mov    %eax,%edi
408703:	83 ff ff             	cmp    $0xffffffff,%edi
408706:	75 08                	jne    0x408710
408708:	ff 15 44 f0 40 00    	call   *0x40f044
40870e:	eb 02                	jmp    0x408712
408710:	33 c0                	xor    %eax,%eax
408712:	85 c0                	test   %eax,%eax
408714:	74 0c                	je     0x408722
408716:	50                   	push   %eax
408717:	e8 31 ba ff ff       	call   0x40414d
40871c:	59                   	pop    %ecx
40871d:	83 c8 ff             	or     $0xffffffff,%eax
408720:	eb 1b                	jmp    0x40873d
408722:	8b c6                	mov    %esi,%eax
408724:	c1 f8 05             	sar    $0x5,%eax
408727:	8b 04 85 20 46 41 00 	mov    0x414620(,%eax,4),%eax
40872e:	83 e6 1f             	and    $0x1f,%esi
408731:	c1 e6 06             	shl    $0x6,%esi
408734:	8d 44 30 04          	lea    0x4(%eax,%esi,1),%eax
408738:	80 20 fd             	andb   $0xfd,(%eax)
40873b:	8b c7                	mov    %edi,%eax
40873d:	5f                   	pop    %edi
40873e:	5e                   	pop    %esi
40873f:	5d                   	pop    %ebp
408740:	c3                   	ret
408741:	6a 10                	push   $0x10
408743:	68 50 13 41 00       	push   $0x411350
408748:	e8 23 ba ff ff       	call   0x404170
40874d:	8b 5d 08             	mov    0x8(%ebp),%ebx
408750:	83 fb fe             	cmp    $0xfffffffe,%ebx
408753:	75 1b                	jne    0x408770
408755:	e8 e0 b9 ff ff       	call   0x40413a
40875a:	83 20 00             	andl   $0x0,(%eax)
40875d:	e8 c5 b9 ff ff       	call   0x404127
408762:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
408768:	83 c8 ff             	or     $0xffffffff,%eax
40876b:	e9 94 00 00 00       	jmp    0x408804
408770:	85 db                	test   %ebx,%ebx
408772:	78 08                	js     0x40877c
408774:	3b 1d 00 46 41 00    	cmp    0x414600,%ebx
40877a:	72 1a                	jb     0x408796
40877c:	e8 b9 b9 ff ff       	call   0x40413a
408781:	83 20 00             	andl   $0x0,(%eax)
408784:	e8 9e b9 ff ff       	call   0x404127
408789:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40878f:	e8 f3 a4 ff ff       	call   0x402c87
408794:	eb d2                	jmp    0x408768
408796:	8b c3                	mov    %ebx,%eax
408798:	c1 f8 05             	sar    $0x5,%eax
40879b:	8d 3c 85 20 46 41 00 	lea    0x414620(,%eax,4),%edi
4087a2:	8b f3                	mov    %ebx,%esi
4087a4:	83 e6 1f             	and    $0x1f,%esi
4087a7:	c1 e6 06             	shl    $0x6,%esi
4087aa:	8b 07                	mov    (%edi),%eax
4087ac:	0f be 44 30 04       	movsbl 0x4(%eax,%esi,1),%eax
4087b1:	83 e0 01             	and    $0x1,%eax
4087b4:	74 c6                	je     0x40877c
4087b6:	53                   	push   %ebx
4087b7:	e8 22 a9 ff ff       	call   0x4030de
4087bc:	59                   	pop    %ecx
4087bd:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4087c1:	8b 07                	mov    (%edi),%eax
4087c3:	f6 44 30 04 01       	testb  $0x1,0x4(%eax,%esi,1)
4087c8:	74 14                	je     0x4087de
4087ca:	ff 75 10             	push   0x10(%ebp)
4087cd:	ff 75 0c             	push   0xc(%ebp)
4087d0:	53                   	push   %ebx
4087d1:	e8 f6 fe ff ff       	call   0x4086cc
4087d6:	83 c4 0c             	add    $0xc,%esp
4087d9:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4087dc:	eb 17                	jmp    0x4087f5
4087de:	e8 44 b9 ff ff       	call   0x404127
4087e3:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
4087e9:	e8 4c b9 ff ff       	call   0x40413a
4087ee:	83 20 00             	andl   $0x0,(%eax)
4087f1:	83 4d e4 ff          	orl    $0xffffffff,-0x1c(%ebp)
4087f5:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4087fc:	e8 0c 00 00 00       	call   0x40880d
408801:	8b 45 e4             	mov    -0x1c(%ebp),%eax
408804:	e8 ac b9 ff ff       	call   0x4041b5
408809:	c3                   	ret
40880a:	8b 5d 08             	mov    0x8(%ebp),%ebx
40880d:	53                   	push   %ebx
40880e:	e8 6a a9 ff ff       	call   0x40317d
408813:	59                   	pop    %ecx
408814:	c3                   	ret
408815:	8b ff                	mov    %edi,%edi
408817:	55                   	push   %ebp
408818:	8b ec                	mov    %esp,%ebp
40881a:	51                   	push   %ecx
40881b:	f6 43 0c 40          	testb  $0x40,0xc(%ebx)
40881f:	56                   	push   %esi
408820:	8b f0                	mov    %eax,%esi
408822:	8b 07                	mov    (%edi),%eax
408824:	89 45 fc             	mov    %eax,-0x4(%ebp)
408827:	74 0d                	je     0x408836
408829:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)
40882d:	75 07                	jne    0x408836
40882f:	8b 45 0c             	mov    0xc(%ebp),%eax
408832:	01 06                	add    %eax,(%esi)
408834:	eb 43                	jmp    0x408879
408836:	83 27 00             	andl   $0x0,(%edi)
408839:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40883d:	7e 35                	jle    0x408874
40883f:	8b 45 08             	mov    0x8(%ebp),%eax
408842:	0f b7 00             	movzwl (%eax),%eax
408845:	ff 4d 0c             	decl   0xc(%ebp)
408848:	50                   	push   %eax
408849:	8b c3                	mov    %ebx,%eax
40884b:	e8 32 bd ff ff       	call   0x404582
408850:	83 45 08 02          	addl   $0x2,0x8(%ebp)
408854:	83 3e ff             	cmpl   $0xffffffff,(%esi)
408857:	59                   	pop    %ecx
408858:	75 0f                	jne    0x408869
40885a:	83 3f 2a             	cmpl   $0x2a,(%edi)
40885d:	75 10                	jne    0x40886f
40885f:	6a 3f                	push   $0x3f
408861:	8b c3                	mov    %ebx,%eax
408863:	e8 1a bd ff ff       	call   0x404582
408868:	59                   	pop    %ecx
408869:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40886d:	7f d0                	jg     0x40883f
40886f:	83 3f 00             	cmpl   $0x0,(%edi)
408872:	75 05                	jne    0x408879
408874:	8b 45 fc             	mov    -0x4(%ebp),%eax
408877:	89 07                	mov    %eax,(%edi)
408879:	5e                   	pop    %esi
40887a:	c9                   	leave
40887b:	c3                   	ret
40887c:	8b ff                	mov    %edi,%edi
40887e:	55                   	push   %ebp
40887f:	8b ec                	mov    %esp,%ebp
408881:	81 ec 78 04 00 00    	sub    $0x478,%esp
408887:	a1 84 22 41 00       	mov    0x412284,%eax
40888c:	33 c5                	xor    %ebp,%eax
40888e:	89 45 fc             	mov    %eax,-0x4(%ebp)
408891:	53                   	push   %ebx
408892:	8b 5d 14             	mov    0x14(%ebp),%ebx
408895:	56                   	push   %esi
408896:	8b 75 08             	mov    0x8(%ebp),%esi
408899:	33 c0                	xor    %eax,%eax
40889b:	57                   	push   %edi
40889c:	ff 75 10             	push   0x10(%ebp)
40889f:	8b 7d 0c             	mov    0xc(%ebp),%edi
4088a2:	8d 8d b4 fb ff ff    	lea    -0x44c(%ebp),%ecx
4088a8:	89 b5 d4 fb ff ff    	mov    %esi,-0x42c(%ebp)
4088ae:	89 9d e4 fb ff ff    	mov    %ebx,-0x41c(%ebp)
4088b4:	89 85 ac fb ff ff    	mov    %eax,-0x454(%ebp)
4088ba:	89 85 f8 fb ff ff    	mov    %eax,-0x408(%ebp)
4088c0:	89 85 d8 fb ff ff    	mov    %eax,-0x428(%ebp)
4088c6:	89 85 f4 fb ff ff    	mov    %eax,-0x40c(%ebp)
4088cc:	89 85 dc fb ff ff    	mov    %eax,-0x424(%ebp)
4088d2:	89 85 b0 fb ff ff    	mov    %eax,-0x450(%ebp)
4088d8:	89 85 d0 fb ff ff    	mov    %eax,-0x430(%ebp)
4088de:	e8 02 97 ff ff       	call   0x401fe5
4088e3:	e8 3f b8 ff ff       	call   0x404127
4088e8:	89 85 9c fb ff ff    	mov    %eax,-0x464(%ebp)
4088ee:	85 f6                	test   %esi,%esi
4088f0:	75 2b                	jne    0x40891d
4088f2:	e8 30 b8 ff ff       	call   0x404127
4088f7:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4088fd:	e8 85 a3 ff ff       	call   0x402c87
408902:	80 bd c0 fb ff ff 00 	cmpb   $0x0,-0x440(%ebp)
408909:	74 0a                	je     0x408915
40890b:	8b 85 bc fb ff ff    	mov    -0x444(%ebp),%eax
408911:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
408915:	83 c8 ff             	or     $0xffffffff,%eax
408918:	e9 ed 0a 00 00       	jmp    0x40940a
40891d:	33 f6                	xor    %esi,%esi
40891f:	3b fe                	cmp    %esi,%edi
408921:	74 cf                	je     0x4088f2
408923:	0f b7 17             	movzwl (%edi),%edx
408926:	89 b5 e8 fb ff ff    	mov    %esi,-0x418(%ebp)
40892c:	89 b5 ec fb ff ff    	mov    %esi,-0x414(%ebp)
408932:	89 b5 c4 fb ff ff    	mov    %esi,-0x43c(%ebp)
408938:	89 b5 a8 fb ff ff    	mov    %esi,-0x458(%ebp)
40893e:	89 95 e0 fb ff ff    	mov    %edx,-0x420(%ebp)
408944:	66 3b d6             	cmp    %si,%dx
408947:	0f 84 a4 0a 00 00    	je     0x4093f1
40894d:	6a 02                	push   $0x2
40894f:	59                   	pop    %ecx
408950:	03 f9                	add    %ecx,%edi
408952:	89 bd a0 fb ff ff    	mov    %edi,-0x460(%ebp)
408958:	39 b5 e8 fb ff ff    	cmp    %esi,-0x418(%ebp)
40895e:	0f 8c 78 0a 00 00    	jl     0x4093dc
408964:	8d 42 e0             	lea    -0x20(%edx),%eax
408967:	66 83 f8 58          	cmp    $0x58,%ax
40896b:	77 0f                	ja     0x40897c
40896d:	0f b7 c2             	movzwl %dx,%eax
408970:	0f b6 80 b0 09 41 00 	movzbl 0x4109b0(%eax),%eax
408977:	83 e0 0f             	and    $0xf,%eax
40897a:	eb 02                	jmp    0x40897e
40897c:	33 c0                	xor    %eax,%eax
40897e:	8b b5 c4 fb ff ff    	mov    -0x43c(%ebp),%esi
408984:	6b c0 09             	imul   $0x9,%eax,%eax
408987:	0f b6 84 30 d0 09 41 	movzbl 0x4109d0(%eax,%esi,1),%eax
40898e:	00
40898f:	6a 08                	push   $0x8
408991:	c1 e8 04             	shr    $0x4,%eax
408994:	5e                   	pop    %esi
408995:	89 85 c4 fb ff ff    	mov    %eax,-0x43c(%ebp)
40899b:	3b c6                	cmp    %esi,%eax
40899d:	0f 84 4f ff ff ff    	je     0x4088f2
4089a3:	83 f8 07             	cmp    $0x7,%eax
4089a6:	0f 87 0d 0a 00 00    	ja     0x4093b9
4089ac:	ff 24 85 1c 94 40 00 	jmp    *0x40941c(,%eax,4)
4089b3:	33 c0                	xor    %eax,%eax
4089b5:	83 8d f4 fb ff ff ff 	orl    $0xffffffff,-0x40c(%ebp)
4089bc:	89 85 98 fb ff ff    	mov    %eax,-0x468(%ebp)
4089c2:	89 85 b0 fb ff ff    	mov    %eax,-0x450(%ebp)
4089c8:	89 85 d8 fb ff ff    	mov    %eax,-0x428(%ebp)
4089ce:	89 85 dc fb ff ff    	mov    %eax,-0x424(%ebp)
4089d4:	89 85 f8 fb ff ff    	mov    %eax,-0x408(%ebp)
4089da:	89 85 d0 fb ff ff    	mov    %eax,-0x430(%ebp)
4089e0:	e9 e0 09 00 00       	jmp    0x4093c5
4089e5:	0f b7 c2             	movzwl %dx,%eax
4089e8:	83 e8 20             	sub    $0x20,%eax
4089eb:	74 48                	je     0x408a35
4089ed:	83 e8 03             	sub    $0x3,%eax
4089f0:	74 34                	je     0x408a26
4089f2:	2b c6                	sub    %esi,%eax
4089f4:	74 24                	je     0x408a1a
4089f6:	2b c1                	sub    %ecx,%eax
4089f8:	74 14                	je     0x408a0e
4089fa:	83 e8 03             	sub    $0x3,%eax
4089fd:	0f 85 b6 09 00 00    	jne    0x4093b9
408a03:	09 b5 f8 fb ff ff    	or     %esi,-0x408(%ebp)
408a09:	e9 b7 09 00 00       	jmp    0x4093c5
408a0e:	83 8d f8 fb ff ff 04 	orl    $0x4,-0x408(%ebp)
408a15:	e9 ab 09 00 00       	jmp    0x4093c5
408a1a:	83 8d f8 fb ff ff 01 	orl    $0x1,-0x408(%ebp)
408a21:	e9 9f 09 00 00       	jmp    0x4093c5
408a26:	81 8d f8 fb ff ff 80 	orl    $0x80,-0x408(%ebp)
408a2d:	00 00 00
408a30:	e9 90 09 00 00       	jmp    0x4093c5
408a35:	09 8d f8 fb ff ff    	or     %ecx,-0x408(%ebp)
408a3b:	e9 85 09 00 00       	jmp    0x4093c5
408a40:	66 83 fa 2a          	cmp    $0x2a,%dx
408a44:	75 2b                	jne    0x408a71
408a46:	8b 03                	mov    (%ebx),%eax
408a48:	83 c3 04             	add    $0x4,%ebx
408a4b:	89 9d e4 fb ff ff    	mov    %ebx,-0x41c(%ebp)
408a51:	89 85 d8 fb ff ff    	mov    %eax,-0x428(%ebp)
408a57:	85 c0                	test   %eax,%eax
408a59:	0f 89 66 09 00 00    	jns    0x4093c5
408a5f:	83 8d f8 fb ff ff 04 	orl    $0x4,-0x408(%ebp)
408a66:	f7 9d d8 fb ff ff    	negl   -0x428(%ebp)
408a6c:	e9 54 09 00 00       	jmp    0x4093c5
408a71:	8b 85 d8 fb ff ff    	mov    -0x428(%ebp),%eax
408a77:	6b c0 0a             	imul   $0xa,%eax,%eax
408a7a:	0f b7 ca             	movzwl %dx,%ecx
408a7d:	8d 44 08 d0          	lea    -0x30(%eax,%ecx,1),%eax
408a81:	89 85 d8 fb ff ff    	mov    %eax,-0x428(%ebp)
408a87:	e9 39 09 00 00       	jmp    0x4093c5
408a8c:	83 a5 f4 fb ff ff 00 	andl   $0x0,-0x40c(%ebp)
408a93:	e9 2d 09 00 00       	jmp    0x4093c5
408a98:	66 83 fa 2a          	cmp    $0x2a,%dx
408a9c:	75 25                	jne    0x408ac3
408a9e:	8b 03                	mov    (%ebx),%eax
408aa0:	83 c3 04             	add    $0x4,%ebx
408aa3:	89 9d e4 fb ff ff    	mov    %ebx,-0x41c(%ebp)
408aa9:	89 85 f4 fb ff ff    	mov    %eax,-0x40c(%ebp)
408aaf:	85 c0                	test   %eax,%eax
408ab1:	0f 89 0e 09 00 00    	jns    0x4093c5
408ab7:	83 8d f4 fb ff ff ff 	orl    $0xffffffff,-0x40c(%ebp)
408abe:	e9 02 09 00 00       	jmp    0x4093c5
408ac3:	8b 85 f4 fb ff ff    	mov    -0x40c(%ebp),%eax
408ac9:	6b c0 0a             	imul   $0xa,%eax,%eax
408acc:	0f b7 ca             	movzwl %dx,%ecx
408acf:	8d 44 08 d0          	lea    -0x30(%eax,%ecx,1),%eax
408ad3:	89 85 f4 fb ff ff    	mov    %eax,-0x40c(%ebp)
408ad9:	e9 e7 08 00 00       	jmp    0x4093c5
408ade:	0f b7 c2             	movzwl %dx,%eax
408ae1:	83 f8 49             	cmp    $0x49,%eax
408ae4:	74 51                	je     0x408b37
408ae6:	83 f8 68             	cmp    $0x68,%eax
408ae9:	74 40                	je     0x408b2b
408aeb:	83 f8 6c             	cmp    $0x6c,%eax
408aee:	74 18                	je     0x408b08
408af0:	83 f8 77             	cmp    $0x77,%eax
408af3:	0f 85 cc 08 00 00    	jne    0x4093c5
408af9:	81 8d f8 fb ff ff 00 	orl    $0x800,-0x408(%ebp)
408b00:	08 00 00
408b03:	e9 bd 08 00 00       	jmp    0x4093c5
408b08:	66 83 3f 6c          	cmpw   $0x6c,(%edi)
408b0c:	75 11                	jne    0x408b1f
408b0e:	03 f9                	add    %ecx,%edi
408b10:	81 8d f8 fb ff ff 00 	orl    $0x1000,-0x408(%ebp)
408b17:	10 00 00
408b1a:	e9 a6 08 00 00       	jmp    0x4093c5
408b1f:	83 8d f8 fb ff ff 10 	orl    $0x10,-0x408(%ebp)
408b26:	e9 9a 08 00 00       	jmp    0x4093c5
408b2b:	83 8d f8 fb ff ff 20 	orl    $0x20,-0x408(%ebp)
408b32:	e9 8e 08 00 00       	jmp    0x4093c5
408b37:	0f b7 07             	movzwl (%edi),%eax
408b3a:	83 f8 36             	cmp    $0x36,%eax
408b3d:	75 19                	jne    0x408b58
408b3f:	66 83 7f 02 34       	cmpw   $0x34,0x2(%edi)
408b44:	75 12                	jne    0x408b58
408b46:	83 c7 04             	add    $0x4,%edi
408b49:	81 8d f8 fb ff ff 00 	orl    $0x8000,-0x408(%ebp)
408b50:	80 00 00
408b53:	e9 6d 08 00 00       	jmp    0x4093c5
408b58:	83 f8 33             	cmp    $0x33,%eax
408b5b:	75 19                	jne    0x408b76
408b5d:	66 83 7f 02 32       	cmpw   $0x32,0x2(%edi)
408b62:	75 12                	jne    0x408b76
408b64:	83 c7 04             	add    $0x4,%edi
408b67:	81 a5 f8 fb ff ff ff 	andl   $0xffff7fff,-0x408(%ebp)
408b6e:	7f ff ff
408b71:	e9 4f 08 00 00       	jmp    0x4093c5
408b76:	83 f8 64             	cmp    $0x64,%eax
408b79:	0f 84 46 08 00 00    	je     0x4093c5
408b7f:	83 f8 69             	cmp    $0x69,%eax
408b82:	0f 84 3d 08 00 00    	je     0x4093c5
408b88:	83 f8 6f             	cmp    $0x6f,%eax
408b8b:	0f 84 34 08 00 00    	je     0x4093c5
408b91:	83 f8 75             	cmp    $0x75,%eax
408b94:	0f 84 2b 08 00 00    	je     0x4093c5
408b9a:	83 f8 78             	cmp    $0x78,%eax
408b9d:	0f 84 22 08 00 00    	je     0x4093c5
408ba3:	83 f8 58             	cmp    $0x58,%eax
408ba6:	0f 84 19 08 00 00    	je     0x4093c5
408bac:	83 a5 c4 fb ff ff 00 	andl   $0x0,-0x43c(%ebp)
408bb3:	8b 85 d4 fb ff ff    	mov    -0x42c(%ebp),%eax
408bb9:	52                   	push   %edx
408bba:	8d b5 e8 fb ff ff    	lea    -0x418(%ebp),%esi
408bc0:	c7 85 d0 fb ff ff 01 	movl   $0x1,-0x430(%ebp)
408bc7:	00 00 00
408bca:	e8 b3 b9 ff ff       	call   0x404582