409936:	77 dd                	ja     0x409915
409938:	32 c0                	xor    %al,%al
40993a:	5d                   	pop    %ebp
40993b:	c3                   	ret
40993c:	8b ff                	mov    %edi,%edi
40993e:	55                   	push   %ebp
40993f:	8b ec                	mov    %esp,%ebp
409941:	83 ec 28             	sub    $0x28,%esp
409944:	8d 4d 0c             	lea    0xc(%ebp),%ecx
409947:	53                   	push   %ebx
409948:	57                   	push   %edi
409949:	e8 4f 09 00 00       	call   0x40a29d
40994e:	84 c0                	test   %al,%al
409950:	74 21                	je     0x409973
409952:	8b 7d 14             	mov    0x14(%ebp),%edi
409955:	85 ff                	test   %edi,%edi
409957:	74 30                	je     0x409989
409959:	83 ff 02             	cmp    $0x2,%edi
40995c:	7c 05                	jl     0x409963
40995e:	83 ff 24             	cmp    $0x24,%edi
409961:	7e 26                	jle    0x409989
409963:	e8 9f e3 ff ff       	call   0x407d07
409968:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40996e:	e8 bb e2 ff ff       	call   0x407c2e
409973:	33 db                	xor    %ebx,%ebx
409975:	8b 55 10             	mov    0x10(%ebp),%edx
409978:	85 d2                	test   %edx,%edx
40997a:	74 05                	je     0x409981
40997c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40997f:	89 0a                	mov    %ecx,(%edx)
409981:	5f                   	pop    %edi
409982:	8b c3                	mov    %ebx,%eax
409984:	5b                   	pop    %ebx
409985:	8b e5                	mov    %ebp,%esp
409987:	5d                   	pop    %ebp
409988:	c3                   	ret
409989:	56                   	push   %esi
40998a:	ff 75 08             	push   0x8(%ebp)
40998d:	8d 4d d8             	lea    -0x28(%ebp),%ecx
409990:	e8 1c bd ff ff       	call   0x4056b1
409995:	8b 45 0c             	mov    0xc(%ebp),%eax
409998:	33 f6                	xor    %esi,%esi
40999a:	89 75 f4             	mov    %esi,-0xc(%ebp)
40999d:	89 45 e8             	mov    %eax,-0x18(%ebp)
4099a0:	eb 03                	jmp    0x4099a5
4099a2:	8b 45 0c             	mov    0xc(%ebp),%eax
4099a5:	8a 18                	mov    (%eax),%bl
4099a7:	40                   	inc    %eax
4099a8:	89 45 0c             	mov    %eax,0xc(%ebp)
4099ab:	8d 45 dc             	lea    -0x24(%ebp),%eax
4099ae:	50                   	push   %eax
4099af:	0f b6 c3             	movzbl %bl,%eax
4099b2:	6a 08                	push   $0x8
4099b4:	50                   	push   %eax
4099b5:	88 5d fc             	mov    %bl,-0x4(%ebp)
4099b8:	e8 25 09 00 00       	call   0x40a2e2
4099bd:	83 c4 0c             	add    $0xc,%esp
4099c0:	85 c0                	test   %eax,%eax
4099c2:	75 de                	jne    0x4099a2
4099c4:	38 45 18             	cmp    %al,0x18(%ebp)
4099c7:	0f 95 c0             	setne  %al
4099ca:	89 45 f8             	mov    %eax,-0x8(%ebp)
4099cd:	80 fb 2d             	cmp    $0x2d,%bl
4099d0:	75 08                	jne    0x4099da
4099d2:	83 c8 02             	or     $0x2,%eax
4099d5:	89 45 f8             	mov    %eax,-0x8(%ebp)
4099d8:	eb 05                	jmp    0x4099df
4099da:	80 fb 2b             	cmp    $0x2b,%bl
4099dd:	75 0e                	jne    0x4099ed
4099df:	8b 75 0c             	mov    0xc(%ebp),%esi
4099e2:	8a 1e                	mov    (%esi),%bl
4099e4:	46                   	inc    %esi
4099e5:	88 5d fc             	mov    %bl,-0x4(%ebp)
4099e8:	89 75 0c             	mov    %esi,0xc(%ebp)
4099eb:	eb 03                	jmp    0x4099f0
4099ed:	8b 75 0c             	mov    0xc(%ebp),%esi
4099f0:	85 ff                	test   %edi,%edi
4099f2:	74 05                	je     0x4099f9
4099f4:	83 ff 10             	cmp    $0x10,%edi
4099f7:	75 78                	jne    0x409a71
4099f9:	8a c3                	mov    %bl,%al
4099fb:	2c 30                	sub    $0x30,%al
4099fd:	3c 09                	cmp    $0x9,%al
4099ff:	77 08                	ja     0x409a09
409a01:	0f be c3             	movsbl %bl,%eax
409a04:	83 c0 d0             	add    $0xffffffd0,%eax
409a07:	eb 23                	jmp    0x409a2c
409a09:	8a c3                	mov    %bl,%al
409a0b:	2c 61                	sub    $0x61,%al
409a0d:	3c 19                	cmp    $0x19,%al
409a0f:	77 08                	ja     0x409a19
409a11:	0f be c3             	movsbl %bl,%eax
409a14:	83 c0 a9             	add    $0xffffffa9,%eax
409a17:	eb 13                	jmp    0x409a2c
409a19:	8a c3                	mov    %bl,%al
409a1b:	2c 41                	sub    $0x41,%al
409a1d:	3c 19                	cmp    $0x19,%al
409a1f:	77 08                	ja     0x409a29
409a21:	0f be c3             	movsbl %bl,%eax
409a24:	83 c0 c9             	add    $0xffffffc9,%eax
409a27:	eb 03                	jmp    0x409a2c
409a29:	83 c8 ff             	or     $0xffffffff,%eax
409a2c:	85 c0                	test   %eax,%eax
409a2e:	74 09                	je     0x409a39
409a30:	85 ff                	test   %edi,%edi
409a32:	75 3d                	jne    0x409a71
409a34:	6a 0a                	push   $0xa
409a36:	5f                   	pop    %edi
409a37:	eb 38                	jmp    0x409a71
409a39:	8a 06                	mov    (%esi),%al
409a3b:	46                   	inc    %esi
409a3c:	88 45 f0             	mov    %al,-0x10(%ebp)
409a3f:	89 75 0c             	mov    %esi,0xc(%ebp)
409a42:	3c 78                	cmp    $0x78,%al
409a44:	74 1b                	je     0x409a61
409a46:	3c 58                	cmp    $0x58,%al
409a48:	74 17                	je     0x409a61
409a4a:	85 ff                	test   %edi,%edi
409a4c:	75 03                	jne    0x409a51
409a4e:	6a 08                	push   $0x8
409a50:	5f                   	pop    %edi
409a51:	ff 75 f0             	push   -0x10(%ebp)
409a54:	8d 4d 0c             	lea    0xc(%ebp),%ecx
409a57:	e8 ed 07 00 00       	call   0x40a249
409a5c:	8b 75 0c             	mov    0xc(%ebp),%esi
409a5f:	eb 10                	jmp    0x409a71
409a61:	85 ff                	test   %edi,%edi
409a63:	75 03                	jne    0x409a68
409a65:	6a 10                	push   $0x10
409a67:	5f                   	pop    %edi
409a68:	8a 1e                	mov    (%esi),%bl
409a6a:	46                   	inc    %esi
409a6b:	88 5d fc             	mov    %bl,-0x4(%ebp)
409a6e:	89 75 0c             	mov    %esi,0xc(%ebp)
409a71:	33 d2                	xor    %edx,%edx
409a73:	83 c8 ff             	or     $0xffffffff,%eax
409a76:	f7 f7                	div    %edi
409a78:	89 55 ec             	mov    %edx,-0x14(%ebp)
409a7b:	8b 55 f8             	mov    -0x8(%ebp),%edx
409a7e:	89 45 f0             	mov    %eax,-0x10(%ebp)
409a81:	8d 4b d0             	lea    -0x30(%ebx),%ecx
409a84:	80 f9 09             	cmp    $0x9,%cl
409a87:	77 08                	ja     0x409a91
409a89:	0f be cb             	movsbl %bl,%ecx
409a8c:	83 c1 d0             	add    $0xffffffd0,%ecx
409a8f:	eb 23                	jmp    0x409ab4
409a91:	8a c3                	mov    %bl,%al
409a93:	2c 61                	sub    $0x61,%al
409a95:	3c 19                	cmp    $0x19,%al
409a97:	77 08                	ja     0x409aa1
409a99:	0f be cb             	movsbl %bl,%ecx
409a9c:	83 c1 a9             	add    $0xffffffa9,%ecx
409a9f:	eb 13                	jmp    0x409ab4
409aa1:	8a c3                	mov    %bl,%al
409aa3:	2c 41                	sub    $0x41,%al
409aa5:	3c 19                	cmp    $0x19,%al
409aa7:	77 08                	ja     0x409ab1
409aa9:	0f be cb             	movsbl %bl,%ecx
409aac:	83 c1 c9             	add    $0xffffffc9,%ecx
409aaf:	eb 03                	jmp    0x409ab4
409ab1:	83 c9 ff             	or     $0xffffffff,%ecx
409ab4:	83 f9 ff             	cmp    $0xffffffff,%ecx
409ab7:	74 30                	je     0x409ae9
409ab9:	3b cf                	cmp    %edi,%ecx
409abb:	73 2c                	jae    0x409ae9
409abd:	8b 45 f4             	mov    -0xc(%ebp),%eax
409ac0:	83 ca 08             	or     $0x8,%edx
409ac3:	8b 5d f0             	mov    -0x10(%ebp),%ebx
409ac6:	3b c3                	cmp    %ebx,%eax
409ac8:	72 0c                	jb     0x409ad6
409aca:	75 05                	jne    0x409ad1
409acc:	3b 4d ec             	cmp    -0x14(%ebp),%ecx
409acf:	76 05                	jbe    0x409ad6
409ad1:	83 ca 04             	or     $0x4,%edx
409ad4:	eb 08                	jmp    0x409ade
409ad6:	0f af c7             	imul   %edi,%eax
409ad9:	03 c1                	add    %ecx,%eax
409adb:	89 45 f4             	mov    %eax,-0xc(%ebp)
409ade:	8a 1e                	mov    (%esi),%bl
409ae0:	46                   	inc    %esi
409ae1:	88 5d fc             	mov    %bl,-0x4(%ebp)
409ae4:	89 75 0c             	mov    %esi,0xc(%ebp)
409ae7:	eb 98                	jmp    0x409a81
409ae9:	ff 75 fc             	push   -0x4(%ebp)
409aec:	8d 4d 0c             	lea    0xc(%ebp),%ecx
409aef:	89 55 f8             	mov    %edx,-0x8(%ebp)
409af2:	e8 52 07 00 00       	call   0x40a249
409af7:	8b 5d f8             	mov    -0x8(%ebp),%ebx
409afa:	f6 c3 08             	test   $0x8,%bl
409afd:	75 0a                	jne    0x409b09
409aff:	8b 45 e8             	mov    -0x18(%ebp),%eax
409b02:	33 db                	xor    %ebx,%ebx
409b04:	89 45 0c             	mov    %eax,0xc(%ebp)
409b07:	eb 41                	jmp    0x409b4a
409b09:	8b 75 f4             	mov    -0xc(%ebp),%esi
409b0c:	56                   	push   %esi
409b0d:	53                   	push   %ebx
409b0e:	e8 f6 fd ff ff       	call   0x409909
409b13:	59                   	pop    %ecx
409b14:	59                   	pop    %ecx
409b15:	84 c0                	test   %al,%al
409b17:	74 28                	je     0x409b41
409b19:	e8 e9 e1 ff ff       	call   0x407d07
409b1e:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
409b24:	f6 c3 01             	test   $0x1,%bl
409b27:	75 05                	jne    0x409b2e
409b29:	83 ce ff             	or     $0xffffffff,%esi
409b2c:	eb 1a                	jmp    0x409b48
409b2e:	f6 c3 02             	test   $0x2,%bl
409b31:	74 07                	je     0x409b3a
409b33:	bb 00 00 00 80       	mov    $0x80000000,%ebx
409b38:	eb 10                	jmp    0x409b4a
409b3a:	bb ff ff ff 7f       	mov    $0x7fffffff,%ebx
409b3f:	eb 09                	jmp    0x409b4a
409b41:	f6 c3 02             	test   $0x2,%bl
409b44:	74 02                	je     0x409b48
409b46:	f7 de                	neg    %esi
409b48:	8b de                	mov    %esi,%ebx
409b4a:	80 7d e4 00          	cmpb   $0x0,-0x1c(%ebp)
409b4e:	5e                   	pop    %esi
409b4f:	0f 84 20 fe ff ff    	je     0x409975
409b55:	8b 45 d8             	mov    -0x28(%ebp),%eax
409b58:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
409b5f:	e9 11 fe ff ff       	jmp    0x409975
409b64:	8b ff                	mov    %edi,%edi
409b66:	55                   	push   %ebp
409b67:	8b ec                	mov    %esp,%ebp
409b69:	83 ec 1c             	sub    $0x1c,%esp
409b6c:	8d 4d 0c             	lea    0xc(%ebp),%ecx
409b6f:	53                   	push   %ebx
409b70:	57                   	push   %edi
409b71:	e8 27 07 00 00       	call   0x40a29d
409b76:	84 c0                	test   %al,%al
409b78:	74 23                	je     0x409b9d
409b7a:	8b 45 14             	mov    0x14(%ebp),%eax
409b7d:	6a 02                	push   $0x2
409b7f:	5f                   	pop    %edi
409b80:	85 c0                	test   %eax,%eax
409b82:	74 2f                	je     0x409bb3
409b84:	3b c7                	cmp    %edi,%eax
409b86:	7c 05                	jl     0x409b8d
409b88:	83 f8 24             	cmp    $0x24,%eax
409b8b:	7e 26                	jle    0x409bb3
409b8d:	e8 75 e1 ff ff       	call   0x407d07
409b92:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
409b98:	e8 91 e0 ff ff       	call   0x407c2e
409b9d:	33 db                	xor    %ebx,%ebx
409b9f:	8b 55 10             	mov    0x10(%ebp),%edx
409ba2:	85 d2                	test   %edx,%edx
409ba4:	74 05                	je     0x409bab
409ba6:	8b 4d 0c             	mov    0xc(%ebp),%ecx
409ba9:	89 0a                	mov    %ecx,(%edx)
409bab:	5f                   	pop    %edi
409bac:	8b c3                	mov    %ebx,%eax
409bae:	5b                   	pop    %ebx
409baf:	8b e5                	mov    %ebp,%esp
409bb1:	5d                   	pop    %ebp
409bb2:	c3                   	ret
409bb3:	56                   	push   %esi
409bb4:	ff 75 08             	push   0x8(%ebp)
409bb7:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
409bba:	e8 f2 ba ff ff       	call   0x4056b1
409bbf:	8b 45 0c             	mov    0xc(%ebp),%eax
409bc2:	33 f6                	xor    %esi,%esi
409bc4:	89 75 f8             	mov    %esi,-0x8(%ebp)
409bc7:	89 45 f4             	mov    %eax,-0xc(%ebp)
409bca:	eb 03                	jmp    0x409bcf
409bcc:	8b 45 0c             	mov    0xc(%ebp),%eax
409bcf:	0f b7 30             	movzwl (%eax),%esi
409bd2:	03 c7                	add    %edi,%eax
409bd4:	6a 08                	push   $0x8
409bd6:	56                   	push   %esi
409bd7:	89 45 0c             	mov    %eax,0xc(%ebp)
409bda:	e8 e7 7a 00 00       	call   0x4116c6
409bdf:	59                   	pop    %ecx
409be0:	59                   	pop    %ecx
409be1:	85 c0                	test   %eax,%eax
409be3:	75 e7                	jne    0x409bcc
409be5:	33 db                	xor    %ebx,%ebx
409be7:	38 5d 18             	cmp    %bl,0x18(%ebp)
409bea:	0f 95 c3             	setne  %bl
409bed:	66 83 fe 2d          	cmp    $0x2d,%si
409bf1:	75 04                	jne    0x409bf7
409bf3:	0b df                	or     %edi,%ebx
409bf5:	eb 06                	jmp    0x409bfd
409bf7:	66 83 fe 2b          	cmp    $0x2b,%si
409bfb:	75 0e                	jne    0x409c0b
409bfd:	8b 7d 0c             	mov    0xc(%ebp),%edi
409c00:	0f b7 37             	movzwl (%edi),%esi
409c03:	83 c7 02             	add    $0x2,%edi
409c06:	89 7d 0c             	mov    %edi,0xc(%ebp)
409c09:	eb 03                	jmp    0x409c0e
409c0b:	8b 7d 0c             	mov    0xc(%ebp),%edi
409c0e:	8b 4d 14             	mov    0x14(%ebp),%ecx
409c11:	c7 45 fc 19 00 00 00 	movl   $0x19,-0x4(%ebp)
409c18:	6a 30                	push   $0x30
409c1a:	58                   	pop    %eax
409c1b:	6a 10                	push   $0x10
409c1d:	5a                   	pop    %edx
409c1e:	85 c9                	test   %ecx,%ecx
409c20:	74 08                	je     0x409c2a
409c22:	3b ca                	cmp    %edx,%ecx
409c24:	0f 85 db 02 00 00    	jne    0x409f05
409c2a:	66 3b f0             	cmp    %ax,%si
409c2d:	0f 82 55 02 00 00    	jb     0x409e88
409c33:	6a 3a                	push   $0x3a
409c35:	58                   	pop    %eax
409c36:	66 3b f0             	cmp    %ax,%si
409c39:	73 0b                	jae    0x409c46
409c3b:	0f b7 c6             	movzwl %si,%eax
409c3e:	83 e8 30             	sub    $0x30,%eax
409c41:	e9 3d 02 00 00       	jmp    0x409e83
409c46:	b8 10 ff 00 00       	mov    $0xff10,%eax
409c4b:	66 3b f0             	cmp    %ax,%si
409c4e:	0f 83 18 02 00 00    	jae    0x409e6c
409c54:	b8 60 06 00 00       	mov    $0x660,%eax
409c59:	66 3b f0             	cmp    %ax,%si
409c5c:	0f 82 26 02 00 00    	jb     0x409e88
409c62:	83 c0 0a             	add    $0xa,%eax
409c65:	66 3b f0             	cmp    %ax,%si
409c68:	73 0d                	jae    0x409c77
409c6a:	0f b7 c6             	movzwl %si,%eax
409c6d:	2d 60 06 00 00       	sub    $0x660,%eax
409c72:	e9 0c 02 00 00       	jmp    0x409e83
409c77:	b8 f0 06 00 00       	mov    $0x6f0,%eax
409c7c:	66 3b f0             	cmp    %ax,%si
409c7f:	0f 82 03 02 00 00    	jb     0x409e88
409c85:	83 c0 0a             	add    $0xa,%eax
409c88:	66 3b f0             	cmp    %ax,%si
409c8b:	73 0d                	jae    0x409c9a
409c8d:	0f b7 c6             	movzwl %si,%eax
409c90:	2d f0 06 00 00       	sub    $0x6f0,%eax
409c95:	e9 e9 01 00 00       	jmp    0x409e83
409c9a:	b8 66 09 00 00       	mov    $0x966,%eax
409c9f:	66 3b f0             	cmp    %ax,%si
409ca2:	0f 82 e0 01 00 00    	jb     0x409e88
409ca8:	83 c0 0a             	add    $0xa,%eax
409cab:	66 3b f0             	cmp    %ax,%si
409cae:	73 0d                	jae    0x409cbd
409cb0:	0f b7 c6             	movzwl %si,%eax
409cb3:	2d 66 09 00 00       	sub    $0x966,%eax
409cb8:	e9 c6 01 00 00       	jmp    0x409e83
409cbd:	b8 e6 09 00 00       	mov    $0x9e6,%eax
409cc2:	66 3b f0             	cmp    %ax,%si
409cc5:	0f 82 bd 01 00 00    	jb     0x409e88
409ccb:	83 c0 0a             	add    $0xa,%eax
409cce:	66 3b f0             	cmp    %ax,%si
409cd1:	73 0d                	jae    0x409ce0
409cd3:	0f b7 c6             	movzwl %si,%eax
409cd6:	2d e6 09 00 00       	sub    $0x9e6,%eax