55849c:	8b 45 14             	mov    0x14(%ebp),%eax
55849f:	85 c0                	test   %eax,%eax
5584a1:	74 0a                	je     0x5584ad
5584a3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5584a6:	89 08                	mov    %ecx,(%eax)
5584a8:	8b 45 18             	mov    0x18(%ebp),%eax
5584ab:	89 38                	mov    %edi,(%eax)
5584ad:	5f                   	pop    %edi
5584ae:	5e                   	pop    %esi
5584af:	b8 01 00 00 00       	mov    $0x1,%eax
5584b4:	5b                   	pop    %ebx
5584b5:	8b e5                	mov    %ebp,%esp
5584b7:	5d                   	pop    %ebp
5584b8:	c3                   	ret
5584b9:	cc                   	int3
5584ba:	cc                   	int3
5584bb:	cc                   	int3
5584bc:	cc                   	int3
5584bd:	cc                   	int3
5584be:	cc                   	int3
5584bf:	cc                   	int3
5584c0:	55                   	push   %ebp
5584c1:	8b ec                	mov    %esp,%ebp
5584c3:	56                   	push   %esi
5584c4:	8b 75 0c             	mov    0xc(%ebp),%esi
5584c7:	57                   	push   %edi
5584c8:	6a 07                	push   $0x7
5584ca:	68 b0 92 6b 00       	push   $0x6b92b0
5584cf:	8b 3e                	mov    (%esi),%edi
5584d1:	57                   	push   %edi
5584d2:	e8 89 76 f8 ff       	call   0x4dfb60
5584d7:	83 c4 0c             	add    $0xc,%esp
5584da:	85 c0                	test   %eax,%eax
5584dc:	75 31                	jne    0x55850f
5584de:	6a 04                	push   $0x4
5584e0:	83 c7 07             	add    $0x7,%edi
5584e3:	68 7c a2 6b 00       	push   $0x6ba27c
5584e8:	57                   	push   %edi
5584e9:	e8 72 76 f8 ff       	call   0x4dfb60
5584ee:	83 c4 0c             	add    $0xc,%esp
5584f1:	85 c0                	test   %eax,%eax
5584f3:	74 4e                	je     0x558543
5584f5:	6a 0a                	push   $0xa
5584f7:	68 f0 8e 6b 00       	push   $0x6b8ef0
5584fc:	57                   	push   %edi
5584fd:	e8 5e 76 f8 ff       	call   0x4dfb60
558502:	83 c4 0c             	add    $0xc,%esp
558505:	f7 d8                	neg    %eax
558507:	1b c0                	sbb    %eax,%eax
558509:	f7 d8                	neg    %eax
55850b:	5f                   	pop    %edi
55850c:	5e                   	pop    %esi
55850d:	5d                   	pop    %ebp
55850e:	c3                   	ret
55850f:	f7 46 24 00 10 00 00 	testl  $0x1000,0x24(%esi)
558516:	74 2b                	je     0x558543
558518:	8b 4d 08             	mov    0x8(%ebp),%ecx
55851b:	8b 41 20             	mov    0x20(%ecx),%eax
55851e:	25 00 00 00 10       	and    $0x10000000,%eax
558523:	83 c8 00             	or     $0x0,%eax
558526:	74 1b                	je     0x558543
558528:	83 b9 78 01 00 00 00 	cmpl   $0x0,0x178(%ecx)
55852f:	75 12                	jne    0x558543
558531:	83 b9 bc 00 00 00 00 	cmpl   $0x0,0xbc(%ecx)
558538:	75 09                	jne    0x558543
55853a:	5f                   	pop    %edi
55853b:	b8 01 00 00 00       	mov    $0x1,%eax
558540:	5e                   	pop    %esi
558541:	5d                   	pop    %ebp
558542:	c3                   	ret
558543:	5f                   	pop    %edi
558544:	33 c0                	xor    %eax,%eax
558546:	5e                   	pop    %esi
558547:	5d                   	pop    %ebp
558548:	c3                   	ret
558549:	cc                   	int3
55854a:	cc                   	int3
55854b:	cc                   	int3
55854c:	cc                   	int3
55854d:	cc                   	int3
55854e:	cc                   	int3
55854f:	cc                   	int3
558550:	55                   	push   %ebp
558551:	8b ec                	mov    %esp,%ebp
558553:	8b 45 08             	mov    0x8(%ebp),%eax
558556:	53                   	push   %ebx
558557:	57                   	push   %edi
558558:	6a 00                	push   $0x0
55855a:	8b 18                	mov    (%eax),%ebx
55855c:	6a 50                	push   $0x50
55855e:	53                   	push   %ebx
55855f:	e8 7c 8e fc ff       	call   0x5213e0
558564:	8b f8                	mov    %eax,%edi
558566:	83 c4 0c             	add    $0xc,%esp
558569:	85 ff                	test   %edi,%edi
55856b:	75 04                	jne    0x558571
55856d:	5f                   	pop    %edi
55856e:	5b                   	pop    %ebx
55856f:	5d                   	pop    %ebp
558570:	c3                   	ret
558571:	56                   	push   %esi
558572:	6a 48                	push   $0x48
558574:	8d 47 08             	lea    0x8(%edi),%eax
558577:	c7 47 04 01 00 00 00 	movl   $0x1,0x4(%edi)
55857e:	6a 00                	push   $0x0
558580:	50                   	push   %eax
558581:	c7 07 01 00 00 00    	movl   $0x1,(%edi)
558587:	e8 74 b4 08 00       	call   0x5e3a00
55858c:	8b 75 0c             	mov    0xc(%ebp),%esi
55858f:	c7 47 34 ff ff ff ff 	movl   $0xffffffff,0x34(%edi)
558596:	8b 07                	mov    (%edi),%eax
558598:	8d 04 c0             	lea    (%eax,%eax,8),%eax
55859b:	c7 44 c7 c8 00 00 00 	movl   $0x0,-0x38(%edi,%eax,8)
5585a2:	00
5585a3:	c7 44 c7 c4 00 00 00 	movl   $0x0,-0x3c(%edi,%eax,8)
5585aa:	00
5585ab:	ff 76 0c             	push   0xc(%esi)
5585ae:	53                   	push   %ebx
5585af:	e8 fc 90 fc ff       	call   0x5216b0
5585b4:	8b 0f                	mov    (%edi),%ecx
5585b6:	83 c4 14             	add    $0x14,%esp
5585b9:	8d 0c c9             	lea    (%ecx,%ecx,8),%ecx
5585bc:	89 44 cf c8          	mov    %eax,-0x38(%edi,%ecx,8)
5585c0:	8b 46 04             	mov    0x4(%esi),%eax
5585c3:	8b 40 14             	mov    0x14(%eax),%eax
5585c6:	85 c0                	test   %eax,%eax
5585c8:	74 35                	je     0x5585ff
5585ca:	8b 73 10             	mov    0x10(%ebx),%esi
5585cd:	33 d2                	xor    %edx,%edx
5585cf:	39 46 0c             	cmp    %eax,0xc(%esi)
5585d2:	8d 4e 0c             	lea    0xc(%esi),%ecx
5585d5:	74 11                	je     0x5585e8
5585d7:	8d 49 10             	lea    0x10(%ecx),%ecx
5585da:	42                   	inc    %edx
5585db:	39 01                	cmp    %eax,(%ecx)
5585dd:	75 f8                	jne    0x5585d7
5585df:	85 d2                	test   %edx,%edx
5585e1:	74 05                	je     0x5585e8
5585e3:	83 fa 02             	cmp    $0x2,%edx
5585e6:	7c 17                	jl     0x5585ff
5585e8:	03 d2                	add    %edx,%edx
5585ea:	ff 34 d6             	push   (%esi,%edx,8)
5585ed:	53                   	push   %ebx
5585ee:	e8 bd 90 fc ff       	call   0x5216b0
5585f3:	8b 0f                	mov    (%edi),%ecx
5585f5:	83 c4 08             	add    $0x8,%esp
5585f8:	8d 0c c9             	lea    (%ecx,%ecx,8),%ecx
5585fb:	89 44 cf c4          	mov    %eax,-0x3c(%edi,%ecx,8)
5585ff:	5e                   	pop    %esi
558600:	8b c7                	mov    %edi,%eax
558602:	5f                   	pop    %edi
558603:	5b                   	pop    %ebx
558604:	5d                   	pop    %ebp
558605:	c3                   	ret
558606:	cc                   	int3
558607:	cc                   	int3
558608:	cc                   	int3
558609:	cc                   	int3
55860a:	cc                   	int3
55860b:	cc                   	int3
55860c:	cc                   	int3
55860d:	cc                   	int3
55860e:	cc                   	int3
55860f:	cc                   	int3
558610:	55                   	push   %ebp
558611:	8b ec                	mov    %esp,%ebp
558613:	8b 55 08             	mov    0x8(%ebp),%edx
558616:	56                   	push   %esi
558617:	8b 75 0c             	mov    0xc(%ebp),%esi
55861a:	8b 42 14             	mov    0x14(%edx),%eax
55861d:	3b 46 2c             	cmp    0x2c(%esi),%eax
558620:	74 05                	je     0x558627
558622:	33 c0                	xor    %eax,%eax
558624:	5e                   	pop    %esi
558625:	5d                   	pop    %ebp
558626:	c3                   	ret
558627:	0f b7 4a 0c          	movzwl 0xc(%edx),%ecx
55862b:	f6 c1 82             	test   $0x82,%cl
55862e:	74 f2                	je     0x558622
558630:	f6 46 24 08          	testb  $0x8,0x24(%esi)
558634:	74 0c                	je     0x558642
558636:	8b 02                	mov    (%edx),%eax
558638:	f6 40 04 01          	testb  $0x1,0x4(%eax)
55863c:	75 04                	jne    0x558642
55863e:	84 c9                	test   %cl,%cl
558640:	78 e0                	js     0x558622
558642:	8b 4a 20             	mov    0x20(%edx),%ecx
558645:	8b 42 24             	mov    0x24(%edx),%eax
558648:	23 4d 10             	and    0x10(%ebp),%ecx
55864b:	23 45 14             	and    0x14(%ebp),%eax
55864e:	0b c8                	or     %eax,%ecx
558650:	75 d0                	jne    0x558622
558652:	8b 4a 1c             	mov    0x1c(%edx),%ecx
558655:	85 c9                	test   %ecx,%ecx
558657:	78 c9                	js     0x558622
558659:	8b 46 10             	mov    0x10(%esi),%eax
55865c:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
55865f:	8b 40 04             	mov    0x4(%eax),%eax
558662:	8a 44 88 0d          	mov    0xd(%eax,%ecx,4),%al
558666:	88 45 08             	mov    %al,0x8(%ebp)
558669:	ff 75 08             	push   0x8(%ebp)
55866c:	ff 32                	push   (%edx)
55866e:	e8 1d 59 fd ff       	call   0x52df90
558673:	83 c4 08             	add    $0x8,%esp
558676:	f7 d8                	neg    %eax
558678:	1b c0                	sbb    %eax,%eax
55867a:	f7 d8                	neg    %eax
55867c:	5e                   	pop    %esi
55867d:	5d                   	pop    %ebp
55867e:	c3                   	ret
55867f:	cc                   	int3
558680:	55                   	push   %ebp
558681:	8b ec                	mov    %esp,%ebp
558683:	57                   	push   %edi
558684:	8b 7d 08             	mov    0x8(%ebp),%edi
558687:	8b 07                	mov    (%edi),%eax
558689:	f6 40 4c 80          	testb  $0x80,0x4c(%eax)
55868d:	74 05                	je     0x558694
55868f:	33 c0                	xor    %eax,%eax
558691:	5f                   	pop    %edi
558692:	5d                   	pop    %ebp
558693:	c3                   	ret
558694:	56                   	push   %esi
558695:	8b 75 0c             	mov    0xc(%ebp),%esi
558698:	8a 06                	mov    (%esi),%al
55869a:	3c 35                	cmp    $0x35,%al
55869c:	74 04                	je     0x5586a2
55869e:	3c 2d                	cmp    $0x2d,%al
5586a0:	75 06                	jne    0x5586a8
5586a2:	f6 46 04 01          	testb  $0x1,0x4(%esi)
5586a6:	74 06                	je     0x5586ae
5586a8:	5e                   	pop    %esi
5586a9:	33 c0                	xor    %eax,%eax
5586ab:	5f                   	pop    %edi
5586ac:	5d                   	pop    %ebp
5586ad:	c3                   	ret
5586ae:	53                   	push   %ebx
5586af:	ff 76 0c             	push   0xc(%esi)
5586b2:	e8 f9 ae fc ff       	call   0x5235b0
5586b7:	ff 76 10             	push   0x10(%esi)
5586ba:	8a d8                	mov    %al,%bl
5586bc:	e8 ef ae fc ff       	call   0x5235b0
5586c1:	83 c4 08             	add    $0x8,%esp
5586c4:	3a d8                	cmp    %al,%bl
5586c6:	74 10                	je     0x5586d8
5586c8:	80 fb 43             	cmp    $0x43,%bl
5586cb:	7c 04                	jl     0x5586d1
5586cd:	3c 43                	cmp    $0x43,%al
5586cf:	7d 07                	jge    0x5586d8
5586d1:	5b                   	pop    %ebx
5586d2:	5e                   	pop    %esi
5586d3:	33 c0                	xor    %eax,%eax
5586d5:	5f                   	pop    %edi
5586d6:	5d                   	pop    %ebp
5586d7:	c3                   	ret
5586d8:	56                   	push   %esi
5586d9:	57                   	push   %edi
5586da:	e8 61 e0 fc ff       	call   0x526740
5586df:	83 c4 08             	add    $0x8,%esp
5586e2:	85 c0                	test   %eax,%eax
5586e4:	74 1d                	je     0x558703
5586e6:	81 78 0c 30 5e 4f 00 	cmpl   $0x4f5e30,0xc(%eax)
5586ed:	74 14                	je     0x558703
5586ef:	ff 76 10             	push   0x10(%esi)
5586f2:	ff 76 0c             	push   0xc(%esi)
5586f5:	57                   	push   %edi
5586f6:	e8 85 dd fc ff       	call   0x526480
5586fb:	83 c4 0c             	add    $0xc,%esp
5586fe:	5b                   	pop    %ebx
5586ff:	5e                   	pop    %esi
558700:	5f                   	pop    %edi
558701:	5d                   	pop    %ebp
558702:	c3                   	ret
558703:	5b                   	pop    %ebx
558704:	5e                   	pop    %esi
558705:	b8 01 00 00 00       	mov    $0x1,%eax
55870a:	5f                   	pop    %edi
55870b:	5d                   	pop    %ebp
55870c:	c3                   	ret
55870d:	cc                   	int3
55870e:	cc                   	int3
55870f:	cc                   	int3
558710:	55                   	push   %ebp
558711:	8b ec                	mov    %esp,%ebp
558713:	83 ec 10             	sub    $0x10,%esp
558716:	a1 d4 89 72 00       	mov    0x7289d4,%eax
55871b:	33 c5                	xor    %ebp,%eax
55871d:	89 45 fc             	mov    %eax,-0x4(%ebp)
558720:	8b 45 10             	mov    0x10(%ebp),%eax
558723:	53                   	push   %ebx
558724:	8b 5d 14             	mov    0x14(%ebp),%ebx
558727:	56                   	push   %esi
558728:	57                   	push   %edi
558729:	8b 7d 08             	mov    0x8(%ebp),%edi
55872c:	89 45 f0             	mov    %eax,-0x10(%ebp)
55872f:	89 45 f4             	mov    %eax,-0xc(%ebp)
558732:	8d 43 35             	lea    0x35(%ebx),%eax
558735:	6a 00                	push   $0x0
558737:	50                   	push   %eax
558738:	ff 37                	push   (%edi)
55873a:	89 5d f8             	mov    %ebx,-0x8(%ebp)
55873d:	e8 9e 8c fc ff       	call   0x5213e0
558742:	8b f0                	mov    %eax,%esi
558744:	83 c4 0c             	add    $0xc,%esp
558747:	85 f6                	test   %esi,%esi
558749:	0f 84 bf 00 00 00    	je     0x55880e
55874f:	8a 4d 0c             	mov    0xc(%ebp),%cl
558752:	83 c8 ff             	or     $0xffffffff,%eax
558755:	66 89 46 22          	mov    %ax,0x22(%esi)
558759:	33 c0                	xor    %eax,%eax
55875b:	53                   	push   %ebx
55875c:	ff 75 f0             	push   -0x10(%ebp)
55875f:	66 89 46 20          	mov    %ax,0x20(%esi)
558763:	8d 46 34             	lea    0x34(%esi),%eax
558766:	50                   	push   %eax
558767:	88 0e                	mov    %cl,(%esi)
558769:	66 c7 46 01 00 00    	movw   $0x0,0x1(%esi)
55876f:	c7 46 04 00 00 80 00 	movl   $0x800000,0x4(%esi)
558776:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
55877d:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
558784:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
55878b:	c7 46 28 00 00 00 00 	movl   $0x0,0x28(%esi)
558792:	c7 46 2c 00 00 00 00 	movl   $0x0,0x2c(%esi)
558799:	c7 46 1c 00 00 00 00 	movl   $0x0,0x1c(%esi)
5587a0:	89 46 08             	mov    %eax,0x8(%esi)
5587a3:	e8 58 a7 08 00       	call   0x5e2f00
5587a8:	8b 46 08             	mov    0x8(%esi),%eax
5587ab:	83 c4 0c             	add    $0xc,%esp
5587ae:	c6 04 03 00          	movb   $0x0,(%ebx,%eax,1)
5587b2:	8b 4e 08             	mov    0x8(%esi),%ecx
5587b5:	8a 11                	mov    (%ecx),%dl
5587b7:	0f b6 c2             	movzbl %dl,%eax
5587ba:	80 b8 40 1b 6b 00 00 	cmpb   $0x0,0x6b1b40(%eax)
5587c1:	7d 1c                	jge    0x5587df
5587c3:	80 fa 22             	cmp    $0x22,%dl
5587c6:	b8 00 00 00 04       	mov    $0x4000000,%eax
5587cb:	bb 40 00 00 04       	mov    $0x4000040,%ebx
5587d0:	0f 44 c3             	cmove  %ebx,%eax
5587d3:	09 46 04             	or     %eax,0x4(%esi)
5587d6:	51                   	push   %ecx
5587d7:	e8 04 9d fc ff       	call   0x5224e0
5587dc:	83 c4 04             	add    $0x4,%esp
5587df:	c7 46 18 01 00 00 00 	movl   $0x1,0x18(%esi)
5587e6:	80 bf c8 00 00 00 02 	cmpb   $0x2,0xc8(%edi)
5587ed:	72 1f                	jb     0x55880e
5587ef:	8d 45 f4             	lea    -0xc(%ebp),%eax
5587f2:	50                   	push   %eax
5587f3:	56                   	push   %esi
5587f4:	57                   	push   %edi
5587f5:	e8 56 f6 fd ff       	call   0x537e50