40a3e7:	33 d2                	xor    %edx,%edx
40a3e9:	f7 f1                	div    %ecx
40a3eb:	85 d2                	test   %edx,%edx
40a3ed:	74 05                	je     0x40a3f4
40a3ef:	33 c0                	xor    %eax,%eax
40a3f1:	5e                   	pop    %esi
40a3f2:	5b                   	pop    %ebx
40a3f3:	c3                   	ret
40a3f4:	b0 01                	mov    $0x1,%al
40a3f6:	5e                   	pop    %esi
40a3f7:	5b                   	pop    %ebx
40a3f8:	c3                   	ret
40a3f9:	8d 40 00             	lea    0x0(%eax),%eax
40a3fc:	55                   	push   %ebp
40a3fd:	8b ec                	mov    %esp,%ebp
40a3ff:	83 c4 f8             	add    $0xfffffff8,%esp
40a402:	53                   	push   %ebx
40a403:	56                   	push   %esi
40a404:	57                   	push   %edi
40a405:	8b d9                	mov    %ecx,%ebx
40a407:	8b fa                	mov    %edx,%edi
40a409:	66 89 45 fe          	mov    %ax,-0x2(%ebp)
40a40d:	c6 45 fd 00          	movb   $0x0,-0x3(%ebp)
40a411:	66 8b 45 fe          	mov    -0x2(%ebp),%ax
40a415:	e8 a6 ff ff ff       	call   0x40a3c0
40a41a:	83 e0 7f             	and    $0x7f,%eax
40a41d:	8d 04 40             	lea    (%eax,%eax,2),%eax
40a420:	8d 34 c5 dc d0 48 00 	lea    0x48d0dc(,%eax,8),%esi
40a427:	66 83 7d fe 01       	cmpw   $0x1,-0x2(%ebp)
40a42c:	0f 82 86 00 00 00    	jb     0x40a4b8
40a432:	66 81 7d fe 0f 27    	cmpw   $0x270f,-0x2(%ebp)
40a438:	77 7e                	ja     0x40a4b8
40a43a:	66 83 ff 01          	cmp    $0x1,%di
40a43e:	72 78                	jb     0x40a4b8
40a440:	66 83 ff 0c          	cmp    $0xc,%di
40a444:	77 72                	ja     0x40a4b8
40a446:	66 83 fb 01          	cmp    $0x1,%bx
40a44a:	72 6c                	jb     0x40a4b8
40a44c:	0f b7 c7             	movzwl %di,%eax
40a44f:	66 3b 5c 46 fe       	cmp    -0x2(%esi,%eax,2),%bx
40a454:	77 62                	ja     0x40a4b8
40a456:	0f b7 c7             	movzwl %di,%eax
40a459:	48                   	dec    %eax
40a45a:	85 c0                	test   %eax,%eax
40a45c:	7e 0e                	jle    0x40a46c
40a45e:	b9 01 00 00 00       	mov    $0x1,%ecx
40a463:	66 03 5c 4e fe       	add    -0x2(%esi,%ecx,2),%bx
40a468:	41                   	inc    %ecx
40a469:	48                   	dec    %eax
40a46a:	75 f7                	jne    0x40a463
40a46c:	0f b7 4d fe          	movzwl -0x2(%ebp),%ecx
40a470:	49                   	dec    %ecx
40a471:	8b c1                	mov    %ecx,%eax
40a473:	be 64 00 00 00       	mov    $0x64,%esi
40a478:	99                   	cltd
40a479:	f7 fe                	idiv   %esi
40a47b:	69 f1 6d 01 00 00    	imul   $0x16d,%ecx,%esi
40a481:	8b d1                	mov    %ecx,%edx
40a483:	85 d2                	test   %edx,%edx
40a485:	79 03                	jns    0x40a48a
40a487:	83 c2 03             	add    $0x3,%edx
40a48a:	c1 fa 02             	sar    $0x2,%edx
40a48d:	03 f2                	add    %edx,%esi
40a48f:	2b f0                	sub    %eax,%esi
40a491:	8b c1                	mov    %ecx,%eax
40a493:	b9 90 01 00 00       	mov    $0x190,%ecx
40a498:	99                   	cltd
40a499:	f7 f9                	idiv   %ecx
40a49b:	03 f0                	add    %eax,%esi
40a49d:	0f b7 c3             	movzwl %bx,%eax
40a4a0:	03 f0                	add    %eax,%esi
40a4a2:	81 ee 5a 95 0a 00    	sub    $0xa955a,%esi
40a4a8:	89 75 f8             	mov    %esi,-0x8(%ebp)
40a4ab:	db 45 f8             	fildl  -0x8(%ebp)
40a4ae:	8b 45 08             	mov    0x8(%ebp),%eax
40a4b1:	dd 18                	fstpl  (%eax)
40a4b3:	9b                   	fwait
40a4b4:	c6 45 fd 01          	movb   $0x1,-0x3(%ebp)
40a4b8:	8a 45 fd             	mov    -0x3(%ebp),%al
40a4bb:	5f                   	pop    %edi
40a4bc:	5e                   	pop    %esi
40a4bd:	5b                   	pop    %ebx
40a4be:	59                   	pop    %ecx
40a4bf:	59                   	pop    %ecx
40a4c0:	5d                   	pop    %ebp
40a4c1:	c2 04 00             	ret    $0x4
40a4c4:	53                   	push   %ebx
40a4c5:	56                   	push   %esi
40a4c6:	57                   	push   %edi
40a4c7:	83 c4 f8             	add    $0xfffffff8,%esp
40a4ca:	8b f9                	mov    %ecx,%edi
40a4cc:	8b f2                	mov    %edx,%esi
40a4ce:	8b d8                	mov    %eax,%ebx
40a4d0:	54                   	push   %esp
40a4d1:	8b cf                	mov    %edi,%ecx
40a4d3:	8b d6                	mov    %esi,%edx
40a4d5:	8b c3                	mov    %ebx,%eax
40a4d7:	e8 20 ff ff ff       	call   0x40a3fc
40a4dc:	84 c0                	test   %al,%al
40a4de:	75 0a                	jne    0x40a4ea
40a4e0:	a1 58 b3 49 00       	mov    0x49b358,%eax
40a4e5:	e8 e6 dd ff ff       	call   0x4082d0
40a4ea:	dd 04 24             	fldl   (%esp)
40a4ed:	59                   	pop    %ecx
40a4ee:	5a                   	pop    %edx
40a4ef:	5f                   	pop    %edi
40a4f0:	5e                   	pop    %esi
40a4f1:	5b                   	pop    %ebx
40a4f2:	c3                   	ret
40a4f3:	90                   	nop
40a4f4:	55                   	push   %ebp
40a4f5:	8b ec                	mov    %esp,%ebp
40a4f7:	83 c4 e8             	add    $0xffffffe8,%esp
40a4fa:	53                   	push   %ebx
40a4fb:	56                   	push   %esi
40a4fc:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40a4ff:	89 55 f8             	mov    %edx,-0x8(%ebp)
40a502:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a505:	8b 5d 08             	mov    0x8(%ebp),%ebx
40a508:	ff 75 10             	push   0x10(%ebp)
40a50b:	ff 75 0c             	push   0xc(%ebp)
40a50e:	8d 45 e8             	lea    -0x18(%ebp),%eax
40a511:	e8 a6 fc ff ff       	call   0x40a1bc
40a516:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40a519:	85 c9                	test   %ecx,%ecx
40a51b:	7f 24                	jg     0x40a541
40a51d:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a520:	66 c7 00 00 00       	movw   $0x0,(%eax)
40a525:	8b 45 f8             	mov    -0x8(%ebp),%eax
40a528:	66 c7 00 00 00       	movw   $0x0,(%eax)
40a52d:	8b 45 f4             	mov    -0xc(%ebp),%eax
40a530:	66 c7 00 00 00       	movw   $0x0,(%eax)
40a535:	66 c7 03 00 00       	movw   $0x0,(%ebx)
40a53a:	33 d2                	xor    %edx,%edx
40a53c:	e9 f2 00 00 00       	jmp    0x40a633
40a541:	8b c1                	mov    %ecx,%eax
40a543:	be 07 00 00 00       	mov    $0x7,%esi
40a548:	99                   	cltd
40a549:	f7 fe                	idiv   %esi
40a54b:	42                   	inc    %edx
40a54c:	66 89 13             	mov    %dx,(%ebx)
40a54f:	49                   	dec    %ecx
40a550:	66 bb 01 00          	mov    $0x1,%bx
40a554:	81 f9 b1 3a 02 00    	cmp    $0x23ab1,%ecx
40a55a:	7c 13                	jl     0x40a56f
40a55c:	81 e9 b1 3a 02 00    	sub    $0x23ab1,%ecx
40a562:	66 81 c3 90 01       	add    $0x190,%bx
40a567:	81 f9 b1 3a 02 00    	cmp    $0x23ab1,%ecx
40a56d:	7d ed                	jge    0x40a55c
40a56f:	8d 45 f2             	lea    -0xe(%ebp),%eax
40a572:	50                   	push   %eax
40a573:	8d 45 f0             	lea    -0x10(%ebp),%eax
40a576:	66 ba ac 8e          	mov    $0x8eac,%dx
40a57a:	91                   	xchg   %eax,%ecx
40a57b:	e8 34 dd ff ff       	call   0x4082b4
40a580:	66 83 7d f0 04       	cmpw   $0x4,-0x10(%ebp)
40a585:	75 0a                	jne    0x40a591
40a587:	66 ff 4d f0          	decw   -0x10(%ebp)
40a58b:	66 81 45 f2 ac 8e    	addw   $0x8eac,-0xe(%ebp)
40a591:	66 6b 45 f0 64       	imul   $0x64,-0x10(%ebp),%ax
40a596:	66 03 d8             	add    %ax,%bx
40a599:	8d 45 f2             	lea    -0xe(%ebp),%eax
40a59c:	50                   	push   %eax
40a59d:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40a5a0:	0f b7 45 f2          	movzwl -0xe(%ebp),%eax
40a5a4:	66 ba b5 05          	mov    $0x5b5,%dx
40a5a8:	e8 07 dd ff ff       	call   0x4082b4
40a5ad:	66 8b 45 f0          	mov    -0x10(%ebp),%ax
40a5b1:	c1 e0 02             	shl    $0x2,%eax
40a5b4:	66 03 d8             	add    %ax,%bx
40a5b7:	8d 45 f2             	lea    -0xe(%ebp),%eax
40a5ba:	50                   	push   %eax
40a5bb:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40a5be:	0f b7 45 f2          	movzwl -0xe(%ebp),%eax
40a5c2:	66 ba 6d 01          	mov    $0x16d,%dx
40a5c6:	e8 e9 dc ff ff       	call   0x4082b4
40a5cb:	66 83 7d f0 04       	cmpw   $0x4,-0x10(%ebp)
40a5d0:	75 0a                	jne    0x40a5dc
40a5d2:	66 ff 4d f0          	decw   -0x10(%ebp)
40a5d6:	66 81 45 f2 6d 01    	addw   $0x16d,-0xe(%ebp)
40a5dc:	66 03 5d f0          	add    -0x10(%ebp),%bx
40a5e0:	8b c3                	mov    %ebx,%eax
40a5e2:	e8 d9 fd ff ff       	call   0x40a3c0
40a5e7:	8b d0                	mov    %eax,%edx
40a5e9:	33 c0                	xor    %eax,%eax
40a5eb:	8a c2                	mov    %dl,%al
40a5ed:	8d 04 40             	lea    (%eax,%eax,2),%eax
40a5f0:	8d 34 c5 dc d0 48 00 	lea    0x48d0dc(,%eax,8),%esi
40a5f7:	66 b8 01 00          	mov    $0x1,%ax
40a5fb:	0f b7 c8             	movzwl %ax,%ecx
40a5fe:	66 8b 4c 4e fe       	mov    -0x2(%esi,%ecx,2),%cx
40a603:	66 89 4d f0          	mov    %cx,-0x10(%ebp)
40a607:	66 8b 4d f2          	mov    -0xe(%ebp),%cx
40a60b:	66 3b 4d f0          	cmp    -0x10(%ebp),%cx
40a60f:	72 0b                	jb     0x40a61c
40a611:	66 8b 4d f0          	mov    -0x10(%ebp),%cx
40a615:	66 29 4d f2          	sub    %cx,-0xe(%ebp)
40a619:	40                   	inc    %eax
40a61a:	eb df                	jmp    0x40a5fb
40a61c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40a61f:	66 89 19             	mov    %bx,(%ecx)
40a622:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40a625:	66 89 01             	mov    %ax,(%ecx)
40a628:	66 8b 45 f2          	mov    -0xe(%ebp),%ax
40a62c:	40                   	inc    %eax
40a62d:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40a630:	66 89 01             	mov    %ax,(%ecx)
40a633:	8b c2                	mov    %edx,%eax
40a635:	5e                   	pop    %esi
40a636:	5b                   	pop    %ebx
40a637:	8b e5                	mov    %ebp,%esp
40a639:	5d                   	pop    %ebp
40a63a:	c2 0c 00             	ret    $0xc
40a63d:	8d 40 00             	lea    0x0(%eax),%eax
40a640:	55                   	push   %ebp
40a641:	8b ec                	mov    %esp,%ebp
40a643:	51                   	push   %ecx
40a644:	56                   	push   %esi
40a645:	8b f0                	mov    %eax,%esi
40a647:	ff 75 0c             	push   0xc(%ebp)
40a64a:	ff 75 08             	push   0x8(%ebp)
40a64d:	8d 45 fe             	lea    -0x2(%ebp),%eax
40a650:	50                   	push   %eax
40a651:	8b c6                	mov    %esi,%eax
40a653:	e8 9c fe ff ff       	call   0x40a4f4
40a658:	5e                   	pop    %esi
40a659:	59                   	pop    %ecx
40a65a:	5d                   	pop    %ebp
40a65b:	c2 08 00             	ret    $0x8
40a65e:	8b c0                	mov    %eax,%eax
40a660:	55                   	push   %ebp
40a661:	8b ec                	mov    %esp,%ebp
40a663:	83 c4 f8             	add    $0xfffffff8,%esp
40a666:	ff 75 0c             	push   0xc(%ebp)
40a669:	ff 75 08             	push   0x8(%ebp)
40a66c:	8d 45 f8             	lea    -0x8(%ebp),%eax
40a66f:	e8 48 fb ff ff       	call   0x40a1bc
40a674:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a677:	b9 07 00 00 00       	mov    $0x7,%ecx
40a67c:	99                   	cltd
40a67d:	f7 f9                	idiv   %ecx
40a67f:	8b c2                	mov    %edx,%eax
40a681:	40                   	inc    %eax
40a682:	59                   	pop    %ecx
40a683:	59                   	pop    %ecx
40a684:	5d                   	pop    %ebp
40a685:	c2 08 00             	ret    $0x8
40a688:	83 c4 f0             	add    $0xfffffff0,%esp
40a68b:	54                   	push   %esp
40a68c:	e8 4f c1 ff ff       	call   0x4067e0
40a691:	66 8b 04 24          	mov    (%esp),%ax
40a695:	83 c4 10             	add    $0x10,%esp
40a698:	c3                   	ret
40a699:	8d 40 00             	lea    0x0(%eax),%eax
40a69c:	55                   	push   %ebp
40a69d:	8b ec                	mov    %esp,%ebp
40a69f:	53                   	push   %ebx
40a6a0:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a6a3:	bb 00 01 00 00       	mov    $0x100,%ebx
40a6a8:	2b 99 fc fe ff ff    	sub    -0x104(%ecx),%ebx
40a6ae:	3b d3                	cmp    %ebx,%edx
40a6b0:	7d 02                	jge    0x40a6b4
40a6b2:	8b da                	mov    %edx,%ebx
40a6b4:	85 db                	test   %ebx,%ebx
40a6b6:	74 1a                	je     0x40a6d2
40a6b8:	8b 55 08             	mov    0x8(%ebp),%edx
40a6bb:	8b 92 fc fe ff ff    	mov    -0x104(%edx),%edx
40a6c1:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a6c4:	8d 94 11 00 ff ff ff 	lea    -0x100(%ecx,%edx,1),%edx
40a6cb:	8b cb                	mov    %ebx,%ecx
40a6cd:	e8 a2 82 ff ff       	call   0x402974
40a6d2:	8b 45 08             	mov    0x8(%ebp),%eax
40a6d5:	01 98 fc fe ff ff    	add    %ebx,-0x104(%eax)
40a6db:	5b                   	pop    %ebx
40a6dc:	5d                   	pop    %ebp
40a6dd:	c3                   	ret
40a6de:	8b c0                	mov    %eax,%eax
40a6e0:	55                   	push   %ebp
40a6e1:	8b ec                	mov    %esp,%ebp
40a6e3:	53                   	push   %ebx
40a6e4:	8b d8                	mov    %eax,%ebx
40a6e6:	8b 45 08             	mov    0x8(%ebp),%eax
40a6e9:	50                   	push   %eax
40a6ea:	8b c3                	mov    %ebx,%eax
40a6ec:	e8 33 9d ff ff       	call   0x404424
40a6f1:	8b d0                	mov    %eax,%edx
40a6f3:	8b c3                	mov    %ebx,%eax
40a6f5:	e8 a2 ff ff ff       	call   0x40a69c
40a6fa:	59                   	pop    %ecx
40a6fb:	5b                   	pop    %ebx
40a6fc:	5d                   	pop    %ebp
40a6fd:	c3                   	ret
40a6fe:	8b c0                	mov    %eax,%eax
40a700:	55                   	push   %ebp
40a701:	8b ec                	mov    %esp,%ebp
40a703:	83 c4 e0             	add    $0xffffffe0,%esp
40a706:	53                   	push   %ebx
40a707:	56                   	push   %esi
40a708:	8b f2                	mov    %edx,%esi
40a70a:	8b d8                	mov    %eax,%ebx
40a70c:	8b 45 08             	mov    0x8(%ebp),%eax
40a70f:	50                   	push   %eax
40a710:	6a 04                	push   $0x4
40a712:	89 75 e0             	mov    %esi,-0x20(%ebp)
40a715:	c6 45 e4 00          	movb   $0x0,-0x1c(%ebp)
40a719:	89 5d e8             	mov    %ebx,-0x18(%ebp)
40a71c:	c6 45 ec 00          	movb   $0x0,-0x14(%ebp)
40a720:	8d 45 e0             	lea    -0x20(%ebp),%eax
40a723:	50                   	push   %eax
40a724:	6a 01                	push   $0x1
40a726:	b9 84 d1 48 00       	mov    $0x48d184,%ecx
40a72b:	8d 45 f0             	lea    -0x10(%ebp),%eax
40a72e:	ba 10 00 00 00       	mov    $0x10,%edx
40a733:	e8 e4 e9 ff ff       	call   0x40911c
40a738:	8b d0                	mov    %eax,%edx
40a73a:	8d 45 f0             	lea    -0x10(%ebp),%eax
40a73d:	e8 5a ff ff ff       	call   0x40a69c
40a742:	59                   	pop    %ecx
40a743:	5e                   	pop    %esi
40a744:	5b                   	pop    %ebx
40a745:	8b e5                	mov    %ebp,%esp
40a747:	5d                   	pop    %ebp
40a748:	c3                   	ret
40a749:	8d 40 00             	lea    0x0(%eax),%eax
40a74c:	55                   	push   %ebp
40a74d:	8b ec                	mov    %esp,%ebp
40a74f:	53                   	push   %ebx
40a750:	8b 45 08             	mov    0x8(%ebp),%eax
40a753:	83 c0 fc             	add    $0xfffffffc,%eax
40a756:	8b 10                	mov    (%eax),%edx
40a758:	eb 02                	jmp    0x40a75c
40a75a:	ff 00                	incl   (%eax)
40a75c:	8b 08                	mov    (%eax),%ecx
40a75e:	8a 09                	mov    (%ecx),%cl
40a760:	8b 5d 08             	mov    0x8(%ebp),%ebx
40a763:	3a 4b fb             	cmp    -0x5(%ebx),%cl
40a766:	74 f2                	je     0x40a75a
40a768:	8b 00                	mov    (%eax),%eax
40a76a:	2b c2                	sub    %edx,%eax
40a76c:	40                   	inc    %eax
40a76d:	8b 55 08             	mov    0x8(%ebp),%edx
40a770:	89 42 f4             	mov    %eax,-0xc(%edx)
40a773:	5b                   	pop    %ebx
40a774:	5d                   	pop    %ebp
40a775:	c3                   	ret
40a776:	8b c0                	mov    %eax,%eax
40a778:	55                   	push   %ebp
40a779:	8b ec                	mov    %esp,%ebp
40a77b:	8b 45 08             	mov    0x8(%ebp),%eax
40a77e:	80 78 ed 00          	cmpb   $0x0,-0x13(%eax)