56ece1:	0f 85 82 00 00 00    	jne    0x56ed69
56ece7:	8b 47 04             	mov    0x4(%edi),%eax
56ecea:	ff 30                	push   (%eax)
56ecec:	51                   	push   %ecx
56eced:	53                   	push   %ebx
56ecee:	56                   	push   %esi
56ecef:	e8 7c 1e 00 00       	call   0x570b70
56ecf4:	83 c4 10             	add    $0x10,%esp
56ecf7:	85 c0                	test   %eax,%eax
56ecf9:	0f 84 bb 00 00 00    	je     0x56edba
56ecff:	68 10 ae 62 00       	push   $0x62ae10
56ed04:	56                   	push   %esi
56ed05:	e8 c6 a5 f8 ff       	call   0x4f92d0
56ed0a:	8b 47 04             	mov    0x4(%edi),%eax
56ed0d:	ff 70 04             	push   0x4(%eax)
56ed10:	68 ff 00 00 00       	push   $0xff
56ed15:	53                   	push   %ebx
56ed16:	56                   	push   %esi
56ed17:	e8 54 1e 00 00       	call   0x570b70
56ed1c:	83 c4 18             	add    $0x18,%esp
56ed1f:	85 c0                	test   %eax,%eax
56ed21:	0f 84 93 00 00 00    	je     0x56edba
56ed27:	68 cc 26 60 00       	push   $0x6026cc
56ed2c:	56                   	push   %esi
56ed2d:	e8 9e a5 f8 ff       	call   0x4f92d0
56ed32:	83 c4 08             	add    $0x8,%esp
56ed35:	eb 32                	jmp    0x56ed69
56ed37:	ff 77 04             	push   0x4(%edi)
56ed3a:	6a 00                	push   $0x0
56ed3c:	53                   	push   %ebx
56ed3d:	56                   	push   %esi
56ed3e:	e8 2d 1e 00 00       	call   0x570b70
56ed43:	83 c4 10             	add    $0x10,%esp
56ed46:	85 c0                	test   %eax,%eax
56ed48:	74 70                	je     0x56edba
56ed4a:	8b 47 04             	mov    0x4(%edi),%eax
56ed4d:	8b 48 0c             	mov    0xc(%eax),%ecx
56ed50:	8b 00                	mov    (%eax),%eax
56ed52:	83 e1 07             	and    $0x7,%ecx
56ed55:	c1 e0 03             	shl    $0x3,%eax
56ed58:	2b c1                	sub    %ecx,%eax
56ed5a:	50                   	push   %eax
56ed5b:	68 d0 99 65 00       	push   $0x6599d0
56ed60:	56                   	push   %esi
56ed61:	e8 da 37 f7 ff       	call   0x4e2540
56ed66:	83 c4 0c             	add    $0xc,%esp
56ed69:	8b 7c 24 14          	mov    0x14(%esp),%edi
56ed6d:	45                   	inc    %ebp
56ed6e:	57                   	push   %edi
56ed6f:	e8 4c 63 f7 ff       	call   0x4e50c0
56ed74:	83 c4 04             	add    $0x4,%esp
56ed77:	3b e8                	cmp    %eax,%ebp
56ed79:	0f 8c 34 ff ff ff    	jl     0x56ecb3
56ed7f:	eb 0e                	jmp    0x56ed8f
56ed81:	68 80 9a 65 00       	push   $0x659a80
56ed86:	56                   	push   %esi
56ed87:	e8 44 a5 f8 ff       	call   0x4f92d0
56ed8c:	83 c4 08             	add    $0x8,%esp
56ed8f:	8b 5c 24 10          	mov    0x10(%esp),%ebx
56ed93:	8b 7c 24 20          	mov    0x20(%esp),%edi
56ed97:	43                   	inc    %ebx
56ed98:	57                   	push   %edi
56ed99:	89 5c 24 14          	mov    %ebx,0x14(%esp)
56ed9d:	e8 1e 63 f7 ff       	call   0x4e50c0
56eda2:	83 c4 04             	add    $0x4,%esp
56eda5:	3b d8                	cmp    %eax,%ebx
56eda7:	0f 8c 83 fd ff ff    	jl     0x56eb30
56edad:	5f                   	pop    %edi
56edae:	5e                   	pop    %esi
56edaf:	5d                   	pop    %ebp
56edb0:	b8 01 00 00 00       	mov    $0x1,%eax
56edb5:	5b                   	pop    %ebx
56edb6:	83 c4 08             	add    $0x8,%esp
56edb9:	c3                   	ret
56edba:	5f                   	pop    %edi
56edbb:	5e                   	pop    %esi
56edbc:	5d                   	pop    %ebp
56edbd:	33 c0                	xor    %eax,%eax
56edbf:	5b                   	pop    %ebx
56edc0:	83 c4 08             	add    $0x8,%esp
56edc3:	c3                   	ret
56edc4:	e2 eb                	loop   0x56edb1
56edc6:	56                   	push   %esi
56edc7:	00 f5                	add    %dh,%ch
56edc9:	eb 56                	jmp    0x56ee21
56edcb:	00 05 ec 56 00 15    	add    %al,0x150056ec
56edd1:	ec                   	in     (%dx),%al
56edd2:	56                   	push   %esi
56edd3:	00 25 ec 56 00 35    	add    %ah,0x350056ec
56edd9:	ec                   	in     (%dx),%al
56edda:	56                   	push   %esi
56eddb:	00 45 ec             	add    %al,-0x14(%ebp)
56edde:	56                   	push   %esi
56eddf:	00 55 ec             	add    %dl,-0x14(%ebp)
56ede2:	56                   	push   %esi
56ede3:	00 65 ec             	add    %ah,-0x14(%ebp)
56ede6:	56                   	push   %esi
56ede7:	00 00                	add    %al,(%eax)
56ede9:	01 02                	add    %eax,(%edx)
56edeb:	03 08                	add    (%eax),%ecx
56eded:	08 08                	or     %cl,(%eax)
56edef:	08 08                	or     %cl,(%eax)
56edf1:	08 08                	or     %cl,(%eax)
56edf3:	08 08                	or     %cl,(%eax)
56edf5:	08 08                	or     %cl,(%eax)
56edf7:	08 08                	or     %cl,(%eax)
56edf9:	08 08                	or     %cl,(%eax)
56edfb:	08 08                	or     %cl,(%eax)
56edfd:	08 08                	or     %cl,(%eax)
56edff:	08 08                	or     %cl,(%eax)
56ee01:	08 08                	or     %cl,(%eax)
56ee03:	08 08                	or     %cl,(%eax)
56ee05:	08 08                	or     %cl,(%eax)
56ee07:	08 08                	or     %cl,(%eax)
56ee09:	08 08                	or     %cl,(%eax)
56ee0b:	08 08                	or     %cl,(%eax)
56ee0d:	08 08                	or     %cl,(%eax)
56ee0f:	08 08                	or     %cl,(%eax)
56ee11:	08 08                	or     %cl,(%eax)
56ee13:	08 08                	or     %cl,(%eax)
56ee15:	08 08                	or     %cl,(%eax)
56ee17:	08 08                	or     %cl,(%eax)
56ee19:	08 08                	or     %cl,(%eax)
56ee1b:	08 08                	or     %cl,(%eax)
56ee1d:	08 08                	or     %cl,(%eax)
56ee1f:	08 08                	or     %cl,(%eax)
56ee21:	08 08                	or     %cl,(%eax)
56ee23:	08 08                	or     %cl,(%eax)
56ee25:	08 08                	or     %cl,(%eax)
56ee27:	04 05                	add    $0x5,%al
56ee29:	06                   	push   %es
56ee2a:	08 08                	or     %cl,(%eax)
56ee2c:	08 08                	or     %cl,(%eax)
56ee2e:	08 08                	or     %cl,(%eax)
56ee30:	08 08                	or     %cl,(%eax)
56ee32:	08 08                	or     %cl,(%eax)
56ee34:	08 08                	or     %cl,(%eax)
56ee36:	08 08                	or     %cl,(%eax)
56ee38:	08 08                	or     %cl,(%eax)
56ee3a:	08 08                	or     %cl,(%eax)
56ee3c:	08 08                	or     %cl,(%eax)
56ee3e:	08 08                	or     %cl,(%eax)
56ee40:	08 08                	or     %cl,(%eax)
56ee42:	08 08                	or     %cl,(%eax)
56ee44:	08 08                	or     %cl,(%eax)
56ee46:	08 08                	or     %cl,(%eax)
56ee48:	08 08                	or     %cl,(%eax)
56ee4a:	08 08                	or     %cl,(%eax)
56ee4c:	08 08                	or     %cl,(%eax)
56ee4e:	08 08                	or     %cl,(%eax)
56ee50:	08 08                	or     %cl,(%eax)
56ee52:	08 08                	or     %cl,(%eax)
56ee54:	08 08                	or     %cl,(%eax)
56ee56:	08 08                	or     %cl,(%eax)
56ee58:	08 08                	or     %cl,(%eax)
56ee5a:	08 08                	or     %cl,(%eax)
56ee5c:	08 08                	or     %cl,(%eax)
56ee5e:	08 08                	or     %cl,(%eax)
56ee60:	08 08                	or     %cl,(%eax)
56ee62:	08 08                	or     %cl,(%eax)
56ee64:	08 08                	or     %cl,(%eax)
56ee66:	08 07                	or     %al,(%edi)
56ee68:	cc                   	int3
56ee69:	cc                   	int3
56ee6a:	cc                   	int3
56ee6b:	cc                   	int3
56ee6c:	cc                   	int3
56ee6d:	cc                   	int3
56ee6e:	cc                   	int3
56ee6f:	cc                   	int3
56ee70:	b8 50 00 00 00       	mov    $0x50,%eax
56ee75:	e8 36 29 06 00       	call   0x5d17b0
56ee7a:	a1 c0 14 69 00       	mov    0x6914c0,%eax
56ee7f:	33 c4                	xor    %esp,%eax
56ee81:	89 44 24 4c          	mov    %eax,0x4c(%esp)
56ee85:	55                   	push   %ebp
56ee86:	8b 6c 24 60          	mov    0x60(%esp),%ebp
56ee8a:	57                   	push   %edi
56ee8b:	68 40 f6 56 00       	push   $0x56f640
56ee90:	89 6c 24 34          	mov    %ebp,0x34(%esp)
56ee94:	e8 57 61 f7 ff       	call   0x4e4ff0
56ee99:	8b f8                	mov    %eax,%edi
56ee9b:	83 c4 04             	add    $0x4,%esp
56ee9e:	89 7c 24 14          	mov    %edi,0x14(%esp)
56eea2:	85 ff                	test   %edi,%edi
56eea4:	75 2e                	jne    0x56eed4
56eea6:	68 82 03 00 00       	push   $0x382
56eeab:	68 90 9a 65 00       	push   $0x659a90
56eeb0:	6a 41                	push   $0x41
56eeb2:	68 9f 00 00 00       	push   $0x9f
56eeb7:	6a 22                	push   $0x22
56eeb9:	e8 c2 a0 f6 ff       	call   0x4d8f80
56eebe:	83 c4 14             	add    $0x14,%esp
56eec1:	33 c0                	xor    %eax,%eax
56eec3:	5f                   	pop    %edi
56eec4:	5d                   	pop    %ebp
56eec5:	8b 4c 24 4c          	mov    0x4c(%esp),%ecx
56eec9:	33 cc                	xor    %esp,%ecx
56eecb:	e8 56 2b 06 00       	call   0x5d1a26
56eed0:	83 c4 50             	add    $0x50,%esp
56eed3:	c3                   	ret
56eed4:	53                   	push   %ebx
56eed5:	56                   	push   %esi
56eed6:	33 db                	xor    %ebx,%ebx
56eed8:	55                   	push   %ebp
56eed9:	89 5c 24 30          	mov    %ebx,0x30(%esp)
56eedd:	e8 de 61 f7 ff       	call   0x4e50c0
56eee2:	83 c4 04             	add    $0x4,%esp
56eee5:	85 c0                	test   %eax,%eax
56eee7:	0f 8e 7a 04 00 00    	jle    0x56f367
56eeed:	0f 1f 00             	nopl   (%eax)
56eef0:	53                   	push   %ebx
56eef1:	55                   	push   %ebp
56eef2:	e8 89 63 f7 ff       	call   0x4e5280
56eef7:	8b e8                	mov    %eax,%ebp
56eef9:	33 f6                	xor    %esi,%esi
56eefb:	68 a8 9a 65 00       	push   $0x659aa8
56ef00:	89 74 24 24          	mov    %esi,0x24(%esp)
56ef04:	ff 75 04             	push   0x4(%ebp)
56ef07:	e8 04 b5 ff ff       	call   0x56a410
56ef0c:	83 c4 10             	add    $0x10,%esp
56ef0f:	85 c0                	test   %eax,%eax
56ef11:	74 30                	je     0x56ef43
56ef13:	68 b0 9a 65 00       	push   $0x659ab0
56ef18:	ff 75 04             	push   0x4(%ebp)
56ef1b:	e8 f0 b4 ff ff       	call   0x56a410
56ef20:	83 c4 08             	add    $0x8,%esp
56ef23:	85 c0                	test   %eax,%eax
56ef25:	74 53                	je     0x56ef7a
56ef27:	68 b8 9a 65 00       	push   $0x659ab8
56ef2c:	ff 75 04             	push   0x4(%ebp)
56ef2f:	e8 dc b4 ff ff       	call   0x56a410
56ef34:	83 c4 08             	add    $0x8,%esp
56ef37:	85 c0                	test   %eax,%eax
56ef39:	75 1f                	jne    0x56ef5a
56ef3b:	8d 74 24 30          	lea    0x30(%esp),%esi
56ef3f:	89 74 24 18          	mov    %esi,0x18(%esp)
56ef43:	bb 01 00 00 00       	mov    $0x1,%ebx
56ef48:	c7 44 24 24 04 00 00 	movl   $0x4,0x24(%esp)
56ef4f:	00
56ef50:	c7 44 24 20 e8 98 65 	movl   $0x6598e8,0x20(%esp)
56ef57:	00
56ef58:	eb 35                	jmp    0x56ef8f
56ef5a:	68 c4 9a 65 00       	push   $0x659ac4
56ef5f:	ff 75 04             	push   0x4(%ebp)
56ef62:	e8 a9 b4 ff ff       	call   0x56a410
56ef67:	83 c4 08             	add    $0x8,%esp
56ef6a:	85 c0                	test   %eax,%eax
56ef6c:	0f 85 f8 05 00 00    	jne    0x56f56a
56ef72:	8d 74 24 30          	lea    0x30(%esp),%esi
56ef76:	89 74 24 18          	mov    %esi,0x18(%esp)
56ef7a:	bb 02 00 00 00       	mov    $0x2,%ebx
56ef7f:	c7 44 24 24 10 00 00 	movl   $0x10,0x24(%esp)
56ef86:	00
56ef87:	c7 44 24 20 f4 98 65 	movl   $0x6598f4,0x20(%esp)
56ef8e:	00
56ef8f:	8b 45 08             	mov    0x8(%ebp),%eax
56ef92:	85 f6                	test   %esi,%esi
56ef94:	74 7f                	je     0x56f015
56ef96:	6a 00                	push   $0x0
56ef98:	8d 4c 24 18          	lea    0x18(%esp),%ecx
56ef9c:	51                   	push   %ecx
56ef9d:	50                   	push   %eax
56ef9e:	e8 03 20 07 00       	call   0x5e0fa6
56efa3:	8b f0                	mov    %eax,%esi
56efa5:	8b 44 24 24          	mov    0x24(%esp),%eax
56efa9:	68 24 ec 64 00       	push   $0x64ec24
56efae:	ff 74 24 24          	push   0x24(%esp)
56efb2:	89 30                	mov    %esi,(%eax)
56efb4:	e8 97 7c 07 00       	call   0x5e6c50
56efb9:	8b 4c 24 28          	mov    0x28(%esp),%ecx
56efbd:	83 c4 14             	add    $0x14,%esp
56efc0:	03 c8                	add    %eax,%ecx
56efc2:	89 4c 24 14          	mov    %ecx,0x14(%esp)
56efc6:	81 fe ff 00 00 00    	cmp    $0xff,%esi
56efcc:	0f 87 f3 03 00 00    	ja     0x56f3c5
56efd2:	8a 01                	mov    (%ecx),%al
56efd4:	41                   	inc    %ecx
56efd5:	89 4c 24 14          	mov    %ecx,0x14(%esp)
56efd9:	3c 3a                	cmp    $0x3a,%al
56efdb:	0f 85 e4 03 00 00    	jne    0x56f3c5
56efe1:	68 24 ec 64 00       	push   $0x64ec24
56efe6:	51                   	push   %ecx
56efe7:	e8 64 7c 07 00       	call   0x5e6c50
56efec:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
56eff0:	68 b6 03 00 00       	push   $0x3b6
56eff5:	03 c8                	add    %eax,%ecx
56eff7:	68 90 9a 65 00       	push   $0x659a90
56effc:	51                   	push   %ecx
56effd:	89 4c 24 28          	mov    %ecx,0x28(%esp)
56f001:	e8 ca 30 f7 ff       	call   0x4e20d0
56f006:	8b 74 24 2c          	mov    0x2c(%esp),%esi
56f00a:	8b f8                	mov    %eax,%edi
56f00c:	83 c4 14             	add    $0x14,%esp
56f00f:	89 7c 24 10          	mov    %edi,0x10(%esp)
56f013:	eb 19                	jmp    0x56f02e
56f015:	68 b8 03 00 00       	push   $0x3b8
56f01a:	68 90 9a 65 00       	push   $0x659a90
56f01f:	50                   	push   %eax
56f020:	e8 ab 30 f7 ff       	call   0x4e20d0
56f025:	83 c4 0c             	add    $0xc,%esp
56f028:	89 44 24 10          	mov    %eax,0x10(%esp)
56f02c:	8b f8                	mov    %eax,%edi
56f02e:	85 ff                	test   %edi,%edi
56f030:	0f 84 14 05 00 00    	je     0x56f54a
56f036:	b9 68 97 65 00       	mov    $0x659768,%ecx
56f03b:	8b c7                	mov    %edi,%eax
56f03d:	0f 1f 00             	nopl   (%eax)
56f040:	8a 10                	mov    (%eax),%dl
56f042:	3a 11                	cmp    (%ecx),%dl
56f044:	75 1a                	jne    0x56f060
56f046:	84 d2                	test   %dl,%dl
56f048:	74 12                	je     0x56f05c
56f04a:	8a 50 01             	mov    0x1(%eax),%dl
56f04d:	3a 51 01             	cmp    0x1(%ecx),%dl
56f050:	75 0e                	jne    0x56f060
56f052:	83 c0 02             	add    $0x2,%eax
56f055:	83 c1 02             	add    $0x2,%ecx
56f058:	84 d2                	test   %dl,%dl
56f05a:	75 e4                	jne    0x56f040
56f05c:	33 c0                	xor    %eax,%eax
56f05e:	eb 05                	jmp    0x56f065
56f060:	1b c0                	sbb    %eax,%eax
56f062:	83 c8 01             	or     $0x1,%eax
56f065:	85 c0                	test   %eax,%eax
56f067:	0f 85 9b 00 00 00    	jne    0x56f108
56f06d:	56                   	push   %esi
56f06e:	53                   	push   %ebx
56f06f:	ff 74 24 24          	push   0x24(%esp)
56f073:	e8 c8 1c 00 00       	call   0x570d40
56f078:	8b f0                	mov    %eax,%esi
56f07a:	83 c4 0c             	add    $0xc,%esp
56f07d:	85 f6                	test   %esi,%esi
56f07f:	74 14                	je     0x56f095
56f081:	8b 4e 04             	mov    0x4(%esi),%ecx
56f084:	85 c9                	test   %ecx,%ecx
56f086:	74 0d                	je     0x56f095
56f088:	8b 01                	mov    (%ecx),%eax
56f08a:	83 f8 01             	cmp    $0x1,%eax
56f08d:	75 48                	jne    0x56f0d7
56f08f:	83 79 04 00          	cmpl   $0x0,0x4(%ecx)
56f093:	74 4b                	je     0x56f0e0
56f095:	68 c6 03 00 00       	push   $0x3c6
56f09a:	68 90 9a 65 00       	push   $0x659a90
56f09f:	68 a5 00 00 00       	push   $0xa5
56f0a4:	68 9f 00 00 00       	push   $0x9f
56f0a9:	6a 22                	push   $0x22
56f0ab:	e8 d0 9e f6 ff       	call   0x4d8f80
56f0b0:	ff 75 08             	push   0x8(%ebp)
56f0b3:	68 bc 85 65 00       	push   $0x6585bc