409395:	85 ff                	test   %edi,%edi
409397:	7e 71                	jle    0x40940a
409399:	8b 45 08             	mov    0x8(%ebp),%eax
40939c:	8b d3                	mov    %ebx,%edx
40939e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4093a1:	8b 40 1c             	mov    0x1c(%eax),%eax
4093a4:	8b 40 0c             	mov    0xc(%eax),%eax
4093a7:	8b 08                	mov    (%eax),%ecx
4093a9:	83 c0 04             	add    $0x4,%eax
4093ac:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4093af:	89 45 e8             	mov    %eax,-0x18(%ebp)
4093b2:	8b c8                	mov    %eax,%ecx
4093b4:	8b 45 f0             	mov    -0x10(%ebp),%eax
4093b7:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4093ba:	89 45 f8             	mov    %eax,-0x8(%ebp)
4093bd:	85 c0                	test   %eax,%eax
4093bf:	7e 3b                	jle    0x4093fc
4093c1:	8b 46 04             	mov    0x4(%esi),%eax
4093c4:	03 c2                	add    %edx,%eax
4093c6:	89 45 ec             	mov    %eax,-0x14(%ebp)
4093c9:	8b 55 08             	mov    0x8(%ebp),%edx
4093cc:	ff 72 1c             	push   0x1c(%edx)
4093cf:	ff 31                	push   (%ecx)
4093d1:	50                   	push   %eax
4093d2:	e8 81 04 00 00       	call   0x409858
4093d7:	83 c4 0c             	add    $0xc,%esp
4093da:	85 c0                	test   %eax,%eax
4093dc:	75 19                	jne    0x4093f7
4093de:	8b 45 f8             	mov    -0x8(%ebp),%eax
4093e1:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4093e4:	48                   	dec    %eax
4093e5:	83 c1 04             	add    $0x4,%ecx
4093e8:	89 45 f8             	mov    %eax,-0x8(%ebp)
4093eb:	85 c0                	test   %eax,%eax
4093ed:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4093f0:	8b 45 ec             	mov    -0x14(%ebp),%eax
4093f3:	7f d4                	jg     0x4093c9
4093f5:	eb 02                	jmp    0x4093f9
4093f7:	b3 01                	mov    $0x1,%bl
4093f9:	8b 55 fc             	mov    -0x4(%ebp),%edx
4093fc:	8b 45 e8             	mov    -0x18(%ebp),%eax
4093ff:	83 c2 10             	add    $0x10,%edx
409402:	89 55 fc             	mov    %edx,-0x4(%ebp)
409405:	83 ef 01             	sub    $0x1,%edi
409408:	75 a8                	jne    0x4093b2
40940a:	5f                   	pop    %edi
40940b:	5e                   	pop    %esi
40940c:	8a c3                	mov    %bl,%al
40940e:	5b                   	pop    %ebx
40940f:	8b e5                	mov    %ebp,%esp
409411:	5d                   	pop    %ebp
409412:	c3                   	ret
409413:	e8 b2 e6 00 00       	call   0x417aca
409418:	cc                   	int3
409419:	55                   	push   %ebp
40941a:	8b ec                	mov    %esp,%ebp
40941c:	53                   	push   %ebx
40941d:	56                   	push   %esi
40941e:	57                   	push   %edi
40941f:	8b 7d 08             	mov    0x8(%ebp),%edi
409422:	33 f6                	xor    %esi,%esi
409424:	39 37                	cmp    %esi,(%edi)
409426:	7e 25                	jle    0x40944d
409428:	8b de                	mov    %esi,%ebx
40942a:	8b 47 04             	mov    0x4(%edi),%eax
40942d:	68 50 c7 43 00       	push   $0x43c750
409432:	8b 44 03 04          	mov    0x4(%ebx,%eax,1),%eax
409436:	83 c0 04             	add    $0x4,%eax
409439:	50                   	push   %eax
40943a:	e8 c2 21 00 00       	call   0x40b601
40943f:	59                   	pop    %ecx
409440:	59                   	pop    %ecx
409441:	85 c0                	test   %eax,%eax
409443:	74 0f                	je     0x409454
409445:	46                   	inc    %esi
409446:	83 c3 10             	add    $0x10,%ebx
409449:	3b 37                	cmp    (%edi),%esi
40944b:	7c dd                	jl     0x40942a
40944d:	32 c0                	xor    %al,%al
40944f:	5f                   	pop    %edi
409450:	5e                   	pop    %esi
409451:	5b                   	pop    %ebx
409452:	5d                   	pop    %ebp
409453:	c3                   	ret
409454:	b0 01                	mov    $0x1,%al
409456:	eb f7                	jmp    0x40944f
409458:	58                   	pop    %eax
409459:	59                   	pop    %ecx
40945a:	87 04 24             	xchg   %eax,(%esp)
40945d:	ff e0                	jmp    *%eax
40945f:	58                   	pop    %eax
409460:	59                   	pop    %ecx
409461:	87 04 24             	xchg   %eax,(%esp)
409464:	ff e0                	jmp    *%eax
409466:	58                   	pop    %eax
409467:	59                   	pop    %ecx
409468:	87 04 24             	xchg   %eax,(%esp)
40946b:	ff e0                	jmp    *%eax
40946d:	55                   	push   %ebp
40946e:	8b ec                	mov    %esp,%ebp
409470:	8b 4d 0c             	mov    0xc(%ebp),%ecx
409473:	8b 55 08             	mov    0x8(%ebp),%edx
409476:	56                   	push   %esi
409477:	8b 01                	mov    (%ecx),%eax
409479:	8b 71 04             	mov    0x4(%ecx),%esi
40947c:	03 c2                	add    %edx,%eax
40947e:	85 f6                	test   %esi,%esi
409480:	78 0d                	js     0x40948f
409482:	8b 49 08             	mov    0x8(%ecx),%ecx
409485:	8b 14 16             	mov    (%esi,%edx,1),%edx
409488:	8b 0c 0a             	mov    (%edx,%ecx,1),%ecx
40948b:	03 ce                	add    %esi,%ecx
40948d:	03 c1                	add    %ecx,%eax
40948f:	5e                   	pop    %esi
409490:	5d                   	pop    %ebp
409491:	c3                   	ret
409492:	6a 08                	push   $0x8
409494:	68 d0 7e 43 00       	push   $0x437ed0
409499:	e8 82 e1 ff ff       	call   0x407620
40949e:	8b 55 10             	mov    0x10(%ebp),%edx
4094a1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4094a4:	83 3a 00             	cmpl   $0x0,(%edx)
4094a7:	7d 04                	jge    0x4094ad
4094a9:	8b f9                	mov    %ecx,%edi
4094ab:	eb 06                	jmp    0x4094b3
4094ad:	8d 79 0c             	lea    0xc(%ecx),%edi
4094b0:	03 7a 08             	add    0x8(%edx),%edi
4094b3:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4094b7:	8b 75 14             	mov    0x14(%ebp),%esi
4094ba:	56                   	push   %esi
4094bb:	52                   	push   %edx
4094bc:	51                   	push   %ecx
4094bd:	8b 5d 08             	mov    0x8(%ebp),%ebx
4094c0:	53                   	push   %ebx
4094c1:	e8 5b 00 00 00       	call   0x409521
4094c6:	83 c4 10             	add    $0x10,%esp
4094c9:	83 e8 01             	sub    $0x1,%eax
4094cc:	74 21                	je     0x4094ef
4094ce:	83 e8 01             	sub    $0x1,%eax
4094d1:	75 34                	jne    0x409507
4094d3:	6a 01                	push   $0x1
4094d5:	8d 46 08             	lea    0x8(%esi),%eax
4094d8:	50                   	push   %eax
4094d9:	ff 73 18             	push   0x18(%ebx)
4094dc:	e8 8c ff ff ff       	call   0x40946d
4094e1:	59                   	pop    %ecx
4094e2:	59                   	pop    %ecx
4094e3:	50                   	push   %eax
4094e4:	ff 76 18             	push   0x18(%esi)
4094e7:	57                   	push   %edi
4094e8:	e8 79 ff ff ff       	call   0x409466
4094ed:	eb 18                	jmp    0x409507
4094ef:	8d 46 08             	lea    0x8(%esi),%eax
4094f2:	50                   	push   %eax
4094f3:	ff 73 18             	push   0x18(%ebx)
4094f6:	e8 72 ff ff ff       	call   0x40946d
4094fb:	59                   	pop    %ecx
4094fc:	59                   	pop    %ecx
4094fd:	50                   	push   %eax
4094fe:	ff 76 18             	push   0x18(%esi)
409501:	57                   	push   %edi
409502:	e8 58 ff ff ff       	call   0x40945f
409507:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40950e:	e8 53 e1 ff ff       	call   0x407666
409513:	c3                   	ret
409514:	33 c0                	xor    %eax,%eax
409516:	40                   	inc    %eax
409517:	c3                   	ret
409518:	8b 65 e8             	mov    -0x18(%ebp),%esp
40951b:	e8 aa e5 00 00       	call   0x417aca
409520:	cc                   	int3
409521:	6a 10                	push   $0x10
409523:	68 68 7f 43 00       	push   $0x437f68
409528:	e8 f3 e0 ff ff       	call   0x407620
40952d:	33 db                	xor    %ebx,%ebx
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