40a21d:	66 89 84 3d f4 fd ff 	mov    %ax,-0x20c(%ebp,%edi,1)
40a224:	ff
40a225:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40a22b:	50                   	push   %eax
40a22c:	eb 01                	jmp    0x40a22f
40a22e:	53                   	push   %ebx
40a22f:	56                   	push   %esi
40a230:	ff b5 f0 fd ff ff    	push   -0x210(%ebp)
40a236:	ff 15 9c 61 41 00    	call   *0x41619c
40a23c:	ff b5 e8 fd ff ff    	push   -0x218(%ebp)
40a242:	8b d8                	mov    %eax,%ebx
40a244:	ff 15 b8 61 41 00    	call   *0x4161b8
40a24a:	8b 85 f0 fd ff ff    	mov    -0x210(%ebp),%eax
40a250:	85 c0                	test   %eax,%eax
40a252:	74 10                	je     0x40a264
40a254:	8b 08                	mov    (%eax),%ecx
40a256:	50                   	push   %eax
40a257:	8b 79 08             	mov    0x8(%ecx),%edi
40a25a:	8b cf                	mov    %edi,%ecx
40a25c:	ff 15 28 63 41 00    	call   *0x416328
40a262:	ff d7                	call   *%edi
40a264:	56                   	push   %esi
40a265:	ff 15 b8 61 41 00    	call   *0x4161b8
40a26b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40a26e:	8b c3                	mov    %ebx,%eax
40a270:	5f                   	pop    %edi
40a271:	5e                   	pop    %esi
40a272:	33 cd                	xor    %ebp,%ecx
40a274:	5b                   	pop    %ebx
40a275:	e8 76 7d 00 00       	call   0x411ff0
40a27a:	c9                   	leave
40a27b:	c3                   	ret
40a27c:	e8 b7 7e 00 00       	call   0x412138
40a281:	cc                   	int3
40a282:	8b ff                	mov    %edi,%edi
40a284:	55                   	push   %ebp
40a285:	8b ec                	mov    %esp,%ebp
40a287:	81 ec c0 01 00 00    	sub    $0x1c0,%esp
40a28d:	a1 f4 51 41 00       	mov    0x4151f4,%eax
40a292:	33 c5                	xor    %ebp,%eax
40a294:	89 45 f8             	mov    %eax,-0x8(%ebp)
40a297:	53                   	push   %ebx
40a298:	56                   	push   %esi
40a299:	33 db                	xor    %ebx,%ebx
40a29b:	89 95 58 fe ff ff    	mov    %edx,-0x1a8(%ebp)
40a2a1:	57                   	push   %edi
40a2a2:	8b fa                	mov    %edx,%edi
40a2a4:	8b c1                	mov    %ecx,%eax
40a2a6:	89 85 60 fe ff ff    	mov    %eax,-0x1a0(%ebp)
40a2ac:	8b f3                	mov    %ebx,%esi
40a2ae:	89 b5 5c fe ff ff    	mov    %esi,-0x1a4(%ebp)
40a2b4:	85 ff                	test   %edi,%edi
40a2b6:	74 36                	je     0x40a2ee
40a2b8:	ba 7c 27 40 00       	mov    $0x40277c,%edx
40a2bd:	e8 ce a8 ff ff       	call   0x404b90
40a2c2:	85 c0                	test   %eax,%eax
40a2c4:	75 28                	jne    0x40a2ee
40a2c6:	8d 85 5c fe ff ff    	lea    -0x1a4(%ebp),%eax
40a2cc:	50                   	push   %eax
40a2cd:	68 b0 2f 40 00       	push   $0x402fb0
40a2d2:	6a 01                	push   $0x1
40a2d4:	53                   	push   %ebx
40a2d5:	68 6c 27 40 00       	push   $0x40276c
40a2da:	ff 15 20 62 41 00    	call   *0x416220
40a2e0:	85 c0                	test   %eax,%eax
40a2e2:	0f 89 bd 00 00 00    	jns    0x40a3a5
40a2e8:	8b b5 5c fe ff ff    	mov    -0x1a4(%ebp),%esi
40a2ee:	8b c3                	mov    %ebx,%eax
40a2f0:	8b d8                	mov    %eax,%ebx
40a2f2:	85 f6                	test   %esi,%esi
40a2f4:	74 10                	je     0x40a306
40a2f6:	8b 0e                	mov    (%esi),%ecx
40a2f8:	56                   	push   %esi
40a2f9:	8b 71 08             	mov    0x8(%ecx),%esi
40a2fc:	8b ce                	mov    %esi,%ecx
40a2fe:	ff 15 28 63 41 00    	call   *0x416328
40a304:	ff d6                	call   *%esi
40a306:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40a309:	8b c3                	mov    %ebx,%eax
40a30b:	5f                   	pop    %edi
40a30c:	5e                   	pop    %esi
40a30d:	33 cd                	xor    %ebp,%ecx
40a30f:	5b                   	pop    %ebx
40a310:	e8 db 7c 00 00       	call   0x411ff0
40a315:	c9                   	leave
40a316:	c2 04 00             	ret    $0x4
40a319:	8d 8d 64 fe ff ff    	lea    -0x19c(%ebp),%ecx
40a31f:	8b 77 04             	mov    0x4(%edi),%esi
40a322:	8d bd 64 fe ff ff    	lea    -0x19c(%ebp),%edi
40a328:	51                   	push   %ecx
40a329:	6a 01                	push   $0x1
40a32b:	ff b5 60 fe ff ff    	push   -0x1a0(%ebp)
40a331:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a332:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a333:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a334:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a335:	39 5d 08             	cmp    %ebx,0x8(%ebp)
40a338:	74 34                	je     0x40a36e
40a33a:	83 f8 01             	cmp    $0x1,%eax
40a33d:	8b 85 5c fe ff ff    	mov    -0x1a4(%ebp),%eax
40a343:	50                   	push   %eax
40a344:	8b 30                	mov    (%eax),%esi
40a346:	75 0e                	jne    0x40a356
40a348:	8b 4e 14             	mov    0x14(%esi),%ecx
40a34b:	ff 15 28 63 41 00    	call   *0x416328
40a351:	ff 56 14             	call   *0x14(%esi)
40a354:	eb 0c                	jmp    0x40a362
40a356:	8b 4e 1c             	mov    0x1c(%esi),%ecx
40a359:	ff 15 28 63 41 00    	call   *0x416328
40a35f:	ff 56 1c             	call   *0x1c(%esi)
40a362:	85 c0                	test   %eax,%eax
40a364:	79 30                	jns    0x40a396
40a366:	8b b5 5c fe ff ff    	mov    -0x1a4(%ebp),%esi
40a36c:	eb 82                	jmp    0x40a2f0
40a36e:	83 f8 01             	cmp    $0x1,%eax
40a371:	8b 85 5c fe ff ff    	mov    -0x1a4(%ebp),%eax
40a377:	50                   	push   %eax
40a378:	8b 30                	mov    (%eax),%esi
40a37a:	75 0e                	jne    0x40a38a
40a37c:	8b 4e 18             	mov    0x18(%esi),%ecx
40a37f:	ff 15 28 63 41 00    	call   *0x416328
40a385:	ff 56 18             	call   *0x18(%esi)
40a388:	eb 0c                	jmp    0x40a396
40a38a:	8b 4e 20             	mov    0x20(%esi),%ecx
40a38d:	ff 15 28 63 41 00    	call   *0x416328
40a393:	ff 56 20             	call   *0x20(%esi)
40a396:	8b bd 58 fe ff ff    	mov    -0x1a8(%ebp),%edi
40a39c:	83 c7 08             	add    $0x8,%edi
40a39f:	89 bd 58 fe ff ff    	mov    %edi,-0x1a8(%ebp)
40a3a5:	8b 07                	mov    (%edi),%eax
40a3a7:	85 c0                	test   %eax,%eax
40a3a9:	0f 85 6a ff ff ff    	jne    0x40a319
40a3af:	39 5d 08             	cmp    %ebx,0x8(%ebp)
40a3b2:	0f 85 3c 02 00 00    	jne    0x40a5f4
40a3b8:	6a 40                	push   $0x40
40a3ba:	8d 85 74 fe ff ff    	lea    -0x18c(%ebp),%eax
40a3c0:	50                   	push   %eax
40a3c1:	ff b5 60 fe ff ff    	push   -0x1a0(%ebp)
40a3c7:	ff 15 24 62 41 00    	call   *0x416224
40a3cd:	68 ec 2f 40 00       	push   $0x402fec
40a3d2:	be 80 00 00 00       	mov    $0x80,%esi
40a3d7:	89 9d 40 fe ff ff    	mov    %ebx,-0x1c0(%ebp)
40a3dd:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40a3e3:	56                   	push   %esi
40a3e4:	50                   	push   %eax
40a3e5:	ff 15 b0 62 41 00    	call   *0x4162b0
40a3eb:	83 c4 0c             	add    $0xc,%esp
40a3ee:	8b c8                	mov    %eax,%ecx
40a3f0:	e8 17 a8 ff ff       	call   0x404c0c
40a3f5:	8d 85 74 fe ff ff    	lea    -0x18c(%ebp),%eax
40a3fb:	50                   	push   %eax
40a3fc:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40a402:	56                   	push   %esi
40a403:	50                   	push   %eax
40a404:	ff 15 ac 62 41 00    	call   *0x4162ac
40a40a:	83 c4 0c             	add    $0xc,%esp
40a40d:	8b c8                	mov    %eax,%ecx
40a40f:	e8 f8 a7 ff ff       	call   0x404c0c
40a414:	68 c0 2f 40 00       	push   $0x402fc0
40a419:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40a41f:	56                   	push   %esi
40a420:	50                   	push   %eax
40a421:	ff 15 ac 62 41 00    	call   *0x4162ac
40a427:	83 c4 0c             	add    $0xc,%esp
40a42a:	8b c8                	mov    %eax,%ecx
40a42c:	e8 db a7 ff ff       	call   0x404c0c
40a431:	8d 8d 58 fe ff ff    	lea    -0x1a8(%ebp),%ecx
40a437:	89 9d 4c fe ff ff    	mov    %ebx,-0x1b4(%ebp)
40a43d:	51                   	push   %ecx
40a43e:	68 19 00 02 00       	push   $0x20019
40a443:	53                   	push   %ebx
40a444:	8d 8d f4 fe ff ff    	lea    -0x10c(%ebp),%ecx
40a44a:	89 9d 50 fe ff ff    	mov    %ebx,-0x1b0(%ebp)
40a450:	b8 00 00 00 80       	mov    $0x80000000,%eax
40a455:	89 9d 60 fe ff ff    	mov    %ebx,-0x1a0(%ebp)
40a45b:	51                   	push   %ecx
40a45c:	50                   	push   %eax
40a45d:	89 85 48 fe ff ff    	mov    %eax,-0x1b8(%ebp)
40a463:	8b f3                	mov    %ebx,%esi
40a465:	89 9d 58 fe ff ff    	mov    %ebx,-0x1a8(%ebp)
40a46b:	ff 15 04 60 41 00    	call   *0x416004
40a471:	85 c0                	test   %eax,%eax
40a473:	75 5f                	jne    0x40a4d4
40a475:	8b b5 58 fe ff ff    	mov    -0x1a8(%ebp),%esi
40a47b:	8d 85 60 fe ff ff    	lea    -0x1a0(%ebp),%eax
40a481:	53                   	push   %ebx
40a482:	53                   	push   %ebx
40a483:	53                   	push   %ebx
40a484:	53                   	push   %ebx
40a485:	53                   	push   %ebx
40a486:	53                   	push   %ebx
40a487:	53                   	push   %ebx
40a488:	50                   	push   %eax
40a489:	53                   	push   %ebx
40a48a:	53                   	push   %ebx
40a48b:	53                   	push   %ebx
40a48c:	56                   	push   %esi
40a48d:	ff 15 14 60 41 00    	call   *0x416014
40a493:	89 85 54 fe ff ff    	mov    %eax,-0x1ac(%ebp)
40a499:	85 f6                	test   %esi,%esi
40a49b:	74 0d                	je     0x40a4aa
40a49d:	56                   	push   %esi
40a49e:	ff 15 18 60 41 00    	call   *0x416018
40a4a4:	8b 85 54 fe ff ff    	mov    -0x1ac(%ebp),%eax
40a4aa:	8b fe                	mov    %esi,%edi
40a4ac:	f7 df                	neg    %edi
40a4ae:	1b ff                	sbb    %edi,%edi
40a4b0:	f7 d7                	not    %edi
40a4b2:	23 fe                	and    %esi,%edi
40a4b4:	8b f7                	mov    %edi,%esi
40a4b6:	85 c0                	test   %eax,%eax
40a4b8:	75 1a                	jne    0x40a4d4
40a4ba:	39 9d 60 fe ff ff    	cmp    %ebx,-0x1a0(%ebp)
40a4c0:	75 12                	jne    0x40a4d4
40a4c2:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40a4c8:	50                   	push   %eax
40a4c9:	8d 8d 48 fe ff ff    	lea    -0x1b8(%ebp),%ecx
40a4cf:	e8 59 a8 ff ff       	call   0x404d2d
40a4d4:	68 ec 2f 40 00       	push   $0x402fec
40a4d9:	bf 80 00 00 00       	mov    $0x80,%edi
40a4de:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40a4e4:	57                   	push   %edi
40a4e5:	50                   	push   %eax
40a4e6:	ff 15 b0 62 41 00    	call   *0x4162b0
40a4ec:	83 c4 0c             	add    $0xc,%esp
40a4ef:	8b c8                	mov    %eax,%ecx
40a4f1:	e8 16 a7 ff ff       	call   0x404c0c
40a4f6:	8d 85 74 fe ff ff    	lea    -0x18c(%ebp),%eax
40a4fc:	50                   	push   %eax
40a4fd:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40a503:	57                   	push   %edi
40a504:	50                   	push   %eax
40a505:	ff 15 ac 62 41 00    	call   *0x4162ac
40a50b:	83 c4 0c             	add    $0xc,%esp
40a50e:	8b c8                	mov    %eax,%ecx
40a510:	e8 f7 a6 ff ff       	call   0x404c0c
40a515:	68 fc 2f 40 00       	push   $0x402ffc
40a51a:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40a520:	57                   	push   %edi
40a521:	50                   	push   %eax
40a522:	ff 15 ac 62 41 00    	call   *0x4162ac
40a528:	83 c4 0c             	add    $0xc,%esp
40a52b:	8b c8                	mov    %eax,%ecx
40a52d:	e8 da a6 ff ff       	call   0x404c0c
40a532:	8b bd 48 fe ff ff    	mov    -0x1b8(%ebp),%edi
40a538:	8d 85 54 fe ff ff    	lea    -0x1ac(%ebp),%eax
40a53e:	50                   	push   %eax
40a53f:	68 19 00 02 00       	push   $0x20019
40a544:	53                   	push   %ebx
40a545:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40a54b:	89 9d 54 fe ff ff    	mov    %ebx,-0x1ac(%ebp)
40a551:	50                   	push   %eax
40a552:	57                   	push   %edi
40a553:	ff 15 04 60 41 00    	call   *0x416004
40a559:	85 c0                	test   %eax,%eax
40a55b:	75 76                	jne    0x40a5d3
40a55d:	8b c3                	mov    %ebx,%eax
40a55f:	85 f6                	test   %esi,%esi
40a561:	74 07                	je     0x40a56a
40a563:	56                   	push   %esi
40a564:	ff 15 18 60 41 00    	call   *0x416018
40a56a:	8b b5 54 fe ff ff    	mov    -0x1ac(%ebp),%esi
40a570:	85 c0                	test   %eax,%eax
40a572:	75 5f                	jne    0x40a5d3
40a574:	53                   	push   %ebx
40a575:	53                   	push   %ebx
40a576:	53                   	push   %ebx
40a577:	53                   	push   %ebx
40a578:	53                   	push   %ebx
40a579:	53                   	push   %ebx
40a57a:	53                   	push   %ebx
40a57b:	8d 85 60 fe ff ff    	lea    -0x1a0(%ebp),%eax
40a581:	50                   	push   %eax
40a582:	53                   	push   %ebx
40a583:	53                   	push   %ebx
40a584:	53                   	push   %ebx
40a585:	56                   	push   %esi
40a586:	ff 15 14 60 41 00    	call   *0x416014
40a58c:	89 85 44 fe ff ff    	mov    %eax,-0x1bc(%ebp)
40a592:	85 f6                	test   %esi,%esi
40a594:	74 0d                	je     0x40a5a3
40a596:	56                   	push   %esi
40a597:	ff 15 18 60 41 00    	call   *0x416018
40a59d:	8b 85 44 fe ff ff    	mov    -0x1bc(%ebp),%eax
40a5a3:	8b fe                	mov    %esi,%edi
40a5a5:	f7 df                	neg    %edi
40a5a7:	1b ff                	sbb    %edi,%edi
40a5a9:	f7 d7                	not    %edi
40a5ab:	23 fe                	and    %esi,%edi
40a5ad:	8b f7                	mov    %edi,%esi
40a5af:	85 c0                	test   %eax,%eax
40a5b1:	75 1a                	jne    0x40a5cd
40a5b3:	39 9d 60 fe ff ff    	cmp    %ebx,-0x1a0(%ebp)
40a5b9:	75 12                	jne    0x40a5cd
40a5bb:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40a5c1:	50                   	push   %eax
40a5c2:	8d 8d 48 fe ff ff    	lea    -0x1b8(%ebp),%ecx
40a5c8:	e8 60 a7 ff ff       	call   0x404d2d
40a5cd:	8b bd 48 fe ff ff    	mov    -0x1b8(%ebp),%edi
40a5d3:	85 f6                	test   %esi,%esi
40a5d5:	74 07                	je     0x40a5de
40a5d7:	56                   	push   %esi
40a5d8:	ff 15 18 60 41 00    	call   *0x416018
40a5de:	85 ff                	test   %edi,%edi
40a5e0:	74 07                	je     0x40a5e9
40a5e2:	57                   	push   %edi
40a5e3:	ff 15 18 60 41 00    	call   *0x416018
40a5e9:	8d 8d 40 fe ff ff    	lea    -0x1c0(%ebp),%ecx
40a5ef:	e8 c9 d1 ff ff       	call   0x4077bd
40a5f4:	8b b5 5c fe ff ff    	mov    -0x1a4(%ebp),%esi
40a5fa:	e9 f3 fc ff ff       	jmp    0x40a2f2
40a5ff:	8b ff                	mov    %edi,%edi
40a601:	55                   	push   %ebp
40a602:	8b ec                	mov    %esp,%ebp
40a604:	81 ec 38 02 00 00    	sub    $0x238,%esp
40a60a:	a1 f4 51 41 00       	mov    0x4151f4,%eax
40a60f:	33 c5                	xor    %ebp,%eax
40a611:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a614:	8b 45 08             	mov    0x8(%ebp),%eax
40a617:	89 85 cc fd ff ff    	mov    %eax,-0x234(%ebp)
40a61d:	56                   	push   %esi
40a61e:	8b 75 0c             	mov    0xc(%ebp),%esi
40a621:	89 b5 d0 fd ff ff    	mov    %esi,-0x230(%ebp)
40a627:	85 c0                	test   %eax,%eax
40a629:	0f 84 2a 01 00 00    	je     0x40a759
40a62f:	85 f6                	test   %esi,%esi
40a631:	0f 84 22 01 00 00    	je     0x40a759
40a637:	53                   	push   %ebx
40a638:	57                   	push   %edi
40a639:	33 ff                	xor    %edi,%edi
40a63b:	bb 04 01 00 00       	mov    $0x104,%ebx
40a640:	89 38                	mov    %edi,(%eax)
40a642:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
40a648:	53                   	push   %ebx
40a649:	50                   	push   %eax
40a64a:	51                   	push   %ecx
40a64b:	89 3e                	mov    %edi,(%esi)
40a64d:	89 bd c8 fd ff ff    	mov    %edi,-0x238(%ebp)
40a653:	ff 15 60 61 41 00    	call   *0x416160
40a659:	85 c0                	test   %eax,%eax
40a65b:	75 0c                	jne    0x40a669
40a65d:	e8 2e a6 ff ff       	call   0x404c90
40a662:	8b f0                	mov    %eax,%esi
40a664:	e9 df 00 00 00       	jmp    0x40a748
40a669:	3b c3                	cmp    %ebx,%eax
40a66b:	75 0a                	jne    0x40a677
40a66d:	be 7a 00 07 80       	mov    $0x8007007a,%esi
40a672:	e9 d1 00 00 00       	jmp    0x40a748
40a677:	66 8b 8d d4 fd ff ff 	mov    -0x22c(%ebp),%cx
40a67e:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax