476cd6:	e8 d5 24 f9 ff       	call   0x4091b0
476cdb:	83 c4 0c             	add    $0xc,%esp
476cde:	6a 11                	push   $0x11
476ce0:	6a 02                	push   $0x2
476ce2:	6a 02                	push   $0x2
476ce4:	ff 15 cc f7 48 00    	call   *0x48f7cc
476cea:	89 45 0c             	mov    %eax,0xc(%ebp)
476ced:	83 f8 ff             	cmp    $0xffffffff,%eax
476cf0:	75 37                	jne    0x476d29
476cf2:	6a 00                	push   $0x0
476cf4:	ff 15 04 f8 48 00    	call   *0x48f804
476cfa:	50                   	push   %eax
476cfb:	8b 06                	mov    (%esi),%eax
476cfd:	8b 48 04             	mov    0x4(%eax),%ecx
476d00:	03 ce                	add    %esi,%ecx
476d02:	e8 9c fd fd ff       	call   0x456aa3
476d07:	6a 00                	push   $0x0
476d09:	53                   	push   %ebx
476d0a:	6a 02                	push   $0x2
476d0c:	57                   	push   %edi
476d0d:	e8 8e 21 f9 ff       	call   0x408ea0
476d12:	83 c4 10             	add    $0x10,%esp
476d15:	8b f0                	mov    %eax,%esi
476d17:	8b ce                	mov    %esi,%ecx
476d19:	e8 02 2d f9 ff       	call   0x409a20
476d1e:	89 5e 0c             	mov    %ebx,0xc(%esi)
476d21:	83 0e ff             	orl    $0xffffffff,(%esi)
476d24:	e9 e4 00 00 00       	jmp    0x476e0d
476d29:	8b 5d 08             	mov    0x8(%ebp),%ebx
476d2c:	83 7b 08 02          	cmpl   $0x2,0x8(%ebx)
476d30:	76 4a                	jbe    0x476d7c
476d32:	8b 43 04             	mov    0x4(%ebx),%eax
476d35:	8b 48 08             	mov    0x8(%eax),%ecx
476d38:	e8 5f 2f f9 ff       	call   0x409c9c
476d3d:	a8 01                	test   $0x1,%al
476d3f:	74 3b                	je     0x476d7c
476d41:	6a 04                	push   $0x4
476d43:	8d 45 08             	lea    0x8(%ebp),%eax
476d46:	c7 45 08 01 00 00 00 	movl   $0x1,0x8(%ebp)
476d4d:	50                   	push   %eax
476d4e:	6a 20                	push   $0x20
476d50:	68 ff ff 00 00       	push   $0xffff
476d55:	ff 75 0c             	push   0xc(%ebp)
476d58:	ff 15 d4 f7 48 00    	call   *0x48f7d4
476d5e:	85 c0                	test   %eax,%eax
476d60:	74 1a                	je     0x476d7c
476d62:	6a 00                	push   $0x0
476d64:	ff 15 04 f8 48 00    	call   *0x48f804
476d6a:	50                   	push   %eax
476d6b:	8b 06                	mov    (%esi),%eax
476d6d:	8b 48 04             	mov    0x4(%eax),%ecx
476d70:	03 ce                	add    %esi,%ecx
476d72:	e8 2c fd fd ff       	call   0x456aa3
476d77:	33 db                	xor    %ebx,%ebx
476d79:	43                   	inc    %ebx
476d7a:	eb 8b                	jmp    0x476d07
476d7c:	6a 00                	push   $0x0
476d7e:	6a 01                	push   $0x1
476d80:	6a 02                	push   $0x2
476d82:	57                   	push   %edi
476d83:	e8 18 21 f9 ff       	call   0x408ea0
476d88:	83 c4 10             	add    $0x10,%esp
476d8b:	8b f0                	mov    %eax,%esi
476d8d:	8b ce                	mov    %esi,%ecx
476d8f:	e8 8c 2c f9 ff       	call   0x409a20
476d94:	33 c0                	xor    %eax,%eax
476d96:	c7 06 d1 94 b5 02    	movl   $0x2b594d1,(%esi)
476d9c:	40                   	inc    %eax
476d9d:	50                   	push   %eax
476d9e:	50                   	push   %eax
476d9f:	6a 02                	push   $0x2
476da1:	57                   	push   %edi
476da2:	89 46 0c             	mov    %eax,0xc(%esi)
476da5:	e8 f6 20 f9 ff       	call   0x408ea0
476daa:	83 c4 10             	add    $0x10,%esp
476dad:	8b f0                	mov    %eax,%esi
476daf:	8b ce                	mov    %esi,%ecx
476db1:	e8 6a 2c f9 ff       	call   0x409a20
476db6:	8b 45 0c             	mov    0xc(%ebp),%eax
476db9:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
476dc0:	89 06                	mov    %eax,(%esi)
476dc2:	8b 43 04             	mov    0x4(%ebx),%eax
476dc5:	8b 30                	mov    (%eax),%esi
476dc7:	8b ce                	mov    %esi,%ecx
476dc9:	e8 c9 2b f9 ff       	call   0x409997
476dce:	ff 76 08             	push   0x8(%esi)
476dd1:	6a 02                	push   $0x2
476dd3:	6a 01                	push   $0x1
476dd5:	6a 02                	push   $0x2
476dd7:	57                   	push   %edi
476dd8:	e8 c3 20 f9 ff       	call   0x408ea0
476ddd:	83 c4 10             	add    $0x10,%esp
476de0:	8b c8                	mov    %eax,%ecx
476de2:	e8 b5 2d f9 ff       	call   0x409b9c
476de7:	8b 43 04             	mov    0x4(%ebx),%eax
476dea:	8b 70 04             	mov    0x4(%eax),%esi
476ded:	8b ce                	mov    %esi,%ecx
476def:	e8 a3 2b f9 ff       	call   0x409997
476df4:	ff 76 08             	push   0x8(%esi)
476df7:	6a 03                	push   $0x3
476df9:	6a 01                	push   $0x1
476dfb:	6a 02                	push   $0x2
476dfd:	57                   	push   %edi
476dfe:	e8 9d 20 f9 ff       	call   0x408ea0
476e03:	83 c4 10             	add    $0x10,%esp
476e06:	8b c8                	mov    %eax,%ecx
476e08:	e8 8f 2d f9 ff       	call   0x409b9c
476e0d:	5f                   	pop    %edi
476e0e:	5e                   	pop    %esi
476e0f:	33 c0                	xor    %eax,%eax
476e11:	5b                   	pop    %ebx
476e12:	5d                   	pop    %ebp
476e13:	c2 08 00             	ret    $0x8
476e16:	cc                   	int3
476e17:	55                   	push   %ebp
476e18:	8b ec                	mov    %esp,%ebp
476e1a:	83 e4 f8             	and    $0xfffffff8,%esp
476e1d:	81 ec 54 01 00 00    	sub    $0x154,%esp
476e23:	53                   	push   %ebx
476e24:	8b 5d 08             	mov    0x8(%ebp),%ebx
476e27:	56                   	push   %esi
476e28:	8b f1                	mov    %ecx,%esi
476e2a:	57                   	push   %edi
476e2b:	8b 43 04             	mov    0x4(%ebx),%eax
476e2e:	8b 48 04             	mov    0x4(%eax),%ecx
476e31:	e8 66 2e f9 ff       	call   0x409c9c
476e36:	8b 4d 0c             	mov    0xc(%ebp),%ecx
476e39:	68 10 f9 48 00       	push   $0x48f910
476e3e:	89 44 24 14          	mov    %eax,0x14(%esp)
476e42:	e8 b1 2d f9 ff       	call   0x409bf8
476e47:	8b 4b 04             	mov    0x4(%ebx),%ecx
476e4a:	8b 09                	mov    (%ecx),%ecx
476e4c:	83 79 0c 05          	cmpl   $0x5,0xc(%ecx)
476e50:	74 15                	je     0x476e67
476e52:	6a 00                	push   $0x0
476e54:	6a fd                	push   $0xfffffffd
476e56:	8b 06                	mov    (%esi),%eax
476e58:	8b 48 04             	mov    0x4(%eax),%ecx
476e5b:	03 ce                	add    %esi,%ecx
476e5d:	e8 41 fc fd ff       	call   0x456aa3
476e62:	e9 7d 02 00 00       	jmp    0x4770e4
476e67:	33 db                	xor    %ebx,%ebx
476e69:	83 79 0c 05          	cmpl   $0x5,0xc(%ecx)
476e6d:	75 04                	jne    0x476e73
476e6f:	8b 39                	mov    (%ecx),%edi
476e71:	eb 02                	jmp    0x476e75
476e73:	8b fb                	mov    %ebx,%edi
476e75:	53                   	push   %ebx
476e76:	6a 01                	push   $0x1
476e78:	6a 01                	push   $0x1
476e7a:	57                   	push   %edi
476e7b:	e8 20 20 f9 ff       	call   0x408ea0
476e80:	83 c4 10             	add    $0x10,%esp
476e83:	85 c0                	test   %eax,%eax
476e85:	75 03                	jne    0x476e8a
476e87:	53                   	push   %ebx
476e88:	eb ca                	jmp    0x476e54
476e8a:	8b c8                	mov    %eax,%ecx
476e8c:	e8 0b 2e f9 ff       	call   0x409c9c
476e91:	3d d1 94 b5 02       	cmp    $0x2b594d1,%eax
476e96:	74 05                	je     0x476e9d
476e98:	53                   	push   %ebx
476e99:	6a fc                	push   $0xfffffffc
476e9b:	eb b9                	jmp    0x476e56
476e9d:	6a 01                	push   $0x1
476e9f:	6a 01                	push   $0x1
476ea1:	6a 01                	push   $0x1
476ea3:	57                   	push   %edi
476ea4:	e8 f7 1f f9 ff       	call   0x408ea0
476ea9:	83 c4 10             	add    $0x10,%esp
476eac:	89 44 24 0c          	mov    %eax,0xc(%esp)
476eb0:	8b c8                	mov    %eax,%ecx
476eb2:	e8 e5 2d f9 ff       	call   0x409c9c
476eb7:	8b d8                	mov    %eax,%ebx
476eb9:	c7 44 24 18 10 00 00 	movl   $0x10,0x18(%esp)
476ec0:	00
476ec1:	33 c0                	xor    %eax,%eax
476ec3:	8d 7c 24 3a          	lea    0x3a(%esp),%edi
476ec7:	66 89 44 24 38       	mov    %ax,0x38(%esp)
476ecc:	ab                   	stos   %eax,%es:(%edi)
476ecd:	6a 00                	push   $0x0
476ecf:	ab                   	stos   %eax,%es:(%edi)
476ed0:	ab                   	stos   %eax,%es:(%edi)
476ed1:	66 ab                	stos   %ax,%es:(%edi)
476ed3:	83 fb ff             	cmp    $0xffffffff,%ebx
476ed6:	75 06                	jne    0x476ede
476ed8:	53                   	push   %ebx
476ed9:	e9 78 ff ff ff       	jmp    0x476e56
476ede:	6a 64                	push   $0x64
476ee0:	8d 44 24 60          	lea    0x60(%esp),%eax
476ee4:	8b ce                	mov    %esi,%ecx
476ee6:	50                   	push   %eax
476ee7:	53                   	push   %ebx
476ee8:	e8 44 12 00 00       	call   0x478131
476eed:	83 f8 ff             	cmp    $0xffffffff,%eax
476ef0:	0f 84 ee 01 00 00    	je     0x4770e4
476ef6:	8b 7c 24 10          	mov    0x10(%esp),%edi
476efa:	8d 47 01             	lea    0x1(%edi),%eax
476efd:	50                   	push   %eax
476efe:	e8 f3 a0 fa ff       	call   0x420ff6
476f03:	59                   	pop    %ecx
476f04:	50                   	push   %eax
476f05:	8d 4c 24 20          	lea    0x20(%esp),%ecx
476f09:	e8 80 e4 f8 ff       	call   0x40538e
476f0e:	8d 44 24 58          	lea    0x58(%esp),%eax
476f12:	50                   	push   %eax
476f13:	53                   	push   %ebx
476f14:	ff 15 ec f7 48 00    	call   *0x48f7ec
476f1a:	85 c0                	test   %eax,%eax
476f1c:	0f 84 a9 01 00 00    	je     0x4770cb
476f22:	8d 44 24 18          	lea    0x18(%esp),%eax
476f26:	50                   	push   %eax
476f27:	8d 44 24 3c          	lea    0x3c(%esp),%eax
476f2b:	50                   	push   %eax
476f2c:	6a 00                	push   $0x0
476f2e:	57                   	push   %edi
476f2f:	8b 7c 24 2c          	mov    0x2c(%esp),%edi
476f33:	57                   	push   %edi
476f34:	53                   	push   %ebx
476f35:	ff 15 dc f7 48 00    	call   *0x48f7dc
476f3b:	8b d8                	mov    %eax,%ebx
476f3d:	89 5c 24 10          	mov    %ebx,0x10(%esp)
476f41:	83 fb ff             	cmp    $0xffffffff,%ebx
476f44:	75 0e                	jne    0x476f54
476f46:	6a 00                	push   $0x0
476f48:	ff 15 04 f8 48 00    	call   *0x48f804
476f4e:	50                   	push   %eax
476f4f:	e9 7b 01 00 00       	jmp    0x4770cf
476f54:	8b 45 08             	mov    0x8(%ebp),%eax
476f57:	33 f6                	xor    %esi,%esi
476f59:	83 78 08 03          	cmpl   $0x3,0x8(%eax)
476f5d:	0f 82 f0 00 00 00    	jb     0x477053
476f63:	8b 40 04             	mov    0x4(%eax),%eax
476f66:	8b 48 08             	mov    0x8(%eax),%ecx
476f69:	e8 2e 2d f9 ff       	call   0x409c9c
476f6e:	8b 4d 08             	mov    0x8(%ebp),%ecx
476f71:	83 e0 01             	and    $0x1,%eax
476f74:	89 44 24 14          	mov    %eax,0x14(%esp)
476f78:	8b 49 04             	mov    0x4(%ecx),%ecx
476f7b:	8b 49 08             	mov    0x8(%ecx),%ecx
476f7e:	e8 19 2d f9 ff       	call   0x409c9c
476f83:	8b f0                	mov    %eax,%esi
476f85:	83 e6 02             	and    $0x2,%esi
476f88:	89 74 24 34          	mov    %esi,0x34(%esp)
476f8c:	0f 84 ad 00 00 00    	je     0x47703f
476f92:	8b 4d 0c             	mov    0xc(%ebp),%ecx
476f95:	e8 94 24 f9 ff       	call   0x40942e
476f9a:	33 ff                	xor    %edi,%edi
476f9c:	8b d8                	mov    %eax,%ebx
476f9e:	6a 03                	push   $0x3
476fa0:	47                   	inc    %edi
476fa1:	57                   	push   %edi
476fa2:	53                   	push   %ebx
476fa3:	e8 08 22 f9 ff       	call   0x4091b0
476fa8:	57                   	push   %edi
476fa9:	57                   	push   %edi
476faa:	6a 02                	push   $0x2
476fac:	53                   	push   %ebx
476fad:	e8 ee 1e f9 ff       	call   0x408ea0
476fb2:	83 c4 1c             	add    $0x1c,%esp
476fb5:	8b f0                	mov    %eax,%esi
476fb7:	ff 74 24 3c          	push   0x3c(%esp)
476fbb:	ff 15 14 f8 48 00    	call   *0x48f814
476fc1:	50                   	push   %eax
476fc2:	8d 4c 24 28          	lea    0x28(%esp),%ecx
476fc6:	e8 49 3e fe ff       	call   0x45ae14
476fcb:	8d 44 24 48          	lea    0x48(%esp),%eax
476fcf:	50                   	push   %eax
476fd0:	8d 4c 24 28          	lea    0x28(%esp),%ecx
476fd4:	e8 d3 12 00 00       	call   0x4782ac
476fd9:	50                   	push   %eax
476fda:	8b ce                	mov    %esi,%ecx
476fdc:	e8 bb 2b f9 ff       	call   0x409b9c
476fe1:	8d 4c 24 48          	lea    0x48(%esp),%ecx
476fe5:	e8 7a ea f8 ff       	call   0x405a64
476fea:	6a 02                	push   $0x2
476fec:	57                   	push   %edi
476fed:	6a 02                	push   $0x2
476fef:	53                   	push   %ebx
476ff0:	e8 ab 1e f9 ff       	call   0x408ea0
476ff5:	83 c4 10             	add    $0x10,%esp
476ff8:	8b f8                	mov    %eax,%edi
476ffa:	ff 74 24 3a          	push   0x3a(%esp)
476ffe:	ff 15 d8 f7 48 00    	call   *0x48f7d8
477004:	8b cf                	mov    %edi,%ecx
477006:	0f b7 f0             	movzwl %ax,%esi
477009:	e8 12 2a f9 ff       	call   0x409a20
47700e:	6a 00                	push   $0x0
477010:	6a 01                	push   $0x1
477012:	6a 02                	push   $0x2
477014:	53                   	push   %ebx
477015:	c7 47 0c 01 00 00 00 	movl   $0x1,0xc(%edi)
47701c:	89 37                	mov    %esi,(%edi)
47701e:	e8 7d 1e f9 ff       	call   0x408ea0
477023:	83 c4 10             	add    $0x10,%esp
477026:	89 44 24 0c          	mov    %eax,0xc(%esp)
47702a:	8d 4c 24 24          	lea    0x24(%esp),%ecx
47702e:	e8 31 ea f8 ff       	call   0x405a64
477033:	8b 5c 24 10          	mov    0x10(%esp),%ebx
477037:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
47703b:	8b 74 24 34          	mov    0x34(%esp),%esi
47703f:	83 7c 24 14 00       	cmpl   $0x0,0x14(%esp)
477044:	74 0d                	je     0x477053
477046:	53                   	push   %ebx
477047:	57                   	push   %edi
477048:	53                   	push   %ebx
477049:	85 f6                	test   %esi,%esi
47704b:	74 6b                	je     0x4770b8
47704d:	8b 4c 24 18          	mov    0x18(%esp),%ecx
477051:	eb 68                	jmp    0x4770bb
477053:	57                   	push   %edi
477054:	c6 04 1f 00          	movb   $0x0,(%edi,%ebx,1)
477058:	e8 23 c9 fa ff       	call   0x423980
47705d:	59                   	pop    %ecx
47705e:	53                   	push   %ebx
47705f:	3b c3                	cmp    %ebx,%eax
477061:	75 4b                	jne    0x4770ae
477063:	8d 4c 24 28          	lea    0x28(%esp),%ecx
477067:	e8 0a 0b f9 ff       	call   0x407b76
47706c:	57                   	push   %edi
47706d:	8d 4c 24 4c          	lea    0x4c(%esp),%ecx
477071:	e8 9e 3d fe ff       	call   0x45ae14
477076:	8d 44 24 24          	lea    0x24(%esp),%eax
47707a:	50                   	push   %eax
47707b:	8d 44 24 4c          	lea    0x4c(%esp),%eax
47707f:	50                   	push   %eax
477080:	e8 b5 08 f9 ff       	call   0x40793a
477085:	8d 4c 24 48          	lea    0x48(%esp),%ecx
477089:	e8 d6 e9 f8 ff       	call   0x405a64
47708e:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
477092:	8d 44 24 24          	lea    0x24(%esp),%eax
477096:	50                   	push   %eax
477097:	85 f6                	test   %esi,%esi
477099:	75 03                	jne    0x47709e
47709b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
47709e:	e8 f9 2a f9 ff       	call   0x409b9c
4770a3:	8d 4c 24 24          	lea    0x24(%esp),%ecx
4770a7:	e8 b8 e9 f8 ff       	call   0x405a64
4770ac:	eb 2d                	jmp    0x4770db
4770ae:	8b 4c 24 10          	mov    0x10(%esp),%ecx
4770b2:	57                   	push   %edi
4770b3:	53                   	push   %ebx
4770b4:	85 f6                	test   %esi,%esi
4770b6:	75 03                	jne    0x4770bb
4770b8:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4770bb:	e8 8e 08 ff ff       	call   0x46794e
4770c0:	50                   	push   %eax
4770c1:	e8 ba 9f fa ff       	call   0x421080
4770c6:	83 c4 0c             	add    $0xc,%esp
4770c9:	eb 10                	jmp    0x4770db