40d631:	8b 43 04             	mov    0x4(%ebx),%eax
40d634:	e8 53 82 ff ff       	call   0x40588c
40d639:	8b f8                	mov    %eax,%edi
40d63b:	85 ff                	test   %edi,%edi
40d63d:	0f 8c 54 01 00 00    	jl     0x40d797
40d643:	47                   	inc    %edi
40d644:	33 f6                	xor    %esi,%esi
40d646:	8d 04 b6             	lea    (%esi,%esi,4),%eax
40d649:	8b 53 04             	mov    0x4(%ebx),%edx
40d64c:	83 7c 82 04 00       	cmpl   $0x0,0x4(%edx,%eax,4)
40d651:	74 17                	je     0x40d66a
40d653:	8b 53 04             	mov    0x4(%ebx),%edx
40d656:	8b 04 82             	mov    (%edx,%eax,4),%eax
40d659:	8d 14 b6             	lea    (%esi,%esi,4),%edx
40d65c:	8b 4b 04             	mov    0x4(%ebx),%ecx
40d65f:	8b 54 91 04          	mov    0x4(%ecx,%edx,4),%edx
40d663:	89 02                	mov    %eax,(%edx)
40d665:	e9 06 01 00 00       	jmp    0x40d770
40d66a:	8b 53 04             	mov    0x4(%ebx),%edx
40d66d:	83 7c 82 0c 00       	cmpl   $0x0,0xc(%edx,%eax,4)
40d672:	0f 84 f8 00 00 00    	je     0x40d770
40d678:	8d 04 b6             	lea    (%esi,%esi,4),%eax
40d67b:	8b 53 04             	mov    0x4(%ebx),%edx
40d67e:	8b 44 82 0c          	mov    0xc(%edx,%eax,4),%eax
40d682:	33 d2                	xor    %edx,%edx
40d684:	89 54 24 08          	mov    %edx,0x8(%esp)
40d688:	0f b6 10             	movzbl (%eax),%edx
40d68b:	84 d2                	test   %dl,%dl
40d68d:	0f 84 a1 00 00 00    	je     0x40d734
40d693:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40d697:	03 c9                	add    %ecx,%ecx
40d699:	03 c9                	add    %ecx,%ecx
40d69b:	8b 6c 24 08          	mov    0x8(%esp),%ebp
40d69f:	c1 ed 1e             	shr    $0x1e,%ebp
40d6a2:	0b cd                	or     %ebp,%ecx
40d6a4:	0f b6 d2             	movzbl %dl,%edx
40d6a7:	0f b6 92 24 09 47 00 	movzbl 0x470924(%edx),%edx
40d6ae:	33 ca                	xor    %edx,%ecx
40d6b0:	89 4c 24 08          	mov    %ecx,0x8(%esp)
40d6b4:	80 78 01 00          	cmpb   $0x0,0x1(%eax)
40d6b8:	74 7a                	je     0x40d734
40d6ba:	8b 54 24 08          	mov    0x8(%esp),%edx
40d6be:	03 d2                	add    %edx,%edx
40d6c0:	03 d2                	add    %edx,%edx
40d6c2:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40d6c6:	c1 e9 1e             	shr    $0x1e,%ecx
40d6c9:	0b d1                	or     %ecx,%edx
40d6cb:	0f b6 48 01          	movzbl 0x1(%eax),%ecx
40d6cf:	0f b6 89 24 09 47 00 	movzbl 0x470924(%ecx),%ecx
40d6d6:	33 d1                	xor    %ecx,%edx
40d6d8:	89 54 24 08          	mov    %edx,0x8(%esp)
40d6dc:	80 78 02 00          	cmpb   $0x0,0x2(%eax)
40d6e0:	74 52                	je     0x40d734
40d6e2:	8b 54 24 08          	mov    0x8(%esp),%edx
40d6e6:	03 d2                	add    %edx,%edx
40d6e8:	03 d2                	add    %edx,%edx
40d6ea:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40d6ee:	c1 e9 1e             	shr    $0x1e,%ecx
40d6f1:	0b d1                	or     %ecx,%edx
40d6f3:	0f b6 48 02          	movzbl 0x2(%eax),%ecx
40d6f7:	0f b6 89 24 09 47 00 	movzbl 0x470924(%ecx),%ecx
40d6fe:	33 d1                	xor    %ecx,%edx
40d700:	89 54 24 08          	mov    %edx,0x8(%esp)
40d704:	80 78 03 00          	cmpb   $0x0,0x3(%eax)
40d708:	74 2a                	je     0x40d734
40d70a:	8b 54 24 08          	mov    0x8(%esp),%edx
40d70e:	03 d2                	add    %edx,%edx
40d710:	03 d2                	add    %edx,%edx
40d712:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40d716:	c1 e9 1e             	shr    $0x1e,%ecx
40d719:	0b d1                	or     %ecx,%edx
40d71b:	0f b6 48 03          	movzbl 0x3(%eax),%ecx
40d71f:	0f b6 89 24 09 47 00 	movzbl 0x470924(%ecx),%ecx
40d726:	33 d1                	xor    %ecx,%edx
40d728:	89 54 24 08          	mov    %edx,0x8(%esp)
40d72c:	83 c0 04             	add    $0x4,%eax
40d72f:	e9 54 ff ff ff       	jmp    0x40d688
40d734:	0f b6 44 24 08       	movzbl 0x8(%esp),%eax
40d739:	32 44 24 09          	xor    0x9(%esp),%al
40d73d:	32 44 24 0a          	xor    0xa(%esp),%al
40d741:	32 44 24 0b          	xor    0xb(%esp),%al
40d745:	0f b6 d0             	movzbl %al,%edx
40d748:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40d74c:	8b 14 91             	mov    (%ecx,%edx,4),%edx
40d74f:	8d 0c b6             	lea    (%esi,%esi,4),%ecx
40d752:	8b 6b 04             	mov    0x4(%ebx),%ebp
40d755:	8d 4c 8d 00          	lea    0x0(%ebp,%ecx,4),%ecx
40d759:	3b d1                	cmp    %ecx,%edx
40d75b:	75 13                	jne    0x40d770
40d75d:	8d 14 b6             	lea    (%esi,%esi,4),%edx
40d760:	8b 4b 04             	mov    0x4(%ebx),%ecx
40d763:	8b 14 91             	mov    (%ecx,%edx,4),%edx
40d766:	0f b6 c0             	movzbl %al,%eax
40d769:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40d76d:	89 14 81             	mov    %edx,(%ecx,%eax,4)
40d770:	8d 04 b6             	lea    (%esi,%esi,4),%eax
40d773:	8b 53 04             	mov    0x4(%ebx),%edx
40d776:	83 3c 82 00          	cmpl   $0x0,(%edx,%eax,4)
40d77a:	74 13                	je     0x40d78f
40d77c:	8b 53 04             	mov    0x4(%ebx),%edx
40d77f:	8b 44 82 04          	mov    0x4(%edx,%eax,4),%eax
40d783:	8d 14 b6             	lea    (%esi,%esi,4),%edx
40d786:	8b 4b 04             	mov    0x4(%ebx),%ecx
40d789:	8b 14 91             	mov    (%ecx,%edx,4),%edx
40d78c:	89 42 04             	mov    %eax,0x4(%edx)
40d78f:	46                   	inc    %esi
40d790:	4f                   	dec    %edi
40d791:	0f 85 af fe ff ff    	jne    0x40d646
40d797:	8b 15 b8 d5 40 00    	mov    0x40d5b8,%edx
40d79d:	8b c3                	mov    %ebx,%eax
40d79f:	e8 3c 7e ff ff       	call   0x4055e0
40d7a4:	8b 04 24             	mov    (%esp),%eax
40d7a7:	33 d2                	xor    %edx,%edx
40d7a9:	89 50 14             	mov    %edx,0x14(%eax)
40d7ac:	83 c4 0c             	add    $0xc,%esp
40d7af:	5d                   	pop    %ebp
40d7b0:	5f                   	pop    %edi
40d7b1:	5e                   	pop    %esi
40d7b2:	5b                   	pop    %ebx
40d7b3:	c3                   	ret
40d7b4:	ff 25 9c 2d 47 00    	jmp    *0x472d9c
40d7ba:	8b c0                	mov    %eax,%eax
40d7bc:	e8 e7 91 ff ff       	call   0x4069a8
40d7c1:	e8 02 00 00 00       	call   0x40d7c8
40d7c6:	c3                   	ret
40d7c7:	90                   	nop
40d7c8:	55                   	push   %ebp
40d7c9:	8b ec                	mov    %esp,%ebp
40d7cb:	83 c4 ec             	add    $0xffffffec,%esp
40d7ce:	53                   	push   %ebx
40d7cf:	33 d2                	xor    %edx,%edx
40d7d1:	89 55 ec             	mov    %edx,-0x14(%ebp)
40d7d4:	8b d8                	mov    %eax,%ebx
40d7d6:	33 c0                	xor    %eax,%eax
40d7d8:	55                   	push   %ebp
40d7d9:	68 53 d8 40 00       	push   $0x40d853
40d7de:	64 ff 30             	push   %fs:(%eax)
40d7e1:	64 89 20             	mov    %esp,%fs:(%eax)
40d7e4:	85 db                	test   %ebx,%ebx
40d7e6:	74 37                	je     0x40d81f
40d7e8:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40d7eb:	c6 45 f4 00          	movb   $0x0,-0xc(%ebp)
40d7ef:	8d 55 ec             	lea    -0x14(%ebp),%edx
40d7f2:	8b c3                	mov    %ebx,%eax
40d7f4:	e8 23 e2 ff ff       	call   0x40ba1c
40d7f9:	8b 45 ec             	mov    -0x14(%ebp),%eax
40d7fc:	89 45 f8             	mov    %eax,-0x8(%ebp)
40d7ff:	c6 45 fc 0b          	movb   $0xb,-0x4(%ebp)
40d803:	8d 45 f0             	lea    -0x10(%ebp),%eax
40d806:	50                   	push   %eax
40d807:	6a 01                	push   $0x1
40d809:	8b 0d a8 d6 46 00    	mov    0x46d6a8,%ecx
40d80f:	b2 01                	mov    $0x1,%dl
40d811:	a1 80 83 40 00       	mov    0x408380,%eax
40d816:	e8 19 eb ff ff       	call   0x40c334
40d81b:	8b d0                	mov    %eax,%edx
40d81d:	eb 14                	jmp    0x40d833
40d81f:	8b 0d a0 d7 46 00    	mov    0x46d7a0,%ecx
40d825:	b2 01                	mov    $0x1,%dl
40d827:	a1 80 83 40 00       	mov    0x408380,%eax
40d82c:	e8 c7 ea ff ff       	call   0x40c2f8
40d831:	8b d0                	mov    %eax,%edx
40d833:	89 5a 0c             	mov    %ebx,0xc(%edx)
40d836:	8b c2                	mov    %edx,%eax
40d838:	e8 2b 69 ff ff       	call   0x404168
40d83d:	33 c0                	xor    %eax,%eax
40d83f:	5a                   	pop    %edx
40d840:	59                   	pop    %ecx
40d841:	59                   	pop    %ecx
40d842:	64 89 10             	mov    %edx,%fs:(%eax)
40d845:	68 5a d8 40 00       	push   $0x40d85a
40d84a:	8d 45 ec             	lea    -0x14(%ebp),%eax
40d84d:	e8 ce 6e ff ff       	call   0x404720
40d852:	c3                   	ret
40d853:	e9 30 68 ff ff       	jmp    0x404088
40d858:	eb f0                	jmp    0x40d84a
40d85a:	5b                   	pop    %ebx
40d85b:	8b e5                	mov    %ebp,%esp
40d85d:	5d                   	pop    %ebp
40d85e:	c3                   	ret
40d85f:	90                   	nop
40d860:	53                   	push   %ebx
40d861:	8b d8                	mov    %eax,%ebx
40d863:	85 db                	test   %ebx,%ebx
40d865:	75 05                	jne    0x40d86c
40d867:	e8 50 ff ff ff       	call   0x40d7bc
40d86c:	8b c3                	mov    %ebx,%eax
40d86e:	5b                   	pop    %ebx
40d86f:	c3                   	ret
40d870:	53                   	push   %ebx
40d871:	56                   	push   %esi
40d872:	b3 01                	mov    $0x1,%bl
40d874:	8b 35 08 0a 46 00    	mov    0x460a08,%esi
40d87a:	eb 07                	jmp    0x40d883
40d87c:	ff 56 04             	call   *0x4(%esi)
40d87f:	8b d8                	mov    %eax,%ebx
40d881:	8b 36                	mov    (%esi),%esi
40d883:	84 db                	test   %bl,%bl
40d885:	74 04                	je     0x40d88b
40d887:	85 f6                	test   %esi,%esi
40d889:	75 f1                	jne    0x40d87c
40d88b:	8b c3                	mov    %ebx,%eax
40d88d:	5e                   	pop    %esi
40d88e:	5b                   	pop    %ebx
40d88f:	c3                   	ret
40d890:	53                   	push   %ebx
40d891:	56                   	push   %esi
40d892:	be 08 0a 46 00       	mov    $0x460a08,%esi
40d897:	eb 12                	jmp    0x40d8ab
40d899:	8b 1e                	mov    (%esi),%ebx
40d89b:	8b 03                	mov    (%ebx),%eax
40d89d:	89 06                	mov    %eax,(%esi)
40d89f:	ba 08 00 00 00       	mov    $0x8,%edx
40d8a4:	8b c3                	mov    %ebx,%eax
40d8a6:	e8 5d 54 ff ff       	call   0x402d08
40d8ab:	83 3e 00             	cmpl   $0x0,(%esi)
40d8ae:	75 e9                	jne    0x40d899
40d8b0:	5e                   	pop    %esi
40d8b1:	5b                   	pop    %ebx
40d8b2:	c3                   	ret
40d8b3:	90                   	nop
40d8b4:	53                   	push   %ebx
40d8b5:	68 ec d8 40 00       	push   $0x40d8ec
40d8ba:	e8 09 91 ff ff       	call   0x4069c8
40d8bf:	8b d8                	mov    %eax,%ebx
40d8c1:	85 db                	test   %ebx,%ebx
40d8c3:	74 10                	je     0x40d8d5
40d8c5:	68 fc d8 40 00       	push   $0x40d8fc
40d8ca:	53                   	push   %ebx
40d8cb:	e8 00 91 ff ff       	call   0x4069d0
40d8d0:	a3 30 08 46 00       	mov    %eax,0x460830
40d8d5:	83 3d 30 08 46 00 00 	cmpl   $0x0,0x460830
40d8dc:	75 0a                	jne    0x40d8e8
40d8de:	b8 54 91 40 00       	mov    $0x409154,%eax
40d8e3:	a3 30 08 46 00       	mov    %eax,0x460830
40d8e8:	5b                   	pop    %ebx
40d8e9:	c3                   	ret
40d8ea:	00 00                	add    %al,(%eax)
40d8ec:	6b 65 72 6e          	imul   $0x6e,0x72(%ebp),%esp
40d8f0:	65 6c                	gs insb (%dx),%es:(%edi)
40d8f2:	33 32                	xor    (%edx),%esi
40d8f4:	2e 64 6c             	cs fs insb (%dx),%es:(%edi)
40d8f7:	6c                   	insb   (%dx),%es:(%edi)
40d8f8:	00 00                	add    %al,(%eax)
40d8fa:	00 00                	add    %al,(%eax)
40d8fc:	47                   	inc    %edi
40d8fd:	65 74 44             	gs je  0x40d944
40d900:	69 73 6b 46 72 65 65 	imul   $0x65657246,0x6b(%ebx),%esi
40d907:	53                   	push   %ebx
40d908:	70 61                	jo     0x40d96b
40d90a:	63 65 45             	arpl   %esp,0x45(%ebp)
40d90d:	78 41                	js     0x40d950
40d90f:	00 ba 01 00 00 00    	add    %bh,0x1(%edx)
40d915:	92                   	xchg   %eax,%edx
40d916:	f0 0f c1 02          	lock xadd %eax,(%edx)
40d91a:	40                   	inc    %eax
40d91b:	c3                   	ret
40d91c:	ba ff ff ff ff       	mov    $0xffffffff,%edx
40d921:	92                   	xchg   %eax,%edx
40d922:	f0 0f c1 02          	lock xadd %eax,(%edx)
40d926:	48                   	dec    %eax
40d927:	c3                   	ret
40d928:	87 10                	xchg   %edx,(%eax)
40d92a:	89 d0                	mov    %edx,%eax
40d92c:	c3                   	ret
40d92d:	8d 40 00             	lea    0x0(%eax),%eax
40d930:	92                   	xchg   %eax,%edx
40d931:	f0 0f c1 02          	lock xadd %eax,(%edx)
40d935:	c3                   	ret
40d936:	8b c0                	mov    %eax,%eax
40d938:	53                   	push   %ebx
40d939:	56                   	push   %esi
40d93a:	57                   	push   %edi
40d93b:	55                   	push   %ebp
40d93c:	51                   	push   %ecx
40d93d:	e8 7e 63 ff ff       	call   0x403cc0
40d942:	88 14 24             	mov    %dl,(%esp)
40d945:	8b e8                	mov    %eax,%ebp
40d947:	33 ff                	xor    %edi,%edi
40d949:	8b 5c bd 04          	mov    0x4(%ebp,%edi,4),%ebx
40d94d:	33 c0                	xor    %eax,%eax
40d94f:	89 44 bd 04          	mov    %eax,0x4(%ebp,%edi,4)
40d953:	85 db                	test   %ebx,%ebx
40d955:	74 0f                	je     0x40d966
40d957:	8b f3                	mov    %ebx,%esi
40d959:	8b 1b                	mov    (%ebx),%ebx
40d95b:	8b c6                	mov    %esi,%eax
40d95d:	e8 a6 53 ff ff       	call   0x402d08
40d962:	85 db                	test   %ebx,%ebx
40d964:	75 f1                	jne    0x40d957
40d966:	47                   	inc    %edi
40d967:	83 ff 10             	cmp    $0x10,%edi
40d96a:	75 dd                	jne    0x40d949
40d96c:	0f b6 14 24          	movzbl (%esp),%edx
40d970:	80 e2 fc             	and    $0xfc,%dl
40d973:	8b c5                	mov    %ebp,%eax
40d975:	e8 6a 5f ff ff       	call   0x4038e4
40d97a:	80 3c 24 00          	cmpb   $0x0,(%esp)
40d97e:	7e 07                	jle    0x40d987
40d980:	8b c5                	mov    %ebp,%eax
40d982:	e8 e1 62 ff ff       	call   0x403c68
40d987:	5a                   	pop    %edx
40d988:	5d                   	pop    %ebp
40d989:	5f                   	pop    %edi
40d98a:	5e                   	pop    %esi
40d98b:	5b                   	pop    %ebx
40d98c:	c3                   	ret
40d98d:	8d 40 00             	lea    0x0(%eax),%eax
40d990:	55                   	push   %ebp
40d991:	8b ec                	mov    %esp,%ebp
40d993:	51                   	push   %ecx
40d994:	e8 ef 8f ff ff       	call   0x406988
40d999:	66 89 45 fe          	mov    %ax,-0x2(%ebp)
40d99d:	0f b6 45 fe          	movzbl -0x2(%ebp),%eax
40d9a1:	32 45 ff             	xor    -0x1(%ebp),%al
40d9a4:	24 0f                	and    $0xf,%al
40d9a6:	59                   	pop    %ecx
40d9a7:	5d                   	pop    %ebp
40d9a8:	c3                   	ret
40d9a9:	8d 40 00             	lea    0x0(%eax),%eax
40d9ac:	53                   	push   %ebx
40d9ad:	56                   	push   %esi
40d9ae:	57                   	push   %edi
40d9af:	55                   	push   %ebp
40d9b0:	51                   	push   %ecx
40d9b1:	89 14 24             	mov    %edx,(%esp)
40d9b4:	8b f8                	mov    %eax,%edi
40d9b6:	8b c7                	mov    %edi,%eax
40d9b8:	e8 d3 ff ff ff       	call   0x40d990
40d9bd:	8b d8                	mov    %eax,%ebx
40d9bf:	e8 c4 8f ff ff       	call   0x406988
40d9c4:	8b f0                	mov    %eax,%esi
40d9c6:	0f b6 c3             	movzbl %bl,%eax
40d9c9:	8b 6c 87 04          	mov    0x4(%edi,%eax,4),%ebp
40d9cd:	eb 03                	jmp    0x40d9d2
40d9cf:	8b 6d 00             	mov    0x0(%ebp),%ebp
40d9d2:	85 ed                	test   %ebp,%ebp
40d9d4:	74 05                	je     0x40d9db
40d9d6:	3b 75 04             	cmp    0x4(%ebp),%esi
40d9d9:	75 f4                	jne    0x40d9cf
40d9db:	85 ed                	test   %ebp,%ebp
40d9dd:	75 37                	jne    0x40da16
40d9df:	8b c7                	mov    %edi,%eax
40d9e1:	e8 4e 00 00 00       	call   0x40da34
40d9e6:	8b e8                	mov    %eax,%ebp
40d9e8:	85 ed                	test   %ebp,%ebp
40d9ea:	75 2a                	jne    0x40da16
40d9ec:	b8 10 00 00 00       	mov    $0x10,%eax
40d9f1:	e8 de 52 ff ff       	call   0x402cd4
40d9f6:	8b e8                	mov    %eax,%ebp