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
401fb7:	03 74 24 0c          	add    0xc(%esp),%esi
401fbb:	3b c6                	cmp    %esi,%eax
401fbd:	73 08                	jae    0x401fc7
401fbf:	e8 6c fd ff ff       	call   0x401d30
401fc4:	01 47 04             	add    %eax,0x4(%edi)
401fc7:	8b 07                	mov    (%edi),%eax
401fc9:	03 47 04             	add    0x4(%edi),%eax
401fcc:	3b f0                	cmp    %eax,%esi
401fce:	75 11                	jne    0x401fe1
401fd0:	83 e8 04             	sub    $0x4,%eax
401fd3:	ba 04 00 00 00       	mov    $0x4,%edx
401fd8:	e8 53 fc ff ff       	call   0x401c30
401fdd:	83 6f 04 04          	subl   $0x4,0x4(%edi)
401fe1:	8b 07                	mov    (%edi),%eax
401fe3:	a3 08 96 42 00       	mov    %eax,0x429608
401fe8:	8b 47 04             	mov    0x4(%edi),%eax
401feb:	a3 04 96 42 00       	mov    %eax,0x429604
401ff0:	b0 01                	mov    $0x1,%al
401ff2:	83 c4 10             	add    $0x10,%esp
401ff5:	5f                   	pop    %edi
401ff6:	5e                   	pop    %esi
401ff7:	5b                   	pop    %ebx
401ff8:	c3                   	ret
401ff9:	8d 40 00             	lea    0x0(%eax),%eax
401ffc:	53                   	push   %ebx
401ffd:	83 c4 f8             	add    $0xfffffff8,%esp
402000:	8b d8                	mov    %eax,%ebx
402002:	8b d4                	mov    %esp,%edx
402004:	8d 43 04             	lea    0x4(%ebx),%eax
402007:	e8 f4 f6 ff ff       	call   0x401700
40200c:	83 3c 24 00          	cmpl   $0x0,(%esp)
402010:	74 0b                	je     0x40201d
402012:	8b c4                	mov    %esp,%eax
402014:	e8 57 ff ff ff       	call   0x401f70
402019:	84 c0                	test   %al,%al
40201b:	75 04                	jne    0x402021
40201d:	33 c0                	xor    %eax,%eax
40201f:	eb 02                	jmp    0x402023
402021:	b0 01                	mov    $0x1,%al
402023:	59                   	pop    %ecx
402024:	5a                   	pop    %edx
402025:	5b                   	pop    %ebx
402026:	c3                   	ret
402027:	90                   	nop
402028:	53                   	push   %ebx
402029:	56                   	push   %esi
40202a:	83 c4 f8             	add    $0xfffffff8,%esp
40202d:	8b f2                	mov    %edx,%esi
40202f:	8b d8                	mov    %eax,%ebx
402031:	8b cc                	mov    %esp,%ecx
402033:	8d 56 04             	lea    0x4(%esi),%edx
402036:	8b c3                	mov    %ebx,%eax
402038:	e8 6b f7 ff ff       	call   0x4017a8
40203d:	83 3c 24 00          	cmpl   $0x0,(%esp)
402041:	74 0b                	je     0x40204e
402043:	8b c4                	mov    %esp,%eax
402045:	e8 26 ff ff ff       	call   0x401f70
40204a:	84 c0                	test   %al,%al
40204c:	75 04                	jne    0x402052
40204e:	33 c0                	xor    %eax,%eax
402050:	eb 02                	jmp    0x402054
402052:	b0 01                	mov    $0x1,%al
402054:	59                   	pop    %ecx
402055:	5a                   	pop    %edx
402056:	5e                   	pop    %esi
402057:	5b                   	pop    %ebx
402058:	c3                   	ret
402059:	8d 40 00             	lea    0x0(%eax),%eax
40205c:	51                   	push   %ecx
40205d:	8b d4                	mov    %esp,%edx
40205f:	33 c9                	xor    %ecx,%ecx
402061:	89 0a                	mov    %ecx,(%edx)
402063:	85 c0                	test   %eax,%eax
402065:	79 03                	jns    0x40206a
402067:	83 c0 03             	add    $0x3,%eax
40206a:	c1 f8 02             	sar    $0x2,%eax
40206d:	3d 00 04 00 00       	cmp    $0x400,%eax
402072:	7f 19                	jg     0x40208d
402074:	8b 0d 0c 96 42 00    	mov    0x42960c,%ecx
40207a:	8b 4c 81 f4          	mov    -0xc(%ecx,%eax,4),%ecx
40207e:	89 0a                	mov    %ecx,(%edx)
402080:	83 3a 00             	cmpl   $0x0,(%edx)
402083:	75 08                	jne    0x40208d
402085:	40                   	inc    %eax
402086:	3d 01 04 00 00       	cmp    $0x401,%eax
40208b:	75 e7                	jne    0x402074
40208d:	8b 02                	mov    (%edx),%eax
40208f:	5a                   	pop    %edx
402090:	c3                   	ret
402091:	8d 40 00             	lea    0x0(%eax),%eax
402094:	53                   	push   %ebx
402095:	56                   	push   %esi
402096:	57                   	push   %edi
402097:	55                   	push   %ebp
402098:	83 c4 f4             	add    $0xfffffff4,%esp
40209b:	8b d8                	mov    %eax,%ebx
40209d:	8d 74 24 08          	lea    0x8(%esp),%esi
4020a1:	bf 00 96 42 00       	mov    $0x429600,%edi
4020a6:	bd 04 96 42 00       	mov    $0x429604,%ebp
4020ab:	a1 f8 95 42 00       	mov    0x4295f8,%eax
4020b0:	89 06                	mov    %eax,(%esi)
4020b2:	8b 06                	mov    (%esi),%eax
4020b4:	3b 58 08             	cmp    0x8(%eax),%ebx
4020b7:	0f 8e ab 00 00 00    	jle    0x402168
4020bd:	8b 07                	mov    (%edi),%eax
4020bf:	89 06                	mov    %eax,(%esi)
4020c1:	8b 06                	mov    (%esi),%eax
4020c3:	8b 40 08             	mov    0x8(%eax),%eax
4020c6:	3b d8                	cmp    %eax,%ebx
4020c8:	0f 8e 9a 00 00 00    	jle    0x402168
4020ce:	8b 16                	mov    (%esi),%edx
4020d0:	89 5a 08             	mov    %ebx,0x8(%edx)
4020d3:	8b 16                	mov    (%esi),%edx
4020d5:	8b 52 04             	mov    0x4(%edx),%edx
4020d8:	89 16                	mov    %edx,(%esi)
4020da:	8b 16                	mov    (%esi),%edx
4020dc:	3b 5a 08             	cmp    0x8(%edx),%ebx
4020df:	7f f2                	jg     0x4020d3
4020e1:	8b 17                	mov    (%edi),%edx
4020e3:	89 42 08             	mov    %eax,0x8(%edx)
4020e6:	8b 06                	mov    (%esi),%eax
4020e8:	3b 07                	cmp    (%edi),%eax
4020ea:	74 06                	je     0x4020f2
4020ec:	8b 06                	mov    (%esi),%eax
4020ee:	89 07                	mov    %eax,(%edi)
4020f0:	eb 76                	jmp    0x402168
4020f2:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
4020f8:	7f 0e                	jg     0x402108
4020fa:	8b c3                	mov    %ebx,%eax
4020fc:	e8 5b ff ff ff       	call   0x40205c
402101:	89 06                	mov    %eax,(%esi)
402103:	83 3e 00             	cmpl   $0x0,(%esi)
402106:	75 60                	jne    0x402168
402108:	8b c3                	mov    %ebx,%eax
40210a:	e8 ed fe ff ff       	call   0x401ffc
40210f:	84 c0                	test   %al,%al
402111:	75 0a                	jne    0x40211d
402113:	33 c0                	xor    %eax,%eax
402115:	89 04 24             	mov    %eax,(%esp)
402118:	e9 b4 00 00 00       	jmp    0x4021d1
40211d:	3b 5d 00             	cmp    0x0(%ebp),%ebx
402120:	7f 89                	jg     0x4020ab
402122:	29 5d 00             	sub    %ebx,0x0(%ebp)
402125:	83 7d 00 0c          	cmpl   $0xc,0x0(%ebp)
402129:	7d 08                	jge    0x402133
40212b:	03 5d 00             	add    0x0(%ebp),%ebx
40212e:	33 c0                	xor    %eax,%eax
402130:	89 45 00             	mov    %eax,0x0(%ebp)
402133:	a1 08 96 42 00       	mov    0x429608,%eax
402138:	89 44 24 04          	mov    %eax,0x4(%esp)
40213c:	01 1d 08 96 42 00    	add    %ebx,0x429608
402142:	8b c3                	mov    %ebx,%eax
402144:	83 c8 02             	or     $0x2,%eax
402147:	8b 54 24 04          	mov    0x4(%esp),%edx
40214b:	89 02                	mov    %eax,(%edx)
40214d:	8b 44 24 04          	mov    0x4(%esp),%eax
402151:	83 c0 04             	add    $0x4,%eax
402154:	89 04 24             	mov    %eax,(%esp)
402157:	ff 05 9c 95 42 00    	incl   0x42959c
40215d:	83 eb 04             	sub    $0x4,%ebx
402160:	01 1d a0 95 42 00    	add    %ebx,0x4295a0
402166:	eb 69                	jmp    0x4021d1
402168:	8b 06                	mov    (%esi),%eax
40216a:	e8 e9 f9 ff ff       	call   0x401b58
40216f:	8b 06                	mov    (%esi),%eax
402171:	8b 50 08             	mov    0x8(%eax),%edx
402174:	8b c2                	mov    %edx,%eax
402176:	2b c3                	sub    %ebx,%eax
402178:	83 f8 0c             	cmp    $0xc,%eax
40217b:	7c 0c                	jl     0x402189
40217d:	8b 16                	mov    (%esi),%edx
40217f:	03 d3                	add    %ebx,%edx
402181:	92                   	xchg   %eax,%edx
402182:	e8 a5 fc ff ff       	call   0x401e2c
402187:	eb 1e                	jmp    0x4021a7