558c59:	8d 40 00             	lea    0x0(%eax),%eax
558c5c:	55                   	push   %ebp
558c5d:	8b ec                	mov    %esp,%ebp
558c5f:	83 c4 f8             	add    $0xfffffff8,%esp
558c62:	53                   	push   %ebx
558c63:	56                   	push   %esi
558c64:	57                   	push   %edi
558c65:	8b 45 08             	mov    0x8(%ebp),%eax
558c68:	8b 40 e0             	mov    -0x20(%eax),%eax
558c6b:	48                   	dec    %eax
558c6c:	85 c0                	test   %eax,%eax
558c6e:	7c 50                	jl     0x558cc0
558c70:	40                   	inc    %eax
558c71:	89 45 fc             	mov    %eax,-0x4(%ebp)
558c74:	33 ff                	xor    %edi,%edi
558c76:	8b 45 08             	mov    0x8(%ebp),%eax
558c79:	8b 58 d4             	mov    -0x2c(%eax),%ebx
558c7c:	8b 83 08 24 00 00    	mov    0x2408(%ebx),%eax
558c82:	0f b6 04 38          	movzbl (%eax,%edi,1),%eax
558c86:	8d 04 40             	lea    (%eax,%eax,2),%eax
558c89:	8d b4 03 00 20 00 00 	lea    0x2000(%ebx,%eax,1),%esi
558c90:	8d 45 f8             	lea    -0x8(%ebp),%eax
558c93:	50                   	push   %eax
558c94:	8a 0e                	mov    (%esi),%cl
558c96:	8a 56 01             	mov    0x1(%esi),%dl
558c99:	8a 46 02             	mov    0x2(%esi),%al
558c9c:	e8 6f 06 05 00       	call   0x5a9310
558ca1:	8a 45 fa             	mov    -0x6(%ebp),%al
558ca4:	c1 e0 10             	shl    $0x10,%eax
558ca7:	66 8b 45 f8          	mov    -0x8(%ebp),%ax
558cab:	50                   	push   %eax
558cac:	e8 73 06 05 00       	call   0x5a9324
558cb1:	8b 93 08 24 00 00    	mov    0x2408(%ebx),%edx
558cb7:	88 04 3a             	mov    %al,(%edx,%edi,1)
558cba:	47                   	inc    %edi
558cbb:	ff 4d fc             	decl   -0x4(%ebp)
558cbe:	75 b6                	jne    0x558c76
558cc0:	5f                   	pop    %edi
558cc1:	5e                   	pop    %esi
558cc2:	5b                   	pop    %ebx
558cc3:	59                   	pop    %ecx
558cc4:	59                   	pop    %ecx
558cc5:	5d                   	pop    %ebp
558cc6:	c3                   	ret
558cc7:	90                   	nop
558cc8:	55                   	push   %ebp
558cc9:	8b ec                	mov    %esp,%ebp
558ccb:	83 c4 f4             	add    $0xfffffff4,%esp
558cce:	53                   	push   %ebx
558ccf:	56                   	push   %esi
558cd0:	57                   	push   %edi
558cd1:	8b 45 08             	mov    0x8(%ebp),%eax
558cd4:	8b 78 d4             	mov    -0x2c(%eax),%edi
558cd7:	8b 87 10 24 00 00    	mov    0x2410(%edi),%eax
558cdd:	89 45 f4             	mov    %eax,-0xc(%ebp)
558ce0:	33 f6                	xor    %esi,%esi
558ce2:	8b 45 08             	mov    0x8(%ebp),%eax
558ce5:	8b 40 e4             	mov    -0x1c(%eax),%eax
558ce8:	83 e8 08             	sub    $0x8,%eax
558ceb:	74 0e                	je     0x558cfb
558ced:	83 e8 10             	sub    $0x10,%eax
558cf0:	0f 84 be 00 00 00    	je     0x558db4
558cf6:	e9 d7 01 00 00       	jmp    0x558ed2
558cfb:	8b 45 08             	mov    0x8(%ebp),%eax
558cfe:	8b 40 e0             	mov    -0x20(%eax),%eax
558d01:	89 45 fc             	mov    %eax,-0x4(%ebp)
558d04:	8b 87 08 24 00 00    	mov    0x2408(%edi),%eax
558d0a:	8a 04 30             	mov    (%eax,%esi,1),%al
558d0d:	46                   	inc    %esi
558d0e:	b3 01                	mov    $0x1,%bl
558d10:	eb 02                	jmp    0x558d14
558d12:	46                   	inc    %esi
558d13:	43                   	inc    %ebx
558d14:	3b 75 fc             	cmp    -0x4(%ebp),%esi
558d17:	7d 10                	jge    0x558d29
558d19:	8b 97 08 24 00 00    	mov    0x2408(%edi),%edx
558d1f:	3a 04 32             	cmp    (%edx,%esi,1),%al
558d22:	75 05                	jne    0x558d29
558d24:	80 fb 80             	cmp    $0x80,%bl
558d27:	72 e9                	jb     0x558d12
558d29:	80 fb 01             	cmp    $0x1,%bl
558d2c:	76 16                	jbe    0x558d44
558d2e:	4b                   	dec    %ebx
558d2f:	80 cb 80             	or     $0x80,%bl
558d32:	8b 55 f4             	mov    -0xc(%ebp),%edx
558d35:	88 1a                	mov    %bl,(%edx)
558d37:	ff 45 f4             	incl   -0xc(%ebp)
558d3a:	8b 55 f4             	mov    -0xc(%ebp),%edx
558d3d:	88 02                	mov    %al,(%edx)
558d3f:	ff 45 f4             	incl   -0xc(%ebp)
558d42:	eb 62                	jmp    0x558da6
558d44:	4e                   	dec    %esi
558d45:	33 db                	xor    %ebx,%ebx
558d47:	eb 02                	jmp    0x558d4b
558d49:	46                   	inc    %esi
558d4a:	43                   	inc    %ebx
558d4b:	8b 45 fc             	mov    -0x4(%ebp),%eax
558d4e:	48                   	dec    %eax
558d4f:	3b f0                	cmp    %eax,%esi
558d51:	7d 1a                	jge    0x558d6d
558d53:	8b 87 08 24 00 00    	mov    0x2408(%edi),%eax
558d59:	8a 04 30             	mov    (%eax,%esi,1),%al
558d5c:	8b 97 08 24 00 00    	mov    0x2408(%edi),%edx
558d62:	3a 44 32 01          	cmp    0x1(%edx,%esi,1),%al
558d66:	74 05                	je     0x558d6d
558d68:	80 fb 7f             	cmp    $0x7f,%bl
558d6b:	72 dc                	jb     0x558d49
558d6d:	8b 45 fc             	mov    -0x4(%ebp),%eax
558d70:	48                   	dec    %eax
558d71:	3b f0                	cmp    %eax,%esi
558d73:	75 02                	jne    0x558d77
558d75:	46                   	inc    %esi
558d76:	43                   	inc    %ebx
558d77:	8b c3                	mov    %ebx,%eax
558d79:	48                   	dec    %eax
558d7a:	8b 55 f4             	mov    -0xc(%ebp),%edx
558d7d:	88 02                	mov    %al,(%edx)
558d7f:	ff 45 f4             	incl   -0xc(%ebp)
558d82:	33 c0                	xor    %eax,%eax
558d84:	8a c3                	mov    %bl,%al
558d86:	8b d6                	mov    %esi,%edx
558d88:	2b d0                	sub    %eax,%edx
558d8a:	8b 87 08 24 00 00    	mov    0x2408(%edi),%eax
558d90:	8d 14 10             	lea    (%eax,%edx,1),%edx
558d93:	33 c9                	xor    %ecx,%ecx
558d95:	8a cb                	mov    %bl,%cl
558d97:	8b 45 f4             	mov    -0xc(%ebp),%eax
558d9a:	e8 21 f1 ea ff       	call   0x407ec0
558d9f:	33 c0                	xor    %eax,%eax
558da1:	8a c3                	mov    %bl,%al
558da3:	01 45 f4             	add    %eax,-0xc(%ebp)
558da6:	3b 75 fc             	cmp    -0x4(%ebp),%esi
558da9:	0f 8c 55 ff ff ff    	jl     0x558d04
558daf:	e9 1e 01 00 00       	jmp    0x558ed2
558db4:	8b 45 08             	mov    0x8(%ebp),%eax
558db7:	8b 40 e0             	mov    -0x20(%eax),%eax
558dba:	8d 04 40             	lea    (%eax,%eax,2),%eax
558dbd:	89 45 fc             	mov    %eax,-0x4(%ebp)
558dc0:	8b 87 08 24 00 00    	mov    0x2408(%edi),%eax
558dc6:	03 c6                	add    %esi,%eax
558dc8:	66 8b 10             	mov    (%eax),%dx
558dcb:	66 89 55 f9          	mov    %dx,-0x7(%ebp)
558dcf:	8a 50 02             	mov    0x2(%eax),%dl
558dd2:	88 55 fb             	mov    %dl,-0x5(%ebp)
558dd5:	83 c6 03             	add    $0x3,%esi
558dd8:	b3 01                	mov    $0x1,%bl
558dda:	eb 04                	jmp    0x558de0
558ddc:	83 c6 03             	add    $0x3,%esi
558ddf:	43                   	inc    %ebx
558de0:	3b 75 fc             	cmp    -0x4(%ebp),%esi
558de3:	7d 2b                	jge    0x558e10
558de5:	8a 45 fb             	mov    -0x5(%ebp),%al
558de8:	c1 e0 10             	shl    $0x10,%eax
558deb:	66 8b 45 f9          	mov    -0x7(%ebp),%ax
558def:	50                   	push   %eax
558df0:	8b 87 08 24 00 00    	mov    0x2408(%edi),%eax
558df6:	03 c6                	add    %esi,%eax
558df8:	8a 50 02             	mov    0x2(%eax),%dl
558dfb:	c1 e2 10             	shl    $0x10,%edx
558dfe:	66 8b 10             	mov    (%eax),%dx
558e01:	52                   	push   %edx
558e02:	e8 4d 06 05 00       	call   0x5a9454
558e07:	84 c0                	test   %al,%al
558e09:	74 05                	je     0x558e10
558e0b:	80 fb 80             	cmp    $0x80,%bl
558e0e:	72 cc                	jb     0x558ddc
558e10:	80 fb 01             	cmp    $0x1,%bl
558e13:	76 25                	jbe    0x558e3a
558e15:	4b                   	dec    %ebx
558e16:	80 cb 80             	or     $0x80,%bl
558e19:	8b 45 f4             	mov    -0xc(%ebp),%eax
558e1c:	88 18                	mov    %bl,(%eax)
558e1e:	ff 45 f4             	incl   -0xc(%ebp)
558e21:	8b 45 f4             	mov    -0xc(%ebp),%eax
558e24:	66 8b 55 f9          	mov    -0x7(%ebp),%dx
558e28:	66 89 10             	mov    %dx,(%eax)
558e2b:	8a 55 fb             	mov    -0x5(%ebp),%dl
558e2e:	88 50 02             	mov    %dl,0x2(%eax)
558e31:	83 45 f4 03          	addl   $0x3,-0xc(%ebp)
558e35:	e9 8f 00 00 00       	jmp    0x558ec9
558e3a:	83 ee 03             	sub    $0x3,%esi
558e3d:	33 db                	xor    %ebx,%ebx
558e3f:	eb 04                	jmp    0x558e45
558e41:	83 c6 03             	add    $0x3,%esi
558e44:	43                   	inc    %ebx
558e45:	8b 45 fc             	mov    -0x4(%ebp),%eax
558e48:	83 e8 03             	sub    $0x3,%eax
558e4b:	3b f0                	cmp    %eax,%esi
558e4d:	7d 34                	jge    0x558e83
558e4f:	8b 87 08 24 00 00    	mov    0x2408(%edi),%eax
558e55:	03 c6                	add    %esi,%eax
558e57:	8a 50 02             	mov    0x2(%eax),%dl
558e5a:	c1 e2 10             	shl    $0x10,%edx
558e5d:	66 8b 10             	mov    (%eax),%dx
558e60:	52                   	push   %edx
558e61:	8b 87 08 24 00 00    	mov    0x2408(%edi),%eax
558e67:	8d 44 30 03          	lea    0x3(%eax,%esi,1),%eax
558e6b:	8a 50 02             	mov    0x2(%eax),%dl
558e6e:	c1 e2 10             	shl    $0x10,%edx
558e71:	66 8b 10             	mov    (%eax),%dx
558e74:	52                   	push   %edx
558e75:	e8 da 05 05 00       	call   0x5a9454
558e7a:	84 c0                	test   %al,%al
558e7c:	75 05                	jne    0x558e83
558e7e:	80 fb 7f             	cmp    $0x7f,%bl
558e81:	72 be                	jb     0x558e41
558e83:	8b 45 fc             	mov    -0x4(%ebp),%eax
558e86:	83 e8 03             	sub    $0x3,%eax
558e89:	3b f0                	cmp    %eax,%esi
558e8b:	75 04                	jne    0x558e91
558e8d:	83 c6 03             	add    $0x3,%esi
558e90:	43                   	inc    %ebx
558e91:	8b c3                	mov    %ebx,%eax
558e93:	48                   	dec    %eax
558e94:	8b 55 f4             	mov    -0xc(%ebp),%edx
558e97:	88 02                	mov    %al,(%edx)
558e99:	ff 45 f4             	incl   -0xc(%ebp)
558e9c:	33 c0                	xor    %eax,%eax
558e9e:	8a c3                	mov    %bl,%al
558ea0:	8d 04 40             	lea    (%eax,%eax,2),%eax
558ea3:	8b d6                	mov    %esi,%edx
558ea5:	2b d0                	sub    %eax,%edx
558ea7:	8b 87 08 24 00 00    	mov    0x2408(%edi),%eax
558ead:	8d 14 10             	lea    (%eax,%edx,1),%edx
558eb0:	33 c0                	xor    %eax,%eax
558eb2:	8a c3                	mov    %bl,%al
558eb4:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
558eb7:	8b 45 f4             	mov    -0xc(%ebp),%eax
558eba:	e8 01 f0 ea ff       	call   0x407ec0
558ebf:	33 c0                	xor    %eax,%eax
558ec1:	8a c3                	mov    %bl,%al
558ec3:	8d 04 40             	lea    (%eax,%eax,2),%eax
558ec6:	01 45 f4             	add    %eax,-0xc(%ebp)
558ec9:	3b 75 fc             	cmp    -0x4(%ebp),%esi
558ecc:	0f 8c ee fe ff ff    	jl     0x558dc0
558ed2:	8b 87 10 24 00 00    	mov    0x2410(%edi),%eax
558ed8:	8b 55 f4             	mov    -0xc(%ebp),%edx
558edb:	2b d0                	sub    %eax,%edx
558edd:	52                   	push   %edx
558ede:	8b c8                	mov    %eax,%ecx
558ee0:	8b 45 08             	mov    0x8(%ebp),%eax
558ee3:	8b 50 0c             	mov    0xc(%eax),%edx
558ee6:	8b 52 28             	mov    0x28(%edx),%edx
558ee9:	8b 45 08             	mov    0x8(%ebp),%eax
558eec:	8b 40 d8             	mov    -0x28(%eax),%eax
558eef:	e8 08 d0 09 00       	call   0x5f5efc
558ef4:	5f                   	pop    %edi
558ef5:	5e                   	pop    %esi
558ef6:	5b                   	pop    %ebx
558ef7:	8b e5                	mov    %ebp,%esp
558ef9:	5d                   	pop    %ebp
558efa:	c3                   	ret
558efb:	90                   	nop
558efc:	55                   	push   %ebp
558efd:	8b ec                	mov    %esp,%ebp
558eff:	83 c4 f4             	add    $0xfffffff4,%esp
558f02:	53                   	push   %ebx
558f03:	56                   	push   %esi
558f04:	57                   	push   %edi
558f05:	8b 45 08             	mov    0x8(%ebp),%eax
558f08:	8b 40 d4             	mov    -0x2c(%eax),%eax
558f0b:	89 45 f4             	mov    %eax,-0xc(%ebp)
558f0e:	33 c0                	xor    %eax,%eax
558f10:	89 45 fc             	mov    %eax,-0x4(%ebp)
558f13:	8b 45 08             	mov    0x8(%ebp),%eax
558f16:	db 40 dc             	fildl  -0x24(%eax)
558f19:	d8 3d 3c 91 55 00    	fdivrs 0x55913c
558f1f:	8b 45 08             	mov    0x8(%ebp),%eax
558f22:	8b 40 0c             	mov    0xc(%eax),%eax
558f25:	dd 58 18             	fstpl  0x18(%eax)
558f28:	9b                   	fwait
558f29:	8b 45 08             	mov    0x8(%ebp),%eax
558f2c:	8b 40 0c             	mov    0xc(%eax),%eax
558f2f:	33 d2                	xor    %edx,%edx
558f31:	89 50 0c             	mov    %edx,0xc(%eax)
558f34:	8b 45 08             	mov    0x8(%ebp),%eax
558f37:	83 78 e4 20          	cmpl   $0x20,-0x1c(%eax)
558f3b:	75 18                	jne    0x558f55
558f3d:	8b 45 08             	mov    0x8(%ebp),%eax
558f40:	8b 40 d0             	mov    -0x30(%eax),%eax
558f43:	8b 10                	mov    (%eax),%edx
558f45:	ff 52 0c             	call   *0xc(%edx)
558f48:	c1 e0 02             	shl    $0x2,%eax
558f4b:	e8 5c 98 ea ff       	call   0x4027ac
558f50:	89 45 f8             	mov    %eax,-0x8(%ebp)
558f53:	eb 05                	jmp    0x558f5a
558f55:	33 c0                	xor    %eax,%eax
558f57:	89 45 f8             	mov    %eax,-0x8(%ebp)
558f5a:	8b 45 08             	mov    0x8(%ebp),%eax
558f5d:	8b 40 d0             	mov    -0x30(%eax),%eax
558f60:	8b 55 fc             	mov    -0x4(%ebp),%edx
558f63:	8b 08                	mov    (%eax),%ecx
558f65:	ff 11                	call   *(%ecx)
558f67:	8b d8                	mov    %eax,%ebx
558f69:	8b 45 f4             	mov    -0xc(%ebp),%eax
558f6c:	89 98 04 24 00 00    	mov    %ebx,0x2404(%eax)
558f72:	8b 45 08             	mov    0x8(%ebp),%eax
558f75:	83 78 e4 20          	cmpl   $0x20,-0x1c(%eax)
558f79:	75 3a                	jne    0x558fb5
558f7b:	6a 18                	push   $0x18
558f7d:	8b 45 08             	mov    0x8(%ebp),%eax
558f80:	66 8b 40 e0          	mov    -0x20(%eax),%ax
558f84:	50                   	push   %eax
558f85:	8b 45 f4             	mov    -0xc(%ebp),%eax
558f88:	05 00 20 00 00       	add    $0x2000,%eax
558f8d:	50                   	push   %eax
558f8e:	68 ff 00 00 00       	push   $0xff
558f93:	8b 45 08             	mov    0x8(%ebp),%eax
558f96:	8b 40 c8             	mov    -0x38(%eax),%eax
558f99:	50                   	push   %eax
558f9a:	8b 45 08             	mov    0x8(%ebp),%eax
558f9d:	66 8b 48 cc          	mov    -0x34(%eax),%cx
558fa1:	8b 45 f4             	mov    -0xc(%ebp),%eax
558fa4:	8b 90 08 24 00 00    	mov    0x2408(%eax),%edx
558faa:	8b c3                	mov    %ebx,%eax
558fac:	e8 c7 a7 05 00       	call   0x5b3778
558fb1:	8b d8                	mov    %eax,%ebx
558fb3:	eb 3e                	jmp    0x558ff3
558fb5:	8b 45 08             	mov    0x8(%ebp),%eax
558fb8:	66 8b 40 e4          	mov    -0x1c(%eax),%ax
558fbc:	50                   	push   %eax
558fbd:	8b 45 08             	mov    0x8(%ebp),%eax
558fc0:	66 8b 40 e0          	mov    -0x20(%eax),%ax
558fc4:	50                   	push   %eax
558fc5:	8b 45 f4             	mov    -0xc(%ebp),%eax
558fc8:	05 00 20 00 00       	add    $0x2000,%eax
558fcd:	50                   	push   %eax
558fce:	68 ff 00 00 00       	push   $0xff
558fd3:	8b 45 08             	mov    0x8(%ebp),%eax
558fd6:	8b 40 c8             	mov    -0x38(%eax),%eax
558fd9:	50                   	push   %eax
558fda:	8b 45 08             	mov    0x8(%ebp),%eax
558fdd:	66 8b 48 cc          	mov    -0x34(%eax),%cx
558fe1:	8b 45 f4             	mov    -0xc(%ebp),%eax
558fe4:	8b 90 08 24 00 00    	mov    0x2408(%eax),%edx
558fea:	8b c3                	mov    %ebx,%eax
558fec:	e8 87 a7 05 00       	call   0x5b3778
558ff1:	8b d8                	mov    %eax,%ebx
558ff3:	8b 45 08             	mov    0x8(%ebp),%eax
558ff6:	8b 40 e8             	mov    -0x18(%eax),%eax
558ff9:	8b 00                	mov    (%eax),%eax
558ffb:	80 b8 60 01 00 00 00 	cmpb   $0x0,0x160(%eax)
559002:	74 13                	je     0x559017
559004:	8b 45 08             	mov    0x8(%ebp),%eax
559007:	83 78 e4 08          	cmpl   $0x8,-0x1c(%eax)
55900b:	75 0a                	jne    0x559017
55900d:	8b 45 08             	mov    0x8(%ebp),%eax
559010:	50                   	push   %eax
559011:	e8 46 fc ff ff       	call   0x558c5c
559016:	59                   	pop    %ecx