40f1da:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
40f1dd:	83 c0 04             	add    $0x4,%eax
40f1e0:	89 45 dc             	mov    %eax,-0x24(%ebp)
40f1e3:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40f1e6:	8b 00                	mov    (%eax),%eax
40f1e8:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f1eb:	8b 45 c0             	mov    -0x40(%ebp),%eax
40f1ee:	f7 65 f8             	mull   -0x8(%ebp)
40f1f1:	8b c8                	mov    %eax,%ecx
40f1f3:	8b 45 bc             	mov    -0x44(%ebp),%eax
40f1f6:	f7 65 f8             	mull   -0x8(%ebp)
40f1f9:	03 d1                	add    %ecx,%edx
40f1fb:	03 f8                	add    %eax,%edi
40f1fd:	8b 03                	mov    (%ebx),%eax
40f1ff:	8b cf                	mov    %edi,%ecx
40f201:	13 f2                	adc    %edx,%esi
40f203:	8b fe                	mov    %esi,%edi
40f205:	33 f6                	xor    %esi,%esi
40f207:	3b c1                	cmp    %ecx,%eax
40f209:	73 05                	jae    0x40f210
40f20b:	83 c7 01             	add    $0x1,%edi
40f20e:	13 f6                	adc    %esi,%esi
40f210:	2b c1                	sub    %ecx,%eax
40f212:	89 03                	mov    %eax,(%ebx)
40f214:	83 c3 04             	add    $0x4,%ebx
40f217:	8b 45 dc             	mov    -0x24(%ebp),%eax
40f21a:	83 c0 04             	add    $0x4,%eax
40f21d:	83 6d ec 01          	subl   $0x1,-0x14(%ebp)
40f221:	89 45 dc             	mov    %eax,-0x24(%ebp)
40f224:	75 c0                	jne    0x40f1e6
40f226:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40f229:	8b 4d cc             	mov    -0x34(%ebp),%ecx
40f22c:	33 c0                	xor    %eax,%eax
40f22e:	3b c6                	cmp    %esi,%eax
40f230:	77 46                	ja     0x40f278
40f232:	72 05                	jb     0x40f239
40f234:	39 7d b8             	cmp    %edi,-0x48(%ebp)
40f237:	73 3f                	jae    0x40f278
40f239:	85 c9                	test   %ecx,%ecx
40f23b:	74 34                	je     0x40f271
40f23d:	8b 75 0c             	mov    0xc(%ebp),%esi
40f240:	33 db                	xor    %ebx,%ebx
40f242:	8b 55 c4             	mov    -0x3c(%ebp),%edx
40f245:	83 c6 04             	add    $0x4,%esi
40f248:	8b f9                	mov    %ecx,%edi
40f24a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
40f250:	8b 0a                	mov    (%edx),%ecx
40f252:	8d 76 04             	lea    0x4(%esi),%esi
40f255:	33 c0                	xor    %eax,%eax
40f257:	8d 52 04             	lea    0x4(%edx),%edx
40f25a:	03 4e fc             	add    -0x4(%esi),%ecx
40f25d:	13 c0                	adc    %eax,%eax
40f25f:	03 cb                	add    %ebx,%ecx
40f261:	89 4a fc             	mov    %ecx,-0x4(%edx)
40f264:	83 d0 00             	adc    $0x0,%eax
40f267:	8b d8                	mov    %eax,%ebx
40f269:	83 ef 01             	sub    $0x1,%edi
40f26c:	75 e2                	jne    0x40f250
40f26e:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40f271:	83 c3 ff             	add    $0xffffffff,%ebx
40f274:	83 55 f0 ff          	adcl   $0xffffffff,-0x10(%ebp)
40f278:	8b 45 c8             	mov    -0x38(%ebp),%eax
40f27b:	48                   	dec    %eax
40f27c:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f27f:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40f282:	33 c0                	xor    %eax,%eax
40f284:	8b 55 e8             	mov    -0x18(%ebp),%edx
40f287:	03 c3                	add    %ebx,%eax
40f289:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
40f28c:	8b 5d 08             	mov    0x8(%ebp),%ebx
40f28f:	83 d6 00             	adc    $0x0,%esi
40f292:	83 6d c4 04          	subl   $0x4,-0x3c(%ebp)
40f296:	4a                   	dec    %edx
40f297:	8b 7d f4             	mov    -0xc(%ebp),%edi
40f29a:	83 e9 04             	sub    $0x4,%ecx
40f29d:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40f2a0:	8b 45 c8             	mov    -0x38(%ebp),%eax
40f2a3:	48                   	dec    %eax
40f2a4:	89 55 e8             	mov    %edx,-0x18(%ebp)
40f2a7:	89 45 c8             	mov    %eax,-0x38(%ebp)
40f2aa:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
40f2ad:	85 d2                	test   %edx,%edx
40f2af:	0f 89 ed fd ff ff    	jns    0x40f0a2
40f2b5:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40f2b8:	8b 5d 08             	mov    0x8(%ebp),%ebx
40f2bb:	41                   	inc    %ecx
40f2bc:	8b c1                	mov    %ecx,%eax
40f2be:	3b 03                	cmp    (%ebx),%eax
40f2c0:	73 1c                	jae    0x40f2de
40f2c2:	8d 53 04             	lea    0x4(%ebx),%edx
40f2c5:	8d 14 82             	lea    (%edx,%eax,4),%edx
40f2c8:	eb 06                	jmp    0x40f2d0
40f2ca:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
40f2d0:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
40f2d6:	8d 52 04             	lea    0x4(%edx),%edx
40f2d9:	40                   	inc    %eax
40f2da:	3b 03                	cmp    (%ebx),%eax
40f2dc:	72 f2                	jb     0x40f2d0
40f2de:	89 0b                	mov    %ecx,(%ebx)
40f2e0:	85 c9                	test   %ecx,%ecx
40f2e2:	74 0d                	je     0x40f2f1
40f2e4:	83 3c 8b 00          	cmpl   $0x0,(%ebx,%ecx,4)
40f2e8:	75 07                	jne    0x40f2f1
40f2ea:	83 c1 ff             	add    $0xffffffff,%ecx
40f2ed:	89 0b                	mov    %ecx,(%ebx)
40f2ef:	75 f3                	jne    0x40f2e4
40f2f1:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40f2f4:	8b d6                	mov    %esi,%edx
40f2f6:	5f                   	pop    %edi
40f2f7:	5e                   	pop    %esi
40f2f8:	5b                   	pop    %ebx
40f2f9:	8b e5                	mov    %ebp,%esp
40f2fb:	5d                   	pop    %ebp
40f2fc:	c3                   	ret
40f2fd:	5f                   	pop    %edi
40f2fe:	5e                   	pop    %esi
40f2ff:	33 c0                	xor    %eax,%eax
40f301:	33 d2                	xor    %edx,%edx
40f303:	5b                   	pop    %ebx
40f304:	8b e5                	mov    %ebp,%esp
40f306:	5d                   	pop    %ebp
40f307:	c3                   	ret
40f308:	8b ff                	mov    %edi,%edi
40f30a:	55                   	push   %ebp
40f30b:	8b ec                	mov    %esp,%ebp
40f30d:	8b 01                	mov    (%ecx),%eax
40f30f:	48                   	dec    %eax
40f310:	89 01                	mov    %eax,(%ecx)
40f312:	8a 4d 08             	mov    0x8(%ebp),%cl
40f315:	84 c9                	test   %cl,%cl
40f317:	74 14                	je     0x40f32d
40f319:	38 08                	cmp    %cl,(%eax)
40f31b:	74 10                	je     0x40f32d
40f31d:	e8 d9 fa ff ff       	call   0x40edfb
40f322:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40f328:	e8 54 dd ff ff       	call   0x40d081
40f32d:	5d                   	pop    %ebp
40f32e:	c2 04 00             	ret    $0x4
40f331:	8b ff                	mov    %edi,%edi
40f333:	55                   	push   %ebp
40f334:	8b ec                	mov    %esp,%ebp
40f336:	8b 01                	mov    (%ecx),%eax
40f338:	83 c0 fe             	add    $0xfffffffe,%eax
40f33b:	89 01                	mov    %eax,(%ecx)
40f33d:	66 8b 4d 08          	mov    0x8(%ebp),%cx
40f341:	66 85 c9             	test   %cx,%cx
40f344:	74 15                	je     0x40f35b
40f346:	66 39 08             	cmp    %cx,(%eax)
40f349:	74 10                	je     0x40f35b
40f34b:	e8 ab fa ff ff       	call   0x40edfb
40f350:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40f356:	e8 26 dd ff ff       	call   0x40d081
40f35b:	5d                   	pop    %ebp
40f35c:	c2 04 00             	ret    $0x4
40f35f:	8b ff                	mov    %edi,%edi
40f361:	55                   	push   %ebp
40f362:	8b ec                	mov    %esp,%ebp
40f364:	8b 4d 10             	mov    0x10(%ebp),%ecx
40f367:	56                   	push   %esi
40f368:	85 c9                	test   %ecx,%ecx
40f36a:	74 30                	je     0x40f39c
40f36c:	8b 55 08             	mov    0x8(%ebp),%edx
40f36f:	8b 31                	mov    (%ecx),%esi
40f371:	8d 42 01             	lea    0x1(%edx),%eax
40f374:	3d 00 01 00 00       	cmp    $0x100,%eax
40f379:	77 0b                	ja     0x40f386
40f37b:	8b 06                	mov    (%esi),%eax
40f37d:	0f b7 04 50          	movzwl (%eax,%edx,2),%eax
40f381:	23 45 0c             	and    0xc(%ebp),%eax
40f384:	eb 2a                	jmp    0x40f3b0
40f386:	83 7e 04 01          	cmpl   $0x1,0x4(%esi)
40f38a:	7e 0c                	jle    0x40f398
40f38c:	51                   	push   %ecx
40f38d:	ff 75 0c             	push   0xc(%ebp)
40f390:	52                   	push   %edx
40f391:	e8 37 90 00 00       	call   0x4183cd
40f396:	eb 15                	jmp    0x40f3ad
40f398:	33 c0                	xor    %eax,%eax
40f39a:	eb 14                	jmp    0x40f3b0
40f39c:	ff 75 0c             	push   0xc(%ebp)
40f39f:	ff 75 08             	push   0x8(%ebp)
40f3a2:	e8 6e f3 ff ff       	call   0x40e715
40f3a7:	50                   	push   %eax
40f3a8:	e8 b5 d7 ff ff       	call   0x40cb62
40f3ad:	83 c4 0c             	add    $0xc,%esp
40f3b0:	5e                   	pop    %esi
40f3b1:	5d                   	pop    %ebp
40f3b2:	c3                   	ret
40f3b3:	cc                   	int3
40f3b4:	cc                   	int3
40f3b5:	cc                   	int3
40f3b6:	cc                   	int3
40f3b7:	cc                   	int3
40f3b8:	cc                   	int3
40f3b9:	cc                   	int3
40f3ba:	cc                   	int3
40f3bb:	cc                   	int3
40f3bc:	cc                   	int3
40f3bd:	cc                   	int3
40f3be:	cc                   	int3
40f3bf:	cc                   	int3
40f3c0:	83 3d 5c 53 43 00 00 	cmpl   $0x0,0x43535c
40f3c7:	74 32                	je     0x40f3fb
40f3c9:	83 ec 08             	sub    $0x8,%esp
40f3cc:	0f ae 5c 24 04       	stmxcsr 0x4(%esp)
40f3d1:	8b 44 24 04          	mov    0x4(%esp),%eax
40f3d5:	25 80 7f 00 00       	and    $0x7f80,%eax
40f3da:	3d 80 1f 00 00       	cmp    $0x1f80,%eax
40f3df:	75 0f                	jne    0x40f3f0
40f3e1:	d9 3c 24             	fnstcw (%esp)
40f3e4:	66 8b 04 24          	mov    (%esp),%ax
40f3e8:	66 83 e0 7f          	and    $0x7f,%ax
40f3ec:	66 83 f8 7f          	cmp    $0x7f,%ax
40f3f0:	8d 64 24 08          	lea    0x8(%esp),%esp
40f3f4:	75 05                	jne    0x40f3fb
40f3f6:	e9 65 9b 00 00       	jmp    0x418f60
40f3fb:	83 ec 14             	sub    $0x14,%esp
40f3fe:	d9 c9                	fxch   %st(1)
40f400:	dd 1c 24             	fstpl  (%esp)
40f403:	dd 54 24 08          	fstl   0x8(%esp)
40f407:	8b 44 24 0c          	mov    0xc(%esp),%eax
40f40b:	e8 0d 00 00 00       	call   0x40f41d
40f410:	83 c4 14             	add    $0x14,%esp
40f413:	c3                   	ret
40f414:	8d 54 24 0c          	lea    0xc(%esp),%edx
40f418:	e8 78 ab 00 00       	call   0x419f95
40f41d:	8b c8                	mov    %eax,%ecx
40f41f:	50                   	push   %eax
40f420:	9b d9 3c 24          	fstcw  (%esp)
40f424:	66 81 3c 24 7f 02    	cmpw   $0x27f,(%esp)
40f42a:	74 05                	je     0x40f431
40f42c:	e8 34 ab 00 00       	call   0x419f65
40f431:	81 e1 00 00 f0 7f    	and    $0x7ff00000,%ecx
40f437:	8d 54 24 08          	lea    0x8(%esp),%edx
40f43b:	81 f9 00 00 f0 7f    	cmp    $0x7ff00000,%ecx
40f441:	0f 84 9c 00 00 00    	je     0x40f4e3
40f447:	e8 49 ab 00 00       	call   0x419f95
40f44c:	0f 84 8d 00 00 00    	je     0x40f4df
40f452:	a9 00 00 f0 7f       	test   $0x7ff00000,%eax
40f457:	0f 84 f5 00 00 00    	je     0x40f552
40f45d:	8a 4c 24 0f          	mov    0xf(%esp),%cl
40f461:	80 e1 80             	and    $0x80,%cl
40f464:	0f 85 52 01 00 00    	jne    0x40f5bc
40f46a:	d9 f1                	fyl2x
40f46c:	e8 df aa 00 00       	call   0x419f50
40f471:	80 f9 01             	cmp    $0x1,%cl
40f474:	75 02                	jne    0x40f478
40f476:	d9 e0                	fchs
40f478:	83 3d ec 4c 43 00 00 	cmpl   $0x0,0x434cec
40f47f:	0f 85 69 ab 00 00    	jne    0x419fee
40f485:	8d 0d 20 74 42 00    	lea    0x427420,%ecx
40f48b:	ba 1d 00 00 00       	mov    $0x1d,%edx
40f490:	e9 a4 ab 00 00       	jmp    0x41a039
40f495:	83 3d ec 4c 43 00 00 	cmpl   $0x0,0x434cec
40f49c:	0f 85 4c ab 00 00    	jne    0x419fee
40f4a2:	8d 0d 20 74 42 00    	lea    0x427420,%ecx
40f4a8:	ba 1d 00 00 00       	mov    $0x1d,%edx
40f4ad:	e8 3e aa 00 00       	call   0x419ef0
40f4b2:	5a                   	pop    %edx
40f4b3:	c3                   	ret
40f4b4:	8d 54 24 08          	lea    0x8(%esp),%edx
40f4b8:	e8 d8 aa 00 00       	call   0x419f95
40f4bd:	d9 e8                	fld1
40f4bf:	df e9                	fucomip %st(1),%st
40f4c1:	7a 05                	jp     0x40f4c8
40f4c3:	74 0e                	je     0x40f4d3
40f4c5:	41                   	inc    %ecx
40f4c6:	eb 31                	jmp    0x40f4f9
40f4c8:	d9 c9                	fxch   %st(1)
40f4ca:	d9 e5                	fxam
40f4cc:	9b df e0             	fstsw  %ax
40f4cf:	9b                   	fwait
40f4d0:	9e                   	sahf
40f4d1:	75 08                	jne    0x40f4db
40f4d3:	dd d8                	fstp   %st(0)
40f4d5:	dd d8                	fstp   %st(0)
40f4d7:	d9 e8                	fld1
40f4d9:	5a                   	pop    %edx
40f4da:	c3                   	ret
40f4db:	de c1                	faddp  %st,%st(1)
40f4dd:	5a                   	pop    %edx
40f4de:	c3                   	ret
40f4df:	33 c9                	xor    %ecx,%ecx
40f4e1:	eb 16                	jmp    0x40f4f9
40f4e3:	33 c9                	xor    %ecx,%ecx
40f4e5:	25 ff ff 0f 00       	and    $0xfffff,%eax
40f4ea:	0b 44 24 10          	or     0x10(%esp),%eax
40f4ee:	75 c4                	jne    0x40f4b4
40f4f0:	8d 54 24 08          	lea    0x8(%esp),%edx
40f4f4:	e8 9c aa 00 00       	call   0x419f95
40f4f9:	8b 44 24 0c          	mov    0xc(%esp),%eax
40f4fd:	8b d0                	mov    %eax,%edx
40f4ff:	25 00 00 f0 7f       	and    $0x7ff00000,%eax
40f504:	81 e2 ff ff 0f 00    	and    $0xfffff,%edx
40f50a:	3d 00 00 f0 7f       	cmp    $0x7ff00000,%eax
40f50f:	75 06                	jne    0x40f517
40f511:	0b 54 24 08          	or     0x8(%esp),%edx
40f515:	75 b1                	jne    0x40f4c8
40f517:	85 c9                	test   %ecx,%ecx
40f519:	75 c0                	jne    0x40f4db
40f51b:	83 ec 74             	sub    $0x74,%esp
40f51e:	8b cc                	mov    %esp,%ecx
40f520:	51                   	push   %ecx
40f521:	83 ec 10             	sub    $0x10,%esp
40f524:	dd 1c 24             	fstpl  (%esp)
40f527:	dd 5c 24 08          	fstpl  0x8(%esp)
40f52b:	9b dd 71 08          	fsave  0x8(%ecx)
40f52f:	e8 10 ac 00 00       	call   0x41a144
40f534:	83 c4 10             	add    $0x10,%esp
40f537:	59                   	pop    %ecx
40f538:	dd 61 08             	frstor 0x8(%ecx)
40f53b:	dd 01                	fldl   (%ecx)
40f53d:	83 c4 74             	add    $0x74,%esp
40f540:	85 c0                	test   %eax,%eax
40f542:	0f 84 a6 aa 00 00    	je     0x419fee
40f548:	b8 01 00 00 00       	mov    $0x1,%eax
40f54d:	e9 43 ff ff ff       	jmp    0x40f495
40f552:	8b 44 24 0c          	mov    0xc(%esp),%eax
40f556:	25 ff ff 0f 00       	and    $0xfffff,%eax
40f55b:	0b 44 24 08          	or     0x8(%esp),%eax
40f55f:	0f 85 f8 fe ff ff    	jne    0x40f45d
40f565:	dd d8                	fstp   %st(0)
40f567:	8b 44 24 14          	mov    0x14(%esp),%eax
40f56b:	25 ff ff ff 7f       	and    $0x7fffffff,%eax
40f570:	0b 44 24 10          	or     0x10(%esp),%eax
40f574:	74 3d                	je     0x40f5b3
40f576:	e8 66 00 00 00       	call   0x40f5e1
40f57b:	8a 6c 24 0f          	mov    0xf(%esp),%ch
40f57f:	c0 ed 07             	shr    $0x7,%ch
40f582:	f7 44 24 17 80 00 00 	testl  $0x80,0x17(%esp)
40f589:	00
40f58a:	74 16                	je     0x40f5a2
40f58c:	db 2d e0 84 42 00    	fldt   0x4284e0
40f592:	84 cd                	test   %cl,%ch
40f594:	74 02                	je     0x40f598
40f596:	d9 e0                	fchs
40f598:	b8 02 00 00 00       	mov    $0x2,%eax
40f59d:	e9 f3 fe ff ff       	jmp    0x40f495
40f5a2:	d9 ee                	fldz
40f5a4:	84 cd                	test   %cl,%ch
40f5a6:	0f 84 42 aa 00 00    	je     0x419fee
40f5ac:	d9 e0                	fchs
40f5ae:	e9 3b aa 00 00       	jmp    0x419fee
40f5b3:	dd d8                	fstp   %st(0)
40f5b5:	d9 e8                	fld1
40f5b7:	e9 32 aa 00 00       	jmp    0x419fee
40f5bc:	d9 c1                	fld    %st(1)
40f5be:	e8 1e 00 00 00       	call   0x40f5e1
40f5c3:	d9 e0                	fchs
40f5c5:	84 c9                	test   %cl,%cl