40b08b:	f7 e1                	mul    %ecx
40b08d:	03 d3                	add    %ebx,%edx
40b08f:	5b                   	pop    %ebx
40b090:	c2 10 00             	ret    $0x10
40b093:	cc                   	int3
40b094:	cc                   	int3
40b095:	cc                   	int3
40b096:	cc                   	int3
40b097:	cc                   	int3
40b098:	cc                   	int3
40b099:	cc                   	int3
40b09a:	cc                   	int3
40b09b:	cc                   	int3
40b09c:	cc                   	int3
40b09d:	cc                   	int3
40b09e:	cc                   	int3
40b09f:	cc                   	int3
40b0a0:	53                   	push   %ebx
40b0a1:	57                   	push   %edi
40b0a2:	33 ff                	xor    %edi,%edi
40b0a4:	8b 44 24 10          	mov    0x10(%esp),%eax
40b0a8:	0b c0                	or     %eax,%eax
40b0aa:	7d 14                	jge    0x40b0c0
40b0ac:	47                   	inc    %edi
40b0ad:	8b 54 24 0c          	mov    0xc(%esp),%edx
40b0b1:	f7 d8                	neg    %eax
40b0b3:	f7 da                	neg    %edx
40b0b5:	83 d8 00             	sbb    $0x0,%eax
40b0b8:	89 44 24 10          	mov    %eax,0x10(%esp)
40b0bc:	89 54 24 0c          	mov    %edx,0xc(%esp)
40b0c0:	8b 44 24 18          	mov    0x18(%esp),%eax
40b0c4:	0b c0                	or     %eax,%eax
40b0c6:	7d 13                	jge    0x40b0db
40b0c8:	8b 54 24 14          	mov    0x14(%esp),%edx
40b0cc:	f7 d8                	neg    %eax
40b0ce:	f7 da                	neg    %edx
40b0d0:	83 d8 00             	sbb    $0x0,%eax
40b0d3:	89 44 24 18          	mov    %eax,0x18(%esp)
40b0d7:	89 54 24 14          	mov    %edx,0x14(%esp)
40b0db:	0b c0                	or     %eax,%eax
40b0dd:	75 1b                	jne    0x40b0fa
40b0df:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40b0e3:	8b 44 24 10          	mov    0x10(%esp),%eax
40b0e7:	33 d2                	xor    %edx,%edx
40b0e9:	f7 f1                	div    %ecx
40b0eb:	8b 44 24 0c          	mov    0xc(%esp),%eax
40b0ef:	f7 f1                	div    %ecx
40b0f1:	8b c2                	mov    %edx,%eax
40b0f3:	33 d2                	xor    %edx,%edx
40b0f5:	4f                   	dec    %edi
40b0f6:	79 4e                	jns    0x40b146
40b0f8:	eb 53                	jmp    0x40b14d
40b0fa:	8b d8                	mov    %eax,%ebx
40b0fc:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40b100:	8b 54 24 10          	mov    0x10(%esp),%edx
40b104:	8b 44 24 0c          	mov    0xc(%esp),%eax
40b108:	d1 eb                	shr    $1,%ebx
40b10a:	d1 d9                	rcr    $1,%ecx
40b10c:	d1 ea                	shr    $1,%edx
40b10e:	d1 d8                	rcr    $1,%eax
40b110:	0b db                	or     %ebx,%ebx
40b112:	75 f4                	jne    0x40b108
40b114:	f7 f1                	div    %ecx
40b116:	8b c8                	mov    %eax,%ecx
40b118:	f7 64 24 18          	mull   0x18(%esp)
40b11c:	91                   	xchg   %eax,%ecx
40b11d:	f7 64 24 14          	mull   0x14(%esp)
40b121:	03 d1                	add    %ecx,%edx
40b123:	72 0e                	jb     0x40b133
40b125:	3b 54 24 10          	cmp    0x10(%esp),%edx
40b129:	77 08                	ja     0x40b133
40b12b:	72 0e                	jb     0x40b13b
40b12d:	3b 44 24 0c          	cmp    0xc(%esp),%eax
40b131:	76 08                	jbe    0x40b13b
40b133:	2b 44 24 14          	sub    0x14(%esp),%eax
40b137:	1b 54 24 18          	sbb    0x18(%esp),%edx
40b13b:	2b 44 24 0c          	sub    0xc(%esp),%eax
40b13f:	1b 54 24 10          	sbb    0x10(%esp),%edx
40b143:	4f                   	dec    %edi
40b144:	79 07                	jns    0x40b14d
40b146:	f7 da                	neg    %edx
40b148:	f7 d8                	neg    %eax
40b14a:	83 da 00             	sbb    $0x0,%edx
40b14d:	5f                   	pop    %edi
40b14e:	5b                   	pop    %ebx
40b14f:	c2 10 00             	ret    $0x10
40b152:	cc                   	int3
40b153:	cc                   	int3
40b154:	cc                   	int3
40b155:	cc                   	int3
40b156:	cc                   	int3
40b157:	cc                   	int3
40b158:	cc                   	int3
40b159:	cc                   	int3
40b15a:	cc                   	int3
40b15b:	cc                   	int3
40b15c:	cc                   	int3
40b15d:	cc                   	int3
40b15e:	cc                   	int3
40b15f:	cc                   	int3
40b160:	80 f9 40             	cmp    $0x40,%cl
40b163:	73 15                	jae    0x40b17a
40b165:	80 f9 20             	cmp    $0x20,%cl
40b168:	73 06                	jae    0x40b170
40b16a:	0f a5 c2             	shld   %cl,%eax,%edx
40b16d:	d3 e0                	shl    %cl,%eax
40b16f:	c3                   	ret
40b170:	8b d0                	mov    %eax,%edx
40b172:	33 c0                	xor    %eax,%eax
40b174:	80 e1 1f             	and    $0x1f,%cl
40b177:	d3 e2                	shl    %cl,%edx
40b179:	c3                   	ret
40b17a:	33 c0                	xor    %eax,%eax
40b17c:	33 d2                	xor    %edx,%edx
40b17e:	c3                   	ret
40b17f:	cc                   	int3
40b180:	80 f9 40             	cmp    $0x40,%cl
40b183:	73 16                	jae    0x40b19b
40b185:	80 f9 20             	cmp    $0x20,%cl
40b188:	73 06                	jae    0x40b190
40b18a:	0f ad d0             	shrd   %cl,%edx,%eax
40b18d:	d3 fa                	sar    %cl,%edx
40b18f:	c3                   	ret
40b190:	8b c2                	mov    %edx,%eax
40b192:	c1 fa 1f             	sar    $0x1f,%edx
40b195:	80 e1 1f             	and    $0x1f,%cl
40b198:	d3 f8                	sar    %cl,%eax
40b19a:	c3                   	ret
40b19b:	c1 fa 1f             	sar    $0x1f,%edx
40b19e:	8b c2                	mov    %edx,%eax
40b1a0:	c3                   	ret
40b1a1:	cc                   	int3
40b1a2:	cc                   	int3
40b1a3:	cc                   	int3
40b1a4:	cc                   	int3
40b1a5:	cc                   	int3
40b1a6:	cc                   	int3
40b1a7:	cc                   	int3
40b1a8:	cc                   	int3
40b1a9:	cc                   	int3
40b1aa:	cc                   	int3
40b1ab:	cc                   	int3
40b1ac:	cc                   	int3
40b1ad:	cc                   	int3
40b1ae:	cc                   	int3
40b1af:	cc                   	int3
40b1b0:	53                   	push   %ebx
40b1b1:	56                   	push   %esi
40b1b2:	8b 44 24 18          	mov    0x18(%esp),%eax
40b1b6:	0b c0                	or     %eax,%eax
40b1b8:	75 18                	jne    0x40b1d2
40b1ba:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40b1be:	8b 44 24 10          	mov    0x10(%esp),%eax
40b1c2:	33 d2                	xor    %edx,%edx
40b1c4:	f7 f1                	div    %ecx
40b1c6:	8b d8                	mov    %eax,%ebx
40b1c8:	8b 44 24 0c          	mov    0xc(%esp),%eax
40b1cc:	f7 f1                	div    %ecx
40b1ce:	8b d3                	mov    %ebx,%edx
40b1d0:	eb 41                	jmp    0x40b213
40b1d2:	8b c8                	mov    %eax,%ecx
40b1d4:	8b 5c 24 14          	mov    0x14(%esp),%ebx
40b1d8:	8b 54 24 10          	mov    0x10(%esp),%edx
40b1dc:	8b 44 24 0c          	mov    0xc(%esp),%eax
40b1e0:	d1 e9                	shr    $1,%ecx
40b1e2:	d1 db                	rcr    $1,%ebx
40b1e4:	d1 ea                	shr    $1,%edx
40b1e6:	d1 d8                	rcr    $1,%eax
40b1e8:	0b c9                	or     %ecx,%ecx
40b1ea:	75 f4                	jne    0x40b1e0
40b1ec:	f7 f3                	div    %ebx
40b1ee:	8b f0                	mov    %eax,%esi
40b1f0:	f7 64 24 18          	mull   0x18(%esp)
40b1f4:	8b c8                	mov    %eax,%ecx
40b1f6:	8b 44 24 14          	mov    0x14(%esp),%eax
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