40e5b0:	5b                   	pop    %ebx
40e5b1:	c9                   	leave
40e5b2:	c3                   	ret
40e5b3:	33 c0                	xor    %eax,%eax
40e5b5:	eb f7                	jmp    0x40e5ae
40e5b7:	64 a1 30 00 00 00    	mov    %fs:0x30,%eax
40e5bd:	c3                   	ret
40e5be:	64 a1 30 00 00 00    	mov    %fs:0x30,%eax
40e5c4:	56                   	push   %esi
40e5c5:	57                   	push   %edi
40e5c6:	8b 78 0c             	mov    0xc(%eax),%edi
40e5c9:	83 c7 14             	add    $0x14,%edi
40e5cc:	8b 37                	mov    (%edi),%esi
40e5ce:	eb 0e                	jmp    0x40e5de
40e5d0:	8b 4e 28             	mov    0x28(%esi),%ecx
40e5d3:	e8 a4 00 00 00       	call   0x40e67c
40e5d8:	85 c0                	test   %eax,%eax
40e5da:	74 0b                	je     0x40e5e7
40e5dc:	8b 36                	mov    (%esi),%esi
40e5de:	3b f7                	cmp    %edi,%esi
40e5e0:	75 ee                	jne    0x40e5d0
40e5e2:	33 c0                	xor    %eax,%eax
40e5e4:	5f                   	pop    %edi
40e5e5:	5e                   	pop    %esi
40e5e6:	c3                   	ret
40e5e7:	8b 46 10             	mov    0x10(%esi),%eax
40e5ea:	eb f8                	jmp    0x40e5e4
40e5ec:	55                   	push   %ebp
40e5ed:	8b ec                	mov    %esp,%ebp
40e5ef:	56                   	push   %esi
40e5f0:	57                   	push   %edi
40e5f1:	8b f1                	mov    %ecx,%esi
40e5f3:	e8 6a 00 00 00       	call   0x40e662
40e5f8:	85 c0                	test   %eax,%eax
40e5fa:	74 60                	je     0x40e65c
40e5fc:	0f b7 50 04          	movzwl 0x4(%eax),%edx
40e600:	b9 4c 01 00 00       	mov    $0x14c,%ecx
40e605:	66 3b d1             	cmp    %cx,%dx
40e608:	75 22                	jne    0x40e62c
40e60a:	8b 4d 08             	mov    0x8(%ebp),%ecx
40e60d:	8b 54 c8 78          	mov    0x78(%eax,%ecx,8),%edx
40e611:	85 d2                	test   %edx,%edx
40e613:	74 47                	je     0x40e65c
40e615:	3b 48 74             	cmp    0x74(%eax),%ecx
40e618:	73 42                	jae    0x40e65c
40e61a:	8b 7d 0c             	mov    0xc(%ebp),%edi
40e61d:	85 ff                	test   %edi,%edi
40e61f:	74 06                	je     0x40e627
40e621:	8b 44 c8 7c          	mov    0x7c(%eax,%ecx,8),%eax
40e625:	89 07                	mov    %eax,(%edi)
40e627:	8d 04 32             	lea    (%edx,%esi,1),%eax
40e62a:	eb 32                	jmp    0x40e65e
40e62c:	b9 64 86 00 00       	mov    $0x8664,%ecx
40e631:	66 3b d1             	cmp    %cx,%dx
40e634:	75 26                	jne    0x40e65c
40e636:	8b 4d 08             	mov    0x8(%ebp),%ecx
40e639:	8b 94 c8 88 00 00 00 	mov    0x88(%eax,%ecx,8),%edx
40e640:	85 d2                	test   %edx,%edx
40e642:	74 18                	je     0x40e65c
40e644:	3b 88 84 00 00 00    	cmp    0x84(%eax),%ecx
40e64a:	73 10                	jae    0x40e65c
40e64c:	8b 7d 0c             	mov    0xc(%ebp),%edi
40e64f:	85 ff                	test   %edi,%edi
40e651:	74 d4                	je     0x40e627
40e653:	8b 84 c8 8c 00 00 00 	mov    0x8c(%eax,%ecx,8),%eax
40e65a:	eb c9                	jmp    0x40e625
40e65c:	33 c0                	xor    %eax,%eax
40e65e:	5f                   	pop    %edi
40e65f:	5e                   	pop    %esi
40e660:	5d                   	pop    %ebp
40e661:	c3                   	ret
40e662:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
40e667:	66 39 01             	cmp    %ax,(%ecx)
40e66a:	75 0d                	jne    0x40e679
40e66c:	8b 41 3c             	mov    0x3c(%ecx),%eax
40e66f:	03 c1                	add    %ecx,%eax
40e671:	81 38 50 45 00 00    	cmpl   $0x4550,(%eax)
40e677:	74 02                	je     0x40e67b
40e679:	33 c0                	xor    %eax,%eax
40e67b:	c3                   	ret
40e67c:	56                   	push   %esi
40e67d:	57                   	push   %edi
40e67e:	33 ff                	xor    %edi,%edi
40e680:	b8 40 43 41 00       	mov    $0x414340,%eax
40e685:	66 39 39             	cmp    %di,(%ecx)
40e688:	74 2c                	je     0x40e6b6
40e68a:	2b c8                	sub    %eax,%ecx
40e68c:	0f b7 10             	movzwl (%eax),%edx
40e68f:	66 85 d2             	test   %dx,%dx
40e692:	74 1d                	je     0x40e6b1
40e694:	0f b7 34 01          	movzwl (%ecx,%eax,1),%esi
40e698:	66 3b d6             	cmp    %si,%dx
40e69b:	77 19                	ja     0x40e6b6
40e69d:	72 12                	jb     0x40e6b1
40e69f:	83 c0 02             	add    $0x2,%eax
40e6a2:	66 39 3c 01          	cmp    %di,(%ecx,%eax,1)
40e6a6:	75 e4                	jne    0x40e68c
40e6a8:	66 39 38             	cmp    %di,(%eax)
40e6ab:	75 09                	jne    0x40e6b6
40e6ad:	33 c0                	xor    %eax,%eax
40e6af:	eb 08                	jmp    0x40e6b9
40e6b1:	33 c0                	xor    %eax,%eax
40e6b3:	40                   	inc    %eax
40e6b4:	eb 03                	jmp    0x40e6b9
40e6b6:	83 c8 ff             	or     $0xffffffff,%eax
40e6b9:	5f                   	pop    %edi
40e6ba:	5e                   	pop    %esi
40e6bb:	c3                   	ret
40e6bc:	80 39 00             	cmpb   $0x0,(%ecx)
40e6bf:	b8 a0 42 41 00       	mov    $0x4142a0,%eax
40e6c4:	53                   	push   %ebx
40e6c5:	74 28                	je     0x40e6ef
40e6c7:	2b c8                	sub    %eax,%ecx
40e6c9:	8a 10                	mov    (%eax),%dl
40e6cb:	84 d2                	test   %dl,%dl
40e6cd:	74 1b                	je     0x40e6ea
40e6cf:	8a 1c 01             	mov    (%ecx,%eax,1),%bl
40e6d2:	3a d3                	cmp    %bl,%dl
40e6d4:	77 19                	ja     0x40e6ef
40e6d6:	3a da                	cmp    %dl,%bl
40e6d8:	77 10                	ja     0x40e6ea
40e6da:	40                   	inc    %eax
40e6db:	80 3c 01 00          	cmpb   $0x0,(%ecx,%eax,1)
40e6df:	75 e8                	jne    0x40e6c9
40e6e1:	80 38 00             	cmpb   $0x0,(%eax)
40e6e4:	75 09                	jne    0x40e6ef
40e6e6:	33 c0                	xor    %eax,%eax
40e6e8:	5b                   	pop    %ebx
40e6e9:	c3                   	ret
40e6ea:	33 c0                	xor    %eax,%eax
40e6ec:	40                   	inc    %eax
40e6ed:	5b                   	pop    %ebx
40e6ee:	c3                   	ret
40e6ef:	83 c8 ff             	or     $0xffffffff,%eax
40e6f2:	5b                   	pop    %ebx
40e6f3:	c3                   	ret
40e6f4:	55                   	push   %ebp
40e6f5:	8b ec                	mov    %esp,%ebp
40e6f7:	51                   	push   %ecx
40e6f8:	53                   	push   %ebx
40e6f9:	56                   	push   %esi
40e6fa:	33 d2                	xor    %edx,%edx
40e6fc:	8b d9                	mov    %ecx,%ebx
40e6fe:	57                   	push   %edi
40e6ff:	89 55 fc             	mov    %edx,-0x4(%ebp)
40e702:	e8 5b ff ff ff       	call   0x40e662
40e707:	8b f8                	mov    %eax,%edi
40e709:	85 ff                	test   %edi,%edi
40e70b:	74 4e                	je     0x40e75b
40e70d:	51                   	push   %ecx
40e70e:	8d 45 fc             	lea    -0x4(%ebp),%eax
40e711:	50                   	push   %eax
40e712:	6a 05                	push   $0x5
40e714:	e8 d3 fe ff ff       	call   0x40e5ec
40e719:	83 c4 0c             	add    $0xc,%esp
40e71c:	85 c0                	test   %eax,%eax
40e71e:	74 33                	je     0x40e753
40e720:	8b 75 fc             	mov    -0x4(%ebp),%esi
40e723:	85 f6                	test   %esi,%esi
40e725:	74 2c                	je     0x40e753
40e727:	8b 50 04             	mov    0x4(%eax),%edx
40e72a:	2b f2                	sub    %edx,%esi
40e72c:	ff 75 0c             	push   0xc(%ebp)
40e72f:	8b 08                	mov    (%eax),%ecx
40e731:	83 c2 f8             	add    $0xfffffff8,%edx
40e734:	ff 75 08             	push   0x8(%ebp)
40e737:	83 c0 08             	add    $0x8,%eax
40e73a:	d1 ea                	shr    $1,%edx
40e73c:	03 cb                	add    %ebx,%ecx
40e73e:	50                   	push   %eax
40e73f:	e8 fa fc ff ff       	call   0x40e43e
40e744:	83 c4 0c             	add    $0xc,%esp
40e747:	85 c0                	test   %eax,%eax
40e749:	74 04                	je     0x40e74f
40e74b:	85 f6                	test   %esi,%esi
40e74d:	75 d8                	jne    0x40e727
40e74f:	b2 01                	mov    $0x1,%dl
40e751:	eb 08                	jmp    0x40e75b
40e753:	8a 57 16             	mov    0x16(%edi),%dl
40e756:	f6 d2                	not    %dl
40e758:	80 e2 01             	and    $0x1,%dl
40e75b:	5f                   	pop    %edi
40e75c:	5e                   	pop    %esi
40e75d:	8a c2                	mov    %dl,%al
40e75f:	5b                   	pop    %ebx
40e760:	c9                   	leave
40e761:	c3                   	ret
40e762:	55                   	push   %ebp
40e763:	8b ec                	mov    %esp,%ebp
40e765:	83 ec 2c             	sub    $0x2c,%esp
40e768:	53                   	push   %ebx
40e769:	56                   	push   %esi
40e76a:	57                   	push   %edi
40e76b:	8b f9                	mov    %ecx,%edi
40e76d:	51                   	push   %ecx
40e76e:	89 7d f0             	mov    %edi,-0x10(%ebp)
40e771:	e8 48 fe ff ff       	call   0x40e5be
40e776:	ba 54 43 41 00       	mov    $0x414354,%edx
40e77b:	8b c8                	mov    %eax,%ecx
40e77d:	e8 85 01 00 00       	call   0x40e907
40e782:	8b d8                	mov    %eax,%ebx
40e784:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40e787:	e8 32 fe ff ff       	call   0x40e5be
40e78c:	ba 60 43 41 00       	mov    $0x414360,%edx
40e791:	8b c8                	mov    %eax,%ecx
40e793:	e8 6f 01 00 00       	call   0x40e907
40e798:	89 45 ec             	mov    %eax,-0x14(%ebp)
40e79b:	e8 1e fe ff ff       	call   0x40e5be
40e7a0:	ba 84 43 41 00       	mov    $0x414384,%edx
40e7a5:	8b c8                	mov    %eax,%ecx
40e7a7:	e8 5b 01 00 00       	call   0x40e907
40e7ac:	89 45 f8             	mov    %eax,-0x8(%ebp)
40e7af:	e8 0a fe ff ff       	call   0x40e5be
40e7b4:	ba 9c 43 41 00       	mov    $0x41439c,%edx
40e7b9:	8b c8                	mov    %eax,%ecx
40e7bb:	e8 47 01 00 00       	call   0x40e907
40e7c0:	6a 00                	push   $0x0
40e7c2:	6a 01                	push   $0x1
40e7c4:	8b cf                	mov    %edi,%ecx
40e7c6:	89 45 e8             	mov    %eax,-0x18(%ebp)
40e7c9:	e8 1e fe ff ff       	call   0x40e5ec
40e7ce:	8b f0                	mov    %eax,%esi
40e7d0:	83 c4 0c             	add    $0xc,%esp
40e7d3:	85 f6                	test   %esi,%esi
40e7d5:	0f 85 a9 00 00 00    	jne    0x40e884
40e7db:	b0 01                	mov    $0x1,%al
40e7dd:	5f                   	pop    %edi
40e7de:	5e                   	pop    %esi
40e7df:	5b                   	pop    %ebx
40e7e0:	c9                   	leave
40e7e1:	c3                   	ret
40e7e2:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40e7e6:	03 c7                	add    %edi,%eax
40e7e8:	50                   	push   %eax
40e7e9:	8d 45 dc             	lea    -0x24(%ebp),%eax
40e7ec:	50                   	push   %eax
40e7ed:	ff 55 ec             	call   *-0x14(%ebp)
40e7f0:	8d 45 fc             	lea    -0x4(%ebp),%eax
40e7f3:	50                   	push   %eax
40e7f4:	8d 45 dc             	lea    -0x24(%ebp),%eax
40e7f7:	50                   	push   %eax
40e7f8:	6a 00                	push   $0x0
40e7fa:	6a 00                	push   $0x0
40e7fc:	ff d3                	call   *%ebx
40e7fe:	85 c0                	test   %eax,%eax
40e800:	0f 88 8e 00 00 00    	js     0x40e894
40e806:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e809:	85 c9                	test   %ecx,%ecx
40e80b:	0f 84 83 00 00 00    	je     0x40e894
40e811:	8b 06                	mov    (%esi),%eax
40e813:	85 c0                	test   %eax,%eax
40e815:	74 05                	je     0x40e81c
40e817:	8b 56 10             	mov    0x10(%esi),%edx
40e81a:	eb 05                	jmp    0x40e821
40e81c:	8b 46 10             	mov    0x10(%esi),%eax
40e81f:	8b d0                	mov    %eax,%edx
40e821:	8d 1c 3a             	lea    (%edx,%edi,1),%ebx
40e824:	03 f8                	add    %eax,%edi
40e826:	8b 07                	mov    (%edi),%eax
40e828:	85 c0                	test   %eax,%eax
40e82a:	74 4f                	je     0x40e87b
40e82c:	85 c0                	test   %eax,%eax
40e82e:	79 0d                	jns    0x40e83d
40e830:	8d 55 f4             	lea    -0xc(%ebp),%edx
40e833:	0f b7 c0             	movzwl %ax,%eax
40e836:	52                   	push   %edx
40e837:	50                   	push   %eax
40e838:	6a 00                	push   $0x0
40e83a:	51                   	push   %ecx
40e83b:	eb 1d                	jmp    0x40e85a
40e83d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40e840:	83 c1 02             	add    $0x2,%ecx
40e843:	03 c1                	add    %ecx,%eax
40e845:	50                   	push   %eax
40e846:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40e849:	50                   	push   %eax
40e84a:	ff 55 e8             	call   *-0x18(%ebp)
40e84d:	8d 45 f4             	lea    -0xc(%ebp),%eax
40e850:	50                   	push   %eax
40e851:	6a 00                	push   $0x0
40e853:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40e856:	50                   	push   %eax
40e857:	ff 75 fc             	push   -0x4(%ebp)
40e85a:	ff 55 f8             	call   *-0x8(%ebp)
40e85d:	85 c0                	test   %eax,%eax
40e85f:	78 33                	js     0x40e894
40e861:	8b 45 f4             	mov    -0xc(%ebp),%eax
40e864:	85 c0                	test   %eax,%eax
40e866:	74 2c                	je     0x40e894
40e868:	83 c7 04             	add    $0x4,%edi
40e86b:	89 03                	mov    %eax,(%ebx)
40e86d:	83 c3 04             	add    $0x4,%ebx
40e870:	8b 07                	mov    (%edi),%eax
40e872:	85 c0                	test   %eax,%eax
40e874:	74 05                	je     0x40e87b
40e876:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e879:	eb b1                	jmp    0x40e82c
40e87b:	8b 7d f0             	mov    -0x10(%ebp),%edi
40e87e:	83 c6 14             	add    $0x14,%esi
40e881:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
40e884:	8b 46 0c             	mov    0xc(%esi),%eax
40e887:	85 c0                	test   %eax,%eax
40e889:	0f 85 53 ff ff ff    	jne    0x40e7e2
40e88f:	e9 47 ff ff ff       	jmp    0x40e7db
40e894:	32 c0                	xor    %al,%al
40e896:	e9 42 ff ff ff       	jmp    0x40e7dd
40e89b:	55                   	push   %ebp
40e89c:	8b ec                	mov    %esp,%ebp
40e89e:	51                   	push   %ecx
40e89f:	51                   	push   %ecx
40e8a0:	56                   	push   %esi
40e8a1:	0f 57 c0             	xorps  %xmm0,%xmm0
40e8a4:	57                   	push   %edi
40e8a5:	66 0f 13 45 f8       	movlpd %xmm0,-0x8(%ebp)
40e8aa:	e8 b3 fd ff ff       	call   0x40e662
40e8af:	8b c8                	mov    %eax,%ecx
40e8b1:	85 c9                	test   %ecx,%ecx
40e8b3:	74 2d                	je     0x40e8e2
40e8b5:	0f b7 71 04          	movzwl 0x4(%ecx),%esi
40e8b9:	b8 64 86 00 00       	mov    $0x8664,%eax
40e8be:	66 3b f0             	cmp    %ax,%si
40e8c1:	75 08                	jne    0x40e8cb
40e8c3:	8b 41 30             	mov    0x30(%ecx),%eax
40e8c6:	8b 51 34             	mov    0x34(%ecx),%edx
40e8c9:	eb 06                	jmp    0x40e8d1
40e8cb:	8b 55 fc             	mov    -0x4(%ebp),%edx
40e8ce:	8b 45 f8             	mov    -0x8(%ebp),%eax
40e8d1:	bf 4c 01 00 00       	mov    $0x14c,%edi
40e8d6:	66 3b f7             	cmp    %di,%si
40e8d9:	75 0d                	jne    0x40e8e8
40e8db:	8b 41 34             	mov    0x34(%ecx),%eax
40e8de:	33 d2                	xor    %edx,%edx
40e8e0:	eb 06                	jmp    0x40e8e8
40e8e2:	8b 55 fc             	mov    -0x4(%ebp),%edx
40e8e5:	8b 45 f8             	mov    -0x8(%ebp),%eax
40e8e8:	5f                   	pop    %edi
40e8e9:	5e                   	pop    %esi
40e8ea:	c9                   	leave
40e8eb:	c3                   	ret
40e8ec:	64 a1 30 00 00 00    	mov    %fs:0x30,%eax
40e8f2:	85 c0                	test   %eax,%eax
40e8f4:	74 0e                	je     0x40e904
40e8f6:	8b 40 0c             	mov    0xc(%eax),%eax
40e8f9:	8b 40 0c             	mov    0xc(%eax),%eax
40e8fc:	8b 00                	mov    (%eax),%eax
40e8fe:	8b 00                	mov    (%eax),%eax
40e900:	8b 40 18             	mov    0x18(%eax),%eax
40e903:	c3                   	ret
40e904:	33 c0                	xor    %eax,%eax
40e906:	c3                   	ret