4131a4:	83 f8 01             	cmp    $0x1,%eax
4131a7:	74 5a                	je     0x413203
4131a9:	a8 01                	test   $0x1,%al
4131ab:	75 1f                	jne    0x4131cc
4131ad:	d1 e8                	shr    $1,%eax
4131af:	50                   	push   %eax
4131b0:	ff 76 04             	push   0x4(%esi)
4131b3:	8d 8b 8c 4a 00 00    	lea    0x4a8c(%ebx),%ecx
4131b9:	e8 d7 f8 ff ff       	call   0x412a95
4131be:	89 46 04             	mov    %eax,0x4(%esi)
4131c1:	85 c0                	test   %eax,%eax
4131c3:	0f 84 0a ff ff ff    	je     0x4130d3
4131c9:	8b 45 fc             	mov    -0x4(%ebp),%eax
4131cc:	c1 e0 03             	shl    $0x3,%eax
4131cf:	8d 4e 02             	lea    0x2(%esi),%ecx
4131d2:	0f b7 11             	movzwl (%ecx),%edx
4131d5:	0f b7 d2             	movzwl %dx,%edx
4131d8:	3b c2                	cmp    %edx,%eax
4131da:	8b 45 fc             	mov    -0x4(%ebp),%eax
4131dd:	1b d2                	sbb    %edx,%edx
4131df:	c1 e0 02             	shl    $0x2,%eax
4131e2:	42                   	inc    %edx
4131e3:	39 45 f4             	cmp    %eax,-0xc(%ebp)
4131e6:	1b c0                	sbb    %eax,%eax
4131e8:	40                   	inc    %eax
4131e9:	66 23 d0             	and    %ax,%dx
4131ec:	8b 45 fc             	mov    -0x4(%ebp),%eax
4131ef:	03 c0                	add    %eax,%eax
4131f1:	66 03 d2             	add    %dx,%dx
4131f4:	3b 45 f4             	cmp    -0xc(%ebp),%eax
4131f7:	1b c0                	sbb    %eax,%eax
4131f9:	f7 d8                	neg    %eax
4131fb:	66 03 d0             	add    %ax,%dx
4131fe:	0f b7 01             	movzwl (%ecx),%eax
413201:	eb 54                	jmp    0x413257
413203:	6a 01                	push   $0x1
413205:	8d 8b 8c 4a 00 00    	lea    0x4a8c(%ebx),%ecx
41320b:	e8 00 f8 ff ff       	call   0x412a10
413210:	85 c0                	test   %eax,%eax
413212:	0f 84 bb fe ff ff    	je     0x4130d3
413218:	8b 55 f8             	mov    -0x8(%ebp),%edx
41321b:	8d 4e 02             	lea    0x2(%esi),%ecx
41321e:	8b f1                	mov    %ecx,%esi
413220:	8b f8                	mov    %eax,%edi
413222:	a5                   	movsl  %ds:(%esi),%es:(%edi)
413223:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
413225:	89 42 04             	mov    %eax,0x4(%edx)
413228:	8a 50 01             	mov    0x1(%eax),%dl
41322b:	80 fa 1e             	cmp    $0x1e,%dl
41322e:	73 07                	jae    0x413237
413230:	02 d2                	add    %dl,%dl
413232:	88 50 01             	mov    %dl,0x1(%eax)
413235:	eb 04                	jmp    0x41323b
413237:	c6 40 01 78          	movb   $0x78,0x1(%eax)
41323b:	66 0f b6 40 01       	movzbw 0x1(%eax),%ax
413240:	8b 7d f0             	mov    -0x10(%ebp),%edi
413243:	8b 75 f8             	mov    -0x8(%ebp),%esi
413246:	6a 03                	push   $0x3
413248:	5a                   	pop    %edx
413249:	3b 55 f4             	cmp    -0xc(%ebp),%edx
41324c:	1b d2                	sbb    %edx,%edx
41324e:	f7 da                	neg    %edx
413250:	66 03 93 58 06 00 00 	add    0x658(%ebx),%dx
413257:	66 03 d0             	add    %ax,%dx
41325a:	0f b7 c2             	movzwl %dx,%eax
41325d:	66 89 11             	mov    %dx,(%ecx)
413260:	0f b7 d0             	movzwl %ax,%edx
413263:	8d 42 06             	lea    0x6(%edx),%eax
413266:	0f af 45 e8          	imul   -0x18(%ebp),%eax
41326a:	03 d7                	add    %edi,%edx
41326c:	8b fa                	mov    %edx,%edi
41326e:	6b ff 06             	imul   $0x6,%edi,%edi
413271:	03 c0                	add    %eax,%eax
413273:	3b c7                	cmp    %edi,%eax
413275:	89 55 f8             	mov    %edx,-0x8(%ebp)
413278:	8b fa                	mov    %edx,%edi
41327a:	73 1a                	jae    0x413296
41327c:	c1 e7 02             	shl    $0x2,%edi
41327f:	3b c7                	cmp    %edi,%eax
413281:	1b ff                	sbb    %edi,%edi
413283:	47                   	inc    %edi
413284:	3b d0                	cmp    %eax,%edx
413286:	1b c0                	sbb    %eax,%eax
413288:	f7 d8                	neg    %eax
41328a:	8d 54 07 01          	lea    0x1(%edi,%eax,1),%edx
41328e:	0f b7 01             	movzwl (%ecx),%eax
413291:	83 c0 03             	add    $0x3,%eax
413294:	eb 26                	jmp    0x4132bc
413296:	6b ff 0f             	imul   $0xf,%edi,%edi
413299:	3b c7                	cmp    %edi,%eax
41329b:	1b ff                	sbb    %edi,%edi
41329d:	6b d2 0c             	imul   $0xc,%edx,%edx
4132a0:	47                   	inc    %edi
4132a1:	3b c2                	cmp    %edx,%eax
4132a3:	1b d2                	sbb    %edx,%edx
4132a5:	42                   	inc    %edx
4132a6:	03 fa                	add    %edx,%edi
4132a8:	8b 55 f8             	mov    -0x8(%ebp),%edx
4132ab:	6b d2 09             	imul   $0x9,%edx,%edx
4132ae:	3b c2                	cmp    %edx,%eax
4132b0:	1b c0                	sbb    %eax,%eax
4132b2:	40                   	inc    %eax
4132b3:	8d 54 07 04          	lea    0x4(%edi,%eax,1),%edx
4132b7:	0f b7 01             	movzwl (%ecx),%eax
4132ba:	03 c2                	add    %edx,%eax
4132bc:	8b 7d fc             	mov    -0x4(%ebp),%edi
4132bf:	66 89 01             	mov    %ax,(%ecx)
4132c2:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4132c5:	8b c7                	mov    %edi,%eax
4132c7:	6b c0 06             	imul   $0x6,%eax,%eax
4132ca:	03 46 04             	add    0x4(%esi),%eax
4132cd:	47                   	inc    %edi
4132ce:	89 48 02             	mov    %ecx,0x2(%eax)
4132d1:	8a 4d e0             	mov    -0x20(%ebp),%cl
4132d4:	88 08                	mov    %cl,(%eax)
4132d6:	88 50 01             	mov    %dl,0x1(%eax)
4132d9:	66 89 3e             	mov    %di,(%esi)
4132dc:	8b 76 08             	mov    0x8(%esi),%esi
4132df:	89 75 f8             	mov    %esi,-0x8(%ebp)
4132e2:	3b b3 44 06 00 00    	cmp    0x644(%ebx),%esi
4132e8:	0f 85 aa fe ff ff    	jne    0x413198
4132ee:	e9 91 fe ff ff       	jmp    0x413184
4132f3:	8b 44 24 08          	mov    0x8(%esp),%eax
4132f7:	53                   	push   %ebx
4132f8:	8b 5c 24 08          	mov    0x8(%esp),%ebx
4132fc:	89 83 50 06 00 00    	mov    %eax,0x650(%ebx)
413302:	80 40 01 04          	addb   $0x4,0x1(%eax)
413306:	57                   	push   %edi
413307:	8b f9                	mov    %ecx,%edi
413309:	66 83 47 02 04       	addw   $0x4,0x2(%edi)
41330e:	8a 48 01             	mov    0x1(%eax),%cl
413311:	3a 48 fb             	cmp    -0x5(%eax),%cl
413314:	76 20                	jbe    0x413336
413316:	56                   	push   %esi
413317:	8d 70 fa             	lea    -0x6(%eax),%esi
41331a:	56                   	push   %esi
41331b:	50                   	push   %eax
41331c:	e8 c6 f2 ff ff       	call   0x4125e7
413321:	89 b3 50 06 00 00    	mov    %esi,0x650(%ebx)
413327:	80 7e 01 7c          	cmpb   $0x7c,0x1(%esi)
41332b:	5e                   	pop    %esi
41332c:	76 08                	jbe    0x413336
41332e:	53                   	push   %ebx
41332f:	8b cf                	mov    %edi,%ecx
413331:	e8 36 fa ff ff       	call   0x412d6c
413336:	5f                   	pop    %edi
413337:	5b                   	pop    %ebx
413338:	c2 08 00             	ret    $0x8
41333b:	55                   	push   %ebp
41333c:	8b ec                	mov    %esp,%ebp
41333e:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
413342:	53                   	push   %ebx
413343:	56                   	push   %esi
413344:	8b 75 08             	mov    0x8(%ebp),%esi
413347:	89 86 84 4a 00 00    	mov    %eax,0x4a84(%esi)
41334d:	8d 9e 70 4a 00 00    	lea    0x4a70(%esi),%ebx
413353:	8b 43 08             	mov    0x8(%ebx),%eax
413356:	33 d2                	xor    %edx,%edx
413358:	f7 73 14             	divl   0x14(%ebx)
41335b:	57                   	push   %edi
41335c:	8b 79 04             	mov    0x4(%ecx),%edi
41335f:	33 d2                	xor    %edx,%edx
413361:	89 45 08             	mov    %eax,0x8(%ebp)
413364:	89 43 08             	mov    %eax,0x8(%ebx)
413367:	8b 43 04             	mov    0x4(%ebx),%eax
41336a:	2b 03                	sub    (%ebx),%eax
41336c:	f7 75 08             	divl   0x8(%ebp)
41336f:	89 45 08             	mov    %eax,0x8(%ebp)
413372:	8b 86 84 4a 00 00    	mov    0x4a84(%esi),%eax
413378:	39 45 08             	cmp    %eax,0x8(%ebp)
41337b:	7c 07                	jl     0x413384
41337d:	32 c0                	xor    %al,%al
41337f:	e9 8d 00 00 00       	jmp    0x413411
413384:	0f b6 57 01          	movzbl 0x1(%edi),%edx
413388:	39 55 08             	cmp    %edx,0x8(%ebp)
41338b:	7d 42                	jge    0x4133cf
41338d:	8d 1c 12             	lea    (%edx,%edx,1),%ebx
413390:	3b d8                	cmp    %eax,%ebx
413392:	0f 97 c0             	seta   %al
413395:	88 86 6d 0a 00 00    	mov    %al,0xa6d(%esi)
41339b:	89 96 80 4a 00 00    	mov    %edx,0x4a80(%esi)
4133a1:	0f b6 c0             	movzbl %al,%eax
4133a4:	01 86 64 06 00 00    	add    %eax,0x664(%esi)
4133aa:	83 c2 04             	add    $0x4,%edx
4133ad:	89 be 50 06 00 00    	mov    %edi,0x650(%esi)
4133b3:	88 57 01             	mov    %dl,0x1(%edi)
4133b6:	66 83 41 02 04       	addw   $0x4,0x2(%ecx)
4133bb:	83 fa 7c             	cmp    $0x7c,%edx
4133be:	7e 06                	jle    0x4133c6
4133c0:	56                   	push   %esi
4133c1:	e8 a6 f9 ff ff       	call   0x412d6c
4133c6:	83 a6 7c 4a 00 00 00 	andl   $0x0,0x4a7c(%esi)
4133cd:	eb 40                	jmp    0x41340f
4133cf:	83 be 50 06 00 00 00 	cmpl   $0x0,0x650(%esi)
4133d6:	74 a5                	je     0x41337d
4133d8:	c6 86 6d 0a 00 00 00 	movb   $0x0,0xa6d(%esi)
4133df:	0f b7 19             	movzwl (%ecx),%ebx
4133e2:	4b                   	dec    %ebx
4133e3:	eb 03                	jmp    0x4133e8
4133e5:	4b                   	dec    %ebx
4133e6:	74 30                	je     0x413418
4133e8:	0f b6 47 07          	movzbl 0x7(%edi),%eax
4133ec:	83 c7 06             	add    $0x6,%edi
4133ef:	03 d0                	add    %eax,%edx
4133f1:	3b 55 08             	cmp    0x8(%ebp),%edx
4133f4:	7e ef                	jle    0x4133e5
4133f6:	89 96 80 4a 00 00    	mov    %edx,0x4a80(%esi)
4133fc:	0f b6 47 01          	movzbl 0x1(%edi),%eax
413400:	57                   	push   %edi
413401:	2b d0                	sub    %eax,%edx
413403:	56                   	push   %esi
413404:	89 96 7c 4a 00 00    	mov    %edx,0x4a7c(%esi)
41340a:	e8 e4 fe ff ff       	call   0x4132f3
41340f:	b0 01                	mov    $0x1,%al
413411:	5f                   	pop    %edi
413412:	5e                   	pop    %esi
413413:	5b                   	pop    %ebx
413414:	5d                   	pop    %ebp
413415:	c2 04 00             	ret    $0x4
413418:	8b 86 50 06 00 00    	mov    0x650(%esi),%eax
41341e:	0f b6 00             	movzbl (%eax),%eax
413421:	8a 84 30 6c 09 00 00 	mov    0x96c(%eax,%esi,1),%al
413428:	88 86 6e 0a 00 00    	mov    %al,0xa6e(%esi)
41342e:	89 96 7c 4a 00 00    	mov    %edx,0x4a7c(%esi)
413434:	0f b6 07             	movzbl (%edi),%eax
413437:	8a 96 6c 0a 00 00    	mov    0xa6c(%esi),%dl
41343d:	88 94 30 6c 06 00 00 	mov    %dl,0x66c(%eax,%esi,1)
413444:	0f b7 01             	movzwl (%ecx),%eax
413447:	89 86 54 06 00 00    	mov    %eax,0x654(%esi)
41344d:	48                   	dec    %eax
41344e:	83 a6 50 06 00 00 00 	andl   $0x0,0x650(%esi)
413455:	8a 96 6c 0a 00 00    	mov    0xa6c(%esi),%dl
41345b:	83 ef 06             	sub    $0x6,%edi
41345e:	48                   	dec    %eax
41345f:	0f b6 0f             	movzbl (%edi),%ecx
413462:	88 94 31 6c 06 00 00 	mov    %dl,0x66c(%ecx,%esi,1)
413469:	75 ea                	jne    0x413455
41346b:	8b 86 84 4a 00 00    	mov    0x4a84(%esi),%eax
413471:	89 86 80 4a 00 00    	mov    %eax,0x4a80(%esi)
413477:	eb 96                	jmp    0x41340f
413479:	8b 44 24 08          	mov    0x8(%esp),%eax
41347d:	56                   	push   %esi
41347e:	8b 74 24 08          	mov    0x8(%esp),%esi
413482:	89 86 50 06 00 00    	mov    %eax,0x650(%esi)
413488:	80 40 01 04          	addb   $0x4,0x1(%eax)
41348c:	66 83 41 02 04       	addw   $0x4,0x2(%ecx)
413491:	80 78 01 7c          	cmpb   $0x7c,0x1(%eax)
413495:	76 06                	jbe    0x41349d
413497:	56                   	push   %esi
413498:	e8 cf f8 ff ff       	call   0x412d6c
41349d:	8b 86 68 06 00 00    	mov    0x668(%esi),%eax
4134a3:	fe 86 6c 0a 00 00    	incb   0xa6c(%esi)
4134a9:	89 86 64 06 00 00    	mov    %eax,0x664(%esi)
4134af:	5e                   	pop    %esi
4134b0:	c2 08 00             	ret    $0x8
4134b3:	55                   	push   %ebp
4134b4:	8b ec                	mov    %esp,%ebp
4134b6:	51                   	push   %ecx
4134b7:	0f b7 01             	movzwl (%ecx),%eax
4134ba:	ba 00 01 00 00       	mov    $0x100,%edx
4134bf:	57                   	push   %edi
4134c0:	66 3b c2             	cmp    %dx,%ax
4134c3:	74 66                	je     0x41352b
4134c5:	53                   	push   %ebx
4134c6:	0f b7 f8             	movzwl %ax,%edi
4134c9:	8b 45 0c             	mov    0xc(%ebp),%eax
4134cc:	33 db                	xor    %ebx,%ebx
4134ce:	56                   	push   %esi
4134cf:	8b 75 08             	mov    0x8(%ebp),%esi
4134d2:	39 86 54 06 00 00    	cmp    %eax,0x654(%esi)
4134d8:	0f b6 94 06 6b 07 00 	movzbl 0x76b(%esi,%eax,1),%edx
4134df:	00
4134e0:	0f 9f c3             	setg   %bl
4134e3:	89 7d fc             	mov    %edi,-0x4(%ebp)
4134e6:	6b ff 0b             	imul   $0xb,%edi,%edi
4134e9:	8d 04 93             	lea    (%ebx,%edx,4),%eax
4134ec:	0f b7 51 02          	movzwl 0x2(%ecx),%edx
4134f0:	8b 49 08             	mov    0x8(%ecx),%ecx
4134f3:	0f b7 09             	movzwl (%ecx),%ecx
4134f6:	33 db                	xor    %ebx,%ebx
4134f8:	3b d7                	cmp    %edi,%edx
4134fa:	0f 9c c3             	setl   %bl
4134fd:	2b 4d fc             	sub    -0x4(%ebp),%ecx
413500:	33 d2                	xor    %edx,%edx
413502:	39 4d 0c             	cmp    %ecx,0xc(%ebp)
413505:	0f b6 8e 6e 0a 00 00 	movzbl 0xa6e(%esi),%ecx
41350c:	0f 9c c2             	setl   %dl
41350f:	8d 04 43             	lea    (%ebx,%eax,2),%eax
413512:	8d 04 42             	lea    (%edx,%eax,2),%eax
413515:	03 c1                	add    %ecx,%eax
413517:	8d 3c 86             	lea    (%esi,%eax,4),%edi
41351a:	8b cf                	mov    %edi,%ecx
41351c:	e8 2b f2 ff ff       	call   0x41274c
413521:	89 86 84 4a 00 00    	mov    %eax,0x4a84(%esi)
413527:	5e                   	pop    %esi
413528:	5b                   	pop    %ebx
413529:	eb 13                	jmp    0x41353e
41352b:	8b 45 08             	mov    0x8(%ebp),%eax
41352e:	8d b8 40 06 00 00    	lea    0x640(%eax),%edi
413534:	c7 80 84 4a 00 00 01 	movl   $0x1,0x4a84(%eax)
41353b:	00 00 00
41353e:	8b c7                	mov    %edi,%eax
413540:	5f                   	pop    %edi
413541:	c9                   	leave
413542:	c2 08 00             	ret    $0x8
413545:	55                   	push   %ebp
413546:	8b ec                	mov    %esp,%ebp
413548:	81 ec 08 04 00 00    	sub    $0x408,%esp
41354e:	53                   	push   %ebx
41354f:	56                   	push   %esi
413550:	8b 75 08             	mov    0x8(%ebp),%esi
413553:	57                   	push   %edi
413554:	8b d9                	mov    %ecx,%ebx
413556:	0f b7 3b             	movzwl (%ebx),%edi
413559:	2b be 54 06 00 00    	sub    0x654(%esi),%edi
41355f:	57                   	push   %edi
413560:	56                   	push   %esi
413561:	e8 4d ff ff ff       	call   0x4134b3
413566:	89 45 fc             	mov    %eax,-0x4(%ebp)
413569:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
41356f:	89 45 08             	mov    %eax,0x8(%ebp)
413572:	8b 43 04             	mov    0x4(%ebx),%eax
413575:	83 e8 06             	sub    $0x6,%eax
413578:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
41357c:	8a 8e 6c 0a 00 00    	mov    0xa6c(%esi),%cl
413582:	83 c0 06             	add    $0x6,%eax
413585:	0f b6 10             	movzbl (%eax),%edx
413588:	38 8c 32 6c 06 00 00 	cmp    %cl,0x66c(%edx,%esi,1)
41358f:	74 eb                	je     0x41357c
413591:	0f b6 50 01          	movzbl 0x1(%eax),%edx
413595:	8b 4d f8             	mov    -0x8(%ebp),%ecx
413598:	03 ca                	add    %edx,%ecx
41359a:	8b 55 08             	mov    0x8(%ebp),%edx
41359d:	83 45 08 04          	addl   $0x4,0x8(%ebp)
4135a1:	4f                   	dec    %edi
4135a2:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4135a5:	89 02                	mov    %eax,(%edx)
4135a7:	75 d3                	jne    0x41357c
4135a9:	01 8e 84 4a 00 00    	add    %ecx,0x4a84(%esi)
4135af:	8d be 70 4a 00 00    	lea    0x4a70(%esi),%edi
4135b5:	8b 47 08             	mov    0x8(%edi),%eax
4135b8:	33 d2                	xor    %edx,%edx
4135ba:	f7 77 14             	divl   0x14(%edi)
4135bd:	33 d2                	xor    %edx,%edx
4135bf:	89 45 08             	mov    %eax,0x8(%ebp)
4135c2:	89 47 08             	mov    %eax,0x8(%edi)
4135c5:	8b 47 04             	mov    0x4(%edi),%eax
4135c8:	2b 07                	sub    (%edi),%eax
4135ca:	f7 75 08             	divl   0x8(%ebp)
4135cd:	8b 96 84 4a 00 00    	mov    0x4a84(%esi),%edx