51595c:	68 f1 59 51 00       	push   $0x5159f1
515961:	64 ff 30             	push   %fs:(%eax)
515964:	64 89 20             	mov    %esp,%fs:(%eax)
515967:	66 83 7d d8 00       	cmpw   $0x0,-0x28(%ebp)
51596c:	74 5e                	je     0x5159cc
51596e:	8b 83 e0 00 00 00    	mov    0xe0(%ebx),%eax
515974:	48                   	dec    %eax
515975:	3b 83 dc 00 00 00    	cmp    0xdc(%ebx),%eax
51597b:	7f 27                	jg     0x5159a4
51597d:	83 83 e0 00 00 00 19 	addl   $0x19,0xe0(%ebx)
515984:	8b 83 e0 00 00 00    	mov    0xe0(%ebx),%eax
51598a:	50                   	push   %eax
51598b:	8d 83 d8 00 00 00    	lea    0xd8(%ebx),%eax
515991:	b9 01 00 00 00       	mov    $0x1,%ecx
515996:	8b 15 24 26 51 00    	mov    0x512624,%edx
51599c:	e8 bb 06 ef ff       	call   0x40605c
5159a1:	83 c4 04             	add    $0x4,%esp
5159a4:	8b 83 dc 00 00 00    	mov    0xdc(%ebx),%eax
5159aa:	03 c0                	add    %eax,%eax
5159ac:	8d 04 40             	lea    (%eax,%eax,2),%eax
5159af:	8b 93 d8 00 00 00    	mov    0xd8(%ebx),%edx
5159b5:	8d 04 c2             	lea    (%edx,%eax,8),%eax
5159b8:	8d 55 d0             	lea    -0x30(%ebp),%edx
5159bb:	8b 0d 2c 12 51 00    	mov    0x51122c,%ecx
5159c1:	e8 82 fc ee ff       	call   0x405648
5159c6:	ff 83 dc 00 00 00    	incl   0xdc(%ebx)
5159cc:	8b 83 dc 00 00 00    	mov    0xdc(%ebx),%eax
5159d2:	48                   	dec    %eax
5159d3:	8b d8                	mov    %eax,%ebx
5159d5:	33 c0                	xor    %eax,%eax
5159d7:	5a                   	pop    %edx
5159d8:	59                   	pop    %ecx
5159d9:	59                   	pop    %ecx
5159da:	64 89 10             	mov    %edx,%fs:(%eax)
5159dd:	68 f8 59 51 00       	push   $0x5159f8
5159e2:	8d 45 d0             	lea    -0x30(%ebp),%eax
5159e5:	8b 15 2c 12 51 00    	mov    0x51122c,%edx
5159eb:	e8 3c fa ee ff       	call   0x40542c
5159f0:	c3                   	ret
5159f1:	e9 16 e8 ee ff       	jmp    0x40420c
5159f6:	eb ea                	jmp    0x5159e2
5159f8:	8b c3                	mov    %ebx,%eax
5159fa:	5f                   	pop    %edi
5159fb:	5e                   	pop    %esi
5159fc:	5b                   	pop    %ebx
5159fd:	8b e5                	mov    %ebp,%esp
5159ff:	5d                   	pop    %ebp
515a00:	c3                   	ret
515a01:	8d 40 00             	lea    0x0(%eax),%eax
515a04:	55                   	push   %ebp
515a05:	8b ec                	mov    %esp,%ebp
515a07:	83 c4 f0             	add    $0xfffffff0,%esp
515a0a:	53                   	push   %ebx
515a0b:	56                   	push   %esi
515a0c:	57                   	push   %edi
515a0d:	89 55 fc             	mov    %edx,-0x4(%ebp)
515a10:	8b d8                	mov    %eax,%ebx
515a12:	8b 45 fc             	mov    -0x4(%ebp),%eax
515a15:	e8 ee f2 ee ff       	call   0x404d08
515a1a:	33 c0                	xor    %eax,%eax
515a1c:	55                   	push   %ebp
515a1d:	68 0e 5b 51 00       	push   $0x515b0e
515a22:	64 ff 30             	push   %fs:(%eax)
515a25:	64 89 20             	mov    %esp,%fs:(%eax)
515a28:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
515a2f:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
515a36:	33 c0                	xor    %eax,%eax
515a38:	55                   	push   %ebp
515a39:	68 e9 5a 51 00       	push   $0x515ae9
515a3e:	64 ff 30             	push   %fs:(%eax)
515a41:	64 89 20             	mov    %esp,%fs:(%eax)
515a44:	80 7b 04 00          	cmpb   $0x0,0x4(%ebx)
515a48:	74 4f                	je     0x515a99
515a4a:	8b 45 fc             	mov    -0x4(%ebp),%eax
515a4d:	e8 ce f0 ee ff       	call   0x404b20
515a52:	8b f0                	mov    %eax,%esi
515a54:	85 f6                	test   %esi,%esi
515a56:	0f 8e 83 00 00 00    	jle    0x515adf
515a5c:	bb 01 00 00 00       	mov    $0x1,%ebx
515a61:	6a 00                	push   $0x0
515a63:	68 00 01 00 00       	push   $0x100
515a68:	8b 45 f0             	mov    -0x10(%ebp),%eax
515a6b:	8b 55 f4             	mov    -0xc(%ebp),%edx
515a6e:	e8 11 00 ef ff       	call   0x405a84
515a73:	52                   	push   %edx
515a74:	50                   	push   %eax
515a75:	8b 45 fc             	mov    -0x4(%ebp),%eax
515a78:	8a 44 18 ff          	mov    -0x1(%eax,%ebx,1),%al
515a7c:	25 ff 00 00 00       	and    $0xff,%eax
515a81:	33 d2                	xor    %edx,%edx
515a83:	03 04 24             	add    (%esp),%eax
515a86:	13 54 24 04          	adc    0x4(%esp),%edx
515a8a:	83 c4 08             	add    $0x8,%esp
515a8d:	89 45 f0             	mov    %eax,-0x10(%ebp)
515a90:	89 55 f4             	mov    %edx,-0xc(%ebp)
515a93:	43                   	inc    %ebx
515a94:	4e                   	dec    %esi
515a95:	75 ca                	jne    0x515a61
515a97:	eb 46                	jmp    0x515adf
515a99:	8b 45 fc             	mov    -0x4(%ebp),%eax
515a9c:	e8 7f f0 ee ff       	call   0x404b20
515aa1:	8b d8                	mov    %eax,%ebx
515aa3:	83 fb 01             	cmp    $0x1,%ebx
515aa6:	7c 37                	jl     0x515adf
515aa8:	6a 00                	push   $0x0
515aaa:	68 00 01 00 00       	push   $0x100
515aaf:	8b 45 f0             	mov    -0x10(%ebp),%eax
515ab2:	8b 55 f4             	mov    -0xc(%ebp),%edx
515ab5:	e8 ca ff ee ff       	call   0x405a84
515aba:	52                   	push   %edx
515abb:	50                   	push   %eax
515abc:	8b 45 fc             	mov    -0x4(%ebp),%eax
515abf:	8a 44 18 ff          	mov    -0x1(%eax,%ebx,1),%al
515ac3:	25 ff 00 00 00       	and    $0xff,%eax
515ac8:	33 d2                	xor    %edx,%edx
515aca:	03 04 24             	add    (%esp),%eax
515acd:	13 54 24 04          	adc    0x4(%esp),%edx
515ad1:	83 c4 08             	add    $0x8,%esp
515ad4:	89 45 f0             	mov    %eax,-0x10(%ebp)
515ad7:	89 55 f4             	mov    %edx,-0xc(%ebp)
515ada:	4b                   	dec    %ebx
515adb:	85 db                	test   %ebx,%ebx
515add:	75 c9                	jne    0x515aa8
515adf:	33 c0                	xor    %eax,%eax
515ae1:	5a                   	pop    %edx
515ae2:	59                   	pop    %ecx
515ae3:	59                   	pop    %ecx
515ae4:	64 89 10             	mov    %edx,%fs:(%eax)
515ae7:	eb 0a                	jmp    0x515af3
515ae9:	e9 6a e4 ee ff       	jmp    0x403f58
515aee:	e8 cd e7 ee ff       	call   0x4042c0
515af3:	8b 45 f0             	mov    -0x10(%ebp),%eax
515af6:	8b d8                	mov    %eax,%ebx
515af8:	33 c0                	xor    %eax,%eax
515afa:	5a                   	pop    %edx
515afb:	59                   	pop    %ecx
515afc:	59                   	pop    %ecx
515afd:	64 89 10             	mov    %edx,%fs:(%eax)
515b00:	68 15 5b 51 00       	push   $0x515b15
515b05:	8d 45 fc             	lea    -0x4(%ebp),%eax
515b08:	e8 5b ed ee ff       	call   0x404868
515b0d:	c3                   	ret
515b0e:	e9 f9 e6 ee ff       	jmp    0x40420c
515b13:	eb f0                	jmp    0x515b05
515b15:	8b c3                	mov    %ebx,%eax
515b17:	5f                   	pop    %edi
515b18:	5e                   	pop    %esi
515b19:	5b                   	pop    %ebx
515b1a:	8b e5                	mov    %ebp,%esp
515b1c:	5d                   	pop    %ebp
515b1d:	c3                   	ret
515b1e:	8b c0                	mov    %eax,%eax
515b20:	55                   	push   %ebp
515b21:	8b ec                	mov    %esp,%ebp
515b23:	83 c4 a4             	add    $0xffffffa4,%esp
515b26:	53                   	push   %ebx
515b27:	56                   	push   %esi
515b28:	57                   	push   %edi
515b29:	33 db                	xor    %ebx,%ebx
515b2b:	89 5d b8             	mov    %ebx,-0x48(%ebp)
515b2e:	89 5d bc             	mov    %ebx,-0x44(%ebp)
515b31:	89 5d c0             	mov    %ebx,-0x40(%ebp)
515b34:	89 5d c4             	mov    %ebx,-0x3c(%ebp)
515b37:	89 5d c8             	mov    %ebx,-0x38(%ebp)
515b3a:	89 5d d0             	mov    %ebx,-0x30(%ebp)
515b3d:	89 5d cc             	mov    %ebx,-0x34(%ebp)
515b40:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
515b43:	89 5d f0             	mov    %ebx,-0x10(%ebp)
515b46:	89 5d ec             	mov    %ebx,-0x14(%ebp)
515b49:	89 4d f4             	mov    %ecx,-0xc(%ebp)
515b4c:	89 55 f8             	mov    %edx,-0x8(%ebp)
515b4f:	89 45 fc             	mov    %eax,-0x4(%ebp)
515b52:	8b 45 f8             	mov    -0x8(%ebp),%eax
515b55:	e8 ae f1 ee ff       	call   0x404d08
515b5a:	8b 45 10             	mov    0x10(%ebp),%eax
515b5d:	e8 a6 f1 ee ff       	call   0x404d08
515b62:	8b 45 0c             	mov    0xc(%ebp),%eax
515b65:	e8 9e f1 ee ff       	call   0x404d08
515b6a:	33 c0                	xor    %eax,%eax
515b6c:	55                   	push   %ebp
515b6d:	68 ec 5d 51 00       	push   $0x515dec
515b72:	64 ff 30             	push   %fs:(%eax)
515b75:	64 89 20             	mov    %esp,%fs:(%eax)
515b78:	8d 45 ec             	lea    -0x14(%ebp),%eax
515b7b:	e8 e8 ec ee ff       	call   0x404868
515b80:	8b 45 f4             	mov    -0xc(%ebp),%eax
515b83:	8b 1c 85 cc 0a 69 00 	mov    0x690acc(,%eax,4),%ebx
515b8a:	85 db                	test   %ebx,%ebx
515b8c:	75 12                	jne    0x515ba0
515b8e:	8b 45 08             	mov    0x8(%ebp),%eax
515b91:	ba 04 5e 51 00       	mov    $0x515e04,%edx
515b96:	e8 21 ed ee ff       	call   0x4048bc
515b9b:	e9 0f 02 00 00       	jmp    0x515daf
515ba0:	8b 45 f8             	mov    -0x8(%ebp),%eax
515ba3:	e8 78 ef ee ff       	call   0x404b20
515ba8:	99                   	cltd
515ba9:	f7 fb                	idiv   %ebx
515bab:	ba 08 00 00 00       	mov    $0x8,%edx
515bb0:	e8 d7 9d f1 ff       	call   0x42f98c
515bb5:	8b f0                	mov    %eax,%esi
515bb7:	4e                   	dec    %esi
515bb8:	85 f6                	test   %esi,%esi
515bba:	0f 8c 71 01 00 00    	jl     0x515d31
515bc0:	46                   	inc    %esi
515bc1:	33 ff                	xor    %edi,%edi
515bc3:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
515bc7:	74 0e                	je     0x515bd7
515bc9:	8d 45 ec             	lea    -0x14(%ebp),%eax
515bcc:	8b 15 dc 04 69 00    	mov    0x6904dc,%edx
515bd2:	e8 51 ef ee ff       	call   0x404b28
515bd7:	8d 45 f0             	lea    -0x10(%ebp),%eax
515bda:	50                   	push   %eax
515bdb:	8b d7                	mov    %edi,%edx
515bdd:	0f af d3             	imul   %ebx,%edx
515be0:	42                   	inc    %edx
515be1:	8b cb                	mov    %ebx,%ecx
515be3:	8b 45 f8             	mov    -0x8(%ebp),%eax
515be6:	e8 8d f1 ee ff       	call   0x404d78
515beb:	8b 45 f4             	mov    -0xc(%ebp),%eax
515bee:	83 f8 0c             	cmp    $0xc,%eax
515bf1:	0f 87 25 01 00 00    	ja     0x515d1c
515bf7:	8a 80 04 5c 51 00    	mov    0x515c04(%eax),%al
515bfd:	ff 24 85 11 5c 51 00 	jmp    *0x515c11(,%eax,4)
515c04:	00 01                	add    %al,(%ecx)
515c06:	00 01                	add    %al,(%ecx)
515c08:	01 02                	add    %eax,(%edx)
515c0a:	01 00                	add    %eax,(%eax)
515c0c:	01 01                	add    %eax,(%ecx)
515c0e:	02 03                	add    (%ebx),%al
515c10:	03 1c 5d 51 00 21 5c 	add    0x5c210051(,%ebx,2),%ebx
515c17:	51                   	push   %ecx
515c18:	00 82 5c 51 00 0d    	add    %al,0xd00515c(%edx)
515c1e:	5d                   	pop    %ebp
515c1f:	51                   	push   %ecx
515c20:	00 8b 55 f0 8b 45    	add    %cl,0x458bf055(%ebx)
515c26:	fc                   	cld
515c27:	e8 d8 fd ff ff       	call   0x515a04
515c2c:	89 45 e8             	mov    %eax,-0x18(%ebp)
515c2f:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
515c33:	74 09                	je     0x515c3e
515c35:	80 3d e8 04 69 00 00 	cmpb   $0x0,0x6904e8
515c3c:	75 1b                	jne    0x515c59
515c3e:	8d 55 d4             	lea    -0x2c(%ebp),%edx
515c41:	8b 45 e8             	mov    -0x18(%ebp),%eax
515c44:	e8 ff 34 00 00       	call   0x519148
515c49:	8b 55 d4             	mov    -0x2c(%ebp),%edx
515c4c:	8d 45 ec             	lea    -0x14(%ebp),%eax
515c4f:	e8 d4 ee ee ff       	call   0x404b28
515c54:	e9 d0 00 00 00       	jmp    0x515d29
515c59:	8d 55 cc             	lea    -0x34(%ebp),%edx
515c5c:	8b 45 e8             	mov    -0x18(%ebp),%eax
515c5f:	e8 60 39 ef ff       	call   0x4095c4
515c64:	8b 55 cc             	mov    -0x34(%ebp),%edx
515c67:	8d 4d d0             	lea    -0x30(%ebp),%ecx
515c6a:	8b 45 0c             	mov    0xc(%ebp),%eax
515c6d:	e8 0a fb ff ff       	call   0x51577c
515c72:	8b 55 d0             	mov    -0x30(%ebp),%edx
515c75:	8d 45 ec             	lea    -0x14(%ebp),%eax
515c78:	e8 ab ee ee ff       	call   0x404b28
515c7d:	e9 a7 00 00 00       	jmp    0x515d29
515c82:	8d 45 c8             	lea    -0x38(%ebp),%eax
515c85:	50                   	push   %eax
515c86:	b9 04 00 00 00       	mov    $0x4,%ecx
515c8b:	ba 01 00 00 00       	mov    $0x1,%edx
515c90:	8b 45 f0             	mov    -0x10(%ebp),%eax
515c93:	e8 e0 f0 ee ff       	call   0x404d78
515c98:	8b 55 c8             	mov    -0x38(%ebp),%edx
515c9b:	8b 45 fc             	mov    -0x4(%ebp),%eax
515c9e:	e8 61 fd ff ff       	call   0x515a04
515ca3:	89 45 e8             	mov    %eax,-0x18(%ebp)
515ca6:	8d 45 c4             	lea    -0x3c(%ebp),%eax
515ca9:	50                   	push   %eax
515caa:	b9 04 00 00 00       	mov    $0x4,%ecx
515caf:	ba 05 00 00 00       	mov    $0x5,%edx
515cb4:	8b 45 f0             	mov    -0x10(%ebp),%eax
515cb7:	e8 bc f0 ee ff       	call   0x404d78
515cbc:	8b 55 c4             	mov    -0x3c(%ebp),%edx
515cbf:	8b 45 fc             	mov    -0x4(%ebp),%eax
515cc2:	e8 3d fd ff ff       	call   0x515a04
515cc7:	89 45 e4             	mov    %eax,-0x1c(%ebp)
515cca:	8d 4d c0             	lea    -0x40(%ebp),%ecx
515ccd:	8b 55 e4             	mov    -0x1c(%ebp),%edx
515cd0:	8b 45 e8             	mov    -0x18(%ebp),%eax
515cd3:	e8 84 34 00 00       	call   0x51915c
515cd8:	8b 55 c0             	mov    -0x40(%ebp),%edx
515cdb:	8d 45 ec             	lea    -0x14(%ebp),%eax
515cde:	e8 45 ee ee ff       	call   0x404b28
515ce3:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
515ce7:	75 09                	jne    0x515cf2
515ce9:	80 3d e8 04 69 00 00 	cmpb   $0x0,0x6904e8
515cf0:	75 37                	jne    0x515d29
515cf2:	8d 4d bc             	lea    -0x44(%ebp),%ecx
515cf5:	8b 55 ec             	mov    -0x14(%ebp),%edx
515cf8:	8b 45 0c             	mov    0xc(%ebp),%eax
515cfb:	e8 7c fa ff ff       	call   0x51577c
515d00:	8b 55 bc             	mov    -0x44(%ebp),%edx
515d03:	8d 45 ec             	lea    -0x14(%ebp),%eax
515d06:	e8 1d ee ee ff       	call   0x404b28
515d0b:	eb 1c                	jmp    0x515d29
515d0d:	8d 45 ec             	lea    -0x14(%ebp),%eax
515d10:	ba 10 5e 51 00       	mov    $0x515e10,%edx
515d15:	e8 0e ee ee ff       	call   0x404b28
515d1a:	eb 0d                	jmp    0x515d29
515d1c:	8d 45 ec             	lea    -0x14(%ebp),%eax
515d1f:	ba 24 5e 51 00       	mov    $0x515e24,%edx
515d24:	e8 ff ed ee ff       	call   0x404b28
515d29:	47                   	inc    %edi
515d2a:	4e                   	dec    %esi
515d2b:	0f 85 92 fe ff ff    	jne    0x515bc3
515d31:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
515d35:	74 6d                	je     0x515da4
515d37:	8b 55 10             	mov    0x10(%ebp),%edx
515d3a:	b8 30 5e 51 00       	mov    $0x515e30,%eax
515d3f:	e8 18 f1 ee ff       	call   0x404e5c
515d44:	85 c0                	test   %eax,%eax
515d46:	7e 28                	jle    0x515d70
515d48:	8d 45 b8             	lea    -0x48(%ebp),%eax
515d4b:	50                   	push   %eax
515d4c:	8b 45 ec             	mov    -0x14(%ebp),%eax
515d4f:	89 45 b0             	mov    %eax,-0x50(%ebp)
515d52:	c6 45 b4 0b          	movb   $0xb,-0x4c(%ebp)
515d56:	8d 55 b0             	lea    -0x50(%ebp),%edx
515d59:	33 c9                	xor    %ecx,%ecx
515d5b:	8b 45 10             	mov    0x10(%ebp),%eax
515d5e:	e8 79 48 ef ff       	call   0x40a5dc
515d63:	8b 55 b8             	mov    -0x48(%ebp),%edx
515d66:	8d 45 ec             	lea    -0x14(%ebp),%eax
515d69:	e8 92 eb ee ff       	call   0x404900
515d6e:	eb 34                	jmp    0x515da4
515d70:	8b 4d f4             	mov    -0xc(%ebp),%ecx
515d73:	8b 55 f8             	mov    -0x8(%ebp),%edx
515d76:	8b 45 fc             	mov    -0x4(%ebp),%eax
515d79:	e8 b6 00 00 00       	call   0x515e34
515d7e:	dd 5d d8             	fstpl  -0x28(%ebp)
515d81:	9b                   	fwait
515d82:	8d 45 ec             	lea    -0x14(%ebp),%eax
515d85:	50                   	push   %eax
515d86:	dd 45 d8             	fldl   -0x28(%ebp)
515d89:	db 7d a4             	fstpt  -0x5c(%ebp)
515d8c:	9b                   	fwait
515d8d:	8d 45 a4             	lea    -0x5c(%ebp),%eax
515d90:	89 45 b0             	mov    %eax,-0x50(%ebp)
515d93:	c6 45 b4 03          	movb   $0x3,-0x4c(%ebp)
515d97:	8d 55 b0             	lea    -0x50(%ebp),%edx
515d9a:	33 c9                	xor    %ecx,%ecx
515d9c:	8b 45 10             	mov    0x10(%ebp),%eax
515d9f:	e8 38 48 ef ff       	call   0x40a5dc
515da4:	8b 45 08             	mov    0x8(%ebp),%eax
515da7:	8b 55 ec             	mov    -0x14(%ebp),%edx
515daa:	e8 0d eb ee ff       	call   0x4048bc