a7a407:	cc                   	int3
a7a408:	cc                   	int3
a7a409:	cc                   	int3
a7a40a:	cc                   	int3
a7a40b:	cc                   	int3
a7a40c:	cc                   	int3
a7a40d:	cc                   	int3
a7a40e:	cc                   	int3
a7a40f:	cc                   	int3
a7a410:	cc                   	int3
a7a411:	cc                   	int3
a7a412:	cc                   	int3
a7a413:	cc                   	int3
a7a414:	cc                   	int3
a7a415:	cc                   	int3
a7a416:	55                   	push   %ebp
a7a417:	8b ec                	mov    %esp,%ebp
a7a419:	56                   	push   %esi
a7a41a:	8b f1                	mov    %ecx,%esi
a7a41c:	80 7e 04 01          	cmpb   $0x1,0x4(%esi)
a7a420:	7f 2d                	jg     0xa7a44f
a7a422:	83 3e 00             	cmpl   $0x0,(%esi)
a7a425:	8b 45 08             	mov    0x8(%ebp),%eax
a7a428:	74 1f                	je     0xa7a449
a7a42a:	83 f8 02             	cmp    $0x2,%eax
a7a42d:	74 1a                	je     0xa7a449
a7a42f:	83 f8 03             	cmp    $0x3,%eax
a7a432:	74 15                	je     0xa7a449
a7a434:	85 c0                	test   %eax,%eax
a7a436:	74 17                	je     0xa7a44f
a7a438:	50                   	push   %eax
a7a439:	e8 7f 07 9a ff       	call   0x41abbd
a7a43e:	59                   	pop    %ecx
a7a43f:	50                   	push   %eax
a7a440:	8b ce                	mov    %esi,%ecx
a7a442:	e8 65 87 99 ff       	call   0x412bac
a7a447:	eb 06                	jmp    0xa7a44f
a7a449:	50                   	push   %eax
a7a44a:	e8 d8 8f 98 ff       	call   0x403427
a7a44f:	8b c6                	mov    %esi,%eax
a7a451:	5e                   	pop    %esi
a7a452:	5d                   	pop    %ebp
a7a453:	c2 04 00             	ret    $0x4
a7a456:	cc                   	int3
a7a457:	cc                   	int3
a7a458:	cc                   	int3
a7a459:	cc                   	int3
a7a45a:	cc                   	int3
a7a45b:	cc                   	int3
a7a45c:	cc                   	int3
a7a45d:	cc                   	int3
a7a45e:	cc                   	int3
a7a45f:	cc                   	int3
a7a460:	cc                   	int3
a7a461:	cc                   	int3
a7a462:	cc                   	int3
a7a463:	cc                   	int3
a7a464:	cc                   	int3
a7a465:	cc                   	int3
a7a466:	55                   	push   %ebp
a7a467:	8b ec                	mov    %esp,%ebp
a7a469:	56                   	push   %esi
a7a46a:	8b f1                	mov    %ecx,%esi
a7a46c:	83 3e 09             	cmpl   $0x9,(%esi)
a7a46f:	74 38                	je     0xa7a4a9
a7a471:	57                   	push   %edi
a7a472:	8b 7d 08             	mov    0x8(%ebp),%edi
a7a475:	83 3f 00             	cmpl   $0x0,(%edi)
a7a478:	74 2e                	je     0xa7a4a8
a7a47a:	6a 00                	push   $0x0
a7a47c:	6a 08                	push   $0x8
a7a47e:	b9 6c 18 d8 00       	mov    $0xd8186c,%ecx
a7a483:	e8 19 3f 9c ff       	call   0x43e3a1
a7a488:	8b d0                	mov    %eax,%edx
a7a48a:	85 d2                	test   %edx,%edx
a7a48c:	74 0c                	je     0xa7a49a
a7a48e:	8b 0f                	mov    (%edi),%ecx
a7a490:	89 0a                	mov    %ecx,(%edx)
a7a492:	8b 4f 04             	mov    0x4(%edi),%ecx
a7a495:	89 4a 04             	mov    %ecx,0x4(%edx)
a7a498:	eb 02                	jmp    0xa7a49c
a7a49a:	33 d2                	xor    %edx,%edx
a7a49c:	85 d2                	test   %edx,%edx
a7a49e:	74 08                	je     0xa7a4a8
a7a4a0:	ff 06                	incl   (%esi)
a7a4a2:	8b 06                	mov    (%esi),%eax
a7a4a4:	89 54 86 04          	mov    %edx,0x4(%esi,%eax,4)
a7a4a8:	5f                   	pop    %edi
a7a4a9:	8b c6                	mov    %esi,%eax
a7a4ab:	5e                   	pop    %esi
a7a4ac:	5d                   	pop    %ebp
a7a4ad:	c2 04 00             	ret    $0x4
a7a4b0:	cc                   	int3
a7a4b1:	cc                   	int3
a7a4b2:	cc                   	int3
a7a4b3:	cc                   	int3
a7a4b4:	cc                   	int3
a7a4b5:	cc                   	int3
a7a4b6:	cc                   	int3
a7a4b7:	cc                   	int3
a7a4b8:	cc                   	int3
a7a4b9:	cc                   	int3
a7a4ba:	cc                   	int3
a7a4bb:	cc                   	int3
a7a4bc:	cc                   	int3
a7a4bd:	cc                   	int3
a7a4be:	cc                   	int3
a7a4bf:	cc                   	int3
a7a4c0:	cc                   	int3
a7a4c1:	cc                   	int3
a7a4c2:	55                   	push   %ebp
a7a4c3:	8b ec                	mov    %esp,%ebp
a7a4c5:	80 79 04 03          	cmpb   $0x3,0x4(%ecx)
a7a4c9:	74 0d                	je     0xa7a4d8
a7a4cb:	8b 45 08             	mov    0x8(%ebp),%eax
a7a4ce:	8a 40 04             	mov    0x4(%eax),%al
a7a4d1:	3c 01                	cmp    $0x1,%al
a7a4d3:	7e 03                	jle    0xa7a4d8
a7a4d5:	88 41 04             	mov    %al,0x4(%ecx)
a7a4d8:	8b c1                	mov    %ecx,%eax
a7a4da:	5d                   	pop    %ebp
a7a4db:	c2 04 00             	ret    $0x4
a7a4de:	cc                   	int3
a7a4df:	cc                   	int3
a7a4e0:	cc                   	int3
a7a4e1:	cc                   	int3
a7a4e2:	cc                   	int3
a7a4e3:	cc                   	int3
a7a4e4:	cc                   	int3
a7a4e5:	55                   	push   %ebp
a7a4e6:	8b ec                	mov    %esp,%ebp
a7a4e8:	8b 45 08             	mov    0x8(%ebp),%eax
a7a4eb:	89 01                	mov    %eax,(%ecx)
a7a4ed:	8b 45 0c             	mov    0xc(%ebp),%eax
a7a4f0:	89 41 04             	mov    %eax,0x4(%ecx)
a7a4f3:	33 c0                	xor    %eax,%eax
a7a4f5:	89 41 10             	mov    %eax,0x10(%ecx)
a7a4f8:	89 41 08             	mov    %eax,0x8(%ecx)
a7a4fb:	89 41 0c             	mov    %eax,0xc(%ecx)
a7a4fe:	5d                   	pop    %ebp
a7a4ff:	c2 08 00             	ret    $0x8
a7a502:	cc                   	int3
a7a503:	cc                   	int3
a7a504:	cc                   	int3
a7a505:	cc                   	int3
a7a506:	cc                   	int3
a7a507:	cc                   	int3
a7a508:	cc                   	int3
a7a509:	57                   	push   %edi
a7a50a:	8b f9                	mov    %ecx,%edi
a7a50c:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
a7a510:	74 2e                	je     0xa7a540
a7a512:	8b 47 08             	mov    0x8(%edi),%eax
a7a515:	89 47 0c             	mov    %eax,0xc(%edi)
a7a518:	85 c0                	test   %eax,%eax
a7a51a:	74 24                	je     0xa7a540
a7a51c:	56                   	push   %esi
a7a51d:	8b 47 0c             	mov    0xc(%edi),%eax
a7a520:	8b 77 04             	mov    0x4(%edi),%esi
a7a523:	8b ce                	mov    %esi,%ecx
a7a525:	ff 77 0c             	push   0xc(%edi)
a7a528:	8b 00                	mov    (%eax),%eax
a7a52a:	89 47 08             	mov    %eax,0x8(%edi)
a7a52d:	e8 33 21 9b ff       	call   0x42c665
a7a532:	ff d6                	call   *%esi
a7a534:	8b 47 08             	mov    0x8(%edi),%eax
a7a537:	89 47 0c             	mov    %eax,0xc(%edi)
a7a53a:	59                   	pop    %ecx
a7a53b:	85 c0                	test   %eax,%eax
a7a53d:	75 de                	jne    0xa7a51d
a7a53f:	5e                   	pop    %esi
a7a540:	5f                   	pop    %edi
a7a541:	c3                   	ret
a7a542:	cc                   	int3
a7a543:	cc                   	int3
a7a544:	cc                   	int3
a7a545:	cc                   	int3
a7a546:	cc                   	int3
a7a547:	cc                   	int3
a7a548:	cc                   	int3
a7a549:	cc                   	int3
a7a54a:	cc                   	int3
a7a54b:	cc                   	int3
a7a54c:	cc                   	int3
a7a54d:	cc                   	int3
a7a54e:	cc                   	int3
a7a54f:	cc                   	int3
a7a550:	55                   	push   %ebp
a7a551:	8b ec                	mov    %esp,%ebp
a7a553:	a1 60 18 d8 00       	mov    0xd81860,%eax
a7a558:	f7 d0                	not    %eax
a7a55a:	a8 01                	test   $0x1,%al
a7a55c:	8b 45 08             	mov    0x8(%ebp),%eax
a7a55f:	8b 04 85 10 d8 c7 00 	mov    0xc7d810(,%eax,4),%eax
a7a566:	75 03                	jne    0xa7a56b
a7a568:	83 c0 02             	add    $0x2,%eax
a7a56b:	5d                   	pop    %ebp
a7a56c:	c3                   	ret
a7a56d:	cc                   	int3
a7a56e:	cc                   	int3
a7a56f:	cc                   	int3
a7a570:	cc                   	int3
a7a571:	cc                   	int3
a7a572:	cc                   	int3
a7a573:	cc                   	int3
a7a574:	55                   	push   %ebp
a7a575:	8b ec                	mov    %esp,%ebp
a7a577:	56                   	push   %esi
a7a578:	57                   	push   %edi
a7a579:	8b 7d 08             	mov    0x8(%ebp),%edi
a7a57c:	8b f1                	mov    %ecx,%esi
a7a57e:	85 ff                	test   %edi,%edi
a7a580:	74 2e                	je     0xa7a5b0
a7a582:	6a 00                	push   $0x0
a7a584:	6a 10                	push   $0x10
a7a586:	b9 6c 18 d8 00       	mov    $0xd8186c,%ecx
a7a58b:	e8 11 3e 9c ff       	call   0x43e3a1
a7a590:	85 c0                	test   %eax,%eax
a7a592:	74 14                	je     0xa7a5a8
a7a594:	8b 0e                	mov    (%esi),%ecx
a7a596:	83 48 0c ff          	orl    $0xffffffff,0xc(%eax)
a7a59a:	c7 00 18 e5 c7 00    	movl   $0xc7e518,(%eax)
a7a5a0:	89 48 04             	mov    %ecx,0x4(%eax)
a7a5a3:	89 78 08             	mov    %edi,0x8(%eax)
a7a5a6:	eb 02                	jmp    0xa7a5aa
a7a5a8:	33 c0                	xor    %eax,%eax
a7a5aa:	89 06                	mov    %eax,(%esi)
a7a5ac:	85 c0                	test   %eax,%eax
a7a5ae:	75 04                	jne    0xa7a5b4
a7a5b0:	c6 46 04 03          	movb   $0x3,0x4(%esi)
a7a5b4:	5f                   	pop    %edi
a7a5b5:	5e                   	pop    %esi
a7a5b6:	5d                   	pop    %ebp
a7a5b7:	c2 04 00             	ret    $0x4
a7a5ba:	cc                   	int3
a7a5bb:	cc                   	int3
a7a5bc:	cc                   	int3
a7a5bd:	cc                   	int3
a7a5be:	cc                   	int3
a7a5bf:	cc                   	int3
a7a5c0:	cc                   	int3
a7a5c1:	cc                   	int3
a7a5c2:	cc                   	int3
a7a5c3:	cc                   	int3
a7a5c4:	cc                   	int3
a7a5c5:	cc                   	int3
a7a5c6:	cc                   	int3
a7a5c7:	cc                   	int3
a7a5c8:	cc                   	int3
a7a5c9:	cc                   	int3
a7a5ca:	cc                   	int3
a7a5cb:	55                   	push   %ebp
a7a5cc:	8b ec                	mov    %esp,%ebp
a7a5ce:	83 ec 60             	sub    $0x60,%esp
a7a5d1:	81 65 d4 00 00 ff ff 	andl   $0xffff0000,-0x2c(%ebp)
a7a5d8:	33 c0                	xor    %eax,%eax
a7a5da:	53                   	push   %ebx
a7a5db:	57                   	push   %edi
a7a5dc:	89 45 fc             	mov    %eax,-0x4(%ebp)
a7a5df:	89 45 d0             	mov    %eax,-0x30(%ebp)
a7a5e2:	e8 75 d0 99 ff       	call   0x41765c
a7a5e7:	8b 7d 0c             	mov    0xc(%ebp),%edi
a7a5ea:	8b d8                	mov    %eax,%ebx
a7a5ec:	33 c0                	xor    %eax,%eax
a7a5ee:	33 c9                	xor    %ecx,%ecx
a7a5f0:	40                   	inc    %eax
a7a5f1:	39 0f                	cmp    %ecx,(%edi)
a7a5f3:	74 0c                	je     0xa7a601
a7a5f5:	f7 47 04 00 02 00 00 	testl  $0x200,0x4(%edi)
a7a5fc:	89 45 ec             	mov    %eax,-0x14(%ebp)
a7a5ff:	75 03                	jne    0xa7a604
a7a601:	89 4d ec             	mov    %ecx,-0x14(%ebp)
a7a604:	81 fb ff ff 00 00    	cmp    $0xffff,%ebx
a7a60a:	75 12                	jne    0xa7a61e
a7a60c:	8b 4d 08             	mov    0x8(%ebp),%ecx
a7a60f:	6a 02                	push   $0x2
a7a611:	e8 58 5a 99 ff       	call   0x41006e
a7a616:	8b 45 08             	mov    0x8(%ebp),%eax
a7a619:	e9 a3 0c 00 00       	jmp    0xa7b2c1
a7a61e:	81 fb fe ff 00 00    	cmp    $0xfffe,%ebx
a7a624:	75 0f                	jne    0xa7a635
a7a626:	57                   	push   %edi
a7a627:	50                   	push   %eax
a7a628:	ff 75 08             	push   0x8(%ebp)
a7a62b:	e8 d3 98 98 ff       	call   0x403f03
a7a630:	83 c4 0c             	add    $0xc,%esp
a7a633:	eb e1                	jmp    0xa7a616
a7a635:	81 fb fd ff 00 00    	cmp    $0xfffd,%ebx
a7a63b:	75 12                	jne    0xa7a64f
a7a63d:	8b 45 08             	mov    0x8(%ebp),%eax
a7a640:	8b 0f                	mov    (%edi),%ecx
a7a642:	89 08                	mov    %ecx,(%eax)
a7a644:	8b 4f 04             	mov    0x4(%edi),%ecx
a7a647:	89 48 04             	mov    %ecx,0x4(%eax)
a7a64a:	e9 72 0c 00 00       	jmp    0xa7b2c1
a7a64f:	56                   	push   %esi
a7a650:	8b f3                	mov    %ebx,%esi
a7a652:	81 e6 00 80 00 00    	and    $0x8000,%esi
a7a658:	89 75 d8             	mov    %esi,-0x28(%ebp)
a7a65b:	0f 84 96 06 00 00    	je     0xa7acf7
a7a661:	8b c3                	mov    %ebx,%eax
a7a663:	33 d2                	xor    %edx,%edx
a7a665:	25 00 18 00 00       	and    $0x1800,%eax
a7a66a:	3d 00 08 00 00       	cmp    $0x800,%eax
a7a66f:	89 45 e0             	mov    %eax,-0x20(%ebp)
a7a672:	8b c3                	mov    %ebx,%eax
a7a674:	0f 94 c2             	sete   %dl
a7a677:	89 55 f8             	mov    %edx,-0x8(%ebp)
a7a67a:	85 d2                	test   %edx,%edx
a7a67c:	74 07                	je     0xa7a685
a7a67e:	25 00 04 00 00       	and    $0x400,%eax
a7a683:	eb 05                	jmp    0xa7a68a
a7a685:	25 00 10 00 00       	and    $0x1000,%eax
a7a68a:	85 c0                	test   %eax,%eax
a7a68c:	74 12                	je     0xa7a6a0
a7a68e:	8b c3                	mov    %ebx,%eax
a7a690:	25 00 1b 00 00       	and    $0x1b00,%eax
a7a695:	3d 00 10 00 00       	cmp    $0x1000,%eax
a7a69a:	0f 84 57 06 00 00    	je     0xa7acf7
a7a6a0:	8b c3                	mov    %ebx,%eax
a7a6a2:	85 d2                	test   %edx,%edx
a7a6a4:	74 07                	je     0xa7a6ad
a7a6a6:	25 00 04 00 00       	and    $0x400,%eax
a7a6ab:	eb 05                	jmp    0xa7a6b2
a7a6ad:	25 00 10 00 00       	and    $0x1000,%eax
a7a6b2:	85 c0                	test   %eax,%eax
a7a6b4:	74 1d                	je     0xa7a6d3
a7a6b6:	8b c3                	mov    %ebx,%eax
a7a6b8:	25 00 1b 00 00       	and    $0x1b00,%eax
a7a6bd:	3d 00 11 00 00       	cmp    $0x1100,%eax
a7a6c2:	0f 84 2f 06 00 00    	je     0xa7acf7
a7a6c8:	3d 00 12 00 00       	cmp    $0x1200,%eax
a7a6cd:	0f 84 24 06 00 00    	je     0xa7acf7
a7a6d3:	f7 c3 00 40 00 00    	test   $0x4000,%ebx
a7a6d9:	74 5e                	je     0xa7a739
a7a6db:	8b 0d 60 18 d8 00    	mov    0xd81860,%ecx
a7a6e1:	c1 e9 02             	shr    $0x2,%ecx
a7a6e4:	0b 0d 60 18 d8 00    	or     0xd81860,%ecx
a7a6ea:	d1 e9                	shr    $1,%ecx
a7a6ec:	f7 d1                	not    %ecx
a7a6ee:	f6 c1 01             	test   $0x1,%cl
a7a6f1:	74 2e                	je     0xa7a721
a7a6f3:	8d 45 b8             	lea    -0x48(%ebp),%eax
a7a6f6:	50                   	push   %eax
a7a6f7:	e8 6d ea 99 ff       	call   0x419169
a7a6fc:	59                   	pop    %ecx
a7a6fd:	50                   	push   %eax
a7a6fe:	8d 45 b0             	lea    -0x50(%ebp),%eax
a7a701:	50                   	push   %eax
a7a702:	6a 20                	push   $0x20