401bef:	51                   	push   %ecx
401bf0:	52                   	push   %edx
401bf1:	6a 00                	push   $0x0
401bf3:	e8 a8 f7 ff ff       	call   0x4013a0
401bf8:	5a                   	pop    %edx
401bf9:	59                   	pop    %ecx
401bfa:	b8 00 01 00 00       	mov    $0x100,%eax
401bff:	f0 0f b0 23          	lock cmpxchg %ah,(%ebx)
401c03:	0f 84 7a ff ff ff    	je     0x401b83
401c09:	51                   	push   %ecx
401c0a:	52                   	push   %edx
401c0b:	6a 0a                	push   $0xa
401c0d:	e8 8e f7 ff ff       	call   0x4013a0
401c12:	5a                   	pop    %edx
401c13:	59                   	pop    %ecx
401c14:	eb ce                	jmp    0x401be4
401c16:	90                   	nop
401c17:	90                   	nop
401c18:	b8 00 01 00 00       	mov    $0x100,%eax
401c1d:	f0 0f b0 25 18 e7 46 	lock cmpxchg %ah,0x46e718
401c24:	00
401c25:	74 36                	je     0x401c5d
401c27:	6a 00                	push   $0x0
401c29:	e8 72 f7 ff ff       	call   0x4013a0
401c2e:	b8 00 01 00 00       	mov    $0x100,%eax
401c33:	f0 0f b0 25 18 e7 46 	lock cmpxchg %ah,0x46e718
401c3a:	00
401c3b:	74 20                	je     0x401c5d
401c3d:	6a 0a                	push   $0xa
401c3f:	e8 5c f7 ff ff       	call   0x4013a0
401c44:	eb d2                	jmp    0x401c18
401c46:	90                   	nop
401c47:	90                   	nop
401c48:	f6 c2 05             	test   $0x5,%dl
401c4b:	0f 85 e7 00 00 00    	jne    0x401d38
401c51:	83 e2 f0             	and    $0xfffffff0,%edx
401c54:	84 db                	test   %bl,%bl
401c56:	89 d3                	mov    %edx,%ebx
401c58:	56                   	push   %esi
401c59:	89 c6                	mov    %eax,%esi
401c5b:	75 bb                	jne    0x401c18
401c5d:	f7 44 33 fc 01 00 00 	testl  $0x1,-0x4(%ebx,%esi,1)
401c64:	00
401c65:	8b 4c 33 fc          	mov    -0x4(%ebx,%esi,1),%ecx
401c69:	75 35                	jne    0x401ca0
401c6b:	83 c9 08             	or     $0x8,%ecx
401c6e:	89 4c 33 fc          	mov    %ecx,-0x4(%ebx,%esi,1)
401c72:	f6 46 fc 08          	testb  $0x8,-0x4(%esi)
401c76:	75 40                	jne    0x401cb8
401c78:	81 fb f0 ff 13 00    	cmp    $0x13fff0,%ebx
401c7e:	74 50                	je     0x401cd0
401c80:	8d 43 03             	lea    0x3(%ebx),%eax
401c83:	89 46 fc             	mov    %eax,-0x4(%esi)
401c86:	89 5c 33 f8          	mov    %ebx,-0x8(%ebx,%esi,1)
401c8a:	89 f0                	mov    %esi,%eax
401c8c:	89 da                	mov    %ebx,%edx
401c8e:	e8 49 f9 ff ff       	call   0x4015dc
401c93:	c6 05 18 e7 46 00 00 	movb   $0x0,0x46e718
401c9a:	31 c0                	xor    %eax,%eax
401c9c:	5e                   	pop    %esi
401c9d:	5b                   	pop    %ebx
401c9e:	c3                   	ret
401c9f:	90                   	nop
401ca0:	8d 04 33             	lea    (%ebx,%esi,1),%eax
401ca3:	83 e1 f0             	and    $0xfffffff0,%ecx
401ca6:	01 cb                	add    %ecx,%ebx
401ca8:	81 f9 30 0b 00 00    	cmp    $0xb30,%ecx
401cae:	72 c2                	jb     0x401c72
401cb0:	e8 e7 f8 ff ff       	call   0x40159c
401cb5:	eb bb                	jmp    0x401c72
401cb7:	90                   	nop
401cb8:	8b 4e f8             	mov    -0x8(%esi),%ecx
401cbb:	29 ce                	sub    %ecx,%esi
401cbd:	01 cb                	add    %ecx,%ebx
401cbf:	81 f9 30 0b 00 00    	cmp    $0xb30,%ecx
401cc5:	72 b1                	jb     0x401c78
401cc7:	89 f0                	mov    %esi,%eax
401cc9:	e8 ce f8 ff ff       	call   0x40159c
401cce:	eb a8                	jmp    0x401c78
401cd0:	81 3d 20 e7 46 00 f0 	cmpl   $0x13fff0,0x46e720
401cd7:	ff 13 00
401cda:	75 2c                	jne    0x401d08
401cdc:	83 ee 10             	sub    $0x10,%esi
401cdf:	8b 06                	mov    (%esi),%eax
401ce1:	8b 56 04             	mov    0x4(%esi),%edx
401ce4:	89 50 04             	mov    %edx,0x4(%eax)
401ce7:	89 02                	mov    %eax,(%edx)
401ce9:	c6 05 18 e7 46 00 00 	movb   $0x0,0x46e718
401cf0:	68 00 80 00 00       	push   $0x8000
401cf5:	6a 00                	push   $0x0
401cf7:	56                   	push   %esi
401cf8:	e8 9b f6 ff ff       	call   0x401398
401cfd:	83 f8 01             	cmp    $0x1,%eax
401d00:	19 c0                	sbb    %eax,%eax
401d02:	5e                   	pop    %esi
401d03:	5b                   	pop    %ebx
401d04:	c3                   	ret
401d05:	90                   	nop
401d06:	90                   	nop
401d07:	90                   	nop
401d08:	8d 9e f0 ff 13 00    	lea    0x13fff0(%esi),%ebx
401d0e:	e8 29 f9 ff ff       	call   0x40163c
401d13:	c7 43 fc 02 00 00 00 	movl   $0x2,-0x4(%ebx)
401d1a:	c7 05 20 e7 46 00 f0 	movl   $0x13fff0,0x46e720
401d21:	ff 13 00
401d24:	89 1d 1c e7 46 00    	mov    %ebx,0x46e71c
401d2a:	c6 05 18 e7 46 00 00 	movb   $0x0,0x46e718
401d31:	31 c0                	xor    %eax,%eax
401d33:	5e                   	pop    %esi
401d34:	5b                   	pop    %ebx
401d35:	c3                   	ret
401d36:	90                   	nop
401d37:	90                   	nop
401d38:	5b                   	pop    %ebx
401d39:	f6 c2 03             	test   $0x3,%dl
401d3c:	0f 84 82 fa ff ff    	je     0x4017c4
401d42:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
401d47:	c3                   	ret
401d48:	8b 48 fc             	mov    -0x4(%eax),%ecx
401d4b:	f6 c1 07             	test   $0x7,%cl
401d4e:	53                   	push   %ebx
401d4f:	56                   	push   %esi
401d50:	89 c6                	mov    %eax,%esi
401d52:	0f 85 88 00 00 00    	jne    0x401de0
401d58:	8b 19                	mov    (%ecx),%ebx
401d5a:	0f b7 4b 02          	movzwl 0x2(%ebx),%ecx
401d5e:	83 e9 04             	sub    $0x4,%ecx
401d61:	39 d1                	cmp    %edx,%ecx
401d63:	72 37                	jb     0x401d9c
401d65:	8d 1c 95 40 00 00 00 	lea    0x40(,%edx,4),%ebx
401d6c:	39 cb                	cmp    %ecx,%ebx
401d6e:	72 04                	jb     0x401d74
401d70:	5e                   	pop    %esi
401d71:	5b                   	pop    %ebx
401d72:	c3                   	ret
401d73:	90                   	nop
401d74:	89 d3                	mov    %edx,%ebx
401d76:	89 d0                	mov    %edx,%eax
401d78:	e8 83 fa ff ff       	call   0x401800
401d7d:	85 c0                	test   %eax,%eax
401d7f:	74 16                	je     0x401d97
401d81:	89 d9                	mov    %ebx,%ecx
401d83:	89 c2                	mov    %eax,%edx
401d85:	89 c3                	mov    %eax,%ebx
401d87:	89 f0                	mov    %esi,%eax
401d89:	e8 f2 f7 ff ff       	call   0x401580
401d8e:	89 f0                	mov    %esi,%eax
401d90:	e8 d3 fd ff ff       	call   0x401b68
401d95:	89 d8                	mov    %ebx,%eax
401d97:	5e                   	pop    %esi
401d98:	5b                   	pop    %ebx
401d99:	c3                   	ret
401d9a:	90                   	nop
401d9b:	90                   	nop
401d9c:	8d 4c 09 20          	lea    0x20(%ecx,%ecx,1),%ecx
401da0:	57                   	push   %edi
401da1:	89 d7                	mov    %edx,%edi
401da3:	31 c0                	xor    %eax,%eax
401da5:	29 d1                	sub    %edx,%ecx
401da7:	83 d0 ff             	adc    $0xffffffff,%eax
401daa:	21 c8                	and    %ecx,%eax
401dac:	01 d0                	add    %edx,%eax
401dae:	e8 4d fa ff ff       	call   0x401800
401db3:	85 c0                	test   %eax,%eax
401db5:	74 24                	je     0x401ddb
401db7:	81 ff 2c 0a 04 00    	cmp    $0x40a2c,%edi
401dbd:	76 03                	jbe    0x401dc2
401dbf:	89 78 f8             	mov    %edi,-0x8(%eax)
401dc2:	0f b7 4b 02          	movzwl 0x2(%ebx),%ecx
401dc6:	83 e9 04             	sub    $0x4,%ecx
401dc9:	89 c2                	mov    %eax,%edx
401dcb:	89 c7                	mov    %eax,%edi
401dcd:	89 f0                	mov    %esi,%eax
401dcf:	ff 53 1c             	call   *0x1c(%ebx)
401dd2:	89 f0                	mov    %esi,%eax
401dd4:	e8 8f fd ff ff       	call   0x401b68
401dd9:	89 f8                	mov    %edi,%eax
401ddb:	5f                   	pop    %edi
401ddc:	5e                   	pop    %esi
401ddd:	5b                   	pop    %ebx
401dde:	c3                   	ret
401ddf:	90                   	nop
401de0:	f6 c1 05             	test   $0x5,%cl
401de3:	0f 85 4b 02 00 00    	jne    0x402034
401de9:	89 cb                	mov    %ecx,%ebx
401deb:	83 e1 f0             	and    $0xfffffff0,%ecx
401dee:	57                   	push   %edi
401def:	8d 3c 01             	lea    (%ecx,%eax,1),%edi
401df2:	83 e9 04             	sub    $0x4,%ecx
401df5:	83 e3 0f             	and    $0xf,%ebx
401df8:	39 ca                	cmp    %ecx,%edx
401dfa:	55                   	push   %ebp
401dfb:	0f 87 ff 00 00 00    	ja     0x401f00
401e01:	8d 2c 12             	lea    (%edx,%edx,1),%ebp
401e04:	39 cd                	cmp    %ecx,%ebp
401e06:	72 08                	jb     0x401e10
401e08:	5d                   	pop    %ebp
401e09:	5f                   	pop    %edi
401e0a:	5e                   	pop    %esi
401e0b:	5b                   	pop    %ebx
401e0c:	c3                   	ret
401e0d:	90                   	nop
401e0e:	90                   	nop
401e0f:	90                   	nop
401e10:	81 fa 2c 0b 00 00    	cmp    $0xb2c,%edx
401e16:	73 11                	jae    0x401e29
401e18:	81 fd 2c 0b 00 00    	cmp    $0xb2c,%ebp
401e1e:	0f 82 b4 00 00 00    	jb     0x401ed8
401e24:	ba 2c 0b 00 00       	mov    $0xb2c,%edx
401e29:	8d aa d3 00 00 00    	lea    0xd3(%edx),%ebp
401e2f:	81 e5 00 ff ff ff    	and    $0xffffff00,%ebp
401e35:	83 c5 30             	add    $0x30,%ebp
401e38:	83 c1 04             	add    $0x4,%ecx
401e3b:	29 e9                	sub    %ebp,%ecx
401e3d:	80 3d 4d e0 46 00 00 	cmpb   $0x0,0x46e04d
401e44:	74 3a                	je     0x401e80
401e46:	b8 00 01 00 00       	mov    $0x100,%eax
401e4b:	f0 0f b0 25 18 e7 46 	lock cmpxchg %ah,0x46e718
401e52:	00
401e53:	74 23                	je     0x401e78
401e55:	51                   	push   %ecx
401e56:	6a 00                	push   $0x0
401e58:	e8 43 f5 ff ff       	call   0x4013a0
401e5d:	59                   	pop    %ecx
401e5e:	b8 00 01 00 00       	mov    $0x100,%eax
401e63:	f0 0f b0 25 18 e7 46 	lock cmpxchg %ah,0x46e718
401e6a:	00
401e6b:	74 0b                	je     0x401e78
401e6d:	51                   	push   %ecx
401e6e:	6a 0a                	push   $0xa
401e70:	e8 2b f5 ff ff       	call   0x4013a0
401e75:	59                   	pop    %ecx
401e76:	eb ce                	jmp    0x401e46
401e78:	bb 0f 00 00 00       	mov    $0xf,%ebx
401e7d:	23 5e fc             	and    -0x4(%esi),%ebx
401e80:	09 eb                	or     %ebp,%ebx
401e82:	89 5e fc             	mov    %ebx,-0x4(%esi)
401e85:	89 cb                	mov    %ecx,%ebx
401e87:	8b 57 fc             	mov    -0x4(%edi),%edx
401e8a:	f6 c2 01             	test   $0x1,%dl
401e8d:	75 09                	jne    0x401e98
401e8f:	83 ca 08             	or     $0x8,%edx
401e92:	89 57 fc             	mov    %edx,-0x4(%edi)
401e95:	eb 17                	jmp    0x401eae
401e97:	90                   	nop
401e98:	89 f8                	mov    %edi,%eax
401e9a:	83 e2 f0             	and    $0xfffffff0,%edx
401e9d:	01 d3                	add    %edx,%ebx
401e9f:	01 d7                	add    %edx,%edi
401ea1:	81 fa 30 0b 00 00    	cmp    $0xb30,%edx
401ea7:	72 05                	jb     0x401eae
401ea9:	e8 ee f6 ff ff       	call   0x40159c
401eae:	89 5f f8             	mov    %ebx,-0x8(%edi)
401eb1:	8d 43 03             	lea    0x3(%ebx),%eax
401eb4:	89 44 2e fc          	mov    %eax,-0x4(%esi,%ebp,1)
401eb8:	81 fb 30 0b 00 00    	cmp    $0xb30,%ebx
401ebe:	72 0a                	jb     0x401eca
401ec0:	8d 04 2e             	lea    (%esi,%ebp,1),%eax
401ec3:	89 da                	mov    %ebx,%edx
401ec5:	e8 12 f7 ff ff       	call   0x4015dc
401eca:	c6 05 18 e7 46 00 00 	movb   $0x0,0x46e718
401ed1:	89 f0                	mov    %esi,%eax
401ed3:	5d                   	pop    %ebp
401ed4:	5f                   	pop    %edi
401ed5:	5e                   	pop    %esi
401ed6:	5b                   	pop    %ebx
401ed7:	c3                   	ret
401ed8:	89 d7                	mov    %edx,%edi
401eda:	89 d0                	mov    %edx,%eax
401edc:	e8 1f f9 ff ff       	call   0x401800
401ee1:	85 c0                	test   %eax,%eax
401ee3:	74 16                	je     0x401efb
401ee5:	89 c5                	mov    %eax,%ebp
401ee7:	89 c2                	mov    %eax,%edx
401ee9:	89 f0                	mov    %esi,%eax
401eeb:	89 f9                	mov    %edi,%ecx
401eed:	e8 8e f6 ff ff       	call   0x401580
401ef2:	89 f0                	mov    %esi,%eax
401ef4:	e8 6f fc ff ff       	call   0x401b68
401ef9:	89 e8                	mov    %ebp,%eax
401efb:	5d                   	pop    %ebp
401efc:	5f                   	pop    %edi
401efd:	5e                   	pop    %esi
401efe:	5b                   	pop    %ebx
401eff:	c3                   	ret
401f00:	8b 47 fc             	mov    -0x4(%edi),%eax
401f03:	a8 01                	test   $0x1,%al
401f05:	0f 84 e1 00 00 00    	je     0x401fec
401f0b:	83 e0 f0             	and    $0xfffffff0,%eax
401f0e:	8d 2c 01             	lea    (%ecx,%eax,1),%ebp
401f11:	39 ea                	cmp    %ebp,%edx
401f13:	0f 87 d3 00 00 00    	ja     0x401fec
401f19:	80 3d 4d e0 46 00 00 	cmpb   $0x0,0x46e04d
401f20:	74 4f                	je     0x401f71
401f22:	b8 00 01 00 00       	mov    $0x100,%eax
401f27:	f0 0f b0 25 18 e7 46 	lock cmpxchg %ah,0x46e718
401f2e:	00
401f2f:	74 27                	je     0x401f58
401f31:	51                   	push   %ecx
401f32:	52                   	push   %edx
401f33:	6a 00                	push   $0x0
401f35:	e8 66 f4 ff ff       	call   0x4013a0
401f3a:	5a                   	pop    %edx
401f3b:	59                   	pop    %ecx
401f3c:	b8 00 01 00 00       	mov    $0x100,%eax
401f41:	f0 0f b0 25 18 e7 46 	lock cmpxchg %ah,0x46e718
401f48:	00
401f49:	74 0d                	je     0x401f58
401f4b:	51                   	push   %ecx
401f4c:	52                   	push   %edx
401f4d:	6a 0a                	push   $0xa
401f4f:	e8 4c f4 ff ff       	call   0x4013a0
401f54:	5a                   	pop    %edx
401f55:	59                   	pop    %ecx
401f56:	eb ca                	jmp    0x401f22
401f58:	bb 0f 00 00 00       	mov    $0xf,%ebx
401f5d:	23 5e fc             	and    -0x4(%esi),%ebx
401f60:	8b 47 fc             	mov    -0x4(%edi),%eax
401f63:	a8 01                	test   $0x1,%al
401f65:	74 7e                	je     0x401fe5
401f67:	83 e0 f0             	and    $0xfffffff0,%eax
401f6a:	8d 2c 01             	lea    (%ecx,%eax,1),%ebp
401f6d:	39 ea                	cmp    %ebp,%edx
401f6f:	77 74                	ja     0x401fe5
401f71:	3d 30 0b 00 00       	cmp    $0xb30,%eax
401f76:	72 0b                	jb     0x401f83
401f78:	89 f8                	mov    %edi,%eax
401f7a:	51                   	push   %ecx
401f7b:	52                   	push   %edx
401f7c:	e8 1b f6 ff ff       	call   0x40159c
401f81:	5a                   	pop    %edx
401f82:	59                   	pop    %ecx
401f83:	89 c8                	mov    %ecx,%eax
401f85:	c1 e8 02             	shr    $0x2,%eax
401f88:	01 c8                	add    %ecx,%eax
401f8a:	31 ff                	xor    %edi,%edi
401f8c:	29 d0                	sub    %edx,%eax
401f8e:	83 d7 ff             	adc    $0xffffffff,%edi
401f91:	21 f8                	and    %edi,%eax
401f93:	8d 84 02 d3 00 00 00 	lea    0xd3(%edx,%eax,1),%eax
401f9a:	25 00 ff ff ff       	and    $0xffffff00,%eax
401f9f:	83 c0 30             	add    $0x30,%eax
401fa2:	8d 55 04             	lea    0x4(%ebp),%edx
401fa5:	29 c2                	sub    %eax,%edx
401fa7:	77 0b                	ja     0x401fb4
401fa9:	83 24 2e f7          	andl   $0xfffffff7,(%esi,%ebp,1)
401fad:	83 c5 04             	add    $0x4,%ebp
401fb0:	eb 1e                	jmp    0x401fd0
401fb2:	90                   	nop
401fb3:	90                   	nop