40a21c:	b9 5c 00 00 00       	mov    $0x5c,%ecx
40a221:	33 c0                	xor    %eax,%eax
40a223:	8b d1                	mov    %ecx,%edx
40a225:	6a 66                	push   $0x66
40a227:	66 89 8d 80 fe ff ff 	mov    %cx,-0x180(%ebp)
40a22e:	50                   	push   %eax
40a22f:	8d 4d 9a             	lea    -0x66(%ebp),%ecx
40a232:	51                   	push   %ecx
40a233:	66 89 95 00 ff ff ff 	mov    %dx,-0x100(%ebp)
40a23a:	c7 45 80 50 00 72 00 	movl   $0x720050,-0x80(%ebp)
40a241:	c7 45 84 6f 00 67 00 	movl   $0x67006f,-0x7c(%ebp)
40a248:	c7 45 88 72 00 61 00 	movl   $0x610072,-0x78(%ebp)
40a24f:	c7 45 8c 6d 00 46 00 	movl   $0x46006d,-0x74(%ebp)
40a256:	c7 45 90 69 00 6c 00 	movl   $0x6c0069,-0x70(%ebp)
40a25d:	c7 45 94 65 00 73 00 	movl   $0x730065,-0x6c(%ebp)
40a264:	66 89 45 98          	mov    %ax,-0x68(%ebp)
40a268:	e8 73 e1 00 00       	call   0x4183e0
40a26d:	8d 95 78 fc ff ff    	lea    -0x388(%ebp),%edx
40a273:	52                   	push   %edx
40a274:	8d 45 80             	lea    -0x80(%ebp),%eax
40a277:	50                   	push   %eax
40a278:	56                   	push   %esi
40a279:	e8 c2 e3 ff ff       	call   0x408640
40a27e:	8d 4d 80             	lea    -0x80(%ebp),%ecx
40a281:	51                   	push   %ecx
40a282:	e8 c9 e3 00 00       	call   0x418650
40a287:	8b 7d 0c             	mov    0xc(%ebp),%edi
40a28a:	83 c4 40             	add    $0x40,%esp
40a28d:	03 c0                	add    %eax,%eax
40a28f:	50                   	push   %eax
40a290:	8d 95 78 fc ff ff    	lea    -0x388(%ebp),%edx
40a296:	57                   	push   %edi
40a297:	52                   	push   %edx
40a298:	e8 d3 e3 00 00       	call   0x418670
40a29d:	83 c4 0c             	add    $0xc,%esp
40a2a0:	85 c0                	test   %eax,%eax
40a2a2:	74 0b                	je     0x40a2af
40a2a4:	5f                   	pop    %edi
40a2a5:	b8 01 00 00 00       	mov    $0x1,%eax
40a2aa:	5e                   	pop    %esi
40a2ab:	8b e5                	mov    %ebp,%esp
40a2ad:	5d                   	pop    %ebp
40a2ae:	c3                   	ret
40a2af:	6a 00                	push   $0x0
40a2b1:	6a 03                	push   $0x3
40a2b3:	8d 85 78 fc ff ff    	lea    -0x388(%ebp),%eax
40a2b9:	50                   	push   %eax
40a2ba:	56                   	push   %esi
40a2bb:	e8 b0 e4 ff ff       	call   0x408770
40a2c0:	8d 8d 82 fe ff ff    	lea    -0x17e(%ebp),%ecx
40a2c6:	57                   	push   %edi
40a2c7:	51                   	push   %ecx
40a2c8:	e8 c3 e5 00 00       	call   0x418890
40a2cd:	8d 95 02 ff ff ff    	lea    -0xfe(%ebp),%edx
40a2d3:	57                   	push   %edi
40a2d4:	52                   	push   %edx
40a2d5:	e8 26 6d ff ff       	call   0x401000
40a2da:	6a 00                	push   $0x0
40a2dc:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
40a2e2:	50                   	push   %eax
40a2e3:	8d 8d 78 fc ff ff    	lea    -0x388(%ebp),%ecx
40a2e9:	51                   	push   %ecx
40a2ea:	e8 d1 e4 00 00       	call   0x4187c0
40a2ef:	6a 00                	push   $0x0
40a2f1:	8d 95 80 fe ff ff    	lea    -0x180(%ebp),%edx
40a2f7:	52                   	push   %edx
40a2f8:	8d 85 78 fc ff ff    	lea    -0x388(%ebp),%eax
40a2fe:	50                   	push   %eax
40a2ff:	e8 bc e4 00 00       	call   0x4187c0
40a304:	6a 00                	push   $0x0
40a306:	6a 15                	push   $0x15
40a308:	8d 8d 78 fc ff ff    	lea    -0x388(%ebp),%ecx
40a30e:	51                   	push   %ecx
40a30f:	56                   	push   %esi
40a310:	e8 bb 7b 00 00       	call   0x411ed0
40a315:	83 c4 48             	add    $0x48,%esp
40a318:	f7 d8                	neg    %eax
40a31a:	1b c0                	sbb    %eax,%eax
40a31c:	5f                   	pop    %edi
40a31d:	f7 d8                	neg    %eax
40a31f:	5e                   	pop    %esi
40a320:	8b e5                	mov    %ebp,%esp
40a322:	5d                   	pop    %ebp
40a323:	c3                   	ret
40a324:	75 fd                	jne    0x40a323
40a326:	ef                   	out    %eax,(%dx)
40a327:	e7 48                	out    %eax,$0x48
40a329:	34 71                	xor    $0x71,%al
40a32b:	29 67 6c             	sub    %esp,0x6c(%edi)
40a32e:	4f                   	dec    %edi
40a32f:	43                   	inc    %ebx
40a330:	55                   	push   %ebp
40a331:	8b ec                	mov    %esp,%ebp
40a333:	81 ec 1c 07 00 00    	sub    $0x71c,%esp
40a339:	56                   	push   %esi
40a33a:	57                   	push   %edi
40a33b:	33 c0                	xor    %eax,%eax
40a33d:	68 fe 03 00 00       	push   $0x3fe
40a342:	50                   	push   %eax
40a343:	8d 8d e6 f8 ff ff    	lea    -0x71a(%ebp),%ecx
40a349:	51                   	push   %ecx
40a34a:	66 89 85 e4 f8 ff ff 	mov    %ax,-0x71c(%ebp)
40a351:	e8 8a e0 00 00       	call   0x4183e0
40a356:	33 d2                	xor    %edx,%edx
40a358:	68 06 02 00 00       	push   $0x206
40a35d:	52                   	push   %edx
40a35e:	8d 85 e6 fc ff ff    	lea    -0x31a(%ebp),%eax
40a364:	50                   	push   %eax
40a365:	66 89 95 e4 fc ff ff 	mov    %dx,-0x31c(%ebp)
40a36c:	e8 6f e0 00 00       	call   0x4183e0
40a371:	33 c0                	xor    %eax,%eax
40a373:	6a 7e                	push   $0x7e
40a375:	50                   	push   %eax
40a376:	8d 8d ee fe ff ff    	lea    -0x112(%ebp),%ecx
40a37c:	51                   	push   %ecx
40a37d:	c7 45 f8 22 00 20 00 	movl   $0x200022,-0x8(%ebp)
40a384:	c7 45 fc 22 00 00 00 	movl   $0x22,-0x4(%ebp)
40a38b:	c7 45 ec 22 00 20 00 	movl   $0x200022,-0x14(%ebp)
40a392:	c7 45 f0 2f 00 56 00 	movl   $0x56002f,-0x10(%ebp)
40a399:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
40a39d:	e8 3e e0 00 00       	call   0x4183e0
40a3a2:	ba 5c 00 00 00       	mov    $0x5c,%edx
40a3a7:	83 c4 24             	add    $0x24,%esp
40a3aa:	66 89 95 ec fe ff ff 	mov    %dx,-0x114(%ebp)
40a3b1:	e8 9a e5 00 00       	call   0x418950
40a3b6:	8b 75 08             	mov    0x8(%ebp),%esi
40a3b9:	a8 03                	test   $0x3,%al
40a3bb:	75 21                	jne    0x40a3de
40a3bd:	6a 3b                	push   $0x3b
40a3bf:	6a 26                	push   $0x26
40a3c1:	e8 4a db ff ff       	call   0x407f10
40a3c6:	0f b6 c0             	movzbl %al,%eax
40a3c9:	6a 01                	push   $0x1
40a3cb:	50                   	push   %eax
40a3cc:	8d 8d ee fe ff ff    	lea    -0x112(%ebp),%ecx
40a3d2:	51                   	push   %ecx
40a3d3:	56                   	push   %esi
40a3d4:	e8 97 e3 ff ff       	call   0x408770
40a3d9:	83 c4 18             	add    $0x18,%esp
40a3dc:	eb 1c                	jmp    0x40a3fa
40a3de:	6a 08                	push   $0x8
40a3e0:	6a 03                	push   $0x3
40a3e2:	e8 29 db ff ff       	call   0x407f10
40a3e7:	0f b6 d0             	movzbl %al,%edx
40a3ea:	52                   	push   %edx
40a3eb:	8d 85 ee fe ff ff    	lea    -0x112(%ebp),%eax
40a3f1:	50                   	push   %eax
40a3f2:	e8 d9 ee 00 00       	call   0x4192d0
40a3f7:	83 c4 10             	add    $0x10,%esp
40a3fa:	6a 08                	push   $0x8
40a3fc:	6a 03                	push   $0x3
40a3fe:	e8 0d db ff ff       	call   0x407f10
40a403:	0f b6 c8             	movzbl %al,%ecx
40a406:	83 c4 08             	add    $0x8,%esp
40a409:	51                   	push   %ecx
40a40a:	8d 95 ec fe ff ff    	lea    -0x114(%ebp),%edx
40a410:	52                   	push   %edx
40a411:	e8 3a e2 00 00       	call   0x418650
40a416:	8d 84 45 ec fe ff ff 	lea    -0x114(%ebp,%eax,2),%eax
40a41d:	83 c4 04             	add    $0x4,%esp
40a420:	50                   	push   %eax
40a421:	e8 aa ee 00 00       	call   0x4192d0
40a426:	8d 8d ec fe ff ff    	lea    -0x114(%ebp),%ecx
40a42c:	51                   	push   %ecx
40a42d:	e8 1e e2 00 00       	call   0x418650
40a432:	6a 01                	push   $0x1
40a434:	8b f8                	mov    %eax,%edi
40a436:	6a 20                	push   $0x20
40a438:	8d 94 7d ec fe ff ff 	lea    -0x114(%ebp,%edi,2),%edx
40a43f:	52                   	push   %edx
40a440:	56                   	push   %esi
40a441:	e8 2a e3 ff ff       	call   0x408770
40a446:	33 c9                	xor    %ecx,%ecx
40a448:	6a 66                	push   $0x66
40a44a:	51                   	push   %ecx
40a44b:	8d 55 86             	lea    -0x7a(%ebp),%edx
40a44e:	33 c0                	xor    %eax,%eax
40a450:	52                   	push   %edx
40a451:	66 89 84 7d f4 fe ff 	mov    %ax,-0x10c(%ebp,%edi,2)
40a458:	ff
40a459:	c7 85 6c ff ff ff 50 	movl   $0x720050,-0x94(%ebp)
40a460:	00 72 00
40a463:	c7 85 70 ff ff ff 6f 	movl   $0x67006f,-0x90(%ebp)
40a46a:	00 67 00
40a46d:	c7 85 74 ff ff ff 72 	movl   $0x610072,-0x8c(%ebp)
40a474:	00 61 00
40a477:	c7 85 78 ff ff ff 6d 	movl   $0x46006d,-0x88(%ebp)
40a47e:	00 46 00
40a481:	c7 85 7c ff ff ff 69 	movl   $0x6c0069,-0x84(%ebp)
40a488:	00 6c 00
40a48b:	c7 45 80 65 00 73 00 	movl   $0x730065,-0x80(%ebp)
40a492:	66 89 4d 84          	mov    %cx,-0x7c(%ebp)
40a496:	e8 45 df 00 00       	call   0x4183e0
40a49b:	8d 85 e4 fc ff ff    	lea    -0x31c(%ebp),%eax
40a4a1:	50                   	push   %eax
40a4a2:	8d 8d 6c ff ff ff    	lea    -0x94(%ebp),%ecx
40a4a8:	51                   	push   %ecx
40a4a9:	56                   	push   %esi
40a4aa:	e8 91 e1 ff ff       	call   0x408640
40a4af:	8d 95 e4 fc ff ff    	lea    -0x31c(%ebp),%edx
40a4b5:	52                   	push   %edx
40a4b6:	e8 95 e1 00 00       	call   0x418650
40a4bb:	b9 5c 00 00 00       	mov    $0x5c,%ecx
40a4c0:	6a 5a                	push   $0x5a
40a4c2:	6a 41                	push   $0x41
40a4c4:	66 89 8c 45 e4 fc ff 	mov    %cx,-0x31c(%ebp,%eax,2)
40a4cb:	ff
40a4cc:	e8 3f da ff ff       	call   0x407f10
40a4d1:	8d 95 e4 fc ff ff    	lea    -0x31c(%ebp),%edx
40a4d7:	83 c4 40             	add    $0x40,%esp
40a4da:	52                   	push   %edx
40a4db:	0f b6 f8             	movzbl %al,%edi
40a4de:	e8 6d e1 00 00       	call   0x418650
40a4e3:	6a 08                	push   $0x8
40a4e5:	6a 03                	push   $0x3
40a4e7:	66 89 bc 45 e4 fc ff 	mov    %di,-0x31c(%ebp,%eax,2)
40a4ee:	ff
40a4ef:	e8 1c da ff ff       	call   0x407f10
40a4f4:	0f b6 c0             	movzbl %al,%eax
40a4f7:	83 c4 0c             	add    $0xc,%esp
40a4fa:	50                   	push   %eax
40a4fb:	8d 8d e4 fc ff ff    	lea    -0x31c(%ebp),%ecx
40a501:	51                   	push   %ecx
40a502:	e8 49 e1 00 00       	call   0x418650
40a507:	8d 94 45 e4 fc ff ff 	lea    -0x31c(%ebp,%eax,2),%edx
40a50e:	83 c4 04             	add    $0x4,%esp
40a511:	52                   	push   %edx
40a512:	e8 b9 ed 00 00       	call   0x4192d0
40a517:	8d 85 ec fe ff ff    	lea    -0x114(%ebp),%eax
40a51d:	50                   	push   %eax
40a51e:	e8 2d e1 00 00       	call   0x418650
40a523:	83 c4 0c             	add    $0xc,%esp
40a526:	8d 4c 00 02          	lea    0x2(%eax,%eax,1),%ecx
40a52a:	51                   	push   %ecx
40a52b:	8d 95 ec fe ff ff    	lea    -0x114(%ebp),%edx
40a531:	52                   	push   %edx
40a532:	8d 85 e4 fc ff ff    	lea    -0x31c(%ebp),%eax
40a538:	50                   	push   %eax
40a539:	e8 12 e1 00 00       	call   0x418650
40a53e:	8d 8c 45 e4 fc ff ff 	lea    -0x31c(%ebp,%eax,2),%ecx
40a545:	83 c4 04             	add    $0x4,%esp
40a548:	51                   	push   %ecx
40a549:	e8 12 de 00 00       	call   0x418360
40a54e:	6a 01                	push   $0x1
40a550:	6a 08                	push   $0x8
40a552:	8d 95 e4 f8 ff ff    	lea    -0x71c(%ebp),%edx
40a558:	52                   	push   %edx
40a559:	56                   	push   %esi
40a55a:	e8 11 e2 ff ff       	call   0x408770
40a55f:	8b 7d 0c             	mov    0xc(%ebp),%edi
40a562:	57                   	push   %edi
40a563:	e8 e8 e0 00 00       	call   0x418650
40a568:	83 c4 20             	add    $0x20,%esp
40a56b:	03 c0                	add    %eax,%eax
40a56d:	50                   	push   %eax
40a56e:	8d 85 e4 f8 ff ff    	lea    -0x71c(%ebp),%eax
40a574:	57                   	push   %edi
40a575:	50                   	push   %eax
40a576:	e8 d5 e0 00 00       	call   0x418650
40a57b:	8d 8c 45 e4 f8 ff ff 	lea    -0x71c(%ebp,%eax,2),%ecx
40a582:	83 c4 04             	add    $0x4,%esp
40a585:	51                   	push   %ecx
40a586:	e8 d5 dd 00 00       	call   0x418360
40a58b:	8d 55 f8             	lea    -0x8(%ebp),%edx
40a58e:	52                   	push   %edx
40a58f:	e8 bc e0 00 00       	call   0x418650
40a594:	83 c4 10             	add    $0x10,%esp
40a597:	03 c0                	add    %eax,%eax
40a599:	50                   	push   %eax
40a59a:	8d 45 f8             	lea    -0x8(%ebp),%eax
40a59d:	50                   	push   %eax
40a59e:	8d 8d e4 f8 ff ff    	lea    -0x71c(%ebp),%ecx
40a5a4:	51                   	push   %ecx
40a5a5:	e8 a6 e0 00 00       	call   0x418650
40a5aa:	8d 94 45 e4 f8 ff ff 	lea    -0x71c(%ebp,%eax,2),%edx
40a5b1:	83 c4 04             	add    $0x4,%esp
40a5b4:	52                   	push   %edx
40a5b5:	e8 a6 dd 00 00       	call   0x418360
40a5ba:	8d 85 e4 fc ff ff    	lea    -0x31c(%ebp),%eax
40a5c0:	50                   	push   %eax
40a5c1:	e8 8a e0 00 00       	call   0x418650
40a5c6:	83 c4 10             	add    $0x10,%esp
40a5c9:	03 c0                	add    %eax,%eax
40a5cb:	50                   	push   %eax
40a5cc:	8d 8d e4 fc ff ff    	lea    -0x31c(%ebp),%ecx
40a5d2:	51                   	push   %ecx
40a5d3:	8d 95 e4 f8 ff ff    	lea    -0x71c(%ebp),%edx
40a5d9:	52                   	push   %edx
40a5da:	e8 71 e0 00 00       	call   0x418650
40a5df:	8d 84 45 e4 f8 ff ff 	lea    -0x71c(%ebp,%eax,2),%eax
40a5e6:	83 c4 04             	add    $0x4,%esp
40a5e9:	50                   	push   %eax
40a5ea:	e8 71 dd 00 00       	call   0x418360
40a5ef:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40a5f2:	51                   	push   %ecx
40a5f3:	e8 58 e0 00 00       	call   0x418650
40a5f8:	83 c4 10             	add    $0x10,%esp
40a5fb:	03 c0                	add    %eax,%eax
40a5fd:	50                   	push   %eax
40a5fe:	8d 55 ec             	lea    -0x14(%ebp),%edx
40a601:	52                   	push   %edx
40a602:	8d 85 e4 f8 ff ff    	lea    -0x71c(%ebp),%eax
40a608:	50                   	push   %eax
40a609:	e8 42 e0 00 00       	call   0x418650
40a60e:	8d 8c 45 e4 f8 ff ff 	lea    -0x71c(%ebp,%eax,2),%ecx
40a615:	83 c4 04             	add    $0x4,%esp
40a618:	51                   	push   %ecx
40a619:	e8 42 dd 00 00       	call   0x418360
40a61e:	8d 95 e4 fc ff ff    	lea    -0x31c(%ebp),%edx
40a624:	52                   	push   %edx
40a625:	e8 26 e0 00 00       	call   0x418650
40a62a:	8d 44 00 02          	lea    0x2(%eax,%eax,1),%eax
40a62e:	50                   	push   %eax
40a62f:	8d 8d e4 fc ff ff    	lea    -0x31c(%ebp),%ecx
40a635:	51                   	push   %ecx
40a636:	81 c6 28 0a 00 00    	add    $0xa28,%esi
40a63c:	56                   	push   %esi
40a63d:	e8 1e dd 00 00       	call   0x418360
40a642:	83 c4 1c             	add    $0x1c,%esp
40a645:	5f                   	pop    %edi
40a646:	5e                   	pop    %esi
40a647:	8b e5                	mov    %ebp,%esp
40a649:	5d                   	pop    %ebp
40a64a:	c3                   	ret
40a64b:	42                   	inc    %edx
40a64c:	a1 a3 b2 f4 55       	mov    0x55f4b2a3,%eax
40a651:	8b ec                	mov    %esp,%ebp
40a653:	81 ec 0c 08 00 00    	sub    $0x80c,%esp
40a659:	56                   	push   %esi
40a65a:	33 c0                	xor    %eax,%eax
40a65c:	68 fe 07 00 00       	push   $0x7fe
40a661:	50                   	push   %eax
40a662:	8d 8d f6 f7 ff ff    	lea    -0x80a(%ebp),%ecx
40a668:	51                   	push   %ecx
40a669:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40a670:	66 89 85 f4 f7 ff ff 	mov    %ax,-0x80c(%ebp)
40a677:	e8 64 dd 00 00       	call   0x4183e0
40a67c:	8b 75 08             	mov    0x8(%ebp),%esi
40a67f:	8b 06                	mov    (%esi),%eax
40a681:	8d 55 fc             	lea    -0x4(%ebp),%edx
40a684:	52                   	push   %edx
40a685:	6a 08                	push   $0x8
40a687:	50                   	push   %eax
40a688:	56                   	push   %esi
40a689:	c7 45 f4 00 04 00 00 	movl   $0x400,-0xc(%ebp)
40a690:	e8 ab c3 00 00       	call   0x416a40
40a695:	83 c4 1c             	add    $0x1c,%esp
40a698:	85 c0                	test   %eax,%eax
40a69a:	79 07                	jns    0x40a6a3
40a69c:	33 c0                	xor    %eax,%eax