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
40d9f8:	89 75 04             	mov    %esi,0x4(%ebp)
40d9fb:	c7 45 08 ff ff ff 7f 	movl   $0x7fffffff,0x8(%ebp)
40da02:	89 6d 00             	mov    %ebp,0x0(%ebp)
40da05:	0f b6 c3             	movzbl %bl,%eax
40da08:	8d 44 87 04          	lea    0x4(%edi,%eax,4),%eax
40da0c:	8b d5                	mov    %ebp,%edx
40da0e:	e8 15 ff ff ff       	call   0x40d928
40da13:	89 45 00             	mov    %eax,0x0(%ebp)
40da16:	8b 04 24             	mov    (%esp),%eax
40da19:	89 28                	mov    %ebp,(%eax)
40da1b:	5a                   	pop    %edx
40da1c:	5d                   	pop    %ebp
40da1d:	5f                   	pop    %edi
40da1e:	5e                   	pop    %esi
40da1f:	5b                   	pop    %ebx
40da20:	c3                   	ret
40da21:	8d 40 00             	lea    0x0(%eax),%eax
40da24:	8b 02                	mov    (%edx),%eax
40da26:	33 c9                	xor    %ecx,%ecx
40da28:	89 48 04             	mov    %ecx,0x4(%eax)
40da2b:	8b 02                	mov    (%edx),%eax
40da2d:	33 d2                	xor    %edx,%edx
40da2f:	89 50 08             	mov    %edx,0x8(%eax)
40da32:	c3                   	ret
40da33:	90                   	nop
40da34:	53                   	push   %ebx
40da35:	56                   	push   %esi
40da36:	8b d8                	mov    %eax,%ebx
40da38:	8b c3                	mov    %ebx,%eax
40da3a:	e8 51 ff ff ff       	call   0x40d990
40da3f:	0f b6 c0             	movzbl %al,%eax
40da42:	8b 5c 83 04          	mov    0x4(%ebx,%eax,4),%ebx
40da46:	85 db                	test   %ebx,%ebx
40da48:	74 27                	je     0x40da71
40da4a:	8d 43 08             	lea    0x8(%ebx),%eax
40da4d:	ba ff ff ff 7f       	mov    $0x7fffffff,%edx
40da52:	e8 d1 fe ff ff       	call   0x40d928
40da57:	8b f0                	mov    %eax,%esi
40da59:	81 fe ff ff ff 7f    	cmp    $0x7fffffff,%esi
40da5f:	74 0a                	je     0x40da6b
40da61:	e8 22 8f ff ff       	call   0x406988
40da66:	89 43 04             	mov    %eax,0x4(%ebx)
40da69:	eb 06                	jmp    0x40da71
40da6b:	8b 1b                	mov    (%ebx),%ebx
40da6d:	85 db                	test   %ebx,%ebx
40da6f:	75 d9                	jne    0x40da4a
40da71:	8b c3                	mov    %ebx,%eax
40da73:	5e                   	pop    %esi
40da74:	5b                   	pop    %ebx
40da75:	c3                   	ret
40da76:	8b c0                	mov    %eax,%eax
40da78:	53                   	push   %ebx
40da79:	56                   	push   %esi
40da7a:	84 d2                	test   %dl,%dl
40da7c:	74 08                	je     0x40da86
40da7e:	83 c4 f0             	add    $0xfffffff0,%esp
40da81:	e8 92 61 ff ff       	call   0x403c18
40da86:	8b da                	mov    %edx,%ebx
40da88:	8b f0                	mov    %eax,%esi
40da8a:	33 d2                	xor    %edx,%edx
40da8c:	8b c6                	mov    %esi,%eax
40da8e:	e8 31 5e ff ff       	call   0x4038c4
40da93:	c7 46 0c ff ff 00 00 	movl   $0xffff,0xc(%esi)
40da9a:	6a 00                	push   $0x0
40da9c:	6a ff                	push   $0xffffffff
40da9e:	6a ff                	push   $0xffffffff
40daa0:	6a 00                	push   $0x0
40daa2:	e8 79 8e ff ff       	call   0x406920
40daa7:	89 46 10             	mov    %eax,0x10(%esi)
40daaa:	6a 00                	push   $0x0
40daac:	6a 00                	push   $0x0
40daae:	6a 00                	push   $0x0
40dab0:	6a 00                	push   $0x0
40dab2:	e8 69 8e ff ff       	call   0x406920
40dab7:	89 46 14             	mov    %eax,0x14(%esi)
40daba:	c7 46 18 ff ff ff ff 	movl   $0xffffffff,0x18(%esi)
40dac1:	b2 01                	mov    $0x1,%dl
40dac3:	a1 8c 84 40 00       	mov    0x40848c,%eax
40dac8:	e8 f7 5d ff ff       	call   0x4038c4
40dacd:	89 46 20             	mov    %eax,0x20(%esi)
40dad0:	8b c6                	mov    %esi,%eax
40dad2:	84 db                	test   %bl,%bl
40dad4:	74 0f                	je     0x40dae5
40dad6:	e8 95 61 ff ff       	call   0x403c70
40dadb:	64 8f 05 00 00 00 00 	pop    %fs:0x0
40dae2:	83 c4 0c             	add    $0xc,%esp
40dae5:	8b c6                	mov    %esi,%eax
40dae7:	5e                   	pop    %esi
40dae8:	5b                   	pop    %ebx
40dae9:	c3                   	ret
40daea:	8b c0                	mov    %eax,%eax
40daec:	53                   	push   %ebx
40daed:	56                   	push   %esi
40daee:	e8 cd 61 ff ff       	call   0x403cc0
40daf3:	8b da                	mov    %edx,%ebx
40daf5:	8b f0                	mov    %eax,%esi
40daf7:	8b c6                	mov    %esi,%eax
40daf9:	e8 7a 00 00 00       	call   0x40db78
40dafe:	8b d3                	mov    %ebx,%edx
40db00:	80 e2 fc             	and    $0xfc,%dl
40db03:	8b c6                	mov    %esi,%eax
40db05:	e8 da 5d ff ff       	call   0x4038e4
40db0a:	8b 46 10             	mov    0x10(%esi),%eax
40db0d:	50                   	push   %eax
40db0e:	e8 fd 8d ff ff       	call   0x406910
40db13:	8b 46 14             	mov    0x14(%esi),%eax
40db16:	50                   	push   %eax
40db17:	e8 f4 8d ff ff       	call   0x406910
40db1c:	8b 46 20             	mov    0x20(%esi),%eax
40db1f:	e8 d0 5d ff ff       	call   0x4038f4
40db24:	84 db                	test   %bl,%bl
40db26:	7e 07                	jle    0x40db2f
40db28:	8b c6                	mov    %esi,%eax
40db2a:	e8 39 61 ff ff       	call   0x403c68
40db2f:	5e                   	pop    %esi
40db30:	5b                   	pop    %ebx
40db31:	c3                   	ret
40db32:	8b c0                	mov    %eax,%eax
40db34:	8b 40 10             	mov    0x10(%eax),%eax
40db37:	50                   	push   %eax
40db38:	e8 4b 8f ff ff       	call   0x406a88
40db3d:	c3                   	ret
40db3e:	8b c0                	mov    %eax,%eax
40db40:	8b 40 10             	mov    0x10(%eax),%eax
40db43:	50                   	push   %eax
40db44:	e8 57 8f ff ff       	call   0x406aa0
40db49:	c3                   	ret
40db4a:	8b c0                	mov    %eax,%eax
40db4c:	8b 40 14             	mov    0x14(%eax),%eax
40db4f:	50                   	push   %eax
40db50:	e8 4b 8f ff ff       	call   0x406aa0
40db55:	c3                   	ret
40db56:	8b c0                	mov    %eax,%eax
40db58:	8b 50 18             	mov    0x18(%eax),%edx
40db5b:	52                   	push   %edx
40db5c:	8b 40 10             	mov    0x10(%eax),%eax
40db5f:	50                   	push   %eax
40db60:	e8 73 8f ff ff       	call   0x406ad8
40db65:	c3                   	ret
40db66:	8b c0                	mov    %eax,%eax
40db68:	8b 50 18             	mov    0x18(%eax),%edx
40db6b:	52                   	push   %edx
40db6c:	8b 40 14             	mov    0x14(%eax),%eax
40db6f:	50                   	push   %eax
40db70:	e8 63 8f ff ff       	call   0x406ad8
40db75:	c3                   	ret
40db76:	8b c0                	mov    %eax,%eax
40db78:	53                   	push   %ebx
40db79:	56                   	push   %esi
40db7a:	57                   	push   %edi
40db7b:	55                   	push   %ebp
40db7c:	83 c4 f8             	add    $0xfffffff8,%esp
40db7f:	8b e8                	mov    %eax,%ebp
40db81:	b3 01                	mov    $0x1,%bl
40db83:	e8 00 8e ff ff       	call   0x406988
40db88:	8b f8                	mov    %eax,%edi
40db8a:	3b 7d 24             	cmp    0x24(%ebp),%edi
40db8d:	0f 84 84 00 00 00    	je     0x40dc17
40db93:	8b c5                	mov    %ebp,%eax
40db95:	e8 9a ff ff ff       	call   0x40db34
40db9a:	8b 45 28             	mov    0x28(%ebp),%eax
40db9d:	89 44 24 04          	mov    %eax,0x4(%esp)
40dba1:	8b d4                	mov    %esp,%edx
40dba3:	8b 45 20             	mov    0x20(%ebp),%eax
40dba6:	e8 01 fe ff ff       	call   0x40d9ac
40dbab:	8b 04 24             	mov    (%esp),%eax
40dbae:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40dbb2:	0f 97 c3             	seta   %bl
40dbb5:	84 db                	test   %bl,%bl
40dbb7:	74 24                	je     0x40dbdd
40dbb9:	8d 45 0c             	lea    0xc(%ebp),%eax
40dbbc:	e8 4f fd ff ff       	call   0x40d910
40dbc1:	eb 1a                	jmp    0x40dbdd
40dbc3:	8d 45 0c             	lea    0xc(%ebp),%eax
40dbc6:	ba ff ff 00 00       	mov    $0xffff,%edx