41f0d8:	8b 59 04             	mov    0x4(%ecx),%ebx
41f0db:	89 4b 08             	mov    %ecx,0x8(%ebx)
41f0de:	8b 59 04             	mov    0x4(%ecx),%ebx
41f0e1:	3b 59 08             	cmp    0x8(%ecx),%ebx
41f0e4:	75 57                	jne    0x41f13d
41f0e6:	8a 4c 07 04          	mov    0x4(%edi,%eax,1),%cl
41f0ea:	88 4d 13             	mov    %cl,0x13(%ebp)
41f0ed:	fe c1                	inc    %cl
41f0ef:	88 4c 07 04          	mov    %cl,0x4(%edi,%eax,1)
41f0f3:	83 ff 20             	cmp    $0x20,%edi
41f0f6:	73 1c                	jae    0x41f114
41f0f8:	80 7d 13 00          	cmpb   $0x0,0x13(%ebp)
41f0fc:	75 0e                	jne    0x41f10c
41f0fe:	8b cf                	mov    %edi,%ecx
41f100:	bb 00 00 00 80       	mov    $0x80000000,%ebx
41f105:	d3 eb                	shr    %cl,%ebx
41f107:	8b 4d 08             	mov    0x8(%ebp),%ecx
41f10a:	09 19                	or     %ebx,(%ecx)
41f10c:	8d 44 90 44          	lea    0x44(%eax,%edx,4),%eax
41f110:	8b cf                	mov    %edi,%ecx
41f112:	eb 20                	jmp    0x41f134
41f114:	80 7d 13 00          	cmpb   $0x0,0x13(%ebp)
41f118:	75 10                	jne    0x41f12a
41f11a:	8d 4f e0             	lea    -0x20(%edi),%ecx
41f11d:	bb 00 00 00 80       	mov    $0x80000000,%ebx
41f122:	d3 eb                	shr    %cl,%ebx
41f124:	8b 4d 08             	mov    0x8(%ebp),%ecx
41f127:	09 59 04             	or     %ebx,0x4(%ecx)
41f12a:	8d 84 90 c4 00 00 00 	lea    0xc4(%eax,%edx,4),%eax
41f131:	8d 4f e0             	lea    -0x20(%edi),%ecx
41f134:	ba 00 00 00 80       	mov    $0x80000000,%edx
41f139:	d3 ea                	shr    %cl,%edx
41f13b:	09 10                	or     %edx,(%eax)
41f13d:	8b 55 0c             	mov    0xc(%ebp),%edx
41f140:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41f143:	8d 44 32 fc          	lea    -0x4(%edx,%esi,1),%eax
41f147:	89 08                	mov    %ecx,(%eax)
41f149:	89 4c 01 fc          	mov    %ecx,-0x4(%ecx,%eax,1)
41f14d:	eb 03                	jmp    0x41f152
41f14f:	8b 55 0c             	mov    0xc(%ebp),%edx
41f152:	8d 46 01             	lea    0x1(%esi),%eax
41f155:	89 42 fc             	mov    %eax,-0x4(%edx)
41f158:	89 44 32 f8          	mov    %eax,-0x8(%edx,%esi,1)
41f15c:	e9 3c 01 00 00       	jmp    0x41f29d
41f161:	33 c0                	xor    %eax,%eax
41f163:	e9 38 01 00 00       	jmp    0x41f2a0
41f168:	0f 8d 2f 01 00 00    	jge    0x41f29d
41f16e:	8b 5d 0c             	mov    0xc(%ebp),%ebx
41f171:	29 75 10             	sub    %esi,0x10(%ebp)
41f174:	8d 4e 01             	lea    0x1(%esi),%ecx
41f177:	89 4b fc             	mov    %ecx,-0x4(%ebx)
41f17a:	8d 5c 33 fc          	lea    -0x4(%ebx,%esi,1),%ebx
41f17e:	8b 75 10             	mov    0x10(%ebp),%esi
41f181:	c1 fe 04             	sar    $0x4,%esi
41f184:	4e                   	dec    %esi
41f185:	89 5d 0c             	mov    %ebx,0xc(%ebp)
41f188:	89 4b fc             	mov    %ecx,-0x4(%ebx)
41f18b:	83 fe 3f             	cmp    $0x3f,%esi
41f18e:	76 03                	jbe    0x41f193
41f190:	6a 3f                	push   $0x3f
41f192:	5e                   	pop    %esi
41f193:	f6 45 fc 01          	testb  $0x1,-0x4(%ebp)
41f197:	0f 85 80 00 00 00    	jne    0x41f21d
41f19d:	8b 75 fc             	mov    -0x4(%ebp),%esi
41f1a0:	c1 fe 04             	sar    $0x4,%esi
41f1a3:	4e                   	dec    %esi
41f1a4:	83 fe 3f             	cmp    $0x3f,%esi
41f1a7:	76 03                	jbe    0x41f1ac
41f1a9:	6a 3f                	push   $0x3f
41f1ab:	5e                   	pop    %esi
41f1ac:	8b 4f 04             	mov    0x4(%edi),%ecx
41f1af:	3b 4f 08             	cmp    0x8(%edi),%ecx
41f1b2:	75 42                	jne    0x41f1f6
41f1b4:	bb 00 00 00 80       	mov    $0x80000000,%ebx
41f1b9:	83 fe 20             	cmp    $0x20,%esi
41f1bc:	73 19                	jae    0x41f1d7
41f1be:	8b ce                	mov    %esi,%ecx
41f1c0:	d3 eb                	shr    %cl,%ebx
41f1c2:	8d 74 06 04          	lea    0x4(%esi,%eax,1),%esi
41f1c6:	f7 d3                	not    %ebx
41f1c8:	21 5c 90 44          	and    %ebx,0x44(%eax,%edx,4)
41f1cc:	fe 0e                	decb   (%esi)
41f1ce:	75 23                	jne    0x41f1f3
41f1d0:	8b 4d 08             	mov    0x8(%ebp),%ecx
41f1d3:	21 19                	and    %ebx,(%ecx)
41f1d5:	eb 1c                	jmp    0x41f1f3
41f1d7:	8d 4e e0             	lea    -0x20(%esi),%ecx
41f1da:	d3 eb                	shr    %cl,%ebx
41f1dc:	8d 4c 06 04          	lea    0x4(%esi,%eax,1),%ecx
41f1e0:	f7 d3                	not    %ebx
41f1e2:	21 9c 90 c4 00 00 00 	and    %ebx,0xc4(%eax,%edx,4)
41f1e9:	fe 09                	decb   (%ecx)
41f1eb:	75 06                	jne    0x41f1f3
41f1ed:	8b 4d 08             	mov    0x8(%ebp),%ecx
41f1f0:	21 59 04             	and    %ebx,0x4(%ecx)
41f1f3:	8b 5d 0c             	mov    0xc(%ebp),%ebx
41f1f6:	8b 4f 08             	mov    0x8(%edi),%ecx
41f1f9:	8b 77 04             	mov    0x4(%edi),%esi
41f1fc:	89 71 04             	mov    %esi,0x4(%ecx)
41f1ff:	8b 77 08             	mov    0x8(%edi),%esi
41f202:	8b 4f 04             	mov    0x4(%edi),%ecx
41f205:	89 71 08             	mov    %esi,0x8(%ecx)
41f208:	8b 75 10             	mov    0x10(%ebp),%esi
41f20b:	03 75 fc             	add    -0x4(%ebp),%esi
41f20e:	89 75 10             	mov    %esi,0x10(%ebp)
41f211:	c1 fe 04             	sar    $0x4,%esi
41f214:	4e                   	dec    %esi
41f215:	83 fe 3f             	cmp    $0x3f,%esi
41f218:	76 03                	jbe    0x41f21d
41f21a:	6a 3f                	push   $0x3f
41f21c:	5e                   	pop    %esi
41f21d:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41f220:	8d 0c f1             	lea    (%ecx,%esi,8),%ecx
41f223:	8b 79 04             	mov    0x4(%ecx),%edi
41f226:	89 4b 08             	mov    %ecx,0x8(%ebx)
41f229:	89 7b 04             	mov    %edi,0x4(%ebx)
41f22c:	89 59 04             	mov    %ebx,0x4(%ecx)
41f22f:	8b 4b 04             	mov    0x4(%ebx),%ecx
41f232:	89 59 08             	mov    %ebx,0x8(%ecx)
41f235:	8b 4b 04             	mov    0x4(%ebx),%ecx
41f238:	3b 4b 08             	cmp    0x8(%ebx),%ecx
41f23b:	75 57                	jne    0x41f294
41f23d:	8a 4c 06 04          	mov    0x4(%esi,%eax,1),%cl
41f241:	88 4d 0f             	mov    %cl,0xf(%ebp)
41f244:	fe c1                	inc    %cl
41f246:	88 4c 06 04          	mov    %cl,0x4(%esi,%eax,1)
41f24a:	83 fe 20             	cmp    $0x20,%esi
41f24d:	73 1c                	jae    0x41f26b
41f24f:	80 7d 0f 00          	cmpb   $0x0,0xf(%ebp)
41f253:	75 0e                	jne    0x41f263
41f255:	8b ce                	mov    %esi,%ecx
41f257:	bf 00 00 00 80       	mov    $0x80000000,%edi
41f25c:	d3 ef                	shr    %cl,%edi
41f25e:	8b 4d 08             	mov    0x8(%ebp),%ecx
41f261:	09 39                	or     %edi,(%ecx)
41f263:	8d 44 90 44          	lea    0x44(%eax,%edx,4),%eax
41f267:	8b ce                	mov    %esi,%ecx
41f269:	eb 20                	jmp    0x41f28b
41f26b:	80 7d 0f 00          	cmpb   $0x0,0xf(%ebp)
41f26f:	75 10                	jne    0x41f281
41f271:	8d 4e e0             	lea    -0x20(%esi),%ecx
41f274:	bf 00 00 00 80       	mov    $0x80000000,%edi
41f279:	d3 ef                	shr    %cl,%edi
41f27b:	8b 4d 08             	mov    0x8(%ebp),%ecx
41f27e:	09 79 04             	or     %edi,0x4(%ecx)
41f281:	8d 84 90 c4 00 00 00 	lea    0xc4(%eax,%edx,4),%eax
41f288:	8d 4e e0             	lea    -0x20(%esi),%ecx
41f28b:	ba 00 00 00 80       	mov    $0x80000000,%edx
41f290:	d3 ea                	shr    %cl,%edx
41f292:	09 10                	or     %edx,(%eax)
41f294:	8b 45 10             	mov    0x10(%ebp),%eax
41f297:	89 03                	mov    %eax,(%ebx)
41f299:	89 44 18 fc          	mov    %eax,-0x4(%eax,%ebx,1)
41f29d:	33 c0                	xor    %eax,%eax
41f29f:	40                   	inc    %eax
41f2a0:	5f                   	pop    %edi
41f2a1:	5e                   	pop    %esi
41f2a2:	5b                   	pop    %ebx
41f2a3:	c9                   	leave
41f2a4:	c3                   	ret
41f2a5:	8b ff                	mov    %edi,%edi
41f2a7:	55                   	push   %ebp
41f2a8:	8b ec                	mov    %esp,%ebp
41f2aa:	83 ec 14             	sub    $0x14,%esp
41f2ad:	a1 dc 08 45 00       	mov    0x4508dc,%eax
41f2b2:	8b 4d 08             	mov    0x8(%ebp),%ecx
41f2b5:	6b c0 14             	imul   $0x14,%eax,%eax
41f2b8:	03 05 e0 08 45 00    	add    0x4508e0,%eax
41f2be:	83 c1 17             	add    $0x17,%ecx
41f2c1:	83 e1 f0             	and    $0xfffffff0,%ecx
41f2c4:	89 4d f0             	mov    %ecx,-0x10(%ebp)
41f2c7:	c1 f9 04             	sar    $0x4,%ecx
41f2ca:	53                   	push   %ebx
41f2cb:	49                   	dec    %ecx
41f2cc:	83 f9 20             	cmp    $0x20,%ecx
41f2cf:	56                   	push   %esi
41f2d0:	57                   	push   %edi
41f2d1:	7d 0b                	jge    0x41f2de
41f2d3:	83 ce ff             	or     $0xffffffff,%esi
41f2d6:	d3 ee                	shr    %cl,%esi
41f2d8:	83 4d f8 ff          	orl    $0xffffffff,-0x8(%ebp)
41f2dc:	eb 0d                	jmp    0x41f2eb
41f2de:	83 c1 e0             	add    $0xffffffe0,%ecx
41f2e1:	83 ca ff             	or     $0xffffffff,%edx
41f2e4:	33 f6                	xor    %esi,%esi
41f2e6:	d3 ea                	shr    %cl,%edx
41f2e8:	89 55 f8             	mov    %edx,-0x8(%ebp)
41f2eb:	8b 0d e8 08 45 00    	mov    0x4508e8,%ecx
41f2f1:	8b d9                	mov    %ecx,%ebx
41f2f3:	eb 11                	jmp    0x41f306
41f2f5:	8b 53 04             	mov    0x4(%ebx),%edx
41f2f8:	8b 3b                	mov    (%ebx),%edi
41f2fa:	23 55 f8             	and    -0x8(%ebp),%edx
41f2fd:	23 fe                	and    %esi,%edi
41f2ff:	0b d7                	or     %edi,%edx
41f301:	75 0a                	jne    0x41f30d
41f303:	83 c3 14             	add    $0x14,%ebx
41f306:	89 5d 08             	mov    %ebx,0x8(%ebp)
41f309:	3b d8                	cmp    %eax,%ebx
41f30b:	72 e8                	jb     0x41f2f5
41f30d:	3b d8                	cmp    %eax,%ebx
41f30f:	75 7f                	jne    0x41f390
41f311:	8b 1d e0 08 45 00    	mov    0x4508e0,%ebx
41f317:	eb 11                	jmp    0x41f32a
41f319:	8b 53 04             	mov    0x4(%ebx),%edx
41f31c:	8b 3b                	mov    (%ebx),%edi
41f31e:	23 55 f8             	and    -0x8(%ebp),%edx
41f321:	23 fe                	and    %esi,%edi
41f323:	0b d7                	or     %edi,%edx
41f325:	75 0a                	jne    0x41f331
41f327:	83 c3 14             	add    $0x14,%ebx
41f32a:	89 5d 08             	mov    %ebx,0x8(%ebp)
41f32d:	3b d9                	cmp    %ecx,%ebx
41f32f:	72 e8                	jb     0x41f319
41f331:	3b d9                	cmp    %ecx,%ebx
41f333:	75 5b                	jne    0x41f390
41f335:	eb 0c                	jmp    0x41f343
41f337:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)
41f33b:	75 0a                	jne    0x41f347
41f33d:	83 c3 14             	add    $0x14,%ebx
41f340:	89 5d 08             	mov    %ebx,0x8(%ebp)
41f343:	3b d8                	cmp    %eax,%ebx
41f345:	72 f0                	jb     0x41f337
41f347:	3b d8                	cmp    %eax,%ebx
41f349:	75 31                	jne    0x41f37c
41f34b:	8b 1d e0 08 45 00    	mov    0x4508e0,%ebx
41f351:	eb 09                	jmp    0x41f35c
41f353:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)
41f357:	75 0a                	jne    0x41f363
41f359:	83 c3 14             	add    $0x14,%ebx
41f35c:	89 5d 08             	mov    %ebx,0x8(%ebp)
41f35f:	3b d9                	cmp    %ecx,%ebx
41f361:	72 f0                	jb     0x41f353
41f363:	3b d9                	cmp    %ecx,%ebx
41f365:	75 15                	jne    0x41f37c
41f367:	e8 a0 fa ff ff       	call   0x41ee0c
41f36c:	8b d8                	mov    %eax,%ebx
41f36e:	89 5d 08             	mov    %ebx,0x8(%ebp)
41f371:	85 db                	test   %ebx,%ebx
41f373:	75 07                	jne    0x41f37c
41f375:	33 c0                	xor    %eax,%eax
41f377:	e9 09 02 00 00       	jmp    0x41f585
41f37c:	53                   	push   %ebx
41f37d:	e8 3a fb ff ff       	call   0x41eebc
41f382:	59                   	pop    %ecx
41f383:	8b 4b 10             	mov    0x10(%ebx),%ecx
41f386:	89 01                	mov    %eax,(%ecx)
41f388:	8b 43 10             	mov    0x10(%ebx),%eax
41f38b:	83 38 ff             	cmpl   $0xffffffff,(%eax)
41f38e:	74 e5                	je     0x41f375
41f390:	89 1d e8 08 45 00    	mov    %ebx,0x4508e8
41f396:	8b 43 10             	mov    0x10(%ebx),%eax
41f399:	8b 10                	mov    (%eax),%edx
41f39b:	89 55 fc             	mov    %edx,-0x4(%ebp)
41f39e:	83 fa ff             	cmp    $0xffffffff,%edx
41f3a1:	74 14                	je     0x41f3b7
41f3a3:	8b 8c 90 c4 00 00 00 	mov    0xc4(%eax,%edx,4),%ecx
41f3aa:	8b 7c 90 44          	mov    0x44(%eax,%edx,4),%edi
41f3ae:	23 4d f8             	and    -0x8(%ebp),%ecx
41f3b1:	23 fe                	and    %esi,%edi
41f3b3:	0b cf                	or     %edi,%ecx
41f3b5:	75 29                	jne    0x41f3e0
41f3b7:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41f3bb:	8b 90 c4 00 00 00    	mov    0xc4(%eax),%edx
41f3c1:	8d 48 44             	lea    0x44(%eax),%ecx
41f3c4:	8b 39                	mov    (%ecx),%edi
41f3c6:	23 55 f8             	and    -0x8(%ebp),%edx
41f3c9:	23 fe                	and    %esi,%edi
41f3cb:	0b d7                	or     %edi,%edx
41f3cd:	75 0e                	jne    0x41f3dd
41f3cf:	ff 45 fc             	incl   -0x4(%ebp)
41f3d2:	8b 91 84 00 00 00    	mov    0x84(%ecx),%edx
41f3d8:	83 c1 04             	add    $0x4,%ecx
41f3db:	eb e7                	jmp    0x41f3c4
41f3dd:	8b 55 fc             	mov    -0x4(%ebp),%edx
41f3e0:	8b ca                	mov    %edx,%ecx
41f3e2:	69 c9 04 02 00 00    	imul   $0x204,%ecx,%ecx
41f3e8:	8d 8c 01 44 01 00 00 	lea    0x144(%ecx,%eax,1),%ecx
41f3ef:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41f3f2:	8b 4c 90 44          	mov    0x44(%eax,%edx,4),%ecx
41f3f6:	33 ff                	xor    %edi,%edi
41f3f8:	23 ce                	and    %esi,%ecx
41f3fa:	75 12                	jne    0x41f40e
41f3fc:	8b 8c 90 c4 00 00 00 	mov    0xc4(%eax,%edx,4),%ecx
41f403:	23 4d f8             	and    -0x8(%ebp),%ecx
41f406:	6a 20                	push   $0x20
41f408:	5f                   	pop    %edi
41f409:	eb 03                	jmp    0x41f40e
41f40b:	03 c9                	add    %ecx,%ecx
41f40d:	47                   	inc    %edi
41f40e:	85 c9                	test   %ecx,%ecx
41f410:	7d f9                	jge    0x41f40b
41f412:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41f415:	8b 54 f9 04          	mov    0x4(%ecx,%edi,8),%edx
41f419:	8b 0a                	mov    (%edx),%ecx
41f41b:	2b 4d f0             	sub    -0x10(%ebp),%ecx
41f41e:	8b f1                	mov    %ecx,%esi
41f420:	c1 fe 04             	sar    $0x4,%esi
41f423:	4e                   	dec    %esi
41f424:	83 fe 3f             	cmp    $0x3f,%esi
41f427:	89 4d f8             	mov    %ecx,-0x8(%ebp)
41f42a:	7e 03                	jle    0x41f42f
41f42c:	6a 3f                	push   $0x3f
41f42e:	5e                   	pop    %esi
41f42f:	3b f7                	cmp    %edi,%esi
41f431:	0f 84 01 01 00 00    	je     0x41f538
41f437:	8b 4a 04             	mov    0x4(%edx),%ecx
41f43a:	3b 4a 08             	cmp    0x8(%edx),%ecx
41f43d:	75 5c                	jne    0x41f49b
41f43f:	83 ff 20             	cmp    $0x20,%edi
41f442:	bb 00 00 00 80       	mov    $0x80000000,%ebx
41f447:	7d 26                	jge    0x41f46f
41f449:	8b cf                	mov    %edi,%ecx
41f44b:	d3 eb                	shr    %cl,%ebx
41f44d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41f450:	8d 7c 38 04          	lea    0x4(%eax,%edi,1),%edi
41f454:	f7 d3                	not    %ebx
41f456:	89 5d ec             	mov    %ebx,-0x14(%ebp)
41f459:	23 5c 88 44          	and    0x44(%eax,%ecx,4),%ebx
41f45d:	89 5c 88 44          	mov    %ebx,0x44(%eax,%ecx,4)
41f461:	fe 0f                	decb   (%edi)
41f463:	75 33                	jne    0x41f498
41f465:	8b 4d ec             	mov    -0x14(%ebp),%ecx
41f468:	8b 5d 08             	mov    0x8(%ebp),%ebx
41f46b:	21 0b                	and    %ecx,(%ebx)
41f46d:	eb 2c                	jmp    0x41f49b
41f46f:	8d 4f e0             	lea    -0x20(%edi),%ecx
41f472:	d3 eb                	shr    %cl,%ebx
41f474:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41f477:	8d 8c 88 c4 00 00 00 	lea    0xc4(%eax,%ecx,4),%ecx
41f47e:	8d 7c 38 04          	lea    0x4(%eax,%edi,1),%edi
41f482:	f7 d3                	not    %ebx
41f484:	21 19                	and    %ebx,(%ecx)
41f486:	fe 0f                	decb   (%edi)
41f488:	89 5d ec             	mov    %ebx,-0x14(%ebp)
41f48b:	75 0b                	jne    0x41f498
41f48d:	8b 5d 08             	mov    0x8(%ebp),%ebx
41f490:	8b 4d ec             	mov    -0x14(%ebp),%ecx
41f493:	21 4b 04             	and    %ecx,0x4(%ebx)
41f496:	eb 03                	jmp    0x41f49b
41f498:	8b 5d 08             	mov    0x8(%ebp),%ebx
41f49b:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
41f49f:	8b 4a 08             	mov    0x8(%edx),%ecx
41f4a2:	8b 7a 04             	mov    0x4(%edx),%edi
41f4a5:	89 79 04             	mov    %edi,0x4(%ecx)
41f4a8:	8b 4a 04             	mov    0x4(%edx),%ecx
41f4ab:	8b 7a 08             	mov    0x8(%edx),%edi
41f4ae:	89 79 08             	mov    %edi,0x8(%ecx)
41f4b1:	0f 84 8d 00 00 00    	je     0x41f544
41f4b7:	8b 4d f4             	mov    -0xc(%ebp),%ecx