422891:	83 3c 24 7f          	cmpl   $0x7f,(%esp)
422895:	7f 1a                	jg     0x4228b1
422897:	b2 02                	mov    $0x2,%dl
422899:	8b c3                	mov    %ebx,%eax
42289b:	e8 08 17 00 00       	call   0x423fa8
4228a0:	8b d4                	mov    %esp,%edx
4228a2:	b9 01 00 00 00       	mov    $0x1,%ecx
4228a7:	8b c3                	mov    %ebx,%eax
4228a9:	e8 3e f7 ff ff       	call   0x421fec
4228ae:	5a                   	pop    %edx
4228af:	5b                   	pop    %ebx
4228b0:	c3                   	ret
4228b1:	81 3c 24 00 80 ff ff 	cmpl   $0xffff8000,(%esp)
4228b8:	7c 22                	jl     0x4228dc
4228ba:	81 3c 24 ff 7f 00 00 	cmpl   $0x7fff,(%esp)
4228c1:	7f 19                	jg     0x4228dc
4228c3:	b2 03                	mov    $0x3,%dl
4228c5:	8b c3                	mov    %ebx,%eax
4228c7:	e8 dc 16 00 00       	call   0x423fa8
4228cc:	8b d4                	mov    %esp,%edx
4228ce:	b9 02 00 00 00       	mov    $0x2,%ecx
4228d3:	8b c3                	mov    %ebx,%eax
4228d5:	e8 12 f7 ff ff       	call   0x421fec
4228da:	eb 17                	jmp    0x4228f3
4228dc:	b2 04                	mov    $0x4,%dl
4228de:	8b c3                	mov    %ebx,%eax
4228e0:	e8 c3 16 00 00       	call   0x423fa8
4228e5:	8b d4                	mov    %esp,%edx
4228e7:	b9 04 00 00 00       	mov    $0x4,%ecx
4228ec:	8b c3                	mov    %ebx,%eax
4228ee:	e8 f9 f6 ff ff       	call   0x421fec
4228f3:	5a                   	pop    %edx
4228f4:	5b                   	pop    %ebx
4228f5:	c3                   	ret
4228f6:	8b c0                	mov    %eax,%eax
4228f8:	55                   	push   %ebp
4228f9:	8b ec                	mov    %esp,%ebp
4228fb:	53                   	push   %ebx
4228fc:	8b d8                	mov    %eax,%ebx
4228fe:	83 7d 0c ff          	cmpl   $0xffffffff,0xc(%ebp)
422902:	75 0b                	jne    0x42290f
422904:	81 7d 08 00 00 00 80 	cmpl   $0x80000000,0x8(%ebp)
42290b:	72 25                	jb     0x422932
42290d:	eb 02                	jmp    0x422911
42290f:	7c 21                	jl     0x422932
422911:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
422915:	75 0b                	jne    0x422922
422917:	81 7d 08 ff ff ff 7f 	cmpl   $0x7fffffff,0x8(%ebp)
42291e:	77 12                	ja     0x422932
422920:	eb 02                	jmp    0x422924
422922:	7f 0e                	jg     0x422932
422924:	8b 45 08             	mov    0x8(%ebp),%eax
422927:	8b d0                	mov    %eax,%edx
422929:	8b c3                	mov    %ebx,%eax
42292b:	e8 54 ff ff ff       	call   0x422884
422930:	eb 18                	jmp    0x42294a
422932:	b2 13                	mov    $0x13,%dl
422934:	8b c3                	mov    %ebx,%eax
422936:	e8 6d 16 00 00       	call   0x423fa8
42293b:	8d 55 08             	lea    0x8(%ebp),%edx
42293e:	b9 08 00 00 00       	mov    $0x8,%ecx
422943:	8b c3                	mov    %ebx,%eax
422945:	e8 a2 f6 ff ff       	call   0x421fec
42294a:	5b                   	pop    %ebx
42294b:	5d                   	pop    %ebp
42294c:	c2 08 00             	ret    $0x8
42294f:	90                   	nop
422950:	b2 01                	mov    $0x1,%dl
422952:	e8 51 16 00 00       	call   0x423fa8
422957:	c3                   	ret
422958:	33 d2                	xor    %edx,%edx
42295a:	e8 49 16 00 00       	call   0x423fa8
42295f:	c3                   	ret
422960:	53                   	push   %ebx
422961:	56                   	push   %esi
422962:	51                   	push   %ecx
422963:	8b f1                	mov    %ecx,%esi
422965:	88 14 24             	mov    %dl,(%esp)
422968:	8b d8                	mov    %eax,%ebx
42296a:	a0 a0 29 42 00       	mov    0x4229a0,%al
42296f:	3a 04 24             	cmp    (%esp),%al
422972:	74 28                	je     0x42299c
422974:	8a 04 24             	mov    (%esp),%al
422977:	0c f0                	or     $0xf0,%al
422979:	88 44 24 01          	mov    %al,0x1(%esp)
42297d:	8d 54 24 01          	lea    0x1(%esp),%edx
422981:	b9 01 00 00 00       	mov    $0x1,%ecx
422986:	8b c3                	mov    %ebx,%eax
422988:	e8 5f f6 ff ff       	call   0x421fec
42298d:	f6 04 24 02          	testb  $0x2,(%esp)
422991:	74 09                	je     0x42299c
422993:	8b d6                	mov    %esi,%edx
422995:	8b c3                	mov    %ebx,%eax
422997:	e8 e8 fe ff ff       	call   0x422884
42299c:	5a                   	pop    %edx
42299d:	5e                   	pop    %esi
42299e:	5b                   	pop    %ebx
42299f:	c3                   	ret
4229a0:	00 00                	add    %al,(%eax)
4229a2:	00 00                	add    %al,(%eax)
4229a4:	55                   	push   %ebp
4229a5:	8b ec                	mov    %esp,%ebp
4229a7:	83 c4 f0             	add    $0xfffffff0,%esp
4229aa:	53                   	push   %ebx
4229ab:	56                   	push   %esi
4229ac:	57                   	push   %edi
4229ad:	89 55 f8             	mov    %edx,-0x8(%ebp)
4229b0:	89 45 fc             	mov    %eax,-0x4(%ebp)
4229b3:	8b 45 f8             	mov    -0x8(%ebp),%eax
4229b6:	8b 00                	mov    (%eax),%eax
4229b8:	e8 fb 12 fe ff       	call   0x403cb8
4229bd:	e8 a6 52 ff ff       	call   0x417c68
4229c2:	0f bf 40 08          	movswl 0x8(%eax),%eax
4229c6:	89 45 f4             	mov    %eax,-0xc(%ebp)
4229c9:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
4229cd:	0f 8e 85 00 00 00    	jle    0x422a58
4229d3:	8b 45 f4             	mov    -0xc(%ebp),%eax
4229d6:	c1 e0 02             	shl    $0x2,%eax
4229d9:	e8 ce fd fd ff       	call   0x4027ac
4229de:	89 45 f0             	mov    %eax,-0x10(%ebp)
4229e1:	33 c0                	xor    %eax,%eax
4229e3:	55                   	push   %ebp
4229e4:	68 51 2a 42 00       	push   $0x422a51
4229e9:	64 ff 30             	push   %fs:(%eax)
4229ec:	64 89 20             	mov    %esp,%fs:(%eax)
4229ef:	8b 45 f8             	mov    -0x8(%ebp),%eax
4229f2:	8b 00                	mov    (%eax),%eax
4229f4:	e8 bf 12 fe ff       	call   0x403cb8
4229f9:	8b 55 f0             	mov    -0x10(%ebp),%edx
4229fc:	e8 87 54 ff ff       	call   0x417e88
422a01:	8b 75 f4             	mov    -0xc(%ebp),%esi
422a04:	4e                   	dec    %esi
422a05:	85 f6                	test   %esi,%esi
422a07:	7c 2c                	jl     0x422a35
422a09:	46                   	inc    %esi
422a0a:	33 ff                	xor    %edi,%edi
422a0c:	8b 45 f0             	mov    -0x10(%ebp),%eax
422a0f:	8b 1c b8             	mov    (%eax,%edi,4),%ebx
422a12:	85 db                	test   %ebx,%ebx
422a14:	74 1f                	je     0x422a35
422a16:	8b d3                	mov    %ebx,%edx
422a18:	8b 45 f8             	mov    -0x8(%ebp),%eax
422a1b:	e8 bc 54 ff ff       	call   0x417edc
422a20:	84 c0                	test   %al,%al
422a22:	74 0d                	je     0x422a31
422a24:	8b cb                	mov    %ebx,%ecx
422a26:	8b 55 f8             	mov    -0x8(%ebp),%edx
422a29:	8b 45 fc             	mov    -0x4(%ebp),%eax
422a2c:	e8 1b 0e 00 00       	call   0x42384c
422a31:	47                   	inc    %edi
422a32:	4e                   	dec    %esi
422a33:	75 d7                	jne    0x422a0c
422a35:	33 c0                	xor    %eax,%eax
422a37:	5a                   	pop    %edx
422a38:	59                   	pop    %ecx
422a39:	59                   	pop    %ecx
422a3a:	64 89 10             	mov    %edx,%fs:(%eax)
422a3d:	68 58 2a 42 00       	push   $0x422a58
422a42:	8b 55 f4             	mov    -0xc(%ebp),%edx
422a45:	c1 e2 02             	shl    $0x2,%edx
422a48:	8b 45 f0             	mov    -0x10(%ebp),%eax
422a4b:	e8 7c fd fd ff       	call   0x4027cc
422a50:	c3                   	ret
422a51:	e9 b6 17 fe ff       	jmp    0x40420c
422a56:	eb ea                	jmp    0x422a42
422a58:	8b 55 fc             	mov    -0x4(%ebp),%edx
422a5b:	8b 45 f8             	mov    -0x8(%ebp),%eax
422a5e:	8b 08                	mov    (%eax),%ecx
422a60:	ff 51 04             	call   *0x4(%ecx)
422a63:	5f                   	pop    %edi
422a64:	5e                   	pop    %esi
422a65:	5b                   	pop    %ebx
422a66:	8b e5                	mov    %ebp,%esp
422a68:	5d                   	pop    %ebp
422a69:	c3                   	ret
422a6a:	8b c0                	mov    %eax,%eax
422a6c:	55                   	push   %ebp
422a6d:	8b ec                	mov    %esp,%ebp
422a6f:	8b 45 08             	mov    0x8(%ebp),%eax
422a72:	8b 40 fc             	mov    -0x4(%eax),%eax
422a75:	83 78 20 00          	cmpl   $0x0,0x20(%eax)
422a79:	74 30                	je     0x422aab
422a7b:	8b 45 08             	mov    0x8(%ebp),%eax
422a7e:	8b 40 fc             	mov    -0x4(%eax),%eax
422a81:	83 78 28 00          	cmpl   $0x0,0x28(%eax)
422a85:	74 24                	je     0x422aab
422a87:	8b 45 08             	mov    0x8(%ebp),%eax
422a8a:	8b 40 fc             	mov    -0x4(%eax),%eax
422a8d:	8b 40 28             	mov    0x28(%eax),%eax
422a90:	e8 2b 0f fe ff       	call   0x4039c0
422a95:	8b d0                	mov    %eax,%edx
422a97:	8b 45 08             	mov    0x8(%ebp),%eax
422a9a:	8b 40 fc             	mov    -0x4(%eax),%eax
422a9d:	8b 40 18             	mov    0x18(%eax),%eax
422aa0:	8b 00                	mov    (%eax),%eax
422aa2:	e8 fd 11 fe ff       	call   0x403ca4
422aa7:	84 c0                	test   %al,%al
422aa9:	75 04                	jne    0x422aaf
422aab:	33 c0                	xor    %eax,%eax
422aad:	5d                   	pop    %ebp
422aae:	c3                   	ret
422aaf:	b0 01                	mov    $0x1,%al
422ab1:	5d                   	pop    %ebp
422ab2:	c3                   	ret
422ab3:	90                   	nop
422ab4:	55                   	push   %ebp
422ab5:	8b ec                	mov    %esp,%ebp
422ab7:	6a 00                	push   $0x0
422ab9:	33 c0                	xor    %eax,%eax
422abb:	55                   	push   %ebp
422abc:	68 fc 2a 42 00       	push   $0x422afc
422ac1:	64 ff 30             	push   %fs:(%eax)
422ac4:	64 89 20             	mov    %esp,%fs:(%eax)
422ac7:	8d 45 fc             	lea    -0x4(%ebp),%eax
422aca:	8b 55 08             	mov    0x8(%ebp),%edx
422acd:	8b 52 f8             	mov    -0x8(%edx),%edx
422ad0:	83 c2 1a             	add    $0x1a,%edx
422ad3:	e8 ec 1f fe ff       	call   0x404ac4
422ad8:	8b 55 fc             	mov    -0x4(%ebp),%edx
422adb:	8b 45 08             	mov    0x8(%ebp),%eax
422ade:	8b 40 fc             	mov    -0x4(%eax),%eax
422ae1:	e8 76 12 00 00       	call   0x423d5c
422ae6:	33 c0                	xor    %eax,%eax
422ae8:	5a                   	pop    %edx
422ae9:	59                   	pop    %ecx
422aea:	59                   	pop    %ecx
422aeb:	64 89 10             	mov    %edx,%fs:(%eax)
422aee:	68 03 2b 42 00       	push   $0x422b03
422af3:	8d 45 fc             	lea    -0x4(%ebp),%eax
422af6:	e8 6d 1d fe ff       	call   0x404868
422afb:	c3                   	ret
422afc:	e9 0b 17 fe ff       	jmp    0x40420c
422b01:	eb f0                	jmp    0x422af3
422b03:	59                   	pop    %ecx
422b04:	5d                   	pop    %ebp
422b05:	c3                   	ret
422b06:	8b c0                	mov    %eax,%eax
422b08:	55                   	push   %ebp
422b09:	8b ec                	mov    %esp,%ebp
422b0b:	6a 00                	push   $0x0
422b0d:	53                   	push   %ebx
422b0e:	56                   	push   %esi
422b0f:	57                   	push   %edi
422b10:	8b f0                	mov    %eax,%esi
422b12:	33 c0                	xor    %eax,%eax
422b14:	55                   	push   %ebp
422b15:	68 8e 2b 42 00       	push   $0x422b8e
422b1a:	64 ff 30             	push   %fs:(%eax)
422b1d:	64 89 20             	mov    %esp,%fs:(%eax)
422b20:	8b 45 08             	mov    0x8(%ebp),%eax
422b23:	8b 40 f4             	mov    -0xc(%eax),%eax
422b26:	e8 3d 51 ff ff       	call   0x417c68
422b2b:	8b 40 01             	mov    0x1(%eax),%eax
422b2e:	8b 38                	mov    (%eax),%edi
422b30:	8b 45 08             	mov    0x8(%ebp),%eax
422b33:	8b 40 fc             	mov    -0x4(%eax),%eax
422b36:	b2 0b                	mov    $0xb,%dl
422b38:	e8 6b 14 00 00       	call   0x423fa8
422b3d:	33 db                	xor    %ebx,%ebx
422b3f:	8b c3                	mov    %ebx,%eax
422b41:	83 f8 1f             	cmp    $0x1f,%eax
422b44:	77 03                	ja     0x422b49
422b46:	0f a3 c6             	bt     %eax,%esi
422b49:	73 1a                	jae    0x422b65
422b4b:	8d 4d fc             	lea    -0x4(%ebp),%ecx
422b4e:	8b d3                	mov    %ebx,%edx
422b50:	8b c7                	mov    %edi,%eax
422b52:	e8 1d 51 ff ff       	call   0x417c74
422b57:	8b 55 fc             	mov    -0x4(%ebp),%edx
422b5a:	8b 45 08             	mov    0x8(%ebp),%eax
422b5d:	8b 40 fc             	mov    -0x4(%eax),%eax
422b60:	e8 5b 12 00 00       	call   0x423dc0
422b65:	43                   	inc    %ebx
422b66:	83 fb 20             	cmp    $0x20,%ebx
422b69:	75 d4                	jne    0x422b3f
422b6b:	8b 45 08             	mov    0x8(%ebp),%eax
422b6e:	8b 40 fc             	mov    -0x4(%eax),%eax
422b71:	33 d2                	xor    %edx,%edx
422b73:	e8 48 12 00 00       	call   0x423dc0
422b78:	33 c0                	xor    %eax,%eax
422b7a:	5a                   	pop    %edx
422b7b:	59                   	pop    %ecx
422b7c:	59                   	pop    %ecx
422b7d:	64 89 10             	mov    %edx,%fs:(%eax)
422b80:	68 95 2b 42 00       	push   $0x422b95
422b85:	8d 45 fc             	lea    -0x4(%ebp),%eax
422b88:	e8 db 1c fe ff       	call   0x404868
422b8d:	c3                   	ret
422b8e:	e9 79 16 fe ff       	jmp    0x40420c
422b93:	eb f0                	jmp    0x422b85
422b95:	5f                   	pop    %edi
422b96:	5e                   	pop    %esi
422b97:	5b                   	pop    %ebx
422b98:	59                   	pop    %ecx
422b99:	5d                   	pop    %ebp
422b9a:	c3                   	ret
422b9b:	90                   	nop
422b9c:	55                   	push   %ebp
422b9d:	8b ec                	mov    %esp,%ebp
422b9f:	6a 00                	push   $0x0
422ba1:	53                   	push   %ebx
422ba2:	56                   	push   %esi
422ba3:	8b f2                	mov    %edx,%esi
422ba5:	33 d2                	xor    %edx,%edx
422ba7:	55                   	push   %ebp
422ba8:	68 fc 2b 42 00       	push   $0x422bfc
422bad:	64 ff 32             	push   %fs:(%edx)
422bb0:	64 89 22             	mov    %esp,%fs:(%edx)
422bb3:	e8 a0 89 ff ff       	call   0x41b558
422bb8:	8b d8                	mov    %eax,%ebx
422bba:	85 db                	test   %ebx,%ebx
422bbc:	74 1b                	je     0x422bd9
422bbe:	8d 55 fc             	lea    -0x4(%ebp),%edx
422bc1:	8b c6                	mov    %esi,%eax
422bc3:	ff d3                	call   *%ebx
422bc5:	84 c0                	test   %al,%al
422bc7:	74 10                	je     0x422bd9
422bc9:	8b 45 08             	mov    0x8(%ebp),%eax
422bcc:	8b 40 fc             	mov    -0x4(%eax),%eax
422bcf:	8b 55 fc             	mov    -0x4(%ebp),%edx
422bd2:	e8 e9 fb ff ff       	call   0x4227c0
422bd7:	eb 0d                	jmp    0x422be6
422bd9:	8b 45 08             	mov    0x8(%ebp),%eax
422bdc:	8b 40 fc             	mov    -0x4(%eax),%eax
422bdf:	8b d6                	mov    %esi,%edx
422be1:	e8 9e fc ff ff       	call   0x422884
422be6:	33 c0                	xor    %eax,%eax
422be8:	5a                   	pop    %edx
422be9:	59                   	pop    %ecx
422bea:	59                   	pop    %ecx
422beb:	64 89 10             	mov    %edx,%fs:(%eax)
422bee:	68 03 2c 42 00       	push   $0x422c03
422bf3:	8d 45 fc             	lea    -0x4(%ebp),%eax
422bf6:	e8 6d 1c fe ff       	call   0x404868
422bfb:	c3                   	ret
422bfc:	e9 0b 16 fe ff       	jmp    0x40420c
422c01:	eb f0                	jmp    0x422bf3
422c03:	5e                   	pop    %esi
422c04:	5b                   	pop    %ebx
422c05:	59                   	pop    %ecx
422c06:	5d                   	pop    %ebp
422c07:	c3                   	ret
422c08:	55                   	push   %ebp
422c09:	8b ec                	mov    %esp,%ebp
422c0b:	6a 00                	push   $0x0
422c0d:	53                   	push   %ebx
422c0e:	8b d8                	mov    %eax,%ebx
422c10:	33 c0                	xor    %eax,%eax
422c12:	55                   	push   %ebp
422c13:	68 9e 2c 42 00       	push   $0x422c9e