571d9c:	01 3b                	add    %edi,(%ebx)
571d9e:	c7 43 08 08 00 00 00 	movl   $0x8,0x8(%ebx)
571da5:	eb 0d                	jmp    0x571db4
571da7:	81 03 00 ff 00 00    	addl   $0xff00,(%ebx)
571dad:	c7 43 08 08 00 00 00 	movl   $0x8,0x8(%ebx)
571db4:	d1 63 04             	shll   $1,0x4(%ebx)
571db7:	d1 23                	shll   $1,(%ebx)
571db9:	ff 4b 08             	decl   0x8(%ebx)
571dbc:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
571dc0:	0f 84 1f ff ff ff    	je     0x571ce5
571dc6:	8b c6                	mov    %esi,%eax
571dc8:	5d                   	pop    %ebp
571dc9:	5f                   	pop    %edi
571dca:	5e                   	pop    %esi
571dcb:	5b                   	pop    %ebx
571dcc:	c3                   	ret
571dcd:	90                   	nop
571dce:	90                   	nop
571dcf:	90                   	nop
571dd0:	53                   	push   %ebx
571dd1:	8b d8                	mov    %eax,%ebx
571dd3:	56                   	push   %esi
571dd4:	57                   	push   %edi
571dd5:	55                   	push   %ebp
571dd6:	8b 43 0c             	mov    0xc(%ebx),%eax
571dd9:	8b 10                	mov    (%eax),%edx
571ddb:	8b c2                	mov    %edx,%eax
571ddd:	0f b7 08             	movzwl (%eax),%ecx
571de0:	8b 43 04             	mov    0x4(%ebx),%eax
571de3:	3b c8                	cmp    %eax,%ecx
571de5:	77 19                	ja     0x571e00
571de7:	8b c2                	mov    %edx,%eax
571de9:	0f b7 10             	movzwl (%eax),%edx
571dec:	89 53 04             	mov    %edx,0x4(%ebx)
571def:	0f b7 70 02          	movzwl 0x2(%eax),%esi
571df3:	8b 53 0c             	mov    0xc(%ebx),%edx
571df6:	8b 40 08             	mov    0x8(%eax),%eax
571df9:	83 f6 01             	xor    $0x1,%esi
571dfc:	89 02                	mov    %eax,(%edx)
571dfe:	eb 17                	jmp    0x571e17
571e00:	8b 4b 0c             	mov    0xc(%ebx),%ecx
571e03:	8b 01                	mov    (%ecx),%eax
571e05:	0f b7 10             	movzwl (%eax),%edx
571e08:	89 53 04             	mov    %edx,0x4(%ebx)
571e0b:	0f b7 70 02          	movzwl 0x2(%eax),%esi
571e0f:	8b 53 0c             	mov    0xc(%ebx),%edx
571e12:	8b 40 04             	mov    0x4(%eax),%eax
571e15:	89 02                	mov    %eax,(%edx)
571e17:	8b 4b 08             	mov    0x8(%ebx),%ecx
571e1a:	85 c9                	test   %ecx,%ecx
571e1c:	0f 85 c4 00 00 00    	jne    0x571ee6
571e22:	8b 43 20             	mov    0x20(%ebx),%eax
571e25:	85 c0                	test   %eax,%eax
571e27:	0f 85 ac 00 00 00    	jne    0x571ed9
571e2d:	8b 53 18             	mov    0x18(%ebx),%edx
571e30:	f6 42 08 07          	testb  $0x7,0x8(%edx)
571e34:	75 50                	jne    0x571e86
571e36:	8b 6b 18             	mov    0x18(%ebx),%ebp
571e39:	8b 45 40             	mov    0x40(%ebp),%eax
571e3c:	85 c0                	test   %eax,%eax
571e3e:	7c 19                	jl     0x571e59
571e40:	8b 53 18             	mov    0x18(%ebx),%edx
571e43:	8b 4a 40             	mov    0x40(%edx),%ecx
571e46:	8b 45 3c             	mov    0x3c(%ebp),%eax
571e49:	3b c8                	cmp    %eax,%ecx
571e4b:	7f 0c                	jg     0x571e59
571e4d:	8b 53 18             	mov    0x18(%ebx),%edx
571e50:	83 4a 08 04          	orl    $0x4,0x8(%edx)
571e54:	83 cf ff             	or     $0xffffffff,%edi
571e57:	eb 30                	jmp    0x571e89
571e59:	8b 43 18             	mov    0x18(%ebx),%eax
571e5c:	ff 48 1c             	decl   0x1c(%eax)
571e5f:	79 11                	jns    0x571e72
571e61:	ba 01 00 00 00       	mov    $0x1,%edx
571e66:	8b 43 18             	mov    0x18(%ebx),%eax
571e69:	e8 ba 6e 00 00       	call   0x578d28
571e6e:	8b f8                	mov    %eax,%edi
571e70:	eb 17                	jmp    0x571e89
571e72:	8b 43 18             	mov    0x18(%ebx),%eax
571e75:	ff 40 3c             	incl   0x3c(%eax)
571e78:	8b 53 18             	mov    0x18(%ebx),%edx
571e7b:	8b 4a 18             	mov    0x18(%edx),%ecx
571e7e:	ff 42 18             	incl   0x18(%edx)
571e81:	0f b6 39             	movzbl (%ecx),%edi
571e84:	eb 03                	jmp    0x571e89
571e86:	83 cf ff             	or     $0xffffffff,%edi
571e89:	83 ff ff             	cmp    $0xffffffff,%edi
571e8c:	75 0c                	jne    0x571e9a
571e8e:	c7 43 20 01 00 00 00 	movl   $0x1,0x20(%ebx)
571e95:	bf ff 00 00 00       	mov    $0xff,%edi
571e9a:	8a 43 1c             	mov    0x1c(%ebx),%al
571e9d:	8b d7                	mov    %edi,%edx
571e9f:	88 53 1c             	mov    %dl,0x1c(%ebx)
571ea2:	3c ff                	cmp    $0xff,%al
571ea4:	75 25                	jne    0x571ecb
571ea6:	81 ff 8f 00 00 00    	cmp    $0x8f,%edi
571eac:	7e 0f                	jle    0x571ebd
571eae:	81 03 00 ff 00 00    	addl   $0xff00,(%ebx)
571eb4:	c7 43 08 08 00 00 00 	movl   $0x8,0x8(%ebx)
571ebb:	eb 29                	jmp    0x571ee6
571ebd:	c1 e7 09             	shl    $0x9,%edi
571ec0:	01 3b                	add    %edi,(%ebx)
571ec2:	c7 43 08 07 00 00 00 	movl   $0x7,0x8(%ebx)
571ec9:	eb 1b                	jmp    0x571ee6
571ecb:	c1 e7 08             	shl    $0x8,%edi
571ece:	01 3b                	add    %edi,(%ebx)
571ed0:	c7 43 08 08 00 00 00 	movl   $0x8,0x8(%ebx)
571ed7:	eb 0d                	jmp    0x571ee6
571ed9:	81 03 00 ff 00 00    	addl   $0xff00,(%ebx)
571edf:	c7 43 08 08 00 00 00 	movl   $0x8,0x8(%ebx)
571ee6:	d1 63 04             	shll   $1,0x4(%ebx)
571ee9:	d1 23                	shll   $1,(%ebx)
571eeb:	ff 4b 08             	decl   0x8(%ebx)
571eee:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
571ef2:	0f 84 1f ff ff ff    	je     0x571e17
571ef8:	8b c6                	mov    %esi,%eax
571efa:	5d                   	pop    %ebp
571efb:	5f                   	pop    %edi
571efc:	5e                   	pop    %esi
571efd:	5b                   	pop    %ebx
571efe:	c3                   	ret
571eff:	90                   	nop
571f00:	53                   	push   %ebx
571f01:	8b d8                	mov    %eax,%ebx
571f03:	56                   	push   %esi
571f04:	57                   	push   %edi
571f05:	55                   	push   %ebp
571f06:	8b 43 20             	mov    0x20(%ebx),%eax
571f09:	85 c0                	test   %eax,%eax
571f0b:	0f 85 a6 00 00 00    	jne    0x571fb7
571f11:	8b 53 18             	mov    0x18(%ebx),%edx
571f14:	f6 42 08 07          	testb  $0x7,0x8(%edx)
571f18:	75 4a                	jne    0x571f64
571f1a:	8b 7b 18             	mov    0x18(%ebx),%edi
571f1d:	8b 6f 40             	mov    0x40(%edi),%ebp
571f20:	85 ed                	test   %ebp,%ebp
571f22:	7c 13                	jl     0x571f37
571f24:	8b 47 3c             	mov    0x3c(%edi),%eax
571f27:	3b e8                	cmp    %eax,%ebp
571f29:	7f 0c                	jg     0x571f37
571f2b:	8b 53 18             	mov    0x18(%ebx),%edx
571f2e:	83 4a 08 04          	orl    $0x4,0x8(%edx)
571f32:	83 ce ff             	or     $0xffffffff,%esi
571f35:	eb 30                	jmp    0x571f67
571f37:	8b 43 18             	mov    0x18(%ebx),%eax
571f3a:	ff 48 1c             	decl   0x1c(%eax)
571f3d:	79 11                	jns    0x571f50
571f3f:	ba 01 00 00 00       	mov    $0x1,%edx
571f44:	8b 43 18             	mov    0x18(%ebx),%eax
571f47:	e8 dc 6d 00 00       	call   0x578d28
571f4c:	8b f0                	mov    %eax,%esi
571f4e:	eb 17                	jmp    0x571f67
571f50:	8b 43 18             	mov    0x18(%ebx),%eax
571f53:	ff 40 3c             	incl   0x3c(%eax)
571f56:	8b 53 18             	mov    0x18(%ebx),%edx
571f59:	8b 4a 18             	mov    0x18(%edx),%ecx
571f5c:	ff 42 18             	incl   0x18(%edx)
571f5f:	0f b6 31             	movzbl (%ecx),%esi
571f62:	eb 03                	jmp    0x571f67
571f64:	83 ce ff             	or     $0xffffffff,%esi
571f67:	83 fe ff             	cmp    $0xffffffff,%esi
571f6a:	75 0c                	jne    0x571f78
571f6c:	c7 43 20 01 00 00 00 	movl   $0x1,0x20(%ebx)
571f73:	be ff 00 00 00       	mov    $0xff,%esi
571f78:	8a 43 1c             	mov    0x1c(%ebx),%al
571f7b:	8b d6                	mov    %esi,%edx
571f7d:	88 53 1c             	mov    %dl,0x1c(%ebx)
571f80:	3c ff                	cmp    $0xff,%al
571f82:	75 25                	jne    0x571fa9
571f84:	81 fe 8f 00 00 00    	cmp    $0x8f,%esi
571f8a:	7e 0f                	jle    0x571f9b
571f8c:	81 03 00 ff 00 00    	addl   $0xff00,(%ebx)
571f92:	c7 43 08 08 00 00 00 	movl   $0x8,0x8(%ebx)
571f99:	eb 29                	jmp    0x571fc4
571f9b:	c1 e6 09             	shl    $0x9,%esi
571f9e:	01 33                	add    %esi,(%ebx)
571fa0:	c7 43 08 07 00 00 00 	movl   $0x7,0x8(%ebx)
571fa7:	eb 1b                	jmp    0x571fc4
571fa9:	c1 e6 08             	shl    $0x8,%esi
571fac:	01 33                	add    %esi,(%ebx)
571fae:	c7 43 08 08 00 00 00 	movl   $0x8,0x8(%ebx)
571fb5:	eb 0d                	jmp    0x571fc4
571fb7:	81 03 00 ff 00 00    	addl   $0xff00,(%ebx)
571fbd:	c7 43 08 08 00 00 00 	movl   $0x8,0x8(%ebx)
571fc4:	5d                   	pop    %ebp
571fc5:	5f                   	pop    %edi
571fc6:	5e                   	pop    %esi
571fc7:	5b                   	pop    %ebx
571fc8:	c3                   	ret
571fc9:	90                   	nop
571fca:	90                   	nop
571fcb:	90                   	nop
571fcc:	53                   	push   %ebx
571fcd:	8b d8                	mov    %eax,%ebx
571fcf:	56                   	push   %esi
571fd0:	8b f2                	mov    %edx,%esi
571fd2:	8b 43 08             	mov    0x8(%ebx),%eax
571fd5:	50                   	push   %eax
571fd6:	8b 13                	mov    (%ebx),%edx
571fd8:	52                   	push   %edx
571fd9:	8b 4b 04             	mov    0x4(%ebx),%ecx
571fdc:	51                   	push   %ecx
571fdd:	68 60 17 6a 00       	push   $0x6a1760
571fe2:	56                   	push   %esi
571fe3:	e8 e4 80 00 00       	call   0x57a0cc
571fe8:	8b 43 0c             	mov    0xc(%ebx),%eax
571feb:	8b 53 10             	mov    0x10(%ebx),%edx
571fee:	2b c2                	sub    %edx,%eax
571ff0:	83 c4 14             	add    $0x14,%esp
571ff3:	85 c0                	test   %eax,%eax
571ff5:	79 03                	jns    0x571ffa
571ff7:	83 c0 03             	add    $0x3,%eax
571ffa:	c1 f8 02             	sar    $0x2,%eax
571ffd:	50                   	push   %eax
571ffe:	68 87 17 6a 00       	push   $0x6a1787
572003:	56                   	push   %esi
572004:	e8 c3 80 00 00       	call   0x57a0cc
572009:	83 c4 0c             	add    $0xc,%esp
57200c:	8b 4b 0c             	mov    0xc(%ebx),%ecx
57200f:	8b 09                	mov    (%ecx),%ecx
572011:	0f b7 01             	movzwl (%ecx),%eax
572014:	50                   	push   %eax
572015:	0f b7 51 02          	movzwl 0x2(%ecx),%edx
572019:	52                   	push   %edx
57201a:	8b c1                	mov    %ecx,%eax
57201c:	81 e8 f8 17 6a 00    	sub    $0x6a17f8,%eax
572022:	b9 0c 00 00 00       	mov    $0xc,%ecx
572027:	99                   	cltd
572028:	f7 f9                	idiv   %ecx
57202a:	50                   	push   %eax
57202b:	68 92 17 6a 00       	push   $0x6a1792
572030:	56                   	push   %esi
572031:	e8 96 80 00 00       	call   0x57a0cc
572036:	83 c4 14             	add    $0x14,%esp
572039:	5e                   	pop    %esi
57203a:	5b                   	pop    %ebx
57203b:	c3                   	ret
57203c:	53                   	push   %ebx
57203d:	56                   	push   %esi
57203e:	57                   	push   %edi
57203f:	8b f2                	mov    %edx,%esi
572041:	8b f8                	mov    %eax,%edi
572043:	b8 24 00 00 00       	mov    $0x24,%eax
572048:	e8 2f 63 00 00       	call   0x57837c
57204d:	8b d8                	mov    %eax,%ebx
57204f:	85 c0                	test   %eax,%eax
572051:	74 34                	je     0x572087
572053:	89 73 18             	mov    %esi,0x18(%ebx)
572056:	8b f7                	mov    %edi,%esi
572058:	89 73 0c             	mov    %esi,0xc(%ebx)
57205b:	8b c6                	mov    %esi,%eax
57205d:	c1 e0 02             	shl    $0x2,%eax
572060:	e8 17 63 00 00       	call   0x57837c
572065:	8b f8                	mov    %eax,%edi
572067:	89 7b 10             	mov    %edi,0x10(%ebx)
57206a:	85 ff                	test   %edi,%edi
57206c:	74 19                	je     0x572087
57206e:	89 7b 14             	mov    %edi,0x14(%ebx)
572071:	8b c3                	mov    %ebx,%eax
572073:	e8 38 00 00 00       	call   0x5720b0
572078:	33 c9                	xor    %ecx,%ecx
57207a:	33 d2                	xor    %edx,%edx
57207c:	8b c3                	mov    %ebx,%eax
57207e:	e8 51 00 00 00       	call   0x5720d4
572083:	8b c3                	mov    %ebx,%eax
572085:	eb 0d                	jmp    0x572094
572087:	85 db                	test   %ebx,%ebx
572089:	74 07                	je     0x572092
57208b:	8b c3                	mov    %ebx,%eax
57208d:	e8 06 00 00 00       	call   0x572098
572092:	33 c0                	xor    %eax,%eax
572094:	5f                   	pop    %edi
572095:	5e                   	pop    %esi
572096:	5b                   	pop    %ebx
572097:	c3                   	ret
572098:	53                   	push   %ebx
572099:	8b d8                	mov    %eax,%ebx
57209b:	8b 43 10             	mov    0x10(%ebx),%eax
57209e:	85 c0                	test   %eax,%eax
5720a0:	74 05                	je     0x5720a7
5720a2:	e8 dd 62 00 00       	call   0x578384
5720a7:	8b c3                	mov    %ebx,%eax
5720a9:	e8 d6 62 00 00       	call   0x578384
5720ae:	5b                   	pop    %ebx
5720af:	c3                   	ret
5720b0:	c7 40 04 00 80 00 00 	movl   $0x8000,0x4(%eax)
5720b7:	66 c7 40 1c ff ff    	movw   $0xffff,0x1c(%eax)
5720bd:	33 d2                	xor    %edx,%edx
5720bf:	33 c9                	xor    %ecx,%ecx
5720c1:	89 10                	mov    %edx,(%eax)
5720c3:	c7 40 08 0c 00 00 00 	movl   $0xc,0x8(%eax)
5720ca:	66 c7 40 1e ff ff    	movw   $0xffff,0x1e(%eax)
5720d0:	89 48 20             	mov    %ecx,0x20(%eax)
5720d3:	c3                   	ret
5720d4:	53                   	push   %ebx
5720d5:	56                   	push   %esi
5720d6:	57                   	push   %edi
5720d7:	8b 58 10             	mov    0x10(%eax),%ebx
5720da:	8b 70 0c             	mov    0xc(%eax),%esi
5720dd:	3b d6                	cmp    %esi,%edx
5720df:	7e 05                	jle    0x5720e6
5720e1:	8b 70 0c             	mov    0xc(%eax),%esi
5720e4:	eb 20                	jmp    0x572106
5720e6:	8b f2                	mov    %edx,%esi
5720e8:	eb 1c                	jmp    0x572106
5720ea:	0f bf 79 04          	movswl 0x4(%ecx),%edi
5720ee:	03 ff                	add    %edi,%edi
5720f0:	03 39                	add    (%ecx),%edi
5720f2:	c1 e7 02             	shl    $0x2,%edi
5720f5:	8d 3c 7f             	lea    (%edi,%edi,2),%edi
5720f8:	81 c7 f8 17 6a 00    	add    $0x6a17f8,%edi
5720fe:	89 3b                	mov    %edi,(%ebx)
572100:	83 c3 04             	add    $0x4,%ebx
572103:	83 c1 08             	add    $0x8,%ecx
572106:	4e                   	dec    %esi
572107:	79 e1                	jns    0x5720ea
572109:	8b 70 0c             	mov    0xc(%eax),%esi
57210c:	2b f2                	sub    %edx,%esi
57210e:	eb 09                	jmp    0x572119
572110:	c7 03 f8 17 6a 00    	movl   $0x6a17f8,(%ebx)
572116:	83 c3 04             	add    $0x4,%ebx
572119:	4e                   	dec    %esi
57211a:	79 f4                	jns    0x572110
57211c:	5f                   	pop    %edi
57211d:	5e                   	pop    %esi
57211e:	5b                   	pop    %ebx
57211f:	c3                   	ret
572120:	8b 48 04             	mov    0x4(%eax),%ecx
572123:	89 0a                	mov    %ecx,(%edx)
572125:	8b 08                	mov    (%eax),%ecx
572127:	89 4a 04             	mov    %ecx,0x4(%edx)
57212a:	8b 48 08             	mov    0x8(%eax),%ecx
57212d:	89 4a 08             	mov    %ecx,0x8(%edx)
572130:	0f bf 40 1e          	movswl 0x1e(%eax),%eax
572134:	89 42 0c             	mov    %eax,0xc(%edx)
572137:	c3                   	ret
572138:	53                   	push   %ebx
572139:	8b d8                	mov    %eax,%ebx
57213b:	56                   	push   %esi
57213c:	57                   	push   %edi
57213d:	8b 43 14             	mov    0x14(%ebx),%eax
572140:	8b 00                	mov    (%eax),%eax
572142:	0f b7 48 02          	movzwl 0x2(%eax),%ecx
572146:	3b d1                	cmp    %ecx,%edx
572148:	75 22                	jne    0x57216c
57214a:	0f b7 10             	movzwl (%eax),%edx
57214d:	29 53 04             	sub    %edx,0x4(%ebx)
572150:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
572154:	75 0c                	jne    0x572162
572156:	8b c3                	mov    %ebx,%eax