46c3aa:	83 c7 04             	add    $0x4,%edi
46c3ad:	8b c1                	mov    %ecx,%eax
46c3af:	2b 45 e4             	sub    -0x1c(%ebp),%eax
46c3b2:	89 07                	mov    %eax,(%edi)
46c3b4:	83 c7 04             	add    $0x4,%edi
46c3b7:	3b fb                	cmp    %ebx,%edi
46c3b9:	74 04                	je     0x46c3bf
46c3bb:	8b f3                	mov    %ebx,%esi
46c3bd:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
46c3bf:	8b 7d e0             	mov    -0x20(%ebp),%edi
46c3c2:	83 c7 08             	add    $0x8,%edi
46c3c5:	8b 45 e8             	mov    -0x18(%ebp),%eax
46c3c8:	c1 e0 02             	shl    $0x2,%eax
46c3cb:	03 f8                	add    %eax,%edi
46c3cd:	8b 45 e4             	mov    -0x1c(%ebp),%eax
46c3d0:	c1 e0 02             	shl    $0x2,%eax
46c3d3:	8b f7                	mov    %edi,%esi
46c3d5:	03 f0                	add    %eax,%esi
46c3d7:	8b 4d dc             	mov    -0x24(%ebp),%ecx
46c3da:	2b 4d e8             	sub    -0x18(%ebp),%ecx
46c3dd:	2b 4d e4             	sub    -0x1c(%ebp),%ecx
46c3e0:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
46c3e2:	2b 7d e0             	sub    -0x20(%ebp),%edi
46c3e5:	57                   	push   %edi
46c3e6:	ff 75 e0             	push   -0x20(%ebp)
46c3e9:	e8 c2 41 03 00       	call   0x4a05b0
46c3ee:	83 c4 08             	add    $0x8,%esp
46c3f1:	8b 5d ec             	mov    -0x14(%ebp),%ebx
46c3f4:	89 03                	mov    %eax,(%ebx)
46c3f6:	8b 45 e4             	mov    -0x1c(%ebp),%eax
46c3f9:	eb 02                	jmp    0x46c3fd
46c3fb:	33 c0                	xor    %eax,%eax
46c3fd:	8b 5d 08             	mov    0x8(%ebp),%ebx
46c400:	8b 1b                	mov    (%ebx),%ebx
46c402:	81 c3 1c 01 00 00    	add    $0x11c,%ebx
46c408:	89 5d ec             	mov    %ebx,-0x14(%ebp)
46c40b:	ff 75 ec             	push   -0x14(%ebp)
46c40e:	6a 04                	push   $0x4
46c410:	b8 02 00 00 00       	mov    $0x2,%eax
46c415:	e8 56 4a 03 00       	call   0x4a0e70
46c41a:	83 c4 08             	add    $0x8,%esp
46c41d:	8b 45 0c             	mov    0xc(%ebp),%eax
46c420:	48                   	dec    %eax
46c421:	0f 8c 12 01 00 00    	jl     0x46c539
46c427:	89 45 e8             	mov    %eax,-0x18(%ebp)
46c42a:	8b 5d ec             	mov    -0x14(%ebp),%ebx
46c42d:	8b 1b                	mov    (%ebx),%ebx
46c42f:	89 5d e0             	mov    %ebx,-0x20(%ebp)
46c432:	e8 bc 72 f9 ff       	call   0x4036f3
46c437:	89 4d dc             	mov    %ecx,-0x24(%ebp)
46c43a:	2b 4d e8             	sub    -0x18(%ebp),%ecx
46c43d:	0f 8e f6 00 00 00    	jle    0x46c539
46c443:	83 f9 01             	cmp    $0x1,%ecx
46c446:	7e 05                	jle    0x46c44d
46c448:	b9 01 00 00 00       	mov    $0x1,%ecx
46c44d:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
46c450:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
46c454:	0f 8e df 00 00 00    	jle    0x46c539
46c45a:	8b 7d e0             	mov    -0x20(%ebp),%edi
46c45d:	8b 4d dc             	mov    -0x24(%ebp),%ecx
46c460:	c7 07 01 00 00 00    	movl   $0x1,(%edi)
46c466:	83 c7 04             	add    $0x4,%edi
46c469:	8b c1                	mov    %ecx,%eax
46c46b:	2b 45 e4             	sub    -0x1c(%ebp),%eax
46c46e:	89 07                	mov    %eax,(%edi)
46c470:	83 c7 04             	add    $0x4,%edi
46c473:	3b fb                	cmp    %ebx,%edi
46c475:	74 04                	je     0x46c47b
46c477:	8b f3                	mov    %ebx,%esi
46c479:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
46c47b:	8b 7d e0             	mov    -0x20(%ebp),%edi
46c47e:	83 c7 08             	add    $0x8,%edi
46c481:	8b 45 e8             	mov    -0x18(%ebp),%eax
46c484:	c1 e0 02             	shl    $0x2,%eax
46c487:	03 f8                	add    %eax,%edi
46c489:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
46c48c:	8b df                	mov    %edi,%ebx
46c48e:	57                   	push   %edi
46c48f:	51                   	push   %ecx
46c490:	53                   	push   %ebx
46c491:	8b 1b                	mov    (%ebx),%ebx
46c493:	53                   	push   %ebx
46c494:	53                   	push   %ebx
46c495:	8b 1b                	mov    (%ebx),%ebx
46c497:	53                   	push   %ebx
46c498:	8b 0b                	mov    (%ebx),%ecx
46c49a:	83 c3 04             	add    $0x4,%ebx
46c49d:	85 c9                	test   %ecx,%ecx
46c49f:	74 11                	je     0x46c4b2
46c4a1:	8b 03                	mov    (%ebx),%eax
46c4a3:	83 c3 04             	add    $0x4,%ebx
46c4a6:	49                   	dec    %ecx
46c4a7:	74 05                	je     0x46c4ae
46c4a9:	0f af 03             	imul   (%ebx),%eax
46c4ac:	eb f5                	jmp    0x46c4a3
46c4ae:	8b c8                	mov    %eax,%ecx
46c4b0:	85 c9                	test   %ecx,%ecx
46c4b2:	0f 84 19 00 00 00    	je     0x46c4d1
46c4b8:	51                   	push   %ecx
46c4b9:	8b 03                	mov    (%ebx),%eax
46c4bb:	85 c0                	test   %eax,%eax
46c4bd:	74 0b                	je     0x46c4ca
46c4bf:	53                   	push   %ebx
46c4c0:	50                   	push   %eax
46c4c1:	e8 de 40 03 00       	call   0x4a05a4
46c4c6:	83 c4 04             	add    $0x4,%esp
46c4c9:	5b                   	pop    %ebx
46c4ca:	83 c3 04             	add    $0x4,%ebx
46c4cd:	59                   	pop    %ecx
46c4ce:	49                   	dec    %ecx
46c4cf:	75 e7                	jne    0x46c4b8
46c4d1:	e8 ce 40 03 00       	call   0x4a05a4
46c4d6:	83 c4 04             	add    $0x4,%esp
46c4d9:	5b                   	pop    %ebx
46c4da:	83 c3 04             	add    $0x4,%ebx
46c4dd:	53                   	push   %ebx
46c4de:	8b 1b                	mov    (%ebx),%ebx
46c4e0:	53                   	push   %ebx
46c4e1:	e8 be 40 03 00       	call   0x4a05a4
46c4e6:	83 c4 04             	add    $0x4,%esp
46c4e9:	5b                   	pop    %ebx
46c4ea:	83 c3 20             	add    $0x20,%ebx
46c4ed:	53                   	push   %ebx
46c4ee:	8b 1b                	mov    (%ebx),%ebx
46c4f0:	53                   	push   %ebx
46c4f1:	e8 ae 40 03 00       	call   0x4a05a4
46c4f6:	83 c4 04             	add    $0x4,%esp
46c4f9:	5b                   	pop    %ebx
46c4fa:	e8 a5 40 03 00       	call   0x4a05a4
46c4ff:	83 c4 04             	add    $0x4,%esp
46c502:	5b                   	pop    %ebx
46c503:	59                   	pop    %ecx
46c504:	83 c3 04             	add    $0x4,%ebx
46c507:	49                   	dec    %ecx
46c508:	75 85                	jne    0x46c48f
46c50a:	5f                   	pop    %edi
46c50b:	8b 45 e4             	mov    -0x1c(%ebp),%eax
46c50e:	c1 e0 02             	shl    $0x2,%eax
46c511:	8b f7                	mov    %edi,%esi
46c513:	03 f0                	add    %eax,%esi
46c515:	8b 4d dc             	mov    -0x24(%ebp),%ecx
46c518:	2b 4d e8             	sub    -0x18(%ebp),%ecx
46c51b:	2b 4d e4             	sub    -0x1c(%ebp),%ecx
46c51e:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
46c520:	2b 7d e0             	sub    -0x20(%ebp),%edi
46c523:	57                   	push   %edi
46c524:	ff 75 e0             	push   -0x20(%ebp)
46c527:	e8 84 40 03 00       	call   0x4a05b0
46c52c:	83 c4 08             	add    $0x8,%esp
46c52f:	8b 5d ec             	mov    -0x14(%ebp),%ebx
46c532:	89 03                	mov    %eax,(%ebx)
46c534:	8b 45 e4             	mov    -0x1c(%ebp),%eax
46c537:	eb 02                	jmp    0x46c53b
46c539:	33 c0                	xor    %eax,%eax
46c53b:	8b 5d 08             	mov    0x8(%ebp),%ebx
46c53e:	8b 1b                	mov    (%ebx),%ebx
46c540:	81 c3 40 01 00 00    	add    $0x140,%ebx
46c546:	89 5d ec             	mov    %ebx,-0x14(%ebp)
46c549:	8b 5d ec             	mov    -0x14(%ebp),%ebx
46c54c:	8b 1b                	mov    (%ebx),%ebx
46c54e:	e8 f7 1e fa ff       	call   0x40e44a
46c553:	33 c9                	xor    %ecx,%ecx
46c555:	50                   	push   %eax
46c556:	8d 45 fc             	lea    -0x4(%ebp),%eax
46c559:	8b d8                	mov    %eax,%ebx
46c55b:	58                   	pop    %eax
46c55c:	41                   	inc    %ecx
46c55d:	51                   	push   %ecx
46c55e:	53                   	push   %ebx
46c55f:	89 0b                	mov    %ecx,(%ebx)
46c561:	50                   	push   %eax
46c562:	3b c8                	cmp    %eax,%ecx
46c564:	0f 8f c3 00 00 00    	jg     0x46c62d
46c56a:	8b 5d 08             	mov    0x8(%ebp),%ebx
46c56d:	8b 1b                	mov    (%ebx),%ebx
46c56f:	8b 9b 40 01 00 00    	mov    0x140(%ebx),%ebx
46c575:	e8 79 71 f9 ff       	call   0x4036f3
46c57a:	53                   	push   %ebx
46c57b:	51                   	push   %ecx
46c57c:	8b 45 fc             	mov    -0x4(%ebp),%eax
46c57f:	48                   	dec    %eax
46c580:	79 17                	jns    0x46c599
46c582:	68 c2 01 00 00       	push   $0x1c2
46c587:	68 9b d1 03 04       	push   $0x403d19b
46c58c:	68 04 00 00 00       	push   $0x4
46c591:	e8 14 40 03 00       	call   0x4a05aa
46c596:	83 c4 0c             	add    $0xc,%esp
46c599:	59                   	pop    %ecx
46c59a:	5b                   	pop    %ebx
46c59b:	3b c1                	cmp    %ecx,%eax
46c59d:	7c 17                	jl     0x46c5b6
46c59f:	68 c2 01 00 00       	push   $0x1c2
46c5a4:	68 9b d1 03 04       	push   $0x403d19b
46c5a9:	68 01 00 00 00       	push   $0x1
46c5ae:	e8 f7 3f 03 00       	call   0x4a05aa
46c5b3:	83 c4 0c             	add    $0xc,%esp
46c5b6:	c1 e0 02             	shl    $0x2,%eax
46c5b9:	03 d8                	add    %eax,%ebx
46c5bb:	89 5d ec             	mov    %ebx,-0x14(%ebp)
46c5be:	8b 45 0c             	mov    0xc(%ebp),%eax
46c5c1:	8b 5d ec             	mov    -0x14(%ebp),%ebx
46c5c4:	39 03                	cmp    %eax,(%ebx)
46c5c6:	0f 8e 59 00 00 00    	jle    0x46c625
46c5cc:	8b 5d 08             	mov    0x8(%ebp),%ebx
46c5cf:	8b 1b                	mov    (%ebx),%ebx
46c5d1:	8b 9b 40 01 00 00    	mov    0x140(%ebx),%ebx
46c5d7:	e8 17 71 f9 ff       	call   0x4036f3
46c5dc:	53                   	push   %ebx
46c5dd:	51                   	push   %ecx
46c5de:	8b 45 fc             	mov    -0x4(%ebp),%eax
46c5e1:	48                   	dec    %eax
46c5e2:	79 17                	jns    0x46c5fb
46c5e4:	68 eb 01 00 00       	push   $0x1eb
46c5e9:	68 9b d1 03 04       	push   $0x403d19b
46c5ee:	68 04 00 00 00       	push   $0x4
46c5f3:	e8 b2 3f 03 00       	call   0x4a05aa
46c5f8:	83 c4 0c             	add    $0xc,%esp
46c5fb:	59                   	pop    %ecx
46c5fc:	5b                   	pop    %ebx
46c5fd:	3b c1                	cmp    %ecx,%eax
46c5ff:	7c 17                	jl     0x46c618
46c601:	68 eb 01 00 00       	push   $0x1eb
46c606:	68 9b d1 03 04       	push   $0x403d19b
46c60b:	68 01 00 00 00       	push   $0x1
46c610:	e8 95 3f 03 00       	call   0x4a05aa
46c615:	83 c4 0c             	add    $0xc,%esp
46c618:	c1 e0 02             	shl    $0x2,%eax
46c61b:	03 d8                	add    %eax,%ebx
46c61d:	89 5d ec             	mov    %ebx,-0x14(%ebp)
46c620:	8b 5d ec             	mov    -0x14(%ebp),%ebx
46c623:	ff 0b                	decl   (%ebx)
46c625:	58                   	pop    %eax
46c626:	5b                   	pop    %ebx
46c627:	59                   	pop    %ecx
46c628:	e9 2f ff ff ff       	jmp    0x46c55c
46c62d:	83 c4 0c             	add    $0xc,%esp
46c630:	8b 5d 08             	mov    0x8(%ebp),%ebx
46c633:	8b 1b                	mov    (%ebx),%ebx
46c635:	81 c3 28 01 00 00    	add    $0x128,%ebx
46c63b:	89 5d ec             	mov    %ebx,-0x14(%ebp)
46c63e:	8b 5d ec             	mov    -0x14(%ebp),%ebx
46c641:	83 3b 00             	cmpl   $0x0,(%ebx)
46c644:	0f 85 55 00 00 00    	jne    0x46c69f
46c64a:	8b 5d 08             	mov    0x8(%ebp),%ebx
46c64d:	8b 1b                	mov    (%ebx),%ebx
46c64f:	81 c3 5c 01 00 00    	add    $0x15c,%ebx
46c655:	89 5d ec             	mov    %ebx,-0x14(%ebp)
46c658:	8b 5d 08             	mov    0x8(%ebp),%ebx
46c65b:	8b 1b                	mov    (%ebx),%ebx
46c65d:	81 c3 5c 01 00 00    	add    $0x15c,%ebx
46c663:	89 5d e8             	mov    %ebx,-0x18(%ebp)
46c666:	8b 5d 08             	mov    0x8(%ebp),%ebx
46c669:	8b 1b                	mov    (%ebx),%ebx
46c66b:	81 c3 4c 01 00 00    	add    $0x14c,%ebx
46c671:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
46c674:	8b 5d e8             	mov    -0x18(%ebp),%ebx
46c677:	db 03                	fildl  (%ebx)
46c679:	dd 5d dc             	fstpl  -0x24(%ebp)
46c67c:	dd 45 dc             	fldl   -0x24(%ebp)
46c67f:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
46c682:	db 03                	fildl  (%ebx)
46c684:	dd 5d d4             	fstpl  -0x2c(%ebp)
46c687:	dc 65 d4             	fsubl  -0x2c(%ebp)
46c68a:	dd 5d cc             	fstpl  -0x34(%ebp)
46c68d:	dd 45 cc             	fldl   -0x34(%ebp)
46c690:	e8 5a 4b f9 ff       	call   0x4011ef
46c695:	8b 5d ec             	mov    -0x14(%ebp),%ebx
46c698:	89 03                	mov    %eax,(%ebx)
46c69a:	e9 00 00 00 00       	jmp    0x46c69f
46c69f:	8b 5d 08             	mov    0x8(%ebp),%ebx
46c6a2:	8b 1b                	mov    (%ebx),%ebx
46c6a4:	81 c3 78 01 00 00    	add    $0x178,%ebx
46c6aa:	89 5d ec             	mov    %ebx,-0x14(%ebp)
46c6ad:	8b 5d 08             	mov    0x8(%ebp),%ebx
46c6b0:	8b 1b                	mov    (%ebx),%ebx
46c6b2:	81 c3 5c 01 00 00    	add    $0x15c,%ebx
46c6b8:	89 5d e8             	mov    %ebx,-0x18(%ebp)
46c6bb:	6a 01                	push   $0x1
46c6bd:	68 00 00 00 00       	push   $0x0
46c6c2:	6a 01                	push   $0x1
46c6c4:	8b 5d e8             	mov    -0x18(%ebp),%ebx
46c6c7:	ff 33                	push   (%ebx)
46c6c9:	ff 75 ec             	push   -0x14(%ebp)
46c6cc:	8b 04 24             	mov    (%esp),%eax
46c6cf:	8b 00                	mov    (%eax),%eax
46c6d1:	8b 00                	mov    (%eax),%eax
46c6d3:	ff 90 9c 01 00 00    	call   *0x19c(%eax)
46c6d9:	8b 5d 08             	mov    0x8(%ebp),%ebx
46c6dc:	8b 1b                	mov    (%ebx),%ebx
46c6de:	81 c3 78 01 00 00    	add    $0x178,%ebx
46c6e4:	89 5d ec             	mov    %ebx,-0x14(%ebp)
46c6e7:	8b 5d 08             	mov    0x8(%ebp),%ebx
46c6ea:	8b 1b                	mov    (%ebx),%ebx
46c6ec:	81 c3 78 01 00 00    	add    $0x178,%ebx
46c6f2:	89 5d e8             	mov    %ebx,-0x18(%ebp)
46c6f5:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
46c6fc:	6a 00                	push   $0x0
46c6fe:	ff 75 e4             	push   -0x1c(%ebp)
46c701:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
46c708:	6a 00                	push   $0x0
46c70a:	ff 75 e0             	push   -0x20(%ebp)
46c70d:	ff 75 e8             	push   -0x18(%ebp)
46c710:	8b 04 24             	mov    (%esp),%eax
46c713:	8b 00                	mov    (%eax),%eax
46c715:	8b 00                	mov    (%eax),%eax
46c717:	ff 90 94 01 00 00    	call   *0x194(%eax)
46c71d:	89 45 dc             	mov    %eax,-0x24(%ebp)
46c720:	8b 5d 08             	mov    0x8(%ebp),%ebx
46c723:	8b 1b                	mov    (%ebx),%ebx
46c725:	81 c3 4c 01 00 00    	add    $0x14c,%ebx
46c72b:	89 5d d8             	mov    %ebx,-0x28(%ebp)
46c72e:	db 45 dc             	fildl  -0x24(%ebp)
46c731:	dd 5d d0             	fstpl  -0x30(%ebp)
46c734:	dd 45 d0             	fldl   -0x30(%ebp)
46c737:	8b 5d d8             	mov    -0x28(%ebp),%ebx
46c73a:	db 03                	fildl  (%ebx)
46c73c:	dd 5d c8             	fstpl  -0x38(%ebp)
46c73f:	dc 65 c8             	fsubl  -0x38(%ebp)
46c742:	dd 5d c0             	fstpl  -0x40(%ebp)
46c745:	6a 01                	push   $0x1
46c747:	68 01 00 00 00       	push   $0x1
46c74c:	6a 01                	push   $0x1
46c74e:	dd 45 c0             	fldl   -0x40(%ebp)
46c751:	e8 99 4a f9 ff       	call   0x4011ef
46c756:	50                   	push   %eax
46c757:	ff 75 ec             	push   -0x14(%ebp)
46c75a:	8b 04 24             	mov    (%esp),%eax
46c75d:	8b 00                	mov    (%eax),%eax
46c75f:	8b 00                	mov    (%eax),%eax
46c761:	ff 90 94 01 00 00    	call   *0x194(%eax)
46c767:	8b 5d 08             	mov    0x8(%ebp),%ebx
46c76a:	8b 1b                	mov    (%ebx),%ebx
46c76c:	81 c3 34 01 00 00    	add    $0x134,%ebx
46c772:	89 5d ec             	mov    %ebx,-0x14(%ebp)
46c775:	8b 5d ec             	mov    -0x14(%ebp),%ebx
46c778:	8b 03                	mov    (%ebx),%eax
46c77a:	39 45 0c             	cmp    %eax,0xc(%ebp)
46c77d:	0f 8d 18 00 00 00    	jge    0x46c79b
46c783:	8b 5d 08             	mov    0x8(%ebp),%ebx
46c786:	8b 1b                	mov    (%ebx),%ebx
46c788:	81 c3 34 01 00 00    	add    $0x134,%ebx
46c78e:	89 5d ec             	mov    %ebx,-0x14(%ebp)
46c791:	8b 5d ec             	mov    -0x14(%ebp),%ebx
46c794:	ff 0b                	decl   (%ebx)
46c796:	e9 ae 02 00 00       	jmp    0x46ca49
46c79b:	8b 5d 08             	mov    0x8(%ebp),%ebx
46c79e:	8b 1b                	mov    (%ebx),%ebx
46c7a0:	81 c3 34 01 00 00    	add    $0x134,%ebx
46c7a6:	89 5d e8             	mov    %ebx,-0x18(%ebp)
46c7a9:	8b 5d 08             	mov    0x8(%ebp),%ebx