40d58b:	eb 02                	jmp    0x40d58f
40d58d:	03 f1                	add    %ecx,%esi
40d58f:	66 39 3e             	cmp    %di,(%esi)
40d592:	74 f9                	je     0x40d58d
40d594:	0f b7 06             	movzwl (%esi),%eax
40d597:	33 d2                	xor    %edx,%edx
40d599:	83 f8 61             	cmp    $0x61,%eax
40d59c:	74 21                	je     0x40d5bf
40d59e:	83 f8 72             	cmp    $0x72,%eax
40d5a1:	74 11                	je     0x40d5b4
40d5a3:	83 f8 77             	cmp    $0x77,%eax
40d5a6:	0f 85 db 01 00 00    	jne    0x40d787
40d5ac:	c7 03 01 03 00 00    	movl   $0x301,(%ebx)
40d5b2:	eb 11                	jmp    0x40d5c5
40d5b4:	89 13                	mov    %edx,(%ebx)
40d5b6:	c7 43 04 01 00 00 00 	movl   $0x1,0x4(%ebx)
40d5bd:	eb 09                	jmp    0x40d5c8
40d5bf:	c7 03 09 01 00 00    	movl   $0x109,(%ebx)
40d5c5:	89 4b 04             	mov    %ecx,0x4(%ebx)
40d5c8:	03 f1                	add    %ecx,%esi
40d5ca:	88 55 fd             	mov    %dl,-0x3(%ebp)
40d5cd:	32 ed                	xor    %ch,%ch
40d5cf:	88 55 fc             	mov    %dl,-0x4(%ebp)
40d5d2:	88 55 fe             	mov    %dl,-0x2(%ebp)
40d5d5:	b1 01                	mov    $0x1,%cl
40d5d7:	88 6d ff             	mov    %ch,-0x1(%ebp)
40d5da:	0f b7 06             	movzwl (%esi),%eax
40d5dd:	66 85 c0             	test   %ax,%ax
40d5e0:	0f 84 dd 00 00 00    	je     0x40d6c3
40d5e6:	83 f8 53             	cmp    $0x53,%eax
40d5e9:	7f 70                	jg     0x40d65b
40d5eb:	74 5c                	je     0x40d649
40d5ed:	2b c7                	sub    %edi,%eax
40d5ef:	0f 84 b7 00 00 00    	je     0x40d6ac
40d5f5:	83 e8 0b             	sub    $0xb,%eax
40d5f8:	74 42                	je     0x40d63c
40d5fa:	83 e8 01             	sub    $0x1,%eax
40d5fd:	74 34                	je     0x40d633
40d5ff:	83 e8 18             	sub    $0x18,%eax
40d602:	74 27                	je     0x40d62b
40d604:	83 e8 0a             	sub    $0xa,%eax
40d607:	74 15                	je     0x40d61e
40d609:	83 e8 04             	sub    $0x4,%eax
40d60c:	0f 85 75 01 00 00    	jne    0x40d787
40d612:	8a 6d ff             	mov    -0x1(%ebp),%ch
40d615:	84 d2                	test   %dl,%dl
40d617:	75 1f                	jne    0x40d638
40d619:	83 0b 10             	orl    $0x10,(%ebx)
40d61c:	eb 34                	jmp    0x40d652
40d61e:	81 0b 80 00 00 00    	orl    $0x80,(%ebx)
40d624:	b1 01                	mov    $0x1,%cl
40d626:	e9 81 00 00 00       	jmp    0x40d6ac
40d62b:	53                   	push   %ebx
40d62c:	e8 f4 01 00 00       	call   0x40d825
40d631:	eb 73                	jmp    0x40d6a6
40d633:	b5 01                	mov    $0x1,%ch
40d635:	88 6d ff             	mov    %ch,-0x1(%ebp)
40d638:	32 c9                	xor    %cl,%cl
40d63a:	eb 73                	jmp    0x40d6af
40d63c:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d63f:	50                   	push   %eax
40d640:	53                   	push   %ebx
40d641:	e8 7d 02 00 00       	call   0x40d8c3
40d646:	59                   	pop    %ecx
40d647:	eb 5d                	jmp    0x40d6a6
40d649:	8a 6d ff             	mov    -0x1(%ebp),%ch
40d64c:	84 d2                	test   %dl,%dl
40d64e:	75 e8                	jne    0x40d638
40d650:	09 3b                	or     %edi,(%ebx)
40d652:	b2 01                	mov    $0x1,%dl
40d654:	88 55 fe             	mov    %dl,-0x2(%ebp)
40d657:	8a ca                	mov    %dl,%cl
40d659:	eb 54                	jmp    0x40d6af
40d65b:	83 e8 54             	sub    $0x54,%eax
40d65e:	74 40                	je     0x40d6a0
40d660:	83 e8 0e             	sub    $0xe,%eax
40d663:	74 33                	je     0x40d698
40d665:	83 e8 01             	sub    $0x1,%eax
40d668:	74 22                	je     0x40d68c
40d66a:	83 e8 0b             	sub    $0xb,%eax
40d66d:	74 11                	je     0x40d680
40d66f:	83 e8 06             	sub    $0x6,%eax
40d672:	0f 85 0f 01 00 00    	jne    0x40d787
40d678:	53                   	push   %ebx
40d679:	e8 7a 02 00 00       	call   0x40d8f8
40d67e:	eb 26                	jmp    0x40d6a6
40d680:	8d 45 fd             	lea    -0x3(%ebp),%eax
40d683:	50                   	push   %eax
40d684:	53                   	push   %ebx
40d685:	e8 17 02 00 00       	call   0x40d8a1
40d68a:	eb ba                	jmp    0x40d646
40d68c:	8d 45 fd             	lea    -0x3(%ebp),%eax
40d68f:	50                   	push   %eax
40d690:	53                   	push   %ebx
40d691:	e8 e9 01 00 00       	call   0x40d87f
40d696:	eb ae                	jmp    0x40d646
40d698:	53                   	push   %ebx
40d699:	e8 c1 01 00 00       	call   0x40d85f
40d69e:	eb 06                	jmp    0x40d6a6
40d6a0:	53                   	push   %ebx
40d6a1:	e8 9a 01 00 00       	call   0x40d840
40d6a6:	8a 55 fe             	mov    -0x2(%ebp),%dl
40d6a9:	59                   	pop    %ecx
40d6aa:	8a c8                	mov    %al,%cl
40d6ac:	8a 6d ff             	mov    -0x1(%ebp),%ch
40d6af:	33 c0                	xor    %eax,%eax
40d6b1:	84 c9                	test   %cl,%cl
40d6b3:	0f 95 c0             	setne  %al
40d6b6:	8d 34 46             	lea    (%esi,%eax,2),%esi
40d6b9:	84 c9                	test   %cl,%cl
40d6bb:	0f 85 19 ff ff ff    	jne    0x40d5da
40d6c1:	eb 03                	jmp    0x40d6c6
40d6c3:	8a 6d ff             	mov    -0x1(%ebp),%ch
40d6c6:	84 ed                	test   %ch,%ch
40d6c8:	74 03                	je     0x40d6cd
40d6ca:	83 c6 02             	add    $0x2,%esi
40d6cd:	66 39 3e             	cmp    %di,(%esi)
40d6d0:	74 f8                	je     0x40d6ca
40d6d2:	84 ed                	test   %ch,%ch
40d6d4:	75 14                	jne    0x40d6ea
40d6d6:	33 c0                	xor    %eax,%eax
40d6d8:	66 39 06             	cmp    %ax,(%esi)
40d6db:	0f 85 a6 00 00 00    	jne    0x40d787
40d6e1:	c6 43 08 01          	movb   $0x1,0x8(%ebx)
40d6e5:	e9 ad 00 00 00       	jmp    0x40d797
40d6ea:	6a 03                	push   $0x3
40d6ec:	68 68 ca 41 00       	push   $0x41ca68
40d6f1:	56                   	push   %esi
40d6f2:	e8 07 35 00 00       	call   0x410bfe
40d6f7:	83 c4 0c             	add    $0xc,%esp
40d6fa:	85 c0                	test   %eax,%eax
40d6fc:	0f 85 85 00 00 00    	jne    0x40d787
40d702:	83 c6 06             	add    $0x6,%esi
40d705:	eb 03                	jmp    0x40d70a
40d707:	83 c6 02             	add    $0x2,%esi
40d70a:	66 39 3e             	cmp    %di,(%esi)
40d70d:	74 f8                	je     0x40d707
40d70f:	66 83 3e 3d          	cmpw   $0x3d,(%esi)
40d713:	75 72                	jne    0x40d787
40d715:	83 c6 02             	add    $0x2,%esi
40d718:	66 39 3e             	cmp    %di,(%esi)
40d71b:	74 f8                	je     0x40d715
40d71d:	6a 05                	push   $0x5
40d71f:	68 70 ca 41 00       	push   $0x41ca70
40d724:	56                   	push   %esi
40d725:	e8 1f 63 00 00       	call   0x413a49
40d72a:	83 c4 0c             	add    $0xc,%esp
40d72d:	85 c0                	test   %eax,%eax
40d72f:	75 0b                	jne    0x40d73c
40d731:	83 c6 0a             	add    $0xa,%esi
40d734:	81 0b 00 00 04 00    	orl    $0x40000,(%ebx)
40d73a:	eb 41                	jmp    0x40d77d
40d73c:	6a 08                	push   $0x8
40d73e:	68 7c ca 41 00       	push   $0x41ca7c
40d743:	56                   	push   %esi
40d744:	e8 00 63 00 00       	call   0x413a49
40d749:	83 c4 0c             	add    $0xc,%esp
40d74c:	85 c0                	test   %eax,%eax
40d74e:	75 0b                	jne    0x40d75b
40d750:	83 c6 10             	add    $0x10,%esi
40d753:	81 0b 00 00 02 00    	orl    $0x20000,(%ebx)
40d759:	eb 22                	jmp    0x40d77d
40d75b:	6a 07                	push   $0x7
40d75d:	68 8c ca 41 00       	push   $0x41ca8c
40d762:	56                   	push   %esi
40d763:	e8 e1 62 00 00       	call   0x413a49
40d768:	83 c4 0c             	add    $0xc,%esp
40d76b:	85 c0                	test   %eax,%eax
40d76d:	75 18                	jne    0x40d787
40d76f:	83 c6 0e             	add    $0xe,%esi
40d772:	81 0b 00 00 01 00    	orl    $0x10000,(%ebx)
40d778:	eb 03                	jmp    0x40d77d
40d77a:	83 c6 02             	add    $0x2,%esi
40d77d:	66 39 3e             	cmp    %di,(%esi)
40d780:	74 f8                	je     0x40d77a
40d782:	e9 4f ff ff ff       	jmp    0x40d6d6
40d787:	e8 7b a5 ff ff       	call   0x407d07
40d78c:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40d792:	e8 97 a4 ff ff       	call   0x407c2e
40d797:	5f                   	pop    %edi
40d798:	5e                   	pop    %esi
40d799:	8b c3                	mov    %ebx,%eax
40d79b:	5b                   	pop    %ebx
40d79c:	8b e5                	mov    %ebp,%esp
40d79e:	5d                   	pop    %ebp
40d79f:	c3                   	ret
40d7a0:	8b ff                	mov    %edi,%edi
40d7a2:	55                   	push   %ebp
40d7a3:	8b ec                	mov    %esp,%ebp
40d7a5:	83 ec 1c             	sub    $0x1c,%esp
40d7a8:	56                   	push   %esi
40d7a9:	57                   	push   %edi
40d7aa:	ff 75 0c             	push   0xc(%ebp)
40d7ad:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40d7b0:	50                   	push   %eax
40d7b1:	e8 a6 fd ff ff       	call   0x40d55c
40d7b6:	8b f0                	mov    %eax,%esi
40d7b8:	8d 7d f0             	lea    -0x10(%ebp),%edi
40d7bb:	59                   	pop    %ecx
40d7bc:	59                   	pop    %ecx
40d7bd:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d7be:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d7bf:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d7c0:	80 7d f8 00          	cmpb   $0x0,-0x8(%ebp)
40d7c4:	5f                   	pop    %edi
40d7c5:	5e                   	pop    %esi
40d7c6:	75 04                	jne    0x40d7cc
40d7c8:	33 c0                	xor    %eax,%eax
40d7ca:	eb 55                	jmp    0x40d821
40d7cc:	68 80 01 00 00       	push   $0x180
40d7d1:	ff 75 10             	push   0x10(%ebp)
40d7d4:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d7d7:	ff 75 f0             	push   -0x10(%ebp)
40d7da:	ff 75 08             	push   0x8(%ebp)
40d7dd:	50                   	push   %eax
40d7de:	e8 cb 6e 00 00       	call   0x4146ae
40d7e3:	83 c4 14             	add    $0x14,%esp
40d7e6:	85 c0                	test   %eax,%eax
40d7e8:	75 de                	jne    0x40d7c8
40d7ea:	8b 45 14             	mov    0x14(%ebp),%eax
40d7ed:	ff 05 ac 41 42 00    	incl   0x4241ac
40d7f3:	83 c0 0c             	add    $0xc,%eax
40d7f6:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40d7f9:	f0 09 08             	lock or %ecx,(%eax)
40d7fc:	8b 45 14             	mov    0x14(%ebp),%eax
40d7ff:	33 c9                	xor    %ecx,%ecx
40d801:	89 48 08             	mov    %ecx,0x8(%eax)
40d804:	8b 45 14             	mov    0x14(%ebp),%eax
40d807:	89 48 1c             	mov    %ecx,0x1c(%eax)
40d80a:	8b 45 14             	mov    0x14(%ebp),%eax
40d80d:	89 48 04             	mov    %ecx,0x4(%eax)
40d810:	8b 45 14             	mov    0x14(%ebp),%eax
40d813:	89 08                	mov    %ecx,(%eax)
40d815:	8b 4d 14             	mov    0x14(%ebp),%ecx
40d818:	8b 45 fc             	mov    -0x4(%ebp),%eax
40d81b:	89 41 10             	mov    %eax,0x10(%ecx)
40d81e:	8b 45 14             	mov    0x14(%ebp),%eax
40d821:	8b e5                	mov    %ebp,%esp
40d823:	5d                   	pop    %ebp
40d824:	c3                   	ret
40d825:	8b ff                	mov    %edi,%edi
40d827:	55                   	push   %ebp
40d828:	8b ec                	mov    %esp,%ebp
40d82a:	8b 4d 08             	mov    0x8(%ebp),%ecx
40d82d:	8b 01                	mov    (%ecx),%eax
40d82f:	a8 40                	test   $0x40,%al
40d831:	74 04                	je     0x40d837
40d833:	32 c0                	xor    %al,%al
40d835:	5d                   	pop    %ebp
40d836:	c3                   	ret
40d837:	83 c8 40             	or     $0x40,%eax
40d83a:	89 01                	mov    %eax,(%ecx)
40d83c:	b0 01                	mov    $0x1,%al
40d83e:	5d                   	pop    %ebp
40d83f:	c3                   	ret
40d840:	8b ff                	mov    %edi,%edi
40d842:	55                   	push   %ebp
40d843:	8b ec                	mov    %esp,%ebp
40d845:	8b 4d 08             	mov    0x8(%ebp),%ecx
40d848:	ba 00 10 00 00       	mov    $0x1000,%edx
40d84d:	8b 01                	mov    (%ecx),%eax
40d84f:	85 c2                	test   %eax,%edx
40d851:	74 04                	je     0x40d857
40d853:	32 c0                	xor    %al,%al
40d855:	5d                   	pop    %ebp
40d856:	c3                   	ret
40d857:	0b c2                	or     %edx,%eax
40d859:	89 01                	mov    %eax,(%ecx)
40d85b:	b0 01                	mov    $0x1,%al
40d85d:	5d                   	pop    %ebp
40d85e:	c3                   	ret
40d85f:	8b ff                	mov    %edi,%edi
40d861:	55                   	push   %ebp
40d862:	8b ec                	mov    %esp,%ebp
40d864:	8b 4d 08             	mov    0x8(%ebp),%ecx
40d867:	8b 01                	mov    (%ecx),%eax
40d869:	a9 00 c0 00 00       	test   $0xc000,%eax
40d86e:	74 04                	je     0x40d874
40d870:	32 c0                	xor    %al,%al
40d872:	5d                   	pop    %ebp
40d873:	c3                   	ret
40d874:	0d 00 80 00 00       	or     $0x8000,%eax
40d879:	89 01                	mov    %eax,(%ecx)
40d87b:	b0 01                	mov    $0x1,%al
40d87d:	5d                   	pop    %ebp
40d87e:	c3                   	ret
40d87f:	8b ff                	mov    %edi,%edi
40d881:	55                   	push   %ebp
40d882:	8b ec                	mov    %esp,%ebp
40d884:	8b 45 0c             	mov    0xc(%ebp),%eax
40d887:	80 38 00             	cmpb   $0x0,(%eax)
40d88a:	74 04                	je     0x40d890
40d88c:	32 c0                	xor    %al,%al
40d88e:	5d                   	pop    %ebp
40d88f:	c3                   	ret
40d890:	8b 4d 08             	mov    0x8(%ebp),%ecx
40d893:	c6 00 01             	movb   $0x1,(%eax)
40d896:	b0 01                	mov    $0x1,%al
40d898:	81 49 04 00 08 00 00 	orl    $0x800,0x4(%ecx)
40d89f:	5d                   	pop    %ebp
40d8a0:	c3                   	ret
40d8a1:	8b ff                	mov    %edi,%edi
40d8a3:	55                   	push   %ebp
40d8a4:	8b ec                	mov    %esp,%ebp
40d8a6:	8b 45 0c             	mov    0xc(%ebp),%eax
40d8a9:	80 38 00             	cmpb   $0x0,(%eax)
40d8ac:	74 04                	je     0x40d8b2
40d8ae:	32 c0                	xor    %al,%al
40d8b0:	5d                   	pop    %ebp
40d8b1:	c3                   	ret
40d8b2:	8b 4d 08             	mov    0x8(%ebp),%ecx
40d8b5:	c6 00 01             	movb   $0x1,(%eax)
40d8b8:	b0 01                	mov    $0x1,%al
40d8ba:	81 61 04 ff f7 ff ff 	andl   $0xfffff7ff,0x4(%ecx)
40d8c1:	5d                   	pop    %ebp
40d8c2:	c3                   	ret
40d8c3:	8b ff                	mov    %edi,%edi
40d8c5:	55                   	push   %ebp
40d8c6:	8b ec                	mov    %esp,%ebp
40d8c8:	8b 45 0c             	mov    0xc(%ebp),%eax
40d8cb:	80 38 00             	cmpb   $0x0,(%eax)
40d8ce:	74 04                	je     0x40d8d4
40d8d0:	32 c0                	xor    %al,%al
40d8d2:	5d                   	pop    %ebp
40d8d3:	c3                   	ret
40d8d4:	8b 55 08             	mov    0x8(%ebp),%edx
40d8d7:	c6 00 01             	movb   $0x1,(%eax)
40d8da:	8b 02                	mov    (%edx),%eax
40d8dc:	a8 02                	test   $0x2,%al
40d8de:	75 f0                	jne    0x40d8d0
40d8e0:	8b 4a 04             	mov    0x4(%edx),%ecx
40d8e3:	83 e0 fe             	and    $0xfffffffe,%eax
40d8e6:	83 c8 02             	or     $0x2,%eax
40d8e9:	83 e1 fc             	and    $0xfffffffc,%ecx
40d8ec:	83 c9 04             	or     $0x4,%ecx
40d8ef:	89 02                	mov    %eax,(%edx)
40d8f1:	89 4a 04             	mov    %ecx,0x4(%edx)
40d8f4:	b0 01                	mov    $0x1,%al
40d8f6:	5d                   	pop    %ebp
40d8f7:	c3                   	ret
40d8f8:	8b ff                	mov    %edi,%edi
40d8fa:	55                   	push   %ebp
40d8fb:	8b ec                	mov    %esp,%ebp
40d8fd:	8b 4d 08             	mov    0x8(%ebp),%ecx
40d900:	8b 01                	mov    (%ecx),%eax
40d902:	a9 00 c0 00 00       	test   $0xc000,%eax
40d907:	74 04                	je     0x40d90d
40d909:	32 c0                	xor    %al,%al
40d90b:	5d                   	pop    %ebp
40d90c:	c3                   	ret