401f90:	89 15 28 31 40 00    	mov    %edx,0x403128
401f96:	89 1d 24 31 40 00    	mov    %ebx,0x403124
401f9c:	89 35 20 31 40 00    	mov    %esi,0x403120
401fa2:	89 3d 1c 31 40 00    	mov    %edi,0x40311c
401fa8:	66 8c 15 48 31 40 00 	data16 mov %ss,0x403148
401faf:	66 8c 0d 3c 31 40 00 	data16 mov %cs,0x40313c
401fb6:	66 8c 1d 18 31 40 00 	data16 mov %ds,0x403118
401fbd:	66 8c 05 14 31 40 00 	data16 mov %es,0x403114
401fc4:	66 8c 25 10 31 40 00 	data16 mov %fs,0x403110
401fcb:	66 8c 2d 0c 31 40 00 	data16 mov %gs,0x40310c
401fd2:	9c                   	pushf
401fd3:	8f 05 40 31 40 00    	pop    0x403140
401fd9:	8b 45 00             	mov    0x0(%ebp),%eax
401fdc:	a3 34 31 40 00       	mov    %eax,0x403134
401fe1:	8b 45 04             	mov    0x4(%ebp),%eax
401fe4:	a3 38 31 40 00       	mov    %eax,0x403138
401fe9:	8d 45 08             	lea    0x8(%ebp),%eax
401fec:	a3 44 31 40 00       	mov    %eax,0x403144
401ff1:	8b 85 dc fc ff ff    	mov    -0x324(%ebp),%eax
401ff7:	c7 05 80 30 40 00 01 	movl   $0x10001,0x403080
401ffe:	00 01 00
402001:	a1 38 31 40 00       	mov    0x403138,%eax
402006:	a3 3c 30 40 00       	mov    %eax,0x40303c
40200b:	c7 05 30 30 40 00 09 	movl   $0xc0000409,0x403030
402012:	04 00 c0
402015:	c7 05 34 30 40 00 01 	movl   $0x1,0x403034
40201c:	00 00 00
40201f:	c7 05 40 30 40 00 03 	movl   $0x3,0x403040
402026:	00 00 00
402029:	6a 04                	push   $0x4
40202b:	58                   	pop    %eax
40202c:	6b c0 00             	imul   $0x0,%eax,%eax
40202f:	c7 80 44 30 40 00 02 	movl   $0x2,0x403044(%eax)
402036:	00 00 00
402039:	6a 04                	push   $0x4
40203b:	58                   	pop    %eax
40203c:	c1 e0 00             	shl    $0x0,%eax
40203f:	8b 0d 04 30 40 00    	mov    0x403004,%ecx
402045:	89 88 44 30 40 00    	mov    %ecx,0x403044(%eax)
40204b:	6a 04                	push   $0x4
40204d:	58                   	pop    %eax
40204e:	d1 e0                	shl    $1,%eax
402050:	8b 0d 08 30 40 00    	mov    0x403008,%ecx
402056:	89 88 44 30 40 00    	mov    %ecx,0x403044(%eax)
40205c:	6a 04                	push   $0x4
40205e:	58                   	pop    %eax
40205f:	6b c0 00             	imul   $0x0,%eax,%eax
402062:	8b 0d 04 30 40 00    	mov    0x403004,%ecx
402068:	89 4c 05 f8          	mov    %ecx,-0x8(%ebp,%eax,1)
40206c:	6a 04                	push   $0x4
40206e:	58                   	pop    %eax
40206f:	c1 e0 00             	shl    $0x0,%eax
402072:	8b 0d 08 30 40 00    	mov    0x403008,%ecx
402078:	89 4c 05 f8          	mov    %ecx,-0x8(%ebp,%eax,1)
40207c:	68 00 10 40 00       	push   $0x401000
402081:	e8 ca fe ff ff       	call   0x401f50
402086:	c9                   	leave
402087:	c3                   	ret
402088:	cc                   	int3
402089:	cc                   	int3
40208a:	cc                   	int3
40208b:	cc                   	int3
40208c:	cc                   	int3
40208d:	cc                   	int3
40208e:	cc                   	int3
40208f:	cc                   	int3
402090:	8b ff                	mov    %edi,%edi
402092:	55                   	push   %ebp
402093:	8b ec                	mov    %esp,%ebp
402095:	8b 45 08             	mov    0x8(%ebp),%eax
402098:	8b 00                	mov    (%eax),%eax
40209a:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
4020a0:	75 2b                	jne    0x4020cd
4020a2:	83 78 10 03          	cmpl   $0x3,0x10(%eax)
4020a6:	75 25                	jne    0x4020cd
4020a8:	8b 40 14             	mov    0x14(%eax),%eax
4020ab:	3d 20 05 93 19       	cmp    $0x19930520,%eax
4020b0:	74 15                	je     0x4020c7
4020b2:	3d 21 05 93 19       	cmp    $0x19930521,%eax
4020b7:	74 0e                	je     0x4020c7
4020b9:	3d 22 05 93 19       	cmp    $0x19930522,%eax
4020be:	74 07                	je     0x4020c7
4020c0:	3d 00 40 99 01       	cmp    $0x1994000,%eax
4020c5:	75 06                	jne    0x4020cd
4020c7:	ff 15 a0 40 40 00    	call   *0x4040a0
4020cd:	33 c0                	xor    %eax,%eax
4020cf:	5d                   	pop    %ebp
4020d0:	c2 04 00             	ret    $0x4
4020d3:	cc                   	int3
4020d4:	cc                   	int3
4020d5:	cc                   	int3
4020d6:	cc                   	int3
4020d7:	cc                   	int3
4020d8:	cc                   	int3
4020d9:	cc                   	int3
4020da:	cc                   	int3
4020db:	cc                   	int3
4020dc:	cc                   	int3
4020dd:	cc                   	int3
4020de:	cc                   	int3
4020df:	cc                   	int3
4020e0:	68 90 20 40 00       	push   $0x402090
4020e5:	ff 15 34 40 40 00    	call   *0x404034
4020eb:	33 c0                	xor    %eax,%eax
4020ed:	c3                   	ret
4020ee:	ff 25 cc 40 40 00    	jmp    *0x4040cc
4020f4:	6a 0c                	push   $0xc
4020f6:	68 80 24 40 00       	push   $0x402480
4020fb:	e8 b8 02 00 00       	call   0x4023b8
402100:	33 c9                	xor    %ecx,%ecx
402102:	8b 45 08             	mov    0x8(%ebp),%eax
402105:	85 c0                	test   %eax,%eax
402107:	74 4b                	je     0x402154
402109:	83 f8 ff             	cmp    $0xffffffff,%eax
40210c:	74 46                	je     0x402154
40210e:	89 4d fc             	mov    %ecx,-0x4(%ebp)
402111:	ba 4d 5a 00 00       	mov    $0x5a4d,%edx
402116:	66 39 10             	cmp    %dx,(%eax)
402119:	75 32                	jne    0x40214d
40211b:	8b 50 3c             	mov    0x3c(%eax),%edx
40211e:	85 d2                	test   %edx,%edx
402120:	78 2b                	js     0x40214d
402122:	81 fa 00 00 00 10    	cmp    $0x10000000,%edx
402128:	73 23                	jae    0x40214d
40212a:	03 c2                	add    %edx,%eax
40212c:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40212f:	8b 08                	mov    (%eax),%ecx
402131:	81 e9 50 45 00 00    	sub    $0x4550,%ecx
402137:	f7 d9                	neg    %ecx
402139:	1b c9                	sbb    %ecx,%ecx
40213b:	f7 d1                	not    %ecx
40213d:	23 c8                	and    %eax,%ecx
40213f:	eb 09                	jmp    0x40214a
402141:	33 c0                	xor    %eax,%eax
402143:	40                   	inc    %eax
402144:	c3                   	ret
402145:	8b 65 e8             	mov    -0x18(%ebp),%esp
402148:	33 c9                	xor    %ecx,%ecx
40214a:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40214d:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
402154:	8b c1                	mov    %ecx,%eax
402156:	8b 4d f0             	mov    -0x10(%ebp),%ecx
402159:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402160:	59                   	pop    %ecx
402161:	5f                   	pop    %edi
402162:	5e                   	pop    %esi
402163:	5b                   	pop    %ebx
402164:	c9                   	leave
402165:	c2 04 00             	ret    $0x4
402168:	8b ff                	mov    %edi,%edi
40216a:	55                   	push   %ebp
40216b:	8b ec                	mov    %esp,%ebp
40216d:	6a 00                	push   $0x0
40216f:	ff 15 28 40 40 00    	call   *0x404028
402175:	85 c0                	test   %eax,%eax
402177:	74 20                	je     0x402199
402179:	50                   	push   %eax
40217a:	e8 75 ff ff ff       	call   0x4020f4
40217f:	85 c0                	test   %eax,%eax
402181:	74 16                	je     0x402199
402183:	0f b7 48 5c          	movzwl 0x5c(%eax),%ecx
402187:	6a 02                	push   $0x2
402189:	58                   	pop    %eax
40218a:	66 3b c8             	cmp    %ax,%cx
40218d:	74 0d                	je     0x40219c
40218f:	83 f9 03             	cmp    $0x3,%ecx
402192:	75 05                	jne    0x402199
402194:	33 c0                	xor    %eax,%eax
402196:	40                   	inc    %eax
402197:	5d                   	pop    %ebp
402198:	c3                   	ret
402199:	8b 45 08             	mov    0x8(%ebp),%eax
40219c:	5d                   	pop    %ebp
40219d:	c3                   	ret
40219e:	ff 25 c4 40 40 00    	jmp    *0x4040c4
4021a4:	cc                   	int3
4021a5:	cc                   	int3
4021a6:	cc                   	int3
4021a7:	cc                   	int3
4021a8:	cc                   	int3
4021a9:	cc                   	int3
4021aa:	cc                   	int3
4021ab:	cc                   	int3
4021ac:	cc                   	int3
4021ad:	cc                   	int3
4021ae:	cc                   	int3
4021af:	cc                   	int3
4021b0:	33 c0                	xor    %eax,%eax
4021b2:	c3                   	ret
4021b3:	cc                   	int3
4021b4:	cc                   	int3
4021b5:	cc                   	int3
4021b6:	cc                   	int3
4021b7:	cc                   	int3
4021b8:	cc                   	int3
4021b9:	cc                   	int3
4021ba:	cc                   	int3
4021bb:	cc                   	int3
4021bc:	cc                   	int3
4021bd:	cc                   	int3
4021be:	cc                   	int3
4021bf:	cc                   	int3
4021c0:	8b ff                	mov    %edi,%edi
4021c2:	55                   	push   %ebp
4021c3:	8b ec                	mov    %esp,%ebp
4021c5:	8b 45 08             	mov    0x8(%ebp),%eax
4021c8:	33 d2                	xor    %edx,%edx
4021ca:	53                   	push   %ebx
4021cb:	56                   	push   %esi
4021cc:	57                   	push   %edi
4021cd:	8b 48 3c             	mov    0x3c(%eax),%ecx
4021d0:	03 c8                	add    %eax,%ecx
4021d2:	0f b7 41 14          	movzwl 0x14(%ecx),%eax
4021d6:	0f b7 59 06          	movzwl 0x6(%ecx),%ebx
4021da:	83 c0 18             	add    $0x18,%eax
4021dd:	03 c1                	add    %ecx,%eax
4021df:	85 db                	test   %ebx,%ebx
4021e1:	74 1b                	je     0x4021fe
4021e3:	8b 7d 0c             	mov    0xc(%ebp),%edi
4021e6:	8b 70 0c             	mov    0xc(%eax),%esi
4021e9:	3b fe                	cmp    %esi,%edi
4021eb:	72 09                	jb     0x4021f6
4021ed:	8b 48 08             	mov    0x8(%eax),%ecx
4021f0:	03 ce                	add    %esi,%ecx
4021f2:	3b f9                	cmp    %ecx,%edi
4021f4:	72 0a                	jb     0x402200
4021f6:	42                   	inc    %edx
4021f7:	83 c0 28             	add    $0x28,%eax
4021fa:	3b d3                	cmp    %ebx,%edx
4021fc:	72 e8                	jb     0x4021e6
4021fe:	33 c0                	xor    %eax,%eax
402200:	5f                   	pop    %edi
402201:	5e                   	pop    %esi
402202:	5b                   	pop    %ebx
402203:	5d                   	pop    %ebp
402204:	c3                   	ret
402205:	cc                   	int3
402206:	cc                   	int3
402207:	cc                   	int3
402208:	cc                   	int3
402209:	cc                   	int3
40220a:	cc                   	int3
40220b:	cc                   	int3
40220c:	cc                   	int3
40220d:	cc                   	int3
40220e:	cc                   	int3
40220f:	cc                   	int3
402210:	8b ff                	mov    %edi,%edi
402212:	55                   	push   %ebp
402213:	8b ec                	mov    %esp,%ebp
402215:	6a fe                	push   $0xfffffffe
402217:	68 a0 24 40 00       	push   $0x4024a0
40221c:	68 20 24 40 00       	push   $0x402420
402221:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
402227:	50                   	push   %eax
402228:	83 ec 08             	sub    $0x8,%esp
40222b:	53                   	push   %ebx
40222c:	56                   	push   %esi
40222d:	57                   	push   %edi
40222e:	a1 04 30 40 00       	mov    0x403004,%eax
402233:	31 45 f8             	xor    %eax,-0x8(%ebp)
402236:	33 c5                	xor    %ebp,%eax
402238:	50                   	push   %eax
402239:	8d 45 f0             	lea    -0x10(%ebp),%eax
40223c:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
402242:	89 65 e8             	mov    %esp,-0x18(%ebp)
402245:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40224c:	68 00 00 40 00       	push   $0x400000
402251:	e8 7a 00 00 00       	call   0x4022d0
402256:	83 c4 04             	add    $0x4,%esp
402259:	85 c0                	test   %eax,%eax
40225b:	74 54                	je     0x4022b1
40225d:	8b 45 08             	mov    0x8(%ebp),%eax
402260:	2d 00 00 40 00       	sub    $0x400000,%eax
402265:	50                   	push   %eax
402266:	68 00 00 40 00       	push   $0x400000
40226b:	e8 50 ff ff ff       	call   0x4021c0
402270:	83 c4 08             	add    $0x8,%esp
402273:	85 c0                	test   %eax,%eax
402275:	74 3a                	je     0x4022b1
402277:	8b 40 24             	mov    0x24(%eax),%eax
40227a:	c1 e8 1f             	shr    $0x1f,%eax
40227d:	f7 d0                	not    %eax
40227f:	83 e0 01             	and    $0x1,%eax
402282:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
402289:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40228c:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402293:	59                   	pop    %ecx
402294:	5f                   	pop    %edi
402295:	5e                   	pop    %esi
402296:	5b                   	pop    %ebx
402297:	8b e5                	mov    %ebp,%esp
402299:	5d                   	pop    %ebp
40229a:	c3                   	ret
40229b:	8b 45 ec             	mov    -0x14(%ebp),%eax
40229e:	8b 00                	mov    (%eax),%eax
4022a0:	33 c9                	xor    %ecx,%ecx
4022a2:	81 38 05 00 00 c0    	cmpl   $0xc0000005,(%eax)
4022a8:	0f 94 c1             	sete   %cl
4022ab:	8b c1                	mov    %ecx,%eax
4022ad:	c3                   	ret
4022ae:	8b 65 e8             	mov    -0x18(%ebp),%esp
4022b1:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4022b8:	33 c0                	xor    %eax,%eax
4022ba:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4022bd:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4022c4:	59                   	pop    %ecx
4022c5:	5f                   	pop    %edi
4022c6:	5e                   	pop    %esi
4022c7:	5b                   	pop    %ebx
4022c8:	8b e5                	mov    %ebp,%esp
4022ca:	5d                   	pop    %ebp
4022cb:	c3                   	ret
4022cc:	cc                   	int3
4022cd:	cc                   	int3
4022ce:	cc                   	int3
4022cf:	cc                   	int3
4022d0:	8b ff                	mov    %edi,%edi
4022d2:	55                   	push   %ebp
4022d3:	8b ec                	mov    %esp,%ebp
4022d5:	8b 4d 08             	mov    0x8(%ebp),%ecx
4022d8:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
4022dd:	66 39 01             	cmp    %ax,(%ecx)
4022e0:	75 1f                	jne    0x402301
4022e2:	8b 41 3c             	mov    0x3c(%ecx),%eax
4022e5:	03 c1                	add    %ecx,%eax
4022e7:	81 38 50 45 00 00    	cmpl   $0x4550,(%eax)
4022ed:	75 12                	jne    0x402301
4022ef:	b9 0b 01 00 00       	mov    $0x10b,%ecx
4022f4:	66 39 48 18          	cmp    %cx,0x18(%eax)
4022f8:	75 07                	jne    0x402301
4022fa:	b8 01 00 00 00       	mov    $0x1,%eax
4022ff:	5d                   	pop    %ebp
402300:	c3                   	ret
402301:	33 c0                	xor    %eax,%eax
402303:	5d                   	pop    %ebp
402304:	c3                   	ret
402305:	8b ff                	mov    %edi,%edi
402307:	55                   	push   %ebp
402308:	8b ec                	mov    %esp,%ebp
40230a:	83 ec 14             	sub    $0x14,%esp
40230d:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
402311:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
402315:	a1 04 30 40 00       	mov    0x403004,%eax
40231a:	56                   	push   %esi
40231b:	57                   	push   %edi
40231c:	bf 4e e6 40 bb       	mov    $0xbb40e64e,%edi
402321:	be 00 00 ff ff       	mov    $0xffff0000,%esi
402326:	3b c7                	cmp    %edi,%eax
402328:	74 04                	je     0x40232e