409987:	8b 45 ec             	mov    -0x14(%ebp),%eax
40998a:	89 45 d0             	mov    %eax,-0x30(%ebp)
40998d:	8b 07                	mov    (%edi),%eax
40998f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
409992:	85 c0                	test   %eax,%eax
409994:	74 17                	je     0x4099ad
409996:	ff 15 70 61 42 00    	call   *0x426170
40999c:	ff 75 e4             	push   -0x1c(%ebp)
40999f:	8b f0                	mov    %eax,%esi
4099a1:	e8 84 eb ff ff       	call   0x40852a
4099a6:	56                   	push   %esi
4099a7:	ff 15 9c 61 42 00    	call   *0x42619c
4099ad:	ff 75 e0             	push   -0x20(%ebp)
4099b0:	8b 55 d0             	mov    -0x30(%ebp),%edx
4099b3:	8b cf                	mov    %edi,%ecx
4099b5:	ff 75 d8             	push   -0x28(%ebp)
4099b8:	83 27 00             	andl   $0x0,(%edi)
4099bb:	83 ec 0c             	sub    $0xc,%esp
4099be:	ff 75 d4             	push   -0x2c(%ebp)
4099c1:	68 f0 99 40 00       	push   $0x4099f0
4099c6:	e8 f6 df ff ff       	call   0x4079c1
4099cb:	eb 02                	jmp    0x4099cf
4099cd:	33 c0                	xor    %eax,%eax
4099cf:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4099d2:	5f                   	pop    %edi
4099d3:	33 cd                	xor    %ebp,%ecx
4099d5:	5e                   	pop    %esi
4099d6:	e8 95 7e 01 00       	call   0x421870
4099db:	8b e5                	mov    %ebp,%esp
4099dd:	5d                   	pop    %ebp
4099de:	8b e3                	mov    %ebx,%esp
4099e0:	5b                   	pop    %ebx
4099e1:	c2 08 00             	ret    $0x8
4099e4:	cc                   	int3
4099e5:	cc                   	int3
4099e6:	cc                   	int3
4099e7:	cc                   	int3
4099e8:	cc                   	int3
4099e9:	cc                   	int3
4099ea:	cc                   	int3
4099eb:	cc                   	int3
4099ec:	cc                   	int3
4099ed:	cc                   	int3
4099ee:	cc                   	int3
4099ef:	cc                   	int3
4099f0:	8b ff                	mov    %edi,%edi
4099f2:	55                   	push   %ebp
4099f3:	8b ec                	mov    %esp,%ebp
4099f5:	8b 4d 18             	mov    0x18(%ebp),%ecx
4099f8:	80 39 00             	cmpb   $0x0,(%ecx)
4099fb:	74 0c                	je     0x409a09
4099fd:	8d 41 10             	lea    0x10(%ecx),%eax
409a00:	83 c1 34             	add    $0x34,%ecx
409a03:	50                   	push   %eax
409a04:	e8 b0 f9 ff ff       	call   0x4093b9
409a09:	33 c0                	xor    %eax,%eax
409a0b:	5d                   	pop    %ebp
409a0c:	c2 1c 00             	ret    $0x1c
409a0f:	cc                   	int3
409a10:	8b ff                	mov    %edi,%edi
409a12:	55                   	push   %ebp
409a13:	8b ec                	mov    %esp,%ebp
409a15:	8b 4d 08             	mov    0x8(%ebp),%ecx
409a18:	80 39 00             	cmpb   $0x0,(%ecx)
409a1b:	74 0c                	je     0x409a29
409a1d:	8d 41 10             	lea    0x10(%ecx),%eax
409a20:	83 c1 34             	add    $0x34,%ecx
409a23:	50                   	push   %eax
409a24:	e8 90 f9 ff ff       	call   0x4093b9
409a29:	5d                   	pop    %ebp
409a2a:	c2 04 00             	ret    $0x4
409a2d:	8b ff                	mov    %edi,%edi
409a2f:	53                   	push   %ebx
409a30:	56                   	push   %esi
409a31:	57                   	push   %edi
409a32:	8b f9                	mov    %ecx,%edi
409a34:	33 db                	xor    %ebx,%ebx
409a36:	8d 47 2c             	lea    0x2c(%edi),%eax
409a39:	39 18                	cmp    %ebx,(%eax)
409a3b:	75 3e                	jne    0x409a7b
409a3d:	8b 35 88 4c 42 00    	mov    0x424c88,%esi
409a43:	89 18                	mov    %ebx,(%eax)
409a45:	85 f6                	test   %esi,%esi
409a47:	75 20                	jne    0x409a69
409a49:	68 7c 1b 40 00       	push   $0x401b7c
409a4e:	e8 dc dd ff ff       	call   0x40782f
409a53:	50                   	push   %eax
409a54:	ff 15 68 60 42 00    	call   *0x426068
409a5a:	8b f0                	mov    %eax,%esi
409a5c:	89 35 88 4c 42 00    	mov    %esi,0x424c88
409a62:	85 f6                	test   %esi,%esi
409a64:	74 15                	je     0x409a7b
409a66:	8d 47 2c             	lea    0x2c(%edi),%eax
409a69:	50                   	push   %eax
409a6a:	53                   	push   %ebx
409a6b:	57                   	push   %edi
409a6c:	68 10 9a 40 00       	push   $0x409a10
409a71:	8b ce                	mov    %esi,%ecx
409a73:	ff 15 78 64 42 00    	call   *0x426478
409a79:	ff d6                	call   *%esi
409a7b:	ff 35 5c 1d 40 00    	push   0x401d5c
409a81:	8d 4f 24             	lea    0x24(%edi),%ecx
409a84:	8b d7                	mov    %edi,%edx
409a86:	ff 35 58 1d 40 00    	push   0x401d58
409a8c:	e8 95 fe ff ff       	call   0x409926
409a91:	85 c0                	test   %eax,%eax
409a93:	75 1c                	jne    0x409ab1
409a95:	ff 35 fc 1c 40 00    	push   0x401cfc
409a9b:	8d 4f 28             	lea    0x28(%edi),%ecx
409a9e:	8b d7                	mov    %edi,%edx
409aa0:	ff 35 f8 1c 40 00    	push   0x401cf8
409aa6:	e8 7b fe ff ff       	call   0x409926
409aab:	85 c0                	test   %eax,%eax
409aad:	75 02                	jne    0x409ab1
409aaf:	b3 01                	mov    $0x1,%bl
409ab1:	5f                   	pop    %edi
409ab2:	5e                   	pop    %esi
409ab3:	8a c3                	mov    %bl,%al
409ab5:	5b                   	pop    %ebx
409ab6:	c3                   	ret
409ab7:	cc                   	int3
409ab8:	cc                   	int3
409ab9:	cc                   	int3
409aba:	cc                   	int3
409abb:	cc                   	int3
409abc:	cc                   	int3
409abd:	cc                   	int3
409abe:	cc                   	int3
409abf:	cc                   	int3
409ac0:	8b ff                	mov    %edi,%edi
409ac2:	55                   	push   %ebp
409ac3:	8b ec                	mov    %esp,%ebp
409ac5:	8b 4d 08             	mov    0x8(%ebp),%ecx
409ac8:	80 39 00             	cmpb   $0x0,(%ecx)
409acb:	74 0c                	je     0x409ad9
409acd:	8d 41 10             	lea    0x10(%ecx),%eax
409ad0:	83 c1 5c             	add    $0x5c,%ecx
409ad3:	50                   	push   %eax
409ad4:	e8 e0 f8 ff ff       	call   0x4093b9
409ad9:	5d                   	pop    %ebp
409ada:	c2 04 00             	ret    $0x4
409add:	8b ff                	mov    %edi,%edi
409adf:	56                   	push   %esi
409ae0:	57                   	push   %edi
409ae1:	33 ff                	xor    %edi,%edi
409ae3:	8b f1                	mov    %ecx,%esi
409ae5:	57                   	push   %edi
409ae6:	57                   	push   %edi
409ae7:	56                   	push   %esi
409ae8:	ff 15 88 61 42 00    	call   *0x426188
409aee:	89 7e 18             	mov    %edi,0x18(%esi)
409af1:	8b c6                	mov    %esi,%eax
409af3:	89 7e 1c             	mov    %edi,0x1c(%esi)
409af6:	89 7e 20             	mov    %edi,0x20(%esi)
409af9:	89 7e 24             	mov    %edi,0x24(%esi)
409afc:	5f                   	pop    %edi
409afd:	5e                   	pop    %esi
409afe:	c3                   	ret
409aff:	8b ff                	mov    %edi,%edi
409b01:	55                   	push   %ebp
409b02:	8b ec                	mov    %esp,%ebp
409b04:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
409b08:	74 16                	je     0x409b20
409b0a:	8b 0d 4c 5e 42 00    	mov    0x425e4c,%ecx
409b10:	85 c9                	test   %ecx,%ecx
409b12:	74 0c                	je     0x409b20
409b14:	ff 75 08             	push   0x8(%ebp)
409b17:	51                   	push   %ecx
409b18:	83 c1 70             	add    $0x70,%ecx
409b1b:	e8 40 f8 ff ff       	call   0x409360
409b20:	5d                   	pop    %ebp
409b21:	c2 04 00             	ret    $0x4
409b24:	8b ff                	mov    %edi,%edi
409b26:	55                   	push   %ebp
409b27:	8b ec                	mov    %esp,%ebp
409b29:	83 ec 18             	sub    $0x18,%esp
409b2c:	56                   	push   %esi
409b2d:	57                   	push   %edi
409b2e:	8b 7d 0c             	mov    0xc(%ebp),%edi
409b31:	be a0 4d 42 00       	mov    $0x424da0,%esi
409b36:	89 55 f4             	mov    %edx,-0xc(%ebp)
409b39:	89 4d f0             	mov    %ecx,-0x10(%ebp)
409b3c:	85 ff                	test   %edi,%edi
409b3e:	74 05                	je     0x409b45
409b40:	be 80 4c 42 00       	mov    $0x424c80,%esi
409b45:	8b 06                	mov    (%esi),%eax
409b47:	a8 01                	test   $0x1,%al
409b49:	74 25                	je     0x409b70
409b4b:	a8 08                	test   $0x8,%al
409b4d:	75 07                	jne    0x409b56
409b4f:	32 c0                	xor    %al,%al
409b51:	e9 b2 00 00 00       	jmp    0x409c08
409b56:	ff 75 10             	push   0x10(%ebp)
409b59:	0f b6 45 08          	movzbl 0x8(%ebp),%eax
409b5d:	6a 00                	push   $0x0
409b5f:	57                   	push   %edi
409b60:	50                   	push   %eax
409b61:	e8 8d e6 ff ff       	call   0x4081f3
409b66:	85 c0                	test   %eax,%eax
409b68:	0f 95 c0             	setne  %al
409b6b:	e9 98 00 00 00       	jmp    0x409c08
409b70:	53                   	push   %ebx
409b71:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
409b78:	e8 1f 06 00 00       	call   0x40a19c
409b7d:	ff 75 10             	push   0x10(%ebp)
409b80:	0f b6 4d 08          	movzbl 0x8(%ebp),%ecx
409b84:	8b d8                	mov    %eax,%ebx
409b86:	8b 55 f4             	mov    -0xc(%ebp),%edx
409b89:	8d 45 f8             	lea    -0x8(%ebp),%eax
409b8c:	50                   	push   %eax
409b8d:	57                   	push   %edi
409b8e:	51                   	push   %ecx
409b8f:	8b 4d f0             	mov    -0x10(%ebp),%ecx
409b92:	e8 5c e6 ff ff       	call   0x4081f3
409b97:	85 c0                	test   %eax,%eax
409b99:	8b 45 f8             	mov    -0x8(%ebp),%eax
409b9c:	0f 95 45 ff          	setne  -0x1(%ebp)
409ba0:	33 c9                	xor    %ecx,%ecx
409ba2:	85 c0                	test   %eax,%eax
409ba4:	0f 95 c1             	setne  %cl
409ba7:	8d 0c cd 03 00 00 00 	lea    0x3(,%ecx,8),%ecx
409bae:	87 0e                	xchg   %ecx,(%esi)
409bb0:	85 c0                	test   %eax,%eax
409bb2:	75 50                	jne    0x409c04
409bb4:	f6 c1 02             	test   $0x2,%cl
409bb7:	75 4b                	jne    0x409c04
409bb9:	38 05 84 48 42 00    	cmp    %al,0x424884
409bbf:	74 43                	je     0x409c04
409bc1:	bf 88 48 42 00       	mov    $0x424888,%edi
409bc6:	57                   	push   %edi
409bc7:	ff 15 60 61 42 00    	call   *0x426160
409bcd:	a1 94 48 42 00       	mov    0x424894,%eax
409bd2:	85 db                	test   %ebx,%ebx
409bd4:	74 1f                	je     0x409bf5
409bd6:	3b d8                	cmp    %eax,%ebx
409bd8:	75 1b                	jne    0x409bf5
409bda:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
409bde:	8d 45 e8             	lea    -0x18(%ebp),%eax
409be1:	6a 08                	push   $0x8
409be3:	50                   	push   %eax
409be4:	b9 b0 48 42 00       	mov    $0x4248b0,%ecx
409be9:	89 75 ec             	mov    %esi,-0x14(%ebp)
409bec:	e8 88 e7 ff ff       	call   0x408379
409bf1:	84 c0                	test   %al,%al
409bf3:	75 08                	jne    0x409bfd
409bf5:	b8 f8 fe ff ff       	mov    $0xfffffef8,%eax
409bfa:	f0 21 06             	lock and %eax,(%esi)
409bfd:	57                   	push   %edi
409bfe:	ff 15 6c 61 42 00    	call   *0x42616c
409c04:	8a 45 ff             	mov    -0x1(%ebp),%al
409c07:	5b                   	pop    %ebx
409c08:	5f                   	pop    %edi
409c09:	5e                   	pop    %esi
409c0a:	c9                   	leave
409c0b:	c2 0c 00             	ret    $0xc
409c0e:	cc                   	int3
409c0f:	cc                   	int3
409c10:	8b ff                	mov    %edi,%edi
409c12:	55                   	push   %ebp
409c13:	8b ec                	mov    %esp,%ebp
409c15:	8b 45 0c             	mov    0xc(%ebp),%eax
409c18:	83 ec 1c             	sub    $0x1c,%esp
409c1b:	8b d0                	mov    %eax,%edx
409c1d:	25 7f ff ff ff       	and    $0xffffff7f,%eax
409c22:	c1 ea 07             	shr    $0x7,%edx
409c25:	83 e2 01             	and    $0x1,%edx
409c28:	53                   	push   %ebx
409c29:	33 db                	xor    %ebx,%ebx
409c2b:	83 f8 03             	cmp    $0x3,%eax
409c2e:	74 08                	je     0x409c38
409c30:	88 5d fc             	mov    %bl,-0x4(%ebp)
409c33:	83 f8 02             	cmp    $0x2,%eax
409c36:	75 04                	jne    0x409c3c
409c38:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
409c3c:	57                   	push   %edi
409c3d:	6a 06                	push   $0x6
409c3f:	59                   	pop    %ecx
409c40:	ff 75 10             	push   0x10(%ebp)
409c43:	33 c0                	xor    %eax,%eax
409c45:	8d 7d e4             	lea    -0x1c(%ebp),%edi
409c48:	52                   	push   %edx
409c49:	ff 75 fc             	push   -0x4(%ebp)
409c4c:	8b 55 08             	mov    0x8(%ebp),%edx
409c4f:	f3 ab                	rep stos %eax,%es:(%edi)
409c51:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
409c54:	e8 cb fe ff ff       	call   0x409b24
409c59:	5f                   	pop    %edi
409c5a:	84 c0                	test   %al,%al
409c5c:	74 03                	je     0x409c61
409c5e:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
409c61:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
409c65:	74 06                	je     0x409c6d
409c67:	81 cb 80 00 00 00    	or     $0x80,%ebx
409c6d:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
409c71:	74 03                	je     0x409c76
409c73:	83 cb 40             	or     $0x40,%ebx
409c76:	8b c3                	mov    %ebx,%eax
409c78:	5b                   	pop    %ebx
409c79:	c9                   	leave
409c7a:	c2 0c 00             	ret    $0xc
409c7d:	cc                   	int3
409c7e:	cc                   	int3
409c7f:	cc                   	int3
409c80:	8b ff                	mov    %edi,%edi
409c82:	55                   	push   %ebp
409c83:	8b ec                	mov    %esp,%ebp
409c85:	83 e4 f8             	and    $0xfffffff8,%esp
409c88:	81 ec 04 01 00 00    	sub    $0x104,%esp
409c8e:	a1 10 42 42 00       	mov    0x424210,%eax
409c93:	33 c4                	xor    %esp,%eax
409c95:	89 84 24 00 01 00 00 	mov    %eax,0x100(%esp)
409c9c:	8b 45 10             	mov    0x10(%ebp),%eax
409c9f:	53                   	push   %ebx
409ca0:	56                   	push   %esi
409ca1:	8b 75 0c             	mov    0xc(%ebp),%esi
409ca4:	8b de                	mov    %esi,%ebx
409ca6:	57                   	push   %edi
409ca7:	8b 7d 08             	mov    0x8(%ebp),%edi
409caa:	81 e6 ff ff ff 7f    	and    $0x7fffffff,%esi
409cb0:	c1 eb 1f             	shr    $0x1f,%ebx
409cb3:	85 ff                	test   %edi,%edi
409cb5:	75 34                	jne    0x409ceb
409cb7:	85 c0                	test   %eax,%eax
409cb9:	75 30                	jne    0x409ceb
409cbb:	85 f6                	test   %esi,%esi
409cbd:	75 2c                	jne    0x409ceb
409cbf:	e8 5a ce ff ff       	call   0x406b1e
409cc4:	84 c0                	test   %al,%al
409cc6:	0f 85 8b 00 00 00    	jne    0x409d57
409ccc:	b9 40 5e 42 00       	mov    $0x425e40,%ecx
409cd1:	e8 a3 fb ff ff       	call   0x409879
409cd6:	84 c0                	test   %al,%al
409cd8:	74 7d                	je     0x409d57
409cda:	8b 0d 4c 5e 42 00    	mov    0x425e4c,%ecx
409ce0:	51                   	push   %ecx
409ce1:	83 c1 70             	add    $0x70,%ecx
409ce4:	e8 d0 f6 ff ff       	call   0x4093b9
409ce9:	eb 6c                	jmp    0x409d57
409ceb:	f7 c6 00 00 00 40    	test   $0x40000000,%esi
409cf1:	74 0f                	je     0x409d02
409cf3:	50                   	push   %eax
409cf4:	56                   	push   %esi
409cf5:	57                   	push   %edi
409cf6:	b9 40 5e 42 00       	mov    $0x425e40,%ecx
409cfb:	e8 d3 fa ff ff       	call   0x4097d3
409d00:	eb 55                	jmp    0x409d57
409d02:	85 c0                	test   %eax,%eax
409d04:	75 44                	jne    0x409d4a
409d06:	81 fe fe 00 00 00    	cmp    $0xfe,%esi
409d0c:	74 3c                	je     0x409d4a