599368:	3b c7                	cmp    %edi,%eax
59936a:	74 08                	je     0x599374
59936c:	42                   	inc    %edx
59936d:	41                   	inc    %ecx
59936e:	3b d3                	cmp    %ebx,%edx
599370:	72 f3                	jb     0x599365
599372:	eb 06                	jmp    0x59937a
599374:	81 ce 00 04 00 00    	or     $0x400,%esi
59937a:	f7 c6 00 04 00 00    	test   $0x400,%esi
599380:	75 0c                	jne    0x59938e
599382:	8b 5c 24 14          	mov    0x14(%esp),%ebx
599386:	85 db                	test   %ebx,%ebx
599388:	0f 84 d8 fb ff ff    	je     0x598f66
59938e:	8b 44 24 38          	mov    0x38(%esp),%eax
599392:	8b 40 7c             	mov    0x7c(%eax),%eax
599395:	8b 98 24 02 00 00    	mov    0x224(%eax),%ebx
59939b:	53                   	push   %ebx
59939c:	e8 1f bd f4 ff       	call   0x4e50c0
5993a1:	83 c4 04             	add    $0x4,%esp
5993a4:	85 c0                	test   %eax,%eax
5993a6:	75 06                	jne    0x5993ae
5993a8:	81 ce 00 02 00 00    	or     $0x200,%esi
5993ae:	f7 c6 00 02 00 00    	test   $0x200,%esi
5993b4:	75 59                	jne    0x59940f
5993b6:	ff 74 24 1c          	push   0x1c(%esp)
5993ba:	53                   	push   %ebx
5993bb:	e8 80 ea ff ff       	call   0x597e40
5993c0:	83 c4 08             	add    $0x8,%esp
5993c3:	85 c0                	test   %eax,%eax
5993c5:	74 06                	je     0x5993cd
5993c7:	81 ce 00 02 00 00    	or     $0x200,%esi
5993cd:	f7 c6 00 02 00 00    	test   $0x200,%esi
5993d3:	75 3a                	jne    0x59940f
5993d5:	55                   	push   %ebp
5993d6:	33 ff                	xor    %edi,%edi
5993d8:	e8 e3 bc f4 ff       	call   0x4e50c0
5993dd:	83 c4 04             	add    $0x4,%esp
5993e0:	85 c0                	test   %eax,%eax
5993e2:	7e 2b                	jle    0x59940f
5993e4:	57                   	push   %edi
5993e5:	55                   	push   %ebp
5993e6:	e8 95 be f4 ff       	call   0x4e5280
5993eb:	50                   	push   %eax
5993ec:	53                   	push   %ebx
5993ed:	e8 4e ea ff ff       	call   0x597e40
5993f2:	83 c4 10             	add    $0x10,%esp
5993f5:	85 c0                	test   %eax,%eax
5993f7:	75 10                	jne    0x599409
5993f9:	55                   	push   %ebp
5993fa:	47                   	inc    %edi
5993fb:	e8 c0 bc f4 ff       	call   0x4e50c0
599400:	83 c4 04             	add    $0x4,%esp
599403:	3b f8                	cmp    %eax,%edi
599405:	7c dd                	jl     0x5993e4
599407:	eb 06                	jmp    0x59940f
599409:	81 ce 00 02 00 00    	or     $0x200,%esi
59940f:	8b 5c 24 14          	mov    0x14(%esp),%ebx
599413:	85 db                	test   %ebx,%ebx
599415:	75 1e                	jne    0x599435
599417:	f7 c6 00 02 00 00    	test   $0x200,%esi
59941d:	0f 84 43 fb ff ff    	je     0x598f66
599423:	83 ce 01             	or     $0x1,%esi
599426:	e9 3b fb ff ff       	jmp    0x598f66
59942b:	81 ce 00 06 00 00    	or     $0x600,%esi
599431:	85 db                	test   %ebx,%ebx
599433:	74 0c                	je     0x599441
599435:	8b c3                	mov    %ebx,%eax
599437:	23 c6                	and    %esi,%eax
599439:	3b c3                	cmp    %ebx,%eax
59943b:	0f 85 25 fb ff ff    	jne    0x598f66
599441:	83 ce 01             	or     $0x1,%esi
599444:	e9 1d fb ff ff       	jmp    0x598f66
599449:	8b 4c 24 24          	mov    0x24(%esp),%ecx
59944d:	b8 02 01 00 00       	mov    $0x102,%eax
599452:	0b c6                	or     %esi,%eax
599454:	85 db                	test   %ebx,%ebx
599456:	75 16                	jne    0x59946e
599458:	a8 01                	test   $0x1,%al
59945a:	74 0a                	je     0x599466
59945c:	5f                   	pop    %edi
59945d:	5e                   	pop    %esi
59945e:	5d                   	pop    %ebp
59945f:	89 01                	mov    %eax,(%ecx)
599461:	5b                   	pop    %ebx
599462:	83 c4 24             	add    $0x24,%esp
599465:	c3                   	ret
599466:	81 21 02 01 00 00    	andl   $0x102,(%ecx)
59946c:	33 c0                	xor    %eax,%eax
59946e:	5f                   	pop    %edi
59946f:	5e                   	pop    %esi
599470:	5d                   	pop    %ebp
599471:	5b                   	pop    %ebx
599472:	83 c4 24             	add    $0x24,%esp
599475:	c3                   	ret
599476:	66 90                	xchg   %ax,%ax
599478:	d5 90                	aad    $0x90
59947a:	59                   	pop    %ecx
59947b:	00 b5 91 59 00 e7    	add    %dh,-0x18ffa66f(%ebp)
599481:	90                   	nop
599482:	59                   	pop    %ecx
599483:	00 f9                	add    %bh,%cl
599485:	90                   	nop
599486:	59                   	pop    %ecx
599487:	00 0b                	add    %cl,(%ebx)
599489:	91                   	xchg   %eax,%ecx
59948a:	59                   	pop    %ecx
59948b:	00 1d 91 59 00 2f    	add    %bl,0x2f005991
599491:	91                   	xchg   %eax,%ecx
599492:	59                   	pop    %ecx
599493:	00 cc                	add    %cl,%ah
599495:	cc                   	int3
599496:	cc                   	int3
599497:	cc                   	int3
599498:	cc                   	int3
599499:	cc                   	int3
59949a:	cc                   	int3
59949b:	cc                   	int3
59949c:	cc                   	int3
59949d:	cc                   	int3
59949e:	cc                   	int3
59949f:	cc                   	int3
5994a0:	b8 10 00 00 00       	mov    $0x10,%eax
5994a5:	e8 06 83 03 00       	call   0x5d17b0
5994aa:	56                   	push   %esi
5994ab:	8b 74 24 18          	mov    0x18(%esp),%esi
5994af:	8b 86 04 04 00 00    	mov    0x404(%esi),%eax
5994b5:	f7 40 10 00 00 03 00 	testl  $0x30000,0x10(%eax)
5994bc:	0f 85 3f 01 00 00    	jne    0x599601
5994c2:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
5994c6:	75 0f                	jne    0x5994d7
5994c8:	33 c9                	xor    %ecx,%ecx
5994ca:	33 c0                	xor    %eax,%eax
5994cc:	66 85 c9             	test   %cx,%cx
5994cf:	5e                   	pop    %esi
5994d0:	0f 95 c0             	setne  %al
5994d3:	83 c4 10             	add    $0x10,%esp
5994d6:	c3                   	ret
5994d7:	f7 86 ec 04 00 00 00 	testl  $0x400000,0x4ec(%esi)
5994de:	00 40 00
5994e1:	53                   	push   %ebx
5994e2:	57                   	push   %edi
5994e3:	74 2e                	je     0x599513
5994e5:	8d 44 24 20          	lea    0x20(%esp),%eax
5994e9:	50                   	push   %eax
5994ea:	8d 44 24 14          	lea    0x14(%esp),%eax
5994ee:	50                   	push   %eax
5994ef:	56                   	push   %esi
5994f0:	e8 6b 06 00 00       	call   0x599b60
5994f5:	8b 5c 24 2c          	mov    0x2c(%esp),%ebx
5994f9:	8b 44 24 1c          	mov    0x1c(%esp),%eax
5994fd:	8b 8e 7c 05 00 00    	mov    0x57c(%esi),%ecx
599503:	8b be 78 05 00 00    	mov    0x578(%esi),%edi
599509:	89 5c 24 20          	mov    %ebx,0x20(%esp)
59950d:	89 44 24 18          	mov    %eax,0x18(%esp)
599511:	eb 30                	jmp    0x599543
599513:	8b 86 7c 05 00 00    	mov    0x57c(%esi),%eax
599519:	8b 9e 78 05 00 00    	mov    0x578(%esi),%ebx
59951f:	89 44 24 0c          	mov    %eax,0xc(%esp)
599523:	8d 44 24 20          	lea    0x20(%esp),%eax
599527:	50                   	push   %eax
599528:	8d 44 24 1c          	lea    0x1c(%esp),%eax
59952c:	89 5c 24 18          	mov    %ebx,0x18(%esp)
599530:	50                   	push   %eax
599531:	56                   	push   %esi
599532:	e8 29 06 00 00       	call   0x599b60
599537:	8b 7c 24 2c          	mov    0x2c(%esp),%edi
59953b:	8b 4c 24 24          	mov    0x24(%esp),%ecx
59953f:	8b 44 24 18          	mov    0x18(%esp),%eax
599543:	83 c4 0c             	add    $0xc,%esp
599546:	89 4c 24 18          	mov    %ecx,0x18(%esp)
59954a:	c7 44 24 10 00 00 00 	movl   $0x0,0x10(%esp)
599551:	00
599552:	55                   	push   %ebp
599553:	33 ed                	xor    %ebp,%ebp
599555:	85 db                	test   %ebx,%ebx
599557:	0f 84 92 00 00 00    	je     0x5995ef
59955d:	0f 1f 00             	nopl   (%eax)
599560:	0f b7 1c 68          	movzwl (%eax,%ebp,2),%ebx
599564:	33 c0                	xor    %eax,%eax
599566:	85 ff                	test   %edi,%edi
599568:	74 62                	je     0x5995cc
59956a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
599570:	66 39 1c 41          	cmp    %bx,(%ecx,%eax,2)
599574:	74 07                	je     0x59957d
599576:	40                   	inc    %eax
599577:	3b c7                	cmp    %edi,%eax
599579:	72 f5                	jb     0x599570
59957b:	eb 4f                	jmp    0x5995cc
59957d:	8d 43 ff             	lea    -0x1(%ebx),%eax
599580:	66 83 f8 1d          	cmp    $0x1d,%ax
599584:	77 46                	ja     0x5995cc
599586:	8b c3                	mov    %ebx,%eax
599588:	8d 04 40             	lea    (%eax,%eax,2),%eax
59958b:	8d 0c 85 fc 74 66 00 	lea    0x6674fc(,%eax,4),%ecx
599592:	85 c9                	test   %ecx,%ecx
599594:	74 36                	je     0x5995cc
599596:	8b c3                	mov    %ebx,%eax
599598:	88 5c 24 25          	mov    %bl,0x25(%esp)
59959c:	c1 e8 08             	shr    $0x8,%eax
59959f:	88 44 24 24          	mov    %al,0x24(%esp)
5995a3:	8d 44 24 24          	lea    0x24(%esp),%eax
5995a7:	50                   	push   %eax
5995a8:	ff 31                	push   (%ecx)
5995aa:	ff 71 04             	push   0x4(%ecx)
5995ad:	68 05 00 02 00       	push   $0x20005
5995b2:	56                   	push   %esi
5995b3:	e8 c8 1f ff ff       	call   0x58b580
5995b8:	83 c4 14             	add    $0x14,%esp
5995bb:	85 c0                	test   %eax,%eax
5995bd:	74 0d                	je     0x5995cc
5995bf:	8b 54 24 14          	mov    0x14(%esp),%edx
5995c3:	85 d2                	test   %edx,%edx
5995c5:	74 16                	je     0x5995dd
5995c7:	42                   	inc    %edx
5995c8:	89 54 24 14          	mov    %edx,0x14(%esp)
5995cc:	45                   	inc    %ebp
5995cd:	3b 6c 24 18          	cmp    0x18(%esp),%ebp
5995d1:	73 1c                	jae    0x5995ef
5995d3:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
5995d7:	8b 44 24 10          	mov    0x10(%esp),%eax
5995db:	eb 83                	jmp    0x599560
5995dd:	5d                   	pop    %ebp
5995de:	8b cb                	mov    %ebx,%ecx
5995e0:	33 c0                	xor    %eax,%eax
5995e2:	5f                   	pop    %edi
5995e3:	66 85 c9             	test   %cx,%cx
5995e6:	5b                   	pop    %ebx
5995e7:	0f 95 c0             	setne  %al
5995ea:	5e                   	pop    %esi
5995eb:	83 c4 10             	add    $0x10,%esp
5995ee:	c3                   	ret
5995ef:	5d                   	pop    %ebp
5995f0:	33 c9                	xor    %ecx,%ecx
5995f2:	33 c0                	xor    %eax,%eax
5995f4:	5f                   	pop    %edi
5995f5:	66 85 c9             	test   %cx,%cx
5995f8:	5b                   	pop    %ebx
5995f9:	0f 95 c0             	setne  %al
5995fc:	5e                   	pop    %esi
5995fd:	83 c4 10             	add    $0x10,%esp
599600:	c3                   	ret
599601:	8b 44 24 1c          	mov    0x1c(%esp),%eax
599605:	3d 2b c0 00 03       	cmp    $0x300c02b,%eax
59960a:	0f 85 a2 00 00 00    	jne    0x5996b2
599610:	8b 46 7c             	mov    0x7c(%esi),%eax
599613:	8b 80 10 02 00 00    	mov    0x210(%eax),%eax
599619:	85 c0                	test   %eax,%eax
59961b:	74 09                	je     0x599626
59961d:	81 78 0c 2b c0 00 03 	cmpl   $0x300c02b,0xc(%eax)
599624:	75 2d                	jne    0x599653
599626:	8d 44 24 18          	lea    0x18(%esp),%eax
59962a:	50                   	push   %eax
59962b:	8d 44 24 14          	lea    0x14(%esp),%eax
59962f:	50                   	push   %eax
599630:	56                   	push   %esi
599631:	e8 2a 05 00 00       	call   0x599b60
599636:	8b 4c 24 24          	mov    0x24(%esp),%ecx
59963a:	83 c4 0c             	add    $0xc,%esp
59963d:	33 c0                	xor    %eax,%eax
59963f:	85 c9                	test   %ecx,%ecx
599641:	74 10                	je     0x599653
599643:	8b 54 24 10          	mov    0x10(%esp),%edx
599647:	66 83 3c 42 17       	cmpw   $0x17,(%edx,%eax,2)
59964c:	74 0c                	je     0x59965a
59964e:	40                   	inc    %eax
59964f:	3b c1                	cmp    %ecx,%eax
599651:	72 f4                	jb     0x599647
599653:	33 c0                	xor    %eax,%eax
599655:	5e                   	pop    %esi
599656:	83 c4 10             	add    $0x10,%esp
599659:	c3                   	ret
59965a:	8d 44 24 18          	lea    0x18(%esp),%eax
59965e:	66 c7 44 24 18 00 17 	movw   $0x1700,0x18(%esp)
599665:	50                   	push   %eax
599666:	68 9f 01 00 00       	push   $0x19f
59966b:	68 80 00 00 00       	push   $0x80
599670:	68 06 00 02 00       	push   $0x20006
599675:	56                   	push   %esi
599676:	e8 05 1f ff ff       	call   0x58b580
59967b:	83 c4 14             	add    $0x14,%esp
59967e:	85 c0                	test   %eax,%eax
599680:	74 d1                	je     0x599653
599682:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
599686:	75 0a                	jne    0x599692
599688:	b8 01 00 00 00       	mov    $0x1,%eax
59968d:	5e                   	pop    %esi
59968e:	83 c4 10             	add    $0x10,%esp
599691:	c3                   	ret
599692:	8b 86 78 05 00 00    	mov    0x578(%esi),%eax
599698:	85 c0                	test   %eax,%eax
59969a:	74 ec                	je     0x599688
59969c:	50                   	push   %eax
59969d:	ff b6 7c 05 00 00    	push   0x57c(%esi)
5996a3:	6a 17                	push   $0x17
5996a5:	e8 66 05 00 00       	call   0x599c10
5996aa:	83 c4 0c             	add    $0xc,%esp
5996ad:	5e                   	pop    %esi
5996ae:	83 c4 10             	add    $0x10,%esp
5996b1:	c3                   	ret
5996b2:	3d 2c c0 00 03       	cmp    $0x300c02c,%eax
5996b7:	75 9a                	jne    0x599653
5996b9:	6a 01                	push   $0x1
5996bb:	6a 18                	push   $0x18
5996bd:	56                   	push   %esi
5996be:	e8 0d 00 00 00       	call   0x5996d0
5996c3:	83 c4 0c             	add    $0xc,%esp
5996c6:	5e                   	pop    %esi
5996c7:	83 c4 10             	add    $0x10,%esp
5996ca:	c3                   	ret
5996cb:	cc                   	int3
5996cc:	cc                   	int3
5996cd:	cc                   	int3
5996ce:	cc                   	int3
5996cf:	cc                   	int3
5996d0:	b8 04 00 00 00       	mov    $0x4,%eax
5996d5:	e8 d6 80 03 00       	call   0x5d17b0
5996da:	56                   	push   %esi
5996db:	8b 74 24 10          	mov    0x10(%esp),%esi
5996df:	57                   	push   %edi
5996e0:	66 85 f6             	test   %si,%si
5996e3:	74 30                	je     0x599715
5996e5:	8b 7c 24 10          	mov    0x10(%esp),%edi
5996e9:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
5996ef:	f7 40 10 00 00 03 00 	testl  $0x30000,0x10(%eax)
5996f6:	74 30                	je     0x599728
5996f8:	8b 47 7c             	mov    0x7c(%edi),%eax
5996fb:	8b 80 10 02 00 00    	mov    0x210(%eax),%eax
599701:	85 c0                	test   %eax,%eax
599703:	74 23                	je     0x599728
599705:	8b 40 0c             	mov    0xc(%eax),%eax
599708:	3d 2b c0 00 03       	cmp    $0x300c02b,%eax
59970d:	75 0c                	jne    0x59971b
59970f:	66 83 fe 17          	cmp    $0x17,%si
599713:	74 13                	je     0x599728
599715:	5f                   	pop    %edi
599716:	33 c0                	xor    %eax,%eax
599718:	5e                   	pop    %esi
599719:	59                   	pop    %ecx
59971a:	c3                   	ret
59971b:	3d 2c c0 00 03       	cmp    $0x300c02c,%eax
599720:	75 f3                	jne    0x599715
599722:	66 83 fe 18          	cmp    $0x18,%si
599726:	75 ed                	jne    0x599715
599728:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
59972d:	74 32                	je     0x599761
59972f:	8d 44 24 14          	lea    0x14(%esp),%eax
599733:	50                   	push   %eax
599734:	8d 44 24 0c          	lea    0xc(%esp),%eax
599738:	50                   	push   %eax
599739:	57                   	push   %edi