41f5ec:	8d 71 02             	lea    0x2(%ecx),%esi
41f5ef:	66 8b 01             	mov    (%ecx),%ax
41f5f2:	83 c1 02             	add    $0x2,%ecx
41f5f5:	66 3b c7             	cmp    %di,%ax
41f5f8:	75 f5                	jne    0x41f5ef
41f5fa:	2b ce                	sub    %esi,%ecx
41f5fc:	d1 f9                	sar    $1,%ecx
41f5fe:	8d 14 4a             	lea    (%edx,%ecx,2),%edx
41f601:	83 c2 02             	add    $0x2,%edx
41f604:	66 39 3a             	cmp    %di,(%edx)
41f607:	75 e1                	jne    0x41f5ea
41f609:	5e                   	pop    %esi
41f60a:	8d 42 02             	lea    0x2(%edx),%eax
41f60d:	5f                   	pop    %edi
41f60e:	5d                   	pop    %ebp
41f60f:	c3                   	ret
41f610:	8b ff                	mov    %edi,%edi
41f612:	55                   	push   %ebp
41f613:	8b ec                	mov    %esp,%ebp
41f615:	51                   	push   %ecx
41f616:	53                   	push   %ebx
41f617:	56                   	push   %esi
41f618:	57                   	push   %edi
41f619:	ff 15 20 72 42 00    	call   *0x427220
41f61f:	8b f0                	mov    %eax,%esi
41f621:	33 ff                	xor    %edi,%edi
41f623:	85 f6                	test   %esi,%esi
41f625:	74 56                	je     0x41f67d
41f627:	56                   	push   %esi
41f628:	e8 ac ff ff ff       	call   0x41f5d9
41f62d:	59                   	pop    %ecx
41f62e:	57                   	push   %edi
41f62f:	57                   	push   %edi
41f630:	57                   	push   %edi
41f631:	8b d8                	mov    %eax,%ebx
41f633:	57                   	push   %edi
41f634:	2b de                	sub    %esi,%ebx
41f636:	d1 fb                	sar    $1,%ebx
41f638:	53                   	push   %ebx
41f639:	56                   	push   %esi
41f63a:	57                   	push   %edi
41f63b:	57                   	push   %edi
41f63c:	ff 15 2c 71 42 00    	call   *0x42712c
41f642:	89 45 fc             	mov    %eax,-0x4(%ebp)
41f645:	85 c0                	test   %eax,%eax
41f647:	74 34                	je     0x41f67d
41f649:	50                   	push   %eax
41f64a:	e8 fb 56 ff ff       	call   0x414d4a
41f64f:	8b f8                	mov    %eax,%edi
41f651:	59                   	pop    %ecx
41f652:	85 ff                	test   %edi,%edi
41f654:	74 1c                	je     0x41f672
41f656:	33 c0                	xor    %eax,%eax
41f658:	50                   	push   %eax
41f659:	50                   	push   %eax
41f65a:	ff 75 fc             	push   -0x4(%ebp)
41f65d:	57                   	push   %edi
41f65e:	53                   	push   %ebx
41f65f:	56                   	push   %esi
41f660:	50                   	push   %eax
41f661:	50                   	push   %eax
41f662:	ff 15 2c 71 42 00    	call   *0x42712c
41f668:	85 c0                	test   %eax,%eax
41f66a:	74 06                	je     0x41f672
41f66c:	8b df                	mov    %edi,%ebx
41f66e:	33 ff                	xor    %edi,%edi
41f670:	eb 02                	jmp    0x41f674
41f672:	33 db                	xor    %ebx,%ebx
41f674:	57                   	push   %edi
41f675:	e8 96 56 ff ff       	call   0x414d10
41f67a:	59                   	pop    %ecx
41f67b:	eb 02                	jmp    0x41f67f
41f67d:	8b df                	mov    %edi,%ebx
41f67f:	85 f6                	test   %esi,%esi
41f681:	74 07                	je     0x41f68a
41f683:	56                   	push   %esi
41f684:	ff 15 00 71 42 00    	call   *0x427100
41f68a:	5f                   	pop    %edi
41f68b:	5e                   	pop    %esi
41f68c:	8b c3                	mov    %ebx,%eax
41f68e:	5b                   	pop    %ebx
41f68f:	8b e5                	mov    %ebp,%esp
41f691:	5d                   	pop    %ebp
41f692:	c3                   	ret
41f693:	8b ff                	mov    %edi,%edi
41f695:	55                   	push   %ebp
41f696:	8b ec                	mov    %esp,%ebp
41f698:	5d                   	pop    %ebp
41f699:	e9 00 00 00 00       	jmp    0x41f69e
41f69e:	8b ff                	mov    %edi,%edi
41f6a0:	55                   	push   %ebp
41f6a1:	8b ec                	mov    %esp,%ebp
41f6a3:	56                   	push   %esi
41f6a4:	8b 75 0c             	mov    0xc(%ebp),%esi
41f6a7:	85 f6                	test   %esi,%esi
41f6a9:	74 1b                	je     0x41f6c6
41f6ab:	6a e0                	push   $0xffffffe0
41f6ad:	33 d2                	xor    %edx,%edx
41f6af:	58                   	pop    %eax
41f6b0:	f7 f6                	div    %esi
41f6b2:	3b 45 10             	cmp    0x10(%ebp),%eax
41f6b5:	73 0f                	jae    0x41f6c6
41f6b7:	e8 af 53 ff ff       	call   0x414a6b
41f6bc:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
41f6c2:	33 c0                	xor    %eax,%eax
41f6c4:	eb 42                	jmp    0x41f708
41f6c6:	53                   	push   %ebx
41f6c7:	8b 5d 08             	mov    0x8(%ebp),%ebx
41f6ca:	57                   	push   %edi
41f6cb:	85 db                	test   %ebx,%ebx
41f6cd:	74 0b                	je     0x41f6da
41f6cf:	53                   	push   %ebx
41f6d0:	e8 6e 5e 00 00       	call   0x425543
41f6d5:	59                   	pop    %ecx
41f6d6:	8b f8                	mov    %eax,%edi
41f6d8:	eb 02                	jmp    0x41f6dc
41f6da:	33 ff                	xor    %edi,%edi
41f6dc:	0f af 75 10          	imul   0x10(%ebp),%esi
41f6e0:	56                   	push   %esi
41f6e1:	53                   	push   %ebx
41f6e2:	e8 d2 59 ff ff       	call   0x4150b9
41f6e7:	8b d8                	mov    %eax,%ebx
41f6e9:	59                   	pop    %ecx
41f6ea:	59                   	pop    %ecx
41f6eb:	85 db                	test   %ebx,%ebx
41f6ed:	74 15                	je     0x41f704
41f6ef:	3b fe                	cmp    %esi,%edi
41f6f1:	73 11                	jae    0x41f704
41f6f3:	2b f7                	sub    %edi,%esi
41f6f5:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
41f6f8:	56                   	push   %esi
41f6f9:	6a 00                	push   $0x0
41f6fb:	50                   	push   %eax
41f6fc:	e8 df 92 fe ff       	call   0x4089e0
41f701:	83 c4 0c             	add    $0xc,%esp
41f704:	5f                   	pop    %edi
41f705:	8b c3                	mov    %ebx,%eax
41f707:	5b                   	pop    %ebx
41f708:	5e                   	pop    %esi
41f709:	5d                   	pop    %ebp
41f70a:	c3                   	ret
41f70b:	8b ff                	mov    %edi,%edi
41f70d:	55                   	push   %ebp
41f70e:	8b ec                	mov    %esp,%ebp
41f710:	51                   	push   %ecx
41f711:	a1 28 ba 43 00       	mov    0x43ba28,%eax
41f716:	33 c5                	xor    %ebp,%eax
41f718:	89 45 fc             	mov    %eax,-0x4(%ebp)
41f71b:	57                   	push   %edi
41f71c:	8b 7d 08             	mov    0x8(%ebp),%edi
41f71f:	3b 7d 0c             	cmp    0xc(%ebp),%edi
41f722:	75 04                	jne    0x41f728
41f724:	b0 01                	mov    $0x1,%al
41f726:	eb 57                	jmp    0x41f77f
41f728:	56                   	push   %esi
41f729:	8b f7                	mov    %edi,%esi
41f72b:	53                   	push   %ebx
41f72c:	8b 1e                	mov    (%esi),%ebx
41f72e:	85 db                	test   %ebx,%ebx
41f730:	74 0e                	je     0x41f740
41f732:	8b cb                	mov    %ebx,%ecx
41f734:	ff 15 50 72 42 00    	call   *0x427250
41f73a:	ff d3                	call   *%ebx
41f73c:	84 c0                	test   %al,%al
41f73e:	74 08                	je     0x41f748
41f740:	83 c6 08             	add    $0x8,%esi
41f743:	3b 75 0c             	cmp    0xc(%ebp),%esi
41f746:	75 e4                	jne    0x41f72c
41f748:	3b 75 0c             	cmp    0xc(%ebp),%esi
41f74b:	75 04                	jne    0x41f751
41f74d:	b0 01                	mov    $0x1,%al
41f74f:	eb 2c                	jmp    0x41f77d
41f751:	3b f7                	cmp    %edi,%esi
41f753:	74 26                	je     0x41f77b
41f755:	83 c6 fc             	add    $0xfffffffc,%esi
41f758:	83 7e fc 00          	cmpl   $0x0,-0x4(%esi)
41f75c:	74 13                	je     0x41f771
41f75e:	8b 1e                	mov    (%esi),%ebx
41f760:	85 db                	test   %ebx,%ebx
41f762:	74 0d                	je     0x41f771
41f764:	6a 00                	push   $0x0
41f766:	8b cb                	mov    %ebx,%ecx
41f768:	ff 15 50 72 42 00    	call   *0x427250
41f76e:	ff d3                	call   *%ebx
41f770:	59                   	pop    %ecx
41f771:	83 ee 08             	sub    $0x8,%esi
41f774:	8d 46 04             	lea    0x4(%esi),%eax
41f777:	3b c7                	cmp    %edi,%eax
41f779:	75 dd                	jne    0x41f758
41f77b:	32 c0                	xor    %al,%al
41f77d:	5b                   	pop    %ebx
41f77e:	5e                   	pop    %esi
41f77f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41f782:	33 cd                	xor    %ebp,%ecx
41f784:	5f                   	pop    %edi
41f785:	e8 d6 78 fe ff       	call   0x407060
41f78a:	8b e5                	mov    %ebp,%esp
41f78c:	5d                   	pop    %ebp
41f78d:	c3                   	ret
41f78e:	8b ff                	mov    %edi,%edi
41f790:	55                   	push   %ebp
41f791:	8b ec                	mov    %esp,%ebp
41f793:	51                   	push   %ecx
41f794:	a1 28 ba 43 00       	mov    0x43ba28,%eax
41f799:	33 c5                	xor    %ebp,%eax
41f79b:	89 45 fc             	mov    %eax,-0x4(%ebp)
41f79e:	56                   	push   %esi
41f79f:	8b 75 0c             	mov    0xc(%ebp),%esi
41f7a2:	39 75 08             	cmp    %esi,0x8(%ebp)
41f7a5:	74 23                	je     0x41f7ca
41f7a7:	83 c6 fc             	add    $0xfffffffc,%esi
41f7aa:	57                   	push   %edi
41f7ab:	8b 3e                	mov    (%esi),%edi
41f7ad:	85 ff                	test   %edi,%edi
41f7af:	74 0d                	je     0x41f7be
41f7b1:	6a 00                	push   $0x0
41f7b3:	8b cf                	mov    %edi,%ecx
41f7b5:	ff 15 50 72 42 00    	call   *0x427250
41f7bb:	ff d7                	call   *%edi
41f7bd:	59                   	pop    %ecx
41f7be:	83 ee 08             	sub    $0x8,%esi
41f7c1:	8d 46 04             	lea    0x4(%esi),%eax
41f7c4:	3b 45 08             	cmp    0x8(%ebp),%eax
41f7c7:	75 e2                	jne    0x41f7ab
41f7c9:	5f                   	pop    %edi
41f7ca:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41f7cd:	b0 01                	mov    $0x1,%al
41f7cf:	33 cd                	xor    %ebp,%ecx
41f7d1:	5e                   	pop    %esi
41f7d2:	e8 89 78 fe ff       	call   0x407060
41f7d7:	8b e5                	mov    %ebp,%esp
41f7d9:	5d                   	pop    %ebp
41f7da:	c3                   	ret
41f7db:	8b ff                	mov    %edi,%edi
41f7dd:	55                   	push   %ebp
41f7de:	8b ec                	mov    %esp,%ebp
41f7e0:	53                   	push   %ebx
41f7e1:	56                   	push   %esi
41f7e2:	57                   	push   %edi
41f7e3:	8b 7d 08             	mov    0x8(%ebp),%edi
41f7e6:	85 ff                	test   %edi,%edi
41f7e8:	74 13                	je     0x41f7fd
41f7ea:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41f7ed:	85 c9                	test   %ecx,%ecx
41f7ef:	74 0c                	je     0x41f7fd
41f7f1:	8b 5d 10             	mov    0x10(%ebp),%ebx
41f7f4:	85 db                	test   %ebx,%ebx
41f7f6:	75 1b                	jne    0x41f813
41f7f8:	33 c0                	xor    %eax,%eax
41f7fa:	66 89 07             	mov    %ax,(%edi)
41f7fd:	e8 69 52 ff ff       	call   0x414a6b
41f802:	6a 16                	push   $0x16
41f804:	5e                   	pop    %esi
41f805:	89 30                	mov    %esi,(%eax)
41f807:	e8 d6 c4 fe ff       	call   0x40bce2
41f80c:	5f                   	pop    %edi
41f80d:	8b c6                	mov    %esi,%eax
41f80f:	5e                   	pop    %esi
41f810:	5b                   	pop    %ebx
41f811:	5d                   	pop    %ebp
41f812:	c3                   	ret
41f813:	8b d7                	mov    %edi,%edx
41f815:	33 f6                	xor    %esi,%esi
41f817:	66 39 32             	cmp    %si,(%edx)
41f81a:	74 08                	je     0x41f824
41f81c:	83 c2 02             	add    $0x2,%edx
41f81f:	83 e9 01             	sub    $0x1,%ecx
41f822:	75 f3                	jne    0x41f817
41f824:	85 c9                	test   %ecx,%ecx
41f826:	74 d0                	je     0x41f7f8
41f828:	2b da                	sub    %edx,%ebx
41f82a:	0f b7 04 13          	movzwl (%ebx,%edx,1),%eax
41f82e:	66 89 02             	mov    %ax,(%edx)
41f831:	8d 52 02             	lea    0x2(%edx),%edx
41f834:	66 85 c0             	test   %ax,%ax
41f837:	74 05                	je     0x41f83e
41f839:	83 e9 01             	sub    $0x1,%ecx
41f83c:	75 ec                	jne    0x41f82a
41f83e:	85 c9                	test   %ecx,%ecx
41f840:	75 ca                	jne    0x41f80c
41f842:	33 c0                	xor    %eax,%eax
41f844:	66 89 07             	mov    %ax,(%edi)
41f847:	e8 1f 52 ff ff       	call   0x414a6b
41f84c:	6a 22                	push   $0x22
41f84e:	eb b4                	jmp    0x41f804
41f850:	8b ff                	mov    %edi,%edi
41f852:	55                   	push   %ebp
41f853:	8b ec                	mov    %esp,%ebp
41f855:	51                   	push   %ecx
41f856:	8b 55 14             	mov    0x14(%ebp),%edx
41f859:	8b 4d 08             	mov    0x8(%ebp),%ecx
41f85c:	56                   	push   %esi
41f85d:	85 d2                	test   %edx,%edx
41f85f:	75 0d                	jne    0x41f86e
41f861:	85 c9                	test   %ecx,%ecx
41f863:	75 0d                	jne    0x41f872
41f865:	39 4d 0c             	cmp    %ecx,0xc(%ebp)
41f868:	75 26                	jne    0x41f890
41f86a:	33 c0                	xor    %eax,%eax
41f86c:	eb 33                	jmp    0x41f8a1
41f86e:	85 c9                	test   %ecx,%ecx
41f870:	74 1e                	je     0x41f890
41f872:	8b 45 0c             	mov    0xc(%ebp),%eax
41f875:	85 c0                	test   %eax,%eax
41f877:	74 17                	je     0x41f890
41f879:	85 d2                	test   %edx,%edx
41f87b:	75 07                	jne    0x41f884
41f87d:	33 c0                	xor    %eax,%eax
41f87f:	66 89 01             	mov    %ax,(%ecx)
41f882:	eb e6                	jmp    0x41f86a
41f884:	8b 75 10             	mov    0x10(%ebp),%esi
41f887:	85 f6                	test   %esi,%esi
41f889:	75 1b                	jne    0x41f8a6
41f88b:	33 c0                	xor    %eax,%eax
41f88d:	66 89 01             	mov    %ax,(%ecx)
41f890:	e8 d6 51 ff ff       	call   0x414a6b
41f895:	6a 16                	push   $0x16
41f897:	5e                   	pop    %esi
41f898:	89 30                	mov    %esi,(%eax)
41f89a:	e8 43 c4 fe ff       	call   0x40bce2
41f89f:	8b c6                	mov    %esi,%eax
41f8a1:	5e                   	pop    %esi
41f8a2:	8b e5                	mov    %ebp,%esp
41f8a4:	5d                   	pop    %ebp
41f8a5:	c3                   	ret
41f8a6:	53                   	push   %ebx
41f8a7:	2b f1                	sub    %ecx,%esi
41f8a9:	8b d8                	mov    %eax,%ebx
41f8ab:	57                   	push   %edi
41f8ac:	8b f9                	mov    %ecx,%edi
41f8ae:	83 fa ff             	cmp    $0xffffffff,%edx
41f8b1:	75 16                	jne    0x41f8c9
41f8b3:	0f b7 04 3e          	movzwl (%esi,%edi,1),%eax
41f8b7:	66 89 07             	mov    %ax,(%edi)
41f8ba:	8d 7f 02             	lea    0x2(%edi),%edi
41f8bd:	66 85 c0             	test   %ax,%ax
41f8c0:	74 2c                	je     0x41f8ee
41f8c2:	83 eb 01             	sub    $0x1,%ebx
41f8c5:	75 ec                	jne    0x41f8b3
41f8c7:	eb 25                	jmp    0x41f8ee
41f8c9:	0f b7 04 3e          	movzwl (%esi,%edi,1),%eax
41f8cd:	66 89 07             	mov    %ax,(%edi)
41f8d0:	8d 7f 02             	lea    0x2(%edi),%edi
41f8d3:	66 85 c0             	test   %ax,%ax
41f8d6:	74 0a                	je     0x41f8e2
41f8d8:	83 eb 01             	sub    $0x1,%ebx
41f8db:	74 05                	je     0x41f8e2
41f8dd:	83 ea 01             	sub    $0x1,%edx
41f8e0:	75 e7                	jne    0x41f8c9
41f8e2:	85 d2                	test   %edx,%edx