406a3e:	89 06                	mov    %eax,(%esi)
406a40:	83 f9 02             	cmp    $0x2,%ecx
406a43:	74 1f                	je     0x406a64
406a45:	33 db                	xor    %ebx,%ebx
406a47:	8d 45 b8             	lea    -0x48(%ebp),%eax
406a4a:	53                   	push   %ebx
406a4b:	50                   	push   %eax
406a4c:	53                   	push   %ebx
406a4d:	53                   	push   %ebx
406a4e:	53                   	push   %ebx
406a4f:	57                   	push   %edi
406a50:	ff 15 18 b1 41 00    	call   *0x41b118
406a56:	85 c0                	test   %eax,%eax
406a58:	74 0a                	je     0x406a64
406a5a:	8b 45 b8             	mov    -0x48(%ebp),%eax
406a5d:	99                   	cltd
406a5e:	89 46 18             	mov    %eax,0x18(%esi)
406a61:	89 56 1c             	mov    %edx,0x1c(%esi)
406a64:	33 c0                	xor    %eax,%eax
406a66:	40                   	inc    %eax
406a67:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406a6a:	5f                   	pop    %edi
406a6b:	5e                   	pop    %esi
406a6c:	33 cd                	xor    %ebp,%ecx
406a6e:	5b                   	pop    %ebx
406a6f:	e8 e2 c4 ff ff       	call   0x402f56
406a74:	8b e5                	mov    %ebp,%esp
406a76:	5d                   	pop    %ebp
406a77:	c3                   	ret
406a78:	8b ff                	mov    %edi,%edi
406a7a:	55                   	push   %ebp
406a7b:	8b ec                	mov    %esp,%ebp
406a7d:	83 ec 28             	sub    $0x28,%esp
406a80:	a1 0c 30 42 00       	mov    0x42300c,%eax
406a85:	33 c5                	xor    %ebp,%eax
406a87:	89 45 fc             	mov    %eax,-0x4(%ebp)
406a8a:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
406a8e:	75 0e                	jne    0x406a9e
406a90:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
406a94:	75 08                	jne    0x406a9e
406a96:	8b 45 10             	mov    0x10(%ebp),%eax
406a99:	8b 55 14             	mov    0x14(%ebp),%edx
406a9c:	eb 76                	jmp    0x406b14
406a9e:	8d 45 dc             	lea    -0x24(%ebp),%eax
406aa1:	50                   	push   %eax
406aa2:	8d 45 08             	lea    0x8(%ebp),%eax
406aa5:	50                   	push   %eax
406aa6:	ff 15 20 b1 41 00    	call   *0x41b120
406aac:	85 c0                	test   %eax,%eax
406aae:	74 52                	je     0x406b02
406ab0:	8d 45 ec             	lea    -0x14(%ebp),%eax
406ab3:	50                   	push   %eax
406ab4:	8d 45 dc             	lea    -0x24(%ebp),%eax
406ab7:	50                   	push   %eax
406ab8:	6a 00                	push   $0x0
406aba:	ff 15 1c b1 41 00    	call   *0x41b11c
406ac0:	85 c0                	test   %eax,%eax
406ac2:	74 3e                	je     0x406b02
406ac4:	83 4d d8 ff          	orl    $0xffffffff,-0x28(%ebp)
406ac8:	8d 45 d8             	lea    -0x28(%ebp),%eax
406acb:	50                   	push   %eax
406acc:	8d 45 f8             	lea    -0x8(%ebp),%eax
406acf:	50                   	push   %eax
406ad0:	8d 45 f6             	lea    -0xa(%ebp),%eax
406ad3:	50                   	push   %eax
406ad4:	8d 45 f4             	lea    -0xc(%ebp),%eax
406ad7:	50                   	push   %eax
406ad8:	8d 45 f2             	lea    -0xe(%ebp),%eax
406adb:	50                   	push   %eax
406adc:	8d 45 ee             	lea    -0x12(%ebp),%eax
406adf:	50                   	push   %eax
406ae0:	8d 45 ec             	lea    -0x14(%ebp),%eax
406ae3:	50                   	push   %eax
406ae4:	e8 39 00 00 00       	call   0x406b22
406ae9:	8b c8                	mov    %eax,%ecx
406aeb:	83 c4 1c             	add    $0x1c,%esp
406aee:	23 ca                	and    %edx,%ecx
406af0:	83 f9 ff             	cmp    $0xffffffff,%ecx
406af3:	75 1f                	jne    0x406b14
406af5:	e8 0d 12 00 00       	call   0x407d07
406afa:	c7 00 84 00 00 00    	movl   $0x84,(%eax)
406b00:	eb 0d                	jmp    0x406b0f
406b02:	ff 15 48 b0 41 00    	call   *0x41b048
406b08:	50                   	push   %eax
406b09:	e8 c3 11 00 00       	call   0x407cd1
406b0e:	59                   	pop    %ecx
406b0f:	83 c8 ff             	or     $0xffffffff,%eax
406b12:	0b d0                	or     %eax,%edx
406b14:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406b17:	33 cd                	xor    %ebp,%ecx
406b19:	e8 38 c4 ff ff       	call   0x402f56
406b1e:	8b e5                	mov    %ebp,%esp
406b20:	5d                   	pop    %ebp
406b21:	c3                   	ret
406b22:	8b ff                	mov    %edi,%edi
406b24:	55                   	push   %ebp
406b25:	8b ec                	mov    %esp,%ebp
406b27:	8b 45 20             	mov    0x20(%ebp),%eax
406b2a:	ff 30                	push   (%eax)
406b2c:	8b 45 1c             	mov    0x1c(%ebp),%eax
406b2f:	0f b7 00             	movzwl (%eax),%eax
406b32:	50                   	push   %eax
406b33:	8b 45 18             	mov    0x18(%ebp),%eax
406b36:	0f b7 00             	movzwl (%eax),%eax
406b39:	50                   	push   %eax
406b3a:	8b 45 14             	mov    0x14(%ebp),%eax
406b3d:	0f b7 00             	movzwl (%eax),%eax
406b40:	50                   	push   %eax
406b41:	8b 45 10             	mov    0x10(%ebp),%eax
406b44:	0f b7 00             	movzwl (%eax),%eax
406b47:	50                   	push   %eax
406b48:	8b 45 0c             	mov    0xc(%ebp),%eax
406b4b:	0f b7 00             	movzwl (%eax),%eax
406b4e:	50                   	push   %eax
406b4f:	8b 45 08             	mov    0x8(%ebp),%eax
406b52:	0f b7 00             	movzwl (%eax),%eax
406b55:	50                   	push   %eax
406b56:	e8 e8 5d 00 00       	call   0x40c943
406b5b:	83 c4 1c             	add    $0x1c,%esp
406b5e:	5d                   	pop    %ebp
406b5f:	c3                   	ret
406b60:	8b ff                	mov    %edi,%edi
406b62:	55                   	push   %ebp
406b63:	8b ec                	mov    %esp,%ebp
406b65:	56                   	push   %esi
406b66:	57                   	push   %edi
406b67:	e8 9b 11 00 00       	call   0x407d07
406b6c:	8b 38                	mov    (%eax),%edi
406b6e:	e8 94 11 00 00       	call   0x407d07
406b73:	ff 75 10             	push   0x10(%ebp)
406b76:	ff 75 0c             	push   0xc(%ebp)
406b79:	83 20 00             	andl   $0x0,(%eax)
406b7c:	ff 75 08             	push   0x8(%ebp)
406b7f:	e8 70 50 00 00       	call   0x40bbf4
406b84:	83 c4 0c             	add    $0xc,%esp
406b87:	8b f0                	mov    %eax,%esi
406b89:	e8 79 11 00 00       	call   0x407d07
406b8e:	85 f6                	test   %esi,%esi
406b90:	74 06                	je     0x406b98
406b92:	89 38                	mov    %edi,(%eax)
406b94:	8b c6                	mov    %esi,%eax
406b96:	eb 24                	jmp    0x406bbc
406b98:	83 38 22             	cmpl   $0x22,(%eax)
406b9b:	74 04                	je     0x406ba1
406b9d:	33 c0                	xor    %eax,%eax
406b9f:	eb 1b                	jmp    0x406bbc
406ba1:	e8 61 11 00 00       	call   0x407d07
406ba6:	6a 00                	push   $0x0
406ba8:	ff 75 0c             	push   0xc(%ebp)
406bab:	6a 00                	push   $0x0
406bad:	89 38                	mov    %edi,(%eax)
406baf:	e8 40 50 00 00       	call   0x40bbf4
406bb4:	8b 4d 14             	mov    0x14(%ebp),%ecx
406bb7:	83 c4 0c             	add    $0xc,%esp
406bba:	89 01                	mov    %eax,(%ecx)
406bbc:	5f                   	pop    %edi
406bbd:	5e                   	pop    %esi
406bbe:	5d                   	pop    %ebp
406bbf:	c3                   	ret
406bc0:	8b ff                	mov    %edi,%edi
406bc2:	55                   	push   %ebp
406bc3:	8b ec                	mov    %esp,%ebp
406bc5:	56                   	push   %esi
406bc6:	8b 75 0c             	mov    0xc(%ebp),%esi
406bc9:	57                   	push   %edi
406bca:	8b 7d 08             	mov    0x8(%ebp),%edi
406bcd:	83 26 00             	andl   $0x0,(%esi)
406bd0:	83 66 04 00          	andl   $0x0,0x4(%esi)
406bd4:	8b 47 04             	mov    0x4(%edi),%eax
406bd7:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
406bdc:	7e 0f                	jle    0x406bed
406bde:	e8 24 11 00 00       	call   0x407d07
406be3:	c7 00 84 00 00 00    	movl   $0x84,(%eax)
406be9:	32 c0                	xor    %al,%al
406beb:	eb 0f                	jmp    0x406bfc
406bed:	33 c9                	xor    %ecx,%ecx
406bef:	99                   	cltd
406bf0:	03 0f                	add    (%edi),%ecx
406bf2:	89 0e                	mov    %ecx,(%esi)
406bf4:	83 d0 00             	adc    $0x0,%eax
406bf7:	89 46 04             	mov    %eax,0x4(%esi)
406bfa:	b0 01                	mov    $0x1,%al
406bfc:	5f                   	pop    %edi
406bfd:	5e                   	pop    %esi
406bfe:	5d                   	pop    %ebp
406bff:	c3                   	ret
406c00:	8b ff                	mov    %edi,%edi
406c02:	55                   	push   %ebp
406c03:	8b ec                	mov    %esp,%ebp
406c05:	56                   	push   %esi
406c06:	57                   	push   %edi
406c07:	0f b6 7d 08          	movzbl 0x8(%ebp),%edi
406c0b:	8b c7                	mov    %edi,%eax
406c0d:	c1 e8 04             	shr    $0x4,%eax
406c10:	a8 01                	test   $0x1,%al
406c12:	75 12                	jne    0x406c26
406c14:	ff 75 0c             	push   0xc(%ebp)
406c17:	e8 26 01 00 00       	call   0x406d42
406c1c:	be 00 80 00 00       	mov    $0x8000,%esi
406c21:	59                   	pop    %ecx
406c22:	84 c0                	test   %al,%al
406c24:	74 05                	je     0x406c2b
406c26:	be 40 40 00 00       	mov    $0x4040,%esi
406c2b:	ff 75 0c             	push   0xc(%ebp)
406c2e:	c1 e7 07             	shl    $0x7,%edi
406c31:	f7 d7                	not    %edi
406c33:	81 e7 80 00 00 00    	and    $0x80,%edi
406c39:	81 cf 00 01 00 00    	or     $0x100,%edi
406c3f:	0b f7                	or     %edi,%esi
406c41:	e8 8d 00 00 00       	call   0x406cd3
406c46:	59                   	pop    %ecx
406c47:	84 c0                	test   %al,%al
406c49:	74 03                	je     0x406c4e
406c4b:	83 ce 40             	or     $0x40,%esi
406c4e:	8b c6                	mov    %esi,%eax
406c50:	c1 e8 03             	shr    $0x3,%eax
406c53:	83 e0 38             	and    $0x38,%eax
406c56:	0b f0                	or     %eax,%esi
406c58:	8b c6                	mov    %esi,%eax
406c5a:	c1 e8 06             	shr    $0x6,%eax
406c5d:	83 e0 07             	and    $0x7,%eax
406c60:	5f                   	pop    %edi
406c61:	0b c6                	or     %esi,%eax
406c63:	5e                   	pop    %esi
406c64:	5d                   	pop    %ebp
406c65:	c3                   	ret
406c66:	8b ff                	mov    %edi,%edi
406c68:	55                   	push   %ebp
406c69:	8b ec                	mov    %esp,%ebp
406c6b:	8b 4d 08             	mov    0x8(%ebp),%ecx
406c6e:	33 d2                	xor    %edx,%edx
406c70:	53                   	push   %ebx
406c71:	56                   	push   %esi
406c72:	8b 75 0c             	mov    0xc(%ebp),%esi
406c75:	57                   	push   %edi
406c76:	6a 41                	push   $0x41
406c78:	5b                   	pop    %ebx
406c79:	89 16                	mov    %edx,(%esi)
406c7b:	0f b7 01             	movzwl (%ecx),%eax
406c7e:	6a 5a                	push   $0x5a
406c80:	5f                   	pop    %edi
406c81:	66 3b d8             	cmp    %ax,%bx
406c84:	77 05                	ja     0x406c8b
406c86:	66 3b c7             	cmp    %di,%ax
406c89:	76 0f                	jbe    0x406c9a
406c8b:	6a 61                	push   $0x61
406c8d:	5a                   	pop    %edx
406c8e:	66 3b d0             	cmp    %ax,%dx
406c91:	77 39                	ja     0x406ccc
406c93:	83 f8 7a             	cmp    $0x7a,%eax
406c96:	77 34                	ja     0x406ccc
406c98:	33 d2                	xor    %edx,%edx
406c9a:	66 83 79 02 3a       	cmpw   $0x3a,0x2(%ecx)
406c9f:	75 24                	jne    0x406cc5
406ca1:	66 39 51 04          	cmp    %dx,0x4(%ecx)
406ca5:	75 0c                	jne    0x406cb3
406ca7:	6a 02                	push   $0x2
406ca9:	e8 23 10 00 00       	call   0x407cd1
406cae:	59                   	pop    %ecx
406caf:	32 c0                	xor    %al,%al
406cb1:	eb 1b                	jmp    0x406cce
406cb3:	66 3b c3             	cmp    %bx,%ax
406cb6:	72 08                	jb     0x406cc0
406cb8:	66 3b c7             	cmp    %di,%ax
406cbb:	77 03                	ja     0x406cc0
406cbd:	83 c0 20             	add    $0x20,%eax
406cc0:	83 c0 a0             	add    $0xffffffa0,%eax
406cc3:	89 06                	mov    %eax,(%esi)
406cc5:	e8 a6 4d 00 00       	call   0x40ba70
406cca:	89 06                	mov    %eax,(%esi)
406ccc:	b0 01                	mov    $0x1,%al
406cce:	5f                   	pop    %edi
406ccf:	5e                   	pop    %esi
406cd0:	5b                   	pop    %ebx
406cd1:	5d                   	pop    %ebp
406cd2:	c3                   	ret
406cd3:	8b ff                	mov    %edi,%edi
406cd5:	55                   	push   %ebp
406cd6:	8b ec                	mov    %esp,%ebp
406cd8:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
406cdc:	75 04                	jne    0x406ce2
406cde:	32 c0                	xor    %al,%al
406ce0:	5d                   	pop    %ebp
406ce1:	c3                   	ret
406ce2:	56                   	push   %esi
406ce3:	6a 2e                	push   $0x2e
406ce5:	ff 75 08             	push   0x8(%ebp)
406ce8:	e8 27 d7 ff ff       	call   0x404414
406ced:	8b f0                	mov    %eax,%esi
406cef:	59                   	pop    %ecx
406cf0:	59                   	pop    %ecx
406cf1:	85 f6                	test   %esi,%esi
406cf3:	74 44                	je     0x406d39
406cf5:	68 14 0b 42 00       	push   $0x420b14
406cfa:	56                   	push   %esi
406cfb:	e8 e5 12 00 00       	call   0x407fe5
406d00:	59                   	pop    %ecx
406d01:	59                   	pop    %ecx
406d02:	85 c0                	test   %eax,%eax
406d04:	74 37                	je     0x406d3d
406d06:	68 fc bc 41 00       	push   $0x41bcfc
406d0b:	56                   	push   %esi
406d0c:	e8 d4 12 00 00       	call   0x407fe5
406d11:	59                   	pop    %ecx
406d12:	59                   	pop    %ecx
406d13:	85 c0                	test   %eax,%eax
406d15:	74 26                	je     0x406d3d
406d17:	68 08 bd 41 00       	push   $0x41bd08
406d1c:	56                   	push   %esi
406d1d:	e8 c3 12 00 00       	call   0x407fe5
406d22:	59                   	pop    %ecx
406d23:	59                   	pop    %ecx
406d24:	85 c0                	test   %eax,%eax
406d26:	74 15                	je     0x406d3d
406d28:	68 14 bd 41 00       	push   $0x41bd14
406d2d:	56                   	push   %esi
406d2e:	e8 b2 12 00 00       	call   0x407fe5
406d33:	59                   	pop    %ecx
406d34:	59                   	pop    %ecx
406d35:	85 c0                	test   %eax,%eax
406d37:	74 04                	je     0x406d3d
406d39:	32 c0                	xor    %al,%al
406d3b:	eb 02                	jmp    0x406d3f
406d3d:	b0 01                	mov    $0x1,%al
406d3f:	5e                   	pop    %esi
406d40:	5d                   	pop    %ebp
406d41:	c3                   	ret
406d42:	8b ff                	mov    %edi,%edi
406d44:	55                   	push   %ebp
406d45:	8b ec                	mov    %esp,%ebp
406d47:	8b 4d 08             	mov    0x8(%ebp),%ecx
406d4a:	85 c9                	test   %ecx,%ecx
406d4c:	74 47                	je     0x406d95
406d4e:	0f b7 01             	movzwl (%ecx),%eax
406d51:	6a 41                	push   $0x41
406d53:	5a                   	pop    %edx
406d54:	66 3b d0             	cmp    %ax,%dx
406d57:	77 05                	ja     0x406d5e
406d59:	83 f8 5a             	cmp    $0x5a,%eax
406d5c:	76 0d                	jbe    0x406d6b
406d5e:	6a 61                	push   $0x61
406d60:	5a                   	pop    %edx
406d61:	66 3b d0             	cmp    %ax,%dx
406d64:	77 0f                	ja     0x406d75
406d66:	83 f8 7a             	cmp    $0x7a,%eax
406d69:	77 0a                	ja     0x406d75
406d6b:	66 83 79 02 3a       	cmpw   $0x3a,0x2(%ecx)
406d70:	75 03                	jne    0x406d75
406d72:	83 c1 04             	add    $0x4,%ecx
406d75:	0f b7 01             	movzwl (%ecx),%eax