40a460:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40a463:	ff d6                	call   *%esi
40a465:	5b                   	pop    %ebx
40a466:	8b 75 ec             	mov    -0x14(%ebp),%esi
40a469:	89 f0                	mov    %esi,%eax
40a46b:	eb 0b                	jmp    0x40a478
40a46d:	80 f9 53             	cmp    $0x53,%cl
40a470:	0f 85 67 fe ff ff    	jne    0x40a2dd
40a476:	89 c6                	mov    %eax,%esi
40a478:	09 f6                	or     %esi,%esi
40a47a:	74 b2                	je     0x40a42e
40a47c:	8b 4e fc             	mov    -0x4(%esi),%ecx
40a47f:	3b 4d dc             	cmp    -0x24(%ebp),%ecx
40a482:	77 01                	ja     0x40a485
40a484:	c3                   	ret
40a485:	8b 4d dc             	mov    -0x24(%ebp),%ecx
40a488:	c3                   	ret
40a489:	80 f9 53             	cmp    $0x53,%cl
40a48c:	0f 85 4b fe ff ff    	jne    0x40a2dd
40a492:	89 c6                	mov    %eax,%esi
40a494:	57                   	push   %edi
40a495:	89 c7                	mov    %eax,%edi
40a497:	32 c0                	xor    %al,%al
40a499:	8b 4d dc             	mov    -0x24(%ebp),%ecx
40a49c:	e3 05                	jecxz  0x40a4a3
40a49e:	f2 ae                	repnz scas %es:(%edi),%al
40a4a0:	75 01                	jne    0x40a4a3
40a4a2:	4f                   	dec    %edi
40a4a3:	89 f9                	mov    %edi,%ecx
40a4a5:	29 f1                	sub    %esi,%ecx
40a4a7:	5f                   	pop    %edi
40a4a8:	c3                   	ret
40a4a9:	80 f9 50             	cmp    $0x50,%cl
40a4ac:	0f 85 2b fe ff ff    	jne    0x40a2dd
40a4b2:	c7 45 dc 08 00 00 00 	movl   $0x8,-0x24(%ebp)
40a4b9:	b9 10 00 00 00       	mov    $0x10,%ecx
40a4be:	e9 08 ff ff ff       	jmp    0x40a3cb
40a4c3:	b7 01                	mov    $0x1,%bh
40a4c5:	eb 02                	jmp    0x40a4c9
40a4c7:	b7 00                	mov    $0x0,%bh
40a4c9:	89 c6                	mov    %eax,%esi
40a4cb:	b3 00                	mov    $0x0,%bl
40a4cd:	80 f9 47             	cmp    $0x47,%cl
40a4d0:	74 3f                	je     0x40a511
40a4d2:	b3 01                	mov    $0x1,%bl
40a4d4:	80 f9 45             	cmp    $0x45,%cl
40a4d7:	74 38                	je     0x40a511
40a4d9:	b3 02                	mov    $0x2,%bl
40a4db:	80 f9 46             	cmp    $0x46,%cl
40a4de:	74 12                	je     0x40a4f2
40a4e0:	b3 03                	mov    $0x3,%bl
40a4e2:	80 f9 4e             	cmp    $0x4e,%cl
40a4e5:	74 0b                	je     0x40a4f2
40a4e7:	80 f9 4d             	cmp    $0x4d,%cl
40a4ea:	0f 85 ed fd ff ff    	jne    0x40a2dd
40a4f0:	b3 04                	mov    $0x4,%bl
40a4f2:	b8 12 00 00 00       	mov    $0x12,%eax
40a4f7:	8b 55 dc             	mov    -0x24(%ebp),%edx
40a4fa:	39 c2                	cmp    %eax,%edx
40a4fc:	76 25                	jbe    0x40a523
40a4fe:	ba 02 00 00 00       	mov    $0x2,%edx
40a503:	80 f9 4d             	cmp    $0x4d,%cl
40a506:	75 1b                	jne    0x40a523
40a508:	0f b6 15 3c 87 6a 00 	movzbl 0x6a873c,%edx
40a50f:	eb 12                	jmp    0x40a523
40a511:	8b 45 dc             	mov    -0x24(%ebp),%eax
40a514:	ba 03 00 00 00       	mov    $0x3,%edx
40a519:	83 f8 12             	cmp    $0x12,%eax
40a51c:	76 05                	jbe    0x40a523
40a51e:	b8 0f 00 00 00       	mov    $0xf,%eax
40a523:	53                   	push   %ebx
40a524:	50                   	push   %eax
40a525:	52                   	push   %edx
40a526:	8d 45 8f             	lea    -0x71(%ebp),%eax
40a529:	89 f2                	mov    %esi,%edx
40a52b:	0f b6 cf             	movzbl %bh,%ecx
40a52e:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40a531:	e8 be 01 00 00       	call   0x40a6f4
40a536:	89 c1                	mov    %eax,%ecx
40a538:	8d 75 8f             	lea    -0x71(%ebp),%esi
40a53b:	c3                   	ret
40a53c:	53                   	push   %ebx
40a53d:	50                   	push   %eax
40a53e:	8d 45 ec             	lea    -0x14(%ebp),%eax
40a541:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40a544:	e8 1f a3 ff ff       	call   0x404868
40a549:	58                   	pop    %eax
40a54a:	5b                   	pop    %ebx
40a54b:	c3                   	ret
40a54c:	e8 eb ff ff ff       	call   0x40a53c
40a551:	5f                   	pop    %edi
40a552:	5e                   	pop    %esi
40a553:	5b                   	pop    %ebx
40a554:	5b                   	pop    %ebx
40a555:	8b e5                	mov    %ebp,%esp
40a557:	5d                   	pop    %ebp
40a558:	c2 0c 00             	ret    $0xc
40a55b:	90                   	nop
40a55c:	55                   	push   %ebp
40a55d:	8b ec                	mov    %esp,%ebp
40a55f:	53                   	push   %ebx
40a560:	56                   	push   %esi
40a561:	57                   	push   %edi
40a562:	8b f9                	mov    %ecx,%edi
40a564:	8b f2                	mov    %edx,%esi
40a566:	8b d8                	mov    %eax,%ebx
40a568:	85 db                	test   %ebx,%ebx
40a56a:	74 27                	je     0x40a593
40a56c:	85 f6                	test   %esi,%esi
40a56e:	74 23                	je     0x40a593
40a570:	8b c6                	mov    %esi,%eax
40a572:	e8 79 f8 ff ff       	call   0x409df0
40a577:	50                   	push   %eax
40a578:	57                   	push   %edi
40a579:	8b 45 08             	mov    0x8(%ebp),%eax
40a57c:	50                   	push   %eax
40a57d:	8b ce                	mov    %esi,%ecx
40a57f:	8b c3                	mov    %ebx,%eax
40a581:	ba ff ff ff 7f       	mov    $0x7fffffff,%edx
40a586:	e8 bd fb ff ff       	call   0x40a148
40a58b:	c6 04 03 00          	movb   $0x0,(%ebx,%eax,1)
40a58f:	8b c3                	mov    %ebx,%eax
40a591:	eb 02                	jmp    0x40a595
40a593:	33 c0                	xor    %eax,%eax
40a595:	5f                   	pop    %edi
40a596:	5e                   	pop    %esi
40a597:	5b                   	pop    %ebx
40a598:	5d                   	pop    %ebp
40a599:	c2 04 00             	ret    $0x4
40a59c:	55                   	push   %ebp
40a59d:	8b ec                	mov    %esp,%ebp
40a59f:	53                   	push   %ebx
40a5a0:	56                   	push   %esi
40a5a1:	57                   	push   %edi
40a5a2:	8b f1                	mov    %ecx,%esi
40a5a4:	8b fa                	mov    %edx,%edi
40a5a6:	8b d8                	mov    %eax,%ebx
40a5a8:	85 db                	test   %ebx,%ebx
40a5aa:	74 27                	je     0x40a5d3
40a5ac:	85 f6                	test   %esi,%esi
40a5ae:	74 23                	je     0x40a5d3
40a5b0:	8b c6                	mov    %esi,%eax
40a5b2:	e8 39 f8 ff ff       	call   0x409df0
40a5b7:	50                   	push   %eax
40a5b8:	8b 45 0c             	mov    0xc(%ebp),%eax
40a5bb:	50                   	push   %eax
40a5bc:	8b 45 08             	mov    0x8(%ebp),%eax
40a5bf:	50                   	push   %eax
40a5c0:	8b ce                	mov    %esi,%ecx
40a5c2:	8b c3                	mov    %ebx,%eax
40a5c4:	8b d7                	mov    %edi,%edx
40a5c6:	e8 7d fb ff ff       	call   0x40a148
40a5cb:	c6 04 03 00          	movb   $0x0,(%ebx,%eax,1)
40a5cf:	8b c3                	mov    %ebx,%eax
40a5d1:	eb 02                	jmp    0x40a5d5
40a5d3:	33 c0                	xor    %eax,%eax
40a5d5:	5f                   	pop    %edi
40a5d6:	5e                   	pop    %esi
40a5d7:	5b                   	pop    %ebx
40a5d8:	5d                   	pop    %ebp
40a5d9:	c2 08 00             	ret    $0x8
40a5dc:	55                   	push   %ebp
40a5dd:	8b ec                	mov    %esp,%ebp
40a5df:	51                   	push   %ecx
40a5e0:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a5e3:	91                   	xchg   %eax,%ecx
40a5e4:	87 d1                	xchg   %edx,%ecx
40a5e6:	e8 05 00 00 00       	call   0x40a5f0
40a5eb:	5d                   	pop    %ebp
40a5ec:	c2 04 00             	ret    $0x4
40a5ef:	90                   	nop
40a5f0:	55                   	push   %ebp
40a5f1:	8b ec                	mov    %esp,%ebp
40a5f3:	81 c4 04 f0 ff ff    	add    $0xfffff004,%esp
40a5f9:	50                   	push   %eax
40a5fa:	83 c4 f8             	add    $0xfffffff8,%esp
40a5fd:	53                   	push   %ebx
40a5fe:	56                   	push   %esi
40a5ff:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40a602:	89 55 fc             	mov    %edx,-0x4(%ebp)
40a605:	8b f0                	mov    %eax,%esi
40a607:	bb 00 10 00 00       	mov    $0x1000,%ebx
40a60c:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a60f:	e8 0c a5 ff ff       	call   0x404b20
40a614:	3d 00 0c 00 00       	cmp    $0xc00,%eax
40a619:	7d 26                	jge    0x40a641
40a61b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a61e:	e8 fd a4 ff ff       	call   0x404b20
40a623:	50                   	push   %eax
40a624:	8b 45 f8             	mov    -0x8(%ebp),%eax
40a627:	50                   	push   %eax
40a628:	8b 45 08             	mov    0x8(%ebp),%eax
40a62b:	50                   	push   %eax
40a62c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40a62f:	8d 85 f8 ef ff ff    	lea    -0x1008(%ebp),%eax
40a635:	ba ff 0f 00 00       	mov    $0xfff,%edx
40a63a:	e8 09 fb ff ff       	call   0x40a148
40a63f:	eb 0c                	jmp    0x40a64d
40a641:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a644:	e8 d7 a4 ff ff       	call   0x404b20
40a649:	8b d8                	mov    %eax,%ebx
40a64b:	8b c3                	mov    %ebx,%eax
40a64d:	8b d3                	mov    %ebx,%edx
40a64f:	4a                   	dec    %edx
40a650:	3b c2                	cmp    %edx,%eax
40a652:	7c 43                	jl     0x40a697
40a654:	eb 30                	jmp    0x40a686
40a656:	03 db                	add    %ebx,%ebx
40a658:	8b c6                	mov    %esi,%eax
40a65a:	e8 09 a2 ff ff       	call   0x404868
40a65f:	8b c6                	mov    %esi,%eax
40a661:	8b d3                	mov    %ebx,%edx
40a663:	e8 3c a8 ff ff       	call   0x404ea4
40a668:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a66b:	e8 b0 a4 ff ff       	call   0x404b20
40a670:	50                   	push   %eax
40a671:	8b 45 f8             	mov    -0x8(%ebp),%eax
40a674:	50                   	push   %eax
40a675:	8b 45 08             	mov    0x8(%ebp),%eax
40a678:	50                   	push   %eax
40a679:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40a67c:	8b d3                	mov    %ebx,%edx
40a67e:	4a                   	dec    %edx
40a67f:	8b 06                	mov    (%esi),%eax
40a681:	e8 c2 fa ff ff       	call   0x40a148
40a686:	8b d3                	mov    %ebx,%edx
40a688:	4a                   	dec    %edx
40a689:	3b c2                	cmp    %edx,%eax
40a68b:	7d c9                	jge    0x40a656
40a68d:	8b d6                	mov    %esi,%edx
40a68f:	92                   	xchg   %eax,%edx
40a690:	e8 0f a8 ff ff       	call   0x404ea4
40a695:	eb 0e                	jmp    0x40a6a5
40a697:	8d 95 f8 ef ff ff    	lea    -0x1008(%ebp),%edx
40a69d:	8b ce                	mov    %esi,%ecx
40a69f:	91                   	xchg   %eax,%ecx
40a6a0:	e8 b3 a2 ff ff       	call   0x404958
40a6a5:	5e                   	pop    %esi
40a6a6:	5b                   	pop    %ebx
40a6a7:	8b e5                	mov    %ebp,%esp
40a6a9:	5d                   	pop    %ebp
40a6aa:	c2 04 00             	ret    $0x4
40a6ad:	8d 40 00             	lea    0x0(%eax),%eax
40a6b0:	56                   	push   %esi
40a6b1:	31 f6                	xor    %esi,%esi
40a6b3:	aa                   	stos   %al,%es:(%edi)
40a6b4:	08 db                	or     %bl,%bl
40a6b6:	75 04                	jne    0x40a6bc
40a6b8:	31 d2                	xor    %edx,%edx
40a6ba:	eb 0a                	jmp    0x40a6c6
40a6bc:	09 d2                	or     %edx,%edx
40a6be:	7d 06                	jge    0x40a6c6
40a6c0:	b0 2d                	mov    $0x2d,%al
40a6c2:	f7 da                	neg    %edx
40a6c4:	eb 06                	jmp    0x40a6cc
40a6c6:	08 e4                	or     %ah,%ah
40a6c8:	74 03                	je     0x40a6cd
40a6ca:	88 e0                	mov    %ah,%al
40a6cc:	aa                   	stos   %al,%es:(%edi)
40a6cd:	92                   	xchg   %eax,%edx
40a6ce:	50                   	push   %eax
40a6cf:	89 e3                	mov    %esp,%ebx
40a6d1:	31 d2                	xor    %edx,%edx
40a6d3:	f7 b6 88 a1 68 00    	divl   0x68a188(%esi)
40a6d9:	80 c2 30             	add    $0x30,%dl
40a6dc:	88 13                	mov    %dl,(%ebx)
40a6de:	43                   	inc    %ebx
40a6df:	49                   	dec    %ecx
40a6e0:	09 c0                	or     %eax,%eax
40a6e2:	75 ed                	jne    0x40a6d1
40a6e4:	09 c9                	or     %ecx,%ecx
40a6e6:	7f e9                	jg     0x40a6d1
40a6e8:	4b                   	dec    %ebx
40a6e9:	8a 03                	mov    (%ebx),%al
40a6eb:	aa                   	stos   %al,%es:(%edi)
40a6ec:	39 e3                	cmp    %esp,%ebx
40a6ee:	75 f8                	jne    0x40a6e8
40a6f0:	58                   	pop    %eax
40a6f1:	5e                   	pop    %esi
40a6f2:	c3                   	ret
40a6f3:	90                   	nop
40a6f4:	55                   	push   %ebp
40a6f5:	8b ec                	mov    %esp,%ebp
40a6f7:	83 c4 d4             	add    $0xffffffd4,%esp
40a6fa:	57                   	push   %edi
40a6fb:	56                   	push   %esi
40a6fc:	53                   	push   %ebx
40a6fd:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a700:	a0 3b 87 6a 00       	mov    0x6a873b,%al
40a705:	88 45 fb             	mov    %al,-0x5(%ebp)
40a708:	a0 3a 87 6a 00       	mov    0x6a873a,%al
40a70d:	88 45 fa             	mov    %al,-0x6(%ebp)
40a710:	a1 34 87 6a 00       	mov    0x6a8734,%eax
40a715:	89 45 f4             	mov    %eax,-0xc(%ebp)
40a718:	a0 38 87 6a 00       	mov    0x6a8738,%al
40a71d:	88 45 f3             	mov    %al,-0xd(%ebp)
40a720:	a0 39 87 6a 00       	mov    0x6a8739,%al
40a725:	88 45 f2             	mov    %al,-0xe(%ebp)
40a728:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
40a72f:	b8 13 00 00 00       	mov    $0x13,%eax
40a734:	80 f9 00             	cmp    $0x0,%cl
40a737:	75 17                	jne    0x40a750
40a739:	8b 45 0c             	mov    0xc(%ebp),%eax
40a73c:	83 f8 02             	cmp    $0x2,%eax
40a73f:	7d 05                	jge    0x40a746
40a741:	b8 02 00 00 00       	mov    $0x2,%eax
40a746:	83 f8 12             	cmp    $0x12,%eax
40a749:	7e 05                	jle    0x40a750
40a74b:	b8 12 00 00 00       	mov    $0x12,%eax
40a750:	89 45 0c             	mov    %eax,0xc(%ebp)
40a753:	50                   	push   %eax
40a754:	b8 0f 27 00 00       	mov    $0x270f,%eax
40a759:	80 7d 10 02          	cmpb   $0x2,0x10(%ebp)
40a75d:	72 03                	jb     0x40a762
40a75f:	8b 45 08             	mov    0x8(%ebp),%eax
40a762:	50                   	push   %eax
40a763:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40a766:	e8 61 02 00 00       	call   0x40a9cc
40a76b:	8b 7d fc             	mov    -0x4(%ebp),%edi
40a76e:	0f b7 45 d4          	movzwl -0x2c(%ebp),%eax
40a772:	2d ff 7f 00 00       	sub    $0x7fff,%eax
40a777:	83 f8 02             	cmp    $0x2,%eax
40a77a:	73 1a                	jae    0x40a796
40a77c:	89 c1                	mov    %eax,%ecx
40a77e:	e8 70 00 00 00       	call   0x40a7f3
40a783:	8d b4 49 e4 a7 40 00 	lea    0x40a7e4(%ecx,%ecx,2),%esi
40a78a:	03 75 ec             	add    -0x14(%ebp),%esi
40a78d:	b9 03 00 00 00       	mov    $0x3,%ecx
40a792:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40a794:	eb 2d                	jmp    0x40a7c3
40a796:	8d 75 d7             	lea    -0x29(%ebp),%esi
40a799:	0f b6 5d 10          	movzbl 0x10(%ebp),%ebx
40a79d:	80 fb 01             	cmp    $0x1,%bl
40a7a0:	74 10                	je     0x40a7b2
40a7a2:	80 fb 04             	cmp    $0x4,%bl
40a7a5:	77 09                	ja     0x40a7b0
40a7a7:	0f bf 45 d4          	movswl -0x2c(%ebp),%eax
40a7ab:	3b 45 0c             	cmp    0xc(%ebp),%eax
40a7ae:	7e 02                	jle    0x40a7b2
40a7b0:	b3 00                	mov    $0x0,%bl
40a7b2:	8d 1c 9d d0 a7 40 00 	lea    0x40a7d0(,%ebx,4),%ebx
40a7b9:	03 5d ec             	add    -0x14(%ebp),%ebx
40a7bc:	8b 1b                	mov    (%ebx),%ebx
40a7be:	03 5d ec             	add    -0x14(%ebp),%ebx
40a7c1:	ff d3                	call   *%ebx
40a7c3:	89 f8                	mov    %edi,%eax
40a7c5:	2b 45 fc             	sub    -0x4(%ebp),%eax
40a7c8:	5b                   	pop    %ebx
40a7c9:	5e                   	pop    %esi
40a7ca:	5f                   	pop    %edi