46d219:	53                   	push   %ebx
46d21a:	ff 15 2c 81 4a 00    	call   *0x4a812c
46d220:	ff 56 0c             	call   *0xc(%esi)
46d223:	8b f0                	mov    %eax,%esi
46d225:	85 f6                	test   %esi,%esi
46d227:	0f 88 ab 00 00 00    	js     0x46d2d8
46d22d:	57                   	push   %edi
46d22e:	6a 0a                	push   $0xa
46d230:	59                   	pop    %ecx
46d231:	33 c0                	xor    %eax,%eax
46d233:	8d 7d c4             	lea    -0x3c(%ebp),%edi
46d236:	f3 ab                	rep stos %eax,%es:(%edi)
46d238:	8b 45 bc             	mov    -0x44(%ebp),%eax
46d23b:	33 c9                	xor    %ecx,%ecx
46d23d:	89 45 c4             	mov    %eax,-0x3c(%ebp)
46d240:	8b 45 b8             	mov    -0x48(%ebp),%eax
46d243:	f7 d8                	neg    %eax
46d245:	c7 45 c0 28 00 00 00 	movl   $0x28,-0x40(%ebp)
46d24c:	89 45 c8             	mov    %eax,-0x38(%ebp)
46d24f:	33 c0                	xor    %eax,%eax
46d251:	6a 20                	push   $0x20
46d253:	40                   	inc    %eax
46d254:	89 4d d0             	mov    %ecx,-0x30(%ebp)
46d257:	66 89 45 cc          	mov    %ax,-0x34(%ebp)
46d25b:	58                   	pop    %eax
46d25c:	51                   	push   %ecx
46d25d:	51                   	push   %ecx
46d25e:	66 89 45 ce          	mov    %ax,-0x32(%ebp)
46d262:	8d 45 b4             	lea    -0x4c(%ebp),%eax
46d265:	50                   	push   %eax
46d266:	51                   	push   %ecx
46d267:	8d 45 c0             	lea    -0x40(%ebp),%eax
46d26a:	50                   	push   %eax
46d26b:	51                   	push   %ecx
46d26c:	ff 15 f0 70 4a 00    	call   *0x4a70f0
46d272:	8b f8                	mov    %eax,%edi
46d274:	8b f7                	mov    %edi,%esi
46d276:	f7 de                	neg    %esi
46d278:	1b f6                	sbb    %esi,%esi
46d27a:	81 e6 f2 ff f8 7f    	and    $0x7ff8fff2,%esi
46d280:	81 c6 0e 00 07 80    	add    $0x8007000e,%esi
46d286:	85 ff                	test   %edi,%edi
46d288:	74 4d                	je     0x46d2d7
46d28a:	8b 55 bc             	mov    -0x44(%ebp),%edx
46d28d:	8b c2                	mov    %edx,%eax
46d28f:	8b 4d b8             	mov    -0x48(%ebp),%ecx
46d292:	ff 75 b4             	push   -0x4c(%ebp)
46d295:	8b 33                	mov    (%ebx),%esi
46d297:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
46d29b:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
46d29f:	0f af c1             	imul   %ecx,%eax
46d2a2:	89 4d f8             	mov    %ecx,-0x8(%ebp)
46d2a5:	8b 4e 1c             	mov    0x1c(%esi),%ecx
46d2a8:	89 55 f4             	mov    %edx,-0xc(%ebp)
46d2ab:	c1 e0 02             	shl    $0x2,%eax
46d2ae:	50                   	push   %eax
46d2af:	8b c2                	mov    %edx,%eax
46d2b1:	c1 e0 02             	shl    $0x2,%eax
46d2b4:	50                   	push   %eax
46d2b5:	8d 45 ec             	lea    -0x14(%ebp),%eax
46d2b8:	50                   	push   %eax
46d2b9:	53                   	push   %ebx
46d2ba:	ff 15 2c 81 4a 00    	call   *0x4a812c
46d2c0:	ff 56 1c             	call   *0x1c(%esi)
46d2c3:	8b f0                	mov    %eax,%esi
46d2c5:	85 f6                	test   %esi,%esi
46d2c7:	78 07                	js     0x46d2d0
46d2c9:	8b 45 b0             	mov    -0x50(%ebp),%eax
46d2cc:	89 38                	mov    %edi,(%eax)
46d2ce:	eb 07                	jmp    0x46d2d7
46d2d0:	57                   	push   %edi
46d2d1:	ff 15 60 71 4a 00    	call   *0x4a7160
46d2d7:	5f                   	pop    %edi
46d2d8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46d2db:	8b c6                	mov    %esi,%eax
46d2dd:	5e                   	pop    %esi
46d2de:	33 cd                	xor    %ebp,%ecx
46d2e0:	5b                   	pop    %ebx
46d2e1:	e8 1a 2c 02 00       	call   0x48ff00
46d2e6:	c9                   	leave
46d2e7:	c3                   	ret
46d2e8:	6a 0c                	push   $0xc
46d2ea:	b8 c5 56 49 00       	mov    $0x4956c5,%eax
46d2ef:	e8 df 31 02 00       	call   0x4904d3
46d2f4:	89 55 e8             	mov    %edx,-0x18(%ebp)
46d2f7:	8b 5d 08             	mov    0x8(%ebp),%ebx
46d2fa:	33 ff                	xor    %edi,%edi
46d2fc:	51                   	push   %ecx
46d2fd:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46d300:	89 3b                	mov    %edi,(%ebx)
46d302:	e8 09 10 00 00       	call   0x46e310
46d307:	89 7d fc             	mov    %edi,-0x4(%ebp)
46d30a:	39 7d f0             	cmp    %edi,-0x10(%ebp)
46d30d:	75 23                	jne    0x46d332
46d30f:	8d 45 f0             	lea    -0x10(%ebp),%eax
46d312:	50                   	push   %eax
46d313:	e8 54 f1 fb ff       	call   0x42c46c
46d318:	50                   	push   %eax
46d319:	68 b0 0b 41 00       	push   $0x410bb0
46d31e:	6a 01                	push   $0x1
46d320:	57                   	push   %edi
46d321:	68 dc fb 40 00       	push   $0x40fbdc
46d326:	ff 15 98 7e 4a 00    	call   *0x4a7e98
46d32c:	8b f0                	mov    %eax,%esi
46d32e:	85 f6                	test   %esi,%esi
46d330:	78 43                	js     0x46d375
46d332:	89 7d ec             	mov    %edi,-0x14(%ebp)
46d335:	8d 4d ec             	lea    -0x14(%ebp),%ecx
46d338:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
46d33c:	e8 ab 0f 00 00       	call   0x46e2ec
46d341:	8b 55 e8             	mov    -0x18(%ebp),%edx
46d344:	be 2c fb 40 00       	mov    $0x40fb2c,%esi
46d349:	8b 4d f0             	mov    -0x10(%ebp),%ecx
46d34c:	50                   	push   %eax
46d34d:	83 ec 14             	sub    $0x14,%esp
46d350:	8b fc                	mov    %esp,%edi
46d352:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46d353:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46d354:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46d355:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46d356:	e8 e5 fd ff ff       	call   0x46d140
46d35b:	8b f0                	mov    %eax,%esi
46d35d:	85 f6                	test   %esi,%esi
46d35f:	78 0c                	js     0x46d36d
46d361:	8b 4d ec             	mov    -0x14(%ebp),%ecx
46d364:	8b d3                	mov    %ebx,%edx
46d366:	e8 83 fe ff ff       	call   0x46d1ee
46d36b:	8b f0                	mov    %eax,%esi
46d36d:	8d 4d ec             	lea    -0x14(%ebp),%ecx
46d370:	e8 d6 be fa ff       	call   0x41924b
46d375:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46d378:	e8 ce be fa ff       	call   0x41924b
46d37d:	8b c6                	mov    %esi,%eax
46d37f:	e8 1d 31 02 00       	call   0x4904a1
46d384:	c2 04 00             	ret    $0x4
46d387:	6a 04                	push   $0x4
46d389:	b8 87 31 49 00       	mov    $0x493187,%eax
46d38e:	e8 40 31 02 00       	call   0x4904d3
46d393:	8b da                	mov    %edx,%ebx
46d395:	8b f1                	mov    %ecx,%esi
46d397:	33 c9                	xor    %ecx,%ecx
46d399:	89 4d f0             	mov    %ecx,-0x10(%ebp)
46d39c:	8d 45 f0             	lea    -0x10(%ebp),%eax
46d39f:	89 4d fc             	mov    %ecx,-0x4(%ebp)
46d3a2:	50                   	push   %eax
46d3a3:	6a 01                	push   $0x1
46d3a5:	51                   	push   %ecx
46d3a6:	ff 15 84 7e 4a 00    	call   *0x4a7e84
46d3ac:	8b f8                	mov    %eax,%edi
46d3ae:	85 ff                	test   %edi,%edi
46d3b0:	78 2d                	js     0x46d3df
46d3b2:	8b 06                	mov    (%esi),%eax
46d3b4:	ff 75 f0             	push   -0x10(%ebp)
46d3b7:	56                   	push   %esi
46d3b8:	8b 70 14             	mov    0x14(%eax),%esi
46d3bb:	8b ce                	mov    %esi,%ecx
46d3bd:	ff 15 2c 81 4a 00    	call   *0x4a812c
46d3c3:	ff d6                	call   *%esi
46d3c5:	85 c0                	test   %eax,%eax
46d3c7:	79 0a                	jns    0x46d3d3
46d3c9:	33 d2                	xor    %edx,%edx
46d3cb:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46d3ce:	e8 cc c1 fb ff       	call   0x42959f
46d3d3:	8b 55 f0             	mov    -0x10(%ebp),%edx
46d3d6:	8b cb                	mov    %ebx,%ecx
46d3d8:	e8 28 00 00 00       	call   0x46d405
46d3dd:	8b f8                	mov    %eax,%edi
46d3df:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
46d3e6:	8b 45 f0             	mov    -0x10(%ebp),%eax
46d3e9:	85 c0                	test   %eax,%eax
46d3eb:	74 10                	je     0x46d3fd
46d3ed:	8b 08                	mov    (%eax),%ecx
46d3ef:	50                   	push   %eax
46d3f0:	8b 71 08             	mov    0x8(%ecx),%esi
46d3f3:	8b ce                	mov    %esi,%ecx
46d3f5:	ff 15 2c 81 4a 00    	call   *0x4a812c
46d3fb:	ff d6                	call   *%esi
46d3fd:	8b c7                	mov    %edi,%eax
46d3ff:	e8 9d 30 02 00       	call   0x4904a1
46d404:	c3                   	ret
46d405:	6a 28                	push   $0x28
46d407:	b8 f8 56 49 00       	mov    $0x4956f8,%eax
46d40c:	e8 c2 30 02 00       	call   0x4904d3
46d411:	8b fa                	mov    %edx,%edi
46d413:	89 7d f0             	mov    %edi,-0x10(%ebp)
46d416:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
46d419:	33 c0                	xor    %eax,%eax
46d41b:	8b f0                	mov    %eax,%esi
46d41d:	89 75 e8             	mov    %esi,-0x18(%ebp)
46d420:	68 80 fa 40 00       	push   $0x40fa80
46d425:	89 45 fc             	mov    %eax,-0x4(%ebp)
46d428:	ff 15 30 7c 4a 00    	call   *0x4a7c30
46d42e:	89 45 ec             	mov    %eax,-0x14(%ebp)
46d431:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
46d435:	bb 05 40 00 80       	mov    $0x80004005,%ebx
46d43a:	85 ff                	test   %edi,%edi
46d43c:	0f 84 b5 00 00 00    	je     0x46d4f7
46d442:	83 ec 10             	sub    $0x10,%esp
46d445:	8d 4d e8             	lea    -0x18(%ebp),%ecx
46d448:	8b fc                	mov    %esp,%edi
46d44a:	be 84 33 41 00       	mov    $0x413384,%esi
46d44f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46d450:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46d451:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46d452:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46d453:	e8 27 03 00 00       	call   0x46d77f
46d458:	85 c0                	test   %eax,%eax
46d45a:	0f 88 94 00 00 00    	js     0x46d4f4
46d460:	8b 7d f0             	mov    -0x10(%ebp),%edi
46d463:	8d 45 dc             	lea    -0x24(%ebp),%eax
46d466:	50                   	push   %eax
46d467:	33 c0                	xor    %eax,%eax
46d469:	50                   	push   %eax
46d46a:	8b 37                	mov    (%edi),%esi
46d46c:	50                   	push   %eax
46d46d:	50                   	push   %eax
46d46e:	57                   	push   %edi
46d46f:	8b 4e 14             	mov    0x14(%esi),%ecx
46d472:	ff 15 2c 81 4a 00    	call   *0x4a812c
46d478:	ff 56 14             	call   *0x14(%esi)
46d47b:	6a 0d                	push   $0xd
46d47d:	58                   	pop    %eax
46d47e:	66 89 45 cc          	mov    %ax,-0x34(%ebp)
46d482:	89 7d d4             	mov    %edi,-0x2c(%ebp)
46d485:	8b 07                	mov    (%edi),%eax
46d487:	57                   	push   %edi
46d488:	8b 70 04             	mov    0x4(%eax),%esi
46d48b:	8b ce                	mov    %esi,%ecx
46d48d:	ff 15 2c 81 4a 00    	call   *0x4a812c
46d493:	ff d6                	call   *%esi
46d495:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46d498:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
46d49c:	8b 45 e8             	mov    -0x18(%ebp),%eax
46d49f:	8d 75 cc             	lea    -0x34(%ebp),%esi
46d4a2:	51                   	push   %ecx
46d4a3:	83 ec 10             	sub    $0x10,%esp
46d4a6:	8b fc                	mov    %esp,%edi
46d4a8:	8b 00                	mov    (%eax),%eax
46d4aa:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46d4ab:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46d4ac:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46d4ad:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46d4ae:	8b b8 e8 00 00 00    	mov    0xe8(%eax),%edi
46d4b4:	8b cf                	mov    %edi,%ecx
46d4b6:	8b 75 e8             	mov    -0x18(%ebp),%esi
46d4b9:	56                   	push   %esi
46d4ba:	ff 15 2c 81 4a 00    	call   *0x4a812c
46d4c0:	ff d7                	call   *%edi
46d4c2:	85 c0                	test   %eax,%eax
46d4c4:	75 24                	jne    0x46d4ea
46d4c6:	ff 75 ec             	push   -0x14(%ebp)
46d4c9:	ff 15 3c 7c 4a 00    	call   *0x4a7c3c
46d4cf:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
46d4d3:	8d 4d ec             	lea    -0x14(%ebp),%ecx
46d4d6:	8b 06                	mov    (%esi),%eax
46d4d8:	51                   	push   %ecx
46d4d9:	56                   	push   %esi
46d4da:	8b b8 88 00 00 00    	mov    0x88(%eax),%edi
46d4e0:	8b cf                	mov    %edi,%ecx
46d4e2:	ff 15 2c 81 4a 00    	call   *0x4a812c
46d4e8:	ff d7                	call   *%edi
46d4ea:	8d 4d cc             	lea    -0x34(%ebp),%ecx
46d4ed:	e8 d3 0e 00 00       	call   0x46e3c5
46d4f2:	eb 03                	jmp    0x46d4f7
46d4f4:	8b 75 e8             	mov    -0x18(%ebp),%esi
46d4f7:	8d 45 f0             	lea    -0x10(%ebp),%eax
46d4fa:	33 c9                	xor    %ecx,%ecx
46d4fc:	50                   	push   %eax
46d4fd:	8d 45 e8             	lea    -0x18(%ebp),%eax
46d500:	89 4d e8             	mov    %ecx,-0x18(%ebp)
46d503:	50                   	push   %eax
46d504:	51                   	push   %ecx
46d505:	68 3f 00 0f 00       	push   $0xf003f
46d50a:	51                   	push   %ecx
46d50b:	51                   	push   %ecx
46d50c:	51                   	push   %ecx
46d50d:	68 28 33 41 00       	push   $0x413328
46d512:	ff 75 e4             	push   -0x1c(%ebp)
46d515:	ff 15 00 70 4a 00    	call   *0x4a7000
46d51b:	85 c0                	test   %eax,%eax
46d51d:	75 52                	jne    0x46d571
46d51f:	8b 4d ec             	mov    -0x14(%ebp),%ecx
46d522:	33 db                	xor    %ebx,%ebx
46d524:	8b 7d e8             	mov    -0x18(%ebp),%edi
46d527:	8d 51 02             	lea    0x2(%ecx),%edx
46d52a:	66 8b 01             	mov    (%ecx),%ax
46d52d:	83 c1 02             	add    $0x2,%ecx
46d530:	66 3b c3             	cmp    %bx,%ax
46d533:	75 f5                	jne    0x46d52a
46d535:	2b ca                	sub    %edx,%ecx
46d537:	d1 f9                	sar    $1,%ecx
46d539:	8d 04 4d 02 00 00 00 	lea    0x2(,%ecx,2),%eax
46d540:	50                   	push   %eax
46d541:	ff 75 ec             	push   -0x14(%ebp)
46d544:	6a 01                	push   $0x1
46d546:	53                   	push   %ebx
46d547:	68 38 33 41 00       	push   $0x413338
46d54c:	57                   	push   %edi
46d54d:	ff 15 0c 70 4a 00    	call   *0x4a700c
46d553:	85 ff                	test   %edi,%edi
46d555:	74 07                	je     0x46d55e
46d557:	57                   	push   %edi
46d558:	ff 15 08 70 4a 00    	call   *0x4a7008
46d55e:	8b c7                	mov    %edi,%eax
46d560:	f7 d8                	neg    %eax
46d562:	1b c0                	sbb    %eax,%eax
46d564:	f7 d0                	not    %eax
46d566:	23 c7                	and    %edi,%eax
46d568:	74 07                	je     0x46d571
46d56a:	50                   	push   %eax
46d56b:	ff 15 08 70 4a 00    	call   *0x4a7008
46d571:	ff 75 ec             	push   -0x14(%ebp)
46d574:	ff 15 3c 7c 4a 00    	call   *0x4a7c3c
46d57a:	c7 45 fc 03 00 00 00 	movl   $0x3,-0x4(%ebp)
46d581:	85 f6                	test   %esi,%esi
46d583:	74 10                	je     0x46d595
46d585:	8b 0e                	mov    (%esi),%ecx
46d587:	56                   	push   %esi
46d588:	8b 71 08             	mov    0x8(%ecx),%esi
46d58b:	8b ce                	mov    %esi,%ecx
46d58d:	ff 15 2c 81 4a 00    	call   *0x4a812c
46d593:	ff d6                	call   *%esi
46d595:	8b c3                	mov    %ebx,%eax
46d597:	e8 05 2f 02 00       	call   0x4904a1
46d59c:	c3                   	ret
46d59d:	6a 0c                	push   $0xc
46d59f:	b8 1b 57 49 00       	mov    $0x49571b,%eax
46d5a4:	e8 2a 2f 02 00       	call   0x4904d3
46d5a9:	8b c2                	mov    %edx,%eax
46d5ab:	8b d9                	mov    %ecx,%ebx
46d5ad:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
46d5b1:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
46d5b5:	8d 55 f0             	lea    -0x10(%ebp),%edx
46d5b8:	8b c8                	mov    %eax,%ecx
46d5ba:	e8 5b 00 00 00       	call   0x46d61a
46d5bf:	8b 75 f0             	mov    -0x10(%ebp),%esi
46d5c2:	8b f8                	mov    %eax,%edi
46d5c4:	85 ff                	test   %edi,%edi
46d5c6:	78 2f                	js     0x46d5f7
46d5c8:	85 f6                	test   %esi,%esi
46d5ca:	74 2b                	je     0x46d5f7
46d5cc:	8b 3e                	mov    (%esi),%edi
46d5ce:	8d 45 e8             	lea    -0x18(%ebp),%eax
46d5d1:	50                   	push   %eax
46d5d2:	33 c0                	xor    %eax,%eax
46d5d4:	50                   	push   %eax
46d5d5:	8b 4f 14             	mov    0x14(%edi),%ecx
46d5d8:	50                   	push   %eax
46d5d9:	50                   	push   %eax
46d5da:	56                   	push   %esi