5f346c:	8b 45 08             	mov    0x8(%ebp),%eax
5f346f:	8b 40 d4             	mov    -0x2c(%eax),%eax
5f3472:	50                   	push   %eax
5f3473:	e8 d8 42 e1 ff       	call   0x407750
5f3478:	e9 b7 02 00 00       	jmp    0x5f3734
5f347d:	8b 45 08             	mov    0x8(%ebp),%eax
5f3480:	8b 40 fc             	mov    -0x4(%eax),%eax
5f3483:	8b 55 08             	mov    0x8(%ebp),%edx
5f3486:	3b 42 d0             	cmp    -0x30(%edx),%eax
5f3489:	75 67                	jne    0x5f34f2
5f348b:	8b 45 08             	mov    0x8(%ebp),%eax
5f348e:	8b 40 fc             	mov    -0x4(%eax),%eax
5f3491:	8b 55 08             	mov    0x8(%ebp),%edx
5f3494:	f7 6a e0             	imull  -0x20(%edx)
5f3497:	c1 e8 0e             	shr    $0xe,%eax
5f349a:	8b 55 08             	mov    0x8(%ebp),%edx
5f349d:	03 42 28             	add    0x28(%edx),%eax
5f34a0:	8b 55 08             	mov    0x8(%ebp),%edx
5f34a3:	89 42 dc             	mov    %eax,-0x24(%edx)
5f34a6:	8b 45 08             	mov    0x8(%ebp),%eax
5f34a9:	8b 40 dc             	mov    -0x24(%eax),%eax
5f34ac:	8b 55 08             	mov    0x8(%ebp),%edx
5f34af:	8b 52 d8             	mov    -0x28(%edx),%edx
5f34b2:	3b 42 20             	cmp    0x20(%edx),%eax
5f34b5:	7d 15                	jge    0x5f34cc
5f34b7:	8b 45 08             	mov    0x8(%ebp),%eax
5f34ba:	8b 40 20             	mov    0x20(%eax),%eax
5f34bd:	8b 55 08             	mov    0x8(%ebp),%edx
5f34c0:	8b 52 d8             	mov    -0x28(%edx),%edx
5f34c3:	3b 42 04             	cmp    0x4(%edx),%eax
5f34c6:	0f 85 68 02 00 00    	jne    0x5f3734
5f34cc:	8b 45 08             	mov    0x8(%ebp),%eax
5f34cf:	8b 40 e4             	mov    -0x1c(%eax),%eax
5f34d2:	50                   	push   %eax
5f34d3:	8b 45 08             	mov    0x8(%ebp),%eax
5f34d6:	8b 40 e8             	mov    -0x18(%eax),%eax
5f34d9:	50                   	push   %eax
5f34da:	8b 45 08             	mov    0x8(%ebp),%eax
5f34dd:	8b 40 f4             	mov    -0xc(%eax),%eax
5f34e0:	50                   	push   %eax
5f34e1:	8b 45 08             	mov    0x8(%ebp),%eax
5f34e4:	8b 40 d4             	mov    -0x2c(%eax),%eax
5f34e7:	50                   	push   %eax
5f34e8:	e8 63 42 e1 ff       	call   0x407750
5f34ed:	e9 42 02 00 00       	jmp    0x5f3734
5f34f2:	8b 45 08             	mov    0x8(%ebp),%eax
5f34f5:	83 78 cc 00          	cmpl   $0x0,-0x34(%eax)
5f34f9:	75 4b                	jne    0x5f3546
5f34fb:	8b 45 08             	mov    0x8(%ebp),%eax
5f34fe:	8b 58 cc             	mov    -0x34(%eax),%ebx
5f3501:	8b 45 08             	mov    0x8(%ebp),%eax
5f3504:	0f af 58 c8          	imul   -0x38(%eax),%ebx
5f3508:	c1 eb 0e             	shr    $0xe,%ebx
5f350b:	8b 45 08             	mov    0x8(%ebp),%eax
5f350e:	03 58 24             	add    0x24(%eax),%ebx
5f3511:	8b 45 08             	mov    0x8(%ebp),%eax
5f3514:	8b 40 d8             	mov    -0x28(%eax),%eax
5f3517:	3b 58 1c             	cmp    0x1c(%eax),%ebx
5f351a:	0f 8f 14 02 00 00    	jg     0x5f3734
5f3520:	8b 45 08             	mov    0x8(%ebp),%eax
5f3523:	8b 40 e4             	mov    -0x1c(%eax),%eax
5f3526:	50                   	push   %eax
5f3527:	8b 45 08             	mov    0x8(%ebp),%eax
5f352a:	8b 40 e8             	mov    -0x18(%eax),%eax
5f352d:	50                   	push   %eax
5f352e:	8b 45 08             	mov    0x8(%ebp),%eax
5f3531:	8b 40 f4             	mov    -0xc(%eax),%eax
5f3534:	50                   	push   %eax
5f3535:	8b 45 08             	mov    0x8(%ebp),%eax
5f3538:	8b 40 d4             	mov    -0x2c(%eax),%eax
5f353b:	50                   	push   %eax
5f353c:	e8 0f 42 e1 ff       	call   0x407750
5f3541:	e9 ee 01 00 00       	jmp    0x5f3734
5f3546:	8b 45 08             	mov    0x8(%ebp),%eax
5f3549:	8b 40 cc             	mov    -0x34(%eax),%eax
5f354c:	8b 55 08             	mov    0x8(%ebp),%edx
5f354f:	3b 42 c4             	cmp    -0x3c(%edx),%eax
5f3552:	75 5c                	jne    0x5f35b0
5f3554:	8b 45 08             	mov    0x8(%ebp),%eax
5f3557:	8b 58 cc             	mov    -0x34(%eax),%ebx
5f355a:	8b 45 08             	mov    0x8(%ebp),%eax
5f355d:	0f af 58 c8          	imul   -0x38(%eax),%ebx
5f3561:	c1 eb 0e             	shr    $0xe,%ebx
5f3564:	8b 45 08             	mov    0x8(%ebp),%eax
5f3567:	03 58 24             	add    0x24(%eax),%ebx
5f356a:	8b 45 08             	mov    0x8(%ebp),%eax
5f356d:	8b 40 d8             	mov    -0x28(%eax),%eax
5f3570:	3b 58 24             	cmp    0x24(%eax),%ebx
5f3573:	7d 15                	jge    0x5f358a
5f3575:	8b 45 08             	mov    0x8(%ebp),%eax
5f3578:	8b 40 1c             	mov    0x1c(%eax),%eax
5f357b:	8b 55 08             	mov    0x8(%ebp),%edx
5f357e:	8b 52 d8             	mov    -0x28(%edx),%edx
5f3581:	3b 42 08             	cmp    0x8(%edx),%eax
5f3584:	0f 85 aa 01 00 00    	jne    0x5f3734
5f358a:	8b 45 08             	mov    0x8(%ebp),%eax
5f358d:	8b 40 e4             	mov    -0x1c(%eax),%eax
5f3590:	50                   	push   %eax
5f3591:	8b 45 08             	mov    0x8(%ebp),%eax
5f3594:	8b 40 e8             	mov    -0x18(%eax),%eax
5f3597:	50                   	push   %eax
5f3598:	8b 45 08             	mov    0x8(%ebp),%eax
5f359b:	8b 40 f4             	mov    -0xc(%eax),%eax
5f359e:	50                   	push   %eax
5f359f:	8b 45 08             	mov    0x8(%ebp),%eax
5f35a2:	8b 40 d4             	mov    -0x2c(%eax),%eax
5f35a5:	50                   	push   %eax
5f35a6:	e8 a5 41 e1 ff       	call   0x407750
5f35ab:	e9 84 01 00 00       	jmp    0x5f3734
5f35b0:	8b 45 08             	mov    0x8(%ebp),%eax
5f35b3:	8b 40 d8             	mov    -0x28(%eax),%eax
5f35b6:	8b 40 0c             	mov    0xc(%eax),%eax
5f35b9:	48                   	dec    %eax
5f35ba:	74 0e                	je     0x5f35ca
5f35bc:	83 e8 07             	sub    $0x7,%eax
5f35bf:	0f 84 a7 00 00 00    	je     0x5f366c
5f35c5:	e9 6a 01 00 00       	jmp    0x5f3734
5f35ca:	8b 45 08             	mov    0x8(%ebp),%eax
5f35cd:	8b 40 fc             	mov    -0x4(%eax),%eax
5f35d0:	48                   	dec    %eax
5f35d1:	8b d0                	mov    %eax,%edx
5f35d3:	83 e2 07             	and    $0x7,%edx
5f35d6:	b9 0d 00 00 00       	mov    $0xd,%ecx
5f35db:	2b ca                	sub    %edx,%ecx
5f35dd:	8b 55 08             	mov    0x8(%ebp),%edx
5f35e0:	89 4a c0             	mov    %ecx,-0x40(%edx)
5f35e3:	8b 55 08             	mov    0x8(%ebp),%edx
5f35e6:	c1 e8 03             	shr    $0x3,%eax
5f35e9:	8b 55 08             	mov    0x8(%ebp),%edx
5f35ec:	89 42 bc             	mov    %eax,-0x44(%edx)
5f35ef:	8b 45 08             	mov    0x8(%ebp),%eax
5f35f2:	8b 58 b8             	mov    -0x48(%eax),%ebx
5f35f5:	8b 45 08             	mov    0x8(%ebp),%eax
5f35f8:	8b 70 b4             	mov    -0x4c(%eax),%esi
5f35fb:	2b f3                	sub    %ebx,%esi
5f35fd:	0f 8c 31 01 00 00    	jl     0x5f3734
5f3603:	46                   	inc    %esi
5f3604:	8b 45 08             	mov    0x8(%ebp),%eax
5f3607:	8b 40 d8             	mov    -0x28(%eax),%eax
5f360a:	8b 40 64             	mov    0x64(%eax),%eax
5f360d:	8b 04 98             	mov    (%eax,%ebx,4),%eax
5f3610:	8b 55 08             	mov    0x8(%ebp),%edx
5f3613:	03 42 bc             	add    -0x44(%edx),%eax
5f3616:	8b 55 08             	mov    0x8(%ebp),%edx
5f3619:	89 42 b0             	mov    %eax,-0x50(%edx)
5f361c:	8b 45 08             	mov    0x8(%ebp),%eax
5f361f:	8b 40 b0             	mov    -0x50(%eax),%eax
5f3622:	66 8b 00             	mov    (%eax),%ax
5f3625:	e8 be d6 ff ff       	call   0x5f0ce8
5f362a:	0f b7 c0             	movzwl %ax,%eax
5f362d:	8b 55 08             	mov    0x8(%ebp),%edx
5f3630:	8b 4a c0             	mov    -0x40(%edx),%ecx
5f3633:	d3 e8                	shr    %cl,%eax
5f3635:	83 e0 07             	and    $0x7,%eax
5f3638:	83 f8 07             	cmp    $0x7,%eax
5f363b:	73 26                	jae    0x5f3663
5f363d:	8b 45 08             	mov    0x8(%ebp),%eax
5f3640:	8b 40 e4             	mov    -0x1c(%eax),%eax
5f3643:	50                   	push   %eax
5f3644:	8b 45 08             	mov    0x8(%ebp),%eax
5f3647:	8b 40 e8             	mov    -0x18(%eax),%eax
5f364a:	50                   	push   %eax
5f364b:	8b 45 08             	mov    0x8(%ebp),%eax
5f364e:	8b 40 f4             	mov    -0xc(%eax),%eax
5f3651:	50                   	push   %eax
5f3652:	8b 45 08             	mov    0x8(%ebp),%eax
5f3655:	8b 40 d4             	mov    -0x2c(%eax),%eax
5f3658:	50                   	push   %eax
5f3659:	e8 f2 40 e1 ff       	call   0x407750
5f365e:	e9 d1 00 00 00       	jmp    0x5f3734
5f3663:	43                   	inc    %ebx
5f3664:	4e                   	dec    %esi
5f3665:	75 9d                	jne    0x5f3604
5f3667:	e9 c8 00 00 00       	jmp    0x5f3734
5f366c:	8b 45 08             	mov    0x8(%ebp),%eax
5f366f:	8b 58 b8             	mov    -0x48(%eax),%ebx
5f3672:	8b 45 08             	mov    0x8(%ebp),%eax
5f3675:	8b 70 b4             	mov    -0x4c(%eax),%esi
5f3678:	2b f3                	sub    %ebx,%esi
5f367a:	0f 8c b4 00 00 00    	jl     0x5f3734
5f3680:	46                   	inc    %esi
5f3681:	8b 45 08             	mov    0x8(%ebp),%eax
5f3684:	8b 40 d8             	mov    -0x28(%eax),%eax
5f3687:	8b 40 64             	mov    0x64(%eax),%eax
5f368a:	8b 04 98             	mov    (%eax,%ebx,4),%eax
5f368d:	8b 55 08             	mov    0x8(%ebp),%edx
5f3690:	8b 52 fc             	mov    -0x4(%edx),%edx
5f3693:	4a                   	dec    %edx
5f3694:	03 c2                	add    %edx,%eax
5f3696:	8b 55 08             	mov    0x8(%ebp),%edx
5f3699:	89 42 b0             	mov    %eax,-0x50(%edx)
5f369c:	8b 45 08             	mov    0x8(%ebp),%eax
5f369f:	8b 40 b0             	mov    -0x50(%eax),%eax
5f36a2:	80 38 00             	cmpb   $0x0,(%eax)
5f36a5:	75 21                	jne    0x5f36c8
5f36a7:	8b 45 08             	mov    0x8(%ebp),%eax
5f36aa:	8b 40 e4             	mov    -0x1c(%eax),%eax
5f36ad:	50                   	push   %eax
5f36ae:	8b 45 08             	mov    0x8(%ebp),%eax
5f36b1:	8b 40 e8             	mov    -0x18(%eax),%eax
5f36b4:	50                   	push   %eax
5f36b5:	8b 45 08             	mov    0x8(%ebp),%eax
5f36b8:	8b 40 f4             	mov    -0xc(%eax),%eax
5f36bb:	50                   	push   %eax
5f36bc:	8b 45 08             	mov    0x8(%ebp),%eax
5f36bf:	8b 40 d4             	mov    -0x2c(%eax),%eax
5f36c2:	50                   	push   %eax
5f36c3:	e8 88 40 e1 ff       	call   0x407750
5f36c8:	8b 45 08             	mov    0x8(%ebp),%eax
5f36cb:	ff 40 b0             	incl   -0x50(%eax)
5f36ce:	8b 45 08             	mov    0x8(%ebp),%eax
5f36d1:	8b 40 b0             	mov    -0x50(%eax),%eax
5f36d4:	80 38 00             	cmpb   $0x0,(%eax)
5f36d7:	75 21                	jne    0x5f36fa
5f36d9:	8b 45 08             	mov    0x8(%ebp),%eax
5f36dc:	8b 40 e4             	mov    -0x1c(%eax),%eax
5f36df:	50                   	push   %eax
5f36e0:	8b 45 08             	mov    0x8(%ebp),%eax
5f36e3:	8b 40 e8             	mov    -0x18(%eax),%eax
5f36e6:	50                   	push   %eax
5f36e7:	8b 45 08             	mov    0x8(%ebp),%eax
5f36ea:	8b 40 f4             	mov    -0xc(%eax),%eax
5f36ed:	50                   	push   %eax
5f36ee:	8b 45 08             	mov    0x8(%ebp),%eax
5f36f1:	8b 40 d4             	mov    -0x2c(%eax),%eax
5f36f4:	50                   	push   %eax
5f36f5:	e8 56 40 e1 ff       	call   0x407750
5f36fa:	8b 45 08             	mov    0x8(%ebp),%eax
5f36fd:	ff 40 b0             	incl   -0x50(%eax)
5f3700:	8b 45 08             	mov    0x8(%ebp),%eax
5f3703:	8b 40 b0             	mov    -0x50(%eax),%eax
5f3706:	80 38 00             	cmpb   $0x0,(%eax)
5f3709:	75 21                	jne    0x5f372c
5f370b:	8b 45 08             	mov    0x8(%ebp),%eax
5f370e:	8b 40 e4             	mov    -0x1c(%eax),%eax
5f3711:	50                   	push   %eax
5f3712:	8b 45 08             	mov    0x8(%ebp),%eax
5f3715:	8b 40 e8             	mov    -0x18(%eax),%eax
5f3718:	50                   	push   %eax
5f3719:	8b 45 08             	mov    0x8(%ebp),%eax
5f371c:	8b 40 f4             	mov    -0xc(%eax),%eax
5f371f:	50                   	push   %eax
5f3720:	8b 45 08             	mov    0x8(%ebp),%eax
5f3723:	8b 40 d4             	mov    -0x2c(%eax),%eax
5f3726:	50                   	push   %eax
5f3727:	e8 24 40 e1 ff       	call   0x407750
5f372c:	43                   	inc    %ebx
5f372d:	4e                   	dec    %esi
5f372e:	0f 85 4d ff ff ff    	jne    0x5f3681
5f3734:	5e                   	pop    %esi
5f3735:	5b                   	pop    %ebx
5f3736:	5d                   	pop    %ebp
5f3737:	c3                   	ret
5f3738:	55                   	push   %ebp
5f3739:	8b ec                	mov    %esp,%ebp
5f373b:	83 c4 a8             	add    $0xffffffa8,%esp
5f373e:	53                   	push   %ebx
5f373f:	56                   	push   %esi
5f3740:	57                   	push   %edi
5f3741:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5f3744:	8b fa                	mov    %edx,%edi
5f3746:	89 45 d8             	mov    %eax,-0x28(%ebp)
5f3749:	8b 5d 30             	mov    0x30(%ebp),%ebx
5f374c:	83 fb 01             	cmp    $0x1,%ebx
5f374f:	0f 8c ab 02 00 00    	jl     0x5f3a00
5f3755:	83 7d 2c 01          	cmpl   $0x1,0x2c(%ebp)
5f3759:	0f 8c a1 02 00 00    	jl     0x5f3a00
5f375f:	8b 45 d8             	mov    -0x28(%ebp),%eax
5f3762:	81 78 18 ff ff ff 7f 	cmpl   $0x7fffffff,0x18(%eax)
5f3769:	0f 84 91 02 00 00    	je     0x5f3a00
5f376f:	8b 45 d8             	mov    -0x28(%ebp),%eax
5f3772:	81 78 1c ff ff ff 7f 	cmpl   $0x7fffffff,0x1c(%eax)
5f3779:	0f 84 81 02 00 00    	je     0x5f3a00
5f377f:	8b 45 14             	mov    0x14(%ebp),%eax
5f3782:	e8 51 3e e3 ff       	call   0x4275d8
5f3787:	89 45 ec             	mov    %eax,-0x14(%ebp)
5f378a:	8b 45 10             	mov    0x10(%ebp),%eax
5f378d:	e8 46 3e e3 ff       	call   0x4275d8
5f3792:	89 45 f0             	mov    %eax,-0x10(%ebp)
5f3795:	8b 45 d8             	mov    -0x28(%ebp),%eax
5f3798:	3b 58 5c             	cmp    0x5c(%eax),%ebx
5f379b:	75 0f                	jne    0x5f37ac
5f379d:	8b 45 d8             	mov    -0x28(%ebp),%eax
5f37a0:	8b 40 60             	mov    0x60(%eax),%eax
5f37a3:	3b 45 2c             	cmp    0x2c(%ebp),%eax
5f37a6:	0f 84 8c 00 00 00    	je     0x5f3838
5f37ac:	8b 45 d8             	mov    -0x28(%ebp),%eax
5f37af:	89 58 5c             	mov    %ebx,0x5c(%eax)
5f37b2:	8b 45 d8             	mov    -0x28(%ebp),%eax
5f37b5:	8b 55 2c             	mov    0x2c(%ebp),%edx
5f37b8:	89 50 60             	mov    %edx,0x60(%eax)
5f37bb:	8b 45 d8             	mov    -0x28(%ebp),%eax
5f37be:	8b 50 0c             	mov    0xc(%eax),%edx
5f37c1:	b9 20 00 00 00       	mov    $0x20,%ecx
5f37c6:	8b c3                	mov    %ebx,%eax
5f37c8:	e8 13 d3 ff ff       	call   0x5f0ae0
5f37cd:	89 45 cc             	mov    %eax,-0x34(%ebp)
5f37d0:	8b 45 d8             	mov    -0x28(%ebp),%eax
5f37d3:	8b 40 58             	mov    0x58(%eax),%eax
5f37d6:	85 c0                	test   %eax,%eax
5f37d8:	74 10                	je     0x5f37ea
5f37da:	e8 ed ef e0 ff       	call   0x4027cc
5f37df:	8b 45 d8             	mov    -0x28(%ebp),%eax
5f37e2:	8b 40 64             	mov    0x64(%eax),%eax
5f37e5:	e8 e2 ef e0 ff       	call   0x4027cc
5f37ea:	8b 45 cc             	mov    -0x34(%ebp),%eax
5f37ed:	f7 6d 2c             	imull  0x2c(%ebp)
5f37f0:	e8 b7 ef e0 ff       	call   0x4027ac
5f37f5:	8b 55 d8             	mov    -0x28(%ebp),%edx
5f37f8:	89 42 58             	mov    %eax,0x58(%edx)
5f37fb:	8b 45 2c             	mov    0x2c(%ebp),%eax
5f37fe:	c1 e0 02             	shl    $0x2,%eax
5f3801:	e8 a6 ef e0 ff       	call   0x4027ac
5f3806:	8b 55 d8             	mov    -0x28(%ebp),%edx
5f3809:	89 42 64             	mov    %eax,0x64(%edx)
5f380c:	8b 75 2c             	mov    0x2c(%ebp),%esi
5f380f:	4e                   	dec    %esi
5f3810:	85 f6                	test   %esi,%esi
5f3812:	7c 24                	jl     0x5f3838
5f3814:	46                   	inc    %esi
5f3815:	33 c0                	xor    %eax,%eax
5f3817:	8b 55 d8             	mov    -0x28(%ebp),%edx
5f381a:	8b 52 58             	mov    0x58(%edx),%edx
5f381d:	8b 4d 2c             	mov    0x2c(%ebp),%ecx
5f3820:	2b c8                	sub    %eax,%ecx
5f3822:	49                   	dec    %ecx
5f3823:	0f af 4d cc          	imul   -0x34(%ebp),%ecx
5f3827:	03 d1                	add    %ecx,%edx
5f3829:	52                   	push   %edx
5f382a:	8b 55 d8             	mov    -0x28(%ebp),%edx
5f382d:	8b 52 64             	mov    0x64(%edx),%edx
5f3830:	59                   	pop    %ecx
5f3831:	89 0c 82             	mov    %ecx,(%edx,%eax,4)
5f3834:	40                   	inc    %eax
5f3835:	4e                   	dec    %esi
5f3836:	75 df                	jne    0x5f3817
5f3838:	8b 45 2c             	mov    0x2c(%ebp),%eax
5f383b:	50                   	push   %eax
5f383c:	8b 45 28             	mov    0x28(%ebp),%eax
5f383f:	50                   	push   %eax
5f3840:	8b 45 24             	mov    0x24(%ebp),%eax
5f3843:	50                   	push   %eax
5f3844:	8b 45 20             	mov    0x20(%ebp),%eax
5f3847:	50                   	push   %eax
5f3848:	8b 45 1c             	mov    0x1c(%ebp),%eax
5f384b:	50                   	push   %eax
5f384c:	8b 45 d8             	mov    -0x28(%ebp),%eax
5f384f:	8b 40 14             	mov    0x14(%eax),%eax
5f3852:	50                   	push   %eax
5f3853:	8b 45 d8             	mov    -0x28(%ebp),%eax