40617e:	89 1d 34 e1 40 00    	mov    %ebx,0x40e134
406184:	89 35 30 e1 40 00    	mov    %esi,0x40e130
40618a:	89 3d 2c e1 40 00    	mov    %edi,0x40e12c
406190:	66 8c 15 58 e1 40 00 	data16 mov %ss,0x40e158
406197:	66 8c 0d 4c e1 40 00 	data16 mov %cs,0x40e14c
40619e:	66 8c 1d 28 e1 40 00 	data16 mov %ds,0x40e128
4061a5:	66 8c 05 24 e1 40 00 	data16 mov %es,0x40e124
4061ac:	66 8c 25 20 e1 40 00 	data16 mov %fs,0x40e120
4061b3:	66 8c 2d 1c e1 40 00 	data16 mov %gs,0x40e11c
4061ba:	9c                   	pushf
4061bb:	8f 05 50 e1 40 00    	pop    0x40e150
4061c1:	c7 05 90 e0 40 00 01 	movl   $0x10001,0x40e090
4061c8:	00 01 00
4061cb:	8b 45 04             	mov    0x4(%ebp),%eax
4061ce:	a3 48 e1 40 00       	mov    %eax,0x40e148
4061d3:	8d 45 04             	lea    0x4(%ebp),%eax
4061d6:	83 c0 04             	add    $0x4,%eax
4061d9:	a3 54 e1 40 00       	mov    %eax,0x40e154
4061de:	a1 48 e1 40 00       	mov    0x40e148,%eax
4061e3:	a3 4c e0 40 00       	mov    %eax,0x40e04c
4061e8:	c7 05 40 e0 40 00 09 	movl   $0xc0000409,0x40e040
4061ef:	04 00 c0
4061f2:	c7 05 44 e0 40 00 01 	movl   $0x1,0x40e044
4061f9:	00 00 00
4061fc:	c7 05 50 e0 40 00 01 	movl   $0x1,0x40e050
406203:	00 00 00
406206:	6a 04                	push   $0x4
406208:	58                   	pop    %eax
406209:	6b c0 00             	imul   $0x0,%eax,%eax
40620c:	c7 80 54 e0 40 00 08 	movl   $0x8,0x40e054(%eax)
406213:	00 00 00
406216:	68 00 10 40 00       	push   $0x401000
40621b:	e8 10 fe ff ff       	call   0x406030
406220:	5d                   	pop    %ebp
406221:	c3                   	ret
406222:	cc                   	int3
406223:	cc                   	int3
406224:	cc                   	int3
406225:	cc                   	int3
406226:	cc                   	int3
406227:	cc                   	int3
406228:	cc                   	int3
406229:	cc                   	int3
40622a:	cc                   	int3
40622b:	cc                   	int3
40622c:	cc                   	int3
40622d:	cc                   	int3
40622e:	cc                   	int3
40622f:	cc                   	int3
406230:	8b ff                	mov    %edi,%edi
406232:	55                   	push   %ebp
406233:	8b ec                	mov    %esp,%ebp
406235:	8b 45 08             	mov    0x8(%ebp),%eax
406238:	8b 00                	mov    (%eax),%eax
40623a:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
406240:	75 2b                	jne    0x40626d
406242:	83 78 10 03          	cmpl   $0x3,0x10(%eax)
406246:	75 25                	jne    0x40626d
406248:	8b 40 14             	mov    0x14(%eax),%eax
40624b:	3d 20 05 93 19       	cmp    $0x19930520,%eax
406250:	74 15                	je     0x406267
406252:	3d 21 05 93 19       	cmp    $0x19930521,%eax
406257:	74 0e                	je     0x406267
406259:	3d 22 05 93 19       	cmp    $0x19930522,%eax
40625e:	74 07                	je     0x406267
406260:	3d 00 40 99 01       	cmp    $0x1994000,%eax
406265:	75 06                	jne    0x40626d
406267:	ff 15 2c f1 40 00    	call   *0x40f12c
40626d:	33 c0                	xor    %eax,%eax
40626f:	5d                   	pop    %ebp
406270:	c2 04 00             	ret    $0x4
406273:	cc                   	int3
406274:	cc                   	int3
406275:	cc                   	int3
406276:	cc                   	int3
406277:	cc                   	int3
406278:	cc                   	int3
406279:	cc                   	int3
40627a:	cc                   	int3
40627b:	cc                   	int3
40627c:	cc                   	int3
40627d:	cc                   	int3
40627e:	cc                   	int3
40627f:	cc                   	int3
406280:	68 30 62 40 00       	push   $0x406230
406285:	ff 15 48 f0 40 00    	call   *0x40f048
40628b:	33 c0                	xor    %eax,%eax
40628d:	c3                   	ret
40628e:	ff 25 e4 f0 40 00    	jmp    *0x40f0e4
406294:	6a 0c                	push   $0xc
406296:	68 38 ce 40 00       	push   $0x40ce38
40629b:	e8 b8 02 00 00       	call   0x406558
4062a0:	33 c9                	xor    %ecx,%ecx
4062a2:	8b 45 08             	mov    0x8(%ebp),%eax
4062a5:	85 c0                	test   %eax,%eax
4062a7:	74 4b                	je     0x4062f4
4062a9:	83 f8 ff             	cmp    $0xffffffff,%eax
4062ac:	74 46                	je     0x4062f4
4062ae:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4062b1:	ba 4d 5a 00 00       	mov    $0x5a4d,%edx
4062b6:	66 39 10             	cmp    %dx,(%eax)
4062b9:	75 32                	jne    0x4062ed
4062bb:	8b 50 3c             	mov    0x3c(%eax),%edx
4062be:	85 d2                	test   %edx,%edx
4062c0:	78 2b                	js     0x4062ed
4062c2:	81 fa 00 00 00 10    	cmp    $0x10000000,%edx
4062c8:	73 23                	jae    0x4062ed
4062ca:	03 c2                	add    %edx,%eax
4062cc:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4062cf:	8b 08                	mov    (%eax),%ecx
4062d1:	81 e9 50 45 00 00    	sub    $0x4550,%ecx
4062d7:	f7 d9                	neg    %ecx
4062d9:	1b c9                	sbb    %ecx,%ecx
4062db:	f7 d1                	not    %ecx
4062dd:	23 c8                	and    %eax,%ecx
4062df:	eb 09                	jmp    0x4062ea
4062e1:	33 c0                	xor    %eax,%eax
4062e3:	40                   	inc    %eax
4062e4:	c3                   	ret
4062e5:	8b 65 e8             	mov    -0x18(%ebp),%esp
4062e8:	33 c9                	xor    %ecx,%ecx
4062ea:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
4062ed:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4062f4:	8b c1                	mov    %ecx,%eax
4062f6:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4062f9:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
406300:	59                   	pop    %ecx
406301:	5f                   	pop    %edi
406302:	5e                   	pop    %esi
406303:	5b                   	pop    %ebx
406304:	c9                   	leave
406305:	c2 04 00             	ret    $0x4
406308:	8b ff                	mov    %edi,%edi
40630a:	55                   	push   %ebp
40630b:	8b ec                	mov    %esp,%ebp
40630d:	6a 00                	push   $0x0
40630f:	ff 15 70 f0 40 00    	call   *0x40f070
406315:	85 c0                	test   %eax,%eax
406317:	74 20                	je     0x406339
406319:	50                   	push   %eax
40631a:	e8 75 ff ff ff       	call   0x406294
40631f:	85 c0                	test   %eax,%eax
406321:	74 16                	je     0x406339
406323:	0f b7 48 5c          	movzwl 0x5c(%eax),%ecx
406327:	6a 02                	push   $0x2
406329:	58                   	pop    %eax
40632a:	66 3b c8             	cmp    %ax,%cx
40632d:	74 0d                	je     0x40633c
40632f:	83 f9 03             	cmp    $0x3,%ecx
406332:	75 05                	jne    0x406339
406334:	33 c0                	xor    %eax,%eax
406336:	40                   	inc    %eax
406337:	5d                   	pop    %ebp
406338:	c3                   	ret
406339:	8b 45 08             	mov    0x8(%ebp),%eax
40633c:	5d                   	pop    %ebp
40633d:	c3                   	ret
40633e:	ff 25 f0 f0 40 00    	jmp    *0x40f0f0
406344:	cc                   	int3
406345:	cc                   	int3
406346:	cc                   	int3
406347:	cc                   	int3
406348:	cc                   	int3
406349:	cc                   	int3
40634a:	cc                   	int3
40634b:	cc                   	int3
40634c:	cc                   	int3
40634d:	cc                   	int3
40634e:	cc                   	int3
40634f:	cc                   	int3
406350:	33 c0                	xor    %eax,%eax
406352:	c3                   	ret
406353:	cc                   	int3
406354:	cc                   	int3
406355:	cc                   	int3
406356:	cc                   	int3
406357:	cc                   	int3
406358:	cc                   	int3
406359:	cc                   	int3
40635a:	cc                   	int3
40635b:	cc                   	int3
40635c:	cc                   	int3
40635d:	cc                   	int3
40635e:	cc                   	int3
40635f:	cc                   	int3
406360:	8b ff                	mov    %edi,%edi
406362:	55                   	push   %ebp
406363:	8b ec                	mov    %esp,%ebp
406365:	8b 45 08             	mov    0x8(%ebp),%eax
406368:	33 d2                	xor    %edx,%edx
40636a:	53                   	push   %ebx
40636b:	56                   	push   %esi
40636c:	57                   	push   %edi
40636d:	8b 48 3c             	mov    0x3c(%eax),%ecx
406370:	03 c8                	add    %eax,%ecx
406372:	0f b7 41 14          	movzwl 0x14(%ecx),%eax
406376:	0f b7 59 06          	movzwl 0x6(%ecx),%ebx
40637a:	83 c0 18             	add    $0x18,%eax
40637d:	03 c1                	add    %ecx,%eax
40637f:	85 db                	test   %ebx,%ebx
406381:	74 1b                	je     0x40639e
406383:	8b 7d 0c             	mov    0xc(%ebp),%edi
406386:	8b 70 0c             	mov    0xc(%eax),%esi
406389:	3b fe                	cmp    %esi,%edi
40638b:	72 09                	jb     0x406396
40638d:	8b 48 08             	mov    0x8(%eax),%ecx
406390:	03 ce                	add    %esi,%ecx
406392:	3b f9                	cmp    %ecx,%edi
406394:	72 0a                	jb     0x4063a0
406396:	42                   	inc    %edx
406397:	83 c0 28             	add    $0x28,%eax
40639a:	3b d3                	cmp    %ebx,%edx
40639c:	72 e8                	jb     0x406386
40639e:	33 c0                	xor    %eax,%eax
4063a0:	5f                   	pop    %edi
4063a1:	5e                   	pop    %esi
4063a2:	5b                   	pop    %ebx
4063a3:	5d                   	pop    %ebp
4063a4:	c3                   	ret
4063a5:	cc                   	int3
4063a6:	cc                   	int3
4063a7:	cc                   	int3
4063a8:	cc                   	int3
4063a9:	cc                   	int3
4063aa:	cc                   	int3
4063ab:	cc                   	int3
4063ac:	cc                   	int3
4063ad:	cc                   	int3
4063ae:	cc                   	int3
4063af:	cc                   	int3
4063b0:	8b ff                	mov    %edi,%edi
4063b2:	55                   	push   %ebp
4063b3:	8b ec                	mov    %esp,%ebp
4063b5:	6a fe                	push   $0xfffffffe
4063b7:	68 58 ce 40 00       	push   $0x40ce58
4063bc:	68 c0 65 40 00       	push   $0x4065c0
4063c1:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4063c7:	50                   	push   %eax
4063c8:	83 ec 08             	sub    $0x8,%esp
4063cb:	53                   	push   %ebx
4063cc:	56                   	push   %esi
4063cd:	57                   	push   %edi
4063ce:	a1 04 e0 40 00       	mov    0x40e004,%eax
4063d3:	31 45 f8             	xor    %eax,-0x8(%ebp)
4063d6:	33 c5                	xor    %ebp,%eax
4063d8:	50                   	push   %eax
4063d9:	8d 45 f0             	lea    -0x10(%ebp),%eax
4063dc:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4063e2:	89 65 e8             	mov    %esp,-0x18(%ebp)
4063e5:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
4063ec:	68 00 00 40 00       	push   $0x400000
4063f1:	e8 7a 00 00 00       	call   0x406470
4063f6:	83 c4 04             	add    $0x4,%esp
4063f9:	85 c0                	test   %eax,%eax
4063fb:	74 54                	je     0x406451
4063fd:	8b 45 08             	mov    0x8(%ebp),%eax
406400:	2d 00 00 40 00       	sub    $0x400000,%eax
406405:	50                   	push   %eax
406406:	68 00 00 40 00       	push   $0x400000
40640b:	e8 50 ff ff ff       	call   0x406360
406410:	83 c4 08             	add    $0x8,%esp
406413:	85 c0                	test   %eax,%eax
406415:	74 3a                	je     0x406451
406417:	8b 40 24             	mov    0x24(%eax),%eax
40641a:	c1 e8 1f             	shr    $0x1f,%eax
40641d:	f7 d0                	not    %eax
40641f:	83 e0 01             	and    $0x1,%eax
406422:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
406429:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40642c:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
406433:	59                   	pop    %ecx
406434:	5f                   	pop    %edi
406435:	5e                   	pop    %esi
406436:	5b                   	pop    %ebx
406437:	8b e5                	mov    %ebp,%esp
406439:	5d                   	pop    %ebp
40643a:	c3                   	ret
40643b:	8b 45 ec             	mov    -0x14(%ebp),%eax
40643e:	8b 00                	mov    (%eax),%eax
406440:	33 c9                	xor    %ecx,%ecx
406442:	81 38 05 00 00 c0    	cmpl   $0xc0000005,(%eax)
406448:	0f 94 c1             	sete   %cl
40644b:	8b c1                	mov    %ecx,%eax
40644d:	c3                   	ret
40644e:	8b 65 e8             	mov    -0x18(%ebp),%esp
406451:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
406458:	33 c0                	xor    %eax,%eax
40645a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40645d:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
406464:	59                   	pop    %ecx
406465:	5f                   	pop    %edi
406466:	5e                   	pop    %esi
406467:	5b                   	pop    %ebx
406468:	8b e5                	mov    %ebp,%esp
40646a:	5d                   	pop    %ebp
40646b:	c3                   	ret
40646c:	cc                   	int3
40646d:	cc                   	int3
40646e:	cc                   	int3
40646f:	cc                   	int3
406470:	8b ff                	mov    %edi,%edi
406472:	55                   	push   %ebp
406473:	8b ec                	mov    %esp,%ebp
406475:	8b 4d 08             	mov    0x8(%ebp),%ecx
406478:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
40647d:	66 39 01             	cmp    %ax,(%ecx)
406480:	75 1f                	jne    0x4064a1
406482:	8b 41 3c             	mov    0x3c(%ecx),%eax
406485:	03 c1                	add    %ecx,%eax
406487:	81 38 50 45 00 00    	cmpl   $0x4550,(%eax)
40648d:	75 12                	jne    0x4064a1
40648f:	b9 0b 01 00 00       	mov    $0x10b,%ecx
406494:	66 39 48 18          	cmp    %cx,0x18(%eax)
406498:	75 07                	jne    0x4064a1
40649a:	b8 01 00 00 00       	mov    $0x1,%eax
40649f:	5d                   	pop    %ebp
4064a0:	c3                   	ret
4064a1:	33 c0                	xor    %eax,%eax
4064a3:	5d                   	pop    %ebp
4064a4:	c3                   	ret
4064a5:	8b ff                	mov    %edi,%edi
4064a7:	55                   	push   %ebp
4064a8:	8b ec                	mov    %esp,%ebp
4064aa:	83 ec 14             	sub    $0x14,%esp
4064ad:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
4064b1:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
4064b5:	a1 04 e0 40 00       	mov    0x40e004,%eax
4064ba:	56                   	push   %esi
4064bb:	57                   	push   %edi
4064bc:	bf 4e e6 40 bb       	mov    $0xbb40e64e,%edi
4064c1:	be 00 00 ff ff       	mov    $0xffff0000,%esi
4064c6:	3b c7                	cmp    %edi,%eax
4064c8:	74 04                	je     0x4064ce
4064ca:	85 c6                	test   %eax,%esi
4064cc:	75 64                	jne    0x406532
4064ce:	8d 45 f4             	lea    -0xc(%ebp),%eax
4064d1:	50                   	push   %eax
4064d2:	ff 15 bc f0 40 00    	call   *0x40f0bc
4064d8:	8b 45 f8             	mov    -0x8(%ebp),%eax
4064db:	33 45 f4             	xor    -0xc(%ebp),%eax
4064de:	89 45 fc             	mov    %eax,-0x4(%ebp)
4064e1:	ff 15 98 f0 40 00    	call   *0x40f098
4064e7:	31 45 fc             	xor    %eax,-0x4(%ebp)
4064ea:	ff 15 94 f0 40 00    	call   *0x40f094
4064f0:	31 45 fc             	xor    %eax,-0x4(%ebp)
4064f3:	ff 15 b8 f0 40 00    	call   *0x40f0b8
4064f9:	33 45 fc             	xor    -0x4(%ebp),%eax
4064fc:	8d 4d fc             	lea    -0x4(%ebp),%ecx
4064ff:	33 c1                	xor    %ecx,%eax
406501:	89 45 fc             	mov    %eax,-0x4(%ebp)