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
557a21:	2c 03                	sub    $0x3,%al
557a23:	73 16                	jae    0x557a3b
557a25:	8b 45 10             	mov    0x10(%ebp),%eax
557a28:	8a 40 f6             	mov    -0xa(%eax),%al
557a2b:	3c 27                	cmp    $0x27,%al
557a2d:	77 0a                	ja     0x557a39
557a2f:	83 e0 7f             	and    $0x7f,%eax
557a32:	0f a3 05 f8 7d 55 00 	bt     %eax,0x557df8
557a39:	72 04                	jb     0x557a3f
557a3b:	33 c0                	xor    %eax,%eax
557a3d:	eb 02                	jmp    0x557a41
557a3f:	b0 01                	mov    $0x1,%al
557a41:	8b 55 fc             	mov    -0x4(%ebp),%edx
557a44:	88 02                	mov    %al,(%edx)
557a46:	8b 45 fc             	mov    -0x4(%ebp),%eax
557a49:	80 38 00             	cmpb   $0x0,(%eax)
557a4c:	0f 84 5c 03 00 00    	je     0x557dae
557a52:	8b 45 10             	mov    0x10(%ebp),%eax
557a55:	66 8b 40 f2          	mov    -0xe(%eax),%ax
557a59:	8b 55 f8             	mov    -0x8(%ebp),%edx
557a5c:	66 89 02             	mov    %ax,(%edx)
557a5f:	8b 45 10             	mov    0x10(%ebp),%eax
557a62:	66 8b 40 f4          	mov    -0xc(%eax),%ax
557a66:	8b 55 f4             	mov    -0xc(%ebp),%edx
557a69:	66 89 02             	mov    %ax,(%edx)
557a6c:	8b 45 10             	mov    0x10(%ebp),%eax
557a6f:	0f b6 40 f6          	movzbl -0xa(%eax),%eax
557a73:	8b 55 0c             	mov    0xc(%ebp),%edx
557a76:	66 89 02             	mov    %ax,(%edx)
557a79:	8b 45 10             	mov    0x10(%ebp),%eax
557a7c:	33 d2                	xor    %edx,%edx
557a7e:	8a 50 e6             	mov    -0x1a(%eax),%dl
557a81:	8d 45 f0             	lea    -0x10(%ebp),%eax
557a84:	e8 1b d4 ea ff       	call   0x404ea4
557a89:	8b 45 10             	mov    0x10(%ebp),%eax
557a8c:	50                   	push   %eax
557a8d:	8d 45 f0             	lea    -0x10(%ebp),%eax
557a90:	e8 db d2 ea ff       	call   0x404d70
557a95:	8b 55 10             	mov    0x10(%ebp),%edx
557a98:	0f b6 52 e6          	movzbl -0x1a(%edx),%edx
557a9c:	e8 73 fa ff ff       	call   0x557514
557aa1:	59                   	pop    %ecx
557aa2:	8b 45 10             	mov    0x10(%ebp),%eax
557aa5:	8b 40 e0             	mov    -0x20(%eax),%eax
557aa8:	8b 00                	mov    (%eax),%eax
557aaa:	05 38 01 00 00       	add    $0x138,%eax
557aaf:	8b 55 f0             	mov    -0x10(%ebp),%edx
557ab2:	e8 05 ce ea ff       	call   0x4048bc
557ab7:	8b 45 10             	mov    0x10(%ebp),%eax
557aba:	8b 40 fc             	mov    -0x4(%eax),%eax
557abd:	e8 7a f9 ff ff       	call   0x55743c
557ac2:	8b 45 10             	mov    0x10(%ebp),%eax
557ac5:	80 78 e7 01          	cmpb   $0x1,-0x19(%eax)
557ac9:	0f 85 40 02 00 00    	jne    0x557d0f
557acf:	8b 45 10             	mov    0x10(%ebp),%eax
557ad2:	8a 40 ed             	mov    -0x13(%eax),%al
557ad5:	04 f1                	add    $0xf1,%al
557ad7:	2c 02                	sub    $0x2,%al
557ad9:	72 15                	jb     0x557af0
557adb:	2c 07                	sub    $0x7,%al
557add:	0f 84 a0 00 00 00    	je     0x557b83
557ae3:	2c 08                	sub    $0x8,%al
557ae5:	0f 84 03 01 00 00    	je     0x557bee
557aeb:	e9 7e 01 00 00       	jmp    0x557c6e
557af0:	8b 45 10             	mov    0x10(%ebp),%eax
557af3:	66 8b 40 e9          	mov    -0x17(%eax),%ax
557af7:	0f b7 d8             	movzwl %ax,%ebx
557afa:	8b 55 10             	mov    0x10(%ebp),%edx
557afd:	0f b7 f0             	movzwl %ax,%esi
557b00:	8b 45 10             	mov    0x10(%ebp),%eax
557b03:	0f b7 40 eb          	movzwl -0x15(%eax),%eax
557b07:	03 f0                	add    %eax,%esi
557b09:	4e                   	dec    %esi
557b0a:	2b f3                	sub    %ebx,%esi
557b0c:	0f 8c 5c 01 00 00    	jl     0x557c6e
557b12:	46                   	inc    %esi
557b13:	8b 45 10             	mov    0x10(%ebp),%eax
557b16:	50                   	push   %eax
557b17:	e8 cc fa ff ff       	call   0x5575e8
557b1c:	59                   	pop    %ecx
557b1d:	8d 0c 5b             	lea    (%ebx,%ebx,2),%ecx
557b20:	8b 7d ec             	mov    -0x14(%ebp),%edi
557b23:	8d 8c 0f 02 20 00 00 	lea    0x2002(%edi,%ecx,1),%ecx
557b2a:	51                   	push   %ecx
557b2b:	0f b7 d0             	movzwl %ax,%edx
557b2e:	8b ca                	mov    %edx,%ecx
557b30:	c1 e9 0a             	shr    $0xa,%ecx
557b33:	80 e1 1f             	and    $0x1f,%cl
557b36:	03 c9                	add    %ecx,%ecx
557b38:	c1 e1 02             	shl    $0x2,%ecx
557b3b:	5f                   	pop    %edi
557b3c:	88 0f                	mov    %cl,(%edi)
557b3e:	8d 0c 5b             	lea    (%ebx,%ebx,2),%ecx
557b41:	8b 7d ec             	mov    -0x14(%ebp),%edi
557b44:	8d 8c 0f 01 20 00 00 	lea    0x2001(%edi,%ecx,1),%ecx
557b4b:	51                   	push   %ecx
557b4c:	8b ca                	mov    %edx,%ecx
557b4e:	c1 e9 05             	shr    $0x5,%ecx
557b51:	80 e1 1f             	and    $0x1f,%cl
557b54:	03 c9                	add    %ecx,%ecx
557b56:	c1 e1 02             	shl    $0x2,%ecx
557b59:	5f                   	pop    %edi
557b5a:	88 0f                	mov    %cl,(%edi)
557b5c:	8d 0c 5b             	lea    (%ebx,%ebx,2),%ecx
557b5f:	8b 7d ec             	mov    -0x14(%ebp),%edi
557b62:	8d 8c 0f 00 20 00 00 	lea    0x2000(%edi,%ecx,1),%ecx
557b69:	51                   	push   %ecx
557b6a:	c1 ea 00             	shr    $0x0,%edx
557b6d:	80 e2 1f             	and    $0x1f,%dl
557b70:	03 d2                	add    %edx,%edx
557b72:	8b c2                	mov    %edx,%eax
557b74:	c1 e0 02             	shl    $0x2,%eax
557b77:	5a                   	pop    %edx
557b78:	88 02                	mov    %al,(%edx)
557b7a:	43                   	inc    %ebx
557b7b:	4e                   	dec    %esi
557b7c:	75 95                	jne    0x557b13
557b7e:	e9 eb 00 00 00       	jmp    0x557c6e
557b83:	8b 45 10             	mov    0x10(%ebp),%eax
557b86:	66 8b 40 e9          	mov    -0x17(%eax),%ax
557b8a:	0f b7 d8             	movzwl %ax,%ebx
557b8d:	8b 55 10             	mov    0x10(%ebp),%edx
557b90:	0f b7 f0             	movzwl %ax,%esi
557b93:	8b 45 10             	mov    0x10(%ebp),%eax
557b96:	0f b7 40 eb          	movzwl -0x15(%eax),%eax
557b9a:	03 f0                	add    %eax,%esi
557b9c:	4e                   	dec    %esi
557b9d:	2b f3                	sub    %ebx,%esi
557b9f:	0f 8c c9 00 00 00    	jl     0x557c6e
557ba5:	46                   	inc    %esi
557ba6:	8b 45 10             	mov    0x10(%ebp),%eax
557ba9:	50                   	push   %eax
557baa:	e8 fd f9 ff ff       	call   0x5575ac
557baf:	59                   	pop    %ecx
557bb0:	8d 3c 5b             	lea    (%ebx,%ebx,2),%edi
557bb3:	8b 55 ec             	mov    -0x14(%ebp),%edx
557bb6:	88 84 3a 00 20 00 00 	mov    %al,0x2000(%edx,%edi,1)
557bbd:	8b 45 10             	mov    0x10(%ebp),%eax
557bc0:	50                   	push   %eax
557bc1:	e8 e6 f9 ff ff       	call   0x5575ac
557bc6:	59                   	pop    %ecx
557bc7:	8b 55 ec             	mov    -0x14(%ebp),%edx
557bca:	88 84 3a 01 20 00 00 	mov    %al,0x2001(%edx,%edi,1)
557bd1:	8b 45 10             	mov    0x10(%ebp),%eax
557bd4:	50                   	push   %eax
557bd5:	e8 d2 f9 ff ff       	call   0x5575ac
557bda:	59                   	pop    %ecx
557bdb:	8b 55 ec             	mov    -0x14(%ebp),%edx
557bde:	88 84 3a 02 20 00 00 	mov    %al,0x2002(%edx,%edi,1)
557be5:	43                   	inc    %ebx
557be6:	4e                   	dec    %esi
557be7:	75 bd                	jne    0x557ba6
557be9:	e9 80 00 00 00       	jmp    0x557c6e
557bee:	8b 45 ec             	mov    -0x14(%ebp),%eax
557bf1:	c6 80 00 24 00 00 01 	movb   $0x1,0x2400(%eax)
557bf8:	8b 45 10             	mov    0x10(%ebp),%eax
557bfb:	66 8b 40 e9          	mov    -0x17(%eax),%ax
557bff:	0f b7 d8             	movzwl %ax,%ebx
557c02:	8b 55 10             	mov    0x10(%ebp),%edx
557c05:	0f b7 f0             	movzwl %ax,%esi
557c08:	8b 45 10             	mov    0x10(%ebp),%eax
557c0b:	0f b7 40 eb          	movzwl -0x15(%eax),%eax
557c0f:	03 f0                	add    %eax,%esi
557c11:	4e                   	dec    %esi
557c12:	2b f3                	sub    %ebx,%esi
557c14:	7c 58                	jl     0x557c6e
557c16:	46                   	inc    %esi
557c17:	8b 45 10             	mov    0x10(%ebp),%eax
557c1a:	50                   	push   %eax
557c1b:	e8 8c f9 ff ff       	call   0x5575ac
557c20:	59                   	pop    %ecx
557c21:	8d 3c 5b             	lea    (%ebx,%ebx,2),%edi
557c24:	8b 55 ec             	mov    -0x14(%ebp),%edx
557c27:	88 84 3a 00 20 00 00 	mov    %al,0x2000(%edx,%edi,1)
557c2e:	8b 45 10             	mov    0x10(%ebp),%eax