40f41a:	0b c8                	or     %eax,%ecx
40f41c:	8b 45 10             	mov    0x10(%ebp),%eax
40f41f:	25 ff ff 7f 00       	and    $0x7fffff,%eax
40f424:	0b c8                	or     %eax,%ecx
40f426:	8b 45 18             	mov    0x18(%ebp),%eax
40f429:	89 08                	mov    %ecx,(%eax)
40f42b:	33 c0                	xor    %eax,%eax
40f42d:	5d                   	pop    %ebp
40f42e:	c3                   	ret
40f42f:	8b ff                	mov    %edi,%edi
40f431:	55                   	push   %ebp
40f432:	8b ec                	mov    %esp,%ebp
40f434:	0f b6 45 08          	movzbl 0x8(%ebp),%eax
40f438:	99                   	cltd
40f439:	56                   	push   %esi
40f43a:	8b 75 18             	mov    0x18(%ebp),%esi
40f43d:	33 d2                	xor    %edx,%edx
40f43f:	c1 e0 1f             	shl    $0x1f,%eax
40f442:	8b 4e 04             	mov    0x4(%esi),%ecx
40f445:	09 16                	or     %edx,(%esi)
40f447:	81 e1 ff ff ff 7f    	and    $0x7fffffff,%ecx
40f44d:	0b c1                	or     %ecx,%eax
40f44f:	89 46 04             	mov    %eax,0x4(%esi)
40f452:	8b 45 0c             	mov    0xc(%ebp),%eax
40f455:	8b 4e 04             	mov    0x4(%esi),%ecx
40f458:	05 ff 03 00 00       	add    $0x3ff,%eax
40f45d:	25 ff 07 00 00       	and    $0x7ff,%eax
40f462:	81 e1 ff ff 0f 80    	and    $0x800fffff,%ecx
40f468:	99                   	cltd
40f469:	c1 e0 14             	shl    $0x14,%eax
40f46c:	33 d2                	xor    %edx,%edx
40f46e:	0b 16                	or     (%esi),%edx
40f470:	0b c1                	or     %ecx,%eax
40f472:	89 46 04             	mov    %eax,0x4(%esi)
40f475:	8b ca                	mov    %edx,%ecx
40f477:	33 45 14             	xor    0x14(%ebp),%eax
40f47a:	33 4d 10             	xor    0x10(%ebp),%ecx
40f47d:	25 ff ff 0f 00       	and    $0xfffff,%eax
40f482:	31 46 04             	xor    %eax,0x4(%esi)
40f485:	89 16                	mov    %edx,(%esi)
40f487:	31 0e                	xor    %ecx,(%esi)
40f489:	33 c0                	xor    %eax,%eax
40f48b:	5e                   	pop    %esi
40f48c:	5d                   	pop    %ebp
40f48d:	c3                   	ret
40f48e:	8b ff                	mov    %edi,%edi
40f490:	55                   	push   %ebp
40f491:	8b ec                	mov    %esp,%ebp
40f493:	33 c0                	xor    %eax,%eax
40f495:	38 45 08             	cmp    %al,0x8(%ebp)
40f498:	56                   	push   %esi
40f499:	8b 75 0c             	mov    0xc(%ebp),%esi
40f49c:	0f 95 c0             	setne  %al
40f49f:	99                   	cltd
40f4a0:	c1 e0 1f             	shl    $0x1f,%eax
40f4a3:	33 d2                	xor    %edx,%edx
40f4a5:	8b 4e 04             	mov    0x4(%esi),%ecx
40f4a8:	0b 16                	or     (%esi),%edx
40f4aa:	81 e1 ff ff ff 7f    	and    $0x7fffffff,%ecx
40f4b0:	0b c1                	or     %ecx,%eax
40f4b2:	89 46 04             	mov    %eax,0x4(%esi)
40f4b5:	8b c2                	mov    %edx,%eax
40f4b7:	81 66 04 ff ff 0f 80 	andl   $0x800fffff,0x4(%esi)
40f4be:	89 06                	mov    %eax,(%esi)
40f4c0:	83 26 00             	andl   $0x0,(%esi)
40f4c3:	81 66 04 00 00 f0 ff 	andl   $0xfff00000,0x4(%esi)
40f4ca:	5e                   	pop    %esi
40f4cb:	5d                   	pop    %ebp
40f4cc:	c3                   	ret
40f4cd:	8b ff                	mov    %edi,%edi
40f4cf:	55                   	push   %ebp
40f4d0:	8b ec                	mov    %esp,%ebp
40f4d2:	81 ec 98 00 00 00    	sub    $0x98,%esp
40f4d8:	a1 28 ba 43 00       	mov    0x43ba28,%eax
40f4dd:	33 c5                	xor    %ebp,%eax
40f4df:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f4e2:	57                   	push   %edi
40f4e3:	8b 7d 10             	mov    0x10(%ebp),%edi
40f4e6:	85 ff                	test   %edi,%edi
40f4e8:	75 15                	jne    0x40f4ff
40f4ea:	e8 7c 55 00 00       	call   0x414a6b
40f4ef:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40f4f5:	e8 e8 c7 ff ff       	call   0x40bce2
40f4fa:	83 c8 ff             	or     $0xffffffff,%eax
40f4fd:	eb 7e                	jmp    0x40f57d
40f4ff:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
40f503:	74 e5                	je     0x40f4ea
40f505:	56                   	push   %esi
40f506:	8b 75 14             	mov    0x14(%ebp),%esi
40f509:	83 fe ff             	cmp    $0xffffffff,%esi
40f50c:	75 0e                	jne    0x40f51c
40f50e:	8b f7                	mov    %edi,%esi
40f510:	8d 4e 01             	lea    0x1(%esi),%ecx
40f513:	8a 06                	mov    (%esi),%al
40f515:	46                   	inc    %esi
40f516:	84 c0                	test   %al,%al
40f518:	75 f9                	jne    0x40f513
40f51a:	2b f1                	sub    %ecx,%esi
40f51c:	ff 75 1c             	push   0x1c(%ebp)
40f51f:	8d 8d 68 ff ff ff    	lea    -0x98(%ebp),%ecx
40f525:	e8 9e d2 ff ff       	call   0x40c7c8
40f52a:	ff 75 20             	push   0x20(%ebp)
40f52d:	8d 04 3e             	lea    (%esi,%edi,1),%eax
40f530:	89 bd 78 ff ff ff    	mov    %edi,-0x88(%ebp)
40f536:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
40f53c:	8d 4d 84             	lea    -0x7c(%ebp),%ecx
40f53f:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
40f545:	89 7d 80             	mov    %edi,-0x80(%ebp)
40f548:	50                   	push   %eax
40f549:	ff 75 18             	push   0x18(%ebp)
40f54c:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
40f552:	ff 75 0c             	push   0xc(%ebp)
40f555:	ff 75 08             	push   0x8(%ebp)
40f558:	50                   	push   %eax
40f559:	e8 40 12 00 00       	call   0x41079e
40f55e:	8d 4d 84             	lea    -0x7c(%ebp),%ecx
40f561:	e8 f4 3d 00 00       	call   0x41335a
40f566:	80 bd 74 ff ff ff 00 	cmpb   $0x0,-0x8c(%ebp)
40f56d:	5e                   	pop    %esi
40f56e:	74 0d                	je     0x40f57d
40f570:	8b 8d 68 ff ff ff    	mov    -0x98(%ebp),%ecx
40f576:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
40f57d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f580:	33 cd                	xor    %ebp,%ecx
40f582:	5f                   	pop    %edi
40f583:	e8 d8 7a ff ff       	call   0x407060
40f588:	8b e5                	mov    %ebp,%esp
40f58a:	5d                   	pop    %ebp
40f58b:	c3                   	ret
40f58c:	8b ff                	mov    %edi,%edi
40f58e:	55                   	push   %ebp
40f58f:	8b ec                	mov    %esp,%ebp
40f591:	51                   	push   %ecx
40f592:	51                   	push   %ecx
40f593:	8b 45 0c             	mov    0xc(%ebp),%eax
40f596:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f599:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f59c:	50                   	push   %eax
40f59d:	ff 75 08             	push   0x8(%ebp)
40f5a0:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
40f5a4:	e8 6d 19 00 00       	call   0x410f16
40f5a9:	59                   	pop    %ecx
40f5aa:	59                   	pop    %ecx
40f5ab:	8b e5                	mov    %ebp,%esp
40f5ad:	5d                   	pop    %ebp
40f5ae:	c3                   	ret
40f5af:	8b ff                	mov    %edi,%edi
40f5b1:	55                   	push   %ebp
40f5b2:	8b ec                	mov    %esp,%ebp
40f5b4:	51                   	push   %ecx
40f5b5:	51                   	push   %ecx
40f5b6:	8b 45 0c             	mov    0xc(%ebp),%eax
40f5b9:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f5bc:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f5bf:	50                   	push   %eax
40f5c0:	ff 75 08             	push   0x8(%ebp)
40f5c3:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40f5c7:	e8 4a 19 00 00       	call   0x410f16
40f5cc:	59                   	pop    %ecx
40f5cd:	59                   	pop    %ecx
40f5ce:	8b e5                	mov    %ebp,%esp
40f5d0:	5d                   	pop    %ebp
40f5d1:	c3                   	ret
40f5d2:	8b ff                	mov    %edi,%edi
40f5d4:	55                   	push   %ebp
40f5d5:	8b ec                	mov    %esp,%ebp
40f5d7:	51                   	push   %ecx
40f5d8:	51                   	push   %ecx
40f5d9:	8b 45 0c             	mov    0xc(%ebp),%eax
40f5dc:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f5df:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f5e2:	50                   	push   %eax
40f5e3:	ff 75 08             	push   0x8(%ebp)
40f5e6:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
40f5ea:	e8 ea 36 00 00       	call   0x412cd9
40f5ef:	59                   	pop    %ecx
40f5f0:	59                   	pop    %ecx
40f5f1:	8b e5                	mov    %ebp,%esp
40f5f3:	5d                   	pop    %ebp
40f5f4:	c3                   	ret
40f5f5:	8b ff                	mov    %edi,%edi
40f5f7:	55                   	push   %ebp
40f5f8:	8b ec                	mov    %esp,%ebp
40f5fa:	51                   	push   %ecx
40f5fb:	51                   	push   %ecx
40f5fc:	8b 45 0c             	mov    0xc(%ebp),%eax
40f5ff:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f602:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f605:	50                   	push   %eax
40f606:	ff 75 08             	push   0x8(%ebp)
40f609:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40f60d:	e8 c7 36 00 00       	call   0x412cd9
40f612:	59                   	pop    %ecx
40f613:	59                   	pop    %ecx
40f614:	8b e5                	mov    %ebp,%esp
40f616:	5d                   	pop    %ebp
40f617:	c3                   	ret
40f618:	8b ff                	mov    %edi,%edi
40f61a:	55                   	push   %ebp
40f61b:	8b ec                	mov    %esp,%ebp
40f61d:	8b 45 08             	mov    0x8(%ebp),%eax
40f620:	a8 04                	test   $0x4,%al
40f622:	74 04                	je     0x40f628
40f624:	b0 01                	mov    $0x1,%al
40f626:	5d                   	pop    %ebp
40f627:	c3                   	ret
40f628:	a8 01                	test   $0x1,%al
40f62a:	74 2b                	je     0x40f657
40f62c:	83 e0 02             	and    $0x2,%eax
40f62f:	74 11                	je     0x40f642
40f631:	81 7d 10 00 00 00 80 	cmpl   $0x80000000,0x10(%ebp)
40f638:	72 08                	jb     0x40f642
40f63a:	77 e8                	ja     0x40f624
40f63c:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40f640:	77 e2                	ja     0x40f624
40f642:	85 c0                	test   %eax,%eax
40f644:	75 11                	jne    0x40f657
40f646:	81 7d 10 ff ff ff 7f 	cmpl   $0x7fffffff,0x10(%ebp)
40f64d:	72 08                	jb     0x40f657
40f64f:	77 d3                	ja     0x40f624
40f651:	83 7d 0c ff          	cmpl   $0xffffffff,0xc(%ebp)
40f655:	77 cd                	ja     0x40f624
40f657:	32 c0                	xor    %al,%al
40f659:	5d                   	pop    %ebp
40f65a:	c3                   	ret
40f65b:	8b ff                	mov    %edi,%edi
40f65d:	55                   	push   %ebp
40f65e:	8b ec                	mov    %esp,%ebp
40f660:	ff 75 18             	push   0x18(%ebp)
40f663:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f666:	ff 75 14             	push   0x14(%ebp)
40f669:	ff 75 10             	push   0x10(%ebp)
40f66c:	ff 75 0c             	push   0xc(%ebp)
40f66f:	e8 f9 10 00 00       	call   0x41076d
40f674:	8b 45 08             	mov    0x8(%ebp),%eax
40f677:	5d                   	pop    %ebp
40f678:	c3                   	ret
40f679:	8b ff                	mov    %edi,%edi
40f67b:	55                   	push   %ebp
40f67c:	8b ec                	mov    %esp,%ebp
40f67e:	81 ec 10 03 00 00    	sub    $0x310,%esp
40f684:	a1 28 ba 43 00       	mov    0x43ba28,%eax
40f689:	33 c5                	xor    %ebp,%eax
40f68b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f68e:	8b 45 08             	mov    0x8(%ebp),%eax
40f691:	56                   	push   %esi
40f692:	8b 75 2c             	mov    0x2c(%ebp),%esi
40f695:	85 f6                	test   %esi,%esi
40f697:	74 04                	je     0x40f69d
40f699:	85 c0                	test   %eax,%eax
40f69b:	75 15                	jne    0x40f6b2
40f69d:	e8 c9 53 00 00       	call   0x414a6b
40f6a2:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40f6a8:	e8 35 c6 ff ff       	call   0x40bce2
40f6ad:	33 c0                	xor    %eax,%eax
40f6af:	40                   	inc    %eax
40f6b0:	eb 22                	jmp    0x40f6d4
40f6b2:	8d 8d f0 fc ff ff    	lea    -0x310(%ebp),%ecx
40f6b8:	51                   	push   %ecx
40f6b9:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40f6bc:	51                   	push   %ecx
40f6bd:	50                   	push   %eax
40f6be:	e8 ac 00 00 00       	call   0x40f76f
40f6c3:	56                   	push   %esi
40f6c4:	8d 8d f0 fc ff ff    	lea    -0x310(%ebp),%ecx
40f6ca:	51                   	push   %ecx
40f6cb:	50                   	push   %eax
40f6cc:	e8 4c 07 00 00       	call   0x40fe1d
40f6d1:	83 c4 18             	add    $0x18,%esp
40f6d4:	8b 55 24             	mov    0x24(%ebp),%edx
40f6d7:	5e                   	pop    %esi
40f6d8:	85 d2                	test   %edx,%edx
40f6da:	74 0a                	je     0x40f6e6
40f6dc:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
40f6df:	0b 4d 20             	or     0x20(%ebp),%ecx
40f6e2:	75 02                	jne    0x40f6e6
40f6e4:	88 0a                	mov    %cl,(%edx)
40f6e6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f6e9:	33 cd                	xor    %ebp,%ecx
40f6eb:	e8 70 79 ff ff       	call   0x407060
40f6f0:	8b e5                	mov    %ebp,%esp
40f6f2:	5d                   	pop    %ebp
40f6f3:	c3                   	ret
40f6f4:	8b ff                	mov    %edi,%edi
40f6f6:	55                   	push   %ebp
40f6f7:	8b ec                	mov    %esp,%ebp
40f6f9:	81 ec 10 03 00 00    	sub    $0x310,%esp
40f6ff:	a1 28 ba 43 00       	mov    0x43ba28,%eax
40f704:	33 c5                	xor    %ebp,%eax
40f706:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f709:	8b 45 08             	mov    0x8(%ebp),%eax
40f70c:	56                   	push   %esi
40f70d:	8b 75 2c             	mov    0x2c(%ebp),%esi
40f710:	85 f6                	test   %esi,%esi
40f712:	74 04                	je     0x40f718
40f714:	85 c0                	test   %eax,%eax
40f716:	75 15                	jne    0x40f72d
40f718:	e8 4e 53 00 00       	call   0x414a6b
40f71d:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40f723:	e8 ba c5 ff ff       	call   0x40bce2
40f728:	33 c0                	xor    %eax,%eax
40f72a:	40                   	inc    %eax
40f72b:	eb 22                	jmp    0x40f74f
40f72d:	8d 8d f0 fc ff ff    	lea    -0x310(%ebp),%ecx
40f733:	51                   	push   %ecx
40f734:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40f737:	51                   	push   %ecx
40f738:	50                   	push   %eax
40f739:	e8 31 00 00 00       	call   0x40f76f
40f73e:	56                   	push   %esi
40f73f:	8d 8d f0 fc ff ff    	lea    -0x310(%ebp),%ecx
40f745:	51                   	push   %ecx
40f746:	50                   	push   %eax
40f747:	e8 e1 07 00 00       	call   0x40ff2d
40f74c:	83 c4 18             	add    $0x18,%esp
40f74f:	8b 55 24             	mov    0x24(%ebp),%edx
40f752:	5e                   	pop    %esi
40f753:	85 d2                	test   %edx,%edx
40f755:	74 0a                	je     0x40f761
40f757:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
40f75a:	0b 4d 20             	or     0x20(%ebp),%ecx
40f75d:	75 02                	jne    0x40f761
40f75f:	88 0a                	mov    %cl,(%edx)
40f761:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f764:	33 cd                	xor    %ebp,%ecx
40f766:	e8 f5 78 ff ff       	call   0x407060
40f76b:	8b e5                	mov    %ebp,%esp
40f76d:	5d                   	pop    %ebp
40f76e:	c3                   	ret
40f76f:	8b ff                	mov    %edi,%edi
40f771:	55                   	push   %ebp
40f772:	8b ec                	mov    %esp,%ebp
40f774:	83 ec 24             	sub    $0x24,%esp
40f777:	56                   	push   %esi
40f778:	8b 75 0c             	mov    0xc(%ebp),%esi
40f77b:	8b ce                	mov    %esi,%ecx
40f77d:	57                   	push   %edi
40f77e:	e8 e3 44 00 00       	call   0x413c66
40f783:	84 c0                	test   %al,%al
40f785:	75 08                	jne    0x40f78f
40f787:	6a 07                	push   $0x7
40f789:	58                   	pop    %eax
40f78a:	e9 41 04 00 00       	jmp    0x40fbd0
40f78f:	8b 46 10             	mov    0x10(%esi),%eax
40f792:	8b ce                	mov    %esi,%ecx
40f794:	89 45 e8             	mov    %eax,-0x18(%ebp)
40f797:	8b 46 14             	mov    0x14(%esi),%eax
40f79a:	53                   	push   %ebx
40f79b:	89 45 ec             	mov    %eax,-0x14(%ebp)
40f79e:	e8 ab 3a 00 00       	call   0x41324e