5943be:	c3                   	ret
5943bf:	8b c1                	mov    %ecx,%eax
5943c1:	5e                   	pop    %esi
5943c2:	c3                   	ret
5943c3:	cc                   	int3
5943c4:	cc                   	int3
5943c5:	cc                   	int3
5943c6:	cc                   	int3
5943c7:	cc                   	int3
5943c8:	cc                   	int3
5943c9:	cc                   	int3
5943ca:	cc                   	int3
5943cb:	cc                   	int3
5943cc:	cc                   	int3
5943cd:	cc                   	int3
5943ce:	cc                   	int3
5943cf:	cc                   	int3
5943d0:	56                   	push   %esi
5943d1:	8b 74 24 0c          	mov    0xc(%esp),%esi
5943d5:	8b 46 28             	mov    0x28(%esi),%eax
5943d8:	a8 04                	test   $0x4,%al
5943da:	74 06                	je     0x5943e2
5943dc:	f6 46 30 04          	testb  $0x4,0x30(%esi)
5943e0:	74 49                	je     0x59442b
5943e2:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
5943e7:	74 1c                	je     0x594405
5943e9:	56                   	push   %esi
5943ea:	e8 e1 02 00 00       	call   0x5946d0
5943ef:	83 c4 04             	add    $0x4,%esp
5943f2:	85 c0                	test   %eax,%eax
5943f4:	74 35                	je     0x59442b
5943f6:	83 f8 05             	cmp    $0x5,%eax
5943f9:	75 36                	jne    0x594431
5943fb:	f6 46 34 02          	testb  $0x2,0x34(%esi)
5943ff:	75 30                	jne    0x594431
594401:	33 c0                	xor    %eax,%eax
594403:	5e                   	pop    %esi
594404:	c3                   	ret
594405:	a8 08                	test   $0x8,%al
594407:	74 13                	je     0x59441c
594409:	8b 4e 34             	mov    0x34(%esi),%ecx
59440c:	f6 c1 20             	test   $0x20,%cl
59440f:	75 0b                	jne    0x59441c
594411:	84 c9                	test   %cl,%cl
594413:	79 16                	jns    0x59442b
594415:	b9 02 00 00 00       	mov    $0x2,%ecx
59441a:	eb 05                	jmp    0x594421
59441c:	b9 01 00 00 00       	mov    $0x1,%ecx
594421:	a8 02                	test   $0x2,%al
594423:	74 0a                	je     0x59442f
594425:	f6 46 2c 20          	testb  $0x20,0x2c(%esi)
594429:	75 04                	jne    0x59442f
59442b:	33 c0                	xor    %eax,%eax
59442d:	5e                   	pop    %esi
59442e:	c3                   	ret
59442f:	8b c1                	mov    %ecx,%eax
594431:	5e                   	pop    %esi
594432:	c3                   	ret
594433:	cc                   	int3
594434:	cc                   	int3
594435:	cc                   	int3
594436:	cc                   	int3
594437:	cc                   	int3
594438:	cc                   	int3
594439:	cc                   	int3
59443a:	cc                   	int3
59443b:	cc                   	int3
59443c:	cc                   	int3
59443d:	cc                   	int3
59443e:	cc                   	int3
59443f:	cc                   	int3
594440:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
594445:	74 17                	je     0x59445e
594447:	ff 74 24 08          	push   0x8(%esp)
59444b:	e8 80 02 00 00       	call   0x5946d0
594450:	33 c9                	xor    %ecx,%ecx
594452:	83 c4 04             	add    $0x4,%esp
594455:	83 f8 02             	cmp    $0x2,%eax
594458:	0f 45 c8             	cmovne %eax,%ecx
59445b:	8b c1                	mov    %ecx,%eax
59445d:	c3                   	ret
59445e:	8b 44 24 08          	mov    0x8(%esp),%eax
594462:	f6 40 28 02          	testb  $0x2,0x28(%eax)
594466:	74 09                	je     0x594471
594468:	f6 40 2c 02          	testb  $0x2,0x2c(%eax)
59446c:	75 03                	jne    0x594471
59446e:	33 c0                	xor    %eax,%eax
594470:	c3                   	ret
594471:	b8 01 00 00 00       	mov    $0x1,%eax
594476:	c3                   	ret
594477:	cc                   	int3
594478:	cc                   	int3
594479:	cc                   	int3
59447a:	cc                   	int3
59447b:	cc                   	int3
59447c:	cc                   	int3
59447d:	cc                   	int3
59447e:	cc                   	int3
59447f:	cc                   	int3
594480:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
594485:	74 0d                	je     0x594494
594487:	ff 74 24 08          	push   0x8(%esp)
59448b:	e8 40 02 00 00       	call   0x5946d0
594490:	83 c4 04             	add    $0x4,%esp
594493:	c3                   	ret
594494:	56                   	push   %esi
594495:	8b 74 24 0c          	mov    0xc(%esp),%esi
594499:	8b 46 28             	mov    0x28(%esi),%eax
59449c:	a8 02                	test   $0x2,%al
59449e:	74 10                	je     0x5944b0
5944a0:	8b 4e 2c             	mov    0x2c(%esi),%ecx
5944a3:	f7 c1 3f ff ff ff    	test   $0xffffff3f,%ecx
5944a9:	75 3b                	jne    0x5944e6
5944ab:	f6 c1 c0             	test   $0xc0,%cl
5944ae:	74 36                	je     0x5944e6
5944b0:	a8 04                	test   $0x4,%al
5944b2:	74 32                	je     0x5944e6
5944b4:	83 7e 30 40          	cmpl   $0x40,0x30(%esi)
5944b8:	75 2c                	jne    0x5944e6
5944ba:	6a ff                	push   $0xffffffff
5944bc:	6a 7e                	push   $0x7e
5944be:	56                   	push   %esi
5944bf:	e8 6c 98 ff ff       	call   0x58dd30
5944c4:	83 c4 0c             	add    $0xc,%esp
5944c7:	85 c0                	test   %eax,%eax
5944c9:	78 14                	js     0x5944df
5944cb:	50                   	push   %eax
5944cc:	56                   	push   %esi
5944cd:	e8 3e 98 ff ff       	call   0x58dd10
5944d2:	50                   	push   %eax
5944d3:	e8 58 22 00 00       	call   0x596730
5944d8:	83 c4 0c             	add    $0xc,%esp
5944db:	85 c0                	test   %eax,%eax
5944dd:	74 07                	je     0x5944e6
5944df:	b8 01 00 00 00       	mov    $0x1,%eax
5944e4:	5e                   	pop    %esi
5944e5:	c3                   	ret
5944e6:	33 c0                	xor    %eax,%eax
5944e8:	5e                   	pop    %esi
5944e9:	c3                   	ret
5944ea:	cc                   	int3
5944eb:	cc                   	int3
5944ec:	cc                   	int3
5944ed:	cc                   	int3
5944ee:	cc                   	int3
5944ef:	cc                   	int3
5944f0:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
5944f5:	74 0d                	je     0x594504
5944f7:	ff 74 24 08          	push   0x8(%esp)
5944fb:	e8 d0 01 00 00       	call   0x5946d0
594500:	83 c4 04             	add    $0x4,%esp
594503:	c3                   	ret
594504:	b8 01 00 00 00       	mov    $0x1,%eax
594509:	c3                   	ret
59450a:	cc                   	int3
59450b:	cc                   	int3
59450c:	cc                   	int3
59450d:	cc                   	int3
59450e:	cc                   	int3
59450f:	cc                   	int3
594510:	57                   	push   %edi
594511:	8b 7c 24 0c          	mov    0xc(%esp),%edi
594515:	85 ff                	test   %edi,%edi
594517:	75 04                	jne    0x59451d
594519:	33 c0                	xor    %eax,%eax
59451b:	5f                   	pop    %edi
59451c:	c3                   	ret
59451d:	8b 07                	mov    (%edi),%eax
59451f:	53                   	push   %ebx
594520:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
594524:	85 c0                	test   %eax,%eax
594526:	74 1d                	je     0x594545
594528:	8b 4b 38             	mov    0x38(%ebx),%ecx
59452b:	85 c9                	test   %ecx,%ecx
59452d:	74 16                	je     0x594545
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)