401f09:	eb 3a                	jmp    0x401f45
401f0b:	8b 10                	mov    (%eax),%edx
401f0d:	89 43 04             	mov    %eax,0x4(%ebx)
401f10:	89 13                	mov    %edx,(%ebx)
401f12:	89 18                	mov    %ebx,(%eax)
401f14:	89 5a 04             	mov    %ebx,0x4(%edx)
401f17:	eb 2c                	jmp    0x401f45
401f19:	81 fe 00 3c 00 00    	cmp    $0x3c00,%esi
401f1f:	7c 0d                	jl     0x401f2e
401f21:	8b d6                	mov    %esi,%edx
401f23:	8b c7                	mov    %edi,%eax
401f25:	e8 ea fe ff ff       	call   0x401e14
401f2a:	84 c0                	test   %al,%al
401f2c:	75 17                	jne    0x401f45
401f2e:	a1 18 c6 49 00       	mov    0x49c618,%eax
401f33:	89 1d 18 c6 49 00    	mov    %ebx,0x49c618
401f39:	8b 10                	mov    (%eax),%edx
401f3b:	89 43 04             	mov    %eax,0x4(%ebx)
401f3e:	89 13                	mov    %edx,(%ebx)
401f40:	89 18                	mov    %ebx,(%eax)
401f42:	89 5a 04             	mov    %ebx,0x4(%edx)
401f45:	5f                   	pop    %edi
401f46:	5e                   	pop    %esi
401f47:	5b                   	pop    %ebx
401f48:	c3                   	ret
401f49:	8d 40 00             	lea    0x0(%eax),%eax
401f4c:	83 3d 1c c6 49 00 00 	cmpl   $0x0,0x49c61c
401f53:	7e 40                	jle    0x401f95
401f55:	83 3d 1c c6 49 00 0c 	cmpl   $0xc,0x49c61c
401f5c:	7d 0c                	jge    0x401f6a
401f5e:	c7 05 c8 c5 49 00 07 	movl   $0x7,0x49c5c8
401f65:	00 00 00
401f68:	eb 2b                	jmp    0x401f95
401f6a:	a1 1c c6 49 00       	mov    0x49c61c,%eax
401f6f:	83 c8 02             	or     $0x2,%eax
401f72:	8b 15 20 c6 49 00    	mov    0x49c620,%edx
401f78:	89 02                	mov    %eax,(%edx)
401f7a:	a1 20 c6 49 00       	mov    0x49c620,%eax
401f7f:	83 c0 04             	add    $0x4,%eax
401f82:	e8 99 fd ff ff       	call   0x401d20
401f87:	33 c0                	xor    %eax,%eax
401f89:	a3 20 c6 49 00       	mov    %eax,0x49c620
401f8e:	33 c0                	xor    %eax,%eax
401f90:	a3 1c c6 49 00       	mov    %eax,0x49c61c
401f95:	c3                   	ret
401f96:	8b c0                	mov    %eax,%eax
401f98:	53                   	push   %ebx
401f99:	56                   	push   %esi
401f9a:	57                   	push   %edi
401f9b:	83 c4 f0             	add    $0xfffffff0,%esp
401f9e:	8b f0                	mov    %eax,%esi
401fa0:	8d 3c 24             	lea    (%esp),%edi
401fa3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
401fa4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
401fa5:	8b fc                	mov    %esp,%edi
401fa7:	e8 a0 ff ff ff       	call   0x401f4c
401fac:	8d 4c 24 08          	lea    0x8(%esp),%ecx
401fb0:	8b d7                	mov    %edi,%edx
401fb2:	b8 28 c6 49 00       	mov    $0x49c628,%eax
401fb7:	e8 10 f5 ff ff       	call   0x4014cc
401fbc:	8b 5c 24 08          	mov    0x8(%esp),%ebx
401fc0:	85 db                	test   %ebx,%ebx
401fc2:	75 04                	jne    0x401fc8
401fc4:	33 c0                	xor    %eax,%eax
401fc6:	eb 52                	jmp    0x40201a
401fc8:	8b 07                	mov    (%edi),%eax
401fca:	3b d8                	cmp    %eax,%ebx
401fcc:	73 0a                	jae    0x401fd8
401fce:	e8 99 fd ff ff       	call   0x401d6c
401fd3:	29 07                	sub    %eax,(%edi)
401fd5:	01 47 04             	add    %eax,0x4(%edi)
401fd8:	8b 07                	mov    (%edi),%eax
401fda:	03 47 04             	add    0x4(%edi),%eax
401fdd:	8b f3                	mov    %ebx,%esi
401fdf:	03 74 24 0c          	add    0xc(%esp),%esi
401fe3:	3b c6                	cmp    %esi,%eax
401fe5:	73 08                	jae    0x401fef
401fe7:	e8 f0 fd ff ff       	call   0x401ddc
401fec:	01 47 04             	add    %eax,0x4(%edi)
401fef:	8b 07                	mov    (%edi),%eax
401ff1:	03 47 04             	add    0x4(%edi),%eax
401ff4:	3b f0                	cmp    %eax,%esi
401ff6:	75 11                	jne    0x402009
401ff8:	83 e8 04             	sub    $0x4,%eax
401ffb:	ba 04 00 00 00       	mov    $0x4,%edx
402000:	e8 eb fc ff ff       	call   0x401cf0
402005:	83 6f 04 04          	subl   $0x4,0x4(%edi)
402009:	8b 07                	mov    (%edi),%eax
40200b:	a3 20 c6 49 00       	mov    %eax,0x49c620
402010:	8b 47 04             	mov    0x4(%edi),%eax
402013:	a3 1c c6 49 00       	mov    %eax,0x49c61c
402018:	b0 01                	mov    $0x1,%al
40201a:	83 c4 10             	add    $0x10,%esp
40201d:	5f                   	pop    %edi
40201e:	5e                   	pop    %esi
40201f:	5b                   	pop    %ebx
402020:	c3                   	ret
402021:	8d 40 00             	lea    0x0(%eax),%eax
402024:	53                   	push   %ebx
402025:	83 c4 f8             	add    $0xfffffff8,%esp
402028:	8b d8                	mov    %eax,%ebx
40202a:	8b d4                	mov    %esp,%edx
40202c:	8d 43 04             	lea    0x4(%ebx),%eax
40202f:	e8 44 f8 ff ff       	call   0x401878
402034:	83 3c 24 00          	cmpl   $0x0,(%esp)
402038:	74 0b                	je     0x402045
40203a:	8b c4                	mov    %esp,%eax
40203c:	e8 57 ff ff ff       	call   0x401f98
402041:	84 c0                	test   %al,%al
402043:	75 04                	jne    0x402049
402045:	33 c0                	xor    %eax,%eax
402047:	eb 02                	jmp    0x40204b
402049:	b0 01                	mov    $0x1,%al
40204b:	59                   	pop    %ecx
40204c:	5a                   	pop    %edx
40204d:	5b                   	pop    %ebx
40204e:	c3                   	ret
40204f:	90                   	nop
402050:	53                   	push   %ebx
402051:	56                   	push   %esi
402052:	83 c4 f8             	add    $0xfffffff8,%esp
402055:	8b f2                	mov    %edx,%esi
402057:	8b d8                	mov    %eax,%ebx
402059:	8b cc                	mov    %esp,%ecx
40205b:	8d 56 04             	lea    0x4(%esi),%edx
40205e:	8b c3                	mov    %ebx,%eax
402060:	e8 a3 f8 ff ff       	call   0x401908
402065:	83 3c 24 00          	cmpl   $0x0,(%esp)
402069:	74 0b                	je     0x402076
40206b:	8b c4                	mov    %esp,%eax
40206d:	e8 26 ff ff ff       	call   0x401f98
402072:	84 c0                	test   %al,%al
402074:	75 04                	jne    0x40207a
402076:	33 c0                	xor    %eax,%eax
402078:	eb 02                	jmp    0x40207c
40207a:	b0 01                	mov    $0x1,%al
40207c:	59                   	pop    %ecx
40207d:	5a                   	pop    %edx
40207e:	5e                   	pop    %esi
40207f:	5b                   	pop    %ebx
402080:	c3                   	ret
402081:	8d 40 00             	lea    0x0(%eax),%eax
402084:	33 d2                	xor    %edx,%edx
402086:	85 c0                	test   %eax,%eax
402088:	79 03                	jns    0x40208d
40208a:	83 c0 03             	add    $0x3,%eax
40208d:	c1 f8 02             	sar    $0x2,%eax
402090:	3d 00 04 00 00       	cmp    $0x400,%eax
402095:	7f 16                	jg     0x4020ad
402097:	8b 15 24 c6 49 00    	mov    0x49c624,%edx
40209d:	8b 54 82 f4          	mov    -0xc(%edx,%eax,4),%edx
4020a1:	85 d2                	test   %edx,%edx
4020a3:	75 08                	jne    0x4020ad
4020a5:	40                   	inc    %eax
4020a6:	3d 01 04 00 00       	cmp    $0x401,%eax
4020ab:	75 ea                	jne    0x402097
4020ad:	8b c2                	mov    %edx,%eax
4020af:	c3                   	ret
4020b0:	53                   	push   %ebx
4020b1:	56                   	push   %esi
4020b2:	57                   	push   %edi
4020b3:	55                   	push   %ebp
4020b4:	8b f0                	mov    %eax,%esi
4020b6:	bf 18 c6 49 00       	mov    $0x49c618,%edi
4020bb:	bd 1c c6 49 00       	mov    $0x49c61c,%ebp
4020c0:	8b 1d 10 c6 49 00    	mov    0x49c610,%ebx
4020c6:	3b 73 08             	cmp    0x8(%ebx),%esi
4020c9:	0f 8e 84 00 00 00    	jle    0x402153
4020cf:	8b 1f                	mov    (%edi),%ebx
4020d1:	8b 43 08             	mov    0x8(%ebx),%eax
4020d4:	3b f0                	cmp    %eax,%esi
4020d6:	7e 7b                	jle    0x402153
4020d8:	89 73 08             	mov    %esi,0x8(%ebx)
4020db:	8b 5b 04             	mov    0x4(%ebx),%ebx
4020de:	3b 73 08             	cmp    0x8(%ebx),%esi
4020e1:	7f f8                	jg     0x4020db
4020e3:	8b 17                	mov    (%edi),%edx
4020e5:	89 42 08             	mov    %eax,0x8(%edx)
4020e8:	3b 1f                	cmp    (%edi),%ebx
4020ea:	74 04                	je     0x4020f0
4020ec:	89 1f                	mov    %ebx,(%edi)
4020ee:	eb 63                	jmp    0x402153
4020f0:	81 fe 00 10 00 00    	cmp    $0x1000,%esi
4020f6:	7f 0d                	jg     0x402105
4020f8:	8b c6                	mov    %esi,%eax
4020fa:	e8 85 ff ff ff       	call   0x402084
4020ff:	8b d8                	mov    %eax,%ebx
402101:	85 db                	test   %ebx,%ebx
402103:	75 4e                	jne    0x402153
402105:	8b c6                	mov    %esi,%eax
402107:	e8 18 ff ff ff       	call   0x402024
40210c:	84 c0                	test   %al,%al
40210e:	75 07                	jne    0x402117
402110:	33 c0                	xor    %eax,%eax
402112:	e9 88 00 00 00       	jmp    0x40219f
402117:	3b 75 00             	cmp    0x0(%ebp),%esi
40211a:	7f a4                	jg     0x4020c0
40211c:	29 75 00             	sub    %esi,0x0(%ebp)
40211f:	83 7d 00 0c          	cmpl   $0xc,0x0(%ebp)
402123:	7d 08                	jge    0x40212d
402125:	03 75 00             	add    0x0(%ebp),%esi
402128:	33 c0                	xor    %eax,%eax
40212a:	89 45 00             	mov    %eax,0x0(%ebp)
40212d:	a1 20 c6 49 00       	mov    0x49c620,%eax
402132:	01 35 20 c6 49 00    	add    %esi,0x49c620
402138:	8b d6                	mov    %esi,%edx
40213a:	83 ca 02             	or     $0x2,%edx
40213d:	89 10                	mov    %edx,(%eax)
40213f:	83 c0 04             	add    $0x4,%eax
402142:	ff 05 b4 c5 49 00    	incl   0x49c5b4
402148:	83 ee 04             	sub    $0x4,%esi
40214b:	01 35 b8 c5 49 00    	add    %esi,0x49c5b8
402151:	eb 4c                	jmp    0x40219f
402153:	8b c3                	mov    %ebx,%eax
402155:	e8 02 fb ff ff       	call   0x401c5c
40215a:	8b 53 08             	mov    0x8(%ebx),%edx
40215d:	8b c2                	mov    %edx,%eax
40215f:	2b c6                	sub    %esi,%eax
402161:	83 f8 0c             	cmp    $0xc,%eax
402164:	7c 0c                	jl     0x402172
402166:	8b d3                	mov    %ebx,%edx
402168:	03 d6                	add    %esi,%edx
40216a:	92                   	xchg   %eax,%edx
40216b:	e8 54 fd ff ff       	call   0x401ec4
402170:	eb 12                	jmp    0x402184
402172:	8b f2                	mov    %edx,%esi
402174:	3b 1f                	cmp    (%edi),%ebx
402176:	75 05                	jne    0x40217d
402178:	8b 43 04             	mov    0x4(%ebx),%eax
40217b:	89 07                	mov    %eax,(%edi)
40217d:	8b c3                	mov    %ebx,%eax
40217f:	03 c6                	add    %esi,%eax
402181:	83 20 fe             	andl   $0xfffffffe,(%eax)
402184:	8b c3                	mov    %ebx,%eax
402186:	8b d6                	mov    %esi,%edx
402188:	83 ca 02             	or     $0x2,%edx
40218b:	89 10                	mov    %edx,(%eax)
40218d:	83 c0 04             	add    $0x4,%eax
402190:	ff 05 b4 c5 49 00    	incl   0x49c5b4
402196:	83 ee 04             	sub    $0x4,%esi
402199:	01 35 b8 c5 49 00    	add    %esi,0x49c5b8
40219f:	5d                   	pop    %ebp
4021a0:	5f                   	pop    %edi
4021a1:	5e                   	pop    %esi
4021a2:	5b                   	pop    %ebx
4021a3:	c3                   	ret
4021a4:	55                   	push   %ebp
4021a5:	8b ec                	mov    %esp,%ebp
4021a7:	83 c4 f8             	add    $0xfffffff8,%esp
4021aa:	53                   	push   %ebx
4021ab:	56                   	push   %esi
4021ac:	57                   	push   %edi
4021ad:	8b d8                	mov    %eax,%ebx
4021af:	80 3d c4 c5 49 00 00 	cmpb   $0x0,0x49c5c4
4021b6:	75 09                	jne    0x4021c1
4021b8:	e8 fb f8 ff ff       	call   0x401ab8
4021bd:	84 c0                	test   %al,%al
4021bf:	74 08                	je     0x4021c9
4021c1:	81 fb f8 ff ff 7f    	cmp    $0x7ffffff8,%ebx
4021c7:	7e 0a                	jle    0x4021d3
4021c9:	33 c0                	xor    %eax,%eax
4021cb:	89 45 fc             	mov    %eax,-0x4(%ebp)
4021ce:	e9 54 01 00 00       	jmp    0x402327
4021d3:	33 c9                	xor    %ecx,%ecx
4021d5:	55                   	push   %ebp
4021d6:	68 20 23 40 00       	push   $0x402320
4021db:	64 ff 31             	push   %fs:(%ecx)
4021de:	64 89 21             	mov    %esp,%fs:(%ecx)
4021e1:	80 3d 4d c0 49 00 00 	cmpb   $0x0,0x49c04d
4021e8:	74 0a                	je     0x4021f4
4021ea:	68 cc c5 49 00       	push   $0x49c5cc
4021ef:	e8 20 f2 ff ff       	call   0x401414
4021f4:	83 c3 07             	add    $0x7,%ebx
4021f7:	83 e3 fc             	and    $0xfffffffc,%ebx
4021fa:	83 fb 0c             	cmp    $0xc,%ebx
4021fd:	7d 05                	jge    0x402204
4021ff:	bb 0c 00 00 00       	mov    $0xc,%ebx
402204:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
40220a:	0f 8f 93 00 00 00    	jg     0x4022a3
402210:	8b c3                	mov    %ebx,%eax
402212:	85 c0                	test   %eax,%eax
402214:	79 03                	jns    0x402219
402216:	83 c0 03             	add    $0x3,%eax
402219:	c1 f8 02             	sar    $0x2,%eax
40221c:	8b 15 24 c6 49 00    	mov    0x49c624,%edx
402222:	8b 54 82 f4          	mov    -0xc(%edx,%eax,4),%edx
402226:	85 d2                	test   %edx,%edx
402228:	74 79                	je     0x4022a3
40222a:	8b f2                	mov    %edx,%esi
40222c:	8b c6                	mov    %esi,%eax
40222e:	03 c3                	add    %ebx,%eax
402230:	83 20 fe             	andl   $0xfffffffe,(%eax)
402233:	8b 42 04             	mov    0x4(%edx),%eax
402236:	3b d0                	cmp    %eax,%edx
402238:	75 1a                	jne    0x402254
40223a:	8b c3                	mov    %ebx,%eax
40223c:	85 c0                	test   %eax,%eax
40223e:	79 03                	jns    0x402243
402240:	83 c0 03             	add    $0x3,%eax
402243:	c1 f8 02             	sar    $0x2,%eax
402246:	8b 0d 24 c6 49 00    	mov    0x49c624,%ecx
40224c:	33 ff                	xor    %edi,%edi
40224e:	89 7c 81 f4          	mov    %edi,-0xc(%ecx,%eax,4)
402252:	eb 26                	jmp    0x40227a
402254:	8b cb                	mov    %ebx,%ecx
402256:	85 c9                	test   %ecx,%ecx
402258:	79 03                	jns    0x40225d
40225a:	83 c1 03             	add    $0x3,%ecx
40225d:	c1 f9 02             	sar    $0x2,%ecx
402260:	8b 3d 24 c6 49 00    	mov    0x49c624,%edi
402266:	89 44 8f f4          	mov    %eax,-0xc(%edi,%ecx,4)
40226a:	8b 0a                	mov    (%edx),%ecx
40226c:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40226f:	8b 4d f8             	mov    -0x8(%ebp),%ecx
402272:	89 41 04             	mov    %eax,0x4(%ecx)
402275:	8b 4d f8             	mov    -0x8(%ebp),%ecx
402278:	89 08                	mov    %ecx,(%eax)
40227a:	8b c6                	mov    %esi,%eax
40227c:	8b 52 08             	mov    0x8(%edx),%edx
40227f:	83 ca 02             	or     $0x2,%edx
402282:	89 10                	mov    %edx,(%eax)
402284:	83 c0 04             	add    $0x4,%eax
402287:	89 45 fc             	mov    %eax,-0x4(%ebp)
40228a:	ff 05 b4 c5 49 00    	incl   0x49c5b4
402290:	83 eb 04             	sub    $0x4,%ebx
402293:	01 1d b8 c5 49 00    	add    %ebx,0x49c5b8
402299:	e8 ae 19 00 00       	call   0x403c4c
40229e:	e9 84 00 00 00       	jmp    0x402327
4022a3:	3b 1d 1c c6 49 00    	cmp    0x49c61c,%ebx
4022a9:	7f 4a                	jg     0x4022f5
4022ab:	29 1d 1c c6 49 00    	sub    %ebx,0x49c61c
4022b1:	83 3d 1c c6 49 00 0c 	cmpl   $0xc,0x49c61c
4022b8:	7d 0d                	jge    0x4022c7
4022ba:	03 1d 1c c6 49 00    	add    0x49c61c,%ebx
4022c0:	33 c0                	xor    %eax,%eax
4022c2:	a3 1c c6 49 00       	mov    %eax,0x49c61c
4022c7:	a1 20 c6 49 00       	mov    0x49c620,%eax
4022cc:	01 1d 20 c6 49 00    	add    %ebx,0x49c620
4022d2:	8b d3                	mov    %ebx,%edx
4022d4:	83 ca 02             	or     $0x2,%edx
4022d7:	89 10                	mov    %edx,(%eax)
4022d9:	83 c0 04             	add    $0x4,%eax
4022dc:	89 45 fc             	mov    %eax,-0x4(%ebp)
4022df:	ff 05 b4 c5 49 00    	incl   0x49c5b4
4022e5:	83 eb 04             	sub    $0x4,%ebx
4022e8:	01 1d b8 c5 49 00    	add    %ebx,0x49c5b8
4022ee:	e8 59 19 00 00       	call   0x403c4c
4022f3:	eb 32                	jmp    0x402327
4022f5:	8b c3                	mov    %ebx,%eax
4022f7:	e8 b4 fd ff ff       	call   0x4020b0