59452f:	51                   	push   %ecx
594530:	50                   	push   %eax
594531:	e8 ca 8b fe ff       	call   0x57d100
594536:	83 c4 08             	add    $0x8,%esp
594539:	85 c0                	test   %eax,%eax
59453b:	74 08                	je     0x594545
59453d:	5b                   	pop    %ebx
59453e:	b8 1e 00 00 00       	mov    $0x1e,%eax
594543:	5f                   	pop    %edi
594544:	c3                   	ret
594545:	8b 47 08             	mov    0x8(%edi),%eax
594548:	85 c0                	test   %eax,%eax
59454a:	74 1f                	je     0x59456b
59454c:	50                   	push   %eax
59454d:	53                   	push   %ebx
59454e:	e8 bd ca ef ff       	call   0x491010
594553:	83 c4 04             	add    $0x4,%esp
594556:	50                   	push   %eax
594557:	e8 e4 f8 f1 ff       	call   0x4b3e40
59455c:	83 c4 08             	add    $0x8,%esp
59455f:	85 c0                	test   %eax,%eax
594561:	74 08                	je     0x59456b
594563:	5b                   	pop    %ebx
594564:	b8 1f 00 00 00       	mov    $0x1f,%eax
594569:	5f                   	pop    %edi
59456a:	c3                   	ret
59456b:	8b 7f 04             	mov    0x4(%edi),%edi
59456e:	56                   	push   %esi
59456f:	85 ff                	test   %edi,%edi
594571:	74 2c                	je     0x59459f
594573:	57                   	push   %edi
594574:	33 f6                	xor    %esi,%esi
594576:	e8 95 a0 f1 ff       	call   0x4ae610
59457b:	83 c4 04             	add    $0x4,%esp
59457e:	85 c0                	test   %eax,%eax
594580:	7e 1d                	jle    0x59459f
594582:	56                   	push   %esi
594583:	57                   	push   %edi
594584:	e8 a7 a1 f1 ff       	call   0x4ae730
594589:	83 c4 08             	add    $0x8,%esp
59458c:	83 38 04             	cmpl   $0x4,(%eax)
59458f:	74 14                	je     0x5945a5
594591:	57                   	push   %edi
594592:	46                   	inc    %esi
594593:	e8 78 a0 f1 ff       	call   0x4ae610
594598:	83 c4 04             	add    $0x4,%esp
59459b:	3b f0                	cmp    %eax,%esi
59459d:	7c e3                	jl     0x594582
59459f:	5e                   	pop    %esi
5945a0:	5b                   	pop    %ebx
5945a1:	33 c0                	xor    %eax,%eax
5945a3:	5f                   	pop    %edi
5945a4:	c3                   	ret
5945a5:	8b 70 04             	mov    0x4(%eax),%esi
5945a8:	85 f6                	test   %esi,%esi
5945aa:	74 f3                	je     0x59459f
5945ac:	53                   	push   %ebx
5945ad:	e8 8e ca ef ff       	call   0x491040
5945b2:	50                   	push   %eax
5945b3:	56                   	push   %esi
5945b4:	e8 67 91 ff ff       	call   0x58d720
5945b9:	83 c4 0c             	add    $0xc,%esp
5945bc:	85 c0                	test   %eax,%eax
5945be:	74 df                	je     0x59459f
5945c0:	5e                   	pop    %esi
5945c1:	5b                   	pop    %ebx
5945c2:	b8 1f 00 00 00       	mov    $0x1f,%eax
5945c7:	5f                   	pop    %edi
5945c8:	c3                   	ret
5945c9:	cc                   	int3
5945ca:	cc                   	int3
5945cb:	cc                   	int3
5945cc:	cc                   	int3
5945cd:	cc                   	int3
5945ce:	cc                   	int3
5945cf:	cc                   	int3
5945d0:	b8 1c 00 00 00       	mov    $0x1c,%eax
5945d5:	e8 16 cf 04 00       	call   0x5e14f0
5945da:	56                   	push   %esi
5945db:	8b 74 24 24          	mov    0x24(%esp),%esi
5945df:	f7 46 28 00 01 00 00 	testl  $0x100,0x28(%esi)
5945e6:	75 2f                	jne    0x594617
5945e8:	68 84 00 00 00       	push   $0x84
5945ed:	68 a0 82 6c 00       	push   $0x6c82a0
5945f2:	6a 03                	push   $0x3
5945f4:	6a 09                	push   $0x9
5945f6:	e8 c5 bf f0 ff       	call   0x4a05c0
5945fb:	56                   	push   %esi
5945fc:	e8 1f 02 00 00       	call   0x594820
594601:	68 86 00 00 00       	push   $0x86
594606:	68 a0 82 6c 00       	push   $0x6c82a0
59460b:	6a 03                	push   $0x3
59460d:	6a 0a                	push   $0xa
59460f:	e8 ac bf f0 ff       	call   0x4a05c0
594614:	83 c4 24             	add    $0x24,%esp
594617:	8b 4c 24 28          	mov    0x28(%esp),%ecx
59461b:	83 f9 ff             	cmp    $0xffffffff,%ecx
59461e:	75 08                	jne    0x594628
594620:	8d 41 02             	lea    0x2(%ecx),%eax
594623:	5e                   	pop    %esi
594624:	83 c4 1c             	add    $0x1c,%esp
594627:	c3                   	ret
594628:	8d 41 ff             	lea    -0x1(%ecx),%eax
59462b:	83 f8 08             	cmp    $0x8,%eax
59462e:	77 03                	ja     0x594633
594630:	49                   	dec    %ecx
594631:	eb 27                	jmp    0x59465a
594633:	a1 ec 03 73 00       	mov    0x7303ec,%eax
594638:	89 4c 24 04          	mov    %ecx,0x4(%esp)
59463c:	85 c0                	test   %eax,%eax
59463e:	0f 84 81 00 00 00    	je     0x5946c5
594644:	8d 4c 24 04          	lea    0x4(%esp),%ecx
594648:	51                   	push   %ecx
594649:	50                   	push   %eax
59464a:	e8 01 9e f1 ff       	call   0x4ae450
59464f:	83 c4 08             	add    $0x8,%esp
594652:	83 f8 ff             	cmp    $0xffffffff,%eax
594655:	74 6e                	je     0x5946c5
594657:	8d 48 09             	lea    0x9(%eax),%ecx
59465a:	83 f9 ff             	cmp    $0xffffffff,%ecx
59465d:	74 66                	je     0x5946c5
59465f:	85 c9                	test   %ecx,%ecx
594661:	79 15                	jns    0x594678
594663:	ff 74 24 2c          	push   0x2c(%esp)
594667:	33 c0                	xor    %eax,%eax
594669:	56                   	push   %esi
59466a:	50                   	push   %eax
59466b:	8b 40 0c             	mov    0xc(%eax),%eax
59466e:	ff d0                	call   *%eax
594670:	83 c4 0c             	add    $0xc,%esp
594673:	5e                   	pop    %esi
594674:	83 c4 1c             	add    $0x1c,%esp
594677:	c3                   	ret
594678:	83 f9 09             	cmp    $0x9,%ecx
59467b:	7d 23                	jge    0x5946a0
59467d:	ff 74 24 2c          	push   0x2c(%esp)
594681:	8d 04 cd 00 00 00 00 	lea    0x0(,%ecx,8),%eax
594688:	2b c1                	sub    %ecx,%eax
59468a:	56                   	push   %esi
59468b:	8d 04 85 d8 43 72 00 	lea    0x7243d8(,%eax,4),%eax
594692:	50                   	push   %eax
594693:	8b 40 0c             	mov    0xc(%eax),%eax
594696:	ff d0                	call   *%eax
594698:	83 c4 0c             	add    $0xc,%esp
59469b:	5e                   	pop    %esi
59469c:	83 c4 1c             	add    $0x1c,%esp
59469f:	c3                   	ret
5946a0:	8d 41 f7             	lea    -0x9(%ecx),%eax
5946a3:	50                   	push   %eax
5946a4:	ff 35 ec 03 73 00    	push   0x7303ec
5946aa:	e8 81 a0 f1 ff       	call   0x4ae730
5946af:	83 c4 08             	add    $0x8,%esp
5946b2:	ff 74 24 2c          	push   0x2c(%esp)
5946b6:	56                   	push   %esi
5946b7:	50                   	push   %eax
5946b8:	8b 40 0c             	mov    0xc(%eax),%eax
5946bb:	ff d0                	call   *%eax
5946bd:	83 c4 0c             	add    $0xc,%esp
5946c0:	5e                   	pop    %esi
5946c1:	83 c4 1c             	add    $0x1c,%esp
5946c4:	c3                   	ret
5946c5:	83 c8 ff             	or     $0xffffffff,%eax
5946c8:	5e                   	pop    %esi
5946c9:	83 c4 1c             	add    $0x1c,%esp
5946cc:	c3                   	ret
5946cd:	cc                   	int3
5946ce:	cc                   	int3
5946cf:	cc                   	int3
5946d0:	8b 54 24 04          	mov    0x4(%esp),%edx
5946d4:	56                   	push   %esi
5946d5:	8b 4a 28             	mov    0x28(%edx),%ecx
5946d8:	8b f1                	mov    %ecx,%esi
5946da:	83 e6 02             	and    $0x2,%esi
5946dd:	74 06                	je     0x5946e5
5946df:	f6 42 2c 04          	testb  $0x4,0x2c(%edx)
5946e3:	74 42                	je     0x594727
5946e5:	f6 c1 01             	test   $0x1,%cl
5946e8:	74 0b                	je     0x5946f5
5946ea:	0f b6 c1             	movzbl %cl,%eax
5946ed:	c1 e8 04             	shr    $0x4,%eax
5946f0:	83 e0 01             	and    $0x1,%eax
5946f3:	5e                   	pop    %esi
5946f4:	c3                   	ret
5946f5:	8b c1                	mov    %ecx,%eax
5946f7:	25 40 20 00 00       	and    $0x2040,%eax
5946fc:	3d 40 20 00 00       	cmp    $0x2040,%eax
594701:	75 07                	jne    0x59470a
594703:	b8 03 00 00 00       	mov    $0x3,%eax
594708:	5e                   	pop    %esi
594709:	c3                   	ret
59470a:	85 f6                	test   %esi,%esi
59470c:	74 07                	je     0x594715
59470e:	b8 04 00 00 00       	mov    $0x4,%eax
594713:	5e                   	pop    %esi
594714:	c3                   	ret
594715:	f6 c1 08             	test   $0x8,%cl
594718:	74 0d                	je     0x594727
59471a:	f6 42 34 07          	testb  $0x7,0x34(%edx)
59471e:	74 07                	je     0x594727
594720:	b8 05 00 00 00       	mov    $0x5,%eax
594725:	5e                   	pop    %esi
594726:	c3                   	ret
594727:	33 c0                	xor    %eax,%eax
594729:	5e                   	pop    %esi
59472a:	c3                   	ret
59472b:	cc                   	int3
59472c:	cc                   	int3
59472d:	cc                   	int3
59472e:	cc                   	int3
59472f:	cc                   	int3
594730:	53                   	push   %ebx
594731:	55                   	push   %ebp
594732:	8b 6c 24 0c          	mov    0xc(%esp),%ebp
594736:	6a 00                	push   $0x0
594738:	6a 00                	push   $0x0
59473a:	6a 67                	push   $0x67
59473c:	55                   	push   %ebp
59473d:	e8 2e 96 ff ff       	call   0x58dd70
594742:	50                   	push   %eax
594743:	89 45 44             	mov    %eax,0x44(%ebp)
594746:	33 db                	xor    %ebx,%ebx
594748:	e8 c3 9e f1 ff       	call   0x4ae610
59474d:	83 c4 14             	add    $0x14,%esp
594750:	85 c0                	test   %eax,%eax
594752:	0f 8e bd 00 00 00    	jle    0x594815
594758:	56                   	push   %esi
594759:	57                   	push   %edi
59475a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
594760:	53                   	push   %ebx
594761:	ff 75 44             	push   0x44(%ebp)
594764:	e8 c7 9f f1 ff       	call   0x4ae730
594769:	8b f0                	mov    %eax,%esi
59476b:	83 c4 08             	add    $0x8,%esp
59476e:	8b 4e 04             	mov    0x4(%esi),%ecx
594771:	85 c9                	test   %ecx,%ecx
594773:	74 29                	je     0x59479e
594775:	83 39 00             	cmpl   $0x0,(%ecx)
594778:	7e 09                	jle    0x594783
59477a:	8b 41 08             	mov    0x8(%ecx),%eax
59477d:	0f b6 00             	movzbl (%eax),%eax
594780:	89 46 0c             	mov    %eax,0xc(%esi)
594783:	83 39 01             	cmpl   $0x1,(%ecx)
594786:	7e 0d                	jle    0x594795
594788:	8b 41 08             	mov    0x8(%ecx),%eax
59478b:	0f b6 40 01          	movzbl 0x1(%eax),%eax
59478f:	c1 e0 08             	shl    $0x8,%eax
594792:	09 46 0c             	or     %eax,0xc(%esi)
594795:	81 66 0c 7f 80 00 00 	andl   $0x807f,0xc(%esi)
59479c:	eb 07                	jmp    0x5947a5
59479e:	c7 46 0c 7f 80 00 00 	movl   $0x807f,0xc(%esi)
5947a5:	8b 06                	mov    (%esi),%eax
5947a7:	85 c0                	test   %eax,%eax
5947a9:	74 54                	je     0x5947ff
5947ab:	83 38 01             	cmpl   $0x1,(%eax)
5947ae:	75 4f                	jne    0x5947ff
5947b0:	ff 76 08             	push   0x8(%esi)
5947b3:	33 ff                	xor    %edi,%edi
5947b5:	e8 56 9e f1 ff       	call   0x4ae610
5947ba:	83 c4 04             	add    $0x4,%esp
5947bd:	85 c0                	test   %eax,%eax
5947bf:	7e 2a                	jle    0x5947eb
5947c1:	57                   	push   %edi
5947c2:	ff 76 08             	push   0x8(%esi)
5947c5:	e8 66 9f f1 ff       	call   0x4ae730
5947ca:	83 c4 08             	add    $0x8,%esp
5947cd:	83 38 04             	cmpl   $0x4,(%eax)
5947d0:	74 12                	je     0x5947e4
5947d2:	ff 76 08             	push   0x8(%esi)
5947d5:	47                   	inc    %edi
5947d6:	e8 35 9e f1 ff       	call   0x4ae610
5947db:	83 c4 04             	add    $0x4,%esp
5947de:	3b f8                	cmp    %eax,%edi
5947e0:	7c df                	jl     0x5947c1
5947e2:	eb 07                	jmp    0x5947eb
5947e4:	8b 40 04             	mov    0x4(%eax),%eax
5947e7:	85 c0                	test   %eax,%eax
5947e9:	75 09                	jne    0x5947f4
5947eb:	55                   	push   %ebp
5947ec:	e8 4f c8 ef ff       	call   0x491040
5947f1:	83 c4 04             	add    $0x4,%esp
5947f4:	50                   	push   %eax
5947f5:	ff 36                	push   (%esi)
5947f7:	e8 f4 56 00 00       	call   0x599ef0
5947fc:	83 c4 08             	add    $0x8,%esp
5947ff:	ff 75 44             	push   0x44(%ebp)
594802:	43                   	inc    %ebx
594803:	e8 08 9e f1 ff       	call   0x4ae610
594808:	83 c4 04             	add    $0x4,%esp
59480b:	3b d8                	cmp    %eax,%ebx
59480d:	0f 8c 4d ff ff ff    	jl     0x594760
594813:	5f                   	pop    %edi
594814:	5e                   	pop    %esi
594815:	5d                   	pop    %ebp
594816:	5b                   	pop    %ebx
594817:	c3                   	ret
594818:	cc                   	int3
594819:	cc                   	int3
59481a:	cc                   	int3
59481b:	cc                   	int3
59481c:	cc                   	int3
59481d:	cc                   	int3
59481e:	cc                   	int3
59481f:	cc                   	int3
594820:	b8 04 00 00 00       	mov    $0x4,%eax
594825:	e8 c6 cc 04 00       	call   0x5e14f0
59482a:	56                   	push   %esi
59482b:	8b 74 24 0c          	mov    0xc(%esp),%esi
59482f:	f7 46 28 00 01 00 00 	testl  $0x100,0x28(%esi)
594836:	0f 85 bc 03 00 00    	jne    0x594bf8
59483c:	8d 46 50             	lea    0x50(%esi),%eax
59483f:	6a 00                	push   $0x0
594841:	50                   	push   %eax
594842:	e8 99 cf f1 ff       	call   0x4b17e0
594847:	50                   	push   %eax
594848:	56                   	push   %esi
594849:	e8 b2 1d 00 00       	call   0x596600
59484e:	8b 06                	mov    (%esi),%eax
594850:	ff 30                	push   (%eax)
594852:	e8 29 f6 f1 ff       	call   0x4b3e80
594857:	83 c4 14             	add    $0x14,%esp
59485a:	85 c0                	test   %eax,%eax
59485c:	75 04                	jne    0x594862
59485e:	83 4e 28 40          	orl    $0x40,0x28(%esi)
594862:	57                   	push   %edi
594863:	6a 00                	push   $0x0
594865:	6a 00                	push   $0x0
594867:	6a 57                	push   $0x57
594869:	56                   	push   %esi
59486a:	e8 01 95 ff ff       	call   0x58dd70
59486f:	8b f8                	mov    %eax,%edi
594871:	83 c4 10             	add    $0x10,%esp
594874:	85 ff                	test   %edi,%edi
594876:	74 50                	je     0x5948c8
594878:	83 3f 00             	cmpl   $0x0,(%edi)
59487b:	74 04                	je     0x594881
59487d:	83 4e 28 10          	orl    $0x10,0x28(%esi)
594881:	8b 47 04             	mov    0x4(%edi),%eax
594884:	85 c0                	test   %eax,%eax
594886:	74 2c                	je     0x5948b4
594888:	81 78 04 02 01 00 00 	cmpl   $0x102,0x4(%eax)
59488f:	74 13                	je     0x5948a4
594891:	83 3f 00             	cmpl   $0x0,(%edi)
594894:	74 0e                	je     0x5948a4
594896:	50                   	push   %eax
594897:	e8 e4 f5 f1 ff       	call   0x4b3e80
59489c:	83 c4 04             	add    $0x4,%esp
59489f:	89 46 20             	mov    %eax,0x20(%esi)
5948a2:	eb 17                	jmp    0x5948bb
5948a4:	81 4e 28 80 00 00 00 	orl    $0x80,0x28(%esi)
5948ab:	c7 46 20 00 00 00 00 	movl   $0x0,0x20(%esi)