401bcd:	cc                   	int3
401bce:	cc                   	int3
401bcf:	cc                   	int3
401bd0:	a1 38 30 40 00       	mov    0x403038,%eax
401bd5:	68 2c 30 40 00       	push   $0x40302c
401bda:	ff 35 34 30 40 00    	push   0x403034
401be0:	a3 2c 30 40 00       	mov    %eax,0x40302c
401be5:	68 20 30 40 00       	push   $0x403020
401bea:	68 1c 30 40 00       	push   $0x40301c
401bef:	68 18 30 40 00       	push   $0x403018
401bf4:	ff 15 9c 40 40 00    	call   *0x40409c
401bfa:	83 c4 14             	add    $0x14,%esp
401bfd:	a3 24 30 40 00       	mov    %eax,0x403024
401c02:	c3                   	ret
401c03:	6a 0c                	push   $0xc
401c05:	68 10 24 40 00       	push   $0x402410
401c0a:	e8 69 05 00 00       	call   0x402178
401c0f:	33 db                	xor    %ebx,%ebx
401c11:	89 5d fc             	mov    %ebx,-0x4(%ebp)
401c14:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
401c1a:	8b 70 04             	mov    0x4(%eax),%esi
401c1d:	8b fb                	mov    %ebx,%edi
401c1f:	ba 84 37 40 00       	mov    $0x403784,%edx
401c24:	8b ce                	mov    %esi,%ecx
401c26:	33 c0                	xor    %eax,%eax
401c28:	f0 0f b1 0a          	lock cmpxchg %ecx,(%edx)
401c2c:	85 c0                	test   %eax,%eax
401c2e:	74 18                	je     0x401c48
401c30:	3b c6                	cmp    %esi,%eax
401c32:	75 07                	jne    0x401c3b
401c34:	33 f6                	xor    %esi,%esi
401c36:	46                   	inc    %esi
401c37:	8b fe                	mov    %esi,%edi
401c39:	eb 10                	jmp    0x401c4b
401c3b:	68 e8 03 00 00       	push   $0x3e8
401c40:	ff 15 50 40 40 00    	call   *0x404050
401c46:	eb d7                	jmp    0x401c1f
401c48:	33 f6                	xor    %esi,%esi
401c4a:	46                   	inc    %esi
401c4b:	39 35 88 37 40 00    	cmp    %esi,0x403788
401c51:	75 0a                	jne    0x401c5d
401c53:	6a 1f                	push   $0x1f
401c55:	e8 f4 02 00 00       	call   0x401f4e
401c5a:	59                   	pop    %ecx
401c5b:	eb 3a                	jmp    0x401c97
401c5d:	39 1d 88 37 40 00    	cmp    %ebx,0x403788
401c63:	75 2c                	jne    0x401c91
401c65:	89 35 88 37 40 00    	mov    %esi,0x403788
401c6b:	68 cc 10 40 00       	push   $0x4010cc
401c70:	68 c0 10 40 00       	push   $0x4010c0
401c75:	e8 02 01 00 00       	call   0x401d7c
401c7a:	59                   	pop    %ecx
401c7b:	59                   	pop    %ecx
401c7c:	85 c0                	test   %eax,%eax
401c7e:	74 17                	je     0x401c97
401c80:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
401c87:	b8 ff 00 00 00       	mov    $0xff,%eax
401c8c:	e9 db 00 00 00       	jmp    0x401d6c
401c91:	89 35 14 30 40 00    	mov    %esi,0x403014
401c97:	39 35 88 37 40 00    	cmp    %esi,0x403788
401c9d:	75 1b                	jne    0x401cba
401c9f:	68 bc 10 40 00       	push   $0x4010bc
401ca4:	68 b4 10 40 00       	push   $0x4010b4
401ca9:	e8 c2 04 00 00       	call   0x402170
401cae:	59                   	pop    %ecx
401caf:	59                   	pop    %ecx
401cb0:	c7 05 88 37 40 00 02 	movl   $0x2,0x403788
401cb7:	00 00 00
401cba:	85 ff                	test   %edi,%edi
401cbc:	75 09                	jne    0x401cc7
401cbe:	33 c0                	xor    %eax,%eax
401cc0:	b9 84 37 40 00       	mov    $0x403784,%ecx
401cc5:	87 01                	xchg   %eax,(%ecx)
401cc7:	83 3d 8c 37 40 00 00 	cmpl   $0x0,0x40378c
401cce:	74 23                	je     0x401cf3
401cd0:	68 8c 37 40 00       	push   $0x40378c
401cd5:	e8 f6 02 00 00       	call   0x401fd0
401cda:	59                   	pop    %ecx
401cdb:	85 c0                	test   %eax,%eax
401cdd:	74 14                	je     0x401cf3
401cdf:	53                   	push   %ebx
401ce0:	6a 02                	push   $0x2
401ce2:	53                   	push   %ebx
401ce3:	8b 35 8c 37 40 00    	mov    0x40378c,%esi
401ce9:	8b ce                	mov    %esi,%ecx
401ceb:	ff 15 b4 40 40 00    	call   *0x4040b4
401cf1:	ff d6                	call   *%esi
401cf3:	ff 35 20 30 40 00    	push   0x403020
401cf9:	ff 35 1c 30 40 00    	push   0x40301c
401cff:	ff 35 18 30 40 00    	push   0x403018
401d05:	e8 0d f8 ff ff       	call   0x401517
401d0a:	83 c4 0c             	add    $0xc,%esp
401d0d:	a3 10 30 40 00       	mov    %eax,0x403010
401d12:	83 3d 28 30 40 00 00 	cmpl   $0x0,0x403028
401d19:	75 36                	jne    0x401d51
401d1b:	50                   	push   %eax
401d1c:	ff 15 94 40 40 00    	call   *0x404094
401d22:	8b 4d ec             	mov    -0x14(%ebp),%ecx
401d25:	8b 01                	mov    (%ecx),%eax
401d27:	8b 00                	mov    (%eax),%eax
401d29:	89 45 e4             	mov    %eax,-0x1c(%ebp)
401d2c:	51                   	push   %ecx
401d2d:	50                   	push   %eax
401d2e:	e8 6b 01 00 00       	call   0x401e9e
401d33:	59                   	pop    %ecx
401d34:	59                   	pop    %ecx
401d35:	c3                   	ret
401d36:	8b 65 e8             	mov    -0x18(%ebp),%esp
401d39:	8b 45 e4             	mov    -0x1c(%ebp),%eax
401d3c:	a3 10 30 40 00       	mov    %eax,0x403010
401d41:	83 3d 28 30 40 00 00 	cmpl   $0x0,0x403028
401d48:	75 07                	jne    0x401d51
401d4a:	50                   	push   %eax
401d4b:	ff 15 90 40 40 00    	call   *0x404090
401d51:	83 3d 14 30 40 00 00 	cmpl   $0x0,0x403014
401d58:	75 0b                	jne    0x401d65
401d5a:	ff 15 8c 40 40 00    	call   *0x40408c
401d60:	a1 10 30 40 00       	mov    0x403010,%eax
401d65:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
401d6c:	8b 4d f0             	mov    -0x10(%ebp),%ecx
401d6f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
401d76:	59                   	pop    %ecx
401d77:	5f                   	pop    %edi
401d78:	5e                   	pop    %esi
401d79:	5b                   	pop    %ebx
401d7a:	c9                   	leave
401d7b:	c3                   	ret
401d7c:	8b ff                	mov    %edi,%edi
401d7e:	55                   	push   %ebp
401d7f:	8b ec                	mov    %esp,%ebp
401d81:	56                   	push   %esi
401d82:	8b 75 08             	mov    0x8(%ebp),%esi
401d85:	33 c0                	xor    %eax,%eax
401d87:	3b 75 0c             	cmp    0xc(%ebp),%esi
401d8a:	73 1e                	jae    0x401daa
401d8c:	57                   	push   %edi
401d8d:	85 c0                	test   %eax,%eax
401d8f:	75 18                	jne    0x401da9
401d91:	8b 3e                	mov    (%esi),%edi
401d93:	85 ff                	test   %edi,%edi
401d95:	74 0a                	je     0x401da1
401d97:	8b cf                	mov    %edi,%ecx
401d99:	ff 15 b4 40 40 00    	call   *0x4040b4
401d9f:	ff d7                	call   *%edi
401da1:	83 c6 04             	add    $0x4,%esi
401da4:	3b 75 0c             	cmp    0xc(%ebp),%esi
401da7:	72 e4                	jb     0x401d8d
401da9:	5f                   	pop    %edi
401daa:	5e                   	pop    %esi
401dab:	5d                   	pop    %ebp
401dac:	c3                   	ret
401dad:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
401db2:	66 39 05 00 00 40 00 	cmp    %ax,0x400000
401db9:	75 55                	jne    0x401e10
401dbb:	8b 0d 3c 00 40 00    	mov    0x40003c,%ecx
401dc1:	81 b9 00 00 40 00 50 	cmpl   $0x4550,0x400000(%ecx)
401dc8:	45 00 00
401dcb:	75 43                	jne    0x401e10
401dcd:	0f b7 81 18 00 40 00 	movzwl 0x400018(%ecx),%eax
401dd4:	ba 0b 01 00 00       	mov    $0x10b,%edx
401dd9:	66 3b c2             	cmp    %dx,%ax
401ddc:	74 1f                	je     0x401dfd
401dde:	ba 0b 02 00 00       	mov    $0x20b,%edx
401de3:	66 3b c2             	cmp    %dx,%ax
401de6:	75 28                	jne    0x401e10
401de8:	83 b9 84 00 40 00 0e 	cmpl   $0xe,0x400084(%ecx)
401def:	76 1f                	jbe    0x401e10
401df1:	33 c0                	xor    %eax,%eax
401df3:	39 81 f8 00 40 00    	cmp    %eax,0x4000f8(%ecx)
401df9:	0f 95 c0             	setne  %al
401dfc:	c3                   	ret
401dfd:	83 b9 74 00 40 00 0e 	cmpl   $0xe,0x400074(%ecx)
401e04:	76 0a                	jbe    0x401e10
401e06:	33 c0                	xor    %eax,%eax
401e08:	39 81 e8 00 40 00    	cmp    %eax,0x4000e8(%ecx)
401e0e:	eb e9                	jmp    0x401df9
401e10:	33 c0                	xor    %eax,%eax
401e12:	c3                   	ret
401e13:	cc                   	int3
401e14:	cc                   	int3
401e15:	cc                   	int3
401e16:	cc                   	int3
401e17:	cc                   	int3
401e18:	cc                   	int3
401e19:	cc                   	int3
401e1a:	cc                   	int3
401e1b:	cc                   	int3
401e1c:	cc                   	int3
401e1d:	cc                   	int3
401e1e:	cc                   	int3
401e1f:	cc                   	int3
401e20:	e8 a0 02 00 00       	call   0x4020c5
401e25:	e9 d9 fd ff ff       	jmp    0x401c03
401e2a:	ff 25 70 40 40 00    	jmp    *0x404070
401e30:	3b 0d 04 30 40 00    	cmp    0x403004,%ecx
401e36:	75 03                	jne    0x401e3b
401e38:	c2 00 00             	ret    $0x0
401e3b:	e9 fd 03 00 00       	jmp    0x40223d
401e40:	8b ff                	mov    %edi,%edi
401e42:	55                   	push   %ebp
401e43:	8b ec                	mov    %esp,%ebp
401e45:	8b 45 08             	mov    0x8(%ebp),%eax
401e48:	8b 00                	mov    (%eax),%eax
401e4a:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
401e50:	75 2b                	jne    0x401e7d
401e52:	83 78 10 03          	cmpl   $0x3,0x10(%eax)
401e56:	75 25                	jne    0x401e7d
401e58:	8b 40 14             	mov    0x14(%eax),%eax
401e5b:	3d 20 05 93 19       	cmp    $0x19930520,%eax
401e60:	74 15                	je     0x401e77
401e62:	3d 21 05 93 19       	cmp    $0x19930521,%eax
401e67:	74 0e                	je     0x401e77
401e69:	3d 22 05 93 19       	cmp    $0x19930522,%eax
401e6e:	74 07                	je     0x401e77
401e70:	3d 00 40 99 01       	cmp    $0x1994000,%eax
401e75:	75 06                	jne    0x401e7d
401e77:	ff 15 7c 40 40 00    	call   *0x40407c
401e7d:	33 c0                	xor    %eax,%eax
401e7f:	5d                   	pop    %ebp
401e80:	c2 04 00             	ret    $0x4
401e83:	cc                   	int3
401e84:	cc                   	int3
401e85:	cc                   	int3
401e86:	cc                   	int3
401e87:	cc                   	int3
401e88:	cc                   	int3
401e89:	cc                   	int3
401e8a:	cc                   	int3
401e8b:	cc                   	int3
401e8c:	cc                   	int3
401e8d:	cc                   	int3
401e8e:	cc                   	int3
401e8f:	cc                   	int3
401e90:	68 40 1e 40 00       	push   $0x401e40
401e95:	ff 15 4c 40 40 00    	call   *0x40404c
401e9b:	33 c0                	xor    %eax,%eax
401e9d:	c3                   	ret
401e9e:	ff 25 a8 40 40 00    	jmp    *0x4040a8
401ea4:	6a 0c                	push   $0xc
401ea6:	68 30 24 40 00       	push   $0x402430
401eab:	e8 c8 02 00 00       	call   0x402178
401eb0:	33 c9                	xor    %ecx,%ecx
401eb2:	8b 45 08             	mov    0x8(%ebp),%eax
401eb5:	85 c0                	test   %eax,%eax
401eb7:	74 4b                	je     0x401f04
401eb9:	83 f8 ff             	cmp    $0xffffffff,%eax
401ebc:	74 46                	je     0x401f04
401ebe:	89 4d fc             	mov    %ecx,-0x4(%ebp)
401ec1:	ba 4d 5a 00 00       	mov    $0x5a4d,%edx
401ec6:	66 39 10             	cmp    %dx,(%eax)
401ec9:	75 32                	jne    0x401efd
401ecb:	8b 50 3c             	mov    0x3c(%eax),%edx
401ece:	85 d2                	test   %edx,%edx
401ed0:	78 2b                	js     0x401efd
401ed2:	81 fa 00 00 00 10    	cmp    $0x10000000,%edx
401ed8:	73 23                	jae    0x401efd
401eda:	03 c2                	add    %edx,%eax
401edc:	89 45 e4             	mov    %eax,-0x1c(%ebp)
401edf:	8b 08                	mov    (%eax),%ecx
401ee1:	81 e9 50 45 00 00    	sub    $0x4550,%ecx
401ee7:	f7 d9                	neg    %ecx
401ee9:	1b c9                	sbb    %ecx,%ecx
401eeb:	f7 d1                	not    %ecx
401eed:	23 c8                	and    %eax,%ecx
401eef:	eb 09                	jmp    0x401efa
401ef1:	33 c0                	xor    %eax,%eax
401ef3:	40                   	inc    %eax
401ef4:	c3                   	ret
401ef5:	8b 65 e8             	mov    -0x18(%ebp),%esp
401ef8:	33 c9                	xor    %ecx,%ecx
401efa:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
401efd:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
401f04:	8b c1                	mov    %ecx,%eax
401f06:	8b 4d f0             	mov    -0x10(%ebp),%ecx
401f09:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
401f10:	59                   	pop    %ecx
401f11:	5f                   	pop    %edi
401f12:	5e                   	pop    %esi
401f13:	5b                   	pop    %ebx
401f14:	c9                   	leave
401f15:	c2 04 00             	ret    $0x4
401f18:	8b ff                	mov    %edi,%edi
401f1a:	55                   	push   %ebp
401f1b:	8b ec                	mov    %esp,%ebp
401f1d:	6a 00                	push   $0x0
401f1f:	ff 15 48 40 40 00    	call   *0x404048
401f25:	85 c0                	test   %eax,%eax
401f27:	74 20                	je     0x401f49
401f29:	50                   	push   %eax
401f2a:	e8 75 ff ff ff       	call   0x401ea4
401f2f:	85 c0                	test   %eax,%eax
401f31:	74 16                	je     0x401f49
401f33:	0f b7 48 5c          	movzwl 0x5c(%eax),%ecx
401f37:	6a 02                	push   $0x2
401f39:	58                   	pop    %eax
401f3a:	66 3b c8             	cmp    %ax,%cx
401f3d:	74 0d                	je     0x401f4c
401f3f:	83 f9 03             	cmp    $0x3,%ecx
401f42:	75 05                	jne    0x401f49
401f44:	33 c0                	xor    %eax,%eax
401f46:	40                   	inc    %eax
401f47:	5d                   	pop    %ebp
401f48:	c3                   	ret
401f49:	8b 45 08             	mov    0x8(%ebp),%eax
401f4c:	5d                   	pop    %ebp
401f4d:	c3                   	ret
401f4e:	ff 25 a0 40 40 00    	jmp    *0x4040a0
401f54:	cc                   	int3
401f55:	cc                   	int3
401f56:	cc                   	int3
401f57:	cc                   	int3
401f58:	cc                   	int3
401f59:	cc                   	int3
401f5a:	cc                   	int3
401f5b:	cc                   	int3
401f5c:	cc                   	int3
401f5d:	cc                   	int3
401f5e:	cc                   	int3
401f5f:	cc                   	int3
401f60:	33 c0                	xor    %eax,%eax
401f62:	c3                   	ret
401f63:	cc                   	int3
401f64:	cc                   	int3
401f65:	cc                   	int3
401f66:	cc                   	int3
401f67:	cc                   	int3
401f68:	cc                   	int3
401f69:	cc                   	int3
401f6a:	cc                   	int3
401f6b:	cc                   	int3
401f6c:	cc                   	int3
401f6d:	cc                   	int3
401f6e:	cc                   	int3
401f6f:	cc                   	int3
401f70:	8b ff                	mov    %edi,%edi
401f72:	55                   	push   %ebp
401f73:	8b ec                	mov    %esp,%ebp
401f75:	8b 45 08             	mov    0x8(%ebp),%eax
401f78:	33 d2                	xor    %edx,%edx
401f7a:	53                   	push   %ebx
401f7b:	56                   	push   %esi
401f7c:	57                   	push   %edi
401f7d:	8b 48 3c             	mov    0x3c(%eax),%ecx
401f80:	03 c8                	add    %eax,%ecx
401f82:	0f b7 41 14          	movzwl 0x14(%ecx),%eax
401f86:	0f b7 59 06          	movzwl 0x6(%ecx),%ebx
401f8a:	83 c0 18             	add    $0x18,%eax
401f8d:	03 c1                	add    %ecx,%eax
401f8f:	85 db                	test   %ebx,%ebx
401f91:	74 1b                	je     0x401fae