41e4a4:	8b d8                	mov    %eax,%ebx
41e4a6:	33 c0                	xor    %eax,%eax
41e4a8:	89 04 24             	mov    %eax,(%esp)
41e4ab:	85 db                	test   %ebx,%ebx
41e4ad:	74 36                	je     0x41e4e5
41e4af:	54                   	push   %esp
41e4b0:	6a 04                	push   $0x4
41e4b2:	53                   	push   %ebx
41e4b3:	e8 1c 84 fe ff       	call   0x4068d4
41e4b8:	85 c0                	test   %eax,%eax
41e4ba:	74 29                	je     0x41e4e5
41e4bc:	83 3c 24 00          	cmpl   $0x0,(%esp)
41e4c0:	74 23                	je     0x41e4e5
41e4c2:	8d 47 01             	lea    0x1(%edi),%eax
41e4c5:	3b 04 24             	cmp    (%esp),%eax
41e4c8:	7d 03                	jge    0x41e4cd
41e4ca:	89 04 24             	mov    %eax,(%esp)
41e4cd:	56                   	push   %esi
41e4ce:	8b 44 24 04          	mov    0x4(%esp),%eax
41e4d2:	50                   	push   %eax
41e4d3:	6a 00                	push   $0x0
41e4d5:	53                   	push   %ebx
41e4d6:	e8 01 84 fe ff       	call   0x4068dc
41e4db:	8b c6                	mov    %esi,%eax
41e4dd:	8b 14 24             	mov    (%esp),%edx
41e4e0:	e8 0b fd ff ff       	call   0x41e1f0
41e4e5:	8b 04 24             	mov    (%esp),%eax
41e4e8:	5a                   	pop    %edx
41e4e9:	5f                   	pop    %edi
41e4ea:	5e                   	pop    %esi
41e4eb:	5b                   	pop    %ebx
41e4ec:	c3                   	ret
41e4ed:	8d 40 00             	lea    0x0(%eax),%eax
41e4f0:	55                   	push   %ebp
41e4f1:	8b ec                	mov    %esp,%ebp
41e4f3:	83 c4 e8             	add    $0xffffffe8,%esp
41e4f6:	53                   	push   %ebx
41e4f7:	56                   	push   %esi
41e4f8:	89 4d f8             	mov    %ecx,-0x8(%ebp)
41e4fb:	8b da                	mov    %edx,%ebx
41e4fd:	89 45 fc             	mov    %eax,-0x4(%ebp)
41e500:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e503:	d1 68 08             	shrl   $1,0x8(%eax)
41e506:	8b 55 fc             	mov    -0x4(%ebp),%edx
41e509:	0f b7 52 0e          	movzwl 0xe(%edx),%edx
41e50d:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e510:	8b 40 04             	mov    0x4(%eax),%eax
41e513:	b9 20 00 00 00       	mov    $0x20,%ecx
41e518:	e8 6f f9 ff ff       	call   0x41de8c
41e51d:	8b 55 fc             	mov    -0x4(%ebp),%edx
41e520:	f7 6a 08             	imull  0x8(%edx)
41e523:	8b 55 fc             	mov    -0x4(%ebp),%edx
41e526:	89 42 14             	mov    %eax,0x14(%edx)
41e529:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e52c:	66 8b 40 0e          	mov    0xe(%eax),%ax
41e530:	e8 37 f9 ff ff       	call   0x41de6c
41e535:	8b f0                	mov    %eax,%esi
41e537:	6a 00                	push   $0x0
41e539:	e8 0e 86 fe ff       	call   0x406b4c
41e53e:	89 45 f0             	mov    %eax,-0x10(%ebp)
41e541:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
41e545:	75 05                	jne    0x41e54c
41e547:	e8 b4 f6 ff ff       	call   0x41dc00
41e54c:	33 c0                	xor    %eax,%eax
41e54e:	55                   	push   %ebp
41e54f:	68 a2 e6 41 00       	push   $0x41e6a2
41e554:	64 ff 30             	push   %fs:(%eax)
41e557:	64 89 20             	mov    %esp,%fs:(%eax)
41e55a:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e55d:	83 c0 28             	add    $0x28,%eax
41e560:	8b d6                	mov    %esi,%edx
41e562:	c1 e2 02             	shl    $0x2,%edx
41e565:	03 c2                	add    %edx,%eax
41e567:	89 45 ec             	mov    %eax,-0x14(%ebp)
41e56a:	6a 00                	push   $0x0
41e56c:	8b 75 fc             	mov    -0x4(%ebp),%esi
41e56f:	56                   	push   %esi
41e570:	8b 45 ec             	mov    -0x14(%ebp),%eax
41e573:	50                   	push   %eax
41e574:	6a 04                	push   $0x4
41e576:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e579:	56                   	push   %esi
41e57a:	8b 45 f0             	mov    -0x10(%ebp),%eax
41e57d:	50                   	push   %eax
41e57e:	e8 b9 82 fe ff       	call   0x40683c
41e583:	e8 74 f7 ff ff       	call   0x41dcfc
41e588:	89 45 f4             	mov    %eax,-0xc(%ebp)
41e58b:	33 c0                	xor    %eax,%eax
41e58d:	55                   	push   %ebp
41e58e:	68 bf e5 41 00       	push   $0x41e5bf
41e593:	64 ff 30             	push   %fs:(%eax)
41e596:	64 89 20             	mov    %esp,%fs:(%eax)
41e599:	8b 55 08             	mov    0x8(%ebp),%edx
41e59c:	33 c9                	xor    %ecx,%ecx
41e59e:	8b 45 f4             	mov    -0xc(%ebp),%eax
41e5a1:	e8 66 f7 ff ff       	call   0x41dd0c
41e5a6:	89 03                	mov    %eax,(%ebx)
41e5a8:	33 c0                	xor    %eax,%eax
41e5aa:	5a                   	pop    %edx
41e5ab:	59                   	pop    %ecx
41e5ac:	59                   	pop    %ecx
41e5ad:	64 89 10             	mov    %edx,%fs:(%eax)
41e5b0:	68 c6 e5 41 00       	push   $0x41e5c6
41e5b5:	8b 45 f4             	mov    -0xc(%ebp),%eax
41e5b8:	50                   	push   %eax
41e5b9:	e8 be 82 fe ff       	call   0x40687c
41e5be:	c3                   	ret
41e5bf:	e9 88 59 fe ff       	jmp    0x403f4c
41e5c4:	eb ef                	jmp    0x41e5b5
41e5c6:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e5c9:	8b 40 14             	mov    0x14(%eax),%eax
41e5cc:	01 45 ec             	add    %eax,-0x14(%ebp)
41e5cf:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e5d2:	66 bb 01 00          	mov    $0x1,%bx
41e5d6:	66 89 58 0e          	mov    %bx,0xe(%eax)
41e5da:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e5dd:	0f b7 d3             	movzwl %bx,%edx
41e5e0:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e5e3:	8b 40 04             	mov    0x4(%eax),%eax
41e5e6:	b9 20 00 00 00       	mov    $0x20,%ecx
41e5eb:	e8 9c f8 ff ff       	call   0x41de8c
41e5f0:	8b 55 fc             	mov    -0x4(%ebp),%edx
41e5f3:	f7 6a 08             	imull  0x8(%edx)
41e5f6:	8b 55 fc             	mov    -0x4(%ebp),%edx
41e5f9:	89 42 14             	mov    %eax,0x14(%edx)
41e5fc:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e5ff:	c7 40 20 02 00 00 00 	movl   $0x2,0x20(%eax)
41e606:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e609:	c7 40 24 02 00 00 00 	movl   $0x2,0x24(%eax)
41e610:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e613:	83 c0 28             	add    $0x28,%eax
41e616:	89 45 e8             	mov    %eax,-0x18(%ebp)
41e619:	8b 45 e8             	mov    -0x18(%ebp),%eax
41e61c:	33 d2                	xor    %edx,%edx
41e61e:	89 10                	mov    %edx,(%eax)
41e620:	8b 45 e8             	mov    -0x18(%ebp),%eax
41e623:	c7 40 04 ff ff ff 00 	movl   $0xffffff,0x4(%eax)
41e62a:	6a 00                	push   $0x0
41e62c:	8b 5d fc             	mov    -0x4(%ebp),%ebx
41e62f:	53                   	push   %ebx
41e630:	8b 45 ec             	mov    -0x14(%ebp),%eax
41e633:	50                   	push   %eax
41e634:	6a 04                	push   $0x4
41e636:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e639:	53                   	push   %ebx
41e63a:	8b 45 f0             	mov    -0x10(%ebp),%eax
41e63d:	50                   	push   %eax
41e63e:	e8 f9 81 fe ff       	call   0x40683c
41e643:	e8 b4 f6 ff ff       	call   0x41dcfc
41e648:	89 45 f4             	mov    %eax,-0xc(%ebp)
41e64b:	33 c0                	xor    %eax,%eax
41e64d:	55                   	push   %ebp
41e64e:	68 82 e6 41 00       	push   $0x41e682
41e653:	64 ff 30             	push   %fs:(%eax)
41e656:	64 89 20             	mov    %esp,%fs:(%eax)
41e659:	8b 55 08             	mov    0x8(%ebp),%edx
41e65c:	b1 01                	mov    $0x1,%cl
41e65e:	8b 45 f4             	mov    -0xc(%ebp),%eax
41e661:	e8 a6 f6 ff ff       	call   0x41dd0c
41e666:	8b 55 f8             	mov    -0x8(%ebp),%edx
41e669:	89 02                	mov    %eax,(%edx)
41e66b:	33 c0                	xor    %eax,%eax
41e66d:	5a                   	pop    %edx
41e66e:	59                   	pop    %ecx
41e66f:	59                   	pop    %ecx
41e670:	64 89 10             	mov    %edx,%fs:(%eax)
41e673:	68 89 e6 41 00       	push   $0x41e689
41e678:	8b 45 f4             	mov    -0xc(%ebp),%eax
41e67b:	50                   	push   %eax
41e67c:	e8 fb 81 fe ff       	call   0x40687c
41e681:	c3                   	ret
41e682:	e9 c5 58 fe ff       	jmp    0x403f4c
41e687:	eb ef                	jmp    0x41e678
41e689:	33 c0                	xor    %eax,%eax
41e68b:	5a                   	pop    %edx
41e68c:	59                   	pop    %ecx
41e68d:	59                   	pop    %ecx
41e68e:	64 89 10             	mov    %edx,%fs:(%eax)
41e691:	68 a9 e6 41 00       	push   $0x41e6a9
41e696:	8b 45 f0             	mov    -0x10(%ebp),%eax
41e699:	50                   	push   %eax
41e69a:	6a 00                	push   $0x0
41e69c:	e8 f3 86 fe ff       	call   0x406d94
41e6a1:	c3                   	ret
41e6a2:	e9 a5 58 fe ff       	jmp    0x403f4c
41e6a7:	eb ed                	jmp    0x41e696
41e6a9:	5e                   	pop    %esi
41e6aa:	5b                   	pop    %ebx
41e6ab:	8b e5                	mov    %ebp,%esp
41e6ad:	5d                   	pop    %ebp
41e6ae:	c2 04 00             	ret    $0x4
41e6b1:	8d 40 00             	lea    0x0(%eax),%eax
41e6b4:	85 c0                	test   %eax,%eax
41e6b6:	75 05                	jne    0x41e6bd
41e6b8:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
41e6bd:	c3                   	ret
41e6be:	8b c0                	mov    %eax,%eax
41e6c0:	55                   	push   %ebp
41e6c1:	8b ec                	mov    %esp,%ebp
41e6c3:	83 c4 f8             	add    $0xfffffff8,%esp
41e6c6:	53                   	push   %ebx
41e6c7:	56                   	push   %esi
41e6c8:	57                   	push   %edi
41e6c9:	89 45 fc             	mov    %eax,-0x4(%ebp)
41e6cc:	33 c9                	xor    %ecx,%ecx
41e6ce:	8a 0a                	mov    (%edx),%cl
41e6d0:	8b 45 08             	mov    0x8(%ebp),%eax
41e6d3:	8b 40 08             	mov    0x8(%eax),%eax
41e6d6:	8b 00                	mov    (%eax),%eax
41e6d8:	2b c8                	sub    %eax,%ecx
41e6da:	33 db                	xor    %ebx,%ebx
41e6dc:	8a 5a 01             	mov    0x1(%edx),%bl
41e6df:	8b 55 08             	mov    0x8(%ebp),%edx
41e6e2:	8b 52 08             	mov    0x8(%edx),%edx
41e6e5:	2b 5a 04             	sub    0x4(%edx),%ebx
41e6e8:	8b 75 fc             	mov    -0x4(%ebp),%esi
41e6eb:	0f b6 36             	movzbl (%esi),%esi
41e6ee:	8b 55 08             	mov    0x8(%ebp),%edx
41e6f1:	8b 52 08             	mov    0x8(%edx),%edx
41e6f4:	2b f0                	sub    %eax,%esi
41e6f6:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e6f9:	0f b6 40 01          	movzbl 0x1(%eax),%eax
41e6fd:	8b 55 08             	mov    0x8(%ebp),%edx
41e700:	8b 52 08             	mov    0x8(%edx),%edx
41e703:	2b 42 04             	sub    0x4(%edx),%eax
41e706:	89 45 f8             	mov    %eax,-0x8(%ebp)
41e709:	8b c1                	mov    %ecx,%eax
41e70b:	99                   	cltd
41e70c:	33 c2                	xor    %edx,%eax
41e70e:	2b c2                	sub    %edx,%eax
41e710:	8b f8                	mov    %eax,%edi
41e712:	8b c6                	mov    %esi,%eax
41e714:	99                   	cltd
41e715:	33 c2                	xor    %edx,%eax
41e717:	2b c2                	sub    %edx,%eax
41e719:	3b f8                	cmp    %eax,%edi
41e71b:	7f 26                	jg     0x41e743
41e71d:	85 c9                	test   %ecx,%ecx
41e71f:	7e 04                	jle    0x41e725
41e721:	3b f1                	cmp    %ecx,%esi
41e723:	7c 1e                	jl     0x41e743
41e725:	8b c3                	mov    %ebx,%eax
41e727:	99                   	cltd
41e728:	33 c2                	xor    %edx,%eax
41e72a:	2b c2                	sub    %edx,%eax
41e72c:	8b c8                	mov    %eax,%ecx
41e72e:	8b 45 f8             	mov    -0x8(%ebp),%eax
41e731:	99                   	cltd
41e732:	33 c2                	xor    %edx,%eax
41e734:	2b c2                	sub    %edx,%eax
41e736:	3b c8                	cmp    %eax,%ecx
41e738:	7f 09                	jg     0x41e743
41e73a:	85 db                	test   %ebx,%ebx
41e73c:	7e 09                	jle    0x41e747
41e73e:	3b 5d f8             	cmp    -0x8(%ebp),%ebx
41e741:	7e 04                	jle    0x41e747
41e743:	33 c0                	xor    %eax,%eax
41e745:	eb 02                	jmp    0x41e749
41e747:	b0 01                	mov    $0x1,%al
41e749:	5f                   	pop    %edi
41e74a:	5e                   	pop    %esi
41e74b:	5b                   	pop    %ebx
41e74c:	59                   	pop    %ecx
41e74d:	59                   	pop    %ecx
41e74e:	5d                   	pop    %ebp
41e74f:	c3                   	ret
41e750:	55                   	push   %ebp
41e751:	8b ec                	mov    %esp,%ebp
41e753:	83 c4 8c             	add    $0xffffff8c,%esp
41e756:	53                   	push   %ebx
41e757:	56                   	push   %esi
41e758:	57                   	push   %edi
41e759:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41e75c:	89 55 f8             	mov    %edx,-0x8(%ebp)
41e75f:	89 45 fc             	mov    %eax,-0x4(%ebp)
41e762:	8b 5d 0c             	mov    0xc(%ebp),%ebx
41e765:	8b 45 f4             	mov    -0xc(%ebp),%eax
41e768:	c1 e0 04             	shl    $0x4,%eax
41e76b:	89 45 ec             	mov    %eax,-0x14(%ebp)
41e76e:	8b 45 ec             	mov    -0x14(%ebp),%eax
41e771:	e8 96 99 fe ff       	call   0x40810c
41e776:	89 45 f0             	mov    %eax,-0x10(%ebp)
41e779:	33 d2                	xor    %edx,%edx
41e77b:	55                   	push   %ebp
41e77c:	68 52 ea 41 00       	push   $0x41ea52
41e781:	64 ff 32             	push   %fs:(%edx)
41e784:	64 89 22             	mov    %esp,%fs:(%edx)
41e787:	8b 55 f0             	mov    -0x10(%ebp),%edx
41e78a:	8b 4d ec             	mov    -0x14(%ebp),%ecx
41e78d:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e790:	8b 30                	mov    (%eax),%esi
41e792:	ff 56 0c             	call   *0xc(%esi)
41e795:	8b 03                	mov    (%ebx),%eax
41e797:	0b 43 04             	or     0x4(%ebx),%eax
41e79a:	75 1b                	jne    0x41e7b7
41e79c:	6a 0b                	push   $0xb
41e79e:	e8 89 84 fe ff       	call   0x406c2c
41e7a3:	8b 55 08             	mov    0x8(%ebp),%edx
41e7a6:	89 02                	mov    %eax,(%edx)
41e7a8:	6a 0c                	push   $0xc
41e7aa:	e8 7d 84 fe ff       	call   0x406c2c
41e7af:	8b 55 08             	mov    0x8(%ebp),%edx
41e7b2:	89 42 04             	mov    %eax,0x4(%edx)
41e7b5:	eb 0d                	jmp    0x41e7c4
41e7b7:	8b 45 08             	mov    0x8(%ebp),%eax
41e7ba:	8b 13                	mov    (%ebx),%edx
41e7bc:	89 10                	mov    %edx,(%eax)
41e7be:	8b 53 04             	mov    0x4(%ebx),%edx
41e7c1:	89 50 04             	mov    %edx,0x4(%eax)
41e7c4:	6a 00                	push   $0x0
41e7c6:	e8 81 83 fe ff       	call   0x406b4c
41e7cb:	89 45 d8             	mov    %eax,-0x28(%ebp)
41e7ce:	83 7d d8 00          	cmpl   $0x0,-0x28(%ebp)
41e7d2:	75 05                	jne    0x41e7d9
41e7d4:	e8 27 f4 ff ff       	call   0x41dc00
41e7d9:	33 d2                	xor    %edx,%edx
41e7db:	55                   	push   %ebp
41e7dc:	68 39 e8 41 00       	push   $0x41e839
41e7e1:	64 ff 32             	push   %fs:(%edx)
41e7e4:	64 89 22             	mov    %esp,%fs:(%edx)
41e7e7:	6a 0e                	push   $0xe
41e7e9:	8b 45 d8             	mov    -0x28(%ebp),%eax
41e7ec:	50                   	push   %eax
41e7ed:	e8 d2 80 fe ff       	call   0x4068c4
41e7f2:	8b d8                	mov    %eax,%ebx
41e7f4:	6a 0c                	push   $0xc
41e7f6:	8b 45 d8             	mov    -0x28(%ebp),%eax
41e7f9:	50                   	push   %eax
41e7fa:	e8 c5 80 fe ff       	call   0x4068c4
41e7ff:	66 0f af d8          	imul   %ax,%bx
41e803:	8b c3                	mov    %ebx,%eax
41e805:	66 83 f8 08          	cmp    $0x8,%ax
41e809:	76 09                	jbe    0x41e814
41e80b:	c7 45 e4 ff ff ff 7f 	movl   $0x7fffffff,-0x1c(%ebp)
41e812:	eb 0c                	jmp    0x41e820
41e814:	8b c8                	mov    %eax,%ecx
41e816:	b8 01 00 00 00       	mov    $0x1,%eax
41e81b:	d3 e0                	shl    %cl,%eax
41e81d:	89 45 e4             	mov    %eax,-0x1c(%ebp)
41e820:	33 c0                	xor    %eax,%eax
41e822:	5a                   	pop    %edx
41e823:	59                   	pop    %ecx
41e824:	59                   	pop    %ecx
41e825:	64 89 10             	mov    %edx,%fs:(%eax)
41e828:	68 40 e8 41 00       	push   $0x41e840
41e82d:	8b 45 d8             	mov    -0x28(%ebp),%eax
41e830:	50                   	push   %eax
41e831:	6a 00                	push   $0x0
41e833:	e8 5c 85 fe ff       	call   0x406d94
41e838:	c3                   	ret