aa3859:	56                   	push   %esi
aa385a:	8b 75 2c             	mov    0x2c(%ebp),%esi
aa385d:	85 f6                	test   %esi,%esi
aa385f:	74 04                	je     0xaa3865
aa3861:	85 c0                	test   %eax,%eax
aa3863:	75 15                	jne    0xaa387a
aa3865:	e8 05 b0 99 ff       	call   0x43e86f
aa386a:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
aa3870:	e8 83 ba 97 ff       	call   0x41f2f8
aa3875:	33 c0                	xor    %eax,%eax
aa3877:	40                   	inc    %eax
aa3878:	eb 22                	jmp    0xaa389c
aa387a:	8d 8d f0 fc ff ff    	lea    -0x310(%ebp),%ecx
aa3880:	51                   	push   %ecx
aa3881:	8d 4d 0c             	lea    0xc(%ebp),%ecx
aa3884:	51                   	push   %ecx
aa3885:	50                   	push   %eax
aa3886:	e8 2c 0e 99 ff       	call   0x4346b7
aa388b:	56                   	push   %esi
aa388c:	8d 8d f0 fc ff ff    	lea    -0x310(%ebp),%ecx
aa3892:	51                   	push   %ecx
aa3893:	50                   	push   %eax
aa3894:	e8 d3 5b 96 ff       	call   0x40946c
aa3899:	83 c4 18             	add    $0x18,%esp
aa389c:	8b 55 24             	mov    0x24(%ebp),%edx
aa389f:	5e                   	pop    %esi
aa38a0:	85 d2                	test   %edx,%edx
aa38a2:	74 0a                	je     0xaa38ae
aa38a4:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
aa38a7:	0b 4d 20             	or     0x20(%ebp),%ecx
aa38aa:	75 02                	jne    0xaa38ae
aa38ac:	88 0a                	mov    %cl,(%edx)
aa38ae:	8b 4d fc             	mov    -0x4(%ebp),%ecx
aa38b1:	33 cd                	xor    %ebp,%ecx
aa38b3:	e8 fe 7e 97 ff       	call   0x41b7b6
aa38b8:	8b e5                	mov    %ebp,%esp
aa38ba:	5d                   	pop    %ebp
aa38bb:	c3                   	ret
aa38bc:	cc                   	int3
aa38bd:	cc                   	int3
aa38be:	cc                   	int3
aa38bf:	cc                   	int3
aa38c0:	cc                   	int3
aa38c1:	cc                   	int3
aa38c2:	cc                   	int3
aa38c3:	cc                   	int3
aa38c4:	cc                   	int3
aa38c5:	cc                   	int3
aa38c6:	cc                   	int3
aa38c7:	cc                   	int3
aa38c8:	cc                   	int3
aa38c9:	cc                   	int3
aa38ca:	cc                   	int3
aa38cb:	cc                   	int3
aa38cc:	cc                   	int3
aa38cd:	cc                   	int3
aa38ce:	cc                   	int3
aa38cf:	cc                   	int3
aa38d0:	cc                   	int3
aa38d1:	cc                   	int3
aa38d2:	cc                   	int3
aa38d3:	cc                   	int3
aa38d4:	cc                   	int3
aa38d5:	cc                   	int3
aa38d6:	cc                   	int3
aa38d7:	cc                   	int3
aa38d8:	cc                   	int3
aa38d9:	cc                   	int3
aa38da:	8b ff                	mov    %edi,%edi
aa38dc:	55                   	push   %ebp
aa38dd:	8b ec                	mov    %esp,%ebp
aa38df:	81 ec 10 03 00 00    	sub    $0x310,%esp
aa38e5:	a1 24 f6 d5 00       	mov    0xd5f624,%eax
aa38ea:	33 c5                	xor    %ebp,%eax
aa38ec:	89 45 fc             	mov    %eax,-0x4(%ebp)
aa38ef:	8b 45 08             	mov    0x8(%ebp),%eax
aa38f2:	56                   	push   %esi
aa38f3:	8b 75 2c             	mov    0x2c(%ebp),%esi
aa38f6:	85 f6                	test   %esi,%esi
aa38f8:	74 04                	je     0xaa38fe
aa38fa:	85 c0                	test   %eax,%eax
aa38fc:	75 15                	jne    0xaa3913
aa38fe:	e8 6c af 99 ff       	call   0x43e86f
aa3903:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
aa3909:	e8 ea b9 97 ff       	call   0x41f2f8
aa390e:	33 c0                	xor    %eax,%eax
aa3910:	40                   	inc    %eax
aa3911:	eb 22                	jmp    0xaa3935
aa3913:	8d 8d f0 fc ff ff    	lea    -0x310(%ebp),%ecx
aa3919:	51                   	push   %ecx
aa391a:	8d 4d 0c             	lea    0xc(%ebp),%ecx
aa391d:	51                   	push   %ecx
aa391e:	50                   	push   %eax
aa391f:	e8 93 0d 99 ff       	call   0x4346b7
aa3924:	56                   	push   %esi
aa3925:	8d 8d f0 fc ff ff    	lea    -0x310(%ebp),%ecx
aa392b:	51                   	push   %ecx
aa392c:	50                   	push   %eax
aa392d:	e8 9b dc 95 ff       	call   0x4015cd
aa3932:	83 c4 18             	add    $0x18,%esp
aa3935:	8b 55 24             	mov    0x24(%ebp),%edx
aa3938:	5e                   	pop    %esi
aa3939:	85 d2                	test   %edx,%edx
aa393b:	74 0a                	je     0xaa3947
aa393d:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
aa3940:	0b 4d 20             	or     0x20(%ebp),%ecx
aa3943:	75 02                	jne    0xaa3947
aa3945:	88 0a                	mov    %cl,(%edx)
aa3947:	8b 4d fc             	mov    -0x4(%ebp),%ecx
aa394a:	33 cd                	xor    %ebp,%ecx
aa394c:	e8 65 7e 97 ff       	call   0x41b7b6
aa3951:	8b e5                	mov    %ebp,%esp
aa3953:	5d                   	pop    %ebp
aa3954:	c3                   	ret
aa3955:	cc                   	int3
aa3956:	cc                   	int3
aa3957:	cc                   	int3
aa3958:	cc                   	int3
aa3959:	cc                   	int3
aa395a:	cc                   	int3
aa395b:	cc                   	int3
aa395c:	cc                   	int3
aa395d:	cc                   	int3
aa395e:	cc                   	int3
aa395f:	cc                   	int3
aa3960:	cc                   	int3
aa3961:	cc                   	int3
aa3962:	cc                   	int3
aa3963:	cc                   	int3
aa3964:	cc                   	int3
aa3965:	cc                   	int3
aa3966:	cc                   	int3
aa3967:	cc                   	int3
aa3968:	cc                   	int3
aa3969:	cc                   	int3
aa396a:	cc                   	int3
aa396b:	cc                   	int3
aa396c:	cc                   	int3
aa396d:	cc                   	int3
aa396e:	cc                   	int3
aa396f:	cc                   	int3
aa3970:	cc                   	int3
aa3971:	cc                   	int3
aa3972:	cc                   	int3
aa3973:	8b ff                	mov    %edi,%edi
aa3975:	55                   	push   %ebp
aa3976:	8b ec                	mov    %esp,%ebp
aa3978:	83 ec 24             	sub    $0x24,%esp
aa397b:	56                   	push   %esi
aa397c:	8b 75 0c             	mov    0xc(%ebp),%esi
aa397f:	8b ce                	mov    %esi,%ecx
aa3981:	57                   	push   %edi
aa3982:	e8 5d 77 98 ff       	call   0x42b0e4
aa3987:	84 c0                	test   %al,%al
aa3989:	75 08                	jne    0xaa3993
aa398b:	6a 07                	push   $0x7
aa398d:	58                   	pop    %eax
aa398e:	e9 41 04 00 00       	jmp    0xaa3dd4
aa3993:	8b 46 10             	mov    0x10(%esi),%eax
aa3996:	8b ce                	mov    %esi,%ecx
aa3998:	89 45 e8             	mov    %eax,-0x18(%ebp)
aa399b:	8b 46 14             	mov    0x14(%esi),%eax
aa399e:	53                   	push   %ebx
aa399f:	89 45 ec             	mov    %eax,-0x14(%ebp)
aa39a2:	e8 18 4d 97 ff       	call   0x4186bf
aa39a7:	8b 5d 08             	mov    0x8(%ebp),%ebx
aa39aa:	8d 4d f9             	lea    -0x7(%ebp),%ecx
aa39ad:	89 4d e0             	mov    %ecx,-0x20(%ebp)
aa39b0:	8d 4d e8             	lea    -0x18(%ebp),%ecx
aa39b3:	89 75 dc             	mov    %esi,-0x24(%ebp)
aa39b6:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
aa39b9:	eb 07                	jmp    0xaa39c2
aa39bb:	8b ce                	mov    %esi,%ecx
aa39bd:	e8 fd 4c 97 ff       	call   0x4186bf
aa39c2:	53                   	push   %ebx
aa39c3:	88 45 f9             	mov    %al,-0x7(%ebp)
aa39c6:	0f b6 c0             	movzbl %al,%eax
aa39c9:	6a 08                	push   $0x8
aa39cb:	50                   	push   %eax
aa39cc:	e8 38 59 96 ff       	call   0x409309
aa39d1:	83 c4 0c             	add    $0xc,%esp
aa39d4:	85 c0                	test   %eax,%eax
aa39d6:	75 e3                	jne    0xaa39bb
aa39d8:	8a 4d f9             	mov    -0x7(%ebp),%cl
aa39db:	8b 55 10             	mov    0x10(%ebp),%edx
aa39de:	80 f9 2d             	cmp    $0x2d,%cl
aa39e1:	0f 94 c0             	sete   %al
aa39e4:	88 82 08 03 00 00    	mov    %al,0x308(%edx)
aa39ea:	80 f9 2d             	cmp    $0x2d,%cl
aa39ed:	74 05                	je     0xaa39f4
aa39ef:	80 f9 2b             	cmp    $0x2b,%cl
aa39f2:	75 0c                	jne    0xaa3a00
aa39f4:	8b ce                	mov    %esi,%ecx
aa39f6:	e8 c4 4c 97 ff       	call   0x4186bf
aa39fb:	8a c8                	mov    %al,%cl
aa39fd:	88 4d f9             	mov    %cl,-0x7(%ebp)
aa3a00:	80 f9 49             	cmp    $0x49,%cl
aa3a03:	0f 84 b7 03 00 00    	je     0xaa3dc0
aa3a09:	80 f9 69             	cmp    $0x69,%cl
aa3a0c:	0f 84 ae 03 00 00    	je     0xaa3dc0
aa3a12:	80 f9 4e             	cmp    $0x4e,%cl
aa3a15:	0f 84 93 03 00 00    	je     0xaa3dae
aa3a1b:	80 f9 6e             	cmp    $0x6e,%cl
aa3a1e:	0f 84 8a 03 00 00    	je     0xaa3dae
aa3a24:	33 db                	xor    %ebx,%ebx
aa3a26:	88 5d ff             	mov    %bl,-0x1(%ebp)
aa3a29:	80 f9 30             	cmp    $0x30,%cl
aa3a2c:	75 43                	jne    0xaa3a71
aa3a2e:	8b 46 14             	mov    0x14(%esi),%eax
aa3a31:	8b ce                	mov    %esi,%ecx
aa3a33:	8b 7e 10             	mov    0x10(%esi),%edi
aa3a36:	89 45 f0             	mov    %eax,-0x10(%ebp)
aa3a39:	e8 81 4c 97 ff       	call   0x4186bf
aa3a3e:	88 45 f4             	mov    %al,-0xc(%ebp)
aa3a41:	3c 78                	cmp    $0x78,%al
aa3a43:	74 13                	je     0xaa3a58
aa3a45:	3c 58                	cmp    $0x58,%al
aa3a47:	74 0f                	je     0xaa3a58
aa3a49:	ff 75 f4             	push   -0xc(%ebp)
aa3a4c:	8b ce                	mov    %esi,%ecx
aa3a4e:	e8 7a bf 98 ff       	call   0x42f9cd
aa3a53:	8a 4d f9             	mov    -0x7(%ebp),%cl
aa3a56:	eb 19                	jmp    0xaa3a71
aa3a58:	8b ce                	mov    %esi,%ecx
aa3a5a:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
aa3a5e:	e8 5c 4c 97 ff       	call   0x4186bf
aa3a63:	8a c8                	mov    %al,%cl
aa3a65:	89 7d e8             	mov    %edi,-0x18(%ebp)
aa3a68:	8b 45 f0             	mov    -0x10(%ebp),%eax
aa3a6b:	88 4d f9             	mov    %cl,-0x7(%ebp)
aa3a6e:	89 45 ec             	mov    %eax,-0x14(%ebp)
aa3a71:	8b 55 10             	mov    0x10(%ebp),%edx
aa3a74:	89 5d f4             	mov    %ebx,-0xc(%ebp)
aa3a77:	88 5d fe             	mov    %bl,-0x2(%ebp)
aa3a7a:	8d 7a 08             	lea    0x8(%edx),%edi
aa3a7d:	80 f9 30             	cmp    $0x30,%cl
aa3a80:	75 18                	jne    0xaa3a9a
aa3a82:	c6 45 fe 01          	movb   $0x1,-0x2(%ebp)
aa3a86:	8b ce                	mov    %esi,%ecx
aa3a88:	e8 32 4c 97 ff       	call   0x4186bf
aa3a8d:	8a c8                	mov    %al,%cl
aa3a8f:	88 4d f9             	mov    %cl,-0x7(%ebp)
aa3a92:	80 f9 30             	cmp    $0x30,%cl
aa3a95:	74 ef                	je     0xaa3a86
aa3a97:	8b 55 10             	mov    0x10(%ebp),%edx
aa3a9a:	33 db                	xor    %ebx,%ebx
aa3a9c:	38 5d ff             	cmp    %bl,-0x1(%ebp)
aa3a9f:	0f 94 c3             	sete   %bl
aa3aa2:	4b                   	dec    %ebx
aa3aa3:	83 e3 06             	and    $0x6,%ebx
aa3aa6:	83 c3 09             	add    $0x9,%ebx
aa3aa9:	89 5d f0             	mov    %ebx,-0x10(%ebp)
aa3aac:	8a c1                	mov    %cl,%al
aa3aae:	2c 30                	sub    $0x30,%al
aa3ab0:	3c 09                	cmp    $0x9,%al
aa3ab2:	77 08                	ja     0xaa3abc
aa3ab4:	0f be c1             	movsbl %cl,%eax
aa3ab7:	83 e8 30             	sub    $0x30,%eax
aa3aba:	eb 23                	jmp    0xaa3adf
aa3abc:	8a c1                	mov    %cl,%al
aa3abe:	2c 61                	sub    $0x61,%al
aa3ac0:	3c 19                	cmp    $0x19,%al
aa3ac2:	77 08                	ja     0xaa3acc
aa3ac4:	0f be c1             	movsbl %cl,%eax
aa3ac7:	83 e8 57             	sub    $0x57,%eax
aa3aca:	eb 13                	jmp    0xaa3adf
aa3acc:	8a c1                	mov    %cl,%al
aa3ace:	2c 41                	sub    $0x41,%al
aa3ad0:	3c 19                	cmp    $0x19,%al
aa3ad2:	77 08                	ja     0xaa3adc
aa3ad4:	0f be c1             	movsbl %cl,%eax
aa3ad7:	83 e8 37             	sub    $0x37,%eax
aa3ada:	eb 03                	jmp    0xaa3adf
aa3adc:	83 c8 ff             	or     $0xffffffff,%eax
aa3adf:	3b c3                	cmp    %ebx,%eax
aa3ae1:	77 25                	ja     0xaa3b08
aa3ae3:	8d 8a 08 03 00 00    	lea    0x308(%edx),%ecx
aa3ae9:	c6 45 fe 01          	movb   $0x1,-0x2(%ebp)
aa3aed:	3b f9                	cmp    %ecx,%edi
aa3aef:	74 03                	je     0xaa3af4
aa3af1:	88 07                	mov    %al,(%edi)
aa3af3:	47                   	inc    %edi
aa3af4:	ff 45 f4             	incl   -0xc(%ebp)
aa3af7:	8b ce                	mov    %esi,%ecx
aa3af9:	e8 c1 4b 97 ff       	call   0x4186bf
aa3afe:	8b 55 10             	mov    0x10(%ebp),%edx
aa3b01:	8a c8                	mov    %al,%cl
aa3b03:	88 4d f9             	mov    %cl,-0x7(%ebp)
aa3b06:	eb a4                	jmp    0xaa3aac
aa3b08:	8b 45 08             	mov    0x8(%ebp),%eax
aa3b0b:	6a 00                	push   $0x0
aa3b0d:	5b                   	pop    %ebx
aa3b0e:	8b 00                	mov    (%eax),%eax
aa3b10:	8b 80 88 00 00 00    	mov    0x88(%eax),%eax
aa3b16:	8b 00                	mov    (%eax),%eax
aa3b18:	3a 08                	cmp    (%eax),%cl
aa3b1a:	0f 85 98 00 00 00    	jne    0xaa3bb8
aa3b20:	8b ce                	mov    %esi,%ecx
aa3b22:	e8 98 4b 97 ff       	call   0x4186bf
aa3b27:	8b 55 10             	mov    0x10(%ebp),%edx
aa3b2a:	8a c8                	mov    %al,%cl
aa3b2c:	88 4d f9             	mov    %cl,-0x7(%ebp)
aa3b2f:	8d 42 08             	lea    0x8(%edx),%eax
aa3b32:	3b f8                	cmp    %eax,%edi
aa3b34:	75 24                	jne    0xaa3b5a
aa3b36:	80 f9 30             	cmp    $0x30,%cl
aa3b39:	75 1f                	jne    0xaa3b5a
aa3b3b:	8b 5d f4             	mov    -0xc(%ebp),%ebx
aa3b3e:	c6 45 fe 01          	movb   $0x1,-0x2(%ebp)
aa3b42:	8b ce                	mov    %esi,%ecx
aa3b44:	4b                   	dec    %ebx
aa3b45:	e8 75 4b 97 ff       	call   0x4186bf
aa3b4a:	8a c8                	mov    %al,%cl
aa3b4c:	88 4d f9             	mov    %cl,-0x7(%ebp)
aa3b4f:	80 f9 30             	cmp    $0x30,%cl
aa3b52:	74 ee                	je     0xaa3b42
aa3b54:	8b 55 10             	mov    0x10(%ebp),%edx
aa3b57:	89 5d f4             	mov    %ebx,-0xc(%ebp)
aa3b5a:	8b 5d f0             	mov    -0x10(%ebp),%ebx
aa3b5d:	8a c1                	mov    %cl,%al
aa3b5f:	2c 30                	sub    $0x30,%al
aa3b61:	3c 09                	cmp    $0x9,%al
aa3b63:	77 08                	ja     0xaa3b6d
aa3b65:	0f be c1             	movsbl %cl,%eax
aa3b68:	83 e8 30             	sub    $0x30,%eax
aa3b6b:	eb 23                	jmp    0xaa3b90
aa3b6d:	8a c1                	mov    %cl,%al
aa3b6f:	2c 61                	sub    $0x61,%al
aa3b71:	3c 19                	cmp    $0x19,%al
aa3b73:	77 08                	ja     0xaa3b7d
aa3b75:	0f be c1             	movsbl %cl,%eax
aa3b78:	83 e8 57             	sub    $0x57,%eax
aa3b7b:	eb 13                	jmp    0xaa3b90
aa3b7d:	8a c1                	mov    %cl,%al
aa3b7f:	2c 41                	sub    $0x41,%al
aa3b81:	3c 19                	cmp    $0x19,%al
aa3b83:	77 08                	ja     0xaa3b8d
aa3b85:	0f be c1             	movsbl %cl,%eax
aa3b88:	83 e8 37             	sub    $0x37,%eax
aa3b8b:	eb 03                	jmp    0xaa3b90
aa3b8d:	83 c8 ff             	or     $0xffffffff,%eax
aa3b90:	3b c3                	cmp    %ebx,%eax
aa3b92:	77 22                	ja     0xaa3bb6
aa3b94:	8d 8a 08 03 00 00    	lea    0x308(%edx),%ecx
aa3b9a:	c6 45 fe 01          	movb   $0x1,-0x2(%ebp)
aa3b9e:	3b f9                	cmp    %ecx,%edi
aa3ba0:	74 03                	je     0xaa3ba5
aa3ba2:	88 07                	mov    %al,(%edi)
aa3ba4:	47                   	inc    %edi
aa3ba5:	8b ce                	mov    %esi,%ecx