5b98a4:	99                   	cltd
5b98a5:	03 04 24             	add    (%esp),%eax
5b98a8:	13 54 24 04          	adc    0x4(%esp),%edx
5b98ac:	83 c4 08             	add    $0x8,%esp
5b98af:	52                   	push   %edx
5b98b0:	50                   	push   %eax
5b98b1:	a1 bc 6d 6a 00       	mov    0x6a6dbc,%eax
5b98b6:	8b 00                	mov    (%eax),%eax
5b98b8:	99                   	cltd
5b98b9:	52                   	push   %edx
5b98ba:	50                   	push   %eax
5b98bb:	0f b7 47 04          	movzwl 0x4(%edi),%eax
5b98bf:	c1 e8 08             	shr    $0x8,%eax
5b98c2:	89 44 24 34          	mov    %eax,0x34(%esp)
5b98c6:	db 44 24 34          	fildl  0x34(%esp)
5b98ca:	e8 fd 93 e4 ff       	call   0x402ccc
5b98cf:	e8 b0 c1 e4 ff       	call   0x405a84
5b98d4:	03 04 24             	add    (%esp),%eax
5b98d7:	13 54 24 04          	adc    0x4(%esp),%edx
5b98db:	83 c4 08             	add    $0x8,%esp
5b98de:	e8 c5 c1 e4 ff       	call   0x405aa8
5b98e3:	ff 04 86             	incl   (%esi,%eax,4)
5b98e6:	83 c5 06             	add    $0x6,%ebp
5b98e9:	4b                   	dec    %ebx
5b98ea:	0f 85 7b ff ff ff    	jne    0x5b986b
5b98f0:	ff 44 24 04          	incl   0x4(%esp)
5b98f4:	ff 4c 24 10          	decl   0x10(%esp)
5b98f8:	0f 85 bc fc ff ff    	jne    0x5b95ba
5b98fe:	83 c4 20             	add    $0x20,%esp
5b9901:	5d                   	pop    %ebp
5b9902:	5f                   	pop    %edi
5b9903:	5e                   	pop    %esi
5b9904:	5b                   	pop    %ebx
5b9905:	c3                   	ret
5b9906:	00 00                	add    %al,(%eax)
5b9908:	00 00                	add    %al,(%eax)
5b990a:	7f 43                	jg     0x5b994f
5b990c:	55                   	push   %ebp
5b990d:	8b ec                	mov    %esp,%ebp
5b990f:	8b 45 0c             	mov    0xc(%ebp),%eax
5b9912:	8b 40 fc             	mov    -0x4(%eax),%eax
5b9915:	83 e0 07             	and    $0x7,%eax
5b9918:	8b 55 0c             	mov    0xc(%ebp),%edx
5b991b:	89 42 f8             	mov    %eax,-0x8(%edx)
5b991e:	33 c0                	xor    %eax,%eax
5b9920:	8a 45 0a             	mov    0xa(%ebp),%al
5b9923:	8b 15 24 72 6a 00    	mov    0x6a7224,%edx
5b9929:	f7 2a                	imull  (%edx)
5b992b:	33 d2                	xor    %edx,%edx
5b992d:	8a 55 09             	mov    0x9(%ebp),%dl
5b9930:	8b 0d 4c 71 6a 00    	mov    0x6a714c,%ecx
5b9936:	0f af 11             	imul   (%ecx),%edx
5b9939:	03 c2                	add    %edx,%eax
5b993b:	33 d2                	xor    %edx,%edx
5b993d:	8a 55 08             	mov    0x8(%ebp),%dl
5b9940:	8b 0d bc 6d 6a 00    	mov    0x6a6dbc,%ecx
5b9946:	0f af 11             	imul   (%ecx),%edx
5b9949:	03 c2                	add    %edx,%eax
5b994b:	b9 64 00 00 00       	mov    $0x64,%ecx
5b9950:	99                   	cltd
5b9951:	f7 f9                	idiv   %ecx
5b9953:	8b 55 0c             	mov    0xc(%ebp),%edx
5b9956:	89 42 f4             	mov    %eax,-0xc(%edx)
5b9959:	8b 45 0c             	mov    0xc(%ebp),%eax
5b995c:	8b 40 f4             	mov    -0xc(%eax),%eax
5b995f:	8b 55 0c             	mov    0xc(%ebp),%edx
5b9962:	3b 42 f0             	cmp    -0x10(%edx),%eax
5b9965:	7c 19                	jl     0x5b9980
5b9967:	8b 45 0c             	mov    0xc(%ebp),%eax
5b996a:	8b 40 f8             	mov    -0x8(%eax),%eax
5b996d:	8b 15 88 6d 6a 00    	mov    0x6a6d88,%edx
5b9973:	8a 04 02             	mov    (%edx,%eax,1),%al
5b9976:	8b 55 0c             	mov    0xc(%ebp),%edx
5b9979:	8b 52 ec             	mov    -0x14(%edx),%edx
5b997c:	08 02                	or     %al,(%edx)
5b997e:	eb 19                	jmp    0x5b9999
5b9980:	8b 45 0c             	mov    0xc(%ebp),%eax
5b9983:	8b 40 f8             	mov    -0x8(%eax),%eax
5b9986:	8b 15 88 6d 6a 00    	mov    0x6a6d88,%edx
5b998c:	8a 04 02             	mov    (%edx,%eax,1),%al
5b998f:	f6 d0                	not    %al
5b9991:	8b 55 0c             	mov    0xc(%ebp),%edx
5b9994:	8b 52 ec             	mov    -0x14(%edx),%edx
5b9997:	20 02                	and    %al,(%edx)
5b9999:	8b 45 0c             	mov    0xc(%ebp),%eax
5b999c:	83 78 f8 07          	cmpl   $0x7,-0x8(%eax)
5b99a0:	75 06                	jne    0x5b99a8
5b99a2:	8b 45 0c             	mov    0xc(%ebp),%eax
5b99a5:	ff 40 ec             	incl   -0x14(%eax)
5b99a8:	5d                   	pop    %ebp
5b99a9:	c2 04 00             	ret    $0x4
5b99ac:	55                   	push   %ebp
5b99ad:	8b ec                	mov    %esp,%ebp
5b99af:	83 c4 90             	add    $0xffffff90,%esp
5b99b2:	53                   	push   %ebx
5b99b3:	56                   	push   %esi
5b99b4:	57                   	push   %edi
5b99b5:	89 4d f0             	mov    %ecx,-0x10(%ebp)
5b99b8:	89 55 e4             	mov    %edx,-0x1c(%ebp)
5b99bb:	89 45 e8             	mov    %eax,-0x18(%ebp)
5b99be:	8b 45 e8             	mov    -0x18(%ebp),%eax
5b99c1:	8b 10                	mov    (%eax),%edx
5b99c3:	ff 52 10             	call   *0x10(%edx)
5b99c6:	3c 01                	cmp    $0x1,%al
5b99c8:	75 10                	jne    0x5b99da
5b99ca:	8b 55 e8             	mov    -0x18(%ebp),%edx
5b99cd:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5b99d0:	e8 eb ef 03 00       	call   0x5f89c0
5b99d5:	e9 2d 05 00 00       	jmp    0x5b9f07
5b99da:	8b 45 e8             	mov    -0x18(%ebp),%eax
5b99dd:	8b 10                	mov    (%eax),%edx
5b99df:	ff 52 08             	call   *0x8(%edx)
5b99e2:	89 45 94             	mov    %eax,-0x6c(%ebp)
5b99e5:	db 45 94             	fildl  -0x6c(%ebp)
5b99e8:	d8 05 10 9f 5b 00    	fadds  0x5b9f10
5b99ee:	d8 3d 14 9f 5b 00    	fdivrs 0x5b9f14
5b99f4:	8b 45 08             	mov    0x8(%ebp),%eax
5b99f7:	dd 58 18             	fstpl  0x18(%eax)
5b99fa:	9b                   	fwait
5b99fb:	33 c0                	xor    %eax,%eax
5b99fd:	89 45 c4             	mov    %eax,-0x3c(%ebp)
5b9a00:	33 db                	xor    %ebx,%ebx
5b9a02:	8b 45 f0             	mov    -0x10(%ebp),%eax
5b9a05:	83 e8 fe             	sub    $0xfffffffe,%eax
5b9a08:	74 4f                	je     0x5b9a59
5b9a0a:	48                   	dec    %eax
5b9a0b:	0f 85 c7 01 00 00    	jne    0x5b9bd8
5b9a11:	8d 45 d0             	lea    -0x30(%ebp),%eax
5b9a14:	50                   	push   %eax
5b9a15:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
5b9a18:	8d 55 d8             	lea    -0x28(%ebp),%edx
5b9a1b:	8b 45 e8             	mov    -0x18(%ebp),%eax
5b9a1e:	e8 85 19 ff ff       	call   0x5ab3a8
5b9a23:	a1 24 72 6a 00       	mov    0x6a7224,%eax
5b9a28:	8b 00                	mov    (%eax),%eax
5b9a2a:	f7 6d d8             	imull  -0x28(%ebp)
5b9a2d:	8b 15 4c 71 6a 00    	mov    0x6a714c,%edx
5b9a33:	8b 12                	mov    (%edx),%edx
5b9a35:	0f af 55 d4          	imul   -0x2c(%ebp),%edx
5b9a39:	03 c2                	add    %edx,%eax
5b9a3b:	8b 15 bc 6d 6a 00    	mov    0x6a6dbc,%edx
5b9a41:	8b 12                	mov    (%edx),%edx
5b9a43:	0f af 55 d0          	imul   -0x30(%ebp),%edx
5b9a47:	03 c2                	add    %edx,%eax
5b9a49:	b9 64 00 00 00       	mov    $0x64,%ecx
5b9a4e:	99                   	cltd
5b9a4f:	f7 f9                	idiv   %ecx
5b9a51:	89 45 f0             	mov    %eax,-0x10(%ebp)
5b9a54:	e9 7f 01 00 00       	jmp    0x5b9bd8
5b9a59:	b8 00 04 00 00       	mov    $0x400,%eax
5b9a5e:	e8 49 8d e4 ff       	call   0x4027ac
5b9a63:	89 45 c4             	mov    %eax,-0x3c(%ebp)
5b9a66:	8b 55 c4             	mov    -0x3c(%ebp),%edx
5b9a69:	8b 45 e8             	mov    -0x18(%ebp),%eax
5b9a6c:	e8 13 fb ff ff       	call   0x5b9584
5b9a71:	b8 00 08 00 00       	mov    $0x800,%eax
5b9a76:	e8 31 8d e4 ff       	call   0x4027ac
5b9a7b:	8b d8                	mov    %eax,%ebx
5b9a7d:	8b 45 e8             	mov    -0x18(%ebp),%eax
5b9a80:	8b 10                	mov    (%eax),%edx
5b9a82:	ff 52 0c             	call   *0xc(%edx)
5b9a85:	8b f0                	mov    %eax,%esi
5b9a87:	8b 45 e8             	mov    -0x18(%ebp),%eax
5b9a8a:	8b 10                	mov    (%eax),%edx
5b9a8c:	ff 52 08             	call   *0x8(%edx)
5b9a8f:	0f af f0             	imul   %eax,%esi
5b9a92:	8b c6                	mov    %esi,%eax
5b9a94:	33 d2                	xor    %edx,%edx
5b9a96:	89 55 e0             	mov    %edx,-0x20(%ebp)
5b9a99:	8b 55 c4             	mov    -0x3c(%ebp),%edx
5b9a9c:	8b 4d e0             	mov    -0x20(%ebp),%ecx
5b9a9f:	db 04 8a             	fildl  (%edx,%ecx,4)
5b9aa2:	89 45 94             	mov    %eax,-0x6c(%ebp)
5b9aa5:	db 45 94             	fildl  -0x6c(%ebp)
5b9aa8:	de f9                	fdivrp %st,%st(1)
5b9aaa:	8b 55 e0             	mov    -0x20(%ebp),%edx
5b9aad:	dd 1c d3             	fstpl  (%ebx,%edx,8)
5b9ab0:	9b                   	fwait
5b9ab1:	ff 45 e0             	incl   -0x20(%ebp)
5b9ab4:	81 7d e0 00 01 00 00 	cmpl   $0x100,-0x20(%ebp)
5b9abb:	75 dc                	jne    0x5b9a99
5b9abd:	33 c0                	xor    %eax,%eax
5b9abf:	89 45 b8             	mov    %eax,-0x48(%ebp)
5b9ac2:	89 45 bc             	mov    %eax,-0x44(%ebp)
5b9ac5:	33 c0                	xor    %eax,%eax
5b9ac7:	89 45 98             	mov    %eax,-0x68(%ebp)
5b9aca:	89 45 9c             	mov    %eax,-0x64(%ebp)
5b9acd:	33 c0                	xor    %eax,%eax
5b9acf:	89 45 e0             	mov    %eax,-0x20(%ebp)
5b9ad2:	8b 45 e0             	mov    -0x20(%ebp),%eax
5b9ad5:	dd 04 c3             	fldl   (%ebx,%eax,8)
5b9ad8:	d8 1d 18 9f 5b 00    	fcomps 0x5b9f18
5b9ade:	df e0                	fnstsw %ax
5b9ae0:	9e                   	sahf
5b9ae1:	74 19                	je     0x5b9afc
5b9ae3:	8b 45 e0             	mov    -0x20(%ebp),%eax
5b9ae6:	dd 04 c3             	fldl   (%ebx,%eax,8)
5b9ae9:	d9 ed                	fldln2
5b9aeb:	d9 c9                	fxch   %st(1)
5b9aed:	d9 f1                	fyl2x
5b9aef:	8b 45 e0             	mov    -0x20(%ebp),%eax
5b9af2:	dc 0c c3             	fmull  (%ebx,%eax,8)
5b9af5:	dc 6d b8             	fsubrl -0x48(%ebp)
5b9af8:	dd 5d b8             	fstpl  -0x48(%ebp)
5b9afb:	9b                   	fwait
5b9afc:	ff 45 e0             	incl   -0x20(%ebp)
5b9aff:	81 7d e0 00 01 00 00 	cmpl   $0x100,-0x20(%ebp)
5b9b06:	75 ca                	jne    0x5b9ad2
5b9b08:	33 c0                	xor    %eax,%eax
5b9b0a:	89 45 b0             	mov    %eax,-0x50(%ebp)
5b9b0d:	89 45 b4             	mov    %eax,-0x4c(%ebp)
5b9b10:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)
5b9b17:	33 c0                	xor    %eax,%eax
5b9b19:	89 45 a8             	mov    %eax,-0x58(%ebp)
5b9b1c:	89 45 ac             	mov    %eax,-0x54(%ebp)
5b9b1f:	33 c0                	xor    %eax,%eax
5b9b21:	89 45 a0             	mov    %eax,-0x60(%ebp)
5b9b24:	89 45 a4             	mov    %eax,-0x5c(%ebp)
5b9b27:	8b 75 e0             	mov    -0x20(%ebp),%esi
5b9b2a:	4e                   	dec    %esi
5b9b2b:	85 f6                	test   %esi,%esi
5b9b2d:	7c 32                	jl     0x5b9b61
5b9b2f:	46                   	inc    %esi
5b9b30:	33 ff                	xor    %edi,%edi
5b9b32:	dd 45 a8             	fldl   -0x58(%ebp)
5b9b35:	dc 04 fb             	faddl  (%ebx,%edi,8)
5b9b38:	dd 5d a8             	fstpl  -0x58(%ebp)
5b9b3b:	9b dd 04 fb          	fldl   (%ebx,%edi,8)
5b9b3f:	d8 1d 18 9f 5b 00    	fcomps 0x5b9f18
5b9b45:	df e0                	fnstsw %ax
5b9b47:	9e                   	sahf
5b9b48:	76 13                	jbe    0x5b9b5d
5b9b4a:	dd 04 fb             	fldl   (%ebx,%edi,8)
5b9b4d:	d9 ed                	fldln2
5b9b4f:	d9 c9                	fxch   %st(1)
5b9b51:	d9 f1                	fyl2x
5b9b53:	dc 0c fb             	fmull  (%ebx,%edi,8)
5b9b56:	dc 6d a0             	fsubrl -0x60(%ebp)
5b9b59:	dd 5d a0             	fstpl  -0x60(%ebp)
5b9b5c:	9b                   	fwait
5b9b5d:	47                   	inc    %edi
5b9b5e:	4e                   	dec    %esi
5b9b5f:	75 d1                	jne    0x5b9b32
5b9b61:	dd 45 a8             	fldl   -0x58(%ebp)
5b9b64:	d8 1d 18 9f 5b 00    	fcomps 0x5b9f18
5b9b6a:	df e0                	fnstsw %ax
5b9b6c:	9e                   	sahf
5b9b6d:	76 3c                	jbe    0x5b9bab
5b9b6f:	dd 45 a8             	fldl   -0x58(%ebp)
5b9b72:	d8 1d 1c 9f 5b 00    	fcomps 0x5b9f1c
5b9b78:	df e0                	fnstsw %ax
5b9b7a:	9e                   	sahf
5b9b7b:	73 2e                	jae    0x5b9bab
5b9b7d:	dd 45 a8             	fldl   -0x58(%ebp)
5b9b80:	dc 4d a8             	fmull  -0x58(%ebp)
5b9b83:	dc 6d a8             	fsubrl -0x58(%ebp)
5b9b86:	d9 ed                	fldln2
5b9b88:	d9 c9                	fxch   %st(1)
5b9b8a:	d9 f1                	fyl2x
5b9b8c:	dd 45 a0             	fldl   -0x60(%ebp)
5b9b8f:	dc 75 a8             	fdivl  -0x58(%ebp)
5b9b92:	de c1                	faddp  %st,%st(1)
5b9b94:	dd 45 b8             	fldl   -0x48(%ebp)
5b9b97:	dc 65 a0             	fsubl  -0x60(%ebp)
5b9b9a:	d9 05 1c 9f 5b 00    	flds   0x5b9f1c
5b9ba0:	dc 65 a8             	fsubl  -0x58(%ebp)
5b9ba3:	de f9                	fdivrp %st,%st(1)
5b9ba5:	de c1                	faddp  %st,%st(1)
5b9ba7:	dd 5d 98             	fstpl  -0x68(%ebp)
5b9baa:	9b dd 45 98          	fldl   -0x68(%ebp)
5b9bae:	dc 5d b0             	fcompl -0x50(%ebp)
5b9bb1:	df e0                	fnstsw %ax
5b9bb3:	9e                   	sahf
5b9bb4:	76 12                	jbe    0x5b9bc8
5b9bb6:	8b 45 98             	mov    -0x68(%ebp),%eax
5b9bb9:	89 45 b0             	mov    %eax,-0x50(%ebp)
5b9bbc:	8b 45 9c             	mov    -0x64(%ebp),%eax
5b9bbf:	89 45 b4             	mov    %eax,-0x4c(%ebp)
5b9bc2:	8b 45 e0             	mov    -0x20(%ebp),%eax
5b9bc5:	89 45 f0             	mov    %eax,-0x10(%ebp)
5b9bc8:	ff 45 e0             	incl   -0x20(%ebp)
5b9bcb:	81 7d e0 00 01 00 00 	cmpl   $0x100,-0x20(%ebp)
5b9bd2:	0f 85 3f ff ff ff    	jne    0x5b9b17
5b9bd8:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
5b9bdc:	74 08                	je     0x5b9be6
5b9bde:	8b 45 c4             	mov    -0x3c(%ebp),%eax
5b9be1:	e8 e6 8b e4 ff       	call   0x4027cc
5b9be6:	85 db                	test   %ebx,%ebx
5b9be8:	74 07                	je     0x5b9bf1
5b9bea:	8b c3                	mov    %ebx,%eax
5b9bec:	e8 db 8b e4 ff       	call   0x4027cc
5b9bf1:	8b 45 e8             	mov    -0x18(%ebp),%eax
5b9bf4:	8b 10                	mov    (%eax),%edx
5b9bf6:	ff 52 08             	call   *0x8(%edx)
5b9bf9:	8b f0                	mov    %eax,%esi
5b9bfb:	4e                   	dec    %esi
5b9bfc:	85 f6                	test   %esi,%esi
5b9bfe:	0f 8c 03 03 00 00    	jl     0x5b9f07
5b9c04:	46                   	inc    %esi
5b9c05:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
5b9c0c:	8b 55 dc             	mov    -0x24(%ebp),%edx
5b9c0f:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5b9c12:	8b 08                	mov    (%eax),%ecx
5b9c14:	ff 11                	call   *(%ecx)
5b9c16:	89 45 ec             	mov    %eax,-0x14(%ebp)
5b9c19:	8b 45 e8             	mov    -0x18(%ebp),%eax
5b9c1c:	8b 10                	mov    (%eax),%edx
5b9c1e:	ff 52 10             	call   *0x10(%edx)
5b9c21:	83 e0 7f             	and    $0x7f,%eax
5b9c24:	83 f8 08             	cmp    $0x8,%eax
5b9c27:	0f 87 a1 02 00 00    	ja     0x5b9ece
5b9c2d:	ff 24 85 34 9c 5b 00 	jmp    *0x5b9c34(,%eax,4)
5b9c34:	ce                   	into
5b9c35:	9e                   	sahf
5b9c36:	5b                   	pop    %ebx
5b9c37:	00 ce                	add    %cl,%dh
5b9c39:	9e                   	sahf
5b9c3a:	5b                   	pop    %ebx
5b9c3b:	00 58 9c             	add    %bl,-0x64(%eax)
5b9c3e:	5b                   	pop    %ebx
5b9c3f:	00 b2 9c 5b 00 12    	add    %dh,0x12005b9c(%edx)
5b9c45:	9d                   	popf
5b9c46:	5b                   	pop    %ebx
5b9c47:	00 74 9d 5b          	add    %dh,0x5b(%ebp,%ebx,4)
5b9c4b:	00 ba 9d 5b 00 35    	add    %bh,0x35005b9d(%edx)
5b9c51:	9e                   	sahf
5b9c52:	5b                   	pop    %ebx
5b9c53:	00 7f 9e             	add    %bh,-0x62(%edi)
5b9c56:	5b                   	pop    %ebx
5b9c57:	00 8b 55 dc 8b 45    	add    %cl,0x458bdc55(%ebx)
5b9c5d:	e8 8b 08 ff 11       	call   0x125aa4ed
5b9c62:	89 45 c8             	mov    %eax,-0x38(%ebp)
5b9c65:	8b 45 e8             	mov    -0x18(%ebp),%eax
5b9c68:	8b 10                	mov    (%eax),%edx
5b9c6a:	ff 52 0c             	call   *0xc(%edx)
5b9c6d:	8b d8                	mov    %eax,%ebx
5b9c6f:	4b                   	dec    %ebx
5b9c70:	85 db                	test   %ebx,%ebx
5b9c72:	0f 8c 56 02 00 00    	jl     0x5b9ece
5b9c78:	43                   	inc    %ebx
5b9c79:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
5b9c80:	55                   	push   %ebp
5b9c81:	8d 4d 90             	lea    -0x70(%ebp),%ecx
5b9c84:	8b 45 c8             	mov    -0x38(%ebp),%eax
5b9c87:	33 d2                	xor    %edx,%edx
5b9c89:	8a 10                	mov    (%eax),%dl
5b9c8b:	8b 45 e8             	mov    -0x18(%ebp),%eax
5b9c8e:	8b 38                	mov    (%eax),%edi
5b9c90:	ff 57 18             	call   *0x18(%edi)
5b9c93:	8a 45 92             	mov    -0x6e(%ebp),%al