40b34d:	5d                   	pop    %ebp
40b34e:	c3                   	ret
40b34f:	55                   	push   %ebp
40b350:	8b ec                	mov    %esp,%ebp
40b352:	83 ec 10             	sub    $0x10,%esp
40b355:	89 7d fc             	mov    %edi,-0x4(%ebp)
40b358:	8b 45 08             	mov    0x8(%ebp),%eax
40b35b:	99                   	cltd
40b35c:	8b f8                	mov    %eax,%edi
40b35e:	33 fa                	xor    %edx,%edi
40b360:	2b fa                	sub    %edx,%edi
40b362:	83 e7 0f             	and    $0xf,%edi
40b365:	33 fa                	xor    %edx,%edi
40b367:	2b fa                	sub    %edx,%edi
40b369:	85 ff                	test   %edi,%edi
40b36b:	75 3c                	jne    0x40b3a9
40b36d:	8b 4d 10             	mov    0x10(%ebp),%ecx
40b370:	8b d1                	mov    %ecx,%edx
40b372:	83 e2 7f             	and    $0x7f,%edx
40b375:	89 55 f4             	mov    %edx,-0xc(%ebp)
40b378:	3b ca                	cmp    %edx,%ecx
40b37a:	74 12                	je     0x40b38e
40b37c:	2b ca                	sub    %edx,%ecx
40b37e:	51                   	push   %ecx
40b37f:	50                   	push   %eax
40b380:	e8 73 ff ff ff       	call   0x40b2f8
40b385:	83 c4 08             	add    $0x8,%esp
40b388:	8b 45 08             	mov    0x8(%ebp),%eax
40b38b:	8b 55 f4             	mov    -0xc(%ebp),%edx
40b38e:	85 d2                	test   %edx,%edx
40b390:	74 45                	je     0x40b3d7
40b392:	03 45 10             	add    0x10(%ebp),%eax
40b395:	2b c2                	sub    %edx,%eax
40b397:	89 45 f8             	mov    %eax,-0x8(%ebp)
40b39a:	33 c0                	xor    %eax,%eax
40b39c:	8b 7d f8             	mov    -0x8(%ebp),%edi
40b39f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40b3a2:	f3 aa                	rep stos %al,%es:(%edi)
40b3a4:	8b 45 08             	mov    0x8(%ebp),%eax
40b3a7:	eb 2e                	jmp    0x40b3d7
40b3a9:	f7 df                	neg    %edi
40b3ab:	83 c7 10             	add    $0x10,%edi
40b3ae:	89 7d f0             	mov    %edi,-0x10(%ebp)
40b3b1:	33 c0                	xor    %eax,%eax
40b3b3:	8b 7d 08             	mov    0x8(%ebp),%edi
40b3b6:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40b3b9:	f3 aa                	rep stos %al,%es:(%edi)
40b3bb:	8b 45 f0             	mov    -0x10(%ebp),%eax
40b3be:	8b 4d 08             	mov    0x8(%ebp),%ecx
40b3c1:	8b 55 10             	mov    0x10(%ebp),%edx
40b3c4:	03 c8                	add    %eax,%ecx
40b3c6:	2b d0                	sub    %eax,%edx
40b3c8:	52                   	push   %edx
40b3c9:	6a 00                	push   $0x0
40b3cb:	51                   	push   %ecx
40b3cc:	e8 7e ff ff ff       	call   0x40b34f
40b3d1:	83 c4 0c             	add    $0xc,%esp
40b3d4:	8b 45 08             	mov    0x8(%ebp),%eax
40b3d7:	8b 7d fc             	mov    -0x4(%ebp),%edi
40b3da:	8b e5                	mov    %ebp,%esp
40b3dc:	5d                   	pop    %ebp
40b3dd:	c3                   	ret
40b3de:	83 25 f4 e5 41 00 00 	andl   $0x0,0x41e5f4
40b3e5:	e8 9b 88 00 00       	call   0x413c85
40b3ea:	a3 f4 e5 41 00       	mov    %eax,0x41e5f4
40b3ef:	33 c0                	xor    %eax,%eax
40b3f1:	c3                   	ret
40b3f2:	55                   	push   %ebp
40b3f3:	8b ec                	mov    %esp,%ebp
40b3f5:	83 ec 08             	sub    $0x8,%esp
40b3f8:	89 7d fc             	mov    %edi,-0x4(%ebp)
40b3fb:	89 75 f8             	mov    %esi,-0x8(%ebp)
40b3fe:	8b 75 0c             	mov    0xc(%ebp),%esi
40b401:	8b 7d 08             	mov    0x8(%ebp),%edi
40b404:	8b 4d 10             	mov    0x10(%ebp),%ecx
40b407:	c1 e9 07             	shr    $0x7,%ecx
40b40a:	eb 06                	jmp    0x40b412
40b40c:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
40b412:	66 0f 6f 06          	movdqa (%esi),%xmm0
40b416:	66 0f 6f 4e 10       	movdqa 0x10(%esi),%xmm1
40b41b:	66 0f 6f 56 20       	movdqa 0x20(%esi),%xmm2
40b420:	66 0f 6f 5e 30       	movdqa 0x30(%esi),%xmm3
40b425:	66 0f 7f 07          	movdqa %xmm0,(%edi)
40b429:	66 0f 7f 4f 10       	movdqa %xmm1,0x10(%edi)
40b42e:	66 0f 7f 57 20       	movdqa %xmm2,0x20(%edi)
40b433:	66 0f 7f 5f 30       	movdqa %xmm3,0x30(%edi)
40b438:	66 0f 6f 66 40       	movdqa 0x40(%esi),%xmm4
40b43d:	66 0f 6f 6e 50       	movdqa 0x50(%esi),%xmm5
40b442:	66 0f 6f 76 60       	movdqa 0x60(%esi),%xmm6
40b447:	66 0f 6f 7e 70       	movdqa 0x70(%esi),%xmm7
40b44c:	66 0f 7f 67 40       	movdqa %xmm4,0x40(%edi)
40b451:	66 0f 7f 6f 50       	movdqa %xmm5,0x50(%edi)
40b456:	66 0f 7f 77 60       	movdqa %xmm6,0x60(%edi)
40b45b:	66 0f 7f 7f 70       	movdqa %xmm7,0x70(%edi)
40b460:	8d b6 80 00 00 00    	lea    0x80(%esi),%esi
40b466:	8d bf 80 00 00 00    	lea    0x80(%edi),%edi
40b46c:	49                   	dec    %ecx
40b46d:	75 a3                	jne    0x40b412
40b46f:	8b 75 f8             	mov    -0x8(%ebp),%esi
40b472:	8b 7d fc             	mov    -0x4(%ebp),%edi
40b475:	8b e5                	mov    %ebp,%esp
40b477:	5d                   	pop    %ebp
40b478:	c3                   	ret
40b479:	55                   	push   %ebp
40b47a:	8b ec                	mov    %esp,%ebp
40b47c:	83 ec 1c             	sub    $0x1c,%esp
40b47f:	89 7d f4             	mov    %edi,-0xc(%ebp)
40b482:	89 75 f8             	mov    %esi,-0x8(%ebp)
40b485:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40b488:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40b48b:	8b c3                	mov    %ebx,%eax
40b48d:	99                   	cltd
40b48e:	8b c8                	mov    %eax,%ecx
40b490:	8b 45 08             	mov    0x8(%ebp),%eax
40b493:	33 ca                	xor    %edx,%ecx
40b495:	2b ca                	sub    %edx,%ecx
40b497:	83 e1 0f             	and    $0xf,%ecx
40b49a:	33 ca                	xor    %edx,%ecx
40b49c:	2b ca                	sub    %edx,%ecx
40b49e:	99                   	cltd
40b49f:	8b f8                	mov    %eax,%edi
40b4a1:	33 fa                	xor    %edx,%edi
40b4a3:	2b fa                	sub    %edx,%edi
40b4a5:	83 e7 0f             	and    $0xf,%edi
40b4a8:	33 fa                	xor    %edx,%edi
40b4aa:	2b fa                	sub    %edx,%edi
40b4ac:	8b d1                	mov    %ecx,%edx
40b4ae:	0b d7                	or     %edi,%edx
40b4b0:	75 4a                	jne    0x40b4fc
40b4b2:	8b 75 10             	mov    0x10(%ebp),%esi
40b4b5:	8b ce                	mov    %esi,%ecx
40b4b7:	83 e1 7f             	and    $0x7f,%ecx
40b4ba:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40b4bd:	3b f1                	cmp    %ecx,%esi
40b4bf:	74 13                	je     0x40b4d4
40b4c1:	2b f1                	sub    %ecx,%esi
40b4c3:	56                   	push   %esi
40b4c4:	53                   	push   %ebx
40b4c5:	50                   	push   %eax
40b4c6:	e8 27 ff ff ff       	call   0x40b3f2
40b4cb:	83 c4 0c             	add    $0xc,%esp
40b4ce:	8b 45 08             	mov    0x8(%ebp),%eax
40b4d1:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40b4d4:	85 c9                	test   %ecx,%ecx
40b4d6:	74 77                	je     0x40b54f
40b4d8:	8b 5d 10             	mov    0x10(%ebp),%ebx
40b4db:	8b 55 0c             	mov    0xc(%ebp),%edx
40b4de:	03 d3                	add    %ebx,%edx
40b4e0:	2b d1                	sub    %ecx,%edx
40b4e2:	89 55 ec             	mov    %edx,-0x14(%ebp)
40b4e5:	03 d8                	add    %eax,%ebx
40b4e7:	2b d9                	sub    %ecx,%ebx
40b4e9:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40b4ec:	8b 75 ec             	mov    -0x14(%ebp),%esi
40b4ef:	8b 7d f0             	mov    -0x10(%ebp),%edi
40b4f2:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40b4f5:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40b4f7:	8b 45 08             	mov    0x8(%ebp),%eax
40b4fa:	eb 53                	jmp    0x40b54f
40b4fc:	3b cf                	cmp    %edi,%ecx
40b4fe:	75 35                	jne    0x40b535
40b500:	f7 d9                	neg    %ecx
40b502:	83 c1 10             	add    $0x10,%ecx
40b505:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40b508:	8b 75 0c             	mov    0xc(%ebp),%esi
40b50b:	8b 7d 08             	mov    0x8(%ebp),%edi
40b50e:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40b511:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40b513:	8b 4d 08             	mov    0x8(%ebp),%ecx
40b516:	03 4d e4             	add    -0x1c(%ebp),%ecx
40b519:	8b 55 0c             	mov    0xc(%ebp),%edx
40b51c:	03 55 e4             	add    -0x1c(%ebp),%edx
40b51f:	8b 45 10             	mov    0x10(%ebp),%eax
40b522:	2b 45 e4             	sub    -0x1c(%ebp),%eax
40b525:	50                   	push   %eax
40b526:	52                   	push   %edx
40b527:	51                   	push   %ecx
40b528:	e8 4c ff ff ff       	call   0x40b479
40b52d:	83 c4 0c             	add    $0xc,%esp
40b530:	8b 45 08             	mov    0x8(%ebp),%eax
40b533:	eb 1a                	jmp    0x40b54f
40b535:	8b 75 0c             	mov    0xc(%ebp),%esi
40b538:	8b 7d 08             	mov    0x8(%ebp),%edi
40b53b:	8b 4d 10             	mov    0x10(%ebp),%ecx
40b53e:	8b d1                	mov    %ecx,%edx
40b540:	c1 e9 02             	shr    $0x2,%ecx
40b543:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40b545:	8b ca                	mov    %edx,%ecx
40b547:	83 e1 03             	and    $0x3,%ecx
40b54a:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40b54c:	8b 45 08             	mov    0x8(%ebp),%eax
40b54f:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40b552:	8b 75 f8             	mov    -0x8(%ebp),%esi
40b555:	8b 7d f4             	mov    -0xc(%ebp),%edi
40b558:	8b e5                	mov    %ebp,%esp
40b55a:	5d                   	pop    %ebp
40b55b:	c3                   	ret
40b55c:	55                   	push   %ebp
40b55d:	8b ec                	mov    %esp,%ebp
40b55f:	81 ec 28 03 00 00    	sub    $0x328,%esp
40b565:	a3 20 db 41 00       	mov    %eax,0x41db20
40b56a:	89 0d 1c db 41 00    	mov    %ecx,0x41db1c
40b570:	89 15 18 db 41 00    	mov    %edx,0x41db18
40b576:	89 1d 14 db 41 00    	mov    %ebx,0x41db14
40b57c:	89 35 10 db 41 00    	mov    %esi,0x41db10
40b582:	89 3d 0c db 41 00    	mov    %edi,0x41db0c
40b588:	66 8c 15 38 db 41 00 	data16 mov %ss,0x41db38
40b58f:	66 8c 0d 2c db 41 00 	data16 mov %cs,0x41db2c
40b596:	66 8c 1d 08 db 41 00 	data16 mov %ds,0x41db08
40b59d:	66 8c 05 04 db 41 00 	data16 mov %es,0x41db04
40b5a4:	66 8c 25 00 db 41 00 	data16 mov %fs,0x41db00
40b5ab:	66 8c 2d fc da 41 00 	data16 mov %gs,0x41dafc
40b5b2:	9c                   	pushf
40b5b3:	8f 05 30 db 41 00    	pop    0x41db30
40b5b9:	8b 45 00             	mov    0x0(%ebp),%eax
40b5bc:	a3 24 db 41 00       	mov    %eax,0x41db24
40b5c1:	8b 45 04             	mov    0x4(%ebp),%eax
40b5c4:	a3 28 db 41 00       	mov    %eax,0x41db28
40b5c9:	8d 45 08             	lea    0x8(%ebp),%eax
40b5cc:	a3 34 db 41 00       	mov    %eax,0x41db34
40b5d1:	8b 85 e0 fc ff ff    	mov    -0x320(%ebp),%eax
40b5d7:	c7 05 70 da 41 00 01 	movl   $0x10001,0x41da70
40b5de:	00 01 00
40b5e1:	a1 28 db 41 00       	mov    0x41db28,%eax
40b5e6:	a3 24 da 41 00       	mov    %eax,0x41da24
40b5eb:	c7 05 18 da 41 00 09 	movl   $0xc0000409,0x41da18
40b5f2:	04 00 c0
40b5f5:	c7 05 1c da 41 00 01 	movl   $0x1,0x41da1c
40b5fc:	00 00 00
40b5ff:	a1 20 c5 41 00       	mov    0x41c520,%eax
40b604:	89 85 d8 fc ff ff    	mov    %eax,-0x328(%ebp)
40b60a:	a1 24 c5 41 00       	mov    0x41c524,%eax
40b60f:	89 85 dc fc ff ff    	mov    %eax,-0x324(%ebp)
40b615:	ff 15 d4 70 41 00    	call   *0x4170d4
40b61b:	a3 68 da 41 00       	mov    %eax,0x41da68
40b620:	6a 01                	push   $0x1
40b622:	e8 57 30 00 00       	call   0x40e67e
40b627:	59                   	pop    %ecx
40b628:	6a 00                	push   $0x0
40b62a:	ff 15 d0 70 41 00    	call   *0x4170d0
40b630:	68 b8 7f 41 00       	push   $0x417fb8
40b635:	ff 15 cc 70 41 00    	call   *0x4170cc
40b63b:	83 3d 68 da 41 00 00 	cmpl   $0x0,0x41da68
40b642:	75 08                	jne    0x40b64c
40b644:	6a 01                	push   $0x1
40b646:	e8 33 30 00 00       	call   0x40e67e
40b64b:	59                   	pop    %ecx
40b64c:	68 09 04 00 c0       	push   $0xc0000409
40b651:	ff 15 0c 70 41 00    	call   *0x41700c
40b657:	50                   	push   %eax
40b658:	ff 15 74 70 41 00    	call   *0x417074
40b65e:	c9                   	leave
40b65f:	c3                   	ret
40b660:	55                   	push   %ebp
40b661:	8b ec                	mov    %esp,%ebp
40b663:	51                   	push   %ecx
40b664:	56                   	push   %esi
40b665:	8b 75 0c             	mov    0xc(%ebp),%esi
40b668:	56                   	push   %esi
40b669:	e8 d8 33 00 00       	call   0x40ea46
40b66e:	89 45 0c             	mov    %eax,0xc(%ebp)
40b671:	8b 46 0c             	mov    0xc(%esi),%eax
40b674:	a8 82                	test   $0x82,%al
40b676:	59                   	pop    %ecx
40b677:	75 17                	jne    0x40b690
40b679:	e8 7c dd ff ff       	call   0x4093fa
40b67e:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40b684:	83 4e 0c 20          	orl    $0x20,0xc(%esi)
40b688:	83 c8 ff             	or     $0xffffffff,%eax
40b68b:	e9 2d 01 00 00       	jmp    0x40b7bd
40b690:	a8 40                	test   $0x40,%al
40b692:	74 0d                	je     0x40b6a1
40b694:	e8 61 dd ff ff       	call   0x4093fa
40b699:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
40b69f:	eb e3                	jmp    0x40b684
40b6a1:	53                   	push   %ebx
40b6a2:	33 db                	xor    %ebx,%ebx
40b6a4:	a8 01                	test   $0x1,%al
40b6a6:	74 16                	je     0x40b6be
40b6a8:	a8 10                	test   $0x10,%al
40b6aa:	89 5e 04             	mov    %ebx,0x4(%esi)
40b6ad:	0f 84 85 00 00 00    	je     0x40b738
40b6b3:	8b 4e 08             	mov    0x8(%esi),%ecx
40b6b6:	83 e0 fe             	and    $0xfffffffe,%eax
40b6b9:	89 0e                	mov    %ecx,(%esi)
40b6bb:	89 46 0c             	mov    %eax,0xc(%esi)
40b6be:	8b 46 0c             	mov    0xc(%esi),%eax
40b6c1:	83 e0 ef             	and    $0xffffffef,%eax
40b6c4:	83 c8 02             	or     $0x2,%eax
40b6c7:	66 a9 0c 01          	test   $0x10c,%ax
40b6cb:	89 46 0c             	mov    %eax,0xc(%esi)
40b6ce:	89 5e 04             	mov    %ebx,0x4(%esi)
40b6d1:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40b6d4:	75 2c                	jne    0x40b702
40b6d6:	e8 53 d1 ff ff       	call   0x40882e
40b6db:	83 c0 20             	add    $0x20,%eax
40b6de:	3b f0                	cmp    %eax,%esi
40b6e0:	74 0c                	je     0x40b6ee
40b6e2:	e8 47 d1 ff ff       	call   0x40882e
40b6e7:	83 c0 40             	add    $0x40,%eax
40b6ea:	3b f0                	cmp    %eax,%esi
40b6ec:	75 0d                	jne    0x40b6fb
40b6ee:	ff 75 0c             	push   0xc(%ebp)
40b6f1:	e8 98 87 00 00       	call   0x413e8e
40b6f6:	85 c0                	test   %eax,%eax
40b6f8:	59                   	pop    %ecx
40b6f9:	75 07                	jne    0x40b702
40b6fb:	56                   	push   %esi
40b6fc:	e8 5c 36 00 00       	call   0x40ed5d
40b701:	59                   	pop    %ecx
40b702:	66 f7 46 0c 08 01    	testw  $0x108,0xc(%esi)
40b708:	57                   	push   %edi
40b709:	0f 84 80 00 00 00    	je     0x40b78f
40b70f:	8b 46 08             	mov    0x8(%esi),%eax
40b712:	8b 3e                	mov    (%esi),%edi
40b714:	8d 48 01             	lea    0x1(%eax),%ecx
40b717:	89 0e                	mov    %ecx,(%esi)
40b719:	8b 4e 18             	mov    0x18(%esi),%ecx
40b71c:	2b f8                	sub    %eax,%edi
40b71e:	49                   	dec    %ecx
40b71f:	3b fb                	cmp    %ebx,%edi
40b721:	89 4e 04             	mov    %ecx,0x4(%esi)
40b724:	7e 1d                	jle    0x40b743
40b726:	57                   	push   %edi
40b727:	50                   	push   %eax
40b728:	ff 75 0c             	push   0xc(%ebp)
40b72b:	e8 37 3c 00 00       	call   0x40f367
40b730:	83 c4 0c             	add    $0xc,%esp
40b733:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b736:	eb 4d                	jmp    0x40b785
40b738:	83 c8 20             	or     $0x20,%eax
40b73b:	89 46 0c             	mov    %eax,0xc(%esi)
40b73e:	83 c8 ff             	or     $0xffffffff,%eax
40b741:	eb 79                	jmp    0x40b7bc
40b743:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40b746:	83 f9 ff             	cmp    $0xffffffff,%ecx
40b749:	74 1b                	je     0x40b766
40b74b:	83 f9 fe             	cmp    $0xfffffffe,%ecx
40b74e:	74 16                	je     0x40b766
40b750:	8b c1                	mov    %ecx,%eax
40b752:	83 e0 1f             	and    $0x1f,%eax
40b755:	6b c0 28             	imul   $0x28,%eax,%eax
40b758:	8b d1                	mov    %ecx,%edx
40b75a:	c1 fa 05             	sar    $0x5,%edx
40b75d:	03 04 95 c0 e4 41 00 	add    0x41e4c0(,%edx,4),%eax
40b764:	eb 05                	jmp    0x40b76b
40b766:	b8 f0 cb 41 00       	mov    $0x41cbf0,%eax
40b76b:	f6 40 04 20          	testb  $0x20,0x4(%eax)
40b76f:	74 14                	je     0x40b785
40b771:	6a 02                	push   $0x2