401b43:	74 52                	je     0x401b97
401b45:	8b 45 fc             	mov    -0x4(%ebp),%eax
401b48:	6a 08                	push   $0x8
401b4a:	6a ff                	push   $0xffffffff
401b4c:	57                   	push   %edi
401b4d:	89 47 38             	mov    %eax,0x38(%edi)
401b50:	8d 45 f8             	lea    -0x8(%ebp),%eax
401b53:	68 d7 1b 40 00       	push   $0x401bd7
401b58:	89 5d f8             	mov    %ebx,-0x8(%ebp)
401b5b:	ff 77 2c             	push   0x2c(%edi)
401b5e:	50                   	push   %eax
401b5f:	ff 15 e4 10 43 00    	call   *0x4310e4
401b65:	85 c0                	test   %eax,%eax
401b67:	74 2e                	je     0x401b97
401b69:	8b 45 f8             	mov    -0x8(%ebp),%eax
401b6c:	56                   	push   %esi
401b6d:	89 47 3c             	mov    %eax,0x3c(%edi)
401b70:	ff 15 14 10 43 00    	call   *0x431014
401b76:	38 9e 88 00 00 00    	cmp    %bl,0x88(%esi)
401b7c:	75 0e                	jne    0x401b8c
401b7e:	8d 45 08             	lea    0x8(%ebp),%eax
401b81:	50                   	push   %eax
401b82:	8d 4e 18             	lea    0x18(%esi),%ecx
401b85:	e8 ad 03 00 00       	call   0x401f37
401b8a:	b3 01                	mov    $0x1,%bl
401b8c:	56                   	push   %esi
401b8d:	ff 15 18 10 43 00    	call   *0x431018
401b93:	8a c3                	mov    %bl,%al
401b95:	eb 02                	jmp    0x401b99
401b97:	32 c0                	xor    %al,%al
401b99:	5f                   	pop    %edi
401b9a:	5e                   	pop    %esi
401b9b:	5b                   	pop    %ebx
401b9c:	c9                   	leave
401b9d:	c2 04 00             	ret    $0x4
401ba0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
401ba4:	e8 27 fe ff ff       	call   0x4019d0
401ba9:	c2 08 00             	ret    $0x8
401bac:	56                   	push   %esi
401bad:	8b 74 24 08          	mov    0x8(%esp),%esi
401bb1:	57                   	push   %edi
401bb2:	8b 3e                	mov    (%esi),%edi
401bb4:	80 7f 69 00          	cmpb   $0x0,0x69(%edi)
401bb8:	74 07                	je     0x401bc1
401bba:	8b ce                	mov    %esi,%ecx
401bbc:	e8 34 0b 00 00       	call   0x4026f5
401bc1:	56                   	push   %esi
401bc2:	8b cf                	mov    %edi,%ecx
401bc4:	e8 91 00 00 00       	call   0x401c5a
401bc9:	ff 76 30             	push   0x30(%esi)
401bcc:	ff 15 10 11 43 00    	call   *0x431110
401bd2:	5f                   	pop    %edi
401bd3:	5e                   	pop    %esi
401bd4:	c2 08 00             	ret    $0x8
401bd7:	8b 4c 24 04          	mov    0x4(%esp),%ecx
401bdb:	51                   	push   %ecx
401bdc:	8b 09                	mov    (%ecx),%ecx
401bde:	e8 03 00 00 00       	call   0x401be6
401be3:	c2 08 00             	ret    $0x8
401be6:	56                   	push   %esi
401be7:	57                   	push   %edi
401be8:	8b 7c 24 0c          	mov    0xc(%esp),%edi
401bec:	8b f1                	mov    %ecx,%esi
401bee:	8b cf                	mov    %edi,%ecx
401bf0:	e8 24 09 00 00       	call   0x402519
401bf5:	8b 46 58             	mov    0x58(%esi),%eax
401bf8:	85 c0                	test   %eax,%eax
401bfa:	74 08                	je     0x401c04
401bfc:	57                   	push   %edi
401bfd:	ff 76 5c             	push   0x5c(%esi)
401c00:	ff d0                	call   *%eax
401c02:	59                   	pop    %ecx
401c03:	59                   	pop    %ecx
401c04:	56                   	push   %esi
401c05:	ff 15 14 10 43 00    	call   *0x431014
401c0b:	80 be 88 00 00 00 00 	cmpb   $0x0,0x88(%esi)
401c12:	74 09                	je     0x401c1d
401c14:	56                   	push   %esi
401c15:	ff 15 18 10 43 00    	call   *0x431018
401c1b:	eb 38                	jmp    0x401c55
401c1d:	8d 44 24 0c          	lea    0xc(%esp),%eax
401c21:	50                   	push   %eax
401c22:	8d 4e 18             	lea    0x18(%esi),%ecx
401c25:	e8 ba 02 00 00       	call   0x401ee4
401c2a:	56                   	push   %esi
401c2b:	ff 15 18 10 43 00    	call   *0x431018
401c31:	83 7f 3c 00          	cmpl   $0x0,0x3c(%edi)
401c35:	74 0d                	je     0x401c44
401c37:	ff 77 3c             	push   0x3c(%edi)
401c3a:	ff 15 e8 10 43 00    	call   *0x4310e8
401c40:	83 67 3c 00          	andl   $0x0,0x3c(%edi)
401c44:	8b cf                	mov    %edi,%ecx
401c46:	e8 13 09 00 00       	call   0x40255e
401c4b:	6a 4c                	push   $0x4c
401c4d:	57                   	push   %edi
401c4e:	e8 9d 4d 00 00       	call   0x4069f0
401c53:	59                   	pop    %ecx
401c54:	59                   	pop    %ecx
401c55:	5f                   	pop    %edi
401c56:	5e                   	pop    %esi
401c57:	c2 04 00             	ret    $0x4
401c5a:	55                   	push   %ebp
401c5b:	8b ec                	mov    %esp,%ebp
401c5d:	83 e4 f8             	and    $0xfffffff8,%esp
401c60:	83 ec 1c             	sub    $0x1c,%esp
401c63:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
401c68:	33 c4                	xor    %esp,%eax
401c6a:	89 44 24 18          	mov    %eax,0x18(%esp)
401c6e:	83 64 24 10 00       	andl   $0x0,0x10(%esp)
401c73:	33 c0                	xor    %eax,%eax
401c75:	53                   	push   %ebx
401c76:	56                   	push   %esi
401c77:	8b f1                	mov    %ecx,%esi
401c79:	c7 44 24 1c 07 00 00 	movl   $0x7,0x1c(%esp)
401c80:	00
401c81:	57                   	push   %edi
401c82:	8b 7d 08             	mov    0x8(%ebp),%edi
401c85:	b3 01                	mov    $0x1,%bl
401c87:	66 89 44 24 0c       	mov    %ax,0xc(%esp)
401c8c:	38 46 68             	cmp    %al,0x68(%esi)
401c8f:	74 11                	je     0x401ca2
401c91:	8d 44 24 0c          	lea    0xc(%esp),%eax
401c95:	50                   	push   %eax
401c96:	57                   	push   %edi
401c97:	e8 62 00 00 00       	call   0x401cfe
401c9c:	f6 d8                	neg    %al
401c9e:	1a c0                	sbb    %al,%al
401ca0:	22 d8                	and    %al,%bl
401ca2:	83 7e 50 00          	cmpl   $0x0,0x50(%esi)
401ca6:	74 23                	je     0x401ccb
401ca8:	84 db                	test   %bl,%bl
401caa:	74 1f                	je     0x401ccb
401cac:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
401cb0:	e8 25 07 00 00       	call   0x4023da
401cb5:	33 d2                	xor    %edx,%edx
401cb7:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
401cbb:	84 c0                	test   %al,%al
401cbd:	0f 45 ca             	cmovne %edx,%ecx
401cc0:	51                   	push   %ecx
401cc1:	57                   	push   %edi
401cc2:	ff 76 54             	push   0x54(%esi)
401cc5:	ff 56 50             	call   *0x50(%esi)
401cc8:	83 c4 0c             	add    $0xc,%esp
401ccb:	ff 77 34             	push   0x34(%edi)
401cce:	ff 15 0c 11 43 00    	call   *0x43110c
401cd4:	8b 54 24 20          	mov    0x20(%esp),%edx
401cd8:	83 fa 08             	cmp    $0x8,%edx
401cdb:	72 0d                	jb     0x401cea
401cdd:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
401ce1:	42                   	inc    %edx
401ce2:	6a 02                	push   $0x2
401ce4:	e8 f5 f4 ff ff       	call   0x4011de
401ce9:	59                   	pop    %ecx
401cea:	8b 4c 24 24          	mov    0x24(%esp),%ecx
401cee:	5f                   	pop    %edi
401cef:	5e                   	pop    %esi
401cf0:	5b                   	pop    %ebx
401cf1:	33 cc                	xor    %esp,%ecx
401cf3:	e8 af 7f 00 00       	call   0x409ca7
401cf8:	8b e5                	mov    %ebp,%esp
401cfa:	5d                   	pop    %ebp
401cfb:	c2 04 00             	ret    $0x4
401cfe:	b8 b4 02 04 00       	mov    $0x402b4,%eax
401d03:	e8 b8 83 00 00       	call   0x40a0c0
401d08:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
401d0d:	33 c4                	xor    %esp,%eax
401d0f:	89 84 24 ac 02 04 00 	mov    %eax,0x402ac(%esp)
401d16:	8b 84 24 bc 02 04 00 	mov    0x402bc(%esp),%eax
401d1d:	53                   	push   %ebx
401d1e:	55                   	push   %ebp
401d1f:	8b ac 24 c0 02 04 00 	mov    0x402c0(%esp),%ebp
401d26:	33 db                	xor    %ebx,%ebx
401d28:	56                   	push   %esi
401d29:	8b 35 2c 11 43 00    	mov    0x43112c,%esi
401d2f:	57                   	push   %edi
401d30:	89 44 24 20          	mov    %eax,0x20(%esp)
401d34:	8d 44 24 14          	lea    0x14(%esp),%eax
401d38:	50                   	push   %eax
401d39:	6a 04                	push   $0x4
401d3b:	5f                   	pop    %edi
401d3c:	57                   	push   %edi
401d3d:	8d 44 24 20          	lea    0x20(%esp),%eax
401d41:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
401d45:	50                   	push   %eax
401d46:	ff 75 0c             	push   0xc(%ebp)
401d49:	89 5c 24 28          	mov    %ebx,0x28(%esp)
401d4d:	ff 75 2c             	push   0x2c(%ebp)
401d50:	89 5c 24 28          	mov    %ebx,0x28(%esp)
401d54:	ff d6                	call   *%esi
401d56:	85 c0                	test   %eax,%eax
401d58:	0f 84 4f 01 00 00    	je     0x401ead
401d5e:	39 7c 24 14          	cmp    %edi,0x14(%esp)
401d62:	0f 85 45 01 00 00    	jne    0x401ead
401d68:	8d 44 24 14          	lea    0x14(%esp),%eax
401d6c:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
401d70:	50                   	push   %eax
401d71:	57                   	push   %edi
401d72:	8d 44 24 24          	lea    0x24(%esp),%eax
401d76:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
401d7a:	50                   	push   %eax
401d7b:	ff 75 28             	push   0x28(%ebp)
401d7e:	ff 75 2c             	push   0x2c(%ebp)
401d81:	ff d6                	call   *%esi
401d83:	85 c0                	test   %eax,%eax
401d85:	0f 84 22 01 00 00    	je     0x401ead
401d8b:	39 7c 24 14          	cmp    %edi,0x14(%esp)
401d8f:	0f 85 18 01 00 00    	jne    0x401ead
401d95:	68 ff ff 01 00       	push   $0x1ffff
401d9a:	8d 84 24 bd 02 02 00 	lea    0x202bd(%esp),%eax
401da1:	88 9c 24 bc 02 02 00 	mov    %bl,0x202bc(%esp)
401da8:	53                   	push   %ebx
401da9:	50                   	push   %eax
401daa:	e8 11 96 00 00       	call   0x40b3c0
401daf:	83 c4 0c             	add    $0xc,%esp
401db2:	89 5c 24 14          	mov    %ebx,0x14(%esp)
401db6:	8d 44 24 14          	lea    0x14(%esp),%eax
401dba:	bf 00 00 02 00       	mov    $0x20000,%edi
401dbf:	50                   	push   %eax
401dc0:	57                   	push   %edi
401dc1:	8d 84 24 c0 02 02 00 	lea    0x202c0(%esp),%eax
401dc8:	50                   	push   %eax
401dc9:	ff 75 10             	push   0x10(%ebp)
401dcc:	ff 75 2c             	push   0x2c(%ebp)
401dcf:	ff d6                	call   *%esi
401dd1:	85 c0                	test   %eax,%eax
401dd3:	0f 84 d4 00 00 00    	je     0x401ead
401dd9:	39 7c 24 14          	cmp    %edi,0x14(%esp)
401ddd:	0f 85 ca 00 00 00    	jne    0x401ead
401de3:	33 c0                	xor    %eax,%eax
401de5:	68 fe 00 00 00       	push   $0xfe
401dea:	66 89 84 24 bc 01 02 	mov    %ax,0x201bc(%esp)
401df1:	00
401df2:	8d 84 24 be 01 02 00 	lea    0x201be(%esp),%eax
401df9:	53                   	push   %ebx
401dfa:	50                   	push   %eax
401dfb:	e8 c0 95 00 00       	call   0x40b3c0
401e00:	83 c4 0c             	add    $0xc,%esp
401e03:	89 5c 24 14          	mov    %ebx,0x14(%esp)
401e07:	8d 44 24 14          	lea    0x14(%esp),%eax
401e0b:	bf 80 00 00 00       	mov    $0x80,%edi
401e10:	50                   	push   %eax
401e11:	57                   	push   %edi
401e12:	8d 84 24 c0 01 02 00 	lea    0x201c0(%esp),%eax
401e19:	50                   	push   %eax
401e1a:	ff 75 14             	push   0x14(%ebp)
401e1d:	ff 75 2c             	push   0x2c(%ebp)
401e20:	ff d6                	call   *%esi
401e22:	85 c0                	test   %eax,%eax
401e24:	0f 84 83 00 00 00    	je     0x401ead
401e2a:	39 7c 24 14          	cmp    %edi,0x14(%esp)
401e2e:	75 7d                	jne    0x401ead
401e30:	8b 75 04             	mov    0x4(%ebp),%esi
401e33:	8d 84 24 b8 01 02 00 	lea    0x201b8(%esp),%eax
401e3a:	8b 7d 2c             	mov    0x2c(%ebp),%edi
401e3d:	51                   	push   %ecx
401e3e:	ff 75 08             	push   0x8(%ebp)
401e41:	50                   	push   %eax
401e42:	8d 84 24 c4 02 02 00 	lea    0x202c4(%esp),%eax
401e49:	50                   	push   %eax
401e4a:	ff 75 18             	push   0x18(%ebp)
401e4d:	ff 74 24 2c          	push   0x2c(%esp)
401e51:	ff 74 24 34          	push   0x34(%esp)
401e55:	ff 15 08 10 43 00    	call   *0x431008
401e5b:	50                   	push   %eax
401e5c:	8b 44 24 44          	mov    0x44(%esp),%eax
401e60:	8d 4c 24 48          	lea    0x48(%esp),%ecx
401e64:	56                   	push   %esi
401e65:	57                   	push   %edi
401e66:	83 c0 6c             	add    $0x6c,%eax
401e69:	50                   	push   %eax
401e6a:	e8 54 0b 00 00       	call   0x4029c3
401e6f:	f6 45 08 02          	testb  $0x2,0x8(%ebp)
401e73:	8b 74 24 20          	mov    0x20(%esp),%esi
401e77:	74 0e                	je     0x401e87
401e79:	56                   	push   %esi
401e7a:	8d 4c 24 2c          	lea    0x2c(%esp),%ecx
401e7e:	e8 0a 11 00 00       	call   0x402f8d
401e83:	84 c0                	test   %al,%al
401e85:	74 19                	je     0x401ea0
401e87:	56                   	push   %esi
401e88:	8d 4c 24 2c          	lea    0x2c(%esp),%ecx
401e8c:	e8 41 10 00 00       	call   0x402ed2
401e91:	84 c0                	test   %al,%al
401e93:	74 0b                	je     0x401ea0
401e95:	8d 4c 24 28          	lea    0x28(%esp),%ecx
401e99:	e8 77 0c 00 00       	call   0x402b15
401e9e:	8a d8                	mov    %al,%bl
401ea0:	8d 4c 24 28          	lea    0x28(%esp),%ecx
401ea4:	e8 f0 0b 00 00       	call   0x402a99
401ea9:	8a c3                	mov    %bl,%al
401eab:	eb 02                	jmp    0x401eaf
401ead:	32 c0                	xor    %al,%al
401eaf:	8b 8c 24 bc 02 04 00 	mov    0x402bc(%esp),%ecx
401eb6:	5f                   	pop    %edi
401eb7:	5e                   	pop    %esi
401eb8:	5d                   	pop    %ebp
401eb9:	5b                   	pop    %ebx
401eba:	33 cc                	xor    %esp,%ecx
401ebc:	e8 e6 7d 00 00       	call   0x409ca7
401ec1:	81 c4 b4 02 04 00    	add    $0x402b4,%esp
401ec7:	c2 08 00             	ret    $0x8
401eca:	56                   	push   %esi
401ecb:	8b 31                	mov    (%ecx),%esi
401ecd:	85 f6                	test   %esi,%esi
401ecf:	74 11                	je     0x401ee2
401ed1:	8b ce                	mov    %esi,%ecx
401ed3:	e8 86 06 00 00       	call   0x40255e
401ed8:	6a 4c                	push   $0x4c
401eda:	56                   	push   %esi
401edb:	e8 10 4b 00 00       	call   0x4069f0
401ee0:	59                   	pop    %ecx
401ee1:	59                   	pop    %ecx
401ee2:	5e                   	pop    %esi
401ee3:	c3                   	ret
401ee4:	56                   	push   %esi
401ee5:	57                   	push   %edi
401ee6:	8b f9                	mov    %ecx,%edi
401ee8:	8b 37                	mov    (%edi),%esi
401eea:	8b 06                	mov    (%esi),%eax
401eec:	3b c6                	cmp    %esi,%eax
401eee:	74 42                	je     0x401f32
401ef0:	53                   	push   %ebx
401ef1:	55                   	push   %ebp
401ef2:	8b 6c 24 14          	mov    0x14(%esp),%ebp
401ef6:	8b d6                	mov    %esi,%edx
401ef8:	8d 58 08             	lea    0x8(%eax),%ebx
401efb:	8b 0b                	mov    (%ebx),%ecx
401efd:	3b 4d 00             	cmp    0x0(%ebp),%ecx
401f00:	75 17                	jne    0x401f19
401f02:	3b dd                	cmp    %ebp,%ebx
401f04:	75 04                	jne    0x401f0a
401f06:	8b f0                	mov    %eax,%esi
401f08:	eb 0f                	jmp    0x401f19
401f0a:	50                   	push   %eax
401f0b:	8d 44 24 18          	lea    0x18(%esp),%eax
401f0f:	8b cf                	mov    %edi,%ecx
401f11:	50                   	push   %eax
401f12:	e8 78 01 00 00       	call   0x40208f
401f17:	8b 17                	mov    (%edi),%edx
401f19:	8b 00                	mov    (%eax),%eax
401f1b:	3b c2                	cmp    %edx,%eax
401f1d:	75 d9                	jne    0x401ef8
401f1f:	5d                   	pop    %ebp
401f20:	5b                   	pop    %ebx
401f21:	3b f2                	cmp    %edx,%esi
401f23:	74 0d                	je     0x401f32
401f25:	56                   	push   %esi
401f26:	8d 44 24 10          	lea    0x10(%esp),%eax
401f2a:	8b cf                	mov    %edi,%ecx
401f2c:	50                   	push   %eax