56249f:	e8 ac 0c 00 00       	call   0x563150
5624a4:	83 c4 0c             	add    $0xc,%esp
5624a7:	85 c0                	test   %eax,%eax
5624a9:	74 17                	je     0x5624c2
5624ab:	53                   	push   %ebx
5624ac:	ff 37                	push   (%edi)
5624ae:	e8 bd ee fb ff       	call   0x521370
5624b3:	83 c4 08             	add    $0x8,%esp
5624b6:	5f                   	pop    %edi
5624b7:	5e                   	pop    %esi
5624b8:	b8 07 00 00 00       	mov    $0x7,%eax
5624bd:	5b                   	pop    %ebx
5624be:	8b e5                	mov    %ebp,%esp
5624c0:	5d                   	pop    %ebp
5624c1:	c3                   	ret
5624c2:	8b 7d 10             	mov    0x10(%ebp),%edi
5624c5:	8d 45 f8             	lea    -0x8(%ebp),%eax
5624c8:	8b 55 0c             	mov    0xc(%ebp),%edx
5624cb:	50                   	push   %eax
5624cc:	ff 75 f4             	push   -0xc(%ebp)
5624cf:	53                   	push   %ebx
5624d0:	6a 00                	push   $0x0
5624d2:	6a ff                	push   $0xffffffff
5624d4:	6a ff                	push   $0xffffffff
5624d6:	57                   	push   %edi
5624d7:	52                   	push   %edx
5624d8:	ff 75 08             	push   0x8(%ebp)
5624db:	e8 a0 02 00 00       	call   0x562780
5624e0:	8b c8                	mov    %eax,%ecx
5624e2:	83 c4 24             	add    $0x24,%esp
5624e5:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5624e8:	85 c9                	test   %ecx,%ecx
5624ea:	0f 85 fd 01 00 00    	jne    0x5626ed
5624f0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5624f3:	8b d7                	mov    %edi,%edx
5624f5:	8b c1                	mov    %ecx,%eax
5624f7:	f7 d2                	not    %edx
5624f9:	f7 d0                	not    %eax
5624fb:	89 55 e4             	mov    %edx,-0x1c(%ebp)
5624fe:	23 56 04             	and    0x4(%esi),%edx
562501:	89 45 e8             	mov    %eax,-0x18(%ebp)
562504:	23 06                	and    (%esi),%eax
562506:	89 45 b4             	mov    %eax,-0x4c(%ebp)
562509:	0b c2                	or     %edx,%eax
56250b:	8b 45 f8             	mov    -0x8(%ebp),%eax
56250e:	89 55 b0             	mov    %edx,-0x50(%ebp)
562511:	75 08                	jne    0x56251b
562513:	85 c0                	test   %eax,%eax
562515:	0f 84 6e 01 00 00    	je     0x562689
56251b:	33 d2                	xor    %edx,%edx
56251d:	0f 57 c0             	xorps  %xmm0,%xmm0
562520:	89 55 f0             	mov    %edx,-0x10(%ebp)
562523:	66 0f 13 45 d8       	movlpd %xmm0,-0x28(%ebp)
562528:	66 0f 13 45 bc       	movlpd %xmm0,-0x44(%ebp)
56252d:	85 c0                	test   %eax,%eax
56252f:	74 4c                	je     0x56257d
562531:	8d 45 f8             	lea    -0x8(%ebp),%eax
562534:	50                   	push   %eax
562535:	ff 75 f4             	push   -0xc(%ebp)
562538:	53                   	push   %ebx
562539:	6a 01                	push   $0x1
56253b:	6a ff                	push   $0xffffffff
56253d:	6a ff                	push   $0xffffffff
56253f:	57                   	push   %edi
562540:	51                   	push   %ecx
562541:	ff 75 08             	push   0x8(%ebp)
562544:	e8 37 02 00 00       	call   0x562780
562549:	8b 55 e4             	mov    -0x1c(%ebp),%edx
56254c:	8b c8                	mov    %eax,%ecx
56254e:	8b 45 e8             	mov    -0x18(%ebp),%eax
562551:	83 c4 24             	add    $0x24,%esp
562554:	23 06                	and    (%esi),%eax
562556:	23 56 04             	and    0x4(%esi),%edx
562559:	89 45 d0             	mov    %eax,-0x30(%ebp)
56255c:	0b c2                	or     %edx,%eax
56255e:	89 4d fc             	mov    %ecx,-0x4(%ebp)
562561:	89 55 cc             	mov    %edx,-0x34(%ebp)
562564:	75 0a                	jne    0x562570
562566:	ba 01 00 00 00       	mov    $0x1,%edx
56256b:	89 55 f0             	mov    %edx,-0x10(%ebp)
56256e:	eb 02                	jmp    0x562572
562570:	33 d2                	xor    %edx,%edx
562572:	85 c9                	test   %ecx,%ecx
562574:	74 13                	je     0x562589
562576:	8b f1                	mov    %ecx,%esi
562578:	e9 72 01 00 00       	jmp    0x5626ef
56257d:	8b 45 c0             	mov    -0x40(%ebp),%eax
562580:	89 45 cc             	mov    %eax,-0x34(%ebp)
562583:	8b 45 bc             	mov    -0x44(%ebp),%eax
562586:	89 45 d0             	mov    %eax,-0x30(%ebp)
562589:	8b 45 dc             	mov    -0x24(%ebp),%eax
56258c:	8b fa                	mov    %edx,%edi
56258e:	89 45 d4             	mov    %eax,-0x2c(%ebp)
562591:	8b 45 d8             	mov    -0x28(%ebp),%eax
562594:	89 7d c8             	mov    %edi,-0x38(%ebp)
562597:	89 45 dc             	mov    %eax,-0x24(%ebp)
56259a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
5625a0:	8b 45 c4             	mov    -0x3c(%ebp),%eax
5625a3:	83 ca ff             	or     $0xffffffff,%edx
5625a6:	83 ce ff             	or     $0xffffffff,%esi
5625a9:	85 c0                	test   %eax,%eax
5625ab:	7e 5c                	jle    0x562609
5625ad:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5625b0:	8b 7b 04             	mov    0x4(%ebx),%edi
5625b3:	8b d8                	mov    %eax,%ebx
5625b5:	83 c7 08             	add    $0x8,%edi
5625b8:	8b 49 14             	mov    0x14(%ecx),%ecx
5625bb:	89 4d e0             	mov    %ecx,-0x20(%ebp)
5625be:	66 90                	xchg   %ax,%ax
5625c0:	8b 07                	mov    (%edi),%eax
5625c2:	8d 04 40             	lea    (%eax,%eax,2),%eax
5625c5:	03 c0                	add    %eax,%eax
5625c7:	8b 4c c1 20          	mov    0x20(%ecx,%eax,8),%ecx
5625cb:	23 4d e8             	and    -0x18(%ebp),%ecx
5625ce:	89 4d c0             	mov    %ecx,-0x40(%ebp)
5625d1:	8b 4d e0             	mov    -0x20(%ebp),%ecx
5625d4:	8b 44 c1 24          	mov    0x24(%ecx,%eax,8),%eax
5625d8:	23 45 e4             	and    -0x1c(%ebp),%eax
5625db:	8b 4d c0             	mov    -0x40(%ebp),%ecx
5625de:	3b 45 d4             	cmp    -0x2c(%ebp),%eax
5625e1:	72 15                	jb     0x5625f8
5625e3:	77 05                	ja     0x5625ea
5625e5:	3b 4d dc             	cmp    -0x24(%ebp),%ecx
5625e8:	76 0e                	jbe    0x5625f8
5625ea:	3b c6                	cmp    %esi,%eax
5625ec:	77 0a                	ja     0x5625f8
5625ee:	72 04                	jb     0x5625f4
5625f0:	3b ca                	cmp    %edx,%ecx
5625f2:	73 04                	jae    0x5625f8
5625f4:	8b d1                	mov    %ecx,%edx
5625f6:	8b f0                	mov    %eax,%esi
5625f8:	8b 4d e0             	mov    -0x20(%ebp),%ecx
5625fb:	83 c7 0c             	add    $0xc,%edi
5625fe:	83 eb 01             	sub    $0x1,%ebx
562601:	75 bd                	jne    0x5625c0
562603:	8b 5d b8             	mov    -0x48(%ebp),%ebx
562606:	8b 7d c8             	mov    -0x38(%ebp),%edi
562609:	8b c2                	mov    %edx,%eax
56260b:	89 55 dc             	mov    %edx,-0x24(%ebp)
56260e:	23 c6                	and    %esi,%eax
562610:	89 75 d4             	mov    %esi,-0x2c(%ebp)
562613:	83 f8 ff             	cmp    $0xffffffff,%eax
562616:	74 76                	je     0x56268e
562618:	3b 55 b4             	cmp    -0x4c(%ebp),%edx
56261b:	75 05                	jne    0x562622
56261d:	3b 75 b0             	cmp    -0x50(%ebp),%esi
562620:	74 5c                	je     0x56267e
562622:	3b 55 d0             	cmp    -0x30(%ebp),%edx
562625:	75 05                	jne    0x56262c
562627:	3b 75 cc             	cmp    -0x34(%ebp),%esi
56262a:	74 52                	je     0x56267e
56262c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
56262f:	8d 45 f8             	lea    -0x8(%ebp),%eax
562632:	50                   	push   %eax
562633:	ff 75 f4             	push   -0xc(%ebp)
562636:	8b 45 10             	mov    0x10(%ebp),%eax
562639:	0b d1                	or     %ecx,%edx
56263b:	53                   	push   %ebx
56263c:	6a 00                	push   $0x0
56263e:	0b f0                	or     %eax,%esi
562640:	56                   	push   %esi
562641:	52                   	push   %edx
562642:	50                   	push   %eax
562643:	51                   	push   %ecx
562644:	ff 75 08             	push   0x8(%ebp)
562647:	e8 34 01 00 00       	call   0x562780
56264c:	8b 55 0c             	mov    0xc(%ebp),%edx
56264f:	8b c8                	mov    %eax,%ecx
562651:	8b 45 ac             	mov    -0x54(%ebp),%eax
562654:	83 c4 24             	add    $0x24,%esp
562657:	89 4d fc             	mov    %ecx,-0x4(%ebp)
56265a:	39 10                	cmp    %edx,(%eax)
56265c:	75 23                	jne    0x562681
56265e:	8b 55 10             	mov    0x10(%ebp),%edx
562661:	39 50 04             	cmp    %edx,0x4(%eax)
562664:	75 1b                	jne    0x562681
562666:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
56266a:	b8 01 00 00 00       	mov    $0x1,%eax
56266f:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
562676:	0f 44 f8             	cmove  %eax,%edi
562679:	89 7d c8             	mov    %edi,-0x38(%ebp)
56267c:	eb 03                	jmp    0x562681
56267e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
562681:	85 c9                	test   %ecx,%ecx
562683:	0f 84 17 ff ff ff    	je     0x5625a0
562689:	8b 75 fc             	mov    -0x4(%ebp),%esi
56268c:	eb 61                	jmp    0x5626ef
56268e:	8b 75 fc             	mov    -0x4(%ebp),%esi
562691:	85 f6                	test   %esi,%esi
562693:	75 5a                	jne    0x5626ef
562695:	39 75 f0             	cmp    %esi,-0x10(%ebp)
562698:	75 30                	jne    0x5626ca
56269a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
56269d:	8d 45 f8             	lea    -0x8(%ebp),%eax
5626a0:	50                   	push   %eax
5626a1:	ff 75 f4             	push   -0xc(%ebp)
5626a4:	8b 45 10             	mov    0x10(%ebp),%eax
5626a7:	53                   	push   %ebx
5626a8:	56                   	push   %esi
5626a9:	50                   	push   %eax
5626aa:	51                   	push   %ecx
5626ab:	50                   	push   %eax
5626ac:	51                   	push   %ecx
5626ad:	ff 75 08             	push   0x8(%ebp)
5626b0:	e8 cb 00 00 00       	call   0x562780
5626b5:	83 c4 24             	add    $0x24,%esp
5626b8:	8b f0                	mov    %eax,%esi
5626ba:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
5626be:	b8 01 00 00 00       	mov    $0x1,%eax
5626c3:	0f 44 f8             	cmove  %eax,%edi
5626c6:	85 f6                	test   %esi,%esi
5626c8:	75 25                	jne    0x5626ef
5626ca:	85 ff                	test   %edi,%edi
5626cc:	75 21                	jne    0x5626ef
5626ce:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5626d1:	8d 45 f8             	lea    -0x8(%ebp),%eax
5626d4:	50                   	push   %eax
5626d5:	ff 75 f4             	push   -0xc(%ebp)
5626d8:	8b 45 10             	mov    0x10(%ebp),%eax
5626db:	53                   	push   %ebx
5626dc:	6a 01                	push   $0x1
5626de:	50                   	push   %eax
5626df:	51                   	push   %ecx
5626e0:	50                   	push   %eax
5626e1:	51                   	push   %ecx
5626e2:	ff 75 08             	push   0x8(%ebp)
5626e5:	e8 96 00 00 00       	call   0x562780
5626ea:	83 c4 24             	add    $0x24,%esp
5626ed:	8b f0                	mov    %eax,%esi
5626ef:	83 7b 1c 00          	cmpl   $0x0,0x1c(%ebx)
5626f3:	74 0b                	je     0x562700
5626f5:	ff 73 18             	push   0x18(%ebx)
5626f8:	e8 93 86 f8 ff       	call   0x4ead90
5626fd:	83 c4 04             	add    $0x4,%esp
562700:	8b 4d a8             	mov    -0x58(%ebp),%ecx
562703:	8b 09                	mov    (%ecx),%ecx
562705:	85 c9                	test   %ecx,%ecx
562707:	74 62                	je     0x56276b
562709:	83 b9 f8 01 00 00 00 	cmpl   $0x0,0x1f8(%ecx)
562710:	74 13                	je     0x562725
562712:	53                   	push   %ebx
562713:	51                   	push   %ecx
562714:	e8 57 6d fa ff       	call   0x509470
562719:	83 c4 08             	add    $0x8,%esp
56271c:	8b c6                	mov    %esi,%eax
56271e:	5f                   	pop    %edi
56271f:	5e                   	pop    %esi
562720:	5b                   	pop    %ebx
562721:	8b e5                	mov    %ebp,%esp
562723:	5d                   	pop    %ebp
562724:	c3                   	ret
562725:	3b 99 4c 01 00 00    	cmp    0x14c(%ecx),%ebx
56272b:	73 3e                	jae    0x56276b
56272d:	3b 99 44 01 00 00    	cmp    0x144(%ecx),%ebx
562733:	72 17                	jb     0x56274c
562735:	8b 81 40 01 00 00    	mov    0x140(%ecx),%eax
56273b:	89 03                	mov    %eax,(%ebx)
56273d:	8b c6                	mov    %esi,%eax
56273f:	5f                   	pop    %edi
562740:	5e                   	pop    %esi
562741:	89 99 40 01 00 00    	mov    %ebx,0x140(%ecx)
562747:	5b                   	pop    %ebx
562748:	8b e5                	mov    %ebp,%esp
56274a:	5d                   	pop    %ebp
56274b:	c3                   	ret
56274c:	3b 99 48 01 00 00    	cmp    0x148(%ecx),%ebx
562752:	72 17                	jb     0x56276b
562754:	8b 81 38 01 00 00    	mov    0x138(%ecx),%eax
56275a:	89 03                	mov    %eax,(%ebx)
56275c:	8b c6                	mov    %esi,%eax
56275e:	5f                   	pop    %edi
56275f:	5e                   	pop    %esi
562760:	89 99 38 01 00 00    	mov    %ebx,0x138(%ecx)
562766:	5b                   	pop    %ebx
562767:	8b e5                	mov    %ebp,%esp
562769:	5d                   	pop    %ebp
56276a:	c3                   	ret
56276b:	53                   	push   %ebx
56276c:	e8 1f 86 f8 ff       	call   0x4ead90
562771:	83 c4 04             	add    $0x4,%esp
562774:	8b c6                	mov    %esi,%eax
562776:	5f                   	pop    %edi
562777:	5e                   	pop    %esi
562778:	5b                   	pop    %ebx
562779:	8b e5                	mov    %ebp,%esp
56277b:	5d                   	pop    %ebp
56277c:	c3                   	ret
56277d:	cc                   	int3
56277e:	cc                   	int3
56277f:	cc                   	int3
562780:	55                   	push   %ebp
562781:	8b ec                	mov    %esp,%ebp
562783:	83 ec 20             	sub    $0x20,%esp
562786:	8b 4d 08             	mov    0x8(%ebp),%ecx
562789:	53                   	push   %ebx
56278a:	56                   	push   %esi
56278b:	57                   	push   %edi
56278c:	8b 41 04             	mov    0x4(%ecx),%eax
56278f:	8b 71 0c             	mov    0xc(%ecx),%esi
562792:	8b 09                	mov    (%ecx),%ecx
562794:	8b 7d 20             	mov    0x20(%ebp),%edi
562797:	89 45 f8             	mov    %eax,-0x8(%ebp)
56279a:	89 75 e4             	mov    %esi,-0x1c(%ebp)
56279d:	8b 47 10             	mov    0x10(%edi),%eax
5627a0:	89 45 f4             	mov    %eax,-0xc(%ebp)
5627a3:	8b 01                	mov    (%ecx),%eax
5627a5:	8b 49 04             	mov    0x4(%ecx),%ecx
5627a8:	89 45 e8             	mov    %eax,-0x18(%ebp)
5627ab:	0f b6 46 10          	movzbl 0x10(%esi),%eax
5627af:	89 4d ec             	mov    %ecx,-0x14(%ebp)
5627b2:	8b 0f                	mov    (%edi),%ecx
5627b4:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5627b7:	8d 1c c0             	lea    (%eax,%eax,8),%ebx
5627ba:	8b 45 28             	mov    0x28(%ebp),%eax
5627bd:	89 5d f0             	mov    %ebx,-0x10(%ebp)
5627c0:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
5627c6:	8b 45 0c             	mov    0xc(%ebp),%eax
5627c9:	89 06                	mov    %eax,(%esi)
5627cb:	8b 45 10             	mov    0x10(%ebp),%eax
5627ce:	89 46 04             	mov    %eax,0x4(%esi)
5627d1:	8b 57 04             	mov    0x4(%edi),%edx
5627d4:	85 c9                	test   %ecx,%ecx
5627d6:	7e 57                	jle    0x56282f
5627d8:	83 c2 05             	add    $0x5,%edx
5627db:	8b f9                	mov    %ecx,%edi
5627dd:	0f 1f 00             	nopl   (%eax)
5627e0:	8b 42 03             	mov    0x3(%edx),%eax
5627e3:	8d 1c 40             	lea    (%eax,%eax,2),%ebx
5627e6:	8b 45 f8             	mov    -0x8(%ebp),%eax
5627e9:	c1 e3 04             	shl    $0x4,%ebx
5627ec:	03 58 14             	add    0x14(%eax),%ebx
5627ef:	c6 02 00             	movb   $0x0,(%edx)
5627f2:	8b 73 24             	mov    0x24(%ebx),%esi
5627f5:	8b 43 20             	mov    0x20(%ebx),%eax
5627f8:	23 45 14             	and    0x14(%ebp),%eax
5627fb:	89 75 10             	mov    %esi,0x10(%ebp)
5627fe:	8b 75 18             	mov    0x18(%ebp),%esi
562801:	21 75 10             	and    %esi,0x10(%ebp)
562804:	3b 43 20             	cmp    0x20(%ebx),%eax
562807:	75 15                	jne    0x56281e
562809:	8b 43 24             	mov    0x24(%ebx),%eax
56280c:	39 45 10             	cmp    %eax,0x10(%ebp)
56280f:	75 0d                	jne    0x56281e
562811:	66 8b 45 1c          	mov    0x1c(%ebp),%ax
562815:	66 85 43 0c          	test   %ax,0xc(%ebx)
562819:	75 03                	jne    0x56281e
56281b:	c6 02 01             	movb   $0x1,(%edx)
56281e:	83 c2 0c             	add    $0xc,%edx
562821:	83 ef 01             	sub    $0x1,%edi
562824:	75 ba                	jne    0x5627e0