40c29b:	0f b6 7d f8          	movzbl -0x8(%ebp),%edi
40c29f:	56                   	push   %esi
40c2a0:	53                   	push   %ebx
40c2a1:	ff 15 ac 30 43 00    	call   *0x4330ac
40c2a7:	53                   	push   %ebx
40c2a8:	ff 75 bc             	push   -0x44(%ebp)
40c2ab:	ff 15 08 33 43 00    	call   *0x433308
40c2b1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40c2b4:	8b c7                	mov    %edi,%eax
40c2b6:	5f                   	pop    %edi
40c2b7:	5e                   	pop    %esi
40c2b8:	33 cd                	xor    %ebp,%ecx
40c2ba:	5b                   	pop    %ebx
40c2bb:	e8 70 41 00 00       	call   0x410430
40c2c0:	c9                   	leave
40c2c1:	c3                   	ret
40c2c2:	8b ff                	mov    %edi,%edi
40c2c4:	55                   	push   %ebp
40c2c5:	8b ec                	mov    %esp,%ebp
40c2c7:	83 ec 28             	sub    $0x28,%esp
40c2ca:	a1 64 10 41 00       	mov    0x411064,%eax
40c2cf:	33 c5                	xor    %ebp,%eax
40c2d1:	89 45 f8             	mov    %eax,-0x8(%ebp)
40c2d4:	53                   	push   %ebx
40c2d5:	56                   	push   %esi
40c2d6:	8b f2                	mov    %edx,%esi
40c2d8:	33 db                	xor    %ebx,%ebx
40c2da:	33 d2                	xor    %edx,%edx
40c2dc:	42                   	inc    %edx
40c2dd:	f7 05 18 19 43 00 00 	testl  $0x20000000,0x431918
40c2e4:	00 00 20
40c2e7:	57                   	push   %edi
40c2e8:	8b 7d 08             	mov    0x8(%ebp),%edi
40c2eb:	74 4f                	je     0x40c33c
40c2ed:	e8 6c ff ff ff       	call   0x40c25e
40c2f2:	6a 01                	push   $0x1
40c2f4:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40c2f7:	51                   	push   %ecx
40c2f8:	50                   	push   %eax
40c2f9:	ff 15 78 30 43 00    	call   *0x433078
40c2ff:	85 c0                	test   %eax,%eax
40c301:	74 04                	je     0x40c307
40c303:	0f b7 5d dc          	movzwl -0x24(%ebp),%ebx
40c307:	6a 01                	push   $0x1
40c309:	57                   	push   %edi
40c30a:	6a 01                	push   $0x1
40c30c:	56                   	push   %esi
40c30d:	6a 00                	push   $0x0
40c30f:	0f b7 c3             	movzwl %bx,%eax
40c312:	50                   	push   %eax
40c313:	ff 15 d0 31 43 00    	call   *0x4331d0
40c319:	33 db                	xor    %ebx,%ebx
40c31b:	8b d0                	mov    %eax,%edx
40c31d:	43                   	inc    %ebx
40c31e:	3b d3                	cmp    %ebx,%edx
40c320:	74 1a                	je     0x40c33c
40c322:	53                   	push   %ebx
40c323:	57                   	push   %edi
40c324:	53                   	push   %ebx
40c325:	56                   	push   %esi
40c326:	6a 00                	push   $0x0
40c328:	6a 00                	push   $0x0
40c32a:	ff 15 d0 31 43 00    	call   *0x4331d0
40c330:	8b d0                	mov    %eax,%edx
40c332:	3b d3                	cmp    %ebx,%edx
40c334:	74 06                	je     0x40c33c
40c336:	0f b6 06             	movzbl (%esi),%eax
40c339:	66 89 07             	mov    %ax,(%edi)
40c33c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40c33f:	8b c2                	mov    %edx,%eax
40c341:	5f                   	pop    %edi
40c342:	5e                   	pop    %esi
40c343:	33 cd                	xor    %ebp,%ecx
40c345:	5b                   	pop    %ebx
40c346:	e8 e5 40 00 00       	call   0x410430
40c34b:	c9                   	leave
40c34c:	c2 04 00             	ret    $0x4
40c34f:	8b ff                	mov    %edi,%edi
40c351:	55                   	push   %ebp
40c352:	8b ec                	mov    %esp,%ebp
40c354:	83 ec 24             	sub    $0x24,%esp
40c357:	a1 64 10 41 00       	mov    0x411064,%eax
40c35c:	33 c5                	xor    %ebp,%eax
40c35e:	89 45 fc             	mov    %eax,-0x4(%ebp)
40c361:	53                   	push   %ebx
40c362:	56                   	push   %esi
40c363:	57                   	push   %edi
40c364:	8b 7d 08             	mov    0x8(%ebp),%edi
40c367:	8b f2                	mov    %edx,%esi
40c369:	33 db                	xor    %ebx,%ebx
40c36b:	e8 ee fe ff ff       	call   0x40c25e
40c370:	6a 01                	push   $0x1
40c372:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40c375:	51                   	push   %ecx
40c376:	50                   	push   %eax
40c377:	ff 15 78 30 43 00    	call   *0x433078
40c37d:	85 c0                	test   %eax,%eax
40c37f:	74 04                	je     0x40c385
40c381:	0f b7 5d e0          	movzwl -0x20(%ebp),%ebx
40c385:	6a 00                	push   $0x0
40c387:	6a 00                	push   $0x0
40c389:	6a 01                	push   $0x1
40c38b:	57                   	push   %edi
40c38c:	6a 01                	push   $0x1
40c38e:	56                   	push   %esi
40c38f:	68 00 04 00 00       	push   $0x400
40c394:	0f b7 c3             	movzwl %bx,%eax
40c397:	50                   	push   %eax
40c398:	ff 15 b0 31 43 00    	call   *0x4331b0
40c39e:	8b c8                	mov    %eax,%ecx
40c3a0:	85 c9                	test   %ecx,%ecx
40c3a2:	75 1e                	jne    0x40c3c2
40c3a4:	50                   	push   %eax
40c3a5:	50                   	push   %eax
40c3a6:	6a 01                	push   $0x1
40c3a8:	57                   	push   %edi
40c3a9:	6a 01                	push   $0x1
40c3ab:	56                   	push   %esi
40c3ac:	68 00 04 00 00       	push   $0x400
40c3b1:	50                   	push   %eax
40c3b2:	ff 15 b0 31 43 00    	call   *0x4331b0
40c3b8:	8b c8                	mov    %eax,%ecx
40c3ba:	85 c9                	test   %ecx,%ecx
40c3bc:	75 04                	jne    0x40c3c2
40c3be:	8a 06                	mov    (%esi),%al
40c3c0:	88 07                	mov    %al,(%edi)
40c3c2:	8b c1                	mov    %ecx,%eax
40c3c4:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40c3c7:	5f                   	pop    %edi
40c3c8:	5e                   	pop    %esi
40c3c9:	33 cd                	xor    %ebp,%ecx
40c3cb:	5b                   	pop    %ebx
40c3cc:	e8 5f 40 00 00       	call   0x410430
40c3d1:	c9                   	leave
40c3d2:	c2 04 00             	ret    $0x4
40c3d5:	8b ff                	mov    %edi,%edi
40c3d7:	55                   	push   %ebp
40c3d8:	8b ec                	mov    %esp,%ebp
40c3da:	53                   	push   %ebx
40c3db:	56                   	push   %esi
40c3dc:	0f b7 35 c4 1f 43 00 	movzwl 0x431fc4,%esi
40c3e3:	8b d9                	mov    %ecx,%ebx
40c3e5:	57                   	push   %edi
40c3e6:	6a 6c                	push   $0x6c
40c3e8:	53                   	push   %ebx
40c3e9:	8b fa                	mov    %edx,%edi
40c3eb:	ff 15 14 33 43 00    	call   *0x433314
40c3f1:	85 ff                	test   %edi,%edi
40c3f3:	74 79                	je     0x40c46e
40c3f5:	83 ff 01             	cmp    $0x1,%edi
40c3f8:	74 6c                	je     0x40c466
40c3fa:	83 ff 02             	cmp    $0x2,%edi
40c3fd:	74 62                	je     0x40c461
40c3ff:	83 ff 03             	cmp    $0x3,%edi
40c402:	74 2a                	je     0x40c42e
40c404:	8d 47 fc             	lea    -0x4(%edi),%eax
40c407:	83 f8 01             	cmp    $0x1,%eax
40c40a:	0f 87 f9 00 00 00    	ja     0x40c509
40c410:	8b 15 b0 10 41 00    	mov    0x4110b0,%edx
40c416:	0f af 55 08          	imul   0x8(%ebp),%edx
40c41a:	0f b7 05 80 26 43 00 	movzwl 0x432680,%eax
40c421:	2b d0                	sub    %eax,%edx
40c423:	0f b7 05 7c 26 43 00 	movzwl 0x43267c,%eax
40c42a:	03 d0                	add    %eax,%edx
40c42c:	eb 48                	jmp    0x40c476
40c42e:	33 d2                	xor    %edx,%edx
40c430:	51                   	push   %ecx
40c431:	8b cb                	mov    %ebx,%ecx
40c433:	e8 d8 00 00 00       	call   0x40c510
40c438:	85 c0                	test   %eax,%eax
40c43a:	0f 84 c9 00 00 00    	je     0x40c509
40c440:	0f b7 35 c4 1f 43 00 	movzwl 0x431fc4,%esi
40c447:	8b 15 48 26 43 00    	mov    0x432648,%edx
40c44d:	8b c6                	mov    %esi,%eax
40c44f:	6a 20                	push   $0x20
40c451:	c7 05 5c 1f 43 00 01 	movl   $0x1,0x431f5c
40c458:	00 00 00
40c45b:	59                   	pop    %ecx
40c45c:	e9 88 00 00 00       	jmp    0x40c4e9
40c461:	33 d2                	xor    %edx,%edx
40c463:	42                   	inc    %edx
40c464:	eb ca                	jmp    0x40c430
40c466:	8b 15 b0 10 41 00    	mov    0x4110b0,%edx
40c46c:	eb 12                	jmp    0x40c480
40c46e:	8b 15 b0 10 41 00    	mov    0x4110b0,%edx
40c474:	f7 da                	neg    %edx
40c476:	83 ff 02             	cmp    $0x2,%edi
40c479:	74 b5                	je     0x40c430
40c47b:	83 ff 03             	cmp    $0x3,%edi
40c47e:	74 b0                	je     0x40c430
40c480:	85 d2                	test   %edx,%edx
40c482:	0f 84 81 00 00 00    	je     0x40c509
40c488:	51                   	push   %ecx
40c489:	8b cb                	mov    %ebx,%ecx
40c48b:	e8 ef 00 00 00       	call   0x40c57f
40c490:	85 c0                	test   %eax,%eax
40c492:	74 75                	je     0x40c509
40c494:	66 a1 3c 13 41 00    	mov    0x41133c,%ax
40c49a:	8b 0d b0 10 41 00    	mov    0x4110b0,%ecx
40c4a0:	66 3b f0             	cmp    %ax,%si
40c4a3:	76 0a                	jbe    0x40c4af
40c4a5:	0f b7 d1             	movzwl %cx,%edx
40c4a8:	2b f2                	sub    %edx,%esi
40c4aa:	66 3b f0             	cmp    %ax,%si
40c4ad:	77 f9                	ja     0x40c4a8
40c4af:	66 a1 80 26 43 00    	mov    0x432680,%ax
40c4b5:	66 3b f0             	cmp    %ax,%si
40c4b8:	73 0a                	jae    0x40c4c4
40c4ba:	0f b7 c9             	movzwl %cx,%ecx
40c4bd:	03 f1                	add    %ecx,%esi
40c4bf:	66 3b f0             	cmp    %ax,%si
40c4c2:	72 f9                	jb     0x40c4bd
40c4c4:	8b 15 48 26 43 00    	mov    0x432648,%edx
40c4ca:	6a 20                	push   $0x20
40c4cc:	59                   	pop    %ecx
40c4cd:	eb 06                	jmp    0x40c4d5
40c4cf:	81 c6 ff ff 00 00    	add    $0xffff,%esi
40c4d5:	0f b7 c6             	movzwl %si,%eax
40c4d8:	66 39 0c 42          	cmp    %cx,(%edx,%eax,2)
40c4dc:	74 f1                	je     0x40c4cf
40c4de:	eb 0f                	jmp    0x40c4ef
40c4e0:	81 c6 ff ff 00 00    	add    $0xffff,%esi
40c4e6:	0f b7 c6             	movzwl %si,%eax
40c4e9:	66 39 0c 42          	cmp    %cx,(%edx,%eax,2)
40c4ed:	74 f1                	je     0x40c4e0
40c4ef:	83 3d 90 1f 43 00 00 	cmpl   $0x0,0x431f90
40c4f6:	66 89 35 c4 1f 43 00 	mov    %si,0x431fc4
40c4fd:	74 0a                	je     0x40c509
40c4ff:	b9 70 1f 43 00       	mov    $0x431f70,%ecx
40c504:	e8 cd 0d 00 00       	call   0x40d2d6
40c509:	5f                   	pop    %edi
40c50a:	5e                   	pop    %esi
40c50b:	5b                   	pop    %ebx
40c50c:	5d                   	pop    %ebp
40c50d:	c2 04 00             	ret    $0x4
40c510:	f7 da                	neg    %edx
40c512:	53                   	push   %ebx
40c513:	1b d2                	sbb    %edx,%edx
40c515:	8b d9                	mov    %ecx,%ebx
40c517:	56                   	push   %esi
40c518:	0f b7 35 7c 26 43 00 	movzwl 0x43267c,%esi
40c51f:	81 e2 70 fe ff ff    	and    $0xfffffe70,%edx
40c525:	57                   	push   %edi
40c526:	0f b7 3d 80 26 43 00 	movzwl 0x432680,%edi
40c52d:	81 c2 c8 00 00 00    	add    $0xc8,%edx
40c533:	8d 04 17             	lea    (%edi,%edx,1),%eax
40c536:	3b c6                	cmp    %esi,%eax
40c538:	7d 04                	jge    0x40c53e
40c53a:	2b f7                	sub    %edi,%esi
40c53c:	eb 2b                	jmp    0x40c569
40c53e:	0f b7 3d 3c 13 41 00 	movzwl 0x41133c,%edi
40c545:	8b f2                	mov    %edx,%esi
40c547:	0f b7 0d 38 13 41 00 	movzwl 0x411338,%ecx
40c54e:	8d 04 17             	lea    (%edi,%edx,1),%eax
40c551:	3b c1                	cmp    %ecx,%eax
40c553:	7e 14                	jle    0x40c569
40c555:	2b cf                	sub    %edi,%ecx
40c557:	8d 41 ff             	lea    -0x1(%ecx),%eax
40c55a:	8b 0d b0 10 41 00    	mov    0x4110b0,%ecx
40c560:	99                   	cltd
40c561:	f7 f9                	idiv   %ecx
40c563:	8d 70 01             	lea    0x1(%eax),%esi
40c566:	0f af f1             	imul   %ecx,%esi
40c569:	51                   	push   %ecx
40c56a:	8b d6                	mov    %esi,%edx
40c56c:	8b cb                	mov    %ebx,%ecx
40c56e:	e8 0c 00 00 00       	call   0x40c57f
40c573:	f7 d8                	neg    %eax
40c575:	5f                   	pop    %edi
40c576:	1b c0                	sbb    %eax,%eax
40c578:	23 c6                	and    %esi,%eax
40c57a:	5e                   	pop    %esi
40c57b:	5b                   	pop    %ebx
40c57c:	c2 04 00             	ret    $0x4
40c57f:	8b ff                	mov    %edi,%edi
40c581:	55                   	push   %ebp
40c582:	8b ec                	mov    %esp,%ebp
40c584:	51                   	push   %ecx
40c585:	51                   	push   %ecx
40c586:	0f b7 05 7c 26 43 00 	movzwl 0x43267c,%eax
40c58d:	53                   	push   %ebx
40c58e:	56                   	push   %esi
40c58f:	0f b7 35 80 26 43 00 	movzwl 0x432680,%esi
40c596:	8b d9                	mov    %ecx,%ebx
40c598:	57                   	push   %edi
40c599:	0f b7 3d 3c 13 41 00 	movzwl 0x41133c,%edi
40c5a0:	03 f2                	add    %edx,%esi
40c5a2:	03 fa                	add    %edx,%edi
40c5a4:	3b f0                	cmp    %eax,%esi
40c5a6:	0f 8c f7 00 00 00    	jl     0x40c6a3
40c5ac:	a1 b0 10 41 00       	mov    0x4110b0,%eax
40c5b1:	0f b7 0d 38 13 41 00 	movzwl 0x411338,%ecx
40c5b8:	48                   	dec    %eax
40c5b9:	03 c1                	add    %ecx,%eax
40c5bb:	3b f8                	cmp    %eax,%edi
40c5bd:	0f 8f e0 00 00 00    	jg     0x40c6a3
40c5c3:	6a 6c                	push   $0x6c
40c5c5:	53                   	push   %ebx
40c5c6:	ff 15 14 33 43 00    	call   *0x433314
40c5cc:	68 cc 00 00 00       	push   $0xcc
40c5d1:	53                   	push   %ebx
40c5d2:	89 45 f8             	mov    %eax,-0x8(%ebp)
40c5d5:	ff 15 14 33 43 00    	call   *0x433314
40c5db:	0f b7 0d 7c 26 43 00 	movzwl 0x43267c,%ecx
40c5e2:	89 45 fc             	mov    %eax,-0x4(%ebp)
40c5e5:	8b c6                	mov    %esi,%eax
40c5e7:	2b c1                	sub    %ecx,%eax
40c5e9:	99                   	cltd
40c5ea:	f7 3d b0 10 41 00    	idivl  0x4110b0
40c5f0:	6a 01                	push   $0x1
40c5f2:	50                   	push   %eax
40c5f3:	6a 02                	push   $0x2
40c5f5:	ff 75 fc             	push   -0x4(%ebp)
40c5f8:	ff 15 d0 32 43 00    	call   *0x4332d0
40c5fe:	57                   	push   %edi
40c5ff:	8b d6                	mov    %esi,%edx
40c601:	8b cb                	mov    %ebx,%ecx
40c603:	e8 f8 13 00 00       	call   0x40da00
40c608:	85 db                	test   %ebx,%ebx
40c60a:	74 78                	je     0x40c684
40c60c:	53                   	push   %ebx
40c60d:	ff 15 f0 32 43 00    	call   *0x4332f0
40c613:	8b f8                	mov    %eax,%edi
40c615:	85 ff                	test   %edi,%edi
40c617:	74 6b                	je     0x40c684
40c619:	ff 35 cc 1f 43 00    	push   0x431fcc
40c61f:	57                   	push   %edi
40c620:	ff 15 ac 30 43 00    	call   *0x4330ac
40c626:	0f b7 15 80 26 43 00 	movzwl 0x432680,%edx
40c62d:	8b f0                	mov    %eax,%esi
40c62f:	51                   	push   %ecx
40c630:	0f b7 0d 3c 13 41 00 	movzwl 0x41133c,%ecx
40c637:	68 d8 1f 43 00       	push   $0x431fd8
40c63c:	51                   	push   %ecx
40c63d:	8b cf                	mov    %edi,%ecx
40c63f:	e8 a7 85 ff ff       	call   0x404beb
40c644:	56                   	push   %esi
40c645:	57                   	push   %edi
40c646:	ff 15 ac 30 43 00    	call   *0x4330ac
40c64c:	0f b7 0d 3c 13 41 00 	movzwl 0x41133c,%ecx
40c653:	0f b7 05 80 26 43 00 	movzwl 0x432680,%eax
40c65a:	3b c1                	cmp    %ecx,%eax
40c65c:	77 1e                	ja     0x40c67c
40c65e:	2b c8                	sub    %eax,%ecx
40c660:	be d8 1f 43 00       	mov    $0x431fd8,%esi
40c665:	41                   	inc    %ecx
40c666:	a1 70 1f 43 00       	mov    0x431f70,%eax
40c66b:	2b 06                	sub    (%esi),%eax
40c66d:	99                   	cltd
40c66e:	2b c2                	sub    %edx,%eax