40d0c3:	66 85 c0             	test   %ax,%ax
40d0c6:	74 30                	je     0x40d0f8
40d0c8:	66 3b c7             	cmp    %di,%ax
40d0cb:	74 05                	je     0x40d0d2
40d0cd:	66 3b c3             	cmp    %bx,%ax
40d0d0:	75 04                	jne    0x40d0d6
40d0d2:	85 f6                	test   %esi,%esi
40d0d4:	74 22                	je     0x40d0f8
40d0d6:	66 83 f8 22          	cmp    $0x22,%ax
40d0da:	75 09                	jne    0x40d0e5
40d0dc:	33 c0                	xor    %eax,%eax
40d0de:	85 f6                	test   %esi,%esi
40d0e0:	0f 94 c0             	sete   %al
40d0e3:	8b f0                	mov    %eax,%esi
40d0e5:	52                   	push   %edx
40d0e6:	ff 15 18 62 42 00    	call   *0x426218
40d0ec:	8b d0                	mov    %eax,%edx
40d0ee:	0f b7 0a             	movzwl (%edx),%ecx
40d0f1:	8b c1                	mov    %ecx,%eax
40d0f3:	66 85 c9             	test   %cx,%cx
40d0f6:	75 d0                	jne    0x40d0c8
40d0f8:	0f b7 02             	movzwl (%edx),%eax
40d0fb:	66 3b c7             	cmp    %di,%ax
40d0fe:	74 05                	je     0x40d105
40d100:	66 3b c3             	cmp    %bx,%ax
40d103:	75 05                	jne    0x40d10a
40d105:	83 c2 02             	add    $0x2,%edx
40d108:	eb ee                	jmp    0x40d0f8
40d10a:	5f                   	pop    %edi
40d10b:	5e                   	pop    %esi
40d10c:	8b c2                	mov    %edx,%eax
40d10e:	5b                   	pop    %ebx
40d10f:	c3                   	ret
40d110:	8b ff                	mov    %edi,%edi
40d112:	55                   	push   %ebp
40d113:	8b ec                	mov    %esp,%ebp
40d115:	83 ec 0c             	sub    $0xc,%esp
40d118:	56                   	push   %esi
40d119:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d11c:	33 f6                	xor    %esi,%esi
40d11e:	50                   	push   %eax
40d11f:	6a 08                	push   $0x8
40d121:	89 75 fc             	mov    %esi,-0x4(%ebp)
40d124:	ff 15 a0 60 42 00    	call   *0x4260a0
40d12a:	50                   	push   %eax
40d12b:	ff 15 00 90 42 00    	call   *0x429000
40d131:	85 c0                	test   %eax,%eax
40d133:	74 2a                	je     0x40d15f
40d135:	6a 04                	push   $0x4
40d137:	59                   	pop    %ecx
40d138:	8d 45 f8             	lea    -0x8(%ebp),%eax
40d13b:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40d13e:	50                   	push   %eax
40d13f:	51                   	push   %ecx
40d140:	8d 45 f4             	lea    -0xc(%ebp),%eax
40d143:	50                   	push   %eax
40d144:	6a 14                	push   $0x14
40d146:	ff 75 fc             	push   -0x4(%ebp)
40d149:	ff 15 08 90 42 00    	call   *0x429008
40d14f:	85 c0                	test   %eax,%eax
40d151:	74 03                	je     0x40d156
40d153:	8b 75 f4             	mov    -0xc(%ebp),%esi
40d156:	ff 75 fc             	push   -0x4(%ebp)
40d159:	ff 15 54 61 42 00    	call   *0x426154
40d15f:	8b c6                	mov    %esi,%eax
40d161:	5e                   	pop    %esi
40d162:	c9                   	leave
40d163:	c3                   	ret
40d164:	8b ff                	mov    %edi,%edi
40d166:	55                   	push   %ebp
40d167:	8b ec                	mov    %esp,%ebp
40d169:	83 e4 f8             	and    $0xfffffff8,%esp
40d16c:	83 ec 4c             	sub    $0x4c,%esp
40d16f:	a1 10 42 42 00       	mov    0x424210,%eax
40d174:	33 c4                	xor    %esp,%eax
40d176:	89 44 24 48          	mov    %eax,0x48(%esp)
40d17a:	53                   	push   %ebx
40d17b:	56                   	push   %esi
40d17c:	8b 75 08             	mov    0x8(%ebp),%esi
40d17f:	57                   	push   %edi
40d180:	51                   	push   %ecx
40d181:	51                   	push   %ecx
40d182:	6a 01                	push   $0x1
40d184:	b9 28 5f 42 00       	mov    $0x425f28,%ecx
40d189:	89 74 24 1c          	mov    %esi,0x1c(%esp)
40d18d:	e8 9a 15 00 00       	call   0x40e72c
40d192:	64 a1 30 00 00 00    	mov    %fs:0x30,%eax
40d198:	8d 7c 24 14          	lea    0x14(%esp),%edi
40d19c:	6a 07                	push   $0x7
40d19e:	8a 48 03             	mov    0x3(%eax),%cl
40d1a1:	64 a1 30 00 00 00    	mov    %fs:0x30,%eax
40d1a7:	80 c9 80             	or     $0x80,%cl
40d1aa:	88 48 03             	mov    %cl,0x3(%eax)
40d1ad:	33 c0                	xor    %eax,%eax
40d1af:	59                   	pop    %ecx
40d1b0:	f3 ab                	rep stos %eax,%es:(%edi)
40d1b2:	ff 15 a4 60 42 00    	call   *0x4260a4
40d1b8:	68 9c 59 42 00       	push   $0x42599c
40d1bd:	8b f8                	mov    %eax,%edi
40d1bf:	ff 15 ec 62 42 00    	call   *0x4262ec
40d1c5:	33 db                	xor    %ebx,%ebx
40d1c7:	b9 08 41 42 00       	mov    $0x424108,%ecx
40d1cc:	89 1d b0 59 42 00    	mov    %ebx,0x4259b0
40d1d2:	89 1d b4 59 42 00    	mov    %ebx,0x4259b4
40d1d8:	e8 de 8e ff ff       	call   0x4060bb
40d1dd:	e8 07 14 01 00       	call   0x41e5e9
40d1e2:	53                   	push   %ebx
40d1e3:	53                   	push   %ebx
40d1e4:	6a 01                	push   $0x1
40d1e6:	53                   	push   %ebx
40d1e7:	ff 15 a8 60 42 00    	call   *0x4260a8
40d1ed:	6a 02                	push   $0x2
40d1ef:	53                   	push   %ebx
40d1f0:	ff 15 e8 62 42 00    	call   *0x4262e8
40d1f6:	85 c0                	test   %eax,%eax
40d1f8:	0f 88 a5 01 00 00    	js     0x40d3a3
40d1fe:	8d 54 24 0c          	lea    0xc(%esp),%edx
40d202:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
40d206:	e8 9f 3c 01 00       	call   0x420eaa
40d20b:	8b de                	mov    %esi,%ebx
40d20d:	85 c0                	test   %eax,%eax
40d20f:	78 04                	js     0x40d215
40d211:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
40d215:	8b cf                	mov    %edi,%ecx
40d217:	e8 95 fe ff ff       	call   0x40d0b1
40d21c:	ff 75 14             	push   0x14(%ebp)
40d21f:	8b d3                	mov    %ebx,%edx
40d221:	8b ce                	mov    %esi,%ecx
40d223:	50                   	push   %eax
40d224:	e8 92 52 00 00       	call   0x4124bb
40d229:	85 c0                	test   %eax,%eax
40d22b:	0f 84 33 01 00 00    	je     0x40d364
40d231:	e8 da fe ff ff       	call   0x40d110
40d236:	8b c8                	mov    %eax,%ecx
40d238:	e8 03 14 01 00       	call   0x41e640
40d23d:	33 f6                	xor    %esi,%esi
40d23f:	56                   	push   %esi
40d240:	56                   	push   %esi
40d241:	ff 15 78 60 42 00    	call   *0x426078
40d247:	50                   	push   %eax
40d248:	68 10 d5 40 00       	push   $0x40d510
40d24d:	56                   	push   %esi
40d24e:	b8 0b 80 00 00       	mov    $0x800b,%eax
40d253:	50                   	push   %eax
40d254:	50                   	push   %eax
40d255:	ff 15 1c 62 42 00    	call   *0x42621c
40d25b:	89 44 24 0c          	mov    %eax,0xc(%esp)
40d25f:	eb 7f                	jmp    0x40d2e0
40d261:	83 7c 24 18 50       	cmpl   $0x50,0x18(%esp)
40d266:	75 13                	jne    0x40d27b
40d268:	56                   	push   %esi
40d269:	56                   	push   %esi
40d26a:	68 01 80 00 00       	push   $0x8001
40d26f:	ff 35 0c 5e 42 00    	push   0x425e0c
40d275:	ff 15 bc 61 42 00    	call   *0x4261bc
40d27b:	8d 44 24 14          	lea    0x14(%esp),%eax
40d27f:	50                   	push   %eax
40d280:	ff 35 c8 4e 42 00    	push   0x424ec8
40d286:	ff 35 0c 5e 42 00    	push   0x425e0c
40d28c:	ff 15 24 62 42 00    	call   *0x426224
40d292:	85 c0                	test   %eax,%eax
40d294:	75 4a                	jne    0x40d2e0
40d296:	a1 00 5e 42 00       	mov    0x425e00,%eax
40d29b:	85 c0                	test   %eax,%eax
40d29d:	74 10                	je     0x40d2af
40d29f:	8d 4c 24 14          	lea    0x14(%esp),%ecx
40d2a3:	51                   	push   %ecx
40d2a4:	50                   	push   %eax
40d2a5:	ff 15 28 62 42 00    	call   *0x426228
40d2ab:	85 c0                	test   %eax,%eax
40d2ad:	75 31                	jne    0x40d2e0
40d2af:	8d 44 24 14          	lea    0x14(%esp),%eax
40d2b3:	50                   	push   %eax
40d2b4:	ff 35 c4 4e 42 00    	push   0x424ec4
40d2ba:	ff 35 0c 5e 42 00    	push   0x425e0c
40d2c0:	ff 15 24 62 42 00    	call   *0x426224
40d2c6:	85 c0                	test   %eax,%eax
40d2c8:	75 16                	jne    0x40d2e0
40d2ca:	8d 44 24 14          	lea    0x14(%esp),%eax
40d2ce:	50                   	push   %eax
40d2cf:	ff 15 2c 62 42 00    	call   *0x42622c
40d2d5:	8d 44 24 14          	lea    0x14(%esp),%eax
40d2d9:	50                   	push   %eax
40d2da:	ff 15 30 62 42 00    	call   *0x426230
40d2e0:	56                   	push   %esi
40d2e1:	56                   	push   %esi
40d2e2:	56                   	push   %esi
40d2e3:	8d 44 24 20          	lea    0x20(%esp),%eax
40d2e7:	50                   	push   %eax
40d2e8:	ff 15 20 62 42 00    	call   *0x426220
40d2ee:	85 c0                	test   %eax,%eax
40d2f0:	0f 85 6b ff ff ff    	jne    0x40d261
40d2f6:	8b 35 fc 5b 42 00    	mov    0x425bfc,%esi
40d2fc:	8d 44 24 30          	lea    0x30(%esp),%eax
40d300:	8b 3d f0 5b 42 00    	mov    0x425bf0,%edi
40d306:	50                   	push   %eax
40d307:	6a 00                	push   $0x0
40d309:	ff 35 70 59 42 00    	push   0x425970
40d30f:	ff 15 fc 60 42 00    	call   *0x4260fc
40d315:	f7 d8                	neg    %eax
40d317:	b9 00 4e 42 00       	mov    $0x424e00,%ecx
40d31c:	56                   	push   %esi
40d31d:	1b c0                	sbb    %eax,%eax
40d31f:	23 44 24 54          	and    0x54(%esp),%eax
40d323:	57                   	push   %edi
40d324:	8b d0                	mov    %eax,%edx
40d326:	e8 dc 15 01 00       	call   0x41e907
40d32b:	8b 0d 14 5e 42 00    	mov    0x425e14,%ecx
40d331:	85 c9                	test   %ecx,%ecx
40d333:	74 17                	je     0x40d34c
40d335:	8b 01                	mov    (%ecx),%eax
40d337:	51                   	push   %ecx
40d338:	8b 70 08             	mov    0x8(%eax),%esi
40d33b:	8b ce                	mov    %esi,%ecx
40d33d:	ff 15 78 64 42 00    	call   *0x426478
40d343:	ff d6                	call   *%esi
40d345:	83 25 14 5e 42 00 00 	andl   $0x0,0x425e14
40d34c:	e8 dc da ff ff       	call   0x40ae2d
40d351:	8b 44 24 0c          	mov    0xc(%esp),%eax
40d355:	85 c0                	test   %eax,%eax
40d357:	74 07                	je     0x40d360
40d359:	50                   	push   %eax
40d35a:	ff 15 34 62 42 00    	call   *0x426234
40d360:	8b 74 24 10          	mov    0x10(%esp),%esi
40d364:	8b 0d c0 59 42 00    	mov    0x4259c0,%ecx
40d36a:	8b c1                	mov    %ecx,%eax
40d36c:	8b 15 c4 59 42 00    	mov    0x4259c4,%edx
40d372:	0b c2                	or     %edx,%eax
40d374:	74 15                	je     0x40d38b
40d376:	52                   	push   %edx
40d377:	51                   	push   %ecx
40d378:	e8 b4 2d 01 00       	call   0x420131
40d37d:	83 25 c0 59 42 00 00 	andl   $0x0,0x4259c0
40d384:	83 25 c4 59 42 00 00 	andl   $0x0,0x4259c4
40d38b:	e8 cc da ff ff       	call   0x40ae5c
40d390:	3b de                	cmp    %esi,%ebx
40d392:	74 07                	je     0x40d39b
40d394:	53                   	push   %ebx
40d395:	ff 15 ac 60 42 00    	call   *0x4260ac
40d39b:	ff 15 f0 62 42 00    	call   *0x4262f0
40d3a1:	33 db                	xor    %ebx,%ebx
40d3a3:	a1 24 41 42 00       	mov    0x424124,%eax
40d3a8:	8b 0d 20 41 42 00    	mov    0x424120,%ecx
40d3ae:	50                   	push   %eax
40d3af:	51                   	push   %ecx
40d3b0:	89 1d 08 41 42 00    	mov    %ebx,0x424108
40d3b6:	89 1d 20 41 42 00    	mov    %ebx,0x424120
40d3bc:	89 1d 24 41 42 00    	mov    %ebx,0x424124
40d3c2:	ff 15 3c 90 42 00    	call   *0x42903c
40d3c8:	8b 4c 24 54          	mov    0x54(%esp),%ecx
40d3cc:	8b 44 24 1c          	mov    0x1c(%esp),%eax
40d3d0:	5f                   	pop    %edi
40d3d1:	5e                   	pop    %esi
40d3d2:	5b                   	pop    %ebx
40d3d3:	33 cc                	xor    %esp,%ecx
40d3d5:	e8 96 44 01 00       	call   0x421870
40d3da:	8b e5                	mov    %ebp,%esp
40d3dc:	5d                   	pop    %ebp
40d3dd:	c2 10 00             	ret    $0x10
40d3e0:	b1 01                	mov    $0x1,%cl
40d3e2:	e8 0f 00 00 00       	call   0x40d3f6
40d3e7:	e8 35 01 00 00       	call   0x40d521
40d3ec:	e8 ee 01 00 00       	call   0x40d5df
40d3f1:	e9 b5 02 00 00       	jmp    0x40d6ab
40d3f6:	8b ff                	mov    %edi,%edi
40d3f8:	55                   	push   %ebp
40d3f9:	8b ec                	mov    %esp,%ebp
40d3fb:	81 ec 84 00 00 00    	sub    $0x84,%esp
40d401:	a1 10 42 42 00       	mov    0x424210,%eax
40d406:	33 c5                	xor    %ebp,%eax
40d408:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d40b:	83 3d f0 5b 42 00 00 	cmpl   $0x0,0x425bf0
40d412:	53                   	push   %ebx
40d413:	56                   	push   %esi
40d414:	57                   	push   %edi
40d415:	8a d9                	mov    %cl,%bl
40d417:	bf d0 4d 42 00       	mov    $0x424dd0,%edi
40d41c:	74 0b                	je     0x40d429
40d41e:	51                   	push   %ecx
40d41f:	51                   	push   %ecx
40d420:	6a 01                	push   $0x1
40d422:	8b cf                	mov    %edi,%ecx
40d424:	e8 5e 19 00 00       	call   0x40ed87
40d429:	51                   	push   %ecx
40d42a:	51                   	push   %ecx
40d42b:	6a 01                	push   $0x1
40d42d:	b9 48 5f 42 00       	mov    $0x425f48,%ecx
40d432:	e8 b6 11 00 00       	call   0x40e5ed
40d437:	6a 00                	push   $0x0
40d439:	6a 00                	push   $0x0
40d43b:	68 12 15 00 00       	push   $0x1512
40d440:	ff 35 04 5e 42 00    	push   0x425e04
40d446:	ff 15 bc 62 42 00    	call   *0x4262bc
40d44c:	51                   	push   %ecx
40d44d:	51                   	push   %ecx
40d44e:	6a 01                	push   $0x1
40d450:	8b cf                	mov    %edi,%ecx
40d452:	8b f0                	mov    %eax,%esi
40d454:	e8 2e 19 00 00       	call   0x40ed87
40d459:	6a 00                	push   $0x0
40d45b:	56                   	push   %esi
40d45c:	68 13 15 00 00       	push   $0x1513
40d461:	ff 35 04 5e 42 00    	push   0x425e04
40d467:	ff 15 bc 62 42 00    	call   *0x4262bc
40d46d:	6a 00                	push   $0x0
40d46f:	8d 78 01             	lea    0x1(%eax),%edi
40d472:	8d 4f ff             	lea    -0x1(%edi),%ecx
40d475:	51                   	push   %ecx
40d476:	68 14 15 00 00       	push   $0x1514
40d47b:	ff 35 04 5e 42 00    	push   0x425e04
40d481:	ff 15 bc 62 42 00    	call   *0x4262bc
40d487:	2b f0                	sub    %eax,%esi
40d489:	46                   	inc    %esi
40d48a:	84 db                	test   %bl,%bl
40d48c:	75 10                	jne    0x40d49e
40d48e:	3b 35 78 59 42 00    	cmp    0x425978,%esi
40d494:	75 08                	jne    0x40d49e
40d496:	3b 3d 7c 59 42 00    	cmp    0x42597c,%edi
40d49c:	74 61                	je     0x40d4ff
40d49e:	6a 7e                	push   $0x7e
40d4a0:	8d 85 7e ff ff ff    	lea    -0x82(%ebp),%eax
40d4a6:	6a 00                	push   $0x0
40d4a8:	50                   	push   %eax
40d4a9:	e8 9a 53 01 00       	call   0x422848
40d4ae:	6a 20                	push   $0x20
40d4b0:	58                   	pop    %eax
40d4b1:	56                   	push   %esi
40d4b2:	57                   	push   %edi
40d4b3:	ff 35 70 42 42 00    	push   0x424270
40d4b9:	66 89 85 7c ff ff ff 	mov    %ax,-0x84(%ebp)
40d4c0:	8d 85 7e ff ff ff    	lea    -0x82(%ebp),%eax
40d4c6:	6a 3f                	push   $0x3f
40d4c8:	50                   	push   %eax
40d4c9:	e8 29 90 ff ff       	call   0x4064f7
40d4ce:	83 c4 20             	add    $0x20,%esp
40d4d1:	85 c0                	test   %eax,%eax
40d4d3:	78 1e                	js     0x40d4f3
40d4d5:	a1 08 5e 42 00       	mov    0x425e08,%eax
40d4da:	85 c0                	test   %eax,%eax
40d4dc:	74 15                	je     0x40d4f3
40d4de:	8d 8d 7c ff ff ff    	lea    -0x84(%ebp),%ecx
40d4e4:	51                   	push   %ecx
40d4e5:	6a 01                	push   $0x1
40d4e7:	68 0b 04 00 00       	push   $0x40b
40d4ec:	50                   	push   %eax
40d4ed:	ff 15 bc 62 42 00    	call   *0x4262bc
40d4f3:	89 35 78 59 42 00    	mov    %esi,0x425978
40d4f9:	89 3d 7c 59 42 00    	mov    %edi,0x42597c
40d4ff:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d502:	5f                   	pop    %edi