41c5e5:	8b 5f 18             	mov    0x18(%edi),%ebx
41c5e8:	f7 75 ec             	divl   -0x14(%ebp)
41c5eb:	d1 eb                	shr    $1,%ebx
41c5ed:	3b c3                	cmp    %ebx,%eax
41c5ef:	73 0c                	jae    0x41c5fd
41c5f1:	8b 47 18             	mov    0x18(%edi),%eax
41c5f4:	2b cb                	sub    %ebx,%ecx
41c5f6:	3b c1                	cmp    %ecx,%eax
41c5f8:	77 03                	ja     0x41c5fd
41c5fa:	8d 34 03             	lea    (%ebx,%eax,1),%esi
41c5fd:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41c601:	8d 46 01             	lea    0x1(%esi),%eax
41c604:	50                   	push   %eax
41c605:	e8 68 ff ff ff       	call   0x41c572
41c60a:	8b c8                	mov    %eax,%ecx
41c60c:	89 45 ec             	mov    %eax,-0x14(%ebp)
41c60f:	eb 29                	jmp    0x41c63a
41c611:	8b 45 08             	mov    0x8(%ebp),%eax
41c614:	89 45 ec             	mov    %eax,-0x14(%ebp)
41c617:	40                   	inc    %eax
41c618:	89 65 f0             	mov    %esp,-0x10(%ebp)
41c61b:	50                   	push   %eax
41c61c:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
41c620:	e8 4d ff ff ff       	call   0x41c572
41c625:	89 45 e4             	mov    %eax,-0x1c(%ebp)
41c628:	b8 2e c6 41 00       	mov    $0x41c62e,%eax
41c62d:	c3                   	ret
41c62e:	8b 75 ec             	mov    -0x14(%ebp),%esi
41c631:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
41c634:	8b 7d e8             	mov    -0x18(%ebp),%edi
41c637:	89 4d ec             	mov    %ecx,-0x14(%ebp)
41c63a:	8b 5d 0c             	mov    0xc(%ebp),%ebx
41c63d:	85 db                	test   %ebx,%ebx
41c63f:	74 22                	je     0x41c663
41c641:	83 7f 18 08          	cmpl   $0x8,0x18(%edi)
41c645:	8d 57 04             	lea    0x4(%edi),%edx
41c648:	72 02                	jb     0x41c64c
41c64a:	8b 12                	mov    (%edx),%edx
41c64c:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
41c64f:	50                   	push   %eax
41c650:	52                   	push   %edx
41c651:	8d 04 75 02 00 00 00 	lea    0x2(,%esi,2),%eax
41c658:	50                   	push   %eax
41c659:	51                   	push   %ecx
41c65a:	ff 15 f0 80 4a 00    	call   *0x4a80f0
41c660:	83 c4 10             	add    $0x10,%esp
41c663:	6a 00                	push   $0x0
41c665:	6a 01                	push   $0x1
41c667:	8b cf                	mov    %edi,%ecx
41c669:	e8 56 01 00 00       	call   0x41c7c4
41c66e:	8b 45 ec             	mov    -0x14(%ebp),%eax
41c671:	8b cf                	mov    %edi,%ecx
41c673:	53                   	push   %ebx
41c674:	89 47 04             	mov    %eax,0x4(%edi)
41c677:	89 77 18             	mov    %esi,0x18(%edi)
41c67a:	e8 25 01 00 00       	call   0x41c7a4
41c67f:	e8 1d 3e 07 00       	call   0x4904a1
41c684:	c2 08 00             	ret    $0x8
41c687:	8b 4d e8             	mov    -0x18(%ebp),%ecx
41c68a:	6a 00                	push   $0x0
41c68c:	6a 01                	push   $0x1
41c68e:	e8 31 01 00 00       	call   0x41c7c4
41c693:	6a 00                	push   $0x0
41c695:	6a 00                	push   $0x0
41c697:	e8 ff 3d 07 00       	call   0x49049b
41c69c:	cc                   	int3
41c69d:	8b ff                	mov    %edi,%edi
41c69f:	55                   	push   %ebp
41c6a0:	8b ec                	mov    %esp,%ebp
41c6a2:	56                   	push   %esi
41c6a3:	8b 75 08             	mov    0x8(%ebp),%esi
41c6a6:	57                   	push   %edi
41c6a7:	8b f9                	mov    %ecx,%edi
41c6a9:	81 fe fe ff ff 7f    	cmp    $0x7ffffffe,%esi
41c6af:	76 05                	jbe    0x41c6b6
41c6b1:	e8 9c 13 07 00       	call   0x48da52
41c6b6:	8b 47 18             	mov    0x18(%edi),%eax
41c6b9:	3b c6                	cmp    %esi,%eax
41c6bb:	73 0d                	jae    0x41c6ca
41c6bd:	ff 77 14             	push   0x14(%edi)
41c6c0:	8b cf                	mov    %edi,%ecx
41c6c2:	56                   	push   %esi
41c6c3:	e8 ed fe ff ff       	call   0x41c5b5
41c6c8:	eb 36                	jmp    0x41c700
41c6ca:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
41c6ce:	74 1a                	je     0x41c6ea
41c6d0:	83 fe 08             	cmp    $0x8,%esi
41c6d3:	73 15                	jae    0x41c6ea
41c6d5:	8b 47 14             	mov    0x14(%edi),%eax
41c6d8:	3b f0                	cmp    %eax,%esi
41c6da:	73 02                	jae    0x41c6de
41c6dc:	8b c6                	mov    %esi,%eax
41c6de:	50                   	push   %eax
41c6df:	6a 01                	push   $0x1
41c6e1:	8b cf                	mov    %edi,%ecx
41c6e3:	e8 dc 00 00 00       	call   0x41c7c4
41c6e8:	eb 16                	jmp    0x41c700
41c6ea:	85 f6                	test   %esi,%esi
41c6ec:	75 14                	jne    0x41c702
41c6ee:	21 77 14             	and    %esi,0x14(%edi)
41c6f1:	83 c7 04             	add    $0x4,%edi
41c6f4:	83 f8 08             	cmp    $0x8,%eax
41c6f7:	72 02                	jb     0x41c6fb
41c6f9:	8b 3f                	mov    (%edi),%edi
41c6fb:	33 c0                	xor    %eax,%eax
41c6fd:	66 89 07             	mov    %ax,(%edi)
41c700:	85 f6                	test   %esi,%esi
41c702:	5f                   	pop    %edi
41c703:	0f 95 c0             	setne  %al
41c706:	5e                   	pop    %esi
41c707:	5d                   	pop    %ebp
41c708:	c2 08 00             	ret    $0x8
41c70b:	8b ff                	mov    %edi,%edi
41c70d:	55                   	push   %ebp
41c70e:	8b ec                	mov    %esp,%ebp
41c710:	8b 45 0c             	mov    0xc(%ebp),%eax
41c713:	53                   	push   %ebx
41c714:	8b 5d 08             	mov    0x8(%ebp),%ebx
41c717:	56                   	push   %esi
41c718:	57                   	push   %edi
41c719:	8b f9                	mov    %ecx,%edi
41c71b:	8b 73 14             	mov    0x14(%ebx),%esi
41c71e:	3b f0                	cmp    %eax,%esi
41c720:	73 0b                	jae    0x41c72d
41c722:	e8 63 13 07 00       	call   0x48da8a
41c727:	8b 73 14             	mov    0x14(%ebx),%esi
41c72a:	8b 45 0c             	mov    0xc(%ebp),%eax
41c72d:	2b f0                	sub    %eax,%esi
41c72f:	39 75 10             	cmp    %esi,0x10(%ebp)
41c732:	73 03                	jae    0x41c737
41c734:	8b 75 10             	mov    0x10(%ebp),%esi
41c737:	8b cf                	mov    %edi,%ecx
41c739:	3b fb                	cmp    %ebx,%edi
41c73b:	75 19                	jne    0x41c756
41c73d:	6a ff                	push   $0xffffffff
41c73f:	03 c6                	add    %esi,%eax
41c741:	50                   	push   %eax
41c742:	e8 03 fd ff ff       	call   0x41c44a
41c747:	8b 45 0c             	mov    0xc(%ebp),%eax
41c74a:	8b cf                	mov    %edi,%ecx
41c74c:	50                   	push   %eax
41c74d:	6a 00                	push   $0x0
41c74f:	e8 f6 fc ff ff       	call   0x41c44a
41c754:	eb 45                	jmp    0x41c79b
41c756:	6a 00                	push   $0x0
41c758:	56                   	push   %esi
41c759:	e8 3f ff ff ff       	call   0x41c69d
41c75e:	84 c0                	test   %al,%al
41c760:	74 39                	je     0x41c79b
41c762:	83 7b 18 08          	cmpl   $0x8,0x18(%ebx)
41c766:	8d 4b 04             	lea    0x4(%ebx),%ecx
41c769:	72 02                	jb     0x41c76d
41c76b:	8b 09                	mov    (%ecx),%ecx
41c76d:	8b 5f 18             	mov    0x18(%edi),%ebx
41c770:	8d 57 04             	lea    0x4(%edi),%edx
41c773:	83 fb 08             	cmp    $0x8,%ebx
41c776:	72 02                	jb     0x41c77a
41c778:	8b 12                	mov    (%edx),%edx
41c77a:	8d 04 36             	lea    (%esi,%esi,1),%eax
41c77d:	50                   	push   %eax
41c77e:	8b 45 0c             	mov    0xc(%ebp),%eax
41c781:	8d 04 41             	lea    (%ecx,%eax,2),%eax
41c784:	50                   	push   %eax
41c785:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
41c788:	50                   	push   %eax
41c789:	52                   	push   %edx
41c78a:	ff 15 f0 80 4a 00    	call   *0x4a80f0
41c790:	83 c4 10             	add    $0x10,%esp
41c793:	8b cf                	mov    %edi,%ecx
41c795:	56                   	push   %esi
41c796:	e8 09 00 00 00       	call   0x41c7a4
41c79b:	8b c7                	mov    %edi,%eax
41c79d:	5f                   	pop    %edi
41c79e:	5e                   	pop    %esi
41c79f:	5b                   	pop    %ebx
41c7a0:	5d                   	pop    %ebp
41c7a1:	c2 0c 00             	ret    $0xc
41c7a4:	8b ff                	mov    %edi,%edi
41c7a6:	55                   	push   %ebp
41c7a7:	8b ec                	mov    %esp,%ebp
41c7a9:	83 79 18 08          	cmpl   $0x8,0x18(%ecx)
41c7ad:	8d 41 04             	lea    0x4(%ecx),%eax
41c7b0:	8b 55 08             	mov    0x8(%ebp),%edx
41c7b3:	89 51 14             	mov    %edx,0x14(%ecx)
41c7b6:	72 02                	jb     0x41c7ba
41c7b8:	8b 00                	mov    (%eax),%eax
41c7ba:	33 c9                	xor    %ecx,%ecx
41c7bc:	66 89 0c 50          	mov    %cx,(%eax,%edx,2)
41c7c0:	5d                   	pop    %ebp
41c7c1:	c2 04 00             	ret    $0x4
41c7c4:	8b ff                	mov    %edi,%edi
41c7c6:	55                   	push   %ebp
41c7c7:	8b ec                	mov    %esp,%ebp
41c7c9:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
41c7cd:	56                   	push   %esi
41c7ce:	57                   	push   %edi
41c7cf:	8b 7d 0c             	mov    0xc(%ebp),%edi
41c7d2:	8b f1                	mov    %ecx,%esi
41c7d4:	74 2a                	je     0x41c800
41c7d6:	83 7e 18 08          	cmpl   $0x8,0x18(%esi)
41c7da:	72 24                	jb     0x41c800
41c7dc:	8d 4e 04             	lea    0x4(%esi),%ecx
41c7df:	53                   	push   %ebx
41c7e0:	8b 19                	mov    (%ecx),%ebx
41c7e2:	85 ff                	test   %edi,%edi
41c7e4:	74 11                	je     0x41c7f7
41c7e6:	8d 04 3f             	lea    (%edi,%edi,1),%eax
41c7e9:	50                   	push   %eax
41c7ea:	53                   	push   %ebx
41c7eb:	6a 10                	push   $0x10
41c7ed:	51                   	push   %ecx
41c7ee:	ff 15 f0 80 4a 00    	call   *0x4a80f0
41c7f4:	83 c4 10             	add    $0x10,%esp
41c7f7:	53                   	push   %ebx
41c7f8:	ff 15 10 74 4a 00    	call   *0x4a7410
41c7fe:	59                   	pop    %ecx
41c7ff:	5b                   	pop    %ebx
41c800:	57                   	push   %edi
41c801:	8b ce                	mov    %esi,%ecx
41c803:	c7 46 18 07 00 00 00 	movl   $0x7,0x18(%esi)
41c80a:	e8 95 ff ff ff       	call   0x41c7a4
41c80f:	5f                   	pop    %edi
41c810:	5e                   	pop    %esi
41c811:	5d                   	pop    %ebp
41c812:	c2 08 00             	ret    $0x8
41c815:	cc                   	int3
41c816:	cc                   	int3
41c817:	cc                   	int3
41c818:	cc                   	int3
41c819:	cc                   	int3
41c81a:	cc                   	int3
41c81b:	cc                   	int3
41c81c:	cc                   	int3
41c81d:	cc                   	int3
41c81e:	cc                   	int3
41c81f:	cc                   	int3
41c820:	6a 00                	push   $0x0
41c822:	6a 01                	push   $0x1
41c824:	e8 9b ff ff ff       	call   0x41c7c4
41c829:	c3                   	ret
41c82a:	cc                   	int3
41c82b:	cc                   	int3
41c82c:	cc                   	int3
41c82d:	cc                   	int3
41c82e:	cc                   	int3
41c82f:	cc                   	int3
41c830:	b8 c0 55 40 00       	mov    $0x4055c0,%eax
41c835:	c3                   	ret
41c836:	cc                   	int3
41c837:	cc                   	int3
41c838:	cc                   	int3
41c839:	cc                   	int3
41c83a:	cc                   	int3
41c83b:	cc                   	int3
41c83c:	cc                   	int3
41c83d:	cc                   	int3
41c83e:	cc                   	int3
41c83f:	cc                   	int3
41c840:	b8 b0 13 40 00       	mov    $0x4013b0,%eax
41c845:	c3                   	ret
41c846:	cc                   	int3
41c847:	cc                   	int3
41c848:	cc                   	int3
41c849:	cc                   	int3
41c84a:	cc                   	int3
41c84b:	cc                   	int3
41c84c:	cc                   	int3
41c84d:	cc                   	int3
41c84e:	cc                   	int3
41c84f:	cc                   	int3
41c850:	b8 b8 55 40 00       	mov    $0x4055b8,%eax
41c855:	c3                   	ret
41c856:	cc                   	int3
41c857:	cc                   	int3
41c858:	cc                   	int3
41c859:	cc                   	int3
41c85a:	cc                   	int3
41c85b:	cc                   	int3
41c85c:	cc                   	int3
41c85d:	cc                   	int3
41c85e:	cc                   	int3
41c85f:	cc                   	int3
41c860:	b8 a8 13 40 00       	mov    $0x4013a8,%eax
41c865:	c3                   	ret
41c866:	6a 04                	push   $0x4
41c868:	b8 16 15 49 00       	mov    $0x491516,%eax
41c86d:	e8 61 3c 07 00       	call   0x4904d3
41c872:	8b f1                	mov    %ecx,%esi
41c874:	89 75 f0             	mov    %esi,-0x10(%ebp)
41c877:	ff 15 28 73 4a 00    	call   *0x4a7328
41c87d:	33 ff                	xor    %edi,%edi
41c87f:	89 be 84 00 00 00    	mov    %edi,0x84(%esi)
41c885:	89 be 88 00 00 00    	mov    %edi,0x88(%esi)
41c88b:	89 be 8c 00 00 00    	mov    %edi,0x8c(%esi)
41c891:	89 be 94 00 00 00    	mov    %edi,0x94(%esi)
41c897:	89 be 98 00 00 00    	mov    %edi,0x98(%esi)
41c89d:	89 be 9c 00 00 00    	mov    %edi,0x9c(%esi)
41c8a3:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
41c8aa:	8d 8e a4 00 00 00    	lea    0xa4(%esi),%ecx
41c8b0:	c7 86 a0 00 00 00 1c 	movl   $0x40121c,0xa0(%esi)
41c8b7:	12 40 00
41c8ba:	c7 06 3c 12 40 00    	movl   $0x40123c,(%esi)
41c8c0:	c7 86 a0 00 00 00 2c 	movl   $0x40122c,0xa0(%esi)
41c8c7:	12 40 00
41c8ca:	ff 15 20 74 4a 00    	call   *0x4a7420
41c8d0:	8d 8e a8 00 00 00    	lea    0xa8(%esi),%ecx
41c8d6:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
41c8da:	ff 15 20 74 4a 00    	call   *0x4a7420
41c8e0:	8d 8e ac 00 00 00    	lea    0xac(%esi),%ecx
41c8e6:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
41c8ea:	ff 15 20 74 4a 00    	call   *0x4a7420
41c8f0:	8d 8e b0 00 00 00    	lea    0xb0(%esi),%ecx
41c8f6:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
41c8fa:	ff 15 20 74 4a 00    	call   *0x4a7420
41c900:	8d 8e b4 00 00 00    	lea    0xb4(%esi),%ecx
41c906:	c6 45 fc 06          	movb   $0x6,-0x4(%ebp)
41c90a:	ff 15 20 74 4a 00    	call   *0x4a7420
41c910:	8d 8e b8 00 00 00    	lea    0xb8(%esi),%ecx
41c916:	c6 45 fc 07          	movb   $0x7,-0x4(%ebp)
41c91a:	e8 47 ec 04 00       	call   0x46b566
41c91f:	b8 00 00 00 80       	mov    $0x80000000,%eax
41c924:	89 be 70 03 00 00    	mov    %edi,0x370(%esi)
41c92a:	89 86 94 03 00 00    	mov    %eax,0x394(%esi)
41c930:	89 86 90 03 00 00    	mov    %eax,0x390(%esi)
41c936:	8b c6                	mov    %esi,%eax
41c938:	89 be 74 03 00 00    	mov    %edi,0x374(%esi)
41c93e:	89 be 78 03 00 00    	mov    %edi,0x378(%esi)
41c944:	89 be 7c 03 00 00    	mov    %edi,0x37c(%esi)
41c94a:	89 be 84 03 00 00    	mov    %edi,0x384(%esi)
41c950:	89 be 88 03 00 00    	mov    %edi,0x388(%esi)
41c956:	89 be 8c 03 00 00    	mov    %edi,0x38c(%esi)
41c95c:	c6 86 80 03 00 00 01 	movb   $0x1,0x380(%esi)
41c963:	89 be 9c 03 00 00    	mov    %edi,0x39c(%esi)
41c969:	89 be 98 03 00 00    	mov    %edi,0x398(%esi)
41c96f:	e8 2d 3b 07 00       	call   0x4904a1
41c974:	c3                   	ret
41c975:	cc                   	int3
41c976:	cc                   	int3
41c977:	cc                   	int3
41c978:	cc                   	int3
41c979:	cc                   	int3
41c97a:	cc                   	int3
41c97b:	cc                   	int3
41c97c:	cc                   	int3
41c97d:	cc                   	int3
41c97e:	cc                   	int3
41c97f:	cc                   	int3
41c980:	8b ff                	mov    %edi,%edi
41c982:	55                   	push   %ebp
41c983:	8b ec                	mov    %esp,%ebp