471c50:	8b cf                	mov    %edi,%ecx
471c52:	e8 73 08 00 00       	call   0x4724ca
471c57:	84 c0                	test   %al,%al
471c59:	75 0b                	jne    0x471c66
471c5b:	6a 00                	push   $0x0
471c5d:	68 ef be ad de       	push   $0xdeadbeef
471c62:	6a 03                	push   $0x3
471c64:	eb c8                	jmp    0x471c2e
471c66:	4e                   	dec    %esi
471c67:	74 2c                	je     0x471c95
471c69:	4e                   	dec    %esi
471c6a:	4e                   	dec    %esi
471c6b:	74 0b                	je     0x471c78
471c6d:	6a 00                	push   $0x0
471c6f:	68 ef be ad de       	push   $0xdeadbeef
471c74:	6a 04                	push   $0x4
471c76:	eb b6                	jmp    0x471c2e
471c78:	ff 75 08             	push   0x8(%ebp)
471c7b:	8d 47 58             	lea    0x58(%edi),%eax
471c7e:	50                   	push   %eax
471c7f:	e8 f7 08 00 00       	call   0x47257b
471c84:	0f b6 c0             	movzbl %al,%eax
471c87:	8b cf                	mov    %edi,%ecx
471c89:	50                   	push   %eax
471c8a:	8d 45 84             	lea    -0x7c(%ebp),%eax
471c8d:	50                   	push   %eax
471c8e:	e8 76 00 00 00       	call   0x471d09
471c93:	eb 1e                	jmp    0x471cb3
471c95:	ff 75 08             	push   0x8(%ebp)
471c98:	8d 87 8c 00 00 00    	lea    0x8c(%edi),%eax
471c9e:	50                   	push   %eax
471c9f:	e8 d7 08 00 00       	call   0x47257b
471ca4:	0f b6 c0             	movzbl %al,%eax
471ca7:	8b cf                	mov    %edi,%ecx
471ca9:	50                   	push   %eax
471caa:	8d 45 84             	lea    -0x7c(%ebp),%eax
471cad:	50                   	push   %eax
471cae:	e8 a8 fd ff ff       	call   0x471a5b
471cb3:	8d 4d 84             	lea    -0x7c(%ebp),%ecx
471cb6:	8a d8                	mov    %al,%bl
471cb8:	e8 42 fc ff ff       	call   0x4718ff
471cbd:	5f                   	pop    %edi
471cbe:	5e                   	pop    %esi
471cbf:	8a c3                	mov    %bl,%al
471cc1:	5b                   	pop    %ebx
471cc2:	8b e5                	mov    %ebp,%esp
471cc4:	5d                   	pop    %ebp
471cc5:	c2 04 00             	ret    $0x4
471cc8:	55                   	push   %ebp
471cc9:	8b ec                	mov    %esp,%ebp
471ccb:	83 ec 0c             	sub    $0xc,%esp
471cce:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
471cd2:	8d 45 f8             	lea    -0x8(%ebp),%eax
471cd5:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
471cd9:	50                   	push   %eax
471cda:	8d 45 f4             	lea    -0xc(%ebp),%eax
471cdd:	c7 45 f4 04 00 00 00 	movl   $0x4,-0xc(%ebp)
471ce4:	50                   	push   %eax
471ce5:	8d 45 fc             	lea    -0x4(%ebp),%eax
471ce8:	50                   	push   %eax
471ce9:	68 13 00 00 20       	push   $0x20000013
471cee:	ff 75 08             	push   0x8(%ebp)
471cf1:	ff 15 90 f7 48 00    	call   *0x48f790
471cf7:	85 c0                	test   %eax,%eax
471cf9:	74 05                	je     0x471d00
471cfb:	8b 45 fc             	mov    -0x4(%ebp),%eax
471cfe:	eb 03                	jmp    0x471d03
471d00:	83 c8 ff             	or     $0xffffffff,%eax
471d03:	8b e5                	mov    %ebp,%esp
471d05:	5d                   	pop    %ebp
471d06:	c2 04 00             	ret    $0x4
471d09:	55                   	push   %ebp
471d0a:	8b ec                	mov    %esp,%ebp
471d0c:	83 ec 24             	sub    $0x24,%esp
471d0f:	53                   	push   %ebx
471d10:	8b 5d 08             	mov    0x8(%ebp),%ebx
471d13:	56                   	push   %esi
471d14:	57                   	push   %edi
471d15:	8b f9                	mov    %ecx,%edi
471d17:	83 7b 74 04          	cmpl   $0x4,0x74(%ebx)
471d1b:	8b 77 54             	mov    0x54(%edi),%esi
471d1e:	89 75 fc             	mov    %esi,-0x4(%ebp)
471d21:	75 09                	jne    0x471d2c
471d23:	81 ce 00 00 80 00    	or     $0x800000,%esi
471d29:	89 75 fc             	mov    %esi,-0x4(%ebp)
471d2c:	0f b7 43 78          	movzwl 0x78(%ebx),%eax
471d30:	6a 00                	push   $0x0
471d32:	6a 00                	push   $0x0
471d34:	ff 73 70             	push   0x70(%ebx)
471d37:	ff 73 30             	push   0x30(%ebx)
471d3a:	ff 73 20             	push   0x20(%ebx)
471d3d:	50                   	push   %eax
471d3e:	ff 73 10             	push   0x10(%ebx)
471d41:	ff 77 04             	push   0x4(%edi)
471d44:	ff 15 b0 f7 48 00    	call   *0x48f7b0
471d4a:	89 07                	mov    %eax,(%edi)
471d4c:	85 c0                	test   %eax,%eax
471d4e:	75 14                	jne    0x471d64
471d50:	50                   	push   %eax
471d51:	68 ef be ad de       	push   $0xdeadbeef
471d56:	6a 0b                	push   $0xb
471d58:	8b cf                	mov    %edi,%ecx
471d5a:	e8 18 0a 00 00       	call   0x472777
471d5f:	e9 ef 00 00 00       	jmp    0x471e53
471d64:	33 c9                	xor    %ecx,%ecx
471d66:	51                   	push   %ecx
471d67:	56                   	push   %esi
471d68:	51                   	push   %ecx
471d69:	51                   	push   %ecx
471d6a:	51                   	push   %ecx
471d6b:	ff 73 60             	push   0x60(%ebx)
471d6e:	51                   	push   %ecx
471d6f:	50                   	push   %eax
471d70:	ff 15 98 f7 48 00    	call   *0x48f798
471d76:	8b f0                	mov    %eax,%esi
471d78:	85 f6                	test   %esi,%esi
471d7a:	75 0d                	jne    0x471d89
471d7c:	50                   	push   %eax
471d7d:	68 ef be ad de       	push   $0xdeadbeef
471d82:	6a 0c                	push   $0xc
471d84:	e9 b4 00 00 00       	jmp    0x471e3d
471d89:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
471d8d:	74 09                	je     0x471d98
471d8f:	53                   	push   %ebx
471d90:	56                   	push   %esi
471d91:	8b cf                	mov    %edi,%ecx
471d93:	e8 16 0a 00 00       	call   0x4727ae
471d98:	f7 45 fc 00 10 00 00 	testl  $0x1000,-0x4(%ebp)
471d9f:	74 2c                	je     0x471dcd
471da1:	6a 04                	push   $0x4
471da3:	5b                   	pop    %ebx
471da4:	8d 45 08             	lea    0x8(%ebp),%eax
471da7:	89 5d 08             	mov    %ebx,0x8(%ebp)
471daa:	50                   	push   %eax
471dab:	8d 45 0c             	lea    0xc(%ebp),%eax
471dae:	50                   	push   %eax
471daf:	6a 1f                	push   $0x1f
471db1:	56                   	push   %esi
471db2:	ff 15 94 f7 48 00    	call   *0x48f794
471db8:	81 4d 0c 00 01 00 00 	orl    $0x100,0xc(%ebp)
471dbf:	8d 45 0c             	lea    0xc(%ebp),%eax
471dc2:	53                   	push   %ebx
471dc3:	50                   	push   %eax
471dc4:	6a 1f                	push   $0x1f
471dc6:	56                   	push   %esi
471dc7:	ff 15 88 f7 48 00    	call   *0x48f788
471dcd:	33 db                	xor    %ebx,%ebx
471dcf:	53                   	push   %ebx
471dd0:	53                   	push   %ebx
471dd1:	53                   	push   %ebx
471dd2:	53                   	push   %ebx
471dd3:	56                   	push   %esi
471dd4:	ff 15 9c f7 48 00    	call   *0x48f79c
471dda:	85 c0                	test   %eax,%eax
471ddc:	74 57                	je     0x471e35
471dde:	56                   	push   %esi
471ddf:	e8 e4 fe ff ff       	call   0x471cc8
471de4:	3d c8 00 00 00       	cmp    $0xc8,%eax
471de9:	75 4a                	jne    0x471e35
471deb:	8d 45 0c             	lea    0xc(%ebp),%eax
471dee:	89 5d 0c             	mov    %ebx,0xc(%ebp)
471df1:	50                   	push   %eax
471df2:	8d 45 08             	lea    0x8(%ebp),%eax
471df5:	c7 45 08 20 00 00 00 	movl   $0x20,0x8(%ebp)
471dfc:	50                   	push   %eax
471dfd:	8d 45 dc             	lea    -0x24(%ebp),%eax
471e00:	50                   	push   %eax
471e01:	6a 05                	push   $0x5
471e03:	56                   	push   %esi
471e04:	ff 15 90 f7 48 00    	call   *0x48f790
471e0a:	33 c0                	xor    %eax,%eax
471e0c:	66 89 45 fa          	mov    %ax,-0x6(%ebp)
471e10:	8d 45 dc             	lea    -0x24(%ebp),%eax
471e13:	50                   	push   %eax
471e14:	e8 ba 19 fb ff       	call   0x4237d3
471e19:	59                   	pop    %ecx
471e1a:	8b cf                	mov    %edi,%ecx
471e1c:	89 47 10             	mov    %eax,0x10(%edi)
471e1f:	89 57 14             	mov    %edx,0x14(%edi)
471e22:	38 5d 10             	cmp    %bl,0x10(%ebp)
471e25:	74 08                	je     0x471e2f
471e27:	56                   	push   %esi
471e28:	e8 b5 07 00 00       	call   0x4725e2
471e2d:	eb 15                	jmp    0x471e44
471e2f:	6a 01                	push   $0x1
471e31:	53                   	push   %ebx
471e32:	53                   	push   %ebx
471e33:	eb 0a                	jmp    0x471e3f
471e35:	53                   	push   %ebx
471e36:	68 ef be ad de       	push   $0xdeadbeef
471e3b:	6a 0d                	push   $0xd
471e3d:	8b cf                	mov    %edi,%ecx
471e3f:	e8 33 09 00 00       	call   0x472777
471e44:	8a d8                	mov    %al,%bl
471e46:	85 f6                	test   %esi,%esi
471e48:	74 07                	je     0x471e51
471e4a:	56                   	push   %esi
471e4b:	ff 15 80 f7 48 00    	call   *0x48f780
471e51:	8a c3                	mov    %bl,%al
471e53:	5f                   	pop    %edi
471e54:	5e                   	pop    %esi
471e55:	5b                   	pop    %ebx
471e56:	8b e5                	mov    %ebp,%esp
471e58:	5d                   	pop    %ebp
471e59:	c2 0c 00             	ret    $0xc
471e5c:	55                   	push   %ebp
471e5d:	8b ec                	mov    %esp,%ebp
471e5f:	8b 55 08             	mov    0x8(%ebp),%edx
471e62:	83 c1 10             	add    $0x10,%ecx
471e65:	e8 96 09 00 00       	call   0x472800
471e6a:	33 c0                	xor    %eax,%eax
471e6c:	5d                   	pop    %ebp
471e6d:	c2 08 00             	ret    $0x8
471e70:	55                   	push   %ebp
471e71:	8b ec                	mov    %esp,%ebp
471e73:	53                   	push   %ebx
471e74:	56                   	push   %esi
471e75:	57                   	push   %edi
471e76:	8d 79 78             	lea    0x78(%ecx),%edi
471e79:	8b 4d 0c             	mov    0xc(%ebp),%ecx
471e7c:	57                   	push   %edi
471e7d:	e8 1a 7d f9 ff       	call   0x409b9c
471e82:	8b 5d 08             	mov    0x8(%ebp),%ebx
471e85:	6a 29                	push   $0x29
471e87:	8b 43 04             	mov    0x4(%ebx),%eax
471e8a:	8b 30                	mov    (%eax),%esi
471e8c:	8b ce                	mov    %esi,%ecx
471e8e:	e8 1b 7f f9 ff       	call   0x409dae
471e93:	84 c0                	test   %al,%al
471e95:	75 28                	jne    0x471ebf
471e97:	8b ce                	mov    %esi,%ecx
471e99:	e8 f9 7a f9 ff       	call   0x409997
471e9e:	8b 46 08             	mov    0x8(%esi),%eax
471ea1:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
471ea5:	74 18                	je     0x471ebf
471ea7:	8b 43 04             	mov    0x4(%ebx),%eax
471eaa:	8b 30                	mov    (%eax),%esi
471eac:	8b ce                	mov    %esi,%ecx
471eae:	e8 e4 7a f9 ff       	call   0x409997
471eb3:	ff 76 08             	push   0x8(%esi)
471eb6:	8b cf                	mov    %edi,%ecx
471eb8:	e8 ea 62 f9 ff       	call   0x4081a7
471ebd:	eb 0c                	jmp    0x471ecb
471ebf:	68 dc 1c 49 00       	push   $0x491cdc
471ec4:	8b cf                	mov    %edi,%ecx
471ec6:	e8 61 5e f9 ff       	call   0x407d2c
471ecb:	5f                   	pop    %edi
471ecc:	5e                   	pop    %esi
471ecd:	33 c0                	xor    %eax,%eax
471ecf:	5b                   	pop    %ebx
471ed0:	5d                   	pop    %ebp
471ed1:	c2 08 00             	ret    $0x8
471ed4:	55                   	push   %ebp
471ed5:	8b ec                	mov    %esp,%ebp
471ed7:	51                   	push   %ecx
471ed8:	51                   	push   %ecx
471ed9:	8b 45 08             	mov    0x8(%ebp),%eax
471edc:	56                   	push   %esi
471edd:	8b f1                	mov    %ecx,%esi
471edf:	57                   	push   %edi
471ee0:	8b 40 04             	mov    0x4(%eax),%eax
471ee3:	8b 08                	mov    (%eax),%ecx
471ee5:	e8 b2 7d f9 ff       	call   0x409c9c
471eea:	8b 4e 04             	mov    0x4(%esi),%ecx
471eed:	8b f8                	mov    %eax,%edi
471eef:	89 4d 08             	mov    %ecx,0x8(%ebp)
471ef2:	85 c9                	test   %ecx,%ecx
471ef4:	74 36                	je     0x471f2c
471ef6:	8b 01                	mov    (%ecx),%eax
471ef8:	39 b8 d8 00 00 00    	cmp    %edi,0xd8(%eax)
471efe:	75 1b                	jne    0x471f1b
471f00:	8d 45 08             	lea    0x8(%ebp),%eax
471f03:	50                   	push   %eax
471f04:	8d 4e 04             	lea    0x4(%esi),%ecx
471f07:	e8 cc 0c 00 00       	call   0x472bd8
471f0c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
471f0f:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
471f13:	ff 75 fc             	push   -0x4(%ebp)
471f16:	e8 48 79 f9 ff       	call   0x409863
471f1b:	8d 45 f8             	lea    -0x8(%ebp),%eax
471f1e:	50                   	push   %eax
471f1f:	8d 4d 08             	lea    0x8(%ebp),%ecx
471f22:	e8 c3 4d fe ff       	call   0x456cea
471f27:	8b 4d 08             	mov    0x8(%ebp),%ecx
471f2a:	eb c6                	jmp    0x471ef2
471f2c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
471f2f:	c6 45 08 00          	movb   $0x0,0x8(%ebp)
471f33:	ff 75 08             	push   0x8(%ebp)
471f36:	e8 28 79 f9 ff       	call   0x409863
471f3b:	5f                   	pop    %edi
471f3c:	33 c0                	xor    %eax,%eax
471f3e:	5e                   	pop    %esi
471f3f:	8b e5                	mov    %ebp,%esp
471f41:	5d                   	pop    %ebp
471f42:	c2 08 00             	ret    $0x8
471f45:	55                   	push   %ebp
471f46:	8b ec                	mov    %esp,%ebp
471f48:	83 e4 f8             	and    $0xfffffff8,%esp
471f4b:	81 ec ec 00 00 00    	sub    $0xec,%esp
471f51:	53                   	push   %ebx
471f52:	8b 5d 08             	mov    0x8(%ebp),%ebx
471f55:	33 c0                	xor    %eax,%eax
471f57:	56                   	push   %esi
471f58:	57                   	push   %edi
471f59:	89 4c 24 10          	mov    %ecx,0x10(%esp)
471f5d:	83 7b 08 02          	cmpl   $0x2,0x8(%ebx)
471f61:	76 13                	jbe    0x471f76
471f63:	8b 43 04             	mov    0x4(%ebx),%eax
471f66:	8b 48 08             	mov    0x8(%eax),%ecx
471f69:	e8 2e 7d f9 ff       	call   0x409c9c
471f6e:	89 44 24 0c          	mov    %eax,0xc(%esp)
471f72:	33 c0                	xor    %eax,%eax
471f74:	eb 04                	jmp    0x471f7a
471f76:	89 44 24 0c          	mov    %eax,0xc(%esp)
471f7a:	83 7b 08 03          	cmpl   $0x3,0x8(%ebx)
471f7e:	76 0b                	jbe    0x471f8b
471f80:	8b 4b 04             	mov    0x4(%ebx),%ecx
471f83:	8b 49 0c             	mov    0xc(%ecx),%ecx
471f86:	e8 c8 7c f9 ff       	call   0x409c53
471f8b:	88 44 24 14          	mov    %al,0x14(%esp)
471f8f:	8b 43 04             	mov    0x4(%ebx),%eax
471f92:	8b 70 04             	mov    0x4(%eax),%esi
471f95:	8b ce                	mov    %esi,%ecx
471f97:	e8 fb 79 f9 ff       	call   0x409997
471f9c:	8b 46 08             	mov    0x8(%esi),%eax
471f9f:	8b 38                	mov    (%eax),%edi
471fa1:	8b 43 04             	mov    0x4(%ebx),%eax
471fa4:	8b 30                	mov    (%eax),%esi
471fa6:	8b ce                	mov    %esi,%ecx
471fa8:	e8 ea 79 f9 ff       	call   0x409997
471fad:	8b 46 08             	mov    0x8(%esi),%eax
471fb0:	83 ec 78             	sub    $0x78,%esp
471fb3:	8b 9c 24 88 00 00 00 	mov    0x88(%esp),%ebx
471fba:	8b cc                	mov    %esp,%ecx
471fbc:	8b 30                	mov    (%eax),%esi
471fbe:	8d 43 04             	lea    0x4(%ebx),%eax
471fc1:	89 84 24 88 00 00 00 	mov    %eax,0x88(%esp)
471fc8:	8d 43 10             	lea    0x10(%ebx),%eax
471fcb:	50                   	push   %eax
471fcc:	e8 d2 f7 ff ff       	call   0x4717a3
471fd1:	ff b4 24 8c 00 00 00 	push   0x8c(%esp)
471fd8:	8d 8c 24 94 00 00 00 	lea    0x94(%esp),%ecx
471fdf:	ff b4 24 88 00 00 00 	push   0x88(%esp)
471fe6:	57                   	push   %edi
471fe7:	56                   	push   %esi
471fe8:	e8 e1 f6 ff ff       	call   0x4716ce
471fed:	50                   	push   %eax
471fee:	8d 4b 04             	lea    0x4(%ebx),%ecx
471ff1:	e8 fe 0a 00 00       	call   0x472af4
471ff6:	8d 4c 24 18          	lea    0x18(%esp),%ecx