405b60:	5e                   	pop    %esi
405b61:	66 39 32             	cmp    %si,(%edx)
405b64:	75 d5                	jne    0x405b3b
405b66:	eb 8f                	jmp    0x405af7
405b68:	85 c9                	test   %ecx,%ecx
405b6a:	74 17                	je     0x405b83
405b6c:	33 ff                	xor    %edi,%edi
405b6e:	57                   	push   %edi
405b6f:	51                   	push   %ecx
405b70:	ff 15 f0 a0 44 00    	call   *0x44a0f0
405b76:	85 c0                	test   %eax,%eax
405b78:	0f 85 fc fe ff ff    	jne    0x405a7a
405b7e:	e9 f9 3f 01 00       	jmp    0x419b7c
405b83:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
405b89:	eb e1                	jmp    0x405b6c
405b8b:	57                   	push   %edi
405b8c:	6a 52                	push   $0x52
405b8e:	e9 c1 3e 01 00       	jmp    0x419a54
405b93:	8b ff                	mov    %edi,%edi
405b95:	55                   	push   %ebp
405b96:	8b ec                	mov    %esp,%ebp
405b98:	83 ec 48             	sub    $0x48,%esp
405b9b:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
405ba0:	33 c5                	xor    %ebp,%eax
405ba2:	89 45 f8             	mov    %eax,-0x8(%ebp)
405ba5:	53                   	push   %ebx
405ba6:	56                   	push   %esi
405ba7:	57                   	push   %edi
405ba8:	6a 04                	push   $0x4
405baa:	5e                   	pop    %esi
405bab:	8b c2                	mov    %edx,%eax
405bad:	89 4d e8             	mov    %ecx,-0x18(%ebp)
405bb0:	89 45 e4             	mov    %eax,-0x1c(%ebp)
405bb3:	33 d2                	xor    %edx,%edx
405bb5:	89 45 cc             	mov    %eax,-0x34(%ebp)
405bb8:	33 c9                	xor    %ecx,%ecx
405bba:	8b 45 08             	mov    0x8(%ebp),%eax
405bbd:	42                   	inc    %edx
405bbe:	6a 2b                	push   $0x2b
405bc0:	89 45 d8             	mov    %eax,-0x28(%ebp)
405bc3:	8b fa                	mov    %edx,%edi
405bc5:	89 45 c8             	mov    %eax,-0x38(%ebp)
405bc8:	58                   	pop    %eax
405bc9:	6a 2c                	push   $0x2c
405bcb:	66 89 45 f0          	mov    %ax,-0x10(%ebp)
405bcf:	58                   	pop    %eax
405bd0:	66 89 45 f2          	mov    %ax,-0xe(%ebp)
405bd4:	6a 2f                	push   $0x2f
405bd6:	58                   	pop    %eax
405bd7:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
405bdb:	33 c0                	xor    %eax,%eax
405bdd:	89 7d ec             	mov    %edi,-0x14(%ebp)
405be0:	89 55 c4             	mov    %edx,-0x3c(%ebp)
405be3:	89 4d d0             	mov    %ecx,-0x30(%ebp)
405be6:	89 4d e0             	mov    %ecx,-0x20(%ebp)
405be9:	89 75 dc             	mov    %esi,-0x24(%ebp)
405bec:	89 4d c0             	mov    %ecx,-0x40(%ebp)
405bef:	89 4d b8             	mov    %ecx,-0x48(%ebp)
405bf2:	89 4d bc             	mov    %ecx,-0x44(%ebp)
405bf5:	66 89 45 f6          	mov    %ax,-0xa(%ebp)
405bf9:	39 05 58 67 43 00    	cmp    %eax,0x436758
405bff:	0f 84 8d 3f 01 00    	je     0x419b92
405c05:	bb 1c 22 40 00       	mov    $0x40221c,%ebx
405c0a:	89 45 d4             	mov    %eax,-0x2c(%ebp)
405c0d:	8b cb                	mov    %ebx,%ecx
405c0f:	e8 7c c1 00 00       	call   0x411d90
405c14:	8d 55 d4             	lea    -0x2c(%ebp),%edx
405c17:	8b c8                	mov    %eax,%ecx
405c19:	e8 91 ef 00 00       	call   0x414baf
405c1e:	8b cb                	mov    %ebx,%ecx
405c20:	e8 6b c1 00 00       	call   0x411d90
405c25:	8b d8                	mov    %eax,%ebx
405c27:	85 db                	test   %ebx,%ebx
405c29:	0f 85 82 3f 01 00    	jne    0x419bb1
405c2f:	8b 4d e8             	mov    -0x18(%ebp),%ecx
405c32:	8d 55 f0             	lea    -0x10(%ebp),%edx
405c35:	6a 02                	push   $0x2
405c37:	e8 f4 5f 00 00       	call   0x40bc30
405c3c:	8b c8                	mov    %eax,%ecx
405c3e:	89 45 ec             	mov    %eax,-0x14(%ebp)
405c41:	0f b7 01             	movzwl (%ecx),%eax
405c44:	66 85 c0             	test   %ax,%ax
405c47:	0f 84 f6 3f 01 00    	je     0x419c43
405c4d:	8b d0                	mov    %eax,%edx
405c4f:	8b d9                	mov    %ecx,%ebx
405c51:	8d 43 02             	lea    0x2(%ebx),%eax
405c54:	89 45 e8             	mov    %eax,-0x18(%ebp)
405c57:	66 8b 03             	mov    (%ebx),%ax
405c5a:	83 c3 02             	add    $0x2,%ebx
405c5d:	66 3b 45 d0          	cmp    -0x30(%ebp),%ax
405c61:	75 f4                	jne    0x405c57
405c63:	2b 5d e8             	sub    -0x18(%ebp),%ebx
405c66:	0f b7 c2             	movzwl %dx,%eax
405c69:	d1 fb                	sar    $1,%ebx
405c6b:	83 e8 2b             	sub    $0x2b,%eax
405c6e:	0f 84 db 3f 01 00    	je     0x419c4f
405c74:	83 e8 01             	sub    $0x1,%eax
405c77:	0f 84 a5 3f 01 00    	je     0x419c22
405c7d:	6a 2f                	push   $0x2f
405c7f:	58                   	pop    %eax
405c80:	66 3b d0             	cmp    %ax,%dx
405c83:	0f 84 d3 00 00 00    	je     0x405d5c
405c89:	8b d1                	mov    %ecx,%edx
405c8b:	8d 42 02             	lea    0x2(%edx),%eax
405c8e:	89 45 e8             	mov    %eax,-0x18(%ebp)
405c91:	66 8b 02             	mov    (%edx),%ax
405c94:	83 c2 02             	add    $0x2,%edx
405c97:	66 3b 45 d0          	cmp    -0x30(%ebp),%ax
405c9b:	75 f4                	jne    0x405c91
405c9d:	2b 55 e8             	sub    -0x18(%ebp),%edx
405ca0:	d1 fa                	sar    $1,%edx
405ca2:	89 55 e8             	mov    %edx,-0x18(%ebp)
405ca5:	e8 b6 a3 00 00       	call   0x410060
405caa:	8b 55 e8             	mov    -0x18(%ebp),%edx
405cad:	8b 4d ec             	mov    -0x14(%ebp),%ecx
405cb0:	42                   	inc    %edx
405cb1:	50                   	push   %eax
405cb2:	e8 e9 96 00 00       	call   0x40f3a0
405cb7:	8b 4d ec             	mov    -0x14(%ebp),%ecx
405cba:	8d 45 c4             	lea    -0x3c(%ebp),%eax
405cbd:	56                   	push   %esi
405cbe:	50                   	push   %eax
405cbf:	8d 45 e0             	lea    -0x20(%ebp),%eax
405cc2:	8b d7                	mov    %edi,%edx
405cc4:	50                   	push   %eax
405cc5:	8d 45 c8             	lea    -0x38(%ebp),%eax
405cc8:	50                   	push   %eax
405cc9:	8d 45 cc             	lea    -0x34(%ebp),%eax
405ccc:	50                   	push   %eax
405ccd:	e8 0e 01 00 00       	call   0x405de0
405cd2:	8b f8                	mov    %eax,%edi
405cd4:	8b 45 cc             	mov    -0x34(%ebp),%eax
405cd7:	89 45 e4             	mov    %eax,-0x1c(%ebp)
405cda:	8b 45 c8             	mov    -0x38(%ebp),%eax
405cdd:	89 45 d8             	mov    %eax,-0x28(%ebp)
405ce0:	8b 4d ec             	mov    -0x14(%ebp),%ecx
405ce3:	8d 0c 59             	lea    (%ecx,%ebx,2),%ecx
405ce6:	83 c1 02             	add    $0x2,%ecx
405ce9:	89 4d ec             	mov    %ecx,-0x14(%ebp)
405cec:	0f b7 01             	movzwl (%ecx),%eax
405cef:	8b d0                	mov    %eax,%edx
405cf1:	66 85 c0             	test   %ax,%ax
405cf4:	0f 85 55 ff ff ff    	jne    0x405c4f
405cfa:	8b 5d d8             	mov    -0x28(%ebp),%ebx
405cfd:	8b d7                	mov    %edi,%edx
405cff:	8b 4d e0             	mov    -0x20(%ebp),%ecx
405d02:	53                   	push   %ebx
405d03:	ff 75 c4             	push   -0x3c(%ebp)
405d06:	e8 c3 f2 ff ff       	call   0x404fce
405d0b:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
405d0f:	8b 45 e4             	mov    -0x1c(%ebp),%eax
405d12:	0f 85 44 3f 01 00    	jne    0x419c5c
405d18:	83 7d bc 00          	cmpl   $0x0,-0x44(%ebp)
405d1c:	0f 85 46 3f 01 00    	jne    0x419c68
405d22:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
405d25:	ba 00 20 00 00       	mov    $0x2000,%edx
405d2a:	85 c9                	test   %ecx,%ecx
405d2c:	75 73                	jne    0x405da1
405d2e:	83 7d b8 00          	cmpl   $0x0,-0x48(%ebp)
405d32:	0f 85 3c 3f 01 00    	jne    0x419c74
405d38:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
405d3c:	0f 84 01 3f 01 00    	je     0x419c43
405d42:	83 ff 06             	cmp    $0x6,%edi
405d45:	0f 85 47 3f 01 00    	jne    0x419c92
405d4b:	8b 4d f8             	mov    -0x8(%ebp),%ecx
405d4e:	5f                   	pop    %edi
405d4f:	5e                   	pop    %esi
405d50:	33 cd                	xor    %ebp,%ecx
405d52:	5b                   	pop    %ebx
405d53:	e8 d8 0d 01 00       	call   0x416b30
405d58:	c9                   	leave
405d59:	c2 04 00             	ret    $0x4
405d5c:	8b 55 e4             	mov    -0x1c(%ebp),%edx
405d5f:	8d 45 bc             	lea    -0x44(%ebp),%eax
405d62:	50                   	push   %eax
405d63:	8d 45 d4             	lea    -0x2c(%ebp),%eax
405d66:	50                   	push   %eax
405d67:	8d 45 b8             	lea    -0x48(%ebp),%eax
405d6a:	50                   	push   %eax
405d6b:	8d 45 c0             	lea    -0x40(%ebp),%eax
405d6e:	50                   	push   %eax
405d6f:	8d 45 dc             	lea    -0x24(%ebp),%eax
405d72:	50                   	push   %eax
405d73:	57                   	push   %edi
405d74:	ff 75 d8             	push   -0x28(%ebp)
405d77:	e8 f9 f3 00 00       	call   0x415175
405d7c:	8b 4d ec             	mov    -0x14(%ebp),%ecx
405d7f:	83 c1 04             	add    $0x4,%ecx
405d82:	33 db                	xor    %ebx,%ebx
405d84:	8d 51 02             	lea    0x2(%ecx),%edx
405d87:	66 8b 01             	mov    (%ecx),%ax
405d8a:	83 c1 02             	add    $0x2,%ecx
405d8d:	66 3b c3             	cmp    %bx,%ax
405d90:	75 f5                	jne    0x405d87
405d92:	8b 75 dc             	mov    -0x24(%ebp),%esi
405d95:	2b ca                	sub    %edx,%ecx
405d97:	d1 f9                	sar    $1,%ecx
405d99:	8d 59 02             	lea    0x2(%ecx),%ebx
405d9c:	e9 3f ff ff ff       	jmp    0x405ce0
405da1:	09 53 1c             	or     %edx,0x1c(%ebx)
405da4:	eb 88                	jmp    0x405d2e
405da6:	8b ff                	mov    %edi,%edi
405da8:	55                   	push   %ebp
405da9:	8b ec                	mov    %esp,%ebp
405dab:	53                   	push   %ebx
405dac:	56                   	push   %esi
405dad:	57                   	push   %edi
405dae:	6a 24                	push   $0x24
405db0:	8b d9                	mov    %ecx,%ebx
405db2:	8b fa                	mov    %edx,%edi
405db4:	59                   	pop    %ecx
405db5:	e8 16 7f 00 00       	call   0x40dcd0
405dba:	8b f0                	mov    %eax,%esi
405dbc:	85 f6                	test   %esi,%esi
405dbe:	0f 84 e3 3e 01 00    	je     0x419ca7
405dc4:	83 66 1c 00          	andl   $0x0,0x1c(%esi)
405dc8:	83 66 20 00          	andl   $0x0,0x20(%esi)
405dcc:	8b 45 08             	mov    0x8(%ebp),%eax
405dcf:	89 73 20             	mov    %esi,0x20(%ebx)
405dd2:	09 46 1c             	or     %eax,0x1c(%esi)
405dd5:	8b c6                	mov    %esi,%eax
405dd7:	89 3e                	mov    %edi,(%esi)
405dd9:	5f                   	pop    %edi
405dda:	5e                   	pop    %esi
405ddb:	5b                   	pop    %ebx
405ddc:	5d                   	pop    %ebp
405ddd:	c2 04 00             	ret    $0x4
405de0:	8b ff                	mov    %edi,%edi
405de2:	55                   	push   %ebp
405de3:	8b ec                	mov    %esp,%ebp
405de5:	56                   	push   %esi
405de6:	83 fa 01             	cmp    $0x1,%edx
405de9:	74 37                	je     0x405e22
405deb:	83 fa 02             	cmp    $0x2,%edx
405dee:	0f 85 c6 3e 01 00    	jne    0x419cba
405df4:	8b 75 0c             	mov    0xc(%ebp),%esi
405df7:	8b d1                	mov    %ecx,%edx
405df9:	ff 75 18             	push   0x18(%ebp)
405dfc:	8b 0e                	mov    (%esi),%ecx
405dfe:	e8 a3 ff ff ff       	call   0x405da6
405e03:	8b c8                	mov    %eax,%ecx
405e05:	89 06                	mov    %eax,(%esi)
405e07:	e8 15 31 00 00       	call   0x408f21
405e0c:	8b 0d a8 67 43 00    	mov    0x4367a8,%ecx
405e12:	85 c9                	test   %ecx,%ecx
405e14:	0f 85 c9 3e 01 00    	jne    0x419ce3
405e1a:	6a 06                	push   $0x6
405e1c:	58                   	pop    %eax
405e1d:	5e                   	pop    %esi
405e1e:	5d                   	pop    %ebp
405e1f:	c2 14 00             	ret    $0x14
405e22:	8b 75 08             	mov    0x8(%ebp),%esi
405e25:	8b d1                	mov    %ecx,%edx
405e27:	ff 75 18             	push   0x18(%ebp)
405e2a:	8b 0e                	mov    (%esi),%ecx
405e2c:	e8 75 ff ff ff       	call   0x405da6
405e31:	8b c8                	mov    %eax,%ecx
405e33:	89 06                	mov    %eax,(%esi)
405e35:	e8 e7 30 00 00       	call   0x408f21
405e3a:	8b 0d a8 67 43 00    	mov    0x4367a8,%ecx
405e40:	85 c9                	test   %ecx,%ecx
405e42:	75 18                	jne    0x405e5c
405e44:	8b 4d 10             	mov    0x10(%ebp),%ecx
405e47:	6a 02                	push   $0x2
405e49:	58                   	pop    %eax
405e4a:	ff 01                	incl   (%ecx)
405e4c:	8b 0e                	mov    (%esi),%ecx
405e4e:	f6 41 1c 08          	testb  $0x8,0x1c(%ecx)
405e52:	75 c9                	jne    0x405e1d
405e54:	8b 4d 14             	mov    0x14(%ebp),%ecx
405e57:	83 21 00             	andl   $0x0,(%ecx)
405e5a:	eb c1                	jmp    0x405e1d
405e5c:	83 f9 7b             	cmp    $0x7b,%ecx
405e5f:	74 e3                	je     0x405e44
405e61:	33 d2                	xor    %edx,%edx
405e63:	e8 e8 2d 02 00       	call   0x428c50
405e68:	83 e9 00             	sub    $0x0,%ecx
405e6b:	74 30                	je     0x405e9d
405e6d:	83 e9 01             	sub    $0x1,%ecx
405e70:	74 25                	je     0x405e97
405e72:	83 e9 01             	sub    $0x1,%ecx
405e75:	74 1a                	je     0x405e91
405e77:	83 e9 01             	sub    $0x1,%ecx
405e7a:	74 0f                	je     0x405e8b
405e7c:	83 e9 01             	sub    $0x1,%ecx
405e7f:	0f 85 6c 3e 01 00    	jne    0x419cf1
405e85:	b8 b0 c8 43 00       	mov    $0x43c8b0,%eax
405e8a:	c3                   	ret
405e8b:	b8 f0 c8 43 00       	mov    $0x43c8f0,%eax
405e90:	c3                   	ret
405e91:	b8 30 c9 43 00       	mov    $0x43c930,%eax
405e96:	c3                   	ret
405e97:	b8 70 c9 43 00       	mov    $0x43c970,%eax
405e9c:	c3                   	ret
405e9d:	b8 f0 c7 43 00       	mov    $0x43c7f0,%eax
405ea2:	c3                   	ret
405ea3:	8b ff                	mov    %edi,%edi
405ea5:	55                   	push   %ebp
405ea6:	8b ec                	mov    %esp,%ebp
405ea8:	83 e4 f8             	and    $0xfffffff8,%esp
405eab:	81 ec b8 04 00 00    	sub    $0x4b8,%esp
405eb1:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
405eb6:	33 c4                	xor    %esp,%eax
405eb8:	89 84 24 b4 04 00 00 	mov    %eax,0x4b4(%esp)
405ebf:	56                   	push   %esi
405ec0:	57                   	push   %edi
405ec1:	33 c0                	xor    %eax,%eax
405ec3:	89 54 24 08          	mov    %edx,0x8(%esp)
405ec7:	33 d2                	xor    %edx,%edx
405ec9:	40                   	inc    %eax
405eca:	bf 04 01 00 00       	mov    $0x104,%edi
405ecf:	89 44 24 14          	mov    %eax,0x14(%esp)
405ed3:	57                   	push   %edi
405ed4:	88 84 24 60 02 00 00 	mov    %al,0x260(%esp)
405edb:	8b f1                	mov    %ecx,%esi
405edd:	52                   	push   %edx
405ede:	8d 44 24 58          	lea    0x58(%esp),%eax
405ee2:	89 54 24 14          	mov    %edx,0x14(%esp)
405ee6:	50                   	push   %eax
405ee7:	89 15 60 67 43 00    	mov    %edx,0x436760
405eed:	89 94 24 64 02 00 00 	mov    %edx,0x264(%esp)
405ef4:	89 bc 24 6c 02 00 00 	mov    %edi,0x26c(%esp)
405efb:	e8 bd 20 01 00       	call   0x417fbd
405f00:	33 c0                	xor    %eax,%eax
405f02:	8d 4c 24 5c          	lea    0x5c(%esp),%ecx
405f06:	83 c4 0c             	add    $0xc,%esp
405f09:	38 84 24 5c 02 00 00 	cmp    %al,0x25c(%esp)
405f10:	0f 94 c0             	sete   %al
405f13:	48                   	dec    %eax
405f14:	25 e3 7e 00 00       	and    $0x7ee3,%eax
405f19:	03 c7                	add    %edi,%eax
405f1b:	50                   	push   %eax
405f1c:	e8 cf 84 00 00       	call   0x40e3f0
405f21:	85 c0                	test   %eax,%eax
405f23:	0f 88 d9 3d 01 00    	js     0x419d02
405f29:	8b 0d f8 8d 44 00    	mov    0x448df8,%ecx
405f2f:	85 c9                	test   %ecx,%ecx
405f31:	0f 84 d8 3d 01 00    	je     0x419d0f
405f37:	8b 15 00 8e 44 00    	mov    0x448e00,%edx
405f3d:	33 ff                	xor    %edi,%edi
405f3f:	57                   	push   %edi
405f40:	e8 59 2f 00 00       	call   0x408e9e
405f45:	57                   	push   %edi
405f46:	33 d2                	xor    %edx,%edx
405f48:	8b ce                	mov    %esi,%ecx
405f4a:	e8 e1 5c 00 00       	call   0x40bc30
405f4f:	8b f8                	mov    %eax,%edi
405f51:	33 c0                	xor    %eax,%eax
405f53:	89 7c 24 24          	mov    %edi,0x24(%esp)
405f57:	66 39 07             	cmp    %ax,(%edi)