4019de:	88 03                	mov    %al,(%ebx)
4019e0:	5f                   	pop    %edi
4019e1:	5e                   	pop    %esi
4019e2:	5b                   	pop    %ebx
4019e3:	c3                   	ret
4019e4:	80 64 37 fc f7       	andb   $0xf7,-0x4(%edi,%esi,1)
4019e9:	8d 4f 06             	lea    0x6(%edi),%ecx
4019ec:	89 4e fc             	mov    %ecx,-0x4(%esi)
4019ef:	31 c0                	xor    %eax,%eax
4019f1:	a2 18 87 4a 00       	mov    %al,0x4a8718
4019f6:	89 1e                	mov    %ebx,(%esi)
4019f8:	89 46 08             	mov    %eax,0x8(%esi)
4019fb:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
401a02:	89 73 10             	mov    %esi,0x10(%ebx)
401a05:	8d 46 20             	lea    0x20(%esi),%eax
401a08:	0f b7 4b 02          	movzwl 0x2(%ebx),%ecx
401a0c:	8d 14 01             	lea    (%ecx,%eax,1),%edx
401a0f:	89 53 08             	mov    %edx,0x8(%ebx)
401a12:	01 f7                	add    %esi,%edi
401a14:	29 cf                	sub    %ecx,%edi
401a16:	89 7b 0c             	mov    %edi,0xc(%ebx)
401a19:	c6 03 00             	movb   $0x0,(%ebx)
401a1c:	89 70 fc             	mov    %esi,-0x4(%eax)
401a1f:	5f                   	pop    %edi
401a20:	5e                   	pop    %esi
401a21:	5b                   	pop    %ebx
401a22:	c3                   	ret
401a23:	90                   	nop
401a24:	b8 00 01 00 00       	mov    $0x100,%eax
401a29:	f0 0f b0 25 18 87 4a 	lock cmpxchg %ah,0x4a8718
401a30:	00
401a31:	74 3f                	je     0x401a72
401a33:	6a 00                	push   $0x0
401a35:	e8 76 f9 ff ff       	call   0x4013b0
401a3a:	b8 00 01 00 00       	mov    $0x100,%eax
401a3f:	f0 0f b0 25 18 87 4a 	lock cmpxchg %ah,0x4a8718
401a46:	00
401a47:	74 29                	je     0x401a72
401a49:	6a 0a                	push   $0xa
401a4b:	e8 60 f9 ff ff       	call   0x4013b0
401a50:	eb d2                	jmp    0x401a24
401a52:	90                   	nop
401a53:	90                   	nop
401a54:	3d 2c 0a 04 00       	cmp    $0x40a2c,%eax
401a59:	0f 87 0d 01 00 00    	ja     0x401b6c
401a5f:	8d 98 d3 00 00 00    	lea    0xd3(%eax),%ebx
401a65:	81 e3 00 ff ff ff    	and    $0xffffff00,%ebx
401a6b:	83 c3 30             	add    $0x30,%ebx
401a6e:	84 c9                	test   %cl,%cl
401a70:	75 b2                	jne    0x401a24
401a72:	8d 93 d0 f4 ff ff    	lea    -0xb30(%ebx),%edx
401a78:	89 d1                	mov    %edx,%ecx
401a7a:	c1 ea 0d             	shr    $0xd,%edx
401a7d:	c1 e9 08             	shr    $0x8,%ecx
401a80:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
401a85:	d3 e0                	shl    %cl,%eax
401a87:	23 04 95 28 87 4a 00 	and    0x4a8728(,%edx,4),%eax
401a8e:	74 0c                	je     0x401a9c
401a90:	83 e1 e0             	and    $0xffffffe0,%ecx
401a93:	0f bc c0             	bsf    %eax,%eax
401a96:	09 c1                	or     %eax,%ecx
401a98:	eb 5e                	jmp    0x401af8
401a9a:	90                   	nop
401a9b:	90                   	nop
401a9c:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
401aa1:	89 d1                	mov    %edx,%ecx
401aa3:	d3 e0                	shl    %cl,%eax
401aa5:	23 05 24 87 4a 00    	and    0x4a8724,%eax
401aab:	74 17                	je     0x401ac4
401aad:	0f bc d0             	bsf    %eax,%edx
401ab0:	8b 04 95 28 87 4a 00 	mov    0x4a8728(,%edx,4),%eax
401ab7:	0f bc c8             	bsf    %eax,%ecx
401aba:	89 d0                	mov    %edx,%eax
401abc:	c1 e0 05             	shl    $0x5,%eax
401abf:	09 c1                	or     %eax,%ecx
401ac1:	eb 35                	jmp    0x401af8
401ac3:	90                   	nop
401ac4:	8b 0d 20 87 4a 00    	mov    0x4a8720,%ecx
401aca:	29 d9                	sub    %ebx,%ecx
401acc:	72 1a                	jb     0x401ae8
401ace:	a1 1c 87 4a 00       	mov    0x4a871c,%eax
401ad3:	29 d8                	sub    %ebx,%eax
401ad5:	a3 1c 87 4a 00       	mov    %eax,0x4a871c
401ada:	89 0d 20 87 4a 00    	mov    %ecx,0x4a8720
401ae0:	83 cb 02             	or     $0x2,%ebx
401ae3:	89 58 fc             	mov    %ebx,-0x4(%eax)
401ae6:	eb 07                	jmp    0x401aef
401ae8:	89 d8                	mov    %ebx,%eax
401aea:	e8 c9 fb ff ff       	call   0x4016b8
401aef:	c6 05 18 87 4a 00 00 	movb   $0x0,0x4a8718
401af6:	5b                   	pop    %ebx
401af7:	c3                   	ret
401af8:	56                   	push   %esi
401af9:	57                   	push   %edi
401afa:	8d 3c cd a8 87 4a 00 	lea    0x4a87a8(,%ecx,8),%edi
401b01:	8b 77 04             	mov    0x4(%edi),%esi
401b04:	8b 46 04             	mov    0x4(%esi),%eax
401b07:	89 47 04             	mov    %eax,0x4(%edi)
401b0a:	89 38                	mov    %edi,(%eax)
401b0c:	39 c7                	cmp    %eax,%edi
401b0e:	75 17                	jne    0x401b27
401b10:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
401b15:	d3 c0                	rol    %cl,%eax
401b17:	21 04 95 28 87 4a 00 	and    %eax,0x4a8728(,%edx,4)
401b1e:	75 07                	jne    0x401b27
401b20:	0f b3 15 24 87 4a 00 	btr    %edx,0x4a8724
401b27:	bf f0 ff ff ff       	mov    $0xfffffff0,%edi
401b2c:	23 7e fc             	and    -0x4(%esi),%edi
401b2f:	89 fa                	mov    %edi,%edx
401b31:	29 da                	sub    %ebx,%edx
401b33:	74 1f                	je     0x401b54
401b35:	8d 04 33             	lea    (%ebx,%esi,1),%eax
401b38:	8d 4a 03             	lea    0x3(%edx),%ecx
401b3b:	89 48 fc             	mov    %ecx,-0x4(%eax)
401b3e:	89 54 02 f8          	mov    %edx,-0x8(%edx,%eax,1)
401b42:	81 fa 30 0b 00 00    	cmp    $0xb30,%edx
401b48:	72 0f                	jb     0x401b59
401b4a:	e8 9d fa ff ff       	call   0x4015ec
401b4f:	eb 08                	jmp    0x401b59
401b51:	90                   	nop
401b52:	90                   	nop
401b53:	90                   	nop
401b54:	80 64 37 fc f7       	andb   $0xf7,-0x4(%edi,%esi,1)
401b59:	8d 4b 02             	lea    0x2(%ebx),%ecx
401b5c:	89 4e fc             	mov    %ecx,-0x4(%esi)
401b5f:	c6 05 18 87 4a 00 00 	movb   $0x0,0x4a8718
401b66:	89 f0                	mov    %esi,%eax
401b68:	5f                   	pop    %edi
401b69:	5e                   	pop    %esi
401b6a:	5b                   	pop    %ebx
401b6b:	c3                   	ret
401b6c:	5b                   	pop    %ebx
401b6d:	85 c0                	test   %eax,%eax
401b6f:	0f 89 fb fb ff ff    	jns    0x401770
401b75:	31 c0                	xor    %eax,%eax
401b77:	c3                   	ret
401b78:	8b 50 fc             	mov    -0x4(%eax),%edx
401b7b:	f6 c2 07             	test   $0x7,%dl
401b7e:	89 c1                	mov    %eax,%ecx
401b80:	53                   	push   %ebx
401b81:	8a 1d 4d 80 4a 00    	mov    0x4a804d,%bl
401b87:	0f 85 cb 00 00 00    	jne    0x401c58
401b8d:	84 db                	test   %bl,%bl
401b8f:	8b 1a                	mov    (%edx),%ebx
401b91:	75 61                	jne    0x401bf4
401b93:	83 6a 0c 01          	subl   $0x1,0xc(%edx)
401b97:	8b 42 08             	mov    0x8(%edx),%eax
401b9a:	74 2c                	je     0x401bc8
401b9c:	85 c0                	test   %eax,%eax
401b9e:	89 4a 08             	mov    %ecx,0x8(%edx)
401ba1:	8d 40 01             	lea    0x1(%eax),%eax
401ba4:	89 41 fc             	mov    %eax,-0x4(%ecx)
401ba7:	74 07                	je     0x401bb0
401ba9:	31 c0                	xor    %eax,%eax
401bab:	88 03                	mov    %al,(%ebx)
401bad:	5b                   	pop    %ebx
401bae:	c3                   	ret
401baf:	90                   	nop
401bb0:	8b 4b 04             	mov    0x4(%ebx),%ecx
401bb3:	89 5a 14             	mov    %ebx,0x14(%edx)
401bb6:	89 4a 04             	mov    %ecx,0x4(%edx)
401bb9:	89 51 14             	mov    %edx,0x14(%ecx)
401bbc:	89 53 04             	mov    %edx,0x4(%ebx)
401bbf:	c6 03 00             	movb   $0x0,(%ebx)
401bc2:	31 c0                	xor    %eax,%eax
401bc4:	5b                   	pop    %ebx
401bc5:	c3                   	ret
401bc6:	90                   	nop
401bc7:	90                   	nop
401bc8:	85 c0                	test   %eax,%eax
401bca:	74 13                	je     0x401bdf
401bcc:	8b 42 14             	mov    0x14(%edx),%eax
401bcf:	8b 4a 04             	mov    0x4(%edx),%ecx
401bd2:	89 48 04             	mov    %ecx,0x4(%eax)
401bd5:	89 41 14             	mov    %eax,0x14(%ecx)
401bd8:	31 c0                	xor    %eax,%eax
401bda:	39 53 10             	cmp    %edx,0x10(%ebx)
401bdd:	75 03                	jne    0x401be2
401bdf:	89 43 0c             	mov    %eax,0xc(%ebx)
401be2:	88 03                	mov    %al,(%ebx)
401be4:	89 d0                	mov    %edx,%eax
401be6:	8b 52 fc             	mov    -0x4(%edx),%edx
401be9:	8a 1d 4d 80 4a 00    	mov    0x4a804d,%bl
401bef:	eb 70                	jmp    0x401c61
401bf1:	90                   	nop
401bf2:	90                   	nop
401bf3:	90                   	nop
401bf4:	b8 00 01 00 00       	mov    $0x100,%eax
401bf9:	f0 0f b0 23          	lock cmpxchg %ah,(%ebx)
401bfd:	74 94                	je     0x401b93
401bff:	51                   	push   %ecx
401c00:	52                   	push   %edx
401c01:	6a 00                	push   $0x0
401c03:	e8 a8 f7 ff ff       	call   0x4013b0
401c08:	5a                   	pop    %edx
401c09:	59                   	pop    %ecx
401c0a:	b8 00 01 00 00       	mov    $0x100,%eax
401c0f:	f0 0f b0 23          	lock cmpxchg %ah,(%ebx)
401c13:	0f 84 7a ff ff ff    	je     0x401b93
401c19:	51                   	push   %ecx
401c1a:	52                   	push   %edx
401c1b:	6a 0a                	push   $0xa
401c1d:	e8 8e f7 ff ff       	call   0x4013b0
401c22:	5a                   	pop    %edx
401c23:	59                   	pop    %ecx
401c24:	eb ce                	jmp    0x401bf4
401c26:	90                   	nop
401c27:	90                   	nop
401c28:	b8 00 01 00 00       	mov    $0x100,%eax
401c2d:	f0 0f b0 25 18 87 4a 	lock cmpxchg %ah,0x4a8718
401c34:	00
401c35:	74 36                	je     0x401c6d
401c37:	6a 00                	push   $0x0
401c39:	e8 72 f7 ff ff       	call   0x4013b0
401c3e:	b8 00 01 00 00       	mov    $0x100,%eax
401c43:	f0 0f b0 25 18 87 4a 	lock cmpxchg %ah,0x4a8718
401c4a:	00
401c4b:	74 20                	je     0x401c6d
401c4d:	6a 0a                	push   $0xa
401c4f:	e8 5c f7 ff ff       	call   0x4013b0
401c54:	eb d2                	jmp    0x401c28
401c56:	90                   	nop
401c57:	90                   	nop
401c58:	f6 c2 05             	test   $0x5,%dl
401c5b:	0f 85 e7 00 00 00    	jne    0x401d48
401c61:	83 e2 f0             	and    $0xfffffff0,%edx
401c64:	84 db                	test   %bl,%bl
401c66:	89 d3                	mov    %edx,%ebx
401c68:	56                   	push   %esi
401c69:	89 c6                	mov    %eax,%esi
401c6b:	75 bb                	jne    0x401c28
401c6d:	f7 44 33 fc 01 00 00 	testl  $0x1,-0x4(%ebx,%esi,1)
401c74:	00
401c75:	8b 4c 33 fc          	mov    -0x4(%ebx,%esi,1),%ecx
401c79:	75 35                	jne    0x401cb0
401c7b:	83 c9 08             	or     $0x8,%ecx
401c7e:	89 4c 33 fc          	mov    %ecx,-0x4(%ebx,%esi,1)
401c82:	f6 46 fc 08          	testb  $0x8,-0x4(%esi)
401c86:	75 40                	jne    0x401cc8
401c88:	81 fb f0 ff 13 00    	cmp    $0x13fff0,%ebx
401c8e:	74 50                	je     0x401ce0
401c90:	8d 43 03             	lea    0x3(%ebx),%eax
401c93:	89 46 fc             	mov    %eax,-0x4(%esi)
401c96:	89 5c 33 f8          	mov    %ebx,-0x8(%ebx,%esi,1)
401c9a:	89 f0                	mov    %esi,%eax
401c9c:	89 da                	mov    %ebx,%edx
401c9e:	e8 49 f9 ff ff       	call   0x4015ec
401ca3:	c6 05 18 87 4a 00 00 	movb   $0x0,0x4a8718
401caa:	31 c0                	xor    %eax,%eax
401cac:	5e                   	pop    %esi
401cad:	5b                   	pop    %ebx
401cae:	c3                   	ret
401caf:	90                   	nop
401cb0:	8d 04 33             	lea    (%ebx,%esi,1),%eax
401cb3:	83 e1 f0             	and    $0xfffffff0,%ecx
401cb6:	01 cb                	add    %ecx,%ebx
401cb8:	81 f9 30 0b 00 00    	cmp    $0xb30,%ecx
401cbe:	72 c2                	jb     0x401c82
401cc0:	e8 e7 f8 ff ff       	call   0x4015ac
401cc5:	eb bb                	jmp    0x401c82
401cc7:	90                   	nop
401cc8:	8b 4e f8             	mov    -0x8(%esi),%ecx
401ccb:	29 ce                	sub    %ecx,%esi
401ccd:	01 cb                	add    %ecx,%ebx
401ccf:	81 f9 30 0b 00 00    	cmp    $0xb30,%ecx
401cd5:	72 b1                	jb     0x401c88
401cd7:	89 f0                	mov    %esi,%eax
401cd9:	e8 ce f8 ff ff       	call   0x4015ac
401cde:	eb a8                	jmp    0x401c88
401ce0:	81 3d 20 87 4a 00 f0 	cmpl   $0x13fff0,0x4a8720
401ce7:	ff 13 00
401cea:	75 2c                	jne    0x401d18
401cec:	83 ee 10             	sub    $0x10,%esi
401cef:	8b 06                	mov    (%esi),%eax
401cf1:	8b 56 04             	mov    0x4(%esi),%edx
401cf4:	89 50 04             	mov    %edx,0x4(%eax)
401cf7:	89 02                	mov    %eax,(%edx)
401cf9:	c6 05 18 87 4a 00 00 	movb   $0x0,0x4a8718
401d00:	68 00 80 00 00       	push   $0x8000
401d05:	6a 00                	push   $0x0
401d07:	56                   	push   %esi
401d08:	e8 9b f6 ff ff       	call   0x4013a8
401d0d:	83 f8 01             	cmp    $0x1,%eax
401d10:	19 c0                	sbb    %eax,%eax
401d12:	5e                   	pop    %esi
401d13:	5b                   	pop    %ebx
401d14:	c3                   	ret
401d15:	90                   	nop
401d16:	90                   	nop
401d17:	90                   	nop
401d18:	8d 9e f0 ff 13 00    	lea    0x13fff0(%esi),%ebx
401d1e:	e8 29 f9 ff ff       	call   0x40164c
401d23:	c7 43 fc 02 00 00 00 	movl   $0x2,-0x4(%ebx)
401d2a:	c7 05 20 87 4a 00 f0 	movl   $0x13fff0,0x4a8720
401d31:	ff 13 00
401d34:	89 1d 1c 87 4a 00    	mov    %ebx,0x4a871c
401d3a:	c6 05 18 87 4a 00 00 	movb   $0x0,0x4a8718
401d41:	31 c0                	xor    %eax,%eax
401d43:	5e                   	pop    %esi
401d44:	5b                   	pop    %ebx
401d45:	c3                   	ret
401d46:	90                   	nop
401d47:	90                   	nop
401d48:	5b                   	pop    %ebx
401d49:	f6 c2 03             	test   $0x3,%dl
401d4c:	0f 84 82 fa ff ff    	je     0x4017d4
401d52:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
401d57:	c3                   	ret
401d58:	8b 48 fc             	mov    -0x4(%eax),%ecx
401d5b:	f6 c1 07             	test   $0x7,%cl
401d5e:	53                   	push   %ebx
401d5f:	56                   	push   %esi
401d60:	89 c6                	mov    %eax,%esi
401d62:	0f 85 88 00 00 00    	jne    0x401df0
401d68:	8b 19                	mov    (%ecx),%ebx
401d6a:	0f b7 4b 02          	movzwl 0x2(%ebx),%ecx
401d6e:	83 e9 04             	sub    $0x4,%ecx
401d71:	39 d1                	cmp    %edx,%ecx
401d73:	72 37                	jb     0x401dac
401d75:	8d 1c 95 40 00 00 00 	lea    0x40(,%edx,4),%ebx
401d7c:	39 cb                	cmp    %ecx,%ebx
401d7e:	72 04                	jb     0x401d84
401d80:	5e                   	pop    %esi
401d81:	5b                   	pop    %ebx
401d82:	c3                   	ret
401d83:	90                   	nop
401d84:	89 d3                	mov    %edx,%ebx
401d86:	89 d0                	mov    %edx,%eax
401d88:	e8 83 fa ff ff       	call   0x401810
401d8d:	85 c0                	test   %eax,%eax
401d8f:	74 16                	je     0x401da7
401d91:	89 d9                	mov    %ebx,%ecx
401d93:	89 c2                	mov    %eax,%edx
401d95:	89 c3                	mov    %eax,%ebx
401d97:	89 f0                	mov    %esi,%eax
401d99:	e8 f2 f7 ff ff       	call   0x401590
401d9e:	89 f0                	mov    %esi,%eax
401da0:	e8 d3 fd ff ff       	call   0x401b78
401da5:	89 d8                	mov    %ebx,%eax
401da7:	5e                   	pop    %esi
401da8:	5b                   	pop    %ebx
401da9:	c3                   	ret
401daa:	90                   	nop
401dab:	90                   	nop
401dac:	8d 4c 09 20          	lea    0x20(%ecx,%ecx,1),%ecx
401db0:	57                   	push   %edi
401db1:	89 d7                	mov    %edx,%edi
401db3:	31 c0                	xor    %eax,%eax
401db5:	29 d1                	sub    %edx,%ecx
401db7:	83 d0 ff             	adc    $0xffffffff,%eax