5ffd43:	8b 45 f8             	mov    -0x8(%ebp),%eax
5ffd46:	8b 55 e8             	mov    -0x18(%ebp),%edx
5ffd49:	8b 54 90 fc          	mov    -0x4(%eax,%edx,4),%edx
5ffd4d:	8b 45 f8             	mov    -0x8(%ebp),%eax
5ffd50:	8b 4d e8             	mov    -0x18(%ebp),%ecx
5ffd53:	8b 04 88             	mov    (%eax,%ecx,4),%eax
5ffd56:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
5ffd59:	e8 62 81 e0 ff       	call   0x407ec0
5ffd5e:	e9 6e 01 00 00       	jmp    0x5ffed1
5ffd63:	8b 55 f8             	mov    -0x8(%ebp),%edx
5ffd66:	8b 4d e8             	mov    -0x18(%ebp),%ecx
5ffd69:	8b 1c 8a             	mov    (%edx,%ecx,4),%ebx
5ffd6c:	8b 55 24             	mov    0x24(%ebp),%edx
5ffd6f:	8d 14 52             	lea    (%edx,%edx,2),%edx
5ffd72:	03 da                	add    %edx,%ebx
5ffd74:	8b d0                	mov    %eax,%edx
5ffd76:	8b 45 fc             	mov    -0x4(%ebp),%eax
5ffd79:	8b 08                	mov    (%eax),%ecx
5ffd7b:	ff 11                	call   *(%ecx)
5ffd7d:	89 45 d4             	mov    %eax,-0x2c(%ebp)
5ffd80:	80 7d 44 00          	cmpb   $0x0,0x44(%ebp)
5ffd84:	74 16                	je     0x5ffd9c
5ffd86:	8b 45 fc             	mov    -0x4(%ebp),%eax
5ffd89:	e8 4a 7b ff ff       	call   0x5f78d8
5ffd8e:	8b 55 f0             	mov    -0x10(%ebp),%edx
5ffd91:	8b 12                	mov    (%edx),%edx
5ffd93:	8b 08                	mov    (%eax),%ecx
5ffd95:	ff 11                	call   *(%ecx)
5ffd97:	89 45 d0             	mov    %eax,-0x30(%ebp)
5ffd9a:	eb 06                	jmp    0x5ffda2
5ffd9c:	8b 45 40             	mov    0x40(%ebp),%eax
5ffd9f:	89 45 d0             	mov    %eax,-0x30(%ebp)
5ffda2:	8b 75 ec             	mov    -0x14(%ebp),%esi
5ffda5:	8b 45 24             	mov    0x24(%ebp),%eax
5ffda8:	8b 55 1c             	mov    0x1c(%ebp),%edx
5ffdab:	2b d0                	sub    %eax,%edx
5ffdad:	0f 8c 19 01 00 00    	jl     0x5ffecc
5ffdb3:	42                   	inc    %edx
5ffdb4:	89 55 bc             	mov    %edx,-0x44(%ebp)
5ffdb7:	8b 45 d0             	mov    -0x30(%ebp),%eax
5ffdba:	8b 16                	mov    (%esi),%edx
5ffdbc:	0f b6 14 10          	movzbl (%eax,%edx,1),%edx
5ffdc0:	8b 45 48             	mov    0x48(%ebp),%eax
5ffdc3:	e8 54 96 fa ff       	call   0x5a941c
5ffdc8:	8b f8                	mov    %eax,%edi
5ffdca:	c1 e7 0a             	shl    $0xa,%edi
5ffdcd:	8b 06                	mov    (%esi),%eax
5ffdcf:	8d 04 40             	lea    (%eax,%eax,2),%eax
5ffdd2:	8b 55 d4             	mov    -0x2c(%ebp),%edx
5ffdd5:	0f b6 44 02 02       	movzbl 0x2(%edx,%eax,1),%eax
5ffdda:	8b 55 fc             	mov    -0x4(%ebp),%edx
5ffddd:	03 42 68             	add    0x68(%edx),%eax
5ffde0:	2d 80 00 00 00       	sub    $0x80,%eax
5ffde5:	f7 6d c4             	imull  -0x3c(%ebp)
5ffde8:	85 c0                	test   %eax,%eax
5ffdea:	79 05                	jns    0x5ffdf1
5ffdec:	05 ff ff 00 00       	add    $0xffff,%eax
5ffdf1:	c1 f8 10             	sar    $0x10,%eax
5ffdf4:	05 80 00 00 00       	add    $0x80,%eax
5ffdf9:	e8 36 96 fa ff       	call   0x5a9434
5ffdfe:	88 45 e3             	mov    %al,-0x1d(%ebp)
5ffe01:	8b 06                	mov    (%esi),%eax
5ffe03:	8d 04 40             	lea    (%eax,%eax,2),%eax
5ffe06:	8b 55 d4             	mov    -0x2c(%ebp),%edx
5ffe09:	0f b6 44 02 01       	movzbl 0x1(%edx,%eax,1),%eax
5ffe0e:	8b 55 fc             	mov    -0x4(%ebp),%edx
5ffe11:	03 42 6c             	add    0x6c(%edx),%eax
5ffe14:	2d 80 00 00 00       	sub    $0x80,%eax
5ffe19:	f7 6d c4             	imull  -0x3c(%ebp)
5ffe1c:	85 c0                	test   %eax,%eax
5ffe1e:	79 05                	jns    0x5ffe25
5ffe20:	05 ff ff 00 00       	add    $0xffff,%eax
5ffe25:	c1 f8 10             	sar    $0x10,%eax
5ffe28:	05 80 00 00 00       	add    $0x80,%eax
5ffe2d:	e8 02 96 fa ff       	call   0x5a9434
5ffe32:	88 45 e2             	mov    %al,-0x1e(%ebp)
5ffe35:	8b 06                	mov    (%esi),%eax
5ffe37:	8d 04 40             	lea    (%eax,%eax,2),%eax
5ffe3a:	8b 55 d4             	mov    -0x2c(%ebp),%edx
5ffe3d:	0f b6 04 02          	movzbl (%edx,%eax,1),%eax
5ffe41:	8b 55 fc             	mov    -0x4(%ebp),%edx
5ffe44:	03 42 70             	add    0x70(%edx),%eax
5ffe47:	2d 80 00 00 00       	sub    $0x80,%eax
5ffe4c:	f7 6d c4             	imull  -0x3c(%ebp)
5ffe4f:	85 c0                	test   %eax,%eax
5ffe51:	79 05                	jns    0x5ffe58
5ffe53:	05 ff ff 00 00       	add    $0xffff,%eax
5ffe58:	c1 f8 10             	sar    $0x10,%eax
5ffe5b:	05 80 00 00 00       	add    $0x80,%eax
5ffe60:	e8 cf 95 fa ff       	call   0x5a9434
5ffe65:	88 45 e1             	mov    %al,-0x1f(%ebp)
5ffe68:	66 8b 03             	mov    (%ebx),%ax
5ffe6b:	66 89 45 de          	mov    %ax,-0x22(%ebp)
5ffe6f:	8a 43 02             	mov    0x2(%ebx),%al
5ffe72:	88 45 e0             	mov    %al,-0x20(%ebp)
5ffe75:	8d 55 de             	lea    -0x22(%ebp),%edx
5ffe78:	8d 45 e1             	lea    -0x1f(%ebp),%eax
5ffe7b:	8a 4d 08             	mov    0x8(%ebp),%cl
5ffe7e:	e8 05 f0 ff ff       	call   0x5fee88
5ffe83:	33 c0                	xor    %eax,%eax
5ffe85:	8a 45 e0             	mov    -0x20(%ebp),%al
5ffe88:	33 d2                	xor    %edx,%edx
5ffe8a:	8a 53 02             	mov    0x2(%ebx),%dl
5ffe8d:	2b c2                	sub    %edx,%eax
5ffe8f:	f7 ef                	imul   %edi
5ffe91:	c1 e8 12             	shr    $0x12,%eax
5ffe94:	00 43 02             	add    %al,0x2(%ebx)
5ffe97:	33 c0                	xor    %eax,%eax
5ffe99:	8a 45 df             	mov    -0x21(%ebp),%al
5ffe9c:	33 d2                	xor    %edx,%edx
5ffe9e:	8a 53 01             	mov    0x1(%ebx),%dl
5ffea1:	2b c2                	sub    %edx,%eax
5ffea3:	f7 ef                	imul   %edi
5ffea5:	c1 e8 12             	shr    $0x12,%eax
5ffea8:	00 43 01             	add    %al,0x1(%ebx)
5ffeab:	33 c0                	xor    %eax,%eax
5ffead:	8a 45 de             	mov    -0x22(%ebp),%al
5ffeb0:	33 d2                	xor    %edx,%edx
5ffeb2:	8a 13                	mov    (%ebx),%dl
5ffeb4:	2b c2                	sub    %edx,%eax
5ffeb6:	f7 ef                	imul   %edi
5ffeb8:	c1 e8 12             	shr    $0x12,%eax
5ffebb:	00 03                	add    %al,(%ebx)
5ffebd:	83 c3 03             	add    $0x3,%ebx
5ffec0:	83 c6 04             	add    $0x4,%esi
5ffec3:	ff 4d bc             	decl   -0x44(%ebp)
5ffec6:	0f 85 eb fe ff ff    	jne    0x5ffdb7
5ffecc:	8b 45 f0             	mov    -0x10(%ebp),%eax
5ffecf:	8b 18                	mov    (%eax),%ebx
5ffed1:	83 45 f0 04          	addl   $0x4,-0x10(%ebp)
5ffed5:	ff 45 e8             	incl   -0x18(%ebp)
5ffed8:	ff 4d c0             	decl   -0x40(%ebp)
5ffedb:	0f 85 53 fe ff ff    	jne    0x5ffd34
5ffee1:	e9 20 01 00 00       	jmp    0x600006
5ffee6:	89 75 f0             	mov    %esi,-0x10(%ebp)
5ffee9:	8b 45 18             	mov    0x18(%ebp),%eax
5ffeec:	2b c7                	sub    %edi,%eax
5ffeee:	0f 8c 12 01 00 00    	jl     0x600006
5ffef4:	40                   	inc    %eax
5ffef5:	89 45 c0             	mov    %eax,-0x40(%ebp)
5ffef8:	89 7d e8             	mov    %edi,-0x18(%ebp)
5ffefb:	8b 45 f0             	mov    -0x10(%ebp),%eax
5ffefe:	8b 00                	mov    (%eax),%eax
5fff00:	3b d8                	cmp    %eax,%ebx
5fff02:	0f 94 c2             	sete   %dl
5fff05:	22 55 0c             	and    0xc(%ebp),%dl
5fff08:	74 20                	je     0x5fff2a
5fff0a:	8b 45 f8             	mov    -0x8(%ebp),%eax
5fff0d:	8b 55 e8             	mov    -0x18(%ebp),%edx
5fff10:	8b 54 90 fc          	mov    -0x4(%eax,%edx,4),%edx
5fff14:	8b 45 f8             	mov    -0x8(%ebp),%eax
5fff17:	8b 4d e8             	mov    -0x18(%ebp),%ecx
5fff1a:	8b 04 88             	mov    (%eax,%ecx,4),%eax
5fff1d:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
5fff20:	e8 9b 7f e0 ff       	call   0x407ec0
5fff25:	e9 cc 00 00 00       	jmp    0x5ffff6
5fff2a:	8b 55 f8             	mov    -0x8(%ebp),%edx
5fff2d:	8b 4d e8             	mov    -0x18(%ebp),%ecx
5fff30:	8b 1c 8a             	mov    (%edx,%ecx,4),%ebx
5fff33:	8b 55 24             	mov    0x24(%ebp),%edx
5fff36:	8d 14 52             	lea    (%edx,%edx,2),%edx
5fff39:	03 da                	add    %edx,%ebx
5fff3b:	8b d0                	mov    %eax,%edx
5fff3d:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fff40:	8b 08                	mov    (%eax),%ecx
5fff42:	ff 11                	call   *(%ecx)
5fff44:	89 45 d4             	mov    %eax,-0x2c(%ebp)
5fff47:	80 7d 44 00          	cmpb   $0x0,0x44(%ebp)
5fff4b:	74 16                	je     0x5fff63
5fff4d:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fff50:	e8 83 79 ff ff       	call   0x5f78d8
5fff55:	8b 55 f0             	mov    -0x10(%ebp),%edx
5fff58:	8b 12                	mov    (%edx),%edx
5fff5a:	8b 08                	mov    (%eax),%ecx
5fff5c:	ff 11                	call   *(%ecx)
5fff5e:	89 45 d0             	mov    %eax,-0x30(%ebp)
5fff61:	eb 06                	jmp    0x5fff69
5fff63:	8b 45 40             	mov    0x40(%ebp),%eax
5fff66:	89 45 d0             	mov    %eax,-0x30(%ebp)
5fff69:	8b 75 ec             	mov    -0x14(%ebp),%esi
5fff6c:	8b 45 24             	mov    0x24(%ebp),%eax
5fff6f:	8b 55 1c             	mov    0x1c(%ebp),%edx
5fff72:	2b d0                	sub    %eax,%edx
5fff74:	7c 7b                	jl     0x5ffff1
5fff76:	42                   	inc    %edx
5fff77:	89 55 bc             	mov    %edx,-0x44(%ebp)
5fff7a:	8b 45 d0             	mov    -0x30(%ebp),%eax
5fff7d:	8b 16                	mov    (%esi),%edx
5fff7f:	0f b6 14 10          	movzbl (%eax,%edx,1),%edx
5fff83:	8b 45 48             	mov    0x48(%ebp),%eax
5fff86:	e8 91 94 fa ff       	call   0x5a941c
5fff8b:	8b f8                	mov    %eax,%edi
5fff8d:	c1 e7 0a             	shl    $0xa,%edi
5fff90:	8b c3                	mov    %ebx,%eax
5fff92:	8b 16                	mov    (%esi),%edx
5fff94:	8d 14 52             	lea    (%edx,%edx,2),%edx
5fff97:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
5fff9a:	0f b6 54 11 02       	movzbl 0x2(%ecx,%edx,1),%edx
5fff9f:	33 c9                	xor    %ecx,%ecx
5fffa1:	8a 48 02             	mov    0x2(%eax),%cl
5fffa4:	2b d1                	sub    %ecx,%edx
5fffa6:	0f af d7             	imul   %edi,%edx
5fffa9:	c1 ea 12             	shr    $0x12,%edx
5fffac:	00 50 02             	add    %dl,0x2(%eax)
5fffaf:	8b 16                	mov    (%esi),%edx
5fffb1:	8d 14 52             	lea    (%edx,%edx,2),%edx
5fffb4:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
5fffb7:	0f b6 54 11 01       	movzbl 0x1(%ecx,%edx,1),%edx
5fffbc:	33 c9                	xor    %ecx,%ecx
5fffbe:	8a 48 01             	mov    0x1(%eax),%cl
5fffc1:	2b d1                	sub    %ecx,%edx
5fffc3:	0f af d7             	imul   %edi,%edx
5fffc6:	c1 ea 12             	shr    $0x12,%edx
5fffc9:	00 50 01             	add    %dl,0x1(%eax)
5fffcc:	8b 16                	mov    (%esi),%edx
5fffce:	8d 14 52             	lea    (%edx,%edx,2),%edx
5fffd1:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
5fffd4:	0f b6 14 11          	movzbl (%ecx,%edx,1),%edx
5fffd8:	33 c9                	xor    %ecx,%ecx
5fffda:	8a 08                	mov    (%eax),%cl
5fffdc:	2b d1                	sub    %ecx,%edx
5fffde:	0f af d7             	imul   %edi,%edx
5fffe1:	c1 ea 12             	shr    $0x12,%edx
5fffe4:	00 10                	add    %dl,(%eax)
5fffe6:	83 c3 03             	add    $0x3,%ebx
5fffe9:	83 c6 04             	add    $0x4,%esi
5fffec:	ff 4d bc             	decl   -0x44(%ebp)
5fffef:	75 89                	jne    0x5fff7a
5ffff1:	8b 45 f0             	mov    -0x10(%ebp),%eax
5ffff4:	8b 18                	mov    (%eax),%ebx
5ffff6:	83 45 f0 04          	addl   $0x4,-0x10(%ebp)
5ffffa:	ff 45 e8             	incl   -0x18(%ebp)
5ffffd:	ff 4d c0             	decl   -0x40(%ebp)
600000:	0f 85 f5 fe ff ff    	jne    0x5ffefb
600006:	5f                   	pop    %edi
600007:	5e                   	pop    %esi
600008:	5b                   	pop    %ebx
600009:	8b e5                	mov    %ebp,%esp
60000b:	5d                   	pop    %ebp
60000c:	c2 44 00             	ret    $0x44
60000f:	00 00                	add    %al,(%eax)
600011:	00 20                	add    %ah,(%eax)
600013:	41                   	inc    %ecx
600014:	00 00                	add    %al,(%eax)
600016:	80 3f 00             	cmpb   $0x0,(%edi)
600019:	00 80 47 55 8b ec    	add    %al,-0x1374aab9(%eax)
60001f:	83 c4 d0             	add    $0xffffffd0,%esp
600022:	53                   	push   %ebx
600023:	56                   	push   %esi
600024:	57                   	push   %edi
600025:	89 55 f8             	mov    %edx,-0x8(%ebp)
600028:	89 45 fc             	mov    %eax,-0x4(%ebp)
60002b:	8b 75 18             	mov    0x18(%ebp),%esi
60002e:	8b 5d 20             	mov    0x20(%ebp),%ebx
600031:	8b 45 3c             	mov    0x3c(%ebp),%eax
600034:	89 45 f0             	mov    %eax,-0x10(%ebp)
600037:	8b 7d 38             	mov    0x38(%ebp),%edi
60003a:	8b 45 fc             	mov    -0x4(%ebp),%eax
60003d:	80 78 78 00          	cmpb   $0x0,0x78(%eax)
600041:	75 13                	jne    0x600056
600043:	8b 45 fc             	mov    -0x4(%ebp),%eax
600046:	83 78 7c 00          	cmpl   $0x0,0x7c(%eax)
60004a:	75 0a                	jne    0x600056
60004c:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
600050:	0f 84 61 01 00 00    	je     0x6001b7
600056:	8b 45 fc             	mov    -0x4(%ebp),%eax
600059:	83 78 7c 00          	cmpl   $0x0,0x7c(%eax)
60005d:	7c 18                	jl     0x600077
60005f:	8b 45 fc             	mov    -0x4(%ebp),%eax
600062:	db 40 7c             	fildl  0x7c(%eax)
600065:	d8 35 38 02 60 00    	fdivs  0x600238
60006b:	d8 05 3c 02 60 00    	fadds  0x60023c
600071:	dd 5d d8             	fstpl  -0x28(%ebp)
600074:	9b                   	fwait
600075:	eb 20                	jmp    0x600097
600077:	8b 45 fc             	mov    -0x4(%ebp),%eax
60007a:	8b 40 7c             	mov    0x7c(%eax),%eax
60007d:	f7 d8                	neg    %eax
60007f:	89 45 d0             	mov    %eax,-0x30(%ebp)
600082:	db 45 d0             	fildl  -0x30(%ebp)
600085:	d9 fa                	fsqrt
600087:	d8 35 38 02 60 00    	fdivs  0x600238
60008d:	d8 2d 3c 02 60 00    	fsubrs 0x60023c
600093:	dd 5d d8             	fstpl  -0x28(%ebp)
600096:	9b                   	fwait
600097:	89 7d f4             	mov    %edi,-0xc(%ebp)
60009a:	2b f3                	sub    %ebx,%esi
60009c:	0f 8c 8d 01 00 00    	jl     0x60022f
6000a2:	46                   	inc    %esi
6000a3:	89 75 d4             	mov    %esi,-0x2c(%ebp)
6000a6:	89 5d ec             	mov    %ebx,-0x14(%ebp)
6000a9:	8b 45 f8             	mov    -0x8(%ebp),%eax
6000ac:	8b 55 ec             	mov    -0x14(%ebp),%edx
6000af:	8b 1c 90             	mov    (%eax,%edx,4),%ebx
6000b2:	8b 45 24             	mov    0x24(%ebp),%eax
6000b5:	8d 04 40             	lea    (%eax,%eax,2),%eax
6000b8:	03 d8                	add    %eax,%ebx
6000ba:	8b 45 f4             	mov    -0xc(%ebp),%eax
6000bd:	8b 10                	mov    (%eax),%edx
6000bf:	8b 45 fc             	mov    -0x4(%ebp),%eax
6000c2:	8b 08                	mov    (%eax),%ecx
6000c4:	ff 11                	call   *(%ecx)
6000c6:	89 45 e4             	mov    %eax,-0x1c(%ebp)
6000c9:	8b 75 f0             	mov    -0x10(%ebp),%esi
6000cc:	8b 45 24             	mov    0x24(%ebp),%eax
6000cf:	8b 7d 1c             	mov    0x1c(%ebp),%edi
6000d2:	2b f8                	sub    %eax,%edi
6000d4:	0f 8c cb 00 00 00    	jl     0x6001a5
6000da:	47                   	inc    %edi
6000db:	8b 06                	mov    (%esi),%eax
6000dd:	8d 04 40             	lea    (%eax,%eax,2),%eax
6000e0:	8b 55 e4             	mov    -0x1c(%ebp),%edx
6000e3:	0f b7 04 42          	movzwl (%edx,%eax,2),%eax
6000e7:	8b 55 fc             	mov    -0x4(%ebp),%edx
6000ea:	03 42 68             	add    0x68(%edx),%eax
6000ed:	2d 00 80 00 00       	sub    $0x8000,%eax
6000f2:	89 45 d0             	mov    %eax,-0x30(%ebp)
6000f5:	db 45 d0             	fildl  -0x30(%ebp)
6000f8:	dc 4d d8             	fmull  -0x28(%ebp)
6000fb:	d8 05 40 02 60 00    	fadds  0x600240
600101:	e8 c6 2b e0 ff       	call   0x402ccc
600106:	0f ac d0 08          	shrd   $0x8,%edx,%eax
60010a:	c1 ea 08             	shr    $0x8,%edx
60010d:	e8 22 93 fa ff       	call   0x5a9434
600112:	88 45 eb             	mov    %al,-0x15(%ebp)
600115:	8b 06                	mov    (%esi),%eax
600117:	8d 04 40             	lea    (%eax,%eax,2),%eax
60011a:	8b 55 e4             	mov    -0x1c(%ebp),%edx
60011d:	0f b7 44 42 02       	movzwl 0x2(%edx,%eax,2),%eax
600122:	8b 55 fc             	mov    -0x4(%ebp),%edx
600125:	03 42 6c             	add    0x6c(%edx),%eax
600128:	2d 00 80 00 00       	sub    $0x8000,%eax
60012d:	89 45 d0             	mov    %eax,-0x30(%ebp)
600130:	db 45 d0             	fildl  -0x30(%ebp)
600133:	dc 4d d8             	fmull  -0x28(%ebp)
600136:	d8 05 40 02 60 00    	fadds  0x600240
60013c:	e8 8b 2b e0 ff       	call   0x402ccc
600141:	0f ac d0 08          	shrd   $0x8,%edx,%eax
600145:	c1 ea 08             	shr    $0x8,%edx
600148:	e8 e7 92 fa ff       	call   0x5a9434
60014d:	88 45 ea             	mov    %al,-0x16(%ebp)
600150:	8b 06                	mov    (%esi),%eax
600152:	8d 04 40             	lea    (%eax,%eax,2),%eax
600155:	8b 55 e4             	mov    -0x1c(%ebp),%edx
600158:	0f b7 44 42 04       	movzwl 0x4(%edx,%eax,2),%eax
60015d:	8b 55 fc             	mov    -0x4(%ebp),%edx
600160:	03 42 70             	add    0x70(%edx),%eax
600163:	2d 00 80 00 00       	sub    $0x8000,%eax
600168:	89 45 d0             	mov    %eax,-0x30(%ebp)
60016b:	db 45 d0             	fildl  -0x30(%ebp)