428c20:	83 c4 0c             	add    $0xc,%esp
428c23:	85 c0                	test   %eax,%eax
428c25:	75 17                	jne    0x428c3e
428c27:	66 83 7d fc 1a       	cmpw   $0x1a,-0x4(%ebp)
428c2c:	75 10                	jne    0x428c3e
428c2e:	53                   	push   %ebx
428c2f:	57                   	push   %edi
428c30:	56                   	push   %esi
428c31:	e8 a8 26 00 00       	call   0x42b2de
428c36:	83 c4 0c             	add    $0xc,%esp
428c39:	83 f8 ff             	cmp    $0xffffffff,%eax
428c3c:	74 c7                	je     0x428c05
428c3e:	33 c0                	xor    %eax,%eax
428c40:	50                   	push   %eax
428c41:	50                   	push   %eax
428c42:	50                   	push   %eax
428c43:	56                   	push   %esi
428c44:	e8 b1 8d ff ff       	call   0x4219fa
428c49:	23 c2                	and    %edx,%eax
428c4b:	83 c4 10             	add    $0x10,%esp
428c4e:	83 f8 ff             	cmp    $0xffffffff,%eax
428c51:	74 b2                	je     0x428c05
428c53:	33 c0                	xor    %eax,%eax
428c55:	5f                   	pop    %edi
428c56:	5e                   	pop    %esi
428c57:	5b                   	pop    %ebx
428c58:	c9                   	leave
428c59:	c3                   	ret
428c5a:	8b ff                	mov    %edi,%edi
428c5c:	55                   	push   %ebp
428c5d:	8b ec                	mov    %esp,%ebp
428c5f:	83 ec 48             	sub    $0x48,%esp
428c62:	53                   	push   %ebx
428c63:	56                   	push   %esi
428c64:	57                   	push   %edi
428c65:	ff 75 1c             	push   0x1c(%ebp)
428c68:	8d 45 b8             	lea    -0x48(%ebp),%eax
428c6b:	ff 75 18             	push   0x18(%ebp)
428c6e:	ff 75 14             	push   0x14(%ebp)
428c71:	50                   	push   %eax
428c72:	e8 bf fd ff ff       	call   0x428a36
428c77:	83 c4 10             	add    $0x10,%esp
428c7a:	8d 7d d0             	lea    -0x30(%ebp),%edi
428c7d:	8b f0                	mov    %eax,%esi
428c7f:	6a 06                	push   $0x6
428c81:	59                   	pop    %ecx
428c82:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
428c84:	83 ce ff             	or     $0xffffffff,%esi
428c87:	39 75 dc             	cmp    %esi,-0x24(%ebp)
428c8a:	75 19                	jne    0x428ca5
428c8c:	e8 cd 39 ff ff       	call   0x41c65e
428c91:	83 20 00             	andl   $0x0,(%eax)
428c94:	8b 45 0c             	mov    0xc(%ebp),%eax
428c97:	89 30                	mov    %esi,(%eax)
428c99:	e8 d3 39 ff ff       	call   0x41c671
428c9e:	8b 00                	mov    (%eax),%eax
428ca0:	e9 da 02 00 00       	jmp    0x428f7f
428ca5:	e8 4e 7d ff ff       	call   0x4209f8
428caa:	8b 5d 0c             	mov    0xc(%ebp),%ebx
428cad:	89 03                	mov    %eax,(%ebx)
428caf:	3b c6                	cmp    %esi,%eax
428cb1:	75 17                	jne    0x428cca
428cb3:	e8 a6 39 ff ff       	call   0x41c65e
428cb8:	83 20 00             	andl   $0x0,(%eax)
428cbb:	89 33                	mov    %esi,(%ebx)
428cbd:	e8 af 39 ff ff       	call   0x41c671
428cc2:	c7 00 18 00 00 00    	movl   $0x18,(%eax)
428cc8:	eb cf                	jmp    0x428c99
428cca:	8b 45 08             	mov    0x8(%ebp),%eax
428ccd:	8d 75 d0             	lea    -0x30(%ebp),%esi
428cd0:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
428cd4:	33 c9                	xor    %ecx,%ecx
428cd6:	41                   	inc    %ecx
428cd7:	c7 45 e8 0c 00 00 00 	movl   $0xc,-0x18(%ebp)
428cde:	83 ec 18             	sub    $0x18,%esp
428ce1:	89 08                	mov    %ecx,(%eax)
428ce3:	8b 45 14             	mov    0x14(%ebp),%eax
428ce6:	c1 e8 07             	shr    $0x7,%eax
428ce9:	f7 d0                	not    %eax
428ceb:	23 c1                	and    %ecx,%eax
428ced:	6a 06                	push   $0x6
428cef:	59                   	pop    %ecx
428cf0:	89 45 f0             	mov    %eax,-0x10(%ebp)
428cf3:	8b fc                	mov    %esp,%edi
428cf5:	8d 45 e8             	lea    -0x18(%ebp),%eax
428cf8:	50                   	push   %eax
428cf9:	ff 75 10             	push   0x10(%ebp)
428cfc:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
428cfe:	e8 9e fc ff ff       	call   0x4289a1
428d03:	8b f8                	mov    %eax,%edi
428d05:	83 c4 20             	add    $0x20,%esp
428d08:	89 7d f8             	mov    %edi,-0x8(%ebp)
428d0b:	ba 00 00 00 c0       	mov    $0xc0000000,%edx
428d10:	83 ff ff             	cmp    $0xffffffff,%edi
428d13:	75 6b                	jne    0x428d80
428d15:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
428d18:	8b c1                	mov    %ecx,%eax
428d1a:	23 c2                	and    %edx,%eax
428d1c:	3b c2                	cmp    %edx,%eax
428d1e:	75 35                	jne    0x428d55
428d20:	f6 45 14 01          	testb  $0x1,0x14(%ebp)
428d24:	74 2f                	je     0x428d55
428d26:	83 ec 18             	sub    $0x18,%esp
428d29:	8d 45 e8             	lea    -0x18(%ebp),%eax
428d2c:	81 e1 ff ff ff 7f    	and    $0x7fffffff,%ecx
428d32:	8d 75 d0             	lea    -0x30(%ebp),%esi
428d35:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
428d38:	6a 06                	push   $0x6
428d3a:	59                   	pop    %ecx
428d3b:	8b fc                	mov    %esp,%edi
428d3d:	50                   	push   %eax
428d3e:	ff 75 10             	push   0x10(%ebp)
428d41:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
428d43:	e8 59 fc ff ff       	call   0x4289a1
428d48:	8b f8                	mov    %eax,%edi
428d4a:	83 c4 20             	add    $0x20,%esp
428d4d:	89 7d f8             	mov    %edi,-0x8(%ebp)
428d50:	83 ff ff             	cmp    $0xffffffff,%edi
428d53:	75 2b                	jne    0x428d80
428d55:	8b 0b                	mov    (%ebx),%ecx
428d57:	8b c1                	mov    %ecx,%eax
428d59:	83 e1 3f             	and    $0x3f,%ecx
428d5c:	c1 f8 06             	sar    $0x6,%eax
428d5f:	6b c9 38             	imul   $0x38,%ecx,%ecx
428d62:	8b 04 85 00 f8 43 00 	mov    0x43f800(,%eax,4),%eax
428d69:	80 64 08 28 fe       	andb   $0xfe,0x28(%eax,%ecx,1)
428d6e:	ff 15 08 11 43 00    	call   *0x431108
428d74:	50                   	push   %eax
428d75:	e8 9d 38 ff ff       	call   0x41c617
428d7a:	59                   	pop    %ecx
428d7b:	e9 19 ff ff ff       	jmp    0x428c99
428d80:	57                   	push   %edi
428d81:	ff 15 b0 10 43 00    	call   *0x4310b0
428d87:	85 c0                	test   %eax,%eax
428d89:	75 47                	jne    0x428dd2
428d8b:	ff 15 08 11 43 00    	call   *0x431108
428d91:	8b f0                	mov    %eax,%esi
428d93:	56                   	push   %esi
428d94:	e8 7e 38 ff ff       	call   0x41c617
428d99:	59                   	pop    %ecx
428d9a:	8b 0b                	mov    (%ebx),%ecx
428d9c:	8b c1                	mov    %ecx,%eax
428d9e:	83 e1 3f             	and    $0x3f,%ecx
428da1:	c1 f8 06             	sar    $0x6,%eax
428da4:	6b c9 38             	imul   $0x38,%ecx,%ecx
428da7:	57                   	push   %edi
428da8:	8b 04 85 00 f8 43 00 	mov    0x43f800(,%eax,4),%eax
428daf:	80 64 08 28 fe       	andb   $0xfe,0x28(%eax,%ecx,1)
428db4:	ff 15 20 10 43 00    	call   *0x431020
428dba:	85 f6                	test   %esi,%esi
428dbc:	0f 85 d7 fe ff ff    	jne    0x428c99
428dc2:	e8 aa 38 ff ff       	call   0x41c671
428dc7:	c7 00 0d 00 00 00    	movl   $0xd,(%eax)
428dcd:	e9 c7 fe ff ff       	jmp    0x428c99
428dd2:	83 f8 02             	cmp    $0x2,%eax
428dd5:	75 07                	jne    0x428dde
428dd7:	8a 45 d0             	mov    -0x30(%ebp),%al
428dda:	0c 40                	or     $0x40,%al
428ddc:	eb 0a                	jmp    0x428de8
428dde:	83 f8 03             	cmp    $0x3,%eax
428de1:	8a 45 d0             	mov    -0x30(%ebp),%al
428de4:	75 02                	jne    0x428de8
428de6:	0c 08                	or     $0x8,%al
428de8:	57                   	push   %edi
428de9:	ff 33                	push   (%ebx)
428deb:	88 45 ff             	mov    %al,-0x1(%ebp)
428dee:	e8 50 7b ff ff       	call   0x420943
428df3:	8a 55 ff             	mov    -0x1(%ebp),%dl
428df6:	59                   	pop    %ecx
428df7:	59                   	pop    %ecx
428df8:	8b 0b                	mov    (%ebx),%ecx
428dfa:	80 ca 01             	or     $0x1,%dl
428dfd:	8b c1                	mov    %ecx,%eax
428dff:	88 55 f4             	mov    %dl,-0xc(%ebp)
428e02:	83 e1 3f             	and    $0x3f,%ecx
428e05:	c1 f8 06             	sar    $0x6,%eax
428e08:	6b c9 38             	imul   $0x38,%ecx,%ecx
428e0b:	88 55 d0             	mov    %dl,-0x30(%ebp)
428e0e:	8b 04 85 00 f8 43 00 	mov    0x43f800(,%eax,4),%eax
428e15:	88 54 08 28          	mov    %dl,0x28(%eax,%ecx,1)
428e19:	8b 0b                	mov    (%ebx),%ecx
428e1b:	8b c1                	mov    %ecx,%eax
428e1d:	83 e1 3f             	and    $0x3f,%ecx
428e20:	c1 f8 06             	sar    $0x6,%eax
428e23:	6b c9 38             	imul   $0x38,%ecx,%ecx
428e26:	f6 45 14 02          	testb  $0x2,0x14(%ebp)
428e2a:	8b 04 85 00 f8 43 00 	mov    0x43f800(,%eax,4),%eax
428e31:	c6 44 08 29 00       	movb   $0x0,0x29(%eax,%ecx,1)
428e36:	74 1d                	je     0x428e55
428e38:	ff 33                	push   (%ebx)
428e3a:	e8 71 fd ff ff       	call   0x428bb0
428e3f:	8b f0                	mov    %eax,%esi
428e41:	59                   	pop    %ecx
428e42:	85 f6                	test   %esi,%esi
428e44:	74 0f                	je     0x428e55
428e46:	ff 33                	push   (%ebx)
428e48:	e8 0e 6d ff ff       	call   0x41fb5b
428e4d:	59                   	pop    %ecx
428e4e:	8b c6                	mov    %esi,%eax
428e50:	e9 2a 01 00 00       	jmp    0x428f7f
428e55:	8d 45 ff             	lea    -0x1(%ebp),%eax
428e58:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
428e5c:	50                   	push   %eax
428e5d:	ff 75 14             	push   0x14(%ebp)
428e60:	8d 75 d0             	lea    -0x30(%ebp),%esi
428e63:	83 ec 18             	sub    $0x18,%esp
428e66:	6a 06                	push   $0x6
428e68:	59                   	pop    %ecx
428e69:	8b fc                	mov    %esp,%edi
428e6b:	ff 33                	push   (%ebx)
428e6d:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
428e6f:	e8 d7 f8 ff ff       	call   0x42874b
428e74:	8b 13                	mov    (%ebx),%edx
428e76:	8b f0                	mov    %eax,%esi
428e78:	83 c4 24             	add    $0x24,%esp
428e7b:	85 f6                	test   %esi,%esi
428e7d:	74 03                	je     0x428e82
428e7f:	52                   	push   %edx
428e80:	eb c6                	jmp    0x428e48
428e82:	8a 45 ff             	mov    -0x1(%ebp),%al
428e85:	8b ca                	mov    %edx,%ecx
428e87:	c1 f9 06             	sar    $0x6,%ecx
428e8a:	83 e2 3f             	and    $0x3f,%edx
428e8d:	6b d2 38             	imul   $0x38,%edx,%edx
428e90:	8b 0c 8d 00 f8 43 00 	mov    0x43f800(,%ecx,4),%ecx
428e97:	88 44 11 29          	mov    %al,0x29(%ecx,%edx,1)
428e9b:	8b 0b                	mov    (%ebx),%ecx
428e9d:	8b c1                	mov    %ecx,%eax
428e9f:	c1 f8 06             	sar    $0x6,%eax
428ea2:	83 e1 3f             	and    $0x3f,%ecx
428ea5:	6b d1 38             	imul   $0x38,%ecx,%edx
428ea8:	8b 0c 85 00 f8 43 00 	mov    0x43f800(,%eax,4),%ecx
428eaf:	8b 45 14             	mov    0x14(%ebp),%eax
428eb2:	c1 e8 10             	shr    $0x10,%eax
428eb5:	32 44 11 2d          	xor    0x2d(%ecx,%edx,1),%al
428eb9:	24 01                	and    $0x1,%al
428ebb:	30 44 11 2d          	xor    %al,0x2d(%ecx,%edx,1)
428ebf:	f6 45 f4 48          	testb  $0x48,-0xc(%ebp)
428ec3:	75 1f                	jne    0x428ee4
428ec5:	f6 45 14 08          	testb  $0x8,0x14(%ebp)
428ec9:	74 19                	je     0x428ee4
428ecb:	8b 0b                	mov    (%ebx),%ecx
428ecd:	8b c1                	mov    %ecx,%eax
428ecf:	83 e1 3f             	and    $0x3f,%ecx
428ed2:	c1 f8 06             	sar    $0x6,%eax
428ed5:	6b c9 38             	imul   $0x38,%ecx,%ecx
428ed8:	8b 04 85 00 f8 43 00 	mov    0x43f800(,%eax,4),%eax
428edf:	80 4c 08 28 20       	orb    $0x20,0x28(%eax,%ecx,1)
428ee4:	8b 75 d4             	mov    -0x2c(%ebp),%esi
428ee7:	b9 00 00 00 c0       	mov    $0xc0000000,%ecx
428eec:	8b c6                	mov    %esi,%eax
428eee:	23 c1                	and    %ecx,%eax
428ef0:	3b c1                	cmp    %ecx,%eax
428ef2:	0f 85 85 00 00 00    	jne    0x428f7d
428ef8:	f6 45 14 01          	testb  $0x1,0x14(%ebp)
428efc:	74 7f                	je     0x428f7d
428efe:	ff 75 f8             	push   -0x8(%ebp)
428f01:	ff 15 20 10 43 00    	call   *0x431020
428f07:	83 ec 18             	sub    $0x18,%esp
428f0a:	8d 45 e8             	lea    -0x18(%ebp),%eax
428f0d:	81 e6 ff ff ff 7f    	and    $0x7fffffff,%esi
428f13:	89 75 d4             	mov    %esi,-0x2c(%ebp)
428f16:	8d 75 d0             	lea    -0x30(%ebp),%esi
428f19:	6a 06                	push   $0x6
428f1b:	59                   	pop    %ecx
428f1c:	8b fc                	mov    %esp,%edi
428f1e:	50                   	push   %eax
428f1f:	ff 75 10             	push   0x10(%ebp)
428f22:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
428f24:	e8 78 fa ff ff       	call   0x4289a1
428f29:	8b d0                	mov    %eax,%edx
428f2b:	83 c4 20             	add    $0x20,%esp
428f2e:	83 fa ff             	cmp    $0xffffffff,%edx
428f31:	75 32                	jne    0x428f65
428f33:	ff 15 08 11 43 00    	call   *0x431108
428f39:	50                   	push   %eax
428f3a:	e8 d8 36 ff ff       	call   0x41c617
428f3f:	8b 0b                	mov    (%ebx),%ecx
428f41:	8b c1                	mov    %ecx,%eax
428f43:	83 e1 3f             	and    $0x3f,%ecx
428f46:	c1 f8 06             	sar    $0x6,%eax
428f49:	6b c9 38             	imul   $0x38,%ecx,%ecx
428f4c:	8b 04 85 00 f8 43 00 	mov    0x43f800(,%eax,4),%eax
428f53:	80 64 08 28 fe       	andb   $0xfe,0x28(%eax,%ecx,1)
428f58:	ff 33                	push   (%ebx)
428f5a:	e8 ac 7b ff ff       	call   0x420b0b
428f5f:	59                   	pop    %ecx
428f60:	e9 15 fe ff ff       	jmp    0x428d7a
428f65:	8b 0b                	mov    (%ebx),%ecx
428f67:	8b c1                	mov    %ecx,%eax
428f69:	c1 f8 06             	sar    $0x6,%eax
428f6c:	83 e1 3f             	and    $0x3f,%ecx
428f6f:	6b c9 38             	imul   $0x38,%ecx,%ecx
428f72:	8b 04 85 00 f8 43 00 	mov    0x43f800(,%eax,4),%eax
428f79:	89 54 08 18          	mov    %edx,0x18(%eax,%ecx,1)
428f7d:	33 c0                	xor    %eax,%eax
428f7f:	5f                   	pop    %edi
428f80:	5e                   	pop    %esi
428f81:	5b                   	pop    %ebx
428f82:	c9                   	leave
428f83:	c3                   	ret
428f84:	8b ff                	mov    %edi,%edi
428f86:	55                   	push   %ebp
428f87:	8b ec                	mov    %esp,%ebp
428f89:	6a 01                	push   $0x1
428f8b:	ff 75 08             	push   0x8(%ebp)
428f8e:	ff 75 18             	push   0x18(%ebp)
428f91:	ff 75 14             	push   0x14(%ebp)
428f94:	ff 75 10             	push   0x10(%ebp)
428f97:	ff 75 0c             	push   0xc(%ebp)
428f9a:	e8 d1 f6 ff ff       	call   0x428670
428f9f:	83 c4 18             	add    $0x18,%esp
428fa2:	5d                   	pop    %ebp
428fa3:	c3                   	ret
428fa4:	6a 0c                	push   $0xc
428fa6:	68 40 b1 43 00       	push   $0x43b140
428fab:	e8 20 15 fe ff       	call   0x40a4d0
428fb0:	33 f6                	xor    %esi,%esi
428fb2:	89 75 e4             	mov    %esi,-0x1c(%ebp)
428fb5:	8b 45 08             	mov    0x8(%ebp),%eax
428fb8:	ff 30                	push   (%eax)
428fba:	e8 61 79 ff ff       	call   0x420920
428fbf:	59                   	pop    %ecx
428fc0:	89 75 fc             	mov    %esi,-0x4(%ebp)
428fc3:	8b 45 0c             	mov    0xc(%ebp),%eax
428fc6:	8b 00                	mov    (%eax),%eax
428fc8:	8b 38                	mov    (%eax),%edi
428fca:	8b d7                	mov    %edi,%edx
428fcc:	c1 fa 06             	sar    $0x6,%edx
428fcf:	8b c7                	mov    %edi,%eax
428fd1:	83 e0 3f             	and    $0x3f,%eax
428fd4:	6b c8 38             	imul   $0x38,%eax,%ecx
428fd7:	8b 04 95 00 f8 43 00 	mov    0x43f800(,%edx,4),%eax
428fde:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
428fe3:	74 21                	je     0x429006
428fe5:	57                   	push   %edi
428fe6:	e8 b1 7b ff ff       	call   0x420b9c
428feb:	59                   	pop    %ecx
428fec:	50                   	push   %eax
428fed:	ff 15 60 11 43 00    	call   *0x431160
428ff3:	85 c0                	test   %eax,%eax
428ff5:	75 1d                	jne    0x429014
428ff7:	ff 15 08 11 43 00    	call   *0x431108
428ffd:	8b f0                	mov    %eax,%esi
428fff:	e8 5a 36 ff ff       	call   0x41c65e
429004:	89 30                	mov    %esi,(%eax)
429006:	e8 66 36 ff ff       	call   0x41c671
42900b:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
429011:	83 ce ff             	or     $0xffffffff,%esi
429014:	89 75 e4             	mov    %esi,-0x1c(%ebp)