5611e8:	0f b7 41 30          	movzwl 0x30(%ecx),%eax
5611ec:	83 4d bc 03          	orl    $0x3,-0x44(%ebp)
5611f0:	66 89 45 b4          	mov    %ax,-0x4c(%ebp)
5611f4:	0f b7 41 2e          	movzwl 0x2e(%ecx),%eax
5611f8:	66 89 45 f0          	mov    %ax,-0x10(%ebp)
5611fc:	33 c0                	xor    %eax,%eax
5611fe:	66 89 45 f2          	mov    %ax,-0xe(%ebp)
561202:	f6 46 28 01          	testb  $0x1,0x28(%esi)
561206:	75 09                	jne    0x561211
561208:	8b 46 10             	mov    0x10(%esi),%eax
56120b:	8b 40 08             	mov    0x8(%eax),%eax
56120e:	89 45 98             	mov    %eax,-0x68(%ebp)
561211:	8d 5d 84             	lea    -0x7c(%ebp),%ebx
561214:	89 9d 6c ff ff ff    	mov    %ebx,-0x94(%ebp)
56121a:	0f b7 41 2e          	movzwl 0x2e(%ecx),%eax
56121e:	8b c8                	mov    %eax,%ecx
561220:	89 8d 74 ff ff ff    	mov    %ecx,-0x8c(%ebp)
561226:	66 83 f9 0a          	cmp    $0xa,%cx
56122a:	7f 04                	jg     0x561230
56122c:	33 c0                	xor    %eax,%eax
56122e:	eb 13                	jmp    0x561243
561230:	98                   	cwtl
561231:	99                   	cltd
561232:	52                   	push   %edx
561233:	50                   	push   %eax
561234:	e8 57 fb fc ff       	call   0x530d90
561239:	83 c4 08             	add    $0x8,%esp
56123c:	66 83 e8 21          	sub    $0x21,%ax
561240:	0f b7 c0             	movzwl %ax,%eax
561243:	8b 8d 78 ff ff ff    	mov    -0x88(%ebp),%ecx
561249:	8b d6                	mov    %esi,%edx
56124b:	89 85 68 ff ff ff    	mov    %eax,-0x98(%ebp)
561251:	83 79 10 00          	cmpl   $0x0,0x10(%ecx)
561255:	0f 85 69 01 00 00    	jne    0x5613c4
56125b:	8b 85 64 ff ff ff    	mov    -0x9c(%ebp),%eax
561261:	f6 40 28 20          	testb  $0x20,0x28(%eax)
561265:	0f 85 59 01 00 00    	jne    0x5613c4
56126b:	8b 00                	mov    (%eax),%eax
56126d:	8b 00                	mov    (%eax),%eax
56126f:	8b 40 20             	mov    0x20(%eax),%eax
561272:	25 00 80 00 00       	and    $0x8000,%eax
561277:	83 c8 00             	or     $0x0,%eax
56127a:	0f 84 44 01 00 00    	je     0x5613c4
561280:	83 7a 44 00          	cmpl   $0x0,0x44(%edx)
561284:	0f 85 3a 01 00 00    	jne    0x5613c4
56128a:	8b 42 28             	mov    0x28(%edx),%eax
56128d:	a8 01                	test   $0x1,%al
56128f:	0f 85 2f 01 00 00    	jne    0x5613c4
561295:	8b 8d 70 ff ff ff    	mov    -0x90(%ebp),%ecx
56129b:	f6 41 24 80          	testb  $0x80,0x24(%ecx)
56129f:	0f 85 1f 01 00 00    	jne    0x5613c4
5612a5:	a8 28                	test   $0x28,%al
5612a7:	0f 85 17 01 00 00    	jne    0x5613c4
5612ad:	8b 85 60 ff ff ff    	mov    -0xa0(%ebp),%eax
5612b3:	8b 70 14             	mov    0x14(%eax),%esi
5612b6:	8b 40 0c             	mov    0xc(%eax),%eax
5612b9:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
5612bc:	c1 e1 04             	shl    $0x4,%ecx
5612bf:	03 ce                	add    %esi,%ecx
5612c1:	33 c0                	xor    %eax,%eax
5612c3:	89 8d 58 ff ff ff    	mov    %ecx,-0xa8(%ebp)
5612c9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
5612d0:	3b f1                	cmp    %ecx,%esi
5612d2:	0f 83 48 04 00 00    	jae    0x561720
5612d8:	8b 4f 08             	mov    0x8(%edi),%ecx
5612db:	8b 47 0c             	mov    0xc(%edi),%eax
5612de:	23 4e 20             	and    0x20(%esi),%ecx
5612e1:	23 46 24             	and    0x24(%esi),%eax
5612e4:	0b c8                	or     %eax,%ecx
5612e6:	0f 85 b0 00 00 00    	jne    0x56139c
5612ec:	51                   	push   %ecx
5612ed:	51                   	push   %ecx
5612ee:	52                   	push   %edx
5612ef:	56                   	push   %esi
5612f0:	e8 1b 73 ff ff       	call   0x558610
5612f5:	83 c4 10             	add    $0x10,%esp
5612f8:	85 c0                	test   %eax,%eax
5612fa:	0f 84 99 00 00 00    	je     0x561399
561300:	8b 47 30             	mov    0x30(%edi),%eax
561303:	b9 01 00 00 00       	mov    $0x1,%ecx
561308:	8b 95 70 ff ff ff    	mov    -0x90(%ebp),%edx
56130e:	66 89 4f 18          	mov    %cx,0x18(%edi)
561312:	89 4f 28             	mov    %ecx,0x28(%edi)
561315:	8b 8d 68 ff ff ff    	mov    -0x98(%ebp),%ecx
56131b:	c7 47 20 00 00 00 00 	movl   $0x0,0x20(%edi)
561322:	89 30                	mov    %esi,(%eax)
561324:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax
56132a:	03 c1                	add    %ecx,%eax
56132c:	66 89 47 12          	mov    %ax,0x12(%edi)
561330:	83 7a 0c 00          	cmpl   $0x0,0xc(%edx)
561334:	75 0b                	jne    0x561341
561336:	f6 42 24 02          	testb  $0x2,0x24(%edx)
56133a:	75 05                	jne    0x561341
56133c:	83 c0 1c             	add    $0x1c,%eax
56133f:	eb 03                	jmp    0x561344
561341:	83 c0 f6             	add    $0xfffffff6,%eax
561344:	66 89 47 12          	mov    %ax,0x12(%edi)
561348:	66 85 c0             	test   %ax,%ax
56134b:	7d 06                	jge    0x561353
56134d:	33 c0                	xor    %eax,%eax
56134f:	66 89 47 12          	mov    %ax,0x12(%edi)
561353:	b8 2b 00 00 00       	mov    $0x2b,%eax
561358:	50                   	push   %eax
561359:	51                   	push   %ecx
56135a:	66 89 47 16          	mov    %ax,0x16(%edi)
56135e:	e8 dd fa fc ff       	call   0x530e40
561363:	66 89 47 14          	mov    %ax,0x14(%edi)
561367:	c7 47 24 00 40 00 00 	movl   $0x4000,0x24(%edi)
56136e:	8b 4e 20             	mov    0x20(%esi),%ecx
561371:	8b 46 24             	mov    0x24(%esi),%eax
561374:	0b 4d 0c             	or     0xc(%ebp),%ecx
561377:	0b 45 10             	or     0x10(%ebp),%eax
56137a:	57                   	push   %edi
56137b:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
561381:	89 0f                	mov    %ecx,(%edi)
561383:	89 47 04             	mov    %eax,0x4(%edi)
561386:	e8 e5 1a 00 00       	call   0x562e70
56138b:	8b 55 80             	mov    -0x80(%ebp),%edx
56138e:	83 c4 10             	add    $0x10,%esp
561391:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
561397:	eb 09                	jmp    0x5613a2
561399:	8b 55 80             	mov    -0x80(%ebp),%edx
56139c:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
5613a2:	8b 8d 58 ff ff ff    	mov    -0xa8(%ebp),%ecx
5613a8:	83 c6 30             	add    $0x30,%esi
5613ab:	85 c0                	test   %eax,%eax
5613ad:	0f 84 1d ff ff ff    	je     0x5612d0
5613b3:	5f                   	pop    %edi
5613b4:	5e                   	pop    %esi
5613b5:	5b                   	pop    %ebx
5613b6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5613b9:	33 cd                	xor    %ebp,%ecx
5613bb:	e8 1a 01 08 00       	call   0x5e14da
5613c0:	8b e5                	mov    %ebp,%esp
5613c2:	5d                   	pop    %ebp
5613c3:	c3                   	ret
5613c4:	33 c0                	xor    %eax,%eax
5613c6:	85 db                	test   %ebx,%ebx
5613c8:	0f 84 5a 03 00 00    	je     0x561728
5613ce:	0f b6 42 24          	movzbl 0x24(%edx),%eax
5613d2:	8b 4b 24             	mov    0x24(%ebx),%ecx
5613d5:	c1 e8 05             	shr    $0x5,%eax
5613d8:	83 e0 01             	and    $0x1,%eax
5613db:	85 c9                	test   %ecx,%ecx
5613dd:	74 1e                	je     0x5613fd
5613df:	51                   	push   %ecx
5613e0:	ff b5 60 ff ff ff    	push   -0xa0(%ebp)
5613e6:	50                   	push   %eax
5613e7:	ff 72 2c             	push   0x2c(%edx)
5613ea:	e8 b1 39 00 00       	call   0x564da0
5613ef:	8b 55 80             	mov    -0x80(%ebp),%edx
5613f2:	83 c4 10             	add    $0x10,%esp
5613f5:	85 c0                	test   %eax,%eax
5613f7:	0f 84 04 03 00 00    	je     0x561701
5613fd:	f7 43 38 00 01 00 00 	testl  $0x100,0x38(%ebx)
561404:	0f 85 f7 02 00 00    	jne    0x561701
56140a:	8b 43 08             	mov    0x8(%ebx),%eax
56140d:	0f b7 30             	movzwl (%eax),%esi
561410:	33 c0                	xor    %eax,%eax
561412:	89 47 18             	mov    %eax,0x18(%edi)
561415:	66 89 47 1c          	mov    %ax,0x1c(%edi)
561419:	89 47 28             	mov    %eax,0x28(%edi)
56141c:	88 47 11             	mov    %al,0x11(%edi)
56141f:	66 89 47 12          	mov    %ax,0x12(%edi)
561423:	8b 45 0c             	mov    0xc(%ebp),%eax
561426:	89 07                	mov    %eax,(%edi)
561428:	8b 45 10             	mov    0x10(%ebp),%eax
56142b:	89 47 04             	mov    %eax,0x4(%edi)
56142e:	66 89 77 16          	mov    %si,0x16(%edi)
561432:	89 5f 20             	mov    %ebx,0x20(%edi)
561435:	ff 72 2c             	push   0x2c(%edx)
561438:	89 b5 68 ff ff ff    	mov    %esi,-0x98(%ebp)
56143e:	53                   	push   %ebx
56143f:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
561445:	e8 66 5b fa ff       	call   0x506fb0
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