592324:	8b 8f 84 00 00 00    	mov    0x84(%edi),%ecx
59232a:	85 c9                	test   %ecx,%ecx
59232c:	74 15                	je     0x592343
59232e:	ff b7 88 00 00 00    	push   0x88(%edi)
592334:	57                   	push   %edi
592335:	6a 02                	push   $0x2
592337:	50                   	push   %eax
592338:	6a 15                	push   $0x15
59233a:	ff 37                	push   (%edi)
59233c:	6a 00                	push   $0x0
59233e:	ff d1                	call   *%ecx
592340:	83 c4 1c             	add    $0x1c,%esp
592343:	8b 8f b4 04 00 00    	mov    0x4b4(%edi),%ecx
592349:	89 4c 24 10          	mov    %ecx,0x10(%esp)
59234d:	85 c9                	test   %ecx,%ecx
59234f:	75 22                	jne    0x592373
592351:	8b 87 d0 04 00 00    	mov    0x4d0(%edi),%eax
592357:	8b 88 a0 00 00 00    	mov    0xa0(%eax),%ecx
59235d:	89 4c 24 10          	mov    %ecx,0x10(%esp)
592361:	85 c9                	test   %ecx,%ecx
592363:	75 0e                	jne    0x592373
592365:	8b 44 24 18          	mov    0x18(%esp),%eax
592369:	8b c8                	mov    %eax,%ecx
59236b:	89 4c 24 10          	mov    %ecx,0x10(%esp)
59236f:	85 c0                	test   %eax,%eax
592371:	74 17                	je     0x59238a
592373:	8b c5                	mov    %ebp,%eax
592375:	c1 e0 08             	shl    $0x8,%eax
592378:	0b c6                	or     %esi,%eax
59237a:	50                   	push   %eax
59237b:	68 04 40 00 00       	push   $0x4004
592380:	57                   	push   %edi
592381:	ff d1                	call   *%ecx
592383:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
592387:	83 c4 0c             	add    $0xc,%esp
59238a:	8b 54 24 1c          	mov    0x1c(%esp),%edx
59238e:	83 fd 01             	cmp    $0x1,%ebp
592391:	74 09                	je     0x59239c
592393:	85 d2                	test   %edx,%edx
592395:	74 35                	je     0x5923cc
592397:	83 fe 5a             	cmp    $0x5a,%esi
59239a:	75 30                	jne    0x5923cc
59239c:	8b 47 7c             	mov    0x7c(%edi),%eax
59239f:	89 b0 e0 00 00 00    	mov    %esi,0xe0(%eax)
5923a5:	c7 43 20 01 00 00 00 	movl   $0x1,0x20(%ebx)
5923ac:	ff 87 34 0f 00 00    	incl   0xf34(%edi)
5923b2:	83 bf 34 0f 00 00 05 	cmpl   $0x5,0xf34(%edi)
5923b9:	0f 84 2e 04 00 00    	je     0x5927ed
5923bf:	85 d2                	test   %edx,%edx
5923c1:	74 09                	je     0x5923cc
5923c3:	83 fe 5a             	cmp    $0x5a,%esi
5923c6:	0f 84 e4 fd ff ff    	je     0x5921b0
5923cc:	85 f6                	test   %esi,%esi
5923ce:	75 11                	jne    0x5923e1
5923d0:	85 d2                	test   %edx,%edx
5923d2:	0f 85 5f 03 00 00    	jne    0x592737
5923d8:	83 fd 01             	cmp    $0x1,%ebp
5923db:	0f 84 56 03 00 00    	je     0x592737
5923e1:	83 fd 02             	cmp    $0x2,%ebp
5923e4:	0f 84 7e 03 00 00    	je     0x592768
5923ea:	85 d2                	test   %edx,%edx
5923ec:	0f 85 76 03 00 00    	jne    0x592768
5923f2:	83 fe 64             	cmp    $0x64,%esi
5923f5:	0f 84 55 03 00 00    	je     0x592750
5923fb:	83 fd 01             	cmp    $0x1,%ebp
5923fe:	0f 84 ac fd ff ff    	je     0x5921b0
592404:	68 21 06 00 00       	push   $0x621
592409:	68 6c 6f 66 00       	push   $0x666f6c
59240e:	68 f6 00 00 00       	push   $0xf6
592413:	68 94 00 00 00       	push   $0x94
592418:	6a 2f                	push   $0x2f
59241a:	57                   	push   %edi
59241b:	e8 f0 cc ff ff       	call   0x58f110
592420:	83 c4 18             	add    $0x18,%esp
592423:	83 c8 ff             	or     $0xffffffff,%eax
592426:	5f                   	pop    %edi
592427:	5e                   	pop    %esi
592428:	5d                   	pop    %ebp
592429:	5b                   	pop    %ebx
59242a:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
59242e:	33 cc                	xor    %esp,%ecx
592430:	e8 f1 f5 03 00       	call   0x5d1a26
592435:	83 c4 30             	add    $0x30,%esp
592438:	c3                   	ret
592439:	f6 47 28 01          	testb  $0x1,0x28(%edi)
59243d:	74 3e                	je     0x59247d
59243f:	83 f8 16             	cmp    $0x16,%eax
592442:	0f 85 f4 03 00 00    	jne    0x59283c
592448:	8b 41 64             	mov    0x64(%ecx),%eax
59244b:	f6 40 30 08          	testb  $0x8,0x30(%eax)
59244f:	75 08                	jne    0x592459
592451:	81 fa 04 03 00 00    	cmp    $0x304,%edx
592457:	7d 29                	jge    0x592482
592459:	c7 43 08 00 00 00 00 	movl   $0x0,0x8(%ebx)
592460:	c7 43 20 01 00 00 00 	movl   $0x1,0x20(%ebx)
592467:	f6 87 f0 04 00 00 04 	testb  $0x4,0x4f0(%edi)
59246e:	0f 84 a1 03 00 00    	je     0x592815
592474:	8b 4c 24 10          	mov    0x10(%esp),%ecx
592478:	e9 33 fd ff ff       	jmp    0x5921b0
59247d:	83 f8 16             	cmp    $0x16,%eax
592480:	75 60                	jne    0x5924e2
592482:	8b 8f 08 0f 00 00    	mov    0xf08(%edi),%ecx
592488:	b8 04 00 00 00       	mov    $0x4,%eax
59248d:	8b 73 08             	mov    0x8(%ebx),%esi
592490:	2b c1                	sub    %ecx,%eax
592492:	3b f0                	cmp    %eax,%esi
592494:	0f 43 f0             	cmovae %eax,%esi
592497:	8b 43 14             	mov    0x14(%ebx),%eax
59249a:	03 43 10             	add    0x10(%ebx),%eax
59249d:	56                   	push   %esi
59249e:	50                   	push   %eax
59249f:	8d 81 04 0f 00 00    	lea    0xf04(%ecx),%eax
5924a5:	03 c7                	add    %edi,%eax
5924a7:	50                   	push   %eax
5924a8:	e8 23 09 04 00       	call   0x5d2dd0
5924ad:	01 73 10             	add    %esi,0x10(%ebx)
5924b0:	83 c4 0c             	add    $0xc,%esp
5924b3:	29 73 08             	sub    %esi,0x8(%ebx)
5924b6:	01 b7 08 0f 00 00    	add    %esi,0xf08(%edi)
5924bc:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)
5924c0:	8b 87 08 0f 00 00    	mov    0xf08(%edi),%eax
5924c6:	75 0d                	jne    0x5924d5
5924c8:	c7 43 20 01 00 00 00 	movl   $0x1,0x20(%ebx)
5924cf:	8b 87 08 0f 00 00    	mov    0xf08(%edi),%eax
5924d5:	8b 4c 24 10          	mov    0x10(%esp),%ecx
5924d9:	83 f8 04             	cmp    $0x4,%eax
5924dc:	0f 82 ce fc ff ff    	jb     0x5921b0
5924e2:	83 7b 04 14          	cmpl   $0x14,0x4(%ebx)
5924e6:	0f 84 c4 03 00 00    	je     0x5928b0
5924ec:	83 bf 08 0f 00 00 04 	cmpl   $0x4,0xf08(%edi)
5924f3:	72 5b                	jb     0x592550
5924f5:	57                   	push   %edi
5924f6:	e8 45 dc f5 ff       	call   0x4f0140
5924fb:	83 c4 04             	add    $0x4,%esp
5924fe:	85 c0                	test   %eax,%eax
592500:	75 4e                	jne    0x592550
592502:	8b 77 68             	mov    0x68(%edi),%esi
592505:	6a 01                	push   $0x1
592507:	57                   	push   %edi
592508:	e8 93 cc ff ff       	call   0x58f1a0
59250d:	8b 47 18             	mov    0x18(%edi),%eax
592510:	57                   	push   %edi
592511:	ff d0                	call   *%eax
592513:	83 c4 0c             	add    $0xc,%esp
592516:	85 c0                	test   %eax,%eax
592518:	0f 88 4c 04 00 00    	js     0x59296a
59251e:	0f 84 99 fb ff ff    	je     0x5920bd
592524:	83 fe 0b             	cmp    $0xb,%esi
592527:	0f 84 90 fb ff ff    	je     0x5920bd
59252d:	f6 87 f0 04 00 00 04 	testb  $0x4,0x4f0(%edi)
592534:	8b 4c 24 10          	mov    0x10(%esp),%ecx
592538:	0f 85 72 fc ff ff    	jne    0x5921b0
59253e:	83 bf 74 06 00 00 00 	cmpl   $0x0,0x674(%edi)
592545:	0f 84 ca 02 00 00    	je     0x592815
59254b:	e9 60 fc ff ff       	jmp    0x5921b0
592550:	8b 43 04             	mov    0x4(%ebx),%eax
592553:	83 f8 14             	cmp    $0x14,%eax
592556:	0f 8c 40 03 00 00    	jl     0x59289c
59255c:	83 f8 16             	cmp    $0x16,%eax
59255f:	0f 8e 26 03 00 00    	jle    0x59288b
592565:	83 f8 17             	cmp    $0x17,%eax
592568:	0f 85 2e 03 00 00    	jne    0x59289c
59256e:	57                   	push   %edi
59256f:	e8 fc ca ff ff       	call   0x58f070
592574:	83 c4 04             	add    $0x4,%esp
592577:	85 c0                	test   %eax,%eax
592579:	0f 85 fa 02 00 00    	jne    0x592879
59257f:	57                   	push   %edi
592580:	e8 4b cc ff ff       	call   0x58f1d0
592585:	83 c4 04             	add    $0x4,%esp
592588:	85 c0                	test   %eax,%eax
59258a:	0f 84 d5 02 00 00    	je     0x592865
592590:	6a 00                	push   $0x0
592592:	6a 68                	push   $0x68
592594:	ff 73 08             	push   0x8(%ebx)
592597:	57                   	push   %edi
592598:	e8 83 e9 00 00       	call   0x5a0f20
59259d:	83 c4 10             	add    $0x10,%esp
5925a0:	85 c0                	test   %eax,%eax
5925a2:	0f 84 15 fb ff ff    	je     0x5920bd
5925a8:	8b 4c 24 10          	mov    0x10(%esp),%ecx
5925ac:	c7 43 20 01 00 00 00 	movl   $0x1,0x20(%ebx)
5925b3:	e9 f8 fb ff ff       	jmp    0x5921b0
5925b8:	57                   	push   %edi
5925b9:	e8 72 ca ff ff       	call   0x58f030
5925be:	83 c4 04             	add    $0x4,%esp
5925c1:	85 c0                	test   %eax,%eax
5925c3:	8b 44 24 48          	mov    0x48(%esp),%eax
5925c7:	74 1f                	je     0x5925e8
5925c9:	83 f8 17             	cmp    $0x17,%eax
5925cc:	75 1a                	jne    0x5925e8
5925ce:	83 bf cc 03 00 00 00 	cmpl   $0x0,0x3cc(%edi)
5925d5:	75 29                	jne    0x592600
5925d7:	68 62 05 00 00       	push   $0x562
5925dc:	68 6c 6f 66 00       	push   $0x666f6c
5925e1:	6a 64                	push   $0x64
5925e3:	e9 18 01 00 00       	jmp    0x592700
5925e8:	83 f8 16             	cmp    $0x16,%eax
5925eb:	75 13                	jne    0x592600
5925ed:	83 7b 04 14          	cmpl   $0x14,0x4(%ebx)
5925f1:	75 0d                	jne    0x592600
5925f3:	83 bf 08 0f 00 00 00 	cmpl   $0x0,0xf08(%edi)
5925fa:	0f 87 dc 02 00 00    	ja     0x5928dc
592600:	8b 4c 24 20          	mov    0x20(%esp),%ecx
592604:	85 c9                	test   %ecx,%ecx
592606:	74 05                	je     0x59260d
592608:	8b 43 04             	mov    0x4(%ebx),%eax
59260b:	89 01                	mov    %eax,(%ecx)
59260d:	8b 44 24 54          	mov    0x54(%esp),%eax
592611:	85 c0                	test   %eax,%eax
592613:	0f 84 1f 03 00 00    	je     0x592938
592619:	33 d2                	xor    %edx,%edx
59261b:	83 c3 10             	add    $0x10,%ebx
59261e:	89 54 24 18          	mov    %edx,0x18(%esp)
592622:	8b 4b f8             	mov    -0x8(%ebx),%ecx
592625:	2b c2                	sub    %edx,%eax
592627:	3b c1                	cmp    %ecx,%eax
592629:	0f 46 c8             	cmovbe %eax,%ecx
59262c:	8b 43 04             	mov    0x4(%ebx),%eax
59262f:	03 03                	add    (%ebx),%eax
592631:	51                   	push   %ecx
592632:	50                   	push   %eax
592633:	ff 74 24 1c          	push   0x1c(%esp)
592637:	89 4c 24 34          	mov    %ecx,0x34(%esp)
59263b:	e8 90 07 04 00       	call   0x5d2dd0
592640:	8b 4c 24 34          	mov    0x34(%esp),%ecx
592644:	83 c4 0c             	add    $0xc,%esp
592647:	01 4c 24 14          	add    %ecx,0x14(%esp)
59264b:	8b 54 24 58          	mov    0x58(%esp),%edx
59264f:	8b 43 f8             	mov    -0x8(%ebx),%eax
592652:	85 d2                	test   %edx,%edx
592654:	74 06                	je     0x59265c
592656:	85 c0                	test   %eax,%eax
592658:	75 27                	jne    0x592681
59265a:	eb 1a                	jmp    0x592676
59265c:	01 0b                	add    %ecx,(%ebx)
59265e:	2b c1                	sub    %ecx,%eax
592660:	89 43 f8             	mov    %eax,-0x8(%ebx)
592663:	85 c0                	test   %eax,%eax
592665:	75 1a                	jne    0x592681
592667:	c7 87 58 06 00 00 f0 	movl   $0xf0,0x658(%edi)
59266e:	00 00 00
592671:	89 03                	mov    %eax,(%ebx)
592673:	8b 43 f8             	mov    -0x8(%ebx),%eax
592676:	c7 43 10 01 00 00 00 	movl   $0x1,0x10(%ebx)
59267d:	85 c0                	test   %eax,%eax
59267f:	74 08                	je     0x592689
592681:	85 d2                	test   %edx,%edx
592683:	74 08                	je     0x59268d
592685:	3b c8                	cmp    %eax,%ecx
592687:	75 04                	jne    0x59268d
592689:	46                   	inc    %esi
59268a:	83 c3 30             	add    $0x30,%ebx
59268d:	8b 54 24 18          	mov    0x18(%esp),%edx
592691:	03 d1                	add    %ecx,%edx
592693:	83 7c 24 48 17       	cmpl   $0x17,0x48(%esp)
592698:	89 54 24 18          	mov    %edx,0x18(%esp)
59269c:	75 10                	jne    0x5926ae
59269e:	3b f5                	cmp    %ebp,%esi
5926a0:	73 0c                	jae    0x5926ae
5926a2:	8b 44 24 54          	mov    0x54(%esp),%eax
5926a6:	3b d0                	cmp    %eax,%edx
5926a8:	0f 82 74 ff ff ff    	jb     0x592622
5926ae:	85 d2                	test   %edx,%edx
5926b0:	0f 85 3a 02 00 00    	jne    0x5928f0
5926b6:	8b 4c 24 10          	mov    0x10(%esp),%ecx
5926ba:	e9 f1 fa ff ff       	jmp    0x5921b0
5926bf:	68 1e 05 00 00       	push   $0x51e
5926c4:	68 6c 6f 66 00       	push   $0x666f6c
5926c9:	6a 44                	push   $0x44
5926cb:	68 94 00 00 00       	push   $0x94
5926d0:	6a 50                	push   $0x50
5926d2:	57                   	push   %edi
5926d3:	e8 38 ca ff ff       	call   0x58f110
5926d8:	83 c4 18             	add    $0x18,%esp
5926db:	83 c8 ff             	or     $0xffffffff,%eax
5926de:	5f                   	pop    %edi
5926df:	5e                   	pop    %esi
5926e0:	5d                   	pop    %ebp
5926e1:	5b                   	pop    %ebx
5926e2:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
5926e6:	33 cc                	xor    %esp,%ecx
5926e8:	e8 39 f3 03 00       	call   0x5d1a26
5926ed:	83 c4 30             	add    $0x30,%esp
5926f0:	c3                   	ret
5926f1:	68 32 05 00 00       	push   $0x532
5926f6:	68 6c 6f 66 00       	push   $0x666f6c
5926fb:	68 25 01 00 00       	push   $0x125
592700:	68 94 00 00 00       	push   $0x94
592705:	6a 0a                	push   $0xa
592707:	57                   	push   %edi
592708:	e8 03 ca ff ff       	call   0x58f110
59270d:	83 c4 18             	add    $0x18,%esp
592710:	83 c8 ff             	or     $0xffffffff,%eax
592713:	5f                   	pop    %edi
592714:	5e                   	pop    %esi
592715:	5d                   	pop    %ebp
592716:	5b                   	pop    %ebx
592717:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
59271b:	33 cc                	xor    %esp,%ecx
59271d:	e8 04 f3 03 00       	call   0x5d1a26
592722:	83 c4 30             	add    $0x30,%esp
592725:	c3                   	ret
592726:	68 44 05 00 00       	push   $0x544
59272b:	68 6c 6f 66 00       	push   $0x666f6c
592730:	68 91 00 00 00       	push   $0x91
592735:	eb c9                	jmp    0x592700
592737:	83 4f 28 02          	orl    $0x2,0x28(%edi)
59273b:	33 c0                	xor    %eax,%eax
59273d:	5f                   	pop    %edi
59273e:	5e                   	pop    %esi
59273f:	5d                   	pop    %ebp
592740:	5b                   	pop    %ebx
592741:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
592745:	33 cc                	xor    %esp,%ecx
592747:	e8 da f2 03 00       	call   0x5d1a26
59274c:	83 c4 30             	add    $0x30,%esp
59274f:	c3                   	ret
592750:	68 19 06 00 00       	push   $0x619
592755:	68 6c 6f 66 00       	push   $0x666f6c
59275a:	68 53 01 00 00       	push   $0x153
59275f:	68 94 00 00 00       	push   $0x94
592764:	6a 28                	push   $0x28
592766:	eb 9f                	jmp    0x592707
592768:	8b 47 7c             	mov    0x7c(%edi),%eax
59276b:	68 08 06 00 00       	push   $0x608
592770:	c7 47 14 01 00 00 00 	movl   $0x1,0x14(%edi)
592777:	68 6c 6f 66 00       	push   $0x666f6c
59277c:	89 b0 e4 00 00 00    	mov    %esi,0xe4(%eax)
592782:	8d 86 e8 03 00 00    	lea    0x3e8(%esi),%eax
592788:	50                   	push   %eax
592789:	68 94 00 00 00       	push   $0x94
59278e:	6a ff                	push   $0xffffffff
592790:	57                   	push   %edi
592791:	e8 7a c9 ff ff       	call   0x58f110
592796:	56                   	push   %esi
592797:	68 c8 7a 60 00       	push   $0x607ac8
59279c:	8d 44 24 4c          	lea    0x4c(%esp),%eax
5927a0:	6a 10                	push   $0x10
5927a2:	50                   	push   %eax
5927a3:	e8 88 fe f4 ff       	call   0x4e2630
5927a8:	8d 44 24 54          	lea    0x54(%esp),%eax
5927ac:	50                   	push   %eax
5927ad:	68 88 6f 66 00       	push   $0x666f88
5927b2:	6a 02                	push   $0x2
5927b4:	e8 b7 5e f4 ff       	call   0x4d8670
5927b9:	83 4f 28 02          	orl    $0x2,0x28(%edi)
5927bd:	c7 43 20 01 00 00 00 	movl   $0x1,0x20(%ebx)
5927c4:	ff b7 74 04 00 00    	push   0x474(%edi)
5927ca:	ff b7 e0 05 00 00    	push   0x5e0(%edi)