41e37f:	ff 15 dc 7d 4a 00    	call   *0x4a7ddc
41e385:	a8 02                	test   $0x2,%al
41e387:	74 0c                	je     0x41e395
41e389:	c7 07 40 01 00 00    	movl   $0x140,(%edi)
41e38f:	c7 06 f0 00 00 00    	movl   $0xf0,(%esi)
41e395:	5f                   	pop    %edi
41e396:	5e                   	pop    %esi
41e397:	c9                   	leave
41e398:	c3                   	ret
41e399:	8b ff                	mov    %edi,%edi
41e39b:	55                   	push   %ebp
41e39c:	8b ec                	mov    %esp,%ebp
41e39e:	83 ec 18             	sub    $0x18,%esp
41e3a1:	a1 dc 38 4a 00       	mov    0x4a38dc,%eax
41e3a6:	33 c5                	xor    %ebp,%eax
41e3a8:	89 45 fc             	mov    %eax,-0x4(%ebp)
41e3ab:	8b c1                	mov    %ecx,%eax
41e3ad:	56                   	push   %esi
41e3ae:	57                   	push   %edi
41e3af:	89 45 e8             	mov    %eax,-0x18(%ebp)
41e3b2:	8d 70 0c             	lea    0xc(%eax),%esi
41e3b5:	8d 78 08             	lea    0x8(%eax),%edi
41e3b8:	8b d6                	mov    %esi,%edx
41e3ba:	8b cf                	mov    %edi,%ecx
41e3bc:	e8 6e ff ff ff       	call   0x41e32f
41e3c1:	a1 d8 58 4a 00       	mov    0x4a58d8,%eax
41e3c6:	85 c0                	test   %eax,%eax
41e3c8:	74 12                	je     0x41e3dc
41e3ca:	83 3d dc 58 4a 00 00 	cmpl   $0x0,0x4a58dc
41e3d1:	74 09                	je     0x41e3dc
41e3d3:	89 07                	mov    %eax,(%edi)
41e3d5:	a1 dc 58 4a 00       	mov    0x4a58dc,%eax
41e3da:	89 06                	mov    %eax,(%esi)
41e3dc:	83 3d 1c 58 4a 00 00 	cmpl   $0x0,0x4a581c
41e3e3:	74 18                	je     0x41e3fd
41e3e5:	a1 28 59 4a 00       	mov    0x4a5928,%eax
41e3ea:	99                   	cltd
41e3eb:	2b c2                	sub    %edx,%eax
41e3ed:	d1 f8                	sar    $1,%eax
41e3ef:	89 07                	mov    %eax,(%edi)
41e3f1:	a1 2c 59 4a 00       	mov    0x4a592c,%eax
41e3f6:	99                   	cltd
41e3f7:	2b c2                	sub    %edx,%eax
41e3f9:	d1 f8                	sar    $1,%eax
41e3fb:	89 06                	mov    %eax,(%esi)
41e3fd:	8b 4d e8             	mov    -0x18(%ebp),%ecx
41e400:	8d 7d ec             	lea    -0x14(%ebp),%edi
41e403:	be 1c 38 41 00       	mov    $0x41381c,%esi
41e408:	33 c0                	xor    %eax,%eax
41e40a:	40                   	inc    %eax
41e40b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41e40c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41e40d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41e40e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41e40f:	8d 79 14             	lea    0x14(%ecx),%edi
41e412:	c7 41 10 04 00 00 00 	movl   $0x4,0x10(%ecx)
41e419:	8d 75 ec             	lea    -0x14(%ebp),%esi
41e41c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41e41d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41e41e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41e41f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41e420:	89 41 2c             	mov    %eax,0x2c(%ecx)
41e423:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41e426:	5f                   	pop    %edi
41e427:	33 cd                	xor    %ebp,%ecx
41e429:	5e                   	pop    %esi
41e42a:	e8 d1 1a 07 00       	call   0x48ff00
41e42f:	c9                   	leave
41e430:	c3                   	ret
41e431:	8b ff                	mov    %edi,%edi
41e433:	55                   	push   %ebp
41e434:	8b ec                	mov    %esp,%ebp
41e436:	83 e4 f8             	and    $0xfffffff8,%esp
41e439:	83 ec 20             	sub    $0x20,%esp
41e43c:	83 64 24 08 00       	andl   $0x0,0x8(%esp)
41e441:	83 64 24 04 00       	andl   $0x0,0x4(%esp)
41e446:	56                   	push   %esi
41e447:	57                   	push   %edi
41e448:	8b f9                	mov    %ecx,%edi
41e44a:	83 7f 30 00          	cmpl   $0x0,0x30(%edi)
41e44e:	74 11                	je     0x41e461
41e450:	ff 77 30             	push   0x30(%edi)
41e453:	ff 15 54 72 4a 00    	call   *0x4a7254
41e459:	8b f0                	mov    %eax,%esi
41e45b:	89 44 24 14          	mov    %eax,0x14(%esp)
41e45f:	eb 06                	jmp    0x41e467
41e461:	33 f6                	xor    %esi,%esi
41e463:	89 74 24 14          	mov    %esi,0x14(%esp)
41e467:	85 f6                	test   %esi,%esi
41e469:	74 30                	je     0x41e49b
41e46b:	83 3e 28             	cmpl   $0x28,(%esi)
41e46e:	72 19                	jb     0x41e489
41e470:	33 c0                	xor    %eax,%eax
41e472:	39 46 10             	cmp    %eax,0x10(%esi)
41e475:	0f 95 c0             	setne  %al
41e478:	89 47 24             	mov    %eax,0x24(%edi)
41e47b:	8b 46 18             	mov    0x18(%esi),%eax
41e47e:	89 44 24 10          	mov    %eax,0x10(%esp)
41e482:	8b 46 1c             	mov    0x1c(%esi),%eax
41e485:	89 44 24 0c          	mov    %eax,0xc(%esp)
41e489:	8b ce                	mov    %esi,%ecx
41e48b:	e8 31 f5 00 00       	call   0x42d9c1
41e490:	89 47 08             	mov    %eax,0x8(%edi)
41e493:	e8 3c f5 00 00       	call   0x42d9d4
41e498:	89 47 0c             	mov    %eax,0xc(%edi)
41e49b:	33 c0                	xor    %eax,%eax
41e49d:	39 47 10             	cmp    %eax,0x10(%edi)
41e4a0:	0f 94 c0             	sete   %al
41e4a3:	85 f6                	test   %esi,%esi
41e4a5:	74 04                	je     0x41e4ab
41e4a7:	33 d2                	xor    %edx,%edx
41e4a9:	eb 03                	jmp    0x41e4ae
41e4ab:	8b 57 0c             	mov    0xc(%edi),%edx
41e4ae:	85 f6                	test   %esi,%esi
41e4b0:	74 04                	je     0x41e4b6
41e4b2:	33 c9                	xor    %ecx,%ecx
41e4b4:	eb 03                	jmp    0x41e4b9
41e4b6:	8b 4f 08             	mov    0x8(%edi),%ecx
41e4b9:	51                   	push   %ecx
41e4ba:	ff 74 24 10          	push   0x10(%esp)
41e4be:	ff 74 24 18          	push   0x18(%esp)
41e4c2:	50                   	push   %eax
41e4c3:	50                   	push   %eax
41e4c4:	e8 3f e3 00 00       	call   0x42c808
41e4c9:	89 47 04             	mov    %eax,0x4(%edi)
41e4cc:	85 c0                	test   %eax,%eax
41e4ce:	0f 84 01 02 00 00    	je     0x41e6d5
41e4d4:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
41e4d8:	74 0b                	je     0x41e4e5
41e4da:	8b c8                	mov    %eax,%ecx
41e4dc:	85 f6                	test   %esi,%esi
41e4de:	75 13                	jne    0x41e4f3
41e4e0:	39 70 14             	cmp    %esi,0x14(%eax)
41e4e3:	75 0e                	jne    0x41e4f3
41e4e5:	50                   	push   %eax
41e4e6:	ff 15 10 74 4a 00    	call   *0x4a7410
41e4ec:	83 67 04 00          	andl   $0x0,0x4(%edi)
41e4f0:	59                   	pop    %ecx
41e4f1:	33 c9                	xor    %ecx,%ecx
41e4f3:	85 c9                	test   %ecx,%ecx
41e4f5:	0f 84 da 01 00 00    	je     0x41e6d5
41e4fb:	8b 15 40 47 4a 00    	mov    0x4a4740,%edx
41e501:	85 d2                	test   %edx,%edx
41e503:	74 14                	je     0x41e519
41e505:	6a 00                	push   $0x0
41e507:	8b cf                	mov    %edi,%ecx
41e509:	e8 0e fe ff ff       	call   0x41e31c
41e50e:	50                   	push   %eax
41e50f:	8b ca                	mov    %edx,%ecx
41e511:	e8 7d 6e 00 00       	call   0x425393
41e516:	8b 4f 04             	mov    0x4(%edi),%ecx
41e519:	8b 47 08             	mov    0x8(%edi),%eax
41e51c:	89 41 2c             	mov    %eax,0x2c(%ecx)
41e51f:	8b 4f 04             	mov    0x4(%edi),%ecx
41e522:	8b 47 0c             	mov    0xc(%edi),%eax
41e525:	89 41 30             	mov    %eax,0x30(%ecx)
41e528:	8b 47 04             	mov    0x4(%edi),%eax
41e52b:	89 78 04             	mov    %edi,0x4(%eax)
41e52e:	8b 4f 04             	mov    0x4(%edi),%ecx
41e531:	8b 47 2c             	mov    0x2c(%edi),%eax
41e534:	89 41 08             	mov    %eax,0x8(%ecx)
41e537:	85 f6                	test   %esi,%esi
41e539:	74 40                	je     0x41e57b
41e53b:	8b 47 04             	mov    0x4(%edi),%eax
41e53e:	8b ce                	mov    %esi,%ecx
41e540:	8b 57 34             	mov    0x34(%edi),%edx
41e543:	ff 70 0c             	push   0xc(%eax)
41e546:	e8 3d f6 00 00       	call   0x42db88
41e54b:	8b c8                	mov    %eax,%ecx
41e54d:	85 c9                	test   %ecx,%ecx
41e54f:	75 11                	jne    0x41e562
41e551:	6a 01                	push   $0x1
41e553:	b9 e0 55 4a 00       	mov    $0x4a55e0,%ecx
41e558:	e8 1c f7 02 00       	call   0x44dc79
41e55d:	e9 83 01 00 00       	jmp    0x41e6e5
41e562:	8b 47 04             	mov    0x4(%edi),%eax
41e565:	51                   	push   %ecx
41e566:	89 48 14             	mov    %ecx,0x14(%eax)
41e569:	8b 47 04             	mov    0x4(%edi),%eax
41e56c:	ff 70 0c             	push   0xc(%eax)
41e56f:	ff 15 68 71 4a 00    	call   *0x4a7168
41e575:	8b 4f 04             	mov    0x4(%edi),%ecx
41e578:	89 41 18             	mov    %eax,0x18(%ecx)
41e57b:	8b 0d 34 58 4a 00    	mov    0x4a5834,%ecx
41e581:	85 c9                	test   %ecx,%ecx
41e583:	74 17                	je     0x41e59c
41e585:	8b 4f 04             	mov    0x4(%edi),%ecx
41e588:	8b 49 0c             	mov    0xc(%ecx),%ecx
41e58b:	e8 f9 ef 00 00       	call   0x42d589
41e590:	8b 4f 04             	mov    0x4(%edi),%ecx
41e593:	89 41 24             	mov    %eax,0x24(%ecx)
41e596:	8b 0d 34 58 4a 00    	mov    0x4a5834,%ecx
41e59c:	83 25 60 58 4a 00 00 	andl   $0x0,0x4a5860
41e5a3:	8b 57 04             	mov    0x4(%edi),%edx
41e5a6:	8b 42 24             	mov    0x24(%edx),%eax
41e5a9:	89 44 24 10          	mov    %eax,0x10(%esp)
41e5ad:	85 c0                	test   %eax,%eax
41e5af:	74 58                	je     0x41e609
41e5b1:	85 c9                	test   %ecx,%ecx
41e5b3:	74 2d                	je     0x41e5e2
41e5b5:	6a 00                	push   $0x0
41e5b7:	ff 70 04             	push   0x4(%eax)
41e5ba:	ff 72 0c             	push   0xc(%edx)
41e5bd:	ff 15 6c 71 4a 00    	call   *0x4a716c
41e5c3:	8b 4f 04             	mov    0x4(%edi),%ecx
41e5c6:	89 41 28             	mov    %eax,0x28(%ecx)
41e5c9:	8b 47 04             	mov    0x4(%edi),%eax
41e5cc:	ff 70 0c             	push   0xc(%eax)
41e5cf:	ff 15 70 71 4a 00    	call   *0x4a7170
41e5d5:	8b 47 04             	mov    0x4(%edi),%eax
41e5d8:	8b 40 24             	mov    0x24(%eax),%eax
41e5db:	a3 60 58 4a 00       	mov    %eax,0x4a5860
41e5e0:	eb 27                	jmp    0x41e609
41e5e2:	8b 00                	mov    (%eax),%eax
41e5e4:	6a 01                	push   $0x1
41e5e6:	8b 70 04             	mov    0x4(%eax),%esi
41e5e9:	8b ce                	mov    %esi,%ecx
41e5eb:	ff 15 2c 81 4a 00    	call   *0x4a812c
41e5f1:	8b 4c 24 14          	mov    0x14(%esp),%ecx
41e5f5:	ff d6                	call   *%esi
41e5f7:	8b 47 04             	mov    0x4(%edi),%eax
41e5fa:	8b 74 24 14          	mov    0x14(%esp),%esi
41e5fe:	83 60 24 00          	andl   $0x0,0x24(%eax)
41e602:	8b 47 04             	mov    0x4(%edi),%eax
41e605:	83 60 28 00          	andl   $0x0,0x28(%eax)
41e609:	8b 15 40 47 4a 00    	mov    0x4a4740,%edx
41e60f:	85 d2                	test   %edx,%edx
41e611:	74 15                	je     0x41e628
41e613:	8b cf                	mov    %edi,%ecx
41e615:	e8 02 fd ff ff       	call   0x41e31c
41e61a:	48                   	dec    %eax
41e61b:	8b ca                	mov    %edx,%ecx
41e61d:	f7 d8                	neg    %eax
41e61f:	1b c0                	sbb    %eax,%eax
41e621:	40                   	inc    %eax
41e622:	50                   	push   %eax
41e623:	e8 c7 6a 00 00       	call   0x4250ef
41e628:	85 f6                	test   %esi,%esi
41e62a:	74 09                	je     0x41e635
41e62c:	ff 77 30             	push   0x30(%edi)
41e62f:	ff 15 50 72 4a 00    	call   *0x4a7250
41e635:	8b cf                	mov    %edi,%ecx
41e637:	e8 e0 fc ff ff       	call   0x41e31c
41e63c:	83 f8 01             	cmp    $0x1,%eax
41e63f:	75 0e                	jne    0x41e64f
41e641:	50                   	push   %eax
41e642:	50                   	push   %eax
41e643:	68 5c 01 00 00       	push   $0x15c
41e648:	8b cf                	mov    %edi,%ecx
41e64a:	e8 66 0e 00 00       	call   0x41f4b5
41e64f:	8b cf                	mov    %edi,%ecx
41e651:	e8 c6 fc ff ff       	call   0x41e31c
41e656:	8d 7c 24 18          	lea    0x18(%esp),%edi
41e65a:	6a 13                	push   $0x13
41e65c:	8d 48 ff             	lea    -0x1(%eax),%ecx
41e65f:	f7 d9                	neg    %ecx
41e661:	1b c9                	sbb    %ecx,%ecx
41e663:	33 c0                	xor    %eax,%eax
41e665:	ab                   	stos   %eax,%es:(%edi)
41e666:	41                   	inc    %ecx
41e667:	ab                   	stos   %eax,%es:(%edi)
41e668:	ab                   	stos   %eax,%es:(%edi)
41e669:	ab                   	stos   %eax,%es:(%edi)
41e66a:	58                   	pop    %eax
41e66b:	66 89 44 24 18       	mov    %ax,0x18(%esp)
41e670:	89 4c 24 20          	mov    %ecx,0x20(%esp)
41e674:	ff 15 58 75 4a 00    	call   *0x4a7558
41e67a:	8d 4c 24 18          	lea    0x18(%esp),%ecx
41e67e:	51                   	push   %ecx
41e67f:	68 e4 f8 40 00       	push   $0x40f8e4
41e684:	8b 40 04             	mov    0x4(%eax),%eax
41e687:	68 c5 54 00 00       	push   $0x54c5
41e68c:	8b 80 c8 00 00 00    	mov    0xc8(%eax),%eax
41e692:	50                   	push   %eax
41e693:	8b 30                	mov    (%eax),%esi
41e695:	8b 4e 20             	mov    0x20(%esi),%ecx
41e698:	ff 15 2c 81 4a 00    	call   *0x4a812c
41e69e:	ff 56 20             	call   *0x20(%esi)
41e6a1:	ff 15 58 75 4a 00    	call   *0x4a7558
41e6a7:	be b8 f7 40 00       	mov    $0x40f7b8,%esi
41e6ac:	56                   	push   %esi
41e6ad:	8b 48 04             	mov    0x4(%eax),%ecx
41e6b0:	51                   	push   %ecx
41e6b1:	68 c6 54 00 00       	push   $0x54c6
41e6b6:	e8 fa 32 03 00       	call   0x4519b5
41e6bb:	ff 15 58 75 4a 00    	call   *0x4a7558
41e6c1:	56                   	push   %esi
41e6c2:	8b 48 04             	mov    0x4(%eax),%ecx
41e6c5:	51                   	push   %ecx
41e6c6:	68 c7 54 00 00       	push   $0x54c7
41e6cb:	e8 e5 32 03 00       	call   0x4519b5
41e6d0:	33 c0                	xor    %eax,%eax
41e6d2:	40                   	inc    %eax
41e6d3:	eb 1b                	jmp    0x41e6f0
41e6d5:	6a 01                	push   $0x1
41e6d7:	b9 e0 55 4a 00       	mov    $0x4a55e0,%ecx
41e6dc:	e8 98 f5 02 00       	call   0x44dc79
41e6e1:	85 f6                	test   %esi,%esi
41e6e3:	74 09                	je     0x41e6ee
41e6e5:	ff 77 30             	push   0x30(%edi)
41e6e8:	ff 15 50 72 4a 00    	call   *0x4a7250
41e6ee:	33 c0                	xor    %eax,%eax
41e6f0:	5f                   	pop    %edi
41e6f1:	5e                   	pop    %esi
41e6f2:	8b e5                	mov    %ebp,%esp
41e6f4:	5d                   	pop    %ebp
41e6f5:	c3                   	ret
41e6f6:	8b ff                	mov    %edi,%edi
41e6f8:	55                   	push   %ebp
41e6f9:	8b ec                	mov    %esp,%ebp
41e6fb:	83 e4 f8             	and    $0xfffffff8,%esp
41e6fe:	81 ec 84 04 00 00    	sub    $0x484,%esp
41e704:	a1 dc 38 4a 00       	mov    0x4a38dc,%eax
41e709:	33 c4                	xor    %esp,%eax
41e70b:	89 84 24 80 04 00 00 	mov    %eax,0x480(%esp)
41e712:	8b 45 0c             	mov    0xc(%ebp),%eax
41e715:	33 d2                	xor    %edx,%edx
41e717:	53                   	push   %ebx
41e718:	8b 5d 08             	mov    0x8(%ebp),%ebx
41e71b:	56                   	push   %esi
41e71c:	57                   	push   %edi
41e71d:	8b f9                	mov    %ecx,%edi
41e71f:	89 7c 24 2c          	mov    %edi,0x2c(%esp)
41e723:	85 c0                	test   %eax,%eax
41e725:	74 0e                	je     0x41e735
41e727:	83 f8 02             	cmp    $0x2,%eax
41e72a:	74 09                	je     0x41e735
41e72c:	89 54 24 10          	mov    %edx,0x10(%esp)
41e730:	83 f8 03             	cmp    $0x3,%eax
41e733:	75 08                	jne    0x41e73d
41e735:	c7 44 24 10 01 00 00 	movl   $0x1,0x10(%esp)
41e73c:	00
41e73d:	8b 47 30             	mov    0x30(%edi),%eax
41e740:	39 57 04             	cmp    %edx,0x4(%edi)
41e743:	0f 85 d4 00 00 00    	jne    0x41e81d
41e749:	85 c0                	test   %eax,%eax
41e74b:	0f 84 e7 00 00 00    	je     0x41e838
41e751:	50                   	push   %eax
41e752:	ff 15 54 72 4a 00    	call   *0x4a7254
41e758:	8b 7f 38             	mov    0x38(%edi),%edi
41e75b:	8b f0                	mov    %eax,%esi
41e75d:	83 64 24 1c 00       	andl   $0x0,0x1c(%esp)
41e762:	8b ce                	mov    %esi,%ecx
41e764:	89 74 24 28          	mov    %esi,0x28(%esp)
41e768:	89 7c 24 20          	mov    %edi,0x20(%esp)
41e76c:	89 7c 24 0c          	mov    %edi,0xc(%esp)
41e770:	89 74 24 14          	mov    %esi,0x14(%esp)
41e774:	e8 f9 f1 00 00       	call   0x42d972
41e779:	0f b7 c0             	movzwl %ax,%eax
41e77c:	03 06                	add    (%esi),%eax