47ed45:	8b 48 04             	mov    0x4(%eax),%ecx
47ed48:	03 cf                	add    %edi,%ecx
47ed4a:	e8 12 12 fa ff       	call   0x41ff61
47ed4f:	8b 07                	mov    (%edi),%eax
47ed51:	6a 00                	push   $0x0
47ed53:	6a 01                	push   $0x1
47ed55:	8b 48 04             	mov    0x4(%eax),%ecx
47ed58:	03 cf                	add    %edi,%ecx
47ed5a:	e8 44 7d fd ff       	call   0x456aa3
47ed5f:	8b cb                	mov    %ebx,%ecx
47ed61:	e8 ba ac f8 ff       	call   0x409a20
47ed66:	83 23 00             	andl   $0x0,(%ebx)
47ed69:	c7 43 0c 01 00 00 00 	movl   $0x1,0xc(%ebx)
47ed70:	85 f6                	test   %esi,%esi
47ed72:	74 5e                	je     0x47edd2
47ed74:	6a 00                	push   $0x0
47ed76:	56                   	push   %esi
47ed77:	ff 15 ec f1 48 00    	call   *0x48f1ec
47ed7d:	85 c0                	test   %eax,%eax
47ed7f:	75 35                	jne    0x47edb6
47ed81:	50                   	push   %eax
47ed82:	ff 15 40 f3 48 00    	call   *0x48f340
47ed88:	50                   	push   %eax
47ed89:	8b 07                	mov    (%edi),%eax
47ed8b:	8b 48 04             	mov    0x4(%eax),%ecx
47ed8e:	03 cf                	add    %edi,%ecx
47ed90:	e8 cc 11 fa ff       	call   0x41ff61
47ed95:	8b 07                	mov    (%edi),%eax
47ed97:	6a 00                	push   $0x0
47ed99:	6a 03                	push   $0x3
47ed9b:	8b 48 04             	mov    0x4(%eax),%ecx
47ed9e:	03 cf                	add    %edi,%ecx
47eda0:	e8 fe 7c fd ff       	call   0x456aa3
47eda5:	8b cb                	mov    %ebx,%ecx
47eda7:	e8 74 ac f8 ff       	call   0x409a20
47edac:	83 23 00             	andl   $0x0,(%ebx)
47edaf:	c7 43 0c 01 00 00 00 	movl   $0x1,0xc(%ebx)
47edb6:	56                   	push   %esi
47edb7:	ff 15 5c f3 48 00    	call   *0x48f35c
47edbd:	eb 13                	jmp    0x47edd2
47edbf:	8b 75 0c             	mov    0xc(%ebp),%esi
47edc2:	8b ce                	mov    %esi,%ecx
47edc4:	e8 57 ac f8 ff       	call   0x409a20
47edc9:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
47edd0:	89 1e                	mov    %ebx,(%esi)
47edd2:	5f                   	pop    %edi
47edd3:	5e                   	pop    %esi
47edd4:	33 c0                	xor    %eax,%eax
47edd6:	5b                   	pop    %ebx
47edd7:	8b e5                	mov    %ebp,%esp
47edd9:	5d                   	pop    %ebp
47edda:	c2 08 00             	ret    $0x8
47eddd:	55                   	push   %ebp
47edde:	8b ec                	mov    %esp,%ebp
47ede0:	51                   	push   %ecx
47ede1:	8b 45 08             	mov    0x8(%ebp),%eax
47ede4:	53                   	push   %ebx
47ede5:	56                   	push   %esi
47ede6:	57                   	push   %edi
47ede7:	8b 40 04             	mov    0x4(%eax),%eax
47edea:	8b f9                	mov    %ecx,%edi
47edec:	33 db                	xor    %ebx,%ebx
47edee:	88 5d ff             	mov    %bl,-0x1(%ebp)
47edf1:	8b 30                	mov    (%eax),%esi
47edf3:	8b ce                	mov    %esi,%ecx
47edf5:	e8 9d ab f8 ff       	call   0x409997
47edfa:	8b 4e 08             	mov    0x8(%esi),%ecx
47edfd:	8d 45 ff             	lea    -0x1(%ebp),%eax
47ee00:	50                   	push   %eax
47ee01:	8d 55 08             	lea    0x8(%ebp),%edx
47ee04:	e8 88 50 fe ff       	call   0x463e91
47ee09:	8b 75 0c             	mov    0xc(%ebp),%esi
47ee0c:	59                   	pop    %ecx
47ee0d:	8b ce                	mov    %esi,%ecx
47ee0f:	84 c0                	test   %al,%al
47ee11:	75 1d                	jne    0x47ee30
47ee13:	e8 08 ac f8 ff       	call   0x409a20
47ee18:	33 c0                	xor    %eax,%eax
47ee1a:	89 1e                	mov    %ebx,(%esi)
47ee1c:	40                   	inc    %eax
47ee1d:	53                   	push   %ebx
47ee1e:	89 46 0c             	mov    %eax,0xc(%esi)
47ee21:	50                   	push   %eax
47ee22:	8b 07                	mov    (%edi),%eax
47ee24:	8b 48 04             	mov    0x4(%eax),%ecx
47ee27:	03 cf                	add    %edi,%ecx
47ee29:	e8 75 7c fd ff       	call   0x456aa3
47ee2e:	eb 2e                	jmp    0x47ee5e
47ee30:	e8 eb ab f8 ff       	call   0x409a20
47ee35:	38 5d ff             	cmp    %bl,-0x1(%ebp)
47ee38:	74 1b                	je     0x47ee55
47ee3a:	8b 45 08             	mov    0x8(%ebp),%eax
47ee3d:	c7 46 0c 03 00 00 00 	movl   $0x3,0xc(%esi)
47ee44:	db 45 08             	fildl  0x8(%ebp)
47ee47:	85 c0                	test   %eax,%eax
47ee49:	79 06                	jns    0x47ee51
47ee4b:	dc 05 c8 ba 4b 00    	faddl  0x4bbac8
47ee51:	dd 1e                	fstpl  (%esi)
47ee53:	eb 09                	jmp    0x47ee5e
47ee55:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
47ee5c:	89 1e                	mov    %ebx,(%esi)
47ee5e:	5f                   	pop    %edi
47ee5f:	5e                   	pop    %esi
47ee60:	33 c0                	xor    %eax,%eax
47ee62:	5b                   	pop    %ebx
47ee63:	8b e5                	mov    %ebp,%esp
47ee65:	5d                   	pop    %ebp
47ee66:	c2 08 00             	ret    $0x8
47ee69:	55                   	push   %ebp
47ee6a:	8b ec                	mov    %esp,%ebp
47ee6c:	83 e4 f8             	and    $0xfffffff8,%esp
47ee6f:	83 ec 3c             	sub    $0x3c,%esp
47ee72:	53                   	push   %ebx
47ee73:	8b 5d 0c             	mov    0xc(%ebp),%ebx
47ee76:	56                   	push   %esi
47ee77:	8b 75 08             	mov    0x8(%ebp),%esi
47ee7a:	57                   	push   %edi
47ee7b:	8b f9                	mov    %ecx,%edi
47ee7d:	8b cb                	mov    %ebx,%ecx
47ee7f:	8b 46 08             	mov    0x8(%esi),%eax
47ee82:	89 44 24 10          	mov    %eax,0x10(%esp)
47ee86:	e8 95 ab f8 ff       	call   0x409a20
47ee8b:	83 23 00             	andl   $0x0,(%ebx)
47ee8e:	33 c9                	xor    %ecx,%ecx
47ee90:	8b 44 24 10          	mov    0x10(%esp),%eax
47ee94:	41                   	inc    %ecx
47ee95:	89 4b 0c             	mov    %ecx,0xc(%ebx)
47ee98:	33 db                	xor    %ebx,%ebx
47ee9a:	3b c1                	cmp    %ecx,%eax
47ee9c:	76 11                	jbe    0x47eeaf
47ee9e:	8b 46 04             	mov    0x4(%esi),%eax
47eea1:	8b 48 04             	mov    0x4(%eax),%ecx
47eea4:	e8 f3 ad f8 ff       	call   0x409c9c
47eea9:	8b d8                	mov    %eax,%ebx
47eeab:	8b 44 24 10          	mov    0x10(%esp),%eax
47eeaf:	85 c0                	test   %eax,%eax
47eeb1:	74 59                	je     0x47ef0c
47eeb3:	8b 4e 04             	mov    0x4(%esi),%ecx
47eeb6:	8b 09                	mov    (%ecx),%ecx
47eeb8:	e8 df ad f8 ff       	call   0x409c9c
47eebd:	83 f8 ff             	cmp    $0xffffffff,%eax
47eec0:	74 4a                	je     0x47ef0c
47eec2:	8b 46 04             	mov    0x4(%esi),%eax
47eec5:	8b 30                	mov    (%eax),%esi
47eec7:	8b ce                	mov    %esi,%ecx
47eec9:	e8 c9 aa f8 ff       	call   0x409997
47eece:	8b 46 08             	mov    0x8(%esi),%eax
47eed1:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
47eed5:	74 35                	je     0x47ef0c
47eed7:	8b 45 08             	mov    0x8(%ebp),%eax
47eeda:	8b 40 04             	mov    0x4(%eax),%eax
47eedd:	8b 30                	mov    (%eax),%esi
47eedf:	8b ce                	mov    %esi,%ecx
47eee1:	e8 b1 aa f8 ff       	call   0x409997
47eee6:	8b 4e 08             	mov    0x8(%esi),%ecx
47eee9:	8d 44 24 0f          	lea    0xf(%esp),%eax
47eeed:	50                   	push   %eax
47eeee:	8d 54 24 14          	lea    0x14(%esp),%edx
47eef2:	e8 9a 4f fe ff       	call   0x463e91
47eef7:	80 7c 24 13 00       	cmpb   $0x0,0x13(%esp)
47eefc:	59                   	pop    %ecx
47eefd:	75 07                	jne    0x47ef06
47eeff:	6a 00                	push   $0x0
47ef01:	e9 02 02 00 00       	jmp    0x47f108
47ef06:	8b 44 24 10          	mov    0x10(%esp),%eax
47ef0a:	eb 06                	jmp    0x47ef12
47ef0c:	ff 15 14 f3 48 00    	call   *0x48f314
47ef12:	50                   	push   %eax
47ef13:	33 f6                	xor    %esi,%esi
47ef15:	56                   	push   %esi
47ef16:	68 10 04 00 00       	push   $0x410
47ef1b:	ff 15 c4 f1 48 00    	call   *0x48f1c4
47ef21:	89 44 24 14          	mov    %eax,0x14(%esp)
47ef25:	85 c0                	test   %eax,%eax
47ef27:	0f 84 da 01 00 00    	je     0x47f107
47ef2d:	83 f8 ff             	cmp    $0xffffffff,%eax
47ef30:	0f 84 d1 01 00 00    	je     0x47f107
47ef36:	2b de                	sub    %esi,%ebx
47ef38:	0f 84 38 01 00 00    	je     0x47f076
47ef3e:	4b                   	dec    %ebx
47ef3f:	0f 85 43 01 00 00    	jne    0x47f088
47ef45:	8d 4c 24 18          	lea    0x18(%esp),%ecx
47ef49:	51                   	push   %ecx
47ef4a:	50                   	push   %eax
47ef4b:	ff 15 18 f3 48 00    	call   *0x48f318
47ef51:	85 c0                	test   %eax,%eax
47ef53:	0f 84 2f 01 00 00    	je     0x47f088
47ef59:	8b 4d 0c             	mov    0xc(%ebp),%ecx
47ef5c:	e8 cd a4 f8 ff       	call   0x40942e
47ef61:	6a 06                	push   $0x6
47ef63:	8b f0                	mov    %eax,%esi
47ef65:	6a 01                	push   $0x1
47ef67:	56                   	push   %esi
47ef68:	89 74 24 1c          	mov    %esi,0x1c(%esp)
47ef6c:	e8 3f a2 f8 ff       	call   0x4091b0
47ef71:	8b 7c 24 24          	mov    0x24(%esp),%edi
47ef75:	8b 5c 24 28          	mov    0x28(%esp),%ebx
47ef79:	6a 00                	push   $0x0
47ef7b:	6a 01                	push   $0x1
47ef7d:	6a 02                	push   $0x2
47ef7f:	56                   	push   %esi
47ef80:	e8 1b 9f f8 ff       	call   0x408ea0
47ef85:	83 c4 1c             	add    $0x1c,%esp
47ef88:	8b f0                	mov    %eax,%esi
47ef8a:	8b ce                	mov    %esi,%ecx
47ef8c:	e8 8f aa f8 ff       	call   0x409a20
47ef91:	6a 02                	push   $0x2
47ef93:	58                   	pop    %eax
47ef94:	6a 01                	push   $0x1
47ef96:	6a 01                	push   $0x1
47ef98:	50                   	push   %eax
47ef99:	ff 74 24 1c          	push   0x1c(%esp)
47ef9d:	89 46 0c             	mov    %eax,0xc(%esi)
47efa0:	89 3e                	mov    %edi,(%esi)
47efa2:	89 5e 04             	mov    %ebx,0x4(%esi)
47efa5:	8b 7c 24 30          	mov    0x30(%esp),%edi
47efa9:	8b 5c 24 34          	mov    0x34(%esp),%ebx
47efad:	e8 ee 9e f8 ff       	call   0x408ea0
47efb2:	83 c4 10             	add    $0x10,%esp
47efb5:	8b f0                	mov    %eax,%esi
47efb7:	8b ce                	mov    %esi,%ecx
47efb9:	e8 62 aa f8 ff       	call   0x409a20
47efbe:	6a 02                	push   $0x2
47efc0:	58                   	pop    %eax
47efc1:	50                   	push   %eax
47efc2:	6a 01                	push   $0x1
47efc4:	50                   	push   %eax
47efc5:	ff 74 24 1c          	push   0x1c(%esp)
47efc9:	89 46 0c             	mov    %eax,0xc(%esi)
47efcc:	89 3e                	mov    %edi,(%esi)
47efce:	89 5e 04             	mov    %ebx,0x4(%esi)
47efd1:	8b 7c 24 38          	mov    0x38(%esp),%edi
47efd5:	8b 5c 24 3c          	mov    0x3c(%esp),%ebx
47efd9:	e8 c2 9e f8 ff       	call   0x408ea0
47efde:	83 c4 10             	add    $0x10,%esp
47efe1:	8b f0                	mov    %eax,%esi
47efe3:	8b ce                	mov    %esi,%ecx
47efe5:	e8 36 aa f8 ff       	call   0x409a20
47efea:	6a 02                	push   $0x2
47efec:	58                   	pop    %eax
47efed:	6a 03                	push   $0x3
47efef:	6a 01                	push   $0x1
47eff1:	50                   	push   %eax
47eff2:	ff 74 24 1c          	push   0x1c(%esp)
47eff6:	89 46 0c             	mov    %eax,0xc(%esi)
47eff9:	89 3e                	mov    %edi,(%esi)
47effb:	89 5e 04             	mov    %ebx,0x4(%esi)
47effe:	8b 7c 24 40          	mov    0x40(%esp),%edi
47f002:	8b 5c 24 44          	mov    0x44(%esp),%ebx
47f006:	e8 95 9e f8 ff       	call   0x408ea0
47f00b:	83 c4 10             	add    $0x10,%esp
47f00e:	8b f0                	mov    %eax,%esi
47f010:	8b ce                	mov    %esi,%ecx
47f012:	e8 09 aa f8 ff       	call   0x409a20
47f017:	6a 02                	push   $0x2
47f019:	58                   	pop    %eax
47f01a:	6a 04                	push   $0x4
47f01c:	6a 01                	push   $0x1
47f01e:	50                   	push   %eax
47f01f:	ff 74 24 1c          	push   0x1c(%esp)
47f023:	89 46 0c             	mov    %eax,0xc(%esi)
47f026:	89 3e                	mov    %edi,(%esi)
47f028:	89 5e 04             	mov    %ebx,0x4(%esi)
47f02b:	8b 7c 24 48          	mov    0x48(%esp),%edi
47f02f:	8b 5c 24 4c          	mov    0x4c(%esp),%ebx
47f033:	e8 68 9e f8 ff       	call   0x408ea0
47f038:	83 c4 10             	add    $0x10,%esp
47f03b:	8b f0                	mov    %eax,%esi
47f03d:	8b ce                	mov    %esi,%ecx
47f03f:	e8 dc a9 f8 ff       	call   0x409a20
47f044:	6a 02                	push   $0x2
47f046:	58                   	pop    %eax
47f047:	6a 05                	push   $0x5
47f049:	6a 01                	push   $0x1
47f04b:	50                   	push   %eax
47f04c:	ff 74 24 1c          	push   0x1c(%esp)
47f050:	89 46 0c             	mov    %eax,0xc(%esi)
47f053:	89 3e                	mov    %edi,(%esi)
47f055:	89 5e 04             	mov    %ebx,0x4(%esi)
47f058:	8b 7c 24 50          	mov    0x50(%esp),%edi
47f05c:	8b 5c 24 54          	mov    0x54(%esp),%ebx
47f060:	e8 3b 9e f8 ff       	call   0x408ea0
47f065:	83 c4 10             	add    $0x10,%esp
47f068:	8b f0                	mov    %eax,%esi
47f06a:	8b ce                	mov    %esi,%ecx
47f06c:	e8 af a9 f8 ff       	call   0x409a20
47f071:	89 5e 04             	mov    %ebx,0x4(%esi)
47f074:	eb 7d                	jmp    0x47f0f3
47f076:	6a 28                	push   $0x28
47f078:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
47f07c:	51                   	push   %ecx
47f07d:	50                   	push   %eax
47f07e:	ff 15 84 f4 48 00    	call   *0x48f484
47f084:	85 c0                	test   %eax,%eax
47f086:	75 11                	jne    0x47f099
47f088:	8b 07                	mov    (%edi),%eax
47f08a:	56                   	push   %esi
47f08b:	6a 02                	push   $0x2
47f08d:	8b 48 04             	mov    0x4(%eax),%ecx
47f090:	03 cf                	add    %edi,%ecx
47f092:	e8 0c 7a fd ff       	call   0x456aa3
47f097:	eb 62                	jmp    0x47f0fb
47f099:	8b 4d 0c             	mov    0xc(%ebp),%ecx
47f09c:	e8 8d a3 f8 ff       	call   0x40942e
47f0a1:	6a 02                	push   $0x2
47f0a3:	8b d8                	mov    %eax,%ebx
47f0a5:	6a 01                	push   $0x1
47f0a7:	53                   	push   %ebx
47f0a8:	e8 03 a1 f8 ff       	call   0x4091b0
47f0ad:	8b 7c 24 30          	mov    0x30(%esp),%edi
47f0b1:	56                   	push   %esi
47f0b2:	6a 01                	push   $0x1
47f0b4:	6a 02                	push   $0x2
47f0b6:	53                   	push   %ebx
47f0b7:	e8 e4 9d f8 ff       	call   0x408ea0
47f0bc:	83 c4 1c             	add    $0x1c,%esp
47f0bf:	8b f0                	mov    %eax,%esi
47f0c1:	8b ce                	mov    %esi,%ecx
47f0c3:	e8 58 a9 f8 ff       	call   0x409a20
47f0c8:	83 66 04 00          	andl   $0x0,0x4(%esi)
47f0cc:	6a 02                	push   $0x2
47f0ce:	58                   	pop    %eax
47f0cf:	6a 01                	push   $0x1
47f0d1:	6a 01                	push   $0x1
47f0d3:	50                   	push   %eax
47f0d4:	89 46 0c             	mov    %eax,0xc(%esi)
47f0d7:	89 3e                	mov    %edi,(%esi)
47f0d9:	8b 7c 24 2c          	mov    0x2c(%esp),%edi
47f0dd:	53                   	push   %ebx
47f0de:	e8 bd 9d f8 ff       	call   0x408ea0
47f0e3:	83 c4 10             	add    $0x10,%esp
47f0e6:	8b f0                	mov    %eax,%esi
47f0e8:	8b ce                	mov    %esi,%ecx
47f0ea:	e8 31 a9 f8 ff       	call   0x409a20
47f0ef:	83 66 04 00          	andl   $0x0,0x4(%esi)
47f0f3:	6a 02                	push   $0x2
47f0f5:	58                   	pop    %eax
47f0f6:	89 3e                	mov    %edi,(%esi)
47f0f8:	89 46 0c             	mov    %eax,0xc(%esi)
47f0fb:	ff 74 24 14          	push   0x14(%esp)
47f0ff:	ff 15 5c f3 48 00    	call   *0x48f35c
47f105:	eb 0f                	jmp    0x47f116
47f107:	56                   	push   %esi
47f108:	8b 07                	mov    (%edi),%eax
47f10a:	6a 01                	push   $0x1
47f10c:	8b 48 04             	mov    0x4(%eax),%ecx
47f10f:	03 cf                	add    %edi,%ecx
47f111:	e8 8d 79 fd ff       	call   0x456aa3
47f116:	5f                   	pop    %edi
47f117:	5e                   	pop    %esi