46a488:	0f 84 04 00 00 00    	je     0x46a492
46a48e:	33 c0                	xor    %eax,%eax
46a490:	eb 05                	jmp    0x46a497
46a492:	b8 01 00 00 00       	mov    $0x1,%eax
46a497:	85 c0                	test   %eax,%eax
46a499:	0f 84 07 00 00 00    	je     0x46a4a6
46a49f:	c7 45 24 00 00 00 00 	movl   $0x0,0x24(%ebp)
46a4a6:	8b 5d fc             	mov    -0x4(%ebp),%ebx
46a4a9:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46a4ac:	8b 5d 14             	mov    0x14(%ebp),%ebx
46a4af:	8b 03                	mov    (%ebx),%eax
46a4b1:	85 c0                	test   %eax,%eax
46a4b3:	74 13                	je     0x46a4c8
46a4b5:	50                   	push   %eax
46a4b6:	8b 40 04             	mov    0x4(%eax),%eax
46a4b9:	83 c0 08             	add    $0x8,%eax
46a4bc:	50                   	push   %eax
46a4bd:	e8 dc 60 03 00       	call   0x4a059e
46a4c2:	59                   	pop    %ecx
46a4c3:	5e                   	pop    %esi
46a4c4:	8b f8                	mov    %eax,%edi
46a4c6:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
46a4c8:	50                   	push   %eax
46a4c9:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46a4cc:	8b 1b                	mov    (%ebx),%ebx
46a4ce:	85 db                	test   %ebx,%ebx
46a4d0:	74 09                	je     0x46a4db
46a4d2:	53                   	push   %ebx
46a4d3:	e8 cc 60 03 00       	call   0x4a05a4
46a4d8:	83 c4 04             	add    $0x4,%esp
46a4db:	58                   	pop    %eax
46a4dc:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46a4df:	89 03                	mov    %eax,(%ebx)
46a4e1:	8b 5d fc             	mov    -0x4(%ebp),%ebx
46a4e4:	83 c3 08             	add    $0x8,%ebx
46a4e7:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46a4ea:	8b 45 24             	mov    0x24(%ebp),%eax
46a4ed:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46a4f0:	89 03                	mov    %eax,(%ebx)
46a4f2:	8b 5d fc             	mov    -0x4(%ebp),%ebx
46a4f5:	83 c3 0c             	add    $0xc,%ebx
46a4f8:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46a4fb:	8b 45 1c             	mov    0x1c(%ebp),%eax
46a4fe:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46a501:	89 03                	mov    %eax,(%ebx)
46a503:	8b 5d fc             	mov    -0x4(%ebp),%ebx
46a506:	83 c3 04             	add    $0x4,%ebx
46a509:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46a50c:	8b 45 2c             	mov    0x2c(%ebp),%eax
46a50f:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46a512:	89 03                	mov    %eax,(%ebx)
46a514:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
46a518:	0f 85 d8 00 00 00    	jne    0x46a5f6
46a51e:	8b 5d 08             	mov    0x8(%ebp),%ebx
46a521:	8b 1b                	mov    (%ebx),%ebx
46a523:	81 c3 20 01 00 00    	add    $0x120,%ebx
46a529:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46a52c:	ff 75 f0             	push   -0x10(%ebp)
46a52f:	6a 04                	push   $0x4
46a531:	b8 02 00 00 00       	mov    $0x2,%eax
46a536:	e8 35 69 03 00       	call   0x4a0e70
46a53b:	83 c4 08             	add    $0x8,%esp
46a53e:	8b 45 fc             	mov    -0x4(%ebp),%eax
46a541:	89 45 ec             	mov    %eax,-0x14(%ebp)
46a544:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46a547:	8b 1b                	mov    (%ebx),%ebx
46a549:	89 5d e8             	mov    %ebx,-0x18(%ebp)
46a54c:	e8 a2 91 f9 ff       	call   0x4036f3
46a551:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
46a554:	8b 7d e8             	mov    -0x18(%ebp),%edi
46a557:	c7 07 01 00 00 00    	movl   $0x1,(%edi)
46a55d:	83 c7 04             	add    $0x4,%edi
46a560:	8b c1                	mov    %ecx,%eax
46a562:	40                   	inc    %eax
46a563:	89 07                	mov    %eax,(%edi)
46a565:	83 c7 04             	add    $0x4,%edi
46a568:	3b fb                	cmp    %ebx,%edi
46a56a:	74 04                	je     0x46a570
46a56c:	8b f3                	mov    %ebx,%esi
46a56e:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
46a570:	8b 45 e4             	mov    -0x1c(%ebp),%eax
46a573:	40                   	inc    %eax
46a574:	c1 e0 02             	shl    $0x2,%eax
46a577:	83 c0 08             	add    $0x8,%eax
46a57a:	50                   	push   %eax
46a57b:	ff 75 e8             	push   -0x18(%ebp)
46a57e:	e8 2d 60 03 00       	call   0x4a05b0
46a583:	83 c4 08             	add    $0x8,%esp
46a586:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46a589:	89 03                	mov    %eax,(%ebx)
46a58b:	8b f8                	mov    %eax,%edi
46a58d:	83 c7 08             	add    $0x8,%edi
46a590:	8b 45 e4             	mov    -0x1c(%ebp),%eax
46a593:	c1 e0 02             	shl    $0x2,%eax
46a596:	03 f8                	add    %eax,%edi
46a598:	8b 45 ec             	mov    -0x14(%ebp),%eax
46a59b:	57                   	push   %edi
46a59c:	50                   	push   %eax
46a59d:	68 18 00 00 00       	push   $0x18
46a5a2:	e8 f7 5f 03 00       	call   0x4a059e
46a5a7:	83 c4 04             	add    $0x4,%esp
46a5aa:	5e                   	pop    %esi
46a5ab:	8b f8                	mov    %eax,%edi
46a5ad:	50                   	push   %eax
46a5ae:	ad                   	lods   %ds:(%esi),%eax
46a5af:	56                   	push   %esi
46a5b0:	57                   	push   %edi
46a5b1:	85 c0                	test   %eax,%eax
46a5b3:	74 13                	je     0x46a5c8
46a5b5:	50                   	push   %eax
46a5b6:	8b 40 04             	mov    0x4(%eax),%eax
46a5b9:	83 c0 08             	add    $0x8,%eax
46a5bc:	50                   	push   %eax
46a5bd:	e8 dc 5f 03 00       	call   0x4a059e
46a5c2:	59                   	pop    %ecx
46a5c3:	5e                   	pop    %esi
46a5c4:	8b f8                	mov    %eax,%edi
46a5c6:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
46a5c8:	5f                   	pop    %edi
46a5c9:	5e                   	pop    %esi
46a5ca:	ab                   	stos   %eax,%es:(%edi)
46a5cb:	b9 05 00 00 00       	mov    $0x5,%ecx
46a5d0:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
46a5d2:	58                   	pop    %eax
46a5d3:	5f                   	pop    %edi
46a5d4:	89 07                	mov    %eax,(%edi)
46a5d6:	8b 5d 08             	mov    0x8(%ebp),%ebx
46a5d9:	8b 1b                	mov    (%ebx),%ebx
46a5db:	81 c3 20 01 00 00    	add    $0x120,%ebx
46a5e1:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46a5e4:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46a5e7:	8b 1b                	mov    (%ebx),%ebx
46a5e9:	e8 5c 3e fa ff       	call   0x40e44a
46a5ee:	89 45 0c             	mov    %eax,0xc(%ebp)
46a5f1:	e9 e4 00 00 00       	jmp    0x46a6da
46a5f6:	8b 5d 08             	mov    0x8(%ebp),%ebx
46a5f9:	8b 1b                	mov    (%ebx),%ebx
46a5fb:	81 c3 20 01 00 00    	add    $0x120,%ebx
46a601:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46a604:	ff 75 f0             	push   -0x10(%ebp)
46a607:	6a 04                	push   $0x4
46a609:	b8 02 00 00 00       	mov    $0x2,%eax
46a60e:	e8 5d 68 03 00       	call   0x4a0e70
46a613:	83 c4 08             	add    $0x8,%esp
46a616:	8b 45 fc             	mov    -0x4(%ebp),%eax
46a619:	89 45 ec             	mov    %eax,-0x14(%ebp)
46a61c:	8b 45 0c             	mov    0xc(%ebp),%eax
46a61f:	48                   	dec    %eax
46a620:	0f 8c b4 00 00 00    	jl     0x46a6da
46a626:	89 45 e8             	mov    %eax,-0x18(%ebp)
46a629:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46a62c:	8b 1b                	mov    (%ebx),%ebx
46a62e:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
46a631:	e8 bd 90 f9 ff       	call   0x4036f3
46a636:	89 4d e0             	mov    %ecx,-0x20(%ebp)
46a639:	39 4d e8             	cmp    %ecx,-0x18(%ebp)
46a63c:	0f 8f 98 00 00 00    	jg     0x46a6da
46a642:	8b 7d e4             	mov    -0x1c(%ebp),%edi
46a645:	c7 07 01 00 00 00    	movl   $0x1,(%edi)
46a64b:	83 c7 04             	add    $0x4,%edi
46a64e:	8b c1                	mov    %ecx,%eax
46a650:	40                   	inc    %eax
46a651:	89 07                	mov    %eax,(%edi)
46a653:	83 c7 04             	add    $0x4,%edi
46a656:	3b fb                	cmp    %ebx,%edi
46a658:	74 04                	je     0x46a65e
46a65a:	8b f3                	mov    %ebx,%esi
46a65c:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
46a65e:	8b 45 e0             	mov    -0x20(%ebp),%eax
46a661:	40                   	inc    %eax
46a662:	c1 e0 02             	shl    $0x2,%eax
46a665:	83 c0 08             	add    $0x8,%eax
46a668:	50                   	push   %eax
46a669:	ff 75 e4             	push   -0x1c(%ebp)
46a66c:	e8 3f 5f 03 00       	call   0x4a05b0
46a671:	83 c4 08             	add    $0x8,%esp
46a674:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46a677:	89 03                	mov    %eax,(%ebx)
46a679:	8b f0                	mov    %eax,%esi
46a67b:	83 c6 08             	add    $0x8,%esi
46a67e:	8b 4d e0             	mov    -0x20(%ebp),%ecx
46a681:	8b d9                	mov    %ecx,%ebx
46a683:	c1 e3 02             	shl    $0x2,%ebx
46a686:	03 f3                	add    %ebx,%esi
46a688:	83 ee 04             	sub    $0x4,%esi
46a68b:	2b 4d e8             	sub    -0x18(%ebp),%ecx
46a68e:	8b fe                	mov    %esi,%edi
46a690:	83 c7 04             	add    $0x4,%edi
46a693:	fd                   	std
46a694:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
46a696:	8b fe                	mov    %esi,%edi
46a698:	83 c7 04             	add    $0x4,%edi
46a69b:	fc                   	cld
46a69c:	8b 45 ec             	mov    -0x14(%ebp),%eax
46a69f:	57                   	push   %edi
46a6a0:	50                   	push   %eax
46a6a1:	68 18 00 00 00       	push   $0x18
46a6a6:	e8 f3 5e 03 00       	call   0x4a059e
46a6ab:	83 c4 04             	add    $0x4,%esp
46a6ae:	5e                   	pop    %esi
46a6af:	8b f8                	mov    %eax,%edi
46a6b1:	50                   	push   %eax
46a6b2:	ad                   	lods   %ds:(%esi),%eax
46a6b3:	56                   	push   %esi
46a6b4:	57                   	push   %edi
46a6b5:	85 c0                	test   %eax,%eax
46a6b7:	74 13                	je     0x46a6cc
46a6b9:	50                   	push   %eax
46a6ba:	8b 40 04             	mov    0x4(%eax),%eax
46a6bd:	83 c0 08             	add    $0x8,%eax
46a6c0:	50                   	push   %eax
46a6c1:	e8 d8 5e 03 00       	call   0x4a059e
46a6c6:	59                   	pop    %ecx
46a6c7:	5e                   	pop    %esi
46a6c8:	8b f8                	mov    %eax,%edi
46a6ca:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
46a6cc:	5f                   	pop    %edi
46a6cd:	5e                   	pop    %esi
46a6ce:	ab                   	stos   %eax,%es:(%edi)
46a6cf:	b9 05 00 00 00       	mov    $0x5,%ecx
46a6d4:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
46a6d6:	58                   	pop    %eax
46a6d7:	5f                   	pop    %edi
46a6d8:	89 07                	mov    %eax,(%edi)
46a6da:	8b 5d 08             	mov    0x8(%ebp),%ebx
46a6dd:	8b 1b                	mov    (%ebx),%ebx
46a6df:	81 c3 1c 01 00 00    	add    $0x11c,%ebx
46a6e5:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46a6e8:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46a6eb:	8b 1b                	mov    (%ebx),%ebx
46a6ed:	e8 58 3d fa ff       	call   0x40e44a
46a6f2:	33 c9                	xor    %ecx,%ecx
46a6f4:	50                   	push   %eax
46a6f5:	8d 45 f8             	lea    -0x8(%ebp),%eax
46a6f8:	8b d8                	mov    %eax,%ebx
46a6fa:	58                   	pop    %eax
46a6fb:	41                   	inc    %ecx
46a6fc:	51                   	push   %ecx
46a6fd:	53                   	push   %ebx
46a6fe:	89 0b                	mov    %ecx,(%ebx)
46a700:	50                   	push   %eax
46a701:	3b c8                	cmp    %eax,%ecx
46a703:	0f 8f 0c 02 00 00    	jg     0x46a915
46a709:	8b 5d 08             	mov    0x8(%ebp),%ebx
46a70c:	8b 1b                	mov    (%ebx),%ebx
46a70e:	8b 9b 1c 01 00 00    	mov    0x11c(%ebx),%ebx
46a714:	e8 da 8f f9 ff       	call   0x4036f3
46a719:	53                   	push   %ebx
46a71a:	51                   	push   %ecx
46a71b:	8b 45 f8             	mov    -0x8(%ebp),%eax
46a71e:	48                   	dec    %eax
46a71f:	79 17                	jns    0x46a738
46a721:	68 8e 02 00 00       	push   $0x28e
46a726:	68 a1 d1 03 04       	push   $0x403d1a1
46a72b:	68 04 00 00 00       	push   $0x4
46a730:	e8 75 5e 03 00       	call   0x4a05aa
46a735:	83 c4 0c             	add    $0xc,%esp
46a738:	59                   	pop    %ecx
46a739:	5b                   	pop    %ebx
46a73a:	3b c1                	cmp    %ecx,%eax
46a73c:	7c 17                	jl     0x46a755
46a73e:	68 8e 02 00 00       	push   $0x28e
46a743:	68 a1 d1 03 04       	push   $0x403d1a1
46a748:	68 01 00 00 00       	push   $0x1
46a74d:	e8 58 5e 03 00       	call   0x4a05aa
46a752:	83 c4 0c             	add    $0xc,%esp
46a755:	c1 e0 02             	shl    $0x2,%eax
46a758:	03 d8                	add    %eax,%ebx
46a75a:	8b 1b                	mov    (%ebx),%ebx
46a75c:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46a75f:	ff 75 f0             	push   -0x10(%ebp)
46a762:	6a 04                	push   $0x4
46a764:	b8 02 00 00 00       	mov    $0x2,%eax
46a769:	e8 02 67 03 00       	call   0x4a0e70
46a76e:	83 c4 08             	add    $0x8,%esp
46a771:	8b 45 f4             	mov    -0xc(%ebp),%eax
46a774:	89 45 ec             	mov    %eax,-0x14(%ebp)
46a777:	8b 45 0c             	mov    0xc(%ebp),%eax
46a77a:	48                   	dec    %eax
46a77b:	0f 8c 94 00 00 00    	jl     0x46a815
46a781:	89 45 e8             	mov    %eax,-0x18(%ebp)
46a784:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46a787:	8b 1b                	mov    (%ebx),%ebx
46a789:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
46a78c:	e8 62 8f f9 ff       	call   0x4036f3
46a791:	89 4d e0             	mov    %ecx,-0x20(%ebp)
46a794:	39 4d e8             	cmp    %ecx,-0x18(%ebp)
46a797:	0f 8f 78 00 00 00    	jg     0x46a815
46a79d:	8b 7d e4             	mov    -0x1c(%ebp),%edi
46a7a0:	c7 07 01 00 00 00    	movl   $0x1,(%edi)
46a7a6:	83 c7 04             	add    $0x4,%edi
46a7a9:	8b c1                	mov    %ecx,%eax
46a7ab:	40                   	inc    %eax
46a7ac:	89 07                	mov    %eax,(%edi)
46a7ae:	83 c7 04             	add    $0x4,%edi
46a7b1:	3b fb                	cmp    %ebx,%edi
46a7b3:	74 04                	je     0x46a7b9
46a7b5:	8b f3                	mov    %ebx,%esi
46a7b7:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
46a7b9:	8b 45 e0             	mov    -0x20(%ebp),%eax
46a7bc:	40                   	inc    %eax
46a7bd:	c1 e0 02             	shl    $0x2,%eax
46a7c0:	83 c0 08             	add    $0x8,%eax
46a7c3:	50                   	push   %eax
46a7c4:	ff 75 e4             	push   -0x1c(%ebp)
46a7c7:	e8 e4 5d 03 00       	call   0x4a05b0
46a7cc:	83 c4 08             	add    $0x8,%esp
46a7cf:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46a7d2:	89 03                	mov    %eax,(%ebx)
46a7d4:	8b f0                	mov    %eax,%esi
46a7d6:	83 c6 08             	add    $0x8,%esi
46a7d9:	8b 4d e0             	mov    -0x20(%ebp),%ecx
46a7dc:	8b d9                	mov    %ecx,%ebx
46a7de:	c1 e3 02             	shl    $0x2,%ebx
46a7e1:	03 f3                	add    %ebx,%esi
46a7e3:	83 ee 04             	sub    $0x4,%esi
46a7e6:	2b 4d e8             	sub    -0x18(%ebp),%ecx
46a7e9:	8b fe                	mov    %esi,%edi
46a7eb:	83 c7 04             	add    $0x4,%edi
46a7ee:	fd                   	std
46a7ef:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
46a7f1:	8b fe                	mov    %esi,%edi
46a7f3:	83 c7 04             	add    $0x4,%edi
46a7f6:	fc                   	cld
46a7f7:	8b 45 ec             	mov    -0x14(%ebp),%eax
46a7fa:	57                   	push   %edi
46a7fb:	85 c0                	test   %eax,%eax
46a7fd:	74 13                	je     0x46a812
46a7ff:	50                   	push   %eax
46a800:	8b 40 04             	mov    0x4(%eax),%eax
46a803:	83 c0 08             	add    $0x8,%eax
46a806:	50                   	push   %eax
46a807:	e8 92 5d 03 00       	call   0x4a059e
46a80c:	59                   	pop    %ecx
46a80d:	5e                   	pop    %esi
46a80e:	8b f8                	mov    %eax,%edi
46a810:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
46a812:	5f                   	pop    %edi
46a813:	89 07                	mov    %eax,(%edi)
46a815:	8b 5d 08             	mov    0x8(%ebp),%ebx
46a818:	8b 1b                	mov    (%ebx),%ebx
46a81a:	8b 9b 1c 01 00 00    	mov    0x11c(%ebx),%ebx
46a820:	e8 ce 8e f9 ff       	call   0x4036f3
46a825:	53                   	push   %ebx
46a826:	51                   	push   %ecx
46a827:	8b 45 f8             	mov    -0x8(%ebp),%eax
46a82a:	48                   	dec    %eax
46a82b:	79 17                	jns    0x46a844
46a82d:	68 c6 02 00 00       	push   $0x2c6
46a832:	68 a1 d1 03 04       	push   $0x403d1a1