402cfa:	e8 c5 38 00 00       	call   0x4065c4
402cff:	59                   	pop    %ecx
402d00:	59                   	pop    %ecx
402d01:	85 c0                	test   %eax,%eax
402d03:	74 11                	je     0x402d16
402d05:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
402d0c:	b8 ff 00 00 00       	mov    $0xff,%eax
402d11:	e9 e9 00 00 00       	jmp    0x402dff
402d16:	68 28 f1 40 00       	push   $0x40f128
402d1b:	68 20 f1 40 00       	push   $0x40f120
402d20:	e8 74 38 00 00       	call   0x406599
402d25:	59                   	pop    %ecx
402d26:	59                   	pop    %ecx
402d27:	c7 05 78 69 41 00 02 	movl   $0x2,0x416978
402d2e:	00 00 00
402d31:	eb 05                	jmp    0x402d38
402d33:	8a d9                	mov    %cl,%bl
402d35:	88 5d e7             	mov    %bl,-0x19(%ebp)
402d38:	ff 75 dc             	push   -0x24(%ebp)
402d3b:	e8 d6 02 00 00       	call   0x403016
402d40:	59                   	pop    %ecx
402d41:	e8 64 04 00 00       	call   0x4031aa
402d46:	8b f0                	mov    %eax,%esi
402d48:	33 ff                	xor    %edi,%edi
402d4a:	39 3e                	cmp    %edi,(%esi)
402d4c:	74 1b                	je     0x402d69
402d4e:	56                   	push   %esi
402d4f:	e8 2e 02 00 00       	call   0x402f82
402d54:	59                   	pop    %ecx
402d55:	84 c0                	test   %al,%al
402d57:	74 10                	je     0x402d69
402d59:	8b 36                	mov    (%esi),%esi
402d5b:	57                   	push   %edi
402d5c:	6a 02                	push   $0x2
402d5e:	57                   	push   %edi
402d5f:	8b ce                	mov    %esi,%ecx
402d61:	ff 15 18 f1 40 00    	call   *0x40f118
402d67:	ff d6                	call   *%esi
402d69:	e8 42 04 00 00       	call   0x4031b0
402d6e:	8b f0                	mov    %eax,%esi
402d70:	39 3e                	cmp    %edi,(%esi)
402d72:	74 13                	je     0x402d87
402d74:	56                   	push   %esi
402d75:	e8 08 02 00 00       	call   0x402f82
402d7a:	59                   	pop    %ecx
402d7b:	84 c0                	test   %al,%al
402d7d:	74 08                	je     0x402d87
402d7f:	ff 36                	push   (%esi)
402d81:	e8 47 3b 00 00       	call   0x4068cd
402d86:	59                   	pop    %ecx
402d87:	e8 45 05 00 00       	call   0x4032d1
402d8c:	0f b7 f0             	movzwl %ax,%esi
402d8f:	e8 b2 37 00 00       	call   0x406546
402d94:	56                   	push   %esi
402d95:	50                   	push   %eax
402d96:	57                   	push   %edi
402d97:	68 00 00 40 00       	push   $0x400000
402d9c:	e8 bf eb ff ff       	call   0x401960
402da1:	8b f0                	mov    %eax,%esi
402da3:	e8 5f 05 00 00       	call   0x403307
402da8:	84 c0                	test   %al,%al
402daa:	74 6a                	je     0x402e16
402dac:	84 db                	test   %bl,%bl
402dae:	75 05                	jne    0x402db5
402db0:	e8 f3 3a 00 00       	call   0x4068a8
402db5:	57                   	push   %edi
402db6:	6a 01                	push   $0x1
402db8:	e8 76 02 00 00       	call   0x403033
402dbd:	59                   	pop    %ecx
402dbe:	59                   	pop    %ecx
402dbf:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
402dc6:	8b c6                	mov    %esi,%eax
402dc8:	eb 35                	jmp    0x402dff
402dca:	8b 4d ec             	mov    -0x14(%ebp),%ecx
402dcd:	8b 01                	mov    (%ecx),%eax
402dcf:	8b 00                	mov    (%eax),%eax
402dd1:	89 45 e0             	mov    %eax,-0x20(%ebp)
402dd4:	51                   	push   %ecx
402dd5:	50                   	push   %eax
402dd6:	e8 75 30 00 00       	call   0x405e50
402ddb:	59                   	pop    %ecx
402ddc:	59                   	pop    %ecx
402ddd:	c3                   	ret
402dde:	8b 65 e8             	mov    -0x18(%ebp),%esp
402de1:	e8 21 05 00 00       	call   0x403307
402de6:	84 c0                	test   %al,%al
402de8:	74 32                	je     0x402e1c
402dea:	80 7d e7 00          	cmpb   $0x0,-0x19(%ebp)
402dee:	75 05                	jne    0x402df5
402df0:	e8 a4 3a 00 00       	call   0x406899
402df5:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
402dfc:	8b 45 e0             	mov    -0x20(%ebp),%eax
402dff:	8b 4d f0             	mov    -0x10(%ebp),%ecx
402e02:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402e09:	59                   	pop    %ecx
402e0a:	5f                   	pop    %edi
402e0b:	5e                   	pop    %esi
402e0c:	5b                   	pop    %ebx
402e0d:	c9                   	leave
402e0e:	c3                   	ret
402e0f:	6a 07                	push   $0x7
402e11:	e8 a0 03 00 00       	call   0x4031b6
402e16:	56                   	push   %esi
402e17:	e8 d7 3a 00 00       	call   0x4068f3
402e1c:	ff 75 e0             	push   -0x20(%ebp)
402e1f:	e8 93 3a 00 00       	call   0x4068b7
402e24:	cc                   	int3
402e25:	e8 c0 02 00 00       	call   0x4030ea
402e2a:	e9 7a fe ff ff       	jmp    0x402ca9
402e2f:	55                   	push   %ebp
402e30:	8b ec                	mov    %esp,%ebp
402e32:	83 ec 0c             	sub    $0xc,%esp
402e35:	8d 4d f4             	lea    -0xc(%ebp),%ecx
402e38:	e8 f8 fb ff ff       	call   0x402a35
402e3d:	68 5c 47 41 00       	push   $0x41475c
402e42:	8d 45 f4             	lea    -0xc(%ebp),%eax
402e45:	50                   	push   %eax
402e46:	e8 10 0f 00 00       	call   0x403d5b
402e4b:	cc                   	int3
402e4c:	55                   	push   %ebp
402e4d:	8b ec                	mov    %esp,%ebp
402e4f:	8b 45 08             	mov    0x8(%ebp),%eax
402e52:	56                   	push   %esi
402e53:	8b 48 3c             	mov    0x3c(%eax),%ecx
402e56:	03 c8                	add    %eax,%ecx
402e58:	0f b7 41 14          	movzwl 0x14(%ecx),%eax
402e5c:	8d 51 18             	lea    0x18(%ecx),%edx
402e5f:	03 d0                	add    %eax,%edx
402e61:	0f b7 41 06          	movzwl 0x6(%ecx),%eax
402e65:	6b f0 28             	imul   $0x28,%eax,%esi
402e68:	03 f2                	add    %edx,%esi
402e6a:	3b d6                	cmp    %esi,%edx
402e6c:	74 19                	je     0x402e87
402e6e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
402e71:	3b 4a 0c             	cmp    0xc(%edx),%ecx
402e74:	72 0a                	jb     0x402e80
402e76:	8b 42 08             	mov    0x8(%edx),%eax
402e79:	03 42 0c             	add    0xc(%edx),%eax
402e7c:	3b c8                	cmp    %eax,%ecx
402e7e:	72 0c                	jb     0x402e8c
402e80:	83 c2 28             	add    $0x28,%edx
402e83:	3b d6                	cmp    %esi,%edx
402e85:	75 ea                	jne    0x402e71
402e87:	33 c0                	xor    %eax,%eax
402e89:	5e                   	pop    %esi
402e8a:	5d                   	pop    %ebp
402e8b:	c3                   	ret
402e8c:	8b c2                	mov    %edx,%eax
402e8e:	eb f9                	jmp    0x402e89
402e90:	56                   	push   %esi
402e91:	e8 93 07 00 00       	call   0x403629
402e96:	85 c0                	test   %eax,%eax
402e98:	74 20                	je     0x402eba
402e9a:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
402ea0:	be 7c 69 41 00       	mov    $0x41697c,%esi
402ea5:	8b 50 04             	mov    0x4(%eax),%edx
402ea8:	eb 04                	jmp    0x402eae
402eaa:	3b d0                	cmp    %eax,%edx
402eac:	74 10                	je     0x402ebe
402eae:	33 c0                	xor    %eax,%eax
402eb0:	8b ca                	mov    %edx,%ecx
402eb2:	f0 0f b1 0e          	lock cmpxchg %ecx,(%esi)
402eb6:	85 c0                	test   %eax,%eax
402eb8:	75 f0                	jne    0x402eaa
402eba:	32 c0                	xor    %al,%al
402ebc:	5e                   	pop    %esi
402ebd:	c3                   	ret
402ebe:	b0 01                	mov    $0x1,%al
402ec0:	5e                   	pop    %esi
402ec1:	c3                   	ret
402ec2:	55                   	push   %ebp
402ec3:	8b ec                	mov    %esp,%ebp
402ec5:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
402ec9:	75 07                	jne    0x402ed2
402ecb:	c6 05 80 69 41 00 01 	movb   $0x1,0x416980
402ed2:	e8 7e 05 00 00       	call   0x403455
402ed7:	e8 92 10 00 00       	call   0x403f6e
402edc:	84 c0                	test   %al,%al
402ede:	75 04                	jne    0x402ee4
402ee0:	32 c0                	xor    %al,%al
402ee2:	5d                   	pop    %ebp
402ee3:	c3                   	ret
402ee4:	e8 d8 3f 00 00       	call   0x406ec1
402ee9:	84 c0                	test   %al,%al
402eeb:	75 0a                	jne    0x402ef7
402eed:	6a 00                	push   $0x0
402eef:	e8 99 10 00 00       	call   0x403f8d
402ef4:	59                   	pop    %ecx
402ef5:	eb e9                	jmp    0x402ee0
402ef7:	b0 01                	mov    $0x1,%al
402ef9:	5d                   	pop    %ebp
402efa:	c3                   	ret
402efb:	55                   	push   %ebp
402efc:	8b ec                	mov    %esp,%ebp
402efe:	80 3d 81 69 41 00 00 	cmpb   $0x0,0x416981
402f05:	74 04                	je     0x402f0b
402f07:	b0 01                	mov    $0x1,%al
402f09:	5d                   	pop    %ebp
402f0a:	c3                   	ret
402f0b:	56                   	push   %esi
402f0c:	8b 75 08             	mov    0x8(%ebp),%esi
402f0f:	85 f6                	test   %esi,%esi
402f11:	74 05                	je     0x402f18
402f13:	83 fe 01             	cmp    $0x1,%esi
402f16:	75 62                	jne    0x402f7a
402f18:	e8 0c 07 00 00       	call   0x403629
402f1d:	85 c0                	test   %eax,%eax
402f1f:	74 26                	je     0x402f47
402f21:	85 f6                	test   %esi,%esi
402f23:	75 22                	jne    0x402f47
402f25:	68 84 69 41 00       	push   $0x416984
402f2a:	e8 3b 3e 00 00       	call   0x406d6a
402f2f:	59                   	pop    %ecx
402f30:	85 c0                	test   %eax,%eax
402f32:	75 0f                	jne    0x402f43
402f34:	68 90 69 41 00       	push   $0x416990
402f39:	e8 2c 3e 00 00       	call   0x406d6a
402f3e:	59                   	pop    %ecx
402f3f:	85 c0                	test   %eax,%eax
402f41:	74 2b                	je     0x402f6e
402f43:	32 c0                	xor    %al,%al
402f45:	eb 30                	jmp    0x402f77
402f47:	83 c9 ff             	or     $0xffffffff,%ecx
402f4a:	89 0d 84 69 41 00    	mov    %ecx,0x416984
402f50:	89 0d 88 69 41 00    	mov    %ecx,0x416988
402f56:	89 0d 8c 69 41 00    	mov    %ecx,0x41698c
402f5c:	89 0d 90 69 41 00    	mov    %ecx,0x416990
402f62:	89 0d 94 69 41 00    	mov    %ecx,0x416994
402f68:	89 0d 98 69 41 00    	mov    %ecx,0x416998
402f6e:	c6 05 81 69 41 00 01 	movb   $0x1,0x416981
402f75:	b0 01                	mov    $0x1,%al
402f77:	5e                   	pop    %esi
402f78:	5d                   	pop    %ebp
402f79:	c3                   	ret
402f7a:	6a 05                	push   $0x5
402f7c:	e8 35 02 00 00       	call   0x4031b6
402f81:	cc                   	int3
402f82:	6a 08                	push   $0x8
402f84:	68 30 48 41 00       	push   $0x414830
402f89:	e8 82 04 00 00       	call   0x403410
402f8e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
402f92:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
402f97:	66 39 05 00 00 40 00 	cmp    %ax,0x400000
402f9e:	75 5d                	jne    0x402ffd
402fa0:	a1 3c 00 40 00       	mov    0x40003c,%eax
402fa5:	81 b8 00 00 40 00 50 	cmpl   $0x4550,0x400000(%eax)
402fac:	45 00 00
402faf:	75 4c                	jne    0x402ffd
402fb1:	b9 0b 01 00 00       	mov    $0x10b,%ecx
402fb6:	66 39 88 18 00 40 00 	cmp    %cx,0x400018(%eax)
402fbd:	75 3e                	jne    0x402ffd
402fbf:	8b 45 08             	mov    0x8(%ebp),%eax
402fc2:	b9 00 00 40 00       	mov    $0x400000,%ecx
402fc7:	2b c1                	sub    %ecx,%eax
402fc9:	50                   	push   %eax
402fca:	51                   	push   %ecx
402fcb:	e8 7c fe ff ff       	call   0x402e4c
402fd0:	59                   	pop    %ecx
402fd1:	59                   	pop    %ecx
402fd2:	85 c0                	test   %eax,%eax
402fd4:	74 27                	je     0x402ffd
402fd6:	83 78 24 00          	cmpl   $0x0,0x24(%eax)
402fda:	7c 21                	jl     0x402ffd
402fdc:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
402fe3:	b0 01                	mov    $0x1,%al
402fe5:	eb 1f                	jmp    0x403006
402fe7:	8b 45 ec             	mov    -0x14(%ebp),%eax
402fea:	8b 00                	mov    (%eax),%eax
402fec:	33 c9                	xor    %ecx,%ecx
402fee:	81 38 05 00 00 c0    	cmpl   $0xc0000005,(%eax)
402ff4:	0f 94 c1             	sete   %cl
402ff7:	8b c1                	mov    %ecx,%eax
402ff9:	c3                   	ret
402ffa:	8b 65 e8             	mov    -0x18(%ebp),%esp
402ffd:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
403004:	32 c0                	xor    %al,%al
403006:	8b 4d f0             	mov    -0x10(%ebp),%ecx
403009:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
403010:	59                   	pop    %ecx
403011:	5f                   	pop    %edi
403012:	5e                   	pop    %esi
403013:	5b                   	pop    %ebx
403014:	c9                   	leave
403015:	c3                   	ret
403016:	55                   	push   %ebp
403017:	8b ec                	mov    %esp,%ebp
403019:	e8 0b 06 00 00       	call   0x403629
40301e:	85 c0                	test   %eax,%eax
403020:	74 0f                	je     0x403031
403022:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
403026:	75 09                	jne    0x403031
403028:	33 c0                	xor    %eax,%eax
40302a:	b9 7c 69 41 00       	mov    $0x41697c,%ecx
40302f:	87 01                	xchg   %eax,(%ecx)
403031:	5d                   	pop    %ebp
403032:	c3                   	ret
403033:	55                   	push   %ebp
403034:	8b ec                	mov    %esp,%ebp
403036:	80 3d 80 69 41 00 00 	cmpb   $0x0,0x416980
40303d:	74 06                	je     0x403045
40303f:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
403043:	75 12                	jne    0x403057
403045:	ff 75 08             	push   0x8(%ebp)
403048:	e8 86 3e 00 00       	call   0x406ed3
40304d:	ff 75 08             	push   0x8(%ebp)
403050:	e8 38 0f 00 00       	call   0x403f8d
403055:	59                   	pop    %ecx
403056:	59                   	pop    %ecx
403057:	b0 01                	mov    $0x1,%al
403059:	5d                   	pop    %ebp
40305a:	c3                   	ret
40305b:	55                   	push   %ebp
40305c:	8b ec                	mov    %esp,%ebp
40305e:	83 3d 84 69 41 00 ff 	cmpl   $0xffffffff,0x416984
403065:	ff 75 08             	push   0x8(%ebp)
403068:	75 07                	jne    0x403071
40306a:	e8 a7 3c 00 00       	call   0x406d16
40306f:	eb 0b                	jmp    0x40307c
403071:	68 84 69 41 00       	push   $0x416984
403076:	e8 18 3d 00 00       	call   0x406d93
40307b:	59                   	pop    %ecx
40307c:	f7 d8                	neg    %eax
40307e:	59                   	pop    %ecx
40307f:	1b c0                	sbb    %eax,%eax
403081:	f7 d0                	not    %eax
403083:	23 45 08             	and    0x8(%ebp),%eax
403086:	5d                   	pop    %ebp
403087:	c3                   	ret
403088:	55                   	push   %ebp
403089:	8b ec                	mov    %esp,%ebp
40308b:	ff 75 08             	push   0x8(%ebp)
40308e:	e8 c8 ff ff ff       	call   0x40305b
403093:	f7 d8                	neg    %eax
403095:	59                   	pop    %ecx
403096:	1b c0                	sbb    %eax,%eax
403098:	f7 d8                	neg    %eax
40309a:	48                   	dec    %eax
40309b:	5d                   	pop    %ebp
40309c:	c3                   	ret
40309d:	55                   	push   %ebp
40309e:	8b ec                	mov    %esp,%ebp
4030a0:	83 ec 14             	sub    $0x14,%esp
4030a3:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
4030a7:	8d 45 f4             	lea    -0xc(%ebp),%eax
4030aa:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
4030ae:	50                   	push   %eax
4030af:	ff 15 28 f0 40 00    	call   *0x40f028
4030b5:	8b 45 f8             	mov    -0x8(%ebp),%eax
4030b8:	33 45 f4             	xor    -0xc(%ebp),%eax
4030bb:	89 45 fc             	mov    %eax,-0x4(%ebp)