40e42a:	25 ff ff 00 00       	and    $0xffff,%eax
40e42f:	5f                   	pop    %edi
40e430:	5b                   	pop    %ebx
40e431:	5e                   	pop    %esi
40e432:	c9                   	leave
40e433:	c3                   	ret
40e434:	6a 02                	push   $0x2
40e436:	e8 dc 7f ff ff       	call   0x406417
40e43b:	59                   	pop    %ecx
40e43c:	c3                   	ret
40e43d:	57                   	push   %edi
40e43e:	8b c6                	mov    %esi,%eax
40e440:	83 e0 0f             	and    $0xf,%eax
40e443:	85 c0                	test   %eax,%eax
40e445:	0f 85 c1 00 00 00    	jne    0x40e50c
40e44b:	8b d1                	mov    %ecx,%edx
40e44d:	83 e1 7f             	and    $0x7f,%ecx
40e450:	c1 ea 07             	shr    $0x7,%edx
40e453:	74 65                	je     0x40e4ba
40e455:	eb 06                	jmp    0x40e45d
40e457:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
40e45d:	66 0f 6f 06          	movdqa (%esi),%xmm0
40e461:	66 0f 6f 4e 10       	movdqa 0x10(%esi),%xmm1
40e466:	66 0f 6f 56 20       	movdqa 0x20(%esi),%xmm2
40e46b:	66 0f 6f 5e 30       	movdqa 0x30(%esi),%xmm3
40e470:	66 0f 7f 07          	movdqa %xmm0,(%edi)
40e474:	66 0f 7f 4f 10       	movdqa %xmm1,0x10(%edi)
40e479:	66 0f 7f 57 20       	movdqa %xmm2,0x20(%edi)
40e47e:	66 0f 7f 5f 30       	movdqa %xmm3,0x30(%edi)
40e483:	66 0f 6f 66 40       	movdqa 0x40(%esi),%xmm4
40e488:	66 0f 6f 6e 50       	movdqa 0x50(%esi),%xmm5
40e48d:	66 0f 6f 76 60       	movdqa 0x60(%esi),%xmm6
40e492:	66 0f 6f 7e 70       	movdqa 0x70(%esi),%xmm7
40e497:	66 0f 7f 67 40       	movdqa %xmm4,0x40(%edi)
40e49c:	66 0f 7f 6f 50       	movdqa %xmm5,0x50(%edi)
40e4a1:	66 0f 7f 77 60       	movdqa %xmm6,0x60(%edi)
40e4a6:	66 0f 7f 7f 70       	movdqa %xmm7,0x70(%edi)
40e4ab:	8d b6 80 00 00 00    	lea    0x80(%esi),%esi
40e4b1:	8d bf 80 00 00 00    	lea    0x80(%edi),%edi
40e4b7:	4a                   	dec    %edx
40e4b8:	75 a3                	jne    0x40e45d
40e4ba:	85 c9                	test   %ecx,%ecx
40e4bc:	74 49                	je     0x40e507
40e4be:	8b d1                	mov    %ecx,%edx
40e4c0:	c1 ea 04             	shr    $0x4,%edx
40e4c3:	85 d2                	test   %edx,%edx
40e4c5:	74 17                	je     0x40e4de
40e4c7:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
40e4cd:	66 0f 6f 06          	movdqa (%esi),%xmm0
40e4d1:	66 0f 7f 07          	movdqa %xmm0,(%edi)
40e4d5:	8d 76 10             	lea    0x10(%esi),%esi
40e4d8:	8d 7f 10             	lea    0x10(%edi),%edi
40e4db:	4a                   	dec    %edx
40e4dc:	75 ef                	jne    0x40e4cd
40e4de:	83 e1 0f             	and    $0xf,%ecx
40e4e1:	74 24                	je     0x40e507
40e4e3:	8b c1                	mov    %ecx,%eax
40e4e5:	c1 e9 02             	shr    $0x2,%ecx
40e4e8:	74 0d                	je     0x40e4f7
40e4ea:	8b 16                	mov    (%esi),%edx
40e4ec:	89 17                	mov    %edx,(%edi)
40e4ee:	8d 76 04             	lea    0x4(%esi),%esi
40e4f1:	8d 7f 04             	lea    0x4(%edi),%edi
40e4f4:	49                   	dec    %ecx
40e4f5:	75 f3                	jne    0x40e4ea
40e4f7:	8b c8                	mov    %eax,%ecx
40e4f9:	83 e1 03             	and    $0x3,%ecx
40e4fc:	74 09                	je     0x40e507
40e4fe:	8a 06                	mov    (%esi),%al
40e500:	88 07                	mov    %al,(%edi)
40e502:	46                   	inc    %esi
40e503:	47                   	inc    %edi
40e504:	49                   	dec    %ecx
40e505:	75 f7                	jne    0x40e4fe
40e507:	58                   	pop    %eax
40e508:	5e                   	pop    %esi
40e509:	5f                   	pop    %edi
40e50a:	5d                   	pop    %ebp
40e50b:	c3                   	ret
40e50c:	ba 10 00 00 00       	mov    $0x10,%edx
40e511:	2b d0                	sub    %eax,%edx
40e513:	2b ca                	sub    %edx,%ecx
40e515:	51                   	push   %ecx
40e516:	8b c2                	mov    %edx,%eax
40e518:	8b c8                	mov    %eax,%ecx
40e51a:	83 e1 03             	and    $0x3,%ecx
40e51d:	74 09                	je     0x40e528
40e51f:	8a 16                	mov    (%esi),%dl
40e521:	88 17                	mov    %dl,(%edi)
40e523:	46                   	inc    %esi
40e524:	47                   	inc    %edi
40e525:	49                   	dec    %ecx
40e526:	75 f7                	jne    0x40e51f
40e528:	c1 e8 02             	shr    $0x2,%eax
40e52b:	74 0d                	je     0x40e53a
40e52d:	8b 16                	mov    (%esi),%edx
40e52f:	89 17                	mov    %edx,(%edi)
40e531:	8d 76 04             	lea    0x4(%esi),%esi
40e534:	8d 7f 04             	lea    0x4(%edi),%edi
40e537:	48                   	dec    %eax
40e538:	75 f3                	jne    0x40e52d
40e53a:	59                   	pop    %ecx
40e53b:	e9 0b ff ff ff       	jmp    0x40e44b
40e540:	e8 8a d6 ff ff       	call   0x40bbcf
40e545:	85 c0                	test   %eax,%eax
40e547:	74 08                	je     0x40e551
40e549:	6a 16                	push   $0x16
40e54b:	e8 8c d6 ff ff       	call   0x40bbdc
40e550:	59                   	pop    %ecx
40e551:	f6 05 a0 2e 41 00 02 	testb  $0x2,0x412ea0
40e558:	74 11                	je     0x40e56b
40e55a:	6a 01                	push   $0x1
40e55c:	68 15 00 00 40       	push   $0x40000015
40e561:	6a 03                	push   $0x3
40e563:	e8 7d 45 ff ff       	call   0x402ae5
40e568:	83 c4 0c             	add    $0xc,%esp
40e56b:	6a 03                	push   $0x3
40e56d:	e8 71 7e ff ff       	call   0x4063e3
40e572:	cc                   	int3
40e573:	8b ff                	mov    %edi,%edi
40e575:	55                   	push   %ebp
40e576:	8b ec                	mov    %esp,%ebp
40e578:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40e57c:	75 15                	jne    0x40e593
40e57e:	e8 a4 5b ff ff       	call   0x404127
40e583:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40e589:	e8 f9 46 ff ff       	call   0x402c87
40e58e:	83 c8 ff             	or     $0xffffffff,%eax
40e591:	5d                   	pop    %ebp
40e592:	c3                   	ret
40e593:	ff 75 08             	push   0x8(%ebp)
40e596:	6a 00                	push   $0x0
40e598:	ff 35 24 32 41 00    	push   0x413224
40e59e:	ff 15 5c f0 40 00    	call   *0x40f05c
40e5a4:	5d                   	pop    %ebp
40e5a5:	c3                   	ret
40e5a6:	8b ff                	mov    %edi,%edi
40e5a8:	55                   	push   %ebp
40e5a9:	8b ec                	mov    %esp,%ebp
40e5ab:	51                   	push   %ecx
40e5ac:	83 3d b0 2e 41 00 fe 	cmpl   $0xfffffffe,0x412eb0
40e5b3:	75 05                	jne    0x40e5ba
40e5b5:	e8 e7 00 00 00       	call   0x40e6a1
40e5ba:	a1 b0 2e 41 00       	mov    0x412eb0,%eax
40e5bf:	83 f8 ff             	cmp    $0xffffffff,%eax
40e5c2:	75 07                	jne    0x40e5cb
40e5c4:	b8 ff ff 00 00       	mov    $0xffff,%eax
40e5c9:	c9                   	leave
40e5ca:	c3                   	ret
40e5cb:	6a 00                	push   $0x0
40e5cd:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40e5d0:	51                   	push   %ecx
40e5d1:	6a 01                	push   $0x1
40e5d3:	8d 4d 08             	lea    0x8(%ebp),%ecx
40e5d6:	51                   	push   %ecx
40e5d7:	50                   	push   %eax
40e5d8:	ff 15 44 f1 40 00    	call   *0x40f144
40e5de:	85 c0                	test   %eax,%eax
40e5e0:	74 e2                	je     0x40e5c4
40e5e2:	66 8b 45 08          	mov    0x8(%ebp),%ax
40e5e6:	c9                   	leave
40e5e7:	c3                   	ret
40e5e8:	8b ff                	mov    %edi,%edi
40e5ea:	55                   	push   %ebp
40e5eb:	8b ec                	mov    %esp,%ebp
40e5ed:	53                   	push   %ebx
40e5ee:	33 db                	xor    %ebx,%ebx
40e5f0:	39 5d 08             	cmp    %ebx,0x8(%ebp)
40e5f3:	75 04                	jne    0x40e5f9
40e5f5:	33 c0                	xor    %eax,%eax
40e5f7:	eb 41                	jmp    0x40e63a
40e5f9:	56                   	push   %esi
40e5fa:	57                   	push   %edi
40e5fb:	ff 75 08             	push   0x8(%ebp)
40e5fe:	e8 13 b0 ff ff       	call   0x409616
40e603:	8d 70 01             	lea    0x1(%eax),%esi
40e606:	6a 02                	push   $0x2
40e608:	56                   	push   %esi
40e609:	e8 97 39 ff ff       	call   0x401fa5
40e60e:	8b f8                	mov    %eax,%edi
40e610:	83 c4 0c             	add    $0xc,%esp
40e613:	3b fb                	cmp    %ebx,%edi
40e615:	74 1f                	je     0x40e636
40e617:	ff 75 08             	push   0x8(%ebp)
40e61a:	56                   	push   %esi
40e61b:	57                   	push   %edi
40e61c:	e8 9a 51 ff ff       	call   0x4037bb
40e621:	83 c4 0c             	add    $0xc,%esp
40e624:	85 c0                	test   %eax,%eax
40e626:	75 04                	jne    0x40e62c
40e628:	8b c7                	mov    %edi,%eax
40e62a:	eb 0c                	jmp    0x40e638
40e62c:	53                   	push   %ebx
40e62d:	53                   	push   %ebx
40e62e:	53                   	push   %ebx
40e62f:	53                   	push   %ebx
40e630:	53                   	push   %ebx
40e631:	e8 ff 45 ff ff       	call   0x402c35
40e636:	33 c0                	xor    %eax,%eax
40e638:	5f                   	pop    %edi
40e639:	5e                   	pop    %esi
40e63a:	5b                   	pop    %ebx
40e63b:	5d                   	pop    %ebp
40e63c:	c3                   	ret
40e63d:	cc                   	int3
40e63e:	cc                   	int3
40e63f:	cc                   	int3
40e640:	55                   	push   %ebp
40e641:	8b ec                	mov    %esp,%ebp
40e643:	57                   	push   %edi
40e644:	56                   	push   %esi
40e645:	53                   	push   %ebx
40e646:	8b 4d 10             	mov    0x10(%ebp),%ecx
40e649:	0b c9                	or     %ecx,%ecx
40e64b:	74 4d                	je     0x40e69a
40e64d:	8b 75 08             	mov    0x8(%ebp),%esi
40e650:	8b 7d 0c             	mov    0xc(%ebp),%edi
40e653:	b7 41                	mov    $0x41,%bh
40e655:	b3 5a                	mov    $0x5a,%bl
40e657:	b6 20                	mov    $0x20,%dh
40e659:	8d 49 00             	lea    0x0(%ecx),%ecx
40e65c:	8a 26                	mov    (%esi),%ah
40e65e:	0a e4                	or     %ah,%ah
40e660:	8a 07                	mov    (%edi),%al
40e662:	74 27                	je     0x40e68b
40e664:	0a c0                	or     %al,%al
40e666:	74 23                	je     0x40e68b
40e668:	83 c6 01             	add    $0x1,%esi
40e66b:	83 c7 01             	add    $0x1,%edi
40e66e:	3a e7                	cmp    %bh,%ah
40e670:	72 06                	jb     0x40e678
40e672:	3a e3                	cmp    %bl,%ah
40e674:	77 02                	ja     0x40e678
40e676:	02 e6                	add    %dh,%ah
40e678:	3a c7                	cmp    %bh,%al
40e67a:	72 06                	jb     0x40e682
40e67c:	3a c3                	cmp    %bl,%al
40e67e:	77 02                	ja     0x40e682
40e680:	02 c6                	add    %dh,%al
40e682:	3a e0                	cmp    %al,%ah
40e684:	75 0b                	jne    0x40e691
40e686:	83 e9 01             	sub    $0x1,%ecx
40e689:	75 d1                	jne    0x40e65c
40e68b:	33 c9                	xor    %ecx,%ecx
40e68d:	3a e0                	cmp    %al,%ah
40e68f:	74 09                	je     0x40e69a
40e691:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
40e696:	72 02                	jb     0x40e69a
40e698:	f7 d9                	neg    %ecx
40e69a:	8b c1                	mov    %ecx,%eax
40e69c:	5b                   	pop    %ebx
40e69d:	5e                   	pop    %esi
40e69e:	5f                   	pop    %edi
40e69f:	c9                   	leave
40e6a0:	c3                   	ret
40e6a1:	33 c0                	xor    %eax,%eax
40e6a3:	50                   	push   %eax
40e6a4:	50                   	push   %eax
40e6a5:	6a 03                	push   $0x3
40e6a7:	50                   	push   %eax
40e6a8:	6a 03                	push   $0x3
40e6aa:	68 00 00 00 40       	push   $0x40000000
40e6af:	68 2c 0a 41 00       	push   $0x410a2c
40e6b4:	ff 15 24 f1 40 00    	call   *0x40f124
40e6ba:	a3 b0 2e 41 00       	mov    %eax,0x412eb0
40e6bf:	c3                   	ret
40e6c0:	a1 b0 2e 41 00       	mov    0x412eb0,%eax
40e6c5:	83 f8 ff             	cmp    $0xffffffff,%eax
40e6c8:	74 0c                	je     0x40e6d6
40e6ca:	83 f8 fe             	cmp    $0xfffffffe,%eax
40e6cd:	74 07                	je     0x40e6d6
40e6cf:	50                   	push   %eax
40e6d0:	ff 15 58 f0 40 00    	call   *0x40f058
40e6d6:	c3                   	ret
40e6d7:	cc                   	int3
40e6d8:	cc                   	int3
40e6d9:	cc                   	int3
40e6da:	cc                   	int3
40e6db:	cc                   	int3
40e6dc:	cc                   	int3
40e6dd:	cc                   	int3
40e6de:	cc                   	int3
40e6df:	cc                   	int3
40e6e0:	8b 44 24 08          	mov    0x8(%esp),%eax
40e6e4:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40e6e8:	0b c8                	or     %eax,%ecx
40e6ea:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40e6ee:	75 09                	jne    0x40e6f9
40e6f0:	8b 44 24 04          	mov    0x4(%esp),%eax
40e6f4:	f7 e1                	mul    %ecx
40e6f6:	c2 10 00             	ret    $0x10
40e6f9:	53                   	push   %ebx
40e6fa:	f7 e1                	mul    %ecx
40e6fc:	8b d8                	mov    %eax,%ebx
40e6fe:	8b 44 24 08          	mov    0x8(%esp),%eax
40e702:	f7 64 24 14          	mull   0x14(%esp)
40e706:	03 d8                	add    %eax,%ebx
40e708:	8b 44 24 08          	mov    0x8(%esp),%eax
40e70c:	f7 e1                	mul    %ecx
40e70e:	03 d3                	add    %ebx,%edx
40e710:	5b                   	pop    %ebx
40e711:	c2 10 00             	ret    $0x10
40e714:	ff 25 a8 f0 40 00    	jmp    *0x40f0a8