59a3fe:	8b 12                	mov    (%edx),%edx
59a400:	3b 82 0c 01 00 00    	cmp    0x10c(%edx),%eax
59a406:	0f 8e 58 09 00 00    	jle    0x59ad64
59a40c:	8b 45 f4             	mov    -0xc(%ebp),%eax
59a40f:	8b 00                	mov    (%eax),%eax
59a411:	83 b8 0c 01 00 00 00 	cmpl   $0x0,0x10c(%eax)
59a418:	0f 8c 46 09 00 00    	jl     0x59ad64
59a41e:	0f b7 5d f2          	movzwl -0xe(%ebp),%ebx
59a422:	4b                   	dec    %ebx
59a423:	85 db                	test   %ebx,%ebx
59a425:	7c 2e                	jl     0x59a455
59a427:	43                   	inc    %ebx
59a428:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
59a42f:	8d 55 90             	lea    -0x70(%ebp),%edx
59a432:	b9 10 00 00 00       	mov    $0x10,%ecx
59a437:	8b 45 fc             	mov    -0x4(%ebp),%eax
59a43a:	8b 30                	mov    (%eax),%esi
59a43c:	ff 56 08             	call   *0x8(%esi)
59a43f:	8b 45 f4             	mov    -0xc(%ebp),%eax
59a442:	8b 00                	mov    (%eax),%eax
59a444:	8b 80 0c 01 00 00    	mov    0x10c(%eax),%eax
59a44a:	3b 45 dc             	cmp    -0x24(%ebp),%eax
59a44d:	74 06                	je     0x59a455
59a44f:	ff 45 dc             	incl   -0x24(%ebp)
59a452:	4b                   	dec    %ebx
59a453:	75 da                	jne    0x59a42f
59a455:	33 c0                	xor    %eax,%eax
59a457:	8a 45 90             	mov    -0x70(%ebp),%al
59a45a:	89 45 a8             	mov    %eax,-0x58(%ebp)
59a45d:	33 c0                	xor    %eax,%eax
59a45f:	8a 45 91             	mov    -0x6f(%ebp),%al
59a462:	89 45 ac             	mov    %eax,-0x54(%ebp)
59a465:	83 7d a8 00          	cmpl   $0x0,-0x58(%ebp)
59a469:	75 09                	jne    0x59a474
59a46b:	8b 85 6c ff ff ff    	mov    -0x94(%ebp),%eax
59a471:	89 45 a8             	mov    %eax,-0x58(%ebp)
59a474:	83 7d ac 00          	cmpl   $0x0,-0x54(%ebp)
59a478:	75 0b                	jne    0x59a485
59a47a:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
59a480:	d1 e8                	shr    $1,%eax
59a482:	89 45 ac             	mov    %eax,-0x54(%ebp)
59a485:	8b 45 f4             	mov    -0xc(%ebp),%eax
59a488:	8b 00                	mov    (%eax),%eax
59a48a:	8b 55 a8             	mov    -0x58(%ebp),%edx
59a48d:	89 50 14             	mov    %edx,0x14(%eax)
59a490:	8b 45 f4             	mov    -0xc(%ebp),%eax
59a493:	8b 00                	mov    (%eax),%eax
59a495:	8b 55 ac             	mov    -0x54(%ebp),%edx
59a498:	89 50 18             	mov    %edx,0x18(%eax)
59a49b:	8b 45 f4             	mov    -0xc(%ebp),%eax
59a49e:	8b 00                	mov    (%eax),%eax
59a4a0:	c7 40 10 01 00 00 00 	movl   $0x1,0x10(%eax)
59a4a7:	0f b7 45 94          	movzwl -0x6c(%ebp),%eax
59a4ab:	8b 55 f4             	mov    -0xc(%ebp),%edx
59a4ae:	8b 12                	mov    (%edx),%edx
59a4b0:	89 82 10 01 00 00    	mov    %eax,0x110(%edx)
59a4b6:	0f b7 45 96          	movzwl -0x6a(%ebp),%eax
59a4ba:	8b 55 f4             	mov    -0xc(%ebp),%edx
59a4bd:	8b 12                	mov    (%edx),%edx
59a4bf:	89 82 14 01 00 00    	mov    %eax,0x114(%edx)
59a4c5:	8b 45 9c             	mov    -0x64(%ebp),%eax
59a4c8:	33 d2                	xor    %edx,%edx
59a4ca:	03 45 e0             	add    -0x20(%ebp),%eax
59a4cd:	13 55 e4             	adc    -0x1c(%ebp),%edx
59a4d0:	52                   	push   %edx
59a4d1:	50                   	push   %eax
59a4d2:	8b 45 fc             	mov    -0x4(%ebp),%eax
59a4d5:	e8 fe 41 e8 ff       	call   0x41e6d8
59a4da:	8d 95 68 ff ff ff    	lea    -0x98(%ebp),%edx
59a4e0:	b9 28 00 00 00       	mov    $0x28,%ecx
59a4e5:	8b 45 fc             	mov    -0x4(%ebp),%eax
59a4e8:	8b 18                	mov    (%eax),%ebx
59a4ea:	ff 53 08             	call   *0x8(%ebx)
59a4ed:	83 7d 80 00          	cmpl   $0x0,-0x80(%ebp)
59a4f1:	7e 24                	jle    0x59a517
59a4f3:	db 45 80             	fildl  -0x80(%ebp)
59a4f6:	d8 35 70 ad 59 00    	fdivs  0x59ad70
59a4fc:	db 2d 74 ad 59 00    	fldt   0x59ad74
59a502:	de c9                	fmulp  %st,%st(1)
59a504:	e8 b7 87 e6 ff       	call   0x402cc0
59a509:	8b d0                	mov    %eax,%edx
59a50b:	8b 45 f4             	mov    -0xc(%ebp),%eax
59a50e:	8b 00                	mov    (%eax),%eax
59a510:	e8 a7 31 03 00       	call   0x5cd6bc
59a515:	eb 12                	jmp    0x59a529
59a517:	8b 15 9c 71 6a 00    	mov    0x6a719c,%edx
59a51d:	8b 12                	mov    (%edx),%edx
59a51f:	8b 45 f4             	mov    -0xc(%ebp),%eax
59a522:	8b 00                	mov    (%eax),%eax
59a524:	e8 93 31 03 00       	call   0x5cd6bc
59a529:	83 7d 84 00          	cmpl   $0x0,-0x7c(%ebp)
59a52d:	7e 24                	jle    0x59a553
59a52f:	db 45 84             	fildl  -0x7c(%ebp)
59a532:	d8 35 70 ad 59 00    	fdivs  0x59ad70
59a538:	db 2d 74 ad 59 00    	fldt   0x59ad74
59a53e:	de c9                	fmulp  %st,%st(1)
59a540:	e8 7b 87 e6 ff       	call   0x402cc0
59a545:	8b d0                	mov    %eax,%edx
59a547:	8b 45 f4             	mov    -0xc(%ebp),%eax
59a54a:	8b 00                	mov    (%eax),%eax
59a54c:	e8 9b 31 03 00       	call   0x5cd6ec
59a551:	eb 12                	jmp    0x59a565
59a553:	8b 15 00 71 6a 00    	mov    0x6a7100,%edx
59a559:	8b 12                	mov    (%edx),%edx
59a55b:	8b 45 f4             	mov    -0xc(%ebp),%eax
59a55e:	8b 00                	mov    (%eax),%eax
59a560:	e8 87 31 03 00       	call   0x5cd6ec
59a565:	33 c0                	xor    %eax,%eax
59a567:	89 45 cc             	mov    %eax,-0x34(%ebp)
59a56a:	66 83 bd 76 ff ff ff 	cmpw   $0x0,-0x8a(%ebp)
59a571:	00
59a572:	76 0a                	jbe    0x59a57e
59a574:	0f b7 85 76 ff ff ff 	movzwl -0x8a(%ebp),%eax
59a57b:	89 45 cc             	mov    %eax,-0x34(%ebp)
59a57e:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
59a582:	75 23                	jne    0x59a5a7
59a584:	80 7d 92 00          	cmpb   $0x0,-0x6e(%ebp)
59a588:	76 0f                	jbe    0x59a599
59a58a:	33 c0                	xor    %eax,%eax
59a58c:	8a 45 92             	mov    -0x6e(%ebp),%al
59a58f:	e8 20 65 05 00       	call   0x5f0ab4
59a594:	89 45 cc             	mov    %eax,-0x34(%ebp)
59a597:	eb 0e                	jmp    0x59a5a7
59a599:	8b 45 10             	mov    0x10(%ebp),%eax
59a59c:	8b 40 28             	mov    0x28(%eax),%eax
59a59f:	c6 00 01             	movb   $0x1,(%eax)
59a5a2:	e9 bd 07 00 00       	jmp    0x59ad64
59a5a7:	80 7d 92 00          	cmpb   $0x0,-0x6e(%ebp)
59a5ab:	75 0f                	jne    0x59a5bc
59a5ad:	8b 4d cc             	mov    -0x34(%ebp),%ecx
59a5b0:	b8 01 00 00 00       	mov    $0x1,%eax
59a5b5:	d3 e0                	shl    %cl,%eax
59a5b7:	89 45 c0             	mov    %eax,-0x40(%ebp)
59a5ba:	eb 17                	jmp    0x59a5d3
59a5bc:	80 7d 92 ff          	cmpb   $0xff,-0x6e(%ebp)
59a5c0:	75 09                	jne    0x59a5cb
59a5c2:	c7 45 c0 00 01 00 00 	movl   $0x100,-0x40(%ebp)
59a5c9:	eb 08                	jmp    0x59a5d3
59a5cb:	33 c0                	xor    %eax,%eax
59a5cd:	8a 45 92             	mov    -0x6e(%ebp),%al
59a5d0:	89 45 c0             	mov    %eax,-0x40(%ebp)
59a5d3:	8b 45 f4             	mov    -0xc(%ebp),%eax
59a5d6:	8b 00                	mov    (%eax),%eax
59a5d8:	8b 55 cc             	mov    -0x34(%ebp),%edx
59a5db:	89 50 08             	mov    %edx,0x8(%eax)
59a5de:	8b 4d c0             	mov    -0x40(%ebp),%ecx
59a5e1:	c1 e1 02             	shl    $0x2,%ecx
59a5e4:	8d 95 68 fb ff ff    	lea    -0x498(%ebp),%edx
59a5ea:	8b 45 fc             	mov    -0x4(%ebp),%eax
59a5ed:	8b 18                	mov    (%eax),%ebx
59a5ef:	ff 53 08             	call   *0x8(%ebx)
59a5f2:	8b 45 f4             	mov    -0xc(%ebp),%eax
59a5f5:	8b 00                	mov    (%eax),%eax
59a5f7:	83 b8 a8 03 00 00 00 	cmpl   $0x0,0x3a8(%eax)
59a5fe:	74 2a                	je     0x59a62a
59a600:	8b 45 f4             	mov    -0xc(%ebp),%eax
59a603:	8b 00                	mov    (%eax),%eax
59a605:	8b 80 a8 03 00 00    	mov    0x3a8(%eax),%eax
59a60b:	e8 bc 81 e6 ff       	call   0x4027cc
59a610:	8b 45 f4             	mov    -0xc(%ebp),%eax
59a613:	8b 00                	mov    (%eax),%eax
59a615:	33 d2                	xor    %edx,%edx
59a617:	89 90 a8 03 00 00    	mov    %edx,0x3a8(%eax)
59a61d:	8b 45 f4             	mov    -0xc(%ebp),%eax
59a620:	8b 00                	mov    (%eax),%eax
59a622:	33 d2                	xor    %edx,%edx
59a624:	89 90 ac 03 00 00    	mov    %edx,0x3ac(%eax)
59a62a:	8b 45 f4             	mov    -0xc(%ebp),%eax
59a62d:	8b 00                	mov    (%eax),%eax
59a62f:	8b 55 c0             	mov    -0x40(%ebp),%edx
59a632:	89 90 ac 03 00 00    	mov    %edx,0x3ac(%eax)
59a638:	8b 45 c0             	mov    -0x40(%ebp),%eax
59a63b:	8d 04 40             	lea    (%eax,%eax,2),%eax
59a63e:	e8 71 ea e6 ff       	call   0x4090b4
59a643:	8b 55 f4             	mov    -0xc(%ebp),%edx
59a646:	8b 12                	mov    (%edx),%edx
59a648:	89 82 a8 03 00 00    	mov    %eax,0x3a8(%edx)
59a64e:	8b 5d c0             	mov    -0x40(%ebp),%ebx
59a651:	4b                   	dec    %ebx
59a652:	85 db                	test   %ebx,%ebx
59a654:	7c 41                	jl     0x59a697
59a656:	43                   	inc    %ebx
59a657:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
59a65e:	8d 85 6a fb ff ff    	lea    -0x496(%ebp),%eax
59a664:	8b 55 dc             	mov    -0x24(%ebp),%edx
59a667:	8d 14 52             	lea    (%edx,%edx,2),%edx
59a66a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
59a66d:	8b 09                	mov    (%ecx),%ecx
59a66f:	8b b1 a8 03 00 00    	mov    0x3a8(%ecx),%esi
59a675:	8a 08                	mov    (%eax),%cl
59a677:	88 4c 16 02          	mov    %cl,0x2(%esi,%edx,1)
59a67b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
59a67e:	8a 48 ff             	mov    -0x1(%eax),%cl
59a681:	88 4c 16 01          	mov    %cl,0x1(%esi,%edx,1)
59a685:	8b 4d f4             	mov    -0xc(%ebp),%ecx
59a688:	8a 48 fe             	mov    -0x2(%eax),%cl
59a68b:	88 0c 16             	mov    %cl,(%esi,%edx,1)
59a68e:	ff 45 dc             	incl   -0x24(%ebp)
59a691:	83 c0 04             	add    $0x4,%eax
59a694:	4b                   	dec    %ebx
59a695:	75 cd                	jne    0x59a664
59a697:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
59a69b:	0f 85 c3 06 00 00    	jne    0x59ad64
59a6a1:	83 7d c0 02          	cmpl   $0x2,-0x40(%ebp)
59a6a5:	75 12                	jne    0x59a6b9
59a6a7:	6a 01                	push   $0x1
59a6a9:	8b 4d ac             	mov    -0x54(%ebp),%ecx
59a6ac:	8b 55 a8             	mov    -0x58(%ebp),%edx
59a6af:	8b 45 f8             	mov    -0x8(%ebp),%eax
59a6b2:	8b 18                	mov    (%eax),%ebx
59a6b4:	ff 53 24             	call   *0x24(%ebx)
59a6b7:	eb 10                	jmp    0x59a6c9
59a6b9:	6a 05                	push   $0x5
59a6bb:	8b 4d ac             	mov    -0x54(%ebp),%ecx
59a6be:	8b 55 a8             	mov    -0x58(%ebp),%edx
59a6c1:	8b 45 f8             	mov    -0x8(%ebp),%eax
59a6c4:	8b 18                	mov    (%eax),%ebx
59a6c6:	ff 53 24             	call   *0x24(%ebx)
59a6c9:	8a 5d 08             	mov    0x8(%ebp),%bl
59a6cc:	80 f3 01             	xor    $0x1,%bl
59a6cf:	84 db                	test   %bl,%bl
59a6d1:	74 3a                	je     0x59a70d
59a6d3:	8b 45 0c             	mov    0xc(%ebp),%eax
59a6d6:	83 38 00             	cmpl   $0x0,(%eax)
59a6d9:	75 11                	jne    0x59a6ec
59a6db:	b2 01                	mov    $0x1,%dl
59a6dd:	a1 a4 fd 5e 00       	mov    0x5efda4,%eax
59a6e2:	e8 8d 84 05 00       	call   0x5f2b74
59a6e7:	8b 55 0c             	mov    0xc(%ebp),%edx
59a6ea:	89 02                	mov    %eax,(%edx)
59a6ec:	6a 08                	push   $0x8
59a6ee:	8b 45 0c             	mov    0xc(%ebp),%eax
59a6f1:	8b 00                	mov    (%eax),%eax
59a6f3:	8b 4d ac             	mov    -0x54(%ebp),%ecx
59a6f6:	8b 55 a8             	mov    -0x58(%ebp),%edx
59a6f9:	e8 42 88 05 00       	call   0x5f2f40
59a6fe:	8b 45 0c             	mov    0xc(%ebp),%eax
59a701:	8b 00                	mov    (%eax),%eax
59a703:	ba ff 00 00 00       	mov    $0xff,%edx
59a708:	e8 17 a0 05 00       	call   0x5f4724
59a70d:	8b 45 a8             	mov    -0x58(%ebp),%eax
59a710:	f7 6d cc             	imull  -0x34(%ebp)
59a713:	83 c0 1f             	add    $0x1f,%eax
59a716:	c1 e8 05             	shr    $0x5,%eax
59a719:	c1 e0 02             	shl    $0x2,%eax
59a71c:	89 45 d4             	mov    %eax,-0x2c(%ebp)
59a71f:	8b 45 a8             	mov    -0x58(%ebp),%eax
59a722:	83 c0 1f             	add    $0x1f,%eax
59a725:	c1 e8 05             	shr    $0x5,%eax
59a728:	c1 e0 02             	shl    $0x2,%eax
59a72b:	89 45 b4             	mov    %eax,-0x4c(%ebp)
59a72e:	8b 45 f8             	mov    -0x8(%ebp),%eax
59a731:	8b 10                	mov    (%eax),%edx
59a733:	ff 52 08             	call   *0x8(%edx)
59a736:	f7 6d b4             	imull  -0x4c(%ebp)
59a739:	e8 6e 80 e6 ff       	call   0x4027ac
59a73e:	89 45 b8             	mov    %eax,-0x48(%ebp)
59a741:	8b 45 b8             	mov    -0x48(%ebp),%eax
59a744:	89 45 bc             	mov    %eax,-0x44(%ebp)
59a747:	84 db                	test   %bl,%bl
59a749:	74 09                	je     0x59a754
59a74b:	8b 45 0c             	mov    0xc(%ebp),%eax
59a74e:	8b 00                	mov    (%eax),%eax
59a750:	c6 40 68 00          	movb   $0x0,0x68(%eax)
59a754:	8b 45 cc             	mov    -0x34(%ebp),%eax
59a757:	48                   	dec    %eax
59a758:	74 17                	je     0x59a771
59a75a:	83 e8 03             	sub    $0x3,%eax
59a75d:	0f 84 7d 01 00 00    	je     0x59a8e0
59a763:	83 e8 04             	sub    $0x4,%eax
59a766:	0f 84 1d 04 00 00    	je     0x59ab89
59a76c:	e9 eb 05 00 00       	jmp    0x59ad5c
59a771:	8b 45 f8             	mov    -0x8(%ebp),%eax
59a774:	8b 10                	mov    (%eax),%edx
59a776:	ff 52 08             	call   *0x8(%edx)
59a779:	48                   	dec    %eax
59a77a:	89 45 a0             	mov    %eax,-0x60(%ebp)
59a77d:	8b 45 f8             	mov    -0x8(%ebp),%eax
59a780:	8b 10                	mov    (%eax),%edx
59a782:	ff 52 0c             	call   *0xc(%edx)
59a785:	48                   	dec    %eax
59a786:	89 45 a4             	mov    %eax,-0x5c(%ebp)
59a789:	8b 45 f8             	mov    -0x8(%ebp),%eax
59a78c:	8b 10                	mov    (%eax),%edx
59a78e:	ff 52 08             	call   *0x8(%edx)
59a791:	48                   	dec    %eax
59a792:	83 f8 00             	cmp    $0x0,%eax
59a795:	7c 23                	jl     0x59a7ba
59a797:	89 45 d8             	mov    %eax,-0x28(%ebp)
59a79a:	8b 55 d8             	mov    -0x28(%ebp),%edx
59a79d:	8b 45 f8             	mov    -0x8(%ebp),%eax
59a7a0:	8b 08                	mov    (%eax),%ecx
59a7a2:	ff 11                	call   *(%ecx)
59a7a4:	8b d0                	mov    %eax,%edx
59a7a6:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
59a7a9:	8b 45 fc             	mov    -0x4(%ebp),%eax
59a7ac:	8b 18                	mov    (%eax),%ebx
59a7ae:	ff 53 08             	call   *0x8(%ebx)
59a7b1:	ff 4d d8             	decl   -0x28(%ebp)
59a7b4:	83 7d d8 ff          	cmpl   $0xffffffff,-0x28(%ebp)
59a7b8:	75 e0                	jne    0x59a79a
59a7ba:	8b 45 f8             	mov    -0x8(%ebp),%eax
59a7bd:	8b 10                	mov    (%eax),%edx
59a7bf:	ff 52 08             	call   *0x8(%edx)
59a7c2:	8b c8                	mov    %eax,%ecx
59a7c4:	0f af 4d b4          	imul   -0x4c(%ebp),%ecx
59a7c8:	8b 55 b8             	mov    -0x48(%ebp),%edx
59a7cb:	8b 45 fc             	mov    -0x4(%ebp),%eax
59a7ce:	8b 18                	mov    (%eax),%ebx
59a7d0:	ff 53 08             	call   *0x8(%ebx)
59a7d3:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
59a7d7:	75 47                	jne    0x59a820
59a7d9:	8b 45 a0             	mov    -0x60(%ebp),%eax
59a7dc:	83 f8 00             	cmp    $0x0,%eax
59a7df:	7c 3f                	jl     0x59a820
59a7e1:	89 45 d8             	mov    %eax,-0x28(%ebp)
59a7e4:	8b 5d a4             	mov    -0x5c(%ebp),%ebx
59a7e7:	85 db                	test   %ebx,%ebx
59a7e9:	7c 26                	jl     0x59a811
59a7eb:	43                   	inc    %ebx
59a7ec:	33 f6                	xor    %esi,%esi
59a7ee:	8b d6                	mov    %esi,%edx
59a7f0:	8b 45 bc             	mov    -0x44(%ebp),%eax
59a7f3:	e8 08 53 01 00       	call   0x5afb00
59a7f8:	85 c0                	test   %eax,%eax
59a7fa:	74 11                	je     0x59a80d
59a7fc:	6a 00                	push   $0x0
59a7fe:	8b 45 0c             	mov    0xc(%ebp),%eax
59a801:	8b 00                	mov    (%eax),%eax
59a803:	8b 4d d8             	mov    -0x28(%ebp),%ecx
59a806:	8b d6                	mov    %esi,%edx
59a808:	e8 4b 84 05 00       	call   0x5f2c58
59a80d:	46                   	inc    %esi
59a80e:	4b                   	dec    %ebx
59a80f:	75 dd                	jne    0x59a7ee
59a811:	8b 45 b4             	mov    -0x4c(%ebp),%eax
59a814:	01 45 bc             	add    %eax,-0x44(%ebp)
59a817:	ff 4d d8             	decl   -0x28(%ebp)
59a81a:	83 7d d8 ff          	cmpl   $0xffffffff,-0x28(%ebp)
59a81e:	75 c4                	jne    0x59a7e4
59a820:	8b 45 b8             	mov    -0x48(%ebp),%eax
59a823:	89 45 bc             	mov    %eax,-0x44(%ebp)
59a826:	8b 45 f4             	mov    -0xc(%ebp),%eax
59a829:	8b 00                	mov    (%eax),%eax
59a82b:	8a 90 1a 01 00 00    	mov    0x11a(%eax),%dl
59a831:	c1 e2 10             	shl    $0x10,%edx
59a834:	66 8b 90 18 01 00 00 	mov    0x118(%eax),%dx
59a83b:	52                   	push   %edx
59a83c:	8d 85 64 fb ff ff    	lea    -0x49c(%ebp),%eax
59a842:	50                   	push   %eax