405954:	bb d0 59 41 00       	mov    $0x4159d0,%ebx
405959:	8b d7                	mov    %edi,%edx
40595b:	6a 20                	push   $0x20
40595d:	8b cb                	mov    %ebx,%ecx
40595f:	e8 36 ff 00 00       	call   0x41589a
405964:	84 c0                	test   %al,%al
405966:	0f 84 88 40 01 00    	je     0x4199f4
40596c:	8b bd a4 fd ff ff    	mov    -0x25c(%ebp),%edi
405972:	57                   	push   %edi
405973:	6a 20                	push   $0x20
405975:	8d 95 a8 fd ff ff    	lea    -0x258(%ebp),%edx
40597b:	8b cb                	mov    %ebx,%ecx
40597d:	46                   	inc    %esi
40597e:	e8 ce fe 00 00       	call   0x415851
405983:	84 c0                	test   %al,%al
405985:	75 eb                	jne    0x405972
405987:	8b cf                	mov    %edi,%ecx
405989:	e8 bf 31 00 00       	call   0x408b4d
40598e:	8b c6                	mov    %esi,%eax
405990:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405993:	5f                   	pop    %edi
405994:	5e                   	pop    %esi
405995:	33 cd                	xor    %ebp,%ecx
405997:	5b                   	pop    %ebx
405998:	e8 93 11 01 00       	call   0x416b30
40599d:	c9                   	leave
40599e:	c3                   	ret
40599f:	cc                   	int3
4059a0:	8b ff                	mov    %edi,%edi
4059a2:	55                   	push   %ebp
4059a3:	8b ec                	mov    %esp,%ebp
4059a5:	8b 4d 08             	mov    0x8(%ebp),%ecx
4059a8:	ba c0 59 40 00       	mov    $0x4059c0,%edx
4059ad:	6a 08                	push   $0x8
4059af:	8b 49 3c             	mov    0x3c(%ecx),%ecx
4059b2:	e8 ec 04 00 00       	call   0x405ea3
4059b7:	a3 dc 65 43 00       	mov    %eax,0x4365dc
4059bc:	5d                   	pop    %ebp
4059bd:	c2 04 00             	ret    $0x4
4059c0:	8b ff                	mov    %edi,%edi
4059c2:	55                   	push   %ebp
4059c3:	8b ec                	mov    %esp,%ebp
4059c5:	81 ec 28 02 00 00    	sub    $0x228,%esp
4059cb:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
4059d0:	33 c5                	xor    %ebp,%eax
4059d2:	89 45 fc             	mov    %eax,-0x4(%ebp)
4059d5:	53                   	push   %ebx
4059d6:	56                   	push   %esi
4059d7:	8b 75 08             	mov    0x8(%ebp),%esi
4059da:	57                   	push   %edi
4059db:	6a 3a                	push   $0x3a
4059dd:	58                   	pop    %eax
4059de:	66 39 46 02          	cmp    %ax,0x2(%esi)
4059e2:	75 10                	jne    0x4059f4
4059e4:	66 8b 0e             	mov    (%esi),%cx
4059e7:	e8 26 b1 00 00       	call   0x410b12
4059ec:	85 c0                	test   %eax,%eax
4059ee:	0f 84 33 40 01 00    	je     0x419a27
4059f4:	33 c0                	xor    %eax,%eax
4059f6:	bf 04 01 00 00       	mov    $0x104,%edi
4059fb:	57                   	push   %edi
4059fc:	50                   	push   %eax
4059fd:	89 45 e8             	mov    %eax,-0x18(%ebp)
405a00:	33 db                	xor    %ebx,%ebx
405a02:	8d 85 e0 fd ff ff    	lea    -0x220(%ebp),%eax
405a08:	89 7d f0             	mov    %edi,-0x10(%ebp)
405a0b:	43                   	inc    %ebx
405a0c:	50                   	push   %eax
405a0d:	88 5d ec             	mov    %bl,-0x14(%ebp)
405a10:	e8 a8 25 01 00       	call   0x417fbd
405a15:	33 c0                	xor    %eax,%eax
405a17:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
405a1d:	83 c4 0c             	add    $0xc,%esp
405a20:	38 45 ec             	cmp    %al,-0x14(%ebp)
405a23:	0f 94 c0             	sete   %al
405a26:	48                   	dec    %eax
405a27:	25 e3 7e 00 00       	and    $0x7ee3,%eax
405a2c:	03 c7                	add    %edi,%eax
405a2e:	50                   	push   %eax
405a2f:	e8 bc 89 00 00       	call   0x40e3f0
405a34:	85 c0                	test   %eax,%eax
405a36:	0f 88 fe 3f 01 00    	js     0x419a3a
405a3c:	8b 45 e8             	mov    -0x18(%ebp),%eax
405a3f:	85 c0                	test   %eax,%eax
405a41:	0f 84 f8 3f 01 00    	je     0x419a3f
405a47:	8d 8d dc fd ff ff    	lea    -0x224(%ebp),%ecx
405a4d:	51                   	push   %ecx
405a4e:	50                   	push   %eax
405a4f:	ff 75 f0             	push   -0x10(%ebp)
405a52:	56                   	push   %esi
405a53:	ff 15 a4 a0 44 00    	call   *0x44a0a4
405a59:	85 c0                	test   %eax,%eax
405a5b:	0f 84 e9 3f 01 00    	je     0x419a4a
405a61:	3d e7 7f 00 00       	cmp    $0x7fe7,%eax
405a66:	0f 83 f4 3f 01 00    	jae    0x419a60
405a6c:	33 ff                	xor    %edi,%edi
405a6e:	57                   	push   %edi
405a6f:	56                   	push   %esi
405a70:	ff 15 f0 a0 44 00    	call   *0x44a0f0
405a76:	85 c0                	test   %eax,%eax
405a78:	74 27                	je     0x405aa1
405a7a:	8b df                	mov    %edi,%ebx
405a7c:	8b 45 e8             	mov    -0x18(%ebp),%eax
405a7f:	89 7d e8             	mov    %edi,-0x18(%ebp)
405a82:	85 c0                	test   %eax,%eax
405a84:	74 08                	je     0x405a8e
405a86:	50                   	push   %eax
405a87:	ff 15 e0 a3 44 00    	call   *0x44a3e0
405a8d:	59                   	pop    %ecx
405a8e:	8b c3                	mov    %ebx,%eax
405a90:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405a93:	5f                   	pop    %edi
405a94:	5e                   	pop    %esi
405a95:	33 cd                	xor    %ebp,%ecx
405a97:	5b                   	pop    %ebx
405a98:	e8 93 10 01 00       	call   0x416b30
405a9d:	c9                   	leave
405a9e:	c2 04 00             	ret    $0x4
405aa1:	ff 15 80 a0 44 00    	call   *0x44a080
405aa7:	3d b7 00 00 00       	cmp    $0xb7,%eax
405aac:	0f 84 c4 3f 01 00    	je     0x419a76
405ab2:	83 f8 03             	cmp    $0x3,%eax
405ab5:	0f 85 97 3f 01 00    	jne    0x419a52
405abb:	80 3d 55 67 43 00 00 	cmpb   $0x0,0x436755
405ac2:	0f 84 c3 00 00 00    	je     0x405b8b
405ac8:	8b 4d e8             	mov    -0x18(%ebp),%ecx
405acb:	8b c1                	mov    %ecx,%eax
405acd:	85 c9                	test   %ecx,%ecx
405acf:	0f 84 b5 3f 01 00    	je     0x419a8a
405ad5:	6a 5c                	push   $0x5c
405ad7:	5a                   	pop    %edx
405ad8:	6a 3a                	push   $0x3a
405ada:	5e                   	pop    %esi
405adb:	66 39 70 02          	cmp    %si,0x2(%eax)
405adf:	0f 85 bb 3f 01 00    	jne    0x419aa0
405ae5:	8b d1                	mov    %ecx,%edx
405ae7:	85 c9                	test   %ecx,%ecx
405ae9:	0f 84 a6 3f 01 00    	je     0x419a95
405aef:	83 c2 06             	add    $0x6,%edx
405af2:	eb 41                	jmp    0x405b35
405af4:	6a 5c                	push   $0x5c
405af6:	5e                   	pop    %esi
405af7:	33 c0                	xor    %eax,%eax
405af9:	66 89 02             	mov    %ax,(%edx)
405afc:	8b 45 e8             	mov    -0x18(%ebp),%eax
405aff:	85 c0                	test   %eax,%eax
405b01:	0f 84 6a 40 01 00    	je     0x419b71
405b07:	57                   	push   %edi
405b08:	50                   	push   %eax
405b09:	ff 15 f0 a0 44 00    	call   *0x44a0f0
405b0f:	85 c0                	test   %eax,%eax
405b11:	75 0d                	jne    0x405b20
405b13:	ff 15 80 a0 44 00    	call   *0x44a080
405b19:	3d b7 00 00 00       	cmp    $0xb7,%eax
405b1e:	75 6b                	jne    0x405b8b
405b20:	8b 85 dc fd ff ff    	mov    -0x224(%ebp),%eax
405b26:	66 89 30             	mov    %si,(%eax)
405b29:	8b 95 dc fd ff ff    	mov    -0x224(%ebp),%edx
405b2f:	8b 4d e8             	mov    -0x18(%ebp),%ecx
405b32:	83 c2 02             	add    $0x2,%edx
405b35:	89 95 dc fd ff ff    	mov    %edx,-0x224(%ebp)
405b3b:	0f b7 32             	movzwl (%edx),%esi
405b3e:	66 85 f6             	test   %si,%si
405b41:	74 25                	je     0x405b68
405b43:	6a 5c                	push   $0x5c
405b45:	58                   	pop    %eax
405b46:	66 3b f0             	cmp    %ax,%si
405b49:	74 a9                	je     0x405af4
405b4b:	83 c2 02             	add    $0x2,%edx
405b4e:	89 95 dc fd ff ff    	mov    %edx,-0x224(%ebp)
405b54:	0f b7 02             	movzwl (%edx),%eax
405b57:	8b f0                	mov    %eax,%esi
405b59:	66 85 c0             	test   %ax,%ax
405b5c:	75 e5                	jne    0x405b43
405b5e:	6a 5c                	push   $0x5c
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