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
5aa675:	e8 46 d7 f2 ff       	call   0x4d7dc0
5aa67a:	8b f8                	mov    %eax,%edi
5aa67c:	83 c4 04             	add    $0x4,%esp
5aa67f:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
5aa683:	85 ff                	test   %edi,%edi
5aa685:	0f 84 7a 04 00 00    	je     0x5aab05
5aa68b:	53                   	push   %ebx
5aa68c:	8b 5c 24 54          	mov    0x54(%esp),%ebx
5aa690:	53                   	push   %ebx
5aa691:	ff 74 24 54          	push   0x54(%esp)
5aa695:	56                   	push   %esi
5aa696:	e8 15 fb ff ff       	call   0x5aa1b0
5aa69b:	83 c4 0c             	add    $0xc,%esp
5aa69e:	85 c0                	test   %eax,%eax
5aa6a0:	0f 84 5e 04 00 00    	je     0x5aab04
5aa6a6:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
5aa6aa:	0f 84 54 04 00 00    	je     0x5aab04
5aa6b0:	53                   	push   %ebx
5aa6b1:	57                   	push   %edi
5aa6b2:	e8 19 8a f0 ff       	call   0x4b30d0
5aa6b7:	83 c4 08             	add    $0x8,%esp
5aa6ba:	85 c0                	test   %eax,%eax
5aa6bc:	0f 84 42 04 00 00    	je     0x5aab04
5aa6c2:	55                   	push   %ebp
5aa6c3:	56                   	push   %esi
5aa6c4:	e8 a7 8c f0 ff       	call   0x4b3370
5aa6c9:	8b e8                	mov    %eax,%ebp
5aa6cb:	57                   	push   %edi
5aa6cc:	89 6c 24 38          	mov    %ebp,0x38(%esp)
5aa6d0:	e8 9b 8c f0 ff       	call   0x4b3370
5aa6d5:	8b 7b 04             	mov    0x4(%ebx),%edi
5aa6d8:	83 c4 08             	add    $0x8,%esp
5aa6db:	89 44 24 2c          	mov    %eax,0x2c(%esp)
5aa6df:	89 7c 24 18          	mov    %edi,0x18(%esp)
5aa6e3:	3b 7e 08             	cmp    0x8(%esi),%edi
5aa6e6:	7f 04                	jg     0x5aa6ec
5aa6e8:	8b c6                	mov    %esi,%eax
5aa6ea:	eb 0a                	jmp    0x5aa6f6
5aa6ec:	57                   	push   %edi
5aa6ed:	56                   	push   %esi
5aa6ee:	e8 ad 8f f0 ff       	call   0x4b36a0
5aa6f3:	83 c4 08             	add    $0x8,%esp
5aa6f6:	85 c0                	test   %eax,%eax
5aa6f8:	0f 84 05 04 00 00    	je     0x5aab03
5aa6fe:	8b 54 24 40          	mov    0x40(%esp),%edx
5aa702:	8b 36                	mov    (%esi),%esi
5aa704:	89 74 24 28          	mov    %esi,0x28(%esp)
5aa708:	8b 42 04             	mov    0x4(%edx),%eax
5aa70b:	3b c7                	cmp    %edi,%eax
5aa70d:	7d 11                	jge    0x5aa720
5aa70f:	8b 4c 24 18          	mov    0x18(%esp),%ecx
5aa713:	8d 3c 86             	lea    (%esi,%eax,4),%edi
5aa716:	2b c8                	sub    %eax,%ecx
5aa718:	33 c0                	xor    %eax,%eax
5aa71a:	f3 ab                	rep stos %eax,%es:(%edi)
5aa71c:	8b 7c 24 18          	mov    0x18(%esp),%edi
5aa720:	8b 5c 24 34          	mov    0x34(%esp),%ebx
5aa724:	89 7a 04             	mov    %edi,0x4(%edx)
5aa727:	3b 7b 08             	cmp    0x8(%ebx),%edi
5aa72a:	7f 04                	jg     0x5aa730
5aa72c:	8b c3                	mov    %ebx,%eax
5aa72e:	eb 0a                	jmp    0x5aa73a
5aa730:	57                   	push   %edi
5aa731:	53                   	push   %ebx
5aa732:	e8 69 8f f0 ff       	call   0x4b36a0
5aa737:	83 c4 08             	add    $0x8,%esp
5aa73a:	85 c0                	test   %eax,%eax
5aa73c:	0f 84 c1 03 00 00    	je     0x5aab03
5aa742:	8b 13                	mov    (%ebx),%edx
5aa744:	89 54 24 1c          	mov    %edx,0x1c(%esp)
5aa748:	c7 02 01 00 00 00    	movl   $0x1,(%edx)
5aa74e:	83 ff 01             	cmp    $0x1,%edi
5aa751:	7e 0e                	jle    0x5aa761
5aa753:	8d 4f ff             	lea    -0x1(%edi),%ecx
5aa756:	33 c0                	xor    %eax,%eax
5aa758:	8d 7a 04             	lea    0x4(%edx),%edi
5aa75b:	f3 ab                	rep stos %eax,%es:(%edi)
5aa75d:	8b 7c 24 18          	mov    0x18(%esp),%edi
5aa761:	8b 4c 24 20          	mov    0x20(%esp),%ecx
5aa765:	89 7b 04             	mov    %edi,0x4(%ebx)
5aa768:	3b 79 08             	cmp    0x8(%ecx),%edi
5aa76b:	7f 04                	jg     0x5aa771
5aa76d:	8b c1                	mov    %ecx,%eax
5aa76f:	eb 12                	jmp    0x5aa783
5aa771:	57                   	push   %edi
5aa772:	51                   	push   %ecx
5aa773:	e8 28 8f f0 ff       	call   0x4b36a0
5aa778:	8b 54 24 24          	mov    0x24(%esp),%edx
5aa77c:	83 c4 08             	add    $0x8,%esp
5aa77f:	8b 4c 24 20          	mov    0x20(%esp),%ecx
5aa783:	85 c0                	test   %eax,%eax
5aa785:	0f 84 78 03 00 00    	je     0x5aab03
5aa78b:	8b 19                	mov    (%ecx),%ebx
5aa78d:	89 5c 24 14          	mov    %ebx,0x14(%esp)
5aa791:	85 ff                	test   %edi,%edi
5aa793:	7e 10                	jle    0x5aa7a5
5aa795:	8b cf                	mov    %edi,%ecx
5aa797:	33 c0                	xor    %eax,%eax
5aa799:	8b fb                	mov    %ebx,%edi
5aa79b:	f3 ab                	rep stos %eax,%es:(%edi)
5aa79d:	8b 7c 24 18          	mov    0x18(%esp),%edi
5aa7a1:	8b 4c 24 20          	mov    0x20(%esp),%ecx
5aa7a5:	8b 44 24 24          	mov    0x24(%esp),%eax
5aa7a9:	89 79 04             	mov    %edi,0x4(%ecx)
5aa7ac:	8b 08                	mov    (%eax),%ecx
5aa7ae:	89 4c 24 10          	mov    %ecx,0x10(%esp)
5aa7b2:	85 ed                	test   %ebp,%ebp
5aa7b4:	0f 84 c7 00 00 00    	je     0x5aa881
5aa7ba:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
5aa7c0:	8b 1e                	mov    (%esi),%ebx
5aa7c2:	f6 c3 01             	test   $0x1,%bl
5aa7c5:	0f 85 ae 00 00 00    	jne    0x5aa879
5aa7cb:	8b 4c 24 58          	mov    0x58(%esp),%ecx
5aa7cf:	4f                   	dec    %edi
5aa7d0:	8b 02                	mov    (%edx),%eax
5aa7d2:	8b e8                	mov    %eax,%ebp
5aa7d4:	83 e5 01             	and    $0x1,%ebp
5aa7d7:	f7 dd                	neg    %ebp
5aa7d9:	8b 09                	mov    (%ecx),%ecx
5aa7db:	8b 09                	mov    (%ecx),%ecx
5aa7dd:	23 cd                	and    %ebp,%ecx
5aa7df:	33 c1                	xor    %ecx,%eax
5aa7e1:	33 c9                	xor    %ecx,%ecx
5aa7e3:	89 4c 24 3c          	mov    %ecx,0x3c(%esp)
5aa7e7:	85 ff                	test   %edi,%edi
5aa7e9:	7e 6f                	jle    0x5aa85a
5aa7eb:	8b ce                	mov    %esi,%ecx
5aa7ed:	c7 44 24 38 fc ff ff 	movl   $0xfffffffc,0x38(%esp)
5aa7f4:	ff
5aa7f5:	2b ca                	sub    %edx,%ecx
5aa7f7:	8d 7a 04             	lea    0x4(%edx),%edi
5aa7fa:	29 54 24 38          	sub    %edx,0x38(%esp)
5aa7fe:	89 4c 24 48          	mov    %ecx,0x48(%esp)
5aa802:	eb 04                	jmp    0x5aa808
5aa804:	8b 4c 24 48          	mov    0x48(%esp),%ecx
5aa808:	8b 14 39             	mov    (%ecx,%edi,1),%edx
5aa80b:	8d 7f 04             	lea    0x4(%edi),%edi
5aa80e:	8b ca                	mov    %edx,%ecx
5aa810:	d1 eb                	shr    $1,%ebx
5aa812:	c1 e1 1f             	shl    $0x1f,%ecx
5aa815:	0b cb                	or     %ebx,%ecx
5aa817:	d1 e8                	shr    $1,%eax
5aa819:	8b 5c 24 3c          	mov    0x3c(%esp),%ebx
5aa81d:	89 0c 9e             	mov    %ecx,(%esi,%ebx,4)
5aa820:	8b da                	mov    %edx,%ebx
5aa822:	8b 4c 24 58          	mov    0x58(%esp),%ecx
5aa826:	8b 74 24 28          	mov    0x28(%esp),%esi
5aa82a:	8b 09                	mov    (%ecx),%ecx
5aa82c:	03 4c 24 38          	add    0x38(%esp),%ecx
5aa830:	8b 14 39             	mov    (%ecx,%edi,1),%edx
5aa833:	23 d5                	and    %ebp,%edx
5aa835:	33 57 fc             	xor    -0x4(%edi),%edx
5aa838:	8b ca                	mov    %edx,%ecx
5aa83a:	c1 e1 1f             	shl    $0x1f,%ecx
5aa83d:	0b c8                	or     %eax,%ecx
5aa83f:	8b c2                	mov    %edx,%eax
5aa841:	8b 54 24 18          	mov    0x18(%esp),%edx
5aa845:	89 4f f8             	mov    %ecx,-0x8(%edi)
5aa848:	4a                   	dec    %edx
5aa849:	8b 4c 24 3c          	mov    0x3c(%esp),%ecx
5aa84d:	41                   	inc    %ecx
5aa84e:	89 4c 24 3c          	mov    %ecx,0x3c(%esp)
5aa852:	3b ca                	cmp    %edx,%ecx
5aa854:	7c ae                	jl     0x5aa804
5aa856:	8b 54 24 1c          	mov    0x1c(%esp),%edx
5aa85a:	8b 6c 24 30          	mov    0x30(%esp),%ebp
5aa85e:	8b 7c 24 18          	mov    0x18(%esp),%edi
5aa862:	d1 eb                	shr    $1,%ebx
5aa864:	d1 e8                	shr    $1,%eax
5aa866:	83 ed 01             	sub    $0x1,%ebp
5aa869:	89 1c 8e             	mov    %ebx,(%esi,%ecx,4)
5aa86c:	89 04 8a             	mov    %eax,(%edx,%ecx,4)
5aa86f:	89 6c 24 30          	mov    %ebp,0x30(%esp)
5aa873:	0f 85 47 ff ff ff    	jne    0x5aa7c0
5aa879:	8b 5c 24 14          	mov    0x14(%esp),%ebx