40c4df:	90                   	nop
40c4e0:	56                   	push   %esi
40c4e1:	8b 74 24 08          	mov    0x8(%esp),%esi
40c4e5:	83 fe e0             	cmp    $0xffffffe0,%esi
40c4e8:	57                   	push   %edi
40c4e9:	77 34                	ja     0x40c51f
40c4eb:	85 f6                	test   %esi,%esi
40c4ed:	75 05                	jne    0x40c4f4
40c4ef:	be 01 00 00 00       	mov    $0x1,%esi
40c4f4:	8b 7c 24 10          	mov    0x10(%esp),%edi
40c4f8:	83 fe e0             	cmp    $0xffffffe0,%esi
40c4fb:	77 0b                	ja     0x40c508
40c4fd:	56                   	push   %esi
40c4fe:	e8 2d 00 00 00       	call   0x40c530
40c503:	83 c4 04             	add    $0x4,%esp
40c506:	eb 02                	jmp    0x40c50a
40c508:	33 c0                	xor    %eax,%eax
40c50a:	85 c0                	test   %eax,%eax
40c50c:	75 13                	jne    0x40c521
40c50e:	85 ff                	test   %edi,%edi
40c510:	74 0f                	je     0x40c521
40c512:	56                   	push   %esi
40c513:	e8 38 31 00 00       	call   0x40f650
40c518:	83 c4 04             	add    $0x4,%esp
40c51b:	85 c0                	test   %eax,%eax
40c51d:	75 d9                	jne    0x40c4f8
40c51f:	33 c0                	xor    %eax,%eax
40c521:	5f                   	pop    %edi
40c522:	5e                   	pop    %esi
40c523:	c3                   	ret
40c524:	90                   	nop
40c525:	90                   	nop
40c526:	90                   	nop
40c527:	90                   	nop
40c528:	90                   	nop
40c529:	90                   	nop
40c52a:	90                   	nop
40c52b:	90                   	nop
40c52c:	90                   	nop
40c52d:	90                   	nop
40c52e:	90                   	nop
40c52f:	90                   	nop
40c530:	8b 44 24 04          	mov    0x4(%esp),%eax
40c534:	56                   	push   %esi
40c535:	57                   	push   %edi
40c536:	8d 70 0f             	lea    0xf(%eax),%esi
40c539:	a1 84 3f 43 00       	mov    0x433f84,%eax
40c53e:	83 e6 f0             	and    $0xfffffff0,%esi
40c541:	3b f0                	cmp    %eax,%esi
40c543:	77 2d                	ja     0x40c572
40c545:	6a 09                	push   $0x9
40c547:	e8 f4 2e 00 00       	call   0x40f440
40c54c:	8b ce                	mov    %esi,%ecx
40c54e:	83 c4 04             	add    $0x4,%esp
40c551:	c1 e9 04             	shr    $0x4,%ecx
40c554:	51                   	push   %ecx
40c555:	e8 76 34 00 00       	call   0x40f9d0
40c55a:	83 c4 04             	add    $0x4,%esp
40c55d:	8b f8                	mov    %eax,%edi
40c55f:	6a 09                	push   $0x9
40c561:	e8 5a 2f 00 00       	call   0x40f4c0
40c566:	83 c4 04             	add    $0x4,%esp
40c569:	85 ff                	test   %edi,%edi
40c56b:	74 05                	je     0x40c572
40c56d:	8b c7                	mov    %edi,%eax
40c56f:	5f                   	pop    %edi
40c570:	5e                   	pop    %esi
40c571:	c3                   	ret
40c572:	8b 15 8c 89 43 00    	mov    0x43898c,%edx
40c578:	56                   	push   %esi
40c579:	6a 00                	push   $0x0
40c57b:	52                   	push   %edx
40c57c:	ff 15 58 96 43 00    	call   *0x439658
40c582:	5f                   	pop    %edi
40c583:	5e                   	pop    %esi
40c584:	c3                   	ret
40c585:	90                   	nop
40c586:	90                   	nop
40c587:	90                   	nop
40c588:	90                   	nop
40c589:	90                   	nop
40c58a:	90                   	nop
40c58b:	90                   	nop
40c58c:	90                   	nop
40c58d:	90                   	nop
40c58e:	90                   	nop
40c58f:	90                   	nop
40c590:	51                   	push   %ecx
40c591:	56                   	push   %esi
40c592:	8b 74 24 0c          	mov    0xc(%esp),%esi
40c596:	85 f6                	test   %esi,%esi
40c598:	74 5b                	je     0x40c5f5
40c59a:	6a 09                	push   $0x9
40c59c:	e8 9f 2e 00 00       	call   0x40f440
40c5a1:	83 c4 04             	add    $0x4,%esp
40c5a4:	8d 44 24 0c          	lea    0xc(%esp),%eax
40c5a8:	8d 4c 24 04          	lea    0x4(%esp),%ecx
40c5ac:	50                   	push   %eax
40c5ad:	51                   	push   %ecx
40c5ae:	56                   	push   %esi
40c5af:	e8 5c 33 00 00       	call   0x40f910
40c5b4:	83 c4 0c             	add    $0xc,%esp
40c5b7:	85 c0                	test   %eax,%eax
40c5b9:	74 20                	je     0x40c5db
40c5bb:	8b 54 24 0c          	mov    0xc(%esp),%edx
40c5bf:	50                   	push   %eax
40c5c0:	8b 44 24 08          	mov    0x8(%esp),%eax
40c5c4:	52                   	push   %edx
40c5c5:	50                   	push   %eax
40c5c6:	e8 a5 33 00 00       	call   0x40f970
40c5cb:	83 c4 0c             	add    $0xc,%esp
40c5ce:	6a 09                	push   $0x9
40c5d0:	e8 eb 2e 00 00       	call   0x40f4c0
40c5d5:	83 c4 04             	add    $0x4,%esp
40c5d8:	5e                   	pop    %esi
40c5d9:	59                   	pop    %ecx
40c5da:	c3                   	ret
40c5db:	6a 09                	push   $0x9
40c5dd:	e8 de 2e 00 00       	call   0x40f4c0
40c5e2:	8b 0d 8c 89 43 00    	mov    0x43898c,%ecx
40c5e8:	83 c4 04             	add    $0x4,%esp
40c5eb:	56                   	push   %esi
40c5ec:	6a 00                	push   $0x0
40c5ee:	51                   	push   %ecx
40c5ef:	ff 15 54 96 43 00    	call   *0x439654
40c5f5:	5e                   	pop    %esi
40c5f6:	59                   	pop    %ecx
40c5f7:	c3                   	ret
40c5f8:	90                   	nop
40c5f9:	90                   	nop
40c5fa:	90                   	nop
40c5fb:	90                   	nop
40c5fc:	90                   	nop
40c5fd:	90                   	nop
40c5fe:	90                   	nop
40c5ff:	90                   	nop
40c600:	a1 7c 71 43 00       	mov    0x43717c,%eax
40c605:	53                   	push   %ebx
40c606:	56                   	push   %esi
40c607:	57                   	push   %edi
40c608:	85 c0                	test   %eax,%eax
40c60a:	75 16                	jne    0x40c622
40c60c:	8b 44 24 14          	mov    0x14(%esp),%eax
40c610:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40c614:	50                   	push   %eax
40c615:	51                   	push   %ecx
40c616:	e8 55 38 00 00       	call   0x40fe70
40c61b:	83 c4 08             	add    $0x8,%esp
40c61e:	5f                   	pop    %edi
40c61f:	5e                   	pop    %esi
40c620:	5b                   	pop    %ebx
40c621:	c3                   	ret
40c622:	6a 19                	push   $0x19
40c624:	e8 17 2e 00 00       	call   0x40f440
40c629:	8b 7c 24 14          	mov    0x14(%esp),%edi
40c62d:	8b 5c 24 18          	mov    0x18(%esp),%ebx
40c631:	83 c4 04             	add    $0x4,%esp
40c634:	66 0f b6 37          	movzbw (%edi),%si
40c638:	66 85 f6             	test   %si,%si
40c63b:	74 46                	je     0x40c683
40c63d:	b1 04                	mov    $0x4,%cl
40c63f:	8b d6                	mov    %esi,%edx
40c641:	81 e2 ff 00 00 00    	and    $0xff,%edx
40c647:	84 8a 79 70 43 00    	test   %cl,0x437079(%edx)
40c64d:	74 1e                	je     0x40c66d
40c64f:	8a 47 01             	mov    0x1(%edi),%al
40c652:	47                   	inc    %edi
40c653:	84 c0                	test   %al,%al
40c655:	74 4a                	je     0x40c6a1
40c657:	81 e6 ff ff 00 00    	and    $0xffff,%esi
40c65d:	25 ff 00 00 00       	and    $0xff,%eax
40c662:	c1 e6 08             	shl    $0x8,%esi
40c665:	0b f0                	or     %eax,%esi
40c667:	3b de                	cmp    %esi,%ebx
40c669:	74 46                	je     0x40c6b1
40c66b:	eb 0b                	jmp    0x40c678
40c66d:	8b c6                	mov    %esi,%eax
40c66f:	25 ff ff 00 00       	and    $0xffff,%eax
40c674:	3b d8                	cmp    %eax,%ebx
40c676:	74 0b                	je     0x40c683
40c678:	66 0f b6 77 01       	movzbw 0x1(%edi),%si
40c67d:	47                   	inc    %edi
40c67e:	66 85 f6             	test   %si,%si
40c681:	75 bc                	jne    0x40c63f
40c683:	6a 19                	push   $0x19
40c685:	e8 36 2e 00 00       	call   0x40f4c0
40c68a:	81 e6 ff ff 00 00    	and    $0xffff,%esi
40c690:	83 c4 04             	add    $0x4,%esp
40c693:	33 c0                	xor    %eax,%eax
40c695:	3b de                	cmp    %esi,%ebx
40c697:	0f 95 c0             	setne  %al
40c69a:	48                   	dec    %eax
40c69b:	23 c7                	and    %edi,%eax
40c69d:	5f                   	pop    %edi
40c69e:	5e                   	pop    %esi
40c69f:	5b                   	pop    %ebx
40c6a0:	c3                   	ret
40c6a1:	6a 19                	push   $0x19
40c6a3:	e8 18 2e 00 00       	call   0x40f4c0
40c6a8:	83 c4 04             	add    $0x4,%esp
40c6ab:	33 c0                	xor    %eax,%eax
40c6ad:	5f                   	pop    %edi
40c6ae:	5e                   	pop    %esi
40c6af:	5b                   	pop    %ebx
40c6b0:	c3                   	ret
40c6b1:	6a 19                	push   $0x19
40c6b3:	e8 08 2e 00 00       	call   0x40f4c0
40c6b8:	83 c4 04             	add    $0x4,%esp
40c6bb:	8d 47 ff             	lea    -0x1(%edi),%eax
40c6be:	5f                   	pop    %edi
40c6bf:	5e                   	pop    %esi
40c6c0:	5b                   	pop    %ebx
40c6c1:	c3                   	ret
40c6c2:	90                   	nop
40c6c3:	90                   	nop
40c6c4:	90                   	nop
40c6c5:	90                   	nop
40c6c6:	90                   	nop
40c6c7:	90                   	nop
40c6c8:	90                   	nop
40c6c9:	90                   	nop
40c6ca:	90                   	nop
40c6cb:	90                   	nop
40c6cc:	90                   	nop
40c6cd:	90                   	nop
40c6ce:	90                   	nop
40c6cf:	90                   	nop
40c6d0:	a1 7c 71 43 00       	mov    0x43717c,%eax
40c6d5:	53                   	push   %ebx
40c6d6:	55                   	push   %ebp
40c6d7:	33 ed                	xor    %ebp,%ebp
40c6d9:	56                   	push   %esi
40c6da:	3b c5                	cmp    %ebp,%eax
40c6dc:	57                   	push   %edi
40c6dd:	75 41                	jne    0x40c720
40c6df:	8b 74 24 18          	mov    0x18(%esp),%esi
40c6e3:	8b 44 24 14          	mov    0x14(%esp),%eax
40c6e7:	8a 10                	mov    (%eax),%dl
40c6e9:	8a 1e                	mov    (%esi),%bl
40c6eb:	8a ca                	mov    %dl,%cl
40c6ed:	3a d3                	cmp    %bl,%dl
40c6ef:	75 25                	jne    0x40c716
40c6f1:	84 c9                	test   %cl,%cl
40c6f3:	0f 84 c7 00 00 00    	je     0x40c7c0
40c6f9:	8a 50 01             	mov    0x1(%eax),%dl
40c6fc:	8a 5e 01             	mov    0x1(%esi),%bl
40c6ff:	8a ca                	mov    %dl,%cl
40c701:	3a d3                	cmp    %bl,%dl
40c703:	75 11                	jne    0x40c716
40c705:	83 c0 02             	add    $0x2,%eax
40c708:	83 c6 02             	add    $0x2,%esi
40c70b:	84 c9                	test   %cl,%cl
40c70d:	75 d8                	jne    0x40c6e7
40c70f:	33 c0                	xor    %eax,%eax
40c711:	5f                   	pop    %edi
40c712:	5e                   	pop    %esi
40c713:	5d                   	pop    %ebp
40c714:	5b                   	pop    %ebx
40c715:	c3                   	ret
40c716:	1b c0                	sbb    %eax,%eax
40c718:	83 d8 ff             	sbb    $0xffffffff,%eax
40c71b:	5f                   	pop    %edi
40c71c:	5e                   	pop    %esi
40c71d:	5d                   	pop    %ebp
40c71e:	5b                   	pop    %ebx
40c71f:	c3                   	ret
40c720:	6a 19                	push   $0x19
40c722:	e8 19 2d 00 00       	call   0x40f440
40c727:	8b 74 24 1c          	mov    0x1c(%esp),%esi
40c72b:	8b 7c 24 18          	mov    0x18(%esp),%edi
40c72f:	83 c4 04             	add    $0x4,%esp
40c732:	b2 04                	mov    $0x4,%dl
40c734:	66 0f b6 0f          	movzbw (%edi),%cx
40c738:	8b c1                	mov    %ecx,%eax
40c73a:	47                   	inc    %edi
40c73b:	25 ff 00 00 00       	and    $0xff,%eax
40c740:	89 4c 24 18          	mov    %ecx,0x18(%esp)
40c744:	84 90 79 70 43 00    	test   %dl,0x437079(%eax)
40c74a:	74 1b                	je     0x40c767
40c74c:	8a 07                	mov    (%edi),%al
40c74e:	84 c0                	test   %al,%al
40c750:	75 06                	jne    0x40c758
40c752:	89 6c 24 18          	mov    %ebp,0x18(%esp)
40c756:	eb 0b                	jmp    0x40c763
40c758:	33 db                	xor    %ebx,%ebx
40c75a:	47                   	inc    %edi
40c75b:	8a f9                	mov    %cl,%bh
40c75d:	8a d8                	mov    %al,%bl
40c75f:	89 5c 24 18          	mov    %ebx,0x18(%esp)
40c763:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40c767:	66 0f b6 1e          	movzbw (%esi),%bx
40c76b:	8b c3                	mov    %ebx,%eax
40c76d:	46                   	inc    %esi
40c76e:	25 ff 00 00 00       	and    $0xff,%eax
40c773:	84 90 79 70 43 00    	test   %dl,0x437079(%eax)
40c779:	74 15                	je     0x40c790
40c77b:	8a 06                	mov    (%esi),%al
40c77d:	84 c0                	test   %al,%al
40c77f:	75 04                	jne    0x40c785
40c781:	33 db                	xor    %ebx,%ebx
40c783:	eb 0b                	jmp    0x40c790
40c785:	33 d2                	xor    %edx,%edx
40c787:	46                   	inc    %esi
40c788:	8a f3                	mov    %bl,%dh
40c78a:	8a d0                	mov    %al,%dl
40c78c:	8b da                	mov    %edx,%ebx
40c78e:	b2 04                	mov    $0x4,%dl
40c790:	66 3b cb             	cmp    %bx,%cx
40c793:	75 07                	jne    0x40c79c
40c795:	66 3b cd             	cmp    %bp,%cx
40c798:	74 1c                	je     0x40c7b6
40c79a:	eb 98                	jmp    0x40c734
40c79c:	6a 19                	push   $0x19
40c79e:	e8 1d 2d 00 00       	call   0x40f4c0
40c7a3:	83 c4 04             	add    $0x4,%esp
40c7a6:	66 3b 5c 24 18       	cmp    0x18(%esp),%bx
40c7ab:	1b c0                	sbb    %eax,%eax
40c7ad:	83 e0 02             	and    $0x2,%eax
40c7b0:	48                   	dec    %eax
40c7b1:	5f                   	pop    %edi
40c7b2:	5e                   	pop    %esi
40c7b3:	5d                   	pop    %ebp
40c7b4:	5b                   	pop    %ebx
40c7b5:	c3                   	ret
40c7b6:	6a 19                	push   $0x19
40c7b8:	e8 03 2d 00 00       	call   0x40f4c0
40c7bd:	83 c4 04             	add    $0x4,%esp
40c7c0:	5f                   	pop    %edi
40c7c1:	5e                   	pop    %esi
40c7c2:	5d                   	pop    %ebp
40c7c3:	33 c0                	xor    %eax,%eax
40c7c5:	5b                   	pop    %ebx
40c7c6:	c3                   	ret
40c7c7:	90                   	nop
40c7c8:	90                   	nop
40c7c9:	90                   	nop
40c7ca:	90                   	nop
40c7cb:	90                   	nop
40c7cc:	90                   	nop
40c7cd:	90                   	nop
40c7ce:	90                   	nop
40c7cf:	90                   	nop
40c7d0:	8b 44 24 0c          	mov    0xc(%esp),%eax
40c7d4:	85 c0                	test   %eax,%eax
40c7d6:	74 44                	je     0x40c81c
40c7d8:	8b 54 24 04          	mov    0x4(%esp),%edx
40c7dc:	56                   	push   %esi
40c7dd:	57                   	push   %edi
40c7de:	8b f2                	mov    %edx,%esi
40c7e0:	8b 7c 24 10          	mov    0x10(%esp),%edi