414fe3:	2b d7                	sub    %edi,%edx
414fe5:	3b ca                	cmp    %edx,%ecx
414fe7:	7c 22                	jl     0x41500b
414fe9:	8b 75 0c             	mov    0xc(%ebp),%esi
414fec:	41                   	inc    %ecx
414fed:	8d 34 be             	lea    (%esi,%edi,4),%esi
414ff0:	8d 0c 8b             	lea    (%ebx,%ecx,4),%ecx
414ff3:	83 c6 04             	add    $0x4,%esi
414ff6:	8b 3e                	mov    (%esi),%edi
414ff8:	3b 39                	cmp    (%ecx),%edi
414ffa:	75 0d                	jne    0x415009
414ffc:	48                   	dec    %eax
414ffd:	83 ee 04             	sub    $0x4,%esi
415000:	83 e9 04             	sub    $0x4,%ecx
415003:	3b c2                	cmp    %edx,%eax
415005:	7d ef                	jge    0x414ff6
415007:	eb 02                	jmp    0x41500b
415009:	73 01                	jae    0x41500c
41500b:	42                   	inc    %edx
41500c:	85 d2                	test   %edx,%edx
41500e:	0f 84 e9 02 00 00    	je     0x4152fd
415014:	8b 45 0c             	mov    0xc(%ebp),%eax
415017:	8b 5d cc             	mov    -0x34(%ebp),%ebx
41501a:	8b 34 98             	mov    (%eax,%ebx,4),%esi
41501d:	8b 4c 98 fc          	mov    -0x4(%eax,%ebx,4),%ecx
415021:	0f bd c6             	bsr    %esi,%eax
415024:	89 75 d0             	mov    %esi,-0x30(%ebp)
415027:	89 4d e0             	mov    %ecx,-0x20(%ebp)
41502a:	74 09                	je     0x415035
41502c:	bf 1f 00 00 00       	mov    $0x1f,%edi
415031:	2b f8                	sub    %eax,%edi
415033:	eb 05                	jmp    0x41503a
415035:	bf 20 00 00 00       	mov    $0x20,%edi
41503a:	b8 20 00 00 00       	mov    $0x20,%eax
41503f:	89 7d f4             	mov    %edi,-0xc(%ebp)
415042:	2b c7                	sub    %edi,%eax
415044:	89 45 d4             	mov    %eax,-0x2c(%ebp)
415047:	85 ff                	test   %edi,%edi
415049:	74 27                	je     0x415072
41504b:	8b c1                	mov    %ecx,%eax
41504d:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
415050:	d3 e8                	shr    %cl,%eax
415052:	8b cf                	mov    %edi,%ecx
415054:	d3 65 e0             	shll   %cl,-0x20(%ebp)
415057:	d3 e6                	shl    %cl,%esi
415059:	0b f0                	or     %eax,%esi
41505b:	89 75 d0             	mov    %esi,-0x30(%ebp)
41505e:	83 fb 02             	cmp    $0x2,%ebx
415061:	76 0f                	jbe    0x415072
415063:	8b 75 0c             	mov    0xc(%ebp),%esi
415066:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
415069:	8b 44 9e f8          	mov    -0x8(%esi,%ebx,4),%eax
41506d:	d3 e8                	shr    %cl,%eax
41506f:	09 45 e0             	or     %eax,-0x20(%ebp)
415072:	33 f6                	xor    %esi,%esi
415074:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
41507b:	83 c2 ff             	add    $0xffffffff,%edx
41507e:	89 55 e8             	mov    %edx,-0x18(%ebp)
415081:	0f 88 2e 02 00 00    	js     0x4152b5
415087:	8d 04 1a             	lea    (%edx,%ebx,1),%eax
41508a:	8b 5d 08             	mov    0x8(%ebp),%ebx
41508d:	89 45 c8             	mov    %eax,-0x38(%ebp)
415090:	8d 4b 04             	lea    0x4(%ebx),%ecx
415093:	8d 0c 91             	lea    (%ecx,%edx,4),%ecx
415096:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
415099:	8d 4b fc             	lea    -0x4(%ebx),%ecx
41509c:	8d 0c 81             	lea    (%ecx,%eax,4),%ecx
41509f:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
4150a2:	3b 45 f8             	cmp    -0x8(%ebp),%eax
4150a5:	77 05                	ja     0x4150ac
4150a7:	8b 41 08             	mov    0x8(%ecx),%eax
4150aa:	eb 02                	jmp    0x4150ae
4150ac:	33 c0                	xor    %eax,%eax
4150ae:	8b 51 04             	mov    0x4(%ecx),%edx
4150b1:	8b 09                	mov    (%ecx),%ecx
4150b3:	89 45 b8             	mov    %eax,-0x48(%ebp)
4150b6:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
4150bd:	89 45 fc             	mov    %eax,-0x4(%ebp)
4150c0:	89 4d ec             	mov    %ecx,-0x14(%ebp)
4150c3:	85 ff                	test   %edi,%edi
4150c5:	74 49                	je     0x415110
4150c7:	8b f9                	mov    %ecx,%edi
4150c9:	8b c2                	mov    %edx,%eax
4150cb:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
4150ce:	33 f6                	xor    %esi,%esi
4150d0:	8b 55 fc             	mov    -0x4(%ebp),%edx
4150d3:	d3 ef                	shr    %cl,%edi
4150d5:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4150d8:	e8 13 43 00 00       	call   0x4193f0
4150dd:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4150e0:	0b f2                	or     %edx,%esi
4150e2:	0b f8                	or     %eax,%edi
4150e4:	8b c6                	mov    %esi,%eax
4150e6:	8b 75 ec             	mov    -0x14(%ebp),%esi
4150e9:	8b d7                	mov    %edi,%edx
4150eb:	d3 e6                	shl    %cl,%esi
4150ed:	83 7d c8 03          	cmpl   $0x3,-0x38(%ebp)
4150f1:	89 45 fc             	mov    %eax,-0x4(%ebp)
4150f4:	89 75 ec             	mov    %esi,-0x14(%ebp)
4150f7:	72 17                	jb     0x415110
4150f9:	8b 45 cc             	mov    -0x34(%ebp),%eax
4150fc:	03 45 e8             	add    -0x18(%ebp),%eax
4150ff:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
415102:	8b 44 83 f8          	mov    -0x8(%ebx,%eax,4),%eax
415106:	d3 e8                	shr    %cl,%eax
415108:	0b f0                	or     %eax,%esi
41510a:	8b 45 fc             	mov    -0x4(%ebp),%eax
41510d:	89 75 ec             	mov    %esi,-0x14(%ebp)
415110:	53                   	push   %ebx
415111:	6a 00                	push   $0x0
415113:	ff 75 d0             	push   -0x30(%ebp)
415116:	50                   	push   %eax
415117:	52                   	push   %edx
415118:	e8 e3 40 00 00       	call   0x419200
41511d:	89 5d dc             	mov    %ebx,-0x24(%ebp)
415120:	5b                   	pop    %ebx
415121:	90                   	nop
415122:	8b d8                	mov    %eax,%ebx
415124:	33 f6                	xor    %esi,%esi
415126:	8b c2                	mov    %edx,%eax
415128:	89 5d fc             	mov    %ebx,-0x4(%ebp)
41512b:	89 45 f0             	mov    %eax,-0x10(%ebp)
41512e:	8b f9                	mov    %ecx,%edi
415130:	89 5d bc             	mov    %ebx,-0x44(%ebp)
415133:	89 45 c0             	mov    %eax,-0x40(%ebp)
415136:	89 75 dc             	mov    %esi,-0x24(%ebp)
415139:	85 c0                	test   %eax,%eax
41513b:	75 05                	jne    0x415142
41513d:	83 fb ff             	cmp    $0xffffffff,%ebx
415140:	76 2a                	jbe    0x41516c
415142:	6a 00                	push   $0x0
415144:	ff 75 d0             	push   -0x30(%ebp)
415147:	83 c3 01             	add    $0x1,%ebx
41514a:	83 d0 ff             	adc    $0xffffffff,%eax
41514d:	50                   	push   %eax
41514e:	53                   	push   %ebx
41514f:	e8 4c 41 00 00       	call   0x4192a0
415154:	03 f8                	add    %eax,%edi
415156:	13 f2                	adc    %edx,%esi
415158:	83 cb ff             	or     $0xffffffff,%ebx
41515b:	33 c0                	xor    %eax,%eax
41515d:	89 75 dc             	mov    %esi,-0x24(%ebp)
415160:	89 5d fc             	mov    %ebx,-0x4(%ebp)
415163:	89 5d bc             	mov    %ebx,-0x44(%ebp)
415166:	89 45 f0             	mov    %eax,-0x10(%ebp)
415169:	89 45 c0             	mov    %eax,-0x40(%ebp)
41516c:	85 f6                	test   %esi,%esi
41516e:	77 50                	ja     0x4151c0
415170:	72 05                	jb     0x415177
415172:	83 ff ff             	cmp    $0xffffffff,%edi
415175:	77 49                	ja     0x4151c0
415177:	50                   	push   %eax
415178:	53                   	push   %ebx
415179:	33 c9                	xor    %ecx,%ecx
41517b:	8b f7                	mov    %edi,%esi
41517d:	0b 4d ec             	or     -0x14(%ebp),%ecx
415180:	6a 00                	push   $0x0
415182:	ff 75 e0             	push   -0x20(%ebp)
415185:	89 4d fc             	mov    %ecx,-0x4(%ebp)
415188:	e8 13 41 00 00       	call   0x4192a0
41518d:	3b d6                	cmp    %esi,%edx
41518f:	72 29                	jb     0x4151ba
415191:	77 05                	ja     0x415198
415193:	3b 45 fc             	cmp    -0x4(%ebp),%eax
415196:	76 22                	jbe    0x4151ba
415198:	8b 45 f0             	mov    -0x10(%ebp),%eax
41519b:	83 c3 ff             	add    $0xffffffff,%ebx
41519e:	89 5d bc             	mov    %ebx,-0x44(%ebp)
4151a1:	83 d0 ff             	adc    $0xffffffff,%eax
4151a4:	03 7d d0             	add    -0x30(%ebp),%edi
4151a7:	89 45 f0             	mov    %eax,-0x10(%ebp)
4151aa:	83 55 dc 00          	adcl   $0x0,-0x24(%ebp)
4151ae:	89 45 c0             	mov    %eax,-0x40(%ebp)
4151b1:	75 0a                	jne    0x4151bd
4151b3:	83 ff ff             	cmp    $0xffffffff,%edi
4151b6:	76 bf                	jbe    0x415177
4151b8:	eb 03                	jmp    0x4151bd
4151ba:	8b 45 f0             	mov    -0x10(%ebp),%eax
4151bd:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4151c0:	85 c0                	test   %eax,%eax
4151c2:	75 08                	jne    0x4151cc
4151c4:	85 db                	test   %ebx,%ebx
4151c6:	0f 84 b3 00 00 00    	je     0x41527f
4151cc:	8b 4d cc             	mov    -0x34(%ebp),%ecx
4151cf:	33 ff                	xor    %edi,%edi
4151d1:	33 f6                	xor    %esi,%esi
4151d3:	85 c9                	test   %ecx,%ecx
4151d5:	74 55                	je     0x41522c
4151d7:	8b 45 0c             	mov    0xc(%ebp),%eax
4151da:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
4151dd:	83 c0 04             	add    $0x4,%eax
4151e0:	89 45 dc             	mov    %eax,-0x24(%ebp)
4151e3:	89 4d ec             	mov    %ecx,-0x14(%ebp)
4151e6:	8b 00                	mov    (%eax),%eax
4151e8:	89 45 f8             	mov    %eax,-0x8(%ebp)
4151eb:	8b 45 c0             	mov    -0x40(%ebp),%eax
4151ee:	f7 65 f8             	mull   -0x8(%ebp)
4151f1:	8b c8                	mov    %eax,%ecx
4151f3:	8b 45 bc             	mov    -0x44(%ebp),%eax
4151f6:	f7 65 f8             	mull   -0x8(%ebp)
4151f9:	03 d1                	add    %ecx,%edx
4151fb:	03 f8                	add    %eax,%edi
4151fd:	8b 03                	mov    (%ebx),%eax
4151ff:	8b cf                	mov    %edi,%ecx
415201:	13 f2                	adc    %edx,%esi
415203:	8b fe                	mov    %esi,%edi
415205:	33 f6                	xor    %esi,%esi
415207:	3b c1                	cmp    %ecx,%eax
415209:	73 05                	jae    0x415210
41520b:	83 c7 01             	add    $0x1,%edi
41520e:	13 f6                	adc    %esi,%esi
415210:	2b c1                	sub    %ecx,%eax
415212:	89 03                	mov    %eax,(%ebx)
415214:	83 c3 04             	add    $0x4,%ebx
415217:	8b 45 dc             	mov    -0x24(%ebp),%eax
41521a:	83 c0 04             	add    $0x4,%eax
41521d:	83 6d ec 01          	subl   $0x1,-0x14(%ebp)
415221:	89 45 dc             	mov    %eax,-0x24(%ebp)
415224:	75 c0                	jne    0x4151e6
415226:	8b 5d fc             	mov    -0x4(%ebp),%ebx
415229:	8b 4d cc             	mov    -0x34(%ebp),%ecx
41522c:	33 c0                	xor    %eax,%eax
41522e:	3b c6                	cmp    %esi,%eax
415230:	77 46                	ja     0x415278
415232:	72 05                	jb     0x415239
415234:	39 7d b8             	cmp    %edi,-0x48(%ebp)
415237:	73 3f                	jae    0x415278
415239:	85 c9                	test   %ecx,%ecx
41523b:	74 34                	je     0x415271
41523d:	8b 75 0c             	mov    0xc(%ebp),%esi
415240:	33 db                	xor    %ebx,%ebx
415242:	8b 55 c4             	mov    -0x3c(%ebp),%edx
415245:	83 c6 04             	add    $0x4,%esi
415248:	8b f9                	mov    %ecx,%edi
41524a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
415250:	8b 0a                	mov    (%edx),%ecx
415252:	8d 76 04             	lea    0x4(%esi),%esi
415255:	33 c0                	xor    %eax,%eax
415257:	8d 52 04             	lea    0x4(%edx),%edx
41525a:	03 4e fc             	add    -0x4(%esi),%ecx
41525d:	13 c0                	adc    %eax,%eax
41525f:	03 cb                	add    %ebx,%ecx
415261:	89 4a fc             	mov    %ecx,-0x4(%edx)
415264:	83 d0 00             	adc    $0x0,%eax
415267:	8b d8                	mov    %eax,%ebx
415269:	83 ef 01             	sub    $0x1,%edi
41526c:	75 e2                	jne    0x415250
41526e:	8b 5d fc             	mov    -0x4(%ebp),%ebx
415271:	83 c3 ff             	add    $0xffffffff,%ebx
415274:	83 55 f0 ff          	adcl   $0xffffffff,-0x10(%ebp)
415278:	8b 45 c8             	mov    -0x38(%ebp),%eax
41527b:	48                   	dec    %eax
41527c:	89 45 f8             	mov    %eax,-0x8(%ebp)
41527f:	8b 75 e4             	mov    -0x1c(%ebp),%esi
415282:	33 c0                	xor    %eax,%eax
415284:	8b 55 e8             	mov    -0x18(%ebp),%edx
415287:	03 c3                	add    %ebx,%eax
415289:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
41528c:	8b 5d 08             	mov    0x8(%ebp),%ebx
41528f:	83 d6 00             	adc    $0x0,%esi
415292:	83 6d c4 04          	subl   $0x4,-0x3c(%ebp)
415296:	4a                   	dec    %edx
415297:	8b 7d f4             	mov    -0xc(%ebp),%edi
41529a:	83 e9 04             	sub    $0x4,%ecx
41529d:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4152a0:	8b 45 c8             	mov    -0x38(%ebp),%eax
4152a3:	48                   	dec    %eax
4152a4:	89 55 e8             	mov    %edx,-0x18(%ebp)
4152a7:	89 45 c8             	mov    %eax,-0x38(%ebp)
4152aa:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
4152ad:	85 d2                	test   %edx,%edx
4152af:	0f 89 ed fd ff ff    	jns    0x4150a2
4152b5:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4152b8:	8b 5d 08             	mov    0x8(%ebp),%ebx
4152bb:	41                   	inc    %ecx
4152bc:	8b c1                	mov    %ecx,%eax
4152be:	3b 03                	cmp    (%ebx),%eax
4152c0:	73 1c                	jae    0x4152de
4152c2:	8d 53 04             	lea    0x4(%ebx),%edx
4152c5:	8d 14 82             	lea    (%edx,%eax,4),%edx
4152c8:	eb 06                	jmp    0x4152d0
4152ca:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
4152d0:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
4152d6:	8d 52 04             	lea    0x4(%edx),%edx
4152d9:	40                   	inc    %eax
4152da:	3b 03                	cmp    (%ebx),%eax
4152dc:	72 f2                	jb     0x4152d0
4152de:	89 0b                	mov    %ecx,(%ebx)
4152e0:	85 c9                	test   %ecx,%ecx
4152e2:	74 0d                	je     0x4152f1
4152e4:	83 3c 8b 00          	cmpl   $0x0,(%ebx,%ecx,4)
4152e8:	75 07                	jne    0x4152f1
4152ea:	83 c1 ff             	add    $0xffffffff,%ecx
4152ed:	89 0b                	mov    %ecx,(%ebx)
4152ef:	75 f3                	jne    0x4152e4
4152f1:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4152f4:	8b d6                	mov    %esi,%edx
4152f6:	5f                   	pop    %edi
4152f7:	5e                   	pop    %esi
4152f8:	5b                   	pop    %ebx
4152f9:	8b e5                	mov    %ebp,%esp
4152fb:	5d                   	pop    %ebp
4152fc:	c3                   	ret
4152fd:	5f                   	pop    %edi
4152fe:	5e                   	pop    %esi
4152ff:	33 c0                	xor    %eax,%eax
415301:	33 d2                	xor    %edx,%edx
415303:	5b                   	pop    %ebx
415304:	8b e5                	mov    %ebp,%esp
415306:	5d                   	pop    %ebp
415307:	c3                   	ret
415308:	8b ff                	mov    %edi,%edi
41530a:	55                   	push   %ebp
41530b:	8b ec                	mov    %esp,%ebp
41530d:	81 ec 64 09 00 00    	sub    $0x964,%esp
415313:	a1 18 60 42 00       	mov    0x426018,%eax
415318:	33 c5                	xor    %ebp,%eax
41531a:	89 45 fc             	mov    %eax,-0x4(%ebp)
41531d:	8b 45 14             	mov    0x14(%ebp),%eax
415320:	89 85 7c f8 ff ff    	mov    %eax,-0x784(%ebp)
415326:	8b 45 18             	mov    0x18(%ebp),%eax
415329:	89 85 9c f8 ff ff    	mov    %eax,-0x764(%ebp)
41532f:	8d 85 70 f8 ff ff    	lea    -0x790(%ebp),%eax
415335:	53                   	push   %ebx
415336:	50                   	push   %eax
415337:	e8 80 18 00 00       	call   0x416bbc
41533c:	8b 85 70 f8 ff ff    	mov    -0x790(%ebp),%eax
415342:	33 db                	xor    %ebx,%ebx
415344:	83 e0 1f             	and    $0x1f,%eax
415347:	43                   	inc    %ebx
415348:	59                   	pop    %ecx
415349:	3c 1f                	cmp    $0x1f,%al
41534b:	75 09                	jne    0x415356
41534d:	c6 85 78 f8 ff ff 00 	movb   $0x0,-0x788(%ebp)
415354:	eb 13                	jmp    0x415369
415356:	8d 85 70 f8 ff ff    	lea    -0x790(%ebp),%eax
41535c:	50                   	push   %eax
41535d:	e8 c2 18 00 00       	call   0x416c24
415362:	59                   	pop    %ecx
415363:	88 9d 78 f8 ff ff    	mov    %bl,-0x788(%ebp)
415369:	56                   	push   %esi
41536a:	8b 75 0c             	mov    0xc(%ebp),%esi
41536d:	57                   	push   %edi
41536e:	6a 20                	push   $0x20
415370:	5f                   	pop    %edi
415371:	85 f6                	test   %esi,%esi
415373:	7f 0d                	jg     0x415382
415375:	7c 06                	jl     0x41537d
415377:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
41537b:	73 05                	jae    0x415382