43a388:	8b 06                	mov    (%esi),%eax
43a38a:	83 e0 1f             	and    $0x1f,%eax
43a38d:	59                   	pop    %ecx
43a38e:	3c 1f                	cmp    $0x1f,%al
43a390:	75 06                	jne    0x43a398
43a392:	c6 46 08 00          	movb   $0x0,0x8(%esi)
43a396:	eb 0b                	jmp    0x43a3a3
43a398:	56                   	push   %esi
43a399:	e8 59 23 00 00       	call   0x43c6f7
43a39e:	59                   	pop    %ecx
43a39f:	c6 46 08 01          	movb   $0x1,0x8(%esi)
43a3a3:	8b c6                	mov    %esi,%eax
43a3a5:	5e                   	pop    %esi
43a3a6:	c3                   	ret
43a3a7:	cc                   	int3
43a3a8:	cc                   	int3
43a3a9:	cc                   	int3
43a3aa:	cc                   	int3
43a3ab:	cc                   	int3
43a3ac:	cc                   	int3
43a3ad:	cc                   	int3
43a3ae:	cc                   	int3
43a3af:	cc                   	int3
43a3b0:	8b ff                	mov    %edi,%edi
43a3b2:	55                   	push   %ebp
43a3b3:	8b ec                	mov    %esp,%ebp
43a3b5:	81 ec 1c 02 00 00    	sub    $0x21c,%esp
43a3bb:	53                   	push   %ebx
43a3bc:	8b 5d 08             	mov    0x8(%ebp),%ebx
43a3bf:	8b 03                	mov    (%ebx),%eax
43a3c1:	85 c0                	test   %eax,%eax
43a3c3:	75 07                	jne    0x43a3cc
43a3c5:	33 d2                	xor    %edx,%edx
43a3c7:	5b                   	pop    %ebx
43a3c8:	8b e5                	mov    %ebp,%esp
43a3ca:	5d                   	pop    %ebp
43a3cb:	c3                   	ret
43a3cc:	57                   	push   %edi
43a3cd:	8b 7d 0c             	mov    0xc(%ebp),%edi
43a3d0:	8b 0f                	mov    (%edi),%ecx
43a3d2:	85 c9                	test   %ecx,%ecx
43a3d4:	75 0a                	jne    0x43a3e0
43a3d6:	5f                   	pop    %edi
43a3d7:	33 c0                	xor    %eax,%eax
43a3d9:	33 d2                	xor    %edx,%edx
43a3db:	5b                   	pop    %ebx
43a3dc:	8b e5                	mov    %ebp,%esp
43a3de:	5d                   	pop    %ebp
43a3df:	c3                   	ret
43a3e0:	56                   	push   %esi
43a3e1:	8d 70 ff             	lea    -0x1(%eax),%esi
43a3e4:	8d 41 ff             	lea    -0x1(%ecx),%eax
43a3e7:	89 75 f4             	mov    %esi,-0xc(%ebp)
43a3ea:	85 c0                	test   %eax,%eax
43a3ec:	0f 85 2d 01 00 00    	jne    0x43a51f
43a3f2:	8b 4f 04             	mov    0x4(%edi),%ecx
43a3f5:	89 4d d8             	mov    %ecx,-0x28(%ebp)
43a3f8:	83 f9 01             	cmp    $0x1,%ecx
43a3fb:	75 2f                	jne    0x43a42c
43a3fd:	8b 73 04             	mov    0x4(%ebx),%esi
43a400:	8d 4b 04             	lea    0x4(%ebx),%ecx
43a403:	50                   	push   %eax
43a404:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
43a40a:	89 03                	mov    %eax,(%ebx)
43a40c:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
43a412:	50                   	push   %eax
43a413:	68 cc 01 00 00       	push   $0x1cc
43a418:	51                   	push   %ecx
43a419:	e8 dc 17 00 00       	call   0x43bbfa
43a41e:	83 c4 10             	add    $0x10,%esp
43a421:	8b c6                	mov    %esi,%eax
43a423:	33 d2                	xor    %edx,%edx
43a425:	5e                   	pop    %esi
43a426:	5f                   	pop    %edi
43a427:	5b                   	pop    %ebx
43a428:	8b e5                	mov    %ebp,%esp
43a42a:	5d                   	pop    %ebp
43a42b:	c3                   	ret
43a42c:	85 f6                	test   %esi,%esi
43a42e:	75 49                	jne    0x43a479
43a430:	8b 73 04             	mov    0x4(%ebx),%esi
43a433:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
43a439:	6a 00                	push   $0x0
43a43b:	50                   	push   %eax
43a43c:	8d 7b 04             	lea    0x4(%ebx),%edi
43a43f:	c7 85 e4 fd ff ff 00 	movl   $0x0,-0x21c(%ebp)
43a446:	00 00 00
43a449:	68 cc 01 00 00       	push   $0x1cc
43a44e:	57                   	push   %edi
43a44f:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
43a455:	e8 a0 17 00 00       	call   0x43bbfa
43a45a:	33 d2                	xor    %edx,%edx
43a45c:	8b c6                	mov    %esi,%eax
43a45e:	f7 75 d8             	divl   -0x28(%ebp)
43a461:	83 c4 10             	add    $0x10,%esp
43a464:	33 c9                	xor    %ecx,%ecx
43a466:	3b ca                	cmp    %edx,%ecx
43a468:	89 17                	mov    %edx,(%edi)
43a46a:	1b c9                	sbb    %ecx,%ecx
43a46c:	5e                   	pop    %esi
43a46d:	f7 d9                	neg    %ecx
43a46f:	33 d2                	xor    %edx,%edx
43a471:	5f                   	pop    %edi
43a472:	89 0b                	mov    %ecx,(%ebx)
43a474:	5b                   	pop    %ebx
43a475:	8b e5                	mov    %ebp,%esp
43a477:	5d                   	pop    %ebp
43a478:	c3                   	ret
43a479:	33 ff                	xor    %edi,%edi
43a47b:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
43a482:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
43a489:	89 7d f0             	mov    %edi,-0x10(%ebp)
43a48c:	83 fe ff             	cmp    $0xffffffff,%esi
43a48f:	74 44                	je     0x43a4d5
43a491:	8b 45 f4             	mov    -0xc(%ebp),%eax
43a494:	46                   	inc    %esi
43a495:	40                   	inc    %eax
43a496:	89 45 e4             	mov    %eax,-0x1c(%ebp)
43a499:	8d 34 b3             	lea    (%ebx,%esi,4),%esi
43a49c:	8d 64 24 00          	lea    0x0(%esp),%esp
43a4a0:	6a 00                	push   $0x0
43a4a2:	51                   	push   %ecx
43a4a3:	33 c0                	xor    %eax,%eax
43a4a5:	0b 06                	or     (%esi),%eax
43a4a7:	57                   	push   %edi
43a4a8:	50                   	push   %eax
43a4a9:	e8 42 f7 00 00       	call   0x449bf0
43a4ae:	89 55 c0             	mov    %edx,-0x40(%ebp)
43a4b1:	8d 76 fc             	lea    -0x4(%esi),%esi
43a4b4:	33 d2                	xor    %edx,%edx
43a4b6:	89 5d f0             	mov    %ebx,-0x10(%ebp)
43a4b9:	8b f9                	mov    %ecx,%edi
43a4bb:	03 d0                	add    %eax,%edx
43a4bd:	8b 4d f8             	mov    -0x8(%ebp),%ecx
43a4c0:	83 d1 00             	adc    $0x0,%ecx
43a4c3:	89 55 f8             	mov    %edx,-0x8(%ebp)
43a4c6:	83 6d e4 01          	subl   $0x1,-0x1c(%ebp)
43a4ca:	89 4d fc             	mov    %ecx,-0x4(%ebp)
43a4cd:	8b 4d d8             	mov    -0x28(%ebp),%ecx
43a4d0:	75 ce                	jne    0x43a4a0
43a4d2:	8b 5d 08             	mov    0x8(%ebp),%ebx
43a4d5:	6a 00                	push   $0x0
43a4d7:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
43a4dd:	c7 85 e4 fd ff ff 00 	movl   $0x0,-0x21c(%ebp)
43a4e4:	00 00 00
43a4e7:	50                   	push   %eax
43a4e8:	8d 73 04             	lea    0x4(%ebx),%esi
43a4eb:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
43a4f1:	68 cc 01 00 00       	push   $0x1cc
43a4f6:	56                   	push   %esi
43a4f7:	e8 fe 16 00 00       	call   0x43bbfa
43a4fc:	8b 45 f0             	mov    -0x10(%ebp),%eax
43a4ff:	83 c4 10             	add    $0x10,%esp
43a502:	8b 55 fc             	mov    -0x4(%ebp),%edx
43a505:	33 c9                	xor    %ecx,%ecx
43a507:	3b c8                	cmp    %eax,%ecx
43a509:	89 3e                	mov    %edi,(%esi)
43a50b:	89 43 08             	mov    %eax,0x8(%ebx)
43a50e:	8b 45 f8             	mov    -0x8(%ebp),%eax
43a511:	1b c9                	sbb    %ecx,%ecx
43a513:	f7 d9                	neg    %ecx
43a515:	5e                   	pop    %esi
43a516:	41                   	inc    %ecx
43a517:	5f                   	pop    %edi
43a518:	89 0b                	mov    %ecx,(%ebx)
43a51a:	5b                   	pop    %ebx
43a51b:	8b e5                	mov    %ebp,%esp
43a51d:	5d                   	pop    %ebp
43a51e:	c3                   	ret
43a51f:	3b c6                	cmp    %esi,%eax
43a521:	77 47                	ja     0x43a56a
43a523:	8b d6                	mov    %esi,%edx
43a525:	8d 48 01             	lea    0x1(%eax),%ecx
43a528:	2b d0                	sub    %eax,%edx
43a52a:	89 4d c8             	mov    %ecx,-0x38(%ebp)
43a52d:	8b ce                	mov    %esi,%ecx
43a52f:	3b f2                	cmp    %edx,%esi
43a531:	7c 32                	jl     0x43a565
43a533:	8b c1                	mov    %ecx,%eax
43a535:	46                   	inc    %esi
43a536:	2b c2                	sub    %edx,%eax
43a538:	8d 34 b3             	lea    (%ebx,%esi,4),%esi
43a53b:	8d 3c 87             	lea    (%edi,%eax,4),%edi
43a53e:	83 c7 04             	add    $0x4,%edi
43a541:	8b 07                	mov    (%edi),%eax
43a543:	3b 06                	cmp    (%esi),%eax
43a545:	75 0d                	jne    0x43a554
43a547:	49                   	dec    %ecx
43a548:	83 ef 04             	sub    $0x4,%edi
43a54b:	83 ee 04             	sub    $0x4,%esi
43a54e:	3b ca                	cmp    %edx,%ecx
43a550:	7d ef                	jge    0x43a541
43a552:	eb 11                	jmp    0x43a565
43a554:	8b 75 0c             	mov    0xc(%ebp),%esi
43a557:	8b c1                	mov    %ecx,%eax
43a559:	2b c2                	sub    %edx,%eax
43a55b:	8b 44 86 04          	mov    0x4(%esi,%eax,4),%eax
43a55f:	3b 44 8b 04          	cmp    0x4(%ebx,%ecx,4),%eax
43a563:	73 01                	jae    0x43a566
43a565:	42                   	inc    %edx
43a566:	85 d2                	test   %edx,%edx
43a568:	75 0b                	jne    0x43a575
43a56a:	5e                   	pop    %esi
43a56b:	5f                   	pop    %edi
43a56c:	33 c0                	xor    %eax,%eax
43a56e:	33 d2                	xor    %edx,%edx
43a570:	5b                   	pop    %ebx
43a571:	8b e5                	mov    %ebp,%esp
43a573:	5d                   	pop    %ebp
43a574:	c3                   	ret
43a575:	8b 7d c8             	mov    -0x38(%ebp),%edi
43a578:	8b 45 0c             	mov    0xc(%ebp),%eax
43a57b:	8b 34 b8             	mov    (%eax,%edi,4),%esi
43a57e:	8b 44 b8 fc          	mov    -0x4(%eax,%edi,4),%eax
43a582:	89 45 e0             	mov    %eax,-0x20(%ebp)
43a585:	0f bd c6             	bsr    %esi,%eax
43a588:	89 75 cc             	mov    %esi,-0x34(%ebp)
43a58b:	74 09                	je     0x43a596
43a58d:	b9 1f 00 00 00       	mov    $0x1f,%ecx
43a592:	2b c8                	sub    %eax,%ecx
43a594:	eb 05                	jmp    0x43a59b
43a596:	b9 20 00 00 00       	mov    $0x20,%ecx
43a59b:	b8 20 00 00 00       	mov    $0x20,%eax
43a5a0:	89 4d dc             	mov    %ecx,-0x24(%ebp)
43a5a3:	2b c1                	sub    %ecx,%eax
43a5a5:	89 45 c4             	mov    %eax,-0x3c(%ebp)
43a5a8:	85 c9                	test   %ecx,%ecx
43a5aa:	74 29                	je     0x43a5d5
43a5ac:	8b 45 e0             	mov    -0x20(%ebp),%eax
43a5af:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
43a5b2:	d3 e8                	shr    %cl,%eax
43a5b4:	8b 4d dc             	mov    -0x24(%ebp),%ecx
43a5b7:	d3 65 e0             	shll   %cl,-0x20(%ebp)
43a5ba:	d3 e6                	shl    %cl,%esi
43a5bc:	0b f0                	or     %eax,%esi
43a5be:	89 75 cc             	mov    %esi,-0x34(%ebp)
43a5c1:	83 ff 02             	cmp    $0x2,%edi
43a5c4:	76 0f                	jbe    0x43a5d5
43a5c6:	8b 75 0c             	mov    0xc(%ebp),%esi
43a5c9:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
43a5cc:	8b 44 be f8          	mov    -0x8(%esi,%edi,4),%eax
43a5d0:	d3 e8                	shr    %cl,%eax
43a5d2:	09 45 e0             	or     %eax,-0x20(%ebp)
43a5d5:	33 f6                	xor    %esi,%esi
43a5d7:	c7 45 b8 00 00 00 00 	movl   $0x0,-0x48(%ebp)
43a5de:	83 c2 ff             	add    $0xffffffff,%edx
43a5e1:	89 55 e4             	mov    %edx,-0x1c(%ebp)
43a5e4:	0f 88 2c 02 00 00    	js     0x43a816
43a5ea:	8d 4b 04             	lea    0x4(%ebx),%ecx
43a5ed:	8d 0c 91             	lea    (%ecx,%edx,4),%ecx
43a5f0:	89 4d f0             	mov    %ecx,-0x10(%ebp)
43a5f3:	8d 04 3a             	lea    (%edx,%edi,1),%eax
43a5f6:	8d 4b fc             	lea    -0x4(%ebx),%ecx
43a5f9:	89 45 f8             	mov    %eax,-0x8(%ebp)
43a5fc:	8d 0c 81             	lea    (%ecx,%eax,4),%ecx
43a5ff:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
43a602:	3b 45 f4             	cmp    -0xc(%ebp),%eax
43a605:	77 05                	ja     0x43a60c
43a607:	8b 41 08             	mov    0x8(%ecx),%eax
43a60a:	eb 02                	jmp    0x43a60e
43a60c:	33 c0                	xor    %eax,%eax
43a60e:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
43a612:	8b 51 04             	mov    0x4(%ecx),%edx
43a615:	8b 09                	mov    (%ecx),%ecx
43a617:	89 45 d0             	mov    %eax,-0x30(%ebp)
43a61a:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
43a621:	89 45 fc             	mov    %eax,-0x4(%ebp)
43a624:	89 4d ec             	mov    %ecx,-0x14(%ebp)
43a627:	76 49                	jbe    0x43a672
43a629:	8b f9                	mov    %ecx,%edi
43a62b:	8b c2                	mov    %edx,%eax
43a62d:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
43a630:	33 f6                	xor    %esi,%esi
43a632:	8b 55 fc             	mov    -0x4(%ebp),%edx
43a635:	d3 ef                	shr    %cl,%edi
43a637:	8b 4d dc             	mov    -0x24(%ebp),%ecx
43a63a:	e8 e1 f7 00 00       	call   0x449e20
43a63f:	8b 4d dc             	mov    -0x24(%ebp),%ecx
43a642:	0b f2                	or     %edx,%esi
43a644:	0b f8                	or     %eax,%edi
43a646:	8b c6                	mov    %esi,%eax
43a648:	8b 75 ec             	mov    -0x14(%ebp),%esi
43a64b:	8b d7                	mov    %edi,%edx
43a64d:	d3 e6                	shl    %cl,%esi
43a64f:	83 7d f8 03          	cmpl   $0x3,-0x8(%ebp)
43a653:	89 45 fc             	mov    %eax,-0x4(%ebp)
43a656:	89 75 ec             	mov    %esi,-0x14(%ebp)
43a659:	72 17                	jb     0x43a672
43a65b:	8b 45 c8             	mov    -0x38(%ebp),%eax
43a65e:	03 45 e4             	add    -0x1c(%ebp),%eax
43a661:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
43a664:	8b 44 83 f8          	mov    -0x8(%ebx,%eax,4),%eax
43a668:	d3 e8                	shr    %cl,%eax
43a66a:	0b f0                	or     %eax,%esi
43a66c:	8b 45 fc             	mov    -0x4(%ebp),%eax
43a66f:	89 75 ec             	mov    %esi,-0x14(%ebp)
43a672:	6a 00                	push   $0x0
43a674:	ff 75 cc             	push   -0x34(%ebp)
43a677:	50                   	push   %eax
43a678:	52                   	push   %edx
43a679:	e8 72 f5 00 00       	call   0x449bf0
43a67e:	89 5d d8             	mov    %ebx,-0x28(%ebp)
43a681:	33 f6                	xor    %esi,%esi
43a683:	8b d8                	mov    %eax,%ebx
43a685:	89 75 d8             	mov    %esi,-0x28(%ebp)
43a688:	8b c2                	mov    %edx,%eax
43a68a:	89 5d fc             	mov    %ebx,-0x4(%ebp)
43a68d:	89 45 e8             	mov    %eax,-0x18(%ebp)
43a690:	8b f9                	mov    %ecx,%edi
43a692:	89 5d bc             	mov    %ebx,-0x44(%ebp)
43a695:	89 45 c0             	mov    %eax,-0x40(%ebp)
43a698:	85 c0                	test   %eax,%eax
43a69a:	75 05                	jne    0x43a6a1
43a69c:	83 fb ff             	cmp    $0xffffffff,%ebx
43a69f:	76 2a                	jbe    0x43a6cb
43a6a1:	6a 00                	push   $0x0
43a6a3:	ff 75 cc             	push   -0x34(%ebp)
43a6a6:	83 c3 01             	add    $0x1,%ebx
43a6a9:	83 d0 ff             	adc    $0xffffffff,%eax
43a6ac:	50                   	push   %eax
43a6ad:	53                   	push   %ebx
43a6ae:	e8 cd 39 ff ff       	call   0x42e080
43a6b3:	03 f8                	add    %eax,%edi
43a6b5:	13 f2                	adc    %edx,%esi
43a6b7:	83 cb ff             	or     $0xffffffff,%ebx
43a6ba:	33 c0                	xor    %eax,%eax
43a6bc:	89 75 d8             	mov    %esi,-0x28(%ebp)
43a6bf:	89 5d fc             	mov    %ebx,-0x4(%ebp)
43a6c2:	89 5d bc             	mov    %ebx,-0x44(%ebp)
43a6c5:	89 45 e8             	mov    %eax,-0x18(%ebp)
43a6c8:	89 45 c0             	mov    %eax,-0x40(%ebp)
43a6cb:	85 f6                	test   %esi,%esi
43a6cd:	77 50                	ja     0x43a71f
43a6cf:	72 05                	jb     0x43a6d6
43a6d1:	83 ff ff             	cmp    $0xffffffff,%edi
43a6d4:	77 49                	ja     0x43a71f
43a6d6:	50                   	push   %eax
43a6d7:	53                   	push   %ebx
43a6d8:	33 c9                	xor    %ecx,%ecx
43a6da:	8b f7                	mov    %edi,%esi
43a6dc:	0b 4d ec             	or     -0x14(%ebp),%ecx
43a6df:	6a 00                	push   $0x0
43a6e1:	ff 75 e0             	push   -0x20(%ebp)
43a6e4:	89 4d fc             	mov    %ecx,-0x4(%ebp)
43a6e7:	e8 94 39 ff ff       	call   0x42e080
43a6ec:	3b d6                	cmp    %esi,%edx
43a6ee:	72 29                	jb     0x43a719
43a6f0:	77 05                	ja     0x43a6f7
43a6f2:	3b 45 fc             	cmp    -0x4(%ebp),%eax
43a6f5:	76 22                	jbe    0x43a719