5968b7:	8b 30                	mov    (%eax),%esi
5968b9:	ff 56 08             	call   *0x8(%esi)
5968bc:	8b 03                	mov    (%ebx),%eax
5968be:	c6 80 01 01 00 00 02 	movb   $0x2,0x101(%eax)
5968c5:	8b 45 f0             	mov    -0x10(%ebp),%eax
5968c8:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
5968cc:	7d 1a                	jge    0x5968e8
5968ce:	8b 45 f0             	mov    -0x10(%ebp),%eax
5968d1:	8b 40 08             	mov    0x8(%eax),%eax
5968d4:	f7 d8                	neg    %eax
5968d6:	8b 55 f0             	mov    -0x10(%ebp),%edx
5968d9:	89 42 08             	mov    %eax,0x8(%edx)
5968dc:	8b 45 f0             	mov    -0x10(%ebp),%eax
5968df:	8b 40 08             	mov    0x8(%eax),%eax
5968e2:	48                   	dec    %eax
5968e3:	89 45 94             	mov    %eax,-0x6c(%ebp)
5968e6:	eb 05                	jmp    0x5968ed
5968e8:	33 c0                	xor    %eax,%eax
5968ea:	89 45 94             	mov    %eax,-0x6c(%ebp)
5968ed:	8b 45 ec             	mov    -0x14(%ebp),%eax
5968f0:	0f b7 40 04          	movzwl 0x4(%eax),%eax
5968f4:	8b 13                	mov    (%ebx),%edx
5968f6:	89 42 14             	mov    %eax,0x14(%edx)
5968f9:	8b 45 ec             	mov    -0x14(%ebp),%eax
5968fc:	0f b7 40 06          	movzwl 0x6(%eax),%eax
596900:	8b 13                	mov    (%ebx),%edx
596902:	89 42 18             	mov    %eax,0x18(%edx)
596905:	8b 45 ec             	mov    -0x14(%ebp),%eax
596908:	0f b7 40 0a          	movzwl 0xa(%eax),%eax
59690c:	89 45 dc             	mov    %eax,-0x24(%ebp)
59690f:	33 c0                	xor    %eax,%eax
596911:	89 45 d8             	mov    %eax,-0x28(%ebp)
596914:	8b 15 9c 71 6a 00    	mov    0x6a719c,%edx
59691a:	8b 12                	mov    (%edx),%edx
59691c:	8b 03                	mov    (%ebx),%eax
59691e:	e8 99 6d 03 00       	call   0x5cd6bc
596923:	8b 15 00 71 6a 00    	mov    0x6a7100,%edx
596929:	8b 12                	mov    (%edx),%edx
59692b:	8b 03                	mov    (%ebx),%eax
59692d:	e8 ba 6d 03 00       	call   0x5cd6ec
596932:	83 7d dc 08          	cmpl   $0x8,-0x24(%ebp)
596936:	0f 8f 66 02 00 00    	jg     0x596ba2
59693c:	8b 4d dc             	mov    -0x24(%ebp),%ecx
59693f:	b8 01 00 00 00       	mov    $0x1,%eax
596944:	d3 e0                	shl    %cl,%eax
596946:	89 45 cc             	mov    %eax,-0x34(%ebp)
596949:	8b 03                	mov    (%ebx),%eax
59694b:	8b 55 cc             	mov    -0x34(%ebp),%edx
59694e:	89 90 ac 03 00 00    	mov    %edx,0x3ac(%eax)
596954:	8b 45 cc             	mov    -0x34(%ebp),%eax
596957:	8d 04 40             	lea    (%eax,%eax,2),%eax
59695a:	e8 55 27 e7 ff       	call   0x4090b4
59695f:	8b 13                	mov    (%ebx),%edx
596961:	89 82 a8 03 00 00    	mov    %eax,0x3a8(%edx)
596967:	8b 4d cc             	mov    -0x34(%ebp),%ecx
59696a:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
59696d:	8b 03                	mov    (%ebx),%eax
59696f:	8b 90 a8 03 00 00    	mov    0x3a8(%eax),%edx
596975:	8b 45 fc             	mov    -0x4(%ebp),%eax
596978:	8b 30                	mov    (%eax),%esi
59697a:	ff 56 08             	call   *0x8(%esi)
59697d:	e9 20 02 00 00       	jmp    0x596ba2
596982:	8b 45 f0             	mov    -0x10(%ebp),%eax
596985:	33 c9                	xor    %ecx,%ecx
596987:	ba 40 00 00 00       	mov    $0x40,%edx
59698c:	e8 af c8 e6 ff       	call   0x403240
596991:	8b 55 e8             	mov    -0x18(%ebp),%edx
596994:	b8 40 00 00 00       	mov    $0x40,%eax
596999:	e8 7e 2a 01 00       	call   0x5a941c
59699e:	8b c8                	mov    %eax,%ecx
5969a0:	8b 55 f0             	mov    -0x10(%ebp),%edx
5969a3:	8b 45 fc             	mov    -0x4(%ebp),%eax
5969a6:	8b 30                	mov    (%eax),%esi
5969a8:	ff 56 08             	call   *0x8(%esi)
5969ab:	83 7d e8 40          	cmpl   $0x40,-0x18(%ebp)
5969af:	7e 12                	jle    0x5969c3
5969b1:	8b 55 e8             	mov    -0x18(%ebp),%edx
5969b4:	83 ea 28             	sub    $0x28,%edx
5969b7:	66 b9 01 00          	mov    $0x1,%cx
5969bb:	8b 45 fc             	mov    -0x4(%ebp),%eax
5969be:	8b 30                	mov    (%eax),%esi
5969c0:	ff 56 10             	call   *0x10(%esi)
5969c3:	83 7d e8 40          	cmpl   $0x40,-0x18(%ebp)
5969c7:	75 0b                	jne    0x5969d4
5969c9:	8b 03                	mov    (%ebx),%eax
5969cb:	c6 80 01 01 00 00 03 	movb   $0x3,0x101(%eax)
5969d2:	eb 1a                	jmp    0x5969ee
5969d4:	83 7d e8 28          	cmpl   $0x28,-0x18(%ebp)
5969d8:	75 0b                	jne    0x5969e5
5969da:	8b 03                	mov    (%ebx),%eax
5969dc:	c6 80 01 01 00 00 01 	movb   $0x1,0x101(%eax)
5969e3:	eb 09                	jmp    0x5969ee
5969e5:	8b 03                	mov    (%ebx),%eax
5969e7:	c6 80 01 01 00 00 00 	movb   $0x0,0x101(%eax)
5969ee:	8b 45 f0             	mov    -0x10(%ebp),%eax
5969f1:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
5969f5:	7d 1a                	jge    0x596a11
5969f7:	8b 45 f0             	mov    -0x10(%ebp),%eax
5969fa:	8b 40 08             	mov    0x8(%eax),%eax
5969fd:	f7 d8                	neg    %eax
5969ff:	8b 55 f0             	mov    -0x10(%ebp),%edx
596a02:	89 42 08             	mov    %eax,0x8(%edx)
596a05:	8b 45 f0             	mov    -0x10(%ebp),%eax
596a08:	8b 40 08             	mov    0x8(%eax),%eax
596a0b:	48                   	dec    %eax
596a0c:	89 45 94             	mov    %eax,-0x6c(%ebp)
596a0f:	eb 05                	jmp    0x596a16
596a11:	33 c0                	xor    %eax,%eax
596a13:	89 45 94             	mov    %eax,-0x6c(%ebp)
596a16:	8b 45 f0             	mov    -0x10(%ebp),%eax
596a19:	8b 40 04             	mov    0x4(%eax),%eax
596a1c:	8b 13                	mov    (%ebx),%edx
596a1e:	89 42 14             	mov    %eax,0x14(%edx)
596a21:	8b 45 f0             	mov    -0x10(%ebp),%eax
596a24:	8b 40 08             	mov    0x8(%eax),%eax
596a27:	8b 13                	mov    (%ebx),%edx
596a29:	89 42 18             	mov    %eax,0x18(%edx)
596a2c:	8b 45 f0             	mov    -0x10(%ebp),%eax
596a2f:	0f b7 40 0e          	movzwl 0xe(%eax),%eax
596a33:	89 45 dc             	mov    %eax,-0x24(%ebp)
596a36:	8b 45 f0             	mov    -0x10(%ebp),%eax
596a39:	8b 40 10             	mov    0x10(%eax),%eax
596a3c:	89 45 d8             	mov    %eax,-0x28(%ebp)
596a3f:	8b 45 f0             	mov    -0x10(%ebp),%eax
596a42:	8b 40 14             	mov    0x14(%eax),%eax
596a45:	89 45 d4             	mov    %eax,-0x2c(%ebp)
596a48:	8b 45 f0             	mov    -0x10(%ebp),%eax
596a4b:	db 40 18             	fildl  0x18(%eax)
596a4e:	d8 35 04 77 59 00    	fdivs  0x597704
596a54:	db 2d 08 77 59 00    	fldt   0x597708
596a5a:	de c9                	fmulp  %st,%st(1)
596a5c:	e8 5f c2 e6 ff       	call   0x402cc0
596a61:	8b d0                	mov    %eax,%edx
596a63:	8b 03                	mov    (%ebx),%eax
596a65:	e8 52 6c 03 00       	call   0x5cd6bc
596a6a:	8b 03                	mov    (%ebx),%eax
596a6c:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
596a70:	75 0f                	jne    0x596a81
596a72:	8b 15 9c 71 6a 00    	mov    0x6a719c,%edx
596a78:	8b 12                	mov    (%edx),%edx
596a7a:	8b 03                	mov    (%ebx),%eax
596a7c:	e8 3b 6c 03 00       	call   0x5cd6bc
596a81:	8b 45 f0             	mov    -0x10(%ebp),%eax
596a84:	db 40 1c             	fildl  0x1c(%eax)
596a87:	d8 35 04 77 59 00    	fdivs  0x597704
596a8d:	db 2d 08 77 59 00    	fldt   0x597708
596a93:	de c9                	fmulp  %st,%st(1)
596a95:	e8 26 c2 e6 ff       	call   0x402cc0
596a9a:	8b d0                	mov    %eax,%edx
596a9c:	8b 03                	mov    (%ebx),%eax
596a9e:	e8 49 6c 03 00       	call   0x5cd6ec
596aa3:	8b 03                	mov    (%ebx),%eax
596aa5:	83 78 20 00          	cmpl   $0x0,0x20(%eax)
596aa9:	75 0f                	jne    0x596aba
596aab:	8b 15 00 71 6a 00    	mov    0x6a7100,%edx
596ab1:	8b 12                	mov    (%edx),%edx
596ab3:	8b 03                	mov    (%ebx),%eax
596ab5:	e8 32 6c 03 00       	call   0x5cd6ec
596aba:	8b 45 f0             	mov    -0x10(%ebp),%eax
596abd:	81 78 20 00 01 00 00 	cmpl   $0x100,0x20(%eax)
596ac4:	76 08                	jbe    0x596ace
596ac6:	8b 45 f0             	mov    -0x10(%ebp),%eax
596ac9:	33 d2                	xor    %edx,%edx
596acb:	89 50 20             	mov    %edx,0x20(%eax)
596ace:	8b 45 f0             	mov    -0x10(%ebp),%eax
596ad1:	83 78 20 00          	cmpl   $0x0,0x20(%eax)
596ad5:	75 16                	jne    0x596aed
596ad7:	83 7d dc 08          	cmpl   $0x8,-0x24(%ebp)
596adb:	7f 10                	jg     0x596aed
596add:	8b 4d dc             	mov    -0x24(%ebp),%ecx
596ae0:	b8 01 00 00 00       	mov    $0x1,%eax
596ae5:	d3 e0                	shl    %cl,%eax
596ae7:	8b 55 f0             	mov    -0x10(%ebp),%edx
596aea:	89 42 20             	mov    %eax,0x20(%edx)
596aed:	8b 45 f0             	mov    -0x10(%ebp),%eax
596af0:	83 78 20 00          	cmpl   $0x0,0x20(%eax)
596af4:	0f 86 8f 00 00 00    	jbe    0x596b89
596afa:	8b 45 f0             	mov    -0x10(%ebp),%eax
596afd:	8b 48 20             	mov    0x20(%eax),%ecx
596b00:	c1 e1 02             	shl    $0x2,%ecx
596b03:	8b 55 d0             	mov    -0x30(%ebp),%edx
596b06:	8b 45 fc             	mov    -0x4(%ebp),%eax
596b09:	8b 30                	mov    (%eax),%esi
596b0b:	ff 56 08             	call   *0x8(%esi)
596b0e:	8b 45 f0             	mov    -0x10(%ebp),%eax
596b11:	8b 40 20             	mov    0x20(%eax),%eax
596b14:	8b 13                	mov    (%ebx),%edx
596b16:	89 82 ac 03 00 00    	mov    %eax,0x3ac(%edx)
596b1c:	8b 45 f0             	mov    -0x10(%ebp),%eax
596b1f:	8b 40 20             	mov    0x20(%eax),%eax
596b22:	8d 04 40             	lea    (%eax,%eax,2),%eax
596b25:	e8 8a 25 e7 ff       	call   0x4090b4
596b2a:	8b 13                	mov    (%ebx),%edx
596b2c:	89 82 a8 03 00 00    	mov    %eax,0x3a8(%edx)
596b32:	8b 45 f0             	mov    -0x10(%ebp),%eax
596b35:	8b 70 20             	mov    0x20(%eax),%esi
596b38:	4e                   	dec    %esi
596b39:	85 f6                	test   %esi,%esi
596b3b:	7c 4c                	jl     0x596b89
596b3d:	46                   	inc    %esi
596b3e:	33 c0                	xor    %eax,%eax
596b40:	8b 4d d0             	mov    -0x30(%ebp),%ecx
596b43:	8a 4c 81 02          	mov    0x2(%ecx,%eax,4),%cl
596b47:	51                   	push   %ecx
596b48:	8d 14 40             	lea    (%eax,%eax,2),%edx
596b4b:	8b 0b                	mov    (%ebx),%ecx
596b4d:	8b 89 a8 03 00 00    	mov    0x3a8(%ecx),%ecx
596b53:	8d 7c 11 02          	lea    0x2(%ecx,%edx,1),%edi
596b57:	59                   	pop    %ecx
596b58:	88 0f                	mov    %cl,(%edi)
596b5a:	8b 4d d0             	mov    -0x30(%ebp),%ecx
596b5d:	8a 4c 81 01          	mov    0x1(%ecx,%eax,4),%cl
596b61:	51                   	push   %ecx
596b62:	8b 0b                	mov    (%ebx),%ecx
596b64:	8b 89 a8 03 00 00    	mov    0x3a8(%ecx),%ecx
596b6a:	8d 7c 11 01          	lea    0x1(%ecx,%edx,1),%edi
596b6e:	59                   	pop    %ecx
596b6f:	88 0f                	mov    %cl,(%edi)
596b71:	8b 4d d0             	mov    -0x30(%ebp),%ecx
596b74:	8a 0c 81             	mov    (%ecx,%eax,4),%cl
596b77:	51                   	push   %ecx
596b78:	8b 0b                	mov    (%ebx),%ecx
596b7a:	8b 89 a8 03 00 00    	mov    0x3a8(%ecx),%ecx
596b80:	03 ca                	add    %edx,%ecx
596b82:	5a                   	pop    %edx
596b83:	88 11                	mov    %dl,(%ecx)
596b85:	40                   	inc    %eax
596b86:	4e                   	dec    %esi
596b87:	75 b7                	jne    0x596b40
596b89:	83 7d d8 03          	cmpl   $0x3,-0x28(%ebp)
596b8d:	75 13                	jne    0x596ba2
596b8f:	8d 95 78 ff ff ff    	lea    -0x88(%ebp),%edx
596b95:	b9 0c 00 00 00       	mov    $0xc,%ecx
596b9a:	8b 45 fc             	mov    -0x4(%ebp),%eax
596b9d:	8b 30                	mov    (%eax),%esi
596b9f:	ff 56 08             	call   *0x8(%esi)
596ba2:	83 7d d8 00          	cmpl   $0x0,-0x28(%ebp)
596ba6:	74 06                	je     0x596bae
596ba8:	83 7d d8 03          	cmpl   $0x3,-0x28(%ebp)
596bac:	75 09                	jne    0x596bb7
596bae:	8b 03                	mov    (%ebx),%eax
596bb0:	c6 80 02 01 00 00 00 	movb   $0x0,0x102(%eax)
596bb7:	83 7d d8 02          	cmpl   $0x2,-0x28(%ebp)
596bbb:	74 06                	je     0x596bc3
596bbd:	83 7d d8 01          	cmpl   $0x1,-0x28(%ebp)
596bc1:	75 09                	jne    0x596bcc
596bc3:	8b 03                	mov    (%ebx),%eax
596bc5:	c6 80 02 01 00 00 01 	movb   $0x1,0x102(%eax)
596bcc:	83 7d 8f 00          	cmpl   $0x0,-0x71(%ebp)
596bd0:	76 15                	jbe    0x596be7
596bd2:	8b 45 8f             	mov    -0x71(%ebp),%eax
596bd5:	33 d2                	xor    %edx,%edx
596bd7:	03 45 e0             	add    -0x20(%ebp),%eax
596bda:	13 55 e4             	adc    -0x1c(%ebp),%edx
596bdd:	52                   	push   %edx
596bde:	50                   	push   %eax
596bdf:	8b 45 fc             	mov    -0x4(%ebp),%eax
596be2:	e8 f1 7a e8 ff       	call   0x41e6d8
596be7:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
596beb:	7e 13                	jle    0x596c00
596bed:	8b 45 fc             	mov    -0x4(%ebp),%eax
596bf0:	e8 c3 7a e8 ff       	call   0x41e6b8
596bf5:	2b 45 e0             	sub    -0x20(%ebp),%eax
596bf8:	8b 55 f4             	mov    -0xc(%ebp),%edx
596bfb:	2b d0                	sub    %eax,%edx
596bfd:	89 55 d4             	mov    %edx,-0x2c(%ebp)
596c00:	8b 03                	mov    (%ebx),%eax
596c02:	83 78 14 00          	cmpl   $0x0,0x14(%eax)
596c06:	74 08                	je     0x596c10
596c08:	8b 03                	mov    (%ebx),%eax
596c0a:	83 78 18 00          	cmpl   $0x0,0x18(%eax)
596c0e:	75 04                	jne    0x596c14
596c10:	c6 45 14 01          	movb   $0x1,0x14(%ebp)
596c14:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
596c18:	0f 85 8e 00 00 00    	jne    0x596cac
596c1e:	83 7d dc 01          	cmpl   $0x1,-0x24(%ebp)
596c22:	75 06                	jne    0x596c2a
596c24:	c6 45 93 01          	movb   $0x1,-0x6d(%ebp)
596c28:	eb 32                	jmp    0x596c5c
596c2a:	83 7d dc 04          	cmpl   $0x4,-0x24(%ebp)
596c2e:	75 11                	jne    0x596c41
596c30:	8b 03                	mov    (%ebx),%eax
596c32:	80 b8 a5 03 00 00 00 	cmpb   $0x0,0x3a5(%eax)
596c39:	74 06                	je     0x596c41
596c3b:	c6 45 93 02          	movb   $0x2,-0x6d(%ebp)
596c3f:	eb 1b                	jmp    0x596c5c
596c41:	83 7d dc 08          	cmpl   $0x8,-0x24(%ebp)
596c45:	75 11                	jne    0x596c58
596c47:	8b 03                	mov    (%ebx),%eax
596c49:	80 b8 a5 03 00 00 00 	cmpb   $0x0,0x3a5(%eax)
596c50:	74 06                	je     0x596c58
596c52:	c6 45 93 02          	movb   $0x2,-0x6d(%ebp)
596c56:	eb 04                	jmp    0x596c5c
596c58:	c6 45 93 05          	movb   $0x5,-0x6d(%ebp)
596c5c:	8a 45 93             	mov    -0x6d(%ebp),%al
596c5f:	50                   	push   %eax
596c60:	8b 03                	mov    (%ebx),%eax
596c62:	8b 48 18             	mov    0x18(%eax),%ecx
596c65:	8b 03                	mov    (%ebx),%eax
596c67:	8b 50 14             	mov    0x14(%eax),%edx
596c6a:	8b 45 f8             	mov    -0x8(%ebp),%eax
596c6d:	8b 30                	mov    (%eax),%esi
596c6f:	ff 56 24             	call   *0x24(%esi)
596c72:	8b 45 f8             	mov    -0x8(%ebp),%eax
596c75:	8b 10                	mov    (%eax),%edx
596c77:	ff 52 08             	call   *0x8(%edx)
596c7a:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
596c80:	db 85 74 ff ff ff    	fildl  -0x8c(%ebp)
596c86:	d8 3d 04 77 59 00    	fdivrs 0x597704
596c8c:	8b 45 18             	mov    0x18(%ebp),%eax
596c8f:	dd 58 18             	fstpl  0x18(%eax)
596c92:	9b                   	fwait
596c93:	8b 45 f8             	mov    -0x8(%ebp),%eax
596c96:	8b 10                	mov    (%eax),%edx
596c98:	ff 52 0c             	call   *0xc(%edx)
596c9b:	f7 6d dc             	imull  -0x24(%ebp)
596c9e:	83 c0 1f             	add    $0x1f,%eax
596ca1:	c1 e8 05             	shr    $0x5,%eax
596ca4:	c1 e0 02             	shl    $0x2,%eax
596ca7:	89 45 c0             	mov    %eax,-0x40(%ebp)
596caa:	eb 05                	jmp    0x596cb1
596cac:	33 c0                	xor    %eax,%eax
596cae:	89 45 c0             	mov    %eax,-0x40(%ebp)
596cb1:	8b 45 dc             	mov    -0x24(%ebp),%eax
596cb4:	83 f8 10             	cmp    $0x10,%eax
596cb7:	7f 20                	jg     0x596cd9
596cb9:	0f 84 3b 06 00 00    	je     0x5972fa
596cbf:	48                   	dec    %eax
596cc0:	74 2e                	je     0x596cf0
596cc2:	83 e8 03             	sub    $0x3,%eax
596cc5:	0f 84 6f 01 00 00    	je     0x596e3a
596ccb:	83 e8 04             	sub    $0x4,%eax
596cce:	0f 84 ee 03 00 00    	je     0x5970c2
596cd4:	e9 f5 09 00 00       	jmp    0x5976ce
596cd9:	83 e8 18             	sub    $0x18,%eax
596cdc:	0f 84 a5 07 00 00    	je     0x597487
596ce2:	83 e8 08             	sub    $0x8,%eax
596ce5:	0f 84 48 08 00 00    	je     0x597533
596ceb:	e9 de 09 00 00       	jmp    0x5976ce
596cf0:	8b 03                	mov    (%ebx),%eax
596cf2:	c7 40 08 01 00 00 00 	movl   $0x1,0x8(%eax)
596cf9:	8b 03                	mov    (%ebx),%eax
596cfb:	c7 40 10 01 00 00 00 	movl   $0x1,0x10(%eax)
596d02:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
596d06:	0f 85 c2 09 00 00    	jne    0x5976ce
596d0c:	83 7d d8 00          	cmpl   $0x0,-0x28(%ebp)
596d10:	0f 85 b8 09 00 00    	jne    0x5976ce
596d16:	8b 45 f8             	mov    -0x8(%ebp),%eax
596d19:	8b 10                	mov    (%eax),%edx
596d1b:	ff 52 08             	call   *0x8(%edx)