4116b1:	76 18                	jbe    0x4116cb
4116b3:	e8 64 90 ff ff       	call   0x40a71c
4116b8:	83 20 00             	andl   $0x0,(%eax)
4116bb:	e8 6f 90 ff ff       	call   0x40a72f
4116c0:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4116c6:	e9 ef 02 00 00       	jmp    0x4119ba
4116cb:	85 c9                	test   %ecx,%ecx
4116cd:	0f 84 d0 02 00 00    	je     0x4119a3
4116d3:	f6 45 ff 02          	testb  $0x2,-0x1(%ebp)
4116d7:	0f 85 c6 02 00 00    	jne    0x4119a3
4116dd:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4116e1:	74 d0                	je     0x4116b3
4116e3:	56                   	push   %esi
4116e4:	8b 74 07 18          	mov    0x18(%edi,%eax,1),%esi
4116e8:	8a 44 07 29          	mov    0x29(%edi,%eax,1),%al
4116ec:	88 45 ff             	mov    %al,-0x1(%ebp)
4116ef:	89 75 ec             	mov    %esi,-0x14(%ebp)
4116f2:	33 f6                	xor    %esi,%esi
4116f4:	0f be c0             	movsbl %al,%eax
4116f7:	83 e8 01             	sub    $0x1,%eax
4116fa:	74 33                	je     0x41172f
4116fc:	83 e8 01             	sub    $0x1,%eax
4116ff:	75 24                	jne    0x411725
411701:	8b c1                	mov    %ecx,%eax
411703:	f7 d0                	not    %eax
411705:	84 c3                	test   %al,%bl
411707:	75 1c                	jne    0x411725
411709:	e8 0e 90 ff ff       	call   0x40a71c
41170e:	21 30                	and    %esi,(%eax)
411710:	e8 1a 90 ff ff       	call   0x40a72f
411715:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
41171b:	e8 a9 5d ff ff       	call   0x4074c9
411720:	e9 b5 01 00 00       	jmp    0x4118da
411725:	8b d9                	mov    %ecx,%ebx
411727:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41172a:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41172d:	eb 73                	jmp    0x4117a2
41172f:	8b c1                	mov    %ecx,%eax
411731:	f7 d0                	not    %eax
411733:	84 c3                	test   %al,%bl
411735:	74 d2                	je     0x411709
411737:	6a 04                	push   $0x4
411739:	d1 e9                	shr    $1,%ecx
41173b:	5b                   	pop    %ebx
41173c:	3b cb                	cmp    %ebx,%ecx
41173e:	72 02                	jb     0x411742
411740:	8b d9                	mov    %ecx,%ebx
411742:	53                   	push   %ebx
411743:	e8 8a b8 ff ff       	call   0x40cfd2
411748:	6a 00                	push   $0x0
41174a:	8b f0                	mov    %eax,%esi
41174c:	e8 4e 90 ff ff       	call   0x40a79f
411751:	6a 00                	push   $0x0
411753:	e8 47 90 ff ff       	call   0x40a79f
411758:	83 c4 0c             	add    $0xc,%esp
41175b:	89 75 f4             	mov    %esi,-0xc(%ebp)
41175e:	85 f6                	test   %esi,%esi
411760:	75 1b                	jne    0x41177d
411762:	e8 c8 8f ff ff       	call   0x40a72f
411767:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
41176d:	e8 aa 8f ff ff       	call   0x40a71c
411772:	c7 00 08 00 00 00    	movl   $0x8,(%eax)
411778:	e9 5d 01 00 00       	jmp    0x4118da
41177d:	6a 01                	push   $0x1
41177f:	6a 00                	push   $0x0
411781:	6a 00                	push   $0x0
411783:	ff 75 08             	push   0x8(%ebp)
411786:	e8 b4 f6 ff ff       	call   0x410e3f
41178b:	8b 4d f8             	mov    -0x8(%ebp),%ecx
41178e:	83 c4 10             	add    $0x10,%esp
411791:	8b 0c 8d a8 21 42 00 	mov    0x4221a8(,%ecx,4),%ecx
411798:	89 44 0f 20          	mov    %eax,0x20(%edi,%ecx,1)
41179c:	89 54 0f 24          	mov    %edx,0x24(%edi,%ecx,1)
4117a0:	8b ce                	mov    %esi,%ecx
4117a2:	8b 45 f8             	mov    -0x8(%ebp),%eax
4117a5:	33 ff                	xor    %edi,%edi
4117a7:	89 4d e0             	mov    %ecx,-0x20(%ebp)
4117aa:	8b 04 85 a8 21 42 00 	mov    0x4221a8(,%eax,4),%eax
4117b1:	89 45 e8             	mov    %eax,-0x18(%ebp)
4117b4:	8b d0                	mov    %eax,%edx
4117b6:	8b 45 f0             	mov    -0x10(%ebp),%eax
4117b9:	f6 44 10 28 48       	testb  $0x48,0x28(%eax,%edx,1)
4117be:	8b 55 08             	mov    0x8(%ebp),%edx
4117c1:	0f 84 b6 00 00 00    	je     0x41187d
4117c7:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4117ca:	8a 44 08 2a          	mov    0x2a(%eax,%ecx,1),%al
4117ce:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4117d1:	3c 0a                	cmp    $0xa,%al
4117d3:	0f 84 a4 00 00 00    	je     0x41187d
4117d9:	85 db                	test   %ebx,%ebx
4117db:	0f 84 9c 00 00 00    	je     0x41187d
4117e1:	8b 55 f0             	mov    -0x10(%ebp),%edx
4117e4:	47                   	inc    %edi
4117e5:	88 01                	mov    %al,(%ecx)
4117e7:	41                   	inc    %ecx
4117e8:	8b 45 f8             	mov    -0x8(%ebp),%eax
4117eb:	4b                   	dec    %ebx
4117ec:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
4117f0:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4117f3:	8b 04 85 a8 21 42 00 	mov    0x4221a8(,%eax,4),%eax
4117fa:	c6 44 02 2a 0a       	movb   $0xa,0x2a(%edx,%eax,1)
4117ff:	8b 55 08             	mov    0x8(%ebp),%edx
411802:	74 79                	je     0x41187d
411804:	8b 45 f8             	mov    -0x8(%ebp),%eax
411807:	8b 55 f0             	mov    -0x10(%ebp),%edx
41180a:	8b 04 85 a8 21 42 00 	mov    0x4221a8(,%eax,4),%eax
411811:	8a 44 02 2b          	mov    0x2b(%edx,%eax,1),%al
411815:	8b 55 08             	mov    0x8(%ebp),%edx
411818:	3c 0a                	cmp    $0xa,%al
41181a:	74 61                	je     0x41187d
41181c:	85 db                	test   %ebx,%ebx
41181e:	74 5d                	je     0x41187d
411820:	8b 55 f0             	mov    -0x10(%ebp),%edx
411823:	88 01                	mov    %al,(%ecx)
411825:	41                   	inc    %ecx
411826:	8b 45 f8             	mov    -0x8(%ebp),%eax
411829:	4b                   	dec    %ebx
41182a:	80 7d ff 01          	cmpb   $0x1,-0x1(%ebp)
41182e:	6a 02                	push   $0x2
411830:	89 4d f4             	mov    %ecx,-0xc(%ebp)
411833:	8b 04 85 a8 21 42 00 	mov    0x4221a8(,%eax,4),%eax
41183a:	5f                   	pop    %edi
41183b:	c6 44 02 2b 0a       	movb   $0xa,0x2b(%edx,%eax,1)
411840:	8b 55 08             	mov    0x8(%ebp),%edx
411843:	75 38                	jne    0x41187d
411845:	8b 45 f8             	mov    -0x8(%ebp),%eax
411848:	8b 55 f0             	mov    -0x10(%ebp),%edx
41184b:	8b 04 85 a8 21 42 00 	mov    0x4221a8(,%eax,4),%eax
411852:	8a 44 02 2c          	mov    0x2c(%edx,%eax,1),%al
411856:	8b 55 08             	mov    0x8(%ebp),%edx
411859:	3c 0a                	cmp    $0xa,%al
41185b:	74 20                	je     0x41187d
41185d:	85 db                	test   %ebx,%ebx
41185f:	74 1c                	je     0x41187d
411861:	88 01                	mov    %al,(%ecx)
411863:	41                   	inc    %ecx
411864:	8b 45 f8             	mov    -0x8(%ebp),%eax
411867:	4b                   	dec    %ebx
411868:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41186b:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41186e:	6a 03                	push   $0x3
411870:	8b 04 85 a8 21 42 00 	mov    0x4221a8(,%eax,4),%eax
411877:	5f                   	pop    %edi
411878:	c6 44 01 2c 0a       	movb   $0xa,0x2c(%ecx,%eax,1)
41187d:	52                   	push   %edx
41187e:	e8 7e f3 ff ff       	call   0x410c01
411883:	59                   	pop    %ecx
411884:	85 c0                	test   %eax,%eax
411886:	74 6f                	je     0x4118f7
411888:	8b 45 f8             	mov    -0x8(%ebp),%eax
41188b:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41188e:	8b 04 85 a8 21 42 00 	mov    0x4221a8(,%eax,4),%eax
411895:	80 7c 01 28 00       	cmpb   $0x0,0x28(%ecx,%eax,1)
41189a:	7d 5b                	jge    0x4118f7
41189c:	8d 45 dc             	lea    -0x24(%ebp),%eax
41189f:	50                   	push   %eax
4118a0:	ff 75 ec             	push   -0x14(%ebp)
4118a3:	ff 15 e8 90 41 00    	call   *0x4190e8
4118a9:	85 c0                	test   %eax,%eax
4118ab:	74 4a                	je     0x4118f7
4118ad:	80 7d ff 02          	cmpb   $0x2,-0x1(%ebp)
4118b1:	75 48                	jne    0x4118fb
4118b3:	6a 00                	push   $0x0
4118b5:	8d 45 e8             	lea    -0x18(%ebp),%eax
4118b8:	d1 eb                	shr    $1,%ebx
4118ba:	50                   	push   %eax
4118bb:	53                   	push   %ebx
4118bc:	8b 5d f4             	mov    -0xc(%ebp),%ebx
4118bf:	53                   	push   %ebx
4118c0:	ff 75 ec             	push   -0x14(%ebp)
4118c3:	ff 15 38 91 41 00    	call   *0x419138
4118c9:	85 c0                	test   %eax,%eax
4118cb:	75 1f                	jne    0x4118ec
4118cd:	ff 15 28 90 41 00    	call   *0x419028
4118d3:	50                   	push   %eax
4118d4:	e8 fc 8d ff ff       	call   0x40a6d5
4118d9:	59                   	pop    %ecx
4118da:	83 cf ff             	or     $0xffffffff,%edi
4118dd:	56                   	push   %esi
4118de:	e8 bc 8e ff ff       	call   0x40a79f
4118e3:	59                   	pop    %ecx
4118e4:	8b c7                	mov    %edi,%eax
4118e6:	5e                   	pop    %esi
4118e7:	e9 d6 00 00 00       	jmp    0x4119c2
4118ec:	8b 45 e8             	mov    -0x18(%ebp),%eax
4118ef:	8b 4d 10             	mov    0x10(%ebp),%ecx
4118f2:	8d 3c 47             	lea    (%edi,%eax,2),%edi
4118f5:	eb 27                	jmp    0x41191e
4118f7:	c6 45 e4 00          	movb   $0x0,-0x1c(%ebp)
4118fb:	6a 00                	push   $0x0
4118fd:	8d 45 e8             	lea    -0x18(%ebp),%eax
411900:	50                   	push   %eax
411901:	53                   	push   %ebx
411902:	8b 5d f4             	mov    -0xc(%ebp),%ebx
411905:	53                   	push   %ebx
411906:	ff 75 ec             	push   -0x14(%ebp)
411909:	ff 15 34 91 41 00    	call   *0x419134
41190f:	85 c0                	test   %eax,%eax
411911:	74 5c                	je     0x41196f
411913:	8b 4d 10             	mov    0x10(%ebp),%ecx
411916:	39 4d e8             	cmp    %ecx,-0x18(%ebp)
411919:	77 54                	ja     0x41196f
41191b:	03 7d e8             	add    -0x18(%ebp),%edi
41191e:	8b 45 f8             	mov    -0x8(%ebp),%eax
411921:	8b 55 f0             	mov    -0x10(%ebp),%edx
411924:	8b 04 85 a8 21 42 00 	mov    0x4221a8(,%eax,4),%eax
41192b:	80 7c 02 28 00       	cmpb   $0x0,0x28(%edx,%eax,1)
411930:	7d ab                	jge    0x4118dd
411932:	80 7d ff 02          	cmpb   $0x2,-0x1(%ebp)
411936:	74 17                	je     0x41194f
411938:	d1 e9                	shr    $1,%ecx
41193a:	51                   	push   %ecx
41193b:	ff 75 0c             	push   0xc(%ebp)
41193e:	57                   	push   %edi
41193f:	53                   	push   %ebx
411940:	ff 75 08             	push   0x8(%ebp)
411943:	e8 05 fa ff ff       	call   0x41134d
411948:	83 c4 14             	add    $0x14,%esp
41194b:	8b f8                	mov    %eax,%edi
41194d:	eb 8e                	jmp    0x4118dd
41194f:	d1 ef                	shr    $1,%edi
411951:	80 7d e4 00          	cmpb   $0x0,-0x1c(%ebp)
411955:	57                   	push   %edi
411956:	ff 75 e0             	push   -0x20(%ebp)
411959:	ff 75 08             	push   0x8(%ebp)
41195c:	74 0a                	je     0x411968
41195e:	e8 41 fb ff ff       	call   0x4114a4
411963:	83 c4 0c             	add    $0xc,%esp
411966:	eb e3                	jmp    0x41194b
411968:	e8 26 f8 ff ff       	call   0x411193
41196d:	eb f4                	jmp    0x411963
41196f:	ff 15 28 90 41 00    	call   *0x419028
411975:	6a 05                	push   $0x5
411977:	5f                   	pop    %edi
411978:	3b c7                	cmp    %edi,%eax
41197a:	75 17                	jne    0x411993
41197c:	e8 ae 8d ff ff       	call   0x40a72f
411981:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
411987:	e8 90 8d ff ff       	call   0x40a71c
41198c:	89 38                	mov    %edi,(%eax)
41198e:	e9 47 ff ff ff       	jmp    0x4118da
411993:	83 f8 6d             	cmp    $0x6d,%eax
411996:	0f 85 37 ff ff ff    	jne    0x4118d3
41199c:	33 ff                	xor    %edi,%edi
41199e:	e9 3a ff ff ff       	jmp    0x4118dd
4119a3:	33 c0                	xor    %eax,%eax
4119a5:	eb 1b                	jmp    0x4119c2
4119a7:	e8 70 8d ff ff       	call   0x40a71c
4119ac:	83 20 00             	andl   $0x0,(%eax)
4119af:	e8 7b 8d ff ff       	call   0x40a72f
4119b4:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
4119ba:	e8 0a 5b ff ff       	call   0x4074c9
4119bf:	83 c8 ff             	or     $0xffffffff,%eax
4119c2:	5f                   	pop    %edi
4119c3:	5b                   	pop    %ebx
4119c4:	c9                   	leave
4119c5:	c3                   	ret
4119c6:	8b ff                	mov    %edi,%edi
4119c8:	55                   	push   %ebp
4119c9:	8b ec                	mov    %esp,%ebp
4119cb:	ff 05 44 1e 42 00    	incl   0x421e44
4119d1:	56                   	push   %esi
4119d2:	8b 75 08             	mov    0x8(%ebp),%esi
4119d5:	57                   	push   %edi
4119d6:	6a 01                	push   $0x1
4119d8:	bf 00 10 00 00       	mov    $0x1000,%edi
4119dd:	57                   	push   %edi
4119de:	e8 5f 8d ff ff       	call   0x40a742
4119e3:	6a 00                	push   $0x0
4119e5:	89 46 04             	mov    %eax,0x4(%esi)
4119e8:	e8 b2 8d ff ff       	call   0x40a79f
4119ed:	83 c4 0c             	add    $0xc,%esp
4119f0:	8d 46 0c             	lea    0xc(%esi),%eax
4119f3:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
4119f7:	74 08                	je     0x411a01
4119f9:	6a 40                	push   $0x40
4119fb:	59                   	pop    %ecx
4119fc:	f0 09 08             	lock or %ecx,(%eax)
4119ff:	eb 11                	jmp    0x411a12
411a01:	b9 00 04 00 00       	mov    $0x400,%ecx
411a06:	f0 09 08             	lock or %ecx,(%eax)
411a09:	8d 46 14             	lea    0x14(%esi),%eax
411a0c:	6a 02                	push   $0x2
411a0e:	89 46 04             	mov    %eax,0x4(%esi)
411a11:	5f                   	pop    %edi
411a12:	89 7e 18             	mov    %edi,0x18(%esi)
411a15:	8b 46 04             	mov    0x4(%esi),%eax
411a18:	83 66 08 00          	andl   $0x0,0x8(%esi)
411a1c:	5f                   	pop    %edi
411a1d:	89 06                	mov    %eax,(%esi)
411a1f:	5e                   	pop    %esi
411a20:	5d                   	pop    %ebp
411a21:	c3                   	ret
411a22:	8b ff                	mov    %edi,%edi
411a24:	55                   	push   %ebp
411a25:	8b ec                	mov    %esp,%ebp
411a27:	8b 4d 10             	mov    0x10(%ebp),%ecx
411a2a:	85 c9                	test   %ecx,%ecx
411a2c:	75 04                	jne    0x411a32
411a2e:	33 c0                	xor    %eax,%eax
411a30:	5d                   	pop    %ebp
411a31:	c3                   	ret
411a32:	53                   	push   %ebx
411a33:	8b 5d 0c             	mov    0xc(%ebp),%ebx
411a36:	56                   	push   %esi
411a37:	57                   	push   %edi
411a38:	8b 7d 08             	mov    0x8(%ebp),%edi
411a3b:	0f b7 17             	movzwl (%edi),%edx
411a3e:	8d 7f 02             	lea    0x2(%edi),%edi
411a41:	8d 42 bf             	lea    -0x41(%edx),%eax
411a44:	83 f8 19             	cmp    $0x19,%eax
411a47:	77 03                	ja     0x411a4c
411a49:	83 c2 20             	add    $0x20,%edx
411a4c:	0f b7 33             	movzwl (%ebx),%esi
411a4f:	83 c3 02             	add    $0x2,%ebx
411a52:	8d 46 bf             	lea    -0x41(%esi),%eax
411a55:	83 f8 19             	cmp    $0x19,%eax
411a58:	77 03                	ja     0x411a5d
411a5a:	83 c6 20             	add    $0x20,%esi
411a5d:	8b c2                	mov    %edx,%eax
411a5f:	2b c6                	sub    %esi,%eax
411a61:	75 09                	jne    0x411a6c
411a63:	85 d2                	test   %edx,%edx
411a65:	74 05                	je     0x411a6c
411a67:	83 e9 01             	sub    $0x1,%ecx
411a6a:	75 cf                	jne    0x411a3b
411a6c:	5f                   	pop    %edi
411a6d:	5e                   	pop    %esi
411a6e:	5b                   	pop    %ebx
411a6f:	5d                   	pop    %ebp
411a70:	c3                   	ret
411a71:	8b ff                	mov    %edi,%edi
411a73:	55                   	push   %ebp
411a74:	8b ec                	mov    %esp,%ebp
411a76:	8b 45 08             	mov    0x8(%ebp),%eax
411a79:	b9 00 01 00 00       	mov    $0x100,%ecx
411a7e:	66 3b c1             	cmp    %cx,%ax
411a81:	73 20                	jae    0x411aa3
411a83:	0f b6 c8             	movzbl %al,%ecx
411a86:	f6 04 4d f2 b5 41 00 	testb  $0x1,0x41b5f2(,%ecx,2)
411a8d:	01
411a8e:	74 0e                	je     0x411a9e
411a90:	8b 45 0c             	mov    0xc(%ebp),%eax
411a93:	8b 00                	mov    (%eax),%eax
411a95:	8b 80 94 00 00 00    	mov    0x94(%eax),%eax
411a9b:	8a 04 01             	mov    (%ecx,%eax,1),%al
411a9e:	0f b6 c0             	movzbl %al,%eax
411aa1:	5d                   	pop    %ebp
411aa2:	c3                   	ret
411aa3:	ff 75 0c             	push   0xc(%ebp)