56144a:	8b 53 38             	mov    0x38(%ebx),%edx
56144d:	83 c4 0c             	add    $0xc,%esp
561450:	8b ca                	mov    %edx,%ecx
561452:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
561458:	83 e1 03             	and    $0x3,%ecx
56145b:	80 f9 03             	cmp    $0x3,%cl
56145e:	75 43                	jne    0x5614a3
561460:	8b 8d 5c ff ff ff    	mov    -0xa4(%ebp),%ecx
561466:	33 d2                	xor    %edx,%edx
561468:	85 c0                	test   %eax,%eax
56146a:	0f b6 c9             	movzbl %cl,%ecx
56146d:	56                   	push   %esi
56146e:	57                   	push   %edi
56146f:	ff b5 60 ff ff ff    	push   -0xa0(%ebp)
561475:	0f 45 d1             	cmovne %ecx,%edx
561478:	c7 47 24 00 01 00 00 	movl   $0x100,0x24(%edi)
56147f:	8d 46 10             	lea    0x10(%esi),%eax
561482:	88 57 11             	mov    %dl,0x11(%edi)
561485:	66 89 47 14          	mov    %ax,0x14(%edi)
561489:	e8 62 1b 00 00       	call   0x562ff0
56148e:	57                   	push   %edi
56148f:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
561495:	e8 d6 19 00 00       	call   0x562e70
56149a:	66 89 77 16          	mov    %si,0x16(%edi)
56149e:	e9 17 02 00 00       	jmp    0x5616ba
5614a3:	f6 c2 20             	test   $0x20,%dl
5614a6:	74 26                	je     0x5614ce
5614a8:	0f 57 c0             	xorps  %xmm0,%xmm0
5614ab:	c7 47 24 40 02 00 00 	movl   $0x240,0x24(%edi)
5614b2:	66 0f 13 85 54 ff ff 	movlpd %xmm0,-0xac(%ebp)
5614b9:	ff
5614ba:	8b 8d 58 ff ff ff    	mov    -0xa8(%ebp),%ecx
5614c0:	8b b5 54 ff ff ff    	mov    -0xac(%ebp),%esi
5614c6:	89 8d 74 ff ff ff    	mov    %ecx,-0x8c(%ebp)
5614cc:	eb 2e                	jmp    0x5614fc
5614ce:	8b 45 80             	mov    -0x80(%ebp),%eax
5614d1:	8b 73 40             	mov    0x40(%ebx),%esi
5614d4:	8b 4b 44             	mov    0x44(%ebx),%ecx
5614d7:	23 70 38             	and    0x38(%eax),%esi
5614da:	23 48 3c             	and    0x3c(%eax),%ecx
5614dd:	8b c6                	mov    %esi,%eax
5614df:	0b c1                	or     %ecx,%eax
5614e1:	89 8d 74 ff ff ff    	mov    %ecx,-0x8c(%ebp)
5614e7:	b8 40 02 00 00       	mov    $0x240,%eax
5614ec:	74 05                	je     0x5614f3
5614ee:	b8 00 02 00 00       	mov    $0x200,%eax
5614f3:	89 47 24             	mov    %eax,0x24(%edi)
5614f6:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
5614fc:	8b 95 70 ff ff ff    	mov    -0x90(%ebp),%edx
561502:	85 c0                	test   %eax,%eax
561504:	75 58                	jne    0x56155e
561506:	f6 42 24 80          	testb  $0x80,0x24(%edx)
56150a:	75 52                	jne    0x56155e
56150c:	39 43 24             	cmp    %eax,0x24(%ebx)
56150f:	75 4d                	jne    0x56155e
561511:	8b c6                	mov    %esi,%eax
561513:	0b c1                	or     %ecx,%eax
561515:	0f 85 a6 01 00 00    	jne    0x5616c1
56151b:	f6 43 38 04          	testb  $0x4,0x38(%ebx)
56151f:	0f 85 9c 01 00 00    	jne    0x5616c1
561525:	66 8b 43 30          	mov    0x30(%ebx),%ax
561529:	66 3b 42 30          	cmp    0x30(%edx),%ax
56152d:	0f 8d 8e 01 00 00    	jge    0x5616c1
561533:	8b 85 64 ff ff ff    	mov    -0x9c(%ebp),%eax
561539:	f6 40 28 04          	testb  $0x4,0x28(%eax)
56153d:	0f 85 7e 01 00 00    	jne    0x5616c1
561543:	80 3d 17 18 72 00 00 	cmpb   $0x0,0x721817
56154a:	0f 84 71 01 00 00    	je     0x5616c1
561550:	8b 00                	mov    (%eax),%eax
561552:	8b 00                	mov    (%eax),%eax
561554:	f6 40 4c 20          	testb  $0x20,0x4c(%eax)
561558:	0f 85 63 01 00 00    	jne    0x5616c1
56155e:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
561564:	33 c9                	xor    %ecx,%ecx
561566:	39 8d 7c ff ff ff    	cmp    %ecx,-0x84(%ebp)
56156c:	0f b6 c0             	movzbl %al,%eax
56156f:	0f 45 c8             	cmovne %eax,%ecx
561572:	88 4f 11             	mov    %cl,0x11(%edi)
561575:	0f bf 4b 30          	movswl 0x30(%ebx),%ecx
561579:	8b c1                	mov    %ecx,%eax
56157b:	c1 e0 04             	shl    $0x4,%eax
56157e:	2b c1                	sub    %ecx,%eax
561580:	0f bf 4a 30          	movswl 0x30(%edx),%ecx
561584:	99                   	cltd
561585:	f7 f9                	idiv   %ecx
561587:	8b 8d 68 ff ff ff    	mov    -0x98(%ebp),%ecx
56158d:	40                   	inc    %eax
56158e:	03 c1                	add    %ecx,%eax
561590:	0b b5 74 ff ff ff    	or     -0x8c(%ebp),%esi
561596:	66 89 47 14          	mov    %ax,0x14(%edi)
56159a:	0f 84 f7 00 00 00    	je     0x561697
5615a0:	8d 41 10             	lea    0x10(%ecx),%eax
5615a3:	33 c9                	xor    %ecx,%ecx
5615a5:	0f b7 f0             	movzwl %ax,%esi
5615a8:	8b 45 80             	mov    -0x80(%ebp),%eax
5615ab:	89 8d 7c ff ff ff    	mov    %ecx,-0x84(%ebp)
5615b1:	8b 40 2c             	mov    0x2c(%eax),%eax
5615b4:	89 85 58 ff ff ff    	mov    %eax,-0xa8(%ebp)
5615ba:	8b 85 64 ff ff ff    	mov    -0x9c(%ebp),%eax
5615c0:	39 48 5c             	cmp    %ecx,0x5c(%eax)
5615c3:	0f 8e b6 00 00 00    	jle    0x56167f
5615c9:	8b bd 6c ff ff ff    	mov    -0x94(%ebp),%edi
5615cf:	33 d2                	xor    %edx,%edx
5615d1:	89 95 74 ff ff ff    	mov    %edx,-0x8c(%ebp)
5615d7:	66 0f 1f 84 00 00 00 	nopw   0x0(%eax,%eax,1)
5615de:	00 00
5615e0:	8b 58 64             	mov    0x64(%eax),%ebx
5615e3:	0f 57 c0             	xorps  %xmm0,%xmm0
5615e6:	8b 8d 58 ff ff ff    	mov    -0xa8(%ebp),%ecx
5615ec:	03 da                	add    %edx,%ebx
5615ee:	89 4d ec             	mov    %ecx,-0x14(%ebp)
5615f1:	8d 4d e8             	lea    -0x18(%ebp),%ecx
5615f4:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
5615fb:	0f 11 45 cc          	movups %xmm0,-0x34(%ebp)
5615ff:	8b 03                	mov    (%ebx),%eax
561601:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
561604:	8b 8d 7c ff ff ff    	mov    -0x84(%ebp),%ecx
56160a:	66 0f d6 45 dc       	movq   %xmm0,-0x24(%ebp)
56160f:	89 7d e8             	mov    %edi,-0x18(%ebp)
561612:	c7 45 d0 80 0c 50 00 	movl   $0x500c80,-0x30(%ebp)
561619:	85 c0                	test   %eax,%eax
56161b:	74 19                	je     0x561636
56161d:	50                   	push   %eax
56161e:	8d 45 cc             	lea    -0x34(%ebp),%eax
561621:	50                   	push   %eax
561622:	e8 89 e9 ff ff       	call   0x55ffb0
561627:	8b 8d 7c ff ff ff    	mov    -0x84(%ebp),%ecx
56162d:	83 c4 08             	add    $0x8,%esp
561630:	8b 95 74 ff ff ff    	mov    -0x8c(%ebp),%edx
561636:	66 83 7d e0 00       	cmpw   $0x0,-0x20(%ebp)
56163b:	75 36                	jne    0x561673
56163d:	0f b7 43 08          	movzwl 0x8(%ebx),%eax
561641:	66 85 c0             	test   %ax,%ax
561644:	7f 04                	jg     0x56164a
561646:	03 f0                	add    %eax,%esi
561648:	eb 0a                	jmp    0x561654
56164a:	4e                   	dec    %esi
56164b:	f6 43 0c 82          	testb  $0x82,0xc(%ebx)
56164f:	74 03                	je     0x561654
561651:	83 ee 13             	sub    $0x13,%esi
561654:	8b 85 64 ff ff ff    	mov    -0x9c(%ebp),%eax
56165a:	41                   	inc    %ecx
56165b:	83 c2 30             	add    $0x30,%edx
56165e:	89 8d 7c ff ff ff    	mov    %ecx,-0x84(%ebp)
561664:	89 95 74 ff ff ff    	mov    %edx,-0x8c(%ebp)
56166a:	3b 48 5c             	cmp    0x5c(%eax),%ecx
56166d:	0f 8c 6d ff ff ff    	jl     0x5615e0
561673:	8b bd 50 ff ff ff    	mov    -0xb0(%ebp),%edi
561679:	8b 9d 6c ff ff ff    	mov    -0x94(%ebp),%ebx
56167f:	0f b7 47 14          	movzwl 0x14(%edi),%eax
561683:	56                   	push   %esi
561684:	50                   	push   %eax
561685:	e8 b6 f7 fc ff       	call   0x530e40
56168a:	8b 8d 68 ff ff ff    	mov    -0x98(%ebp),%ecx
561690:	83 c4 08             	add    $0x8,%esp
561693:	66 89 47 14          	mov    %ax,0x14(%edi)
561697:	51                   	push   %ecx
561698:	57                   	push   %edi
561699:	ff b5 60 ff ff ff    	push   -0xa0(%ebp)
56169f:	e8 4c 19 00 00       	call   0x562ff0
5616a4:	57                   	push   %edi
5616a5:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
5616ab:	e8 c0 17 00 00       	call   0x562e70
5616b0:	8b 8d 68 ff ff ff    	mov    -0x98(%ebp),%ecx
5616b6:	66 89 4f 16          	mov    %cx,0x16(%edi)
5616ba:	83 c4 14             	add    $0x14,%esp
5616bd:	85 c0                	test   %eax,%eax
5616bf:	75 67                	jne    0x561728
5616c1:	8b 85 78 ff ff ff    	mov    -0x88(%ebp),%eax
5616c7:	6a 00                	push   $0x0
5616c9:	53                   	push   %ebx
5616ca:	ff 75 80             	push   -0x80(%ebp)
5616cd:	c7 40 14 00 00 00 00 	movl   $0x0,0x14(%eax)
5616d4:	50                   	push   %eax
5616d5:	e8 66 00 00 00       	call   0x561740
5616da:	8b 8d 78 ff ff ff    	mov    -0x88(%ebp),%ecx
5616e0:	83 c4 10             	add    $0x10,%esp
5616e3:	8b 55 80             	mov    -0x80(%ebp),%edx
5616e6:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
5616ec:	83 79 14 01          	cmpl   $0x1,0x14(%ecx)
5616f0:	75 15                	jne    0x561707
5616f2:	8b 8d 70 ff ff ff    	mov    -0x90(%ebp),%ecx
5616f8:	81 49 24 00 01 00 00 	orl    $0x100,0x24(%ecx)
5616ff:	eb 06                	jmp    0x561707
561701:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
561707:	83 7a 44 00          	cmpl   $0x0,0x44(%edx)
56170b:	74 04                	je     0x561711
56170d:	33 db                	xor    %ebx,%ebx
56170f:	eb 03                	jmp    0x561714
561711:	8b 5b 14             	mov    0x14(%ebx),%ebx
561714:	ff 85 5c ff ff ff    	incl   -0xa4(%ebp)
56171a:	89 9d 6c ff ff ff    	mov    %ebx,-0x94(%ebp)
561720:	85 c0                	test   %eax,%eax
561722:	0f 84 9e fc ff ff    	je     0x5613c6
561728:	8b 4d fc             	mov    -0x4(%ebp),%ecx
56172b:	5f                   	pop    %edi
56172c:	5e                   	pop    %esi
56172d:	33 cd                	xor    %ebp,%ecx
56172f:	5b                   	pop    %ebx
561730:	e8 a5 fd 07 00       	call   0x5e14da
561735:	8b e5                	mov    %ebp,%esp
561737:	5d                   	pop    %ebp
561738:	c3                   	ret
561739:	cc                   	int3
56173a:	cc                   	int3
56173b:	cc                   	int3
56173c:	cc                   	int3
56173d:	cc                   	int3
56173e:	cc                   	int3
56173f:	cc                   	int3
561740:	55                   	push   %ebp
561741:	8b ec                	mov    %esp,%ebp
561743:	81 ec c0 00 00 00    	sub    $0xc0,%esp
561749:	a1 d4 89 72 00       	mov    0x7289d4,%eax
56174e:	33 c5                	xor    %ebp,%eax
561750:	89 45 fc             	mov    %eax,-0x4(%ebp)
561753:	8b 4d 08             	mov    0x8(%ebp),%ecx
561756:	33 d2                	xor    %edx,%edx
561758:	8b 45 0c             	mov    0xc(%ebp),%eax
56175b:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
561761:	53                   	push   %ebx
561762:	8b 01                	mov    (%ecx),%eax
561764:	8b 5d 10             	mov    0x10(%ebp),%ebx
561767:	56                   	push   %esi
561768:	8b 71 0c             	mov    0xc(%ecx),%esi
56176b:	8b 00                	mov    (%eax),%eax
56176d:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
561773:	89 4d 84             	mov    %ecx,-0x7c(%ebp)
561776:	89 9d 78 ff ff ff    	mov    %ebx,-0x88(%ebp)
56177c:	8b 00                	mov    (%eax),%eax
56177e:	89 85 64 ff ff ff    	mov    %eax,-0x9c(%ebp)
561784:	c7 45 80 00 00 00 00 	movl   $0x0,-0x80(%ebp)
56178b:	89 55 98             	mov    %edx,-0x68(%ebp)
56178e:	89 55 88             	mov    %edx,-0x78(%ebp)
561791:	89 b5 70 ff ff ff    	mov    %esi,-0x90(%ebp)
561797:	38 50 51             	cmp    %dl,0x51(%eax)
56179a:	74 13                	je     0x5617af
56179c:	5e                   	pop    %esi
56179d:	8d 42 07             	lea    0x7(%edx),%eax
5617a0:	5b                   	pop    %ebx
5617a1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5617a4:	33 cd                	xor    %ebp,%ecx
5617a6:	e8 2f fd 07 00       	call   0x5e14da
5617ab:	8b e5                	mov    %ebp,%esp
5617ad:	5d                   	pop    %ebp
5617ae:	c3                   	ret
5617af:	8b 46 24             	mov    0x24(%esi),%eax
5617b2:	ba 18 00 00 00       	mov    $0x18,%edx
5617b7:	0f b7 4e 18          	movzwl 0x18(%esi),%ecx
5617bb:	a8 20                	test   $0x20,%al
5617bd:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
5617c3:	b8 bf 01 00 00       	mov    $0x1bf,%eax
5617c8:	0f 44 d0             	cmove  %eax,%edx
5617cb:	89 4d 94             	mov    %ecx,-0x6c(%ebp)
5617ce:	0f b7 46 1a          	movzwl 0x1a(%esi),%eax
5617d2:	89 85 50 ff ff ff    	mov    %eax,-0xb0(%ebp)
5617d8:	0f b7 46 1c          	movzwl 0x1c(%esi),%eax
5617dc:	89 85 4c ff ff ff    	mov    %eax,-0xb4(%ebp)
5617e2:	0f b7 46 2a          	movzwl 0x2a(%esi),%eax
5617e6:	89 85 44 ff ff ff    	mov    %eax,-0xbc(%ebp)
5617ec:	8b 06                	mov    (%esi),%eax
5617ee:	57                   	push   %edi
5617ef:	0f b7 7e 28          	movzwl 0x28(%esi),%edi
5617f3:	89 85 58 ff ff ff    	mov    %eax,-0xa8(%ebp)
5617f9:	8b 46 04             	mov    0x4(%esi),%eax
5617fc:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
561802:	0f b7 46 16          	movzwl 0x16(%esi),%eax
561806:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%ebp)
56180c:	8b 43 38             	mov    0x38(%ebx),%eax
56180f:	89 bd 48 ff ff ff    	mov    %edi,-0xb8(%ebp)
561815:	0f b7 f9             	movzwl %cx,%edi
561818:	8b ca                	mov    %edx,%ecx
56181a:	83 e1 c3             	and    $0xffffffc3,%ecx
56181d:	24 04                	and    $0x4,%al
56181f:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
561825:	53                   	push   %ebx
561826:	0f 44 ca             	cmove  %edx,%ecx
561829:	51                   	push   %ecx
56182a:	57                   	push   %edi
56182b:	ff 70 2c             	push   0x2c(%eax)
56182e:	8b 45 84             	mov    -0x7c(%ebp),%eax
561831:	ff 70 04             	push   0x4(%eax)
561834:	8d 45 9c             	lea    -0x64(%ebp),%eax
561837:	50                   	push   %eax
561838:	e8 a3 2f 00 00       	call   0x5647e0
56183d:	8b f8                	mov    %eax,%edi
56183f:	83 c4 18             	add    $0x18,%esp
561842:	33 c0                	xor    %eax,%eax
561844:	89 7d 8c             	mov    %edi,-0x74(%ebp)
561847:	66 89 46 12          	mov    %ax,0x12(%esi)
56184b:	8b 43 08             	mov    0x8(%ebx),%eax
56184e:	0f b7 00             	movzwl (%eax),%eax
561851:	8b c8                	mov    %eax,%ecx
561853:	89 8d 40 ff ff ff    	mov    %ecx,-0xc0(%ebp)
561859:	66 83 f9 0a          	cmp    $0xa,%cx
56185d:	7f 0c                	jg     0x56186b
56185f:	c7 85 68 ff ff ff 00 	movl   $0x0,-0x98(%ebp)
561866:	00 00 00
561869:	eb 19                	jmp    0x561884
56186b:	98                   	cwtl
56186c:	99                   	cltd
56186d:	52                   	push   %edx
56186e:	50                   	push   %eax
56186f:	e8 1c f5 fc ff       	call   0x530d90
561874:	83 c4 08             	add    $0x8,%esp
561877:	66 83 e8 21          	sub    $0x21,%ax
56187b:	0f b7 c0             	movzwl %ax,%eax
56187e:	89 85 68 ff ff ff    	mov    %eax,-0x98(%ebp)
561884:	b9 00 01 00 00       	mov    $0x100,%ecx
561889:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
561890:	85 ff                	test   %edi,%edi
561892:	0f 84 ce 04 00 00    	je     0x561d66
561898:	0f b7 57 0c          	movzwl 0xc(%edi),%edx
56189c:	8b c2                	mov    %edx,%eax
56189e:	c7 45 90 00 00 00 00 	movl   $0x0,-0x70(%ebp)
5618a5:	89 85 6c ff ff ff    	mov    %eax,-0x94(%ebp)
5618ab:	66 3b c1             	cmp    %cx,%ax
5618ae:	75 38                	jne    0x5618e8
5618b0:	8b 75 94             	mov    -0x6c(%ebp),%esi
5618b3:	8b 43 04             	mov    0x4(%ebx),%eax
5618b6:	0f b7 ce             	movzwl %si,%ecx
5618b9:	8b b5 70 ff ff ff    	mov    -0x90(%ebp),%esi
5618bf:	0f bf 0c 48          	movswl (%eax,%ecx,2),%ecx
5618c3:	85 c9                	test   %ecx,%ecx
5618c5:	78 18                	js     0x5618df
5618c7:	8b 43 0c             	mov    0xc(%ebx),%eax
5618ca:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5618cd:	8b 40 04             	mov    0x4(%eax),%eax
5618d0:	0f b6 44 88 0c       	movzbl 0xc(%eax,%ecx,4),%eax
5618d5:	85 c0                	test   %eax,%eax
5618d7:	0f 85 69 04 00 00    	jne    0x561d46
5618dd:	eb 09                	jmp    0x5618e8
5618df:	83 f9 ff             	cmp    $0xffffffff,%ecx
5618e2:	0f 84 5e 04 00 00    	je     0x561d46
5618e8:	8b 4f 20             	mov    0x20(%edi),%ecx
5618eb:	8b 47 24             	mov    0x24(%edi),%eax
5618ee:	23 4e 08             	and    0x8(%esi),%ecx
5618f1:	23 46 0c             	and    0xc(%esi),%eax
5618f4:	0b c8                	or     %eax,%ecx
5618f6:	0f 85 4a 04 00 00    	jne    0x561d46
5618fc:	b8 00 01 00 00       	mov    $0x100,%eax
561901:	66 85 47 0a          	test   %ax,0xa(%edi)
561905:	74 09                	je     0x561910
561907:	83 fa 10             	cmp    $0x10,%edx
56190a:	0f 84 36 04 00 00    	je     0x561d46
561910:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
561916:	f6 40 24 08          	testb  $0x8,0x24(%eax)
56191a:	74 0c                	je     0x561928
56191c:	8b 07                	mov    (%edi),%eax
56191e:	f6 40 04 01          	testb  $0x1,0x4(%eax)