46a507:	33 d2                	xor    %edx,%edx
46a509:	88 45 96             	mov    %al,-0x6a(%ebp)
46a50c:	8b c3                	mov    %ebx,%eax
46a50e:	f7 75 98             	divl   -0x68(%ebp)
46a511:	8b 5d 84             	mov    -0x7c(%ebp),%ebx
46a514:	33 d2                	xor    %edx,%edx
46a516:	88 45 95             	mov    %al,-0x6b(%ebp)
46a519:	8b c3                	mov    %ebx,%eax
46a51b:	0f af c1             	imul   %ecx,%eax
46a51e:	03 85 70 ff ff ff    	add    -0x90(%ebp),%eax
46a524:	f7 75 98             	divl   -0x68(%ebp)
46a527:	88 45 a3             	mov    %al,-0x5d(%ebp)
46a52a:	8b c3                	mov    %ebx,%eax
46a52c:	0f af 85 58 ff ff ff 	imul   -0xa8(%ebp),%eax
46a533:	33 d2                	xor    %edx,%edx
46a535:	03 85 74 ff ff ff    	add    -0x8c(%ebp),%eax
46a53b:	f7 75 98             	divl   -0x68(%ebp)
46a53e:	33 d2                	xor    %edx,%edx
46a540:	88 45 a2             	mov    %al,-0x5e(%ebp)
46a543:	8b 85 64 ff ff ff    	mov    -0x9c(%ebp),%eax
46a549:	0f af c3             	imul   %ebx,%eax
46a54c:	8b 5d 88             	mov    -0x78(%ebp),%ebx
46a54f:	03 85 78 ff ff ff    	add    -0x88(%ebp),%eax
46a555:	f7 75 98             	divl   -0x68(%ebp)
46a558:	33 d2                	xor    %edx,%edx
46a55a:	88 45 9e             	mov    %al,-0x62(%ebp)
46a55d:	8b c3                	mov    %ebx,%eax
46a55f:	0f af c1             	imul   %ecx,%eax
46a562:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46a565:	03 85 68 ff ff ff    	add    -0x98(%ebp),%eax
46a56b:	f7 f1                	div    %ecx
46a56d:	33 d2                	xor    %edx,%edx
46a56f:	88 45 94             	mov    %al,-0x6c(%ebp)
46a572:	8b c3                	mov    %ebx,%eax
46a574:	0f af 85 58 ff ff ff 	imul   -0xa8(%ebp),%eax
46a57b:	03 85 5c ff ff ff    	add    -0xa4(%ebp),%eax
46a581:	f7 f1                	div    %ecx
46a583:	33 d2                	xor    %edx,%edx
46a585:	88 45 93             	mov    %al,-0x6d(%ebp)
46a588:	8b 85 64 ff ff ff    	mov    -0x9c(%ebp),%eax
46a58e:	0f af c3             	imul   %ebx,%eax
46a591:	8a 5d a3             	mov    -0x5d(%ebp),%bl
46a594:	8a 7d a2             	mov    -0x5e(%ebp),%bh
46a597:	03 85 7c ff ff ff    	add    -0x84(%ebp),%eax
46a59d:	f7 f1                	div    %ecx
46a59f:	8a 4d a1             	mov    -0x5f(%ebp),%cl
46a5a2:	88 45 92             	mov    %al,-0x6e(%ebp)
46a5a5:	8a 65 a0             	mov    -0x60(%ebp),%ah
46a5a8:	0f b6 c9             	movzbl %cl,%ecx
46a5ab:	66 c1 e1 08          	shl    $0x8,%cx
46a5af:	66 89 4d c4          	mov    %cx,-0x3c(%ebp)
46a5b3:	0f b6 cc             	movzbl %ah,%ecx
46a5b6:	0f b6 45 9f          	movzbl -0x61(%ebp),%eax
46a5ba:	66 c1 e0 08          	shl    $0x8,%ax
46a5be:	66 89 45 c8          	mov    %ax,-0x38(%ebp)
46a5c2:	b8 00 ff 00 00       	mov    $0xff00,%eax
46a5c7:	66 89 45 ca          	mov    %ax,-0x36(%ebp)
46a5cb:	0f b6 45 97          	movzbl -0x69(%ebp),%eax
46a5cf:	66 c1 e0 08          	shl    $0x8,%ax
46a5d3:	66 89 45 d4          	mov    %ax,-0x2c(%ebp)
46a5d7:	0f b6 45 96          	movzbl -0x6a(%ebp),%eax
46a5db:	66 c1 e0 08          	shl    $0x8,%ax
46a5df:	66 89 45 d6          	mov    %ax,-0x2a(%ebp)
46a5e3:	0f b6 45 95          	movzbl -0x6b(%ebp),%eax
46a5e7:	66 c1 e0 08          	shl    $0x8,%ax
46a5eb:	66 89 45 d8          	mov    %ax,-0x28(%ebp)
46a5ef:	0f b6 c3             	movzbl %bl,%eax
46a5f2:	66 c1 e0 08          	shl    $0x8,%ax
46a5f6:	66 89 45 e4          	mov    %ax,-0x1c(%ebp)
46a5fa:	0f b6 c7             	movzbl %bh,%eax
46a5fd:	66 c1 e0 08          	shl    $0x8,%ax
46a601:	66 89 45 e6          	mov    %ax,-0x1a(%ebp)
46a605:	0f b6 45 9e          	movzbl -0x62(%ebp),%eax
46a609:	66 c1 e0 08          	shl    $0x8,%ax
46a60d:	66 89 45 e8          	mov    %ax,-0x18(%ebp)
46a611:	0f b6 45 94          	movzbl -0x6c(%ebp),%eax
46a615:	8b bd 54 ff ff ff    	mov    -0xac(%ebp),%edi
46a61b:	66 c1 e0 08          	shl    $0x8,%ax
46a61f:	8b b5 60 ff ff ff    	mov    -0xa0(%ebp),%esi
46a625:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
46a629:	0f b6 45 93          	movzbl -0x6d(%ebp),%eax
46a62d:	8b 17                	mov    (%edi),%edx
46a62f:	66 c1 e0 08          	shl    $0x8,%ax
46a633:	83 65 a4 00          	andl   $0x0,-0x5c(%ebp)
46a637:	83 65 b0 00          	andl   $0x0,-0x50(%ebp)
46a63b:	66 89 45 f6          	mov    %ax,-0xa(%ebp)
46a63f:	0f b6 45 92          	movzbl -0x6e(%ebp),%eax
46a643:	6a 03                	push   $0x3
46a645:	66 c1 e0 08          	shl    $0x8,%ax
46a649:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
46a64d:	58                   	pop    %eax
46a64e:	6a 02                	push   $0x2
46a650:	89 45 ac             	mov    %eax,-0x54(%ebp)
46a653:	89 45 b4             	mov    %eax,-0x4c(%ebp)
46a656:	58                   	pop    %eax
46a657:	50                   	push   %eax
46a658:	50                   	push   %eax
46a659:	89 45 b8             	mov    %eax,-0x48(%ebp)
46a65c:	8d 45 a4             	lea    -0x5c(%ebp),%eax
46a65f:	50                   	push   %eax
46a660:	6a 04                	push   $0x4
46a662:	8d 45 bc             	lea    -0x44(%ebp),%eax
46a665:	66 c1 e1 08          	shl    $0x8,%cx
46a669:	50                   	push   %eax
46a66a:	ff b5 50 ff ff ff    	push   -0xb0(%ebp)
46a670:	89 75 c0             	mov    %esi,-0x40(%ebp)
46a673:	89 75 d0             	mov    %esi,-0x30(%ebp)
46a676:	be 00 ff 00 00       	mov    $0xff00,%esi
46a67b:	89 55 bc             	mov    %edx,-0x44(%ebp)
46a67e:	66 89 4d c6          	mov    %cx,-0x3a(%ebp)
46a682:	8b 4f 08             	mov    0x8(%edi),%ecx
46a685:	89 55 dc             	mov    %edx,-0x24(%ebp)
46a688:	8b 95 6c ff ff ff    	mov    -0x94(%ebp),%edx
46a68e:	89 4d cc             	mov    %ecx,-0x34(%ebp)
46a691:	66 89 75 da          	mov    %si,-0x26(%ebp)
46a695:	89 55 e0             	mov    %edx,-0x20(%ebp)
46a698:	66 89 75 ea          	mov    %si,-0x16(%ebp)
46a69c:	89 4d ec             	mov    %ecx,-0x14(%ebp)
46a69f:	89 55 f0             	mov    %edx,-0x10(%ebp)
46a6a2:	66 89 75 fa          	mov    %si,-0x6(%ebp)
46a6a6:	c7 45 a8 01 00 00 00 	movl   $0x1,-0x58(%ebp)
46a6ad:	ff 15 6c 70 4a 00    	call   *0x4a706c
46a6b3:	5b                   	pop    %ebx
46a6b4:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46a6b7:	5f                   	pop    %edi
46a6b8:	33 cd                	xor    %ebp,%ecx
46a6ba:	5e                   	pop    %esi
46a6bb:	e8 40 58 02 00       	call   0x48ff00
46a6c0:	c9                   	leave
46a6c1:	c2 08 00             	ret    $0x8
46a6c4:	cc                   	int3
46a6c5:	cc                   	int3
46a6c6:	cc                   	int3
46a6c7:	cc                   	int3
46a6c8:	cc                   	int3
46a6c9:	cc                   	int3
46a6ca:	cc                   	int3
46a6cb:	cc                   	int3
46a6cc:	cc                   	int3
46a6cd:	cc                   	int3
46a6ce:	cc                   	int3
46a6cf:	cc                   	int3
46a6d0:	6a 7f                	push   $0x7f
46a6d2:	ff 15 98 72 4a 00    	call   *0x4a7298
46a6d8:	33 c0                	xor    %eax,%eax
46a6da:	c2 24 00             	ret    $0x24
46a6dd:	cc                   	int3
46a6de:	cc                   	int3
46a6df:	cc                   	int3
46a6e0:	6a 7f                	push   $0x7f
46a6e2:	ff 15 98 72 4a 00    	call   *0x4a7298
46a6e8:	33 c0                	xor    %eax,%eax
46a6ea:	c2 0c 00             	ret    $0xc
46a6ed:	cc                   	int3
46a6ee:	cc                   	int3
46a6ef:	cc                   	int3
46a6f0:	6a 7f                	push   $0x7f
46a6f2:	ff 15 98 72 4a 00    	call   *0x4a7298
46a6f8:	33 c0                	xor    %eax,%eax
46a6fa:	c2 04 00             	ret    $0x4
46a6fd:	cc                   	int3
46a6fe:	cc                   	int3
46a6ff:	cc                   	int3
46a700:	6a 7f                	push   $0x7f
46a702:	ff 15 98 72 4a 00    	call   *0x4a7298
46a708:	33 c0                	xor    %eax,%eax
46a70a:	c2 18 00             	ret    $0x18
46a70d:	cc                   	int3
46a70e:	cc                   	int3
46a70f:	cc                   	int3
46a710:	33 c0                	xor    %eax,%eax
46a712:	c2 2c 00             	ret    $0x2c
46a715:	cc                   	int3
46a716:	cc                   	int3
46a717:	cc                   	int3
46a718:	cc                   	int3
46a719:	cc                   	int3
46a71a:	cc                   	int3
46a71b:	cc                   	int3
46a71c:	cc                   	int3
46a71d:	cc                   	int3
46a71e:	cc                   	int3
46a71f:	cc                   	int3
46a720:	33 c0                	xor    %eax,%eax
46a722:	c2 18 00             	ret    $0x18
46a725:	cc                   	int3
46a726:	cc                   	int3
46a727:	cc                   	int3
46a728:	cc                   	int3
46a729:	cc                   	int3
46a72a:	cc                   	int3
46a72b:	cc                   	int3
46a72c:	cc                   	int3
46a72d:	cc                   	int3
46a72e:	cc                   	int3
46a72f:	cc                   	int3
46a730:	6a 7f                	push   $0x7f
46a732:	ff 15 98 72 4a 00    	call   *0x4a7298
46a738:	33 c0                	xor    %eax,%eax
46a73a:	c2 08 00             	ret    $0x8
46a73d:	cc                   	int3
46a73e:	cc                   	int3
46a73f:	cc                   	int3
46a740:	6a 7f                	push   $0x7f
46a742:	ff 15 98 72 4a 00    	call   *0x4a7298
46a748:	33 c0                	xor    %eax,%eax
46a74a:	c2 1c 00             	ret    $0x1c
46a74d:	cc                   	int3
46a74e:	cc                   	int3
46a74f:	cc                   	int3
46a750:	6a 7f                	push   $0x7f
46a752:	ff 15 98 72 4a 00    	call   *0x4a7298
46a758:	33 c0                	xor    %eax,%eax
46a75a:	c2 10 00             	ret    $0x10
46a75d:	cc                   	int3
46a75e:	cc                   	int3
46a75f:	cc                   	int3
46a760:	6a 7f                	push   $0x7f
46a762:	ff 15 98 72 4a 00    	call   *0x4a7298
46a768:	33 c0                	xor    %eax,%eax
46a76a:	33 d2                	xor    %edx,%edx
46a76c:	c3                   	ret
46a76d:	cc                   	int3
46a76e:	cc                   	int3
46a76f:	cc                   	int3
46a770:	83 c8 ff             	or     $0xffffffff,%eax
46a773:	c2 0c 00             	ret    $0xc
46a776:	cc                   	int3
46a777:	cc                   	int3
46a778:	cc                   	int3
46a779:	cc                   	int3
46a77a:	cc                   	int3
46a77b:	cc                   	int3
46a77c:	cc                   	int3
46a77d:	cc                   	int3
46a77e:	cc                   	int3
46a77f:	cc                   	int3
46a780:	6a 7f                	push   $0x7f
46a782:	ff 15 98 72 4a 00    	call   *0x4a7298
46a788:	33 c0                	xor    %eax,%eax
46a78a:	c3                   	ret
46a78b:	cc                   	int3
46a78c:	cc                   	int3
46a78d:	cc                   	int3
46a78e:	cc                   	int3
46a78f:	cc                   	int3
46a790:	6a 7f                	push   $0x7f
46a792:	ff 15 98 72 4a 00    	call   *0x4a7298
46a798:	33 c0                	xor    %eax,%eax
46a79a:	c2 14 00             	ret    $0x14
46a79d:	cc                   	int3
46a79e:	cc                   	int3
46a79f:	cc                   	int3
46a7a0:	33 c0                	xor    %eax,%eax
46a7a2:	c2 0c 00             	ret    $0xc
46a7a5:	a1 c0 65 4a 00       	mov    0x4a65c0,%eax
46a7aa:	85 c0                	test   %eax,%eax
46a7ac:	74 0e                	je     0x46a7bc
46a7ae:	85 c9                	test   %ecx,%ecx
46a7b0:	79 0a                	jns    0x46a7bc
46a7b2:	3b c1                	cmp    %ecx,%eax
46a7b4:	74 05                	je     0x46a7bb
46a7b6:	83 f8 ff             	cmp    $0xffffffff,%eax
46a7b9:	75 01                	jne    0x46a7bc
46a7bb:	cc                   	int3
46a7bc:	c3                   	ret
46a7bd:	8b ff                	mov    %edi,%edi
46a7bf:	56                   	push   %esi
46a7c0:	8b f1                	mov    %ecx,%esi
46a7c2:	83 3e 00             	cmpl   $0x0,(%esi)
46a7c5:	74 0b                	je     0x46a7d2
46a7c7:	ff 36                	push   (%esi)
46a7c9:	ff 15 f0 71 4a 00    	call   *0x4a71f0
46a7cf:	83 26 00             	andl   $0x0,(%esi)
46a7d2:	5e                   	pop    %esi
46a7d3:	c3                   	ret
46a7d4:	8b ff                	mov    %edi,%edi
46a7d6:	56                   	push   %esi
46a7d7:	8b f1                	mov    %ecx,%esi
46a7d9:	83 3e 00             	cmpl   $0x0,(%esi)
46a7dc:	74 14                	je     0x46a7f2
46a7de:	ff 36                	push   (%esi)
46a7e0:	6a 00                	push   $0x0
46a7e2:	ff 15 74 72 4a 00    	call   *0x4a7274
46a7e8:	50                   	push   %eax
46a7e9:	ff 15 94 72 4a 00    	call   *0x4a7294
46a7ef:	83 26 00             	andl   $0x0,(%esi)
46a7f2:	5e                   	pop    %esi
46a7f3:	c3                   	ret
46a7f4:	8b ff                	mov    %edi,%edi
46a7f6:	56                   	push   %esi
46a7f7:	8b f1                	mov    %ecx,%esi
46a7f9:	83 3e 00             	cmpl   $0x0,(%esi)
46a7fc:	74 0b                	je     0x46a809
46a7fe:	ff 36                	push   (%esi)
46a800:	ff 15 88 72 4a 00    	call   *0x4a7288
46a806:	83 26 00             	andl   $0x0,(%esi)
46a809:	5e                   	pop    %esi
46a80a:	c3                   	ret
46a80b:	8b ff                	mov    %edi,%edi
46a80d:	55                   	push   %ebp
46a80e:	8b ec                	mov    %esp,%ebp
46a810:	51                   	push   %ecx
46a811:	56                   	push   %esi
46a812:	ba ff ff ff 7f       	mov    $0x7fffffff,%edx
46a817:	b8 70 0e 41 00       	mov    $0x410e70,%eax
46a81c:	57                   	push   %edi
46a81d:	8b ca                	mov    %edx,%ecx
46a81f:	33 ff                	xor    %edi,%edi
46a821:	66 39 38             	cmp    %di,(%eax)
46a824:	74 08                	je     0x46a82e
46a826:	83 c0 02             	add    $0x2,%eax
46a829:	83 e9 01             	sub    $0x1,%ecx
46a82c:	75 f3                	jne    0x46a821
46a82e:	8b 75 08             	mov    0x8(%ebp),%esi
46a831:	8b c1                	mov    %ecx,%eax
46a833:	f7 d8                	neg    %eax
46a835:	1b c0                	sbb    %eax,%eax
46a837:	25 a9 ff f8 7f       	and    $0x7ff8ffa9,%eax
46a83c:	05 57 00 07 80       	add    $0x80070057,%eax
46a841:	85 f6                	test   %esi,%esi
46a843:	74 0c                	je     0x46a851
46a845:	85 c9                	test   %ecx,%ecx
46a847:	74 06                	je     0x46a84f
46a849:	2b d1                	sub    %ecx,%edx
46a84b:	89 16                	mov    %edx,(%esi)
46a84d:	eb 02                	jmp    0x46a851
46a84f:	89 3e                	mov    %edi,(%esi)
46a851:	5f                   	pop    %edi
46a852:	5e                   	pop    %esi
46a853:	c9                   	leave
46a854:	c2 04 00             	ret    $0x4
46a857:	6a 04                	push   $0x4
46a859:	b8 60 53 49 00       	mov    $0x495360,%eax
46a85e:	e8 70 5c 02 00       	call   0x4904d3
46a863:	8b d9                	mov    %ecx,%ebx
46a865:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46a868:	33 c0                	xor    %eax,%eax
46a86a:	89 43 04             	mov    %eax,0x4(%ebx)
46a86d:	89 43 08             	mov    %eax,0x8(%ebx)
46a870:	89 43 0c             	mov    %eax,0xc(%ebx)
46a873:	89 45 fc             	mov    %eax,-0x4(%ebp)
46a876:	89 43 14             	mov    %eax,0x14(%ebx)
46a879:	89 43 18             	mov    %eax,0x18(%ebx)
46a87c:	89 43 1c             	mov    %eax,0x1c(%ebx)
46a87f:	8b 75 08             	mov    0x8(%ebp),%esi
46a882:	56                   	push   %esi
46a883:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
46a887:	e8 04 36 fb ff       	call   0x41de90
46a88c:	8d 46 10             	lea    0x10(%esi),%eax