409657:	56                   	push   %esi
409658:	57                   	push   %edi
409659:	8b d9                	mov    %ecx,%ebx
40965b:	8b fa                	mov    %edx,%edi
40965d:	66 89 45 fe          	mov    %ax,-0x2(%ebp)
409661:	c6 45 fd 00          	movb   $0x0,-0x3(%ebp)
409665:	66 8b 45 fe          	mov    -0x2(%ebp),%ax
409669:	e8 a6 ff ff ff       	call   0x409614
40966e:	83 e0 7f             	and    $0x7f,%eax
409671:	8d 04 40             	lea    (%eax,%eax,2),%eax
409674:	8d 34 c5 dc 30 46 00 	lea    0x4630dc(,%eax,8),%esi
40967b:	66 83 7d fe 01       	cmpw   $0x1,-0x2(%ebp)
409680:	0f 82 86 00 00 00    	jb     0x40970c
409686:	66 81 7d fe 0f 27    	cmpw   $0x270f,-0x2(%ebp)
40968c:	77 7e                	ja     0x40970c
40968e:	66 83 ff 01          	cmp    $0x1,%di
409692:	72 78                	jb     0x40970c
409694:	66 83 ff 0c          	cmp    $0xc,%di
409698:	77 72                	ja     0x40970c
40969a:	66 83 fb 01          	cmp    $0x1,%bx
40969e:	72 6c                	jb     0x40970c
4096a0:	0f b7 c7             	movzwl %di,%eax
4096a3:	66 3b 5c 46 fe       	cmp    -0x2(%esi,%eax,2),%bx
4096a8:	77 62                	ja     0x40970c
4096aa:	0f b7 c7             	movzwl %di,%eax
4096ad:	48                   	dec    %eax
4096ae:	85 c0                	test   %eax,%eax
4096b0:	7e 0e                	jle    0x4096c0
4096b2:	b9 01 00 00 00       	mov    $0x1,%ecx
4096b7:	66 03 5c 4e fe       	add    -0x2(%esi,%ecx,2),%bx
4096bc:	41                   	inc    %ecx
4096bd:	48                   	dec    %eax
4096be:	75 f7                	jne    0x4096b7
4096c0:	0f b7 4d fe          	movzwl -0x2(%ebp),%ecx
4096c4:	49                   	dec    %ecx
4096c5:	8b c1                	mov    %ecx,%eax
4096c7:	be 64 00 00 00       	mov    $0x64,%esi
4096cc:	99                   	cltd
4096cd:	f7 fe                	idiv   %esi
4096cf:	69 f1 6d 01 00 00    	imul   $0x16d,%ecx,%esi
4096d5:	8b d1                	mov    %ecx,%edx
4096d7:	85 d2                	test   %edx,%edx
4096d9:	79 03                	jns    0x4096de
4096db:	83 c2 03             	add    $0x3,%edx
4096de:	c1 fa 02             	sar    $0x2,%edx
4096e1:	03 f2                	add    %edx,%esi
4096e3:	2b f0                	sub    %eax,%esi
4096e5:	8b c1                	mov    %ecx,%eax
4096e7:	b9 90 01 00 00       	mov    $0x190,%ecx
4096ec:	99                   	cltd
4096ed:	f7 f9                	idiv   %ecx
4096ef:	03 f0                	add    %eax,%esi
4096f1:	0f b7 c3             	movzwl %bx,%eax
4096f4:	03 f0                	add    %eax,%esi
4096f6:	81 ee 5a 95 0a 00    	sub    $0xa955a,%esi
4096fc:	89 75 f8             	mov    %esi,-0x8(%ebp)
4096ff:	db 45 f8             	fildl  -0x8(%ebp)
409702:	8b 45 08             	mov    0x8(%ebp),%eax
409705:	dd 18                	fstpl  (%eax)
409707:	9b                   	fwait
409708:	c6 45 fd 01          	movb   $0x1,-0x3(%ebp)
40970c:	8a 45 fd             	mov    -0x3(%ebp),%al
40970f:	5f                   	pop    %edi
409710:	5e                   	pop    %esi
409711:	5b                   	pop    %ebx
409712:	59                   	pop    %ecx
409713:	59                   	pop    %ecx
409714:	5d                   	pop    %ebp
409715:	c2 04 00             	ret    $0x4
409718:	55                   	push   %ebp
409719:	8b ec                	mov    %esp,%ebp
40971b:	83 c4 e8             	add    $0xffffffe8,%esp
40971e:	53                   	push   %ebx
40971f:	56                   	push   %esi
409720:	89 4d f4             	mov    %ecx,-0xc(%ebp)
409723:	89 55 f8             	mov    %edx,-0x8(%ebp)
409726:	89 45 fc             	mov    %eax,-0x4(%ebp)
409729:	8b 5d 08             	mov    0x8(%ebp),%ebx
40972c:	ff 75 10             	push   0x10(%ebp)
40972f:	ff 75 0c             	push   0xc(%ebp)
409732:	8d 45 e8             	lea    -0x18(%ebp),%eax
409735:	e8 ca fd ff ff       	call   0x409504
40973a:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40973d:	85 c9                	test   %ecx,%ecx
40973f:	7f 24                	jg     0x409765
409741:	8b 45 fc             	mov    -0x4(%ebp),%eax
409744:	66 c7 00 00 00       	movw   $0x0,(%eax)
409749:	8b 45 f8             	mov    -0x8(%ebp),%eax
40974c:	66 c7 00 00 00       	movw   $0x0,(%eax)
409751:	8b 45 f4             	mov    -0xc(%ebp),%eax
409754:	66 c7 00 00 00       	movw   $0x0,(%eax)
409759:	66 c7 03 00 00       	movw   $0x0,(%ebx)
40975e:	33 d2                	xor    %edx,%edx
409760:	e9 f2 00 00 00       	jmp    0x409857
409765:	8b c1                	mov    %ecx,%eax
409767:	be 07 00 00 00       	mov    $0x7,%esi
40976c:	99                   	cltd
40976d:	f7 fe                	idiv   %esi
40976f:	42                   	inc    %edx
409770:	66 89 13             	mov    %dx,(%ebx)
409773:	49                   	dec    %ecx
409774:	66 bb 01 00          	mov    $0x1,%bx
409778:	81 f9 b1 3a 02 00    	cmp    $0x23ab1,%ecx
40977e:	7c 13                	jl     0x409793
409780:	81 e9 b1 3a 02 00    	sub    $0x23ab1,%ecx
409786:	66 81 c3 90 01       	add    $0x190,%bx
40978b:	81 f9 b1 3a 02 00    	cmp    $0x23ab1,%ecx
409791:	7d ed                	jge    0x409780
409793:	8d 45 f2             	lea    -0xe(%ebp),%eax
409796:	50                   	push   %eax
409797:	8d 45 f0             	lea    -0x10(%ebp),%eax
40979a:	66 ba ac 8e          	mov    $0x8eac,%dx
40979e:	91                   	xchg   %eax,%ecx
40979f:	e8 fc e2 ff ff       	call   0x407aa0
4097a4:	66 83 7d f0 04       	cmpw   $0x4,-0x10(%ebp)
4097a9:	75 0a                	jne    0x4097b5
4097ab:	66 ff 4d f0          	decw   -0x10(%ebp)
4097af:	66 81 45 f2 ac 8e    	addw   $0x8eac,-0xe(%ebp)
4097b5:	66 6b 45 f0 64       	imul   $0x64,-0x10(%ebp),%ax
4097ba:	66 03 d8             	add    %ax,%bx
4097bd:	8d 45 f2             	lea    -0xe(%ebp),%eax
4097c0:	50                   	push   %eax
4097c1:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4097c4:	0f b7 45 f2          	movzwl -0xe(%ebp),%eax
4097c8:	66 ba b5 05          	mov    $0x5b5,%dx
4097cc:	e8 cf e2 ff ff       	call   0x407aa0
4097d1:	66 8b 45 f0          	mov    -0x10(%ebp),%ax
4097d5:	c1 e0 02             	shl    $0x2,%eax
4097d8:	66 03 d8             	add    %ax,%bx
4097db:	8d 45 f2             	lea    -0xe(%ebp),%eax
4097de:	50                   	push   %eax
4097df:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4097e2:	0f b7 45 f2          	movzwl -0xe(%ebp),%eax
4097e6:	66 ba 6d 01          	mov    $0x16d,%dx
4097ea:	e8 b1 e2 ff ff       	call   0x407aa0
4097ef:	66 83 7d f0 04       	cmpw   $0x4,-0x10(%ebp)
4097f4:	75 0a                	jne    0x409800
4097f6:	66 ff 4d f0          	decw   -0x10(%ebp)
4097fa:	66 81 45 f2 6d 01    	addw   $0x16d,-0xe(%ebp)
409800:	66 03 5d f0          	add    -0x10(%ebp),%bx
409804:	8b c3                	mov    %ebx,%eax
409806:	e8 09 fe ff ff       	call   0x409614
40980b:	8b d0                	mov    %eax,%edx
40980d:	33 c0                	xor    %eax,%eax
40980f:	8a c2                	mov    %dl,%al
409811:	8d 04 40             	lea    (%eax,%eax,2),%eax
409814:	8d 34 c5 dc 30 46 00 	lea    0x4630dc(,%eax,8),%esi
40981b:	66 b8 01 00          	mov    $0x1,%ax
40981f:	0f b7 c8             	movzwl %ax,%ecx
409822:	66 8b 4c 4e fe       	mov    -0x2(%esi,%ecx,2),%cx
409827:	66 89 4d f0          	mov    %cx,-0x10(%ebp)
40982b:	66 8b 4d f2          	mov    -0xe(%ebp),%cx
40982f:	66 3b 4d f0          	cmp    -0x10(%ebp),%cx
409833:	72 0b                	jb     0x409840
409835:	66 8b 4d f0          	mov    -0x10(%ebp),%cx
409839:	66 29 4d f2          	sub    %cx,-0xe(%ebp)
40983d:	40                   	inc    %eax
40983e:	eb df                	jmp    0x40981f
409840:	8b 4d fc             	mov    -0x4(%ebp),%ecx
409843:	66 89 19             	mov    %bx,(%ecx)
409846:	8b 4d f8             	mov    -0x8(%ebp),%ecx
409849:	66 89 01             	mov    %ax,(%ecx)
40984c:	66 8b 45 f2          	mov    -0xe(%ebp),%ax
409850:	40                   	inc    %eax
409851:	8b 4d f4             	mov    -0xc(%ebp),%ecx
409854:	66 89 01             	mov    %ax,(%ecx)
409857:	8b c2                	mov    %edx,%eax
409859:	5e                   	pop    %esi
40985a:	5b                   	pop    %ebx
40985b:	8b e5                	mov    %ebp,%esp
40985d:	5d                   	pop    %ebp
40985e:	c2 0c 00             	ret    $0xc
409861:	8d 40 00             	lea    0x0(%eax),%eax
409864:	55                   	push   %ebp
409865:	8b ec                	mov    %esp,%ebp
409867:	51                   	push   %ecx
409868:	56                   	push   %esi
409869:	8b f0                	mov    %eax,%esi
40986b:	ff 75 0c             	push   0xc(%ebp)
40986e:	ff 75 08             	push   0x8(%ebp)
409871:	8d 45 fe             	lea    -0x2(%ebp),%eax
409874:	50                   	push   %eax
409875:	8b c6                	mov    %esi,%eax
409877:	e8 9c fe ff ff       	call   0x409718
40987c:	5e                   	pop    %esi
40987d:	59                   	pop    %ecx
40987e:	5d                   	pop    %ebp
40987f:	c2 08 00             	ret    $0x8
409882:	8b c0                	mov    %eax,%eax
409884:	55                   	push   %ebp
409885:	8b ec                	mov    %esp,%ebp
409887:	83 c4 f8             	add    $0xfffffff8,%esp
40988a:	ff 75 0c             	push   0xc(%ebp)
40988d:	ff 75 08             	push   0x8(%ebp)
409890:	8d 45 f8             	lea    -0x8(%ebp),%eax
409893:	e8 6c fc ff ff       	call   0x409504
409898:	8b 45 fc             	mov    -0x4(%ebp),%eax
40989b:	b9 07 00 00 00       	mov    $0x7,%ecx
4098a0:	99                   	cltd
4098a1:	f7 f9                	idiv   %ecx
4098a3:	8b c2                	mov    %edx,%eax
4098a5:	40                   	inc    %eax
4098a6:	59                   	pop    %ecx
4098a7:	59                   	pop    %ecx
4098a8:	5d                   	pop    %ebp
4098a9:	c2 08 00             	ret    $0x8
4098ac:	83 c4 f0             	add    $0xfffffff0,%esp
4098af:	54                   	push   %esp
4098b0:	e8 af c7 ff ff       	call   0x406064
4098b5:	66 8b 04 24          	mov    (%esp),%ax
4098b9:	83 c4 10             	add    $0x10,%esp
4098bc:	c3                   	ret
4098bd:	8d 40 00             	lea    0x0(%eax),%eax
4098c0:	55                   	push   %ebp
4098c1:	8b ec                	mov    %esp,%ebp
4098c3:	53                   	push   %ebx
4098c4:	8b 4d 08             	mov    0x8(%ebp),%ecx
4098c7:	bb 00 01 00 00       	mov    $0x100,%ebx
4098cc:	2b 99 fc fe ff ff    	sub    -0x104(%ecx),%ebx
4098d2:	3b d3                	cmp    %ebx,%edx
4098d4:	7d 02                	jge    0x4098d8
4098d6:	8b da                	mov    %edx,%ebx
4098d8:	85 db                	test   %ebx,%ebx
4098da:	74 1a                	je     0x4098f6
4098dc:	8b 55 08             	mov    0x8(%ebp),%edx
4098df:	8b 92 fc fe ff ff    	mov    -0x104(%edx),%edx
4098e5:	8b 4d 08             	mov    0x8(%ebp),%ecx
4098e8:	8d 94 11 00 ff ff ff 	lea    -0x100(%ecx,%edx,1),%edx
4098ef:	8b cb                	mov    %ebx,%ecx
4098f1:	e8 c2 8f ff ff       	call   0x4028b8
4098f6:	8b 45 08             	mov    0x8(%ebp),%eax
4098f9:	01 98 fc fe ff ff    	add    %ebx,-0x104(%eax)
4098ff:	5b                   	pop    %ebx
409900:	5d                   	pop    %ebp
409901:	c3                   	ret
409902:	8b c0                	mov    %eax,%eax
409904:	55                   	push   %ebp
409905:	8b ec                	mov    %esp,%ebp
409907:	53                   	push   %ebx
409908:	8b d8                	mov    %eax,%ebx
40990a:	8b 45 08             	mov    0x8(%ebp),%eax
40990d:	50                   	push   %eax
40990e:	8b c3                	mov    %ebx,%eax
409910:	e8 43 a9 ff ff       	call   0x404258
409915:	8b d0                	mov    %eax,%edx
409917:	8b c3                	mov    %ebx,%eax
409919:	e8 a2 ff ff ff       	call   0x4098c0
40991e:	59                   	pop    %ecx
40991f:	5b                   	pop    %ebx
409920:	5d                   	pop    %ebp
409921:	c3                   	ret
409922:	8b c0                	mov    %eax,%eax
409924:	55                   	push   %ebp
409925:	8b ec                	mov    %esp,%ebp
409927:	83 c4 e0             	add    $0xffffffe0,%esp
40992a:	53                   	push   %ebx
40992b:	56                   	push   %esi
40992c:	8b f2                	mov    %edx,%esi
40992e:	8b d8                	mov    %eax,%ebx
409930:	8b 45 08             	mov    0x8(%ebp),%eax
409933:	50                   	push   %eax
409934:	6a 04                	push   $0x4
409936:	89 75 e0             	mov    %esi,-0x20(%ebp)
409939:	c6 45 e4 00          	movb   $0x0,-0x1c(%ebp)
40993d:	89 5d e8             	mov    %ebx,-0x18(%ebp)
409940:	c6 45 ec 00          	movb   $0x0,-0x14(%ebp)
409944:	8d 45 e0             	lea    -0x20(%ebp),%eax
409947:	50                   	push   %eax
409948:	6a 01                	push   $0x1
40994a:	b9 84 31 46 00       	mov    $0x463184,%ecx
40994f:	8d 45 f0             	lea    -0x10(%ebp),%eax
409952:	ba 10 00 00 00       	mov    $0x10,%edx
409957:	e8 94 ef ff ff       	call   0x4088f0
40995c:	8b d0                	mov    %eax,%edx
40995e:	8d 45 f0             	lea    -0x10(%ebp),%eax
409961:	e8 5a ff ff ff       	call   0x4098c0
409966:	59                   	pop    %ecx
409967:	5e                   	pop    %esi
409968:	5b                   	pop    %ebx
409969:	8b e5                	mov    %ebp,%esp
40996b:	5d                   	pop    %ebp
40996c:	c3                   	ret
40996d:	8d 40 00             	lea    0x0(%eax),%eax
409970:	55                   	push   %ebp
409971:	8b ec                	mov    %esp,%ebp
409973:	53                   	push   %ebx
409974:	8b 45 08             	mov    0x8(%ebp),%eax
409977:	83 c0 fc             	add    $0xfffffffc,%eax
40997a:	8b 10                	mov    (%eax),%edx
40997c:	eb 02                	jmp    0x409980
40997e:	ff 00                	incl   (%eax)
409980:	8b 08                	mov    (%eax),%ecx
409982:	8a 09                	mov    (%ecx),%cl
409984:	8b 5d 08             	mov    0x8(%ebp),%ebx
409987:	3a 4b fb             	cmp    -0x5(%ebx),%cl
40998a:	74 f2                	je     0x40997e
40998c:	8b 00                	mov    (%eax),%eax
40998e:	2b c2                	sub    %edx,%eax
409990:	40                   	inc    %eax
409991:	8b 55 08             	mov    0x8(%ebp),%edx
409994:	89 42 f4             	mov    %eax,-0xc(%edx)
409997:	5b                   	pop    %ebx
409998:	5d                   	pop    %ebp
409999:	c3                   	ret
40999a:	8b c0                	mov    %eax,%eax
40999c:	55                   	push   %ebp
40999d:	8b ec                	mov    %esp,%ebp
40999f:	8b 45 08             	mov    0x8(%ebp),%eax
4099a2:	80 78 ed 00          	cmpb   $0x0,-0x13(%eax)
4099a6:	75 2a                	jne    0x4099d2
4099a8:	8b 45 08             	mov    0x8(%ebp),%eax
4099ab:	8b 40 08             	mov    0x8(%eax),%eax
4099ae:	ff 70 0c             	push   0xc(%eax)
4099b1:	ff 70 08             	push   0x8(%eax)
4099b4:	8b 45 08             	mov    0x8(%ebp),%eax
4099b7:	8d 48 ee             	lea    -0x12(%eax),%ecx
4099ba:	8b 45 08             	mov    0x8(%ebp),%eax
4099bd:	8d 50 f0             	lea    -0x10(%eax),%edx
4099c0:	8b 45 08             	mov    0x8(%ebp),%eax
4099c3:	83 c0 f2             	add    $0xfffffff2,%eax
4099c6:	e8 99 fe ff ff       	call   0x409864
4099cb:	8b 45 08             	mov    0x8(%ebp),%eax
4099ce:	c6 40 ed 01          	movb   $0x1,-0x13(%eax)
4099d2:	5d                   	pop    %ebp
4099d3:	c3                   	ret
4099d4:	55                   	push   %ebp
4099d5:	8b ec                	mov    %esp,%ebp
4099d7:	8b 45 08             	mov    0x8(%ebp),%eax
4099da:	80 78 e3 00          	cmpb   $0x0,-0x1d(%eax)
4099de:	75 31                	jne    0x409a11
4099e0:	8b 45 08             	mov    0x8(%ebp),%eax
4099e3:	8b 40 08             	mov    0x8(%eax),%eax
4099e6:	ff 70 0c             	push   0xc(%eax)
4099e9:	ff 70 08             	push   0x8(%eax)
4099ec:	8b 45 08             	mov    0x8(%ebp),%eax
4099ef:	83 c0 e4             	add    $0xffffffe4,%eax
4099f2:	50                   	push   %eax
4099f3:	8b 45 08             	mov    0x8(%ebp),%eax
4099f6:	8d 48 e6             	lea    -0x1a(%eax),%ecx
4099f9:	8b 45 08             	mov    0x8(%ebp),%eax
4099fc:	8d 50 e8             	lea    -0x18(%eax),%edx
4099ff:	8b 45 08             	mov    0x8(%ebp),%eax
409a02:	83 c0 ea             	add    $0xffffffea,%eax
409a05:	e8 ae fb ff ff       	call   0x4095b8
409a0a:	8b 45 08             	mov    0x8(%ebp),%eax
409a0d:	c6 40 e3 01          	movb   $0x1,-0x1d(%eax)
409a11:	5d                   	pop    %ebp
409a12:	c3                   	ret
409a13:	90                   	nop
409a14:	55                   	push   %ebp