562276:	3b d0                	cmp    %eax,%edx
562278:	7e 05                	jle    0x56227f
56227a:	8d 41 01             	lea    0x1(%ecx),%eax
56227d:	eb 0c                	jmp    0x56228b
56227f:	2b d3                	sub    %ebx,%edx
562281:	0f b6 82 c0 2c 6b 00 	movzbl 0x6b2cc0(%edx),%eax
562288:	66 03 c1             	add    %cx,%ax
56228b:	0f b7 c0             	movzwl %ax,%eax
56228e:	56                   	push   %esi
56228f:	8b b5 9c fd ff ff    	mov    -0x264(%ebp),%esi
562295:	50                   	push   %eax
562296:	8b 46 fc             	mov    -0x4(%esi),%eax
562299:	0b 85 58 fd ff ff    	or     -0x2a8(%ebp),%eax
56229f:	8b 4e f8             	mov    -0x8(%esi),%ecx
5622a2:	0b 8d 5c fd ff ff    	or     -0x2a4(%ebp),%ecx
5622a8:	50                   	push   %eax
5622a9:	51                   	push   %ecx
5622aa:	8d 45 c4             	lea    -0x3c(%ebp),%eax
5622ad:	50                   	push   %eax
5622ae:	e8 bd 0f 00 00       	call   0x563270
5622b3:	8b 8d 78 fd ff ff    	mov    -0x288(%ebp),%ecx
5622b9:	83 c6 10             	add    $0x10,%esi
5622bc:	0f b7 45 8c          	movzwl -0x74(%ebp),%eax
5622c0:	41                   	inc    %ecx
5622c1:	8b 95 80 fd ff ff    	mov    -0x280(%ebp),%edx
5622c7:	83 c4 14             	add    $0x14,%esp
5622ca:	89 8d 78 fd ff ff    	mov    %ecx,-0x288(%ebp)
5622d0:	89 b5 9c fd ff ff    	mov    %esi,-0x264(%ebp)
5622d6:	3b c8                	cmp    %eax,%ecx
5622d8:	0f 8c e2 fe ff ff    	jl     0x5621c0
5622de:	8b 8d 84 fd ff ff    	mov    -0x27c(%ebp),%ecx
5622e4:	8b 95 74 fd ff ff    	mov    -0x28c(%ebp),%edx
5622ea:	83 c1 10             	add    $0x10,%ecx
5622ed:	83 ea 01             	sub    $0x1,%edx
5622f0:	89 8d 84 fd ff ff    	mov    %ecx,-0x27c(%ebp)
5622f6:	89 95 74 fd ff ff    	mov    %edx,-0x28c(%ebp)
5622fc:	0f 85 7e fe ff ff    	jne    0x562180
562302:	8b bd 70 fd ff ff    	mov    -0x290(%ebp),%edi
562308:	66 8b 5d c4          	mov    -0x3c(%ebp),%bx
56230c:	89 9d 9c fd ff ff    	mov    %ebx,-0x264(%ebp)
562312:	8b 75 10             	mov    0x10(%ebp),%esi
562315:	8b 85 8c fd ff ff    	mov    -0x274(%ebp),%eax
56231b:	83 c7 30             	add    $0x30,%edi
56231e:	89 bd 70 fd ff ff    	mov    %edi,-0x290(%ebp)
562324:	3b f8                	cmp    %eax,%edi
562326:	0f 82 04 fd ff ff    	jb     0x562030
56232c:	eb 0c                	jmp    0x56233a
56232e:	33 db                	xor    %ebx,%ebx
562330:	89 9d 9c fd ff ff    	mov    %ebx,-0x264(%ebp)
562336:	66 89 5d c4          	mov    %bx,-0x3c(%ebp)
56233a:	8b 8d 88 fd ff ff    	mov    -0x278(%ebp),%ecx
562340:	b8 01 00 00 00       	mov    $0x1,%eax
562345:	8b 95 94 fd ff ff    	mov    -0x26c(%ebp),%edx
56234b:	0f 57 c0             	xorps  %xmm0,%xmm0
56234e:	33 ff                	xor    %edi,%edi
562350:	66 89 41 28          	mov    %ax,0x28(%ecx)
562354:	8b 41 30             	mov    0x30(%ecx),%eax
562357:	89 10                	mov    %edx,(%eax)
562359:	33 c0                	xor    %eax,%eax
56235b:	66 89 41 12          	mov    %ax,0x12(%ecx)
56235f:	88 41 11             	mov    %al,0x11(%ecx)
562362:	c7 41 24 00 20 00 00 	movl   $0x2000,0x24(%ecx)
562369:	66 0f d6 41 18       	movq   %xmm0,0x18(%ecx)
56236e:	89 41 20             	mov    %eax,0x20(%ecx)
562371:	8b 85 98 fd ff ff    	mov    -0x268(%ebp),%eax
562377:	85 c0                	test   %eax,%eax
562379:	75 68                	jne    0x5623e3
56237b:	0f b7 c3             	movzwl %bx,%eax
56237e:	8d 75 d6             	lea    -0x2a(%ebp),%esi
562381:	89 85 80 fd ff ff    	mov    %eax,-0x280(%ebp)
562387:	8b d8                	mov    %eax,%ebx
562389:	8b 85 98 fd ff ff    	mov    -0x268(%ebp),%eax
56238f:	90                   	nop
562390:	3b fb                	cmp    %ebx,%edi
562392:	7d 39                	jge    0x5623cd
562394:	0f b7 46 fe          	movzwl -0x2(%esi),%eax
562398:	66 40                	inc    %ax
56239a:	66 89 41 14          	mov    %ax,0x14(%ecx)
56239e:	0f b7 06             	movzwl (%esi),%eax
5623a1:	66 89 41 16          	mov    %ax,0x16(%ecx)
5623a5:	8b 46 f6             	mov    -0xa(%esi),%eax
5623a8:	51                   	push   %ecx
5623a9:	ff b5 6c fd ff ff    	push   -0x294(%ebp)
5623af:	89 01                	mov    %eax,(%ecx)
5623b1:	8b 46 fa             	mov    -0x6(%esi),%eax
5623b4:	89 41 04             	mov    %eax,0x4(%ecx)
5623b7:	e8 b4 0a 00 00       	call   0x562e70
5623bc:	8b 8d 88 fd ff ff    	mov    -0x278(%ebp),%ecx
5623c2:	83 c4 08             	add    $0x8,%esp
5623c5:	47                   	inc    %edi
5623c6:	83 c6 10             	add    $0x10,%esi
5623c9:	85 c0                	test   %eax,%eax
5623cb:	74 c3                	je     0x562390
5623cd:	8b bd 88 fd ff ff    	mov    -0x278(%ebp),%edi
5623d3:	89 85 98 fd ff ff    	mov    %eax,-0x268(%ebp)
5623d9:	eb 0a                	jmp    0x5623e5
5623db:	8b 85 98 fd ff ff    	mov    -0x268(%ebp),%eax
5623e1:	eb 05                	jmp    0x5623e8
5623e3:	8b f9                	mov    %ecx,%edi
5623e5:	8b 75 10             	mov    0x10(%ebp),%esi
5623e8:	8b 8d 94 fd ff ff    	mov    -0x26c(%ebp),%ecx
5623ee:	8b 95 90 fd ff ff    	mov    -0x270(%ebp),%edx
5623f4:	83 c1 30             	add    $0x30,%ecx
5623f7:	89 8d 94 fd ff ff    	mov    %ecx,-0x26c(%ebp)
5623fd:	3b ca                	cmp    %edx,%ecx
5623ff:	0f 82 7b fb ff ff    	jb     0x561f80
562405:	5f                   	pop    %edi
562406:	5e                   	pop    %esi
562407:	5b                   	pop    %ebx
562408:	8b 4d fc             	mov    -0x4(%ebp),%ecx
56240b:	33 cd                	xor    %ebp,%ecx
56240d:	e8 c8 f0 07 00       	call   0x5e14da
562412:	8b e5                	mov    %ebp,%esp
562414:	5d                   	pop    %ebp
562415:	c3                   	ret
562416:	8b c6                	mov    %esi,%eax
562418:	8b 4d fc             	mov    -0x4(%ebp),%ecx
56241b:	5f                   	pop    %edi
56241c:	5e                   	pop    %esi
56241d:	33 cd                	xor    %ebp,%ecx
56241f:	5b                   	pop    %ebx
562420:	e8 b5 f0 07 00       	call   0x5e14da
562425:	8b e5                	mov    %ebp,%esp
562427:	5d                   	pop    %ebp
562428:	c3                   	ret
562429:	cc                   	int3
56242a:	cc                   	int3
56242b:	cc                   	int3
56242c:	cc                   	int3
56242d:	cc                   	int3
56242e:	cc                   	int3
56242f:	cc                   	int3
562430:	55                   	push   %ebp
562431:	8b ec                	mov    %esp,%ebp
562433:	83 ec 58             	sub    $0x58,%esp
562436:	53                   	push   %ebx
562437:	8b 5d 08             	mov    0x8(%ebp),%ebx
56243a:	56                   	push   %esi
56243b:	57                   	push   %edi
56243c:	8b 73 0c             	mov    0xc(%ebx),%esi
56243f:	8b 43 04             	mov    0x4(%ebx),%eax
562442:	8b 13                	mov    (%ebx),%edx
562444:	89 45 ec             	mov    %eax,-0x14(%ebp)
562447:	0f b6 46 10          	movzbl 0x10(%esi),%eax
56244b:	89 75 ac             	mov    %esi,-0x54(%ebp)
56244e:	8b 3a                	mov    (%edx),%edi
562450:	89 7d a8             	mov    %edi,-0x58(%ebp)
562453:	8d 0c c0             	lea    (%eax,%eax,8),%ecx
562456:	8b 42 04             	mov    0x4(%edx),%eax
562459:	8d 04 c8             	lea    (%eax,%ecx,8),%eax
56245c:	8d 4d f4             	lea    -0xc(%ebp),%ecx
56245f:	83 c0 08             	add    $0x8,%eax
562462:	51                   	push   %ecx
562463:	ff 73 08             	push   0x8(%ebx)
562466:	50                   	push   %eax
562467:	ff 75 18             	push   0x18(%ebp)
56246a:	ff 75 14             	push   0x14(%ebp)
56246d:	ff 75 ec             	push   -0x14(%ebp)
562470:	57                   	push   %edi
562471:	e8 da 05 f9 ff       	call   0x4f2a50
562476:	8b d8                	mov    %eax,%ebx
562478:	83 c4 1c             	add    $0x1c,%esp
56247b:	89 5d b8             	mov    %ebx,-0x48(%ebp)
56247e:	85 db                	test   %ebx,%ebx
562480:	74 34                	je     0x5624b6
562482:	33 c0                	xor    %eax,%eax
562484:	c7 46 24 00 04 00 00 	movl   $0x400,0x24(%esi)
56248b:	66 89 46 12          	mov    %ax,0x12(%esi)
56248f:	66 89 46 28          	mov    %ax,0x28(%esi)
562493:	88 46 1c             	mov    %al,0x1c(%esi)
562496:	8b 03                	mov    (%ebx),%eax
562498:	50                   	push   %eax
562499:	56                   	push   %esi
56249a:	ff 37                	push   (%edi)
56249c:	89 45 c4             	mov    %eax,-0x3c(%ebp)
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)