410a06:	80 fa 01             	cmp    $0x1,%dl
410a09:	75 11                	jne    0x410a1c
410a0b:	66 8b 00             	mov    (%eax),%ax
410a0e:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
410a12:	8d 45 fc             	lea    -0x4(%ebp),%eax
410a15:	6a 02                	push   $0x2
410a17:	50                   	push   %eax
410a18:	6a 02                	push   $0x2
410a1a:	eb 0a                	jmp    0x410a26
410a1c:	80 fa 02             	cmp    $0x2,%dl
410a1f:	75 11                	jne    0x410a32
410a21:	6a 04                	push   $0x4
410a23:	50                   	push   %eax
410a24:	6a 04                	push   $0x4
410a26:	ff 71 0c             	push   0xc(%ecx)
410a29:	ff 15 74 b3 41 00    	call   *0x41b374
410a2f:	83 c4 10             	add    $0x10,%esp
410a32:	c9                   	leave
410a33:	c2 04 00             	ret    $0x4
410a36:	0f b7 01             	movzwl (%ecx),%eax
410a39:	66 85 c0             	test   %ax,%ax
410a3c:	75 07                	jne    0x410a45
410a3e:	0f b7 41 08          	movzwl 0x8(%ecx),%eax
410a42:	83 c0 02             	add    $0x2,%eax
410a45:	8a 49 02             	mov    0x2(%ecx),%cl
410a48:	80 f9 01             	cmp    $0x1,%cl
410a4b:	75 04                	jne    0x410a51
410a4d:	83 c0 02             	add    $0x2,%eax
410a50:	c3                   	ret
410a51:	80 f9 02             	cmp    $0x2,%cl
410a54:	75 03                	jne    0x410a59
410a56:	83 c0 04             	add    $0x4,%eax
410a59:	c3                   	ret
410a5a:	8b ff                	mov    %edi,%edi
410a5c:	55                   	push   %ebp
410a5d:	8b ec                	mov    %esp,%ebp
410a5f:	51                   	push   %ecx
410a60:	51                   	push   %ecx
410a61:	8b 45 08             	mov    0x8(%ebp),%eax
410a64:	53                   	push   %ebx
410a65:	8b d9                	mov    %ecx,%ebx
410a67:	56                   	push   %esi
410a68:	8b 30                	mov    (%eax),%esi
410a6a:	57                   	push   %edi
410a6b:	8a 43 02             	mov    0x2(%ebx),%al
410a6e:	8b 7d 0c             	mov    0xc(%ebp),%edi
410a71:	3c 01                	cmp    $0x1,%al
410a73:	75 26                	jne    0x410a9b
410a75:	8d 46 02             	lea    0x2(%esi),%eax
410a78:	89 45 f8             	mov    %eax,-0x8(%ebp)
410a7b:	3b c7                	cmp    %edi,%eax
410a7d:	77 72                	ja     0x410af1
410a7f:	66 8b 43 04          	mov    0x4(%ebx),%ax
410a83:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
410a87:	8d 45 fc             	lea    -0x4(%ebp),%eax
410a8a:	6a 02                	push   $0x2
410a8c:	50                   	push   %eax
410a8d:	6a 02                	push   $0x2
410a8f:	56                   	push   %esi
410a90:	ff 15 74 b3 41 00    	call   *0x41b374
410a96:	8b 75 f8             	mov    -0x8(%ebp),%esi
410a99:	eb 20                	jmp    0x410abb
410a9b:	3c 02                	cmp    $0x2,%al
410a9d:	75 1f                	jne    0x410abe
410a9f:	8d 46 04             	lea    0x4(%esi),%eax
410aa2:	89 45 f8             	mov    %eax,-0x8(%ebp)
410aa5:	3b c7                	cmp    %edi,%eax
410aa7:	77 48                	ja     0x410af1
410aa9:	6a 04                	push   $0x4
410aab:	8d 43 04             	lea    0x4(%ebx),%eax
410aae:	50                   	push   %eax
410aaf:	6a 04                	push   $0x4
410ab1:	56                   	push   %esi
410ab2:	ff 15 74 b3 41 00    	call   *0x41b374
410ab8:	8b 75 f8             	mov    -0x8(%ebp),%esi
410abb:	83 c4 10             	add    $0x10,%esp
410abe:	66 83 3b 00          	cmpw   $0x0,(%ebx)
410ac2:	75 22                	jne    0x410ae6
410ac4:	8d 46 02             	lea    0x2(%esi),%eax
410ac7:	89 45 f8             	mov    %eax,-0x8(%ebp)
410aca:	3b c7                	cmp    %edi,%eax
410acc:	77 23                	ja     0x410af1
410ace:	6a 02                	push   $0x2
410ad0:	8d 43 08             	lea    0x8(%ebx),%eax
410ad3:	50                   	push   %eax
410ad4:	8b c7                	mov    %edi,%eax
410ad6:	2b c6                	sub    %esi,%eax
410ad8:	50                   	push   %eax
410ad9:	56                   	push   %esi
410ada:	ff 15 74 b3 41 00    	call   *0x41b374
410ae0:	8b 75 f8             	mov    -0x8(%ebp),%esi
410ae3:	83 c4 10             	add    $0x10,%esp
410ae6:	0f b7 4b 08          	movzwl 0x8(%ebx),%ecx
410aea:	8d 04 31             	lea    (%ecx,%esi,1),%eax
410aed:	3b c7                	cmp    %edi,%eax
410aef:	76 04                	jbe    0x410af5
410af1:	32 c0                	xor    %al,%al
410af3:	eb 1e                	jmp    0x410b13
410af5:	51                   	push   %ecx
410af6:	ff 73 10             	push   0x10(%ebx)
410af9:	2b fe                	sub    %esi,%edi
410afb:	57                   	push   %edi
410afc:	56                   	push   %esi
410afd:	ff 15 74 b3 41 00    	call   *0x41b374
410b03:	8b 4d 08             	mov    0x8(%ebp),%ecx
410b06:	83 c4 10             	add    $0x10,%esp
410b09:	0f b7 43 08          	movzwl 0x8(%ebx),%eax
410b0d:	03 c6                	add    %esi,%eax
410b0f:	89 01                	mov    %eax,(%ecx)
410b11:	b0 01                	mov    $0x1,%al
410b13:	5f                   	pop    %edi
410b14:	5e                   	pop    %esi
410b15:	5b                   	pop    %ebx
410b16:	c9                   	leave
410b17:	c2 08 00             	ret    $0x8
410b1a:	8b ff                	mov    %edi,%edi
410b1c:	55                   	push   %ebp
410b1d:	8b ec                	mov    %esp,%ebp
410b1f:	51                   	push   %ecx
410b20:	8b 45 08             	mov    0x8(%ebp),%eax
410b23:	53                   	push   %ebx
410b24:	56                   	push   %esi
410b25:	8b f1                	mov    %ecx,%esi
410b27:	8b 10                	mov    (%eax),%edx
410b29:	8a 46 02             	mov    0x2(%esi),%al
410b2c:	3c 01                	cmp    $0x1,%al
410b2e:	75 23                	jne    0x410b53
410b30:	8d 5a 02             	lea    0x2(%edx),%ebx
410b33:	3b 5d 0c             	cmp    0xc(%ebp),%ebx
410b36:	77 78                	ja     0x410bb0
410b38:	6a 02                	push   $0x2
410b3a:	52                   	push   %edx
410b3b:	8d 45 fc             	lea    -0x4(%ebp),%eax
410b3e:	89 56 0c             	mov    %edx,0xc(%esi)
410b41:	6a 02                	push   $0x2
410b43:	50                   	push   %eax
410b44:	ff 15 74 b3 41 00    	call   *0x41b374
410b4a:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
410b4e:	89 46 04             	mov    %eax,0x4(%esi)
410b51:	eb 1e                	jmp    0x410b71
410b53:	3c 02                	cmp    $0x2,%al
410b55:	75 1f                	jne    0x410b76
410b57:	8d 5a 04             	lea    0x4(%edx),%ebx
410b5a:	3b 5d 0c             	cmp    0xc(%ebp),%ebx
410b5d:	77 51                	ja     0x410bb0
410b5f:	6a 04                	push   $0x4
410b61:	52                   	push   %edx
410b62:	8d 46 04             	lea    0x4(%esi),%eax
410b65:	89 56 0c             	mov    %edx,0xc(%esi)
410b68:	6a 04                	push   $0x4
410b6a:	50                   	push   %eax
410b6b:	ff 15 74 b3 41 00    	call   *0x41b374
410b71:	8b d3                	mov    %ebx,%edx
410b73:	83 c4 10             	add    $0x10,%esp
410b76:	0f b7 06             	movzwl (%esi),%eax
410b79:	8d 5e 08             	lea    0x8(%esi),%ebx
410b7c:	66 89 03             	mov    %ax,(%ebx)
410b7f:	8b c8                	mov    %eax,%ecx
410b81:	66 85 c0             	test   %ax,%ax
410b84:	75 20                	jne    0x410ba6
410b86:	8d 42 02             	lea    0x2(%edx),%eax
410b89:	89 45 fc             	mov    %eax,-0x4(%ebp)
410b8c:	3b 45 0c             	cmp    0xc(%ebp),%eax
410b8f:	77 1f                	ja     0x410bb0
410b91:	6a 02                	push   $0x2
410b93:	52                   	push   %edx
410b94:	6a 02                	push   $0x2
410b96:	53                   	push   %ebx
410b97:	ff 15 74 b3 41 00    	call   *0x41b374
410b9d:	8b 55 fc             	mov    -0x4(%ebp),%edx
410ba0:	83 c4 10             	add    $0x10,%esp
410ba3:	0f b7 0b             	movzwl (%ebx),%ecx
410ba6:	0f b7 c1             	movzwl %cx,%eax
410ba9:	03 c2                	add    %edx,%eax
410bab:	3b 45 0c             	cmp    0xc(%ebp),%eax
410bae:	76 04                	jbe    0x410bb4
410bb0:	32 c0                	xor    %al,%al
410bb2:	eb 0a                	jmp    0x410bbe
410bb4:	8b 4d 08             	mov    0x8(%ebp),%ecx
410bb7:	89 56 10             	mov    %edx,0x10(%esi)
410bba:	89 01                	mov    %eax,(%ecx)
410bbc:	b0 01                	mov    $0x1,%al
410bbe:	5e                   	pop    %esi
410bbf:	5b                   	pop    %ebx
410bc0:	c9                   	leave
410bc1:	c2 08 00             	ret    $0x8
410bc4:	8b ff                	mov    %edi,%edi
410bc6:	55                   	push   %ebp
410bc7:	8b ec                	mov    %esp,%ebp
410bc9:	66 8b 45 08          	mov    0x8(%ebp),%ax
410bcd:	8b d1                	mov    %ecx,%edx
410bcf:	8a 4d 18             	mov    0x18(%ebp),%cl
410bd2:	83 ec 14             	sub    $0x14,%esp
410bd5:	66 89 02             	mov    %ax,(%edx)
410bd8:	66 8b 45 0c          	mov    0xc(%ebp),%ax
410bdc:	66 89 42 02          	mov    %ax,0x2(%edx)
410be0:	8a 45 10             	mov    0x10(%ebp),%al
410be3:	88 42 04             	mov    %al,0x4(%edx)
410be6:	66 8b 45 14          	mov    0x14(%ebp),%ax
410bea:	53                   	push   %ebx
410beb:	33 db                	xor    %ebx,%ebx
410bed:	66 89 42 06          	mov    %ax,0x6(%edx)
410bf1:	88 4a 08             	mov    %cl,0x8(%edx)
410bf4:	66 85 c0             	test   %ax,%ax
410bf7:	74 20                	je     0x410c19
410bf9:	66 89 45 ec          	mov    %ax,-0x14(%ebp)
410bfd:	33 c0                	xor    %eax,%eax
410bff:	88 4d ee             	mov    %cl,-0x12(%ebp)
410c02:	8d 4d ec             	lea    -0x14(%ebp),%ecx
410c05:	89 5d f0             	mov    %ebx,-0x10(%ebp)
410c08:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
410c0c:	89 5d f8             	mov    %ebx,-0x8(%ebp)
410c0f:	89 5d fc             	mov    %ebx,-0x4(%ebp)
410c12:	e8 1f fe ff ff       	call   0x410a36
410c17:	eb 02                	jmp    0x410c1b
410c19:	8b c3                	mov    %ebx,%eax
410c1b:	89 42 0c             	mov    %eax,0xc(%edx)
410c1e:	8b c2                	mov    %edx,%eax
410c20:	89 5a 10             	mov    %ebx,0x10(%edx)
410c23:	89 5a 14             	mov    %ebx,0x14(%edx)
410c26:	89 5a 18             	mov    %ebx,0x18(%edx)
410c29:	89 5a 1c             	mov    %ebx,0x1c(%edx)
410c2c:	88 5a 22             	mov    %bl,0x22(%edx)
410c2f:	66 c7 42 20 00 00    	movw   $0x0,0x20(%edx)
410c35:	5b                   	pop    %ebx
410c36:	c9                   	leave
410c37:	c2 14 00             	ret    $0x14
410c3a:	8b ff                	mov    %edi,%edi
410c3c:	55                   	push   %ebp
410c3d:	8b ec                	mov    %esp,%ebp
410c3f:	83 ec 18             	sub    $0x18,%esp
410c42:	53                   	push   %ebx
410c43:	8b 5d 08             	mov    0x8(%ebp),%ebx
410c46:	8d 41 10             	lea    0x10(%ecx),%eax
410c49:	56                   	push   %esi
410c4a:	57                   	push   %edi
410c4b:	8b f0                	mov    %eax,%esi
410c4d:	89 4d f8             	mov    %ecx,-0x8(%ebp)
410c50:	8d 7d e8             	lea    -0x18(%ebp),%edi
410c53:	8d 48 0c             	lea    0xc(%eax),%ecx
410c56:	8b 11                	mov    (%ecx),%edx
410c58:	a5                   	movsl  %ds:(%esi),%es:(%edi)
410c59:	89 55 fc             	mov    %edx,-0x4(%ebp)
410c5c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
410c5d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
410c5e:	83 21 00             	andl   $0x0,(%ecx)
410c61:	8d 73 10             	lea    0x10(%ebx),%esi
410c64:	8b f8                	mov    %eax,%edi
410c66:	a5                   	movsl  %ds:(%esi),%es:(%edi)
410c67:	a5                   	movsl  %ds:(%esi),%es:(%edi)
410c68:	a5                   	movsl  %ds:(%esi),%es:(%edi)
410c69:	8b 43 1c             	mov    0x1c(%ebx),%eax
410c6c:	83 63 1c 00          	andl   $0x0,0x1c(%ebx)
410c70:	50                   	push   %eax
410c71:	e8 d1 14 00 00       	call   0x412147
410c76:	ff 75 fc             	push   -0x4(%ebp)
410c79:	8b fb                	mov    %ebx,%edi
410c7b:	8d 75 e8             	lea    -0x18(%ebp),%esi
410c7e:	8d 4b 1c             	lea    0x1c(%ebx),%ecx
410c81:	8d 7f 10             	lea    0x10(%edi),%edi
410c84:	a5                   	movsl  %ds:(%esi),%es:(%edi)
410c85:	a5                   	movsl  %ds:(%esi),%es:(%edi)
410c86:	a5                   	movsl  %ds:(%esi),%es:(%edi)
410c87:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
410c8b:	e8 b7 14 00 00       	call   0x412147
410c90:	8d 4d f4             	lea    -0xc(%ebp),%ecx
410c93:	e8 d3 14 00 00       	call   0x41216b
410c98:	8b 5d f8             	mov    -0x8(%ebp),%ebx
410c9b:	8b 55 08             	mov    0x8(%ebp),%edx
410c9e:	5f                   	pop    %edi
410c9f:	5e                   	pop    %esi
410ca0:	8a 4b 20             	mov    0x20(%ebx),%cl
410ca3:	8a 42 20             	mov    0x20(%edx),%al
410ca6:	88 43 20             	mov    %al,0x20(%ebx)
410ca9:	8a 42 21             	mov    0x21(%edx),%al
410cac:	88 4a 20             	mov    %cl,0x20(%edx)
410caf:	8a 4b 21             	mov    0x21(%ebx),%cl
410cb2:	88 43 21             	mov    %al,0x21(%ebx)
410cb5:	88 4a 21             	mov    %cl,0x21(%edx)
410cb8:	5b                   	pop    %ebx
410cb9:	c9                   	leave
410cba:	c2 04 00             	ret    $0x4
410cbd:	8b ff                	mov    %edi,%edi
410cbf:	55                   	push   %ebp
410cc0:	8b ec                	mov    %esp,%ebp
410cc2:	53                   	push   %ebx
410cc3:	56                   	push   %esi
410cc4:	57                   	push   %edi
410cc5:	8b 7d 10             	mov    0x10(%ebp),%edi
410cc8:	8b f1                	mov    %ecx,%esi
410cca:	83 ff 0a             	cmp    $0xa,%edi
410ccd:	0f 82 c6 00 00 00    	jb     0x410d99
410cd3:	8b 46 1c             	mov    0x1c(%esi),%eax
410cd6:	33 db                	xor    %ebx,%ebx
410cd8:	89 5e 1c             	mov    %ebx,0x1c(%esi)
410cdb:	85 c0                	test   %eax,%eax
410cdd:	74 0f                	je     0x410cee
410cdf:	50                   	push   %eax
410ce0:	53                   	push   %ebx
410ce1:	ff 15 68 b1 41 00    	call   *0x41b168
410ce7:	50                   	push   %eax
410ce8:	ff 15 28 b1 41 00    	call   *0x41b128
410cee:	8b 55 08             	mov    0x8(%ebp),%edx
410cf1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
410cf4:	83 f9 0a             	cmp    $0xa,%ecx
410cf7:	88 5e 21             	mov    %bl,0x21(%esi)
410cfa:	1a db                	sbb    %bl,%bl
410cfc:	89 56 10             	mov    %edx,0x10(%esi)
410cff:	fe c3                	inc    %bl
410d01:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
410d04:	89 46 14             	mov    %eax,0x14(%esi)
410d07:	8d 04 3a             	lea    (%edx,%edi,1),%eax
410d0a:	89 46 18             	mov    %eax,0x18(%esi)
410d0d:	83 f9 0a             	cmp    $0xa,%ecx
410d10:	72 4b                	jb     0x410d5d
410d12:	33 c9                	xor    %ecx,%ecx
410d14:	66 39 0a             	cmp    %cx,(%edx)
410d17:	77 0b                	ja     0x410d24
410d19:	66 8b 42 02          	mov    0x2(%edx),%ax
410d1d:	66 3b 06             	cmp    (%esi),%ax
410d20:	8a c1                	mov    %cl,%al
410d22:	76 02                	jbe    0x410d26
410d24:	b0 01                	mov    $0x1,%al
410d26:	88 46 21             	mov    %al,0x21(%esi)
410d29:	66 39 0a             	cmp    %cx,(%edx)
410d2c:	75 2d                	jne    0x410d5b
410d2e:	66 8b 42 02          	mov    0x2(%edx),%ax
410d32:	66 3b 06             	cmp    (%esi),%ax
410d35:	75 24                	jne    0x410d5b
410d37:	66 8b 42 04          	mov    0x4(%edx),%ax
410d3b:	66 3b 46 02          	cmp    0x2(%esi),%ax
410d3f:	75 1a                	jne    0x410d5b
410d41:	8a 42 08             	mov    0x8(%edx),%al
410d44:	3a 46 04             	cmp    0x4(%esi),%al
410d47:	75 12                	jne    0x410d5b
410d49:	66 8b 42 06          	mov    0x6(%edx),%ax
410d4d:	66 3b 46 06          	cmp    0x6(%esi),%ax
410d51:	75 08                	jne    0x410d5b
410d53:	8a 42 09             	mov    0x9(%edx),%al
410d56:	3a 46 08             	cmp    0x8(%esi),%al
410d59:	74 02                	je     0x410d5d
410d5b:	8a d9                	mov    %cl,%bl
410d5d:	84 db                	test   %bl,%bl
410d5f:	75 31                	jne    0x410d92
410d61:	33 c0                	xor    %eax,%eax
410d63:	66 89 02             	mov    %ax,(%edx)
410d66:	66 8b 06             	mov    (%esi),%ax
410d69:	66 89 42 02          	mov    %ax,0x2(%edx)
410d6d:	66 8b 46 02          	mov    0x2(%esi),%ax
410d71:	66 89 42 04          	mov    %ax,0x4(%edx)