40f421:	8b 44 24 04          	mov    0x4(%esp),%eax
40f425:	05 38 ff ff ff       	add    $0xffffff38,%eax
40f42a:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
40f42f:	74 13                	je     0x40f444
40f431:	8b 48 1c             	mov    0x1c(%eax),%ecx
40f434:	89 41 6c             	mov    %eax,0x6c(%ecx)
40f437:	8b 40 1c             	mov    0x1c(%eax),%eax
40f43a:	8b 48 1c             	mov    0x1c(%eax),%ecx
40f43d:	e8 86 19 03 00       	call   0x440dc8
40f442:	eb 07                	jmp    0x40f44b
40f444:	8b 40 1c             	mov    0x1c(%eax),%eax
40f447:	83 60 6c 00          	andl   $0x0,0x6c(%eax)
40f44b:	33 c0                	xor    %eax,%eax
40f44d:	c2 08 00             	ret    $0x8
40f450:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40f454:	81 c1 34 ff ff ff    	add    $0xffffff34,%ecx
40f45a:	e8 e0 4a 06 00       	call   0x473f3f
40f45f:	c2 04 00             	ret    $0x4
40f462:	ff 74 24 0c          	push   0xc(%esp)
40f466:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40f46a:	ff 74 24 0c          	push   0xc(%esp)
40f46e:	81 c1 34 ff ff ff    	add    $0xffffff34,%ecx
40f474:	e8 83 4c 06 00       	call   0x4740fc
40f479:	c2 0c 00             	ret    $0xc
40f47c:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40f480:	81 c1 34 ff ff ff    	add    $0xffffff34,%ecx
40f486:	e8 e5 f5 ff ff       	call   0x40ea70
40f48b:	33 c0                	xor    %eax,%eax
40f48d:	c2 04 00             	ret    $0x4
40f490:	b8 01 40 00 80       	mov    $0x80004001,%eax
40f495:	c2 08 00             	ret    $0x8
40f498:	b8 01 40 00 80       	mov    $0x80004001,%eax
40f49d:	c2 08 00             	ret    $0x8
40f4a0:	b8 01 40 00 80       	mov    $0x80004001,%eax
40f4a5:	c2 0c 00             	ret    $0xc
40f4a8:	33 c0                	xor    %eax,%eax
40f4aa:	c2 08 00             	ret    $0x8
40f4ad:	b8 01 40 00 80       	mov    $0x80004001,%eax
40f4b2:	c2 04 00             	ret    $0x4
40f4b5:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40f4b9:	81 c1 30 ff ff ff    	add    $0xffffff30,%ecx
40f4bf:	e8 7b 4a 06 00       	call   0x473f3f
40f4c4:	c2 04 00             	ret    $0x4
40f4c7:	ff 74 24 0c          	push   0xc(%esp)
40f4cb:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40f4cf:	ff 74 24 0c          	push   0xc(%esp)
40f4d3:	81 c1 30 ff ff ff    	add    $0xffffff30,%ecx
40f4d9:	e8 1e 4c 06 00       	call   0x4740fc
40f4de:	c2 0c 00             	ret    $0xc
40f4e1:	b8 01 40 00 80       	mov    $0x80004001,%eax
40f4e6:	c2 08 00             	ret    $0x8
40f4e9:	b8 01 40 00 80       	mov    $0x80004001,%eax
40f4ee:	c2 10 00             	ret    $0x10
40f4f1:	b8 01 40 00 80       	mov    $0x80004001,%eax
40f4f6:	c2 18 00             	ret    $0x18
40f4f9:	8b 44 24 04          	mov    0x4(%esp),%eax
40f4fd:	ff 74 24 1c          	push   0x1c(%esp)
40f501:	8b 88 4c ff ff ff    	mov    -0xb4(%eax),%ecx
40f507:	ff 74 24 0c          	push   0xc(%esp)
40f50b:	8b 49 1c             	mov    0x1c(%ecx),%ecx
40f50e:	8b 11                	mov    (%ecx),%edx
40f510:	05 30 ff ff ff       	add    $0xffffff30,%eax
40f515:	50                   	push   %eax
40f516:	ff 92 04 01 00 00    	call   *0x104(%edx)
40f51c:	f7 d8                	neg    %eax
40f51e:	1b c0                	sbb    %eax,%eax
40f520:	25 fd ff fd 7f       	and    $0x7ffdfffd,%eax
40f525:	05 03 00 02 80       	add    $0x80020003,%eax
40f52a:	c2 24 00             	ret    $0x24
40f52d:	68 1c 5d 49 00       	push   $0x495d1c
40f532:	ff 74 24 0c          	push   0xc(%esp)
40f536:	e8 7c 80 ff ff       	call   0x4075b7
40f53b:	85 c0                	test   %eax,%eax
40f53d:	59                   	pop    %ecx
40f53e:	59                   	pop    %ecx
40f53f:	75 1b                	jne    0x40f55c
40f541:	68 4c 64 49 00       	push   $0x49644c
40f546:	ff 74 24 0c          	push   0xc(%esp)
40f54a:	e8 68 80 ff ff       	call   0x4075b7
40f54f:	85 c0                	test   %eax,%eax
40f551:	59                   	pop    %ecx
40f552:	59                   	pop    %ecx
40f553:	75 07                	jne    0x40f55c
40f555:	b8 02 40 00 80       	mov    $0x80004002,%eax
40f55a:	eb 12                	jmp    0x40f56e
40f55c:	8b 44 24 04          	mov    0x4(%esp),%eax
40f560:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40f564:	89 01                	mov    %eax,(%ecx)
40f566:	8b 08                	mov    (%eax),%ecx
40f568:	50                   	push   %eax
40f569:	ff 51 04             	call   *0x4(%ecx)
40f56c:	33 c0                	xor    %eax,%eax
40f56e:	c2 0c 00             	ret    $0xc
40f571:	33 c0                	xor    %eax,%eax
40f573:	40                   	inc    %eax
40f574:	c2 04 00             	ret    $0x4
40f577:	33 c0                	xor    %eax,%eax
40f579:	c2 04 00             	ret    $0x4
40f57c:	33 c0                	xor    %eax,%eax
40f57e:	40                   	inc    %eax
40f57f:	c2 04 00             	ret    $0x4
40f582:	33 c0                	xor    %eax,%eax
40f584:	c2 04 00             	ret    $0x4
40f587:	55                   	push   %ebp
40f588:	8b ec                	mov    %esp,%ebp
40f58a:	56                   	push   %esi
40f58b:	68 1c 5d 49 00       	push   $0x495d1c
40f590:	ff 75 0c             	push   0xc(%ebp)
40f593:	e8 1f 80 ff ff       	call   0x4075b7
40f598:	85 c0                	test   %eax,%eax
40f59a:	8b 75 08             	mov    0x8(%ebp),%esi
40f59d:	59                   	pop    %ecx
40f59e:	59                   	pop    %ecx
40f59f:	75 2f                	jne    0x40f5d0
40f5a1:	68 0c 4e 49 00       	push   $0x494e0c
40f5a6:	ff 75 0c             	push   0xc(%ebp)
40f5a9:	e8 09 80 ff ff       	call   0x4075b7
40f5ae:	85 c0                	test   %eax,%eax
40f5b0:	59                   	pop    %ecx
40f5b1:	59                   	pop    %ecx
40f5b2:	75 1c                	jne    0x40f5d0
40f5b4:	8d 86 64 ff ff ff    	lea    -0x9c(%esi),%eax
40f5ba:	50                   	push   %eax
40f5bb:	ff 75 0c             	push   0xc(%ebp)
40f5be:	e8 f4 7f ff ff       	call   0x4075b7
40f5c3:	85 c0                	test   %eax,%eax
40f5c5:	59                   	pop    %ecx
40f5c6:	59                   	pop    %ecx
40f5c7:	75 07                	jne    0x40f5d0
40f5c9:	b8 02 40 00 80       	mov    $0x80004002,%eax
40f5ce:	eb 0d                	jmp    0x40f5dd
40f5d0:	8b 45 10             	mov    0x10(%ebp),%eax
40f5d3:	89 30                	mov    %esi,(%eax)
40f5d5:	8b 06                	mov    (%esi),%eax
40f5d7:	56                   	push   %esi
40f5d8:	ff 50 04             	call   *0x4(%eax)
40f5db:	33 c0                	xor    %eax,%eax
40f5dd:	5e                   	pop    %esi
40f5de:	5d                   	pop    %ebp
40f5df:	c2 0c 00             	ret    $0xc
40f5e2:	b8 01 40 00 80       	mov    $0x80004001,%eax
40f5e7:	c2 08 00             	ret    $0x8
40f5ea:	b8 01 40 00 80       	mov    $0x80004001,%eax
40f5ef:	c2 10 00             	ret    $0x10
40f5f2:	b8 01 40 00 80       	mov    $0x80004001,%eax
40f5f7:	c2 18 00             	ret    $0x18
40f5fa:	8b 44 24 04          	mov    0x4(%esp),%eax
40f5fe:	56                   	push   %esi
40f5ff:	8b f1                	mov    %ecx,%esi
40f601:	57                   	push   %edi
40f602:	33 ff                	xor    %edi,%edi
40f604:	6a 0a                	push   $0xa
40f606:	8d 4e 18             	lea    0x18(%esi),%ecx
40f609:	c7 06 9c c5 48 00    	movl   $0x48c59c,(%esi)
40f60f:	89 46 04             	mov    %eax,0x4(%esi)
40f612:	89 7e 08             	mov    %edi,0x8(%esi)
40f615:	89 7e 0c             	mov    %edi,0xc(%esi)
40f618:	89 7e 10             	mov    %edi,0x10(%esi)
40f61b:	89 7e 14             	mov    %edi,0x14(%esi)
40f61e:	e8 60 d0 02 00       	call   0x43c683
40f623:	89 7e 34             	mov    %edi,0x34(%esi)
40f626:	89 7e 38             	mov    %edi,0x38(%esi)
40f629:	89 7e 3c             	mov    %edi,0x3c(%esi)
40f62c:	89 7e 40             	mov    %edi,0x40(%esi)
40f62f:	89 7e 44             	mov    %edi,0x44(%esi)
40f632:	89 7e 48             	mov    %edi,0x48(%esi)
40f635:	89 7e 4c             	mov    %edi,0x4c(%esi)
40f638:	89 7e 50             	mov    %edi,0x50(%esi)
40f63b:	89 7e 54             	mov    %edi,0x54(%esi)
40f63e:	89 7e 58             	mov    %edi,0x58(%esi)
40f641:	5f                   	pop    %edi
40f642:	8b c6                	mov    %esi,%eax
40f644:	5e                   	pop    %esi
40f645:	c2 04 00             	ret    $0x4
40f648:	55                   	push   %ebp
40f649:	8b ec                	mov    %esp,%ebp
40f64b:	51                   	push   %ecx
40f64c:	51                   	push   %ecx
40f64d:	8b 51 48             	mov    0x48(%ecx),%edx
40f650:	85 d2                	test   %edx,%edx
40f652:	74 0b                	je     0x40f65f
40f654:	8b 41 50             	mov    0x50(%ecx),%eax
40f657:	f7 d8                	neg    %eax
40f659:	1b c0                	sbb    %eax,%eax
40f65b:	23 c2                	and    %edx,%eax
40f65d:	c9                   	leave
40f65e:	c3                   	ret
40f65f:	83 79 08 00          	cmpl   $0x0,0x8(%ecx)
40f663:	75 30                	jne    0x40f695
40f665:	8b 41 04             	mov    0x4(%ecx),%eax
40f668:	8b 40 4c             	mov    0x4c(%eax),%eax
40f66b:	8b 08                	mov    (%eax),%ecx
40f66d:	8d 55 f8             	lea    -0x8(%ebp),%edx
40f670:	52                   	push   %edx
40f671:	68 b0 c4 48 00       	push   $0x48c4b0
40f676:	50                   	push   %eax
40f677:	ff 11                	call   *(%ecx)
40f679:	85 c0                	test   %eax,%eax
40f67b:	7c 32                	jl     0x40f6af
40f67d:	8b 45 f8             	mov    -0x8(%ebp),%eax
40f680:	8b 08                	mov    (%eax),%ecx
40f682:	8d 55 fc             	lea    -0x4(%ebp),%edx
40f685:	52                   	push   %edx
40f686:	50                   	push   %eax
40f687:	ff 51 14             	call   *0x14(%ecx)
40f68a:	8b 45 f8             	mov    -0x8(%ebp),%eax
40f68d:	8b 08                	mov    (%eax),%ecx
40f68f:	50                   	push   %eax
40f690:	ff 51 08             	call   *0x8(%ecx)
40f693:	eb 15                	jmp    0x40f6aa
40f695:	8b 49 08             	mov    0x8(%ecx),%ecx
40f698:	8b 01                	mov    (%ecx),%eax
40f69a:	8d 55 fc             	lea    -0x4(%ebp),%edx
40f69d:	52                   	push   %edx
40f69e:	68 9c 46 49 00       	push   $0x49469c
40f6a3:	51                   	push   %ecx
40f6a4:	ff 10                	call   *(%eax)
40f6a6:	85 c0                	test   %eax,%eax
40f6a8:	7c 05                	jl     0x40f6af
40f6aa:	8b 45 fc             	mov    -0x4(%ebp),%eax
40f6ad:	c9                   	leave
40f6ae:	c3                   	ret
40f6af:	33 c0                	xor    %eax,%eax
40f6b1:	c9                   	leave
40f6b2:	c3                   	ret
40f6b3:	ff 74 24 04          	push   0x4(%esp)
40f6b7:	ff 15 f0 0a 4b 00    	call   *0x4b0af0
40f6bd:	c3                   	ret
40f6be:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40f6c2:	53                   	push   %ebx
40f6c3:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
40f6c7:	8b 43 10             	mov    0x10(%ebx),%eax
40f6ca:	89 41 10             	mov    %eax,0x10(%ecx)
40f6cd:	8b 43 10             	mov    0x10(%ebx),%eax
40f6d0:	83 e8 00             	sub    $0x0,%eax
40f6d3:	56                   	push   %esi
40f6d4:	57                   	push   %edi
40f6d5:	74 18                	je     0x40f6ef
40f6d7:	48                   	dec    %eax
40f6d8:	74 05                	je     0x40f6df
40f6da:	48                   	dec    %eax
40f6db:	74 1a                	je     0x40f6f7
40f6dd:	eb 42                	jmp    0x40f721
40f6df:	8b f3                	mov    %ebx,%esi
40f6e1:	8b f9                	mov    %ecx,%edi
40f6e3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f6e4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f6e5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f6e6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f6e7:	8b 43 14             	mov    0x14(%ebx),%eax
40f6ea:	89 41 14             	mov    %eax,0x14(%ecx)
40f6ed:	eb 32                	jmp    0x40f721
40f6ef:	8b f3                	mov    %ebx,%esi
40f6f1:	8b f9                	mov    %ecx,%edi
40f6f3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f6f4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f6f5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f6f6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f6f7:	ff 73 14             	push   0x14(%ebx)
40f6fa:	e8 c9 8d 00 00       	call   0x4184c8
40f6ff:	59                   	pop    %ecx
40f700:	8d 44 00 02          	lea    0x2(%eax,%eax,1),%eax
40f704:	50                   	push   %eax
40f705:	ff 15 18 0b 4b 00    	call   *0x4b0b18
40f70b:	85 c0                	test   %eax,%eax
40f70d:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40f711:	89 41 14             	mov    %eax,0x14(%ecx)
40f714:	74 0e                	je     0x40f724
40f716:	ff 73 14             	push   0x14(%ebx)
40f719:	50                   	push   %eax
40f71a:	e8 38 70 00 00       	call   0x416757
40f71f:	59                   	pop    %ecx
40f720:	59                   	pop    %ecx
40f721:	33 c0                	xor    %eax,%eax
40f723:	40                   	inc    %eax
40f724:	5f                   	pop    %edi
40f725:	5e                   	pop    %esi
40f726:	5b                   	pop    %ebx
40f727:	c2 08 00             	ret    $0x8
40f72a:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
40f72f:	56                   	push   %esi
40f730:	8b f1                	mov    %ecx,%esi
40f732:	8b 06                	mov    (%esi),%eax
40f734:	74 17                	je     0x40f74d
40f736:	6a 00                	push   $0x0
40f738:	ff 74 24 0c          	push   0xc(%esp)
40f73c:	ff 50 04             	call   *0x4(%eax)
40f73f:	ff 74 24 08          	push   0x8(%esp)
40f743:	8d 4e 18             	lea    0x18(%esi),%ecx
40f746:	e8 e6 cf 02 00       	call   0x43c731
40f74b:	eb 1f                	jmp    0x40f76c
40f74d:	ff 50 14             	call   *0x14(%eax)
40f750:	6a 00                	push   $0x0
40f752:	ff 74 24 0c          	push   0xc(%esp)
40f756:	83 c6 18             	add    $0x18,%esi
40f759:	8b ce                	mov    %esi,%ecx
40f75b:	e8 04 cf 02 00       	call   0x43c664
40f760:	85 c0                	test   %eax,%eax
40f762:	74 08                	je     0x40f76c
40f764:	50                   	push   %eax
40f765:	8b ce                	mov    %esi,%ecx
40f767:	e8 9a ce 02 00       	call   0x43c606
40f76c:	5e                   	pop    %esi
40f76d:	c2 08 00             	ret    $0x8
40f770:	66 8b 54 24 0c       	mov    0xc(%esp),%dx
40f775:	8b c1                	mov    %ecx,%eax
40f777:	33 c9                	xor    %ecx,%ecx
40f779:	89 08                	mov    %ecx,(%eax)
40f77b:	66 89 50 04          	mov    %dx,0x4(%eax)
40f77f:	8b 54 24 08          	mov    0x8(%esp),%edx
40f783:	89 48 0c             	mov    %ecx,0xc(%eax)
40f786:	89 48 14             	mov    %ecx,0x14(%eax)
40f789:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40f78d:	89 50 08             	mov    %edx,0x8(%eax)
40f790:	89 48 18             	mov    %ecx,0x18(%eax)
40f793:	c2 0c 00             	ret    $0xc
40f796:	8b 44 24 04          	mov    0x4(%esp),%eax
40f79a:	89 01                	mov    %eax,(%ecx)
40f79c:	c2 04 00             	ret    $0x4
40f79f:	8b 41 18             	mov    0x18(%ecx),%eax
40f7a2:	c3                   	ret
40f7a3:	56                   	push   %esi
40f7a4:	8b f1                	mov    %ecx,%esi
40f7a6:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
40f7aa:	75 04                	jne    0x40f7b0
40f7ac:	33 c0                	xor    %eax,%eax
40f7ae:	5e                   	pop    %esi
40f7af:	c3                   	ret
40f7b0:	8b 4e 0c             	mov    0xc(%esi),%ecx
40f7b3:	8b 01                	mov    (%ecx),%eax
40f7b5:	ff 90 b4 00 00 00    	call   *0xb4(%eax)
40f7bb:	8b 46 0c             	mov    0xc(%esi),%eax
40f7be:	8b 88 8c 00 00 00    	mov    0x8c(%eax),%ecx
40f7c4:	8b 01                	mov    (%ecx),%eax
40f7c6:	6a 01                	push   $0x1
40f7c8:	56                   	push   %esi
40f7c9:	ff 50 04             	call   *0x4(%eax)
40f7cc:	8b 46 0c             	mov    0xc(%esi),%eax
40f7cf:	8b 88 8c 00 00 00    	mov    0x8c(%eax),%ecx
40f7d5:	8b 01                	mov    (%ecx),%eax
40f7d7:	5e                   	pop    %esi
40f7d8:	ff 20                	jmp    *(%eax)
40f7da:	8b 44 24 0c          	mov    0xc(%esp),%eax
40f7de:	85 c0                	test   %eax,%eax
40f7e0:	74 03                	je     0x40f7e5
40f7e2:	83 20 00             	andl   $0x0,(%eax)
40f7e5:	8b 89 90 00 00 00    	mov    0x90(%ecx),%ecx
40f7eb:	eb 0c                	jmp    0x40f7f9
40f7ed:	8b 41 08             	mov    0x8(%ecx),%eax
40f7f0:	3b 44 24 04          	cmp    0x4(%esp),%eax