5aa2cf:	89 6c 24 18          	mov    %ebp,0x18(%esp)
5aa2d3:	89 54 24 10          	mov    %edx,0x10(%esp)
5aa2d7:	3b d5                	cmp    %ebp,%edx
5aa2d9:	0f 8e d2 00 00 00    	jle    0x5aa3b1
5aa2df:	8b c2                	mov    %edx,%eax
5aa2e1:	2b c5                	sub    %ebp,%eax
5aa2e3:	8d 2c 81             	lea    (%ecx,%eax,4),%ebp
5aa2e6:	89 6c 24 14          	mov    %ebp,0x14(%esp)
5aa2ea:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
5aa2f0:	8b 3c 91             	mov    (%ecx,%edx,4),%edi
5aa2f3:	8d 04 91             	lea    (%ecx,%edx,4),%eax
5aa2f6:	85 ff                	test   %edi,%edi
5aa2f8:	75 11                	jne    0x5aa30b
5aa2fa:	4a                   	dec    %edx
5aa2fb:	83 ed 04             	sub    $0x4,%ebp
5aa2fe:	89 54 24 10          	mov    %edx,0x10(%esp)
5aa302:	89 6c 24 14          	mov    %ebp,0x14(%esp)
5aa306:	e9 96 00 00 00       	jmp    0x5aa3a1
5aa30b:	8d 4b 04             	lea    0x4(%ebx),%ecx
5aa30e:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
5aa314:	83 39 00             	cmpl   $0x0,(%ecx)
5aa317:	be 01 00 00 00       	mov    $0x1,%esi
5aa31c:	74 57                	je     0x5aa375
5aa31e:	66 90                	xchg   %ax,%ax
5aa320:	8b 03                	mov    (%ebx),%eax
5aa322:	2b 01                	sub    (%ecx),%eax
5aa324:	8b e8                	mov    %eax,%ebp
5aa326:	81 e5 1f 00 00 80    	and    $0x8000001f,%ebp
5aa32c:	79 05                	jns    0x5aa333
5aa32e:	4d                   	dec    %ebp
5aa32f:	83 cd e0             	or     $0xffffffe0,%ebp
5aa332:	45                   	inc    %ebp
5aa333:	8b 4c 24 10          	mov    0x10(%esp),%ecx
5aa337:	99                   	cltd
5aa338:	83 e2 1f             	and    $0x1f,%edx
5aa33b:	03 c2                	add    %edx,%eax
5aa33d:	c1 f8 05             	sar    $0x5,%eax
5aa340:	2b c8                	sub    %eax,%ecx
5aa342:	8b 44 24 28          	mov    0x28(%esp),%eax
5aa346:	8d 14 88             	lea    (%eax,%ecx,4),%edx
5aa349:	8b c7                	mov    %edi,%eax
5aa34b:	8b cd                	mov    %ebp,%ecx
5aa34d:	d3 e8                	shr    %cl,%eax
5aa34f:	31 02                	xor    %eax,(%edx)
5aa351:	85 ed                	test   %ebp,%ebp
5aa353:	74 0e                	je     0x5aa363
5aa355:	b9 20 00 00 00       	mov    $0x20,%ecx
5aa35a:	8b c7                	mov    %edi,%eax
5aa35c:	2b cd                	sub    %ebp,%ecx
5aa35e:	d3 e0                	shl    %cl,%eax
5aa360:	31 42 fc             	xor    %eax,-0x4(%edx)
5aa363:	46                   	inc    %esi
5aa364:	83 3c b3 00          	cmpl   $0x0,(%ebx,%esi,4)
5aa368:	8d 0c b3             	lea    (%ebx,%esi,4),%ecx
5aa36b:	75 b3                	jne    0x5aa320
5aa36d:	8b 54 24 10          	mov    0x10(%esp),%edx
5aa371:	8b 6c 24 14          	mov    0x14(%esp),%ebp
5aa375:	8b 33                	mov    (%ebx),%esi
5aa377:	81 e6 1f 00 00 80    	and    $0x8000001f,%esi
5aa37d:	79 05                	jns    0x5aa384
5aa37f:	4e                   	dec    %esi
5aa380:	83 ce e0             	or     $0xffffffe0,%esi
5aa383:	46                   	inc    %esi
5aa384:	8b c7                	mov    %edi,%eax
5aa386:	8b ce                	mov    %esi,%ecx
5aa388:	d3 e8                	shr    %cl,%eax
5aa38a:	31 45 00             	xor    %eax,0x0(%ebp)
5aa38d:	85 f6                	test   %esi,%esi
5aa38f:	74 0c                	je     0x5aa39d
5aa391:	b9 20 00 00 00       	mov    $0x20,%ecx
5aa396:	2b ce                	sub    %esi,%ecx
5aa398:	d3 e7                	shl    %cl,%edi
5aa39a:	31 7d fc             	xor    %edi,-0x4(%ebp)
5aa39d:	8b 4c 24 28          	mov    0x28(%esp),%ecx
5aa3a1:	3b 54 24 18          	cmp    0x18(%esp),%edx
5aa3a5:	0f 8f 45 ff ff ff    	jg     0x5aa2f0
5aa3ab:	8b 6c 24 18          	mov    0x18(%esp),%ebp
5aa3af:	3b d5                	cmp    %ebp,%edx
5aa3b1:	0f 85 ab 00 00 00    	jne    0x5aa462
5aa3b7:	8d 34 a9             	lea    (%ecx,%ebp,4),%esi
5aa3ba:	89 74 24 18          	mov    %esi,0x18(%esp)
5aa3be:	66 90                	xchg   %ax,%ax
5aa3c0:	8b 0b                	mov    (%ebx),%ecx
5aa3c2:	81 e1 1f 00 00 80    	and    $0x8000001f,%ecx
5aa3c8:	79 05                	jns    0x5aa3cf
5aa3ca:	49                   	dec    %ecx
5aa3cb:	83 c9 e0             	or     $0xffffffe0,%ecx
5aa3ce:	41                   	inc    %ecx
5aa3cf:	8b 06                	mov    (%esi),%eax
5aa3d1:	8b e8                	mov    %eax,%ebp
5aa3d3:	d3 ed                	shr    %cl,%ebp
5aa3d5:	85 ed                	test   %ebp,%ebp
5aa3d7:	0f 84 85 00 00 00    	je     0x5aa462
5aa3dd:	ba 20 00 00 00       	mov    $0x20,%edx
5aa3e2:	2b d1                	sub    %ecx,%edx
5aa3e4:	85 c9                	test   %ecx,%ecx
5aa3e6:	74 0a                	je     0x5aa3f2
5aa3e8:	8b ca                	mov    %edx,%ecx
5aa3ea:	d3 e0                	shl    %cl,%eax
5aa3ec:	d3 e8                	shr    %cl,%eax
5aa3ee:	89 06                	mov    %eax,(%esi)
5aa3f0:	eb 06                	jmp    0x5aa3f8
5aa3f2:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
5aa3f8:	8b 4c 24 28          	mov    0x28(%esp),%ecx
5aa3fc:	8d 43 04             	lea    0x4(%ebx),%eax
5aa3ff:	bf 01 00 00 00       	mov    $0x1,%edi
5aa404:	31 29                	xor    %ebp,(%ecx)
5aa406:	83 38 00             	cmpl   $0x0,(%eax)
5aa409:	74 b5                	je     0x5aa3c0
5aa40b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
5aa410:	8b 30                	mov    (%eax),%esi
5aa412:	8b c6                	mov    %esi,%eax
5aa414:	99                   	cltd
5aa415:	83 e2 1f             	and    $0x1f,%edx
5aa418:	03 c2                	add    %edx,%eax
5aa41a:	c1 f8 05             	sar    $0x5,%eax
5aa41d:	81 e6 1f 00 00 80    	and    $0x8000001f,%esi
5aa423:	79 05                	jns    0x5aa42a
5aa425:	4e                   	dec    %esi
5aa426:	83 ce e0             	or     $0xffffffe0,%esi
5aa429:	46                   	inc    %esi
5aa42a:	8d 14 81             	lea    (%ecx,%eax,4),%edx
5aa42d:	8b c5                	mov    %ebp,%eax
5aa42f:	8b ce                	mov    %esi,%ecx
5aa431:	d3 e0                	shl    %cl,%eax
5aa433:	31 02                	xor    %eax,(%edx)
5aa435:	85 f6                	test   %esi,%esi
5aa437:	74 12                	je     0x5aa44b
5aa439:	b9 20 00 00 00       	mov    $0x20,%ecx
5aa43e:	8b c5                	mov    %ebp,%eax
5aa440:	2b ce                	sub    %esi,%ecx
5aa442:	d3 e8                	shr    %cl,%eax
5aa444:	85 c0                	test   %eax,%eax
5aa446:	74 03                	je     0x5aa44b
5aa448:	31 42 04             	xor    %eax,0x4(%edx)
5aa44b:	8b 4c 24 28          	mov    0x28(%esp),%ecx
5aa44f:	47                   	inc    %edi
5aa450:	83 3c bb 00          	cmpl   $0x0,(%ebx,%edi,4)
5aa454:	8d 04 bb             	lea    (%ebx,%edi,4),%eax
5aa457:	75 b7                	jne    0x5aa410
5aa459:	8b 74 24 18          	mov    0x18(%esp),%esi
5aa45d:	e9 5e ff ff ff       	jmp    0x5aa3c0
5aa462:	8b 74 24 20          	mov    0x20(%esp),%esi
5aa466:	5d                   	pop    %ebp
5aa467:	8b 4e 04             	mov    0x4(%esi),%ecx
5aa46a:	85 c9                	test   %ecx,%ecx
5aa46c:	7e 19                	jle    0x5aa487
5aa46e:	8b 06                	mov    (%esi),%eax
5aa470:	8d 51 ff             	lea    -0x1(%ecx),%edx
5aa473:	8d 14 90             	lea    (%eax,%edx,4),%edx
5aa476:	8b 02                	mov    (%edx),%eax
5aa478:	8d 52 fc             	lea    -0x4(%edx),%edx
5aa47b:	85 c0                	test   %eax,%eax
5aa47d:	75 05                	jne    0x5aa484
5aa47f:	49                   	dec    %ecx
5aa480:	85 c9                	test   %ecx,%ecx
5aa482:	7f f2                	jg     0x5aa476
5aa484:	89 4e 04             	mov    %ecx,0x4(%esi)
5aa487:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
5aa48b:	75 07                	jne    0x5aa494
5aa48d:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
5aa494:	5f                   	pop    %edi
5aa495:	5e                   	pop    %esi
5aa496:	b8 01 00 00 00       	mov    $0x1,%eax
5aa49b:	5b                   	pop    %ebx
5aa49c:	83 c4 0c             	add    $0xc,%esp
5aa49f:	c3                   	ret
5aa4a0:	53                   	push   %ebx
5aa4a1:	56                   	push   %esi
5aa4a2:	8b 74 24 1c          	mov    0x1c(%esp),%esi
5aa4a6:	57                   	push   %edi
5aa4a7:	56                   	push   %esi
5aa4a8:	33 ff                	xor    %edi,%edi
5aa4aa:	e8 f1 d9 f2 ff       	call   0x4d7ea0
5aa4af:	56                   	push   %esi
5aa4b0:	e8 0b d9 f2 ff       	call   0x4d7dc0
5aa4b5:	8b d8                	mov    %eax,%ebx
5aa4b7:	83 c4 08             	add    $0x8,%esp
5aa4ba:	85 db                	test   %ebx,%ebx
5aa4bc:	74 36                	je     0x5aa4f4
5aa4be:	56                   	push   %esi
5aa4bf:	ff 74 24 20          	push   0x20(%esp)
5aa4c3:	ff 74 24 20          	push   0x20(%esp)
5aa4c7:	53                   	push   %ebx
5aa4c8:	e8 43 01 00 00       	call   0x5aa610
5aa4cd:	83 c4 10             	add    $0x10,%esp
5aa4d0:	85 c0                	test   %eax,%eax
5aa4d2:	74 20                	je     0x5aa4f4
5aa4d4:	56                   	push   %esi
5aa4d5:	ff 74 24 20          	push   0x20(%esp)
5aa4d9:	53                   	push   %ebx
5aa4da:	ff 74 24 20          	push   0x20(%esp)
5aa4de:	ff 74 24 20          	push   0x20(%esp)
5aa4e2:	e8 39 06 00 00       	call   0x5aab20
5aa4e7:	83 c4 14             	add    $0x14,%esp
5aa4ea:	b9 01 00 00 00       	mov    $0x1,%ecx
5aa4ef:	85 c0                	test   %eax,%eax
5aa4f1:	0f 45 f9             	cmovne %ecx,%edi
5aa4f4:	56                   	push   %esi
5aa4f5:	e8 56 d8 f2 ff       	call   0x4d7d50
5aa4fa:	83 c4 04             	add    $0x4,%esp
5aa4fd:	8b c7                	mov    %edi,%eax
5aa4ff:	5f                   	pop    %edi
5aa500:	5e                   	pop    %esi
5aa501:	5b                   	pop    %ebx
5aa502:	c3                   	ret
5aa503:	cc                   	int3
5aa504:	cc                   	int3
5aa505:	cc                   	int3
5aa506:	cc                   	int3
5aa507:	cc                   	int3
5aa508:	cc                   	int3
5aa509:	cc                   	int3
5aa50a:	cc                   	int3
5aa50b:	cc                   	int3
5aa50c:	cc                   	int3
5aa50d:	cc                   	int3
5aa50e:	cc                   	int3
5aa50f:	cc                   	int3
5aa510:	b8 04 00 00 00       	mov    $0x4,%eax
5aa515:	e8 d6 6f 03 00       	call   0x5e14f0
5aa51a:	57                   	push   %edi
5aa51b:	8b 7c 24 14          	mov    0x14(%esp),%edi
5aa51f:	c7 44 24 04 00 00 00 	movl   $0x0,0x4(%esp)
5aa526:	00
5aa527:	8b 47 04             	mov    0x4(%edi),%eax
5aa52a:	85 c0                	test   %eax,%eax
5aa52c:	75 11                	jne    0x5aa53f
5aa52e:	6a 01                	push   $0x1
5aa530:	ff 74 24 10          	push   0x10(%esp)
5aa534:	e8 b7 8f f0 ff       	call   0x4b34f0
5aa539:	83 c4 08             	add    $0x8,%esp
5aa53c:	5f                   	pop    %edi
5aa53d:	59                   	pop    %ecx
5aa53e:	c3                   	ret
5aa53f:	83 f8 01             	cmp    $0x1,%eax
5aa542:	75 20                	jne    0x5aa564
5aa544:	8b 07                	mov    (%edi),%eax
5aa546:	83 38 01             	cmpl   $0x1,(%eax)
5aa549:	75 19                	jne    0x5aa564
5aa54b:	ff 74 24 10          	push   0x10(%esp)
5aa54f:	ff 74 24 10          	push   0x10(%esp)
5aa553:	e8 78 8b f0 ff       	call   0x4b30d0
5aa558:	83 c4 08             	add    $0x8,%esp
5aa55b:	f7 d8                	neg    %eax
5aa55d:	1b c0                	sbb    %eax,%eax
5aa55f:	f7 d8                	neg    %eax
5aa561:	5f                   	pop    %edi
5aa562:	59                   	pop    %ecx
5aa563:	c3                   	ret
5aa564:	53                   	push   %ebx
5aa565:	8b 5c 24 20          	mov    0x20(%esp),%ebx
5aa569:	56                   	push   %esi
5aa56a:	53                   	push   %ebx
5aa56b:	e8 30 d9 f2 ff       	call   0x4d7ea0
5aa570:	53                   	push   %ebx
5aa571:	e8 4a d8 f2 ff       	call   0x4d7dc0
5aa576:	8b f0                	mov    %eax,%esi
5aa578:	83 c4 08             	add    $0x8,%esp
5aa57b:	85 f6                	test   %esi,%esi
5aa57d:	74 7f                	je     0x5aa5fe
5aa57f:	55                   	push   %ebp
5aa580:	8b 6c 24 24          	mov    0x24(%esp),%ebp
5aa584:	55                   	push   %ebp
5aa585:	ff 74 24 20          	push   0x20(%esp)
5aa589:	56                   	push   %esi
5aa58a:	e8 b1 fc ff ff       	call   0x5aa240
5aa58f:	83 c4 0c             	add    $0xc,%esp
5aa592:	85 c0                	test   %eax,%eax
5aa594:	74 67                	je     0x5aa5fd
5aa596:	57                   	push   %edi
5aa597:	e8 d4 8d f0 ff       	call   0x4b3370
5aa59c:	8b f8                	mov    %eax,%edi
5aa59e:	83 c4 04             	add    $0x4,%esp
5aa5a1:	83 ef 02             	sub    $0x2,%edi
5aa5a4:	78 3a                	js     0x5aa5e0
5aa5a6:	53                   	push   %ebx
5aa5a7:	55                   	push   %ebp
5aa5a8:	56                   	push   %esi
5aa5a9:	56                   	push   %esi
5aa5aa:	e8 31 0c 00 00       	call   0x5ab1e0
5aa5af:	83 c4 10             	add    $0x10,%esp
5aa5b2:	85 c0                	test   %eax,%eax
5aa5b4:	74 47                	je     0x5aa5fd
5aa5b6:	57                   	push   %edi
5aa5b7:	ff 74 24 24          	push   0x24(%esp)
5aa5bb:	e8 80 8c f0 ff       	call   0x4b3240
5aa5c0:	83 c4 08             	add    $0x8,%esp
5aa5c3:	85 c0                	test   %eax,%eax
5aa5c5:	74 14                	je     0x5aa5db
5aa5c7:	53                   	push   %ebx
5aa5c8:	55                   	push   %ebp
5aa5c9:	ff 74 24 24          	push   0x24(%esp)
5aa5cd:	56                   	push   %esi
5aa5ce:	56                   	push   %esi
5aa5cf:	e8 ec 05 00 00       	call   0x5aabc0
5aa5d4:	83 c4 14             	add    $0x14,%esp
5aa5d7:	85 c0                	test   %eax,%eax
5aa5d9:	74 22                	je     0x5aa5fd
5aa5db:	83 ef 01             	sub    $0x1,%edi
5aa5de:	79 c6                	jns    0x5aa5a6
5aa5e0:	56                   	push   %esi
5aa5e1:	ff 74 24 1c          	push   0x1c(%esp)
5aa5e5:	e8 e6 8a f0 ff       	call   0x4b30d0
5aa5ea:	33 c9                	xor    %ecx,%ecx
5aa5ec:	83 c4 08             	add    $0x8,%esp
5aa5ef:	85 c0                	test   %eax,%eax
5aa5f1:	ba 01 00 00 00       	mov    $0x1,%edx
5aa5f6:	0f 45 ca             	cmovne %edx,%ecx
5aa5f9:	89 4c 24 10          	mov    %ecx,0x10(%esp)
5aa5fd:	5d                   	pop    %ebp
5aa5fe:	53                   	push   %ebx
5aa5ff:	e8 4c d7 f2 ff       	call   0x4d7d50
5aa604:	8b 44 24 10          	mov    0x10(%esp),%eax
5aa608:	83 c4 04             	add    $0x4,%esp
5aa60b:	5e                   	pop    %esi
5aa60c:	5b                   	pop    %ebx
5aa60d:	5f                   	pop    %edi
5aa60e:	59                   	pop    %ecx
5aa60f:	c3                   	ret
5aa610:	b8 3c 00 00 00       	mov    $0x3c,%eax
5aa615:	e8 d6 6e 03 00       	call   0x5e14f0
5aa61a:	57                   	push   %edi
5aa61b:	ff 74 24 50          	push   0x50(%esp)
5aa61f:	c7 44 24 3c 00 00 00 	movl   $0x0,0x3c(%esp)
5aa626:	00
5aa627:	e8 74 d8 f2 ff       	call   0x4d7ea0
5aa62c:	8b 7c 24 54          	mov    0x54(%esp),%edi
5aa630:	57                   	push   %edi
5aa631:	e8 8a d7 f2 ff       	call   0x4d7dc0
5aa636:	83 c4 08             	add    $0x8,%esp
5aa639:	89 44 24 28          	mov    %eax,0x28(%esp)
5aa63d:	85 c0                	test   %eax,%eax
5aa63f:	0f 84 c1 04 00 00    	je     0x5aab06
5aa645:	57                   	push   %edi
5aa646:	e8 75 d7 f2 ff       	call   0x4d7dc0
5aa64b:	8b d0                	mov    %eax,%edx
5aa64d:	83 c4 04             	add    $0x4,%esp
5aa650:	89 54 24 14          	mov    %edx,0x14(%esp)
5aa654:	85 d2                	test   %edx,%edx
5aa656:	0f 84 aa 04 00 00    	je     0x5aab06
5aa65c:	56                   	push   %esi
5aa65d:	57                   	push   %edi
5aa65e:	e8 5d d7 f2 ff       	call   0x4d7dc0
5aa663:	8b f0                	mov    %eax,%esi
5aa665:	83 c4 04             	add    $0x4,%esp
5aa668:	89 74 24 38          	mov    %esi,0x38(%esp)
5aa66c:	85 f6                	test   %esi,%esi
5aa66e:	0f 84 91 04 00 00    	je     0x5aab05
5aa674:	57                   	push   %edi