43a31b:	55                   	push   %ebp
43a31c:	8b 6c 24 08          	mov    0x8(%esp),%ebp
43a320:	52                   	push   %edx
43a321:	51                   	push   %ecx
43a322:	ff 74 24 14          	push   0x14(%esp)
43a326:	e8 b5 fe ff ff       	call   0x43a1e0
43a32b:	83 c4 0c             	add    $0xc,%esp
43a32e:	5d                   	pop    %ebp
43a32f:	c2 08 00             	ret    $0x8
43a332:	8b ff                	mov    %edi,%edi
43a334:	55                   	push   %ebp
43a335:	8b ec                	mov    %esp,%ebp
43a337:	56                   	push   %esi
43a338:	8b 75 08             	mov    0x8(%ebp),%esi
43a33b:	85 f6                	test   %esi,%esi
43a33d:	75 15                	jne    0x43a354
43a33f:	e8 64 a6 ff ff       	call   0x4349a8
43a344:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
43a34a:	e8 1f a0 ff ff       	call   0x43436e
43a34f:	e9 fa 00 00 00       	jmp    0x43a44e
43a354:	8b 46 0c             	mov    0xc(%esi),%eax
43a357:	a8 83                	test   $0x83,%al
43a359:	0f 84 ef 00 00 00    	je     0x43a44e
43a35f:	a8 40                	test   $0x40,%al
43a361:	0f 85 e7 00 00 00    	jne    0x43a44e
43a367:	a8 02                	test   $0x2,%al
43a369:	74 0b                	je     0x43a376
43a36b:	83 c8 20             	or     $0x20,%eax
43a36e:	89 46 0c             	mov    %eax,0xc(%esi)
43a371:	e9 d8 00 00 00       	jmp    0x43a44e
43a376:	83 c8 01             	or     $0x1,%eax
43a379:	89 46 0c             	mov    %eax,0xc(%esi)
43a37c:	a9 0c 01 00 00       	test   $0x10c,%eax
43a381:	75 09                	jne    0x43a38c
43a383:	56                   	push   %esi
43a384:	e8 f0 73 00 00       	call   0x441779
43a389:	59                   	pop    %ecx
43a38a:	eb 05                	jmp    0x43a391
43a38c:	8b 46 08             	mov    0x8(%esi),%eax
43a38f:	89 06                	mov    %eax,(%esi)
43a391:	ff 76 18             	push   0x18(%esi)
43a394:	ff 76 08             	push   0x8(%esi)
43a397:	56                   	push   %esi
43a398:	e8 75 be ff ff       	call   0x436212
43a39d:	59                   	pop    %ecx
43a39e:	50                   	push   %eax
43a39f:	e8 f7 78 ff ff       	call   0x431c9b
43a3a4:	83 c4 0c             	add    $0xc,%esp
43a3a7:	89 46 04             	mov    %eax,0x4(%esi)
43a3aa:	85 c0                	test   %eax,%eax
43a3ac:	0f 84 8b 00 00 00    	je     0x43a43d
43a3b2:	83 f8 ff             	cmp    $0xffffffff,%eax
43a3b5:	0f 84 82 00 00 00    	je     0x43a43d
43a3bb:	f6 46 0c 82          	testb  $0x82,0xc(%esi)
43a3bf:	75 51                	jne    0x43a412
43a3c1:	56                   	push   %esi
43a3c2:	e8 4b be ff ff       	call   0x436212
43a3c7:	59                   	pop    %ecx
43a3c8:	83 f8 ff             	cmp    $0xffffffff,%eax
43a3cb:	74 30                	je     0x43a3fd
43a3cd:	56                   	push   %esi
43a3ce:	e8 3f be ff ff       	call   0x436212
43a3d3:	59                   	pop    %ecx
43a3d4:	83 f8 fe             	cmp    $0xfffffffe,%eax
43a3d7:	74 24                	je     0x43a3fd
43a3d9:	57                   	push   %edi
43a3da:	56                   	push   %esi
43a3db:	e8 32 be ff ff       	call   0x436212
43a3e0:	c1 f8 05             	sar    $0x5,%eax
43a3e3:	56                   	push   %esi
43a3e4:	8d 3c 85 80 17 47 00 	lea    0x471780(,%eax,4),%edi
43a3eb:	e8 22 be ff ff       	call   0x436212
43a3f0:	83 e0 1f             	and    $0x1f,%eax
43a3f3:	59                   	pop    %ecx
43a3f4:	c1 e0 06             	shl    $0x6,%eax
43a3f7:	03 07                	add    (%edi),%eax
43a3f9:	59                   	pop    %ecx
43a3fa:	5f                   	pop    %edi
43a3fb:	eb 05                	jmp    0x43a402
43a3fd:	b8 68 f6 46 00       	mov    $0x46f668,%eax
43a402:	8a 40 04             	mov    0x4(%eax),%al
43a405:	24 82                	and    $0x82,%al
43a407:	3c 82                	cmp    $0x82,%al
43a409:	75 07                	jne    0x43a412
43a40b:	81 4e 0c 00 20 00 00 	orl    $0x2000,0xc(%esi)
43a412:	81 7e 18 00 02 00 00 	cmpl   $0x200,0x18(%esi)
43a419:	75 15                	jne    0x43a430
43a41b:	8b 46 0c             	mov    0xc(%esi),%eax
43a41e:	a8 08                	test   $0x8,%al
43a420:	74 0e                	je     0x43a430
43a422:	a9 00 04 00 00       	test   $0x400,%eax
43a427:	75 07                	jne    0x43a430
43a429:	c7 46 18 00 10 00 00 	movl   $0x1000,0x18(%esi)
43a430:	8b 0e                	mov    (%esi),%ecx
43a432:	ff 4e 04             	decl   0x4(%esi)
43a435:	0f b6 01             	movzbl (%ecx),%eax
43a438:	41                   	inc    %ecx
43a439:	89 0e                	mov    %ecx,(%esi)
43a43b:	eb 14                	jmp    0x43a451
43a43d:	f7 d8                	neg    %eax
43a43f:	1b c0                	sbb    %eax,%eax
43a441:	83 e0 10             	and    $0x10,%eax
43a444:	83 c0 10             	add    $0x10,%eax
43a447:	09 46 0c             	or     %eax,0xc(%esi)
43a44a:	83 66 04 00          	andl   $0x0,0x4(%esi)
43a44e:	83 c8 ff             	or     $0xffffffff,%eax
43a451:	5e                   	pop    %esi
43a452:	5d                   	pop    %ebp
43a453:	c3                   	ret
43a454:	8b ff                	mov    %edi,%edi
43a456:	55                   	push   %ebp
43a457:	8b ec                	mov    %esp,%ebp
43a459:	56                   	push   %esi
43a45a:	8b 75 14             	mov    0x14(%ebp),%esi
43a45d:	85 f6                	test   %esi,%esi
43a45f:	75 04                	jne    0x43a465
43a461:	33 c0                	xor    %eax,%eax
43a463:	eb 61                	jmp    0x43a4c6
43a465:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
43a469:	75 13                	jne    0x43a47e
43a46b:	e8 38 a5 ff ff       	call   0x4349a8
43a470:	6a 16                	push   $0x16
43a472:	5e                   	pop    %esi
43a473:	89 30                	mov    %esi,(%eax)
43a475:	e8 f4 9e ff ff       	call   0x43436e
43a47a:	8b c6                	mov    %esi,%eax
43a47c:	eb 48                	jmp    0x43a4c6
43a47e:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
43a482:	74 16                	je     0x43a49a
43a484:	39 75 0c             	cmp    %esi,0xc(%ebp)
43a487:	72 11                	jb     0x43a49a
43a489:	56                   	push   %esi
43a48a:	ff 75 10             	push   0x10(%ebp)
43a48d:	ff 75 08             	push   0x8(%ebp)
43a490:	e8 7b 88 ff ff       	call   0x432d10
43a495:	83 c4 0c             	add    $0xc,%esp
43a498:	eb c7                	jmp    0x43a461
43a49a:	ff 75 0c             	push   0xc(%ebp)
43a49d:	6a 00                	push   $0x0
43a49f:	ff 75 08             	push   0x8(%ebp)
43a4a2:	e8 c9 66 ff ff       	call   0x430b70
43a4a7:	83 c4 0c             	add    $0xc,%esp
43a4aa:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
43a4ae:	74 bb                	je     0x43a46b
43a4b0:	39 75 0c             	cmp    %esi,0xc(%ebp)
43a4b3:	73 0e                	jae    0x43a4c3
43a4b5:	e8 ee a4 ff ff       	call   0x4349a8
43a4ba:	6a 22                	push   $0x22
43a4bc:	59                   	pop    %ecx
43a4bd:	89 08                	mov    %ecx,(%eax)
43a4bf:	8b f1                	mov    %ecx,%esi
43a4c1:	eb b2                	jmp    0x43a475
43a4c3:	6a 16                	push   $0x16
43a4c5:	58                   	pop    %eax
43a4c6:	5e                   	pop    %esi
43a4c7:	5d                   	pop    %ebp
43a4c8:	c3                   	ret
43a4c9:	8b ff                	mov    %edi,%edi
43a4cb:	55                   	push   %ebp
43a4cc:	8b ec                	mov    %esp,%ebp
43a4ce:	8b 45 08             	mov    0x8(%ebp),%eax
43a4d1:	56                   	push   %esi
43a4d2:	57                   	push   %edi
43a4d3:	85 c0                	test   %eax,%eax
43a4d5:	78 59                	js     0x43a530
43a4d7:	3b 05 2c 17 47 00    	cmp    0x47172c,%eax
43a4dd:	73 51                	jae    0x43a530
43a4df:	8b c8                	mov    %eax,%ecx
43a4e1:	c1 f9 05             	sar    $0x5,%ecx
43a4e4:	8b f0                	mov    %eax,%esi
43a4e6:	83 e6 1f             	and    $0x1f,%esi
43a4e9:	8d 3c 8d 80 17 47 00 	lea    0x471780(,%ecx,4),%edi
43a4f0:	8b 0f                	mov    (%edi),%ecx
43a4f2:	c1 e6 06             	shl    $0x6,%esi
43a4f5:	83 3c 0e ff          	cmpl   $0xffffffff,(%esi,%ecx,1)
43a4f9:	75 35                	jne    0x43a530
43a4fb:	83 3d 98 f2 46 00 01 	cmpl   $0x1,0x46f298
43a502:	53                   	push   %ebx
43a503:	8b 5d 0c             	mov    0xc(%ebp),%ebx
43a506:	75 1e                	jne    0x43a526
43a508:	83 e8 00             	sub    $0x0,%eax
43a50b:	74 10                	je     0x43a51d
43a50d:	48                   	dec    %eax
43a50e:	74 08                	je     0x43a518
43a510:	48                   	dec    %eax
43a511:	75 13                	jne    0x43a526
43a513:	53                   	push   %ebx
43a514:	6a f4                	push   $0xfffffff4
43a516:	eb 08                	jmp    0x43a520
43a518:	53                   	push   %ebx
43a519:	6a f5                	push   $0xfffffff5
43a51b:	eb 03                	jmp    0x43a520
43a51d:	53                   	push   %ebx
43a51e:	6a f6                	push   $0xfffffff6
43a520:	ff 15 a8 35 47 00    	call   *0x4735a8
43a526:	8b 07                	mov    (%edi),%eax
43a528:	89 1c 06             	mov    %ebx,(%esi,%eax,1)
43a52b:	33 c0                	xor    %eax,%eax
43a52d:	5b                   	pop    %ebx
43a52e:	eb 16                	jmp    0x43a546
43a530:	e8 73 a4 ff ff       	call   0x4349a8
43a535:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
43a53b:	e8 7b a4 ff ff       	call   0x4349bb
43a540:	83 20 00             	andl   $0x0,(%eax)
43a543:	83 c8 ff             	or     $0xffffffff,%eax
43a546:	5f                   	pop    %edi
43a547:	5e                   	pop    %esi
43a548:	5d                   	pop    %ebp
43a549:	c3                   	ret
43a54a:	8b ff                	mov    %edi,%edi
43a54c:	55                   	push   %ebp
43a54d:	8b ec                	mov    %esp,%ebp
43a54f:	8b 4d 08             	mov    0x8(%ebp),%ecx
43a552:	53                   	push   %ebx
43a553:	33 db                	xor    %ebx,%ebx
43a555:	56                   	push   %esi
43a556:	57                   	push   %edi
43a557:	3b cb                	cmp    %ebx,%ecx
43a559:	7c 5b                	jl     0x43a5b6
43a55b:	3b 0d 2c 17 47 00    	cmp    0x47172c,%ecx
43a561:	73 53                	jae    0x43a5b6
43a563:	8b c1                	mov    %ecx,%eax
43a565:	c1 f8 05             	sar    $0x5,%eax
43a568:	8b f1                	mov    %ecx,%esi
43a56a:	83 e6 1f             	and    $0x1f,%esi
43a56d:	8d 3c 85 80 17 47 00 	lea    0x471780(,%eax,4),%edi
43a574:	8b 07                	mov    (%edi),%eax
43a576:	c1 e6 06             	shl    $0x6,%esi
43a579:	f6 44 30 04 01       	testb  $0x1,0x4(%eax,%esi,1)
43a57e:	74 36                	je     0x43a5b6
43a580:	83 3c 30 ff          	cmpl   $0xffffffff,(%eax,%esi,1)
43a584:	74 30                	je     0x43a5b6
43a586:	83 3d 98 f2 46 00 01 	cmpl   $0x1,0x46f298
43a58d:	75 1d                	jne    0x43a5ac
43a58f:	2b cb                	sub    %ebx,%ecx
43a591:	74 10                	je     0x43a5a3
43a593:	49                   	dec    %ecx
43a594:	74 08                	je     0x43a59e
43a596:	49                   	dec    %ecx
43a597:	75 13                	jne    0x43a5ac
43a599:	53                   	push   %ebx
43a59a:	6a f4                	push   $0xfffffff4
43a59c:	eb 08                	jmp    0x43a5a6
43a59e:	53                   	push   %ebx
43a59f:	6a f5                	push   $0xfffffff5
43a5a1:	eb 03                	jmp    0x43a5a6
43a5a3:	53                   	push   %ebx
43a5a4:	6a f6                	push   $0xfffffff6
43a5a6:	ff 15 a8 35 47 00    	call   *0x4735a8
43a5ac:	8b 07                	mov    (%edi),%eax
43a5ae:	83 0c 06 ff          	orl    $0xffffffff,(%esi,%eax,1)
43a5b2:	33 c0                	xor    %eax,%eax
43a5b4:	eb 15                	jmp    0x43a5cb
43a5b6:	e8 ed a3 ff ff       	call   0x4349a8
43a5bb:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
43a5c1:	e8 f5 a3 ff ff       	call   0x4349bb
43a5c6:	89 18                	mov    %ebx,(%eax)
43a5c8:	83 c8 ff             	or     $0xffffffff,%eax
43a5cb:	5f                   	pop    %edi
43a5cc:	5e                   	pop    %esi
43a5cd:	5b                   	pop    %ebx
43a5ce:	5d                   	pop    %ebp
43a5cf:	c3                   	ret
43a5d0:	8b ff                	mov    %edi,%edi
43a5d2:	55                   	push   %ebp
43a5d3:	8b ec                	mov    %esp,%ebp
43a5d5:	8b 45 08             	mov    0x8(%ebp),%eax
43a5d8:	83 f8 fe             	cmp    $0xfffffffe,%eax
43a5db:	75 18                	jne    0x43a5f5
43a5dd:	e8 d9 a3 ff ff       	call   0x4349bb
43a5e2:	83 20 00             	andl   $0x0,(%eax)
43a5e5:	e8 be a3 ff ff       	call   0x4349a8
43a5ea:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
43a5f0:	83 c8 ff             	or     $0xffffffff,%eax
43a5f3:	5d                   	pop    %ebp
43a5f4:	c3                   	ret
43a5f5:	85 c0                	test   %eax,%eax
43a5f7:	78 08                	js     0x43a601
43a5f9:	3b 05 2c 17 47 00    	cmp    0x47172c,%eax
43a5ff:	72 1a                	jb     0x43a61b
43a601:	e8 b5 a3 ff ff       	call   0x4349bb
43a606:	83 20 00             	andl   $0x0,(%eax)
43a609:	e8 9a a3 ff ff       	call   0x4349a8
43a60e:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
43a614:	e8 55 9d ff ff       	call   0x43436e
43a619:	eb d5                	jmp    0x43a5f0
43a61b:	8b c8                	mov    %eax,%ecx
43a61d:	c1 f9 05             	sar    $0x5,%ecx
43a620:	8b 0c 8d 80 17 47 00 	mov    0x471780(,%ecx,4),%ecx
43a627:	83 e0 1f             	and    $0x1f,%eax
43a62a:	c1 e0 06             	shl    $0x6,%eax
43a62d:	f6 44 08 04 01       	testb  $0x1,0x4(%eax,%ecx,1)
43a632:	74 cd                	je     0x43a601
43a634:	8b 04 08             	mov    (%eax,%ecx,1),%eax
43a637:	5d                   	pop    %ebp
43a638:	c3                   	ret
43a639:	6a 0c                	push   $0xc
43a63b:	68 88 df 46 00       	push   $0x46df88
43a640:	e8 3b a7 ff ff       	call   0x434d80
43a645:	8b 7d 08             	mov    0x8(%ebp),%edi
43a648:	8b c7                	mov    %edi,%eax
43a64a:	c1 f8 05             	sar    $0x5,%eax
43a64d:	8b f7                	mov    %edi,%esi
43a64f:	83 e6 1f             	and    $0x1f,%esi
43a652:	c1 e6 06             	shl    $0x6,%esi
43a655:	03 34 85 80 17 47 00 	add    0x471780(,%eax,4),%esi
43a65c:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
43a663:	33 db                	xor    %ebx,%ebx
43a665:	39 5e 08             	cmp    %ebx,0x8(%esi)
43a668:	75 35                	jne    0x43a69f
43a66a:	6a 0a                	push   $0xa
43a66c:	e8 b0 92 ff ff       	call   0x433921
43a671:	59                   	pop    %ecx
43a672:	89 5d fc             	mov    %ebx,-0x4(%ebp)
43a675:	39 5e 08             	cmp    %ebx,0x8(%esi)
43a678:	75 19                	jne    0x43a693
43a67a:	68 a0 0f 00 00       	push   $0xfa0
43a67f:	8d 46 0c             	lea    0xc(%esi),%eax
43a682:	50                   	push   %eax
43a683:	ff 15 f8 34 47 00    	call   *0x4734f8
43a689:	85 c0                	test   %eax,%eax
43a68b:	75 03                	jne    0x43a690
43a68d:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
43a690:	ff 46 08             	incl   0x8(%esi)
43a693:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
43a69a:	e8 30 00 00 00       	call   0x43a6cf
43a69f:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
43a6a2:	74 1d                	je     0x43a6c1
43a6a4:	8b c7                	mov    %edi,%eax
43a6a6:	c1 f8 05             	sar    $0x5,%eax
43a6a9:	83 e7 1f             	and    $0x1f,%edi
43a6ac:	c1 e7 06             	shl    $0x6,%edi
43a6af:	8b 04 85 80 17 47 00 	mov    0x471780(,%eax,4),%eax
43a6b6:	8d 44 38 0c          	lea    0xc(%eax,%edi,1),%eax
43a6ba:	50                   	push   %eax
43a6bb:	ff 15 d8 34 47 00    	call   *0x4734d8
43a6c1:	8b 45 e4             	mov    -0x1c(%ebp),%eax
43a6c4:	e8 fc a6 ff ff       	call   0x434dc5
43a6c9:	c3                   	ret
43a6ca:	33 db                	xor    %ebx,%ebx
43a6cc:	8b 7d 08             	mov    0x8(%ebp),%edi
43a6cf:	6a 0a                	push   $0xa
43a6d1:	e8 5a 91 ff ff       	call   0x433830
43a6d6:	59                   	pop    %ecx
43a6d7:	c3                   	ret
43a6d8:	8b ff                	mov    %edi,%edi
43a6da:	55                   	push   %ebp
43a6db:	8b ec                	mov    %esp,%ebp
43a6dd:	8b 45 08             	mov    0x8(%ebp),%eax
43a6e0:	8b c8                	mov    %eax,%ecx