401d90:	75 09                	jne    0x401d9b
401d92:	33 c0                	xor    %eax,%eax
401d94:	b9 68 33 40 00       	mov    $0x403368,%ecx
401d99:	87 01                	xchg   %eax,(%ecx)
401d9b:	83 3d 70 33 40 00 00 	cmpl   $0x0,0x403370
401da2:	74 23                	je     0x401dc7
401da4:	68 70 33 40 00       	push   $0x403370
401da9:	e8 62 04 00 00       	call   0x402210
401dae:	59                   	pop    %ecx
401daf:	85 c0                	test   %eax,%eax
401db1:	74 14                	je     0x401dc7
401db3:	53                   	push   %ebx
401db4:	6a 02                	push   $0x2
401db6:	53                   	push   %ebx
401db7:	8b 35 70 33 40 00    	mov    0x403370,%esi
401dbd:	8b ce                	mov    %esi,%ecx
401dbf:	ff 15 ec 40 40 00    	call   *0x4040ec
401dc5:	ff d6                	call   *%esi
401dc7:	a1 dc 40 40 00       	mov    0x4040dc,%eax
401dcc:	8b 30                	mov    (%eax),%esi
401dce:	89 75 e4             	mov    %esi,-0x1c(%ebp)
401dd1:	8b 7d e0             	mov    -0x20(%ebp),%edi
401dd4:	8a 0e                	mov    (%esi),%cl
401dd6:	80 f9 20             	cmp    $0x20,%cl
401dd9:	77 4a                	ja     0x401e25
401ddb:	84 c9                	test   %cl,%cl
401ddd:	74 15                	je     0x401df4
401ddf:	85 ff                	test   %edi,%edi
401de1:	75 42                	jne    0x401e25
401de3:	84 c9                	test   %cl,%cl
401de5:	74 0d                	je     0x401df4
401de7:	80 f9 20             	cmp    $0x20,%cl
401dea:	77 08                	ja     0x401df4
401dec:	46                   	inc    %esi
401ded:	89 75 e4             	mov    %esi,-0x1c(%ebp)
401df0:	8a 0e                	mov    (%esi),%cl
401df2:	eb ef                	jmp    0x401de3
401df4:	f6 45 c4 01          	testb  $0x1,-0x3c(%ebp)
401df8:	74 06                	je     0x401e00
401dfa:	0f b7 45 c8          	movzwl -0x38(%ebp),%eax
401dfe:	eb 03                	jmp    0x401e03
401e00:	6a 0a                	push   $0xa
401e02:	58                   	pop    %eax
401e03:	50                   	push   %eax
401e04:	56                   	push   %esi
401e05:	53                   	push   %ebx
401e06:	68 00 00 40 00       	push   $0x400000
401e0b:	e8 c0 f9 ff ff       	call   0x4017d0
401e10:	a3 10 30 40 00       	mov    %eax,0x403010
401e15:	83 3d 28 30 40 00 00 	cmpl   $0x0,0x403028
401e1c:	75 60                	jne    0x401e7e
401e1e:	50                   	push   %eax
401e1f:	ff 15 bc 40 40 00    	call   *0x4040bc
401e25:	80 f9 22             	cmp    $0x22,%cl
401e28:	75 0c                	jne    0x401e36
401e2a:	33 c0                	xor    %eax,%eax
401e2c:	85 ff                	test   %edi,%edi
401e2e:	0f 94 c0             	sete   %al
401e31:	8b f8                	mov    %eax,%edi
401e33:	89 7d e0             	mov    %edi,-0x20(%ebp)
401e36:	0f b6 c1             	movzbl %cl,%eax
401e39:	50                   	push   %eax
401e3a:	ff 15 ac 40 40 00    	call   *0x4040ac
401e40:	59                   	pop    %ecx
401e41:	85 c0                	test   %eax,%eax
401e43:	74 04                	je     0x401e49
401e45:	46                   	inc    %esi
401e46:	89 75 e4             	mov    %esi,-0x1c(%ebp)
401e49:	46                   	inc    %esi
401e4a:	89 75 e4             	mov    %esi,-0x1c(%ebp)
401e4d:	eb 85                	jmp    0x401dd4
401e4f:	8b 4d ec             	mov    -0x14(%ebp),%ecx
401e52:	8b 01                	mov    (%ecx),%eax
401e54:	8b 00                	mov    (%eax),%eax
401e56:	89 45 dc             	mov    %eax,-0x24(%ebp)
401e59:	51                   	push   %ecx
401e5a:	50                   	push   %eax
401e5b:	e8 8e 02 00 00       	call   0x4020ee
401e60:	59                   	pop    %ecx
401e61:	59                   	pop    %ecx
401e62:	c3                   	ret
401e63:	8b 65 e8             	mov    -0x18(%ebp),%esp
401e66:	8b 45 dc             	mov    -0x24(%ebp),%eax
401e69:	a3 10 30 40 00       	mov    %eax,0x403010
401e6e:	83 3d 28 30 40 00 00 	cmpl   $0x0,0x403028
401e75:	75 07                	jne    0x401e7e
401e77:	50                   	push   %eax
401e78:	ff 15 b8 40 40 00    	call   *0x4040b8
401e7e:	83 3d 14 30 40 00 00 	cmpl   $0x0,0x403014
401e85:	75 0b                	jne    0x401e92
401e87:	ff 15 b4 40 40 00    	call   *0x4040b4
401e8d:	a1 10 30 40 00       	mov    0x403010,%eax
401e92:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
401e99:	8b 4d f0             	mov    -0x10(%ebp),%ecx
401e9c:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
401ea3:	59                   	pop    %ecx
401ea4:	5f                   	pop    %edi
401ea5:	5e                   	pop    %esi
401ea6:	5b                   	pop    %ebx
401ea7:	c9                   	leave
401ea8:	c3                   	ret
401ea9:	8b ff                	mov    %edi,%edi
401eab:	55                   	push   %ebp
401eac:	8b ec                	mov    %esp,%ebp
401eae:	56                   	push   %esi
401eaf:	8b 75 08             	mov    0x8(%ebp),%esi
401eb2:	33 c0                	xor    %eax,%eax
401eb4:	3b 75 0c             	cmp    0xc(%ebp),%esi
401eb7:	73 1e                	jae    0x401ed7
401eb9:	57                   	push   %edi
401eba:	85 c0                	test   %eax,%eax
401ebc:	75 18                	jne    0x401ed6
401ebe:	8b 3e                	mov    (%esi),%edi
401ec0:	85 ff                	test   %edi,%edi
401ec2:	74 0a                	je     0x401ece
401ec4:	8b cf                	mov    %edi,%ecx
401ec6:	ff 15 ec 40 40 00    	call   *0x4040ec
401ecc:	ff d7                	call   *%edi
401ece:	83 c6 04             	add    $0x4,%esi
401ed1:	3b 75 0c             	cmp    0xc(%ebp),%esi
401ed4:	72 e4                	jb     0x401eba
401ed6:	5f                   	pop    %edi
401ed7:	5e                   	pop    %esi
401ed8:	5d                   	pop    %ebp
401ed9:	c3                   	ret
401eda:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
401edf:	66 39 05 00 00 40 00 	cmp    %ax,0x400000
401ee6:	75 55                	jne    0x401f3d
401ee8:	8b 0d 3c 00 40 00    	mov    0x40003c,%ecx
401eee:	81 b9 00 00 40 00 50 	cmpl   $0x4550,0x400000(%ecx)
401ef5:	45 00 00
401ef8:	75 43                	jne    0x401f3d
401efa:	0f b7 81 18 00 40 00 	movzwl 0x400018(%ecx),%eax
401f01:	ba 0b 01 00 00       	mov    $0x10b,%edx
401f06:	66 3b c2             	cmp    %dx,%ax
401f09:	74 1f                	je     0x401f2a
401f0b:	ba 0b 02 00 00       	mov    $0x20b,%edx
401f10:	66 3b c2             	cmp    %dx,%ax
401f13:	75 28                	jne    0x401f3d
401f15:	83 b9 84 00 40 00 0e 	cmpl   $0xe,0x400084(%ecx)
401f1c:	76 1f                	jbe    0x401f3d
401f1e:	33 c0                	xor    %eax,%eax
401f20:	39 81 f8 00 40 00    	cmp    %eax,0x4000f8(%ecx)
401f26:	0f 95 c0             	setne  %al
401f29:	c3                   	ret
401f2a:	83 b9 74 00 40 00 0e 	cmpl   $0xe,0x400074(%ecx)
401f31:	76 0a                	jbe    0x401f3d
401f33:	33 c0                	xor    %eax,%eax
401f35:	39 81 e8 00 40 00    	cmp    %eax,0x4000e8(%ecx)
401f3b:	eb e9                	jmp    0x401f26
401f3d:	33 c0                	xor    %eax,%eax
401f3f:	c3                   	ret
401f40:	3b 0d 04 30 40 00    	cmp    0x403004,%ecx
401f46:	75 03                	jne    0x401f4b
401f48:	c2 00 00             	ret    $0x0
401f4b:	e9 2a 00 00 00       	jmp    0x401f7a
401f50:	8b ff                	mov    %edi,%edi
401f52:	55                   	push   %ebp
401f53:	8b ec                	mov    %esp,%ebp
401f55:	6a 00                	push   $0x0
401f57:	ff 15 34 40 40 00    	call   *0x404034
401f5d:	ff 75 08             	push   0x8(%ebp)
401f60:	ff 15 38 40 40 00    	call   *0x404038
401f66:	68 09 04 00 c0       	push   $0xc0000409
401f6b:	ff 15 30 40 40 00    	call   *0x404030
401f71:	50                   	push   %eax
401f72:	ff 15 2c 40 40 00    	call   *0x40402c
401f78:	5d                   	pop    %ebp
401f79:	c3                   	ret
401f7a:	8b ff                	mov    %edi,%edi
401f7c:	55                   	push   %ebp
401f7d:	8b ec                	mov    %esp,%ebp
401f7f:	81 ec 24 03 00 00    	sub    $0x324,%esp
401f85:	a3 30 31 40 00       	mov    %eax,0x403130
401f8a:	89 0d 2c 31 40 00    	mov    %ecx,0x40312c
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