402518:	8b d7                	mov    %edi,%edx
40251a:	2b d6                	sub    %esi,%edx
40251c:	89 14 24             	mov    %edx,(%esp)
40251f:	3b 1d 20 c6 49 00    	cmp    0x49c620,%ebx
402525:	75 38                	jne    0x40255f
402527:	8b 04 24             	mov    (%esp),%eax
40252a:	29 05 20 c6 49 00    	sub    %eax,0x49c620
402530:	8b 04 24             	mov    (%esp),%eax
402533:	01 05 1c c6 49 00    	add    %eax,0x49c61c
402539:	83 3d 1c c6 49 00 0c 	cmpl   $0xc,0x49c61c
402540:	0f 8d 4c 01 00 00    	jge    0x402692
402546:	8b 04 24             	mov    (%esp),%eax
402549:	01 05 20 c6 49 00    	add    %eax,0x49c620
40254f:	8b 04 24             	mov    (%esp),%eax
402552:	29 05 1c c6 49 00    	sub    %eax,0x49c61c
402558:	8b f7                	mov    %edi,%esi
40255a:	e9 33 01 00 00       	jmp    0x402692
40255f:	8b d8                	mov    %eax,%ebx
402561:	f6 03 02             	testb  $0x2,(%ebx)
402564:	75 0d                	jne    0x402573
402566:	8b c3                	mov    %ebx,%eax
402568:	8b 50 08             	mov    0x8(%eax),%edx
40256b:	01 14 24             	add    %edx,(%esp)
40256e:	e8 e9 f6 ff ff       	call   0x401c5c
402573:	83 3c 24 0c          	cmpl   $0xc,(%esp)
402577:	7c 1b                	jl     0x402594
402579:	8b dd                	mov    %ebp,%ebx
40257b:	03 de                	add    %esi,%ebx
40257d:	8b 04 24             	mov    (%esp),%eax
402580:	83 c8 02             	or     $0x2,%eax
402583:	89 03                	mov    %eax,(%ebx)
402585:	8b c3                	mov    %ebx,%eax
402587:	83 c0 04             	add    $0x4,%eax
40258a:	e8 91 f7 ff ff       	call   0x401d20
40258f:	e9 fe 00 00 00       	jmp    0x402692
402594:	8b f7                	mov    %edi,%esi
402596:	e9 f7 00 00 00       	jmp    0x402692
40259b:	8b c6                	mov    %esi,%eax
40259d:	2b c7                	sub    %edi,%eax
40259f:	89 44 24 04          	mov    %eax,0x4(%esp)
4025a3:	3b 1d 20 c6 49 00    	cmp    0x49c620,%ebx
4025a9:	75 67                	jne    0x402612
4025ab:	a1 1c c6 49 00       	mov    0x49c61c,%eax
4025b0:	3b 44 24 04          	cmp    0x4(%esp),%eax
4025b4:	7c 53                	jl     0x402609
4025b6:	8b 44 24 04          	mov    0x4(%esp),%eax
4025ba:	29 05 1c c6 49 00    	sub    %eax,0x49c61c
4025c0:	8b 44 24 04          	mov    0x4(%esp),%eax
4025c4:	01 05 20 c6 49 00    	add    %eax,0x49c620
4025ca:	83 3d 1c c6 49 00 0c 	cmpl   $0xc,0x49c61c
4025d1:	7d 18                	jge    0x4025eb
4025d3:	a1 1c c6 49 00       	mov    0x49c61c,%eax
4025d8:	01 05 20 c6 49 00    	add    %eax,0x49c620
4025de:	03 35 1c c6 49 00    	add    0x49c61c,%esi
4025e4:	33 c0                	xor    %eax,%eax
4025e6:	a3 1c c6 49 00       	mov    %eax,0x49c61c
4025eb:	8b c6                	mov    %esi,%eax
4025ed:	2b c7                	sub    %edi,%eax
4025ef:	01 05 b8 c5 49 00    	add    %eax,0x49c5b8
4025f5:	8b 45 00             	mov    0x0(%ebp),%eax
4025f8:	25 03 00 00 80       	and    $0x80000003,%eax
4025fd:	0b f0                	or     %eax,%esi
4025ff:	89 75 00             	mov    %esi,0x0(%ebp)
402602:	b0 01                	mov    $0x1,%al
402604:	e9 a2 00 00 00       	jmp    0x4026ab
402609:	e8 3e f9 ff ff       	call   0x401f4c
40260e:	8b dd                	mov    %ebp,%ebx
402610:	03 df                	add    %edi,%ebx
402612:	f6 03 02             	testb  $0x2,(%ebx)
402615:	75 4d                	jne    0x402664
402617:	8b d3                	mov    %ebx,%edx
402619:	8b c2                	mov    %edx,%eax
40261b:	8b 48 08             	mov    0x8(%eax),%ecx
40261e:	89 0c 24             	mov    %ecx,(%esp)
402621:	8b 0c 24             	mov    (%esp),%ecx
402624:	3b 4c 24 04          	cmp    0x4(%esp),%ecx
402628:	7d 0e                	jge    0x402638
40262a:	03 14 24             	add    (%esp),%edx
40262d:	8b da                	mov    %edx,%ebx
40262f:	8b 04 24             	mov    (%esp),%eax
402632:	29 44 24 04          	sub    %eax,0x4(%esp)
402636:	eb 2c                	jmp    0x402664
402638:	e8 1f f6 ff ff       	call   0x401c5c
40263d:	8b 44 24 04          	mov    0x4(%esp),%eax
402641:	29 04 24             	sub    %eax,(%esp)
402644:	83 3c 24 0c          	cmpl   $0xc,(%esp)
402648:	7c 0e                	jl     0x402658
40264a:	8b c5                	mov    %ebp,%eax
40264c:	03 c6                	add    %esi,%eax
40264e:	8b 14 24             	mov    (%esp),%edx
402651:	e8 6e f8 ff ff       	call   0x401ec4
402656:	eb 3a                	jmp    0x402692
402658:	03 34 24             	add    (%esp),%esi
40265b:	8b dd                	mov    %ebp,%ebx
40265d:	03 de                	add    %esi,%ebx
40265f:	83 23 fe             	andl   $0xfffffffe,(%ebx)
402662:	eb 2e                	jmp    0x402692
402664:	8b 03                	mov    (%ebx),%eax
402666:	a9 00 00 00 80       	test   $0x80000000,%eax
40266b:	74 21                	je     0x40268e
40266d:	25 fc ff ff 7f       	and    $0x7ffffffc,%eax
402672:	03 c3                	add    %ebx,%eax
402674:	8b d8                	mov    %eax,%ebx
402676:	8b 54 24 04          	mov    0x4(%esp),%edx
40267a:	8b c3                	mov    %ebx,%eax
40267c:	e8 cf f9 ff ff       	call   0x402050
402681:	84 c0                	test   %al,%al
402683:	74 09                	je     0x40268e
402685:	8b dd                	mov    %ebp,%ebx
402687:	03 df                	add    %edi,%ebx
402689:	e9 0d ff ff ff       	jmp    0x40259b
40268e:	33 c0                	xor    %eax,%eax
402690:	eb 19                	jmp    0x4026ab
402692:	8b c6                	mov    %esi,%eax
402694:	2b c7                	sub    %edi,%eax
402696:	01 05 b8 c5 49 00    	add    %eax,0x49c5b8
40269c:	8b 45 00             	mov    0x0(%ebp),%eax
40269f:	25 03 00 00 80       	and    $0x80000003,%eax
4026a4:	0b f0                	or     %eax,%esi
4026a6:	89 75 00             	mov    %esi,0x0(%ebp)
4026a9:	b0 01                	mov    $0x1,%al
4026ab:	59                   	pop    %ecx
4026ac:	5a                   	pop    %edx
4026ad:	5d                   	pop    %ebp
4026ae:	5f                   	pop    %edi
4026af:	5e                   	pop    %esi
4026b0:	5b                   	pop    %ebx
4026b1:	c3                   	ret
4026b2:	8b c0                	mov    %eax,%eax
4026b4:	55                   	push   %ebp
4026b5:	8b ec                	mov    %esp,%ebp
4026b7:	51                   	push   %ecx
4026b8:	53                   	push   %ebx
4026b9:	56                   	push   %esi
4026ba:	57                   	push   %edi
4026bb:	8b f2                	mov    %edx,%esi
4026bd:	8b d8                	mov    %eax,%ebx
4026bf:	80 3d c4 c5 49 00 00 	cmpb   $0x0,0x49c5c4
4026c6:	75 13                	jne    0x4026db
4026c8:	e8 eb f3 ff ff       	call   0x401ab8
4026cd:	84 c0                	test   %al,%al
4026cf:	75 0a                	jne    0x4026db
4026d1:	33 c0                	xor    %eax,%eax
4026d3:	89 45 fc             	mov    %eax,-0x4(%ebp)
4026d6:	e9 91 00 00 00       	jmp    0x40276c
4026db:	33 d2                	xor    %edx,%edx
4026dd:	55                   	push   %ebp
4026de:	68 65 27 40 00       	push   $0x402765
4026e3:	64 ff 32             	push   %fs:(%edx)
4026e6:	64 89 22             	mov    %esp,%fs:(%edx)
4026e9:	80 3d 4d c0 49 00 00 	cmpb   $0x0,0x49c04d
4026f0:	74 0a                	je     0x4026fc
4026f2:	68 cc c5 49 00       	push   $0x49c5cc
4026f7:	e8 18 ed ff ff       	call   0x401414
4026fc:	8b d6                	mov    %esi,%edx
4026fe:	8b c3                	mov    %ebx,%eax
402700:	e8 d3 fd ff ff       	call   0x4024d8
402705:	84 c0                	test   %al,%al
402707:	74 05                	je     0x40270e
402709:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40270c:	eb 36                	jmp    0x402744
40270e:	8b c6                	mov    %esi,%eax
402710:	e8 8f fa ff ff       	call   0x4021a4
402715:	8b f8                	mov    %eax,%edi
402717:	8b c3                	mov    %ebx,%eax
402719:	83 e8 04             	sub    $0x4,%eax
40271c:	8b 00                	mov    (%eax),%eax
40271e:	25 fc ff ff 7f       	and    $0x7ffffffc,%eax
402723:	83 e8 04             	sub    $0x4,%eax
402726:	3b f0                	cmp    %eax,%esi
402728:	7d 02                	jge    0x40272c
40272a:	8b c6                	mov    %esi,%eax
40272c:	85 ff                	test   %edi,%edi
40272e:	74 11                	je     0x402741
402730:	8b d7                	mov    %edi,%edx
402732:	8b cb                	mov    %ebx,%ecx
402734:	91                   	xchg   %eax,%ecx
402735:	e8 3a 02 00 00       	call   0x402974
40273a:	8b c3                	mov    %ebx,%eax
40273c:	e8 f3 fb ff ff       	call   0x402334
402741:	89 7d fc             	mov    %edi,-0x4(%ebp)
402744:	33 c0                	xor    %eax,%eax
402746:	5a                   	pop    %edx
402747:	59                   	pop    %ecx
402748:	59                   	pop    %ecx
402749:	64 89 10             	mov    %edx,%fs:(%eax)
40274c:	68 6c 27 40 00       	push   $0x40276c
402751:	80 3d 4d c0 49 00 00 	cmpb   $0x0,0x49c04d
402758:	74 0a                	je     0x402764
40275a:	68 cc c5 49 00       	push   $0x49c5cc
40275f:	e8 b8 ec ff ff       	call   0x40141c
402764:	c3                   	ret
402765:	e9 fe 13 00 00       	jmp    0x403b68
40276a:	eb e5                	jmp    0x402751
40276c:	8b 45 fc             	mov    -0x4(%ebp),%eax
40276f:	5f                   	pop    %edi
402770:	5e                   	pop    %esi
402771:	5b                   	pop    %ebx
402772:	59                   	pop    %ecx
402773:	5d                   	pop    %ebp
402774:	c3                   	ret
402775:	8d 40 00             	lea    0x0(%eax),%eax
402778:	53                   	push   %ebx
402779:	85 c0                	test   %eax,%eax
40277b:	7e 15                	jle    0x402792
40277d:	ff 15 3c d0 48 00    	call   *0x48d03c
402783:	8b d8                	mov    %eax,%ebx
402785:	85 db                	test   %ebx,%ebx
402787:	75 0b                	jne    0x402794
402789:	b0 01                	mov    $0x1,%al
40278b:	e8 44 01 00 00       	call   0x4028d4
402790:	eb 02                	jmp    0x402794
402792:	33 db                	xor    %ebx,%ebx
402794:	8b c3                	mov    %ebx,%eax
402796:	5b                   	pop    %ebx
402797:	c3                   	ret
402798:	53                   	push   %ebx
402799:	85 c0                	test   %eax,%eax
40279b:	74 15                	je     0x4027b2
40279d:	ff 15 40 d0 48 00    	call   *0x48d040
4027a3:	8b d8                	mov    %eax,%ebx
4027a5:	85 db                	test   %ebx,%ebx
4027a7:	74 0b                	je     0x4027b4
4027a9:	b0 02                	mov    $0x2,%al
4027ab:	e8 24 01 00 00       	call   0x4028d4
4027b0:	eb 02                	jmp    0x4027b4
4027b2:	33 db                	xor    %ebx,%ebx
4027b4:	8b c3                	mov    %ebx,%eax
4027b6:	5b                   	pop    %ebx
4027b7:	c3                   	ret
4027b8:	8b 08                	mov    (%eax),%ecx
4027ba:	85 c9                	test   %ecx,%ecx
4027bc:	74 32                	je     0x4027f0
4027be:	85 d2                	test   %edx,%edx
4027c0:	74 18                	je     0x4027da
4027c2:	50                   	push   %eax
4027c3:	89 c8                	mov    %ecx,%eax
4027c5:	ff 15 44 d0 48 00    	call   *0x48d044
4027cb:	59                   	pop    %ecx
4027cc:	09 c0                	or     %eax,%eax
4027ce:	74 19                	je     0x4027e9
4027d0:	89 01                	mov    %eax,(%ecx)
4027d2:	c3                   	ret
4027d3:	b0 02                	mov    $0x2,%al
4027d5:	e9 fa 00 00 00       	jmp    0x4028d4
4027da:	89 10                	mov    %edx,(%eax)
4027dc:	89 c8                	mov    %ecx,%eax
4027de:	ff 15 40 d0 48 00    	call   *0x48d040
4027e4:	09 c0                	or     %eax,%eax
4027e6:	75 eb                	jne    0x4027d3
4027e8:	c3                   	ret
4027e9:	b0 01                	mov    $0x1,%al
4027eb:	e9 e4 00 00 00       	jmp    0x4028d4
4027f0:	85 d2                	test   %edx,%edx
4027f2:	74 10                	je     0x402804
4027f4:	50                   	push   %eax
4027f5:	89 d0                	mov    %edx,%eax
4027f7:	ff 15 3c d0 48 00    	call   *0x48d03c
4027fd:	59                   	pop    %ecx
4027fe:	09 c0                	or     %eax,%eax
402800:	74 e7                	je     0x4027e9
402802:	89 01                	mov    %eax,(%ecx)
402804:	c3                   	ret
402805:	8d 40 00             	lea    0x0(%eax),%eax
402808:	e8 97 3c 00 00       	call   0x4064a4
40280d:	83 b8 00 00 00 00 00 	cmpl   $0x0,0x0(%eax)
402814:	74 0f                	je     0x402825
402816:	e8 89 3c 00 00       	call   0x4064a4
40281b:	8b 80 00 00 00 00    	mov    0x0(%eax),%eax
402821:	8b 40 08             	mov    0x8(%eax),%eax
402824:	c3                   	ret
402825:	33 c0                	xor    %eax,%eax
402827:	c3                   	ret
402828:	e8 77 3c 00 00       	call   0x4064a4
40282d:	83 b8 00 00 00 00 00 	cmpl   $0x0,0x0(%eax)
402834:	74 0f                	je     0x402845
402836:	e8 69 3c 00 00       	call   0x4064a4
40283b:	8b 80 00 00 00 00    	mov    0x0(%eax),%eax
402841:	8b 40 04             	mov    0x4(%eax),%eax
402844:	c3                   	ret
402845:	33 c0                	xor    %eax,%eax
402847:	c3                   	ret
402848:	53                   	push   %ebx
402849:	56                   	push   %esi
40284a:	e8 55 3c 00 00       	call   0x4064a4
40284f:	83 b8 00 00 00 00 00 	cmpl   $0x0,0x0(%eax)
402856:	74 1a                	je     0x402872
402858:	e8 47 3c 00 00       	call   0x4064a4
40285d:	8b b0 00 00 00 00    	mov    0x0(%eax),%esi
402863:	8b 5e 08             	mov    0x8(%esi),%ebx
402866:	e8 39 3c 00 00       	call   0x4064a4
40286b:	33 c0                	xor    %eax,%eax
40286d:	89 46 08             	mov    %eax,0x8(%esi)
402870:	eb 02                	jmp    0x402874
402872:	33 db                	xor    %ebx,%ebx
402874:	8b c3                	mov    %ebx,%eax
402876:	5e                   	pop    %esi
402877:	5b                   	pop    %ebx
402878:	c3                   	ret
402879:	8d 40 00             	lea    0x0(%eax),%eax
40287c:	89 15 04 d0 48 00    	mov    %edx,0x48d004
402882:	e8 c5 18 00 00       	call   0x40414c
402887:	c3                   	ret
402888:	53                   	push   %ebx
402889:	56                   	push   %esi
40288a:	8b f2                	mov    %edx,%esi
40288c:	8b d8                	mov    %eax,%ebx
40288e:	80 e3 7f             	and    $0x7f,%bl
402891:	83 3d 08 c0 49 00 00 	cmpl   $0x0,0x49c008
402898:	74 0a                	je     0x4028a4
40289a:	8b d6                	mov    %esi,%edx
40289c:	8b c3                	mov    %ebx,%eax
40289e:	ff 15 08 c0 49 00    	call   *0x49c008
4028a4:	84 db                	test   %bl,%bl
4028a6:	75 0d                	jne    0x4028b5
4028a8:	e8 f7 3b 00 00       	call   0x4064a4
4028ad:	8b 98 04 00 00 00    	mov    0x4(%eax),%ebx
4028b3:	eb 0f                	jmp    0x4028c4
4028b5:	80 fb 18             	cmp    $0x18,%bl
4028b8:	77 0a                	ja     0x4028c4
4028ba:	33 c0                	xor    %eax,%eax
4028bc:	8a c3                	mov    %bl,%al
4028be:	8a 98 48 d0 48 00    	mov    0x48d048(%eax),%bl
4028c4:	33 c0                	xor    %eax,%eax
4028c6:	8a c3                	mov    %bl,%al
4028c8:	8b d6                	mov    %esi,%edx
4028ca:	e8 ad ff ff ff       	call   0x40287c
4028cf:	5e                   	pop    %esi
4028d0:	5b                   	pop    %ebx
4028d1:	c3                   	ret
4028d2:	8b c0                	mov    %eax,%eax
4028d4:	83 e0 7f             	and    $0x7f,%eax
4028d7:	8b 14 24             	mov    (%esp),%edx
4028da:	e9 a9 ff ff ff       	jmp    0x402888
4028df:	c3                   	ret
4028e0:	50                   	push   %eax
4028e1:	52                   	push   %edx
4028e2:	51                   	push   %ecx
4028e3:	e8 bc 3b 00 00       	call   0x4064a4
4028e8:	83 b8 04 00 00 00 00 	cmpl   $0x0,0x4(%eax)
4028ef:	59                   	pop    %ecx
4028f0:	5a                   	pop    %edx
4028f1:	58                   	pop    %eax
4028f2:	75 01                	jne    0x4028f5
4028f4:	c3                   	ret
4028f5:	31 c0                	xor    %eax,%eax
4028f7:	e9 d8 ff ff ff       	jmp    0x4028d4
4028fc:	c3                   	ret
4028fd:	8d 40 00             	lea    0x0(%eax),%eax
402900:	53                   	push   %ebx