4892d9:	8b 45 08             	mov    0x8(%ebp),%eax
4892dc:	89 41 04             	mov    %eax,0x4(%ecx)
4892df:	51                   	push   %ecx
4892e0:	83 c1 0c             	add    $0xc,%ecx
4892e3:	d9 5d fc             	fstps  -0x4(%ebp)
4892e6:	d9 45 fc             	flds   -0x4(%ebp)
4892e9:	d9 1c 24             	fstps  (%esp)
4892ec:	e8 42 fe ff ff       	call   0x489133
4892f1:	c9                   	leave
4892f2:	c2 04 00             	ret    $0x4
4892f5:	cc                   	int3
4892f6:	cc                   	int3
4892f7:	cc                   	int3
4892f8:	cc                   	int3
4892f9:	cc                   	int3
4892fa:	cc                   	int3
4892fb:	cc                   	int3
4892fc:	cc                   	int3
4892fd:	cc                   	int3
4892fe:	cc                   	int3
4892ff:	cc                   	int3
489300:	8b ff                	mov    %edi,%edi
489302:	55                   	push   %ebp
489303:	8b ec                	mov    %esp,%ebp
489305:	ff 75 10             	push   0x10(%ebp)
489308:	8d 51 14             	lea    0x14(%ecx),%edx
48930b:	ff 75 0c             	push   0xc(%ebp)
48930e:	ff 71 08             	push   0x8(%ecx)
489311:	ff 71 04             	push   0x4(%ecx)
489314:	8b 4d 08             	mov    0x8(%ebp),%ecx
489317:	e8 f7 f4 ff ff       	call   0x488813
48931c:	5d                   	pop    %ebp
48931d:	c2 14 00             	ret    $0x14
489320:	8b ff                	mov    %edi,%edi
489322:	55                   	push   %ebp
489323:	8b ec                	mov    %esp,%ebp
489325:	ff 75 18             	push   0x18(%ebp)
489328:	8d 51 14             	lea    0x14(%ecx),%edx
48932b:	ff 75 14             	push   0x14(%ebp)
48932e:	51                   	push   %ecx
48932f:	ff 75 0c             	push   0xc(%ebp)
489332:	ff 71 08             	push   0x8(%ecx)
489335:	ff 71 04             	push   0x4(%ecx)
489338:	8b 4d 08             	mov    0x8(%ebp),%ecx
48933b:	e8 b3 f6 ff ff       	call   0x4889f3
489340:	b0 01                	mov    $0x1,%al
489342:	5d                   	pop    %ebp
489343:	c2 1c 00             	ret    $0x1c
489346:	cc                   	int3
489347:	cc                   	int3
489348:	cc                   	int3
489349:	cc                   	int3
48934a:	cc                   	int3
48934b:	cc                   	int3
48934c:	cc                   	int3
48934d:	cc                   	int3
48934e:	cc                   	int3
48934f:	cc                   	int3
489350:	8b ff                	mov    %edi,%edi
489352:	55                   	push   %ebp
489353:	8b ec                	mov    %esp,%ebp
489355:	ff 75 0c             	push   0xc(%ebp)
489358:	8d 51 14             	lea    0x14(%ecx),%edx
48935b:	8b 4d 08             	mov    0x8(%ebp),%ecx
48935e:	e8 d5 f9 ff ff       	call   0x488d38
489363:	b0 01                	mov    $0x1,%al
489365:	5d                   	pop    %ebp
489366:	c2 08 00             	ret    $0x8
489369:	cc                   	int3
48936a:	cc                   	int3
48936b:	cc                   	int3
48936c:	cc                   	int3
48936d:	cc                   	int3
48936e:	cc                   	int3
48936f:	cc                   	int3
489370:	8b ff                	mov    %edi,%edi
489372:	55                   	push   %ebp
489373:	8b ec                	mov    %esp,%ebp
489375:	53                   	push   %ebx
489376:	56                   	push   %esi
489377:	8b 71 08             	mov    0x8(%ecx),%esi
48937a:	8d 59 14             	lea    0x14(%ecx),%ebx
48937d:	57                   	push   %edi
48937e:	8b 79 04             	mov    0x4(%ecx),%edi
489381:	8b d3                	mov    %ebx,%edx
489383:	ff 75 18             	push   0x18(%ebp)
489386:	8b 4d 08             	mov    0x8(%ebp),%ecx
489389:	e8 aa f9 ff ff       	call   0x488d38
48938e:	ff 75 1c             	push   0x1c(%ebp)
489391:	8b d3                	mov    %ebx,%edx
489393:	ff 75 14             	push   0x14(%ebp)
489396:	51                   	push   %ecx
489397:	ff 75 0c             	push   0xc(%ebp)
48939a:	8b 4d 08             	mov    0x8(%ebp),%ecx
48939d:	56                   	push   %esi
48939e:	57                   	push   %edi
48939f:	e8 4f f6 ff ff       	call   0x4889f3
4893a4:	5f                   	pop    %edi
4893a5:	5e                   	pop    %esi
4893a6:	b0 01                	mov    $0x1,%al
4893a8:	5b                   	pop    %ebx
4893a9:	5d                   	pop    %ebp
4893aa:	c2 18 00             	ret    $0x18
4893ad:	8b ff                	mov    %edi,%edi
4893af:	55                   	push   %ebp
4893b0:	8b ec                	mov    %esp,%ebp
4893b2:	51                   	push   %ecx
4893b3:	56                   	push   %esi
4893b4:	57                   	push   %edi
4893b5:	8b f9                	mov    %ecx,%edi
4893b7:	8d 45 fc             	lea    -0x4(%ebp),%eax
4893ba:	50                   	push   %eax
4893bb:	33 f6                	xor    %esi,%esi
4893bd:	ff 77 18             	push   0x18(%edi)
4893c0:	ff 15 a0 c1 4a 00    	call   *0x4ac1a0
4893c6:	85 c0                	test   %eax,%eax
4893c8:	74 03                	je     0x4893cd
4893ca:	89 47 1c             	mov    %eax,0x1c(%edi)
4893cd:	8b 45 fc             	mov    -0x4(%ebp),%eax
4893d0:	2b c6                	sub    %esi,%eax
4893d2:	74 24                	je     0x4893f8
4893d4:	83 e8 01             	sub    $0x1,%eax
4893d7:	74 1c                	je     0x4893f5
4893d9:	83 e8 01             	sub    $0x1,%eax
4893dc:	74 12                	je     0x4893f0
4893de:	83 e8 01             	sub    $0x1,%eax
4893e1:	74 09                	je     0x4893ec
4893e3:	83 e8 01             	sub    $0x1,%eax
4893e6:	75 10                	jne    0x4893f8
4893e8:	6a 04                	push   $0x4
4893ea:	eb 06                	jmp    0x4893f2
4893ec:	6a 03                	push   $0x3
4893ee:	eb 02                	jmp    0x4893f2
4893f0:	6a 02                	push   $0x2
4893f2:	5e                   	pop    %esi
4893f3:	eb 03                	jmp    0x4893f8
4893f5:	33 f6                	xor    %esi,%esi
4893f7:	46                   	inc    %esi
4893f8:	5f                   	pop    %edi
4893f9:	8b c6                	mov    %esi,%eax
4893fb:	5e                   	pop    %esi
4893fc:	c9                   	leave
4893fd:	c3                   	ret
4893fe:	8b ff                	mov    %edi,%edi
489400:	55                   	push   %ebp
489401:	8b ec                	mov    %esp,%ebp
489403:	8b 45 08             	mov    0x8(%ebp),%eax
489406:	33 d2                	xor    %edx,%edx
489408:	56                   	push   %esi
489409:	8b f1                	mov    %ecx,%esi
48940b:	2b c2                	sub    %edx,%eax
48940d:	74 24                	je     0x489433
48940f:	83 e8 01             	sub    $0x1,%eax
489412:	74 1c                	je     0x489430
489414:	83 e8 01             	sub    $0x1,%eax
489417:	74 12                	je     0x48942b
489419:	83 e8 01             	sub    $0x1,%eax
48941c:	74 09                	je     0x489427
48941e:	83 e8 01             	sub    $0x1,%eax
489421:	75 10                	jne    0x489433
489423:	6a 04                	push   $0x4
489425:	eb 06                	jmp    0x48942d
489427:	6a 03                	push   $0x3
489429:	eb 02                	jmp    0x48942d
48942b:	6a 02                	push   $0x2
48942d:	5a                   	pop    %edx
48942e:	eb 03                	jmp    0x489433
489430:	33 d2                	xor    %edx,%edx
489432:	42                   	inc    %edx
489433:	52                   	push   %edx
489434:	ff 76 18             	push   0x18(%esi)
489437:	ff 15 a4 c1 4a 00    	call   *0x4ac1a4
48943d:	85 c0                	test   %eax,%eax
48943f:	74 03                	je     0x489444
489441:	89 46 1c             	mov    %eax,0x1c(%esi)
489444:	5e                   	pop    %esi
489445:	5d                   	pop    %ebp
489446:	c2 04 00             	ret    $0x4
489449:	8b ff                	mov    %edi,%edi
48944b:	55                   	push   %ebp
48944c:	8b ec                	mov    %esp,%ebp
48944e:	51                   	push   %ecx
48944f:	51                   	push   %ecx
489450:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
489454:	8d 45 fc             	lea    -0x4(%ebp),%eax
489457:	56                   	push   %esi
489458:	57                   	push   %edi
489459:	50                   	push   %eax
48945a:	8b f9                	mov    %ecx,%edi
48945c:	ff 15 30 c0 4a 00    	call   *0x4ac030
489462:	db 45 0c             	fildl  0xc(%ebp)
489465:	8b 75 fc             	mov    -0x4(%ebp),%esi
489468:	6a 00                	push   $0x0
48946a:	51                   	push   %ecx
48946b:	51                   	push   %ecx
48946c:	d9 5d f8             	fstps  -0x8(%ebp)
48946f:	d9 45 f8             	flds   -0x8(%ebp)
489472:	d9 5c 24 04          	fstps  0x4(%esp)
489476:	db 45 08             	fildl  0x8(%ebp)
489479:	d9 5d f8             	fstps  -0x8(%ebp)
48947c:	d9 45 f8             	flds   -0x8(%ebp)
48947f:	d9 1c 24             	fstps  (%esp)
489482:	ff 75 fc             	push   -0x4(%ebp)
489485:	ff 15 44 c1 4a 00    	call   *0x4ac144
48948b:	56                   	push   %esi
48948c:	ff 77 18             	push   0x18(%edi)
48948f:	ff 15 38 c0 4a 00    	call   *0x4ac038
489495:	85 c0                	test   %eax,%eax
489497:	74 03                	je     0x48949c
489499:	89 47 1c             	mov    %eax,0x1c(%edi)
48949c:	56                   	push   %esi
48949d:	ff 15 34 c0 4a 00    	call   *0x4ac034
4894a3:	5f                   	pop    %edi
4894a4:	5e                   	pop    %esi
4894a5:	c9                   	leave
4894a6:	c2 08 00             	ret    $0x8
4894a9:	8b ff                	mov    %edi,%edi
4894ab:	55                   	push   %ebp
4894ac:	8b ec                	mov    %esp,%ebp
4894ae:	83 ec 14             	sub    $0x14,%esp
4894b1:	53                   	push   %ebx
4894b2:	56                   	push   %esi
4894b3:	57                   	push   %edi
4894b4:	8d 45 f0             	lea    -0x10(%ebp),%eax
4894b7:	8b f1                	mov    %ecx,%esi
4894b9:	50                   	push   %eax
4894ba:	8b 45 0c             	mov    0xc(%ebp),%eax
4894bd:	33 db                	xor    %ebx,%ebx
4894bf:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4894c2:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4894c5:	89 5d f4             	mov    %ebx,-0xc(%ebp)
4894c8:	ff 70 14             	push   0x14(%eax)
4894cb:	89 5d f0             	mov    %ebx,-0x10(%ebp)
4894ce:	ff 36                	push   (%esi)
4894d0:	ff 15 a8 c1 4a 00    	call   *0x4ac1a8
4894d6:	8b f8                	mov    %eax,%edi
4894d8:	85 ff                	test   %edi,%edi
4894da:	74 05                	je     0x4894e1
4894dc:	89 7e 04             	mov    %edi,0x4(%esi)
4894df:	eb 02                	jmp    0x4894e3
4894e1:	8b fb                	mov    %ebx,%edi
4894e3:	85 ff                	test   %edi,%edi
4894e5:	75 20                	jne    0x489507
4894e7:	8b 75 08             	mov    0x8(%ebp),%esi
4894ea:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4894ed:	8b 45 f8             	mov    -0x8(%ebp),%eax
4894f0:	8b 55 f4             	mov    -0xc(%ebp),%edx
4894f3:	03 c1                	add    %ecx,%eax
4894f5:	89 46 08             	mov    %eax,0x8(%esi)
4894f8:	8b 45 fc             	mov    -0x4(%ebp),%eax
4894fb:	03 c2                	add    %edx,%eax
4894fd:	89 0e                	mov    %ecx,(%esi)
4894ff:	89 56 04             	mov    %edx,0x4(%esi)
489502:	85 ff                	test   %edi,%edi
489504:	89 46 0c             	mov    %eax,0xc(%esi)
489507:	5f                   	pop    %edi
489508:	5e                   	pop    %esi
489509:	0f 94 c0             	sete   %al
48950c:	5b                   	pop    %ebx
48950d:	c9                   	leave
48950e:	c2 08 00             	ret    $0x8
489511:	8b ff                	mov    %edi,%edi
489513:	55                   	push   %ebp
489514:	8b ec                	mov    %esp,%ebp
489516:	83 ec 44             	sub    $0x44,%esp
489519:	57                   	push   %edi
48951a:	6a 1c                	push   $0x1c
48951c:	8d 45 e0             	lea    -0x20(%ebp),%eax
48951f:	89 55 fc             	mov    %edx,-0x4(%ebp)
489522:	8b f9                	mov    %ecx,%edi
489524:	50                   	push   %eax
489525:	57                   	push   %edi
489526:	ff 15 ec 72 4a 00    	call   *0x4a72ec
48952c:	85 c0                	test   %eax,%eax
48952e:	75 05                	jne    0x489535
489530:	6a 19                	push   $0x19
489532:	59                   	pop    %ecx
489533:	cd 29                	int    $0x29
489535:	f6 45 f4 44          	testb  $0x44,-0xc(%ebp)
489539:	74 43                	je     0x48957e
48953b:	53                   	push   %ebx
48953c:	56                   	push   %esi
48953d:	8d 45 bc             	lea    -0x44(%ebp),%eax
489540:	50                   	push   %eax
489541:	ff 15 e8 72 4a 00    	call   *0x4a72e8
489547:	8b 5d c0             	mov    -0x40(%ebp),%ebx
48954a:	33 d2                	xor    %edx,%edx
48954c:	8b f3                	mov    %ebx,%esi
48954e:	f7 de                	neg    %esi
489550:	23 f7                	and    %edi,%esi
489552:	8d 4b ff             	lea    -0x1(%ebx),%ecx
489555:	8b c1                	mov    %ecx,%eax
489557:	23 4d fc             	and    -0x4(%ebp),%ecx
48955a:	23 c7                	and    %edi,%eax
48955c:	49                   	dec    %ecx
48955d:	03 c3                	add    %ebx,%eax
48955f:	03 c1                	add    %ecx,%eax
489561:	f7 f3                	div    %ebx
489563:	33 d2                	xor    %edx,%edx
489565:	8b c8                	mov    %eax,%ecx
489567:	8b 45 fc             	mov    -0x4(%ebp),%eax
48956a:	f7 f3                	div    %ebx
48956c:	03 c8                	add    %eax,%ecx
48956e:	74 0c                	je     0x48957c
489570:	33 c0                	xor    %eax,%eax
489572:	f0 09 06             	lock or %eax,(%esi)
489575:	03 f3                	add    %ebx,%esi
489577:	83 e9 01             	sub    $0x1,%ecx
48957a:	75 f4                	jne    0x489570
48957c:	5e                   	pop    %esi
48957d:	5b                   	pop    %ebx
48957e:	5f                   	pop    %edi
48957f:	c9                   	leave
489580:	c3                   	ret
489581:	8b ff                	mov    %edi,%edi
489583:	55                   	push   %ebp
489584:	8b ec                	mov    %esp,%ebp
489586:	83 ec 10             	sub    $0x10,%esp
489589:	56                   	push   %esi
48958a:	8b 35 3c 00 40 00    	mov    0x40003c,%esi
489590:	8b c2                	mov    %edx,%eax
489592:	57                   	push   %edi
489593:	89 45 f8             	mov    %eax,-0x8(%ebp)
489596:	89 4d f0             	mov    %ecx,-0x10(%ebp)
489599:	83 be 74 00 40 00 0d 	cmpl   $0xd,0x400074(%esi)
4895a0:	0f 86 ae 00 00 00    	jbe    0x489654
4895a6:	8b be e0 00 40 00    	mov    0x4000e0(%esi),%edi
4895ac:	85 ff                	test   %edi,%edi
4895ae:	0f 84 a0 00 00 00    	je     0x489654
4895b4:	0f b7 86 14 00 40 00 	movzwl 0x400014(%esi),%eax
4895bb:	8d 8e 18 00 40 00    	lea    0x400018(%esi),%ecx
4895c1:	0f b7 96 06 00 40 00 	movzwl 0x400006(%esi),%edx
4895c8:	03 c8                	add    %eax,%ecx
4895ca:	8b 87 0c 00 40 00    	mov    0x40000c(%edi),%eax
4895d0:	33 ff                	xor    %edi,%edi
4895d2:	89 45 fc             	mov    %eax,-0x4(%ebp)
4895d5:	89 55 f4             	mov    %edx,-0xc(%ebp)
4895d8:	53                   	push   %ebx
4895d9:	8b df                	mov    %edi,%ebx
4895db:	85 d2                	test   %edx,%edx
4895dd:	74 1e                	je     0x4895fd
4895df:	8b 51 0c             	mov    0xc(%ecx),%edx
4895e2:	3b c2                	cmp    %edx,%eax
4895e4:	72 0e                	jb     0x4895f4
4895e6:	8b 71 08             	mov    0x8(%ecx),%esi
4895e9:	8d 04 16             	lea    (%esi,%edx,1),%eax
4895ec:	39 45 fc             	cmp    %eax,-0x4(%ebp)
4895ef:	72 55                	jb     0x489646
4895f1:	8b 45 fc             	mov    -0x4(%ebp),%eax
4895f4:	43                   	inc    %ebx