401be8:	c3                   	ret
401be9:	8d 40 00             	lea    0x0(%eax),%eax
401bec:	53                   	push   %ebx
401bed:	51                   	push   %ecx
401bee:	8b cc                	mov    %esp,%ecx
401bf0:	8b 15 10 96 42 00    	mov    0x429610,%edx
401bf6:	89 11                	mov    %edx,(%ecx)
401bf8:	eb 18                	jmp    0x401c12
401bfa:	8b 11                	mov    (%ecx),%edx
401bfc:	8b 52 08             	mov    0x8(%edx),%edx
401bff:	3b c2                	cmp    %edx,%eax
401c01:	72 09                	jb     0x401c0c
401c03:	8b 19                	mov    (%ecx),%ebx
401c05:	03 53 0c             	add    0xc(%ebx),%edx
401c08:	3b c2                	cmp    %edx,%eax
401c0a:	72 1d                	jb     0x401c29
401c0c:	8b 11                	mov    (%ecx),%edx
401c0e:	8b 12                	mov    (%edx),%edx
401c10:	89 11                	mov    %edx,(%ecx)
401c12:	ba 10 96 42 00       	mov    $0x429610,%edx
401c17:	3b 11                	cmp    (%ecx),%edx
401c19:	75 df                	jne    0x401bfa
401c1b:	c7 05 b0 95 42 00 03 	movl   $0x3,0x4295b0
401c22:	00 00 00
401c25:	33 c0                	xor    %eax,%eax
401c27:	89 01                	mov    %eax,(%ecx)
401c29:	8b 01                	mov    (%ecx),%eax
401c2b:	5a                   	pop    %edx
401c2c:	5b                   	pop    %ebx
401c2d:	c3                   	ret
401c2e:	8b c0                	mov    %eax,%eax
401c30:	53                   	push   %ebx
401c31:	51                   	push   %ecx
401c32:	8b ca                	mov    %edx,%ecx
401c34:	83 e9 04             	sub    $0x4,%ecx
401c37:	8d 1c 01             	lea    (%ecx,%eax,1),%ebx
401c3a:	89 1c 24             	mov    %ebx,(%esp)
401c3d:	83 fa 10             	cmp    $0x10,%edx
401c40:	7c 13                	jl     0x401c55
401c42:	8b 14 24             	mov    (%esp),%edx
401c45:	c7 02 07 00 00 80    	movl   $0x80000007,(%edx)
401c4b:	8b d1                	mov    %ecx,%edx
401c4d:	e8 da 01 00 00       	call   0x401e2c
401c52:	5a                   	pop    %edx
401c53:	5b                   	pop    %ebx
401c54:	c3                   	ret
401c55:	83 fa 04             	cmp    $0x4,%edx
401c58:	7c 0f                	jl     0x401c69
401c5a:	8b ca                	mov    %edx,%ecx
401c5c:	81 c9 02 00 00 80    	or     $0x80000002,%ecx
401c62:	89 08                	mov    %ecx,(%eax)
401c64:	8b 04 24             	mov    (%esp),%eax
401c67:	89 08                	mov    %ecx,(%eax)
401c69:	5a                   	pop    %edx
401c6a:	5b                   	pop    %ebx
401c6b:	c3                   	ret
401c6c:	ff 05 9c 95 42 00    	incl   0x42959c
401c72:	8b d0                	mov    %eax,%edx
401c74:	83 ea 04             	sub    $0x4,%edx
401c77:	8b 12                	mov    (%edx),%edx
401c79:	81 e2 fc ff ff 7f    	and    $0x7ffffffc,%edx
401c7f:	83 ea 04             	sub    $0x4,%edx
401c82:	01 15 a0 95 42 00    	add    %edx,0x4295a0
401c88:	e8 fb 06 00 00       	call   0x402388
401c8d:	c3                   	ret
401c8e:	8b c0                	mov    %eax,%eax
401c90:	83 fa 0c             	cmp    $0xc,%edx
401c93:	7c 0e                	jl     0x401ca3
401c95:	83 ca 02             	or     $0x2,%edx
401c98:	89 10                	mov    %edx,(%eax)
401c9a:	83 c0 04             	add    $0x4,%eax
401c9d:	e8 ca ff ff ff       	call   0x401c6c
401ca2:	c3                   	ret
401ca3:	83 fa 04             	cmp    $0x4,%edx
401ca6:	7c 0a                	jl     0x401cb2
401ca8:	8b ca                	mov    %edx,%ecx
401caa:	81 c9 02 00 00 80    	or     $0x80000002,%ecx
401cb0:	89 08                	mov    %ecx,(%eax)
401cb2:	03 c2                	add    %edx,%eax
401cb4:	83 20 fe             	andl   $0xfffffffe,(%eax)
401cb7:	c3                   	ret
401cb8:	53                   	push   %ebx
401cb9:	56                   	push   %esi
401cba:	51                   	push   %ecx
401cbb:	8b d0                	mov    %eax,%edx
401cbd:	83 ea 04             	sub    $0x4,%edx
401cc0:	8b 12                	mov    (%edx),%edx
401cc2:	8b ca                	mov    %edx,%ecx
401cc4:	81 e1 02 00 00 80    	and    $0x80000002,%ecx
401cca:	81 f9 02 00 00 80    	cmp    $0x80000002,%ecx
401cd0:	74 0a                	je     0x401cdc
401cd2:	c7 05 b0 95 42 00 04 	movl   $0x4,0x4295b0
401cd9:	00 00 00
401cdc:	8b da                	mov    %edx,%ebx
401cde:	81 e3 fc ff ff 7f    	and    $0x7ffffffc,%ebx
401ce4:	2b c3                	sub    %ebx,%eax
401ce6:	8b c8                	mov    %eax,%ecx
401ce8:	33 11                	xor    (%ecx),%edx
401cea:	f7 c2 fe ff ff ff    	test   $0xfffffffe,%edx
401cf0:	74 0a                	je     0x401cfc
401cf2:	c7 05 b0 95 42 00 05 	movl   $0x5,0x4295b0
401cf9:	00 00 00
401cfc:	f6 01 01             	testb  $0x1,(%ecx)
401cff:	74 29                	je     0x401d2a
401d01:	8b d0                	mov    %eax,%edx
401d03:	83 ea 0c             	sub    $0xc,%edx
401d06:	8b 72 08             	mov    0x8(%edx),%esi
401d09:	2b c6                	sub    %esi,%eax
401d0b:	89 04 24             	mov    %eax,(%esp)
401d0e:	8b 04 24             	mov    (%esp),%eax
401d11:	3b 70 08             	cmp    0x8(%eax),%esi
401d14:	74 0a                	je     0x401d20
401d16:	c7 05 b0 95 42 00 06 	movl   $0x6,0x4295b0
401d1d:	00 00 00
401d20:	8b 04 24             	mov    (%esp),%eax
401d23:	e8 30 fe ff ff       	call   0x401b58
401d28:	03 de                	add    %esi,%ebx
401d2a:	8b c3                	mov    %ebx,%eax
401d2c:	5a                   	pop    %edx
401d2d:	5e                   	pop    %esi
401d2e:	5b                   	pop    %ebx
401d2f:	c3                   	ret
401d30:	53                   	push   %ebx
401d31:	56                   	push   %esi
401d32:	51                   	push   %ecx
401d33:	8b d8                	mov    %eax,%ebx
401d35:	33 f6                	xor    %esi,%esi
401d37:	8b 03                	mov    (%ebx),%eax
401d39:	a9 00 00 00 80       	test   $0x80000000,%eax
401d3e:	74 0b                	je     0x401d4b
401d40:	25 fc ff ff 7f       	and    $0x7ffffffc,%eax
401d45:	03 f0                	add    %eax,%esi
401d47:	03 d8                	add    %eax,%ebx
401d49:	8b 03                	mov    (%ebx),%eax
401d4b:	a8 02                	test   $0x2,%al
401d4d:	75 18                	jne    0x401d67
401d4f:	89 1c 24             	mov    %ebx,(%esp)
401d52:	8b 04 24             	mov    (%esp),%eax
401d55:	e8 fe fd ff ff       	call   0x401b58
401d5a:	8b 04 24             	mov    (%esp),%eax
401d5d:	8b 40 08             	mov    0x8(%eax),%eax
401d60:	03 f0                	add    %eax,%esi
401d62:	03 d8                	add    %eax,%ebx
401d64:	83 23 fe             	andl   $0xfffffffe,(%ebx)
401d67:	8b c6                	mov    %esi,%eax
401d69:	5a                   	pop    %edx
401d6a:	5e                   	pop    %esi
401d6b:	5b                   	pop    %ebx
401d6c:	c3                   	ret
401d6d:	8d 40 00             	lea    0x0(%eax),%eax
401d70:	53                   	push   %ebx
401d71:	56                   	push   %esi
401d72:	57                   	push   %edi
401d73:	55                   	push   %ebp
401d74:	83 c4 f4             	add    $0xfffffff4,%esp
401d77:	8b f2                	mov    %edx,%esi
401d79:	8b e8                	mov    %eax,%ebp
401d7b:	33 db                	xor    %ebx,%ebx
401d7d:	8b c5                	mov    %ebp,%eax
401d7f:	e8 68 fe ff ff       	call   0x401bec
401d84:	89 44 24 08          	mov    %eax,0x8(%esp)
401d88:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
401d8d:	0f 84 8f 00 00 00    	je     0x401e22
401d93:	8b 44 24 08          	mov    0x8(%esp),%eax
401d97:	8b 78 08             	mov    0x8(%eax),%edi
401d9a:	8b c7                	mov    %edi,%eax
401d9c:	8b 54 24 08          	mov    0x8(%esp),%edx
401da0:	03 42 0c             	add    0xc(%edx),%eax
401da3:	8b d0                	mov    %eax,%edx
401da5:	8d 0c 2e             	lea    (%esi,%ebp,1),%ecx
401da8:	2b d1                	sub    %ecx,%edx
401daa:	83 fa 0c             	cmp    $0xc,%edx
401dad:	7f 04                	jg     0x401db3
401daf:	8b f0                	mov    %eax,%esi
401db1:	2b f5                	sub    %ebp,%esi
401db3:	8b c5                	mov    %ebp,%eax
401db5:	2b c7                	sub    %edi,%eax
401db7:	83 f8 0c             	cmp    $0xc,%eax
401dba:	7d 16                	jge    0x401dd2
401dbc:	8b 44 24 08          	mov    0x8(%esp),%eax
401dc0:	8b d5                	mov    %ebp,%edx
401dc2:	2b 50 08             	sub    0x8(%eax),%edx
401dc5:	03 d6                	add    %esi,%edx
401dc7:	8b cc                	mov    %esp,%ecx
401dc9:	8b c7                	mov    %edi,%eax
401dcb:	e8 1c fb ff ff       	call   0x4018ec
401dd0:	eb 0f                	jmp    0x401de1
401dd2:	8b cc                	mov    %esp,%ecx
401dd4:	8b d6                	mov    %esi,%edx
401dd6:	83 ea 04             	sub    $0x4,%edx
401dd9:	8d 45 04             	lea    0x4(%ebp),%eax
401ddc:	e8 0b fb ff ff       	call   0x4018ec
401de1:	8b 3c 24             	mov    (%esp),%edi
401de4:	85 ff                	test   %edi,%edi
401de6:	74 3a                	je     0x401e22
401de8:	8b d7                	mov    %edi,%edx
401dea:	2b d5                	sub    %ebp,%edx
401dec:	8b c5                	mov    %ebp,%eax
401dee:	e8 3d fe ff ff       	call   0x401c30
401df3:	8b 54 24 08          	mov    0x8(%esp),%edx
401df7:	8b 52 08             	mov    0x8(%edx),%edx
401dfa:	8b 4c 24 08          	mov    0x8(%esp),%ecx
401dfe:	03 51 0c             	add    0xc(%ecx),%edx
401e01:	8b c7                	mov    %edi,%eax
401e03:	03 44 24 04          	add    0x4(%esp),%eax
401e07:	3b d0                	cmp    %eax,%edx
401e09:	76 0a                	jbe    0x401e15
401e0b:	8d 14 2e             	lea    (%esi,%ebp,1),%edx
401e0e:	2b d0                	sub    %eax,%edx
401e10:	e8 7b fe ff ff       	call   0x401c90
401e15:	8b d4                	mov    %esp,%edx
401e17:	8b 44 24 08          	mov    0x8(%esp),%eax
401e1b:	e8 fc f4 ff ff       	call   0x40131c
401e20:	b3 01                	mov    $0x1,%bl
401e22:	8b c3                	mov    %ebx,%eax
401e24:	83 c4 0c             	add    $0xc,%esp
401e27:	5d                   	pop    %ebp
401e28:	5f                   	pop    %edi
401e29:	5e                   	pop    %esi
401e2a:	5b                   	pop    %ebx
401e2b:	c3                   	ret
401e2c:	53                   	push   %ebx
401e2d:	56                   	push   %esi
401e2e:	83 c4 f4             	add    $0xfffffff4,%esp
401e31:	8b da                	mov    %edx,%ebx
401e33:	8b f0                	mov    %eax,%esi
401e35:	89 34 24             	mov    %esi,(%esp)
401e38:	8b 04 24             	mov    (%esp),%eax
401e3b:	89 58 08             	mov    %ebx,0x8(%eax)
401e3e:	8b 04 24             	mov    (%esp),%eax
401e41:	03 c3                	add    %ebx,%eax
401e43:	83 e8 0c             	sub    $0xc,%eax
401e46:	89 58 08             	mov    %ebx,0x8(%eax)
401e49:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
401e4f:	7f 76                	jg     0x401ec7
401e51:	8b c3                	mov    %ebx,%eax
401e53:	85 c0                	test   %eax,%eax
401e55:	79 03                	jns    0x401e5a
401e57:	83 c0 03             	add    $0x3,%eax
401e5a:	c1 f8 02             	sar    $0x2,%eax
401e5d:	8b 15 0c 96 42 00    	mov    0x42960c,%edx
401e63:	8b 54 82 f4          	mov    -0xc(%edx,%eax,4),%edx
401e67:	89 54 24 04          	mov    %edx,0x4(%esp)
401e6b:	83 7c 24 04 00       	cmpl   $0x0,0x4(%esp)
401e70:	75 23                	jne    0x401e95
401e72:	8b 15 0c 96 42 00    	mov    0x42960c,%edx
401e78:	8b 0c 24             	mov    (%esp),%ecx
401e7b:	89 4c 82 f4          	mov    %ecx,-0xc(%edx,%eax,4)
401e7f:	8b 04 24             	mov    (%esp),%eax
401e82:	8b 14 24             	mov    (%esp),%edx
401e85:	89 50 04             	mov    %edx,0x4(%eax)
401e88:	8b 04 24             	mov    (%esp),%eax
401e8b:	8b 14 24             	mov    (%esp),%edx
401e8e:	89 10                	mov    %edx,(%eax)
401e90:	e9 88 00 00 00       	jmp    0x401f1d
401e95:	8b 44 24 04          	mov    0x4(%esp),%eax
401e99:	8b 00                	mov    (%eax),%eax
401e9b:	89 44 24 08          	mov    %eax,0x8(%esp)
401e9f:	8b 04 24             	mov    (%esp),%eax
401ea2:	8b 54 24 04          	mov    0x4(%esp),%edx
401ea6:	89 50 04             	mov    %edx,0x4(%eax)
401ea9:	8b 04 24             	mov    (%esp),%eax
401eac:	8b 54 24 08          	mov    0x8(%esp),%edx
401eb0:	89 10                	mov    %edx,(%eax)
401eb2:	8b 44 24 04          	mov    0x4(%esp),%eax
401eb6:	8b 14 24             	mov    (%esp),%edx
401eb9:	89 10                	mov    %edx,(%eax)
401ebb:	8b 44 24 08          	mov    0x8(%esp),%eax
401ebf:	8b 14 24             	mov    (%esp),%edx
401ec2:	89 50 04             	mov    %edx,0x4(%eax)
401ec5:	eb 56                	jmp    0x401f1d
401ec7:	81 fb 00 3c 00 00    	cmp    $0x3c00,%ebx
401ecd:	7c 0d                	jl     0x401edc
401ecf:	8b d3                	mov    %ebx,%edx
401ed1:	8b c6                	mov    %esi,%eax
401ed3:	e8 98 fe ff ff       	call   0x401d70
401ed8:	84 c0                	test   %al,%al
401eda:	75 41                	jne    0x401f1d
401edc:	a1 00 96 42 00       	mov    0x429600,%eax
401ee1:	89 44 24 04          	mov    %eax,0x4(%esp)
401ee5:	8b 04 24             	mov    (%esp),%eax
401ee8:	a3 00 96 42 00       	mov    %eax,0x429600
401eed:	8b 44 24 04          	mov    0x4(%esp),%eax
401ef1:	8b 00                	mov    (%eax),%eax
401ef3:	89 44 24 08          	mov    %eax,0x8(%esp)
401ef7:	8b 04 24             	mov    (%esp),%eax
401efa:	8b 54 24 04          	mov    0x4(%esp),%edx
401efe:	89 50 04             	mov    %edx,0x4(%eax)
401f01:	8b 04 24             	mov    (%esp),%eax
401f04:	8b 54 24 08          	mov    0x8(%esp),%edx
401f08:	89 10                	mov    %edx,(%eax)
401f0a:	8b 44 24 04          	mov    0x4(%esp),%eax
401f0e:	8b 14 24             	mov    (%esp),%edx
401f11:	89 10                	mov    %edx,(%eax)
401f13:	8b 44 24 08          	mov    0x8(%esp),%eax
401f17:	8b 14 24             	mov    (%esp),%edx
401f1a:	89 50 04             	mov    %edx,0x4(%eax)
401f1d:	83 c4 0c             	add    $0xc,%esp
401f20:	5e                   	pop    %esi
401f21:	5b                   	pop    %ebx
401f22:	c3                   	ret
401f23:	90                   	nop
401f24:	83 3d 04 96 42 00 00 	cmpl   $0x0,0x429604
401f2b:	7e 40                	jle    0x401f6d
401f2d:	83 3d 04 96 42 00 0c 	cmpl   $0xc,0x429604
401f34:	7d 0c                	jge    0x401f42
401f36:	c7 05 b0 95 42 00 07 	movl   $0x7,0x4295b0
401f3d:	00 00 00
401f40:	eb 2b                	jmp    0x401f6d
401f42:	a1 04 96 42 00       	mov    0x429604,%eax
401f47:	83 c8 02             	or     $0x2,%eax
401f4a:	8b 15 08 96 42 00    	mov    0x429608,%edx
401f50:	89 02                	mov    %eax,(%edx)
401f52:	a1 08 96 42 00       	mov    0x429608,%eax
401f57:	83 c0 04             	add    $0x4,%eax
401f5a:	e8 0d fd ff ff       	call   0x401c6c
401f5f:	33 c0                	xor    %eax,%eax
401f61:	a3 08 96 42 00       	mov    %eax,0x429608
401f66:	33 c0                	xor    %eax,%eax
401f68:	a3 04 96 42 00       	mov    %eax,0x429604
401f6d:	c3                   	ret
401f6e:	8b c0                	mov    %eax,%eax
401f70:	53                   	push   %ebx
401f71:	56                   	push   %esi
401f72:	57                   	push   %edi
401f73:	83 c4 f0             	add    $0xfffffff0,%esp
401f76:	8b f0                	mov    %eax,%esi
401f78:	8d 3c 24             	lea    (%esp),%edi
401f7b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
401f7c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
401f7d:	8b fc                	mov    %esp,%edi
401f7f:	e8 a0 ff ff ff       	call   0x401f24
401f84:	8d 4c 24 08          	lea    0x8(%esp),%ecx
401f88:	8b d7                	mov    %edi,%edx
401f8a:	b8 10 96 42 00       	mov    $0x429610,%eax
401f8f:	e8 00 f3 ff ff       	call   0x401294
401f94:	8b 5c 24 08          	mov    0x8(%esp),%ebx
401f98:	85 db                	test   %ebx,%ebx
401f9a:	75 04                	jne    0x401fa0
401f9c:	33 c0                	xor    %eax,%eax
401f9e:	eb 52                	jmp    0x401ff2
401fa0:	8b 07                	mov    (%edi),%eax
401fa2:	3b d8                	cmp    %eax,%ebx
401fa4:	73 0a                	jae    0x401fb0
401fa6:	e8 0d fd ff ff       	call   0x401cb8
401fab:	29 07                	sub    %eax,(%edi)
401fad:	01 47 04             	add    %eax,0x4(%edi)
401fb0:	8b 07                	mov    (%edi),%eax
401fb2:	03 47 04             	add    0x4(%edi),%eax
401fb5:	8b f3                	mov    %ebx,%esi