546059:	d8 25 10 6c 54 00    	fsubs  0x546c10
54605f:	83 c4 f8             	add    $0xfffffff8,%esp
546062:	dd 1c 24             	fstpl  (%esp)
546065:	e8 aa 03 fe ff       	call   0x526414
54606a:	83 c4 08             	add    $0x8,%esp
54606d:	dc 1d 14 6c 54 00    	fcompl 0x546c14
546073:	df e0                	fnstsw %ax
546075:	9e                   	sahf
546076:	73 3f                	jae    0x5460b7
546078:	33 d2                	xor    %edx,%edx
54607a:	89 54 24 0c          	mov    %edx,0xc(%esp)
54607e:	33 d2                	xor    %edx,%edx
546080:	8b 83 48 01 00 00    	mov    0x148(%ebx),%eax
546086:	eb 15                	jmp    0x54609d
546088:	8a 08                	mov    (%eax),%cl
54608a:	84 c9                	test   %cl,%cl
54608c:	74 0d                	je     0x54609b
54608e:	80 f9 ff             	cmp    $0xff,%cl
546091:	74 08                	je     0x54609b
546093:	c7 44 24 0c 01 00 00 	movl   $0x1,0xc(%esp)
54609a:	00
54609b:	42                   	inc    %edx
54609c:	40                   	inc    %eax
54609d:	0f b7 8b da 00 00 00 	movzwl 0xda(%ebx),%ecx
5460a4:	3b d1                	cmp    %ecx,%edx
5460a6:	7c e0                	jl     0x546088
5460a8:	8b 44 24 0c          	mov    0xc(%esp),%eax
5460ac:	85 c0                	test   %eax,%eax
5460ae:	75 07                	jne    0x5460b7
5460b0:	81 63 30 ff df ff ff 	andl   $0xffffdfff,0x30(%ebx)
5460b7:	f7 43 30 00 20 60 00 	testl  $0x602000,0x30(%ebx)
5460be:	0f 84 d8 08 00 00    	je     0x54699c
5460c4:	8b c3                	mov    %ebx,%eax
5460c6:	e8 e9 43 00 00       	call   0x54a4b4
5460cb:	f6 43 30 80          	testb  $0x80,0x30(%ebx)
5460cf:	0f 84 5e 08 00 00    	je     0x546933
5460d5:	8b 14 24             	mov    (%esp),%edx
5460d8:	83 fa 03             	cmp    $0x3,%edx
5460db:	0f 85 05 05 00 00    	jne    0x5465e6
5460e1:	8b 8b d4 00 00 00    	mov    0xd4(%ebx),%ecx
5460e7:	89 4c 24 18          	mov    %ecx,0x18(%esp)
5460eb:	0f b7 83 d8 00 00 00 	movzwl 0xd8(%ebx),%eax
5460f2:	89 44 24 1c          	mov    %eax,0x1c(%esp)
5460f6:	8a 93 f0 00 00 00    	mov    0xf0(%ebx),%dl
5460fc:	80 fa 02             	cmp    $0x2,%dl
5460ff:	75 7d                	jne    0x54617e
546101:	0f b7 8b fa 00 00 00 	movzwl 0xfa(%ebx),%ecx
546108:	8b 83 24 01 00 00    	mov    0x124(%ebx),%eax
54610e:	8a 14 08             	mov    (%eax,%ecx,1),%dl
546111:	88 54 24 10          	mov    %dl,0x10(%esp)
546115:	0f b7 8b fc 00 00 00 	movzwl 0xfc(%ebx),%ecx
54611c:	8b 83 24 01 00 00    	mov    0x124(%ebx),%eax
546122:	8a 14 08             	mov    (%eax,%ecx,1),%dl
546125:	88 54 24 11          	mov    %dl,0x11(%esp)
546129:	0f b7 8b fe 00 00 00 	movzwl 0xfe(%ebx),%ecx
546130:	8b 83 24 01 00 00    	mov    0x124(%ebx),%eax
546136:	8a 14 08             	mov    (%eax,%ecx,1),%dl
546139:	88 54 24 12          	mov    %dl,0x12(%esp)
54613d:	0f b7 8b fa 00 00 00 	movzwl 0xfa(%ebx),%ecx
546144:	8b 83 2c 01 00 00    	mov    0x12c(%ebx),%eax
54614a:	8a 14 08             	mov    (%eax,%ecx,1),%dl
54614d:	88 54 24 13          	mov    %dl,0x13(%esp)
546151:	0f b7 8b fc 00 00 00 	movzwl 0xfc(%ebx),%ecx
546158:	8b 83 2c 01 00 00    	mov    0x12c(%ebx),%eax
54615e:	8a 14 08             	mov    (%eax,%ecx,1),%dl
546161:	88 54 24 14          	mov    %dl,0x14(%esp)
546165:	0f b7 8b fe 00 00 00 	movzwl 0xfe(%ebx),%ecx
54616c:	8b 83 2c 01 00 00    	mov    0x12c(%ebx),%eax
546172:	8a 14 08             	mov    (%eax,%ecx,1),%dl
546175:	88 54 24 15          	mov    %dl,0x15(%esp)
546179:	e9 78 02 00 00       	jmp    0x5463f6
54617e:	8a 8b f0 00 00 00    	mov    0xf0(%ebx),%cl
546184:	fe c9                	dec    %cl
546186:	74 0a                	je     0x546192
546188:	fe c9                	dec    %cl
54618a:	74 20                	je     0x5461ac
54618c:	fe c9                	dec    %cl
54618e:	74 44                	je     0x5461d4
546190:	eb 6a                	jmp    0x5461fc
546192:	d9 83 20 01 00 00    	flds   0x120(%ebx)
546198:	dd 5c 24 20          	fstpl  0x20(%esp)
54619c:	33 c0                	xor    %eax,%eax
54619e:	89 44 24 28          	mov    %eax,0x28(%esp)
5461a2:	c7 44 24 2c 00 00 f0 	movl   $0x3ff00000,0x2c(%esp)
5461a9:	3f
5461aa:	eb 6c                	jmp    0x546218
5461ac:	d9 05 10 6c 54 00    	flds   0x546c10
5461b2:	d8 b3 1c 01 00 00    	fdivs  0x11c(%ebx)
5461b8:	dd 5c 24 20          	fstpl  0x20(%esp)
5461bc:	d9 83 1c 01 00 00    	flds   0x11c(%ebx)
5461c2:	d8 8b 20 01 00 00    	fmuls  0x120(%ebx)
5461c8:	d8 3d 10 6c 54 00    	fdivrs 0x546c10
5461ce:	dd 5c 24 28          	fstpl  0x28(%esp)
5461d2:	eb 44                	jmp    0x546218
5461d4:	d9 05 10 6c 54 00    	flds   0x546c10
5461da:	d8 b3 f4 00 00 00    	fdivs  0xf4(%ebx)
5461e0:	dd 5c 24 20          	fstpl  0x20(%esp)
5461e4:	d9 83 f4 00 00 00    	flds   0xf4(%ebx)
5461ea:	d8 8b 20 01 00 00    	fmuls  0x120(%ebx)
5461f0:	d8 3d 10 6c 54 00    	fdivrs 0x546c10
5461f6:	dd 5c 24 28          	fstpl  0x28(%esp)
5461fa:	eb 1c                	jmp    0x546218
5461fc:	33 d2                	xor    %edx,%edx
5461fe:	33 c9                	xor    %ecx,%ecx
546200:	89 54 24 20          	mov    %edx,0x20(%esp)
546204:	c7 44 24 24 00 00 f0 	movl   $0x3ff00000,0x24(%esp)
54620b:	3f
54620c:	89 4c 24 28          	mov    %ecx,0x28(%esp)
546210:	c7 44 24 2c 00 00 f0 	movl   $0x3ff00000,0x2c(%esp)
546217:	3f
546218:	dd 44 24 28          	fldl   0x28(%esp)
54621c:	d8 25 10 6c 54 00    	fsubs  0x546c10
546222:	83 c4 f8             	add    $0xfffffff8,%esp
546225:	dd 1c 24             	fstpl  (%esp)
546228:	e8 e7 01 fe ff       	call   0x526414
54622d:	83 c4 08             	add    $0x8,%esp
546230:	dc 1d 14 6c 54 00    	fcompl 0x546c14
546236:	df e0                	fnstsw %ax
546238:	9e                   	sahf
546239:	73 23                	jae    0x54625e
54623b:	8a 93 fa 00 00 00    	mov    0xfa(%ebx),%dl
546241:	88 54 24 10          	mov    %dl,0x10(%esp)
546245:	8a 8b fc 00 00 00    	mov    0xfc(%ebx),%cl
54624b:	88 4c 24 11          	mov    %cl,0x11(%esp)
54624f:	8a 83 fe 00 00 00    	mov    0xfe(%ebx),%al
546255:	88 44 24 12          	mov    %al,0x12(%esp)
546259:	e9 c6 00 00 00       	jmp    0x546324
54625e:	ff 74 24 2c          	push   0x2c(%esp)
546262:	ff 74 24 2c          	push   0x2c(%esp)
546266:	0f b7 8b fa 00 00 00 	movzwl 0xfa(%ebx),%ecx
54626d:	89 4c 24 70          	mov    %ecx,0x70(%esp)
546271:	db 44 24 70          	fildl  0x70(%esp)
546275:	db 2d 1c 6c 54 00    	fldt   0x546c1c
54627b:	de c9                	fmulp  %st,%st(1)
54627d:	83 c4 f8             	add    $0xfffffff8,%esp
546280:	dd 1c 24             	fstpl  (%esp)
546283:	e8 d0 01 fe ff       	call   0x526458
546288:	83 c4 10             	add    $0x10,%esp
54628b:	d8 0d 28 6c 54 00    	fmuls  0x546c28
546291:	d8 05 2c 6c 54 00    	fadds  0x546c2c
546297:	e8 7c 02 fe ff       	call   0x526518
54629c:	88 44 24 10          	mov    %al,0x10(%esp)
5462a0:	ff 74 24 2c          	push   0x2c(%esp)
5462a4:	ff 74 24 2c          	push   0x2c(%esp)
5462a8:	0f b7 8b fc 00 00 00 	movzwl 0xfc(%ebx),%ecx
5462af:	89 4c 24 74          	mov    %ecx,0x74(%esp)
5462b3:	db 44 24 74          	fildl  0x74(%esp)
5462b7:	db 2d 1c 6c 54 00    	fldt   0x546c1c
5462bd:	de c9                	fmulp  %st,%st(1)
5462bf:	83 c4 f8             	add    $0xfffffff8,%esp
5462c2:	dd 1c 24             	fstpl  (%esp)
5462c5:	e8 8e 01 fe ff       	call   0x526458
5462ca:	83 c4 10             	add    $0x10,%esp
5462cd:	d8 0d 28 6c 54 00    	fmuls  0x546c28
5462d3:	d8 05 2c 6c 54 00    	fadds  0x546c2c
5462d9:	e8 3a 02 fe ff       	call   0x526518
5462de:	88 44 24 11          	mov    %al,0x11(%esp)
5462e2:	ff 74 24 2c          	push   0x2c(%esp)
5462e6:	ff 74 24 2c          	push   0x2c(%esp)
5462ea:	0f b7 8b fe 00 00 00 	movzwl 0xfe(%ebx),%ecx
5462f1:	89 4c 24 78          	mov    %ecx,0x78(%esp)
5462f5:	db 44 24 78          	fildl  0x78(%esp)
5462f9:	db 2d 1c 6c 54 00    	fldt   0x546c1c
5462ff:	de c9                	fmulp  %st,%st(1)
546301:	83 c4 f8             	add    $0xfffffff8,%esp
546304:	dd 1c 24             	fstpl  (%esp)
546307:	e8 4c 01 fe ff       	call   0x526458
54630c:	83 c4 10             	add    $0x10,%esp
54630f:	d8 0d 28 6c 54 00    	fmuls  0x546c28
546315:	d8 05 2c 6c 54 00    	fadds  0x546c2c
54631b:	e8 f8 01 fe ff       	call   0x526518
546320:	88 44 24 12          	mov    %al,0x12(%esp)
546324:	ff 74 24 24          	push   0x24(%esp)
546328:	ff 74 24 24          	push   0x24(%esp)
54632c:	0f b7 8b fa 00 00 00 	movzwl 0xfa(%ebx),%ecx
546333:	89 4c 24 7c          	mov    %ecx,0x7c(%esp)
546337:	db 44 24 7c          	fildl  0x7c(%esp)
54633b:	db 2d 1c 6c 54 00    	fldt   0x546c1c
546341:	de c9                	fmulp  %st,%st(1)
546343:	83 c4 f8             	add    $0xfffffff8,%esp
546346:	dd 1c 24             	fstpl  (%esp)
546349:	e8 0a 01 fe ff       	call   0x526458
54634e:	83 c4 10             	add    $0x10,%esp
546351:	d8 0d 28 6c 54 00    	fmuls  0x546c28
546357:	d8 05 2c 6c 54 00    	fadds  0x546c2c
54635d:	e8 b6 01 fe ff       	call   0x526518
546362:	88 44 24 13          	mov    %al,0x13(%esp)
546366:	ff 74 24 24          	push   0x24(%esp)
54636a:	ff 74 24 24          	push   0x24(%esp)
54636e:	0f b7 8b fc 00 00 00 	movzwl 0xfc(%ebx),%ecx
546375:	89 8c 24 80 00 00 00 	mov    %ecx,0x80(%esp)
54637c:	db 84 24 80 00 00 00 	fildl  0x80(%esp)
546383:	db 2d 1c 6c 54 00    	fldt   0x546c1c
546389:	de c9                	fmulp  %st,%st(1)
54638b:	83 c4 f8             	add    $0xfffffff8,%esp
54638e:	dd 1c 24             	fstpl  (%esp)
546391:	e8 c2 00 fe ff       	call   0x526458
546396:	83 c4 10             	add    $0x10,%esp
546399:	d8 0d 28 6c 54 00    	fmuls  0x546c28
54639f:	d8 05 2c 6c 54 00    	fadds  0x546c2c
5463a5:	e8 6e 01 fe ff       	call   0x526518
5463aa:	88 44 24 14          	mov    %al,0x14(%esp)
5463ae:	ff 74 24 24          	push   0x24(%esp)
5463b2:	ff 74 24 24          	push   0x24(%esp)
5463b6:	0f b7 8b fe 00 00 00 	movzwl 0xfe(%ebx),%ecx
5463bd:	89 8c 24 84 00 00 00 	mov    %ecx,0x84(%esp)
5463c4:	db 84 24 84 00 00 00 	fildl  0x84(%esp)
5463cb:	db 2d 1c 6c 54 00    	fldt   0x546c1c
5463d1:	de c9                	fmulp  %st,%st(1)
5463d3:	83 c4 f8             	add    $0xfffffff8,%esp
5463d6:	dd 1c 24             	fstpl  (%esp)
5463d9:	e8 7a 00 fe ff       	call   0x526458
5463de:	83 c4 10             	add    $0x10,%esp
5463e1:	d8 0d 28 6c 54 00    	fmuls  0x546c28
5463e7:	d8 05 2c 6c 54 00    	fadds  0x546c2c
5463ed:	e8 26 01 fe ff       	call   0x526518
5463f2:	88 44 24 15          	mov    %al,0x15(%esp)
5463f6:	33 f6                	xor    %esi,%esi
5463f8:	8b 44 24 18          	mov    0x18(%esp),%eax
5463fc:	8b 54 24 1c          	mov    0x1c(%esp),%edx
546400:	3b f2                	cmp    %edx,%esi
546402:	0f 8d 2a 07 00 00    	jge    0x546b32
546408:	0f b7 8b da 00 00 00 	movzwl 0xda(%ebx),%ecx
54640f:	3b f1                	cmp    %ecx,%esi
546411:	0f 8d 89 01 00 00    	jge    0x5465a0
546417:	8b 93 48 01 00 00    	mov    0x148(%ebx),%edx
54641d:	8a 0c 32             	mov    (%edx,%esi,1),%cl
546420:	80 f9 ff             	cmp    $0xff,%cl
546423:	0f 84 77 01 00 00    	je     0x5465a0
546429:	8b 93 48 01 00 00    	mov    0x148(%ebx),%edx
54642f:	8a 0c 32             	mov    (%edx,%esi,1),%cl
546432:	84 c9                	test   %cl,%cl
546434:	75 14                	jne    0x54644a
546436:	66 8b 54 24 10       	mov    0x10(%esp),%dx
54643b:	66 89 10             	mov    %dx,(%eax)
54643e:	8a 54 24 12          	mov    0x12(%esp),%dl
546442:	88 50 02             	mov    %dl,0x2(%eax)
546445:	e9 87 01 00 00       	jmp    0x5465d1
54644a:	33 c9                	xor    %ecx,%ecx
54644c:	8a 08                	mov    (%eax),%cl
54644e:	8b 93 2c 01 00 00    	mov    0x12c(%ebx),%edx
546454:	8a 0c 0a             	mov    (%edx,%ecx,1),%cl
546457:	8b 93 48 01 00 00    	mov    0x148(%ebx),%edx
54645d:	81 e1 ff 00 00 00    	and    $0xff,%ecx
546463:	0f b7 c9             	movzwl %cx,%ecx
546466:	0f b6 14 32          	movzbl (%edx,%esi,1),%edx
54646a:	0f b7 d2             	movzwl %dx,%edx
54646d:	0f af d1             	imul   %ecx,%edx
546470:	8b 8b 48 01 00 00    	mov    0x148(%ebx),%ecx
546476:	66 bf ff 00          	mov    $0xff,%di
54647a:	0f b6 0c 31          	movzbl (%ecx,%esi,1),%ecx
54647e:	66 2b f9             	sub    %cx,%di
546481:	0f b7 cf             	movzwl %di,%ecx
546484:	0f b6 7c 24 13       	movzbl 0x13(%esp),%edi
546489:	0f b7 ff             	movzwl %di,%edi
54648c:	0f af cf             	imul   %edi,%ecx
54648f:	66 03 d1             	add    %cx,%dx
546492:	66 81 c2 80 00       	add    $0x80,%dx
546497:	0f b7 ca             	movzwl %dx,%ecx
54649a:	0f b7 d2             	movzwl %dx,%edx
54649d:	c1 fa 08             	sar    $0x8,%edx
5464a0:	03 ca                	add    %edx,%ecx
5464a2:	c1 f9 08             	sar    $0x8,%ecx
5464a5:	88 4c 24 30          	mov    %cl,0x30(%esp)
5464a9:	33 d2                	xor    %edx,%edx
5464ab:	8a 54 24 30          	mov    0x30(%esp),%dl
5464af:	8b 8b 28 01 00 00    	mov    0x128(%ebx),%ecx
5464b5:	8a 14 11             	mov    (%ecx,%edx,1),%dl
5464b8:	88 10                	mov    %dl,(%eax)
5464ba:	33 c9                	xor    %ecx,%ecx
5464bc:	8a 48 01             	mov    0x1(%eax),%cl
5464bf:	8b 93 2c 01 00 00    	mov    0x12c(%ebx),%edx
5464c5:	8a 0c 0a             	mov    (%edx,%ecx,1),%cl
5464c8:	8b 93 48 01 00 00    	mov    0x148(%ebx),%edx
5464ce:	81 e1 ff 00 00 00    	and    $0xff,%ecx
5464d4:	0f b7 c9             	movzwl %cx,%ecx
5464d7:	0f b6 14 32          	movzbl (%edx,%esi,1),%edx
5464db:	0f b7 d2             	movzwl %dx,%edx
5464de:	0f af d1             	imul   %ecx,%edx
5464e1:	8b 8b 48 01 00 00    	mov    0x148(%ebx),%ecx
5464e7:	66 bf ff 00          	mov    $0xff,%di
5464eb:	0f b6 0c 31          	movzbl (%ecx,%esi,1),%ecx
5464ef:	66 2b f9             	sub    %cx,%di
5464f2:	0f b7 cf             	movzwl %di,%ecx
5464f5:	0f b6 7c 24 14       	movzbl 0x14(%esp),%edi
5464fa:	0f b7 ff             	movzwl %di,%edi
5464fd:	0f af cf             	imul   %edi,%ecx
546500:	66 03 d1             	add    %cx,%dx
546503:	66 81 c2 80 00       	add    $0x80,%dx
546508:	0f b7 ca             	movzwl %dx,%ecx
54650b:	0f b7 d2             	movzwl %dx,%edx
54650e:	c1 fa 08             	sar    $0x8,%edx
546511:	03 ca                	add    %edx,%ecx
546513:	c1 f9 08             	sar    $0x8,%ecx
546516:	88 4c 24 30          	mov    %cl,0x30(%esp)
54651a:	33 d2                	xor    %edx,%edx
54651c:	8a 54 24 30          	mov    0x30(%esp),%dl
546520:	8b 8b 28 01 00 00    	mov    0x128(%ebx),%ecx
546526:	8a 14 11             	mov    (%ecx,%edx,1),%dl
546529:	88 50 01             	mov    %dl,0x1(%eax)
54652c:	33 c9                	xor    %ecx,%ecx
54652e:	8a 48 02             	mov    0x2(%eax),%cl
546531:	8b 93 2c 01 00 00    	mov    0x12c(%ebx),%edx
546537:	8a 0c 0a             	mov    (%edx,%ecx,1),%cl
54653a:	8b 93 48 01 00 00    	mov    0x148(%ebx),%edx
546540:	81 e1 ff 00 00 00    	and    $0xff,%ecx
546546:	0f b7 c9             	movzwl %cx,%ecx
546549:	0f b6 14 32          	movzbl (%edx,%esi,1),%edx
54654d:	0f b7 d2             	movzwl %dx,%edx
546550:	0f af d1             	imul   %ecx,%edx
546553:	8b 8b 48 01 00 00    	mov    0x148(%ebx),%ecx
546559:	66 bf ff 00          	mov    $0xff,%di
54655d:	0f b6 0c 31          	movzbl (%ecx,%esi,1),%ecx
546561:	66 2b f9             	sub    %cx,%di
546564:	0f b7 cf             	movzwl %di,%ecx
546567:	0f b6 7c 24 15       	movzbl 0x15(%esp),%edi
54656c:	0f b7 ff             	movzwl %di,%edi
54656f:	0f af cf             	imul   %edi,%ecx
546572:	66 03 d1             	add    %cx,%dx
546575:	66 81 c2 80 00       	add    $0x80,%dx
54657a:	0f b7 ca             	movzwl %dx,%ecx
54657d:	0f b7 d2             	movzwl %dx,%edx
546580:	c1 fa 08             	sar    $0x8,%edx
546583:	03 ca                	add    %edx,%ecx
546585:	c1 f9 08             	sar    $0x8,%ecx
546588:	88 4c 24 30          	mov    %cl,0x30(%esp)
54658c:	33 d2                	xor    %edx,%edx
54658e:	8a 54 24 30          	mov    0x30(%esp),%dl
546592:	8b 8b 28 01 00 00    	mov    0x128(%ebx),%ecx
546598:	8a 14 11             	mov    (%ecx,%edx,1),%dl
54659b:	88 50 02             	mov    %dl,0x2(%eax)
54659e:	eb 31                	jmp    0x5465d1
5465a0:	33 c9                	xor    %ecx,%ecx
5465a2:	8a 08                	mov    (%eax),%cl
5465a4:	8b 93 24 01 00 00    	mov    0x124(%ebx),%edx
5465aa:	8a 0c 0a             	mov    (%edx,%ecx,1),%cl
5465ad:	88 08                	mov    %cl,(%eax)
5465af:	33 d2                	xor    %edx,%edx
5465b1:	8a 50 01             	mov    0x1(%eax),%dl
5465b4:	8b 8b 24 01 00 00    	mov    0x124(%ebx),%ecx
5465ba:	8a 14 11             	mov    (%ecx,%edx,1),%dl
5465bd:	88 50 01             	mov    %dl,0x1(%eax)
5465c0:	33 c9                	xor    %ecx,%ecx
5465c2:	8a 48 02             	mov    0x2(%eax),%cl
5465c5:	8b 93 24 01 00 00    	mov    0x124(%ebx),%edx
5465cb:	8a 0c 0a             	mov    (%edx,%ecx,1),%cl
5465ce:	88 48 02             	mov    %cl,0x2(%eax)
5465d1:	46                   	inc    %esi
5465d2:	83 c0 03             	add    $0x3,%eax
5465d5:	8b 54 24 1c          	mov    0x1c(%esp),%edx