40d04d:	83 64 9e 44 00       	andl   $0x0,0x44(%esi,%ebx,4)
40d052:	33 ff                	xor    %edi,%edi
40d054:	47                   	inc    %edi
40d055:	89 bc 9e c4 00 00 00 	mov    %edi,0xc4(%esi,%ebx,4)
40d05c:	8a 46 43             	mov    0x43(%esi),%al
40d05f:	8a c8                	mov    %al,%cl
40d061:	fe c1                	inc    %cl
40d063:	84 c0                	test   %al,%al
40d065:	8b 45 08             	mov    0x8(%ebp),%eax
40d068:	88 4e 43             	mov    %cl,0x43(%esi)
40d06b:	75 03                	jne    0x40d070
40d06d:	09 78 04             	or     %edi,0x4(%eax)
40d070:	ba 00 00 00 80       	mov    $0x80000000,%edx
40d075:	8b cb                	mov    %ebx,%ecx
40d077:	d3 ea                	shr    %cl,%edx
40d079:	f7 d2                	not    %edx
40d07b:	21 50 08             	and    %edx,0x8(%eax)
40d07e:	8b c3                	mov    %ebx,%eax
40d080:	5f                   	pop    %edi
40d081:	5e                   	pop    %esi
40d082:	5b                   	pop    %ebx
40d083:	c9                   	leave
40d084:	c3                   	ret
40d085:	55                   	push   %ebp
40d086:	8b ec                	mov    %esp,%ebp
40d088:	83 ec 0c             	sub    $0xc,%esp
40d08b:	8b 4d 08             	mov    0x8(%ebp),%ecx
40d08e:	8b 41 10             	mov    0x10(%ecx),%eax
40d091:	53                   	push   %ebx
40d092:	56                   	push   %esi
40d093:	8b 75 10             	mov    0x10(%ebp),%esi
40d096:	57                   	push   %edi
40d097:	8b 7d 0c             	mov    0xc(%ebp),%edi
40d09a:	8b d7                	mov    %edi,%edx
40d09c:	2b 51 0c             	sub    0xc(%ecx),%edx
40d09f:	83 c6 17             	add    $0x17,%esi
40d0a2:	c1 ea 0f             	shr    $0xf,%edx
40d0a5:	8b ca                	mov    %edx,%ecx
40d0a7:	69 c9 04 02 00 00    	imul   $0x204,%ecx,%ecx
40d0ad:	8d 8c 01 44 01 00 00 	lea    0x144(%ecx,%eax,1),%ecx
40d0b4:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40d0b7:	8b 4f fc             	mov    -0x4(%edi),%ecx
40d0ba:	83 e6 f0             	and    $0xfffffff0,%esi
40d0bd:	49                   	dec    %ecx
40d0be:	3b f1                	cmp    %ecx,%esi
40d0c0:	8d 7c 39 fc          	lea    -0x4(%ecx,%edi,1),%edi
40d0c4:	8b 1f                	mov    (%edi),%ebx
40d0c6:	89 4d 10             	mov    %ecx,0x10(%ebp)
40d0c9:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40d0cc:	0f 8e 55 01 00 00    	jle    0x40d227
40d0d2:	f6 c3 01             	test   $0x1,%bl
40d0d5:	0f 85 45 01 00 00    	jne    0x40d220
40d0db:	03 d9                	add    %ecx,%ebx
40d0dd:	3b f3                	cmp    %ebx,%esi
40d0df:	0f 8f 3b 01 00 00    	jg     0x40d220
40d0e5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d0e8:	c1 f9 04             	sar    $0x4,%ecx
40d0eb:	49                   	dec    %ecx
40d0ec:	83 f9 3f             	cmp    $0x3f,%ecx
40d0ef:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40d0f2:	76 06                	jbe    0x40d0fa
40d0f4:	6a 3f                	push   $0x3f
40d0f6:	59                   	pop    %ecx
40d0f7:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40d0fa:	8b 5f 04             	mov    0x4(%edi),%ebx
40d0fd:	3b 5f 08             	cmp    0x8(%edi),%ebx
40d100:	75 43                	jne    0x40d145
40d102:	83 f9 20             	cmp    $0x20,%ecx
40d105:	bb 00 00 00 80       	mov    $0x80000000,%ebx
40d10a:	73 1a                	jae    0x40d126
40d10c:	d3 eb                	shr    %cl,%ebx
40d10e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40d111:	8d 4c 01 04          	lea    0x4(%ecx,%eax,1),%ecx
40d115:	f7 d3                	not    %ebx
40d117:	21 5c 90 44          	and    %ebx,0x44(%eax,%edx,4)
40d11b:	fe 09                	decb   (%ecx)
40d11d:	75 26                	jne    0x40d145
40d11f:	8b 4d 08             	mov    0x8(%ebp),%ecx
40d122:	21 19                	and    %ebx,(%ecx)
40d124:	eb 1f                	jmp    0x40d145
40d126:	83 c1 e0             	add    $0xffffffe0,%ecx
40d129:	d3 eb                	shr    %cl,%ebx
40d12b:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40d12e:	8d 4c 01 04          	lea    0x4(%ecx,%eax,1),%ecx
40d132:	f7 d3                	not    %ebx
40d134:	21 9c 90 c4 00 00 00 	and    %ebx,0xc4(%eax,%edx,4)
40d13b:	fe 09                	decb   (%ecx)
40d13d:	75 06                	jne    0x40d145
40d13f:	8b 4d 08             	mov    0x8(%ebp),%ecx
40d142:	21 59 04             	and    %ebx,0x4(%ecx)
40d145:	8b 4f 08             	mov    0x8(%edi),%ecx
40d148:	8b 5f 04             	mov    0x4(%edi),%ebx
40d14b:	89 59 04             	mov    %ebx,0x4(%ecx)
40d14e:	8b 4f 04             	mov    0x4(%edi),%ecx
40d151:	8b 7f 08             	mov    0x8(%edi),%edi
40d154:	89 79 08             	mov    %edi,0x8(%ecx)
40d157:	8b 4d 10             	mov    0x10(%ebp),%ecx
40d15a:	2b ce                	sub    %esi,%ecx
40d15c:	01 4d fc             	add    %ecx,-0x4(%ebp)
40d15f:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40d163:	0f 8e a5 00 00 00    	jle    0x40d20e
40d169:	8b 7d fc             	mov    -0x4(%ebp),%edi
40d16c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40d16f:	c1 ff 04             	sar    $0x4,%edi
40d172:	4f                   	dec    %edi
40d173:	83 ff 3f             	cmp    $0x3f,%edi
40d176:	8d 4c 31 fc          	lea    -0x4(%ecx,%esi,1),%ecx
40d17a:	76 03                	jbe    0x40d17f
40d17c:	6a 3f                	push   $0x3f
40d17e:	5f                   	pop    %edi
40d17f:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40d182:	8d 1c fb             	lea    (%ebx,%edi,8),%ebx
40d185:	89 5d 10             	mov    %ebx,0x10(%ebp)
40d188:	8b 5b 04             	mov    0x4(%ebx),%ebx
40d18b:	89 59 04             	mov    %ebx,0x4(%ecx)
40d18e:	8b 5d 10             	mov    0x10(%ebp),%ebx
40d191:	89 59 08             	mov    %ebx,0x8(%ecx)
40d194:	89 4b 04             	mov    %ecx,0x4(%ebx)
40d197:	8b 59 04             	mov    0x4(%ecx),%ebx
40d19a:	89 4b 08             	mov    %ecx,0x8(%ebx)
40d19d:	8b 59 04             	mov    0x4(%ecx),%ebx
40d1a0:	3b 59 08             	cmp    0x8(%ecx),%ebx
40d1a3:	75 57                	jne    0x40d1fc
40d1a5:	8a 4c 07 04          	mov    0x4(%edi,%eax,1),%cl
40d1a9:	88 4d 13             	mov    %cl,0x13(%ebp)
40d1ac:	fe c1                	inc    %cl
40d1ae:	83 ff 20             	cmp    $0x20,%edi
40d1b1:	88 4c 07 04          	mov    %cl,0x4(%edi,%eax,1)
40d1b5:	73 1c                	jae    0x40d1d3
40d1b7:	80 7d 13 00          	cmpb   $0x0,0x13(%ebp)
40d1bb:	75 0e                	jne    0x40d1cb
40d1bd:	8b cf                	mov    %edi,%ecx
40d1bf:	bb 00 00 00 80       	mov    $0x80000000,%ebx
40d1c4:	d3 eb                	shr    %cl,%ebx
40d1c6:	8b 4d 08             	mov    0x8(%ebp),%ecx
40d1c9:	09 19                	or     %ebx,(%ecx)
40d1cb:	8d 44 90 44          	lea    0x44(%eax,%edx,4),%eax
40d1cf:	8b cf                	mov    %edi,%ecx
40d1d1:	eb 20                	jmp    0x40d1f3
40d1d3:	80 7d 13 00          	cmpb   $0x0,0x13(%ebp)
40d1d7:	75 10                	jne    0x40d1e9
40d1d9:	8d 4f e0             	lea    -0x20(%edi),%ecx
40d1dc:	bb 00 00 00 80       	mov    $0x80000000,%ebx
40d1e1:	d3 eb                	shr    %cl,%ebx
40d1e3:	8b 4d 08             	mov    0x8(%ebp),%ecx
40d1e6:	09 59 04             	or     %ebx,0x4(%ecx)
40d1e9:	8d 84 90 c4 00 00 00 	lea    0xc4(%eax,%edx,4),%eax
40d1f0:	8d 4f e0             	lea    -0x20(%edi),%ecx
40d1f3:	ba 00 00 00 80       	mov    $0x80000000,%edx
40d1f8:	d3 ea                	shr    %cl,%edx
40d1fa:	09 10                	or     %edx,(%eax)
40d1fc:	8b 55 0c             	mov    0xc(%ebp),%edx
40d1ff:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d202:	8d 44 32 fc          	lea    -0x4(%edx,%esi,1),%eax
40d206:	89 08                	mov    %ecx,(%eax)
40d208:	89 4c 01 fc          	mov    %ecx,-0x4(%ecx,%eax,1)
40d20c:	eb 03                	jmp    0x40d211
40d20e:	8b 55 0c             	mov    0xc(%ebp),%edx
40d211:	8d 46 01             	lea    0x1(%esi),%eax
40d214:	89 42 fc             	mov    %eax,-0x4(%edx)
40d217:	89 44 32 f8          	mov    %eax,-0x8(%edx,%esi,1)
40d21b:	e9 3c 01 00 00       	jmp    0x40d35c
40d220:	33 c0                	xor    %eax,%eax
40d222:	e9 38 01 00 00       	jmp    0x40d35f
40d227:	0f 8d 2f 01 00 00    	jge    0x40d35c
40d22d:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40d230:	29 75 10             	sub    %esi,0x10(%ebp)
40d233:	8d 4e 01             	lea    0x1(%esi),%ecx
40d236:	89 4b fc             	mov    %ecx,-0x4(%ebx)
40d239:	8d 5c 33 fc          	lea    -0x4(%ebx,%esi,1),%ebx
40d23d:	8b 75 10             	mov    0x10(%ebp),%esi
40d240:	c1 fe 04             	sar    $0x4,%esi
40d243:	4e                   	dec    %esi
40d244:	83 fe 3f             	cmp    $0x3f,%esi
40d247:	89 5d 0c             	mov    %ebx,0xc(%ebp)
40d24a:	89 4b fc             	mov    %ecx,-0x4(%ebx)
40d24d:	76 03                	jbe    0x40d252
40d24f:	6a 3f                	push   $0x3f
40d251:	5e                   	pop    %esi
40d252:	f6 45 fc 01          	testb  $0x1,-0x4(%ebp)
40d256:	0f 85 80 00 00 00    	jne    0x40d2dc
40d25c:	8b 75 fc             	mov    -0x4(%ebp),%esi
40d25f:	c1 fe 04             	sar    $0x4,%esi
40d262:	4e                   	dec    %esi
40d263:	83 fe 3f             	cmp    $0x3f,%esi
40d266:	76 03                	jbe    0x40d26b
40d268:	6a 3f                	push   $0x3f
40d26a:	5e                   	pop    %esi
40d26b:	8b 4f 04             	mov    0x4(%edi),%ecx
40d26e:	3b 4f 08             	cmp    0x8(%edi),%ecx
40d271:	75 42                	jne    0x40d2b5
40d273:	83 fe 20             	cmp    $0x20,%esi
40d276:	bb 00 00 00 80       	mov    $0x80000000,%ebx
40d27b:	73 19                	jae    0x40d296
40d27d:	8b ce                	mov    %esi,%ecx
40d27f:	d3 eb                	shr    %cl,%ebx
40d281:	8d 74 06 04          	lea    0x4(%esi,%eax,1),%esi
40d285:	f7 d3                	not    %ebx
40d287:	21 5c 90 44          	and    %ebx,0x44(%eax,%edx,4)
40d28b:	fe 0e                	decb   (%esi)
40d28d:	75 23                	jne    0x40d2b2
40d28f:	8b 4d 08             	mov    0x8(%ebp),%ecx
40d292:	21 19                	and    %ebx,(%ecx)
40d294:	eb 1c                	jmp    0x40d2b2
40d296:	8d 4e e0             	lea    -0x20(%esi),%ecx
40d299:	d3 eb                	shr    %cl,%ebx
40d29b:	8d 4c 06 04          	lea    0x4(%esi,%eax,1),%ecx
40d29f:	f7 d3                	not    %ebx
40d2a1:	21 9c 90 c4 00 00 00 	and    %ebx,0xc4(%eax,%edx,4)
40d2a8:	fe 09                	decb   (%ecx)
40d2aa:	75 06                	jne    0x40d2b2
40d2ac:	8b 4d 08             	mov    0x8(%ebp),%ecx
40d2af:	21 59 04             	and    %ebx,0x4(%ecx)
40d2b2:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40d2b5:	8b 4f 08             	mov    0x8(%edi),%ecx
40d2b8:	8b 77 04             	mov    0x4(%edi),%esi
40d2bb:	89 71 04             	mov    %esi,0x4(%ecx)
40d2be:	8b 77 08             	mov    0x8(%edi),%esi
40d2c1:	8b 4f 04             	mov    0x4(%edi),%ecx
40d2c4:	89 71 08             	mov    %esi,0x8(%ecx)
40d2c7:	8b 75 10             	mov    0x10(%ebp),%esi
40d2ca:	03 75 fc             	add    -0x4(%ebp),%esi
40d2cd:	89 75 10             	mov    %esi,0x10(%ebp)
40d2d0:	c1 fe 04             	sar    $0x4,%esi
40d2d3:	4e                   	dec    %esi
40d2d4:	83 fe 3f             	cmp    $0x3f,%esi
40d2d7:	76 03                	jbe    0x40d2dc
40d2d9:	6a 3f                	push   $0x3f
40d2db:	5e                   	pop    %esi
40d2dc:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40d2df:	8d 0c f1             	lea    (%ecx,%esi,8),%ecx
40d2e2:	8b 79 04             	mov    0x4(%ecx),%edi
40d2e5:	89 4b 08             	mov    %ecx,0x8(%ebx)
40d2e8:	89 7b 04             	mov    %edi,0x4(%ebx)
40d2eb:	89 59 04             	mov    %ebx,0x4(%ecx)
40d2ee:	8b 4b 04             	mov    0x4(%ebx),%ecx
40d2f1:	89 59 08             	mov    %ebx,0x8(%ecx)
40d2f4:	8b 4b 04             	mov    0x4(%ebx),%ecx
40d2f7:	3b 4b 08             	cmp    0x8(%ebx),%ecx
40d2fa:	75 57                	jne    0x40d353
40d2fc:	8a 4c 06 04          	mov    0x4(%esi,%eax,1),%cl
40d300:	88 4d 0f             	mov    %cl,0xf(%ebp)
40d303:	fe c1                	inc    %cl
40d305:	83 fe 20             	cmp    $0x20,%esi
40d308:	88 4c 06 04          	mov    %cl,0x4(%esi,%eax,1)
40d30c:	73 1c                	jae    0x40d32a
40d30e:	80 7d 0f 00          	cmpb   $0x0,0xf(%ebp)
40d312:	75 0e                	jne    0x40d322
40d314:	8b ce                	mov    %esi,%ecx
40d316:	bf 00 00 00 80       	mov    $0x80000000,%edi
40d31b:	d3 ef                	shr    %cl,%edi
40d31d:	8b 4d 08             	mov    0x8(%ebp),%ecx
40d320:	09 39                	or     %edi,(%ecx)
40d322:	8d 44 90 44          	lea    0x44(%eax,%edx,4),%eax
40d326:	8b ce                	mov    %esi,%ecx
40d328:	eb 20                	jmp    0x40d34a
40d32a:	80 7d 0f 00          	cmpb   $0x0,0xf(%ebp)
40d32e:	75 10                	jne    0x40d340
40d330:	8d 4e e0             	lea    -0x20(%esi),%ecx
40d333:	bf 00 00 00 80       	mov    $0x80000000,%edi
40d338:	d3 ef                	shr    %cl,%edi
40d33a:	8b 4d 08             	mov    0x8(%ebp),%ecx
40d33d:	09 79 04             	or     %edi,0x4(%ecx)
40d340:	8d 84 90 c4 00 00 00 	lea    0xc4(%eax,%edx,4),%eax
40d347:	8d 4e e0             	lea    -0x20(%esi),%ecx
40d34a:	ba 00 00 00 80       	mov    $0x80000000,%edx
40d34f:	d3 ea                	shr    %cl,%edx
40d351:	09 10                	or     %edx,(%eax)
40d353:	8b 45 10             	mov    0x10(%ebp),%eax
40d356:	89 03                	mov    %eax,(%ebx)
40d358:	89 44 18 fc          	mov    %eax,-0x4(%eax,%ebx,1)
40d35c:	33 c0                	xor    %eax,%eax
40d35e:	40                   	inc    %eax
40d35f:	5f                   	pop    %edi
40d360:	5e                   	pop    %esi
40d361:	5b                   	pop    %ebx
40d362:	c9                   	leave
40d363:	c3                   	ret
40d364:	55                   	push   %ebp
40d365:	8b ec                	mov    %esp,%ebp
40d367:	83 ec 14             	sub    $0x14,%esp
40d36a:	a1 d8 e5 41 00       	mov    0x41e5d8,%eax
40d36f:	8b 4d 08             	mov    0x8(%ebp),%ecx
40d372:	6b c0 14             	imul   $0x14,%eax,%eax
40d375:	03 05 dc e5 41 00    	add    0x41e5dc,%eax
40d37b:	83 c1 17             	add    $0x17,%ecx
40d37e:	83 e1 f0             	and    $0xfffffff0,%ecx
40d381:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40d384:	c1 f9 04             	sar    $0x4,%ecx
40d387:	53                   	push   %ebx
40d388:	49                   	dec    %ecx
40d389:	83 f9 20             	cmp    $0x20,%ecx
40d38c:	56                   	push   %esi
40d38d:	57                   	push   %edi
40d38e:	7d 0b                	jge    0x40d39b
40d390:	83 ce ff             	or     $0xffffffff,%esi
40d393:	d3 ee                	shr    %cl,%esi
40d395:	83 4d f8 ff          	orl    $0xffffffff,-0x8(%ebp)
40d399:	eb 0d                	jmp    0x40d3a8
40d39b:	83 c1 e0             	add    $0xffffffe0,%ecx
40d39e:	83 ca ff             	or     $0xffffffff,%edx
40d3a1:	33 f6                	xor    %esi,%esi
40d3a3:	d3 ea                	shr    %cl,%edx
40d3a5:	89 55 f8             	mov    %edx,-0x8(%ebp)
40d3a8:	8b 0d e4 e5 41 00    	mov    0x41e5e4,%ecx
40d3ae:	8b d9                	mov    %ecx,%ebx
40d3b0:	eb 11                	jmp    0x40d3c3
40d3b2:	8b 53 04             	mov    0x4(%ebx),%edx
40d3b5:	8b 3b                	mov    (%ebx),%edi
40d3b7:	23 55 f8             	and    -0x8(%ebp),%edx
40d3ba:	23 fe                	and    %esi,%edi
40d3bc:	0b d7                	or     %edi,%edx
40d3be:	75 0a                	jne    0x40d3ca
40d3c0:	83 c3 14             	add    $0x14,%ebx
40d3c3:	3b d8                	cmp    %eax,%ebx
40d3c5:	89 5d 08             	mov    %ebx,0x8(%ebp)
40d3c8:	72 e8                	jb     0x40d3b2
40d3ca:	3b d8                	cmp    %eax,%ebx
40d3cc:	75 7f                	jne    0x40d44d
40d3ce:	8b 1d dc e5 41 00    	mov    0x41e5dc,%ebx
40d3d4:	eb 11                	jmp    0x40d3e7
40d3d6:	8b 53 04             	mov    0x4(%ebx),%edx
40d3d9:	8b 3b                	mov    (%ebx),%edi
40d3db:	23 55 f8             	and    -0x8(%ebp),%edx
40d3de:	23 fe                	and    %esi,%edi
40d3e0:	0b d7                	or     %edi,%edx
40d3e2:	75 0a                	jne    0x40d3ee
40d3e4:	83 c3 14             	add    $0x14,%ebx
40d3e7:	3b d9                	cmp    %ecx,%ebx
40d3e9:	89 5d 08             	mov    %ebx,0x8(%ebp)
40d3ec:	72 e8                	jb     0x40d3d6
40d3ee:	3b d9                	cmp    %ecx,%ebx
40d3f0:	75 5b                	jne    0x40d44d
40d3f2:	eb 0c                	jmp    0x40d400
40d3f4:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)
40d3f8:	75 0a                	jne    0x40d404
40d3fa:	83 c3 14             	add    $0x14,%ebx
40d3fd:	89 5d 08             	mov    %ebx,0x8(%ebp)
40d400:	3b d8                	cmp    %eax,%ebx
40d402:	72 f0                	jb     0x40d3f4
40d404:	3b d8                	cmp    %eax,%ebx
40d406:	75 31                	jne    0x40d439
40d408:	8b 1d dc e5 41 00    	mov    0x41e5dc,%ebx
40d40e:	eb 09                	jmp    0x40d419
40d410:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)
40d414:	75 0a                	jne    0x40d420
40d416:	83 c3 14             	add    $0x14,%ebx
40d419:	3b d9                	cmp    %ecx,%ebx
40d41b:	89 5d 08             	mov    %ebx,0x8(%ebp)
40d41e:	72 f0                	jb     0x40d410