4097bb:	ff 75 0c             	push   0xc(%ebp)
4097be:	8d 45 e8             	lea    -0x18(%ebp),%eax
4097c1:	e8 5a fd ff ff       	call   0x409520
4097c6:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4097c9:	85 c9                	test   %ecx,%ecx
4097cb:	7f 24                	jg     0x4097f1
4097cd:	8b 45 fc             	mov    -0x4(%ebp),%eax
4097d0:	66 c7 00 00 00       	movw   $0x0,(%eax)
4097d5:	8b 45 f8             	mov    -0x8(%ebp),%eax
4097d8:	66 c7 00 00 00       	movw   $0x0,(%eax)
4097dd:	8b 45 f4             	mov    -0xc(%ebp),%eax
4097e0:	66 c7 00 00 00       	movw   $0x0,(%eax)
4097e5:	66 c7 03 00 00       	movw   $0x0,(%ebx)
4097ea:	33 d2                	xor    %edx,%edx
4097ec:	e9 f2 00 00 00       	jmp    0x4098e3
4097f1:	8b c1                	mov    %ecx,%eax
4097f3:	be 07 00 00 00       	mov    $0x7,%esi
4097f8:	99                   	cltd
4097f9:	f7 fe                	idiv   %esi
4097fb:	42                   	inc    %edx
4097fc:	66 89 13             	mov    %dx,(%ebx)
4097ff:	49                   	dec    %ecx
409800:	66 bb 01 00          	mov    $0x1,%bx
409804:	81 f9 b1 3a 02 00    	cmp    $0x23ab1,%ecx
40980a:	7c 13                	jl     0x40981f
40980c:	81 e9 b1 3a 02 00    	sub    $0x23ab1,%ecx
409812:	66 81 c3 90 01       	add    $0x190,%bx
409817:	81 f9 b1 3a 02 00    	cmp    $0x23ab1,%ecx
40981d:	7d ed                	jge    0x40980c
40981f:	8d 45 f2             	lea    -0xe(%ebp),%eax
409822:	50                   	push   %eax
409823:	8d 45 f0             	lea    -0x10(%ebp),%eax
409826:	66 ba ac 8e          	mov    $0x8eac,%dx
40982a:	91                   	xchg   %eax,%ecx
40982b:	e8 74 e2 ff ff       	call   0x407aa4
409830:	66 83 7d f0 04       	cmpw   $0x4,-0x10(%ebp)
409835:	75 0a                	jne    0x409841
409837:	66 ff 4d f0          	decw   -0x10(%ebp)
40983b:	66 81 45 f2 ac 8e    	addw   $0x8eac,-0xe(%ebp)
409841:	66 6b 45 f0 64       	imul   $0x64,-0x10(%ebp),%ax
409846:	66 03 d8             	add    %ax,%bx
409849:	8d 45 f2             	lea    -0xe(%ebp),%eax
40984c:	50                   	push   %eax
40984d:	8d 4d f0             	lea    -0x10(%ebp),%ecx
409850:	0f b7 45 f2          	movzwl -0xe(%ebp),%eax
409854:	66 ba b5 05          	mov    $0x5b5,%dx
409858:	e8 47 e2 ff ff       	call   0x407aa4
40985d:	66 8b 45 f0          	mov    -0x10(%ebp),%ax
409861:	c1 e0 02             	shl    $0x2,%eax
409864:	66 03 d8             	add    %ax,%bx
409867:	8d 45 f2             	lea    -0xe(%ebp),%eax
40986a:	50                   	push   %eax
40986b:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40986e:	0f b7 45 f2          	movzwl -0xe(%ebp),%eax
409872:	66 ba 6d 01          	mov    $0x16d,%dx
409876:	e8 29 e2 ff ff       	call   0x407aa4
40987b:	66 83 7d f0 04       	cmpw   $0x4,-0x10(%ebp)
409880:	75 0a                	jne    0x40988c
409882:	66 ff 4d f0          	decw   -0x10(%ebp)
409886:	66 81 45 f2 6d 01    	addw   $0x16d,-0xe(%ebp)
40988c:	66 03 5d f0          	add    -0x10(%ebp),%bx
409890:	8b c3                	mov    %ebx,%eax
409892:	e8 d9 fd ff ff       	call   0x409670
409897:	8b d0                	mov    %eax,%edx
409899:	33 c0                	xor    %eax,%eax
40989b:	8a c2                	mov    %dl,%al
40989d:	8d 04 40             	lea    (%eax,%eax,2),%eax
4098a0:	8d 34 c5 dc d0 45 00 	lea    0x45d0dc(,%eax,8),%esi
4098a7:	66 b8 01 00          	mov    $0x1,%ax
4098ab:	0f b7 c8             	movzwl %ax,%ecx
4098ae:	66 8b 4c 4e fe       	mov    -0x2(%esi,%ecx,2),%cx
4098b3:	66 89 4d f0          	mov    %cx,-0x10(%ebp)
4098b7:	66 8b 4d f2          	mov    -0xe(%ebp),%cx
4098bb:	66 3b 4d f0          	cmp    -0x10(%ebp),%cx
4098bf:	72 0b                	jb     0x4098cc
4098c1:	66 8b 4d f0          	mov    -0x10(%ebp),%cx
4098c5:	66 29 4d f2          	sub    %cx,-0xe(%ebp)
4098c9:	40                   	inc    %eax
4098ca:	eb df                	jmp    0x4098ab
4098cc:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4098cf:	66 89 19             	mov    %bx,(%ecx)
4098d2:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4098d5:	66 89 01             	mov    %ax,(%ecx)
4098d8:	66 8b 45 f2          	mov    -0xe(%ebp),%ax
4098dc:	40                   	inc    %eax
4098dd:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4098e0:	66 89 01             	mov    %ax,(%ecx)
4098e3:	8b c2                	mov    %edx,%eax
4098e5:	5e                   	pop    %esi
4098e6:	5b                   	pop    %ebx
4098e7:	8b e5                	mov    %ebp,%esp
4098e9:	5d                   	pop    %ebp
4098ea:	c2 0c 00             	ret    $0xc
4098ed:	8d 40 00             	lea    0x0(%eax),%eax
4098f0:	55                   	push   %ebp
4098f1:	8b ec                	mov    %esp,%ebp
4098f3:	51                   	push   %ecx
4098f4:	56                   	push   %esi
4098f5:	8b f0                	mov    %eax,%esi
4098f7:	ff 75 0c             	push   0xc(%ebp)
4098fa:	ff 75 08             	push   0x8(%ebp)
4098fd:	8d 45 fe             	lea    -0x2(%ebp),%eax
409900:	50                   	push   %eax
409901:	8b c6                	mov    %esi,%eax
409903:	e8 9c fe ff ff       	call   0x4097a4
409908:	5e                   	pop    %esi
409909:	59                   	pop    %ecx
40990a:	5d                   	pop    %ebp
40990b:	c2 08 00             	ret    $0x8
40990e:	8b c0                	mov    %eax,%eax
409910:	55                   	push   %ebp
409911:	8b ec                	mov    %esp,%ebp
409913:	53                   	push   %ebx
409914:	8b d8                	mov    %eax,%ebx
409916:	ff 75 0c             	push   0xc(%ebp)
409919:	ff 75 08             	push   0x8(%ebp)
40991c:	8d 43 04             	lea    0x4(%ebx),%eax
40991f:	50                   	push   %eax
409920:	8d 4b 06             	lea    0x6(%ebx),%ecx
409923:	8d 53 02             	lea    0x2(%ebx),%edx
409926:	8b c3                	mov    %ebx,%eax
409928:	e8 77 fe ff ff       	call   0x4097a4
40992d:	66 ff 4b 04          	decw   0x4(%ebx)
409931:	ff 75 0c             	push   0xc(%ebp)
409934:	ff 75 08             	push   0x8(%ebp)
409937:	8d 43 0e             	lea    0xe(%ebx),%eax
40993a:	50                   	push   %eax
40993b:	8d 4b 0c             	lea    0xc(%ebx),%ecx
40993e:	8d 53 0a             	lea    0xa(%ebx),%edx
409941:	8d 43 08             	lea    0x8(%ebx),%eax
409944:	e8 cb fc ff ff       	call   0x409614
409949:	5b                   	pop    %ebx
40994a:	5d                   	pop    %ebp
40994b:	c2 08 00             	ret    $0x8
40994e:	8b c0                	mov    %eax,%eax
409950:	53                   	push   %ebx
409951:	83 c4 f8             	add    $0xfffffff8,%esp
409954:	8b d8                	mov    %eax,%ebx
409956:	66 8b 4b 06          	mov    0x6(%ebx),%cx
40995a:	66 8b 53 02          	mov    0x2(%ebx),%dx
40995e:	66 8b 03             	mov    (%ebx),%ax
409961:	e8 0e fe ff ff       	call   0x409774
409966:	dd 1c 24             	fstpl  (%esp)
409969:	9b dd 04 24          	fldl   (%esp)
40996d:	d8 1d bc 99 40 00    	fcomps 0x4099bc
409973:	df e0                	fnstsw %ax
409975:	9e                   	sahf
409976:	72 1f                	jb     0x409997
409978:	66 8b 43 0e          	mov    0xe(%ebx),%ax
40997c:	50                   	push   %eax
40997d:	66 8b 4b 0c          	mov    0xc(%ebx),%cx
409981:	66 8b 53 0a          	mov    0xa(%ebx),%dx
409985:	66 8b 43 08          	mov    0x8(%ebx),%ax
409989:	e8 46 fc ff ff       	call   0x4095d4
40998e:	dc 04 24             	faddl  (%esp)
409991:	dd 1c 24             	fstpl  (%esp)
409994:	9b                   	fwait
409995:	eb 1d                	jmp    0x4099b4
409997:	66 8b 43 0e          	mov    0xe(%ebx),%ax
40999b:	50                   	push   %eax
40999c:	66 8b 4b 0c          	mov    0xc(%ebx),%cx
4099a0:	66 8b 53 0a          	mov    0xa(%ebx),%dx
4099a4:	66 8b 43 08          	mov    0x8(%ebx),%ax
4099a8:	e8 27 fc ff ff       	call   0x4095d4
4099ad:	dc 2c 24             	fsubrl (%esp)
4099b0:	dd 1c 24             	fstpl  (%esp)
4099b3:	9b dd 04 24          	fldl   (%esp)
4099b7:	59                   	pop    %ecx
4099b8:	5a                   	pop    %edx
4099b9:	5b                   	pop    %ebx
4099ba:	c3                   	ret
4099bb:	00 00                	add    %al,(%eax)
4099bd:	00 00                	add    %al,(%eax)
4099bf:	00 55 8b             	add    %dl,-0x75(%ebp)
4099c2:	ec                   	in     (%dx),%al
4099c3:	83 c4 f8             	add    $0xfffffff8,%esp
4099c6:	ff 75 0c             	push   0xc(%ebp)
4099c9:	ff 75 08             	push   0x8(%ebp)
4099cc:	8d 45 f8             	lea    -0x8(%ebp),%eax
4099cf:	e8 4c fb ff ff       	call   0x409520
4099d4:	8b 45 fc             	mov    -0x4(%ebp),%eax
4099d7:	b9 07 00 00 00       	mov    $0x7,%ecx
4099dc:	99                   	cltd
4099dd:	f7 f9                	idiv   %ecx
4099df:	8b c2                	mov    %edx,%eax
4099e1:	40                   	inc    %eax
4099e2:	59                   	pop    %ecx
4099e3:	59                   	pop    %ecx
4099e4:	5d                   	pop    %ebp
4099e5:	c2 08 00             	ret    $0x8
4099e8:	83 c4 e0             	add    $0xffffffe0,%esp
4099eb:	8d 44 24 08          	lea    0x8(%esp),%eax
4099ef:	50                   	push   %eax
4099f0:	e8 93 c6 ff ff       	call   0x406088
4099f5:	66 8b 4c 24 0e       	mov    0xe(%esp),%cx
4099fa:	66 8b 54 24 0a       	mov    0xa(%esp),%dx
4099ff:	66 8b 44 24 08       	mov    0x8(%esp),%ax
409a04:	e8 6b fd ff ff       	call   0x409774
409a09:	dd 5c 24 18          	fstpl  0x18(%esp)
409a0d:	9b                   	fwait
409a0e:	66 8b 44 24 16       	mov    0x16(%esp),%ax
409a13:	50                   	push   %eax
409a14:	66 8b 4c 24 18       	mov    0x18(%esp),%cx
409a19:	66 8b 54 24 16       	mov    0x16(%esp),%dx
409a1e:	66 8b 44 24 14       	mov    0x14(%esp),%ax
409a23:	e8 ac fb ff ff       	call   0x4095d4
409a28:	dc 44 24 18          	faddl  0x18(%esp)
409a2c:	dd 1c 24             	fstpl  (%esp)
409a2f:	9b dd 04 24          	fldl   (%esp)
409a33:	83 c4 20             	add    $0x20,%esp
409a36:	c3                   	ret
409a37:	90                   	nop
409a38:	55                   	push   %ebp
409a39:	8b ec                	mov    %esp,%ebp
409a3b:	83 c4 f8             	add    $0xfffffff8,%esp
409a3e:	53                   	push   %ebx
409a3f:	8b d8                	mov    %eax,%ebx
409a41:	dd 03                	fldl   (%ebx)
409a43:	e8 44 90 ff ff       	call   0x402a8c
409a48:	89 45 f8             	mov    %eax,-0x8(%ebp)
409a4b:	89 55 fc             	mov    %edx,-0x4(%ebp)
409a4e:	df 6d f8             	fildll -0x8(%ebp)
409a51:	dd 1b                	fstpl  (%ebx)
409a53:	9b dd 03             	fldl   (%ebx)
409a56:	d8 1d 88 9a 40 00    	fcomps 0x409a88
409a5c:	df e0                	fnstsw %ax
409a5e:	9e                   	sahf
409a5f:	72 11                	jb     0x409a72
409a61:	dd 45 08             	fldl   0x8(%ebp)
409a64:	e8 f3 8f ff ff       	call   0x402a5c
409a69:	d9 e1                	fabs
409a6b:	dc 03                	faddl  (%ebx)
409a6d:	dd 1b                	fstpl  (%ebx)
409a6f:	9b                   	fwait
409a70:	eb 0f                	jmp    0x409a81
409a72:	dd 45 08             	fldl   0x8(%ebp)
409a75:	e8 e2 8f ff ff       	call   0x402a5c
409a7a:	d9 e1                	fabs
409a7c:	dc 2b                	fsubrl (%ebx)
409a7e:	dd 1b                	fstpl  (%ebx)
409a80:	9b                   	fwait
409a81:	5b                   	pop    %ebx
409a82:	59                   	pop    %ecx
409a83:	59                   	pop    %ecx
409a84:	5d                   	pop    %ebp
409a85:	c2 08 00             	ret    $0x8
409a88:	00 00                	add    %al,(%eax)
409a8a:	00 00                	add    %al,(%eax)
409a8c:	83 c4 f0             	add    $0xfffffff0,%esp
409a8f:	54                   	push   %esp
409a90:	e8 f3 c5 ff ff       	call   0x406088
409a95:	66 8b 04 24          	mov    (%esp),%ax
409a99:	83 c4 10             	add    $0x10,%esp
409a9c:	c3                   	ret
409a9d:	8d 40 00             	lea    0x0(%eax),%eax
409aa0:	55                   	push   %ebp
409aa1:	8b ec                	mov    %esp,%ebp
409aa3:	53                   	push   %ebx
409aa4:	8b 4d 08             	mov    0x8(%ebp),%ecx
409aa7:	bb 00 01 00 00       	mov    $0x100,%ebx
409aac:	2b 99 fc fe ff ff    	sub    -0x104(%ecx),%ebx
409ab2:	3b d3                	cmp    %ebx,%edx
409ab4:	7d 02                	jge    0x409ab8
409ab6:	8b da                	mov    %edx,%ebx
409ab8:	85 db                	test   %ebx,%ebx
409aba:	74 1a                	je     0x409ad6
409abc:	8b 55 08             	mov    0x8(%ebp),%edx
409abf:	8b 92 fc fe ff ff    	mov    -0x104(%edx),%edx
409ac5:	8b 4d 08             	mov    0x8(%ebp),%ecx
409ac8:	8d 94 11 00 ff ff ff 	lea    -0x100(%ecx,%edx,1),%edx
409acf:	8b cb                	mov    %ebx,%ecx
409ad1:	e8 e2 8d ff ff       	call   0x4028b8
409ad6:	8b 45 08             	mov    0x8(%ebp),%eax
409ad9:	01 98 fc fe ff ff    	add    %ebx,-0x104(%eax)
409adf:	5b                   	pop    %ebx
409ae0:	5d                   	pop    %ebp
409ae1:	c3                   	ret
409ae2:	8b c0                	mov    %eax,%eax
409ae4:	55                   	push   %ebp
409ae5:	8b ec                	mov    %esp,%ebp
409ae7:	53                   	push   %ebx
409ae8:	8b d8                	mov    %eax,%ebx
409aea:	8b 45 08             	mov    0x8(%ebp),%eax
409aed:	50                   	push   %eax
409aee:	8b c3                	mov    %ebx,%eax
409af0:	e8 87 a7 ff ff       	call   0x40427c
409af5:	8b d0                	mov    %eax,%edx
409af7:	8b c3                	mov    %ebx,%eax
409af9:	e8 a2 ff ff ff       	call   0x409aa0
409afe:	59                   	pop    %ecx
409aff:	5b                   	pop    %ebx
409b00:	5d                   	pop    %ebp
409b01:	c3                   	ret
409b02:	8b c0                	mov    %eax,%eax
409b04:	55                   	push   %ebp
409b05:	8b ec                	mov    %esp,%ebp
409b07:	83 c4 e0             	add    $0xffffffe0,%esp
409b0a:	53                   	push   %ebx
409b0b:	56                   	push   %esi
409b0c:	8b f2                	mov    %edx,%esi
409b0e:	8b d8                	mov    %eax,%ebx
409b10:	8b 45 08             	mov    0x8(%ebp),%eax
409b13:	50                   	push   %eax
409b14:	6a 04                	push   $0x4
409b16:	89 75 e0             	mov    %esi,-0x20(%ebp)
409b19:	c6 45 e4 00          	movb   $0x0,-0x1c(%ebp)
409b1d:	89 5d e8             	mov    %ebx,-0x18(%ebp)
409b20:	c6 45 ec 00          	movb   $0x0,-0x14(%ebp)
409b24:	8d 45 e0             	lea    -0x20(%ebp),%eax
409b27:	50                   	push   %eax
409b28:	6a 01                	push   $0x1
409b2a:	b9 84 d1 45 00       	mov    $0x45d184,%ecx
409b2f:	8d 45 f0             	lea    -0x10(%ebp),%eax
409b32:	ba 10 00 00 00       	mov    $0x10,%edx
409b37:	e8 d0 ed ff ff       	call   0x40890c
409b3c:	8b d0                	mov    %eax,%edx
409b3e:	8d 45 f0             	lea    -0x10(%ebp),%eax
409b41:	e8 5a ff ff ff       	call   0x409aa0
409b46:	59                   	pop    %ecx
409b47:	5e                   	pop    %esi
409b48:	5b                   	pop    %ebx
409b49:	8b e5                	mov    %ebp,%esp
409b4b:	5d                   	pop    %ebp
409b4c:	c3                   	ret
409b4d:	8d 40 00             	lea    0x0(%eax),%eax
409b50:	55                   	push   %ebp
409b51:	8b ec                	mov    %esp,%ebp
409b53:	53                   	push   %ebx
409b54:	8b 45 08             	mov    0x8(%ebp),%eax
409b57:	83 c0 fc             	add    $0xfffffffc,%eax
409b5a:	8b 10                	mov    (%eax),%edx
409b5c:	eb 02                	jmp    0x409b60
409b5e:	ff 00                	incl   (%eax)
409b60:	8b 08                	mov    (%eax),%ecx
409b62:	8a 09                	mov    (%ecx),%cl
409b64:	8b 5d 08             	mov    0x8(%ebp),%ebx
409b67:	3a 4b fb             	cmp    -0x5(%ebx),%cl
409b6a:	74 f2                	je     0x409b5e
409b6c:	8b 00                	mov    (%eax),%eax
409b6e:	2b c2                	sub    %edx,%eax
409b70:	40                   	inc    %eax
409b71:	8b 55 08             	mov    0x8(%ebp),%edx
409b74:	89 42 f4             	mov    %eax,-0xc(%edx)
409b77:	5b                   	pop    %ebx
409b78:	5d                   	pop    %ebp
409b79:	c3                   	ret
409b7a:	8b c0                	mov    %eax,%eax
409b7c:	55                   	push   %ebp
409b7d:	8b ec                	mov    %esp,%ebp
409b7f:	8b 45 08             	mov    0x8(%ebp),%eax