4068f2:	c3                   	ret
4068f3:	8b ff                	mov    %edi,%edi
4068f5:	55                   	push   %ebp
4068f6:	8b ec                	mov    %esp,%ebp
4068f8:	6a 00                	push   $0x0
4068fa:	6a 00                	push   $0x0
4068fc:	ff 75 08             	push   0x8(%ebp)
4068ff:	e8 23 fe ff ff       	call   0x406727
406904:	83 c4 0c             	add    $0xc,%esp
406907:	5d                   	pop    %ebp
406908:	c3                   	ret
406909:	8b ff                	mov    %edi,%edi
40690b:	55                   	push   %ebp
40690c:	8b ec                	mov    %esp,%ebp
40690e:	8b 45 08             	mov    0x8(%ebp),%eax
406911:	3d 00 40 00 00       	cmp    $0x4000,%eax
406916:	74 23                	je     0x40693b
406918:	3d 00 80 00 00       	cmp    $0x8000,%eax
40691d:	74 1c                	je     0x40693b
40691f:	3d 00 00 01 00       	cmp    $0x10000,%eax
406924:	74 15                	je     0x40693b
406926:	e8 25 10 00 00       	call   0x407950
40692b:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
406931:	e8 e6 f3 ff ff       	call   0x405d1c
406936:	6a 16                	push   $0x16
406938:	58                   	pop    %eax
406939:	5d                   	pop    %ebp
40693a:	c3                   	ret
40693b:	b9 70 70 41 00       	mov    $0x417070,%ecx
406940:	87 01                	xchg   %eax,(%ecx)
406942:	33 c0                	xor    %eax,%eax
406944:	5d                   	pop    %ebp
406945:	c3                   	ret
406946:	6a 0c                	push   $0xc
406948:	68 70 4a 41 00       	push   $0x414a70
40694d:	e8 be ca ff ff       	call   0x403410
406952:	8b 45 08             	mov    0x8(%ebp),%eax
406955:	ff 30                	push   (%eax)
406957:	e8 70 0e 00 00       	call   0x4077cc
40695c:	59                   	pop    %ecx
40695d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406961:	be ec 6e 41 00       	mov    $0x416eec,%esi
406966:	bf 58 60 41 00       	mov    $0x416058,%edi
40696b:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40696e:	81 fe f0 6e 41 00    	cmp    $0x416ef0,%esi
406974:	74 14                	je     0x40698a
406976:	39 3e                	cmp    %edi,(%esi)
406978:	74 0b                	je     0x406985
40697a:	57                   	push   %edi
40697b:	56                   	push   %esi
40697c:	e8 be 31 00 00       	call   0x409b3f
406981:	59                   	pop    %ecx
406982:	59                   	pop    %ecx
406983:	89 06                	mov    %eax,(%esi)
406985:	83 c6 04             	add    $0x4,%esi
406988:	eb e1                	jmp    0x40696b
40698a:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
406991:	e8 12 00 00 00       	call   0x4069a8
406996:	8b 4d f0             	mov    -0x10(%ebp),%ecx
406999:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4069a0:	59                   	pop    %ecx
4069a1:	5f                   	pop    %edi
4069a2:	5e                   	pop    %esi
4069a3:	5b                   	pop    %ebx
4069a4:	c9                   	leave
4069a5:	c2 0c 00             	ret    $0xc
4069a8:	8b 45 10             	mov    0x10(%ebp),%eax
4069ab:	ff 30                	push   (%eax)
4069ad:	e8 62 0e 00 00       	call   0x407814
4069b2:	59                   	pop    %ecx
4069b3:	c3                   	ret
4069b4:	33 c0                	xor    %eax,%eax
4069b6:	b9 c8 6e 41 00       	mov    $0x416ec8,%ecx
4069bb:	40                   	inc    %eax
4069bc:	87 01                	xchg   %eax,(%ecx)
4069be:	c3                   	ret
4069bf:	8b ff                	mov    %edi,%edi
4069c1:	55                   	push   %ebp
4069c2:	8b ec                	mov    %esp,%ebp
4069c4:	83 ec 0c             	sub    $0xc,%esp
4069c7:	6a 04                	push   $0x4
4069c9:	58                   	pop    %eax
4069ca:	89 45 f8             	mov    %eax,-0x8(%ebp)
4069cd:	8d 4d ff             	lea    -0x1(%ebp),%ecx
4069d0:	89 45 f4             	mov    %eax,-0xc(%ebp)
4069d3:	8d 45 f8             	lea    -0x8(%ebp),%eax
4069d6:	50                   	push   %eax
4069d7:	8d 45 ff             	lea    -0x1(%ebp),%eax
4069da:	50                   	push   %eax
4069db:	8d 45 f4             	lea    -0xc(%ebp),%eax
4069de:	50                   	push   %eax
4069df:	e8 62 ff ff ff       	call   0x406946
4069e4:	c9                   	leave
4069e5:	c3                   	ret
4069e6:	8b ff                	mov    %edi,%edi
4069e8:	55                   	push   %ebp
4069e9:	8b ec                	mov    %esp,%ebp
4069eb:	56                   	push   %esi
4069ec:	e8 af 0a 00 00       	call   0x4074a0
4069f1:	8b 55 08             	mov    0x8(%ebp),%edx
4069f4:	8b f0                	mov    %eax,%esi
4069f6:	6a 00                	push   $0x0
4069f8:	58                   	pop    %eax
4069f9:	8b 8e 50 03 00 00    	mov    0x350(%esi),%ecx
4069ff:	f6 c1 02             	test   $0x2,%cl
406a02:	0f 94 c0             	sete   %al
406a05:	40                   	inc    %eax
406a06:	83 fa ff             	cmp    $0xffffffff,%edx
406a09:	74 33                	je     0x406a3e
406a0b:	85 d2                	test   %edx,%edx
406a0d:	74 36                	je     0x406a45
406a0f:	83 fa 01             	cmp    $0x1,%edx
406a12:	74 1f                	je     0x406a33
406a14:	83 fa 02             	cmp    $0x2,%edx
406a17:	74 15                	je     0x406a2e
406a19:	e8 32 0f 00 00       	call   0x407950
406a1e:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
406a24:	e8 f3 f2 ff ff       	call   0x405d1c
406a29:	83 c8 ff             	or     $0xffffffff,%eax
406a2c:	eb 17                	jmp    0x406a45
406a2e:	83 e1 fd             	and    $0xfffffffd,%ecx
406a31:	eb 03                	jmp    0x406a36
406a33:	83 c9 02             	or     $0x2,%ecx
406a36:	89 8e 50 03 00 00    	mov    %ecx,0x350(%esi)
406a3c:	eb 07                	jmp    0x406a45
406a3e:	83 0d a0 66 41 00 ff 	orl    $0xffffffff,0x4166a0
406a45:	5e                   	pop    %esi
406a46:	5d                   	pop    %ebp
406a47:	c3                   	ret
406a48:	a1 cc 6e 41 00       	mov    0x416ecc,%eax
406a4d:	90                   	nop
406a4e:	c3                   	ret
406a4f:	8b ff                	mov    %edi,%edi
406a51:	55                   	push   %ebp
406a52:	8b ec                	mov    %esp,%ebp
406a54:	8b 45 08             	mov    0x8(%ebp),%eax
406a57:	85 c0                	test   %eax,%eax
406a59:	74 1a                	je     0x406a75
406a5b:	83 f8 01             	cmp    $0x1,%eax
406a5e:	74 15                	je     0x406a75
406a60:	e8 eb 0e 00 00       	call   0x407950
406a65:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
406a6b:	e8 ac f2 ff ff       	call   0x405d1c
406a70:	83 c8 ff             	or     $0xffffffff,%eax
406a73:	5d                   	pop    %ebp
406a74:	c3                   	ret
406a75:	b9 cc 6e 41 00       	mov    $0x416ecc,%ecx
406a7a:	87 01                	xchg   %eax,(%ecx)
406a7c:	5d                   	pop    %ebp
406a7d:	c3                   	ret
406a7e:	b8 d0 6e 41 00       	mov    $0x416ed0,%eax
406a83:	c3                   	ret
406a84:	6a 0c                	push   $0xc
406a86:	68 d8 4a 41 00       	push   $0x414ad8
406a8b:	e8 80 c9 ff ff       	call   0x403410
406a90:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
406a94:	8b 45 08             	mov    0x8(%ebp),%eax
406a97:	ff 30                	push   (%eax)
406a99:	e8 2e 0d 00 00       	call   0x4077cc
406a9e:	59                   	pop    %ecx
406a9f:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406aa3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
406aa6:	e8 91 01 00 00       	call   0x406c3c
406aab:	8b f0                	mov    %eax,%esi
406aad:	89 75 e4             	mov    %esi,-0x1c(%ebp)
406ab0:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
406ab7:	e8 17 00 00 00       	call   0x406ad3
406abc:	8b c6                	mov    %esi,%eax
406abe:	8b 4d f0             	mov    -0x10(%ebp),%ecx
406ac1:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
406ac8:	59                   	pop    %ecx
406ac9:	5f                   	pop    %edi
406aca:	5e                   	pop    %esi
406acb:	5b                   	pop    %ebx
406acc:	c9                   	leave
406acd:	c2 0c 00             	ret    $0xc
406ad0:	8b 75 e4             	mov    -0x1c(%ebp),%esi
406ad3:	8b 45 10             	mov    0x10(%ebp),%eax
406ad6:	ff 30                	push   (%eax)
406ad8:	e8 37 0d 00 00       	call   0x407814
406add:	59                   	pop    %ecx
406ade:	c3                   	ret
406adf:	6a 0c                	push   $0xc
406ae1:	68 b8 4a 41 00       	push   $0x414ab8
406ae6:	e8 25 c9 ff ff       	call   0x403410
406aeb:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
406aef:	8b 45 08             	mov    0x8(%ebp),%eax
406af2:	ff 30                	push   (%eax)
406af4:	e8 d3 0c 00 00       	call   0x4077cc
406af9:	59                   	pop    %ecx
406afa:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406afe:	8b 4d 0c             	mov    0xc(%ebp),%ecx
406b01:	e8 34 00 00 00       	call   0x406b3a
406b06:	8b f0                	mov    %eax,%esi
406b08:	89 75 e4             	mov    %esi,-0x1c(%ebp)
406b0b:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
406b12:	e8 17 00 00 00       	call   0x406b2e
406b17:	8b c6                	mov    %esi,%eax
406b19:	8b 4d f0             	mov    -0x10(%ebp),%ecx
406b1c:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
406b23:	59                   	pop    %ecx
406b24:	5f                   	pop    %edi
406b25:	5e                   	pop    %esi
406b26:	5b                   	pop    %ebx
406b27:	c9                   	leave
406b28:	c2 0c 00             	ret    $0xc
406b2b:	8b 75 e4             	mov    -0x1c(%ebp),%esi
406b2e:	8b 45 10             	mov    0x10(%ebp),%eax
406b31:	ff 30                	push   (%eax)
406b33:	e8 dc 0c 00 00       	call   0x407814
406b38:	59                   	pop    %ecx
406b39:	c3                   	ret
406b3a:	8b ff                	mov    %edi,%edi
406b3c:	55                   	push   %ebp
406b3d:	8b ec                	mov    %esp,%ebp
406b3f:	51                   	push   %ecx
406b40:	51                   	push   %ecx
406b41:	8b c1                	mov    %ecx,%eax
406b43:	89 45 f8             	mov    %eax,-0x8(%ebp)
406b46:	53                   	push   %ebx
406b47:	56                   	push   %esi
406b48:	8b 00                	mov    (%eax),%eax
406b4a:	57                   	push   %edi
406b4b:	8b 30                	mov    (%eax),%esi
406b4d:	85 f6                	test   %esi,%esi
406b4f:	0f 84 df 00 00 00    	je     0x406c34
406b55:	a1 14 60 41 00       	mov    0x416014,%eax
406b5a:	8b c8                	mov    %eax,%ecx
406b5c:	8b 1e                	mov    (%esi),%ebx
406b5e:	83 e1 1f             	and    $0x1f,%ecx
406b61:	8b 7e 04             	mov    0x4(%esi),%edi
406b64:	33 d8                	xor    %eax,%ebx
406b66:	8b 76 08             	mov    0x8(%esi),%esi
406b69:	33 f8                	xor    %eax,%edi
406b6b:	33 f0                	xor    %eax,%esi
406b6d:	d3 cf                	ror    %cl,%edi
406b6f:	d3 ce                	ror    %cl,%esi
406b71:	d3 cb                	ror    %cl,%ebx
406b73:	3b fe                	cmp    %esi,%edi
406b75:	75 7b                	jne    0x406bf2
406b77:	2b f3                	sub    %ebx,%esi
406b79:	b8 00 02 00 00       	mov    $0x200,%eax
406b7e:	c1 fe 02             	sar    $0x2,%esi
406b81:	3b f0                	cmp    %eax,%esi
406b83:	77 02                	ja     0x406b87
406b85:	8b c6                	mov    %esi,%eax
406b87:	8d 3c 30             	lea    (%eax,%esi,1),%edi
406b8a:	85 ff                	test   %edi,%edi
406b8c:	75 03                	jne    0x406b91
406b8e:	6a 20                	push   $0x20
406b90:	5f                   	pop    %edi
406b91:	3b fe                	cmp    %esi,%edi
406b93:	72 1d                	jb     0x406bb2
406b95:	6a 04                	push   $0x4
406b97:	57                   	push   %edi
406b98:	53                   	push   %ebx
406b99:	e8 10 34 00 00       	call   0x409fae
406b9e:	6a 00                	push   $0x0
406ba0:	89 45 fc             	mov    %eax,-0x4(%ebp)
406ba3:	e8 d1 0c 00 00       	call   0x407879
406ba8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406bab:	83 c4 10             	add    $0x10,%esp
406bae:	85 c9                	test   %ecx,%ecx
406bb0:	75 20                	jne    0x406bd2
406bb2:	6a 04                	push   $0x4
406bb4:	8d 7e 04             	lea    0x4(%esi),%edi
406bb7:	57                   	push   %edi
406bb8:	53                   	push   %ebx
406bb9:	e8 f0 33 00 00       	call   0x409fae
406bbe:	6a 00                	push   $0x0
406bc0:	89 45 fc             	mov    %eax,-0x4(%ebp)
406bc3:	e8 b1 0c 00 00       	call   0x407879
406bc8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406bcb:	83 c4 10             	add    $0x10,%esp
406bce:	85 c9                	test   %ecx,%ecx
406bd0:	74 62                	je     0x406c34
406bd2:	8d 04 b1             	lea    (%ecx,%esi,4),%eax
406bd5:	8b d9                	mov    %ecx,%ebx
406bd7:	8d 34 b9             	lea    (%ecx,%edi,4),%esi
406bda:	89 45 fc             	mov    %eax,-0x4(%ebp)
406bdd:	8b 0d 14 60 41 00    	mov    0x416014,%ecx
406be3:	8b f8                	mov    %eax,%edi
406be5:	3b fe                	cmp    %esi,%edi
406be7:	74 09                	je     0x406bf2
406be9:	89 08                	mov    %ecx,(%eax)
406beb:	83 c0 04             	add    $0x4,%eax
406bee:	3b c6                	cmp    %esi,%eax
406bf0:	75 f7                	jne    0x406be9
406bf2:	8b 45 f8             	mov    -0x8(%ebp),%eax
406bf5:	8b 40 04             	mov    0x4(%eax),%eax
406bf8:	ff 30                	push   (%eax)
406bfa:	e8 ac f3 ff ff       	call   0x405fab
406bff:	53                   	push   %ebx
406c00:	89 07                	mov    %eax,(%edi)
406c02:	e8 a4 f3 ff ff       	call   0x405fab
406c07:	8b 5d f8             	mov    -0x8(%ebp),%ebx
406c0a:	8b 0b                	mov    (%ebx),%ecx
406c0c:	8b 09                	mov    (%ecx),%ecx
406c0e:	89 01                	mov    %eax,(%ecx)
406c10:	8d 47 04             	lea    0x4(%edi),%eax
406c13:	50                   	push   %eax
406c14:	e8 92 f3 ff ff       	call   0x405fab
406c19:	8b 0b                	mov    (%ebx),%ecx
406c1b:	56                   	push   %esi
406c1c:	8b 09                	mov    (%ecx),%ecx
406c1e:	89 41 04             	mov    %eax,0x4(%ecx)
406c21:	e8 85 f3 ff ff       	call   0x405fab
406c26:	8b 0b                	mov    (%ebx),%ecx
406c28:	83 c4 10             	add    $0x10,%esp
406c2b:	8b 09                	mov    (%ecx),%ecx
406c2d:	89 41 08             	mov    %eax,0x8(%ecx)
406c30:	33 c0                	xor    %eax,%eax
406c32:	eb 03                	jmp    0x406c37
406c34:	83 c8 ff             	or     $0xffffffff,%eax
406c37:	5f                   	pop    %edi
406c38:	5e                   	pop    %esi
406c39:	5b                   	pop    %ebx
406c3a:	c9                   	leave
406c3b:	c3                   	ret
406c3c:	8b ff                	mov    %edi,%edi
406c3e:	55                   	push   %ebp
406c3f:	8b ec                	mov    %esp,%ebp
406c41:	83 ec 14             	sub    $0x14,%esp
406c44:	53                   	push   %ebx
406c45:	8b d9                	mov    %ecx,%ebx
406c47:	57                   	push   %edi
406c48:	89 5d ec             	mov    %ebx,-0x14(%ebp)
406c4b:	8b 03                	mov    (%ebx),%eax
406c4d:	8b 38                	mov    (%eax),%edi
406c4f:	85 ff                	test   %edi,%edi
406c51:	75 08                	jne    0x406c5b
406c53:	83 c8 ff             	or     $0xffffffff,%eax
406c56:	e9 b7 00 00 00       	jmp    0x406d12
406c5b:	8b 15 14 60 41 00    	mov    0x416014,%edx
406c61:	8b ca                	mov    %edx,%ecx
406c63:	56                   	push   %esi
406c64:	8b 37                	mov    (%edi),%esi
406c66:	83 e1 1f             	and    $0x1f,%ecx
406c69:	8b 7f 04             	mov    0x4(%edi),%edi
406c6c:	33 f2                	xor    %edx,%esi
406c6e:	33 fa                	xor    %edx,%edi
406c70:	d3 ce                	ror    %cl,%esi
406c72:	d3 cf                	ror    %cl,%edi
406c74:	85 f6                	test   %esi,%esi
406c76:	0f 84 93 00 00 00    	je     0x406d0f
406c7c:	83 fe ff             	cmp    $0xffffffff,%esi
406c7f:	0f 84 8a 00 00 00    	je     0x406d0f
406c85:	89 55 fc             	mov    %edx,-0x4(%ebp)
406c88:	89 7d f4             	mov    %edi,-0xc(%ebp)
406c8b:	89 75 f8             	mov    %esi,-0x8(%ebp)