401dbf:	8b 04 24             	mov    (%esp),%eax
401dc2:	8b 54 24 04          	mov    0x4(%esp),%edx
401dc6:	89 10                	mov    %edx,(%eax)
401dc8:	8b 44 24 04          	mov    0x4(%esp),%eax
401dcc:	8b 14 24             	mov    (%esp),%edx
401dcf:	89 50 04             	mov    %edx,0x4(%eax)
401dd2:	eb 19                	jmp    0x401ded
401dd4:	8b 00                	mov    (%eax),%eax
401dd6:	89 44 24 04          	mov    %eax,0x4(%esp)
401dda:	8b 04 24             	mov    (%esp),%eax
401ddd:	8b 54 24 04          	mov    0x4(%esp),%edx
401de1:	89 10                	mov    %edx,(%eax)
401de3:	8b 44 24 04          	mov    0x4(%esp),%eax
401de7:	8b 14 24             	mov    (%esp),%edx
401dea:	89 50 04             	mov    %edx,0x4(%eax)
401ded:	59                   	pop    %ecx
401dee:	5a                   	pop    %edx
401def:	5b                   	pop    %ebx
401df0:	c3                   	ret
401df1:	8d 40 00             	lea    0x0(%eax),%eax
401df4:	53                   	push   %ebx
401df5:	51                   	push   %ecx
401df6:	8b cc                	mov    %esp,%ecx
401df8:	8b 15 20 16 46 00    	mov    0x461620,%edx
401dfe:	89 11                	mov    %edx,(%ecx)
401e00:	eb 18                	jmp    0x401e1a
401e02:	8b 11                	mov    (%ecx),%edx
401e04:	8b 52 08             	mov    0x8(%edx),%edx
401e07:	3b c2                	cmp    %edx,%eax
401e09:	72 09                	jb     0x401e14
401e0b:	8b 19                	mov    (%ecx),%ebx
401e0d:	03 53 0c             	add    0xc(%ebx),%edx
401e10:	3b c2                	cmp    %edx,%eax
401e12:	72 1d                	jb     0x401e31
401e14:	8b 11                	mov    (%ecx),%edx
401e16:	8b 12                	mov    (%edx),%edx
401e18:	89 11                	mov    %edx,(%ecx)
401e1a:	ba 20 16 46 00       	mov    $0x461620,%edx
401e1f:	3b 11                	cmp    (%ecx),%edx
401e21:	75 df                	jne    0x401e02
401e23:	c7 05 c0 15 46 00 03 	movl   $0x3,0x4615c0
401e2a:	00 00 00
401e2d:	33 c0                	xor    %eax,%eax
401e2f:	89 01                	mov    %eax,(%ecx)
401e31:	8b 01                	mov    (%ecx),%eax
401e33:	5a                   	pop    %edx
401e34:	5b                   	pop    %ebx
401e35:	c3                   	ret
401e36:	8b c0                	mov    %eax,%eax
401e38:	53                   	push   %ebx
401e39:	51                   	push   %ecx
401e3a:	8b ca                	mov    %edx,%ecx
401e3c:	83 e9 04             	sub    $0x4,%ecx
401e3f:	8d 1c 01             	lea    (%ecx,%eax,1),%ebx
401e42:	89 1c 24             	mov    %ebx,(%esp)
401e45:	83 fa 10             	cmp    $0x10,%edx
401e48:	7c 13                	jl     0x401e5d
401e4a:	8b 14 24             	mov    (%esp),%edx
401e4d:	c7 02 07 00 00 80    	movl   $0x80000007,(%edx)
401e53:	8b d1                	mov    %ecx,%edx
401e55:	e8 da 01 00 00       	call   0x402034
401e5a:	5a                   	pop    %edx
401e5b:	5b                   	pop    %ebx
401e5c:	c3                   	ret
401e5d:	83 fa 04             	cmp    $0x4,%edx
401e60:	7c 0f                	jl     0x401e71
401e62:	8b ca                	mov    %edx,%ecx
401e64:	81 c9 02 00 00 80    	or     $0x80000002,%ecx
401e6a:	89 08                	mov    %ecx,(%eax)
401e6c:	8b 04 24             	mov    (%esp),%eax
401e6f:	89 08                	mov    %ecx,(%eax)
401e71:	5a                   	pop    %edx
401e72:	5b                   	pop    %ebx
401e73:	c3                   	ret
401e74:	ff 05 ac 15 46 00    	incl   0x4615ac
401e7a:	8b d0                	mov    %eax,%edx
401e7c:	83 ea 04             	sub    $0x4,%edx
401e7f:	8b 12                	mov    (%edx),%edx
401e81:	81 e2 fc ff ff 7f    	and    $0x7ffffffc,%edx
401e87:	83 ea 04             	sub    $0x4,%edx
401e8a:	01 15 b0 15 46 00    	add    %edx,0x4615b0
401e90:	e8 fb 06 00 00       	call   0x402590
401e95:	c3                   	ret
401e96:	8b c0                	mov    %eax,%eax
401e98:	83 fa 0c             	cmp    $0xc,%edx
401e9b:	7c 0e                	jl     0x401eab
401e9d:	83 ca 02             	or     $0x2,%edx
401ea0:	89 10                	mov    %edx,(%eax)
401ea2:	83 c0 04             	add    $0x4,%eax
401ea5:	e8 ca ff ff ff       	call   0x401e74
401eaa:	c3                   	ret
401eab:	83 fa 04             	cmp    $0x4,%edx
401eae:	7c 0a                	jl     0x401eba
401eb0:	8b ca                	mov    %edx,%ecx
401eb2:	81 c9 02 00 00 80    	or     $0x80000002,%ecx
401eb8:	89 08                	mov    %ecx,(%eax)
401eba:	03 c2                	add    %edx,%eax
401ebc:	83 20 fe             	andl   $0xfffffffe,(%eax)
401ebf:	c3                   	ret
401ec0:	53                   	push   %ebx
401ec1:	56                   	push   %esi
401ec2:	51                   	push   %ecx
401ec3:	8b d0                	mov    %eax,%edx
401ec5:	83 ea 04             	sub    $0x4,%edx
401ec8:	8b 12                	mov    (%edx),%edx
401eca:	8b ca                	mov    %edx,%ecx
401ecc:	81 e1 02 00 00 80    	and    $0x80000002,%ecx
401ed2:	81 f9 02 00 00 80    	cmp    $0x80000002,%ecx
401ed8:	74 0a                	je     0x401ee4
401eda:	c7 05 c0 15 46 00 04 	movl   $0x4,0x4615c0
401ee1:	00 00 00
401ee4:	8b da                	mov    %edx,%ebx
401ee6:	81 e3 fc ff ff 7f    	and    $0x7ffffffc,%ebx
401eec:	2b c3                	sub    %ebx,%eax
401eee:	8b c8                	mov    %eax,%ecx
401ef0:	33 11                	xor    (%ecx),%edx
401ef2:	f7 c2 fe ff ff ff    	test   $0xfffffffe,%edx
401ef8:	74 0a                	je     0x401f04
401efa:	c7 05 c0 15 46 00 05 	movl   $0x5,0x4615c0
401f01:	00 00 00
401f04:	f6 01 01             	testb  $0x1,(%ecx)
401f07:	74 29                	je     0x401f32
401f09:	8b d0                	mov    %eax,%edx
401f0b:	83 ea 0c             	sub    $0xc,%edx
401f0e:	8b 72 08             	mov    0x8(%edx),%esi
401f11:	2b c6                	sub    %esi,%eax
401f13:	89 04 24             	mov    %eax,(%esp)
401f16:	8b 04 24             	mov    (%esp),%eax
401f19:	3b 70 08             	cmp    0x8(%eax),%esi
401f1c:	74 0a                	je     0x401f28
401f1e:	c7 05 c0 15 46 00 06 	movl   $0x6,0x4615c0
401f25:	00 00 00
401f28:	8b 04 24             	mov    (%esp),%eax
401f2b:	e8 30 fe ff ff       	call   0x401d60
401f30:	03 de                	add    %esi,%ebx
401f32:	8b c3                	mov    %ebx,%eax
401f34:	5a                   	pop    %edx
401f35:	5e                   	pop    %esi
401f36:	5b                   	pop    %ebx
401f37:	c3                   	ret
401f38:	53                   	push   %ebx
401f39:	56                   	push   %esi
401f3a:	51                   	push   %ecx
401f3b:	8b d8                	mov    %eax,%ebx
401f3d:	33 f6                	xor    %esi,%esi
401f3f:	8b 03                	mov    (%ebx),%eax
401f41:	a9 00 00 00 80       	test   $0x80000000,%eax
401f46:	74 0b                	je     0x401f53
401f48:	25 fc ff ff 7f       	and    $0x7ffffffc,%eax
401f4d:	03 f0                	add    %eax,%esi
401f4f:	03 d8                	add    %eax,%ebx
401f51:	8b 03                	mov    (%ebx),%eax
401f53:	a8 02                	test   $0x2,%al
401f55:	75 18                	jne    0x401f6f
401f57:	89 1c 24             	mov    %ebx,(%esp)
401f5a:	8b 04 24             	mov    (%esp),%eax
401f5d:	e8 fe fd ff ff       	call   0x401d60
401f62:	8b 04 24             	mov    (%esp),%eax
401f65:	8b 40 08             	mov    0x8(%eax),%eax
401f68:	03 f0                	add    %eax,%esi
401f6a:	03 d8                	add    %eax,%ebx
401f6c:	83 23 fe             	andl   $0xfffffffe,(%ebx)
401f6f:	8b c6                	mov    %esi,%eax
401f71:	5a                   	pop    %edx
401f72:	5e                   	pop    %esi
401f73:	5b                   	pop    %ebx
401f74:	c3                   	ret
401f75:	8d 40 00             	lea    0x0(%eax),%eax
401f78:	53                   	push   %ebx
401f79:	56                   	push   %esi
401f7a:	57                   	push   %edi
401f7b:	55                   	push   %ebp
401f7c:	83 c4 f4             	add    $0xfffffff4,%esp
401f7f:	8b f2                	mov    %edx,%esi
401f81:	8b e8                	mov    %eax,%ebp
401f83:	33 db                	xor    %ebx,%ebx
401f85:	8b c5                	mov    %ebp,%eax
401f87:	e8 68 fe ff ff       	call   0x401df4
401f8c:	89 44 24 08          	mov    %eax,0x8(%esp)
401f90:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
401f95:	0f 84 8f 00 00 00    	je     0x40202a
401f9b:	8b 44 24 08          	mov    0x8(%esp),%eax
401f9f:	8b 78 08             	mov    0x8(%eax),%edi
401fa2:	8b c7                	mov    %edi,%eax
401fa4:	8b 54 24 08          	mov    0x8(%esp),%edx
401fa8:	03 42 0c             	add    0xc(%edx),%eax
401fab:	8b d0                	mov    %eax,%edx
401fad:	8d 0c 2e             	lea    (%esi,%ebp,1),%ecx
401fb0:	2b d1                	sub    %ecx,%edx
401fb2:	83 fa 0c             	cmp    $0xc,%edx
401fb5:	7f 04                	jg     0x401fbb
401fb7:	8b f0                	mov    %eax,%esi
401fb9:	2b f5                	sub    %ebp,%esi
401fbb:	8b c5                	mov    %ebp,%eax
401fbd:	2b c7                	sub    %edi,%eax
401fbf:	83 f8 0c             	cmp    $0xc,%eax
401fc2:	7d 16                	jge    0x401fda
401fc4:	8b 44 24 08          	mov    0x8(%esp),%eax
401fc8:	8b d5                	mov    %ebp,%edx
401fca:	2b 50 08             	sub    0x8(%eax),%edx
401fcd:	03 d6                	add    %esi,%edx
401fcf:	8b cc                	mov    %esp,%ecx
401fd1:	8b c7                	mov    %edi,%eax
401fd3:	e8 1c fb ff ff       	call   0x401af4
401fd8:	eb 0f                	jmp    0x401fe9
401fda:	8b cc                	mov    %esp,%ecx
401fdc:	8b d6                	mov    %esi,%edx
401fde:	83 ea 04             	sub    $0x4,%edx
401fe1:	8d 45 04             	lea    0x4(%ebp),%eax
401fe4:	e8 0b fb ff ff       	call   0x401af4
401fe9:	8b 3c 24             	mov    (%esp),%edi
401fec:	85 ff                	test   %edi,%edi
401fee:	74 3a                	je     0x40202a
401ff0:	8b d7                	mov    %edi,%edx
401ff2:	2b d5                	sub    %ebp,%edx
401ff4:	8b c5                	mov    %ebp,%eax
401ff6:	e8 3d fe ff ff       	call   0x401e38
401ffb:	8b 54 24 08          	mov    0x8(%esp),%edx
401fff:	8b 52 08             	mov    0x8(%edx),%edx
402002:	8b 4c 24 08          	mov    0x8(%esp),%ecx
402006:	03 51 0c             	add    0xc(%ecx),%edx
402009:	8b c7                	mov    %edi,%eax
40200b:	03 44 24 04          	add    0x4(%esp),%eax
40200f:	3b d0                	cmp    %eax,%edx
402011:	76 0a                	jbe    0x40201d
402013:	8d 14 2e             	lea    (%esi,%ebp,1),%edx
402016:	2b d0                	sub    %eax,%edx
402018:	e8 7b fe ff ff       	call   0x401e98
40201d:	8b d4                	mov    %esp,%edx
40201f:	8b 44 24 08          	mov    0x8(%esp),%eax
402023:	e8 fc f4 ff ff       	call   0x401524
402028:	b3 01                	mov    $0x1,%bl
40202a:	8b c3                	mov    %ebx,%eax
40202c:	83 c4 0c             	add    $0xc,%esp
40202f:	5d                   	pop    %ebp
402030:	5f                   	pop    %edi
402031:	5e                   	pop    %esi
402032:	5b                   	pop    %ebx
402033:	c3                   	ret
402034:	53                   	push   %ebx
402035:	56                   	push   %esi
402036:	83 c4 f4             	add    $0xfffffff4,%esp
402039:	8b da                	mov    %edx,%ebx
40203b:	8b f0                	mov    %eax,%esi
40203d:	89 34 24             	mov    %esi,(%esp)
402040:	8b 04 24             	mov    (%esp),%eax
402043:	89 58 08             	mov    %ebx,0x8(%eax)
402046:	8b 04 24             	mov    (%esp),%eax
402049:	03 c3                	add    %ebx,%eax
40204b:	83 e8 0c             	sub    $0xc,%eax
40204e:	89 58 08             	mov    %ebx,0x8(%eax)
402051:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
402057:	7f 76                	jg     0x4020cf
402059:	8b c3                	mov    %ebx,%eax
40205b:	85 c0                	test   %eax,%eax
40205d:	79 03                	jns    0x402062
40205f:	83 c0 03             	add    $0x3,%eax
402062:	c1 f8 02             	sar    $0x2,%eax
402065:	8b 15 1c 16 46 00    	mov    0x46161c,%edx
40206b:	8b 54 82 f4          	mov    -0xc(%edx,%eax,4),%edx
40206f:	89 54 24 04          	mov    %edx,0x4(%esp)
402073:	83 7c 24 04 00       	cmpl   $0x0,0x4(%esp)
402078:	75 23                	jne    0x40209d
40207a:	8b 15 1c 16 46 00    	mov    0x46161c,%edx
402080:	8b 0c 24             	mov    (%esp),%ecx
402083:	89 4c 82 f4          	mov    %ecx,-0xc(%edx,%eax,4)
402087:	8b 04 24             	mov    (%esp),%eax
40208a:	8b 14 24             	mov    (%esp),%edx
40208d:	89 50 04             	mov    %edx,0x4(%eax)
402090:	8b 04 24             	mov    (%esp),%eax
402093:	8b 14 24             	mov    (%esp),%edx
402096:	89 10                	mov    %edx,(%eax)
402098:	e9 88 00 00 00       	jmp    0x402125
40209d:	8b 44 24 04          	mov    0x4(%esp),%eax
4020a1:	8b 00                	mov    (%eax),%eax
4020a3:	89 44 24 08          	mov    %eax,0x8(%esp)
4020a7:	8b 04 24             	mov    (%esp),%eax
4020aa:	8b 54 24 04          	mov    0x4(%esp),%edx
4020ae:	89 50 04             	mov    %edx,0x4(%eax)
4020b1:	8b 04 24             	mov    (%esp),%eax
4020b4:	8b 54 24 08          	mov    0x8(%esp),%edx
4020b8:	89 10                	mov    %edx,(%eax)
4020ba:	8b 44 24 04          	mov    0x4(%esp),%eax
4020be:	8b 14 24             	mov    (%esp),%edx
4020c1:	89 10                	mov    %edx,(%eax)
4020c3:	8b 44 24 08          	mov    0x8(%esp),%eax
4020c7:	8b 14 24             	mov    (%esp),%edx
4020ca:	89 50 04             	mov    %edx,0x4(%eax)
4020cd:	eb 56                	jmp    0x402125
4020cf:	81 fb 00 3c 00 00    	cmp    $0x3c00,%ebx
4020d5:	7c 0d                	jl     0x4020e4
4020d7:	8b d3                	mov    %ebx,%edx
4020d9:	8b c6                	mov    %esi,%eax
4020db:	e8 98 fe ff ff       	call   0x401f78
4020e0:	84 c0                	test   %al,%al
4020e2:	75 41                	jne    0x402125
4020e4:	a1 10 16 46 00       	mov    0x461610,%eax
4020e9:	89 44 24 04          	mov    %eax,0x4(%esp)
4020ed:	8b 04 24             	mov    (%esp),%eax
4020f0:	a3 10 16 46 00       	mov    %eax,0x461610
4020f5:	8b 44 24 04          	mov    0x4(%esp),%eax
4020f9:	8b 00                	mov    (%eax),%eax
4020fb:	89 44 24 08          	mov    %eax,0x8(%esp)
4020ff:	8b 04 24             	mov    (%esp),%eax
402102:	8b 54 24 04          	mov    0x4(%esp),%edx
402106:	89 50 04             	mov    %edx,0x4(%eax)
402109:	8b 04 24             	mov    (%esp),%eax
40210c:	8b 54 24 08          	mov    0x8(%esp),%edx
402110:	89 10                	mov    %edx,(%eax)
402112:	8b 44 24 04          	mov    0x4(%esp),%eax
402116:	8b 14 24             	mov    (%esp),%edx
402119:	89 10                	mov    %edx,(%eax)
40211b:	8b 44 24 08          	mov    0x8(%esp),%eax
40211f:	8b 14 24             	mov    (%esp),%edx
402122:	89 50 04             	mov    %edx,0x4(%eax)
402125:	83 c4 0c             	add    $0xc,%esp
402128:	5e                   	pop    %esi
402129:	5b                   	pop    %ebx
40212a:	c3                   	ret
40212b:	90                   	nop
40212c:	83 3d 14 16 46 00 00 	cmpl   $0x0,0x461614
402133:	7e 40                	jle    0x402175
402135:	83 3d 14 16 46 00 0c 	cmpl   $0xc,0x461614
40213c:	7d 0c                	jge    0x40214a
40213e:	c7 05 c0 15 46 00 07 	movl   $0x7,0x4615c0
402145:	00 00 00
402148:	eb 2b                	jmp    0x402175
40214a:	a1 14 16 46 00       	mov    0x461614,%eax
40214f:	83 c8 02             	or     $0x2,%eax
402152:	8b 15 18 16 46 00    	mov    0x461618,%edx
402158:	89 02                	mov    %eax,(%edx)
40215a:	a1 18 16 46 00       	mov    0x461618,%eax
40215f:	83 c0 04             	add    $0x4,%eax
402162:	e8 0d fd ff ff       	call   0x401e74
402167:	33 c0                	xor    %eax,%eax
402169:	a3 18 16 46 00       	mov    %eax,0x461618
40216e:	33 c0                	xor    %eax,%eax
402170:	a3 14 16 46 00       	mov    %eax,0x461614
402175:	c3                   	ret
402176:	8b c0                	mov    %eax,%eax
402178:	53                   	push   %ebx
402179:	56                   	push   %esi
40217a:	57                   	push   %edi
40217b:	83 c4 f0             	add    $0xfffffff0,%esp
40217e:	8b f0                	mov    %eax,%esi
402180:	8d 3c 24             	lea    (%esp),%edi
402183:	a5                   	movsl  %ds:(%esi),%es:(%edi)
402184:	a5                   	movsl  %ds:(%esi),%es:(%edi)
402185:	8b fc                	mov    %esp,%edi
402187:	e8 a0 ff ff ff       	call   0x40212c