48530a:	e8 11 47 f8 ff       	call   0x409a20
48530f:	83 27 00             	andl   $0x0,(%edi)
485312:	33 db                	xor    %ebx,%ebx
485314:	43                   	inc    %ebx
485315:	8b ce                	mov    %esi,%ecx
485317:	53                   	push   %ebx
485318:	89 5f 0c             	mov    %ebx,0xc(%edi)
48531b:	e8 1d 66 f8 ff       	call   0x40b93d
485320:	85 c0                	test   %eax,%eax
485322:	7f 10                	jg     0x485334
485324:	6a 00                	push   $0x0
485326:	0f 89 95 00 00 00    	jns    0x4853c1
48532c:	f7 d8                	neg    %eax
48532e:	50                   	push   %eax
48532f:	e9 8e 00 00 00       	jmp    0x4853c2
485334:	8b 86 f0 01 00 00    	mov    0x1f0(%esi),%eax
48533a:	8d 4c 24 20          	lea    0x20(%esp),%ecx
48533e:	51                   	push   %ecx
48533f:	ff 30                	push   (%eax)
485341:	ff 15 34 f6 48 00    	call   *0x48f634
485347:	85 c0                	test   %eax,%eax
485349:	74 74                	je     0x4853bf
48534b:	8b cf                	mov    %edi,%ecx
48534d:	e8 dc 40 f8 ff       	call   0x40942e
485352:	6a 02                	push   $0x2
485354:	8b f0                	mov    %eax,%esi
485356:	53                   	push   %ebx
485357:	56                   	push   %esi
485358:	e8 53 3e f8 ff       	call   0x4091b0
48535d:	8b 4c 24 34          	mov    0x34(%esp),%ecx
485361:	8d 44 24 1c          	lea    0x1c(%esp),%eax
485365:	2b 4c 24 2c          	sub    0x2c(%esp),%ecx
485369:	83 c4 0c             	add    $0xc,%esp
48536c:	83 64 24 18 00       	andl   $0x0,0x18(%esp)
485371:	89 4c 24 10          	mov    %ecx,0x10(%esp)
485375:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
485379:	6a 00                	push   $0x0
48537b:	53                   	push   %ebx
48537c:	50                   	push   %eax
48537d:	56                   	push   %esi
48537e:	e8 bd 3c f8 ff       	call   0x409040
485383:	83 c4 10             	add    $0x10,%esp
485386:	8d 4c 24 10          	lea    0x10(%esp),%ecx
48538a:	e8 91 46 f8 ff       	call   0x409a20
48538f:	8b 44 24 2c          	mov    0x2c(%esp),%eax
485393:	2b 44 24 24          	sub    0x24(%esp),%eax
485397:	83 64 24 18 00       	andl   $0x0,0x18(%esp)
48539c:	53                   	push   %ebx
48539d:	89 44 24 14          	mov    %eax,0x14(%esp)
4853a1:	8d 44 24 14          	lea    0x14(%esp),%eax
4853a5:	53                   	push   %ebx
4853a6:	50                   	push   %eax
4853a7:	56                   	push   %esi
4853a8:	89 5c 24 2c          	mov    %ebx,0x2c(%esp)
4853ac:	e8 8f 3c f8 ff       	call   0x409040
4853b1:	83 c4 10             	add    $0x10,%esp
4853b4:	8d 4c 24 10          	lea    0x10(%esp),%ecx
4853b8:	e8 63 46 f8 ff       	call   0x409a20
4853bd:	eb 0f                	jmp    0x4853ce
4853bf:	6a 00                	push   $0x0
4853c1:	53                   	push   %ebx
4853c2:	8b 06                	mov    (%esi),%eax
4853c4:	8b 48 04             	mov    0x4(%eax),%ecx
4853c7:	03 ce                	add    %esi,%ecx
4853c9:	e8 d5 16 fd ff       	call   0x456aa3
4853ce:	5f                   	pop    %edi
4853cf:	5e                   	pop    %esi
4853d0:	33 c0                	xor    %eax,%eax
4853d2:	5b                   	pop    %ebx
4853d3:	8b e5                	mov    %ebp,%esp
4853d5:	5d                   	pop    %ebp
4853d6:	c2 08 00             	ret    $0x8
4853d9:	55                   	push   %ebp
4853da:	8b ec                	mov    %esp,%ebp
4853dc:	56                   	push   %esi
4853dd:	ff 75 08             	push   0x8(%ebp)
4853e0:	8b f1                	mov    %ecx,%esi
4853e2:	e8 c6 65 f8 ff       	call   0x40b9ad
4853e7:	6a 01                	push   $0x1
4853e9:	8b ce                	mov    %esi,%ecx
4853eb:	e8 4d 65 f8 ff       	call   0x40b93d
4853f0:	85 c0                	test   %eax,%eax
4853f2:	7f 26                	jg     0x48541a
4853f4:	6a 00                	push   $0x0
4853f6:	79 05                	jns    0x4853fd
4853f8:	f7 d8                	neg    %eax
4853fa:	50                   	push   %eax
4853fb:	eb 02                	jmp    0x4853ff
4853fd:	6a 01                	push   $0x1
4853ff:	8b 06                	mov    (%esi),%eax
485401:	8b 48 04             	mov    0x4(%eax),%ecx
485404:	03 ce                	add    %esi,%ecx
485406:	e8 98 16 fd ff       	call   0x456aa3
48540b:	8b 75 0c             	mov    0xc(%ebp),%esi
48540e:	8b ce                	mov    %esi,%ecx
485410:	e8 0b 46 f8 ff       	call   0x409a20
485415:	83 26 00             	andl   $0x0,(%esi)
485418:	eb 16                	jmp    0x485430
48541a:	8b 86 f0 01 00 00    	mov    0x1f0(%esi),%eax
485420:	8b 75 0c             	mov    0xc(%ebp),%esi
485423:	8b ce                	mov    %esi,%ecx
485425:	57                   	push   %edi
485426:	8b 38                	mov    (%eax),%edi
485428:	e8 f3 45 f8 ff       	call   0x409a20
48542d:	89 3e                	mov    %edi,(%esi)
48542f:	5f                   	pop    %edi
485430:	c7 46 0c 07 00 00 00 	movl   $0x7,0xc(%esi)
485437:	33 c0                	xor    %eax,%eax
485439:	5e                   	pop    %esi
48543a:	5d                   	pop    %ebp
48543b:	c2 08 00             	ret    $0x8
48543e:	55                   	push   %ebp
48543f:	8b ec                	mov    %esp,%ebp
485441:	83 e4 f8             	and    $0xfffffff8,%esp
485444:	83 ec 24             	sub    $0x24,%esp
485447:	53                   	push   %ebx
485448:	56                   	push   %esi
485449:	57                   	push   %edi
48544a:	ff 75 08             	push   0x8(%ebp)
48544d:	8b f1                	mov    %ecx,%esi
48544f:	e8 59 65 f8 ff       	call   0x40b9ad
485454:	33 db                	xor    %ebx,%ebx
485456:	8b ce                	mov    %esi,%ecx
485458:	43                   	inc    %ebx
485459:	53                   	push   %ebx
48545a:	e8 de 64 f8 ff       	call   0x40b93d
48545f:	85 c0                	test   %eax,%eax
485461:	7f 2e                	jg     0x485491
485463:	79 08                	jns    0x48546d
485465:	33 ff                	xor    %edi,%edi
485467:	f7 d8                	neg    %eax
485469:	57                   	push   %edi
48546a:	50                   	push   %eax
48546b:	eb 04                	jmp    0x485471
48546d:	33 ff                	xor    %edi,%edi
48546f:	57                   	push   %edi
485470:	53                   	push   %ebx
485471:	8b 06                	mov    (%esi),%eax
485473:	8b 48 04             	mov    0x4(%eax),%ecx
485476:	03 ce                	add    %esi,%ecx
485478:	e8 26 16 fd ff       	call   0x456aa3
48547d:	8b 75 0c             	mov    0xc(%ebp),%esi
485480:	8b ce                	mov    %esi,%ecx
485482:	e8 99 45 f8 ff       	call   0x409a20
485487:	89 5e 0c             	mov    %ebx,0xc(%esi)
48548a:	89 3e                	mov    %edi,(%esi)
48548c:	e9 d7 00 00 00       	jmp    0x485568
485491:	8b 8e f0 01 00 00    	mov    0x1f0(%esi),%ecx
485497:	8d 44 24 10          	lea    0x10(%esp),%eax
48549b:	33 ff                	xor    %edi,%edi
48549d:	57                   	push   %edi
48549e:	50                   	push   %eax
48549f:	e8 c6 5a fd ff       	call   0x45af6a
4854a4:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4854a7:	e8 82 3f f8 ff       	call   0x40942e
4854ac:	6a 04                	push   $0x4
4854ae:	8b f0                	mov    %eax,%esi
4854b0:	53                   	push   %ebx
4854b1:	56                   	push   %esi
4854b2:	e8 f9 3c f8 ff       	call   0x4091b0
4854b7:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
4854bb:	8d 44 24 2c          	lea    0x2c(%esp),%eax
4854bf:	83 c4 0c             	add    $0xc,%esp
4854c2:	89 4c 24 20          	mov    %ecx,0x20(%esp)
4854c6:	89 7c 24 28          	mov    %edi,0x28(%esp)
4854ca:	89 5c 24 2c          	mov    %ebx,0x2c(%esp)
4854ce:	57                   	push   %edi
4854cf:	53                   	push   %ebx
4854d0:	50                   	push   %eax
4854d1:	56                   	push   %esi
4854d2:	e8 69 3b f8 ff       	call   0x409040
4854d7:	83 c4 10             	add    $0x10,%esp
4854da:	8d 4c 24 20          	lea    0x20(%esp),%ecx
4854de:	e8 3d 45 f8 ff       	call   0x409a20
4854e3:	8b 44 24 14          	mov    0x14(%esp),%eax
4854e7:	53                   	push   %ebx
4854e8:	89 44 24 24          	mov    %eax,0x24(%esp)
4854ec:	8d 44 24 24          	lea    0x24(%esp),%eax
4854f0:	53                   	push   %ebx
4854f1:	50                   	push   %eax
4854f2:	56                   	push   %esi
4854f3:	89 7c 24 38          	mov    %edi,0x38(%esp)
4854f7:	89 5c 24 3c          	mov    %ebx,0x3c(%esp)
4854fb:	e8 40 3b f8 ff       	call   0x409040
485500:	83 c4 10             	add    $0x10,%esp
485503:	8d 4c 24 20          	lea    0x20(%esp),%ecx
485507:	e8 14 45 f8 ff       	call   0x409a20
48550c:	8b 44 24 18          	mov    0x18(%esp),%eax
485510:	2b 44 24 10          	sub    0x10(%esp),%eax
485514:	6a 02                	push   $0x2
485516:	89 44 24 24          	mov    %eax,0x24(%esp)
48551a:	8d 44 24 24          	lea    0x24(%esp),%eax
48551e:	53                   	push   %ebx
48551f:	50                   	push   %eax
485520:	56                   	push   %esi
485521:	89 7c 24 38          	mov    %edi,0x38(%esp)
485525:	89 5c 24 3c          	mov    %ebx,0x3c(%esp)
485529:	e8 12 3b f8 ff       	call   0x409040
48552e:	83 c4 10             	add    $0x10,%esp
485531:	8d 4c 24 20          	lea    0x20(%esp),%ecx
485535:	e8 e6 44 f8 ff       	call   0x409a20
48553a:	8b 44 24 1c          	mov    0x1c(%esp),%eax
48553e:	2b 44 24 14          	sub    0x14(%esp),%eax
485542:	6a 03                	push   $0x3
485544:	89 44 24 24          	mov    %eax,0x24(%esp)
485548:	8d 44 24 24          	lea    0x24(%esp),%eax
48554c:	53                   	push   %ebx
48554d:	50                   	push   %eax
48554e:	56                   	push   %esi
48554f:	89 7c 24 38          	mov    %edi,0x38(%esp)
485553:	89 5c 24 3c          	mov    %ebx,0x3c(%esp)
485557:	e8 e4 3a f8 ff       	call   0x409040
48555c:	83 c4 10             	add    $0x10,%esp
48555f:	8d 4c 24 20          	lea    0x20(%esp),%ecx
485563:	e8 b8 44 f8 ff       	call   0x409a20
485568:	5f                   	pop    %edi
485569:	5e                   	pop    %esi
48556a:	33 c0                	xor    %eax,%eax
48556c:	5b                   	pop    %ebx
48556d:	8b e5                	mov    %ebp,%esp
48556f:	5d                   	pop    %ebp
485570:	c2 08 00             	ret    $0x8
485573:	55                   	push   %ebp
485574:	8b ec                	mov    %esp,%ebp
485576:	51                   	push   %ecx
485577:	51                   	push   %ecx
485578:	56                   	push   %esi
485579:	ff 75 08             	push   0x8(%ebp)
48557c:	8b f1                	mov    %ecx,%esi
48557e:	e8 2a 64 f8 ff       	call   0x40b9ad
485583:	6a 01                	push   $0x1
485585:	8b ce                	mov    %esi,%ecx
485587:	e8 b1 63 f8 ff       	call   0x40b93d
48558c:	85 c0                	test   %eax,%eax
48558e:	7f 29                	jg     0x4855b9
485590:	79 11                	jns    0x4855a3
485592:	f7 d8                	neg    %eax
485594:	6a 00                	push   $0x0
485596:	50                   	push   %eax
485597:	8b 06                	mov    (%esi),%eax
485599:	8b 48 04             	mov    0x4(%eax),%ecx
48559c:	03 ce                	add    %esi,%ecx
48559e:	e8 00 15 fd ff       	call   0x456aa3
4855a3:	8b 75 0c             	mov    0xc(%ebp),%esi
4855a6:	8b ce                	mov    %esi,%ecx
4855a8:	e8 73 44 f8 ff       	call   0x409a20
4855ad:	83 0e ff             	orl    $0xffffffff,(%esi)
4855b0:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4855b7:	eb 3b                	jmp    0x4855f4
4855b9:	8d 45 08             	lea    0x8(%ebp),%eax
4855bc:	50                   	push   %eax
4855bd:	8b 86 f0 01 00 00    	mov    0x1f0(%esi),%eax
4855c3:	ff 30                	push   (%eax)
4855c5:	ff 15 60 f6 48 00    	call   *0x48f660
4855cb:	8b 45 08             	mov    0x8(%ebp),%eax
4855ce:	db 45 08             	fildl  0x8(%ebp)
4855d1:	85 c0                	test   %eax,%eax
4855d3:	79 06                	jns    0x4855db
4855d5:	dc 05 c8 ba 4b 00    	faddl  0x4bbac8
4855db:	8b 75 0c             	mov    0xc(%ebp),%esi
4855de:	8b ce                	mov    %esi,%ecx
4855e0:	dd 5d f8             	fstpl  -0x8(%ebp)
4855e3:	e8 38 44 f8 ff       	call   0x409a20
4855e8:	dd 45 f8             	fldl   -0x8(%ebp)
4855eb:	dd 1e                	fstpl  (%esi)
4855ed:	c7 46 0c 03 00 00 00 	movl   $0x3,0xc(%esi)
4855f4:	33 c0                	xor    %eax,%eax
4855f6:	5e                   	pop    %esi
4855f7:	8b e5                	mov    %ebp,%esp
4855f9:	5d                   	pop    %ebp
4855fa:	c2 08 00             	ret    $0x8
4855fd:	55                   	push   %ebp
4855fe:	8b ec                	mov    %esp,%ebp
485600:	53                   	push   %ebx
485601:	56                   	push   %esi
485602:	57                   	push   %edi
485603:	ff 75 08             	push   0x8(%ebp)
485606:	33 db                	xor    %ebx,%ebx
485608:	8b f1                	mov    %ecx,%esi
48560a:	43                   	inc    %ebx
48560b:	8b fb                	mov    %ebx,%edi
48560d:	e8 9b 63 f8 ff       	call   0x40b9ad
485612:	53                   	push   %ebx
485613:	8b ce                	mov    %esi,%ecx
485615:	e8 23 63 f8 ff       	call   0x40b93d
48561a:	85 c0                	test   %eax,%eax
48561c:	7f 25                	jg     0x485643
48561e:	6a 00                	push   $0x0
485620:	79 05                	jns    0x485627
485622:	f7 d8                	neg    %eax
485624:	50                   	push   %eax
485625:	eb 01                	jmp    0x485628
485627:	53                   	push   %ebx
485628:	8b 06                	mov    (%esi),%eax
48562a:	8b 48 04             	mov    0x4(%eax),%ecx
48562d:	03 ce                	add    %esi,%ecx
48562f:	e8 6f 14 fd ff       	call   0x456aa3
485634:	8b 75 0c             	mov    0xc(%ebp),%esi
485637:	8b ce                	mov    %esi,%ecx
485639:	e8 e2 43 f8 ff       	call   0x409a20
48563e:	83 26 00             	andl   $0x0,(%esi)
485641:	eb 59                	jmp    0x48569c
485643:	8b 86 f0 01 00 00    	mov    0x1f0(%esi),%eax
485649:	8b 30                	mov    (%eax),%esi
48564b:	56                   	push   %esi
48564c:	ff 15 50 f6 48 00    	call   *0x48f650
485652:	85 c0                	test   %eax,%eax
485654:	74 03                	je     0x485659
485656:	6a 03                	push   $0x3
485658:	5f                   	pop    %edi
485659:	56                   	push   %esi
48565a:	ff 15 4c f6 48 00    	call   *0x48f64c
485660:	85 c0                	test   %eax,%eax
485662:	74 03                	je     0x485667
485664:	83 cf 04             	or     $0x4,%edi
485667:	ff 15 34 f7 48 00    	call   *0x48f734
48566d:	3b c6                	cmp    %esi,%eax
48566f:	75 03                	jne    0x485674
485671:	83 cf 08             	or     $0x8,%edi
485674:	56                   	push   %esi
485675:	ff 15 dc f5 48 00    	call   *0x48f5dc
48567b:	85 c0                	test   %eax,%eax
48567d:	74 03                	je     0x485682
48567f:	83 cf 10             	or     $0x10,%edi
485682:	56                   	push   %esi
485683:	ff 15 04 f5 48 00    	call   *0x48f504
485689:	85 c0                	test   %eax,%eax
48568b:	74 03                	je     0x485690
48568d:	83 cf 20             	or     $0x20,%edi
485690:	8b 75 0c             	mov    0xc(%ebp),%esi
485693:	8b ce                	mov    %esi,%ecx
485695:	e8 86 43 f8 ff       	call   0x409a20
48569a:	89 3e                	mov    %edi,(%esi)
48569c:	5f                   	pop    %edi
48569d:	89 5e 0c             	mov    %ebx,0xc(%esi)
4856a0:	33 c0                	xor    %eax,%eax
4856a2:	5e                   	pop    %esi
4856a3:	5b                   	pop    %ebx
4856a4:	5d                   	pop    %ebp
4856a5:	c2 08 00             	ret    $0x8
4856a8:	55                   	push   %ebp
4856a9:	8b ec                	mov    %esp,%ebp
4856ab:	83 e4 f8             	and    $0xfffffff8,%esp
4856ae:	83 ec 14             	sub    $0x14,%esp
4856b1:	56                   	push   %esi
4856b2:	ff 75 08             	push   0x8(%ebp)
4856b5:	8b f1                	mov    %ecx,%esi
4856b7:	e8 f1 62 f8 ff       	call   0x40b9ad
4856bc:	6a 01                	push   $0x1
4856be:	8b ce                	mov    %esi,%ecx