4801da:	66 85 d2             	test   %dx,%dx
4801dd:	74 c0                	je     0x48019f
4801df:	8b 45 dc             	mov    -0x24(%ebp),%eax
4801e2:	8b 73 7c             	mov    0x7c(%ebx),%esi
4801e5:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
4801e8:	85 f6                	test   %esi,%esi
4801ea:	74 28                	je     0x480214
4801ec:	3b f9                	cmp    %ecx,%edi
4801ee:	73 51                	jae    0x480241
4801f0:	50                   	push   %eax
4801f1:	8d 83 80 00 00 00    	lea    0x80(%ebx),%eax
4801f7:	50                   	push   %eax
4801f8:	51                   	push   %ecx
4801f9:	8b d6                	mov    %esi,%edx
4801fb:	8b cf                	mov    %edi,%ecx
4801fd:	e8 fc 8d f8 ff       	call   0x408ffe
480202:	83 c4 0c             	add    $0xc,%esp
480205:	85 c0                	test   %eax,%eax
480207:	74 35                	je     0x48023e
480209:	8b 83 80 00 00 00    	mov    0x80(%ebx),%eax
48020f:	8d 3c 47             	lea    (%edi,%eax,2),%edi
480212:	eb 8b                	jmp    0x48019f
480214:	8b b3 80 00 00 00    	mov    0x80(%ebx),%esi
48021a:	8d 04 36             	lea    (%esi,%esi,1),%eax
48021d:	2b c8                	sub    %eax,%ecx
48021f:	3b f9                	cmp    %ecx,%edi
480221:	77 1b                	ja     0x48023e
480223:	66 3b 93 84 00 00 00 	cmp    0x84(%ebx),%dx
48022a:	75 12                	jne    0x48023e
48022c:	83 fe 01             	cmp    $0x1,%esi
48022f:	74 d8                	je     0x480209
480231:	66 8b 47 02          	mov    0x2(%edi),%ax
480235:	66 3b 83 86 00 00 00 	cmp    0x86(%ebx),%ax
48023c:	74 cb                	je     0x480209
48023e:	8b 45 dc             	mov    -0x24(%ebp),%eax
480241:	83 c7 02             	add    $0x2,%edi
480244:	85 c0                	test   %eax,%eax
480246:	74 1b                	je     0x480263
480248:	66 8b 07             	mov    (%edi),%ax
48024b:	b9 00 fc 00 00       	mov    $0xfc00,%ecx
480250:	66 23 c1             	and    %cx,%ax
480253:	b9 00 dc 00 00       	mov    $0xdc00,%ecx
480258:	66 3b c1             	cmp    %cx,%ax
48025b:	8b 45 dc             	mov    -0x24(%ebp),%eax
48025e:	75 03                	jne    0x480263
480260:	83 c7 02             	add    $0x2,%edi
480263:	0f b7 17             	movzwl (%edi),%edx
480266:	66 85 d2             	test   %dx,%dx
480269:	0f 84 30 ff ff ff    	je     0x48019f
48026f:	e9 6e ff ff ff       	jmp    0x4801e2
480274:	8b 55 f8             	mov    -0x8(%ebp),%edx
480277:	8b 75 ac             	mov    -0x54(%ebp),%esi
48027a:	83 c7 fe             	add    $0xfffffffe,%edi
48027d:	89 7d fc             	mov    %edi,-0x4(%ebp)
480280:	e9 88 7e f8 ff       	jmp    0x40810d
480285:	33 c0                	xor    %eax,%eax
480287:	83 c7 02             	add    $0x2,%edi
48028a:	c7 45 d4 01 00 00 00 	movl   $0x1,-0x2c(%ebp)
480291:	89 7d fc             	mov    %edi,-0x4(%ebp)
480294:	e9 96 7e f8 ff       	jmp    0x40812f
480299:	6a 04                	push   $0x4
48029b:	dd d8                	fstp   %st(0)
48029d:	8d 43 04             	lea    0x4(%ebx),%eax
4802a0:	53                   	push   %ebx
4802a1:	50                   	push   %eax
4802a2:	e8 d9 5c fa ff       	call   0x425f80
4802a7:	8b 55 f8             	mov    -0x8(%ebp),%edx
4802aa:	c7 03 81 00 04 00    	movl   $0x40081,(%ebx)
4802b0:	83 c2 08             	add    $0x8,%edx
4802b3:	83 c4 0c             	add    $0xc,%esp
4802b6:	83 7d 2c 00          	cmpl   $0x0,0x2c(%ebp)
4802ba:	c7 43 08 78 00 04 00 	movl   $0x40078,0x8(%ebx)
4802c1:	89 55 f8             	mov    %edx,-0x8(%ebp)
4802c4:	c7 85 74 ff ff ff 06 	movl   $0x6,-0x8c(%ebp)
4802cb:	00 00 00
4802ce:	75 2c                	jne    0x4802fc
4802d0:	8b 7d 28             	mov    0x28(%ebp),%edi
4802d3:	8b 47 10             	mov    0x10(%edi),%eax
4802d6:	8b 4f 20             	mov    0x20(%edi),%ecx
4802d9:	83 c0 02             	add    $0x2,%eax
4802dc:	3b c8                	cmp    %eax,%ecx
4802de:	72 1c                	jb     0x4802fc
4802e0:	0f b7 71 fe          	movzwl -0x2(%ecx),%esi
4802e4:	8b c3                	mov    %ebx,%eax
4802e6:	2b 47 14             	sub    0x14(%edi),%eax
4802e9:	83 c0 02             	add    $0x2,%eax
4802ec:	d1 f8                	sar    $1,%eax
4802ee:	3b f0                	cmp    %eax,%esi
4802f0:	75 07                	jne    0x4802f9
4802f2:	8d 46 02             	lea    0x2(%esi),%eax
4802f5:	66 89 41 fe          	mov    %ax,-0x2(%ecx)
4802f9:	8b 75 ac             	mov    -0x54(%ebp),%esi
4802fc:	8b 45 f0             	mov    -0x10(%ebp),%eax
4802ff:	dd 05 f8 69 4b 00    	fldl   0x4b69f8
480305:	8b 7d fc             	mov    -0x4(%ebp),%edi
480308:	e9 32 7e f8 ff       	jmp    0x40813f
48030d:	8b 45 e0             	mov    -0x20(%ebp),%eax
480310:	be 91 00 00 00       	mov    $0x91,%esi
480315:	66 39 70 04          	cmp    %si,0x4(%eax)
480319:	8b 75 ec             	mov    -0x14(%ebp),%esi
48031c:	0f 85 ea 82 f8 ff    	jne    0x40860c
480322:	dd d8                	fstp   %st(0)
480324:	e9 e9 7e f8 ff       	jmp    0x408212
480329:	85 c0                	test   %eax,%eax
48032b:	7f f5                	jg     0x480322
48032d:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
480330:	85 c9                	test   %ecx,%ecx
480332:	78 09                	js     0x48033d
480334:	83 f9 01             	cmp    $0x1,%ecx
480337:	0f 8e e3 82 f8 ff    	jle    0x408620
48033d:	b9 01 00 00 00       	mov    $0x1,%ecx
480342:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
480345:	e9 d6 82 f8 ff       	jmp    0x408620
48034a:	b8 a1 00 00 00       	mov    $0xa1,%eax
48034f:	66 89 07             	mov    %ax,(%edi)
480352:	8b 7d fc             	mov    -0x4(%ebp),%edi
480355:	e9 b8 7e f8 ff       	jmp    0x408212
48035a:	ba 03 00 00 00       	mov    $0x3,%edx
48035f:	e8 95 e0 f9 ff       	call   0x41e3f9
480364:	83 c4 0c             	add    $0xc,%esp
480367:	8d 04 36             	lea    (%esi,%esi,1),%eax
48036a:	50                   	push   %eax
48036b:	8d 47 06             	lea    0x6(%edi),%eax
48036e:	57                   	push   %edi
48036f:	50                   	push   %eax
480370:	e8 0b 5c fa ff       	call   0x425f80
480375:	8b 45 f0             	mov    -0x10(%ebp),%eax
480378:	8b 55 f8             	mov    -0x8(%ebp),%edx
48037b:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
48037e:	05 92 00 00 00       	add    $0x92,%eax
480383:	66 89 07             	mov    %ax,(%edi)
480386:	83 c2 06             	add    $0x6,%edx
480389:	8d 5f 04             	lea    0x4(%edi),%ebx
48038c:	83 c4 0c             	add    $0xc,%esp
48038f:	c7 47 02 83 00 00 00 	movl   $0x83,0x2(%edi)
480396:	83 c7 06             	add    $0x6,%edi
480399:	89 55 f8             	mov    %edx,-0x8(%ebp)
48039c:	89 5d e8             	mov    %ebx,-0x18(%ebp)
48039f:	89 7d e0             	mov    %edi,-0x20(%ebp)
4803a2:	e9 e4 82 f8 ff       	jmp    0x40868b
4803a7:	83 f8 01             	cmp    $0x1,%eax
4803aa:	0f 8e 69 01 00 00    	jle    0x480519
4803b0:	39 5d 2c             	cmp    %ebx,0x2c(%ebp)
4803b3:	74 59                	je     0x48040e
4803b5:	8d 48 ff             	lea    -0x1(%eax),%ecx
4803b8:	89 4d bc             	mov    %ecx,-0x44(%ebp)
4803bb:	0f af 8d 74 ff ff ff 	imul   -0x8c(%ebp),%ecx
4803c2:	db 45 bc             	fildl  -0x44(%ebp)
4803c5:	dd 5d b8             	fstpl  -0x48(%ebp)
4803c8:	dd 45 b8             	fldl   -0x48(%ebp)
4803cb:	db 85 74 ff ff ff    	fildl  -0x8c(%ebp)
4803d1:	dd 5d b8             	fstpl  -0x48(%ebp)
4803d4:	dc 4d b8             	fmull  -0x48(%ebp)
4803d7:	de d9                	fcompp
4803d9:	df e0                	fnstsw %ax
4803db:	f6 c4 41             	test   $0x41,%ah
4803de:	0f 84 c8 1c 00 00    	je     0x4820ac
4803e4:	8b 7d 2c             	mov    0x2c(%ebp),%edi
4803e7:	b8 eb ff ff 7f       	mov    $0x7fffffeb,%eax
4803ec:	8b 37                	mov    (%edi),%esi
4803ee:	2b c6                	sub    %esi,%eax
4803f0:	3b c1                	cmp    %ecx,%eax
4803f2:	0f 8c b4 1c 00 00    	jl     0x4820ac
4803f8:	8d 04 31             	lea    (%ecx,%esi,1),%eax
4803fb:	8b 75 ec             	mov    -0x14(%ebp),%esi
4803fe:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
480401:	89 07                	mov    %eax,(%edi)
480403:	8b 7d fc             	mov    -0x4(%ebp),%edi
480406:	8b 45 ac             	mov    -0x54(%ebp),%eax
480409:	e9 0d 01 00 00       	jmp    0x48051b
48040e:	dd d8                	fstp   %st(0)
480410:	39 9d 64 ff ff ff    	cmp    %ebx,-0x9c(%ebp)
480416:	74 11                	je     0x480429
480418:	39 5d a8             	cmp    %ebx,-0x58(%ebp)
48041b:	7d 0c                	jge    0x480429
48041d:	8b 5d 90             	mov    -0x70(%ebp),%ebx
480420:	89 5d a0             	mov    %ebx,-0x60(%ebp)
480423:	8b 5d d0             	mov    -0x30(%ebp),%ebx
480426:	89 5d a8             	mov    %ebx,-0x58(%ebp)
480429:	bb 01 00 00 00       	mov    $0x1,%ebx
48042e:	89 5d b0             	mov    %ebx,-0x50(%ebp)
480431:	3b c3                	cmp    %ebx,%eax
480433:	0f 8e db 00 00 00    	jle    0x480514
480439:	8b 4d 28             	mov    0x28(%ebp),%ecx
48043c:	8d 3c 36             	lea    (%esi,%esi,1),%edi
48043f:	89 7d bc             	mov    %edi,-0x44(%ebp)
480442:	8b 71 20             	mov    0x20(%ecx),%esi
480445:	57                   	push   %edi
480446:	ff 75 e0             	push   -0x20(%ebp)
480449:	52                   	push   %edx
48044a:	e8 31 ea f9 ff       	call   0x41ee80
48044f:	8b 45 28             	mov    0x28(%ebp),%eax
480452:	8b ce                	mov    %esi,%ecx
480454:	2b 4d c0             	sub    -0x40(%ebp),%ecx
480457:	8b 50 10             	mov    0x10(%eax),%edx
48045a:	8b 40 3c             	mov    0x3c(%eax),%eax
48045d:	d1 f9                	sar    $1,%ecx
48045f:	2b c1                	sub    %ecx,%eax
480461:	8b 4d 28             	mov    0x28(%ebp),%ecx
480464:	83 c0 9c             	add    $0xffffff9c,%eax
480467:	83 c4 0c             	add    $0xc,%esp
48046a:	8d 04 42             	lea    (%edx,%eax,2),%eax
48046d:	39 41 20             	cmp    %eax,0x20(%ecx)
480470:	76 4c                	jbe    0x4804be
480472:	8b 45 c0             	mov    -0x40(%ebp),%eax
480475:	2b c2                	sub    %edx,%eax
480477:	d1 f8                	sar    $1,%eax
480479:	2b f2                	sub    %edx,%esi
48047b:	89 45 c0             	mov    %eax,-0x40(%ebp)
48047e:	d1 fe                	sar    $1,%esi
480480:	e8 10 06 ff ff       	call   0x470a95
480485:	8b 4d 0c             	mov    0xc(%ebp),%ecx
480488:	89 01                	mov    %eax,(%ecx)
48048a:	85 c0                	test   %eax,%eax
48048c:	0f 85 5a 83 f8 ff    	jne    0x4087ec
480492:	8b 45 28             	mov    0x28(%ebp),%eax
480495:	8b 4d c0             	mov    -0x40(%ebp),%ecx
480498:	8b 50 10             	mov    0x10(%eax),%edx
48049b:	8b 40 3c             	mov    0x3c(%eax),%eax
48049e:	8d 0c 4a             	lea    (%edx,%ecx,2),%ecx
4804a1:	89 4d c0             	mov    %ecx,-0x40(%ebp)
4804a4:	8d 34 72             	lea    (%edx,%esi,2),%esi
4804a7:	8b ce                	mov    %esi,%ecx
4804a9:	2b 4d c0             	sub    -0x40(%ebp),%ecx
4804ac:	d1 f9                	sar    $1,%ecx
4804ae:	2b c1                	sub    %ecx,%eax
4804b0:	8b 4d 28             	mov    0x28(%ebp),%ecx
4804b3:	83 c0 9c             	add    $0xffffff9c,%eax
4804b6:	8d 04 42             	lea    (%edx,%eax,2),%eax
4804b9:	39 41 20             	cmp    %eax,0x20(%ecx)
4804bc:	77 b4                	ja     0x480472
4804be:	39 75 c0             	cmp    %esi,-0x40(%ebp)
4804c1:	73 28                	jae    0x4804eb
4804c3:	8b 55 ec             	mov    -0x14(%ebp),%edx
4804c6:	8b 5d c0             	mov    -0x40(%ebp),%ebx
4804c9:	66 8b 0b             	mov    (%ebx),%cx
4804cc:	8b 7d 28             	mov    0x28(%ebp),%edi
4804cf:	66 03 ca             	add    %dx,%cx
4804d2:	8b 47 20             	mov    0x20(%edi),%eax
4804d5:	83 c3 02             	add    $0x2,%ebx
4804d8:	66 89 08             	mov    %cx,(%eax)
4804db:	8b cf                	mov    %edi,%ecx
4804dd:	83 41 20 02          	addl   $0x2,0x20(%ecx)
4804e1:	3b de                	cmp    %esi,%ebx
4804e3:	72 e4                	jb     0x4804c9
4804e5:	8b 5d b0             	mov    -0x50(%ebp),%ebx
4804e8:	8b 7d bc             	mov    -0x44(%ebp),%edi
4804eb:	8b 55 f8             	mov    -0x8(%ebp),%edx
4804ee:	8b 45 ac             	mov    -0x54(%ebp),%eax
4804f1:	89 75 c0             	mov    %esi,-0x40(%ebp)
4804f4:	8b 75 ec             	mov    -0x14(%ebp),%esi
4804f7:	43                   	inc    %ebx
4804f8:	8d 14 72             	lea    (%edx,%esi,2),%edx
4804fb:	89 55 f8             	mov    %edx,-0x8(%ebp)
4804fe:	89 5d b0             	mov    %ebx,-0x50(%ebp)
480501:	3b d8                	cmp    %eax,%ebx
480503:	0f 8c 39 ff ff ff    	jl     0x480442
480509:	8b 7d fc             	mov    -0x4(%ebp),%edi
48050c:	8b 5d e8             	mov    -0x18(%ebp),%ebx
48050f:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
480512:	eb 07                	jmp    0x48051b
480514:	8b 5d e8             	mov    -0x18(%ebp),%ebx
480517:	eb 02                	jmp    0x48051b
480519:	dd d8                	fstp   %st(0)
48051b:	85 c9                	test   %ecx,%ecx
48051d:	7e 05                	jle    0x480524
48051f:	2b c8                	sub    %eax,%ecx
480521:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
480524:	8b 45 c4             	mov    -0x3c(%ebp),%eax
480527:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
48052a:	e9 66 81 f8 ff       	jmp    0x408695
48052f:	8b 8d 74 ff ff ff    	mov    -0x8c(%ebp),%ecx
480535:	83 c1 05             	add    $0x5,%ecx
480538:	89 4d bc             	mov    %ecx,-0x44(%ebp)
48053b:	0f af 4d c4          	imul   -0x3c(%ebp),%ecx
48053f:	db 45 bc             	fildl  -0x44(%ebp)
480542:	dd 5d b8             	fstpl  -0x48(%ebp)
480545:	dd 45 b8             	fldl   -0x48(%ebp)
480548:	db 45 c4             	fildl  -0x3c(%ebp)
48054b:	dd 5d b8             	fstpl  -0x48(%ebp)
48054e:	83 e9 04             	sub    $0x4,%ecx
480551:	dc 4d b8             	fmull  -0x48(%ebp)
480554:	dc 1d f8 69 4b 00    	fcompl 0x4b69f8
48055a:	df e0                	fnstsw %ax
48055c:	f6 c4 41             	test   $0x41,%ah
48055f:	0f 84 47 1b 00 00    	je     0x4820ac
480565:	8b 7d 2c             	mov    0x2c(%ebp),%edi
480568:	b8 eb ff ff 7f       	mov    $0x7fffffeb,%eax
48056d:	8b 37                	mov    (%edi),%esi
48056f:	2b c6                	sub    %esi,%eax
480571:	3b c1                	cmp    %ecx,%eax
480573:	0f 8c 33 1b 00 00    	jl     0x4820ac
480579:	8d 04 31             	lea    (%ecx,%esi,1),%eax
48057c:	89 07                	mov    %eax,(%edi)
48057e:	8b 7d fc             	mov    -0x4(%ebp),%edi
480581:	e9 33 81 f8 ff       	jmp    0x4086b9
480586:	8b 7d f0             	mov    -0x10(%ebp),%edi
480589:	81 c7 92 00 00 00    	add    $0x92,%edi
48058f:	8d 0c 36             	lea    (%esi,%esi,1),%ecx
480592:	89 7d bc             	mov    %edi,-0x44(%ebp)
480595:	89 4d b0             	mov    %ecx,-0x50(%ebp)
480598:	8b 45 28             	mov    0x28(%ebp),%eax
48059b:	83 c2 02             	add    $0x2,%edx
48059e:	8b 70 20             	mov    0x20(%eax),%esi
4805a1:	66 89 7a fe          	mov    %di,-0x2(%edx)
4805a5:	89 55 f8             	mov    %edx,-0x8(%ebp)
4805a8:	85 db                	test   %ebx,%ebx
4805aa:	74 28                	je     0x4805d4
4805ac:	b8 83 00 00 00       	mov    $0x83,%eax
4805b1:	66 89 02             	mov    %ax,(%edx)
4805b4:	83 c2 02             	add    $0x2,%edx
4805b7:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
4805bb:	75 04                	jne    0x4805c1
4805bd:	33 c0                	xor    %eax,%eax
4805bf:	eb 07                	jmp    0x4805c8
4805c1:	8b c2                	mov    %edx,%eax
4805c3:	2b 45 e8             	sub    -0x18(%ebp),%eax
4805c6:	d1 f8                	sar    $1,%eax
4805c8:	89 55 e8             	mov    %edx,-0x18(%ebp)
4805cb:	66 89 02             	mov    %ax,(%edx)
4805ce:	83 c2 02             	add    $0x2,%edx
4805d1:	89 55 f8             	mov    %edx,-0x8(%ebp)
4805d4:	51                   	push   %ecx
4805d5:	ff 75 e0             	push   -0x20(%ebp)
4805d8:	52                   	push   %edx
4805d9:	e8 a2 e8 f9 ff       	call   0x41ee80
4805de:	8b 45 28             	mov    0x28(%ebp),%eax
4805e1:	8b ce                	mov    %esi,%ecx
4805e3:	2b 4d c0             	sub    -0x40(%ebp),%ecx
4805e6:	8b 50 10             	mov    0x10(%eax),%edx
4805e9:	8b 40 3c             	mov    0x3c(%eax),%eax
4805ec:	d1 f9                	sar    $1,%ecx
4805ee:	2b c1                	sub    %ecx,%eax
4805f0:	8b 4d 28             	mov    0x28(%ebp),%ecx
4805f3:	83 c0 9c             	add    $0xffffff9c,%eax
4805f6:	83 c4 0c             	add    $0xc,%esp
4805f9:	8d 04 42             	lea    (%edx,%eax,2),%eax
4805fc:	39 41 20             	cmp    %eax,0x20(%ecx)
4805ff:	76 4c                	jbe    0x48064d
480601:	8b 45 c0             	mov    -0x40(%ebp),%eax
480604:	2b c2                	sub    %edx,%eax
480606:	d1 f8                	sar    $1,%eax
480608:	2b f2                	sub    %edx,%esi
48060a:	89 45 c0             	mov    %eax,-0x40(%ebp)
48060d:	d1 fe                	sar    $1,%esi
48060f:	e8 81 04 ff ff       	call   0x470a95
480614:	8b 4d 0c             	mov    0xc(%ebp),%ecx
480617:	89 01                	mov    %eax,(%ecx)
480619:	85 c0                	test   %eax,%eax
48061b:	0f 85 cb 81 f8 ff    	jne    0x4087ec