40b1fa:	f7 e6                	mul    %esi
40b1fc:	03 d1                	add    %ecx,%edx
40b1fe:	72 0e                	jb     0x40b20e
40b200:	3b 54 24 10          	cmp    0x10(%esp),%edx
40b204:	77 08                	ja     0x40b20e
40b206:	72 07                	jb     0x40b20f
40b208:	3b 44 24 0c          	cmp    0xc(%esp),%eax
40b20c:	76 01                	jbe    0x40b20f
40b20e:	4e                   	dec    %esi
40b20f:	33 d2                	xor    %edx,%edx
40b211:	8b c6                	mov    %esi,%eax
40b213:	5e                   	pop    %esi
40b214:	5b                   	pop    %ebx
40b215:	c2 10 00             	ret    $0x10
40b218:	cc                   	int3
40b219:	cc                   	int3
40b21a:	cc                   	int3
40b21b:	cc                   	int3
40b21c:	cc                   	int3
40b21d:	cc                   	int3
40b21e:	cc                   	int3
40b21f:	cc                   	int3
40b220:	56                   	push   %esi
40b221:	8b 44 24 14          	mov    0x14(%esp),%eax
40b225:	0b c0                	or     %eax,%eax
40b227:	75 28                	jne    0x40b251
40b229:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40b22d:	8b 44 24 0c          	mov    0xc(%esp),%eax
40b231:	33 d2                	xor    %edx,%edx
40b233:	f7 f1                	div    %ecx
40b235:	8b d8                	mov    %eax,%ebx
40b237:	8b 44 24 08          	mov    0x8(%esp),%eax
40b23b:	f7 f1                	div    %ecx
40b23d:	8b f0                	mov    %eax,%esi
40b23f:	8b c3                	mov    %ebx,%eax
40b241:	f7 64 24 10          	mull   0x10(%esp)
40b245:	8b c8                	mov    %eax,%ecx
40b247:	8b c6                	mov    %esi,%eax
40b249:	f7 64 24 10          	mull   0x10(%esp)
40b24d:	03 d1                	add    %ecx,%edx
40b24f:	eb 47                	jmp    0x40b298
40b251:	8b c8                	mov    %eax,%ecx
40b253:	8b 5c 24 10          	mov    0x10(%esp),%ebx
40b257:	8b 54 24 0c          	mov    0xc(%esp),%edx
40b25b:	8b 44 24 08          	mov    0x8(%esp),%eax
40b25f:	d1 e9                	shr    $1,%ecx
40b261:	d1 db                	rcr    $1,%ebx
40b263:	d1 ea                	shr    $1,%edx
40b265:	d1 d8                	rcr    $1,%eax
40b267:	0b c9                	or     %ecx,%ecx
40b269:	75 f4                	jne    0x40b25f
40b26b:	f7 f3                	div    %ebx
40b26d:	8b f0                	mov    %eax,%esi
40b26f:	f7 64 24 14          	mull   0x14(%esp)
40b273:	8b c8                	mov    %eax,%ecx
40b275:	8b 44 24 10          	mov    0x10(%esp),%eax
40b279:	f7 e6                	mul    %esi
40b27b:	03 d1                	add    %ecx,%edx
40b27d:	72 0e                	jb     0x40b28d
40b27f:	3b 54 24 0c          	cmp    0xc(%esp),%edx
40b283:	77 08                	ja     0x40b28d
40b285:	72 0f                	jb     0x40b296
40b287:	3b 44 24 08          	cmp    0x8(%esp),%eax
40b28b:	76 09                	jbe    0x40b296
40b28d:	4e                   	dec    %esi
40b28e:	2b 44 24 10          	sub    0x10(%esp),%eax
40b292:	1b 54 24 14          	sbb    0x14(%esp),%edx
40b296:	33 db                	xor    %ebx,%ebx
40b298:	2b 44 24 08          	sub    0x8(%esp),%eax
40b29c:	1b 54 24 0c          	sbb    0xc(%esp),%edx
40b2a0:	f7 da                	neg    %edx
40b2a2:	f7 d8                	neg    %eax
40b2a4:	83 da 00             	sbb    $0x0,%edx
40b2a7:	8b ca                	mov    %edx,%ecx
40b2a9:	8b d3                	mov    %ebx,%edx
40b2ab:	8b d9                	mov    %ecx,%ebx
40b2ad:	8b c8                	mov    %eax,%ecx
40b2af:	8b c6                	mov    %esi,%eax
40b2b1:	5e                   	pop    %esi
40b2b2:	c2 10 00             	ret    $0x10
40b2b5:	cc                   	int3
40b2b6:	cc                   	int3
40b2b7:	cc                   	int3
40b2b8:	cc                   	int3
40b2b9:	cc                   	int3
40b2ba:	cc                   	int3
40b2bb:	cc                   	int3
40b2bc:	cc                   	int3
40b2bd:	cc                   	int3
40b2be:	cc                   	int3
40b2bf:	cc                   	int3
40b2c0:	53                   	push   %ebx
40b2c1:	8b 44 24 14          	mov    0x14(%esp),%eax
40b2c5:	0b c0                	or     %eax,%eax
40b2c7:	75 18                	jne    0x40b2e1
40b2c9:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40b2cd:	8b 44 24 0c          	mov    0xc(%esp),%eax
40b2d1:	33 d2                	xor    %edx,%edx
40b2d3:	f7 f1                	div    %ecx
40b2d5:	8b 44 24 08          	mov    0x8(%esp),%eax
40b2d9:	f7 f1                	div    %ecx
40b2db:	8b c2                	mov    %edx,%eax
40b2dd:	33 d2                	xor    %edx,%edx
40b2df:	eb 50                	jmp    0x40b331
40b2e1:	8b c8                	mov    %eax,%ecx
40b2e3:	8b 5c 24 10          	mov    0x10(%esp),%ebx
40b2e7:	8b 54 24 0c          	mov    0xc(%esp),%edx
40b2eb:	8b 44 24 08          	mov    0x8(%esp),%eax
40b2ef:	d1 e9                	shr    $1,%ecx
40b2f1:	d1 db                	rcr    $1,%ebx
40b2f3:	d1 ea                	shr    $1,%edx
40b2f5:	d1 d8                	rcr    $1,%eax
40b2f7:	0b c9                	or     %ecx,%ecx
40b2f9:	75 f4                	jne    0x40b2ef
40b2fb:	f7 f3                	div    %ebx
40b2fd:	8b c8                	mov    %eax,%ecx
40b2ff:	f7 64 24 14          	mull   0x14(%esp)
40b303:	91                   	xchg   %eax,%ecx
40b304:	f7 64 24 10          	mull   0x10(%esp)
40b308:	03 d1                	add    %ecx,%edx
40b30a:	72 0e                	jb     0x40b31a
40b30c:	3b 54 24 0c          	cmp    0xc(%esp),%edx
40b310:	77 08                	ja     0x40b31a
40b312:	72 0e                	jb     0x40b322
40b314:	3b 44 24 08          	cmp    0x8(%esp),%eax
40b318:	76 08                	jbe    0x40b322
40b31a:	2b 44 24 10          	sub    0x10(%esp),%eax
40b31e:	1b 54 24 14          	sbb    0x14(%esp),%edx
40b322:	2b 44 24 08          	sub    0x8(%esp),%eax
40b326:	1b 54 24 0c          	sbb    0xc(%esp),%edx
40b32a:	f7 da                	neg    %edx
40b32c:	f7 d8                	neg    %eax
40b32e:	83 da 00             	sbb    $0x0,%edx
40b331:	5b                   	pop    %ebx
40b332:	c2 10 00             	ret    $0x10
40b335:	cc                   	int3
40b336:	cc                   	int3
40b337:	cc                   	int3
40b338:	cc                   	int3
40b339:	cc                   	int3
40b33a:	cc                   	int3
40b33b:	cc                   	int3
40b33c:	cc                   	int3
40b33d:	cc                   	int3
40b33e:	cc                   	int3
40b33f:	cc                   	int3
40b340:	80 f9 40             	cmp    $0x40,%cl
40b343:	73 15                	jae    0x40b35a
40b345:	80 f9 20             	cmp    $0x20,%cl
40b348:	73 06                	jae    0x40b350
40b34a:	0f ad d0             	shrd   %cl,%edx,%eax
40b34d:	d3 ea                	shr    %cl,%edx
40b34f:	c3                   	ret
40b350:	8b c2                	mov    %edx,%eax
40b352:	33 d2                	xor    %edx,%edx
40b354:	80 e1 1f             	and    $0x1f,%cl
40b357:	d3 e8                	shr    %cl,%eax
40b359:	c3                   	ret
40b35a:	33 c0                	xor    %eax,%eax
40b35c:	33 d2                	xor    %edx,%edx
40b35e:	c3                   	ret
40b35f:	cc                   	int3
40b360:	55                   	push   %ebp
40b361:	8b ec                	mov    %esp,%ebp
40b363:	51                   	push   %ecx
40b364:	56                   	push   %esi
40b365:	57                   	push   %edi
40b366:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40b36d:	eb 09                	jmp    0x40b378
40b36f:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b372:	83 c0 02             	add    $0x2,%eax
40b375:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b378:	83 7d fc 0a          	cmpl   $0xa,-0x4(%ebp)
40b37c:	73 53                	jae    0x40b3d1
40b37e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40b381:	8b 55 08             	mov    0x8(%ebp),%edx
40b384:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b387:	8b 75 0c             	mov    0xc(%ebp),%esi
40b38a:	8b 3c ca             	mov    (%edx,%ecx,8),%edi
40b38d:	03 3c c6             	add    (%esi,%eax,8),%edi
40b390:	8b 4c ca 04          	mov    0x4(%edx,%ecx,8),%ecx
40b394:	13 4c c6 04          	adc    0x4(%esi,%eax,8),%ecx
40b398:	8b 55 fc             	mov    -0x4(%ebp),%edx
40b39b:	8b 45 08             	mov    0x8(%ebp),%eax
40b39e:	89 3c d0             	mov    %edi,(%eax,%edx,8)
40b3a1:	89 4c d0 04          	mov    %ecx,0x4(%eax,%edx,8)
40b3a5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40b3a8:	8b 55 08             	mov    0x8(%ebp),%edx
40b3ab:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b3ae:	8b 75 0c             	mov    0xc(%ebp),%esi
40b3b1:	8b 7c ca 08          	mov    0x8(%edx,%ecx,8),%edi
40b3b5:	03 7c c6 08          	add    0x8(%esi,%eax,8),%edi
40b3b9:	8b 4c ca 0c          	mov    0xc(%edx,%ecx,8),%ecx
40b3bd:	13 4c c6 0c          	adc    0xc(%esi,%eax,8),%ecx
40b3c1:	8b 55 fc             	mov    -0x4(%ebp),%edx
40b3c4:	8b 45 08             	mov    0x8(%ebp),%eax
40b3c7:	89 7c d0 08          	mov    %edi,0x8(%eax,%edx,8)
40b3cb:	89 4c d0 0c          	mov    %ecx,0xc(%eax,%edx,8)
40b3cf:	eb 9e                	jmp    0x40b36f
40b3d1:	5f                   	pop    %edi
40b3d2:	5e                   	pop    %esi
40b3d3:	8b e5                	mov    %ebp,%esp
40b3d5:	5d                   	pop    %ebp
40b3d6:	c3                   	ret
40b3d7:	cc                   	int3
40b3d8:	cc                   	int3
40b3d9:	cc                   	int3
40b3da:	cc                   	int3
40b3db:	cc                   	int3
40b3dc:	cc                   	int3
40b3dd:	cc                   	int3
40b3de:	cc                   	int3
40b3df:	cc                   	int3
40b3e0:	55                   	push   %ebp
40b3e1:	8b ec                	mov    %esp,%ebp
40b3e3:	51                   	push   %ecx
40b3e4:	56                   	push   %esi
40b3e5:	57                   	push   %edi
40b3e6:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40b3ed:	eb 09                	jmp    0x40b3f8
40b3ef:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b3f2:	83 c0 01             	add    $0x1,%eax
40b3f5:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b3f8:	83 7d fc 0a          	cmpl   $0xa,-0x4(%ebp)
40b3fc:	73 29                	jae    0x40b427
40b3fe:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40b401:	8b 55 0c             	mov    0xc(%ebp),%edx
40b404:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b407:	8b 75 08             	mov    0x8(%ebp),%esi
40b40a:	8b 3c ca             	mov    (%edx,%ecx,8),%edi
40b40d:	2b 3c c6             	sub    (%esi,%eax,8),%edi
40b410:	8b 4c ca 04          	mov    0x4(%edx,%ecx,8),%ecx
40b414:	1b 4c c6 04          	sbb    0x4(%esi,%eax,8),%ecx
40b418:	8b 55 fc             	mov    -0x4(%ebp),%edx
40b41b:	8b 45 08             	mov    0x8(%ebp),%eax
40b41e:	89 3c d0             	mov    %edi,(%eax,%edx,8)
40b421:	89 4c d0 04          	mov    %ecx,0x4(%eax,%edx,8)
40b425:	eb c8                	jmp    0x40b3ef
40b427:	5f                   	pop    %edi
40b428:	5e                   	pop    %esi
40b429:	8b e5                	mov    %ebp,%esp
40b42b:	5d                   	pop    %ebp
40b42c:	c3                   	ret
40b42d:	cc                   	int3
40b42e:	cc                   	int3
40b42f:	cc                   	int3
40b430:	55                   	push   %ebp
40b431:	8b ec                	mov    %esp,%ebp
40b433:	51                   	push   %ecx
40b434:	56                   	push   %esi
40b435:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40b43c:	eb 09                	jmp    0x40b447
40b43e:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b441:	83 c0 01             	add    $0x1,%eax
40b444:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b447:	83 7d fc 0a          	cmpl   $0xa,-0x4(%ebp)
40b44b:	73 2b                	jae    0x40b478
40b44d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40b450:	8b 55 0c             	mov    0xc(%ebp),%edx
40b453:	8b 45 14             	mov    0x14(%ebp),%eax
40b456:	50                   	push   %eax
40b457:	8b 45 10             	mov    0x10(%ebp),%eax
40b45a:	50                   	push   %eax
40b45b:	8b 44 ca 04          	mov    0x4(%edx,%ecx,8),%eax
40b45f:	50                   	push   %eax
40b460:	8b 0c ca             	mov    (%edx,%ecx,8),%ecx
40b463:	51                   	push   %ecx
40b464:	e8 07 fc ff ff       	call   0x40b070
40b469:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40b46c:	8b 75 08             	mov    0x8(%ebp),%esi
40b46f:	89 04 ce             	mov    %eax,(%esi,%ecx,8)
40b472:	89 54 ce 04          	mov    %edx,0x4(%esi,%ecx,8)
40b476:	eb c6                	jmp    0x40b43e
40b478:	5e                   	pop    %esi
40b479:	8b e5                	mov    %ebp,%esp
40b47b:	5d                   	pop    %ebp
40b47c:	c3                   	ret
40b47d:	cc                   	int3
40b47e:	cc                   	int3
40b47f:	cc                   	int3
40b480:	55                   	push   %ebp
40b481:	8b ec                	mov    %esp,%ebp
40b483:	83 ec 40             	sub    $0x40,%esp
40b486:	53                   	push   %ebx
40b487:	56                   	push   %esi
40b488:	57                   	push   %edi
40b489:	b8 08 00 00 00       	mov    $0x8,%eax
40b48e:	6b c8 00             	imul   $0x0,%eax,%ecx
40b491:	8b 55 0c             	mov    0xc(%ebp),%edx
40b494:	8b 04 0a             	mov    (%edx,%ecx,1),%eax
40b497:	99                   	cltd
40b498:	8b c8                	mov    %eax,%ecx
40b49a:	8b f2                	mov    %edx,%esi
40b49c:	ba 08 00 00 00       	mov    $0x8,%edx
40b4a1:	6b c2 00             	imul   $0x0,%edx,%eax
40b4a4:	8b 55 10             	mov    0x10(%ebp),%edx
40b4a7:	8b 04 02             	mov    (%edx,%eax,1),%eax
40b4aa:	99                   	cltd
40b4ab:	52                   	push   %edx
40b4ac:	50                   	push   %eax
40b4ad:	56                   	push   %esi
40b4ae:	51                   	push   %ecx
40b4af:	e8 bc fb ff ff       	call   0x40b070
40b4b4:	b9 08 00 00 00       	mov    $0x8,%ecx
40b4b9:	6b c9 00             	imul   $0x0,%ecx,%ecx
40b4bc:	8b 75 08             	mov    0x8(%ebp),%esi
40b4bf:	89 04 0e             	mov    %eax,(%esi,%ecx,1)
40b4c2:	89 54 0e 04          	mov    %edx,0x4(%esi,%ecx,1)
40b4c6:	ba 08 00 00 00       	mov    $0x8,%edx
40b4cb:	6b c2 00             	imul   $0x0,%edx,%eax
40b4ce:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40b4d1:	8b 04 01             	mov    (%ecx,%eax,1),%eax
40b4d4:	99                   	cltd
40b4d5:	8b c8                	mov    %eax,%ecx
40b4d7:	8b f2                	mov    %edx,%esi
40b4d9:	ba 08 00 00 00       	mov    $0x8,%edx
40b4de:	c1 e2 00             	shl    $0x0,%edx
40b4e1:	8b 45 10             	mov    0x10(%ebp),%eax
40b4e4:	8b 04 10             	mov    (%eax,%edx,1),%eax
40b4e7:	99                   	cltd
40b4e8:	52                   	push   %edx
40b4e9:	50                   	push   %eax
40b4ea:	56                   	push   %esi
40b4eb:	51                   	push   %ecx
40b4ec:	e8 7f fb ff ff       	call   0x40b070
40b4f1:	8b f0                	mov    %eax,%esi
40b4f3:	8b fa                	mov    %edx,%edi
40b4f5:	b9 08 00 00 00       	mov    $0x8,%ecx
40b4fa:	c1 e1 00             	shl    $0x0,%ecx
40b4fd:	8b 55 0c             	mov    0xc(%ebp),%edx
40b500:	8b 04 0a             	mov    (%edx,%ecx,1),%eax
40b503:	99                   	cltd
40b504:	8b c8                	mov    %eax,%ecx
40b506:	8b da                	mov    %edx,%ebx
40b508:	ba 08 00 00 00       	mov    $0x8,%edx
40b50d:	6b c2 00             	imul   $0x0,%edx,%eax
40b510:	8b 55 10             	mov    0x10(%ebp),%edx
40b513:	8b 04 02             	mov    (%edx,%eax,1),%eax
40b516:	99                   	cltd
40b517:	52                   	push   %edx
40b518:	50                   	push   %eax
40b519:	53                   	push   %ebx
40b51a:	51                   	push   %ecx
40b51b:	e8 50 fb ff ff       	call   0x40b070
40b520:	03 f0                	add    %eax,%esi
40b522:	13 fa                	adc    %edx,%edi
40b524:	b8 08 00 00 00       	mov    $0x8,%eax
40b529:	c1 e0 00             	shl    $0x0,%eax
40b52c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40b52f:	89 34 01             	mov    %esi,(%ecx,%eax,1)