557581:	8b 55 fc             	mov    -0x4(%ebp),%edx
557584:	0f b7 ce             	movzwl %si,%ecx
557587:	0f b7 83 16 24 00 00 	movzwl 0x2416(%ebx),%eax
55758e:	8d 04 03             	lea    (%ebx,%eax,1),%eax
557591:	e8 8a b4 ea ff       	call   0x402a20
557596:	66 01 b3 16 24 00 00 	add    %si,0x2416(%ebx)
55759d:	66 29 b3 14 24 00 00 	sub    %si,0x2414(%ebx)
5575a4:	5f                   	pop    %edi
5575a5:	5e                   	pop    %esi
5575a6:	5b                   	pop    %ebx
5575a7:	59                   	pop    %ecx
5575a8:	5d                   	pop    %ebp
5575a9:	c3                   	ret
5575aa:	8b c0                	mov    %eax,%eax
5575ac:	55                   	push   %ebp
5575ad:	8b ec                	mov    %esp,%ebp
5575af:	53                   	push   %ebx
5575b0:	8b 45 08             	mov    0x8(%ebp),%eax
5575b3:	8b 58 fc             	mov    -0x4(%eax),%ebx
5575b6:	66 83 bb 14 24 00 00 	cmpw   $0x0,0x2414(%ebx)
5575bd:	00
5575be:	75 0a                	jne    0x5575ca
5575c0:	8b 45 08             	mov    0x8(%ebp),%eax
5575c3:	50                   	push   %eax
5575c4:	e8 db fe ff ff       	call   0x5574a4
5575c9:	59                   	pop    %ecx
5575ca:	0f b7 83 16 24 00 00 	movzwl 0x2416(%ebx),%eax
5575d1:	8a 04 03             	mov    (%ebx,%eax,1),%al
5575d4:	66 ff 83 16 24 00 00 	incw   0x2416(%ebx)
5575db:	66 ff 8b 14 24 00 00 	decw   0x2414(%ebx)
5575e2:	5b                   	pop    %ebx
5575e3:	5d                   	pop    %ebp
5575e4:	c3                   	ret
5575e5:	8d 40 00             	lea    0x0(%eax),%eax
5575e8:	55                   	push   %ebp
5575e9:	8b ec                	mov    %esp,%ebp
5575eb:	53                   	push   %ebx
5575ec:	8b 45 08             	mov    0x8(%ebp),%eax
5575ef:	50                   	push   %eax
5575f0:	e8 b7 ff ff ff       	call   0x5575ac
5575f5:	59                   	pop    %ecx
5575f6:	33 db                	xor    %ebx,%ebx
5575f8:	8a d8                	mov    %al,%bl
5575fa:	8b 45 08             	mov    0x8(%ebp),%eax
5575fd:	50                   	push   %eax
5575fe:	e8 a9 ff ff ff       	call   0x5575ac
557603:	59                   	pop    %ecx
557604:	25 ff 00 00 00       	and    $0xff,%eax
557609:	c1 e0 08             	shl    $0x8,%eax
55760c:	66 03 d8             	add    %ax,%bx
55760f:	8b c3                	mov    %ebx,%eax
557611:	5b                   	pop    %ebx
557612:	5d                   	pop    %ebp
557613:	c3                   	ret
557614:	55                   	push   %ebp
557615:	8b ec                	mov    %esp,%ebp
557617:	83 c4 d0             	add    $0xffffffd0,%esp
55761a:	53                   	push   %ebx
55761b:	56                   	push   %esi
55761c:	57                   	push   %edi
55761d:	33 db                	xor    %ebx,%ebx
55761f:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
557622:	89 5d f0             	mov    %ebx,-0x10(%ebp)
557625:	89 4d f4             	mov    %ecx,-0xc(%ebp)
557628:	89 55 f8             	mov    %edx,-0x8(%ebp)
55762b:	89 45 fc             	mov    %eax,-0x4(%ebp)
55762e:	33 c0                	xor    %eax,%eax
557630:	55                   	push   %ebp
557631:	68 cc 7d 55 00       	push   $0x557dcc
557636:	64 ff 30             	push   %fs:(%eax)
557639:	64 89 20             	mov    %esp,%fs:(%eax)
55763c:	8b 45 10             	mov    0x10(%ebp),%eax
55763f:	8b 40 fc             	mov    -0x4(%eax),%eax
557642:	89 45 ec             	mov    %eax,-0x14(%ebp)
557645:	8b 45 10             	mov    0x10(%ebp),%eax
557648:	8b 40 f8             	mov    -0x8(%eax),%eax
55764b:	66 b9 02 00          	mov    $0x2,%cx
55764f:	ba e6 ff ff ff       	mov    $0xffffffe6,%edx
557654:	8b 18                	mov    (%eax),%ebx
557656:	ff 53 10             	call   *0x10(%ebx)
557659:	8b 45 ec             	mov    -0x14(%ebp),%eax
55765c:	8d 90 19 24 00 00    	lea    0x2419(%eax),%edx
557662:	8b 45 10             	mov    0x10(%ebp),%eax
557665:	8b 40 f8             	mov    -0x8(%eax),%eax
557668:	b9 1a 00 00 00       	mov    $0x1a,%ecx
55766d:	8b 18                	mov    (%eax),%ebx
55766f:	ff 53 08             	call   *0x8(%ebx)
557672:	8d 45 e4             	lea    -0x1c(%ebp),%eax
557675:	8b 55 ec             	mov    -0x14(%ebp),%edx
557678:	81 c2 21 24 00 00    	add    $0x2421,%edx
55767e:	b9 12 00 00 00       	mov    $0x12,%ecx
557683:	e8 48 d4 ea ff       	call   0x404ad0
557688:	8b 45 e4             	mov    -0x1c(%ebp),%eax
55768b:	ba e4 7d 55 00       	mov    $0x557de4,%edx
557690:	e8 cf d5 ea ff       	call   0x404c64
557695:	0f 94 c0             	sete   %al
557698:	8b 55 ec             	mov    -0x14(%ebp),%edx
55769b:	88 82 18 24 00 00    	mov    %al,0x2418(%edx)
5576a1:	8b 45 10             	mov    0x10(%ebp),%eax
5576a4:	8b 40 e0             	mov    -0x20(%eax),%eax
5576a7:	8b 00                	mov    (%eax),%eax
5576a9:	05 3c 01 00 00       	add    $0x13c,%eax
5576ae:	e8 b5 d1 ea ff       	call   0x404868
5576b3:	e8 48 3c eb ff       	call   0x40b300
5576b8:	8b 45 10             	mov    0x10(%ebp),%eax
5576bb:	8b 40 e0             	mov    -0x20(%eax),%eax
5576be:	8b 00                	mov    (%eax),%eax
5576c0:	dd 98 40 01 00 00    	fstpl  0x140(%eax)
5576c6:	9b                   	fwait
5576c7:	8b 45 10             	mov    0x10(%ebp),%eax
5576ca:	8b 40 e0             	mov    -0x20(%eax),%eax
5576cd:	8b 00                	mov    (%eax),%eax
5576cf:	05 48 01 00 00       	add    $0x148,%eax
5576d4:	e8 8f d1 ea ff       	call   0x404868
5576d9:	8d 45 e0             	lea    -0x20(%ebp),%eax
5576dc:	50                   	push   %eax
5576dd:	33 c9                	xor    %ecx,%ecx
5576df:	33 d2                	xor    %edx,%edx
5576e1:	33 c0                	xor    %eax,%eax
5576e3:	e8 28 1c 05 00       	call   0x5a9310
5576e8:	8b 45 10             	mov    0x10(%ebp),%eax
5576eb:	8b 40 e0             	mov    -0x20(%eax),%eax
5576ee:	8b 00                	mov    (%eax),%eax
5576f0:	66 8b 55 e0          	mov    -0x20(%ebp),%dx
5576f4:	66 89 90 4c 01 00 00 	mov    %dx,0x14c(%eax)
5576fb:	8a 55 e2             	mov    -0x1e(%ebp),%dl
5576fe:	88 90 4e 01 00 00    	mov    %dl,0x14e(%eax)
557704:	8b 45 10             	mov    0x10(%ebp),%eax
557707:	8b 40 e0             	mov    -0x20(%eax),%eax
55770a:	8b 00                	mov    (%eax),%eax
55770c:	33 d2                	xor    %edx,%edx
55770e:	89 90 50 01 00 00    	mov    %edx,0x150(%eax)
557714:	c7 80 54 01 00 00 00 	movl   $0x3ff00000,0x154(%eax)
55771b:	00 f0 3f
55771e:	8b 45 10             	mov    0x10(%ebp),%eax
557721:	8b 40 e0             	mov    -0x20(%eax),%eax
557724:	8b 00                	mov    (%eax),%eax
557726:	c7 80 58 01 00 00 9a 	movl   $0x9999999a,0x158(%eax)
55772d:	99 99 99
557730:	c7 80 5c 01 00 00 99 	movl   $0x40019999,0x15c(%eax)
557737:	99 01 40
55773a:	8b 45 ec             	mov    -0x14(%ebp),%eax
55773d:	80 b8 18 24 00 00 00 	cmpb   $0x0,0x2418(%eax)
557744:	0f 84 75 02 00 00    	je     0x5579bf
55774a:	8b 45 ec             	mov    -0x14(%ebp),%eax
55774d:	05 33 24 00 00       	add    $0x2433,%eax
557752:	89 45 e8             	mov    %eax,-0x18(%ebp)
557755:	8b 45 ec             	mov    -0x14(%ebp),%eax
557758:	8b 80 24 26 00 00    	mov    0x2624(%eax),%eax
55775e:	8b 55 ec             	mov    -0x14(%ebp),%edx
557761:	03 82 19 24 00 00    	add    0x2419(%edx),%eax
557767:	99                   	cltd
557768:	52                   	push   %edx
557769:	50                   	push   %eax
55776a:	8b 45 10             	mov    0x10(%ebp),%eax
55776d:	8b 40 f8             	mov    -0x8(%eax),%eax
557770:	e8 63 6f ec ff       	call   0x41e6d8
557775:	8b 45 ec             	mov    -0x14(%ebp),%eax
557778:	8d 90 33 24 00 00    	lea    0x2433(%eax),%edx
55777e:	8b 45 10             	mov    0x10(%ebp),%eax
557781:	8b 40 f8             	mov    -0x8(%eax),%eax
557784:	b9 ef 01 00 00       	mov    $0x1ef,%ecx
557789:	8b 18                	mov    (%eax),%ebx
55778b:	ff 53 08             	call   *0x8(%ebx)
55778e:	8b 45 10             	mov    0x10(%ebp),%eax
557791:	8b 40 e0             	mov    -0x20(%eax),%eax
557794:	8b 00                	mov    (%eax),%eax
557796:	05 3c 01 00 00       	add    $0x13c,%eax
55779b:	8b 55 e8             	mov    -0x18(%ebp),%edx
55779e:	83 c2 02             	add    $0x2,%edx
5577a1:	b9 29 00 00 00       	mov    $0x29,%ecx
5577a6:	e8 25 d3 ea ff       	call   0x404ad0
5577ab:	33 c0                	xor    %eax,%eax
5577ad:	55                   	push   %ebp
5577ae:	68 c9 78 55 00       	push   $0x5578c9
5577b3:	64 ff 30             	push   %fs:(%eax)
5577b6:	64 89 20             	mov    %esp,%fs:(%eax)
5577b9:	8b 45 e8             	mov    -0x18(%ebp),%eax
5577bc:	66 8b 98 6f 01 00 00 	mov    0x16f(%eax),%bx
5577c3:	66 85 db             	test   %bx,%bx
5577c6:	0f 84 f3 00 00 00    	je     0x5578bf
5577cc:	8b 45 e8             	mov    -0x18(%ebp),%eax
5577cf:	66 83 b8 71 01 00 00 	cmpw   $0x0,0x171(%eax)
5577d6:	00
5577d7:	0f 84 e2 00 00 00    	je     0x5578bf
5577dd:	8b 45 e8             	mov    -0x18(%ebp),%eax
5577e0:	66 83 b8 73 01 00 00 	cmpw   $0x0,0x173(%eax)
5577e7:	00
5577e8:	0f 84 d1 00 00 00    	je     0x5578bf
5577ee:	8b 45 e8             	mov    -0x18(%ebp),%eax
5577f1:	66 83 b8 73 01 00 00 	cmpw   $0x0,0x173(%eax)
5577f8:	00
5577f9:	0f 86 c0 00 00 00    	jbe    0x5578bf
5577ff:	8b 45 e8             	mov    -0x18(%ebp),%eax
557802:	66 81 b8 73 01 00 00 	cmpw   $0x9c4,0x173(%eax)
557809:	c4 09
55780b:	0f 83 ae 00 00 00    	jae    0x5578bf
557811:	66 85 db             	test   %bx,%bx
557814:	0f 86 a5 00 00 00    	jbe    0x5578bf
55781a:	66 83 fb 0d          	cmp    $0xd,%bx
55781e:	0f 83 9b 00 00 00    	jae    0x5578bf
557824:	8b 45 e8             	mov    -0x18(%ebp),%eax
557827:	66 83 b8 71 01 00 00 	cmpw   $0x0,0x171(%eax)
55782e:	00
55782f:	0f 86 8a 00 00 00    	jbe    0x5578bf
557835:	8b 45 e8             	mov    -0x18(%ebp),%eax
557838:	66 83 b8 71 01 00 00 	cmpw   $0x20,0x171(%eax)
55783f:	20
557840:	73 7d                	jae    0x5578bf
557842:	8b 45 e8             	mov    -0x18(%ebp),%eax
557845:	66 83 b8 75 01 00 00 	cmpw   $0x18,0x175(%eax)
55784c:	18
55784d:	73 70                	jae    0x5578bf
55784f:	8b 45 e8             	mov    -0x18(%ebp),%eax
557852:	66 83 b8 77 01 00 00 	cmpw   $0x3c,0x177(%eax)
557859:	3c
55785a:	73 63                	jae    0x5578bf
55785c:	8b 45 e8             	mov    -0x18(%ebp),%eax
55785f:	66 83 b8 79 01 00 00 	cmpw   $0x3c,0x179(%eax)
557866:	3c
557867:	73 56                	jae    0x5578bf
557869:	8b 45 e8             	mov    -0x18(%ebp),%eax
55786c:	66 8b 88 71 01 00 00 	mov    0x171(%eax),%cx
557873:	8b d3                	mov    %ebx,%edx
557875:	8b 45 e8             	mov    -0x18(%ebp),%eax
557878:	66 8b 80 73 01 00 00 	mov    0x173(%eax),%ax
55787f:	e8 b8 38 eb ff       	call   0x40b13c
557884:	dd 5d d8             	fstpl  -0x28(%ebp)
557887:	9b                   	fwait
557888:	6a 00                	push   $0x0
55788a:	8b 45 e8             	mov    -0x18(%ebp),%eax
55788d:	66 8b 88 79 01 00 00 	mov    0x179(%eax),%cx
557894:	8b 45 e8             	mov    -0x18(%ebp),%eax
557897:	66 8b 90 77 01 00 00 	mov    0x177(%eax),%dx
55789e:	8b 45 e8             	mov    -0x18(%ebp),%eax
5578a1:	66 8b 80 75 01 00 00 	mov    0x175(%eax),%ax
5578a8:	e8 ef 36 eb ff       	call   0x40af9c
5578ad:	dc 45 d8             	faddl  -0x28(%ebp)
5578b0:	8b 45 10             	mov    0x10(%ebp),%eax
5578b3:	8b 40 e0             	mov    -0x20(%eax),%eax
5578b6:	8b 00                	mov    (%eax),%eax
5578b8:	dd 98 40 01 00 00    	fstpl  0x140(%eax)
5578be:	9b                   	fwait
5578bf:	33 c0                	xor    %eax,%eax
5578c1:	5a                   	pop    %edx
5578c2:	59                   	pop    %ecx
5578c3:	59                   	pop    %ecx
5578c4:	64 89 10             	mov    %edx,%fs:(%eax)
5578c7:	eb 0a                	jmp    0x5578d3
5578c9:	e9 8a c6 ea ff       	jmp    0x403f58
5578ce:	e8 ed c9 ea ff       	call   0x4042c0
5578d3:	8b 45 10             	mov    0x10(%ebp),%eax
5578d6:	8b 40 e0             	mov    -0x20(%eax),%eax
5578d9:	8b 00                	mov    (%eax),%eax
5578db:	05 48 01 00 00       	add    $0x148,%eax
5578e0:	8b 55 e8             	mov    -0x18(%ebp),%edx
5578e3:	81 c2 7b 01 00 00    	add    $0x17b,%edx
5578e9:	b9 29 00 00 00       	mov    $0x29,%ecx
5578ee:	e8 dd d1 ea ff       	call   0x404ad0
5578f3:	8d 45 e0             	lea    -0x20(%ebp),%eax
5578f6:	50                   	push   %eax
5578f7:	8b 45 e8             	mov    -0x18(%ebp),%eax
5578fa:	8a 88 d9 01 00 00    	mov    0x1d9(%eax),%cl
557900:	8b 45 e8             	mov    -0x18(%ebp),%eax
557903:	8a 90 d8 01 00 00    	mov    0x1d8(%eax),%dl
557909:	8b 45 e8             	mov    -0x18(%ebp),%eax
55790c:	8a 80 d7 01 00 00    	mov    0x1d7(%eax),%al
557912:	e8 f9 19 05 00       	call   0x5a9310
557917:	8b 45 10             	mov    0x10(%ebp),%eax
55791a:	8b 40 e0             	mov    -0x20(%eax),%eax
55791d:	8b 00                	mov    (%eax),%eax
55791f:	66 8b 55 e0          	mov    -0x20(%ebp),%dx
557923:	66 89 90 4c 01 00 00 	mov    %dx,0x14c(%eax)
55792a:	8a 55 e2             	mov    -0x1e(%ebp),%dl
55792d:	88 90 4e 01 00 00    	mov    %dl,0x14e(%eax)
557933:	8b 45 e8             	mov    -0x18(%ebp),%eax
557936:	66 8b 80 da 01 00 00 	mov    0x1da(%eax),%ax
55793d:	66 85 c0             	test   %ax,%ax
557940:	74 37                	je     0x557979
557942:	8b 55 e8             	mov    -0x18(%ebp),%edx
557945:	66 83 ba dc 01 00 00 	cmpw   $0x0,0x1dc(%edx)
55794c:	00
55794d:	74 2a                	je     0x557979
55794f:	0f b7 c0             	movzwl %ax,%eax
557952:	89 45 d4             	mov    %eax,-0x2c(%ebp)
557955:	db 45 d4             	fildl  -0x2c(%ebp)
557958:	8b 45 e8             	mov    -0x18(%ebp),%eax
55795b:	0f b7 80 dc 01 00 00 	movzwl 0x1dc(%eax),%eax
557962:	89 45 d0             	mov    %eax,-0x30(%ebp)
557965:	db 45 d0             	fildl  -0x30(%ebp)
557968:	de f9                	fdivrp %st,%st(1)
55796a:	8b 45 10             	mov    0x10(%ebp),%eax
55796d:	8b 40 e0             	mov    -0x20(%eax),%eax
557970:	8b 00                	mov    (%eax),%eax
557972:	dd 98 50 01 00 00    	fstpl  0x150(%eax)
557978:	9b                   	fwait
557979:	8b 45 e8             	mov    -0x18(%ebp),%eax
55797c:	66 8b 80 de 01 00 00 	mov    0x1de(%eax),%ax
557983:	66 85 c0             	test   %ax,%ax
557986:	74 37                	je     0x5579bf
557988:	8b 55 e8             	mov    -0x18(%ebp),%edx
55798b:	66 83 ba e0 01 00 00 	cmpw   $0x0,0x1e0(%edx)
557992:	00
557993:	74 2a                	je     0x5579bf
557995:	0f b7 c0             	movzwl %ax,%eax
557998:	89 45 d4             	mov    %eax,-0x2c(%ebp)
55799b:	db 45 d4             	fildl  -0x2c(%ebp)
55799e:	8b 45 e8             	mov    -0x18(%ebp),%eax
5579a1:	0f b7 80 e0 01 00 00 	movzwl 0x1e0(%eax),%eax
5579a8:	89 45 d0             	mov    %eax,-0x30(%ebp)
5579ab:	db 45 d0             	fildl  -0x30(%ebp)
5579ae:	de f9                	fdivrp %st,%st(1)
5579b0:	8b 45 10             	mov    0x10(%ebp),%eax
5579b3:	8b 40 e0             	mov    -0x20(%eax),%eax
5579b6:	8b 00                	mov    (%eax),%eax
5579b8:	dd 98 58 01 00 00    	fstpl  0x158(%eax)
5579be:	9b                   	fwait
5579bf:	8b 45 ec             	mov    -0x14(%ebp),%eax
5579c2:	8b 80 24 26 00 00    	mov    0x2624(%eax),%eax
5579c8:	99                   	cltd
5579c9:	52                   	push   %edx
5579ca:	50                   	push   %eax
5579cb:	8b 45 10             	mov    0x10(%ebp),%eax
5579ce:	8b 40 f8             	mov    -0x8(%eax),%eax
5579d1:	e8 02 6d ec ff       	call   0x41e6d8
5579d6:	8b 45 10             	mov    0x10(%ebp),%eax
5579d9:	50                   	push   %eax
5579da:	8b 45 10             	mov    0x10(%ebp),%eax
5579dd:	83 c0 e6             	add    $0xffffffe6,%eax
5579e0:	66 ba 12 00          	mov    $0x12,%dx
5579e4:	e8 2b fb ff ff       	call   0x557514
5579e9:	59                   	pop    %ecx
5579ea:	8b 45 10             	mov    0x10(%ebp),%eax
5579ed:	0f b7 40 ee          	movzwl -0x12(%eax),%eax
5579f1:	8b 55 10             	mov    0x10(%ebp),%edx
5579f4:	8b 52 e0             	mov    -0x20(%edx),%edx
5579f7:	8b 12                	mov    (%edx),%edx
5579f9:	89 82 2c 01 00 00    	mov    %eax,0x12c(%edx)
5579ff:	8b 45 10             	mov    0x10(%ebp),%eax
557a02:	0f b7 40 f0          	movzwl -0x10(%eax),%eax
557a06:	8b 55 10             	mov    0x10(%ebp),%edx
557a09:	8b 52 e0             	mov    -0x20(%edx),%edx
557a0c:	8b 12                	mov    (%edx),%edx
557a0e:	89 82 30 01 00 00    	mov    %eax,0x130(%edx)
557a14:	8b 45 10             	mov    0x10(%ebp),%eax
557a17:	8a 40 e8             	mov    -0x18(%eax),%al
557a1a:	48                   	dec    %eax
557a1b:	2c 03                	sub    $0x3,%al
557a1d:	72 06                	jb     0x557a25
557a1f:	04 fb                	add    $0xfb,%al