43f406:	8b ce                	mov    %esi,%ecx
43f408:	8b d0                	mov    %eax,%edx
43f40a:	e8 d3 95 02 00       	call   0x4689e2
43f40f:	3b d0                	cmp    %eax,%edx
43f411:	0f 85 7a 98 fc ff    	jne    0x408c91
43f417:	8b cf                	mov    %edi,%ecx
43f419:	e8 c4 95 02 00       	call   0x4689e2
43f41e:	50                   	push   %eax
43f41f:	51                   	push   %ecx
43f420:	8b ce                	mov    %esi,%ecx
43f422:	e8 78 95 02 00       	call   0x46899f
43f427:	59                   	pop    %ecx
43f428:	50                   	push   %eax
43f429:	8b cf                	mov    %edi,%ecx
43f42b:	e8 6f 95 02 00       	call   0x46899f
43f430:	50                   	push   %eax
43f431:	e8 8e 22 fe ff       	call   0x4216c4
43f436:	83 c4 0c             	add    $0xc,%esp
43f439:	e9 47 98 fc ff       	jmp    0x408c85
43f43e:	33 db                	xor    %ebx,%ebx
43f440:	8d 4d e0             	lea    -0x20(%ebp),%ecx
43f443:	57                   	push   %edi
43f444:	89 5d e8             	mov    %ebx,-0x18(%ebp)
43f447:	e8 74 a6 fc ff       	call   0x409ac0
43f44c:	56                   	push   %esi
43f44d:	8d 4d f0             	lea    -0x10(%ebp),%ecx
43f450:	89 5d f8             	mov    %ebx,-0x8(%ebp)
43f453:	e8 68 a6 fc ff       	call   0x409ac0
43f458:	8d 4d e0             	lea    -0x20(%ebp),%ecx
43f45b:	e8 dd 85 02 00       	call   0x467a3d
43f460:	8d 4d f0             	lea    -0x10(%ebp),%ecx
43f463:	e8 d5 85 02 00       	call   0x467a3d
43f468:	8d 4d e0             	lea    -0x20(%ebp),%ecx
43f46b:	e8 72 95 02 00       	call   0x4689e2
43f470:	8d 4d f0             	lea    -0x10(%ebp),%ecx
43f473:	8b d0                	mov    %eax,%edx
43f475:	e8 68 95 02 00       	call   0x4689e2
43f47a:	3b d0                	cmp    %eax,%edx
43f47c:	75 22                	jne    0x43f4a0
43f47e:	52                   	push   %edx
43f47f:	51                   	push   %ecx
43f480:	e8 1a 95 02 00       	call   0x46899f
43f485:	59                   	pop    %ecx
43f486:	50                   	push   %eax
43f487:	8d 4d e0             	lea    -0x20(%ebp),%ecx
43f48a:	e8 10 95 02 00       	call   0x46899f
43f48f:	50                   	push   %eax
43f490:	e8 2f 22 fe ff       	call   0x4216c4
43f495:	83 c4 0c             	add    $0xc,%esp
43f498:	f7 d8                	neg    %eax
43f49a:	1a c0                	sbb    %al,%al
43f49c:	fe c0                	inc    %al
43f49e:	8a d8                	mov    %al,%bl
43f4a0:	8d 4d f0             	lea    -0x10(%ebp),%ecx
43f4a3:	e8 78 a5 fc ff       	call   0x409a20
43f4a8:	8d 4d e0             	lea    -0x20(%ebp),%ecx
43f4ab:	e8 70 a5 fc ff       	call   0x409a20
43f4b0:	e9 6f 97 fc ff       	jmp    0x408c24
43f4b5:	8d 45 c0             	lea    -0x40(%ebp),%eax
43f4b8:	8b ce                	mov    %esi,%ecx
43f4ba:	50                   	push   %eax
43f4bb:	e8 e4 86 02 00       	call   0x467ba4
43f4c0:	8b f0                	mov    %eax,%esi
43f4c2:	8b cf                	mov    %edi,%ecx
43f4c4:	8d 45 d0             	lea    -0x30(%ebp),%eax
43f4c7:	50                   	push   %eax
43f4c8:	e8 d7 86 02 00       	call   0x467ba4
43f4cd:	8b d6                	mov    %esi,%edx
43f4cf:	8b c8                	mov    %eax,%ecx
43f4d1:	e8 13 6a fd ff       	call   0x415ee9
43f4d6:	8d 4d d0             	lea    -0x30(%ebp),%ecx
43f4d9:	8a d8                	mov    %al,%bl
43f4db:	e8 84 65 fc ff       	call   0x405a64
43f4e0:	8d 4d c0             	lea    -0x40(%ebp),%ecx
43f4e3:	e8 7c 65 fc ff       	call   0x405a64
43f4e8:	e9 37 97 fc ff       	jmp    0x408c24
43f4ed:	48                   	dec    %eax
43f4ee:	74 2d                	je     0x43f51d
43f4f0:	83 e8 03             	sub    $0x3,%eax
43f4f3:	74 0f                	je     0x43f504
43f4f5:	48                   	dec    %eax
43f4f6:	48                   	dec    %eax
43f4f7:	0f 84 22 98 fc ff    	je     0x408d1f
43f4fd:	32 c0                	xor    %al,%al
43f4ff:	e9 14 98 fc ff       	jmp    0x408d18
43f504:	e8 b2 94 02 00       	call   0x4689bb
43f509:	8b cf                	mov    %edi,%ecx
43f50b:	8b f0                	mov    %eax,%esi
43f50d:	e8 a9 94 02 00       	call   0x4689bb
43f512:	3b f0                	cmp    %eax,%esi
43f514:	1b c0                	sbb    %eax,%eax
43f516:	f7 d8                	neg    %eax
43f518:	e9 fb 97 fc ff       	jmp    0x408d18
43f51d:	8b cf                	mov    %edi,%ecx
43f51f:	e8 73 a4 fc ff       	call   0x409997
43f524:	8b 77 08             	mov    0x8(%edi),%esi
43f527:	8b cb                	mov    %ebx,%ecx
43f529:	e8 69 a4 fc ff       	call   0x409997
43f52e:	8b 4b 08             	mov    0x8(%ebx),%ecx
43f531:	6a 00                	push   $0x0
43f533:	56                   	push   %esi
43f534:	e8 2f 85 fc ff       	call   0x407a68
43f539:	33 c9                	xor    %ecx,%ecx
43f53b:	85 c0                	test   %eax,%eax
43f53d:	0f 98 c0             	sets   %al
43f540:	e9 d3 97 fc ff       	jmp    0x408d18
43f545:	e8 fc a7 fc ff       	call   0x409d46
43f54a:	8b cf                	mov    %edi,%ecx
43f54c:	8b d8                	mov    %eax,%ebx
43f54e:	8b f2                	mov    %edx,%esi
43f550:	e8 f1 a7 fc ff       	call   0x409d46
43f555:	3b f2                	cmp    %edx,%esi
43f557:	0f 8f b9 97 fc ff    	jg     0x408d16
43f55d:	0f 8c d3 97 fc ff    	jl     0x408d36
43f563:	3b d8                	cmp    %eax,%ebx
43f565:	0f 82 cb 97 fc ff    	jb     0x408d36
43f56b:	e9 a6 97 fc ff       	jmp    0x408d16
43f570:	c7 00 ff ff ff 7f    	movl   $0x7fffffff,(%eax)
43f576:	e9 43 99 fc ff       	jmp    0x408ebe
43f57b:	8b 03                	mov    (%ebx),%eax
43f57d:	c7 80 10 02 00 00 00 	movl   $0x0,0x210(%eax)
43f584:	00 00 00
43f587:	0f 8e 3c 99 fc ff    	jle    0x408ec9
43f58d:	8d 7d 10             	lea    0x10(%ebp),%edi
43f590:	ff 77 04             	push   0x4(%edi)
43f593:	8d 7f 04             	lea    0x4(%edi),%edi
43f596:	8b cb                	mov    %ebx,%ecx
43f598:	e8 ef 9c fc ff       	call   0x40928c
43f59d:	4e                   	dec    %esi
43f59e:	75 f0                	jne    0x43f590
43f5a0:	e9 24 99 fc ff       	jmp    0x408ec9
43f5a5:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
43f5aa:	0f 84 a7 9a fc ff    	je     0x409057
43f5b0:	48                   	dec    %eax
43f5b1:	89 01                	mov    %eax,(%ecx)
43f5b3:	8b ce                	mov    %esi,%ecx
43f5b5:	56                   	push   %esi
43f5b6:	e8 80 97 fc ff       	call   0x408d3b
43f5bb:	8b 06                	mov    (%esi),%eax
43f5bd:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
43f5c3:	e9 8f 9a fc ff       	jmp    0x409057
43f5c8:	ff 08                	decl   (%eax)
43f5ca:	68 14 02 00 00       	push   $0x214
43f5cf:	e8 22 1a fe ff       	call   0x420ff6
43f5d4:	8b 0b                	mov    (%ebx),%ecx
43f5d6:	8b d0                	mov    %eax,%edx
43f5d8:	83 c4 04             	add    $0x4,%esp
43f5db:	33 f6                	xor    %esi,%esi
43f5dd:	8b 89 10 02 00 00    	mov    0x210(%ecx),%ecx
43f5e3:	89 8a 10 02 00 00    	mov    %ecx,0x210(%edx)
43f5e9:	85 c9                	test   %ecx,%ecx
43f5eb:	7e 1b                	jle    0x43f608
43f5ed:	b9 10 01 00 00       	mov    $0x110,%ecx
43f5f2:	8b 03                	mov    (%ebx),%eax
43f5f4:	8d 49 04             	lea    0x4(%ecx),%ecx
43f5f7:	46                   	inc    %esi
43f5f8:	8b 44 01 fc          	mov    -0x4(%ecx,%eax,1),%eax
43f5fc:	89 44 11 fc          	mov    %eax,-0x4(%ecx,%edx,1)
43f600:	3b b2 10 02 00 00    	cmp    0x210(%edx),%esi
43f606:	7c ea                	jl     0x43f5f2
43f608:	89 13                	mov    %edx,(%ebx)
43f60a:	e9 d8 9c fc ff       	jmp    0x4092e7
43f60f:	51                   	push   %ecx
43f610:	8b ce                	mov    %esi,%ecx
43f612:	e8 24 97 fc ff       	call   0x408d3b
43f617:	8b 06                	mov    (%esi),%eax
43f619:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
43f61f:	e9 31 9d fc ff       	jmp    0x409355
43f624:	48                   	dec    %eax
43f625:	48                   	dec    %eax
43f626:	75 25                	jne    0x43f64d
43f628:	8b 01                	mov    (%ecx),%eax
43f62a:	83 38 00             	cmpl   $0x0,(%eax)
43f62d:	e9 91 9d fc ff       	jmp    0x4093c3
43f632:	0f 95 c0             	setne  %al
43f635:	c3                   	ret
43f636:	dd 01                	fldl   (%ecx)
43f638:	d9 ee                	fldz
43f63a:	da e9                	fucompp
43f63c:	df e0                	fnstsw %ax
43f63e:	f6 c4 44             	test   $0x44,%ah
43f641:	7b 0a                	jnp    0x43f64d
43f643:	b0 01                	mov    $0x1,%al
43f645:	c3                   	ret
43f646:	8b 01                	mov    (%ecx),%eax
43f648:	0b 41 04             	or     0x4(%ecx),%eax
43f64b:	75 f6                	jne    0x43f643
43f64d:	32 c0                	xor    %al,%al
43f64f:	c3                   	ret
43f650:	8b 01                	mov    (%ecx),%eax
43f652:	85 c0                	test   %eax,%eax
43f654:	0f 84 8d 9d fc ff    	je     0x4093e7
43f65a:	0f b7 08             	movzwl (%eax),%ecx
43f65d:	83 f9 09             	cmp    $0x9,%ecx
43f660:	74 09                	je     0x43f66b
43f662:	83 f9 0d             	cmp    $0xd,%ecx
43f665:	0f 85 7c 9d fc ff    	jne    0x4093e7
43f66b:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
43f66f:	0f 84 72 9d fc ff    	je     0x4093e7
43f675:	b0 01                	mov    $0x1,%al
43f677:	c3                   	ret
43f678:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f67b:	89 46 04             	mov    %eax,0x4(%esi)
43f67e:	c7 46 0c 02 00 00 00 	movl   $0x2,0xc(%esi)
43f685:	e9 e4 9e fc ff       	jmp    0x40956e
43f68a:	48                   	dec    %eax
43f68b:	74 46                	je     0x43f6d3
43f68d:	48                   	dec    %eax
43f68e:	74 15                	je     0x43f6a5
43f690:	48                   	dec    %eax
43f691:	74 17                	je     0x43f6aa
43f693:	83 e8 05             	sub    $0x5,%eax
43f696:	74 08                	je     0x43f6a0
43f698:	48                   	dec    %eax
43f699:	48                   	dec    %eax
43f69a:	0f 85 d8 9f fc ff    	jne    0x409678
43f6a0:	e8 ee 9e fc ff       	call   0x409593
43f6a5:	8b 4d 08             	mov    0x8(%ebp),%ecx
43f6a8:	eb 1b                	jmp    0x43f6c5
43f6aa:	e8 2b 9e fc ff       	call   0x4094da
43f6af:	ff 75 08             	push   0x8(%ebp)
43f6b2:	8b ce                	mov    %esi,%ecx
43f6b4:	e8 83 9f fc ff       	call   0x40963c
43f6b9:	e9 ba 9f fc ff       	jmp    0x409678
43f6be:	e8 d0 9e fc ff       	call   0x409593
43f6c3:	8b cf                	mov    %edi,%ecx
43f6c5:	e8 2e a6 fc ff       	call   0x409cf8
43f6ca:	dc 0e                	fmull  (%esi)
43f6cc:	dd 1e                	fstpl  (%esi)
43f6ce:	e9 a5 9f fc ff       	jmp    0x409678
43f6d3:	8b 7d 08             	mov    0x8(%ebp),%edi
43f6d6:	83 7f 0c 01          	cmpl   $0x1,0xc(%edi)
43f6da:	74 06                	je     0x43f6e2
43f6dc:	83 7f 0c 02          	cmpl   $0x2,0xc(%edi)
43f6e0:	75 dc                	jne    0x43f6be
43f6e2:	8b cf                	mov    %edi,%ecx
43f6e4:	e8 5d a6 fc ff       	call   0x409d46
43f6e9:	ff 76 04             	push   0x4(%esi)
43f6ec:	ff 36                	push   (%esi)
43f6ee:	52                   	push   %edx
43f6ef:	50                   	push   %eax
43f6f0:	e8 0b 6b ff ff       	call   0x436200
43f6f5:	89 06                	mov    %eax,(%esi)
43f6f7:	89 56 04             	mov    %edx,0x4(%esi)
43f6fa:	e9 79 9f fc ff       	jmp    0x409678
43f6ff:	8b 06                	mov    (%esi),%eax
43f701:	f7 2f                	imull  (%edi)
43f703:	8b 0e                	mov    (%esi),%ecx
43f705:	0f af 0f             	imul   (%edi),%ecx
43f708:	8b d8                	mov    %eax,%ebx
43f70a:	8b fa                	mov    %edx,%edi
43f70c:	8b c1                	mov    %ecx,%eax
43f70e:	99                   	cltd
43f70f:	3b c3                	cmp    %ebx,%eax
43f711:	75 0b                	jne    0x43f71e
43f713:	3b d7                	cmp    %edi,%edx
43f715:	75 07                	jne    0x43f71e
43f717:	89 0e                	mov    %ecx,(%esi)
43f719:	e9 59 9f fc ff       	jmp    0x409677
43f71e:	c7 46 0c 02 00 00 00 	movl   $0x2,0xc(%esi)
43f725:	89 1e                	mov    %ebx,(%esi)
43f727:	89 7e 04             	mov    %edi,0x4(%esi)
43f72a:	e9 48 9f fc ff       	jmp    0x409677
43f72f:	ff 77 04             	push   0x4(%edi)
43f732:	8b 06                	mov    (%esi),%eax
43f734:	ff 37                	push   (%edi)
43f736:	99                   	cltd
43f737:	52                   	push   %edx
43f738:	50                   	push   %eax
43f739:	e8 c2 6a ff ff       	call   0x436200
43f73e:	89 06                	mov    %eax,(%esi)
43f740:	89 56 04             	mov    %edx,0x4(%esi)
43f743:	89 5e 0c             	mov    %ebx,0xc(%esi)
43f746:	e9 2c 9f fc ff       	jmp    0x409677
43f74b:	8b 75 08             	mov    0x8(%ebp),%esi
43f74e:	83 7e 0c 01          	cmpl   $0x1,0xc(%esi)
43f752:	74 0a                	je     0x43f75e
43f754:	83 7e 0c 02          	cmpl   $0x2,0xc(%esi)
43f758:	0f 85 62 9f fc ff    	jne    0x4096c0
43f75e:	8b ce                	mov    %esi,%ecx
43f760:	e8 e1 a5 fc ff       	call   0x409d46
43f765:	29 07                	sub    %eax,(%edi)
43f767:	19 57 04             	sbb    %edx,0x4(%edi)
43f76a:	e9 61 9f fc ff       	jmp    0x4096d0
43f76f:	8b 07                	mov    (%edi),%eax
43f771:	2b 06                	sub    (%esi),%eax
43f773:	89 45 08             	mov    %eax,0x8(%ebp)
43f776:	8b 06                	mov    (%esi),%eax
43f778:	99                   	cltd
43f779:	8b c8                	mov    %eax,%ecx
43f77b:	8b f2                	mov    %edx,%esi
43f77d:	8b 07                	mov    (%edi),%eax
43f77f:	99                   	cltd
43f780:	2b c1                	sub    %ecx,%eax
43f782:	8b da                	mov    %edx,%ebx
43f784:	8b 4d 08             	mov    0x8(%ebp),%ecx
43f787:	89 45 fc             	mov    %eax,-0x4(%ebp)
43f78a:	1b de                	sbb    %esi,%ebx
43f78c:	8b 75 fc             	mov    -0x4(%ebp),%esi
43f78f:	8b c1                	mov    %ecx,%eax
43f791:	99                   	cltd
43f792:	3b c6                	cmp    %esi,%eax
43f794:	75 0b                	jne    0x43f7a1
43f796:	3b d3                	cmp    %ebx,%edx
43f798:	75 07                	jne    0x43f7a1
43f79a:	89 0f                	mov    %ecx,(%edi)
43f79c:	e9 2f 9f fc ff       	jmp    0x4096d0
43f7a1:	c7 47 0c 02 00 00 00 	movl   $0x2,0xc(%edi)
43f7a8:	89 37                	mov    %esi,(%edi)
43f7aa:	89 5f 04             	mov    %ebx,0x4(%edi)
43f7ad:	e9 1e 9f fc ff       	jmp    0x4096d0
43f7b2:	8b 07                	mov    (%edi),%eax
43f7b4:	99                   	cltd
43f7b5:	2b 06                	sub    (%esi),%eax
43f7b7:	1b 56 04             	sbb    0x4(%esi),%edx
43f7ba:	89 07                	mov    %eax,(%edi)
43f7bc:	89 57 04             	mov    %edx,0x4(%edi)
43f7bf:	89 4f 0c             	mov    %ecx,0xc(%edi)
43f7c2:	e9 09 9f fc ff       	jmp    0x4096d0
43f7c7:	8b 4d 08             	mov    0x8(%ebp),%ecx
43f7ca:	8b 37                	mov    (%edi),%esi
43f7cc:	83 79 0c 01          	cmpl   $0x1,0xc(%ecx)
43f7d0:	75 07                	jne    0x43f7d9
43f7d2:	e8 c5 a4 fc ff       	call   0x409c9c
43f7d7:	eb 05                	jmp    0x43f7de
43f7d9:	e8 68 a5 fc ff       	call   0x409d46
43f7de:	2b f0                	sub    %eax,%esi
43f7e0:	89 37                	mov    %esi,(%edi)
43f7e2:	e9 e9 9e fc ff       	jmp    0x4096d0
43f7e7:	83 e8 09             	sub    $0x9,%eax
43f7ea:	74 0a                	je     0x43f7f6
43f7ec:	48                   	dec    %eax
43f7ed:	74 11                	je     0x43f800
43f7ef:	48                   	dec    %eax
43f7f0:	0f 85 da 9e fc ff    	jne    0x4096d0
43f7f6:	e8 98 9d fc ff       	call   0x409593
43f7fb:	e9 ec 9e fc ff       	jmp    0x4096ec
43f800:	e8 d5 9c fc ff       	call   0x4094da
43f805:	ff 75 08             	push   0x8(%ebp)
43f808:	8b cf                	mov    %edi,%ecx
43f80a:	e8 78 9e fc ff       	call   0x409687
43f80f:	e9 bc 9e fc ff       	jmp    0x4096d0
43f814:	8b 03                	mov    (%ebx),%eax
43f816:	99                   	cltd
43f817:	03 06                	add    (%esi),%eax
43f819:	13 56 04             	adc    0x4(%esi),%edx
43f81c:	89 03                	mov    %eax,(%ebx)
43f81e:	89 53 04             	mov    %edx,0x4(%ebx)
43f821:	c7 43 0c 02 00 00 00 	movl   $0x2,0xc(%ebx)
43f828:	e9 5d 9f fc ff       	jmp    0x40978a