40952f:	8b 45 10             	mov    0x10(%ebp),%eax
409532:	8b 48 04             	mov    0x4(%eax),%ecx
409535:	85 c9                	test   %ecx,%ecx
409537:	0f 84 0a 01 00 00    	je     0x409647
40953d:	38 59 08             	cmp    %bl,0x8(%ecx)
409540:	0f 84 01 01 00 00    	je     0x409647
409546:	8b 50 08             	mov    0x8(%eax),%edx
409549:	85 d2                	test   %edx,%edx
40954b:	75 08                	jne    0x409555
40954d:	39 18                	cmp    %ebx,(%eax)
40954f:	0f 8d f2 00 00 00    	jge    0x409647
409555:	8b 08                	mov    (%eax),%ecx
409557:	8b 75 0c             	mov    0xc(%ebp),%esi
40955a:	85 c9                	test   %ecx,%ecx
40955c:	78 05                	js     0x409563
40955e:	83 c6 0c             	add    $0xc,%esi
409561:	03 f2                	add    %edx,%esi
409563:	89 5d fc             	mov    %ebx,-0x4(%ebp)
409566:	8b 7d 14             	mov    0x14(%ebp),%edi
409569:	84 c9                	test   %cl,%cl
40956b:	79 24                	jns    0x409591
40956d:	f6 07 10             	testb  $0x10,(%edi)
409570:	74 1f                	je     0x409591
409572:	a1 7c 99 83 02       	mov    0x283997c,%eax
409577:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40957a:	85 c0                	test   %eax,%eax
40957c:	74 13                	je     0x409591
40957e:	8b c8                	mov    %eax,%ecx
409580:	e8 ec da ff ff       	call   0x407071
409585:	ff 55 e4             	call   *-0x1c(%ebp)
409588:	8b c8                	mov    %eax,%ecx
40958a:	eb 10                	jmp    0x40959c
40958c:	e8 39 e5 00 00       	call   0x417aca
409591:	8b 45 08             	mov    0x8(%ebp),%eax
409594:	f6 c1 08             	test   $0x8,%cl
409597:	74 14                	je     0x4095ad
409599:	8b 48 18             	mov    0x18(%eax),%ecx
40959c:	85 c9                	test   %ecx,%ecx
40959e:	74 ec                	je     0x40958c
4095a0:	85 f6                	test   %esi,%esi
4095a2:	74 e8                	je     0x40958c
4095a4:	89 0e                	mov    %ecx,(%esi)
4095a6:	8d 47 08             	lea    0x8(%edi),%eax
4095a9:	50                   	push   %eax
4095aa:	51                   	push   %ecx
4095ab:	eb 2f                	jmp    0x4095dc
4095ad:	f6 07 01             	testb  $0x1,(%edi)
4095b0:	74 35                	je     0x4095e7
4095b2:	83 78 18 00          	cmpl   $0x0,0x18(%eax)
4095b6:	74 d4                	je     0x40958c
4095b8:	85 f6                	test   %esi,%esi
4095ba:	74 d0                	je     0x40958c
4095bc:	ff 77 14             	push   0x14(%edi)
4095bf:	ff 70 18             	push   0x18(%eax)
4095c2:	56                   	push   %esi
4095c3:	e8 58 e4 ff ff       	call   0x407a20
4095c8:	83 c4 0c             	add    $0xc,%esp
4095cb:	83 7f 14 04          	cmpl   $0x4,0x14(%edi)
4095cf:	75 5f                	jne    0x409630
4095d1:	83 3e 00             	cmpl   $0x0,(%esi)
4095d4:	74 5a                	je     0x409630
4095d6:	8d 47 08             	lea    0x8(%edi),%eax
4095d9:	50                   	push   %eax
4095da:	ff 36                	push   (%esi)
4095dc:	e8 8c fe ff ff       	call   0x40946d
4095e1:	59                   	pop    %ecx
4095e2:	59                   	pop    %ecx
4095e3:	89 06                	mov    %eax,(%esi)
4095e5:	eb 49                	jmp    0x409630
4095e7:	39 5f 18             	cmp    %ebx,0x18(%edi)
4095ea:	75 26                	jne    0x409612
4095ec:	8b 48 18             	mov    0x18(%eax),%ecx
4095ef:	85 c9                	test   %ecx,%ecx
4095f1:	74 99                	je     0x40958c
4095f3:	85 f6                	test   %esi,%esi
4095f5:	74 95                	je     0x40958c
4095f7:	ff 77 14             	push   0x14(%edi)
4095fa:	8d 47 08             	lea    0x8(%edi),%eax
4095fd:	50                   	push   %eax
4095fe:	51                   	push   %ecx
4095ff:	e8 69 fe ff ff       	call   0x40946d
409604:	59                   	pop    %ecx
409605:	59                   	pop    %ecx
409606:	50                   	push   %eax
409607:	56                   	push   %esi
409608:	e8 13 e4 ff ff       	call   0x407a20
40960d:	83 c4 0c             	add    $0xc,%esp
409610:	eb 1e                	jmp    0x409630
409612:	39 58 18             	cmp    %ebx,0x18(%eax)
409615:	0f 84 71 ff ff ff    	je     0x40958c
40961b:	85 f6                	test   %esi,%esi
40961d:	0f 84 69 ff ff ff    	je     0x40958c
409623:	f6 07 04             	testb  $0x4,(%edi)
409626:	6a 00                	push   $0x0
409628:	5b                   	pop    %ebx
409629:	0f 95 c3             	setne  %bl
40962c:	43                   	inc    %ebx
40962d:	89 5d e0             	mov    %ebx,-0x20(%ebp)
409630:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
409637:	8b c3                	mov    %ebx,%eax
409639:	eb 0e                	jmp    0x409649
40963b:	33 c0                	xor    %eax,%eax
40963d:	40                   	inc    %eax
40963e:	c3                   	ret
40963f:	8b 65 e8             	mov    -0x18(%ebp),%esp
409642:	e9 45 ff ff ff       	jmp    0x40958c
409647:	33 c0                	xor    %eax,%eax
409649:	e8 18 e0 ff ff       	call   0x407666
40964e:	c3                   	ret
40964f:	55                   	push   %ebp
409650:	8b ec                	mov    %esp,%ebp
409652:	8b 45 08             	mov    0x8(%ebp),%eax
409655:	8b 00                	mov    (%eax),%eax
409657:	81 38 52 43 43 e0    	cmpl   $0xe0434352,(%eax)
40965d:	74 1e                	je     0x40967d
40965f:	81 38 4d 4f 43 e0    	cmpl   $0xe0434f4d,(%eax)
409665:	74 16                	je     0x40967d
409667:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
40966d:	75 21                	jne    0x409690
40966f:	e8 02 20 00 00       	call   0x40b676
409674:	83 60 18 00          	andl   $0x0,0x18(%eax)
409678:	e9 4d e4 00 00       	jmp    0x417aca
40967d:	e8 f4 1f 00 00       	call   0x40b676
409682:	83 78 18 00          	cmpl   $0x0,0x18(%eax)
409686:	7e 08                	jle    0x409690
409688:	e8 e9 1f 00 00       	call   0x40b676
40968d:	ff 48 18             	decl   0x18(%eax)
409690:	33 c0                	xor    %eax,%eax
409692:	5d                   	pop    %ebp
409693:	c3                   	ret
409694:	6a 10                	push   $0x10
409696:	68 80 7e 43 00       	push   $0x437e80
40969b:	e8 80 df ff ff       	call   0x407620
4096a0:	8b 45 10             	mov    0x10(%ebp),%eax
4096a3:	81 78 04 80 00 00 00 	cmpl   $0x80,0x4(%eax)
4096aa:	8b 45 08             	mov    0x8(%ebp),%eax
4096ad:	7f 06                	jg     0x4096b5
4096af:	0f be 70 08          	movsbl 0x8(%eax),%esi
4096b3:	eb 03                	jmp    0x4096b8
4096b5:	8b 70 08             	mov    0x8(%eax),%esi
4096b8:	89 75 e4             	mov    %esi,-0x1c(%ebp)
4096bb:	e8 b6 1f 00 00       	call   0x40b676
4096c0:	ff 40 18             	incl   0x18(%eax)
4096c3:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4096c7:	3b 75 14             	cmp    0x14(%ebp),%esi
4096ca:	74 5c                	je     0x409728
4096cc:	83 fe ff             	cmp    $0xffffffff,%esi
4096cf:	7e 52                	jle    0x409723
4096d1:	8b 4d 10             	mov    0x10(%ebp),%ecx
4096d4:	3b 71 04             	cmp    0x4(%ecx),%esi
4096d7:	7d 4a                	jge    0x409723
4096d9:	8b 41 08             	mov    0x8(%ecx),%eax
4096dc:	8b 14 f0             	mov    (%eax,%esi,8),%edx
4096df:	89 55 e0             	mov    %edx,-0x20(%ebp)
4096e2:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4096e9:	83 7c f0 04 00       	cmpl   $0x0,0x4(%eax,%esi,8)
4096ee:	74 27                	je     0x409717
4096f0:	8b 45 08             	mov    0x8(%ebp),%eax
4096f3:	89 50 08             	mov    %edx,0x8(%eax)
4096f6:	68 03 01 00 00       	push   $0x103
4096fb:	50                   	push   %eax
4096fc:	8b 41 08             	mov    0x8(%ecx),%eax
4096ff:	ff 74 f0 04          	push   0x4(%eax,%esi,8)
409703:	e8 68 20 00 00       	call   0x40b770
409708:	eb 0d                	jmp    0x409717
40970a:	ff 75 ec             	push   -0x14(%ebp)
40970d:	e8 3d ff ff ff       	call   0x40964f
409712:	59                   	pop    %ecx
409713:	c3                   	ret
409714:	8b 65 e8             	mov    -0x18(%ebp),%esp
409717:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40971b:	8b 75 e0             	mov    -0x20(%ebp),%esi
40971e:	89 75 e4             	mov    %esi,-0x1c(%ebp)
409721:	eb a4                	jmp    0x4096c7
409723:	e8 a2 e3 00 00       	call   0x417aca
409728:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40972f:	e8 14 00 00 00       	call   0x409748
409734:	3b 75 14             	cmp    0x14(%ebp),%esi
409737:	75 ea                	jne    0x409723
409739:	8b 45 08             	mov    0x8(%ebp),%eax
40973c:	89 70 08             	mov    %esi,0x8(%eax)
40973f:	e8 22 df ff ff       	call   0x407666
409744:	c3                   	ret
409745:	8b 75 e4             	mov    -0x1c(%ebp),%esi
409748:	e8 29 1f 00 00       	call   0x40b676
40974d:	83 78 18 00          	cmpl   $0x0,0x18(%eax)
409751:	7e 08                	jle    0x40975b
409753:	e8 1e 1f 00 00       	call   0x40b676
409758:	ff 48 18             	decl   0x18(%eax)
40975b:	c3                   	ret
40975c:	55                   	push   %ebp
40975d:	8b ec                	mov    %esp,%ebp
40975f:	53                   	push   %ebx
409760:	56                   	push   %esi
409761:	57                   	push   %edi
409762:	ff 75 10             	push   0x10(%ebp)
409765:	e8 52 20 00 00       	call   0x40b7bc
40976a:	59                   	pop    %ecx
40976b:	e8 06 1f 00 00       	call   0x40b676
409770:	8b 4d 18             	mov    0x18(%ebp),%ecx
409773:	33 f6                	xor    %esi,%esi
409775:	8b 55 08             	mov    0x8(%ebp),%edx
409778:	bb ff ff ff 1f       	mov    $0x1fffffff,%ebx
40977d:	bf 22 05 93 19       	mov    $0x19930522,%edi
409782:	39 70 20             	cmp    %esi,0x20(%eax)
409785:	75 22                	jne    0x4097a9
409787:	81 3a 63 73 6d e0    	cmpl   $0xe06d7363,(%edx)
40978d:	74 1a                	je     0x4097a9
40978f:	81 3a 26 00 00 80    	cmpl   $0x80000026,(%edx)
409795:	74 12                	je     0x4097a9
409797:	8b 01                	mov    (%ecx),%eax
409799:	23 c3                	and    %ebx,%eax
40979b:	3b c7                	cmp    %edi,%eax
40979d:	72 0a                	jb     0x4097a9
40979f:	f6 41 20 01          	testb  $0x1,0x20(%ecx)
4097a3:	0f 85 a7 00 00 00    	jne    0x409850
4097a9:	f6 42 04 66          	testb  $0x66,0x4(%edx)
4097ad:	74 25                	je     0x4097d4
4097af:	39 71 04             	cmp    %esi,0x4(%ecx)
4097b2:	0f 84 98 00 00 00    	je     0x409850
4097b8:	39 75 1c             	cmp    %esi,0x1c(%ebp)
4097bb:	0f 85 8f 00 00 00    	jne    0x409850
4097c1:	6a ff                	push   $0xffffffff
4097c3:	51                   	push   %ecx
4097c4:	ff 75 14             	push   0x14(%ebp)
4097c7:	ff 75 0c             	push   0xc(%ebp)
4097ca:	e8 c5 fe ff ff       	call   0x409694
4097cf:	83 c4 10             	add    $0x10,%esp
4097d2:	eb 7c                	jmp    0x409850
4097d4:	39 71 0c             	cmp    %esi,0xc(%ecx)
4097d7:	75 1a                	jne    0x4097f3
4097d9:	8b 01                	mov    (%ecx),%eax
4097db:	23 c3                	and    %ebx,%eax
4097dd:	3d 21 05 93 19       	cmp    $0x19930521,%eax
4097e2:	72 05                	jb     0x4097e9
4097e4:	39 71 1c             	cmp    %esi,0x1c(%ecx)
4097e7:	75 0a                	jne    0x4097f3
4097e9:	3b c7                	cmp    %edi,%eax
4097eb:	72 63                	jb     0x409850
4097ed:	f6 41 20 04          	testb  $0x4,0x20(%ecx)
4097f1:	74 5d                	je     0x409850
4097f3:	81 3a 63 73 6d e0    	cmpl   $0xe06d7363,(%edx)
4097f9:	75 39                	jne    0x409834
4097fb:	83 7a 10 03          	cmpl   $0x3,0x10(%edx)
4097ff:	72 33                	jb     0x409834
409801:	39 7a 14             	cmp    %edi,0x14(%edx)
409804:	76 2e                	jbe    0x409834
409806:	8b 42 1c             	mov    0x1c(%edx),%eax
409809:	8b 70 08             	mov    0x8(%eax),%esi
40980c:	85 f6                	test   %esi,%esi
40980e:	74 24                	je     0x409834
409810:	0f b6 45 24          	movzbl 0x24(%ebp),%eax
409814:	50                   	push   %eax
409815:	ff 75 20             	push   0x20(%ebp)
409818:	ff 75 1c             	push   0x1c(%ebp)
40981b:	51                   	push   %ecx
40981c:	ff 75 14             	push   0x14(%ebp)
40981f:	8b ce                	mov    %esi,%ecx
409821:	ff 75 10             	push   0x10(%ebp)
409824:	ff 75 0c             	push   0xc(%ebp)
409827:	52                   	push   %edx
409828:	e8 44 d8 ff ff       	call   0x407071
40982d:	ff d6                	call   *%esi
40982f:	83 c4 20             	add    $0x20,%esp
409832:	eb 1f                	jmp    0x409853
409834:	ff 75 20             	push   0x20(%ebp)
409837:	ff 75 1c             	push   0x1c(%ebp)
40983a:	ff 75 24             	push   0x24(%ebp)
40983d:	51                   	push   %ecx
40983e:	ff 75 14             	push   0x14(%ebp)
409841:	ff 75 10             	push   0x10(%ebp)
409844:	ff 75 0c             	push   0xc(%ebp)
409847:	52                   	push   %edx
409848:	e8 ad f6 ff ff       	call   0x408efa
40984d:	83 c4 20             	add    $0x20,%esp
409850:	33 c0                	xor    %eax,%eax
409852:	40                   	inc    %eax
409853:	5f                   	pop    %edi
409854:	5e                   	pop    %esi
409855:	5b                   	pop    %ebx
409856:	5d                   	pop    %ebp
409857:	c3                   	ret
409858:	55                   	push   %ebp
409859:	8b ec                	mov    %esp,%ebp
40985b:	8b 55 08             	mov    0x8(%ebp),%edx
40985e:	53                   	push   %ebx
40985f:	56                   	push   %esi
409860:	57                   	push   %edi
409861:	8b 42 04             	mov    0x4(%edx),%eax
409864:	85 c0                	test   %eax,%eax
409866:	74 76                	je     0x4098de
409868:	8d 48 08             	lea    0x8(%eax),%ecx
40986b:	80 39 00             	cmpb   $0x0,(%ecx)
40986e:	74 6e                	je     0x4098de
409870:	f6 02 80             	testb  $0x80,(%edx)
409873:	8b 7d 0c             	mov    0xc(%ebp),%edi
409876:	74 05                	je     0x40987d
409878:	f6 07 10             	testb  $0x10,(%edi)
40987b:	75 61                	jne    0x4098de
40987d:	8b 5f 04             	mov    0x4(%edi),%ebx
409880:	33 f6                	xor    %esi,%esi
409882:	3b c3                	cmp    %ebx,%eax
409884:	74 30                	je     0x4098b6
409886:	8d 43 08             	lea    0x8(%ebx),%eax
409889:	8a 19                	mov    (%ecx),%bl
40988b:	3a 18                	cmp    (%eax),%bl
40988d:	75 1a                	jne    0x4098a9
40988f:	84 db                	test   %bl,%bl
409891:	74 12                	je     0x4098a5
409893:	8a 59 01             	mov    0x1(%ecx),%bl
409896:	3a 58 01             	cmp    0x1(%eax),%bl
409899:	75 0e                	jne    0x4098a9
40989b:	83 c1 02             	add    $0x2,%ecx
40989e:	83 c0 02             	add    $0x2,%eax
4098a1:	84 db                	test   %bl,%bl
4098a3:	75 e4                	jne    0x409889
4098a5:	8b c6                	mov    %esi,%eax
4098a7:	eb 05                	jmp    0x4098ae
4098a9:	1b c0                	sbb    %eax,%eax
4098ab:	83 c8 01             	or     $0x1,%eax
4098ae:	85 c0                	test   %eax,%eax
4098b0:	74 04                	je     0x4098b6
4098b2:	33 c0                	xor    %eax,%eax
4098b4:	eb 2b                	jmp    0x4098e1
4098b6:	f6 07 02             	testb  $0x2,(%edi)
4098b9:	74 05                	je     0x4098c0
4098bb:	f6 02 08             	testb  $0x8,(%edx)
4098be:	74 1a                	je     0x4098da
4098c0:	8b 45 10             	mov    0x10(%ebp),%eax
4098c3:	f6 00 01             	testb  $0x1,(%eax)
4098c6:	74 05                	je     0x4098cd
4098c8:	f6 02 01             	testb  $0x1,(%edx)
4098cb:	74 0d                	je     0x4098da
4098cd:	f6 00 02             	testb  $0x2,(%eax)
4098d0:	74 05                	je     0x4098d7
4098d2:	f6 02 02             	testb  $0x2,(%edx)
4098d5:	74 03                	je     0x4098da
4098d7:	33 f6                	xor    %esi,%esi
4098d9:	46                   	inc    %esi
4098da:	8b c6                	mov    %esi,%eax
4098dc:	eb 03                	jmp    0x4098e1
4098de:	33 c0                	xor    %eax,%eax
4098e0:	40                   	inc    %eax
4098e1:	5f                   	pop    %edi
4098e2:	5e                   	pop    %esi
4098e3:	5b                   	pop    %ebx
4098e4:	5d                   	pop    %ebp
4098e5:	c3                   	ret
4098e6:	e8 8b 1d 00 00       	call   0x40b676
4098eb:	83 78 18 00          	cmpl   $0x0,0x18(%eax)