5afd9b:	8b 55 e8             	mov    -0x18(%ebp),%edx
5afd9e:	8b 45 f0             	mov    -0x10(%ebp),%eax
5afda1:	8b 18                	mov    (%eax),%ebx
5afda3:	ff 53 24             	call   *0x24(%ebx)
5afda6:	8b 45 e0             	mov    -0x20(%ebp),%eax
5afda9:	85 c0                	test   %eax,%eax
5afdab:	79 03                	jns    0x5afdb0
5afdad:	83 c0 07             	add    $0x7,%eax
5afdb0:	c1 f8 03             	sar    $0x3,%eax
5afdb3:	89 45 cc             	mov    %eax,-0x34(%ebp)
5afdb6:	8b 45 e0             	mov    -0x20(%ebp),%eax
5afdb9:	83 e0 07             	and    $0x7,%eax
5afdbc:	85 c0                	test   %eax,%eax
5afdbe:	74 15                	je     0x5afdd5
5afdc0:	ff 45 cc             	incl   -0x34(%ebp)
5afdc3:	8b 45 e0             	mov    -0x20(%ebp),%eax
5afdc6:	83 e0 07             	and    $0x7,%eax
5afdc9:	ba 08 00 00 00       	mov    $0x8,%edx
5afdce:	2b d0                	sub    %eax,%edx
5afdd0:	89 55 c8             	mov    %edx,-0x38(%ebp)
5afdd3:	eb 05                	jmp    0x5afdda
5afdd5:	33 c0                	xor    %eax,%eax
5afdd7:	89 45 c8             	mov    %eax,-0x38(%ebp)
5afdda:	83 7d c8 00          	cmpl   $0x0,-0x38(%ebp)
5afdde:	75 63                	jne    0x5afe43
5afde0:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5afde3:	48                   	dec    %eax
5afde4:	85 c0                	test   %eax,%eax
5afde6:	0f 8c e3 03 00 00    	jl     0x5b01cf
5afdec:	40                   	inc    %eax
5afded:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
5afdf3:	33 db                	xor    %ebx,%ebx
5afdf5:	8b d3                	mov    %ebx,%edx
5afdf7:	8b 45 f0             	mov    -0x10(%ebp),%eax
5afdfa:	8b 08                	mov    (%eax),%ecx
5afdfc:	ff 11                	call   *(%ecx)
5afdfe:	8b f8                	mov    %eax,%edi
5afe00:	8b 55 e4             	mov    -0x1c(%ebp),%edx
5afe03:	4a                   	dec    %edx
5afe04:	2b d3                	sub    %ebx,%edx
5afe06:	8b 45 fc             	mov    -0x4(%ebp),%eax
5afe09:	8b 08                	mov    (%eax),%ecx
5afe0b:	ff 11                	call   *(%ecx)
5afe0d:	89 45 88             	mov    %eax,-0x78(%ebp)
5afe10:	8b 45 cc             	mov    -0x34(%ebp),%eax
5afe13:	48                   	dec    %eax
5afe14:	01 45 88             	add    %eax,-0x78(%ebp)
5afe17:	8b 75 cc             	mov    -0x34(%ebp),%esi
5afe1a:	4e                   	dec    %esi
5afe1b:	85 f6                	test   %esi,%esi
5afe1d:	7c 16                	jl     0x5afe35
5afe1f:	46                   	inc    %esi
5afe20:	8b 45 88             	mov    -0x78(%ebp),%eax
5afe23:	8a 00                	mov    (%eax),%al
5afe25:	88 07                	mov    %al,(%edi)
5afe27:	8b c7                	mov    %edi,%eax
5afe29:	e8 66 0d 04 00       	call   0x5f0b94
5afe2e:	47                   	inc    %edi
5afe2f:	ff 4d 88             	decl   -0x78(%ebp)
5afe32:	4e                   	dec    %esi
5afe33:	75 eb                	jne    0x5afe20
5afe35:	43                   	inc    %ebx
5afe36:	ff 8d 78 ff ff ff    	decl   -0x88(%ebp)
5afe3c:	75 b7                	jne    0x5afdf5
5afe3e:	e9 8c 03 00 00       	jmp    0x5b01cf
5afe43:	8b 45 cc             	mov    -0x34(%ebp),%eax
5afe46:	e8 61 29 e5 ff       	call   0x4027ac
5afe4b:	89 45 84             	mov    %eax,-0x7c(%ebp)
5afe4e:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5afe51:	48                   	dec    %eax
5afe52:	85 c0                	test   %eax,%eax
5afe54:	7c 69                	jl     0x5afebf
5afe56:	40                   	inc    %eax
5afe57:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
5afe5d:	33 db                	xor    %ebx,%ebx
5afe5f:	8b 7d 84             	mov    -0x7c(%ebp),%edi
5afe62:	8b 55 e4             	mov    -0x1c(%ebp),%edx
5afe65:	4a                   	dec    %edx
5afe66:	2b d3                	sub    %ebx,%edx
5afe68:	8b 45 fc             	mov    -0x4(%ebp),%eax
5afe6b:	8b 08                	mov    (%eax),%ecx
5afe6d:	ff 11                	call   *(%ecx)
5afe6f:	89 45 88             	mov    %eax,-0x78(%ebp)
5afe72:	8b 45 cc             	mov    -0x34(%ebp),%eax
5afe75:	48                   	dec    %eax
5afe76:	01 45 88             	add    %eax,-0x78(%ebp)
5afe79:	8b 75 cc             	mov    -0x34(%ebp),%esi
5afe7c:	4e                   	dec    %esi
5afe7d:	85 f6                	test   %esi,%esi
5afe7f:	7c 16                	jl     0x5afe97
5afe81:	46                   	inc    %esi
5afe82:	8b 45 88             	mov    -0x78(%ebp),%eax
5afe85:	8a 00                	mov    (%eax),%al
5afe87:	88 07                	mov    %al,(%edi)
5afe89:	8b c7                	mov    %edi,%eax
5afe8b:	e8 04 0d 04 00       	call   0x5f0b94
5afe90:	47                   	inc    %edi
5afe91:	ff 4d 88             	decl   -0x78(%ebp)
5afe94:	4e                   	dec    %esi
5afe95:	75 eb                	jne    0x5afe82
5afe97:	8b 45 c8             	mov    -0x38(%ebp),%eax
5afe9a:	50                   	push   %eax
5afe9b:	8b 45 e0             	mov    -0x20(%ebp),%eax
5afe9e:	50                   	push   %eax
5afe9f:	8b 45 cc             	mov    -0x34(%ebp),%eax
5afea2:	50                   	push   %eax
5afea3:	8b d3                	mov    %ebx,%edx
5afea5:	8b 45 f0             	mov    -0x10(%ebp),%eax
5afea8:	8b 08                	mov    (%eax),%ecx
5afeaa:	ff 11                	call   *(%ecx)
5afeac:	33 c9                	xor    %ecx,%ecx
5afeae:	8b 55 84             	mov    -0x7c(%ebp),%edx
5afeb1:	e8 2e c4 ff ff       	call   0x5ac2e4
5afeb6:	43                   	inc    %ebx
5afeb7:	ff 8d 78 ff ff ff    	decl   -0x88(%ebp)
5afebd:	75 a0                	jne    0x5afe5f
5afebf:	8b 45 84             	mov    -0x7c(%ebp),%eax
5afec2:	e8 05 29 e5 ff       	call   0x4027cc
5afec7:	e9 03 03 00 00       	jmp    0x5b01cf
5afecc:	dd 45 08             	fldl   0x8(%ebp)
5afecf:	d9 e0                	fchs
5afed1:	db 2d 00 02 5b 00    	fldt   0x5b0200
5afed7:	de f9                	fdivrp %st,%st(1)
5afed9:	dd 5d a0             	fstpl  -0x60(%ebp)
5afedc:	9b dd 45 a0          	fldl   -0x60(%ebp)
5afee0:	e8 5f 2d e5 ff       	call   0x402c44
5afee5:	d8 0d 0c 02 5b 00    	fmuls  0x5b020c
5afeeb:	e8 dc 2d e5 ff       	call   0x402ccc
5afef0:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)
5afef6:	89 95 74 ff ff ff    	mov    %edx,-0x8c(%ebp)
5afefc:	df ad 70 ff ff ff    	fildll -0x90(%ebp)
5aff02:	d8 35 0c 02 5b 00    	fdivs  0x5b020c
5aff08:	dd 5d 98             	fstpl  -0x68(%ebp)
5aff0b:	9b dd 45 a0          	fldl   -0x60(%ebp)
5aff0f:	e8 78 2d e5 ff       	call   0x402c8c
5aff14:	d8 0d 0c 02 5b 00    	fmuls  0x5b020c
5aff1a:	e8 ad 2d e5 ff       	call   0x402ccc
5aff1f:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)
5aff25:	89 95 74 ff ff ff    	mov    %edx,-0x8c(%ebp)
5aff2b:	df ad 70 ff ff ff    	fildll -0x90(%ebp)
5aff31:	d8 35 0c 02 5b 00    	fdivs  0x5b020c
5aff37:	dd 5d 90             	fstpl  -0x70(%ebp)
5aff3a:	9b db 45 e0          	fildl  -0x20(%ebp)
5aff3e:	dc 4d 98             	fmull  -0x68(%ebp)
5aff41:	d9 e1                	fabs
5aff43:	db bd 64 ff ff ff    	fstpt  -0x9c(%ebp)
5aff49:	9b db 45 e4          	fildl  -0x1c(%ebp)
5aff4d:	dc 4d 90             	fmull  -0x70(%ebp)
5aff50:	d9 e1                	fabs
5aff52:	db ad 64 ff ff ff    	fldt   -0x9c(%ebp)
5aff58:	de c1                	faddp  %st,%st(1)
5aff5a:	e8 6d 2d e5 ff       	call   0x402ccc
5aff5f:	89 45 e8             	mov    %eax,-0x18(%ebp)
5aff62:	8b 45 e0             	mov    -0x20(%ebp),%eax
5aff65:	f7 d8                	neg    %eax
5aff67:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%ebp)
5aff6d:	db 85 60 ff ff ff    	fildl  -0xa0(%ebp)
5aff73:	dc 4d 90             	fmull  -0x70(%ebp)
5aff76:	d9 e1                	fabs
5aff78:	db bd 64 ff ff ff    	fstpt  -0x9c(%ebp)
5aff7e:	9b db 45 e4          	fildl  -0x1c(%ebp)
5aff82:	dc 4d 98             	fmull  -0x68(%ebp)
5aff85:	d9 e1                	fabs
5aff87:	db ad 64 ff ff ff    	fldt   -0x9c(%ebp)
5aff8d:	de c1                	faddp  %st,%st(1)
5aff8f:	e8 38 2d e5 ff       	call   0x402ccc
5aff94:	8b f0                	mov    %eax,%esi
5aff96:	89 b5 60 ff ff ff    	mov    %esi,-0xa0(%ebp)
5aff9c:	db 85 60 ff ff ff    	fildl  -0xa0(%ebp)
5affa2:	d8 35 10 02 5b 00    	fdivs  0x5b0210
5affa8:	d8 25 14 02 5b 00    	fsubs  0x5b0214
5affae:	dd 5d c0             	fstpl  -0x40(%ebp)
5affb1:	9b db 45 e8          	fildl  -0x18(%ebp)
5affb5:	d8 35 10 02 5b 00    	fdivs  0x5b0210
5affbb:	d8 25 14 02 5b 00    	fsubs  0x5b0214
5affc1:	dd 5d b8             	fstpl  -0x48(%ebp)
5affc4:	9b db 45 e0          	fildl  -0x20(%ebp)
5affc8:	d8 35 10 02 5b 00    	fdivs  0x5b0210
5affce:	d8 25 14 02 5b 00    	fsubs  0x5b0214
5affd4:	dd 5d a8             	fstpl  -0x58(%ebp)
5affd7:	9b db 45 e4          	fildl  -0x1c(%ebp)
5affdb:	d8 35 10 02 5b 00    	fdivs  0x5b0210
5affe1:	d8 25 14 02 5b 00    	fsubs  0x5b0214
5affe7:	dd 5d b0             	fstpl  -0x50(%ebp)
5affea:	9b                   	fwait
5affeb:	6a 01                	push   $0x1
5affed:	8b ce                	mov    %esi,%ecx
5affef:	8b 55 e8             	mov    -0x18(%ebp),%edx
5afff2:	8b 45 f0             	mov    -0x10(%ebp),%eax
5afff5:	8b 18                	mov    (%eax),%ebx
5afff7:	ff 53 24             	call   *0x24(%ebx)
5afffa:	89 b5 60 ff ff ff    	mov    %esi,-0xa0(%ebp)
5b0000:	db 85 60 ff ff ff    	fildl  -0xa0(%ebp)
5b0006:	d8 3d 18 02 5b 00    	fdivrs 0x5b0218
5b000c:	8b 45 f4             	mov    -0xc(%ebp),%eax
5b000f:	dd 58 18             	fstpl  0x18(%eax)
5b0012:	9b                   	fwait
5b0013:	6a 00                	push   $0x0
5b0015:	6a 00                	push   $0x0
5b0017:	8b 45 f0             	mov    -0x10(%ebp),%eax
5b001a:	e8 a9 bf 04 00       	call   0x5fbfc8
5b001f:	8b 45 e8             	mov    -0x18(%ebp),%eax
5b0022:	c1 e0 02             	shl    $0x2,%eax
5b0025:	e8 82 27 e5 ff       	call   0x4027ac
5b002a:	89 45 80             	mov    %eax,-0x80(%ebp)
5b002d:	8b 45 e8             	mov    -0x18(%ebp),%eax
5b0030:	c1 e0 02             	shl    $0x2,%eax
5b0033:	e8 74 27 e5 ff       	call   0x4027ac
5b0038:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
5b003e:	8b 45 e8             	mov    -0x18(%ebp),%eax
5b0041:	48                   	dec    %eax
5b0042:	85 c0                	test   %eax,%eax
5b0044:	7c 55                	jl     0x5b009b
5b0046:	40                   	inc    %eax
5b0047:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
5b004d:	33 db                	xor    %ebx,%ebx
5b004f:	89 9d 60 ff ff ff    	mov    %ebx,-0xa0(%ebp)
5b0055:	db 85 60 ff ff ff    	fildl  -0xa0(%ebp)
5b005b:	dc 65 b8             	fsubl  -0x48(%ebp)
5b005e:	dc 4d 98             	fmull  -0x68(%ebp)
5b0061:	e8 66 2c e5 ff       	call   0x402ccc
5b0066:	8b 55 80             	mov    -0x80(%ebp),%edx
5b0069:	89 04 9a             	mov    %eax,(%edx,%ebx,4)
5b006c:	89 9d 60 ff ff ff    	mov    %ebx,-0xa0(%ebp)
5b0072:	db 85 60 ff ff ff    	fildl  -0xa0(%ebp)
5b0078:	dc 65 b8             	fsubl  -0x48(%ebp)
5b007b:	d8 2d 1c 02 5b 00    	fsubrs 0x5b021c
5b0081:	dc 4d 90             	fmull  -0x70(%ebp)
5b0084:	e8 43 2c e5 ff       	call   0x402ccc
5b0089:	8b 95 7c ff ff ff    	mov    -0x84(%ebp),%edx
5b008f:	89 04 9a             	mov    %eax,(%edx,%ebx,4)
5b0092:	43                   	inc    %ebx
5b0093:	ff 8d 78 ff ff ff    	decl   -0x88(%ebp)
5b0099:	75 b4                	jne    0x5b004f
5b009b:	4e                   	dec    %esi
5b009c:	85 f6                	test   %esi,%esi
5b009e:	0f 8c 18 01 00 00    	jl     0x5b01bc
5b00a4:	46                   	inc    %esi
5b00a5:	89 b5 78 ff ff ff    	mov    %esi,-0x88(%ebp)
5b00ab:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
5b00b2:	8b 55 dc             	mov    -0x24(%ebp),%edx
5b00b5:	8b 45 f0             	mov    -0x10(%ebp),%eax
5b00b8:	8b 08                	mov    (%eax),%ecx
5b00ba:	ff 11                	call   *(%ecx)
5b00bc:	89 45 8c             	mov    %eax,-0x74(%ebp)
5b00bf:	db 45 dc             	fildl  -0x24(%ebp)
5b00c2:	dc 65 c0             	fsubl  -0x40(%ebp)
5b00c5:	dc 4d 90             	fmull  -0x70(%ebp)
5b00c8:	dc 45 a8             	faddl  -0x58(%ebp)
5b00cb:	e8 fc 2b e5 ff       	call   0x402ccc
5b00d0:	89 45 d0             	mov    %eax,-0x30(%ebp)
5b00d3:	db 45 dc             	fildl  -0x24(%ebp)
5b00d6:	dc 65 c0             	fsubl  -0x40(%ebp)
5b00d9:	dc 4d 98             	fmull  -0x68(%ebp)
5b00dc:	dc 45 b0             	faddl  -0x50(%ebp)
5b00df:	e8 e8 2b e5 ff       	call   0x402ccc
5b00e4:	89 45 d4             	mov    %eax,-0x2c(%ebp)
5b00e7:	8b 75 e8             	mov    -0x18(%ebp),%esi
5b00ea:	4e                   	dec    %esi
5b00eb:	85 f6                	test   %esi,%esi
5b00ed:	0f 8c 92 00 00 00    	jl     0x5b0185
5b00f3:	46                   	inc    %esi
5b00f4:	33 db                	xor    %ebx,%ebx
5b00f6:	8b 45 80             	mov    -0x80(%ebp),%eax
5b00f9:	8b 3c 98             	mov    (%eax,%ebx,4),%edi
5b00fc:	03 7d d0             	add    -0x30(%ebp),%edi
5b00ff:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
5b0105:	8b 04 98             	mov    (%eax,%ebx,4),%eax
5b0108:	03 45 d4             	add    -0x2c(%ebp),%eax
5b010b:	89 45 ec             	mov    %eax,-0x14(%ebp)
5b010e:	3b 7d e0             	cmp    -0x20(%ebp),%edi
5b0111:	7d 4c                	jge    0x5b015f
5b0113:	8b 45 ec             	mov    -0x14(%ebp),%eax
5b0116:	3b 45 e4             	cmp    -0x1c(%ebp),%eax
5b0119:	7d 44                	jge    0x5b015f
5b011b:	85 ff                	test   %edi,%edi
5b011d:	7c 40                	jl     0x5b015f
5b011f:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
5b0123:	7c 3a                	jl     0x5b015f
5b0125:	8b 55 ec             	mov    -0x14(%ebp),%edx
5b0128:	8b 45 fc             	mov    -0x4(%ebp),%eax
5b012b:	8b 08                	mov    (%eax),%ecx
5b012d:	ff 11                	call   *(%ecx)
5b012f:	8b d7                	mov    %edi,%edx
5b0131:	c1 ea 03             	shr    $0x3,%edx
5b0134:	8a 04 10             	mov    (%eax,%edx,1),%al
5b0137:	83 e7 07             	and    $0x7,%edi
5b013a:	8b 15 88 6d 6a 00    	mov    0x6a6d88,%edx
5b0140:	22 04 3a             	and    (%edx,%edi,1),%al
5b0143:	74 38                	je     0x5b017d
5b0145:	8b c3                	mov    %ebx,%eax
5b0147:	c1 e8 03             	shr    $0x3,%eax
5b014a:	03 45 8c             	add    -0x74(%ebp),%eax
5b014d:	8b d3                	mov    %ebx,%edx
5b014f:	83 e2 07             	and    $0x7,%edx
5b0152:	8b 0d 88 6d 6a 00    	mov    0x6a6d88,%ecx
5b0158:	8a 14 11             	mov    (%ecx,%edx,1),%dl
5b015b:	08 10                	or     %dl,(%eax)
5b015d:	eb 1e                	jmp    0x5b017d
5b015f:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
5b0163:	74 18                	je     0x5b017d
5b0165:	8b c3                	mov    %ebx,%eax
5b0167:	c1 e8 03             	shr    $0x3,%eax
5b016a:	03 45 8c             	add    -0x74(%ebp),%eax
5b016d:	8b d3                	mov    %ebx,%edx
5b016f:	83 e2 07             	and    $0x7,%edx
5b0172:	8b 0d 88 6d 6a 00    	mov    0x6a6d88,%ecx
5b0178:	8a 14 11             	mov    (%ecx,%edx,1),%dl
5b017b:	08 10                	or     %dl,(%eax)
5b017d:	43                   	inc    %ebx
5b017e:	4e                   	dec    %esi
5b017f:	0f 85 71 ff ff ff    	jne    0x5b00f6
5b0185:	8b 45 f4             	mov    -0xc(%ebp),%eax
5b0188:	66 83 78 02 00       	cmpw   $0x0,0x2(%eax)
5b018d:	74 1e                	je     0x5b01ad
5b018f:	db 45 dc             	fildl  -0x24(%ebp)
5b0192:	8b 45 f4             	mov    -0xc(%ebp),%eax
5b0195:	dc 48 18             	fmull  0x18(%eax)
5b0198:	e8 2f 2b e5 ff       	call   0x402ccc
5b019d:	8b c8                	mov    %eax,%ecx
5b019f:	8b 5d f4             	mov    -0xc(%ebp),%ebx
5b01a2:	8b 55 f4             	mov    -0xc(%ebp),%edx
5b01a5:	8b 52 08             	mov    0x8(%edx),%edx
5b01a8:	8b 43 04             	mov    0x4(%ebx),%eax
5b01ab:	ff 13                	call   *(%ebx)
5b01ad:	ff 45 dc             	incl   -0x24(%ebp)
5b01b0:	ff 8d 78 ff ff ff    	decl   -0x88(%ebp)
5b01b6:	0f 85 f6 fe ff ff    	jne    0x5b00b2
5b01bc:	8b 45 80             	mov    -0x80(%ebp),%eax
5b01bf:	e8 08 26 e5 ff       	call   0x4027cc
5b01c4:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
5b01ca:	e8 fd 25 e5 ff       	call   0x4027cc
5b01cf:	8b 55 f0             	mov    -0x10(%ebp),%edx
5b01d2:	8b 45 fc             	mov    -0x4(%ebp),%eax
5b01d5:	8b 08                	mov    (%eax),%ecx
5b01d7:	ff 51 28             	call   *0x28(%ecx)
5b01da:	8b 45 f0             	mov    -0x10(%ebp),%eax
5b01dd:	e8 96 38 e5 ff       	call   0x403a78
5b01e2:	5f                   	pop    %edi
5b01e3:	5e                   	pop    %esi
5b01e4:	5b                   	pop    %ebx
5b01e5:	8b e5                	mov    %ebp,%esp
5b01e7:	5d                   	pop    %ebp
5b01e8:	c2 08 00             	ret    $0x8
5b01eb:	00 00                	add    %al,(%eax)
5b01ed:	00 b4 42 00 00 b4 c2 	add    %dh,-0x3d4c0000(%edx,%eax,2)
5b01f4:	00 00                	add    %al,(%eax)
5b01f6:	87 43 00             	xchg   %eax,0x0(%ebx)
5b01f9:	00 34 43             	add    %dh,(%ebx,%eax,2)
5b01fc:	00 00                	add    %al,(%eax)