41e5b9:	56                   	push   %esi
41e5ba:	57                   	push   %edi
41e5bb:	51                   	push   %ecx
41e5bc:	8b f9                	mov    %ecx,%edi
41e5be:	8b f2                	mov    %edx,%esi
41e5c0:	8b d8                	mov    %eax,%ebx
41e5c2:	33 c0                	xor    %eax,%eax
41e5c4:	89 04 24             	mov    %eax,(%esp)
41e5c7:	85 db                	test   %ebx,%ebx
41e5c9:	74 36                	je     0x41e601
41e5cb:	54                   	push   %esp
41e5cc:	6a 04                	push   $0x4
41e5ce:	53                   	push   %ebx
41e5cf:	e8 0c 7d fe ff       	call   0x4062e0
41e5d4:	85 c0                	test   %eax,%eax
41e5d6:	74 29                	je     0x41e601
41e5d8:	83 3c 24 00          	cmpl   $0x0,(%esp)
41e5dc:	74 23                	je     0x41e601
41e5de:	8d 47 01             	lea    0x1(%edi),%eax
41e5e1:	3b 04 24             	cmp    (%esp),%eax
41e5e4:	7d 03                	jge    0x41e5e9
41e5e6:	89 04 24             	mov    %eax,(%esp)
41e5e9:	56                   	push   %esi
41e5ea:	8b 44 24 04          	mov    0x4(%esp),%eax
41e5ee:	50                   	push   %eax
41e5ef:	6a 00                	push   $0x0
41e5f1:	53                   	push   %ebx
41e5f2:	e8 f1 7c fe ff       	call   0x4062e8
41e5f7:	8b c6                	mov    %esi,%eax
41e5f9:	8b 14 24             	mov    (%esp),%edx
41e5fc:	e8 0b fd ff ff       	call   0x41e30c
41e601:	8b 04 24             	mov    (%esp),%eax
41e604:	5a                   	pop    %edx
41e605:	5f                   	pop    %edi
41e606:	5e                   	pop    %esi
41e607:	5b                   	pop    %ebx
41e608:	c3                   	ret
41e609:	8d 40 00             	lea    0x0(%eax),%eax
41e60c:	55                   	push   %ebp
41e60d:	8b ec                	mov    %esp,%ebp
41e60f:	83 c4 ec             	add    $0xffffffec,%esp
41e612:	53                   	push   %ebx
41e613:	56                   	push   %esi
41e614:	57                   	push   %edi
41e615:	89 4d f8             	mov    %ecx,-0x8(%ebp)
41e618:	8b da                	mov    %edx,%ebx
41e61a:	89 45 fc             	mov    %eax,-0x4(%ebp)
41e61d:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e620:	d1 68 08             	shrl   $1,0x8(%eax)
41e623:	8b 55 fc             	mov    -0x4(%ebp),%edx
41e626:	0f b7 52 0e          	movzwl 0xe(%edx),%edx
41e62a:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e62d:	8b 40 04             	mov    0x4(%eax),%eax
41e630:	b9 20 00 00 00       	mov    $0x20,%ecx
41e635:	e8 7a f9 ff ff       	call   0x41dfb4
41e63a:	8b 55 fc             	mov    -0x4(%ebp),%edx
41e63d:	f7 6a 08             	imull  0x8(%edx)
41e640:	8b 55 fc             	mov    -0x4(%ebp),%edx
41e643:	89 42 14             	mov    %eax,0x14(%edx)
41e646:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e649:	66 8b 40 0e          	mov    0xe(%eax),%ax
41e64d:	e8 42 f9 ff ff       	call   0x41df94
41e652:	8b f0                	mov    %eax,%esi
41e654:	6a 00                	push   $0x0
41e656:	e8 4d 7f fe ff       	call   0x4065a8
41e65b:	89 45 f0             	mov    %eax,-0x10(%ebp)
41e65e:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
41e662:	75 05                	jne    0x41e669
41e664:	e8 bf f6 ff ff       	call   0x41dd28
41e669:	33 d2                	xor    %edx,%edx
41e66b:	55                   	push   %ebp
41e66c:	68 b8 e7 41 00       	push   $0x41e7b8
41e671:	64 ff 32             	push   %fs:(%edx)
41e674:	64 89 22             	mov    %esp,%fs:(%edx)
41e677:	8b 7d fc             	mov    -0x4(%ebp),%edi
41e67a:	8b c7                	mov    %edi,%eax
41e67c:	83 c0 28             	add    $0x28,%eax
41e67f:	8b d6                	mov    %esi,%edx
41e681:	c1 e2 02             	shl    $0x2,%edx
41e684:	03 c2                	add    %edx,%eax
41e686:	89 45 ec             	mov    %eax,-0x14(%ebp)
41e689:	6a 00                	push   $0x0
41e68b:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e68e:	57                   	push   %edi
41e68f:	8b 45 ec             	mov    -0x14(%ebp),%eax
41e692:	50                   	push   %eax
41e693:	6a 04                	push   $0x4
41e695:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e698:	50                   	push   %eax
41e699:	8b 45 f0             	mov    -0x10(%ebp),%eax
41e69c:	50                   	push   %eax
41e69d:	e8 96 7b fe ff       	call   0x406238
41e6a2:	e8 7d f7 ff ff       	call   0x41de24
41e6a7:	89 45 f4             	mov    %eax,-0xc(%ebp)
41e6aa:	33 c0                	xor    %eax,%eax
41e6ac:	55                   	push   %ebp
41e6ad:	68 de e6 41 00       	push   $0x41e6de
41e6b2:	64 ff 30             	push   %fs:(%eax)
41e6b5:	64 89 20             	mov    %esp,%fs:(%eax)
41e6b8:	8b 55 08             	mov    0x8(%ebp),%edx
41e6bb:	33 c9                	xor    %ecx,%ecx
41e6bd:	8b 45 f4             	mov    -0xc(%ebp),%eax
41e6c0:	e8 6f f7 ff ff       	call   0x41de34
41e6c5:	89 03                	mov    %eax,(%ebx)
41e6c7:	33 c0                	xor    %eax,%eax
41e6c9:	5a                   	pop    %edx
41e6ca:	59                   	pop    %ecx
41e6cb:	59                   	pop    %ecx
41e6cc:	64 89 10             	mov    %edx,%fs:(%eax)
41e6cf:	68 e5 e6 41 00       	push   $0x41e6e5
41e6d4:	8b 45 f4             	mov    -0xc(%ebp),%eax
41e6d7:	50                   	push   %eax
41e6d8:	e8 9b 7b fe ff       	call   0x406278
41e6dd:	c3                   	ret
41e6de:	e9 dd 52 fe ff       	jmp    0x4039c0
41e6e3:	eb ef                	jmp    0x41e6d4
41e6e5:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e6e8:	8b 40 14             	mov    0x14(%eax),%eax
41e6eb:	01 45 ec             	add    %eax,-0x14(%ebp)
41e6ee:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e6f1:	66 bb 01 00          	mov    $0x1,%bx
41e6f5:	66 89 58 0e          	mov    %bx,0xe(%eax)
41e6f9:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e6fc:	0f b7 d3             	movzwl %bx,%edx
41e6ff:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e702:	8b 40 04             	mov    0x4(%eax),%eax
41e705:	b9 20 00 00 00       	mov    $0x20,%ecx
41e70a:	e8 a5 f8 ff ff       	call   0x41dfb4
41e70f:	8b 55 fc             	mov    -0x4(%ebp),%edx
41e712:	f7 6a 08             	imull  0x8(%edx)
41e715:	8b 55 fc             	mov    -0x4(%ebp),%edx
41e718:	89 42 14             	mov    %eax,0x14(%edx)
41e71b:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e71e:	c7 40 20 02 00 00 00 	movl   $0x2,0x20(%eax)
41e725:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e728:	c7 40 24 02 00 00 00 	movl   $0x2,0x24(%eax)
41e72f:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e732:	83 c0 28             	add    $0x28,%eax
41e735:	33 d2                	xor    %edx,%edx
41e737:	89 10                	mov    %edx,(%eax)
41e739:	c7 40 04 ff ff ff 00 	movl   $0xffffff,0x4(%eax)
41e740:	6a 00                	push   $0x0
41e742:	8b 5d fc             	mov    -0x4(%ebp),%ebx
41e745:	53                   	push   %ebx
41e746:	8b 45 ec             	mov    -0x14(%ebp),%eax
41e749:	50                   	push   %eax
41e74a:	6a 04                	push   $0x4
41e74c:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e74f:	53                   	push   %ebx
41e750:	8b 45 f0             	mov    -0x10(%ebp),%eax
41e753:	50                   	push   %eax
41e754:	e8 df 7a fe ff       	call   0x406238
41e759:	e8 c6 f6 ff ff       	call   0x41de24
41e75e:	89 45 f4             	mov    %eax,-0xc(%ebp)
41e761:	33 c0                	xor    %eax,%eax
41e763:	55                   	push   %ebp
41e764:	68 98 e7 41 00       	push   $0x41e798
41e769:	64 ff 30             	push   %fs:(%eax)
41e76c:	64 89 20             	mov    %esp,%fs:(%eax)
41e76f:	8b 55 08             	mov    0x8(%ebp),%edx
41e772:	b1 01                	mov    $0x1,%cl
41e774:	8b 45 f4             	mov    -0xc(%ebp),%eax
41e777:	e8 b8 f6 ff ff       	call   0x41de34
41e77c:	8b 55 f8             	mov    -0x8(%ebp),%edx
41e77f:	89 02                	mov    %eax,(%edx)
41e781:	33 c0                	xor    %eax,%eax
41e783:	5a                   	pop    %edx
41e784:	59                   	pop    %ecx
41e785:	59                   	pop    %ecx
41e786:	64 89 10             	mov    %edx,%fs:(%eax)
41e789:	68 9f e7 41 00       	push   $0x41e79f
41e78e:	8b 45 f4             	mov    -0xc(%ebp),%eax
41e791:	50                   	push   %eax
41e792:	e8 e1 7a fe ff       	call   0x406278
41e797:	c3                   	ret
41e798:	e9 23 52 fe ff       	jmp    0x4039c0
41e79d:	eb ef                	jmp    0x41e78e
41e79f:	33 c0                	xor    %eax,%eax
41e7a1:	5a                   	pop    %edx
41e7a2:	59                   	pop    %ecx
41e7a3:	59                   	pop    %ecx
41e7a4:	64 89 10             	mov    %edx,%fs:(%eax)
41e7a7:	68 bf e7 41 00       	push   $0x41e7bf
41e7ac:	8b 45 f0             	mov    -0x10(%ebp),%eax
41e7af:	50                   	push   %eax
41e7b0:	6a 00                	push   $0x0
41e7b2:	e8 31 80 fe ff       	call   0x4067e8
41e7b7:	c3                   	ret
41e7b8:	e9 03 52 fe ff       	jmp    0x4039c0
41e7bd:	eb ed                	jmp    0x41e7ac
41e7bf:	5f                   	pop    %edi
41e7c0:	5e                   	pop    %esi
41e7c1:	5b                   	pop    %ebx
41e7c2:	8b e5                	mov    %ebp,%esp
41e7c4:	5d                   	pop    %ebp
41e7c5:	c2 04 00             	ret    $0x4
41e7c8:	85 c0                	test   %eax,%eax
41e7ca:	75 05                	jne    0x41e7d1
41e7cc:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
41e7d1:	c3                   	ret
41e7d2:	8b c0                	mov    %eax,%eax
41e7d4:	55                   	push   %ebp
41e7d5:	8b ec                	mov    %esp,%ebp
41e7d7:	83 c4 f8             	add    $0xfffffff8,%esp
41e7da:	53                   	push   %ebx
41e7db:	56                   	push   %esi
41e7dc:	57                   	push   %edi
41e7dd:	89 45 fc             	mov    %eax,-0x4(%ebp)
41e7e0:	33 c9                	xor    %ecx,%ecx
41e7e2:	8a 0a                	mov    (%edx),%cl
41e7e4:	8b 45 08             	mov    0x8(%ebp),%eax
41e7e7:	8b 40 08             	mov    0x8(%eax),%eax
41e7ea:	8b 00                	mov    (%eax),%eax
41e7ec:	2b c8                	sub    %eax,%ecx
41e7ee:	33 db                	xor    %ebx,%ebx
41e7f0:	8a 5a 01             	mov    0x1(%edx),%bl
41e7f3:	8b 55 08             	mov    0x8(%ebp),%edx
41e7f6:	8b 52 08             	mov    0x8(%edx),%edx
41e7f9:	2b 5a 04             	sub    0x4(%edx),%ebx
41e7fc:	8b 75 fc             	mov    -0x4(%ebp),%esi
41e7ff:	0f b6 36             	movzbl (%esi),%esi
41e802:	8b 55 08             	mov    0x8(%ebp),%edx
41e805:	8b 52 08             	mov    0x8(%edx),%edx
41e808:	2b f0                	sub    %eax,%esi
41e80a:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e80d:	0f b6 40 01          	movzbl 0x1(%eax),%eax
41e811:	8b 55 08             	mov    0x8(%ebp),%edx
41e814:	8b 52 08             	mov    0x8(%edx),%edx
41e817:	2b 42 04             	sub    0x4(%edx),%eax
41e81a:	89 45 f8             	mov    %eax,-0x8(%ebp)
41e81d:	8b c1                	mov    %ecx,%eax
41e81f:	99                   	cltd
41e820:	33 c2                	xor    %edx,%eax
41e822:	2b c2                	sub    %edx,%eax
41e824:	8b f8                	mov    %eax,%edi
41e826:	8b c6                	mov    %esi,%eax
41e828:	99                   	cltd
41e829:	33 c2                	xor    %edx,%eax
41e82b:	2b c2                	sub    %edx,%eax
41e82d:	3b f8                	cmp    %eax,%edi
41e82f:	7f 26                	jg     0x41e857
41e831:	85 c9                	test   %ecx,%ecx
41e833:	7e 04                	jle    0x41e839
41e835:	3b f1                	cmp    %ecx,%esi
41e837:	7c 1e                	jl     0x41e857
41e839:	8b c3                	mov    %ebx,%eax
41e83b:	99                   	cltd
41e83c:	33 c2                	xor    %edx,%eax
41e83e:	2b c2                	sub    %edx,%eax
41e840:	8b c8                	mov    %eax,%ecx
41e842:	8b 45 f8             	mov    -0x8(%ebp),%eax
41e845:	99                   	cltd
41e846:	33 c2                	xor    %edx,%eax
41e848:	2b c2                	sub    %edx,%eax
41e84a:	3b c8                	cmp    %eax,%ecx
41e84c:	7f 09                	jg     0x41e857
41e84e:	85 db                	test   %ebx,%ebx
41e850:	7e 09                	jle    0x41e85b
41e852:	3b 5d f8             	cmp    -0x8(%ebp),%ebx
41e855:	7e 04                	jle    0x41e85b
41e857:	33 c0                	xor    %eax,%eax
41e859:	eb 02                	jmp    0x41e85d
41e85b:	b0 01                	mov    $0x1,%al
41e85d:	5f                   	pop    %edi
41e85e:	5e                   	pop    %esi
41e85f:	5b                   	pop    %ebx
41e860:	59                   	pop    %ecx
41e861:	59                   	pop    %ecx
41e862:	5d                   	pop    %ebp
41e863:	c3                   	ret
41e864:	55                   	push   %ebp
41e865:	8b ec                	mov    %esp,%ebp
41e867:	83 c4 90             	add    $0xffffff90,%esp
41e86a:	53                   	push   %ebx
41e86b:	56                   	push   %esi
41e86c:	57                   	push   %edi
41e86d:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41e870:	89 55 f8             	mov    %edx,-0x8(%ebp)
41e873:	89 45 fc             	mov    %eax,-0x4(%ebp)
41e876:	8b 5d 0c             	mov    0xc(%ebp),%ebx
41e879:	8b 45 f4             	mov    -0xc(%ebp),%eax
41e87c:	c1 e0 04             	shl    $0x4,%eax
41e87f:	89 45 ec             	mov    %eax,-0x14(%ebp)
41e882:	8b 45 ec             	mov    -0x14(%ebp),%eax
41e885:	e8 72 92 fe ff       	call   0x407afc
41e88a:	89 45 f0             	mov    %eax,-0x10(%ebp)
41e88d:	33 d2                	xor    %edx,%edx
41e88f:	55                   	push   %ebp
41e890:	68 5b eb 41 00       	push   $0x41eb5b
41e895:	64 ff 32             	push   %fs:(%edx)
41e898:	64 89 22             	mov    %esp,%fs:(%edx)
41e89b:	8b 55 f0             	mov    -0x10(%ebp),%edx
41e89e:	8b 4d ec             	mov    -0x14(%ebp),%ecx
41e8a1:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e8a4:	8b 30                	mov    (%eax),%esi
41e8a6:	ff 56 0c             	call   *0xc(%esi)
41e8a9:	8b 03                	mov    (%ebx),%eax
41e8ab:	0b 43 04             	or     0x4(%ebx),%eax
41e8ae:	75 1b                	jne    0x41e8cb
41e8b0:	6a 0b                	push   $0xb
41e8b2:	e8 d9 7d fe ff       	call   0x406690
41e8b7:	8b 55 08             	mov    0x8(%ebp),%edx
41e8ba:	89 02                	mov    %eax,(%edx)
41e8bc:	6a 0c                	push   $0xc
41e8be:	e8 cd 7d fe ff       	call   0x406690
41e8c3:	8b 55 08             	mov    0x8(%ebp),%edx
41e8c6:	89 42 04             	mov    %eax,0x4(%edx)
41e8c9:	eb 0d                	jmp    0x41e8d8
41e8cb:	8b 45 08             	mov    0x8(%ebp),%eax
41e8ce:	8b 13                	mov    (%ebx),%edx
41e8d0:	89 10                	mov    %edx,(%eax)
41e8d2:	8b 53 04             	mov    0x4(%ebx),%edx
41e8d5:	89 50 04             	mov    %edx,0x4(%eax)
41e8d8:	6a 00                	push   $0x0
41e8da:	e8 c9 7c fe ff       	call   0x4065a8
41e8df:	89 45 d8             	mov    %eax,-0x28(%ebp)
41e8e2:	83 7d d8 00          	cmpl   $0x0,-0x28(%ebp)
41e8e6:	75 05                	jne    0x41e8ed
41e8e8:	e8 3b f4 ff ff       	call   0x41dd28
41e8ed:	33 d2                	xor    %edx,%edx
41e8ef:	55                   	push   %ebp
41e8f0:	68 4d e9 41 00       	push   $0x41e94d
41e8f5:	64 ff 32             	push   %fs:(%edx)
41e8f8:	64 89 22             	mov    %esp,%fs:(%edx)
41e8fb:	6a 0e                	push   $0xe
41e8fd:	8b 45 d8             	mov    -0x28(%ebp),%eax
41e900:	50                   	push   %eax
41e901:	e8 ba 79 fe ff       	call   0x4062c0
41e906:	8b d8                	mov    %eax,%ebx
41e908:	6a 0c                	push   $0xc
41e90a:	8b 45 d8             	mov    -0x28(%ebp),%eax
41e90d:	50                   	push   %eax
41e90e:	e8 ad 79 fe ff       	call   0x4062c0
41e913:	66 0f af d8          	imul   %ax,%bx
41e917:	8b c3                	mov    %ebx,%eax
41e919:	66 83 f8 08          	cmp    $0x8,%ax
41e91d:	76 09                	jbe    0x41e928
41e91f:	c7 45 e4 ff ff ff 7f 	movl   $0x7fffffff,-0x1c(%ebp)
41e926:	eb 0c                	jmp    0x41e934
41e928:	8b c8                	mov    %eax,%ecx
41e92a:	b8 01 00 00 00       	mov    $0x1,%eax
41e92f:	d3 e0                	shl    %cl,%eax
41e931:	89 45 e4             	mov    %eax,-0x1c(%ebp)
41e934:	33 c0                	xor    %eax,%eax
41e936:	5a                   	pop    %edx
41e937:	59                   	pop    %ecx
41e938:	59                   	pop    %ecx
41e939:	64 89 10             	mov    %edx,%fs:(%eax)
41e93c:	68 54 e9 41 00       	push   $0x41e954
41e941:	8b 45 d8             	mov    -0x28(%ebp),%eax