5a2458:	8b 45 ec             	mov    -0x14(%ebp),%eax
5a245b:	50                   	push   %eax
5a245c:	e8 7f 50 e6 ff       	call   0x4074e0
5a2461:	89 45 e0             	mov    %eax,-0x20(%ebp)
5a2464:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a2467:	99                   	cltd
5a2468:	f7 fe                	idiv   %esi
5a246a:	8b d8                	mov    %eax,%ebx
5a246c:	83 fb 01             	cmp    $0x1,%ebx
5a246f:	0f 8c 06 01 00 00    	jl     0x5a257b
5a2475:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a2478:	8d 04 40             	lea    (%eax,%eax,2),%eax
5a247b:	99                   	cltd
5a247c:	f7 fe                	idiv   %esi
5a247e:	85 c0                	test   %eax,%eax
5a2480:	79 03                	jns    0x5a2485
5a2482:	83 c0 03             	add    $0x3,%eax
5a2485:	c1 f8 02             	sar    $0x2,%eax
5a2488:	3b d8                	cmp    %eax,%ebx
5a248a:	7e 04                	jle    0x5a2490
5a248c:	33 ff                	xor    %edi,%edi
5a248e:	eb 05                	jmp    0x5a2495
5a2490:	bf 01 00 00 00       	mov    $0x1,%edi
5a2495:	8b c3                	mov    %ebx,%eax
5a2497:	e8 c4 0d e6 ff       	call   0x403260
5a249c:	3b f8                	cmp    %eax,%edi
5a249e:	7c 41                	jl     0x5a24e1
5a24a0:	8b 45 10             	mov    0x10(%ebp),%eax
5a24a3:	2b 45 f8             	sub    -0x8(%ebp),%eax
5a24a6:	8b d3                	mov    %ebx,%edx
5a24a8:	0f af d6             	imul   %esi,%edx
5a24ab:	2b c2                	sub    %edx,%eax
5a24ad:	89 45 e8             	mov    %eax,-0x18(%ebp)
5a24b0:	8b 45 e8             	mov    -0x18(%ebp),%eax
5a24b3:	03 c6                	add    %esi,%eax
5a24b5:	50                   	push   %eax
5a24b6:	8b 45 ec             	mov    -0x14(%ebp),%eax
5a24b9:	03 c6                	add    %esi,%eax
5a24bb:	50                   	push   %eax
5a24bc:	8b 45 e8             	mov    -0x18(%ebp),%eax
5a24bf:	50                   	push   %eax
5a24c0:	8b 45 ec             	mov    -0x14(%ebp),%eax
5a24c3:	50                   	push   %eax
5a24c4:	e8 17 50 e6 ff       	call   0x4074e0
5a24c9:	8b f8                	mov    %eax,%edi
5a24cb:	6a 02                	push   $0x2
5a24cd:	57                   	push   %edi
5a24ce:	8b 45 e0             	mov    -0x20(%ebp),%eax
5a24d1:	50                   	push   %eax
5a24d2:	8b 45 e0             	mov    -0x20(%ebp),%eax
5a24d5:	50                   	push   %eax
5a24d6:	e8 6d 4f e6 ff       	call   0x407448
5a24db:	57                   	push   %edi
5a24dc:	e8 2f 50 e6 ff       	call   0x407510
5a24e1:	4b                   	dec    %ebx
5a24e2:	85 db                	test   %ebx,%ebx
5a24e4:	75 8f                	jne    0x5a2475
5a24e6:	e9 90 00 00 00       	jmp    0x5a257b
5a24eb:	8b 45 f8             	mov    -0x8(%ebp),%eax
5a24ee:	50                   	push   %eax
5a24ef:	8b 45 ec             	mov    -0x14(%ebp),%eax
5a24f2:	03 c6                	add    %esi,%eax
5a24f4:	50                   	push   %eax
5a24f5:	6a 00                	push   $0x0
5a24f7:	8b 45 ec             	mov    -0x14(%ebp),%eax
5a24fa:	50                   	push   %eax
5a24fb:	e8 e0 4f e6 ff       	call   0x4074e0
5a2500:	89 45 e0             	mov    %eax,-0x20(%ebp)
5a2503:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a2506:	99                   	cltd
5a2507:	f7 fe                	idiv   %esi
5a2509:	8b d8                	mov    %eax,%ebx
5a250b:	83 fb 01             	cmp    $0x1,%ebx
5a250e:	7c 6b                	jl     0x5a257b
5a2510:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a2513:	8d 04 40             	lea    (%eax,%eax,2),%eax
5a2516:	99                   	cltd
5a2517:	f7 fe                	idiv   %esi
5a2519:	85 c0                	test   %eax,%eax
5a251b:	79 03                	jns    0x5a2520
5a251d:	83 c0 03             	add    $0x3,%eax
5a2520:	c1 f8 02             	sar    $0x2,%eax
5a2523:	3b d8                	cmp    %eax,%ebx
5a2525:	7e 04                	jle    0x5a252b
5a2527:	33 ff                	xor    %edi,%edi
5a2529:	eb 05                	jmp    0x5a2530
5a252b:	bf 01 00 00 00       	mov    $0x1,%edi
5a2530:	8b c3                	mov    %ebx,%eax
5a2532:	e8 29 0d e6 ff       	call   0x403260
5a2537:	3b f8                	cmp    %eax,%edi
5a2539:	7c 3b                	jl     0x5a2576
5a253b:	8b c3                	mov    %ebx,%eax
5a253d:	f7 ee                	imul   %esi
5a253f:	03 45 f8             	add    -0x8(%ebp),%eax
5a2542:	89 45 e8             	mov    %eax,-0x18(%ebp)
5a2545:	8b 45 e8             	mov    -0x18(%ebp),%eax
5a2548:	50                   	push   %eax
5a2549:	8b 45 ec             	mov    -0x14(%ebp),%eax
5a254c:	03 c6                	add    %esi,%eax
5a254e:	50                   	push   %eax
5a254f:	8b 45 e8             	mov    -0x18(%ebp),%eax
5a2552:	2b c6                	sub    %esi,%eax
5a2554:	50                   	push   %eax
5a2555:	8b 45 ec             	mov    -0x14(%ebp),%eax
5a2558:	50                   	push   %eax
5a2559:	e8 82 4f e6 ff       	call   0x4074e0
5a255e:	8b f8                	mov    %eax,%edi
5a2560:	6a 02                	push   $0x2
5a2562:	57                   	push   %edi
5a2563:	8b 45 e0             	mov    -0x20(%ebp),%eax
5a2566:	50                   	push   %eax
5a2567:	8b 45 e0             	mov    -0x20(%ebp),%eax
5a256a:	50                   	push   %eax
5a256b:	e8 d8 4e e6 ff       	call   0x407448
5a2570:	57                   	push   %edi
5a2571:	e8 9a 4f e6 ff       	call   0x407510
5a2576:	4b                   	dec    %ebx
5a2577:	85 db                	test   %ebx,%ebx
5a2579:	75 95                	jne    0x5a2510
5a257b:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
5a257f:	74 1e                	je     0x5a259f
5a2581:	6a 02                	push   $0x2
5a2583:	8b 45 e0             	mov    -0x20(%ebp),%eax
5a2586:	50                   	push   %eax
5a2587:	8b 45 f0             	mov    -0x10(%ebp),%eax
5a258a:	50                   	push   %eax
5a258b:	8b 45 f0             	mov    -0x10(%ebp),%eax
5a258e:	50                   	push   %eax
5a258f:	e8 b4 4e e6 ff       	call   0x407448
5a2594:	8b 45 e0             	mov    -0x20(%ebp),%eax
5a2597:	50                   	push   %eax
5a2598:	e8 73 4f e6 ff       	call   0x407510
5a259d:	eb 06                	jmp    0x5a25a5
5a259f:	8b 45 e0             	mov    -0x20(%ebp),%eax
5a25a2:	89 45 f0             	mov    %eax,-0x10(%ebp)
5a25a5:	8b c6                	mov    %esi,%eax
5a25a7:	d1 f8                	sar    $1,%eax
5a25a9:	79 03                	jns    0x5a25ae
5a25ab:	83 d0 00             	adc    $0x0,%eax
5a25ae:	01 45 ec             	add    %eax,-0x14(%ebp)
5a25b1:	8b 45 ec             	mov    -0x14(%ebp),%eax
5a25b4:	3b 45 f4             	cmp    -0xc(%ebp),%eax
5a25b7:	0f 8c 80 fe ff ff    	jl     0x5a243d
5a25bd:	8b 45 f0             	mov    -0x10(%ebp),%eax
5a25c0:	5f                   	pop    %edi
5a25c1:	5e                   	pop    %esi
5a25c2:	5b                   	pop    %ebx
5a25c3:	8b e5                	mov    %ebp,%esp
5a25c5:	5d                   	pop    %ebp
5a25c6:	c2 0c 00             	ret    $0xc
5a25c9:	8d 40 00             	lea    0x0(%eax),%eax
5a25cc:	55                   	push   %ebp
5a25cd:	8b ec                	mov    %esp,%ebp
5a25cf:	83 c4 e8             	add    $0xffffffe8,%esp
5a25d2:	89 45 e8             	mov    %eax,-0x18(%ebp)
5a25d5:	89 55 ec             	mov    %edx,-0x14(%ebp)
5a25d8:	89 4d f0             	mov    %ecx,-0x10(%ebp)
5a25db:	8b 45 10             	mov    0x10(%ebp),%eax
5a25de:	89 45 f4             	mov    %eax,-0xc(%ebp)
5a25e1:	8b 45 0c             	mov    0xc(%ebp),%eax
5a25e4:	89 45 f8             	mov    %eax,-0x8(%ebp)
5a25e7:	8b 45 08             	mov    0x8(%ebp),%eax
5a25ea:	89 45 fc             	mov    %eax,-0x4(%ebp)
5a25ed:	6a 02                	push   $0x2
5a25ef:	6a 03                	push   $0x3
5a25f1:	8d 45 e8             	lea    -0x18(%ebp),%eax
5a25f4:	50                   	push   %eax
5a25f5:	e8 de 4e e6 ff       	call   0x4074d8
5a25fa:	8b e5                	mov    %ebp,%esp
5a25fc:	5d                   	pop    %ebp
5a25fd:	c2 0c 00             	ret    $0xc
5a2600:	55                   	push   %ebp
5a2601:	8b ec                	mov    %esp,%ebp
5a2603:	83 c4 bc             	add    $0xffffffbc,%esp
5a2606:	53                   	push   %ebx
5a2607:	56                   	push   %esi
5a2608:	57                   	push   %edi
5a2609:	8b f9                	mov    %ecx,%edi
5a260b:	89 55 f8             	mov    %edx,-0x8(%ebp)
5a260e:	89 45 fc             	mov    %eax,-0x4(%ebp)
5a2611:	8b 45 08             	mov    0x8(%ebp),%eax
5a2614:	40                   	inc    %eax
5a2615:	c1 e0 03             	shl    $0x3,%eax
5a2618:	e8 8f 01 e6 ff       	call   0x4027ac
5a261d:	89 45 f0             	mov    %eax,-0x10(%ebp)
5a2620:	33 c0                	xor    %eax,%eax
5a2622:	55                   	push   %ebp
5a2623:	68 de 26 5a 00       	push   $0x5a26de
5a2628:	64 ff 30             	push   %fs:(%eax)
5a262b:	64 89 20             	mov    %esp,%fs:(%eax)
5a262e:	8b 45 f0             	mov    -0x10(%ebp),%eax
5a2631:	8b 55 fc             	mov    -0x4(%ebp),%edx
5a2634:	89 10                	mov    %edx,(%eax)
5a2636:	8b 45 f0             	mov    -0x10(%ebp),%eax
5a2639:	8b 55 f8             	mov    -0x8(%ebp),%edx
5a263c:	89 50 04             	mov    %edx,0x4(%eax)
5a263f:	db 6d 0c             	fldt   0xc(%ebp)
5a2642:	db 6d 18             	fldt   0x18(%ebp)
5a2645:	de e9                	fsubrp %st,%st(1)
5a2647:	db 45 08             	fildl  0x8(%ebp)
5a264a:	de f9                	fdivrp %st,%st(1)
5a264c:	db 7d c0             	fstpt  -0x40(%ebp)
5a264f:	9b                   	fwait
5a2650:	8b 75 08             	mov    0x8(%ebp),%esi
5a2653:	85 f6                	test   %esi,%esi
5a2655:	7e 5e                	jle    0x5a26b5
5a2657:	bb 01 00 00 00       	mov    $0x1,%ebx
5a265c:	66 8b 45 20          	mov    0x20(%ebp),%ax
5a2660:	50                   	push   %eax
5a2661:	ff 75 1c             	push   0x1c(%ebp)
5a2664:	ff 75 18             	push   0x18(%ebp)
5a2667:	8d 55 d0             	lea    -0x30(%ebp),%edx
5a266a:	8d 45 e0             	lea    -0x20(%ebp),%eax
5a266d:	e8 3a f3 ff ff       	call   0x5a19ac
5a2672:	89 7d bc             	mov    %edi,-0x44(%ebp)
5a2675:	db 45 bc             	fildl  -0x44(%ebp)
5a2678:	db 6d d0             	fldt   -0x30(%ebp)
5a267b:	de c9                	fmulp  %st,%st(1)
5a267d:	e8 3e 06 e6 ff       	call   0x402cc0
5a2682:	03 45 fc             	add    -0x4(%ebp),%eax
5a2685:	8b 55 f0             	mov    -0x10(%ebp),%edx
5a2688:	89 04 da             	mov    %eax,(%edx,%ebx,8)
5a268b:	89 7d bc             	mov    %edi,-0x44(%ebp)
5a268e:	db 45 bc             	fildl  -0x44(%ebp)
5a2691:	db 6d e0             	fldt   -0x20(%ebp)
5a2694:	de c9                	fmulp  %st,%st(1)
5a2696:	e8 25 06 e6 ff       	call   0x402cc0
5a269b:	03 45 f8             	add    -0x8(%ebp),%eax
5a269e:	8b 55 f0             	mov    -0x10(%ebp),%edx
5a26a1:	89 44 da 04          	mov    %eax,0x4(%edx,%ebx,8)
5a26a5:	db 6d 18             	fldt   0x18(%ebp)
5a26a8:	db 6d c0             	fldt   -0x40(%ebp)
5a26ab:	de c1                	faddp  %st,%st(1)
5a26ad:	db 7d 18             	fstpt  0x18(%ebp)
5a26b0:	9b                   	fwait
5a26b1:	43                   	inc    %ebx
5a26b2:	4e                   	dec    %esi
5a26b3:	75 a7                	jne    0x5a265c
5a26b5:	6a 02                	push   $0x2
5a26b7:	8b 45 08             	mov    0x8(%ebp),%eax
5a26ba:	40                   	inc    %eax
5a26bb:	50                   	push   %eax
5a26bc:	8b 45 f0             	mov    -0x10(%ebp),%eax
5a26bf:	50                   	push   %eax
5a26c0:	e8 13 4e e6 ff       	call   0x4074d8
5a26c5:	89 45 f4             	mov    %eax,-0xc(%ebp)
5a26c8:	33 c0                	xor    %eax,%eax
5a26ca:	5a                   	pop    %edx
5a26cb:	59                   	pop    %ecx
5a26cc:	59                   	pop    %ecx
5a26cd:	64 89 10             	mov    %edx,%fs:(%eax)
5a26d0:	68 e5 26 5a 00       	push   $0x5a26e5
5a26d5:	8b 45 f0             	mov    -0x10(%ebp),%eax
5a26d8:	e8 ef 00 e6 ff       	call   0x4027cc
5a26dd:	c3                   	ret
5a26de:	e9 29 1b e6 ff       	jmp    0x40420c
5a26e3:	eb f0                	jmp    0x5a26d5
5a26e5:	8b 45 f4             	mov    -0xc(%ebp),%eax
5a26e8:	5f                   	pop    %edi
5a26e9:	5e                   	pop    %esi
5a26ea:	5b                   	pop    %ebx
5a26eb:	8b e5                	mov    %ebp,%esp
5a26ed:	5d                   	pop    %ebp
5a26ee:	c2 1c 00             	ret    $0x1c
5a26f1:	8d 40 00             	lea    0x0(%eax),%eax
5a26f4:	55                   	push   %ebp
5a26f5:	8b ec                	mov    %esp,%ebp
5a26f7:	83 c4 f8             	add    $0xfffffff8,%esp
5a26fa:	53                   	push   %ebx
5a26fb:	56                   	push   %esi
5a26fc:	57                   	push   %edi
5a26fd:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5a2700:	89 55 fc             	mov    %edx,-0x4(%ebp)
5a2703:	8b 7d 10             	mov    0x10(%ebp),%edi
5a2706:	8b 75 14             	mov    0x14(%ebp),%esi
5a2709:	8b 5d 18             	mov    0x18(%ebp),%ebx
5a270c:	8b 50 08             	mov    0x8(%eax),%edx
5a270f:	2b 10                	sub    (%eax),%edx
5a2711:	89 13                	mov    %edx,(%ebx)
5a2713:	8b 50 0c             	mov    0xc(%eax),%edx
5a2716:	2b 50 04             	sub    0x4(%eax),%edx
5a2719:	89 16                	mov    %edx,(%esi)
5a271b:	8b 03                	mov    (%ebx),%eax
5a271d:	3b 06                	cmp    (%esi),%eax
5a271f:	7c 38                	jl     0x5a2759
5a2721:	6a 64                	push   $0x64
5a2723:	8b 45 f8             	mov    -0x8(%ebp),%eax
5a2726:	50                   	push   %eax
5a2727:	8b 03                	mov    (%ebx),%eax
5a2729:	50                   	push   %eax
5a272a:	e8 09 4c e6 ff       	call   0x407338
5a272f:	89 07                	mov    %eax,(%edi)
5a2731:	8b 03                	mov    (%ebx),%eax
5a2733:	50                   	push   %eax
5a2734:	8b 06                	mov    (%esi),%eax
5a2736:	50                   	push   %eax
5a2737:	8b 07                	mov    (%edi),%eax
5a2739:	50                   	push   %eax
5a273a:	e8 f9 4b e6 ff       	call   0x407338
5a273f:	8b 55 0c             	mov    0xc(%ebp),%edx
5a2742:	89 02                	mov    %eax,(%edx)
5a2744:	6a 5a                	push   $0x5a
5a2746:	8b 45 fc             	mov    -0x4(%ebp),%eax
5a2749:	50                   	push   %eax
5a274a:	8b 03                	mov    (%ebx),%eax
5a274c:	50                   	push   %eax
5a274d:	e8 e6 4b e6 ff       	call   0x407338
5a2752:	8b 55 08             	mov    0x8(%ebp),%edx
5a2755:	89 02                	mov    %eax,(%edx)
5a2757:	eb 39                	jmp    0x5a2792
5a2759:	6a 64                	push   $0x64
5a275b:	8b 45 f8             	mov    -0x8(%ebp),%eax
5a275e:	50                   	push   %eax
5a275f:	8b 06                	mov    (%esi),%eax
5a2761:	50                   	push   %eax
5a2762:	e8 d1 4b e6 ff       	call   0x407338
5a2767:	8b 55 0c             	mov    0xc(%ebp),%edx
5a276a:	89 02                	mov    %eax,(%edx)
5a276c:	8b 06                	mov    (%esi),%eax
5a276e:	50                   	push   %eax
5a276f:	8b 03                	mov    (%ebx),%eax
5a2771:	50                   	push   %eax
5a2772:	8b 45 0c             	mov    0xc(%ebp),%eax
5a2775:	8b 00                	mov    (%eax),%eax
5a2777:	50                   	push   %eax
5a2778:	e8 bb 4b e6 ff       	call   0x407338
5a277d:	89 07                	mov    %eax,(%edi)
5a277f:	6a 5a                	push   $0x5a
5a2781:	8b 45 fc             	mov    -0x4(%ebp),%eax
5a2784:	50                   	push   %eax
5a2785:	8b 06                	mov    (%esi),%eax
5a2787:	50                   	push   %eax
5a2788:	e8 ab 4b e6 ff       	call   0x407338
5a278d:	8b 55 08             	mov    0x8(%ebp),%edx
5a2790:	89 02                	mov    %eax,(%edx)
5a2792:	5f                   	pop    %edi
5a2793:	5e                   	pop    %esi
5a2794:	5b                   	pop    %ebx
5a2795:	59                   	pop    %ecx
5a2796:	59                   	pop    %ecx
5a2797:	5d                   	pop    %ebp
5a2798:	c2 14 00             	ret    $0x14
5a279b:	90                   	nop
5a279c:	55                   	push   %ebp
5a279d:	8b ec                	mov    %esp,%ebp
5a279f:	83 c4 dc             	add    $0xffffffdc,%esp
5a27a2:	53                   	push   %ebx
5a27a3:	56                   	push   %esi
5a27a4:	57                   	push   %edi
5a27a5:	8b f9                	mov    %ecx,%edi