41e2b6:	68 20 1a 43 00       	push   $0x431a20
41e2bb:	e8 00 9d fe ff       	call   0x407fc0
41e2c0:	8b 75 18             	mov    0x18(%ebp),%esi
41e2c3:	85 f6                	test   %esi,%esi
41e2c5:	75 13                	jne    0x41e2da
41e2c7:	e8 2f 0b ff ff       	call   0x40edfb
41e2cc:	6a 16                	push   $0x16
41e2ce:	5e                   	pop    %esi
41e2cf:	89 30                	mov    %esi,(%eax)
41e2d1:	e8 ab ed fe ff       	call   0x40d081
41e2d6:	8b c6                	mov    %esi,%eax
41e2d8:	eb 59                	jmp    0x41e333
41e2da:	83 0e ff             	orl    $0xffffffff,(%esi)
41e2dd:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
41e2e1:	74 e4                	je     0x41e2c7
41e2e3:	83 7d 1c 00          	cmpl   $0x0,0x1c(%ebp)
41e2e7:	74 09                	je     0x41e2f2
41e2e9:	f7 45 14 7f fe ff ff 	testl  $0xfffffe7f,0x14(%ebp)
41e2f0:	75 d5                	jne    0x41e2c7
41e2f2:	33 c0                	xor    %eax,%eax
41e2f4:	89 45 e0             	mov    %eax,-0x20(%ebp)
41e2f7:	89 45 e4             	mov    %eax,-0x1c(%ebp)
41e2fa:	89 45 fc             	mov    %eax,-0x4(%ebp)
41e2fd:	ff 75 1c             	push   0x1c(%ebp)
41e300:	ff 75 14             	push   0x14(%ebp)
41e303:	ff 75 10             	push   0x10(%ebp)
41e306:	ff 75 0c             	push   0xc(%ebp)
41e309:	ff 75 08             	push   0x8(%ebp)
41e30c:	56                   	push   %esi
41e30d:	8d 45 e0             	lea    -0x20(%ebp),%eax
41e310:	50                   	push   %eax
41e311:	e8 6b 05 00 00       	call   0x41e881
41e316:	83 c4 1c             	add    $0x1c,%esp
41e319:	8b f8                	mov    %eax,%edi
41e31b:	89 7d e4             	mov    %edi,-0x1c(%ebp)
41e31e:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
41e325:	e8 1f 00 00 00       	call   0x41e349
41e32a:	85 ff                	test   %edi,%edi
41e32c:	74 03                	je     0x41e331
41e32e:	83 0e ff             	orl    $0xffffffff,(%esi)
41e331:	8b c7                	mov    %edi,%eax
41e333:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41e336:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
41e33d:	59                   	pop    %ecx
41e33e:	5f                   	pop    %edi
41e33f:	5e                   	pop    %esi
41e340:	5b                   	pop    %ebx
41e341:	c9                   	leave
41e342:	c3                   	ret
41e343:	8b 75 18             	mov    0x18(%ebp),%esi
41e346:	8b 7d e4             	mov    -0x1c(%ebp),%edi
41e349:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
41e34d:	74 25                	je     0x41e374
41e34f:	85 ff                	test   %edi,%edi
41e351:	74 19                	je     0x41e36c
41e353:	8b 0e                	mov    (%esi),%ecx
41e355:	8b c1                	mov    %ecx,%eax
41e357:	c1 f8 06             	sar    $0x6,%eax
41e35a:	83 e1 3f             	and    $0x3f,%ecx
41e35d:	6b c9 38             	imul   $0x38,%ecx,%ecx
41e360:	8b 04 85 c0 4a 43 00 	mov    0x434ac0(,%eax,4),%eax
41e367:	80 64 08 28 fe       	andb   $0xfe,0x28(%eax,%ecx,1)
41e36c:	ff 36                	push   (%esi)
41e36e:	e8 bc d2 ff ff       	call   0x41b62f
41e373:	59                   	pop    %ecx
41e374:	c3                   	ret
41e375:	8b ff                	mov    %edi,%edi
41e377:	55                   	push   %ebp
41e378:	8b ec                	mov    %esp,%ebp
41e37a:	51                   	push   %ecx
41e37b:	8b 45 08             	mov    0x8(%ebp),%eax
41e37e:	8b 55 08             	mov    0x8(%ebp),%edx
41e381:	83 e0 3f             	and    $0x3f,%eax
41e384:	53                   	push   %ebx
41e385:	56                   	push   %esi
41e386:	57                   	push   %edi
41e387:	8b 7d 28             	mov    0x28(%ebp),%edi
41e38a:	33 db                	xor    %ebx,%ebx
41e38c:	c1 fa 06             	sar    $0x6,%edx
41e38f:	6b c8 38             	imul   $0x38,%eax,%ecx
41e392:	88 1f                	mov    %bl,(%edi)
41e394:	8b 04 95 c0 4a 43 00 	mov    0x434ac0(,%edx,4),%eax
41e39b:	38 5c 08 28          	cmp    %bl,0x28(%eax,%ecx,1)
41e39f:	0f 8d 11 02 00 00    	jge    0x41e5b6
41e3a5:	8b 75 24             	mov    0x24(%ebp),%esi
41e3a8:	f7 c6 00 40 07 00    	test   $0x74000,%esi
41e3ae:	75 25                	jne    0x41e3d5
41e3b0:	8d 45 fc             	lea    -0x4(%ebp),%eax
41e3b3:	89 5d fc             	mov    %ebx,-0x4(%ebp)
41e3b6:	50                   	push   %eax
41e3b7:	e8 c5 21 ff ff       	call   0x410581
41e3bc:	59                   	pop    %ecx
41e3bd:	85 c0                	test   %eax,%eax
41e3bf:	0f 85 f8 01 00 00    	jne    0x41e5bd
41e3c5:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e3c8:	25 00 40 07 00       	and    $0x74000,%eax
41e3cd:	75 43                	jne    0x41e412
41e3cf:	81 ce 00 40 00 00    	or     $0x4000,%esi
41e3d5:	8b c6                	mov    %esi,%eax
41e3d7:	25 00 40 07 00       	and    $0x74000,%eax
41e3dc:	3d 00 40 00 00       	cmp    $0x4000,%eax
41e3e1:	74 45                	je     0x41e428
41e3e3:	3d 00 00 01 00       	cmp    $0x10000,%eax
41e3e8:	74 2c                	je     0x41e416
41e3ea:	3d 00 40 01 00       	cmp    $0x14000,%eax
41e3ef:	74 25                	je     0x41e416
41e3f1:	3d 00 00 02 00       	cmp    $0x20000,%eax
41e3f6:	74 2b                	je     0x41e423
41e3f8:	3d 00 40 02 00       	cmp    $0x24000,%eax
41e3fd:	74 24                	je     0x41e423
41e3ff:	3d 00 00 04 00       	cmp    $0x40000,%eax
41e404:	74 07                	je     0x41e40d
41e406:	3d 00 40 04 00       	cmp    $0x44000,%eax
41e40b:	75 1d                	jne    0x41e42a
41e40d:	c6 07 01             	movb   $0x1,(%edi)
41e410:	eb 18                	jmp    0x41e42a
41e412:	0b f0                	or     %eax,%esi
41e414:	eb bf                	jmp    0x41e3d5
41e416:	b9 01 03 00 00       	mov    $0x301,%ecx
41e41b:	8b c6                	mov    %esi,%eax
41e41d:	23 c1                	and    %ecx,%eax
41e41f:	3b c1                	cmp    %ecx,%eax
41e421:	75 07                	jne    0x41e42a
41e423:	c6 07 02             	movb   $0x2,(%edi)
41e426:	eb 02                	jmp    0x41e42a
41e428:	88 1f                	mov    %bl,(%edi)
41e42a:	f7 c6 00 00 07 00    	test   $0x70000,%esi
41e430:	0f 84 80 01 00 00    	je     0x41e5b6
41e436:	f6 45 0c 40          	testb  $0x40,0xc(%ebp)
41e43a:	0f 85 76 01 00 00    	jne    0x41e5b6
41e440:	8b 45 10             	mov    0x10(%ebp),%eax
41e443:	ba 00 00 00 c0       	mov    $0xc0000000,%edx
41e448:	23 c2                	and    %edx,%eax
41e44a:	8b cb                	mov    %ebx,%ecx
41e44c:	8b f3                	mov    %ebx,%esi
41e44e:	3d 00 00 00 40       	cmp    $0x40000000,%eax
41e453:	74 0f                	je     0x41e464
41e455:	3d 00 00 00 80       	cmp    $0x80000000,%eax
41e45a:	74 31                	je     0x41e48d
41e45c:	3b c2                	cmp    %edx,%eax
41e45e:	0f 85 52 01 00 00    	jne    0x41e5b6
41e464:	8b 45 14             	mov    0x14(%ebp),%eax
41e467:	85 c0                	test   %eax,%eax
41e469:	0f 84 47 01 00 00    	je     0x41e5b6
41e46f:	83 f8 02             	cmp    $0x2,%eax
41e472:	76 0e                	jbe    0x41e482
41e474:	83 f8 04             	cmp    $0x4,%eax
41e477:	76 5b                	jbe    0x41e4d4
41e479:	83 f8 05             	cmp    $0x5,%eax
41e47c:	0f 85 34 01 00 00    	jne    0x41e5b6
41e482:	33 f6                	xor    %esi,%esi
41e484:	46                   	inc    %esi
41e485:	85 c9                	test   %ecx,%ecx
41e487:	0f 84 d4 00 00 00    	je     0x41e561
41e48d:	6a 03                	push   $0x3
41e48f:	8d 45 fc             	lea    -0x4(%ebp),%eax
41e492:	89 5d fc             	mov    %ebx,-0x4(%ebp)
41e495:	50                   	push   %eax
41e496:	ff 75 08             	push   0x8(%ebp)
41e499:	e8 5c 93 ff ff       	call   0x4177fa
41e49e:	83 c4 0c             	add    $0xc,%esp
41e4a1:	85 c0                	test   %eax,%eax
41e4a3:	7e 09                	jle    0x41e4ae
41e4a5:	8d 4e ff             	lea    -0x1(%esi),%ecx
41e4a8:	f7 d9                	neg    %ecx
41e4aa:	1b c9                	sbb    %ecx,%ecx
41e4ac:	23 f1                	and    %ecx,%esi
41e4ae:	83 f8 ff             	cmp    $0xffffffff,%eax
41e4b1:	74 49                	je     0x41e4fc
41e4b3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41e4b6:	83 f8 02             	cmp    $0x2,%eax
41e4b9:	74 58                	je     0x41e513
41e4bb:	83 f8 03             	cmp    $0x3,%eax
41e4be:	0f 85 88 00 00 00    	jne    0x41e54c
41e4c4:	81 f9 ef bb bf 00    	cmp    $0xbfbbef,%ecx
41e4ca:	75 47                	jne    0x41e513
41e4cc:	c6 07 01             	movb   $0x1,(%edi)
41e4cf:	e9 8d 00 00 00       	jmp    0x41e561
41e4d4:	6a 02                	push   $0x2
41e4d6:	53                   	push   %ebx
41e4d7:	53                   	push   %ebx
41e4d8:	ff 75 08             	push   0x8(%ebp)
41e4db:	e8 6d 98 ff ff       	call   0x417d4d
41e4e0:	83 c4 10             	add    $0x10,%esp
41e4e3:	0b c2                	or     %edx,%eax
41e4e5:	74 7e                	je     0x41e565
41e4e7:	53                   	push   %ebx
41e4e8:	53                   	push   %ebx
41e4e9:	53                   	push   %ebx
41e4ea:	ff 75 08             	push   0x8(%ebp)
41e4ed:	e8 5b 98 ff ff       	call   0x417d4d
41e4f2:	23 c2                	and    %edx,%eax
41e4f4:	83 c4 10             	add    $0x10,%esp
41e4f7:	83 f8 ff             	cmp    $0xffffffff,%eax
41e4fa:	75 0c                	jne    0x41e508
41e4fc:	e8 fa 08 ff ff       	call   0x40edfb
41e501:	8b 00                	mov    (%eax),%eax
41e503:	e9 b0 00 00 00       	jmp    0x41e5b8
41e508:	8b 4d 10             	mov    0x10(%ebp),%ecx
41e50b:	c1 e9 1f             	shr    $0x1f,%ecx
41e50e:	e9 72 ff ff ff       	jmp    0x41e485
41e513:	0f b7 c1             	movzwl %cx,%eax
41e516:	3d fe ff 00 00       	cmp    $0xfffe,%eax
41e51b:	75 0d                	jne    0x41e52a
41e51d:	e8 d9 08 ff ff       	call   0x40edfb
41e522:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
41e528:	eb d2                	jmp    0x41e4fc
41e52a:	3d ff fe 00 00       	cmp    $0xfeff,%eax
41e52f:	75 1b                	jne    0x41e54c
41e531:	53                   	push   %ebx
41e532:	53                   	push   %ebx
41e533:	6a 02                	push   $0x2
41e535:	ff 75 08             	push   0x8(%ebp)
41e538:	e8 10 98 ff ff       	call   0x417d4d
41e53d:	23 c2                	and    %edx,%eax
41e53f:	83 c4 10             	add    $0x10,%esp
41e542:	83 f8 ff             	cmp    $0xffffffff,%eax
41e545:	74 b5                	je     0x41e4fc
41e547:	c6 07 02             	movb   $0x2,(%edi)
41e54a:	eb 15                	jmp    0x41e561
41e54c:	53                   	push   %ebx
41e54d:	53                   	push   %ebx
41e54e:	53                   	push   %ebx
41e54f:	ff 75 08             	push   0x8(%ebp)
41e552:	e8 f6 97 ff ff       	call   0x417d4d
41e557:	23 c2                	and    %edx,%eax
41e559:	83 c4 10             	add    $0x10,%esp
41e55c:	83 f8 ff             	cmp    $0xffffffff,%eax
41e55f:	74 9b                	je     0x41e4fc
41e561:	85 f6                	test   %esi,%esi
41e563:	74 51                	je     0x41e5b6
41e565:	0f be 07             	movsbl (%edi),%eax
41e568:	8b f3                	mov    %ebx,%esi
41e56a:	89 5d fc             	mov    %ebx,-0x4(%ebp)
41e56d:	83 e8 01             	sub    $0x1,%eax
41e570:	74 11                	je     0x41e583
41e572:	83 e8 01             	sub    $0x1,%eax
41e575:	75 16                	jne    0x41e58d
41e577:	6a 02                	push   $0x2
41e579:	c7 45 fc ff fe 00 00 	movl   $0xfeff,-0x4(%ebp)
41e580:	5e                   	pop    %esi
41e581:	eb 0e                	jmp    0x41e591
41e583:	6a 03                	push   $0x3
41e585:	c7 45 fc ef bb bf 00 	movl   $0xbfbbef,-0x4(%ebp)
41e58c:	5e                   	pop    %esi
41e58d:	85 f6                	test   %esi,%esi
41e58f:	74 25                	je     0x41e5b6
41e591:	8b c6                	mov    %esi,%eax
41e593:	2b c3                	sub    %ebx,%eax
41e595:	50                   	push   %eax
41e596:	8d 45 fc             	lea    -0x4(%ebp),%eax
41e599:	03 c3                	add    %ebx,%eax
41e59b:	50                   	push   %eax
41e59c:	ff 75 08             	push   0x8(%ebp)
41e59f:	e8 d9 7f ff ff       	call   0x41657d
41e5a4:	83 c4 0c             	add    $0xc,%esp
41e5a7:	83 f8 ff             	cmp    $0xffffffff,%eax
41e5aa:	0f 84 4c ff ff ff    	je     0x41e4fc
41e5b0:	03 d8                	add    %eax,%ebx
41e5b2:	3b f3                	cmp    %ebx,%esi
41e5b4:	7f db                	jg     0x41e591
41e5b6:	33 c0                	xor    %eax,%eax
41e5b8:	5f                   	pop    %edi
41e5b9:	5e                   	pop    %esi
41e5ba:	5b                   	pop    %ebx
41e5bb:	c9                   	leave
41e5bc:	c3                   	ret
41e5bd:	53                   	push   %ebx
41e5be:	53                   	push   %ebx
41e5bf:	53                   	push   %ebx
41e5c0:	53                   	push   %ebx
41e5c1:	53                   	push   %ebx
41e5c2:	e8 e7 ea fe ff       	call   0x40d0ae
41e5c7:	cc                   	int3
41e5c8:	8b ff                	mov    %edi,%edi
41e5ca:	55                   	push   %ebp
41e5cb:	8b ec                	mov    %esp,%ebp
41e5cd:	8b 45 20             	mov    0x20(%ebp),%eax
41e5d0:	0b 45 24             	or     0x24(%ebp),%eax
41e5d3:	6a 00                	push   $0x0
41e5d5:	50                   	push   %eax
41e5d6:	ff 75 18             	push   0x18(%ebp)
41e5d9:	ff 75 0c             	push   0xc(%ebp)
41e5dc:	ff 75 1c             	push   0x1c(%ebp)
41e5df:	ff 75 14             	push   0x14(%ebp)
41e5e2:	ff 75 08             	push   0x8(%ebp)
41e5e5:	ff 15 14 40 42 00    	call   *0x424014
41e5eb:	5d                   	pop    %ebp
41e5ec:	c3                   	ret
41e5ed:	8b ff                	mov    %edi,%edi
41e5ef:	55                   	push   %ebp
41e5f0:	8b ec                	mov    %esp,%ebp
41e5f2:	8b 45 08             	mov    0x8(%ebp),%eax
41e5f5:	ba 00 07 00 00       	mov    $0x700,%edx
41e5fa:	23 c2                	and    %edx,%eax
41e5fc:	b9 00 04 00 00       	mov    $0x400,%ecx
41e601:	3b c1                	cmp    %ecx,%eax
41e603:	77 28                	ja     0x41e62d
41e605:	74 21                	je     0x41e628
41e607:	85 c0                	test   %eax,%eax
41e609:	74 1d                	je     0x41e628
41e60b:	3d 00 01 00 00       	cmp    $0x100,%eax
41e610:	74 12                	je     0x41e624
41e612:	3d 00 02 00 00       	cmp    $0x200,%eax
41e617:	74 3b                	je     0x41e654
41e619:	3d 00 03 00 00       	cmp    $0x300,%eax
41e61e:	75 1f                	jne    0x41e63f
41e620:	6a 02                	push   $0x2
41e622:	eb 06                	jmp    0x41e62a
41e624:	6a 04                	push   $0x4
41e626:	eb 02                	jmp    0x41e62a
41e628:	6a 03                	push   $0x3
41e62a:	58                   	pop    %eax
41e62b:	5d                   	pop    %ebp
41e62c:	c3                   	ret
41e62d:	3d 00 05 00 00       	cmp    $0x500,%eax
41e632:	74 24                	je     0x41e658
41e634:	3d 00 06 00 00       	cmp    $0x600,%eax
41e639:	74 19                	je     0x41e654
41e63b:	3b c2                	cmp    %edx,%eax
41e63d:	74 19                	je     0x41e658
41e63f:	e8 b7 07 ff ff       	call   0x40edfb
41e644:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
41e64a:	e8 32 ea fe ff       	call   0x40d081
41e64f:	83 c8 ff             	or     $0xffffffff,%eax
41e652:	5d                   	pop    %ebp
41e653:	c3                   	ret
41e654:	6a 05                	push   $0x5
41e656:	eb d2                	jmp    0x41e62a
41e658:	33 c0                	xor    %eax,%eax
41e65a:	40                   	inc    %eax
41e65b:	5d                   	pop    %ebp
41e65c:	c3                   	ret
41e65d:	8b ff                	mov    %edi,%edi
41e65f:	55                   	push   %ebp
41e660:	8b ec                	mov    %esp,%ebp
41e662:	51                   	push   %ecx
41e663:	53                   	push   %ebx
41e664:	8b 5d 0c             	mov    0xc(%ebp),%ebx
41e667:	8b c3                	mov    %ebx,%eax
41e669:	56                   	push   %esi
41e66a:	8b 75 08             	mov    0x8(%ebp),%esi
41e66d:	83 e0 03             	and    $0x3,%eax
41e670:	57                   	push   %edi
41e671:	bf 00 00 00 80       	mov    $0x80000000,%edi
41e676:	c6 06 00             	movb   $0x0,(%esi)
41e679:	83 e8 00             	sub    $0x0,%eax
41e67c:	74 47                	je     0x41e6c5
41e67e:	83 e8 01             	sub    $0x1,%eax
41e681:	74 21                	je     0x41e6a4