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
41537d:	6a 2d                	push   $0x2d
41537f:	58                   	pop    %eax
415380:	eb 02                	jmp    0x415384
415382:	8b c7                	mov    %edi,%eax
415384:	8b 8d 7c f8 ff ff    	mov    -0x784(%ebp),%ecx
41538a:	6a 00                	push   $0x0
41538c:	6a 00                	push   $0x0
41538e:	89 01                	mov    %eax,(%ecx)
415390:	8b 85 9c f8 ff ff    	mov    -0x764(%ebp),%eax
415396:	89 41 08             	mov    %eax,0x8(%ecx)
415399:	8d 85 6c f8 ff ff    	lea    -0x794(%ebp),%eax
41539f:	50                   	push   %eax
4153a0:	e8 3b 6e ff ff       	call   0x40c1e0
4153a5:	8b ce                	mov    %esi,%ecx
4153a7:	33 c0                	xor    %eax,%eax
4153a9:	81 e1 00 00 f0 7f    	and    $0x7ff00000,%ecx
4153af:	83 c4 0c             	add    $0xc,%esp
4153b2:	0b c1                	or     %ecx,%eax
4153b4:	75 48                	jne    0x4153fe
4153b6:	8b 45 08             	mov    0x8(%ebp),%eax
4153b9:	8b ce                	mov    %esi,%ecx
4153bb:	81 e1 ff ff 0f 00    	and    $0xfffff,%ecx
4153c1:	0b c1                	or     %ecx,%eax
4153c3:	74 0c                	je     0x4153d1
4153c5:	f7 85 6c f8 ff ff 00 	testl  $0x1000000,-0x794(%ebp)
4153cc:	00 00 01
4153cf:	74 2d                	je     0x4153fe
4153d1:	8b 85 7c f8 ff ff    	mov    -0x784(%ebp),%eax
4153d7:	68 3c 05 42 00       	push   $0x42053c
4153dc:	83 60 04 00          	andl   $0x0,0x4(%eax)
4153e0:	ff 75 1c             	push   0x1c(%ebp)
4153e3:	ff b5 9c f8 ff ff    	push   -0x764(%ebp)
4153e9:	e8 b3 6e ff ff       	call   0x40c2a1
4153ee:	83 c4 0c             	add    $0xc,%esp
4153f1:	85 c0                	test   %eax,%eax
4153f3:	0f 85 09 14 00 00    	jne    0x416802
4153f9:	e9 dd 13 00 00       	jmp    0x4167db
4153fe:	8d 45 08             	lea    0x8(%ebp),%eax
415401:	50                   	push   %eax
415402:	e8 06 d2 ff ff       	call   0x41260d
415407:	59                   	pop    %ecx
415408:	85 c0                	test   %eax,%eax
41540a:	74 09                	je     0x415415
41540c:	8b 8d 7c f8 ff ff    	mov    -0x784(%ebp),%ecx
415412:	89 59 04             	mov    %ebx,0x4(%ecx)
415415:	83 e8 01             	sub    $0x1,%eax
415418:	0f 84 a1 13 00 00    	je     0x4167bf
41541e:	83 e8 01             	sub    $0x1,%eax
415421:	0f 84 8e 13 00 00    	je     0x4167b5
415427:	83 e8 01             	sub    $0x1,%eax
41542a:	0f 84 7b 13 00 00    	je     0x4167ab
415430:	83 e8 01             	sub    $0x1,%eax
415433:	0f 84 68 13 00 00    	je     0x4167a1
415439:	8b 45 08             	mov    0x8(%ebp),%eax
41543c:	81 e6 ff ff ff 7f    	and    $0x7fffffff,%esi
415442:	83 a5 84 f8 ff ff 00 	andl   $0x0,-0x77c(%ebp)
415449:	89 45 08             	mov    %eax,0x8(%ebp)
41544c:	8b 45 10             	mov    0x10(%ebp),%eax
41544f:	89 75 0c             	mov    %esi,0xc(%ebp)
415452:	40                   	inc    %eax
415453:	dd 45 08             	fldl   0x8(%ebp)
415456:	dd 95 a4 f8 ff ff    	fstl   -0x75c(%ebp)
41545c:	8b b5 a8 f8 ff ff    	mov    -0x758(%ebp),%esi
415462:	8b ce                	mov    %esi,%ecx
415464:	89 85 88 f8 ff ff    	mov    %eax,-0x778(%ebp)
41546a:	c1 e9 14             	shr    $0x14,%ecx
41546d:	8b c1                	mov    %ecx,%eax
41546f:	25 ff 07 00 00       	and    $0x7ff,%eax
415474:	83 c8 00             	or     $0x0,%eax
415477:	75 0a                	jne    0x415483
415479:	33 d2                	xor    %edx,%edx
41547b:	89 9d b0 f8 ff ff    	mov    %ebx,-0x750(%ebp)
415481:	eb 0d                	jmp    0x415490
415483:	33 c0                	xor    %eax,%eax
415485:	ba 00 00 10 00       	mov    $0x100000,%edx
41548a:	21 85 b0 f8 ff ff    	and    %eax,-0x750(%ebp)
415490:	8b bd a4 f8 ff ff    	mov    -0x75c(%ebp),%edi
415496:	81 e6 ff ff 0f 00    	and    $0xfffff,%esi
41549c:	03 f8                	add    %eax,%edi
41549e:	8b 85 b0 f8 ff ff    	mov    -0x750(%ebp),%eax
4154a4:	89 bd 8c f8 ff ff    	mov    %edi,-0x774(%ebp)
4154aa:	13 f2                	adc    %edx,%esi
4154ac:	81 e1 ff 07 00 00    	and    $0x7ff,%ecx
4154b2:	03 c1                	add    %ecx,%eax
4154b4:	89 85 b8 f8 ff ff    	mov    %eax,-0x748(%ebp)
4154ba:	e8 c1 17 00 00       	call   0x416c80
4154bf:	51                   	push   %ecx
4154c0:	51                   	push   %ecx
4154c1:	dd 1c 24             	fstpl  (%esp)
4154c4:	e8 c7 18 00 00       	call   0x416d90
4154c9:	59                   	pop    %ecx
4154ca:	59                   	pop    %ecx
4154cb:	e8 90 3f 00 00       	call   0x419460
4154d0:	89 85 94 f8 ff ff    	mov    %eax,-0x76c(%ebp)
4154d6:	6a 20                	push   $0x20
4154d8:	5f                   	pop    %edi
4154d9:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
4154de:	74 07                	je     0x4154e7
4154e0:	3d 00 00 00 80       	cmp    $0x80000000,%eax
4154e5:	75 08                	jne    0x4154ef
4154e7:	33 c0                	xor    %eax,%eax
4154e9:	89 85 94 f8 ff ff    	mov    %eax,-0x76c(%ebp)
4154ef:	8b 95 b8 f8 ff ff    	mov    -0x748(%ebp),%edx
4154f5:	33 c9                	xor    %ecx,%ecx
4154f7:	8b 85 8c f8 ff ff    	mov    -0x774(%ebp),%eax
4154fd:	85 f6                	test   %esi,%esi
4154ff:	89 85 30 fe ff ff    	mov    %eax,-0x1d0(%ebp)
415505:	0f 95 c1             	setne  %cl
415508:	89 b5 34 fe ff ff    	mov    %esi,-0x1cc(%ebp)
41550e:	41                   	inc    %ecx
41550f:	89 8d a0 f8 ff ff    	mov    %ecx,-0x760(%ebp)
415515:	89 8d 2c fe ff ff    	mov    %ecx,-0x1d4(%ebp)
41551b:	81 fa 33 04 00 00    	cmp    $0x433,%edx
415521:	0f 82 99 03 00 00    	jb     0x4158c0
415527:	83 a5 90 fa ff ff 00 	andl   $0x0,-0x570(%ebp)
41552e:	c7 85 94 fa ff ff 00 	movl   $0x100000,-0x56c(%ebp)
415535:	00 10 00
415538:	c7 85 8c fa ff ff 02 	movl   $0x2,-0x574(%ebp)
41553f:	00 00 00
415542:	85 f6                	test   %esi,%esi
415544:	0f 84 de 01 00 00    	je     0x415728
41554a:	33 c9                	xor    %ecx,%ecx
41554c:	8b 84 0d 90 fa ff ff 	mov    -0x570(%ebp,%ecx,1),%eax
415553:	3b 84 0d 30 fe ff ff 	cmp    -0x1d0(%ebp,%ecx,1),%eax
41555a:	0f 85 c8 01 00 00    	jne    0x415728
415560:	83 c1 04             	add    $0x4,%ecx
415563:	83 f9 08             	cmp    $0x8,%ecx
415566:	75 e4                	jne    0x41554c
415568:	8d 8a cf fb ff ff    	lea    -0x431(%edx),%ecx
41556e:	8b f7                	mov    %edi,%esi
415570:	8b c1                	mov    %ecx,%eax
415572:	33 d2                	xor    %edx,%edx
415574:	83 e1 1f             	and    $0x1f,%ecx
415577:	c1 e8 05             	shr    $0x5,%eax
41557a:	2b f1                	sub    %ecx,%esi
41557c:	89 85 ac f8 ff ff    	mov    %eax,-0x754(%ebp)
415582:	89 8d 98 f8 ff ff    	mov    %ecx,-0x768(%ebp)
415588:	8b c3                	mov    %ebx,%eax
41558a:	8b ce                	mov    %esi,%ecx
41558c:	89 b5 b4 f8 ff ff    	mov    %esi,-0x74c(%ebp)
415592:	e8 59 3e 00 00       	call   0x4193f0
415597:	8b 95 a0 f8 ff ff    	mov    -0x760(%ebp),%edx
41559d:	48                   	dec    %eax
41559e:	83 a5 a8 f8 ff ff 00 	andl   $0x0,-0x758(%ebp)
4155a5:	89 85 90 f8 ff ff    	mov    %eax,-0x770(%ebp)
4155ab:	f7 d0                	not    %eax
4155ad:	89 85 8c f8 ff ff    	mov    %eax,-0x774(%ebp)
4155b3:	8b 8c 95 2c fe ff ff 	mov    -0x1d4(%ebp,%edx,4),%ecx
4155ba:	0f bd c1             	bsr    %ecx,%eax
4155bd:	74 09                	je     0x4155c8
4155bf:	40                   	inc    %eax
4155c0:	89 85 b0 f8 ff ff    	mov    %eax,-0x750(%ebp)
4155c6:	eb 07                	jmp    0x4155cf
4155c8:	83 a5 b0 f8 ff ff 00 	andl   $0x0,-0x750(%ebp)
4155cf:	8b 8d ac f8 ff ff    	mov    -0x754(%ebp),%ecx
4155d5:	be cc 01 00 00       	mov    $0x1cc,%esi
4155da:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
4155dd:	83 f8 73             	cmp    $0x73,%eax
4155e0:	76 2b                	jbe    0x41560d
4155e2:	33 c0                	xor    %eax,%eax
4155e4:	50                   	push   %eax
4155e5:	89 85 8c fa ff ff    	mov    %eax,-0x574(%ebp)
4155eb:	89 85 2c fe ff ff    	mov    %eax,-0x1d4(%ebp)
4155f1:	8d 85 90 fa ff ff    	lea    -0x570(%ebp),%eax
4155f7:	50                   	push   %eax
4155f8:	8d 85 30 fe ff ff    	lea    -0x1d0(%ebp),%eax
4155fe:	56                   	push   %esi
4155ff:	50                   	push   %eax
415600:	e8 b9 a8 ff ff       	call   0x40febe
415605:	83 c4 10             	add    $0x10,%esp
415608:	e9 e2 00 00 00       	jmp    0x4156ef
41560d:	2b bd b0 f8 ff ff    	sub    -0x750(%ebp),%edi
415613:	3b bd 98 f8 ff ff    	cmp    -0x768(%ebp),%edi
415619:	1b c0                	sbb    %eax,%eax
41561b:	f7 d8                	neg    %eax